# translation of DrakX-bs.po to Bosnian # Copyright (C) 2001, 2003. Free Software Foundation, Inc. # Amila Akagić , 06. 2001. # Vedran Ljubović , 2002, 2003. # Vedran Ljubovic , 2003. # msgid "" msgstr "" "Project-Id-Version: DrakX-bs\n" "POT-Creation-Date: 2003-12-03 03:09+0100\n" "PO-Revision-Date: 2003-09-20 12:33+0200\n" "Last-Translator: Vedran Ljubovic \n" "Language-Team: Bosnian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.0.1\n" #: ../../install_steps_interactive.pm:1 #, c-format msgid "Scanning partitions to find mount points" msgstr "Pretražujem particije da nađem tačke montiranja" #: ../../security/help.pm:1 #, c-format msgid "if set to yes, check additions/removals of suid root files." msgstr "" "ako je postavljeno na da, provjerava dodavanje/brisanje suid root datoteka." #: ../../standalone/drakTermServ:1 #, c-format msgid "" "%s: %s requires hostname, MAC address, IP, nbi-image, 0/1 for THIN_CLIENT, " "0/1 for Local Config...\n" msgstr "" "%s: %s zahtijeva ime računara, MAC adresu, IP adresu, nbi-image, 0/1 za " "THIN_CLIENT, 0/1 za Local Config...\n" #: ../../standalone/drakTermServ:1 #, c-format msgid "Configuration changed - restart clusternfs/dhcpd?" msgstr "Konfiguracija je promijenjena - da restartujem clusternfs/dhcpd?" #: ../../standalone/drakbackup:1 #, c-format msgid "\t\tErase=%s" msgstr "\t\tObriši=%s" #: ../../standalone/drakbackup:1 #, c-format msgid "" "Differential backups only save files that have changed or are new since the " "original 'base' backup." msgstr "" "Diferencijalni backupi snimaju samo datoteke koje su promijenjene nakon " "originalnog 'baznog' backupa." #: ../../standalone/harddrake2:1 #, c-format msgid "network printer port" msgstr "port mrežnog štampača" #: ../../standalone/drakTermServ:1 #, c-format msgid "Please insert floppy disk:" msgstr "Molim ubacite disketu:" #: ../../standalone/drakTermServ:1 #, c-format msgid "DrakTermServ" msgstr "DrakTermServ" #: ../../install_steps_interactive.pm:1 #, c-format msgid "PCMCIA" msgstr "PCMCIA" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "" "The backup partition table has not the same size\n" "Still continue?" msgstr "" "Backup tabela particija nema istu veličinu\n" "Ipak nastavljate?" #: ../../diskdrake/smbnfs_gtk.pm:1 #, c-format msgid "Which username" msgstr "Koje korisničko ime" #: ../../any.pm:1 #, c-format msgid "Which type of entry do you want to add?" msgstr "Koju vrstu opcije želite dodati?" #: ../../help.pm:1 ../../diskdrake/interactive.pm:1 #, c-format msgid "Restore partition table" msgstr "Vrati tabelu particija" #: ../../standalone/drakconnect:1 #, c-format msgid "Configure hostname..." msgstr "Podesi ime računara..." #: ../../printer/cups.pm:1 #, c-format msgid "On CUPS server \"%s\"" msgstr "Na CUPS serveru \"%s\"" #: ../../install_steps_interactive.pm:1 #, c-format msgid "Post-install configuration" msgstr "Post-instalacijsko podešavanje" #: ../../standalone/drakperm:1 #, c-format msgid "" "The current security level is %s\n" "Select permissions to see/edit" msgstr "" "Trenutni nivo sigurnisti je %s\n" "Izaberite koje privilegije želite vidjeti/izmijeniti" #: ../../diskdrake/hd_gtk.pm:1 #, c-format msgid "Use ``%s'' instead" msgstr "Koristi ``%s'' umjesto toga" #: ../../diskdrake/hd_gtk.pm:1 ../../diskdrake/interactive.pm:1 #: ../../diskdrake/removable.pm:1 ../../standalone/harddrake2:1 #, c-format msgid "Type" msgstr "Tip" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "\n" "Also printers configured with the PPD files provided by their manufacturers " "or with native CUPS drivers cannot be transferred." msgstr "" "\n" "Također štampači konfigurisani sa PPD datotekama koje su osigurali njihovi " "proizvođači ili sa vlastitim CUPS drajverima ne mogu biti prebačeni." #: ../../lang.pm:1 #, c-format msgid "Sri Lanka" msgstr "Šri Lanka" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "The following printer\n" "\n" "%s%s\n" "are directly connected to your system" msgstr "" "Sljedeći štampač\n" "\n" "%s%s\n" "su direktno spojeni na vaš sistem" #: ../../lang.pm:1 #, c-format msgid "Central African Republic" msgstr "Centralnoafrička Republika" #: ../../network/network.pm:1 #, c-format msgid "Gateway device" msgstr "Gateway uređaj" #: ../../standalone/drakfloppy:1 #, c-format msgid "Advanced preferences" msgstr "Napredne opcije" #: ../../standalone/drakbackup:1 #, c-format msgid "Net Method:" msgstr "Net Method:" #: ../../harddrake/data.pm:1 #, c-format msgid "Ethernetcard" msgstr "Ethernet kartica" #: ../../security/l10n.pm:1 #, c-format msgid "If set, send the mail report to this email address else send it to root" msgstr "" "Ako je uključeno, šalje mail izvještaj na ovu email adresu, inače ga šalje " "root-u" #: ../../modules/interactive.pm:1 ../../standalone/drakconnect:1 #, c-format msgid "Parameters" msgstr "Parametri" #: ../../standalone/draksec:1 #, c-format msgid "no" msgstr "ne" #: ../../harddrake/v4l.pm:1 #, c-format msgid "Auto-detect" msgstr "Auto prepoznavanje" #: ../../standalone/drakconnect:1 #, c-format msgid "Interface:" msgstr "Interfejs:" #: ../../steps.pm:1 #, c-format msgid "Select installation class" msgstr "Izaberite klasu instalacije" #: ../../network/tools.pm:1 #, c-format msgid "" "The system doesn't seem to be connected to the Internet.\n" "Try to reconfigure your connection." msgstr "" "Izgleda da sistem nije spojen na Internet.\n" "Probajte promijeniti postavke vaše konekcije." #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "Connect your printer to a Linux server and let your Windows machine(s) " "connect to it as a client.\n" "\n" "Do you really want to continue setting up this printer as you are doing now?" msgstr "" "Povezati štampač na Linux server i dopustiti Windows računarima da se " "spajaju na njega kao klijenti.\n" "\n" "Da li zaista želite nastaviti sa podešavanjem štampača kako ste započeli?" #: ../../lang.pm:1 #, c-format msgid "Belarus" msgstr "Bjelorusija" #: ../../partition_table.pm:1 #, c-format msgid "Error writing to file %s" msgstr "Greška u pisanju datoteke: %s" #: ../../security/l10n.pm:1 #, c-format msgid "Report check result to syslog" msgstr "Prijavi rezultate provjere u syslog" #: ../../services.pm:1 #, c-format msgid "" "apmd is used for monitoring battery status and logging it via syslog.\n" "It can also be used for shutting down the machine when the battery is low." msgstr "" "Apmd se koristi za nadgledanje statusa baterija i njegovo bilježenje preko\n" "sysloga. Takođe se može koristiti za gašenje računara kada su baterije pri " "kraju." #: ../../standalone/drakbackup:1 #, c-format msgid "Use tape to backup" msgstr "Koristi traku za backup" #: ../../install_steps_gtk.pm:1 #, c-format msgid "The following packages are going to be installed" msgstr "Sljedeći paketi će biti instalirani" #: ../../printer/printerdrake.pm:1 #, c-format msgid "CUPS configuration" msgstr "Podešavanje CUPSa" #: ../../standalone/drakbackup:1 #, c-format msgid "Total progress" msgstr "Ukupno napredak" #: ../../install_interactive.pm:1 #, c-format msgid "Not enough free space to allocate new partitions" msgstr "Nema dovoljno slobodnog prostora za pravljenje novih particija" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Moving" msgstr "Premještam" #: ../../standalone/drakbackup:1 #, c-format msgid "" "\n" "Drakbackup activities via %s:\n" "\n" msgstr "" "\n" "Drakbackup aktivnosti putem %s:\n" "\n" #: ../../standalone/draksec:1 #, c-format msgid "yes" msgstr "da" #: ../../printer/printerdrake.pm:1 #, c-format msgid "(" msgstr "(" #: ../../network/netconnect.pm:1 #, c-format msgid "" "Welcome to The Network Configuration Wizard.\n" "\n" "We are about to configure your internet/network connection.\n" "If you don't want to use the auto detection, deselect the checkbox.\n" msgstr "" "Dobro došli u Čarobnjak za podešavanje mreže\n" "\n" "Sada ćemo podesiti vašu internet/mrežnu konekciju.\n" "Ako ne želite da koristite automatsko prepoznavanje, isključite opciju.\n" #: ../../printer/printerdrake.pm:1 ../../standalone/scannerdrake:1 #, c-format msgid ")" msgstr ")" #: ../../lang.pm:1 #, c-format msgid "Lebanon" msgstr "Liban" #: ../../mouse.pm:1 #, c-format msgid "MM HitTablet" msgstr "MM HitTablet" #: ../../services.pm:1 #, c-format msgid "Stop" msgstr "Stop" #: ../../standalone/scannerdrake:1 #, c-format msgid "Edit selected host" msgstr "Izmijeni izabrani računar" #: ../../standalone/drakbackup:1 #, c-format msgid "No CD device defined!" msgstr "Nije definisan CD uređaj!" #: ../../network/shorewall.pm:1 #, fuzzy, c-format msgid "" "Please enter the name of the interface connected to the " "internet. \n" " \n" "Examples:\n" " ppp+ for modem or DSL connections, \n" " eth0, or eth1 for cable connection, \n" " ippp+ for a isdn connection.\n" msgstr "" "Molim unesite naziv interfejsa spojenog na Internet.\n" "\n" "Primjeri:\n" "\t\tppp+ za modemsku ili DSL konekciju, \n" "\t\teth0, ili eth1 za mrežnu konekciju, \n" "\t\tippp+ za isdn konekciju.\n" #: ../../standalone/drakbackup:1 #, c-format msgid "\tUse .backupignore files\n" msgstr "\tKoristi datoteke .backupignore\n" #: ../../keyboard.pm:1 #, c-format msgid "Bulgarian (phonetic)" msgstr "Bugarska (fonetska)" #: ../../standalone/drakpxe:1 #, c-format msgid "The DHCP start ip" msgstr "Početna DHCP adresa" #: ../../Xconfig/card.pm:1 #, c-format msgid "256 kB" msgstr "256 kB" #: ../../standalone/drakbackup:1 #, c-format msgid "Don't rewind tape after backup" msgstr "Ne premotavaj traku nakon backupa" #: ../../any.pm:1 #, c-format msgid "Bootloader main options" msgstr "Glavne opcije bootloadera" #: ../../standalone.pm:1 #, c-format msgid "" "[--manual] [--device=dev] [--update-sane=sane_source_dir] [--update-" "usbtable] [--dynamic=dev]" msgstr "" "[--manual] [--device=dev] [--update-sane=sane_source_dir] [--update-" "usbtable] [--dynamic=dev]" #: ../../harddrake/data.pm:1 ../../standalone/drakbackup:1 #, c-format msgid "Tape" msgstr "Traka" #: ../../lang.pm:1 #, c-format msgid "Malaysia" msgstr "Malezija" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Scanning network..." msgstr "Pretražujem mrežu..." #: ../../standalone/drakbackup:1 #, c-format msgid "" "With this option you will be able to restore any version\n" " of your /etc directory." msgstr "" "Sa ovom opcijom bićete u mogućnosti da vratite bilo koju\n" " verziju vašeg /etc direktorija." #: ../../standalone/drakedm:1 #, c-format msgid "The change is done, do you want to restart the dm service ?" msgstr "Izmjena je primijenjena, želite li sada restartovati servis dm?" #: ../../keyboard.pm:1 #, c-format msgid "Swiss (French layout)" msgstr "Švicarska (francuski izgled)" #: ../../raid.pm:1 #, c-format msgid "mkraid failed (maybe raidtools are missing?)" msgstr "mkraid nije uspio (možda nedostaju raidtools?)" #: ../../standalone/drakbackup:1 #, c-format msgid "August" msgstr "August" #: ../../network/drakfirewall.pm:1 #, fuzzy, c-format msgid "FTP server" msgstr "NTP server" #: ../../harddrake/data.pm:1 #, c-format msgid "Webcam" msgstr "Web kamera" #: ../../standalone/harddrake2:1 #, c-format msgid "size of the (second level) cpu cache" msgstr "veličina CPU keša (drugog nivoa)" #: ../../harddrake/data.pm:1 #, c-format msgid "Soundcard" msgstr "Zvučna kartica" #: ../../standalone/drakbackup:1 #, c-format msgid "Month" msgstr "Mjesec" #: ../../standalone/drakbackup:1 #, c-format msgid "Search for files to restore" msgstr "Izaberite datoteke za vraćanje" #: ../../lang.pm:1 #, c-format msgid "Luxembourg" msgstr "Luksemburg" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "To print a file from the command line (terminal window) use the command \"%s " "\".\n" msgstr "" "Za štampanje datoteke sa komandne linije (terminalski prozor) koristite " "komandu \"%s \".\n" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Level %s\n" msgstr "Nivo %s\n" #: ../../keyboard.pm:1 #, c-format msgid "Syriac (phonetic)" msgstr "Sirijska (fonetska)" #: ../../lang.pm:1 #, c-format msgid "Iran" msgstr "Iran" #: ../../standalone/harddrake2:1 #, c-format msgid "Bus" msgstr "Sabirnica" #: ../../lang.pm:1 #, c-format msgid "Iraq" msgstr "Irak" #: ../../standalone/drakbug:1 #, c-format msgid "connecting to %s ..." msgstr "spajam se na %s..." #: ../../standalone/drakgw:1 #, c-format msgid "Potential LAN address conflict found in current config of %s!\n" msgstr "" "Potencijalan konflikt LAN adresa pronađen u trenutnoj konfiguraciji %s!\n" #: ../../standalone/drakgw:1 #, c-format msgid "Configuring..." msgstr "Podešavam..." #: ../../harddrake/v4l.pm:1 #, c-format msgid "" "For most modern TV cards, the bttv module of the GNU/Linux kernel just auto-" "detect the rights parameters.\n" "If your card is misdetected, you can force the right tuner and card types " "here. Just select your tv card parameters if needed." msgstr "" "Za većinu modernih TV kartica, bttv modul Linux kernela automatski " "prepoznaje odgovarajuće parametre.\n" "Ako je vaša kartica pogrešno prepoznata, ovdje možete prisiliti odgovarajući " "tip tunera i kartice. Samo izaberite parametre vaše TV karte." #: ../../any.pm:1 ../../install_steps_interactive.pm:1 #, c-format msgid "Password (again)" msgstr "Šifra (ponovo)" #: ../../standalone/drakfont:1 #, c-format msgid "Search installed fonts" msgstr "Pretraži instalirane fontove" #: ../../standalone/drakboot:1 #, c-format msgid "Default desktop" msgstr "Desktop" #: ../../standalone/drakbug:1 #, c-format msgid "" "To submit a bug report, click on the button report.\n" "This will open a web browser window on %s\n" " where you'll find a form to fill in. The information displayed above will " "be \n" "transferred to that server." msgstr "" "Da prijavite bug, kliknite na dugme Prijavi.\n" "Ovo će otvoriti prozor web browsera na %s\n" " gdje ćete pronaći formular koji treba popuniti. Gore prikazane informacije " "će biti \n" "poslane na taj server." #: ../../lang.pm:1 #, c-format msgid "Venezuela" msgstr "Venecuela" #: ../../network/network.pm:1 ../../printer/printerdrake.pm:1 #: ../../standalone/drakconnect:1 #, c-format msgid "IP address" msgstr "IP adresa" #: ../../install_interactive.pm:1 #, c-format msgid "Choose the sizes" msgstr "Izaberite veličine" #: ../../standalone/drakbackup:1 #, c-format msgid "" "List of data corrupted:\n" "\n" msgstr "" "Lista oštećenih podataka:\n" "\n" #: ../../fs.pm:1 #, c-format msgid "" "Can only be mounted explicitly (i.e.,\n" "the -a option will not cause the file system to be mounted)." msgstr "" "Može se montirati samo eksplicitno (tj.,\n" "opcija -a neće montirati i ovaj sistem)." #: ../../network/modem.pm:1 #, c-format msgid "" "Your modem isn't supported by the system.\n" "Take a look at http://www.linmodems.org" msgstr "" "Vaš modem nije podržan pod ovim sistemom.\n" "Pogledajte http://www.linmodems.org" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Choose another partition" msgstr "Izaberi drugu particiju" #: ../../standalone/drakperm:1 #, c-format msgid "Current user" msgstr "Trenutni korisnik" #: ../../diskdrake/smbnfs_gtk.pm:1 ../../standalone/drakbackup:1 #, c-format msgid "Username" msgstr "Korisničko ime" #: ../../keyboard.pm:1 #, c-format msgid "Left \"Windows\" key" msgstr "Lijeva \"Windows\" tipka" #: ../../lang.pm:1 #, c-format msgid "Guyana" msgstr "Gvajana" #: ../../standalone/drakTermServ:1 #, c-format msgid "dhcpd Server Configuration" msgstr "Podešavanje dhcpd servera" #: ../../standalone/drakperm:1 #, c-format msgid "" "Used for directory:\n" " only owner of directory or file in this directory can delete it" msgstr "" "Koristi se za direktorij:\n" " samo vlasnik tog direktorija ili datoteke u ovom direktoriju ga može " "obrisati" #: ../../printer/main.pm:1 #, c-format msgid " on Novell server \"%s\", printer \"%s\"" msgstr "na Novell serveru \"%s\", štampač \"%s\"" #: ../../standalone/printerdrake:1 #, c-format msgid "Printer Name" msgstr "Naziv štampača" #: ../../../move/move.pm:1 #, c-format msgid "Setting up USB key" msgstr "" #: ../../standalone/drakfloppy:1 #, c-format msgid "Remove a module" msgstr "Ukloni modul" #: ../../any.pm:1 ../../install_steps_interactive.pm:1 #: ../../diskdrake/smbnfs_gtk.pm:1 ../../network/modem.pm:1 #: ../../printer/printerdrake.pm:1 ../../standalone/drakbackup:1 #: ../../standalone/drakconnect:1 #, c-format msgid "Password" msgstr "Šifra" #: ../../standalone/drakbackup:1 #, c-format msgid "Advanced Configuration" msgstr "Napredno podešavanje" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Scanning on your HP multi-function device" msgstr "Skeniram pomoću HP multifunkcijskog uređaja" #: ../../any.pm:1 #, c-format msgid "Root" msgstr "Root" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Choose an existing RAID to add to" msgstr "Izaberite postojeći RAID na koji ćete dodati" #: ../../keyboard.pm:1 #, c-format msgid "Turkish (modern \"Q\" model)" msgstr "Turska (moderni \"Q\" model)" #: ../../standalone/drakboot:1 #, c-format msgid "Lilo message not found" msgstr "Nisam pronašao Lilo poruku." #: ../../services.pm:1 #, c-format msgid "" "Automatic regeneration of kernel header in /boot for\n" "/usr/include/linux/{autoconf,version}.h" msgstr "" "Automatsko regenerisanje kernel zaglavlja u /boot za\n" "/usr/include/linux/{autoconf,version}.h" #: ../../standalone/drakfloppy:1 #, c-format msgid "if needed" msgstr "ako je potrebno" #: ../../standalone/drakclock:1 #, c-format msgid "" "We need to install ntp package\n" " to enable Network Time Protocol" msgstr "" #: ../../standalone/drakbackup:1 #, c-format msgid "Restore Failed..." msgstr "Vraćanje nije uspjelo..." #: ../../standalone/drakbackup:1 #, c-format msgid "Store the password for this system in drakbackup configuration." msgstr "Zapiši šifru ovog sistema u konfiguraciju DrakBackup-a." #: ../../install_messages.pm:1 #, c-format msgid "" "Introduction\n" "\n" "The operating system and the different components available in the Mandrake " "Linux distribution \n" "shall be called the \"Software Products\" hereafter. The Software Products " "include, but are not \n" "restricted to, the set of programs, methods, rules and documentation related " "to the operating \n" "system and the different components of the Mandrake Linux distribution.\n" "\n" "\n" "1. License Agreement\n" "\n" "Please read this document carefully. This document is a license agreement " "between you and \n" "MandrakeSoft S.A. which applies to the Software Products.\n" "By installing, duplicating or using the Software Products in any manner, you " "explicitly \n" "accept and fully agree to conform to the terms and conditions of this " "License. \n" "If you disagree with any portion of the License, you are not allowed to " "install, duplicate or use \n" "the Software Products. \n" "Any attempt to install, duplicate or use the Software Products in a manner " "which does not comply \n" "with the terms and conditions of this License is void and will terminate " "your rights under this \n" "License. Upon termination of the License, you must immediately destroy all " "copies of the \n" "Software Products.\n" "\n" "\n" "2. Limited Warranty\n" "\n" "The Software Products and attached documentation are provided \"as is\", " "with no warranty, to the \n" "extent permitted by law.\n" "MandrakeSoft S.A. will, in no circumstances and to the extent permitted by " "law, be liable for any special,\n" "incidental, direct or indirect damages whatsoever (including without " "limitation damages for loss of \n" "business, interruption of business, financial loss, legal fees and penalties " "resulting from a court \n" "judgment, or any other consequential loss) arising out of the use or " "inability to use the Software \n" "Products, even if MandrakeSoft S.A. has been advised of the possibility or " "occurence of such \n" "damages.\n" "\n" "LIMITED LIABILITY LINKED TO POSSESSING OR USING PROHIBITED SOFTWARE IN SOME " "COUNTRIES\n" "\n" "To the extent permitted by law, MandrakeSoft S.A. or its distributors will, " "in no circumstances, be \n" "liable for any special, incidental, direct or indirect damages whatsoever " "(including without \n" "limitation damages for loss of business, interruption of business, financial " "loss, legal fees \n" "and penalties resulting from a court judgment, or any other consequential " "loss) arising out \n" "of the possession and use of software components or arising out of " "downloading software components \n" "from one of Mandrake Linux sites which are prohibited or restricted in some " "countries by local laws.\n" "This limited liability applies to, but is not restricted to, the strong " "cryptography components \n" "included in the Software Products.\n" "\n" "\n" "3. The GPL License and Related Licenses\n" "\n" "The Software Products consist of components created by different persons or " "entities. Most \n" "of these components are governed under the terms and conditions of the GNU " "General Public \n" "Licence, hereafter called \"GPL\", or of similar licenses. Most of these " "licenses allow you to use, \n" "duplicate, adapt or redistribute the components which they cover. Please " "read carefully the terms \n" "and conditions of the license agreement for each component before using any " "component. Any question \n" "on a component license should be addressed to the component author and not " "to MandrakeSoft.\n" "The programs developed by MandrakeSoft S.A. are governed by the GPL License. " "Documentation written \n" "by MandrakeSoft S.A. is governed by a specific license. Please refer to the " "documentation for \n" "further details.\n" "\n" "\n" "4. Intellectual Property Rights\n" "\n" "All rights to the components of the Software Products belong to their " "respective authors and are \n" "protected by intellectual property and copyright laws applicable to software " "programs.\n" "MandrakeSoft S.A. reserves its rights to modify or adapt the Software " "Products, as a whole or in \n" "parts, by all means and for all purposes.\n" "\"Mandrake\", \"Mandrake Linux\" and associated logos are trademarks of " "MandrakeSoft S.A. \n" "\n" "\n" "5. Governing Laws \n" "\n" "If any portion of this agreement is held void, illegal or inapplicable by a " "court judgment, this \n" "portion is excluded from this contract. You remain bound by the other " "applicable sections of the \n" "agreement.\n" "The terms and conditions of this License are governed by the Laws of " "France.\n" "All disputes on the terms of this license will preferably be settled out of " "court. As a last \n" "resort, the dispute will be referred to the appropriate Courts of Law of " "Paris - France.\n" "For any question on this document, please contact MandrakeSoft S.A. \n" msgstr "" "Budući da prevodilac ovog teksta nije u mogućnosti da osigura pravnu\n" "provjeru prevedenog teksta, tekst licence je ostavljen u originalnom " "(engleskom)\n" "obliku.\n" "\n" "\n" "Introduction\n" "\n" "The operating system and the different components available in the Mandrake " "Linux distribution \n" "shall be called the \"Software Products\" hereafter. The Software Products " "include, but are not \n" "restricted to, the set of programs, methods, rules and documentation related " "to the operating \n" "system and the different components of the Mandrake Linux distribution.\n" "\n" "\n" "1. License Agreement\n" "\n" "Please read this document carefully. This document is a license agreement " "between you and \n" "MandrakeSoft S.A. which applies to the Software Products.\n" "By installing, duplicating or using the Software Products in any manner, you " "explicitly \n" "accept and fully agree to conform to the terms and conditions of this " "License. \n" "If you disagree with any portion of the License, you are not allowed to " "install, duplicate or use \n" "the Software Products. \n" "Any attempt to install, duplicate or use the Software Products in a manner " "which does not comply \n" "with the terms and conditions of this License is void and will terminate " "your rights under this \n" "License. Upon termination of the License, you must immediately destroy all " "copies of the \n" "Software Products.\n" "\n" "\n" "2. Limited Warranty\n" "\n" "The Software Products and attached documentation are provided \"as is\", " "with no warranty, to the \n" "extent permitted by law.\n" "MandrakeSoft S.A. will, in no circumstances and to the extent permitted by " "law, be liable for any special,\n" "incidental, direct or indirect damages whatsoever (including without " "limitation damages for loss of \n" "business, interruption of business, financial loss, legal fees and penalties " "resulting from a court \n" "judgment, or any other consequential loss) arising out of the use or " "inability to use the Software \n" "Products, even if MandrakeSoft S.A. has been advised of the possibility or " "occurence of such \n" "damages.\n" "\n" "LIMITED LIABILITY LINKED TO POSSESSING OR USING PROHIBITED SOFTWARE IN SOME " "COUNTRIES\n" "\n" "To the extent permitted by law, MandrakeSoft S.A. or its distributors will, " "in no circumstances, be \n" "liable for any special, incidental, direct or indirect damages whatsoever " "(including without \n" "limitation damages for loss of business, interruption of business, financial " "loss, legal fees \n" "and penalties resulting from a court judgment, or any other consequential " "loss) arising out \n" "of the possession and use of software components or arising out of " "downloading software components \n" "from one of Mandrake Linux sites which are prohibited or restricted in some " "countries by local laws.\n" "This limited liability applies to, but is not restricted to, the strong " "cryptography components \n" "included in the Software Products.\n" "\n" "\n" "3. The GPL License and Related Licenses\n" "\n" "The Software Products consist of components created by different persons or " "entities. Most \n" "of these components are governed under the terms and conditions of the GNU " "General Public \n" "Licence, hereafter called \"GPL\", or of similar licenses. Most of these " "licenses allow you to use, \n" "duplicate, adapt or redistribute the components which they cover. Please " "read carefully the terms \n" "and conditions of the license agreement for each component before using any " "component. Any question \n" "on a component license should be addressed to the component author and not " "to MandrakeSoft.\n" "The programs developed by MandrakeSoft S.A. are governed by the GPL License. " "Documentation written \n" "by MandrakeSoft S.A. is governed by a specific license. Please refer to the " "documentation for \n" "further details.\n" "\n" "\n" "4. Intellectual Property Rights\n" "\n" "All rights to the components of the Software Products belong to their " "respective authors and are \n" "protected by intellectual property and copyright laws applicable to software " "programs.\n" "MandrakeSoft S.A. reserves its rights to modify or adapt the Software " "Products, as a whole or in \n" "parts, by all means and for all purposes.\n" "\"Mandrake\", \"Mandrake Linux\" and associated logos are trademarks of " "MandrakeSoft S.A. \n" "\n" "\n" "5. Governing Laws \n" "\n" "If any portion of this agreement is held void, illegal or inapplicable by a " "court judgment, this \n" "portion is excluded from this contract. You remain bound by the other " "applicable sections of the \n" "agreement.\n" "The terms and conditions of this License are governed by the Laws of " "France.\n" "All disputes on the terms of this license will preferably be settled out of " "court. As a last \n" "resort, the dispute will be referred to the appropriate Courts of Law of " "Paris - France.\n" "For any question on this document, please contact MandrakeSoft S.A. \n" #: ../../standalone/drakboot:1 #, c-format msgid "Default user" msgstr "Korisnik" #: ../../standalone/draksplash:1 #, c-format msgid "" "the progress bar x coordinate\n" "of its upper left corner" msgstr "" "koordinate progresne trake x\n" "tj. njenog lijevog ugla" #: ../../standalone/drakgw:1 #, c-format msgid "Current interface configuration" msgstr "Postavke trenutnog interfejsa" #: ../../printer/data.pm:1 #, c-format msgid "LPD - Line Printer Daemon" msgstr "LPD - Line Printer Daemon" #: ../../network/isdn.pm:1 #, c-format msgid "" "\n" "If you have an ISA card, the values on the next screen should be right.\n" "\n" "If you have a PCMCIA card, you have to know the \"irq\" and \"io\" of your " "card.\n" msgstr "" "\n" "Ako imate ISA karticu, vrijednosti na idućem ekranu bi trebale biti " "ispravne.\n" "\n" "Ako imate PCMCIA karticu, moraćete znati IRQ i IO vaše kartice.\n" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Do not print any test page" msgstr "Nemoj štampati testnu stranicu" #: ../../keyboard.pm:1 #, c-format msgid "Gurmukhi" msgstr "Gurmukhi" #: ../../standalone/drakTermServ:1 #, c-format msgid "%s already in use\n" msgstr "%s je već u upotrebi\n" #: ../../any.pm:1 #, c-format msgid "Force No APIC" msgstr "Prinudi bez APICa" #: ../../install_steps_interactive.pm:1 #, c-format msgid "This password is too short (it must be at least %d characters long)" msgstr "" "Ova šifra je previše jednostavna (mora biti duga najmanje %d karaktera)" #: ../../standalone.pm:1 #, c-format msgid "[keyboard]" msgstr "[tastatura]" #: ../../network/network.pm:1 #, c-format msgid "FTP proxy" msgstr "FTP proxy" #: ../../standalone/drakfont:1 #, c-format msgid "Install List" msgstr "Lista instalacije" #: ../../standalone/drakbackup:1 #, c-format msgid "" "Change\n" "Restore Path" msgstr "" "Promijeni\n" "stazu vraćanja" #: ../../standalone/logdrake:1 #, c-format msgid "Show only for the selected day" msgstr "Prikaži samo za izabrani dan" #: ../../standalone/drakbackup:1 #, c-format msgid "\tLimit disk usage to %s MB\n" msgstr "\tOgraniči upotrebu diska na %s MB\n" #: ../../Xconfig/card.pm:1 #, c-format msgid "512 kB" msgstr "512 kB" #: ../../standalone/scannerdrake:1 #, c-format msgid "(Note: Parallel ports cannot be auto-detected)" msgstr "(Napomena: Paralelni portovi ne mogu biti automatski istraženi)" #: ../../standalone/logdrake:1 #, c-format msgid "N" msgstr "N" #: ../../network/isdn.pm:1 #, c-format msgid "What kind of card do you have?" msgstr "Koju vrstu kartice imate?" #: ../../standalone/logdrake:1 #, c-format msgid "O" msgstr "O" #: ../../install_steps_interactive.pm:1 ../../steps.pm:1 #, c-format msgid "Security" msgstr "Sigurnost" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "You can also use the graphical interface \"xpdq\" for setting options and " "handling printing jobs.\n" "If you are using KDE as desktop environment you have a \"panic button\", an " "icon on the desktop, labeled with \"STOP Printer!\", which stops all print " "jobs immediately when you click it. This is for example useful for paper " "jams.\n" msgstr "" "Možete također koristiti grafički interfejs \"xpdq\" za podešavanje opcija i " "upravljanje zadacima štampe.\n" "Ako koristite KDE okruženje radne površine imate \"dugme za paniku\". To je " "ikona na radnoj površini čiji je naziv \"ZAUSTAVI štampač!\", koja " "zaustavlja sve zadatke štampe odmah kada kliknete na nju. Ovo je korisno " "npr. u slučaju zaglavljivanja papira.\n" #: ../../standalone/drakboot:1 ../../standalone/drakfloppy:1 #: ../../standalone/harddrake2:1 ../../standalone/logdrake:1 #: ../../standalone/printerdrake:1 #, c-format msgid "Q" msgstr "Q" #: ../../standalone/drakbackup:1 #, c-format msgid "Unable to find backups to restore...\n" msgstr "Ne mogu naći backupe za vraćanje...\n" #: ../../standalone/harddrake2:1 #, c-format msgid "Unknown" msgstr "Nepoznat" #: ../../printer/printerdrake.pm:1 #, c-format msgid "This server is already in the list, it cannot be added again.\n" msgstr "Ovaj server je već na listi, ne možete ga ponovo dodati.\n" #: ../../network/netconnect.pm:1 ../../network/tools.pm:1 #, c-format msgid "Network Configuration" msgstr "Podešavanje mreže" #: ../../standalone/logdrake:1 #, c-format msgid "S" msgstr "S" #: ../../network/isdn.pm:1 #, c-format msgid "" "Protocol for the rest of the world\n" "No D-Channel (leased lines)" msgstr "" "Protokol za ostatak svijeta \n" " bez D-kanala (iznajmljene linije)" #: ../../standalone/drakTermServ:1 #, c-format msgid "" " - /etc/xinetd.d/tftp:\n" " \tdrakTermServ will configure this file to work in conjunction with " "the images created\n" " \tby mkinitrd-net, and the entries in /etc/dhcpd.conf, to serve up " "the boot image to \n" " \teach diskless client.\n" "\n" " \tA typical tftp configuration file looks like:\n" " \t\t\n" " \tservice tftp\n" "\t\t\t{\n" " disable = no\n" " socket_type = dgram\n" " protocol = udp\n" " wait = yes\n" " user = root\n" " server = /usr/sbin/in.tftpd\n" " server_args = -s /var/lib/tftpboot\n" " \t}\n" " \t\t\n" " \tThe changes here from the default installation are changing the " "disable flag to\n" " \t'no' and changing the directory path to /var/lib/tftpboot, where " "mkinitrd-net\n" " \tputs its images." msgstr "" " - /etc/xinetd.d/tftp:\n" " \tdrakTermServ will configure this file to work in conjunction with " "the images created\n" " \tby mkinitrd-net, and the entries in /etc/dhcpd.conf, to serve up " "the boot image to \n" " \teach diskless client.\n" "\n" " \tA typical tftp configuration file looks like:\n" " \t\t\n" " \tservice tftp\n" "\t\t\t{\n" " disable = no\n" " socket_type = dgram\n" " protocol = udp\n" " wait = yes\n" " user = root\n" " server = /usr/sbin/in.tftpd\n" " server_args = -s /var/lib/tftpboot\n" " \t}\n" " \t\t\n" " \tThe changes here from the default installation are changing the " "disable flag to\n" " \t'no' and changing the directory path to /var/lib/tftpboot, where " "mkinitrd-net\n" " \tputs its images." #: ../../printer/printerdrake.pm:1 #, c-format msgid "Option %s must be a number!" msgstr "Opcija %s mora biti broj!" #: ../../standalone/drakboot:1 ../../standalone/draksplash:1 #, c-format msgid "Notice" msgstr "Napomena" #: ../../install_steps_interactive.pm:1 #, c-format msgid "You have not configured X. Are you sure you really want this?" msgstr "Niste podesili X. Sigurno želite uraditi ovo?" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "The configuration of the printer will work fully automatically. If your " "printer was not correctly detected or if you prefer a customized printer " "configuration, turn on \"Manual configuration\"." msgstr "" "Podešavanje štampača će raditi potpuno automatski. Ako vaš štampač nije " "ispravno prepoznat ili ako želite sami podesiti štampač, uključite \"Ručno " "podešavanje\"." #: ../../diskdrake/interactive.pm:1 #, c-format msgid "What type of partitioning?" msgstr "Koju vrstu particioniranja?" #: ../../standalone/drakbackup:1 #, c-format msgid "" "file list sent by FTP: %s\n" " " msgstr "" "lista datoteka poslana putem FTPa: %s\n" " " #: ../../standalone/drakconnect:1 #, c-format msgid "Interface" msgstr "Interfejs" #: ../../standalone/drakbackup:1 #, c-format msgid "Multisession CD" msgstr "Višesesijski CD" #: ../../modules/parameters.pm:1 #, c-format msgid "comma separated strings" msgstr "tekst razdvojen zarezima" #: ../../standalone/scannerdrake:1 #, c-format msgid "These are the machines from which the scanners should be used:" msgstr "Ovo su računari sa koji treba koristiti skenere:" #: ../../standalone/logdrake:1 #, c-format msgid "Messages" msgstr "Poruke" #: ../../harddrake/v4l.pm:1 #, c-format msgid "Unknown|CPH06X (bt878) [many vendors]" msgstr "Nepoznat|CPH06X (bt878) [razni proizvođači]" #: ../../network/drakfirewall.pm:1 #, c-format msgid "POP and IMAP Server" msgstr "POP i IMAP server" #: ../../lang.pm:1 #, c-format msgid "Mexico" msgstr "Meksiko" #: ../../standalone/harddrake2:1 #, c-format msgid "Model stepping" msgstr "Model stepping" #: ../../lang.pm:1 #, c-format msgid "Rwanda" msgstr "Ruanda" #: ../../lang.pm:1 #, c-format msgid "Switzerland" msgstr "Švicarska" #: ../../lang.pm:1 #, c-format msgid "Brunei Darussalam" msgstr "Bruneji" #: ../../modules/interactive.pm:1 #, c-format msgid "Do you have any %s interfaces?" msgstr "Imate li ijedan %s interfejs?" #: ../../standalone/drakTermServ:1 #, c-format msgid "You must be root to read configuration file. \n" msgstr "Da biste pročitali konfiguracijsku datoteku, morate biti root. \n" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Remote lpd Printer Options" msgstr "Opcije udaljenog lpd štampača" #: ../../help.pm:1 #, c-format msgid "" "GNU/Linux is a multi-user system, meaning each user may have their own\n" "preferences, their own files and so on. You can read the ``Starter Guide''\n" "to learn more about multi-user systems. But unlike \"root\", who is the\n" "system administrator, the users you add at this point will not be\n" "authorized to change anything except their own files and their own\n" "configurations, protecting the system from unintentional or malicious\n" "changes that impact on the system as a whole. You will have to create at\n" "least one regular user for yourself -- this is the account which you should\n" "use for routine, day-to-day use. Although it is very easy to log in as\n" "\"root\" to do anything and everything, it may also be very dangerous! A\n" "very simple mistake could mean that your system will not work any more. If\n" "you make a serious mistake as a regular user, the worst that will happen is\n" "that you will lose some information, but not affect the entire system.\n" "\n" "The first field asks you for a real name. Of course, this is not mandatory\n" "-- you can actually enter whatever you like. DrakX will use the first word\n" "you typed in this field and copy it to the \"%s\" field, which is the name\n" "this user will enter to log onto the system. If you like, you may override\n" "the default and change the username. The next step is to enter a password.\n" "From a security point of view, a non-privileged (regular) user password is\n" "not as crucial as the \"root\" password, but that is no reason to neglect\n" "it by making it blank or too simple: after all, your files could be the\n" "ones at risk.\n" "\n" "Once you click on \"%s\", you can add other users. Add a user for each one\n" "of your friends: your father or your sister, for example. Click \"%s\" when\n" "you have finished adding users.\n" "\n" "Clicking the \"%s\" button allows you to change the default \"shell\" for\n" "that user (bash by default).\n" "\n" "When you have finished adding users, you will be asked to choose a user\n" "that can automatically log into the system when the computer boots up. If\n" "you are interested in that feature (and do not care much about local\n" "security), choose the desired user and window manager, then click \"%s\".\n" "If you are not interested in this feature, uncheck the \"%s\" box." msgstr "" "GNU/Linux je višekorisnički sistem, što znači da svaki korisnik može imati\n" "vlastite preference, vlastite datoteke i tako dalje. Možete pročitati " "''Početnički\n" "vodič'' da biste saznali više o višekorisničkim sistemima. Ali za razliku " "od\n" "\"root\"-a, koji je administrator sistema, korisnicima koje dodate u ovom " "trenutku\n" "neće biti dozvoljeno da promijene ništa osim vlastitih datoteka i vlastite\n" "konfiguracije, čime je sistem zaštićen od nenamjernih ili zlonamjernih " "izmjena\n" "koje mogu uticati na cijeli sistem. Moraćete kreirati najmanje jednog " "korisnika\n" "za vas same -- ovo je račun koji trebate koristiti za rutinsku, svakodnevnu\n" "upotrebu. Iako je vrlo lako prijaviti se kao \"root\" da biste radili sve i " "svašta,\n" "to takođe može biti i vrlo opasno! Jedna greška može značiti da vaš sistem\n" "više ne radi. Ako napravite ozbiljnu pogrešku kao običan korisnik, najgore\n" "što se može desiti jeste da izgubite neke informacije, ali ne i da utičete " "na\n" "cijeli sistem.\n" "\n" "U prvom polju unosite vaše pravo ime i prezime. Naravno, ovo nije obavezno\n" "-- u stvari možete ovdje unijeti šta god hoćete. DrakX će koristiti prvu " "riječ\n" "koju unesete i kopirati je u polje \"%s\", što je ime koje će ovaj\n" "korisnik unositi da bi ušao na sistem. Ako želite, možete promijeniti\n" "ponuđenu vrijednost. Idući korak je da unesete šifru. Sa sigurnosne tačke\n" "gledišta, šifra neprivilegovanog (običnog) korisnika nije tako važna kao " "\"root\"\n" "šifra, ali to nije razlog da je zanemarite tako što ćete je ostaviti praznom " "ili\n" "prejednostavnom: na kraju krajeva, vaše lične datoteke je ono što je u\n" "riziku.\n" "\n" "Jednom kada kliknete na \"%s\", možete ih dodati još.\n" "Dodajte po jednog korisnika za svakog od vaših prijatelja: na primjer za\n" "vašeg oca ili sestru. Kliknite na \"%s\" kada završite dodavanje korisnika.\n" "\n" "Klikanjem na dugme \"%s\" možete promijeniti osnovni \"shell\" za tog\n" "korisnika (ponuđen je bash).\n" "\n" "Kada završite dodavanje svih korisnika, bićete upitani da odaberete\n" "korisnika koji se može automatski prijaviti prilikom pokretanja sistema.\n" "Ako ste zainteresovani za ovu mogućnost (i ne brinete previše o lokalnoj\n" "sigurnosti), izaberite željenog korisnika i window manager, zatim kliknite\n" "na \"%s\". Ako niste zainteresovani za to, isključite opciju\n" "\"%s\"." #: ../../standalone/drakconnect:1 #, c-format msgid "Configure Internet Access..." msgstr "Podesi Internet pristup..." #: ../../standalone/drakbackup:1 #, c-format msgid "Please choose the time interval between each backup" msgstr "Izaberite vremenski interval između svakog backupa" #: ../../crypto.pm:1 ../../lang.pm:1 #, c-format msgid "Norway" msgstr "Norveška" #: ../../standalone/drakconnect:1 #, c-format msgid "Delete profile" msgstr "Obriši profil" #: ../../keyboard.pm:1 #, c-format msgid "Danish" msgstr "Danska" #: ../../services.pm:1 #, c-format msgid "" "Automatically switch on numlock key locker under console\n" "and XFree at boot." msgstr "" "Automatski uključuje numlock pod konzolom i grafičkim okruženjem\n" "prilikom boota." #: ../../network/network.pm:1 #, c-format msgid "" "Please enter the IP configuration for this machine.\n" "Each item should be entered as an IP address in dotted-decimal\n" "notation (for example, 1.2.3.4)." msgstr "" "Molim unesite IP konfiguraciju za ovaj računar.\n" "Svaka stavka bi trebala biti unesena kao IP adresa u decimalnoj notaciji\n" "razdvojenoj tačkama (npr. 1.2.3.4)." #: ../../help.pm:1 #, c-format msgid "" "The Mandrake Linux installation is distributed on several CD-ROMs. DrakX\n" "knows if a selected package is located on another CD-ROM so it will eject\n" "the current CD and ask you to insert the correct CD as required." msgstr "" "Mandrake Linux instalacija se prostire na nekoliko CDova. DrakX zna da li " "je\n" "neki paket smješten na drugom CDu i on će izbaciti trenutni CD i zamoliti " "vas\n" "da ubacite neki drugi po potrebi." #: ../../standalone/drakperm:1 #, c-format msgid "When checked, owner and group won't be changed" msgstr "Kada je uključeno, vlasnik i grupa se ne mogu promijeniti" #: ../../lang.pm:1 #, c-format msgid "Bulgaria" msgstr "Bugarska" #: ../../standalone/drakbackup:1 #, c-format msgid "Tuesday" msgstr "Utorak" #: ../../harddrake/data.pm:1 #, c-format msgid "Processors" msgstr "Procesori" #: ../../lang.pm:1 #, c-format msgid "Svalbard and Jan Mayen Islands" msgstr "Svalbard and Jan Mayen ostrva" #: ../../standalone/drakTermServ:1 #, c-format msgid "No NIC selected!" msgstr "Nije izabran nijedan NIC!" #: ../../network/netconnect.pm:1 #, c-format msgid "" "Problems occured during configuration.\n" "Test your connection via net_monitor or mcc. If your connection doesn't " "work, you might want to relaunch the configuration." msgstr "" "Došlo je do problema prilikom podešavanja.\n" "Provjerite vašu konekciju pomoću net_monitor ili mcc. Ako vaša konekcija ne " "radi, možete ponovo pokrenuti podešavanje" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "partition %s is now known as %s" msgstr "particija %s je od sada poznata kao %s" #: ../../standalone/drakbackup:1 #, c-format msgid "Backup Other files..." msgstr "Backup-uj ostale datoteke..." #: ../../lang.pm:1 #, c-format msgid "Congo (Kinshasa)" msgstr "Kongo (Kinshasa)" #: ../../printer/printerdrake.pm:1 #, c-format msgid "SMB server IP" msgstr "SMB server IP" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Partition table of drive %s is going to be written to disk!" msgstr "Tabela particija za uređaj %s će biti zapisana na disk!" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Installing HPOJ package..." msgstr "Instaliram HPOJ pakete..." #: ../../any.pm:1 #, c-format msgid "" "A custom bootdisk provides a way of booting into your Linux system without\n" "depending on the normal bootloader. This is useful if you don't want to " "install\n" "LILO (or grub) on your system, or another operating system removes LILO, or " "LILO doesn't\n" "work with your hardware configuration. A custom bootdisk can also be used " "with\n" "the Mandrake rescue image, making it much easier to recover from severe " "system\n" "failures. Would you like to create a bootdisk for your system?\n" "%s" msgstr "" "Vlastita boot disketa vam omogućuje da pokrenete Linux pri čemu ne ovisite\n" "od bootloader programa. Ovo je korisno ako ne želite instalirati LILO (ili " "grub) na\n" "vaš sistem, ako neki drugi operativni sistem uklanja LILO ili ako LILO ne " "radi\n" "na vašoj trenutnoj konfiguraciji. Vlastiti bootdisk se može takođe koristiti " "sa\n" "Mandrake rescue image, pri čemu je mnogo lakše ispraviti neke ozbiljne\n" "sistemske kvarove. Želite li napraviti boot disketu za vaš sistem?\n" "%s" #: ../../standalone/drakbackup:1 #, c-format msgid "" "\n" " DrakBackup Daemon Report\n" msgstr "" "\n" " DrakBackup Izvještaj o demonima\n" #: ../../keyboard.pm:1 #, c-format msgid "Latvian" msgstr "Latvijska" #: ../../standalone/drakbackup:1 #, c-format msgid "monthly" msgstr "mjesečno" #: ../../../move/move.pm:1 #, fuzzy, c-format msgid "Retry" msgstr "Vrati" #: ../../standalone/drakfloppy:1 #, c-format msgid "Module name" msgstr "Naziv modula" #: ../../network/network.pm:1 #, c-format msgid "Start at boot" msgstr "Pokreni na bootu" #: ../../standalone/drakbackup:1 #, c-format msgid "Use Incremental Backups" msgstr "Koristi inkrementalni backup" #: ../../any.pm:1 #, c-format msgid "First sector of drive (MBR)" msgstr "Prvi sektor diska (MBR)" #: ../../lang.pm:1 #, c-format msgid "El Salvador" msgstr "El Salvador" #: ../../harddrake/data.pm:1 #, c-format msgid "Joystick" msgstr "Joystick" #: ../../standalone/harddrake2:1 #, c-format msgid "DVD" msgstr "DVD" #: ../../any.pm:1 ../../help.pm:1 #, c-format msgid "Use Unicode by default" msgstr "Podrazumijeva se Unicode" #: ../../standalone/harddrake2:1 #, c-format msgid "the module of the GNU/Linux kernel that handles the device" msgstr "modul Linux kernela koji upravlja uređajem" #: ../../standalone/drakclock:1 #, fuzzy, c-format msgid "Is your hardware clock set to GMT?" msgstr "Hardverski sat podešen na GMT" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Trying to rescue partition table" msgstr "Pokušavam da spasim tabelu particija" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Option %s must be an integer number!" msgstr "Opcija %s mora biti cijeli broj!" #: ../../security/l10n.pm:1 #, c-format msgid "Use password to authenticate users" msgstr "Koristi šifru da provjeriš autentičnost korisnika" #: ../../interactive/stdio.pm:1 #, c-format msgid "" "Entries you'll have to fill:\n" "%s" msgstr "" "Stavke koje morate popuniti:\n" "%s" #: ../../standalone/drakbackup:1 #, c-format msgid "" "For backups to other media, files are still created on the hard drive, then " "moved to the other media. Enabling this option will remove the hard drive " "tar files after the backup." msgstr "" "Za backup na druge medije, datoteke će biti napravljene na hard disku, a " "zatim prebačene na taj medij. Uključivanjem ove opcije, tar datoteke koje " "su napravljene na hard disku će biti pobrisane nakon backupa." #: ../../standalone/livedrake:1 #, c-format msgid "Unable to start live upgrade !!!\n" msgstr "Ne mogu da pokrenem live upgrade !!!\n" #: ../../install_steps_gtk.pm:1 ../../diskdrake/interactive.pm:1 #, c-format msgid "Name: " msgstr "Ime: " #: ../../standalone/drakconnect:1 #, c-format msgid "up" msgstr "" #: ../../Xconfig/resolution_and_depth.pm:1 #, c-format msgid "16 million colors (24 bits)" msgstr "16 miliona boja (24 bita)" #: ../../any.pm:1 #, c-format msgid "Allow all users" msgstr "Dozvoli svim korisnicima" #: ../advertising/08-store.pl:1 #, c-format msgid "The official MandrakeSoft Store" msgstr "Oficijelna MandrakeSoft prodavnica" #: ../../install_interactive.pm:1 ../../diskdrake/interactive.pm:1 #, c-format msgid "Resizing" msgstr "Mijenjam veličinu" #: ../../standalone/drakbackup:1 #, c-format msgid "" "Enter the maximum size\n" " allowed for Drakbackup (MB)" msgstr "" "Unesite maksimalnu veličinu\n" " dozvoljenu za Draxbackup (MB)" #: ../../network/netconnect.pm:1 #, c-format msgid "Cable connection" msgstr "Kablovska konekcija" #: ../../standalone/drakperm:1 ../../standalone/logdrake:1 #, c-format msgid "User" msgstr "Korisnik" #: ../../standalone/drakbackup:1 #, c-format msgid "Do new backup before restore (only for incremental backups.)" msgstr "Izvrši novi backup prije vraćanja (samo za inkrementalni backup.)" #: ../../raid.pm:1 #, c-format msgid "mkraid failed" msgstr "mkraid nije uspio" #: ../../standalone/harddrake2:1 #, c-format msgid "Name" msgstr "Ime" #: ../../install_steps_interactive.pm:1 #, c-format msgid "Button 3 Emulation" msgstr "Emulacija 3 dugmeta" #: ../../security/l10n.pm:1 #, c-format msgid "Check additions/removals of sgid files" msgstr "Provjeri dodavanje/brisanje sgid datoteka" #: ../../standalone/drakbackup:1 #, c-format msgid "Sending files..." msgstr "Šaljem datoteke..." #: ../../keyboard.pm:1 #, c-format msgid "Israeli (Phonetic)" msgstr "Izraelska (fonetska)" #: ../../any.pm:1 #, c-format msgid "access to rpm tools" msgstr "pristup rpm alatima" #: ../../printer/printerdrake.pm:1 #, c-format msgid "You must choose/enter a printer/device!" msgstr "Morate izabrati ili unijeti štampač / uređaj!" #: ../../standalone/drakbackup:1 #, c-format msgid "Permission problem accessing CD." msgstr "Problem sa privilegijama tokom pristupa na CD." #: ../../network/modem.pm:1 ../../standalone/drakconnect:1 #, c-format msgid "Phone number" msgstr "Broj telefona" #: ../../harddrake/sound.pm:1 #, c-format msgid "Error: The \"%s\" driver for your sound card is unlisted" msgstr "Greška: Drajver \"%s\" za vašu zvučnu karticu nije na listi" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Printer name, description, location" msgstr "Naziv štampača, opis, lokacija" #: ../../standalone/drakxtv:1 #, c-format msgid "USA (broadcast)" msgstr "USA (broadcast)" #: ../../Xconfig/card.pm:1 #, c-format msgid "Use Xinerama extension" msgstr "Koristi Xinerama ekstenziju" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Loopback" msgstr "Loopback" #: ../../standalone/drakxtv:1 #, c-format msgid "West Europe" msgstr "Zapadna Evropa" #: ../../standalone/drakbackup:1 #, c-format msgid "On CD-R" msgstr "na CDROMu" #: ../../standalone.pm:1 #, c-format msgid "" "[OPTIONS] [PROGRAM_NAME]\n" "\n" "OPTIONS:\n" " --help - print this help message.\n" " --report - program should be one of mandrake tools\n" " --incident - program should be one of mandrake tools" msgstr "" "[OPTIONS] [PROGRAM_NAME]\n" "\n" "OPCIJE:\n" " --help - ispisuje ovu pomoć.\n" " --report - program treba biti neki od mandrake alata\n" " --incident - program treba biti neki od mandrake alata" #: ../../standalone/harddrake2:1 #, c-format msgid "Harddrake2 version %s" msgstr "Harddrake2 verzija %s" #: ../../standalone/drakfloppy:1 #, c-format msgid "Preferences" msgstr "Opcije" #: ../../lang.pm:1 #, c-format msgid "Swaziland" msgstr "Svazilend" #: ../../lang.pm:1 #, c-format msgid "Dominican Republic" msgstr "Dominikanska Republika" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Copying %s" msgstr "Kopiram %s" #: ../../standalone/draksplash:1 #, c-format msgid "Choose color" msgstr "Izaberite boju" #: ../../keyboard.pm:1 #, c-format msgid "Syriac" msgstr "Sirijska" #: ../../standalone/drakperm:1 #, c-format msgid "Set-UID" msgstr "Set-UID" #: ../../help.pm:1 #, c-format msgid "" "Choose the hard drive you want to erase in order to install your new\n" "Mandrake Linux partition. Be careful, all data present on this partition\n" "will be lost and will not be recoverable!" msgstr "" "Izaberite hard disk koji želite obrisati kako biste instalirali vašu novu\n" "Mandrake Linux particiju. Budite pažljivi, svi podaci koji se nalaze na\n" "njemu će biti izgubljeni i neće se moći vratiti!" #. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit) #. -PO: and keep them smaller than 79 chars long #: ../../bootloader.pm:1 #, c-format msgid "Use the %c and %c keys for selecting which entry is highlighted." msgstr "Koristite tipke %c i %c za izbor jedne od opcija." #: ../../mouse.pm:1 #, c-format msgid "Generic 2 Button Mouse" msgstr "Opšti miš sa 2 dugmeta" #: ../../standalone/drakperm:1 #, c-format msgid "Enable \"%s\" to execute the file" msgstr "Uključite \"%s\" da izvršite datoteku" #: ../../lvm.pm:1 #, c-format msgid "Remove the logical volumes first\n" msgstr "Najprije ukloni logičke volumene\n" #. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit) #. -PO: and keep them smaller than 79 chars long #: ../../bootloader.pm:1 #, c-format msgid "The highlighted entry will be booted automatically in %d seconds." msgstr "Osvjetljene stavke će biti bootane automatski za %d sekundi." #: ../../standalone/drakboot:1 #, c-format msgid "" "Can't write /etc/sysconfig/bootsplash\n" "File not found." msgstr "" "Ne mogu pisati u /etc/sysconfig/bootsplash\n" "Datoteka nije pronađena." #: ../../standalone/drakconnect:1 #, c-format msgid "Internet access" msgstr "Pristup Internetu" #: ../../standalone/draksplash:1 #, c-format msgid "" "y coordinate of text box\n" "in number of characters" msgstr "" "y koordinata tekst polja\n" "u broju znakova" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "To get a list of the options available for the current printer click on the " "\"Print option list\" button." msgstr "" "Za listu opcija koje su dostupne za trenutni štampač kliknite na dugme " "\"Lista opcija za štampu\"." #: ../../standalone/drakgw:1 #, c-format msgid "Enabling servers..." msgstr "Uključujem servere..." #: ../../printer/printerdrake.pm:1 #, c-format msgid "Printing test page(s)..." msgstr "Štampam testnu stranicu..." #: ../../standalone/drakbackup:1 #, c-format msgid "" "Transfer successful\n" "You may want to verify you can login to the server with:\n" "\n" "ssh -i %s %s@%s\n" "\n" "without being prompted for a password." msgstr "" "Transfer uspješan\n" "Možda je potrebno da provjerite da li se možete prijaviti na server sa:\n" "\n" "ssh -i %s %s@%s\n" "\n" "bez pitanja o šifri." #: ../../fsedit.pm:1 #, c-format msgid "There is already a partition with mount point %s\n" msgstr "Već postoji particija sa tačkom montiranja %s\n" #: ../../security/help.pm:1 #, c-format msgid "Enable/Disable msec hourly security check." msgstr "Uključi/isključi msec provjeru svakog sata." #: ../../help.pm:1 #, c-format msgid "" "At this point, you need to decide where you want to install the Mandrake\n" "Linux operating system on your hard drive. If your hard drive is empty or\n" "if an existing operating system is using all the available space you will\n" "have to partition the drive. Basically, partitioning a hard drive consists\n" "of logically dividing it to create the space needed to install your new\n" "Mandrake Linux system.\n" "\n" "Because the process of partitioning a hard drive is usually irreversible\n" "and can lead to lost data if there is an existing operating system already\n" "installed on the drive, partitioning can be intimidating and stressful if\n" "you are an inexperienced user. Fortunately, DrakX includes a wizard which\n" "simplifies this process. Before continuing with this step, read through the\n" "rest of this section and above all, take your time.\n" "\n" "Depending on your hard drive configuration, several options are available:\n" "\n" " * \"%s\": this option will perform an automatic partitioning of your blank\n" "drive(s). If you use this option there will be no further prompts.\n" "\n" " * \"%s\": the wizard has detected one or more existing Linux partitions on\n" "your hard drive. If you want to use them, choose this option. You will then\n" "be asked to choose the mount points associated with each of the partitions.\n" "The legacy mount points are selected by default, and for the most part it's\n" "a good idea to keep them.\n" "\n" " * \"%s\": if Microsoft Windows is installed on your hard drive and takes\n" "all the space available on it, you will have to create free space for\n" "Linux. To do so, you can delete your Microsoft Windows partition and data\n" "(see ``Erase entire disk'' solution) or resize your Microsoft Windows FAT\n" "partition. Resizing can be performed without the loss of any data, provided\n" "you have previously defragmented the Windows partition and that it uses the\n" "FAT format. Backing up your data is strongly recommended.. Using this\n" "option is recommended if you want to use both Mandrake Linux and Microsoft\n" "Windows on the same computer.\n" "\n" " Before choosing this option, please understand that after this\n" "procedure, the size of your Microsoft Windows partition will be smaller\n" "then when you started. You will have less free space under Microsoft\n" "Windows to store your data or to install new software.\n" "\n" " * \"%s\": if you want to delete all data and all partitions present on\n" "your hard drive and replace them with your new Mandrake Linux system,\n" "choose this option. Be careful, because you will not be able to undo your\n" "choice after you confirm.\n" "\n" " !! If you choose this option, all data on your disk will be deleted. !!\n" "\n" " * \"%s\": this will simply erase everything on the drive and begin fresh,\n" "partitioning everything from scratch. All data on your disk will be lost.\n" "\n" " !! If you choose this option, all data on your disk will be lost. !!\n" "\n" " * \"%s\": choose this option if you want to manually partition your hard\n" "drive. Be careful -- it is a powerful but dangerous choice and you can very\n" "easily lose all your data. That's why this option is really only\n" "recommended if you have done something like this before and have some\n" "experience. For more instructions on how to use the DiskDrake utility,\n" "refer to the ``Managing Your Partitions '' section in the ``Starter\n" "Guide''." msgstr "" "Na ovom mjestu trebate izabrati gdje želite instalirati Mandrake Linux\n" "operativni sistem na vašem hard disku. Ako je disk prazan ili ako postojeći\n" "operativni sistem koristi sav prostor na njemu, potrebno je da ga\n" "particionirate. U biti, particioniranje hard diska predstavlja logičko\n" "organiziranje kako bi se stvorio prostor za instaliranje vašeg novog\n" "Mandrake Linux sistema.\n" "\n" "Pošto su efekti particioniranja obično nepovratni, i mogu voditi do gubitka\n" "podataka na eventualnom postojećem operativnom sistemu, particioniranje\n" "može biti zastrašujuće i stresno ako ste neiskusan korisnik. Srećom, " "postoji\n" "čarobnjak koji pojednostavljuje taj proces. Prije započinjanja, molim\n" "pročitajte pažljivo ovaj tekst i, prije svega, nemojte žuriti.\n" "\n" "Ovisno o konfiguraciji vašeg hard diska, može biti dostupno nekoliko\n" "mogućnosti:\n" "\n" " * \"%s\": ova opcija vodi na automatsko particioniranje vašeg praznog\n" "diska (diskova). Ako izaberete ovu opciju, neće biti postavljana\n" "nikakva daljnja pitanja.\n" "\n" " * \"%s\": čarobnjak je detektovao jednu ili više postojećih\n" "Linux particija na vašem hard disku. Ako ih želite zadržati, izaberite ovu\n" "opciju. U tom slučaju, bićete upitani da izaberete tačke montiranja koje\n" "odgovaraju svakoj od ovih particija. Automatski će biti predložene ranije\n" "tačke montiranja, i najčešće je pametno zadržati ih.\n" "\n" " * \"%s\": ako je na vašem hard\n" "disku instaliran Microsoft Windows koji je zauzeo sav slobodan prostor,\n" "moraćete napraviti nešto slobodnog prostora za Linux. To možete učiniti\n" "brišući vašu Microsoft Windows particiju zajedno sa podacima (vidi opciju\n" "``Obriši čitav disk'' ispod) ili možete promijeniti veličinu vaše Microsoft\n" "Windows FAT particije. Promjena veličine se može izvršiti bez gubitka\n" "podataka, pod uslovom da prethodno defragmentirate Windows particiju\n" "i da ona koristi FAT format. Backupovanje vaših podataka je strogo\n" "preporučeno. Ova mogućnost je preporučena ako namjeravate koristiti i\n" "Mandrake Linux i Microsoft Windows na istom računaru.\n" "\n" " Prije izbora ove opcije, molim da imate na umu da će, nakon ove\n" "procedure, veličina vaše Microsoft Windows particije biti manja nego\n" "trenutno. To znači da će Microsoft Windows prijavljivati da imate manje\n" "prostora za smještaj podataka ili instaliranje novog softwarea.\n" "\n" " * \"%s\": ako želite da obrišete sve podatke i sve particije koje su\n" "prisutne na vašem hard disku i umjesto njih postavite vaš novi Mandrake\n" "Linux sistem, možete izabrati ovu opciju. Budite oprezni sa ovom\n" "mogućnošću, jer nećete moći poništiti vaš izbor nakon potvrde.\n" "\n" " !! Ako izaberete ovu opciju, svi podaci na vašem disku će biti " "izgubljeni. !!\n" "\n" " * \"%s\": ovo će jednostavno pobrisati sve na disku i početi od\n" "početka, particionirajući ga. Svi podaci na vašem disku će biti\n" "izgubljeni.\n" "\n" " !! Ako izaberete ovu opciju, svi podaci na vašem disku će biti " "izgubljeni. !!\n" "\n" " * \"%s\": ako želite da ručno particionirate vaš hard disk,\n" "izaberite ovu opciju. Budite oprezni -- to je moćan, ali i opasan izbor. " "Vrlo\n" "lako možete izgubiti sve vaše podatke. Zato ovu opciju ne preporučujemo,\n" "osim ako ste nešto ovakvo već radili i imate nekog iskustva. Više uputstava\n" "za korištenje DiskDrake alata možete naći u ``Vodiču za početnike'', " "odjeljak\n" "``Upravljanje vašim particijama''." #: ../../lang.pm:1 #, c-format msgid "Ukraine" msgstr "Ukrajina" #: ../../standalone/drakbug:1 #, c-format msgid "Application:" msgstr "Aplikacija:" #: ../../network/isdn.pm:1 #, c-format msgid "External ISDN modem" msgstr "Vanjski ISDN modem" #: ../../security/help.pm:1 #, c-format msgid "if set to yes, report check result by mail." msgstr "ako je postavljeno na da, prijavljuje rezultate provjere mailom." #: ../../interactive/stdio.pm:1 #, c-format msgid "Your choice? (default %s) " msgstr "Vaš izbor? (podrazumjevano %s)" #: ../../harddrake/sound.pm:1 #, c-format msgid "Trouble shooting" msgstr "Kako ukloniti problem?" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "Test page(s) have been sent to the printer.\n" "It may take some time before the printer starts.\n" "Printing status:\n" "%s\n" "\n" msgstr "" "Testna stranica je poslana štampaču.\n" "Može potrajati određeno vrijeme dok štampač krene.\n" "Status štampanja:\n" "%s\n" "\n" #: ../../standalone/drakbackup:1 #, c-format msgid "daily" msgstr "dnevno" #: ../../printer/printerdrake.pm:1 #, c-format msgid "and one unknown printer" msgstr "i jedan nepoznat štampač" #: ../../lang.pm:1 ../../standalone/drakxtv:1 #, c-format msgid "Ireland" msgstr "Irska" #: ../../standalone/drakbackup:1 #, c-format msgid " Restore Configuration " msgstr " Vrati konfiguraciju " #: ../../Xconfig/test.pm:1 #, c-format msgid "Is this the correct setting?" msgstr "Da li je ovo ispravno?" #: ../../help.pm:1 #, c-format msgid "" "You will now set up your Internet/network connection. If you wish to\n" "connect your computer to the Internet or to a local network, click \"%s\".\n" "Mandrake Linux will attempt to autodetect network devices and modems. If\n" "this detection fails, uncheck the \"%s\" box. You may also choose not to\n" "configure the network, or to do it later, in which case clicking the \"%s\"\n" "button will take you to the next step.\n" "\n" "When configuring your network, the available connections options are:\n" "traditional modem, ISDN modem, ADSL connection, cable modem, and finally a\n" "simple LAN connection (Ethernet).\n" "\n" "We will not detail each configuration option - just make sure that you have\n" "all the parameters, such as IP address, default gateway, DNS servers, etc.\n" "from your Internet Service Provider or system administrator.\n" "\n" "You can consult the ``Starter Guide'' chapter about Internet connections\n" "for details about the configuration, or simply wait until your system is\n" "installed and use the program described there to configure your connection." msgstr "" "Sada ćete podesiti vašu Internet/mrežnu konekciju. Ako želite spojiti\n" "vaš računar na Internet ili lokalnu mrežu, kliknite na \"%s\". Mandrake\n" "Linux će pokušati prepoznati mrežne uređaje i modeme.\n" "Ako prepoznavanje ne uspije, isključite opciju \"%s\".\n" "Možete takođe izabrati da ne podešavate mrežu ili da to uradite kasnije,\n" "u kojem slučaju vas klik na dugme \"%s\" vodi na idući korak.\n" "\n" "Kada podešavate mrežu, dostupne opcije su: tradicionalni modem, ISDN\n" "modem, ADSL konekcija, kablovski modem i konačno obična LAN veza\n" "(Ethernet).\n" "\n" "Nećemo dati detalje o svakoj od konfiguracijskih opcija - samo provjerite\n" "da li ste dobili sve parametre, kao što je IP adresa, default gateway, DNS\n" "serveri, itd. od svog Internet Service Providera ili sistemskog " "administratora.\n" "\n" "Možete pogledati poglavlje ''Vodiča za početnike'' o Internet konekcijama\n" "za detalje o podešavanju, ili jednostavno sačekajte da vaš sistem bude\n" "instaliran i koristite program koji je tamo opisan za podešavanje vaše veze." #: ../../standalone/drakbackup:1 #, c-format msgid "Wizard Configuration" msgstr "Čarobnjak za podešavanje" #: ../../modules/interactive.pm:1 #, c-format msgid "Autoprobe" msgstr "Ispitivanje" #: ../../security/help.pm:1 #, c-format msgid "" "if set to yes, check for :\n" "\n" "- empty passwords,\n" "\n" "- no password in /etc/shadow\n" "\n" "- for users with the 0 id other than root." msgstr "" "ako je postavljeno na da, provjerava:\n" "\n" "- prazne šifre,\n" "\n" "- nedostatak šifre u /etc/shadow\n" "\n" "- korisnike sa id-om 0 koji nisu root." #: ../../standalone/drakbackup:1 #, c-format msgid "Backup system files..." msgstr "Backup-uj sistemske datoteke..." #: ../../any.pm:1 #, c-format msgid "Can't use broadcast with no NIS domain" msgstr "Ne mogu koristiti broadcast bez NIS domene" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Removing printer \"%s\"..." msgstr "Uklanjam štampač \"%s\" ..." #: ../../security/l10n.pm:1 #, c-format msgid "Shell history size" msgstr "Veličina historije shell-a" #: ../../standalone/drakfloppy:1 #, c-format msgid "drakfloppy" msgstr "drakfloppy" #: ../../standalone/drakpxe:1 #, c-format msgid "" "Please indicate where the auto_install.cfg file is located.\n" "\n" "Leave it blank if you do not want to set up automatic installation mode.\n" "\n" msgstr "" "Molim navedite gdje se nalazi datoteka auto_install.cfg.\n" "\n" "Ostavite ovo praznim ako ne želite podesiti režim automatske instalacije.\n" "\n" #: ../../printer/cups.pm:1 ../../standalone/printerdrake:1 #, c-format msgid "Configured on other machines" msgstr "Podešeno na ostalim računarima" #: ../../standalone/harddrake2:1 #, c-format msgid "information level that can be obtained through the cpuid instruction" msgstr "nivo informacija koje se mogu dobiti cpuid instrukcijom" #: ../../lang.pm:1 #, c-format msgid "Peru" msgstr "Peru" #: ../../standalone/drakbackup:1 #, c-format msgid " on device: %s" msgstr "na uređaju: %s" #: ../../install_interactive.pm:1 #, c-format msgid "Remove Windows(TM)" msgstr "Ukloni Windows(TM)" #: ../../services.pm:1 #, c-format msgid "Starts the X Font Server (this is mandatory for XFree to run)." msgstr "Pokreće X Font Server (ovo je nužno da bi XFree radio)." #: ../../standalone/drakTermServ:1 #, c-format msgid "" "Most of these values were extracted\n" "from your running system.\n" "You can modify as needed." msgstr "" "Većinu ovih vrijednosti uzimam iz\n" "vašeg aktivnog sistema.\n" "Možete ih izmijeniti po potrebi." #: ../../standalone/drakfont:1 #, c-format msgid "Select the font file or directory and click on 'Add'" msgstr "Izaberite font datoteku ili direktorij i kliknite na 'Dodaj'" #: ../../lang.pm:1 #, c-format msgid "Madagascar" msgstr "Madagaskar" #: ../../standalone/drakbug:1 #, c-format msgid "Urpmi" msgstr "Urpmi" #: ../../standalone/drakbackup:1 #, c-format msgid "Cron not available yet as non-root" msgstr "Kron još uvijek nije dostupan kao ne-root" #: ../../install_steps_interactive.pm:1 ../../services.pm:1 #: ../../standalone/drakbackup:1 #, c-format msgid "System" msgstr "Sistem" #: ../../any.pm:1 ../../help.pm:1 #, c-format msgid "Do you want to use this feature?" msgstr "Da li želite koristiti ovu mogućnost?" #: ../../keyboard.pm:1 #, c-format msgid "Arabic" msgstr "Arapska" #: ../../standalone/drakbackup:1 #, c-format msgid "" "\n" "- Options:\n" msgstr "" "\n" "- Opcije:\n" #: ../../standalone/drakbackup:1 #, c-format msgid "Password required" msgstr "Potrebna šifra" #: ../../common.pm:1 #, c-format msgid "%d minutes" msgstr "%d minuta" #: ../../Xconfig/resolution_and_depth.pm:1 #, c-format msgid "Graphics card: %s" msgstr "Grafička karta: %s" #: ../../standalone/drakbackup:1 #, c-format msgid "WebDAV transfer failed!" msgstr "WebDAV transfer nije uspio!" #: ../../Xconfig/card.pm:1 #, c-format msgid "XFree configuration" msgstr "XFree konfiguracija" #: ../../diskdrake/hd_gtk.pm:1 #, c-format msgid "Choose action" msgstr "Izaberi akciju" #: ../../lang.pm:1 #, c-format msgid "French Polynesia" msgstr "Francuska Polinezija" #: ../../help.pm:1 #, c-format msgid "" "Usually, DrakX has no problems detecting the number of buttons on your\n" "mouse. If it does, it assumes you have a two-button mouse and will\n" "configure it for third-button emulation. The third-button mouse button of a\n" "two-button mouse can be ``pressed'' by simultaneously clicking the left and\n" "right mouse buttons. DrakX will automatically know whether your mouse uses\n" "a PS/2, serial or USB interface.\n" "\n" "If for some reason you wish to specify a different type of mouse, select it\n" "from the list provided.\n" "\n" "If you choose a mouse other than the default, a test screen will be\n" "displayed. Use the buttons and wheel to verify that the settings are\n" "correct and that the mouse is working correctly. If the mouse is not\n" "working well, press the space bar or [Return] key to cancel the test and to\n" "go back to the list of choices.\n" "\n" "Wheel mice are occasionally not detected automatically, so you will need to\n" "select your mouse from a list. Be sure to select the one corresponding to\n" "the port that your mouse is attached to. After selecting a mouse and\n" "pressing the \"%s\" button, a mouse image is displayed on-screen. Scroll\n" "the mouse wheel to ensure that it is activated correctly. Once you see the\n" "on-screen scroll wheel moving as you scroll your mouse wheel, test the\n" "buttons and check that the mouse pointer moves on-screen as you move your\n" "mouse." msgstr "" "Obično DrakX nema problema da odredi broj dugmadi na vašem mišu.\n" "Ako ima, pretpostaviće da imate miš sa dva dugmeta i podesiće simulaciju\n" "trećeg dugmeta. Treće dugme se može ''pritisnuti'' na mišu sa dva dugmeta\n" "istovremenim klikom na lijevo i desno dugme miša. DrakX će automatski\n" "znati da li miš koristi PS/2, serijski ili USB interfejs.\n" "\n" "Ako iz nekog razloga želite navesti drugačiji tip miša, izaberite ga sa\n" "ponuđene liste.\n" "\n" "Ako izaberete miš različit od ponuđenog, biće prikazan testni ekran.\n" "Koristite miš i točkić da potvrdite da su postavke tačne i da miš radi\n" "ispravno. Ako miš ne radi kako treba, pritisnite tipku space ili Enter\n" "da prekinete test i vratite se na listu izbora.\n" "\n" "Miševi sa točkićem često nisu prepoznati automatski, stoga trebate izabrati\n" "miš na listi. Pazite da izaberete odgovarajući port na koji je vaš miš\n" "priključen. Nakon izbora miša i pritiska na dugme \"%s\", na ekranu će\n" "biti prikazana slika miša. Pomjerajte točkić miša kako biste provjerili da " "li\n" "ispravno funkcioniše. Kada vidite da se točkić na ekranu pomjera onako\n" "kako vi vrtite stvarni točkić, provjerite dugmad i provjerite da li se " "pokazivač\n" "na ekranu pomjera onako kako vi pomjerate miš." #: ../../services.pm:1 #, c-format msgid "Support the OKI 4w and compatible winprinters." msgstr "Podrška za OKI 4w i kompatibilne 'winprinter' štampače." #: ../../standalone/drakbackup:1 #, c-format msgid "" "Files or wildcards listed in a .backupignore file at the top of a directory " "tree will not be backed up." msgstr "" "Datoteke i wild-cards navedene u datoteci .backupignore na vrhu stabla " "direktorija neće biti backupovane." #: ../../services.pm:1 #, c-format msgid "Launch the ALSA (Advanced Linux Sound Architecture) sound system" msgstr "Pokreće ALSA zvučni sistem (Advanced Linux Sound Architecture)" #. -PO: the first %s is the card type (scsi, network, sound,...) #. -PO: the second is the vendor+model name #: ../../modules/interactive.pm:1 #, c-format msgid "Installing driver for %s card %s" msgstr "Instaliram drajver za %s karticu %s" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "You have transferred your former default printer (\"%s\"), Should it be also " "the default printer under the new printing system %s?" msgstr "" "Prebacili ste vaš bivši podrazumjevani štampač (\"%s\"),Da li će to također " "biti podrazumjevani štampač podnovim sistemom štampe %s?" #: ../../standalone/drakTermServ:1 #, c-format msgid "Enable Server" msgstr "Omogući server" #: ../../keyboard.pm:1 #, c-format msgid "Ukrainian" msgstr "Ukrajinska" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "The network access was not running and could not be started. Please check " "your configuration and your hardware. Then try to configure your remote " "printer again." msgstr "" "Mrežni pristup nije aktivan i nije mogao biti pokrenut. Molim provjerite " "vašu konfiguraciju i vaš hardware. Onda ponovo pokušajte podesiti udaljeni " "štampač." #: ../../standalone/drakperm:1 #, c-format msgid "Enable \"%s\" to write the file" msgstr "Omogući \"%s\" da piše u datoteku" #: ../../install_steps_interactive.pm:1 #, c-format msgid "Please insert the Boot floppy used in drive %s" msgstr "Molim ubacite boot disketu koju ste koristili u jedinicu %s" #: ../../printer/main.pm:1 ../../printer/printerdrake.pm:1 #, c-format msgid "Local network(s)" msgstr "Lokalna mreža (mreže)" #: ../../help.pm:1 #, c-format msgid "Remove Windows" msgstr "Ukloni Windows" #: ../../standalone/scannerdrake:1 #, c-format msgid "" "Your %s has been configured.\n" "You may now scan documents using \"XSane\" from Multimedia/Graphics in the " "applications menu." msgstr "" "Vaš %s je podešen.\n" "Sada možete skenirati dokumente koristeći \"XSane\" koji se nalazi u meniju " "Aplikacije/Multimedija/Grafika." #: ../../harddrake/data.pm:1 #, c-format msgid "Firewire controllers" msgstr "Firewire kontroleri" #: ../../help.pm:1 #, c-format msgid "" "After you have configured the general bootloader parameters, the list of\n" "boot options that will be available at boot time will be displayed.\n" "\n" "If there are other operating systems installed on your machine they will\n" "automatically be added to the boot menu. You can fine-tune the existing\n" "options by clicking \"%s\" to create a new entry; selecting an entry and\n" "clicking \"%s\" or \"%s\" to modify or remove it. \"%s\" validates your\n" "changes.\n" "\n" "You may also not want to give access to these other operating systems to\n" "anyone who goes to the console and reboots the machine. You can delete the\n" "corresponding entries for the operating systems to remove them from the\n" "bootloader menu, but you will need a boot disk in order to boot those other\n" "operating systems!" msgstr "" "Nakon što podesite opšte parametre bootloadera, dobićete listu opcija\n" "koja će biti prikazana prilikom svakog boot-a.\n" "\n" "Ako na vašem računaru postoje neki drugi operativni sistemi, oni će biti\n" "dodani na tu listu. Možete fino podesiti postojeće opcije klikajući na\n" "dugme \"%s\" da biste dodali novu opciju; izborom postojeće opcije i " "klikanjem\n" "na \"%s\" ili \"%s\" da biste je izmijenili ili uklonili. \"%s\" potvrđuje\n" "vaše izmjene.\n" "\n" "Takođe možda ne želite dati pristup na ove druge operativne sisteme bilo\n" "kome ko sjedne za računar i restartuje ga. Možete obrisati pojedine stavke " "iz\n" "boot menija, ali odgovarajuće operativne sisteme više nećete moći pokrenuti\n" "bez boot diskete!" #: ../../standalone/drakboot:1 #, c-format msgid "System mode" msgstr "Sistemske opcije" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "To print on a NetWare printer, you need to provide the NetWare print server " "name (Note! it may be different from its TCP/IP hostname!) as well as the " "print queue name for the printer you wish to access and any applicable user " "name and password." msgstr "" "Da biste štampali na NetWare štampač, trebate dati naziv NetWare print " "servera (Pažnja! Ono može biti različito od njegovog TCP/IP imena!) kao i " "naziv reda za štampu na štampaču kojem želite pristupiti i eventualno " "korisničko ime i šifru." #: ../../standalone/drakTermServ:1 #, c-format msgid "Netmask:" msgstr "Netmask:" #: ../../network/adsl.pm:1 #, c-format msgid "Do it later" msgstr "Uradi kasnije" #: ../../any.pm:1 #, c-format msgid "Append" msgstr "Append" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Refresh printer list (to display all available remote CUPS printers)" msgstr "" "Osvježi listu štampača (kako bi bili prikazani svi dostupni CUPS štampači)" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "When this option is turned on, on every startup of CUPS it is automatically " "made sure that\n" "\n" "- if LPD/LPRng is installed, /etc/printcap will not be overwritten by CUPS\n" "\n" "- if /etc/cups/cupsd.conf is missing, it will be created\n" "\n" "- when printer information is broadcasted, it does not contain \"localhost\" " "as the server name.\n" "\n" "If some of these measures lead to problems for you, turn this option off, " "but then you have to take care of these points." msgstr "" "Kada je upaljena ova opcija, prilikom svakog pokretanja CUPSa biće " "provjereno da\n" "\n" "- je instaliran LPD/LPRng, CUPS neće prepisati /etc/printcap\n" "\n" "- postoji /etc/cups/cupsd.conf, ako ne onda će biti napravljen\n" "\n" "- informacije o štampaču ne sadrže \"localhost\" kao ime servera prilikom " "broadcasta.\n" "\n" "Ako vam neke od ovih mjera stvaraju probleme, možete isključiti ovu opciju, " "ali onda se morate sami brinuti da su navedeni uslovi ispunjeni." #: ../../install_steps_interactive.pm:1 #, c-format msgid "" "The auto install can be fully automated if wanted,\n" "in that case it will take over the hard drive!!\n" "(this is meant for installing on another box).\n" "\n" "You may prefer to replay the installation.\n" msgstr "" "Ova auto instalacija može biti potpuno automatizovana ako želite,\n" "u kojem slučaju će ona preuzeti hard disk!!\n" "(ovo je namjenjeno za instaliranje na drugi računar).\n" "\n" "Možda ćete radije željeti ponoviti instalaciju.\n" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Network printer \"%s\", port %s" msgstr "Mrežni štampač \"%s\", port %s" #: ../../standalone/drakgw:1 #, c-format msgid "" "Please choose what network adapter will be connected to your Local Area " "Network." msgstr "" "Molim izaberite koji mrežni adapter će biti spojen na vašu Lokalnu mrežu." #: ../../standalone/drakbackup:1 #, c-format msgid "OK to restore the other files." msgstr "OK za vraćanje ostalih datoteka." #: ../../install_steps_interactive.pm:1 #, c-format msgid "Please choose your keyboard layout." msgstr "Molim izaberite izgled vaše tastature." #: ../../printer/printerdrake.pm:1 #, c-format msgid "Printer Device URI" msgstr "URI uređaja štampača" #: ../../standalone/drakbackup:1 #, c-format msgid "Not erasable media!" msgstr "Medij nije izbrisiv!" #: ../../network/modem.pm:1 ../../standalone/drakconnect:1 #, c-format msgid "Terminal-based" msgstr "Terminal" #: ../../security/help.pm:1 #, c-format msgid "Enable/Disable IP spoofing protection." msgstr "Uključi/isključi zaštitu od lažiranja IP adrese." #: ../../printer/printerdrake.pm:1 #, c-format msgid "Installing a printing system in the %s security level" msgstr "Instaliram sistem za štampu na sigurnosnom nivou: %s" #: ../../any.pm:1 #, c-format msgid "The user name is too long" msgstr "Korisničko ime je predugačko" #: ../../any.pm:1 #, c-format msgid "Other OS (windows...)" msgstr "Ostali OSi (Windows...)" #: ../../standalone/drakbackup:1 #, c-format msgid "WebDAV remote site already in sync!" msgstr "Udaljeni WebDAV sajt je već sinhroniziran!" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Reading printer database..." msgstr "Čitam bazu podataka o štampačima ..." #: ../../install_steps_interactive.pm:1 #, c-format msgid "Generate auto install floppy" msgstr "Napravi autoinstalacijsku disketu" #: ../../standalone/drakbackup:1 #, c-format msgid "" "\t\t user name: %s\n" "\t\t on path: %s \n" msgstr "" "\t\t korisničko ime: %s\n" "\t\t u direktoriju: %s \n" #: ../../lang.pm:1 #, c-format msgid "Somalia" msgstr "Somalija" #: ../../harddrake/sound.pm:1 #, c-format msgid "No open source driver" msgstr "Nema open source drajver" #: ../../standalone/printerdrake:1 #, c-format msgid "Def." msgstr "Def." #: ../../security/level.pm:1 #, c-format msgid "" "This is similar to the previous level, but the system is entirely closed and " "security features are at their maximum." msgstr "" "Baziran na prethodnom nivou, ali sada je sistem potpuno zatvoren.\n" "Sigurnosne osobine na maksimumu." #: ../../lang.pm:1 #, c-format msgid "Nicaragua" msgstr "Nikaragva" #: ../../lang.pm:1 #, c-format msgid "New Caledonia" msgstr "Nova Kaledonija" #: ../../network/isdn.pm:1 #, c-format msgid "European protocol (EDSS1)" msgstr "Evropski protokol (EDSS1)" #: ../../standalone/printerdrake:1 #, c-format msgid "/_Delete" msgstr "/_Izbriši" #: ../../any.pm:1 #, c-format msgid "Video mode" msgstr "Video mod" #: ../../lang.pm:1 #, c-format msgid "Oman" msgstr "Oman" #: ../../standalone/logdrake:1 #, c-format msgid "Please enter your email address below " msgstr "Molim unesite vašu email adresu ispod" #: ../../standalone/net_monitor:1 #, c-format msgid "Network Monitoring" msgstr "Nadzor mreže" #: ../../diskdrake/hd_gtk.pm:1 #, c-format msgid "SunOS" msgstr "SunOS" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "New size in MB: " msgstr "Nova veličina u MB: " #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Partition table type: %s\n" msgstr "Tip tabele particija: %s\n" #: ../../any.pm:1 #, c-format msgid "Authentication Windows Domain" msgstr "Autentikacijska Windows domena" #: ../../keyboard.pm:1 #, c-format msgid "US keyboard" msgstr "US tastatura" #: ../../install_steps_interactive.pm:1 #, c-format msgid "Buttons emulation" msgstr "Emulacija dugmeta" #: ../../printer/printerdrake.pm:1 #, c-format msgid ", network printer \"%s\", port %s" msgstr ", mrežni štampač \"%s\", port %s" #: ../../standalone/drakbackup:1 #, c-format msgid "" "\n" "Drakbackup activities via tape:\n" "\n" msgstr "" "\n" "Drakbackup aktivnosti putem trake:\n" "\n" #: ../../standalone/drakbackup:1 #, c-format msgid "" "\n" " FTP connection problem: It was not possible to send your backup files by " "FTP.\n" msgstr "" "\n" " Problem sa FTP konekcijom: Nije bilo moguće poslati vaše backup datoteke " "putem FTPa.\n" #: ../../standalone/net_monitor:1 #, c-format msgid "Sending Speed:" msgstr "Brzina slanja:" #: ../../harddrake/sound.pm:1 #, c-format msgid "" "The classic bug sound tester is to run the following commands:\n" "\n" "\n" "- \"lspcidrake -v | fgrep AUDIO\" will tell you which driver your card uses\n" "by default\n" "\n" "- \"grep sound-slot /etc/modules.conf\" will tell you what driver it\n" "currently uses\n" "\n" "- \"/sbin/lsmod\" will enable you to check if its module (driver) is\n" "loaded or not\n" "\n" "- \"/sbin/chkconfig --list sound\" and \"/sbin/chkconfig --list alsa\" will\n" "tell you if sound and alsa services're configured to be run on\n" "initlevel 3\n" "\n" "- \"aumix -q\" will tell you if the sound volume is muted or not\n" "\n" "- \"/sbin/fuser -v /dev/dsp\" will tell which program uses the sound card.\n" msgstr "" "Klasični način utvrđivanja bugova u zvučnom sistemu je izvršavanje\n" "sljedećih naredbi:\n" "\n" "\n" "- \"lspcidrake -v | fgrep AUDIO\" će vam reći koji drajver inače koristi\n" "vaša kartica\n" "\n" "- \"grep sound-slot /etc/modules.conf\" će vam reći koji drajver je\n" "trenutno u upotrebi\n" "\n" "- sa \"/sbin/lsmod\" možete provjeriti da li je modul (drajver) učitan\n" "ili ne\n" "\n" "- \"/sbin/chkconfig --list sound\" i \"/sbin/chkconfig --list alsa\" vam\n" "govore da li su servisi sound i alsa podešeni da se pokreću na\n" "initlevel 3\n" "\n" "- \"aumix -q\" će vam reći da li je zvuk utišan (muted) ili ne\n" "\n" "- \"/sbin/fuser -v /dev/dsp\" vam govori koji program koristi zvučnu " "karticu.\n" #: ../../standalone/harddrake2:1 #, c-format msgid "Halt bug" msgstr "Halt bug" #: ../../standalone/logdrake:1 #, c-format msgid "Mail alert configuration" msgstr "Podešavanje Mail obavijesti" #: ../../lang.pm:1 #, c-format msgid "Tokelau" msgstr "Tokelau" #: ../../standalone/logdrake:1 #, c-format msgid "Matching" msgstr "Odgovara" #: ../../keyboard.pm:1 #, c-format msgid "Bosnian" msgstr "Bosanska" #: ../../standalone/drakbug:1 #, c-format msgid "Release: " msgstr "Izdanje:" #: ../../network/tools.pm:1 ../../standalone/drakconnect:1 #, c-format msgid "Connection speed" msgstr "Brzina konekcije" #: ../../lang.pm:1 #, c-format msgid "Namibia" msgstr "Namibija" #: ../../services.pm:1 #, c-format msgid "Database Server" msgstr "Server baze podataka" #: ../../standalone/harddrake2:1 #, c-format msgid "special capacities of the driver (burning ability and or DVD support)" msgstr "posebne mogućnosti drajvera (mogućnost prženja i/ili podrška za DVD)" #: ../../raid.pm:1 #, c-format msgid "Can't add a partition to _formatted_ RAID md%d" msgstr "Ne mogu dodati particiju na _formatiran_ RAID md%d" #: ../../standalone/drakclock:1 #, fuzzy, c-format msgid "Network Time Protocol" msgstr "Mrežni interface" #: ../../Xconfig/card.pm:1 #, c-format msgid "" "Your card can have 3D hardware acceleration support but only with XFree %s,\n" "NOTE THIS IS EXPERIMENTAL SUPPORT AND MAY FREEZE YOUR COMPUTER.\n" "Your card is supported by XFree %s which may have a better support in 2D." msgstr "" "Vaša kartica može imati podršku za 3D hardversko ubrzanje sa XFree %s,\n" "PAŽNJA OVO JE EKSPERIMENTALNA PODRŠKA I MOŽE ZALEDITI VAŠ RAČUNAR.\n" "Vašu karticu takođe podržava XFree %s koji može imati bolju podršku za 2D." #: ../../standalone/draksec:1 #, c-format msgid "Please wait, setting security options..." msgstr "Molim sačekajte, podešavam sigurnosne opcije..." #: ../../harddrake/v4l.pm:1 #, c-format msgid "Unknown|CPH05X (bt878) [many vendors]" msgstr "Nepoznat|CPH05X (bt878) [razni proizvođači]" #: ../../standalone/drakboot:1 #, c-format msgid "Launch the graphical environment when your system starts" msgstr "Pokreni X-Window sistem na startu" #: ../../standalone/drakbackup:1 #, c-format msgid "hourly" msgstr "svakog sata" #: ../../keyboard.pm:1 #, c-format msgid "Right Shift key" msgstr "Desna Shift tipka" #: ../../standalone/drakbackup:1 #, c-format msgid " Successfuly Restored on %s " msgstr " uspješno spašeni na %s " #: ../../printer/printerdrake.pm:1 #, c-format msgid "Making printer port available for CUPS..." msgstr "Omogućujem pristup štampaču putem CUPSa..." #: ../../lang.pm:1 #, c-format msgid "Antigua and Barbuda" msgstr "Antigua i Barbuda" #: ../../standalone/drakTermServ:1 #, c-format msgid "" "!!! Indicates the password in the system database is different than\n" " the one in the Terminal Server database.\n" "Delete/re-add the user to the Terminal Server to enable login." msgstr "" "!!! Određuje šifru u sistemskoj bazi podataka koja se razlikuje\n" "od one u bazi podataka Terminal Servera.\n" "Obrišite i ponovo dodajte korisnika u Terminal Server da biste omogućili " "pristup." #: ../../keyboard.pm:1 #, c-format msgid "Spanish" msgstr "Španska" #: ../../services.pm:1 #, c-format msgid "Start" msgstr "Start" #: ../../security/l10n.pm:1 #, c-format msgid "Direct root login" msgstr "Direktna root prijava" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Configuring applications..." msgstr "Podešavam aplikacije..." #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "\n" "Welcome to the Printer Setup Wizard\n" "\n" "This wizard will help you to install your printer(s) connected to this " "computer, connected directly to the network or to a remote Windows machine.\n" "\n" "Please plug in and turn on all printers connected to this machine so that it/" "they can be auto-detected. Also your network printer(s) and your Windows " "machines must be connected and turned on.\n" "\n" "Note that auto-detecting printers on the network takes longer than the auto-" "detection of only the printers connected to this machine. So turn off the " "auto-detection of network and/or Windows-hosted printers when you don't need " "it.\n" "\n" " Click on \"Next\" when you are ready, and on \"Cancel\" if you do not want " "to set up your printer(s) now." msgstr "" "\n" "Dobro došli u Čarobnjak za podešavanje štampača\n" "\n" "Ovaj čarobnjak će vam pomoći da instalirate štampače spojene na ovaj " "računar, na mrežu ili na udaljeni Windows računar.\n" "\n" "Ako imate štampač spojen na ovaj računar, molim priključite ga na računar i " "upalite ga kako bi bio automatski prepoznat. Takođe mrežni štampači i " "Windows računari moraju biti povezani i upaljeni.\n" "\n" "Obratite pažnju da automatsko prepoznavanje mrežnih štampača traje duže nego " "prepoznavanje štampača spojenih na ovaj računar. Stoga ugasite prepoznavanje " "mrežnih štampača i/ili Windows štampača ako vam ona nije potrebna.\n" "\n" " Kliknite na \"Dalje\" kada budete spremni, ili na \"Odustani\" ako ne " "želite podesiti štampač sada." #: ../../network/netconnect.pm:1 #, c-format msgid "Normal modem connection" msgstr "Normalna modemska konekcija" #: ../../standalone/drakbackup:1 ../../standalone/drakfont:1 #, c-format msgid "File Selection" msgstr "Izbor datoteka" #: ../../help.pm:1 ../../printer/cups.pm:1 ../../printer/data.pm:1 #, c-format msgid "CUPS" msgstr "CUPS" #: ../../standalone/drakbackup:1 #, c-format msgid "Erase tape before backup" msgstr "Obriši traku prije backupa" #: ../../standalone/harddrake2:1 #, c-format msgid "Run config tool" msgstr "Pokreni alat za podešavanje" #: ../../any.pm:1 #, c-format msgid "Bootloader installation" msgstr "Instalacija bootloadera" #: ../../install_interactive.pm:1 #, c-format msgid "Root partition size in MB: " msgstr "Veličina root particije u MB:" #: ../../install_steps_gtk.pm:1 #, c-format msgid "This is a mandatory package, it can't be unselected" msgstr "Ovo je obavezan paket, ne može biti isključen" #: ../../standalone/drakTermServ:1 #, c-format msgid "" " - Create etherboot floppies/CDs:\n" " \tThe diskless client machines need either ROM images on the NIC, or " "a boot floppy\n" " \tor CD to initate the boot sequence. drakTermServ will help " "generate these\n" " \timages, based on the NIC in the client machine.\n" " \t\t\n" " \tA basic example of creating a boot floppy for a 3Com 3c509 " "manually:\n" " \t\t\n" " \tcat /usr/lib/etherboot/boot1a.bin \\\n" " \t\t/usr/lib/etherboot/lzrom/3c509.lzrom > /dev/fd0" msgstr "" " - Create etherboot floppies/CDs:\n" " \tThe diskless client machines need either ROM images on the NIC, or " "a boot floppy\n" " \tor CD to initate the boot sequence. drakTermServ will help " "generate these\n" " \timages, based on the NIC in the client machine.\n" " \t\t\n" " \tA basic example of creating a boot floppy for a 3Com 3c509 " "manually:\n" " \t\t\n" " \tcat /usr/lib/etherboot/boot1a.bin \\\n" " \t\t/usr/lib/etherboot/lzrom/3c509.lzrom > /dev/fd0" #: ../../standalone/drakTermServ:1 #, c-format msgid "Etherboot ISO image is %s" msgstr "Etherboot ISO image je %s" #: ../../services.pm:1 #, c-format msgid "" "named (BIND) is a Domain Name Server (DNS) that is used to resolve host " "names to IP addresses." msgstr "" "named (BIND) je Domain Name Server (DNS) koji se koristi za određivanje IP " "adrese iz imena računara." #: ../../lang.pm:1 #, c-format msgid "Saint Lucia" msgstr "Saint Lucia" #: ../../standalone/drakbackup:1 #, c-format msgid "November" msgstr "Novembar" #: ../../standalone/drakconnect:1 #, c-format msgid "Disconnect..." msgstr "Prekini konekciju..." #: ../../standalone/drakbug:1 #, c-format msgid "Report" msgstr "Izvještaj" #: ../../lang.pm:1 #, c-format msgid "Palau" msgstr "Palau" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "level" msgstr "nivo" #: ../advertising/13-mdkexpert_corporate.pl:1 #, c-format msgid "" "All incidents will be followed up by a single qualified MandrakeSoft " "technical expert." msgstr "" "Sve incidente će pratiti jedan kvalificiran MandrakeSoft tehnički eksper." #: ../../install_steps_gtk.pm:1 ../../install_steps_interactive.pm:1 #, c-format msgid "Package Group Selection" msgstr "Izbor grupe paketa" #: ../../standalone/drakTermServ:1 #, c-format msgid "" "Allow local hardware\n" "configuration." msgstr "" "Omogući lokalno podešavanje\n" "hardvera." #: ../../standalone/drakbackup:1 #, c-format msgid "Restore Via Network Protocol: %s" msgstr "Restore putem mrežnog protokola: %s" #: ../../modules/interactive.pm:1 #, c-format msgid "You can configure each parameter of the module here." msgstr "Ovdje možete podesiti svaki parametar modula." #: ../../Xconfig/resolution_and_depth.pm:1 #, c-format msgid "Choose the resolution and the color depth" msgstr "Izaberite rezoluciju i broj boja" #: ../../standalone/mousedrake:1 #, c-format msgid "Emulate third button?" msgstr "Emuliraj treće dugme?" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "" "You can't create a new partition\n" "(since you reached the maximal number of primary partitions).\n" "First remove a primary partition and create an extended partition." msgstr "" "Ne možete napraviti novu particiju\n" "(pošto ste dosegli maksimalan broj primarnih particija).\n" "Najprije uklonite primarnu particiju i napravite extended (proširenu) " "particiju." #: ../../diskdrake/dav.pm:1 ../../diskdrake/interactive.pm:1 #: ../../diskdrake/smbnfs_gtk.pm:1 #, c-format msgid "Mount" msgstr "Montiraj" #: ../../standalone/drakautoinst:1 #, c-format msgid "Creating auto install floppy" msgstr "Pravim autoinstalacijsku disketu" #: ../../steps.pm:1 #, c-format msgid "Install updates" msgstr "Instaliraj update" #: ../../standalone/draksplash:1 #, c-format msgid "text box height" msgstr "visina tekst polja" #: ../../standalone/drakconnect:1 #, c-format msgid "State" msgstr "Status" #: ../../standalone/drakfloppy:1 #, c-format msgid "Be sure a media is present for the device %s" msgstr "Provjerite da li je ubačena disketa za ovaj uređaj %s" #: ../../any.pm:1 #, c-format msgid "Enable multiple profiles" msgstr "Omogući više profila" #: ../../fs.pm:1 #, c-format msgid "Do not interpret character or block special devices on the file system." msgstr "Nemoj interpretirati karakter ili blok uređaje na datotečnom sistemu." #: ../../standalone/drakbackup:1 #, c-format msgid "" "These options can backup and restore all files in your /etc directory.\n" msgstr "" "Ove opcije mogu spasiti ili vratiti sve datoteke u vašem /etc direktoriju.\n" #: ../../printer/main.pm:1 #, c-format msgid "Local printer" msgstr "Lokalni štampač" #: ../../standalone/drakbackup:1 #, c-format msgid "Files Restored..." msgstr "Vraćene datoteke..." #: ../../install_steps_interactive.pm:1 #, c-format msgid "Package selection" msgstr "Izbor paketa" #: ../../lang.pm:1 #, c-format msgid "Mauritania" msgstr "Mauritanija" #: ../../standalone/drakgw:1 #, c-format msgid "" "I can keep your current configuration and assume you already set up a DHCP " "server; in that case please verify I correctly read the Network that you use " "for your local network; I will not reconfigure it and I will not touch your " "DHCP server configuration.\n" "\n" "The default DNS entry is the Caching Nameserver configured on the firewall. " "You can replace that with your ISP DNS IP, for example.\n" "\t\t \n" "Otherwise, I can reconfigure your interface and (re)configure a DHCP server " "for you.\n" "\n" msgstr "" "Mogu zadržati trenutnu konfiguraciju i pretpostaviti da ste već podesili " "DHCP server; u tom slučaju molim provjerite da li sam ispravno pročitao " "Mrežnu adresu koju ćete koristiti na lokalnoj mreži; neću je ponovo podesiti " "i neću mijenjati vaše postavke DHCP servera.\n" "\n" "Predložena DNS postavka je Caching nameserver koji je podešen na firewallu. " "Možete je zamijeniti npr. IP adresom DNS servera vašeg ISPa.\n" "\t\t \n" "Ako ne, mogu ponovo podesiti vaš interfejs i podesiti DHCP server za vas.\n" "\n" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "No local printer found! To manually install a printer enter a device name/" "file name in the input line (Parallel Ports: /dev/lp0, /dev/lp1, ..., " "equivalent to LPT1:, LPT2:, ..., 1st USB printer: /dev/usb/lp0, 2nd USB " "printer: /dev/usb/lp1, ...)." msgstr "" "Nije pronađen nijedan lokalni štampač! Ako želite ručno instalirati štampač, " "unesite ime uređaja / ime datoteke na ulaznu liniju (Paralelni portovi: /dev/" "lp0, /dev/lp1, ..., ekvivalentno LPT1:, LPT2:, ..., prvi USB štampač: /dev/" "usb/lp0, drugi USB štampač: /dev/usb/lp1, ...)." #: ../../diskdrake/interactive.pm:1 #, c-format msgid "All primary partitions are used" msgstr "Sve primarne particije su u upotrebi" #: ../../printer/main.pm:1 #, c-format msgid "LPD server \"%s\", printer \"%s\"" msgstr "na LPD serveru \"%s\", štampač \"%s\"" #: ../../network/netconnect.pm:1 #, c-format msgid "" "After this is done, we recommend that you restart your X environment to " "avoid any hostname-related problems." msgstr "" "Nakon što je to gotovo, preporučujemo da restartujete vaš X\n" "okoliš kako bi se izbjegao problem sa promjenom naziva računara." #: ../../services.pm:1 #, c-format msgid "Automatic detection and configuration of hardware at boot." msgstr "Automatsko prepoznavanje i podešavanje hardware-a tokom boota." #: ../../standalone/drakpxe:1 #, c-format msgid "Installation Server Configuration" msgstr "Podešavanje instalacionog servera" #: ../../install_steps_interactive.pm:1 #, c-format msgid "Configuring IDE" msgstr "Podešavam IDE" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Network functionality not configured" msgstr "Mrežna funkcionalnost nije podešena" #: ../../standalone/harddrake2:1 #, c-format msgid "Configure module" msgstr "Podesi modul" #: ../../lang.pm:1 #, c-format msgid "Cocos (Keeling) Islands" msgstr "Kokosova ostrva" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "You'll need to reboot before the modification can take place" msgstr "" "Biće potrebno da rebootate prije nego što izmjene mogu stupiti na snagu" #: ../../network/tools.pm:1 ../../standalone/drakconnect:1 #, c-format msgid "Provider phone number" msgstr "Broj telefona provajdera" #: ../../printer/main.pm:1 #, c-format msgid "Host %s" msgstr "Računar %s" #: ../../lang.pm:1 #, c-format msgid "Fiji" msgstr "Fidži" #: ../../lang.pm:1 #, c-format msgid "Armenia" msgstr "Armenija" #: ../../any.pm:1 #, c-format msgid "Second floppy drive" msgstr "Druga disketna jedinica" #: ../../standalone/harddrake2:1 #, c-format msgid "About Harddrake" msgstr "O Harddrake-u" #: ../../security/l10n.pm:1 #, c-format msgid "Authorize TCP connections to X Window" msgstr "Autorizuj TCP konekcije na X Window" #: ../../standalone/harddrake2:1 #, c-format msgid "Drive capacity" msgstr "Kapacitet uređaja" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "" "Insert a floppy in drive\n" "All data on this floppy will be lost" msgstr "" "Ubacite disketu u jedinicu\n" "Svi podaci na toj disketi će biti izgubljeni" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Size: %s" msgstr "Veličina: %s" #: ../../keyboard.pm:1 #, c-format msgid "Control and Shift keys simultaneously" msgstr "Control i Shift tipka istovremeno" #: ../../standalone/harddrake2:1 #, c-format msgid "secondary" msgstr "sekundarni" #: ../../standalone/drakbackup:1 #, c-format msgid "View Backup Configuration." msgstr "Pogledaj postavke backupa." #: ../../security/help.pm:1 #, c-format msgid "if set to yes, report check result to syslog." msgstr "ako je postavljeno na da, prijavljuje rezultate provjere u syslog." #. -PO: keep this short or else the buttons will not fit in the window #: ../../help.pm:1 ../../install_steps_interactive.pm:1 #, c-format msgid "No password" msgstr "Bez šifre" #: ../../lang.pm:1 #, c-format msgid "Nigeria" msgstr "Nigerija" #: ../../standalone/drakTermServ:1 #, c-format msgid "%s: %s requires hostname...\n" msgstr "%s: %s zahtijeva ime računara...\n" #: ../../install_interactive.pm:1 #, c-format msgid "There is no existing partition to use" msgstr "Nema nijedne postojeće particije za upotrebu" #: ../../standalone/scannerdrake:1 #, c-format msgid "" "The following scanners\n" "\n" "%s\n" "are available on your system.\n" msgstr "" "Sljedeći skeneri\n" "\n" "%s\n" "su dostupni na vašem sistemu.\n" #: ../../printer/main.pm:1 #, c-format msgid "Multi-function device on parallel port #%s" msgstr "Višenamjenski uređaj na paralelnom portu #%s" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "To print to a TCP or socket printer, you need to provide the host name or IP " "of the printer and optionally the port number (default is 9100). On HP " "JetDirect servers the port number is usually 9100, on other servers it can " "vary. See the manual of your hardware." msgstr "" "Da biste štampali na TCP ili socket štampač, morate dati hostname ili IP " "adresu štampača i opcionalno broj porta (podrazumjeva se 9100). Na HP " "JetDirect serverima broj porta je obično 9100, na ostalim serverima on može " "varirati. Pogledajte priručnik vašeg hardware-a." #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Hard drive information" msgstr "Informacije o hard disku" #: ../../keyboard.pm:1 #, c-format msgid "Russian" msgstr "Ruska" #: ../../lang.pm:1 #, c-format msgid "Jordan" msgstr "Jordan" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Hide files" msgstr "Sakrij datoteke" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Auto-detect printers connected to this machine" msgstr "Automatski prepoznaj štampače spojene na ovaj računar" #: ../../any.pm:1 #, c-format msgid "Sorry, no floppy drive available" msgstr "Žao mi je, nema disketne jedinice" #: ../../lang.pm:1 #, c-format msgid "Bolivia" msgstr "Bolivija" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "Set up your Windows server to make the printer available under the IPP " "protocol and set up printing from this machine with the \"%s\" connection " "type in Printerdrake.\n" "\n" msgstr "" "Podesite vaš Windows server tako da je štampač dostupan putem IPP protokola " "i podesite štampanje sa ove mašine koristeći \"%s\" tip konekcije u " "Printerdrake-u.\n" "\n" #: ../../install_steps_gtk.pm:1 #, c-format msgid "Bad package" msgstr "Neispravan paket" #: ../advertising/07-server.pl:1 #, c-format msgid "" "Transform your computer into a powerful Linux server: Web server, mail, " "firewall, router, file and print server (etc.) are just a few clicks away!" msgstr "" "Pretvorite vaš računar u moćan Linux server: Web server, email, firewall, " "file i print server (itd.) su udaljeni samo nekoliko klikova mišem!" #: ../../security/level.pm:1 #, c-format msgid "DrakSec Basic Options" msgstr "DrakSec osnovne opcije" #: ../../standalone/draksound:1 #, c-format msgid "" "\n" "\n" "\n" "Note: if you've an ISA PnP sound card, you'll have to use the sndconfig " "program. Just type \"sndconfig\" in a console." msgstr "" "\n" "\n" "\n" "Napomena: ako imate ISA PnP zvučnu karticu, moraćete koristiti sndconfig " "program. Samo ukucajte \"sndconfig\" na konzoli." #: ../../lang.pm:1 #, c-format msgid "Romania" msgstr "Rumunija" #: ../../standalone/drakperm:1 #, c-format msgid "Group" msgstr "Grupa" #: ../../lang.pm:1 #, c-format msgid "Canada" msgstr "Kanada" #: ../../standalone/scannerdrake:1 #, c-format msgid "choose device" msgstr "izaberite uređaj" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Remove from LVM" msgstr "Ukloni sa LVMa" #: ../../help.pm:1 ../../install_steps_interactive.pm:1 #, c-format msgid "Timezone" msgstr "Vremenska zona" #: ../../keyboard.pm:1 #, c-format msgid "German" msgstr "Njemačka" #: ../../help.pm:1 ../../install_steps_gtk.pm:1 ../../interactive.pm:1 #: ../../ugtk2.pm:1 ../../interactive/newt.pm:1 #: ../../printer/printerdrake.pm:1 ../../standalone/drakbackup:1 #, c-format msgid "Next ->" msgstr "Dalje ->" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "Turning on this allows to print plain text files in japanese language. Only " "use this function if you really want to print text in japanese, if it is " "activated you cannot print accentuated characters in latin fonts any more " "and you will not be able to adjust the margins, the character size, etc. " "This setting only affects printers defined on this machine. If you want to " "print japanese text on a printer set up on a remote machine, you have to " "activate this function on that remote machine." msgstr "" "Ako ovo uključite, moći ćete štampati obične tekstualne datoteke na " "japanskom jeziku. Koristite ovu funkciju samo ako zaista želite štampati " "japanski tekst, jer kada je aktivirana, više ne možete štampati znakove sa " "akcentima u latiničnim fontovima (npr. naša slova). Takođe nećete moći " "prilagoditi margine, veličine znakova, itd. Ova postavka će utjecati samo na " "štampače koji su definisani na ovom računaru. Ako želite štampati japanski " "tekst na udaljenom računaru, trebate aktivirati ovu funkciju na tom računaru." #: ../../diskdrake/interactive.pm:1 #, c-format msgid "" "\n" "Chances are, this partition is\n" "a Driver partition. You should\n" "probably leave it alone.\n" msgstr "" "\n" "Postoji mogućnost da je ova\n" "particija Driver particija. Vjerovatno\n" "biste je trebali ostaviti na miru.\n" #: ../../lang.pm:1 #, c-format msgid "Guinea-Bissau" msgstr "Gvineja Bisau" #: ../../Xconfig/monitor.pm:1 #, c-format msgid "Horizontal refresh rate" msgstr "Brzina horizontalnog osvježavanja" #: ../../standalone/drakperm:1 ../../standalone/printerdrake:1 #, c-format msgid "Edit" msgstr "Izmijeni" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "" "Can't unset mount point as this partition is used for loop back.\n" "Remove the loopback first" msgstr "" "Ne mogu izmjeniti tačku montiranja jer se ova particija koristi za " "loopback.\n" "Najprije uklonite loopback" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "The network configuration done during the installation cannot be started " "now. Please check whether the network is accessable after booting your " "system and correct the configuration using the Mandrake Control Center, " "section \"Network & Internet\"/\"Connection\", and afterwards set up the " "printer, also using the Mandrake Control Center, section \"Hardware\"/" "\"Printer\"" msgstr "" "Podešavanje mreže koje je napravljeno tokom instalacije sada ne može biti " "pokrenuto. Molim provjerite da li će mreža postati dostupna nakon bootanja " "sistema i popravite podešenja koristeći Mandrake Kontrolni centar, sekcija " "\"Mreža i Internet\"/\"Konekcija\", a zatim podesite štampač, ponovo " "koristeći Mandrake Kontrolni centar, sekcija \"Hardver\"/\"Štampač\"" #: ../../harddrake/data.pm:1 #, c-format msgid "USB controllers" msgstr "USB kontroleri" #: ../../Xconfig/various.pm:1 #, c-format msgid "What norm is your TV using?" msgstr "Koji standard koristi vaš TV?" #: ../../standalone/drakconnect:1 #, c-format msgid "Type:" msgstr "Tip:" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Share name" msgstr "Share naziv" #: ../../standalone/drakgw:1 #, c-format msgid "enable" msgstr "uključi" #: ../../install_steps_interactive.pm:1 #, c-format msgid "" "Contacting Mandrake Linux web site to get the list of available mirrors..." msgstr "" "Kontaktiram Mandrake Linux web stranicu da bih saznao listu dostupnih " "mirrora..." #: ../../network/netconnect.pm:1 #, c-format msgid "" "A problem occured while restarting the network: \n" "\n" "%s" msgstr "" "Došlo je do problema prilikom restartovanja mreže:\n" "\n" "%s" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Remove the loopback file?" msgstr "Ukloniti loopback datoteku?" #: ../../install_steps_interactive.pm:1 #, c-format msgid "Selected size is larger than available space" msgstr "Izabrana veličina je veća od slobodnog prostora" #: ../../printer/printerdrake.pm:1 #, c-format msgid "NCP server name missing!" msgstr "NCP naziv servera nedostaje!" #: ../../any.pm:1 #, c-format msgid "Please choose your country." msgstr "Molim izaberite vašu zemlju." #: ../../standalone/drakbackup:1 #, c-format msgid "Hard Disk Backup files..." msgstr "Datoteke backup-a hard diska..." #: ../../keyboard.pm:1 #, c-format msgid "Laotian" msgstr "Laoska" #: ../../lang.pm:1 #, c-format msgid "Samoa" msgstr "Samoa" #: ../../services.pm:1 #, c-format msgid "" "The rstat protocol allows users on a network to retrieve\n" "performance metrics for any machine on that network." msgstr "" "Rstat protokol omogućava korisnicima na mreži da dobave\n" "mjeru performansi za svaki računar na toj mreži" #: ../../standalone/scannerdrake:1 #, c-format msgid "Re-generating list of configured scanners ..." msgstr "Regeneriram listu podešenih skenera ..." #: ../../modules/interactive.pm:1 #, c-format msgid "Module configuration" msgstr "Podešavanje modula" #: ../../harddrake/data.pm:1 #, c-format msgid "Scanner" msgstr "Skener" #: ../../Xconfig/test.pm:1 #, c-format msgid "Warning: testing this graphic card may freeze your computer" msgstr "Upozorenje: testiranje ove grafičke karte može zalediti računar" #: ../../any.pm:1 #, c-format msgid "" "The user name must contain only lower cased letters, numbers, `-' and `_'" msgstr "Korisničko ime smije sadržati samo mala slova, brojeve, `-' i `_'" #: ../../standalone/drakbug:1 #, c-format msgid "Menudrake" msgstr "Menudrake" #: ../../security/level.pm:1 #, c-format msgid "Welcome To Crackers" msgstr "Dobrodošli u Crackers" #: ../../modules/interactive.pm:1 #, c-format msgid "Module options:" msgstr "Opcije modula" #: ../advertising/11-mnf.pl:1 #, c-format msgid "Secure your networks with the Multi Network Firewall" msgstr "Zaštitite vašu mrežu uz Multi Network Firewall" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Go on without configuring the network" msgstr "Nastavi bez podešavanja mreže" #: ../../network/isdn.pm:1 #, c-format msgid "Abort" msgstr "Prekid" #: ../../standalone/drakbackup:1 #, c-format msgid "No password prompt on %s at port %s" msgstr "Nema upita za šifru na %s na portu %s" #: ../../mouse.pm:1 #, c-format msgid "Kensington Thinking Mouse with Wheel emulation" msgstr "Kensington Thinking Mouse sa simulacijom točkića" #: ../../standalone/scannerdrake:1 #, c-format msgid "Usage of remote scanners" msgstr "Upotreba udaljenih skenera" #: ../../install_interactive.pm:1 #, c-format msgid "" "Your Windows partition is too fragmented. Please reboot your computer under " "Windows, run the ``defrag'' utility, then restart the Mandrake Linux " "installation." msgstr "" "Vaša Windows particija je previše fragmentirana. Molim restartujte vaš " "računar pod Windows-om, pokrenite ``defrag'' alat, zatim pokrenite Mandrake " "Linux instalaciju." #: ../../keyboard.pm:1 #, c-format msgid "Dvorak (Norwegian)" msgstr "Dvorak (Norveška)" #: ../../standalone/drakbackup:1 #, c-format msgid "Hard Disk Backup Progress..." msgstr "Napredak backup-a hard diska..." #: ../../standalone/drakconnect:1 ../../standalone/drakfloppy:1 #, c-format msgid "Unable to fork: %s" msgstr "Ne mogu izvrsiti fork: %s" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Type: " msgstr "Tip: " #: ../../standalone/drakTermServ:1 #, c-format msgid "<-- Edit Client" msgstr "<-- Izmijeni klijent" #: ../../standalone/drakfont:1 #, c-format msgid "no fonts found" msgstr "nije pronađen nijedan font" #: ../../help.pm:1 ../../install_steps_interactive.pm:1 #: ../../harddrake/data.pm:1 #, c-format msgid "Mouse" msgstr "Miš" #: ../../bootloader.pm:1 #, c-format msgid "not enough room in /boot" msgstr "nema dovoljno prostora u /boot" #: ../../install_steps_gtk.pm:1 #, c-format msgid "trying to promote %s" msgstr "" #: ../../lang.pm:1 #, c-format msgid "Liechtenstein" msgstr "Lihtenštajn" #: ../../network/ethernet.pm:1 ../../network/network.pm:1 #, c-format msgid "Host name" msgstr "Host name" #: ../../standalone/draksplash:1 #, c-format msgid "the color of the progress bar" msgstr "boja progresne trake" #: ../../standalone/drakfont:1 #, c-format msgid "Suppress Fonts Files" msgstr "Onemogući datoteke fontova" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Add to RAID" msgstr "Dodaj na RAID" #: ../../help.pm:1 #, c-format msgid "" "You can add additional entries in yaboot for other operating systems,\n" "alternate kernels, or for an emergency boot image.\n" "\n" "For other OSs, the entry consists only of a label and the \"root\"\n" "partition.\n" "\n" "For Linux, there are a few possible options:\n" "\n" " * Label: this is the name you will have to type at the yaboot prompt to\n" "select this boot option.\n" "\n" " * Image: this is the name of the kernel to boot. Typically, vmlinux or a\n" "variation of vmlinux with an extension.\n" "\n" " * Root: the \"root\" device or ``/'' for your Linux installation.\n" "\n" " * Append: on Apple hardware, the kernel append option is often used to\n" "assist in initializing video hardware, or to enable keyboard mouse button\n" "emulation for the missing 2nd and 3rd mouse buttons on a stock Apple mouse.\n" "The following are some examples:\n" "\n" " video=aty128fb:vmode:17,cmode:32,mclk:71 adb_buttons=103,111\n" "hda=autotune\n" "\n" " video=atyfb:vmode:12,cmode:24 adb_buttons=103,111\n" "\n" " * Initrd: this option can be used either to load initial modules before\n" "the boot device is available, or to load a ramdisk image for an emergency\n" "boot situation.\n" "\n" " * Initrd-size: the default ramdisk size is generally 4096 Kbytes. If you\n" "need to allocate a large ramdisk, this option can be used to specify a\n" "ramdisk larger than the default.\n" "\n" " * Read-write: normally the \"root\" partition is initially mounted as\n" "read-only, to allow a file system check before the system becomes ``live''.\n" "You can override the default with this option.\n" "\n" " * NoVideo: should the Apple video hardware prove to be exceptionally\n" "problematic, you can select this option to boot in ``novideo'' mode, with\n" "native frame buffer support.\n" "\n" " * Default: selects this entry as being the default Linux selection,\n" "selectable by pressing ENTER at the yaboot prompt. This entry will also be\n" "highlighted with a ``*'' if you press [Tab] to see the boot selections." msgstr "" "You can add additional entries in yaboot for other operating systems,\n" "alternate kernels, or for an emergency boot image.\n" "\n" "For other OSs, the entry consists only of a label and the \"root\"\n" "partition.\n" "\n" "For Linux, there are a few possible options:\n" "\n" " * Label: this is the name you will have to type at the yaboot prompt to\n" "select this boot option.\n" "\n" " * Image: this is the name of the kernel to boot. Typically, vmlinux or a\n" "variation of vmlinux with an extension.\n" "\n" " * Root: the \"root\" device or ``/'' for your Linux installation.\n" "\n" " * Append: on Apple hardware, the kernel append option is often used to\n" "assist in initializing video hardware, or to enable keyboard mouse button\n" "emulation for the missing 2nd and 3rd mouse buttons on a stock Apple mouse.\n" "The following are some examples:\n" "\n" " video=aty128fb:vmode:17,cmode:32,mclk:71 adb_buttons=103,111\n" "hda=autotune\n" "\n" " video=atyfb:vmode:12,cmode:24 adb_buttons=103,111\n" "\n" " * Initrd: this option can be used either to load initial modules before\n" "the boot device is available, or to load a ramdisk image for an emergency\n" "boot situation.\n" "\n" " * Initrd-size: the default ramdisk size is generally 4096 Kbytes. If you\n" "need to allocate a large ramdisk, this option can be used to specify a\n" "ramdisk larger than the default.\n" "\n" " * Read-write: normally the \"root\" partition is initially mounted as\n" "read-only, to allow a file system check before the system becomes ``live''.\n" "You can override the default with this option.\n" "\n" " * NoVideo: should the Apple video hardware prove to be exceptionally\n" "problematic, you can select this option to boot in ``novideo'' mode, with\n" "native frame buffer support.\n" "\n" " * Default: selects this entry as being the default Linux selection,\n" "selectable by pressing ENTER at the yaboot prompt. This entry will also be\n" "highlighted with a ``*'' if you press [Tab] to see the boot selections." #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "The printer \"%s\" was successfully added to Star Office/OpenOffice.org/GIMP." msgstr "Štampač \"%s\" je uspješno dodan u Star Office/OpenOffice.org/GIMP." #: ../../standalone/drakTermServ:1 #, c-format msgid "No floppy drive available!" msgstr "Nema pogodne disketne jedinice!" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "To know about the options available for the current printer read either the " "list shown below or click on the \"Print option list\" button.%s%s%s\n" "\n" msgstr "" "Za listu opcija koje su dostupne za trenutni štampač ili pročitajte listu " "koja je data ispod ili kliknite na dugme \"Lista opcija za štampu\".%s%s%s\n" "\n" #: ../../lang.pm:1 #, c-format msgid "Saudi Arabia" msgstr "Saudijska Arabija" #: ../../services.pm:1 #, c-format msgid "Internet" msgstr "Internet" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Continue anyway?" msgstr "Svejedno nastavljate?" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "If your printer is not listed, choose a compatible (see printer manual) or a " "similar one." msgstr "" "Ako štampač nije naveden, izaberite kompatibilan (pogledajte uputstva za " "štampač) ili sličan." #: ../../help.pm:1 ../../install_steps_interactive.pm:1 #: ../../harddrake/data.pm:1 ../../printer/printerdrake.pm:1 #, c-format msgid "Printer" msgstr "Štampač" #: ../../standalone/service_harddrake:1 #, c-format msgid "Some devices were added:\n" msgstr "Dodani su neki uređaji:\n" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Geometry: %s cylinders, %s heads, %s sectors\n" msgstr "Geometrija: %s cilindara, %s glava, %s sektora\n" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Printing on the printer \"%s\"" msgstr "Štampam na štampač \"%s\"" #: ../../standalone/drakTermServ:1 #, c-format msgid "/etc/hosts.allow and /etc/hosts.deny already configured - not changed" msgstr "/etc/hosts.allow i /etc/hosts.deny su već podešeni - bez izmjene" #: ../../standalone/drakbackup:1 #, c-format msgid "Restore From Tape" msgstr "Vrati sa trake" #: ../../standalone/drakbug:1 #, c-format msgid "" "To submit a bug report, click the report button, which will open your " "default browser\n" "to Anthill where you will be able to upload the above information as a bug " "report." msgstr "" "Da prijavite bug, kliknite na dugme Prijavi, koje će u vašem web browseru\n" "otvoriti Anthill, gdje ćete moći poslati gore prikazane informacije kao " "prijavu buga." #: ../../network/netconnect.pm:1 #, c-format msgid "Choose the profile to configure" msgstr "Izaberite profil za podešavanje" #: ../../security/l10n.pm:1 #, c-format msgid "Password minimum length and number of digits and upcase letters" msgstr "Minimalna dužina šifre i broj cifara i velikih slova" #: ../../network/ethernet.pm:1 ../../network/network.pm:1 #, c-format msgid "" "\n" "\n" "Enter a Zeroconf host name without any dot if you don't\n" "want to use the default host name." msgstr "" "\n" "\n" "Unesite Zeroconf ime računara bez tačaka ako ne želite\n" "da koristite ponuđeno ime računara." #: ../../standalone/drakbackup:1 #, c-format msgid "Backup Now from configuration file" msgstr "Backup-uj sada iz konfiguracijske datoteke" #: ../../fsedit.pm:1 #, c-format msgid "Mount points should contain only alphanumerical characters" msgstr "Tačka montiranja se treba sastojati samo od brojeva i slova" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Restarting printing system..." msgstr "Restartujem sistem za štampu ..." #: ../../../move/tree/mdk_totem:1 #, c-format msgid "You can only run with no CDROM support" msgstr "" #: ../../modules/interactive.pm:1 #, c-format msgid "See hardware info" msgstr "Pogledaj hardware info" #: ../../standalone/drakbackup:1 #, c-format msgid "Day" msgstr "Dan" #: ../../any.pm:1 #, c-format msgid "First sector of boot partition" msgstr "Prvi sektor boot particije" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Printer manufacturer, model" msgstr "Proizvođač štampača, model" #: ../../printer/data.pm:1 #, c-format msgid "PDQ - Print, Don't Queue" msgstr "PDQ - Print, Don't Queue" #: ../../standalone.pm:1 #, c-format msgid "" "[OPTIONS]...\n" "Mandrake Terminal Server Configurator\n" "--enable : enable MTS\n" "--disable : disable MTS\n" "--start : start MTS\n" "--stop : stop MTS\n" "--adduser : add an existing system user to MTS (requires username)\n" "--deluser : delete an existing system user from MTS (requires " "username)\n" "--addclient : add a client machine to MTS (requires MAC address, IP, " "nbi image name)\n" "--delclient : delete a client machine from MTS (requires MAC address, " "IP, nbi image name)" msgstr "" "[OPTIONS]...\n" "Podešavanje Mandrake Terminal Servera\n" "--enable : omogući MTS\n" "--disable : onemogući MTS\n" "--start : pokreni MTS\n" "--stop : zaustavi MTS\n" "--adduser : dodaj postojećeg sistemskog korisnika MTSu (potrebno je " "korisničko ime)\n" "--deluser : obriši postojećeg sistemskog korisnika sa MTSa (potrebno " "je korisničko ime)\n" "--addclient : dodaj klijentski računar MTSu (potrebna je MAC adresa, " "IP, nbi image ime)\n" "--delclient : obriši klijentski računar sa MTSa (potrebna je MAC " "adresa, IP, nbi image ime)" #: ../../standalone/drakTermServ:1 #, c-format msgid "Subnet Mask:" msgstr "Subnet mask:" #: ../../security/l10n.pm:1 #, c-format msgid "Set password expiration and account inactivation delays" msgstr "Izaberite istek šifre i pauze prije deaktivacije računa" #: ../../standalone/logdrake:1 #, c-format msgid "" "_: load here is a noun, the load of the system\n" "Load" msgstr "Opterećenje" #: ../../Xconfig/monitor.pm:1 #, c-format msgid "" "The two critical parameters are the vertical refresh rate, which is the " "rate\n" "at which the whole screen is refreshed, and most importantly the horizontal\n" "sync rate, which is the rate at which scanlines are displayed.\n" "\n" "It is VERY IMPORTANT that you do not specify a monitor type with a sync " "range\n" "that is beyond the capabilities of your monitor: you may damage your " "monitor.\n" " If in doubt, choose a conservative setting." msgstr "" "Dva kritična parametra su brzina vertikalnog osvježenja, što je brzina\n" "kojom se cijeli ekran osvježava, i brzina horizontalne\n" "sinhronizacije, što je brzina kojm se prikazuju skan-linije.\n" "\n" "VEOMA JE VAŽNO da ne izaberete tip monitora čiji je sinhronizacioni\n" "raspon izvan mogućnosti vašeg monitora: time možete oštetiti monitor.\n" " Ako niste sigurni, izaberite najmanju opciju." #: ../../help.pm:1 ../../interactive.pm:1 ../../interactive/gtk.pm:1 #, c-format msgid "Modify" msgstr "Izmijeni" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "\n" "The \"%s\" and \"%s\" commands also allow to modify the option settings for " "a particular printing job. Simply add the desired settings to the command " "line, e. g. \"%s \".\n" msgstr "" "\n" "Komande \"%s\" i \"%s\" također omogućavaju izmjenu opcija za pojedinačni " "zadatak štampe. Jednostavno dodajte željena podešenja na komandnu liniju, " "npr. \"%s \".\n" #: ../../standalone/drakbackup:1 #, c-format msgid "Need hostname, username and password!" msgstr "Potrebno ime računara, korisničko ime i šifra!" #: ../../network/tools.pm:1 #, c-format msgid "Insert floppy" msgstr "Ubacite disketu" #: ../../diskdrake/dav.pm:1 #, c-format msgid "" "WebDAV is a protocol that allows you to mount a web server's directory\n" "locally, and treat it like a local filesystem (provided the web server is\n" "configured as a WebDAV server). If you would like to add WebDAV mount\n" "points, select \"New\"." msgstr "" "WebDAV je protokol koji vam omogućuje da direktorij web servera\n" "montirate lokalno i da ga tretirate kao lokalni direktorij (pod uslovom da\n" "je web server podešen kao WebDAV server). Ako želite dodati WebDAV\n" "tačke montiranja, izaberite \"Novi\"." #: ../../standalone/drakbug:1 #, c-format msgid "HardDrake" msgstr "HardDrake" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "new" msgstr "novi" #: ../../security/help.pm:1 #, c-format msgid "Enable/Disable syslog reports to console 12" msgstr "Uključi/isključi syslog izvještaje na konzoli 12" #: ../../install_steps_interactive.pm:1 #, c-format msgid "Would you like to try again?" msgstr "Želite li ponovo pokušati?" #: ../../help.pm:1 ../../diskdrake/hd_gtk.pm:1 #, c-format msgid "Wizard" msgstr "Čarobnjak" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Edit selected server" msgstr "Izmijeni izabrani server" #: ../../standalone/drakbackup:1 #, c-format msgid "Please choose where you want to backup" msgstr "Molim izaberite gdje želite backupovati" #: ../../install_steps_interactive.pm:1 #, c-format msgid "You need to reboot for the partition table modifications to take place" msgstr "Moraćete rebootati da bi izmjene tabele particija stupile na snagu" #: ../../standalone/drakbackup:1 #, c-format msgid "Do not include the browser cache" msgstr "Ne uključuj spremnik web preglednika" #: ../../install_steps_interactive.pm:1 #, c-format msgid "" "Failed to check filesystem %s. Do you want to repair the errors? (beware, " "you can lose data)" msgstr "" "Nisam uspio provjeriti datotečni sistem %s. Želite li popraviti greške? " "(pažnja, možete izgubiti podatke)" #: ../../standalone/keyboarddrake:1 #, c-format msgid "Please, choose your keyboard layout." msgstr "Molim izaberite izgled vaše tastature." #: ../../mouse.pm:1 ../../security/level.pm:1 #, c-format msgid "Standard" msgstr "Standard" #: ../../standalone/mousedrake:1 #, c-format msgid "Please choose your mouse type." msgstr "Molim izaberite vrstu vašeg miša." #: ../../standalone/drakconnect:1 #, c-format msgid "Connect..." msgstr "Konektuj se..." #: ../../printer/printerdrake.pm:1 #, c-format msgid "Failed to configure printer \"%s\"!" msgstr "Nisam uspio podesiti štampač \"%s\"!" #: ../../install_steps_gtk.pm:1 ../../install_steps_interactive.pm:1 #, c-format msgid "not configured" msgstr "nije podešeno" #: ../../network/isdn.pm:1 #, c-format msgid "ISA / PCMCIA" msgstr "ISA / PCMCIA" #: ../../standalone/drakfont:1 #, c-format msgid "About" msgstr "O programu" #: ../../mouse.pm:1 #, c-format msgid "GlidePoint" msgstr "GlidePoint" #: ../../network/network.pm:1 #, c-format msgid "Proxies configuration" msgstr "Konfiguracija proxija" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Start: sector %s\n" msgstr "Početak: sector %s\n" #: ../../standalone/drakconnect:1 #, c-format msgid "No Mask" msgstr "Bez maske" #: ../../standalone/drakgw:1 #, c-format msgid "Network interface already configured" msgstr "Mrežni interfejs je već podešen" #: ../../standalone/drakTermServ:1 #, c-format msgid "Couldn't access the floppy!" msgstr "Ne mogu pristupiti disketi!" #: ../../install_messages.pm:1 #, c-format msgid "" "Warning: Free Software may not necessarily be patent free, and some Free\n" "Software included may be covered by patents in your country. For example, " "the\n" "MP3 decoders included may require a licence for further usage (see\n" "http://www.mp3licensing.com for more details). If you are unsure if a " "patent\n" "may be applicable to you, check your local laws." msgstr "" "Upozorenje: Slobodan softver ne mora obavezno biti slobodan od patenata\n" "i neki elementi slobodnog softvera mogu biti obuhvaćeni patentima u vašoj\n" "zemlji. Npr. MP3 dekoderi koji su uključeni možda zahtijevaju licencu za " "daljnje\n" "korištenje (za više detalja, pogledajte http://www.mp3licensing.com). Ako " "niste\n" "sigurni da li se patent odnosi na vas, provjerite vaše lokalne zakone." #: ../../network/drakfirewall.pm:1 #, c-format msgid "Mail Server" msgstr "Mail server" #: ../../diskdrake/hd_gtk.pm:1 #, c-format msgid "Please click on a partition" msgstr "Kliknite na particiju" #: ../../printer/main.pm:1 #, c-format msgid "Multi-function device on HP JetDirect" msgstr "Višenamjenski uređaj na HP JetDirect" #: ../../any.pm:1 ../../standalone/drakbackup:1 #, c-format msgid "Linux" msgstr "Linux" #: ../../standalone/drakxtv:1 #, c-format msgid "Have a nice day!" msgstr "Have a nice day!" #: ../../help.pm:1 #, c-format msgid "/dev/fd0" msgstr "/dev/fd0" #: ../../install_steps_interactive.pm:1 #, c-format msgid "Upgrade %s" msgstr "Unaprijedi %s" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Select Printer Connection" msgstr "Izaberi konekciju štampača" #: ../../standalone/drakxtv:1 #, c-format msgid "Scanning for TV channels in progress ..." msgstr "Pretraga TV kanala je u toku ..." #: ../../standalone/drakbackup:1 #, c-format msgid "" "Error during sending file via FTP.\n" " Please correct your FTP configuration." msgstr "" "Greška tokom slanja datoteke preko FTPa.\n" " Molim ispravite vašu FTP konfiguraciju." #: ../../standalone/drakTermServ:1 #, c-format msgid "IP Range Start:" msgstr "Početak IP raspona:" #: ../../services.pm:1 #, c-format msgid "" "The internet superserver daemon (commonly called inetd) starts a\n" "variety of other internet services as needed. It is responsible for " "starting\n" "many services, including telnet, ftp, rsh, and rlogin. Disabling inetd " "disables\n" "all of the services it is responsible for." msgstr "" "Internet superserver (obično nazvan inetd) pokreće razne druge Internet\n" "servise po potrebi. Odgovoran je za pokretanje mnogih servisa, kao što su\n" "telnet, ftp, rsh i rlogin. Isključivanje inetd-a isključuje sve servise za " "koje je\n" "on nadležan." #: ../../standalone/draksplash:1 #, c-format msgid "the height of the progress bar" msgstr "visina progresne trake" #: ../../standalone/drakbackup:1 #, c-format msgid "" "\n" "- Save via %s on host: %s\n" msgstr "" "\n" "- Spasi pomoću %s na računaru: %s\n" #: ../../lang.pm:1 ../../standalone/drakxtv:1 #, c-format msgid "Argentina" msgstr "Argentina" #: ../../network/drakfirewall.pm:1 #, c-format msgid "Domain Name Server" msgstr "DNS server" #: ../../standalone/draksec:1 #, c-format msgid "Security Level:" msgstr "Nivo sigurnosti:" #: ../../fsedit.pm:1 #, c-format msgid "Mount points must begin with a leading /" msgstr "Tačke montiranja moraju počinjati sa /" #: ../../standalone/drakbackup:1 #, c-format msgid "Choose your CD/DVD device" msgstr "Izaberite vaš CD/DVD uređaj" #: ../../network/drakfirewall.pm:1 #, fuzzy, c-format msgid "CUPS server" msgstr "DNS server" #: ../../standalone/logdrake:1 #, c-format msgid "Postfix Mail Server" msgstr "Postfix mail server" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Quit without saving" msgstr "Izlaz bez spašavanja" #: ../../lang.pm:1 #, c-format msgid "Yemen" msgstr "Jemen" #: ../advertising/11-mnf.pl:1 #, c-format msgid "This product is available on the MandrakeStore Web site." msgstr "" "Ovaj proizvod je dostupan na web stranici MandrakeStore (Mandrake " "prodavnica)." #: ../../interactive/stdio.pm:1 #, c-format msgid "=> There are many things to choose from (%s).\n" msgstr "=> Postoji mnogo stvari od kojih možete izabrati (%s).\n" #: ../../standalone/drakclock:1 #, c-format msgid "GMT - DrakClock" msgstr "" #: ../../../move/move.pm:1 #, c-format msgid "" "An error occurred:\n" "\n" "\n" "%s\n" "\n" "This may come from corrupted system configuration files\n" "on the USB key, in this case removing them and then\n" "rebooting Mandrake Move would fix the problem. To do\n" "so, click on the corresponding button.\n" "\n" "\n" "You may also want to reboot and remove the USB key, or\n" "examine its contents under another OS, or even have\n" "a look at log files in console #3 and #4 to try to\n" "guess what's happening." msgstr "" #: ../../steps.pm:1 #, c-format msgid "Hard drive detection" msgstr "Prepoznavanje hard diska" #: ../../install_steps_interactive.pm:1 #, c-format msgid "" "You haven't selected any group of packages.\n" "Please choose the minimal installation you want:" msgstr "" "Niste izabrali nijednu grupu paketa\n" "Molim izaberite minimalnu instalaciju koju želite:" #: ../../network/adsl.pm:1 #, c-format msgid "" "You need the Alcatel microcode.\n" "You can provide it now via a floppy or your windows partition,\n" "or skip and do it later." msgstr "" "Potreban vam je Alcatel mikrokod.\n" "Možete ga sada potražiti na disketi ili vašoj Windows particiji,\n" "ili preskočiti ovaj korak i završiti ga kasnije." #: ../../diskdrake/dav.pm:1 #, c-format msgid "Please enter the WebDAV server URL" msgstr "Molim unesite URL WebDAV servera" #: ../../lang.pm:1 #, c-format msgid "Tajikistan" msgstr "Tadžikistan" #: ../../help.pm:1 ../../install_steps_gtk.pm:1 #: ../../install_steps_interactive.pm:1 ../../standalone/drakautoinst:1 #, c-format msgid "Accept" msgstr "Prihvati" #: ../../printer/printerdrake.pm:1 ../../standalone/harddrake2:1 #: ../../standalone/printerdrake:1 #, c-format msgid "Description" msgstr "Opis" #: ../../standalone/drakbug:1 #, c-format msgid "Please enter summary text." msgstr "Molimo unesite tekst sažetka." #: ../../fsedit.pm:1 #, c-format msgid "Error opening %s for writing: %s" msgstr "Greška u otvaranju %s za pisanje: %s" #: ../../Xconfig/various.pm:1 #, c-format msgid "Mouse type: %s\n" msgstr "Vrsta miša: %s\n" #: ../../Xconfig/card.pm:1 #, c-format msgid "Your card can have 3D hardware acceleration support with XFree %s." msgstr "Vaša kartica može imati podršku za 3D hardversko ubrzanje sa XFree %s." #: ../../Xconfig/monitor.pm:1 #, c-format msgid "Choose a monitor" msgstr "Izaberite monitor" #: ../../any.pm:1 #, c-format msgid "Empty label not allowed" msgstr "Prazna oznaka nije dozvoljena" #: ../../keyboard.pm:1 #, c-format msgid "Maltese (UK)" msgstr "Malteška (UK)" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "I can't add any more partition" msgstr "Ne mogu dodati više particija" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Size in MB: " msgstr "Veličina u MB: " #: ../../printer/main.pm:1 #, c-format msgid "Remote printer" msgstr "Udaljeni štampač" #: ../../any.pm:1 #, c-format msgid "Please choose a language to use." msgstr "Molim izaberite jezik koji ćete koristiti." #: ../../network/network.pm:1 #, c-format msgid "" "WARNING: this device has been previously configured to connect to the " "Internet.\n" "Simply accept to keep this device configured.\n" "Modifying the fields below will override this configuration." msgstr "" "UPOZORENJE: Ovaj uređaj je prethodno podešen za konekciju na Internet.\n" "Samo prihvatite kako bi ovaj uređaj ostao podešen.\n" "Izmjena polja ispod će prepisati ovu konfiguraciju." #: ../../any.pm:1 #, c-format msgid "I can set up your computer to automatically log on one user." msgstr "Mogu podesiti vaš računar da automatski prijavi jednog korisnika." #: ../../standalone/harddrake2:1 #, c-format msgid "Floppy format" msgstr "Format diskete" #: ../../standalone/drakfont:1 #, c-format msgid "Generic Printers" msgstr "Razni štampači" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "Please choose the printer to which the print jobs should go or enter a " "device name/file name in the input line" msgstr "" "Molim izaberite štampač kojem želite slati zadatke štampe ili unesite naziv " "uređaja / naziv datoteke na ulaznoj liniji" #: ../../standalone/scannerdrake:1 #, c-format msgid "The scanners on this machine are available to other computers" msgstr "Skeneri na ovom računari su dostupni drugim računarima" #: ../../any.pm:1 #, c-format msgid "First sector of the root partition" msgstr "Prvi sektor root particije" #: ../../standalone/harddrake2:1 #, c-format msgid "Alternative drivers" msgstr "Alternativni drajveri" #: ../../standalone/drakbackup:1 #, c-format msgid "" "\n" "Please check all options that you need.\n" msgstr "" "\n" "Molim uključite sve potrebne opcije.\n" #: ../../any.pm:1 #, c-format msgid "Initrd" msgstr "Initrd" #: ../../lang.pm:1 #, c-format msgid "Cape Verde" msgstr "Zelenortska ostrva" #: ../../standalone/harddrake2:1 #, c-format msgid "whether this cpu has the Cyrix 6x86 Coma bug" msgstr "da li ovaj CPU ima Cyrix 6x86 Coma bug" #: ../../standalone/printerdrake:1 #, c-format msgid "Loading printer configuration... Please wait" msgstr "Učitavam konfiguraciju štampača... Molim sačekajte" #: ../../standalone/harddrake2:1 #, c-format msgid "early pentiums were buggy and freezed when decoding the F00F bytecode" msgstr "" "rani Pentium procesori imaju bug koji izaziva smrzavanje sistema prilikom " "dekodiranja F00F bytecode-a" #: ../../lang.pm:1 #, c-format msgid "Guam" msgstr "Guam" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "Please choose the port that your printer is connected to or enter a device " "name/file name in the input line" msgstr "" "Molim izaberite port na koji je vaš štampač povezan ili unesite naziv " "uređaja / naziv datoteke na ulaznoj liniji" #: ../../standalone/logdrake:1 #, c-format msgid "/Options/Test" msgstr "/Opcije/Test" #: ../../security/level.pm:1 #, c-format msgid "" "This level is to be used with care. It makes your system more easy to use,\n" "but very sensitive. It must not be used for a machine connected to others\n" "or to the Internet. There is no password access." msgstr "" "Ovaj nivo treba koristiti pažljivo. On čini vaš sistem lakšim za upotrebu,\n" "ali vrlo osjetljivim: ne smije biti korišten za računar koji je spojen na\n" "druge ili na Internet. Nema pristupa šifrom." #: ../../fs.pm:1 #, c-format msgid "Mounting partition %s" msgstr "Montiram particiju %s" #: ../../any.pm:1 ../../help.pm:1 ../../printer/printerdrake.pm:1 #, c-format msgid "User name" msgstr "Korisničko ime" #: ../../standalone/drakbug:1 #, c-format msgid "Userdrake" msgstr "Userdrake" #: ../../install_interactive.pm:1 #, c-format msgid "Which partition do you want to use for Linux4Win?" msgstr "Koju particiju želite koristiti za Linux4Win?" #: ../../install_steps_gtk.pm:1 #, fuzzy, c-format msgid "due to missing %s" msgstr "nedostaje kdesu" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Test pages" msgstr "Testna stranica" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Logical volume name " msgstr "Naziv logičkog volumena " #: ../../standalone/drakbackup:1 #, c-format msgid "" "List of data to restore:\n" "\n" msgstr "" "Lista podataka za vraćanje:\n" "\n" #: ../../fs.pm:1 #, c-format msgid "Checking %s" msgstr "Provjeravam %s" #: ../../printer/printerdrake.pm:1 #, c-format msgid "TCP/Socket Printer Options" msgstr "TCP/socket opcije štampača" #: ../../network/tools.pm:1 ../../standalone/drakconnect:1 #, c-format msgid "Card mem (DMA)" msgstr "Memorija kartice (DMA)" #: ../../standalone/net_monitor:1 #, c-format msgid "Disconnecting from Internet " msgstr "Prekidam vezu na Internet " #: ../../crypto.pm:1 ../../lang.pm:1 ../../network/tools.pm:1 #, c-format msgid "France" msgstr "Francuska" #: ../../standalone/drakperm:1 #, c-format msgid "browse" msgstr "pregledaj" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Checking installed software..." msgstr "Provjeravam instalirani software..." #: ../../printer/printerdrake.pm:1 #, c-format msgid "Remote printer name missing!" msgstr "Ime udaljenog štampača nedostaje!" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Do you want to enable printing on printers in the local network?\n" msgstr "Da li želite da omogućite štampanje na štampačima u lokalnoj mreži?\n" #: ../../lang.pm:1 #, c-format msgid "Turkey" msgstr "Turska" #: ../../network/adsl.pm:1 #, c-format msgid "Alcatel speedtouch usb" msgstr "Alcatel speedtouch usb" #: ../../standalone/harddrake2:1 #, c-format msgid "Number of buttons" msgstr "Broj dugmadi" #: ../../keyboard.pm:1 #, c-format msgid "Vietnamese \"numeric row\" QWERTY" msgstr "Vijetnamska \"red brojeva\" QWERTY" #: ../../standalone/harddrake2:1 #, c-format msgid "Module" msgstr "Modul" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "In addition, queues not created with this program or \"foomatic-configure\" " "cannot be transferred." msgstr "" "Pored toga, redovi koji nisu kreirani ovim programom ili sa \"foomatic-" "configure\" ne mogu biti premješteni." #: ../../install_steps_interactive.pm:1 #, c-format msgid "Hardware" msgstr "Hardware" #: ../../keyboard.pm:1 #, c-format msgid "Ctrl and Alt keys simultaneously" msgstr "Ctrl i Alt tipke istovremeno" #: ../../crypto.pm:1 ../../lang.pm:1 ../../network/tools.pm:1 #, c-format msgid "United States" msgstr "SAD" #: ../../security/l10n.pm:1 #, c-format msgid "User umask" msgstr "Korisnički umask" #: ../../any.pm:1 #, c-format msgid "Default OS?" msgstr "Podrazumjevani OS?" #: ../../keyboard.pm:1 #, c-format msgid "Swiss (German layout)" msgstr "Švicarska (njemački izgled)" #: ../../Xconfig/card.pm:1 #, c-format msgid "Configure all heads independently" msgstr "Konfiguriši sve glave odvojeno" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "Please choose the printer you want to set up. The configuration of the " "printer will work fully automatically. If your printer was not correctly " "detected or if you prefer a customized printer configuration, turn on " "\"Manual configuration\"." msgstr "" "Molim odaberite štampač koji želite podesiti. Podešavanje štampača će raditi " "potpuno automatski. Ako vaš štampač nije ispravno prepoznat ili ako želite " "sami podesiti štampač, uključite \"Ručno podešavanje\"." #: ../../install_steps_interactive.pm:1 #, c-format msgid "NTP Server" msgstr "NTP server" #: ../../security/l10n.pm:1 #, c-format msgid "Sulogin(8) in single user level" msgstr "Sulogin(8) na jednokorisničkom nivou" #: ../../install_steps_gtk.pm:1 #, c-format msgid "Load/Save on floppy" msgstr "Učitaj/snimi na disketu" #: ../../standalone/draksplash:1 #, c-format msgid "This theme does not yet have a bootsplash in %s !" msgstr "Ova tema još nema bootsplash u %s !" #: ../../pkgs.pm:1 #, c-format msgid "nice" msgstr "fino" #: ../../Xconfig/test.pm:1 #, c-format msgid "Leaving in %d seconds" msgstr "Napuštam za %d sekundi" #: ../../network/modem.pm:1 #, c-format msgid "Please choose which serial port your modem is connected to." msgstr "Molim izaberite na koji serijski port je nakačen vaš modem." #: ../../standalone/drakperm:1 #, c-format msgid "Property" msgstr "Osobina" #: ../../standalone/drakfont:1 #, c-format msgid "Ghostscript" msgstr "Ghostscript" #: ../../standalone/drakconnect:1 #, c-format msgid "LAN Configuration" msgstr "Podešavanje LANa" #: ../../lang.pm:1 #, c-format msgid "Ghana" msgstr "Gana" #: ../../standalone/drakbackup:1 #, c-format msgid "Path or Module required" msgstr "Potrebna je staza ili modul" #: ../../standalone/drakfont:1 #, c-format msgid "Advanced Options" msgstr "Napredne opcije" #: ../../standalone/drakbackup:1 #, c-format msgid "View Configuration" msgstr "Pogledaj konfiguraciju" #: ../../standalone/harddrake2:1 #, c-format msgid "Coma bug" msgstr "Coma bug" #: ../../help.pm:1 #, c-format msgid "" "At this point, you need to choose which partition(s) will be used for the\n" "installation of your Mandrake Linux system. If partitions have already been\n" "defined, either from a previous installation of GNU/Linux or by another\n" "partitioning tool, you can use existing partitions. Otherwise, hard drive\n" "partitions must be defined.\n" "\n" "To create partitions, you must first select a hard drive. You can select\n" "the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n" "``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n" "\n" "To partition the selected hard drive, you can use these options:\n" "\n" " * \"%s\": this option deletes all partitions on the selected hard drive\n" "\n" " * \"%s\": this option enables you to automatically create ext3 and swap\n" "partitions in the free space of your hard drive\n" "\n" "\"%s\": gives access to additional features:\n" "\n" " * \"%s\": saves the partition table to a floppy. Useful for later\n" "partition-table recovery if necessary. It is strongly recommended that you\n" "perform this step.\n" "\n" " * \"%s\": allows you to restore a previously saved partition table from a\n" "floppy disk.\n" "\n" " * \"%s\": if your partition table is damaged, you can try to recover it\n" "using this option. Please be careful and remember that it doesn't always\n" "work.\n" "\n" " * \"%s\": discards all changes and reloads the partition table that was\n" "originally on the hard drive.\n" "\n" " * \"%s\": unchecking this option will force users to manually mount and\n" "unmount removable media such as floppies and CD-ROMs.\n" "\n" " * \"%s\": use this option if you wish to use a wizard to partition your\n" "hard drive. This is recommended if you do not have a good understanding of\n" "partitioning.\n" "\n" " * \"%s\": use this option to cancel your changes.\n" "\n" " * \"%s\": allows additional actions on partitions (type, options, format)\n" "and gives more information about the hard drive.\n" "\n" " * \"%s\": when you are finished partitioning your hard drive, this will\n" "save your changes back to disk.\n" "\n" "When defining the size of a partition, you can finely set the partition\n" "size by using the Arrow keys of your keyboard.\n" "\n" "Note: you can reach any option using the keyboard. Navigate through the\n" "partitions using [Tab] and the [Up/Down] arrows.\n" "\n" "When a partition is selected, you can use:\n" "\n" " * Ctrl-c to create a new partition (when an empty partition is selected)\n" "\n" " * Ctrl-d to delete a partition\n" "\n" " * Ctrl-m to set the mount point\n" "\n" "To get information about the different file system types available, please\n" "read the ext2FS chapter from the ``Reference Manual''.\n" "\n" "If you are installing on a PPC machine, you will want to create a small HFS\n" "``bootstrap'' partition of at least 1MB which will be used by the yaboot\n" "bootloader. If you opt to make the partition a bit larger, say 50MB, you\n" "may find it a useful place to store a spare kernel and ramdisk images for\n" "emergency boot situations." msgstr "" "Sada trebate izabrati koje particije želite koristiti za instalaciju vašeg\n" "Mandrake Linux sistema. Ako su particije već definisane, iz prijašnje\n" "GNU/Linux instalacije ili nekim drugim alatom za particioniranje, možete\n" "koristiti postojeće particije. U suprotnom, sada morate definisati\n" "particije vašeg hard diska.\n" "\n" "Da biste napravili particije, najprije morate izabrati hard disk. Možete\n" "izabrati disk za particioniranje klikom na ''hda'' za prvi IDE disk, " "''hdb''\n" "za drugi, ''sda'' za prvi SCSI disk i slično.\n" "\n" "Pri particioniranju hard diska, možete koristiti sljedeće opcije:\n" "\n" " * \"%s\": ova opcija briše sve particije na izabranom hard disku\n" "\n" " * \"%s\": ova opcija vam omogućuje da automatski napravite ext3\n" "i swap particije u slobodnom prostoru vašeg hard diska\n" "\n" "\"%s\" omogućuje pristup dodatnim mogućnostima:\n" "\n" " * \"%s\": snima tabelu particija na disketu. Ovo je korisno za\n" "kasnije vraćanje tabele particija, ako je potrebno. Strogo je preporučeno\n" "da izvršite ovaj korak.\n" "\n" " * \"%s\": omogućuje vam da vratite ranije snimljenu tabelu\n" "particija sa diskete.\n" "\n" " * \"%s\": ako je vaša tabela particija oštećena, možete je pokušati\n" "obnoviti koristeći ovu opciju. Molim budite pažljivi i zapamtite da\n" "ova opcija ne uspijeva svaki put.\n" "\n" " * \"%s\": poništava sve promjene i ponovo učitava originalnu tabelu\n" "particija sa hard diska.\n" "\n" " * \"%s\": isključivanjem ove opcije ćete prisiliti korisnike da ručno\n" "montiraju i demontiraju izmjenjive medije kao što su diskete i\n" "CD-ROMovi.\n" "\n" " * \"%s\": koristite ovu opciju ako želite koristiti čarobnjak za\n" "particioniranje vašeg hard diska. Ovo je preporučeno ako nemate\n" "izraženo razumijevanje particioniranja.\n" "\n" " * \"%s\": koristite ovu opciju da poništite vaše izmjene.\n" "\n" " * \"%s\": omogućuje dodatne akcije na particijama (tip, opcije,\n" "formatiranje) i daje više informacija o hard disku.\n" "\n" " * \"%s\": kada završite particioniranje diska, ovo će zapisati\n" "vaše izmjene na disk.\n" "\n" "Prilikom definisanja veličine particije, možete fino podešavati veličinu\n" "particije koristeći dugmad sa strjelicama na vašoj tastaturi.\n" "\n" "Napomena: svaku opciju možete postići tastaturom. Između particija\n" "se krećete koristeći dugme [Tab] i strjelice [Gore/Dolje].\n" "\n" "Kada izaberete particiju, možete koristiti:\n" "\n" " * Ctrl-C da napravite novu particiju (ako ste izabrali prazan prostor)\n" "\n" " * Ctrl-D da obrišete particiju\n" "\n" " * Ctrl-M da podesite tačku montiranja\n" "\n" "Da biste dobili informacije o raznim tipovima datotečnog sistema koji\n" "su dostupni, pročitajte poglavlje o ext2FS iz ''Referentnog priručnika''.\n" "\n" "Ako instalirate na PPC računar, trebate napraviti malu HFS ''bootstrap''\n" "particiju od najmanje 1 MB koju će koristiti yaboot bootloader. Ako se\n" "odlučite da ovu particiju učinite nešto većom, npr. 50 MB, primjetićete\n" "da je ona korisno mjesto za čuvanje rezervnog kernela ili ramdisk slika\n" "za hitne slučajeve." #: ../../help.pm:1 #, c-format msgid "" "Graphic Card\n" "\n" " The installer will normally automatically detect and configure the\n" "graphic card installed on your machine. If it is not the case, you can\n" "choose from this list the card you actually have installed.\n" "\n" " In the case that different servers are available for your card, with or\n" "without 3D acceleration, you are then asked to choose the server that best\n" "suits your needs." msgstr "" "Grafička kartica\n" "\n" " Instalacija obično automatski prepoznaje i podešava grafičku karticu\n" "koja je instalirana na računar. Ako se ovo nije desilo, možete izabrati\n" "sa liste karticu koja je ugrađena u vaš računar.\n" "\n" " U slučaju da postoji više dostupnih servera za vašu karticu, sa ili bez\n" "3D ubrzanja, biće vam predložen izbor servera koji najbolje odgovara\n" "vašim potrebama." #: ../../install_steps_gtk.pm:1 ../../install_steps_interactive.pm:1 #, c-format msgid "There was an error installing packages:" msgstr "Došlo je do greške kod instaliranja paketa:" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Lexmark inkjet configuration" msgstr "Podešavanje Lexmark inkjet-a" #: ../../help.pm:1 ../../diskdrake/interactive.pm:1 #, c-format msgid "Undo" msgstr "Poništi" #: ../../help.pm:1 ../../diskdrake/interactive.pm:1 #, c-format msgid "Save partition table" msgstr "Snimi tabelu particija" #: ../../keyboard.pm:1 #, c-format msgid "Finnish" msgstr "Finska" #: ../../lang.pm:1 #, c-format msgid "Macedonia" msgstr "Makedonija" #: ../../any.pm:1 #, c-format msgid "" "The per-user sharing uses the group \"fileshare\". \n" "You can use userdrake to add a user to this group." msgstr "" "Dijeljenje na nivou korisnika koristi grupu \"fileshare\". \n" "Možete dodavati korisnike u ovu grupu pomoću userdrake-a." #: ../../keyboard.pm:1 #, c-format msgid "Slovenian" msgstr "Slovenačka" #: ../../security/help.pm:1 #, c-format msgid "" "Authorize:\n" "\n" "- all services controlled by tcp_wrappers (see hosts.deny(5) man page) if " "set to \"ALL\",\n" "\n" "- only local ones if set to \"LOCAL\"\n" "\n" "- none if set to \"NONE\".\n" "\n" "To authorize the services you need, use /etc/hosts.allow (see hosts.allow" "(5))." msgstr "" "Autorizuj:\n" "\n" "- sve servise koje kontrolišu tcp_wrapperi (vidi hosts.deny(5) man " "stranicu), ako je podešeno na \"SVE\",\n" "\n" "- samo lokalne servise, ako je podešeno na \"LOKAL\",\n" "\n" "- nijedan, ako je podešeno na \"NIŠTA\".\n" "\n" "Da biste autorizovali servise koji su vam potrebni, koristite /etc/hosts." "allow (vidi hosts.allow(5))." #: ../../lang.pm:1 #, c-format msgid "Libya" msgstr "Libija" #: ../../standalone/drakgw:1 #, c-format msgid "Configuring scripts, installing software, starting servers..." msgstr "Podešavam skripte, instaliram software, pokrećem servere..." #: ../../printer/printerdrake.pm:1 #, c-format msgid "Printer on parallel port #%s" msgstr "Štampač na paralelnom portu #%s" #: ../../standalone/drakbackup:1 #, c-format msgid "" "\n" "- Burn to CD" msgstr "" "\n" "- Prži na CD" #: ../../any.pm:1 #, c-format msgid "Table" msgstr "Tabela" #: ../../fs.pm:1 #, c-format msgid "I don't know how to format %s in type %s" msgstr "Ne znam kako formatirati %s kao tip %s" #: ../../standalone/harddrake2:1 ../../standalone/printerdrake:1 #, c-format msgid "Model" msgstr "Model" #: ../../printer/main.pm:1 ../../printer/printerdrake.pm:1 #, c-format msgid "USB printer #%s" msgstr "USB štampač #%s" #: ../../standalone/drakTermServ:1 #, c-format msgid "Stop Server" msgstr "Zaustavi server" #: ../../standalone/drakboot:1 #, c-format msgid "" "\n" "Select the theme for\n" "lilo and bootsplash,\n" "you can choose\n" "them separately" msgstr "" "\n" "Izaberite temu za\n" "lilo i boot ekran,\n" "možete ih odvojeno\n" "izabrati" #: ../../harddrake/data.pm:1 #, c-format msgid "Modem" msgstr "Modem" #: ../../lang.pm:1 #, c-format msgid "Tuvalu" msgstr "Tuvalu" #: ../../help.pm:1 ../../network/netconnect.pm:1 #, c-format msgid "Use auto detection" msgstr "Koristi auto prepoznavanje" #: ../../services.pm:1 #, c-format msgid "" "GPM adds mouse support to text-based Linux applications such the\n" "Midnight Commander. It also allows mouse-based console cut-and-paste " "operations,\n" "and includes support for pop-up menus on the console." msgstr "" "GPM dodaje podršku za miša tekstualnim aplikacijama kao što je\n" "Midnight Commander. On također omogućuje konzolne isjeci/umetni operacije\n" "pomoću miša i uključuje podršku za pop-up menije na konzoli." #: ../../standalone/drakconnect:1 #, c-format msgid "Started on boot" msgstr "Pokrenut na bootu" #: ../advertising/12-mdkexpert.pl:1 #, c-format msgid "" "Join the MandrakeSoft support teams and the Linux Community online to share " "your knowledge and help others by becoming a recognized Expert on the online " "technical support website:" msgstr "" "Pridružite se MandrakeSoftovom support teamu i Linux zajednici na Internetu, " "podijelite vaše znanje i pomozite drugima i tako postanite priznat Expert na " "našem online tech support sajtu:" #: ../../security/l10n.pm:1 #, c-format msgid "No password aging for" msgstr "Bez starenja šifre za" #: ../../standalone/draksec:1 #, c-format msgid "" "The following options can be set to customize your\n" "system security. If you need an explanation, look at the help tooltip.\n" msgstr "" "Možete podesiti sljedeće opcije kako biste prilagodili sigurnost vašeg " "sistema. Ako vam je potrebno objašnjenje, pogledajte pomoć u tooltipu.\n" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Automatically find available printers on remote machines" msgstr "Automatski pronađi dostupne štampače na udaljenim računarima" #: ../../lang.pm:1 #, c-format msgid "East Timor" msgstr "Istočni Timor" #: ../../standalone/drakbackup:1 #, c-format msgid "On Tape Device" msgstr "na Kasetnom uređaju" #: ../../standalone/drakbackup:1 #, c-format msgid "" "\n" "- Save to Tape on device: %s" msgstr "" "\n" "- Spasi na traku na uređaju: %s" #: ../../standalone/drakbackup:1 #, c-format msgid "Login name" msgstr "Korisničko ime" #: ../../security/l10n.pm:1 #, c-format msgid "Report unowned files" msgstr "Prijavi datoteke bez vlasnika" #: ../../standalone/drakconnect:1 #, c-format msgid "Del profile..." msgstr "Briši profil..." #: ../../printer/printerdrake.pm:1 #, c-format msgid "Installing Foomatic..." msgstr "Instaliram Foomatic..." #: ../../standalone/XFdrake:1 #, c-format msgid "Please log out and then use Ctrl-Alt-BackSpace" msgstr "Molim izvršite logout i zatim koristitite Ctrl-Alt-BackSpace" #: ../../network/netconnect.pm:1 #, c-format msgid "detected" msgstr "detektovan" #: ../../network/netconnect.pm:1 #, c-format msgid "The network needs to be restarted. Do you want to restart it ?" msgstr "Potrebno je restartovati mrežu. Želite li je restartovati?" #: ../../standalone/drakbug:1 #, c-format msgid "Package: " msgstr "Paket:" #: ../../standalone/drakboot:1 #, c-format msgid "Can't write /etc/sysconfig/bootsplash." msgstr "Ne mogu pisati u /etc/sysconfig/bootsplash." #: ../../printer/printerdrake.pm:1 #, c-format msgid "SECURITY WARNING!" msgstr "SIGURNOSNO UPOZORENJE!" #: ../../standalone/drakfont:1 #, c-format msgid "StarOffice" msgstr "StarOffice" #: ../../standalone/drakboot:1 #, c-format msgid "No, I don't want autologin" msgstr "Ne, ne želim da se automatski prijavim" #: ../../standalone/drakbug:1 #, c-format msgid "Windows Migration tool" msgstr "Alat za Windows migraciju" #: ../../any.pm:1 ../../help.pm:1 #, c-format msgid "All languages" msgstr "Svi jezici" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Removing %s" msgstr "Uklanjam %s" #: ../../standalone/drakTermServ:1 #, c-format msgid "%s not found...\n" msgstr "%s nije pronađen...\n" #: ../../network/tools.pm:1 ../../standalone/drakconnect:1 #, c-format msgid "Testing your connection..." msgstr "Probavam vašu konekciju..." #: ../../standalone/harddrake2:1 #, c-format msgid "Cache size" msgstr "Veličina cache-a" #: ../../security/level.pm:1 #, c-format msgid "" "Passwords are now enabled, but use as a networked computer is still not " "recommended." msgstr "" "Šifra je sada aktivirana, ali korištenje za mrežni računar još nije " "preporučeno." #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Start sector: " msgstr "Početni sektor: " #: ../../lang.pm:1 #, c-format msgid "Congo (Brazzaville)" msgstr "Kongo (Brazzaville)" #: ../../standalone/drakperm:1 #, c-format msgid "Read" msgstr "Čitaj" #: ../../any.pm:1 ../../install_any.pm:1 ../../standalone.pm:1 #, c-format msgid "The package %s needs to be installed. Do you want to install it?" msgstr "Paket %s treba biti instaliran. Da li ga želite instalirati?" #: ../../lang.pm:1 #, c-format msgid "Seychelles" msgstr "Sejšelska ostrva" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "Printerdrake has compared the model name resulting from the printer auto-" "detection with the models listed in its printer database to find the best " "match. This choice can be wrong, especially when your printer is not listed " "at all in the database. So check whether the choice is correct and click " "\"The model is correct\" if so and if not, click \"Select model manually\" " "so that you can choose your printer model manually on the next screen.\n" "\n" "For your printer Printerdrake has found:\n" "\n" "%s" msgstr "" "Printerdrake je uporedi ime modela koje je dobijeno od automatskog " "prepoznavanja štampača sa modelima koji su navedeni u njegovoj bazi podataka " "kako bi našao najbliži. Ovaj izbor možda nije tačan, pogotovo ako vaš " "štampač uopšte nije naveden u bazi. Stoga provjerite da li je izbor ispravan " "i ako je tako kliknite \"Model je ispravan\", u suprotnom kliknite " "\"Izaberite model ručno\" kako biste ručno izabrali vaš model štampača na " "sljedećem ekranu.\n" "\n" "Za vaš štampač Printerdrake je našao:\n" "\n" "%s" #: ../../standalone/drakbackup:1 #, c-format msgid "Bad password on %s" msgstr "Pogrešna šifra na %s" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "\n" "There is one unknown printer directly connected to your system" msgstr "" "\n" "Na vaš sistem je direktno spojen jedan nepoznat štampač" #: ../../keyboard.pm:1 #, c-format msgid "Right Control key" msgstr "Desna Control tipka" #: ../../network/tools.pm:1 #, c-format msgid "" "Insert a FAT formatted floppy in drive %s with %s in root directory and " "press %s" msgstr "" "Ubacite FAT formatiranu disketu u jedinicu %s sa %s u root direktoriju i " "pritisnite %s" #: ../../lang.pm:1 #, c-format msgid "Zambia" msgstr "Zambija" #: ../../security/level.pm:1 #, c-format msgid "Security Administrator (login or email)" msgstr "Sigurnosni administrator (login ili email)" #: ../../standalone/drakgw:1 #, c-format msgid "Sorry, we support only 2.4 kernels." msgstr "Žalim, podržavamo samo 2.4 kernele." #: ../../keyboard.pm:1 #, c-format msgid "Romanian (qwerty)" msgstr "Rumunska (qwerty)" #: ../../standalone/drakbackup:1 #, c-format msgid "Under Devel ... please wait." msgstr "U izradi ... molim sačekajte." #: ../../lang.pm:1 #, c-format msgid "Egypt" msgstr "Egipat" #: ../../crypto.pm:1 ../../lang.pm:1 #, c-format msgid "Czech Republic" msgstr "Češka" #: ../../help.pm:1 ../../install_steps_interactive.pm:1 #, c-format msgid "Sound card" msgstr "Zvučna kartica" #: ../../standalone/drakfont:1 #, c-format msgid "Import Fonts" msgstr "Uvoz fontova" #: ../../diskdrake/hd_gtk.pm:1 #, c-format msgid "" "You have one big MicroSoft Windows partition.\n" "I suggest you first resize that partition\n" "(click on it, then click on \"Resize\")" msgstr "" "Imate jednu veliku Microsoft Windows particiju.\n" "Predlažem da najprije promijenite veličinu te particije\n" "(kliknite na nju, zatim na \"Promijeni veličinu\")" #: ../../standalone/drakfont:1 #, c-format msgid "Suppress Temporary Files" msgstr "Onemogući privremene datoteke" #: ../../network/netconnect.pm:1 #, c-format msgid "" "Congratulations, the network and Internet configuration is finished.\n" "\n" msgstr "" "Čestitamo, podešavanje mreže i Interneta je završeno.\n" "\n" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Change partition type" msgstr "Izmjena tipa particije" #: ../../help.pm:1 #, c-format msgid "" "Resolution\n" "\n" " Here you can choose the resolutions and color depths available for your\n" "hardware. Choose the one that best suits your needs (you will be able to\n" "change that after installation though). A sample of the chosen\n" "configuration is shown in the monitor." msgstr "" "Rezolucija\n" "\n" " Ovdje možete izabrati rezoluciju i broj boja među vrijednostima koje su\n" "moguće na vašem hardveru. Izaberite one vrijednosti koje vam najbolje\n" "odgovaraju (moći ćete ih promijeniti nakon instalacije). Primjer izabrane\n" "konfiguracije je prikazan na monitoru." #: ../../standalone/draksec:1 #, c-format msgid "Network Options" msgstr "Mrežne opcije" #: ../../security/l10n.pm:1 #, c-format msgid "Enable msec hourly security check" msgstr "Uključi msec provjeru svakog sata" #: ../../standalone/drakboot:1 #, c-format msgid "" "Display theme\n" "under console" msgstr "" "Tema prikaza\n" "pod konzolom" #: ../../printer/cups.pm:1 #, c-format msgid "(on %s)" msgstr "(na %s)" #: ../../mouse.pm:1 #, c-format msgid "MM Series" msgstr "MM Series" #: ../../security/level.pm:1 #, c-format msgid "" "A library which defends against buffer overflow and format string attacks." msgstr "" "Biblioteka koja brani od napada \"buffer overflow\" i \"format string\"." #: ../../standalone/net_monitor:1 #, c-format msgid "average" msgstr "prosjek" #: ../../printer/printerdrake.pm:1 #, c-format msgid "New printer name" msgstr "Novo ime štampača" #: ../../fs.pm:1 #, c-format msgid "" "Allow an ordinary user to mount the file system. The\n" "name of the mounting user is written to mtab so that he can unmount the " "file\n" "system again. This option implies the options noexec, nosuid, and nodev\n" "(unless overridden by subsequent options, as in the option line\n" "user,exec,dev,suid )." msgstr "" "Omogući običnom korisniku da montira datotečni sistem.\n" "Ime korisnika će biti zapisano u mtab tako da on može i demontirati\n" "datotečni sistem. Ova opcija podrazumijeva opcije noexec, nosuid i\n" "nodev (osim ako to ne izmijenite kasnijim opcijama, kao u slučaju\n" "linije user,exec,dev,suid )." #: ../../lang.pm:1 #, c-format msgid "Equatorial Guinea" msgstr "Ekvatorijalna Gvineja" #: ../../standalone/drakbackup:1 #, c-format msgid "Backup System" msgstr "Backup sistema" #: ../../standalone/drakbackup:1 #, c-format msgid "Build Backup" msgstr "Izgradi backup" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "To print a file from the command line (terminal window) use the command \"%s " "\" or \"%s \".\n" msgstr "" "Za štampanje datoteke sa komandne linije (terminalski prozor) koristite " "komandu \"%s \" ili \"%s \".\n" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Currently, no alternative possibility is available" msgstr "Trenutno nije dostupna nijedna alternativa" #: ../../keyboard.pm:1 #, c-format msgid "Romanian (qwertz)" msgstr "Rumunska (qwertz)" #: ../../standalone/drakTermServ:1 #, c-format msgid "Write Config" msgstr "Zapiši konfiguraciju" #: ../../services.pm:1 #, c-format msgid "" "The routed daemon allows for automatic IP router table updated via\n" "the RIP protocol. While RIP is widely used on small networks, more complex\n" "routing protocols are needed for complex networks." msgstr "" "Routed demon omogućuje da se automatska IP tabela rutiranja podešava\n" "preko RIP protokola. Mada se RIP često koristi na malim mrežama, " "kompleksniji\n" "protokoli rutiranja su potrebni za složene mreže." #: ../../lang.pm:1 #, c-format msgid "Kiribati" msgstr "Kiribati" #: ../../mouse.pm:1 #, c-format msgid "Logitech Mouse (serial, old C7 type) with Wheel emulation" msgstr "Logitech Mouse (serijski, stari C7 tip) sa simulacijom točkića" #: ../../standalone/drakbackup:1 #, c-format msgid "Other (not drakbackup) keys in place already" msgstr "Drugi (ne drakbackup) ključevi su već na mjestu" #: ../../help.pm:1 #, c-format msgid "" "X (for X Window System) is the heart of the GNU/Linux graphical interface\n" "on which all the graphical environments (KDE, GNOME, AfterStep,\n" "WindowMaker, etc.) bundled with Mandrake Linux rely upon.\n" "\n" "You will be presented with a list of different parameters to change to get\n" "an optimal graphical display: Graphic Card\n" "\n" " The installer will normally automatically detect and configure the\n" "graphic card installed on your machine. If it is not the case, you can\n" "choose from this list the card you actually have installed.\n" "\n" " In the case that different servers are available for your card, with or\n" "without 3D acceleration, you are then asked to choose the server that best\n" "suits your needs.\n" "\n" "\n" "\n" "Monitor\n" "\n" " The installer will normally automatically detect and configure the\n" "monitor connected to your machine. If it is incorrect, you can choose from\n" "this list the monitor you actually have connected to your computer.\n" "\n" "\n" "\n" "Resolution\n" "\n" " Here you can choose the resolutions and color depths available for your\n" "hardware. Choose the one that best suits your needs (you will be able to\n" "change that after installation though). A sample of the chosen\n" "configuration is shown in the monitor.\n" "\n" "\n" "\n" "Test\n" "\n" " the system will try to open a graphical screen at the desired\n" "resolution. If you can see the message during the test and answer \"%s\",\n" "then DrakX will proceed to the next step. If you cannot see the message, it\n" "means that some part of the autodetected configuration was incorrect and\n" "the test will automatically end after 12 seconds, bringing you back to the\n" "menu. Change settings until you get a correct graphical display.\n" "\n" "\n" "\n" "Options\n" "\n" " Here you can choose whether you want to have your machine automatically\n" "switch to a graphical interface at boot. Obviously, you want to check\n" "\"%s\" if your machine is to act as a server, or if you were not successful\n" "in getting the display configured." msgstr "" "X (skraćeno od X Window System) je srce GNU/Linux grafičkog interfejsa\n" "o kojem ovise sve grafičke okoline (KDE, GNOME, AfterStep,\n" "WindowMaker itd.) uključene u Mandrake Linux.\n" "\n" "Biće vam predstavljena lista različitih parametara koje možete promijeniti\n" "da biste dobili optimalan grafički prikaz: Grafička kartica\n" "\n" " Instalacija obično automatski prepoznaje i podešava grafičku karticu\n" "koja je instalirana na računar. Ako se ovo nije desilo, možete izabrati\n" "sa liste karticu koja je ugrađena u vaš računar.\n" "\n" " U slučaju da postoji više dostupnih servera za vašu karticu, sa ili bez\n" "3D ubrzanja, biće vam predložen izbor servera koji najbolje odgovara\n" "vašim potrebama.\n" "\n" "\n" "\n" "Monitor\n" "\n" " Instalacioni program obično može prepoznati i podesiti monitor koji\n" "je povezan na vaš računar. Ako se ovo ne desi, možete odabrati neki\n" "monitor sa ove liste.\n" "\n" "\n" "\n" "Rezolucija\n" "\n" " Ovdje možete izabrati rezoluciju i broj boja među vrijednostima koje su\n" "moguće na vašem hardveru. Izaberite one vrijednosti koje vam najbolje\n" "odgovaraju (moći ćete ih promijeniti nakon instalacije). Primjer izabrane\n" "konfiguracije je prikazan na monitoru.\n" "\n" "\n" "\n" "Test\n" "\n" " Sistem će pokušati prikazati grafički ekran na željenoj rezoluciji.\n" "Ako možete vidjeti poruku tokom testa i odgovorite sa \"%s\", DrakX\n" "će produžiti na idući korak. Ako ne možete vidjeti poruku, to znači\n" "da je neki dio automatski prepoznate konfiguracije bio pogrešan.\n" "Test će automatski završiti nakon 12 sekundi, čime ćete biti vraćeni na\n" "meni. Mijenjajte postavke dok ne dobijete ispravan grafički prikaz.\n" "\n" "\n" "\n" "Opcije\n" "\n" " Ovdje možete izabrati da li želite da vaš računar automatski pređe na\n" "grafički interfejs nakon uključivanja. Očito, trebate odgovoriti \"%s\" ako\n" "će vaš računar imati ulogu servera ili ako imate problema sa\n" "podešavanjem ekrana." #: ../../standalone/draksplash:1 #, c-format msgid "Browse" msgstr "Pregledaj" #: ../../harddrake/data.pm:1 #, c-format msgid "CDROM" msgstr "CDROM" #: ../../network/tools.pm:1 #, c-format msgid "Do you want to try to connect to the Internet now?" msgstr "Da li se želite pokušati spojiti na Internet sada?" #: ../../keyboard.pm:1 #, c-format msgid "Belgian" msgstr "Belgijska" #: ../../install_steps_interactive.pm:1 #, c-format msgid "Do you have an ISA sound card?" msgstr "Imate li ISA zvučnu karticu?" #: ../../network/ethernet.pm:1 #, c-format msgid "" "No ethernet network adapter has been detected on your system.\n" "I cannot set up this connection type." msgstr "" "Nije pronađen ethernet mrežni adapter na vašem sistemu.\n" "Ne mogu podesiti ovu vrstu konekcije." #: ../../diskdrake/hd_gtk.pm:1 #, c-format msgid "Windows" msgstr "Windows" #: ../../common.pm:1 #, c-format msgid "Can't make screenshots before partitioning" msgstr "Ne mogu napraviti snimak ekrana prije particioniranja" #: ../../standalone/drakbackup:1 #, c-format msgid "Host Name" msgstr "Ime računara" #: ../../standalone/logdrake:1 #, c-format msgid "/File/Save _As" msgstr "/_Datoteka/Sačuvaj K_ao" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "To get access to printers on remote CUPS servers in your local network you " "only need to turn on the \"Automatically find available printers on remote " "machines\" option; the CUPS servers inform your machine automatically about " "their printers. All printers currently known to your machine are listed in " "the \"Remote printers\" section in the main window of Printerdrake. If your " "CUPS server(s) is/are not in your local network, you have to enter the IP " "address(es) and optionally the port number(s) here to get the printer " "information from the server(s)." msgstr "" "Da biste pristupili štampačima na udaljenim CUPS serverima u vašoj lokalnoj " "mreži, sve što treba je da uključite opciju \"Automatski pronađi dostupne " "štampače na udaljenim računarima\"; CUPS serveri će automatski informisati " "vaš računar o svojim štampačima. Svi štampači koji su poznati vašem računaru " "su navedeni u sekciji \"Udaljeni štampači\" glavnog Printerdrake prozora. " "Ako vaš CUPS server nije u lokalnoj mreži, morate ovdje unijeti njegovu IP " "adresu i eventualno broj porta kako biste dobili informacije od servera." #: ../../standalone/scannerdrake:1 #, c-format msgid "%s is not in the scanner database, configure it manually?" msgstr "%s nije u bazi skenera, želite li ga ručno podesiti?" #: ../../any.pm:1 #, c-format msgid "Delay before booting default image" msgstr "Čekanje prije bootanja default image-a" #: ../../any.pm:1 #, c-format msgid "Restrict command line options" msgstr "Ograniči opcije komandne linije" #: ../../standalone/drakxtv:1 #, c-format msgid "East Europe" msgstr "Istočna Evropa" #: ../../help.pm:1 ../../install_interactive.pm:1 #, c-format msgid "Use free space" msgstr "Koristi slobodan prostor" #: ../../network/adsl.pm:1 #, c-format msgid "use dhcp" msgstr "koristi dhcp" #: ../../standalone/logdrake:1 #, c-format msgid "Mail alert" msgstr "Mail obavijest" #: ../../network/tools.pm:1 #, c-format msgid "Internet configuration" msgstr "Internet konfiguracija" #: ../../lang.pm:1 #, c-format msgid "Uzbekistan" msgstr "Uzbekistan" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Detected %s" msgstr "Detektovan %s" #: ../../standalone/harddrake2:1 #, c-format msgid "/Autodetect _printers" msgstr "/Automatski prepoznaj štam_pače" #: ../../interactive.pm:1 ../../ugtk2.pm:1 ../../interactive/newt.pm:1 #, c-format msgid "Finish" msgstr "Kraj" #: ../../install_steps_gtk.pm:1 #, c-format msgid "Show automatically selected packages" msgstr "Automatski prikaži izabrane pakete" #: ../../lang.pm:1 #, c-format msgid "Togo" msgstr "Togo" #: ../../standalone/harddrake2:1 #, c-format msgid "CPU flags reported by the kernel" msgstr "CPU flagovi koje je prijavio kernel" #: ../../standalone/drakTermServ:1 #, c-format msgid "Something went wrong! - Is mkisofs installed?" msgstr "Nešto je pogrešno! - Da li je instaliran mkisofs?" #: ../../Xconfig/card.pm:1 #, c-format msgid "16 MB" msgstr "16 MB" #: ../../any.pm:1 ../../install_steps_interactive.pm:1 #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Please try again" msgstr "Molim pokušajte ponovo" #: ../../printer/printerdrake.pm:1 #, c-format msgid "The model is correct" msgstr "Model je ispravan" #: ../../install_interactive.pm:1 #, c-format msgid "FAT resizing failed: %s" msgstr "Smanjivanje FAT particije nije uspjelo: %s" #: ../../help.pm:1 ../../install_steps_gtk.pm:1 #: ../../install_steps_interactive.pm:1 #, c-format msgid "Individual package selection" msgstr "Izbor pojedinačnih paketa" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "This partition is not resizeable" msgstr "Ovoj particiji ne možete mijenjati veličinu" #: ../../printer/printerdrake.pm:1 ../../standalone/printerdrake:1 #, c-format msgid "Location" msgstr "Lokacija" #: ../../standalone/drakxtv:1 #, c-format msgid "USA (cable-hrc)" msgstr "USA (cable-hrc)" #: ../../lang.pm:1 #, c-format msgid "Guatemala" msgstr "Gvatemala" #: ../../diskdrake/hd_gtk.pm:1 #, c-format msgid "Journalised FS" msgstr "Journalised FS" #: ../../security/l10n.pm:1 #, c-format msgid "Ethernet cards promiscuity check" msgstr "Provjera promiskuitetnog režima Ethernet kartica" #: ../../standalone/scannerdrake:1 #, c-format msgid "This machine" msgstr "Na ovom računaru" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "DOS drive letter: %s (just a guess)\n" msgstr "DOS slovo uređaja: %s (pretpostavka)\n" #: ../../lang.pm:1 #, c-format msgid "Bahrain" msgstr "Bahrein" #: ../../standalone/drakbackup:1 #, c-format msgid "Select the files or directories and click on 'OK'" msgstr "Izaberite datoteke ili direktorije i kliknite na 'U redu'" #: ../../standalone/drakfloppy:1 #, c-format msgid "omit scsi modules" msgstr "izostavi scsi module" #: ../../standalone/harddrake2:1 #, c-format msgid "family of the cpu (eg: 6 for i686 class)" msgstr "familija CPUa (npr: 6 za i686 generaciju)" #: ../../network/netconnect.pm:1 #, c-format msgid "" "Because you are doing a network installation, your network is already " "configured.\n" "Click on Ok to keep your configuration, or cancel to reconfigure your " "Internet & Network connection.\n" msgstr "" "Pošto radite mrežnu instalaciju, vaša mreža je već podešena.\n" "Kliknite na U redu da zadržite tu konfiguraciju ili Odustani za podešavanje " "vaše Internet & Mrežne konekcije.\n" #: ../../security/l10n.pm:1 #, c-format msgid "Run the daily security checks" msgstr "Izvršavaj dnevne sigurnosne provjere" #: ../../Xconfig/various.pm:1 #, c-format msgid "Keyboard layout: %s\n" msgstr "Raspored tastature: %s\n" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "Here you can choose whether the printers connected to this machine should be " "accessable by remote machines and by which remote machines." msgstr "" "Ovdje možete izabrati da li štampači spojeni na ovaj računar trebaju biti " "dostupni drugim računarima i kojim drugim računarima." #: ../../keyboard.pm:1 #, c-format msgid "Maltese (US)" msgstr "Malteška (US)" #: ../../standalone/drakfloppy:1 #, c-format msgid "The creation of the boot floppy has been successfully completed \n" msgstr "Pravljenje boot diskete je uspješno završeno \n" #: ../../services.pm:1 #, c-format msgid "" "Mounts and unmounts all Network File System (NFS), SMB (Lan\n" "Manager/Windows), and NCP (NetWare) mount points." msgstr "" "Montira i demontira sve Network File System (NFS), SMB (Lan\n" "Manager/Windows) i NCP (NetWare) tačke montiranja." #: ../../standalone/drakconnect:1 #, c-format msgid "Launch the wizard" msgstr "Pokreni čarobnjak" #: ../../harddrake/data.pm:1 #, c-format msgid "Tvcard" msgstr "TV kartica" #: ../../help.pm:1 #, c-format msgid "Toggle between normal/expert mode" msgstr "Prekidač normalnog/ekspertnog moda" #: ../../standalone/drakfloppy:1 #, c-format msgid "Size" msgstr "Veličina" #: ../../help.pm:1 #, c-format msgid "GRUB" msgstr "GRUB" #: ../../lang.pm:1 #, c-format msgid "Greenland" msgstr "Grenland" #: ../../mouse.pm:1 #, c-format msgid "Logitech MouseMan+/FirstMouse+" msgstr "Logitech MouseMan+/FirstMouse+" #: ../../standalone/drakbackup:1 #, c-format msgid "Thursday" msgstr "Četvrtak" #: ../../standalone/drakbackup:1 #, c-format msgid "Not the correct tape label. Tape is labelled %s." msgstr "Neispravna oznaka trake. Oznaka je %s." #: ../../standalone/drakgw:1 #, c-format msgid "" "The setup of Internet Connection Sharing has already been done.\n" "It's currently enabled.\n" "\n" "What would you like to do?" msgstr "" "Dijeljenje Internet konekcije je već podešeno. Trenutno je\n" "aktivno.\n" "\n" "Šta želite uraditi?" #: ../../standalone/drakTermServ:1 #, c-format msgid "Delete All NBIs" msgstr "Obriši sve NBIje" #: ../../help.pm:1 #, c-format msgid "" "This dialog allows you to fine tune your bootloader:\n" "\n" " * \"%s\": there are three choices for your bootloader:\n" "\n" " * \"%s\": if you prefer grub (text menu).\n" "\n" " * \"%s\": if you prefer LILO with its text menu interface.\n" "\n" " * \"%s\": if you prefer LILO with its graphical interface.\n" "\n" " * \"%s\": in most cases, you will not change the default (\"%s\"), but if\n" "you prefer, the bootloader can be installed on the second hard drive\n" "(\"%s\"), or even on a floppy disk (\"%s\");\n" "\n" " * \"%s\": after a boot or a reboot of the computer, this is the delay\n" "given to the user at the console to select a boot entry other than the\n" "default.\n" "\n" "!! Beware that if you choose not to install a bootloader (by selecting\n" "\"%s\"), you must ensure that you have a way to boot your Mandrake Linux\n" "system! Be sure you know what you are doing before changing any of the\n" "options. !!\n" "\n" "Clicking the \"%s\" button in this dialog will offer advanced options which\n" "are normally reserved for the expert user." msgstr "" "Ovaj dijalog vam omogućuje da fino podesite vaš bootloader:\n" "\n" " * \"%s\": ovdje su tri izbora za vaš bootloader:\n" "\n" " * \"%s\": ako preferirate grub (tekstualni meni),\n" "\n" " * \"%s\": ako preferirate LILO sa njegovim tekstualnim interfejsom.\n" "\n" " * \"%s\": ako preferirate LILO sa njegovim grafičkim interfejsom.\n" "\n" " * \"%s\": u većini slučajeva nije potrebno da mijenjate\n" "ponuđenu vrijednost (\"%s\"), ali ako to želite, bootloader\n" "može biti instaliran na drugi hard disk (\"%s\") ili čak na\n" "disketu (\"%s\");\n" "\n" " * \"%s\": nakon boota ili reboota\n" "računara, ovo je vrijeme koje je dato korisniku za računarom da izabere\n" "neku opciju iz boot menija koja se razlikuje od izabrane.\n" "\n" "!! Pazite da ako odaberete da ne želite instalirati bootloader (klikanjem\n" "na \"%s\"), morate se pobrinuti da imate neki način za pokretanje\n" "vašeg Mandrake Linux sistema! Budite sigurni da znate šta hoćete prije\n" "nego što promijenite neku od ovih opcija. !!\n" "\n" "Klik na dugme \"%s\" u ovom dijalogu vam pruža napredne opcije\n" "rezervisane za ekspertnog korisnika." #: ../../security/help.pm:1 #, c-format msgid "" "if set, send the mail report to this email address else send it to root." msgstr "" "ako je uključeno, šalje mail izvještaj na ovu email adresu, inače ga šalje " "root-u." #: ../../Xconfig/card.pm:1 #, c-format msgid "Which configuration of XFree do you want to have?" msgstr "Koju konfiguraciju XFree želite imati?" #: ../../any.pm:1 ../../help.pm:1 ../../install_steps_interactive.pm:1 #: ../../diskdrake/interactive.pm:1 #, c-format msgid "More" msgstr "Još" #: ../../standalone/drakbackup:1 #, c-format msgid "" "This uses the same syntax as the command line program 'cdrecord'. 'cdrecord -" "scanbus' would also show you the device number." msgstr "" "Ovdje koristite istu sintaksu kao program 'cdrecord' za komandnu liniju. " "'cdrecord --scanbus' će vam takođe pokazati broj uređaja." #: ../../security/level.pm:1 #, c-format msgid "" "With this security level, the use of this system as a server becomes " "possible.\n" "The security is now high enough to use the system as a server which can " "accept\n" "connections from many clients. Note: if your machine is only a client on the " "Internet, you should choose a lower level." msgstr "" "Sa ovim sigurnosnim nivoom, postaje moguće koristiti ovaj sistem kao " "server.\n" "Sigurnost je sada dovoljno visoka za upotrebu sistema kao servera koji " "prima\n" "konekcije sa mnogo klijenata. Napomena: ako je vaš računar samo klijent na " "Internetu, možda je bolje da izaberete niži nivo." #: ../../standalone/printerdrake:1 #, c-format msgid "Server Name" msgstr "Ime servera" #: ../../network/tools.pm:1 ../../standalone/drakconnect:1 #, c-format msgid "Account Password" msgstr "Šifra naloga" #: ../../standalone/drakhelp:1 #, c-format msgid "" "%s cannot be displayed \n" ". No Help entry of this type\n" msgstr "" "Ne mogu prikazati %s.\n" "Nema Pomoći pod ovim imenom\n" #: ../../any.pm:1 #, c-format msgid "" "You decided to install the bootloader on a partition.\n" "This implies you already have a bootloader on the hard drive you boot (eg: " "System Commander).\n" "\n" "On which drive are you booting?" msgstr "" "Odlučili ste da na particiju instalirate bootloader.\n" "Ovo podrazumijeva da već imate bootloader na hard disku sa kojeg bootate " "(npr: System Commander).\n" "\n" "Sa kojeg diska vršite boot?" #: ../../install_interactive.pm:1 #, c-format msgid "" "WARNING!\n" "\n" "DrakX will now resize your Windows partition. Be careful: this\n" "operation is dangerous. If you have not already done so, you\n" "first need to exit the installation, run \"chkdsk c:\" from a\n" "Command Prompt under Windows (beware, running graphical program\n" "\"scandisk\" is not enough, be sure to use \"chkdsk\" in a\n" "Command Prompt!), optionally run defrag, then restart the\n" "installation. You should also backup your data.\n" "When sure, press Ok." msgstr "" "UPOZORENJE!\n" "\n" "DrakX će sada promijeniti veličinu vaše Windows particije. Budite pažljivi,\n" "ova operacija je opasna. Ako to već niste uradili, najprije napustite\n" "instalaciju, izvršite naredbu \"chkdsk c:\" iz Command Prompt-a pod\n" "Windowsom (obratite pažnju da izvršavanje grafičkog programa \"scandisk\"\n" "nije dovoljno, trebate koristiti \"chkdsk\" u komandnom upitu!), opcionalno\n" "pokrenite \"defrag\", zatim ponovo pokrenite instalaciju. Također biste\n" "trebali spasiti sve podatke.\n" "Kada ste sigurni, kliknite na \"U redu\"." #: ../../keyboard.pm:1 #, c-format msgid "Tajik keyboard" msgstr "Tadžička tastatura" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "You can copy the printer configuration which you have done for the spooler %" "s to %s, your current spooler. All the configuration data (printer name, " "description, location, connection type, and default option settings) is " "overtaken, but jobs will not be transferred.\n" "Not all queues can be transferred due to the following reasons:\n" msgstr "" "Možete kopirati konfiguraciju štampača koju ste napravili za spooler %s u % " "s, vaš trenutni spooler. Svi podaci o konfiguraciji (naziv štampača, opis, " "lokacija, tip konekcije kao i podrazumjevane opcije) će biti preuzeti, ali " "zadaci štampe neće biti prebačeni.\n" "Svi redovi ne mogu biti prebačeni zbog sljedećih razloga:\n" #: ../../standalone/drakfont:1 #, c-format msgid "Font List" msgstr "Lista fontova" #: ../../install_steps_interactive.pm:1 #, c-format msgid "" "You may need to change your Open Firmware boot-device to\n" " enable the bootloader. If you don't see the bootloader prompt at\n" " reboot, hold down Command-Option-O-F at reboot and enter:\n" " setenv boot-device %s,\\\\:tbxi\n" " Then type: shut-down\n" "At your next boot you should see the bootloader prompt." msgstr "" "Možda ćete trebati promijeniti vaš Open Firmware boot uređaj\n" " da biste aktivirali bootloader. Ako ne vidite upit bootloadera\n" " prilikom bootanja, držite Command-Option-O-F prilikom boota\n" " i unesite:\n" " setenv boot-device %s,\\\\:tbxi\n" " Zatim kucajte: shut-down\n" "Prilikom idućeg boota biste trebali vidjeti upit bootloadera." #: ../../install_steps_interactive.pm:1 #, c-format msgid "" "You appear to have an OldWorld or Unknown\n" " machine, the yaboot bootloader will not work for you.\n" "The install will continue, but you'll\n" " need to use BootX or some other means to boot your machine" msgstr "" "Izgleda da imate OldWorld ili Unknown računar,\n" " yaboot bootloader neće raditi kod vas.\n" "Instalacija će se nastaviti, ali ćete\n" " morati koristiti BootX za bootanje vašeg računara" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Select file" msgstr "Izaberite datoteku" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "Choose the network or host on which the local printers should be made " "available:" msgstr "Izaberite mrežu ili računar čijim štampačima treba omogućiti pristup." #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "These commands you can also use in the \"Printing command\" field of the " "printing dialogs of many applications, but here do not supply the file name " "because the file to print is provided by the application.\n" msgstr "" "Ove komande možete također koristiti u polju \"Komanda za štampu\" u " "dijalozima za štampu mnogih aplikacija, ali ovdje ne morate navesti ime " "datoteke jer tu datoteku obezbjeđuje sama aplikacija.\n" #: ../../lang.pm:1 #, c-format msgid "Japan" msgstr "Japan" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Print option list" msgstr "Lista opcija za štampu" #: ../../standalone/localedrake:1 #, c-format msgid "The change is done, but to be effective you must logout" msgstr "Izmjena je napravljena, ali da bi stupila na snagu morate se odjaviti" #: ../../any.pm:1 ../../help.pm:1 ../../install_steps_interactive.pm:1 #, c-format msgid "Country / Region" msgstr "Zemlja" #: ../../diskdrake/smbnfs_gtk.pm:1 #, c-format msgid "Search servers" msgstr "Traži servere" #: ../../printer/printerdrake.pm:1 #, c-format msgid "NCP queue name missing!" msgstr "NCP naziv reda nedostaje!" #: ../../standalone/net_monitor:1 #, c-format msgid "" "Warning, another internet connection has been detected, maybe using your " "network" msgstr "" "Upozorenje, otkrivena je druga Internet konekcija, možda preko vaše mreže" #: ../../install_steps_interactive.pm:1 #, c-format msgid "Cd-Rom labeled \"%s\"" msgstr "CD-ROM pod oznakom \"%s\"" #: ../../standalone/drakbackup:1 #, c-format msgid "CDRW media" msgstr "CDRW medij" #: ../../services.pm:1 #, c-format msgid "" "Saves and restores system entropy pool for higher quality random\n" "number generation." msgstr "" "Snima i učitava sistemski spremnik entropije za veću kvalitetu\n" "generisanja slučajnih brojeva." #: ../advertising/07-server.pl:1 #, c-format msgid "Turn your computer into a reliable server" msgstr "Pretvorite vaš računar u pouzdan server" #: ../../security/l10n.pm:1 #, c-format msgid "Check empty password in /etc/shadow" msgstr "Provjeri prazne šifre u /etc/shadow" #: ../../network/network.pm:1 #, c-format msgid " (driver %s)" msgstr " (drajver %s)" #: ../../services.pm:1 #, c-format msgid "Start when requested" msgstr "Pokreni po potrebi" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "" "Loopback file(s):\n" " %s\n" msgstr "" "Loopback datoteka(e):\n" " %s\n" #: ../../network/isdn.pm:1 #, c-format msgid "I don't know" msgstr "Ne znam" #: ../../printer/main.pm:1 #, c-format msgid ", TCP/IP host \"%s\", port %s" msgstr ", TCP/IP host \"%s\", port %s" #: ../../standalone/drakautoinst:1 #, c-format msgid "" "You are about to configure an Auto Install floppy. This feature is somewhat " "dangerous and must be used circumspectly.\n" "\n" "With that feature, you will be able to replay the installation you've " "performed on this computer, being interactively prompted for some steps, in " "order to change their values.\n" "\n" "For maximum safety, the partitioning and formatting will never be performed " "automatically, whatever you chose during the install of this computer.\n" "\n" "Do you want to continue?" msgstr "" "Sada ćete podesiti autoinstalacijsku disketu. Ova opcija je pomalo opasna i " "mora biti korištena uz pažnju.\n" "\n" "Sa ovom opcijom bićete u mogućnosti da ponovite instalaciju koju ste obavili " "na ovom računaru, pri ćemu ćete biti interaktivno upitani za neke korake " "kako biste promijenili njihove vrijednosti.\n" "\n" "Zbog maksimalne sigurnosti, particioniranje i formatiranje nikad neće biti " "obavljeno automatski, bez obzira šta izaberete tokom instalacije na ovaj " "računar.\n" "\n" "Da li želite nastaviti?" #: ../../keyboard.pm:1 #, c-format msgid "Telugu" msgstr "Telugu" #: ../../harddrake/sound.pm:1 #, c-format msgid "" "\n" "\n" "Your card currently use the %s\"%s\" driver (default driver for your card is " "\"%s\")" msgstr "" "\n" "\n" "Vaša kartica trenutno koristi %s \"%s\" drajver (uobičajeni drajver za vašu " "karticu je \"%s\")" #: ../../standalone/drakfont:1 #, c-format msgid "Post Uninstall" msgstr "Post Uninstall" #: ../../standalone/net_monitor:1 #, c-format msgid "Connecting to Internet " msgstr "Spajam se na Internet " #: ../../standalone/scannerdrake:1 #, c-format msgid " (" msgstr " (" #: ../../standalone/harddrake2:1 #, c-format msgid "Cpuid level" msgstr "Nivo cpuid-a" #: ../../printer/main.pm:1 #, c-format msgid "Novell server \"%s\", printer \"%s\"" msgstr "Novell server \"%s\", štampač \"%s\"" #: ../../keyboard.pm:1 #, c-format msgid "Mongolian (cyrillic)" msgstr "Mongolska (ćirilica)" #: ../../standalone/drakfloppy:1 #, c-format msgid "Add a module" msgstr "Dodaj modul" #: ../../standalone/drakconnect:1 #, c-format msgid "Profile to delete:" msgstr "Profil za brisanje:" #: ../../standalone/net_monitor:1 #, c-format msgid "Local measure" msgstr "Lokalne mjere" #: ../../network/network.pm:1 #, c-format msgid "Warning : IP address %s is usually reserved !" msgstr "Upozorenje: IP adresa %s je obično rezervisana !" #: ../../mouse.pm:1 #, c-format msgid "busmouse" msgstr "busmouse" #: ../../standalone/drakTermServ:1 #, c-format msgid "" " - Create Etherboot Enabled Boot Images:\n" " \tTo boot a kernel via etherboot, a special kernel/initrd image must " "be created.\n" " \tmkinitrd-net does much of this work and drakTermServ is just a " "graphical \n" " \tinterface to help manage/customize these images. To create the " "file \n" " \t/etc/dhcpd.conf.etherboot-pcimap.include that is pulled in as an " "include in \n" " \tdhcpd.conf, you should create the etherboot images for at least " "one full kernel." msgstr "" " - Create Etherboot Enabled Boot Images:\n" " \tTo boot a kernel via etherboot, a special kernel/initrd image must " "be created.\n" " \tmkinitrd-net does much of this work and drakTermServ is just a " "graphical \n" " \tinterface to help manage/customize these images. To create the " "file \n" " \t/etc/dhcpd.conf.etherboot-pcimap.include that is pulled in as an " "include in \n" " \tdhcpd.conf, you should create the etherboot images for at least " "one full kernel." #: ../../network/tools.pm:1 ../../standalone/drakconnect:1 #, c-format msgid "Account Login (user name)" msgstr "Login naloga (korisničko ime)" #: ../../standalone/harddrake2:1 #, c-format msgid "Fdiv bug" msgstr "Fdiv bug" #: ../../network/drakfirewall.pm:1 #, c-format msgid "" "drakfirewall configurator\n" "\n" "Make sure you have configured your Network/Internet access with\n" "drakconnect before going any further." msgstr "" "drakfirewall podešivač\n" "\n" "Prije nego što nastavite, provjerite da li ste ispravno podesili pristup\n" "mreži/Internetu pomoću alata drakconnect." #: ../../security/l10n.pm:1 #, c-format msgid "Accept broadcasted icmp echo" msgstr "Prihvati broadcast ICMP eho" #: ../../lang.pm:1 #, c-format msgid "Uruguay" msgstr "Urugvaj" #: ../../lang.pm:1 #, c-format msgid "Benin" msgstr "Benin" #: ../../printer/main.pm:1 #, c-format msgid "SMB/Windows server \"%s\", share \"%s\"" msgstr "SMB/Windows server \"%s\", share \"%s\"" #: ../../standalone/drakperm:1 #, c-format msgid "Path selection" msgstr "Izbor staze" #: ../../standalone/scannerdrake:1 #, c-format msgid "Name/IP address of host:" msgstr "Ime/IP adresa računara:" #: ../../Xconfig/various.pm:1 #, c-format msgid "Monitor: %s\n" msgstr "Monitor: %s\n" #: ../../standalone/drakperm:1 #, c-format msgid "Custom & system settings" msgstr "Vlastito i sistemske postavke" #: ../../partition_table/raw.pm:1 #, c-format msgid "" "Something bad is happening on your drive. \n" "A test to check the integrity of data has failed. \n" "It means writing anything on the disk will end up with random, corrupted " "data." msgstr "" "Nešto loše se dešava na vašem disku. \n" "Test integriteta podataka nije uspio. \n" "To znači će da pisanje bilo čega na disk rezultirati smećem." #: ../../printer/printerdrake.pm:1 #, c-format msgid "Printer host name or IP missing!" msgstr "Nedostaje hostname štampača ili IP adresa!" #: ../../standalone/drakbackup:1 #, c-format msgid "Please check all users that you want to include in your backup." msgstr "Molim izaberite sve korisnike koje želite uključiti u vaš backup." #: ../../standalone/scannerdrake:1 #, c-format msgid "" "The %s must be configured by printerdrake.\n" "You can launch printerdrake from the Mandrake Control Center in Hardware " "section." msgstr "" "%s se mora podesiti iz printerdrake-a.\n" "Možete pokrenuti printerdrake iz Mandrake Kontrolnog centra u odjeljku " "Hardware." #: ../../../move/move.pm:1 #, fuzzy, c-format msgid "Key isn't writable" msgstr "XawTV nije instaliran!" #: ../../lang.pm:1 #, c-format msgid "Bangladesh" msgstr "Bangladeš" #: ../../standalone/drakxtv:1 #, c-format msgid "Japan (cable)" msgstr "Japan (kablovska)" #: ../../standalone/drakfont:1 #, c-format msgid "Initial tests" msgstr "Probni inicijali" #: ../../network/isdn.pm:1 #, c-format msgid "Continue" msgstr "Nastavak" #: ../../standalone/drakbackup:1 #, c-format msgid "Custom Restore" msgstr "Ručno vraćanje" #: ../../standalone/drakbackup:1 #, c-format msgid "Saturday" msgstr "Subota" #: ../../help.pm:1 #, c-format msgid "" "\"%s\": if a sound card is detected on your system, it is displayed here.\n" "If you notice the sound card displayed is not the one that is actually\n" "present on your system, you can click on the button and choose another\n" "driver." msgstr "" "\"%s\": ako je na vašem sistemu otkrivena zvučna kartica, ona će\n" "biti prikazana ovdje. Ako primijetite da prikazana zvučna kartica nije ona\n" "koja je ustvari dio vašeg sistema, možete kliknuti na dugme i odabrati neki\n" "drugi drajver." #: ../../security/help.pm:1 #, c-format msgid "Set the root umask." msgstr "Postavlja root-ov umask." #: ../../install_any.pm:1 ../../partition_table.pm:1 #, c-format msgid "Error reading file %s" msgstr "Greška u čitanju datoteke %s" #: ../../network/modem.pm:1 ../../standalone/drakconnect:1 #, c-format msgid "Script-based" msgstr "Skripta" #: ../../harddrake/v4l.pm:1 #, c-format msgid "PLL setting:" msgstr "PLL postavka:" #: ../../install_interactive.pm:1 ../../install_steps.pm:1 #, c-format msgid "You must have a FAT partition mounted in /boot/efi" msgstr "Morate imati FAT particiju montiranu na /boot/efi" #: ../../printer/printerdrake.pm:1 #, c-format msgid " on " msgstr " na " #: ../../diskdrake/dav.pm:1 #, c-format msgid "The URL must begin with http:// or https://" msgstr "URL mora počinjati sa http:// ili https://" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "You can specify directly the URI to access the printer. The URI must fulfill " "either the CUPS or the Foomatic specifications. Note that not all URI types " "are supported by all the spoolers." msgstr "" "Možete dati direktno URI za pristup štampaču. URI mora zadovoljavati ili " "CUPS ili Foomatic specifikacije. Obratite pažnju da nisu svi tipovi URIja " "podržani od svih spoolera." #: ../../any.pm:1 #, c-format msgid "Other OS (SunOS...)" msgstr "Ostali OSi (SunOS...)" #: ../../install_steps_interactive.pm:1 #, c-format msgid "Install/Upgrade" msgstr "Instaliraj/Unaprijedi" #: ../../install_steps_gtk.pm:1 #, c-format msgid "%d packages" msgstr "%d paketa" #: ../../crypto.pm:1 ../../lang.pm:1 #, c-format msgid "Costa Rica" msgstr "Kostarika" #: ../../standalone.pm:1 #, c-format msgid "" "[--config-info] [--daemon] [--debug] [--default] [--show-conf]\n" "Backup and Restore application\n" "\n" "--default : save default directories.\n" "--debug : show all debug messages.\n" "--show-conf : list of files or directories to backup.\n" "--config-info : explain configuration file options (for non-X " "users).\n" "--daemon : use daemon configuration. \n" "--help : show this message.\n" "--version : show version number.\n" msgstr "" "[--config-info] [--daemon] [--debug] [--default] [--show-conf]\n" "Aplikacija za backup and restore\n" "\n" "--default : save default directories.\n" "--debug : show all debug messages.\n" "--show-conf : list of files or directories to backup.\n" "--config-info : explain configuration file options (for non-X " "users).\n" "--daemon : use daemon configuration. \n" "--help : show this message.\n" "--version : show version number.\n" #: ../../diskdrake/smbnfs_gtk.pm:1 #, c-format msgid "Domain Authentication Required" msgstr "Potrebna je autentikacija na domeni" #: ../../security/level.pm:1 #, c-format msgid "Use libsafe for servers" msgstr "Koristi libsafe za servere" #: ../../keyboard.pm:1 #, c-format msgid "Icelandic" msgstr "Islandska" #: ../../standalone.pm:1 #, c-format msgid "" "\n" "Usage: %s [--auto] [--beginner] [--expert] [-h|--help] [--noauto] [--" "testing] [-v|--version] " msgstr "" "\n" "Upotreba: %s [--auto] [--beginner] [--expert] [-h|--help] [--noauto] [--" "testing] [-v|--version] " #: ../../standalone/drakbackup:1 #, c-format msgid "" "Maximum size\n" " allowed for Drakbackup (MB)" msgstr "" "Unesite maksimalnu veličinu\n" " dozvoljenu za Draxbackup (MB)" #: ../../loopback.pm:1 #, c-format msgid "Circular mounts %s\n" msgstr "Kružno montiranje %s\n" #: ../../standalone/drakboot:1 #, c-format msgid "Lilo/grub mode" msgstr "LILO/grub opcije" #: ../../lang.pm:1 #, c-format msgid "Martinique" msgstr "Martinik" #: ../../standalone/drakbackup:1 #, c-format msgid "HardDrive / NFS" msgstr "HardDrive / NFS" #: ../../standalone/drakbackup:1 #, c-format msgid "Old user list:\n" msgstr "Stara lista korisnika:\n" #: ../../standalone/drakbackup:1 #, c-format msgid "Search Backups" msgstr "Pretraži backupe" #: ../../modules/parameters.pm:1 #, c-format msgid "a number" msgstr "broj" #: ../../keyboard.pm:1 #, c-format msgid "Swedish" msgstr "Švedska" #. -PO: the %s is the driver type (scsi, network, sound,...) #: ../../modules/interactive.pm:1 #, c-format msgid "Which %s driver should I try?" msgstr "Koji %s drajver ću pokušati?" #: ../../standalone/logdrake:1 #, c-format msgid "" "You will receive an alert if one of the selected services is no longer " "running" msgstr "Primićete obavještenje ako neki od izabranih servisa prestane raditi" #: ../../standalone/drakbackup:1 #, c-format msgid "Weekday" msgstr "Dan u sedmici" #: ../../diskdrake/hd_gtk.pm:1 #, c-format msgid "Filesystem types:" msgstr "Tipovi file sistema:" #: ../../lang.pm:1 #, c-format msgid "Northern Mariana Islands" msgstr "Sjeverna Marijanska ostrva" #: ../../printer/main.pm:1 #, c-format msgid ", multi-function device on HP JetDirect" msgstr ", višenamjenski uređaj na HP JetDirect" #: ../../mouse.pm:1 #, c-format msgid "none" msgstr "nijedan" #: ../../standalone/drakconnect:1 #, c-format msgid "" "Name of the profile to create (the new profile is created as a copy of the " "current one) :" msgstr "" "Naziv profila koji će biti kreiran (novi profil je kreiran kao kopija " "postojećeg) :" #: ../../harddrake/data.pm:1 #, c-format msgid "Floppy" msgstr "Disketa" #: ../../standalone/drakfont:1 #, c-format msgid "Ghostscript referencing" msgstr "Ghostscript referenciranje" #: ../../help.pm:1 ../../install_steps_interactive.pm:1 #, c-format msgid "Bootloader" msgstr "Bootloader" #: ../../security/l10n.pm:1 #, c-format msgid "Authorize all services controlled by tcp_wrappers" msgstr "Autorizuj sve servise koje kontrolišu tcp_wrapperi" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Move" msgstr "Premještanje" #: ../../any.pm:1 ../../help.pm:1 #, c-format msgid "Bootloader to use" msgstr "Bootloader koji ćete koristiti" #: ../../printer/printerdrake.pm:1 #, c-format msgid "SMB server host" msgstr "SMB server ime" #: ../../standalone/drakTermServ:1 #, c-format msgid "Name Servers:" msgstr "DNS serveri:" #: ../../standalone/drakbackup:1 #, c-format msgid "Minute" msgstr "Minuta" #: ../../install_messages.pm:1 #, c-format msgid "" "\n" "Warning\n" "\n" "Please read carefully the terms below. If you disagree with any\n" "portion, you are not allowed to install the next CD media. Press 'Refuse' \n" "to continue the installation without using these media.\n" "\n" "\n" "Some components contained in the next CD media are not governed\n" "by the GPL License or similar agreements. Each such component is then\n" "governed by the terms and conditions of its own specific license. \n" "Please read carefully and comply with such specific licenses before \n" "you use or redistribute the said components. \n" "Such licenses will in general prevent the transfer, duplication \n" "(except for backup purposes), redistribution, reverse engineering, \n" "de-assembly, de-compilation or modification of the component. \n" "Any breach of agreement will immediately terminate your rights under \n" "the specific license. Unless the specific license terms grant you such\n" "rights, you usually cannot install the programs on more than one\n" "system, or adapt it to be used on a network. In doubt, please contact \n" "directly the distributor or editor of the component. \n" "Transfer to third parties or copying of such components including the \n" "documentation is usually forbidden.\n" "\n" "\n" "All rights to the components of the next CD media belong to their \n" "respective authors and are protected by intellectual property and \n" "copyright laws applicable to software programs.\n" msgstr "" "\n" "Pažnja\n" "\n" "Molim pročitajte pažljivo uslove licence ispod. Ako se ne slažete sa bilo\n" "kojim dijelom, nije vam dozvoljeno da instalirate naredni CD medij. " "Pritisnite\n" "dugme 'odbij' da biste nastavili sa instalacijom bez korištenja ovog " "medija.\n" "Budući da prevodilac ovog teksta nije u mogućnosti da osigura pravnu\n" "provjeru prevedenog teksta, tekst je ostavljen u originalnom (engleskom)\n" "obliku.\n" "\n" "Some components contained in the next CD media are not governed\n" "by the GPL License or similar agreements. Each such component is then\n" "governed by the terms and conditions of its own specific license. \n" "Please read carefully and comply with such specific licenses before \n" "you use or redistribute the said components. \n" "Such licenses will in general prevent the transfer, duplication \n" "(except for backup purposes), redistribution, reverse engineering, \n" "de-assembly, de-compilation or modification of the component. \n" "Any breach of agreement will immediately terminate your rights under \n" "the specific license. Unless the specific license terms grant you such\n" "rights, you usually cannot install the programs on more than one\n" "system, or adapt it to be used on a network. In doubt, please contact \n" "directly the distributor or editor of the component. \n" "Transfer to third parties or copying of such components including the \n" "documentation is usually forbidden.\n" "\n" "\n" "All rights to the components of the next CD media belong to their \n" "respective authors and are protected by intellectual property and \n" "copyright laws applicable to software programs.\n" #: ../../standalone/printerdrake:1 #, c-format msgid "/_Expert mode" msgstr "/_Ekspertni mod" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Remove this printer from Star Office/OpenOffice.org/GIMP" msgstr "Ukloni ovaj štampač iz Star/Open Offica" #: ../../services.pm:1 #, c-format msgid "" "Linux Virtual Server, used to build a high-performance and highly\n" "available server." msgstr "" "Linux Virtuelni Server, koristi se za izgradnju servera visokih performansi\n" "i dostupnosti (clusteri servera)." #: ../../lang.pm:1 #, c-format msgid "Micronesia" msgstr "Micronesia" #: ../../Xconfig/resolution_and_depth.pm:1 #, c-format msgid "4 billion colors (32 bits)" msgstr "4 milijarde boja (32 bita)" #: ../../steps.pm:1 #, c-format msgid "License" msgstr "Licenca" #: ../../standalone/drakbackup:1 #, c-format msgid "This may take a moment to generate the keys." msgstr "Možda će trebati par trenutaka da se generišu ključevi." #: ../../standalone/draksec:1 #, c-format msgid "" "Here, you can setup the security level and administrator of your machine.\n" "\n" "\n" "The Security Administrator is the one who will receive security alerts if " "the\n" "'Security Alerts' option is set. It can be a username or an email.\n" "\n" "\n" "The Security Level menu allows you to select one of the six preconfigured " "security levels\n" "provided with msec. These levels range from poor security and ease of use, " "to\n" "paranoid config, suitable for very sensitive server applications:\n" "\n" "\n" "Poor: This is a totally unsafe but " "very\n" "easy to use security level. It should only be used for machines not " "connected to\n" "any network and that are not accessible to everybody.\n" "\n" "\n" "Standard: This is the standard " "security\n" "recommended for a computer that will be used to connect to the Internet as " "a\n" "client.\n" "\n" "\n" "High: There are already some\n" "restrictions, and more automatic checks are run every night.\n" "\n" "\n" "Higher: The security is now high " "enough\n" "to use the system as a server which can accept connections from many " "clients. If\n" "your machine is only a client on the Internet, you should choose a lower " "level.\n" "\n" "\n" "Paranoid: This is similar to the " "previous\n" "level, but the system is entirely closed and security features are at their\n" "maximum" msgstr "" "Ovdje možete podesiti nivo sigurnosti i administratora ovog računara.\n" "\n" "\n" "Sigurnosni administrator je onaj koji će dobijati sigurnosna upozorenja\n" "ako je aktivna opcija 'Sigurnosna upoyorenja'. Ovo može biti korisničko\n" "ime ili e-mail.\n" "\n" "\n" "Meni Nivo sigurnosti vam omogućuje da izaberete jedan od šest gotovih\n" "nivoa sigurnosti koje pruža msec. Ovi nivoi imaju raspon od slabe\n" "sigurnosti i jednostavnog korištenja, do paranoidnih postavki, prikladnih " "za\n" "vrlo osjetljive serverske aplikacije:\n" "\n" "\n" "Slab: Ovo je potpuno neupotrebljiv\n" "nivo sigurnosti, ali lagan za upotrebu. Treba ga koristiti samo na " "računarima\n" "koji nisu spojeni na mrežu i koji nisu dostupni svakome.\n" "\n" "\n" "Standardan: Ovo je standardna\n" "sigurnost koja se preporučuje za računar koji će biti korišten za spajanje\n" "na Internet kao klijent.\n" "\n" "\n" "Visok: Postoje već neka\n" "ograničenja, a automatizovane provjere se vrše svake noći.\n" "\n" "\n" "Viši: Sigurnost je sada dovoljno\n" "visoka da bi se sistem mogao koristiti kao server koji prihvata konekcije\n" "od mnogih klijenata. Ako je vaš računar samo klijent na Internetu, trebali\n" "biste izabrati niži nivo.\n" "\n" "\n" "Paranoičan: Ovo je slično kao\n" "prethodni nivo, ali je sistem potpuno zatvoren i sigurnosne mogućnosti\n" "su na maksimumu." #: ../../printer/printerdrake.pm:1 #, c-format msgid "Printer auto-detection (Local, TCP/Socket, and SMB printers)" msgstr "Automatsko prepoznavanje štampača (lokalni, TCP/Socket i SMB štampači)" #: ../../network/adsl.pm:1 #, c-format msgid "Sagem (using pppoa) usb" msgstr "Sagem (koristeći pppoa) usb" #: ../../install_any.pm:1 #, c-format msgid "" "An error occurred - no valid devices were found on which to create new " "filesystems. Please check your hardware for the cause of this problem" msgstr "" "Došlo je do greške - nije pronađen nijedan ispravan uređaj na kojem se mogu " "kreirati novi file sistemi. Molim provjerite vaš hardware i pronađite uzrok " "greške" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Starting the printing system at boot time" msgstr "Pokrećem sistem za štampu tokom boota" #: ../../network/netconnect.pm:1 #, c-format msgid "Do you want to start the connection at boot?" msgstr "Da li želite pokrenuti konekciju prilikom boota?" #: ../../standalone/harddrake2:1 #, c-format msgid "Processor ID" msgstr "ID procesora" #: ../../harddrake/sound.pm:1 #, c-format msgid "Sound trouble shooting" msgstr "Rješavanje problema sa zvukom" #: ../../keyboard.pm:1 #, c-format msgid "Polish (qwerty layout)" msgstr "Poljska (qwerty)" #: ../../standalone/printerdrake:1 #, c-format msgid "/_Add Printer" msgstr "/_Dodaj štampač" #: ../../standalone/drakbackup:1 #, c-format msgid "" "\n" "Drakbackup activities via CD:\n" "\n" msgstr "" "\n" "Drakbackup aktivnosti putem CDa:\n" "\n" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "You are about to install the printing system %s on a system running in the %" "s security level.\n" "\n" "This printing system runs a daemon (background process) which waits for " "print jobs and handles them. This daemon is also accessable by remote " "machines through the network and so it is a possible point for attacks. " "Therefore only a few selected daemons are started by default in this " "security level.\n" "\n" "Do you really want to configure printing on this machine?" msgstr "" "Sada ćete instalirati sistem za štampu %s na sistemu koji je na sigurnosnom " "nivou % s.\n" "\n" "Ovaj sistem za štampu pokreće demon (pozadinski proces) koji čeka zadatke " "štampe i rješava ih. Ovom demonu takođe mogu pristupiti drugi računari putem " "mreže, tako da je to moguća tačka napada. Stoga se tek rijetki od odabranih " "demona pokreću na ovom sigurnosnom nivou.\n" "\n" "Da li zaista želite podesiti štampanje na ovom računaru?" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Host \"%s\", port %s" msgstr "Host \"%s\", port %s" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "This partition can't be used for loopback" msgstr "Ova particija se ne može koristiti za loopback" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "File already exists. Use it?" msgstr "Datoteka već postoji. Želite li je koristiti?" #: ../../standalone/net_monitor:1 #, c-format msgid "received: " msgstr "primljeno:" #: ../../keyboard.pm:1 #, c-format msgid "Right Alt key" msgstr "Desna Alt tipka" #: ../../standalone/harddrake2:1 #, c-format msgid "the list of alternative drivers for this sound card" msgstr "spisak alternativnih drajvera za ovu zvučnu karticu" #: ../../standalone/drakconnect:1 #, c-format msgid "Gateway" msgstr "Gateway" #: ../../lang.pm:1 #, c-format msgid "Tonga" msgstr "Tonga" #: ../../lang.pm:1 #, c-format msgid "Tunisia" msgstr "Tunis" #: ../../standalone/scannerdrake:1 #, c-format msgid "Scanner sharing" msgstr "Dijeljenje skenera" #: ../../standalone/drakconnect:1 #, c-format msgid "Profile: " msgstr "Profil:" #: ../../standalone/harddrake2:1 #, c-format msgid "" "Click on a device in the left tree in order to display its information here." msgstr "Kliknite na uređaj u drvetu lijevo da dobijete informacije o njemu." #: ../../security/help.pm:1 #, c-format msgid "Allow/Forbid autologin." msgstr "Dozvoli/zabrani autologin." #: ../../standalone/drakxtv:1 #, c-format msgid "XawTV isn't installed!" msgstr "XawTV nije instaliran!" #: ../../standalone/drakbackup:1 #, c-format msgid "Do not include critical files (passwd, group, fstab)" msgstr "Zaobiđi kritične datoteke (passwd, group, fstab)" #: ../../standalone/harddrake2:1 #, c-format msgid "old static device name used in dev package" msgstr "staro statičko ime uređaja koje koristi dev paket" #: ../../security/l10n.pm:1 #, c-format msgid "Enable the logging of IPv4 strange packets" msgstr "Uključi logovanje čudnih IPv4 paketa" #: ../../any.pm:1 #, c-format msgid "This label is already used" msgstr "Ova oznaka je već u upotrebi" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "\n" "Welcome to the Printer Setup Wizard\n" "\n" "This wizard will help you to install your printer(s) connected to this " "computer or connected directly to the network.\n" "\n" "If you have printer(s) connected to this machine, Please plug it/them in on " "this computer and turn it/them on so that it/they can be auto-detected. Also " "your network printer(s) must be connected and turned on.\n" "\n" "Note that auto-detecting printers on the network takes longer than the auto-" "detection of only the printers connected to this machine. So turn off the " "auto-detection of network printers when you don't need it.\n" "\n" " Click on \"Next\" when you are ready, and on \"Cancel\" if you do not want " "to set up your printer(s) now." msgstr "" "\n" "Dobro došli u Čarobnjak za podešavanje štampača\n" "\n" "Ovaj čarobnjak će vam pomoći da instalirate štampače spojene na ovaj računar " "ili spojene na mrežu.\n" "\n" "Ako imate štampač spojen na ovaj računar, molim priključite ga na računar i " "upalite ga kako bi bio auto-prepoznat. Takođe mrežni štampači moraju biti " "spojeni i upaljeni.\n" "\n" "Obratite pažnju da detekcija mrežnih štampača traje duže nego detekcija " "štampača spojenih na ovaj računar. Stoga ugasite detekciju mrežnih štampača " "ako vam ona nije potrebna.\n" "\n" "Kliknite na \"Dalje\" kada budete spremni, ili na \"Odustani\" ako ne želite " "podesiti štampač sada." #: ../../keyboard.pm:1 #, c-format msgid "Greek (polytonic)" msgstr "Grčki (politonski)" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "After formatting partition %s, all data on this partition will be lost" msgstr "" "Nakon formatiranja particije %s, svi podaci na toj particiji će biti " "izgubljeni" #: ../../standalone/net_monitor:1 #, c-format msgid "Connection Time: " msgstr "Vrijeme konekcije: " #: ../../standalone/livedrake:1 #, c-format msgid "" "Please insert the Installation Cd-Rom in your drive and press Ok when done.\n" "If you don't have it, press Cancel to avoid live upgrade." msgstr "" "Molim ubacite Instalacioni CD u vaš CD-ROM uređaj i pritisnite U redu kad " "ste spremni.\n" "Ako ga nemate, pritisnite Odustani da bi se izbjegao live upgrade." #: ../../standalone/drakperm:1 #, c-format msgid "Use group id for execution" msgstr "Koristi id grupe za izvršavanje" #: ../../any.pm:1 #, c-format msgid "Choose the default user:" msgstr "Izaberite default korisnika:" #: ../../lang.pm:1 #, c-format msgid "Gabon" msgstr "Gabon" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "\n" "Printers on remote CUPS servers do not need to be configured here; these " "printers will be automatically detected." msgstr "" "\n" "Ovdje ne morate podešavati štampače na udaljenim CUPS serverima; ovi " "štampači će biti automatski prepoznati." #: ../../any.pm:1 #, c-format msgid "" "Mandrake Linux can support multiple languages. Select\n" "the languages you would like to install. They will be available\n" "when your installation is complete and you restart your system." msgstr "" "Mandrake Linux podržava više jezika. Izaberite jezike koje\n" "želite instalirati. Oni će biti dostupni kada se završi vaša\n" "instalacija i restartujete vaš sistem." #: ../../standalone/drakbackup:1 #, c-format msgid "Directory (or module) to put the backup on this host." msgstr "Direktorij (ili modul) za smještaj backupa na ovom računaru." #: ../../diskdrake/smbnfs_gtk.pm:1 #, c-format msgid "Domain" msgstr "Domena" #: ../../any.pm:1 #, c-format msgid "Precise RAM size if needed (found %d MB)" msgstr "Precizna veličina RAMa ako je potrebno (pronađeno %d MB)" #: ../../help.pm:1 #, c-format msgid "" "LILO and grub are GNU/Linux bootloaders. Normally, this stage is totally\n" "automated. DrakX will analyze the disk boot sector and act according to\n" "what it finds there:\n" "\n" " * if a Windows boot sector is found, it will replace it with a grub/LILO\n" "boot sector. This way you will be able to load either GNU/Linux or another\n" "OS.\n" "\n" " * if a grub or LILO boot sector is found, it will replace it with a new\n" "one.\n" "\n" "If it cannot make a determination, DrakX will ask you where to place the\n" "bootloader." msgstr "" "LILO i grub su Linux bootloader-i. Ova faza je obično automatizovana.\n" "DrakX će analizirati boot sektor diska i postupati u skladu s onim što\n" "zatekne tamo:\n" "\n" " * ako pronađe Windows boot sektor, biće zamijenjen sa grub/LILO boot\n" "sektorom. Na ovaj način bićete u mogućnosti da učitate ili GNU/Linux ili\n" "neki drugi OS.\n" "\n" " * ako pronađe grub ili LILO boot sektor, zamijeniće ga novim.\n" "\n" "Ako ne može donijeti odluku, DrakX će vas pitati gdje da postavi\n" "bootloader." #: ../../network/tools.pm:1 ../../standalone/drakconnect:1 #, c-format msgid "Provider dns 2 (optional)" msgstr "Provider dns 2 (opcionalno)" #: ../../any.pm:1 ../../help.pm:1 #, c-format msgid "Boot device" msgstr "Boot uređaj" #: ../../install_interactive.pm:1 #, c-format msgid "Which partition do you want to resize?" msgstr "Kojoj particiji želite promijeniti veličinu?" #: ../../lang.pm:1 #, c-format msgid "United States Minor Outlying Islands" msgstr "United States Minor Outlying Islands" #: ../../lang.pm:1 #, c-format msgid "Djibouti" msgstr "Džibuti" #: ../../standalone/logdrake:1 #, c-format msgid "A tool to monitor your logs" msgstr "Alat za pregled vaših logova" #: ../../network/netconnect.pm:1 #, c-format msgid "detected on port %s" msgstr "detektovan na portu %s" #: ../../printer/data.pm:1 #, c-format msgid "LPD" msgstr "LPD" #: ../../Xconfig/various.pm:1 #, c-format msgid "Graphics card: %s\n" msgstr "Grafička karta: %s\n" #: ../../standalone/printerdrake:1 #, c-format msgid "/Set as _Default" msgstr "/Postavi kao _Podrazumijevano" #: ../../security/l10n.pm:1 #, c-format msgid "Accept icmp echo" msgstr "Prihvati ICMP eho" #: ../../bootloader.pm:1 #, c-format msgid "Yaboot" msgstr "Yaboot" #: ../../mouse.pm:1 #, c-format msgid "Logitech CC Series with Wheel emulation" msgstr "Logitech CC Series sa simulacijom točkića" #: ../../partition_table.pm:1 #, c-format msgid "Extended partition not supported on this platform" msgstr "Extended particije nisu podržane na ovoj platformi" #: ../../standalone/drakboot:1 #, c-format msgid "Splash selection" msgstr "Izbor splash-a" #: ../../network/isdn.pm:1 #, c-format msgid "ISDN Configuration" msgstr "Podešavanje ISDNa" #: ../../printer/printerdrake.pm:1 #, c-format msgid "high" msgstr "visok" #: ../../standalone/drakgw:1 #, c-format msgid "Internet Connection Sharing" msgstr "Dijeljenje Internet konekcije" #: ../../standalone/logdrake:1 #, c-format msgid "Choose file" msgstr "Izaberi datoteku" #: ../../standalone/drakbug:1 #, c-format msgid "Summary: " msgstr "Ukratko: " #: ../../network/shorewall.pm:1 #, c-format msgid "" "Warning! An existing firewalling configuration has been detected. You may " "need some manual fixes after installation." msgstr "" "Upozorenje! Pronađena je postojeća konfiguracija firewalla. Možda će biti " "potrebno neko ručno podešavanje nakon instalacije." #: ../../printer/printerdrake.pm:1 #, c-format msgid "Printing/Photo Card Access on \"%s\"" msgstr "Štampam/pristupam foto kartici na \"%s\"" #: ../../security/l10n.pm:1 #, c-format msgid "Daily security check" msgstr "Dnevna sigurnosna provjera" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "Do you want to enable printing on the printers mentioned above or on " "printers in the local network?\n" msgstr "" "Želite li omogućiti štampanje na štampačima navedenim gore ili na štampačima " "u lokalnoj mreži?\n" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Printer default settings" msgstr "Podrazumjevane postavke štampača" #: ../../mouse.pm:1 #, c-format msgid "Generic PS2 Wheel Mouse" msgstr "Opšti PS2 Miš sa točkićem" #: ../../standalone/harddrake2:1 #, c-format msgid "" "the WP flag in the CR0 register of the cpu enforce write proctection at the " "memory page level, thus enabling the processor to prevent unchecked kernel " "accesses to user memory (aka this is a bug guard)" msgstr "" "WP flag u CR0 registru CPUa prisiljava zaštitu od pisanja na nivou " "memorijske stranice, čime je uključeno sprječavanje od neprovjerenih " "pristupa kernela u korisničku memoriju (drugim riječima, ovo je zaštita od " "bugova)" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Removing old printer \"%s\"..." msgstr "Uklanjam stari štampač \"%s\" ..." #: ../../standalone/harddrake2:1 #, c-format msgid "Select a device !" msgstr "Izaberite uređaj !" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Remove selected server" msgstr "Ukloni izabrani server" #: ../../network/adsl.pm:1 #, c-format msgid "Sagem (using dhcp) usb" msgstr "Sagem (koristeći dhcp) usb" #: ../../lang.pm:1 #, c-format msgid "French Southern Territories" msgstr "Francuske Južne Teritorije" #: ../../standalone/harddrake2:1 #, c-format msgid "the vendor name of the processor" msgstr "naziv proizvođača procesora" #: ../../standalone/drakTermServ:1 #, c-format msgid "" " - Maintain %s:\n" " \tFor users to be able to log into the system from a diskless " "client, their entry in\n" " \t/etc/shadow needs to be duplicated in %s. drakTermServ\n" " \thelps in this respect by adding or removing system users from this " "file." msgstr "" " - Čuvaj %s:\n" " \t\tDa bi se korisnici mogli prijaviti na sistem sa klijenta bez " "diska, njihova stavka u\n" " \t\t/etc/shadow se mora kopirati u %s. drakTermServ pomaže\n" " \t\tu ovome tako što dodaje i briše sistemske korisnike iz ove " "datoteke." #: ../../diskdrake/interactive.pm:1 #, c-format msgid "All data on this partition should be backed-up" msgstr "Svi podaci na ovoj particiji bi trebali biti backupovani" #: ../../install_steps_gtk.pm:1 #, c-format msgid "Installing package %s" msgstr "Instaliram paket %s" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Checking device and configuring HPOJ..." msgstr "Provjeravam uređaj i podešavam HPOJ..." #: ../../diskdrake/interactive.pm:1 #, c-format msgid "" "To have more partitions, please delete one to be able to create an extended " "partition" msgstr "" "Da biste imali još particija, molim pobrišite jednu kako bi se mogla " "kreirati extended particija" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "Your printer was configured automatically to give you access to the photo " "card drives from your PC. Now you can access your photo cards using the " "graphical program \"MtoolsFM\" (Menu: \"Applications\" -> \"File tools\" -> " "\"MTools File Manager\") or the command line utilities \"mtools\" (enter " "\"man mtools\" on the command line for more info). You find the card's file " "system under the drive letter \"p:\", or subsequent drive letters when you " "have more than one HP printer with photo card drives. In \"MtoolsFM\" you " "can switch between drive letters with the field at the upper-right corners " "of the file lists." msgstr "" "Vaš štampač je podešen automatski kako bi vam dao pristup memoriji foto " "kartice sa PCa. Sada možete pristupiti vašim foto karticama koristeći " "grafički program \"MToolsFM\" (Meni: \"Aplikacije\" -> \"Datotečni alati\" -" "> \"MTools File Manager\") ili alat komandne linije \"mtools\" (kucajte " "\"man mtools\" na komandnoj liniji za više informacija). Datotečni sistem " "vaše kartice ćete naći pod slovom \"p:\", ili pod narednim slovima ako imate " "više od jednog HP štampača sa jedinicom za foto kartice. U \"MToolsFM\" " "promijeniti slovo drajva koristeći polje u gornjem desnom uglu liste " "datoteka." #: ../../steps.pm:1 #, c-format msgid "Choose packages to install" msgstr "Izaberite pakete za instalaciju" #: ../../install_interactive.pm:1 #, c-format msgid "ALL existing partitions and their data will be lost on drive %s" msgstr "" "SVE postojeće particije i podaci na njima će biti izgubljeni na disku %s" #: ../../install_steps_interactive.pm:1 #, c-format msgid "" "Your system does not have enough space left for installation or upgrade (%d " "> %d)" msgstr "" "Vaš sistem nema dovoljno preostalog prostora za instalaciju ili unaprjeđenje " "(%d > %d)" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "Every printer needs a name (for example \"printer\"). The Description and " "Location fields do not need to be filled in. They are comments for the users." msgstr "" "Svakom štampaču treba dati ime (npr. \"stampac\"). Polja Opis i Lokacija " "nije potrebno popuniti. Oni su komentari za korisnike." #: ../../help.pm:1 #, c-format msgid "" "\"%s\": clicking on the \"%s\" button will open the printer configuration\n" "wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n" "information on how to setup a new printer. The interface presented there is\n" "similar to the one used during installation." msgstr "" "\"%s\": klikanjem na dugme \"%s\" otvorićete čarobnjak za\n" "podešavanje štampača. Konsultujte odgovarajuće poglavlje \"Vodiča za\n" "početnike\" za više informacija o tome kako podesiti novi štampač.\n" "Interfejs koji je tamo prikazan je vrlo sličan onom koji se koristi\n" "prilikom instalacije." #: ../../lang.pm:1 #, c-format msgid "Bhutan" msgstr "Butan" #: ../../standalone/drakgw:1 #, c-format msgid "Network interface" msgstr "Mrežni interface" #: ../../standalone/net_monitor:1 #, c-format msgid "Disconnection from Internet failed." msgstr "Prekid veze sa Internetom nije uspio." #: ../../printer/printerdrake.pm:1 #, c-format msgid "Reading printer data..." msgstr "Čitam podatke o štampaču..." #: ../../keyboard.pm:1 #, c-format msgid "Korean keyboard" msgstr "Korejanska tastatura" #: ../../standalone/drakconnect:1 ../../standalone/net_monitor:1 #, c-format msgid "Not connected" msgstr "Nije konektovan" #: ../../standalone/net_monitor:1 #, fuzzy, c-format msgid "No internet connection configured" msgstr "Podešavanje Internet konekcije" #: ../../keyboard.pm:1 #, c-format msgid "Greek" msgstr "Grčka" #: ../../lang.pm:1 #, c-format msgid "Saint Kitts and Nevis" msgstr "Saint Kitts and Nevis" #: ../../mouse.pm:1 #, c-format msgid "Generic 3 Button Mouse with Wheel emulation" msgstr "Opšti miš sa 3 dugmeta sa simulacijom točkića" #: ../../any.pm:1 #, c-format msgid "Enable OF Boot?" msgstr "Omogući boot sa OFa?" #: ../../fsedit.pm:1 #, c-format msgid "You can't use JFS for partitions smaller than 16MB" msgstr "Ne možete koristiti JFS za particije manje od 16MB" #: ../../standalone/drakbackup:1 #, c-format msgid "Erase your RW media (1st Session)" msgstr "Obrišite vaš RW medij (prva sesija)" #: ../../Xconfig/various.pm:1 #, c-format msgid "Monitor VertRefresh: %s\n" msgstr "Monitor VertRefresh: %s\n" #: ../../diskdrake/dav.pm:1 ../../diskdrake/interactive.pm:1 #: ../../diskdrake/removable.pm:1 ../../diskdrake/smbnfs_gtk.pm:1 #, c-format msgid "Mount point" msgstr "Tačka montiranja" #: ../../Xconfig/test.pm:1 #, c-format msgid "" "An error occurred:\n" "%s\n" "Try to change some parameters" msgstr "" "Došlo je do greške:\n" "%s\n" "Probajte promijeniti neke parametre" #: ../../printer/main.pm:1 #, c-format msgid "TCP/IP host \"%s\", port %s" msgstr "TCP/IP host \"%s\", port %s" #: ../../standalone/drakperm:1 #, c-format msgid "User :" msgstr "Korisnik :" #: ../../standalone/drakbackup:1 #, c-format msgid "Restore system" msgstr "Vrati sistem" #: ../../standalone/scannerdrake:1 #, c-format msgid "" "These are the machines on which the locally connected scanner(s) should be " "available:" msgstr "Ovo su računari kojima treba dozvoliti korištenje lokalnog skenera:" #: ../../standalone/drakpxe:1 #, c-format msgid "The DHCP end ip" msgstr "Krajnja DHCP adresa" #: ../../diskdrake/smbnfs_gtk.pm:1 #, c-format msgid "Another one" msgstr "Još jedan" #: ../../standalone/drakbackup:1 #, c-format msgid "Drakbackup" msgstr "Drakbackup" #: ../../lang.pm:1 #, c-format msgid "Colombia" msgstr "Kolumbija" #: ../../standalone/drakgw:1 #, c-format msgid "" "Current configuration of `%s':\n" "\n" "Network: %s\n" "IP address: %s\n" "IP attribution: %s\n" "Driver: %s" msgstr "" "Trenutna konfiguracija `%s':\n" "\n" "Mreža: %s\n" "IP adresa: %s\n" "IP atributi: %s\n" "Drajver: %s" #: ../../Xconfig/monitor.pm:1 #, c-format msgid "Plug'n Play" msgstr "Plug'n Play" #: ../../lang.pm:1 #, c-format msgid "Reunion" msgstr "Reunion" #: ../../install_steps_gtk.pm:1 ../../diskdrake/hd_gtk.pm:1 #: ../../diskdrake/smbnfs_gtk.pm:1 #, c-format msgid "Details" msgstr "Detalji" #: ../../network/tools.pm:1 #, c-format msgid "For security reasons, it will be disconnected now." msgstr "Iz sigurnosnih razloga, sada će biti odspojen." #: ../../standalone/drakbug:1 #, c-format msgid "Synchronization tool" msgstr "Alat za sinhroniziranje" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Checking your system..." msgstr "Proveravam vaš sistem..." #: ../../printer/printerdrake.pm:1 #, c-format msgid "Print" msgstr "Štampaj" #: ../../standalone/drakbackup:1 #, c-format msgid "" "Insert the tape with volume label %s\n" " in the tape drive device %s" msgstr "" "Ubacite traku sa oznakom %s u kasetni\n" "uređaj %s" #: ../../lang.pm:1 #, c-format msgid "Mongolia" msgstr "Mongolija" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Mounted\n" msgstr "Montirana\n" #: ../../standalone/printerdrake:1 #, c-format msgid "Configure CUPS" msgstr "Podešavanje CUPSa" #: ../../help.pm:1 #, c-format msgid "Graphical Interface" msgstr "Grafički interfejs" #: ../../standalone/drakbackup:1 #, c-format msgid "Restore Users" msgstr "Vrati korisnike" #: ../../install_steps_interactive.pm:1 #, c-format msgid "Encryption key for %s" msgstr "Ključ enkripcije za %s" #: ../../install_steps_interactive.pm:1 #, c-format msgid "Do you want to recover your system?" msgstr "Da li želite obnoviti vaš sistem?" #: ../../services.pm:1 #, c-format msgid "" "The portmapper manages RPC connections, which are used by\n" "protocols such as NFS and NIS. The portmap server must be running on " "machines\n" "which act as servers for protocols which make use of the RPC mechanism." msgstr "" "Portmapper upravlja RPC konekcijama, koje koriste protokoli kao što\n" "su NFS i NIS. Portmap server mora raditi na računarima koje služe kao\n" "serveri za protokole koji koriste RPC mehanizam." #: ../../standalone/harddrake2:1 #, c-format msgid "Detected hardware" msgstr "Detektovani hardver" #: ../../lang.pm:1 #, c-format msgid "Mauritius" msgstr "Mauricijus" #: ../../keyboard.pm:1 #, c-format msgid "Myanmar (Burmese)" msgstr "Mjanmarska (Burmanska)" #: ../../fs.pm:1 #, c-format msgid "Enabling swap partition %s" msgstr "Uključujem swap particiju %s" #: ../../install_interactive.pm:1 #, c-format msgid "There is no FAT partition to use as loopback (or not enough space left)" msgstr "" "Ne postoji nijedna FAT particija za upotrebu kao loopback (ili nije ostalo " "dovoljno prostora)" #: ../../keyboard.pm:1 #, c-format msgid "Armenian (old)" msgstr "Armenska (stara)" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "A printer named \"%s\" already exists under %s. \n" "Click \"Transfer\" to overwrite it.\n" "You can also type a new name or skip this printer." msgstr "" "Štampač pod imenom \"%s\" već postoji pod %s: \n" "Kliknite na \"Prebaci\" da to prepišete.\n" "Možete također unijeti novo ime ili preskočiti ovaj štampač." #: ../advertising/12-mdkexpert.pl:1 #, c-format msgid "" "Find the solutions of your problems via MandrakeSoft's online support " "platform." msgstr "" "Pronađite rješenja za vaše probleme putem MandrakeSoft-ove online podrške." #: ../../printer/printerdrake.pm:1 #, c-format msgid ", host \"%s\", port %s" msgstr ", host \"%s\", port %s" #: ../../lang.pm:1 #, c-format msgid "Monaco" msgstr "Monako" #: ../../install_interactive.pm:1 #, c-format msgid "Partitioning failed: %s" msgstr "Particioniranje nije uspjelo: %s" #: ../../fs.pm:1 ../../swap.pm:1 #, c-format msgid "%s formatting of %s failed" msgstr "%s formatiranje %s nije uspjelo" #: ../../standalone/drakxtv:1 #, c-format msgid "Canada (cable)" msgstr "Kanada (kablovska)" #: ../../standalone/drakfloppy:1 #, c-format msgid "Floppy creation completed" msgstr "Pravljenje floppy-ja završeno" #: ../../help.pm:1 #, c-format msgid "Upgrade" msgstr "Unaprijedi" #: ../../help.pm:1 #, c-format msgid "Workstation" msgstr "Radna stanica" #: ../../install_steps_interactive.pm:1 #, c-format msgid "" "Installing package %s\n" "%d%%" msgstr "" "Instaliram paket %s\n" "%d%%" #: ../../lang.pm:1 #, c-format msgid "Kyrgyzstan" msgstr "Kirgistan" #: ../../printer/main.pm:1 #, c-format msgid "Multi-function device on USB" msgstr "Višenamjenski uređaj na USBu" #: ../../../move/move.pm:1 #, c-format msgid "" "We didn't detect any USB key on your system. If you\n" "plug in an USB key now, Mandrake Move will have the ability\n" "to transparently save the data in your home directory and\n" "system wide configuration, for next boot on this computer\n" "or another one. Note: if you plug in a key now, wait several\n" "seconds before detecting again.\n" "\n" "\n" "You may also proceed without an USB key - you'll still be\n" "able to use Mandrake Move as a normal live Mandrake\n" "Operating System." msgstr "" #: ../../help.pm:1 #, c-format msgid "With basic documentation" msgstr "Sa osnovnom dokumentacijom" #: ../../services.pm:1 #, c-format msgid "Anacron is a periodic command scheduler." msgstr "Anacron je periodični izvršitelj programa." #: ../../install_interactive.pm:1 #, c-format msgid "" "You must have a root partition.\n" "For this, create a partition (or click on an existing one).\n" "Then choose action ``Mount point'' and set it to `/'" msgstr "" "Morate imati root particiju.\n" "Za ovo, napravite jednu particiju (ili kliknite na neku od postojećih).\n" "Zatim izaberite opciju ``Tačka montiranja'' i postavite je na `/'" #: ../../lang.pm:1 #, c-format msgid "Western Sahara" msgstr "Zapadna Sahara" #: ../../network/network.pm:1 #, c-format msgid "Proxy should be http://..." msgstr "Proxy treba biti http://..." #: ../../lang.pm:1 ../../standalone/drakxtv:1 #, c-format msgid "South Africa" msgstr "Južna Afrika" #: ../../standalone/drakbackup:1 #, c-format msgid "Eject tape after the backup" msgstr "Izbaci traku nakon backupa" #: ../../standalone/drakTermServ:1 #, c-format msgid "Etherboot Floppy/ISO" msgstr "Etherboot Floppy/ISO" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Modify printer configuration" msgstr "Izmjeni konfiguraciju štampača" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Choose a partition" msgstr "Izaberi particiju" #: ../../standalone/drakperm:1 #, c-format msgid "Edit current rule" msgstr "Izmijeni trenutno pravilo" #: ../../standalone/drakbackup:1 #, c-format msgid "%s" msgstr "%s" #: ../../mouse.pm:1 #, c-format msgid "Please test the mouse" msgstr "Molim testirajte miš" #: ../../fs.pm:1 #, c-format msgid "" "Do not update inode access times on this file system\n" "(e.g, for faster access on the news spool to speed up news servers)." msgstr "" "Ne ažuriraj vrijeme pristupa inode-u na ovom sistemu\n" "(npr. radi bržeg pristupa spool-u na news serverima)." #: ../../mouse.pm:1 #, c-format msgid "3 buttons with Wheel emulation" msgstr "3 dugmeta sa simulacijom točkića" #: ../../standalone/drakperm:1 #, c-format msgid "Sticky-bit" msgstr "Sticky-bit" #: ../../standalone/drakbackup:1 #, c-format msgid "Other Media" msgstr "Drugi medij" #: ../../mouse.pm:1 #, c-format msgid "Logitech MouseMan+" msgstr "Logitech MouseMan+" #: ../../standalone/drakbackup:1 #, c-format msgid "Backup system files" msgstr "Backup sistemskih datoteka" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Sector" msgstr "Sektor" #: ../../lang.pm:1 #, c-format msgid "Qatar" msgstr "Katar" #: ../../any.pm:1 #, c-format msgid "LDAP Base dn" msgstr "LDAP Base dn" #: ../../install_steps_gtk.pm:1 #, c-format msgid "" "You can't select this package as there is not enough space left to install it" msgstr "Ne možete izabrati ovaj paket jer nema dovoljno prostora za njega" #: ../../help.pm:1 #, c-format msgid "generate auto-install floppy" msgstr "napravi auto-instalacijsku disketu" #: ../../network/tools.pm:1 ../../standalone/drakconnect:1 #, c-format msgid "Dialing mode" msgstr "Način biranja broja" #: ../../services.pm:1 #, c-format msgid "File sharing" msgstr "Dijeljenje datoteka" #: ../../any.pm:1 #, c-format msgid "Clean /tmp at each boot" msgstr "Očisti /tmp prilikom svakog boota" #: ../../lang.pm:1 #, c-format msgid "Malawi" msgstr "Malavi" #: ../../standalone/drakTermServ:1 #, c-format msgid "local config: false" msgstr "lokalne datoteke: ne" #: ../../standalone/drakperm:1 #, c-format msgid "System settings" msgstr "Sistemske postavke" #: ../../install_steps_interactive.pm:1 #, c-format msgid "Please choose your type of mouse." msgstr "Molim izaberite vrstu vašeg miša." #: ../../services.pm:1 #, c-format msgid "running" msgstr "aktivan" #: ../../standalone/harddrake2:1 #, c-format msgid "class of hardware device" msgstr "klasa hardverskog uređaja" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "These are the machines and networks on which the locally connected printer" "(s) should be available:" msgstr "Ovo su računari i mreže čiji lokalni štampači trebaju biti dostupni:" #: ../../lang.pm:1 ../../network/tools.pm:1 #, c-format msgid "United Kingdom" msgstr "Ujedinjeno Kraljevstvo" #: ../../lang.pm:1 #, c-format msgid "Indonesia" msgstr "Indonezija" #: ../../standalone/draksec:1 #, c-format msgid "default" msgstr "uobičajeno" #: ../../standalone/drakxtv:1 #, c-format msgid "France [SECAM]" msgstr "Francuska [SECAM]" #: ../../any.pm:1 #, c-format msgid "restrict" msgstr "ograniči" #: ../../pkgs.pm:1 #, c-format msgid "must have" msgstr "obavezno" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "CUPS does not support printers on Novell servers or printers sending the " "data into a free-formed command.\n" msgstr "" "CUPS ne podržava štampače na Novell serverima ili štampačekoji šalju podatke " "u komandama slobodnog oblika.\n" #: ../../lang.pm:1 #, c-format msgid "Senegal" msgstr "Senegal" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Command line" msgstr "Komandna linija" #: ../advertising/08-store.pl:1 #, c-format msgid "" "Our full range of Linux solutions, as well as special offers on products and " "other \"goodies\", are available on our e-store:" msgstr "" "Čitav raspon Linux rješenja, kao i posebne ponude za proizvode i " "\"potrepštine\", dostupni su u našoj online radnji:" #: ../../standalone/drakbackup:1 #, c-format msgid "March" msgstr "Mart" #: ../../any.pm:1 #, c-format msgid "access to administrative files" msgstr "pristup administrativnim datotekama" #: ../../standalone/drakbackup:1 #, c-format msgid "" "Error during sendmail.\n" " Your report mail was not sent.\n" " Please configure sendmail" msgstr "" "Greška tokom sendmaila.\n" " Vaš mail izvještaj nije poslan.\n" " Molim podesite sendmail" #: ../../fs.pm:1 #, c-format msgid "" "Do not allow set-user-identifier or set-group-identifier\n" "bits to take effect. (This seems safe, but is in fact rather unsafe if you\n" "have suidperl(1) installed.)" msgstr "" "Ne dozvoli bitima set-user-identifier i set-group-identifier\n" "da stupe na snagu. (Ovo se čini kao sigurno, ali je ustvari prilično\n" "nesigurno ako ste instalirali suidperl(1).)" #: ../../lang.pm:1 #, c-format msgid "Montserrat" msgstr "Montserrat" #: ../../help.pm:1 #, c-format msgid "Automatic dependencies" msgstr "Automatske ovisnosti" #: ../../diskdrake/hd_gtk.pm:1 #, c-format msgid "Swap" msgstr "Swap" #: ../../standalone/drakperm:1 #, c-format msgid "Custom settings" msgstr "Vlastite postavke" #: ../../../move/move.pm:1 #, c-format msgid "" "The USB key seems to have write protection enabled, but we can't safely\n" "unplug it now.\n" "\n" "\n" "Click the button to reboot the machine, unplug it, remove write protection,\n" "plug the key again, and launch Mandrake Move again." msgstr "" #: ../../standalone/drakbackup:1 #, c-format msgid "Restore Other" msgstr "Vrati ostalo" #: ../../help.pm:1 ../../install_steps_interactive.pm:1 #, c-format msgid "TV card" msgstr "TV kartica" #: ../../printer/main.pm:1 #, c-format msgid "Printer on SMB/Windows 95/98/NT server" msgstr "Štampač na SMB/Windows 95/98/NT serveru" #: ../../standalone/printerdrake:1 #, c-format msgid "/_Configure CUPS" msgstr "/_Podešavanje CUPSa" #: ../../standalone/scannerdrake:1 #, c-format msgid ", " msgstr ", " #: ../../standalone/drakbug:1 #, c-format msgid "Submit lspci" msgstr "Pošalji lspci" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Remove selected host/network" msgstr "Ukloni izabrani računar/mrežu" #: ../../services.pm:1 #, c-format msgid "" "Postfix is a Mail Transport Agent, which is the program that moves mail from " "one machine to another." msgstr "" "Postfix je Mail Transport Agent, tj. program koji šalje poštu sa jednog " "računara na drugi." #: ../../keyboard.pm:1 #, c-format msgid "Uzbek (cyrillic)" msgstr "Uzbečka (ćirilica)" #: ../../keyboard.pm:1 #, c-format msgid "" "Here you can choose the key or key combination that will \n" "allow switching between the different keyboard layouts\n" "(eg: latin and non latin)" msgstr "" "Ovdje možete izabrati tipku ili kombinaciju tipki koja će\n" "izvršiti prebacivanje između raznih rasporeda tastature\n" "(npr: latinični i ne-latinični)" #: ../../network/network.pm:1 #, c-format msgid "Network Hotplugging" msgstr "Network Hotplugging" #: ../../security/help.pm:1 #, c-format msgid "if set to yes, reports check result to tty." msgstr "ako je postavljeno na da, prijavljuje rezultate provjere na tty." #: ../../standalone/drakbackup:1 #, c-format msgid "Restore From CD" msgstr "Vrati sa CDa" #: ../../standalone/drakgw:1 #, c-format msgid "" "You are about to configure your computer to share its Internet connection.\n" "With that feature, other computers on your local network will be able to use " "this computer's Internet connection.\n" "\n" "Make sure you have configured your Network/Internet access using drakconnect " "before going any further.\n" "\n" "Note: you need a dedicated Network Adapter to set up a Local Area Network " "(LAN)." msgstr "" "Sada ćete konfigurisati vaš računar za dijeljenje Internet konekcije.\n" "Sa ovom opcijom, ostali računari na vašoj lokalnoj mreži će moći koristiti " "Internet konekciju ovog računara. \n" "\n" "Prije nego što nastavite, provjerite da li ste podesili vaš mrežni/internet " "pristup koristeći drakconnect.\n" "\n" "Napomena: potreban vam je poseban Mrežni adapter da biste podesili Lokalnu " "mrežu (LAN)." #: ../../network/ethernet.pm:1 #, c-format msgid "" "Please choose which network adapter you want to use to connect to Internet." msgstr "" "Molim izaberite koji mrežni adapter želite koristiti za spajanje na Internet" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Photo memory card access on your HP multi-function device" msgstr "" "Pristup foto memorijskoj kartici na vašem HP multifunkcionalnom uređaju" #: ../advertising/09-mdksecure.pl:1 #, c-format msgid "" "Enhance your computer performance with the help of a selection of partners " "offering professional solutions compatible with Mandrake Linux" msgstr "" "Unaprijedite performanse vašeg računara uz pomoć naših odabranih partnera " "koji pružaju profesionalna rješenja kompatibilna sa Mandrake Linuxom" #: ../../standalone/printerdrake:1 #, c-format msgid "Authors: " msgstr "Autori: " #: ../../standalone/drakgw:1 #, c-format msgid "Internet Connection Sharing is now disabled." msgstr "Dijeljenje Internet konekcije je sada isključeno." #: ../../security/help.pm:1 #, c-format msgid "if set to yes, verify checksum of the suid/sgid files." msgstr "ako je postavljeno na da, provjerava checksum suid/sgid datoteka." #: ../../keyboard.pm:1 #, c-format msgid "Latin American" msgstr "Latino-Američka" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Japanese text printing mode" msgstr "Japanski režim štampanja" #: ../../standalone/harddrake2:1 #, c-format msgid "Old device file" msgstr "Stara datoteka uređaja" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Info: " msgstr "Info: " #: ../../interactive/stdio.pm:1 #, c-format msgid "Button `%s': %s" msgstr "Dugme '%s': %s" #: ../../any.pm:1 ../../interactive.pm:1 ../../harddrake/sound.pm:1 #: ../../standalone/drakbug:1 ../../standalone/drakconnect:1 #: ../../standalone/drakxtv:1 ../../standalone/harddrake2:1 #: ../../standalone/service_harddrake:1 #, c-format msgid "Please wait" msgstr "Molim sačekajte" #: ../../mouse.pm:1 #, c-format msgid "Genius NetMouse" msgstr "Genius NetMouse" #: ../../printer/printerdrake.pm:1 #, c-format msgid "None" msgstr "Ništa" #: ../../printer/printerdrake.pm:1 #, c-format msgid "The entered IP is not correct.\n" msgstr "Unesena IP adresa nije ispravna.\n" #: ../../standalone/drakbackup:1 #, c-format msgid "Please be sure that the cron daemon is included in your services." msgstr "Molim budite sigurni da je cron demon aktiviran u vašim servisima." #: ../../standalone/drakconnect:1 #, c-format msgid "Ethernet Card" msgstr "Ethernet kartica" #: ../../standalone/printerdrake:1 #, c-format msgid "Delete selected printer" msgstr "Obriši izabrani štampač" #: ../../services.pm:1 ../../ugtk2.pm:1 #, c-format msgid "Info" msgstr "Info" #: ../../help.pm:1 ../../install_steps_gtk.pm:1 #: ../../install_steps_interactive.pm:1 ../../standalone/drakbackup:1 #, c-format msgid "Install" msgstr "Instalacija" #: ../../help.pm:1 #, c-format msgid "" "Click on \"%s\" if you want to delete all data and partitions present on\n" "this hard drive. Be careful, after clicking on \"%s\", you will not be able\n" "to recover any data and partitions present on this hard drive, including\n" "any Windows data.\n" "\n" "Click on \"%s\" to stop this operation without losing any data and\n" "partitions present on this hard drive." msgstr "" "Kliknite na \"%s\" ako želite obrisati sve podatke i particije koje\n" "su prisutne na ovom hard disku. Budite oprezni, jer nakon klikanja na\n" "\"%s\" nećete moći vratiti podatke i particije koji se trenutno nalaze\n" "na ovom hard disku, uključujući i sve Windows podatke.\n" "\n" "Kliknite na \"%s\" da obustavite ovu operaciju bez gubitka\n" "podataka i particija na ovom hard disku." #: ../../steps.pm:1 #, c-format msgid "Exit install" msgstr "Napusti instalaciju" #: ../../../move/move.pm:1 #, c-format msgid "Need a key to save your data" msgstr "" #: ../../standalone/drakgw:1 #, c-format msgid "" "Everything has been configured.\n" "You may now share Internet connection with other computers on your Local " "Area Network, using automatic network configuration (DHCP)." msgstr "" "Sve je konfigurisano.\n" "Sada možete dijeliti Internet konekciju sa ostalim računarima na vašoj " "lokalnoj mreži, koristeći automatsku mrežnu konfiguraciju (DHCP)." #: ../../install_steps_interactive.pm:1 #, c-format msgid "Remote CUPS server" msgstr "Udaljeni CUPS server" #: ../../mouse.pm:1 #, c-format msgid "Sun - Mouse" msgstr "Sun - Mouse" #: ../../standalone/drakgw:1 #, c-format msgid "" "There is only one configured network adapter on your system:\n" "\n" "%s\n" "\n" "I am about to setup your Local Area Network with that adapter." msgstr "" "Trenutno je samo jedan mrežni adapter podešen na vašem sistemu:\n" "\n" "%s\n" "\n" "Sada ću podesiti vašu Lokalnu mrežu sa ovim adapterom." #: ../../standalone/drakbug:1 #, c-format msgid "Submit cpuinfo" msgstr "Pošalji cpuinfo" #: ../../install_steps_gtk.pm:1 #, c-format msgid "Minimal install" msgstr "Minimalna instalacija" #: ../../lang.pm:1 #, c-format msgid "Ethiopia" msgstr "Etiopija" #: ../../standalone/drakbackup:1 #, c-format msgid "YES" msgstr "DA" #: ../../security/l10n.pm:1 #, c-format msgid "Enable \"crontab\" and \"at\" for users" msgstr "Omogući korisnicima da koriste \"crontab\" i \"at\"" #: ../../keyboard.pm:1 #, c-format msgid "Devanagari" msgstr "Devanagari" #: ../../standalone/harddrake2:1 #, c-format msgid "" "- pci devices: this gives the PCI slot, device and function of this card\n" "- eide devices: the device is either a slave or a master device\n" "- scsi devices: the scsi bus and the scsi device ids" msgstr "" "- pci devices: ovo daje PCI slot, uređaj i funkciju ove kartice\n" "- eide devices: uređaj može biti master ili slave\n" "- scsi devices: SCSI id-ovi za: bus i device" #: ../../install_steps_gtk.pm:1 ../../install_steps_interactive.pm:1 #, c-format msgid "Total size: %d / %d MB" msgstr "Ukupna veličina: %d / %d MB" #: ../../install_steps_interactive.pm:1 #, c-format msgid "disabled" msgstr "isključen" #: ../../standalone/scannerdrake:1 #, c-format msgid "Search for new scanners" msgstr "Traženje novih skenera" #: ../../standalone/drakgw:1 #, c-format msgid "Disabling servers..." msgstr "Isključujem servere..." #: ../../standalone/drakboot:1 #, c-format msgid "Installation of %s failed. The following error occured:" msgstr "Instalacija %sa nije uspjela. Javila se sljedeća greška:" #: ../../standalone/drakboot:1 #, c-format msgid "Can't launch mkinitrd -f /boot/initrd-%s.img %s." msgstr "Ne mogu izvršiti mkinitrd -f /boot/initrd-%s.img %s." #: ../../install_any.pm:1 #, c-format msgid "" "You have selected the following server(s): %s\n" "\n" "\n" "These servers are activated by default. They don't have any known security\n" "issues, but some new ones could be found. In that case, you must make sure\n" "to upgrade as soon as possible.\n" "\n" "\n" "Do you really want to install these servers?\n" msgstr "" "Izabrali ste sljedeći server (servere): %s\n" "\n" "\n" "Ovi serveri su aktivirani automatski. Oni nemaju nikakvih poznatih " "sigurnosnih\n" "problema, ali možda će biti pronađeni u budućnosti. Ako se to desi, morate " "ih\n" "upgrade-ovati što prije bude moguće.\n" "\n" "\n" "Da li zaista želite instalirati ove servere?\n" #: ../../printer/main.pm:1 #, c-format msgid "Network printer (TCP/Socket)" msgstr "Mrežni štampač (TCP/Socket)" #: ../../standalone/drakbackup:1 #, c-format msgid "Backup User files..." msgstr "Backup-uj korisničke datoteke..." #: ../../steps.pm:1 #, c-format msgid "Install system" msgstr "Instalacija sistema" #: ../../network/modem.pm:1 ../../standalone/drakconnect:1 #, c-format msgid "First DNS Server (optional)" msgstr "Prvi DNS server (opcionalno)" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "Alternatively, you can specify a device name/file name in the input line" msgstr "" "Alternativno, možete nasvesti naziv uređaja / naziv datoteke na ulaznoj " "liniji" #: ../../security/help.pm:1 #, c-format msgid "" "If SERVER_LEVEL (or SECURE_LEVEL if absent)\n" "is greater than 3 in /etc/security/msec/security.conf, creates the\n" "symlink /etc/security/msec/server to point to\n" "/etc/security/msec/server..\n" "\n" "The /etc/security/msec/server is used by chkconfig --add to decide to\n" "add a service if it is present in the file during the installation of\n" "packages." msgstr "" "Ako je SERVER_LEVEL (ili, ako ovaj ne postoji, SECURE_LEVEL)\n" "veći od 3 u /etc/security/msec/security.conf, pravi simbolički link\n" "/etc/security/msec/server koji pokazuje na /etc/security/msec/server." ".\n" "/etc/security/msec/server koristi chkconfig --add da odluči da li\n" "da doda servis ako je prisutan u datoteci tokom instalacije paketa." #: ../../keyboard.pm:1 #, c-format msgid "Russian (Phonetic)" msgstr "Ruska (fonetska)" #: ../../standalone/drakTermServ:1 #, c-format msgid "dhcpd Config..." msgstr "dhcpd podešavanje..." #: ../../any.pm:1 #, c-format msgid "LILO/grub Installation" msgstr "LILO/grub instalacija" #: ../../keyboard.pm:1 #, c-format msgid "Israeli" msgstr "Izraelska" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Printer \"%s\" on server \"%s\"" msgstr "Štampač \"%s\" na serveru \"%s\"" #: ../../standalone/drakTermServ:1 #, c-format msgid "Floppy can be removed now" msgstr "Sada možete izvaditi disketu" #: ../../help.pm:1 #, c-format msgid "Truly minimal install" msgstr "Stvarno minimalna instalacija" #: ../../lang.pm:1 #, c-format msgid "Denmark" msgstr "Danska" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Moving partition..." msgstr "Premještam particiju..." #: ../../standalone/drakgw:1 #, c-format msgid "(This) DHCP Server IP" msgstr "IP adresa (ovog) DHCP servera" #: ../../Xconfig/test.pm:1 #, c-format msgid "Test of the configuration" msgstr "Testiranje konfiguracije" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Installing %s ..." msgstr "Instaliram %s..." #: ../../help.pm:1 #, c-format msgid "" "If you told the installer that you wanted to individually select packages,\n" "it will present a tree containing all packages classified by groups and\n" "subgroups. While browsing the tree, you can select entire groups,\n" "subgroups, or individual packages.\n" "\n" "Whenever you select a package on the tree, a description appears on the\n" "right to let you know the purpose of the package.\n" "\n" "!! If a server package has been selected, either because you specifically\n" "chose the individual package or because it was part of a group of packages,\n" "you will be asked to confirm that you really want those servers to be\n" "installed. By default Mandrake Linux will automatically start any installed\n" "services at boot time. Even if they are safe and have no known issues at\n" "the time the distribution was shipped, it is entirely possible that that\n" "security holes were discovered after this version of Mandrake Linux was\n" "finalized. If you do not know what a particular service is supposed to do\n" "or why it is being installed, then click \"%s\". Clicking \"%s\" will\n" "install the listed services and they will be started automatically by\n" "default during boot. !!\n" "\n" "The \"%s\" option is used to disable the warning dialog which appears\n" "whenever the installer automatically selects a package to resolve a\n" "dependency issue. Some packages have relationships between each other such\n" "that installation of a package requires that some other program is also\n" "rerquired to be installed. The installer can determine which packages are\n" "required to satisfy a dependency to successfully complete the installation.\n" "\n" "The tiny floppy disk icon at the bottom of the list allows you to load a\n" "package list created during a previous installation. This is useful if you\n" "have a number of machines that you wish to configure identically. Clicking\n" "on this icon will ask you to insert a floppy disk previously created at the\n" "end of another installation. See the second tip of last step on how to\n" "create such a floppy." msgstr "" "Ako ste naveli da želite individualno izabrati pakete, biće vam prikazano\n" "stablo koje sadrži sve pakete klasifikovane po grupama i podgrupama.\n" "Pregledajući stablo, možete izabrati čitave grupe, podgrupe ili\n" "individualne pakete.\n" "\n" "Kad god izaberete paket na stablu, desno od njega se pojavljuje opis koji\n" "vam objašnjava svrhu paketa.\n" "\n" "!! Ako izaberete neki serverski paket, zato što ste specifično izabrali taj\n" "paket ili zato što je on dio grupe paketa, bićete zamoljeni da potvrdite da\n" "zaista želite da taj server bude instaliran. Mandrake Linux obično\n" "automatski pokreće sve instalirane servise prilikom pokretanja sistema.\n" "Čak i ako su sigurni i nemaju poznatih problema u trenutku pakovanja\n" "distribucije, sasvim je moguće da su neke sigurnosne rupe otkrivene\n" "nakon što je dovršena ova verzija Mandrake Linuxa. Ako niste sigurni\n" "čemu tačno služi taj paket ili zašto ga treba instalirati, kliknite na \"%s" "\".\n" "Klikom na \"%s\" instalirate navedene servise i oni će biti automatski\n" "pokrenuti tokom pokretanja sistema. !!\n" "\n" "Opcija \"%s\" se koristi da bi se isključio dijalog upozorenja\n" "koji se pojavljuje svaki put kada instalacioni program automatski izabere\n" "neki paket kako bi razriješio neku zavisnost. Pojedini paketi imaju\n" "zavisnost jedan od drugog u smislu da instalacija jednog paketa traži\n" "da bude instaliran i drugi. Instalacioni program može odrediti koji paketi\n" "su potrebni da bi se zadovoljila zavisnost i uspješno završila instalacija.\n" "\n" "Mala ikona sa disketom na dnu liste vam omogućuje da učitate listu paketa\n" "koja je napravljena tokom neke ranije instalacije. Ovo je korisno ako " "želite\n" "da imate nekoliko računara koji su identično podešeni. Nakon klika na ovu\n" "ikonu bićete zamoljeni da u disketnu jedinicu stavite disketu napravljenu\n" "tokom ranije instalacije. Pogledajte drugi savjet na zadnjem koraku da " "biste\n" "saznali kako se pravi ova disketa." #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Choose your filesystem encryption key" msgstr "Izaberite vaš ključ za kodiranje datotečnog sistema" #: ../../lang.pm:1 #, c-format msgid "Sierra Leone" msgstr "Sierra Leone" #: ../../lang.pm:1 #, c-format msgid "Botswana" msgstr "Bocvana" #: ../../lang.pm:1 #, c-format msgid "Andorra" msgstr "Andora" #: ../../standalone/draksec:1 #, c-format msgid "(default value: %s)" msgstr " (default vrijednost: %s)" #: ../../security/help.pm:1 #, c-format msgid "Set password aging to \"max\" days and delay to change to \"inactive\"." msgstr "" "Podesi starenje šifre na \"max\" dana, a pauzu izmjene na \"inactive\"." #: ../../printer/printerdrake.pm:1 #, c-format msgid "Alternative test page (Letter)" msgstr "Alternativna testna strana (Letter)" #: ../../standalone/drakgw:1 #, c-format msgid "" "DHCP Server Configuration.\n" "\n" "Here you can select different options for the DHCP server configuration.\n" "If you don't know the meaning of an option, simply leave it as it is.\n" "\n" msgstr "" "Podešavanje DHCP servera.\n" "\n" "Ovdje možete izabrati različite opcije za podešavanje DHCP servera.\n" "Ako ne znate značenje neke opcije, jednostavno je ostavite kako jeste.\n" "\n" #: ../../Xconfig/card.pm:1 #, c-format msgid "Choose an X server" msgstr "Izaberite X server" #: ../../../move/tree/mdk_totem:1 #, c-format msgid "Copying to memory to allow removing the CDROM" msgstr "" #: ../../install_interactive.pm:1 #, c-format msgid "Swap partition size in MB: " msgstr "Veličina swap particije u MB:" #: ../../standalone/drakbackup:1 #, c-format msgid "No changes to backup!" msgstr "Nema izmjena na backupu!" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Formatted\n" msgstr "Formatirana\n" #: ../../install_steps_interactive.pm:1 #, c-format msgid "Type of install" msgstr "Vrsta instalacije" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Printer \"%s\" on SMB/Windows server \"%s\"" msgstr "Štampač \"%s\" na SMB/Windows serveru \"%s\"" #: ../../modules/parameters.pm:1 #, c-format msgid "%d comma separated numbers" msgstr "%d brojeva razdvojenih zarezom" #: ../../services.pm:1 #, c-format msgid "" "The rusers protocol allows users on a network to identify who is\n" "logged in on other responding machines." msgstr "" "Rusers protokol omogućava korisnicima na mreži da identificiraju\n" "ko je prijavljen na ostalim računarima." #: ../../standalone/drakautoinst:1 #, c-format msgid "Automatic Steps Configuration" msgstr "Automatska konfiguracija koraka" #: ../../lang.pm:1 #, c-format msgid "Barbados" msgstr "Barbados" #: ../advertising/02-community.pl:1 #, c-format msgid "" "Want to know more and to contribute to the Open Source community? Get " "involved in the Free Software world!" msgstr "" "Želite li saznati više i doprinijeti Open Source zajednici? Uključite se u " "svijet Slobodnog softvera!" #: ../../standalone/drakbackup:1 #, c-format msgid "Please select data to backup..." msgstr "Molim izaberite podatke za backup..." #: ../../standalone/net_monitor:1 #, c-format msgid "" "Connection failed.\n" "Verify your configuration in the Mandrake Control Center." msgstr "" "Konekcija nije uspjela.\n" "Provjerite konfiguraciju u Mandrake Kontrolnom centru." #: ../../standalone/net_monitor:1 #, c-format msgid "received" msgstr "primljeno" #: ../../security/l10n.pm:1 #, c-format msgid "Enable su only from the wheel group members or for any user" msgstr "Omogući su samo za članove wheel grupe ili za bilo kojeg korisnika" #: ../../standalone/logdrake:1 #, c-format msgid "/File/_New" msgstr "/Datoteka/_Nova" #: ../../standalone/drakgw:1 #, c-format msgid "The DNS Server IP" msgstr "IP adresa DNS servera" #: ../../standalone/drakTermServ:1 #, c-format msgid "IP Range End:" msgstr "Kraj IP raspona:" #: ../../security/level.pm:1 #, c-format msgid "High" msgstr "Visok" #: ../../standalone/printerdrake:1 #, c-format msgid "Add a new printer to the system" msgstr "Dodaj štampač na sistem" #: ../../any.pm:1 #, c-format msgid "NoVideo" msgstr "NoVideo" #: ../../standalone/harddrake2:1 #, c-format msgid "this field describes the device" msgstr "ovo polje opisuje uređaj" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Adding printer to Star Office/OpenOffice.org/GIMP" msgstr "Dodajem štampač u Star Office/OpenOffice.org/GIMP" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Local Printers" msgstr "Lokalni štampači" #: ../../standalone/drakpxe:1 #, c-format msgid "Installation image directory" msgstr "Direktorij instalacionog image-a" #: ../../any.pm:1 #, c-format msgid "NIS Server" msgstr "NIS server" #: ../../standalone/scannerdrake:1 #, c-format msgid "Port: %s" msgstr "Port: %s" #: ../../lang.pm:1 #, c-format msgid "Spain" msgstr "Španija" #: ../../standalone/drakTermServ:1 #, c-format msgid "local config: %s" msgstr "lokalni konfig: %s" #: ../../any.pm:1 #, c-format msgid "This user name has already been added" msgstr "Ovo korisničko ime je već dodano" #: ../../interactive.pm:1 #, c-format msgid "Choose a file" msgstr "Izaberi datoteku" #: ../../standalone/drakconnect:1 #, c-format msgid "Apply" msgstr "Primjeni" #: ../../standalone/scannerdrake:1 #, c-format msgid "Auto-detect available ports" msgstr "Auto prepoznavaj dostupne portove" #: ../../lang.pm:1 #, c-format msgid "San Marino" msgstr "San Marino" #: ../../standalone/drakgw:1 #, c-format msgid "Internet Connection Sharing currently disabled" msgstr "Dijeljenje Internet konekcije je trenutno neaktivno" #: ../../crypto.pm:1 ../../lang.pm:1 ../../network/tools.pm:1 #, c-format msgid "Belgium" msgstr "Belgija" #: ../../lang.pm:1 #, c-format msgid "Kuwait" msgstr "Kuvajt" #: ../../any.pm:1 #, c-format msgid "Choose the window manager to run:" msgstr "Izaberite window manager koji će se pokretati:" #: ../../standalone/drakbackup:1 #, c-format msgid "December" msgstr "Decembar" #: ../../standalone/harddrake2:1 #, c-format msgid "sub generation of the cpu" msgstr "podgeneracija procesora" #: ../../standalone/drakbug:1 #, c-format msgid "First Time Wizard" msgstr "Čarobnjak za prvo pokretanje" #: ../../lang.pm:1 #, c-format msgid "Taiwan" msgstr "Tajvan" #: ../../lang.pm:1 #, c-format msgid "Pakistan" msgstr "Pakistan" #: ../../standalone/logdrake:1 #, c-format msgid "please wait, parsing file: %s" msgstr "molim sačekajte, parsiram datoteku: %s" #: ../../install_steps.pm:1 ../../../move/move.pm:1 #, c-format msgid "" "An error occurred, but I don't know how to handle it nicely.\n" "Continue at your own risk." msgstr "" "Došlo je do greške, ali ne znam kako da je riješim fino.\n" "Nastavite na vlastiti rizik." #: ../../install_steps_gtk.pm:1 #, c-format msgid "Importance: " msgstr "Značaj: " #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "To be able to print with your Lexmark inkjet and this configuration, you " "need the inkjet printer drivers provided by Lexmark (http://www.lexmark." "com/). Click on the \"Drivers\" link. Then choose your model and afterwards " "\"Linux\" as operating system. The drivers come as RPM packages or shell " "scripts with interactive graphical installation. You do not need to do this " "configuration by the graphical frontends. Cancel directly after the license " "agreement. Then print printhead alignment pages with \"lexmarkmaintain\" and " "adjust the head alignment settings with this program." msgstr "" "Da biste mogli štampati sa vašim Lexmark inkjetom na ovoj konfiguraciji, " "potrebni su vam inkjet drajveri za štampu koje obezbjeđuje Lexmark (http://" "www.lexmark.com/). Kliknite na link \"Drivers\". Zatim izaberite vaš model a " "zatim \"Linux\" kao operativni sistem. Drajveri dolaze u vidu RPM paketa ili " "shell skripte sa interaktivnom grafičkom instalacijom. Ne morate obaviti ovu " "konfiguraciju na grafičkom interfejsu. Odustanite odmah nakon licencnog " "ugovora. Zatim odštampajte stranice za poravnavanje glava sa " "\"lexmarkmaintain\" i podesite opcije poravnanja glave pomoću ovog programa." #: ../../standalone/drakperm:1 #, c-format msgid "Permissions" msgstr "Privilegije" #: ../../network/tools.pm:1 ../../standalone/drakconnect:1 #, c-format msgid "Provider name (ex provider.net)" msgstr "Naziv provajdera (npr. provajder.net)" #: ../../install_steps_gtk.pm:1 #, c-format msgid "" "Your system is low on resources. You may have some problem installing\n" "Mandrake Linux. If that occurs, you can try a text install instead. For " "this,\n" "press `F1' when booting on CDROM, then enter `text'." msgstr "" "Vašem sistemu ponestaje resursa. Možda imate neki problem sa instalacijom\n" "Mandrake Linuxa. Ako se ovo desi, možete pokušati tekstualnu instalaciju. Za " "ovo,\n" "pritisnite `F1' prilikom bootanja CDROMa, zatim unesite `text'." #: ../../install_interactive.pm:1 #, c-format msgid "Use the Windows partition for loopback" msgstr "Koristi Windows particiju za loopback" #: ../../keyboard.pm:1 #, c-format msgid "Armenian (typewriter)" msgstr "Armenska (pisaća mašina)" #: ../../standalone/drakconnect:1 ../../standalone/net_monitor:1 #, c-format msgid "Connection type: " msgstr "Tip konekcije: " #: ../../install_steps_interactive.pm:1 #, c-format msgid "Graphical interface" msgstr "Grafički interfejs" #: ../../lang.pm:1 #, c-format msgid "Chad" msgstr "Čad" #: ../../lang.pm:1 #, c-format msgid "India" msgstr "Indija" #: ../../Xconfig/card.pm:1 ../../Xconfig/various.pm:1 #, c-format msgid "XFree %s with 3D hardware acceleration" msgstr "XFree %s sa 3D hardverskim ubrzanjem" #: ../../lang.pm:1 #, c-format msgid "Slovakia" msgstr "Slovačka" #: ../../lang.pm:1 #, c-format msgid "Singapore" msgstr "Singapur" #: ../../lang.pm:1 #, c-format msgid "Cambodia" msgstr "Kambođa" #: ../../Xconfig/various.pm:1 #, c-format msgid "Monitor HorizSync: %s\n" msgstr "Monitor HorizSync: %s\n" #: ../../standalone/drakperm:1 #, c-format msgid "Path" msgstr "Staza" #: ../../standalone/drakbug:1 #, c-format msgid "NOT FOUND" msgstr "NIJE PRONAĐEN" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "Here you can specify any arbitrary command line into which the job should be " "piped instead of being sent directly to a printer." msgstr "" "Ovdje možete navesti bilo koju komandnu liniju kojoj će biti prosljeđen " "zadatak umjesto direktnog slanja na štampač." #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "The printing system (%s) will not be started automatically when the machine " "is booted.\n" "\n" "It is possible that the automatic starting was turned off by changing to a " "higher security level, because the printing system is a potential point for " "attacks.\n" "\n" "Do you want to have the automatic starting of the printing system turned on " "again?" msgstr "" "Sistem za štampu (%s) se neće pokrenuti automatski prilikom boota računara.\n" "\n" "Moguće je da je automatsko pokretanje isključeno prilikom promjene na viši " "nivo sigurnosni, pošto je sistem za štampu moguća tačka napada.\n" "\n" "Da li želite da ponovo uključite automatsko pokretanje sistema za štampu?" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "Printer %s\n" "What do you want to modify on this printer?" msgstr "" "Štampač %s\n" "Šta želite da izmjenite na ovom štampaču?" #: ../../standalone/scannerdrake:1 #, c-format msgid "Add host" msgstr "Dodaj računar" #: ../../harddrake/sound.pm:1 #, c-format msgid "" "If you really think that you know which driver is the right one for your " "card\n" "you can pick one in the above list.\n" "\n" "The current driver for your \"%s\" sound card is \"%s\" " msgstr "" "Ako stvarno mislite da znate koji drajver je odgovarajući za vašu karticu\n" "možete odabrati jedan sa gornje liste.\n" "\n" "Trenutni drajver za vašu \"%s\" zvučnu karticu je \"%s\"" #: ../../any.pm:1 #, c-format msgid "" "Would you like to allow users to share some of their directories?\n" "Allowing this will permit users to simply click on \"Share\" in konqueror " "and nautilus.\n" "\n" "\"Custom\" permit a per-user granularity.\n" msgstr "" "Želite li dozvoliti korisnicima da dijele (share) neke od njihovih " "direktorija?\n" "Ako uključite ovu opciju, korisnici će moći jednostavno kliknuti na opciju " "\"Share\" u\n" "Konqueroru ili Nautilusu.\n" "\n" "\"Izaberi korisnike\" vam omogućuje da podesite ovu opciju zasebno za svakog " "korisnika.\n" #: ../../install_steps_interactive.pm:1 #, c-format msgid "" "Please choose load or save package selection on floppy.\n" "The format is the same as auto_install generated floppies." msgstr "" "Molim izaberite učitaj ili spasi izbor paketa na disketu.\n" "Format je isti kao i diskete koje generiše auto_install." #: ../../../move/tree/mdk_totem:1 #, fuzzy, c-format msgid "No CDROM support" msgstr "Podrška za radio:" #: ../../standalone/drakxtv:1 #, c-format msgid "China (broadcast)" msgstr "Kina (broadcast)" #: ../../standalone/drakbackup:1 #, c-format msgid "Use quota for backup files." msgstr "Koristi quotu za backup datoteke." #: ../../printer/printerdrake.pm:1 #, c-format msgid "Configuring printer \"%s\"..." msgstr "Podešavam štampač \"%s\"..." #: ../../fs.pm:1 #, c-format msgid "" "Do not allow execution of any binaries on the mounted\n" "file system. This option might be useful for a server that has file systems\n" "containing binaries for architectures other than its own." msgstr "" "Ne dozvoli izvršenje binarnih datoteka na montiranom\n" "datotečnom sistemu. Ova opcija bi mogla biti korisna za server\n" "koji ima datotečne sisteme koji sadrže programe za druge arhitekture." #: ../../network/netconnect.pm:1 #, c-format msgid "Internet connection" msgstr "Internet konekcija" #: ../../modules/interactive.pm:1 #, c-format msgid "" "Loading module %s failed.\n" "Do you want to try again with other parameters?" msgstr "" "Učitavanje modula %s nije uspjelo.\n" "Želite li probati opet sa drugim parametrima?" #: ../advertising/01-thanks.pl:1 #, c-format msgid "Welcome to the Open Source world." msgstr "Dobro došli u svijet otvorenog izvornog koda." #: ../../lang.pm:1 #, c-format msgid "Bosnia and Herzegovina" msgstr "Bosna i Hercegovina" #: ../../fsedit.pm:1 #, c-format msgid "" "You need a true filesystem (ext2/ext3, reiserfs, xfs, or jfs) for this mount " "point\n" msgstr "" "Potreban vam je pravi file sistem (ext2/ext3, reiserfs, xfs ili jfs) za ovu " "tačku montiranja\n" #: ../../standalone/scannerdrake:1 #, c-format msgid "You must enter a host name or an IP address.\n" msgstr "Morate unijeti ime računara ili IP.\n" #: ../../crypto.pm:1 ../../lang.pm:1 ../../network/tools.pm:1 #, c-format msgid "Netherlands" msgstr "Nizozemska" #: ../../standalone/drakbackup:1 #, c-format msgid "Sending files by FTP" msgstr "Šaljem datoteke putem FTPa" #: ../../network/isdn.pm:1 #, c-format msgid "Internal ISDN card" msgstr "Interna ISDN kartica" #: ../../harddrake/sound.pm:1 #, c-format msgid "" "There's no known OSS/ALSA alternative driver for your sound card (%s) which " "currently uses \"%s\"" msgstr "" "Nema nijedan poznat OSS/ALSA alternativni drajver za vašu zvučnu karticu (%" "s) koja trenutno koristi \"%s\"" #: ../../network/modem.pm:1 #, c-format msgid "Title" msgstr "Naslov" #: ../../standalone/drakfont:1 #, c-format msgid "Install & convert Fonts" msgstr "Instaliraj i konvertuj fontove" #: ../../standalone/drakbackup:1 #, c-format msgid "WARNING" msgstr "UPOZORENJE" #: ../../install_steps_interactive.pm:1 #, c-format msgid "Installing bootloader" msgstr "Instaliram bootloader" #: ../../standalone/drakautoinst:1 #, c-format msgid "replay" msgstr "ponovi" #: ../../network/netconnect.pm:1 #, c-format msgid "detected %s" msgstr "detektovan %s" #: ../../standalone/drakbackup:1 #, c-format msgid "" "Expect is an extension to the Tcl scripting language that allows interactive " "sessions without user intervention." msgstr "" "Expect je proširenje Tcl skripting jezika koje omogućuje interaktivne sesije " "bez intervencije korisnika." #: ../../lang.pm:1 #, c-format msgid "Virgin Islands (U.S.)" msgstr "Djevičanska ostrva (SAD)" #: ../../partition_table.pm:1 #, c-format msgid "Bad backup file" msgstr "Loša backup datoteka" #: ../../standalone/drakgw:1 #, c-format msgid "" "The setup of Internet connection sharing has already been done.\n" "It's currently disabled.\n" "\n" "What would you like to do?" msgstr "" "Dijeljenje Internet konekcije je već podešeno. Trenutno je\n" "neaktivno (isključeno).\n" "\n" "Šta želite uraditi?" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Enter IP address and port of the host whose printers you want to use." msgstr "Unesite IP adresu i port računara čije štampače želite koristiti." #: ../../printer/printerdrake.pm:1 #, c-format msgid "Pipe into command" msgstr "Spoji (pipe) na komandu" #: ../../install_interactive.pm:1 #, c-format msgid "" "Some hardware on your computer needs ``proprietary'' drivers to work.\n" "You can find some information about them at: %s" msgstr "" "Neki dio hardware-a na vašem računaru zahtjeva ``vlasničke'' drajvere za " "rad.\n" "Možete naći više podataka o njima na: %s" #: ../../lang.pm:1 #, c-format msgid "Haiti" msgstr "Haiti" #: ../../network/netconnect.pm:1 ../../printer/printerdrake.pm:1 #, c-format msgid "Detecting devices..." msgstr "Prepoznajem uređaje..." #: ../../standalone/drakbackup:1 #, c-format msgid "" "Custom allows you to specify your own day and time. The other options use " "run-parts in /etc/crontab." msgstr "" "Vlastito vam omogućuje da navedete vaš vlastiti datum i vrijeme. Ostale " "opcije koriste run-parts u /etc/crontab." #: ../../standalone/harddrake2:1 #, c-format msgid "" "Description of the fields:\n" "\n" msgstr "" "Opis polja:\n" "\n" #: ../../standalone/draksec:1 #, c-format msgid "Basic options" msgstr "Osnovne opcije" #: ../../standalone/harddrake2:1 #, c-format msgid "the name of the CPU" msgstr "naziv procesora" #: ../../security/l10n.pm:1 #, c-format msgid "Accept bogus IPv4 error messages" msgstr "Prihvati neispravne IPv4 poruke o grešci" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Refreshing printer data..." msgstr "Osvježavam podatke o štampaču..." #: ../../install2.pm:1 #, c-format msgid "You must also format %s" msgstr "Morate takođe formatirati i %s" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Be careful: this operation is dangerous." msgstr "Budite oprezni: ova operacija je opasna." #: ../../install_steps_interactive.pm:1 #, c-format msgid "Insert a floppy containing package selection" msgstr "Ubacite disketu koja sadrži izbor paketa" #: ../../diskdrake/dav.pm:1 #, c-format msgid "Server: " msgstr "Server:" #: ../../standalone/draksec:1 #, c-format msgid "Security Alerts:" msgstr "Sigurnosna upozorenja:" #: ../../crypto.pm:1 ../../lang.pm:1 #, c-format msgid "Sweden" msgstr "Švedska" #: ../../standalone/drakbackup:1 #, c-format msgid "Use Expect for SSH" msgstr "Koristi Expect za SSH" #: ../../lang.pm:1 #, c-format msgid "Poland" msgstr "Poljska" #: ../../network/drakfirewall.pm:1 #, c-format msgid "Other ports" msgstr "Ostali portovi" #: ../../harddrake/v4l.pm:1 #, c-format msgid "number of capture buffers for mmap'ed capture" msgstr "broj capture buffera za mmap-ovani capture" #: ../../network/adsl.pm:1 #, fuzzy, c-format msgid " - detected" msgstr "detektovan" #: ../../harddrake/data.pm:1 #, c-format msgid "SMBus controllers" msgstr "SMBus kontroleri" #: ../../network/tools.pm:1 ../../standalone/drakconnect:1 #, c-format msgid "Connection timeout (in sec)" msgstr "Timeout konekcije (u sek.)" #: ../../standalone/harddrake2:1 #, c-format msgid "" "Some of the early i486DX-100 chips cannot reliably return to operating mode " "after the \"halt\" instruction is used" msgstr "" "Neki rani i486DX-100 chipovi se ne mogu pouzdano vratiti u radni način nakon " "korištenja instrukcije \"halt\"" #: ../../keyboard.pm:1 #, c-format msgid "Croatian" msgstr "Hrvatska" #: ../../help.pm:1 #, c-format msgid "Use existing partition" msgstr "Koristi postojeću particiju" #: ../../install_steps_interactive.pm:1 #, c-format msgid "Unable to contact mirror %s" msgstr "Ne mogu pristupiti mirroru %s" #: ../../standalone/logdrake:1 #, c-format msgid "/Help/_About..." msgstr "/Pomoć/_O programu..." #: ../../standalone/drakbackup:1 #, c-format msgid "Remove user directories before restore." msgstr "Pobriši korisničke direktorije prije vraćanja." #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "You are going to configure a remote printer. This needs working network " "access, but your network is not configured yet. If you go on without network " "configuration, you will not be able to use the printer which you are " "configuring now. How do you want to proceed?" msgstr "" "Sada ćete podesiti udaljeni štampač. Ovo zahtjeva aktivan pristup mreži, ali " "vaša mreža još uvijek nije podešena. Ako želite nastaviti bez podešavanja " "mreže, nećete moći koristiti štampač koji sada podešavate. Kako želite da " "nastavimo?" #: ../../printer/printerdrake.pm:1 #, c-format msgid "CUPS printer configuration" msgstr "Podešavanje CUPS štampača" #: ../../standalone/drakfont:1 #, c-format msgid "could not find any font in your mounted partitions" msgstr "ne mogu naći nijedan font na montiranim particijama" #: ../../standalone/harddrake2:1 #, c-format msgid "F00f bug" msgstr "F00F bug" #: ../../Xconfig/card.pm:1 ../../Xconfig/various.pm:1 #, c-format msgid "XFree %s" msgstr "XFree %s" #: ../../standalone/drakTermServ:1 #, c-format msgid "Domain Name:" msgstr "Ime domena:" #: ../../security/l10n.pm:1 #, c-format msgid "Root umask" msgstr "Root umask" #: ../../any.pm:1 #, c-format msgid "On Floppy" msgstr "Na disketi" #: ../../security/l10n.pm:1 #, c-format msgid "Reboot by the console user" msgstr "Restartovanje za korisnika na konzoli" #: ../../standalone/drakbackup:1 #, c-format msgid "Restore" msgstr "Vrati" #: ../../standalone/drakclock:1 #, fuzzy, c-format msgid "Server:" msgstr "Server:" #: ../../security/help.pm:1 #, c-format msgid "if set to yes, check if the network devices are in promiscuous mode." msgstr "" "ako je postavljeno na da, provjerava da li su mrežni uređaji u " "promiskuitetnom modu." #: ../../install_steps_interactive.pm:1 #, c-format msgid "Looking for available packages..." msgstr "Tražim dostupne pakete..." #: ../../../move/move.pm:1 #, fuzzy, c-format msgid "Please wait, setting up system configuration files on USB key..." msgstr "Molim sačekajre, podešavam nivo sigurnosti..." #: ../../any.pm:1 #, c-format msgid "Init Message" msgstr "Init poruka" #: ../../help.pm:1 ../../diskdrake/interactive.pm:1 #, c-format msgid "Rescue partition table" msgstr "Spasi tabelu particija" #: ../../lang.pm:1 #, c-format msgid "Cyprus" msgstr "Kipar" #: ../../standalone/net_monitor:1 #, c-format msgid "Connection complete." msgstr "Konekcija završena." #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Remove from RAID" msgstr "Ukloni sa RAIDa" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "This encryption key is too simple (must be at least %d characters long)" msgstr "" "Ovaj ključ enkripcije je previše jednostavan (mora imati najmanje %d " "karaktera)" #: ../../standalone/drakbug:1 #, c-format msgid "Configuration Wizards" msgstr "Čarobnjaci za podešavanje" #: ../../network/netconnect.pm:1 #, c-format msgid "ISDN connection" msgstr "ISDN konekcija" #: ../../standalone/drakbackup:1 #, c-format msgid "CD-R / DVD-R" msgstr "CDROM / DVDROM" #: ../../standalone/harddrake2:1 #, c-format msgid "primary" msgstr "primarni" #: ../../printer/main.pm:1 #, c-format msgid " on SMB/Windows server \"%s\", share \"%s\"" msgstr "na SMB/Windows serveru \"%s\", share \"%s\"" #: ../../help.pm:1 #, c-format msgid "" "This dialog is used to choose which services you wish to start at boot\n" "time.\n" "\n" "DrakX will list all the services available on the current installation.\n" "Review each one carefully and uncheck those which are not needed at boot\n" "time.\n" "\n" "A short explanatory text will be displayed about a service when it is\n" "selected. However, if you are not sure whether a service is useful or not,\n" "it is safer to leave the default behavior.\n" "\n" "!! At this stage, be very careful if you intend to use your machine as a\n" "server: you will probably not want to start any services that you do not\n" "need. Please remember that several services can be dangerous if they are\n" "enabled on a server. In general, select only the services you really need.\n" "!!" msgstr "" "Ovim dijalogom možete izabrati koje servise želite pokretati prilikom " "boota.\n" "\n" "Ovdje su predstavljeni svi servisi koji su dostupni u trenutnoj\n" "instalaciji. Pregledajte ih pažljivo i isključite sve one koji nisu\n" "potrebni prilikom boota.\n" "\n" "Kada izaberete servis dobićete kratki tekst koji objašnjava taj servis.\n" "Ipak, ako niste sigurni da li je servis koristan ili ne, sigurnije je da ne\n" "mijenjate predloženi izbor.\n" "\n" "!! Budite vrlo pažljivi sa ovim korakom ako namjeravate koristiti vaš\n" "računar kao server: vjerovatno ne želite da pokrenete neke servise koji\n" "vam ne trebaju. Molim vas da zapamtite da pojedini servisi mogu biti\n" "opasni ako su aktivni na serveru. Općenito, izaberite samo one servise\n" "koji vam stvarno trebaju.\n" "!!" #: ../../lang.pm:1 #, c-format msgid "Niue" msgstr "Niue" #: ../../any.pm:1 ../../help.pm:1 ../../printer/printerdrake.pm:1 #, c-format msgid "Skip" msgstr "Preskoči" #: ../../services.pm:1 #, c-format msgid "" "Activates/Deactivates all network interfaces configured to start\n" "at boot time." msgstr "" "Aktivira/deaktivira sve mrežne interfejse koji su konfigurisani\n" "za pokretanje tokom boota." #: ../../standalone/harddrake2:1 #, c-format msgid "" "the CPU frequency in MHz (Megahertz which in first approximation may be " "coarsely assimilated to number of instructions the cpu is able to execute " "per second)" msgstr "" "frekvencija CPUa u MHz (Megaherc je jedinica koja se može približno " "usporediti sa brojem instrukcija koje CPU izvršava u sekundi)" #: ../../pkgs.pm:1 #, c-format msgid "important" msgstr "važno" #: ../../standalone/printerdrake:1 #, c-format msgid "Mandrake Linux Printer Management Tool" msgstr "Alat za menadžement štampača za Mandrake Linux" #: ../../standalone/drakbackup:1 #, c-format msgid "Total Progress" msgstr "Ukupan napredak" #: ../../help.pm:1 #, c-format msgid "" "DrakX will first detect any IDE devices present in your computer. It will\n" "also scan for one or more PCI SCSI cards on your system. If a SCSI card is\n" "found, DrakX will automatically install the appropriate driver.\n" "\n" "Because hardware detection is not foolproof, DrakX may fail in detecting\n" "your hard drives. If so, you'll have to specify your hardware by hand.\n" "\n" "If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n" "want to configure options for it. You should allow DrakX to probe the\n" "hardware for the card-specific options which are needed to initialize the\n" "adapter. Most of the time, DrakX will get through this step without any\n" "issues.\n" "\n" "If DrakX is not able to probe for the options to automatically determine\n" "which parameters need to be passed to the hardware, you'll need to manually\n" "configure the driver." msgstr "" "DrakX će najprije potražiti sve IDE uređaje prisutne na vašem računaru.\n" "Također će pretražiti sistem za jednu ili više PCI SCSI kartica. Ako\n" "SCSI kartica bude pronađena, DrakX će automatski instalirati odgovarajući\n" "drajver.\n" "\n" "Budući da pronalaženje hardware-a nikad nije savršeno, DrakX možda neće\n" "pronaći vaše hard diskove. Ako se to desi, moraćete ih navesti ručno.\n" "\n" "Ako je potrebno da ručno odaberete PCI SCSI adapter, DrakX će vas pitati\n" "da li želite navesti neke opcije za njega. Trebate dopustiti DrakXu da\n" "ispita hardware za neke opcije specifične za tu karticu. Obično DrakX " "prolazi\n" "kroz ovaj korak bez problema.\n" "\n" "Ako DrakX ne može ispitati opcije koje trebaju biti proslijeđene, moraćete\n" "ručno navesti opcije za drajver." #: ../../lang.pm:1 #, c-format msgid "Aruba" msgstr "Aruba" #: ../../standalone/drakbackup:1 #, c-format msgid "Users" msgstr "Korisnici" #: ../../install_steps_interactive.pm:1 #, c-format msgid "Preparing bootloader..." msgstr "Pripremam bootloader..." #: ../../../move/move.pm:1 #, c-format msgid "Enter your user information, password will be used for screensaver" msgstr "" #: ../../network/network.pm:1 #, c-format msgid "Gateway (e.g. %s)" msgstr "Gateway (tj. %s)" #: ../../any.pm:1 ../../install_steps_interactive.pm:1 #, c-format msgid "The passwords do not match" msgstr "Šifre se ne poklapaju" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Examples for correct IPs:\n" msgstr "Primjeri ispravnih IPa:\n" #: ../../standalone/drakbackup:1 #, c-format msgid "Please choose the media for backup." msgstr "Molim izaberite medij za backup." #: ../../standalone/harddrake2:1 #, c-format msgid "Frequency (MHz)" msgstr "Frekvencija (MHz)" #: ../../install_any.pm:1 #, c-format msgid "" "To use this saved packages selection, boot installation with ``linux " "defcfg=floppy''" msgstr "" "Da koristite ovaj izbor spašenih paketa, bootajte instalaciju sa ``linux " "defcfg=floppy''" #: ../../standalone/harddrake2:1 #, c-format msgid "the number of the processor" msgstr "broj procesora" #: ../../help.pm:1 ../../install_steps_interactive.pm:1 #, c-format msgid "Hardware clock set to GMT" msgstr "Hardverski sat podešen na GMT" #: ../../network/isdn.pm:1 #, c-format msgid "Do you want to start a new configuration ?" msgstr "Želite li pokrenuti novu konfiguraciju ?" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Give a file name" msgstr "Dajte naziv datoteke" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Please choose the port that your printer is connected to." msgstr "Molim izaberite na koji port je priključen vaš štampač." #: ../../standalone/livedrake:1 #, c-format msgid "Change Cd-Rom" msgstr "Promijenite CD-ROM" #: ../../lang.pm:1 #, c-format msgid "Paraguay" msgstr "Paragvaj" #: ../../network/netconnect.pm:1 #, c-format msgid "Configuration is complete, do you want to apply settings ?" msgstr "Podešavanje je završeno, želite li primijeniti postavke?" #: ../../standalone/drakbackup:1 #, c-format msgid "Use Incremental/Differential Backups (do not replace old backups)" msgstr "" "Koristi inkrementalni/diferencijalni backup (nemoj prebrisati stare backupe)" #: ../../standalone/drakTermServ:1 #, c-format msgid "" " - Maintain /etc/dhcpd.conf:\n" " \tTo net boot clients, each client needs a dhcpd.conf entry, " "assigning an IP \n" " \taddress and net boot images to the machine. drakTermServ helps " "create/remove \n" " \tthese entries.\n" "\t\t\t\n" " \t(PCI cards may omit the image - etherboot will request the correct " "image. \n" "\t\t\tYou should also consider that when etherboot looks for the images, it " "expects \n" "\t\t\tnames like boot-3c59x.nbi, rather than boot-3c59x.2.4.19-16mdk.nbi).\n" "\t\t\t \n" " \tA typical dhcpd.conf stanza to support a diskless client looks " "like:" msgstr "" " - Maintain /etc/dhcpd.conf:\n" " \tTo net boot clients, each client needs a dhcpd.conf entry, " "assigning an IP \n" " \taddress and net boot images to the machine. drakTermServ helps " "create/remove \n" " \tthese entries.\n" "\t\t\t\n" " \t(PCI cards may omit the image - etherboot will request the correct " "image. \n" "\t\t\tYou should also consider that when etherboot looks for the images, it " "expects \n" "\t\t\tnames like boot-3c59x.nbi, rather than boot-3c59x.2.4.19-16mdk.nbi).\n" "\t\t\t \n" " \tA typical dhcpd.conf stanza to support a diskless client looks " "like:" #: ../../harddrake/sound.pm:1 #, c-format msgid "There's no known driver for your sound card (%s)" msgstr "Nema poznatih drajvera za vašu zvučnu karticu (%s)" #: ../../standalone/drakfloppy:1 #, c-format msgid "force" msgstr "prisili" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Exit" msgstr "Izlaz" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "NOTE: Depending on the printer model and the printing system up to %d MB of " "additional software will be installed." msgstr "" "NAPOMENA: Ovisno o modelu štampača i sistemu štampe, biće instalirano do %d " "MB dodatnog softvera." #: ../../standalone/drakconnect:1 #, c-format msgid "" "You don't have any configured interface.\n" "Configure them first by clicking on 'Configure'" msgstr "" "Nemate nijedan podešen interfejs.\n" "Podesite ih prvo klikajući na 'Podesi'" #: ../../keyboard.pm:1 #, c-format msgid "Estonian" msgstr "Estonska" #: ../../services.pm:1 #, c-format msgid "" "Apache is a World Wide Web server. It is used to serve HTML files and CGI." msgstr "" "Apache je World Wide Web server. Koristi se za posluživanje HTML\n" "datoteka i CGI skripti." #: ../../standalone/drakbackup:1 #, c-format msgid "" "Enter your CD Writer device name\n" " ex: 0,1,0" msgstr "" "Unesite naziv uređaja vašeg CD Writera\n" " npr: 0,1,0" #: ../../standalone/draksec:1 #, c-format msgid "ALL" msgstr "SVE" #: ../../standalone/drakTermServ:1 #, c-format msgid "Add/Del Clients" msgstr "Dodaj/obriši klijente" #: ../../network/ethernet.pm:1 ../../standalone/drakgw:1 #: ../../standalone/drakpxe:1 #, c-format msgid "Choose the network interface" msgstr "Izaberite mrežni interface" #: ../../printer/detect.pm:1 ../../printer/printerdrake.pm:1 #, c-format msgid "Unknown Model" msgstr "Nepoznat model" #: ../../harddrake/data.pm:1 #, c-format msgid "CD/DVD burners" msgstr "CD/DVD pržilica" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "" "Partition booted by default\n" " (for MS-DOS boot, not for lilo)\n" msgstr "" "Particija koja se boota po defaultu\n" " (za MS-DOS boot, ne za lilo)\n" #: ../../standalone/drakperm:1 #, c-format msgid "Enable \"%s\" to read the file" msgstr "Omogući \"%s\" da čita datoteku" #: ../../standalone/draksplash:1 #, c-format msgid "choose image" msgstr "izaberite image" #: ../../network/shorewall.pm:1 #, c-format msgid "Firewalling configuration detected!" msgstr "Otkrivena konfiguracija firewalla!" #: ../../network/modem.pm:1 ../../standalone/drakconnect:1 #, c-format msgid "Connection name" msgstr "Naziv konekcije" #: ../../standalone/draksplash:1 #, c-format msgid "" "x coordinate of text box\n" "in number of characters" msgstr "" "x koordinata tekst polja\n" "u broju znakova" #: ../../fsedit.pm:1 #, c-format msgid "" "You may not be able to install lilo (since lilo doesn't handle a LV on " "multiple PVs)" msgstr "" "Možda nećete biti u mogućnosti instalirati lilo (pošto lilo ne može rukovati " "LVom ili sa više PVa)" #: ../../install_steps_gtk.pm:1 #, c-format msgid "Updating package selection" msgstr "Osvježavam izbor paketa" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Where do you want to mount the loopback file %s?" msgstr "Gdje želite montirati loopback datoteku %s?" #: ../../standalone/drakautoinst:1 #, c-format msgid "" "The floppy has been successfully generated.\n" "You may now replay your installation." msgstr "" "Disketa je uspješno napravljena.\n" "Sada možete ponoviti vašu instalaciju." #: ../../standalone/drakbackup:1 #, c-format msgid "Use CD-R/DVD-R to backup" msgstr "Koristi CD/DVDROM za backup" #: ../../standalone/harddrake2:1 #, c-format msgid "the number of buttons the mouse has" msgstr "broj dugmadi koje ima miš" #: ../../help.pm:1 ../../install_steps_interactive.pm:1 #, c-format msgid "Replay" msgstr "Ponovi" #: ../../standalone/drakbackup:1 #, c-format msgid "Backup other files" msgstr "Backup ostalih datoteka" #: ../../install_steps.pm:1 #, c-format msgid "No floppy drive available" msgstr "Nema pogodne disketne jedinice" #: ../../standalone/drakbackup:1 #, c-format msgid "Backup files are corrupted" msgstr "Backup datoteke su oštećene" #: ../../standalone/drakxtv:1 #, c-format msgid "TV norm:" msgstr "TV standard :" #: ../../standalone/harddrake2:1 #, c-format msgid "Cpuid family" msgstr "Cpuid familija" #: ../../Xconfig/card.pm:1 #, c-format msgid "32 MB" msgstr "32 MB" #: ../../standalone/drakTermServ:1 #, c-format msgid "type: thin" msgstr "tip: tanki" #: ../../keyboard.pm:1 #, c-format msgid "Lithuanian AZERTY (new)" msgstr "Litvanska AZERTY (nova)" #: ../../standalone/harddrake2:1 #, c-format msgid "yes means the arithmetic coprocessor has an exception vector attached" msgstr "da znači da aritmetički koprocesor ima priključen exception vector" #: ../../fsedit.pm:1 #, c-format msgid "" "You've selected a software RAID partition as root (/).\n" "No bootloader is able to handle this without a /boot partition.\n" "Please be sure to add a /boot partition" msgstr "" "Izabrali ste softversku RAID particiju kao root (/).\n" "Nijedan bootloader nije u mogućnosti da rukuje sa ovim bez /boot particije.\n" "Molim kasnije dodajte /boot particiju" #: ../../any.pm:1 #, c-format msgid "Other OS (MacOS...)" msgstr "Ostali OSi (MacOS...)" #: ../../mouse.pm:1 #, c-format msgid "To activate the mouse," msgstr "Da aktivirate miša," #: ../../install_interactive.pm:1 #, c-format msgid "Bringing up the network" msgstr "Pokrećem mrežu" #: ../../common.pm:1 #, c-format msgid "Screenshots will be available after install in %s" msgstr "Snimanje ekrana će biti dostupno nakon što instalirate u %s" #: ../../help.pm:1 #, c-format msgid "" "More than one Microsoft partition has been detected on your hard drive.\n" "Please choose which one you want to resize in order to install your new\n" "Mandrake Linux operating system.\n" "\n" "Each partition is listed as follows: \"Linux name\", \"Windows name\"\n" "\"Capacity\".\n" "\n" "\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n" "\"partition number\" (for example, \"hda1\").\n" "\n" "\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n" "\"sd\" if it is a SCSI hard drive.\n" "\n" "\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n" "hard drives:\n" "\n" " * \"a\" means \"master hard drive on the primary IDE controller\";\n" "\n" " * \"b\" means \"slave hard drive on the primary IDE controller\";\n" "\n" " * \"c\" means \"master hard drive on the secondary IDE controller\";\n" "\n" " * \"d\" means \"slave hard drive on the secondary IDE controller\".\n" "\n" "With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n" "\"second lowest SCSI ID\", etc.\n" "\n" "\"Windows name\" is the letter of your hard drive under Windows (the first\n" "disk or partition is called \"C:\")." msgstr "" "Na vašem hard disku ustanovljeno je više od jedne Microsoft particije.\n" "Molim izaberite onu koju želite smanjiti kako biste instalirali vaš\n" "Mandrake Linux operativni sistem.\n" "\n" "Svaka particija je navedena ovako: \"Linux ime\", \"Windows ime\",\n" "\"Kapacitet\".\n" "\n" "\"Linux ime\" se sastoji od: \"vrste hard diska\", \"broja hard diska\",\n" "\"broja particije\" (na primjer, \"hda1\").\n" "\n" "\"Vrsta hard diska\" je \"hd\" ako je vaš hard disk IDE, a \"sd\" ako je\n" "u pitanju SCSI hard disk.\n" "\n" "\"Broj hard diska\" je uvijek slovo nakon \"hd\" ili \"sd\". Kod IDE hard\n" "diskova:\n" "\n" " * \"a\" znači \"master hard disk na primarnom IDE kontroleru\";\n" "\n" " * \"b\" znači \"slave hard disk na primarnom IDE kontroleru\";\n" "\n" " * \"c\" znači \"master hard disk na sekundarnom IDE kontroleru\";\n" "\n" " * \"d\" znači \"slave hard disk na sekundarnom IDE kontroleru\";\n" "\n" "Kod SCSI hard diskova, \"a\" je \"disk sa najnižim SCSI IDom\", \"b\"\n" "je \"drugi najniži SCSI ID\", itd.\n" "\n" "\"Windows ime\" je slovo kojim je vaš hard disk označen pod Windowsom\n" "(prva particija prvog diska se zove \"C:\")." #: ../../lang.pm:1 #, c-format msgid "Tanzania" msgstr "Tanzanija" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Computing FAT filesystem bounds" msgstr "Izračunavam granice FAT filesistema" #: ../../standalone/drakbackup:1 #, c-format msgid "" "\n" "Backup Sources: \n" msgstr "" "\n" "Izvori backup-a: \n" #: ../../standalone/drakbackup:1 #, c-format msgid "custom" msgstr "ručno izaberi" #: ../../standalone/logdrake:1 #, c-format msgid "Content of the file" msgstr "Sadržaj datoteke" #: ../../any.pm:1 #, c-format msgid "Authentication LDAP" msgstr "Autentikacijski LDAP" #: ../../install_steps_gtk.pm:1 #, c-format msgid "in order to keep %s" msgstr "" #: ../../harddrake/sound.pm:1 #, c-format msgid "Let me pick any driver" msgstr "Dozvoli da sam odaberem drajver" #: ../../standalone/net_monitor:1 #, c-format msgid "transmitted" msgstr "poslano" #: ../../lang.pm:1 #, c-format msgid "Palestine" msgstr "Palestina" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "RAID md%s\n" msgstr "RAID md%s\n" #: ../../modules/parameters.pm:1 #, c-format msgid "%d comma separated strings" msgstr "%d stringova razdvojenih zarezom" #: ../../network/netconnect.pm:1 #, c-format msgid " isdn" msgstr " ISDN" #: ../../install_steps_interactive.pm:1 #, c-format msgid "Here is the full list of keyboards available" msgstr "Ovdje je puna lista svih dostupnih tastatura" #: ../../standalone/draksplash:1 #, c-format msgid "Theme name" msgstr "Naziv teme" #: ../../standalone/harddrake2:1 ../../standalone/logdrake:1 #: ../../standalone/printerdrake:1 #, c-format msgid "/_Help" msgstr "/_Pomoć" #: ../../harddrake/sound.pm:1 #, c-format msgid "Choosing an arbitrary driver" msgstr "Slobodan izbor drajvera" #: ../../lang.pm:1 #, c-format msgid "Cook Islands" msgstr "Cook ostrva" #: ../../standalone/scannerdrake:1 #, c-format msgid "" "Here you can choose whether the scanners connected to this machine should be " "accessable by remote machines and by which remote machines." msgstr "" "Ovdje možete izabrati da li skeneri spojeni na ovaj računar trebaju biti " "dostupni udaljenim računarima i kojim računarima." #: ../../standalone/draksplash:1 #, c-format msgid "the width of the progress bar" msgstr "širina progresne trake" #: ../../fs.pm:1 #, c-format msgid "Formatting partition %s" msgstr "Formatiram particiju %s" #: ../../standalone/drakbackup:1 #, c-format msgid "Hostname required" msgstr "Potrebno ime računara" #: ../../standalone/drakfont:1 #, c-format msgid "Unselect fonts installed" msgstr "Isključi instalirane fontove" #: ../../mouse.pm:1 #, c-format msgid "Wheel" msgstr "Sa točkićem" #: ../../standalone/drakbug:1 #, c-format msgid "Submit kernel version" msgstr "Pošalji verziju kernela" #: ../../any.pm:1 ../../help.pm:1 ../../install_steps_gtk.pm:1 #: ../../install_steps_interactive.pm:1 ../../interactive.pm:1 #: ../../ugtk2.pm:1 ../../Xconfig/resolution_and_depth.pm:1 #: ../../diskdrake/smbnfs_gtk.pm:1 ../../interactive/gtk.pm:1 #: ../../interactive/http.pm:1 ../../interactive/newt.pm:1 #: ../../interactive/stdio.pm:1 ../../printer/printerdrake.pm:1 #: ../../standalone/drakautoinst:1 ../../standalone/drakbackup:1 #: ../../standalone/drakboot:1 ../../standalone/drakconnect:1 #: ../../standalone/drakfloppy:1 ../../standalone/drakfont:1 #: ../../standalone/drakperm:1 ../../standalone/draksec:1 #: ../../standalone/logdrake:1 ../../standalone/mousedrake:1 #: ../../standalone/net_monitor:1 #, c-format msgid "Cancel" msgstr "Odustani" #: ../../standalone/scannerdrake:1 #, c-format msgid "Searching for configured scanners ..." msgstr "Tražim podešene skenere ..." #: ../../harddrake/data.pm:1 #, c-format msgid "Videocard" msgstr "Video kartica" #: ../../standalone/drakbackup:1 #, c-format msgid "\tBackups use tar and bzip2\n" msgstr "\tBackupi koriste tar i bzip2\n" #: ../../standalone/drakbackup:1 ../../standalone/drakfont:1 #, c-format msgid "Remove Selected" msgstr "Ukloni izabrano" #: ../../standalone/harddrake2:1 #, c-format msgid "/Autodetect _modems" msgstr "/Automatski prepoznaj _modeme" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Remove printer" msgstr "Ukloni štampač" #: ../../standalone/drakbackup:1 #, c-format msgid "View Last Log" msgstr "Pogledaj zadnji log" #: ../../network/drakfirewall.pm:1 #, c-format msgid "Which services would you like to allow the Internet to connect to?" msgstr "Kojim servisima želite dozvoliti pristup sa Interneta?" #: ../../standalone/printerdrake:1 #, c-format msgid "Connection Type" msgstr "Vrsta konekcije" #: ../../standalone/logdrake:1 #, c-format msgid "" "Welcome to the mail configuration utility.\n" "\n" "Here, you'll be able to set up the alert system.\n" msgstr "" "Dobro došli u aplikaciju za podešavanje maila.\n" "\n" "Ovdje možete podesiti sistem obavještavanja.\n" #: ../../install_steps_gtk.pm:1 ../../mouse.pm:1 ../../services.pm:1 #: ../../diskdrake/hd_gtk.pm:1 ../../standalone/drakbackup:1 #: ../../standalone/drakperm:1 #, c-format msgid "Other" msgstr "Ostalo" #: ../../any.pm:1 ../../harddrake/v4l.pm:1 ../../standalone/drakfloppy:1 #, c-format msgid "Default" msgstr "Default" #: ../../install_steps_interactive.pm:1 #, c-format msgid "Button 2 Emulation" msgstr "Emulacija 2 dugmeta" #: ../../standalone/drakbug:1 #, c-format msgid "Please enter a package name." msgstr "Molim navedite ime paketa." #: ../../security/l10n.pm:1 #, c-format msgid "Run chkrootkit checks" msgstr "Izvrši chkrootkit provjere" #: ../../standalone/drakfont:1 #, c-format msgid "type1inst building" msgstr "type1inst kreiranje" #: ../../standalone/drakfont:1 #, c-format msgid "Abiword" msgstr "Abiword" #: ../../standalone/draksplash:1 #, c-format msgid "choose image file" msgstr "izaberite image datoteku" #: ../../Xconfig/card.pm:1 #, c-format msgid "X server" msgstr "X server" #: ../../any.pm:1 #, c-format msgid "Domain Admin User Name" msgstr "Korisničko ime domenskog administratora" #: ../../standalone/drakxtv:1 #, c-format msgid "There was an error while scanning for TV channels" msgstr "Došlo je do greške kod pretrage TV kanala" #: ../../keyboard.pm:1 #, c-format msgid "US keyboard (international)" msgstr "US tastatura (međunarodna)" #: ../../standalone/drakbug:1 #, c-format msgid "Not installed" msgstr "Nije instaliran" #: ../../keyboard.pm:1 #, c-format msgid "Both Alt keys simultaneously" msgstr "Obje Alt tipke istovremeno" #: ../../network/netconnect.pm:1 #, c-format msgid "LAN connection" msgstr "LAN konekcija" #: ../../standalone/logdrake:1 #, c-format msgid "/File/-" msgstr "/Datoteka/-" #: ../../keyboard.pm:1 #, c-format msgid "Italian" msgstr "Italijanska" #: ../../interactive.pm:1 #, c-format msgid "Basic" msgstr "Manje opcija" #: ../../install_messages.pm:1 #, c-format msgid "http://www.mandrakelinux.com/en/92errata.php3" msgstr "http://www.mandrakelinux.com/en/92errata.php3" #: ../../lang.pm:1 #, c-format msgid "Honduras" msgstr "Honduras" #: ../../help.pm:1 #, c-format msgid "pdq" msgstr "pdq" #: ../../network/tools.pm:1 ../../standalone/drakconnect:1 #, c-format msgid "Card IO" msgstr "IO kartice" #: ../../network/drakfirewall.pm:1 #, fuzzy, c-format msgid "Samba server" msgstr "Samba server" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "" "\n" "This special Bootstrap\n" "partition is for\n" "dual-booting your system.\n" msgstr "" "\n" "Ova posebna Bootstrap\n" "particija je za\n" "dvojni boot vašeg sistema.\n" #: ../../standalone/drakautoinst:1 #, c-format msgid "" "Please choose for each step whether it will replay like your install, or it " "will be manual" msgstr "" "Molim izaberite za svaki korak da li ćete ga ponoviti kao i u vašoj " "instalaciji ili će se obaviti ručno" #: ../../standalone/scannerdrake:1 #, c-format msgid "" "You can also decide here whether scanners on remote machines should be made " "available on this machine." msgstr "" "Ovdje takođe trebate odlučiti da li ovaj računar treba koristiti skenere na " "udaljenim računarima." #: ../../standalone/drakbackup:1 #, c-format msgid "\t-Network by FTP.\n" msgstr "\t-Mrežu preko FTPa.\n" #: ../../security/l10n.pm:1 #, c-format msgid "Reports check result to tty" msgstr "Prijavi rezultate provjere na tty" #: ../../printer/printerdrake.pm:1 #, c-format msgid "You must enter a device or file name!" msgstr "Morate unijeti naziv uređaja ili datoteke!" #: ../../standalone/harddrake2:1 ../../standalone/printerdrake:1 #, c-format msgid "/_Quit" msgstr "/_Izlaz" #: ../../Xconfig/various.pm:1 #, c-format msgid "Graphics memory: %s kB\n" msgstr "Grafička memorija: %s kB\n" #: ../../standalone.pm:1 #, c-format msgid "" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2, or (at your option)\n" "any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License\n" "along with this program; if not, write to the Free Software\n" "Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" msgstr "" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2, or (at your option)\n" "any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License\n" "along with this program; if not, write to the Free Software\n" "Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" #: ../../any.pm:1 #, c-format msgid "access to compilation tools" msgstr "pristup alatima za kompajliranje" #: ../../standalone/net_monitor:1 #, fuzzy, c-format msgid "Global statistics" msgstr "Statistika" #: ../../standalone/drakbackup:1 #, c-format msgid "Please select data to restore..." msgstr "Molim izaberite podatke za vraćanje..." #: ../../diskdrake/hd_gtk.pm:1 #, c-format msgid "" "If you plan to use aboot, be carefull to leave a free space (2048 sectors is " "enough)\n" "at the beginning of the disk" msgstr "" "Ako planirate koristiti aboot, budite pažljivi i ostavite slobodnog prostora " "(2048 sektora je dovoljno)\n" "na početku diska" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Standard test page" msgstr "Standardna testna strana" #: ../../standalone/drakclock:1 #, fuzzy, c-format msgid "Time Zone" msgstr "Vremenska zona" #: ../../diskdrake/hd_gtk.pm:1 ../../diskdrake/interactive.pm:1 #, c-format msgid "Create" msgstr "Kreiraj" #: ../../standalone/drakbackup:1 #, c-format msgid "What" msgstr "Šta" #: ../../install_steps_gtk.pm:1 ../../install_steps_interactive.pm:1 #, c-format msgid "There was an error ordering packages:" msgstr "Došlo je do greške pri naručivanju paketa:" #: ../../keyboard.pm:1 #, c-format msgid "Bulgarian (BDS)" msgstr "Bugarska (BDS)" #: ../../standalone/drakTermServ:1 #, c-format msgid "Disable Server" msgstr "Onemogući server" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Filesystem encryption key" msgstr "Ključ za kodiranje datotečnog sistema" #: ../../keyboard.pm:1 #, c-format msgid "Gujarati" msgstr "Gujarati" #: ../../standalone/drakTermServ:1 #, c-format msgid "" " While you can use a pool of IP addresses, rather than setup a " "specific entry for\n" " a client machine, using a fixed address scheme facilitates using the " "functionality\n" " of client-specific configuration files that ClusterNFS provides.\n" "\t\t\t\n" " Note: The '#type' entry is only used by drakTermServ. Clients can " "either be 'thin'\n" " or 'fat'. Thin clients run most software on the server via xdmcp, " "while fat clients run \n" " most software on the client machine. A special inittab, %s is\n" " written for thin clients. System config files xdm-config, kdmrc, and " "gdm.conf are \n" " modified if thin clients are used, to enable xdmcp. Since there are " "security issues in \n" " using xdmcp, hosts.deny and hosts.allow are modified to limit access " "to the local\n" " subnet.\n" "\t\t\t\n" " Note: The '#hdw_config' entry is also only used by drakTermServ. " "Clients can either \n" " be 'true' or 'false'. 'true' enables root login at the client " "machine and allows local \n" " hardware configuration of sound, mouse, and X, using the 'drak' " "tools. This is enabled \n" " by creating separate config files associated with the client's IP " "address and creating \n" " read/write mount points to allow the client to alter the file. Once " "you are satisfied \n" " with the configuration, you can remove root login privileges from " "the client.\n" "\t\t\t\n" " Note: You must stop/start the server after adding or changing " "clients." msgstr "" " While you can use a pool of IP addresses, rather than setup a " "specific entry for\n" " a client machine, using a fixed address scheme facilitates using the " "functionality\n" " of client-specific configuration files that ClusterNFS provides.\n" "\t\t\t\n" " Note: The '#type' entry is only used by drakTermServ. Clients can " "either be 'thin'\n" " or 'fat'. Thin clients run most software on the server via xdmcp, " "while fat clients run \n" " most software on the client machine. A special inittab, %s is\n" " written for thin clients. System config files xdm-config, kdmrc, and " "gdm.conf are \n" " modified if thin clients are used, to enable xdmcp. Since there are " "security issues in \n" " using xdmcp, hosts.deny and hosts.allow are modified to limit access " "to the local\n" " subnet.\n" "\t\t\t\n" " Note: The '#hdw_config' entry is also only used by drakTermServ. " "Clients can either \n" " be 'true' or 'false'. 'true' enables root login at the client " "machine and allows local \n" " hardware configuration of sound, mouse, and X, using the 'drak' " "tools. This is enabled \n" " by creating separate config files associated with the client's IP " "address and creating \n" " read/write mount points to allow the client to alter the file. Once " "you are satisfied \n" " with the configuration, you can remove root login privileges from " "the client.\n" "\t\t\t\n" " Note: You must stop/start the server after adding or changing " "clients." #: ../../interactive/stdio.pm:1 #, c-format msgid "" "Please choose the first number of the 10-range you wish to edit,\n" "or just hit Enter to proceed.\n" "Your choice? " msgstr "" "Molim unesite prvi broj od deset koji želite izmjeniti,\n" "ili samo pritisnite Enter za nastavak.\n" "Vaš izbor?" #: ../../standalone/drakTermServ:1 #, c-format msgid "" "\n" " Copyright (C) 2002 by MandrakeSoft \n" "\tStew Benedict sbenedict@mandrakesoft.com\n" "\n" msgstr "" "\n" " Copyright (C) 2002 by MandrakeSoft \n" "\tStew Benedict sbenedict@mandrakesoft.com\n" "\n" #: ../../standalone/draksplash:1 #, c-format msgid "Save theme" msgstr "Snimi temu" #: ../../lang.pm:1 #, c-format msgid "Brazil" msgstr "Brazil" #: ../../standalone/drakautoinst:1 #, c-format msgid "Auto Install" msgstr "Auto instalacija" #: ../../network/isdn.pm:1 ../../network/netconnect.pm:1 #, c-format msgid "Network Configuration Wizard" msgstr "Čarobnjak za podešavanje mreže" #: ../../help.pm:1 ../../diskdrake/interactive.pm:1 #, c-format msgid "Removable media automounting" msgstr "Automatsko montiranje izmjenjivog medija" #: ../../services.pm:1 #, c-format msgid "Printing" msgstr "Štampa" #: ../../standalone/drakbackup:1 #, c-format msgid "Enter the directory to save:" msgstr "Unesite direktorij za spasiti:" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "There are no printers found which are directly connected to your machine" msgstr "Nema štampača koji su direktno povezani na ovaj računar" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Create a new partition" msgstr "Napravi novu particiju" #: ../../harddrake/sound.pm:1 #, c-format msgid "Driver:" msgstr "Drajver:" #: ../../standalone/harddrake2:1 #, c-format msgid "unknown" msgstr "nepoznat" #: ../../install_interactive.pm:1 #, c-format msgid "Use fdisk" msgstr "Koristi fdisk" #: ../../mouse.pm:1 #, c-format msgid "MOVE YOUR WHEEL!" msgstr "POMJERITE VAŠ TOČKIĆ!" #: ../../standalone/net_monitor:1 #, c-format msgid "sent: " msgstr "poslano:" #: ../../network/network.pm:1 #, c-format msgid "Automatic IP" msgstr "Automatska IP" #: ../../help.pm:1 #, c-format msgid "" "There you are. Installation is now complete and your GNU/Linux system is\n" "ready to use. Just click \"%s\" to reboot the system. The first thing you\n" "should see after your computer has finished doing its hardware tests is the\n" "bootloader menu, giving you the choice of which operating system to start.\n" "\n" "The \"%s\" button shows two more buttons to:\n" "\n" " * \"%s\": to create an installation floppy disk that will automatically\n" "perform a whole installation without the help of an operator, similar to\n" "the installation you just configured.\n" "\n" " Note that two different options are available after clicking the button:\n" "\n" " * \"%s\". This is a partially automated installation. The partitioning\n" "step is the only interactive procedure.\n" "\n" " * \"%s\". Fully automated installation: the hard disk is completely\n" "rewritten, all data is lost.\n" "\n" " This feature is very handy when installing a number of similar machines.\n" "See the Auto install section on our web site for more information.\n" "\n" " * \"%s\"(*): saves a list of the packages selected in this installation.\n" "To use this selection with another installation, insert the floppy and\n" "start the installation. At the prompt, press the [F1] key and type >>linux\n" "defcfg=\"floppy\" <<.\n" "\n" "(*) You need a FAT-formatted floppy (to create one under GNU/Linux, type\n" "\"mformat a:\")" msgstr "" "To je to. Instalacija je sada završena i vaš GNU/Linux sistem je spreman\n" "za upotrebu. Samo kliknite na \"%s\" da restartujete sistem. Prva stvar\n" "koju ćete ugledati nakon što računar završi hardverske provjere je meni\n" "bootloadera, koji vam nudi izbor operativnog sistema koji želite pokrenuti.\n" "\n" "Dugme \"%s\" će vam ponuditi još dva dugmeta za:\n" "\n" " * \"%s\": da biste napravili instalacionu\n" "disketu koja će automatski izvršiti cijelu instalaciju bez intervencije\n" "operatora, sličnu instalaciji koju ste upravo konfigurisali.\n" "\n" " Obratite pažnju na dvije različite opcije koje su dostupne nakon\n" "klikanja na ovo dugme:\n" "\n" " * \"%s\". Ovo je djelomično automatizirana instalacija. Korak\n" "particioniranja je jedini interaktivni dio.\n" "\n" " * \"%s\". Potpuno automatska instalacija: hard disk je\n" "potpuno prepisan, svi podaci su izgubljeni.\n" "\n" " Ova mogućnost je vrlo prikladna kada instalirate nekoliko sličnih\n" "računara. Pogledajte odjeljak Automatska instalacija na našoj web stranici\n" "za više informacija.\n" "\n" " * \"%s\" (*): snima listu paketa koje ste izabrali u ovoj\n" "instalaciji. Da biste upotrijebili ovaj izbor sa drugom instalacijom,\n" "ubacite disketu i započnite instalaciju. Na upitu, pritisnite tipku [F1]\n" "i ukucajte >>linux defcfg=\"floppy\" <<.\n" "\n" "(*) Potrebna vam je FAT-formatirana disketa (da biste je napravili pod\n" "GNU/Linuxom, kucajte \"mformat a:\")" #: ../../lang.pm:1 #, c-format msgid "Moldova" msgstr "Moldova" #: ../../mouse.pm:1 #, c-format msgid "Kensington Thinking Mouse" msgstr "Kensington Thinking Mouse" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Configuration of a remote printer" msgstr "Podešavanje udaljenog štampača" #: ../advertising/13-mdkexpert_corporate.pl:1 #, c-format msgid "An online platform to respond to enterprise support needs." msgstr "Online platforma koja odgovara potrebama vašeg preduzeća za podrškom." #: ../../network/network.pm:1 #, c-format msgid "URL should begin with 'ftp:' or 'http:'" msgstr "URL treba počinjati sa 'ftp:' ili 'http:'" #: ../../keyboard.pm:1 #, c-format msgid "Oriya" msgstr "Oriya" #: ../../standalone/drakperm:1 #, c-format msgid "Add a new rule at the end" msgstr "Dodaj novo pravilo na kraj" #: ../../standalone/drakboot:1 #, c-format msgid "LiLo and Bootsplash themes installation successful" msgstr "Uspješna instalacija LiLo i Boot tema" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "You can also decide here whether printers on remote machines should be " "automatically made available on this machine." msgstr "" "Takođe možete odlučiti da li štampači na udaljenim računarima trebaju biti " "automatski dostupni sa ovog računara." #: ../../modules/interactive.pm:1 #, c-format msgid "" "You may now provide options to module %s.\n" "Options are in format ``name=value name2=value2 ...''.\n" "For instance, ``io=0x300 irq=7''" msgstr "" "Sada možete navesti opcije za modul %s. Opcije su u formatu ``ime=vrijednost " "ime2=vrijednost2 ...''.\n" "Na primjer, ``io=0x300 irq=7''" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Quit without writing the partition table?" msgstr "Izlazite bez pisanja tabele particija?" #: ../../mouse.pm:1 #, c-format msgid "Genius NetScroll" msgstr "Genius NetScroll" #: ../../standalone/drakbackup:1 #, c-format msgid "On Hard Drive" msgstr "na hard disk" #: ../../standalone.pm:1 #, c-format msgid "Installing packages..." msgstr "Instaliram pakete..." #: ../../keyboard.pm:1 #, c-format msgid "Dutch" msgstr "Holandska" #: ../../lang.pm:1 #, c-format msgid "Angola" msgstr "Angola" #: ../../standalone/drakbackup:1 #, c-format msgid "The following packages need to be installed:\n" msgstr "Sljedeći paketi trebaju biti instalirani:\n" #: ../../standalone/logdrake:1 #, c-format msgid "service setting" msgstr "postavke servisa" #: ../../any.pm:1 ../../Xconfig/main.pm:1 ../../Xconfig/monitor.pm:1 #, c-format msgid "Custom" msgstr "Izaberi korisnike" #: ../../lang.pm:1 #, c-format msgid "Latvia" msgstr "Latvija" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "File is already used by another loopback, choose another one" msgstr "Datoteku već koristi drugi loopback, izaberite neku drugu" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Read-only" msgstr "Samo za čitanje" #: ../../security/help.pm:1 #, c-format msgid "" "Enable/Disable name resolution spoofing protection. If\n" "\"alert\" is true, also reports to syslog." msgstr "" "Uključi/isključi zaštitu od lažiranja rezolviranja imena. Ako\n" "je aktivna opcija \"alert\", takođe prijavljuje u syslog." #: ../../harddrake/sound.pm:1 #, c-format msgid "No known driver" msgstr "Nema nijedan poznat drajver" #: ../../Xconfig/card.pm:1 #, c-format msgid "1 MB" msgstr "1 MB" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "If it is not the one you want to configure, enter a device name/file name in " "the input line" msgstr "" "Ako to nije onaj koji želite podesiti, uneiste naziv uređaja / naziv " "datoteke u ulaznu liniju" #: ../../standalone/draksound:1 #, c-format msgid "" "No Sound Card has been detected on your machine. Please verify that a Linux-" "supported Sound Card is correctly plugged in.\n" "\n" "\n" "You can visit our hardware database at:\n" "\n" "\n" "http://www.linux-mandrake.com/en/hardware.php3" msgstr "" "Nije pronađena nijedna zvučna kartica na vašoj mašini. Molim provjerite da " "li je ispravno spojena zvučna kartica koja je podržana pod Linuxom.\n" "\n" "\n" "Možete posjetiti našu bazu hardvera na:\n" "\n" "\n" "http://www.linux-mandrake.com/en/hardware.php3" #: ../../standalone/drakconnect:1 #, c-format msgid "Configure Local Area Network..." msgstr "Podesi Lokalnu mrežu..." #: ../../../move/move.pm:1 #, c-format msgid "" "The USB key seems to have write protection enabled. Please\n" "unplug it, remove write protection, and then plug it again." msgstr "" #: ../../services.pm:1 #, c-format msgid "Launch the sound system on your machine" msgstr "Pokreće zvučni sistem na vašem računaru" #: ../../security/l10n.pm:1 #, c-format msgid "Verify checksum of the suid/sgid files" msgstr "Provjeri checksum suid/sgid datoteka" #: ../../security/l10n.pm:1 #, c-format msgid "Run some checks against the rpm database" msgstr "Izvrši neke provjere rpm baze podataka" #: ../../standalone/drakperm:1 #, c-format msgid "Execute" msgstr "Izvrši" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Preparing printer database..." msgstr "Pripremam bazu podataka o štampačima..." #: ../../standalone/harddrake2:1 #, c-format msgid "Information" msgstr "Informacije" #: ../../network/drakfirewall.pm:1 #, c-format msgid "No network card" msgstr "Nema mrežne kartice" #: ../../mouse.pm:1 #, c-format msgid "3 buttons" msgstr "3 dugmeta" #: ../../diskdrake/interactive.pm:1 ../../diskdrake/removable.pm:1 #, c-format msgid "Which filesystem do you want?" msgstr "Koji datotečni sistem želite?" #: ../../lang.pm:1 #, c-format msgid "Malta" msgstr "Malta" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Detailed information" msgstr "Detaljne informacije" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "Printer default settings\n" "\n" "You should make sure that the page size and the ink type/printing mode (if " "available) and also the hardware configuration of laser printers (memory, " "duplex unit, extra trays) are set correctly. Note that with a very high " "printout quality/resolution printing can get substantially slower." msgstr "" "Podrazumjevane opcije štampača\n" "\n" "Trebate provjeriti da su veličina papira i tip tinte (ako je dostupno) " "ispravno podešeni. Obratite pažnju da za voma veliku kvalitetu / rezoluciju " "štampa može postati znatno sporija." #: ../../install_any.pm:1 #, c-format msgid "This floppy is not FAT formatted" msgstr "Ova disketa nije FAT formatirana" #: ../../network/ethernet.pm:1 ../../network/network.pm:1 #, c-format msgid "Configuring network" msgstr "Podešavam mrežu" #: ../../standalone/drakbackup:1 #, c-format msgid "" "This option will save files that have changed. Exact behavior depends on " "whether incremental or differential mode is used." msgstr "" "Ova opcija će zapisati datoteke koje su promijenjene. Tačno ponašanje ovisi " "o tome da li je izabran inkrementalni ili diferencijalni režim." #: ../../Xconfig/main.pm:1 #, c-format msgid "Graphic Card" msgstr "Grafička karta" #: ../../install_interactive.pm:1 #, c-format msgid "Resizing Windows partition" msgstr "Smanjujem Windows particiju" #: ../../lang.pm:1 #, c-format msgid "Cameroon" msgstr "Kamerun" #: ../../network/tools.pm:1 ../../standalone/drakconnect:1 #, c-format msgid "Provider dns 1 (optional)" msgstr "Provider dns 1 (opcionalno)" #: ../../install_interactive.pm:1 #, c-format msgid "" "You can now partition %s.\n" "When you are done, don't forget to save using `w'" msgstr "" "Sada možete particionirati %s.\n" "Kada završite, ne zaboravite spasiti sa `w'" #: ../../keyboard.pm:1 #, c-format msgid "Saami (swedish/finnish)" msgstr "Saami (švedski/finski)" #: ../../printer/printerdrake.pm:1 ../../standalone/drakTermServ:1 #: ../../standalone/drakbackup:1 ../../standalone/drakbug:1 #: ../../standalone/drakfont:1 ../../standalone/net_monitor:1 #: ../../standalone/printerdrake:1 #, c-format msgid "Close" msgstr "Zatvori" #: ../../help.pm:1 #, c-format msgid "" "\"%s\": check the current country selection. If you are not in this\n" "country, click on the \"%s\" button and choose another one. If your country\n" "is not in the first list shown, click the \"%s\" button to get the complete\n" "country list." msgstr "" "\"%s\": provjerite trenutni izbor države. Ako se ne nalazite ovdje,\n" "kliknite na dugme \"%s\" i izaberite neku drugu državu. Ako se vaša\n" "zemlja ne nalazi na listi, kliknite na dugme \"%s\" kako biste dobili\n" "listu svih država." #: ../../standalone/logdrake:1 #, c-format msgid "Calendar" msgstr "Kalendar" #: ../../standalone/drakbackup:1 #, c-format msgid "" "Restore Selected\n" "Catalog Entry" msgstr "" "Vrati izabrane\n" "stavke katologa" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "To use a remote lpd printer, you need to supply the hostname of the printer " "server and the printer name on that server." msgstr "" "Da biste koristili udaljeni lpd štampač, morate dati ime računara za printer " "server i ime štampača na tom serveru." #: ../../lang.pm:1 #, c-format msgid "Iceland" msgstr "Island" #: ../../standalone/drakconnect:1 #, c-format msgid "Network & Internet Configuration" msgstr "Podešavanje mreže i Interneta" #: ../../common.pm:1 #, c-format msgid "consolehelper missing" msgstr "nedostaje consolehelper" #: ../../services.pm:1 #, c-format msgid "stopped" msgstr "zaustavljen" #: ../../standalone/harddrake2:1 #, c-format msgid "Whether the FPU has an irq vector" msgstr "Da li FPU ima IRQ vektor" #: ../../diskdrake/hd_gtk.pm:1 #, c-format msgid "Ext2" msgstr "Ext2" #: ../../ugtk2.pm:1 #, c-format msgid "Expand Tree" msgstr "Proširi stablo" #: ../../harddrake/sound.pm:1 #, c-format msgid "" "The old \"%s\" driver is blacklisted.\n" "\n" "It has been reported to oops the kernel on unloading.\n" "\n" "The new \"%s\" driver'll only be used on next bootstrap." msgstr "" "Stari \"%s\" drajver je na crnoj listi.\n" "\n" "Prijavljeno je da ovaj drajver prilikom deinstalacije izaziva oops kernela.\n" "\n" "Stoga će novi drajver \"%s\" biti korišten tek nakon idućeg pokretanja " "sistema." #: ../../network/netconnect.pm:1 ../../printer/printerdrake.pm:1 #, c-format msgid "Expert Mode" msgstr "Ekspertni mod" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Printer options" msgstr "Opcije štampača" #: ../../standalone/drakgw:1 #, c-format msgid "Local Network adress" msgstr "Lokalna mrežna adresa" #: ../../standalone/drakbackup:1 #, c-format msgid "Backup your System files. (/etc directory)" msgstr "Backup sistemskih datoteka. (/etc direktorij)" #: ../../security/help.pm:1 #, c-format msgid "Set the user umask." msgstr "Podešava korisnički umask." #: ../../install_steps_interactive.pm:1 #, c-format msgid "" "You now have the opportunity to download updated packages. These packages\n" "have been updated after the distribution was released. They may\n" "contain security or bug fixes.\n" "\n" "To download these packages, you will need to have a working Internet \n" "connection.\n" "\n" "Do you want to install the updates ?" msgstr "" "Sada imate mogućnost da dobavite sa Interneta nove verzije paketa koji\n" "su izašli nakon što je distribucija objavljena. Među njima su sigurnosne " "zakrpe\n" "i ispravke bugova.\n" "\n" "Da biste izvršili download, potrebno je da podesite Internet konekciju.\n" "\n" "Da li želite instalirati update-ovane pakete ?" #: ../../standalone/logdrake:1 #, c-format msgid "Samba Server" msgstr "Samba server" #: ../../standalone/drakxtv:1 #, c-format msgid "Australian Optus cable TV" msgstr "Australijska Optus kablovska TV" #: ../../install_steps_newt.pm:1 #, c-format msgid "" " / between elements | selects | next screen " msgstr "" " / između elemenata | vrši izbor | idući ekran " #: ../../standalone/drakTermServ:1 #, c-format msgid "Subnet:" msgstr "Subnet:" #: ../../lang.pm:1 #, c-format msgid "Zimbabwe" msgstr "Zimbabve" #: ../../standalone/drakbackup:1 #, c-format msgid "When" msgstr "Kada" #: ../../network/adsl.pm:1 #, c-format msgid "" "You need the Alcatel microcode.\n" "Download it at:\n" "%s\n" "and copy the mgmt.o in /usr/share/speedtouch" msgstr "" "Potreban vam je Alcatel-ov mikrokod.\n" "Možete ga downloadovati na\n" "%s\n" "zatim kopirajte mgmt.o u /usr/share/speedtouch" #: ../../standalone/drakbackup:1 #, c-format msgid "Hour" msgstr "Sat" #: ../../network/modem.pm:1 ../../standalone/drakconnect:1 #, c-format msgid "Second DNS Server (optional)" msgstr "Drugi DNS server (opcionalno)" #: ../../lang.pm:1 #, c-format msgid "Finland" msgstr "Finska" #: ../../Xconfig/various.pm:1 #, c-format msgid "Color depth: %s\n" msgstr "Broj boja: %s\n" #: ../../install_steps_gtk.pm:1 #, c-format msgid "You can't unselect this package. It must be upgraded" msgstr "Ne možete isključiti ovaj paket. On mora biti unaprijeđen" #: ../../install_steps_interactive.pm:1 #, c-format msgid "Loading from floppy" msgstr "Učitavam sa diskete" #: ../../standalone/drakclock:1 #, c-format msgid "Timezone - DrakClock" msgstr "" #: ../../security/help.pm:1 #, c-format msgid "Enable/Disable the logging of IPv4 strange packets." msgstr "Uključi/isključi logiranje čudnih IPv4 paketa." #: ../../lang.pm:1 #, c-format msgid "Slovenia" msgstr "Slovenija" #: ../../standalone/mousedrake:1 #, c-format msgid "Mouse test" msgstr "Testiranje miša" #: ../../standalone/drakperm:1 #, c-format msgid "" "Drakperm is used to see files to use in order to fix permissions, owners, " "and groups via msec.\n" "You can also edit your own rules which will owerwrite the default rules." msgstr "" "Drakperm se koristi da pregledate datoteke koje se koriste radi promjene " "privilegija, vlasnika i grupa putem msec-a.\n" "Možete također stvoriti vaša vlastita pravila koja će prepisati ranije " "podešena pravila." #: ../../any.pm:1 #, c-format msgid "" "Enter a user\n" "%s" msgstr "" "Unesite korisnika\n" "%s" #: ../../standalone/harddrake2:1 #, c-format msgid "" "- PCI and USB devices: this lists the vendor, device, subvendor and " "subdevice PCI/USB ids" msgstr "" "- PCI i USB uređaji: ovo će izlistati PCI/USB id-ove za; vendor, device, " "subvendor i subdevice" #: ../../standalone/draksplash:1 #, c-format msgid "ProgressBar color selection" msgstr "Izbor boje trake napretka" #: ../../any.pm:1 #, c-format msgid "" "Here are the entries on your boot menu so far.\n" "You can create additional entries or change the existing ones." msgstr "" "Ovo su trenutne opcije u vašem boot meniju.\n" "Možete dodati nove ili promijeniti postojeće." #: ../../help.pm:1 #, c-format msgid "/dev/hda" msgstr "/dev/hda" #: ../../help.pm:1 #, c-format msgid "/dev/hdb" msgstr "/dev/hdb" #: ../../standalone/drakbug:1 #, c-format msgid "" "Application Name\n" "or Full Path:" msgstr "" "Ime aplikacije\n" "ili puni put:" #: ../../services.pm:1 #, c-format msgid "" "Runs commands scheduled by the at command at the time specified when\n" "at was run, and runs batch commands when the load average is low enough." msgstr "" "Izvršava naredbe zakazane putem at komande u zadato vrijeme,\n" "te pokreće programe u pozadini kada je računar neopterećen." #: ../../harddrake/v4l.pm:1 #, c-format msgid "Radio support:" msgstr "Podrška za radio:" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Installing SANE packages..." msgstr "Instaliram SANE pakete..." #: ../../any.pm:1 #, c-format msgid "LDAP" msgstr "LDAP" #: ../../bootloader.pm:1 #, c-format msgid "SILO" msgstr "SILO" #: ../../diskdrake/removable.pm:1 #, c-format msgid "Change type" msgstr "Promijeni tip" #: ../../printer/main.pm:1 ../../printer/printerdrake.pm:1 #, c-format msgid ", USB printer #%s" msgstr ", USB štampač #%s" #: ../../any.pm:1 #, c-format msgid "SILO Installation" msgstr "SILO instalacija" #: ../../install_messages.pm:1 #, c-format msgid "" "Congratulations, installation is complete.\n" "Remove the boot media and press return to reboot.\n" "\n" "\n" "For information on fixes which are available for this release of Mandrake " "Linux,\n" "consult the Errata available from:\n" "\n" "\n" "%s\n" "\n" "\n" "Information on configuring your system is available in the post\n" "install chapter of the Official Mandrake Linux User's Guide." msgstr "" "Čestitamo, instalacija je završena.\n" "Uklonite boot medij i pritisnite Enter da restartujete računar.\n" "\n" "\n" "Za informacije o ispravkama koje su dostupne za ovu verziju Mandrake " "Linuxa,\n" "pogledajte Errata koja je dostupna na:\n" "\n" "\n" "%s\n" "\n" "\n" "Informacije o podešavanju vašeg sistema su dostupne u poglavlju\n" "\"Nakon instalacije\" vašeg zvaničnog Mandrake Linux Priručnika za upotrebu." #: ../../standalone/drakclock:1 #, fuzzy, c-format msgid "Enable Network Time Protocol" msgstr "Restore putem mrežnog protokola: %s" #: ../../printer/printerdrake.pm:1 #, c-format msgid "paranoid" msgstr "paranoičan" #: ../../security/l10n.pm:1 #, c-format msgid "Do not send mails when unneeded" msgstr "Ne šalji mailove kada nije potrebno" #: ../../standalone/scannerdrake:1 #, c-format msgid "Your scanner(s) will not be available on the network." msgstr "Vaši skeneri neće biti dostupni putem mreže." #: ../../standalone/drakbackup:1 #, c-format msgid "Send mail report after each backup to:" msgstr "Pošalji mail izvještaj nakon svakog backupa na :" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "This command you can also use in the \"Printing command\" field of the " "printing dialogs of many applications. But here do not supply the file name " "because the file to print is provided by the application.\n" msgstr "" "Ovu komandu također možete koristiti u polju \"Komanda za štampu\" u " "dijalozima za štampu mnogih aplikacija. Ovdje nije potrebno navesti naziv " "datoteke jer tudatoteku obezbjeđuje sama aplikacija.\n" #: ../../Xconfig/main.pm:1 ../../Xconfig/resolution_and_depth.pm:1 #, c-format msgid "Resolution" msgstr "Rezolucija" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "To print to a SMB printer, you need to provide the SMB host name (Note! It " "may be different from its TCP/IP hostname!) and possibly the IP address of " "the print server, as well as the share name for the printer you wish to " "access and any applicable user name, password, and workgroup information." msgstr "" "Da biste štampali na SMB štampač, morate dati ime SMB računara (Pažnja! Ono " "može biti različito od TCP/IP imena!) i eventualno IP adresu print servera, " "kao i share naziv štampača kojem želite pristupiti i korisničko ime, šifru i " "informacije o radnoj grupi." #: ../../security/help.pm:1 #, c-format msgid "" " Enabling su only from members of the wheel group or allow su from any user." msgstr "" " Omogući su samo članovima wheel grupe ili dozvoli su svakom korisniku." #: ../../standalone/drakgw:1 #, c-format msgid "reconfigure" msgstr "rekonfiguriši" #: ../../Xconfig/card.pm:1 #, c-format msgid "" "Your card can have 3D hardware acceleration support with XFree %s,\n" "NOTE THIS IS EXPERIMENTAL SUPPORT AND MAY FREEZE YOUR COMPUTER." msgstr "" "Vaša kartica može imati podršku za 3D hardversko ubrzanje sa XFree %s,\n" "PAŽNJA OVO JE EKSPERIMENTALNA PODRŠKA I MOŽE ZALEDITI VAŠ RAČUNAR." #: ../../security/l10n.pm:1 #, c-format msgid "Shell timeout" msgstr "Istek vremena shella" #: ../../standalone/logdrake:1 #, c-format msgid "Xinetd Service" msgstr "Xinetd servis" #: ../../any.pm:1 #, c-format msgid "access to network tools" msgstr "pristup mrežnim alatima" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Firmware-Upload for HP LaserJet 1000" msgstr "Upload firmware-a za HP LaserJet 1000" #: ../advertising/03-software.pl:1 #, c-format msgid "" "And, of course, push multimedia to its limits with the very latest software " "to play videos, audio files and to handle your images or photos." msgstr "" "I naravno da potjerate vaš multimedijalni računar do krajnjih granica! " "Koristite najnoviji softver za slušanje muzike i audio datoteka, mijenjajte " "i organizujte vaše slike i fotografije." #: ../../printer/printerdrake.pm:1 #, c-format msgid "Here is a list of all auto-detected printers. " msgstr "Ovdje je lista svih automatski prepoznatih štampača." #: ../../install_steps_interactive.pm:1 #, c-format msgid "" "Error installing aboot, \n" "try to force installation even if that destroys the first partition?" msgstr "" "Greška u instaliranju aboota, \n" "da li da pokušam nasilnu instalaciju čak i ako to uništi prvu particiju?" #: ../../standalone/drakbackup:1 #, c-format msgid "" "Restore Selected\n" "Files" msgstr "" "Vrati izabrane\n" "datoteke" #: ../../standalone/drakbackup:1 #, c-format msgid "" "%s exists, delete?\n" "\n" "Warning: If you've already done this process you'll probably\n" " need to purge the entry from authorized_keys on the server." msgstr "" "%s već postoji, da ga obrišem?\n" "\n" "Upozorenje: Ako ste već jednom obavili ovaj proces, vjerovatno\n" "trebate očistiti unos iz liste autoriziranih ključeva na serveru." #: ../../network/tools.pm:1 #, c-format msgid "Please fill or check the field below" msgstr "Molim ispunite ili provjerite polje ispod" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Do you want to save /etc/fstab modifications" msgstr "Želite li spasiti izmjene u /etc/fstab ?" #: ../../standalone/drakconnect:1 #, c-format msgid "Boot Protocol" msgstr "Boot protokol" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "LVM-disks %s\n" msgstr "LVM-diskovi %s\n" #: ../../services.pm:1 #, c-format msgid "On boot" msgstr "Prilikom boota" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "The package %s is needed. Install it?" msgstr "Potreban je paket %s. Da li ga želite instalirati?" #: ../../standalone/harddrake2:1 #, c-format msgid "Bus identification" msgstr "Identifikacija sabirnice (busa)" #: ../../lang.pm:1 #, c-format msgid "Vatican" msgstr "Vatikan" #: ../../diskdrake/hd_gtk.pm:1 #, c-format msgid "Please make a backup of your data first" msgstr "Predlažemo da najprije napravite backup vaših podataka" #: ../../harddrake/data.pm:1 #, c-format msgid "ADSL adapters" msgstr "" #: ../../install_interactive.pm:1 #, c-format msgid "You have more than one hard drive, which one do you install linux on?" msgstr "" "Imate više od jednog hard diska. Na koji od njih želite instalirati Linux?" #: ../../lang.pm:1 #, c-format msgid "Eritrea" msgstr "Eritreja" #: ../../standalone/drakTermServ:1 #, c-format msgid "Boot ISO" msgstr "Boot ISO" #: ../../network/adsl.pm:1 #, c-format msgid "Firmware needed" msgstr "Potreban je firmware" #: ../../standalone/drakfont:1 #, c-format msgid "Remove List" msgstr "Pobriši listu" #: ../advertising/05-desktop.pl:1 #, c-format msgid "A customizable environment" msgstr "Prilagodljiva okolina" #: ../../keyboard.pm:1 #, c-format msgid "Inuktitut" msgstr "Inuktitut" #: ../../standalone/drakbackup:1 #, c-format msgid "" "Some protocols, like rsync, may be configured at the server end. Rather " "than using a directory path, you would use the 'module' name for the service " "path." msgstr "" "Neki protokoli, kao što je rsync, se mogu podesiti na serverskom kraju. " "Umjesto korištenja puta direktorija, možete koristiti ime 'modula' za put " "servisa." #: ../../lang.pm:1 #, c-format msgid "Morocco" msgstr "Maroko" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Which printer model do you have?" msgstr "Koji model štampača imate?" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Add a new printer" msgstr "Dodaj novi štampač" #: ../../standalone/drakbackup:1 #, c-format msgid " All of your selected data have been " msgstr " Svi vaši izabrani podaci su " #: ../../lang.pm:1 #, c-format msgid "Nepal" msgstr "Nepal" #: ../../standalone/drakTermServ:1 #, c-format msgid "<-- Delete" msgstr "<-- Obriši" #: ../../harddrake/data.pm:1 #, c-format msgid "cpu # " msgstr "cpu # " #: ../../diskdrake/interactive.pm:1 #, c-format msgid "chunk size" msgstr "veličina chunka" #: ../../security/help.pm:1 #, c-format msgid "" "If set to \"ALL\", /etc/issue and /etc/issue.net are allowed to exist.\n" "\n" "If set to NONE, no issues are allowed.\n" "\n" "Else only /etc/issue is allowed." msgstr "" "Ako je postavljeno \"SVE\", dozvoljeno je postojanje /etc/issue i /etc/issue." "net.\n" "\n" "Ako je postavljeno na NIŠTA, datoteke nisu dozvoljene.\n" "\n" "Inače, dozvoljen je samo /etc/issue." #: ../../security/help.pm:1 #, c-format msgid " Enable/Disable sulogin(8) in single user level." msgstr " Uključi/isključi sulogin(8) na jednokorisničkom nivou." #. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit) #. -PO: and keep them smaller than 79 chars long #: ../../bootloader.pm:1 #, c-format msgid "commands before booting, or 'c' for a command-line." msgstr "opcija prije bootanja, ili 'c' za komandnu liniju." #: ../../standalone/drakgw:1 ../../standalone/drakpxe:1 #, c-format msgid "Problems installing package %s" msgstr "Problemi tokom instaliranja paketa %s" #: ../../standalone/logdrake:1 #, c-format msgid "You will receive an alert if the load is higher than this value" msgstr "" "Primićete upozorenje ako je opterećenje (system load) veće od ove vrijednosti" #: ../../standalone/scannerdrake:1 #, c-format msgid "Add a scanner manually" msgstr "Ručno dodaj skener" #: ../../standalone/printerdrake:1 #, c-format msgid "Refresh" msgstr "Osvježi" #: ../../help.pm:1 ../../diskdrake/interactive.pm:1 #, c-format msgid "Reload partition table" msgstr "Ponovo učitaj tabelu particija" #: ../../standalone/drakboot:1 #, c-format msgid "Yes, I want autologin with this (user, desktop)" msgstr "" "Da, želim da se automatski prijavim sa ovim vrijednostima (korisnik, desktop)" #: ../../standalone/drakbackup:1 #, c-format msgid "Restore Selected" msgstr "Vrati izabrano" #: ../../standalone/drakfont:1 #, c-format msgid "Search for fonts in installed list" msgstr "Pretraži fontove na listi instaliranih" #: ../../standalone/drakgw:1 #, c-format msgid "The Local Network did not finish with `.0', bailing out." msgstr "Lokalna mreža se ne završava sa `.0', izlazim." #: ../../install_steps_interactive.pm:1 #, c-format msgid "Boot" msgstr "Boot" #: ../../standalone/drakbackup:1 #, c-format msgid " and the CD is in the drive" msgstr " a CD je u pogonskoj jedinici" #: ../../harddrake/v4l.pm:1 #, c-format msgid "Tuner type:" msgstr "Vrsta tunera:" #: ../../help.pm:1 #, c-format msgid "" "Now, it's time to select a printing system for your computer. Other OSs may\n" "offer you one, but Mandrake Linux offers two. Each of the printing system\n" "is best suited to particular types of configuration.\n" "\n" " * \"%s\" -- which is an acronym for ``print, don't queue'', is the choice\n" "if you have a direct connection to your printer, you want to be able to\n" "panic out of printer jams, and you do not have networked printers. (\"%s\"\n" "will handle only very simple network cases and is somewhat slow when used\n" "with networks.) It's recommended that you use \"pdq\" if this is your first\n" "experience with GNU/Linux.\n" "\n" " * \"%s\" - `` Common Unix Printing System'', is an excellent choice for\n" "printing to your local printer or to one halfway around the planet. It is\n" "simple to configure and can act as a server or a client for the ancient\n" "\"lpd \" printing system, so it compatible with older operating systems\n" "which may still need print services. While quite powerful, the basic setup\n" "is almost as easy as \"pdq\". If you need to emulate a \"lpd\" server, make\n" "sure you turn on the \"cups-lpd \" daemon. \"%s\" includes graphical\n" "front-ends for printing or choosing printer options and for managing the\n" "printer.\n" "\n" "If you make a choice now, and later find that you don't like your printing\n" "system you may change it by running PrinterDrake from the Mandrake Control\n" "Center and clicking the expert button." msgstr "" "Sada je vrijeme da izaberete sistem štampe za vaš računar. Drugi OSi\n" "vam možda nude jedan, ali Mandrake Linux nudi dva. Svaki od ovih sistema\n" "je najbolji za određenu vrstu konfiguracije.\n" "\n" "* \"%s\" -- skraćeno za ''štampaj i nemoj stavljati u red'' (print, don't\n" "queue) je najbolji izbor ako imate direktnu vezu na štampač, želite izlaz\n" "za paniku u slučajevima zaglavljivanja papira i nemate mrežne štampače.\n" "(\"%s\" može riješiti samo vrlo jednostavne mrežne slučajeve i pomalo je\n" "spor kada se koristi sa mrežama.) Preporučujemo da koristite \"pdq\" ako\n" "je ovo vaše prvo iskustvo sa GNU/Linuxom.\n" "\n" "* \"%s\" - ''Common Unix Printing System'' (uobičajeni UNIX sistem štampe)\n" "je odličan izbor za štampanje na štampač koji se nalazi lokalno ili s druge\n" "strane planete. Vrlo ga je jednostavno podesiti i može služiti kao server " "ili\n" "klijent za prastari \"lpd\" sistem štampe, tako da je kompatibilan sa " "starijim\n" "operativnim sistemima kojima možda još trebaju usluge štampanja. Mada je\n" "vrlo moćan, osnovno podešavanje je skoro jednako lagano kao za \"pdq\".\n" "Ako želite simulirati \"lpd\" server, provjerite da li ste pokrenuli \"cups-" "lpd\"\n" "servis. \"%s\" uključuje grafičke alate za štampanje ili izbor opcija " "štampača,\n" "te za upravljanje štampačem.\n" "\n" "Ako sada napravite izbor, pa kasnije zaključite da vam se ne sviđa izabrani\n" "sistem štampe, možete ga promijeniti pokretanjem PrinterDrake iz Mandrake\n" "Kontrolnog centra i klikanjem na dugme Ekspert." #: ../../keyboard.pm:1 #, c-format msgid "\"Menu\" key" msgstr "\"Meni\" tipka" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "\n" "\n" "Please check whether Printerdrake did the auto-detection of your printer " "model correctly. Find the correct model in the list when a wrong model or " "\"Raw printer\" is highlighted." msgstr "" "\n" "\n" "Molim provjerite da li je Printerdrake izvršio ispravno automatsko " "prepoznavanje modela vašeg štampača. Potražite ispravan model na listi ako " "kursor stoji na pogrešnom modelu ili na \"Raw štampač\"." #: ../../standalone/draksec:1 #, c-format msgid "Security Administrator:" msgstr "Sigurnosni administrator:" #: ../../security/help.pm:1 #, c-format msgid "Set the shell timeout. A value of zero means no timeout." msgstr "" "Postavlja istek vremena shella. Vrijednost nula znači bez isteka vremena." #: ../../network/tools.pm:1 #, c-format msgid "Firmware copy succeeded" msgstr "Kopiranje firmware-a uspjelo" #: ../../../move/tree/mdk_totem:1 #, c-format msgid "" "You can't use another CDROM when the following programs are running: \n" "%s" msgstr "" #: ../../security/help.pm:1 #, c-format msgid "if set to yes, check permissions of files in the users' home." msgstr "" "ako je postavljeno na da, provjerava privilegije datoteka u korisničkom home-" "u." #: ../../standalone/drakconnect:1 #, c-format msgid "" "You don't have an Internet connection.\n" "Create one first by clicking on 'Configure'" msgstr "" "Nemate nijednu Internet konekciju.\n" "Napravite jednu klikajući na 'Podesi'" #: ../../standalone/drakfont:1 #, c-format msgid "Fonts copy" msgstr "Kopiranje fontova" #: ../../help.pm:1 ../../install_steps_interactive.pm:1 #, c-format msgid "Automated" msgstr "Automatizovano" #: ../../Xconfig/test.pm:1 #, c-format msgid "Do you want to test the configuration?" msgstr "Želite li testirati konfiguraciju?" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "The printer \"%s\" was successfully removed from Star Office/OpenOffice.org/" "GIMP." msgstr "Štampač \"%s\" je uspješno uklonjen iz Star/Open Offica." #: ../../help.pm:1 ../../install_steps_interactive.pm:1 #, c-format msgid "Save packages selection" msgstr "Spasi izbor paketa" #: ../../standalone/printerdrake:1 #, c-format msgid "/_Actions" msgstr "/_Akcije" #: ../../standalone/drakautoinst:1 #, c-format msgid "Remove the last item" msgstr "Ukloniti zadnju stavku" #: ../../standalone/drakbackup:1 #, c-format msgid "User list to restore (only the most recent date per user is important)" msgstr "" "Lista korisnika za vraćanje (samo najsvježiji datum po korisniku je značajan)" #: ../../standalone/drakTermServ:1 #, c-format msgid "No net boot images created!" msgstr "Nije napravljena boot image!" #: ../../network/adsl.pm:1 #, c-format msgid "use pptp" msgstr "koristi pptp" #: ../../services.pm:1 #, c-format msgid "Choose which services should be automatically started at boot time" msgstr "Izaberite koji servisi se trebaju pokretati automatski prilikom boota" #: ../../security/l10n.pm:1 #, c-format msgid "Check files/directories writable by everybody" msgstr "Provjeri datoteke/direktorije koje svako može pisati" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Learn how to use this printer" msgstr "Saznaj kako koristiti ovaj štampač" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Configure the network now" msgstr "Sada podesite mrežu" #: ../../install_steps_interactive.pm:1 #, c-format msgid "Choose a mirror from which to get the packages" msgstr "Izaberite mirror sa kojeg će biti dobavljeni paketi" #: ../../install_interactive.pm:1 #, c-format msgid "" "The FAT resizer is unable to handle your partition, \n" "the following error occured: %s" msgstr "" "FAT resizer ne može izmijeniti vašu particiju, \n" "došlo je do sljedeće greške: %s" #: ../../install_steps_gtk.pm:1 #, c-format msgid "Size: " msgstr "Veličina: " #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Which sector do you want to move it to?" msgstr "Na koji sektor je želite premjestiti?" #: ../../lang.pm:1 #, c-format msgid "Bahamas" msgstr "Bahami" #: ../../interactive/stdio.pm:1 #, c-format msgid "Do you want to click on this button?" msgstr "Da li želite kliknuti na ovo dugme?" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Manual configuration" msgstr "Ručno podešavanje" #: ../../standalone/logdrake:1 #, c-format msgid "search" msgstr "pretraživanje" #: ../../services.pm:1 #, c-format msgid "" "This package loads the selected keyboard map as set in\n" "/etc/sysconfig/keyboard. This can be selected using the kbdconfig utility.\n" "You should leave this enabled for most machines." msgstr "" "Ovaj paket učitava izabranu mapu tastature kao što je podešeno u\n" "/etc/sysconfig/keyboard, što se može podesiti korištenjem kbdconfig\n" "programa. Ovaj servis biste trebali ostaviti uključenim na većini računara." #: ../../Xconfig/card.pm:1 #, c-format msgid "Xpmac (installation display driver)" msgstr "Xpmac (installation display driver)" #: ../../network/ethernet.pm:1 ../../network/network.pm:1 #, c-format msgid "Zeroconf host name must not contain a ." msgstr "Zeroconf ime računara ne smije sadržavati ." #: ../../security/help.pm:1 #, c-format msgid " Accept/Refuse icmp echo." msgstr " Prihvati/odbij ICMP eho." #: ../../services.pm:1 #, c-format msgid "" "Syslog is the facility by which many daemons use to log messages\n" "to various system log files. It is a good idea to always run syslog." msgstr "" "Syslog je sistem pomoću kojeg mnogi servisi zapisuju poruke\n" "u razne sistemske dnevnike (logove). Pametno je uvijek imati pokrenuti " "syslog." #: ../../harddrake/data.pm:1 ../../standalone/harddrake2:1 #, c-format msgid "Unknown/Others" msgstr "Nepoznat/Ostali" #: ../../standalone/drakxtv:1 #, c-format msgid "No TV Card detected!" msgstr "Nije detektovana TV kartica!" #: ../../Xconfig/main.pm:1 ../../diskdrake/dav.pm:1 #: ../../diskdrake/interactive.pm:1 ../../diskdrake/removable.pm:1 #: ../../diskdrake/smbnfs_gtk.pm:1 ../../standalone/harddrake2:1 #, c-format msgid "Options" msgstr "Opcije" #: ../../printer/printerdrake.pm:1 #, c-format msgid "The printer \"%s\" is set as the default printer now." msgstr "Štampač \"%s\" je sada podešen kao podrazumjevani štampač." #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "You are configuring an OKI laser winprinter. These printers\n" "use a very special communication protocol and therefore they work only when " "connected to the first parallel port. When your printer is connected to " "another port or to a print server box please connect the printer to the " "first parallel port before you print a test page. Otherwise the printer will " "not work. Your connection type setting will be ignored by the driver." msgstr "" "Sada podešavate OK laserski winprinter. Ovi štampači\n" "koriste jedan poseban komunikacijski protokol i stoga rade samo kada su " "spojeni na prvom paralelnom portu. Ako je vaš štampač spojen na neki drugi " "port ili na print server molim spojite štampač na prvi paralelni port prije " "nego što odštampate testnu stranicu. Inače štampač neće raditi. Drajver će " "ignorisati vaše podešenje tipa konekcije." #: ../../standalone/harddrake2:1 #, c-format msgid "generation of the cpu (eg: 8 for PentiumIII, ...)" msgstr "generacija procesora (npr: 8 za PentiumIII, ...)" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Auto-detected" msgstr "Auto prepoznat" #: ../../standalone/drakpxe:1 #, c-format msgid "" "You are about to configure your computer to install a PXE server as a DHCP " "server\n" "and a TFTP server to build an installation server.\n" "With that feature, other computers on your local network will be installable " "using this computer as source.\n" "\n" "Make sure you have configured your Network/Internet access using drakconnect " "before going any further.\n" "\n" "Note: you need a dedicated Network Adapter to set up a Local Area Network " "(LAN)." msgstr "" "Sada ćete podesiti instalacioni server, koji se sastoji od PXE servera (DHCP " "servera) i TFTP servera.\n" "Sa ovom opcijom, moći ćete instalirati Mandrake Linux na druge računare na " "vašoj lokalnoj mreži koristećiovaj računar kao izvor.\n" "\n" "Prije nego što nastavite, provjerite da li ste podesili mrežni/internet " "pristup koristeći drakconnect.\n" "\n" "Napomena: potreban vam je poseban Mrežni adapter da biste podesili Lokalnu " "mrežu (LAN)." #: ../../harddrake/sound.pm:1 #, c-format msgid "" "OSS (Open Sound System) was the first sound API. It's an OS independent " "sound API (it's available on most UNIX(tm) systems) but it's a very basic " "and limited API.\n" "What's more, OSS drivers all reinvent the wheel.\n" "\n" "ALSA (Advanced Linux Sound Architecture) is a modularized architecture " "which\n" "supports quite a large range of ISA, USB and PCI cards.\n" "\n" "It also provides a much higher API than OSS.\n" "\n" "To use alsa, one can either use:\n" "- the old compatibility OSS api\n" "- the new ALSA api that provides many enhanced features but requires using " "the ALSA library.\n" msgstr "" "OSS (Open Sound System) je bio prvi API za zvuk. To je API neovisan od " "operativnog sistema (dostupan je na većini UNIX(tm) sistema), ali je vrlo " "elementaran i ograničen.\n" "Pored toga, svi OSS drajveri ponovo izmišljaju točak.\n" "\n" "ALSA (Advanced Linux Sound Architecture) je modularizovana arhitektura koja\n" "podržava prilično velik broj ISA, USB i PCI kartica.\n" "\n" "Ona takođe pruža mnogo viši API nego OSS.\n" "\n" "Da biste koristili ALSA, možete koristiti:\n" "- stari API kompatibilan sa OSSom\n" "- novi ALSA API koji pruža mnoge napredne mogućnosti, ali zahtijeva upotrebu " "ALSA biblioteke.\n" #: ../../install_steps_interactive.pm:1 #, c-format msgid "" "No free space for 1MB bootstrap! Install will continue, but to boot your " "system, you'll need to create the bootstrap partition in DiskDrake" msgstr "" "Nema dovoljno slobodnog prostora za 1 MB bootstrap! Instalacija će " "nastaviti, ali da biste bootali vaš sistem, morate kreirati bootstrap " "particiju u DiskDrake-u" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "Please choose the printer you want to set up or enter a device name/file " "name in the input line" msgstr "" "Molim izaberite štampač koji želite podesiti ili unesite naziv uređaja / " "naziv datoteke na ulaznoj liniji" #: ../../install_steps_gtk.pm:1 ../../install_steps_interactive.pm:1 #, c-format msgid "Refuse" msgstr "Odbij" #: ../../standalone/draksec:1 #, c-format msgid "LOCAL" msgstr "LOCAL" #: ../../diskdrake/hd_gtk.pm:1 #, c-format msgid "HFS" msgstr "HFS" #: ../../services.pm:1 #, c-format msgid "" "HardDrake runs a hardware probe, and optionally configures\n" "new/changed hardware." msgstr "" "HardDrake ispituje hardware i eventualno podešava novi ili\n" "izmjenjeni hardware." #: ../../fs.pm:1 #, c-format msgid "Creating and formatting file %s" msgstr "Kreiram i formatiram datoteku %s" #: ../../security/help.pm:1 #, c-format msgid "if set to yes, check additions/removals of sgid files." msgstr "ako je postavljeno na da, provjerava dodavanje/brisanje sgid datoteka." #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "The HP LaserJet 1000 needs its firmware to be uploaded after being turned " "on. Download the Windows driver package from the HP web site (the firmware " "on the printer's CD does not work) and extract the firmware file from it by " "uncompresing the self-extracting '.exe' file with the 'unzip' utility and " "searching for the 'sihp1000.img' file. Copy this file into the '/etc/" "printer' directory. There it will be found by the automatic uploader script " "and uploaded whenever the printer is connected and turned on.\n" msgstr "" "Za štampač HP LaserJet 1000 potrebno je da uploadujete firmwer prilikom " "paljenja. Potrebno je da skinete Windows drajvere sa HPove web stranice " "(firmware koji se nalazi na CDu koji je došao uz štampač ne radi) i izvadite " "firmware datoteku. Ovo ćete uraditi tako što ćete raspakovati " "samoraspakujuću '.exe' datoteku koristeći 'unzip' alat, te potražiti " "datoteku 'sihp1000.img'. Kopirajte ovu datoteku u direktorij '/etc/printer'. " "Ovdje će je automatski pronaći uploader skripta i poslati štampaču svaki put " "kada štampač bude spojen i upaljen.\n" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Choose an existing LVM to add to" msgstr "Izaberite postojeći LVM na koji ćete dodati" #: ../../standalone/drakfont:1 #, c-format msgid "xfs restart" msgstr "restart xfs-a" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "The printer \"%s\" already exists,\n" "do you really want to overwrite its configuration?" msgstr "" "Štampač \"%s\" već postoji,\n" "da li sigurno želite prepisati ovu konfiguraciju?" #: ../../standalone/scannerdrake:1 #, c-format msgid "Use the scanners on hosts: " msgstr "Koristi skenere na računaru:" #: ../../standalone/drakfont:1 #, c-format msgid "Unselected All" msgstr "Ništa izabrano" #: ../../install_steps_interactive.pm:1 ../../network/tools.pm:1 #, c-format msgid "No partition available" msgstr "Nema dostupnih particija" #: ../../standalone/printerdrake:1 #, c-format msgid "Printer Management \n" msgstr "Upravljanje štampačima \n" #: ../../standalone/logdrake:1 #, c-format msgid "Domain Name Resolver" msgstr "Domain Name Resolver" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Encryption key (again)" msgstr "Ključ enkripcije (još jednom)" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Samba share name missing!" msgstr "Naziv samba share-a nedostaje!" #: ../../standalone/drakfont:1 #, c-format msgid "True Type install done" msgstr "Završena True Type instalacija" #: ../../standalone/harddrake2:1 #, c-format msgid "Detection in progress" msgstr "Detekcija u toku" #: ../../standalone/drakTermServ:1 #, c-format msgid "Build Whole Kernel -->" msgstr "Izgradi cijeli kernel -->" #: ../../network/netconnect.pm:1 #, c-format msgid "modem" msgstr "modem" #: ../../lang.pm:1 #, c-format msgid "Welcome to %s" msgstr "Dobro došli u %s" #: ../../standalone/drakhelp:1 #, c-format msgid "" " drakhelp 0.1\n" "Copyright (C) 2003 MandrakeSoft.\n" "This is free software and may be redistributed under the terms of the GNU " "GPL.\n" "\n" "Usage: \n" msgstr "" " drakhelp 0.1\n" "Copyright (C) 2003 MandrakeSoft.\n" "Ovo je slobodan softver i može se distribuirati pod uslovima GNU GPLa.\n" "\n" "Upotreba: \n" #: ../../install_steps_interactive.pm:1 #, c-format msgid "Please insert the Update Modules floppy in drive %s" msgstr "Molim ubacite disketu Update Modula u jedinicu %s" #: ../../standalone/drakboot:1 #, c-format msgid "Bootsplash" msgstr "Boot ekran" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "The following printer\n" "\n" "%s%s\n" "is directly connected to your system" msgstr "" "Sljedeći štampač\n" "\n" "%s%s\n" "je direktno spojen na vaš sistem" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Printer sharing on hosts/networks: " msgstr "Dijeljenje štampača na računarima/mrežama:" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "\n" "The \"%s\" command also allows to modify the option settings for a " "particular printing job. Simply add the desired settings to the command " "line, e. g. \"%s \". " msgstr "" "\n" "Komanda \"%s\" također omogućava izmjenu opcija za pojedinačni zadatak " "štampe. Jednostavno dodajte željena podešenja na komandnu liniju, npr. \"%s " "\". " #: ../../standalone/drakclock:1 #, fuzzy, c-format msgid "DrakClock" msgstr "Drakbackup" #: ../../modules/interactive.pm:1 #, c-format msgid "" "In some cases, the %s driver needs to have extra information to work\n" "properly, although it normally works fine without them. Would you like to " "specify\n" "extra options for it or allow the driver to probe your machine for the\n" "information it needs? Occasionally, probing will hang a computer, but it " "should\n" "not cause any damage." msgstr "" "U nekim slučajevima, %s drajver treba imati dodatne informacije za\n" "ispravan rad, iako on obično radi dobro i bez njih. Želite li navesti neke\n" "ekstra opcije za njega ili dozvoliti drajveru da ispita vaš računar za sve\n" "informacije koje mu trebaju? Povremeno, ispitivanje može zaglaviti računar,\n" "ali ne bi trebalo izazvati nikakvu štetu." #: ../../standalone/drakbackup:1 #, c-format msgid "Not the correct CD label. Disk is labelled %s." msgstr "Neispravna oznaka CDa. Oznaka diska je %s." #: ../../standalone/drakbackup:1 #, c-format msgid "" "\n" "- Daemon, %s via:\n" msgstr "" "\n" "- Demon (%s) preko:\n" #: ../../lang.pm:1 #, c-format msgid "Cuba" msgstr "Kuba" #: ../../standalone/drakbackup:1 #, c-format msgid "October" msgstr "Oktobar" #: ../../lang.pm:1 #, c-format msgid "Belize" msgstr "Belize" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Searching for new printers..." msgstr "Tražim nove štampače..." #: ../../standalone/drakbackup:1 #, c-format msgid " (multi-session)" msgstr " (više sesija)" #: ../../any.pm:1 #, c-format msgid "Kernel Boot Timeout" msgstr "Vrijeme za boot kernela" #: ../../Xconfig/card.pm:1 #, c-format msgid "" "Your card can have 3D hardware acceleration support but only with XFree %s.\n" "Your card is supported by XFree %s which may have a better support in 2D." msgstr "" "Vaša kartica može imati podršku za 3D hardversko ubrzanje ali samo sa\n" "XFree %s. Vašu karticu takođe podržava XFree %s koji može imati bolju " "podršku za 2D." #: ../../security/help.pm:1 #, c-format msgid " Activate/Disable daily security check." msgstr " Aktiviraj/isključi dnevnu sigurnosnu provjeru." #: ../../standalone/drakbackup:1 #, c-format msgid "\t-CD-R.\n" msgstr "\t-CD-R.\n" #: ../../security/l10n.pm:1 #, c-format msgid "Enable libsafe if libsafe is found on the system" msgstr "Uključi libsafe ako libsafe postoji na vašem sistemu" #: ../../install_interactive.pm:1 #, c-format msgid "The DrakX Partitioning wizard found the following solutions:" msgstr "DrakX Particioni čarobnjak je našao sljedeća rješenja:" #: ../../keyboard.pm:1 #, c-format msgid "Hungarian" msgstr "Mađarska" #: ../../network/isdn.pm:1 #, c-format msgid "" "Select your provider.\n" "If it isn't listed, choose Unlisted." msgstr "" "Izaberite vašeg providera.\n" " Ako nije na listi, izaberite Nije na listi" #: ../../install_steps_interactive.pm:1 #, c-format msgid "Automatic time synchronization (using NTP)" msgstr "Automatska sinhronizacija vremena (koristeći NTP)" #: ../../network/adsl.pm:1 #, c-format msgid "Use my Windows partition" msgstr "Koristi moju Windows particiju" #: ../../Xconfig/card.pm:1 #, c-format msgid "8 MB" msgstr "8 MB" #: ../../any.pm:1 #, c-format msgid "LDAP Server" msgstr "LDAP Server" #: ../../services.pm:1 #, c-format msgid "" "PCMCIA support is usually to support things like ethernet and\n" "modems in laptops. It won't get started unless configured so it is safe to " "have\n" "it installed on machines that don't need it." msgstr "" "PCMCIA podrška služi za ispravan rad uređaja kao što su mrežne\n" "kartice i modemi, priključenih na PCMCIA port (obično na laptopima).\n" "Neće se pokrenuti sve dok nije ispravno konfigurisan, tako da je\n" "sigurno imati ga instaliranog i na računarima kojima nije potreban." #: ../../network/tools.pm:1 #, c-format msgid "Choose your country" msgstr "Izaberite vašu državu" #: ../../standalone/drakbackup:1 #, c-format msgid "" "\n" "- System Files:\n" msgstr "" "\n" "- sistemske datoteke:\n" #: ../../standalone/drakbug:1 #, c-format msgid "Standalone Tools" msgstr "Samostalni alati" #: ../../standalone/drakbackup:1 #, c-format msgid "Where" msgstr "Gdje" #: ../../standalone/logdrake:1 #, c-format msgid "but not matching" msgstr "but not matching" #: ../../harddrake/sound.pm:1 #, c-format msgid "" "Here you can select an alternative driver (either OSS or ALSA) for your " "sound card (%s)." msgstr "" "Ovdje možete izabrati alternativni drajver (ili OSS ili ALSA) za vašu zvučnu " "karticu (%s)." #: ../../install_steps_interactive.pm:1 #, c-format msgid "Configuring PCMCIA cards..." msgstr "Podešavam PCMCIA kartice..." #: ../../common.pm:1 #, c-format msgid "kdesu missing" msgstr "nedostaje kdesu" #: ../../standalone/drakTermServ:1 #, c-format msgid "%s: %s requires a username...\n" msgstr "%s: %s traži korisničko ime...\n" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Encryption key" msgstr "Ključ enkripcije" #: ../../mouse.pm:1 #, c-format msgid "Microsoft IntelliMouse" msgstr "Microsoft IntelliMouse" #: ../../keyboard.pm:1 #, c-format msgid "" "This setting will be activated after the installation.\n" "During installation, you will need to use the Right Control\n" "key to switch between the different keyboard layouts." msgstr "" "Ova postavka će biti aktivirana nakon instalacije.\n" "Tokom instalacije, trebate koristiti desnu Control\n" "tipku da prebacujete između raznih rasporeda tastature." #: ../../lang.pm:1 #, c-format msgid "Christmas Island" msgstr "Uskršnje ostrvo" #: ../../mouse.pm:1 #, fuzzy, c-format msgid "Automatic" msgstr "Automatska IP" #: ../../install_steps_interactive.pm:1 #, c-format msgid "Installation of bootloader failed. The following error occured:" msgstr "Instalacija bootloadera nije uspjela. Došlo je do sljedeće greške:" #: ../../standalone/harddrake2:1 #, c-format msgid "EIDE/SCSI channel" msgstr "EIDE/SCSI channel" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Set this printer as the default" msgstr "Podesi štampač kao podrazumjevani" #: ../../standalone/drakbackup:1 #, c-format msgid "Verify that %s is the correct path" msgstr "Provjerite da li je %s ispravan put?" #: ../../install_interactive.pm:1 #, c-format msgid "partition %s" msgstr "particiji %s" #: ../../security/level.pm:1 #, c-format msgid "Paranoid" msgstr "Paranoičan" #: ../../any.pm:1 #, c-format msgid "NIS" msgstr "NIS" #: ../../standalone/drakTermServ:1 #, c-format msgid "<-- Del User" msgstr "<-- Obriši korisnika" #: ../../standalone/harddrake2:1 #, c-format msgid "Location on the bus" msgstr "Lokacija na sabirnici" #: ../../printer/printerdrake.pm:1 #, c-format msgid "No printer found!" msgstr "Nije pronađen nijedan štampač!" #: ../../standalone/harddrake2:1 #, c-format msgid "the vendor name of the device" msgstr "naziv proizvođača uređaja" #: ../../help.pm:1 ../../install_interactive.pm:1 #, c-format msgid "Erase entire disk" msgstr "Pobriši čitav disk" #: ../../printer/cups.pm:1 ../../printer/printerdrake.pm:1 #, c-format msgid " (Default)" msgstr " (Default)" #: ../../standalone/drakgw:1 #, c-format msgid "Automatic reconfiguration" msgstr "Automatsko ponovno podešavanje" #: ../../standalone/net_monitor:1 #, c-format msgid "Receiving Speed:" msgstr "Brzina prijema:" #: ../../lang.pm:1 #, c-format msgid "Turks and Caicos Islands" msgstr "Turks i Caicos ostrva" #: ../../standalone/drakconnect:1 #, c-format msgid "No Ip" msgstr "Bez IP" #: ../../help.pm:1 ../../install_steps_gtk.pm:1 ../../interactive.pm:1 #: ../../ugtk2.pm:1 ../../interactive/newt.pm:1 #: ../../printer/printerdrake.pm:1 ../../standalone/drakbackup:1 #, c-format msgid "<- Previous" msgstr "<- Nazad" #: ../../standalone/drakbackup:1 #, c-format msgid "Transfer Now" msgstr "Prebaci odmah" #: ../../install_steps_interactive.pm:1 #, c-format msgid "Set root password and network authentication methods" msgstr "Podesi root šifru i metodu mrežne autentikacije" #: ../../ugtk2.pm:1 #, c-format msgid "Toggle between flat and group sorted" msgstr "Ravno / složeno po grupama" #: ../../standalone/drakboot:1 #, c-format msgid "Themes" msgstr "Teme" #: ../../diskdrake/dav.pm:1 ../../diskdrake/interactive.pm:1 #, c-format msgid "Options: %s" msgstr "Opcije: %s" #: ../../standalone/drakboot:1 #, c-format msgid "" "You are currently using %s as your boot manager.\n" "Click on Configure to launch the setup wizard." msgstr "" "Trenutno koristite %s kao boot manager.\n" "Kliknite na Podesi kako bi se pokrenuo čarobnjak za podešavanje." #: ../../printer/printerdrake.pm:1 #, c-format msgid "OKI winprinter configuration" msgstr "Podešavanje OKI winprinter-a" #: ../../lang.pm:1 #, c-format msgid "Saint Helena" msgstr "Saint Helena" #: ../../printer/main.pm:1 #, c-format msgid "Parallel port #%s" msgstr "Paralelni port #%s" #: ../../help.pm:1 ../../install_steps_interactive.pm:1 #, c-format msgid "Security Level" msgstr "Sigurnosni nivo" #: ../../install_steps_interactive.pm:1 #, c-format msgid "" "Some steps are not completed.\n" "\n" "Do you really want to quit now?" msgstr "" "Neki koraci nisu dovršeni.\n" "\n" "Da li zaista želite izaći sada?" #: ../../lang.pm:1 #, c-format msgid "Sudan" msgstr "Sudan" #: ../../keyboard.pm:1 #, c-format msgid "Polish (qwertz layout)" msgstr "Poljska (qwertz)" #: ../../lang.pm:1 #, c-format msgid "Syria" msgstr "Sirija" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "Is your printer a multi-function device from HP or Sony (OfficeJet, PSC, " "LaserJet 1100/1200/1220/3200/3300 with scanner, DeskJet 450, Sony IJP-V100), " "an HP PhotoSmart or an HP LaserJet 2200?" msgstr "" "Da li je vaš štampač multifunkcijski uređaj od HPa ili Sony-ja (OfficeJet, " "PSC, LaserJet 1100/1200/1220/3200/3300 sa skenerom, DeskJet 450, Sony IJP-" "V100), ili HP PhotoSmart ili HP LaserJet 2200?" #. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit) #: ../../bootloader.pm:1 #, c-format msgid "" "Welcome to %s the operating system chooser!\n" "\n" "Choose an operating system from the list above or\n" "wait %d seconds for default boot.\n" "\n" msgstr "" "Dobro došli u %s izbornik operativnog sistema!\n" "\n" "Izaberite operativni sistem na listi gore ili\n" "sačekajte %d sekundi do pokretanja podrazumjevanog OSa.\n" "\n" #: ../../keyboard.pm:1 #, c-format msgid "Portuguese" msgstr "Portugalska" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Loopback file name: " msgstr "Naziv loopback datoteke: " #: ../../network/network.pm:1 #, c-format msgid "DNS server address should be in format 1.2.3.4" msgstr "Adresa DNS servera treba biti u formatu 1.2.3.4" #: ../../keyboard.pm:1 #, c-format msgid "Left Control key" msgstr "Lijeva Control tipka" #: ../../lang.pm:1 #, c-format msgid "Serbia" msgstr "Srbija" #: ../../standalone/drakxtv:1 #, c-format msgid "Newzealand" msgstr "Novi Zeland" #: ../../fsedit.pm:1 #, c-format msgid "This directory should remain within the root filesystem" msgstr "Ovaj direktorij treba ostati unutar korijenskog file sistema" #: ../../standalone/drakbackup:1 #, c-format msgid "Across Network" msgstr "preko mreže" #: ../../keyboard.pm:1 #, c-format msgid "CapsLock key" msgstr "CapsLock tipka" #: ../../steps.pm:1 #, c-format msgid "Install bootloader" msgstr "Instalacija bootloadera" #: ../../Xconfig/card.pm:1 #, c-format msgid "Select the memory size of your graphics card" msgstr "Izaberite veličinu memorije vaše grafičke karte" #: ../../security/help.pm:1 #, c-format msgid "" "Enable/Disable crontab and at for users.\n" "\n" "Put allowed users in /etc/cron.allow and /etc/at.allow (see man at(1)\n" "and crontab(1))." msgstr "" "Uključi/isključi crontab i at za korisnike.\n" "\n" "Stavi korisnicima kojima je to dozvoljeno u /etc/cron.allow i /etc/at.allow " "(vidi man stranice at(1) i crontab(1))." #: ../../standalone.pm:1 #, c-format msgid "" "[OPTIONS]\n" "Network & Internet connection and monitoring application\n" "\n" "--defaultintf interface : show this interface by default\n" "--connect : connect to internet if not already connected\n" "--disconnect : disconnect to internet if already connected\n" "--force : used with (dis)connect : force (dis)connection.\n" "--status : returns 1 if connected 0 otherwise, then exit.\n" "--quiet : don't be interactive. To be used with (dis)connect." msgstr "" "[OPTIONS]\n" "Aplikacija za povezivanje na mrežu/Internet i nadzor veze\n" "\n" "--defaultintf interface : podesi podrazumijevani interfejs\n" "--connect : spoji se na Inernet, ako nisi već spojen\n" "--disconnect : prekini vezu s Internetom, ako si spojen\n" "--force : koristi se sa (dis)connect : prinudi operaciju.\n" "--status : vraća 1 ako je spojen, u suprotnom 0.\n" "--quiet : bez interaktivnosti. Koristi se sa (dis)connect." #: ../../standalone/drakTermServ:1 #, c-format msgid "Dynamic IP Address Pool:" msgstr "Raspon dinamičkih IP adresa:" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "LVM name?" msgstr "Naziv LVMa?" #: ../../standalone/service_harddrake:1 #, c-format msgid "Some devices in the \"%s\" hardware class were removed:\n" msgstr "Uklonjeni su neki uređaji u \"%s\" klasi hardvera:\n" #: ../../modules/interactive.pm:1 #, c-format msgid "Found %s %s interfaces" msgstr "Pronađeno %s %s interfejsa" #: ../../standalone/drakfont:1 #, c-format msgid "Post Install" msgstr "Post Install" #: ../../standalone/drakgw:1 #, c-format msgid "The internal domain name" msgstr "Interno domensko ime" #: ../../network/tools.pm:1 ../../standalone/drakconnect:1 #, c-format msgid "Card IRQ" msgstr "IRQ kartice" #: ../../standalone/logdrake:1 #, c-format msgid "logdrake" msgstr "logdrake" #: ../../standalone.pm:1 #, c-format msgid "" "Font Importation and monitoring " "application \n" "--windows_import : import from all available windows partitions.\n" "--xls_fonts : show all fonts that already exist from xls\n" "--strong : strong verification of font.\n" "--install : accept any font file and any directry.\n" "--uninstall : uninstall any font or any directory of font.\n" "--replace : replace all font if already exist\n" "--application : 0 none application.\n" " : 1 all application available supported.\n" " : name_of_application like so for staroffice \n" " : and gs for ghostscript for only this one." msgstr "" "Aplikacija za uvoz i nadzor fontova \n" "--windows_import : uvezi sa dostupnih windows particija.\n" "--xls_fonts : prikaži sve postojeće fontove koje prijavljuje xls\n" "--strong : jaka provjera fonta.\n" "--install : instaliraj bilo koji font ili direktorij.\n" "--uninstall : deinstaliraj bilo koji font ili direktorij.\n" "--replace : zamijeni font ako vec postoji\n" "--application : 0 bez aplikacija.\n" " : 1 podrška za sve poznate aplikacije.\n" " : ime_aplikacije kao so za staroffice \n" " : i gs za ghostscript za samo tu aplikaciju." #: ../../standalone.pm:1 #, c-format msgid " [--skiptest] [--cups] [--lprng] [--lpd] [--pdq]" msgstr " [--skiptest] [--cups] [--lprng] [--lpd] [--pdq]" #: ../../any.pm:1 #, c-format msgid "Choose the floppy drive you want to use to make the bootdisk" msgstr "" "Izaberite disketnu jedinicu koju želite koristiti da napravite boot disketu" #: ../../bootloader.pm:1 ../../help.pm:1 #, c-format msgid "LILO with text menu" msgstr "LILO sa tekstualnim menijem" #: ../../standalone/net_monitor:1 #, c-format msgid "instantaneous" msgstr "" #: ../../network/drakfirewall.pm:1 #, c-format msgid "Everything (no firewall)" msgstr "Sve (bez firewalla)" #: ../../any.pm:1 #, c-format msgid "You must specify a kernel image" msgstr "Morate navesti image kernela" #: ../../printer/main.pm:1 #, c-format msgid ", multi-function device on USB" msgstr ", višenamjenski uređaj na USBu" #: ../../interactive/newt.pm:1 #, c-format msgid "Do" msgstr "Uradi" #: ../../install_steps_interactive.pm:1 #, c-format msgid "Contacting the mirror to get the list of available packages..." msgstr "Kontaktiram mirror da bih saznao listu dostupnih paketa..." #: ../../keyboard.pm:1 #, c-format msgid "Lithuanian AZERTY (old)" msgstr "Litvanska AZERTY (stara)" #: ../../keyboard.pm:1 #, c-format msgid "Brazilian (ABNT-2)" msgstr "Brazilska (ABNT-2)" #: ../../printer/printerdrake.pm:1 #, c-format msgid "IP address of host/network:" msgstr "IP adresa računara/mreže:" #: ../../standalone/draksplash:1 #, c-format msgid "" "the progress bar y coordinate\n" "of its upper left corner" msgstr "" "koordinate progresne trake y\n" "tj. njenog lijevog ugla" #: ../../install_gtk.pm:1 #, c-format msgid "System installation" msgstr "Instalacija sistema" #: ../../lang.pm:1 #, c-format msgid "Saint Vincent and the Grenadines" msgstr "Saint Vincent and the Grenadines" #: ../../security/help.pm:1 #, c-format msgid "Allow/Forbid reboot by the console user." msgstr "Dozvoli/zabrani restartovanje računara iz konzole." #: ../../standalone/logdrake:1 #, c-format msgid "/File/_Open" msgstr "/Datoteka/_Otvori" #: ../../standalone/drakpxe:1 #, c-format msgid "Location of auto_install.cfg file" msgstr "Lokacija datoteke auto_install.cfg" #: ../../any.pm:1 #, c-format msgid "Open Firmware Delay" msgstr "Čekanje na Open Firmware" #: ../../lang.pm:1 #, c-format msgid "Hungary" msgstr "Mađarska" #: ../../lang.pm:1 #, c-format msgid "New Zealand" msgstr "Novi Zeland" #: ../../standalone/net_monitor:1 #, c-format msgid "Color configuration" msgstr "Podešavanje boje" #: ../../security/level.pm:1 #, c-format msgid "" "There are already some restrictions, and more automatic checks are run every " "night." msgstr "" "Već postoje određena ograničenja, a više automatskih provjera se pokreće " "svaku noć." #: ../../standalone/drakbackup:1 #, c-format msgid "please choose the date to restore" msgstr "molim izaberite datum za vraćanje" #: ../../lang.pm:1 #, c-format msgid "Netherlands Antilles" msgstr "Nizozemski Antili" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Switching from ext2 to ext3" msgstr "Prebacujem sa ext2 na ext3" #: ../../printer/data.pm:1 #, c-format msgid "LPRng" msgstr "LPRng" #: ../../standalone/drakbackup:1 #, c-format msgid "Browse to new restore repository." msgstr "Browse to new restore repository." #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "\n" "Welcome to the Printer Setup Wizard\n" "\n" "This wizard allows you to install local or remote printers to be used from " "this machine and also from other machines in the network.\n" "\n" "It asks you for all necessary information to set up the printer and gives " "you access to all available printer drivers, driver options, and printer " "connection types." msgstr "" "\n" "Dobro došli u Čarobnjak za podešavanje štampača\n" "\n" "Ovaj čarobnjak vam omogućuje da instalirate lokalne ili udaljene štampače " "koji će biti korišteni sa ovog računara, a također i sa drugih računara na " "mreži.\n" "\n" "On će od vas tražiti sve potrebne informacije kako bi štampač bio podešen, a " "vama omogućen pristup svim dostupnim drajverima, opcijama drajvera i vrstama " "konekcije štampača." #: ../../printer/printerdrake.pm:1 #, c-format msgid "and %d unknown printers" msgstr "i %d nepoznatih štampača" #: ../../standalone/harddrake2:1 #, c-format msgid "" "Early Intel Pentium chips manufactured have a bug in their floating point " "processor which did not achieve the required precision when performing a " "Floating point DIVision (FDIV)" msgstr "" "Rani Intel Pentium procesori imaju bug u numeričkom koprocesoru koji ne " "postiže potrebnu preciznost prilikom izvršavanja dijeljenja sa tekućim " "zarezom (FDIV)" #: ../../standalone/drakbackup:1 #, c-format msgid "" "Backup quota exceeded!\n" "%d MB used vs %d MB allocated." msgstr "" "Backup kvota je prekoračena!\n" "Iskorišteno je %d MB od alociranih %d MB." #: ../../network/isdn.pm:1 #, c-format msgid "No ISDN PCI card found. Please select one on the next screen." msgstr "" "Nije pronađena nijedna ISDN PCI kartica. Molim izaberite jednu na idućem " "ekranu." #: ../../common.pm:1 #, c-format msgid "GB" msgstr "GB" #: ../../any.pm:1 #, c-format msgid "Please give a user name" msgstr "Molim navedite korisničko ime" #: ../../any.pm:1 #, c-format msgid "Enable CD Boot?" msgstr "Omogući boot sa CDa?" #: ../../../move/move.pm:1 #, c-format msgid "Simply reboot" msgstr "" #: ../../interactive/stdio.pm:1 #, c-format msgid " enter `void' for void entry" msgstr " unesite `void' za prazan unos" #: ../../standalone/drakbackup:1 #, c-format msgid "Backups on unmountable media - Use Catalog to restore" msgstr "" "Backupi na mediju koji se ne može montirati - Koristite Katalog za vraćanje" #: ../../standalone/drakbackup:1 #, c-format msgid "January" msgstr "Januar" #: ../../security/l10n.pm:1 #, c-format msgid "Password history length" msgstr "Dužina historije šifara" #: ../../network/netconnect.pm:1 #, c-format msgid "Winmodem connection" msgstr "Winmodem konekcija" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "\n" "Congratulations, your printer is now installed and configured!\n" "\n" "You can print using the \"Print\" command of your application (usually in " "the \"File\" menu).\n" "\n" "If you want to add, remove, or rename a printer, or if you want to change " "the default option settings (paper input tray, printout quality, ...), " "select \"Printer\" in the \"Hardware\" section of the Mandrake Control " "Center." msgstr "" "\n" "Čestitamo, vaš štampač je sada instaliran i podešen!\n" "\n" "Možete štampati koristeći komandu \"Štampaj\" u vašoj aplikaciji (obično se " "nalazi u meniju \"Datoteka).\n" "\n" "Ako želite dodati, ukloniti ili promijeniti ime štampača, ili ako želite " "promijeniti neke podrazumjevane postavke (ulazni put papira, kvaliteta " "štampe...), izaberite opciju \"Štampač\" u \"Hardware\" sekciji Mandrake " "Kontrolnog centra." #: ../../standalone/drakxtv:1 #, c-format msgid "Now, you can run xawtv (under X Window!) !\n" msgstr "Sada možete pokrenuti xawtv (pod X Window sistemom!) !\n" #: ../../install_steps_interactive.pm:1 #, c-format msgid "Not enough swap space to fulfill installation, please add some" msgstr "Nemam dovoljno swap prostora da dovršim instalaciju, molim dodajte još" #. -PO: example: lilo-graphic on /dev/hda1 #: ../../install_steps_interactive.pm:1 #, c-format msgid "%s on %s" msgstr "%s na %s" #: ../../security/help.pm:1 #, c-format msgid "Allow/Forbid remote root login." msgstr "Dozvoli/zabrani prijavu kao root sa udaljenog računara" #: ../../help.pm:1 #, c-format msgid "" "GNU/Linux manages time in GMT (Greenwich Mean Time) and translates it to\n" "local time according to the time zone you selected. If the clock on your\n" "motherboard is set to local time, you may deactivate this by unselecting\n" "\"%s\", which will let GNU/Linux know that the system clock and the\n" "hardware clock are in the same timezone. This is useful when the machine\n" "also hosts another operating system like Windows.\n" "\n" "The \"%s\" option will automatically regulate the clock by connecting to a\n" "remote time server on the Internet. For this feature to work, you must have\n" "a working Internet connection. It is best to choose a time server located\n" "near you. This option actually installs a time server that can used by\n" "other machines on your local network as well." msgstr "" "GNU/Linux koristi vrijeme u GMT (Greenwich Mean Time) obliku i prevodi ga\n" "u lokalno vrijeme u skladu sa vremenskom zonom koju ste izabrali. Ako je\n" "sat na vašoj matičnoj ploči podešen na lokalno vrijeme, možete isključiti " "ovu\n" "opciju isključujući \"%s\", što će saopštiti\n" "GNU/Linuxu da su sistemski sat i hardverski sat u istoj vremenskoj zoni.\n" "Ovo je korisno kada se na računaru takođe nalazi i drugi operativni sistem\n" "kao što je Windows.\n" "\n" "Opcija \"%s\" će automatski regulisati sat\n" "spajajući se na udaljeni time server na Internetu. Kako bi ova mogućnost\n" "radila, morate imati ispravnu Internet konekciju. Najbolje je izabrati time\n" "server negdje u vašoj blizini. Ova opcija će ustvari instalirati time " "server\n" "koji mogu koristiti i drugi računari u vašoj lokalnoj mreži." #: ../../standalone/drakbackup:1 #, c-format msgid "Can't create log file!" msgstr "Ne mogu napraviti log datoteku!" #: ../../install_steps_interactive.pm:1 ../../standalone/drakclock:1 #, c-format msgid "Which is your timezone?" msgstr "Koja je vaša vremenska zona?" #: ../../standalone/drakbackup:1 #, c-format msgid "Use .backupignore files" msgstr "Koristi .backupignore datoteke" #: ../../lang.pm:1 #, c-format msgid "Guinea" msgstr "Gvineja" #: ../../network/tools.pm:1 #, c-format msgid "The system is now connected to the Internet." msgstr "Sistem je sada spojen na Internet." #: ../../lang.pm:1 #, c-format msgid "South Georgia and the South Sandwich Islands" msgstr "South Georgia i South Sandwich ostrva" #: ../../standalone/drakxtv:1 #, c-format msgid "Japan (broadcast)" msgstr "Japan (broadcast)" #: ../../help.pm:1 #, c-format msgid "" "Monitor\n" "\n" " The installer will normally automatically detect and configure the\n" "monitor connected to your machine. If it is incorrect, you can choose from\n" "this list the monitor you actually have connected to your computer." msgstr "" "Monitor\n" "\n" " Instalacioni program obično može prepoznati i podesiti monitor koji\n" "je povezan na vaš računar. Ako se ovo ne desi, možete odabrati sa ove\n" "liste monitor koji je ustvari povezan na vaš računar." #: ../../lang.pm:1 #, c-format msgid "Mozambique" msgstr "Mozambik" #: ../../any.pm:1 #, c-format msgid "Icon" msgstr "Ikona" #: ../../../move/tree/mdk_totem:1 #, fuzzy, c-format msgid "Kill those programs" msgstr "pristup X programima" #: ../../standalone/drakbackup:1 #, c-format msgid "Please choose what you want to backup" msgstr "Molim izaberite šta želite backupovati" #: ../../Xconfig/resolution_and_depth.pm:1 #, c-format msgid "256 colors (8 bits)" msgstr "256 boja (8 bita)" #: ../../any.pm:1 #, c-format msgid "Read-write" msgstr "Čitaj-piši" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Size: %s\n" msgstr "Veličina: %s\n" #: ../../standalone/drakconnect:1 #, c-format msgid "Hostname: " msgstr "Hostname: " #: ../../standalone/drakperm:1 #, c-format msgid "Add a rule" msgstr "Dodaj pravilo" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Chunk size %s\n" msgstr "Veličina chunka %s\n" #: ../advertising/02-community.pl:1 #, c-format msgid "Build the future of Linux!" msgstr "Izgradite budućnost Linuxa!" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Local Printer" msgstr "Lokalni štampač" #: ../../network/tools.pm:1 #, c-format msgid "Floppy access error, unable to mount device %s" msgstr "Greška pri pristupu disketi, ne mogu montirati uređaj %s" #: ../../standalone.pm:1 #, c-format msgid "[--file=myfile] [--word=myword] [--explain=regexp] [--alert]" msgstr "[--file=mojfajl] [--word=mojarijec] [--explain=regexp] [--alert]" #: ../../network/netconnect.pm:1 #, c-format msgid "ADSL connection" msgstr "ADSL konekcija" #: ../../standalone/drakbackup:1 #, c-format msgid "No configuration, please click Wizard or Advanced.\n" msgstr "Bez podešavanja, molim kliknite na Čarobnjak ili Više opcija.\n" #: ../../standalone/drakautoinst:1 #, c-format msgid "Error!" msgstr "Greška!" #: ../../network/netconnect.pm:1 #, c-format msgid "cable connection detected" msgstr "otkrivena kablovska konekcija" #: ../../standalone/drakbackup:1 #, c-format msgid "Permission denied transferring %s to %s" msgstr "Pristup odbijen pri prenosu %s na %s" #: ../../standalone/harddrake2:1 ../../standalone/printerdrake:1 #, c-format msgid "/_Report Bug" msgstr "/_Prijavi grešku" #: ../../lang.pm:1 #, c-format msgid "Dominica" msgstr "Dominika" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Resize" msgstr "Smanji" #: ../../Xconfig/various.pm:1 #, c-format msgid "Resolution: %s\n" msgstr "Rezolucija: %s\n" #: ../../install2.pm:1 #, c-format msgid "" "Can't access kernel modules corresponding to your kernel (file %s is " "missing), this generally means your boot floppy in not in sync with the " "Installation medium (please create a newer boot floppy)" msgstr "" "Ne mogu pristupiti kernelskim modulima koji odgovaraju vašem kernelu " "(nedostaje datoteka %s), što obično znači da je vaša boot disketa zastarjela " "u odnosu na instalacioni medij (napravite noviju boot disketu)" #: ../../help.pm:1 #, c-format msgid "" "Please select the correct port. For example, the \"COM1\" port under\n" "Windows is named \"ttyS0\" under GNU/Linux." msgstr "" "Molim izaberite ispravan port. Na primjer, \"COM1\" port pod Windows\n" "operativnim sistemom, pod GNU/Linuxom se zove \"ttyS0\" ." #: ../../install_steps_gtk.pm:1 #, c-format msgid "The following packages are going to be removed" msgstr "Sljedeći paketi će biti uklonjeni" #: ../../network/adsl.pm:1 ../../network/ethernet.pm:1 #, c-format msgid "Connect to the Internet" msgstr "Spoji se na Internet" #: ../../install_interactive.pm:1 #, c-format msgid "Use existing partitions" msgstr "Koristi postojeću particiju" #: ../../keyboard.pm:1 #, c-format msgid "Canadian (Quebec)" msgstr "Kanadska (Kvebek)" #: ../../Xconfig/various.pm:1 #, c-format msgid "Mouse device: %s\n" msgstr "Uređaj miša: %s\n" #: ../../standalone/drakfont:1 #, c-format msgid "Reselect correct fonts" msgstr "Ponovo izaberi ispravne fontove" #: ../../help.pm:1 #, c-format msgid "" "Options\n" "\n" " Here you can choose whether you want to have your machine automatically\n" "switch to a graphical interface at boot. Obviously, you want to check\n" "\"%s\" if your machine is to act as a server, or if you were not successful\n" "in getting the display configured." msgstr "" "Opcije\n" "\n" " Ovdje možete izabrati da li želite da vaš računar automatski pređe na\n" "grafički interfejs nakon uključivanja. Očito, trebate odgovoriti \"%s\" ako\n" "će vaš računar imati ulogu servera ili ako imate problema sa\n" "podešavanjem ekrana." #: ../advertising/13-mdkexpert_corporate.pl:1 #, c-format msgid "MandrakeExpert Corporate" msgstr "MandrakeExpert Corporate" #: ../../standalone.pm:1 #, c-format msgid "" " [everything]\n" " XFdrake [--noauto] monitor\n" " XFdrake resolution" msgstr "" " [everything]\n" " XFdrake [--noauto] monitor\n" " XFdrake rezolucija" #: ../../standalone/harddrake2:1 #, c-format msgid "Write protection" msgstr "Zaštita od pisanja" #: ../../standalone/drakfont:1 #, c-format msgid "You've not selected any font" msgstr "Niste izabrali nijedan font" #: ../../steps.pm:1 #, c-format msgid "Language" msgstr "Jezik" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Printer model selection" msgstr "Izbor modela štampača" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "" "After changing type of partition %s, all data on this partition will be lost" msgstr "" "Nakon promjene tipa particije %s, svi podaci na toj particiji će biti " "izgubljeni" #: ../../harddrake/data.pm:1 #, fuzzy, c-format msgid "ISDN adapters" msgstr "ISDN kartica" #: ../../common.pm:1 #, c-format msgid "%d seconds" msgstr "%d sekundi" #: ../../install_steps_interactive.pm:1 ../../standalone/drakautoinst:1 #, c-format msgid "Insert a blank floppy in drive %s" msgstr "Ubacite praznu disketu u jedinicu %s" #: ../../printer/printerdrake.pm:1 #, c-format msgid "A valid URI must be entered!" msgstr "Trebate unijeti ispravan URI!" #: ../../network/isdn.pm:1 #, c-format msgid "Found \"%s\" interface do you want to use it ?" msgstr "Pronašao sam interfejs \"%s\". Želite li ga koristiti ?" #: ../../standalone/drakgw:1 #, c-format msgid "Re-configure interface and DHCP server" msgstr "Ponovo podesi interfejs i DHCP server" #: ../../harddrake/sound.pm:1 #, c-format msgid "Sound configuration" msgstr "Podešavanje zvuka" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Photo test page" msgstr "Foto testna strana" #: ../../help.pm:1 ../../install_interactive.pm:1 #, c-format msgid "Custom disk partitioning" msgstr "Ručno particioniranje diska" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Enter Printer Name and Comments" msgstr "Unesite ime štampača i komentare" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "The following printers\n" "\n" "%s%s\n" "are directly connected to your system" msgstr "" "Sljedeći štampači\n" "\n" "%s%s\n" "su direktno spojeni na vaš sistem" #: ../../network/modem.pm:1 #, c-format msgid "You don't have any winmodem" msgstr "Nemate winmodem" #: ../../standalone/drakTermServ:1 #, c-format msgid "type: %s" msgstr "tip: %s" #: ../../keyboard.pm:1 #, c-format msgid "Slovakian (QWERTY)" msgstr "Slovačka (QWERTY)" #: ../../standalone/drakbackup:1 #, c-format msgid "" "This should be a comma-separated list of local users or email addresses that " "you want the backup results sent to. You will need a functioning mail " "transfer agent setup on your system." msgstr "" "Ovo bi trebala biti lista lokalnih korisnika razdvojenih zarezom ili email " "adresa kojima želite poslati rezultate backupa. Biće vam potreban ispravno " "podešen mail transfer agent na vašem sistemu." #: ../../standalone/draksound:1 #, c-format msgid "No Sound Card detected!" msgstr "Nije izabrana zvučna kartica!" #: ../../install_steps_interactive.pm:1 ../../standalone/mousedrake:1 #, c-format msgid "Mouse Port" msgstr "Port miša" #: ../../security/l10n.pm:1 #, c-format msgid "Check for unsecured accounts" msgstr "Provjeri neupotrijebljene račune" #: ../../standalone/drakTermServ:1 #, c-format msgid "" "Need to restart the Display Manager for full changes to take effect. \n" "(service dm restart - at the console)" msgstr "" "Morate restartovati Display Manager da bi izmjene stupile na snagu. \n" "(na konzoli restartujte dm servis)" #: ../../standalone/logdrake:1 #, c-format msgid "Ftp Server" msgstr "FTP server" #: ../../lang.pm:1 #, c-format msgid "Uganda" msgstr "Uganda" #: ../../standalone/drakfont:1 #, c-format msgid "%s fonts conversion" msgstr "konverzija %s fontova" #: ../../standalone/harddrake2:1 #, c-format msgid "the type of bus on which the mouse is connected" msgstr "vrsta sabirnice na koju je spojen miš" #: ../../help.pm:1 #, c-format msgid "" "As a review, DrakX will present a summary of information it has about your\n" "system. Depending on your installed hardware, you may have some or all of\n" "the following entries. Each entry is made up of the configuration item to\n" "be configured, followed by a quick summary of the current configuration.\n" "Click on the corresponding \"%s\" button to change that.\n" "\n" " * \"%s\": check the current keyboard map configuration and change that if\n" "necessary.\n" "\n" " * \"%s\": check the current country selection. If you are not in this\n" "country, click on the \"%s\" button and choose another one. If your country\n" "is not in the first list shown, click the \"%s\" button to get the complete\n" "country list.\n" "\n" " * \"%s\": By default, DrakX deduces your time zone based on the country\n" "you have chosen. You can click on the \"%s\" button here if this is not\n" "correct.\n" "\n" " * \"%s\": check the current mouse configuration and click on the button to\n" "change it if necessary.\n" "\n" " * \"%s\": clicking on the \"%s\" button will open the printer\n" "configuration wizard. Consult the corresponding chapter of the ``Starter\n" "Guide'' for more information on how to setup a new printer. The interface\n" "presented there is similar to the one used during installation.\n" "\n" " * \"%s\": if a sound card is detected on your system, it is displayed\n" "here. If you notice the sound card displayed is not the one that is\n" "actually present on your system, you can click on the button and choose\n" "another driver.\n" "\n" " * \"%s\": by default, DrakX configures your graphical interface in\n" "\"800x600\" or \"1024x768\" resolution. If that does not suit you, click on\n" "\"%s\" to reconfigure your graphical interface.\n" "\n" " * \"%s\": if a TV card is detected on your system, it is displayed here.\n" "If you have a TV card and it is not detected, click on \"%s\" to try to\n" "configure it manually.\n" "\n" " * \"%s\": if an ISDN card is detected on your system, it will be displayed\n" "here. You can click on \"%s\" to change the parameters associated with the\n" "card.\n" "\n" " * \"%s\": If you want to configure your Internet or local network access\n" "now.\n" "\n" " * \"%s\": this entry allows you to redefine the security level as set in a\n" "previous step ().\n" "\n" " * \"%s\": if you plan to connect your machine to the Internet, it's a good\n" "idea to protect yourself from intrusions by setting up a firewall. Consult\n" "the corresponding section of the ``Starter Guide'' for details about\n" "firewall settings.\n" "\n" " * \"%s\": if you wish to change your bootloader configuration, click that\n" "button. This should be reserved to advanced users.\n" "\n" " * \"%s\": here you'll be able to fine control which services will be run\n" "on your machine. If you plan to use this machine as a server it's a good\n" "idea to review this setup." msgstr "" "DrakX će vam pružiti sažetak raznih informacija koje su prikupljene\n" "o vašem sistemu. Ovisno o instaliranom hardveru, vjerovatno imate\n" "neke ili sve od navedenih stavki. Pojedinačna stavka se sastoji od\n" "onoga što je potrebno podesiti, nakon čega slijedi kraći sažetak trenutne\n" "konfiguracije. Da biste ovo izmijenili, kliknite na odgovarajuće dugme \"%s" "\".\n" "\n" "* \"%s\": provjerite trenutnu mapu tastature i izmijenite je ako je\n" "potrebno.\n" "\n" "* \"%s\": provjerite trenutno izabranu državu. Ako se nalazite negdje\n" "drugo, kliknite na dugme \"%s\" i izaberite neku drugu. Ako se vaša\n" "zemlja ne nalazi na prikazanoj listi, kliknite na dugme \"%s\" da biste\n" "dobili cjelokupnu listu zemalja.\n" "\n" "* \"%s\": DrakX automatski određuje vašu vremensku zonu\n" "na osnovu države koju ste izabrali. Možete kliknuti na dugme \"%s\"\n" "ako ovo nije ispravno.\n" "\n" "* \"%s\": provjerite trenutnu konfiguraciju miša i klinite na dugme da je\n" "promijenite ako je to potrebno.\"\n" "\n" "* \"%s\": klikanjem na dugme \"%s\" otvoriće se čarobnjak za\n" "podešavanje štampača. Pogledajte odgovarajuće poglavlje ''Vodiča za\n" "početnike'' za više informacija o podešavanju novog štampača. Interfejs\n" "koji je tamo prikazan je sličan onom koji će biti korišten tokom " "instalacije.\n" "\n" "* \"%s\": ako je na vašem sistemu otkrivena zvučna kartica, ona će\n" "biti prikazana ovdje. Ako primjetite da prikazana zvučna kartica nije ona\n" "koja je ustvari dio vašeg sistema, možete kliknuti na dugme i odabrati neki\n" "drugi drajver.\n" "\n" "* \"%s\": DrakX će podesiti vaš grafički interfejs za rad na\n" "rezoluciji \"800x600\" ili \"1024x768\". Ako vam to ne odgovara, kliknite\n" "na dugme \"%s\" kako biste drugačije podesili vaš interfejs.\n" "\n" "* \"%s\": ako je na vašem sistemu prepoznata TV kartica, biće\n" "prikazana ovdje. Ako imate TV karticu koja nije prepoznata, kliknite na\n" "dugme \"%s\" kako biste pokušali podesiti je ručno.\n" "\n" "* \"%s\": ako je na vašem sistemu otkrivena ISDN kartica, ona\n" "će biti prikazana ovdje. Možete kliknuti na dugme \"%s\" da promijenite\n" "parametre vezane za nju.\n" "\n" "* \"%s\": ako želite, možete podesiti vaš Internet pristup ili pristup\n" "lokalnoj mreži.\n" "\n" "* \"%s\": ovdje možete promijeniti nivo sigurnosti sistema koji\n" "je podešen ranije.\n" "\n" "* \"%s\": ako planirate povezati vaš računar na Internet, pametno je\n" "zaštititi ga od upada postavljanjem firewalla. Pogledajte odgovarajuće\n" "poglavlje ''Vodiča za početnike'' za detalje o podešavanju firewalla.\n" "\n" "* \"%s\": ako želite promijeniti postavke bootloadera, kliknite na to\n" "dugme. Ovo bi trebalo biti rezervisano za napredne korisnike.\n" "\n" "* \"%s\": ovdje možete fino podešavati koji servisi će biti pokrenuti\n" "na vašem računaru. Ako planirate koristiti ovaj računar kao server,\n" "dobra je ideja još jednom pregledati ove postavke." #: ../../lang.pm:1 #, c-format msgid "Comoros" msgstr "Komori" #: ../../standalone/drakbackup:1 #, c-format msgid "May" msgstr "Maj" #: ../../standalone/drakboot:1 #, c-format msgid "Yaboot mode" msgstr "Yaboot mod" #: ../../mouse.pm:1 #, c-format msgid "Generic 3 Button Mouse" msgstr "Opšti miš sa 3 dugmeta" #: ../../standalone/drakxtv:1 #, c-format msgid "USA (cable)" msgstr "USA (kablovska)" #: ../../standalone/drakboot:1 #, c-format msgid "" "Can't relaunch LiLo!\n" "Launch \"lilo\" as root in command line to complete LiLo theme installation." msgstr "" "Ne mogu pokrenuti LiLo!\n" "Izvršite \"lilo\" kao root u komandnoj liniji da dovršite instalaciju LiLo " "teme." #: ../../standalone/drakbackup:1 #, c-format msgid "Select another media to restore from" msgstr "Izaberite drugi medij za vraćanje" #: ../../standalone/drakbug:1 #, c-format msgid "Software Manager" msgstr "Upravljanje programima" #: ../../interactive/stdio.pm:1 #, c-format msgid "Re-submit" msgstr "Ponovo pošalji" #: ../../standalone/drakbackup:1 #, c-format msgid "CD in place - continue." msgstr "CD na mjestu - nastavljam." #: ../../common.pm:1 #, c-format msgid "KB" msgstr "KB" #: ../../install_steps_interactive.pm:1 #, c-format msgid "Network & Internet" msgstr "Mreža i Internet" #: ../../keyboard.pm:1 #, c-format msgid "Lithuanian \"phonetic\" QWERTY" msgstr "Litvanska \"fonetska\" QWERTY" #: ../../standalone/drakTermServ:1 #, c-format msgid "Net Boot Images" msgstr "Net Boot Images" #: ../../standalone/scannerdrake:1 #, c-format msgid "Sharing of local scanners" msgstr "Dijeljenje lokalnih skenera" #: ../../Xconfig/monitor.pm:1 #, c-format msgid "Plug'n Play probing failed. Please select the correct monitor" msgstr "" "Plug'n'Play probanje nije uspjelo. Molim izaberite odgovarajući monitor" #: ../../../move/move.pm:1 #, c-format msgid "Detect again USB key" msgstr "" #: ../../services.pm:1 #, c-format msgid "Services and deamons" msgstr "Servisi i demoni" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Remote host name missing!" msgstr "Ime udaljenog računara nedostaje!" #: ../../fsedit.pm:1 #, c-format msgid "with /usr" msgstr "sa /usr" #: ../../help.pm:1 ../../install_steps_interactive.pm:1 #: ../../standalone/drakbackup:1 #, c-format msgid "Network" msgstr "Mreža" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Auto-detect printers connected to machines running Microsoft Windows" msgstr "Automatski prepoznaj štampače spojene na Microsoft Windows računare" #: ../../any.pm:1 #, c-format msgid "This password is too simple" msgstr "Ova šifra je previše jednostavna" #: ../../security/l10n.pm:1 #, c-format msgid "Chkconfig obey msec rules" msgstr "Chkconfig poštuje msec pravila" #: ../../keyboard.pm:1 #, c-format msgid "Slovakian (QWERTZ)" msgstr "Slovačka (QWERTZ)" #: ../advertising/06-development.pl:1 #, c-format msgid "" "To modify and to create in different languages such as Perl, Python, C and C+" "+ has never been so easy thanks to GNU gcc 3 and the best Open Source " "development environments." msgstr "" "Pisanje i izmjena programa u raznim jezicima kao što su Perl, Python, C i C+" "+ nikad nije bilo lakše, zahvaljujući GNU gcc 3 i najboljim Open Source " "razvojnim okolinama." #: ../../standalone/drakbackup:1 #, c-format msgid "No devices found" msgstr "Nije pronađen nijedan uređaj" #: ../../install_steps_interactive.pm:1 #, c-format msgid "Truly minimal install (especially no urpmi)" msgstr "Stvarno minimalna instalacija (posebno bez urpmi)" #: ../../standalone/drakbackup:1 #, c-format msgid "Use daemon" msgstr "Koristi demon" #: ../../install_steps_interactive.pm:1 ../../network/modem.pm:1 #: ../../standalone/drakauth:1 ../../standalone/drakconnect:1 #: ../../standalone/logdrake:1 #, c-format msgid "Authentication" msgstr "Baza korisnika" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Add this printer to Star Office/OpenOffice.org/GIMP" msgstr "Dodaj ovaj štampač u Star Office/OpenOffice.org/GIMP" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Additional CUPS servers: " msgstr "Dodatni CUP serveri:" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "Choose one of the auto-detected printers from the list or enter the hostname " "or IP and the optional port number (default is 9100) in the input fields." msgstr "" "Izaberite jedan od automatski prepoznatih štampača sa liste ili unesite ime " "računara ili IP i opcionalno broj porta (podrazumjeva se 9100) u polja za " "unos." #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Where do you want to mount %s?" msgstr "Gdje želite montirati uređaj %s?" #: ../../lang.pm:1 #, c-format msgid "Algeria" msgstr "Alžir" #: ../../standalone/drakbackup:1 #, c-format msgid "Restore Via Network" msgstr "Vrati putem mreže" #: ../../standalone/drakbackup:1 #, c-format msgid "Use tar and bzip2 (rather than tar and gzip)" msgstr "" #: ../../any.pm:1 #, c-format msgid "Initrd-size" msgstr "Initrd-veličina" #: ../../help.pm:1 #, c-format msgid "" "In the case that different servers are available for your card, with or\n" "without 3D acceleration, you are then asked to choose the server that best\n" "suits your needs." msgstr "" "U slučaju da postoji više raznih servera za vašu karticu, sa ili bez 3D\n" "ubrzanja, traži se da izaberete server koji najbolje odgovara vašim\n" "potrebama." #: ../../standalone/drakbackup:1 #, c-format msgid "\tBackups use tar and gzip\n" msgstr "\tBackupi koriste tar i gzip\n" #: ../../standalone/printerdrake:1 #, c-format msgid "Set as default" msgstr "Postavi kao podrazumijevano" #: ../../Xconfig/card.pm:1 #, c-format msgid "2 MB" msgstr "2 MB" #: ../../printer/main.pm:1 ../../standalone/printerdrake:1 #, c-format msgid "Configured on this machine" msgstr "Podešeno na ovom računaru" #: ../../keyboard.pm:1 #, c-format msgid "Both Control keys simultaneously" msgstr "Obje Control tipke istovremeno" #: ../../standalone/drakhelp:1 #, c-format msgid " --help - display this help \n" msgstr " --help - prikazuje ovu pomoć \n" #: ../../standalone.pm:1 #, c-format msgid "" "[OPTION]...\n" " --no-confirmation don't ask first confirmation question in " "MandrakeUpdate mode\n" " --no-verify-rpm don't verify packages signatures\n" " --changelog-first display changelog before filelist in the " "description window\n" " --merge-all-rpmnew propose to merge all .rpmnew/.rpmsave files found" msgstr "" "[OPTION]...\n" " --no-confirmation ne postavljaj prvo pitanje u MandrakeUpdate modu\n" " --no-verify-rpm ne provjeravaj potpise paketa\n" " --changelog-first prikaži changelog prije filelist u opisnom prozoru\n" " --merge-all-rpmnew predloži merge svih pronađenih .rpmnew/.rpmsave " "datoteka" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Setting Default Printer..." msgstr "Postavljam podrazumjevani štampač..." #: ../../standalone/drakgw:1 #, c-format msgid "Interface %s (using module %s)" msgstr "Interfejs %s (koristeći modul %s)" #: ../../standalone/draksplash:1 #, c-format msgid "Generating preview ..." msgstr "Generišem pregled..." #: ../../network/network.pm:1 #, c-format msgid "" "Freq should have the suffix k, M or G (for example, \"2.46G\" for 2.46 GHz " "frequency), or add enough '0' (zeroes)." msgstr "" "Frekvencija bi trebala imati završetak k, M ili G (na primjer, \"2.46G\" za " "frekvenciju 2.46 GHz) ili dodajte odgovarajući broj nula (0)." #: ../../standalone/draksec:1 #, c-format msgid "ignore" msgstr "ignoriši" #: ../../security/help.pm:1 #, c-format msgid "" "Allow/Forbid X connections:\n" "\n" "- ALL (all connections are allowed),\n" "\n" "- LOCAL (only connection from local machine),\n" "\n" "- NONE (no connection)." msgstr "" "Dozvoli/zabrani X konekcije:\n" "\n" "- SVE (sve konekcije su dozvoljene),\n" "\n" "- LOKAL (samo konekcije sa lokalne mašine),\n" "\n" "- NIŠTA (nisu dozvoljene konekcije)." #: ../../printer/main.pm:1 #, c-format msgid ", multi-function device on parallel port #%s" msgstr ", višenamjenski uređaj na paralelnom portu #%s" #: ../../mouse.pm:1 #, c-format msgid "serial" msgstr "serijski" #: ../../harddrake/data.pm:1 #, c-format msgid "DVD-ROM" msgstr "DVD-ROM" #: ../../keyboard.pm:1 #, c-format msgid "Georgian (\"Latin\" layout)" msgstr "Gruzijska (\"latinični\" izgled)" #: ../advertising/09-mdksecure.pl:1 #, c-format msgid "Get the best items with Mandrake Linux Strategic partners" msgstr "Nabavite najbolje proizvode kod strateških partnera Mandrake Linuxa" #: ../../modules/interactive.pm:1 #, c-format msgid "" "You may now provide options to module %s.\n" "Note that any address should be entered with the prefix 0x like '0x123'" msgstr "" "Sada možete navesti opcije za modul %s.\n" "Obratite pažnju da adrese trebate unositi sa prefiksom 0x kao npr. '0x123'" #: ../../lang.pm:1 #, c-format msgid "Kenya" msgstr "Kenija" #: ../../diskdrake/hd_gtk.pm:1 #, c-format msgid "Use ``Unmount'' first" msgstr "Najprije koristite ``Demontiraj''" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Installing mtools packages..." msgstr "Instaliram mtools pakete..." #: ../../any.pm:1 #, c-format msgid "You must specify a root partition" msgstr "Morate navesti root particiju" #: ../../standalone/draksplash:1 #, c-format msgid "first step creation" msgstr "kreiranje prvog koraka" #: ../../keyboard.pm:1 #, c-format msgid "Both Shift keys simultaneously" msgstr "Obje Shift tipke istovremeno" #: ../../standalone/drakhelp:1 #, c-format msgid "" " --id - load the html help page which refers to id_label\n" msgstr "" " --id - učitaj HTML help stranicu koja se odnosi na " "id_label\n" #: ../../standalone/scannerdrake:1 #, c-format msgid "Select a scanner model" msgstr "Izaberite model skenera" #: ../../security/help.pm:1 #, c-format msgid "Accept/Refuse bogus IPv4 error messages." msgstr "Prihvati/odbij neispravne IPv4 poruke o grešci." #: ../../printer/data.pm:1 #, c-format msgid "LPRng - LPR New Generation" msgstr "LPRng - LPR New Generation" #: ../../standalone/drakbackup:1 #, c-format msgid "Drakbackup Configuration" msgstr "Podešavanje Drakbackup-a" #: ../../standalone/logdrake:1 #, c-format msgid "Save as.." msgstr "Sačuvaj kao..." #: ../../lang.pm:1 #, c-format msgid "Korea (North)" msgstr "Koreja (Sjeverna)" #: ../../standalone/drakconnect:1 #, c-format msgid "" "This interface has not been configured yet.\n" "Launch the configuration wizard in the main window" msgstr "" "Interfejs još nije podešen.\n" "Pokrenite čarobnjak za podešavanje u glavnom prozoru" #: ../../install_gtk.pm:1 #, c-format msgid "System configuration" msgstr "Podešavanje sistema" #: ../../any.pm:1 ../../security/l10n.pm:1 #, c-format msgid "Autologin" msgstr "Autologin" #: ../../any.pm:1 #, c-format msgid "Domain Admin Password" msgstr "Administratorska šifra domena" #: ../advertising/05-desktop.pl:1 #, c-format msgid "" "Perfectly adapt your computer to your needs thanks to the 11 available " "Mandrake Linux user interfaces which can be fully modified: KDE 3.1, GNOME " "2.2, Window Maker, ..." msgstr "" "Prilagodite savršeno svoj računar vašim potrebama pomoću 11 dosupnih " "Mandrake Linux korisničkih okolina koje se mogu potpuno prilagoditi: KDE " "3.1, GNOME 2.2, Window Maker, ..." #: ../../printer/printerdrake.pm:1 #, c-format msgid "Configuring printer ..." msgstr "Podešavam štampač ..." #: ../../install_interactive.pm:1 ../../diskdrake/interactive.pm:1 #, c-format msgid "" "To ensure data integrity after resizing the partition(s), \n" "filesystem checks will be run on your next boot into Windows(TM)" msgstr "" "Da bi se osigurao integritet podataka nakon promjene veličine, \n" "prilikom idućeg pokretanja Windows(TM) biće izvršena provjera datotečnog " "sistema" #: ../../common.pm:1 #, c-format msgid "MB" msgstr "MB" #: ../../security/help.pm:1 #, c-format msgid "if set to yes, run some checks against the rpm database." msgstr "ako je postavljeno na da, izvršava neke provjere rpm baze podataka." #: ../../lang.pm:1 #, c-format msgid "Virgin Islands (British)" msgstr "Djevičanska ostrva (Britanska)" #: ../../lang.pm:1 #, c-format msgid "Bermuda" msgstr "Bermuda" #: ../../standalone/drakfont:1 #, c-format msgid "click here if you are sure." msgstr "kliknite ovdje ako ste sigurni." #: ../../standalone/drakbackup:1 #, c-format msgid "" "No configuration file found \n" "please click Wizard or Advanced." msgstr "" "Nije pronađena konfiguraciona datoteka \n" "molim kliknite na Čarobnjak ili Više opcija." #: ../../help.pm:1 #, c-format msgid "" "Listed here are the existing Linux partitions detected on your hard drive.\n" "You can keep the choices made by the wizard, since they are good for most\n" "common installations. If you make any changes, you must at least define a\n" "root partition (\"/\"). Do not choose too small a partition or you will not\n" "be able to install enough software. If you want to store your data on a\n" "separate partition, you will also need to create a \"/home\" partition\n" "(only possible if you have more than one Linux partition available).\n" "\n" "Each partition is listed as follows: \"Name\", \"Capacity\".\n" "\n" "\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n" "\"partition number\" (for example, \"hda1\").\n" "\n" "\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n" "\"sd\" if it is a SCSI hard drive.\n" "\n" "\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n" "hard drives:\n" "\n" " * \"a\" means \"master hard drive on the primary IDE controller\";\n" "\n" " * \"b\" means \"slave hard drive on the primary IDE controller\";\n" "\n" " * \"c\" means \"master hard drive on the secondary IDE controller\";\n" "\n" " * \"d\" means \"slave hard drive on the secondary IDE controller\".\n" "\n" "With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n" "\"second lowest SCSI ID\", etc." msgstr "" "Ovdje su navedene Linux particije koje već postoje na vašem hard disku.\n" "Možete zadržati izbore koje je napravio čarobnjak, pošto su oni dobri za\n" "uobičajene instalacije. Ako napravite neke izmjene, morate, ako ništa\n" "drugo, definisati root particiju (\"/\"). Nemojte izabrati premalu " "particiju\n" "ili nećete moći instalirati dovoljno softvera. Ako želite držati vaše " "podatke\n" "na zasebnoj particiji, trebate takođe napraviti \"/home\" particiju (što je\n" "moguće samo ako imate više od jedne Linux particije na raspolaganju).\n" "\n" "Svaka particija je navedena ovako: \"Ime\", \"Kapacitet\".\n" "\n" "\"Ime\" se sastoji od: \"vrsta hard diska\", \"broj hard diska\", \"broj\n" "particije\" (na primjer, \"hda1\").\n" "\n" "\n" "\"Vrsta hard diska\" je \"hd\" ako je vaš hard disk IDE, a \"sd\" ako je\n" "u pitanju SCSI hard disk.\n" "\n" "\"Broj hard diska\" je uvijek slovo nakon \"hd\" ili \"sd\". Kod IDE hard\n" "diskova:\n" "\n" " * \"a\" znači \"master hard disk na primarnom IDE kontroleru\";\n" "\n" " * \"b\" znači \"slave hard disk na primarnom IDE kontroleru\";\n" "\n" " * \"c\" znači \"master hard disk na sekundarnom IDE kontroleru\";\n" "\n" " * \"d\" znači \"slave hard disk na sekundarnom IDE kontroleru\";\n" "\n" "Kod SCSI hard diskova, \"a\" je \"disk sa najnižim SCSI IDom\", \"b\"\n" "je \"drugi najniži SCSI ID\", itd." #: ../../help.pm:1 ../../interactive.pm:1 ../../interactive/gtk.pm:1 #, c-format msgid "Remove" msgstr "Pobriši" #: ../../lang.pm:1 #, c-format msgid "Lesotho" msgstr "Lesoto" #: ../../ugtk2.pm:1 #, c-format msgid "utopia 25" msgstr "utopia 25" #: ../../printer/main.pm:1 #, c-format msgid "Pipe job into a command" msgstr "Spoji zadatak na komandu" #: ../../../move/move.pm:1 #, fuzzy, c-format msgid "Remove system config files" msgstr "Ukloniti loopback datoteku?" #: ../../lang.pm:1 #, c-format msgid "Cote d'Ivoire" msgstr "Obala Slonovače" #: ../../standalone/harddrake2:1 #, c-format msgid "new dynamic device name generated by core kernel devfs" msgstr "novo dinamičko ime uređaja koje generiše kernelov devfs" #: ../../help.pm:1 ../../install_any.pm:1 ../../interactive.pm:1 #: ../../ugtk2.pm:1 ../../modules/interactive.pm:1 #: ../../standalone/drakclock:1 ../../standalone/drakgw:1 #: ../../standalone/harddrake2:1 #, c-format msgid "Yes" msgstr "Da" #: ../../network/isdn.pm:1 #, c-format msgid "Which protocol do you want to use?" msgstr "Koji protokol želite koristiti?" #: ../../standalone/drakbackup:1 #, c-format msgid "Restore Progress" msgstr "Napredak vraćanja" #: ../../lang.pm:1 #, c-format msgid "Estonia" msgstr "Estonija" #: ../../partition_table.pm:1 #, c-format msgid "" "You have a hole in your partition table but I can't use it.\n" "The only solution is to move your primary partitions to have the hole next " "to the extended partitions." msgstr "" "Imate rupu u vašoj tabeli particija, ali je ja ne mogu upotrijebiti.\n" "Jedino rješenje je da pomjerite vaše primarne particije, kako bi se rupa " "našla pored extended particija" #: ../../standalone/scannerdrake:1 #, c-format msgid "Choose the host on which the local scanners should be made available:" msgstr "Izaberite računar kojem treba omogućiti pristup lokalnim skenerima:" #: ../../standalone/harddrake2:1 #, c-format msgid "Channel" msgstr "Kanal" #: ../../help.pm:1 ../../interactive.pm:1 ../../interactive/gtk.pm:1 #: ../../standalone/drakbackup:1 ../../standalone/drakfont:1 #, c-format msgid "Add" msgstr "Dodaj" #: ../../standalone/drakbackup:1 #, c-format msgid " Error while sending mail. \n" msgstr " Greška tokom slanja pošte. \n" #: ../../help.pm:1 ../../install_steps_interactive.pm:1 #: ../../standalone/keyboarddrake:1 #, c-format msgid "Keyboard" msgstr "Tastatura" #: ../../standalone/drakbackup:1 #, c-format msgid "" "Insert the CD with volume label %s\n" " in the CD drive under mount point /mnt/cdrom" msgstr "" "Ubacite CD sa oznakom %s u CD\n" "jedinicu pod tačkom montiranja /mnt/cdrom" #: ../../network/network.pm:1 #, c-format msgid "" "Rate should have the suffix k, M or G (for example, \"11M\" for 11M), or add " "enough '0' (zeroes)." msgstr "" "Brzina bi trebala imati završetak k, M ili G (na primjer, \"11M\" za 11M) " "ili dodajte odgovarajući broj nula (0)." #: ../../network/netconnect.pm:1 #, c-format msgid "Choose the connection you want to configure" msgstr "Izaberite konekciju koju želite podesiti" #: ../../standalone/draksec:1 #, c-format msgid "Please wait, setting security level..." msgstr "Molim sačekajre, podešavam nivo sigurnosti..." #: ../../network/network.pm:1 #, c-format msgid "Configuring network device %s" msgstr "Podešavam mrežni uređaj %s" #: ../../install_steps_interactive.pm:1 #, c-format msgid "activated" msgstr "aktiviran" #: ../../standalone/drakpxe:1 #, c-format msgid "Please choose which network interface will be used for the dhcp server." msgstr "" "Molim izaberite koji mrežni interfejs želite koristiti za spajanje na DHCP " "server." #: ../../install_steps_interactive.pm:1 #, c-format msgid "Finding packages to upgrade..." msgstr "Pronalazim pakete za unaprjeđenje..." #: ../../diskdrake/dav.pm:1 ../../diskdrake/interactive.pm:1 #, c-format msgid "Mount point: " msgstr "Tačka montiranja: " #: ../../standalone/drakfont:1 #, c-format msgid "parse all fonts" msgstr "obradi sve fontove" #: ../../security/help.pm:1 #, c-format msgid "Allow/Forbid direct root login." msgstr "Dozvoli/zabrani direktan root login." #: ../../security/help.pm:1 #, c-format msgid " Accept/Refuse broadcasted icmp echo." msgstr " Dozvoli/zabrani broadcast-ovani ICMP eho." #: ../../help.pm:1 ../../install_steps_interactive.pm:1 #, c-format msgid "With X" msgstr "Sa X-om" #: ../../Xconfig/card.pm:1 #, c-format msgid "Multi-head configuration" msgstr "Multi-head konfiguracija" #: ../../standalone/drakbug:1 #, c-format msgid "No browser available! Please install one" msgstr "Nemate nijedan browser! Molim instalirajte neki browser" #: ../../Xconfig/main.pm:1 #, c-format msgid "" "Keep the changes?\n" "The current configuration is:\n" "\n" "%s" msgstr "" "Zadržati izmjene?\n" "Trenutna konfiguracija je:\n" "\n" "%s" #: ../../fsedit.pm:1 #, c-format msgid "You can't use ReiserFS for partitions smaller than 32MB" msgstr "Ne možete koristiti ReiserFS za particije manje od 32MB" #: ../../services.pm:1 #, c-format msgid "" "The rwho protocol lets remote users get a list of all of the users\n" "logged into a machine running the rwho daemon (similiar to finger)." msgstr "" "Rwho protokol omogućava udaljenim korisnicima da dobiju listu svih\n" "korisnika prijavljenih na računar na kojem radi rwho demon (slično fingeru)." #: ../../network/modem.pm:1 ../../standalone/drakconnect:1 #, c-format msgid "Domain name" msgstr "Ime domena" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Sharing of local printers" msgstr "Dijeljenje lokalnih štampača" #: ../../security/help.pm:1 #, c-format msgid "Enable/Disable libsafe if libsafe is found on the system." msgstr "Uključi/isključi libsafe ako je libsafe pronađen na sistemu." #: ../../printer/printerdrake.pm:1 #, c-format msgid "Available printers" msgstr "Dostupni štampači" #: ../../standalone/drakbackup:1 #, c-format msgid "NO" msgstr "NE" #: ../../diskdrake/hd_gtk.pm:1 ../../diskdrake/interactive.pm:1 #, c-format msgid "Empty" msgstr "Prazno" #: ../../standalone/draksplash:1 #, c-format msgid "text width" msgstr "širina teksta" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Where do you want to mount device %s?" msgstr "Gdje želite montirati uređaj %s?" #: ../../standalone/drakgw:1 #, c-format msgid "The default lease (in seconds)" msgstr "Podrazumjevani lease (u sekundama)" #: ../../network/netconnect.pm:1 #, c-format msgid "" "We are now going to configure the %s connection.\n" "\n" "\n" "Press \"%s\" to continue." msgstr "" "Sada ćemo podesiti konekciju %s.\n" "\n" "\n" "Pritisnite \"%s\" za nastavak." #: ../../printer/main.pm:1 ../../printer/printerdrake.pm:1 #, c-format msgid "Interface \"%s\"" msgstr "Interfejs \"%s\"" #: ../../install_steps_interactive.pm:1 #, c-format msgid "With basic documentation (recommended!)" msgstr "Sa osnovnom dokumentacijom (preporučeno)" #: ../../mouse.pm:1 #, c-format msgid "1 button" msgstr "1 dugme" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "\n" "There are %d unknown printers directly connected to your system" msgstr "" "\n" "Na vaš sistem je spojeno %d nepoznatih štampača" #: ../../Xconfig/main.pm:1 #, c-format msgid "Test" msgstr "Test" #: ../../lang.pm:1 #, c-format msgid "Korea" msgstr "Koreja" #: ../../interactive/stdio.pm:1 #, c-format msgid "Your choice? (default `%s'%s) " msgstr "Vaš izbor? (podrazumjevano '%s' %s)" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Raw printer" msgstr "Sirovi štampač" #: ../../standalone/harddrake2:1 #, c-format msgid "official vendor name of the cpu" msgstr "zvanično ime proizvođača procesora" #: ../../standalone/drakTermServ:1 #, c-format msgid "Useless without Terminal Server" msgstr "Beskorisno bez Terminal servera" #: ../../Xconfig/monitor.pm:1 ../../standalone/harddrake2:1 #, c-format msgid "Vendor" msgstr "Proizvođač" #: ../../standalone/drakgw:1 #, c-format msgid "Interface %s" msgstr "Interfejs %s" #: ../../steps.pm:1 #, c-format msgid "Configure mouse" msgstr "Podešavanje miša" #: ../../install_steps_interactive.pm:1 #, c-format msgid "Choose the mount points" msgstr "Izaberite tačke montiranja" #: ../../help.pm:1 ../../standalone/drakTermServ:1 ../../standalone/drakfont:1 #, c-format msgid "OK" msgstr "U redu" #: ../../keyboard.pm:1 #, c-format msgid "Yugoslavian (latin)" msgstr "Jugoslavenska (latinično)" #: ../../install_steps_gtk.pm:1 ../../install_steps_interactive.pm:1 #, c-format msgid "Installing" msgstr "Instaliram" #: ../../mouse.pm:1 #, c-format msgid "Logitech MouseMan with Wheel emulation" msgstr "Logitech MouseMan sa simulacijom točkića" #: ../../any.pm:1 #, c-format msgid "Launch userdrake" msgstr "Pokreni userdrake" #: ../../install_steps_interactive.pm:1 #, c-format msgid "Is this an install or an upgrade?" msgstr "Da li je ovo instalacija ili unaprjeđenje?" #: ../../help.pm:1 #, c-format msgid "ISDN card" msgstr "ISDN kartica" #: ../advertising/02-community.pl:1 #, c-format msgid "" "To share your own knowledge and help build Linux software, join our " "discussion forums on our \"Community\" webpages." msgstr "" "Podijelite vaše znanje i pomozite izgradnju Linux softvera, pridružite se " "diskusijskim grupama na našim \"Community\" stranicama." #: ../../standalone/drakbackup:1 #, c-format msgid "\t-Hard drive.\n" msgstr "\t-Hard disk.\n" #: ../../help.pm:1 #, c-format msgid "" "This step is activated only if an old GNU/Linux partition has been found on\n" "your machine.\n" "\n" "DrakX now needs to know if you want to perform a new install or an upgrade\n" "of an existing Mandrake Linux system:\n" "\n" " * \"%s\": For the most part, this completely wipes out the old system. If\n" "you wish to change how your hard drives are partitioned, or change the file\n" "system, you should use this option. However, depending on your partitioning\n" "scheme, you can prevent some of your existing data from being over-written.\n" "\n" " * \"%s\": this installation class allows you to update the packages\n" "currently installed on your Mandrake Linux system. Your current\n" "partitioning scheme and user data is not altered. Most of other\n" "configuration steps remain available, similar to a standard installation.\n" "\n" "Using the ``Upgrade'' option should work fine on Mandrake Linux systems\n" "running version \"8.1\" or later. Performing an Upgrade on versions prior\n" "to Mandrake Linux version \"8.1\" is not recommended." msgstr "" "Ovaj korak se aktivira samo ako je na vašem računaru pronađena postojeća\n" "GNU/Linux particija.\n" "\n" "DrakX sada treba znati da li želite izvršiti novu instalaciju ili\n" "nadogradnju postojećeg Mandrake Linux sistema:\n" "\n" " * \"%s\": Najčešće ovo će u potpunosti obrisati stari sistem. Ako želite\n" "promijeniti particioniranje starog hard diska ili promijeniti datotečni\n" "sistem, trebate koristiti ovu opciju. Ali, ovisno o vašoj šemi " "particioniranja,\n" "možete spriječiti da neki od vaših postojećih podataka budu prepisani.\n" "\n" " * \"%s\": Ova vrsta instalacije vam omogućuje da updatujete pakete\n" "koji su trenutno instalirani na vašem Mandrake Linux sistemu. Vaša trenutna\n" "šema particioniranja i korisnički podaci neće biti izmijenjeni. Većina\n" "ostalih koraka konfiguracije ostaju kao što jesu, slično običnoj " "instalaciji.\n" "\n" "Opcija ''Nadogradi'' bi trebala raditi ispravno na Mandrake Linux sistemima\n" "koji koriste verziju \"8.1\" ili kasniju. Obavljanje nadogradnje na ranijim\n" "verzijama Mandrake Linuxa, prije verzije \"8.1\", nije preporučeno." #: ../../standalone/drakfont:1 #, c-format msgid "" "\n" " Copyright (C) 2001-2002 by MandrakeSoft \n" " DUPONT Sebastien (original version)\n" " CHAUMETTE Damien \n" "\n" " This program is free software; you can redistribute it and/or modify\n" " it under the terms of the GNU General Public License as published by\n" " the Free Software Foundation; either version 2, or (at your option)\n" " any later version.\n" "\n" " This program is distributed in the hope that it will be useful,\n" " but WITHOUT ANY WARRANTY; without even the implied warranty of\n" " MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" " GNU General Public License for more details.\n" "\n" " You should have received a copy of the GNU General Public License\n" " along with this program; if not, write to the Free Software\n" " Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" "\n" " Thanks:\n" " - pfm2afm: \n" "\t by Ken Borgendale:\n" "\t Convert a Windows .pfm file to a .afm (Adobe Font Metrics)\n" " - type1inst:\n" "\t by James Macnicol: \n" "\t type1inst generates files fonts.dir fonts.scale & Fontmap.\n" " - ttf2pt1: \n" "\t by Andrew Weeks, Frank Siegert, Thomas Henlich, Sergey Babkin \n" " Convert ttf font files to afm and pfb fonts\n" msgstr "" "\n" " Copyright (C) 2001-2002 by MandrakeSoft \n" "\tDUPONT Sebastien (original version)\n" " CHAUMETTE Damien \n" "\n" " This program is free software; you can redistribute it and/or modify\n" " it under the terms of the GNU General Public License as published by\n" " the Free Software Foundation; either version 2, or (at your option)\n" " any later version.\n" "\n" " This program is distributed in the hope that it will be useful,\n" " but WITHOUT ANY WARRANTY; without even the implied warranty of\n" " MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" " GNU General Public License for more details.\n" "\n" " You should have received a copy of the GNU General Public License\n" " along with this program; if not, write to the Free Software\n" " Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" "\n" " Hvala:\n" " - pfm2afm: \n" "\t autor: Ken Borgendale:\n" "\t Konvertuje Windows .pfm datoteke u .afm (Adobe Font Metrics)\n" " - type1inst:\n" "\t autor: James Macnicol: \n" "\t Generiše datoteke fonts.dir fonts.scale & Fontmap.\n" " - ttf2pt1: \n" "\t autor: Andrew Weeks, Frank Siegert, Thomas Henlich, Sergey Babkin \n" " Konvertuje ttf font datoteke u afm i pfb fontove\n" #: ../../printer/main.pm:1 #, c-format msgid "Printer on remote CUPS server" msgstr "Štampač na udaljenom CUPS serveru" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "Failed to remove the printer \"%s\" from Star Office/OpenOffice.org/GIMP." msgstr "Nisam uspio ukloniti štampač \"%s\" iz Star/Open Offica." #: ../../standalone/drakfont:1 #, c-format msgid "here if no." msgstr "ovdje ako ne." #: ../../network/network.pm:1 #, c-format msgid "DHCP host name" msgstr "DHCP ime računara" #: ../../standalone/drakgw:1 #, c-format msgid "The maximum lease (in seconds)" msgstr "Maksimalni lease (u sekundama)" #: ../../install_steps_interactive.pm:1 ../../standalone/mousedrake:1 #, c-format msgid "Please choose which serial port your mouse is connected to." msgstr "Molim izaberite na kojem serijskom portu je spojen vaš miš." #: ../../printer/printerdrake.pm:1 #, c-format msgid "Did it work properly?" msgstr "Da li je radilo ispravno?" #: ../../fs.pm:1 #, c-format msgid "Mount the file system read-only." msgstr "Montiraj datotečni sistem samo za čitanje." #: ../../security/level.pm:1 #, c-format msgid "Poor" msgstr "Loš" #: ../../security/l10n.pm:1 #, c-format msgid "Report check result by mail" msgstr "Prijavi rezultate provjere mailom" #: ../../lang.pm:1 #, c-format msgid "Grenada" msgstr "Grenada" #: ../../standalone/drakgw:1 #, c-format msgid "The DHCP start range" msgstr "Početak DHCP raspona" #: ../../any.pm:1 #, c-format msgid "Unsafe" msgstr "Nesigurno" #: ../../network/drakfirewall.pm:1 #, fuzzy, c-format msgid "SSH server" msgstr "SSH server" #: ../../diskdrake/interactive.pm:1 #, c-format msgid ", %s sectors" msgstr ", %s sektora" #: ../../help.pm:1 ../../install_any.pm:1 ../../interactive.pm:1 #: ../../ugtk2.pm:1 ../../modules/interactive.pm:1 #: ../../standalone/drakclock:1 ../../standalone/harddrake2:1 #, c-format msgid "No" msgstr "Ne" #: ../../lang.pm:1 #, c-format msgid "Guadeloupe" msgstr "Gvadalupe" #: ../../keyboard.pm:1 #, c-format msgid "Kannada" msgstr "Kannada" #: ../../standalone/drakfont:1 #, c-format msgid "could not find any font.\n" msgstr "ne mogu naći nijedan font.\n" #: ../../standalone/keyboarddrake:1 #, c-format msgid "Do you want the BackSpace to return Delete in console?" msgstr "Želite li da BackSpace vrati Delete u konzoli?" #: ../../Xconfig/monitor.pm:1 #, c-format msgid "Vertical refresh rate" msgstr "Brzina vertikalnog osvježavanja" #: ../../install_steps_auto_install.pm:1 ../../install_steps_stdio.pm:1 #, c-format msgid "Entering step `%s'\n" msgstr "Prelazim na korak `%s'\n" #: ../../lang.pm:1 #, c-format msgid "Niger" msgstr "Niger" #: ../../mouse.pm:1 #, c-format msgid "Logitech MouseMan" msgstr "Logitech MouseMan" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Removing %s ..." msgstr "Uklanjam %s..." #: ../../install_steps_interactive.pm:1 #, c-format msgid "No printer" msgstr "Nema štampača" #: ../../standalone/logdrake:1 #, c-format msgid "alert configuration" msgstr "postavka upozorenja" #: ../../printer/printerdrake.pm:1 #, c-format msgid "NetWare Printer Options" msgstr "Opcije NetWare štampača" #: ../../standalone/draksplash:1 #, c-format msgid "%s BootSplash (%s) preview" msgstr "%s BootSplash (%s) pregled" #: ../../standalone/drakbackup:1 #, c-format msgid "February" msgstr "Februar" #: ../../standalone/drakfloppy:1 #, c-format msgid "General" msgstr "Općenito" #: ../../security/l10n.pm:1 #, c-format msgid "/etc/issue* exist" msgstr "/etc/issue* postoji" #: ../../steps.pm:1 #, c-format msgid "Add a user" msgstr "Dodavanje korisnika" #: ../../standalone/drakconnect:1 #, c-format msgid "Network configuration (%d adapters)" msgstr "Podešavanje mreže (%d adaptera)" #: ../../standalone/drakbackup:1 #, c-format msgid "April" msgstr "April" #: ../../standalone/drakconnect:1 #, c-format msgid "Deactivate now" msgstr "Zaustavi sada" #: ../../any.pm:1 ../../install_any.pm:1 ../../standalone.pm:1 #, c-format msgid "Mandatory package %s is missing" msgstr "Nedostaje obavezan paket %s" #: ../../lang.pm:1 #, c-format msgid "Philippines" msgstr "Filipini" #: ../../interactive.pm:1 ../../ugtk2.pm:1 #: ../../Xconfig/resolution_and_depth.pm:1 ../../interactive/gtk.pm:1 #: ../../interactive/http.pm:1 ../../interactive/newt.pm:1 #: ../../interactive/stdio.pm:1 ../../standalone/drakbackup:1 #: ../../standalone/drakboot:1 ../../standalone/drakconnect:1 #: ../../standalone/drakfloppy:1 ../../standalone/drakperm:1 #: ../../standalone/draksec:1 ../../standalone/mousedrake:1 #: ../../standalone/net_monitor:1 #, c-format msgid "Ok" msgstr "U redu" #: ../../standalone/drakTermServ:1 #, c-format msgid "drakTermServ Overview" msgstr "drakTermServ pregled" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Print Queue Name" msgstr "Naziv reda za štampu" #: ../../install_steps_interactive.pm:1 #, c-format msgid "Do you want to use aboot?" msgstr "Da li želite koristiti aboot?" #: ../../keyboard.pm:1 #, c-format msgid "Belarusian" msgstr "Bjeloruska" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "PDQ only supports local printers, remote LPD printers, and Socket/TCP " "printers.\n" msgstr "" "PDQ podržava samo lokalne štampače, udaljene LPD štampačei Socket/TCP " "štampače.\n" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Move files to the new partition" msgstr "Prebaci datoteke na novu particiju" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "Add here the CUPS servers whose printers you want to use. You only need to " "do this if the servers do not broadcast their printer information into the " "local network." msgstr "" "Ovdje dodajte CUPS servere čije štampače želite koristiti. Ovo trebate " "raditi samo ako serveri ne broadcast-uju informacije o njihovim štampačima " "cijeloj lokalnoj mreži." #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "\n" "Welcome to the Printer Setup Wizard\n" "\n" "This wizard will help you to install your printer(s) connected to this " "computer.\n" "\n" "Please plug in and turn on all printers connected to this machine so that it/" "they can be auto-detected.\n" "\n" " Click on \"Next\" when you are ready, and on \"Cancel\" if you do not want " "to set up your printer(s) now." msgstr "" "\n" "Dobro došli u Čarobnjak za podešavanje štampača\n" "\n" "Ovaj čarobnjak će vam pomoći da instalirate štampače spojene na ovaj " "računar.\n" "\n" "Ako imate štampač spojen na ovaj računar, molim priključite ga na računar i " "upalite ga kako bi bio automatski prepoznat.\n" "\n" " Kliknite na \"Dalje\" kada budete spremni, ili na \"Odustani\" ako ne " "želite podesiti štampač sada." #: ../../lang.pm:1 #, c-format msgid "Pitcairn" msgstr "Pitcairn" #: ../../standalone/drakbackup:1 #, c-format msgid "Restore From Catalog" msgstr "Vrati iz kataloga" #: ../../install_steps_interactive.pm:1 #, c-format msgid "IDE" msgstr "IDE" #: ../../fs.pm:1 #, c-format msgid "mounting partition %s in directory %s failed" msgstr "montiranje particije %s u direktoriju %s nije uspjelo" #: ../../standalone/drakboot:1 #, c-format msgid "Lilo screen" msgstr "Lilo ekran" #: ../../bootloader.pm:1 ../../help.pm:1 #, c-format msgid "LILO with graphical menu" msgstr "LILO sa grafičkim menijem" #: ../../install_steps_gtk.pm:1 #, c-format msgid "Estimating" msgstr "Procjenjujem" #: ../../install_steps_gtk.pm:1 #, c-format msgid "You can't unselect this package. It is already installed" msgstr "Ne možete isključiti ovaj paket. On je već instaliran" #: ../../printer/printerdrake.pm:1 #, c-format msgid ", printer \"%s\" on SMB/Windows server \"%s\"" msgstr ", štampač \"%s\" na SMB/Windows serveru \"%s\"" #: ../../install_steps_gtk.pm:1 ../../install_steps_interactive.pm:1 #, c-format msgid "Go on anyway?" msgstr "Svejedno nastavi?" #: ../../install_steps_interactive.pm:1 #, c-format msgid "Looking for available packages and rebuilding rpm database..." msgstr "Tražim dostupne pakete i izgrađujem rpm bazu podataka..." #: ../../standalone/drakbackup:1 #, c-format msgid "" "\n" " DrakBackup Report \n" msgstr "" "\n" " DrakBackup Izvještaj \n" #: ../../standalone/drakbackup:1 #, c-format msgid "Does not appear to be recordable media!" msgstr "Izgleda da na ovaj medij nije moguće snimati!" #: ../../modules/interactive.pm:1 #, c-format msgid "Specify options" msgstr "Navedi opcije" #: ../../lang.pm:1 #, c-format msgid "Vanuatu" msgstr "Vanuatu" #: ../../standalone/drakbackup:1 #, c-format msgid "New user list:\n" msgstr "Nova lista korisnika:\n" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Either the server name or the server's IP must be given!" msgstr "Treba biti dato ili ime servera ili IP adresa servera!" #: ../../any.pm:1 #, c-format msgid "" "A custom bootdisk provides a way of booting into your Linux system without\n" "depending on the normal bootloader. This is useful if you don't want to " "install\n" "SILO on your system, or another operating system removes SILO, or SILO " "doesn't\n" "work with your hardware configuration. A custom bootdisk can also be used " "with\n" "the Mandrake rescue image, making it much easier to recover from severe " "system\n" "failures.\n" "\n" "If you want to create a bootdisk for your system, insert a floppy in the " "first\n" "drive and press \"Ok\"." msgstr "" "Vlastita boot disketa vam omogućuje da pokrenete Linux pri čemu ne ovisite\n" "od bootloader programa. Ovo je korisno ako ne želite instalirati SILO na\n" "vaš sistem, ako neki drugi operativni sistem uklanja SILO ili ako SILO ne " "radi\n" "na vašoj trenutnoj konfiguraciji. Vlastiti bootdisk se može takođe koristiti " "sa\n" "Mandrake rescue image, pri čemu je mnogo lakše ispraviti neke ozbiljne\n" "sistemske kvarove.\n" "\n" "Ako želite napraviti boot disketu za vaš sistem, stavite neku disketu u " "vašu\n" "prvu jedinicu i pritisnite \"U redu\"." #: ../../fsedit.pm:1 #, c-format msgid "You can't use an encrypted file system for mount point %s" msgstr "Ne možete koristiti šifrovani datotečni sistem za tačku montiranja %s" #: ../../security/help.pm:1 #, c-format msgid "Set the password history length to prevent password reuse." msgstr "" "Podesi dužinu historije šifara kojom se sprječava ponovno korištenje šifara." #: ../../lang.pm:1 #, c-format msgid "Norfolk Island" msgstr "Norfolk ostrvo" #: ../../standalone/drakboot:1 #, c-format msgid "Theme installation failed!" msgstr "Instalacija teme nije uspjela!" #: ../../fsedit.pm:1 #, c-format msgid "Nothing to do" msgstr "Nemam šta da radim" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Use for loopback" msgstr "Koristi za loopback" #: ../../standalone/drakbug:1 #, c-format msgid "Mandrake Bug Report Tool" msgstr "Mandrake alat za prijavu bugova" #: ../../standalone/printerdrake:1 #, c-format msgid "Apply filter" msgstr "Primijeni filter" #: ../../network/adsl.pm:1 #, c-format msgid "use pppoe" msgstr "koristi pppoe" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Moving files to the new partition" msgstr "Premještam datoteke na novu particiju" #: ../../Xconfig/card.pm:1 #, c-format msgid "XFree %s with EXPERIMENTAL 3D hardware acceleration" msgstr "XFree %s sa EKSPERIMENTALNIM 3D hardverskim ubrzanjem" #: ../../help.pm:1 ../../interactive.pm:1 #, c-format msgid "Advanced" msgstr "Više opcija" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Transfer" msgstr "Prebaci" #: ../../keyboard.pm:1 #, c-format msgid "Dvorak (Swedish)" msgstr "Dvorak (Švedska)" #: ../../lang.pm:1 #, c-format msgid "Afghanistan" msgstr "Afganistan" #: ../../standalone/drakbackup:1 #, c-format msgid "More Options" msgstr "Više opcija" #: ../../standalone/drakbackup:1 #, c-format msgid "Delete Hard Drive tar files after backup to other media." msgstr "Obriši tar datoteke sa diska nakon backupa na drugi medij." #: ../../lang.pm:1 #, c-format msgid "Burundi" msgstr "Burundi" #: ../../services.pm:1 #, c-format msgid "" "cron is a standard UNIX program that runs user-specified programs\n" "at periodic scheduled times. vixie cron adds a number of features to the " "basic\n" "UNIX cron, including better security and more powerful configuration options." msgstr "" "Cron je standardan UNIX program koji periodično pokreće programe koje\n" "zada korisnik. Vixie cron dodaje veći broj mogućnosti osnovnom\n" "UNIX cronu, uključujući bolju sigurnost i moćnije opcije za podešavanje." #: ../../standalone/drakTermServ:1 #, c-format msgid "Add Client -->" msgstr "Dodaj klijenta -->" #: ../../diskdrake/hd_gtk.pm:1 ../../diskdrake/interactive.pm:1 #, c-format msgid "Read carefully!" msgstr "Pročitajte pažljivo!" #: ../../standalone/drakbackup:1 #, c-format msgid "RW" msgstr "RW" #: ../../standalone/drakxtv:1 #, c-format msgid "" "Please,\n" "type in your tv norm and country" msgstr "" "Molim,\n" "unesite vaš tv standard i državu" #: ../../printer/printerdrake.pm:1 ../../standalone/harddrake2:1 #, c-format msgid "Port" msgstr "Port" #: ../../standalone/drakgw:1 #, c-format msgid "No (experts only)" msgstr "Ne (samo eksperti)" #: ../../standalone/drakTermServ:1 #, c-format msgid "No kernel selected!" msgstr "Nije izabran kernel!" #. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit) #. -PO: and keep them smaller than 79 chars long #: ../../bootloader.pm:1 #, c-format msgid "Press enter to boot the selected OS, 'e' to edit the" msgstr "Pritisnite enter za bootanje izabranog OSa, 'e' za editovanje" #: ../../standalone/drakperm:1 #, c-format msgid "Set-GID" msgstr "Set-GID" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "The encryption keys do not match" msgstr "Ključevi enkripcije se ne poklapaju" #: ../../standalone/drakbackup:1 #, c-format msgid "" "For a multisession CD, only the first session will erase the cdrw. Otherwise " "the cdrw is erased before each backup." msgstr "" "Za višesesijski CD, samo će prva sesija obrisati CDRW. U suprotnom, CDRW se " "briše prije svakog backupa." #: ../../printer/main.pm:1 #, c-format msgid "USB printer" msgstr "USB štampač" #: ../../keyboard.pm:1 #, c-format msgid "Right \"Windows\" key" msgstr "Desna \"Windows\" tipka" #: ../../security/help.pm:1 #, c-format msgid "if set to yes, check empty password in /etc/shadow." msgstr "ako je postavljeno na da, provjerava prazne šifre u /etc/shadow." #: ../../help.pm:1 #, c-format msgid "" "Before continuing, you should carefully read the terms of the license. It\n" "covers the entire Mandrake Linux distribution. If you do agree with all the\n" "terms in it, check the \"%s\" box. If not, simply turn off your computer." msgstr "" "Prije nego što nastavimo, trebate pažljivo pročitati uvjete licence. Ona\n" "pokriva cijelu Mandrake Linux distribuciju. Ako se slažete sa svim\n" "uvjetima u njoj, izaberite opciju \"%s\". Ako ne, samo ugasite\n" "vaš računar." #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "Here is a list of the available printing options for the current printer:\n" "\n" msgstr "" "Ovo je lista mogućih opcija za štampu za trenutni štampač:\n" "\n" #: ../../Xconfig/resolution_and_depth.pm:1 #, c-format msgid "Resolutions" msgstr "Rezolucije" #: ../../network/drakfirewall.pm:1 #, c-format msgid "" "drakfirewall configurator\n" "\n" "This configures a personal firewall for this Mandrake Linux machine.\n" "For a powerful and dedicated firewall solution, please look to the\n" "specialized MandrakeSecurity Firewall distribution." msgstr "" "drakfirewall podešavanje\n" "\n" "Podesite lični firewall na ovom Mandrake Linux računaru.\n" "Ako želite moćnu soluciju posebnog firewalla, molim pogledajte\n" "specijaliziranu MandrakeSecurity Firewall distribuciju." #: ../../diskdrake/smbnfs_gtk.pm:1 #, c-format msgid "" "Please enter your username, password and domain name to access this host." msgstr "" "Molim unesite vaše korisničko ime, šifru i domen da biste pristupili ovom " "računaru." #: ../../standalone/scannerdrake:1 #, c-format msgid "Remove selected host" msgstr "Ukloni izabrani računar" #: ../../network/netconnect.pm:1 #, c-format msgid "Network configuration" msgstr "Podešavanje mreže" #: ../../standalone/harddrake2:1 #, c-format msgid "/Autodetect _jaz drives" msgstr "/Automatski prepoznaj _jaz uređaje" #: ../../any.pm:1 #, c-format msgid "No sharing" msgstr "Bez dijeljenja" #: ../../standalone/drakperm:1 #, c-format msgid "Move selected rule down one level" msgstr "Pomjeri izabrano pravilo dole za jedan nivo" #: ../../common.pm:1 #, c-format msgid "TB" msgstr "TB" #: ../../standalone/drakbackup:1 #, c-format msgid "FATAL" msgstr "FATALNO" #: ../../standalone/printerdrake:1 #, c-format msgid "Refresh the list" msgstr "Osvježi listu" #: ../../standalone/drakTermServ:1 #, c-format msgid "" " - Per client %s:\n" " \tThrough clusternfs, each diskless client can have its own unique " "configuration files\n" " \ton the root filesystem of the server. By allowing local client " "hardware configuration, \n" " \tdrakTermServ will help create these files." msgstr "" " - Per client %s:\n" " \tThrough clusternfs, each diskless client can have its own unique " "configuration files\n" " \ton the root filesystem of the server. By allowing local client " "hardware configuration, \n" " \tdrakTermServ will help create these files." #: ../../standalone/drakpxe:1 #, c-format msgid "" "The DHCP server will allow other computer to boot using PXE in the given " "range of address.\n" "\n" "The network address is %s using a netmask of %s.\n" "\n" msgstr "" "DHCP server omogućuje pokretanje drugih računara koristeći PXE u zadatom " "rasponu adresa.\n" "\n" "Mrežna adresa je %s koristeći netmasku %s.\n" "\n" #: ../../diskdrake/hd_gtk.pm:1 ../../diskdrake/interactive.pm:1 #: ../../standalone/drakperm:1 ../../standalone/printerdrake:1 #, c-format msgid "Delete" msgstr "Obriši" #: ../../Xconfig/various.pm:1 #, c-format msgid "" "I can setup your computer to automatically start the graphical interface " "(XFree) upon booting.\n" "Would you like XFree to start when you reboot?" msgstr "" "Mogu podesiti vaš računar da automatski pokrene grafički interfejs (XFree) " "pri pokretanju računara.\n" "Želite li da se XFree automatski pokreće?" #: ../../standalone/drakfloppy:1 #, c-format msgid "Build the disk" msgstr "Napravi disk" #: ../../standalone/net_monitor:1 #, c-format msgid "Disconnect %s" msgstr "Prekini konekciju na %s" #: ../../standalone/drakconnect:1 #, c-format msgid "Status:" msgstr "Status:" #: ../../network/network.pm:1 #, c-format msgid "HTTP proxy" msgstr "HTTP proxy" #: ../../standalone/logdrake:1 #, c-format msgid "SSH Server" msgstr "SSH server" #: ../../standalone/drakbackup:1 #, c-format msgid "\t-Network by rsync.\n" msgstr "\t-Mrežu preko rsync-a.\n" #: ../../network/isdn.pm:1 #, c-format msgid "European protocol" msgstr "Evropski protokol" #: ../../printer/printerdrake.pm:1 #, c-format msgid ", printer \"%s\" on server \"%s\"" msgstr ", štampač \"%s\" na serveru \"%s\"" #: ../../standalone/drakbackup:1 #, c-format msgid "Note that currently all 'net' media also use the hard drive." msgstr "Obratite pažnju da trenutno svi 'net' mediji takođe koriste hard disk." #: ../../fsedit.pm:1 ../../install_steps_interactive.pm:1 #: ../../install_steps.pm:1 ../../diskdrake/dav.pm:1 #: ../../diskdrake/hd_gtk.pm:1 ../../diskdrake/interactive.pm:1 #: ../../diskdrake/smbnfs_gtk.pm:1 ../../interactive/http.pm:1 #: ../../standalone/drakauth:1 ../../standalone/drakboot:1 #: ../../standalone/drakbug:1 ../../standalone/drakconnect:1 #: ../../standalone/drakfloppy:1 ../../standalone/drakfont:1 #: ../../standalone/draksplash:1 ../../../move/move.pm:1 #, c-format msgid "Error" msgstr "Greška" #: ../../any.pm:1 #, c-format msgid "allow \"su\"" msgstr "dozvoli \"su\"" #: ../../lang.pm:1 ../../standalone/drakxtv:1 #, c-format msgid "Australia" msgstr "Australija" #: ../../standalone/drakfont:1 #, c-format msgid "please wait during ttmkfdir..." msgstr "molim sačekajte tokom ttmkfdir..." #: ../../Xconfig/card.pm:1 #, c-format msgid "Configure only card \"%s\"%s" msgstr "Podesi samo karticu \"%s\"%s" #: ../../standalone/harddrake2:1 #, c-format msgid "Level" msgstr "Nivo" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Change the printing system" msgstr "Promijenite sistem štampe" #: ../../Xconfig/card.pm:1 #, c-format msgid "" "Your system supports multiple head configuration.\n" "What do you want to do?" msgstr "" "Vaš sistem podržava konfiguraciju više glava.\n" "Šta želite učiniti?" #: ../../partition_table.pm:1 #, c-format msgid "mount failed: " msgstr "montiranje nije uspjelo: " #: ../../steps.pm:1 #, c-format msgid "Configure services" msgstr "Podešavanje servisa" #: ../../standalone/drakTermServ:1 #, c-format msgid "Broadcast Address:" msgstr "Broadcast adresa:" #: ../../standalone/harddrake2:1 #, c-format msgid "" "the GNU/Linux kernel needs to run a calculation loop at boot time to " "initialize a timer counter. Its result is stored as bogomips as a way to " "\"benchmark\" the cpu." msgstr "" "GNU/Linux kernel mora izvršiti proračunsku petlju prilikom boot-a kako bi " "inicijalizirao tajmer. Rezultat rada te petlje se prikazuje u vidu " "bogomipsa, kao jedan neprecizan pokazatelj brzine CPUa." #: ../../any.pm:1 #, c-format msgid "Image" msgstr "Image" #: ../../services.pm:1 #, c-format msgid "Remote Administration" msgstr "Udaljena administracija" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Failed to add the printer \"%s\" to Star Office/OpenOffice.org/GIMP." msgstr "Nisam uspio dodati štampač \"%s\" u Star Office/OpenOffice.org/GIMP." #: ../../modules.pm:1 #, c-format msgid "" "PCMCIA support no longer exists for 2.2 kernels. Please use a 2.4 kernel." msgstr "" "PCMCIA podrška za 2.2 kernele više ne postoji. Molim koristite 2.4 kernel." #: ../../standalone/drakfont:1 #, c-format msgid "Selected All" msgstr "Sve izabrano" #: ../../printer/data.pm:1 #, c-format msgid "CUPS - Common Unix Printing System" msgstr "CUPS - Common Unix Printing System" #: ../../standalone/logdrake:1 #, c-format msgid "Webmin Service" msgstr "Webmin servis" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "device" msgstr "uređaj" #: ../../standalone/drakbackup:1 #, c-format msgid "Enter the directory to save to:" msgstr "Unesite direktorij u koji želite spasiti:" #: ../../crypto.pm:1 ../../lang.pm:1 #, c-format msgid "Greece" msgstr "Grčka" #: ../../install_steps_interactive.pm:1 ../../standalone/drakxtv:1 #, c-format msgid "All" msgstr "Svi" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Which printing system (spooler) do you want to use?" msgstr "Koji sistem štampanja (spooler) želite koristiti?" #: ../../standalone/drakbackup:1 #, c-format msgid "July" msgstr "Juli" #: ../../printer/main.pm:1 #, c-format msgid "Prints into %s" msgstr "Štampa u %s" #: ../../install_steps_interactive.pm:1 ../../../move/move.pm:1 #, c-format msgid "An error occurred" msgstr "Došlo je do greške" #: ../../install_steps_gtk.pm:1 #, c-format msgid "" "This package must be upgraded.\n" "Are you sure you want to deselect it?" msgstr "" "Ovaj paket mora biti unaprijeđen\n" "Jeste li sigurni da ga želite isključiti?" #: ../../keyboard.pm:1 #, c-format msgid "Tamil (Typewriter-layout)" msgstr "Tamilska (pisaća mašina)" #: ../../security/help.pm:1 #, c-format msgid "Use password to authenticate users." msgstr "Koristi šifru za provjeru autentičnosti korisnika." #: ../../security/help.pm:1 #, c-format msgid "" "Allow/Forbid the list of users on the system on display managers (kdm and " "gdm)." msgstr "" "Dozvoli/zabrani listu korisnika sistema na display manager-ima (kdm i gdm)." #: ../../standalone/drakautoinst:1 #, c-format msgid "manual" msgstr "ručno" #: ../../standalone/drakbackup:1 #, c-format msgid "Filename text to search for:" msgstr "Tekst u imenu datoteke koji se traži:" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Printer manufacturer, model, driver" msgstr "Proizvođač štampača, model, drajver" #: ../../standalone/drakfloppy:1 #, c-format msgid "" "There is no medium or it is write-protected for device %s.\n" "Please insert one." msgstr "" "Nema medija ili je zabranjeno pisanje na medij za uređaj %s.\n" "Molim ubacite neki medij." #: ../../diskdrake/interactive.pm:1 #, c-format msgid "" "Directory %s already contains data\n" "(%s)" msgstr "" "Direktorij %s već sadrži neke podatke\n" "(%s)" #: ../../printer/main.pm:1 #, c-format msgid "Printer on NetWare server" msgstr "Štampač na NetWare serveru" #: ../../any.pm:1 #, c-format msgid "Give the ram size in MB" msgstr "Navedite veličinu rama u MB" #: ../../standalone/drakbackup:1 #, c-format msgid "Friday" msgstr "Petak" #: ../../standalone/net_monitor:1 #, c-format msgid "Disconnection from Internet complete." msgstr "Prekid veze sa Internetom završen." #: ../../any.pm:1 #, c-format msgid "Real name" msgstr "Pravo ime" #: ../../standalone/drakfont:1 #, c-format msgid "done" msgstr "gotovo" #: ../../standalone/drakbackup:1 #, c-format msgid "Please uncheck or remove it on next time." msgstr "Molim isključite ili pobrišite ga idući put." #: ../../security/level.pm:1 #, c-format msgid "Higher" msgstr "Viši" #: ../../install_steps_interactive.pm:1 #, c-format msgid "Choose the partitions you want to format" msgstr "Izaberite particije koje želite formatirati" #: ../../standalone/drakxtv:1 #, c-format msgid "" "No TV Card has been detected on your machine. Please verify that a Linux-" "supported Video/TV Card is correctly plugged in.\n" "\n" "\n" "You can visit our hardware database at:\n" "\n" "\n" "http://www.linux-mandrake.com/en/hardware.php3" msgstr "" "Na vašem računaru nije detektovana TV kartica. Molim provjerite da li je " "ispravno priključena Video/TV kartica koja je podržana pod Linuxom.\n" "\n" "\n" "Možete posjetiti našu bazu hardvera na:\n" "\n" "\n" "http://www.linux-mandrake.com/en/hardware.php3" #: ../../standalone/drakbackup:1 #, c-format msgid "Can't find %s on %s" msgstr "Ne mogu pronaći %s na %s" #: ../../keyboard.pm:1 #, c-format msgid "Japanese 106 keys" msgstr "Japanska 106 tipki" #: ../../standalone/scannerdrake:1 #, c-format msgid "Could not install the packages needed to share your scanner(s)." msgstr "Ne mogu instalirati pakete koji su potrebni za dijeljenje skenera." #: ../../standalone/drakTermServ:1 #, c-format msgid "This will take a few minutes." msgstr "Ovo će potrajati par minuta." #: ../../lang.pm:1 #, c-format msgid "Burkina Faso" msgstr "Burkina Faso" #: ../../standalone/drakbackup:1 #, c-format msgid "June" msgstr "Juni" #: ../../standalone/scannerdrake:1 #, c-format msgid "Use scanners on remote computers" msgstr "Koristi skenere na udaljenim računarima" #: ../../standalone/drakperm:1 #, c-format msgid "Delete selected rule" msgstr "Obriši izabrano pravilo" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Accessing printers on remote CUPS servers" msgstr "Pristupam štampačima na udaljenim CUPS serverima" #: ../../any.pm:1 #, c-format msgid "Insert a floppy in %s" msgstr "Ubacite disketu u %s" #: ../../lang.pm:1 #, c-format msgid "Maldives" msgstr "Maldivi" #: ../../any.pm:1 #, c-format msgid "compact" msgstr "kompaktno" #: ../../common.pm:1 #, c-format msgid "1 minute" msgstr "1 minuta" #: ../../standalone/drakTermServ:1 #, c-format msgid "type: fat" msgstr "tip: fat" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "on channel %d id %d\n" msgstr "na kanalu %d id %d\n" #: ../../printer/main.pm:1 #, c-format msgid ", multi-function device" msgstr ", višenamjenski uređaj" #: ../../lang.pm:1 #, c-format msgid "Laos" msgstr "Laos" #: ../advertising/04-configuration.pl:1 #, c-format msgid "" "Mandrake Linux 9.2 provides you with the Mandrake Control Center, a powerful " "tool to fully adapt your computer to the use you make of it. Configure and " "customize elements such as the security level, the peripherals (screen, " "mouse, keyboard...), the Internet connection and much more!" msgstr "" "Mandrake Linux 9.2 vam pruža Mandrake Kontrolni centar, moćan alata koji " "potpuno prilagođuje vaš računar namjeni koju ste odredili za njega. Podesite " "i prilagodite elemente kao što je nivo sigurnosti,periferni uređaji (ekran, " "miš, tastatura...), Internet konekciju i mnoge druge stvari!" #: ../../security/help.pm:1 #, c-format msgid "Activate/Disable ethernet cards promiscuity check." msgstr "Aktiviraj/isključi provjeru promiskuitetnog moda Ethernet kartica." #: ../../install_interactive.pm:1 #, c-format msgid "There is no FAT partition to resize (or not enough space left)" msgstr "" "Ne postoji nijedna FAT particija za promjenu veličine (ili nije ostalo " "dovoljno prostora)" #: ../../standalone/drakperm:1 #, c-format msgid "Up" msgstr "Gore" #: ../../help.pm:1 ../../install_steps_interactive.pm:1 #, c-format msgid "Firewall" msgstr "Firewall" #: ../../standalone/drakxtv:1 #, c-format msgid "Area:" msgstr "Oblast :" #: ../../harddrake/data.pm:1 #, c-format msgid "(E)IDE/ATA controllers" msgstr "(E)IDE/ATA kontroleri" #: ../../fs.pm:1 #, c-format msgid "All I/O to the file system should be done synchronously." msgstr "Sav U/I na datotečni sistem se treba izvršavati sinhrono." #: ../../printer/printerdrake.pm:1 #, c-format msgid "Printer Server" msgstr "Printer Server" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Custom configuration" msgstr "Vlastita konfiguracija" #: ../../standalone/drakpxe:1 #, c-format msgid "" "Please indicate where the installation image will be available.\n" "\n" "If you do not have an existing directory, please copy the CD or DVD " "contents.\n" "\n" msgstr "" "Molim navedite gdje se nalazi instalaciona slika.\n" "\n" "Ako nemate postojeći direktorij, molim kopirajte sadržaj CDa ili DVDa.\n" "\n" #: ../../lang.pm:1 #, c-format msgid "Saint Pierre and Miquelon" msgstr "Saint Pierre and Miquelon" #: ../../standalone/drakbackup:1 #, c-format msgid "September" msgstr "Septembar" #: ../../standalone/draksplash:1 #, c-format msgid "saving Bootsplash theme..." msgstr "snimam Bootsplash temu..." #: ../../lang.pm:1 #, c-format msgid "Portugal" msgstr "Portugal" #: ../../modules/interactive.pm:1 #, c-format msgid "Do you have another one?" msgstr "Imate li neki drugi?" #: ../../printer/main.pm:1 #, c-format msgid ", printing to %s" msgstr ", štampa u %s" #: ../../network/network.pm:1 #, c-format msgid "Assign host name from DHCP address" msgstr "Odredi ime računara iz DHCP adrese" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Toggle to normal mode" msgstr "Prebaci u normalni mod" #: ../../mouse.pm:1 ../../Xconfig/monitor.pm:1 #, c-format msgid "Generic" msgstr "Opšti" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Cylinder %d to %d\n" msgstr "Cilindar %d do %d\n" #: ../../standalone/drakbug:1 #, c-format msgid "YOUR TEXT HERE" msgstr "VAŠ TEKST OVDJE" #: ../../standalone/drakconnect:1 #, c-format msgid "New profile..." msgstr "Novi profil..." #: ../../modules/interactive.pm:1 ../../standalone/draksec:1 #, c-format msgid "NONE" msgstr "NIŠTA" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Which disk do you want to move it to?" msgstr "Na koji disk je želite premjestiti?" #: ../../standalone/draksplash:1 #, c-format msgid "Display logo on Console" msgstr "Prikaži logo na konzoli" #: ../../any.pm:1 #, c-format msgid "Windows Domain" msgstr "Windows domena" #: ../../keyboard.pm:1 #, c-format msgid "Saami (norwegian)" msgstr "Saami (norveška)" #: ../../standalone/drakpxe:1 #, c-format msgid "Interface %s (on network %s)" msgstr "Interfejs %s (na mreži %s)" #: ../../standalone/drakbackup:1 #, c-format msgid "INFO" msgstr "INFO" #: ../../lang.pm:1 #, c-format msgid "Wallis and Futuna" msgstr "Wallis i Futuna" #: ../../standalone/drakTermServ:1 #, c-format msgid "Need to create /etc/dhcpd.conf first!" msgstr "Najprije treba napraviti /etc/dhcpd.conf !" #: ../../standalone/harddrake2:1 #, c-format msgid "Is FPU present" msgstr "Da li postoji FPU" #: ../../services.pm:1 #, c-format msgid "" "No additional information\n" "about this service, sorry." msgstr "" "Nema dodatnih informacija\n" "o ovom servisu, žalim." #: ../../standalone/scannerdrake:1 #, c-format msgid "There are no scanners found which are available on your system.\n" msgstr "Nisam pronašao nijedan skener na vašem sistemu.\n" #: ../../standalone/drakTermServ:1 #, c-format msgid "Build Single NIC -->" msgstr "Izgradi jedan NIC -->" #: ../../lang.pm:1 #, c-format msgid "Marshall Islands" msgstr "Maršalova ostrva" #: ../../ugtk2.pm:1 #, c-format msgid "Is this correct?" msgstr "Da li je ovo ispravno?" #: ../../standalone/drakbackup:1 #, c-format msgid "Windows (FAT32)" msgstr "Windows (FAT32)" #: ../../steps.pm:1 #, c-format msgid "Root password" msgstr "Root šifra" #: ../../standalone/drakTermServ:1 #, c-format msgid "Build All Kernels -->" msgstr "Izgradi sve kernele -->" #: ../../standalone/drakbackup:1 #, c-format msgid "DVDRAM device" msgstr "DVDRAM uređaj" #: ../../security/help.pm:1 #, c-format msgid "if set to yes, report unowned files." msgstr "ako je postavljeno na da, prijavljuje datoteke bez vlasnika." #: ../../install_interactive.pm:1 #, c-format msgid "" "You don't have a swap partition.\n" "\n" "Continue anyway?" msgstr "" "Nemate nijednu swap particiju\n" "\n" "Svejedno nastavi?" #: ../../install_steps_gtk.pm:1 #, c-format msgid "Version: " msgstr "Verzija: " #: ../../printer/printerdrake.pm:1 #, c-format msgid "Server IP missing!" msgstr "Nedostaje IP adresa servera!" #: ../../lang.pm:1 #, c-format msgid "Suriname" msgstr "Surinam" #: ../../network/adsl.pm:1 #, c-format msgid "Use a floppy" msgstr "Koristi disketu" #: ../../any.pm:1 #, c-format msgid "Enable ACPI" msgstr "Uključi ACPI" #: ../../fs.pm:1 #, c-format msgid "Give write access to ordinary users" msgstr "Daj dozvolu za pisanje običnim korisnicima" #: ../../help.pm:1 #, c-format msgid "Graphical Environment" msgstr "Grafičko okruženje" #: ../../lang.pm:1 #, c-format msgid "Gibraltar" msgstr "Gibraltar" #: ../../network/modem.pm:1 #, c-format msgid "Do nothing" msgstr "Nemoj raditi ništa" #: ../../standalone/drakTermServ:1 #, c-format msgid "Delete Client" msgstr "Obriši klijent" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Filesystem type: " msgstr "Tip datotečnog sistema: " #: ../../printer/printerdrake.pm:1 #, c-format msgid "Starting network..." msgstr "Pokrećem mrežu..." #: ../../lang.pm:1 #, c-format msgid "Vietnam" msgstr "Vijetnam" #: ../../standalone/harddrake2:1 #, c-format msgid "/_Fields description" msgstr "/_Opis polja" #: ../advertising/10-security.pl:1 #, c-format msgid "Optimize your security by using Mandrake Linux" msgstr "Optimizirajte vašu sigurnost koristeći Mandrake Linux" #: ../../standalone/drakTermServ:1 #, c-format msgid "" "\n" "\n" " Thanks:\n" "\t- LTSP Project http://www.ltsp.org\n" "\t- Michael Brown \n" "\n" msgstr "" "\n" "\n" " Hvala:\n" "\t- LTSP Project http://www.ltsp.org\n" "\t- Michael Brown \n" "\n" #: ../../install_steps_gtk.pm:1 ../../interactive.pm:1 ../../ugtk2.pm:1 #: ../../Xconfig/resolution_and_depth.pm:1 ../../diskdrake/hd_gtk.pm:1 #: ../../interactive/gtk.pm:1 ../../standalone/drakTermServ:1 #: ../../standalone/drakbackup:1 ../../standalone/drakbug:1 #: ../../standalone/drakconnect:1 ../../standalone/drakfont:1 #: ../../standalone/drakperm:1 ../../standalone/draksec:1 #: ../../standalone/harddrake2:1 #, c-format msgid "Help" msgstr "Pomoć" #: ../../security/l10n.pm:1 #, c-format msgid "Check if the network devices are in promiscuous mode" msgstr "Provjeri da li su mrežni uređaji u promiskuitetnom modu" #: ../../network/tools.pm:1 ../../standalone/drakconnect:1 #, c-format msgid "Your personal phone number" msgstr "Vaš lični broj telefona" #: ../../install_interactive.pm:1 #, c-format msgid "Which size do you want to keep for Windows on" msgstr "Koju veličinu želite da sačuvate za Windows na" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "Test page(s) have been sent to the printer.\n" "It may take some time before the printer starts.\n" msgstr "" "Testna stranica je poslana štampaču.\n" "Može potrajati određeno vrijeme dok štampač krene.\n" #: ../../standalone/drakbackup:1 #, c-format msgid "Username required" msgstr "Potrebno korisničko ime" #: ../../standalone/drakfloppy:1 #, c-format msgid "Device" msgstr "Uređaj" #: ../../help.pm:1 #, c-format msgid "" "Depending on the default language you chose in Section , DrakX will\n" "automatically select a particular type of keyboard configuration. However,\n" "you may not have a keyboard that corresponds exactly to your language: for\n" "example, if you are an English speaking Swiss person, you may have a Swiss\n" "keyboard. Or if you speak English but are located in Quebec, you may find\n" "yourself in the same situation where your native language and keyboard do\n" "not match. In either case, this installation step will allow you to select\n" "an appropriate keyboard from a list.\n" "\n" "Click on the \"%s\" button to be presented with the complete list of\n" "supported keyboards.\n" "\n" "If you choose a keyboard layout based on a non-Latin alphabet, the next\n" "dialog will allow you to choose the key binding that will switch the\n" "keyboard between the Latin and non-Latin layouts." msgstr "" "Ovisno o osnovnom jeziku koji izaberete u Sekciji \"Jezik\", DrakX će\n" "automatski izabrati određeni tip tastature. Ipak, možda nemate tastaturu\n" "koja tačno odgovara vašem jeziku: npr. ako ste Švajcarac koji govori\n" "engleski, možda imate švajcarsku tastaturu. Ili ako govorite engleski ali\n" "se nalazite u Kvibeku, možda ćete se naći u situaciji gdje se vaš jezik i\n" "tastatura ne poklapaju. U svakom slučaju, ovaj korak instalacije vam\n" "omogućava da izaberete odgovarajuću tastaturu sa liste.\n" "\n" "Kliknite na dugme \"%s\" kako bi vam bila predstavljena potpuna lista\n" "podržanih tastatura.\n" "\n" "Ako izaberete raspored tipaka koji je baziran na ne-latiničnoj abecedi,\n" "sljedeći dijalog će vam ponuditi da izaberete tipke pomoću kojih možete\n" "prebaciti tastaturu između latiničnog i ne-latiničnog rasporeda." #: ../../printer/printerdrake.pm:1 #, c-format msgid "SMB (Windows 9x/NT) Printer Options" msgstr "Opcije SMB (Windows 9x/NT) štampača" #: ../../printer/main.pm:1 #, c-format msgid "URI: %s" msgstr "URI: %s" #: ../../standalone/drakbackup:1 #, c-format msgid "Valid user list changed, rewriting config file." msgstr "" "Lista ispravnih korisnika izmijenjena, prepisujem konfiguracionu datoteku." #: ../../standalone/drakfloppy:1 #, c-format msgid "mkinitrd optional arguments" msgstr "mkinitrd opcionalni argumenti" #: ../advertising/03-software.pl:1 #, c-format msgid "" "Surf the Web with Mozilla or Konqueror, read your mail with Evolution or " "Kmail, create your documents with OpenOffice.org." msgstr "" "Surfajte koristeći Mozillu ili Konqueror, čitajte vašu poštu sa Evolution " "ili KMail, pravite vaše dokumente sa OpenOffice.org." #: ../../network/isdn.pm:1 #, c-format msgid "Protocol for the rest of the world" msgstr "Protokol za ostatak svijeta" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Print test pages" msgstr "Štampaj testnu stranicu" #: ../../standalone/drakconnect:1 #, c-format msgid "Activate now" msgstr "Pokreni sada" #: ../../Xconfig/card.pm:1 #, c-format msgid "64 MB or more" msgstr "64 MB ili više" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "Please select the test pages you want to print.\n" "Note: the photo test page can take a rather long time to get printed and on " "laser printers with too low memory it can even not come out. In most cases " "it is enough to print the standard test page." msgstr "" "Molim izaberite testne stranice koje ćete štampati.\n" "Pažnja: foto testna stranica može tražiti dosta vremena za štampu a na " "laserskim štampačima sa malo memorije možda neće nikad ni izaći. U većini " "slučajeva dovoljno je odštampati standardnu testnu stranicu." #: ../../standalone/scannerdrake:1 #, c-format msgid "Please select the device where your %s is attached" msgstr "Molim izaberite uređaj gdje je priključen vaš %s" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Not formatted\n" msgstr "Nije formatirana\n" #: ../../standalone/draksec:1 #, c-format msgid "Periodic Checks" msgstr "Periodične provjere" #: ../../standalone/drakpxe:1 #, c-format msgid "PXE Server Configuration" msgstr "Podešavanje PXE servera" #: ../../standalone/drakbackup:1 #, c-format msgid "Backup the system files before:" msgstr "Vrati sistemske datoteke prije:" #: ../../security/level.pm:1 #, c-format msgid "" "This is the standard security recommended for a computer that will be used " "to connect to the Internet as a client." msgstr "" "Ovo je standardna sigurnost koja je preporučena za računar koji će biti " "korišten za spajanje na Internet kao klijent." #: ../../any.pm:1 #, c-format msgid "First floppy drive" msgstr "Prva disketna jedinica" #: ../../standalone/drakboot:1 ../../standalone/drakfloppy:1 #: ../../standalone/logdrake:1 #, c-format msgid "/File/_Quit" msgstr "/Datoteka/_Izlaz" #: ../../keyboard.pm:1 #, c-format msgid "Dvorak" msgstr "Dvorak" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Choose the new size" msgstr "Izaberite novu veličinu" #: ../../standalone/harddrake2:1 #, c-format msgid "Media class" msgstr "Klasa medija" #: ../../standalone/XFdrake:1 #, c-format msgid "You need to log out and back in again for changes to take effect" msgstr "" "Trebate se odjaviti i ponovo prijaviti na sistem kako bi izmjene stupile na " "snagu" #: ../../standalone/scannerdrake:1 #, c-format msgid "The %s is not known by this version of Scannerdrake." msgstr "Ova verzija Scannerdrake programa ne poznaje %s." #: ../../lang.pm:1 #, c-format msgid "Faroe Islands" msgstr "Farska ostrva" #: ../../standalone/drakfont:1 #, c-format msgid "Restart XFS" msgstr "Restartuj XFS" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Add host/network" msgstr "Dodaj računar/mrežu" #: ../../standalone/scannerdrake:1 #, c-format msgid "Scannerdrake will not be started now." msgstr "Sada će biti pokrenut Scannerdrake." #: ../../standalone/harddrake2:1 #, c-format msgid "Model name" msgstr "Naziv modela" #: ../../lang.pm:1 #, c-format msgid "Albania" msgstr "Albanija" #: ../../lang.pm:1 #, c-format msgid "British Indian Ocean Territory" msgstr "Britansko-Indijska morska teritorija" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Normal Mode" msgstr "Normalni mod" #: ../../standalone/drakbackup:1 #, c-format msgid "No CD-R/DVD-R in drive!" msgstr "Nema CDR/DVDR u drajvu!" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Printer connection type" msgstr "Tip konekcije štampača" #: ../../standalone/drakgw:1 ../../standalone/drakpxe:1 #, c-format msgid "No network adapter on your system!" msgstr "Nema mrežnog adaptera na vašem sistemu!" #: ../../printer/main.pm:1 #, c-format msgid "Network %s" msgstr "Mreža %s" #: ../../keyboard.pm:1 #, c-format msgid "Malayalam" msgstr "Malayalam" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Option %s out of range!" msgstr "Opcija %s izvan raspona!" #: ../../standalone/net_monitor:1 #, c-format msgid "Connect %s" msgstr "Konektuj se na %s" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Restarting CUPS..." msgstr "Restartujem CUPS..." #: ../../printer/printerdrake.pm:1 #, c-format msgid "Printing/Scanning/Photo Cards on \"%s\"" msgstr "Štampam/skeniram/foto kartica na \"%s\"" #: ../../../move/move.pm:1 #, c-format msgid "Continue without USB key" msgstr "" #: ../../install_steps.pm:1 #, c-format msgid "Duplicate mount point %s" msgstr "Dvostruka tačka montiranja %s" #: ../../security/help.pm:1 #, c-format msgid "if set to yes, run chkrootkit checks." msgstr "ako je postavljeno na da, izvršava chkrootkit provjere." #: ../../network/tools.pm:1 #, c-format msgid "Connection Configuration" msgstr "Podešavanje konekcije" #: ../../harddrake/v4l.pm:1 #, c-format msgid "Unknown|Generic" msgstr "Nepoznat|Opšti" #: ../../help.pm:1 #, c-format msgid "" "At the time you are installing Mandrake Linux, it is likely that some\n" "packages have been updated since the initial release. Bugs may have been\n" "fixed, security issues resolved. To allow you to benefit from these\n" "updates, you are now able to download them from the Internet. Check \"%s\"\n" "if you have a working Internet connection, or \"%s\" if you prefer to\n" "install updated packages later.\n" "\n" "Choosing \"%s\" will display a list of places from which updates can be\n" "retrieved. You should choose one nearer to you. A package-selection tree\n" "will appear: review the selection, and press \"%s\" to retrieve and install\n" "the selected package(s), or \"%s\" to abort." msgstr "" "Prilikom instalacije Mandrake Linuxa, moguće je da su neki paketi\n" "ažurirani od zadnjeg izdanja. Moguće je da su ispravljeni bugovi ili\n" "rješena neka sigurnosna pitanja. Ako želite iskoristiti ova unaprjeđenja,\n" "možete ih sada dobaviti sa Interneta. Izaberite \"%s\" ako imate ispravnu\n" "Internet vezu, ili \"%s\" ako ćete radije instalirati ažurirane pakete\n" "kasnije.\n" "\n" "Ako izaberete \"%s\" dobićete listu mjesta sa kojih se mogu skinuti\n" "novi paketi. Izaberite ono najbliže vama. Pojaviće se stablo za izbor\n" "paketa: pregledajte izabrano i pritisnite \"%s\" da dobavite i\n" "instalirate izabrane pakete, ili \"%s\" za prekid." #: ../../lang.pm:1 #, c-format msgid "Myanmar" msgstr "Myanmar" #: ../../install_steps_interactive.pm:1 ../../Xconfig/main.pm:1 #: ../../diskdrake/dav.pm:1 ../../printer/printerdrake.pm:1 #: ../../standalone/draksplash:1 ../../standalone/harddrake2:1 #: ../../standalone/logdrake:1 ../../standalone/scannerdrake:1 #, c-format msgid "Quit" msgstr "Izlaz" #: ../../help.pm:1 ../../diskdrake/interactive.pm:1 #, c-format msgid "Auto allocate" msgstr "Auto alokacija" #: ../../install_steps_interactive.pm:1 #, c-format msgid "Check bad blocks?" msgstr "Provjeri loše blokove?" #: ../../harddrake/data.pm:1 #, c-format msgid "Other MultiMedia devices" msgstr "Drugi multimedijalni uređaj" #: ../../standalone/harddrake2:1 #, c-format msgid "burner" msgstr "pržilica" #: ../../standalone/drakbug:1 #, c-format msgid "Bug Description/System Information" msgstr "Opis buga/Sistemske informacije" #: ../../standalone/drakbackup:1 #, c-format msgid " (Default is all users)" msgstr " (Podrazumijevaju se svi korisnici)" #: ../../printer/printerdrake.pm:1 ../../standalone/scannerdrake:1 #, c-format msgid "No remote machines" msgstr "Nema udaljenih računara" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "\n" "Welcome to the Printer Setup Wizard\n" "\n" "This wizard will help you to install your printer(s) connected to this " "computer.\n" "\n" "If you have printer(s) connected to this machine, Please plug it/them in on " "this computer and turn it/them on so that it/they can be auto-detected.\n" "\n" " Click on \"Next\" when you are ready, and on \"Cancel\" if you do not want " "to set up your printer(s) now." msgstr "" "\n" "Dobro došli u Čarobnjak za podešavanje štampača\n" "\n" "Ovaj čarobnjak će vam pomoći da instalirate štampače spojene na ovaj " "računar.\n" "\n" "Ako imate štampač spojen na ovaj računar, molim priključite ga na računar i " "upalite ga kako bi bio auto-prepoznat.\n" "\n" "Kliknite na \"Dalje\" kada budete spremni, ili na \"Odustani\" ako ne želite " "podesiti štampač sada." #: ../../any.pm:1 #, c-format msgid "Authentication NIS" msgstr "Autentifikacija NIS" #: ../../any.pm:1 #, c-format msgid "" "Option ``Restrict command line options'' is of no use without a password" msgstr "Opcija ``Ograniči opcije komandne linije'' je beskorisna bez šifre" #: ../../standalone/drakgw:1 #, c-format msgid "Internet Connection Sharing currently enabled" msgstr "Dijeljenje Internet konekcije je trenutno aktivno" #: ../../lang.pm:1 #, c-format msgid "United Arab Emirates" msgstr "Ujedinjeni Arapski Emirati" #: ../../network/tools.pm:1 ../../standalone/drakconnect:1 #, c-format msgid "Card IO_0" msgstr "IO_0 kartice" #: ../../standalone/drakTermServ:1 #, c-format msgid "Disable Local Config" msgstr "Onemogući lokalnu konfiguraciju" #: ../../lang.pm:1 #, c-format msgid "Thailand" msgstr "Tajland" #: ../../network/tools.pm:1 ../../standalone/drakconnect:1 #, c-format msgid "Card IO_1" msgstr "IO_1 kartice" #: ../../standalone/printerdrake:1 #, c-format msgid "Search:" msgstr "Pretraga:" #: ../../lang.pm:1 #, c-format msgid "Kazakhstan" msgstr "Kazahstan" #: ../../standalone/drakTermServ:1 #, c-format msgid "Routers:" msgstr "Routeri:" #: ../../standalone/drakperm:1 #, c-format msgid "Write" msgstr "Zapiši" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Display all available remote CUPS printers" msgstr "Prikaži sve dostupne CUPS štampače" #: ../../install_steps_newt.pm:1 #, c-format msgid "Mandrake Linux Installation %s" msgstr "Mandrake Linux instalacija %s" #: ../../harddrake/sound.pm:1 #, c-format msgid "Unknown driver" msgstr "Nepoznat drajver" #: ../../keyboard.pm:1 #, c-format msgid "Thai keyboard" msgstr "Tajlandska tastatura" #: ../../lang.pm:1 #, c-format msgid "Bouvet Island" msgstr "Ostrvo Bouvet" #: ../../network/modem.pm:1 #, c-format msgid "Dialup options" msgstr "Opcije dialupa" #: ../../printer/printerdrake.pm:1 #, c-format msgid "If no port is given, 631 will be taken as default." msgstr "Ako nije naveden port, podrazumijevaće se 631." #: ../../standalone/drakTermServ:1 #, c-format msgid "" " - Per client system configuration files:\n" " \tThrough clusternfs, each diskless client can have its own unique " "configuration files\n" " \ton the root filesystem of the server. By allowing local client " "hardware configuration, \n" " \tclients can customize files such as /etc/modules.conf, /etc/" "sysconfig/mouse, \n" " \t/etc/sysconfig/keyboard on a per-client basis.\n" "\n" " Note: Enabling local client hardware configuration does enable root " "login to the terminal \n" " server on each client machine that has this feature enabled. Local " "configuration can be\n" " turned back off, retaining the configuration files, once the client " "machine is configured." msgstr "" " - Per client system configuration files:\n" " \tThrough clusternfs, each diskless client can have its own unique " "configuration files\n" " \ton the root filesystem of the server. By allowing local client " "hardware configuration, \n" " \tclients can customize files such as /etc/modules.conf, /etc/" "sysconfig/mouse, \n" " \t/etc/sysconfig/keyboard on a per-client basis.\n" "\n" " Note: Enabling local client hardware configuration does enable root " "login to the terminal \n" " server on each client machine that has this feature enabled. Local " "configuration can be\n" " turned back off, retaining the configuration files, once the client " "machine is configured." #: ../../install_steps_gtk.pm:1 ../../install_steps_interactive.pm:1 #, c-format msgid "" "Change your Cd-Rom!\n" "\n" "Please insert the Cd-Rom labelled \"%s\" in your drive and press Ok when " "done.\n" "If you don't have it, press Cancel to avoid installation from this Cd-Rom." msgstr "" "Promijenite vaš CD-ROM!\n" "\n" "Molim ubacite CD označen sa \"%s\" u vaš CD-ROM uređaj i pritisnite \"U redu" "\" kad ste spremni.\n" "Ako ga nemate, pritisnite \"Odustani\" da preskočite instalaciju sa tog CD-" "ROMa." #: ../../keyboard.pm:1 #, c-format msgid "Polish" msgstr "Poljska" #: ../../standalone/drakbug:1 #, c-format msgid "Mandrake Online" msgstr "Mandrake Online" #: ../../standalone/drakbackup:1 #, c-format msgid "\t-Network by webdav.\n" msgstr "\t-Mrežu preko webdav-a.\n" #: ../../printer/main.pm:1 #, c-format msgid ", multi-function device on a parallel port" msgstr ", višenamjenski uređaj na paralelnom portu" #: ../../standalone/drakgw:1 ../../standalone/drakpxe:1 #, c-format msgid "" "No ethernet network adapter has been detected on your system. Please run the " "hardware configuration tool." msgstr "" "Na vašem sistemu nije pronađen nijedan ethernet mrežni adapter. Molim " "pokrenite alat za podešavanje hardware-a." #: ../../network/network.pm:1 ../../standalone/drakconnect:1 #: ../../standalone/drakgw:1 #, c-format msgid "Netmask" msgstr "Netmask" #: ../../diskdrake/hd_gtk.pm:1 #, c-format msgid "No hard drives found" msgstr "Nije pronađen nijedan hard disk" #: ../../mouse.pm:1 #, c-format msgid "2 buttons" msgstr "2 dugmeta" #: ../../mouse.pm:1 #, c-format msgid "Logitech CC Series" msgstr "Logitech CC Series" #: ../../network/isdn.pm:1 #, c-format msgid "What kind is your ISDN connection?" msgstr "Koje je vrste vaša ISDN konekcija?" #: ../../any.pm:1 #, c-format msgid "Label" msgstr "Oznaka" #: ../../install_steps_interactive.pm:1 #, c-format msgid "Save on floppy" msgstr "Spasi na disketu" #: ../../security/l10n.pm:1 #, c-format msgid "Check open ports" msgstr "Provjeri otvorene portove" #: ../../standalone/printerdrake:1 #, c-format msgid "Edit selected printer" msgstr "Izmijeni izabrani štampač" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Printer auto-detection" msgstr "Auto prepoznavanje štampača" #: ../../network/isdn.pm:1 #, c-format msgid "Which of the following is your ISDN card?" msgstr "Koja od navedenih je vaša ISDN kartica?" #: ../../services.pm:1 #, c-format msgid "" "NFS is a popular protocol for file sharing across TCP/IP networks.\n" "This service provides NFS server functionality, which is configured via the\n" "/etc/exports file." msgstr "" "NFS je popularan protokol za dijeljenje datoteka preko TCP/IP mreža.\n" "Ovaj servis omogućuje funkcionalnost NFS servera, kojeg podešavate\n" "putem /etc/exports datoteke." #: ../../standalone/drakbug:1 #, c-format msgid "Msec" msgstr "Msec" #: ../../interactive/stdio.pm:1 #, c-format msgid "" "=> Notice, a label changed:\n" "%s" msgstr "" "=> Primjetite, label je promijenjena:\n" "%s" #: ../../harddrake/v4l.pm:1 #, c-format msgid "Number of capture buffers:" msgstr "Broj capture buffera:" #: ../../interactive/stdio.pm:1 #, c-format msgid "Your choice? (0/1, default `%s') " msgstr "Vaš izbor? (0/1, podrazumjevano %s)" #: ../../help.pm:1 #, c-format msgid "" "Any partitions that have been newly defined must be formatted for use\n" "(formatting means creating a file system).\n" "\n" "At this time, you may wish to reformat some already existing partitions to\n" "erase any data they contain. If you wish to do that, please select those\n" "partitions as well.\n" "\n" "Please note that it is not necessary to reformat all pre-existing\n" "partitions. You must reformat the partitions containing the operating\n" "system (such as \"/\", \"/usr\" or \"/var\") but you do not have to\n" "reformat partitions containing data that you wish to keep (typically\n" "\"/home\").\n" "\n" "Please be careful when selecting partitions. After formatting, all data on\n" "the selected partitions will be deleted and you will not be able to recover\n" "it.\n" "\n" "Click on \"%s\" when you are ready to format partitions.\n" "\n" "Click on \"%s\" if you want to choose another partition for your new\n" "Mandrake Linux operating system installation.\n" "\n" "Click on \"%s\" if you wish to select partitions that will be checked for\n" "bad blocks on the disk." msgstr "" "Sve particije koje su upravo definisane moraju biti formatirane kako bi se\n" "mogle koristiti (formatiranje znači kreiranje datotečnog sistema). \n" "\n" "U ovom trenutku možda ćete poželjeti da reformatirate neke već postojeće\n" "particije kako biste pobrisali podatke koje sadrže. Ako želite to učiniti,\n" "molim takođe izaberite i te particije.\n" "\n" "Molim obratite pažnju da nije neophodno formatirati sve postojeće\n" "particije. Morate reformatirati particije koje sadrže operativni sistem\n" "(kao što su \"/\", \"/usr\" ili \"var\") ali ne morate reformatirati " "particije\n" "koje sadrže podatke koje želite zadržati (tipično /home).\n" "\n" "Molim da pažljivo izaberete particije. Nakon formatiranja, svi podaci na\n" "odabranim particijama će biti pobrisani i nećete biti u mogućnosti da ih\n" "povratite.\n" "\n" "Kliknite na \"%s\" kada budete spremni za formatiranje particija.\n" "\n" "Kliknite na \"%s\" ako želite da izaberete druge particije za instalaciju\n" "vašeg novog Linux-Mandrake operativnog sistema.\n" "\n" "Kliknite na \"%s\" da izaberete particije koje želite provjeriti radi\n" "loših blokova." #: ../../keyboard.pm:1 #, c-format msgid "French" msgstr "Francuska" #: ../../keyboard.pm:1 #, c-format msgid "Czech (QWERTY)" msgstr "Češka (QWERTY)" #: ../../security/l10n.pm:1 #, c-format msgid "Allow X Window connections" msgstr "Dozvoli X Window konekcije" #: ../../standalone/service_harddrake:1 #, c-format msgid "Hardware probing in progress" msgstr "Hardversko probanje u toku" #: ../../network/shorewall.pm:1 ../../standalone/drakgw:1 #, c-format msgid "Net Device" msgstr "Mrežni uređaj" #: ../../install_steps_interactive.pm:1 ../../steps.pm:1 #, c-format msgid "Summary" msgstr "Ukratko" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" " (Parallel Ports: /dev/lp0, /dev/lp1, ..., equivalent to LPT1:, LPT2:, ..., " "1st USB printer: /dev/usb/lp0, 2nd USB printer: /dev/usb/lp1, ...)." msgstr "" " (Paralelni portovi: /dev/lp0, /dev/lp1, ..., ekvivalentno sa LPT1:, " "LPT2:, ..., prvi USB štampač: /dev/usb/lp0, drugi USB štampač: /dev/usb/" "lp1, ...)." #: ../../network/netconnect.pm:1 ../../network/tools.pm:1 #, c-format msgid "Next" msgstr "Sljedeći" #: ../../bootloader.pm:1 #, c-format msgid "You can't install the bootloader on a %s partition\n" msgstr "Ne možete instalirati bootloader na %s particiju\n" #: ../../network/modem.pm:1 ../../standalone/drakconnect:1 #, c-format msgid "CHAP" msgstr "CHAP" #: ../../lang.pm:1 #, c-format msgid "Puerto Rico" msgstr "Portoriko" #: ../../network/network.pm:1 #, c-format msgid "(bootp/dhcp/zeroconf)" msgstr "(bootp/dhcp/zeroconf)" #: ../../standalone/drakautoinst:1 #, c-format msgid "" "\n" "Welcome.\n" "\n" "The parameters of the auto-install are available in the sections on the left" msgstr "" "\n" "Dobro došli.\n" "\n" "Parametri automatske instalacije su dostupni u odjeljcima lijevo" #: ../../standalone/draksplash:1 #, c-format msgid "" "package 'ImageMagick' is required to be able to complete configuration.\n" "Click \"Ok\" to install 'ImageMagick' or \"Cancel\" to quit" msgstr "" "za dovršavanje podešavanja potreban je paket 'ImageMagick'.\n" "Kliknite na \"U redu\" da instalirate 'ImageMagick' ili \"Odustani\" za izlaz" #: ../../network/drakfirewall.pm:1 #, fuzzy, c-format msgid "Telnet server" msgstr "X server" #: ../../keyboard.pm:1 #, c-format msgid "Lithuanian \"number row\" QWERTY" msgstr "Litvanska \"red brojeva\" QWERTY" #: ../../install_any.pm:1 #, c-format msgid "" "The following packages will be removed to allow upgrading your system: %s\n" "\n" "\n" "Do you really want to remove these packages?\n" msgstr "" "Da bi se omogućilo unaprjeđenje vašeg sistema, biće uklonjeni sljedeći " "paketi: %s\n" "\n" "\n" "Želite li zaista deinstalirati ove pakete?\n" #: ../../lang.pm:1 #, c-format msgid "Anguilla" msgstr "Anguilla" #: ../../any.pm:1 #, c-format msgid "NIS Domain" msgstr "NIS domen" #: ../../lang.pm:1 #, c-format msgid "Antarctica" msgstr "Antarktik" #: ../../standalone/drakbackup:1 #, c-format msgid "" "\n" "- User Files:\n" msgstr "" "\n" "- korisničke datoteke:\n" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Mount options" msgstr "Opcije montiranja" #: ../../lang.pm:1 #, c-format msgid "Jamaica" msgstr "Jamajka" #: ../../services.pm:1 #, c-format msgid "" "Assign raw devices to block devices (such as hard drive\n" "partitions), for the use of applications such as Oracle or DVD players" msgstr "" "Dodjeljuje raw uređaje blokovskim uređajima (kao što su\n" "particije hard diska), za potrebu aplikacija kao što je Oracle ili DVD " "playeri" #: ../../install_steps_gtk.pm:1 #, c-format msgid "Please wait, preparing installation..." msgstr "Molim sačekajte, pripremam instalaciju..." #: ../../keyboard.pm:1 #, c-format msgid "Czech (QWERTZ)" msgstr "Češka (QWERTZ)" #: ../../network/network.pm:1 #, c-format msgid "Track network card id (useful for laptops)" msgstr "Otkrij id mrežne karte (korisno za laptope)" #: ../../printer/printerdrake.pm:1 #, c-format msgid "The port number should be an integer!" msgstr "Broj porta treba biti cijeli broj!" #: ../../standalone/draksplash:1 #, c-format msgid "You must choose an image file first!" msgstr "Morate izabrati image datoteku!" #: ../../standalone/drakbackup:1 #, c-format msgid "Restore from Hard Disk." msgstr "Vrati sa hard diska" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Add to LVM" msgstr "Dodaj na LVM" #: ../../network/network.pm:1 #, c-format msgid "DNS server" msgstr "DNS server" #: ../../lang.pm:1 #, c-format msgid "Trinidad and Tobago" msgstr "Trinidad i Tobago" #: ../../printer/printerdrake.pm:1 #, c-format msgid "LPD and LPRng do not support IPP printers.\n" msgstr "LPD i LPRng ne podržavaju IPP štampače.\n" #: ../../standalone/drakbackup:1 #, c-format msgid "Host name or IP." msgstr "Ime računara ili IP." #: ../../standalone/printerdrake:1 #, c-format msgid "/_Edit" msgstr "/_Edituj" #: ../../fsedit.pm:1 #, c-format msgid "simple" msgstr "jednostavno" #: ../../help.pm:1 ../../diskdrake/interactive.pm:1 #, c-format msgid "Clear all" msgstr "Obriši sve" #: ../../printer/printerdrake.pm:1 #, c-format msgid "No test pages" msgstr "Nijedna testna strana" #: ../../lang.pm:1 #, c-format msgid "Falkland Islands (Malvinas)" msgstr "Falklandsko otočje" #: ../../standalone/drakconnect:1 #, c-format msgid "Adapter %s: %s" msgstr "Adapter %s: %s" #: ../../standalone/drakfloppy:1 #, c-format msgid "Boot disk creation" msgstr "Pravljenje boot diskete" #: ../../standalone/drakbackup:1 #, c-format msgid "Monday" msgstr "Ponedjeljak" #: ../../printer/main.pm:1 ../../printer/printerdrake.pm:1 #, c-format msgid "Unknown model" msgstr "Nepoznat model" #: ../../security/help.pm:1 #, c-format msgid "if set to yes, check files/directories writable by everybody." msgstr "" "ako je postavljeno na da, provjerava datoteke/direktorije koje svako može " "pisati." #: ../../help.pm:1 #, c-format msgid "authentication" msgstr "provjera autentičnosti" #: ../../standalone/drakbackup:1 #, c-format msgid "Backup Now" msgstr "Backup-uj sada" #: ../../standalone/drakboot:1 ../../standalone/drakfloppy:1 #: ../../standalone/harddrake2:1 ../../standalone/logdrake:1 #: ../../standalone/printerdrake:1 #, c-format msgid "/_File" msgstr "/_Datoteka" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Removing printer from Star Office/OpenOffice.org/GIMP" msgstr "Uklanjam štampač iz Star/Open Offica" #: ../../services.pm:1 #, c-format msgid "" "Launch packet filtering for Linux kernel 2.2 series, to set\n" "up a firewall to protect your machine from network attacks." msgstr "" "Pokreće filtriranje paketa za Linux kernele serije 2.2 kako\n" "bi se aktivirao firewall i zaštitio vaš računar od mrežnih napada." #: ../../standalone/drakperm:1 #, c-format msgid "Editable" msgstr "Izmjenljivo" #: ../../network/ethernet.pm:1 #, c-format msgid "Which dhcp client do you want to use ? (default is dhcp-client)" msgstr "Koji DHCP klijent želite koristiti? (podrazumijeva se dhcp-client)" #: ../../keyboard.pm:1 #, c-format msgid "Tamil (ISCII-layout)" msgstr "Tamilska (ISCII)" #: ../../lang.pm:1 #, c-format msgid "Mayotte" msgstr "Mayotte" #: ../../security/help.pm:1 #, c-format msgid "Set shell commands history size. A value of -1 means unlimited." msgstr "" "Podesi veličinu historije naredbi shella. Vrijednost -1 znači neograničeno." #: ../../install_steps_gtk.pm:1 #, c-format msgid "%d KB\n" msgstr "%d KB\n" #: ../../install_steps_interactive.pm:1 #, c-format msgid "Creating auto install floppy..." msgstr "Pravim auto instalacijsku disketu..." #: ../../standalone/scannerdrake:1 #, c-format msgid "Searching for scanners ..." msgstr "Tražim skenere ..." #: ../../lang.pm:1 #, c-format msgid "Russia" msgstr "Rusija" #: ../../steps.pm:1 #, c-format msgid "Partitioning" msgstr "Particioniranje" #: ../../network/netconnect.pm:1 #, c-format msgid "ethernet card(s) detected" msgstr "prepoznata ethernet kartica(e)" #: ../../standalone/logdrake:1 #, c-format msgid "Syslog" msgstr "Syslog" #: ../../standalone/drakbackup:1 #, c-format msgid "Can't create catalog!" msgstr "Ne mogu napraviti katalog!" #: ../advertising/11-mnf.pl:1 #, c-format msgid "" "Complete your security setup with this very easy-to-use software which " "combines high performance components such as a firewall, a virtual private " "network (VPN) server and client, an intrusion detection system and a traffic " "manager." msgstr "" "Zaokružite vaš sigurnosni sistem ovim vrlo jednostavnim softverom koji spaja " "komponente visokih performansi, kao što je firewall, VPN server i klijent, " "sistem za detekciju upada (intrusion detection system) inadzor saobraćaja." #: ../../fsedit.pm:1 #, c-format msgid "Not enough free space for auto-allocating" msgstr "Nema dovoljno prostora za auto-alokaciju" #: ../../install_steps_interactive.pm:1 #, c-format msgid "Set root password" msgstr "Podesite administratorsku (root) šifru" #: ../../security/l10n.pm:1 #, c-format msgid "Enable IP spoofing protection" msgstr "Uključi zaštitu od lažiranja IP adrese" #: ../../harddrake/sound.pm:1 #, c-format msgid "" "There's no free driver for your sound card (%s), but there's a proprietary " "driver at \"%s\"." msgstr "" "Nema slobodnih drajvera za vašu zvučnu karticu (%s), ali postoji vlasnički " "drajver na \"%s\"." #: ../../standalone/drakperm:1 #, c-format msgid "Group :" msgstr "Grupa :" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "After resizing partition %s, all data on this partition will be lost" msgstr "" "Nakon promjene veličine particije %s, svi podaci na njoj će biti izgubljeni" #: ../../standalone/drakconnect:1 #, c-format msgid "Internet connection configuration" msgstr "Podešavanje Internet konekcije" #: ../../security/help.pm:1 #, c-format msgid "Add the name as an exception to the handling of password aging by msec." msgstr "Dodaj ime kao izuzetak od upravljanja starenjem šifara putem msec-a." #: ../../network/isdn.pm:1 #, fuzzy, c-format msgid "USB" msgstr "LSB" #: ../../standalone/drakxtv:1 #, c-format msgid "Scanning for TV channels" msgstr "Tražim TV kanale" #: ../../standalone/drakbug:1 #, c-format msgid "Kernel:" msgstr "Kernel:" #: ../../standalone/harddrake2:1 ../../standalone/printerdrake:1 #, c-format msgid "/_About..." msgstr "/_O programu..." #: ../../keyboard.pm:1 #, c-format msgid "Bengali" msgstr "Bengalska" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Preference: " msgstr "Preference: " #: ../../install_steps_interactive.pm:1 ../../services.pm:1 #, c-format msgid "Services: %d activated for %d registered" msgstr "Servisi: %d aktiviran za %d registrovan" #: ../../any.pm:1 #, c-format msgid "Create a bootdisk" msgstr "Napravite boot disketu" #: ../../lang.pm:1 #, c-format msgid "Solomon Islands" msgstr "Solomonska ostrva" #: ../../standalone/mousedrake:1 #, c-format msgid "Please test your mouse:" msgstr "Molim testirajte miš:" #: ../../modules/interactive.pm:1 #, c-format msgid "(module %s)" msgstr "(modul %s)" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Workgroup" msgstr "Radna grupa" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Printer host name or IP" msgstr "Hostname štampača ili IP adresa" #: ../../standalone/drakconnect:1 #, fuzzy, c-format msgid "down" msgstr "gotovo" #: ../../standalone/drakbackup:1 #, c-format msgid "Host Path or Module" msgstr "Staza ili modul računara" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Name of printer should contain only letters, numbers and the underscore" msgstr "Naziv štampača bi se trebao sastojati od slova, brojeva i donje linije" #: ../../standalone/drakgw:1 #, c-format msgid "Show current interface configuration" msgstr "Prikaži postavke trenutnog interfejsa" #: ../../standalone/printerdrake:1 #, c-format msgid "Add Printer" msgstr "Dodaj štampač" #: ../../security/help.pm:1 #, c-format msgid "" "The argument specifies if clients are authorized to connect\n" "to the X server from the network on the tcp port 6000 or not." msgstr "" "Ovaj argument određuje da li su klijenti autorizovani za\n" "povezivanje na X server putem mreže na TCP portu 6000." #: ../../help.pm:1 #, c-format msgid "Development" msgstr "Programiranje" #: ../../any.pm:1 ../../help.pm:1 ../../diskdrake/dav.pm:1 #: ../../diskdrake/hd_gtk.pm:1 ../../diskdrake/removable.pm:1 #: ../../diskdrake/smbnfs_gtk.pm:1 ../../interactive/http.pm:1 #: ../../printer/printerdrake.pm:1 ../../standalone/drakbackup:1 #: ../../standalone/scannerdrake:1 #, c-format msgid "Done" msgstr "Gotovo" #: ../../network/drakfirewall.pm:1 #, c-format msgid "Web Server" msgstr "Web server" #: ../../lang.pm:1 #, c-format msgid "Chile" msgstr "Čile" #: ../../standalone/drakbackup:1 #, c-format msgid "\tDo not include System Files\n" msgstr "\tNe uključuj sistemske datoteke\n" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "The inkjet printer drivers provided by Lexmark only support local printers, " "no printers on remote machines or print server boxes. Please connect your " "printer to a local port or configure it on the machine where it is connected " "to." msgstr "" "Inkjet drajveri za štampu koje obezbjeđuje Lexmark podržavaju samo lokalne " "štampače, a ne i štampače na udaljenim računarima ili print serverima. Molim " "spojite vaš štampač na lokalni port ili ga podesite na računaru na koji je " "spojen." #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "Your multi-function device was configured automatically to be able to scan. " "Now you can scan with \"scanimage\" (\"scanimage -d hp:%s\" to specify the " "scanner when you have more than one) from the command line or with the " "graphical interfaces \"xscanimage\" or \"xsane\". If you are using the GIMP, " "you can also scan by choosing the appropriate point in the \"File\"/\"Acquire" "\" menu. Call also \"man scanimage\" on the command line to get more " "information.\n" "\n" "Do not use \"scannerdrake\" for this device!" msgstr "" "Vaš višenamjenski uređaj je automatski konfigurisan kako bi mogao skenirati. " "Sada možete skenirati sa komandne linije pomoću komande \"scanimage" "\" (\"scanimage -d hp:%s\" kako biste naveli scanner ako imate više od " "jednog) ili koristeći grafičke okoline \"xscanimage\" ili \"xsane\". Ako " "koristite GIMP, možete također skenirati koristeći odgovarajuću stavku u " "meniju \"File\"/\"Acquire\". Za više informacija, pogledajte još i \"man " "scanimage\" na komandnoj liniji (\"#scanimage\" u Konqueroru).\n" "\n" "Nemojte koristiti \"scannerdrake\" za ovaj uređaj!" #: ../../any.pm:1 #, c-format msgid "(already added %s)" msgstr "(već dodan %s)" #: ../../any.pm:1 #, c-format msgid "Bootloader installation in progress" msgstr "Instalacija bootloadera u toku" #: ../../printer/main.pm:1 #, c-format msgid ", using command %s" msgstr ", koristeći komandu %s" #: ../../keyboard.pm:1 #, c-format msgid "Alt and Shift keys simultaneously" msgstr "Alt i Shift tipke istovremeno" #: ../../standalone/harddrake2:1 #, c-format msgid "Flags" msgstr "Flagovi" #: ../../standalone/drakTermServ:1 #, c-format msgid "Add/Del Users" msgstr "Dodaj/obriši korisnike" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Host/network IP address missing." msgstr "Nedostaje IP adresa računara/mreže." #: ../../standalone/drakbackup:1 #, c-format msgid "weekly" msgstr "sedmično" #: ../../standalone/logdrake:1 ../../standalone/net_monitor:1 #, c-format msgid "Settings" msgstr "Podešavanja" #: ../../printer/printerdrake.pm:1 #, c-format msgid "The entered host/network IP is not correct.\n" msgstr "Unesena IP adresa računara/mreže nije ispravna.\n" #: ../../standalone/drakbackup:1 #, c-format msgid "Create/Transfer backup keys for SSH" msgstr "Napravi/premjesti backup ključeve za SSH" #: ../../any.pm:1 #, c-format msgid "Here is the full list of available countries" msgstr "Ovdje je puna lista svih dostupnih država" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Alternative test page (A4)" msgstr "Alternativna testna strana (A4)" #: ../../install_steps_interactive.pm:1 #, c-format msgid "" "If you have all the CDs in the list below, click Ok.\n" "If you have none of those CDs, click Cancel.\n" "If only some CDs are missing, unselect them, then click Ok." msgstr "" "Ako imate sve CDe na listi, kliknite na U redu.\n" "Ako nemate nijedan od ovih CDova, kliknite na Odustani.\n" "Ako nedostaju samo neki CDovi, isključite ih, zatim kliknite na U redu." #: ../../standalone/drakconnect:1 ../../standalone/net_monitor:1 #, c-format msgid "Wait please" msgstr "Molim sačekajte" #: ../../network/modem.pm:1 ../../standalone/drakconnect:1 #, c-format msgid "PAP" msgstr "PAP" #: ../../standalone/drakbackup:1 #, c-format msgid "Backup user files" msgstr "Backup korisničkih datoteka" #: ../../diskdrake/dav.pm:1 #, c-format msgid "New" msgstr "Novi" #: ../../help.pm:1 #, c-format msgid "" "This is the most crucial decision point for the security of your GNU/Linux\n" "system: you have to enter the \"root\" password. \"Root\" is the system\n" "administrator and is the only user authorized to make updates, add users,\n" "change the overall system configuration, and so on. In short, \"root\" can\n" "do everything! That is why you must choose a password that is difficult to\n" "guess - DrakX will tell you if the password that you chose too easy. As you\n" "can see, you are not forced to enter a password, but we strongly advise you\n" "against this. GNU/Linux is just as prone to operator error as any other\n" "operating system. Since \"root\" can overcome all limitations and\n" "unintentionally erase all data on partitions by carelessly accessing the\n" "partitions themselves, it is important that it be difficult to become\n" "\"root\".\n" "\n" "The password should be a mixture of alphanumeric characters and at least 8\n" "characters long. Never write down the \"root\" password -- it makes it far\n" "too easy to compromise a system.\n" "\n" "One caveat -- do not make the password too long or complicated because you\n" "must be able to remember it!\n" "\n" "The password will not be displayed on screen as you type it in. To reduce\n" "the chance of a blind typing error you will need to enter the password\n" "twice. If you do happen to make the same typing error twice, this\n" "``incorrect'' password will be the one you will have use the first time you\n" "connect.\n" "\n" "If you wish access to this computer to be controlled by an authentication\n" "server, click the \"%s\" button.\n" "\n" "If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n" "services, select the appropriate one for \"%s\". If you do not know which\n" "one to use, you should ask your network administrator.\n" "\n" "If you happen to have problems with remembering passwords, if your computer\n" "will never be connected to the internet or that you absolutely trust\n" "everybody who uses your computer, you can choose to have \"%s\"." msgstr "" "Ovo je najvažnija odluka za sigurnost vašeg GNU/Linux sistema: trebate\n" "unijeti \"root\" šifru, \"Root\" je sistemski administrator i jedini\n" "korisnik kojem je dozvoljeno da updatuje sistem, dodaje druge korisnike,\n" "mijenja konfiguraciju sistema itd. Ukratko, \"root\" može raditi sve! Stoga\n" "trebate izabrati šifru koju je teško pogoditi - DrakX će vam reći da li je " "šifra\n" "koju ste odabrali prelagana. Kao što možete vidjeti, niste prisiljeni da\n" "unesete šifru, ali vam savjetujemo da to uradite. GNU/Linux je podložan\n" "operatorskim greškama kao i bilo koji drugi operativni sistem. Pošto\n" "\"root\" može prevazići sva ograničenja i nenamjerno pobrisati sve podatke\n" "na particijama neoprezno im pristupajući, važno je da je teško postati \"root" "\".\n" "\n" "Šifra treba biti kombinacija alfanumeričkih znakova i biti barem 8 znakova\n" "duga. Nikad ne zapisujte \"root\" šifru -- time vaš sistem postaje lagano\n" "kompromitovati.\n" "\n" "Jedan izuzetak -- ne dozvolite da šifra bude preduga ili prekomplikovana\n" "pošto ćete je morati zapamtiti!\n" "\n" "Šifra neće biti prikazana na ekranu dok je unosite. Da bismo smanjili\n" "mogućnost greške zbog kucanja naslijepo, moraćete unijeti šifru dva puta.\n" "Ako nekim slučajem ponovite istu grešku dva puta, ovu ''neispravnu'' šifru\n" "trebate koristiti prilikom prve prijave.\n" "\n" "Ako želite da pristup ovom računaru bude kontroliran pomoću servera za\n" "autentikaciju, kliknite na dugme \"%s\".\n" "\n" "Ako vaša mreža koristi LDAP, NIS ili PDC Windows domen autentikacione\n" "servise, izaberite odgovarajući kao \"%s\". Ako ne znate koji\n" "koristiti, pitajte vašeg mrežnog administratora.\n" "\n" "Ako imate problema sa pamćenjem šifara, možete izabrati opciju \"%s\",\n" "pod uslovom da vaš računar neće biti spojen na Internet i da\n" "vjerujete svakome ko mu ima fizički pristup." #: ../../security/l10n.pm:1 #, c-format msgid "Name resolution spoofing protection" msgstr "Zaštita od lažiranja rezolucije imena" #: ../../help.pm:1 #, c-format msgid "" "At this point, DrakX will allow you to choose the security level desired\n" "for the machine. As a rule of thumb, the security level should be set\n" "higher if the machine will contain crucial data, or if it will be a machine\n" "directly exposed to the Internet. The trade-off of a higher security level\n" "is generally obtained at the expense of ease of use.\n" "\n" "If you do not know what to choose, stay with the default option." msgstr "" "Na ovom mjestu, DrakX vam omogućuje da izaberete sigurnosni nivo\n" "koji želite imati na ovom računaru. Kao pravilo, sigurnosni nivo treba biti\n" "tim viši što su važniji podaci na računaru, a pogotovo ako će računar biti\n" "direktno izložen Internetu. Većim nivoom sigurnosti obično gubite na\n" "jednostavnosti korištenja.\n" "\n" "Ako ne znate šta izabrati, zadržite ponuđenu opciju." #: ../../install_steps_interactive.pm:1 #, c-format msgid "Load from floppy" msgstr "Učitaj sa diskete" #: ../../printer/printerdrake.pm:1 #, c-format msgid "The following printer was auto-detected. " msgstr "Sljedeći štampač je prepoznat automatski." #: ../../printer/main.pm:1 #, c-format msgid "Uses command %s" msgstr "Koristi naredbu %s" #: ../../standalone/drakTermServ:1 #, c-format msgid "Boot Floppy" msgstr "Boot disketa" #: ../../keyboard.pm:1 #, c-format msgid "Norwegian" msgstr "Norveška" #: ../../standalone/scannerdrake:1 #, c-format msgid "Searching for new scanners ..." msgstr "Tražim nove skenere ..." #: ../../standalone/logdrake:1 #, c-format msgid "Apache World Wide Web Server" msgstr "Apache World Wide Web Server" #: ../../standalone/harddrake2:1 #, c-format msgid "stepping of the cpu (sub model (generation) number)" msgstr "stepping procesora (broj pod-modela / generacije)" #: ../../standalone/drakbackup:1 #, c-format msgid "select path to restore (instead of /)" msgstr "izaberite stazu za vraćanje (umjesto / )" #: ../../standalone/draksplash:1 #, c-format msgid "Configure bootsplash picture" msgstr "Podesite bootsplash sliku" #: ../../lang.pm:1 #, c-format msgid "Georgia" msgstr "Gruzija" #: ../../lang.pm:1 #, c-format msgid "China" msgstr "Kina" #: ../../printer/printerdrake.pm:1 #, c-format msgid " (Make sure that all your printers are connected and turned on).\n" msgstr "(Provjerite da li su svi štampači spojeni i upaljeni).\n" #: ../../standalone/printerdrake:1 #, c-format msgid "Reading data of installed printers..." msgstr "Čitam podatke instaliranih štampača..." #: ../../standalone/drakbackup:1 #, c-format msgid " Erase Now " msgstr " Obriši odmah " #: ../../fsedit.pm:1 #, c-format msgid "server" msgstr "server" #: ../../install_any.pm:1 #, c-format msgid "Insert a FAT formatted floppy in drive %s" msgstr "Ubacite FAT formatiranu disketu u jedinicu %s" #: ../../standalone/harddrake2:1 #, c-format msgid "yes means the processor has an arithmetic coprocessor" msgstr "da znači da procesor ima aritmetički koprocesor" #: ../../harddrake/sound.pm:1 ../../standalone/drakconnect:1 #, c-format msgid "Please Wait... Applying the configuration" msgstr "Molim sačekajte... Primjenjujem konfiguraciju" #. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit) #. -PO: and keep them smaller than 79 chars long #: ../../bootloader.pm:1 #, c-format msgid "Welcome to GRUB the operating system chooser!" msgstr "Dobro došli u GRUB izbornik operativnog sistema!" #: ../../bootloader.pm:1 #, c-format msgid "Grub" msgstr "Grub" #: ../../harddrake/data.pm:1 #, c-format msgid "SCSI controllers" msgstr "SCSI kontroleri" #: ../../printer/main.pm:1 #, c-format msgid " on LPD server \"%s\", printer \"%s\"" msgstr "na LPD serveru \"%s\", štampač \"%s\"" #: ../../standalone/drakedm:1 #, c-format msgid "Choosing a display manager" msgstr "Izbor display managera" #: ../../network/ethernet.pm:1 ../../network/network.pm:1 #, c-format msgid "Zeroconf Host name" msgstr "Zeroconf Ime računara" #: ../../standalone/drakbackup:1 #, c-format msgid "Custom setup/crontab entry:" msgstr "Vlastito podešavanje/crontab unos:" #: ../../network/network.pm:1 ../../printer/printerdrake.pm:1 #, c-format msgid "IP address should be in format 1.2.3.4" msgstr "IP adresa treba biti u formatu 1.2.3.4" #: ../../standalone/printerdrake:1 #, c-format msgid "Configure CUPS printing system" msgstr "Podesite CUPS sistem štampe" #: ../../lang.pm:1 #, c-format msgid "Ecuador" msgstr "Ekvador" #: ../../standalone/drakautoinst:1 #, c-format msgid "Add an item" msgstr "Dodaj stavku" #: ../../printer/printerdrake.pm:1 #, c-format msgid "The printers on this machine are available to other computers" msgstr "Štampači na ovom računaru su dostupni drugim računarima" #: ../../lang.pm:1 #, fuzzy, c-format msgid "China (Hong Kong)" msgstr "Hong Kong" #: ../../standalone/drakautoinst:1 #, c-format msgid "I can't find needed image file `%s'." msgstr "Ne mogu pronaći potrebnu image datoteku '%s'" #: ../../install_steps_interactive.pm:1 #, c-format msgid "No sound card detected. Try \"harddrake\" after installation" msgstr "" "Nije otkrivena zvučna kartica. Probajte \"harddrake\" poslije instalacije" #: ../../network/drakfirewall.pm:1 #, c-format msgid "" "Invalid port given: %s.\n" "The proper format is \"port/tcp\" or \"port/udp\", \n" "where port is between 1 and 65535." msgstr "" "Zadan je neispravan port: %s.\n" "Odgovarajući format je \"port/tcp\" ili \"port/udp\", \n" "gdje je \"port\" cijeli broj između 1 i 65535." #: ../../any.pm:1 #, c-format msgid "Shell" msgstr "Shell" #: ../../lang.pm:1 #, c-format msgid "Sao Tome and Principe" msgstr "Sao Tome i Principe" #: ../../network/isdn.pm:1 #, c-format msgid "PCI" msgstr "PCI" #: ../../diskdrake/smbnfs_gtk.pm:1 #, c-format msgid "Can't login using username %s (bad password?)" msgstr "Ne mogu se prijaviti koristeći korisničko ime %s (pogrešna šifa?)" #: ../../keyboard.pm:1 #, c-format msgid "Azerbaidjani (latin)" msgstr "Azerbejdžanska (latinica)" #: ../../standalone/drakbug:1 #, c-format msgid "Package not installed" msgstr "Paket nije instaliran" #: ../../lang.pm:1 #, c-format msgid "American Samoa" msgstr "Američka Samoa" #: ../advertising/12-mdkexpert.pl:1 #, c-format msgid "Become a MandrakeExpert" msgstr "Postanite MandrakeExpert" #: ../../standalone/drakconnect:1 #, c-format msgid "Protocol" msgstr "Protokol" #: ../../standalone/drakfont:1 #, c-format msgid "Copy fonts on your system" msgstr "Kopiraj fontove na sistem" #: ../../standalone/harddrake2:1 #, c-format msgid "Harddrake help" msgstr "Harddrake pomoć" #: ../../standalone/harddrake2:1 #, c-format msgid "Bogomips" msgstr "Bogomips" #: ../../standalone/drakTermServ:1 #, c-format msgid "Mandrake Terminal Server Configuration" msgstr "Podešavanje Mandrake Terminal servera" #: ../../standalone/drakbackup:1 #, c-format msgid "" "\n" " DrakBackup Report Details\n" "\n" "\n" msgstr "" "\n" " DrakBackup Detalji izvještaja\n" "\n" "\n" #: ../../standalone/drakbackup:1 #, c-format msgid "Restore all backups" msgstr "Vrati sve backupe" #: ../../printer/main.pm:1 ../../printer/printerdrake.pm:1 #, c-format msgid " on parallel port #%s" msgstr " na paralelnom portu #%s" #: ../../security/help.pm:1 #, c-format msgid "" "Set the password minimum length and minimum number of digit and minimum " "number of capitalized letters." msgstr "" "Podesite minimalnu dužinu šifre, minimalan broj cifara i minimalan broj " "velikih slova." #: ../../security/help.pm:1 #, c-format msgid "if set to yes, check open ports." msgstr "ako je postavljeno na da, provjerava otvorene portove." #: ../../standalone/drakbackup:1 #, c-format msgid "This may take a moment to erase the media." msgstr "Potrebno je par trenutaka da se obriše medij." #: ../../install_steps_gtk.pm:1 #, c-format msgid "You can't select/unselect this package" msgstr "Ne možete izabrati/isključiti ovaj paket" #: ../../keyboard.pm:1 ../../diskdrake/interactive.pm:1 #: ../../harddrake/sound.pm:1 ../../network/modem.pm:1 #: ../../standalone/drakfloppy:1 #, c-format msgid "Warning" msgstr "Upozorenje" #: ../../standalone/drakbackup:1 #, c-format msgid "" "\n" "- Other Files:\n" msgstr "" "\n" "- ostale datoteke:\n" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Remote host name" msgstr "Ime udaljenog računara" #: ../../any.pm:1 #, c-format msgid "access to X programs" msgstr "pristup X programima" #: ../../install_interactive.pm:1 #, c-format msgid "Computing the size of the Windows partition" msgstr "Izračunavam veličinu Windows particije" #: ../../standalone/printerdrake:1 #, c-format msgid "/_Refresh" msgstr "/_Osvježi" #: ../../crypto.pm:1 ../../lang.pm:1 ../../network/tools.pm:1 #: ../../standalone/drakxtv:1 #, c-format msgid "Italy" msgstr "Italija" #: ../../lang.pm:1 #, c-format msgid "Cayman Islands" msgstr "Kajmanska ostrva" #: ../../fs.pm:1 ../../partition_table.pm:1 #, c-format msgid "error unmounting %s: %s" msgstr "greška u demontiranju %s: %s" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Name of printer" msgstr "Naziv štampača" #: ../../standalone/drakgw:1 #, c-format msgid "disable" msgstr "isključi" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Do it!" msgstr "Uradi!" #: ../../standalone/drakbackup:1 #, c-format msgid "%s not responding" msgstr "%s ne odgovara" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Select model manually" msgstr "Izaberite model ručno" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Format" msgstr "Formatiraj" #: ../../network/adsl.pm:1 #, c-format msgid "" "The most common way to connect with adsl is pppoe.\n" "Some connections use pptp, a few use dhcp.\n" "If you don't know, choose 'use pppoe'" msgstr "" "Najčešći način za konekciju sa adsl-om je pppoe.\n" "Neke konekcije koriste pptp, a vrlo rijetke koriste dhcp.\n" "Ako ne znate, izaberite 'koristi pppoe'" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Various" msgstr "Razno" #: ../../harddrake/data.pm:1 #, c-format msgid "Zip" msgstr "Zip" #: ../../keyboard.pm:1 #, c-format msgid "Left Alt key" msgstr "Lijeva Alt tipka" #: ../../standalone/logdrake:1 #, c-format msgid "Load setting" msgstr "Podešavanje opterećenja" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "\n" "\n" "Printerdrake could not determine which model your printer %s is. Please " "choose the correct model from the list." msgstr "" "\n" "\n" "Printerdrake nije mogao odrediti model vašeg %s štampača. Molim izaberite " "odgovarajući model na listi." #: ../../standalone/printerdrake:1 #, c-format msgid "Set selected printer as the default printer" msgstr "Podesi izabrani štampač kao podrazumjevani" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "\n" "Mark the printers which you want to transfer and click \n" "\"Transfer\"." msgstr "" "\n" "Označite štampače koje ćete prebacivati i kliknite na \n" "\"Prebaci\"." #: ../../printer/data.pm:1 #, c-format msgid "PDQ" msgstr "PDQ" #: ../../keyboard.pm:1 #, c-format msgid "Albanian" msgstr "Albanska" #: ../../lang.pm:1 #, c-format msgid "Lithuania" msgstr "Litvanija" #: ../../any.pm:1 #, c-format msgid "Compact" msgstr "Kompaktno" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Detected model: %s %s" msgstr "Detektovani model: %s %s" #: ../advertising/03-software.pl:1 #, c-format msgid "MandrakeSoft has selected the best software for you" msgstr "MandrakeSoft je izabrao najbolji softver za vas" #: ../../any.pm:1 #, c-format msgid "Local files" msgstr "Lokalne datoteke" #: ../../pkgs.pm:1 #, c-format msgid "maybe" msgstr "možda" #: ../../lang.pm:1 #, c-format msgid "Panama" msgstr "Panama" #: ../../standalone/drakTermServ:1 #, c-format msgid "Can't open %s!" msgstr "Ne mogu otvoriti %s!" #: ../../Xconfig/various.pm:1 #, c-format msgid "" "Your graphic card seems to have a TV-OUT connector.\n" "It can be configured to work using frame-buffer.\n" "\n" "For this you have to plug your graphic card to your TV before booting your " "computer.\n" "Then choose the \"TVout\" entry in the bootloader\n" "\n" "Do you have this feature?" msgstr "" "Izgleda da vaša grafička kartica ima TV-OUT konektor.\n" "On se može podesiti da radi koristeći frame-buffer.\n" "\n" "Za ovo je potrebno da uključite grafičku karticu u TV prije nego što upalite " "računar.\n" "Zatim u meniju bootloadera izaberite opciju \"TVout\"\n" "\n" "Imate li ovu mogućnost?" #: ../../Xconfig/main.pm:1 ../../Xconfig/monitor.pm:1 #, c-format msgid "Monitor" msgstr "Monitor" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "You are about to set up printing to a Windows account with password. Due to " "a fault in the architecture of the Samba client software the password is put " "in clear text into the command line of the Samba client used to transmit the " "print job to the Windows server. So it is possible for every user on this " "machine to display the password on the screen by issuing commands as \"ps " "auxwww\".\n" "\n" "We recommend to make use of one of the following alternatives (in all cases " "you have to make sure that only machines from your local network have access " "to your Windows server, for example by means of a firewall):\n" "\n" "Use a password-less account on your Windows server, as the \"GUEST\" account " "or a special account dedicated for printing. Do not remove the password " "protection from a personal account or the administrator account.\n" "\n" "Set up your Windows server to make the printer available under the LPD " "protocol. Then set up printing from this machine with the \"%s\" connection " "type in Printerdrake.\n" "\n" msgstr "" "Upravo ćete podesiti štampanje na Windows račun zaštićen šifrom. Zbog " "propusta u arhitekturi Samba klijentskog softvera, šifra je stavljena u " "običnom tekstu u komandnu liniju Samba klijenta prilikom slanja zadatka " "štampe Windows serveru. Stoga je moguće da drugi korisnici ovog istog " "računara prikažu šifru na ekranu koristeći komandu kao što je \"ps auxwww" "\".\n" "\n" "Preporučujemo korištenje jedne od sljedećih alternativa (u svakom slučaju " "pobrinite se da samo računari na vašoj lokalnoj mreži imaju pristup Windows " "serveru, na primjer koristeći firewall):\n" "\n" "Koristite račun bez šifre na Windows serveru, kao što je \"GUEST\" račun ili " "poseban račun posvećen štampanju. Nemojte ukloniti zaštitu šifrom sa vašeg " "ličnog računa ili administratorskog računa.\n" "\n" "Podesite vaš Windows server tako da je štampač dostupan pod LPD protokolom. " "Zatim podesite štampanje na ovom računaru uz konekciju tipa \"%s\" u " "Printerdrake-u.\n" "\n" #: ../../Xconfig/resolution_and_depth.pm:1 #, c-format msgid "65 thousand colors (16 bits)" msgstr "65 hiljada boja (16 bita)" #: ../../standalone/drakbackup:1 #, c-format msgid "" "\n" "- Save on Hard drive on path: %s\n" msgstr "" "\n" "- spasi na hard disku u direktoriju: %s\n" #: ../../standalone/drakfont:1 #, c-format msgid "Remove fonts on your system" msgstr "Pobriši fontove sa mog sistema" #: ../../standalone/drakgw:1 #, c-format msgid "" "Warning, the network adapter (%s) is already configured.\n" "\n" "Do you want an automatic re-configuration?\n" "\n" "You can do it manually but you need to know what you're doing." msgstr "" "Upozorenje, mrežni adapter (%s) je već podešen.\n" "\n" "Da li želite automatsko ponovno podešavanje?\n" "\n" "To možete obaviti ručno, ali morate znati šta radite." #: ../../Xconfig/various.pm:1 #, c-format msgid "Graphical interface at startup" msgstr "Grafički interfejs pri pokretanju" #: ../../network/netconnect.pm:1 #, c-format msgid " adsl" msgstr " ADSL" #: ../../raid.pm:1 #, c-format msgid "Not enough partitions for RAID level %d\n" msgstr "Nema dovoljno particija za RAID nivo %d\n" #: ../../standalone/harddrake2:1 #, c-format msgid "format of floppies supported by the drive" msgstr "format disketa koje podržava jedinica" #: ../../network/tools.pm:1 #, c-format msgid "Firmware copy failed, file %s not found" msgstr "Kopiranje firmware-a nije uspjelo, datoteka %s nije pronađena" #: ../../standalone/drakTermServ:1 #, c-format msgid "local config: true" msgstr "lokalni config: da" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "The following printers are configured. Double-click on a printer to change " "its settings; to make it the default printer; or to view information about " "it." msgstr "" "Sljedeći štampači su podešeni. Kliknite dva puta na neki od njih za izmjenu " "postavki; ako ga želite učiniti podrazumijevanim štampačem; ili da biste " "vidjeli informacije o njemu." #: ../../standalone/drakconnect:1 ../../standalone/net_monitor:1 #, c-format msgid "Connected" msgstr "Konektovan" #: ../../keyboard.pm:1 #, c-format msgid "Macedonian" msgstr "Makedonska" #: ../../lang.pm:1 #, c-format msgid "Mali" msgstr "Mali" #: ../../harddrake/data.pm:1 #, c-format msgid "Bridges and system controllers" msgstr "Mostovi (bridges) i sistemski kontroleri" #: ../../standalone/logdrake:1 #, c-format msgid "/File/_Save" msgstr "/Datoteka/_Sačuvaj" #: ../../install_steps_gtk.pm:1 #, c-format msgid "No details" msgstr "Sakrij detalje" #: ../../pkgs.pm:1 #, c-format msgid "very nice" msgstr "vrlo fino" #: ../../standalone/draksplash:1 #, c-format msgid "Preview" msgstr "Pregled" #: ../../standalone/drakbug:1 #, c-format msgid "Remote Control" msgstr "Udaljena kontrola" #: ../../standalone/drakbackup:1 #, c-format msgid "Please select media for backup..." msgstr "Molim izaberite medij za backup..." #: ../../standalone/logdrake:1 #, c-format msgid "Wrong email" msgstr "Pogrešan e-mail" #: ../../Xconfig/various.pm:1 #, c-format msgid "XFree86 server: %s\n" msgstr "XFree86 server: %s\n" #: ../../standalone/drakTermServ:1 #, c-format msgid "Allow Thin Clients" msgstr "Omogući thin klijente" #: ../../keyboard.pm:1 #, c-format msgid "Georgian (\"Russian\" layout)" msgstr "Gruzijska (\"ruski\" izgled)" #: ../../standalone/harddrake2:1 ../../standalone/logdrake:1 #: ../../standalone/printerdrake:1 #, c-format msgid "/_Options" msgstr "/_Opcije" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Your printer model" msgstr "Model vašeg štampača" #: ../../any.pm:1 #, c-format msgid "" "\n" "\n" "(WARNING! You're using XFS for your root partition,\n" "creating a bootdisk on a 1.44 Mb floppy will probably fail,\n" "because XFS needs a very large driver)." msgstr "" "\n" "\n" "(PAŽNJA! Vi koristite XFS za vašu root particiju,\n" "pravljenje boot diskete na 1.44 Mb disketi vjerovatno neće\n" "raditi, pošto XFS traži veoma velik drajver)." #: ../../standalone/drakbackup:1 #, c-format msgid "" "\n" "- Delete hard drive tar files after backup.\n" msgstr "" "\n" "- Obriši tar datoteke sa diska nakon backupa.\n" #: ../../standalone/drakpxe:1 #, c-format msgid "" "No CD or DVD image found, please copy the installation program and rpm files." msgstr "" "Nije pronađena nijedna CD ili DVD slika, molim kopirajte instalacioni " "program i rpm datoteke." #: ../advertising/04-configuration.pl:1 #, c-format msgid "Mandrake's multipurpose configuration tool" msgstr "Mandrake višenamjenski alat za podešavanje" #: ../../standalone/drakbackup:1 ../../standalone/logdrake:1 #, c-format msgid "Save" msgstr "Spasi" #: ../../standalone/scannerdrake:1 #, c-format msgid "The %s is unsupported" msgstr "%s nije podržan" #: ../../services.pm:1 #, c-format msgid "Load the drivers for your usb devices." msgstr "Pokreće drajvere za vaše USB uređaje." #: ../../harddrake/data.pm:1 #, c-format msgid "Disk" msgstr "Disk" #: ../../printer/main.pm:1 ../../printer/printerdrake.pm:1 #, c-format msgid "Enter a printer device URI" msgstr "Unesite URI uređaja štampača" #: ../advertising/01-thanks.pl:1 #, c-format msgid "" "The success of MandrakeSoft is based upon the principle of Free Software. " "Your new operating system is the result of collaborative work of the " "worldwide Linux Community." msgstr "" "Uspjeh MandrakeSofta je baziran na principima Slobodnog softvera. Vaš novi " "operativni sistem je rezultat zajedničkog rada Linux zajednice širom svijeta." #: ../../lang.pm:1 #, c-format msgid "Israel" msgstr "Izrael" #: ../../lang.pm:1 #, c-format msgid "French Guiana" msgstr "Francuska Gvajana" #: ../../lang.pm:1 #, c-format msgid "default:LTR" msgstr "default:LTR" #: ../../printer/printerdrake.pm:1 #, c-format msgid "A command line must be entered!" msgstr "Trebate unijeti komandnu liniju!" #: ../../standalone/drakbackup:1 #, c-format msgid "Select user manually" msgstr "Ručno izaberite korisnika" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Transfer printer configuration" msgstr "Premještanje konfiguracije štamapča" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Do you want to enable printing on the printers mentioned above?\n" msgstr "Da li želite omogućiti štampanje na gore navedenim štampačima?\n" #: ../../security/l10n.pm:1 #, c-format msgid "Check additions/removals of suid root files" msgstr "Provjeri dodavanje/brisanje suid root datoteka" #: ../../any.pm:1 #, c-format msgid "" "For this to work for a W2K PDC, you will probably need to have the admin " "run: C:\\>net localgroup \"Pre-Windows 2000 Compatible Access\" everyone /" "add and reboot the server.\n" "You will also need the username/password of a Domain Admin to join the " "machine to the Windows(TM) domain.\n" "If networking is not yet enabled, Drakx will attempt to join the domain " "after the network setup step.\n" "Should this setup fail for some reason and domain authentication is not " "working, run 'smbpasswd -j DOMAIN -U USER%%PASSWORD' using your Windows(tm) " "Domain, and Admin Username/Password, after system boot.\n" "The command 'wbinfo -t' will test whether your authentication secrets are " "good." msgstr "" "Da bi ovo radilo sa W2K PDCom, vjerovatno će biti potrebno da admin izvrši:\n" " C:\\>net localgroup \"Pre-Windows 2000 Compatible Access\" everyone /add\n" "i restartuje server. Takođe će vam trebati korisničko ime i šifra " "administratora domena da biste pridružili računar Windows(tm) domenu.\n" "Ako mreža još nije aktivirana, DrakX će pokušati pristupanje domenu tek " "nakon što prođete kroz korak podešavanja mreže.\n" "Ako ovo podešavanje iz nekog razloga ne uspije i prijava na domen ne bude " "izvršena, izvršite naredbu 'smbpasswd -j DOMAIN -U USER%%PASSWORD' koristeći " "vašu Windows(tm) domenu, kao i administratorovo korisničko ime i šifru nakon " "pokretanja sistema.\n" "Naredba 'wbinfo -t' će provjeriti da li su vaši podaci ispravni." #: ../../printer/main.pm:1 #, c-format msgid "%s (Port %s)" msgstr "%s (Port %s)" #: ../../standalone/drakbackup:1 #, c-format msgid "Use network connection to backup" msgstr "Koristi mrežnu konekciju za backup" #: ../../standalone/drakfloppy:1 #, c-format msgid "Kernel version" msgstr "Kernel verzija" #: ../../help.pm:1 #, c-format msgid "" "It is now time to specify which programs you wish to install on your\n" "system. There are thousands of packages available for Mandrake Linux, and\n" "to make it simpler to manage the packages have been placed into groups of\n" "similar applications.\n" "\n" "Packages are sorted into groups corresponding to a particular use of your\n" "machine. Mandrake Linux has four predefined installations available. You\n" "can think of these installation classes as containers for various packages.\n" "You can mix and match applications from the various groups, so a\n" "``Workstation'' installation can still have applications from the\n" "``Development'' group installed.\n" "\n" " * \"%s\": if you plan to use your machine as a workstation, select one or\n" "more of the applications that are in the workstation group.\n" "\n" " * \"%s\": if plan on using your machine for programming, choose the\n" "appropriate packages from that group.\n" "\n" " * \"%s\": if your machine is intended to be a server, select which of the\n" "more common services you wish to install on your machine.\n" "\n" " * \"%s\": this is where you will choose your preferred graphical\n" "environment. At least one must be selected if you want to have a graphical\n" "interface available.\n" "\n" "Moving the mouse cursor over a group name will display a short explanatory\n" "text about that group. If you unselect all groups when performing a regular\n" "installation (as opposed to an upgrade), a dialog will pop up proposing\n" "different options for a minimal installation:\n" "\n" " * \"%s\": install the minimum number of packages possible to have a\n" "working graphical desktop.\n" "\n" " * \"%s\": installs the base system plus basic utilities and their\n" "documentation. This installation is suitable for setting up a server.\n" "\n" " * \"%s\": will install the absolute minimum number of packages necessary\n" "to get a working Linux system. With this installation you will only have a\n" "command line interface. The total size of this installation is about 65\n" "megabytes.\n" "\n" "You can check the \"%s\" box, which is useful if you are familiar with the\n" "packages being offered or if you want to have total control over what will\n" "be installed.\n" "\n" "If you started the installation in \"%s\" mode, you can unselect all groups\n" "to avoid installing any new package. This is useful for repairing or\n" "updating an existing system." msgstr "" "Sada je vrijeme da izaberete koje programe želite instalirati na vaš\n" "sistem. Za Mandrake Linux su dostupne hiljade paketa, pa da bi\n" "njihovo upravljanje bilo lakše, organizovani su u grupe slične\n" "primjene.\n" "\n" "Paketi su sortirani u grupe ovisno o tipičnoj namjeni vašeg računara.\n" "Mandrake Linux sadrži četiri predefinisane instalacije. Ove klase\n" "instalacije možete zamisliti kao kontejnere za razne pakete. Možete\n" "miješati i poklapati aplikacije iz raznih grupa, pa tako instalacija " "''Radna\n" "stanica'' može sadržavati aplikacije iz grupe ''Programiranje''.\n" "\n" " * \"%s\": ako planirate da koristite vaš računar kao radnu stanicu, " "izaberite\n" "jednu ili više aplikacija koje se nalaze u ovoj grupi.\n" "\n" " * \"%s\": ako planirate koristiti vaš računar za programiranje, izaberite\n" "odgovarajuće pakete iz ove grupe.\n" "\n" " * \"%s\": ako je vaš računar zamišljen kao server, izaberite koje od\n" "uobičajenih servisa želite instalirati na vaš računar.\n" "\n" " * \"%s\": ovdje možete izabrati vašu preferiranu grafičku okolinu. Barem\n" "jedna od njih mora biti izabrana ako želite da imate grafički interfejs.\n" "\n" "Držanjem kursora miša iznad imena grupe će nakratko prikazati kratko\n" "objašnjenje o pojedinoj grupi. Ako isključite sve grupe prilikom obavljanja\n" "obične instalacije (a ne upgrade), iskočiće dijalog koji vam nudi razne\n" "opcije za minimalnu instalaciju:\n" "\n" " * \"%s\": instalira minimalan mogući broj paketa potrebnih da imate\n" "funkcionalan grafički desktop.\n" "\n" " * \"%s\": instalira bazni sistem plus osnovne alate i njihovu\n" "dokumentaciju.\n" " Ova instalacija je prikladna za podešavanje servera.\n" "\n" " * \"%s\": ovo će instalirati apsolutni minimum paketa potrebnih da imate\n" "funkcionalan Linux sitsem. Sa ovom instalacijom imaćete samo komandnu\n" "liniju. Ukupna veličina ove instalacije je oko 65 megabajta.\n" "\n" "Možete aktivirati opciju \"%s\", koja je zgodna ako se upoznati sa " "ponuđenim\n" "paketima ili ako želite imati potpunu kontrolu nad onim što će se " "instalirati.\n" "\n" "Ako ste započeli instalaciju u \"%s\" režimu, možete isključiti sve grupe\n" "kako biste izbjegli instalaciju bilo kojeg novog paketa. Ovo je pogodno za\n" "popravljanje ili unaprjeđenje postojećeg sistema." #: ../../any.pm:1 ../../help.pm:1 #, c-format msgid "Accept user" msgstr "Prihvati korisnika" #: ../../help.pm:1 ../../diskdrake/dav.pm:1 #, c-format msgid "Server" msgstr "Server" #: ../../keyboard.pm:1 #, c-format msgid "Left Shift key" msgstr "Lijeva Shift tipka" #: ../../network/netconnect.pm:1 #, c-format msgid " local network" msgstr " lokalna mreža" #: ../../interactive/stdio.pm:1 #, c-format msgid "Bad choice, try again\n" msgstr "Pogrešan izbor, pokušajte ponovo\n" #: ../../security/l10n.pm:1 #, c-format msgid "Syslog reports to console 12" msgstr "Syslog izvještaji na konzoli 12" #: ../../diskdrake/smbnfs_gtk.pm:1 #, c-format msgid "Search new servers" msgstr "Traži nove servere" #: ../../lang.pm:1 #, c-format msgid "Heard and McDonald Islands" msgstr "Heard ostrvo i McDonaldova ostrva" #: ../../harddrake/sound.pm:1 #, c-format msgid "No alternative driver" msgstr "Nema alternativnog drajvera" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Toggle to expert mode" msgstr "Prebaci u ekspertni mod" #: ../../printer/cups.pm:1 #, c-format msgid "(on this machine)" msgstr "(na ovom računaru)" #: ../../network/network.pm:1 #, c-format msgid "Gateway address should be in format 1.2.3.4" msgstr "Gateway adresa treba biti u formatu 1.2.3.4" #: ../../network/modem.pm:1 #, c-format msgid "" "\"%s\" based winmodem detected, do you want to install needed software ?" msgstr "" "Otkrio sam winmodem baziran na \"%s\" chipsetu, želite li instalirati " "odgovarajući software ?" #: ../../install_steps_interactive.pm:1 #, c-format msgid "Looking at packages already installed..." msgstr "Tražim već instalirane pakete..." #: ../../standalone/drakbackup:1 #, c-format msgid "Use Differential Backups" msgstr "Koristi diferencijalni backup" #: ../../standalone/drakconnect:1 #, c-format msgid "Driver" msgstr "Drajver" #: ../../services.pm:1 #, c-format msgid "" "Linuxconf will sometimes arrange to perform various tasks\n" "at boot-time to maintain the system configuration." msgstr "" "Linuxconf će ponekad obaviti raznolike zadatke tokom boota\n" "kako bi se održala sistemska konfiguracija." #: ../../standalone/drakbackup:1 #, c-format msgid "DVD-R device" msgstr "DVDR uređaj" #: ../../printer/main.pm:1 ../../printer/printerdrake.pm:1 #, c-format msgid "Printer on remote lpd server" msgstr "Štampač na udaljenom lpd serveru" #: ../../standalone/drakfont:1 #, c-format msgid "" "Before installing any fonts, be sure that you have the right to use and " "install them on your system.\n" "\n" "-You can install the fonts the normal way. In rare cases, bogus fonts may " "hang up your X Server." msgstr "" "Prije instaliranja fontova, provjerite da li imate dozvole da ih koristite i " "instalirate na va[em sistemu.\n" "\n" "-Možete instalirati fontove koristeći uobičajen način. U rijetkim " "slučajevima, neispravni fontovi mogu zaglaviti vaš X Server." #: ../../help.pm:1 #, c-format msgid "" "Yaboot is a bootloader for NewWorld Macintosh hardware and can be used to\n" "boot GNU/Linux, MacOS or MacOSX. Normally, MacOS and MacOSX are correctly\n" "detected and installed in the bootloader menu. If this is not the case, you\n" "can add an entry by hand in this screen. Be careful to choose the correct\n" "parameters.\n" "\n" "Yaboot's main options are:\n" "\n" " * Init Message: a simple text message displayed before the boot prompt.\n" "\n" " * Boot Device: indicates where you want to place the information required\n" "to boot to GNU/Linux. Generally, you set up a bootstrap partition earlier\n" "to hold this information.\n" "\n" " * Open Firmware Delay: unlike LILO, there are two delays available with\n" "yaboot. The first delay is measured in seconds and at this point, you can\n" "choose between CD, OF boot, MacOS or Linux;\n" "\n" " * Kernel Boot Timeout: this timeout is similar to the LILO boot delay.\n" "After selecting Linux, you will have this delay in 0.1 second increments\n" "before your default kernel description is selected;\n" "\n" " * Enable CD Boot?: checking this option allows you to choose ``C'' for CD\n" "at the first boot prompt.\n" "\n" " * Enable OF Boot?: checking this option allows you to choose ``N'' for\n" "Open Firmware at the first boot prompt.\n" "\n" " * Default OS: you can select which OS will boot by default when the Open\n" "Firmware Delay expires." msgstr "" "Yaboot is a bootloader for NewWorld Macintosh hardware and can be used to\n" "boot GNU/Linux, MacOS or MacOSX. Normally, MacOS and MacOSX are correctly\n" "detected and installed in the bootloader menu. If this is not the case, you\n" "can add an entry by hand in this screen. Be careful to choose the correct\n" "parameters.\n" "\n" "Yaboot's main options are:\n" "\n" " * Init Message: a simple text message displayed before the boot prompt.\n" "\n" " * Boot Device: indicates where you want to place the information required\n" "to boot to GNU/Linux. Generally, you set up a bootstrap partition earlier\n" "to hold this information.\n" "\n" " * Open Firmware Delay: unlike LILO, there are two delays available with\n" "yaboot. The first delay is measured in seconds and at this point, you can\n" "choose between CD, OF boot, MacOS or Linux;\n" "\n" " * Kernel Boot Timeout: this timeout is similar to the LILO boot delay.\n" "After selecting Linux, you will have this delay in 0.1 second increments\n" "before your default kernel description is selected;\n" "\n" " * Enable CD Boot?: checking this option allows you to choose ``C'' for CD\n" "at the first boot prompt.\n" "\n" " * Enable OF Boot?: checking this option allows you to choose ``N'' for\n" "Open Firmware at the first boot prompt.\n" "\n" " * Default OS: you can select which OS will boot by default when the Open\n" "Firmware Delay expires." #: ../../standalone/drakbackup:1 #, c-format msgid "Wednesday" msgstr "Srijeda" #: ../../crypto.pm:1 ../../lang.pm:1 #, c-format msgid "Germany" msgstr "Njemačka" #: ../../crypto.pm:1 ../../lang.pm:1 #, c-format msgid "Austria" msgstr "Austrija" #: ../../mouse.pm:1 #, c-format msgid "No mouse" msgstr "Bez miša" #: ../../standalone/drakbackup:1 #, c-format msgid "Choose your CD/DVD media size (MB)" msgstr "Izaberite veličinu vašeg CD/DVD medija (MB)" #: ../../security/l10n.pm:1 #, c-format msgid "Check permissions of files in the users' home" msgstr "Provjeri privilegije datoteka u korisničkom home-u." #: ../../install_steps_interactive.pm:1 #, c-format msgid "Run \"sndconfig\" after installation to configure your sound card" msgstr "" "Pokrenite \"sndconfig\" poslije instalacije kako biste podesili vašu zvučnu " "karticu" #: ../../ugtk2.pm:1 #, c-format msgid "Collapse Tree" msgstr "Smanji stablo" #: ../../standalone/drakautoinst:1 #, c-format msgid "Auto Install Configurator" msgstr "Podešavanje auto instalacije" #: ../../steps.pm:1 #, c-format msgid "Configure networking" msgstr "Podešavanje mreže" #: ../../any.pm:1 #, c-format msgid "Where do you want to install the bootloader?" msgstr "Gdje želite smjestiti bootloader?" #: ../../help.pm:1 #, c-format msgid "" "Your choice of preferred language will affect the language of the\n" "documentation, the installer and the system in general. Select first the\n" "region you are located in, and then the language you speak.\n" "\n" "Clicking on the \"%s\" button will allow you to select other languages to\n" "be installed on your workstation, thereby installing the language-specific\n" "files for system documentation and applications. For example, if you will\n" "host users from Spain on your machine, select English as the default\n" "language in the tree view and \"%s\" in the Advanced section.\n" "\n" "Note that you're not limited to choosing a single additional language. You\n" "may choose several ones, or even install them all by selecting the \"%s\"\n" "box. Selecting support for a language means translations, fonts, spell\n" "checkers, etc. for that language will be installed. Additionally, the\n" "\"%s\" checkbox allows you to force the system to use unicode (UTF-8). Note\n" "however that this is an experimental feature. If you select different\n" "languages requiring different encoding the unicode support will be\n" "installed anyway.\n" "\n" "To switch between the various languages installed on the system, you can\n" "launch the \"/usr/sbin/localedrake\" command as \"root\" to change the\n" "language used by the entire system. Running the command as a regular user\n" "will only change the language settings for that particular user." msgstr "" "Vaš izbor preferiranog jezika će se odraziti na jezik dokumentacije,\n" "instalacione procedure i generalno sistema. Najprije izaberite oblast u\n" "kojoj se nalazite, a zatim jezik kojim govorite.\n" "\n" "Klikanjem na dugme \"%s\" možete izabrati druge jezike koje\n" "želite instalirati na vašu radnu stanicu, time instalirajući sistemsku\n" "dokumentaciju i aplikacije za svaki od izabranih jezika. Na primjer, ako\n" "će vaš računar koristiti osobe iz španije, izaberite Engleski kao osnovni\n" "jezik na listi, a \"%s\" u oblasti Više opcija.\n" "\n" "Obratite pažnju da niste ograničeni na samo jedan dodatni jezik. Možete\n" "ih izabrati nekoliko ili čak ih instalirati sve klikom na polje \"%s\".\n" "Vaš izbor podrške za neki jezik označava da će biti instaliran prijevod,\n" "fontovi, pravila za provjeru pravopisa itd. za taj jezik. Pored toga,\n" "opcija \"%s\" će prisiliti upotrebu Unicode-a (UTF-8) na cijelom\n" "sistemu. No, obratite pažnju da je ovo eksperimentalna mogućnost. Ako\n" "izaberete nekoliko jezika koji zahtijevaju različito kodiranje, Unicode će\n" "svejedno biti instaliran.\n" "\n" "Da biste izabrali između raznih jezika instaliranih na vašem sistemu, " "možete\n" "pokrenuti kao \"root\" naredbu \"/usr/sbin/localedrake\", čime mijenjate\n" "jezik koji koristi čitav sistem. Izvršavanjem te naredbe kao običan\n" "korisnik mijenjate jezičke postavke samo za tog konkretnog korisnika." #: ../../standalone/scannerdrake:1 #, c-format msgid "The %s is not supported by this version of Mandrake Linux." msgstr "Ova verzija Mandrake Linuxa ne podržava %s," #: ../../standalone/drakbackup:1 #, c-format msgid "tape" msgstr "traka" #: ../../standalone/drakconnect:1 #, c-format msgid "DHCP client" msgstr "DHCP klijent" #: ../../security/l10n.pm:1 #, c-format msgid "List users on display managers (kdm and gdm)" msgstr "Izlistaj korisnike na display manager-ima (kdm i gdm)" #: ../../mouse.pm:1 #, c-format msgid "Logitech Mouse (serial, old C7 type)" msgstr "Logitech Mouse (serijski, stari C7 tip)" #: ../../partition_table.pm:1 #, c-format msgid "Restoring from file %s failed: %s" msgstr "Povratak iz datoteke %s nije uspio: %s" #: ../../fsedit.pm:1 #, c-format msgid "" "I can't read the partition table of device %s, it's too corrupted for me :(\n" "I can try to go on, erasing over bad partitions (ALL DATA will be lost!).\n" "The other solution is to not allow DrakX to modify the partition table.\n" "(the error is %s)\n" "\n" "Do you agree to lose all the partitions?\n" msgstr "" "Ne mogu pročitati tabelu particija na uređaju %s, previše je oštećena za " "mene :(\n" "Mogu pokušati da pobrišem loše particije (SVI PODACI će biti izgubljeni!).\n" "Drugo rješenje je da onemogućim DrakX da mijenja tabelu particija.\n" "(greška je %s)\n" "\n" "Slažete li se sa gubitkom svih particija?\n" #: ../../standalone/drakbug:1 #, c-format msgid "Find Package" msgstr "Nađi paket" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Are you sure that you want to set up printing on this machine?\n" msgstr "Sigurno želite podesiti štampanje na ovom računaru?\n" #: ../../standalone/harddrake2:1 #, c-format msgid "New devfs device" msgstr "Novi devfs uređaj" #: ../../standalone/drakbackup:1 #, c-format msgid "ERROR: Cannot spawn %s." msgstr "GREŠKA: Ne mogu pokrenuti %s." #: ../../standalone/drakboot:1 #, c-format msgid "Boot Style Configuration" msgstr "Konfiguracija stila boota" #: ../../help.pm:1 #, c-format msgid "Automatic time synchronization" msgstr "Automatska sinhronizacija vremena" #: ../../standalone/drakbackup:1 #, c-format msgid "Backup files not found at %s." msgstr "Backup datoteke nisu pronađene na %s." #: ../../keyboard.pm:1 #, c-format msgid "Armenian (phonetic)" msgstr "Armenska (fonetska)" #: ../../harddrake/v4l.pm:1 #, c-format msgid "Card model:" msgstr "Model kartice:" #: ../../standalone/drakTermServ:1 #, c-format msgid "Thin Client" msgstr "Thin klijenti" #: ../advertising/01-thanks.pl:1 #, c-format msgid "Thank you for choosing Mandrake Linux 9.2" msgstr "Hvala vam što ste odabrali Mandrake Linux 9.2" #: ../../standalone/drakTermServ:1 #, c-format msgid "Start Server" msgstr "Pokreni server" #: ../../lang.pm:1 #, c-format msgid "Turkmenistan" msgstr "Turkmenistan" #: ../../standalone/scannerdrake:1 #, c-format msgid "All remote machines" msgstr "Svi udaljeni računari" #: ../../standalone/drakboot:1 #, c-format msgid "Install themes" msgstr "Instaliraj teme" #: ../../help.pm:1 #, c-format msgid "Espanol" msgstr "Espanol" #: ../../install_steps_interactive.pm:1 #, c-format msgid "Preparing installation" msgstr "Pripremam instalaciju" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Edit selected host/network" msgstr "Izmijeni izabrani računar/mrežu" #: ../../standalone/drakTermServ:1 #, c-format msgid "Add User -->" msgstr "Dodaj korisnika -->" #: ../../lang.pm:1 #, c-format msgid "Nauru" msgstr "Nauru" #: ../../standalone/drakfont:1 #, c-format msgid "True Type fonts installation" msgstr "Instalacija True Type fontova" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Auto-detect printers connected directly to the local network" msgstr "Automatski prepoznaj štampače spojene direktno na lokalnu mrežu" #: ../../standalone/drakconnect:1 #, c-format msgid "LAN configuration" msgstr "Podešavanje LANa" #: ../../standalone/harddrake2:1 #, c-format msgid "hard disk model" msgstr "model hard diska" #: ../../standalone/drakTermServ:1 #, c-format msgid "" " - Maintain /etc/exports:\n" " \tClusternfs allows export of the root filesystem to diskless " "clients. drakTermServ\n" " \tsets up the correct entry to allow anonymous access to the root " "filesystem from\n" " \tdiskless clients.\n" "\n" " \tA typical exports entry for clusternfs is:\n" " \t\t\n" " \t/\t\t\t\t\t(ro,all_squash)\n" " \t/home\t\t\t\tSUBNET/MASK(rw,root_squash)\n" "\t\t\t\n" " \tWith SUBNET/MASK being defined for your network." msgstr "" " - Maintain /etc/exports:\n" " \tClusternfs allows export of the root filesystem to diskless " "clients. drakTermServ\n" " \tsets up the correct entry to allow anonymous access to the root " "filesystem from\n" " \tdiskless clients.\n" "\n" " \tA typical exports entry for clusternfs is:\n" " \t\t\n" " \t/\t\t\t\t\t(ro,all_squash)\n" " \t/home\t\t\t\tSUBNET/MASK(rw,root_squash)\n" "\t\t\t\n" " \tWith SUBNET/MASK being defined for your network." #: ../../fsedit.pm:1 #, c-format msgid "You can't use a LVM Logical Volume for mount point %s" msgstr "Ne možete koristiti LVM logički volumen za tačku montiranja %s" #: ../../standalone/drakfont:1 #, c-format msgid "Get Windows Fonts" msgstr "Preuzmi fontove iz Windowsa" #: ../../mouse.pm:1 #, c-format msgid "Mouse Systems" msgstr "Mouse Systems" #: ../../standalone/drakclock:1 #, c-format msgid "" "Your computer can synchronize its clock\n" " with a remote time server using NTP" msgstr "" #: ../../keyboard.pm:1 #, c-format msgid "Iranian" msgstr "Iranska" #: ../../lang.pm:1 #, c-format msgid "Croatia" msgstr "Hrvatska" #: ../../standalone/drakconnect:1 #, c-format msgid "Gateway:" msgstr "Gateway:" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Add server" msgstr "Dodaj server" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Remote printer name" msgstr "Ime udaljenog štampača" #: ../advertising/10-security.pl:1 #, c-format msgid "" "MandrakeSoft has designed exclusive tools to create the most secured Linux " "version ever: Draksec, a system security management tool, and a strong " "firewall are teamed up together in order to highly reduce hacking risks." msgstr "" "MandrakeSoft je dizajnirao ekskluzivne alate koji rezultiraju do sada " "najsigurnijom verzijom Linuxa: Draksec, alat za upravljanje sistemskom " "sigurnošću, kao i moćan firewall su udruženi kako bi drastičnosmanjili rizik " "od provale u sistem." #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Device: " msgstr "Uređaj: " #: ../../printer/printerdrake.pm:1 ../../standalone/printerdrake:1 #, c-format msgid "Printerdrake" msgstr "Printerdrake" #: ../../install_steps_interactive.pm:1 #, c-format msgid "License agreement" msgstr "Licencni ugovor" #: ../../standalone/draksec:1 #, c-format msgid "System Options" msgstr "Sistemske opcije" #: ../../security/level.pm:1 #, c-format msgid "Please choose the desired security level" msgstr "Molim izaberite nivo sigurnosti" #: ../../standalone/scannerdrake:1 #, c-format msgid "This host is already in the list, it cannot be added again.\n" msgstr "Ovaj računar je već na listi, ne možete ga ponovo dodati.\n" #: ../../printer/main.pm:1 #, c-format msgid ", USB printer" msgstr ", USB štampač" #: ../../standalone/drakfloppy:1 #, c-format msgid "" "Unable to properly close mkbootdisk:\n" "\n" "%s" msgstr "" "Ne mogu ispravno zatvoriti mkbootdisk:\n" "\n" "%s" #: ../../standalone/drakbackup:1 #, c-format msgid "" "Incremental backups only save files that have changed or are new since the " "last backup." msgstr "" "Inkrementalni backupi snimaju samo datoteke koje su promijenjene ili nove od " "zadnjeg backupa." #: ../../standalone/drakfont:1 #, c-format msgid "Choose the applications that will support the fonts:" msgstr "Izaberite aplikacije koje će podržavati fontove :" #: ../../steps.pm:1 #, c-format msgid "Configure X" msgstr "Podešavanje X" #: ../../standalone/drakbackup:1 #, c-format msgid "hd" msgstr "hd" #: ../../keyboard.pm:1 #, c-format msgid "Turkish (traditional \"F\" model)" msgstr "Turska (tradicionalni \"F\" model)" #: ../../standalone/drakautoinst:1 ../../standalone/drakgw:1 #: ../../standalone/scannerdrake:1 #, c-format msgid "Congratulations!" msgstr "Čestitamo!" #: ../../standalone/drakperm:1 #, c-format msgid "Use owner id for execution" msgstr "Koristi id vlasnika za izvršavanje" #: ../../security/l10n.pm:1 #, c-format msgid "Allow remote root login" msgstr "Dozvoli prijavu kao root putem mreže" #: ../../standalone/drakperm:1 #, c-format msgid "Down" msgstr "Dolje" #: ../../printer/main.pm:1 ../../printer/printerdrake.pm:1 #, c-format msgid "Raw printer (No driver)" msgstr "Sirovo štampanje (Bez drajvera)" #: ../../network/modem.pm:1 #, c-format msgid "Install rpm" msgstr "Instaliraj RPM" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "To print a file from the command line (terminal window) you can either use " "the command \"%s \" or a graphical printing tool: \"xpp \" or " "\"kprinter \". The graphical tools allow you to choose the printer and " "to modify the option settings easily.\n" msgstr "" "Za štampanje datoteke sa komandne linije (terminalski prozor) možete " "koristiti ili komandu \"%s \" ili grafički alat za štampu: \"xpp " "\" ili \"kprinter \". Grafički alati vam omogućuju da " "jednostavno odaberete štampač i izmjenite podešenja opcija.\n" #: ../../install_steps_gtk.pm:1 #, c-format msgid "Time remaining " msgstr "Preostalo vremena " #: ../../keyboard.pm:1 #, c-format msgid "UK keyboard" msgstr "UK tastatura" #: ../../diskdrake/dav.pm:1 ../../diskdrake/interactive.pm:1 #: ../../diskdrake/smbnfs_gtk.pm:1 #, c-format msgid "Unmount" msgstr "Demontiraj" #: ../../mouse.pm:1 #, c-format msgid "Microsoft Explorer" msgstr "Microsoft Explorer" #: ../../standalone/drakfont:1 #, c-format msgid "Uninstall Fonts" msgstr "Deinstaliraj fontove" #: ../../../move/move.pm:1 #, fuzzy, c-format msgid "Please wait, detecting and configuring devices..." msgstr "Molim sačekajre, podešavam nivo sigurnosti..." #: ../../keyboard.pm:1 #, c-format msgid "German (no dead keys)" msgstr "Njemačka (bez mrtvih tipki)" #: ../../standalone/drakbackup:1 #, c-format msgid "\tSend mail to %s\n" msgstr "\tŠalji mail na %s\n" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Transferring %s..." msgstr "Prebacujem %s ..." #: ../../Xconfig/resolution_and_depth.pm:1 #, c-format msgid "32 thousand colors (15 bits)" msgstr "32 hiljada boja (15 bita)" #: ../../any.pm:1 #, c-format msgid "" "You can export using NFS or Samba. Please select which you'd like to use." msgstr "" "Možete eksportovati koristeći NFS ili Sambu. Molim izaberite koji želite " "koristiti." #: ../../lang.pm:1 #, c-format msgid "Gambia" msgstr "Gambija" #: ../../standalone/drakbug:1 #, c-format msgid "Mandrake Control Center" msgstr "Mandrake Kontrolni centar" #: ../../help.pm:1 ../../install_steps_interactive.pm:1 #: ../../../move/move.pm:1 #, c-format msgid "Reboot" msgstr "Restartuj" #: ../../printer/main.pm:1 #, c-format msgid "Multi-function device" msgstr "Višenamjenski uređaj" #: ../../network/drakfirewall.pm:1 #, c-format msgid "" "You can enter miscellaneous ports. \n" "Valid examples are: 139/tcp 139/udp.\n" "Have a look at /etc/services for information." msgstr "" "Ovdje možete unijeti razne portove. \n" "Primjeri ispravno unesenih portova su: 139/tcp 139/udp.\n" "Pogledajte datoteku /etc/services za više informacija." #: ../../standalone/drakbackup:1 #, c-format msgid "\t-Tape \n" msgstr "\t-Traka \n" #: ../../standalone/drakhelp:1 #, c-format msgid "" "No browser is installed on your system, Please install one if you want to " "browse the help system" msgstr "" "Nemate nijedan browser instaliran na vašem sistemu. Molim instalirajte jedan " "ako želite pristupiti sistemu pomoći" #: ../../standalone/drakbackup:1 #, c-format msgid "Remember this password" msgstr "Zapamti ovu šifru" #: ../../install_steps_gtk.pm:1 #, c-format msgid "due to unsatisfied %s" msgstr "" #: ../../standalone/drakgw:1 #, c-format msgid "Internet Connection Sharing is now enabled." msgstr "Dijeljenje Internet konekcije je sada uključeno." #: ../../standalone/drakbackup:1 #, c-format msgid "\t-Network by SSH.\n" msgstr "\t-Mrežu preko SSH.\n" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" " If the desired printer was auto-detected, simply choose it from the list " "and then add user name, password, and/or workgroup if needed." msgstr "" "Ako je željeni štampač automatski prepoznat, jednostavno ga izaberite sa " "liste i dodajte korisničko ime, šifru i/ili radnu grupu ako je to potrebno." #: ../../network/netconnect.pm:1 #, c-format msgid " cable" msgstr " kabl" #: ../../help.pm:1 ../../install_interactive.pm:1 #, c-format msgid "Use the free space on the Windows partition" msgstr "Koristi slobodan prostor na Windows particiji" #: ../../standalone/scannerdrake:1 #, c-format msgid "%s found on %s, configure it automatically?" msgstr "%s je pronađen na %s, da ga podesim automatski?" #: ../../Xconfig/various.pm:1 #, c-format msgid "XFree86 driver: %s\n" msgstr "XFree86 drajver: %s\n" #: ../../printer/printerdrake.pm:1 #, c-format msgid "This host/network is already in the list, it cannot be added again.\n" msgstr "Ovaj računar/mreža je već na listi, ne možete ga ponovo dodati.\n" #: ../../install_steps_gtk.pm:1 ../../install_steps_interactive.pm:1 #, c-format msgid "Choose the packages you want to install" msgstr "Izaberite pakete koje želite instalirati" #: ../../lang.pm:1 #, c-format msgid "Papua New Guinea" msgstr "Papua Nova Gvineja" #: ../../printer/main.pm:1 #, c-format msgid "Multi-function device on a parallel port" msgstr "Višenamjenski uređaj na paralelnom portu" #: ../../../move/tree/mdk_totem:1 #, fuzzy, c-format msgid "Busy files" msgstr "Backup sistemskih datoteka" #: ../../keyboard.pm:1 #, c-format msgid "Serbian (cyrillic)" msgstr "Srpska (ćirilica)" #: ../../standalone/drakbackup:1 #, c-format msgid "Enter the directory where backups are stored" msgstr "Unesite direktorij gdje su smješteni backupi" #: ../../standalone/draksplash:1 #, c-format msgid "Make kernel message quiet by default" msgstr "Kernel poruke podrazumijevano tihe" #: ../../printer/printerdrake.pm:1 #, c-format msgid "" "Do you want to set this printer (\"%s\")\n" "as the default printer?" msgstr "" "Da li želite da podesite ovaj štampač (\"%s\")\n" "kao podrazumjevani štampač?" #: ../../standalone/drakgw:1 #, c-format msgid "The DHCP end range" msgstr "Kraj DHCP raspona" #: ../../any.pm:1 #, c-format msgid "Creating bootdisk..." msgstr "Pravim boot disketu..." #: ../../standalone/net_monitor:1 #, c-format msgid "Wait please, testing your connection..." msgstr "Molim sačekajte, probavam vašu konekciju..." #: ../../install_interactive.pm:1 #, c-format msgid "Bringing down the network" msgstr "Zaustavljam mrežu" #: ../../network/modem.pm:1 ../../standalone/drakconnect:1 #, c-format msgid "Login ID" msgstr "Login ID" #: ../../services.pm:1 #, c-format msgid "" "NFS is a popular protocol for file sharing across TCP/IP\n" "networks. This service provides NFS file locking functionality." msgstr "" "NFS je popularan protokol za dijeljenje datoteka preko TCP/IP mreža.\n" "Ovaj servis omogućuje NFS funkcionalnost zaključavanja datoteka." #: ../../standalone/drakconnect:1 #, c-format msgid "DHCP Client" msgstr "DHCP klijent" #: ../../standalone/harddrake2:1 #, c-format msgid "" "This is HardDrake, a Mandrake hardware configuration tool.\n" "Version: %s\n" "Author: Thierry Vignaud <" "tvignaud@mandrakesoft.com>\n" "\n" msgstr "" "Ovo je HardDrake, Mandrake-ov alat za podešavanje hardvera.\n" "Verzija: %s\n" "Autor: Thierry Vignaud <" "tvignaud@mandrakesoft.com>\n" "\n" #: ../../standalone/drakgw:1 #, c-format msgid "dismiss" msgstr "otkaži" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Printing/Scanning on \"%s\"" msgstr "Štampam/skeniram na \"%s\"" #: ../../standalone/drakfloppy:1 #, c-format msgid "omit raid modules" msgstr "izostavi raid module" #: ../../services.pm:1 #, c-format msgid "" "lpd is the print daemon required for lpr to work properly. It is\n" "basically a server that arbitrates print jobs to printer(s)." msgstr "" "lpd je demon za štampu koji je potreban da bi lpr sistem štampe radio " "ispravno.\n" "To je u osnovi server koji dodjeljuje zadatke štampe štampaču/ima." #: ../../keyboard.pm:1 #, c-format msgid "Irish" msgstr "Irski" #: ../../standalone/drakbackup:1 #, c-format msgid "Sunday" msgstr "Nedjelja" #: ../../standalone/drakconnect:1 #, c-format msgid "Internet Connection Configuration" msgstr "Podešavanje Internet konekcije" #: ../../modules/parameters.pm:1 #, c-format msgid "comma separated numbers" msgstr "brojevi razdvojeni zarezom" #: ../../standalone/harddrake2:1 #, c-format msgid "" "Once you've selected a device, you'll be able to see the device information " "in fields displayed on the right frame (\"Information\")" msgstr "" "Nakon što izaberete uređaj, moći ćete vidjeti informacije o uređaju u " "poljima u desnom okviru (\"Informacije\")" #: ../../standalone/drakperm:1 #, c-format msgid "Move selected rule up one level" msgstr "Pomjeri izabrano pravilo za jedan nivo gore" #: ../../standalone/scannerdrake:1 #, c-format msgid "" "The following scanner\n" "\n" "%s\n" "is available on your system.\n" msgstr "" "Sljedeći skener\n" "\n" "%s\n" "je dostupan na vašem sistemu.\n" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Do you really want to remove the printer \"%s\"?" msgstr "Da li želite da uklonite štampač \"%s\"?" #: ../../install_interactive.pm:1 #, c-format msgid "I can't find any room for installing" msgstr "Ne mogu naći dovoljno prostora za instalaciju" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Default printer" msgstr "Podrazumjevani štampač" #: ../../network/netconnect.pm:1 #, c-format msgid "" "You have configured multiple ways to connect to the Internet.\n" "Choose the one you want to use.\n" "\n" msgstr "" "Podesili ste nekoliko načina za konekciju na Internet.\n" "Izaberite jedan od njih koji ćete koristiti.\n" "\n" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Modify RAID" msgstr "Modificiraj RAID" #: ../../network/isdn.pm:1 #, c-format msgid "" "I have detected an ISDN PCI card, but I don't know its type. Please select a " "PCI card on the next screen." msgstr "" "Otkrio sam neku ISDN PCI karticu, ali ne znam tip. Molim izaberite neku PCI " "karticu na idućem ekranu." #: ../../any.pm:1 #, c-format msgid "Add user" msgstr "Dodaj korisnika" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "RAID-disks %s\n" msgstr "RAID-diskovi %s\n" #: ../../lang.pm:1 #, c-format msgid "Liberia" msgstr "Liberija" #: ../../standalone/scannerdrake:1 #, c-format msgid "" "Could not install the packages needed to set up a scanner with Scannerdrake." msgstr "" "Ne mogu instalirati pakete koji su potrebni za podešavanje skenera pomoću " "Scannerdrake-a." #: ../../standalone/drakgw:1 #, c-format msgid "" "Please enter the name of the interface connected to the internet.\n" "\n" "Examples:\n" "\t\tppp+ for modem or DSL connections, \n" "\t\teth0, or eth1 for cable connection, \n" "\t\tippp+ for a isdn connection.\n" msgstr "" "Molim unesite naziv interfejsa spojenog na Internet.\n" "\n" "Primjeri:\n" "\t\tppp+ za modemsku ili DSL konekciju, \n" "\t\teth0, ili eth1 za mrežnu konekciju, \n" "\t\tippp+ za isdn konekciju.\n" #: ../../steps.pm:1 #, c-format msgid "Choose your keyboard" msgstr "Izaberite vašu tastaturu" #: ../../steps.pm:1 #, c-format msgid "Format partitions" msgstr "Formatiranje particija" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Automatic correction of CUPS configuration" msgstr "Automatska ispravka konfiguracije CUPSa" #: ../../standalone/harddrake2:1 #, c-format msgid "Running \"%s\" ..." msgstr "Izvršavam \"%s\" ..." #: ../../harddrake/v4l.pm:1 #, c-format msgid "enable radio support" msgstr "uključi radio podršku" #: ../../standalone/scannerdrake:1 #, c-format msgid "Scanner sharing to hosts: " msgstr "Dijeljenje skenera za računare:" #: ../../diskdrake/interactive.pm:1 #, c-format msgid "Loopback file name: %s" msgstr "Naziv loopback datoteke: %s" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Please choose the printer to which the print jobs should go." msgstr "Molim izaberite štampač kojem želite slati zadatke štampe." #: ../../printer/printerdrake.pm:1 #, c-format msgid "Do not transfer printers" msgstr "Nemoj prebacivati štampače" #: ../../help.pm:1 #, c-format msgid "Delay before booting the default image" msgstr "Čekanje prije bootanja default image-a" #: ../../standalone/drakbackup:1 #, c-format msgid "Use Hard Disk to backup" msgstr "Koristi hard disk za backup" #: ../../help.pm:1 ../../install_steps_gtk.pm:1 ../../standalone/drakbackup:1 #: ../../standalone/drakboot:1 #, c-format msgid "Configure" msgstr "Podesi" #: ../../standalone/scannerdrake:1 #, c-format msgid "Scannerdrake" msgstr "Scannerdrake" #: ../../standalone/drakconnect:1 #, c-format msgid "" "Warning, another Internet connection has been detected, maybe using your " "network" msgstr "" "Upozorenje, otkrivena je druga Internet konekcija, možda preko vaše mreže" #: ../../standalone/drakbackup:1 #, c-format msgid "Backup Users" msgstr "Backup korisnika" #: ../../network/network.pm:1 #, c-format msgid "" "Please enter your host name.\n" "Your host name should be a fully-qualified host name,\n" "such as ``mybox.mylab.myco.com''.\n" "You may also enter the IP address of the gateway if you have one." msgstr "" "Molim unesite naziv vašeg računara ako ga znate.\n" "Naziv vašeg računara bi trebao biti puno-kvalifikovani naziv,\n" "kao što je ``mojcomp.mojlab.mojafirma.com''.\n" "Možete također unijeti IP adresu gateway-a ako ga imate" #: ../../printer/printerdrake.pm:1 #, c-format msgid "Select Printer Spooler" msgstr "Izaberite spooler štampača" #: ../../standalone/drakboot:1 #, c-format msgid "Create new theme" msgstr "Napravi novu temu" #: ../../standalone/logdrake:1 #, c-format msgid "Mandrake Tools Explanation" msgstr "Objašnjenja Mandrake alata" #: ../../standalone/drakpxe:1 #, c-format msgid "No image found" msgstr "Nije pronađen nijedan image" #: ../../install_steps.pm:1 #, c-format msgid "" "Some important packages didn't get installed properly.\n" "Either your cdrom drive or your cdrom is defective.\n" "Check the cdrom on an installed computer using \"rpm -qpl Mandrake/RPMS/*.rpm" "\"\n" msgstr "" "Neki bitni paketi nisu ispravno instalirani.\n" "Ili je neispravan vaš cdrom uređaj ili vaš cdrom medij.\n" "Provjerite cdrom na instaliranom računaru koristeći \"rpm -qpl Mandrake/RPMS/" "*.rpm\"\n" #: ../advertising/06-development.pl:1 #, c-format msgid "Mandrake Linux 9.2: the ultimate development platform" msgstr "Mandrake Linux 9.2: vrhunska razvojna platforma" #: ../../standalone/scannerdrake:1 #, c-format msgid "Detected model: %s" msgstr "Detektovan model: %s" #: ../../standalone/logdrake:1 #, c-format msgid "\"%s\" is not a valid email!" msgstr "\"%s\" nije ispravan email!" #: ../../standalone/drakedm:1 #, c-format msgid "" "X11 Display Manager allows you to graphically log\n" "into your system with the X Window System running and supports running\n" "several different X sessions on your local machine at the same time." msgstr "" "X11 Display Manager vam omogućuje da se grafički prijavite na vaš sistem uz " "pokretanje X Window Systema, a podržava i nekoliko različitih X sesija na " "vašem lokalnom računaru u isto vrijeme." #: ../../security/help.pm:1 #, c-format msgid "if set to yes, run the daily security checks." msgstr "ako je postavljeno na da, izvršava dnevne sigurnosne provjere." #: ../../lang.pm:1 #, c-format msgid "Azerbaijan" msgstr "Azerbejdžan" #: ../../standalone/drakbackup:1 #, c-format msgid "Device name to use for backup" msgstr "Ime uređaja kojeg ćete koristiti za backup" #: ../../standalone/drakbackup:1 #, c-format msgid "No tape in %s!" msgstr "Nema trake u %s!" #: ../../standalone/drakhelp:1 #, c-format msgid "" " --doc - link to another web page ( for WM welcome " "frontend)\n" msgstr "" " --doc - link na drugu web stranicu ( za WM pozdravni " "ekran)\n" #: ../../keyboard.pm:1 #, c-format msgid "Dvorak (US)" msgstr "Dvorak (US)" #: ../../standalone/harddrake2:1 #, c-format msgid "" "this is the physical bus on which the device is plugged (eg: PCI, USB, ...)" msgstr "" "ovo je fizička sabirnica na koju je uređaj priključen (npr: PCI, USB, ...)" #: ../../printer/printerdrake.pm:1 #, c-format msgid "How is the printer connected?" msgstr "Kako je štampač povezan na računar?" #: ../../security/level.pm:1 #, c-format msgid "Security level" msgstr "Nivo sigurnosti" #: ../../standalone/draksplash:1 #, c-format msgid "final resolution" msgstr "krajnja rezolucija" #: ../../help.pm:1 ../../install_steps_interactive.pm:1 ../../services.pm:1 #, c-format msgid "Services" msgstr "Servisi" #: ../../../move/move.pm:1 #, fuzzy, c-format msgid "Auto configuration" msgstr "Vlastita konfiguracija" #: ../../Xconfig/card.pm:1 #, c-format msgid "4 MB" msgstr "4 MB" #: ../../share/compssUsers:999 msgid "Office Workstation" msgstr "Uredska radna stanica" #: ../../share/compssUsers:999 msgid "" "Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, " "gnumeric), pdf viewers, etc" msgstr "" "Uredski programi: obrada teksta (kword, abiword), tablični alati (kspread, " "gnumeric), pdf preglednici itd." #: ../../share/compssUsers:999 msgid "Game station" msgstr "Stanica za igru" #: ../../share/compssUsers:999 msgid "Amusement programs: arcade, boards, strategy, etc" msgstr "Zabavni programi: arkadne igre, stolne igre, strategije itd." #: ../../share/compssUsers:999 msgid "Multimedia station" msgstr "Multimedijalna stanica" #: ../../share/compssUsers:999 msgid "Sound and video playing/editing programs" msgstr "Programi za pregled i editovanje zvuka i videa" #: ../../share/compssUsers:999 msgid "Internet station" msgstr "Internet stanica" #: ../../share/compssUsers:999 #, fuzzy msgid "" "Set of tools to read and send mail and news (mutt, tin..) and to browse the " "Web" msgstr "" "Skup alata za čitanje i slanje pošte i news-a (pine, mutt, tin...) i " "pregledanje Weba" #: ../../share/compssUsers:999 msgid "Network Computer (client)" msgstr "Mrežni računar (klijent)" #: ../../share/compssUsers:999 msgid "Clients for different protocols including ssh" msgstr "Klijenti za razne protokole uključujući ssh" #: ../../share/compssUsers:999 msgid "Configuration" msgstr "Podešavanje" #: ../../share/compssUsers:999 msgid "Tools to ease the configuration of your computer" msgstr "Alati za lakše podešavanje računara" #: ../../share/compssUsers:999 msgid "Scientific Workstation" msgstr "Znanstvena radna stanica" #: ../../share/compssUsers:999 msgid "Scientific applications such as gnuplot" msgstr "Naučne aplikacije kao npr. GnuPlot" #: ../../share/compssUsers:999 msgid "Console Tools" msgstr "Alati za konzolu" #: ../../share/compssUsers:999 msgid "Editors, shells, file tools, terminals" msgstr "Editori, shellovi, alati za datoteke, terminali" #: ../../share/compssUsers:999 msgid "KDE Workstation" msgstr "KDE radna stanica" #: ../../share/compssUsers:999 msgid "" "The K Desktop Environment, the basic graphical environment with a collection " "of accompanying tools" msgstr "" "K Desktop Environment, osnovno grafičko okruženje sa izborom pratećih alata" #: ../../share/compssUsers:999 msgid "Gnome Workstation" msgstr "GNOME radna stanica" #: ../../share/compssUsers:999 msgid "" "A graphical environment with user-friendly set of applications and desktop " "tools" msgstr "" "Grafički okoliš sa skupom korisnički orjentisanih aplikacija i alata za " "radnu površinu" #: ../../share/compssUsers:999 msgid "Other Graphical Desktops" msgstr "Ostale grafičke okoline" #: ../../share/compssUsers:999 msgid "Icewm, Window Maker, Enlightenment, Fvwm, etc" msgstr "Icewm, Window Maker, Enlightenment, Fvwm, itd." #: ../../share/compssUsers:999 msgid "C and C++ development libraries, programs and include files" msgstr "C i C++ biblioteke, programi i include datoteke" #: ../../share/compssUsers:999 msgid "Documentation" msgstr "Dokumentacija" #: ../../share/compssUsers:999 msgid "Books and Howto's on Linux and Free Software" msgstr "Knjige i howto-i na temu Linuxa i slobodnog softvera" #: ../../share/compssUsers:999 msgid "LSB" msgstr "LSB" #: ../../share/compssUsers:999 msgid "Linux Standard Base. Third party applications support" msgstr "Linux Standard Base. Podrška za aplikacije trećih lica" #: ../../share/compssUsers:999 msgid "Web/FTP" msgstr "Web/FTP" #: ../../share/compssUsers:999 msgid "Apache, Pro-ftpd" msgstr "Apache, Pro-ftpd" #: ../../share/compssUsers:999 msgid "Mail" msgstr "Mail" #: ../../share/compssUsers:999 msgid "Postfix mail server" msgstr "Postfix mail server" #: ../../share/compssUsers:999 msgid "Database" msgstr "Baze podataka" #: ../../share/compssUsers:999 msgid "PostgreSQL or MySQL database server" msgstr "PostgreSQL ili MySQL baza podataka" #: ../../share/compssUsers:999 msgid "Firewall/Router" msgstr "Firewall/Router" #: ../../share/compssUsers:999 msgid "Internet gateway" msgstr "Internet gateway" #: ../../share/compssUsers:999 msgid "DNS/NIS " msgstr "DNS/NIS " #: ../../share/compssUsers:999 msgid "Domain Name and Network Information Server" msgstr "Domain Name i Network Information Server" #: ../../share/compssUsers:999 msgid "Network Computer server" msgstr "Network Computer server" #: ../../share/compssUsers:999 msgid "NFS server, SMB server, Proxy server, ssh server" msgstr "NFS server, SMB server, Proxy server, ssh server" #: ../../share/compssUsers:999 msgid "Set of tools to read and send mail and news and to browse the Web" msgstr "Skup alata za čitanje i slanje pošte i news-a i pregledanje weba" #~ msgid "The setup has already been done, and it's currently enabled." #~ msgstr "Podešavanje je već završeno i trenutno je uključeno." #~ msgid "Logs" #~ msgstr "Dnevnici" #~ msgid "The setup has already been done, but it's currently disabled." #~ msgstr "Podešavanje je već završeno, ali je trenutno isključeno." #~ msgid "Profile " #~ msgstr "Profil" #~ msgid "" #~ "Welcome to the Internet Connection Sharing utility!\n" #~ "\n" #~ "%s\n" #~ "\n" #~ "Click on Configure to launch the setup wizard." #~ msgstr "" #~ "Dobrodošli u alat za Dijeljenje Internet konekcije!\n" #~ "\n" #~ "%s\n" #~ "\n" #~ "Kliknite na Podesi da pokrenete čarobnjak." #~ msgid "Internet Connection Sharing configuration" #~ msgstr "Podešavanje dijeljenja Internet konekcije" #~ msgid "No Internet Connection Sharing has ever been configured." #~ msgstr "Dijeljenje Internet konekcije do sada nije podešeno." #~ msgid "when checked, owner and group won't be changed" #~ msgstr "kada je uključeno, vlasnik i grupa se ne mogu promijeniti" #~ msgid "" #~ "XawTV isn't installed!\n" #~ "\n" #~ "\n" #~ "If you do have a TV card but DrakX has neither detected it (no bttv nor " #~ "saa7134\n" #~ "module in \"/etc/modules\") nor installed xawtv, please send the\n" #~ "results of \"lspcidrake -v -f\" to \"install@mandrakesoft.com\"\n" #~ "with subject \"undetected TV card\".\n" #~ "\n" #~ "\n" #~ "You can install it by typing \"urpmi xawtv\" as root, in a console." #~ msgstr "" #~ "XawTV nije instaliran!\n" #~ "\n" #~ "\n" #~ "Ako imate TV karticu ali je DrakX nije prepoznao (ni bttv ni saa7134 " #~ "modul se ne\n" #~ "nalaze u \"/etc/modules\") niti je instalirao XawTV, molim pošaljite " #~ "rezultate naredbe\n" #~ "\"lspcidrake -v -f\" na \"install@mandrakesoft.com\" sa naslovom " #~ "\"undetected\n" #~ "TV card\".\n" #~ "\n" #~ "\n" #~ "Možete instalirati XawTV kucajući \"urpmi xawtv\" na konzoli kao root." #~ msgid "-adobe-utopia-regular-r-*-*-25-*-*-*-p-*-iso8859-*,*-r-*" #~ msgstr "-adobe-utopia-regular-r-*-*-25-*-*-*-p-*-iso8859-*,*-r-*" #~ msgid "-adobe-times-bold-r-normal--17-*-100-100-p-*-iso8859-*,*-r-*" #~ msgstr "-adobe-times-bold-r-normal--17-*-100-100-p-*-iso8859-2,*-r-*" #~ msgid "Error while parsing \"MODULES\" line from %s" #~ msgstr "Greška pri obradi \"MODULES\" linije iz %s" #, fuzzy #~ msgid "Hostname configuration" #~ msgstr "Podešavanje sistema" #, fuzzy #~ msgid "Hostname" #~ msgstr "Host name" #~ msgid "Remote Printers" #~ msgstr "Udaljeni štampači" #~ msgid "Printing system: " #~ msgstr "Sistem štampe: " #, fuzzy #~ msgid "Level 1" #~ msgstr "Nivo" #, fuzzy #~ msgid "Level 2" #~ msgstr "Nivo" #, fuzzy #~ msgid "Level 3" #~ msgstr "Nivo" #, fuzzy #~ msgid "Level 4" #~ msgstr "Nivo" #, fuzzy #~ msgid "Level 5" #~ msgstr "Nivo" #, fuzzy #~ msgid "Insert floppy and press %s" #~ msgstr "Ubacite disketu u %s" #, fuzzy #~ msgid "Load" #~ msgstr "Poljska" #, fuzzy #~ msgid "Bad Ip" #~ msgstr "IO kartice" #~ msgid "Output" #~ msgstr "Ispis" #~ msgid "Please relog into %s to activate the changes" #~ msgstr "Molimo ponovo se prijavite na %s radi aktiviranja izmjena" #~ msgid "Please check if you want to use the non-rewinding device." #~ msgstr "Molim uključite ako želite koristiti non-rewinding uređaj." #~ msgid "Please enter your password" #~ msgstr "Molimo unesite vašu šifru" #~ msgid "" #~ "\n" #~ " Some errors during sendmail are caused by \n" #~ " a bad configuration of postfix. To solve it you have to\n" #~ " set myhostname or mydomain in /etc/postfix/main.cf\n" #~ "\n" #~ msgstr "" #~ "\n" #~ " Neke greške prilikom slanja poruka može izazvati \n" #~ " loše podešen postfix. Ovo možete riješiti tako što ćete\n" #~ " podesiti myhostname ili mydomain u /etc/postfix/main.cf\n" #~ "\n" #~ msgid "" #~ "Please choose your CD/DVD device\n" #~ "(Press Enter to propogate settings to other fields.\n" #~ "This field isn't necessary, only a tool to fill in the form.)" #~ msgstr "" #~ "Molim izaberite vaš CD/DVD uređaj\n" #~ "(Pritisnite Enter za propagaciju postavki na ostala polja. \n" #~ "Ovo polje nije obavezno, ono je samo alat za popunjavanje formulara.)" #~ msgid "Please check if you want to eject your tape after the backup." #~ msgstr "Molim uključite ako želite izbaciti traku nakon backupa." #~ msgid "Please check if you want to erase your tape before the backup." #~ msgstr "Molim uključite ako želite obrisati traku prije backupa." #~ msgid "Please enter the host name or IP." #~ msgstr "Molimo unesite ime računara ili IP." #~ msgid "" #~ " Copyright (C) 2001-2002 MandrakeSoft by DUPONT Sebastien " #~ msgstr "" #~ " Copyright (C) 2001-2002 MandrakeSoft by DUPONT Sebastien " #~ msgid "" #~ "\n" #~ "Restore Backup Problems:\n" #~ "\n" #~ "During the restore step, Drakbackup will verify all your\n" #~ "backup files before restoring them.\n" #~ "Before the restore, Drakbackup will remove \n" #~ "your original directory, and you will loose all your \n" #~ "data. It is important to be careful and not modify the \n" #~ "backup data files by hand.\n" #~ msgstr "" #~ "\n" #~ "Restore Backup Problems:\n" #~ "\n" #~ "During the restore step, Drakbackup will verify all your\n" #~ "backup files before restoring them.\n" #~ "Before the restore, Drakbackup will remove \n" #~ "your original directory, and you will loose all your \n" #~ "data. It is important to be careful and not modify the \n" #~ "backup data files by hand.\n" #~ msgid "" #~ " updates 2002 MandrakeSoft by Stew Benedict " #~ msgstr "" #~ " updates 2002 MandrakeSoft by Stew Benedict " #~ msgid "" #~ "Arguments: (arg, expr='*.*', dev='tty12')\n" #~ "\n" #~ "Enable/Disable syslog reports to console 12. \\fIexpr\\fP is the\n" #~ "expression describing what to log (see syslog.conf(5) for more details) " #~ "and\n" #~ "dev the device to report the log." #~ msgstr "" #~ "Arguments: (arg, expr='*.*', dev='tty12')\n" #~ "\n" #~ "Enable/Disable syslog reports to console 12. \\fIexpr\\fP is the\n" #~ "expression describing what to log (see syslog.conf(5) for more details) " #~ "and\n" #~ "dev the device to report the log." #~ msgid "edit" #~ msgstr "izmijeni" #~ msgid "" #~ "Arguments: (arg)\n" #~ "\n" #~ " Accept/Refuse broadcasted icmp echo." #~ msgstr "" #~ "Arguments: (arg)\n" #~ "\n" #~ " Accept/Refuse broadcasted icmp echo." #~ msgid "" #~ "Arguments: (arg)\n" #~ "\n" #~ "Enable/Disable libsafe if libsafe is found on the system." #~ msgstr "" #~ "Arguments: (arg)\n" #~ "\n" #~ "Enable/Disable libsafe if libsafe is found on the system." #~ msgid "" #~ "Arguments: (arg)\n" #~ "\n" #~ "Allow/Forbid remote root login." #~ msgstr "" #~ "Arguments: (arg)\n" #~ "\n" #~ "Allow/Forbid remote root login." #~ msgid "select perm file to see/edit" #~ msgstr "izaberi perm datoteku za pregled/izmjenu" #~ msgid "path" #~ msgstr "staza" #~ msgid "" #~ "Arguments: (arg)\n" #~ "\n" #~ "Enable/Disable the logging of IPv4 strange packets." #~ msgstr "" #~ "Arguments: (arg)\n" #~ "\n" #~ "Enable/Disable the logging of IPv4 strange packets." #~ msgid "" #~ "Arguments: (arg, alert=1)\n" #~ "\n" #~ "Enable/Disable IP spoofing protection." #~ msgstr "" #~ "Arguments: (arg, alert=1)\n" #~ "\n" #~ "Enable/Disable IP spoofing protection." #~ msgid "permissions" #~ msgstr "privilegije" #~ msgid "" #~ "Arguments: (arg)\n" #~ "\n" #~ "Enable/Disable msec hourly security check." #~ msgstr "" #~ "Arguments: (arg)\n" #~ "\n" #~ "Enable/Disable msec hourly security check." #~ msgid "delete" #~ msgstr "obriši" #~ msgid "" #~ "Arguments: (arg)\n" #~ "\n" #~ "Accept/Refuse bogus IPv4 error messages." #~ msgstr "" #~ "Arguments: (arg)\n" #~ "\n" #~ "Accept/Refuse bogus IPv4 error messages." #~ msgid "" #~ "Arguments: (arg)\n" #~ "\n" #~ "Use password to authenticate users." #~ msgstr "" #~ "Arguments: (arg)\n" #~ "\n" #~ "Use password to authenticate users." #~ msgid "user" #~ msgstr "korisnik" #~ msgid "" #~ "Standard: This is the standard security recommended for a computer that " #~ "will be used to connect\n" #~ " to the Internet as a client.\n" #~ "\n" #~ "High: There are already some restrictions, and more automatic " #~ "checks are run every night.\n" #~ "\n" #~ "Higher: The security is now high enough to use the system as a server " #~ "which can accept\n" #~ " connections from many clients. If your machine is only a " #~ "client on the Internet, you\n" #~ " should choose a lower level.\n" #~ "\n" #~ "Paranoid: This is similar to the previous level, but the system is " #~ "entirely closed and security\n" #~ " features are at their maximum\n" #~ "\n" #~ "Security Administrator:\n" #~ " If the 'Security Alerts' option is set, security alerts " #~ "will be sent to this user (username or\n" #~ " email)" #~ msgstr "" #~ "Standardan: Ovo je standardna sigurnost koja se preporučuje za računar " #~ "koji će biti korišten za\n" #~ " spajanje na Internet kao klijent.\n" #~ "\n" #~ "Visok: Postoje već neka ograničenja, a automatizovane provjere " #~ "se vrše svake noći.\n" #~ "\n" #~ "Viši: Sigurnost je sada dovoljno visoka da bi se sistem " #~ "mogao koristiti kao server koji\n" #~ " prihvata konekcije od mnogih klijenata. Ako je vaš " #~ "računar jedini klijent na Internetu,\n" #~ " trebali biste izabrati niži nivo.\n" #~ "\n" #~ "Paranoičan: Ovo je slično kao prethodni nivo, ali je sistem potpuno " #~ "zatvoren i sigurnosne\n" #~ " mogućnosti su na maksimumu.\n" #~ "\n" #~ "Sigurnosni administrator:\n" #~ " Ako je postavljena opcija 'Sigurnosna upozorenja', ova " #~ "upozorenja će biti slana ovom\n" #~ " korisniku (korisničko ime ili email)." #~ msgid "Expert Area" #~ msgstr "Ekspert područje" #~ msgid "Wizard..." #~ msgstr "Čarobnjak..." #~ msgid "Country" #~ msgstr "Zemlja" #~ msgid "Previous" #~ msgstr "Prethodni" #~ msgid "Please check if you are using CDRW media" #~ msgstr "Molim uključite ako koristite CDRW medij" #~ msgid "Please check if you are using a DVDRAM device" #~ msgstr "Molim uključite ako koristite DVDRAM uređaj" #~ msgid "Please check if you are using a DVDR device" #~ msgstr "Molim uključite ako koristite DVDR uređaj" #~ msgid "Please check for multisession CD" #~ msgstr "Molim uključite ako koristite multisesijski CD" #~ msgid "We are now going to configure the %s connection." #~ msgstr "Sada ćemo podesiti konekciju %s." #~ msgid "Name: %s\n" #~ msgstr "Ime: %s\n" #~ msgid "" #~ "Which ISDN configuration do you prefer?\n" #~ "\n" #~ "* The Old configuration uses isdn4net. It contains powerful\n" #~ " tools, but is tricky to configure, and not standard.\n" #~ "\n" #~ "* The New configuration is easier to understand, more\n" #~ " standard, but with less tools.\n" #~ "\n" #~ "We recommand the light configuration.\n" #~ msgstr "" #~ "Koju ISDN konfiguraciju želite?\n" #~ "\n" #~ "* Stara konfiguracija koristi isdn4net. On sadrži moćne alate,\n" #~ " ali ga je teško podesiti i nije standardiziran.\n" #~ "\n" #~ "* Novu konfiguraciju je lakše razumjeti, standardnija je,\n" #~ " ali ima manje alata.\n" #~ "\n" #~ "Preporučujemo light konfiguraciju.\n" #~ msgid "New configuration (isdn-light)" #~ msgstr "Nova konfiguracija (isdn-light)" #~ msgid "Old configuration (isdn4net)" #~ msgstr "Stara konfiguracija (isdn4net)" #~ msgid "Internet connection & configuration" #~ msgstr "Internet konekcija & podešavanje" #~ msgid "Disconnect" #~ msgstr "Prekini konekciju" #~ msgid "Connect" #~ msgstr "Konektuj me" #~ msgid "" #~ "\n" #~ "You can reconfigure your connection." #~ msgstr "" #~ "\n" #~ "Možete prekonfigurisati vašu konekciju." #~ msgid "" #~ "\n" #~ "You can connect to the Internet or reconfigure your connection." #~ msgstr "" #~ "\n" #~ "Možete se spojiti na Internet ili prekonfigurisati vašu konekciju." #~ msgid "You are not currently connected to the Internet." #~ msgstr "Trenutno niste konektovani na Internet." #~ msgid "" #~ "\n" #~ "You can disconnect or reconfigure your connection." #~ msgstr "" #~ "\n" #~ "Možete se diskonektovati ili prekonfigurisati vašu konekciju." #~ msgid "You are currently connected to the Internet." #~ msgstr "Trenutno ste spojeni na Internet." #~ msgid "files sending by FTP" #~ msgstr "slanje datoteka putem FTPa" #~ msgid "Use incremental backup (do not replace old backups)" #~ msgstr "Koristi inkrementalni backup (nemoj prebrisati stare backupe)" #~ msgid "Relaunch 'lilo'" #~ msgstr "Pokrećem 'lilo'" #~ msgid "Make initrd 'mkinitrd -f /boot/initrd-%s.img %s'." #~ msgstr "Make initrd 'mkinitrd -f /boot/initrd-%s.img %s'." #~ msgid "Copy %s to %s" #~ msgstr "Kopiraj %s u %s" #~ msgid "Backup %s to %s.old" #~ msgstr "Backupujem %s u %s.old" #~ msgid "ttf fonts conversion" #~ msgstr "ttf fonts konverzija" #~ msgid "Fonts conversion" #~ msgstr "Konverzija fontova" #~ msgid "Author:" #~ msgstr "Autor:" #~ msgid "Audio station" #~ msgstr "Audio stanica" #~ msgid "Sound playing/editing programs" #~ msgstr "Programi za slušanje i editovanje zvuka" #~ msgid "Video station" #~ msgstr "Video stanica" #~ msgid "Video playing programs" #~ msgstr "Programi za pregled video datoteka" #~ msgid "Graphic station" #~ msgstr "Grafička stanica" #~ msgid "Graphics programs" #~ msgstr "Grafički programi" ;a href="#themetrunkmageiagfxbootthemetrunkhelpinstallitmainoptnetworkhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt::network.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallitmainopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallitmainopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallitmainopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallitmainopto_installhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt::o_install.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallitmainopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallitmainopto_vnchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt::o_vnc.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallitmainrescuehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::rescue.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallitmainvideomodehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::videomode.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallitnavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/navi.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalljamainhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalljamainbitshtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::bits.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalljamaindriverupdatehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::driverupdate.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalljamainfailsafehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::failsafe.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalljamainfirmwarehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::firmware.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalljamainharddiskhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::harddisk.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalljamainhelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalljamaininstall_srchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::install_src.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalljamainkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalljamainlinuxhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::linux.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalljamainmemtesthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::memtest.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalljamainnoacpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::noacpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalljamainnolapichtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::nolapic.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalljamainopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalljamainoptnetworkhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt::network.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalljamainopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalljamainopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalljamainopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalljamainopto_installhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt::o_install.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalljamainopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalljamainopto_vnchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt::o_vnc.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalljamainrescuehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::rescue.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalljamainvideomodehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::videomode.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalljanavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/navi.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkomainhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkomainbitshtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::bits.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkomaindriverupdatehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::driverupdate.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkomainfailsafehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::failsafe.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkomainfirmwarehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::firmware.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkomainharddiskhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::harddisk.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkomainhelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkomaininstall_srchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::install_src.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkomainkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkomainlinuxhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::linux.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkomainmemtesthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::memtest.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkomainnoacpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::noacpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkomainnolapichtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::nolapic.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkomainopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkomainoptnetworkhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt::network.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkomainopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkomainopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkomainopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkomainopto_installhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt::o_install.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkomainopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkomainopto_vnchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt::o_vnc.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkomainrescuehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::rescue.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkomainvideomodehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::videomode.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkonavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/navi.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkymainhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkymainbitshtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::bits.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkymaindriverupdatehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::driverupdate.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkymainfailsafehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::failsafe.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkymainfirmwarehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::firmware.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkymainharddiskhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::harddisk.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkymainhelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkymaininstall_srchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::install_src.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkymainkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkymainlinuxhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::linux.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkymainmemtesthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::memtest.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkymainnoacpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::noacpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkymainnolapichtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::nolapic.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkymainopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkymainoptnetworkhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt::network.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkymainopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkymainopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkymainopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkymainopto_installhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt::o_install.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkymainopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkymainopto_vnchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt::o_vnc.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkymainrescuehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::rescue.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkymainvideomodehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::videomode.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkynavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/navi.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallltmainhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallltmainbitshtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::bits.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallltmaindriverupdatehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::driverupdate.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallltmainfailsafehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::failsafe.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallltmainfirmwarehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::firmware.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallltmainharddiskhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::harddisk.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallltmainhelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallltmaininstall_srchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::install_src.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallltmainkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallltmainlinuxhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::linux.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallltmainmemtesthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::memtest.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallltmainnoacpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::noacpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallltmainnolapichtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::nolapic.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallltmainopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallltmainoptnetworkhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt::network.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallltmainopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallltmainopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallltmainopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallltmainopto_installhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt::o_install.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallltmainopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallltmainopto_vnchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt::o_vnc.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallltmainrescuehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::rescue.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallltmainvideomodehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::videomode.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallltnavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/navi.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallmrmainhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallmrmainbitshtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::bits.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallmrmaindriverupdatehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::driverupdate.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallmrmainfailsafehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::failsafe.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallmrmainfirmwarehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::firmware.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallmrmainharddiskhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::harddisk.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallmrmainhelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallmrmaininstall_srchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::install_src.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallmrmainkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallmrmainlinuxhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::linux.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallmrmainmemtesthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::memtest.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallmrmainnoacpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::noacpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallmrmainnolapichtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::nolapic.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallmrmainopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallmrmainoptnetworkhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt::network.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallmrmainopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallmrmainopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallmrmainopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallmrmainopto_installhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt::o_install.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallmrmainopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallmrmainopto_vnchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt::o_vnc.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallmrmainrescuehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::rescue.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallmrmainvideomodehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::videomode.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallmrnavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/navi.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnbmainhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnbmainbitshtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::bits.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnbmaindriverupdatehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::driverupdate.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnbmainfailsafehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::failsafe.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnbmainfirmwarehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::firmware.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnbmainharddiskhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::harddisk.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnbmainhelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnbmaininstall_srchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::install_src.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnbmainkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnbmainlinuxhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::linux.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnbmainmemtesthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::memtest.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnbmainnoacpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::noacpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnbmainnolapichtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::nolapic.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnbmainopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnbmainoptnetworkhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt::network.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnbmainopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnbmainopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnbmainopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnbmainopto_installhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt::o_install.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnbmainopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnbmainopto_vnchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt::o_vnc.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnbmainrescuehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::rescue.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnbmainvideomodehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::videomode.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnbnavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/navi.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnlmainhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnlmainbitshtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::bits.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnlmaindriverupdatehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::driverupdate.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnlmainfailsafehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::failsafe.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnlmainfirmwarehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::firmware.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnlmainharddiskhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::harddisk.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnlmainhelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnlmaininstall_srchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::install_src.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnlmainkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnlmainlinuxhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::linux.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnlmainmemtesthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::memtest.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnlmainnoacpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::noacpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnlmainnolapichtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::nolapic.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnlmainopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnlmainoptnetworkhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt::network.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnlmainopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnlmainopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnlmainopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnlmainopto_installhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt::o_install.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnlmainopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnlmainopto_vnchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt::o_vnc.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnlmainrescuehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::rescue.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnlmainvideomodehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::videomode.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnlnavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/navi.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpamainhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpamainbitshtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::bits.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpamaindriverupdatehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::driverupdate.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpamainfailsafehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::failsafe.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpamainfirmwarehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::firmware.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpamainharddiskhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::harddisk.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpamainhelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpamaininstall_srchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::install_src.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpamainkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpamainlinuxhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::linux.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpamainmemtesthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::memtest.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpamainnoacpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::noacpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpamainnolapichtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::nolapic.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpamainopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpamainoptnetworkhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt::network.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpamainopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpamainopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpamainopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpamainopto_installhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt::o_install.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpamainopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpamainopto_vnchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt::o_vnc.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpamainrescuehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::rescue.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpamainvideomodehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::videomode.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpanavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/navi.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallplmainhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallplmainbitshtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::bits.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallplmaindriverupdatehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::driverupdate.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallplmainfailsafehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::failsafe.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallplmainfirmwarehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::firmware.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallplmainharddiskhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::harddisk.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallplmainhelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallplmaininstall_srchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::install_src.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallplmainkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallplmainlinuxhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::linux.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallplmainmemtesthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::memtest.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallplmainnoacpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::noacpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallplmainnolapichtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::nolapic.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallplmainopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallplmainoptnetworkhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt::network.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallplmainopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallplmainopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallplmainopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallplmainopto_installhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt::o_install.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallplmainopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallplmainopto_vnchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt::o_vnc.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallplmainrescuehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::rescue.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallplmainvideomodehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::videomode.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallplnavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/navi.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallptmainhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallptmainbitshtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::bits.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallptmaindriverupdatehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::driverupdate.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallptmainfailsafehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::failsafe.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallptmainfirmwarehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::firmware.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallptmainharddiskhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::harddisk.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallptmainhelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallptmaininstall_srchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::install_src.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallptmainkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallptmainlinuxhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::linux.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallptmainmemtesthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::memtest.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallptmainnoacpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::noacpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallptmainnolapichtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::nolapic.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallptmainopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallptmainoptnetworkhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt::network.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallptmainopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallptmainopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallptmainopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallptmainopto_installhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt::o_install.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallptmainopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallptmainopto_vnchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt::o_vnc.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallptmainrescuehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::rescue.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallptmainvideomodehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::videomode.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallptnavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/navi.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainbitshtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::bits.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmaindriverupdatehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::driverupdate.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainfailsafehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::failsafe.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainfirmwarehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::firmware.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainharddiskhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::harddisk.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainhelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmaininstall_srchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::install_src.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainlinuxhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::linux.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainmemtesthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::memtest.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainnoacpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::noacpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainnolapichtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::nolapic.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainoptnetworkhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt::network.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainopto_installhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt::o_install.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainopto_vnchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt::o_vnc.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainrescuehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::rescue.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainvideomodehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::videomode.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRnavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/navi.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallromainhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallromainbitshtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::bits.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallromaindriverupdatehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::driverupdate.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallromainfailsafehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::failsafe.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallromainfirmwarehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::firmware.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallromainharddiskhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::harddisk.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallromainhelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallromaininstall_srchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::install_src.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallromainkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallromainlinuxhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::linux.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallromainmemtesthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::memtest.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallromainnoacpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::noacpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallromainnolapichtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::nolapic.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallromainopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallromainoptnetworkhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt::network.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallromainopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallromainopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallromainopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallromainopto_installhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt::o_install.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallromainopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallromainopto_vnchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt::o_vnc.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallromainrescuehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::rescue.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallromainvideomodehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::videomode.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallronavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/navi.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallrumainhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallrumainbitshtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::bits.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallrumaindriverupdatehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::driverupdate.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallrumainfailsafehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::failsafe.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallrumainfirmwarehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::firmware.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallrumainharddiskhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::harddisk.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallrumainhelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallrumaininstall_srchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::install_src.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallrumainkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallrumainlinuxhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::linux.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallrumainmemtesthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::memtest.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallrumainnoacpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::noacpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallrumainnolapichtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::nolapic.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallrumainopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallrumainoptnetworkhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt::network.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallrumainopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallrumainopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallrumainopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallrumainopto_installhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt::o_install.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallrumainopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallrumainopto_vnchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt::o_vnc.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallrumainrescuehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::rescue.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallrumainvideomodehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::videomode.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallrunavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/navi.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallskmainhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallskmainbitshtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::bits.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallskmaindriverupdatehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::driverupdate.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallskmainfailsafehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::failsafe.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallskmainfirmwarehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::firmware.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallskmainharddiskhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::harddisk.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallskmainhelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallskmaininstall_srchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::install_src.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallskmainkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallskmainlinuxhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::linux.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallskmainmemtesthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::memtest.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallskmainnoacpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::noacpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallskmainnolapichtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::nolapic.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallskmainopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallskmainoptnetworkhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt::network.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallskmainopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallskmainopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallskmainopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallskmainopto_installhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt::o_install.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallskmainopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallskmainopto_vnchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt::o_vnc.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallskmainrescuehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::rescue.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallskmainvideomodehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::videomode.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallsknavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/navi.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallsvmainhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallsvmainbitshtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::bits.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallsvmaindriverupdatehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::driverupdate.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallsvmainfailsafehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::failsafe.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallsvmainfirmwarehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::firmware.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallsvmainharddiskhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::harddisk.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallsvmainhelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallsvmaininstall_srchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::install_src.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallsvmainkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallsvmainlinuxhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::linux.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallsvmainmemtesthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::memtest.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallsvmainnoacpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::noacpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallsvmainnolapichtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::nolapic.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallsvmainopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallsvmainoptnetworkhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt::network.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallsvmainopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallsvmainopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallsvmainopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallsvmainopto_installhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt::o_install.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallsvmainopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallsvmainopto_vnchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt::o_vnc.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallsvmainrescuehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::rescue.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallsvmainvideomodehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::videomode.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallsvnavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/navi.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallukmainhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallukmainbitshtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::bits.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallukmaindriverupdatehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::driverupdate.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallukmainfailsafehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::failsafe.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallukmainfirmwarehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::firmware.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallukmainharddiskhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::harddisk.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallukmainhelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallukmaininstall_srchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::install_src.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallukmainkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallukmainlinuxhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::linux.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallukmainmemtesthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::memtest.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallukmainnoacpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::noacpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallukmainnolapichtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::nolapic.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallukmainopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallukmainoptnetworkhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt::network.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallukmainopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallukmainopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallukmainopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallukmainopto_installhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt::o_install.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallukmainopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallukmainopto_vnchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt::o_vnc.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallukmainrescuehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::rescue.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallukmainvideomodehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::videomode.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalluknavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/navi.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallxhmainhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallxhmainbitshtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::bits.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallxhmaindriverupdatehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::driverupdate.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallxhmainfailsafehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::failsafe.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallxhmainfirmwarehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::firmware.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallxhmainharddiskhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::harddisk.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallxhmainhelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallxhmaininstall_srchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::install_src.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallxhmainkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallxhmainlinuxhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::linux.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallxhmainmemtesthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::memtest.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallxhmainnoacpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::noacpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallxhmainnolapichtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::nolapic.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallxhmainopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallxhmainoptnetworkhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt::network.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallxhmainopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallxhmainopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallxhmainopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallxhmainopto_installhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt::o_install.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallxhmainopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallxhmainopto_vnchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt::o_vnc.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallxhmainrescuehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::rescue.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallxhmainvideomodehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::videomode.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallxhnavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/navi.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainbitshtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::bits.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmaindriverupdatehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::driverupdate.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainfailsafehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::failsafe.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainfirmwarehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::firmware.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainharddiskhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::harddisk.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainhelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmaininstall_srchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::install_src.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainlinuxhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::linux.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainmemtesthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::memtest.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainnoacpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::noacpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainnolapichtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::nolapic.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainoptnetworkhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt::network.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainopto_installhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt::o_install.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainopto_vnchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt::o_vnc.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainrescuehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::rescue.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainvideomodehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::videomode.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNnavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/navi.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainbitshtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::bits.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmaindriverupdatehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::driverupdate.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainfailsafehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::failsafe.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainfirmwarehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::firmware.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainharddiskhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::harddisk.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainhelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmaininstall_srchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::install_src.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainlinuxhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::linux.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainmemtesthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::memtest.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainnoacpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::noacpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainnolapichtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::nolapic.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainoptnetworkhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt::network.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainopto_installhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt::o_install.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainopto_vnchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt::o_vnc.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainrescuehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::rescue.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainvideomodehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::videomode.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWnavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/navi.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/keymaps/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkkeymapskeymapcs_CZinc">theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.cs_CZ.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkkeymapskeymapda_DKinc">theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.da_DK.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkkeymapskeymapde_DEinc">theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.de_DE.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkkeymapskeymapel_GRinc">theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.el_GR.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkkeymapskeymapes_ESinc">theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.es_ES.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkkeymapskeymapet_EEinc">theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.et_EE.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkkeymapskeymapfr_FRinc">theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.fr_FR.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkkeymapskeymaphu_HUinc">theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.hu_HU.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkkeymapskeymapit_ITinc">theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.it_IT.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkkeymapskeymapja_JPinc">theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.ja_JP.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkkeymapskeymapnb_NOinc">theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.nb_NO.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkkeymapskeymappl_PLinc">theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.pl_PL.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkkeymapskeymappt_BRinc">theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.pt_BR.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkkeymapskeymappt_PTinc">theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.pt_PT.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkkeymapskeymapru_RUinc">theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.ru_RU.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkkeymapskeymapsk_SKinc">theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.sk_SK.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkkeymapskeymapsl_SIinc">theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.sl_SI.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkkeymapskeymapsv_SEinc">theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.sv_SE.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkkeymapskeymaptr_TRinc">theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.tr_TR.inc</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/po/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpoMakefile">theme/trunk/mageia-gfxboot-theme/trunk/po/Makefile</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpoREADME">theme/trunk/mageia-gfxboot-theme/trunk/po/README</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpoafpo">theme/trunk/mageia-gfxboot-theme/trunk/po/af.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpoarpo">theme/trunk/mageia-gfxboot-theme/trunk/po/ar.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpoastpo">theme/trunk/mageia-gfxboot-theme/trunk/po/ast.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpobgpo">theme/trunk/mageia-gfxboot-theme/trunk/po/bg.po</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/po/bin/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpobinadd_text">theme/trunk/mageia-gfxboot-theme/trunk/po/bin/add_text</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpobinarabictxt">theme/trunk/mageia-gfxboot-theme/trunk/po/bin/arabic.txt</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpobinfixpot">theme/trunk/mageia-gfxboot-theme/trunk/po/bin/fixpot</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpobinpo2txt">theme/trunk/mageia-gfxboot-theme/trunk/po/bin/po2txt</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpobinrm_text">theme/trunk/mageia-gfxboot-theme/trunk/po/bin/rm_text</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpobnpo_disabled">theme/trunk/mageia-gfxboot-theme/trunk/po/bn.po_disabled</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpobootloaderpot">theme/trunk/mageia-gfxboot-theme/trunk/po/bootloader.pot</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpobrpo">theme/trunk/mageia-gfxboot-theme/trunk/po/br.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpobspo">theme/trunk/mageia-gfxboot-theme/trunk/po/bs.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpocapo">theme/trunk/mageia-gfxboot-theme/trunk/po/ca.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpocspo">theme/trunk/mageia-gfxboot-theme/trunk/po/cs.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpocypo">theme/trunk/mageia-gfxboot-theme/trunk/po/cy.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpodapo">theme/trunk/mageia-gfxboot-theme/trunk/po/da.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpodepo">theme/trunk/mageia-gfxboot-theme/trunk/po/de.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpoelpo">theme/trunk/mageia-gfxboot-theme/trunk/po/el.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpoeopo">theme/trunk/mageia-gfxboot-theme/trunk/po/eo.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpoespo">theme/trunk/mageia-gfxboot-theme/trunk/po/es.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpoetpo">theme/trunk/mageia-gfxboot-theme/trunk/po/et.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpoeupo">theme/trunk/mageia-gfxboot-theme/trunk/po/eu.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpofipo">theme/trunk/mageia-gfxboot-theme/trunk/po/fi.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpofrpo">theme/trunk/mageia-gfxboot-theme/trunk/po/fr.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpoglpo">theme/trunk/mageia-gfxboot-theme/trunk/po/gl.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpogupo">theme/trunk/mageia-gfxboot-theme/trunk/po/gu.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpohipo">theme/trunk/mageia-gfxboot-theme/trunk/po/hi.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpohrpo">theme/trunk/mageia-gfxboot-theme/trunk/po/hr.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpohupo">theme/trunk/mageia-gfxboot-theme/trunk/po/hu.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpoidpo">theme/trunk/mageia-gfxboot-theme/trunk/po/id.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpoispo">theme/trunk/mageia-gfxboot-theme/trunk/po/is.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpoitpo">theme/trunk/mageia-gfxboot-theme/trunk/po/it.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpojapo">theme/trunk/mageia-gfxboot-theme/trunk/po/ja.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpokapo">theme/trunk/mageia-gfxboot-theme/trunk/po/ka.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpokopo">theme/trunk/mageia-gfxboot-theme/trunk/po/ko.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpokypo">theme/trunk/mageia-gfxboot-theme/trunk/po/ky.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpoltpo">theme/trunk/mageia-gfxboot-theme/trunk/po/lt.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpoltgpo">theme/trunk/mageia-gfxboot-theme/trunk/po/ltg.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpomkpo">theme/trunk/mageia-gfxboot-theme/trunk/po/mk.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpomrpo">theme/trunk/mageia-gfxboot-theme/trunk/po/mr.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpomspo">theme/trunk/mageia-gfxboot-theme/trunk/po/ms.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkponbpo">theme/trunk/mageia-gfxboot-theme/trunk/po/nb.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkponlpo">theme/trunk/mageia-gfxboot-theme/trunk/po/nl.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkponnpo">theme/trunk/mageia-gfxboot-theme/trunk/po/nn.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpopapo">theme/trunk/mageia-gfxboot-theme/trunk/po/pa.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpoplpo">theme/trunk/mageia-gfxboot-theme/trunk/po/pl.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpoptpo">theme/trunk/mageia-gfxboot-theme/trunk/po/pt.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpopt_BRpo">theme/trunk/mageia-gfxboot-theme/trunk/po/pt_BR.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkporopo">theme/trunk/mageia-gfxboot-theme/trunk/po/ro.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkporupo">theme/trunk/mageia-gfxboot-theme/trunk/po/ru.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkposkpo">theme/trunk/mageia-gfxboot-theme/trunk/po/sk.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkposlpo">theme/trunk/mageia-gfxboot-theme/trunk/po/sl.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkposrpo">theme/trunk/mageia-gfxboot-theme/trunk/po/sr.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkposrLatnpo">theme/trunk/mageia-gfxboot-theme/trunk/po/sr@Latn.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkposvpo">theme/trunk/mageia-gfxboot-theme/trunk/po/sv.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpotapo">theme/trunk/mageia-gfxboot-theme/trunk/po/ta.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpothpo_disabled">theme/trunk/mageia-gfxboot-theme/trunk/po/th.po_disabled</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpotrpo">theme/trunk/mageia-gfxboot-theme/trunk/po/tr.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpoukpo">theme/trunk/mageia-gfxboot-theme/trunk/po/uk.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpouzpo">theme/trunk/mageia-gfxboot-theme/trunk/po/uz.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpouzcyrillicpo">theme/trunk/mageia-gfxboot-theme/trunk/po/uz@cyrillic.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpowapo">theme/trunk/mageia-gfxboot-theme/trunk/po/wa.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpoxhpo">theme/trunk/mageia-gfxboot-theme/trunk/po/xh.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpozh_CNpo">theme/trunk/mageia-gfxboot-theme/trunk/po/zh_CN.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpozh_TWpo">theme/trunk/mageia-gfxboot-theme/trunk/po/zh_TW.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpozupo">theme/trunk/mageia-gfxboot-theme/trunk/po/zu.po</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/src/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunksrcMakefile">theme/trunk/mageia-gfxboot-theme/trunk/src/Makefile</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunksrcbsplashinc">theme/trunk/mageia-gfxboot-theme/trunk/src/bsplash.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunksrcbuttoninc">theme/trunk/mageia-gfxboot-theme/trunk/src/button.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunksrccommoninc">theme/trunk/mageia-gfxboot-theme/trunk/src/common.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunksrcdia_aboutinc">theme/trunk/mageia-gfxboot-theme/trunk/src/dia_about.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunksrcdia_bitsinc">theme/trunk/mageia-gfxboot-theme/trunk/src/dia_bits.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunksrcdia_dudinc">theme/trunk/mageia-gfxboot-theme/trunk/src/dia_dud.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunksrcdia_helpinc">theme/trunk/mageia-gfxboot-theme/trunk/src/dia_help.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunksrcdia_installinc">theme/trunk/mageia-gfxboot-theme/trunk/src/dia_install.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunksrcdia_kerneloptsinc">theme/trunk/mageia-gfxboot-theme/trunk/src/dia_kernelopts.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunksrcdia_keymapinc">theme/trunk/mageia-gfxboot-theme/trunk/src/dia_keymap.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunksrcdia_langinc">theme/trunk/mageia-gfxboot-theme/trunk/src/dia_lang.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunksrcdia_profileinc">theme/trunk/mageia-gfxboot-theme/trunk/src/dia_profile.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunksrcdia_videoinc">theme/trunk/mageia-gfxboot-theme/trunk/src/dia_video.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunksrchelpinc">theme/trunk/mageia-gfxboot-theme/trunk/src/help.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunksrckeytablesinc">theme/trunk/mageia-gfxboot-theme/trunk/src/keytables.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunksrclocaleinc">theme/trunk/mageia-gfxboot-theme/trunk/src/locale.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunksrcmainbc">theme/trunk/mageia-gfxboot-theme/trunk/src/main.bc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunksrcmenuinc">theme/trunk/mageia-gfxboot-theme/trunk/src/menu.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunksrcpanelinc">theme/trunk/mageia-gfxboot-theme/trunk/src/panel.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunksrcserialinc">theme/trunk/mageia-gfxboot-theme/trunk/src/serial.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunksrcspeechinc">theme/trunk/mageia-gfxboot-theme/trunk/src/speech.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunksrcsysteminc">theme/trunk/mageia-gfxboot-theme/trunk/src/system.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunksrctimeoutinc">theme/trunk/mageia-gfxboot-theme/trunk/src/timeout.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunksrcwindowinc">theme/trunk/mageia-gfxboot-theme/trunk/src/window.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunksrcxmenuinc">theme/trunk/mageia-gfxboot-theme/trunk/src/xmenu.inc</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/talk/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunktalkMakefile">theme/trunk/mageia-gfxboot-theme/trunk/talk/Makefile</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunktalkentlk">theme/trunk/mageia-gfxboot-theme/trunk/talk/en.tlk</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunktalkpo2talk">theme/trunk/mageia-gfxboot-theme/trunk/talk/po2talk</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunktalkscc">theme/trunk/mageia-gfxboot-theme/trunk/talk/sc.c</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunktalktalkpo">theme/trunk/mageia-gfxboot-theme/trunk/talk/talk.po</a></li>
+</ul>
+
+</div>
+<div id="patch"><pre>
+<a id="themetrunkmageiagfxbootthemetrunkMakefile">Added: theme/trunk/mageia-gfxboot-theme/trunk/Makefile</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/Makefile (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/Makefile 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,106 @@
++BINDIR := $(shell [ -x ../../gfxboot-compile ] &amp;&amp; echo ../../ )
++
++BASED_ON = $(shell perl -ne 'print if s/^based_on=//' config)
++
++ifeq ($(BASED_ON),)
++PREPARED = 1
++else
++PREPARED = $(shell [ -f .prepared ] &amp;&amp; echo 1)
++endif
++
++ADDDIR = gfxboot-adddir
++BFLAGS = -O -v -L ../..
++
++SUBDIRS = fonts help-boot help-install po src
++
++IN_CPIO_INSTALL = init $(notdir $(wildcard fonts/*.fnt)) $(notdir $(wildcard po/*.tr))
++
++DEFAULT_LANG =
++
++.PHONY: all clean distclean themes $(SUBDIRS)
++
++ifeq ($(PREPARED), 1)
++
++ all: bootlogo message
++
++else
++
++ all:
++ $(ADDDIR) ../$(BASED_ON) .
++ make clean
++ touch .prepared
++ make
++
++endif
++
++themes: all
++
++%/.ready: %
++ make -C $*
++
++src/main.bin: src
++ make -C src
++
++bootlogo: src/main.bin help-install/.ready po/.ready fonts/.ready
++ @rm -rf bootlogo.dir
++ @mkdir bootlogo.dir
++ cp -rL data-install/* fonts/*.fnt po/*.tr bootlogo.dir
++ cp -rL help-install/*.hlp bootlogo.dir
++ cp src/main.bin bootlogo.dir/init
++ifdef DEFAULT_LANG
++ @echo $(DEFAULT_LANG) &gt;bootlogo.dir/lang
++endif
++ @sh -c 'cd bootlogo.dir; chmod +t * ; chmod -t init langs'
++ @sh -c 'cd bootlogo.dir; echo $(IN_CPIO_INSTALL) | sed -e &quot;s/ /\n/g&quot; | cpio --quiet -o &gt;../bootlogo'
++ @cd bootlogo.dir; rm $(IN_CPIO_INSTALL)
++
++message: src/main.bin help-boot/.ready po/.ready fonts/.ready
++ @rm -rf message.dir
++ @mkdir message.dir
++ cp -rL data-boot/* fonts/*.fnt message.dir
++ cp -rL po/*.tr help-boot/*.hlp message.dir
++ cp src/main.bin message.dir/init
++ifdef DEFAULT_LANG
++ cp -rL po/$(DEFAULT_LANG).tr help-boot/$(DEFAULT_LANG).hlp message.dir
++ @echo $(DEFAULT_LANG) &gt;message.dir/lang
++ @echo $(DEFAULT_LANG) &gt;&gt;message.dir/langs
++endif
++ @sh -c 'cd message.dir; echo * | sed -e &quot;s/ /\n/g&quot; | cpio --quiet -o &gt;../message'
++ @rm -r message.dir
++
++clean:
++ @for i in $(SUBDIRS) ; do [ ! -f $$i/Makefile ] || make -C $$i clean || break ; done
++ rm -rf bootlogo bootlogo.dir message message.dir *~
++
++distclean: clean
++ifneq ($(BASED_ON),)
++ rm -f .prepared
++ rm -f `find -type l \! -wholename ./Makefile`
++ rmdir `find -depth -type d \! -name . \! -name .svn \! -wholename './.svn/*' \! -wholename './*/.svn/*'` 2&gt;/dev/null || true
++endif
++
++
++NAME = mageia-gfxboot-theme
++UPSTREAM_VERSION = 4.1.19
++VERSION = $(UPSTREAM_VERSION).21
++
++dist:
++ rm -rf ../$(NAME)-$(VERSION).tar*
++ @if [ -e &quot;.svn&quot; ]; then \
++ $(MAKE) dist-svn; \
++ elif [ -e &quot;.git&quot; ]; then \
++ $(MAKE) dist-git; \
++ else \
++ echo &quot;Unknown SCM (not SVN nor GIT)&quot;;\
++ exit 1; \
++ fi;
++ $(info $(NAME)-$(VERSION).tar.lzma is ready)
++
++dist-svn:
++ rm -rf $(NAME)-$(VERSION)
++ svn export -q -rBASE . $(NAME)-$(VERSION)
++ tar cfY ../$(NAME)-$(VERSION).tar.lzma $(NAME)-$(VERSION)
++ rm -rf $(NAME)-$(VERSION)
++
++dist-git:
++ @git archive --prefix=$(NAME)-$(VERSION)/ HEAD | lzma &gt;../$(NAME)-$(VERSION).tar.lzma;
+
+
+Property changes on: theme/trunk/mageia-gfxboot-theme/trunk/Makefile
+___________________________________________________________________
+<a id="svneolstyle">Added: svn:eol-style</a>
+ + native
+
+<a id="themetrunkmageiagfxbootthemetrunkconfig">Added: theme/trunk/mageia-gfxboot-theme/trunk/config</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/config (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/config 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,2 @@
++product=Mageia alpha 1
++based_on=
+
+<a id="themetrunkmageiagfxbootthemetrunkdatabootbackjpg">Added: theme/trunk/mageia-gfxboot-theme/trunk/data-boot/back.jpg</a>
+===================================================================
+(Binary files differ)
+
+
+Property changes on: theme/trunk/mageia-gfxboot-theme/trunk/data-boot/back.jpg
+___________________________________________________________________
+<a id="svnmimetype">Added: svn:mime-type</a>
+ + image/jpeg
+
+<a id="themetrunkmageiagfxbootthemetrunkdatabootgfxbootcfg">Added: theme/trunk/mageia-gfxboot-theme/trunk/data-boot/gfxboot.cfg</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/data-boot/gfxboot.cfg (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/data-boot/gfxboot.cfg 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,132 @@
++; Sections are read in the order given in base::layout, with section 'base'
++; implicitly added at the end. If a config value is given more than once,
++; the first entry wins.
++;
++; If a screen resolution can't be set, 640x480 is used as fallback (and
++; section '640x480' added to the layout list).
++;
++; If the penguin screen is active, section 'penguin' is automatically added
++; to the layout list.
++;
++; Color values: 24 bit RGB (e.g. 0xff0000 = red).
++;
++
++[base]
++; theme name
++theme=Mageia
++; other sections to read
++layout=800x600,boot
++; activate speech output
++talk=0
++; sound volume (0..100)
++volume=70
++; menu background transparency (0..255)
++menu.transparency=0x20
++; default font
++font.normal=16x16.fnt
++; main menu font
++font.large=16x16.fnt
++; background image
++background=back.jpg
++; max. visible main menu items
++mainmenu.entries=11
++; minimal main menu selection bar width
++mainmenu.bar.minwidth=400
++; main menu selection bar transparency (0..255)
++mainmenu.bar.transparency=100
++; main menu colors
++mainmenu.bar.color=0xffffff
++mainmenu.normal.fg=0xffffff
++mainmenu.selected.fg=0x000000
++; boot option colors
++bootopt.label.fg=0xffffff
++bootopt.text.fg=0xffffff
++; progress bar color
++progress.bar.color=0x21449c
++; menu colors
++menu.normal.bg=0xeff3f7
++menu.normal.fg=0x000000
++menu.selected.bg=0x6c6c6c
++menu.selected.fg=0xffffff
++; window colors
++window.bg=0xeff3f7
++window.fg=0x000000
++window.title.bg=0x21449c
++window.title.fg=0xffffff
++window.title.error.bg=0xc00000
++; help system colors
++help.link.fg=0x0000a0
++help.link.selected.fg=0xffffff
++help.link.selected.bg=0x0000a0
++help.highlight.fg=0x21449c
++; panel colors
++panel.fg=0xffffff
++panel.title.fg=0xffffff
++panel.f-key.fg=0x33358c
++; default keymap (e.g. de_DE, czech)
++keymap=
++; replace underscores ('_') with space in menu entries
++_2space=1
++
++[800x600]
++; screen size
++screen.size=800,600
++; upper left corner
++mainmenu.pos=210,235
++; boot option input field position
++bootopt.pos=200,540
++
++[640x480]
++; screen size
++screen.size=640,480
++; upper left corner
++mainmenu.pos=130,122
++; boot option input field position
++bootopt.pos=263,380
++
++[install]
++; show welcome animation
++welcome=1
++; beep when menu is ready
++beep=1
++; main menu item shown only if iso is tagged for media check
++mediacheck=mediachk
++; main menu items where user can't add boot options
++nobootoptions=harddisk,memtest
++; main menu items that are not passed an 'install' parameter
++noinstallopt=harddisk,firmware,memtest
++; default driver update (one of: yes, no, file, url; default: no)
++dud=
++; if 'dud=file': file name on DVD
++dud.file=
++; if 'dud=url': URL
++dud.url=
++; if 'dud=url': menu item name (default = 'URL')
++dud.url.name=
++; serial line setup (up to four lines)
++; format: port,baud,dev
++; - port: 0-3: first four BIOS serial lines (COM1-COM4); &gt;=4: I/O port (0x3f8)
++; - baud: baud rate (e.g. 115200); 0 = autodetect (considers baud rates &gt;= 9600)
++; - dev: linux device name (e.g. ttyS0)
++; - all lines are set up with 8 bits, no parity, 1 stop bit
++; - if the bootloader also has a serial line setup, the port is
++; automatically used
++serial.line0=0,0,ttyS0
++serial.line1=1,0,ttyS1
++serial.line2=
++serial.line3=
++; show keymap menu as submenu in lang dialog
++keymap.submenu=1
++; show keymap in main menu
++keymap.mainmenu=0
++
++[boot]
++; show welcome animation
++welcome=0
++; beep when menu is ready
++beep=0
++; show keymap menu as submenu in lang dialog
++keymap.submenu=0
++; show keymap in main menu
++keymap.mainmenu=0
++
+
+<a id="themetrunkmageiagfxbootthemetrunkdatabootlangs">Added: theme/trunk/mageia-gfxboot-theme/trunk/data-boot/langs</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/data-boot/langs (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/data-boot/langs 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++link ../data-install/langs
+\ No newline at end of file
+
+
+Property changes on: theme/trunk/mageia-gfxboot-theme/trunk/data-boot/langs
+___________________________________________________________________
+<a id="svnspecial">Added: svn:special</a>
+ + *
+
+<a id="themetrunkmageiagfxbootthemetrunkdataboottimer_ajpg">Added: theme/trunk/mageia-gfxboot-theme/trunk/data-boot/timer_a.jpg</a>
+===================================================================
+(Binary files differ)
+
+
+Property changes on: theme/trunk/mageia-gfxboot-theme/trunk/data-boot/timer_a.jpg
+___________________________________________________________________
+Added: svn:mime-type
+ + image/jpeg
+
+<a id="themetrunkmageiagfxbootthemetrunkdatainstallbackjpg">Added: theme/trunk/mageia-gfxboot-theme/trunk/data-install/back.jpg</a>
+===================================================================
+(Binary files differ)
+
+
+Property changes on: theme/trunk/mageia-gfxboot-theme/trunk/data-install/back.jpg
+___________________________________________________________________
+Added: svn:mime-type
+ + image/jpeg
+
+<a id="themetrunkmageiagfxbootthemetrunkdatainstallgfxbootcfg">Added: theme/trunk/mageia-gfxboot-theme/trunk/data-install/gfxboot.cfg</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/data-install/gfxboot.cfg (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/data-install/gfxboot.cfg 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,132 @@
++; Sections are read in the order given in base::layout, with section 'base'
++; implicitly added at the end. If a config value is given more than once,
++; the first entry wins.
++;
++; If a screen resolution can't be set, 640x480 is used as fallback (and
++; section '640x480' added to the layout list).
++;
++; If the penguin screen is active, section 'penguin' is automatically added
++; to the layout list.
++;
++; Color values: 24 bit RGB (e.g. 0xff0000 = red).
++;
++
++[base]
++; theme name
++theme=Mageia
++; other sections to read
++layout=800x600,install
++; activate speech output
++talk=0
++; sound volume (0..100)
++volume=70
++; menu background transparency (0..255)
++menu.transparency=0x20
++; default font
++font.normal=16x16.fnt
++; main menu font
++font.large=16x16.fnt
++; background image
++background=back.jpg
++; max. visible main menu items
++mainmenu.entries=11
++; minimal main menu selection bar width
++mainmenu.bar.minwidth=400
++; main menu selection bar transparency (0..255)
++mainmenu.bar.transparency=100
++; main menu colors
++mainmenu.bar.color=0xffffff
++mainmenu.normal.fg=0xffffff
++mainmenu.selected.fg=0x000000
++; boot option colors
++bootopt.label.fg=0xffffff
++bootopt.text.fg=0xffffff
++; progress bar color
++progress.bar.color=0x21449c
++; menu colors
++menu.normal.bg=0xeff3f7
++menu.normal.fg=0x000000
++menu.selected.bg=0x6c6c6c
++menu.selected.fg=0xffffff
++; window colors
++window.bg=0xeff3f7
++window.fg=0x000000
++window.title.bg=0x21449c
++window.title.fg=0xffffff
++window.title.error.bg=0xc00000
++; help system colors
++help.link.fg=0x0000a0
++help.link.selected.fg=0xffffff
++help.link.selected.bg=0x0000a0
++help.highlight.fg=0x21449c
++; panel colors
++panel.fg=0xffffff
++panel.title.fg=0xffffff
++panel.f-key.fg=0x33358c
++; default keymap (e.g. de_DE, czech)
++keymap=
++; replace underscores ('_') with space in menu entries
++_2space=1
++
++[800x600]
++; screen size
++screen.size=800,600
++; upper left corner
++mainmenu.pos=210,235
++; boot option input field position
++bootopt.pos=200,540
++
++[640x480]
++; screen size
++screen.size=640,480
++; upper left corner
++mainmenu.pos=130,122
++; boot option input field position
++bootopt.pos=263,380
++
++[install]
++; show welcome animation
++welcome=1
++; beep when menu is ready
++beep=1
++; main menu item shown only if iso is tagged for media check
++mediacheck=mediachk
++; main menu items where user can't add boot options
++nobootoptions=harddisk,memtest
++; main menu items that are not passed an 'install' parameter
++noinstallopt=harddisk,firmware,memtest
++; default driver update (one of: yes, no, file, url; default: no)
++dud=
++; if 'dud=file': file name on DVD
++dud.file=
++; if 'dud=url': URL
++dud.url=
++; if 'dud=url': menu item name (default = 'URL')
++dud.url.name=
++; serial line setup (up to four lines)
++; format: port,baud,dev
++; - port: 0-3: first four BIOS serial lines (COM1-COM4); &gt;=4: I/O port (0x3f8)
++; - baud: baud rate (e.g. 115200); 0 = autodetect (considers baud rates &gt;= 9600)
++; - dev: linux device name (e.g. ttyS0)
++; - all lines are set up with 8 bits, no parity, 1 stop bit
++; - if the bootloader also has a serial line setup, the port is
++; automatically used
++serial.line0=0,0,ttyS0
++serial.line1=1,0,ttyS1
++serial.line2=
++serial.line3=
++; show keymap menu as submenu in lang dialog
++keymap.submenu=1
++; show keymap in main menu
++keymap.mainmenu=0
++
++[boot]
++; show welcome animation
++welcome=0
++; beep when menu is ready
++beep=1
++; show keymap menu as submenu in lang dialog
++keymap.submenu=0
++; show keymap in main menu
++keymap.mainmenu=0
++
+
+<a id="themetrunkmageiagfxbootthemetrunkdatainstalllangs">Added: theme/trunk/mageia-gfxboot-theme/trunk/data-install/langs</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/data-install/langs (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/data-install/langs 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,60 @@
++af_ZA
++ar_EG
++bn_BD
++bs_BA
++bg_BG
++ca_ES
++cs_CZ
++cy_GB
++da_DK
++de_DE
++et_EE
++en_GB
++en_US
++es_ES
++fa_IR
++fr_FR
++gl_ES
++ka_GE
++gu_IN
++el_GR
++hi_IN
++id_ID
++hr_HR
++it_IT
++he_IL
++ja_JP
++jv_ID
++km_KH
++ko_KR
++ky_KG
++lo_LA
++lt_LT
++mr_IN
++hu_HU
++mk_MK
++nl_NL
++nb_NO
++nn_NO
++pl_PL
++pt_PT
++pt_BR
++pa_IN
++ro_RO
++ru_RU
++zh_CN
++si_LK
++sk_SK
++sl_SI
++sr_CS
++fi_FI
++sv_SE
++ta_IN
++th_TH
++zh_TW
++vi_VN
++tr_TR
++uk_UA
++wa_BE
++xh_ZA
++zu_ZA
+
+<a id="themetrunkmageiagfxbootthemetrunkdatainstalltextjpg">Added: theme/trunk/mageia-gfxboot-theme/trunk/data-install/text.jpg</a>
+===================================================================
+(Binary files differ)
+
+
+Property changes on: theme/trunk/mageia-gfxboot-theme/trunk/data-install/text.jpg
+___________________________________________________________________
+Added: svn:mime-type
+ + image/jpeg
+
+<a id="themetrunkmageiagfxbootthemetrunkdatainstalltimer_ajpg">Added: theme/trunk/mageia-gfxboot-theme/trunk/data-install/timer_a.jpg</a>
+===================================================================
+(Binary files differ)
+
+
+Property changes on: theme/trunk/mageia-gfxboot-theme/trunk/data-install/timer_a.jpg
+___________________________________________________________________
+Added: svn:mime-type
+ + image/jpeg
+
+<a id="themetrunkmageiagfxbootthemetrunkdatainstallwelcomejpg">Added: theme/trunk/mageia-gfxboot-theme/trunk/data-install/welcome.jpg</a>
+===================================================================
+(Binary files differ)
+
+
+Property changes on: theme/trunk/mageia-gfxboot-theme/trunk/data-install/welcome.jpg
+___________________________________________________________________
+Added: svn:mime-type
+ + image/jpeg
+
+<a id="themetrunkmageiagfxbootthemetrunkfonts16x16fnt">Added: theme/trunk/mageia-gfxboot-theme/trunk/fonts/16x16.fnt</a>
+===================================================================
+(Binary files differ)
+
+
+Property changes on: theme/trunk/mageia-gfxboot-theme/trunk/fonts/16x16.fnt
+___________________________________________________________________
+Added: svn:mime-type
+ + application/octet-stream
+
+<a id="themetrunkmageiagfxbootthemetrunkfonts16x16fntlog">Added: theme/trunk/mageia-gfxboot-theme/trunk/fonts/16x16.fnt.log</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/fonts/16x16.fnt.log (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/fonts/16x16.fnt.log 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,55897 @@
++Font List
++ NachlieliCLM-Bold (ok)
++ File /usr/share/fonts/Type1/NachlieliCLM-Bold.pfa
++ Size 14
++ c 0x0590-0x05ff
++ KacstOne (ok)
++ File /usr/share/fonts/truetype/KacstOne.ttf
++ Size 14, dY 2
++ c 0x0600-0x06ff
++ c 0xfe70-0xfefc
++ MuktiNarrow (ok)
++ File /usr/share/fonts/truetype/MuktiNarrow.ttf
++ Size 18
++ c 0x0981-0x09fa
++ lohit_hi (ok)
++ File /usr/share/fonts/truetype/lohit_hi.ttf
++ Size 18
++ c 0x0901-0x0970
++ lohit_pa (ok)
++ File /usr/share/fonts/truetype/lohit_pa.ttf
++ Size 19
++ c 0x0a01-0x0a74
++ lohit_gu (ok)
++ File /usr/share/fonts/truetype/lohit_gu.ttf
++ Size 18
++ c 0x0a81-0x0af1
++ TSCu_Paranar (ok)
++ File /usr/share/fonts/truetype/TSCu_Paranar.ttf
++ Size 18, dY 2
++ c 0x0b82-0x0bfa
++ lklug (ok)
++ File /usr/share/fonts/truetype/lklug.ttf
++ Size 17, dY 1
++ c 0x0d82-0x0df4
++ Loma (ok)
++ File /usr/share/fonts/truetype/Loma.ttf
++ Size 17, dY -2
++ c 0x0e01-0x0e7f
++ Loma (ok)
++ File /usr/share/fonts/truetype/Loma.ttf
++ Size 17, dY -2
++ c 0x0e81-0x0eff
++ KhmerOS_sys (ok)
++ File /usr/share/fonts/truetype/KhmerOS_sys.ttf
++ Size 16, dY -2
++ c 0x1780-0x17f9
++ DejaVuSans-Bold (ok)
++ File /usr/share/fonts/truetype/DejaVuSans-Bold.ttf
++ Size 14
++ wenquanyi_12pt.pcf (ok)
++ File /usr/share/fonts/misc/wenquanyi_12pt.pcf
++ Size 16
++ gulim (ok)
++ File /usr/share/fonts/truetype/gulim.ttf
++ Size 17
++
++Missing Chars
++ 0x0009
++ 0x001b-0x001c
++ 0x0081-0x009f
++ 0x2029
++
++Font Size
++ Height: 22
++ Baseline: 5
++ Line Height: 18
++
++Char 0x0020 ' '
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 0 x 0
++ Advance: 5
++ Offset: 0 x 0
++ _____
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ -&gt;|.....|&lt;-
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ -----
++
++Char 0x0021 '!'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 2 x 10
++ Advance: 6
++ Offset: 2 x 0
++ ______
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |..##..|
++ |..##..|
++ |..##..|
++ |..##..|
++ |..##..|
++ |..cc..|
++ |..aa..|
++ |.. ..|
++ |..##..|
++ -&gt;|..##..|&lt;-
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ ------
++
++Char 0x0022 '&quot;'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 5 x 4
++ Advance: 7
++ Offset: 1 x 6
++ _______
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -&gt;|.......|&lt;-
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -------
++
++Char 0x0023 '#'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 10
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |. 4#3 c8 .|
++ |. 7# 1#5 .|
++ |. ab 4#2 .|
++ |.2#########.|
++ |. 4#2 #8 .|
++ |. 8# 2#4 .|
++ |.#########2.|
++ |. 2#5 aa .|
++ |. 5#2 #7 .|
++ -&gt;|. 8# 3#4 .|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x0024 '$'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 13
++ Advance: 10
++ Offset: 2 x -2
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.. # .|
++ |.. # .|
++ |.. 8c#b4 .|
++ |..9#3#18 .|
++ |..##1# .|
++ |..c#c#51 .|
++ |..5#####5.|
++ |.. 26###c.|
++ |.. #1##.|
++ |..a4 #2#a.|
++ -&gt;|..39##c91.|&lt;-
++ |.. # .|
++ |.. # .|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0025 '%'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 13 x 10
++ Advance: 14
++ Offset: 1 x 0
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |.1a#a1 5##2 |
++ |.a#4#a 2##5 |
++ |.## ## b#8 |
++ |.## ## 8#b |
++ |.a#4#94##4a#a1|
++ |.1a#a3##5a#4#a|
++ |. a#8 ## ##|
++ |. 7#b ## ##|
++ |. 3##2 a#4#9|
++ -&gt;|. 1c#5 1a#a1|&lt;-
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ --------------
++
++Char 0x0026 '&amp;'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 10
++ Advance: 13
++ Offset: 1 x 0
++ _____________
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |. 19##a4 .|
++ |. b#3 39 .|
++ |. ##2 .|
++ |. 1##b1 .|
++ |.1c#8#c1 #c.|
++ |.a#5 5#c21#9.|
++ |.## 5#c8#4.|
++ |.c#1 5##b .|
++ |.5#a2 28##a .|
++ -&gt;|. 3a###b56#7.|&lt;-
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ -------------
++
++Char 0x0027 '''
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 2 x 4
++ Advance: 4
++ Offset: 1 x 6
++ ____
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ -&gt;|....|&lt;-
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ ----
++
++Char 0x0028 '('
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 4 x 12
++ Advance: 6
++ Offset: 1 x -1
++ ______
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |. 6#9.|
++ |. c#2.|
++ |.4#9 .|
++ |.9#5 .|
++ |.c#1 .|
++ |.## .|
++ |.## .|
++ |.c#1 .|
++ |.9#5 .|
++ |.5#9 .|
++ -&gt;|. c#2.|&lt;-
++ |. 6#9.|
++ |......|
++ |......|
++ |......|
++ |......|
++ ------
++
++Char 0x0029 ')'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 4 x 12
++ Advance: 6
++ Offset: 1 x -1
++ ______
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |.9#6 .|
++ |.2#c .|
++ |. 9#4.|
++ |. 5#9.|
++ |. 1#c.|
++ |. ##.|
++ |. ##.|
++ |. 1#c.|
++ |. 5#9.|
++ |. 9#4.|
++ -&gt;|.2#c .|&lt;-
++ |.9#6 .|
++ |......|
++ |......|
++ |......|
++ |......|
++ ------
++
++Char 0x002a '*'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 7
++ Advance: 7
++ Offset: 0 x 3
++ _______
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ | # |
++ |86 # 68|
++ |5cb#bc5|
++ | 1c#c1 |
++ |5cb#bc5|
++ |86 # 68|
++ | # |
++ |.......|
++ |.......|
++ -&gt;|.......|&lt;-
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -------
++
++Char 0x002b '+'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 8
++ Advance: 12
++ Offset: 2 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |..########..|
++ |..########..|
++ |.. ## ..|
++ |.. ## ..|
++ -&gt;|.. ## ..|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x002c ','
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 3 x 5
++ Advance: 5
++ Offset: 0 x -2
++ _____
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ | ##..|
++ | ##..|
++ -&gt;|1#b..|&lt;-
++ |6#1..|
++ |b5 ..|
++ |.....|
++ |.....|
++ |.....|
++ -----
++
++Char 0x002d '-'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 4 x 2
++ Advance: 6
++ Offset: 1 x 3
++ ______
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |.####.|
++ |.####.|
++ |......|
++ |......|
++ -&gt;|......|&lt;-
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ ------
++
++Char 0x002e '.'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 2 x 3
++ Advance: 5
++ Offset: 1 x 0
++ _____
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.##..|
++ |.##..|
++ -&gt;|.##..|&lt;-
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ -----
++
++Char 0x002f '/'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 5 x 12
++ Advance: 5
++ Offset: 0 x -2
++ _____
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ | 8b|
++ | c7|
++ | 3#3|
++ | 7# |
++ | b9 |
++ | 1#5 |
++ | 5#1 |
++ | 9b |
++ | #7 |
++ -&gt;|3#3 |&lt;-
++ |7c |
++ |b8 |
++ |.....|
++ |.....|
++ |.....|
++ -----
++
++Char 0x0030 '0'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 2a##a2 .|
++ |.1#a11a#1.|
++ |.8#3 3#8.|
++ |.c# 1#b.|
++ |.## ##.|
++ |.## ##.|
++ |.c#1 1#b.|
++ |.8#3 3#8.|
++ |.1#a11a#1.|
++ -&gt;|. 2a##a2 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0031 '1'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 10
++ Advance: 10
++ Offset: 2 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..3a## ..|
++ |..a3## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ -&gt;|..######..|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0032 '2'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 10
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.39c#c7 ..|
++ |.a4 8#7..|
++ |. #c..|
++ |. 1##..|
++ |. 9#b..|
++ |. 8##4..|
++ |. 8##3 ..|
++ |. 7##3 ..|
++ |.7##4 ..|
++ -&gt;|.#######..|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0033 '3'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.39c##b71.|
++ |.a41 17#a.|
++ |. ##.|
++ |. 17#8.|
++ |. ####b1.|
++ |. 29#9.|
++ |. 1##.|
++ |. 1#c.|
++ |.a41 19#6.|
++ -&gt;|.39c#ca4 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0034 '4'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 4c## .|
++ |. 2c2## .|
++ |. b5 ## .|
++ |. 97 ## .|
++ |.7a ## .|
++ |.c1 ## .|
++ |.########.|
++ |. ## .|
++ |. ## .|
++ -&gt;|. ## .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0035 '5'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.####### .|
++ |.## .|
++ |.## .|
++ |.####c93 .|
++ |.a41 3b#4.|
++ |. 2#b.|
++ |. ##.|
++ |. 2#b.|
++ |.a51 2b#4.|
++ -&gt;|.39c##a3 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0036 '6'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 7c#b4 .|
++ |. bb2 29 .|
++ |.6#2 .|
++ |.b#a##b5 .|
++ |.##9 9#6.|
++ |.##1 1#c.|
++ |.c# ##.|
++ |.8#1 1#b.|
++ |.1#9 9#4.|
++ -&gt;|. 29##b4 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0037 '7'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.########.|
++ |. 3#c.|
++ |. a#6.|
++ |. 2## .|
++ |. 9#7 .|
++ |. 2##1 .|
++ |. 9#7 .|
++ |. 2##1 .|
++ |. 8#8 .|
++ -&gt;|. 1##1 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0038 '8'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.18c##c81.|
++ |.a#6 6#a.|
++ |.## ##.|
++ |.9#6 6#9.|
++ |. b####b .|
++ |.8#8 8#8.|
++ |.## ##.|
++ |.## ##.|
++ |.8#8 8#8.|
++ -&gt;|. 7b##b7 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0039 '9'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 4b##92 .|
++ |.4#9119#1.|
++ |.b#1 1#8.|
++ |.## #c.|
++ |.c#1 1##.|
++ |.6#9 9##.|
++ |. 5b##a#b.|
++ |. 3#6.|
++ |. 92 2bb .|
++ -&gt;|. 4b#c7 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x003a ':'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 2 x 8
++ Advance: 6
++ Offset: 1 x 0
++ ______
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |.##...|
++ |.##...|
++ |.##...|
++ |. ...|
++ |. ...|
++ |.##...|
++ |.##...|
++ -&gt;|.##...|&lt;-
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ ------
++
++Char 0x003b ';'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 3 x 10
++ Advance: 6
++ Offset: 0 x -2
++ ______
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ | ##...|
++ | ##...|
++ | ##...|
++ | ...|
++ | ...|
++ | ##...|
++ | ##...|
++ -&gt;|1#b...|&lt;-
++ |6#1...|
++ |b5 ...|
++ |......|
++ |......|
++ |......|
++ ------
++
++Char 0x003c '&lt;'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 8
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |. 16b..|
++ |. 5a##c..|
++ |. 49##c73 ..|
++ |.##c83 ..|
++ |.##c73 ..|
++ |. 49##c73 ..|
++ |. 15a##c..|
++ -&gt;|. 16b..|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x003d '='
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 6
++ Advance: 12
++ Offset: 1 x 2
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |.#########..|
++ |.#########..|
++ |. ..|
++ |. ..|
++ |.#########..|
++ |.#########..|
++ |............|
++ -&gt;|............|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x003e '&gt;'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 8
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |.b61 ..|
++ |.c##a5 ..|
++ |. 37c##94 ..|
++ |. 37c##..|
++ |. 37c##..|
++ |. 37c##94 ..|
++ |.c##a51 ..|
++ -&gt;|.b61 ..|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x003f '?'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 10
++ Advance: 8
++ Offset: 1 x 0
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |.3a##91.|
++ |.93 4#a.|
++ |. 1##.|
++ |. a#9.|
++ |. 1b#9 .|
++ |. 9#8 .|
++ |. ## .|
++ |. .|
++ |. ## .|
++ -&gt;|. ## .|&lt;-
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ --------
++
++Char 0x0040 '@'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 12 x 12
++ Advance: 14
++ Offset: 1 x -2
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |. 5a##b71 .|
++ |. 1b93 27c4 .|
++ |. b6 2c2.|
++ |.69 1a#9## 69.|
++ |.b3 9#45## 1c.|
++ |.# ## ## #.|
++ |.# ## ## 3b.|
++ |.b3 9#45##2b3.|
++ |.69 1a#9##a3 .|
++ -&gt;|. b6 .|&lt;-
++ |. 1b93 279 .|
++ |. 5a##c82 .|
++ |..............|
++ |..............|
++ |..............|
++ --------------
++
++Char 0x0041 'A'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 10
++ Advance: 11
++ Offset: 0 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ | 1###1 |
++ | 6###6 |
++ | c#4#b |
++ | 3#a a#3 |
++ | 9#4 4#9 |
++ | 1#c c#1 |
++ | 6#######6 |
++ | c#1 1#c |
++ |3#a a#3|
++ -&gt;|9#4 4#9|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0042 'B'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.#####c81.|
++ |.## 6#a.|
++ |.## ##.|
++ |.## 6#a.|
++ |.#######2.|
++ |.## 7#9.|
++ |.## ##.|
++ |.## ##.|
++ |.## 7#9.|
++ -&gt;|.#####c81.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0043 'C'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 10
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |. 39c##c9.|
++ |. 7#82 14a.|
++ |.5#9 .|
++ |.a#2 .|
++ |.## .|
++ |.## .|
++ |.a#2 .|
++ |.5#9 .|
++ |. 7#82 14a.|
++ -&gt;|. 39c##ca.|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0044 'D'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 10
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |.####c94 .|
++ |.## 29#8 .|
++ |.## 9#5.|
++ |.## 2#a.|
++ |.## ##.|
++ |.## ##.|
++ |.## 2#a.|
++ |.## 9#5.|
++ |.## 29#8 .|
++ -&gt;|.####c94 .|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0045 'E'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 10
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.#######.|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.#######.|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ -&gt;|.#######.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0046 'F'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 10
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.#######.|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.#######.|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ -&gt;|.## .|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0047 'G'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 10
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |. 4ac##c9 .|
++ |. 9#71 14a .|
++ |.5#8 .|
++ |.b#2 .|
++ |.## ####.|
++ |.## ##.|
++ |.a#3 ##.|
++ |.5#9 ##.|
++ |. 8#a3 2##.|
++ -&gt;|. 49c##ca8.|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x0048 'H'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 10
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.#########.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ -&gt;|.## ##.|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0049 'I'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 2 x 10
++ Advance: 4
++ Offset: 1 x 0
++ ____
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ -&gt;|.##.|&lt;-
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ ----
++
++Char 0x004a 'J'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 4 x 13
++ Advance: 4
++ Offset: -1 x -3
++ ____
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ -&gt;| ##.|&lt;-
++ | ##.|
++ | 7#9.|
++ |#c8 .|
++ |.....|
++ |.....|
++ ----
++
++Char 0x004b 'K'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 10
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |.## 3##6 |
++ |.## 3##5 |
++ |.## 4##4 |
++ |.##4##3 |
++ |.####5 |
++ |.##6##3 |
++ |.## 5##4 |
++ |.## 5##4 |
++ |.## 5##5 |
++ -&gt;|.## 4##6|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x004c 'L'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 10
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ -&gt;|.#######.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x004d 'M'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 10
++ Advance: 13
++ Offset: 1 x 0
++ _____________
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.###2 2###.|
++ |.###8 9###.|
++ |.##c#1 1#c##.|
++ |.##6#8 8#6##.|
++ |.## c#2#c ##.|
++ |.## 6#c#6 ##.|
++ |.## c#c ##.|
++ |.## 5#5 ##.|
++ |.## ##.|
++ -&gt;|.## ##.|&lt;-
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ -------------
++
++Char 0x004e 'N'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 10
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |.##8 ##.|
++ |.###3 ##.|
++ |.###b ##.|
++ |.##5#6 ##.|
++ |.## a#1 ##.|
++ |.## 2#a ##.|
++ |.## 7#5##.|
++ |.## bc##.|
++ |.## 3###.|
++ -&gt;|.## 8##.|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x004f 'O'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 10
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |. 6b##b6 .|
++ |. a#6 6#a .|
++ |.6#7 7#6.|
++ |.b#2 2#b.|
++ |.## ##.|
++ |.## ##.|
++ |.b#2 2#b.|
++ |.6#7 7#6.|
++ |. a#5 6#a .|
++ -&gt;|. 6b##b6 .|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x0050 'P'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.#####b6 .|
++ |.## 19#6.|
++ |.## 1#c.|
++ |.## ##.|
++ |.## 2#c.|
++ |.## 19#6.|
++ |.#####b6 .|
++ |.## .|
++ |.## .|
++ -&gt;|.## .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0051 'Q'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 12
++ Advance: 12
++ Offset: 1 x -2
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |. 6b##b6 .|
++ |. a#6 6#a .|
++ |.6#7 7#6.|
++ |.b#2 2#b.|
++ |.## ##.|
++ |.## ##.|
++ |.b#2 2#b.|
++ |.6#8 8#6.|
++ |. a#6 6#b .|
++ -&gt;|. 6b###8 .|&lt;-
++ |. 4#c2 .|
++ |. 6#c1.|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x0052 'R'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 10
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.#####c8 |
++ |.## 18#9 |
++ |.## ## |
++ |.## #c |
++ |.## 18#8 |
++ |.######c |
++ |.## 2a#5 |
++ |.## 1#c |
++ |.## 9#4|
++ -&gt;|.## 4#a|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0053 'S'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 7c##cb .|
++ |.8#5 4a .|
++ |.c# .|
++ |.##b74 .|
++ |.4c####91.|
++ |. 38c##a.|
++ |. 7##.|
++ |. #c.|
++ |.b52 5#7.|
++ -&gt;|.9b###b6 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0054 'T'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.########.|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ -&gt;|. ## .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0055 'U'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 10
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.c#1 1#c.|
++ |.6#91 19#6.|
++ -&gt;|. 5a###a5 .|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0056 'V'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 10
++ Advance: 11
++ Offset: 0 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |b#3 3#b|
++ |5#8 8#5|
++ | ## ## |
++ | 8#6 6#8 |
++ | 3#b b#3 |
++ | b#3 3#b |
++ | 6#8 9#6 |
++ | 1##2##1 |
++ | 9#b#9 |
++ -&gt;| 4###4 |&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0057 'W'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 15 x 10
++ Advance: 15
++ Offset: 0 x 0
++ _______________
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |1#c 7#8 c#1|
++ | c#2 b#b 2#c |
++ | 8#5 1###1 5#8 |
++ | 5#8 5#a#5 8#5 |
++ | 1#b 9#2#9 b#1 |
++ | c#1#a a#1#c |
++ | 8#7#6 6#7#8 |
++ | 5###2 2###5 |
++ | 1##c b##2 |
++ -&gt;| c#7 7#c |&lt;-
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ ---------------
++
++Char 0x0058 'X'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 10
++ Advance: 10
++ Offset: 0 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |9#a 9#9|
++ | c#3 3#c |
++ | 3#b b#3 |
++ | 7#55#7 |
++ | bccb |
++ | 1cbbc1 |
++ | 9#33#9 |
++ | 4#a a#4 |
++ |1c#2 2#c1|
++ -&gt;|9#9 9#9|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0059 'Y'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 10
++ Advance: 10
++ Offset: 0 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |9#9 9#9|
++ | c#3 3#c |
++ | 3#a a#3 |
++ | 8#44#8 |
++ | bccb |
++ | 2##2 |
++ | ## |
++ | ## |
++ | ## |
++ -&gt;| ## |&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x005a 'Z'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 10
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |.#########.|
++ |. 6##.|
++ |. 5##3.|
++ |. 5##3 .|
++ |. 5##4 .|
++ |. 4##4 .|
++ |. 4##4 .|
++ |.4##4 .|
++ |.##4 .|
++ -&gt;|.#########.|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x005b '['
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 4 x 12
++ Advance: 6
++ Offset: 1 x -1
++ ______
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |.####.|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ -&gt;|.## .|&lt;-
++ |.####.|
++ |......|
++ |......|
++ |......|
++ |......|
++ ------
++
++Char 0x005c '\'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 5 x 12
++ Advance: 5
++ Offset: 0 x -2
++ _____
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |b8 |
++ |7c |
++ |3#3 |
++ | #7 |
++ | 9b |
++ | 5#1 |
++ | 1#5 |
++ | b9 |
++ | 7# |
++ -&gt;| 3#3|&lt;-
++ | c7|
++ | 8b|
++ |.....|
++ |.....|
++ |.....|
++ -----
++
++Char 0x005d ']'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 4 x 12
++ Advance: 6
++ Offset: 1 x -1
++ ______
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |.####.|
++ |. ##.|
++ |. ##.|
++ |. ##.|
++ |. ##.|
++ |. ##.|
++ |. ##.|
++ |. ##.|
++ |. ##.|
++ |. ##.|
++ -&gt;|. ##.|&lt;-
++ |.####.|
++ |......|
++ |......|
++ |......|
++ |......|
++ ------
++
++Char 0x005e '^'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 4
++ Advance: 12
++ Offset: 1 x 6
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |. a#a ..|
++ |. 9###9 ..|
++ |. 8#8 8#8 ..|
++ |.7#5 5#7..|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ -&gt;|............|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x005f '_'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 1
++ Advance: 7
++ Offset: 0 x -3
++ _______
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -&gt;|.......|&lt;-
++ |.......|
++ |.......|
++ |#######|
++ |.......|
++ |.......|
++ -------
++
++Char 0x0060 '`'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 4 x 3
++ Advance: 7
++ Offset: 1 x 9
++ _______
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.7#4 ..|
++ |. 9c1..|
++ |. a9..|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -&gt;|.......|&lt;-
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -------
++
++Char 0x0061 'a'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 8
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. 6##c8 .|
++ |. 62 5#8.|
++ |. #c.|
++ |.29#####.|
++ |.b#5 ##.|
++ |.## 2##.|
++ |.b#4 9##.|
++ -&gt;|.2b#c5##.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0062 'b'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 11
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.##5b#c5 .|
++ |.##a11a#4.|
++ |.##2 2#a.|
++ |.## ##.|
++ |.## ##.|
++ |.##2 2#a.|
++ |.##a11a#4.|
++ -&gt;|.##5b#c5 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0063 'c'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 8
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. 29c#b4.|
++ |.2#c3 29.|
++ |.a#3 .|
++ |.## .|
++ |.## .|
++ |.a#3 .|
++ |.3#c3 28.|
++ -&gt;|. 29c#b4.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0064 'd'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 11
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. ##.|
++ |. ##.|
++ |. ##.|
++ |. 5c#b5##.|
++ |.4#a11a##.|
++ |.a#2 2##.|
++ |.## ##.|
++ |.## ##.|
++ |.a#2 2##.|
++ |.4#a11a##.|
++ -&gt;|. 5c#b5##.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0065 'e'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 8
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 3a##b4 .|
++ |.3#a1 8#5.|
++ |.a#2 #b.|
++ |.########.|
++ |.## .|
++ |.a#4 .|
++ |.3#b2 15a.|
++ -&gt;|. 29c#c93.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0066 'f'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 5 x 11
++ Advance: 6
++ Offset: 1 x 0
++ ______
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |. 4c##|
++ |. c#2 |
++ |. ## |
++ |.#####|
++ |. ## |
++ |. ## |
++ |. ## |
++ |. ## |
++ |. ## |
++ |. ## |
++ -&gt;|. ## |&lt;-
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ ------
++
++Char 0x0067 'g'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 11
++ Advance: 10
++ Offset: 1 x -3
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 4c#b5##.|
++ |.4#a11a##.|
++ |.a#2 3##.|
++ |.## ##.|
++ |.## ##.|
++ |.a#2 3##.|
++ |.4#a11a##.|
++ -&gt;|. 4c#b5##.|&lt;-
++ |. 2#b.|
++ |. 92 1a#5.|
++ |. 4b##a4 .|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0068 'h'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 11
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.##4a##a2.|
++ |.##b2 6#a.|
++ |.##2 ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ -&gt;|.## ##.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0069 'i'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 2 x 11
++ Advance: 4
++ Offset: 1 x 0
++ ____
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |.##.|
++ |.##.|
++ |. .|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ -&gt;|.##.|&lt;-
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ ----
++
++Char 0x006a 'j'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 4 x 14
++ Advance: 4
++ Offset: -1 x -3
++ ____
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ | ##.|
++ | ##.|
++ | .|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ -&gt;| ##.|&lt;-
++ | ##.|
++ | 4#b.|
++ |##b2.|
++ |.....|
++ |.....|
++ ----
++
++Char 0x006b 'k'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 11
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.## |
++ |.## |
++ |.## |
++ |.## 3##6 |
++ |.## 3##5 |
++ |.##4##4 |
++ |.####4 |
++ |.##5#b1 |
++ |.## 5#c2 |
++ |.## 5#c2 |
++ -&gt;|.## 5##3|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ---------
++
++Char 0x006c 'l'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 2 x 11
++ Advance: 4
++ Offset: 1 x 0
++ ____
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ -&gt;|.##.|&lt;-
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ ----
++
++Char 0x006d 'm'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 12 x 8
++ Advance: 14
++ Offset: 1 x 0
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |.##5c#b47c#a2.|
++ |.##9 4##9 4#b.|
++ |.##1 ##1 ##.|
++ |.## ## ##.|
++ |.## ## ##.|
++ |.## ## ##.|
++ |.## ## ##.|
++ -&gt;|.## ## ##.|&lt;-
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ --------------
++
++Char 0x006e 'n'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 8
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.##4a##a2.|
++ |.##b2 6#a.|
++ |.##2 ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ -&gt;|.## ##.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x006f 'o'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 8
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 3a##a3 .|
++ |.3#a11a#3.|
++ |.a#2 2#a.|
++ |.## ##.|
++ |.## ##.|
++ |.a#2 2#a.|
++ |.3#a11a#3.|
++ -&gt;|. 3a##a3 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0070 'p'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 11
++ Advance: 10
++ Offset: 1 x -3
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.##5b#c5 .|
++ |.##a11a#4.|
++ |.##2 2#a.|
++ |.## ##.|
++ |.## ##.|
++ |.##2 2#a.|
++ |.##a11a#4.|
++ -&gt;|.##5b#c5 .|&lt;-
++ |.## .|
++ |.## .|
++ |.## .|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0071 'q'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 11
++ Advance: 10
++ Offset: 1 x -3
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 5c#b5##.|
++ |.4#a11a##.|
++ |.a#2 2##.|
++ |.## ##.|
++ |.## ##.|
++ |.a#2 2##.|
++ |.4#a11a##.|
++ -&gt;|. 5c#b5##.|&lt;-
++ |. ##.|
++ |. ##.|
++ |. ##.|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0072 'r'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 8
++ Advance: 7
++ Offset: 1 x 0
++ _______
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.##4a##|
++ |.##a2 |
++ |.##2 |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ -&gt;|.## |&lt;-
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -------
++
++Char 0x0073 's'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 8
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.19c#c93.|
++ |.b#4 14a.|
++ |.##3 .|
++ |.b###b71.|
++ |.18c###b.|
++ |. 4##.|
++ |.a41 3#a.|
++ -&gt;|.39c#c91.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0074 't'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 5 x 10
++ Advance: 6
++ Offset: 0 x 0
++ ______
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ | ## .|
++ | ## .|
++ |#####.|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | c#2 .|
++ -&gt;| 5c##.|&lt;-
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ ------
++
++Char 0x0075 'u'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 8
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## 2##.|
++ |.b#6 2a##.|
++ -&gt;|.2a##b4##.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0076 'v'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 8
++ Advance: 9
++ Offset: 0 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |b#4 4#b|
++ |5#9 9#5|
++ | ##1 1## |
++ | 8#6 6#8 |
++ | 3#b b#3 |
++ | b#5#b |
++ | 6###6 |
++ -&gt;| 1###1 |&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0077 'w'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 12 x 8
++ Advance: 14
++ Offset: 1 x 0
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |.b#2 cc 2#b.|
++ |.7#6 2##2 6#7.|
++ |.3#9 6##6 9#3.|
++ |. ## a##a ## .|
++ |. a#3#99#3#a .|
++ |. 6#a#55#a#6 .|
++ |. 2###11###2 .|
++ -&gt;|. c#b a#c .|&lt;-
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ --------------
++
++Char 0x0078 'x'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 8
++ Advance: 9
++ Offset: 0 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |8#b b#8|
++ | b#5 5#b |
++ | 2#c2c#1 |
++ | 4#c#4 |
++ | 6#c#6 |
++ | 2#c1c#2 |
++ | b#5 4#b |
++ -&gt;|8#a a#8|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0079 'y'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 11
++ Advance: 9
++ Offset: 0 x -3
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |b#4 3#b|
++ |5#9 8#6|
++ | c# c#1|
++ | 7#5 2#a |
++ | 1#a 7#5 |
++ | 9#1b# |
++ | 4#8#9 |
++ -&gt;| c##4 |&lt;-
++ | 6#c |
++ | 9#7 |
++ | a#c7 |
++ |.........|
++ |.........|
++ ---------
++
++Char 0x007a 'z'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 8
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.#######.|
++ |. 4##.|
++ |. 4##4.|
++ |. 4##4 .|
++ |. 4##3 .|
++ |.4##3 .|
++ |.##3 .|
++ -&gt;|.#######.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x007b '{'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 13
++ Advance: 10
++ Offset: 2 x -2
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.. 4c##..|
++ |.. c#4 ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. 5#b ..|
++ |..###4 ..|
++ |.. 5#b ..|
++ |.. ## ..|
++ |.. ## ..|
++ -&gt;|.. ## ..|&lt;-
++ |.. c#4 ..|
++ |.. 4c##..|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x007c '|'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 2 x 14
++ Advance: 5
++ Offset: 2 x -3
++ _____
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |..##.|
++ |..##.|
++ |..##.|
++ |..##.|
++ |..##.|
++ |..##.|
++ |..##.|
++ |..##.|
++ |..##.|
++ |..##.|
++ -&gt;|..##.|&lt;-
++ |..##.|
++ |..##.|
++ |..##.|
++ |.....|
++ |.....|
++ -----
++
++Char 0x007d '}'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 13
++ Advance: 10
++ Offset: 2 x -2
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..##c4 ..|
++ |.. 4#c ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. b#5 ..|
++ |.. 4###..|
++ |.. b#5 ..|
++ |.. ## ..|
++ |.. ## ..|
++ -&gt;|.. ## ..|&lt;-
++ |.. 4#c ..|
++ |..##c4 ..|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x007e '~'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 3
++ Advance: 12
++ Offset: 1 x 3
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |.3a#c72 3a..|
++ |.#########..|
++ |.a2 27c#a3..|
++ |............|
++ |............|
++ -&gt;|............|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x007f ''
++ Font: gulim (17)
++ Bitmap: 0 x 0
++ Advance: 17
++ Offset: 0 x 0
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x0080 '€'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 8 x 12
++ Advance: 9
++ Offset: 0 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ | #### .|
++ | ## ##.|
++ | ## .|
++ | ## .|
++ |###### .|
++ | ## .|
++ |###### .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## ##.|
++ -&gt;| #### .|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x00a0 ' '
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 0 x 0
++ Advance: 5
++ Offset: 0 x 0
++ _____
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ -&gt;|.....|&lt;-
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ -----
++
++Char 0x00a1 '¡'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 2 x 10
++ Advance: 6
++ Offset: 2 x 0
++ ______
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |..##..|
++ |..##..|
++ |.. ..|
++ |..aa..|
++ |..cc..|
++ |..##..|
++ |..##..|
++ |..##..|
++ |..##..|
++ -&gt;|..##..|&lt;-
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ ------
++
++Char 0x00a2 '¢'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 12
++ Advance: 10
++ Offset: 1 x -2
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. # ...|
++ |. # ...|
++ |. 5c#c5...|
++ |.5#b#18...|
++ |.b#3# ...|
++ |.## # ...|
++ |.## # ...|
++ |.a#3# ...|
++ |.4#b#17...|
++ -&gt;|. 4b#c5...|&lt;-
++ |. # ...|
++ |. # ...|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x00a3 '£'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 10
++ Offset: 0 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ | 18c#b4..|
++ | 9#7 18..|
++ | ## ..|
++ | ## ..|
++ | ###### ..|
++ | ## ..|
++ | ## ..|
++ | ## ..|
++ | ## ..|
++ -&gt;|########..|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x00a4 '¤'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 8
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.65 56|
++ |.5#b##b#5|
++ |. b9119b |
++ |. #1 1# |
++ |. #1 1# |
++ |. b9119b |
++ |.5#b##b#5|
++ -&gt;|.75 56|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x00a5 '¥'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.9#9 9#9.|
++ |.1##44##1.|
++ |. 5#cc#5 .|
++ |.########.|
++ |. 1##1 .|
++ |.########.|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ -&gt;|. ## .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x00a7 '§'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 11
++ Advance: 7
++ Offset: 1 x -1
++ _______
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |. 3b##b |
++ |. c#219 |
++ |. ##6 |
++ |. 8##b5 |
++ |.8#87c#8|
++ |.##1 1##|
++ |.9#c67#9|
++ |. 6c##9 |
++ |. 7#c |
++ -&gt;|. 921#c |&lt;-
++ |. b##b3 |
++ |........|
++ |........|
++ |........|
++ |........|
++ -------
++
++Char 0x00a8 '¨'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 5 x 2
++ Advance: 7
++ Offset: 1 x 9
++ _______
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.## ##.|
++ |.## ##.|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -&gt;|.......|&lt;-
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -------
++
++Char 0x00a9 '©'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 10
++ Advance: 14
++ Offset: 2 x 0
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |.. 4a##a4 ..|
++ |.. 7b4 4b7 ..|
++ |..4b18c#c b4..|
++ |..a488118 4a..|
++ |..# # #..|
++ |..# # #..|
++ |..a488 4a..|
++ |..4b18c#c b4..|
++ |.. 7b4 4b7 ..|
++ -&gt;|.. 4a##a4 ..|&lt;-
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ --------------
++
++Char 0x00aa 'ª'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 8
++ Advance: 8
++ Offset: 1 x 2
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |.ac##92.|
++ |. 4#b.|
++ |.3b####.|
++ |.c#32##.|
++ |.##17##.|
++ |.5c#7##.|
++ |. .|
++ |.#####c.|
++ |........|
++ -&gt;|........|&lt;-
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ --------
++
++Char 0x00ab '«'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 6
++ Advance: 9
++ Offset: 1 x 1
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. 8 8..|
++ |.1ac1ac..|
++ |.ca1ca1..|
++ |.ca1ca1..|
++ |.1ac1ac..|
++ |. 8 8..|
++ -&gt;|.........|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x00ac '¬'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 4
++ Advance: 12
++ Offset: 1 x 2
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |.#########..|
++ |.#########..|
++ |. ##..|
++ |. ##..|
++ |............|
++ -&gt;|............|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x00ad '­'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 4 x 2
++ Advance: 6
++ Offset: 1 x 3
++ ______
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |.####.|
++ |.####.|
++ |......|
++ |......|
++ -&gt;|......|&lt;-
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ ------
++
++Char 0x00ae '®'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 10
++ Advance: 14
++ Offset: 2 x 0
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |.. 4a##a4 ..|
++ |.. 7b4 4b7 ..|
++ |..4b ###7 b4..|
++ |..a4 # 4# 4a..|
++ |..# ###7 #..|
++ |..# #2#7 #..|
++ |..a4 # 6b 4a..|
++ |..4b # #3b4..|
++ |.. 7b4 4b7 ..|
++ -&gt;|.. 4a##a4 ..|&lt;-
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ --------------
++
++Char 0x00af '¯'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 4 x 1
++ Advance: 7
++ Offset: 2 x 9
++ _______
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |..####.|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -&gt;|.......|&lt;-
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -------
++
++Char 0x00b0 '°'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 5 x 5
++ Advance: 7
++ Offset: 1 x 5
++ _______
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.1a#a1.|
++ |.a6 6a.|
++ |.# #.|
++ |.a6 6a.|
++ |.2a#a1.|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -&gt;|.......|&lt;-
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -------
++
++Char 0x00b1 '±'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 8
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |. ## .|
++ |. ## .|
++ |.##########.|
++ |.##########.|
++ |. ## .|
++ |. ## .|
++ |.##########.|
++ -&gt;|.##########.|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x00b2 '²'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 5 x 6
++ Advance: 6
++ Offset: 1 x 4
++ ______
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |.a##c4|
++ |.812##|
++ |. 2#a|
++ |. 2ca |
++ |.5#9 |
++ |.#####|
++ |......|
++ |......|
++ |......|
++ -&gt;|......|&lt;-
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ ------
++
++Char 0x00b3 '³'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 5 x 6
++ Advance: 6
++ Offset: 1 x 4
++ ______
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |.b##c6|
++ |. 3#c|
++ |. ##c3|
++ |. 3#b|
++ |.7 3#c|
++ |.b##b4|
++ |......|
++ |......|
++ |......|
++ -&gt;|......|&lt;-
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ ------
++
++Char 0x00b4 '´'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 4 x 3
++ Advance: 7
++ Offset: 3 x 9
++ _______
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |... 4#7|
++ |...1c9 |
++ |...9a |
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -&gt;|.......|&lt;-
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -------
++
++Char 0x00b5 'µ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 11
++ Advance: 10
++ Offset: 1 x -3
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.## ## |
++ |.## ## |
++ |.## ## |
++ |.## ## |
++ |.## ## |
++ |.## ## |
++ |.##7 7##1|
++ -&gt;|.##b##b8##|&lt;-
++ |.## |
++ |.## |
++ |.## |
++ |..........|
++ |..........|
++ ----------
++
++Char 0x00b6 '¶'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 11
++ Advance: 9
++ Offset: 1 x -1
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. 7c###..|
++ |.8### #..|
++ |.#### #..|
++ |.#### #..|
++ |.8### #..|
++ |. 7c# #..|
++ |. # #..|
++ |. # #..|
++ |. # #..|
++ -&gt;|. # #..|&lt;-
++ |. # #..|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x00b7 '·'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 2 x 3
++ Advance: 5
++ Offset: 1 x 3
++ _____
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.##..|
++ |.##..|
++ |.##..|
++ |.....|
++ |.....|
++ -&gt;|.....|&lt;-
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ -----
++
++Char 0x00b8 '¸'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 3 x 3
++ Advance: 7
++ Offset: 2 x -3
++ _______
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -&gt;|.......|&lt;-
++ |.. 48..|
++ |.. 1#..|
++ |..##8..|
++ |.......|
++ |.......|
++ -------
++
++Char 0x00b9 '¹'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 5 x 6
++ Advance: 6
++ Offset: 0 x 4
++ ______
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |ca## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ####.|
++ |......|
++ |......|
++ |......|
++ -&gt;|......|&lt;-
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ ------
++
++Char 0x00ba 'º'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 8
++ Advance: 8
++ Offset: 1 x 2
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |. 9##9 .|
++ |.9#44#9.|
++ |.## ##.|
++ |.## ##.|
++ |.9#44#9.|
++ |.19##9 .|
++ |. .|
++ |.9####9.|
++ |........|
++ -&gt;|........|&lt;-
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ --------
++
++Char 0x00bb '»'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 6
++ Advance: 9
++ Offset: 1 x 1
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.8 8 ..|
++ |.ca1ca1..|
++ |.1ac1ac..|
++ |.1ac1ac..|
++ |.ca1ca1..|
++ |.8 8 ..|
++ -&gt;|.........|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x00bd '½'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 14 x 11
++ Advance: 15
++ Offset: 0 x -1
++ _______________
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |ca## 9#a .|
++ | ## 3##2 .|
++ | ## b#8 .|
++ | ## 4## .|
++ | ## c#6 .|
++ | ####6#b a##c4.|
++ | 1##4 812##.|
++ | 8#a 2#a.|
++ | 2##2 2ca .|
++ -&gt;| a#8 5#9 .|&lt;-
++ | #####.|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ ---------------
++
++Char 0x00bf '¿'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 10
++ Advance: 8
++ Offset: 1 x 0
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |. ## .|
++ |. ## .|
++ |. .|
++ |. ## .|
++ |. 8#9 .|
++ |. 9#b1 .|
++ |.9#a .|
++ |.##1 .|
++ |.a#4 39.|
++ -&gt;|.19##a4.|&lt;-
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ --------
++
++Char 0x00c0 'À'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 14
++ Advance: 11
++ Offset: 0 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ | 7#1 |
++ | 99 |
++ | |
++ | |
++ | 1###1 |
++ | 6###6 |
++ | c#4#b |
++ | 3#a a#3 |
++ | 9#4 4#9 |
++ | 1#c c#1 |
++ | 6#######6 |
++ | c#1 1#c |
++ |3#a a#3|
++ -&gt;|9#4 4#9|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x00c1 'Á'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 14
++ Advance: 11
++ Offset: 0 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ | 1#7 |
++ | 99 |
++ | |
++ | |
++ | 1###1 |
++ | 6###6 |
++ | c#4#b |
++ | 3#a a#3 |
++ | 9#4 4#9 |
++ | 1#c c#1 |
++ | 6#######6 |
++ | c#1 1#c |
++ |3#a a#3|
++ -&gt;|9#4 4#9|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x00c2 'Â'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 14
++ Advance: 11
++ Offset: 0 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ | b#b |
++ | 89 98 |
++ | |
++ | |
++ | 1###1 |
++ | 6###6 |
++ | c#4#b |
++ | 3#a a#3 |
++ | 9#4 4#9 |
++ | 1#c c#1 |
++ | 6#######6 |
++ | c#1 1#c |
++ |3#a a#3|
++ -&gt;|9#4 4#9|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x00c3 'Ã'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 14
++ Advance: 11
++ Offset: 0 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ | 6#73b |
++ | b27#5 |
++ | |
++ | |
++ | 1###1 |
++ | 6###6 |
++ | c#4#b |
++ | 3#a a#3 |
++ | 9#4 4#9 |
++ | 1#c c#1 |
++ | 6#######6 |
++ | c#1 1#c |
++ |3#a a#3|
++ -&gt;|9#4 4#9|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x00c4 'Ä'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 14
++ Advance: 11
++ Offset: 0 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ | c#3#c |
++ | c#3#c |
++ | |
++ | |
++ | 1###1 |
++ | 6###6 |
++ | c#4#b |
++ | 3#a a#3 |
++ | 9#4 4#9 |
++ | 1#c c#1 |
++ | 6#######6 |
++ | c#1 1#c |
++ |3#a a#3|
++ -&gt;|9#4 4#9|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x00c5 'Å'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 13
++ Advance: 11
++ Offset: 0 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ | 2b#b2 |
++ | c4 4c |
++ | c4 4c |
++ | 6#8#6 |
++ | b# #b |
++ | 2#8 8#2 |
++ | 8#3 4#8 |
++ | c# #c |
++ | 4#8 8#4 |
++ | 9#######9 |
++ |1#c c#1|
++ |6#8 8#6|
++ -&gt;|b#3 3#b|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x00c6 'Æ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 14 x 10
++ Advance: 15
++ Offset: 0 x 0
++ _______________
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ | c#c#######.|
++ | 4#b ## .|
++ | a#5 ## .|
++ | 2#c ## .|
++ | 8#6 #######.|
++ | 1## ## .|
++ | 6####### .|
++ | c#3 ## .|
++ |4#b ## .|
++ -&gt;|a#5 #######.|&lt;-
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ ---------------
++
++Char 0x00c7 'Ç'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 13
++ Advance: 11
++ Offset: 1 x -3
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |. 39c##c9.|
++ |. 7#82 14a.|
++ |.5#9 .|
++ |.a#2 .|
++ |.## .|
++ |.## .|
++ |.a#2 .|
++ |.5#9 .|
++ |. 7#82 14a.|
++ -&gt;|. 39c##ca.|&lt;-
++ |. 48 .|
++ |. 1# .|
++ |. ##8 .|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x00c8 'È'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 14
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |. 7#1 .|
++ |. 99 .|
++ |. .|
++ |. .|
++ |.#######.|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.#######.|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ -&gt;|.#######.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x00c9 'É'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 14
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |. 1#7 .|
++ |. 99 .|
++ |. .|
++ |. .|
++ |.#######.|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.#######.|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ -&gt;|.#######.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x00ca 'Ê'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 14
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |. b#b .|
++ |. 89 98 .|
++ |. .|
++ |. .|
++ |.#######.|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.#######.|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ -&gt;|.#######.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x00cb 'Ë'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 14
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |. ## ## .|
++ |. ## ## .|
++ |. .|
++ |. .|
++ |.#######.|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.#######.|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ -&gt;|.#######.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x00cc 'Ì'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 3 x 14
++ Advance: 4
++ Offset: 0 x 0
++ ____
++ |....|
++ |....|
++ |....|
++ |7#1.|
++ | 99.|
++ | .|
++ | .|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ -&gt;| ##.|&lt;-
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ ----
++
++Char 0x00cd 'Í'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 3 x 14
++ Advance: 4
++ Offset: 1 x 0
++ ____
++ |....|
++ |....|
++ |....|
++ |.1#7|
++ |.99 |
++ |. |
++ |. |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ -&gt;|.## |&lt;-
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ ----
++
++Char 0x00ce 'Î'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 14
++ Advance: 4
++ Offset: -1 x 0
++ ____
++ |......|
++ |......|
++ |......|
++ | 5##5 |
++ |2c33c2|
++ | |
++ | |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ -&gt;| ## |&lt;-
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ ----
++
++Char 0x00cf 'Ï'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 14
++ Advance: 4
++ Offset: -1 x 0
++ ____
++ |......|
++ |......|
++ |......|
++ |## ##|
++ |## ##|
++ | |
++ | |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ -&gt;| ## |&lt;-
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ ----
++
++Char 0x00d0 'Ð'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 10
++ Advance: 11
++ Offset: 0 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ | ####c94 .|
++ | ## 28#8 .|
++ | ## 8#5.|
++ | ## 2#a.|
++ |##### ##.|
++ | ## ##.|
++ | ## 2#a.|
++ | ## 9#5.|
++ | ## 28#8 .|
++ -&gt;| ####c94 .|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x00d1 'Ñ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 14
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |. 7#71# .|
++ |. #27#7 .|
++ |. .|
++ |. .|
++ |.##8 ##.|
++ |.###3 ##.|
++ |.###b ##.|
++ |.##5#6 ##.|
++ |.## a#1 ##.|
++ |.## 2#a ##.|
++ |.## 7#5##.|
++ |.## bc##.|
++ |.## 3###.|
++ -&gt;|.## 8##.|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x00d2 'Ò'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 14
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |. 7#1 .|
++ |. 99 .|
++ |. .|
++ |. .|
++ |. 6b##b6 .|
++ |. a#6 6#a .|
++ |.6#7 7#6.|
++ |.b#2 2#b.|
++ |.## ##.|
++ |.## ##.|
++ |.b#2 2#b.|
++ |.6#7 7#6.|
++ |. a#5 6#a .|
++ -&gt;|. 6b##b6 .|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x00d3 'Ó'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 14
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |. 1#7 .|
++ |. 99 .|
++ |. .|
++ |. .|
++ |. 6b##b6 .|
++ |. a#6 6#a .|
++ |.6#7 7#6.|
++ |.b#2 2#b.|
++ |.## ##.|
++ |.## ##.|
++ |.b#2 2#b.|
++ |.6#7 7#6.|
++ |. a#5 6#a .|
++ -&gt;|. 6b##b6 .|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x00d4 'Ô'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 14
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |. b#b .|
++ |. 89 98 .|
++ |. .|
++ |. .|
++ |. 6b##b6 .|
++ |. a#6 6#a .|
++ |.6#7 7#6.|
++ |.b#2 2#b.|
++ |.## ##.|
++ |.## ##.|
++ |.b#2 2#b.|
++ |.6#7 7#6.|
++ |. a#5 6#a .|
++ -&gt;|. 6b##b6 .|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x00d5 'Õ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 14
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |. 8c2b .|
++ |. b2c8 .|
++ |. .|
++ |. .|
++ |. 6b##b6 .|
++ |. a#6 6#a .|
++ |.6#7 7#6.|
++ |.b#2 2#b.|
++ |.## ##.|
++ |.## ##.|
++ |.b#2 2#b.|
++ |.6#7 7#6.|
++ |. a#5 6#a .|
++ -&gt;|. 6b##b6 .|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x00d6 'Ö'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 14
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |. ## ## .|
++ |. ## ## .|
++ |. .|
++ |. .|
++ |. 6b##b6 .|
++ |. a#6 6#a .|
++ |.6#7 7#6.|
++ |.b#2 2#b.|
++ |.## ##.|
++ |.## ##.|
++ |.b#2 2#b.|
++ |.6#7 7#6.|
++ |. a#5 6#a .|
++ -&gt;|. 6b##b6 .|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x00d7 '×'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 8
++ Advance: 12
++ Offset: 2 x 1
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |..58 85..|
++ |..8#8 8#8..|
++ |.. 8#88#8 ..|
++ |.. 8##8 ..|
++ |.. 8##8 ..|
++ |.. 8#88#8 ..|
++ |..8#8 8#8..|
++ |..58 85..|
++ -&gt;|............|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x00d8 'Ø'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 12 x 12
++ Advance: 12
++ Offset: 0 x -1
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ | 1 |
++ | 4a##a43b1|
++ | 8#6 6##3 |
++ | 4#7 6##5 |
++ | a#2 6#7#a |
++ | c# 6#5 ## |
++ | ## 6#5 #c |
++ | c#8#5 2#a |
++ | 6##5 7#4 |
++ | 4##6 6#8 |
++ -&gt;|2c76b##a4 |&lt;-
++ | 1 |
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x00d9 'Ù'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 14
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |. 7#1 .|
++ |. 99 .|
++ |. .|
++ |. .|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.c#1 1#c.|
++ |.6#91 19#6.|
++ -&gt;|. 5a###a5 .|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x00da 'Ú'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 14
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |. 1#7 .|
++ |. 99 .|
++ |. .|
++ |. .|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.c#1 1#c.|
++ |.6#91 19#6.|
++ -&gt;|. 5a###a5 .|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x00db 'Û'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 14
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |. b#b .|
++ |. 89 98 .|
++ |. .|
++ |. .|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.c#1 1#c.|
++ |.6#91 19#6.|
++ -&gt;|. 5a###a5 .|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x00dc 'Ü'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 14
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |. ## ## .|
++ |. ## ## .|
++ |. .|
++ |. .|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.c#1 1#c.|
++ |.6#91 19#6.|
++ -&gt;|. 5a###a5 .|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x00dd 'Ý'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 14
++ Advance: 10
++ Offset: 0 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ | 1#7 |
++ | 99 |
++ | |
++ | |
++ |9#9 9#9|
++ | c#3 3#c |
++ | 3#a a#3 |
++ | 8#44#8 |
++ | bccb |
++ | 2##2 |
++ | ## |
++ | ## |
++ | ## |
++ -&gt;| ## |&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x00de 'Þ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.## .|
++ |.#####b6 .|
++ |.## 19#6.|
++ |.## 2#c.|
++ |.## ##.|
++ |.## 1#c.|
++ |.## 19#6.|
++ |.#####b6 .|
++ |.## .|
++ -&gt;|.## .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x00df 'ß'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 11
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.18c#c81 .|
++ |.a#6 5#a .|
++ |.## 3## .|
++ |.## 5#b6 .|
++ |.## c#1 .|
++ |.## ##7 .|
++ |.## 9##a1.|
++ |.## 1a##a.|
++ |.## 5##.|
++ |.## 3#b.|
++ -&gt;|.## c##a2.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x00e0 'à'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 12
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. 7#4 .|
++ |. 9c1 .|
++ |. a9 .|
++ |. .|
++ |. 6##c8 .|
++ |. 62 5#8.|
++ |. #c.|
++ |.29#####.|
++ |.b#5 ##.|
++ |.## 2##.|
++ |.b#4 9##.|
++ -&gt;|.2b#c5##.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x00e1 'á'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 12
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. 4#7.|
++ |. 1c9 .|
++ |. 9a .|
++ |. .|
++ |. 6##c8 .|
++ |. 62 5#8.|
++ |. #c.|
++ |.29#####.|
++ |.b#5 ##.|
++ |.## 2##.|
++ |.b#4 9##.|
++ -&gt;|.2b#c5##.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x00e2 'â'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 12
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. 8#8 .|
++ |. 2#7#2 .|
++ |. a7 7a .|
++ |. .|
++ |. 6##c8 .|
++ |. 62 5#8.|
++ |. #c.|
++ |.29#####.|
++ |.b#5 ##.|
++ |.## 2##.|
++ |.b#4 9##.|
++ -&gt;|.2b#c5##.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x00e3 'ã'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 12
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. 7a a .|
++ |. b54b .|
++ |. a a7 .|
++ |. .|
++ |. 6##c8 .|
++ |. 62 5#8.|
++ |. #c.|
++ |.29#####.|
++ |.b#5 ##.|
++ |.## 2##.|
++ |.b#4 9##.|
++ -&gt;|.2b#c5##.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x00e4 'ä'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 11
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. ## ## .|
++ |. ## ## .|
++ |. .|
++ |. 6##c8 .|
++ |. 62 5#8.|
++ |. #c.|
++ |.29#####.|
++ |.b#5 ##.|
++ |.## 2##.|
++ |.b#4 9##.|
++ -&gt;|.2b#c5##.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x00e5 'å'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 13
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. 4cc4 .|
++ |. c33c .|
++ |. c33c .|
++ |. 4cc4 .|
++ |. .|
++ |. 6##c8 .|
++ |. 62 5#8.|
++ |. #c.|
++ |.29#####.|
++ |.b#5 ##.|
++ |.## 2##.|
++ |.b#4 9##.|
++ -&gt;|.2b#c5##.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x00e6 'æ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 14 x 8
++ Advance: 16
++ Offset: 1 x 0
++ ________________
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |. 4###b63a##a3 .|
++ |. 74 6##a1 8#4.|
++ |. ##2 #b.|
++ |.18c###########.|
++ |.a#7 ## .|
++ |.## 4##4 .|
++ |.a#6 2c##c2 15a.|
++ -&gt;|.19##c827b##c83.|&lt;-
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ ----------------
++
++Char 0x00e7 'ç'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 11
++ Advance: 9
++ Offset: 1 x -3
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. 29c#b4.|
++ |.2#c3 29.|
++ |.a#3 .|
++ |.## .|
++ |.## .|
++ |.a#3 .|
++ |.3#c3 28.|
++ -&gt;|. 29c#b4.|&lt;-
++ |. 48 .|
++ |. 1# .|
++ |. ##8 .|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x00e8 'è'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 12
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 7#4 .|
++ |. 9c1 .|
++ |. a9 .|
++ |. .|
++ |. 3a##b4 .|
++ |.3#a1 8#5.|
++ |.a#2 #b.|
++ |.########.|
++ |.## .|
++ |.a#4 .|
++ |.3#b2 15a.|
++ -&gt;|. 29c#c93.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x00e9 'é'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 12
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 4#7 .|
++ |. 1c9 .|
++ |. 9a .|
++ |. .|
++ |. 3a##b4 .|
++ |.3#a1 8#5.|
++ |.a#2 #b.|
++ |.########.|
++ |.## .|
++ |.a#4 .|
++ |.3#b2 15a.|
++ -&gt;|. 29c#c93.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x00ea 'ê'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 12
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 8#8 .|
++ |. 2#7#2 .|
++ |. a7 7a .|
++ |. .|
++ |. 3a##b4 .|
++ |.3#a1 8#5.|
++ |.a#2 #b.|
++ |.########.|
++ |.## .|
++ |.a#4 .|
++ |.3#b2 15a.|
++ -&gt;|. 29c#c93.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x00eb 'ë'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 11
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. ## ## .|
++ |. ## ## .|
++ |. .|
++ |. 3a##b4 .|
++ |.3#a1 8#5.|
++ |.a#2 #b.|
++ |.########.|
++ |.## .|
++ |.a#4 .|
++ |.3#b2 15a.|
++ -&gt;|. 29c#c93.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x00ec 'ì'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 4 x 12
++ Advance: 4
++ Offset: 0 x 0
++ ____
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |7#4 |
++ | 9c1|
++ | a9|
++ | |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ -&gt;| ## |&lt;-
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ ----
++
++Char 0x00ed 'í'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 5 x 12
++ Advance: 4
++ Offset: 1 x 0
++ ____
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |. 4#7|
++ |. 1c9 |
++ |. 9a |
++ |. |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ -&gt;|.## |&lt;-
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ ----
++
++Char 0x00ee 'î'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 12
++ Advance: 4
++ Offset: -1 x 0
++ ____
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ | 1##1 |
++ | 9aa9 |
++ |3c11c3|
++ | |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ -&gt;| ## |&lt;-
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ ----
++
++Char 0x00ef 'ï'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 11
++ Advance: 4
++ Offset: -1 x 0
++ ____
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |## ##|
++ |## ##|
++ | |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ -&gt;| ## |&lt;-
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ ----
++
++Char 0x00f0 'ð'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 11
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 3##5393.|
++ |. 6##c5 .|
++ |. ac9#c1 .|
++ |. 3 9#9 .|
++ |. 6b####4.|
++ |.7#91 5#a.|
++ |.c#1 ##.|
++ |.## ##.|
++ |.b#2 2#b.|
++ |.4#a11a#4.|
++ -&gt;|. 4a##a4 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x00f1 'ñ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 12
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 5c3 # .|
++ |. b3a3b .|
++ |. # 3#5 .|
++ |. .|
++ |.##4a##a2.|
++ |.##b2 6#a.|
++ |.##2 ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ -&gt;|.## ##.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x00f2 'ò'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 12
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 7#4 .|
++ |. 9c1 .|
++ |. a9 .|
++ |. .|
++ |. 3a##a3 .|
++ |.3#a11a#3.|
++ |.a#2 2#a.|
++ |.## ##.|
++ |.## ##.|
++ |.a#2 2#a.|
++ |.3#a11a#3.|
++ -&gt;|. 3a##a3 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x00f3 'ó'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 12
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 4#7 .|
++ |. 1c9 .|
++ |. 9a .|
++ |. .|
++ |. 3a##a3 .|
++ |.3#a11a#3.|
++ |.a#2 2#a.|
++ |.## ##.|
++ |.## ##.|
++ |.a#2 2#a.|
++ |.3#a11a#3.|
++ -&gt;|. 3a##a3 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x00f4 'ô'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 12
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 1##1 .|
++ |. 8aa9 .|
++ |. 2#11c3 .|
++ |. .|
++ |. 3a##a3 .|
++ |.3#a11a#3.|
++ |.a#2 2#a.|
++ |.## ##.|
++ |.## ##.|
++ |.a#2 2#a.|
++ |.3#a11a#3.|
++ -&gt;|. 3a##a3 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x00f5 'õ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 12
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 4#8 3# .|
++ |. b5765b .|
++ |. #2 8#4 .|
++ |. .|
++ |. 3a##a3 .|
++ |.3#a11a#3.|
++ |.a#2 2#a.|
++ |.## ##.|
++ |.## ##.|
++ |.a#2 2#a.|
++ |.3#a11a#3.|
++ -&gt;|. 3a##a3 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x00f6 'ö'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 11
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. ## ## .|
++ |. ## ## .|
++ |. .|
++ |. 3a##a3 .|
++ |.3#a11a#3.|
++ |.a#2 2#a.|
++ |.## ##.|
++ |.## ##.|
++ |.a#2 2#a.|
++ |.3#a11a#3.|
++ -&gt;|. 3a##a3 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x00f7 '÷'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 8
++ Advance: 12
++ Offset: 2 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ..|
++ |..########..|
++ |..########..|
++ |.. ..|
++ |.. ## ..|
++ -&gt;|.. ## ..|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x00f8 'ø'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 10
++ Offset: 1 x -1
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 2.|
++ |. 29##c87.|
++ |.2#a11##4.|
++ |.9#2 8##a.|
++ |.## 6#3##.|
++ |.##4#5 ##.|
++ |.a##7 2#9.|
++ |.5#c11a#2.|
++ -&gt;|.778##92 .|&lt;-
++ |.3 .|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x00f9 'ù'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 12
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 7#4 .|
++ |. 9c1 .|
++ |. a9 .|
++ |. .|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## 2##.|
++ |.b#6 2a##.|
++ -&gt;|.2a##b4##.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x00fa 'ú'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 12
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 4#7.|
++ |. 1c9 .|
++ |. 9a .|
++ |. .|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## 2##.|
++ |.b#6 2a##.|
++ -&gt;|.2a##b4##.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x00fb 'û'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 12
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 1##1 .|
++ |. 9aa9 .|
++ |. 3c11c3 .|
++ |. .|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## 2##.|
++ |.b#6 2a##.|
++ -&gt;|.2a##b4##.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x00fc 'ü'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 11
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. ## ## .|
++ |. ## ## .|
++ |. .|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## 2##.|
++ |.b#6 2a##.|
++ -&gt;|.2a##b4##.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x00fd 'ý'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 15
++ Advance: 9
++ Offset: 0 x -3
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ | 4#7 |
++ | 1c9 |
++ | 9a |
++ | |
++ |b#4 3#b|
++ |5#9 8#6|
++ | c# c#1|
++ | 7#5 2#a |
++ | 1#a 7#5 |
++ | 9#1b# |
++ | 4#8#9 |
++ -&gt;| c##4 |&lt;-
++ | 6#c |
++ | 9#7 |
++ | a#c7 |
++ |.........|
++ |.........|
++ ---------
++
++Char 0x00fe 'þ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 14
++ Advance: 10
++ Offset: 1 x -3
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.##5b#c5 .|
++ |.##a11a#4.|
++ |.##2 2#a.|
++ |.## ##.|
++ |.## ##.|
++ |.##2 2#a.|
++ |.##a11a#4.|
++ -&gt;|.##5b#c5 .|&lt;-
++ |.## .|
++ |.## .|
++ |.## .|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x00ff 'ÿ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 14
++ Advance: 9
++ Offset: 0 x -3
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ | ## ## |
++ | ## ## |
++ | |
++ |b#4 3#b|
++ |5#9 8#6|
++ | c# c#1|
++ | 7#5 2#a |
++ | 1#a 7#5 |
++ | 9#1b# |
++ | 4#8#9 |
++ -&gt;| c##4 |&lt;-
++ | 6#c |
++ | 9#7 |
++ | a#c7 |
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0101 'ā'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 10
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. #### .|
++ |. .|
++ |. 6##c8 .|
++ |. 62 5#8.|
++ |. #c.|
++ |.29#####.|
++ |.b#5 ##.|
++ |.## 2##.|
++ |.b#4 9##.|
++ -&gt;|.2b#c5##.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0102 'Ă'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 13
++ Advance: 11
++ Offset: 0 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ | a5 5a |
++ | 3b#b3 |
++ | |
++ | 1###1 |
++ | 6###6 |
++ | c#4#b |
++ | 3#a a#3 |
++ | 9#4 4#9 |
++ | 1#c c#1 |
++ | 6#######6 |
++ | c#1 1#c |
++ |3#a a#3|
++ -&gt;|9#4 4#9|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0103 'ă'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 11
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. c4 4c .|
++ |. 4b#b3 .|
++ |. .|
++ |. 6##c8 .|
++ |. 62 5#8.|
++ |. #c.|
++ |.29#####.|
++ |.b#5 ##.|
++ |.## 2##.|
++ |.b#4 9##.|
++ -&gt;|.2b#c5##.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0104 'Ą'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 13
++ Advance: 11
++ Offset: 0 x -3
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ | 1###1 |
++ | 6###6 |
++ | c#4#b |
++ | 3#a a#3 |
++ | 9#4 4#9 |
++ | 1#c c#1 |
++ | 6#######6 |
++ | c#1 1#c |
++ |3#a a#3|
++ -&gt;|9#4 4#9|&lt;-
++ | 84 |
++ | #1 |
++ | 8## |
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0105 'ą'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 11
++ Advance: 9
++ Offset: 1 x -3
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. 6##c8 .|
++ |. 62 5#8.|
++ |. #c.|
++ |.29#####.|
++ |.b#5 ##.|
++ |.## 2##.|
++ |.b#4 9##.|
++ -&gt;|.2b#c5##.|&lt;-
++ |. 84 .|
++ |. #1 .|
++ |. 8##.|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0106 'Ć'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 14
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |. 1#7 .|
++ |. 99 .|
++ |. .|
++ |. .|
++ |. 39c##c9.|
++ |. 7#82 14a.|
++ |.5#9 .|
++ |.a#2 .|
++ |.## .|
++ |.## .|
++ |.a#2 .|
++ |.5#9 .|
++ |. 7#82 14a.|
++ -&gt;|. 39c##ca.|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0107 'ć'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 12
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. 4#7.|
++ |. 1c9 .|
++ |. 9a .|
++ |. .|
++ |. 29c#b4.|
++ |.2#c3 29.|
++ |.a#3 .|
++ |.## .|
++ |.## .|
++ |.a#3 .|
++ |.3#c3 28.|
++ -&gt;|. 29c#b4.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0108 'Ĉ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 14
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |. b#b .|
++ |. 89 98 .|
++ |. .|
++ |. .|
++ |. 39c##c9.|
++ |. 7#82 14a.|
++ |.5#9 .|
++ |.a#2 .|
++ |.## .|
++ |.## .|
++ |.a#2 .|
++ |.5#9 .|
++ |. 7#82 14a.|
++ -&gt;|. 39c##ca.|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0109 'ĉ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 12
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. 8#8 .|
++ |. 2#7#2.|
++ |. a7 7a.|
++ |. .|
++ |. 29c#b4.|
++ |.2#c3 29.|
++ |.a#3 .|
++ |.## .|
++ |.## .|
++ |.a#3 .|
++ |.3#c3 28.|
++ -&gt;|. 29c#b4.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x010c 'Č'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 14
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |. 89 98 .|
++ |. b#b .|
++ |. .|
++ |. .|
++ |. 39c##c9.|
++ |. 7#82 14a.|
++ |.5#9 .|
++ |.a#2 .|
++ |.## .|
++ |.## .|
++ |.a#2 .|
++ |.5#9 .|
++ |. 7#82 14a.|
++ -&gt;|. 39c##ca.|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x010d 'č'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 12
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. a7 7a .|
++ |. 2#7#2 .|
++ |. 8#8 .|
++ |. .|
++ |. 29c#b4.|
++ |.2#c3 29.|
++ |.a#3 .|
++ |.## .|
++ |.## .|
++ |.a#3 .|
++ |.3#c3 28.|
++ -&gt;|. 29c#b4.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x010e 'Ď'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 14
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |. 89 98 .|
++ |. b#b .|
++ |. .|
++ |. .|
++ |.####c94 .|
++ |.## 29#8 .|
++ |.## 9#5.|
++ |.## 2#a.|
++ |.## ##.|
++ |.## ##.|
++ |.## 2#a.|
++ |.## 9#5.|
++ |.## 29#8 .|
++ -&gt;|.####c94 .|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x010f 'ď'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 11
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |. ##8b|
++ |. ##a7|
++ |. ##c3|
++ |. 5c#b5## |
++ |.4#a11a## |
++ |.a#2 2## |
++ |.## ## |
++ |.## ## |
++ |.a#2 2## |
++ |.4#a11a## |
++ -&gt;|. 5c#b5## |&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ ----------
++
++Char 0x0110 'Đ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 10
++ Advance: 12
++ Offset: 0 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ | ####c94 ..|
++ | ## 28#8 ..|
++ | ## 8#5..|
++ | ## 2#a..|
++ |##### ##..|
++ | ## ##..|
++ | ## 2#a..|
++ | ## 9#5..|
++ | ## 28#8 ..|
++ -&gt;| ####c94 ..|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x0111 'đ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 11
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. ## |
++ |. #####|
++ |. ## |
++ |. 5c#b5## |
++ |.4#a11a## |
++ |.a#2 2## |
++ |.## ## |
++ |.## ## |
++ |.a#2 2## |
++ |.4#a11a## |
++ -&gt;|. 5c#b5## |&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0113 'ē'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. #### .|
++ |. .|
++ |. 3a##b4 .|
++ |.3#a1 8#5.|
++ |.a#2 #b.|
++ |.########.|
++ |.## .|
++ |.a#4 .|
++ |.3#b2 15a.|
++ -&gt;|. 29c#c93.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0117 'ė'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 11
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. ## .|
++ |. ## .|
++ |. .|
++ |. 3a##b4 .|
++ |.3#a1 8#5.|
++ |.a#2 #b.|
++ |.########.|
++ |.## .|
++ |.a#4 .|
++ |.3#b2 15a.|
++ -&gt;|. 29c#c93.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0118 'Ę'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 13
++ Advance: 9
++ Offset: 1 x -3
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.#######.|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.#######.|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ -&gt;|.#######.|&lt;-
++ |. 84 .|
++ |. #1 .|
++ |. 8##.|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0119 'ę'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 11
++ Advance: 10
++ Offset: 1 x -3
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 3a##b4 .|
++ |.3#a1 8#5.|
++ |.a#2 #b.|
++ |.########.|
++ |.## .|
++ |.a#4 .|
++ |.3#b2 15a.|
++ -&gt;|. 29c#c93.|&lt;-
++ |. 84 .|
++ |. #1 .|
++ |. 8## .|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x011a 'Ě'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 14
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |. 89 98 .|
++ |. b#b .|
++ |. .|
++ |. .|
++ |.#######.|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.#######.|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ -&gt;|.#######.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x011b 'ě'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 12
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. a7 7a .|
++ |. 2#7#2 .|
++ |. 8#8 .|
++ |. .|
++ |. 3a##b4 .|
++ |.3#a1 8#5.|
++ |.a#2 #b.|
++ |.########.|
++ |.## .|
++ |.a#4 .|
++ |.3#b2 15a.|
++ -&gt;|. 29c#c93.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x011d 'ĝ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 15
++ Advance: 10
++ Offset: 1 x -3
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 8#8 .|
++ |. 2#7#2 .|
++ |. a7 7a .|
++ |. .|
++ |. 4c#b5##.|
++ |.4#a11a##.|
++ |.a#2 3##.|
++ |.## ##.|
++ |.## ##.|
++ |.a#2 3##.|
++ |.4#a11a##.|
++ -&gt;|. 4c#b5##.|&lt;-
++ |. 2#b.|
++ |. 92 1a#5.|
++ |. 4b##a4 .|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x011e 'Ğ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 14
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |. c5 5c .|
++ |. 3b#b3 .|
++ |. .|
++ |. .|
++ |. 4ac##c9 .|
++ |. 9#71 14a .|
++ |.5#8 .|
++ |.b#2 .|
++ |.## ####.|
++ |.## ##.|
++ |.a#3 ##.|
++ |.5#9 ##.|
++ |. 8#a3 2##.|
++ -&gt;|. 49c##ca8.|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x011f 'ğ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 14
++ Advance: 10
++ Offset: 1 x -3
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. c4 4c .|
++ |. 4b#b3 .|
++ |. .|
++ |. 4c#b5##.|
++ |.4#a11a##.|
++ |.a#2 3##.|
++ |.## ##.|
++ |.## ##.|
++ |.a#2 3##.|
++ |.4#a11a##.|
++ -&gt;|. 4c#b5##.|&lt;-
++ |. 2#b.|
++ |. 92 1a#5.|
++ |. 4b##a4 .|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x012a 'Ī'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 4 x 12
++ Advance: 4
++ Offset: 0 x 0
++ ____
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |####|
++ | |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ -&gt;| ## |&lt;-
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ ----
++
++Char 0x012b 'ī'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 4 x 10
++ Advance: 4
++ Offset: 0 x 0
++ ____
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |####|
++ | |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ -&gt;| ## |&lt;-
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ ----
++
++Char 0x012e 'Į'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 4 x 13
++ Advance: 4
++ Offset: 1 x -3
++ ____
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ -&gt;|.## |&lt;-
++ |. 84 |
++ |. #1 |
++ |. 8##|
++ |.....|
++ |.....|
++ ----
++
++Char 0x012f 'į'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 4 x 14
++ Advance: 4
++ Offset: 1 x -3
++ ____
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.## |
++ |.## |
++ |. |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ -&gt;|.## |&lt;-
++ |. 84 |
++ |. #1 |
++ |. 8##|
++ |.....|
++ |.....|
++ ----
++
++Char 0x0130 'İ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 2 x 14
++ Advance: 4
++ Offset: 1 x 0
++ ____
++ |....|
++ |....|
++ |....|
++ |.##.|
++ |.##.|
++ |. .|
++ |. .|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ -&gt;|.##.|&lt;-
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ ----
++
++Char 0x0131 'ı'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 2 x 8
++ Advance: 4
++ Offset: 1 x 0
++ ____
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ -&gt;|.##.|&lt;-
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ ----
++
++Char 0x0139 'Ĺ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 14
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.1#7 .|
++ |.99 .|
++ |. .|
++ |. .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ -&gt;|.#######.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x013a 'ĺ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 3 x 14
++ Advance: 4
++ Offset: 1 x 0
++ ____
++ |....|
++ |....|
++ |....|
++ |.1#7|
++ |.99 |
++ |. |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ -&gt;|.## |&lt;-
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ ----
++
++Char 0x013c 'ļ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 3 x 14
++ Advance: 4
++ Offset: 1 x -3
++ ____
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ -&gt;|.## |&lt;-
++ |. |
++ |.7#8|
++ |.ba |
++ |....|
++ |....|
++ ----
++
++Char 0x013d 'Ľ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 11
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. 8b.|
++ |.## a7.|
++ |.## c3.|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ -&gt;|.#######.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x013e 'ľ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 5 x 11
++ Advance: 7
++ Offset: 1 x 0
++ _______
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.## 8b.|
++ |.## a7.|
++ |.## c3.|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ -&gt;|.## .|&lt;-
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -------
++
++Char 0x0141 'Ł'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 10
++ Advance: 9
++ Offset: -1 x 0
++ _________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ | ## .|
++ | ## .|
++ | ##1b6 .|
++ | ####6 .|
++ | ##b2 .|
++ | 3## .|
++ |4### .|
++ |19## .|
++ | ## .|
++ -&gt;| #######.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ---------
++
++Char 0x0142 'ł'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 5 x 11
++ Advance: 4
++ Offset: 0 x 0
++ ____
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ | ## |
++ | ## |
++ | ## |
++ | ##a3|
++ | ##b2|
++ |9## |
++ |a## |
++ | ## |
++ | ## |
++ | ## |
++ -&gt;| ## |&lt;-
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ ----
++
++Char 0x0143 'Ń'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 14
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |. 1#7 .|
++ |. 99 .|
++ |. .|
++ |. .|
++ |.##8 ##.|
++ |.###3 ##.|
++ |.###b ##.|
++ |.##5#6 ##.|
++ |.## a#1 ##.|
++ |.## 2#a ##.|
++ |.## 7#5##.|
++ |.## bc##.|
++ |.## 3###.|
++ -&gt;|.## 8##.|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0144 'ń'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 12
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 4#7 .|
++ |. 1c9 .|
++ |. 9a .|
++ |. .|
++ |.##4a##a2.|
++ |.##b2 6#a.|
++ |.##2 ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ -&gt;|.## ##.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0147 'Ň'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 14
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |. 89 98 .|
++ |. b#b .|
++ |. .|
++ |. .|
++ |.##8 ##.|
++ |.###3 ##.|
++ |.###b ##.|
++ |.##5#6 ##.|
++ |.## a#1 ##.|
++ |.## 2#a ##.|
++ |.## 7#5##.|
++ |.## bc##.|
++ |.## 3###.|
++ -&gt;|.## 8##.|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0148 'ň'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 12
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. a7 7a .|
++ |. 2#7#2 .|
++ |. 8#8 .|
++ |. .|
++ |.##4a##a2.|
++ |.##b2 6#a.|
++ |.##2 ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ -&gt;|.## ##.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0150 'Ő'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 14
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |. 1#71#7 .|
++ |. 99 99 .|
++ |. .|
++ |. .|
++ |. 6b##b6 .|
++ |. a#6 6#a .|
++ |.6#7 7#6.|
++ |.b#2 2#b.|
++ |.## ##.|
++ |.## ##.|
++ |.b#2 2#b.|
++ |.6#7 7#6.|
++ |. a#5 6#a .|
++ -&gt;|. 6b##b6 .|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x0151 'ő'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 12
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. b9 a9 .|
++ |. 4#13#1 .|
++ |. a6 a6 .|
++ |. .|
++ |. 3a##a3 .|
++ |.3#a11a#3.|
++ |.a#2 2#a.|
++ |.## ##.|
++ |.## ##.|
++ |.a#2 2#a.|
++ |.3#a11a#3.|
++ -&gt;|. 3a##a3 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0152 'Œ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 15 x 10
++ Advance: 17
++ Offset: 1 x 0
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. 27b##########.|
++ |. 6#b51 ## .|
++ |.4#a ## .|
++ |.a#3 ## .|
++ |.## #######.|
++ |.## ## .|
++ |.a#3 ## .|
++ |.4#a ## .|
++ |. 6#b51 ## .|
++ -&gt;|. 28b##########.|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x0153 'œ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 14 x 8
++ Advance: 16
++ Offset: 1 x 0
++ ________________
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |. 3a##c77c##a4 .|
++ |.3#a11a##a1 8#4.|
++ |.a#2 2##2 #b.|
++ |.## ########.|
++ |.## ## .|
++ |.a#2 2##4 .|
++ |.3#a11a##b2 15a.|
++ -&gt;|. 3a##b54a##c83.|&lt;-
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ ----------------
++
++Char 0x0154 'Ŕ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 14
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |. 1#7 |
++ |. 99 |
++ |. |
++ |. |
++ |.#####c8 |
++ |.## 18#9 |
++ |.## ## |
++ |.## #c |
++ |.## 18#8 |
++ |.######c |
++ |.## 2a#5 |
++ |.## 1#c |
++ |.## 9#4|
++ -&gt;|.## 4#a|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0155 'ŕ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 12
++ Advance: 7
++ Offset: 1 x 0
++ _______
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |. 4#7|
++ |. 1c9 |
++ |. 9a |
++ |. |
++ |.##4a## |
++ |.##a2 |
++ |.##2 |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ -&gt;|.## |&lt;-
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ -------
++
++Char 0x0158 'Ř'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 14
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |. 89 98 |
++ |. b#b |
++ |. |
++ |. |
++ |.#####c8 |
++ |.## 18#9 |
++ |.## ## |
++ |.## #c |
++ |.## 18#8 |
++ |.######c |
++ |.## 2a#5 |
++ |.## 1#c |
++ |.## 9#4|
++ -&gt;|.## 4#a|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0159 'ř'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 12
++ Advance: 7
++ Offset: 1 x 0
++ _______
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |. a7 7a|
++ |. 2#7#2|
++ |. 8#8 |
++ |. |
++ |.##4a##|
++ |.##a2 |
++ |.##2 |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ -&gt;|.## |&lt;-
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -------
++
++Char 0x015a 'Ś'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 14
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |. 1#7 .|
++ |. 99 .|
++ |. .|
++ |. .|
++ |. 7c##cb .|
++ |.8#5 4a .|
++ |.c# .|
++ |.##b74 .|
++ |.4c####91.|
++ |. 38c##a.|
++ |. 7##.|
++ |. #c.|
++ |.b52 5#7.|
++ -&gt;|.9b###b6 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x015b 'ś'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 12
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. 4#7.|
++ |. 1c9 .|
++ |. 9a .|
++ |. .|
++ |.19c#c93.|
++ |.b#4 14a.|
++ |.##3 .|
++ |.b###b71.|
++ |.18c###b.|
++ |. 4##.|
++ |.a41 3#a.|
++ -&gt;|.39c#c91.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x015c 'Ŝ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 14
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |. b#b .|
++ |. 89 98 .|
++ |. .|
++ |. .|
++ |. 7c##cb .|
++ |.8#5 4a .|
++ |.c# .|
++ |.##b74 .|
++ |.4c####91.|
++ |. 38c##a.|
++ |. 7##.|
++ |. #c.|
++ |.b52 5#7.|
++ -&gt;|.9b###b6 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x015d 'ŝ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 12
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. 8#8 .|
++ |. 2#7#2 .|
++ |. a7 7a .|
++ |. .|
++ |.19c#c93.|
++ |.b#4 14a.|
++ |.##3 .|
++ |.b###b71.|
++ |.18c###b.|
++ |. 4##.|
++ |.a41 3#a.|
++ -&gt;|.39c#c91.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x015e 'Ş'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 13
++ Advance: 10
++ Offset: 1 x -3
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 7c##cb .|
++ |.8#5 4a .|
++ |.c# .|
++ |.##b74 .|
++ |.4c####91.|
++ |. 38c##a.|
++ |. 7##.|
++ |. #c.|
++ |.b52 5#7.|
++ -&gt;|.9b###b6 .|&lt;-
++ |. 48 .|
++ |. 1# .|
++ |. ##8 .|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x015f 'ş'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 11
++ Advance: 9
++ Offset: 1 x -3
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.19c#c93.|
++ |.b#4 14a.|
++ |.##3 .|
++ |.b###b71.|
++ |.18c###b.|
++ |. 4##.|
++ |.a41 3#a.|
++ -&gt;|.39c#c91.|&lt;-
++ |. 48 .|
++ |. 1# .|
++ |. ##8 .|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0160 'Š'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 14
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |. 89 98 .|
++ |. b#b .|
++ |. .|
++ |. .|
++ |. 7c##cb .|
++ |.8#5 4a .|
++ |.c# .|
++ |.##b74 .|
++ |.4c####91.|
++ |. 38c##a.|
++ |. 7##.|
++ |. #c.|
++ |.b52 5#7.|
++ -&gt;|.9b###b6 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0161 'š'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 12
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. a7 7a .|
++ |. 2#7#2 .|
++ |. 8#8 .|
++ |. .|
++ |.19c#c93.|
++ |.b#4 14a.|
++ |.##3 .|
++ |.b###b71.|
++ |.18c###b.|
++ |. 4##.|
++ |.a41 3#a.|
++ -&gt;|.39c#c91.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0162 'Ţ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 13
++ Advance: 10
++ Offset: 1 x -3
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.########.|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ -&gt;|. ## .|&lt;-
++ |. 48 .|
++ |. 1# .|
++ |. ##8 .|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0163 'ţ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 5 x 13
++ Advance: 6
++ Offset: 0 x -3
++ ______
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ | ## .|
++ | ## .|
++ |#####.|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | c#2 .|
++ -&gt;| 5c##.|&lt;-
++ | 48.|
++ | 1#.|
++ | ##8.|
++ |......|
++ |......|
++ ------
++
++Char 0x0164 'Ť'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 14
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |. 9559 .|
++ |. 1##1 .|
++ |. .|
++ |. .|
++ |.########.|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ -&gt;|. ## .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0165 'ť'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 12
++ Advance: 6
++ Offset: 0 x 0
++ ______
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ | 8b|
++ | a7|
++ | ## c3|
++ | ## |
++ |##### |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | c#2 |
++ -&gt;| 5c## |&lt;-
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ ------
++
++Char 0x016b 'ū'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. #### .|
++ |. .|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## 2##.|
++ |.b#6 2a##.|
++ -&gt;|.2a##b4##.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x016d 'ŭ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 11
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. c4 4c .|
++ |. 4b#b3 .|
++ |. .|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## 2##.|
++ |.b#6 2a##.|
++ -&gt;|.2a##b4##.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x016e 'Ů'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 15
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |. 4cc4 .|
++ |. c33c .|
++ |. c33c .|
++ |. 4cc4 .|
++ |. .|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.c#1 1#c.|
++ |.6#91 19#6.|
++ -&gt;|. 5a###a5 .|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x016f 'ů'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 13
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 4cc4 .|
++ |. c33c .|
++ |. c33c .|
++ |. 4cc4 .|
++ |. .|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## 2##.|
++ |.b#6 2a##.|
++ -&gt;|.2a##b4##.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0170 'Ű'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 14
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |. 1#71#7 .|
++ |. 99 99 .|
++ |. .|
++ |. .|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.c#1 1#c.|
++ |.6#91 19#6.|
++ -&gt;|. 5a###a5 .|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0171 'ű'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 12
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. b9 a9.|
++ |. 4#13#1.|
++ |. a6 a6 .|
++ |. .|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## 2##.|
++ |.b#6 2a##.|
++ -&gt;|.2a##b4##.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0173 'ų'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 11
++ Advance: 10
++ Offset: 1 x -3
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.## ## |
++ |.## ## |
++ |.## ## |
++ |.## ## |
++ |.## ## |
++ |.## 2## |
++ |.b#6 2a## |
++ -&gt;|.2a##b4## |&lt;-
++ |. 84 |
++ |. #1 |
++ |. 8##|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0175 'ŵ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 12 x 12
++ Advance: 14
++ Offset: 1 x 0
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |. 1##1 .|
++ |. 9aa9 .|
++ |. 3c11c3 .|
++ |. .|
++ |.b#2 cc 2#b.|
++ |.7#6 2##2 6#7.|
++ |.3#9 6##6 9#3.|
++ |. ## a##a ## .|
++ |. a#3#99#3#a .|
++ |. 6#a#55#a#6 .|
++ |. 2###11###2 .|
++ -&gt;|. c#b a#c .|&lt;-
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ --------------
++
++Char 0x0178 'Ÿ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 14
++ Advance: 10
++ Offset: 0 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ | ## ## |
++ | ## ## |
++ | |
++ | |
++ |9#9 9#9|
++ | c#3 3#c |
++ | 3#a a#3 |
++ | 8#44#8 |
++ | bccb |
++ | 2##2 |
++ | ## |
++ | ## |
++ | ## |
++ -&gt;| ## |&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0179 'Ź'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 14
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |. 1#7 .|
++ |. 99 .|
++ |. .|
++ |. .|
++ |.#########.|
++ |. 6##.|
++ |. 5##3.|
++ |. 5##3 .|
++ |. 5##4 .|
++ |. 4##4 .|
++ |. 4##4 .|
++ |.4##4 .|
++ |.##4 .|
++ -&gt;|.#########.|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x017a 'ź'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 12
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. 4#7.|
++ |. 1c9 .|
++ |. 9a .|
++ |. .|
++ |.#######.|
++ |. 4##.|
++ |. 4##4.|
++ |. 4##4 .|
++ |. 4##3 .|
++ |.4##3 .|
++ |.##3 .|
++ -&gt;|.#######.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x017b 'Ż'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 14
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |. ## .|
++ |. ## .|
++ |. .|
++ |. .|
++ |.#########.|
++ |. 6##.|
++ |. 5##3.|
++ |. 5##3 .|
++ |. 5##4 .|
++ |. 4##4 .|
++ |. 4##4 .|
++ |.4##4 .|
++ |.##4 .|
++ -&gt;|.#########.|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x017c 'ż'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 11
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. ## .|
++ |. ## .|
++ |. .|
++ |.#######.|
++ |. 4##.|
++ |. 4##4.|
++ |. 4##4 .|
++ |. 4##3 .|
++ |.4##3 .|
++ |.##3 .|
++ -&gt;|.#######.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x017d 'Ž'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 14
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |. 89 98 .|
++ |. b#b .|
++ |. .|
++ |. .|
++ |.#########.|
++ |. 6##.|
++ |. 5##3.|
++ |. 5##3 .|
++ |. 5##4 .|
++ |. 4##4 .|
++ |. 4##4 .|
++ |.4##4 .|
++ |.##4 .|
++ -&gt;|.#########.|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x017e 'ž'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 12
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. a7 7a .|
++ |. 2#7#2 .|
++ |. 8#8 .|
++ |. .|
++ |.#######.|
++ |. 4##.|
++ |. 4##4.|
++ |. 4##4 .|
++ |. 4##3 .|
++ |.4##3 .|
++ |.##3 .|
++ -&gt;|.#######.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0219 'ș'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 11
++ Advance: 9
++ Offset: 1 x -3
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.19c#c93.|
++ |.b#4 14a.|
++ |.##3 .|
++ |.b###b71.|
++ |.18c###b.|
++ |. 4##.|
++ |.a41 3#a.|
++ -&gt;|.39c#c91.|&lt;-
++ |. .|
++ |. 7#8 .|
++ |. ba .|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x021b 'ț'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 5 x 13
++ Advance: 6
++ Offset: 0 x -3
++ ______
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ | ## .|
++ | ## .|
++ |#####.|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | c#2 .|
++ -&gt;| 5c##.|&lt;-
++ | .|
++ | 7#8 .|
++ | ba .|
++ |......|
++ |......|
++ ------
++
++Char 0x02c7 'ˇ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 5 x 3
++ Advance: 7
++ Offset: 1 x 9
++ _______
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.a7 7a.|
++ |.2#7#2.|
++ |. 8#8 .|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -&gt;|.......|&lt;-
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -------
++
++Char 0x02d8 '˘'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 5 x 2
++ Advance: 7
++ Offset: 1 x 9
++ _______
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.c4 4c.|
++ |.4b#b3.|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -&gt;|.......|&lt;-
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -------
++
++Char 0x02d9 '˙'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 2 x 2
++ Advance: 7
++ Offset: 3 x 9
++ _______
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |...##..|
++ |...##..|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -&gt;|.......|&lt;-
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -------
++
++Char 0x02db '˛'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 3 x 3
++ Advance: 7
++ Offset: 2 x -3
++ _______
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -&gt;|.......|&lt;-
++ |..84 ..|
++ |..#1 ..|
++ |..8##..|
++ |.......|
++ |.......|
++ -------
++
++Char 0x02dd '˝'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 3
++ Advance: 7
++ Offset: 1 x 9
++ _______
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |. b9 a9|
++ |.4#13#1|
++ |.a6 a6 |
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -&gt;|.......|&lt;-
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -------
++
++Char 0x0386 'Ά'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 12
++ Advance: 11
++ Offset: 0 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ | 4#7 |
++ |1c9 |
++ |9a 1###1 |
++ | 6###6 |
++ | c#4#b |
++ | 3#a a#3 |
++ | 9#4 4#9 |
++ | 1#c c#1 |
++ | 6#######6 |
++ | c#1 1#c |
++ |3#a a#3|
++ -&gt;|9#4 4#9|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0388 'Έ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 12
++ Advance: 12
++ Offset: -1 x 0
++ ____________
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ | 4#7 ..|
++ |1c9 ..|
++ |9a #######..|
++ | ## ..|
++ | ## ..|
++ | ## ..|
++ | #######..|
++ | ## ..|
++ | ## ..|
++ | ## ..|
++ | ## ..|
++ -&gt;| #######..|&lt;-
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ ------------
++
++Char 0x038c 'Ό'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 13 x 12
++ Advance: 12
++ Offset: -1 x 0
++ ____________
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ | 4#7 |
++ |1c9 |
++ |9a 6b##b6 |
++ | a#6 6#a |
++ | 6#7 7#6|
++ | b#2 2#b|
++ | ## ##|
++ | ## ##|
++ | b#2 2#b|
++ | 6#7 7#6|
++ | a#5 6#a |
++ -&gt;| 6b##b6 |&lt;-
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ ------------
++
++Char 0x0391 'Α'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 10
++ Advance: 11
++ Offset: 0 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ | 1###1 |
++ | 6###6 |
++ | c#4#b |
++ | 3#a a#3 |
++ | 9#4 4#9 |
++ | 1#c c#1 |
++ | 6#######6 |
++ | c#1 1#c |
++ |3#a a#3|
++ -&gt;|9#4 4#9|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0392 'Β'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.#####c81.|
++ |.## 6#a.|
++ |.## ##.|
++ |.## 6#a.|
++ |.#######2.|
++ |.## 7#9.|
++ |.## ##.|
++ |.## ##.|
++ |.## 7#9.|
++ -&gt;|.#####c81.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0393 'Γ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 10
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.#######.|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ -&gt;|.## .|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0394 'Δ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 10
++ Advance: 11
++ Offset: 0 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ | 1###1 |
++ | 6###6 |
++ | c#4#b |
++ | 3#a a#3 |
++ | 9#4 4#9 |
++ | 1#c c#1 |
++ | 6#7 7#6 |
++ | c#1 1#c |
++ |3#a a#3|
++ -&gt;|9#########9|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0395 'Ε'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 10
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.#######.|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.#######.|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ -&gt;|.#######.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0396 'Ζ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 10
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |.#########.|
++ |. 6##.|
++ |. 5##3.|
++ |. 5##3 .|
++ |. 5##4 .|
++ |. 4##4 .|
++ |. 4##4 .|
++ |.4##4 .|
++ |.##4 .|
++ -&gt;|.#########.|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0398 'Θ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 10
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |. 6b##b6 .|
++ |. a#6 6#a .|
++ |.6#7 7#6.|
++ |.b#2 2#b.|
++ |.## #### ##.|
++ |.## ##.|
++ |.b#2 2#b.|
++ |.6#7 7#6.|
++ |. a#5 6#a .|
++ -&gt;|. 6b##b6 .|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x0399 'Ι'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 2 x 10
++ Advance: 4
++ Offset: 1 x 0
++ ____
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ -&gt;|.##.|&lt;-
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ ----
++
++Char 0x039a 'Κ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 10
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |.## 3##6 |
++ |.## 3##5 |
++ |.## 4##4 |
++ |.##4##3 |
++ |.####5 |
++ |.##6##3 |
++ |.## 5##4 |
++ |.## 5##4 |
++ |.## 5##5 |
++ -&gt;|.## 4##6|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x039b 'Λ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 10
++ Advance: 11
++ Offset: 0 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ | 1###1 |
++ | 6###6 |
++ | c#4#b |
++ | 3#a a#3 |
++ | 9#4 4#9 |
++ | 1#c c#1 |
++ | 6#7 7#6 |
++ | c#2 2#c |
++ |3#a a#3|
++ -&gt;|9#4 4#9|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x039c 'Μ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 10
++ Advance: 13
++ Offset: 1 x 0
++ _____________
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.###2 2###.|
++ |.###8 9###.|
++ |.##c#1 1#c##.|
++ |.##6#8 8#6##.|
++ |.## c#2#c ##.|
++ |.## 6#c#6 ##.|
++ |.## c#c ##.|
++ |.## 5#5 ##.|
++ |.## ##.|
++ -&gt;|.## ##.|&lt;-
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ -------------
++
++Char 0x039d 'Ν'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 10
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |.##8 ##.|
++ |.###3 ##.|
++ |.###b ##.|
++ |.##5#6 ##.|
++ |.## a#1 ##.|
++ |.## 2#a ##.|
++ |.## 7#5##.|
++ |.## bc##.|
++ |.## 3###.|
++ -&gt;|.## 8##.|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x039f 'Ο'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 10
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |. 6b##b6 .|
++ |. a#6 6#a .|
++ |.6#7 7#6.|
++ |.b#2 2#b.|
++ |.## ##.|
++ |.## ##.|
++ |.b#2 2#b.|
++ |.6#7 7#6.|
++ |. a#5 6#a .|
++ -&gt;|. 6b##b6 .|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x03a0 'Π'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 10
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |.#########..|
++ |.## ##..|
++ |.## ##..|
++ |.## ##..|
++ |.## ##..|
++ |.## ##..|
++ |.## ##..|
++ |.## ##..|
++ |.## ##..|
++ -&gt;|.## ##..|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x03a1 'Ρ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.#####b6 .|
++ |.## 19#6.|
++ |.## 1#c.|
++ |.## ##.|
++ |.## 2#c.|
++ |.## 19#6.|
++ |.#####b6 .|
++ |.## .|
++ |.## .|
++ -&gt;|.## .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x03a3 'Σ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 10
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.#######.|
++ |.8#c2 .|
++ |. 9#c1 .|
++ |. a#b1 .|
++ |. c#a .|
++ |. 4##4 .|
++ |. 2##6 .|
++ |. b#9 .|
++ |.9#b .|
++ -&gt;|.#######.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x03a4 'Τ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.########.|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ -&gt;|. ## .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x03a5 'Υ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 10
++ Advance: 10
++ Offset: 0 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |9#9 9#9|
++ | c#3 3#c |
++ | 3#a a#3 |
++ | 8#44#8 |
++ | bccb |
++ | 2##2 |
++ | ## |
++ | ## |
++ | ## |
++ -&gt;| ## |&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x03a7 'Χ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 10
++ Advance: 10
++ Offset: 0 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |9#a 9#9|
++ | c#3 3#c |
++ | 3#b b#3 |
++ | 7#55#7 |
++ | bccb |
++ | 1cbbc1 |
++ | 9#33#9 |
++ | 4#a a#4 |
++ |1c#2 2#c1|
++ -&gt;|9#9 9#9|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x03ac 'ά'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 12
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 4#7 .|
++ |. 1c9 .|
++ |. 9a .|
++ |. .|
++ |. 6b#c8#c.|
++ |.6#9 6##9.|
++ |.c#2 ##6.|
++ |.## ##3.|
++ |.## ## .|
++ |.b#2 ##1.|
++ |.6#9 6##4.|
++ -&gt;|. 7c##7a#.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x03ad 'έ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 12
++ Advance: 8
++ Offset: 1 x 0
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |. 4#7.|
++ |. 1c9 .|
++ |. 9a .|
++ |. .|
++ |.3a##b4.|
++ |.c#5 29.|
++ |.c#4 .|
++ |.3c### .|
++ |.9#7 .|
++ |.## .|
++ |.b#6 28.|
++ -&gt;|.19c#b4.|&lt;-
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ --------
++
++Char 0x03ae 'ή'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 15
++ Advance: 10
++ Offset: 1 x -3
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 4#7 .|
++ |. 1c9 .|
++ |. 9a .|
++ |. .|
++ |.##4a##a2.|
++ |.##b2 6#a.|
++ |.##2 ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ -&gt;|.## ##.|&lt;-
++ |. ##.|
++ |. ##.|
++ |. ##.|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x03af 'ί'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 4 x 12
++ Advance: 5
++ Offset: 1 x 0
++ _____
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |. 4#7|
++ |.1c9 |
++ |.9a |
++ |. |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.##1 |
++ -&gt;|.8## |&lt;-
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ -----
++
++Char 0x03b1 'α'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 8
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 6b#c8#c.|
++ |.6#9 6##9.|
++ |.c#2 ##6.|
++ |.## ##3.|
++ |.## ## .|
++ |.b#2 ##1.|
++ |.6#9 6##4.|
++ -&gt;|. 7c##7a#.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x03b2 'β'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 14
++ Advance: 10
++ Offset: 1 x -3
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 3a#c7 .|
++ |.3#7 6#8 .|
++ |.a#1 ## .|
++ |.## 1## .|
++ |.## 19#7 .|
++ |.## ##c5 .|
++ |.## 2b#7.|
++ |.## 2#c.|
++ |.##2 ##.|
++ |.##91 7#8.|
++ -&gt;|.##3a#c7 .|&lt;-
++ |.## .|
++ |.## .|
++ |.## .|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x03b3 'γ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 11
++ Advance: 10
++ Offset: 0 x -3
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |#c6 4#b.|
++ | a#3 8#6.|
++ | 1#9 c#1.|
++ | a# 2#9 .|
++ | 4#56#4 .|
++ | caac .|
++ | 7##7 .|
++ -&gt;| 2##2 .|&lt;-
++ | ## .|
++ | ## .|
++ | ## .|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x03b4 'δ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 11
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 3a##b5 .|
++ |. c#2 28 .|
++ |. c#5 .|
++ |. a###a3 .|
++ |.5#b11a#4.|
++ |.b#3 2#b.|
++ |.## ##.|
++ |.## ##.|
++ |.9#3 3#a.|
++ |.3#a11b#3.|
++ -&gt;|. 3a##a3 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x03b5 'ε'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 8
++ Advance: 8
++ Offset: 1 x 0
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |.3a##b4.|
++ |.c#5 29.|
++ |.c#4 .|
++ |.3c### .|
++ |.9#7 .|
++ |.## .|
++ |.b#6 28.|
++ -&gt;|.19c#b4.|&lt;-
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ --------
++
++Char 0x03b7 'η'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 11
++ Advance: 10
++ Offset: 1 x -3
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.##4a##a2.|
++ |.##b2 6#a.|
++ |.##2 ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ -&gt;|.## ##.|&lt;-
++ |. ##.|
++ |. ##.|
++ |. ##.|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x03b8 'θ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 11
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 2a##a2 .|
++ |.1##22##1.|
++ |.7#7 7#7.|
++ |.b#2 2#b.|
++ |.## ##.|
++ |.########.|
++ |.## ##.|
++ |.b#2 2#b.|
++ |.7#6 6#7.|
++ |.1##22##1.|
++ -&gt;|. 2a##a2 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x03b9 'ι'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 3 x 8
++ Advance: 5
++ Offset: 1 x 0
++ _____
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.##1.|
++ -&gt;|.8##.|&lt;-
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ -----
++
++Char 0x03ba 'κ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 8
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.## 7c2.|
++ |.## 8b1 .|
++ |.## ab .|
++ |.##b##1 .|
++ |.##69#a .|
++ |.## 1##5 .|
++ |.## 5#c1.|
++ -&gt;|.## a#9.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x03bb 'λ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 11
++ Advance: 9
++ Offset: 0 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |###7 .|
++ | a#6 .|
++ | 3#c .|
++ | c#3 .|
++ | 1##8 .|
++ | 7### .|
++ | c#c#5 .|
++ | 5#a5#a .|
++ | b#4 ##1.|
++ |4#c 9#6.|
++ -&gt;|a#5 4#b.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x03bc 'μ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 11
++ Advance: 10
++ Offset: 1 x -3
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.## ## |
++ |.## ## |
++ |.## ## |
++ |.## ## |
++ |.## ## |
++ |.## ## |
++ |.##7 7##1|
++ -&gt;|.##b##b8##|&lt;-
++ |.## |
++ |.## |
++ |.## |
++ |..........|
++ |..........|
++ ----------
++
++Char 0x03bd 'ν'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 8
++ Advance: 10
++ Offset: 0 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |b#4 8#3.|
++ |5#a 2#a.|
++ | ##1 ##.|
++ | 8#7 #c.|
++ | 3#c 4#8.|
++ | b#4 b#1.|
++ | 6#99#3 .|
++ -&gt;| 1###5 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x03be 'ξ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 14
++ Advance: 8
++ Offset: 1 x -3
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |.#######|
++ |. 4cb41 |
++ |. c#1 |
++ |. ## |
++ |. 9#92 |
++ |. 6#### |
++ |.8#c51 |
++ |.##2 |
++ |.## |
++ |.8#81 |
++ -&gt;|. 6b##b3|&lt;-
++ |. 2#c|
++ |. 2#c|
++ |. #b3|
++ |........|
++ |........|
++ --------
++
++Char 0x03bf 'ο'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 8
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 3a##a3 .|
++ |.3#a11a#3.|
++ |.a#2 2#a.|
++ |.## ##.|
++ |.## ##.|
++ |.a#2 2#a.|
++ |.3#a11a#3.|
++ -&gt;|. 3a##a3 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x03c0 'π'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 8
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |.#########.|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ##1.|
++ -&gt;|. ## 7##.|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x03c1 'ρ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 11
++ Advance: 10
++ Offset: 1 x -3
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 29c#b4 .|
++ |.2#a11a#4.|
++ |.a#2 2#b.|
++ |.## ##.|
++ |.## ##.|
++ |.##2 2#a.|
++ |.##911a#4.|
++ -&gt;|.##3b#c5 .|&lt;-
++ |.## .|
++ |.## .|
++ |.## .|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x03c2 'ς'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 11
++ Advance: 9
++ Offset: 1 x -3
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. 29c#b4.|
++ |.2#c3 29.|
++ |.9#4 .|
++ |.## .|
++ |.## .|
++ |.b#3 .|
++ |.4#b3 .|
++ -&gt;|. 5b##b3.|&lt;-
++ |. 2#c.|
++ |. 2#c.|
++ |. #b3.|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x03c3 'σ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 8
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |. 5b######.|
++ |.5#a11a#9 .|
++ |.b#2 2#c .|
++ |.## ## .|
++ |.## ## .|
++ |.a#2 2#a .|
++ |.3#a11a#3 .|
++ -&gt;|. 3a##a3 .|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x03c4 'τ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 8
++ Advance: 8
++ Offset: 0 x 0
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |########|
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ##1 |
++ -&gt;| 7## |&lt;-
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ --------
++
++Char 0x03c5 'υ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 8
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.## 8#1.|
++ |.## 3#8.|
++ |.## #c.|
++ |.## ##.|
++ |.## #c.|
++ |.## 3#9.|
++ |.a#3 3b#3.|
++ -&gt;|.29###a4 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x03c6 'φ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 11
++ Advance: 12
++ Offset: 1 x -3
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |. 29#1a#b4 .|
++ |.2#c38#36#3.|
++ |.a#4 c# 1#a.|
++ |.## ## ##.|
++ |.## ## 1##.|
++ |.a#5 ## 6#a.|
++ |.3##4##4##3.|
++ -&gt;|. 29c##c92 .|&lt;-
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |............|
++ |............|
++ ------------
++
++Char 0x03c7 'χ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 11
++ Advance: 9
++ Offset: 0 x -3
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |##9 6#a.|
++ | 8#71##2.|
++ | 1##8#9 .|
++ | a###2 .|
++ | 5##8 .|
++ | 2##2 .|
++ | 9##5 .|
++ -&gt;| 2###a .|&lt;-
++ | 9#8##1 .|
++ |3## 7#7 .|
++ |a#6 9##.|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x03c8 'ψ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 11
++ Advance: 12
++ Offset: 1 x -3
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |.## ## ##.|
++ |.## ## ##.|
++ |.## ## ##.|
++ |.## ## ##.|
++ |.## ## ##.|
++ |.9#3 ## 3#9.|
++ |.2#c3##3c#2.|
++ -&gt;|. 29c##c92 .|&lt;-
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |............|
++ |............|
++ ------------
++
++Char 0x03c9 'ω'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 8
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |.2#7 7#2.|
++ |.8#4 4#7.|
++ |.b#1 1#b.|
++ |.## ## ##.|
++ |.## ## ##.|
++ |.b# 1##11#b.|
++ |.7#55cc55#7.|
++ -&gt;|. 9#c44c#9 .|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x03cc 'ό'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 12
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 4#7 .|
++ |. 1c9 .|
++ |. 9a .|
++ |. .|
++ |. 3a##a3 .|
++ |.3#a11a#3.|
++ |.a#2 2#a.|
++ |.## ##.|
++ |.## ##.|
++ |.a#2 2#a.|
++ |.3#a11a#3.|
++ -&gt;|. 3a##a3 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x03cd 'ύ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 12
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 4#7 .|
++ |. 1c9 .|
++ |. 9a .|
++ |. .|
++ |.## 8#1.|
++ |.## 3#8.|
++ |.## #c.|
++ |.## ##.|
++ |.## #c.|
++ |.## 3#9.|
++ |.a#3 3b#3.|
++ -&gt;|.29###a4 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x03ce 'ώ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 12
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |. 4#7 .|
++ |. 1c9 .|
++ |. 9a .|
++ |. .|
++ |.2#7 7#2.|
++ |.8#4 4#7.|
++ |.b#1 1#b.|
++ |.## ## ##.|
++ |.## ## ##.|
++ |.b# 1##11#b.|
++ |.7#55cc55#7.|
++ -&gt;|. 9#c44c#9 .|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x0401 'Ё'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 14
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |. ## ## .|
++ |. ## ## .|
++ |. .|
++ |. .|
++ |.#######.|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.#######.|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ -&gt;|.#######.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0404 'Є'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 10
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 39c##c9|
++ |. 7#71 14a|
++ |.5#8 |
++ |.a#1 |
++ |.####### |
++ |.##1 |
++ |.a#5 |
++ |.5#b |
++ |. 7#92 14a|
++ -&gt;|. 39c##b8|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0406 'І'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 2 x 10
++ Advance: 4
++ Offset: 1 x 0
++ ____
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ -&gt;|.##.|&lt;-
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ ----
++
++Char 0x0408 'Ј'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 4 x 13
++ Advance: 4
++ Offset: -1 x -3
++ ____
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ -&gt;| ##.|&lt;-
++ | ##.|
++ | 7#9.|
++ |#c8 .|
++ |.....|
++ |.....|
++ ----
++
++Char 0x0410 'А'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 10
++ Advance: 11
++ Offset: 0 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ | 1###1 |
++ | 6###6 |
++ | c#4#b |
++ | 3#a a#3 |
++ | 9#4 4#9 |
++ | 1#c c#1 |
++ | 6#######6 |
++ | c#1 1#c |
++ |3#a a#3|
++ -&gt;|9#4 4#9|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0411 'Б'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |.####### ..|
++ |.## ..|
++ |.## ..|
++ |.## ..|
++ |.#####b6 ..|
++ |.## 7#8..|
++ |.## ##..|
++ |.## ##..|
++ |.## 7#8..|
++ -&gt;|.#####c7 ..|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0412 'В'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.#####c81.|
++ |.## 6#a.|
++ |.## ##.|
++ |.## 6#a.|
++ |.#######2.|
++ |.## 7#9.|
++ |.## ##.|
++ |.## ##.|
++ |.## 7#9.|
++ -&gt;|.#####c81.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0413 'Г'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 10
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.#######.|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ -&gt;|.## .|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0414 'Д'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 12
++ Advance: 12
++ Offset: 1 x -2
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |. ######## |
++ |. ## ## |
++ |. ## ## |
++ |. ## ## |
++ |. ## ## |
++ |. #c ## |
++ |. 1#b ## |
++ |. 2#9 ## |
++ |. 9#7 ## |
++ -&gt;|.###########|&lt;-
++ |.## ##|
++ |.## ##|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x0415 'Е'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 10
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.#######.|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.#######.|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ -&gt;|.#######.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0416 'Ж'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 18 x 10
++ Advance: 17
++ Offset: -1 x 0
++ _________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |6##7 ## 7##6|
++ | 4##9 ## 9##4 |
++ | 3##a ## a##3 |
++ | 2c#b1##1b#c2 |
++ | b##c##c##b |
++ | 8#ba####ab#8 |
++ | 5##2 9##8 2##5 |
++ | 2##5 ## 5##2 |
++ | b#8 ## 8#b |
++ -&gt;|8#b ## b#8|&lt;-
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ -----------------
++
++Char 0x0417 'З'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.39c##b7 .|
++ |.a41 7#a.|
++ |. ##.|
++ |. 16#8.|
++ |. ####b1.|
++ |. 19#9.|
++ |. ##.|
++ |. #c.|
++ |.a41 19#7.|
++ -&gt;|.3a###a5 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0418 'И'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 10
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |.## b##..|
++ |.## 6###..|
++ |.## 1####..|
++ |.## a#8##..|
++ |.## 4#c1##..|
++ |.## c#5 ##..|
++ |.##8#a ##..|
++ |.####1 ##..|
++ |.###6 ##..|
++ -&gt;|.##b ##..|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x0419 'Й'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 14
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |. c5 5c ..|
++ |. 3b#b3 ..|
++ |. ..|
++ |. ..|
++ |.## b##..|
++ |.## 6###..|
++ |.## 1####..|
++ |.## a#8##..|
++ |.## 4#c1##..|
++ |.## c#5 ##..|
++ |.##8#a ##..|
++ |.####1 ##..|
++ |.###6 ##..|
++ -&gt;|.##b ##..|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x041a 'К'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 10
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |.## 7##6|
++ |.## 9##4 |
++ |.## a##3 |
++ |.##1b#c2 |
++ |.##c##a |
++ |.###ac#7 |
++ |.##9 3##4 |
++ |.## 6##1 |
++ |.## 9#b |
++ -&gt;|.## b#8|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x041b 'Л'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 10
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |. #######..|
++ |. ## ##..|
++ |. ## ##..|
++ |. ## ##..|
++ |. #c ##..|
++ |. #b ##..|
++ |. 2#9 ##..|
++ |. 4#7 ##..|
++ |.2b#1 ##..|
++ -&gt;|.c81 ##..|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x041c 'М'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 10
++ Advance: 13
++ Offset: 1 x 0
++ _____________
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.###2 2###.|
++ |.###8 9###.|
++ |.##c#1 1#c##.|
++ |.##6#8 8#6##.|
++ |.## c#2#c ##.|
++ |.## 6#c#6 ##.|
++ |.## c#c ##.|
++ |.## 5#5 ##.|
++ |.## ##.|
++ -&gt;|.## ##.|&lt;-
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ -------------
++
++Char 0x041d 'Н'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 10
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.#########.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ -&gt;|.## ##.|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x041e 'О'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 10
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |. 6b##b6 .|
++ |. a#6 6#a .|
++ |.6#7 7#6.|
++ |.b#2 2#b.|
++ |.## ##.|
++ |.## ##.|
++ |.b#2 2#b.|
++ |.6#7 7#6.|
++ |. a#5 6#a .|
++ -&gt;|. 6b##b6 .|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x041f 'П'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 10
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |.#########..|
++ |.## ##..|
++ |.## ##..|
++ |.## ##..|
++ |.## ##..|
++ |.## ##..|
++ |.## ##..|
++ |.## ##..|
++ |.## ##..|
++ -&gt;|.## ##..|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x0420 'Р'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.#####b6 .|
++ |.## 19#6.|
++ |.## 1#c.|
++ |.## ##.|
++ |.## 2#c.|
++ |.## 19#6.|
++ |.#####b6 .|
++ |.## .|
++ |.## .|
++ -&gt;|.## .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0421 'С'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 10
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |. 39c##c9.|
++ |. 7#82 14a.|
++ |.5#9 .|
++ |.a#2 .|
++ |.## .|
++ |.## .|
++ |.a#2 .|
++ |.5#9 .|
++ |. 7#82 14a.|
++ -&gt;|. 39c##ca.|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0422 'Т'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.########.|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ -&gt;|. ## .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0423 'У'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 10
++ Advance: 11
++ Offset: 0 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |a#6 6#a.|
++ |3#c c#4.|
++ | a#6 5#b .|
++ | 4#c b#5 .|
++ | b#53#c .|
++ | 4#ca#6 .|
++ | b### .|
++ | 5##7 .|
++ | 3##1 .|
++ -&gt;| ##a3 .|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0424 'Ф'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 14 x 10
++ Advance: 14
++ Offset: 1 x 0
++ ______________
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |. ## |
++ |. 48b####b84 |
++ |.1b#73 ## 37#b1|
++ |.9#5 ## 5#9|
++ |.## ## ##|
++ |.## ## ##|
++ |.9#5 ## 5#9|
++ |.1b#72 ## 27#b1|
++ |. 48b####b84 |
++ -&gt;|. ## |&lt;-
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ --------------
++
++Char 0x0425 'Х'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 10
++ Advance: 10
++ Offset: 0 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |9#a 9#9|
++ | c#3 3#c |
++ | 3#b b#3 |
++ | 7#55#7 |
++ | bccb |
++ | 1cbbc1 |
++ | 9#33#9 |
++ | 4#a a#4 |
++ |1c#2 2#c1|
++ -&gt;|9#9 9#9|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0426 'Ц'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 12
++ Advance: 13
++ Offset: 1 x -2
++ _____________
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.## ## .|
++ |.## ## .|
++ |.## ## .|
++ |.## ## .|
++ |.## ## .|
++ |.## ## .|
++ |.## ## .|
++ |.## ## .|
++ |.## ## .|
++ -&gt;|.###########.|&lt;-
++ |. ##.|
++ |. ##.|
++ |.............|
++ |.............|
++ |.............|
++ -------------
++
++Char 0x0427 'Ч'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 10
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.b#5 ##.|
++ |.2a#######.|
++ |. ##.|
++ |. ##.|
++ |. ##.|
++ |. ##.|
++ -&gt;|. ##.|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0428 'Ш'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 16 x 10
++ Advance: 17
++ Offset: 1 x 0
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.## ## ##|
++ |.## ## ##|
++ |.## ## ##|
++ |.## ## ##|
++ |.## ## ##|
++ |.## ## ##|
++ |.## ## ##|
++ |.## ## ##|
++ |.## ## ##|
++ -&gt;|.################|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x0429 'Щ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 18 x 12
++ Advance: 19
++ Offset: 1 x -2
++ ___________________
++ |...................|
++ |...................|
++ |...................|
++ |...................|
++ |...................|
++ |...................|
++ |...................|
++ |.## ## ## |
++ |.## ## ## |
++ |.## ## ## |
++ |.## ## ## |
++ |.## ## ## |
++ |.## ## ## |
++ |.## ## ## |
++ |.## ## ## |
++ |.## ## ## |
++ -&gt;|.##################|&lt;-
++ |. ##|
++ |. ##|
++ |...................|
++ |...................|
++ |...................|
++ -------------------
++
++Char 0x042a 'Ъ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 13 x 11
++ Advance: 13
++ Offset: 0 x 0
++ _____________
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ | 222221 |
++ |4#####9 |
++ |3aaa##9 |
++ | ##9 |
++ | ##a443 |
++ | #######5 |
++ | ##c99###2|
++ | ##9 4##5|
++ | ##9 4##5|
++ | ###bb###1|
++ -&gt;| #####c92 |&lt;-
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ -------------
++
++Char 0x042b 'Ы'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 10
++ Advance: 15
++ Offset: 1 x 0
++ _______________
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |.## ##...|
++ |.## ##...|
++ |.## ##...|
++ |.## ##...|
++ |.#####c7 ##...|
++ |.## 7#9 ##...|
++ |.## ## ##...|
++ |.## ## ##...|
++ |.## 7#9 ##...|
++ -&gt;|.#####c7 ##...|&lt;-
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ ---------------
++
++Char 0x042c 'Ь'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |.## ..|
++ |.## ..|
++ |.## ..|
++ |.## ..|
++ |.#####c7 ..|
++ |.## 7#9..|
++ |.## ##..|
++ |.## ##..|
++ |.## 7#9..|
++ -&gt;|.#####c7 ..|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x042d 'Э'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 12
++ Advance: 10
++ Offset: 0 x -1
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ | 2443 |
++ | c####c5 |
++ |1#a78c##6 |
++ | 2 1c##1|
++ | 11116##5|
++ | b######7|
++ | acccc##7|
++ | 6##5|
++ | 4 2c## |
++ |1#caa###4 |
++ -&gt;| 9####a3 |&lt;-
++ | 22 |
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x042e 'Ю'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 14 x 10
++ Advance: 16
++ Offset: 1 x 0
++ ________________
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |.## 7b##b6 .|
++ |.## b#6 6#a .|
++ |.## 7#7 7#6.|
++ |.## c#2 2#b.|
++ |.###### ##.|
++ |.## c# ##.|
++ |.## 9#2 2#b.|
++ |.## 3#7 7#6.|
++ |.## 7#5 6#a .|
++ -&gt;|.## 5b##b6 .|&lt;-
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ ----------------
++
++Char 0x042f 'Я'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |. 7c#####..|
++ |.8#7 ##..|
++ |.## ##..|
++ |.c# ##..|
++ |.5#7 ##..|
++ |. 4######..|
++ |. 4#c ##..|
++ |. a#6 ##..|
++ |.3#c ##..|
++ -&gt;|.a#6 ##..|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0430 'а'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 8
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. 6##c8 .|
++ |. 62 5#8.|
++ |. #c.|
++ |.29#####.|
++ |.b#5 ##.|
++ |.## 2##.|
++ |.b#4 9##.|
++ -&gt;|.2b#c5##.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0431 'б'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 11
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 38bcc6 .|
++ |.2#b2 .|
++ |.9#3 .|
++ |.c#8c#b4 .|
++ |.##a11a#4.|
++ |.##2 2#a.|
++ |.## ##.|
++ |.## ##.|
++ |.a#2 2#a.|
++ |.4#a11a#3.|
++ -&gt;|. 4a##a3 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0432 'в'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 8
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.#####a3.|
++ |.## 3#c.|
++ |.## 3#c.|
++ |.######5.|
++ |.## 5#a.|
++ |.## ##.|
++ |.## 5#b.|
++ -&gt;|.#####a2.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0433 'г'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 8
++ Advance: 7
++ Offset: 1 x 0
++ _______
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.######|
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ -&gt;|.## |&lt;-
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -------
++
++Char 0x0434 'д'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 10
++ Advance: 11
++ Offset: 1 x -2
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |. ####### |
++ |. ## ## |
++ |. ## ## |
++ |. ## ## |
++ |. 1#b ## |
++ |. 4#a ## |
++ |.1b#7 ## |
++ -&gt;|.##########|&lt;-
++ |.## ##|
++ |.## ##|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0435 'е'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 8
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 3a##b4 .|
++ |.3#a1 8#5.|
++ |.a#2 #b.|
++ |.########.|
++ |.## .|
++ |.a#4 .|
++ |.3#b2 15a.|
++ -&gt;|. 29c#c93.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0436 'ж'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 14 x 8
++ Advance: 14
++ Offset: 0 x 0
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |6##7 ## 7##6|
++ | 4##9 ## 9##4 |
++ | 3##a##a##3 |
++ | 8######8 |
++ | 4##b##b##4 |
++ | 1##6 ## 6##1 |
++ | b#9 ## 9#b |
++ -&gt;|8#b ## b#8|&lt;-
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ --------------
++
++Char 0x0437 'з'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 8
++ Advance: 8
++ Offset: 1 x 0
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |.3a##ca3|
++ |.92 4#c|
++ |. 5#c|
++ |. ####c3|
++ |. 17#8|
++ |. ##|
++ |.a4 7#b|
++ -&gt;|.4a##c81|&lt;-
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ --------
++
++Char 0x0438 'и'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 8
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.## 5##..|
++ |.## 1###..|
++ |.## 9###..|
++ |.##4####..|
++ |.##c#5##..|
++ |.###a ##..|
++ |.###1 ##..|
++ -&gt;|.##6 ##..|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0439 'й'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 11
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. c4 4c ..|
++ |. 4b#b3 ..|
++ |. ..|
++ |.## 5##..|
++ |.## 1###..|
++ |.## 9###..|
++ |.##4####..|
++ |.##c#5##..|
++ |.###a ##..|
++ |.###1 ##..|
++ -&gt;|.##6 ##..|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x043a 'к'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 8
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.## 7##6.|
++ |.## 9##4 .|
++ |.##a##3 .|
++ |.####8 .|
++ |.##c##4 .|
++ |.##15##2 .|
++ |.## 9#b .|
++ -&gt;|.## b#8.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x043b 'л'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 8
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. #######|
++ |. ## ##|
++ |. ## ##|
++ |. ## ##|
++ |. 1#b ##|
++ |. 2#9 ##|
++ |.2a#2 ##|
++ -&gt;|.#a3 ##|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x043c 'м'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 8
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |.##b b##.|
++ |.###4 4###.|
++ |.###a a###.|
++ |.####5####.|
++ |.##7###7##.|
++ |.##1###1##.|
++ |.## 9#9 ##.|
++ -&gt;|.## ##.|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x043d 'н'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 8
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.## ##..|
++ |.## ##..|
++ |.## ##..|
++ |.#######..|
++ |.## ##..|
++ |.## ##..|
++ |.## ##..|
++ -&gt;|.## ##..|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x043e 'о'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 8
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 3a##a3 .|
++ |.3#a11a#3.|
++ |.a#2 2#a.|
++ |.## ##.|
++ |.## ##.|
++ |.a#2 2#a.|
++ |.3#a11a#3.|
++ -&gt;|. 3a##a3 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x043f 'п'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 8
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.#######..|
++ |.## ##..|
++ |.## ##..|
++ |.## ##..|
++ |.## ##..|
++ |.## ##..|
++ |.## ##..|
++ -&gt;|.## ##..|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0440 'р'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 11
++ Advance: 10
++ Offset: 1 x -3
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.##5b#c5 .|
++ |.##a11a#4.|
++ |.##2 2#a.|
++ |.## ##.|
++ |.## ##.|
++ |.##2 2#a.|
++ |.##a11a#4.|
++ -&gt;|.##5b#c5 .|&lt;-
++ |.## .|
++ |.## .|
++ |.## .|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0441 'с'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 8
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. 29c#b4.|
++ |.2#c3 29.|
++ |.a#3 .|
++ |.## .|
++ |.## .|
++ |.a#3 .|
++ |.3#c3 28.|
++ -&gt;|. 29c#b4.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0442 'т'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 8
++ Advance: 8
++ Offset: 0 x 0
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |########|
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ -&gt;| ## |&lt;-
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ --------
++
++Char 0x0443 'у'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 11
++ Advance: 9
++ Offset: 0 x -3
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |b#4 3#b|
++ |5#9 8#6|
++ | c# c#1|
++ | 7#5 2#a |
++ | 1#a 7#5 |
++ | 9#1b# |
++ | 4#8#9 |
++ -&gt;| c##4 |&lt;-
++ | 6#c |
++ | 9#7 |
++ | a#c7 |
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0444 'ф'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 12 x 14
++ Advance: 14
++ Offset: 1 x -3
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. 5c#6##6#c5 .|
++ |.4#a 3##3 a#4.|
++ |.a#2 ## 2#a.|
++ |.## ## ##.|
++ |.## ## ##.|
++ |.a#2 ## 2#a.|
++ |.4#a 3##3 a#4.|
++ -&gt;|. 5c#6##6#c5 .|&lt;-
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |..............|
++ |..............|
++ --------------
++
++Char 0x0445 'х'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 8
++ Advance: 9
++ Offset: 0 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |8#b b#8|
++ | b#5 5#b |
++ | 2#c2c#1 |
++ | 4#c#4 |
++ | 6#c#6 |
++ | 2#c1c#2 |
++ | b#5 4#b |
++ -&gt;|8#a a#8|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0446 'ц'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 10
++ Offset: 1 x -2
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.## ## .|
++ |.## ## .|
++ |.## ## .|
++ |.## ## .|
++ |.## ## .|
++ |.## ## .|
++ |.## ## .|
++ -&gt;|.########.|&lt;-
++ |. ##.|
++ |. ##.|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0447 'ч'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 8
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.## ##..|
++ |.## ##..|
++ |.## ##..|
++ |.b#4 ##..|
++ |.3c#####..|
++ |. ##..|
++ |. ##..|
++ -&gt;|. ##..|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0448 'ш'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 12 x 8
++ Advance: 15
++ Offset: 1 x 0
++ _______________
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |.## ## ##..|
++ |.## ## ##..|
++ |.## ## ##..|
++ |.## ## ##..|
++ |.## ## ##..|
++ |.## ## ##..|
++ |.## ## ##..|
++ -&gt;|.############..|&lt;-
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ ---------------
++
++Char 0x0449 'щ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 13 x 10
++ Advance: 15
++ Offset: 1 x -2
++ _______________
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |.## ## ## .|
++ |.## ## ## .|
++ |.## ## ## .|
++ |.## ## ## .|
++ |.## ## ## .|
++ |.## ## ## .|
++ |.## ## ## .|
++ -&gt;|.#############.|&lt;-
++ |. ##.|
++ |. ##.|
++ |...............|
++ |...............|
++ |...............|
++ ---------------
++
++Char 0x044a 'ъ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 8
++ Advance: 11
++ Offset: 0 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |699993 .|
++ |8cc##4 .|
++ | 1##4 .|
++ | 1##ba96 .|
++ | 1##ba##9.|
++ | 1##4 5#c.|
++ | 1##97b#a.|
++ -&gt;| 1#####a2.|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x044b 'ы'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 8
++ Advance: 13
++ Offset: 1 x 0
++ _____________
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.## ##..|
++ |.## ##..|
++ |.## ##..|
++ |.####c91 ##..|
++ |.## 5#a ##..|
++ |.## ## ##..|
++ |.## 5#b ##..|
++ -&gt;|.#####a2 ##..|&lt;-
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ -------------
++
++Char 0x044c 'ь'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 8
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.####c91.|
++ |.## 5#a.|
++ |.## ##.|
++ |.## 5#b.|
++ -&gt;|.#####a2.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x044d 'э'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 9
++ Advance: 8
++ Offset: 1 x -1
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |.7aba5 |
++ |.#####a |
++ |.3 7##5|
++ |.1777##8|
++ |.2bbb##9|
++ |. 3##7|
++ |.c88###1|
++ -&gt;|.c###a2 |&lt;-
++ |. 121 |
++ |........|
++ |........|
++ |........|
++ |........|
++ --------
++
++Char 0x044e 'ю'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 8
++ Advance: 14
++ Offset: 1 x 0
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |.## 4a##a3 ..|
++ |.## 4#a11a#3..|
++ |.## b#2 2#a..|
++ |.##c## ##..|
++ |.##a## ##..|
++ |.## b#2 2#a..|
++ |.## 4#a11a#3..|
++ -&gt;|.## 4b##a3 ..|&lt;-
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ --------------
++
++Char 0x044f 'я'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 8
++ Advance: 9
++ Offset: 0 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ | 3a#####.|
++ | c#5 ##.|
++ | ## ##.|
++ | 8#5 ##.|
++ | b#####.|
++ | 3##3 ##.|
++ | c#7 ##.|
++ -&gt;|8#b ##.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0451 'ё'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 11
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. ## ## .|
++ |. ## ## .|
++ |. .|
++ |. 3a##b4 .|
++ |.3#a1 8#5.|
++ |.a#2 #b.|
++ |.########.|
++ |.## .|
++ |.a#4 .|
++ |.3#b2 15a.|
++ -&gt;|. 29c#c93.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0454 'є'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 8
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. 29c#b4.|
++ |.2#b2 29.|
++ |.a#2 .|
++ |.##### .|
++ |.##1 .|
++ |.a#6 .|
++ |.3##3 18.|
++ -&gt;|. 29c#b4.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0456 'і'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 2 x 11
++ Advance: 4
++ Offset: 1 x 0
++ ____
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |.##.|
++ |.##.|
++ |. .|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ -&gt;|.##.|&lt;-
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ ----
++
++Char 0x0457 'ї'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 11
++ Advance: 5
++ Offset: -1 x 0
++ _____
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |## ##|
++ |## ##|
++ | |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ -&gt;| ## |&lt;-
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ -----
++
++Char 0x0458 'ј'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 4 x 14
++ Advance: 4
++ Offset: -1 x -3
++ ____
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ | ##.|
++ | ##.|
++ | .|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ -&gt;| ##.|&lt;-
++ | ##.|
++ | 4#b.|
++ |##b2.|
++ |.....|
++ |.....|
++ ----
++
++Char 0x0459 'љ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 14 x 8
++ Advance: 14
++ Offset: 0 x 0
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ | 6999998 |
++ | 9#####c |
++ | 9#a18#c |
++ | a#a 7##aa71 |
++ | b#9 7##ac#c |
++ | 2##7 7#c 2##2|
++ |4###1 7##7a## |
++ -&gt;|5c92 7####b3 |&lt;-
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ --------------
++
++Char 0x045a 'њ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 12 x 8
++ Advance: 13
++ Offset: 1 x 0
++ _____________
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.795 894 |
++ |.b#8 ##7 |
++ |.b#8 ##7 |
++ |.b#caa##ca95 |
++ |.b#caa##cb##6|
++ |.b#8 ##7 8#a|
++ |.b#8 ##a7c#8|
++ -&gt;|.b#8 ####c81|&lt;-
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ -------------
++
++Char 0x045b 'ћ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 11
++ Advance: 10
++ Offset: 0 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ | 488 |
++ | 7## |
++ | 7## |
++ |6b##9993 |
++ |8###ccc3 |
++ | 7## 353 |
++ | 7##9###7 |
++ | 7##b6b## |
++ | 7##2 4##2|
++ | 7## 3##2|
++ -&gt;| 7## 3##2|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x04a3 'ң'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 10
++ Advance: 11
++ Offset: 1 x -2
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |.795 894 |
++ |.b#8 ##7 |
++ |.b#8 ##7 |
++ |.b#caa##7 |
++ |.b#caa##7 |
++ |.b#8 ##7 |
++ |.b#8 ##a76|
++ -&gt;|.b#8 #####|&lt;-
++ |. 6##|
++ |. 6#c|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x04af 'ү'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 11
++ Advance: 9
++ Offset: 0 x -3
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |696 696|
++ |4##1 ##5|
++ | c#6 4#c |
++ | 6#c 9#7 |
++ | 1##4##1 |
++ | 8#c#9 |
++ | 2###3 |
++ -&gt;| a#b |&lt;-
++ | 5#6 |
++ | 5#6 |
++ | 5#6 |
++ |.........|
++ |.........|
++ ---------
++
++Char 0x04e8 'Ө'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 10
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |. 6b##b6 .|
++ |. a#8118#a .|
++ |.6#a a#6.|
++ |.b#4 4#b.|
++ |.##1 1##.|
++ |.##########.|
++ |.b# #b.|
++ |.6#4 4#6.|
++ |. a#4 4#a .|
++ -&gt;|. 6b##b6 .|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x04e9 'ө'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 8
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 3a##a3 .|
++ |.3#911a#3.|
++ |.a#2 2#a.|
++ |.########.|
++ |.## ##.|
++ |.a#3 3#a.|
++ |.3#a11b#3.|
++ -&gt;|. 3a##a3 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x05d1 'ב'
++ Font: NachlieliCLM-Bold (14)
++ Bitmap: 7 x 8
++ Advance: 8
++ Offset: 1 x 0
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |.c##b4 |
++ |.667c#4 |
++ |. 2#a |
++ |. #b |
++ |. #b |
++ |. #b |
++ |.6666#c6|
++ -&gt;|.c######|&lt;-
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ --------
++
++Char 0x05d9 'י'
++ Font: NachlieliCLM-Bold (14)
++ Bitmap: 2 x 4
++ Advance: 4
++ Offset: 1 x 4
++ ____
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |.#b.|
++ |.#b.|
++ |.#b.|
++ |.#7.|
++ |....|
++ |....|
++ |....|
++ -&gt;|....|&lt;-
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ ----
++
++Char 0x05e2 'ע'
++ Font: NachlieliCLM-Bold (14)
++ Bitmap: 8 x 9
++ Advance: 8
++ Offset: 0 x -1
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ | 9#2 #b|
++ | 6#6 #b|
++ | 3#9 #b|
++ | ## #b|
++ | b#3 #b|
++ | 7#77#8|
++ | 49###a |
++ -&gt;|4##b74 |&lt;-
++ |13 |
++ |........|
++ |........|
++ |........|
++ |........|
++ --------
++
++Char 0x05e8 'ר'
++ Font: NachlieliCLM-Bold (14)
++ Bitmap: 7 x 8
++ Advance: 8
++ Offset: 0 x 0
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |3###b5 .|
++ |1667c#5.|
++ | 2#a.|
++ | #b.|
++ | #b.|
++ | #b.|
++ | #b.|
++ -&gt;| #b.|&lt;-
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ --------
++
++Char 0x05ea 'ת'
++ Font: NachlieliCLM-Bold (14)
++ Bitmap: 9 x 8
++ Advance: 10
++ Offset: 0 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ | 8####b4 .|
++ | 4#c67c#4.|
++ | #b 2#a.|
++ | #b #b.|
++ | #b #b.|
++ | #b #b.|
++ |18#9 #b.|
++ -&gt;|3#a1 #b.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x060c '،'
++ Font: KacstOne (14)
++ Bitmap: 3 x 4
++ Advance: 6
++ Offset: 2 x 2
++ ______
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |.. 1 .|
++ |..7 .|
++ |..a6 .|
++ |..5#2.|
++ |......|
++ -&gt;|......|&lt;-
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ ------
++
++Char 0x061f '؟'
++ Font: KacstOne (14)
++ Bitmap: 4 x 8
++ Advance: 4
++ Offset: 0 x 2
++ ____
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |1771|
++ |a119|
++ |b497|
++ |5c |
++ | 65 |
++ | 6 |
++ | 3 |
++ | a3 |
++ |....|
++ -&gt;|....|&lt;-
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ ----
++
++Char 0x0621 'ء'
++ Font: KacstOne (14)
++ Bitmap: 3 x 4
++ Advance: 6
++ Offset: 1 x 2
++ ______
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |.183..|
++ |.61 ..|
++ |.1b7..|
++ |.33 ..|
++ |......|
++ -&gt;|......|&lt;-
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ ------
++
++Char 0x0622 'آ'
++ Font: KacstOne (14)
++ Bitmap: 4 x 10
++ Advance: 4
++ Offset: 1 x 2
++ ____
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.4997|
++ |. |
++ |. 9 |
++ |. 3c |
++ |. 2# |
++ |. 1# |
++ |. # |
++ |. #1|
++ |. # |
++ |. 6 |
++ |.....|
++ -&gt;|.....|&lt;-
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ ----
++
++Char 0x0623 'أ'
++ Font: KacstOne (14)
++ Bitmap: 3 x 12
++ Advance: 3
++ Offset: 1 x 2
++ ___
++ |....|
++ |....|
++ |....|
++ |.37 |
++ |.6 |
++ |.582|
++ |.21 |
++ |. a |
++ |.3c |
++ |.2# |
++ |.1# |
++ |. # |
++ |. #1|
++ |. # |
++ |. 6 |
++ |....|
++ -&gt;|....|&lt;-
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ ---
++
++Char 0x0625 'إ'
++ Font: KacstOne (14)
++ Bitmap: 3 x 12
++ Advance: 3
++ Offset: 1 x -2
++ ___
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |.19 |
++ |.4b |
++ |.3c |
++ |.2# |
++ |.1# |
++ |. # |
++ |. # |
++ |. 6 |
++ |. |
++ -&gt;|.38 |&lt;-
++ |.552|
++ |.35 |
++ |....|
++ |....|
++ |....|
++ ---
++
++Char 0x0626 'ئ'
++ Font: KacstOne (14)
++ Bitmap: 9 x 10
++ Advance: 10
++ Offset: 1 x -1
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 83 |
++ |. 95 1 |
++ |.12 9#5|
++ |. 1 8211|
++ |.11 61 |
++ |.5 bc84 |
++ |.9 28c# |
++ |.a4 79 |
++ -&gt;|.7#a8a#8 |&lt;-
++ |. 9#c92 |
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0627 'ا'
++ Font: KacstOne (14)
++ Bitmap: 3 x 9
++ Advance: 3
++ Offset: 1 x 2
++ ___
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |. 1 |
++ |.1a |
++ |.3c |
++ |.2# |
++ |.1# |
++ |. # |
++ |. #1|
++ |. c |
++ |. 5 |
++ |....|
++ -&gt;|....|&lt;-
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ ---
++
++Char 0x0628 'ب'
++ Font: KacstOne (14)
++ Bitmap: 9 x 9
++ Advance: 10
++ Offset: 1 x -2
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 32|
++ |.6 aa|
++ |.a3 3#|
++ |.8#987789#|
++ |.19#####b8|
++ |. |
++ -&gt;|. |&lt;-
++ |. 42 |
++ |. 9b |
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0629 'ة'
++ Font: KacstOne (14)
++ Bitmap: 5 x 8
++ Advance: 6
++ Offset: 1 x 2
++ ______
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |.3c89 |
++ |. 413 |
++ |. 1 |
++ |. 1c7 |
++ |. 58#a|
++ |.51 6#|
++ |.a97b6|
++ |.7#b5 |
++ |......|
++ -&gt;|......|&lt;-
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ ------
++
++Char 0x062a 'ت'
++ Font: KacstOne (14)
++ Bitmap: 9 x 6
++ Advance: 10
++ Offset: 1 x 2
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 795c2 |
++ |. 5 4 5 |
++ |.6 #7|
++ |.c1 7a|
++ |.bc98778aa|
++ |.2a####cb6|
++ |..........|
++ -&gt;|..........|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x062b 'ث'
++ Font: KacstOne (14)
++ Bitmap: 9 x 7
++ Advance: 11
++ Offset: 0 x 2
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ | 7a ..|
++ | 425 ..|
++ | 98a332..|
++ |6 aa..|
++ |a3 4#..|
++ |8#977789#..|
++ |19#####b8..|
++ |...........|
++ -&gt;|...........|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x062c 'ج'
++ Font: KacstOne (14)
++ Bitmap: 8 x 10
++ Advance: 8
++ Offset: 1 x -3
++ ________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. 3888772|
++ |.2#####c |
++ |.1 492 |
++ |. 18 |
++ |. 7 |
++ |. 9 1#5 |
++ -&gt;|. b 53 |&lt;-
++ |. c5 |
++ |. 6#b89b6|
++ |. 6c#a3 |
++ |.........|
++ |.........|
++ --------
++
++Char 0x062d 'ح'
++ Font: KacstOne (14)
++ Bitmap: 8 x 10
++ Advance: 8
++ Offset: 1 x -3
++ ________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. 3888772|
++ |.2#####c |
++ |.1 492 |
++ |. 18 |
++ |. 7 |
++ |. 9 |
++ -&gt;|. b |&lt;-
++ |. c5 |
++ |. 6#b89b6|
++ |. 6c#a3 |
++ |.........|
++ |.........|
++ --------
++
++Char 0x062e 'خ'
++ Font: KacstOne (14)
++ Bitmap: 8 x 13
++ Advance: 8
++ Offset: 1 x -3
++ ________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. 56 |
++ |. 5a |
++ |. |
++ |. 3888772|
++ |.2#####c |
++ |.1 492 |
++ |. 18 |
++ |. 7 |
++ |. 9 |
++ -&gt;|. b |&lt;-
++ |. c5 |
++ |. 6#b89b6|
++ |. 6c#a3 |
++ |.........|
++ |.........|
++ --------
++
++Char 0x062f 'د'
++ Font: KacstOne (14)
++ Bitmap: 5 x 6
++ Advance: 6
++ Offset: 0 x 2
++ ______
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ | 3.|
++ | 5a.|
++ | 2c.|
++ | 2 c.|
++ |2b77#.|
++ | c###.|
++ |......|
++ -&gt;|......|&lt;-
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ ------
++
++Char 0x0630 'ذ'
++ Font: KacstOne (14)
++ Bitmap: 5 x 8
++ Advance: 6
++ Offset: 0 x 2
++ ______
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ | 37 .|
++ | 39 .|
++ | 3.|
++ | 69.|
++ | 3c.|
++ |2 c.|
++ |6a77b.|
++ |3###9.|
++ |......|
++ -&gt;|......|&lt;-
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ ------
++
++Char 0x0631 'ر'
++ Font: KacstOne (14)
++ Bitmap: 6 x 7
++ Advance: 6
++ Offset: 0 x -2
++ ______
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ | c3|
++ | b9|
++ | 2a|
++ | 29|
++ -&gt;|1 1b5|&lt;-
++ |5a9#c |
++ | 6#b2 |
++ |......|
++ |......|
++ |......|
++ ------
++
++Char 0x0632 'ز'
++ Font: KacstOne (14)
++ Bitmap: 6 x 11
++ Advance: 6
++ Offset: 0 x -2
++ ______
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ | 1#6 |
++ | 42 |
++ | |
++ | |
++ | a6|
++ | 9c|
++ | c|
++ | b|
++ -&gt;|1 98|&lt;-
++ |2a9c#2|
++ | 4cc4 |
++ |......|
++ |......|
++ |......|
++ ------
++
++Char 0x0633 'س'
++ Font: KacstOne (14)
++ Bitmap: 13 x 8
++ Advance: 14
++ Offset: 1 x -2
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |. 21 5 19|
++ |. 1 a7 b 2b|
++ |.41 8c8a#879|
++ |.7 3##a8c#6|
++ |.9 a |
++ -&gt;|.a6 285 |&lt;-
++ |.4####a |
++ |. 3774 |
++ |..............|
++ |..............|
++ |..............|
++ --------------
++
++Char 0x0634 'ش'
++ Font: KacstOne (14)
++ Bitmap: 13 x 13
++ Advance: 14
++ Offset: 1 x -2
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |. 3 |
++ |. 96 |
++ |. 2857 |
++ |. 1836 |
++ |. |
++ |. 21 5 19|
++ |. 1 a7 b 2b|
++ |.41 8c8a#879|
++ |.7 3##a8c#6|
++ |.9 a |
++ -&gt;|.a6 285 |&lt;-
++ |.4####a |
++ |. 3774 |
++ |..............|
++ |..............|
++ |..............|
++ --------------
++
++Char 0x0635 'ص'
++ Font: KacstOne (14)
++ Bitmap: 15 x 9
++ Advance: 16
++ Offset: 1 x -2
++ ________________
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |. 1a#7 |
++ |. 13 2b89#a|
++ |. 1 8a 3a1 2c|
++ |.4 5#a#a888ac|
++ |.7 #######c5|
++ |.9 9 |
++ -&gt;|.a6 275 |&lt;-
++ |.4####a |
++ |. 3774 |
++ |................|
++ |................|
++ |................|
++ ----------------
++
++Char 0x0636 'ض'
++ Font: KacstOne (14)
++ Bitmap: 15 x 12
++ Advance: 16
++ Offset: 1 x -2
++ ________________
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |. 6c2 |
++ |. 15 |
++ |. |
++ |. 1a#7 |
++ |. 14 1b89#a|
++ |. 1 8a 2a1 2c|
++ |.4 5#a#a888ac|
++ |.7 #######c5|
++ |.9 9 |
++ -&gt;|.a6 275 |&lt;-
++ |.4####a |
++ |. 3774 |
++ |................|
++ |................|
++ |................|
++ ----------------
++
++Char 0x0637 'ط'
++ Font: KacstOne (14)
++ Bitmap: 10 x 8
++ Advance: 10
++ Offset: 0 x 2
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ | 29 |
++ | 5#3 |
++ | 2# |
++ | # 152 |
++ | c 5###4|
++ | 985 179|
++ |69b#98889a|
++ |4########a|
++ |..........|
++ -&gt;|..........|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0638 'ظ'
++ Font: KacstOne (14)
++ Bitmap: 10 x 8
++ Advance: 10
++ Offset: 0 x 2
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ | 29 72 |
++ | 5#3 1a6 |
++ | 2# |
++ | # 152 |
++ | c 5###4|
++ | 985 179|
++ |69b#98889a|
++ |4########a|
++ |..........|
++ -&gt;|..........|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0639 'ع'
++ Font: KacstOne (14)
++ Bitmap: 7 x 11
++ Advance: 7
++ Offset: 1 x -4
++ _______
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |. a#6 |
++ |. 78 1 |
++ |. c8147 |
++ |. 6###8 |
++ |. 9b4 |
++ |.49 |
++ -&gt;|.91 |&lt;-
++ |.a1 |
++ |.7b4 |
++ |.1c###c6|
++ |. 6862 |
++ |........|
++ -------
++
++Char 0x063a 'غ'
++ Font: KacstOne (14)
++ Bitmap: 7 x 14
++ Advance: 7
++ Offset: 1 x -4
++ _______
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |. 68 |
++ |. 48 |
++ |. |
++ |. a#6 |
++ |. 78 1 |
++ |. c8158 |
++ |. 6###8 |
++ |. 9b4 |
++ |.49 |
++ -&gt;|.91 |&lt;-
++ |.a1 |
++ |.7b4 |
++ |.1c###c6|
++ |. 6862 |
++ |........|
++ -------
++
++Char 0x0641 'ف'
++ Font: KacstOne (14)
++ Bitmap: 10 x 9
++ Advance: 12
++ Offset: 1 x 2
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |. 74 .|
++ |. 75 .|
++ |. .|
++ |. 7c1.|
++ |. 4249.|
++ |. 9a3a.|
++ |.5 7c#.|
++ |.#98888889c.|
++ |.7########7.|
++ |............|
++ -&gt;|............|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x0642 'ق'
++ Font: KacstOne (14)
++ Bitmap: 9 x 12
++ Advance: 9
++ Offset: 1 x -2
++ _________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 1#7b |
++ |. 3 3 |
++ |. |
++ |. 9c2 |
++ |. 6c#9 |
++ |. a 4# |
++ |.2 #a8#1|
++ |.6 6###1|
++ |.8 6 |
++ -&gt;|.b3 68 |&lt;-
++ |.7#a8a#b1 |
++ |. 8c#b6 |
++ |..........|
++ |..........|
++ |..........|
++ ---------
++
++Char 0x0643 'ك'
++ Font: KacstOne (14)
++ Bitmap: 10 x 9
++ Advance: 10
++ Offset: 0 x 2
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ | 5 |
++ | 79 |
++ | 6a |
++ | 64 4c |
++ |11 5 2# |
++ |6 96 # |
++ |92 1 c1|
++ |8c655555c2|
++ |1b######b |
++ |..........|
++ -&gt;|..........|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0644 'ل'
++ Font: KacstOne (14)
++ Bitmap: 7 x 11
++ Advance: 7
++ Offset: 1 x -1
++ _______
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |. 7 |
++ |. 5c |
++ |. 4# |
++ |. 2# |
++ |. 1#1|
++ |. #1|
++ |.3 c2|
++ |.7 b2|
++ |.a2 b2|
++ -&gt;|.9#9a#9 |&lt;-
++ |.1a#c7 |
++ |........|
++ |........|
++ |........|
++ |........|
++ -------
++
++Char 0x0645 'م'
++ Font: KacstOne (14)
++ Bitmap: 6 x 10
++ Advance: 7
++ Offset: 1 x -3
++ _______
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |. 52 |
++ |. 8#c |
++ |.133#7 |
++ |.167c#2|
++ |.7#ccb |
++ |.8 |
++ -&gt;|.53 |&lt;-
++ |.27 |
++ |. 8 |
++ |. 4 |
++ |.......|
++ |.......|
++ -------
++
++Char 0x0646 'ن'
++ Font: KacstOne (14)
++ Bitmap: 7 x 11
++ Advance: 8
++ Offset: 1 x -2
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |. 3 |
++ |. 1#3 |
++ |. |
++ |. 1|
++ |. 1 77|
++ |.31 6a|
++ |.6 1b|
++ |.9 a|
++ -&gt;|.a5 14a7|&lt;-
++ |.5####9 |
++ |. 4751 |
++ |........|
++ |........|
++ |........|
++ --------
++
++Char 0x0647 'ه'
++ Font: KacstOne (14)
++ Bitmap: 5 x 6
++ Advance: 6
++ Offset: 1 x 2
++ ______
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |. 1 |
++ |. 1c7 |
++ |. 58#a|
++ |.51 5c|
++ |.a97a7|
++ |.7#b5 |
++ |......|
++ -&gt;|......|&lt;-
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ ------
++
++Char 0x0648 'و'
++ Font: KacstOne (14)
++ Bitmap: 6 x 9
++ Advance: 7
++ Offset: 1 x -2
++ _______
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |. 59 |
++ |. 1##7|
++ |. 546c|
++ |. 7c8#|
++ |. 2a##|
++ |. 1b|
++ -&gt;|. a7|&lt;-
++ |.778cc |
++ |. 8#b2 |
++ |.......|
++ |.......|
++ |.......|
++ -------
++
++Char 0x0649 'ى'
++ Font: KacstOne (14)
++ Bitmap: 9 x 9
++ Advance: 10
++ Offset: 1 x -1
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 1 |
++ |. 9#5|
++ |. 1 8211|
++ |.11 61 |
++ |.5 bc84 |
++ |.9 28c# |
++ |.a4 79 |
++ -&gt;|.7#a8a#8 |&lt;-
++ |. 9#c92 |
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x064a 'ي'
++ Font: KacstOne (14)
++ Bitmap: 9 x 11
++ Advance: 10
++ Offset: 1 x -3
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 1 |
++ |. 1a#4|
++ |. 1 1821 |
++ |.2 81 |
++ |.6 c#a6 |
++ |.a 49b |
++ |.c71 16b4 |
++ -&gt;|.6####a2 |&lt;-
++ |. 4773 |
++ |. 513 |
++ |. 1c7a |
++ |..........|
++ |..........|
++ ----------
++
++Char 0x064b 'ً'
++ Font: KacstOne (14)
++ Bitmap: 3 x 3
++ Advance: 2
++ Offset: 0 x 12
++ __
++ |...|
++ |...|
++ | 21|
++ |561|
++ |53 |
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ -&gt;|...|&lt;-
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ --
++
++Char 0x064e 'َ'
++ Font: KacstOne (14)
++ Bitmap: 2 x 2
++ Advance: 3
++ Offset: 0 x 13
++ ___
++ |...|
++ |...|
++ |24.|
++ |1 .|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ -&gt;|...|&lt;-
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ ---
++
++Char 0x0650 'ِ'
++ Font: KacstOne (14)
++ Bitmap: 3 x 2
++ Advance: 4
++ Offset: 0 x -4
++ ____
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ -&gt;|....|&lt;-
++ |....|
++ |....|
++ | 32.|
++ |52 .|
++ |....|
++ ----
++
++Char 0x0651 'ّ'
++ Font: KacstOne (14)
++ Bitmap: 3 x 2
++ Advance: 5
++ Offset: 0 x 12
++ _____
++ |.....|
++ |.....|
++ |.....|
++ |127..|
++ |b95..|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ -&gt;|.....|&lt;-
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ -----
++
++Char 0x0902 'ं'
++ Font: lohit_hi (18)
++ Bitmap: 3 x 2
++ Advance: 0
++ Offset: -3 x 11
++
++ |...|
++ |...|
++ |...|
++ |...|
++ | 22|
++ |2##|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ -&gt;|...|&lt;-
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++
++
++Char 0x0903 'ः'
++ Font: lohit_hi (18)
++ Bitmap: 3 x 6
++ Advance: 5
++ Offset: 1 x 1
++ _____
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.9#a.|
++ |.8#9.|
++ |. .|
++ |. .|
++ |.9#a.|
++ |.8#a.|
++ -&gt;|.....|&lt;-
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ -----
++
++Char 0x0905 'अ'
++ Font: lohit_hi (18)
++ Bitmap: 12 x 9
++ Advance: 11
++ Offset: 0 x 0
++ ___________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ | 6##b1b###a|
++ | 7#a5#a cc |
++ | 1#b cc |
++ | 4##6 cc |
++ |16429##### |
++ | bc1 1#bcc |
++ | 3##23#9cc |
++ | 3###b1cc |
++ -&gt;| cc |&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ -----------
++
++Char 0x0906 'आ'
++ Font: lohit_hi (18)
++ Bitmap: 15 x 9
++ Advance: 15
++ Offset: 0 x 0
++ _______________
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ | 6##a7#######b|
++ | 7#95#a cc cc |
++ | 1#b cc cc |
++ | 4##6 cc cc |
++ |27539##### cc |
++ | c#1 1cbcc cc |
++ | 3##24#9cc cc |
++ | 3###b1cc cc |
++ -&gt;| cc cc |&lt;-
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ ---------------
++
++Char 0x0907 'इ'
++ Font: lohit_hi (18)
++ Bitmap: 8 x 12
++ Advance: 8
++ Offset: 0 x -3
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |b######b|
++ | ## |
++ | 7#### |
++ | c# |
++ | 7#7 |
++ | 8###8 |
++ | cc |
++ |1##73#a |
++ -&gt;| a###c1 |&lt;-
++ | ac2 |
++ | 1c#5 |
++ | 21 |
++ |........|
++ |........|
++ --------
++
++Char 0x0908 'ई'
++ Font: lohit_hi (18)
++ Bitmap: 9 x 16
++ Advance: 8
++ Offset: -1 x -3
++ ________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ | 9##2|
++ | 9#611|
++ | cc |
++ | 8c4 |
++ |1########|
++ | 3666##63|
++ | 7#### |
++ | ## |
++ | 7#7 |
++ | 9###8 |
++ | cc |
++ | ##73#a |
++ -&gt;| 9####2 |&lt;-
++ | b#2 |
++ | 1b#6 |
++ | 21 |
++ |.........|
++ |.........|
++ --------
++
++Char 0x0909 'उ'
++ Font: lohit_hi (18)
++ Bitmap: 10 x 9
++ Advance: 9
++ Offset: 0 x 0
++ _________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |b########7|
++ | 3## |
++ | cc |
++ |473 3#b |
++ |1b98###7 |
++ | 8c3 5#7 |
++ | 1cc1 cb |
++ | 3##37#8 |
++ -&gt;| 2b##9 |&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ---------
++
++Char 0x090a 'ऊ'
++ Font: lohit_hi (18)
++ Bitmap: 14 x 9
++ Advance: 13
++ Offset: 0 x 0
++ _____________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |b############5|
++ | 4#c |
++ |131 cc |
++ |4b7 4c87##8 |
++ | cb8#####97#8 |
++ | 7c5 6## cc |
++ | 1c#1 2c9 2ca |
++ | 3##39#5 b#4 |
++ -&gt;| 3###6 54 |&lt;-
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ -------------
++
++Char 0x090f 'ए'
++ Font: lohit_hi (18)
++ Bitmap: 8 x 11
++ Advance: 7
++ Offset: 0 x -2
++ _______
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |b######8|
++ | cc cc |
++ | cc cc |
++ | cc cc |
++ | cc 4#9 |
++ | 9#4241 |
++ | a#5 |
++ | a#5 |
++ -&gt;| 9#5 |&lt;-
++ | 1## |
++ | 274 |
++ |........|
++ |........|
++ |........|
++ -------
++
++Char 0x0913 'ओ'
++ Font: lohit_hi (18)
++ Bitmap: 15 x 14
++ Advance: 15
++ Offset: 0 x -1
++ _______________
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ | 3#9 |
++ | 7#6 |
++ | 9#4 |
++ | ac2 |
++ | 7##b9########|
++ | 7#95#a cc cc |
++ | 1#b cc cc |
++ | 4##6 cc cc |
++ |25339##### cc |
++ | bc1 1cbcc cc |
++ | 3##23#9cc cc |
++ | 3###b1cc cc |
++ -&gt;| cc cc |&lt;-
++ | 22 22 |
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ ---------------
++
++Char 0x0914 'औ'
++ Font: lohit_hi (18)
++ Bitmap: 15 x 14
++ Advance: 15
++ Offset: 0 x -1
++ _______________
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ | 5#7 |
++ | 1ba2cb |
++ | 5##aa3 |
++ | 1a##7 |
++ | 8##a9########|
++ | 7#76#9 cc cc |
++ | 1cb cc cc |
++ | 4##6 cc cc |
++ |25339##### cc |
++ | bc1 1cbcc cc |
++ | 3##23#9cc cc |
++ | 3###b1cc cc |
++ -&gt;| cc cc |&lt;-
++ | 22 22 |
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ ---------------
++
++Char 0x0915 'क'
++ Font: lohit_hi (18)
++ Bitmap: 12 x 9
++ Advance: 11
++ Offset: -1 x 0
++ ___________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |1##########c|
++ | cc |
++ | 8######c2 |
++ | 7#81##b5#a |
++ | bc c#1 cc |
++ | 9#44## 1#b |
++ | 1c###c b#5 |
++ | cc296 |
++ -&gt;| cc |&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ -----------
++
++Char 0x0916 'ख'
++ Font: lohit_hi (18)
++ Bitmap: 13 x 9
++ Advance: 12
++ Offset: -1 x 0
++ ____________
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |1###########c|
++ | cc cc |
++ | 1 cc1b###c |
++ | 7#8cba#42#c |
++ | 2###3a#33#c |
++ | 9b1 2####c |
++ | 2b9 4#c |
++ | 4#8 7##c |
++ -&gt;| 3####7cc |&lt;-
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ ------------
++
++Char 0x0917 'ग'
++ Font: lohit_hi (18)
++ Bitmap: 9 x 9
++ Advance: 8
++ Offset: -1 x 0
++ ________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |1#######b|
++ | cc cc |
++ | cc cc |
++ | 1a#c cc |
++ | ##c cc |
++ | 2b8 cc |
++ | cc |
++ | cc |
++ -&gt;| cc |&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ --------
++
++Char 0x0918 'घ'
++ Font: lohit_hi (18)
++ Bitmap: 10 x 9
++ Advance: 9
++ Offset: 0 x 0
++ _________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |b########8|
++ | bc cc |
++ | c#1 cc |
++ | 4###3cc |
++ | 8#7 cc |
++ | cc 2## |
++ | 8#74### |
++ | 9##a#c |
++ -&gt;| cc |&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ---------
++
++Char 0x091a 'च'
++ Font: lohit_hi (18)
++ Bitmap: 10 x 9
++ Advance: 9
++ Offset: 0 x 0
++ _________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |b########8|
++ | cc |
++ |c######c |
++ | 7#7 cc |
++ | cc 2## |
++ | c#2b## |
++ | 4####c |
++ | cc |
++ -&gt;| cc |&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ---------
++
++Char 0x091b 'छ'
++ Font: lohit_hi (18)
++ Bitmap: 11 x 9
++ Advance: 10
++ Offset: 0 x 0
++ __________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |b#########8|
++ | cc cc |
++ | c#1 7##3 |
++ | 3###a#b#b |
++ | 7#8 bc cc |
++ | bc1 7#b#a |
++ | bc1 a##2 |
++ | 5#b25##4 |
++ -&gt;| 5###a1 |&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ ----------
++
++Char 0x091c 'ज'
++ Font: lohit_hi (18)
++ Bitmap: 11 x 9
++ Advance: 11
++ Offset: 0 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |b#########a|
++ | cc |
++ | cc |
++ |494 c####c |
++ |1cb 3c8 cc |
++ | 8#4 cc cc |
++ | c#4#c cc |
++ | 2c##4 cc |
++ -&gt;| cc |&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x091f 'ट'
++ Font: lohit_hi (18)
++ Bitmap: 9 x 9
++ Advance: 8
++ Offset: 0 x 0
++ ________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |b#######9|
++ | cc |
++ | cc |
++ | 3####c |
++ | b#2 |
++ | cc |
++ | a#2 |
++ | 3##33##2|
++ -&gt;| 3####4 |&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ --------
++
++Char 0x0920 'ठ'
++ Font: lohit_hi (18)
++ Bitmap: 9 x 9
++ Advance: 9
++ Offset: 0 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |b#######b|
++ | cc |
++ | cc |
++ | 3####c |
++ | b#2 7c4 |
++ | cc 1#b |
++ | a#2 cc |
++ | 2##36#9 |
++ -&gt;| 2c##9 |&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0921 'ड'
++ Font: lohit_hi (18)
++ Bitmap: 10 x 9
++ Advance: 9
++ Offset: 0 x 0
++ _________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |b########7|
++ | cc |
++ | 8#### |
++ | cc |
++ | 1 8#6 |
++ |3#9 9###7 |
++ | 9#6 cb |
++ | a#928#7 |
++ -&gt;| 6###8 |&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ---------
++
++Char 0x0922 'ढ'
++ Font: lohit_hi (18)
++ Bitmap: 9 x 9
++ Advance: 9
++ Offset: 0 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |b#######b|
++ | cc |
++ | cc |
++ | 4####c |
++ | c#1 |
++ | cc 7##6 |
++ | a#3cccc |
++ | 2#####b |
++ -&gt;| 2###c2 |&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0923 'ण'
++ Font: lohit_hi (18)
++ Bitmap: 11 x 9
++ Advance: 10
++ Offset: -1 x 0
++ __________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |1#########b|
++ | cc cc cc |
++ | cc cc cc |
++ | cc cc cc |
++ | cc cc cc |
++ | b#5#b cc |
++ | 2###2 cc |
++ | cc |
++ -&gt;| cc |&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ ----------
++
++Char 0x0924 'त'
++ Font: lohit_hi (18)
++ Bitmap: 11 x 9
++ Advance: 9
++ Offset: -1 x 0
++ _________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |1#########2|
++ | cc |
++ | cc |
++ | 5#####c |
++ | c# cc |
++ | cc cc |
++ | 8#5 cc |
++ | c#2 cc |
++ -&gt;| 1b9 cc |&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ ---------
++
++Char 0x0925 'थ'
++ Font: lohit_hi (18)
++ Bitmap: 10 x 9
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |.4###38###5|
++ |.c#3#b cc |
++ |.c#1cc cc |
++ |.4###9 cc |
++ |.b##9 #c |
++ |.7#8 2### |
++ |. 7###b#c |
++ |. cc |
++ -&gt;|. cc |&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ ----------
++
++Char 0x0926 'द'
++ Font: lohit_hi (18)
++ Bitmap: 9 x 10
++ Advance: 8
++ Offset: 0 x -1
++ ________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |b#######6|
++ | cc |
++ | 2##### |
++ | b#3 |
++ | cc |
++ | a#2 7a2 |
++ | 2##6##4 |
++ | 1a##c |
++ -&gt;| a#3 |&lt;-
++ | 253 |
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ --------
++
++Char 0x0927 'ध'
++ Font: lohit_hi (18)
++ Bitmap: 10 x 9
++ Advance: 10
++ Offset: 0 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |4########4|
++ |b#4#b cc |
++ |9###3 cc |
++ | b###4cc |
++ | a#7 cc |
++ | cc 6#c |
++ | a#46##c |
++ | 1a##a#c |
++ -&gt;| cc |&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0928 'न'
++ Font: lohit_hi (18)
++ Bitmap: 9 x 9
++ Advance: 9
++ Offset: 0 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |c#######b|
++ | cc |
++ | cc |
++ |2######c |
++ | b## cc |
++ | 198 cc |
++ | cc |
++ | cc |
++ -&gt;| cc |&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x092a 'प'
++ Font: lohit_hi (18)
++ Bitmap: 10 x 9
++ Advance: 8
++ Offset: -1 x 0
++ ________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |1########3|
++ | cc cc |
++ | cc cc |
++ | cc cc |
++ | cc cc |
++ | a#59#c |
++ | 1b###c |
++ | cc |
++ -&gt;| cc |&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ --------
++
++Char 0x092b 'फ'
++ Font: lohit_hi (18)
++ Bitmap: 12 x 9
++ Advance: 11
++ Offset: 0 x 0
++ ___________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |b##########6|
++ | cc cc |
++ | cc cc |
++ | cc c####1 |
++ | c#12##34#a |
++ | 4####c cb |
++ | cc 4c8 |
++ | cc 9b1 |
++ -&gt;| cc |&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ -----------
++
++Char 0x092c 'ब'
++ Font: lohit_hi (18)
++ Bitmap: 10 x 9
++ Advance: 8
++ Offset: -1 x 0
++ ________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |1########3|
++ | cc |
++ | 5##c#c |
++ | 6##7 cc |
++ | b#c#9cc |
++ | 9#56##c |
++ | 1a####c |
++ | cc |
++ -&gt;| cc |&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ --------
++
++Char 0x092d 'भ'
++ Font: lohit_hi (18)
++ Bitmap: 10 x 9
++ Advance: 10
++ Offset: 0 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |4########7|
++ |b#3#b cc |
++ |5#9cc cc |
++ | cc cc |
++ | 7###### |
++ | 1b#c cc |
++ | cc |
++ | cc |
++ -&gt;| cc |&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x092e 'म'
++ Font: lohit_hi (18)
++ Bitmap: 9 x 9
++ Advance: 9
++ Offset: 0 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |b#######b|
++ | cc cc |
++ | cc cc |
++ | cc cc |
++ |1######c |
++ | 3#9 cc |
++ | cc |
++ | cc |
++ -&gt;| cc |&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x092f 'य'
++ Font: lohit_hi (18)
++ Bitmap: 10 x 9
++ Advance: 9
++ Offset: -1 x 0
++ _________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |1########b|
++ | 2b8 cc |
++ | cc cc |
++ | 4#a cc |
++ | 4#a cc |
++ | 88 2c#c |
++ | 2b####c |
++ | cc |
++ -&gt;| cc |&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ---------
++
++Char 0x0930 'र'
++ Font: lohit_hi (18)
++ Bitmap: 8 x 9
++ Advance: 7
++ Offset: -1 x 0
++ _______
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |1c#####b|
++ | cc |
++ | 1 cc |
++ | 5#a3#a |
++ | c###3 |
++ | 3#a |
++ | 7#7 |
++ | 9#5 |
++ -&gt;| 9a2|&lt;-
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ -------
++
++Char 0x0931 'ऱ'
++ Font: lohit_hi (18)
++ Bitmap: 8 x 9
++ Advance: 7
++ Offset: -1 x 0
++ _______
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |1######b|
++ | cc |
++ | 131 cc |
++ | 6#b2#b |
++ | c###3 |
++ | 3#a |
++ | 7#7 |
++ | 9#5 |
++ -&gt;| ac29b1|&lt;-
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ -------
++
++Char 0x0932 'ल'
++ Font: lohit_hi (18)
++ Bitmap: 11 x 9
++ Advance: 11
++ Offset: 0 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |b#########a|
++ | cc |
++ | cc |
++ | 1b###c##c |
++ | a#51##9cc |
++ | cc 1#c cc |
++ | a#2 11 cc |
++ | 2##4 cc |
++ -&gt;| 1a#8 cc |&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0933 'ळ'
++ Font: lohit_hi (18)
++ Bitmap: 11 x 8
++ Advance: 11
++ Offset: 0 x 1
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |b#########b|
++ | cc |
++ | cc |
++ | 2###a###2 |
++ | b#3c#a3#a |
++ | cc 8#4 cc |
++ | b#4b#93#a |
++ | 2###6###2 |
++ -&gt;|...........|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0935 'व'
++ Font: lohit_hi (18)
++ Bitmap: 9 x 9
++ Advance: 8
++ Offset: 0 x 0
++ ________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |b#######5|
++ | cc |
++ | 9###c |
++ | 9#61cc |
++ | cc cc |
++ | b#35## |
++ | 2####c |
++ | cc |
++ -&gt;| cc |&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ --------
++
++Char 0x0936 'श'
++ Font: lohit_hi (18)
++ Bitmap: 11 x 9
++ Advance: 10
++ Offset: 0 x 0
++ __________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ | 4##c####c1|
++ | c#6#9 cc |
++ | c#6## cc |
++ | 4###c cc |
++ | 6#8 cc |
++ |2###a cc |
++ | 3#c1 cc |
++ | 2##2 cc |
++ -&gt;| 2a7 cc |&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ ----------
++
++Char 0x0937 'ष'
++ Font: lohit_hi (18)
++ Bitmap: 10 x 9
++ Advance: 8
++ Offset: -1 x 0
++ ________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |1########2|
++ | ##8 cc |
++ | c##9cc |
++ | cc3##c |
++ | c#24#c |
++ | 3####c |
++ | cc |
++ | cc |
++ -&gt;| cc |&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ --------
++
++Char 0x0938 'स'
++ Font: lohit_hi (18)
++ Bitmap: 11 x 9
++ Advance: 10
++ Offset: 0 x 0
++ __________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |b#########8|
++ | cc cc |
++ | cc cc |
++ |5a5cc cc |
++ |1######## |
++ | 4c7 cc |
++ | 8c3 cc |
++ | cc1 cc |
++ -&gt;| 4b7 cc |&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ ----------
++
++Char 0x0939 'ह'
++ Font: lohit_hi (18)
++ Bitmap: 10 x 10
++ Advance: 8
++ Offset: -1 x -1
++ ________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |1#######c1|
++ | cc |
++ | 7####c |
++ | cc |
++ | 5####2 |
++ | 8#84#b |
++ | cc cc |
++ | b#1 66 |
++ -&gt;| 3##61 |&lt;-
++ | 19##2 |
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ --------
++
++Char 0x093c '़'
++ Font: lohit_hi (18)
++ Bitmap: 3 x 1
++ Advance: 0
++ Offset: -8 x 0
++
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ -&gt;|5c6.....|&lt;-
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++
++
++Char 0x093e 'ा'
++ Font: lohit_hi (18)
++ Bitmap: 5 x 9
++ Advance: 5
++ Offset: 0 x 0
++ _____
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |b###9|
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ -&gt;| cc |&lt;-
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ -----
++
++Char 0x093f 'ि'
++ Font: lohit_hi (18)
++ Bitmap: 10 x 13
++ Advance: 5
++ Offset: 0 x 0
++ _____
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ | 5###7 |
++ | 5#a26##2 |
++ | bc1 2##1|
++ | cc 4#a|
++ |b###9 |
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ -&gt;| cc |&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ -----
++
++Char 0x0940 'ी'
++ Font: lohit_hi (18)
++ Bitmap: 8 x 13
++ Advance: 5
++ Offset: -3 x 0
++ _____
++ |........|
++ |........|
++ |........|
++ |........|
++ |1b#c2 |
++ |a#6#c1 |
++ |bc15c7 |
++ |3a6 cb |
++ | b###9|
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ -&gt;| cc |&lt;-
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ -----
++
++Char 0x0941 'ु'
++ Font: lohit_hi (18)
++ Bitmap: 8 x 5
++ Advance: 0
++ Offset: -7 x -4
++
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ -&gt;| 4###3|&lt;-
++ | 585#b|
++ |7#6 cc|
++ |2##b27#9|
++ | 6###9 |
++ |........|
++
++
++Char 0x0942 'ू'
++ Font: lohit_hi (18)
++ Bitmap: 7 x 4
++ Advance: 0
++ Offset: -4 x -3
++
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -&gt;|1b##8 |&lt;-
++ |a#56#b |
++ |b#215#8|
++ |4###2aa|
++ |.......|
++ |.......|
++
++
++Char 0x0943 'ृ'
++ Font: lohit_hi (18)
++ Bitmap: 5 x 4
++ Advance: 0
++ Offset: -4 x -4
++
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ -&gt;|.....|&lt;-
++ |3###1|
++ |c#1 |
++ |b#355|
++ |2###9|
++ |.....|
++
++
++Char 0x0945 'ॅ'
++ Font: lohit_hi (18)
++ Bitmap: 7 x 3
++ Advance: 0
++ Offset: -5 x 10
++
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |153 55|
++ | c#15#9|
++ | 3###a |
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -&gt;|.......|&lt;-
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++
++
++Char 0x0947 'े'
++ Font: lohit_hi (18)
++ Bitmap: 6 x 5
++ Advance: 0
++ Offset: -6 x 8
++
++ |......|
++ |......|
++ |......|
++ |......|
++ |3c9 |
++ | 7#6 |
++ | 9#3 |
++ | ac1|
++ | 21|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ -&gt;|......|&lt;-
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++
++
++Char 0x0948 'ै'
++ Font: lohit_hi (18)
++ Bitmap: 7 x 5
++ Advance: 0
++ Offset: -7 x 8
++
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ | 7c4 |
++ |1aa3c9 |
++ | 4##ba |
++ | 8#c5|
++ | 131|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -&gt;|.......|&lt;-
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++
++
++Char 0x0949 'ॉ'
++ Font: lohit_hi (18)
++ Bitmap: 8 x 13
++ Advance: 5
++ Offset: -3 x 0
++ _____
++ |........|
++ |........|
++ |........|
++ |........|
++ |142 242 |
++ |2#a b#3 |
++ | 5###6 |
++ | |
++ | b###9|
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ -&gt;| cc |&lt;-
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ -----
++
++Char 0x094b 'ो'
++ Font: lohit_hi (18)
++ Bitmap: 7 x 14
++ Advance: 5
++ Offset: -2 x -1
++ _____
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |692 |
++ |1cb |
++ | 4#8 |
++ | 8c4 |
++ | ####c|
++ | 3##52|
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ -&gt;| cc |&lt;-
++ | 22 |
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -----
++
++Char 0x094c 'ौ'
++ Font: lohit_hi (18)
++ Bitmap: 8 x 14
++ Advance: 5
++ Offset: -3 x -1
++ _____
++ |........|
++ |........|
++ |........|
++ |........|
++ | 77 |
++ |1647a2 |
++ |1b#896 |
++ | 5##8 |
++ | ####c|
++ | 3##52|
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ -&gt;| cc |&lt;-
++ | 22 |
++ |........|
++ |........|
++ |........|
++ |........|
++ -----
++
++Char 0x094d '्'
++ Font: lohit_hi (18)
++ Bitmap: 6 x 3
++ Advance: 0
++ Offset: -3 x -3
++
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ -&gt;|......|&lt;-
++ |5##2 |
++ |12a#5 |
++ | 7a2|
++ |......|
++ |......|
++
++
++Char 0x0964 '।'
++ Font: lohit_hi (18)
++ Bitmap: 2 x 9
++ Advance: 5
++ Offset: 1 x 0
++ _____
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.99..|
++ |.cc..|
++ |.cc..|
++ |.cc..|
++ |.cc..|
++ |.cc..|
++ |.cc..|
++ |.cc..|
++ -&gt;|.cc..|&lt;-
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ -----
++
++Char 0x0966 '०'
++ Font: lohit_hi (18)
++ Bitmap: 7 x 7
++ Advance: 10
++ Offset: 1 x 1
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 4###5 ..|
++ |.4#c2b#5..|
++ |.ac2 1cb..|
++ |.cc cc..|
++ |.ac2 1cb..|
++ |.4#c2a#5..|
++ |. 4###5 ..|
++ -&gt;|..........|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0967 '१'
++ Font: lohit_hi (18)
++ Bitmap: 6 x 10
++ Advance: 10
++ Offset: 2 x -1
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..2c##b1..|
++ |..a#35#8..|
++ |..cc 1#b..|
++ |..9#68#c..|
++ |..19###c..|
++ |.. cc..|
++ |.. cc..|
++ |.. cc..|
++ -&gt;|.. cc..|&lt;-
++ |.. 88..|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0968 '२'
++ Font: lohit_hi (18)
++ Bitmap: 7 x 10
++ Advance: 10
++ Offset: 1 x -1
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.1a###8 ..|
++ |.5a4 7#7..|
++ |. cc..|
++ |. cc..|
++ |. 5#9..|
++ |.1#####1..|
++ |. 9##c ..|
++ |. 9#5 ..|
++ -&gt;|. c#2..|&lt;-
++ |. 385..|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x096b '५'
++ Font: lohit_hi (18)
++ Bitmap: 7 x 11
++ Advance: 10
++ Offset: 1 x -1
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.484 ..|
++ |.9c3 ..|
++ |.bc a#9..|
++ |.bc ##c..|
++ |.7#7 ##4..|
++ |. 8####1..|
++ |. 6b5..|
++ |. 3c9..|
++ |. #c..|
++ -&gt;|. 2#c..|&lt;-
++ |. 363..|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x096c '६'
++ Font: lohit_hi (18)
++ Bitmap: 7 x 12
++ Advance: 10
++ Offset: 2 x -3
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..1b###4 .|
++ |..b#4242 .|
++ |..cc .|
++ |..a#6 .|
++ |..2####3 .|
++ |..8#6 .|
++ |..bc 132.|
++ |..5##4c#b.|
++ -&gt;|.. 2b###4.|&lt;-
++ |.. 8#4.|
++ |.. 2#b.|
++ |.. 11.|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x096e '८'
++ Font: lohit_hi (18)
++ Bitmap: 7 x 9
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 7b4..|
++ |. 6#a ..|
++ |. 5#a ..|
++ |. 5#b ..|
++ |.4#c ..|
++ |.b#2 ..|
++ |.c# ..|
++ |.7#8 3#c..|
++ -&gt;|. 7###b1..|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x096f '९'
++ Font: lohit_hi (18)
++ Bitmap: 7 x 12
++ Advance: 10
++ Offset: 1 x -2
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. a##a ..|
++ |.8#88#8 ..|
++ |.bc1 #c ..|
++ |.ab11#c ..|
++ |.4#98#8 ..|
++ |. 9##a1 ..|
++ |. ab1 ..|
++ |. 1bb1 ..|
++ |. 2#a ..|
++ -&gt;|. 4#8..|&lt;-
++ |. 5#b..|
++ |. 781..|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0982 'ং'
++ Font: MuktiNarrow (18)
++ Bitmap: 8 x 11
++ Advance: 9
++ Offset: 2 x 1
++ _________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..3###7 |
++ |..c#6## |
++ |..##6## |
++ |..7###3 |
++ |.. |
++ |..b#5 |
++ |..1##5 |
++ |.. 2##5 |
++ |.. 2##5 |
++ |.. 2##4 |
++ |.. 2##2|
++ -&gt;|..........|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ---------
++
++Char 0x09ac 'ব'
++ Font: MuktiNarrow (18)
++ Bitmap: 10 x 13
++ Advance: 10
++ Offset: 0 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |1333333321|
++ |#########c|
++ | ##2 |
++ | 3###1 |
++ | 19####1 |
++ | 5##8 ##1 |
++ |8##2 ##1 |
++ |2##6 ##1 |
++ | 1##7 ##1 |
++ | 1c#9##1 |
++ | a###1 |
++ | 9##1 |
++ -&gt;| 33 |&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x09b2 'ল'
++ Font: MuktiNarrow (18)
++ Bitmap: 14 x 13
++ Advance: 13
++ Offset: 0 x 0
++ _____________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |1333333333332 |
++ |#############8|
++ | ##1 |
++ | ##1 |
++ | 9###c#####1 |
++ | 8#a2b##4###1 |
++ | ##1 1 2##1 |
++ | ##1 ##1 |
++ | 8#b1 ##1 |
++ | 8##8 ##1 |
++ | ##1 |
++ | ##1 |
++ -&gt;| 55 |&lt;-
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ -------------
++
++Char 0x09be 'া'
++ Font: MuktiNarrow (18)
++ Bitmap: 6 x 13
++ Advance: 5
++ Offset: 0 x 0
++ _____
++ |......|
++ |......|
++ |......|
++ |......|
++ |13332 |
++ |#####5|
++ | 2## |
++ | 1## |
++ | 1## |
++ | 1## |
++ | 1## |
++ | 1## |
++ | 1## |
++ | 1## |
++ | 1## |
++ | 1## |
++ -&gt;| 11 |&lt;-
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ -----
++
++Char 0x0a02 'ਂ'
++ Font: lohit_pa (19)
++ Bitmap: 3 x 2
++ Advance: 0
++ Offset: -3 x 11
++
++ |...|
++ |...|
++ |...|
++ |...|
++ |b#9|
++ |9#7|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ -&gt;|...|&lt;-
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++
++
++Char 0x0a05 'ਅ'
++ Font: lohit_pa (19)
++ Bitmap: 13 x 10
++ Advance: 12
++ Offset: 0 x -1
++ ____________
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |a##1 c##b|
++ | 5#94##5 cc |
++ | #####9 cc |
++ | 1##61##9## |
++ | 9## ##### |
++ | ##9 8#c cc |
++ | 6826##9 cc |
++ | 7##3 cc |
++ -&gt;| cc |&lt;-
++ | 33 |
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ ------------
++
++Char 0x0a06 'ਆ'
++ Font: lohit_pa (19)
++ Bitmap: 18 x 10
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |a##1 c#######a|
++ | 5#94##5 cc cc |
++ | #####9 cc cc |
++ | 1##61##9## cc |
++ | 9## ##### cc |
++ | ##9 8#c cc 22 |
++ | 6826##9 cc |
++ | 7##3 cc |
++ -&gt;| cc |&lt;-
++ | 33 |
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ -----------------
++
++Char 0x0a07 'ਇ'
++ Font: lohit_pa (19)
++ Bitmap: 14 x 13
++ Advance: 14
++ Offset: 0 x 0
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ | 1c##a |
++ | a#57#7 |
++ | ## 77 |
++ | cc |
++ |##############|
++ | cc c# cc |
++ | cc 8#5 cc |
++ | cc 1##5 cc |
++ | cc 2#####b |
++ | cc 1b#3 |
++ | cc 6a3 |
++ | cc 9#7 166 |
++ -&gt;| cc 6###c2 |&lt;-
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ --------------
++
++Char 0x0a08 'ਈ'
++ Font: lohit_pa (19)
++ Bitmap: 15 x 13
++ Advance: 14
++ Offset: -1 x 0
++ ______________
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ | a##b1 |
++ | 8#55#a |
++ | 77 ## |
++ | cc |
++ |1##############|
++ | cc ## cc |
++ | 9#4 ## cc |
++ | 3##2 ## cc |
++ | 8####c cc |
++ | 6#c1 cc |
++ | ##2 cc |
++ | 3##4 462 cc |
++ -&gt;| 2c###4 cc |&lt;-
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ --------------
++
++Char 0x0a09 'ਉ'
++ Font: lohit_pa (19)
++ Bitmap: 12 x 17
++ Advance: 11
++ Offset: -1 x -3
++ ___________
++ |............|
++ |............|
++ |............|
++ | 8###7 |
++ | b#729#a |
++ | 6#8 8#5 |
++ | b#2 2#b |
++ | cc cc |
++ |2###########|
++ | cc c# |
++ | c# 3#b |
++ | a#2 3##4 |
++ | 7######5 |
++ | 2c9 6#9 |
++ | a#2 ## |
++ | 2##24#b |
++ -&gt;| 3###c2 |&lt;-
++ | |
++ | 34 142 |
++ | 8#####4 |
++ |............|
++ |............|
++ -----------
++
++Char 0x0a0a 'ਊ'
++ Font: lohit_pa (19)
++ Bitmap: 12 x 18
++ Advance: 11
++ Offset: -1 x -4
++ ___________
++ |............|
++ |............|
++ |............|
++ | 8###7 |
++ | b#729#a |
++ | 6#8 8#5 |
++ | b#2 2#b |
++ | cc cc |
++ |2###########|
++ | cc c# |
++ | c# 3#b |
++ | a#2 3##4 |
++ | 7######5 |
++ | 2c9 6#9 |
++ | a#2 ## |
++ | 2##24#b |
++ -&gt;| 3###c2 |&lt;-
++ | 34 142 |
++ | 8#####3 |
++ | 571 363 |
++ | 7#####3 |
++ |............|
++ -----------
++
++Char 0x0a10 'ਐ'
++ Font: lohit_pa (19)
++ Bitmap: 13 x 15
++ Advance: 12
++ Offset: 0 x -1
++ ____________
++ |.............|
++ |.............|
++ |.............|
++ | ###8 |
++ | 233a8 |
++ | 76 |
++ | 9####83 |
++ | 242 275 |
++ |a##1 c##b|
++ | 5#94##5 cc |
++ | #####9 cc |
++ | 1##61##9## |
++ | 9## ##### |
++ | ##9 8#c cc |
++ | 6825##9 cc |
++ | 7##4 cc |
++ -&gt;| 21 cc |&lt;-
++ | 33 |
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ ------------
++
++Char 0x0a13 'ਓ'
++ Font: lohit_pa (19)
++ Bitmap: 12 x 14
++ Advance: 11
++ Offset: -1 x 0
++ ___________
++ |............|
++ |............|
++ |............|
++ | 5#####c |
++ | 8#c2 |
++ | 5#a |
++ | a#2 |
++ | cc |
++ |2###########|
++ | cc c# |
++ | cc 2#b |
++ | ac1 3##5 |
++ | 7######6 |
++ | 2b8 7#9 |
++ | ac1 ## |
++ | 2##24#b |
++ -&gt;| 3###c2 |&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ -----------
++
++Char 0x0a15 'ਕ'
++ Font: lohit_pa (19)
++ Bitmap: 12 x 10
++ Advance: 10
++ Offset: -1 x -1
++ __________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |2##########2|
++ | cc |
++ | 1ca |
++ | 1c###7c8 |
++ | a#51c##3 |
++ | ## 3## |
++ | a#64###4 |
++ | 1b##a5#9 |
++ -&gt;| cc |&lt;-
++ | 33 |
++ |............|
++ |............|
++ |............|
++ |............|
++ ----------
++
++Char 0x0a16 'ਖ'
++ Font: lohit_pa (19)
++ Bitmap: 11 x 10
++ Advance: 10
++ Offset: 0 x -1
++ __________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |a##7 ###a|
++ | 2#c ## |
++ | ####### |
++ | 2ca ## |
++ | 9#5 ## |
++ | 6#8 ## |
++ | 8#927## |
++ | 5##### |
++ -&gt;| ## |&lt;-
++ | 33 |
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ ----------
++
++Char 0x0a17 'ਗ'
++ Font: lohit_pa (19)
++ Bitmap: 12 x 10
++ Advance: 11
++ Offset: 0 x -1
++ ___________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |###########9|
++ | cc cc |
++ | cc cc |
++ | 4##### cc |
++ | c#1 cc cc |
++ | c# cc cc |
++ | 6#7 cc cc |
++ | a#7#c cc |
++ -&gt;| 9##4 cc |&lt;-
++ | 33 |
++ |............|
++ |............|
++ |............|
++ |............|
++ -----------
++
++Char 0x0a18 'ਘ'
++ Font: lohit_pa (19)
++ Bitmap: 12 x 10
++ Advance: 12
++ Offset: 0 x -1
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |c##6 7#8c##b|
++ | 3#b ##ccc |
++ | #c ###cc |
++ | 3#a c#bcc |
++ | a#5 8#7cc |
++ | 9#a3##8## |
++ | 7####### |
++ | 6##c |
++ -&gt;| cc |&lt;-
++ | 33 |
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x0a1a 'ਚ'
++ Font: lohit_pa (19)
++ Bitmap: 11 x 9
++ Advance: 10
++ Offset: 0 x 0
++ __________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |##########7|
++ | cc |
++ | 22 cc |
++ | a#c cc |
++ |2#######c |
++ | c# cc |
++ | 6#8 cc |
++ | 9#83#b |
++ -&gt;| 6###3 |&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ ----------
++
++Char 0x0a1b 'ਛ'
++ Font: lohit_pa (19)
++ Bitmap: 11 x 9
++ Advance: 11
++ Offset: 0 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |###########|
++ | ## |
++ | 4####### |
++ | c#1 |
++ | ##1 |
++ | 2#######3 |
++ | b#2cc 3#b |
++ | b#2cc 3#b |
++ -&gt;| 3#######3 |&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0a1c 'ਜ'
++ Font: lohit_pa (19)
++ Bitmap: 12 x 10
++ Advance: 10
++ Offset: -1 x -1
++ __________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |2##########1|
++ | ## |
++ | ## |
++ | 274 ## |
++ | 4### ## |
++ | a####### |
++ | ## ## |
++ | ## ## |
++ -&gt;| ## ## |&lt;-
++ | 55 55 |
++ |............|
++ |............|
++ |............|
++ |............|
++ ----------
++
++Char 0x0a1d 'ਝ'
++ Font: lohit_pa (19)
++ Bitmap: 10 x 9
++ Advance: 9
++ Offset: 0 x 0
++ _________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |#########6|
++ | ab #c |
++ | 2ba16#8 |
++ | 8#####1 |
++ | 24117#a |
++ | ## |
++ | a##5c#8 |
++ | 6####7 |
++ -&gt;| 2##2 |&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ---------
++
++Char 0x0a1f 'ਟ'
++ Font: lohit_pa (19)
++ Bitmap: 10 x 9
++ Advance: 9
++ Offset: 0 x 0
++ _________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |#########6|
++ | cc |
++ | cc |
++ | 7###c |
++ | 2##a2 |
++ |1##2 |
++ |1##1 |
++ | 3##3 693 |
++ -&gt;| 2c###3 |&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ---------
++
++Char 0x0a20 'ਠ'
++ Font: lohit_pa (19)
++ Bitmap: 12 x 9
++ Advance: 10
++ Offset: -1 x 0
++ __________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |2##########1|
++ | ## |
++ | ## |
++ | 8##7 |
++ | 1c#99#c1 |
++ | 9#6 6#9 |
++ | ## ## |
++ | 9#8118#9 |
++ -&gt;| 8####7 |&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ----------
++
++Char 0x0a21 'ਡ'
++ Font: lohit_pa (19)
++ Bitmap: 11 x 9
++ Advance: 10
++ Offset: -1 x 0
++ __________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |2##########|
++ | 1#c |
++ | 2c#####8 |
++ | 2######2 |
++ | 6#9 |
++ | 3###81#c |
++ | c#36###a |
++ | b#3 7##3 |
++ -&gt;| 2####b2 |&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ ----------
++
++Char 0x0a22 'ਢ'
++ Font: lohit_pa (19)
++ Bitmap: 11 x 9
++ Advance: 10
++ Offset: 0 x 0
++ __________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |##########b|
++ | ## |
++ |1c#b ## |
++ |9######## |
++ | cc |
++ | a#2 |
++ | 5#88###5 |
++ | 9##51ba |
++ -&gt;| 6####2 |&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ ----------
++
++Char 0x0a23 'ਣ'
++ Font: lohit_pa (19)
++ Bitmap: 11 x 9
++ Advance: 10
++ Offset: 0 x 0
++ __________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |##########a|
++ | 6##2 |
++ | 2###4 |
++ | 3####aa8 |
++ | 5##46c5 |
++ |2##1 |
++ | 9#8 1 |
++ | 8##3 4b7 |
++ -&gt;| 4####5 |&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ ----------
++
++Char 0x0a24 'ਤ'
++ Font: lohit_pa (19)
++ Bitmap: 11 x 9
++ Advance: 10
++ Offset: -1 x 0
++ __________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |2##########|
++ | 3c9 |
++ | 5#8 |
++ | 3######2 |
++ | 4######1 |
++ | 5#9 |
++ | 461 #c |
++ | 9#71 8#9 |
++ -&gt;| 5####8 |&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ ----------
++
++Char 0x0a25 'ਥ'
++ Font: lohit_pa (19)
++ Bitmap: 10 x 10
++ Advance: 10
++ Offset: 0 x -1
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |#########c|
++ | 7#6 cc |
++ | 3c9 cc |
++ | 4###### |
++ | b#3 cc |
++ | c#2 cc |
++ | 2##46## |
++ | 2b#### |
++ -&gt;| cc |&lt;-
++ | 33 |
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0a26 'ਦ'
++ Font: lohit_pa (19)
++ Bitmap: 11 x 9
++ Advance: 10
++ Offset: 0 x 0
++ __________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |##########a|
++ | ## |
++ | 11 ## |
++ |1##c ## |
++ |8######## |
++ | cc |
++ | 9#4 |
++ | 2##3 693 |
++ -&gt;| 3####5 |&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ ----------
++
++Char 0x0a27 'ਧ'
++ Font: lohit_pa (19)
++ Bitmap: 10 x 10
++ Advance: 10
++ Offset: 0 x -1
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |#########c|
++ | 5#8 cc |
++ | cc cc |
++ | 2#b cc |
++ | 8#7 cc |
++ | ##3 cc |
++ | 3##45## |
++ | 2c#### |
++ -&gt;| cc |&lt;-
++ | 33 |
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0a28 'ਨ'
++ Font: lohit_pa (19)
++ Bitmap: 11 x 9
++ Advance: 10
++ Offset: -1 x 0
++ __________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |1##########|
++ | ## |
++ | ## |
++ | 1c##b1 |
++ | 2##55##1 |
++ | a#5 5#a |
++ | ## ## |
++ | a#4 5#a |
++ -&gt;| 2c#67#c1 |&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ ----------
++
++Char 0x0a2a 'ਪ'
++ Font: lohit_pa (19)
++ Bitmap: 11 x 10
++ Advance: 10
++ Offset: -1 x -1
++ __________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |1###2 c##b|
++ | 6#9 cc |
++ | ## cc |
++ | 2#c cc |
++ | 8#7 cc |
++ | ##3 cc |
++ | 3##45## |
++ | 2c#### |
++ -&gt;| cc |&lt;-
++ | 33 |
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ ----------
++
++Char 0x0a2b 'ਫ'
++ Font: lohit_pa (19)
++ Bitmap: 10 x 9
++ Advance: 9
++ Offset: 0 x 0
++ _________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |#########9|
++ | cc |
++ | 1c##### |
++ | a#5 |
++ | ## |
++ | b#a###3 |
++ | 5##22#c |
++ | 8c42#c |
++ -&gt;| 7###4 |&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ---------
++
++Char 0x0a2c 'ਬ'
++ Font: lohit_pa (19)
++ Bitmap: 12 x 10
++ Advance: 10
++ Offset: -1 x -1
++ __________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |2##########2|
++ | 3c9 cc |
++ | 9#91 cc |
++ | b##### |
++ | 6#b cc |
++ | ##1 cc |
++ | 6#b39## |
++ | 5##### |
++ -&gt;| cc |&lt;-
++ | 33 |
++ |............|
++ |............|
++ |............|
++ |............|
++ ----------
++
++Char 0x0a2d 'ਭ'
++ Font: lohit_pa (19)
++ Bitmap: 10 x 9
++ Advance: 9
++ Offset: 0 x 0
++ _________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |#########a|
++ | cc |
++ | 2###8#c |
++ | b#47##9 |
++ | b#35##7 |
++ | 3###9#c |
++ | #c |
++ | 9a2 9#7 |
++ -&gt;| 1a###7 |&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ---------
++
++Char 0x0a2e 'ਮ'
++ Font: lohit_pa (19)
++ Bitmap: 12 x 10
++ Advance: 10
++ Offset: -1 x -1
++ __________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |2###6 ###a|
++ | 3#b cc |
++ | #c cc |
++ | ## cc |
++ | 1######c |
++ | 7## cc |
++ | c#c cc |
++ | ##a cc |
++ -&gt;| 6a4 cc |&lt;-
++ | 33 |
++ |............|
++ |............|
++ |............|
++ |............|
++ ----------
++
++Char 0x0a2f 'ਯ'
++ Font: lohit_pa (19)
++ Bitmap: 12 x 10
++ Advance: 11
++ Offset: 0 x -1
++ ___________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |###########7|
++ | 4#a cc |
++ | #c cc |
++ | #c cc |
++ | 4#a ####c |
++ | 8#8 cc cc |
++ | 1c#7#c cc |
++ | 8##b cc |
++ -&gt;| cc |&lt;-
++ | 33 |
++ |............|
++ |............|
++ |............|
++ |............|
++ -----------
++
++Char 0x0a30 'ਰ'
++ Font: lohit_pa (19)
++ Bitmap: 10 x 9
++ Advance: 9
++ Offset: 0 x 0
++ _________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |#########7|
++ | ## |
++ | ## |
++ | 4###### |
++ | c#1 ## |
++ | b#1 ## |
++ | 5#9 ## |
++ | 7#a2#c |
++ -&gt;| 5###4 |&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ---------
++
++Char 0x0a32 'ਲ'
++ Font: lohit_pa (19)
++ Bitmap: 13 x 9
++ Advance: 11
++ Offset: -1 x 0
++ ___________
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |2###########3|
++ | 8c3 4c8 |
++ | 3b8 8c3 |
++ | 3##4##3 |
++ | 5#######5 |
++ | c# 3631#c |
++ | c# #c |
++ | 7#a 1a#7 |
++ -&gt;| 6##7##6 |&lt;-
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ -----------
++
++Char 0x0a35 'ਵ'
++ Font: lohit_pa (19)
++ Bitmap: 11 x 9
++ Advance: 10
++ Offset: -1 x 0
++ __________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |1##########|
++ | cc |
++ | 4######c |
++ | b#1 |
++ | bc1 |
++ | 5######c |
++ | c#1 |
++ | 7#8 |
++ -&gt;| 8###b |&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ ----------
++
++Char 0x0a36 'ਸ਼'
++ Font: lohit_pa (19)
++ Bitmap: 11 x 10
++ Advance: 10
++ Offset: 0 x -1
++ __________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |##########a|
++ | 8#6 cc |
++ | 1ba cc |
++ | 99 cc |
++ | a#####c |
++ | 6## cc |
++ | b## cc |
++ | ##bb#4cc |
++ -&gt;| 6a4571cc |&lt;-
++ | 33 |
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ ----------
++
++Char 0x0a38 'ਸ'
++ Font: lohit_pa (19)
++ Bitmap: 11 x 10
++ Advance: 10
++ Offset: 0 x -1
++ __________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |##########a|
++ | 8#6 cc |
++ | 1ba cc |
++ | 99 cc |
++ | a#####c |
++ | 6## cc |
++ | b## cc |
++ | ##b cc |
++ -&gt;| 6a4 cc |&lt;-
++ | 33 |
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ ----------
++
++Char 0x0a39 'ਹ'
++ Font: lohit_pa (19)
++ Bitmap: 10 x 9
++ Advance: 10
++ Offset: 0 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |#########c|
++ | cc |
++ | cc |
++ | cc |
++ | 7##5 cc |
++ | ## cc |
++ | 7#8 cc |
++ | 7#b2#c |
++ -&gt;| 4###5 |&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0a3c '਼'
++ Font: lohit_pa (19)
++ Bitmap: 3 x 3
++ Advance: 0
++ Offset: -5 x -3
++
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ -&gt;|.....|&lt;-
++ |22 ..|
++ |c#5..|
++ |12 ..|
++ |.....|
++ |.....|
++
++
++Char 0x0a3e 'ਾ'
++ Font: lohit_pa (19)
++ Bitmap: 6 x 6
++ Advance: 5
++ Offset: 0 x 3
++ _____
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |#####8|
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ | 22 |
++ |......|
++ |......|
++ -&gt;|......|&lt;-
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ -----
++
++Char 0x0a3f 'ਿ'
++ Font: lohit_pa (19)
++ Bitmap: 8 x 14
++ Advance: 5
++ Offset: 0 x -1
++ _____
++ |........|
++ |........|
++ |........|
++ |........|
++ | 1c##a |
++ | a#57#7|
++ | ## 77|
++ | cc |
++ |#####8 |
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ -&gt;| cc |&lt;-
++ | 33 |
++ |........|
++ |........|
++ |........|
++ |........|
++ -----
++
++Char 0x0a40 'ੀ'
++ Font: lohit_pa (19)
++ Bitmap: 8 x 14
++ Advance: 5
++ Offset: -2 x -1
++ _____
++ |........|
++ |........|
++ |........|
++ |........|
++ |1c##a |
++ |a#46#8 |
++ |77 #c |
++ | cc |
++ | #####8|
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ -&gt;| cc |&lt;-
++ | 33 |
++ |........|
++ |........|
++ |........|
++ |........|
++ -----
++
++Char 0x0a41 'ੁ'
++ Font: lohit_pa (19)
++ Bitmap: 7 x 2
++ Advance: 0
++ Offset: -8 x -3
++
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ -&gt;|........|&lt;-
++ |........|
++ |241 44.|
++ |4#####8.|
++ |........|
++ |........|
++
++
++Char 0x0a42 'ੂ'
++ Font: lohit_pa (19)
++ Bitmap: 7 x 4
++ Advance: 0
++ Offset: -8 x -4
++
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ -&gt;|........|&lt;-
++ |45 253.|
++ |8#####3.|
++ |571 363.|
++ |7#####3.|
++ |........|
++
++
++Char 0x0a47 'ੇ'
++ Font: lohit_pa (19)
++ Bitmap: 7 x 5
++ Advance: 0
++ Offset: -8 x 9
++
++ |........|
++ |........|
++ |........|
++ | 12 .|
++ |5###a1 .|
++ | 223b9 .|
++ | 55.|
++ | 11.|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ -&gt;|........|&lt;-
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++
++
++Char 0x0a48 'ੈ'
++ Font: lohit_pa (19)
++ Bitmap: 7 x 5
++ Advance: 0
++ Offset: -8 x 9
++
++ |........|
++ |........|
++ |........|
++ |6###3 .|
++ |1337a3 .|
++ | 571.|
++ |4####b6.|
++ | 43 177.|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ -&gt;|........|&lt;-
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++
++
++Char 0x0a4b 'ੋ'
++ Font: lohit_pa (19)
++ Bitmap: 7 x 3
++ Advance: 0
++ Offset: -8 x 10
++
++ |........|
++ |........|
++ |........|
++ |........|
++ |572131 .|
++ |2#####7.|
++ | 111a9.|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ -&gt;|........|&lt;-
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++
++
++Char 0x0a4c 'ੌ'
++ Font: lohit_pa (19)
++ Bitmap: 7 x 5
++ Advance: 0
++ Offset: -6 x 9
++
++ |.......|
++ |.......|
++ |.......|
++ |66 |
++ |5#####2|
++ | ac4b8|
++ | 79585|
++ | 121 |
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -&gt;|.......|&lt;-
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++
++
++Char 0x0a4d '੍'
++ Font: lohit_pa (19)
++ Bitmap: 8 x 4
++ Advance: 0
++ Offset: -4 x -4
++
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ -&gt;|........|&lt;-
++ |2###4 |
++ | 359#6 |
++ | 4b7 |
++ | 242|
++ |........|
++
++
++Char 0x0a5c 'ੜ'
++ Font: lohit_pa (19)
++ Bitmap: 11 x 9
++ Advance: 11
++ Offset: 0 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |##########b|
++ | ## |
++ | 4######7 |
++ | 5######8 |
++ | 6#9 |
++ | #c |
++ |3##a412b#6 |
++ | a######4 |
++ -&gt;| 197 7c5 |&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0a70 'ੰ'
++ Font: lohit_pa (19)
++ Bitmap: 5 x 4
++ Advance: 0
++ Offset: -4 x 10
++
++ |.....|
++ |.....|
++ |.....|
++ |4###2|
++ |b#4#a|
++ |88 88|
++ |25541|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ -&gt;|.....|&lt;-
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++
++
++Char 0x0a71 'ੱ'
++ Font: lohit_pa (19)
++ Bitmap: 7 x 3
++ Advance: 0
++ Offset: -5 x 11
++
++ |.......|
++ |.......|
++ |.......|
++ |88 187|
++ |6c6 9c3|
++ | 8###5 |
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -&gt;|.......|&lt;-
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++
++
++Char 0x0a82 'ં'
++ Font: lohit_gu (18)
++ Bitmap: 3 x 2
++ Advance: 0
++ Offset: -3 x 11
++
++ |...|
++ |...|
++ |...|
++ |...|
++ |a#a|
++ |a#9|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ -&gt;|...|&lt;-
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++
++
++Char 0x0a85 'અ'
++ Font: lohit_gu (18)
++ Bitmap: 12 x 9
++ Advance: 14
++ Offset: 0 x 0
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |5###a1 bb..|
++ |2316#b ##..|
++ | ## 99 ##..|
++ | 19#a ## ##..|
++ |8###c1 #####..|
++ | ##3 2#b ##..|
++ | 8#c2a#6 ##..|
++ | 8###6 ##..|
++ -&gt;| ##..|&lt;-
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ --------------
++
++Char 0x0a86 'આ'
++ Font: lohit_gu (18)
++ Bitmap: 16 x 9
++ Advance: 18
++ Offset: 0 x 0
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |5###a1 bb bb..|
++ |2316#b ## ##..|
++ | ## 99 ## ##..|
++ | 19#a ## ## ##..|
++ |8###c1 ##### ##..|
++ | ##3 2#b ## ##..|
++ | 8#c2a#6 ## ##..|
++ | 8###6 ## ##..|
++ -&gt;| ## ##..|&lt;-
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0x0a87 'ઇ'
++ Font: lohit_gu (18)
++ Bitmap: 10 x 12
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |. 6b5|
++ |. 6#c1|
++ |. c#2 |
++ |.1a##a1## |
++ |.a#71 1## |
++ |.##1 1## |
++ |.8#b2 ## |
++ |. c##a ##1 |
++ |.9#7 ## |
++ |.##1 3#b |
++ |.9#8 1##3 |
++ -&gt;|. 7####4 |&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ ----------
++
++Char 0x0a88 'ઈ'
++ Font: lohit_gu (18)
++ Bitmap: 11 x 12
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |. a##2|
++ |. 8#a#a|
++ |. ##188|
++ |.19##91## |
++ |.a#81 1#c |
++ |.##1 1## |
++ |.8#b1 ## |
++ |. c##a ## |
++ |.9#7 ## |
++ |.##1 4#a |
++ |.9#8 1##3 |
++ -&gt;|. 7####4 |&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ----------
++
++Char 0x0a89 'ઉ'
++ Font: lohit_gu (18)
++ Bitmap: 9 x 12
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |. 2c#b .|
++ |. 2##2 .|
++ |. c#2 .|
++ |.6#8a###3 .|
++ |.a#4 3## .|
++ |.##1 4#c .|
++ |.##17###3 .|
++ |.c#2 4##4.|
++ |.9#6 2#c.|
++ |.3##1 2#c.|
++ |. 7##2 a#6.|
++ -&gt;|. 6####5 .|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0a8f 'એ'
++ Font: lohit_gu (18)
++ Bitmap: 12 x 13
++ Advance: 14
++ Offset: 0 x 0
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ | 3##a2 ..|
++ | 5##7 ..|
++ | 8#b1..|
++ | 4#a..|
++ |5###a1 bb..|
++ |2316#b ##..|
++ | ## 99 ##..|
++ | 19#a ## ##..|
++ |8###c1 #####..|
++ | ##3 2#b ##..|
++ | 8#c2a#6 ##..|
++ | 8###6 ##..|
++ -&gt;| ##..|&lt;-
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ --------------
++
++Char 0x0a93 'ઓ'
++ Font: lohit_gu (18)
++ Bitmap: 16 x 13
++ Advance: 18
++ Offset: 0 x 0
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ | a##3 ..|
++ | 3##9 ..|
++ | 7#b1..|
++ | 4#a..|
++ |5###a1 bb bb..|
++ |2316#b ## ##..|
++ | ## 99 ## ##..|
++ | 19#a ## ## ##..|
++ |8###c1 ##### ##..|
++ | ##3 2#b ## ##..|
++ | 8#c2a#6 ## ##..|
++ | 8###6 ## ##..|
++ -&gt;| ## ##..|&lt;-
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0x0a95 'ક'
++ Font: lohit_gu (18)
++ Bitmap: 9 x 9
++ Advance: 9
++ Offset: 0 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ | 1a####5 |
++ | c#6 21 |
++ | b#5 33 |
++ | 1b####b1|
++ |18####8 |
++ |4a71 9#9 |
++ | ## |
++ |5#a1 6#b |
++ -&gt;| 6####a1 |&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0a96 'ખ'
++ Font: lohit_gu (18)
++ Bitmap: 11 x 9
++ Advance: 12
++ Offset: 0 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |3##7 bb.|
++ | 2## 11 ##.|
++ | ## ## ##.|
++ | ## #####.|
++ | ## ## ##.|
++ | ## 1## ##.|
++ | a#77#a ##.|
++ | 1c##b1 ##.|
++ -&gt;| ##.|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x0a97 'ગ'
++ Font: lohit_gu (18)
++ Bitmap: 9 x 9
++ Advance: 11
++ Offset: 0 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ | 9###8 bb..|
++ | 452b#8##..|
++ | 1####..|
++ | 1####..|
++ |8#41b#8##..|
++ |1a###7 ##..|
++ | ##..|
++ | ##..|
++ -&gt;| ##..|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0a98 'ઘ'
++ Font: lohit_gu (18)
++ Bitmap: 8 x 9
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |.3###8 bb..|
++ |.c#5 ##..|
++ |.c#3 ##..|
++ |.4###a ##..|
++ |.9#8 ##..|
++ |.##1 1##..|
++ |.a#6 3###..|
++ |.1b###c##..|
++ -&gt;|. ##..|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0a9a 'ચ'
++ Font: lohit_gu (18)
++ Bitmap: 11 x 9
++ Advance: 12
++ Offset: 0 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |1b###9 bb.|
++ | 32 7#9 ##.|
++ | 1## ##.|
++ | 9#9 1##.|
++ | ####9 6##.|
++ | ##1 1###.|
++ | 7#a 3####.|
++ | 7####4##.|
++ -&gt;| ##.|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x0a9b 'છ'
++ Font: lohit_gu (18)
++ Bitmap: 10 x 9
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |.2b##59##9 .|
++ |.b#5 9#87#8.|
++ |.c#4 ##1 #c.|
++ |.4#####54##.|
++ |.6#a 2c###b.|
++ |.c#1 4#8.|
++ |.##1 b#2.|
++ |.6#b1 1c#5 .|
++ -&gt;|. 5#####3 .|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x0a9c 'જ'
++ Font: lohit_gu (18)
++ Bitmap: 11 x 9
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |.3###91 5c7|
++ |.##37##14#b |
++ |.##228###b |
++ |.4###78##1 |
++ |. 2###2 |
++ |. 9###9 |
++ |. ##3## |
++ |. ##5#c |
++ -&gt;|. 4###4 |&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ -----------
++
++Char 0x0a9d 'ઝ'
++ Font: lohit_gu (18)
++ Bitmap: 11 x 9
++ Advance: 12
++ Offset: 0 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |1a###3 8#6.|
++ |2634##4b#6 .|
++ | 6###3 .|
++ | 2####6 .|
++ | 2##2a#6.|
++ | 6#9 1#c.|
++ |22 3##2 ##.|
++ |5####43 7#9.|
++ -&gt;| 5###a .|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x0a9f 'ટ'
++ Font: lohit_gu (18)
++ Bitmap: 8 x 9
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. 4####2 |
++ |. 8914#c |
++ |. 5#b |
++ |. 4##b1 |
++ |.1c#81 |
++ |.b#4 |
++ |.## 66|
++ |.9#8 1b#5|
++ -&gt;|. 7####4 |&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0aa0 'ઠ'
++ Font: lohit_gu (18)
++ Bitmap: 8 x 9
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 4#####1.|
++ |. ##3 .|
++ |. b#6 .|
++ |. 3####8 .|
++ |.4#b1 a#8.|
++ |.##1 1##.|
++ |.##1 1##.|
++ |.7#a 8#8.|
++ -&gt;|. 5####7 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0aa1 'ડ'
++ Font: lohit_gu (18)
++ Bitmap: 9 x 9
++ Advance: 10
++ Offset: 0 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ | 9####a .|
++ | 9#8 .|
++ | ##1 .|
++ | a#7 .|
++ | 9####c1.|
++ |11 6#b.|
++ |a#3 1##.|
++ |2##4 a#7.|
++ -&gt;| 1a####6 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0aa2 'ઢ'
++ Font: lohit_gu (18)
++ Bitmap: 8 x 9
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. 4####3 |
++ |. 23 3## |
++ |. 4#b |
++ |. 17##a1 |
++ |.3##81 |
++ |.c#35###6|
++ |.## ##3##|
++ |.9#88#c#a|
++ -&gt;|. 8####8 |&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0aa3 'ણ'
++ Font: lohit_gu (18)
++ Bitmap: 11 x 10
++ Advance: 14
++ Offset: 1 x -1
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |.bb 7###6 bb..|
++ |.## 121a#7##..|
++ |.## 1####..|
++ |.## 2#c##..|
++ |.## 1b#6##..|
++ |.## a###6 ##..|
++ |.c#2 ##..|
++ |.8#8 ##..|
++ -&gt;|. b#b2 4bc##..|&lt;-
++ |. 6#####5 ..|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ --------------
++
++Char 0x0aa4 'ત'
++ Font: lohit_gu (18)
++ Bitmap: 8 x 9
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |. bb..|
++ |. ##..|
++ |. 4######..|
++ |.5##2 ##..|
++ |.c#2 ##..|
++ |.## ##..|
++ |.b#3 ##..|
++ |.4##2 ##..|
++ -&gt;|. 3##9 ##..|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0aa5 'થ'
++ Font: lohit_gu (18)
++ Bitmap: 10 x 10
++ Advance: 11
++ Offset: 0 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ | 2####2 .|
++ | b#43#b bb.|
++ | ##11## ##.|
++ | 8##c#9 ##.|
++ | 9###1 ##.|
++ |1###7 ##.|
++ | 99 3##.|
++ | 3cb228###.|
++ | 2c###8##.|
++ -&gt;| ##.|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0aa6 'દ'
++ Font: lohit_gu (18)
++ Bitmap: 8 x 9
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.2c###b |
++ |.c#5 |
++ |.b#4 |
++ |.2####2 |
++ |.9#9 |
++ |.## |
++ |.##1 121|
++ |.8#9 1c#3|
++ -&gt;|. 7####4 |&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0aa7 'ધ'
++ Font: lohit_gu (18)
++ Bitmap: 9 x 10
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |. 5##6 .|
++ |.3##a3 bb.|
++ |.##2 ##.|
++ |.b#6 ##.|
++ |.1###a ##.|
++ |.8##3 2##.|
++ |.##1 b##.|
++ |.a#7 3####.|
++ |.1a####3##.|
++ -&gt;|. ##.|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0aa8 'ન'
++ Font: lohit_gu (18)
++ Bitmap: 9 x 9
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |. bb.|
++ |. ##.|
++ |. 7#######.|
++ |.8#99#7 ##.|
++ |.##11## ##.|
++ |.## ## ##.|
++ |.9#66#9 ##.|
++ |.1a##a1 ##.|
++ -&gt;|. ##.|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0aaa 'પ'
++ Font: lohit_gu (18)
++ Bitmap: 9 x 9
++ Advance: 11
++ Offset: 0 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |c##4 bb..|
++ | 4#c ##..|
++ | 1## ##..|
++ | 1## ##..|
++ | 1## 1##..|
++ | a#8 a##..|
++ | 1a#####..|
++ | ##..|
++ -&gt;| ##..|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0aab 'ફ'
++ Font: lohit_gu (18)
++ Bitmap: 8 x 11
++ Advance: 9
++ Offset: 0 x -2
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ | 8####4.|
++ | b#8 131.|
++ | c#3 22.|
++ | 3#####8.|
++ |18####4 .|
++ |4a6 2##6.|
++ | 3##.|
++ |4a7 9#9.|
++ -&gt;| 7####8 .|&lt;-
++ | 8#8 .|
++ | 7##2.|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0aac 'બ'
++ Font: lohit_gu (18)
++ Bitmap: 10 x 9
++ Advance: 13
++ Offset: 1 x 0
++ _____________
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |. 3###6 bb..|
++ |.4##3 ##..|
++ |.b#2 ##..|
++ |.## ## ##..|
++ |.##2 #####..|
++ |.7##26#c ##..|
++ |. 6####3 ##..|
++ |. ##..|
++ -&gt;|. ##..|&lt;-
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ -------------
++
++Char 0x0aad 'ભ'
++ Font: lohit_gu (18)
++ Bitmap: 11 x 9
++ Advance: 13
++ Offset: 1 x 0
++ _____________
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |. 3###a1 bb.|
++ |.3##47#b ##.|
++ |.b#4 ## ##.|
++ |.## ## ##.|
++ |.## b######.|
++ |.b#4 b#b ##.|
++ |.5#a ##.|
++ |. a#8 ##.|
++ -&gt;|. 9#6 ##.|&lt;-
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ -------------
++
++Char 0x0aae 'મ'
++ Font: lohit_gu (18)
++ Bitmap: 9 x 9
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |.2###2 bb.|
++ |. 5#b ##.|
++ |. ## ##.|
++ |. ## ##.|
++ |.2c#######.|
++ |.c#5## ##.|
++ |.##4## ##.|
++ |.4###6 ##.|
++ -&gt;|. ##.|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0aaf 'ય'
++ Font: lohit_gu (18)
++ Bitmap: 9 x 9
++ Advance: 11
++ Offset: 0 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |3###c2 bb..|
++ | 5## ##..|
++ | 1##1##..|
++ | c###6 ##..|
++ | ## 2##..|
++ | a#4 9##..|
++ | 2##37###..|
++ | 3###8##..|
++ -&gt;| ##..|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0ab0 'ર'
++ Font: lohit_gu (18)
++ Bitmap: 7 x 9
++ Advance: 8
++ Offset: 0 x 0
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |9###8 .|
++ |331a#8 .|
++ | ## .|
++ | 1## .|
++ | 1c#6 .|
++ |c###6 .|
++ | a#3 .|
++ | 7#7 .|
++ -&gt;| 1####7.|&lt;-
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ --------
++
++Char 0x0ab2 'લ'
++ Font: lohit_gu (18)
++ Bitmap: 9 x 9
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |. 2b##7 bb..|
++ |.1##5 ##..|
++ |.9#6 ##..|
++ |.##1 ##..|
++ |.## 5#####..|
++ |.##1 ##..|
++ |.9#6 ##..|
++ |.2##3 ##..|
++ -&gt;|. 3###7 ##..|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x0ab3 'ળ'
++ Font: lohit_gu (18)
++ Bitmap: 10 x 9
++ Advance: 13
++ Offset: 1 x 0
++ _____________
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |. 5###6###3..|
++ |.5##2 b#6#c..|
++ |.c#3 ## ##..|
++ |.## ## ##..|
++ |.c#2 ## ##..|
++ |.6#b16#a ##..|
++ |. 6###c1 ##..|
++ |. ##..|
++ -&gt;|. 99..|&lt;-
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ -------------
++
++Char 0x0ab5 'વ'
++ Font: lohit_gu (18)
++ Bitmap: 8 x 9
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |. 7##b bb..|
++ |.7#c1 ##..|
++ |.##2 ##..|
++ |.## ##..|
++ |.c#3 ##..|
++ |.4##429##..|
++ |. 3######..|
++ |. ##..|
++ -&gt;|. ##..|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0ab6 'શ'
++ Font: lohit_gu (18)
++ Bitmap: 10 x 9
++ Advance: 12
++ Offset: 0 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ | 3####2 bb..|
++ | c#45#b ##..|
++ | ##1 ## ##..|
++ | 5##7#c ##..|
++ | 2##5 ##..|
++ |3####4 ##..|
++ | 3##8 ##..|
++ | a#6 ##..|
++ -&gt;| 1## ##..|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x0ab7 'ષ'
++ Font: lohit_gu (18)
++ Bitmap: 9 x 9
++ Advance: 11
++ Offset: 0 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |2##8 bb..|
++ | 2##5 ##..|
++ | ##b8 ##..|
++ | ##1ab##..|
++ | ##1 7##..|
++ | a#919##..|
++ | 1a#####..|
++ | ##..|
++ -&gt;| ##..|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0ab8 'સ'
++ Font: lohit_gu (18)
++ Bitmap: 10 x 9
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |.9###7 bb.|
++ |.33 9#8 ##.|
++ |. 1## ##.|
++ |. 2#c ##.|
++ |. 1c######.|
++ |.b###6 ##.|
++ |. c# ##.|
++ |. 9#3 ##.|
++ -&gt;|. 3###c1 ##.|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x0ab9 'હ'
++ Font: lohit_gu (18)
++ Bitmap: 8 x 10
++ Advance: 9
++ Offset: 1 x -1
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. 5#####1|
++ |. ##3 |
++ |. a####6 |
++ |.2##72a#8|
++ |.a#6 1##|
++ |.##1 5#b|
++ |.##11c##2|
++ |.8#8 |
++ -&gt;|. b#a1 11|&lt;-
++ |. 5####5|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0abe 'ા'
++ Font: lohit_gu (18)
++ Bitmap: 2 x 9
++ Advance: 5
++ Offset: 2 x 0
++ _____
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |..bb.|
++ |..##.|
++ |..##.|
++ |..##.|
++ |..##.|
++ |..##.|
++ |..##.|
++ |..##.|
++ -&gt;|..##.|&lt;-
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ -----
++
++Char 0x0abf 'િ'
++ Font: lohit_gu (18)
++ Bitmap: 11 x 14
++ Advance: 5
++ Offset: 2 x -1
++ _____
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.. 6#####3 |
++ |.. b#a1 4##6 |
++ |..8#9 2##2|
++ |..##2 8#7|
++ |..## 142|
++ |..## |
++ |..## |
++ |..## |
++ |..## |
++ |..## |
++ |..## |
++ |..## |
++ -&gt;|..## |&lt;-
++ |..22 |
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ -----
++
++Char 0x0ac0 'ી'
++ Font: lohit_gu (18)
++ Bitmap: 6 x 13
++ Advance: 5
++ Offset: -3 x 0
++ _____
++ |........|
++ |........|
++ |........|
++ |........|
++ | 9##c1..|
++ |8#86#a..|
++ |c#21##..|
++ |## ##..|
++ |12 ##..|
++ | ##..|
++ | ##..|
++ | ##..|
++ | ##..|
++ | ##..|
++ | ##..|
++ | ##..|
++ -&gt;| ##..|&lt;-
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ -----
++
++Char 0x0ac1 'ુ'
++ Font: lohit_gu (18)
++ Bitmap: 9 x 4
++ Advance: 0
++ Offset: -8 x -4
++
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ -&gt;|.........|&lt;-
++ | 9###4|
++ |8a1 112##|
++ |3##81 4#c|
++ | 8####c2|
++ |.........|
++
++
++Char 0x0ac2 'ૂ'
++ Font: lohit_gu (18)
++ Bitmap: 10 x 4
++ Advance: 0
++ Offset: -5 x -4
++
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ -&gt;|..........|&lt;-
++ |2c###c3 |
++ |b#4 3##a |
++ |c#245 4##1|
++ |3###8 253|
++ |..........|
++
++
++Char 0x0ac3 'ૃ'
++ Font: lohit_gu (18)
++ Bitmap: 6 x 4
++ Advance: 0
++ Offset: -5 x -4
++
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ -&gt;|......|&lt;-
++ |3###c |
++ |##4 |
++ |c#3 |
++ |3####8|
++ |......|
++
++
++Char 0x0ac7 'ે'
++ Font: lohit_gu (18)
++ Bitmap: 8 x 5
++ Advance: 0
++ Offset: -8 x 8
++
++ |........|
++ |........|
++ |........|
++ |........|
++ |9##4 |
++ | 2c#b1 |
++ | 6##2 |
++ | 3##2|
++ | 12 |
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ -&gt;|........|&lt;-
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++
++
++Char 0x0ac8 'ૈ'
++ Font: lohit_gu (18)
++ Bitmap: 9 x 5
++ Advance: 0
++ Offset: -9 x 8
++
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |b##39#6 |
++ | 3##88#6 |
++ | 7#99b2|
++ | 4#aa8|
++ | 2222|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ -&gt;|.........|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++
++
++Char 0x0acb 'ો'
++ Font: lohit_gu (18)
++ Bitmap: 8 x 13
++ Advance: 5
++ Offset: -4 x 0
++ _____
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |2##a2 .|
++ | 5##7 .|
++ | a#a .|
++ | 6#a.|
++ | cb.|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ -&gt;| ##.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ -----
++
++Char 0x0acd '્'
++ Font: lohit_gu (18)
++ Bitmap: 8 x 4
++ Advance: 0
++ Offset: -4 x -4
++
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ -&gt;|........|&lt;-
++ |18c4 |
++ |27c#a1 |
++ | 3##4 |
++ | 9#7|
++ |........|
++
++
++Char 0x0b83 'ஃ'
++ Font: TSCu_Paranar (18)
++ Bitmap: 14 x 12
++ Advance: 14
++ Offset: 0 x 2
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ | 2###a |
++ | a####7 |
++ | b#b##8 |
++ | 4####2 |
++ | 133 |
++ | |
++ | |
++ | 4###3 6###3 |
++ |1####c 1####c |
++ |4##7##14##7##1|
++ |1##### 2####c |
++ | 5###3 6###3 |
++ |..............|
++ -&gt;|..............|&lt;-
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ --------------
++
++Char 0x0b86 'ஆ'
++ Font: TSCu_Paranar (18)
++ Bitmap: 23 x 15
++ Advance: 25
++ Offset: 1 x -4
++ _________________________
++ |.........................|
++ |.........................|
++ |.........................|
++ |.........................|
++ |.........................|
++ |.........................|
++ |. 1a####5 4##1 .|
++ |. c######a4##1 .|
++ |. 3##25####b##1 .|
++ |. 1##8a##6####1 .|
++ |. 6####34####1 .|
++ |. 143 5####1 .|
++ |.2#################1 .|
++ |.a##7555555559#####c62 .|
++ |.9##9 ###5######3.|
++ |.2###9 1b##44##919##.|
++ -&gt;|. 1c###c77a###924##2 5##.|&lt;-
++ |. 2a#############12##a.|
++ |. 3##a5546###b .|
++ |. 7########3 .|
++ |. 1443 .|
++ |.........................|
++ -------------------------
++
++Char 0x0b87 'இ'
++ Font: TSCu_Paranar (18)
++ Bitmap: 16 x 17
++ Advance: 16
++ Offset: 0 x -1
++ ________________
++ |................|
++ | 6#####8 |
++ | 1c##b79###2 |
++ | b##2 c##1 |
++ | 6##3 1##8 |
++ | c#8 9## |
++ | 2##33####6 5##1|
++ | 3##3######74##1|
++ | 3##6##b####4##1|
++ | 2##4b######5##1|
++ | ##7 2315##5##1|
++ | 8#########6##1|
++ | 8####76######1|
++ | 7####4 8####a |
++ |1##c###b##86## |
++ |4##31####c 4##1 |
++ -&gt;|1##a8#####8##b |&lt;-
++ | 4#####8####c1 |
++ |................|
++ |................|
++ |................|
++ |................|
++ ----------------
++
++Char 0x0b89 'உ'
++ Font: TSCu_Paranar (18)
++ Bitmap: 15 x 8
++ Advance: 16
++ Offset: 0 x 2
++ ________________
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ | 3#####6 .|
++ |1#######8 .|
++ |3##a##7## .|
++ | a###85##1 .|
++ | 2322##a .|
++ | 9#####b1 .|
++ |3###c9766666652.|
++ | b############9.|
++ |................|
++ -&gt;|................|&lt;-
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ ----------------
++
++Char 0x0b8e 'எ'
++ Font: TSCu_Paranar (18)
++ Bitmap: 14 x 8
++ Advance: 14
++ Offset: 0 x 2
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ | 3##########2|
++ | 3##c6559##73 |
++ | c#9 4##1 |
++ |3##9###34##1 |
++ |4#######4##1 |
++ |1####6##5##1 |
++ | 8#####c4##1 |
++ | 6####34##1 |
++ |..............|
++ -&gt;|..............|&lt;-
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ --------------
++
++Char 0x0b8f 'ஏ'
++ Font: TSCu_Paranar (18)
++ Bitmap: 14 x 11
++ Advance: 14
++ Offset: 0 x -1
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ | 3##########2|
++ | 3###6559##73 |
++ | c#a 4##1 |
++ |2##9###34##1 |
++ |3######c4##1 |
++ |1####6##5##1 |
++ | 7#####c4##1 |
++ | 5####38##1 |
++ | 1c#c1 |
++ -&gt;| 2##b |&lt;-
++ | 881 |
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ --------------
++
++Char 0x0b90 'ஐ'
++ Font: TSCu_Paranar (18)
++ Bitmap: 14 x 14
++ Advance: 14
++ Offset: 0 x -4
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ | a###c####7 |
++ | a##9####8##6 |
++ |2####c##3 7## |
++ |4#######1 4##1|
++ |1#######1 7## |
++ | 6###a##38##9 |
++ | 9########c1 |
++ | 9#######c72 |
++ |1##7 4#c 1##6 |
++ -&gt;|4##2 4##11c## |&lt;-
++ |3##3 5##3 4##1|
++ | c#c4####3b#b |
++ | 2##########2 |
++ | 242 241 |
++ |..............|
++ --------------
++
++Char 0x0b92 'ஒ'
++ Font: TSCu_Paranar (18)
++ Bitmap: 14 x 13
++ Advance: 14
++ Offset: 0 x -3
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ | 4#####a2 |
++ | a##c78###5 |
++ | 8##3 8##3 |
++ |1#####38####a |
++ |3#########6## |
++ |2###6####c4##1|
++ | c##########c |
++ | 19###b#####2 |
++ | 3c91#####3 |
++ -&gt;| 2##a4##953 |&lt;-
++ | 3##5c#c |
++ | 9####2 |
++ | 132 |
++ |..............|
++ |..............|
++ --------------
++
++Char 0x0b93 'ஓ'
++ Font: TSCu_Paranar (18)
++ Bitmap: 14 x 14
++ Advance: 15
++ Offset: 1 x -4
++ _______________
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |. 6#####b2 |
++ |. 1####97c##5 |
++ |. a###1 5##4 |
++ |.2#####34####b |
++ |.5#########7## |
++ |.5#########7##1|
++ |.1######8####c |
++ |. 3####4c####3 |
++ |. 4###c#### |
++ -&gt;|. a#####b53 |&lt;-
++ |. b#####2 |
++ |. 8####a |
++ |. 1####2 |
++ |. 23 |
++ |...............|
++ ---------------
++
++Char 0x0b95 'க'
++ Font: TSCu_Paranar (18)
++ Bitmap: 12 x 8
++ Advance: 12
++ Offset: 0 x 2
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ | 4######c |
++ | 4##a##62 |
++ | 4##6##1 |
++ | 5########5 |
++ |2##859##b## |
++ |3##3 5##4##1|
++ | c##9###c## |
++ | 1b#######6 |
++ |............|
++ -&gt;|............|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x0b99 'ங'
++ Font: TSCu_Paranar (18)
++ Bitmap: 14 x 8
++ Advance: 14
++ Offset: 0 x 2
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |4########14##1|
++ |4##a##753 4##1|
++ |4##6##1 4##1|
++ |4##6#####34##1|
++ |4##6##a###4##1|
++ |4##6##15##5##1|
++ |4##6#########1|
++ |4##6#########1|
++ |..............|
++ -&gt;|..............|&lt;-
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ --------------
++
++Char 0x0b9a 'ச'
++ Font: TSCu_Paranar (18)
++ Bitmap: 10 x 8
++ Advance: 11
++ Offset: 0 x 2
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ | 4######9.|
++ | 4##a##61.|
++ | 4##6##2 .|
++ | 6#######9.|
++ |2##859##51.|
++ |3##3 4## .|
++ | ###8##b .|
++ | 2c###c2 .|
++ |...........|
++ -&gt;|...........|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0b9f 'ட'
++ Font: TSCu_Paranar (18)
++ Bitmap: 13 x 9
++ Advance: 14
++ Offset: 0 x 2
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |297 .|
++ |4##1 .|
++ |4##1 .|
++ |4##1 .|
++ |4##1 .|
++ |4##1 .|
++ |4##1 .|
++ |4###########5.|
++ |4###########9.|
++ |..............|
++ -&gt;|..............|&lt;-
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ --------------
++
++Char 0x0ba3 'ண'
++ Font: TSCu_Paranar (18)
++ Bitmap: 21 x 8
++ Advance: 22
++ Offset: 1 x 2
++ ______________________
++ |......................|
++ |......................|
++ |......................|
++ |......................|
++ |......................|
++ |......................|
++ |......................|
++ |. 3#################2|
++ |. 6###9a###a###99##73 |
++ |.3###8 8#######94##1 |
++ |.9#######b######4##1 |
++ |.b#######6###c##5##1 |
++ |.9#######a######4##1 |
++ |.2#############a4##1 |
++ |. 3####4c##38##34##1 |
++ |......................|
++ -&gt;|......................|&lt;-
++ |......................|
++ |......................|
++ |......................|
++ |......................|
++ |......................|
++ ----------------------
++
++Char 0x0ba4 'த'
++ Font: TSCu_Paranar (18)
++ Bitmap: 12 x 13
++ Advance: 12
++ Offset: 0 x -3
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ | 4#######3 |
++ | 4##a##73 |
++ | 4##6##1 |
++ | 5#######b1 |
++ |2##859####a |
++ |3##3 4##7## |
++ | ###9###5##1|
++ | 2c###c28#c |
++ | 18##4 |
++ -&gt;| a#######4 |&lt;-
++ |3##75541 |
++ |4#c |
++ |6#a |
++ |............|
++ |............|
++ ------------
++
++Char 0x0ba8 'ந'
++ Font: TSCu_Paranar (18)
++ Bitmap: 12 x 13
++ Advance: 12
++ Offset: 0 x -3
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ | 4#######c |
++ | 4##a##752 |
++ | 4##6##1 |
++ | 4##6####a |
++ | 4##6##b##9 |
++ | 4##6##16## |
++ | 4##6##15##1|
++ | 4##6##19#c |
++ | 7##5 |
++ -&gt;| 7#######7 |&lt;-
++ |2##95553 |
++ |4##2 |
++ |4##1 |
++ |............|
++ |............|
++ ------------
++
++Char 0x0ba9 'ன'
++ Font: TSCu_Paranar (18)
++ Bitmap: 16 x 8
++ Advance: 16
++ Offset: 0 x 2
++ ________________
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ | 3############9|
++ | 7###c7####a##61|
++ |4###8 c###b##1 |
++ |9#####5##b####1 |
++ |a########7####1 |
++ |8########9####1 |
++ |2#############1 |
++ | 3####35###6##1 |
++ |................|
++ -&gt;|................|&lt;-
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ ----------------
++
++Char 0x0baa 'ப'
++ Font: TSCu_Paranar (18)
++ Bitmap: 12 x 9
++ Advance: 12
++ Offset: 0 x 2
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |297 297 |
++ |4##1 4##1|
++ |4##1 4##1|
++ |4##1 4##1|
++ |4##1 4##1|
++ |4##1 4##1|
++ |4##1 4##1|
++ |4##########1|
++ |4##########1|
++ |............|
++ -&gt;|............|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x0bae 'ம'
++ Font: TSCu_Paranar (18)
++ Bitmap: 13 x 8
++ Advance: 13
++ Offset: 0 x 2
++ _____________
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |4##1 5###b1 |
++ |4##11##b###1 |
++ |4##14##1 ##8 |
++ |4##14##1 7## |
++ |4##14##1 4##1|
++ |4##14##1 6## |
++ |4##########b |
++ |4#########c2 |
++ |.............|
++ -&gt;|.............|&lt;-
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ -------------
++
++Char 0x0baf 'ய'
++ Font: TSCu_Paranar (18)
++ Bitmap: 14 x 9
++ Advance: 14
++ Offset: 0 x 2
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |297 297 297 |
++ |4##14##1 4##1|
++ |4##14##1 4##1|
++ |4##14##1 4##1|
++ |4##14##1 4##1|
++ |4##14##1 4##1|
++ |4##26##1 4##1|
++ |2############1|
++ | 5###########1|
++ |..............|
++ -&gt;|..............|&lt;-
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ --------------
++
++Char 0x0bb0 'ர'
++ Font: TSCu_Paranar (18)
++ Bitmap: 10 x 11
++ Advance: 10
++ Offset: 0 x -1
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |4########2|
++ |4##79##73 |
++ |4##14##1 |
++ |4##14##1 |
++ |4##14##1 |
++ |4##14##1 |
++ |4##14##1 |
++ |4##14##1 |
++ | 1c#c |
++ -&gt;| 2###1 |&lt;-
++ | 6##2 |
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0bb1 'ற'
++ Font: TSCu_Paranar (18)
++ Bitmap: 12 x 12
++ Advance: 12
++ Offset: 0 x -2
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ | 6######7 |
++ | 2#####c##5 |
++ | 4##6##17#b |
++ | 4##6##14## |
++ | 4##6##14##1|
++ | 4##6##15## |
++ | 4##6##19#c |
++ | 4##6##3##7 |
++ | 2c## |
++ -&gt;| 5######c1 |&lt;-
++ |3##85531 |
++ |4##1 |
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x0bb2 'ல'
++ Font: TSCu_Paranar (18)
++ Bitmap: 14 x 9
++ Advance: 14
++ Offset: 0 x 2
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ | 472 |
++ | 4####b2c##1 |
++ | 4##c7##a2##9 |
++ | ##9 5## 7## |
++ |3#####8##14##1|
++ |4########14##1|
++ |1###6####27## |
++ | 9#######c##8 |
++ | 9###46###9 |
++ |..............|
++ -&gt;|..............|&lt;-
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ --------------
++
++Char 0x0bb3 'ள'
++ Font: TSCu_Paranar (18)
++ Bitmap: 16 x 8
++ Advance: 16
++ Offset: 0 x 2
++ ________________
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ | 5############2|
++ | 5##a9###79##73 |
++ | ##8 7##14##1 |
++ |3#####a##14##1 |
++ |3########14##1 |
++ |1###8####14##1 |
++ | 8#######14##1 |
++ | 8###9##14##1 |
++ |................|
++ -&gt;|................|&lt;-
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ ----------------
++
++Char 0x0bb4 'ழ'
++ Font: TSCu_Paranar (18)
++ Bitmap: 13 x 14
++ Advance: 13
++ Offset: 0 x -4
++ _____________
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |3#c1 5###c2 |
++ |4##11##c###1 |
++ |4##14##1 ##8 |
++ |4##14##1 7## |
++ |4##14##1 4##1|
++ |4##14##1 6## |
++ |4##########b |
++ |4#########a1 |
++ | 2aa4##8 |
++ -&gt;| ####7####2 |&lt;-
++ |3#######41 |
++ |2##cb##7 |
++ | 5####a |
++ | 1562 |
++ |.............|
++ -------------
++
++Char 0x0bb5 'வ'
++ Font: TSCu_Paranar (18)
++ Bitmap: 15 x 8
++ Advance: 16
++ Offset: 0 x 2
++ ________________
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ | 3####b2 4##1.|
++ | 4###7###2 4##1.|
++ | c#9 b#a 4##1.|
++ |3##8###8## 4##1.|
++ |3#########14##1.|
++ |1####7#### 4##1.|
++ | 7############1.|
++ | 5###########1.|
++ |................|
++ -&gt;|................|&lt;-
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ ----------------
++
++Char 0x0bb7 'ஷ'
++ Font: TSCu_Paranar (18)
++ Bitmap: 20 x 12
++ Advance: 20
++ Offset: 0 x -2
++ ____________________
++ |....................|
++ |....................|
++ |....................|
++ |....................|
++ |....................|
++ |....................|
++ |....................|
++ | 2c###c2 3####9 |
++ | 3###7###21###7##7 |
++ | c#a c#93##2 8#b3 |
++ |3##9###9##1##b4####1|
++ |3#########13#######1|
++ |1####7#### 28####1|
++ | 8#################1|
++ | 6################1|
++ | 4##1 |
++ -&gt;| 4##1 |&lt;-
++ | 4##1 |
++ | 4##1 |
++ |....................|
++ |....................|
++ |....................|
++ --------------------
++
++Char 0x0bb8 'ஸ'
++ Font: TSCu_Paranar (18)
++ Bitmap: 17 x 9
++ Advance: 17
++ Offset: 0 x 2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | 12 |
++ | 5########49#c |
++ | 6##a9######3##8 |
++ | ##7 5##6##17## |
++ |3#####9##6##14##1|
++ |3########6##15## |
++ |1###b####5##19#b |
++ | 7#######2#####5 |
++ | 7###9##14###7 |
++ |.................|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x0bb9 'ஹ'
++ Font: TSCu_Paranar (18)
++ Bitmap: 21 x 13
++ Advance: 21
++ Offset: 0 x -3
++ _____________________
++ |.....................|
++ |.....................|
++ |.....................|
++ |.....................|
++ |.....................|
++ |.....................|
++ |.....................|
++ | 2####b1 6######7 |
++ | 3###7###22#####c##6 |
++ | c#a b#a4##6##18#c |
++ |3######8##4##6##15## |
++ |3#########5##6##14##1|
++ |1###94####5##6##15## |
++ | 7########9##6##19#b |
++ | 5##########6##4##5 |
++ | 4##8 |
++ -&gt;| 8##############6 |&lt;-
++ | 3##855555555552 |
++ | 4##1 |
++ | 297 |
++ |.....................|
++ |.....................|
++ ---------------------
++
++Char 0x0bbe 'ா'
++ Font: TSCu_Paranar (18)
++ Bitmap: 9 x 8
++ Advance: 9
++ Offset: 0 x 2
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |4#######9|
++ |4##79##61|
++ |4##14##1 |
++ |4##14##1 |
++ |4##14##1 |
++ |4##14##1 |
++ |4##14##1 |
++ |4##14##1 |
++ |.........|
++ -&gt;|.........|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0bbf 'ி'
++ Font: TSCu_Paranar (18)
++ Bitmap: 9 x 12
++ Advance: 4
++ Offset: -5 x 2
++ ____
++ |.........|
++ |.........|
++ |.........|
++ | 7###c2 |
++ | 9##9##a |
++ |2##5 6## |
++ |3##2 4##1|
++ |1##c14##1|
++ | 165 4##1|
++ | 4##1|
++ | 4##1|
++ | 4##1|
++ | 4##1|
++ | 4##1|
++ | 4##1|
++ |.........|
++ -&gt;|.........|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ----
++
++Char 0x0bc0 'ீ'
++ Font: TSCu_Paranar (18)
++ Bitmap: 8 x 7
++ Advance: 4
++ Offset: -5 x 8
++ ____
++ |.........|
++ |.........|
++ | 5####3.|
++ | 7######.|
++ |1####c##.|
++ |3######7.|
++ |1##6231 .|
++ | 4##6 .|
++ | 252 .|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ -&gt;|.........|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ----
++
++Char 0x0bc1 'ு'
++ Font: TSCu_Paranar (18)
++ Bitmap: 11 x 7
++ Advance: 8
++ Offset: -3 x 3
++ ________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |b#######9 |
++ |2559##7##8 |
++ | 3##15## |
++ | 2##25##1|
++ | c#8c#c |
++ | 4####3 |
++ | 32 |
++ |...........|
++ |...........|
++ -&gt;|...........|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ --------
++
++Char 0x0bc2 'ூ'
++ Font: TSCu_Paranar (18)
++ Bitmap: 16 x 13
++ Advance: 12
++ Offset: -4 x 2
++ ____________
++ |................|
++ |................|
++ | 1a####b2 |
++ | 2###78###3 |
++ | a#b a##1 |
++ | 1##4 1##7 |
++ | 4##2 8#c |
++ |b#########3 5## |
++ |2556##b5c## 4##1|
++ | 7##58## 6## |
++ | 8####5 a#a |
++ | 87 33 4##4 |
++ | 6##8 3##8 |
++ | 9###87###8 |
++ | 4#####c3 |
++ |................|
++ -&gt;|................|&lt;-
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ ------------
++
++Char 0x0bc6 'ெ'
++ Font: TSCu_Paranar (18)
++ Bitmap: 13 x 13
++ Advance: 13
++ Offset: 0 x 2
++ _____________
++ |.............|
++ |.............|
++ | 18####91 |
++ | 2###97###1 |
++ | c##1 b#8 |
++ | 7##2 5## |
++ | c#8 4##1|
++ |2##4 4##1|
++ |3##2 4##1|
++ |3##2 4##1|
++ |1##34###c6##1|
++ | b#9##c#####1|
++ | 5####25####1|
++ | 8###c#####1|
++ | 4####c6##1|
++ |.............|
++ -&gt;|.............|&lt;-
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ -------------
++
++Char 0x0bc7 'ே'
++ Font: TSCu_Paranar (18)
++ Bitmap: 13 x 13
++ Advance: 13
++ Offset: 0 x 2
++ _____________
++ |.............|
++ |.............|
++ | 8#####6 |
++ | 2###a####8 |
++ | 1##a 3##9## |
++ | 9## 2##b## |
++ | ##6 8###7 |
++ |3##3 231 |
++ |3##2 |
++ |2##3 4###3 |
++ | ##8 1####c |
++ | 8##2 4##6##1|
++ | 1##c12##### |
++ | 2###9####6 |
++ | 19#####4 |
++ |.............|
++ -&gt;|.............|&lt;-
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ -------------
++
++Char 0x0bc8 'ை'
++ Font: TSCu_Paranar (18)
++ Bitmap: 16 x 8
++ Advance: 17
++ Offset: 1 x 2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. 3#########c2 |
++ |. 6####8###8c##3 |
++ |.3###b b##5 a#b |
++ |.9#####5###c 5## |
++ |.b##########14##1|
++ |.9##########17## |
++ |.3#####c####2##8 |
++ |. 3####25##55#b1 |
++ |.................|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x0bca 'ொ'
++ Font: TSCu_Paranar (18)
++ Bitmap: 13 x 13
++ Advance: 13
++ Offset: 0 x 2
++ _____________
++ |.............|
++ |.............|
++ | 18####91 |
++ | 2###97###1 |
++ | c##1 b#8 |
++ | 7##2 5## |
++ | c#8 4##1|
++ |2##4 4##1|
++ |3##2 4##1|
++ |3##2 4##1|
++ |1##34###c6##1|
++ | b#9##c#####1|
++ | 5####25####1|
++ | 8###c#####1|
++ | 4####c6##1|
++ |.............|
++ -&gt;|.............|&lt;-
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ -------------
++
++Char 0x0bcd '்'
++ Font: TSCu_Paranar (18)
++ Bitmap: 4 x 6
++ Advance: 5
++ Offset: 1 x 10
++ _____
++ |.....|
++ |.6##3|
++ |.###b|
++ |.8###|
++ |. 7#b|
++ |.3##3|
++ |.692 |
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ -&gt;|.....|&lt;-
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ -----
++
++Char 0x0bee '௮'
++ Font: TSCu_Paranar (18)
++ Bitmap: 20 x 11
++ Advance: 20
++ Offset: 0 x -1
++ ____________________
++ |....................|
++ |....................|
++ |....................|
++ |....................|
++ |....................|
++ |....................|
++ |....................|
++ | 3####91 4##1|
++ | 1#######14##1|
++ | 4##7####a4##1|
++ | 1####c5##5##1|
++ | 5###34##6##1|
++ | a#################1|
++ |3##855555555b##89##1|
++ |1###2 5##7 4##1|
++ | 4###c5114###7 4##1|
++ -&gt;| 7#######c3 4##1|&lt;-
++ | 2442 4##1|
++ |....................|
++ |....................|
++ |....................|
++ |....................|
++ --------------------
++
++Char 0x0d82 'ං'
++ Font: lklug (17)
++ Bitmap: 5 x 3
++ Advance: 5
++ Offset: 0 x 4
++ _____
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |17c93|
++ |45 55|
++ | 7c82|
++ |.....|
++ |.....|
++ |.....|
++ -&gt;|.....|&lt;-
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ -----
++
++Char 0x0dbd 'ල'
++ Font: lklug (17)
++ Bitmap: 14 x 14
++ Advance: 14
++ Offset: 0 x -4
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ | 1 |
++ | 19##a8851 |
++ | 5#b1 461 |
++ | 3#b 3c###965 |
++ | b#3 352154 |
++ |3## 5bb6 |
++ |5## |
++ |5## |
++ |3##3 44|
++ -&gt;| c#9 87|&lt;-
++ | 5##3 781|
++ | 8##3 7a3 |
++ | 4#####c6 |
++ | 11 |
++ |..............|
++ --------------
++
++Char 0x0dc3 'ස'
++ Font: lklug (17)
++ Bitmap: 13 x 10
++ Advance: 13
++ Offset: 0 x 1
++ _____________
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ | 252 153 |
++ | 2###7 4###6 |
++ | 3#c462ac376 |
++ |19####5b###5 |
++ | 494 1981|
++ | 65 77|
++ |252 55 88|
++ | 98 6#b 3c9|
++ | 9##########4|
++ | 9###28###5 |
++ -&gt;|.............|&lt;-
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ -------------
++
++Char 0x0dc4 'හ'
++ Font: lklug (17)
++ Bitmap: 14 x 10
++ Advance: 14
++ Offset: 0 x 1
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ | 153 253 |
++ |1###7 7####2 |
++ |3##5413##8##c |
++ | 56ab377 5a5|
++ | 3a91 88 66|
++ | 66 2b#8 55|
++ | 55 66 55|
++ | 89 66 363|
++ | 7######3 297 |
++ | 6###c22a#6 |
++ -&gt;|..............|&lt;-
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ --------------
++
++Char 0x0dd2 'ි'
++ Font: lklug (17)
++ Bitmap: 10 x 5
++ Advance: 0
++ Offset: -10 x 10
++
++ |..........|
++ |..........|
++ | 6######5 |
++ |9########8|
++ |##3 4##|
++ |99 99|
++ |56 165|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ -&gt;|..........|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++
++
++Char 0x0e17 'ท'
++ Font: Loma (17)
++ Bitmap: 10 x 11
++ Advance: 11
++ Offset: 0 x -3
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |5#7 5b6 .|
++ |b2c 1### .|
++ |b1c2 7#2#2.|
++ |5c#2 #7 #2.|
++ | #25#1 #2.|
++ | #2b8 #2.|
++ | #5#2 #2.|
++ -&gt;| #b9 #2.|&lt;-
++ | ##3 #2.|
++ | #a #2.|
++ | 1 1 .|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0e20 'ภ'
++ Font: Loma (17)
++ Bitmap: 10 x 10
++ Advance: 11
++ Offset: 1 x -2
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |. 1 |
++ |. 19###9 |
++ |. b92 2b9 |
++ |. 4#3 2# |
++ |. 4#1 #1|
++ |. 98 #2|
++ |. #2 #2|
++ -&gt;|.8##2 #2|&lt;-
++ |.c1#1 #2|
++ |.7#8 #2|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0e22 'ย'
++ Font: Loma (17)
++ Bitmap: 8 x 10
++ Advance: 10
++ Offset: 1 x -2
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 8#7 4.|
++ |.2#2c 2#.|
++ |.4#2c 2#.|
++ |.4#c7 2#.|
++ |. #4 2#.|
++ |. 5##1 2#.|
++ |. #3 2#.|
++ -&gt;|.2# 2#.|&lt;-
++ |.2#22223#.|
++ |.2#######.|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0e29 'ษ'
++ Font: Loma (17)
++ Bitmap: 10 x 10
++ Advance: 11
++ Offset: 0 x -2
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |5#8 5 .|
++ |c2c1 2# .|
++ |b2#2 2# .|
++ |5b#2 284#9.|
++ | #2 a1b#b.|
++ | #2 978#7.|
++ | #2 2ac# .|
++ -&gt;| #2 2# .|&lt;-
++ | #32223# .|
++ | ####### .|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0e32 'า'
++ Font: Loma (17)
++ Bitmap: 7 x 11
++ Advance: 10
++ Offset: 1 x -3
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 1 ..|
++ |. 5###9 ..|
++ |.3c4 1a8..|
++ |.23 3#..|
++ |. 2#..|
++ |. 2#..|
++ |. 2#..|
++ -&gt;|. 2#..|&lt;-
++ |. 2#..|
++ |. 2#..|
++ |. 3..|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0e44 'ไ'
++ Font: Loma (17)
++ Bitmap: 10 x 16
++ Advance: 9
++ Offset: -2 x -2
++ _________
++ |...........|
++ |...........|
++ |...........|
++ | 1 .|
++ |2a 6#c1 .|
++ | c3 b3#4 .|
++ | 782c #4 .|
++ | 1bc4 #4 .|
++ | #4 .|
++ | #4 .|
++ | #4 .|
++ | #4 .|
++ | #4 .|
++ | #4 .|
++ | #4 .|
++ | #4 .|
++ -&gt;| #cb5.|&lt;-
++ | c51a.|
++ | 5cc5.|
++ |...........|
++ |...........|
++ |...........|
++ ---------
++
++Char 0x0e9e 'ພ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 9
++ Advance: 12
++ Offset: 1 x -1
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |.2ab8 3b9.|
++ |.a###5 4#b.|
++ |.a###3 4#b.|
++ |.4##6aa 4#b.|
++ |.a#51## 4#b.|
++ |.c#31## 4#b.|
++ |.b#aa##9b#9.|
++ -&gt;|.3###c###c2.|&lt;-
++ |. 22 22 .|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x0ea5 'ລ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 9
++ Advance: 11
++ Offset: 0 x -1
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ | 39bba72 .|
++ | 4###c###2.|
++ | 9#b1 3##8.|
++ | 683 7#9.|
++ | 4896 6#9.|
++ |3####6 6#9.|
++ |5#####5a#9.|
++ -&gt;|2###8c###5.|&lt;-
++ | 254 1552 .|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0ea7 'ວ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 9
++ Advance: 10
++ Offset: 0 x -1
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ | 6abb95 .|
++ | a######9.|
++ |2##2 6##.|
++ | 13 3##.|
++ | 797 3##.|
++ |6###6 3##.|
++ |6###95a#c.|
++ -&gt;| 9######5.|&lt;-
++ | 146641 .|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0eaa 'ສ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 12 x 11
++ Advance: 12
++ Offset: 0 x -1
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ | 29a |
++ | 4788863c#4|
++ | a#########5|
++ | ##a767a##b |
++ | 5#######c1 |
++ | 34447#b |
++ | 5ab91 4#b |
++ |2####b 4#b |
++ |3#####9a#b |
++ -&gt;| b##8a###5 |&lt;-
++ | 32 231 |
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x0eb2 'າ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 9
++ Advance: 9
++ Offset: 0 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ | 332 .|
++ | 5####b1.|
++ |2###8b#9.|
++ |5###84#c.|
++ |5###83#c.|
++ | 8b913#c.|
++ | 3#c.|
++ | 3#c.|
++ -&gt;| 3#c.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x10d0 'ა'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 9
++ Advance: 8
++ Offset: 0 x -1
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ | 793 .|
++ | 6#9 .|
++ | 9#c2.|
++ | 73 6#b.|
++ |3#b 1##.|
++ |3#c 2##.|
++ | ##7a#a.|
++ -&gt;| 4###b2.|&lt;-
++ | 21 .|
++ |........|
++ |........|
++ |........|
++ |........|
++ --------
++
++Char 0x10d1 'ბ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 12
++ Advance: 8
++ Offset: 0 x -1
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ | 881 .|
++ | 6#c3 .|
++ | 1#b .|
++ | cc .|
++ | 3###c1.|
++ | c#68#9.|
++ |3#c 2##.|
++ |4#b ##.|
++ |3#c 2##.|
++ | c#79#9.|
++ -&gt;| 3c##b1.|&lt;-
++ | 11 .|
++ |........|
++ |........|
++ |........|
++ |........|
++ --------
++
++Char 0x10d2 'გ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 11
++ Advance: 8
++ Offset: 0 x -3
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ | 133 |
++ | 7####3 |
++ | #c47#9 |
++ | 84 3#9 |
++ | 59c#4 |
++ | 9##c##1|
++ |2##1 a#6|
++ -&gt;|4#b 7#8|&lt;-
++ |2##1 9#7|
++ | a#cc##2|
++ | 7aa82 |
++ |........|
++ |........|
++ --------
++
++Char 0x10d3 'დ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 11
++ Advance: 11
++ Offset: 0 x -3
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ | 131 32 |
++ | 6###3c##a |
++ | ##5b#c5b#6|
++ |3#c 7#7 6#9|
++ |4#b 5#7 5#9|
++ |2#c 4#9 7#8|
++ | c#2 c#b##3|
++ -&gt;| 6#a 2a#b5 |&lt;-
++ | 9#b61 |
++ | 4#####8 |
++ | 62 17a6 |
++ |...........|
++ |...........|
++ -----------
++
++Char 0x10d4 'ე'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 11
++ Advance: 8
++ Offset: 0 x -3
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ | 33 .|
++ | 4####3.|
++ | c#78#b.|
++ | ## 1##.|
++ | 9b ##.|
++ | ##.|
++ | 51 ##.|
++ -&gt;|3#c ##.|&lt;-
++ |3#c 2##.|
++ | c#cc#9.|
++ | 18aa6 .|
++ |........|
++ |........|
++ --------
++
++Char 0x10d5 'ვ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 11
++ Advance: 8
++ Offset: 0 x -3
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ | 33 .|
++ | 5####4.|
++ | ##67#c.|
++ | ## 1##.|
++ | 98 4#c.|
++ | 4##2.|
++ | 3 29#9.|
++ -&gt;|3#a 1##.|&lt;-
++ |3#a 1##.|
++ | c#bc#a.|
++ | 18aa71.|
++ |........|
++ |........|
++ --------
++
++Char 0x10d6 'ზ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 12
++ Advance: 8
++ Offset: 0 x -1
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ | 2784 .|
++ | ##c#4 .|
++ |3#61#8 .|
++ |3#61#6 .|
++ | 8#c#6 .|
++ | a#ac#6.|
++ |2#c 2#c.|
++ |4#b 1##.|
++ |3#c 2##.|
++ | c#7a#9.|
++ -&gt;| 3c##b1.|&lt;-
++ | 11 .|
++ |........|
++ |........|
++ |........|
++ |........|
++ --------
++
++Char 0x10d7 'თ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 9
++ Advance: 12
++ Offset: 0 x -1
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ | 32 23 .|
++ | 5###67##c1.|
++ | ##69##78#8.|
++ |3#c 2## 2#b.|
++ |4#b #c 1#c.|
++ |3#c 2#b 3#a.|
++ | c#7a#7 b#4.|
++ -&gt;| 3c##a 1#6 .|&lt;-
++ | 11 1 .|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x10d8 'ი'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 9
++ Advance: 8
++ Offset: 0 x -1
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ | 33 .|
++ | 5###c2.|
++ | ##69#a.|
++ |3#c 1##.|
++ |4#b 1##.|
++ |2#c 2#c.|
++ | b#15#8.|
++ -&gt;| 3#27c1.|&lt;-
++ | 2 11 .|
++ |........|
++ |........|
++ |........|
++ |........|
++ --------
++
++Char 0x10d9 'კ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 11
++ Advance: 8
++ Offset: 0 x -3
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ | 1 .|
++ | b#b5 .|
++ | 58##5.|
++ | 7#9.|
++ | 29#7.|
++ | c#a .|
++ |13 39#5.|
++ -&gt;|6#7 3#b.|&lt;-
++ |6#9 5#a.|
++ |2##b##6.|
++ | 39a95 .|
++ |........|
++ |........|
++ --------
++
++Char 0x10da 'ლ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 15 x 11
++ Advance: 15
++ Offset: 0 x -3
++ _______________
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ | 2 3 2 |
++ | 5###5c#c5###5 |
++ |1##6a#c4c#a6##1|
++ |3#b 2#7 7#3 b#4|
++ |3#b 1#6 6#2 a#4|
++ |1##1 21 12 2##1|
++ | 8#b1 5#5 |
++ -&gt;| 8##841 22 |&lt;-
++ | 5#####c71 |
++ | 1c5 148#c1 |
++ | 583 |
++ |...............|
++ |...............|
++ ---------------
++
++Char 0x10db 'მ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 12
++ Advance: 8
++ Offset: 0 x -1
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ | 6885 .|
++ | a#cc#9.|
++ | bb1 ##.|
++ | 31c#.|
++ | 4#####.|
++ | ##77##.|
++ |3#c ##.|
++ |4#b ##.|
++ |3#c ##.|
++ | c#89#a.|
++ -&gt;| 3c##b1.|&lt;-
++ | 11 .|
++ |........|
++ |........|
++ |........|
++ |........|
++ --------
++
++Char 0x10dc 'ნ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 12
++ Advance: 8
++ Offset: 0 x -1
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ | 56662 |
++ | b####5 |
++ |1#c211 |
++ |2#b 3 |
++ |2#####3 |
++ |2##77#c |
++ |2#c ##1|
++ |2#b c#2|
++ |1## ##1|
++ | b#88#b |
++ -&gt;| 2b##b2 |&lt;-
++ | 11 |
++ |........|
++ |........|
++ |........|
++ |........|
++ --------
++
++Char 0x10dd 'ო'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 9
++ Advance: 11
++ Offset: 0 x -1
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ | 131 32 |
++ | 5###6b##a |
++ | ##58#c4b#5|
++ |3#c 1#6 7#8|
++ |4#b #5 6#9|
++ |2## 1 9#7|
++ | 9#a1 7#c1|
++ -&gt;| 8#3 #b2 |&lt;-
++ | 11 2 |
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x10de 'პ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 12
++ Advance: 8
++ Offset: 0 x -1
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ | 783 .|
++ | 6##b7 .|
++ | 38c#7.|
++ | 5#a.|
++ | 4b#5.|
++ | 7#c2.|
++ | 61 4#b.|
++ |3#b 1##.|
++ |3#b 2##.|
++ |1##7a#9.|
++ -&gt;| 5###b1.|&lt;-
++ | 21 .|
++ |........|
++ |........|
++ |........|
++ |........|
++ --------
++
++Char 0x10df 'ჟ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 11
++ Advance: 8
++ Offset: 0 x -3
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ | 1353|
++ |5ac####6|
++ |6##b7b#6|
++ | 2##18#6|
++ | 8#48#6|
++ |6a##28#6|
++ |9#a4 8#6|
++ -&gt;| 8#6|&lt;-
++ |7b7 b#5|
++ |4##bc#c1|
++ | 38aa71 |
++ |........|
++ |........|
++ --------
++
++Char 0x10e0 'რ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 12
++ Advance: 12
++ Offset: 0 x -1
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ | 16a5 .|
++ | 18###7 .|
++ | 4##83 .|
++ | 2#c2 32 .|
++ | a###4a##b1.|
++ |1##69##5a#7.|
++ |3#b 2#9 5#a.|
++ |3#b #7 4#b.|
++ |1##1 31 7#8.|
++ | 8#a1 5##2.|
++ -&gt;| 7#4 cb2 .|&lt;-
++ | 11 2 .|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x10e1 'ს'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 12
++ Advance: 8
++ Offset: 0 x -1
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |175 |
++ |2#a |
++ |2#a 4 |
++ |2#a 7#4 |
++ |2#a ba |
++ |2#a 6#6 |
++ |2#a ## |
++ |2#a ##2|
++ |1#c ##1|
++ | b#88#b |
++ -&gt;| 2b##c2 |&lt;-
++ | 11 |
++ |........|
++ |........|
++ |........|
++ |........|
++ --------
++
++Char 0x10e2 'ტ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 13
++ Advance: 10
++ Offset: 0 x -3
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ | 21 .|
++ | #9 .|
++ | b7 .|
++ | 29#c7 .|
++ | 3#bcb#b .|
++ | b#1b75#7.|
++ |2#c b72#b.|
++ |4#b a71##.|
++ |3#b 2##.|
++ -&gt;|2## 4#b.|&lt;-
++ | b#6 a#7.|
++ | 3##bc#c .|
++ | 28aa6 .|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x10e3 'უ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 11
++ Advance: 8
++ Offset: 0 x -3
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |131 22 |
++ |4##7##9 |
++ |14a#5c#2|
++ | 5# 8#4|
++ | 26 8#4|
++ | 8#4|
++ |1b7 8#4|
++ -&gt;|3#a 8#4|&lt;-
++ |3#b a#3|
++ | c#cc#c |
++ | 18aa71 |
++ |........|
++ |........|
++ --------
++
++Char 0x10e4 'ფ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 11
++ Advance: 11
++ Offset: 0 x -3
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ | 132 23 |
++ | 5###7a##c1|
++ | ##68##5b#7|
++ |3#b 1#9 6#9|
++ |4#a #8 6#7|
++ |1##25#65ca |
++ | 9####15cc2|
++ -&gt;| 4761 8#7|&lt;-
++ | 441 9#7|
++ | 9##bc##2|
++ | 69aa82 |
++ |...........|
++ |...........|
++ -----------
++
++Char 0x10e5 'ქ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 14
++ Advance: 8
++ Offset: 0 x -3
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ | 67.|
++ | c#.|
++ | c#.|
++ | 3 c#.|
++ | 3#####.|
++ | b#68##.|
++ | ## ##.|
++ | c#.|
++ | c#.|
++ | 41 c#.|
++ -&gt;|2#c c#.|&lt;-
++ |3#c ##.|
++ | c#cc#9.|
++ | 18aa6 .|
++ |........|
++ |........|
++ --------
++
++Char 0x10e7 'ყ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 11
++ Advance: 8
++ Offset: 0 x -3
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ | 3 .|
++ | 7#3 c#.|
++ |1##2 c#.|
++ |3#a c#.|
++ |3#a ##.|
++ | ##78##.|
++ | 3c#c##.|
++ -&gt;| c#.|&lt;-
++ |3#c ##.|
++ | c#cc#9.|
++ | 18aa6 .|
++ |........|
++ |........|
++ --------
++
++Char 0x10e8 'შ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 12
++ Advance: 8
++ Offset: 0 x -1
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |2842871.|
++ |38#c9#a.|
++ | 9c c#.|
++ | 12 c#.|
++ | 18b7c#.|
++ | b#cc##.|
++ |3## 1##.|
++ |4#b ##.|
++ |3#c ##.|
++ | c#89#a.|
++ -&gt;| 3c##b1.|&lt;-
++ | 11 .|
++ |........|
++ |........|
++ |........|
++ |........|
++ --------
++
++Char 0x10e9 'ჩ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 12
++ Advance: 8
++ Offset: 0 x -1
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ | 17872 |
++ | b#ac# |
++ |1#a 3#3 |
++ |2#918#1 |
++ |2####b1 |
++ |2##77#b |
++ |2#c ##1|
++ |2#b c#2|
++ |2#b ## |
++ |2#b 2#b |
++ -&gt;|2#b 7#5 |&lt;-
++ | 21 3 |
++ |........|
++ |........|
++ |........|
++ |........|
++ --------
++
++Char 0x10ea 'ც'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 11
++ Advance: 9
++ Offset: 0 x -3
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ | 22 21 |
++ | 9#23#8 |
++ | ## b#5 |
++ |2#c 2#c |
++ |3#b 3#b |
++ |4#b 5##2 |
++ |4#b 26#a |
++ -&gt;|3#b ##1|&lt;-
++ |1##2 2##1|
++ | 8##b##9 |
++ | 59a95 |
++ |.........|
++ |.........|
++ ---------
++
++Char 0x10eb 'ძ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 12
++ Advance: 8
++ Offset: 0 x -1
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ | 67.|
++ | c#.|
++ | c#.|
++ | 3 c#.|
++ | 4#####.|
++ | ##68##.|
++ |3#c ##.|
++ |4#b ##.|
++ |3#c ##.|
++ | c#79#9.|
++ -&gt;| 3c##b1.|&lt;-
++ | 21 .|
++ |........|
++ |........|
++ |........|
++ |........|
++ --------
++
++Char 0x10ec 'წ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 12
++ Advance: 8
++ Offset: 0 x -1
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ | 1781581|
++ | c#8cc92|
++ |1#b c7 |
++ |2#b 32 |
++ |2#b7b81 |
++ |2##cc#a |
++ |2## 1##1|
++ |2#b ##2|
++ |1#c ##1|
++ | c#89#b |
++ -&gt;| 3c##b2 |&lt;-
++ | 11 |
++ |........|
++ |........|
++ |........|
++ |........|
++ --------
++
++Char 0x10ee 'ხ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 12
++ Advance: 8
++ Offset: 0 x -1
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |175 |
++ |2#b |
++ |2#b |
++ |2#b 3 |
++ |2#####3 |
++ |2##77#b |
++ |2#c ##1|
++ |2#b ##2|
++ |1#c ##1|
++ | b#88#b |
++ -&gt;| 2b##c2 |&lt;-
++ | 11 |
++ |........|
++ |........|
++ |........|
++ |........|
++ --------
++
++Char 0x1ebf 'ế'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 12
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 1#7.|
++ |. b#ba9 .|
++ |. 89 98 .|
++ |. .|
++ |. 3a##b4 .|
++ |.3#a1 8#5.|
++ |.a#2 #b.|
++ |.########.|
++ |.## .|
++ |.a#4 .|
++ |.3#b2 15a.|
++ -&gt;|. 29c#c93.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x1ec7 'ệ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 15
++ Advance: 10
++ Offset: 1 x -3
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 8#8 .|
++ |. 2#7#2 .|
++ |. a7 7a .|
++ |. .|
++ |. 3a##b4 .|
++ |.3#a1 8#5.|
++ |.a#2 #b.|
++ |.########.|
++ |.## .|
++ |.a#4 .|
++ |.3#b2 15a.|
++ -&gt;|. 29c#c93.|&lt;-
++ |. .|
++ |. ## .|
++ |. ## .|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x200f '‏'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 0 x 0
++ Advance: 0
++ Offset: 0 x 0
++
++ ||
++ ||
++ ||
++ ||
++ ||
++ ||
++ ||
++ ||
++ ||
++ ||
++ ||
++ ||
++ ||
++ ||
++ ||
++ ||
++ -&gt;||&lt;-
++ ||
++ ||
++ ||
++ ||
++ ||
++
++
++Char 0x2013 '–'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 2
++ Advance: 7
++ Offset: 1 x 3
++ _______
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.######|
++ |.######|
++ |.......|
++ |.......|
++ -&gt;|.......|&lt;-
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -------
++
++Char 0x2014 '—'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 13 x 2
++ Advance: 14
++ Offset: 1 x 3
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |.#############|
++ |.#############|
++ |..............|
++ |..............|
++ -&gt;|..............|&lt;-
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ --------------
++
++Char 0x2019 '’'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 3 x 4
++ Advance: 5
++ Offset: 1 x 6
++ _____
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |. ##.|
++ |. ##.|
++ |.4#5.|
++ |.a6 .|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ -&gt;|.....|&lt;-
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ -----
++
++Char 0x201c '“'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 4
++ Advance: 9
++ Offset: 1 x 6
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. 6a 6a..|
++ |.5#44#4..|
++ |.## ## ..|
++ |.## ## ..|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ -&gt;|.........|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x201d '”'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 4
++ Advance: 9
++ Offset: 1 x 6
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. ## ##..|
++ |. ## ##..|
++ |.4#54#5..|
++ |.a6 a6 ..|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ -&gt;|.........|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x201e '„'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 4
++ Advance: 9
++ Offset: 1 x -1
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. ## ##..|
++ |. ## ##..|
++ -&gt;|.4#54#5..|&lt;-
++ |.a6 a6 ..|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x2022 '•'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 5 x 5
++ Advance: 9
++ Offset: 2 x 3
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |..1a#a1..|
++ |..a###a..|
++ |..#####..|
++ |..a###a..|
++ |..1a#a1..|
++ |.........|
++ |.........|
++ -&gt;|.........|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x2023 '‣'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 6
++ Advance: 9
++ Offset: 2 x 2
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |..c5 .|
++ |..##b4 .|
++ |..####a1.|
++ |..###c4 .|
++ |..#c6 .|
++ |..7 .|
++ |.........|
++ -&gt;|.........|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x2026 '…'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 3
++ Advance: 14
++ Offset: 1 x 0
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |.## ## ##...|
++ |.## ## ##...|
++ -&gt;|.## ## ##...|&lt;-
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ --------------
++
++Char 0x20ac '€'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 10
++ Advance: 10
++ Offset: 0 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ | 6b##c9.|
++ | b#6 39.|
++ | 8#7 .|
++ |b#####a .|
++ | ## .|
++ |b####9 .|
++ | 9#6 .|
++ | 3#c .|
++ | 6#91 39.|
++ -&gt;| 4a##c9.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x2219 '∙'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 2 x 3
++ Advance: 5
++ Offset: 1 x 3
++ _____
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.##..|
++ |.##..|
++ |.##..|
++ |.....|
++ |.....|
++ -&gt;|.....|&lt;-
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ -----
++
++Char 0x221a '√'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 12
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 9#|
++ |. 1#1|
++ |. 5a |
++ |. b5 |
++ |. 2# |
++ |.499 79 |
++ |.8a#1 c3 |
++ |. 4#54c |
++ |. cb97 |
++ |. 7##2 |
++ |. 2#b |
++ -&gt;|. a5 |&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ---------
++
++Char 0x2248 '≈'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 6
++ Advance: 12
++ Offset: 1 x 1
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |.3a#c72 3a..|
++ |.#########..|
++ |.92 27c#a3..|
++ |.3a#c72 29..|
++ |.#########..|
++ |.a2 27c#a3..|
++ -&gt;|............|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x2264 '≤'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 8
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |. 1369c..|
++ |.369c##b86..|
++ |.###94 ..|
++ |.369c##b86..|
++ |. 369c..|
++ |. ..|
++ |.#########..|
++ -&gt;|.#########..|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x2265 '≥'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 8
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |.c851 ..|
++ |.a###c852 ..|
++ |. 258b##c..|
++ |. 258b##c..|
++ |.a###c851 ..|
++ |.c851 ..|
++ |.#########..|
++ -&gt;|.#########..|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x2320 '⌠'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 15
++ Advance: 9
++ Offset: 3 x -4
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |... 585 |
++ |... 7ba#1|
++ |... #737 |
++ |...4#5 |
++ |...6#4 |
++ |...8#3 |
++ |...9#3 |
++ |...9#3 |
++ |...a#3 |
++ |...a#3 |
++ -&gt;|...a#3 |&lt;-
++ |...a#3 |
++ |...a#3 |
++ |...a#3 |
++ |...571 |
++ |.........|
++ ---------
++
++Char 0x2321 '⌡'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 15
++ Advance: 9
++ Offset: 0 x -4
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ | 7a2...|
++ | a#3...|
++ | a#3...|
++ | a#3...|
++ | a#3...|
++ | a#3...|
++ | a#3...|
++ | a#2...|
++ | a#2...|
++ | a# ...|
++ -&gt;| b# ...|&lt;-
++ | ca ...|
++ |5b1#5 ...|
++ |7#aa ...|
++ | 33 ...|
++ |.........|
++ ---------
++
++Char 0x2500 '─'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 17 x 1
++ Advance: 17
++ Offset: 0 x 6
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |#################|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x2502 '│'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 2 x 16
++ Advance: 17
++ Offset: 8 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |........##.......|
++ |........##.......|
++ |........##.......|
++ |........##.......|
++ |........##.......|
++ |........##.......|
++ |........##.......|
++ |........##.......|
++ |........##.......|
++ |........##.......|
++ |........##.......|
++ |........##.......|
++ |........##.......|
++ -&gt;|........##.......|&lt;-
++ |........##.......|
++ |........##.......|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x250c '┌'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 9 x 9
++ Advance: 17
++ Offset: 8 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |........#########|
++ |........## |
++ |........## |
++ |........## |
++ |........## |
++ |........## |
++ -&gt;|........## |&lt;-
++ |........## |
++ |........## |
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x2510 '┐'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 10 x 9
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |##########.......|
++ | ##.......|
++ | ##.......|
++ | ##.......|
++ | ##.......|
++ | ##.......|
++ -&gt;| ##.......|&lt;-
++ | ##.......|
++ | ##.......|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x2514 '└'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 9 x 8
++ Advance: 17
++ Offset: 8 x 6
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |........## |
++ |........## |
++ |........## |
++ |........## |
++ |........## |
++ |........## |
++ |........## |
++ |........#########|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x2518 '┘'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 10 x 8
++ Advance: 17
++ Offset: 0 x 6
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ##.......|
++ | ##.......|
++ | ##.......|
++ | ##.......|
++ | ##.......|
++ | ##.......|
++ | ##.......|
++ |##########.......|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x251c '├'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 9 x 16
++ Advance: 17
++ Offset: 8 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |........## |
++ |........## |
++ |........## |
++ |........## |
++ |........## |
++ |........## |
++ |........## |
++ |........#########|
++ |........## |
++ |........## |
++ |........## |
++ |........## |
++ |........## |
++ -&gt;|........## |&lt;-
++ |........## |
++ |........## |
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x2524 '┤'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 10 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ##.......|
++ | ##.......|
++ | ##.......|
++ | ##.......|
++ | ##.......|
++ | ##.......|
++ | ##.......|
++ |##########.......|
++ | ##.......|
++ | ##.......|
++ | ##.......|
++ | ##.......|
++ | ##.......|
++ -&gt;| ##.......|&lt;-
++ | ##.......|
++ | ##.......|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x252c '┬'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 17 x 9
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |#################|
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ -&gt;| ## |&lt;-
++ | ## |
++ | ## |
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x2534 '┴'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 17 x 8
++ Advance: 17
++ Offset: 0 x 6
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ |#################|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x253c '┼'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 17 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ |#################|
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ -&gt;| ## |&lt;-
++ | ## |
++ | ## |
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x2550 '═'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 17 x 3
++ Advance: 17
++ Offset: 0 x 4
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |#################|
++ | |
++ |#################|
++ |.................|
++ |.................|
++ |.................|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x2551 '║'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 4 x 16
++ Advance: 17
++ Offset: 6 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |......####.......|
++ |......####.......|
++ |......####.......|
++ |......####.......|
++ |......####.......|
++ |......####.......|
++ |......####.......|
++ |......####.......|
++ |......####.......|
++ |......####.......|
++ |......####.......|
++ |......####.......|
++ |......####.......|
++ -&gt;|......####.......|&lt;-
++ |......####.......|
++ |......####.......|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x2552 '╒'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 9 x 9
++ Advance: 17
++ Offset: 8 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |........#########|
++ |........## |
++ |........#########|
++ |........## |
++ |........## |
++ |........## |
++ -&gt;|........## |&lt;-
++ |........## |
++ |........## |
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x2553 '╓'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 10 x 9
++ Advance: 17
++ Offset: 7 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.......##########|
++ |.......#### |
++ |.......#### |
++ |.......#### |
++ |.......#### |
++ |.......#### |
++ -&gt;|.......#### |&lt;-
++ |.......#### |
++ |.......#### |
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x2554 '╔'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 10 x 9
++ Advance: 17
++ Offset: 7 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.......##########|
++ |.......## |
++ |.......##########|
++ |.......#### |
++ |.......#### |
++ |.......#### |
++ -&gt;|.......#### |&lt;-
++ |.......#### |
++ |.......#### |
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x2555 '╕'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 10 x 9
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |##########.......|
++ | ##.......|
++ |##########.......|
++ | ##.......|
++ | ##.......|
++ | ##.......|
++ -&gt;| ##.......|&lt;-
++ | ##.......|
++ | ##.......|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x2556 '╖'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 10 x 9
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |##########.......|
++ | ####.......|
++ | ####.......|
++ | ####.......|
++ | ####.......|
++ | ####.......|
++ -&gt;| ####.......|&lt;-
++ | ####.......|
++ | ####.......|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x2557 '╗'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 10 x 9
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |##########.......|
++ | ##.......|
++ |##########.......|
++ | ####.......|
++ | ####.......|
++ | ####.......|
++ -&gt;| ####.......|&lt;-
++ | ####.......|
++ | ####.......|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x2558 '╘'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 9 x 9
++ Advance: 17
++ Offset: 8 x 5
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |........## |
++ |........## |
++ |........## |
++ |........## |
++ |........## |
++ |........## |
++ |........#########|
++ |........## |
++ |........#########|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x2559 '╙'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 10 x 8
++ Advance: 17
++ Offset: 7 x 6
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.......#### |
++ |.......#### |
++ |.......#### |
++ |.......#### |
++ |.......#### |
++ |.......#### |
++ |.......#### |
++ |.......##########|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x255a '╚'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 10 x 9
++ Advance: 17
++ Offset: 7 x 5
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.......#### |
++ |.......#### |
++ |.......#### |
++ |.......#### |
++ |.......#### |
++ |.......#### |
++ |.......##########|
++ |.......## |
++ |.......##########|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x255b '╛'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 10 x 9
++ Advance: 17
++ Offset: 0 x 5
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ##.......|
++ | ##.......|
++ | ##.......|
++ | ##.......|
++ | ##.......|
++ | ##.......|
++ |##########.......|
++ | ##.......|
++ |##########.......|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x255c '╜'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 10 x 8
++ Advance: 17
++ Offset: 0 x 6
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ####.......|
++ | ####.......|
++ | ####.......|
++ | ####.......|
++ | ####.......|
++ | ####.......|
++ | ####.......|
++ |##########.......|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x255d '╝'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 10 x 9
++ Advance: 17
++ Offset: 0 x 5
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ####.......|
++ | ####.......|
++ | ####.......|
++ | ####.......|
++ | ####.......|
++ | ####.......|
++ |##########.......|
++ | ##.......|
++ |##########.......|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x255e '╞'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 9 x 16
++ Advance: 17
++ Offset: 8 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |........## |
++ |........## |
++ |........## |
++ |........## |
++ |........## |
++ |........## |
++ |........#########|
++ |........## |
++ |........#########|
++ |........## |
++ |........## |
++ |........## |
++ |........## |
++ -&gt;|........## |&lt;-
++ |........## |
++ |........## |
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x255f '╟'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 10 x 16
++ Advance: 17
++ Offset: 7 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.......#### |
++ |.......#### |
++ |.......#### |
++ |.......#### |
++ |.......#### |
++ |.......#### |
++ |.......#### |
++ |.......##########|
++ |.......#### |
++ |.......#### |
++ |.......#### |
++ |.......#### |
++ |.......#### |
++ -&gt;|.......#### |&lt;-
++ |.......#### |
++ |.......#### |
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x2560 '╠'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 10 x 16
++ Advance: 17
++ Offset: 7 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.......#### |
++ |.......#### |
++ |.......#### |
++ |.......#### |
++ |.......#### |
++ |.......#### |
++ |.......##########|
++ |.......## |
++ |.......##########|
++ |.......#### |
++ |.......#### |
++ |.......#### |
++ |.......#### |
++ -&gt;|.......#### |&lt;-
++ |.......#### |
++ |.......#### |
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x2561 '╡'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 10 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ##.......|
++ | ##.......|
++ | ##.......|
++ | ##.......|
++ | ##.......|
++ | ##.......|
++ | ##.......|
++ |##########.......|
++ | ##.......|
++ |##########.......|
++ | ##.......|
++ | ##.......|
++ | ##.......|
++ -&gt;| ##.......|&lt;-
++ | ##.......|
++ | ##.......|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x2562 '╢'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 10 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ####.......|
++ | ####.......|
++ | ####.......|
++ | ####.......|
++ | ####.......|
++ | ####.......|
++ | ####.......|
++ |##########.......|
++ | ####.......|
++ | ####.......|
++ | ####.......|
++ | ####.......|
++ | ####.......|
++ -&gt;| ####.......|&lt;-
++ | ####.......|
++ | ####.......|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x2563 '╣'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 10 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ####.......|
++ | ####.......|
++ | ####.......|
++ | ####.......|
++ | ####.......|
++ | ####.......|
++ |##########.......|
++ | ##.......|
++ |##########.......|
++ | ####.......|
++ | ####.......|
++ | ####.......|
++ | ####.......|
++ -&gt;| ####.......|&lt;-
++ | ####.......|
++ | ####.......|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x2564 '╤'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 17 x 9
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |#################|
++ | |
++ |#################|
++ | ## |
++ | ## |
++ | ## |
++ -&gt;| ## |&lt;-
++ | ## |
++ | ## |
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x2565 '╥'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 17 x 9
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |#################|
++ | #### |
++ | #### |
++ | #### |
++ | #### |
++ | #### |
++ -&gt;| #### |&lt;-
++ | #### |
++ | #### |
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x2566 '╦'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 17 x 9
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |#################|
++ | |
++ |#################|
++ | #### |
++ | #### |
++ | #### |
++ -&gt;| #### |&lt;-
++ | #### |
++ | #### |
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x2567 '╧'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 17 x 9
++ Advance: 17
++ Offset: 0 x 5
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ |#################|
++ | |
++ |#################|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x2568 '╨'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 17 x 8
++ Advance: 17
++ Offset: 0 x 6
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | #### |
++ | #### |
++ | #### |
++ | #### |
++ | #### |
++ | #### |
++ | #### |
++ |#################|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x2569 '╩'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 17 x 9
++ Advance: 17
++ Offset: 0 x 5
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | #### |
++ | #### |
++ | #### |
++ | #### |
++ | #### |
++ | #### |
++ |#################|
++ | |
++ |#################|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x256a '╪'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 17 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ |#################|
++ | |
++ |#################|
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ -&gt;| ## |&lt;-
++ | ## |
++ | ## |
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x256b '╫'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 17 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | #### |
++ | #### |
++ | #### |
++ | #### |
++ | #### |
++ | #### |
++ | #### |
++ |#################|
++ | #### |
++ | #### |
++ | #### |
++ | #### |
++ | #### |
++ -&gt;| #### |&lt;-
++ | #### |
++ | #### |
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x256c '╬'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 17 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | #### |
++ | #### |
++ | #### |
++ | #### |
++ | #### |
++ | #### |
++ |#################|
++ | |
++ |#################|
++ | #### |
++ | #### |
++ | #### |
++ | #### |
++ -&gt;| #### |&lt;-
++ | #### |
++ | #### |
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x2580 '▀'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 12 x 8
++ Advance: 11
++ Offset: -1 x 3
++ ___________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |188888888888|
++ |1##########c|
++ |1##########c|
++ |1##########c|
++ |1##########c|
++ |1##########c|
++ |1##########c|
++ | 77777777776|
++ |............|
++ |............|
++ -&gt;|............|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ -----------
++
++Char 0x2584 '▄'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 12 x 8
++ Advance: 11
++ Offset: -1 x -4
++ ___________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |188888888888|
++ |1##########c|
++ |1##########c|
++ -&gt;|1##########c|&lt;-
++ |1##########c|
++ |1##########c|
++ |1##########c|
++ | 77777777776|
++ |............|
++ -----------
++
++Char 0x2588 '█'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 12 x 15
++ Advance: 11
++ Offset: -1 x -4
++ ___________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |1aaaaaaaaaa9|
++ |1##########c|
++ |1##########c|
++ |1##########c|
++ |1##########c|
++ |1##########c|
++ |1##########c|
++ |1##########c|
++ |1##########c|
++ |1##########c|
++ -&gt;|1##########c|&lt;-
++ |1##########c|
++ |1##########c|
++ |1##########c|
++ | 77777777776|
++ |............|
++ -----------
++
++Char 0x258c '▌'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 15
++ Advance: 11
++ Offset: -1 x -4
++ ___________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |1aaaaa4.....|
++ |1#####5.....|
++ |1#####5.....|
++ |1#####5.....|
++ |1#####5.....|
++ |1#####5.....|
++ |1#####5.....|
++ |1#####5.....|
++ |1#####5.....|
++ |1#####5.....|
++ -&gt;|1#####5.....|&lt;-
++ |1#####5.....|
++ |1#####5.....|
++ |1#####5.....|
++ | 777772.....|
++ |............|
++ -----------
++
++Char 0x2590 '▐'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 15
++ Advance: 11
++ Offset: 5 x -4
++ ___________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |.....1aaaaa4|
++ |.....1#####5|
++ |.....1#####5|
++ |.....1#####5|
++ |.....1#####5|
++ |.....1#####5|
++ |.....1#####5|
++ |.....1#####5|
++ |.....1#####5|
++ |.....1#####5|
++ -&gt;|.....1#####5|&lt;-
++ |.....1#####5|
++ |.....1#####5|
++ |.....1#####5|
++ |..... 777772|
++ |............|
++ -----------
++
++Char 0x2591 '░'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 15
++ Advance: 11
++ Offset: -1 x -4
++ ___________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |1a2 68 .|
++ |1#3 8a .|
++ | 13 32.|
++ | 5# c7.|
++ | 27 63.|
++ |1a2 68 .|
++ |1#3 8a .|
++ | 13 32.|
++ | 5# c7.|
++ | 27 63.|
++ -&gt;|1a2 68 .|&lt;-
++ |1#3 8a .|
++ | 13 32.|
++ | 5# c7.|
++ | 27 63.|
++ |............|
++ -----------
++
++Char 0x2592 '▒'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 12 x 15
++ Advance: 11
++ Offset: -1 x -4
++ ___________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |1a24a 68 95 |
++ |1#35# 8a c7 |
++ | a8 #53#16c|
++ | 2752b2 b 3a|
++ |1#35# 8a c7 |
++ |182 85245615|
++ | a8 #53#16c|
++ |181 85355724|
++ |1#35# 8a c7 |
++ | 1861c31c 4a|
++ -&gt;| 97 #42#15b|&lt;-
++ |1#35# 8a c7 |
++ |1a 1a3463833|
++ | a8 #53#16c|
++ | 54 7217 36|
++ |............|
++ -----------
++
++Char 0x2593 '▓'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 12 x 15
++ Advance: 11
++ Offset: -1 x -4
++ ___________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ | 8aaa42aaa9|
++ | a###53###c|
++ |1##ca####abc|
++ |1##8 ####16c|
++ |1##b7####7ac|
++ | 3b###75###c|
++ | a###53###c|
++ |1##ca####abc|
++ |1##8 ####16c|
++ |1##b7####7ac|
++ -&gt;| 3b###75###c|&lt;-
++ | a###53###c|
++ |1##ca####abc|
++ |1##8 ####16c|
++ | 774 7777 36|
++ |............|
++ -----------
++
++Char 0x25a0 '■'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 11
++ Advance: 13
++ Offset: 1 x -2
++ _____________
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.a##########.|
++ |.a##########.|
++ |.a##########.|
++ |.a##########.|
++ |.a##########.|
++ |.a##########.|
++ |.a##########.|
++ |.a##########.|
++ -&gt;|.a##########.|&lt;-
++ |.a##########.|
++ |.7aaaaaaaaa9.|
++ |.............|
++ |.............|
++ |.............|
++ -------------
++
++Char 0x25b6 '▶'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 11
++ Advance: 11
++ Offset: 0 x -2
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |a3 |
++ |##a3 |
++ |####a3 |
++ |######a3 |
++ |########a3 |
++ |#########c3|
++ |#######c6 |
++ |#####c6 |
++ -&gt;|###c6 |&lt;-
++ |##6 |
++ |6 |
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x25c0 '◀'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 11
++ Advance: 11
++ Offset: 0 x -2
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ | 58|
++ | 5c#a|
++ | 5c###a|
++ | 5c#####a|
++ | 5b#######a|
++ |6#########a|
++ | 18#######a|
++ | 18#####a|
++ -&gt;| 18###a|&lt;-
++ | 18#a|
++ | 15|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x3001 '、'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 5 x 4
++ Advance: 17
++ Offset: 3 x 1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |...## .........|
++ |... ### .........|
++ |... ###.........|
++ |... ##.........|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3002 '。'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 5 x 4
++ Advance: 17
++ Offset: 3 x 0
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |... ### .........|
++ |...## ##.........|
++ |...## ##.........|
++ -&gt;|... ### .........|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3042 'あ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 15
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## .|
++ |.. ## .|
++ |.. ## ##### .|
++ |.. ###### .|
++ |.. ## .|
++ |.. ## ## .|
++ |.. ####### .|
++ |.. ## ## ## .|
++ |.. ### ## ## .|
++ |.. #### ## ##.|
++ |..## #### ##.|
++ |..## ## ##.|
++ |.. ###### ## .|
++ -&gt;|.. ### ### .|&lt;-
++ |.. ### .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3044 'い'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 11
++ Advance: 17
++ Offset: 3 x 0
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |...## .|
++ |... ## ## .|
++ |... ## ## .|
++ |... ## ## .|
++ |...## ## .|
++ |...## ##.|
++ |...## ## ##.|
++ |...## ## ###.|
++ |... #### ##.|
++ |... ## .|
++ -&gt;|... ## .|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3046 'う'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 10 x 16
++ Advance: 17
++ Offset: 4 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.... ## ...|
++ |.... #### ...|
++ |.... ...|
++ |.... ...|
++ |....## #### ...|
++ |.... #### ## ...|
++ |.... ##...|
++ |.... ##...|
++ |.... ##...|
++ |.... ##...|
++ |.... ## ...|
++ |.... ## ...|
++ |.... ## ...|
++ -&gt;|.... ## ...|&lt;-
++ |.... ## ...|
++ |.... ## ...|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3048 'え'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 15
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ### ..|
++ |.. ..|
++ |.. ## ##### ..|
++ |.. #### ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. #### ..|
++ |.. ## ## ..|
++ |.. ## ## ..|
++ |.. ## ## ..|
++ -&gt;|..## ## ..|&lt;-
++ |.. ####..|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x304a 'お'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 1 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## |
++ |. ## |
++ |. ## ## |
++ |. ## ## ### |
++ |. #### ## |
++ |. ##### ####|
++ |. ## |
++ |. ## ##### |
++ |. #### ## |
++ |. ## ## |
++ |. ### ## |
++ |.### ## ## |
++ |. ##### ## ## |
++ -&gt;|. ### ### |&lt;-
++ |. ## |
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x304b 'か'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 14
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.. ## .|
++ |.. ## .|
++ |.. ## ## .|
++ |.. ## ## .|
++ |..## ##### ## .|
++ |.. #### ## ## .|
++ |.. ## ## ##.|
++ |.. ## ## ###.|
++ |.. ## ## ##.|
++ |.. ## ## .|
++ |.. ## ## .|
++ |.. #### ## .|
++ -&gt;|..## #### .|&lt;-
++ |.. ## .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x304c 'が'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 14
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.. ## ## |
++ |.. ## ####|
++ |.. ## ######|
++ |.. ## ## |
++ |..## ##### ## |
++ |.. #### ## ## |
++ |.. ## ## ## |
++ |.. ## ## ### |
++ |.. ## ## ## |
++ |.. ## ## |
++ |.. ## ## |
++ |.. #### ## |
++ -&gt;|..## #### |&lt;-
++ |.. ## |
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x304d 'き'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 11 x 15
++ Advance: 17
++ Offset: 4 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.... ## ..|
++ |.... ## ## ..|
++ |.... ##### ..|
++ |.... ###### ..|
++ |.... ## ##..|
++ |.... ##### ..|
++ |....######## ..|
++ |.... ## ..|
++ |.... ## ..|
++ |.... ######## ..|
++ |.... ## ### ..|
++ |....## ..|
++ |....## ..|
++ -&gt;|.... ### ..|&lt;-
++ |.... ##### ..|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x304f 'く'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 7 x 15
++ Advance: 17
++ Offset: 5 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |..... ##.....|
++ |..... ##.....|
++ |..... ## .....|
++ |..... ## .....|
++ |..... ## .....|
++ |..... ## .....|
++ |..... ## .....|
++ |.....## .....|
++ |..... ## .....|
++ |..... ## .....|
++ |..... ## .....|
++ |..... ## .....|
++ |..... ## .....|
++ -&gt;|..... ##.....|&lt;-
++ |..... ##.....|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3050 'ぐ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 11 x 15
++ Advance: 17
++ Offset: 5 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |..... ## .|
++ |..... ## .|
++ |..... ## ## .|
++ |..... #### ##.|
++ |..... ## ####.|
++ |..... ## ## .|
++ |..... ## .|
++ |.....## .|
++ |..... ## .|
++ |..... ## .|
++ |..... ## .|
++ |..... ## .|
++ |..... ## .|
++ -&gt;|..... ## .|&lt;-
++ |..... ## .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3051 'け'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 16
++ Advance: 17
++ Offset: 2 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## .|
++ |..## ## .|
++ |.. ## ## .|
++ |.. ## ## .|
++ |.. ## #####.|
++ |..## ####### .|
++ |..## ## .|
++ |..## ## .|
++ |..## ## .|
++ |..## ## .|
++ |..#### ## .|
++ |.. ## ## .|
++ |.. ## ## .|
++ -&gt;|.. ## .|&lt;-
++ |.. ## .|
++ |.. ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3053 'こ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 12 x 12
++ Advance: 17
++ Offset: 3 x 0
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |... ## ..|
++ |... ######## ..|
++ |... ## ..|
++ |... ## ..|
++ |... ..|
++ |... ..|
++ |... ..|
++ |...## ..|
++ |...## ..|
++ |...## ..|
++ |... ## ##..|
++ -&gt;|... ######### ..|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3055 'さ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 11 x 15
++ Advance: 17
++ Offset: 4 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.... ## ..|
++ |.... ## ..|
++ |.... ## ###..|
++ |....## #### ..|
++ |.... ####### ..|
++ |.... ## ..|
++ |.... ## ..|
++ |.... ## ..|
++ |.... ######## ..|
++ |.... ## ### ..|
++ |....## ..|
++ |....## ..|
++ |.... ## ..|
++ -&gt;|.... ### ..|&lt;-
++ |.... ##### ..|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3057 'し'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 11 x 14
++ Advance: 17
++ Offset: 3 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |...## ...|
++ |... ## ...|
++ |... ## ...|
++ |... ## ...|
++ |... ## ...|
++ |... ## ...|
++ |... ## ...|
++ |... ## ...|
++ |... ## ...|
++ |... ## ...|
++ |... ## ##...|
++ |... ## ## ...|
++ -&gt;|... ## ### ...|&lt;-
++ |... #### ...|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3058 'じ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 11 x 14
++ Advance: 17
++ Offset: 3 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |...## ...|
++ |... ## ## ...|
++ |... ## ## ##...|
++ |... ## ####...|
++ |... ## ## ...|
++ |... ## ...|
++ |... ## ...|
++ |... ## ...|
++ |... ## ...|
++ |... ## ...|
++ |... ## ##...|
++ |... ## ## ...|
++ -&gt;|... ## ### ...|&lt;-
++ |... #### ...|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3059 'す'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 16
++ Advance: 17
++ Offset: 2 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## .|
++ |.. ## .|
++ |..## #######.|
++ |.. ######## .|
++ |.. ## .|
++ |.. ## .|
++ |.. ##### .|
++ |.. ### ## .|
++ |.. ## ## .|
++ |.. ## ### .|
++ |.. ##### .|
++ |.. ## .|
++ |.. ## .|
++ -&gt;|.. ## .|&lt;-
++ |.. ## .|
++ |.. ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x305a 'ず'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## ## |
++ |. ## ##|
++ |.## #########|
++ |. ######## ## |
++ |. ## |
++ |. ## |
++ |. ##### |
++ |. ### ## |
++ |. ## ## |
++ |. ## ### |
++ |. ##### |
++ |. ## |
++ |. ## |
++ -&gt;|. ## |&lt;-
++ |. ## |
++ |. ## |
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x305b 'せ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 13
++ Advance: 17
++ Offset: 1 x 0
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. ## .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ######.|
++ |.## ####### .|
++ |. ###### ## .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ### .|
++ |. ## ## .|
++ |. ## .|
++ |. ## .|
++ -&gt;|. ####### .|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x305d 'そ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 14
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.. ## #### ..|
++ |.. ### ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## #####..|
++ |.. ###### ..|
++ |..#### ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ -&gt;|.. ## ..|&lt;-
++ |.. #### ..|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x305f 'た'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 15
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ## ..|
++ |.. ##### ..|
++ |.. ### ..|
++ |..##### ..|
++ |.. ## #### ..|
++ |.. ## ### ###..|
++ |.. ## ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ## ..|
++ |..## ## ..|
++ -&gt;|..## ## ..|&lt;-
++ |..## ######..|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3060 'だ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 15
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## ## .|
++ |.. ## ## ##.|
++ |.. ## ## ####.|
++ |.. ##### ## .|
++ |.. ### .|
++ |..##### .|
++ |.. ## #### .|
++ |.. ## ### ### .|
++ |.. ## ## .|
++ |.. ## .|
++ |.. ## .|
++ |.. ## ## .|
++ |..## ## .|
++ -&gt;|..## ## .|&lt;-
++ |..## ###### .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3061 'ち'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 15
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ### ..|
++ |..## ##### ..|
++ |.. ##### ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ##### ..|
++ |.. #### ## ..|
++ |.. ### ##..|
++ |.. ## ##..|
++ |.. ##..|
++ |.. ## ..|
++ -&gt;|.. ### ..|&lt;-
++ |.. ##### ..|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3063 'っ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 10 x 7
++ Advance: 17
++ Offset: 4 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.... ###### ...|
++ |....#### ##...|
++ |.... ##...|
++ |.... ##...|
++ |.... ## ...|
++ -&gt;|.... ### ...|&lt;-
++ |.... ### ...|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3064 'つ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 10
++ Advance: 17
++ Offset: 1 x 1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. #### .|
++ |. #### ## .|
++ |.## ### ## .|
++ |. ### ##.|
++ |. ##.|
++ |. ##.|
++ |. ## .|
++ |. ## .|
++ |. ### .|
++ |. #### .|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3066 'て'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 13
++ Advance: 17
++ Offset: 1 x 0
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. #####.|
++ |.## ####### .|
++ |. ##### ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ -&gt;|. #### .|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3067 'で'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 13
++ Advance: 17
++ Offset: 1 x 0
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. #### |
++ |.## ####### |
++ |. ##### ## ## |
++ |. ## ## ##|
++ |. ## ####|
++ |. ## ## |
++ |. ## |
++ |. ## |
++ |. ## |
++ |. ## |
++ |. ## |
++ |. ## |
++ -&gt;|. #### |&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3068 'と'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 11 x 14
++ Advance: 17
++ Offset: 4 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.... ## ..|
++ |.... ## ..|
++ |.... ## ..|
++ |.... ## ## ..|
++ |.... ## ###..|
++ |.... ## ### ..|
++ |.... #### ..|
++ |.... ### ..|
++ |.... ## ..|
++ |.... ## ..|
++ |....## ..|
++ |....## ..|
++ -&gt;|.... ## ..|&lt;-
++ |.... #########..|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3069 'ど'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 14
++ Advance: 17
++ Offset: 3 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |... ## ## .|
++ |... ## ## ##.|
++ |... ## ####.|
++ |... ## ## .|
++ |... ## ### .|
++ |... ## ### .|
++ |... #### .|
++ |... ### .|
++ |... ## .|
++ |... ## .|
++ |...## .|
++ |...## .|
++ -&gt;|... ## .|&lt;-
++ |... ######### .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x306a 'な'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 15
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## .|
++ |.. ## ## .|
++ |.. #### .|
++ |..###### ## .|
++ |.. ## ### .|
++ |.. ## ## ##.|
++ |.. ## ## .|
++ |.. ## ## .|
++ |.. ## ## .|
++ |.. ## ## .|
++ |..## ## .|
++ |.. ###### .|
++ |.. ## #### .|
++ -&gt;|.. ## ## ## .|&lt;-
++ |.. ##### .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x306b 'に'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 14
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |..## ..|
++ |.. ## ..|
++ |.. ## ##### ..|
++ |.. ## ### ###..|
++ |.. ## ## ..|
++ |..## ..|
++ |..## ..|
++ |..## ..|
++ |..## ..|
++ |..## ## ..|
++ |..## ## ..|
++ |..#### ## ..|
++ -&gt;|.. ## ######..|&lt;-
++ |.. ## ..|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x306e 'の'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 12
++ Advance: 17
++ Offset: 2 x 0
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.. ##### .|
++ |.. ##### ## .|
++ |.. ## ## ## .|
++ |.. ## ## ## .|
++ |.. ## ## ## .|
++ |..## ## ##.|
++ |..## ## ##.|
++ |..## ## ## .|
++ |.. #### ## .|
++ |.. ### ## .|
++ |.. ## .|
++ -&gt;|.. ### .|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x306f 'は'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 15
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## .|
++ |..## ## .|
++ |.. ## ## .|
++ |.. ## ## .|
++ |.. ## ## #####.|
++ |.. ## ###### .|
++ |.. ## ## .|
++ |..## ## .|
++ |..## ## .|
++ |..## ## .|
++ |..## ## .|
++ |..#### ###### .|
++ |..### ## #### .|
++ -&gt;|.. ## ## ## ##.|&lt;-
++ |.. ## ##### .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3070 'ば'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 15
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## ## |
++ |..## ### ##|
++ |.. ## ######|
++ |.. ## #### |
++ |.. ## ## ##### |
++ |.. ## ###### |
++ |.. ## ## |
++ |..## ## |
++ |..## ## |
++ |..## ## |
++ |..## ## |
++ |..#### ###### |
++ |..### ## #### |
++ -&gt;|.. ## ## ## ## |&lt;-
++ |.. ## ##### |
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3072 'ひ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 14
++ Advance: 17
++ Offset: 1 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. ## .|
++ |. ## ## .|
++ |. #### ### .|
++ |.###### ## .|
++ |. ## ## .|
++ |. ## ### .|
++ |. ## #### .|
++ |. ## ## ##.|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ## .|
++ -&gt;|. ## ### .|&lt;-
++ |. #### .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3073 'び'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 1 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## |
++ |. #### ##|
++ |. ## ## ####|
++ |. #### ##### |
++ |.###### ## |
++ |. ## ## |
++ |. ## ### |
++ |. ## #### |
++ |. ## ## ## |
++ |. ## ## |
++ |. ## ## |
++ |. ## ## |
++ |. ## ## |
++ -&gt;|. ## ### |&lt;-
++ |. #### |
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3078 'へ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 7
++ Advance: 17
++ Offset: 1 x 3
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. ### |
++ |. ## ## |
++ |. ## ## |
++ |. ## ## |
++ |.#### ## |
++ |. ## ### |
++ |. ###|
++ |.................|
++ |.................|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3079 'べ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 10
++ Advance: 17
++ Offset: 1 x 3
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. ## |
++ |. ## ## |
++ |. #### |
++ |. ### ## |
++ |. ## ## |
++ |. ## ## |
++ |. ## ## |
++ |.#### ## |
++ |. ## ### |
++ |. ###|
++ |.................|
++ |.................|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x307b 'ほ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 14
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |..## ## ### .|
++ |.. ## ##### .|
++ |.. ## ## .|
++ |.. ## ## .|
++ |.. ## #####.|
++ |.. ## ####### .|
++ |..## ## .|
++ |..## ## .|
++ |..## ## .|
++ |..## ## .|
++ |..#### ###### .|
++ |..### ## #### .|
++ -&gt;|.. ## ## ## ##.|&lt;-
++ |.. ## ##### .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x307e 'ま'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 12 x 15
++ Advance: 17
++ Offset: 3 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |... ## ..|
++ |... ## ..|
++ |...## ##### ..|
++ |... ####### ..|
++ |... ## ..|
++ |... ## ..|
++ |...## #### ..|
++ |... ####### ..|
++ |... ## ..|
++ |... ## ..|
++ |... ###### ..|
++ |... ## #### ..|
++ |...## ## ###..|
++ -&gt;|...### ## ..|&lt;-
++ |... ##### ..|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x307f 'み'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 13
++ Advance: 17
++ Offset: 1 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. ## ## .|
++ |. ##### .|
++ |. ## .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ###### ## .|
++ |. ##### #### .|
++ |. ## ## ### .|
++ |.## ## ## ##.|
++ |.## ## ## .|
++ |.## ## ## .|
++ -&gt;|. ### ## .|&lt;-
++ |. ## .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3080 'む'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 15
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## .|
++ |.. ## .|
++ |..## ##### .|
++ |.. #### ### .|
++ |.. ## ## .|
++ |.. ## ###.|
++ |.. #### .|
++ |..## ## .|
++ |..## ## ## .|
++ |..## ## ## .|
++ |..#### ## .|
++ |.. ### ## .|
++ |.. ## ## .|
++ -&gt;|.. ## ## .|&lt;-
++ |.. ####### .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3081 'め'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 14
++ Advance: 17
++ Offset: 1 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. ## .|
++ |. ## .|
++ |. ## ## .|
++ |. ## ##### .|
++ |. ####### ### .|
++ |. ### ## ## .|
++ |. ### ## ## .|
++ |. #### ## ##.|
++ |. ## #### ##.|
++ |.## ## ##.|
++ |.## ### ## .|
++ |.## ## ## ## .|
++ -&gt;|. ### ## .|&lt;-
++ |. ### .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3082 'も'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 12 x 15
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## ...|
++ |.. ## ...|
++ |.. ## ## ...|
++ |.. #### ...|
++ |.. #### ...|
++ |.. #### ...|
++ |..### ## ...|
++ |.. ##### ## ...|
++ |.. ##### ##...|
++ |.. ## ##...|
++ |.. ## ##...|
++ |.. ## ##...|
++ |.. ## ## ...|
++ -&gt;|.. ## ## ...|&lt;-
++ |.. #### ...|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3084 'や'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 15
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. ## .|
++ |. ### .|
++ |. ### ### .|
++ |. ## .|
++ |. ## ##### .|
++ |. ###### ##.|
++ |.## #### ##.|
++ |. ### ## ##.|
++ |. ## ## .|
++ |. ## #### .|
++ |. ## .|
++ |. ## .|
++ -&gt;|. ## .|&lt;-
++ |. ## .|
++ |. ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3086 'ゆ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 14
++ Advance: 17
++ Offset: 1 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. ### .|
++ |. ## .|
++ |.## ##### .|
++ |. ## #### ## .|
++ |. ## ## ## ## .|
++ |. ## ## ## ##.|
++ |. #### ## ##.|
++ |. ### ## ##.|
++ |. ### ## ## ## .|
++ |. ## #### ## .|
++ |. ## ##### .|
++ |. ## .|
++ -&gt;|. ## .|&lt;-
++ |. ## .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3088 'よ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 15
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ###..|
++ |.. ##### ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ####### ..|
++ |..## #### ..|
++ |..## ## ### ..|
++ -&gt;|..## ## ##..|&lt;-
++ |.. ##### ..|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3089 'ら'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 11 x 15
++ Advance: 17
++ Offset: 4 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.... ## ..|
++ |.... ## ..|
++ |.... #### ..|
++ |.... ## ..|
++ |.... ## ..|
++ |....## ..|
++ |....## ..|
++ |....## ##### ..|
++ |....##### ## ..|
++ |....### ##..|
++ |....## ##..|
++ |....## ## ..|
++ |.... ## ..|
++ -&gt;|.... ### ..|&lt;-
++ |.... #### ..|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x308a 'り'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 10 x 16
++ Advance: 17
++ Offset: 3 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |...## ....|
++ |... ## #### ....|
++ |... #### ## ....|
++ |... #### ##....|
++ |... ### ##....|
++ |... ### ##....|
++ |... ## ##....|
++ |... ## ##....|
++ |... ## ##....|
++ |... ## ##....|
++ |... ## ....|
++ |... ## ....|
++ |... ## ....|
++ -&gt;|... ## ....|&lt;-
++ |... ## ....|
++ |... ## ....|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x308b 'る'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 12 x 14
++ Advance: 17
++ Offset: 3 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |... ## #### ..|
++ |... ### ## ..|
++ |... ## ..|
++ |... ## ..|
++ |... ## ..|
++ |... ###### ..|
++ |... ### ## ..|
++ |... ## ## ..|
++ |...## ##..|
++ |... ##..|
++ |... ### ##..|
++ |... ## ## ## ..|
++ -&gt;|... ## #### ..|&lt;-
++ |... ##### ..|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x308c 'れ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 1 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## |
++ |. ## |
++ |. ## |
++ |. ## ### |
++ |. ## ## ## |
++ |.## ##### ## |
++ |. ###### ## |
++ |. ## ## |
++ |. ## ## |
++ |. ### ## |
++ |. ### ## |
++ |. #### ## ##|
++ |. ## ## ## ## |
++ -&gt;|.## ### ### |&lt;-
++ |. ## |
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x308f 'わ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 15
++ Advance: 17
++ Offset: 1 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. #### .|
++ |.## ### .|
++ |. #### ##### .|
++ |. ##### ## .|
++ |. ### ## .|
++ |. ## ##.|
++ |. ### ##.|
++ |. ### ## .|
++ |. #### ## .|
++ |.## ## ### .|
++ -&gt;|. ### ### .|&lt;-
++ |. ## .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3092 'を'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 15
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## .|
++ |.. ## .|
++ |.. ## ##### .|
++ |.. ##### .|
++ |.. ## ## .|
++ |.. ## ###.|
++ |.. ##### ### .|
++ |.. ## ### .|
++ |.. ## ### .|
++ |..## #### .|
++ |.. ## ## .|
++ |.. ## ## .|
++ |.. ## .|
++ -&gt;|.. ## .|&lt;-
++ |.. ####### .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3093 'ん'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 15
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## |
++ |.. ## |
++ |.. ## |
++ |.. ## |
++ |.. ## |
++ |.. ## |
++ |.. ## |
++ |.. ##### |
++ |.. ### ## |
++ |.. ### ## |
++ |.. ## ## |
++ |.. ## ## ##|
++ |.. ## ## ## |
++ -&gt;|..## ## ## |&lt;-
++ |..## ### |
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30a1 'ァ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 10 x 9
++ Advance: 17
++ Offset: 3 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |...## #####....|
++ |... ##### ##....|
++ |... ## ....|
++ |... #### ....|
++ |... ## ....|
++ |... ## ....|
++ |... ## ....|
++ -&gt;|... ## ....|&lt;-
++ |... ## ....|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30a2 'ア'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 13
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |..## ######..|
++ |.. ####### ##..|
++ |.. ## ..|
++ |.. ## ## ..|
++ |.. ## ## ..|
++ |.. #### ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ -&gt;|.. ## ..|&lt;-
++ |.. ## ..|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30a3 'ィ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 9 x 11
++ Advance: 17
++ Offset: 4 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.... ##....|
++ |.... ##....|
++ |.... ## ....|
++ |.... ## ....|
++ |.... ## ....|
++ |.... ##### ....|
++ |....### ## ....|
++ |.... ## ....|
++ |.... ## ....|
++ -&gt;|.... ## ....|&lt;-
++ |.... ## ....|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30a4 'イ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 11 x 14
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.. ##....|
++ |.. ##....|
++ |.. ## ....|
++ |.. ## ....|
++ |.. ## ....|
++ |.. ### ....|
++ |.. ## ## ....|
++ |.. ### ## ....|
++ |..### ## ....|
++ |.. ## ....|
++ |.. ## ....|
++ |.. ## ....|
++ -&gt;|.. ## ....|&lt;-
++ |.. ## ....|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30a6 'ウ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 12 x 14
++ Advance: 17
++ Offset: 3 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |... ## ..|
++ |... ## ..|
++ |... ## ..|
++ |...## #######..|
++ |...###### ##..|
++ |... ## ##..|
++ |... ## ## ..|
++ |... ## ## ..|
++ |... ## ## ..|
++ |... ## ..|
++ |... ## ..|
++ |... ## ..|
++ -&gt;|... ## ..|&lt;-
++ |... ## ..|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30a7 'ェ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 10 x 7
++ Advance: 17
++ Offset: 3 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |... ##### ....|
++ |... ##### ....|
++ |... ## ....|
++ |... ## ....|
++ |... ## ....|
++ -&gt;|... ###### ....|&lt;-
++ |...#### ##....|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30a8 'エ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 10
++ Advance: 17
++ Offset: 1 x 1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. #### .|
++ |. ######## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ######### .|
++ |.###### ##.|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30a9 'ォ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 10 x 11
++ Advance: 17
++ Offset: 4 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.... ## ...|
++ |.... ## ...|
++ |....## #####...|
++ |.... ###### ...|
++ |.... ### ...|
++ |.... #### ...|
++ |.... ## ## ...|
++ |.... ## ## ...|
++ -&gt;|....## ## ...|&lt;-
++ |.... ### ...|
++ |.... ## ...|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30aa 'オ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 14
++ Advance: 17
++ Offset: 3 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |... ## .|
++ |... ## .|
++ |...## ######.|
++ |... ######## .|
++ |... ## .|
++ |... ### .|
++ |... ### .|
++ |... #### .|
++ |... ## ## .|
++ |... ## ## .|
++ |... ## ## .|
++ |...### ## .|
++ -&gt;|... ### .|&lt;-
++ |... ## .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30ab 'カ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 14
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## #######..|
++ |.. ###### ##..|
++ |.. ## ##..|
++ |.. ## ##..|
++ |.. ## ##..|
++ |.. ## ## ..|
++ |.. ## ## ..|
++ |.. ## ## ..|
++ |.. ## #### ..|
++ -&gt;|.. ## ### ..|&lt;-
++ |..## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30ad 'キ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 14
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.. ## .|
++ |.. ## .|
++ |.. ## ### .|
++ |.. ##### .|
++ |.. ####### .|
++ |.. ## .|
++ |.. ## ####.|
++ |.. ##### .|
++ |.. ##### .|
++ |..##### ## .|
++ |.. ## .|
++ |.. ## .|
++ -&gt;|.. ## .|&lt;-
++ |.. ## .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30af 'ク'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 11 x 14
++ Advance: 17
++ Offset: 3 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |... ## ...|
++ |... ## ###...|
++ |... #######...|
++ |... ## ##...|
++ |... ## ##...|
++ |... ## ## ...|
++ |... ## ## ...|
++ |... ## ## ...|
++ |...## ## ...|
++ |... ## ...|
++ |... ## ...|
++ |... ## ...|
++ -&gt;|... ## ...|&lt;-
++ |... ## ...|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30b0 'グ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 15
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## |
++ |.. ## ## ##|
++ |.. ## #######|
++ |.. ######### |
++ |.. ## ## |
++ |.. ## ## |
++ |.. ## ## |
++ |.. ## ## |
++ |.. ## ## |
++ |..## ## |
++ |.. ## |
++ |.. ## |
++ |.. ## |
++ -&gt;|.. ## |&lt;-
++ |.. ## |
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30b2 'ゲ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 15
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## |
++ |.. ## ## ##|
++ |.. ## ####|
++ |.. ## #### |
++ |.. ####### |
++ |.. ## ## |
++ |.. ## ## |
++ |.. ## ## |
++ |.. ## ## |
++ |..## ## |
++ |.. ## |
++ |.. ## |
++ |.. ## |
++ -&gt;|.. ## |&lt;-
++ |.. ## |
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30b3 'コ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 12 x 10
++ Advance: 17
++ Offset: 2 x 1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |..## ######...|
++ |.. ###### ##...|
++ |.. ##...|
++ |.. ##...|
++ |.. ##...|
++ |.. ## ...|
++ |.. ## ...|
++ |.. ## ...|
++ |.. ####### ...|
++ |.. #### ## ...|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30b5 'サ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 15
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## .|
++ |.. ## ## .|
++ |.. ## ## .|
++ |.. ## ## .|
++ |..## ## #######.|
++ |.. ####### ## .|
++ |.. ## ## .|
++ |.. ## ## .|
++ |.. ## ## .|
++ |.. ## ## .|
++ |.. ## .|
++ |.. ## .|
++ |.. ## .|
++ -&gt;|.. ## .|&lt;-
++ |.. ## .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30b6 'ザ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 15
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## ## |
++ |.. ## ### ##|
++ |.. ## ######|
++ |.. ## #### |
++ |..## ## ####### |
++ |.. ####### ## |
++ |.. ## ## |
++ |.. ## ## |
++ |.. ## ## |
++ |.. ## ## |
++ |.. ## |
++ |.. ## |
++ |.. ## |
++ -&gt;|.. ## |&lt;-
++ |.. ## |
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30b7 'シ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 13
++ Advance: 17
++ Offset: 3 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |... ### .|
++ |... ## .|
++ |... .|
++ |... .|
++ |...### ##.|
++ |... ## ## .|
++ |... ## .|
++ |... ## .|
++ |... ## .|
++ |... ## .|
++ |... ## .|
++ -&gt;|...## ### .|&lt;-
++ |... ### .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30b8 'ジ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 15
++ Advance: 17
++ Offset: 3 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |... ## |
++ |... ## ##|
++ |... ### ####|
++ |... ## ## |
++ |... |
++ |... |
++ |...### ## |
++ |... ## ## |
++ |... ## |
++ |... ## |
++ |... ## |
++ |... ## |
++ |... ## |
++ -&gt;|...## ### |&lt;-
++ |... ### |
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30b9 'ス'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 12
++ Advance: 17
++ Offset: 1 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. ## #### ..|
++ |. ##### ## ..|
++ |. ## ..|
++ |. ## ..|
++ |. ## ..|
++ |. ## ..|
++ |. ### ..|
++ |. ## ## ..|
++ |. ## ## ..|
++ |. ## ## ..|
++ -&gt;|. ### ##..|&lt;-
++ |.### ##..|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30ba 'ズ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 14
++ Advance: 17
++ Offset: 1 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. ## .|
++ |. ## ##.|
++ |. ## ########.|
++ |. ##### #### .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ### .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ## .|
++ -&gt;|. ### ## .|&lt;-
++ |.### ## .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30bb 'セ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 13
++ Advance: 17
++ Offset: 2 x 0
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.. ## .|
++ |.. ## .|
++ |.. ## .|
++ |.. ## #####.|
++ |.. ###### ##.|
++ |..## ### ## .|
++ |.. ##### ## .|
++ |.. ## ## .|
++ |.. ## ## .|
++ |.. ## .|
++ |.. ## .|
++ |.. ## .|
++ -&gt;|.. ####### .|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30bd 'ソ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 12 x 14
++ Advance: 17
++ Offset: 3 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |... ## ..|
++ |...## ##..|
++ |... ## ##..|
++ |... ## ##..|
++ |... ## ## ..|
++ |... ## ## ..|
++ |... ## ..|
++ |... ## ..|
++ |... ## ..|
++ |... ## ..|
++ |... ## ..|
++ |... ## ..|
++ -&gt;|... ## ..|&lt;-
++ |... ## ..|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30bf 'タ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 12 x 14
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.. ## ...|
++ |.. ## ####...|
++ |.. ##### ##...|
++ |.. ## ##...|
++ |.. ## ## ...|
++ |.. ## ## ...|
++ |.. ## ##### ...|
++ |.. ## ### ...|
++ |..## ## ...|
++ |.. ## ...|
++ |.. ## ...|
++ |.. ## ...|
++ -&gt;|.. ### ...|&lt;-
++ |..### ...|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30c0 'ダ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 1 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## |
++ |. ## ## ##|
++ |. ## ####|
++ |. ######### |
++ |. ## ## |
++ |. ## ## |
++ |. ## ## |
++ |. ## ### ## |
++ |. ## ### |
++ |.## ## |
++ |. ## |
++ |. ## |
++ |. ## |
++ -&gt;|. ### |&lt;-
++ |.### |
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30c1 'チ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 14
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.. ## .|
++ |.. ### .|
++ |.. ###### .|
++ |.. ## .|
++ |.. ## .|
++ |.. #######.|
++ |..## ##### .|
++ |.. #### ## .|
++ |.. ## .|
++ |.. ## .|
++ |.. ## .|
++ |.. ## .|
++ -&gt;|.. ## .|&lt;-
++ |.. ## .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30c3 'ッ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 10 x 9
++ Advance: 17
++ Offset: 3 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |... ## ## ....|
++ |...## ## ##....|
++ |... ## ## ##....|
++ |... ## ## ....|
++ |... ## ....|
++ |... ## ....|
++ |... ## ....|
++ -&gt;|... ## ....|&lt;-
++ |... ## ....|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30c4 'ツ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 13
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.. ## ## ..|
++ |..## ## ##..|
++ |.. ## ## ##..|
++ |.. ## ## ##..|
++ |.. ## ## ## ..|
++ |.. ## ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ -&gt;|.. ## ..|&lt;-
++ |.. ### ..|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30c6 'テ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 13
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.. ## #### .|
++ |.. ##### .|
++ |.. .|
++ |.. .|
++ |.. ######.|
++ |..## #### .|
++ |.. ##### ## .|
++ |.. ## .|
++ |.. ## .|
++ |.. ## .|
++ |.. ## .|
++ -&gt;|.. ## .|&lt;-
++ |.. ## .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30c7 'デ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 15
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## .|
++ |.. ## ##.|
++ |.. ## #######.|
++ |.. ##### ## .|
++ |.. .|
++ |.. .|
++ |.. ######.|
++ |..## #### .|
++ |.. ##### ## .|
++ |.. ## .|
++ |.. ## .|
++ |.. ## .|
++ |.. ## .|
++ -&gt;|.. ## .|&lt;-
++ |.. ## .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30c8 'ト'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 9 x 15
++ Advance: 17
++ Offset: 5 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.....## ...|
++ |..... ## ...|
++ |..... ## ...|
++ |..... ## ...|
++ |..... ## ...|
++ |..... #### ...|
++ |..... ## ### ...|
++ |..... ## ## ...|
++ |..... ## ##...|
++ |..... ## ...|
++ |..... ## ...|
++ |..... ## ...|
++ -&gt;|..... ## ...|&lt;-
++ |..... ## ...|
++ |..... ## ...|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30c9 'ド'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 11 x 15
++ Advance: 17
++ Offset: 5 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.....## ## .|
++ |..... ## ## ##.|
++ |..... ## ####.|
++ |..... ## ## .|
++ |..... ## .|
++ |..... #### .|
++ |..... ## ### .|
++ |..... ## ## .|
++ |..... ## ## .|
++ |..... ## .|
++ |..... ## .|
++ |..... ## .|
++ -&gt;|..... ## .|&lt;-
++ |..... ## .|
++ |..... ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30cb 'ニ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 9
++ Advance: 17
++ Offset: 2 x 1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.. ## #### .|
++ |.. ##### .|
++ |.. .|
++ |.. .|
++ |.. .|
++ |.. .|
++ |.. .|
++ |.. ####### .|
++ |..####### ##.|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30cd 'ネ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 15
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## .|
++ |.. ## .|
++ |.. ## .|
++ |.. ## ###### .|
++ |.. ##### ## .|
++ |.. ## .|
++ |.. ## .|
++ |.. ## .|
++ |.. ###### .|
++ |.. ##### ### .|
++ |..#### ## ##.|
++ |.. ## .|
++ |.. ## .|
++ -&gt;|.. ## .|&lt;-
++ |.. ## .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30ce 'ノ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 10 x 14
++ Advance: 17
++ Offset: 4 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.... ## ...|
++ |.... ##...|
++ |.... ##...|
++ |.... ##...|
++ |.... ## ...|
++ |.... ## ...|
++ |.... ## ...|
++ |.... ## ...|
++ |.... ## ...|
++ |.... ## ...|
++ |.... ## ...|
++ |.... ## ...|
++ -&gt;|.... ## ...|&lt;-
++ |....## ...|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30cf 'ハ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 10
++ Advance: 17
++ Offset: 1 x 0
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. ## .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ##.|
++ |. ## ##.|
++ -&gt;|.## ##.|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30d0 'バ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 13
++ Advance: 17
++ Offset: 1 x 0
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. ## .|
++ |. ## ##.|
++ |. ####.|
++ |. ## ## ## .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ##.|
++ |. ## ##.|
++ -&gt;|.## ##.|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30d1 'パ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 13
++ Advance: 17
++ Offset: 1 x 0
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. ### .|
++ |. ## ##.|
++ |. ## ##.|
++ |. ## ## ### .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ##.|
++ |. ## ##.|
++ -&gt;|.## ##.|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30d3 'ビ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 13
++ Advance: 17
++ Offset: 2 x 0
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |..## ## .|
++ |.. ## ## ##.|
++ |.. ## ####.|
++ |.. ## ## .|
++ |.. ## ### .|
++ |.. ## ### .|
++ |.. ##### .|
++ |.. ## .|
++ |.. ## .|
++ |.. ## .|
++ |.. ## .|
++ |.. ## .|
++ -&gt;|.. ######### .|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30d4 'ピ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 13
++ Advance: 17
++ Offset: 1 x 0
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.## ### ..|
++ |. ## ## ##..|
++ |. ## ## ##..|
++ |. ## ### ..|
++ |. ## ### ..|
++ |. ## ### ..|
++ |. ##### ..|
++ |. ## ..|
++ |. ## ..|
++ |. ## ..|
++ |. ## ..|
++ |. ## ..|
++ -&gt;|. ######### ..|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30d5 'フ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 13
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |..## ######..|
++ |.. ####### ##..|
++ |.. ##..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ -&gt;|.. ## ..|&lt;-
++ |.. ### ..|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30d6 'ブ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 1 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## |
++ |. ## ##|
++ |.## #########|
++ |. ####### #### |
++ |. ## |
++ |. ## |
++ |. ## |
++ |. ## |
++ |. ## |
++ |. ## |
++ |. ## |
++ |. ## |
++ |. ## |
++ -&gt;|. ## |&lt;-
++ |. ### |
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30d7 'プ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 15
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ### |
++ |.. ## ##|
++ |..## ##### ##|
++ |.. ####### #### |
++ |.. ## |
++ |.. ## |
++ |.. ## |
++ |.. ## |
++ |.. ## |
++ |.. ## |
++ |.. ## |
++ |.. ## |
++ |.. ## |
++ -&gt;|.. ## |&lt;-
++ |.. ### |
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30d8 'ヘ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 8
++ Advance: 17
++ Offset: 1 x 2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. ## |
++ |. #### |
++ |. ## ## |
++ |. ## ## |
++ |.#### ## |
++ |. ## ## |
++ |. ## |
++ |. ###|
++ |.................|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30d9 'ベ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 10
++ Advance: 17
++ Offset: 1 x 2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. ## |
++ |. ## ## |
++ |. ## #### |
++ |. #### ## |
++ |. ## ## |
++ |. ## ## |
++ |.#### ## |
++ |. ## ## |
++ |. ## |
++ |. ###|
++ |.................|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30da 'ペ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 10
++ Advance: 17
++ Offset: 1 x 2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. ### |
++ |. ## ## |
++ |. ## ## ## |
++ |. #### ### |
++ |. ## ## |
++ |. ## ## |
++ |.#### ## |
++ |. ## ## |
++ |. ## |
++ |. ###|
++ |.................|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30dc 'ボ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 15
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## |
++ |.. ## ## ##|
++ |.. ## ####|
++ |.. ## ## |
++ |..## ####### |
++ |.. ####### |
++ |.. ## |
++ |.. ## ## |
++ |.. ## ## ## |
++ |.. ## ## ## |
++ |.. ## ## ## |
++ |.. ## ## ## |
++ |.. ## ## |
++ -&gt;|..## ### |&lt;-
++ |.. ## |
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30dd 'ポ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 14
++ Advance: 17
++ Offset: 2 x 0
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## ### |
++ |.. ## ## ##|
++ |.. ## ## ##|
++ |..## ######## |
++ |.. ####### |
++ |.. ## |
++ |.. ## ## |
++ |.. ## ## ## |
++ |.. ## ## ## |
++ |.. ## ## ## |
++ |.. ## ## ## |
++ |.. ## ## |
++ |..## ### |
++ -&gt;|.. ## |&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30de 'マ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 11
++ Advance: 17
++ Offset: 2 x 0
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |..## ######..|
++ |.. ####### ##..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ### ## ..|
++ |.. ##### ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ -&gt;|.. ## ..|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30e0 'ム'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 14
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.. ## .|
++ |.. ## .|
++ |.. ## .|
++ |.. ## .|
++ |.. ## .|
++ |.. ## ## .|
++ |.. ## ## .|
++ |.. ## ## .|
++ |.. ## ## .|
++ |.. ## ##### .|
++ |..## ###### ## .|
++ |.. ##### ##.|
++ -&gt;|.. ##.|&lt;-
++ |.. ##.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30e1 'メ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 12 x 14
++ Advance: 17
++ Offset: 3 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |... ## ..|
++ |... ## ..|
++ |... ## ..|
++ |... ## ..|
++ |... ### ## ..|
++ |... ### ## ..|
++ |... ### ..|
++ |... ### ..|
++ |... #### ..|
++ |... ## ##..|
++ |... ## ..|
++ |... ## ..|
++ -&gt;|... ### ..|&lt;-
++ |...### ..|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30e2 'モ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 12
++ Advance: 17
++ Offset: 1 x 0
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. ## ##### ..|
++ |. ##### ..|
++ |. ## ..|
++ |. ## ..|
++ |. ## ..|
++ |.## #########..|
++ |. ###### ..|
++ |. ## ..|
++ |. ## ..|
++ |. ## ..|
++ |. ## ..|
++ -&gt;|. ###### ..|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30e3 'ャ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 12 x 11
++ Advance: 17
++ Offset: 2 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.. ## ...|
++ |.. ## ...|
++ |.. ## #####...|
++ |.. #### ##...|
++ |..## ### ## ...|
++ |.. ##### ## ...|
++ |.. ## ...|
++ |.. ## ...|
++ -&gt;|.. ## ...|&lt;-
++ |.. ## ...|
++ |.. ## ...|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30e5 'ュ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 12 x 6
++ Advance: 17
++ Offset: 2 x 0
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.. #### ...|
++ |.. #### ## ...|
++ |.. ## ...|
++ |.. ## ...|
++ |.. ###### ...|
++ -&gt;|..###### ##...|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30e6 'ユ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 9
++ Advance: 17
++ Offset: 2 x 1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.. ## #### .|
++ |.. ##### ## .|
++ |.. ## .|
++ |.. ## .|
++ |.. ## .|
++ |.. ## .|
++ |.. ## .|
++ |.. ######### .|
++ |..##### ##.|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30e7 'ョ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 9 x 9
++ Advance: 17
++ Offset: 4 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.... #####....|
++ |....##### ##....|
++ |.... ##....|
++ |.... ##....|
++ |.... #### ....|
++ |.... #### ## ....|
++ |.... ## ....|
++ -&gt;|.... #### ....|&lt;-
++ |....##### ##....|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30e9 'ラ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 14
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.. ## ##### ..|
++ |.. ##### ..|
++ |.. ..|
++ |.. ..|
++ |.. #####..|
++ |..## ##### ##..|
++ |.. #### ##..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ -&gt;|.. ### ..|&lt;-
++ |.. ### ..|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30ea 'リ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 9 x 15
++ Advance: 17
++ Offset: 4 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.... ## ....|
++ |....## ##....|
++ |.... ## ##....|
++ |.... ## ##....|
++ |.... ## ##....|
++ |.... ## ##....|
++ |.... ## ##....|
++ |.... ## ##....|
++ |.... ## ##....|
++ |.... ## ##....|
++ |.... ## ....|
++ |.... ## ....|
++ |.... ## ....|
++ -&gt;|.... ## ....|&lt;-
++ |.... ## ....|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30eb 'ル'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 14
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.. ## |
++ |.. ## |
++ |.. ## ## |
++ |.. ## ## |
++ |.. ## ## ##|
++ |.. ## ## ##|
++ |.. ## ## ## |
++ |.. ## ## ## |
++ |.. ## ## ## |
++ |.. ## ## ## |
++ |.. ## #### |
++ |.. ## ### |
++ -&gt;|.. ## ## |&lt;-
++ |..## |
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30ec 'レ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 11 x 14
++ Advance: 17
++ Offset: 4 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |....## ..|
++ |.... ## ..|
++ |.... ## ..|
++ |.... ## ..|
++ |.... ## ..|
++ |.... ## ..|
++ |.... ## ..|
++ |.... ## ##..|
++ |.... ## ## ..|
++ |.... ## ## ..|
++ |.... ## ## ..|
++ |.... ## ### ..|
++ -&gt;|.... #### ..|&lt;-
++ |.... ## ..|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30ed 'ロ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 12
++ Advance: 17
++ Offset: 2 x 0
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |..## ..|
++ |.. ## #######..|
++ |.. ###### ##..|
++ |.. ## ##..|
++ |.. ## ##..|
++ |.. ## ##..|
++ |.. ## ## ..|
++ |.. ## ## ..|
++ |.. ## ## ..|
++ |.. ## ###### ..|
++ |.. ##### ##..|
++ -&gt;|.. ## ..|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30ef 'ワ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 12
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |..## ######..|
++ |.. ####### ##..|
++ |.. ## ##..|
++ |.. ## ##..|
++ |.. ## ## ..|
++ |.. ## ## ..|
++ |.. ## ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ -&gt;|.. ## ..|&lt;-
++ |.. ## ..|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30f3 'ン'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 12
++ Advance: 17
++ Offset: 3 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |...### .|
++ |... ## ##.|
++ |... ## ##.|
++ |... ## .|
++ |... ## .|
++ |... ## .|
++ |... ## .|
++ |... ## .|
++ |... ## .|
++ |... ## .|
++ -&gt;|...## ### .|&lt;-
++ |... ### .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30fc 'ー'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 2
++ Advance: 17
++ Offset: 0 x 4
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |### ########.|
++ | ####### .|
++ |.................|
++ |.................|
++ |.................|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4e00 '一'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 1
++ Advance: 17
++ Offset: 0 x 6
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |################.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4e0a '上'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ######## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ -&gt;| ## .|&lt;-
++ |################.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4e0b '下'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |################.|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## .|
++ | ## .|
++ -&gt;| ## .|&lt;-
++ | ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4e0d '不'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ##############..|
++ | ## ..|
++ | ## ..|
++ | ## ..|
++ | ## ..|
++ | ##### ..|
++ | #### ## ..|
++ | ## ## ## ..|
++ | ## ## ## ..|
++ | ## ## ##..|
++ | ## ## ##..|
++ |## ## ..|
++ -&gt;| ## ..|&lt;-
++ | ## ..|
++ | ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4e0e '与'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ..|
++ | ## ..|
++ | ## ..|
++ | ############..|
++ | ## ..|
++ | ## ..|
++ | ## ..|
++ | ############ ..|
++ | ## ..|
++ | ## ..|
++ | ## ..|
++ |########### ## ..|
++ | ## ..|
++ -&gt;| ## ..|&lt;-
++ | #### ..|
++ | ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4e14 '且'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 14
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ########## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ |################.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4e21 '両'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |################.|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ############## .|
++ | ## ## ## .|
++ | ## ## ## ## ## .|
++ | ## ## ## ## ## .|
++ | ## ## ## ## ## .|
++ | ## ## ## ## ## .|
++ | ## ######## ## .|
++ | ## ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## #### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4e26 '並'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ############## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | #### ## ## .|
++ | #### #### .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ |################.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4e2d '中'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 12 x 16
++ Advance: 17
++ Offset: 2 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## ...|
++ |.. ## ...|
++ |.. ## ...|
++ |.. ## ...|
++ |..############...|
++ |..## ## ##...|
++ |..## ## ##...|
++ |..## ## ##...|
++ |..## ## ##...|
++ |..## ## ##...|
++ |..############...|
++ |..## ## ##...|
++ |.. ## ...|
++ -&gt;|.. ## ...|&lt;-
++ |.. ## ...|
++ |.. ## ...|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4e3a '为'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ...|
++ | ## ## ...|
++ | ## ## ...|
++ | ## ## ...|
++ | ## ...|
++ | #############...|
++ | ## ##...|
++ | ## ##...|
++ | #### ##...|
++ | ## ## ##...|
++ | ## ## ##...|
++ | ## ##...|
++ | ## ##...|
++ -&gt;| ## ##...|&lt;-
++ | ## #### ...|
++ |## ## ...|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4e3b '主'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | .|
++ | ############## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ############ .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ -&gt;| ## .|&lt;-
++ |################.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4e45 '久'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ####### .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## .|
++ | #### .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ### ## .|
++ |### ###.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4e4b '之'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 15
++ Advance: 17
++ Offset: 1 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. .|
++ |.############# .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ### .|
++ -&gt;|. ## ## .|&lt;-
++ |.## ##########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4e5f '也'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ## ## .|
++ | ## ## ### .|
++ | ## ###### .|
++ | ###### ## .|
++ | #### ## ## .|
++ |##### ## ## .|
++ | ## ## ## .|
++ | ## ###### .|
++ | ## ## ## .|
++ | ## ## ##.|
++ | ## ##.|
++ -&gt;| ## ##.|&lt;-
++ | ############.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4e86 '了'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 15
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.#############...|
++ |. ## ...|
++ |. ## ...|
++ |. ## ...|
++ |. ### ...|
++ |. ## ...|
++ |. ## ...|
++ |. ## ...|
++ |. ## ...|
++ |. ## ...|
++ |. ## ...|
++ |. ## ...|
++ -&gt;|. ## ...|&lt;-
++ |. #### ...|
++ |. ## ...|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4e8c '二'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 10
++ Advance: 17
++ Offset: 0 x 1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ############ .|
++ | .|
++ | .|
++ | .|
++ | .|
++ | .|
++ | .|
++ | .|
++ | .|
++ |################.|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4e8e '于'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ############ .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ |################.|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ -&gt;| ## .|&lt;-
++ | #### .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4e9b '些'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## ## ## .|
++ | ## ###### ## .|
++ | ## ## #### .|
++ | ## ## ## ##.|
++ | ## ## ## ##.|
++ | ######### ##.|
++ |##### ######.|
++ | ## .|
++ | .|
++ | ########## .|
++ | .|
++ -&gt;| .|&lt;-
++ | ############## .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4eab '享'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ############## .|
++ | .|
++ | ########## .|
++ | ## ## .|
++ | ########## .|
++ | .|
++ | ######### .|
++ | ## .|
++ | ### .|
++ |################.|
++ | ## .|
++ -&gt;| ## .|&lt;-
++ | #### .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4eca '今'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | #### .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ |### ## ###.|
++ | .|
++ | ########## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ -&gt;| ## .|&lt;-
++ | ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4ecb '介'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | #### .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ |### ## ## ###.|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4ecd '仍'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ..|
++ | ## ..|
++ | ########## ..|
++ | ## ## ## ..|
++ | ## ## ## ..|
++ | ### ## ## ..|
++ | ### #### ..|
++ | #### #######..|
++ |## ## ## ##..|
++ | ## ## ##..|
++ | ## ## ##..|
++ | ## ## ##..|
++ | ## ## ##..|
++ -&gt;| ## ## ##..|&lt;-
++ | ## ## #### ..|
++ | #### ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4ece '从'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## #### .|
++ | #### #### .|
++ | ## ## #### .|
++ | ## #### ## .|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ## ## .|
++ |## ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4ed5 '仕'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ##############.|
++ | ### ## .|
++ | #### ## .|
++ |## ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ############ .|&lt;-
++ | ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4ed6 '他'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | #### ## .|
++ | ## ## ##### .|
++ | ## ## ##### .|
++ | ### ##### ## .|
++ | ### ##### ## .|
++ | ####### ## ## .|
++ |## ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ##### .|
++ | ## ## ## ##.|
++ | ## ## ##.|
++ -&gt;| ## ## ##.|&lt;-
++ | ## #########.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4ed8 '付'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | #############.|
++ | ### ## .|
++ | ### ## .|
++ | #### ## .|
++ |## ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## #### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4ee3 '代'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## .|
++ | ## ########.|
++ | ######### .|
++ | ### ## .|
++ | #### ## .|
++ |## ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## ##.|
++ | ## ## ##.|
++ -&gt;| ## ####.|&lt;-
++ | ## ###.|
++ | ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4ee4 '令'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | #### .|
++ | ## ## .|
++ | #### ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ |### ###.|
++ | ########## .|
++ | ## .|
++ | ## .|
++ | ## ## .|
++ | #### .|
++ -&gt;| ## .|&lt;-
++ | ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4ee5 '以'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 16
++ Advance: 17
++ Offset: 2 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## .|
++ |.. ## ## .|
++ |..## ## ## .|
++ |..## ## ## .|
++ |..## ## ## .|
++ |..## ## .|
++ |..## ## .|
++ |..## ## .|
++ |..## ## .|
++ |..## ## .|
++ |..## ## ## .|
++ |..#### #### .|
++ |..### ## ## .|
++ -&gt;|..## ## ## .|&lt;-
++ |.. ## ##.|
++ |.. ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4ef6 '件'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ######## .|
++ | ### ## ## .|
++ | ### ## ## .|
++ | ###### ## .|
++ |## ## ## .|
++ | #############.|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4efb '任'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ##### .|
++ | ####### .|
++ | ## ## .|
++ | ## ## .|
++ | ### ## .|
++ | ### ## .|
++ | ###############.|
++ |## ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ############ .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4efd '份'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ### ## ## .|
++ | ### ## ## .|
++ | ###############.|
++ |## ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ## #### .|
++ | #### ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4f11 '休'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | #############.|
++ | ### ## .|
++ | ### #### .|
++ | #### #### .|
++ |## ## ###### .|
++ | ## ###### .|
++ | ## ## ## ## .|
++ | #### ## ## .|
++ | ### ## ##.|
++ -&gt;| ## ## .|&lt;-
++ | ## ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4f3a '伺'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ..|
++ | ###########..|
++ | ## ##..|
++ | ## ##..|
++ | ############..|
++ | ### ##..|
++ | ### ##..|
++ | #### ###### ##..|
++ |## ## ## ## ##..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ | ## ###### ##..|
++ | ## ##..|
++ -&gt;| ## ##..|&lt;-
++ | ## ####..|
++ | ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4f3c '似'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ### ## ## .|
++ | ### ## ## .|
++ |#### ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## #### #### .|
++ | ## ### ## ## .|
++ -&gt;| ## ## ## ## .|&lt;-
++ | ## ## ##.|
++ | ## ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4f46 '但'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ########### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ### ## ## .|
++ | ### ######### .|
++ | #### ## ## .|
++ |## ## ## ## .|
++ | ## ## ## .|
++ | ## ######### .|
++ | ## ## ## .|
++ | ## .|
++ -&gt;| ## .|&lt;-
++ | #############.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4f4d '位'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## .|
++ | ############ .|
++ | ### .|
++ | ### ## .|
++ | #### ## ## .|
++ |## ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | #############.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4f4e '低'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ##### .|
++ | ######## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ### ## ## .|
++ | ### ## ## .|
++ | #### ##########.|
++ |## ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## ##.|
++ | ## ## ####.|
++ -&gt;| ## #### ####.|&lt;-
++ | ## ### ## ###.|
++ | ## ## ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4f53 '体'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ############ .|
++ | ### ## .|
++ | ### #### .|
++ | #### #### .|
++ |## ## ###### .|
++ | ## ###### .|
++ | ## ## ## ## .|
++ | ############ .|
++ | ### ## ##.|
++ -&gt;| ## ## .|&lt;-
++ | ## ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4f55 '何'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | #############.|
++ | ## ## .|
++ | ## ## .|
++ | ### ##### ## .|
++ | #### ## ## ## .|
++ |## ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ##### ## .|
++ | ## ## ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## #### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4f5c '作'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## #########.|
++ | ## #### .|
++ | ### #### .|
++ | ##### ## .|
++ | #### ###### .|
++ |## ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ####### .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4f60 '你'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## #########.|
++ | ## ## ##.|
++ | ### ## ## .|
++ | ##### ## .|
++ | #### ## .|
++ |## ## ## #### .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ##.|
++ | #### ## ##.|
++ -&gt;| ## ## .|&lt;-
++ | ## #### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4f75 '併'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## .|
++ | ## ##########.|
++ | ### ## ## .|
++ | ### ## ## .|
++ | #### ## ## .|
++ |## ## ## ## .|
++ | #############.|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ## ## .|
++ | #### ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4f7f '使'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | #############.|
++ | ## ## .|
++ | ## ## .|
++ | ### ########## .|
++ | ### ## ## ## .|
++ |#### ## ## ## .|
++ | ## ########## .|
++ | ## ## .|
++ | ## ## ## .|
++ | ## #### .|
++ | ## ## .|
++ -&gt;| ## #### .|&lt;-
++ | ## ## ### .|
++ | ##### ####.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4f86 '來'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ############## .|
++ | ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | #### ## #### .|
++ | ## ###### ## .|
++ | #### .|
++ | ###### .|
++ | ## ## ## .|
++ | ### ## ### .|
++ -&gt;|### ## ###.|&lt;-
++ | ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4f8b '例'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ##..|
++ | ## ##..|
++ | ######## ##..|
++ | ## ## ####..|
++ | ## ## ####..|
++ | ### #########..|
++ | ### ## ######..|
++ |#### ## ######..|
++ | ## ### ######..|
++ | ## ##########..|
++ | #### ## ####..|
++ | ## ## ####..|
++ | ## ## ##..|
++ -&gt;| ## ## ##..|&lt;-
++ | ## ## ####..|
++ | #### ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4f9b '供'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ######### .|
++ | ### ## ## .|
++ | ### ## ## .|
++ | #### ## ## .|
++ |## ## ## ## .|
++ | #############.|
++ | ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | #### ## .|
++ | ### ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4f9d '依'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | #############.|
++ | ## ## .|
++ | ### ## .|
++ | ### #### .|
++ | #### #### ## .|
++ |## ## ##### ## .|
++ | ###### ### .|
++ | ### ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ## #### ## .|&lt;-
++ | ## ### ##.|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4fbf '便'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | #############.|
++ | ## ## .|
++ | ## ########## .|
++ | ## ## ## ## .|
++ | ### ## ## ## .|
++ | ### ########## .|
++ |#### ## ## ## .|
++ | ## ## ## ## .|
++ | ## ########## .|
++ | ## ## ## .|
++ | ## #### .|
++ | ## ## .|
++ -&gt;| ## #### .|&lt;-
++ | ## ## ### .|
++ | ##### ####.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4fdd '保'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ########## .|
++ | #### ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ### ######## .|
++ | ### ## .|
++ | #### ## .|
++ |## ############ .|
++ | ## #### .|
++ | ## ###### .|
++ | ## ## ## ## .|
++ | #### ## ## .|
++ -&gt;| ### ## ##.|&lt;-
++ | ## ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4fee '修'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ####### .|
++ | ## ## ## .|
++ | ######## ## .|
++ | ###### ### .|
++ |###### ### ### .|
++ | ###### ## ###.|
++ | #### ### .|
++ | ####### ## .|
++ | #### ## .|
++ | #### ### ## .|
++ | ####### ## .|
++ -&gt;| ## ### .|&lt;-
++ | ## ### .|
++ | ## ### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x500b '個'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ..|
++ | ############..|
++ | #### ## ##..|
++ | ## ## ## ##..|
++ | ## ##########..|
++ | ### ## ## ##..|
++ | ### ## ## ##..|
++ |#### ##########..|
++ | ## #### ####..|
++ | ## #### ####..|
++ | ## #### ####..|
++ | ## ##########..|
++ | ## #### ####..|
++ -&gt;| ## ## ##..|&lt;-
++ | ## ##########..|
++ | ## ## ##..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x503c '值'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ########### .|
++ | ## ## .|
++ | ## ## .|
++ | ### ######## .|
++ | ### ## ## .|
++ | #### ######## .|
++ |## ## ## ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | #############.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x504f '偏'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ..|
++ | ## ## ..|
++ | ############..|
++ | ## ## ##..|
++ | ## ## ##..|
++ | ### ##########..|
++ | ### ## ..|
++ |#### ## ..|
++ | ## ##########..|
++ | ## ####### ##..|
++ | ########## ##..|
++ | #############..|
++ | ########## ##..|
++ -&gt;| ########## ##..|&lt;-
++ | ### ###### ##..|
++ | ## ## ###..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x505c '停'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ############ .|
++ | ## .|
++ | ## ######## .|
++ | ### ## ## .|
++ | ### ######## .|
++ |#### .|
++ | ##############.|
++ | #### ##.|
++ | ## ######## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## #### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5075 '偵'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## #######.|
++ | ## ## .|
++ | ## ## .|
++ | ## ########## .|
++ | ### ## ## .|
++ | ### ## ## .|
++ |#### ########## .|
++ | ## ## ## .|
++ | ## ########## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ########## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ## ## .|
++ | ## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5099 '備'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ############.|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ##############.|
++ | ### ## .|
++ | #### ######## .|
++ |## ## ### ## ## .|
++ | ############ .|
++ | ## ## ## ## .|
++ | ## ######## .|
++ | ## ## ## ## .|
++ -&gt;| ## ## ## ## .|&lt;-
++ | ## ## ## ## .|
++ | ## ## ### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x50c5 '僅'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ## .|
++ | ## ## ## .|
++ | #############.|
++ | ## ## ## .|
++ | ## ###### .|
++ | ### ## .|
++ | ### ########## .|
++ |#### ## ## ## .|
++ | ## ########## .|
++ | ## ## .|
++ | ##############.|
++ | ## ## .|
++ | ## ########## .|
++ -&gt;| ## ## .|&lt;-
++ | ##############.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x50cf '像'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ###### .|
++ | #### ## .|
++ | ############ .|
++ | ##### ## ## .|
++ | ### ## ## ## .|
++ | ### ######### .|
++ | #### ## .|
++ |## ## #### ## .|
++ | ########### .|
++ | ## ## ### .|
++ | ##### ##### .|
++ | ## ###### .|
++ -&gt;| ## ## ## ## .|&lt;-
++ | ######### ##.|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5132 '儲'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | #### ## .|
++ | ## ## ## .|
++ | ## ## #######.|
++ | ####### ## ##.|
++ | ## #### .|
++ | ###############.|
++ | ### ## .|
++ |######### ## .|
++ | ## ##### .|
++ | ########## ## .|
++ | #### ##### ## .|
++ | #### ## ##### .|
++ | #### ## ## ## .|
++ -&gt;| ####### ## ## .|&lt;-
++ | #### ## ##### .|
++ | ## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5143 '元'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ############ .|
++ | .|
++ | .|
++ | .|
++ |################.|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## ##.|
++ | ## ## ##.|
++ -&gt;| ## ## ##.|&lt;-
++ | ## ######.|
++ |## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5148 '先'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## .|
++ | ## ## .|
++ | ########### .|
++ | ## ## .|
++ | ## ## .|
++ | ## .|
++ |################.|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## ##.|
++ -&gt;| ## ## ##.|&lt;-
++ | ## ######.|
++ |### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5149 '光'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## .|
++ |################.|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## ##.|
++ | ## ## ##.|
++ -&gt;| ## ## ##.|&lt;-
++ | ## ######.|
++ |### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5165 '入'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | #### .|
++ | #### .|
++ | #### .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## ## .|
++ |## ###.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5168 '全'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | #### .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ############ .|
++ |### ## ###.|
++ | ## .|
++ | ## .|
++ | ########## .|
++ | ## .|
++ | ## .|
++ -&gt;| ## .|&lt;-
++ | ############## .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5169 '兩'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |################.|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ############## .|
++ | ## ## ## .|
++ | #### #### ## .|
++ | ## ## ## ## ## .|
++ | ## ## ## ## ## .|
++ | ############## .|
++ | ### ##### #### .|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ## #### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5171 '共'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ############# .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ## .|
++ |.###############.|
++ |. .|
++ |. ## ## .|
++ -&gt;|. ## ## .|&lt;-
++ |. ## ## .|
++ |. ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5173 '关'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | .|
++ | ############ .|
++ | ## .|
++ | ## .|
++ | ## .|
++ |################.|
++ | ## .|
++ | #### .|
++ | #### .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ### ### .|
++ |### ###.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5176 '其'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ############## .|
++ | ## ## .|
++ | ## ## .|
++ | ######## .|
++ | ## ## .|
++ | ## ## .|
++ | ######## .|
++ | ## ## .|
++ | ## ## .|
++ |################.|
++ | .|
++ -&gt;| ## ## .|&lt;-
++ | ## ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5177 '具'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ########## .|
++ | ## ## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ## ## .|
++ |################.|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5185 '内'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## ..|
++ |. ## ..|
++ |. ## ..|
++ |.##############..|
++ |.## ## ##..|
++ |.## ## ##..|
++ |.## ## ##..|
++ |.## #### ##..|
++ |.## ## ## ##..|
++ |.## ## ## ##..|
++ |.## ## ####..|
++ |.#### ####..|
++ |.## ##..|
++ -&gt;|.## ##..|&lt;-
++ |.## ####..|
++ |.## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x518d '再'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |################.|
++ | ## .|
++ | ## .|
++ | ############ .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ############ .|
++ | ## ## ## .|
++ | ## ## ## .|
++ |################.|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## #### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5199 '写'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ###############.|
++ | ## ##.|
++ |## ## ## .|
++ | ## .|
++ | ########### .|
++ | ## .|
++ | ## .|
++ | ############ .|
++ | ## .|
++ | ## .|
++ |########### ## .|
++ | ## .|
++ -&gt;| ## .|&lt;-
++ | #### .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x51c6 '准'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | #### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ##########.|
++ | ## ## .|
++ | ##### ## .|
++ | ############ .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ######### .|
++ |#### ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ## ##########.|&lt;-
++ | ## ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x51cd '凍'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## .|
++ | ## ########## .|
++ | ## ## .|
++ | ######## .|
++ | #### ## ## .|
++ | ########## .|
++ | ## ## ## ## .|
++ | ## ######## .|
++ |#### ## .|
++ | ## #### .|
++ | ## ###### .|
++ | ## ## ## ## .|
++ -&gt;| ##### ## ###.|&lt;-
++ | ## ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x51e6 '処'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ##### .|
++ | ## ## ## .|
++ | ####### ## .|
++ | ## #### ## .|
++ | ## #### ## .|
++ | ## #### ## .|
++ | #### #### ## .|
++ |## #### ## #### .|
++ | #### ## #### .|
++ | ## ## #### .|
++ | ## ## ### .|
++ | #### .|
++ -&gt;| ## ### .|&lt;-
++ | ## ########.|
++ |## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x51fa '出'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## ..|
++ |. ## ..|
++ |. ## ## ## ..|
++ |. ## ## ## ..|
++ |. ## ## ## ..|
++ |. ## ## ## ..|
++ |. ############ ..|
++ |. ## ## ..|
++ |. ## ..|
++ |. ## ..|
++ |.## ## ##..|
++ |.## ## ##..|
++ |.## ## ##..|
++ -&gt;|.## ## ##..|&lt;-
++ |.##############..|
++ |. ##..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5206 '分'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ |## ######### ##.|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## #### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5207 '切'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ..|
++ | ## ..|
++ | ## ########..|
++ | ## ## ##..|
++ | ## ## ##..|
++ | ##### ## ##..|
++ |##### ## ##..|
++ | ## ## ##..|
++ | ## ## ##..|
++ | ## ## ## ##..|
++ | #### ## ##..|
++ | ### ## ##..|
++ | ## ## ##..|
++ -&gt;| ## ##..|&lt;-
++ | ## #### ..|
++ | ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5217 '列'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ##..|
++ | ######### ##..|
++ | ## ##..|
++ | ## ## ##..|
++ | ###### ## ##..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ | #### ## ## ##..|
++ |## #### ## ##..|
++ | ## ## ##..|
++ | ## ## ##..|
++ | ## ##..|
++ -&gt;| ## ##..|&lt;-
++ | ## ####..|
++ | ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5219 '则'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ##..|
++ | ######## ##..|
++ | ## ## ##..|
++ | ## ## ## ##..|
++ | ## ## ## ## ##..|
++ | ## ## ## ## ##..|
++ | ## ## ## ## ##..|
++ | ## ## ## ## ##..|
++ | ## ## ## ## ##..|
++ | ## ## ## ## ##..|
++ | ## ## ## ## ##..|
++ | #### ## ##..|
++ | ## ## ##..|
++ -&gt;| ## ## ##..|&lt;-
++ | ## ## ####..|
++ |## ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x521d '初'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ..|
++ | ## ..|
++ | ########..|
++ |####### ## ##..|
++ | ## ## ##..|
++ | ## ## ##..|
++ | ## ## ##..|
++ | ##### ## ##..|
++ | ##### ## ##..|
++ |## #### ## ##..|
++ | #### ## ##..|
++ | ## ## ##..|
++ | ## ## ##..|
++ -&gt;| ## ## ##..|&lt;-
++ | ## ## #### ..|
++ | #### ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5224 '判'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ##..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ | ## #### ## ##..|
++ | ## ## ##..|
++ | ########### ##..|
++ | ## ## ##..|
++ | ## ## ##..|
++ | ## ## ##..|
++ |############ ##..|
++ | ## ## ##..|
++ | ## ## ##..|
++ | ## ##..|
++ -&gt;| ## ##..|&lt;-
++ | ## ####..|
++ | ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5229 '利'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ##..|
++ | ##### ##..|
++ | ###### ##..|
++ | ## ## ##..|
++ | ## ## ##..|
++ | ## ## ##..|
++ |############ ##..|
++ | ### ## ##..|
++ | ##### ## ##..|
++ | ###### ## ##..|
++ | ## ## #### ##..|
++ | ## ## ## ##..|
++ | ## ## ##..|
++ -&gt;|## ## ##..|&lt;-
++ | ## ####..|
++ | ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5230 '到'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ##..|
++ |########## ##..|
++ | ## ##..|
++ | ## ## ##..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ |############ ##..|
++ | ## #### ##..|
++ | ## ## ##..|
++ | ## ## ##..|
++ | ######## ## ##..|
++ | ## ## ##..|
++ | ## ##..|
++ -&gt;| ###### ##..|&lt;-
++ |###### ####..|
++ | ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5236 '制'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ##..|
++ | ## ## ##..|
++ | ## ## ##..|
++ | ########## ##..|
++ | ## ## ## ##..|
++ | ## ## ##..|
++ |############ ##..|
++ | ## ## ##..|
++ | ## ## ##..|
++ | ########## ##..|
++ | ## ## #### ##..|
++ | ## ## #### ##..|
++ | ## ##### ##..|
++ -&gt;| ## #### ##..|&lt;-
++ | ## ####..|
++ | ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5247 '則'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ##..|
++ | ######## ##..|
++ | ## ## ##..|
++ | ## ## ## ##..|
++ | ######## ## ##..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ | ######## ## ##..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ | ######## ## ##..|
++ | ## ##..|
++ | ## ## ##..|
++ -&gt;| ## ## ##..|&lt;-
++ | ## ## ####..|
++ |## ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x524d '前'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ |################.|
++ | .|
++ | ###### ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ###### ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ###### ## ## .|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ###### #### .|
++ | ## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5272 '割'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ##..|
++ | ## ##..|
++ |########## ##..|
++ |## #### ##..|
++ | ## ## ## ##..|
++ | ######## ## ##..|
++ | ## ## ##..|
++ | ######## ## ##..|
++ | ## ## ##..|
++ |############ ##..|
++ | ## ## ##..|
++ | ######## ## ##..|
++ | ## ## ##..|
++ -&gt;| ## ## ##..|&lt;-
++ | ######## ####..|
++ | ## ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x529b '力'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## ...|
++ |. ## ...|
++ |. ## ...|
++ |. ## ...|
++ |.#############...|
++ |. ## ##...|
++ |. ## ##...|
++ |. ## ##...|
++ |. ## ##...|
++ |. ## ##...|
++ |. ## ##...|
++ |. ## ##...|
++ |. ## ##...|
++ -&gt;|. ## ## ##...|&lt;-
++ |. ## #### ...|
++ |.## ## ...|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x529f '功'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ..|
++ | ## ..|
++ | ## ..|
++ |######## ## ..|
++ | ## ########..|
++ | ## ## ##..|
++ | ## ## ##..|
++ | ## ## ##..|
++ | ## ## ##..|
++ | ## ## ##..|
++ | ## ## ##..|
++ | ####### ##..|
++ |##### ## ##..|
++ -&gt;| ## ## ##..|&lt;-
++ | ## #### ..|
++ | ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x52a0 '加'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ..|
++ | ## ..|
++ | ## ..|
++ | ## ######..|
++ |######## ## ##..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ -&gt;| ## ## ######..|&lt;-
++ | ## #### ## ##..|
++ |## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x52a1 '务'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ######### .|
++ | ### ## .|
++ | ## ## ### .|
++ | ### .|
++ | ### ### .|
++ | ### ## ### .|
++ |### ## ####.|
++ | ########## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## #### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x52a8 '动'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ..|
++ | ## ..|
++ | ###### ## ..|
++ | ## ..|
++ | ########..|
++ | ## ##..|
++ |######## ## ##..|
++ | ## ## ##..|
++ | ## ## ##..|
++ | ## ## ##..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ |######### ##..|
++ -&gt;| ## #### ##..|&lt;-
++ | ## #### ..|
++ | ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x52a9 '助'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ..|
++ | ###### ## ..|
++ | ## ## ## ..|
++ | ## ## ## ..|
++ | ## ## #######..|
++ | ###### ## ##..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ | ###### ## ##..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ | ## #### ## ##..|
++ -&gt;|##### ## ##..|&lt;-
++ | ## #### ..|
++ | ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x52b9 '効'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ..|
++ | ## ## ..|
++ | ## ..|
++ |######### ## ..|
++ | #######..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ |## ## ## ##..|
++ | ## ## ## ##..|
++ | #### ## ##..|
++ | ## ## ##..|
++ | #### ## ##..|
++ | ## ## ## ##..|
++ -&gt;| ## #### ##..|&lt;-
++ |## ## #### ..|
++ | ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x52d5 '動'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ##### ## ..|
++ | ##### ## ..|
++ | ## ## ..|
++ |############ ..|
++ | ## ######..|
++ | ######## ## ##..|
++ | ## ## ## ## ##..|
++ | ######## ## ##..|
++ | ## ## ## ## ##..|
++ | ######## ## ##..|
++ | ## ## ##..|
++ | ######## ## ##..|
++ | ## ## ##..|
++ -&gt;| ####### ##..|&lt;-
++ |###### ## ####..|
++ | ## ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5305 '包'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ..|
++ | ## ..|
++ | ########## ..|
++ | ## ## ..|
++ | ## ## ..|
++ | ######### ## ..|
++ |## ## ## ## ..|
++ | ## ## ## ..|
++ | ## ## ## ..|
++ | ####### ## ..|
++ | ## #### ..|
++ | ## ## ..|
++ | ## ##..|
++ -&gt;| ## ##..|&lt;-
++ | ###########..|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5316 '化'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ### #### .|
++ | ### ### .|
++ | #### ## .|
++ |## ## ### .|
++ | ## #### .|
++ | #### ## .|
++ | ## ## ##.|
++ | ## ## ##.|
++ -&gt;| ## ## ##.|&lt;-
++ | ## #######.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x533a '区'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 14
++ Advance: 17
++ Offset: 1 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.############## .|
++ |.## .|
++ |.## ## .|
++ |.## ## ## .|
++ |.## ## ## .|
++ |.## #### .|
++ |.## ## .|
++ |.## #### .|
++ |.## ## ## .|
++ |.## ## ## .|
++ |.## ## ## .|
++ |.## .|
++ -&gt;|.## .|&lt;-
++ |.###############.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x533f '匿'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 14
++ Advance: 17
++ Offset: 1 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.############## .|
++ |.## .|
++ |.## ## ## .|
++ |.###############.|
++ |.## ## ## .|
++ |.## ## .|
++ |.###############.|
++ |.## ## .|
++ |.## ########## .|
++ |.###### ## .|
++ |.### ## ## .|
++ |.## ######### .|
++ -&gt;|.## .|&lt;-
++ |.###############.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5340 '區'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 14
++ Advance: 17
++ Offset: 1 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.############## .|
++ |.## .|
++ |.## ######### .|
++ |.## ## ## .|
++ |.## ## ## .|
++ |.## ######### .|
++ |.## .|
++ |.####### ##### .|
++ |.#### ## ## ## .|
++ |.#### ## ## ## .|
++ |.####### ##### .|
++ |.#### ## ## ## .|
++ -&gt;|.## .|&lt;-
++ |.###############.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5354 '協'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ######### .|
++ | ## ## ## .|
++ |###### ## ## .|
++ | ## ## #### .|
++ | ## ## ## .|
++ | ## ## .|
++ | ## ## ## .|
++ | ##############.|
++ | ## ## ## ## ##.|
++ | ## ## ## ## ##.|
++ | ## ## ## ## ##.|
++ -&gt;| #### #### ##.|&lt;-
++ | ##############.|
++ | ### #### ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5355 '单'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ############ .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ############ .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ############ .|
++ | ## .|
++ | ## .|
++ |################.|
++ -&gt;| ## .|&lt;-
++ | ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5361 '卡'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ######## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ |################.|
++ | ## .|
++ | ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## .|&lt;-
++ | ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5370 '印'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 15
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. ### ..|
++ |.##### #######..|
++ |.## ## ##..|
++ |.## ## ##..|
++ |.## ## ##..|
++ |.######### ##..|
++ |.## ## ##..|
++ |.## ## ##..|
++ |.## ## ##..|
++ |.## ## ##..|
++ |.## ########## ..|
++ |.#### ## ## ..|
++ -&gt;|. ## ..|&lt;-
++ |. ## ..|
++ |. ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5373 '即'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 15
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.####### ######..|
++ |.## ## ## ##..|
++ |.## ## ## ##..|
++ |.####### ## ##..|
++ |.## ## ## ##..|
++ |.## ## ## ##..|
++ |.####### ## ##..|
++ |.## ## ##..|
++ |.## ## ## ##..|
++ |.## ## ######..|
++ |.## #### ## ## ..|
++ |.#### ## ## ..|
++ -&gt;|.### ## ..|&lt;-
++ |. ## ..|
++ |. ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x539f '原'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ##############.|
++ | ## ## .|
++ | ## ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ######## .|
++ | ## ## .|
++ | ## ## ## ## .|
++ -&gt;| ## ## ## ## .|&lt;-
++ | #### #### ## .|
++ |## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x53c2 '参'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## .|
++ | ## ## .|
++ | ########## .|
++ | ## .|
++ | ############## .|
++ | ## ## .|
++ | ## ## ## .|
++ | ## ### ## .|
++ |### ### ## ###.|
++ | ### .|
++ | ### ## .|
++ | ### ## .|
++ -&gt;| ### .|&lt;-
++ | #### .|
++ | ##### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x53c3 '參'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ## ## ## ## .|
++ | ############## .|
++ | ## .|
++ | ###### .|
++ | ### ##### .|
++ |#### ### ####.|
++ | ### ## .|
++ | ### ### ## .|
++ | ### ## .|
++ -&gt;| #### ### .|&lt;-
++ | #### .|
++ | ##### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x53cc '双'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 14
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |############### .|
++ | ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | #### ## ## .|
++ | #### ## ## .|
++ | ## #### .|
++ | ## #### .|
++ | #### ## .|
++ | #### ## .|
++ | ## ## #### .|
++ -&gt;| ## ## ## ## .|&lt;-
++ |## ## ## .|
++ | ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x53cd '反'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ###### .|
++ | ####### .|
++ | ## .|
++ | ## .|
++ | ############ .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## #### .|
++ | ## ## .|
++ | ## #### .|
++ -&gt;| ## ## ## .|&lt;-
++ |## ### ### .|
++ | ### ###.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x53d6 '取'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |########## .|
++ | ## ######### .|
++ | ## ## ## ## .|
++ | ###### ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ###### ## ## .|
++ | ## ## #### .|
++ | ## ## #### .|
++ | ## ######### .|
++ |######## ## .|
++ | ## ## ## .|
++ -&gt;| ## #### .|&lt;-
++ | ## ## ## .|
++ | #### ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x53e3 '口'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 12 x 13
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |..############...|
++ |..## ##...|
++ |..## ##...|
++ |..## ##...|
++ |..## ##...|
++ |..## ##...|
++ |..## ##...|
++ |..## ##...|
++ |..## ##...|
++ |..## ##...|
++ |..## ##...|
++ -&gt;|..############...|&lt;-
++ |..## ##...|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x53e4 '古'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ |################.|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ########## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ########## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x53e6 '另'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 15
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. ########## ...|
++ |. ## ## ...|
++ |. ## ## ...|
++ |. ## ## ...|
++ |. ########## ...|
++ |. ## ...|
++ |. ## ...|
++ |.#############...|
++ |. ## ##...|
++ |. ## ##...|
++ |. ## ##...|
++ |. ## ##...|
++ -&gt;|. ## ##...|&lt;-
++ |. ## #### ...|
++ |.## ## ...|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x53ea '只'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 15
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. ########## ..|
++ |. ## ## ..|
++ |. ## ## ..|
++ |. ## ## ..|
++ |. ## ## ..|
++ |. ## ## ..|
++ |. ## ## ..|
++ |. ########## ..|
++ |. ## ## ..|
++ |. ..|
++ |. ## ## ..|
++ |. ## ## ..|
++ -&gt;|. ## ## ..|&lt;-
++ |. ## ##..|
++ |.## ##..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x53ef '可'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 15
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.###############.|
++ |. ## .|
++ |. ## .|
++ |. ###### ## .|
++ |. ## ## ## .|
++ |. ## ## ## .|
++ |. ## ## ## .|
++ |. ## ## ## .|
++ |. ## ## ## .|
++ |. ###### ## .|
++ |. ## ## ## .|
++ |. ## .|
++ -&gt;|. ## .|&lt;-
++ |. #### .|
++ |. ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x53f0 '台'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## ..|
++ |. ## ..|
++ |. ## ..|
++ |. ## ## ..|
++ |. ## ## ..|
++ |. ## ## ..|
++ |.##############..|
++ |. ## ##..|
++ |. ..|
++ |. ########## ..|
++ |. ## ## ..|
++ |. ## ## ..|
++ |. ## ## ..|
++ -&gt;|. ## ## ..|&lt;-
++ |. ########## ..|
++ |. ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x53f3 '右'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ## .|
++ |################.|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ########### .|
++ | #### ## .|
++ | ## ## ## .|
++ |## ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ########## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x53f7 '号'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ########## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ########## .|
++ | .|
++ |################.|
++ | ## .|
++ | ## .|
++ | ########## .|
++ | ## .|
++ | ## .|
++ -&gt;| ## .|&lt;-
++ | #### .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5408 '合'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | #### .|
++ | ## ## .|
++ | ## ## .|
++ | ### ### .|
++ |### ######## ###.|
++ | .|
++ | .|
++ | ########## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ########## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x540c '同'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 15
++ Advance: 17
++ Offset: 2 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |..#############..|
++ |..## ##..|
++ |..## ##..|
++ |..#############..|
++ |..## ##..|
++ |..## ##..|
++ |..## ####### ##..|
++ |..## ## ## ##..|
++ |..## ## ## ##..|
++ |..## ## ## ##..|
++ |..## ####### ##..|
++ |..## ## ## ##..|
++ -&gt;|..## ##..|&lt;-
++ |..## ####..|
++ |..## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x540d '名'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ...|
++ | ## ...|
++ | ######## ...|
++ | ## ## ...|
++ | #### ## ...|
++ | ### ## ## ...|
++ | #### ...|
++ | ## ...|
++ | ### ...|
++ | ###########...|
++ |###### ##...|
++ | ## ##...|
++ | ## ##...|
++ -&gt;| ## ##...|&lt;-
++ | ##########...|
++ | ## ##...|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x540e '后'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ###### .|
++ | ###### .|
++ | ## .|
++ | ## .|
++ | #############.|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ########### .|
++ | #### ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ |## ######### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5411 '向'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## ..|
++ |. ## ..|
++ |. ## ..|
++ |.##############..|
++ |.## ##..|
++ |.## ##..|
++ |.## ###### ##..|
++ |.## ## ## ##..|
++ |.## ## ## ##..|
++ |.## ## ## ##..|
++ |.## ## ## ##..|
++ |.## ###### ##..|
++ |.## ## ## ##..|
++ -&gt;|.## ##..|&lt;-
++ |.## ####..|
++ |.## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5426 '否'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ############## .|
++ | ## .|
++ | ## .|
++ | ### .|
++ | ####### .|
++ | ## ## ### .|
++ | ### ## ## .|
++ |### ## ##.|
++ | .|
++ | ########## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ########## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x542b '含'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | #### .|
++ | ## ## .|
++ | #### ## .|
++ | ### ## ### .|
++ |### ## ###.|
++ | ######## .|
++ | ## .|
++ | ## .|
++ | ########## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ########## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x542f '启'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ..|
++ | ## ..|
++ | ############..|
++ | ## ##..|
++ | ## ##..|
++ | ## ##..|
++ | ############..|
++ | ## ..|
++ | ## ..|
++ | ## ..|
++ | ############..|
++ | ## ## ##..|
++ | ## ## ##..|
++ -&gt;| ## ## ##..|&lt;-
++ |## ##########..|
++ | ## ##..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x544a '告'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## .|
++ | ## ## .|
++ | ########### .|
++ | ## ## .|
++ | ## ## .|
++ | ## .|
++ |################.|
++ | .|
++ | .|
++ | ########## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ########## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5473 '味'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## .|
++ |. ## .|
++ |.##### ## .|
++ |.## ########### .|
++ |.## ## ## .|
++ |.## ## ## .|
++ |.## ## ## .|
++ |.## ############.|
++ |.## ## #### .|
++ |.## ## ###### .|
++ |.##### ###### .|
++ |.## #### ## ## .|
++ |. ## ## ## .|
++ -&gt;|. ## ## ##.|&lt;-
++ |. ## .|
++ |. ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x548c '和'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ..|
++ | #### ..|
++ | ##### ..|
++ | ## ######..|
++ | ## ## ##..|
++ |########### ##..|
++ | ## ## ##..|
++ | ### ## ##..|
++ | #### ## ##..|
++ | ###### ## ##..|
++ | ###### ## ##..|
++ | ## ## ## ##..|
++ |## ## ######..|
++ -&gt;| ## ## ##..|&lt;-
++ | ## ..|
++ | ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x54c1 '品'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 15
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. ########## ..|
++ |. ## ## ..|
++ |. ## ## ..|
++ |. ## ## ..|
++ |. ## ## ..|
++ |. ########## ..|
++ |. ..|
++ |. ..|
++ |.###### ######..|
++ |.## ## ## ##..|
++ |.## ## ## ##..|
++ |.## ## ## ##..|
++ -&gt;|.## ## ## ##..|&lt;-
++ |.###### ######..|
++ |.## ## ## ##..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x554f '問'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 15
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.###### ######...|
++ |.## ## ## ##...|
++ |.###### ######...|
++ |.## ## ## ##...|
++ |.###### ######...|
++ |.## ##...|
++ |.## ##...|
++ |.## ####### ##...|
++ |.## ## ## ##...|
++ |.## ## ## ##...|
++ |.## ####### ##...|
++ |.## ## ## ##...|
++ -&gt;|.## ##...|&lt;-
++ |.## ####...|
++ |.## ## ...|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x555f '啟'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ####### ## .|
++ | ## ## ######.|
++ | ## #### ## .|
++ | ## #### ## .|
++ | ######### ## .|
++ | ## #### ## .|
++ | ## #### .|
++ | ####### #### .|
++ | ### ## ## .|
++ | #### ## ## .|
++ | #### ## #### .|
++ -&gt;|## ###### #### .|&lt;-
++ | ## #### ## .|
++ | ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x55ae '單'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ############## .|
++ | ## #### ## .|
++ | ## #### ## .|
++ | ############## .|
++ | .|
++ | ############ .|
++ | ## ## ## .|
++ | ############ .|
++ | ## ## ## .|
++ | ############ .|
++ | ## .|
++ |################.|
++ -&gt;| ## .|&lt;-
++ | ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x55ce '嗎'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 15
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. #########.|
++ |.##### ## ## .|
++ |.## ## ######## .|
++ |.## ## ## ## .|
++ |.## ## ######## .|
++ |.## ## ## ## .|
++ |.## ## ## ## .|
++ |.## ## #########.|
++ |.## ## ##.|
++ |.###############.|
++ |.## ############.|
++ |. ##########.|
++ -&gt;|. ## ##.|&lt;-
++ |. #### .|
++ |. ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5617 '嘗'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ###############.|
++ | #### ## ##.|
++ |## ############ .|
++ | .|
++ | ## ##### .|
++ | ####### ## .|
++ | ## ## .|
++ | ############ .|
++ | .|
++ | ########### .|
++ | ## ## .|
++ -&gt;| ########### .|&lt;-
++ | ## ## .|
++ | ########### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5668 '器'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ###### ###### .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ###### ###### .|
++ | ## ## .|
++ | ## ## .|
++ |################.|
++ | #### .|
++ | ### ### .|
++ | ### ### .|
++ |### ###.|
++ | ###### ###### .|
++ -&gt;| ## ## ## ## .|&lt;-
++ | ## ## ## ## .|
++ | ###### ###### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x56de '回'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 12 x 14
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |..############...|
++ |..## ##...|
++ |..## ##...|
++ |..## ###### ##...|
++ |..## ## ## ##...|
++ |..## ## ## ##...|
++ |..## ## ## ##...|
++ |..## ## ## ##...|
++ |..## ## ## ##...|
++ |..## ###### ##...|
++ |..## ##...|
++ |..## ##...|
++ -&gt;|..############...|&lt;-
++ |..## ##...|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x56e0 '因'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 15
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.##############..|
++ |.## ##..|
++ |.## ## ##..|
++ |.## ## ##..|
++ |.## ## ##..|
++ |.##############..|
++ |.## ## ##..|
++ |.## #### ##..|
++ |.## ## ## ##..|
++ |.## ## ## ##..|
++ |.## ## ####..|
++ |.#### ####..|
++ -&gt;|.## ##..|&lt;-
++ |.##############..|
++ |.## ##..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x56fa '固'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 15
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.##############..|
++ |.## ## ##..|
++ |.## ## ##..|
++ |.##############..|
++ |.## ## ##..|
++ |.## ## ##..|
++ |.## ######## ##..|
++ |.## ## ## ##..|
++ |.## ## ## ##..|
++ |.## ## ## ##..|
++ |.## ######## ##..|
++ |.## ## ## ##..|
++ -&gt;|.## ##..|&lt;-
++ |.##############..|
++ |.## ##..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x56fe '图'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 15
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.##############..|
++ |.## ## ##..|
++ |.## ## ##..|
++ |.## ####### ##..|
++ |.## ### ## ##..|
++ |.#### #### ##..|
++ |.## ## ##..|
++ |.## ###### ##..|
++ |.##### #####..|
++ |.## ### ##..|
++ |.## ## ##..|
++ |.## ### ##..|
++ -&gt;|.## ### ##..|&lt;-
++ |.##############..|
++ |.## ##..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5716 '圖'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.##############..|
++ |.## ##..|
++ |.## ######## ##..|
++ |.## ## ## ##..|
++ |.## ######## ##..|
++ |.## ## ##..|
++ |.##############..|
++ |.## ## ##..|
++ |.##############..|
++ |.#### ####..|
++ |.##############..|
++ |.###### ######..|
++ |.##############..|
++ -&gt;|.## ##..|&lt;-
++ |.##############..|
++ |.## ##..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5728 '在'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ## .|
++ |################.|
++ | ## .|
++ | ## ## .|
++ | ## ## .|
++ | ### ## .|
++ | ############## .|
++ |## ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | #############.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5730 '地'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## ## .|
++ | ## ## ##### .|
++ |######### ##### .|
++ | ## ##### ## .|
++ | ## ###### ## .|
++ | ## ## ## ## .|
++ | ## ## ##### .|
++ | ## ## #### .|
++ | ###### ## ##.|
++ |#### ## ## ##.|
++ -&gt;| ## ## ##.|&lt;-
++ | ########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5740 '址'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ |######### ## .|
++ | ## ## ##### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ###### ## .|
++ |#### ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ###########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x578b '型'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ######### ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ |############ ## .|
++ | ## ## ## ## .|
++ | ## ## ## .|
++ | ## ## #### .|
++ | ## ## ## .|
++ |## ## .|
++ | ############ .|
++ | ## .|
++ -&gt;| ## .|&lt;-
++ |################.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x57df '域'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## #### .|
++ | ## ## ##.|
++ | ## ## .|
++ | ## ###########.|
++ | ## ## .|
++ |###### ## .|
++ | ## ####### ##.|
++ | ## ## #### ##.|
++ | ## ## #### ##.|
++ | ## ## ###### .|
++ | ## ######### .|
++ | #### ## .|
++ |#### ########.|
++ -&gt;| ## #### #####.|&lt;-
++ | ## ## ###.|
++ | ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x57f7 '執'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ###### ## .|
++ | ## ####### .|
++ | ## ## ## .|
++ |######## ## ## .|
++ | ## ## ## ## .|
++ | #### #### ## .|
++ | ###### ### ## .|
++ | ## ## ## .|
++ | ## ###### .|
++ |############## .|
++ | ## ## ####.|
++ -&gt;| ## ## ####.|&lt;-
++ | ## ## ###.|
++ | ## ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x57fa '基'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ############## .|
++ | ## ## .|
++ | ######## .|
++ | ## ## .|
++ | ######## .|
++ | ## ## .|
++ |################.|
++ | ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ |### ######## ###.|
++ -&gt;| ## .|&lt;-
++ | ## .|
++ | ############ .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5831 '報'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ####### .|
++ | ###### ## ## .|
++ | ## ## ## .|
++ | ## ## #### .|
++ |########## ## .|
++ | ## ## ## .|
++ | #### ####### .|
++ | ###### #### ## .|
++ | ## #### ## .|
++ | ## ###### .|
++ |############## .|
++ | ## ## ## .|
++ -&gt;| ## ###### .|&lt;-
++ | ## ### ## .|
++ | ## ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5834 '場'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ |############## .|
++ | ## .|
++ | ##############.|
++ | ## ## .|
++ | ## ######### .|
++ | ## ## ## #### .|
++ | #### ## ## ## .|
++ |#### ## ## ## .|
++ -&gt;| ## ## ## ## .|&lt;-
++ | ## #### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x586b '填'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ########## .|
++ | ## ## .|
++ | ## ######## .|
++ |######## ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ | ## ######## .|
++ | ###### ## .|
++ |################.|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x589e '增'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ## ..|
++ | ## ## ## ..|
++ | ## ..|
++ | ## ##########..|
++ | ## ## ## ##..|
++ |###############..|
++ | ## ## #### ##..|
++ | ## ## ## ##..|
++ | ## ##########..|
++ | ## ..|
++ | ## ######## ..|
++ | ###### ## ..|
++ |#### ######## ..|
++ -&gt;| ## ## ## ..|&lt;-
++ | ######## ..|
++ | ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x58ca '壊'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ###########.|
++ | ## ## .|
++ | ## ##########.|
++ |######## #### ##.|
++ | ## ## #### ##.|
++ | ## ##########.|
++ | ## ## .|
++ | ## ## .|
++ | ## ###########.|
++ | #### #### ## .|
++ |#### ####### .|
++ -&gt;| ## #### ## .|&lt;-
++ | ## ## ## .|
++ | ### ###.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x58d3 '壓'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ##############.|
++ | #### ## ### .|
++ | ######## ####.|
++ | #### ## ## .|
++ | ##############.|
++ | ## ## .|
++ | ######## ## .|
++ | #### ## ## .|
++ | ######## #### .|
++ | #### ## #### .|
++ | #### ##### ##.|
++ | ## ## .|
++ -&gt;| ## ########## .|&lt;-
++ |## ## .|
++ | #############.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x58de '壞'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ##############.|
++ | ## .|
++ | ## ########## .|
++ |####### #### ## .|
++ | ## ########## .|
++ | ## ## ## ## .|
++ | ## ###### .|
++ | ## ## ## .|
++ | ## ## ## ## .|
++ | #### ###### .|
++ |#### ## ## .|
++ -&gt;| ## ### ## .|&lt;-
++ | ####### ###.|
++ | ### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x58f2 '売'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ############## .|
++ | ## .|
++ | ## .|
++ | ########## .|
++ | .|
++ | ###############.|
++ | ## ##.|
++ |## ## ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ## ## .|
++ | ## ##### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5904 '处'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ##### ## .|
++ | ## ## ### .|
++ | ## ## #### .|
++ | ## ## ## ## .|
++ | #### ## ## ## .|
++ |## #### ## ## .|
++ | #### ## .|
++ | ## ## .|
++ | ## ## .|
++ | #### ## .|
++ -&gt;| ## ### .|&lt;-
++ | ## ########.|
++ |## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5907 '备'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ######### .|
++ | ### ## .|
++ | ### ## ## .|
++ | #### .|
++ | #### #### .|
++ |#### ####.|
++ | ########## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ########## .|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ########## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5909 '変'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ |################.|
++ | ## ## .|
++ | #### #### .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## .|
++ | ######### .|
++ | ## ## .|
++ | #### ## .|
++ | ## ## ## .|
++ | #### .|
++ -&gt;| ### ### .|&lt;-
++ | ### ### .|
++ |### ###.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x590d '复'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ############ .|
++ | ## .|
++ | ############ .|
++ |## ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ########## .|
++ | ## .|
++ | ######### .|
++ | ### ## .|
++ | ### ## ## .|
++ -&gt;| #### .|&lt;-
++ | #### #### .|
++ |#### ####.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x591a '多'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## ...|
++ |. ## ...|
++ |. ######## ...|
++ |. ## ## ...|
++ |. #### ## ...|
++ |. ## ## ...|
++ |. ##### ...|
++ |. ### ## ...|
++ |.#### #######...|
++ |. ## ##...|
++ |. ### ## ...|
++ |. ### ## ## ...|
++ |. #### ...|
++ -&gt;|. ### ...|&lt;-
++ |. #### ...|
++ |.#### ...|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5927 '大'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ |################.|
++ | ## .|
++ | ## .|
++ | #### .|
++ | #### .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## ## .|
++ |### ###.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5931 '失'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ########### .|
++ | ## ## .|
++ | ## ## .|
++ | ## .|
++ |################.|
++ | ## .|
++ | #### .|
++ | #### .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## ## .|
++ | ### ### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5934 '头'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## .|
++ |################.|
++ | ## .|
++ | #### .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ### ## .|
++ |### ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x597d '好'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ####### .|
++ | ## ## .|
++ | ## ## .|
++ |####### ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ###########.|
++ | ## ## ## .|
++ | ## ## ## .|
++ | #### ## .|
++ | ## ## .|
++ | #### ## .|
++ -&gt;| ## ## ## .|&lt;-
++ |## ## #### .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5982 '如'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ..|
++ | ## ..|
++ | ## ..|
++ | ## ######..|
++ |######## ## ##..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ | #### ## ##..|
++ | ## ## ##..|
++ | #### ## ##..|
++ -&gt;| ## ## ######..|&lt;-
++ | ## ## ## ##..|
++ |## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x59a5 '妥'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ####### .|
++ | ######## .|
++ | ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## .|
++ | ## .|
++ | ## .|
++ |################.|
++ | ## ## .|
++ | ## ## .|
++ | ##### ## .|
++ | ### .|
++ -&gt;| ### ### .|&lt;-
++ | ### ### .|
++ | ### ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x59cb '始'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ |####### ## ## .|
++ | ## ## ## ## .|
++ | ## ###########.|
++ | ## ## ## ##.|
++ | ## ## .|
++ | ## ## ####### .|
++ | #### ## ## .|
++ | ## ## ## .|
++ | #### ## ## .|
++ -&gt;| ## ## ## ## .|&lt;-
++ |## ####### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5a92 '媒'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ########## .|
++ |###### ## ## .|
++ | #### ###### .|
++ | #### ## ## .|
++ | #### ###### .|
++ | ## ## ## .|
++ | ## ############.|
++ | #### ## .|
++ | ## #### .|
++ | ## ###### .|
++ -&gt;| ###### ## ####.|&lt;-
++ | ## ## ## ## .|
++ |## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5b50 '子'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ############# .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ### .|
++ | ## .|
++ |################.|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ -&gt;| ## .|&lt;-
++ | #### .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5b57 '字'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ###############.|
++ | ## ##.|
++ |## ## .|
++ | ######### .|
++ | ## .|
++ | ## .|
++ | ## .|
++ |################.|
++ | ## .|
++ | ## .|
++ | ## .|
++ -&gt;| ## .|&lt;-
++ | #### .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5b58 '存'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ |################.|
++ | ## .|
++ | ## .|
++ | ## ######## .|
++ | ## ## .|
++ | ### ## .|
++ | #### ## .|
++ |## #############.|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## #### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5b83 '它'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ###############.|
++ | ## ##.|
++ |## ## .|
++ | ## .|
++ | ## ## .|
++ | ## ### .|
++ | ## #### .|
++ | #### .|
++ | ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ########## .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5b89 '安'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ############# .|
++ | ## ## .|
++ | ## ## ## .|
++ | ## .|
++ | ## .|
++ |################.|
++ | ## ## .|
++ | ## ## .|
++ | ### ## .|
++ | ### ## .|
++ | ### .|
++ -&gt;| ## ### .|&lt;-
++ | ### ## .|
++ | #### ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5b8c '完'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ###############.|
++ | ## ##.|
++ |## ## .|
++ | ########## .|
++ | .|
++ | .|
++ | ############## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ## ## .|
++ | ### ##### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5b9a '定'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ###############.|
++ | ## ##.|
++ |## ## .|
++ | .|
++ | ############ .|
++ | ## .|
++ | ## .|
++ | ## ## .|
++ | ## ####### .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| #### ## .|&lt;-
++ | ## ###########.|
++ |## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5b9f '実'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ###############.|
++ | ## ##.|
++ |## ## ## .|
++ | ## .|
++ | ############ .|
++ | ## .|
++ | ########## .|
++ | ## .|
++ | ############## .|
++ | #### .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ### ### .|
++ |### ###.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5bb6 '家'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ###############.|
++ | ## ##.|
++ |## ## .|
++ | ############## .|
++ | ## .|
++ | ##### ## .|
++ | #### ### ## .|
++ | ###### .|
++ | ### ### .|
++ | #### ##### .|
++ | ##### ### .|
++ -&gt;| ### ## ###.|&lt;-
++ |#### #### .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5bc6 '密'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ###############.|
++ | ## ##.|
++ |## ## ## ## .|
++ | ## #### .|
++ | #### ## ## .|
++ | ## ##### #### .|
++ | #### ## .|
++ |#### ######## .|
++ | ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ############ .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5bfc '导'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ########### .|
++ | ## ## .|
++ | ## ## .|
++ | ########### .|
++ | ## ## .|
++ | ## ## .|
++ | ############ .|
++ | ## .|
++ | ## .|
++ |################.|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | #### .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5bfe '対'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## .|
++ |################.|
++ | ## ## .|
++ | ## ## .|
++ | ## ## ## ## .|
++ | #### #### .|
++ | ## #### .|
++ | ## ## .|
++ | #### ## .|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ |## #### .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5c06 '将'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ###### .|
++ | ## ## ## .|
++ | ## #### ## .|
++ | #### #### .|
++ | #### ## .|
++ | ## ## ## .|
++ | ##### ## .|
++ | ### ## .|
++ | ##############.|
++ |### ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## #### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5c07 '將'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## ###### .|
++ | ## ## ### ## .|
++ | ## #### #### .|
++ | ## ## ## ## .|
++ | ##### #### .|
++ | ## ## ## .|
++ | ##### ## .|
++ |####### ## .|
++ | ## ###########.|
++ | ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ |## ## #### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5c08 '專'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ############## .|
++ | ## .|
++ | ############ .|
++ | ## ## ## .|
++ | ############ .|
++ | ## ## ## .|
++ | ############ .|
++ | ## ## .|
++ |################.|
++ | ## ##.|
++ |################.|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## #### .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5c0b '尋'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ########### .|
++ | ## .|
++ | ########## .|
++ | ## .|
++ | ########### .|
++ | .|
++ | ###### ###### .|
++ | ## ## ## .|
++ | ############## .|
++ | ## .|
++ |################.|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## #### .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5c0d '對'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | #### ## .|
++ | #### ## .|
++ | ######## ## .|
++ | ###### ## .|
++ | #### #######.|
++ |######### ## .|
++ | ## .|
++ | ## ## ## ## .|
++ | #### #### .|
++ | ######## #### .|
++ | ## ## .|
++ | ###### ## .|
++ | ## ## .|
++ -&gt;| ##### ## .|&lt;-
++ | ##### #### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5c0f '小'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ##.|
++ | ## ## ##.|
++ |## ## ##.|
++ | ## .|
++ -&gt;| ## .|&lt;-
++ | #### .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5c11 '少'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## ..|
++ |. ## ..|
++ |. ## ..|
++ |. ## ## ## ..|
++ |. ## ## ## ..|
++ |. ## ## ## ..|
++ |. ## ## ##..|
++ |. ## ## ####..|
++ |.## ## ## ..|
++ |. ## ## ..|
++ |. ## ..|
++ |. ## ..|
++ |. ## ..|
++ -&gt;|. ## ..|&lt;-
++ |. ### ..|
++ |.#### ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5c24 '尤'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## .|
++ |################.|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## ##.|
++ | ## ## ##.|
++ -&gt;| ## ## ##.|&lt;-
++ | ## #######.|
++ |## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5c31 '就'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## #### .|
++ |######## ## ## .|
++ | ## ## .|
++ | ## .|
++ | ###############.|
++ | ## ## #### .|
++ | ## ## #### .|
++ | ## ## #### .|
++ | ###### #### .|
++ | ## ## ## .|
++ | ###### ## ## .|
++ |## ## #### ## ##.|
++ -&gt;| ## ## ## ##.|&lt;-
++ | #### ## ####.|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5c40 '局'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ############ ..|
++ | ## ## ..|
++ | ## ## ..|
++ | ############ ..|
++ | ## ..|
++ | ## ..|
++ | #############..|
++ | ## ##..|
++ | ## ####### ##..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ | ## ####### ##..|
++ -&gt;| ## ##..|&lt;-
++ |## #### ..|
++ | ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5c5e '属'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | #############..|
++ | ## ##..|
++ | #############..|
++ | ## ..|
++ | ############ ..|
++ | ## ## ..|
++ | ############ ..|
++ | #### ## ## ..|
++ | ############ ..|
++ | ## ## ..|
++ | #############..|
++ | #### ## ####..|
++ -&gt;| ##############..|&lt;-
++ |## ## ####..|
++ | ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5de1 '巡'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 14
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ |####### ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## .|
++ -&gt;| #### .|&lt;-
++ | ## ###########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5de5 '工'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 12
++ Advance: 17
++ Offset: 0 x 0
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ############## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ -&gt;|################.|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5de6 '左'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ## .|
++ |################.|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ########## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;|## ## .|&lt;-
++ | ##############.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5df2 '已'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 14
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |..########### ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |..## ## ..|
++ |..## ## ..|
++ |..########### ..|
++ |..## ..|
++ |..## ..|
++ |..## ..|
++ |..## ##..|
++ |..## ##..|
++ -&gt;|..## ##..|&lt;-
++ |.. ############..|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5e02 '市'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## ..|
++ |. ## ..|
++ |. ..|
++ |.##############..|
++ |. ## ..|
++ |. ## ..|
++ |. ## ..|
++ |. ############ ..|
++ |. ## ## ## ..|
++ |. ## ## ## ..|
++ |. ## ## ## ..|
++ |. ## ## ## ..|
++ |. ## ## #### ..|
++ -&gt;|. ## ## ## ..|&lt;-
++ |. ## ..|
++ |. ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5e03 '布'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ## .|
++ |################.|
++ | ## .|
++ | ## ## .|
++ | ## ## .|
++ | ############ .|
++ | #### ## ## .|
++ |## ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## #### .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5e2e '帮'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ..|
++ | ## ######..|
++ |########### ## ..|
++ | ## #### ..|
++ | ####### ## ## ..|
++ | ## ## ##..|
++ |###############..|
++ | ## ## ## ..|
++ | ## ## ..|
++ | ## ## ..|
++ |############## ..|
++ | ## ## ## ..|
++ | ## ## ## ..|
++ -&gt;| ## ## #### ..|&lt;-
++ | ## ## ## ..|
++ | ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5e38 '常'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ###############.|
++ | ## ##.|
++ |## ############ .|
++ | ## ## .|
++ | ########## .|
++ | ## .|
++ | ############ .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## #### .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5e55 '幕'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ############## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ########## .|
++ | ## .|
++ |################.|
++ | ## ## ## .|
++ | ############ .|
++ |##### ## #####.|
++ -&gt;| ## ###### .|&lt;-
++ | ## ## ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5e74 '年'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ############ .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ########### .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ |################.|
++ | ## .|
++ | ## .|
++ -&gt;| ## .|&lt;-
++ | ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5e76 '并'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | .|
++ | ############## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ |################.|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5e83 '広'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ##############.|
++ | ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ## ########### .|&lt;-
++ |## ## ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5e8f '序'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ##############.|
++ | ## .|
++ | ## ######## .|
++ | ## ## .|
++ | ## #### .|
++ | ## ## .|
++ | ##############.|
++ | ## ## ##.|
++ | ## ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ |## #### .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5e95 '底'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ##############.|
++ | ## .|
++ | ## ##### .|
++ | ## ###### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ###########.|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## ##.|
++ -&gt;| ## #### ####.|&lt;-
++ | ## ### ## ###.|
++ |## ## ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5ea6 '度'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ##############.|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ############# .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ###### .|
++ | ## .|
++ | ########### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ## #### .|&lt;-
++ |## ### ### .|
++ | #### ####.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5efa '建'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ |############## .|
++ | ## ## ## .|
++ | #############.|
++ | ## ## ## .|
++ | ## ######## .|
++ | ##### ## .|
++ | ########## .|
++ | ## ## .|
++ | ## ## ## .|
++ | ############# .|
++ | ## ## .|
++ -&gt;| ##### ## .|&lt;-
++ | ## ##########.|
++ |## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5f00 '开'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ############## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ |################.|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5f0f '式'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## .|
++ |################.|
++ | ## .|
++ | ## .|
++ | ###### ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## ##.|
++ | ##### ## ##.|
++ -&gt;| ##### ####.|&lt;-
++ | ## ###.|
++ | ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5f15 '引'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ##...|
++ |.######## ##...|
++ |. ## ##...|
++ |. ## ##...|
++ |. ## ##...|
++ |. ####### ##...|
++ |. ## ##...|
++ |. ## ##...|
++ |.## ##...|
++ |.######## ##...|
++ |. ## ##...|
++ |. ## ##...|
++ |. ## ##...|
++ -&gt;|. ## ##...|&lt;-
++ |. #### ##...|
++ |. ## ##...|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5f35 '張'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |###### ####### .|
++ | ## ## .|
++ | ## ###### .|
++ | ## ## .|
++ | ##### ###### .|
++ | ## ## .|
++ | ## ###########.|
++ | ## #### .|
++ | ##### ## ## ## .|
++ | ## ## #### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ## #### ## .|&lt;-
++ | #### ### ##.|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5f37 '強'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ |###### ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ############.|
++ | ##### ## ##.|
++ | ## ## .|
++ | ## ##########.|
++ | ## ## ## ##.|
++ | ####### ## ##.|
++ | ############.|
++ | ## ## .|
++ | ## ## ## .|
++ -&gt;| ## ## ##.|&lt;-
++ | ###############.|
++ | ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5f53 '当'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## ...|
++ |. ## ## ##...|
++ |. ## ## ##...|
++ |. ## ## ## ...|
++ |. ## ## ## ...|
++ |. ## ...|
++ |.#############...|
++ |. ##...|
++ |. ##...|
++ |. ##...|
++ |. ############...|
++ |. ##...|
++ |. ##...|
++ -&gt;|. ##...|&lt;-
++ |.#############...|
++ |. ##...|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5f55 '录'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ########### .|
++ | ## .|
++ | ## .|
++ | ########## .|
++ | ## .|
++ | ## .|
++ |################.|
++ | ## .|
++ | ## ## ## .|
++ | ## ### ## .|
++ | ####### .|
++ | ## ## ## .|
++ -&gt;| ### ## ### .|&lt;-
++ |### #### ###.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5f62 '形'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ######### ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## ##.|
++ | ## ## ##.|
++ |########### ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## ##.|
++ | ## ## ##.|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ## ## .|
++ |## ## ### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5f71 '影'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ######## ## .|
++ | ## ## ## .|
++ | ######## ## .|
++ | ## ## ## .|
++ | ######## ## ##.|
++ | ## ##.|
++ |########### ## .|
++ | ## .|
++ | ######## ## .|
++ | ## ## ## ##.|
++ | ######## ##.|
++ | ## ## .|
++ -&gt;| ## ## ## ## .|&lt;-
++ |## ## ## ## .|
++ | ### ### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5f79 '役'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ###### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## ## .|
++ | #### ####.|
++ | #### .|
++ | ### ######## .|
++ | #### ## ## .|
++ |## ## ## ## .|
++ | ## ## ## .|
++ | ## #### .|
++ | ## ## .|
++ -&gt;| ## #### .|&lt;-
++ | ## ### ### .|
++ | #### ###.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5f88 '很'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ########## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ########## .|
++ | #### ## .|
++ | ## ## ## .|
++ | ### ######## .|
++ | #### ## ## ## .|
++ |## ## ## ## ## .|
++ | ## ## ### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ## #### ## .|&lt;-
++ | ## ### ###.|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5f8c '後'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ######## .|
++ | ## ## .|
++ | ## ## ## .|
++ | ### ######### .|
++ | #### ## ## .|
++ |## ## ## .|
++ | ## ####### .|
++ | ## ### ## .|
++ | #### ## ## .|
++ -&gt;| ## ### .|&lt;-
++ | ## ### ### .|
++ | ##### ###.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5f97 '得'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ########## .|
++ | ## ## ## .|
++ | ## ######## .|
++ | ## #### ## .|
++ | ########## .|
++ | ## .|
++ | ### ######### .|
++ | #### ## .|
++ |## #############.|
++ | ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## #### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5f9e '從'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ######## .|
++ | #### ## ##.|
++ | #### ## ##.|
++ | ### ## .|
++ | #### ## .|
++ |## ## ## ## .|
++ | ## ## ##### .|
++ | ## ## ## .|
++ | ## ###### .|
++ -&gt;| ## ## ### .|&lt;-
++ | #### ######.|
++ | ### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5fa1 '御'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | #### .|
++ | #### .|
++ | ## ###########.|
++ | ## ## ## ## ##.|
++ |## ## ## ## ##.|
++ | ## ## ## ##.|
++ | ########### ##.|
++ | ### ## ## ##.|
++ |#### ## ## ##.|
++ | ## ######## ##.|
++ | ## #### ## ##.|
++ | ## #### #####.|
++ | ## ########## .|
++ -&gt;| ###### ## .|&lt;-
++ | #### ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5fa9 '復'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## #########.|
++ | ## ## .|
++ | ## ########### .|
++ | ## ## ## .|
++ | ## ######## .|
++ | ### ## ## .|
++ | #### ######## .|
++ |## ## ## .|
++ | ## ####### .|
++ | ## ## ## .|
++ | ## #### ## .|
++ -&gt;| ## ### .|&lt;-
++ | ## ### ### .|
++ | ##### ###.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5fc3 '心'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 14
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ##.|
++ | ## ## ##.|
++ | ## ## ## ##.|
++ |## ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ####### .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5fc5 '必'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | #### ## ## .|
++ | #### ## ## .|
++ | #### ## ## .|
++ | ## ## ## ##.|
++ | ## #### ##.|
++ |## ### ## ##.|
++ | ## ## .|
++ -&gt;| ### ## .|&lt;-
++ | ## ######## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5fd8 '忘'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ |################.|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ########### .|
++ | .|
++ | ## .|
++ | ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ##.|
++ -&gt;| ## ## ## ##.|&lt;-
++ |## ######## .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5fdc '応'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ##############.|
++ | ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ###### ## .|
++ | ###### ## .|
++ | ###### #### .|
++ | #### ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ |## ###### .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6027 '性'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ### ######## .|
++ | ######## ## .|
++ | #### ## ## .|
++ | #### ## .|
++ |## ## ## .|
++ | ## ######## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## ##########.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6062 '恢'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ##########.|
++ | ### ## .|
++ | ###### ## ## .|
++ | #### ## ## .|
++ | #### ## ## ##.|
++ |## ## ###### ##.|
++ | ## ######## .|
++ | ## #### ## .|
++ | ## ## #### .|
++ | #### #### .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ## ## .|
++ | ## ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x606f '息'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ########## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ## .|
++ | ## ## ## .|
++ | ## ## ## ## ##.|
++ -&gt;| ## ## ## ##.|&lt;-
++ |## ######## .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x60a8 '您'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ######## .|
++ | ### ## ## .|
++ | ###### ## ## .|
++ |## ### ###### .|
++ | ## #### ## .|
++ | ## ## ## ## .|
++ | #### ## ## .|
++ | ## #### .|
++ | ## ## .|
++ | ## .|
++ | #### ## ## .|
++ -&gt;| #### ## ## ##.|&lt;-
++ |## ## ## ##.|
++ | ######### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x60c5 '情'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 17 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## |
++ | ## ## |
++ | ## ########## |
++ | ## ## |
++ | #### ######## |
++ | ##### ## |
++ | ################|
++ |## #### |
++ | ## ######## |
++ | ## ## ## |
++ | ## ######## |
++ | ## ## ## |
++ | ## ######## |
++ -&gt;| ## ## ## |&lt;-
++ | ## ## #### |
++ | ## ## ### |
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x60f3 '想'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ###### .|
++ | ## ## ## .|
++ | ######### ## .|
++ | ## ###### .|
++ | ### ## ## .|
++ | #### ###### .|
++ | ######## ## .|
++ | ## ## ## ## .|
++ | ## ###### .|
++ | ## .|
++ | ## ## ## .|
++ | ## ## ## ## ##.|
++ -&gt;| ## ## ## ##.|&lt;-
++ |## ######## .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x610f '意'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ############ .|
++ | ## ## .|
++ | ## ## .|
++ |################.|
++ | .|
++ | ########## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ########## .|
++ | ## .|
++ | #### ## ## .|
++ -&gt;| #### ## ## ##.|&lt;-
++ |## ## ## ##.|
++ | ######### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x614b '態'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## ## ### .|
++ | ########### .|
++ | ## ## .|
++ | ####### ###### .|
++ | ## ## .|
++ | ######### ### .|
++ | ## ###### .|
++ | ######### ## .|
++ | ## #### ## .|
++ | ## ### ###### .|
++ | ## .|
++ | #### ## ## .|
++ -&gt;| #### ## ## ##.|&lt;-
++ |## ## ## ##.|
++ | ######### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6167 '慧'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ |################.|
++ | ## ## .|
++ | ###### ###### .|
++ | ## ## .|
++ |################.|
++ | ## ## .|
++ | ############ .|
++ | ## .|
++ | ########### .|
++ | ## .|
++ | ############ .|
++ | ## .|
++ -&gt;| ## ## ## ## .|&lt;-
++ | ## ## ## ##.|
++ |## ######## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x61b6 '憶'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ######### .|
++ | ### ## ## .|
++ | ###### ## ## .|
++ | ###############.|
++ | #### .|
++ |## ## ######### .|
++ | ## ## ## .|
++ | ## ######### .|
++ | ## ## ## .|
++ | ## ######### .|
++ | ## ## .|
++ -&gt;| ###### ## ## .|&lt;-
++ | ###### ####.|
++ | ### ########.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x61c9 '應'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ##############.|
++ | ## ## ## ## .|
++ | ## ## ########.|
++ | ######## ## .|
++ | ##### ####### .|
++ | ## ## ## ## .|
++ | ## ## ####### .|
++ | ## ## ## ## .|
++ | ## ## ########.|
++ | ## ## ## .|
++ | ## ## ## ## .|
++ -&gt;| #### ## ## ####.|&lt;-
++ |## ## ## ####.|
++ | ## ####### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6210 '成'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | #### .|
++ | ## ## .|
++ | ## .|
++ | ##############.|
++ | ## ## .|
++ | ## ## .|
++ | ## ## ## .|
++ | ###### ## ## .|
++ | ## ## ## ## .|
++ | ## ## #### .|
++ | ## ## #### .|
++ | ## ## ## ##.|
++ | ###### ### ##.|
++ -&gt;| ## ## ## ####.|&lt;-
++ | ## ## ###.|
++ |## ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6216 '或'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## .|
++ |################.|
++ | ## .|
++ | ## .|
++ | ###### ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## #### .|
++ | ###### #### .|
++ | ## ##.|
++ | #### ### ##.|
++ -&gt;| ##### ## ####.|&lt;-
++ | ## ## ###.|
++ | ### ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6236 '戶'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ...|
++ | ######...|
++ | ###### ...|
++ | ## ...|
++ | ###########...|
++ | ## ##...|
++ | ## ##...|
++ | ## ##...|
++ | ###########...|
++ | ## ##...|
++ | ## ...|
++ | ## ...|
++ | ## ...|
++ -&gt;| ## ...|&lt;-
++ | ## ...|
++ |## ...|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6237 '户'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## ...|
++ |. ## ...|
++ |. ## ...|
++ |. ###########...|
++ |. ## ##...|
++ |. ## ##...|
++ |. ## ##...|
++ |. ## ##...|
++ |. ###########...|
++ |. ## ##...|
++ |. ## ...|
++ |. ## ...|
++ |. ## ...|
++ -&gt;|. ## ...|&lt;-
++ |. ## ...|
++ |.## ...|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x623b '戻'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ############# .|
++ | ## ## .|
++ | ## ## .|
++ | ############# .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ############# .|
++ | ## #### .|
++ | ## #### .|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ |## ## ## .|
++ | ## ###.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6240 '所'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | #### #### .|
++ | #### #### .|
++ | ## ## .|
++ | ## ## .|
++ | ######## .|
++ | ## ##########.|
++ | ## #### ## .|
++ | ## #### ## .|
++ | ######## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ |## ## ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x624b '手'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ###### .|
++ | ####### .|
++ | ## .|
++ | ## .|
++ | ############ .|
++ | ## .|
++ | ## .|
++ | ## .|
++ |################.|
++ | ## .|
++ | ## .|
++ | ## .|
++ -&gt;| ## .|&lt;-
++ | #### .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x626b '扫'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ..|
++ | ## ..|
++ | ## #########..|
++ | ## ##..|
++ |####### ##..|
++ | ## ##..|
++ | ## ##..|
++ | ############..|
++ | ### ##..|
++ | ### ##..|
++ |##### ##..|
++ | ## ##..|
++ | ## ##..|
++ -&gt;| ## #########..|&lt;-
++ | #### ##..|
++ | ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x627e '找'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ## ..|
++ | ## ## ## ..|
++ | ## ## ## ..|
++ | ## ## ..|
++ |####### #######..|
++ | ## ##### ..|
++ | ## ## ..|
++ | #### ## ## ..|
++ | ### ## ## ..|
++ | ### ## ## ..|
++ |##### ### ..|
++ | ## ## ##..|
++ | ## #### ##..|
++ -&gt;| ## ## ####..|&lt;-
++ | #### ## ###..|
++ | ## ##..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x629e '択'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ |######### ## .|
++ | ## ## ## .|
++ | ## ######## .|
++ | ###### ## ## .|
++ | ### ## ## .|
++ | ### ## ## .|
++ |##### ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ###### ## .|
++ | #### ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x62bc '押'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ..|
++ | ## ########..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ |######### ## ##..|
++ | ## ########..|
++ | ## ## ## ##..|
++ | ###### ## ##..|
++ | ### ## ## ##..|
++ | ### ########..|
++ |##### ## ## ##..|
++ | ## ## ..|
++ | ## ## ..|
++ -&gt;| ## ## ..|&lt;-
++ | #### ## ..|
++ | ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x62e9 '择'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ######### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ |##### #### .|
++ | ## ## .|
++ | ## ###### .|
++ | ## ### ## ####.|
++ | ### ## .|
++ |#### ######## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ########## .|
++ -&gt;| ## ## .|&lt;-
++ |#### ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x62ec '括'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ##### .|
++ | ## ##### .|
++ | ## ## .|
++ |####### ## .|
++ | ## ##########.|
++ | ## ## .|
++ | #### ## .|
++ | ### ## .|
++ | ### ######## .|
++ |##### ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | #### ######## .|
++ | ## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6301 '持'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ######## .|
++ |####### ## .|
++ | ## ## .|
++ | ## ##########.|
++ | ## ## .|
++ | ### ## .|
++ | ### ##########.|
++ |##### ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | #### #### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6307 '指'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## ## .|
++ | ## ## #### .|
++ | ## #### .|
++ |######### ##.|
++ | ## ## ##.|
++ | ## ########.|
++ | #### .|
++ | ### ######## .|
++ | ### ## ## .|
++ |##### ## ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | #### ######## .|
++ | ## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6309 '按'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ##########.|
++ |######## ##.|
++ | #### ## ## .|
++ | ## ## .|
++ | #############.|
++ | ### ## ## .|
++ |##### ## ## .|
++ | ## ## ## .|
++ | ## ##### .|
++ | ## ## .|
++ -&gt;| ## #### .|&lt;-
++ | #### ## ## .|
++ | ## ### ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x633d '挽'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ####### .|
++ | ## ## ## .|
++ |####### ## .|
++ | ## ######### .|
++ | ## ## ## ## .|
++ | ##### ## ## .|
++ | ##### ## ## .|
++ | ### ######### .|
++ |##### #### .|
++ | ## #### .|
++ | ## ## ## ##.|
++ -&gt;| ## ## ## ##.|&lt;-
++ | #### ## #####.|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x633f '挿'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## #### .|
++ | ## ##### .|
++ | ## ## .|
++ | ## ## .|
++ |################.|
++ | ## ## .|
++ | ## ######## .|
++ | ###### ## ## .|
++ | ### ## ## ## .|
++ | ### ######## .|
++ |##### ## ## ## .|
++ | ## ## ## ## .|
++ | ## ######## .|
++ -&gt;| ## ## .|&lt;-
++ | #### ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6362 '换'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ###### .|
++ | ## ## ## .|
++ |######## ## .|
++ | ############ .|
++ | ## ## ## ## .|
++ | ### ## ## ## .|
++ | ### ## ## ## .|
++ |##### ## ## ## .|
++ | #############.|
++ | ## #### .|
++ | ## #### .|
++ -&gt;| ## ## ## .|&lt;-
++ | #### ## ## .|
++ | ## ### ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6372 '捲'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## ## ## .|
++ | ## ###### .|
++ | ## ##########.|
++ |####### ## .|
++ | ## ## .|
++ | #############.|
++ | ## ## ## .|
++ | ##### ## .|
++ | ##############.|
++ |###### ## ## .|
++ | ## ## ## .|
++ | ## ## #### .|
++ -&gt;| ## ## ## ##.|&lt;-
++ | #### ## ##.|
++ | ## ########.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6383 '掃'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ######## .|
++ | ## ## .|
++ | ## ####### .|
++ |####### ## .|
++ | ## ######## .|
++ | ## .|
++ | ## ##########.|
++ | ##### ## ##.|
++ | ### ## .|
++ |##### ######## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ -&gt;| ## ## ##### .|&lt;-
++ | #### ## #### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6392 '排'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ####### #####.|
++ |###### ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ####### #### .|
++ | ### ## ## .|
++ |##### ## ## .|
++ | ## ## ## .|
++ | ####### #####.|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | #### ## ## .|
++ | ## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x63a5 '接'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ######### .|
++ | ## .|
++ |######### ## .|
++ | ## ## ## .|
++ | #############.|
++ | ## ## .|
++ | ### ## .|
++ | ##############.|
++ |##### ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ## ### .|&lt;-
++ | #### ### ### .|
++ | ## ### ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x63a7 '控'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ##########.|
++ |######## ##.|
++ | #### ## #### .|
++ | ## ## ## .|
++ | ##### ## .|
++ | ### .|
++ |##### ######## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ###############.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x63aa '措'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ##########.|
++ |###### ## ## .|
++ | ## ## ## .|
++ | #############.|
++ | ### .|
++ | ### ######## .|
++ |##### ## ## .|
++ | ## ## ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | #### ######## .|
++ | ## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x63cf '描'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ##########.|
++ | ## ## ## .|
++ |####### ## ## .|
++ | ## .|
++ | ## ######## .|
++ | ###### ## ## .|
++ | ### ## ## ## .|
++ | ### ## ## ## .|
++ |##### ######## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ -&gt;| ## ## ## ## .|&lt;-
++ | #### ######## .|
++ | ## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x63d0 '提'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ |############### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ############ .|
++ | ### .|
++ | ### ##########.|
++ |##### ## .|
++ | ## ## ## .|
++ | ## ## ##### .|
++ -&gt;| ## ## ## .|&lt;-
++ | #### ###### .|
++ | ## ## #######.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x63d2 '插'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ##### .|
++ | ## ###### .|
++ | ## ## .|
++ |###### ## .|
++ | ##############.|
++ | ## ## .|
++ | #### #### .|
++ | ###### ###### .|
++ |#### ## ## ## .|
++ | ## ## ## ## .|
++ | ## ########## .|
++ | ## ## ## ## .|
++ -&gt;| ## ## ## ## .|&lt;-
++ |#### ########## .|
++ | ## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x63db '換'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ####### .|
++ | ## ## ## .|
++ |####### ## .|
++ | ## ##########.|
++ | ## ## ##.|
++ | ##### #### ##.|
++ | ### #### ####.|
++ |##### ## ## ##.|
++ | ## ## .|
++ | #############.|
++ | ## #### .|
++ -&gt;| ## ## ## .|&lt;-
++ | #### ## ## .|
++ | ## ### ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x63f4 '援'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ##### .|
++ | ## ###### .|
++ | ## ## ## ## .|
++ | ## ## #### .|
++ |###### .|
++ | ## ######### .|
++ | ## ## .|
++ | #### ## .|
++ | ##############.|
++ |#### ## .|
++ | ## ####### .|
++ | ## #### ## .|
++ | ## ## #### .|
++ -&gt;| ## ## ## .|&lt;-
++ |###### ###### .|
++ | ## ### ###.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x640d '損'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ..|
++ | ## ####### ..|
++ | ## ## ## ..|
++ | ## ## ## ..|
++ |############## ..|
++ | ## ..|
++ | ## #########..|
++ | ##### ##..|
++ | ############..|
++ | ### ## ##..|
++ |##### #########..|
++ | ## ## ##..|
++ | ## #########..|
++ -&gt;| ## ## ## ..|&lt;-
++ | #### ## ## ..|
++ | ## ## ##..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x641c '搜'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## #### .|
++ | ## ## ##### .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ |############### .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ############ .|
++ | ### ## .|
++ | ### ######## .|
++ |##### ## ## .|
++ | ## #### .|
++ | ## ## .|
++ -&gt;| ## #### .|&lt;-
++ | #### ## ## .|
++ | ## ### ###.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x641e '搞'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ##########.|
++ | ## .|
++ |############### .|
++ | ## ## ## .|
++ | ## ######## .|
++ | #### .|
++ | #############.|
++ | ### ## ##.|
++ |##### ##########.|
++ | ## #### ####.|
++ | ## ##########.|
++ -&gt;| ## ## ##.|&lt;-
++ | #### ## ####.|
++ | ## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x64c7 '擇'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ##########.|
++ | ## ## #### ##.|
++ | ## ##########.|
++ |####### ## .|
++ | ## ######## .|
++ | #### ## .|
++ | #############.|
++ | ### ## ## .|
++ |##### #### .|
++ | ## ######## .|
++ | ## ## .|
++ | #############.|
++ -&gt;| ## ## .|&lt;-
++ | #### ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x64cd '操'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ######## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ######## .|
++ |###### .|
++ | ## ########## .|
++ | ## ## #### ## .|
++ | ##### #### ## .|
++ | ############# .|
++ |#### ## .|
++ | ##############.|
++ | ## ##### .|
++ | ## ## #### .|
++ -&gt;| ## ## ## ## .|&lt;-
++ |###### ## ###.|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x64da '據'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ###### .|
++ | ## ## .|
++ | ## ##########.|
++ |######## ## ##.|
++ | ## ## ##### .|
++ | ## ##### ## .|
++ | ##### ##### .|
++ | ##### .|
++ | ### ##########.|
++ |##### ## ## .|
++ | ## ###### ## .|
++ | ## ## ##### .|
++ -&gt;| ############ .|&lt;-
++ | ###### #### ##.|
++ | #### ###### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x652f '支'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ############## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ########### .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | #### .|
++ | ## .|
++ -&gt;| ###### .|&lt;-
++ | ### ### .|
++ |#### ####.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x653e '放'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## .|
++ |########## .|
++ | ## ########.|
++ | ## ## ## .|
++ | ######## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## #### .|
++ | ## ## #### .|
++ | ## ## ## .|
++ | ## ## #### .|
++ -&gt;| ###### ## ## .|&lt;-
++ |## ## ## ## .|
++ | ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6548 '效'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## .|
++ |######### ######.|
++ | ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ |## ##### ## .|
++ | ## ## #### .|
++ | #### #### .|
++ | ## ## .|
++ | #### ## .|
++ | ## ## #### .|
++ -&gt;| ## ## ## ## .|&lt;-
++ |## ## ## .|
++ | ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6551 '救'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | #### ## .|
++ | ## ## ## .|
++ | ## ## .|
++ |################.|
++ | ## ## ## .|
++ | ## ## ## .|
++ |## ## #### ## .|
++ | ###### ## ## .|
++ | ## #### .|
++ | #### #### .|
++ | ###### ## .|
++ |## ## ## #### .|
++ -&gt;| ## ## ## .|&lt;-
++ | #### ## ## .|
++ | ## ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6557 '敗'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ###### ## .|
++ | ## ## ## .|
++ | ## ## ########.|
++ | ######## ## .|
++ | ## #### ## .|
++ | ## ##### ## .|
++ | ###### ## ## .|
++ | ## ## ## ## .|
++ | ## ## #### .|
++ | ###### #### .|
++ | ## .|
++ | #### #### .|
++ -&gt;| ## ## ## ## .|&lt;-
++ | ## #### ## .|
++ |## ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6570 '数'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## ## ## .|
++ | ###### ## .|
++ | ## ######.|
++ |########### ## .|
++ | ###### ## ## .|
++ | ## ## #### ## .|
++ |## ## #### ## .|
++ | ## #### .|
++ |######## #### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ### ## #### .|
++ -&gt;| ### #### .|&lt;-
++ | ##### ## ## .|
++ |### #### ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6574 '整'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ |################.|
++ | ## ## ## .|
++ | ########### ## .|
++ | ## ## ## ## ## .|
++ | ######## #### .|
++ | ###### ## .|
++ | ## ## ## #### .|
++ |## ## ## ###.|
++ | .|
++ | ############## .|
++ | ## .|
++ -&gt;| ## ####### .|&lt;-
++ | ## ## .|
++ |################.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6578 '數'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ######## ## .|
++ | ## ## ## ## .|
++ |############ .|
++ | ## ## ## ######.|
++ | ########## ## .|
++ | ## ## ## .|
++ | ######## ## ## .|
++ | ## ## ## ## ## .|
++ | ######## #### .|
++ | ## #### .|
++ |######### ## .|
++ | ## ## #### .|
++ -&gt;| #### ## #### .|&lt;-
++ | ### ## ## .|
++ |##### #### ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6587 '文'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ## .|
++ |################.|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | #### .|
++ | ## .|
++ | #### .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ### ### .|
++ |### ###.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x65b0 '新'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## .|
++ | ############# .|
++ | ## .|
++ | ## ## ## .|
++ | #### ## .|
++ |################.|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ########## ## .|
++ | ## ## ## .|
++ | ###### ## ## .|
++ | ## ## #### ## .|
++ -&gt;|## ## ## ## .|&lt;-
++ | #### ## ## .|
++ | ## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x65b7 '斷'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## ## ##.|
++ |.#### ## #### .|
++ |.############ .|
++ |.## ## ###### .|
++ |.###### ## ## .|
++ |.###############.|
++ |.## ## ###### .|
++ |.############## .|
++ |.## ## ## #### .|
++ |.#### ## #### .|
++ |.############## .|
++ |.## ## ######## .|
++ |.###### ## #### .|
++ -&gt;|.############## .|&lt;-
++ |.## ## ### ## .|
++ |.########## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x65b9 '方'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ## .|
++ |################.|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ######## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## #### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x65bc '於'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## .|
++ |######## #### .|
++ | ## #### .|
++ | ## ## ## .|
++ | ####### ## .|
++ | ## ### ##.|
++ | ## ## ### .|
++ | ## ## ## .|
++ | ## ## .|
++ | ## ## ### .|
++ | ## ## ## .|
++ -&gt;| ###### ## .|&lt;-
++ |## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x65bd '施'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ########.|
++ | ## ## .|
++ |######## ## .|
++ | ## ## ## .|
++ | ## ## ##### .|
++ | ############# .|
++ | ## ####### ## .|
++ | ## #### ## ## .|
++ | ## #### ##### .|
++ | ## #### ######.|
++ | ## #### ## ##.|
++ -&gt;| ## #### ##.|&lt;-
++ | ###### ########.|
++ |## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x65e0 '无'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ########### ..|
++ | ## ..|
++ | ## ..|
++ | ## ..|
++ | ## ..|
++ | ##############..|
++ | ## ## ..|
++ | ## ## ..|
++ | ## ## ..|
++ | ## ## ..|
++ | ## ## ..|
++ | ## ## ##..|
++ -&gt;| ## ## ##..|&lt;-
++ | ## ######..|
++ |## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x65e2 '既'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 15
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.############## .|
++ |.## ## ## .|
++ |.## ## ## .|
++ |.######## ## .|
++ |.## #### ## .|
++ |.## ###########.|
++ |.###### ## .|
++ |.## ## .|
++ |.## ## ### .|
++ |.## ## #### .|
++ |.## #### #### .|
++ |.#### #### ## ##.|
++ -&gt;|.### ## ## ##.|&lt;-
++ |.## ## ####.|
++ |. ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x65e5 '日'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 10 x 15
++ Advance: 17
++ Offset: 3 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |...##########....|
++ |...## ##....|
++ |...## ##....|
++ |...## ##....|
++ |...## ##....|
++ |...## ##....|
++ |...##########....|
++ |...## ##....|
++ |...## ##....|
++ |...## ##....|
++ |...## ##....|
++ |...## ##....|
++ -&gt;|...## ##....|&lt;-
++ |...##########....|
++ |...## ##....|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x65e9 '早'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ########## .|
++ | ## ## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ## ## .|
++ | ########## .|
++ | ## .|
++ | ## .|
++ |################.|
++ | ## .|
++ | ## .|
++ -&gt;| ## .|&lt;-
++ | ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x660e '明'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 15
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. #######..|
++ |.###### ## ##..|
++ |.## ## ## ##..|
++ |.## ## ## ##..|
++ |.## ## #######..|
++ |.###### ## ##..|
++ |.## ## ## ##..|
++ |.## ## ## ##..|
++ |.## ## #######..|
++ |.###### ## ##..|
++ |.## ## ## ##..|
++ |. ## ##..|
++ -&gt;|. ## ##..|&lt;-
++ |. ## ####..|
++ |. ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6620 '映'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## .|
++ |. ## .|
++ |.##### ## .|
++ |.## ## ######## .|
++ |.## ## ## ## ## .|
++ |.## ## ## ## ## .|
++ |.##### ## ## ## .|
++ |.## ## ## ## ## .|
++ |.## ## ## ## ## .|
++ |.## ############.|
++ |.## ## ## .|
++ |.##### #### .|
++ |.## ## #### .|
++ -&gt;|. ## ## .|&lt;-
++ |. ## ## .|
++ |. ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x662f '是'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ########## .|
++ | ## ## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ## ## .|
++ | ########## .|
++ | .|
++ |################.|
++ | ## .|
++ | ## ## .|
++ | ## ####### .|
++ | ## ## .|
++ -&gt;| #### ## .|&lt;-
++ | ## #### .|
++ |## ##########.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6642 '時'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## .|
++ |. ## .|
++ |.###### ## .|
++ |.## ########## .|
++ |.## ## ## .|
++ |.## ## ## .|
++ |.## ###########.|
++ |.###### ## .|
++ |.## ## ## .|
++ |.## ###########.|
++ |.## ## ## .|
++ |.## ## ## ## .|
++ |.###### ## ## .|
++ -&gt;|.## ## ## .|&lt;-
++ |. #### .|
++ |. ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x667a '智'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ..|
++ | ###### ######..|
++ | ## ## ## ##..|
++ | ## ## ##..|
++ |########### ##..|
++ | #### ## ##..|
++ | ## ## ######..|
++ | ## ..|
++ | ########## ..|
++ | ## ## ..|
++ | ## ## ..|
++ | ########## ..|
++ | ## ## ..|
++ -&gt;| ## ## ..|&lt;-
++ | ########## ..|
++ | ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6682 '暂'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ### .|
++ |############# .|
++ | ## ## .|
++ | ## ## ## .|
++ | ###############.|
++ | ## ## ## .|
++ | ###### ## .|
++ |###### ## ## .|
++ | ## #### ## .|
++ | ########### .|
++ | ## ## .|
++ | ## ## .|
++ | ########## .|
++ -&gt;| ## ## .|&lt;-
++ | ## ## .|
++ | ########## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x66ab '暫'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## ## .|
++ |.############# .|
++ |. ## ## .|
++ |.########## .|
++ |.## ## #########.|
++ |.########## ## .|
++ |.## ## #### ## .|
++ |.########## ## .|
++ |. ## ## ## .|
++ |.########## ## .|
++ |. ## ## ## .|
++ |. ########## .|
++ |. ## ## .|
++ -&gt;|. ########## .|&lt;-
++ |. ## ## .|
++ |. ########## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x66f4 '更'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |################.|
++ | ## .|
++ | ## .|
++ | ############ .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ############ .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ############ .|
++ | ## ## .|
++ | #### .|
++ -&gt;| ### .|&lt;-
++ | ### #### .|
++ |#### ######.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x66ff '替'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ############## .|
++ | ## ## .|
++ |################.|
++ | #### #### .|
++ | ## #### ## .|
++ | ## ## ###.|
++ |## ########## .|
++ | ## ## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ########## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6700 '最'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ########## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ########## .|
++ | .|
++ |################.|
++ | ## ## .|
++ | ############ .|
++ | ## #### ## .|
++ | ######## ## .|
++ | ## ## #### .|
++ | ####### ## .|
++ -&gt;|##### ## #### .|&lt;-
++ | ## #### ## .|
++ | ### ###.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6703 '會'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | #### .|
++ | ### ### .|
++ | ############ .|
++ |### ###.|
++ | ############ .|
++ | #### ## #### .|
++ | ## ###### ## .|
++ | ############ .|
++ | .|
++ | ########## .|
++ | ## ## .|
++ | ########## .|
++ -&gt;| ## ## .|&lt;-
++ | ########## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6709 '有'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ |################.|
++ | ## .|
++ | ## .|
++ | ######### .|
++ | ## ## .|
++ | ### ## .|
++ | ########### .|
++ | ## ## ## .|
++ |## ## ## .|
++ | ######### .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## #### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x670d '服'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ############# .|
++ | ## #### ## .|
++ | ## #### ## .|
++ | ## #### #### .|
++ | ######## ## .|
++ | ## #### .|
++ | ## ######### .|
++ | ## ###### ## .|
++ | ########## ## .|
++ | ## ######## .|
++ | ## ######## .|
++ | ## #### ## .|
++ -&gt;| ## ######## .|&lt;-
++ | ## ####### ## .|
++ |## ## ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x671f '期'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ..|
++ | ## ## ######..|
++ | ########## ##..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ | ###### ######..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ | ###### ## ##..|
++ | ## ## ######..|
++ | ## ## ## ##..|
++ |########### ##..|
++ | ## ## ##..|
++ -&gt;| ## #### ##..|&lt;-
++ | ## ## ####..|
++ |## ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x672a '未'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ############ .|
++ | ## .|
++ | ## .|
++ | ## .|
++ |################.|
++ | #### .|
++ | ###### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;|### ## ###.|&lt;-
++ | ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x672c '本'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ############## .|
++ | #### .|
++ | ###### .|
++ | ###### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ######## ## .|
++ |## ## ##.|
++ -&gt;| ## .|&lt;-
++ | ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x673a '机'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ###### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ |######### ## .|
++ | ## ## ## .|
++ | ### ## ## .|
++ | #### ## ## .|
++ | ######## ## .|
++ | ######## ## .|
++ |## ## ## ## .|
++ | ## ## ## ##.|
++ | ## ## ## ##.|
++ -&gt;| ## ## ## ##.|&lt;-
++ | ## ## ####.|
++ | #### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6784 '构'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ..|
++ | ## ## ..|
++ | ## ## ..|
++ | ## #######..|
++ |######### ##..|
++ | ## ## ##..|
++ | ### ## ## ##..|
++ | #### ## ##..|
++ | ###### ## ##..|
++ | ###### #### ##..|
++ |## ## ## ####..|
++ | ## ########..|
++ | ## ####..|
++ -&gt;| ## ##..|&lt;-
++ | ## #### ..|
++ | ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6790 '析'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## #### .|
++ | ## ##### .|
++ | ## ## .|
++ |######### .|
++ | ## ## .|
++ | ### #########.|
++ | #### ## ## .|
++ | ######## ## .|
++ | #### ## ## .|
++ |## ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ## ## .|
++ | #### ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x679c '果'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ########## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ########## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ########## .|
++ | ## ## ## .|
++ | ## .|
++ |################.|
++ | ###### .|
++ | ## ## ## .|
++ -&gt;| ### ## ### .|&lt;-
++ |### ## ###.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x67b6 '架'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ############## .|
++ | ## #### ## .|
++ | ## #### ## .|
++ | ## #### ## .|
++ | ## ########## .|
++ | ## ## .|
++ | ## .|
++ | ## .|
++ |################.|
++ | ###### .|
++ | ## ## ## .|
++ -&gt;| ### ## ### .|&lt;-
++ |### ## ###.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x67e5 '查'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ |################.|
++ | ###### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ############ .|
++ |##### #####.|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ## ## .|
++ | ########## .|
++ -&gt;| .|&lt;-
++ |################.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6838 '核'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ##########.|
++ |####### ## .|
++ | ## ## ##.|
++ | ### ## ## .|
++ | #### ####### .|
++ | ###### ## .|
++ | ###### ## ##.|
++ |## ## ### ## .|
++ | ## ### ## .|
++ | ## ## .|
++ -&gt;| ## #### .|&lt;-
++ | ## ### ## .|
++ | ## ### ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6839 '根'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ |############## .|
++ | ## ## ## .|
++ | ### ## ## .|
++ | ############ .|
++ | ####### ## ## .|
++ | #### ## ## ## .|
++ |## ## ## ### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ## #### ## .|&lt;-
++ | ## ### ###.|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x683c '格'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ###### .|
++ | ## ## ## .|
++ |######### ## .|
++ | #### #### .|
++ | ### ## .|
++ | #### #### .|
++ | ######## ### .|
++ | #### ## ###.|
++ |## ########### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ####### .|
++ | ## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6848 '案'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ############## .|
++ | ## ## .|
++ | ## .|
++ |################.|
++ | ## ## .|
++ | ##### ## .|
++ | ##### .|
++ | ##### #### .|
++ | ## .|
++ |################.|
++ | ###### .|
++ | ## ## ## .|
++ -&gt;| ### ## ### .|&lt;-
++ |### ## ###.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x684c '桌'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ######## .|
++ | ## .|
++ | ########### .|
++ | ## ## .|
++ | ########### .|
++ | ## ## .|
++ | ########### .|
++ | ## .|
++ |################.|
++ | ###### .|
++ | ## ## ## .|
++ -&gt;| ### ## ### .|&lt;-
++ |### ## ###.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x689d '條'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ####### .|
++ | ## ## ## .|
++ | ########### .|
++ | ###### ## .|
++ |## #### ###### .|
++ | ###### ## ###.|
++ | #### ## .|
++ | ############ .|
++ | #### ## .|
++ | #### ###### .|
++ | ###### ## ## .|
++ -&gt;| ## ## ## ##.|&lt;-
++ | ## #### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x68c0 '检'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## #### .|
++ | ## #### .|
++ |######### ## .|
++ | ## ## ## .|
++ | ##############.|
++ | #### .|
++ | ###### ## ## .|
++ | #### ## ## .|
++ |## ## ## ## ## .|
++ | ## ###### .|
++ | ## ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | #############.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x691c '検'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## #### .|
++ | ## ## ## .|
++ |######### ## .|
++ | ## ##########.|
++ | ### ## .|
++ | #### ## .|
++ | ############## .|
++ | ######## ## ## .|
++ |## ## ## ## ## .|
++ | ## ######## .|
++ | ## #### .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ## ## .|
++ | ## ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x696d '業'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## ## ## .|
++ | #### #### .|
++ |################.|
++ | ## ## .|
++ | ## ## .|
++ | ############## .|
++ | ## .|
++ | ############ .|
++ | ## .|
++ |################.|
++ | ###### .|
++ | ## ## ## .|
++ -&gt;| ### ## ### .|&lt;-
++ |### ## ###.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x69cb '構'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ##########.|
++ | ## ## ## .|
++ |############### .|
++ | ## ## ## .|
++ | ### ##########.|
++ | #### ## .|
++ | ############## .|
++ | ######## ## ## .|
++ |## ## ######## .|
++ | ## ## ## ## .|
++ | ## ##########.|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ## #### .|
++ | ## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6a19 '標'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ##########.|
++ | ## #### .|
++ | ## ######## .|
++ |############### .|
++ | ## ######## .|
++ | ### ######## .|
++ | #### .|
++ | ############## .|
++ | ###### .|
++ |## ## ##########.|
++ | ## ## .|
++ | ## ###### .|
++ -&gt;| ## ## ## ## .|&lt;-
++ | ## ###### ##.|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6a21 '模'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ############ .|
++ | ## ## ## .|
++ |####### .|
++ | ## ######## .|
++ | ### ## ## .|
++ | ############ .|
++ | ####### ## .|
++ | #### ######## .|
++ |## ## ## .|
++ | ############ .|
++ | ## #### .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ## ## .|
++ | #### ###.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6a5f '機'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ##########.|
++ | ## ##########.|
++ |###### ## ## ## .|
++ | ## ##########.|
++ | ### ##########.|
++ | #### ## ## ## .|
++ | ###############.|
++ | #### ## ## .|
++ |## ## ## #### .|
++ | ## ## #### .|
++ | ## #### ####.|
++ -&gt;| ## ## ## ####.|&lt;-
++ | ## ## #####.|
++ | #### ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6a94 '檔'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## ## ## .|
++ | ## ###### .|
++ | ## ##########.|
++ |######## ##.|
++ | ## ###### .|
++ | ### ## ## .|
++ | #### ## ## .|
++ | ###### ###### .|
++ | ###### .|
++ |## ## ######## .|
++ | ## ## ## ## .|
++ | ## ######## .|
++ -&gt;| ## ## ## ## .|&lt;-
++ | ## ######## .|
++ | ## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6aa2 '檢'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## #### .|
++ | ## ## ## .|
++ |######### ## .|
++ | ## ##########.|
++ | ### .|
++ | #### .|
++ | ############## .|
++ | ############## .|
++ |## ## ######## .|
++ | ## ######## .|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ######## .|
++ | ## ## ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6b20 '欠'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ########### .|
++ | ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## .|
++ | ## .|
++ | #### .|
++ | #### .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## ## .|
++ |### ###.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6b21 '次'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ####### .|
++ | ## ## .|
++ | ## ## ## .|
++ | #### ## .|
++ | #### ## .|
++ | ## ## .|
++ |#### #### .|
++ | ## #### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ## ## .|
++ | ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6b61 '歡'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ## .|
++ | ## ## ## .|
++ |############ .|
++ | ## ## #######.|
++ | ########## ##.|
++ | ######### ## .|
++ | ######## ## .|
++ | ## ## ## .|
++ | ####### ## .|
++ | ### ## ## .|
++ |######### #### .|
++ | ## ## #### .|
++ | ####### #### .|
++ -&gt;| ## ## ## ## .|&lt;-
++ | ######### ## .|
++ | ## ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6b62 '止'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ####### .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ |################.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6b63 '正'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 14
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ############## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## ## .|
++ | ## ####### .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ |################.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6b64 '此'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ######## .|
++ | ## ## ### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## ##.|
++ | ######### ##.|
++ -&gt;|##### ## ##.|&lt;-
++ | ## ######.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6bd4 '比'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 15
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## .|
++ |..## ## .|
++ |..## ## .|
++ |..## ## ## .|
++ |..## ## ## .|
++ |..## ## ## .|
++ |..########## .|
++ |..## ### .|
++ |..## ## .|
++ |..## ## .|
++ |..## ## .|
++ |..## ## ##.|
++ |..## ##### ##.|
++ -&gt;|..#### ## ##.|&lt;-
++ |..## #######.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6c42 '求'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## .|
++ |.############## .|
++ |. ## .|
++ |. ## ## ## .|
++ |. ## ## ## .|
++ |. ## ##### .|
++ |. ##### .|
++ |. #### ## .|
++ |. ## ## ## .|
++ |. ## ## ## .|
++ |.### ## ###.|
++ -&gt;|. ## .|&lt;-
++ |. #### .|
++ |. ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6c7a '決'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## .|
++ | ## ## .|
++ | ########### .|
++ |## ## ## .|
++ | ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## .|
++ | #############.|
++ | ## ## .|
++ |#### #### .|
++ | ## #### .|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | #### ## .|
++ | ## ###.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6c92 '沒'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## .|
++ | ## ####### .|
++ | ## ## ## .|
++ |## ## ## .|
++ | ## ## #### .|
++ | ## ## ## .|
++ | ########### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ |#### ## ## .|
++ | ## #### .|
++ | ## ## .|
++ -&gt;| ## #### .|&lt;-
++ | ## ### ## .|
++ | ### ###.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6cc1 '況'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ## ######### .|
++ | #### ## .|
++ | #### ## .|
++ |## ## ## .|
++ | ## ## ## .|
++ | ## ######### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ |#### ## ## .|
++ | ## ## ## .|
++ | ## ## ## ##.|
++ -&gt;| ## ## ## ##.|&lt;-
++ | #### #####.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6cd5 '法'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ |## ########## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | #############.|
++ | ## ## .|
++ |#### ## .|
++ | ## ## .|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ############# .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6ce8 '注'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## .|
++ | ## .|
++ | ############ .|
++ |## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ######### .|
++ | ## ## .|
++ |#### ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ##############.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6d4b '测'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ##..|
++ | ## ###### ##..|
++ | #### ## ##..|
++ | #### ######..|
++ |## ##########..|
++ | ## ##########..|
++ | ## ##########..|
++ | ############..|
++ | ############..|
++ | ## ##########..|
++ |#### ##########..|
++ | ## ## ##..|
++ | ## #### ##..|
++ -&gt;| ## ## ## ##..|&lt;-
++ | ## ## ####..|
++ | ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6d88 '消'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ...|
++ | ## ## ## ##...|
++ | ## #### ##...|
++ | ## ###### ...|
++ |## ## ...|
++ | ## ########...|
++ | ## #### ##...|
++ | #### ##...|
++ | ## ########...|
++ | ## ## ##...|
++ |#### ## ##...|
++ | ## ########...|
++ | ## ## ##...|
++ -&gt;| ## ## ##...|&lt;-
++ | ## ## ####...|
++ | ## ## ...|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6df7 '混'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ## ########## .|
++ | #### ## .|
++ | #### ## .|
++ |## ########## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ############ .|
++ | ## .|
++ | ## ## ## .|
++ |#### ## ## ##.|
++ | ## ########## .|
++ | ## ## ### .|
++ -&gt;| ## ## ## ##.|&lt;-
++ | ## ####### ##.|
++ | ### #####.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6e05 '清'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ############ .|
++ | ## .|
++ |## ######## .|
++ | ## ## .|
++ | ## ############.|
++ | ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ | ## ######## .|
++ |#### ## ## .|
++ | ## ######## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ## #### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6e08 '済'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## .|
++ | #############.|
++ | ## ## ## .|
++ |## ## ## .|
++ | ## ### .|
++ | ## ### ### .|
++ | ##### ###.|
++ | ## ## ## .|
++ | ## ####### .|
++ |#### ## ## .|
++ | ## ####### .|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ## ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6e2c '測'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ##.|
++ | ## ###### ##.|
++ | #### ## ##.|
++ | #### #### ##.|
++ |## ######## ##.|
++ | ## ## #### ##.|
++ | ## ## #### ##.|
++ | ########## ##.|
++ | #### #### ##.|
++ | ## ## #### ##.|
++ |#### ######## ##.|
++ | ## ##.|
++ | ## #### ##.|
++ -&gt;| ## ## ## ##.|&lt;-
++ | ## ## ## ####.|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6e38 '游'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | #############.|
++ |## ## ## .|
++ | ## ## ## .|
++ | ## ######### .|
++ | ## #### ## .|
++ | ## #### ## .|
++ | ## #### ## .|
++ |#### ##########.|
++ | ## #### ## .|
++ | ## ## ## ## .|
++ -&gt;| ## ## ## ## .|&lt;-
++ | #### ####### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6e90 '源'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ## ###########.|
++ | #### ## .|
++ | #### ## .|
++ |## ########## .|
++ | ## #### ## .|
++ | ## ########## .|
++ | ###### ## .|
++ | ############ .|
++ | ## #### ## ## .|
++ |#### ## ## .|
++ | ## ## ###### .|
++ | #### ## ## ## .|
++ -&gt;| ###### ## ##.|&lt;-
++ | ### #### .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6e96 '準'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## #### .|
++ | ## ## ## .|
++ |## ######### .|
++ | #### ## ## .|
++ | ########### .|
++ | ###### ## .|
++ |#### ######## .|
++ | ## ## ## .|
++ | ## ######### .|
++ | ## ## .|
++ | ## .|
++ |################.|
++ | ## .|
++ -&gt;| ## .|&lt;-
++ | ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x700f '瀏'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ##.|
++ | ## ####### ##.|
++ | #### #### ##.|
++ | #############.|
++ |## #### ######.|
++ | ## ### #######.|
++ | ## ## ####.|
++ | ## #### ####.|
++ | #### ## ####.|
++ | ##############.|
++ |#### ## ####.|
++ | ## ###### ####.|
++ | ## ## ## ##.|
++ -&gt;| ## ###### ##.|&lt;-
++ | ## #########.|
++ | #### ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7063 '灣'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ## ## .|
++ | #### ###### .|
++ | ###### ####.|
++ |## ## #### ## .|
++ | ## #### ####.|
++ | ## ############.|
++ | #### .|
++ | ##############.|
++ | ## .|
++ | ## ######### .|
++ |### ## .|
++ | ## ######### .|
++ | ## ## .|
++ -&gt;| ## ########## .|&lt;-
++ | ## ## .|
++ | #### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x70b9 '点'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ..|
++ | ## ..|
++ | ## ..|
++ | #########..|
++ | ## ..|
++ | ## ..|
++ | ########### ..|
++ | ## ## ..|
++ | ## ## ..|
++ | ## ## ..|
++ | ########### ..|
++ | ..|
++ | ## ## ## ## ..|
++ -&gt;| ## ## ## ##..|&lt;-
++ | ## ## ## ##..|
++ |## ##..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x70ba '為'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ..|
++ | ## ## ..|
++ | #### ..|
++ | ############ ..|
++ | ## ## ..|
++ | ## ## ..|
++ | ########## ..|
++ | ## ## ..|
++ | ## ## ..|
++ | ############..|
++ | ## ##..|
++ | ########## ##..|
++ | ## ######## ##..|
++ -&gt;|## ## ##..|&lt;-
++ | #### ..|
++ | ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7121 '無'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ..|
++ | ## ..|
++ | ############..|
++ | ########## ..|
++ | ## ######## ..|
++ | ######## ..|
++ | ##############..|
++ | ######## ..|
++ | ######## ..|
++ | ######## ..|
++ | ##############..|
++ | ..|
++ | ## ## ## ## ..|
++ -&gt;| ## ## ## ##..|&lt;-
++ | ## ## ## ##..|
++ |## ##..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7136 '然'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## #### .|
++ | ##### ## ## .|
++ | ## ## ## .|
++ | ### ##########.|
++ | ## #### ## .|
++ |#### ## #### .|
++ | #### #### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ##.|
++ | .|
++ -&gt;| ## ## ## ## .|&lt;-
++ | ## ## ## ## .|
++ |## ## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7167 '照'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ##############..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ | ## ## ## ####..|
++ | ######## ## ..|
++ | ## ## #######..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ | ###### #######..|
++ | ..|
++ -&gt;| ## ## ## ## ..|&lt;-
++ | ## ## ## ##..|
++ |## ## ## ##..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x719f '熟'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ |######## ## .|
++ | ## .|
++ | ############# .|
++ | ## ## ## ## .|
++ | ###### ## ## .|
++ | ### ## .|
++ | ###### ## ## .|
++ | ## ########.|
++ |################.|
++ | ## ## ###.|
++ | #### ## ##.|
++ | ## .|
++ -&gt;| ## ## ## ## .|&lt;-
++ | ## ## ## ## .|
++ |## ## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7247 '片'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## ..|
++ |. ## ## ..|
++ |. ## ## ..|
++ |. ## ## ..|
++ |. ## ## ..|
++ |. ############..|
++ |. ## ..|
++ |. ## ..|
++ |. ## ..|
++ |. ######### ..|
++ |. ## ## ..|
++ |. ## ## ..|
++ |. ## ## ..|
++ -&gt;|. ## ## ..|&lt;-
++ |. ## ## ..|
++ |.## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7248 '版'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## #### .|
++ | ## ## ##### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ############## .|
++ | ## #### ## .|
++ | ## #### ## .|
++ | ##### #### ## .|
++ | ## ## ## #### .|
++ | ## ## ## #### .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ -&gt;| ## #### #### .|&lt;-
++ | ## #### ## ## .|
++ |## ### ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7279 '特'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | #### ## .|
++ | #### ######## .|
++ | ###### ## .|
++ | #### ## .|
++ |## ## ##########.|
++ | ## ## .|
++ | #### ## .|
++ |##### #########.|
++ | #### ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## #### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x72b6 '状'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## ## .|
++ | #### ## .|
++ | ##############.|
++ | ## ## .|
++ | ## ## .|
++ | ### ## .|
++ | #### #### .|
++ |### ## #### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | #### ## .|
++ | ### ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x73fe '現'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ######## .|
++ |######### ## .|
++ | ## ## ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ############## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ######## .|
++ | ## #### .|
++ | #### ## ## .|
++ -&gt;|#### ## ## ##.|&lt;-
++ | ## ## ## ##.|
++ | ## ####.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7406 '理'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 14
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ######## .|
++ |######### ## ## .|
++ | ## ## ## ## .|
++ | ## ######## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ############## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ######## .|
++ | ## ## .|
++ | #### ## .|
++ -&gt;|#### ## .|&lt;-
++ | ## ##########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7455 '瑕'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ##########.|
++ |######## ## ##.|
++ | ## ## ## ##.|
++ | ## ## ## ##.|
++ | ## ##########.|
++ | ## ## .|
++ |######## ######.|
++ | ## ####### ##.|
++ | ## ## ## ##.|
++ | ## ## #### .|
++ | ############# .|
++ |#### ## ## .|
++ -&gt;| ## ## #### .|&lt;-
++ | ## ## ## .|
++ | ## ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x751a '甚'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ############## .|
++ | ## ## .|
++ | ## ## .|
++ | ######## .|
++ | ## ## .|
++ | ## ## .|
++ | ######## .|
++ | ## ## .|
++ | ## ## .|
++ |################.|
++ | ## ## ## .|
++ -&gt;| #### ## .|&lt;-
++ | ## .|
++ | ########### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x751f '生'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ############# .|
++ | ## ## .|
++ | ## ## .|
++ |## ## .|
++ | ## .|
++ | ############ .|
++ | ## .|
++ | ## .|
++ | ## .|
++ -&gt;| ## .|&lt;-
++ |################.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7522 '產'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ##############.|
++ | ## ## .|
++ | #### .|
++ | ## ## .|
++ | ##############.|
++ | ## ## .|
++ | ## ## ## .|
++ | ## ########## .|
++ | #### ## .|
++ | ### ## .|
++ | ## ######### .|
++ -&gt;| ## ## .|&lt;-
++ | ## ## .|
++ |## #############.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7528 '用'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ############...|
++ | ## ## ##...|
++ | ## ## ##...|
++ | ## ## ##...|
++ | ############...|
++ | ## ## ##...|
++ | ## ## ##...|
++ | ## ## ##...|
++ | ############...|
++ | ## ## ##...|
++ | ## ## ##...|
++ | ## ## ##...|
++ -&gt;| ## ## ##...|&lt;-
++ | ## ## ####...|
++ |## ## ...|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7531 '由'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 12 x 16
++ Advance: 17
++ Offset: 2 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## ...|
++ |.. ## ...|
++ |.. ## ...|
++ |.. ## ...|
++ |..############...|
++ |..## ## ##...|
++ |..## ## ##...|
++ |..## ## ##...|
++ |..## ## ##...|
++ |..############...|
++ |..## ## ##...|
++ |..## ## ##...|
++ |..## ## ##...|
++ -&gt;|..## ## ##...|&lt;-
++ |..############...|
++ |..## ##...|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7535 '电'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 16
++ Advance: 17
++ Offset: 2 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## .|
++ |.. ## .|
++ |.. ## .|
++ |..############ .|
++ |..## ## ## .|
++ |..## ## ## .|
++ |..## ## ## .|
++ |..############ .|
++ |..## ## ## .|
++ |..## ## ## .|
++ |..## ## ## .|
++ |..############ .|
++ |..## ## ####.|
++ -&gt;|.. ## ##.|&lt;-
++ |.. ## ##.|
++ |.. ########.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x753b '画'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |################.|
++ | .|
++ | .|
++ | ## ######## ## .|
++ | ## ## ## ## ## .|
++ | ## ## ## ## ## .|
++ | ## ######## ## .|
++ | ## ## ## ## ## .|
++ | ## ## ## ## ## .|
++ | ## ## ## ## ## .|
++ | ## ######## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ############## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x754c '界'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ########## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ########## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ########## .|
++ | #### .|
++ | ### ### .|
++ | ##### ##### .|
++ |### ## ## ###.|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7565 '略'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ |###### ###### .|
++ |###### ## ## .|
++ |######### ## .|
++ |####### #### .|
++ |###### ## .|
++ |###### #### .|
++ |###### ## ### .|
++ |######## ###.|
++ |############## .|
++ |###### ## ## .|
++ |## ## ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ####### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x756b '畫'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ############ .|
++ | ## ## .|
++ |################.|
++ | ## ## .|
++ | ############ .|
++ | ## .|
++ | ############## .|
++ | .|
++ | ############ .|
++ | ## ## ## .|
++ | ############ .|
++ | ## ## ## .|
++ -&gt;| ############ .|&lt;-
++ | .|
++ |################.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7570 '異'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ############ .|
++ | ## ## ## .|
++ | ############ .|
++ | ## ## ## .|
++ | ############ .|
++ | ## ## .|
++ | ## ## .|
++ | ############## .|
++ | ## ## .|
++ | ## ## .|
++ |################.|
++ | .|
++ -&gt;| ## ## .|&lt;-
++ | ## ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7576 '當'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ###############.|
++ | ## ##.|
++ |## ############ .|
++ | ## ## .|
++ | ## ## .|
++ | ########## .|
++ | .|
++ | ############ .|
++ | ## ## ## .|
++ | ############ .|
++ -&gt;| ## ## ## .|&lt;-
++ | ############ .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x75b5 '疵'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | #############.|
++ | ## .|
++ |## ## ## ## .|
++ | #### ## ## .|
++ | ######## ## ##.|
++ | ###### #### .|
++ | ############ .|
++ | ######## ## .|
++ |## ###### ## .|
++ | ###### ## .|
++ | ## #### ## ##.|
++ -&gt;| ## ######## ##.|&lt;-
++ | ####### ## ##.|
++ |## ## ####.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x767a '発'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ########### .|
++ | ## ## ## .|
++ | ## ## ## ## .|
++ | #### ### .|
++ | ## ## .|
++ | ## ## .|
++ |################.|
++ | ## ## .|
++ | ## ## .|
++ | ############## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ## ## .|
++ | ### ##### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x767b '登'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ######## ## .|
++ | ###### ## .|
++ | ## ## ## ## .|
++ | #### #### .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ |################.|
++ | ## ## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ############## .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x767c '發'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ########### .|
++ | ## ## ## .|
++ | #### #### .|
++ | ## ## .|
++ | ##### ###### .|
++ |### ## ## #####.|
++ | ## ## ## .|
++ | ####### ### .|
++ | ## .|
++ | ## ####### .|
++ | ###### ## .|
++ | ## ##### .|
++ -&gt;| ## ## .|&lt;-
++ | #### #### .|
++ | ## ### ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x767d '白'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 12 x 16
++ Advance: 17
++ Offset: 2 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## ...|
++ |.. ## ...|
++ |.. ## ...|
++ |..############...|
++ |..## ##...|
++ |..## ##...|
++ |..## ##...|
++ |..## ##...|
++ |..############...|
++ |..## ##...|
++ |..## ##...|
++ |..## ##...|
++ |..## ##...|
++ -&gt;|..## ##...|&lt;-
++ |..############...|
++ |..## ##...|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7684 '的'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## ## ..|
++ |. ## ## ..|
++ |. ## ## ..|
++ |.####### ######..|
++ |.## #### ##..|
++ |.## #### ##..|
++ |.## ### ##..|
++ |.## ## ## ##..|
++ |.####### ## ##..|
++ |.## ## ## ##..|
++ |.## ## ##..|
++ |.## ## ##..|
++ |.## ## ##..|
++ -&gt;|.####### ##..|&lt;-
++ |.## ## #### ..|
++ |. ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x76d8 '盘'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ########## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ |################.|
++ | ## ## .|
++ | ## ## ## .|
++ | ## ###### .|
++ | ## ## .|
++ | ############ .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ -&gt;| ## ## ## ## .|&lt;-
++ |################.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x76e3 '監'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 14
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ####### ## .|
++ | ## ## ## .|
++ | ####### ######.|
++ | ## #### .|
++ | ########### .|
++ | ## ## ## ## .|
++ | ####### ## .|
++ | .|
++ | ############ .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ -&gt;| ## ## ## ## .|&lt;-
++ |################.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x76e4 '盤'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ##### .|
++ | ###### ## ## .|
++ | ## ## ## ## .|
++ | ######## ###.|
++ |############## .|
++ | ## ## ## ## .|
++ | ###### #### .|
++ | ## ## ## .|
++ | ## #### #### .|
++ |## ## ## ###.|
++ | ############ .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ -&gt;| ## ## ## ## .|&lt;-
++ |################.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x76ee '目'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 12 x 15
++ Advance: 17
++ Offset: 2 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |..############...|
++ |..## ##...|
++ |..## ##...|
++ |..## ##...|
++ |..############...|
++ |..## ##...|
++ |..## ##...|
++ |..## ##...|
++ |..############...|
++ |..## ##...|
++ |..## ##...|
++ |..## ##...|
++ -&gt;|..## ##...|&lt;-
++ |..############...|
++ |..## ##...|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x76f4 '直'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ############## .|
++ | ## .|
++ | ########## .|
++ | ## ## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ |################.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x76f8 '相'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ..|
++ | ## #######..|
++ | ## ## ##..|
++ | ## ## ##..|
++ |########## ##..|
++ | ## #######..|
++ | ### ## ##..|
++ | #### ## ##..|
++ | ######## ##..|
++ | #############..|
++ | ## ## ## ##..|
++ |## ## ## ##..|
++ | ## ## ##..|
++ -&gt;| ## ## ##..|&lt;-
++ | ## #######..|
++ | ## ## ##..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x770b '看'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ###### .|
++ | ######## .|
++ | ## .|
++ | ############ .|
++ | ## .|
++ |################.|
++ | ## .|
++ | ## .|
++ | ########## .|
++ | #### ## .|
++ | ## ######### .|
++ |## ## ## .|
++ | ######### .|
++ -&gt;| ## ## .|&lt;-
++ | ######### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7720 '眠'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 15
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. ######## .|
++ |.######## ## .|
++ |.## #### ## .|
++ |.## #### ## .|
++ |.############## .|
++ |.## #### ## .|
++ |.## #### ## .|
++ |.###############.|
++ |.## #### ## .|
++ |.## #### ## .|
++ |.## #### ## .|
++ |.######## ## ##.|
++ -&gt;|.## ###### ####.|&lt;-
++ |. ### ###.|
++ |. ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x77e2 '矢'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ########### .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## .|
++ |################.|
++ | ## .|
++ | #### .|
++ | #### .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ### ### .|
++ |### ###.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x77e5 '知'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ..|
++ | ## ..|
++ | ## ######..|
++ | ####### ## ##..|
++ | ## ## ## ##..|
++ |## ## ## ##..|
++ | ## ## ##..|
++ | ## ## ##..|
++ |########### ##..|
++ | ## ## ##..|
++ | #### ## ##..|
++ | #### ## ##..|
++ | ## ## ######..|
++ -&gt;| ## ## ## ##..|&lt;-
++ | ## ## ..|
++ |## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x77ed '短'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## #########.|
++ | ##### .|
++ | #### .|
++ |## ## ####### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ |########## ## .|
++ | ## ####### .|
++ | ## .|
++ | ## ## ## .|
++ | #### ## ## .|
++ | ## ## ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## #########.|
++ |## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7801 '码'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ####### .|
++ |####### ## .|
++ | ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ##### ## ## .|
++ | ### ## ########.|
++ | ### ## ##.|
++ |#### ## ##.|
++ | ## ## ##.|
++ | ## ###########.|
++ | ##### ##.|
++ -&gt;| ## ## ##.|&lt;-
++ | ## #### .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x786c '硬'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | #########.|
++ |####### ## .|
++ | ## ## .|
++ | ## ######## .|
++ | ## ## ## ## .|
++ | ####### ## ## .|
++ | ### ########## .|
++ | ### #### ## ## .|
++ |#### #### ## ## .|
++ | ## ########## .|
++ | ## #### ## .|
++ | ##### #### .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ##### .|
++ | ### ####.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x786e '确'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ |####### ###### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ##########.|
++ | ##### ## ## ##.|
++ | ### ## ## ## ##.|
++ | ### ## ########.|
++ |#### ## ## ## ##.|
++ | ## ## ## ## ##.|
++ | ## ## ########.|
++ | ##### ## ## ##.|
++ -&gt;| ## #### ## ##.|&lt;-
++ | ## ## ####.|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x789f '碟'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | #### ## .|
++ |########## ## .|
++ | ## ###########.|
++ | ## #### ## .|
++ | ## #### ## .|
++ | ############ .|
++ |### #### .|
++ | ## ########### .|
++ | ## ## ## .|
++ | ## ############.|
++ | ## ## #### .|
++ | ##### ###### .|
++ -&gt;| ## ## ## ## .|&lt;-
++ | ### ## ###.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x78b0 '碰'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ |###### .|
++ | ## ######### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ##### ## ## ##.|
++ | ## ### ## ## ##.|
++ |### ###### #### .|
++ | ## ###### ### .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ##### ## ## .|
++ -&gt;| ## ## ## ## .|&lt;-
++ | ###########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x78ba '確'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ |################.|
++ | ## ###### ##.|
++ | ## ## ## .|
++ | ## #########.|
++ | ##### ## ## .|
++ | ## ##### ## .|
++ |### ############.|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## #########.|
++ | ##### ## ## .|
++ -&gt;| ## ## ## ## .|&lt;-
++ | #########.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x78bc '碼'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | #########.|
++ |###### ## ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ | ## ######## .|
++ | ##### ## ## .|
++ | ## ## ## ## .|
++ |### ## #########.|
++ | ## ## ##.|
++ | ## ############.|
++ | ## ############.|
++ | ###############.|
++ -&gt;| ## #### ##.|&lt;-
++ | #### .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x78c1 '磁'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ |##### ## ## .|
++ | ## ###########.|
++ | ## ## ## .|
++ | ## ## ## .|
++ | #### ## ## .|
++ |##### #### #### .|
++ | ###### #### ## .|
++ | ######## #### .|
++ | #### ## ## .|
++ | #### ## ## .|
++ | #### ## ## .|
++ -&gt;| ###### #### ## .|&lt;-
++ | ########## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x793a '示'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ############ .|
++ | .|
++ | .|
++ | .|
++ | .|
++ |################.|
++ | ## .|
++ | ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ##.|
++ -&gt;|## ## ##.|&lt;-
++ | #### .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7981 '禁'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ############## .|
++ | ## ## .|
++ | #### #### .|
++ | ############ .|
++ |### ## ## ###.|
++ | .|
++ | ############ .|
++ | .|
++ | .|
++ |################.|
++ | ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## #### ## .|
++ | ## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x79bb '离'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ |################.|
++ | .|
++ | #### #### .|
++ | ## #### ## .|
++ | #### #### .|
++ | ########## .|
++ | ## .|
++ | ############## .|
++ | ## ## ## .|
++ | ## ## ## ## .|
++ | ## ######## ## .|
++ -&gt;| ## ## ## ## .|&lt;-
++ | ## #### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x79f0 '称'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | #### ## .|
++ |##### ## .|
++ | ## ########.|
++ | ## ## ##.|
++ |######### ## .|
++ | ## ## ## .|
++ | ### ## .|
++ | #### ###### .|
++ | ###### #### ## .|
++ | #### ## ## ## .|
++ |## ## ## ## ##.|
++ | ## ## ## ##.|
++ -&gt;| ## ## .|&lt;-
++ | ## #### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x79fb '移'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | #### ## .|
++ |##### ###### .|
++ | ## ## ## .|
++ | ## #### ## .|
++ |####### ### .|
++ | ## ## .|
++ | ### ## ## .|
++ | #### ### ## .|
++ | ###### ######.|
++ | ###### ## ##.|
++ |## ## ##### ## .|
++ | ## ### .|
++ -&gt;| ## ## .|&lt;-
++ | ## ### .|
++ | ## ### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7a0b '程'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ########### .|
++ |##### ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ |############### .|
++ | ## .|
++ | #### .|
++ | ############# .|
++ | ###### ## .|
++ | #### ## .|
++ |## ## ######## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## ## .|
++ | #############.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7a0d '稍'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ..|
++ | ###### ## ##..|
++ |##### #### ##..|
++ | ## ###### ..|
++ | ## ## ..|
++ |###############..|
++ | ## ## ##..|
++ | ### ## ##..|
++ | #### ########..|
++ | ######## ##..|
++ | ######## ##..|
++ |## ## ########..|
++ | ## ## ##..|
++ -&gt;| ## ## ##..|&lt;-
++ | ## ## ####..|
++ | ## ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7a2e '種'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | #### ##### .|
++ |##### ##### .|
++ | ## ## .|
++ | ## ##########.|
++ |####### ## .|
++ | ## ######## .|
++ | ### ## ## ## .|
++ | #### ######## .|
++ | ######## ## ## .|
++ | ############## .|
++ |## ## ## .|
++ | ## ######## .|
++ -&gt;| ## ## .|&lt;-
++ | ## ##########.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7a31 '稱'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## #####.|
++ | ######### .|
++ |##### ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## .|
++ |####### ## .|
++ | ## ######## .|
++ | #### ## ## ## .|
++ | ####### ## ## .|
++ | ############## .|
++ | #### ## ## ## .|
++ |## ## ## ## ## .|
++ | ## ##########.|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ## #### .|
++ | ## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7a7a '空'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ###############.|
++ | ## ##.|
++ |## ## ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | .|
++ | ########## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ -&gt;| ## .|&lt;-
++ | ############## .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7acb '立'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ## .|
++ | .|
++ | ############## .|
++ | .|
++ | ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| .|&lt;-
++ |################.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7ad9 '站'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ####### ## .|
++ | ######.|
++ | ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ########## .|
++ | #### ## ## .|
++ | #### ## ## .|
++ | ##### ## .|
++ |##### ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ######## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7aef '端'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ |######### ## ## .|
++ | ######## .|
++ | ## .|
++ |## ############.|
++ |## ## ## .|
++ | ## ## ## .|
++ | ## ## ######## .|
++ | #### ######## .|
++ | #### ######## .|
++ | ############ .|
++ -&gt;|#### ######## .|&lt;-
++ | ## ######## .|
++ | ## ### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7b2c '第'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ##############.|
++ | ## ## ## ## .|
++ |## #### ## .|
++ | ############ .|
++ | ## ## .|
++ | ## ## .|
++ | ############ .|
++ | ## ## .|
++ | ## ## .|
++ | ############# .|
++ | ### ## .|
++ | #### ## .|
++ -&gt;| ### ## #### .|&lt;-
++ |#### ## ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7b46 '筆'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ##############.|
++ | ## ## ## ## .|
++ |## #### ## .|
++ | ########### .|
++ | ## ## .|
++ |################.|
++ | ## ## .|
++ | ########### .|
++ | ## .|
++ | ############ .|
++ | ## .|
++ -&gt;|################.|&lt;-
++ | ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7b49 '等'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ##############.|
++ | ## ## ## ## .|
++ |## #### ## .|
++ | ## .|
++ | ############ .|
++ | ## .|
++ | ## .|
++ |################.|
++ | .|
++ | ## .|
++ | ############## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## #### .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7b56 '策'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ##############.|
++ | ## ## ## ## .|
++ |## #### ## .|
++ | ## .|
++ |################.|
++ | ## .|
++ | ############ .|
++ | ## ## ## .|
++ | ## #### ## .|
++ | ## ######### .|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ### ## ### .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7b80 '简'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ##############.|
++ | ## ## ## ## .|
++ |## #### ## .|
++ | ## .|
++ | ########## .|
++ | ## ## .|
++ | ## ###### ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ###### ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ -&gt;| ## ###### ## .|&lt;-
++ | ## ## .|
++ | ## ### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7b97 '算'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ###### #######.|
++ | ## ## ## ## .|
++ |## .|
++ | ############ .|
++ | ## ## .|
++ | ############ .|
++ | ## ## .|
++ | ############ .|
++ | ## ## .|
++ | ############ .|
++ | ## ## .|
++ |################.|
++ -&gt;| ## ## .|&lt;-
++ | ## ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7ba1 '管'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ##############.|
++ | ## ## ## ## .|
++ |## #### ## .|
++ | ## .|
++ | ###############.|
++ | ## ##.|
++ |## ######### ## .|
++ | ## ## .|
++ | ######### .|
++ | ## .|
++ | ########## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ########## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7bad '箭'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ##############.|
++ | ## ## ## ## .|
++ |## #### ## .|
++ | ## ## .|
++ | ## ## .|
++ |################.|
++ | .|
++ | ###### ## ## .|
++ | ## ## ## ## .|
++ | ###### ## ## .|
++ | ## ## ## ## .|
++ | ###### ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ###### #### .|
++ | ## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7c21 '簡'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ##############.|
++ | ## ## ## ## .|
++ |## #### ## .|
++ | ###### ###### .|
++ | ## ## ## ## .|
++ | ###### ###### .|
++ | ## ## ## ## .|
++ | ###### ###### .|
++ | ## ## .|
++ | ## ######## ## .|
++ | ## ## ## ## .|
++ | ## ######## ## .|
++ -&gt;| ## ## ## ## .|&lt;-
++ | ## ######## ## .|
++ | ## ### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7c7b '类'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## .|
++ | ############## .|
++ | ###### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ### ## .|
++ | ## .|
++ |################.|
++ | #### .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ### ### .|
++ |### ###.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7cfb '系'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ###### ..|
++ |. ####### ..|
++ |. ## ..|
++ |. ## ## ..|
++ |. ## ## ..|
++ |. ######## ..|
++ |. ## ..|
++ |. ### ## ..|
++ |. ### ## ..|
++ |.##############..|
++ |. ## ##..|
++ |. ## ## ## ..|
++ |. ## ## ## ..|
++ -&gt;|. ## ## ## ..|&lt;-
++ |.## #### ##..|
++ |. ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7d20 '素'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ############ .|
++ | ## .|
++ | ########## .|
++ | ## .|
++ |################.|
++ | ## .|
++ | ## ## .|
++ | ######## .|
++ | ### .|
++ | ### ## .|
++ | ############ .|
++ | ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## #### ## .|
++ | ## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7d22 '索'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ############ .|
++ | ## .|
++ | ## .|
++ | ###############.|
++ | ## ## ##.|
++ |## ## ## ## .|
++ | ######## .|
++ | ### .|
++ | ### ## .|
++ | ############ .|
++ | ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## #### ## .|
++ | ## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7d30 '細'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ..|
++ | ## ..|
++ | ## ########..|
++ | ## #### ## ##..|
++ | ## #### ## ##..|
++ |###### ## ## ##..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ | ## ## ########..|
++ |######### ## ##..|
++ | #### ## ##..|
++ | ## ## ##..|
++ | ######## ## ##..|
++ -&gt;| ######## ## ##..|&lt;-
++ |## ########..|
++ | ## ##..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7d42 '終'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ###### .|
++ | #### ## ## .|
++ | ## ## ### ## .|
++ |##### ## #### .|
++ | ## ## .|
++ | ## #### .|
++ | ## ## ## ## .|
++ |######### ###.|
++ | ## ### .|
++ | ## .|
++ |###### ## .|
++ -&gt;|###### ### .|&lt;-
++ |## ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7d44 '組'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ####### .|
++ | ## ## ## .|
++ | ## #### ## .|
++ | ## #### ## .|
++ |###### ####### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## ## .|
++ |############## .|
++ | #### ## .|
++ | ## ## .|
++ |###### ## ## .|
++ -&gt;|###### ## ## .|&lt;-
++ |## ###########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7d4c '経'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## #### .|
++ |###### ## .|
++ | ## #### .|
++ | ## ## ## .|
++ | ## ##### ## ###.|
++ |####### ## .|
++ | ########## .|
++ | ## .|
++ | ###### ## .|
++ -&gt;| ###### ## .|&lt;-
++ |## ##########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7d50 '結'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ##############.|
++ | ## ## ## .|
++ |##### ## .|
++ | ## ######## .|
++ | ## .|
++ | ## ## .|
++ |############### .|
++ | #### ## .|
++ | ## ## .|
++ | ######## ## .|
++ -&gt;| ######## ## .|&lt;-
++ |## ######## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7d55 '絕'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ######### .|
++ | ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ |###### ## #### .|
++ | ## ## ## .|
++ | ## ######## .|
++ | ## ## ## ## ## .|
++ |######### ## ## .|
++ | ########## .|
++ | ## .|
++ | ######## ##.|
++ -&gt;| ######## ##.|&lt;-
++ |## ########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7d66 '給'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## #### .|
++ | ## ## ## ## .|
++ | ## #### ## .|
++ |######## ##.|
++ | ## ######## .|
++ | ## .|
++ | ## ## .|
++ |############### .|
++ | #### ## .|
++ | ## ## .|
++ | ######## ## .|
++ -&gt;| ######## ## .|&lt;-
++ |## ######## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7d71 '統'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ##############.|
++ | ## ## ## .|
++ |##### ## ## .|
++ | ## ## ## .|
++ | ## ##########.|
++ | ## ## ## ## ##.|
++ |####### ## ## .|
++ | ## ## ## .|
++ | ## ## .|
++ | ######## ## ##.|
++ -&gt;| ######## ## ##.|&lt;-
++ |## ## ####.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7d93 '經'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## #########.|
++ | ## .|
++ | #### ## ## ##.|
++ | ## ## ## ## ## .|
++ |##### ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ##.|
++ | ## ## .|
++ |################.|
++ | ## ## .|
++ | ## .|
++ | ###### ## .|
++ -&gt;| ###### ## .|&lt;-
++ |## ##########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7d9a '続'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ##########.|
++ | #### ## .|
++ | ## ## ######## .|
++ |##### .|
++ | ## ##########.|
++ | ## ## ##.|
++ | ## ### ## .|
++ |###### ## ## .|
++ | ## ## ## .|
++ | ## ## .|
++ |###### ## ## .|
++ -&gt;|###### ## ## ##.|&lt;-
++ |## ## ## ##.|
++ | ## ####.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7dad '維'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## #### .|
++ | ## ## ## .|
++ | ## ## .|
++ | ## ###########.|
++ | ## #### ## .|
++ |######### ## .|
++ | ############ .|
++ | ## ## ## .|
++ | ## ## ## ## .|
++ |############### .|
++ | #### ## .|
++ | ## ## .|
++ | ######## ## .|
++ -&gt;| ###############.|&lt;-
++ |## ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7db2 '網'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## #########.|
++ | ## ## ##.|
++ | ## ### ####.|
++ | ## ## ###### ##.|
++ |###### #########.|
++ | ## ## ## ##.|
++ | ## ## ## ##.|
++ | ## #########.|
++ | ## ## #### ##.|
++ |########### ##.|
++ | #########.|
++ | ######## ##.|
++ -&gt;| ######## ##.|&lt;-
++ | ######## ####.|
++ |## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7dda '線'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ######## .|
++ | #### ## ## .|
++ | ## ## ######## .|
++ |##### ## ## .|
++ | ## ######## .|
++ | ## ## .|
++ | ## ## ### ##.|
++ |############### .|
++ | ## ###### .|
++ | ## #### .|
++ |###### ## ## ## .|
++ -&gt;|######## ## ## .|&lt;-
++ |## ## #### ##.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7de8 '編'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## #########.|
++ | ## #### ##.|
++ | ## #### ##.|
++ |###### #########.|
++ | ## ## .|
++ | ## ## .|
++ | ## ## #########.|
++ |################.|
++ | ###########.|
++ | ##########.|
++ |################.|
++ -&gt;|################.|&lt;-
++ |## ## #### ##.|
++ | ## ###.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7df4 '練'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ##########.|
++ | ## ## ## .|
++ | ## ########## .|
++ |###### ## ## ## .|
++ | ## ######## .|
++ | ## ######## .|
++ | ## ## ## ## ## .|
++ |############### .|
++ | ## ## .|
++ | #### .|
++ | ###### ###### .|
++ -&gt;| ######## ## ## .|&lt;-
++ |## ## ## ##.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7e2e '縮'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ##########.|
++ | ###### ##.|
++ | ## ## ## .|
++ |##### ########.|
++ | ## ## ## .|
++ | ## ### ## .|
++ | ## ########### .|
++ |###### #### ## .|
++ | ## #### ## .|
++ | ######## .|
++ |###### #### ## .|
++ -&gt;|###### #### ## .|&lt;-
++ |## ######## .|
++ | #### ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7e41 '繁'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ####### ## .|
++ | ## ######.|
++ |######## ## ## .|
++ | ############ .|
++ |######### #### .|
++ | ## #### ## .|
++ | ######## #### .|
++ | ## ## ###.|
++ | ## ## .|
++ | ###### .|
++ | ## ## .|
++ | ############ .|
++ -&gt;| ## ## .|&lt;-
++ | ###### ## .|
++ | ## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7e7c '繼'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ## .|
++ | ## #### ## .|
++ | ## ##########.|
++ | ###### ## ####.|
++ | ## ######## ## .|
++ |##### ##########.|
++ | ## ## ## ##.|
++ | ## ##########.|
++ | ## #### ## ## .|
++ |########## ## .|
++ | ############.|
++ | ## ## ####.|
++ |############ ## .|
++ -&gt;|################.|&lt;-
++ |## ## ## ##.|
++ | ##########.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7e8c '續'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ##########.|
++ | ## ## .|
++ | #### ######## .|
++ | ## ## .|
++ |##### ##########.|
++ | ## ## #### ##.|
++ | ## ##########.|
++ | ## ## ## ## .|
++ |############### .|
++ | #### ## .|
++ | ######## .|
++ | ######## ## .|
++ -&gt;| ############## .|&lt;-
++ |## ## ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7edc '络'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ###### .|
++ | ## ## ## .|
++ | ## ##### ## .|
++ |####### #### .|
++ | ## ## .|
++ | ## #### .|
++ | ## ## ### .|
++ |######## ###.|
++ | ## ######### .|
++ | ## ## .|
++ | ### ## ## .|
++ -&gt;|#### ## ## .|&lt;-
++ | ## ####### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7edf '统'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ##########.|
++ | ## ## ## .|
++ |###### ## ## .|
++ | ## ## ## .|
++ | ## ##########.|
++ | ## ## ## ##.|
++ |###### ## ## .|
++ | ## ## ## .|
++ | ## ## .|
++ | ### ## ## ##.|
++ -&gt;|#### ## ## ##.|&lt;-
++ | ## ## ####.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7ee7 '继'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ### ## ## .|
++ | ## ########## .|
++ |##### ## ## .|
++ | ## ######### .|
++ | ## ## ## .|
++ | ## ## #### .|
++ |############## .|
++ | ## ### ## ## .|
++ | ## ## .|
++ | ##### ## .|
++ -&gt;|#### ## ## .|&lt;-
++ | ## ##########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7eed '续'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ |################.|
++ | ## ##.|
++ | ## ## #### .|
++ | ## #### .|
++ |######### ## .|
++ | ## ## ## .|
++ | ##########.|
++ | #### #### .|
++ -&gt;|#### ## ## .|&lt;-
++ | ## ## ##.|
++ | ### ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7f51 '网'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 15
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.##############..|
++ |.## ##..|
++ |.## ##..|
++ |.## ## ####..|
++ |.#### #### ####..|
++ |.## #### ######..|
++ |.## ## ## ##..|
++ |.## ## ## ##..|
++ |.## #### ######..|
++ |.## #### ######..|
++ |.#### #### ####..|
++ |.### ## ##..|
++ -&gt;|.## ##..|&lt;-
++ |.## ####..|
++ |.## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7f69 '罩'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ############## .|
++ | ## ## ## ## .|
++ | ############## .|
++ | ## .|
++ | ######## .|
++ | ## .|
++ | ############ .|
++ | ## ## .|
++ | ############ .|
++ | ## ## .|
++ | ############ .|
++ | ## .|
++ -&gt;|################.|&lt;-
++ | ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7f6e '置'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ############## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ############## .|
++ | ## .|
++ |################.|
++ | ## .|
++ | ########## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ -&gt;| ########## .|&lt;-
++ | ## ## .|
++ |################.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7fa9 '義'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ############## .|
++ | ## .|
++ | ############ .|
++ | ## .|
++ |################.|
++ | ## ## .|
++ | ##### #### .|
++ | ## ## ## .|
++ |################.|
++ | ## ## ## .|
++ | #### #### .|
++ -&gt;| ##### ## ## .|&lt;-
++ | ## ###### .|
++ | ### ### ### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7ffb '翻'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | #### ..|
++ |##### ########..|
++ |## ## ## ## ##..|
++ | ###### ## ##..|
++ |###############..|
++ | #### ### ###..|
++ | ###### ## ##..|
++ |## ## ## ##..|
++ | ###### ## ###..|
++ | ###### #######..|
++ | ########### ##..|
++ | ###### ## ##..|
++ | ###### ## ##..|
++ -&gt;| ###### ## ##..|&lt;-
++ | ##############..|
++ | ## ## ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8003 '考'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## .|
++ | ########### .|
++ | ## ## .|
++ | ## ## .|
++ |################.|
++ | ## .|
++ | ## .|
++ | ########## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ######## .|
++ |## ## .|
++ -&gt;| ## .|&lt;-
++ | #### .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8005 '者'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## .|
++ | ########### .|
++ | ## ## .|
++ | ## ## .|
++ |################.|
++ | ## .|
++ | ## .|
++ | ######### .|
++ | ### ## .|
++ | #### ## .|
++ | ## ######### .|
++ |## ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ######### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x800c '而'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 15
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.##############..|
++ |. ## ..|
++ |. ## ..|
++ |. ## ..|
++ |. ############ ..|
++ |. ## ## ## ## ..|
++ |. ## ## ## ## ..|
++ |. ## ## ## ## ..|
++ |. ## ## ## ## ..|
++ |. ## ## ## ## ..|
++ |. ## ## ## ## ..|
++ |. ## ## ## ## ..|
++ -&gt;|. ## ## ## ## ..|&lt;-
++ |. ## #### ..|
++ |. ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8010 '耐'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ |########## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ########.|
++ | ######## ## .|
++ | ######## ## .|
++ | ######## ## .|
++ | ########## ## .|
++ | ######## #### .|
++ | ######## #### .|
++ | ######## ## .|
++ | ######## ## .|
++ -&gt;| ######## ## .|&lt;-
++ | ## ## #### .|
++ | ## ### ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x806f '聯'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ |########### ####.|
++ | ## #### #### ##.|
++ | ## ###### #### .|
++ | ##### ## ## .|
++ | ## #### #### ##.|
++ | ## ############.|
++ | ##### ## ##.|
++ | ## ## ## ## .|
++ | ## ###### ## ##.|
++ | ## ###### ## ##.|
++ | ######### #####.|
++ |### ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ## ## .|
++ | ## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x80fd '能'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ |############# .|
++ | #### .|
++ | ## ##.|
++ | ####### ## ##.|
++ | ## ## ######.|
++ | ## ## .|
++ | ####### ## ## .|
++ | ## ## ## ## .|
++ | ## ## #### .|
++ | ####### ## .|
++ -&gt;| ## ## ## ##.|&lt;-
++ | ## #### ## ##.|
++ | ## ## ######.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8166 '腦'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ##.|
++ | ##### ## ## ## .|
++ | ## #### ## ## .|
++ | ## ## ## ## ## .|
++ | ## ## ## ## ##.|
++ | ##### ## .|
++ | ## ## ## .|
++ | ## ############.|
++ | ## #### ##.|
++ | ######### ####.|
++ | ## #### #### ##.|
++ | ## #### ## ##.|
++ | ## #### #### ##.|
++ -&gt;| ## ###### ####.|&lt;-
++ | ## ############.|
++ |## ##### ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x81e8 '臨'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## .|
++ |.####### ## .|
++ |.## ## #######.|
++ |.## ## ## .|
++ |.## ## ## .|
++ |.####### ###### .|
++ |.## ## ## ## .|
++ |.## ## ## ## .|
++ |.## ## ###### .|
++ |.####### .|
++ |.## ## ########.|
++ |.## ## ########.|
++ |.## ## ########.|
++ -&gt;|.## ## ########.|&lt;-
++ |.###############.|
++ |. ########.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x81ea '自'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 10 x 16
++ Advance: 17
++ Offset: 3 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |... ## ....|
++ |... ## ....|
++ |... ## ....|
++ |...##########....|
++ |...## ##....|
++ |...## ##....|
++ |...## ##....|
++ |...##########....|
++ |...## ##....|
++ |...## ##....|
++ |...##########....|
++ |...## ##....|
++ |...## ##....|
++ -&gt;|...## ##....|&lt;-
++ |...##########....|
++ |...## ##....|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x81f3 '至'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 14
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ############## .|
++ | ## .|
++ | ## .|
++ | ## ## .|
++ | ## ## .|
++ | ############ .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ############ .|
++ | ## .|
++ | ## .|
++ -&gt;| ## .|&lt;-
++ |################.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8207 '與'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | #### .|
++ | ### ## #### .|
++ | ## #### ## .|
++ | ## ## ## .|
++ | ###### #### .|
++ | ## #### ## .|
++ | ## ## ## .|
++ | ############ .|
++ | ## #### ## .|
++ | ## #### ## .|
++ |################.|
++ | .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x820a '舊'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ |################.|
++ | ## ## ## .|
++ | ############ .|
++ | ### ## .|
++ | ############# .|
++ |## ## ## .|
++ | ########### .|
++ | ## ## .|
++ | ############ .|
++ | ## .|
++ | #### ##### .|
++ | ## ## .|
++ -&gt;| ##### ##### .|&lt;-
++ | ## ## .|
++ | ########### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x822c '般'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ##### .|
++ | ###### ## ## .|
++ | ## ## ## ## .|
++ | ### ## ## ## .|
++ | ######## ###.|
++ | ###### .|
++ |############### .|
++ | ## ## ## ## .|
++ | ### ## ## ## .|
++ | ###### #### .|
++ | ###### #### .|
++ | ## ## ## .|
++ -&gt;| ## ## #### .|&lt;-
++ | ## #### ## ## .|
++ |## ##### ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x82e5 '若'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ |################.|
++ | ## ## .|
++ | #### ## .|
++ | ## .|
++ |################.|
++ | ## .|
++ | ## .|
++ | ########## .|
++ | #### ## .|
++ | ## ## ## .|
++ |## ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ######### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x83dc '菜'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ |################.|
++ | ## ## .|
++ | ## .|
++ | ###### .|
++ | ####### .|
++ | ## ## ## .|
++ | ## ## .|
++ | ## .|
++ | ############## .|
++ | ###### .|
++ | ## ## ## .|
++ -&gt;| ### ## ### .|&lt;-
++ |### ## ###.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8655 '處'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ####### .|
++ | ## .|
++ | ##############.|
++ | ## ## ##.|
++ | ## ###### .|
++ | ####### ## .|
++ | ## ####### .|
++ | ## ## .|
++ | ## ## #### .|
++ | ## ######### .|
++ | #### ########.|
++ | ####### ######.|
++ -&gt;| ## ## ## ###.|&lt;-
++ | ## ##### .|
++ |## ### #######.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x865f '號'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ##### ######.|
++ | ## ## ## .|
++ | ## ## #########.|
++ | ## ## ## ## ##.|
++ | ##### ## #### .|
++ | ##### .|
++ |######### ## ##.|
++ | ## ## #####.|
++ | ## ## .|
++ | ##### ####### .|
++ | ## #### ## .|
++ | ## #### ## .|
++ -&gt;| #### ## ####.|&lt;-
++ | #### ## ## ####.|
++ | ## ## ## ###.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x87a2 '螢'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ########## ## .|
++ | ## ##### #### .|
++ | #### #### .|
++ | ## #### ## .|
++ | ###############.|
++ | ## ## ##.|
++ |## ## ## .|
++ | ########## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ########## .|
++ | ## .|
++ -&gt;| ## ## .|&lt;-
++ | ############## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x884c '行'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ######## .|
++ | ## .|
++ | ## .|
++ | ## ## .|
++ | ## .|
++ | ## ##########.|
++ | ### ## .|
++ | #### ## .|
++ |## ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## #### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8868 '表'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ############## .|
++ | ## .|
++ | ## .|
++ | ############ .|
++ | ## .|
++ | ## .|
++ |################.|
++ | #### .|
++ | ## ## ## .|
++ | ### #### .|
++ | #### ## .|
++ -&gt;|### ## ## ### .|&lt;-
++ | #### ###.|
++ | ### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x88ab '被'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## .|
++ |###### #########.|
++ | ## ## ## ##.|
++ | ## ## #### .|
++ | ###### ## .|
++ | #### ######## .|
++ | ########## ## .|
++ |## ## #### ## .|
++ | ## ## #### .|
++ | ## ## #### .|
++ | ## ## ## .|
++ -&gt;| ## ## #### .|&lt;-
++ | ## ## ## ## .|
++ | #### ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x88c5 '装'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## ## .|
++ | ##############.|
++ | ## ## .|
++ | ### ## .|
++ | #### ## .|
++ |### ## ######## .|
++ | #### .|
++ | ## .|
++ |################.|
++ | #### .|
++ | ### ## ## .|
++ | ##### #### .|
++ -&gt;|### #### ### .|&lt;-
++ | ### ####.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x88dd '裝'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ##### ## .|
++ | ########## .|
++ |####### ## .|
++ | ## ## ## .|
++ | ## ## ###### .|
++ | ## ### .|
++ | ## .|
++ |################.|
++ | #### .|
++ | ### ## ## .|
++ | ##### #### .|
++ -&gt;|### #### ### .|&lt;-
++ | ### ####.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8981 '要'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 15
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.##############..|
++ |. ## ## ..|
++ |. ## ## ..|
++ |. ############ ..|
++ |. ## ## ## ## ..|
++ |. ## ## ## ## ..|
++ |. ############ ..|
++ |. ## ..|
++ |.##############..|
++ |. ## ## ..|
++ |. ## ## ..|
++ |. #### ## ..|
++ -&gt;|. #### ..|&lt;-
++ |. ### #### ..|
++ |. #### ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x898b '見'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ########## .|
++ | ## ## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## ##.|&lt;-
++ | ### ## ##.|
++ |### ######.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8996 '視'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ |###### ## ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | #### ######## .|
++ | ######## ## .|
++ |## ###### ## .|
++ | ## ######## .|
++ | ## #### .|
++ | ## ## ## .|
++ -&gt;| ## ## ## ##.|&lt;-
++ | ## ## ## ##.|
++ | ## ## ####.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x89a7 '覧'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ####### ## .|
++ | ## ## ## .|
++ | ####### ######.|
++ | ## #### .|
++ | ########### .|
++ | ## ## ## ## .|
++ | ############ .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ########## .|
++ -&gt;| ## ## ##.|&lt;-
++ | ### ## ##.|
++ |#### ######.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x89bd '覽'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ####### ## .|
++ | ## ## #######.|
++ | ######### ## .|
++ | ## ### ## .|
++ | ###############.|
++ | ## ## ########.|
++ | ###############.|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ########## .|
++ -&gt;| ## ## ##.|&lt;-
++ | ### ## ##.|
++ |#### ######.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x89c6 '视'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ |###### ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | #### ## ## ## .|
++ | ######## ## ## .|
++ |## ############ .|
++ | ## #### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ## ## ## ##.|&lt;-
++ | ## ## ## ##.|
++ | #### ####.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x89e3 '解'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ####### .|
++ | ##### ## ## .|
++ | ## ## ## ## .|
++ | ## ## ###### .|
++ |########## ## .|
++ | ###### ## .|
++ | ###### #### .|
++ | ###### ###### .|
++ | ######## ## .|
++ | ###### ## .|
++ | ##############.|
++ | ###### ## .|
++ -&gt;| ## #### ## .|&lt;-
++ | ## ## ## .|
++ |## ### ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8a00 '言'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ |################.|
++ | .|
++ | .|
++ | ############ .|
++ | .|
++ | .|
++ | ############ .|
++ | .|
++ | .|
++ | ############ .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ############ .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8a08 '計'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ |######## ## .|
++ | ## .|
++ | ###### ## .|
++ | ##########.|
++ | ###### ## .|
++ | ## .|
++ | ###### ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ###### ## .|&lt;-
++ | ## ## ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8a0a '訊'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ####### .|
++ | ## ## .|
++ |####### ## ## .|
++ | ## ## .|
++ | ##### ## ## .|
++ | ## ## .|
++ | ############ .|
++ | ## ## .|
++ | ##### ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## ##.|
++ | ## ## ## ####.|
++ -&gt;| ##### ## ####.|&lt;-
++ | ## ## ## ###.|
++ | ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8a18 '記'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ## ####### .|
++ |######## ## .|
++ | ## .|
++ | ###### ## .|
++ | ## .|
++ | ###### ####### .|
++ | ## ## .|
++ | ###### ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## ##.|
++ -&gt;| ###### ## ##.|&lt;-
++ | ## ## #######.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8a2d '設'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ###### .|
++ | ## ## ## .|
++ |########## ## .|
++ | ## ## .|
++ | ######## ###.|
++ | ## .|
++ | ############## .|
++ | ## ## .|
++ | ###### ## ## .|
++ | ## ## ## ## .|
++ | ## ## #### .|
++ | ## ## ## .|
++ -&gt;| ###### #### .|&lt;-
++ | ## ## ## ## .|
++ | ### ###.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8a31 '許'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## .|
++ |############### .|
++ | ## ## .|
++ | ####### ## .|
++ | ## .|
++ | ##### ## .|
++ | ##########.|
++ | ##### ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ##### ## .|&lt;-
++ | ## ## ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8a3c '証'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ##########.|
++ |####### ## .|
++ | ## .|
++ | ##### ## .|
++ | ## ## .|
++ | ##### ## ## .|
++ | ## ##### .|
++ | ##### ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ -&gt;| ##### ## ## .|&lt;-
++ | ## ###########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8a62 '詢'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ..|
++ | ## ## ..|
++ | ########..|
++ |######### ##..|
++ | ## ##..|
++ | ##### ##### ##..|
++ | ## ## ##..|
++ | ##### ## ## ##..|
++ | ##### ##..|
++ | ##### ## ## ##..|
++ | ## ## ## ## ##..|
++ | ## ## ##### ##..|
++ | ## ## ## ##..|
++ -&gt;| ##### ##..|&lt;-
++ | ## ## #### ..|
++ | ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8a66 '試'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## #### .|
++ | ## ##.|
++ |####### ## .|
++ | ##########.|
++ | ##### ## .|
++ | ## .|
++ | ##### ###### .|
++ | ## ## .|
++ | ##### ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ########.|
++ -&gt;| ######### ####.|&lt;-
++ | ## ## ###.|
++ | ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8a73 '詳'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## .|
++ |####### .|
++ | ##########.|
++ | ##### ## .|
++ | ## .|
++ | ##### ######## .|
++ | ## .|
++ | ##### ## .|
++ | ## ############.|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ##### ## .|&lt;-
++ | ## ## ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8a8d '認'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ######### .|
++ | ## ## .|
++ |########### ## .|
++ | #### ## .|
++ | ######### ## .|
++ | ## #### .|
++ | ##### ## ## .|
++ | ## ## .|
++ | ##### ## .|
++ | ## ## #### ## .|
++ | ## ###### ##.|
++ | ## ###### ####.|
++ -&gt;| ######### ####.|&lt;-
++ | ## ## ##### .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8a9e '語'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ######### .|
++ | ## .|
++ |####### ## .|
++ | ####### .|
++ | ##### ## ## .|
++ | ## ## .|
++ | ###############.|
++ | .|
++ | ##### .|
++ | ## ## ####### .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ -&gt;| ##### ## ## .|&lt;-
++ | ## ## ####### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8aa4 '誤'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ######## .|
++ | ## ## .|
++ |######### ## .|
++ | ######## .|
++ | ##### .|
++ | .|
++ | ##### ######## .|
++ | ## .|
++ | ##### ## .|
++ | ## ############.|
++ | ## ## ## .|
++ | ## ## #### .|
++ -&gt;| ##### ## ## .|&lt;-
++ | ## ## ## ## .|
++ | ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8aaa '說'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## ## .|
++ | ## ## .|
++ |######### ## .|
++ | ## ## .|
++ | ###############.|
++ | ## ## .|
++ | ##### ## ## .|
++ | ## ## .|
++ | ##### ####### .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ -&gt;| ##### ## ## ##.|&lt;-
++ | ## #### ## ##.|
++ | ## ####.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8aac '説'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## .|
++ |####### ## .|
++ | ######## .|
++ | ##### ## ## .|
++ | ## ## .|
++ | ##### ## ## .|
++ | ######## .|
++ | ##### #### .|
++ | ## ## #### .|
++ | ## ## ## ## .|
++ | ## ## ## ## ##.|
++ -&gt;| ##### ## ## ##.|&lt;-
++ | ## #### ####.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8aad '読'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ##########.|
++ |####### ## .|
++ | ######## .|
++ | ##### .|
++ | ##########.|
++ | ####### ##.|
++ | ## ## .|
++ | ##### ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ -&gt;| ##### ## ## ##.|&lt;-
++ | ## ## ## ## ##.|
++ | ## ####.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8abf '調'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ..|
++ | ## ########..|
++ | ## ## ##..|
++ |######### ## ##..|
++ | ########..|
++ | ##### ## ## ##..|
++ | ########..|
++ | ##### ## ##..|
++ | ########..|
++ | ##### ########..|
++ | ## ## ########..|
++ | ## ## ########..|
++ | ## ## ## ##..|
++ -&gt;| ####### ##..|&lt;-
++ | ## #### ####..|
++ | ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8acb '請'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ##########.|
++ |####### ## .|
++ | ######## .|
++ | ##### ## .|
++ | ##########.|
++ | ##### .|
++ | ######## .|
++ | ##### ## ## .|
++ | ## ## ######## .|
++ | ## ## ## ## .|
++ | ## ## ######## .|
++ -&gt;| ##### ## ## .|&lt;-
++ | ## ## ## #### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8b49 '證'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ######### ## .|
++ | ###### .|
++ |########## ## ##.|
++ | ## #### .|
++ | ####### ## .|
++ | ########## .|
++ | ##### ##.|
++ | ######## .|
++ | ####### ## .|
++ | ## #### ## .|
++ | ## ########## .|
++ | ## #### ## .|
++ -&gt;| ##### ## ## .|&lt;-
++ | ## ############.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8b66 '警'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ## .|
++ |######### ## .|
++ | ## ## #######.|
++ | ########## ## .|
++ |## ## #### .|
++ | ####### ## .|
++ | ## #### #### .|
++ | ########## ###.|
++ | #### .|
++ |################.|
++ | .|
++ | ############ .|
++ | .|
++ -&gt;| ############ .|&lt;-
++ | ## ## .|
++ | ############ .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8b70 '議'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ##########.|
++ |####### ## .|
++ | ######## .|
++ | ##### ## .|
++ | ##########.|
++ | ##### ###### .|
++ | ### ## ##.|
++ | ##### ## ## .|
++ | ## ############.|
++ | ## ## ## ## .|
++ | ## ## ####### .|
++ -&gt;| ######### ####.|&lt;-
++ | ## ## ## #####.|
++ | ##### ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8b8a '變'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ## .|
++ | ## ###### ## .|
++ |## ## ## ##.|
++ |##### ######### .|
++ | ## ## .|
++ | ## ###### ## ##.|
++ |###### ######.|
++ | #### .|
++ |################.|
++ |################.|
++ | ## .|
++ | ########### .|
++ | #### ## .|
++ -&gt;| ###### .|&lt;-
++ | ### ### .|
++ |#### ####.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8ba1 '计'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## .|
++ | ## .|
++ |################.|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | #### ## .|
++ -&gt;| ### ## .|&lt;-
++ | ## ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8ba4 '认'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## .|
++ | ## .|
++ |##### ## .|
++ | ## ## .|
++ | ## #### .|
++ | ## #### .|
++ | ## #### .|
++ | ###### ## .|
++ | ### ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ## .|
++ | ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8bbe '设'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ## ###### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## .|
++ | ## ####.|
++ |####### .|
++ | ## ######## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | #### #### .|
++ | ### ## .|
++ -&gt;| ## #### .|&lt;-
++ | ### ### .|
++ | ### ###.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8bd5 '试'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | #### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## .|
++ | ###########.|
++ | ## .|
++ |##### ## .|
++ | ######### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ###### ## .|
++ | ### #### ####.|
++ -&gt;| ###### ####.|&lt;-
++ | ## ###.|
++ | ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8bed '语'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ## ########## .|
++ | ## ## .|
++ | ## ## .|
++ | ######## .|
++ | ## ## .|
++ |#### ## ## .|
++ | ## ###########.|
++ | ## .|
++ | ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ | ###### ## .|
++ -&gt;| ### ## ## .|&lt;-
++ | ## ######## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8bef '误'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ## ######## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ######## .|
++ | .|
++ |#### ########## .|
++ | ## ## .|
++ | ## ## .|
++ | ##############.|
++ | ## ## .|
++ | ## #### .|
++ | #### #### .|
++ -&gt;| ### ## ## .|&lt;-
++ | ## ## ## .|
++ | ## ###.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8bf7 '请'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## .|
++ | ## ########## .|
++ | ## ## .|
++ | ######## .|
++ | ## .|
++ |#### ###########.|
++ | ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ | ############ .|
++ -&gt;| ### ## ## .|&lt;-
++ | ## ## #### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8c61 '象'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ######### .|
++ | ## ## .|
++ | ############# .|
++ |#### ## ## .|
++ | ## ## ## .|
++ | ############ .|
++ | ### .|
++ | ### ## ## .|
++ | ### ###### .|
++ | ### ### .|
++ | #### ##### .|
++ | ##### ## .|
++ -&gt;| ### ## ## .|&lt;-
++ |#### #### ###.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8ca0 '負'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ..|
++ | ## ..|
++ | ######### ..|
++ | ## ## ..|
++ | ## ## ..|
++ |############## ..|
++ | ## ## ..|
++ | ############ ..|
++ | ## ## ..|
++ | ############ ..|
++ | ## ## ..|
++ | ############ ..|
++ | ..|
++ -&gt;| ## ### ..|&lt;-
++ | ### ### ..|
++ | ### ##..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8ca9 '販'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ##### #### .|
++ | ## ## ##### .|
++ | ## ## ## .|
++ | ##### ## .|
++ | ## ## ######## .|
++ | ## ## #### ## .|
++ | ##### #### ## .|
++ | ## ## #### ## .|
++ | ## ## ## #### .|
++ | ##### ## #### .|
++ | ## ## .|
++ | #### ## ## .|
++ -&gt;| ## #### #### .|&lt;-
++ |## #### ## ## .|
++ | ## ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8cac '責'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ############ .|
++ | ## .|
++ | ########## .|
++ | ## .|
++ |################.|
++ | .|
++ | ########## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ -&gt;| ########## .|&lt;-
++ | ## ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8cc7 '資'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ######## .|
++ | #### ## ## .|
++ | ## ## ## .|
++ |#### #### .|
++ | ## ## ### .|
++ | ## ### ###.|
++ | ########## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ -&gt;| ########## .|&lt;-
++ | ## ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8cf4 '賴'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ |######## ##### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ |############### .|
++ |## ## #### ## .|
++ |## ## ######### .|
++ |########## ## .|
++ | ## ####### .|
++ | #### ## ## .|
++ | ###### ####### .|
++ |## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ## ## .|
++ | ## ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8d28 '质'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ###### .|
++ | ######### .|
++ | ## ## .|
++ | ## ## .|
++ | ##############.|
++ | ## ## .|
++ | ## ## .|
++ | ## ########## .|
++ | ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ####### .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ### ## .|
++ |## ### ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8d77 '起'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ## ###### .|
++ | ####### ## .|
++ | ## ## .|
++ | ## ## .|
++ |############## .|
++ | ## ## ## .|
++ | #### ## .|
++ | #### ## .|
++ | ######## ## .|
++ | #### ## ## .|
++ | #### ###### .|
++ -&gt;| ##### .|&lt;-
++ | ## ############.|
++ |## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8ddf '跟'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ############# .|
++ | ## #### ## .|
++ | ## #### ## .|
++ | ## ######### .|
++ | ######## ## .|
++ | ## ## ## .|
++ | ## ####### .|
++ | ########## ## .|
++ | #### #### ## .|
++ | #### ## ### .|
++ | #### ## ## .|
++ | ######## ## .|
++ -&gt;|#### #### ## .|&lt;-
++ | ### ###.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8def '路'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ###### ## .|
++ | ## ## ##### .|
++ | ## ## ## ## .|
++ | ## ######## .|
++ | ###### ## .|
++ | ## #### .|
++ | ## ## ## .|
++ | ## ## ###.|
++ | ###### ###### .|
++ | #### ## ## .|
++ | #### ## ## .|
++ | #### ## ## .|
++ -&gt;| ###### ## ## .|&lt;-
++ |#### ###### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8eab '身'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ########## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ########## ##.|
++ | ## #### .|
++ | ## ### .|
++ | ############ .|
++ | #### .|
++ | ## ## .|
++ | ### ## .|
++ -&gt;| #### ## .|&lt;-
++ |#### #### .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8edf '軟'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ |######## ###### .|
++ | ## ## ## .|
++ | ###### ## ## .|
++ | ######## ## .|
++ | ###### ## .|
++ | ###### ## .|
++ | ###### #### .|
++ | ## #### .|
++ |######## #### .|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ## ## .|
++ | ## ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8f03 '較'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ |################.|
++ | ## .|
++ | ###### ## ## .|
++ | ######## ## .|
++ | ####### ##.|
++ | ###### ## ## .|
++ | ###### ## ## .|
++ | ## #### .|
++ |######## #### .|
++ | ## ## .|
++ -&gt;| ## #### .|&lt;-
++ | ## ## ## .|
++ | ## ### ###.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8f09 '載'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ######## #### .|
++ | ## ## ## .|
++ |################.|
++ | ## ## .|
++ |############ .|
++ | ## ## ## .|
++ | ######## ## ## .|
++ | ## ## ## ## ## .|
++ | ######## #### .|
++ | ## ## ## #### .|
++ | ######## ## .|
++ | ## ## ##.|
++ -&gt;|################.|&lt;-
++ | ## ## ###.|
++ | ## ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8f2f '輯'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ###### .|
++ | ## ## ## .|
++ |########## ## .|
++ | ## ###### .|
++ | ###### .|
++ | ###############.|
++ | ###### ## ## .|
++ | ###### ###### .|
++ | ###### ## ## .|
++ | ## ###### .|
++ |########## ## .|
++ | ## ## #####.|
++ -&gt;| ## ######## .|&lt;-
++ | ## ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8f38 '輸'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## #### .|
++ | ## ## ## .|
++ |######## ## .|
++ | ## ###########.|
++ |###### .|
++ |########### ## .|
++ |######## ###### .|
++ |######## ###### .|
++ |############### .|
++ | ## ## ###### .|
++ |######## ###### .|
++ | ## ######### .|
++ -&gt;| ## ## ## ## .|&lt;-
++ | ## ## ###### .|
++ | ## ##### ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8f6c '转'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ |############### .|
++ | ## ## .|
++ | #### ## .|
++ |## ## ##########.|
++ |####### ## .|
++ | ## ## .|
++ | ## ######## .|
++ | #### ## .|
++ |##### ## ## .|
++ | #### #### .|
++ -&gt;| ## ## .|&lt;-
++ | ## ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8f6f '软'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ |######## ###### .|
++ | ## ## ## .|
++ | #### ## ## .|
++ | ## ## ## ## .|
++ | ####### ## .|
++ | ## ## .|
++ | ## #### .|
++ | #### #### .|
++ |###### #### .|
++ | ## ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ## ## .|
++ | #### ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8f7d '载'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## #### .|
++ | ######## ## ## .|
++ | ## ## .|
++ |################.|
++ | ## ## .|
++ | ## ## ## .|
++ |######### ## ## .|
++ | ## ## ## .|
++ | ## ## #### .|
++ | ######## #### .|
++ | ## ## .|
++ | ##### ## ##.|
++ -&gt;|###### ######.|&lt;-
++ | ## ## ###.|
++ | ## ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8f93 '输'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## #### .|
++ | ## ## ## .|
++ |######## ## .|
++ | ## ###########.|
++ | ## .|
++ | #### ##### ## .|
++ |## ## ## ###### .|
++ |######## ###### .|
++ | ## ######### .|
++ | ##### ###### .|
++ |##### ## ###### .|
++ | #### ######### .|
++ -&gt;| ## ## ## ## .|&lt;-
++ | ## ## ###### .|
++ | ## ##### ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8fbc '込'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## .|
++ | #### .|
++ |##### #### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | #### ## .|
++ | ### ##.|
++ | ## .|
++ -&gt;| #### .|&lt;-
++ | ## ###########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8fce '迎'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 14
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ### ##### .|
++ | ## ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ |##### ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ######### .|
++ | ## ### #### .|
++ | ## ## ## .|
++ | ## ## .|
++ -&gt;| #### ## .|&lt;-
++ | ## ###########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8fd4 '返'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ##### .|
++ | ## ##### .|
++ | ## ## .|
++ | ## .|
++ | ######### .|
++ |##### ## ## .|
++ | ## #### ## .|
++ | ## ## #### .|
++ | ## ## ## .|
++ | ## ## #### .|
++ | #### ## ## .|
++ | ###### ## .|
++ -&gt;| #### .|&lt;-
++ | ## ###########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8fd9 '这'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## .|
++ | ## ## .|
++ | ############ .|
++ | ## .|
++ | ## ## .|
++ |##### ## ## .|
++ | ## #### .|
++ | ## ## .|
++ | ## #### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | #### ## .|
++ -&gt;| #### .|&lt;-
++ | ## ###########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8ff0 '述'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## #### .|
++ | ## ## ## .|
++ | ## ## .|
++ | ########## .|
++ | ### .|
++ |##### #### .|
++ | ## ###### .|
++ | ## #### ## .|
++ | ## ## ## ## .|
++ | #### ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| #### .|&lt;-
++ | ## ###########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8ff7 '迷'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## ## ## .|
++ | ## #### ## .|
++ | ## ###### .|
++ | ## .|
++ | ########## .|
++ |##### ## .|
++ | ## #### .|
++ | ## ###### .|
++ | ## ## ## ## .|
++ | #### ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| #### .|&lt;-
++ | ## ###########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9000 '退'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ######## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ######## .|
++ | ## ## .|
++ | ## ## .|
++ |##### ######## .|
++ | ## ## ## ## .|
++ | ## ## #### .|
++ | ## ## ## .|
++ | ## #### ## .|
++ | ## ### ## .|
++ | ## ## ## .|
++ -&gt;| #### .|&lt;-
++ | ## ###########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9009 '选'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ######## .|
++ | ## ## .|
++ | ## .|
++ |############### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | #### #### .|
++ -&gt;| #### .|&lt;-
++ | ## ###########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x900f '透'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | #### .|
++ | ## ##### .|
++ | ## ## .|
++ | ############ .|
++ | ###### .|
++ | ## ## ## .|
++ |####### ## ###.|
++ | ## ####### .|
++ | ## ## ## .|
++ | ## ## ##### .|
++ | ## ## ## .|
++ | ## ## #### .|
++ | #### ## .|
++ -&gt;| #### .|&lt;-
++ | ## ###########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9017 '逗'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 14
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ## ########## .|
++ | ## .|
++ | ## .|
++ | ######## .|
++ | ## ## .|
++ |##### ## ## .|
++ | ## ######## .|
++ | ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ############ .|
++ | ## .|
++ -&gt;| #### .|&lt;-
++ | ## ###########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9019 '這'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## .|
++ | ############ .|
++ | ## .|
++ | ######## .|
++ | .|
++ |##### ######## .|
++ | ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ -&gt;| #### .|&lt;-
++ | ## ###########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x901a '通'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ## ######### .|
++ | ## ## .|
++ | ## ##### .|
++ | ## .|
++ | ########## .|
++ |#### ## ## ## .|
++ | ## ## ## ## .|
++ | ## ########## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ########## .|
++ | ## ## ## ## .|
++ -&gt;| ## ## ###### .|&lt;-
++ | ###### ## .|
++ |## ############.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9023 '連'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## .|
++ | ##############.|
++ | ## ## .|
++ | ########## .|
++ | ## ## ## .|
++ |#### ########## .|
++ | ## ## ## ## .|
++ | ## ########## .|
++ | ## ## .|
++ | ##############.|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| #### ## .|&lt;-
++ |## ############.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9032 '進'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | #### .|
++ | ## ## ## .|
++ | ## ##########.|
++ | ## ## ## .|
++ | ### ## .|
++ | ########### .|
++ |##### ## ## .|
++ | ## ## ## .|
++ | ## ######### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ##########.|
++ | ## ## .|
++ -&gt;| #### .|&lt;-
++ | ## ###########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x904b '運'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 14
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ## ########## .|
++ | #### ## ## .|
++ | ## ######## .|
++ | ## .|
++ | ######## .|
++ |##### ## ## ## .|
++ | ## ######## .|
++ | ## ## ## ## .|
++ | ## ######## .|
++ | ## ## .|
++ | ############ .|
++ | ## ## .|
++ -&gt;| #### ## .|&lt;-
++ | ## ###########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x904e '過'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ####### .|
++ | ## ## ## .|
++ | ## ####### .|
++ | ## ## #### .|
++ | ## #### .|
++ | ######### .|
++ |##### ## ## .|
++ | ## ######### .|
++ | ## #### #### .|
++ | ## ######### .|
++ | ## ## ## .|
++ | ## ## #### .|
++ | ## ## ## .|
++ -&gt;| #### .|&lt;-
++ | ## ###########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9053 '道'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## ## .|
++ | ## .|
++ | ############ .|
++ | ## .|
++ | ######## .|
++ |##### ## ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ -&gt;| #### .|&lt;-
++ | ## ###########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9055 '違'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ | #############.|
++ | .|
++ | ######## .|
++ |##### ## ## .|
++ | ## ######## .|
++ | ## ## .|
++ | ############ .|
++ | ## ## .|
++ | #### ## .|
++ | #############.|
++ -&gt;| ## ## .|&lt;-
++ | #### ## .|
++ | ## ###########.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9060 '遠'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## .|
++ | ## ######## .|
++ | ## ## .|
++ | ########## .|
++ | .|
++ |##### ######## .|
++ | ## ## ## .|
++ | ## ######## .|
++ | ## ### ## .|
++ | ## ####### .|
++ | ## #### ## .|
++ | #### ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | #### .|
++ | ## ###########.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9069 '適'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## .|
++ | ## ########## .|
++ | ## ## ## .|
++ | #### .|
++ | ########## .|
++ |#### ## ## ## .|
++ | ## ########## .|
++ | ## ## ## ## .|
++ | ## ########## .|
++ | ## #### #### .|
++ | ## ########## .|
++ | ## ## ## .|
++ -&gt;| ## ## ### .|&lt;-
++ | #### .|
++ |## ############.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x906e '遮'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## .|
++ | ## ###########.|
++ | ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ |#### ###########.|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ###### .|
++ | #### .|
++ | ########## ## .|
++ | ### ## #### ##.|
++ -&gt;| ## ## #### ##.|&lt;-
++ | #### .|
++ |## ############.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9078 '選'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ##### ##### .|
++ | ## ## ## ## ## .|
++ | ####### ##### .|
++ | #### #### ##.|
++ | ##### #####.|
++ | ## ## .|
++ |#### ########## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ##############.|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| #### .|&lt;-
++ |## ############.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x907f '避'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ##### ## .|
++ | ## ## ########.|
++ | ## ## ## .|
++ | ## #### ##.|
++ | ##### #### .|
++ |#### ## ######.|
++ | #### ## .|
++ | ######## ## .|
++ | ##### ########.|
++ | ## ## ## ## .|
++ | ## ##### ## .|
++ | ## ## ## ## .|
++ -&gt;| #### .|&lt;-
++ |## ############.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x90e8 '部'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ######.|
++ | ########### ##.|
++ | ## ## .|
++ | ## ## ## ## .|
++ | ## ## #### .|
++ |############ ## .|
++ | ## ## .|
++ | ## ##.|
++ | ####### ## ##.|
++ | ## ## ## ##.|
++ | ## ## ##### .|
++ | ## ## #### .|
++ -&gt;| ####### ## .|&lt;-
++ | ## ## ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x90fd '都'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ########.|
++ | ########### ##.|
++ | ## ## ## ## .|
++ | #### ## ## .|
++ |############## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ####### ## ##.|
++ | ### ## ## ##.|
++ |#### ## ## ##.|
++ | ####### ##### .|
++ | ## ## #### .|
++ -&gt;| ## ## ## .|&lt;-
++ | ####### ## .|
++ | ## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x914d '配'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |######## .|
++ | #### ###### .|
++ | #### ## .|
++ |######## ## .|
++ |######## ## .|
++ |######## ## .|
++ |############## .|
++ |########## ## .|
++ |### #### .|
++ |## #### .|
++ |########## .|
++ |## #### ##.|
++ -&gt;|## #### ##.|&lt;-
++ |######## #######.|
++ |## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x91cd '重'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ###### .|
++ | ####### .|
++ | ## .|
++ |################.|
++ | ## .|
++ | ########## .|
++ | ## ## ## .|
++ | ########## .|
++ | ## ## ## .|
++ | ########## .|
++ | ## .|
++ | ############ .|
++ -&gt;| ## .|&lt;-
++ |################.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x91dd '針'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | #### ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ |####### ## .|
++ | ## ##########.|
++ | ## ## .|
++ |######## ## .|
++ | ## ## .|
++ |## #### ## .|
++ | ##### ## .|
++ | #### ## .|
++ -&gt;| ##### ## .|&lt;-
++ |##### ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9304 '錄'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ###### .|
++ | #### ## ## .|
++ | ## #### ## .|
++ | ## ###### .|
++ |###### ## .|
++ | ## ## .|
++ | ## ##########.|
++ |####### ## .|
++ | ## ## ## ##.|
++ |## ############ .|
++ | ##### ###### .|
++ | #### ## ## ## .|
++ -&gt;| ##### ## ##.|&lt;-
++ |#### #### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x932f '錯'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ## .|
++ | ## ## ## .|
++ | #### ## ## .|
++ | ## ###########.|
++ | ## ## ## ## .|
++ |####### ## ## .|
++ | ## #########.|
++ | ## .|
++ |############### .|
++ | ## ## ## .|
++ |## #### ## ## .|
++ | ##### ####### .|
++ | #### ## ## .|
++ -&gt;| ####### ## .|&lt;-
++ |##### ####### .|
++ | ## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9375 '鍵'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ############## .|
++ | ## ## ## #### .|
++ |## #########.|
++ | #### ## #### .|
++ | ## ## ###### .|
++ | ## #### ## .|
++ |##### ######## .|
++ | ## #### ## .|
++ |#### ###########.|
++ | #### ## ## .|
++ | ## ## ## .|
++ -&gt;| ####### .|&lt;-
++ |### ## ########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9519 '错'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ## .|
++ | ## ## ## .|
++ | #### ## ## .|
++ | ## ########## .|
++ | ## ## ## .|
++ | ##### ## ## .|
++ |################.|
++ | ## .|
++ |############## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ######## .|
++ | ###### ## .|
++ -&gt;| ### ## ## .|&lt;-
++ | ## ######## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x952e '键'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ############# .|
++ | ## ## #### .|
++ | ## #########.|
++ | ####### #### .|
++ |#### ## ###### .|
++ | ## #### ## .|
++ |###### ######## .|
++ | ## #### ## .|
++ | ## ###########.|
++ | ## ## ## .|
++ | ###### ## .|
++ -&gt;| ####### .|&lt;-
++ | #### ########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9589 '閉'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 15
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.###### ######..|
++ |.## ## ## ##..|
++ |.###### ######..|
++ |.## ## ## ##..|
++ |.###### ######..|
++ |.## ## ##..|
++ |.## ## ##..|
++ |.## ###########..|
++ |.## ### ##..|
++ |.## #### ##..|
++ |.## ## ## ##..|
++ |.## ## ## ##..|
++ -&gt;|.## #### ##..|&lt;-
++ |.## ## ####..|
++ |.## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x958b '開'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 15
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.###### ######...|
++ |.## ## ## ##...|
++ |.###### ######...|
++ |.## ## ## ##...|
++ |.###### ######...|
++ |.## ##...|
++ |.## ####### ##...|
++ |.## ## ## ##...|
++ |.## ## ## ##...|
++ |.#############...|
++ |.## ## ## ##...|
++ |.## ## ## ##...|
++ -&gt;|.## ## ## ##...|&lt;-
++ |.#### ######...|
++ |.## ## ...|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9593 '間'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 15
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.###### ######...|
++ |.## ## ## ##...|
++ |.###### ######...|
++ |.## ## ## ##...|
++ |.###### ######...|
++ |.## ##...|
++ |.## ####### ##...|
++ |.## ## ## ##...|
++ |.## ####### ##...|
++ |.## ## ## ##...|
++ |.## ####### ##...|
++ |.## ## ## ##...|
++ -&gt;|.## ##...|&lt;-
++ |.## ####...|
++ |.## ## ...|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9598 '閘'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.###### ######..|
++ |.## ## ## ##..|
++ |.###### ######..|
++ |.## ## ## ##..|
++ |.###### ######..|
++ |.## ##..|
++ |.## ######## ##..|
++ |.## ## ## ## ##..|
++ |.## ######## ##..|
++ |.## ## ## ## ##..|
++ |.## ######## ##..|
++ |.## ## ## ## ##..|
++ |.## ## ##..|
++ -&gt;|.## ## ##..|&lt;-
++ |.## ####..|
++ |.## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x95a2 '関'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.###### ######..|
++ |.## ## ## ##..|
++ |.###### ######..|
++ |.## ## ## ##..|
++ |.###### ######..|
++ |.## ##..|
++ |.## ## ## ##..|
++ |.## #### ##..|
++ |.## ######## ##..|
++ |.## ## ##..|
++ |.##############..|
++ |.## ## ##..|
++ |.## #### ##..|
++ -&gt;|.## ## ## ##..|&lt;-
++ |.## ## ## ##..|
++ |.## ###..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x95b1 '閱'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.###### ######..|
++ |.## ## ## ##..|
++ |.###### ######..|
++ |.## ## ## ##..|
++ |.###### ######..|
++ |.## ## ## ##..|
++ |.## ## ## ##..|
++ |.##############..|
++ |.##### #####..|
++ |.## ## ## ##..|
++ |.## ######## ##..|
++ |.## #### ##..|
++ |.## #### ##..|
++ -&gt;|.## ## ## ####..|&lt;-
++ |.## ## ######..|
++ |.#### ###..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x95dc '關'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.###### ######..|
++ |.## ## ## ##..|
++ |.###### ######..|
++ |.## ## ## ##..|
++ |.###### ######..|
++ |.## ## ## ##..|
++ |.#### #### ####..|
++ |.###### #### ##..|
++ |.## #### ######..|
++ |.##############..|
++ |.## #### ##..|
++ |.#### #### ####..|
++ |.##############..|
++ -&gt;|.## #### ##..|&lt;-
++ |.## ## ## ####..|
++ |.## ## ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x95ed '闭'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## ..|
++ |. ############..|
++ |. ##..|
++ |.## ## ##..|
++ |.## ## ##..|
++ |.##############..|
++ |.## ## ##..|
++ |.## ### ##..|
++ |.## #### ##..|
++ |.## ## ## ##..|
++ |.## ## ## ##..|
++ |.#### ## ##..|
++ |.## #### ##..|
++ -&gt;|.## ## ##..|&lt;-
++ |.## ####..|
++ |.## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x963b '阻'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 15
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.############# .|
++ |.## #### ## .|
++ |.## ## ## ## .|
++ |.## ## ## ## .|
++ |.#### ####### .|
++ |.## ## ## ## .|
++ |.## ## ## ## .|
++ |.## #### ## .|
++ |.## ######### .|
++ |.## #### ## .|
++ |.##### ## ## .|
++ |.#### ## ## .|
++ -&gt;|.## ## ## .|&lt;-
++ |.## ###########.|
++ |.## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9650 '限'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 15
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.############# .|
++ |.## #### ## .|
++ |.#### ## ## .|
++ |.#### ######## .|
++ |.### ## ## .|
++ |.#### ## ## .|
++ |.## ########## .|
++ |.## #### ## ## .|
++ |.## #### ## ## .|
++ |.####### ### .|
++ |.#### ## ## .|
++ |.## ## ## .|
++ -&gt;|.## #### ## .|&lt;-
++ |.## ### ###.|
++ |.## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9665 '陥'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## .|
++ |.###### ## .|
++ |.## ## ###### .|
++ |.## ## ## ## .|
++ |.## ## ## ## .|
++ |.#### ## ## .|
++ |.## ## ## ######.|
++ |.## ## ## ## ##.|
++ |.## #### ## ##.|
++ |.## #### ## ##.|
++ |.## #### ######.|
++ |.##### ## ## ##.|
++ |.#### ## ## ##.|
++ -&gt;|.## ## ## ##.|&lt;-
++ |.## ## ######.|
++ |.## ## ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x968e '階'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## ## .|
++ |.######## ## ##.|
++ |.## ########## .|
++ |.## ## ## ### .|
++ |.## ## ###### ##.|
++ |.#### ### ## ##.|
++ |.## ## ## ######.|
++ |.## ## ## .|
++ |.## ########## .|
++ |.## #### ## .|
++ |.## #### ## .|
++ |.##### ######## .|
++ |.#### ## ## .|
++ -&gt;|.## ## ## .|&lt;-
++ |.## ######## .|
++ |.## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9694 '隔'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 15
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.###############.|
++ |.## ## .|
++ |.#### ######## .|
++ |.#### ## ## .|
++ |.### ## ## .|
++ |.#### ######## .|
++ |.## ## .|
++ |.## ############.|
++ |.## ###### ####.|
++ |.####### #### ##.|
++ |.#### ##########.|
++ |.## ## ## ##.|
++ -&gt;|.## ## ## ##.|&lt;-
++ |.## ## ######.|
++ |.## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x969b '際'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## .|
++ |.##### ## ## .|
++ |.## ########### .|
++ |.#### ## ###### .|
++ |.############## .|
++ |.### #### ## .|
++ |.#### ## ## .|
++ |.## ########### .|
++ |.## ### ##.|
++ |.## ## .|
++ |.############## .|
++ |.#### ## .|
++ |.## ###### .|
++ -&gt;|.## ## ## ## .|&lt;-
++ |.## ###### ## .|
++ |.## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x96a8 '隨'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## .|
++ |.##### #########.|
++ |.## ### ## .|
++ |.## ########### .|
++ |.#### ## ## .|
++ |.#### ##########.|
++ |.### .|
++ |.############## .|
++ |.## ###### ## .|
++ |.## ########### .|
++ |.## ###### ## .|
++ |.############## .|
++ |.#### #### ## .|
++ -&gt;|.## #### ### .|&lt;-
++ |.## #### .|
++ |.## ## ########.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x96c6 '集'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ############ .|
++ | ### ## .|
++ | ############# .|
++ |## ## ## .|
++ | ########### .|
++ | ## ## .|
++ | ############ .|
++ | ## ## .|
++ |################.|
++ | ###### .|
++ | ## ## ## .|
++ -&gt;| ### ## ### .|&lt;-
++ |### ## ###.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x96d9 '雙'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## ## ## .|
++ | ##############.|
++ | ### ## ### ## .|
++ |################.|
++ | ## ## ## ## .|
++ | ##############.|
++ | ## ## ## ## .|
++ | ##############.|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| #### .|&lt;-
++ | #### #### .|
++ |#### ####.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x96e2 '離'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## #### .|
++ |. ## ## ## .|
++ |.########## .|
++ |. #### #######.|
++ |.## ## #### ## .|
++ |.########## ## .|
++ |.## #########.|
++ |.########## ## .|
++ |. ## ## ## .|
++ |.###############.|
++ |.#### #### ## .|
++ |.########## ## .|
++ |.########## ## .|
++ -&gt;|.## #########.|&lt;-
++ |.## ###### .|
++ |.## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x96fb '電'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ############ .|
++ | ## .|
++ | ###############.|
++ | ## ## ##.|
++ |## ############ .|
++ | ## .|
++ | ########## .|
++ | .|
++ | ############ .|
++ | ## ## ## .|
++ | ############ .|
++ | ## ## ## .|
++ | ############ .|
++ -&gt;| ## ##.|&lt;-
++ | ## ##.|
++ | ########.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9700 '需'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ############ .|
++ | ## .|
++ | ###############.|
++ | ## ## ##.|
++ |## ############ .|
++ | ## .|
++ | ########## .|
++ | .|
++ |################.|
++ | ## .|
++ | ############ .|
++ | ## ## ## ## .|
++ -&gt;| ## ## ## ## .|&lt;-
++ | ## ## ###### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x975e '非'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ |####### #######.|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ###### ###### .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ |####### #######.|
++ -&gt;| ## ## .|&lt;-
++ | ## ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9762 '面'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |################.|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ############ .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ###### ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ###### ## .|
++ | ## ## ## ## .|
++ -&gt;| ## ## ## ## .|&lt;-
++ | ############ .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x97cc '韌'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ###############.|
++ | ## ## ## ##.|
++ |######### ## ##.|
++ | #### ##.|
++ | ####### #### ##.|
++ | ## ## #### ##.|
++ | ######### ## ##.|
++ | ## ## ##.|
++ | ####### ## ##.|
++ | ## ## ##.|
++ | ## ## ## ##.|
++ -&gt;| ####### ## ##.|&lt;-
++ | ## ## ####.|
++ | ## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x97ff '響'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ##########.|
++ | ####### #### ##.|
++ | ## ######### .|
++ | ###### #### ##.|
++ | ###############.|
++ | ## #### #### .|
++ | ## ####### .|
++ | ## .|
++ | ############ .|
++ | ## ## .|
++ |################.|
++ | ## ## .|
++ -&gt;| ########## .|&lt;-
++ | ## ## .|
++ | ########## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9801 '頁'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 15
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.###############.|
++ |. ## .|
++ |. ## .|
++ |. ########### .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ########### .|
++ |. ## ## .|
++ |. ########### .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ########### .|
++ -&gt;|. ## ## .|&lt;-
++ |. ## ## .|
++ |. ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9805 '項'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | #########.|
++ | ## .|
++ |####### ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ | ###### ## .|
++ |#### ######## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ## .|
++ | ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9808 '須'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## #########.|
++ | ## ## .|
++ | ## ## .|
++ | ## ######## .|
++ |## ## ## ## .|
++ | ## ## ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ | ## ########## .|
++ |## #### ## .|
++ | ## ## ## .|
++ | ## ######## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ## ## .|
++ |## ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9810 '預'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ###### ########.|
++ | ## ## .|
++ | #### ## .|
++ | ## ####### .|
++ | ## ## ## .|
++ |########## ## .|
++ | ## ######### .|
++ | #### ## ## .|
++ | ## ####### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ####### .|
++ -&gt;| ## ## ## .|&lt;-
++ | #### ## ## .|
++ | ## ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9818 '領'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## #########.|
++ | #### ## .|
++ | ## ## ## .|
++ | ## ######### .|
++ |## ## ## ## .|
++ | ## ## ## .|
++ | ######## .|
++ |######### ## .|
++ | ########## .|
++ | ## ## ## .|
++ | #### ## ## .|
++ | ## ######## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ## ## .|
++ | ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x982d '頭'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |################.|
++ | ## .|
++ | ## .|
++ | ###### ####### .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ####### .|
++ | ###### ## ## .|
++ | ####### .|
++ | ## ## ## ## .|
++ | #### ## ## .|
++ | ############# .|
++ -&gt;|##### .|&lt;-
++ | ## ## ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x984c '題'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ##############.|
++ | ## ## ## .|
++ | ###### ## .|
++ | ## ## ###### .|
++ | ###### ## ## .|
++ | ###### .|
++ |########### ## .|
++ | ## ###### .|
++ | ## ## ## .|
++ | ############# .|
++ | #### #### .|
++ | #### ## ## .|
++ -&gt;| ##### ## ##.|&lt;-
++ | ## ############.|
++ |## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x985e '類'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ |## ## ##########.|
++ | ###### ## .|
++ |######## ## .|
++ | ### ####### .|
++ | ###### ## ## .|
++ |## ## #### ## .|
++ | ####### .|
++ | #### ## ## .|
++ | ## ######### .|
++ |########## ## .|
++ | ## ## ## .|
++ | #### ####### .|
++ -&gt;| ## ## ## ## .|&lt;-
++ | ## ## ## ## .|
++ |## ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x986f '顯'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |################.|
++ |## ## ## .|
++ |######## ## .|
++ |## ######### .|
++ |########## ## .|
++ | ## ## ## ## .|
++ |############### .|
++ |########## ## .|
++ | ## ## ####### .|
++ |########## ## .|
++ |########## ## .|
++ | ####### .|
++ -&gt;|######## ## ## .|&lt;-
++ |########## ## .|
++ | ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9879 '项'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | #########.|
++ | ## .|
++ |####### ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ######## ## .|
++ |#### #### .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ## .|
++ | ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9891 '频'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## #########.|
++ | #### ## .|
++ | ###### ## .|
++ | #### ######## .|
++ | #### ## ## .|
++ |######### ## ## .|
++ | ## ## ## .|
++ | ## ## ## ## .|
++ | ######## ## ## .|
++ | ######## ## ## .|
++ | ########## ## .|
++ |## ## #### .|
++ -&gt;| ## ## ## .|&lt;-
++ | ### ## ## .|
++ |### ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9996 '首'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ |################.|
++ | ## .|
++ | ## .|
++ | ############ .|
++ | ## ## .|
++ | ## ## .|
++ | ############ .|
++ | ## ## .|
++ | ## ## .|
++ | ############ .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ############ .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9a45 '驅'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |################.|
++ |#### ## .|
++ |######## ###### .|
++ |#### ## ## ## .|
++ |######## ## ## .|
++ |#### ## ###### .|
++ |#### ## .|
++ |################.|
++ | ############.|
++ |################.|
++ |################.|
++ |################.|
++ -&gt;|## #### .|&lt;-
++ | ############.|
++ | ### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9a57 '驗'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ###### ## .|
++ | #### #### .|
++ | ###### ## ## .|
++ | #### ## ## .|
++ | ###############.|
++ | #### .|
++ | #### .|
++ | ############## .|
++ | ########## .|
++ | ############## .|
++ | ############## .|
++ | ###### ## ## .|
++ -&gt;|## ## ## ## .|&lt;-
++ | ############ .|
++ | #### ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9a71 '驱'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |###### #########.|
++ | ## ## .|
++ | ## ## ## ## .|
++ | ## ## #### ## .|
++ | ## ## ## #### .|
++ | ## ## ## #### .|
++ | ######## ## .|
++ | #### ## .|
++ | #### #### .|
++ | ###### #### .|
++ |#### ###### ## .|
++ | ## ##### ## .|
++ -&gt;| #### .|&lt;-
++ | #### #########.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9ad4 '體'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | #### .|
++ | ############## .|
++ | ## ########## .|
++ | ############## .|
++ | ############## .|
++ |############### .|
++ |## ## .|
++ | ############## .|
++ | ## ## .|
++ | ############## .|
++ | ## #### ## .|
++ | ############## .|
++ | ## ## ## ## .|
++ -&gt;| ## ## #### .|&lt;-
++ | ###############.|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9ad8 '高'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ |################.|
++ | .|
++ | ######## .|
++ | ## ## .|
++ | ## ## .|
++ | ######## .|
++ | .|
++ | ############## .|
++ | ## ## .|
++ | ## ######## ## .|
++ | ## ## ## ## .|
++ -&gt;| ## ## ## ## .|&lt;-
++ | ## ######## ## .|
++ | ## ### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9ed8 '默'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ |######## #### .|
++ |## ## ## ## ## .|
++ |######## ## ## .|
++ |######## ## .|
++ |## ## ##########.|
++ |######## ## .|
++ | ## ## .|
++ |######## ## .|
++ | ## #### .|
++ | ##### #### .|
++ |#### #### .|
++ | #### ## .|
++ -&gt;|########## ## .|&lt;-
++ |###### ## ## .|
++ |## ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0xac00 '가'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.4#######3 ## .|
++ |. 6#9 ## .|
++ |. 4#a ## .|
++ |. 5#8 ## .|
++ |. 7#7 ## .|
++ |. 9#4 ####4.|
++ |. c# ## .|
++ |. 7#8 ## .|
++ |. 4#c ## .|
++ |. 6##1 ## .|
++ |.5###a1 ## .|
++ -&gt;|.5a71 ## .|&lt;-
++ |. ## .|
++ |. ## .|
++ |. 44 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xac04 '간'
++ Font: gulim (17)
++ Bitmap: 17 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 6#######4 aa |
++ |. 6#8 ## |
++ |. 6#8 ## |
++ |. 7#5 ## |
++ |. c#1 ####3|
++ |. 1c#5 ## |
++ |. 2a##3 ## |
++ |.4####4 ## |
++ |. 22 ## |
++ |. 33 ## |
++ |. 1## cc |
++ -&gt;|. 1## |&lt;-
++ |. ## |
++ |. 9##########a |
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xac10 '감'
++ Font: gulim (17)
++ Bitmap: 17 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. c#######2 #c |
++ |. 9#6 ## |
++ |. 9#5 ## |
++ |. ##1 ####3|
++ |. 8#8 ## |
++ |. 1c#9 ## |
++ |. 49###4 ## |
++ |.4##a3 88 |
++ |. |
++ |. 9##########9 |
++ |. 1## 1## |
++ -&gt;|. 1## 1## |&lt;-
++ |. 1## 2## |
++ |. a##########7 |
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xac15 '강'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.7#######4 1#c .|
++ |. 4#a 1## .|
++ |. 4#9 1## .|
++ |. 7#5 1####2.|
++ |. 3#b 1## .|
++ |. 7#c1 1## .|
++ |.3a###6 1## .|
++ |.4a83 1## .|
++ |. 55 .|
++ |. 19######a2 .|
++ |. 4##71 17##5 .|
++ -&gt;|. ##2 2## .|&lt;-
++ |. ##2 2## .|
++ |. 5##82 14a##4 .|
++ |. 19######71 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xac19 '같'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.6#######6 c# .|
++ |. 2#b ## .|
++ |. 2#a ## .|
++ |. 7#6 ####4.|
++ |. 3#a ## .|
++ |. 19#9 ## .|
++ |.7###c3 ## .|
++ |.363 c# .|
++ |. .|
++ |. b##########7 .|
++ |. 1## .|
++ -&gt;|. 1###########6 .|&lt;-
++ |. 1## .|
++ |. a##########7 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xac1c '개'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..8#####7 cc #c..|
++ |.. 1## ## ##..|
++ |.. ## ## ##..|
++ |.. 1#c ## ##..|
++ |.. 2#b ## ##..|
++ |.. 4#9 ######..|
++ |.. 7#6 ## ##..|
++ |.. 1##1 ## ##..|
++ |.. a#7 ## ##..|
++ |.. 1b#a ## ##..|
++ |..8##7 ## ##..|
++ -&gt;|..561 ## ##..|&lt;-
++ |.. ## ##..|
++ |.. ## ##..|
++ |.. 44 66..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xac70 '거'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. a######8 #c..|
++ |.. ##2 ##..|
++ |.. c#2 ##..|
++ |.. c#1 ##..|
++ |.. ## ##..|
++ |.. 3#a ##..|
++ |.. 8#6c####..|
++ |.. 3## ##..|
++ |.. 1##4 ##..|
++ |.. 3##5 ##..|
++ |..1a###3 ##..|
++ -&gt;|..1893 ##..|&lt;-
++ |.. ##..|
++ |.. ##..|
++ |.. 55..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xac80 '검'
++ Font: gulim (17)
++ Bitmap: 15 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. b######a c# ..|
++ |. b#3 ## ..|
++ |. a#3 ## ..|
++ |. c# ## ..|
++ |. 3#b##### ..|
++ |. 1cc1 ## ..|
++ |. 17#b1 ## ..|
++ |.4####4 ## ..|
++ |. 22 ..|
++ |. 8##########a..|
++ |. ##1 ##..|
++ -&gt;|. ## ##..|&lt;-
++ |. ##1 1##..|
++ |. 9##########8..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xac83 '것'
++ Font: gulim (17)
++ Bitmap: 15 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. c######a cc ..|
++ |. ##2 ## ..|
++ |. c#1 ## ..|
++ |. 1#c ## ..|
++ |. 8#9##### ..|
++ |. a#9 ## ..|
++ |. 4a##6 ## ..|
++ |.5###6 ## ..|
++ |. ## ..|
++ |. 8c3 66 ..|
++ |. 5##b ..|
++ -&gt;|. 5##8#9 ..|&lt;-
++ |. 27##b1 7##51 ..|
++ |. 6##c3 3###7..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xac8c '게'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. #####8 cc cc..|
++ |.. ##1 ## ##..|
++ |.. ## ## ##..|
++ |.. ## ## ##..|
++ |.. 1#c ## ##..|
++ |.. 2#b ## ##..|
++ |.. 5#a#### ##..|
++ |.. a#4 ## ##..|
++ |.. 5#a ## ##..|
++ |.. 5#c1 ## ##..|
++ |..2c#b1 ## ##..|
++ -&gt;|..153 ## ##..|&lt;-
++ |.. ## ##..|
++ |.. ## ##..|
++ |.. 55..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xaca0 '겠'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.1#####b1 cc cc .|
++ |. b#4 ## ## .|
++ |. a#4 ## ## .|
++ |. a#3 ## ## .|
++ |. ###### ## .|
++ |. 6#9 ## ## .|
++ |. 4##1 ## ## .|
++ |. 3c#b1 cc ## .|
++ |.4##5 cc .|
++ |. 2b8 7a3 .|
++ |. 6## a#7 .|
++ -&gt;|. c##4 2### .|&lt;-
++ |. 8#c##2 c###8 .|
++ |. a#9 4####6 a##1.|
++ |. 22 1331 22 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xaca9 '격'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. c######9 #c..|
++ |.. ##2 1##..|
++ |.. c#1 1##..|
++ |.. #ca####..|
++ |.. 4c7 1##..|
++ |.. 3c9 1##..|
++ |.. 29#5 b####..|
++ |..3c#c4 1##..|
++ |.. a9..|
++ |.. ..|
++ |.. b##########7..|
++ -&gt;|.. 3#c..|&lt;-
++ |.. 2#c..|
++ |.. 2#c..|
++ |.. 2#b..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xacac '견'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. c######8 #c..|
++ |.. ##2 ##..|
++ |.. c#1 ##..|
++ |.. #######..|
++ |.. 3c8 ##..|
++ |.. 2cb1 ##..|
++ |.. 7#91 ##..|
++ |..5###92 c####..|
++ |..131 ##..|
++ |.. 33 ##..|
++ |.. ## ##..|
++ -&gt;|.. ## 11..|&lt;-
++ |.. ##1 ..|
++ |.. 9##########b..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xacb0 '결'
++ Font: gulim (17)
++ Bitmap: 15 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.1#######8 #c ..|
++ |. c#2 1## ..|
++ |. b###### ..|
++ |. cb 1## ..|
++ |. 8#6 1## ..|
++ |. 1a#81##### ..|
++ |. 4b##5 1## ..|
++ |.5###5 cb ..|
++ |. ..|
++ |. b#########a ..|
++ |. 1## ..|
++ -&gt;|. a#########9 ..|&lt;-
++ |. c#2 ..|
++ |. 9##########7..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xacbd '경'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. c######9 c#...|
++ |. c#2 ##...|
++ |. b#1 ##...|
++ |. 1#ba####...|
++ |. a#4 ##...|
++ |. 2##6 ##...|
++ |. 4c##3 9####...|
++ |.5###4 ##...|
++ |. 88...|
++ |. 2a######a2 ...|
++ |. 5##81 17##5...|
++ -&gt;|. c#2 2##...|&lt;-
++ |. c#2 2##...|
++ |. 4##83 14a##5...|
++ |. 18######81 ...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xacc4 '계'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..1#####8 aa cc..|
++ |.. 1## ## ##..|
++ |.. ## ## ##..|
++ |.. ###### ##..|
++ |.. 1#c ## ##..|
++ |.. 2#b ## ##..|
++ |.. 5#8 ## ##..|
++ |.. a#3 ## ##..|
++ |.. 5#a6#### ##..|
++ |.. 5#c1 ## ##..|
++ |..2c#b1 ## ##..|
++ -&gt;|..253 ## ##..|&lt;-
++ |.. ## ##..|
++ |.. cc ##..|
++ |.. 55..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xace0 '고'
++ Font: gulim (17)
++ Bitmap: 14 x 13
++ Advance: 18
++ Offset: 2 x -1
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 8##########8 ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. 1## ..|
++ |.. 77 2#c ..|
++ |.. ## 4#9 ..|
++ |.. ## 8#6 ..|
++ |.. ## b#2 ..|
++ |.. ## 77 ..|
++ -&gt;|.. ## ..|&lt;-
++ |..b############b..|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xacf3 '곳'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. b##########6 .|
++ |. 1#c .|
++ |. ##1 .|
++ |. ab ## .|
++ |. ## ## .|
++ |. ## 1#c .|
++ |. ## 2#b .|
++ |.1##############1.|
++ |. .|
++ |. 2b9 .|
++ |. a##6 .|
++ -&gt;|. a#9##4 .|&lt;-
++ |. 17##6 1##a1 .|
++ |. a##91 7###1 .|
++ |. 1 32 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xacf5 '공'
++ Font: gulim (17)
++ Bitmap: 15 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. b##########6 ..|
++ |. 1#b ..|
++ |. c# ..|
++ |. 66 ## ..|
++ |. ## ## ..|
++ |. ## 1#c ..|
++ |. ## 2c9 ..|
++ |.3#############a..|
++ |. ..|
++ |. 2a######a2 ..|
++ |. 7##71 17##7 ..|
++ -&gt;|. ##2 1## ..|&lt;-
++ |. 7##5 5##8 ..|
++ |. 3c######c3 ..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xacfc '과'
++ Font: gulim (17)
++ Bitmap: 17 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 9#######a #c |
++ |. ## ## |
++ |. ## ## |
++ |. ## ## |
++ |. ## ## |
++ |. ## ## |
++ |. ## 1#b ####2|
++ |. ## 4#9 ## |
++ |. ## 7b4 ## |
++ |. ## ## |
++ |. ##1347a### |
++ -&gt;|.5############# |&lt;-
++ |. ## |
++ |. ## |
++ |. 77 |
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xad00 '관'
++ Font: gulim (17)
++ Bitmap: 17 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 4#######a #c |
++ |. ##1 ## |
++ |. ##1 ## |
++ |. 77 ## ## |
++ |. ## ## ## |
++ |. ## ## ####2|
++ |. ## 5##58## |
++ |.1############# |
++ |. ## |
++ |. 33 ## |
++ |. 1## bb |
++ -&gt;|. 1## |&lt;-
++ |. ##1 |
++ |. 9##########a |
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xad6c '구'
++ Font: gulim (17)
++ Bitmap: 15 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. c##########6 ..|
++ |. 3## ..|
++ |. ## ..|
++ |. ## ..|
++ |. #c ..|
++ |. 1#b ..|
++ |. 3#a ..|
++ |. 5#8 ..|
++ |.5#############a..|
++ |. ## ..|
++ |. ## ..|
++ -&gt;|. ## ..|&lt;-
++ |. ## ..|
++ |. ## ..|
++ |. 66 ..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xadf8 '그'
++ Font: gulim (17)
++ Bitmap: 14 x 13
++ Advance: 18
++ Offset: 2 x -1
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..1##########b ..|
++ |.. ##1 ..|
++ |.. c#1 ..|
++ |.. c#1 ..|
++ |.. ##1 ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. 1#c ..|
++ |.. 3#b ..|
++ -&gt;|.. 5#8 ..|&lt;-
++ |..b############6..|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xadfc '근'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 2###########9 .|
++ |. ##1 .|
++ |. c#1 .|
++ |. ## .|
++ |. ## .|
++ |. #c .|
++ |. 1#c .|
++ |.1##############1.|
++ |. .|
++ |. 78 .|
++ |. ## .|
++ -&gt;|. ## .|&lt;-
++ |. ##1 .|
++ |. 8##########b .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xae00 '글'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 2###########7 .|
++ |. 2## .|
++ |. 1#c .|
++ |. 2#a .|
++ |. 3#9 .|
++ |.1##############1.|
++ |. .|
++ |. .|
++ |. a##########9 .|
++ |. ## .|
++ |. 8##########b .|
++ -&gt;|. c#2 .|&lt;-
++ |. c#2 .|
++ |. 8##########c .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xae08 '금'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 4###########6 .|
++ |. 3#c .|
++ |. 2#b .|
++ |. 3#a .|
++ |. 4#9 .|
++ |. 5#8 .|
++ |.1##############1.|
++ |. .|
++ |. .|
++ |. 8##########9 .|
++ |. ##1 1## .|
++ -&gt;|. ## ## .|&lt;-
++ |. ##1 1## .|
++ |. 8##########8 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xae09 '급'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 3###########7 .|
++ |. 2## .|
++ |. 1#c .|
++ |. 2#b .|
++ |. 2#a .|
++ |. 3#9 .|
++ |.1##############1.|
++ |. .|
++ |. c# bb .|
++ |. ## ## .|
++ |. ############ .|
++ -&gt;|. ## ## .|&lt;-
++ |. ##1 1## .|
++ |. 8##########8 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xae30 '기'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 9######a #c..|
++ |.. c#3 ##..|
++ |.. 9#3 ##..|
++ |.. a#2 ##..|
++ |.. b#1 ##..|
++ |.. ## ##..|
++ |.. 4#a ##..|
++ |.. c#4 ##..|
++ |.. a#8 ##..|
++ |.. 3##8 ##..|
++ |..1a###4 ##..|
++ -&gt;|.. 562 ##..|&lt;-
++ |.. ##..|
++ |.. ##..|
++ |.. 55..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xae34 '긴'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. b######b cc..|
++ |.. b#3 ##..|
++ |.. b#3 ##..|
++ |.. c#1 ##..|
++ |.. 2#b ##..|
++ |.. 2##4 ##..|
++ |.. 18##5 ##..|
++ |..2a###a2 ##..|
++ |..29a4 ##..|
++ |.. 33 ##..|
++ |.. ## 77..|
++ -&gt;|.. ## ..|&lt;-
++ |.. ##1 ..|
++ |.. 9##########b..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xae38 '길'
++ Font: gulim (17)
++ Bitmap: 15 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.1#######b1 cc ..|
++ |. a#4 ## ..|
++ |. 9#3 ## ..|
++ |. c# ## ..|
++ |. 5#9 ## ..|
++ |. 6#c ## ..|
++ |. 38##8 ## ..|
++ |.6###71 bb ..|
++ |. b#########8 ..|
++ |. ## ..|
++ |. 1## ..|
++ -&gt;|. a#########9 ..|&lt;-
++ |. c#2 ..|
++ |. 9##########7..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xae4c '까'
++ Font: gulim (17)
++ Bitmap: 17 x 15
++ Advance: 18
++ Offset: 0 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ | 9###a8###a c# .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | 1#c ## ## .|
++ | 3#a #c ####3.|
++ | 7#7 2#a ## .|
++ | c#3 5#8 ## .|
++ | 8#a a#4 ## .|
++ | 9#c1 5#c ## .|
++ -&gt;|177 1##2 ## .|&lt;-
++ | ## .|
++ | ## .|
++ | 33 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xaebc '꺼'
++ Font: gulim (17)
++ Bitmap: 15 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 4###ab###7 #c..|
++ |. ## c#8 ##..|
++ |. ## c#2 ##..|
++ |. ## b#1 ##..|
++ |. ## b#1 ##..|
++ |. ## bc1 ##..|
++ |. 2#b c#5####..|
++ |. 4#9 ## ##..|
++ |. 9#5 #c ##..|
++ |. 3## 3#a ##..|
++ |. 5##3 9#5 ##..|
++ -&gt;|.1cc2 6#c ##..|&lt;-
++ |. bc1 ##..|
++ |. ##..|
++ |. 77..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xaed8 '께'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 9##7b##8 bbc#..|
++ |.. 2#c #c ####..|
++ |.. cc cc ####..|
++ |.. cc cc ####..|
++ |.. cc cc ####..|
++ |.. cb c######..|
++ |.. 1cb 1#b ####..|
++ |.. 3#9 2#a ####..|
++ |.. 9#5 5#8 ####..|
++ |.. 4#b b#4 ####..|
++ |..4##2 8#a ####..|
++ -&gt;|..121 1a9 ####..|&lt;-
++ |.. ####..|
++ |.. ####..|
++ |.. 1133..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb044 '끄'
++ Font: gulim (17)
++ Bitmap: 14 x 13
++ Advance: 18
++ Offset: 2 x -1
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..2#####a9####a ..|
++ |.. ##1 ## ..|
++ |.. c#1 ## ..|
++ |.. c#1 ## ..|
++ |.. ## ## ..|
++ |.. ## ## ..|
++ |.. ## ## ..|
++ |.. 1#c 1#c ..|
++ |.. 2#b 2#b ..|
++ |.. 4#9 4#9 ..|
++ |.. 7#7 6#7 ..|
++ -&gt;|.. 9#5 8#5 ..|&lt;-
++ |..c############c..|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb098 '나'
++ Font: gulim (17)
++ Bitmap: 15 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..88 #c .|
++ |..## 1## .|
++ |..## 1## .|
++ |..## 1## .|
++ |..## 1## .|
++ |..## 1## .|
++ |..## 1####5.|
++ |..## 1## .|
++ |..## 1## .|
++ |..##4 148### .|
++ |..4########c## .|
++ -&gt;|.. 1## .|&lt;-
++ |.. 1## .|
++ |.. 1## .|
++ |.. 66 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb09c '난'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.11 .|
++ |.## ## .|
++ |.## ## .|
++ |.## ## .|
++ |.## ## .|
++ |.## ####3.|
++ |.##1 15## .|
++ |.8############ .|
++ |. 111 ## .|
++ |. ## .|
++ |. c# ## .|
++ |. ##1 33 .|
++ -&gt;|. ##1 .|&lt;-
++ |. ##2 .|
++ |. 8##########b .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb0a8 '남'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.88 ## .|
++ |.## ## .|
++ |.## ## .|
++ |.## ####3.|
++ |.## ## .|
++ |.##3 136a### .|
++ |.5#########b## .|
++ |. ## .|
++ |. 33 .|
++ |. 8##########8 .|
++ |. ##1 1## .|
++ -&gt;|. ## ## .|&lt;-
++ |. ##1 1## .|
++ |. 9##########7 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb0ac '났'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.aa ## .|
++ |.## ## .|
++ |.## ## .|
++ |.## ####3.|
++ |.## ## .|
++ |.##3 136a### .|
++ |.5#########b## .|
++ |. ## .|
++ |. 88 .|
++ |. 3b8 6c5 .|
++ |. 7#c a#9 .|
++ -&gt;|. ###3 2###1 .|&lt;-
++ |. a#c##11c#c#b .|
++ |.c#8 5####6 8##2 .|
++ |.11 1231 12 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb0b4 '내'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. a9 cc cc..|
++ |..1## ## ##..|
++ |..1## ## ##..|
++ |..1## ## ##..|
++ |..1## ## ##..|
++ |..1## ## ##..|
++ |..1## ######..|
++ |..1## ## ##..|
++ |..1## ## ##..|
++ |.. ##1 2## ##..|
++ |.. 7######## ##..|
++ -&gt;|.. ## ##..|&lt;-
++ |.. ## ##..|
++ |.. ## ##..|
++ |.. 22 55..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb110 '널'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..bc c# ..|
++ |..## ##1..|
++ |..## 6######1..|
++ |..## ##1..|
++ |..## ##1..|
++ |..##4 137#c4 ##1..|
++ |..6######c5 ##1..|
++ |.. 78 ..|
++ |.. b##########7 ..|
++ |.. ## ..|
++ |.. 1## ..|
++ -&gt;|.. a##########9 ..|&lt;-
++ |.. c#2 ..|
++ |.. 9##########a ..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb124 '네'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 3 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |...bb bb #c..|
++ |...## ## ##..|
++ |...## ## ##..|
++ |...## ## ##..|
++ |...## ## ##..|
++ |...## 3##### ##..|
++ |...## ## ##..|
++ |...## ## ##..|
++ |...## ## ##..|
++ |...## 486## ##..|
++ |...a#####8## ##..|
++ -&gt;|... 11 ## ##..|&lt;-
++ |... ## ##..|
++ |... cc ##..|
++ |... 44..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb137 '넷'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..bb 99 #c ..|
++ |..## ## ## ..|
++ |..## ## ## ..|
++ |..## 2##### ## ..|
++ |..## ## ## ..|
++ |..## ## ## ..|
++ |..##2 1## ## ..|
++ |..7######## ## ..|
++ |.. cc ## ..|
++ |.. 78 33 ..|
++ |.. 5##7 ..|
++ -&gt;|.. 3####3 ..|&lt;-
++ |.. 7##21##8 ..|
++ |..7###8 19###3..|
++ |..385 441..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb144 '년'
++ Font: gulim (17)
++ Bitmap: 13 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..99 cc...|
++ |..## ##...|
++ |..## b#####...|
++ |..## ##...|
++ |..## ##...|
++ |..## b#####...|
++ |..##1 11 ##...|
++ |..8#######5 ##...|
++ |.. 122 ##...|
++ |.. 33 ##...|
++ |.. ##1 aa...|
++ -&gt;|.. ##1 ...|&lt;-
++ |.. ##2 ...|
++ |.. 8##########c...|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb178 '노'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 77 .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ##1 .|
++ |. 7##########c .|
++ |. .|
++ |. bb .|
++ |. ## .|
++ -&gt;|. ## .|&lt;-
++ |. ## .|
++ |.2##############1.|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb192 '높'
++ Font: gulim (17)
++ Bitmap: 15 x 15
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 11 ..|
++ |. ## ..|
++ |. ## ..|
++ |. ## ..|
++ |. ## ..|
++ |. 8##########a ..|
++ |. 1## ..|
++ |. 1## ..|
++ |.7#############a..|
++ |. ..|
++ |. 2###########b ..|
++ |. 3#b b#1 ..|
++ -&gt;|. 1#c ## ..|&lt;-
++ |. ## ## ..|
++ |. b###########b ..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb204 '누'
++ Font: gulim (17)
++ Bitmap: 15 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 9a .|
++ |.. ##1 .|
++ |.. ##1 .|
++ |.. ##1 .|
++ |.. ##3 .|
++ |.. 6###########3 .|
++ |.. .|
++ |.. .|
++ |..b#############5.|
++ |.. ##1 .|
++ |.. ##1 .|
++ -&gt;|.. ##1 .|&lt;-
++ |.. ##1 .|
++ |.. ##1 .|
++ |.. 55 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb205 '눅'
++ Font: gulim (17)
++ Bitmap: 15 x 16
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 11 ..|
++ |. 1## ..|
++ |. 1## ..|
++ |. 1## ..|
++ |. 1##1 ..|
++ |. 9###########2..|
++ |. ..|
++ |. ..|
++ |.5#############a..|
++ |. ## ..|
++ |. ## ..|
++ |. 2###########9 ..|
++ -&gt;|. 1## ..|&lt;-
++ |. ## ..|
++ |. ## ..|
++ |. #c ..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb20c '눌'
++ Font: gulim (17)
++ Bitmap: 15 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 9a ..|
++ |. ##1 ..|
++ |. ##1 ..|
++ |. ##3 ..|
++ |. 7###########3..|
++ |. ..|
++ |.1#############c..|
++ |. ## ..|
++ |. ## ..|
++ |. b##########a ..|
++ |. ## ..|
++ -&gt;|. b##########9 ..|&lt;-
++ |. ## ..|
++ |. a###########5..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb274 '뉴'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 9a .|
++ |. ##1 .|
++ |. ##1 .|
++ |. ##1 .|
++ |. ##3 .|
++ |. 7##########b .|
++ |. .|
++ |. .|
++ |.1##############1.|
++ |. ## ## .|
++ |. ## ## .|
++ -&gt;|. ## ## .|&lt;-
++ |. ## ## .|
++ |. ## ## .|
++ |. 33 55 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb294 '는'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 45 .|
++ |. ##1 .|
++ |. ##1 .|
++ |. ##1 .|
++ |. ##3 .|
++ |. 7########### .|
++ |. .|
++ |. .|
++ |.1##############1.|
++ |. 55 .|
++ |. ## .|
++ -&gt;|. ## .|&lt;-
++ |. ##1 .|
++ |. 8###########2 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb2a5 '능'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. c#1 .|
++ |. ##1 .|
++ |. ##1 .|
++ |. ##2 .|
++ |. 8##########b .|
++ |. .|
++ |. .|
++ |.1#############c1.|
++ |. .|
++ |. 18######5 .|
++ |. 5##a3115###3 .|
++ -&gt;|. ##3 4#c .|&lt;-
++ |. ##2 3#c .|
++ |. 4##a4 14b##4 .|
++ |. 17######71 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb2c8 '니'
++ Font: gulim (17)
++ Bitmap: 12 x 15
++ Advance: 18
++ Offset: 3 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |...cb cc...|
++ |...## ##...|
++ |...## ##...|
++ |...## ##...|
++ |...## ##...|
++ |...## ##...|
++ |...## ##...|
++ |...## ##...|
++ |...## ##...|
++ |...##1 147###...|
++ |...8###########...|
++ -&gt;|... ##...|&lt;-
++ |... ##...|
++ |... ##...|
++ |... 33...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb2d9 '닙'
++ Font: gulim (17)
++ Bitmap: 13 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..bc c#...|
++ |..## ##...|
++ |..## ##...|
++ |..## ##...|
++ |..##1 26b##...|
++ |..8############...|
++ |.. 111 ##...|
++ |.. 77...|
++ |.. bb ab...|
++ |.. ## ##...|
++ |.. ###########...|
++ -&gt;|.. ## ##...|&lt;-
++ |.. ## 1##...|
++ |.. 9#########8...|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb2e4 '다'
++ Font: gulim (17)
++ Bitmap: 15 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..7#######1 c# .|
++ |..##1 ## .|
++ |..## ## .|
++ |..## ## .|
++ |..## ## .|
++ |..## ####3.|
++ |..## ## .|
++ |..## ## .|
++ |..## ## .|
++ |..##1 259### .|
++ |..8#######a6## .|
++ -&gt;|.. ## .|&lt;-
++ |.. ## .|
++ |.. ## .|
++ |.. 66 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb2e8 '단'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.6#######a #c .|
++ |.##2 1## .|
++ |.## 1## .|
++ |.## 1####2.|
++ |.## 1## .|
++ |.## 1## .|
++ |.##1 137b### .|
++ |.7######a1 1## .|
++ |. 1## .|
++ |. c#1 1## .|
++ |. ##1 a9 .|
++ -&gt;|. ##1 .|&lt;-
++ |. ##2 .|
++ |. 8###########4 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb2ec '달'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.6#######a #c .|
++ |.##2 1## .|
++ |.## 1## .|
++ |.## 1####2.|
++ |.## 1## .|
++ |.##1 136c### .|
++ |.7######a1 1## .|
++ |. 33 .|
++ |. a##########a .|
++ |. ##1 .|
++ |. 8##########c .|
++ -&gt;|. c#2 .|&lt;-
++ |. c#2 .|
++ |. 9##########a .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb2f9 '당'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.6#######a #c .|
++ |.##2 1## .|
++ |.## 1## .|
++ |.## 1####2.|
++ |.## 1## .|
++ |.##1 149### .|
++ |.8########b8## .|
++ |. 11 1## .|
++ |. 87 .|
++ |. 2a######81 .|
++ |. 6##71 19##4 .|
++ -&gt;|. ##2 3## .|&lt;-
++ |. c#4 3## .|
++ |. 3##c4115###3 .|
++ |. 5######6 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb300 '대'
++ Font: gulim (17)
++ Bitmap: 12 x 15
++ Advance: 18
++ Offset: 3 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |...7#####2cc c#...|
++ |...##1 ## ##...|
++ |...## ## ##...|
++ |...## ## ##...|
++ |...## ## ##...|
++ |...## #####...|
++ |...## ## ##...|
++ |...## ## ##...|
++ |...## ## ##...|
++ |...## ## ##...|
++ |...##1 25a## ##...|
++ -&gt;|...6######## ##...|&lt;-
++ |... ## ##...|
++ |... ## ##...|
++ |... 22 55...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb354 '더'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 7######c c#...|
++ |.. ##1 ##...|
++ |..1## ##...|
++ |..1## ##...|
++ |..1## ##...|
++ |..1## 4######...|
++ |..1## ##...|
++ |..1## ##...|
++ |..1## ##...|
++ |..1## ##...|
++ |.. ##21359#b1##...|
++ -&gt;|.. 8######c5 ##...|&lt;-
++ |.. ##...|
++ |.. ##...|
++ |.. 44...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb370 '데'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 3 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |...6####b cc #c..|
++ |...##1 ## ##..|
++ |...## ## ##..|
++ |...## ## ##..|
++ |...## ## ##..|
++ |...## 3##### ##..|
++ |...## ## ##..|
++ |...## ## ##..|
++ |...## ## ##..|
++ |...## 1485## ##..|
++ |...9#####6## ##..|
++ -&gt;|... ## ##..|&lt;-
++ |... ## ##..|
++ |... ## ##..|
++ |... 55..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb3c4 '도'
++ Font: gulim (17)
++ Bitmap: 16 x 13
++ Advance: 18
++ Offset: 1 x -1
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 7##########a .|
++ |. ##1 .|
++ |. 1## .|
++ |. 1## .|
++ |. 1## .|
++ |. 1## .|
++ |. ##1 .|
++ |. 6##########c .|
++ |. 77 .|
++ |. ## .|
++ |. ## .|
++ -&gt;|. ## .|&lt;-
++ |.1##############1.|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb3cc '돌'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 7##########c .|
++ |. ##2 .|
++ |. ##1 .|
++ |. ##2 .|
++ |. 6##########b .|
++ |. ## .|
++ |.1##############1.|
++ |. .|
++ |. b##########7 .|
++ |. ## .|
++ |. 1## .|
++ -&gt;|. a##########8 .|&lt;-
++ |. c#2 .|
++ |. 9###########2 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb3d9 '동'
++ Font: gulim (17)
++ Bitmap: 15 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 7##########b ..|
++ |. ##2 ..|
++ |. ##1 ..|
++ |. ##2 ..|
++ |. 8##########b ..|
++ |. ## ..|
++ |. ## ..|
++ |.1##############..|
++ |. ..|
++ |. 2a######81 ..|
++ |. 6##71 18##4 ..|
++ -&gt;|. ##2 2## ..|&lt;-
++ |. ##4 3## ..|
++ |. 3##c4115###3 ..|
++ |. 5######6 ..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb418 '되'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 3 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |... 9#######8 #c..|
++ |...1##1 ##..|
++ |...1## ##..|
++ |...1## ##..|
++ |...1## ##..|
++ |...1## ##..|
++ |...1##1 ##..|
++ |... 7#######a ##..|
++ |... ## ##..|
++ |... ## ##..|
++ |... 1## 259##..|
++ -&gt;|...9############..|&lt;-
++ |... ##..|
++ |... ##..|
++ |... 66..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb41c '된'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 8########1cc ..|
++ |.. ##3 ## ..|
++ |.. ##1 ## ..|
++ |.. ##1 ## ..|
++ |.. ##2 ## ..|
++ |.. 6########4## ..|
++ |.. ## ## ..|
++ |.. 1## 25a## ..|
++ |..c############ ..|
++ |.. 33 ## ..|
++ |.. ## bc ..|
++ -&gt;|.. ## ..|&lt;-
++ |.. ##1 ..|
++ |.. 8##########b..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb420 '될'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 8#######b ## ..|
++ |.. ##2 ## ..|
++ |.. ##1 ## ..|
++ |.. ##2 ## ..|
++ |.. 8########1## ..|
++ |.. ## 3## ..|
++ |.. ######## ..|
++ |..c#####3 ## ..|
++ |.. 22 ..|
++ |.. b#########b ..|
++ |.. 1## ..|
++ -&gt;|.. b#########9 ..|&lt;-
++ |.. ##1 ..|
++ |.. a##########7..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb428 '됨'
++ Font: gulim (17)
++ Bitmap: 13 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 8########1c#...|
++ |.. ##3 ##...|
++ |.. ##1 ##...|
++ |.. ##2 ##...|
++ |.. 8########4##...|
++ |.. ## ##...|
++ |.. 1## 29###...|
++ |..b#########c##...|
++ |.. 99...|
++ |.. 8#########7...|
++ |.. ##1 2##...|
++ -&gt;|.. ## 1##...|&lt;-
++ |.. ## 2##...|
++ |.. 9#########7...|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb429 '됩'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 8########1c#...|
++ |. ##3 ##...|
++ |. ##1 ##...|
++ |. ##2 ##...|
++ |. 8########4##...|
++ |. ## ##...|
++ |. 1## 14b##...|
++ |.4#############...|
++ |. 44 77...|
++ |. ## ##...|
++ |. ###########...|
++ -&gt;|. ## ##...|&lt;-
++ |. ##1 1##...|
++ |. 9#########8...|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb450 '두'
++ Font: gulim (17)
++ Bitmap: 15 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 7##########8 ..|
++ |. ##2 ..|
++ |. ##1 ..|
++ |. ##1 ..|
++ |. ##2 ..|
++ |. 7##########c ..|
++ |. ..|
++ |. ..|
++ |.1#############b..|
++ |. ## ..|
++ |. ## ..|
++ -&gt;|. ## ..|&lt;-
++ |. ## ..|
++ |. ## ..|
++ |. 22 ..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb458 '둘'
++ Font: gulim (17)
++ Bitmap: 15 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 7##########c ..|
++ |. ##2 ..|
++ |. ##1 ..|
++ |. ##1 ..|
++ |. 7###########2..|
++ |. ..|
++ |. ..|
++ |.1#############c..|
++ |. ## ..|
++ |. b##########a ..|
++ |. ## ..|
++ -&gt;|. a##########9 ..|&lt;-
++ |. ## ..|
++ |. a###########5..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb4a4 '뒤'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 6#######7 c#...|
++ |. ##2 ##...|
++ |. ##1 ##...|
++ |. ##1 ##...|
++ |. ##1 ##...|
++ |. 7#######a ##...|
++ |. ##...|
++ |. 1246a###...|
++ |.1##########9##...|
++ |. 1 ## ##...|
++ |. ## ##...|
++ -&gt;|. ## ##...|&lt;-
++ |. ## ##...|
++ |. ## ##...|
++ |. 22 56...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb4c8 '듈'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 8##########b .|
++ |. ##2 .|
++ |. ##1 .|
++ |. ##2 .|
++ |. 8###########1 .|
++ |. .|
++ |. .|
++ |.1##############1.|
++ |. ## ## .|
++ |. b##########a .|
++ |. 1## .|
++ -&gt;|. b##########a .|&lt;-
++ |. ## .|
++ |. b###########2 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb4dc '드'
++ Font: gulim (17)
++ Bitmap: 16 x 13
++ Advance: 18
++ Offset: 1 x -1
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 8##########a .|
++ |. ##1 .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ##1 .|
++ |. 7###########1 .|
++ |. .|
++ |. .|
++ |. .|
++ -&gt;|. .|&lt;-
++ |.1##############1.|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb4e0 '든'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 8##########a .|
++ |. ##2 .|
++ |. ##1 .|
++ |. ##1 .|
++ |. ##2 .|
++ |. 8##########b .|
++ |. .|
++ |. .|
++ |.1##############1.|
++ |. 33 .|
++ |. ## .|
++ -&gt;|. ## .|&lt;-
++ |. ##1 .|
++ |. 8##########b .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb4e4 '들'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 8##########c .|
++ |. ##2 .|
++ |. ##1 .|
++ |. ##2 .|
++ |. 7###########1 .|
++ |. .|
++ |.1##############1.|
++ |. .|
++ |. a##########7 .|
++ |. 1## .|
++ |. 2## .|
++ -&gt;|. a##########8 .|&lt;-
++ |. c#2 .|
++ |. 9##########c .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb514 '디'
++ Font: gulim (17)
++ Bitmap: 12 x 15
++ Advance: 18
++ Offset: 3 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |...5#######1 cc...|
++ |...##1 ##...|
++ |...## ##...|
++ |...## ##...|
++ |...## ##...|
++ |...## ##...|
++ |...## ##...|
++ |...## ##...|
++ |...## 1##...|
++ |...##3 149####...|
++ |...c#######c6##...|
++ -&gt;|...2b##4 ##...|&lt;-
++ |... ##...|
++ |... ##...|
++ |... 33...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb530 '따'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.8####b###b #c .|
++ |.##2 ##1 ## .|
++ |.## ## ## .|
++ |.## ## ## .|
++ |.## ## ## .|
++ |.## ## ## .|
++ |.## ## ####1.|
++ |.## ## ## .|
++ |.## ## ## .|
++ |.##124##225c## .|
++ |.a############ .|
++ -&gt;|. ## .|&lt;-
++ |. ## .|
++ |. ## .|
++ |. 33 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb54c '때'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..8###c##bcc c#...|
++ |..##1 ## ## ##...|
++ |..## ## ## ##...|
++ |..## ## ## ##...|
++ |..## ## ## ##...|
++ |..## ## ## ##...|
++ |..## ## #####...|
++ |..## ## ## ##...|
++ |..## ## ## ##...|
++ |..##11##14## ##...|
++ |..9######### ##...|
++ -&gt;|.. ## ##...|&lt;-
++ |.. ## ##...|
++ |.. cc ##...|
++ |.. 34...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb5a0 '떠'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 3 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |...7###a7####2#c..|
++ |...##1 ##1 ##..|
++ |...## ## ##..|
++ |...## ## ##..|
++ |...## ## ##..|
++ |...## ## 9####..|
++ |...## ## ##..|
++ |...## ## ##..|
++ |...## ## ##..|
++ |...## ## 11##..|
++ |...a###a8####8##..|
++ -&gt;|... ##..|&lt;-
++ |... ##..|
++ |... ##..|
++ |... 44..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb610 '또'
++ Font: gulim (17)
++ Bitmap: 14 x 13
++ Advance: 18
++ Offset: 2 x -1
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..7#####28#####6..|
++ |..## ## ..|
++ |..## ## ..|
++ |..## ## ..|
++ |..## ## ..|
++ |..## ## ..|
++ |..##1133 ## ..|
++ |..7#####48#####8..|
++ |.. ..|
++ |.. #c ..|
++ |.. ## ..|
++ -&gt;|.. ## ..|&lt;-
++ |..b############b..|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb73b '뜻'
++ Font: gulim (17)
++ Bitmap: 15 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 7#####28#####4..|
++ |. ##1 ## ..|
++ |. ## ## ..|
++ |. ## ## ..|
++ |. ## 122 ## ..|
++ |. 7#####48#####6..|
++ |. ..|
++ |. b############b..|
++ |. ..|
++ |. 3## ..|
++ |. c##8 ..|
++ -&gt;|. 2##69#7 ..|&lt;-
++ |. 2a##4 9##5 ..|
++ |.2###5 3###2..|
++ |. 11 ..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb77c '라'
++ Font: gulim (17)
++ Bitmap: 15 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..c######7 ## .|
++ |.. 1## ##1 .|
++ |.. ## ##1 .|
++ |.. ## ##1 .|
++ |.. 1## ##1 .|
++ |..a######9 ##1 .|
++ |..## ####3.|
++ |..## ##1 .|
++ |..## ##1 .|
++ |..## 26###1 .|
++ |..9###########1 .|
++ -&gt;|.. 1 ##1 .|&lt;-
++ |.. ##1 .|
++ |.. ##1 .|
++ |.. 44 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb798 '래'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..a#####7 bb c#...|
++ |.. 1## ## ##...|
++ |.. ## ## ##...|
++ |.. ## ## ##...|
++ |.. 1## ## ##...|
++ |..7#####9 #####...|
++ |..##1 ## ##...|
++ |..## ## ##...|
++ |..## ## ##...|
++ |..##1 16## ##...|
++ |..8######### ##...|
++ -&gt;|.. ## ##...|&lt;-
++ |.. ## ##...|
++ |.. cc ##...|
++ |.. 33...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb7a8 '램'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..a#####8 cc c# ..|
++ |.. 2## ## ## ..|
++ |.. 1## ## ## ..|
++ |..6#####9 ##### ..|
++ |..##2 ## ## ..|
++ |..## ## ## ..|
++ |..##1 29## ## ..|
++ |..7######### ## ..|
++ |.. 11 44 ..|
++ |.. 8#########9 ..|
++ |.. ## ##1..|
++ -&gt;|.. ## ##1..|&lt;-
++ |.. ## ##1..|
++ |.. 9#########9 ..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb7c9 '량'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.a#######8 ## .|
++ |. 1## ## .|
++ |. 1## ####2.|
++ |.6#######9 ## .|
++ |.c#3 ## .|
++ |.c#2 ####2.|
++ |.c#3 259### .|
++ |.6#########a## .|
++ |. ## .|
++ |. 2a######91 .|
++ |. 5##71 18##4 .|
++ -&gt;|. ##3 2## .|&lt;-
++ |. b#5 3## .|
++ |. 2###4115c##3 .|
++ |. 5######6 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb7ec '러'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. b######7 c#...|
++ |.. 1## ##...|
++ |.. ## ##...|
++ |.. ## ##...|
++ |.. 1## ##...|
++ |.. a######6 ##...|
++ |..1## 9####...|
++ |..1## ##...|
++ |..1## ##...|
++ |..1## 2474 ##...|
++ |.. 9#######8 ##...|
++ -&gt;|.. ##...|&lt;-
++ |.. ##...|
++ |.. ##...|
++ |.. 22...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb7f0 '런'
++ Font: gulim (17)
++ Bitmap: 13 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..a######7 cc...|
++ |.. 1## ##...|
++ |.. ## ##...|
++ |.. 1## ##...|
++ |..9######79####...|
++ |..##1 ##...|
++ |..## ##...|
++ |..##1 14762 ##...|
++ |..8######b2 ##...|
++ |.. 33 ##...|
++ |.. ## 88...|
++ -&gt;|.. ## ...|&lt;-
++ |.. ##1 ...|
++ |.. 8##########b...|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb7fd '럽'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. b######7 ba..|
++ |.. 1## ##..|
++ |.. ## ##..|
++ |.. 13334## ##..|
++ |.. c######59####..|
++ |..1## ##..|
++ |..1## 13684 ##..|
++ |.. 9#######5 #c..|
++ |.. 67 56..|
++ |.. ## ##..|
++ |.. ############..|
++ -&gt;|.. ## ##..|&lt;-
++ |.. ##1 1##..|
++ |.. 8##########8..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb808 '레'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 3 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |...b####8 bb ##..|
++ |... 1## ## ##..|
++ |... ## ## ##..|
++ |... ## ## ##..|
++ |... 1## ## ##..|
++ |...a####8 ## ##..|
++ |...## 8#### ##..|
++ |...## ## ##..|
++ |...## ## ##..|
++ |...## 243 ## ##..|
++ |...a######2## ##..|
++ -&gt;|... ## ##..|&lt;-
++ |... ## ##..|
++ |... cc ##..|
++ |... 33..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb809 '렉'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..a#####7 cc ##...|
++ |.. 2## ## ##...|
++ |.. ## ## ##...|
++ |.. 2## ## ##...|
++ |..9######### ##...|
++ |..##1 ## ##...|
++ |..##1 ## ##...|
++ |..a######c## ##...|
++ |.. 13321 66 76...|
++ |.. ...|
++ |.. 9##########9...|
++ -&gt;|.. 1##...|&lt;-
++ |.. ##...|
++ |.. ##...|
++ |.. ##...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb824 '려'
++ Font: gulim (17)
++ Bitmap: 12 x 15
++ Advance: 18
++ Offset: 3 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |...c#####8 c#...|
++ |... 1## ##...|
++ |... ## ##...|
++ |... ##b####...|
++ |... 1## ##...|
++ |...a#####9 ##...|
++ |...## ##...|
++ |...## ##...|
++ |...## 7####...|
++ |...## 121 ##...|
++ |...8######9 ##...|
++ -&gt;|... ##...|&lt;-
++ |... ##...|
++ |... ##...|
++ |... 66...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb825 '력'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 3 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |...c#####8 c# .|
++ |... 1## ##1.|
++ |... ## 9####1.|
++ |... 1## ##1.|
++ |...a#####9 ##1.|
++ |...## ##1.|
++ |...## 7####1.|
++ |...a######b ##1.|
++ |... 89 .|
++ |... .|
++ |... 9##########9 .|
++ -&gt;|... 1## .|&lt;-
++ |... ## .|
++ |... ## .|
++ |... ## .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb828 '련'
++ Font: gulim (17)
++ Bitmap: 13 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..b#####8 bb...|
++ |.. 1## ##...|
++ |.. ## ##...|
++ |.. ## a####...|
++ |..8#####a ##...|
++ |..##1 ##...|
++ |..##1 7####...|
++ |..##2 1232 ##...|
++ |..6######8 ##...|
++ |.. 33 ##...|
++ |.. ## #c...|
++ -&gt;|.. ## ...|&lt;-
++ |.. ##1 ...|
++ |.. 8##########b...|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb85c '로'
++ Font: gulim (17)
++ Bitmap: 14 x 13
++ Advance: 18
++ Offset: 2 x -1
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. b#########8 ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. 7#########b ..|
++ |.. ##2 ..|
++ |.. ##1 ..|
++ |.. ##1 ..|
++ |.. 9##########b ..|
++ |.. ## ..|
++ |.. ## ..|
++ -&gt;|.. ## ..|&lt;-
++ |..a############8..|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb85d '록'
++ Font: gulim (17)
++ Bitmap: 15 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. b##########7 ..|
++ |. 1## ..|
++ |. ## ..|
++ |. 9##########9 ..|
++ |. ##1 ..|
++ |. 9###########1..|
++ |. ## ..|
++ |. ## ..|
++ |.1#############a..|
++ |. ..|
++ |. b##########9 ..|
++ -&gt;|. ## ..|&lt;-
++ |. ## ..|
++ |. ## ..|
++ |. 89 ..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb860 '론'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. b##########8 ..|
++ |.. 1## ..|
++ |.. ## ..|
++ |.. 7##########a ..|
++ |.. ##2 ..|
++ |.. ##2 ..|
++ |.. 7##########a ..|
++ |.. ## ..|
++ |..b############b..|
++ |.. ..|
++ |.. c# ..|
++ -&gt;|.. ## ..|&lt;-
++ |.. ##2 ..|
++ |.. 8##########b ..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb8cc '료'
++ Font: gulim (17)
++ Bitmap: 15 x 13
++ Advance: 18
++ Offset: 2 x -1
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 5##########7 .|
++ |.. 1## .|
++ |.. ## .|
++ |.. 1## .|
++ |.. 9##########7 .|
++ |.. ##1 .|
++ |.. ##1 .|
++ |.. 9##########a .|
++ |.. .|
++ |.. 9a 99 .|
++ |.. ## ## .|
++ -&gt;|.. ## ## .|&lt;-
++ |..##############1.|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb8e8 '루'
++ Font: gulim (17)
++ Bitmap: 15 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. a##########8 ..|
++ |. 1## ..|
++ |. ## ..|
++ |. 9##########9 ..|
++ |. ## ..|
++ |. ## ..|
++ |. a###########2..|
++ |. ..|
++ |. ..|
++ |.1#############c..|
++ |. ## ..|
++ -&gt;|. ## ..|&lt;-
++ |. ## ..|
++ |. ## ..|
++ |. 44 ..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb958 '류'
++ Font: gulim (17)
++ Bitmap: 15 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. b##########8 .|
++ |.. 1## .|
++ |.. ## .|
++ |.. 9##########9 .|
++ |.. ## .|
++ |.. ## .|
++ |.. a###########1 .|
++ |.. .|
++ |.. .|
++ |..c#############2.|
++ |.. ## ## .|
++ -&gt;|.. ## ## .|&lt;-
++ |.. ## ## .|
++ |.. ## ## .|
++ |.. 44 77 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb960 '률'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. b##########7 ..|
++ |.. 2## ..|
++ |.. 2## ..|
++ |.. b##########6 ..|
++ |.. ## ..|
++ |.. 9###########2..|
++ |.. ..|
++ |..c############c..|
++ |.. ## ## ..|
++ |.. a##########a ..|
++ |.. 1## ..|
++ -&gt;|.. 8##########9 ..|&lt;-
++ |.. cc ..|
++ |.. 8##########c ..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb974 '르'
++ Font: gulim (17)
++ Bitmap: 14 x 13
++ Advance: 18
++ Offset: 2 x -1
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. a##########8 ..|
++ |.. 1## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. 8##########9 ..|
++ |.. ##1 ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. 9##########8 ..|
++ |.. ..|
++ |.. ..|
++ -&gt;|.. ..|&lt;-
++ |..b############b..|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb978 '른'
++ Font: gulim (17)
++ Bitmap: 15 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. b##########8 ..|
++ |. 1## ..|
++ |. 1## ..|
++ |. 9##########9 ..|
++ |. 1## ..|
++ |. 1## ..|
++ |. 9##########b ..|
++ |. ..|
++ |.6#############b..|
++ |. ..|
++ |. c# ..|
++ -&gt;|. ## ..|&lt;-
++ |. ##1 ..|
++ |. 8##########b ..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb97c '를'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. a##########9 .|
++ |. ##1 .|
++ |. 8##########a .|
++ |. ## .|
++ |. ## .|
++ |. 7###########2 .|
++ |. .|
++ |.1##############1.|
++ |. .|
++ |. a##########9 .|
++ |. 1## .|
++ -&gt;|. 9##########9 .|&lt;-
++ |. c#2 .|
++ |. 9##########8 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb984 '름'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. c##########7 .|
++ |. 2## .|
++ |. 1## .|
++ |. a##########7 .|
++ |. ## .|
++ |. a###########2 .|
++ |. .|
++ |.1##############1.|
++ |. .|
++ |. 7##########6 .|
++ |. ##1 1## .|
++ -&gt;|. ## ## .|&lt;-
++ |. ##1 1## .|
++ |. 7##########8 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb9ac '리'
++ Font: gulim (17)
++ Bitmap: 12 x 15
++ Advance: 18
++ Offset: 3 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |...c######7 c#...|
++ |... 1## ##...|
++ |... ## ##...|
++ |... ## ##...|
++ |... 1## ##...|
++ |...a######8 ##...|
++ |...## ##...|
++ |...## ##...|
++ |...## ##...|
++ |...## 14##...|
++ |...8###########...|
++ -&gt;|... ##...|&lt;-
++ |... ##...|
++ |... ##...|
++ |... 33...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb9b0 '린'
++ Font: gulim (17)
++ Bitmap: 13 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..a#######6 c#...|
++ |.. 2## ##...|
++ |.. ## ##...|
++ |.. 2## ##...|
++ |..9#######7 ##...|
++ |..c#2 ##...|
++ |..c#2 1##...|
++ |..9############...|
++ |.. 12111 ##...|
++ |.. 33 ##...|
++ |.. ## ...|
++ -&gt;|.. ## ...|&lt;-
++ |.. ##1 ...|
++ |.. 8##########b...|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb9bc '림'
++ Font: gulim (17)
++ Bitmap: 13 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..a#######7 bb...|
++ |.. 2## ##...|
++ |.. 1## ##...|
++ |..7#######8 ##...|
++ |..c#2 ##...|
++ |..c#1 2##...|
++ |..8############...|
++ |.. 222211 cc...|
++ |.. ...|
++ |.. a#########9...|
++ |.. ## ##...|
++ -&gt;|.. ## ##...|&lt;-
++ |.. ## ##...|
++ |.. 9#########9...|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb9c1 '링'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..a#######7 c#...|
++ |.. 1## ##...|
++ |.. 1## ##...|
++ |..7#######8 ##...|
++ |..c#2 ##...|
++ |..c#2 1##...|
++ |..8############...|
++ |.. 222211 ##...|
++ |.. 5######577...|
++ |.. 1###5114###1...|
++ |.. a#6 6#a...|
++ -&gt;|.. ## ##...|&lt;-
++ |.. b#4 5#c...|
++ |.. 2##a3 15###2...|
++ |.. 6######6 ...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb9c8 '마'
++ Font: gulim (17)
++ Bitmap: 15 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..8######7 c# .|
++ |..##1 1## ## .|
++ |..## ## ## .|
++ |..## ## ## .|
++ |..## ## ## .|
++ |..## ## ## .|
++ |..## ## ####4.|
++ |..## ## ## .|
++ |..## ## ## .|
++ |..##1 1## ## .|
++ |..7######7 ## .|
++ -&gt;|.. ## .|&lt;-
++ |.. ## .|
++ |.. ## .|
++ |.. 33 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb9c9 '막'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.7#######6 #c .|
++ |.##2 1## ## .|
++ |.## ## ## .|
++ |.## ## ####1.|
++ |.## ## ## .|
++ |.## ## ## .|
++ |.##2 1## ## .|
++ |.6#######6 ## .|
++ |. 88 .|
++ |. .|
++ |. 9##########9 .|
++ -&gt;|. 1## .|&lt;-
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb9cc '만'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.7#######7 ba .|
++ |.##2 1## ## .|
++ |.## ## ## .|
++ |.## ## ## .|
++ |.## ## ####1.|
++ |.## ## ## .|
++ |.##1 1## ## .|
++ |.7#######7 ## .|
++ |. ## .|
++ |. 33 ## .|
++ |. ## #c .|
++ -&gt;|. ## .|&lt;-
++ |. ##1 .|
++ |. 8##########b .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb9ce '많'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.7#######6 #c .|
++ |.##2 1## ## .|
++ |.## ## ## .|
++ |.## ## ####1.|
++ |.## ## ## .|
++ |.##1 ## ## .|
++ |.7#######8 ## .|
++ |. 44 .|
++ |.11 a###9 .|
++ |.## a#######2 .|
++ |.## .|
++ -&gt;|.## 6#####5 .|&lt;-
++ |.##122 ##2 2## .|
++ |.8###c24#####5 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb9d0 '말'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.7#######6 #c .|
++ |.##2 1## ## .|
++ |.## ## ## .|
++ |.## ## ####1.|
++ |.## ## ## .|
++ |.##1 ## ## .|
++ |.7#######7 ## .|
++ |. 66 .|
++ |. ##########8 .|
++ |. ## .|
++ |. ## .|
++ -&gt;|. c#########9 .|&lt;-
++ |. ## .|
++ |. b##########6 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb9e4 '매'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 3 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |...8#####8 cc cc..|
++ |...##1 1## ## ##..|
++ |...## ## ## ##..|
++ |...## ## ## ##..|
++ |...## ## ## ##..|
++ |...## ## #####..|
++ |...## ## ## ##..|
++ |...## ## ## ##..|
++ |...## ## ## ##..|
++ |...##1 2## ## ##..|
++ |...6#####6 ## ##..|
++ -&gt;|... ## ##..|&lt;-
++ |... ## ##..|
++ |... cc ##..|
++ |... 55..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xba38 '머'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 3 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |...8######7 #c..|
++ |...##1 1## ##..|
++ |...## ## ##..|
++ |...## ## ##..|
++ |...## ## ##..|
++ |...## ##9####..|
++ |...## ## ##..|
++ |...## ## ##..|
++ |...## ## ##..|
++ |...##1 1## ##..|
++ |...7######7 ##..|
++ -&gt;|... ##..|&lt;-
++ |... ##..|
++ |... ##..|
++ |... 55..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xba48 '멈'
++ Font: gulim (17)
++ Bitmap: 13 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..7#######6 89...|
++ |..##1 1## ##...|
++ |..## ## ##...|
++ |..## ######...|
++ |..## ## ##...|
++ |..##1 1## ##...|
++ |..7#######7 ##...|
++ |.. cc...|
++ |.. ...|
++ |.. a#########a...|
++ |.. ## 1##...|
++ -&gt;|.. ## ##...|&lt;-
++ |.. ## 1##...|
++ |.. a#########9...|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xba54 '메'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..7#####7 cc cc...|
++ |..##1 2## ## ##...|
++ |..## ## ## ##...|
++ |..## ## ## ##...|
++ |..## ## ## ##...|
++ |..## ##### ##...|
++ |..## ## ## ##...|
++ |..## ## ## ##...|
++ |..## ## ## ##...|
++ |..##2 2## ## ##...|
++ |..6#####6 ## ##...|
++ -&gt;|.. ## ##...|&lt;-
++ |.. ## ##...|
++ |.. cc ##...|
++ |.. 55...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xba74 '면'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..7#######7 bb ..|
++ |..##2 1## ## ..|
++ |..## ###### ..|
++ |..## ## ## ..|
++ |..## ## ## ..|
++ |..## ## ## ..|
++ |..##1 ###### ..|
++ |..7#######8 ## ..|
++ |.. ## ..|
++ |.. 33 ## ..|
++ |.. ## c# ..|
++ -&gt;|.. ## ..|&lt;-
++ |.. ## ..|
++ |.. 8##########a..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xba85 '명'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..7#######6 ab ..|
++ |..##2 1## c#1..|
++ |..## ######1..|
++ |..## ## c#1..|
++ |..## ## c#1..|
++ |..## ######1..|
++ |..##2 1## c#1..|
++ |..6#######6 c#1..|
++ |.. bc1..|
++ |.. 2a######91 ..|
++ |.. 5##71 18##4 ..|
++ -&gt;|.. ##3 2## ..|&lt;-
++ |.. b#5 3## ..|
++ |.. 2###4115c##4 ..|
++ |.. 5######6 ..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbaa8 '모'
++ Font: gulim (17)
++ Bitmap: 14 x 13
++ Advance: 18
++ Offset: 2 x -1
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 6##########6 ..|
++ |.. ##1 1## ..|
++ |.. ## ## ..|
++ |.. ## ## ..|
++ |.. ## ## ..|
++ |.. ## ## ..|
++ |.. ##2 2## ..|
++ |.. 5##########6 ..|
++ |.. ..|
++ |.. ## ..|
++ |.. ## ..|
++ -&gt;|.. ## ..|&lt;-
++ |..a############8..|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbaa9 '목'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 7##########7 ..|
++ |.. ##2 1## ..|
++ |.. ## ## ..|
++ |.. ## ## ..|
++ |.. ##2 2## ..|
++ |.. 6##########6 ..|
++ |.. ## ..|
++ |..b############b..|
++ |.. ..|
++ |.. ..|
++ |.. b##########8 ..|
++ -&gt;|.. 1## ..|&lt;-
++ |.. ## ..|
++ |.. ## ..|
++ |.. cc ..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbabb '못'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 7##########7 ..|
++ |.. ##2 1## ..|
++ |.. ## ## ..|
++ |.. ## ## ..|
++ |.. ##2 2## ..|
++ |.. 5##########6 ..|
++ |.. ## ..|
++ |.. ## ..|
++ |..c############b..|
++ |.. 11 ..|
++ |.. 5##4 ..|
++ -&gt;|.. 6####3 ..|&lt;-
++ |.. 16##8 2##6 ..|
++ |..9##b2 19##9 ..|
++ |.. 1 275 ..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbb34 '무'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 7##########6 ..|
++ |.. ##1 1## ..|
++ |.. ## ## ..|
++ |.. ## ## ..|
++ |.. ## ## ..|
++ |.. ##2 2## ..|
++ |.. 5##########6 ..|
++ |.. ..|
++ |..b############b..|
++ |.. ## ..|
++ |.. ## ..|
++ -&gt;|.. ## ..|&lt;-
++ |.. ## ..|
++ |.. ## ..|
++ |.. 11 ..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbb38 '문'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 7##########6 ..|
++ |.. ##1 1## ..|
++ |.. ## ## ..|
++ |.. ## ## ..|
++ |.. ##1 1## ..|
++ |.. 7##########8 ..|
++ |.. ..|
++ |.. ..|
++ |..##############..|
++ |.. ## ..|
++ |.. cc ## ..|
++ -&gt;|.. ## aa ..|&lt;-
++ |.. ##1 ..|
++ |.. 9##########c ..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbb3c '물'
++ Font: gulim (17)
++ Bitmap: 15 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 7##########7 ..|
++ |. ##1 1## ..|
++ |. ## ## ..|
++ |. ##1 ## ..|
++ |. 7##########8 ..|
++ |. ..|
++ |. ..|
++ |.1#############c..|
++ |. ## ..|
++ |. b##########9 ..|
++ |. 1## ..|
++ -&gt;|. a##########8 ..|&lt;-
++ |. ## ..|
++ |. a###########4..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbbc0 '므'
++ Font: gulim (17)
++ Bitmap: 14 x 13
++ Advance: 18
++ Offset: 2 x -1
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 7##########6 ..|
++ |.. ##2 1## ..|
++ |.. ## ## ..|
++ |.. ## ## ..|
++ |.. ## ## ..|
++ |.. ## ## ..|
++ |.. ##2 2## ..|
++ |.. 5##########6 ..|
++ |.. ..|
++ |.. ..|
++ |.. ..|
++ -&gt;|.. ..|&lt;-
++ |..b############b..|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbbf8 '미'
++ Font: gulim (17)
++ Bitmap: 12 x 15
++ Advance: 18
++ Offset: 3 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |...8######7 c#...|
++ |...##1 1## ##...|
++ |...## ## ##...|
++ |...## ## ##...|
++ |...## ## ##...|
++ |...## ## ##...|
++ |...## ## ##...|
++ |...## ## ##...|
++ |...## ## ##...|
++ |...##1 1## ##...|
++ |...7######6 ##...|
++ -&gt;|... ##...|&lt;-
++ |... ##...|
++ |... ##...|
++ |... 55...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbc0f '및'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..7#######7 c#...|
++ |..##2 1## ##...|
++ |..## ## ##...|
++ |..## ## ##...|
++ |..## ## ##...|
++ |..##1 ## ##...|
++ |..7#######8 ##...|
++ |.. c#...|
++ |.. a####a ...|
++ |.. ...|
++ |.. 8##########b...|
++ -&gt;|.. 1c##1 ...|&lt;-
++ |.. 17#####6 ...|
++ |.. c###b2 2b##c...|
++ |.. 1 22...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbc14 '바'
++ Font: gulim (17)
++ Bitmap: 15 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..c# cc #c .|
++ |..## ## ## .|
++ |..## ## ## .|
++ |..## ## ## .|
++ |..######## ## .|
++ |..## ## ## .|
++ |..## ## ####3.|
++ |..## ## ## .|
++ |..## ## ## .|
++ |..##2 2## ## .|
++ |..7######6 ## .|
++ -&gt;|.. ## .|&lt;-
++ |.. ## .|
++ |.. ## .|
++ |.. 44 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbc18 '반'
++ Font: gulim (17)
++ Bitmap: 15 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..88 9a a9 .|
++ |..## ##1 ## .|
++ |..## ##1 ## .|
++ |..########1 ###c.|
++ |..## ##1 ## .|
++ |..## ##1 ## .|
++ |..## ##1 ## .|
++ |..##1 1## ## .|
++ |..7######7 ## .|
++ |.. 33 ## .|
++ |.. ## #c .|
++ -&gt;|.. ## .|&lt;-
++ |.. ##2 .|
++ |.. 8##########c .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbc1c '발'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..cb c# c# |
++ |..## ##1 ##1 |
++ |..## ##1 ##1 |
++ |..########1 ####1|
++ |..## ##1 ##1 |
++ |..## ##1 ##1 |
++ |..9######9 ##1 |
++ |.. 55 |
++ |.. b##########7 |
++ |.. 1## |
++ |.. 1## |
++ -&gt;|.. a##########8 |&lt;-
++ |.. c#2 |
++ |.. 9##########8 |
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbc29 '방'
++ Font: gulim (17)
++ Bitmap: 15 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..bb cc cc .|
++ |..## ##1 ## .|
++ |..## ##1 ## .|
++ |..########1 ## .|
++ |..## ##1 ###c.|
++ |..## ##1 ## .|
++ |..##1 1## ## .|
++ |..7######7 ## .|
++ |.. #c .|
++ |.. 2b######81 .|
++ |.. 6##6 19##4 .|
++ -&gt;|.. ##2 3#c .|&lt;-
++ |.. ##3 4#c .|
++ |.. 3##b4115###3 .|
++ |.. 6######6 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbc30 '배'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. cc c# cc #c..|
++ |..1## ## ## ##..|
++ |..1## ## ## ##..|
++ |..1## ## ## ##..|
++ |..1###### ## ##..|
++ |..1## ## ######..|
++ |..1## ## ## ##..|
++ |..1## ## ## ##..|
++ |..1## ## ## ##..|
++ |.. ##11## ## ##..|
++ |.. 8####8 ## ##..|
++ -&gt;|.. ## ##..|&lt;-
++ |.. ## ##..|
++ |.. cc ##..|
++ |.. 33..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbc31 '백'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. ## c# cc c#..|
++ |..1## ## ## ##..|
++ |..1## ## ## ##..|
++ |..1###### ######..|
++ |..1## ## ## ##..|
++ |..1## ## ## ##..|
++ |..1## 1## ## ##..|
++ |.. 9####9 ## ##..|
++ |.. 33 88..|
++ |.. ..|
++ |.. 9##########9..|
++ -&gt;|.. 1##..|&lt;-
++ |.. ##..|
++ |.. ##..|
++ |.. ##..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbc84 '버'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..c# #c cc...|
++ |..## 1## ##...|
++ |..## 1## ##...|
++ |..## 1## ##...|
++ |..######## ##...|
++ |..## 1#######...|
++ |..## 1## ##...|
++ |..## 1## ##...|
++ |..## 1## ##...|
++ |..##1 2## ##...|
++ |..6######6 ##...|
++ -&gt;|.. ##...|&lt;-
++ |.. ##...|
++ |.. ##...|
++ |.. 33...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbc88 '번'
++ Font: gulim (17)
++ Bitmap: 13 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..c# #c cc...|
++ |..## 1## ##...|
++ |..## 1## ##...|
++ |..######## ##...|
++ |..## 1#######...|
++ |..## 1## ##...|
++ |..## 1## ##...|
++ |..##1 2## ##...|
++ |..6######6 ##...|
++ |.. 33 ##...|
++ |.. ## 88...|
++ -&gt;|.. ## ...|&lt;-
++ |.. ##1 ...|
++ |.. 8##########b...|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbcbd '벽'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 3 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |...#c cc ##..|
++ |...## ## ##..|
++ |...## ##9####..|
++ |...######## ##..|
++ |...## ## ##..|
++ |...## ## ##..|
++ |...## 1##a####..|
++ |...9######8 ##..|
++ |... 77..|
++ |... ..|
++ |... 9##########9..|
++ -&gt;|... 1##..|&lt;-
++ |... ##..|
++ |... ##..|
++ |... ##..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbcc0 '변'
++ Font: gulim (17)
++ Bitmap: 13 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..99 88 99...|
++ |..##1 ## ##...|
++ |..##1 ##a####...|
++ |..######## ##...|
++ |..##1 ## ##...|
++ |..##1 ## ##...|
++ |..##1 1##a####...|
++ |..8######9 ##...|
++ |.. ##...|
++ |.. 33 ##...|
++ |.. ## #c...|
++ -&gt;|.. ## ...|&lt;-
++ |.. ##1 ...|
++ |.. 8##########b...|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbcf4 '보'
++ Font: gulim (17)
++ Bitmap: 15 x 13
++ Advance: 18
++ Offset: 1 x -1
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. ab ab ..|
++ |. ## ## ..|
++ |. ## ## ..|
++ |. ########### ..|
++ |. ## ## ..|
++ |. ## ## ..|
++ |. ## ## ..|
++ |. ##2 1## ..|
++ |. 6#########8 ..|
++ |. ## ..|
++ |. ## ..|
++ -&gt;|. ## ..|&lt;-
++ |.3#############5..|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbcf5 '복'
++ Font: gulim (17)
++ Bitmap: 16 x 16
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 11 11 .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ############ .|
++ |. ## ## .|
++ |. ##1 1## .|
++ |. 7##########7 .|
++ |. ## .|
++ |. ## .|
++ |.3#############c1.|
++ |. .|
++ |. ###########9 .|
++ -&gt;|. 1## .|&lt;-
++ |. ## .|
++ |. ## .|
++ |. 99 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbcf8 '본'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 77 77 .|
++ |. ## ## .|
++ |. ############ .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ##1 1## .|
++ |. 6##########6 .|
++ |. ## .|
++ |.1##############1.|
++ |. .|
++ |. cc .|
++ -&gt;|. ## .|&lt;-
++ |. ##1 .|
++ |. 8########### .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbcfc '볼'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 77 77 .|
++ |. ## ## .|
++ |. ############ .|
++ |. ## ## .|
++ |. ##1 1## .|
++ |. 6##########6 .|
++ |. ## .|
++ |.1##############1.|
++ |. .|
++ |. c##########a .|
++ |. 1## .|
++ -&gt;|. b##########9 .|&lt;-
++ |. ## .|
++ |. b##########a .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbd80 '부'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. ab aa .|
++ |. ## ## .|
++ |. ############ .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ##2 1## .|
++ |. 6##########6 .|
++ |. .|
++ |. .|
++ |.1##############1.|
++ |. ## .|
++ -&gt;|. ## .|&lt;-
++ |. ## .|
++ |. ## .|
++ |. 66 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbd81 '북'
++ Font: gulim (17)
++ Bitmap: 16 x 16
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 11 .|
++ |. ## 1#c .|
++ |. ## 1#c .|
++ |. ###########c .|
++ |. ## 1#c .|
++ |. ##1 2#c .|
++ |. 7##########6 .|
++ |. .|
++ |. .|
++ |.3##############1.|
++ |. ## .|
++ |. 1###########6 .|
++ -&gt;|. 2## .|&lt;-
++ |. ## .|
++ |. ## .|
++ |. 66 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbd84 '분'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 66 66 .|
++ |. ## ## .|
++ |. ############ .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ##2 2## .|
++ |. 6##########6 .|
++ |. .|
++ |.1##############1.|
++ |. ## .|
++ |. c# ## .|
++ -&gt;|. ## aa .|&lt;-
++ |. ##1 .|
++ |. 8##########b .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbd88 '불'
++ Font: gulim (17)
++ Bitmap: 15 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 66 66 ..|
++ |. ## ## ..|
++ |. ############ ..|
++ |. ## ## ..|
++ |. ##2 2## ..|
++ |. 6##########6 ..|
++ |. ..|
++ |.2#############c..|
++ |. ## ..|
++ |. c##########a ..|
++ |. ##1..|
++ -&gt;|. b##########9 ..|&lt;-
++ |. 1## ..|
++ |. a###########5..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbe0c '브'
++ Font: gulim (17)
++ Bitmap: 16 x 13
++ Advance: 18
++ Offset: 1 x -1
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. ## ba .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ############ .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ##1 1## .|
++ |. 8##########9 .|
++ |. .|
++ |. .|
++ -&gt;|. .|&lt;-
++ |.1##############1.|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbe14 '블'
++ Font: gulim (17)
++ Bitmap: 15 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 9a 99 ..|
++ |. ## cc ..|
++ |. ############ ..|
++ |. ## cc ..|
++ |. ##2 ## ..|
++ |. 5##########5 ..|
++ |. ..|
++ |.1c############c..|
++ |. ..|
++ |. b##########a ..|
++ |. 1## ..|
++ -&gt;|. a##########9 ..|&lt;-
++ |. c#2 ..|
++ |. 9##########c ..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbe44 '비'
++ Font: gulim (17)
++ Bitmap: 12 x 15
++ Advance: 18
++ Offset: 3 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |...cc cc c#...|
++ |...## ## ##...|
++ |...## ## ##...|
++ |...## ## ##...|
++ |...######## ##...|
++ |...## ## ##...|
++ |...## ## ##...|
++ |...## ## ##...|
++ |...## ## ##...|
++ |...## 2## ##...|
++ |...7######7 ##...|
++ -&gt;|... ##...|&lt;-
++ |... ##...|
++ |... ##...|
++ |... 33...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbed7 '뻗'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..77 aabb bb cc ..|
++ |..cc cccc cc ## ..|
++ |..cc cccc cc ## ..|
++ |..c###cc#### ## ..|
++ |..cc cccc c#### ..|
++ |..cc cccc cc ## ..|
++ |..cc #ccc ## ## ..|
++ |..8###88###a ## ..|
++ |.. 55 ..|
++ |.. 7##########9..|
++ |.. ## ..|
++ -&gt;|.. ## ..|&lt;-
++ |.. ## ..|
++ |.. 8##########a..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbfd0 '뿐'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. bb 6666 bb .|
++ |. cc cc## ## .|
++ |. #####c###### .|
++ |. cc cc## ## .|
++ |. cc cc## ## .|
++ |. ## 1#c##1 ## .|
++ |. 7####67####7 .|
++ |. .|
++ |.1##############1.|
++ |. ## .|
++ |. cc ## .|
++ -&gt;|. ## aa .|&lt;-
++ |. ##1 .|
++ |. 8##########c .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc0ac '사'
++ Font: gulim (17)
++ Bitmap: 17 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 1ca #c |
++ |. 3## ## |
++ |. 4##1 ## |
++ |. 6##3 ## |
++ |. 9##6 ## |
++ |. c##9 ####4|
++ |. 4#a## ## |
++ |. b#38#5 ## |
++ |. 5#a 2##1 ## |
++ |. 2##2 6#a ## |
++ |.4##3 8#91## |
++ -&gt;|.692 781## |&lt;-
++ |. ## |
++ |. ## |
++ |. 44 |
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc0b4 '살'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. b#2 #c .|
++ |. 1##5 ## .|
++ |. 6##a ## .|
++ |. 1##c#3 ####3.|
++ |. a#63##2 ## .|
++ |. a#9 5##3 ## .|
++ |.b#7 3##4## .|
++ |. 1 44 .|
++ |. b#########8 .|
++ |. ## .|
++ |. ## .|
++ -&gt;|. a#########9 .|&lt;-
++ |. c#2 .|
++ |. 9##########7 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc0bd '삽'
++ Font: gulim (17)
++ Bitmap: 17 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 8#6 #c |
++ |. b#9 ## |
++ |. 2### ## |
++ |. 9###6 ####3|
++ |. 5#a1##3 ## |
++ |. 4##1 3##4 ## |
++ |.7##1 2##6 ## |
++ |.22 32 66 |
++ |. bb aa |
++ |. ## ## |
++ |. ############ |
++ -&gt;|. ## ## |&lt;-
++ |. ##1 1## |
++ |. 8##########8 |
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc0c1 '상'
++ Font: gulim (17)
++ Bitmap: 17 x 15
++ Advance: 18
++ Offset: 0 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ | 3#b #c .|
++ | 5## ## .|
++ | a##4 ## .|
++ | 2###a ####2.|
++ | b#3a#6 ## .|
++ | a#8 1##6 ## .|
++ |1##7 1##9 ## .|
++ |154 55 ## .|
++ | 88 .|
++ | 29######a2 .|
++ | 5##71 17##5 .|
++ -&gt;| c#2 2## .|&lt;-
++ | c#2 2## .|
++ | 4##82 14a##5 .|
++ | 18######81 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc0c8 '새'
++ Font: gulim (17)
++ Bitmap: 15 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. bb cc #c..|
++ |. ## ## ##..|
++ |. ## ## ##..|
++ |. ## ## ##..|
++ |. 2##2 ## ##..|
++ |. 5##6 ## ##..|
++ |. a##a ######..|
++ |. 1####1 ## ##..|
++ |. 7#78#6 ## ##..|
++ |. 2##11#c ## ##..|
++ |. c#5 7#7## ##..|
++ -&gt;|.2a8 ba## ##..|&lt;-
++ |. ## ##..|
++ |. cc ##..|
++ |. 33..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc0c9 '색'
++ Font: gulim (17)
++ Bitmap: 15 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 6#7 cc bc1..|
++ |. 7#9 ## c#1..|
++ |. 9#b ## c#1..|
++ |. c## #####1..|
++ |. 4###5 ## c#1..|
++ |. c#7##1 ## c#1..|
++ |. a#8 8#b ## c#1..|
++ |.6#9 8#8## c#1..|
++ |. 22 67 ..|
++ |. 8##########9 ..|
++ |. 1## ..|
++ -&gt;|. ## ..|&lt;-
++ |. ## ..|
++ |. ## ..|
++ |. 55 ..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc0dd '생'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. b#1 cc 1#b..|
++ |.. ##3 ## 2#c..|
++ |.. 1##5 ## 2#c..|
++ |.. 4##8 #####c..|
++ |.. a### ## 2#c..|
++ |.. 4#b9#7 ## 2#c..|
++ |..2##21##5## 2#c..|
++ |..b#3 2#### 2#c..|
++ |.. 22 76..|
++ |.. 17######6 ..|
++ |.. 4##b4114c##3..|
++ -&gt;|.. c#4 4#c..|&lt;-
++ |.. c#4 3#c..|
++ |.. 3##b4114b##4..|
++ |.. 6######71 ..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc11c '서'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. cc c#..|
++ |.. ## ##..|
++ |.. ## ##..|
++ |.. 1## ##..|
++ |.. 3##3 ##..|
++ |.. 8##7 c#####..|
++ |.. #### ##..|
++ |.. 6#9a#5 ##..|
++ |.. ##23#c ##..|
++ |.. 8#8 9#7 ##..|
++ |..7##1 1##6 ##..|
++ -&gt;|..9b2 2#c ##..|&lt;-
++ |.. ##..|
++ |.. ##..|
++ |.. 33..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc120 '선'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 99 aa..|
++ |.. 1## ##..|
++ |.. 4##3 ##..|
++ |.. 7##6 ##..|
++ |.. c##c 9#####..|
++ |.. 6#9a#5 ##..|
++ |.. 1##22##1 ##..|
++ |.. b#5 5#b ##..|
++ |..7#7 7#7 ##..|
++ |.. 33 ##..|
++ |.. ## cc..|
++ -&gt;|.. ## ..|&lt;-
++ |.. ##1 ..|
++ |.. 9##########b..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc124 '설'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 1ca cc..|
++ |.. 4## ##..|
++ |.. 8##4 ##..|
++ |.. ###9 9#####..|
++ |.. 6#ac#2 ##..|
++ |.. 3##24##1 ##..|
++ |..3##5 7##2 ##..|
++ |..8c3 494 77..|
++ |.. ..|
++ |.. c##########a..|
++ |.. 1##..|
++ -&gt;|.. b##########9..|&lt;-
++ |.. ## ..|
++ |.. a##########b..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc131 '성'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. cc #c..|
++ |.. 3##1 1##..|
++ |.. 7##5 1##..|
++ |.. c##a 9#####..|
++ |.. 5#ab#4 1##..|
++ |.. 2##23##1 1##..|
++ |..1##6 6#c 1##..|
++ |..a#6 6#7 1##..|
++ |.. a9..|
++ |.. 2b######81 ..|
++ |.. 6##6 19##4..|
++ -&gt;|.. ##2 3#c..|&lt;-
++ |.. c#4 4#c..|
++ |.. 3##c4115###3..|
++ |.. 5######6 ..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc138 '세'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. cc cc c#..|
++ |.. ## ## ##..|
++ |.. ## ## ##..|
++ |.. ## ## ##..|
++ |.. ## ## ##..|
++ |.. 3##19#### ##..|
++ |.. 6##5 ## ##..|
++ |.. a##a ## ##..|
++ |.. 1##c#1 ## ##..|
++ |.. 8#76#8 ## ##..|
++ |..2##1 b#6 ## ##..|
++ -&gt;|..9#4 1c#3## ##..|&lt;-
++ |.. ## ##..|
++ |.. cc ##..|
++ |.. 55..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc14b '셋'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 99 99 #c..|
++ |.. ## ## ##..|
++ |.. 1##1 ## ##..|
++ |.. 3##a#### ##..|
++ |.. 7##7 ## ##..|
++ |.. 1####1 ## ##..|
++ |.. a#67#9 ## ##..|
++ |..8#9 b#7## ##..|
++ |..33 22cc #c..|
++ |.. 396 ..|
++ |.. b##1 ..|
++ -&gt;|.. 9#b#c1 ..|&lt;-
++ |.. 3##8 5##4 ..|
++ |.. 4###3 2###6..|
++ |.. 21 131..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc158 '션'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 99 aa..|
++ |.. 1## ##..|
++ |.. 3##3 4#####..|
++ |.. 6##7 ##..|
++ |.. c##c ##..|
++ |.. 5#99#5 ##..|
++ |.. 2##22##6#####..|
++ |..1c#5 5##1 ##..|
++ |..9#6 6#9 ##..|
++ |.. 33 ##..|
++ |.. ## #c..|
++ -&gt;|.. ## ..|&lt;-
++ |.. ##1 ..|
++ |.. 8##########b..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc18c '소'
++ Font: gulim (17)
++ Bitmap: 15 x 14
++ Advance: 18
++ Offset: 2 x -1
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 44 .|
++ |.. 5##6 .|
++ |.. 1####2 .|
++ |.. a#86#c .|
++ |.. 9#a 8#a .|
++ |.. 2c#a 9#c1 .|
++ |..7##7 6##6 .|
++ |..682 2ba1.|
++ |.. 77 .|
++ |.. 1## .|
++ |.. 1## .|
++ |.. 1## .|
++ -&gt;|.. 1## .|&lt;-
++ |..#############c .|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc18d '속'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 3##2 ..|
++ |.. 2####2 ..|
++ |.. 5##44##5 ..|
++ |..3b##c2 2c##b3..|
++ |..5b82 aa 29#8..|
++ |.. ## ..|
++ |.. ## ..|
++ |..##############..|
++ |.. ..|
++ |.. ..|
++ |.. 9##########9 ..|
++ -&gt;|.. 1## ..|&lt;-
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc194 '솔'
++ Font: gulim (17)
++ Bitmap: 15 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 4##5 .|
++ |.. 6####7 .|
++ |.. 17##b1 9##92 .|
++ |..a##c3 55 29### .|
++ |.. ## .|
++ |.. ## .|
++ |..c#############1.|
++ |.. .|
++ |.. .|
++ |.. c##########a .|
++ |.. 1## .|
++ -&gt;|.. c##########9 .|&lt;-
++ |.. ## .|
++ |.. b##########c .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc1e0 '쇠'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. a#2 cc...|
++ |. 1##5 ##...|
++ |. 5##a ##...|
++ |. b###3 ##...|
++ |. 7#94#b ##...|
++ |. 5#c1 8#b ##...|
++ |. 8#c1 8##1##...|
++ |. 33 22 351##...|
++ |. ## ##...|
++ |. ## ##...|
++ |. 1##78b####...|
++ -&gt;|.3########c95##...|&lt;-
++ |. ##...|
++ |. ##...|
++ |. 33...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc218 '수'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 4##2 .|
++ |. ###b .|
++ |. a#87#9 .|
++ |. 3##8 8#c2 .|
++ |. 5###4 4###4 .|
++ |. 6a4 4a6 .|
++ |. .|
++ |. .|
++ |.1##############1.|
++ |. ## .|
++ |. ## .|
++ -&gt;|. ## .|&lt;-
++ |. ## .|
++ |. ## .|
++ |. 77 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc220 '술'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 2##3 .|
++ |. 2####2 .|
++ |. 7##53##81 .|
++ |. 7###b2 19###8 .|
++ |. 363 374 .|
++ |. .|
++ |.1##############1.|
++ |. ## .|
++ |. b##########8 .|
++ |. ## .|
++ |. 1## .|
++ -&gt;|. b##########8 .|&lt;-
++ |. ## .|
++ |. a###########5 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc27c '쉼'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 11 ..|
++ |.. 2##4 #c..|
++ |.. a###1 ##..|
++ |.. 7#96#a ##..|
++ |.. 9#b 7##2 ##..|
++ |.. c#7 4##1##..|
++ |.. 13##..|
++ |..3c############..|
++ |.. 3445## ##..|
++ |.. ## 77..|
++ |.. 7##########7..|
++ |.. ##1 1##..|
++ -&gt;|.. ## ##..|&lt;-
++ |.. ## 1##..|
++ |.. 8##########8..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc2a4 '스'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -1
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 32 .|
++ |. 4##2 .|
++ |. a##8 .|
++ |. 4#cc#2 .|
++ |. 1##34#b .|
++ |. 1c#7 8#9 .|
++ |. 5##6 8##2 .|
++ |. a#c2 4##6 .|
++ |. 11 .|
++ |. .|
++ |. .|
++ |. .|
++ -&gt;|. .|&lt;-
++ |.1##############1.|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc2b5 '습'
++ Font: gulim (17)
++ Bitmap: 15 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 5##4 ..|
++ |. 6####4 ..|
++ |. 15###22###4 ..|
++ |. ####5 5###a..|
++ |. 11 21..|
++ |. ..|
++ |.5#############9..|
++ |. ..|
++ |. bc aa ..|
++ |. ## ## ..|
++ |. ############ ..|
++ -&gt;|. ## ## ..|&lt;-
++ |. ##1 1## ..|
++ |. 7##########8 ..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc2dc '시'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. cc c#...|
++ |. ##1 ##...|
++ |. 3##4 ##...|
++ |. 6##7 ##...|
++ |. a##b ##...|
++ |. 1#cb#2 ##...|
++ |. 7#76#7 ##...|
++ |. 1##11##1 ##...|
++ |. a#7 8#8 ##...|
++ |. 5#b 1##3 ##...|
++ |.2##2 4##1##...|
++ -&gt;|.253 451##...|&lt;-
++ |. ##...|
++ |. ##...|
++ |. 33...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc2dd '식'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 4c7 1#b..|
++ |.. 9#b 2#c..|
++ |.. ###2 2#c..|
++ |.. 6###8 2#c..|
++ |.. 2##1c#3 2#c..|
++ |.. 1##4 3##1 2#c..|
++ |..2##6 5##22#c..|
++ |..7c4 3b72#c..|
++ |.. 55..|
++ |.. 9##########8..|
++ |.. 2##..|
++ -&gt;|.. ##..|&lt;-
++ |.. ##..|
++ |.. ##..|
++ |.. 55..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc2e0 '신'
++ Font: gulim (17)
++ Bitmap: 15 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. ab1 c# ..|
++ |. 1##4 ## ..|
++ |. 5##8 ## ..|
++ |. b### ## ..|
++ |. 5#a8#7 ## ..|
++ |. 1##21##2 ## ..|
++ |. c#6 4#c ## ..|
++ |. b#8 6#b1## ..|
++ |.176 682## ..|
++ |. 78 ## ..|
++ |. ## aa ..|
++ -&gt;|. ## ..|&lt;-
++ |. ##1 ..|
++ |. 8##########b..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc2e4 '실'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 8#5 1#b..|
++ |.. ##a 1#c..|
++ |.. 5###2 1#c..|
++ |.. ##7#a 1#c..|
++ |.. 9#8 b#5 1#c..|
++ |.. 7#c 2##3 1#c..|
++ |..8##1 3##41#c..|
++ |..45 153 87..|
++ |.. c##########7..|
++ |.. 1##..|
++ |.. 2##..|
++ -&gt;|.. b##########8..|&lt;-
++ |.. ## ..|
++ |.. a##########b..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc2ec '심'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 5c7 #c..|
++ |.. 9#b ##..|
++ |.. ###2 ##..|
++ |.. 7###8 ##..|
++ |.. 2##1c#2 ##..|
++ |.. 1##4 4#c1 ##..|
++ |..2##6 6##2 ##..|
++ |..7c4 3b7 ##..|
++ |.. 11..|
++ |.. 7##########6..|
++ |.. ##1 2##..|
++ -&gt;|.. ## 1##..|&lt;-
++ |.. ##1 1##..|
++ |.. 7##########8..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc544 '아'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 19###a1 #c .|
++ |. b#817#b ## .|
++ |.4#b a#5 ## .|
++ |.9#5 4#9 ## .|
++ |.c#2 1#c ## .|
++ |.##1 ## ####4.|
++ |.##1 ## ## .|
++ |.c#2 1#c ## .|
++ |.a#4 3#a ## .|
++ |.6#a 9#7 ## .|
++ |.1##928##1 ## .|
++ -&gt;|. 2c###c2 ## .|&lt;-
++ |. ## .|
++ |. ## .|
++ |. 55 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc548 '안'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 2b###b1 c# .|
++ |.2##5 6##1 ## .|
++ |.9#5 6#9 ## .|
++ |.## ## ## .|
++ |.## 1## ####5.|
++ |.9#5 7#9 ## .|
++ |.2##5 6##1 ## .|
++ |. 2c###a1 ## .|
++ |. ## .|
++ |. 22 ## .|
++ |. ## 99 .|
++ -&gt;|. ## .|&lt;-
++ |. ##1 .|
++ |. 8##########b .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc54a '않'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 3#####3 bb .|
++ |.4##3 4##4 ## .|
++ |.b#3 3#b ## .|
++ |.## ## ####5.|
++ |.b#3 4#b ##c .|
++ |.4##3 4##3 ##c .|
++ |. 4#####3 c#b .|
++ |. .|
++ |. a###a .|
++ |. cc 9######a .|
++ |. ## .|
++ -&gt;|. ## 2b###91 .|&lt;-
++ |. ## c#4 5#b .|
++ |. a####7b#416#b .|
++ |. 2a###a1 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc54c '알'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 3#####3 c# .|
++ |.4##3 4##4 ## .|
++ |.b#3 3#b ## .|
++ |.## ## ####4.|
++ |.b#3 4#b ## .|
++ |.4##3 4##3 ## .|
++ |. 4#####3 ## .|
++ |. 77 .|
++ |. c#########7 .|
++ |. 1## .|
++ |. 1## .|
++ -&gt;|. c#########8 .|&lt;-
++ |. ## .|
++ |. b##########6 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc558 '았'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 2c###c2 c# .|
++ |.2##4 5##2 ## .|
++ |.9#5 6#9 ## .|
++ |.c# ## ####4.|
++ |.c# 1## ## .|
++ |.9#5 7#9 ## .|
++ |.2##618##1 ## .|
++ |. 2b###91 ## .|
++ |. .|
++ |. 6#7 ## .|
++ |. 9#b 2##3 .|
++ -&gt;|. 2###3 8##9 .|&lt;-
++ |. 2##8##35#bb#7 .|
++ |.1##4 4###b11a#a .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc55e '앞'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 2c###c2 c# .|
++ |.2##4 5##2 ## .|
++ |.9#5 6#9 ## .|
++ |.c# ## ####4.|
++ |.c# 1## ## .|
++ |.9#5 7#9 ## .|
++ |.2##618##1 ## .|
++ |. 2b###91 ## .|
++ |. .|
++ |. b###########a .|
++ |. 8#5 9#3 .|
++ -&gt;|. 6#7 b#2 .|&lt;-
++ |. 5#9 c#1 .|
++ |. ############# .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc57c '야'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 19###a1 #c .|
++ |. b#818#b ## .|
++ |.4#b a#5 ## .|
++ |.9#5 4#9 ####6.|
++ |.c#3 1#c ## .|
++ |.##1 ## ## .|
++ |.##1 ## ## .|
++ |.c#2 1#c ## .|
++ |.a#5 3#a ####7.|
++ |.6#a 9#6 ## .|
++ |. c#938## ## .|
++ -&gt;|. 1a###b1 ## .|&lt;-
++ |. ## .|
++ |. ## .|
++ |. 44 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc57d '약'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 2c###c2 1#c .|
++ |.2##4 5##2 1#c .|
++ |.9#5 6#9 1####3.|
++ |.c# ## 1#c .|
++ |.c# 1## 1#c .|
++ |.9#5 7#9 1####3.|
++ |.2##618##1 1#c .|
++ |. 2b###91 1#c .|
++ |. 65 .|
++ |. 9##########8 .|
++ |. 1## .|
++ -&gt;|. ## .|&lt;-
++ |. ## .|
++ |. ## .|
++ |. 22 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc591 '양'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 2c###c2 ## .|
++ |.2##4 5##2 ## .|
++ |.9#5 6#9 ####4.|
++ |.c# ## ## .|
++ |.c# 1## ## .|
++ |.9#5 7#9 ####4.|
++ |.2##618##1 ## .|
++ |. 2b###91 ## .|
++ |. 66 .|
++ |. 3c######3 .|
++ |. 5##5 4##6 .|
++ -&gt;|. ##1 1## .|&lt;-
++ |. ##1 2## .|
++ |. 5##51 28##6 .|
++ |. 2b#####a2 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc5b4 '어'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 9###a1 #c..|
++ |.. b#818#b ##..|
++ |..4#b a#5 ##..|
++ |..9#5 5#9 ##..|
++ |..c#2 1#c ##..|
++ |..##1 ## ##..|
++ |..##1 ##a####..|
++ |..c#2 1#c ##..|
++ |..9#4 4#a ##..|
++ |..5#a 9#6 ##..|
++ |.. b#a39#c ##..|
++ -&gt;|.. 9###a1 ##..|&lt;-
++ |.. ##..|
++ |.. ##..|
++ |.. 55..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc5b8 '언'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 1a###a1 aa..|
++ |..1##6 7#c ##..|
++ |..7#7 8#7 ##..|
++ |..c#1 2#c ##..|
++ |..## ##9####..|
++ |..c#1 2#c ##..|
++ |..7#8 a#6 ##..|
++ |.. c#82a#a ##..|
++ |.. 19###7 ##..|
++ |.. 22 ##..|
++ |.. ## #c..|
++ -&gt;|.. ## ..|&lt;-
++ |.. ##1 ..|
++ |.. 8##########b..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc5bb '얻'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 2c###c2 1cb..|
++ |..2##4 5##2 1#c..|
++ |..a#5 5#9 1#c..|
++ |..## ##a###c..|
++ |..## 1## 1#c..|
++ |..9#5 6#9 1#c..|
++ |..2##618##1 1#c..|
++ |.. 2b###91 1#c..|
++ |.. 33..|
++ |.. 7##########a..|
++ |.. ##3 ..|
++ -&gt;|.. ##1 ..|&lt;-
++ |.. ##2 ..|
++ |.. 8##########8..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc5c5 '업'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 2c###c2 aa..|
++ |..2##4 5##2 ##..|
++ |..9#5 5#9 ##..|
++ |..c# ##9####..|
++ |..c# 1## ##..|
++ |..9#5 7#9 ##..|
++ |..2##618##1 ##..|
++ |.. 2b###91 #c..|
++ |.. 66 55..|
++ |.. ## ##..|
++ |.. ############..|
++ -&gt;|.. ## ##..|&lt;-
++ |.. ##1 ##..|
++ |.. 8##########8..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc5c6 '없'
++ Font: gulim (17)
++ Bitmap: 15 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 3#####3 #c ..|
++ |.4##3 4##4 ## ..|
++ |.b#3 3#b ## ..|
++ |.## ##9#### ..|
++ |.b#3 3#b ## ..|
++ |.4##3 4##4 ## ..|
++ |. 4#####3 ## ..|
++ |. ## ..|
++ |. ## #c 6633 ..|
++ |. ## ## 1##2 ..|
++ |. ###### 7##8 ..|
++ -&gt;|. ## ## 3####3 ..|&lt;-
++ |. ## 1##4##62##4..|
++ |. 9####a##4 198..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc5c8 '었'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 2c###c2 cc .|
++ |.2##5 5##2 ## .|
++ |.9#5 6#9 ## .|
++ |.c# ##9#### .|
++ |.c# 1## ## .|
++ |.9#6 7#9 ## .|
++ |.1##728##1 ## .|
++ |. 1a###91 ## .|
++ |. 33 .|
++ |. 6#7 6#6 .|
++ |. 9#b 9#a .|
++ -&gt;|. 1###2 2###2 .|&lt;-
++ |. 1##a##21##9##1 .|
++ |.1##5 5####5 5##3.|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc5d0 '에'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 6###5 cc c#...|
++ |..2##5##2 ## ##...|
++ |..8#7 6#7 ## ##...|
++ |..a#3 2#a ## ##...|
++ |..c#1 #c ## ##...|
++ |..cc ##### ##...|
++ |..cc ## ## ##...|
++ |..c#1 #c ## ##...|
++ |..a#3 2#b ## ##...|
++ |..7#7 6#8 ## ##...|
++ |..2##4##3 ## ##...|
++ -&gt;|.. 5###6 ## ##...|&lt;-
++ |.. ## ##...|
++ |.. cc ##...|
++ |.. 11...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc5d4 '엔'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 6###6 cc c# ..|
++ |..4#b1a#4 ## ## ..|
++ |..9#3 3#a ## ## ..|
++ |..c# ## ## ## ..|
++ |..c# ##### ## ..|
++ |..a#3 3#a ## ## ..|
++ |..4#a 9#5 ## ## ..|
++ |.. 6###7 ## ## ..|
++ |.. ## ## ..|
++ |.. 22 ## ## ..|
++ |.. ## 11 66 ..|
++ -&gt;|.. ## ..|&lt;-
++ |.. ## ..|
++ |.. 8##########b..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc5ec '여'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 2####3 c#...|
++ |..1##44##1 ##...|
++ |..6#8 7#6 ##...|
++ |..a#4 3#ab####...|
++ |..c#2 1#c ##...|
++ |..##1 ## ##...|
++ |..##1 ## ##...|
++ |..##1 ## ##...|
++ |..b#3 2#bb####...|
++ |..7#7 6#8 ##...|
++ |..1##65##2 ##...|
++ -&gt;|.. 4####4 ##...|&lt;-
++ |.. ##...|
++ |.. ##...|
++ |.. 44...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc5f4 '열'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 2c###c2 #c..|
++ |..2##4 5##2 ##..|
++ |..9#5 5#9b####..|
++ |..## ## ##..|
++ |..## 1## ##..|
++ |..9#5 6#9b####..|
++ |..2##617##1 ##..|
++ |.. 2b###91 a9..|
++ |.. c##########7..|
++ |.. 1##..|
++ |.. 1##..|
++ -&gt;|.. b##########8..|&lt;-
++ |.. ## ..|
++ |.. a##########9..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc601 '영'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 2c###c2 cc..|
++ |..2##5 5##2 ##..|
++ |..9#5 6#9b####..|
++ |..c# ## ##..|
++ |..c# 1## ##..|
++ |..9#6 7#9b####..|
++ |..1##728##1 ##..|
++ |.. 1a###91 ##..|
++ |.. #c..|
++ |.. 3c#####a2 ..|
++ |.. 6##5 6##5 ..|
++ -&gt;|.. ##2 2## ..|&lt;-
++ |.. ##3 3## ..|
++ |.. 3##a3 3a##4 ..|
++ |.. 17#####71 ..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc608 '예'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 4###4 ccc#...|
++ |..1##5##1 ####...|
++ |..6#7 7#7 ####...|
++ |..a#3 2#ba#####...|
++ |..c#1 #c ####...|
++ |..c# ## ####...|
++ |..c# ## ####...|
++ |..c#1 #c ####...|
++ |..a#3 2#ba#####...|
++ |..6#8 6#7 ####...|
++ |..1##5##2 ####...|
++ -&gt;|.. 4###5 ####...|&lt;-
++ |.. ####...|
++ |.. ####...|
++ |.. 33...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc624 '오'
++ Font: gulim (17)
++ Bitmap: 15 x 13
++ Advance: 18
++ Offset: 2 x -1
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 3c#####b3 .|
++ |.. a##5 6##8 .|
++ |.. 9#a b#7 .|
++ |.. ##1 2## .|
++ |.. ##1 3#c .|
++ |.. 7#b1 1c#7 .|
++ |.. 8##6 17##7 .|
++ |.. 2b#####a2 .|
++ |.. 11 .|
++ |.. ## .|
++ |.. ## .|
++ -&gt;|.. ## .|&lt;-
++ |..a#############a.|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc628 '온'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 7######81 .|
++ |. 3##b3 28##3 .|
++ |. c#3 2#c .|
++ |. c#2 2#c .|
++ |. 4##81 17##5 .|
++ |. 1a######b2 .|
++ |. ##1 .|
++ |. ## .|
++ |.1##############1.|
++ |. 11 .|
++ |. ## .|
++ -&gt;|. ## .|&lt;-
++ |. ##1 .|
++ |. 8##########b .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc62c '올'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 3c######c3 .|
++ |. 7##61 4##7 .|
++ |. ##1 1## .|
++ |. 8##5 4##8 .|
++ |. 4########5 .|
++ |. ##1 .|
++ |. ## .|
++ |.1##############1.|
++ |. .|
++ |. a##########a .|
++ |. 1## .|
++ -&gt;|. a##########9 .|&lt;-
++ |. c#2 .|
++ |. 9##########c .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc635 '옵'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 3c######c3 .|
++ |. 7##61 4##7 .|
++ |. ##1 1## .|
++ |. 8##5 4##8 .|
++ |. 4########5 .|
++ |. ##1 .|
++ |. ## .|
++ |.1##############1.|
++ |. 22 11 .|
++ |. ## ## .|
++ |. ############ .|
++ -&gt;|. ## ## .|&lt;-
++ |. ##1 1## .|
++ |. 8##########8 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc640 '와'
++ Font: gulim (17)
++ Bitmap: 17 x 15
++ Advance: 18
++ Offset: 0 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ | 1b###c2 #c .|
++ | 2##3 4##2 ## .|
++ | 9#5 5#9 ## .|
++ | ## ## ## .|
++ | ##1 1#c ## .|
++ | 8#6 6#8 ####6.|
++ | 1c#727##1 ## .|
++ | 8###8 ## .|
++ | 88 ## .|
++ | ## ## .|
++ | 1## 257b## .|
++ -&gt;|2############# .|&lt;-
++ | ## .|
++ | ## .|
++ | 44 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc644 '완'
++ Font: gulim (17)
++ Bitmap: 17 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 3####c2 #c |
++ |. 4##3 3##3 ## |
++ |. c#3 3#c ## |
++ |. ## ## ####4|
++ |. 7#8 8#9 ## |
++ |. 7##c##b ## |
++ |. 15##4 ## |
++ |. ## 147b## |
++ |.4##########b## |
++ |. 121 ## |
++ |. ##1 99 |
++ -&gt;|. ##1 |&lt;-
++ |. ##2 |
++ |. 8##########b |
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc67c '왼'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 3####c2 88..|
++ |.. 5##2 3##4 ##..|
++ |.. c#1 3#c ##..|
++ |.. ## 2## ##..|
++ |.. 7#9 9#8 ##..|
++ |.. 6#####a ##..|
++ |.. 2##1 ##..|
++ |.. 1##4568b##..|
++ |..4#############..|
++ |.. 11 ##..|
++ |.. ##1 c#..|
++ -&gt;|.. ##1 ..|&lt;-
++ |.. ##2 ..|
++ |.. 8##########b..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc694 '요'
++ Font: gulim (17)
++ Bitmap: 15 x 13
++ Advance: 18
++ Offset: 1 x -1
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 5######5 ..|
++ |. 1b##3 3##b ..|
++ |. 9#8 9#8 ..|
++ |. ##1 1## ..|
++ |. ##1 1## ..|
++ |. 7#b b#7 ..|
++ |. 8##7117##8 ..|
++ |. 2a####a2 ..|
++ |. 55 55 ..|
++ |. ## ## ..|
++ |. ## ## ..|
++ -&gt;|. ## ## ..|&lt;-
++ |.5#############a..|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc6a9 '용'
++ Font: gulim (17)
++ Bitmap: 15 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 4#######b3 .|
++ |.. 9##4 6##7 .|
++ |.. ##1 1## .|
++ |.. 7##71 17##8 .|
++ |.. 2a######b3 .|
++ |.. 99 99 .|
++ |.. ## ## .|
++ |..c#############2.|
++ |.. .|
++ |.. 29######71 .|
++ |.. 6##82 3a##4 .|
++ -&gt;|.. ##2 3## .|&lt;-
++ |.. ##3 3## .|
++ |.. 4##b4114b##4 .|
++ |.. 17######71 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc6b0 '우'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 18######71 ..|
++ |.. 3##81 19##2 ..|
++ |.. c#4 4#b ..|
++ |.. ## ## ..|
++ |.. b#6 6#b ..|
++ |.. 1###5115###2 ..|
++ |.. 4######5 ..|
++ |.. ..|
++ |..b############b..|
++ |.. ## ..|
++ |.. ## ..|
++ -&gt;|.. ## ..|&lt;-
++ |.. ## ..|
++ |.. ## ..|
++ |.. 22 ..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc6b4 '운'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 7######6 .|
++ |. 2##a1 2b##1 .|
++ |. b#6 6#b .|
++ |. ##1 ## .|
++ |. 9#7 6#a .|
++ |. a##5115##c1 .|
++ |. 3c#####4 .|
++ |. .|
++ |.1##############1.|
++ |. 22 ## .|
++ |. ##1 ## .|
++ -&gt;|. ##1 cb .|&lt;-
++ |. ##2 .|
++ |. 8##########c .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc6c0 '움'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 19######81 .|
++ |. 5##81 29##4 .|
++ |. c#3 3## .|
++ |. b#5 3## .|
++ |. 2##c4 4c##3 .|
++ |. 5######6 .|
++ |. .|
++ |.1##############1.|
++ |. ## .|
++ |. 7##########6 .|
++ |. ##1 1## .|
++ -&gt;|. ## ## .|&lt;-
++ |. ## 1## .|
++ |. 8##########8 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc6cc '워'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 3####c3 ##..|
++ |.. 4##3 4##4 ##..|
++ |.. c#3 3#c ##..|
++ |.. ## ## ##..|
++ |.. b#5 4#b ##..|
++ |.. 2##716##3 ##..|
++ |.. 1a###b2 ##..|
++ |.. 15##..|
++ |..4#############..|
++ |.. ## ##..|
++ |.. ## c#####..|
++ -&gt;|.. ## ##..|&lt;-
++ |.. ## ##..|
++ |.. ## ##..|
++ |.. 11 55..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc6d0 '원'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 4#####4 ##..|
++ |.. 6##2 2##7 ##..|
++ |.. ##1 1## ##..|
++ |.. c#2 2## ##..|
++ |.. 4##5 3##6 ##..|
++ |.. 2b####4 ##..|
++ |.. 1358##..|
++ |..3#############..|
++ |.. 1 ## ##..|
++ |.. 33 ## 2#####..|
++ |.. ##1## ##..|
++ -&gt;|.. ##1 11..|&lt;-
++ |.. ##1 ..|
++ |.. 8##########b..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc6e8 '웨'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 4####3 cc cc..|
++ |.. 3##12##3## ##..|
++ |.. b#2 4#a## ##..|
++ |.. ## #c## ##..|
++ |.. b#3 4#a## ##..|
++ |.. 3##12##2## ##..|
++ |.. 4####2 ## ##..|
++ |.. 13## ##..|
++ |..6########## ##..|
++ |.. 1## ## ##..|
++ |.. 1##a#### ##..|
++ -&gt;|.. 1## ## ##..|&lt;-
++ |.. 1## ## ##..|
++ |.. ## cc ##..|
++ |.. 44..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc704 '위'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 3####c3 ##..|
++ |.. 4##3 4##4 ##..|
++ |.. c#3 3#c ##..|
++ |.. ## ## ##..|
++ |.. b#5 4#b ##..|
++ |.. 3##716##3 ##..|
++ |.. 1a###b2 ##..|
++ |.. 1347a###..|
++ |..7##########a##..|
++ |.. 11 ## ##..|
++ |.. ## ##..|
++ -&gt;|.. ## ##..|&lt;-
++ |.. ## ##..|
++ |.. ## ##..|
++ |.. 33 55..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc708 '윈'
++ Font: gulim (17)
++ Bitmap: 15 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 3#####4 c# ..|
++ |. 5##2 2##7 ## ..|
++ |. c#1 1## ## ..|
++ |. b#2 2## ## ..|
++ |. 4##5 3##6 ## ..|
++ |. 2b####3 ## ..|
++ |. 3## ..|
++ |.4############# ..|
++ |.13543##1 ## ..|
++ |. 33## ## ..|
++ |. 1##c# cc ..|
++ -&gt;|. 1## ..|&lt;-
++ |. 1##1 ..|
++ |. 9##########a..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc720 '유'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 18######7 ..|
++ |.. 3##6 2a##2 ..|
++ |.. c#3 5#b ..|
++ |.. ## ## ..|
++ |.. a#6 6#b ..|
++ |.. 1c##5115##c1 ..|
++ |.. 3c####c4 ..|
++ |.. ..|
++ |..c############c..|
++ |.. ## ## ..|
++ |.. ## ## ..|
++ -&gt;|.. ## ## ..|&lt;-
++ |.. ## ## ..|
++ |.. ## ## ..|
++ |.. 55 55 ..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc73c '으'
++ Font: gulim (17)
++ Bitmap: 14 x 13
++ Advance: 18
++ Offset: 2 x -1
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 6######4 ..|
++ |.. 1c##3 4##a ..|
++ |.. a#8 a#8 ..|
++ |.. ##1 1## ..|
++ |.. ##2 2## ..|
++ |.. 8#b b#8 ..|
++ |.. 9##7127##9 ..|
++ |.. 3b####b3 ..|
++ |.. ..|
++ |.. ..|
++ |.. ..|
++ -&gt;|.. ..|&lt;-
++ |..c############c..|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc740 '은'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 18######7 .|
++ |. 3##81 29##3 .|
++ |. c#4 3#c .|
++ |. b#4 3## .|
++ |. 2##91 29##4 .|
++ |. 6######81 .|
++ |. .|
++ |. .|
++ |.1##############1.|
++ |. 33 .|
++ |. ## .|
++ -&gt;|. ## .|&lt;-
++ |. ##1 .|
++ |. 8########### .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc744 '을'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 19######81 ..|
++ |.. 5##81 18##4 ..|
++ |.. c#3 3## ..|
++ |.. b#5 4## ..|
++ |.. 2###5115###3 ..|
++ |.. 4######5 ..|
++ |..b############b..|
++ |.. ..|
++ |.. a##########7 ..|
++ |.. 1## ..|
++ |.. 2## ..|
++ -&gt;|.. a##########8 ..|&lt;-
++ |.. c#2 ..|
++ |.. 9##########c ..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc74c '음'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 29######91 ..|
++ |.. 5##81 18##4 ..|
++ |.. ##3 3## ..|
++ |.. b#5 3## ..|
++ |.. 2###5115###3 ..|
++ |.. 4######5 ..|
++ |.. ..|
++ |..c############c..|
++ |.. ..|
++ |.. 9##########8 ..|
++ |.. ## ## ..|
++ -&gt;|.. ## ## ..|&lt;-
++ |.. ##1 ## ..|
++ |.. 8##########8 ..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc758 '의'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 2c###b2 #c..|
++ |.. 2##5 5##2 ##..|
++ |.. a#5 5#a ##..|
++ |.. ##1 1## ##..|
++ |.. ##1 ## ##..|
++ |.. 9#5 5#a ##..|
++ |.. 1##5 5##2 ##..|
++ |.. 1b###c2 ##..|
++ |.. ##..|
++ |.. ##..|
++ |.. 138###..|
++ -&gt;|..2#############..|&lt;-
++ |.. 23321 ##..|
++ |.. ##..|
++ |.. 44..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc774 '이'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 1a###9 cc..|
++ |.. c#7 8#b ##..|
++ |.. 6#9 a#5 ##..|
++ |.. b#4 5#9 ##..|
++ |.. ##1 2#c ##..|
++ |.. ## ## ##..|
++ |..1## ## ##..|
++ |.. ##1 1#c ##..|
++ |.. c#3 4#a ##..|
++ |.. 8#8 a#6 ##..|
++ |.. 1##83a## ##..|
++ -&gt;|.. 2c###b1 ##..|&lt;-
++ |.. ##..|
++ |.. ##..|
++ |.. 33..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc775 '익'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 2c###c2 #c..|
++ |..2##4 5##2 1##..|
++ |..9#5 5#9 1##..|
++ |..c# ## 1##..|
++ |..c# 1## 1##..|
++ |..9#5 7#9 1##..|
++ |..2##618##1 1##..|
++ |.. 2b###91 #c..|
++ |.. ..|
++ |.. 9##########8..|
++ |.. 2##..|
++ -&gt;|.. ##..|&lt;-
++ |.. ##..|
++ |.. ##..|
++ |.. 77..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc778 '인'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 2c###b1 99..|
++ |..2##5 6##1 ##..|
++ |..9#5 6#9 ##..|
++ |..## ## ##..|
++ |..## 1## ##..|
++ |..9#5 7#9 ##..|
++ |..2##5 7##1 ##..|
++ |.. 2c###a1 ##..|
++ |.. ##..|
++ |.. 22 ##..|
++ |.. ## cc..|
++ -&gt;|.. ## ..|&lt;-
++ |.. ##1 ..|
++ |.. 8##########b..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc77c '일'
++ Font: gulim (17)
++ Bitmap: 15 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 3#####3 cc .|
++ |..4##3 4##4 ## .|
++ |..b#2 3#b ## .|
++ |..## ## ## .|
++ |..b#3 3#b ## .|
++ |..4##3 4##4 ## .|
++ |.. 4#####3 ## .|
++ |.. 66 .|
++ |.. c##########8 .|
++ |.. ##1.|
++ |.. 1##1.|
++ -&gt;|.. b##########9 .|&lt;-
++ |.. ## .|
++ |.. a##########6 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc785 '입'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 3#####3 #c..|
++ |..4##3 4##4 ##..|
++ |..b#3 3#b ##..|
++ |..## ## ##..|
++ |..b#3 3#b ##..|
++ |..4##3 4##4 ##..|
++ |.. 3#####3 ##..|
++ |.. 44..|
++ |.. bb aa..|
++ |.. ## ##..|
++ |.. ############..|
++ -&gt;|.. ## ##..|&lt;-
++ |.. ##1 ##..|
++ |.. 7##########9..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc788 '있'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 2c###c2 cc .|
++ |.2##5 5##2 ## .|
++ |.9#5 5#9 ## .|
++ |.c# ## ## .|
++ |.c# 1## ## .|
++ |.9#6 6#9 ## .|
++ |.2##617##1 ## .|
++ |. 1b###91 ## .|
++ |. 66 .|
++ |. 3c9 5#7 .|
++ |. 6## 9#b .|
++ -&gt;|. ###4 1###3 .|&lt;-
++ |. a#a##3 c#a##2 .|
++ |. b#7 4####6 4##4.|
++ |. 1 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc78a '잊'
++ Font: gulim (17)
++ Bitmap: 15 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 2c###c2 #c .|
++ |..2##4 5##2 ## .|
++ |..a#4 5#9 ## .|
++ |..## ## ## .|
++ |..## 1## ## .|
++ |..9#5 6#9 ## .|
++ |..2##618##1 ## .|
++ |.. 2b###91 ## .|
++ |.. 11 .|
++ |.. 4###########a .|
++ |.. 8#c .|
++ -&gt;|.. 4###9 .|&lt;-
++ |.. 3b##28##82 .|
++ |.. 7###7 2c###5.|
++ |.. 21 44 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc790 '자'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.6########8 cc .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ## .|
++ |. 3##3 ## .|
++ |. 7##7 ####6.|
++ |. b### ## .|
++ |. 3#aa#6 ## .|
++ |. b#42##2 ## .|
++ |. 8#a 5##1 ## .|
++ |.7##1 7##2## .|
++ -&gt;|.792 5a5## .|&lt;-
++ |. ## .|
++ |. ## .|
++ |. 44 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc791 '작'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.9########9 c# .|
++ |. c#2 ##1 .|
++ |. 3##6 ##1 .|
++ |. 8##c ####5.|
++ |. 3#b7#8 ##1 .|
++ |. 3##2 a#8 ##1 .|
++ |.6##2 9#b1##1 .|
++ |.34 34 ## .|
++ |. 33 .|
++ |. 9##########8 .|
++ |. 1## .|
++ -&gt;|. ## .|&lt;-
++ |. ## .|
++ |. ## .|
++ |. 44 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc7a5 '장'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.7########9 c# .|
++ |. b#4 ## .|
++ |. 1##8 ## .|
++ |. 7###1 ####5.|
++ |. 2#c6#a ## .|
++ |. 2##3 9#9 ## .|
++ |.5##3 8##1## .|
++ |.341 341## .|
++ |. 77 .|
++ |. 19######a2 .|
++ |. 4##81 17##4 .|
++ -&gt;|. c#2 2#c .|&lt;-
++ |. c#2 2## .|
++ |. 4##82 3a##5 .|
++ |. 18######81 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc7ac '재'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..1######b cc cc..|
++ |.. ##1 ## ##..|
++ |.. ##1 ## ##..|
++ |.. ##1 ## ##..|
++ |.. ##1 ## ##..|
++ |.. ##3 #####..|
++ |.. 2##5 ## ##..|
++ |.. 6##9 ## ##..|
++ |.. b###1 ## ##..|
++ |.. 4#a6#8 ## ##..|
++ |..2##2 ##3 ## ##..|
++ -&gt;|..b#5 3#c ## ##..|&lt;-
++ |.. ## ##..|
++ |.. cc ##..|
++ |.. 44..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc800 '저'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..2########c #c..|
++ |.. ## ##..|
++ |.. ## ##..|
++ |.. ##1 ##..|
++ |.. 1##3 ##..|
++ |.. 4##6 3#####..|
++ |.. 7##a ##..|
++ |.. bc##2 ##..|
++ |.. 4c87#a ##..|
++ |.. bc11##7 ##..|
++ |.. 8#6 5##6 ##..|
++ -&gt;|..6#a 8##5 ##..|&lt;-
++ |..22 341 ##..|
++ |.. ##..|
++ |.. 33..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc801 '적'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. a#######8 1#c..|
++ |.. ##1 1##..|
++ |.. 2##3 1##..|
++ |.. 7##9 3#####..|
++ |.. 1####3 1##..|
++ |.. b#63##1 1##..|
++ |.. a#9 5##1 1##..|
++ |..5c7 495 1##..|
++ |.. 22..|
++ |.. 9##########8..|
++ |.. 2##..|
++ -&gt;|.. ##..|&lt;-
++ |.. ##..|
++ |.. ##..|
++ |.. 44..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc804 '전'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..2########3 c# ..|
++ |.. ##21 ## ..|
++ |.. 1##2 ## ..|
++ |.. 3##62##### ..|
++ |.. 8##b ## ..|
++ |.. 2#ca#4 ## ..|
++ |.. 1##42##2 ## ..|
++ |..1##6 3##3 ## ..|
++ |..384 263 ## ..|
++ |.. 44 ## ..|
++ |.. ## 99 ..|
++ -&gt;|.. ## ..|&lt;-
++ |.. ##1 ..|
++ |.. 9##########a..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc808 '절'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..2########3 c# ..|
++ |.. ##21 ## ..|
++ |.. 3##4 ## ..|
++ |.. a##c2##### ..|
++ |.. 5#a8#7 ## ..|
++ |.. 3##2 c#6 ## ..|
++ |..4##3 1b#6 ## ..|
++ |..131 1 77 ..|
++ |.. b#########7 ..|
++ |.. ## ..|
++ |.. 1## ..|
++ -&gt;|.. b#########9 ..|&lt;-
++ |.. ## ..|
++ |.. a##########7..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc815 '정'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. a#######8 #c..|
++ |.. ##1 ##..|
++ |.. 1##3 ##..|
++ |.. 7##9 3#####..|
++ |.. 1####3 ##..|
++ |.. a#63##1 ##..|
++ |.. a#9 5##2 ##..|
++ |..5c7 495 ##..|
++ |.. 22..|
++ |.. 2a######a2 ..|
++ |.. 5##71 17##4..|
++ -&gt;|.. ##2 2#c..|&lt;-
++ |.. ##2 3#c..|
++ |.. 4##72 4a##4..|
++ |.. 18######81 ..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc81c '제'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..7######7cc c#...|
++ |.. ## ## ##...|
++ |.. ## ## ##...|
++ |.. ## ## ##...|
++ |.. ##1 ## ##...|
++ |.. 1##b#### ##...|
++ |.. 5##5 ## ##...|
++ |.. a##a ## ##...|
++ |.. 2####1 ## ##...|
++ |.. a#86#8 ## ##...|
++ |..7##1 b#3## ##...|
++ -&gt;|..9#4 3a7## ##...|&lt;-
++ |.. ## ##...|
++ |.. ## ##...|
++ |.. 33...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc838 '져'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. b#######a cc..|
++ |.. ## ##..|
++ |.. ## ##..|
++ |.. ##1 ##..|
++ |.. 1##3 2#####..|
++ |.. 4##6 ##..|
++ |.. 7##a ##..|
++ |.. b###2 ##..|
++ |.. 3#a9#92#####..|
++ |.. a#32##5 ##..|
++ |.. 6#8 7##4 ##..|
++ -&gt;|..4#b a##4 ##..|&lt;-
++ |..231 462 ##..|
++ |.. ##..|
++ |.. 22..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc870 '조'
++ Font: gulim (17)
++ Bitmap: 14 x 13
++ Advance: 18
++ Offset: 2 x -1
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..2###########c ..|
++ |.. ##3 ..|
++ |.. 4##6 ..|
++ |.. c##c ..|
++ |.. 8#98#7 ..|
++ |.. 1b#a b#7 ..|
++ |..3###6 9##92..|
++ |..153 1893..|
++ |.. a9 ..|
++ |.. 1#c ..|
++ |.. 1#c ..|
++ -&gt;|.. 1#c ..|&lt;-
++ |..a############a..|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc880 '좀'
++ Font: gulim (17)
++ Bitmap: 15 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. a##########a .|
++ |.. 1##6 .|
++ |.. 1####3 .|
++ |.. 28##52##92 .|
++ |.. b##91 6###1 .|
++ |.. ## .|
++ |.. ## .|
++ |..b#############1.|
++ |.. .|
++ |.. 7##########6 .|
++ |.. ##1 1## .|
++ -&gt;|.. ## ## .|&lt;-
++ |.. ##1 ## .|
++ |.. 7##########8 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc885 '종'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. b##########a ..|
++ |.. 2##5 ..|
++ |.. 3####4 ..|
++ |.. 15c##2 a#b2 ..|
++ |.. c##5 aa 4##a ..|
++ |.. ## ..|
++ |.. ## ..|
++ |..b############c..|
++ |.. ..|
++ |.. 2a######81 ..|
++ |.. 5##71 19##3 ..|
++ -&gt;|.. ##3 3#c ..|&lt;-
++ |.. b#5 4#c ..|
++ |.. 2##c4115###3 ..|
++ |.. 5######6 ..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc8fc '주'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. a##########a ..|
++ |.. 3##1 ..|
++ |.. b##9 ..|
++ |.. 9#89#8 ..|
++ |.. 2##8 9#b1 ..|
++ |..2c##4 6##b1..|
++ |.. 43 55 ..|
++ |.. ..|
++ |..b#############..|
++ |.. ## ..|
++ |.. ## ..|
++ -&gt;|.. ## ..|&lt;-
++ |.. ## ..|
++ |.. ## ..|
++ |.. 66 ..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc900 '준'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. b##########a .|
++ |. 4##3 .|
++ |. 2####2 .|
++ |. 6##44##6 .|
++ |. 7##b1 1a##7 .|
++ |. 671 297 .|
++ |. .|
++ |. .|
++ |.1#############c1.|
++ |. 11 ## .|
++ |. ## ## .|
++ -&gt;|. ## 78 .|&lt;-
++ |. ##1 .|
++ |. 8###########3 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc90d '줍'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. b##########a .|
++ |. 4##5 .|
++ |. 3####4 .|
++ |. 18##32##b2 .|
++ |. a##8 6###1 .|
++ |. 12 22 .|
++ |. .|
++ |.2##############1.|
++ |. 66 ## 66 .|
++ |. ##1 ## ## .|
++ |. ############ .|
++ -&gt;|. ##1 ## .|&lt;-
++ |. ##1 1## .|
++ |. 8##########8 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc911 '중'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. a##########b ..|
++ |.. 3##4 ..|
++ |.. 2####4 ..|
++ |.. 18##33##a1 ..|
++ |.. 9##81 7##b ..|
++ |.. 12 32 ..|
++ |.. ..|
++ |..b############b..|
++ |.. ## ..|
++ |.. 3b######b3 ..|
++ |.. 8##71 28##8 ..|
++ -&gt;|..1##1 1##1..|&lt;-
++ |.. 9##61 17##9 ..|
++ |.. 3c#######4 ..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc998 '즘'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. b##########a .|
++ |. 7##2 .|
++ |. 6####3 .|
++ |. 3##c14##91 .|
++ |. 3###5 7##c .|
++ |. 21 32 .|
++ |. .|
++ |.1##############1.|
++ |. .|
++ |. 7##########6 .|
++ |. ##1 1## .|
++ -&gt;|. ## ## .|&lt;-
++ |. ## ## .|
++ |. 7##########8 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc9c0 '지'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. b########8 cc..|
++ |.. ## ##..|
++ |.. ## ##..|
++ |.. 1## ##..|
++ |.. 4##2 ##..|
++ |.. 8##6 ##..|
++ |.. c##b ##..|
++ |.. 6#7a#3 ##..|
++ |.. 1#c 3#b ##..|
++ |.. 1c#3 9#8 ##..|
++ |..1##5 1##8 ##..|
++ -&gt;|..253 297 ##..|&lt;-
++ |.. ##..|
++ |.. ##..|
++ |.. 22..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc9c4 '진'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..1#########4 #c..|
++ |.. 6#9 ##..|
++ |.. a#c ##..|
++ |.. 1###4 ##..|
++ |.. 9#9#c ##..|
++ |.. 5#a 8#9 ##..|
++ |.. 4##1 b#8 ##..|
++ |..3##2 b#7 ##..|
++ |.. 11 21 ##..|
++ |.. 22 ##..|
++ |.. ## 98..|
++ -&gt;|.. ## ..|&lt;-
++ |.. ## ..|
++ |.. 8##########a..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc9d1 '집'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 9########7 #c..|
++ |.. 4#c ##..|
++ |.. 9##3 ##..|
++ |.. 2###b ##..|
++ |.. c#48#7 ##..|
++ |.. 1##6 a#9 ##..|
++ |..1##4 8#a ##..|
++ |.. ..|
++ |.. a9 a9..|
++ |.. ## ##..|
++ |.. ############..|
++ -&gt;|.. ## ##..|&lt;-
++ |.. ## 1##..|
++ |.. 8##########7..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc9e7 '짧'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.a#########6cb .|
++ |. ## ## 1#c .|
++ |. 1## ## 1#c .|
++ |. 5##3 3##41####4.|
++ |. b##a 7##b2#c .|
++ |.4#9a#4cb9#7#c .|
++ |.c#127##61###c .|
++ |.21 77 2497 .|
++ |. b####7cc bb .|
++ |. 1#### ## .|
++ |. 1######## .|
++ -&gt;|. b####7## ## .|&lt;-
++ |. ## 11## ## .|
++ |. a##########b .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc9f8 '째'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..3#######bbb bb..|
++ |.. cc cc cc ##..|
++ |.. cc cc cc ##..|
++ |.. cc cc cc ##..|
++ |.. ## ## cc ##..|
++ |.. ## 1## #####..|
++ |.. 3## 3##2cc ##..|
++ |.. 6##15##4cc ##..|
++ |.. a##37##7cc ##..|
++ |..1##c6a##acc ##..|
++ |..6#9#abbab#c ##..|
++ -&gt;|..ab158a758#c ##..|&lt;-
++ |.. cc ##..|
++ |.. bb ##..|
++ |.. 44..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xcabd '쪽'
++ Font: gulim (17)
++ Bitmap: 15 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 7#####aa#####2..|
++ |. 7#c 2##2 ..|
++ |. 1###5 9##a ..|
++ |. 2##6##36#a8#9 ..|
++ |. b#3 1aaaa 7#8..|
++ |. 88 ..|
++ |. ## ..|
++ |.1#############c..|
++ |. ..|
++ |. ..|
++ |. b##########9 ..|
++ -&gt;|. 1## ..|&lt;-
++ |. ## ..|
++ |. ## ..|
++ |. ## ..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xcc38 '참'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. a####a c# .|
++ |. ## .|
++ |. ## .|
++ |.5########9 ## .|
++ |. 2##2 ####4.|
++ |. a##b ## .|
++ |. 9#88#c1 ## .|
++ |.5##7 6##7 ## .|
++ |.682 187 55 .|
++ |. 8#########7 .|
++ |. ##1 ##1 .|
++ -&gt;|. 1## ##1 .|&lt;-
++ |. ## ##1 .|
++ |. 9#########9 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xcc3e '찾'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. a####a c# .|
++ |. ## .|
++ |. ## .|
++ |.5########a ####4.|
++ |. 7##4 ## .|
++ |. 6####4 ## .|
++ |.1a#b 2##91 ## .|
++ |.c#5 8#c ## .|
++ |. 11 .|
++ |. b###########7 .|
++ |. ##7 .|
++ -&gt;|. b###6 .|&lt;-
++ |. 6##71c##3 .|
++ |.1c##c2 5###5 .|
++ |. 32 131 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xcc98 '처'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. a#####1 cc...|
++ |. ##...|
++ |. ##...|
++ |. a########9 ##...|
++ |. ## ##...|
++ |. ## ##...|
++ |. 3##21#####...|
++ |. 9##7 ##...|
++ |. 3####1 ##...|
++ |. 1##54#8 ##...|
++ |. 2##8 8#6 ##...|
++ -&gt;|.2##a a#5 ##...|&lt;-
++ |. 33 ##...|
++ |. ##...|
++ |. 33...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xccab '첫'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. a####a a9..|
++ |.. ##..|
++ |.. ##..|
++ |..1########b ##..|
++ |.. 6##3 3#####..|
++ |.. 3####2 ##..|
++ |.. 5##23##5 ##..|
++ |..9#a1 2##9 ##..|
++ |..22 33 ##..|
++ |.. 11 #c..|
++ |.. 7## ..|
++ -&gt;|.. 5###9 ..|&lt;-
++ |.. 1a#c18##2 ..|
++ |.. 6###5 4###5..|
++ |.. 495 473..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xccb4 '체'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 4####a cc #c..|
++ |.. ## ##..|
++ |.. ## ##..|
++ |..a######a ## ##..|
++ |.. ## ## ##..|
++ |.. ## ## ##..|
++ |.. 1##28#### ##..|
++ |.. 5##6 ## ##..|
++ |.. a##b ## ##..|
++ |.. 4#bb#4 ## ##..|
++ |..1##32##2 ## ##..|
++ -&gt;|..b#6 5#c ## ##..|&lt;-
++ |.. ## ##..|
++ |.. cc ##..|
++ |.. 22..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xcd08 '초'
++ Font: gulim (17)
++ Bitmap: 15 x 13
++ Advance: 18
++ Offset: 2 x -1
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. b#####a .|
++ |.. .|
++ |.. .|
++ |.. a###########a .|
++ |.. 3##4 .|
++ |.. a##c .|
++ |.. 7#86#c1 .|
++ |.. 1a#a 6##4 .|
++ |.. 7##7 55 2c##6 .|
++ |..1981 ## 2b91.|
++ |.. ## .|
++ -&gt;|.. ## .|&lt;-
++ |..c#############1.|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xcd5c '최'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. a####7 cc..|
++ |.. ##..|
++ |.. ##..|
++ |.. b########2 ##..|
++ |.. 1##3 ##..|
++ |.. 8##8 ##..|
++ |.. 5#bb#5 ##..|
++ |.. 3c#c33b##3 ##..|
++ |.. 6a41## 5#8 ##..|
++ |.. 1## ##..|
++ |.. 2##69b####..|
++ -&gt;|..4########c95##..|&lt;-
++ |.. ##..|
++ |.. ##..|
++ |.. 22..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xcd94 '추'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. a#####b ..|
++ |.. ..|
++ |.. ..|
++ |.. b##########a ..|
++ |.. 8##6 ..|
++ |.. 6####4 ..|
++ |.. 17##9 1b##5 ..|
++ |..3##81 3b#c ..|
++ |.. ..|
++ |..b############b..|
++ |.. ## ..|
++ -&gt;|.. ## ..|&lt;-
++ |.. ## ..|
++ |.. ## ..|
++ |.. 99 ..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xcd9c '출'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. a#####b ..|
++ |.. ..|
++ |.. b##########5 ..|
++ |.. a##7 ..|
++ |.. 4b##9a##92 ..|
++ |..3###71 19##b ..|
++ |.. ..|
++ |..c############c..|
++ |.. ## ..|
++ |.. a##########a ..|
++ |.. 1## ..|
++ -&gt;|.. a##########9 ..|&lt;-
++ |.. ## ..|
++ |.. 9###########1..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xcde8 '취'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. a####7 ##..|
++ |.. 1##..|
++ |.. a########21##..|
++ |.. 1##3 1##..|
++ |.. 9##a 1##..|
++ |.. 9#a9#a 1##..|
++ |.. 6##7 6##71##..|
++ |.. 231 1653##..|
++ |.. 14####..|
++ |..5#############..|
++ |.. 2211## 1##..|
++ -&gt;|.. ## 1##..|&lt;-
++ |.. ## 1##..|
++ |.. ## 1##..|
++ |.. 88 44..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xce58 '치'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 3 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |... 1c####b #c..|
++ |... ##..|
++ |... ##..|
++ |...8########b ##..|
++ |... ## ##..|
++ |... 1## ##..|
++ |... 3##2 ##..|
++ |... 9##7 ##..|
++ |... 2####1 ##..|
++ |... c#46#9 ##..|
++ |...1c#6 9#8 ##..|
++ -&gt;|...##6 b#a ##..|&lt;-
++ |...22 11 ##..|
++ |... ##..|
++ |... 33..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xce6d '칭'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. a####a 89 ..|
++ |.. ## ..|
++ |.. ## ..|
++ |..5########a ## ..|
++ |.. ##6 ## ..|
++ |.. 8###2 ## ..|
++ |.. 8#93##4 ## ..|
++ |..3##7 2##b1## ..|
++ |..472 671cc ..|
++ |.. 2a######81 ..|
++ |.. 6##6 29##3..|
++ -&gt;|.. ##2 4#c..|&lt;-
++ |.. c#3 4#c..|
++ |.. 3##b4115###3..|
++ |.. 5######5 ..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xce74 '카'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.5#######7 ## .|
++ |. 1## ## .|
++ |. ## ## .|
++ |. 1## ## .|
++ |. 14#c ## .|
++ |.7#######9 ####7.|
++ |. 8#5 ## .|
++ |. 1##1 ## .|
++ |. a#6 ## .|
++ |. a#8 ## .|
++ |.39###6 ## .|
++ -&gt;|.6#a4 ## .|&lt;-
++ |. ## .|
++ |. ## .|
++ |. 33 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xcee4 '커'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 3 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |...5######7 #c..|
++ |... 1## ##..|
++ |... ## ##..|
++ |... ## ##..|
++ |... 12#b ##..|
++ |...7######99####..|
++ |... 6c6 ##..|
++ |... bc1 ##..|
++ |... 7#7 ##..|
++ |... 6#b ##..|
++ |...39##a ##..|
++ -&gt;|...6#a3 ##..|&lt;-
++ |... ##..|
++ |... ##..|
++ |... 33..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xceec '컬'
++ Font: gulim (17)
++ Bitmap: 15 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. b#######3 cc ..|
++ |. 7#8 ##1..|
++ |. 13b#6 ##1..|
++ |.2########3 ##1..|
++ |. 233226#bc####1..|
++ |. 4##1 ##1..|
++ |. 15##c1 ##1..|
++ |.2####4 78 ..|
++ |. b#########7 ..|
++ |. 1## ..|
++ |. 1## ..|
++ -&gt;|. b#########8 ..|&lt;-
++ |. ## ..|
++ |. 9##########8..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xcef4 '컴'
++ Font: gulim (17)
++ Bitmap: 15 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.1########3 cc ..|
++ |. 7#8 ## ..|
++ |. 13b#6 ## ..|
++ |.2########2 ## ..|
++ |. 233226#bc#### ..|
++ |. 3##1 ## ..|
++ |. 15c#b1 ## ..|
++ |.3###b3 ## ..|
++ |. 11 ..|
++ |. 9#########a ..|
++ |. ##1 c#2..|
++ -&gt;|. ## c#2..|&lt;-
++ |. ##1 ##2..|
++ |. 8#########a ..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xcf1c '켜'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 3 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |...6######7 cc..|
++ |... 1## ##..|
++ |... ## ##..|
++ |... ##c####..|
++ |... 13#b ##..|
++ |...8######9 ##..|
++ |... 6c5 ##..|
++ |... bc1 ##..|
++ |... 8#61#####..|
++ |... 8#9 ##..|
++ |...4c##8 ##..|
++ -&gt;|...5a71 ##..|&lt;-
++ |... ##..|
++ |... ##..|
++ |... 33..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xcf58 '콘'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. c##########8 .|
++ |. 1## .|
++ |. ## .|
++ |. 2c########### .|
++ |. 1321 cc .|
++ |. 55 ## .|
++ |. ## 43 .|
++ |. ## .|
++ |.1##############1.|
++ |. 11 .|
++ |. ##1 .|
++ -&gt;|. ##1 .|&lt;-
++ |. ##2 .|
++ |. 8##########b .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xcf5c '콜'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. a##########7 ..|
++ |.. 2## ..|
++ |.. 1## ..|
++ |.. a##########c ..|
++ |.. 1321 3#b ..|
++ |.. cc 363 ..|
++ |.. ## ..|
++ |..#############a..|
++ |.. ..|
++ |.. c##########a ..|
++ |.. 1## ..|
++ -&gt;|.. b##########9 ..|&lt;-
++ |.. ## ..|
++ |.. a########### ..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd06c '크'
++ Font: gulim (17)
++ Bitmap: 15 x 13
++ Advance: 18
++ Offset: 2 x -1
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 1##########8 .|
++ |.. ## .|
++ |.. ## .|
++ |.. ## .|
++ |.. ## .|
++ |.. 235## .|
++ |.. 2##########c .|
++ |.. 3#b .|
++ |.. 4#9 .|
++ |.. 5#8 .|
++ |.. 7#7 .|
++ -&gt;|.. 8#5 .|&lt;-
++ |..3#############2.|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd074 '클'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. a##########7 ..|
++ |.. 2## ..|
++ |.. 1## ..|
++ |.. b##########c ..|
++ |.. 1321 3#b ..|
++ |.. 5#8 ..|
++ |..b#############..|
++ |.. ..|
++ |.. c##########7 ..|
++ |.. 1## ..|
++ |.. 1## ..|
++ -&gt;|.. c##########8 ..|&lt;-
++ |.. ## ..|
++ |.. b##########c ..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd0a4 '키'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..6#######8 c#...|
++ |.. ##2 ##...|
++ |.. c#2 ##...|
++ |.. ##1 ##...|
++ |.. 13## ##...|
++ |..9#######b ##...|
++ |.. 7#7 ##...|
++ |.. ##2 ##...|
++ |.. 9#7 ##...|
++ |.. 9#a ##...|
++ |..38c##7 ##...|
++ -&gt;|..8#c61 ##...|&lt;-
++ |.. ##...|
++ |.. ##...|
++ |.. 44...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd0a8 '킨'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..a#######9 9a ..|
++ |.. ##2 ##1..|
++ |.. ## ##1..|
++ |.. 13569#b ##1..|
++ |..########5 ##1..|
++ |.. 4#9 ##1..|
++ |.. 26##8 ##1..|
++ |..####81 ##1..|
++ |.. ##1..|
++ |.. 55 ##1..|
++ |.. ## c# ..|
++ -&gt;|.. ## ..|&lt;-
++ |.. ##1 ..|
++ |.. 9##########9..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd0b5 '킵'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. a#######8 c#...|
++ |. ##1 ##...|
++ |. 24## ##...|
++ |.1c#######b ##...|
++ |. 12 1##5 ##...|
++ |. 1c#8 ##...|
++ |. 39##7 ##...|
++ |.1####81 66...|
++ |. 77 77...|
++ |. ## ##...|
++ |. ###########...|
++ -&gt;|. ## ##...|&lt;-
++ |. ##1 ##...|
++ |. 7#########8...|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd0c0 '타'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 8######a cc .|
++ |.1##1 ## .|
++ |.1## ## .|
++ |.1## ## .|
++ |.1## ## .|
++ |.1#######5 ####5.|
++ |.1## ## .|
++ |.1## ## .|
++ |.1## ## .|
++ |. ##2 1469## .|
++ |. 5########### .|
++ -&gt;|. ## .|&lt;-
++ |. ## .|
++ |. ## .|
++ |. 33 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd0d1 '탑'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.7#######a #c .|
++ |.##2 1## .|
++ |.##1 1## .|
++ |.########5 1####4.|
++ |.##1 1## .|
++ |.##1 148### .|
++ |.8#########c## .|
++ |. 88 .|
++ |. 77 77 .|
++ |. ## ## .|
++ |. ############ .|
++ -&gt;|. ## ## .|&lt;-
++ |. ##1 1## .|
++ |. 7##########7 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd0dc '태'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 8#####2bb cc..|
++ |..1##1 ## ##..|
++ |..1## ## ##..|
++ |..1## ## ##..|
++ |..1##111 ## ##..|
++ |..1######3######..|
++ |..1## ## ##..|
++ |..1## ## ##..|
++ |..1## ## ##..|
++ |..1## 148## ##..|
++ |.. 8######## ##..|
++ -&gt;|.. ## ##..|&lt;-
++ |.. ## ##..|
++ |.. cc ##..|
++ |.. 44..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd0dd '택'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..7#####3 88 c#...|
++ |..##2 ## ##...|
++ |..##1 ## ##...|
++ |..######4 #####...|
++ |..##3221 ## ##...|
++ |..##1 ## ##...|
++ |..##2 137c## ##...|
++ |..6######### ##...|
++ |.. cc c#...|
++ |.. ...|
++ |.. 9##########9...|
++ -&gt;|.. 1##...|&lt;-
++ |.. ##...|
++ |.. ##...|
++ |.. ##...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd130 '터'
++ Font: gulim (17)
++ Bitmap: 12 x 15
++ Advance: 18
++ Offset: 3 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |...7######2 cc...|
++ |...##3 ##...|
++ |...##1 ##...|
++ |...##1 ##...|
++ |...##1 ##...|
++ |...######ca####...|
++ |...##1 ##...|
++ |...##1 ##...|
++ |...##1 ##...|
++ |...##4 13761 ##...|
++ |...5######c2 ##...|
++ -&gt;|... 22 ##...|&lt;-
++ |... ##...|
++ |... ##...|
++ |... 33...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd14c '테'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 8####b cc cc..|
++ |..1##1 ## ##..|
++ |..1## ## ##..|
++ |..1## ## ##..|
++ |..1## ## ##..|
++ |..1######### ##..|
++ |..1## ## ##..|
++ |..1## ## ##..|
++ |..1## ## ##..|
++ |..1##11352## ##..|
++ |.. 7#####3## ##..|
++ -&gt;|.. ## ##..|&lt;-
++ |.. ## ##..|
++ |.. cc ##..|
++ |.. 33..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd14d '텍'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 8####c1cc a9..|
++ |..1##1 ## ##..|
++ |..1## ## ##..|
++ |..1## ## ##..|
++ |..1######### ##..|
++ |..1## ## ##..|
++ |..1## ## ##..|
++ |.. 9#####8## ##..|
++ |.. 77 cc..|
++ |.. ..|
++ |.. 9##########9..|
++ -&gt;|.. 1##..|&lt;-
++ |.. ##..|
++ |.. ##..|
++ |.. ##..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd15c '템'
++ Font: gulim (17)
++ Bitmap: 15 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 8####c1bb #c .|
++ |..1##1 ## ## .|
++ |..1## ## ## .|
++ |..1## ## ## .|
++ |..1######### ## .|
++ |..1## ## ## .|
++ |..1## 1 ## ## .|
++ |.. 9#####8cc ## .|
++ |.. 11 .|
++ |.. 7##########9 .|
++ |.. ##1 ## .|
++ -&gt;|.. ## ##1.|&lt;-
++ |.. ##1 ## .|
++ |.. 8##########9 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd1a0 '토'
++ Font: gulim (17)
++ Bitmap: 14 x 13
++ Advance: 18
++ Offset: 2 x -1
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 6##########4 ..|
++ |.. ##3 ..|
++ |.. ##1 ..|
++ |.. ##1 ..|
++ |.. ###########3 ..|
++ |.. ##1 ..|
++ |.. ##1 ..|
++ |.. ##2 ..|
++ |.. 6##########5 ..|
++ |.. ## ..|
++ |.. ## ..|
++ -&gt;|.. ## ..|&lt;-
++ |..b############9..|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd1a8 '톨'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 7##########9 ..|
++ |.. ##3 ..|
++ |.. ##1 ..|
++ |.. ###########9 ..|
++ |.. ##2 ..|
++ |.. 6##########c ..|
++ |.. ## ..|
++ |..b############b..|
++ |.. ..|
++ |.. c##########9 ..|
++ |.. 1## ..|
++ -&gt;|.. b##########9 ..|&lt;-
++ |.. ## ..|
++ |.. b##########c ..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd1b5 '통'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 6##########7 ..|
++ |.. ##3 ..|
++ |.. ##2 ..|
++ |.. ###########7 ..|
++ |.. ##2 ..|
++ |.. 7##########a ..|
++ |.. ## ..|
++ |.. ## ..|
++ |..b############b..|
++ |.. ..|
++ |.. 5#######c3 ..|
++ -&gt;|.. 9#c3 4##7 ..|&lt;-
++ |.. ##2 2## ..|
++ |.. 6##83 38##6 ..|
++ |.. 28######92 ..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd2b8 '트'
++ Font: gulim (17)
++ Bitmap: 14 x 13
++ Advance: 18
++ Offset: 2 x -1
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 6##########1 ..|
++ |.. ##2 ..|
++ |.. ##1 ..|
++ |.. ##1 ..|
++ |.. ##########c ..|
++ |.. ##1 ..|
++ |.. ##2 ..|
++ |.. 7##########2 ..|
++ |.. ..|
++ |.. ..|
++ |.. ..|
++ -&gt;|.. ..|&lt;-
++ |..b############2..|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd2b9 '특'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 5##########8 .|
++ |. c#4 .|
++ |. c#2 .|
++ |. c##########8 .|
++ |. c#2 .|
++ |. 5##########9 .|
++ |. .|
++ |. .|
++ |.1##############1.|
++ |. .|
++ |. b##########9 .|
++ -&gt;|. 1## .|&lt;-
++ |. ## .|
++ |. ## .|
++ |. 89 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd2f0 '티'
++ Font: gulim (17)
++ Bitmap: 12 x 15
++ Advance: 18
++ Offset: 3 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |...6######c cc...|
++ |...##2 ##...|
++ |...##1 ##...|
++ |...##1 ##...|
++ |...##1 ##...|
++ |...#######a ##...|
++ |...##1 ##...|
++ |...##1 ##...|
++ |...##1 ##...|
++ |...##3 1258b##...|
++ |...4###########...|
++ -&gt;|... ##...|&lt;-
++ |... ##...|
++ |... ##...|
++ |... 33...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd305 '팅'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..6#######b aa...|
++ |..##2 ##...|
++ |..##1 ##...|
++ |..########8 ##...|
++ |..##1 ##...|
++ |..##1 36##...|
++ |..7############...|
++ |.. 11 ##...|
++ |.. cc...|
++ |.. 2a######91 ...|
++ |.. 5##71 18##4...|
++ -&gt;|.. c#3 2##...|&lt;-
++ |.. b#5 3##...|
++ |.. 2###5115c##3...|
++ |.. 5######6 ...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd30c '파'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.3########b cc .|
++ |. ## .|
++ |. 55 21 ## .|
++ |. cc 4c7 ## .|
++ |. cc 6c5 ## .|
++ |. b#1 8c3 ## .|
++ |. 9#3 ac2 ####7.|
++ |. 8#4 bc ## .|
++ |. 6#6 cc ## .|
++ |. 5#82##469## .|
++ |.6############ .|
++ -&gt;|. 8a1 ## .|&lt;-
++ |. ## .|
++ |. ## .|
++ |. 44 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd310 '판'
++ Font: gulim (17)
++ Bitmap: 17 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.2########a 98 |
++ |. ## |
++ |. 99 89 ## |
++ |. c# c#1 ## |
++ |. bc1 c# ####4|
++ |. bc1 ## ## |
++ |. ac2 cc 2## |
++ |.7############# |
++ |. 11 ## |
++ |. 55 ## |
++ |. ## cc |
++ -&gt;|. ## |&lt;-
++ |. ##1 |
++ |. 8##########b |
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd328 '패'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..4######a cc #c..|
++ |.. ## ##..|
++ |.. 44 55 ## ##..|
++ |.. 2ca cc ## ##..|
++ |.. 1ca cc ## ##..|
++ |.. cb cc #####..|
++ |.. cc cc ## ##..|
++ |.. cc cc ## ##..|
++ |.. cc1cb ## ##..|
++ |.. bc2c#47## ##..|
++ |..2########## ##..|
++ -&gt;|.. 1 ## ##..|&lt;-
++ |.. ## ##..|
++ |.. cc ##..|
++ |.. 44..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd38c '펌'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. b#######9 #c..|
++ |.. ##..|
++ |.. 55 8#4 ##..|
++ |.. b#1 9#5#####..|
++ |.. a#3 a#2 ##..|
++ |.. 8#4 c#1 ##..|
++ |.. 7#95##ca4 ##..|
++ |..3######71 ##..|
++ |.. ..|
++ |.. 7##########7..|
++ |.. ##1 1##..|
++ -&gt;|.. ##1 ##..|&lt;-
++ |.. ##1 1##..|
++ |.. 7##########9..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd398 '페'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. c#####a bb #c..|
++ |.. ## ##..|
++ |.. 2a7 89 ## ##..|
++ |.. 2b9 bb ## ##..|
++ |.. 1ba bb ## ##..|
++ |.. ba b##### ##..|
++ |.. bb bb ## ##..|
++ |.. bb ba ## ##..|
++ |.. bb1b9 ## ##..|
++ |.. bc4##61## ##..|
++ |..4######91## ##..|
++ -&gt;|.. ## ##..|&lt;-
++ |.. ## ##..|
++ |.. cc ##..|
++ |.. 33..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd3b8 '편'
++ Font: gulim (17)
++ Bitmap: 15 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 7#######a aa ..|
++ |. 11 11 ## ..|
++ |. 1ca bc6#### ..|
++ |. cb cc ## ..|
++ |. cc cc ## ..|
++ |. cc #c ## ..|
++ |. cc 1#c7#### ..|
++ |.2c########7 ## ..|
++ |. 35321 ## ..|
++ |. 44 ## ..|
++ |. ## cc ..|
++ -&gt;|. ## ..|&lt;-
++ |. ##1 ..|
++ |. 9##########4..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd3ec '포'
++ Font: gulim (17)
++ Bitmap: 14 x 13
++ Advance: 18
++ Offset: 2 x -1
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..1###########a ..|
++ |.. ..|
++ |.. 21 11 ..|
++ |.. 5#8 bb ..|
++ |.. 4#9 bb ..|
++ |.. 3#a bb ..|
++ |.. 3#b 1ba ..|
++ |.. 2#c 2b9 ..|
++ |.. c##########a ..|
++ |.. ## ..|
++ |.. ## ..|
++ -&gt;|.. ## ..|&lt;-
++ |..a############1..|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd45c '표'
++ Font: gulim (17)
++ Bitmap: 14 x 13
++ Advance: 18
++ Offset: 2 x -1
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..1###########a ..|
++ |.. ..|
++ |.. 3b8 ac1 ..|
++ |.. 2#a c# ..|
++ |.. 1#b cc ..|
++ |.. ## cb ..|
++ |..8###########b ..|
++ |.. ..|
++ |.. bb bb ..|
++ |.. ## ## ..|
++ |.. ## ## ..|
++ -&gt;|.. ## ## ..|&lt;-
++ |..a############9..|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd4e8 '퓨'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..4###########a ..|
++ |.. ..|
++ |.. 593 78 ..|
++ |.. 6#7 ## ..|
++ |.. 4#9 1#c ..|
++ |.. 3#b 3#b ..|
++ |..5###########a ..|
++ |.. ..|
++ |..b############9..|
++ |.. ## ## ..|
++ |.. ## ## ..|
++ -&gt;|.. ## ## ..|&lt;-
++ |.. ## ## ..|
++ |.. ## ## ..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd504 '프'
++ Font: gulim (17)
++ Bitmap: 14 x 13
++ Advance: 18
++ Offset: 2 x -1
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..4###########a ..|
++ |.. ..|
++ |.. 187 b#1 ..|
++ |.. 2#b c#1 ..|
++ |.. 1#c ## ..|
++ |.. ## ## ..|
++ |.. ##1 1#c ..|
++ |.. b#3 1#b ..|
++ |..6###########b ..|
++ |.. ..|
++ |.. ..|
++ -&gt;|.. ..|&lt;-
++ |..b############b..|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd50c '플'
++ Font: gulim (17)
++ Bitmap: 15 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. b###########c ..|
++ |. 231 352 ..|
++ |. 7#5 8c4 ..|
++ |. 5c7 9c2 ..|
++ |. 7###########a ..|
++ |. ..|
++ |. ..|
++ |.3#############6..|
++ |. ..|
++ |. c#########a ..|
++ |. ## ..|
++ -&gt;|. b#########a ..|&lt;-
++ |. ## ..|
++ |. a##########a ..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd53c '피'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..1#########1cc...|
++ |.. ##...|
++ |.. 65 66 ##...|
++ |.. 2ca cc ##...|
++ |.. 1cb cc ##...|
++ |.. cc cc ##...|
++ |.. cc cc ##...|
++ |.. cc cc ##...|
++ |.. cc 1cb ##...|
++ |.. c#35##7b##...|
++ |..5############...|
++ -&gt;|.. ##...|&lt;-
++ |.. ##...|
++ |.. ##...|
++ |.. 33...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd53d '픽'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..3########b cc..|
++ |.. ##..|
++ |.. 4b7 3b7 ##..|
++ |.. 3c8 5c7 ##..|
++ |.. 2ca 6c6 ##..|
++ |.. cb 7c4 2##..|
++ |..4c############..|
++ |..7#######82 ##..|
++ |.. 66..|
++ |.. ..|
++ |.. 9##########9..|
++ -&gt;|.. 1##..|&lt;-
++ |.. ##..|
++ |.. ##..|
++ |.. ##..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd544 '필'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..3########a cc..|
++ |.. 33 231 ##..|
++ |.. bc 7#5 ##..|
++ |.. ac2 9#4 ##..|
++ |.. 8c3 a#2 ##..|
++ |..39############..|
++ |..9#######a334##..|
++ |..13321 ##..|
++ |.. b##########7..|
++ |.. 1##..|
++ |.. 1##..|
++ -&gt;|.. b##########8..|&lt;-
++ |.. ## ..|
++ |.. a##########6..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd558 '하'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 9####a #c .|
++ |. ## .|
++ |. ## .|
++ |.b#########1## .|
++ |. ## .|
++ |. 3#####3 ## .|
++ |. 4##3 4##4 ####6.|
++ |. c#3 4#b ## .|
++ |. ## 1## ## .|
++ |. c#3 5#b ## .|
++ |. 4##218##3 ## .|
++ -&gt;|. 2c###c2 ## .|&lt;-
++ |. ## .|
++ |. ## .|
++ |. 33 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd55c '한'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. a####b aa .|
++ |. ## .|
++ |.a#########3## .|
++ |. ## .|
++ |. 3c###a2 ####4.|
++ |. 7##415##5 ## .|
++ |. ##1 3#c ## .|
++ |. ##2 2## ## .|
++ |. 6##515##6 ## .|
++ |. 3b###b3 ## .|
++ |. ## cc .|
++ -&gt;|. ## .|&lt;-
++ |. ##1 .|
++ |. 7##########b .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd560 '할'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. a####b ## .|
++ |. ## .|
++ |.a#########1## .|
++ |. ####4.|
++ |. 2#####b2 ## .|
++ |. c#3 4#c ## .|
++ |. c#5 4#c ## .|
++ |. 1b####b2 ## .|
++ |. 22 .|
++ |. b#########b .|
++ |. ## .|
++ -&gt;|. a#########b .|&lt;-
++ |. 1## .|
++ |. a##########8 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd568 '함'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. a####b c# .|
++ |. ## .|
++ |.b########c ## .|
++ |. ####5.|
++ |. 1a####91 ## .|
++ |. b#6 7#a ## .|
++ |. ## ## ## .|
++ |. 8#c22b#8 ## .|
++ |. 5####6 77 .|
++ |. 7##########8 .|
++ |. ##1 ## .|
++ -&gt;|. ## ## .|&lt;-
++ |. ##1 ## .|
++ |. 8##########8 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd569 '합'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. a####b c# .|
++ |. ## .|
++ |.b########c ## .|
++ |. ####5.|
++ |. 1a####91 ## .|
++ |. b#6 7#a ## .|
++ |. ## ## ## .|
++ |. 8#c22b#8 ## .|
++ |. 5####6 11 .|
++ |. ## c# .|
++ |. ############ .|
++ -&gt;|. ## ## .|&lt;-
++ |. ##1 ## .|
++ |. 8##########8 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd56d '항'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. a####b ## .|
++ |. ## .|
++ |.b########c1## .|
++ |. ####4.|
++ |. 1a####91 ## .|
++ |. b#6 7#a ## .|
++ |. ## ## ## .|
++ |. 8#c22b#8 ## .|
++ |. 5####6 ## .|
++ |. .|
++ |. 5########4 .|
++ -&gt;|. 9##3 4##9 .|&lt;-
++ |. ##2 1## .|
++ |. 6##83 38##8 .|
++ |. 28######a2 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd574 '해'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. a###a bb cc...|
++ |.. ## ##...|
++ |.. ## ##...|
++ |..b######a## ##...|
++ |.. ## ##...|
++ |.. 3####5 ## ##...|
++ |..3##11b#5#####...|
++ |..9#4 2#c## ##...|
++ |..b#2 #### ##...|
++ |..9#5 3#b## ##...|
++ |..2##43##4## ##...|
++ -&gt;|.. 3####4 ## ##...|&lt;-
++ |.. ## ##...|
++ |.. cc ##...|
++ |.. 33...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd588 '했'
++ Font: gulim (17)
++ Bitmap: 15 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. a###9 bb ## ..|
++ |. ## ## ..|
++ |.4#######3## ## ..|
++ |. 1 ## ## ..|
++ |. 1b####2 ##### ..|
++ |. a#5 4#b ## ## ..|
++ |. c# ## ## ## ..|
++ |. 8#929#9 ## ## ..|
++ |. 7###8 bb cc ..|
++ |. 462 56 ..|
++ |. b#7 c#5 ..|
++ -&gt;|. 4### 5##b ..|&lt;-
++ |. 3##9#c13##a#9 ..|
++ |.3##3 7####2 8#c..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd589 '행'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 3####5 aa cc..|
++ |.. ##1##..|
++ |..5#######3##1##..|
++ |.. ##1##..|
++ |.. 8###8 #####..|
++ |.. 9#6 8#9 ##1##..|
++ |.. ## ## ##1##..|
++ |.. a#6 7#a ##1##..|
++ |.. 9###9 cc1#c..|
++ |.. 11..|
++ |.. 5########4 ..|
++ -&gt;|.. 9##3 3##9..|&lt;-
++ |.. ##2 1##..|
++ |.. 6##83 38##8..|
++ |.. 28######a3 ..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd5a5 '향'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. a####b cc .|
++ |. ## .|
++ |.b########c ## .|
++ |. ####5.|
++ |. 1a####91 ## .|
++ |. b#6 7#a ## .|
++ |. ## ## ####5.|
++ |. 8#c22b#8 ## .|
++ |. 5####6 ## .|
++ |. 55 .|
++ |. 5########4 .|
++ -&gt;|. 9##3 3c#9 .|&lt;-
++ |. ##2 ##1 .|
++ |. 6##83 27##8 .|
++ |. 28######a3 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd604 '현'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 7####a bb..|
++ |.. ##..|
++ |..b########b ##..|
++ |.. ##..|
++ |.. 3c###a24####..|
++ |.. 7##415##5 ##..|
++ |.. ##1 2#c ##..|
++ |.. ##2 2## ##..|
++ |.. 6##515##b####..|
++ |.. 2b###b3 ##..|
++ |.. cc #c..|
++ -&gt;|.. ## ..|&lt;-
++ |.. ##1 ..|
++ |.. 8##########b..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd615 '형'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 4####6 ##..|
++ |.. ##..|
++ |..b########b ##..|
++ |.. 4####..|
++ |.. 1a####8 ##..|
++ |.. a#7 8#a ##..|
++ |.. ## ## ##..|
++ |.. 9#9 9#94####..|
++ |.. 7####8 ##..|
++ |.. 54..|
++ |.. 6#######c3 ..|
++ -&gt;|.. a#c2 4##7..|&lt;-
++ |.. ##1 2##..|
++ |.. 7##82 38##6..|
++ |.. 29######92 ..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd638 '호'
++ Font: gulim (17)
++ Bitmap: 14 x 13
++ Advance: 18
++ Offset: 2 x -1
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 4######2 ..|
++ |.. ..|
++ |.. ..|
++ |..b############4..|
++ |.. ..|
++ |.. 4########4 ..|
++ |.. 8#c3 3##8 ..|
++ |.. ## ## ..|
++ |.. 9#b2 3c#9 ..|
++ |.. 5########6 ..|
++ |.. ## ..|
++ -&gt;|.. ## ..|&lt;-
++ |..b############b..|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd63c '혼'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. a#####4 ..|
++ |.. ..|
++ |..5###########a ..|
++ |.. ..|
++ |.. 1a########81 ..|
++ |.. c#6 6#b ..|
++ |.. a#92 29#b ..|
++ |.. 6########7 ..|
++ |.. ## ..|
++ |..b############b..|
++ |.. 77 ..|
++ -&gt;|.. ##1 ..|&lt;-
++ |.. c#2 ..|
++ |.. 7##########c ..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd648 '홈'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. a#####4 ..|
++ |.. ..|
++ |..5###########a ..|
++ |.. 19########7 ..|
++ |.. c#71 18#b ..|
++ |.. c#61 17#c ..|
++ |.. 19########91 ..|
++ |.. ## ..|
++ |..b############b..|
++ |.. ..|
++ |.. 8##########9 ..|
++ -&gt;|.. ##1 1## ..|&lt;-
++ |.. ##1 ## ..|
++ |.. 8##########8 ..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd654 '화'
++ Font: gulim (17)
++ Bitmap: 17 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. a####8 #c |
++ |. ## |
++ |. ## |
++ |.2#########a ## |
++ |. ## |
++ |. 8#####a1 ## |
++ |. 9#7 7#b ####4|
++ |. c# ## ## |
++ |. 8#c3 2b#9 ## |
++ |. 5#####7 ## |
++ |. ## 25## |
++ -&gt;|.8############# |&lt;-
++ |. ## |
++ |. ## |
++ |. 33 |
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd655 '확'
++ Font: gulim (17)
++ Bitmap: 17 x 15
++ Advance: 18
++ Offset: 0 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ | 7####9 #c .|
++ | 1## .|
++ | a########c2## .|
++ | 1## .|
++ | 3#######31####3.|
++ | ##3 5##1## .|
++ | 6#######41## .|
++ | ##12469## .|
++ |3############# .|
++ | 66 .|
++ | 4##########7 .|
++ -&gt;| ## .|&lt;-
++ | ## .|
++ | ## .|
++ | 66 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd658 '환'
++ Font: gulim (17)
++ Bitmap: 17 x 14
++ Advance: 18
++ Offset: 0 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ | 7####9 c# .|
++ | ## .|
++ | a########c1## .|
++ | ## .|
++ | 2b#####b2 ## .|
++ | c#5 5#c ####3.|
++ | a#81 2c#8 ## .|
++ | 5c##c82 ## .|
++ | ######### .|
++ |3########8 ## .|
++ | 77 88 .|
++ -&gt;| ## .|&lt;-
++ | ##1 .|
++ | 8##########b .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd65c '활'
++ Font: gulim (17)
++ Bitmap: 17 x 14
++ Advance: 18
++ Offset: 0 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ | 7####9 cc .|
++ | ## .|
++ | a########c1## .|
++ | 18#####81 ## .|
++ | c#61 2b#c ####4.|
++ | a###c###8 ## .|
++ | 27##841 ## .|
++ |3############# .|
++ | 121 88 .|
++ | c#########8 .|
++ | ## .|
++ -&gt;| a#########b .|&lt;-
++ | ## .|
++ | a##########6 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd669 '황'
++ Font: gulim (17)
++ Bitmap: 17 x 15
++ Advance: 18
++ Offset: 0 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ | 7####9 #c .|
++ | ## .|
++ | a########c2## .|
++ | ## .|
++ | 3#######3 ####3.|
++ | ##3 5## ## .|
++ | 6#######4 ## .|
++ | ##12469## .|
++ |3############# .|
++ | 88 .|
++ | 5########4 .|
++ -&gt;| 9#c3 4##9 .|&lt;-
++ | ##2 1## .|
++ | 6##72 27##8 .|
++ | 29######a3 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd68c '회'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 9####a cc..|
++ |.. ##..|
++ |.. 3#########6##..|
++ |.. ##..|
++ |.. 6#####6 ##..|
++ |.. 9#91 2a#9 ##..|
++ |.. ## ## ##..|
++ |.. b#7 6#9 ##..|
++ |.. 2c#####8 ##..|
++ |.. ## ##..|
++ |.. ## 137##..|
++ -&gt;|..3#############..|&lt;-
++ |.. ##..|
++ |.. ##..|
++ |.. 33..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd6a8 '효'
++ Font: gulim (17)
++ Bitmap: 14 x 13
++ Advance: 18
++ Offset: 2 x -1
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. a#####a ..|
++ |.. ..|
++ |.. ..|
++ |..1############2..|
++ |.. 3b######a2 ..|
++ |.. 8##51 15##8 ..|
++ |.. ## ## ..|
++ |.. 8#c3 2c#8 ..|
++ |.. 5########5 ..|
++ |.. 22 22 ..|
++ |.. ## ## ..|
++ -&gt;|.. ## ## ..|&lt;-
++ |..b############b..|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd6c4 '후'
++ Font: gulim (17)
++ Bitmap: 15 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. a#####b .|
++ |.. .|
++ |..9############1 .|
++ |.. .|
++ |.. 2a#####92 .|
++ |.. 7##72126##7 .|
++ |.. ##3 ##1 .|
++ |.. 7##82 15##9 .|
++ |.. 2a#####b3 .|
++ |.. .|
++ |..b#############1.|
++ -&gt;|.. ## .|&lt;-
++ |.. ## .|
++ |.. ## .|
++ |.. 99 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd734 '휴'
++ Font: gulim (17)
++ Bitmap: 15 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 6#####a ..|
++ |. ..|
++ |. 7###########c ..|
++ |. ..|
++ |. 6#######6 ..|
++ |. c#a41 14b#b ..|
++ |. ##6 6## ..|
++ |. 2a#######a2 ..|
++ |. ..|
++ |.9#############b..|
++ |. ## ## ..|
++ -&gt;|. ## ## ..|&lt;-
++ |. ## ## ..|
++ |. ## ## ..|
++ |. 22 44 ..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd788 '히'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 9####a #c..|
++ |.. ##..|
++ |.. ##..|
++ |..1#########b ##..|
++ |.. ##..|
++ |.. 1a####a2 ##..|
++ |.. 2##6 6##3 ##..|
++ |.. b#4 5#b ##..|
++ |.. ##1 2## ##..|
++ |.. b#5 6#b ##..|
++ |.. 3##6 18##2 ##..|
++ -&gt;|.. 19####91 ##..|&lt;-
++ |.. ##..|
++ |.. ##..|
++ |.. 55..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xfbfd 'ﯽ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 14 x 6
++ Advance: 14
++ Offset: 1 x -2
++ ______________
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |. 4c##6 |
++ |.453 ##c##4 |
++ |.##5 b#93##3|
++ -&gt;|.##8 27##25#4|&lt;-
++ |.9########9 |
++ |. 59aaa862 |
++ |...............|
++ |...............|
++ |...............|
++ --------------
++
++Char 0xfe8e 'ﺎ'
++ Font: KacstOne (14)
++ Bitmap: 4 x 8
++ Advance: 4
++ Offset: 0 x 2
++ ____
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ | a |
++ |1# |
++ | # |
++ | #1 |
++ | c1 |
++ | b2 |
++ | aa2|
++ | 5#4|
++ |....|
++ -&gt;|....|&lt;-
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ ----
++
++Char 0xfe91 'ﺑ'
++ Font: KacstOne (14)
++ Bitmap: 6 x 9
++ Advance: 5
++ Offset: -1 x -2
++ _____
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ | 31|
++ | b7|
++ | 6c|
++ |18889#|
++ |2#####|
++ | |
++ -&gt;| |&lt;-
++ | 35 |
++ | 5c |
++ |......|
++ |......|
++ |......|
++ -----
++
++Char 0xfeae 'ﺮ'
++ Font: KacstOne (14)
++ Bitmap: 6 x 7
++ Advance: 6
++ Offset: 0 x -2
++ ______
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ | c3|
++ | b9|
++ | 2a|
++ | 29|
++ -&gt;|1 1b5|&lt;-
++ |6a9#b |
++ | 6#b2 |
++ |......|
++ |......|
++ |......|
++ ------
++
++Char 0xfeb4 'ﺴ'
++ Font: KacstOne (14)
++ Bitmap: 10 x 4
++ Advance: 9
++ Offset: -1 x 2
++ _________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ | 6 41 a|
++ | b a #|
++ |59c989#97#|
++ |7bb##b7b#c|
++ |..........|
++ -&gt;|..........|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ---------
++
++Char 0xfecb 'ﻋ'
++ Font: KacstOne (14)
++ Bitmap: 8 x 6
++ Advance: 7
++ Offset: -1 x 2
++ _______
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ | 1 |
++ | 4##5 |
++ | #2 3 |
++ | #9 |
++ |488b#b77|
++ |7######6|
++ |........|
++ -&gt;|........|&lt;-
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ -------
++
++Char 0xfed3 'ﻓ'
++ Font: KacstOne (14)
++ Bitmap: 5 x 9
++ Advance: 5
++ Offset: 0 x 2
++ _____
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ | 1 |
++ | b7 |
++ | 1 |
++ | ba |
++ | 5185|
++ | c729|
++ | 4c#a|
++ |888ca|
++ |####6|
++ |.....|
++ -&gt;|.....|&lt;-
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ -----
++
++Char 0xfef2 'ﻲ'
++ Font: KacstOne (14)
++ Bitmap: 9 x 9
++ Advance: 9
++ Offset: 1 x -5
++ _________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 5781|
++ |.11 7###1|
++ |.6 c93 |
++ -&gt;|.a1 39#4 |&lt;-
++ |.9#8779c1 |
++ |.1a##a61 |
++ |. 2 2 |
++ |. 1#8c |
++ |. 1 1 |
++ ---------
++
++Char 0xff08 '('
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 5 x 16
++ Advance: 17
++ Offset: 9 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |......... ##...|
++ |......... ## ...|
++ |......... ## ...|
++ |......... ## ...|
++ |......... ## ...|
++ |......... ## ...|
++ |.........## ...|
++ |.........## ...|
++ |.........## ...|
++ |.........## ...|
++ |......... ## ...|
++ |......... ## ...|
++ |......... ## ...|
++ -&gt;|......... ## ...|&lt;-
++ |......... ## ...|
++ |......... ##...|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0xff09 ')'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 5 x 16
++ Advance: 17
++ Offset: 3 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |...## .........|
++ |... ## .........|
++ |... ## .........|
++ |... ## .........|
++ |... ## .........|
++ |... ## .........|
++ |... ##.........|
++ |... ##.........|
++ |... ##.........|
++ |... ##.........|
++ |... ## .........|
++ |... ## .........|
++ |... ## .........|
++ -&gt;|... ## .........|&lt;-
++ |... ## .........|
++ |...## .........|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0xff0c ','
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 3 x 4
++ Advance: 17
++ Offset: 3 x 0
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |...###...........|
++ |...###...........|
++ |... ##...........|
++ -&gt;|...## ...........|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0xff0d '-'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 12 x 1
++ Advance: 17
++ Offset: 2 x 6
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |..############...|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0xff1a ':'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 3 x 8
++ Advance: 17
++ Offset: 7 x 2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.......###.......|
++ |.......###.......|
++ |....... .......|
++ |....... .......|
++ |....... .......|
++ |....... .......|
++ |.......###.......|
++ |.......###.......|
++ |.................|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0xff1f '?'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 9 x 14
++ Advance: 17
++ Offset: 4 x 0
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.... ##### ....|
++ |.... ## ## ....|
++ |....## ##....|
++ |....## ##....|
++ |....## ##....|
++ |.... ## ....|
++ |.... ## ....|
++ |.... ## ....|
++ |.... ## ....|
++ |.... ## ....|
++ |.... ....|
++ |.... ....|
++ |.... ## ....|
++ -&gt;|.... ## ....|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
+
+<a id="themetrunkmageiagfxbootthemetrunkfontsMakefile">Added: theme/trunk/mageia-gfxboot-theme/trunk/fonts/Makefile</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/fonts/Makefile (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/fonts/Makefile 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,39 @@
++GFXBOOT_FONT = gfxboot-font
++KEYMAPCHARS = gfxboot-keymapchars
++
++all: .ready
++
++fonts: 16x16.fnt
++
++.ready:
++ @touch .ready
++
++16x16.fnt: ../po/en.tr ../src/main.log
++ cat ../po/*.tr ../help-*/*/*.html &gt;tmp.txt
++ $(GFXBOOT_FONT) -v -l 18 \
++ -a 0x2022-0x2023 \
++ -c ISO-8859-15 -c ISO-8859-2 -c koi8-r \
++ `$(KEYMAPCHARS) ../keymaps/keymap.*.inc` \
++ -t tmp.txt \
++ -t ../src/main.log \
++ -t ../data-install/langs \
++ -f NachlieliCLM-Bold:size=14:c=0x590-0x5ff \
++ -f KacstOne:size=14:c=0x600-0x6ff,0xfe70-0xfefc:dy=2 \
++ -f MuktiNarrow:size=18:c=0x0981-0x09fa:bold=1 \
++ -f lohit_hi:size=18:c=0x0901-0x0970:bold=1 \
++ -f lohit_pa:size=19:c=0x0a01-0x0a74:bold=1:autohint=1 \
++ -f lohit_gu:size=18:c=0x0a81-0x0af1:bold=1 \
++ -f TSCu_Paranar:size=18:c=0x0b82-0x0bfa:dy=2:bold=1 \
++ -f lklug:size=17:c=0x0d82-0x0df4:bold=1:dy=1 \
++ -f Loma:size=17:c=0x0e01-0x0e7f:bold=0:dy=-2 \
++ -f Loma:size=17:c=0x0e81-0x0eff:bold=0:dy=-2 \
++ -f KhmerOS_sys:size=16:c=0x1780-0x17f9:dy=-2 \
++ -f DejaVuSans-Bold:size=14:autohint=0 \
++ -f wenquanyi_12pt.pcf:size=16:bold=1 \
++ -f gulim:size=17:bold=1:nobitmap=1:autohint=1 \
++ 16x16.fnt &gt;16x16.fnt.log
++ rm -f tmp.txt
++
++clean:
++ rm -f .ready *~
++
+
+
+Property changes on: theme/trunk/mageia-gfxboot-theme/trunk/fonts/Makefile
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootMakefile">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/Makefile</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/Makefile (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/Makefile 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,20 @@
++BINDIR = $(shell [ -x ../../../gfxboot ] &amp;&amp; echo ../../../ )
++GFXBOOT = $(BINDIR)gfxboot
++PRODUCT = $(shell perl -ne 'print if s/^product=//' ../config)
++HELPFILES = $(addsuffix .hlp, $(shell for i in * ; do [ -d $$i ] &amp;&amp; echo $$i ; done))
++
++HELPSRC = opt*
++HELPNAVI = navi
++ENTITIES = product='$(PRODUCT)' fkey_help=F1 fkey_lang=F2 fkey_profile=F3
++
++%.hlp: %
++ $(GFXBOOT) --help-create $@ --define $(ENTITIES) --navi $&lt;/$(HELPNAVI).html $&lt;/$(HELPSRC).html || true
++
++all: .ready
++
++.ready: $(HELPFILES)
++ @touch .ready
++
++clean:
++ rm -f .ready *.hlp *~
++
+
+
+Property changes on: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/Makefile
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootafnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Gaan terug na &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootafopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Selflaai-opsies&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splat&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootafopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Gebruik van die Hulpstelsel&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Op-pyl&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Af-pyl&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Links-pyl&lt;/em&gt;, &lt;em&gt;Terugspasie&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Regs-pyl&lt;/em&gt;, &lt;em&gt;Voer in&lt;/em&gt;, &lt;em&gt;Spasie&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Bladsy op&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Bladsy af&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Tuis&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Eindig&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Ontsnap&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootafoptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Taal- en sleutelborduitlegkeuse&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootafopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Kernopsies: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=geenacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=ouselflaai&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=af&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=dwang&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootafopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Kernopsies: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=af&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootafopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Kernopsies: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=geendma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootafopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Kernopsies: splat&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splat=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splat=woordryk&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splat=stil&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootafoptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,8 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Kies profiel&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; to select a profile. Your system will be started using the
++configuration saved in this profile.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootarnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;الرجوع إلى &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootaropthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;خيارات التشغيل&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;شاشة بداية التشغيل&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootaropthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;استخدام نظام التعليمات&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;سهم لأعلى&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;سهم لأسفل&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;سهم لليسار&lt;/em&gt;, &lt;em&gt;مسافة للخلف&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;سهم لليمين&lt;/em&gt;, &lt;em&gt;مفتاح الإدخال&lt;/em&gt;, &lt;em&gt;مسافة&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;المنزل&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;End&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;خروج&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootaroptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;تحديد اللغة وتخطيط لوحة المفاتيح&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootaropto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;خيارات Kernel: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootaropto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;خيارات Kernel: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootaropto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;خيارات Kernel: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootaropto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;خيارات Kernel: شاشة بداية التشغيل&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootaroptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,8 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;اختيار ملف تعريف&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; to select a profile. Your system will be started using the
++configuration saved in this profile.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootbgnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,3 @@
++&lt;p&gt;
++Return to &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootbgopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Параметри на зареждането&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootbgopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Използване на помощната система&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Стрелка нагоре&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Стрелка надолу&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Стрелка наляво&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Стрелка надясно&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Интервал&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Страница нагоре&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Страница надолу&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;End&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootbgoptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Избор на език и клавиатурна подредба&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootbgopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Параметри към ядрото: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootbgopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Параметри към ядрото: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootbgopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Параметри към ядрото: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootbgopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Параметри към ядрото: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootbgoptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,8 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Избор на профил&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; to select a profile. Your system will be started using the
++configuration saved in this profile.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootcanavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Torna a &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootcaopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Opcions d'arrencada&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootcaopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Ús del sistema d'ajuda&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Fletxa amunt&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Fletxa avall&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Fletxa esquerra&lt;/em&gt;, &lt;em&gt;Retrocés&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Fletxa dreta&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Espai&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Re Pàg&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Av Pàg&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Inici&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Fi&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootcaoptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Selecció d'idioma i format de teclat&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootcaopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Opcions del nucli: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;uacpi=off&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootcaopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Opcions del nucli: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootcaopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Opcions del nucli: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootcaopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Opcions del nucli: pantalla de presentació&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootcaoptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,8 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Trieu el perfil&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; to select a profile. Your system will be started using the
++configuration saved in this profile.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootcsnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Návrat k &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootcsopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Parametry startu&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- ovlivňuje chování úvodní obrazovky&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- zapíná správu napájení&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- pokročilé nastavení a rozhraní napájení&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- ovládá subsystém IDE&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootcsopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Používání nápovědy&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Nápověda zavaděče je závislá na obsahu. Poskytuje informace o zvolené nabídce nebo pokud editujete parametry jádra, snaží se poskytnout informace o volbě podle polohy kurzoru.&lt;/p&gt;
++
++&lt;p&gt;Navigační klíče&lt;ul&gt;&lt;li&gt;&lt;em&gt;Šipka nahoru&lt;/em&gt;: zvýraznit předchozí odkaz&lt;/li&gt;&lt;li&gt;&lt;em&gt;Šipka dolů&lt;/em&gt;:zvýraznit následující odkaz&lt;/li&gt;&lt;li&gt;&lt;em&gt;Šipka vlevo&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: návrat k předchozímu tématu&lt;/li&gt;&lt;li&gt;&lt;em&gt;Šipka vpravo&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Mezerník&lt;/em&gt;:následovat odkaz&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: o stránku nahoru&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: o stránku dolů&lt;/li&gt;&lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: přejít na začátek stránky&lt;/li&gt;&lt;li&gt;&lt;em&gt;End&lt;/em&gt;: přejít na konec stránky&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: opustit nápovědu&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootcsoptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Výběr jazyka a rozložení klávesnice&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Stiskněte &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; pro změnu jazyka a rozložení klávesnice, které používá zavaděč.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootcsopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Parametry jádra: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI (Advanced Configuration and Power Interface) je standard definující nastavení napájení a správu zařízení mezi operačním systémem a BIOSem. Ve výchozím nastavení je &lt;em&gt;acpi&lt;/em&gt; zapnuto v případě, že jde o BIOS vydaný po roce 2000. Je zde několik parametrů kontrolujících chování ACPI: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- nepoužívat ACPI pro předávání PCI přerušení&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- aktivní zůstane pouze ta část ACPI, která je potřebná pro start systému&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- zcela vypnout ACPI&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- zapnout ACPI i pro BIOS vydaný před rokem 2000&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Zvláště na nových počítačích nahrazuje starší systém &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; systém.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootcsopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Parametry jádra: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM je jednou ze dvou dnešních strategií správy napájení. Používá se hlavně na noteboocích pro uspávání disků a podobně, může však zodpovídat i za vypínání počítače. APM je závislé na správně fungujícím BIOSu. Je-li BIOS nefunkční, mohou být funkce APM omezeny nebo může APM znemožnit funkci počítače. Lze proto vypnout parametrem &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- zcela vypnout APM&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Některé nové počítače mohou s výhodou použít novější &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootcsopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Parametry jádra: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;IDE je na rozdíl od SCSI obvykle používáno na pracovních stanicích. V případě výskytu problémů s IDE systémem můžete použít jaderný parametr: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- vypnout DMA pro IDE jednotky&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootcsopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Parametry jádra: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Splash screen je obrázek zobrazený během startu systému. &lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- Splash obrazovka je vypnuta. To může být vhodné pro staré monitory nebo při chybě.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Aktivuje splash obrazovku, zprávy jádra a spouštění jsou stále zobrazeny.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Aktivuje splash obrazovku, ale žádné zprávy nejsou zobrazeny. Místo toho je zobrazen ukazatel průběhu.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootcsoptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Vybrat profil&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Stiskněte &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; pro výběr profilu. Váš systém bude spuštěn s konfigurací uloženou v tomto profilu.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootdanavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Vend tilbage til &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootdaopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Boot-muligheder&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;opstartsbillede&lt;/a&gt; -- påvirk opstartsbilledets opførsel&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- slå strømstyring til eller fra&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- avanceret konfiguration og strømgrænseflade (acpi)&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- kontrollerer IDE-subsystemet&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootdaopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Brug af hjælpesystemet&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Bootloaderens onlinehjælp tilpasser sig emnet. Den viser information om det valgte menupunkt eller, hvis du er ved at redigere bootparametrene, så prøver den at finde information om parameteren ved markøren.&lt;/p&gt;
++
++&lt;p&gt;Navigationstaster &lt;ul&gt;&lt;li&gt;&lt;em&gt;Pil op&lt;/em&gt;: Fremhæv forrige link&lt;/li&gt;&lt;li&gt;&lt;em&gt;Pil ned&lt;/em&gt;: Fremhæv næste link&lt;/li&gt;&lt;li&gt;&lt;em&gt;Pil til venstre&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: Vend tilbage til det forrige emne&lt;/li&gt;&lt;li&gt;&lt;em&gt;Pil til højre&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Mellemrum&lt;/em&gt;: Følg link&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: Rul en side op&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: Rul en side nedad&lt;/li&gt;&lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: Gå til sidens begyndelse&lt;/li&gt;&lt;li&gt;&lt;em&gt;End&lt;/em&gt;: gå til sidens slutning&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: Forlad hjælpesystemet&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootdaoptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Valg af sprog og tastaturlayout&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Tryk &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; for at ændre det sprog og tastaturlayout som bootloaderen bruger.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootdaopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Kerneparametre: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI (Advanced Configuration and Power Interface) er en standard, der definerer hvordan strømstyring og opsætningen af systemet foretages mellem operativsystemet og BIOS. Som standard vil &lt;em&gt;acpi&lt;/em&gt; aktiveres, hvis en BIOS nyere end år 2000 bliver fundet. Der er adskillige ofte brugte parametre, der bruges til, at styre hvordan ACPI opfører sig: 
 &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- anvend ikke ACPI til at route PCI-interrupts&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- kun de dele af ACPI som er relevante for at boote forbliver aktiveret&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- slå ACPI fuldstændigt fra&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- slå ACPI til selv hvis din BIOS er fra før år 2000&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Især på nyere computere erstatter den det gamle &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;-system.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootdaopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Kerneparametre: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM er en af de to strømstyringsstrategier, der bruges på moderne computere. Den bruges hovedsageligt på bærbare til funktioner såsom suspendering til harddisk, men den kan også være ansvarlig for at slukke computeren, efter du har bedt den om at lukke ned. APM er afhængig af en korrekt fungerende BIOS. Hvis BIOS er defekt på dette område, vil APM kun have begrænset effekt, eller måske endda forhindre din maskine i at fungere, som den skal. Det kan derfor slås fra med parametret 
&lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- slå APM fuldstændigt fra&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Visse meget nye computere kan have mere gavn af det nyere &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootdaopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Kerneparametre: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;IDE bruges, i modsætning til SCSI, ofte til skrivebordsarbejdsstationer. For at omgå nogle hardwareproblemer, der kan optræde med IDE-systemer, kan du bruge kerneparametren: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- slå DMA fra for IDE-drev&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootdaopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Kerneparametre: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Opstartsbilledet, er billedet du ser, mens systemet starter op.&lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- Opstartsbilledet er slået fra. Dette kan være nyttigt på meget gamle skærme eller hvis der opstår en fejl.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Aktiverer opstartsbillede. Kerne- og boot-beskeder vises stadig.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Aktiverer opstartsbilledet, men uden beskeder. I stedet vises en fremgangslinje.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootdaoptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Vælg profil&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Tryk &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; for at vælge profil. Dit system vil blive startet med den opsætning, der er gemt i denne profil.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootdenavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Zurück zu &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootdeopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Boot-Optionen&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- das Verhalten des Splash-Bildschirms beeinflussen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- Energieverwaltung umschalten&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- Erweiterte Konfigurations- und Energieschnittstelle&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- das IDE-Subsystem steuern&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootdeopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Hilfesystem verwenden&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Die Online-Hilfe des Boot-Laders ist kontextspezifisch. Sie gibt Informationen über das ausgewählte Menüelement oder sie versucht, bei Bearbeitung der Boot-Optionen, Informationen über die Option zu suchen, auf der der Mauszeiger positioniert ist.&lt;/p&gt;
++
++&lt;p&gt;Navigationstasten &lt;ul&gt;&lt;li&gt;&lt;em&gt;Aufwärtspfeil&lt;/em&gt;: vorherigen Link hervorheben&lt;/li&gt;&lt;li&gt;&lt;em&gt;Abwärtspfeil&lt;/em&gt;: nächsten Link hervorheben&lt;/li&gt;&lt;li&gt;&lt;em&gt;Linkspfeil&lt;/em&gt;, &lt;em&gt;Rücktaste&lt;/em&gt;: zum vorherigen Thema zurückkehren&lt;/li&gt;&lt;li&gt;&lt;em&gt;Rechtspfeil&lt;/em&gt;, &lt;em&gt;Eingabe&lt;/em&gt;, &lt;em&gt;Leerzeichen&lt;/em&gt;: Link folgen&lt;/li&gt;&lt;li&gt;&lt;em&gt;Bild auf&lt;/em&gt;: eine Seite nach oben blättern&lt;/li&gt;&lt;li&gt;&lt;em&gt;Bild ab&lt;/em&gt;: eine Seite nach unten blättern&lt;/li&gt;&lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: zur Startseite gehen&lt;/li&gt;&lt;li&gt;&lt;em&gt;Ende&lt;/em&gt;: zur Endseite gehen&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: Hilfe verlassen&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootdeoptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Auswahl der Sprache und Tastaturbelegung&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Drücken Sie &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt;, um die Sprache und Tastaturbelegung, die der Boot-Lader verwendet zu wechseln.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootdeopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Kernel-Optionen: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI (Advanced Configuration and Power Interface) ist ein Standard, der die Energie- und Konfigurationsverwaltungsschnittstellen zwischen einem Betriebssystem und dem BIOS festlegt. Standardmäßig ist &lt;em&gt;acpi&lt;/em&gt; aktiviert, wenn ein BIOS erkannt wird, welches nach 2000 datiert ist. Es gibt mehrere gebräuchliche Parameter zur Steuerung des ACPI: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- benutzen Sie ACPI nicht, um PCI-Interrupts zu routen&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- nur die für das Hochfahren relevanten Teile von ACPI bleiben aktiviert&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- ACPI komplett abschalten&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- ACPI anschalten, selbst wenn Ihr BIOS vor 2000 datiert ist&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Besonders auf neuen Computern wird es das alte &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;-System ersetzen.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootdeopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Kernel-Optionen: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM ist eine der beiden Energieverwaltungsstrategien, die auf den gegenwärtigen Computern verwendet wird. Es wird hauptsächlich auf Laptops für Funktionen wie Suspend-to-Disk verwendet, kann aber auch für das Abschalten des Computers nach dem Herunterfahren verantwortlich sein. APM ist von einem korrekt funktionierenden BIOS abhängig. Bei einem fehlerhaften BIOS funktioniert das APM evtl. nur eingeschränkt, möglicherweise funktioniert der Computer überhaupt nicht mehr. Daher kann es mit dem Parameter &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- APM komplett abschalten&lt;/li&gt;&lt;/ul&gt; deaktiviert werden.&lt;/p&gt;
++
++&lt;p&gt;Einige sehr neue Computer können vom neueren &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt; profitieren.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootdeopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Kernel-Optionen: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;IDE wird, im Gegensatz zu SCSI, auf den meisten Desktop-Arbeitsstationen verwendet. Zur Umgehung einiger Hardwareprobleme, die mit IDE-Systemen auftreten, verwenden Sie den Kernel-Parameter: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- DMA für IDE-Laufwerke abschalten&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootdeopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Kernel-Optionen: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Der Splash-Bildschirm ist das während des Systemstarts angezeigte Bild. &lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- Der Splash-Bildschirm ist abgeschaltet. Dies kann bei bei sehr alten Monitoren nützlich sein oder wenn einige Fehler auftreten.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Splash wird aktiviert; Kernel- und Boot-Nachrichten werden nach wie vor angezeigt.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Splash wird aktiviert, aber keine Nachrichten. Anstelle dessen wird ein Fortschrittsbalken gezeichnet.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootdeoptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Profil auswählen&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Drücken Sie &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt;, um ein Profil auszuwählen. Ihr System wird mit der in diesem Profil gespeicherten Konfiguration gestartet.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootelnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Επιστροφή στο &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootelopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Ρυθμίσεις Εκκίνησης&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;οθόνη εκκίνησης&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootelopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Χρησιμοποιώντας το Σύστημα Βοήθειας&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Πάνω Βέλος&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Κάτω Βέλος&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Αριστερό Βέλος&lt;/em&gt;, &lt;em&gt;Πίσω&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Δεξιό Βέλος&lt;/em&gt;, &lt;em&gt;Επιστροφή&lt;/em&gt;, &lt;em&gt;Κενό&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Πάνω Σελίδα&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Κάτω Σελίδα&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Αρχή&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Τέλος&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Αποχώρηση&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbooteloptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Επιλογή Γλώσσας και Εμφάνισης Πληκτρολογίου&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootelopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Επιλογές Πυρήνα: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootelopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Επιλογές Πυρήνα: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootelopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Επιλογές Πυρήνα: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootelopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Επιλογές Πυρήνα: οθόνη εκκίνησης&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbooteloptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,8 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Επιλέξτε Προφίλ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; to select a profile. Your system will be started using the
++configuration saved in this profile.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootennavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,3 @@
++&lt;p&gt;
++Return to &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootenopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Boot Options&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootenopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Using the Help System&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Up Arrow&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Down Arrow&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Left Arrow&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Right Arrow&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Space&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;End&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootenoptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Language and Keyboard Layout Selection&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootenopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Kernel Options: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootenopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Kernel Options: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootenopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Kernel Options: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootenopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Kernel Options: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootenoptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,8 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Choose Profile&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; to select a profile. Your system will be started using the
++configuration saved in this profile.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootesnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Volver a &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootesopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Opciones de arranque&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;pantalla inicial&lt;/a&gt; -- influye en el comportamiento de la pantalla inicial&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- alterna la gestión de la energía&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- interfaz avanzada de configuración y energía (ACPI)&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- controla el subsistema IDE&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootesopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Uso del sistema de ayuda&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;La ayuda en línea del cargador de arranque es contextual. Proporciona información sobre el elemento de menú seleccionado o, si se están modificando las opciones de arranque, intenta buscar información sobre la opción en la que está situado el cursor.&lt;/p&gt;
++
++&lt;p&gt;Teclas de navegación &lt;ul&gt;&lt;li&gt;&lt;em&gt;Flecha arriba&lt;/em&gt;: resalta el enlace anterior&lt;/li&gt;&lt;li&gt;&lt;em&gt;Flecha abajo&lt;/em&gt;: resalta el enlace siguiente&lt;/li&gt;&lt;li&gt;&lt;em&gt;Flecha a la izquierda&lt;/em&gt;, &lt;em&gt;Retroceso&lt;/em&gt;: vuelve al tema anterior&lt;/li&gt;&lt;li&gt;&lt;em&gt;Flecha a la derecha&lt;/em&gt;, &lt;em&gt;Intro&lt;/em&gt;, &lt;em&gt;Espacio&lt;/em&gt;: sigue el enlace&lt;/li&gt;&lt;li&gt;&lt;em&gt;Re Pág&lt;/em&gt;: sube una página&lt;/li&gt;&lt;li&gt;&lt;em&gt;Av Pág&lt;/em&gt;: baja una página&lt;/li&gt;&lt;li&gt;&lt;em&gt;Inicio&lt;/em&gt;: se dirige al inicio de la página&lt;/li&gt;&lt;li&gt;&lt;em&gt;Fin&lt;/em&gt;: se dirige al final de la página&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: sale de la ayuda&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootesoptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Selección de idioma y distribución de teclado&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Pulse &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; para cambiar el idioma y la distribución del teclado que utilizará el cargador de arranque.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootesopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Opciones del kernel: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI (interfaz avanzada de configuración y energía) es un estándar que define las interfaces de gestión de la configuración y la energía entre un sistema operativo y la BIOS. Por defecto, &lt;em&gt;acpi&lt;/em&gt; se activa cuando se detecta que la BIOS es posterior al año 2000. Habitualmente, se utilizan varios parámetros para controlar el comportamiento de ACPI: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- no utiliza ACPI para asignar las interrupciones PCI&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- sólo permanecen activadas las partes de ACPI que son importantes para el arranque&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- desactiva ACPI por completo&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- activa ACPI incluso si la BIOS es anterior al año 2000&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Especialmente en equipos nuevos, sustituye al sistema &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; antiguo.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootesopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Opciones del kernel: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM es una de las dos estrategias de gestión de la energía que se utiliza en los equipos actuales. Se utiliza principalmente en portátiles para funciones como la suspensión a disco, pero también puede ser responsable de apagar el equipo cuando se corta la alimentación. APM se fundamenta en un funcionamiento correcto de la BIOS. Si la BIOS está dañada, puede que APM tenga un uso limitado, o que incluso impida que el equipo funcione. Por lo tanto, es posible desactivarlo con el parámetro &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- desactiva APM por completo&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Algunos equipos muy nuevos pueden aprovechar mejor el &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt; más reciente.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootesopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Opciones del kernel: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;IDE, a diferencia de SCSI, se utiliza en la mayoría de las estaciones de trabajo de escritorio. Para evitar algunos problemas de hardware que se producen con los sistemas IDE, utilice el parámetro del kernel: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- desactiva DMA para las unidades IDE&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootesopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Opciones del kernel: pantalla inicial&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;La pantalla inicial es la imagen que se muestra durante el inicio del sistema. &lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- la pantalla inicial se desactiva. Esto puede ser útil en monitores muy antiguos o si se produce algún error.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- activa la pantalla inicial y se siguen mostrando los mensajes del kernel y de arranque.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- activa la pantalla inicial, pero no los mensajes. En su lugar, se muestra una barra de progreso.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootesoptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Elegir perfil&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Pulse &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; para seleccionar un perfil. El sistema se iniciará usando la configuración guardada en este perfil.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootetnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Tagasi &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt; juurde&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootetopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Alglaadimise sätted&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootetopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Abisüsteemi kasutamine&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Nool üles&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Nool alla&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Nool vasakule&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Nool paremale&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Tühik&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;PgUp&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;PgDn&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;End&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootetoptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Keele ja klaviatuuri paigutuse valimine&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootetopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Kerneli sätted: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootetopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Kerneli sätted: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootetopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Kerneli sätted: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootetopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Kerneli sätted: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootetoptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,8 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Vali profiil&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; to select a profile. Your system will be started using the
++configuration saved in this profile.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootfinavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Palaa &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootfiopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Käynnistysvalinnat&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- vaikuta splash-näytön käyttäytymiseen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- vaihda virranhallinta päälle/pois&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- edistynyt määritys ja virranhallinta (ACPI)&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- ohjaa IDE alijärjestelmää&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootfiopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Ohjejärjestelmän käyttäminen&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Käynnistyslataimen ohje on kontekstiriippuvainen. Se antaa tietoja valitusta valikon kohdasta tai, jos muokkaat käynnistysvalintoja, se yrittää hakea tietoa valinnasta jolla kursori on.&lt;/p&gt;
++
++&lt;p&gt;Ohjausnäppäimet &lt;ul&gt;&lt;li&gt;&lt;em&gt;Nuoli ylös&lt;/em&gt;: korosta aiempi linkki&lt;/li&gt;&lt;li&gt;&lt;em&gt;Nuoli alas&lt;/em&gt;: korosta seuraava linkki&lt;/li&gt;&lt;li&gt;&lt;em&gt;Nuoli vasemmalle&lt;/em&gt;, &lt;em&gt;Askelpalautin&lt;/em&gt;: palaa aiempaan aiheeseen&lt;/li&gt;&lt;li&gt;&lt;em&gt;Nuoli oikealle&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Välilyönti&lt;/em&gt;: seuraa linkkiä&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: vieritä yksi sivu ylös&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: vieritä yksi sivu alas&lt;/li&gt;&lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: mene sivun alkuun&lt;/li&gt;&lt;li&gt;&lt;em&gt;End&lt;/em&gt;: mene sivun loppuun&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: sulje ohje&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootfioptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Kieli ja näppäimistökartta -valinnat&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Paina &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; vaihtaaksesi käytettävää käynnistyslataimen kieltä ja näppäimistökarttaa.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootfiopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Ytimen valinnat: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI (Advanced Configuration and Power Interface) on standardi, joka määrittelee virran- ja laitteistohallinnan liittymän käyttöjärjestelmän ja BIOS välillä. Oletuksena, &lt;em&gt;acpi&lt;/em&gt; otetaan käyttöön kun BIOS-versio on otettu käyttöön vuoden 2000 jälkeen. Useita yleisesti käytettyjä parametreja ACPI:n ohjaamiseen ovat: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; - älä käytä ACPI:a ohjaamaan PCI keskeytyksiä&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; - vain ne osat ACPI:sta, jotka kuuluvat käynnistykseen jäävät käyttöön&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- poista ACPI käytöstä kokonaan&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- käyttää ACPI:a vaikka BIOS olisi päivätty ennen vuotta 2000&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Erityisesti uusissa tietokoneissa tämä korvaa vanhan &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;-järjestelmän.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootfiopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Ytimen valinnat: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM on toinen nykyisissä tietokoneissa käytettävistä virranhallinta strategioista. Sitä käytetään pääasiassa kannettavien tietokoneiden toiminnoissa kuten lepotila levylle, mutta se voi olla vastuussa myös tietokoneen sammuttamisesta. APM on riippuvainen toimivasta BIOS:sta. Jos BIOS on rikkinäinen, APM:llä voi olla vain rajoitettua käyttöä, tai se voi jopa estää tietokonetta toimimasta. Tämän takia APM voidaan poistaa käytöstä parametrilla &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- poista APM käytöstä kokonaan&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Uusimmat tietokoneet voivat hyötyä enemmän uudemmasta &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;:sta.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootfiopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Ytimen valinnat: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;IDE, toisin kuin SCSI, on yleisesti käytetty useimmissa työasemissa. Ohittaaksesi joitakin IDE-järjestelmien laitteisto-ongelmia, käytä ytimen parametria: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- poista DMA käytöstä IDE-levyiltä&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootfiopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Ytimen valinnat: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Splash-näyttö on kuva, joka näytetään järjestelmän käynnistyksen yhteydessä. &lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- Splash-näyttö ei ole käytössä. Tämä voi olla käytännöllistä todella vanhojen monitoreiden kanssa, tai jos virheitä ilmenee.&lt;/li&gt;&lt;li&gt;Ottaa käyttöön splash-näytön, ydin- ja käynnistysviestit näkyvät silti.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Ottaa käyttöön splash-näytön, mutta ei viestejä. Näiden sijasta käytetään etenemispalkki.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootfioptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Valitse profiili&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Paina &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; valitaksesi käytettävän profiilin. Järjestelmäsi käynnistetään käyttäen profiiliin tallennettua määritystä.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootfrnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Retour à la rubrique &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootfropthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Options d'amorçage&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- détermine le fonctionnement de l'écran de démarrage&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- active ou non la fonction de gestion de l'alimentation&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- configuration avancée et gestion de l'alimentation&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- contrôle le sous-système IDE&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootfropthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Utilisation du système d'aide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;L'aide en ligne du chargeur d'amorçage est contextuelle. Elle fournit des informations sur l'élément du menu sélectionné ou si vous éditez les options d'amorçage, elle recherche des informations sur l'option pointée par le curseur.&lt;/p&gt;
++
++&lt;p&gt;Touches de navigation &lt;ul&gt;&lt;li&gt;&lt;em&gt;Flèche haut&lt;/em&gt; : mettre en sur-brillance le lien précédent&lt;/li&gt;&lt;li&gt;&lt;em&gt;Flèche bas&lt;/em&gt; : mettre en sur-brillance le lien suivant&lt;/li&gt;&lt;li&gt;&lt;em&gt;Flèche gauche&lt;/em&gt;, &lt;em&gt;Retour arrière&lt;/em&gt; : retour à la rubrique précédente&lt;/li&gt;&lt;li&gt;&lt;em&gt;Flèche droite&lt;/em&gt;, &lt;em&gt;Entrée&lt;/em&gt; et &lt;em&gt;Espace&lt;/em&gt; : suivre le lien&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page haut&lt;/em&gt; : faire défiler une page vers le haut&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page bas&lt;/em&gt; : faire défiler une page vers le bas&lt;/li&gt;&lt;li&gt;&lt;em&gt;Domicile&lt;/em&gt; : aller au début de la page&lt;/li&gt;&lt;li&gt;&lt;em&gt;Fin&lt;/em&gt; : aller à la fin de la page&lt;/li&gt;&lt;li&gt;&lt;em&gt;Échap&lt;/em&gt; : quitter l'aide&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootfroptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Sélection de la langue et de la disposition du clavier&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Appuyez sur &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; pour changer la langue et la disposition du clavier utilisées par le chargeur d'amorçage.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootfropto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Options de kernel : acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Le standard ACPI (Advanced Configuration and Power Interface) définit les interfaces de gestion d'alimentation et de configuration entre un système d'exploitation et le BIOS. Par défaut, &lt;em&gt;acpi&lt;/em&gt; est activé lorsqu'un BIOS ultérieur à l'année 2000 est détecté. Il existe plusieurs paramètres utilisés couramment pour contrôler le fonctionnement de ACPI : &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- ne pas utiliser ACPI pour router les interruptions PCI&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- seules les parties de ACPI en rapport avec l'amorçage restent activées&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- désactiver complètement ACPI&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- activer ACPI même si votre BIOS est antérieur à l'année 2000&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Spécialement pour les nouveaux ordinateurs, il remplace l'ancien système &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootfropto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Options de kernel : apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM est l'une des deux stratégies de gestion de l'alimentation des ordinateurs actuels. Elle est utilisée principalement sur les ordinateurs portables pour des fonctions telles que la mise en veille sur disque, mais elle peut désactiver l'ordinateur après sa mise hors tension. APM dépend du fonctionnement correct du BIOS. Si le BIOS est défectueux, APM peut être d'une utilité limitée ou même empêcher l'ordinateur de fonctionner. Dans ces cas, elle peut être désactivée à l'aide du paramètre &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- désactiver complètement ACPI&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Certains ordinateurs vraiment nouveaux peuvent tirer plus d'avantage à partir du nouveau &lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootfropto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Options de kernel : ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;A la différence de SCSI, IDE est couramment utilisé sur la plupart des postes de travail de bureau. Pour contourner certains problèmes matériels des systèmes IDE, utilisez le paramètre de noyau suivant : &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- désactiver le DMA pour les lecteurs IDE&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootfropto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Options de kernel : splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;L'écran de démarrage est l'image affichée durant l'amorçage du système. &lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- L'écran de démarrage est désactivé. Ca peut être utile avec des moniteurs très anciens ou si certaines erreurs surviennent.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Active l'écran de démarrage sans faire disparaître les messages de noyau et d'amorçage.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Active l'écran de démarrage sans les messages. À la place, une barre de progression est représentée.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootfroptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Choisir un profil&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Appuyez sur &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; pour sélectionner un profil. Votre système démarrera avec la configuration enregistrée dans ce profil.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootglnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,3 @@
++&lt;p&gt;
++Return to &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootglopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Opcións de Arrinque&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootglopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Usando o Sistema de Axuda&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Frecha Arriba&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Frecha Abaixo&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Frecha Esquerda&lt;/em&gt;, &lt;em&gt;Retroceso&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Frecha Dereita&lt;/em&gt;, &lt;em&gt;Intro&lt;/em&gt;, &lt;em&gt;Espazo&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Re Páx&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Av Páx&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Inicio&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Fin&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootgloptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Selección de Disposición de Teclado e Lingua&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootglopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Opcións do Kernel: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootglopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Opcións do Kernel: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootglopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Opcións do Kernel: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootglopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Opcións do Kernel: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootgloptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,8 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Escoller Perfil&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; to select a profile. Your system will be started using the
++configuration saved in this profile.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootgunavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;પાછા ફરો &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootguopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;બુટ વિકલ્પો&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;સ્પ્લેશ&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootguopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;મદદ માટેની સિસ્ટમ વાપરવી&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ઉપર જતું તીર&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;નીચે જતું તીર&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;ડાબે જતું તીર&lt;/em&gt;, &lt;em&gt;બેકસ્પેસ&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;જમણે જતું તીર&lt;/em&gt;, &lt;em&gt;એન્ટર&lt;/em&gt;, &lt;em&gt;સ્પેસ&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;ઉપરનું પૃષ્ઠ&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;નીચેનું પૃષ્ઠ&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;ઘર&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;છેવટનું&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;એસ્કેપ&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootguoptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;ભાષા અને કીબોર્ડના લેઆઉટની પસંદગી&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootguopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;કેર્નાલ વિકલ્પો: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=નો acpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=ઓલ્ડબુટ&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=બંધ&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=ફોર્સ&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootguopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;કેર્નાલ વિકલ્પો: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=બંધ&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootguopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;કેર્નાલ વિકલ્પો: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=નોડમા&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootguopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;કેર્નાલ વિકલ્પો: સ્પ્લેશ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;સ્પ્લેશ=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;સ્પ્લેશ=નકામા શબ્દો&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;સ્પ્લેશ=શાંત&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootguoptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,8 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;પ્રોફાઈલ પસંદ કરો&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; to select a profile. Your system will be started using the
++configuration saved in this profile.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpboothinavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;&lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt; में लौटा&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpboothiopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Boot Options&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;स्पलास&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;आईडीइ&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpboothiopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;मदद सिस्टम का उपयोग करते हुए&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Up Arrow&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Down Arrow&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;बायां तीर&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Right Arrow&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;स्थान&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;पृष्ठ ऊपर&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;पृष्ठ नीचे&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;घर&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;अंत&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpboothioptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;भाषा और कीबोर्ड लेआऊट चुनाव&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpboothiopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;कर्नेल विकल्प: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=बंद&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=बल&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpboothiopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;कर्नेल विकल्प: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;एपीएम=बंद&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpboothiopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;कर्नेल विकल्प: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpboothiopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;कर्नेल विकल्प:स्पलास&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;स्पलास=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;स्पलास=वरबोस&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;स्पलास=मूक&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpboothioptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,8 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;प्रोफाइल चुनें&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; to select a profile. Your system will be started using the
++configuration saved in this profile.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpboothrnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,3 @@
++&lt;p&gt;
++Return to &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpboothropthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Opcije podizanja sustava&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpboothropthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Koristim sustav pomoći&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Strelica gore&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Strelica dolje&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Strelica lijevo&lt;/em&gt;, &lt;em&gt;Brisanje&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Strelica desno&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Razmak&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Stranica gore&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Stranica dolje&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Kuća&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Kraj&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpboothroptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Odabir jezika i rasporeda tipkovnice&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpboothropto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Izbori kernela: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpboothropto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Izbori kernela: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpboothropto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Izbori kernela: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpboothropto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Izbori kernela: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpboothroptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,8 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Odaberite profil&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; to select a profile. Your system will be started using the
++configuration saved in this profile.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpboothunavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Vissza a &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt; részhez.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpboothuopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Rendszerindítási paraméterek&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- az indítóképernyő beállítása&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- energiakezelés beállítása&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- ACPI energiakezelési rendszer&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- IDE alrendszer&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpboothuopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;A súgórendszer használata&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;A rendszertöltő online súgója helyzetfüggő segítséget nyújt az egyes kiválasztott menüpontokhoz. Ezenfelül az egyes rendszerindítási opciókhoz is információval szolgál. Ez akkor lehet hasznos, ha éppen egy bejegyzés szerkesztése válik szükségessé.&lt;/p&gt;
++
++&lt;p&gt;Navigációs billentyűk &lt;ul&gt;&lt;li&gt;&lt;em&gt;Felfelé nyíl&lt;/em&gt;: előző hivatkozás kiválasztása&lt;/li&gt;&lt;li&gt;&lt;em&gt;Lefelé nyíl&lt;/em&gt;: következő hivatkozás kiválasztása&lt;/li&gt;&lt;li&gt;&lt;em&gt;Bal nyíl&lt;/em&gt;, &lt;em&gt;Vissza&lt;/em&gt;: vissza az előző témához&lt;/li&gt;&lt;li&gt;&lt;em&gt;Jobb nyíl&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Szóköz&lt;/em&gt;: hivatkozás követése&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: görgetés felfelé&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: görgetés lefelé&lt;/li&gt;&lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: ugrás az oldal elejére&lt;/li&gt;&lt;li&gt;&lt;em&gt;End&lt;/em&gt;: ugrás az oldal végére&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: kilépés a súgóból&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpboothuoptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Nyelv és billentyűzet kiválasztása&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Az &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; billentyű megnyomásával választható ki az indítóképernyő és a billentyűzet nyelve.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpboothuopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Kernelparamétere: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Az ACPI (Advanced Configuration and Power Interface) szabvány meghatározza, hogy az operációs rendszer és a BIOS között hogyan működjenek az energiakezelési funkciók. Alapértelmezett esetben akkor van bekapcsolva az &lt;em&gt;acpi&lt;/em&gt; opció, ha a 2000. év után készült BIOS verziót talál. Az ACPI viselkedését az alábbi opciókkal lehet pontosan meghatározni: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- ne használja az ACPI-t PCI megszakításokhoz&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- a rendszerindításkor szükséges ACPI-részek bekapcsolása&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- az ACPI teljes kikapcsolása&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- az ACPI bekapcsolása annak ellenére, hogy a BIOS a 2000. év előtt készült&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Új számítógépeken az ACPI teljes mértékben helyettesíti a régi &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; rendszert.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpboothuopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Kernelparaméterek: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Az APM (Advanced Power Management) egy energiakezelő rendszer. Használatának leginkább hordozható számítógépeken van értelme, ahol átmenetileg fel lehet függeszteni a rendszer futását. Akkor szüksége lehet energiakezelő rendszerre, ha azt szeretné, hogy a rendszer leállításakor automatikusan kikapcsoljon a rendszer. Az APM működése erősen függ a számítógép BIOS rendszerétől. Amennyiben hibás a BIOS, vagy hibásan van beállítva, akkor az APM bekapcsolása mellékhatásokhoz vezethet. Ilyenkor letilthatja az APM bekapcsolását a következő paraméterrel: &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- az ACPI teljes kikapcsolása&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Az újabb számítógépeken az APM helyett az újabb &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt; rendszer használata javasolt.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpboothuopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Kernelbeállítások: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;A legtöbb munkaállomás nem SCSI, hanem IDE csatolót használ. Az IDE rendszer esetleges hardverproblémáinak kikerüléséhez szüksége lehet a következő paraméterre: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- kikapcsolja a merevlemez DMA módját&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpboothuopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Kernelbeállítások: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;A rendszerindításkor látható kép a rendszerindító képernyő. &lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- A rendszerindító képernyő nem jelenik meg. Ez akkor lehet hasznos, ha régi a monitor.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Bekapcsolja az indítóképernyőt, a kernel- és a rendszerindítási üzenetek megjelennek.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Bekapcsolja az indítóképernyőt, de az üzenetek helyett csak a folyamatjelző jelenik meg.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpboothuoptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Profil kiválasztása&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Egy profil kiválasztásához nyomja meg az &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt;billentyűt. A rendszer a kiválasztott profilban beállított paraméterekkel indul el.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootitnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Ritorna a &lt;a href=&quot;#foobar&quot;&gt;FOOBAR &lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootitopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Opzioni di boot&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;schermata di avvio&lt;/a&gt; -- influenza il comportamento della schermata di avvio&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- attiva o disattiva il risparmio energetico&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- configurazione avanzata ed interfaccia per il risparmio energetico&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;IDE&lt;/a&gt; -- controlla il sottosistema IDE &lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootitopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Uso della Guida&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;La Guida in linea del boot loader è sensibile al contesto e visualizza le informazioni sulla voce di menu selezionata, oppure, durante la modifica delle opzioni di avvio, tenta di individuare le informazioni relative all'opzione su cui è posizionato il cursore.&lt;/p&gt;
++
++&lt;p&gt;Chiavi di navigazione &lt;ul&gt;&lt;li&gt;&lt;em&gt;Freccia su&lt;/em&gt;: evidenzia il collegamento precedente&lt;/li&gt;&lt;li&gt;&lt;em&gt;Fraccia giù&lt;/em&gt;: evidenzia il collegamento successivo&lt;/li&gt;&lt;li&gt;&lt;em&gt;Freccia sinistra&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: torna all'argomento precedente&lt;/li&gt;&lt;li&gt;&lt;em&gt;Fraccia destra&lt;/em&gt;, &lt;em&gt;Invio&lt;/em&gt;, &lt;em&gt;Spazio&lt;/em&gt;: visita il colegamento&lt;/li&gt;&lt;li&gt;&lt;em&gt;PgSu&lt;/em&gt;: scorre verso l'alto una pagina alla volta&lt;/li&gt;&lt;li&gt;&lt;em&gt;PgGiù&lt;/em&gt;: scorre verso il basso una pagina alla volta&lt;/li&gt;&lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: va a inizio pagina&lt;/li&gt;&lt;li&gt;&lt;em&gt;Termine&lt;/em&gt;: va a fine pagina&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: chiude la Guida&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootitoptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Selezione layout tastiera e lingua&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Premere &lt;em&gt;@@@fkey_lang@@@ &lt;/em&gt; per cambiare la lingua e il layout della tastiera utilizzati dal boot loader.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootitopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Opzioni kernel: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI (Advanced Configuration and Power Interface) è uno standard che definisce le interfacce di risparmio energetico e configurazione tra un sistema operativo e il BIOS. Per impostazione predefinita, &lt;em&gt;acpi&lt;/em&gt; viene attivato ogni volta che viene rilevato un BIOS successivo all'anno 2000. Esistono molti parametri comunemente utilizzati per controllare il comportamento di un ACPI: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- non usare l'ACPI per indirizzare gli interrupt PCI&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- solo i componenti di ACPI che sono necessari al boot rimangono attivi&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- disattiva completamente ACPI&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- attiva ACPI anche se il BIOS installato è precedente al 2000&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;In particolare nei nuovi computer sostituisce il sistema di &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; precedente. &lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootitopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Opzioni kernel: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM è una delle due strategie di risparmio energetico utiizzata nei computer moderni. Viene utilizzata principalmente sui computer portatili per funzioni quali la sospensione su disco, tuttavia può controllare anche l'arresto del computer dopo lo spegnimento. La funzionalità APM dipende dal corretto funzionamento del BIOS. Se il BIOS non funziona correttamente, APM può essere utilizzata in maniera limitata o può addirittura impedire il funzionamento del computer. Per questo motivo, è possibile disattivarla con il parametro &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- disattiva completamente ACPI&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Alcuni computer di nuova generazione possono beneficiare maggiormente del recente &lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootitopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Opzioni kernel: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt; Nella maggior parte delle workstation desktop vengono utilizzati dispositivi IDE, anziché SCSI. Per aggirare alcuni problemi hardware che possono verificarsi con i sistemi IDE, utiizzare il parametro del kernel: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- disattiva il DMA per le unità IDE&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootitopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Opzioni kernel: schermata di avvio&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;La schermata di avvio corrisponde all'immagine visualizzata all'avvio del sistema. &lt;ul&gt;&lt;li&gt;&lt;em&gt;schermata di avvio=0&lt;/em&gt; --La schermata di avvio è disattivata. Ciò può essere utile quando si utilizzano monitor molto vecchi o quando si verificano errori.&lt;/li&gt;&lt;li&gt;&lt;em&gt;schermata di avvio=verbose&lt;/em&gt; -- Attiva la schermata di avvio con la visualizzazione dei messaggi del kernel e di avvio.&lt;/li&gt;&lt;li&gt;&lt;em&gt;schermata di avvio=silent&lt;/em&gt; -- Attiva una schermata di avvio senza messaggi. Viene invece visualizzata una barra di avanzamento.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootitoptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Scegli profilo&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Premere &lt;em&gt;@@@fkey_profile@@@ &lt;/em&gt; per selezionare un profilo. Il sistema verrà avviato utilizzando la configurazione salvata in questo profilo.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootjanavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;&lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt; に戻る &lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootjaopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;起動オプション&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;スプラッシュ&lt;/a&gt; -- スプラッシュ画面の動作に影響を与えます&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- 電源管理機能を切り替えます&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- &quot;詳細設定と電源インタフェース&quot; の略称です&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;IDE&lt;/a&gt; -- IDE サブシステムを操作します&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootjaopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;ヘルプシステムの使用&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ブートローダのオンラインヘルプは状況に合わせた表示を行ないます。メニュー項目を選択している場合はその項目についての情報を提供するほか、起動オプションを編集している場合はカーソル位置のオプションについて情報を調べます。&lt;/p&gt;
++
++&lt;p&gt;操作キー &lt;ul&gt;&lt;li&gt;&lt;em&gt;上矢印&lt;/em&gt;: 前のリンクを強調表示する&lt;/li&gt;&lt;li&gt;&lt;em&gt;下矢印&lt;/em&gt;: 次のリンクを強調表示する&lt;/li&gt;&lt;li&gt;&lt;em&gt;左矢印&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: 前のトピックに戻る&lt;/li&gt;&lt;li&gt;&lt;em&gt;右矢印&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;スペース&lt;/em&gt;: リンクをたどる&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: 1 ページ分スクロールアップ&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: 1ページ分スクロールダウン&lt;/li&gt;&lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: ページの初めにジャンプ&lt;/li&gt;&lt;li&gt;&lt;em&gt;End&lt;/em&gt;: ページの最後にジャンプ&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: ヘルプの終了&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootjaoptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;言語とキーボードレイアウトの選択&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ブートローダで使用する言語とキーボードレイアウトを変更するには、 &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; を押してください。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootjaopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;カーネルオプション: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI (Advanced Configuration and Power Interface) は、オペレーティングシステムと BIOS の間で決められた電源と設定管理インタフェースの標準です。既定では &lt;em&gt;acpi&lt;/em&gt; は BIOS が 2000 年より新しいものであると有効になります。 ACPI の動作をコントロールするために、いくつかのパラメータが用意されています: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- PCI の割り込み制御に ACPI を使わないようにする&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- ACPI のうち起動に関連する部分だけを有効にする&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- ACPI を完全に無効化する&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- BIOS が 2000 年以前の日付の場合でも ACPI を有効にする&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;特に新しいコンピュータでは、古い &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; システムに取って代わっています。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootjaopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;カーネルオプション: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM は現在のコンピュータで使用される 2 種類の電源管理ストラテジのうちの 1 つです。この機能はディスクへのサスペンド (Suspend to disk) のような機能に対してノート PC で主に使用されますが、パワーダウンした後にコンピュータの電源をオフにするような機能もあります。 APM は BIOS が正しく動作することを前提に作られているため、 BIOS が壊れた場合は APM の使用が制限されたり、コンピュータが機能しないこともあります。そのため、下記のパラメータでオフにすることもできます &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- APM を完全に無効化する&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;いくつかの最新コンピュータでは新しい &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt; を利用したほうが利点があるかもしれません。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootjaopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;カーネルオプション: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;IDE は SCSI と異なり、ほとんどのデスクトップワークステーションで広く使用されています。 IDE システムに発生したハードウェア問題を回避するには、カーネルパラメータを使用してください: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- IDE ドライブの DMA を無効にする&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootjaopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;カーネルオプション: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;スプラッシュ画面とはシステムが起動する際に表示される画像のことです。 &lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- スプラッシュ画面を無効にします。とても古いコンピュータを使用している場合や、何らかのエラーが起こる場合に便利です。&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- スプラッシュ画面を有効にし、あわせてカーネルと起動時のメッセージを表示します。&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- スプラッシュ画面を有効にしますが、メッセージを表示しません。進行状況のバーのみを表示します。&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootjaoptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;プロファイルの選択&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; を押すとプロファイルを選択することができます。選択したプロファイルを利用してシステムを起動することができます。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootkonavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;&lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt; 로 되돌아가기&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootkoopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;부트 옵션&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;스플래시&lt;/a&gt; -- 스플래시 화면의 동작 영향&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- 전원 관리 전환&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- 고급 구성 및 전원 인터페이스&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- IDE 서브시스템 제어&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootkoopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;도움말 시스템 사용&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;부트로더 온라인 도움말은 context sensitive 입니다. 선택한 메뉴 아이템에 대한 정보를 얻거나, 부트 옵션을 편집 할 때 옵션에 커서가 올라가있으면 거기에 대한 정보를 조회 할 수 있습니다.&lt;/p&gt;
++
++&lt;p&gt;찾아보기 키 &lt;ul&gt;&lt;li&gt;&lt;em&gt;위 화살표&lt;/em&gt;: 앞의 링크를 하이라이트&lt;/li&gt;&lt;li&gt;&lt;em&gt;아래 화살표&lt;/em&gt;: 다음의 링크를 하이라이트&lt;/li&gt;&lt;li&gt;&lt;em&gt;왼쪽 화살표&lt;/em&gt;, &lt;em&gt;백스페이스&lt;/em&gt;: 이전 주제로 되돌아가기&lt;/li&gt;&lt;li&gt;&lt;em&gt;오른쪽 화살표&lt;/em&gt;, &lt;em&gt;엔터&lt;/em&gt;, &lt;em&gt;스페이스&lt;/em&gt;: 다음의 링크&lt;/li&gt;&lt;li&gt;&lt;em&gt;페이지 업&lt;/em&gt;: 한장 위로&lt;/li&gt;&lt;li&gt;&lt;em&gt;페이지 다운&lt;/em&gt;: 한장 아래로&lt;/li&gt;&lt;li&gt;&lt;em&gt;홈&lt;/em&gt;: 첫장으로&lt;/li&gt;&lt;li&gt;&lt;em&gt;엔드&lt;/em&gt;: 마지막 장으로&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: 도움말을 떠남&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootkooptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;언어 및 키보드 배열 선택&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;h3&gt;&lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; 을 눌러 부트 로더가 사용할 언어 및 키보드 배열을 변경합니다.&lt;/h3&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootkoopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;커널 옵션: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI 는 (Advanced Configuration and Power Interface) 운영체제와 바이오스간의 전원관리 인터페이스를 정의하는 표준입니다. 기본적으로 &lt;em&gt;acpi&lt;/em&gt; 는 2000년 이후에 제조된 바이오스가 감지될 때 켜집니다. 다음은 ACPI 동작을 제어하기위해 일반적으로 사용되는 항목 : &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- ACPI 를 PCI 인터럽트 라우트에 사용하지 않음&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- 부팅 활성화에서 ACPI 부분 적절한 것 만&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- ACPI 를 완전히 끄기&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- 2000년 이전에 제조된 바이오스일지라도 ACPI 옵션 켜기&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;특히 최신 컴퓨터에서, 예전의 &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; 시스템을 대체합니다.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootkoopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;커널 옵션: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM(Advanced Power Management)은 현재 컴퓨터에서 사용되고 있는 두 종류의 전원관리기술 중 하나입니다. 주로 노트북에서 사용되는 디스크 일시 중지 같은 기능은 물론, 전원이 공급이 중단된 이후 컴퓨터를 끄는데 이 기술이 사용됩니다. APM은 바이오스에 의해 결정됩니다. 만약 바이오스에 문제가 발생한다면 APM을 사용하는데 제약이 따를 뿐만 아니라 심지어 컴퓨터 작동을 방해할 수도 있습니다. 따라서 APM 관련 항목은 기본적으로 &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- APM 을 완전히 끄기&lt;/li&gt;&lt;/ul&gt; 매개변수와 함께 꺼져있을 수 있습니다.&lt;/p&gt;
++
++&lt;p&gt;최신 컴퓨터의 경우 새로운 &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt; 이 좀더 유용할 수 있습니다.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootkoopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;커널 옵션: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;SCSI 와는 달리 IDE 는 대부분의 데스크탑 워크스테이션에서 사용되고 있습니다. IDE 시스템에 문제가 발생할 경우에는 커널 매개변수를 사용하세요: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- IDE 드라이버용 DMA 끄기&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootkoopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;커널 옵션: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;스플래시 스크린은 시스템이 시작되는 동안 보여지는 그림입니다.&lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- 스플래시 스크린은 꺼져 있습니다. 아주 오래된 모니터를 사용하고 있거나, 오류가 발생했을 수 있습니다.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- 스플래시 활성화, 커널과 부트 메시지가 계속 표시됩니다.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- 스플래시 활성화, 하지만 메시지는 없고 대신에 진행상황 막대가 그려집니다.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootkooptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;프로필 선택&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; 를 눌러 프로필을 선택합니다. 시스템이 이 프로필 설정으로 시작 될것입니다.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootkynavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;&lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt; кайтуу&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootkyopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Жүктөөлүү параметрлери&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;заставка&lt;/a&gt; -- экрандык заставканы жандыруу/өчүрүү&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- электр камсыздоо башкаруусун иштетет&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- система ырастоо жетилген интерфейси жана энергияны камсыздоо башкаруучу&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- IDE системасын башкарат&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootkyopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Жардам системасын колодонуу&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Онлайндык жүктөөгүч жардамы мазмундан көз каранды. Ал менюдан тандалаган элемент боюнча маалымат берет, же эгерде сиз жүктөөлүү параметрлерин өзгөртүп жаткан учурда, параметрде турган курсор боюнча маалыматты көрсөтүүнү аракеттенет.&lt;/p&gt;
++
++&lt;p&gt;Башкаруу баскычтары: &lt;ul&gt;&lt;li&gt;&lt;em&gt;Жогору жебеси&lt;/em&gt;: мурунку шилтемени жаркыратат&lt;/li&gt;&lt;li&gt;&lt;em&gt;Ылдый жебеси&lt;/em&gt;: кийинки шилтемени жаркыратат&lt;/li&gt;&lt;li&gt;&lt;em&gt;Солго жебеси&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: мурунку бөлүмгө өтүү&lt;/li&gt;&lt;li&gt;&lt;em&gt;Оңго жебеси&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Боштук&lt;/em&gt;: шилтемедем өтүү&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: мурунку бетке өтүү&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: кийинки бетке өтүү&lt;/li&gt;&lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: беттин башына өтүү&lt;/li&gt;&lt;li&gt;&lt;em&gt;End&lt;/em&gt;: беттин аягына өтүү&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: жардам сист
+ масындан чыгуу&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootkyoptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Тилди жана клавиатура жайгалышын тандоо&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Жүктөгүч колдонуучу тилин жана клавиатурасын өзгөртүү үчүн &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; баскычын басыңыз.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootkyopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Ядро параметрлери: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI (Жетилген система ырастоо интерфейси жана энергияны камсыздоо башкаруучусу) бул операциондук система жана BIOS арасында стандарттык ырастоо жана энергияны камсыздоо башкаруу интерфесин түзөт. Алыдын ала, &lt;em&gt;pci=noacpi&lt;/em&gt; -- PCI токтолуштарды башкарууда ACPI'ди колдонбоо жанык, эгерде BIOS дата версиясы 2000 жылдан кийин аныкталса. ACPI журуш-турушун башкаруу үчүн бир нече жалпы параметрлер бар: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- PCI токтолуштарды башкарууда ACPI'ди колдонбоо&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- ACPI'дин жүктөлүүгө арналган бөлүгү ган
+ а активдүү калат&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- ACPI'ди толугу менен өчүрөт&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- BIOS дата версиясы 2000 жылдан мурун болсо да ACPI'ди жандырат&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Жаңы компьютердерде эски &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; системасын ордун алмаштырат.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootkyopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Ядро параметрлери: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM бул азыркы компьютерлерде колдонулуп жаткан электр камсыздоо башкаруусунун эки стратегиядан бириси. Ал негизинен лаптоп компьютерлерде дискти токтотуу функцияларында колдонулат, бирок электр булагы өчкөн учурларда компьютердин өчүүсүндө колдонулушу мүмкүн. APM BIOS'тун туура иштөөсүндө байланыштуу. Эгерде BIOS бузук болсо, анда APM колдонууда чектелүү же компьютер менен иштөөгө тыю салынышы мүмкүн. Бирок аны төмөнкү параметр менен өчүрсө болот: &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- ACPI'ди толугу менен өчүрөт&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Кээ бир гана жаңы компьютердер башка &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt; караганда үстөмдүгү бар.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootkyopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Ядро параметрлери: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;IDE, SCSI'ге караганда көбүнчө иштөө станцияларында колдонулат. IDE системаларда кээ бир жабдык каталарды чечүү үчүн, ядронун пераметрлерин колдонуңуз: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- IDE дисктер үчүн DMA режимин өчүрүү&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootkyopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Ядро параметрлери: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Экрандык заставка бул система жүктөлүп жатканда көрсөтүүлүчү сүрөт. &lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- Экрандык заставка өчүк. Бул өтө эски мониторлор колдонулуп же кандайдыр бир ката бар болгон кезде өтө пайдалуу ыкма.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Экрандык заставка жанык, бирок жүктөө жана ядро билдирүүлөрү көрсөтүлөт.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Экрандык заставка жанык жана эч кандай билдирүүлөр көрсөтүлбөйт. Билдирүүлөр ордуна аткарылып жаткан жүктөлүү индикатору көрсөтүлөт.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootkyoptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Профилди тандоо&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Профилди тандоо үчүн &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; баскычын тандоо. Сиздин системаңыз бул профилде сакталган ырастоолорду колдонуп жүктөлөт.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootltnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Grįžti į &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootltopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Įkrovos parametrai&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootltopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Naudojimasis pagalbos sistema&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Viršutinė rodyklė&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Apatinė rodyklė&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Kairioji rodyklė&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Dešinioji rodyklė&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Tarpas&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;End&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootltoptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Kalbos ir klaviatūros išdėstymo pasirinkimas&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootltopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Branduolio parametrai: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootltopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Branduolio parametrai: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootltopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Branduolio parametrai: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootltopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Branduolio parametrai: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootltoptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,8 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Pasirinkite profilį&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; to select a profile. Your system will be started using the
++configuration saved in this profile.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootmrnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;परत जा&lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootmropthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;बूट विकल्प&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;स्प्लेश&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;एपिएम&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;एसिपिआय&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;आयडिई&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootmropthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt; हेल्प सिस्टिम वापऱुन &lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt; अप एरो &lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;डाऊन एरो &lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;डावा एरो &lt;/em&gt;, &lt;em&gt;मागे&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;उजवा एरो &lt;/em&gt;, &lt;em&gt;एन्टर&lt;/em&gt;, &lt;em&gt;स्पेस&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;पेज अप&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt; पेज डाऊन &lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;होम&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;एन्ड&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;एस्केप&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootmroptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;भाषा व किबोर्ड रचना निवड&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootmropto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;केर्नल विकल्प: एसिपिआई &lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;एसिपिआय&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;पिसिआई=एनओ&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;एसिपिआई=ओल्डबूट&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;एसिपिआई=ओफ&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;एसिपिआई=फोर्स&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;एपिएम&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootmropto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt; केर्नल विकल्प: एपिएम &lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt; एपिएम=ओफ&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;एसिपिआई&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootmropto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;केर्नल विकल्प: आइडिई&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;आइडिई=एनओडिएमए&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootmropto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;केर्नल विकल्प: स्प्लेश &lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt; स्प्लेश=०&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt; स्प्लेश=वर्बोस &lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt; स्प्लेश=सायलेन्ट &lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootmroptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,8 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;प्रोफाइल &lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; to select a profile. Your system will be started using the
++configuration saved in this profile.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootnbnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Tilbake til &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootnbopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Oppstartsalternativer&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- påvirker oppstartsbildet&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- slå strømstyring av og på&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- avansert oppsett og strømstyringsvalg&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- kontroller IDE-systemet&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootnbopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Bruke Hjelp-systemet&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Den elektroniske hjelpen for oppstartslasteren er kontekstsensitiv. Den gir informasjon om det valgte menyelementet eller forsøker å finne informasjon om valget som markøren er plassert på, når du redigerer oppstartsvalg.&lt;/p&gt;
++
++&lt;p&gt;Navigasjonstaster &lt;ul&gt;&lt;li&gt;&lt;em&gt;Pil opp&lt;/em&gt;: aktiver forrige lenke&lt;/li&gt;&lt;li&gt;&lt;em&gt;Pil ned&lt;/em&gt;: aktiver neste lenke&lt;/li&gt;&lt;li&gt;&lt;em&gt;Pil venstre&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: tilbake til forrige emne&lt;/li&gt;&lt;li&gt;&lt;em&gt;Pil høyre&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Mellomrom&lt;/em&gt;: følg lenken&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: bla én side oppover&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: bla én side nedover&lt;/li&gt;&lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: til begynnelsen av siden&lt;/li&gt;&lt;li&gt;&lt;em&gt;End&lt;/em&gt;: til slutten av siden&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: avslutt Hjelp&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootnboptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Valg av språk og tastaturoppsett&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Trykk på &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; for å endre språket og tastaturoppsettet for oppstartslasteren.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootnbopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Kjernevalg: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI (Advanced Configuration and Power Interface) er en standard som definerer kommunikasjonen med hensyn til strømstyring og konfigurasjon mellom et operativsystem og BIOS. Som standard aktiveres &lt;em&gt;acpi&lt;/em&gt; dersom BIOS er nyere enn fra år 2000. Det finnes flere vanlige parametere som som styrer ACPI-funksjonen:&lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- ikke bruk ACPI for å rute PCI-avbrudd&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- bare de delene av ACPI som er relevant for oppstart, skal være aktivert&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- deaktiver ACPI helt&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- aktiver ACPI selv om BIOS er eldre enn fra 2000&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Spesielt på nye datamaskiner, erstatter dette det tidligere &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;-systemet.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootnbopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Kjernevalg: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM er én av to strømstyringsstrategier som brukes på moderne datamaskiner. APM brukes hovedsakelig på bærbare maskiner for funksjoner som diskdvale, men kan også slå av maskinen når strømmen brytes. APM krever at BIOS fungerer riktig. Hvis BIOS er skadet, har APM begrenset nytte, og kan til og med føre til at datamaskinen ikke fungerer. Derfor kan APM deaktiveres med parameteren &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- deaktiver APM helt&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;For enkelte helt nye datamaskiner kan det være en fordel å bruke den nyere &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootnbopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Kjernevalg: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;IDE benyttes, i motsetning til SCSI, for de fleste skrivebordsmaskiner. For å unngå enkelte maskinvareproblemer som forekommer med IDE-systemer, bruk kjerneparameteren: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- deaktiver DMA for IDE-disker&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootnbopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Kjernevalg: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Oppstartsskjermen er bildet som vises når systemet starter opp. &lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- Oppstartsbildet slås av. Dette kan være nyttig for svært gamle skjermer, eller hvis det oppstår feil.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Aktiverer et oppstartsbilde, men kjerne- og oppstartsmeldinger vises likevel.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Aktiverer et oppstartsbilde, men ingen meldinger. En forløpsindikator vises i stedet.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootnboptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Velg profil&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Trykk &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; for å velge en profil. Systemet vil bruke konfigurasjonen som er lagret i denne profilen under oppstarten.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootnlnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Terug naar &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootnlopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Opstartopties&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;opstartscherm&lt;/a&gt; -- beïnvloedt het gedrag van het opstartscherm (splash)&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- energiebeheer omschakelen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- geavanceerde configuratie en power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- het IDE-subsysteem aansturen&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootnlopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Het helpsysteem gebruiken&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;De online-help van de bootloader is contextgevoelig. Het geeft u informatie over de geselecteerde menuoptie of, als u opstartopties aan het bewerken bent, probeert het informatie over de optie die zich onder de cursor bevindt op te zoeken.&lt;/p&gt;
++
++&lt;p&gt;Navigatie sleutels &lt;ul&gt;&lt;li&gt;&lt;em&gt;Pijl omhoog&lt;/em&gt;: vorige koppeling accentueren&lt;/li&gt;&lt;li&gt;&lt;em&gt;Pijl omlaag&lt;/em&gt;: volgende koppeling accentueren&lt;/li&gt;&lt;li&gt;&lt;em&gt;Pijl links&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: ga naar vorig onderwerp&lt;/li&gt;&lt;li&gt;&lt;em&gt;Pijl rechts&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Spatie&lt;/em&gt;: volg de koppeling&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: ga een pagina omhoog&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: ga een pagina omlaag&lt;/li&gt;&lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: ga naar paginabegin&lt;/li&gt;&lt;li&gt;&lt;em&gt;End&lt;/em&gt;: ga naar pagina-einde&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: verlaat de helpfunctie&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootnloptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Taal en toetsenbordindeling selecteren&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Druk op &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; om de taal en toetsenbordindeling van de bootloader te wijzigen.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootnlopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Kernelopties: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI (Advanced Configuration and Power Interface) is een standaard die interfaces voor energie- en configuratiebeheer tussen een besturingssysteem en de BIOS definieert. Standaard wordt &lt;em&gt;acpi&lt;/em&gt;ingeschakeld als een BIOS is gevonden die nieuwer is dan uit het jaar 2000. Er zijn diverse veelgebruikte parameters die het gedrag van ACPI bepalen: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- gebruik geen ACPI voor het routeren van PCI-interrupts&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- alleen de delen van ACPI die relevant zijn voor het opstarten blijven geactiveerd&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- schakel ACPI volledig uit&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- schakel ACPI in, ook als uw BIOS van voor 2000 is&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Vooral bij nieuwe computers, het vervangt het oude &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;-systeem.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootnlopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Kernelopties: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM is een van de twee energiebeheerstrategieën die gebruikt wordt op de huidige computers. Het wordt voornamelijk gebruikt bij laptops voor functies zoals slaapstand naar schijf, maar het kan ook verantwoordelijk zijn voor het uitschakelen van de computer nadat u deze heeft afgesloten. APM is afhankelijk van een correct werkend BIOS. Als een BIOS niet correct werkt, dan kan APM slechts gedeeltelijk werken of zelfs het functioneren van de computer belemmeren. Daarom kunt u het met deze parameter uitschakelen.&lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- schakel APM volledig uit&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Sommige zeer nieuwe computers hebben meer voordeel bij de nieuwere &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootnlopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Kernelopties: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;IDE wordt, in tegenstelling tot SCSI, algemeen gebruikt in de meeste desktopcomputers. Om hardwareproblemen die bij IDE-systemen kunnen voorkomen te omzeilen gebruikt u de parameter: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- DMA voor IDE-stations uitschakelen&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootnlopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Kernelopties: opstartscherm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Het opstartscherm is de afbeelding die getoond wordt tijdens de systeemstart. Deze wordt ook wel 'splash' genoemd. &lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- Het opstartscherm (splash) is uitgeschakeld. Deze optie is bedoeld voor zeer oude beeldschermen of als er zich een fout voordoet.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activeert het opstartscherm (splash), maar kernel- en opstartmeldingen worden nog steeds getoond.&lt;/li&gt;splash=silent -- Activeert het opstartscherm (splash) zonder verdere meldingen. In plaats daarvan wordt een voortgangsbalk getoond.&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootnloptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Profiel kiezen&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Druk op &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; om een profiel te selecteren. Uw systeem zal worden opgestart aan de hand van de configuratie die in dit profiel is opgeslagen.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootpanavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;&lt;a href=&quot;#foobar&quot;&gt;ਫੂਬਾਰ&lt;/a&gt; ਉੱਤੇ ਜਾਓ&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootpaopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;ਬੂਟ ਚੋਣ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- ਸਪਲੈਸ਼ ਸਕਰੀਨ ਦਾ ਰਵੱਈਆ ਪਰਭਾਵਿਤ ਕਰੋ&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- ਪਾਵਰ ਮੈਨੇਜ਼ਮਿੰਟ ਬਦਲੋ&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- ਐਂਡਵਾਂਸ ਕੰਨਫੀਗਰੇਸ਼ਨ ਐਂਡ ਪਾਵਰ ਇੰਟਰਫੇਸ&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- IDE ਸਬ-ਸਿਸਟਮ ਕੰਟਰੋਲ ਕਰੋ&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootpaopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;ਮੱਦਦ ਸਿਸਟਮ ਵਰਤੋਂ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;ਨੇਵੀਗੇਸ਼ਨ ਸਵਿੱਚਾਂ &lt;ul&gt;&lt;li&gt;&lt;em&gt;ਉੱਤੇ ਤੀਰ&lt;/em&gt;: ਪਿਛਲਾ ਲਿੰਕ ਹਾਈਲਾਈਟ&lt;/li&gt;&lt;li&gt;&lt;em&gt;ਹੇਠਾਂ ਤੀਰ&lt;/em&gt;: ਅੱਗੇ ਲਿੰਕ ਹਾਈਲਾਈਟ&lt;/li&gt;&lt;li&gt;&lt;em&gt;ਖੱਬੇ ਤੀਰ&lt;/em&gt;, &lt;em&gt;ਬੈਕਸਪੇਸ&lt;/em&gt;: ਪਿਛਲੇ ਵਿਸ਼ੇ ਉੱਤੇ ਵਾਪਿਸ&lt;/li&gt;&lt;li&gt;&lt;em&gt;ਸੱਜੇ ਤੀਰ&lt;/em&gt;, &lt;em&gt;ਐਂਟਰ&lt;/em&gt;, &lt;em&gt;ਸਪੇਸ&lt;/em&gt;: ਲਿੰਕ ਖੋਲ੍ਹੋ&lt;/li&gt;&lt;li&gt;&lt;em&gt;ਪੇਜ਼ ਅੱਪ&lt;/em&gt;: ਇੱਕ ਪੇਜ਼ ਉੱਤੇ ਜਾਓ&lt;/li&gt;&lt;li&gt;&lt;em&gt;ਪੇਜ਼ ਡਾਊਨ&lt;/em&gt;: ਇੱਕ ਪੇਜ਼ ਹੇਠਾਂ ਜਾਓ&lt;/li&gt;&lt;li&gt;&lt;em&gt;ਘਰ&lt;/em&gt;: ਪੇਜ਼ ਸ਼ੁਰੂ ਉੱਤੇ ਜਾਓ&lt;/li&gt;&lt;li&gt;&lt;em&gt;
+ ੰਤ&lt;/em&gt;: ਪੇਜ਼ ਅਖੀਰ ਉੱਤੇ ਜਾਓ&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: ਮੱਦਦ ਛੱਡੋ&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootpaoptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;ਭਾਸ਼ਾ ਅਤੇ ਕੀਬੋਰਡ ਲੇਆਉਟ ਚੋਣ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; ਬੂਟ ਲੋਡਰ ਵਰਤੋਂ ਲਈ ਭਾਸ਼ਾ ਅਤੇ ਕੀ-ਬੋਰਡ ਬਦਲਣ ਲਈ ਵਰਤੋਂ&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootpaopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,20 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;ਕਰਨਲ ਚੋਣਾਂ: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- ACPI ਦੇ ਭਾਗ, ਜੋ ਕਿ ਬੂਟਿੰਗ ਲਈ ਢੁੱਕਵੇਂ ਹਨ, ਹੀ ਐਕਟਿਵੇਟਡ ਰਹਿਣਗੇ&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- ਪੂਰੀ ਤਰ੍ਹਾਂ ACPI ਸਵਿੱਚ ਆਫ਼ ਕਰੋ&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- ਜੇ ਤੁਹਾਡਾ BIOS 2000 ਤੋਂ ਪੁਰਾਣਾ ਹੈ ਤਾਂ ਵੀ ACPI ਸਵਿੱਚ ਆਨ ਰੱਖੋ&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;ਖਾਸ ਤੌਰ ਉੱਤੇ ਨਵੇਂ ਕੰਪਿਊਟਰਾਂ ਉੱਤੇ, &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; ਸਿਸਟਮ ਨੂੰ ਬਦਲੋ।&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootpaopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;ਕਰਨਲ ਚੋਣਾਂ: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- ਪੂਰੀ ਤਰ੍ਹਾਂ ACPI ਸਵਿੱਚ ਆਫ਼ ਕਰੋ&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;ਕੁਝ ਬਹੁਤ ਹੀ ਨਵੇਂ ਕੰਪਿਊਟਰ, ਨਵੇਂ &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt; ਤੋਂ ਫਾਇਦਾ ਲੈ ਵੀ ਸਕਦੇ ਹਨ।&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootpaopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;ਕਰਨਲ ਚੋਣਾਂ: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; --IDE ਡਰਾਇਵਾਂ ਲਈ DMA ਸਵਿੱਚ ਆਫ਼ ਕਰੋ&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootpaopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;ਕਰਨਲ ਚੋਣਾਂ: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootpaoptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,8 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;ਪਰੋਫਾਇਲ ਚੁਣੋ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; to select a profile. Your system will be started using the
++configuration saved in this profile.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootplnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,3 @@
++&lt;p&gt;
++Return to &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootplopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Opcje uruchamiania&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootplopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Jak korzystać z systemu pomocy&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Strzałka 'w górę'&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Strzałka 'w dół'&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Strzałka 'w lewo'&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Strzałka 'w prawo'&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Spacja&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;End&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootploptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Wybór języka i klawiatury&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootplopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Opcje jądra: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=wyłączone&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootplopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Opcje jądra: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootplopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Opcje jądra: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootplopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Opcje jądra: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootploptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,8 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Wybierz profil&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; to select a profile. Your system will be started using the
++configuration saved in this profile.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootptnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Voltar para &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootptopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Opções de Arranque&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootptopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Utilizando o Sistema de Ajuda&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Seta para Cima&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Seta para Baixo&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Seta para a Esquerda&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Seta para a Direita&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Barra de Espaços&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;End&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootptoptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Selecção de Teclado e Idioma&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootptopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Opções de Kernel: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootptopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Opções de Kernel: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootptopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Opções de Kernel: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootptopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Opções de Kernel: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootptoptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,8 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Escolher Perfil&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; to select a profile. Your system will be started using the
++configuration saved in this profile.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootpt_BRnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Retornar a &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootpt_BRopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Opções de inicialização&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- influenciar o comportamento da tela de inicialização&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- alternar o gerenciamento de energia&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- interface avançada de configuração e energia&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- controlar o subsistema IDE&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootpt_BRopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Usando o sistema de ajuda&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;A ajuda online do carregador de inicialização é sensível ao contexto. Ela fornece informações sobre o item de menu selecionado ou se você estiver editando as opções de inicialização, ele tenta procurar informações sobre a opção em que o cursor está posicionado.&lt;/p&gt;
++
++&lt;p&gt;Teclas de navegação &lt;ul&gt;&lt;li&gt;&lt;em&gt;Seta para cima&lt;/em&gt;: realçar o link anterior&lt;/li&gt;&lt;li&gt;&lt;em&gt;Seta para baixo&lt;/em&gt;: realçar o próximo link&lt;/li&gt;&lt;li&gt;&lt;em&gt;Seta para a esquerda&lt;/em&gt;, &lt;em&gt;Tecla backspace&lt;/em&gt;: retornar ao tópico anterior&lt;/li&gt;&lt;li&gt;&lt;em&gt;Seta para a direita&lt;/em&gt;, &lt;em&gt;Tecla enter&lt;/em&gt;, &lt;em&gt;Tecla espaço&lt;/em&gt;: seguir o link&lt;/li&gt;&lt;li&gt;&lt;em&gt;Tecla page up&lt;/em&gt;: rolar uma página para cima&lt;/li&gt;&lt;li&gt;&lt;em&gt;Tecla page down&lt;/em&gt;: rolar uma página para baixo&lt;/li&gt;&lt;li&gt;&lt;em&gt;Tecla home&lt;/em&gt;: ir para o início da página&lt;/li&gt;&lt;li&gt;&lt;em&gt;Tecla end&lt;/em&gt;: ir para o final da página&lt;/li&gt;&lt;li&gt;&lt;em&gt;Tecla esc&lt;/em&gt;: sair da ajuda&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootpt_BRoptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Seleção de idioma e layout de teclado&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Pressione &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; para alterar o idioma e o layout de teclado usados pelo carregador de inicialização.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootpt_BRopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Opções do kernel: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;O ACPI (Advanced Configuration and Power Interface - Interface avançada de configuração e energia) é um padrão que define as interfaces de gerenciamento de configuração e energia entre o sistema operacional e a BIOS. Por padrão, &lt;em&gt;acpi&lt;/em&gt; é ativado quando é detectado uma BIOS mais recente do que o ano 2000. Há vários parâmetros normalmente usados para controlar o comportamento do ACPI: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- não usar o ACPI para rotear as interrupções PCI&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- apenas as partes da ACPI que são relevantes para a inicialização permanecem ativadas&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- desativar o ACPI completamente&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- ativar o ACPI mesmo que a BIOS tenha data anterior a 2000&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Especialmente em novos computadores, ele substitui o antigo sistema &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootpt_BRopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Opções do kernel: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;O APM é uma das duas estratégias de gerenciamento de energia usadas nos computadores atuais. Ele é usado principalmente com notebooks para funções como suspender para o disco, mas também pode ser responsável pela desativação do computador após uma queda de energia. O APM depende do correto funcionamento da BIOS. Se a BIOS estiver danificada, o APM pode ter seu uso limitado ou até pode impedir o funcionamento do computador. Portanto, ele pode ser desativado com o parâmetro &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- desativar o ACPI completamente&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Alguns computadores muito novos podem tirar mais proveito da &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt; mais recente.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootpt_BRopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Opções do kernel: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;O IDE é, diferente do SCSI, comumente utilizado na maioria das estações de trabalho. Para contornar alguns problemas de hardware que ocorrem com os sistemas IDE, use o parâmetro do kernel: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- desativar o DMA para unidades IDE&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootpt_BRopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Opções do kernel: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;A tela de inicialização é a imagem exibida durante a inicialização do sistema. &lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- A tela de inicialização é desativada. Isso poderá ser útil com monitores muito antigos ou se ocorrerem erros.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Ativa a tela de inicialização, as mensagens do kernel e de inicialização ainda são exibidas.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Ativa a tela de inicialização, mas sem exibir mensagens. Em vez disso é exibida uma barra de progresso.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootpt_BRoptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Escolher o perfil&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Pressione &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; para selecionar um perfil. Seu sistema será inicializado usando a configuração salva nesse perfil.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootronavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Înapoi la &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootroopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Opțiuni de bootare&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootroopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Modul de folosire al sistemului de ajutor&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Săgeată sus&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Săgeată jos&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Săgeată stânga&lt;/em&gt;, &lt;em&gt;Înapoi&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Săgeată dreapta&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Spațiu&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Pagină sus&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Pagină jos&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Acasă&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Sfârșit&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootrooptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Selecția limbii și a mapării de tastatură&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootroopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Opțiuni kernel: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootroopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Opțiuni kernel: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootroopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Opțiuni kernel: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootroopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Opținu kernel: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootrooptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,8 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Alegeți profilul&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; to select a profile. Your system will be started using the
++configuration saved in this profile.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootrunavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Возврат к &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootruopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Параметры загрузки&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;заставка&lt;/a&gt; -- влияет на поведение заставки&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- переключает управление питанием&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- усовершенствованный интерфейс конфигурирования системы и управления энергопитанием&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- управляет IDE подсистемой&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootruopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Использование системы справки&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ОнЛайновая справка загрузчика зависит от содержания. Она дает информацию по выбранному элементу меню или, если вы редактируете параметр загрузки, она пытается найти информацию о параметре на котором стоит курсор.&lt;/p&gt;
++
++&lt;p&gt;Кнопки управления &lt;ul&gt;&lt;li&gt;&lt;em&gt;Стрелка вверх&lt;/em&gt;: выделяет предыдущую ссылку&lt;/li&gt;&lt;li&gt;&lt;em&gt;Стрелка вниз&lt;/em&gt;: выделяет следующую ссылку&lt;/li&gt;&lt;li&gt;&lt;em&gt;Стрелка влево&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: вернуться к предыдущей главе&lt;/li&gt;&lt;li&gt;&lt;em&gt;Стрелка вправо&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Пробел&lt;/em&gt;: перейти по ссылке&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: пролистать одну странцу назад&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: пролистать одну страницу вперед&lt;/li&gt;&lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: перейти к началу страницы&lt;/li&gt;&lt;li&gt;&lt;em&gt;End&lt;/em&gt;: перейти к концу ст
+ раницы&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: выйти из помощи&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootruoptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Выбор языка и раскладки клавиатуры&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Нажмите &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; чтобы изменить язык и раскладку клавиатуры которую использует загрузчик.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootruopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Параметры ядра: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI (Усовершенствованный интерфейс конфигурирования системы и управления энергопитанием) эвляется стандартом которые определяет интерфейс управления питанием и конфигурацией между операционной системой и BIOS. По умолчанию, &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- не использовать ACPI для управления PCI прерываниями&lt;/li&gt; включен, если определяется, что версия BIOS датирована позднее чем 2000 г. Есть несколько общих параметров для управления поведением ACPI: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- не использовать ACPI для управления PCI прерываниями&lt;/li&gt;&lt;li&gt;&lt;em&g
+ t;acpi=oldboot&lt;/em&gt; -- только часть ACPI которая относиться к загрузке, остается активной&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- выключает полностью ACPI&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- включает ACPI даже если ваш BIOS датирован ранее чем 2000&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Особенно на новых компьютерах, заменяет старый &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; системы.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootruopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Параметры ядра: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM это одна из двух стратегий управлений питанием исполузуемых в настоящее время в компьютерах. Она в основном используется в лаптопах для функций таких как остановка диска, но она также может использоваться для отключения компьютера во время отключения питания. APM завист от правильной работы BIOS. Если BIOS не исправен, APM ограничено в применении или запретит работу компьютера. Однако, она может быть отключена со следующим параметром &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- выключает полностью ACPI&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Только некоторые очень новые компьютеры имеют преимущество перед другими &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootruopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Параметры ядра: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;IDE, в отличии от SCSI, обычно используется в большинстве рабочих станциях. Чтобы предотвратить некоторые проблемы с оборудованием которое случается с IDE системами, используйте параметр ядра: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- выключить DMA для IDE дисков&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootruopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Параметры ядра: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Заставка это картинка показываемая во время загрузки системы. &lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- Заставка отключена. Это может быть полезным со очень старыми мониторами или когда надо видеть ошибки на экране.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Активирует заставку, сообщения загрузки и ядра попрежнему показываны.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Активирует заставку, но без сообщений. Однако будет показ процесс выполнения.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootruoptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Выберите профиль&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Нажмите &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; чтобы выбрать профиль. Ваша система будет запущена используя конфигурацию сохраненную в этом профиле.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootsknavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,3 @@
++&lt;p&gt;
++Return to &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootskopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Možnosti štartu&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;Úvodná obrazovka&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootskopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Ako používať tohto pomocníka&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Šipka hore&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Šipka dolu&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Šipka vľavo&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Šipka vpravo&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Medzerník&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;kláves Page Up&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;kláves Page Down&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Domov&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;kláves End&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootskoptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Voľba jazyka a klávesnice&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootskopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Voľba jadra: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootskopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Voľba jadra: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootskopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Voľba jadra: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootskopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Voľby jadra: úvodná obrazovka&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootskoptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,8 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Zvoliť profil&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; to select a profile. Your system will be started using the
++configuration saved in this profile.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootsvnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Återgå till &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootsvopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Startalternativ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;startskärm&lt;/a&gt; -- påverka startskärmens uppträdande&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- växla strömsparfunktioner&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- avancerat inställnings- och strömhanteringsgränssnitt&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- hantera IDE-undersystemet&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootsvopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Att använda hjälpsystemet&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Direkthjälpen för starthanteraren är sammanhangskänslig. Den innehåller information om det valda menyalternativet eller, om du redigerar startalternativ, söker efter information om det alternativ där markören befinner sig.&lt;/p&gt;
++
++&lt;p&gt;Navigationstangenter &lt;ul&gt;&lt;li&gt;&lt;em&gt;Uppåtpil&lt;/em&gt;: färglägg föregående länk&lt;/li&gt;&lt;li&gt;&lt;em&gt;Neråtpil&lt;/em&gt;: färglägg nästa länk&lt;/li&gt;&lt;li&gt;&lt;em&gt;Vänsterpil&lt;/em&gt;, &lt;em&gt;Backsteg&lt;/em&gt;: återgå till föregående ämne&lt;/li&gt;&lt;li&gt;&lt;em&gt;Högerpil&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Mellanslag&lt;/em&gt;: följ länk&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: rulla upp en sida&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: rulla ner en sida&lt;/li&gt;&lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: gå till sidans början&lt;/li&gt;&lt;li&gt;&lt;em&gt;End&lt;/em&gt;: gå till sidans slut&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: lämna hjälpen&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootsvoptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Val av språk och tangentbordslayout&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Tryck på &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; för att ändra språket och tangentbordslayouten som starthanteraren ska använda.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootsvopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Kärnalternativ: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI (Advanced Configuration and Power Interface) är en standard som definierar gränssnitt för ström- och inställningshantering mellan operativsystemet och BIOS. Som standard aktiveras &lt;em&gt;acpi&lt;/em&gt; när ett BIOS som är tillverkat efter år 2000 upptäcks. Det finns flera vanliga parametrar som styr ACPI:s beteende: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- använd inte ACPI för att hantera PCI-avbrottsförfrågningar&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- bara delarna av ACPI som är relevanta för uppstart kommer vara aktiverade&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=av&lt;/em&gt; -- stäng av ACPI helt&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=tvinga&lt;/em&gt; -- sätt på ACPI även om ditt BIOS är tillverkat före 2000&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Speciellt på nyare datorer ersätter den det gamla &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;-systemet.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootsvopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Kärnalternativ: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM är en av två strömsparstrategier som används på dagens datorer. APM används oftast på bärbara datorer för funktioner som vänteläge, men kan också hantera avstängning av datorn efter att strömbrytaren tryckts ned. För att APM ska fungera krävs ett korrekt fungerande BIOS. Om BIOS är felaktig kan APM ha en begränsad funktionalitet och kan till och med hindra datorn från att fungera som den ska. Den kan därför stängas av med parametern&lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=av&lt;/em&gt; -- stäng av APM helt&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;På vissa nya datorer kan det vara lämpligare att använda de senare &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootsvopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Kärnalternativ: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Till skillnad mot SCSI används IDE på de flesta skrivbordsdatorer. För att kringgå vissa maskinvaruproblem som uppstår med IDE-system använder du följande kärnparameter: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- stäng av DMA för IDE-enheter&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootsvopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Kärnalternativ: startskärm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Startskärmen är bilden som visas när systemet startar.&lt;ul&gt;&lt;li&gt;&lt;em&gt;startskärm=0&lt;/em&gt; -- Startskärmen är avstängd. Detta kan vara praktiskt på äldre bildskärmar eller om fel uppstår.&lt;/li&gt;&lt;li&gt;&lt;em&gt;startskärm=utförlig&lt;/em&gt; -- Aktiverar startskärmar. Kärn- och startmeddelanden visas fortfarande.&lt;/li&gt;&lt;li&gt;&lt;em&gt;startskärm=tyst&lt;/em&gt; -- Aktiverar startskärm, men inga meddelanden. Istället visas ett fortskridandefält.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootsvoptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Välj profil&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Tryck på &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; för att välja en profil. Datorn startas med den konfiguration som sparats i den valda profilen.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootuknavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Повернутись до &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootukopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Параметри завантаження&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;заставка&lt;/a&gt; -- керування поведінкою заставки&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; — перемикання керування живленням&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; — інтерфейс розширеного налаштування та керування живленням&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; — керування підсистемою IDE&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootukopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Використання системи довідки&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Довідка завантажувача реагує на контекст. Вона надає інформацію про вибраний елемент меню або, якщо ви редагуєте параметри завантаження, вона намагається знайти інформацію про параметр, над яким знаходиться курсор.&lt;/p&gt;
++
++&lt;p&gt;Ключі навігації &lt;ul&gt;&lt;li&gt;&lt;em&gt;Стрілка вгору&lt;/em&gt;: підсвітити попереднє посилання&lt;/li&gt;&lt;li&gt;&lt;em&gt;Стрілка вниз&lt;/em&gt;: підсвітити наступне посилання&lt;/li&gt;&lt;li&gt;&lt;em&gt;Стрілка ліворуч&lt;/em&gt;, &lt;em&gt;Назад&lt;/em&gt;: повернутись до попередньої теми&lt;/li&gt;&lt;li&gt;&lt;em&gt;Стрілка праворуч&lt;/em&gt;, &lt;em&gt;Ввід (Enter)&lt;/em&gt;, &lt;em&gt;Пробіл&lt;/em&gt;: перейти за посиланням&lt;/li&gt;&lt;li&gt;&lt;em&gt;Сторінка вгору&lt;/em&gt;: прокрутити сторінку вгору&lt;/li&gt;&lt;li&gt;&lt;em&gt;Сторінка вниз&lt;/em&gt;: прокрутити сторінку вниз&lt;/li&gt;&lt;li&gt;&lt;em&gt;Домівка&lt;/em&gt;: перейти до початку сторінки&lt;
+ /li&gt;&lt;li&gt;&lt;em&gt;Кінець&lt;/em&gt;: перейти до кінця сторінки&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: вийти з довідки&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootukoptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Вибір мови та розкладки клавіатури&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Натисніть &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt;, щоб змінити мову та розкладку клавіатури, які використовує завантажувач.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootukopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Параметри ядра: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI (Advanced Configuration and Power Interface) — це стандарт, яким визначаються інтерфейси керування живленням та налаштуванням між операційною системою і BIOS. Типово, &lt;em&gt;acpi&lt;/em&gt; вмикається, коли виявлено BIOS датований після 2000 року. Є декілька загальновживаних параметрів для керування поведінкою ACPI: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- не використовувати ACPI для перенаправлення перепинів PCI&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- тільки частини ACPI, які стосуються завантаження, залишаться активованими&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; — цілком вимкнути ACPI&lt;/li&gt;&lt;li&gt;
+ &lt;em&gt;acpi=force&lt;/em&gt; — увімкнути ACPI, навіть якщо ваш BIOS створено до 2000 року&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Особливо на нових комп'ютерах, вона замінює стару систему &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootukopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Параметри ядра: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM — це одна з двох стратегій керування живленням, які застосовуються в сучасних комп'ютерах. Зазвичай, вона використовується в лептопах для таких функцій, як режим сну зі збереженням на диск, але також може вживатись для вимикання комп'ютера після знеструмлення. APM покладається на правильне функціонування BIOS. Якщо щось у BIOS не гаразд, APM, можливо, матиме тільки обмежене використання, або, навіть, перешкоджатими правильному функціонуванню комп'ютера. Тому, його можна вимкнути параметром &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; — цілком вимкнути
+ APM&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Деякі найновіші комп'ютери можуть мати користь з новішого &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootukopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Параметри ядра: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;На відміну від SCSI, IDE найчастіше зустрічається в більшості стільничних робочих станцій. Щоб обійти деякі проблеми в обладнанні, скористайтесь параметром ядра: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt;— вимкнути DMA для IDE-приводів&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootukopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Параметри ядра: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Заставка екрана — це малюнок, який показується під час запуску системи. &lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; — Показ заставки вимкнено. Може придатись для дуже старих моніторів або, якщо виникає якась помилка.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; — Активує заставку, але буде показано повідомлення ядра та завантаження.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; — Активує заставку, але замість повідомлень показується смужка поступу.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootukoptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Виберіть профіль&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Натисніть &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt;, щоб вибрати профіль. Вашу систему буде запущено з використанням налаштування, збереженого в цьому профілі.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootwanavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,3 @@
++&lt;p&gt;
++Return to &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootwaopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Tchuzes d' enondaedje sistinme&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;waitroûle d' enondaedje&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootwaopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Eployî sistinme d' aidance&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Fletche viè l' hôt&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Fletche viè l' bas&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Hintche fletche&lt;/em&gt;, &lt;em&gt;Backspace (en erî)&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Droete fletche&lt;/em&gt;, &lt;em&gt;Intrêye&lt;/em&gt;, &lt;em&gt;Espåce&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Måjhon&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;End&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootwaoptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Tchoes do lingaedje eyet di adjinçmint del taprece&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootwaopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Tchuzes do nawea: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=dismetou&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=foirci&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootwaopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Tchuzes do nawea: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=dismetou&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootwaopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Tchuzes do nawea: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootwaopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Tchuzes do nawea: waitroûle d' enondaedje&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;waitroûle d' enondaedje=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;waitroûle d' enondaedje=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;waitroûle d' enondaedje=sins motî&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootwaoptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,8 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Tchoezi profil&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; to select a profile. Your system will be started using the
++configuration saved in this profile.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootxhnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Buyela &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootxhopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Izikhethwa Zomiselo Lwenkqubo&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;tshiza&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;i-apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;i-acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;i-ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootxhopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Kusetyenziswa Isixokelelwano Soncedo&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Isalathi-phezulu&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Isalathi-ezantsi&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Isalathi-ekhohlo&lt;/em&gt;, &lt;em&gt;Emva ngesithuba&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Isalathi-kunene&lt;/em&gt;, &lt;em&gt;Ngenisa&lt;/em&gt;, &lt;em&gt;Isithuba&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Tyhila Phezulu&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Tyhila Ezantsi&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Ekhaya&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Isiphelo&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Baleka&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootxhoptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Ulwimi Nokukhethwayo Kokumisa kakuhle Ibhodi Yamaqhosha&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootxhopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Izikhethwa ze-Kernel: i-acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;i-acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;i-pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;i-acpi=umiselolwakudala&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;i-acpi=imo yokungasebenzi&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;i-acpi=yonyanzelo&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;i-apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootxhopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Izikhethwa ze-Kernel: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;i-apm=imo yokungasebenzi&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;i-ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootxhopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Izikhethwa ze-Kernel: i-ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;i-ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootxhopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Izikhethwa ze-Kernel: tshiza&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;tshiza-0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;tshiza=umlembelele&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;tshiza=ngokuthula&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootxhoptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,8 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Khetha Inkangeleko Yecala&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; to select a profile. Your system will be started using the
++configuration saved in this profile.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootzh_CNnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;返回 &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootzh_CNopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;引导选项&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootzh_CNopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;使用帮助系统&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;向上箭头&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;向下箭头&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;向左箭头&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;向右箭头&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Space&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;End&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootzh_CNoptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;语言和键盘布局选择&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootzh_CNopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;内核选项:acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootzh_CNopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;内核选项:apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootzh_CNopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;内核选项:ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootzh_CNopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;内核选项:splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootzh_CNoptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,8 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;选择配置文件&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; to select a profile. Your system will be started using the
++configuration saved in this profile.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootzh_TWnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;返回 &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootzh_TWopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;開機選項&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;開頭顯示畫面&lt;/a&gt; -- 影響開機顯示畫面的行為&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;APM&lt;/a&gt; -- 切換電源管理&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt; -- 進階組態和電源界面&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;IDE&lt;/a&gt; -- 控制 IDE 子系統&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootzh_TWopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;使用說明系統&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;開機載入器線上說明為智慧型關聯式,它會根據選取的功能表項目來提供資訊,或者,如果您正在編輯開機選項,則它會嘗試查詢游標所在處選項的資訊。&lt;/p&gt;
++
++&lt;p&gt;瀏覽鍵 &lt;ul&gt;&lt;li&gt;&lt;em&gt;向上箭號&lt;/em&gt;: 反白上一個連結&lt;/li&gt;&lt;li&gt;&lt;em&gt;向下箭號&lt;/em&gt;: 反白下一個連結&lt;/li&gt;&lt;li&gt;&lt;em&gt;向左箭號&lt;/em&gt;, &lt;em&gt;退格鍵&lt;/em&gt;:返回上一個主題&lt;/li&gt;&lt;li&gt;&lt;em&gt;向右箭號&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;空格&lt;/em&gt;:跟隨連結&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: 向上捲動一頁&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: 向下捲動一頁&lt;/li&gt;&lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: 移至頁首&lt;/li&gt;&lt;li&gt;&lt;em&gt;End&lt;/em&gt;: 移至頁底&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: 離開說明&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootzh_TWoptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;語言和鍵盤配置選項&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;按下 &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; 以變更開機載入器使用的語言和鍵盤配置。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootzh_TWopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;核心選項:ACPI&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI (Advanced Configuration and Power Interface) 是一種標準,用來定義作業系統和 BIOS 之間的電源和組態管理界面。依預設值,&lt;em&gt;ACPI&lt;/em&gt;當偵測到 BIOS 比 2000 年新時,便會開啟。有數個常用的參數可控制 ACPI 的行為: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- 不要使用 ACPI 安排 PCI 中斷&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- 只有部分與開機有關的 ACPI 會維持已啟動&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- 開啟 ACPI,即使您的 BIOS 日期早於 2000 年&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;尤其是在新的電腦上,它會取代舊的 &lt;a href=&quot;#o_apm&quot;&gt;APM&lt;/a&gt; 系統。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootzh_TWopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;核心選項:APM&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;在目前電腦上使用的電源管理策略有兩種,APM 是其中一種。它主要是用於筆記型電腦,以提供如暫停磁碟等功能,但它也會在電源中斷後負責關閉電腦。APM 依賴正確運作的 BIOS。如果 BIOS 壞了,APM 只會限制使用電腦作業,甚或是阻止作業。因此,可使用參數 關閉 APM。 &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- 完全關閉 ACPI&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;一些非常新的電腦常能從新的得到更多好處 &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootzh_TWopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;核心選項:IDE&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;IDE 和 SCSI 不同,一般用於大部分的桌上型工作站上。若要避開一些 IDE 系統所發生的硬體問題,請使用核心參數: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- 關閉 IDE 磁碟機的 DMA&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootzh_TWopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;核心選項:開頭顯示畫面&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;開機顯示畫面是在系統啟動期間顯示的圖片。 &lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- 關閉開機顯示畫面。這對於非常舊的監視器或是當發生一些錯誤時,非常有用。&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- 啟動開機顯示畫面,且仍會顯示核心和開機訊息。&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- 啟動開機顯示畫面,但未顯示訊息,而是顯示進度條。&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootzh_TWoptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;選擇設定檔&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;按下 &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; 以選取設定檔。您的系統會使用儲存在此設定檔中的組態來啟動。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallMakefile">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/Makefile</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/Makefile (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/Makefile 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,20 @@
++BINDIR = $(shell [ -x ../../../gfxboot ] &amp;&amp; echo ../../../ )
++GFXBOOT = $(BINDIR)gfxboot
++PRODUCT = $(shell perl -ne 'print if s/^product=//' ../config)
++HELPFILES = $(addsuffix .hlp, $(shell for i in * ; do [ -d $$i ] &amp;&amp; echo $$i ; done))
++
++HELPSRC = main*
++HELPNAVI = navi
++ENTITIES = product='$(PRODUCT)' fkey_help=F1 fkey_lang=F2 fkey_video=F3 fkey_inst=F4 fkey_dud=F6
++
++%.hlp: %
++ $(GFXBOOT) --help-create $@ --define $(ENTITIES) --navi $&lt;/$(HELPNAVI).html $&lt;/$(HELPSRC).html || true
++
++all: .ready
++
++.ready: $(HELPFILES)
++ @touch .ready
++
++clean:
++ rm -f .ready *.hlp *~
++
+
+
+Property changes on: theme/trunk/mageia-gfxboot-theme/trunk/help-install/Makefile
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallafmainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,103 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;Selflaaiprogramhulp&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Welcome to &lt;em&gt;@@@product@@@&lt;/em&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this menu to select the desired function. If you have
++problems navigating in this help system, press
++&lt;em&gt;@@@fkey_help@@@&lt;/em&gt; to enter the &lt;a href=&quot;#help&quot;&gt;beskrywing&lt;/a&gt; of the help
++system. The main functions in this menu are:
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#harddisk&quot;&gt;Selflaai vanaf harde skyf&lt;/a&gt;: This selection will not do
++anything to the system. It only starts a previously installed
++operating system.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#linux&quot;&gt;Installasie&lt;/a&gt;:
++This installation mode works on most machines. If you experience a
++system freeze during boot or problems with detection of your hardware
++components, such as disk controllers or network cards, try one of the
++following installation options.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#noacpi&quot;&gt;Installasie -- ACPI-versper&lt;/a&gt;: Many of the
++currently-sold computers have incomplete or faulty ACPI
++implementations. This selection disables ACPI support in the
++kernel, but still enables many performance features, like DMA for IDE
++hard disks.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#nolapic&quot;&gt;Installasie -- plaaslike APIC-versper&lt;/a&gt;:
++If the normal installation fails, this might be due to the
++system hardware not supporting local APIC.
++If this seems to be the case, use this option to
++install without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#failsafe&quot;&gt;Installasie -- veilige instellings&lt;/a&gt;: If you were not
++successful with &lt;em&gt;Installasie&lt;/em&gt;, this selection might
++solve the issue.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#rescue&quot;&gt;Reddingstelsel&lt;/a&gt;: This boot image starts a small
++Linux system in RAM. This is useful if the system does not start properly.
++After booting this system, log in as root.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#firmware&quot;&gt;Firmatuurtoets&lt;/a&gt;: Runs a BIOS test tool that validates
++ACPI and other parts of your BIOS.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#memtest&quot;&gt;Geheuetoets&lt;/a&gt;: Memory testing is useful for more than
++checking installation of new memory modules. It is a stress test
++for a big part of your computer system and may indicate hardware
++problems.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#opt&quot;&gt;Selflaai-opsies&lt;/a&gt;: The boot options may change the
++behavior of your system completely. They are settings for
++the kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Help&lt;/a&gt;: This is context sensitive. It will
++show different screens depending on the active element of the
++boot screen. There is also a description of this help system
++available.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Set language and keyboard mapping
++used by the boot loader.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Video Mode&lt;/a&gt;: Here, choose between
++different screen resolutions while installing. If you encounter
++problems with the graphical installation, the &lt;em&gt;teksmodus&lt;/em&gt; may
++be a work-around for you.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Installation Source&lt;/a&gt;: Choose the
++installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Driver Update&lt;/a&gt;: For very new machines, a
++driver update may be needed to install the system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallafmainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;Sagtewaresoortkeuse&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++You have the choice to install the 32-bit or 64-bit version of @@@product@@@.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallafmaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;Aandrywerbywerking&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++If you need a driver update floppy or CD-ROM, press &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. The
++boot loader asks you to insert the driver update medium after
++loading the Linux kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++A driver update is typically a floppy with new versions of hardware
++drivers or bug fixes needed during installation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallafmainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,11 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;Installasie -- veilige instellings&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Installasie -- veilige instellings&lt;/em&gt; if you encounter hangs
++while installing or irreproducible errors. This option disables DMA
++for IDE drives and all power management features.
++See also the kernel options for &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;,
++&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; and &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallafmainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;Firmatuurtoets&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Starts a BIOS checker that validates the ACPI tables
++and many other parts of your BIOS.
++Test results can be stored on usb disk or saved via network.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallafmainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,16 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;Selflaai vanaf harde skyf&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Selflaai-geïnstalleerde OS&lt;/em&gt; to start the system installed on
++your local hard disk. This system must be installed properly, because
++only the MBR (Master Boot Record) on the first hard disk is started.
++The device ID of the first hard disk is provided by the BIOS of
++the computer.
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this if you forgot to remove the CD or DVD from your
++drive and want to start the computer from the hard disk.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallafmainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Gebruik van die Hulpstelsel&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Op-pyl&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Af-pyl&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Links-pyl&lt;/em&gt;, &lt;em&gt;Terugspasie&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Regs-pyl&lt;/em&gt;, &lt;em&gt;Voer in&lt;/em&gt;, &lt;em&gt;Spasie&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Bladsy op&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Bladsy af&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Tuis&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Eindig&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Ontsnap&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallafmaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;Installasiebron&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; to choose an installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++This is the same as using the &lt;a href=&quot;#o_install&quot;&gt;installeer&lt;/a&gt;
++boot option.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallafmainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Taal- en sleutelborduitlegkeuse&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallafmainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;Installasie&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Installasie&lt;/em&gt; to start the default installation. The
++&lt;a href=&quot;#opt&quot;&gt;selflaai-opsies&lt;/a&gt; entered are used in the
++start-up. This item activates many features of commonly available
++hardware.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallafmainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;Geheuetoets&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The included &lt;em&gt;Geheuetoets&lt;/em&gt; provides good possibilities to
++stress test the hardware of a system. Its main purpose is to detect
++broken RAM, but it also stresses many other parts of the system.
++&lt;/p&gt;
++
++&lt;p&gt;
++There is no guarantee that the memory is good if no errors are
++found, although most of memory defects will be found.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallafmainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,24 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;Installasie -- ACPI-versper&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Current hardware usually requires ACPI (Advanced Configuration and Power Interface)
++to control the interrupt handling.
++ACPI completely replaces the old APM system.
++&lt;/p&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Installasie -- ACPI-versper&lt;/em&gt; if you encounter
++problems during boot of the kernel. Known problems with machines that
++have problems with ACPI are:
++&lt;ul&gt;
++ &lt;li&gt;kernel freezes when booting&lt;/li&gt;
++ &lt;li&gt;PCI Cards are not detected or initialized properly&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++You may also try the &lt;a href=&quot;#firmware&quot;&gt;Firmatuurtoets&lt;/a&gt; boot option
++and look at the test results of the ACPI validation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallafmainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;Installasie -- plaaslike APIC-versper&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Normally there are no problems with the APIC (Advanced Programmable Interrupt
++Controller). But if you seem to have some, try this option to boot
++without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++Please don't confuse this with &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt;
++(Advanced Configuration and Power Interface).
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallafmainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,28 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Selflaai-opsies&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++There are two types of boot options available. First, there are
++options that affect the installer. Second, there are kernel
++options. Some of the more common options are:
++&lt;/p&gt;
++
++&lt;p&gt;
++a) installer options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;installeer&lt;/a&gt; -- select an installation source&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#network&quot;&gt;netwerk-opsies&lt;/a&gt; -- the network options&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;vnc-opsies&lt;/a&gt; -- options for installation via VNC&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++b) kernel options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splat&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallafmainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;Installeerderopsies: Netwerkopsies&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++It is possible to configure the network interface right now. The
++hardware will be detected later by YaST2. The minimum set of options
++to configure your network card consists of host IP and netmask. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;gasheerip=192.168.0.10 netmasker=255.255.255.0&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++or in a shorter form:
++&lt;ul&gt;
++ &lt;li&gt;gasheerip=192.168.0.10/24&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++If you specified a &lt;a href=&quot;#o_install&quot;&gt;netwerkgebaseerde installering&lt;/a&gt; and do
++not specify both of these options, the installer tries to configure
++the network interface with &lt;em&gt;dhcp&lt;/em&gt;. If you need a default
++gateway, specify this with the option &lt;em&gt;deurgang&lt;/em&gt;. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;deurgang=192.168.0.8&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallafmainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Kernopsies: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=ouselflaai&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=af&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=dwang&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallafmainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Kernopsies: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=af&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallafmainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Kernopsies: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=geendma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallafmainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,30 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;Installeerderopsies: installeer&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++By default, the local CD-ROMs are searched for the installation source.
++For a network install, select the
++&lt;em&gt;installeer&lt;/em&gt; option. Possible installation protocols are
++&lt;ul&gt;
++ &lt;li&gt;FTP&lt;/li&gt;
++ &lt;li&gt;NFS&lt;/li&gt;
++ &lt;li&gt;HTTP&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The syntax to use is just like standard URLs. For example,
++if your server is found at 192.168.0.1 and you want to do an NFS-based
++install from the directory /install on this server, specify
++the source as follows:
++&lt;ul&gt;
++ &lt;li&gt;installeer=nfs://192.168.0.1/installeer&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The network card will either be configured with &lt;em&gt;dhcp&lt;/em&gt; or you
++must specify the parameters yourself as described in the
++&lt;a href=&quot;#network&quot;&gt;netwerk-opsies&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallafmainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Kernopsies: splat&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splat=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splat=woordryk&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splat=stil&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallafmainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;Installeerderopsies: vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++To enable the VNC installation, specify the
++parameters vnc and vncpassword:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;vnc=1 vncwagwoord=voorbeeld&lt;/em&gt;&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The VNC server will be started and you may control YaST2 over any VNC
++client from a remote system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallafmainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;Reddingstelsel&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The &lt;em&gt;Reddingstelsel&lt;/em&gt; is a small RAM disk base system. From there,
++it is possible to make all kinds of changes to an installed system. Because
++only low-level tools are available in this system, it is intended for
++experts.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallafmainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;Videomoduskeuse&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; to get the list of video modes your graphics card
++supports. The highest mode your monitor can display is preselected.
++&lt;/p&gt;
++
++&lt;p&gt;
++It is possible that your monitor cannot be detected automatically. In that
++case, select your preferred mode manually.
++&lt;/p&gt;
++
++&lt;p&gt;
++If your system has problems with the graphics card during the
++installation, the &lt;em&gt;teksmodus&lt;/em&gt; may be a usable work-around.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallafnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Gaan terug na &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallarmainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,103 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;تعليمات أداة تحميل التشغيل&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Welcome to &lt;em&gt;@@@product@@@&lt;/em&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this menu to select the desired function. If you have
++problems navigating in this help system, press
++&lt;em&gt;@@@fkey_help@@@&lt;/em&gt; to enter the &lt;a href=&quot;#help&quot;&gt;الوصف&lt;/a&gt; of the help
++system. The main functions in this menu are:
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#harddisk&quot;&gt;تشغيل من القرص الصلب&lt;/a&gt;: This selection will not do
++anything to the system. It only starts a previously installed
++operating system.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#linux&quot;&gt;التثبيت&lt;/a&gt;:
++This installation mode works on most machines. If you experience a
++system freeze during boot or problems with detection of your hardware
++components, such as disk controllers or network cards, try one of the
++following installation options.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#noacpi&quot;&gt;تثبيت--ACPI معطلة&lt;/a&gt;: Many of the
++currently-sold computers have incomplete or faulty ACPI
++implementations. This selection disables ACPI support in the
++kernel, but still enables many performance features, like DMA for IDE
++hard disks.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#nolapic&quot;&gt;تثبيت--APIC المحلي معطَّل&lt;/a&gt;:
++If the normal installation fails, this might be due to the
++system hardware not supporting local APIC.
++If this seems to be the case, use this option to
++install without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#failsafe&quot;&gt;تثبيت--إعدادات آمنة&lt;/a&gt;: If you were not
++successful with &lt;em&gt;التثبيت&lt;/em&gt;, this selection might
++solve the issue.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#rescue&quot;&gt;نظام الإنقاذ&lt;/a&gt;: This boot image starts a small
++Linux system in RAM. This is useful if the system does not start properly.
++After booting this system, log in as root.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#firmware&quot;&gt;اختبار البرنامج الثابت&lt;/a&gt;: Runs a BIOS test tool that validates
++ACPI and other parts of your BIOS.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#memtest&quot;&gt;اختبار الذاكرة&lt;/a&gt;: Memory testing is useful for more than
++checking installation of new memory modules. It is a stress test
++for a big part of your computer system and may indicate hardware
++problems.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#opt&quot;&gt;خيارات التشغيل&lt;/a&gt;: The boot options may change the
++behavior of your system completely. They are settings for
++the kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Help&lt;/a&gt;: This is context sensitive. It will
++show different screens depending on the active element of the
++boot screen. There is also a description of this help system
++available.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Set language and keyboard mapping
++used by the boot loader.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Video Mode&lt;/a&gt;: Here, choose between
++different screen resolutions while installing. If you encounter
++problems with the graphical installation, the &lt;em&gt;وضع النص&lt;/em&gt; may
++be a work-around for you.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Installation Source&lt;/a&gt;: Choose the
++installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Driver Update&lt;/a&gt;: For very new machines, a
++driver update may be needed to install the system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallarmainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;تحديد نوع البرنامج&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++You have the choice to install the 32-bit or 64-bit version of @@@product@@@.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallarmaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;تحديث برنامج التشغيل&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++If you need a driver update floppy or CD-ROM, press &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. The
++boot loader asks you to insert the driver update medium after
++loading the Linux kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++A driver update is typically a floppy with new versions of hardware
++drivers or bug fixes needed during installation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallarmainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,11 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;تثبيت--إعدادات آمنة&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;تثبيت--إعدادات آمنة&lt;/em&gt; if you encounter hangs
++while installing or irreproducible errors. This option disables DMA
++for IDE drives and all power management features.
++See also the kernel options for &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;,
++&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; and &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallarmainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;اختبار البرنامج الثابت&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Starts a BIOS checker that validates the ACPI tables
++and many other parts of your BIOS.
++Test results can be stored on usb disk or saved via network.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallarmainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,16 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;تشغيل من القرص الصلب&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;تشغيل نظام التشغيل المثبَّت&lt;/em&gt; to start the system installed on
++your local hard disk. This system must be installed properly, because
++only the MBR (Master Boot Record) on the first hard disk is started.
++The device ID of the first hard disk is provided by the BIOS of
++the computer.
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this if you forgot to remove the CD or DVD from your
++drive and want to start the computer from the hard disk.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallarmainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;استخدام نظام التعليمات&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;سهم لأعلى&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;سهم لأسفل&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;سهم لليسار&lt;/em&gt;, &lt;em&gt;مسافة للخلف&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;سهم لليمين&lt;/em&gt;, &lt;em&gt;مفتاح الإدخال&lt;/em&gt;, &lt;em&gt;مسافة&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;المنزل&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;End&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;خروج&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallarmaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;مصدر التثبيت&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; to choose an installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++This is the same as using the &lt;a href=&quot;#o_install&quot;&gt;تثبيت&lt;/a&gt;
++boot option.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallarmainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;تحديد اللغة وتخطيط لوحة المفاتيح&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallarmainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;التثبيت&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;التثبيت&lt;/em&gt; to start the default installation. The
++&lt;a href=&quot;#opt&quot;&gt;خيارات التشغيل&lt;/a&gt; entered are used in the
++start-up. This item activates many features of commonly available
++hardware.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallarmainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;اختبار الذاكرة&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The included &lt;em&gt;اختبار الذاكرة&lt;/em&gt; provides good possibilities to
++stress test the hardware of a system. Its main purpose is to detect
++broken RAM, but it also stresses many other parts of the system.
++&lt;/p&gt;
++
++&lt;p&gt;
++There is no guarantee that the memory is good if no errors are
++found, although most of memory defects will be found.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallarmainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,24 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;تثبيت--ACPI معطلة&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Current hardware usually requires ACPI (Advanced Configuration and Power Interface)
++to control the interrupt handling.
++ACPI completely replaces the old APM system.
++&lt;/p&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;تثبيت--ACPI معطلة&lt;/em&gt; if you encounter
++problems during boot of the kernel. Known problems with machines that
++have problems with ACPI are:
++&lt;ul&gt;
++ &lt;li&gt;kernel freezes when booting&lt;/li&gt;
++ &lt;li&gt;PCI Cards are not detected or initialized properly&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++You may also try the &lt;a href=&quot;#firmware&quot;&gt;اختبار البرنامج الثابت&lt;/a&gt; boot option
++and look at the test results of the ACPI validation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallarmainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;تثبيت--APIC المحلي معطَّل&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Normally there are no problems with the APIC (Advanced Programmable Interrupt
++Controller). But if you seem to have some, try this option to boot
++without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++Please don't confuse this with &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt;
++(Advanced Configuration and Power Interface).
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallarmainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,28 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;خيارات التشغيل&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++There are two types of boot options available. First, there are
++options that affect the installer. Second, there are kernel
++options. Some of the more common options are:
++&lt;/p&gt;
++
++&lt;p&gt;
++a) installer options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;تثبيت&lt;/a&gt; -- select an installation source&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#network&quot;&gt;خيارات الشبكة&lt;/a&gt; -- the network options&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;خيارات vnc&lt;/a&gt; -- options for installation via VNC&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++b) kernel options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;شاشة بداية التشغيل&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallarmainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;خيارات المثبِّت: خيارات الشبكة&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++It is possible to configure the network interface right now. The
++hardware will be detected later by YaST2. The minimum set of options
++to configure your network card consists of host IP and netmask. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++or in a shorter form:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++If you specified a &lt;a href=&quot;#o_install&quot;&gt;تثبيت مستند إلى الشبكة&lt;/a&gt; and do
++not specify both of these options, the installer tries to configure
++the network interface with &lt;em&gt;dhcp&lt;/em&gt;. If you need a default
++gateway, specify this with the option &lt;em&gt;البوابة&lt;/em&gt;. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;gateway=192.168.0.8&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallarmainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;خيارات Kernel: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallarmainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;خيارات Kernel: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallarmainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;خيارات Kernel: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallarmainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,30 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;خيارات المثبِّت: تثبيت&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++By default, the local CD-ROMs are searched for the installation source.
++For a network install, select the
++&lt;em&gt;تثبيت&lt;/em&gt; option. Possible installation protocols are
++&lt;ul&gt;
++ &lt;li&gt;FTP&lt;/li&gt;
++ &lt;li&gt;NFS&lt;/li&gt;
++ &lt;li&gt;HTTP&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The syntax to use is just like standard URLs. For example,
++if your server is found at 192.168.0.1 and you want to do an NFS-based
++install from the directory /install on this server, specify
++the source as follows:
++&lt;ul&gt;
++ &lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The network card will either be configured with &lt;em&gt;dhcp&lt;/em&gt; or you
++must specify the parameters yourself as described in the
++&lt;a href=&quot;#network&quot;&gt;خيارات الشبكة&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallarmainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;خيارات Kernel: شاشة بداية التشغيل&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallarmainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;خيارات المثبِّت: vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++To enable the VNC installation, specify the
++parameters vnc and vncpassword:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;vnc=1 vncpassword=example&lt;/em&gt;&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The VNC server will be started and you may control YaST2 over any VNC
++client from a remote system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallarmainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;نظام الإنقاذ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The &lt;em&gt;نظام الإنقاذ&lt;/em&gt; is a small RAM disk base system. From there,
++it is possible to make all kinds of changes to an installed system. Because
++only low-level tools are available in this system, it is intended for
++experts.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallarmainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;تحديد وضع الفيديو&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; to get the list of video modes your graphics card
++supports. The highest mode your monitor can display is preselected.
++&lt;/p&gt;
++
++&lt;p&gt;
++It is possible that your monitor cannot be detected automatically. In that
++case, select your preferred mode manually.
++&lt;/p&gt;
++
++&lt;p&gt;
++If your system has problems with the graphics card during the
++installation, the &lt;em&gt;وضع النص&lt;/em&gt; may be a usable work-around.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallarnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;الرجوع إلى &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcamainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,103 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;Ajuda del carregador de l'arrencada&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Welcome to &lt;em&gt;@@@product@@@&lt;/em&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this menu to select the desired function. If you have
++problems navigating in this help system, press
++&lt;em&gt;@@@fkey_help@@@&lt;/em&gt; to enter the &lt;a href=&quot;#help&quot;&gt;description&lt;/a&gt; of the help
++system. The main functions in this menu are:
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#harddisk&quot;&gt;Arrenca des del disc dur&lt;/a&gt;: This selection will not do
++anything to the system. It only starts a previously installed
++operating system.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#linux&quot;&gt;Installation&lt;/a&gt;:
++This installation mode works on most machines. If you experience a
++system freeze during boot or problems with detection of your hardware
++components, such as disk controllers or network cards, try one of the
++following installation options.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#noacpi&quot;&gt;Instal·lació -- ACPI inhabilitat&lt;/a&gt;: Many of the
++currently-sold computers have incomplete or faulty ACPI
++implementations. This selection disables ACPI support in the
++kernel, but still enables many performance features, like DMA for IDE
++hard disks.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#nolapic&quot;&gt;Instal·lació -- APIC local inhabilitat&lt;/a&gt;:
++If the normal installation fails, this might be due to the
++system hardware not supporting local APIC.
++If this seems to be the case, use this option to
++install without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#failsafe&quot;&gt;Instal·lació -- Paràmetres de seguretat&lt;/a&gt;: If you were not
++successful with &lt;em&gt;Installation&lt;/em&gt;, this selection might
++solve the issue.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#rescue&quot;&gt;Rescue System&lt;/a&gt;: This boot image starts a small
++Linux system in RAM. This is useful if the system does not start properly.
++After booting this system, log in as root.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#firmware&quot;&gt;Prova de microprogramari&lt;/a&gt;: Runs a BIOS test tool that validates
++ACPI and other parts of your BIOS.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#memtest&quot;&gt;Prova de memòria&lt;/a&gt;: Memory testing is useful for more than
++checking installation of new memory modules. It is a stress test
++for a big part of your computer system and may indicate hardware
++problems.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#opt&quot;&gt;Opcions d'arrencada&lt;/a&gt;: The boot options may change the
++behavior of your system completely. They are settings for
++the kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Help&lt;/a&gt;: This is context sensitive. It will
++show different screens depending on the active element of the
++boot screen. There is also a description of this help system
++available.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Set language and keyboard mapping
++used by the boot loader.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Video Mode&lt;/a&gt;: Here, choose between
++different screen resolutions while installing. If you encounter
++problems with the graphical installation, the &lt;em&gt;mode de text&lt;/em&gt; may
++be a work-around for you.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Installation Source&lt;/a&gt;: Choose the
++installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Driver Update&lt;/a&gt;: For very new machines, a
++driver update may be needed to install the system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcamainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;Selecció del tipus de programari&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++You have the choice to install the 32-bit or 64-bit version of @@@product@@@.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcamaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;Actualització de controladors&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++If you need a driver update floppy or CD-ROM, press &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. The
++boot loader asks you to insert the driver update medium after
++loading the Linux kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++A driver update is typically a floppy with new versions of hardware
++drivers or bug fixes needed during installation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcamainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,11 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;Instal·lació -- Paràmetres de seguretat&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Instal·lació -- Paràmetres de seguretat&lt;/em&gt; if you encounter hangs
++while installing or irreproducible errors. This option disables DMA
++for IDE drives and all power management features.
++See also the kernel options for &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;,
++&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; and &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcamainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;Prova de microprogramari&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Starts a BIOS checker that validates the ACPI tables
++and many other parts of your BIOS.
++Test results can be stored on usb disk or saved via network.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcamainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,16 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;Arrenca des del disc dur&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Arrenca el SO instal·lat&lt;/em&gt; to start the system installed on
++your local hard disk. This system must be installed properly, because
++only the MBR (Master Boot Record) on the first hard disk is started.
++The device ID of the first hard disk is provided by the BIOS of
++the computer.
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this if you forgot to remove the CD or DVD from your
++drive and want to start the computer from the hard disk.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcamainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Ús del sistema d'ajuda&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Fletxa amunt&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Fletxa avall&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Fletxa esquerra&lt;/em&gt;, &lt;em&gt;Retrocés&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Fletxa dreta&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Espai&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Re Pàg&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Av Pàg&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Inici&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Fi&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcamaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;Origen de la instal·lació&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; to choose an installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++This is the same as using the &lt;a href=&quot;#o_install&quot;&gt;install&lt;/a&gt;
++boot option.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcamainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Selecció d'idioma i format de teclat&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcamainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;Installation&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Installation&lt;/em&gt; to start the default installation. The
++&lt;a href=&quot;#opt&quot;&gt;opcions d'arrencada&lt;/a&gt; entered are used in the
++start-up. This item activates many features of commonly available
++hardware.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcamainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;Prova de memòria&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The included &lt;em&gt;Prova de memòria&lt;/em&gt; provides good possibilities to
++stress test the hardware of a system. Its main purpose is to detect
++broken RAM, but it also stresses many other parts of the system.
++&lt;/p&gt;
++
++&lt;p&gt;
++There is no guarantee that the memory is good if no errors are
++found, although most of memory defects will be found.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcamainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,24 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;Instal·lació -- ACPI inhabilitat&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Current hardware usually requires ACPI (Advanced Configuration and Power Interface)
++to control the interrupt handling.
++ACPI completely replaces the old APM system.
++&lt;/p&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Instal·lació -- ACPI inhabilitat&lt;/em&gt; if you encounter
++problems during boot of the kernel. Known problems with machines that
++have problems with ACPI are:
++&lt;ul&gt;
++ &lt;li&gt;kernel freezes when booting&lt;/li&gt;
++ &lt;li&gt;PCI Cards are not detected or initialized properly&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++You may also try the &lt;a href=&quot;#firmware&quot;&gt;Prova de microprogramari&lt;/a&gt; boot option
++and look at the test results of the ACPI validation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcamainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;Instal·lació -- APIC local inhabilitat&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Normally there are no problems with the APIC (Advanced Programmable Interrupt
++Controller). But if you seem to have some, try this option to boot
++without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++Please don't confuse this with &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt;
++(Advanced Configuration and Power Interface).
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcamainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,28 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Opcions d'arrencada&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++There are two types of boot options available. First, there are
++options that affect the installer. Second, there are kernel
++options. Some of the more common options are:
++&lt;/p&gt;
++
++&lt;p&gt;
++a) installer options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;install&lt;/a&gt; -- select an installation source&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#network&quot;&gt;opcions de xarxa&lt;/a&gt; -- the network options&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;opcions del vnc&lt;/a&gt; -- options for installation via VNC&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++b) kernel options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcamainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;Opcions de l'instal·lador: opcions de xarxa&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++It is possible to configure the network interface right now. The
++hardware will be detected later by YaST2. The minimum set of options
++to configure your network card consists of host IP and netmask. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++or in a shorter form:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++If you specified a &lt;a href=&quot;#o_install&quot;&gt;instal·lació basada en la xarxa&lt;/a&gt; and do
++not specify both of these options, the installer tries to configure
++the network interface with &lt;em&gt;dhcp&lt;/em&gt;. If you need a default
++gateway, specify this with the option &lt;em&gt;passarel·la&lt;/em&gt;. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;gateway=192.168.0.8&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcamainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Opcions del nucli: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;uacpi=off&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcamainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Opcions del nucli: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcamainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Opcions del nucli: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcamainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,30 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;Opcions de l'instal·lador: instal·la&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++By default, the local CD-ROMs are searched for the installation source.
++For a network install, select the
++&lt;em&gt;install&lt;/em&gt; option. Possible installation protocols are
++&lt;ul&gt;
++ &lt;li&gt;FTP&lt;/li&gt;
++ &lt;li&gt;NFS&lt;/li&gt;
++ &lt;li&gt;HTTP&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The syntax to use is just like standard URLs. For example,
++if your server is found at 192.168.0.1 and you want to do an NFS-based
++install from the directory /install on this server, specify
++the source as follows:
++&lt;ul&gt;
++ &lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The network card will either be configured with &lt;em&gt;dhcp&lt;/em&gt; or you
++must specify the parameters yourself as described in the
++&lt;a href=&quot;#network&quot;&gt;opcions de xarxa&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcamainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Opcions del nucli: pantalla de presentació&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcamainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;Opcions de l'instal·lador: vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++To enable the VNC installation, specify the
++parameters vnc and vncpassword:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;vnc=1 vncpassword=example&lt;/em&gt;&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The VNC server will be started and you may control YaST2 over any VNC
++client from a remote system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcamainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;Rescue System&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The &lt;em&gt;Rescue System&lt;/em&gt; is a small RAM disk base system. From there,
++it is possible to make all kinds of changes to an installed system. Because
++only low-level tools are available in this system, it is intended for
++experts.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcamainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;Selecció del mode de vídeo&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; to get the list of video modes your graphics card
++supports. The highest mode your monitor can display is preselected.
++&lt;/p&gt;
++
++&lt;p&gt;
++It is possible that your monitor cannot be detected automatically. In that
++case, select your preferred mode manually.
++&lt;/p&gt;
++
++&lt;p&gt;
++If your system has problems with the graphics card during the
++installation, the &lt;em&gt;mode de text&lt;/em&gt; may be a usable work-around.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcanavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Torna a &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcsmainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;Nápověda zavaděče&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Vítejte v &lt;em&gt;@@@product@@@&lt;/em&gt;&lt;/p&gt;
++
++&lt;p&gt;Z této nabídky zvolte požadovanou funkci. Máte-li problémy s orientací v této nápovědě, stiskněte &lt;em&gt;@@@fkey_help@@@&lt;/em&gt; pro vstup do &lt;a href=&quot;#help&quot;&gt;popis&lt;/a&gt; systému nápovědy. Hlavní funkce v této nabídce jsou:&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#harddisk&quot;&gt;Spustit z disku&lt;/a&gt;: Tato volba systém nijak neovlivní. Pouze spustí dříve nainstalovaný systém.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#linux&quot;&gt;Instalace&lt;/a&gt;:Tento instalační režim je vhodný pro naprostou většinu počítačů. Pokud při instalaci dojde k zatuhnutí nebo špatné detekci některých zařízení, například diskových řadičů či síťových karet, vyzkoušejte některou z dalších voleb.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#noacpi&quot;&gt;Instalace -- bez ACPI&lt;/a&gt;: Mnoho v současnosti prodávaných počítačů stále ještě neobsahuje kompletní implementaci ACPI nebo je tato implementace vadná. Tímto výběrem zakážete podporu ACPI v jádře, ale stále budete mít k dispozici řadu dalších funkcí jako například DMA pro IDE zařízení.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#nolapic&quot;&gt;Instalace -- bez local APIC&lt;/a&gt;: Selhání normální instalace může být způsobeno tím, že systémový hardware nepodporuje lokální APIC. Pokud se zdá, že nastal tento případ, použijte tuto volbu pro instalaci bez podpory lokálního APIC.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#failsafe&quot;&gt;Instalace -- bezpečné nastavení&lt;/a&gt;: Pokud jste nebyli s &lt;em&gt;Instalace&lt;/em&gt; úspěšní, může vám tato sekce pomoci vyřešit problém.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#rescue&quot;&gt;Záchranný systém&lt;/a&gt;: Tento obraz spouští malý linuxový systém v RAM. Je užitečný, pokud systém správně nestartuje. Po spuštění tohoto systému se přihlaste jako root.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#firmware&quot;&gt;Test firmwaru&lt;/a&gt;: Spouští nástroj pro validaci ACPI a dalších částí BIOSu vašeho počítače.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#memtest&quot;&gt;Test paměti&lt;/a&gt;: Testování paměti je užitečné nejen při instalaci nových paměťových modulů. Je to zátěžový test velké části systému a může pomoci odhalit hardwarové problémy.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#opt&quot;&gt;Parametry startu&lt;/a&gt;: Volby spouštění mohou zcela změnit chování vašeho systému. Jsou to parametry jádra.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Nápověda&lt;/a&gt;: Toto je kontextově závislé. Obrazovky se budou lišit v závislosti na aktivním prvku spouštěcí obrazovky. Tento systém nápovědy má k dispozici i popis svých funkcí.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Nastavte jazyk a rozložení klávesnice používané zavaděčem.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Video Mode&lt;/a&gt;: Zde si vyberte rozlišení obrazovky pro instalaci. Při problémech s grafickou instalací můžete jako řešení použít &lt;em&gt;textový režim&lt;/em&gt;.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Instalační zdroj&lt;/a&gt;: Vyberte instalační zdroj.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@Aktualizace ovladače&lt;/a&gt;: U velmi nových počítačů je pro instalaci systému potřeba aktualizace ovladače.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcsmainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;Výběr softwaru&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Můžete zvolit mezi instalací 32bitové či 64bitové verze @@@product@@@.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcsmaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;Aktualizace ovladače&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Pokud potřebujete disketu nebo CD s aktualizací ovladačů, stiskněte &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. Zavaděč vás požádá o médium s aktualizacemi ovladačů po zavedení linuxového jádra.&lt;/p&gt;
++
++&lt;p&gt;Aktualizace ovladačů je typicky disketa s novými verzemi hardwarových ovladačů nebo opravami chyb potřebnými během instalace.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcsmainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;Instalace -- bezpečné nastavení&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Zvolte &lt;em&gt;Instalace -- bezpečné nastavení&lt;/em&gt;, pokud během instalace narazíte na zatuhnutí systému nebo na nereprodukovatelné chyby. Tato volba zakáže DMA pro IDE jednotky a veškeré funkce správy napájení. Viz také parametry jádra pro &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;, &lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; a &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcsmainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;Test firmwaru&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Spouští kontrolu BIOSu validující tabulky ACPI a další součásti vašeho BIOSu. Výsledky testu lze uložit na USB disk nebo po síti.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcsmainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;Spustit z disku&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Zvolte &lt;em&gt;Spustit nainstalovaný systém&lt;/em&gt; pro spuštění systému nainstalovaného na lokálním disku. Systém, musí být správně nainstalován , protože je spouštěn pouze MBR na prvním disku. ID zařízení tohoto disku je poskytován BIOSem počítače.&lt;/p&gt;
++
++&lt;p&gt;Toto použijte, pokud zapomenete CD nebo DVD v mechanice a chcete počítač spustit z pevného disku.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcsmainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Použití systému nápovědy&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Nápověda zavaděče je závislá na obsahu. Poskytuje informace o zvolené nabídce nebo pokud editujete parametry jádra, snaží se poskytnout informace o volbě podle polohy kurzoru.&lt;/p&gt;
++
++&lt;p&gt;Navigační klávesy &lt;ul&gt;&lt;li&gt;&lt;em&gt;Šipka nahoru&lt;/em&gt;: zvýraznit předchozí odkaz&lt;/li&gt;&lt;li&gt;&lt;em&gt;Šipka dolů&lt;/em&gt;: zvýraznit následující odkaz&lt;/li&gt;&lt;li&gt;&lt;em&gt;Šipka vlevo&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: návrat k předchozímu tématu&lt;/li&gt;&lt;li&gt;&lt;em&gt;Šipka vpravo&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Mezerník&lt;/em&gt;: následovat odkaz&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: o stránku nahoru&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: o stránku dolů&lt;/li&gt;&lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: přejít na začátek stránky&lt;/li&gt;&lt;li&gt;&lt;em&gt;End&lt;/em&gt;: přejít na konec stránky&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: opustit nápovědu&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcsmaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;Instalační zdroj&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Zmáčkněte &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; pro výběr instalačního zdroje.&lt;/p&gt;
++
++&lt;p&gt;Totéž jako použití spouštěcího parametru&lt;a href=&quot;#o_install&quot;&gt;instalovat&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcsmainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Výběr jazyka a rozložení klávesnice&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Stiskněte &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; pro změnu jazyka a rozložení klávesnice, které bude zavaděč používat.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcsmainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;Instalace&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Zvolte &lt;em&gt;Instalace&lt;/em&gt; pro zahájení implicitní instalace. Zadané &lt;a href=&quot;#opt&quot;&gt;parametry startu&lt;/a&gt; jsou použity během spouštění. Tato položka aktivuje mnoho vlastností běžného hardwaru.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcsmainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;Test paměti&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;Test paměti&lt;/em&gt; umožňuje provést zátěžový test hardware systému. Testuje hlavně operační paměť, ale i jiné součásti systému.&lt;/p&gt;
++
++&lt;p&gt;Nejsou-li nalezeny chyby, není žádná záruka, že je paměť v pořádku. Většina chyb však bývá nalezena.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcsmainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;Instalace -- bez ACPI&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Současný hardware obvykle vyžaduje ACPI (Advanced Configuration and Power Interface) pro kontrolu přerušení. ACPI zcela nahrazuje starý APM systém.&lt;/p&gt;
++
++&lt;p&gt;Pokud při startu jádra narazíte na problémy, zvolte &lt;em&gt;Instalace -- bez ACPI&lt;/em&gt;. Známe problémy strojů s problematickým ACPI jsou: &lt;ul&gt;&lt;li&gt;jádro zatuhne během startu&lt;/li&gt;&lt;li&gt;* PCI karty nejsou správně detekovány nebo inicializovány&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Můžete rovněž vyzkoušet volbu spouštění &lt;a href=&quot;#firmware&quot;&gt;Test firmwaru&lt;/a&gt; a prohlédnout si výsledky validace ACPI.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcsmainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;Instalace -- bez local APIC&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Za běžných okolností nejsou s APIC (Advanced Programmable Interrupt Controller) žádné problémy. Pokud ale problémy máte, zkuste tuto volbu pro spouštění systému bez podpory lokálního APIC.&lt;/p&gt;
++
++&lt;p&gt;Nezaměňujte prosím s &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt; (Advanced Configuration and Power Interface).&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcsmainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Parametry startu&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Jsou dva typy spouštěcích voleb. Zaprvé jsou to parametry ovlivňující instalátor. Zadruhé jsou to parametry jádra, Mezi běžné parametry patří:&lt;/p&gt;
++
++&lt;p&gt;a) volby instalátoru &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;instalovat&lt;/a&gt; -- výběr instalačního zdroje&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#network&quot;&gt;nastavení sítě&lt;/a&gt; -- volby sítě&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;nastavení vnc&lt;/a&gt; -- parametry pro instalaci přes VNC&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;a) volby jádra &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- ovlivňuje chování úvodní obrazovky&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- zapnout správu napájení&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface (ACPI)&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- ovládá subsystém IDE&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcsmainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,13 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;Parametry instalátoru: síťové nastavení&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Nyní je možné nastavit síťové rozhraní. Hardware bude detekován později pomocí programu YaST2. Minimální nastavení se skládá z IP počítače a masky sítě. Například: &lt;ul&gt;&lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;nebo v kratší formě: &lt;ul&gt;&lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Pokud jste zadali &lt;a href=&quot;#o_install&quot;&gt;síťová instalace&lt;/a&gt; a nezadáte obě tyto volby, pokusí se instalátor nastavit síť pomocí &lt;em&gt;dhcp&lt;/em&gt;. Potřebujete-li výchozí bránu, zadejte ji parametrem &lt;em&gt;gateway&lt;/em&gt;. Například: &lt;ul&gt;&lt;li&gt;gateway=192.168.0.8&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcsmainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Parametry jádra: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI (Advanced Configuration and Power Interface) je standard definující nastavení napájení a správu zařízení mezi operačním systémem a BIOSem. Ve výchozím nastavení je &lt;em&gt;acpi&lt;/em&gt; zapnuto v případě, že jde o BIOS vydaný po roce 2000. Je k dispozici několik parametrů používaných ke kontrole chování ACPI: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- nepoužívat ACPI pro předávání PCI přerušení&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- aktivní zůstane pouze ta část ACPI, která je potřebná pro start systému&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- zcela vypnout ACPI&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- zapnout ACPI i pro BIOS vydaný před rokem 2000&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Zvláště na nových počítačích nahrazuje starší systém &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcsmainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Parametry jádra: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM je jednou ze dvou dnešních strategií správy napájení. Používá se hlavně na noteboocích pro uspávání disků a podobně, může však zodpovídat i za vypínání počítače. APM je závislé na správně fungujícím BIOSu. Je-li BIOS nefunkční, mohou být funkce APM omezeny nebo může APM znemožnit funkci počítače. Lze proto vypnout parametrem &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- zcela vypnout APM&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Některé nové počítače mohou s výhodou použít novější &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcsmainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Parametry jádra: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;IDE je na rozdíl od SCSI obvykle používáno na pracovních stanicích. V případě výskytu problémů s IDE systémem můžete použít parametr: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- vypnout DMA pro IDE jednotky&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcsmainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;Parametry instalátoru: install&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Ve výchozím nastavení se instalační zdroj hledá v lokálních CD mechanikách. Pro síťovou instalaci zvolte &lt;em&gt;instalovat&lt;/em&gt;. Možné instalační protokoly jsou &lt;ul&gt;&lt;li&gt;FTP&lt;/li&gt;&lt;li&gt;NFS&lt;/li&gt;&lt;li&gt;HTTP&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Syntaxe je jako u běžných URL. Pokud je například váš systém na adrese 192.168.0.1 a chcete provést NFS instalaci z adresáře /install na tomto serveru, zadejte zdroj takto: &lt;ul&gt;&lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Síťová karta bude nastavena buď pomocí &lt;em&gt;dhcp&lt;/em&gt; nebo musíte zadat parametry sami, jak je popsáno v &lt;a href=&quot;#network&quot;&gt;nastavení sítě&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcsmainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Parametry jádra: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Splash screen je obrázek zobrazený během startu systému. &lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0 &lt;/em&gt; -- Splash obrazovka je vypnuta. To může být vhodné pro staré monitory nebo při chybě.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Aktivuje splash obrazovku, zprávy jádra a spouštění jsou stále zobrazeny.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Aktivuje splash obrazovku, ale žádné zprávy. Místo toho je zobrazen ukazatel průběhu.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcsmainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;Parametry instalátoru: vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Pro umožnění VNC instalace zadejte parametry vnc a vncpassword: &lt;ul&gt;&lt;li&gt;&lt;em&gt;vnc=1 vncpassword=example&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Bude spuštěn VNC server; YaST2 můžete ovládat ze vzdáleného systému pomocí VNC klienta.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcsmainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;Záchranný systém&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;Záchranný systém&lt;/em&gt; je malý systém na RAM disku. Z něj je možno provádět všechny druhy změn instalovaného systému. Protože však obsahuje pouze nízkoúrovňové nástroje, je určen pro experty.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcsmainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;Výběr video režimu&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Stiskněte &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; pro získání seznamu video režimů podporovaných vaší grafickou kartou. Přednastaven je nejvyšší podporovaný režim.&lt;/p&gt;
++
++&lt;p&gt;Je možné, že váš monitor nelze automaticky detekovat. V takovém případě zvolte svůj preferovaný režim ručně.&lt;/p&gt;
++
++&lt;p&gt;Pokud má váš systém během instalace problé=my s grafickou kartou, může být &lt;em&gt;textový režim&lt;/em&gt; použitelným řešením.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcsnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Návrat k &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldamainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;Hjælp til bootloader&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Velkommen til &lt;em&gt;@@@product@@@&lt;/em&gt;&lt;/p&gt;
++
++&lt;p&gt;Brug denne menu til at vælge den ønskede funktion. Hvis du har problemer med at navigere i dette hjælpesystem så tryk &lt;em&gt;@@@fkey_help@@@&lt;/em&gt; for at få &lt;a href=&quot;#help&quot;&gt;beskrivelse&lt;/a&gt; om hjælpesystemet. De væsentligste funktioner i denne menu er:&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#harddisk&quot;&gt;Boot fra harddisk&lt;/a&gt;: Dette udvalg vil ikke ændre noget på systemet. Det starter bare det allerede installerede operativsystem.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#linux&quot;&gt;Installation&lt;/a&gt;: Denne installationstilstand virker på de fleste maskiner. Hvis du oplever at systemet fryser ved boot, eller problemer med genkendelsen af din hardwarekomponenter, f.eks. harddisk-controllere eller netværkskort, kan du prøve en af følgende installationsmuligheder.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#noacpi&quot;&gt;Installation -- ACPI deaktiveret&lt;/a&gt;: Mange af de computere der sælges for tiden, har ufuldstændige eller fejlbehæftede implementationer af ACPI. Dette valg deaktiverer ACPI-understøttelse i kernen, men mange ydelsesfunktioner såsom DMA for IDE-harddiske forbliver aktiverede.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#nolapic&quot;&gt;Installation -- Lokal APIC deaktiveret&lt;/a&gt;: Hvis den normale installation fejler, kan det skyldes at hardwaren ikke understøtter lokal APIC. Hvis dette lader til at være tilfældet, så anvend denne valgmulighed for at installere uden understøttelse for lokal APIC.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#failsafe&quot;&gt;Installation -- fejlsikret tilstand&lt;/a&gt;: Hvis du ikke havde held med &lt;em&gt;Installation&lt;/em&gt;, kan det være at dette valg vil løse problemet.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#rescue&quot;&gt;Redningssystem&lt;/a&gt;: Denne bootimagefil starter et lille Linuxsystem i RAM. Dette er nyttigt, hvis systemet ikke vil starte korrekt op. Når dette system er startet op, skal du logge ind som brugeren root.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#firmware&quot;&gt;Firmware-test&lt;/a&gt;: Kører et BIOS-testværktøj, som validerer ACPI og andre dele af din BIOS.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#memtest&quot;&gt;Hukommelsestest&lt;/a&gt;: Test af hukommelsen er nyttig til mere end blot at tjekke installationen af nye hukommelsesmoduler. Det stresstester også en stor del af din computer og kan indikere hardwareproblemer.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#opt&quot;&gt;Boot-valgmuligheder&lt;/a&gt;: Bootparametrene kan ændre dit systems opførsel fuldstændigt. De er indstillinger til kernen.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Help&lt;/a&gt;: Hjælpen tilpasser sig konteksten. Du vil se forskellige ting, alt efter hvad det aktive element på skærmen er. Der er også en beskrivelse af dette hjælpesystem tilgængelig.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Vælg det sprog og tastaturlayout der skal bruges at bootloaderen.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Video Mode&lt;/a&gt;: Her kan du vælge imellem forskellige skærmopløsninger, der kan bruges under installationen. Hvis du løber ind i problemer med den grafiske installation, kan &lt;em&gt;teksttilstand&lt;/em&gt; være en måde at komme videre på.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Softwarekilde&lt;/a&gt;: Vælg softwarekilden.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Driveropdatering&lt;/a&gt;: Hvis systemet er virkelig nyt, kan det være nødvendigt med en driveropdatering for at kunne installere systemet.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldamainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;Valg af softwaretype&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Du kan vælge at installere 32-bit- eller 64-bit-versionen af @@@product@@@.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldamaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;Driveropdatering&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Hvis du har brug for en driveropdatering via diskette eller CD-ROM så tryk &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. Bootloaderen beder dig om at indsætte mediet med driveropdateringen efter indlæsning af Linux-kernen.&lt;/p&gt;
++
++&lt;p&gt;En driveropdatering vil typisk være en diskette med en nyere version af en hardwaredriver eller fejlrettelser, der er påkrævet under installationen.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldamainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;Installation -- fejlsikret tilstand&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Vælg &lt;em&gt;Installation -- fejlsikret tilstand&lt;/em&gt;, hvis du oplever at systemet hænger under installationen, eller at der opstår fejl der ikke kan reproduceres. Hvis du vælger dette, bliver DMA slået fra for IDE-drev, og det samme gør alle former for strømstyring. Se også kerneparametrene for &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;, &lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; og &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldamainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;Firmware-test&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Starter en BIOS-tjekker, som validerer ACPI-tabellerne og mange andre dele af din BIOS. Testresultatet kan gemmes på en USB-disk eller gemmes via netværk.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldamainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;Boot fra harddisk&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Vælg &lt;em&gt;Boot det installerede system&lt;/em&gt; for at starte systemet, der er installeret på din lokale harddisk. Dette system skal installeres korrekt, da kun MBR (Master Boot Record) på harddisken der indlæses. Enheds-IDet for den første harddisk angives af BIOSen i computeren.&lt;/p&gt;
++
++&lt;p&gt;Brug dette, hvis du glemte at tage CD'en eller DVD'en ud af drevet og vil starte computeren fra harddisken.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldamainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Brug af hjælpesystemet&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Bootloaderens onlinehjælp tilpasser sig konteksten. Den viser information om det valgte menupunkt eller, hvis du er ved at redigere bootparametrene, så prøver det at finde information om parameteren ved markøren.&lt;/p&gt;
++
++&lt;p&gt;Navigationstaster &lt;ul&gt;&lt;li&gt;&lt;em&gt;Pil op&lt;/em&gt;: Fremhæv forrige link&lt;/li&gt;&lt;li&gt;&lt;em&gt;Pil ned&lt;/em&gt;: Fremhæv næste link&lt;/li&gt;&lt;li&gt;&lt;em&gt;Pil til venstre&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: Vend tilbage til det forrige emne&lt;/li&gt;&lt;li&gt;&lt;em&gt;Pil til højre&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Mellemrum&lt;/em&gt;: Følg link&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: Rul en side op&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: Rul en side nedad&lt;/li&gt;&lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: Gå til sidens begyndelse&lt;/li&gt;&lt;li&gt;&lt;em&gt;End&lt;/em&gt;: Gå til sidens slutning&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: Forlad hjælpesystemet&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldamaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;Softwarekilde&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Tryk &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; for at vælge en softwarekilde.&lt;/p&gt;
++
++&lt;p&gt;Dette er det samme som at bruge bootparametren &lt;a href=&quot;#o_install&quot;&gt;installér&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldamainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Valg af sprog og tastaturlayout&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Tryk &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; for at ændre det sprog og tastaturlayout, som bootloaderen bruger.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldamainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;Installation&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Vælg &lt;em&gt;Installation&lt;/em&gt; for at starte standardinstallationen. &lt;a href=&quot;#opt&quot;&gt;boot-valgmuligheder&lt;/a&gt;, der indtastes, bruges under opstart. Dette punkt aktiverer mange af de funktioner, der er gængse i hardware nu om dage.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldamainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;Hukommelsestest&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Den inkluderede &lt;em&gt;Hukommelsestest&lt;/em&gt; giver gode muligheder for at stressteste systemets hardware. Hovedformålet med den er at finde ud af om der er defekt RAM i systemet, men mange andre dele af systemet stresstestes også.&lt;/p&gt;
++
++&lt;p&gt;Der er ingen garanti for, at hukommelsen er i orden, hvis der ikke findes fejl, men de fleste typer af hukommelsesdefekter vil blive fundet.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldamainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;Installation -- ACPI deaktiveret&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Nutidig hardware kræver normalt ACPI (Advanced Configuration and Power Interface) for at styre interrupthåndteringen. ACPI erstatter fuldkomment det gamle APM-system.&lt;/p&gt;
++
++&lt;p&gt;Vælg &lt;em&gt;Installation -- ACPI deaktiveret&lt;/em&gt;, hvis du oplever problemer under boot af kernen. Kendte problemer for maskiner, der har problemer med ACPI er: &lt;ul&gt;&lt;li&gt;kernen fryser når systemet booter&lt;/li&gt;&lt;li&gt;PCI-kort bliver ikke fundet eller initialiseres ikke ordenligt&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Du kan også forsøge bootparametren &lt;a href=&quot;#firmware&quot;&gt;Firmware-test&lt;/a&gt; og se på testresultaterne fra ACPI-valideringen.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldamainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;Installation -- Lokal APIC deaktiveret&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Normalt er der ingen problemer med APIC (Advanced Programmable Interrupt Controller). Men hvis du lader til at have nogle, så prøv denne bootparameter for at boote uden local APIC-understøttelse.&lt;/p&gt;
++
++&lt;p&gt;Pas på ikke at forveksle dette med &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt; (Advanced Configuration and Power Interface).&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldamainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Boot-valgmuligheder&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Der er 2 typer af bootparametre du kan angive. Først er der dem, der påvirker installationsprogramet selv. Dernæst er der kerneparametrene. Nogle af de mere almindelige valgmuligheder er:&lt;/p&gt;
++
++&lt;p&gt;a) installationsvalgmuligheder&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;installér&lt;/a&gt; -- vælg en softwarekilde&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#network&quot;&gt;netværksvalgmuligheder&lt;/a&gt; -- netværksvalgmulighederne&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;vnc-valgmuligheder&lt;/a&gt; -- valgmuligheder ved VNC-installation&lt;/li&gt; &lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;a) kerneparametre &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- bestem opstartsbilledets opførsel&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- slå strømstyring til eller fra&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- avanceret konfiguration og strømgrænseflade (ACPI)&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- bestem opstartsbilledets opførsel&lt;/li&gt; &lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldamainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,13 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;Valgmuligheder for installationen: Netværksmuligheder&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Det er muligt at sætte netværkskortet op allerede nu. Selve hardwaren vil blive fundet senere af YaST2. Det minimale sæt valgmuligheder, til konfiguration af dit netkort, består af værtsmaskine-IP samt en netmaske. For eksempel:&lt;ul&gt;&lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;eller i kortere form: &lt;ul&gt;&lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Hvis du angav en &lt;a href=&quot;#o_install&quot;&gt;netværksbaseret installation&lt;/a&gt; og du ikke angav begge disse muligheder, vil installationsprogrammet prøve at sætte netværkskortet op med &lt;em&gt;dhcp&lt;/em&gt;. Hvis du skal bruge en standard-gateway, så angiv denne med valgmuligheden &lt;em&gt;gateway&lt;/em&gt;. For eksempel: &lt;ul&gt;&lt;li&gt;gateway=192.168.0.8&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldamainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Kernevalgmuligheder: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI (Advanced Configuration and Power Interface) er en standard, der definerer, hvordan strømhåndteringen og opsætningen af systemet foretages mellem operativsystemet og BIOS'en. Som standard vil &lt;em&gt;acpi&lt;/em&gt; blive aktiveret, hvis en BIOS der er nyere end år 2000, bliver fundet. Der er adskillige ofte brugte parametre, der bruges, til at styre hvordan ACPI opfører sig: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- anvend ikke ACPI til at route PCI-interrupts&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- kun de dele af ACPI som er relevante for at boote forbliver aktiveret&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- slå ACPI fuldstændigt fra&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- slå ACPI til, selv hvis din BIOS er fra før år 2000&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Især på nyere computere erstatter den det gamle &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;-system.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldamainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Kernevalgmuligheder: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM er en af de to strømhåndteringsstrategier, der bruges på nutidige computere. Den bruges hovedsagelig på bærbare til funktioner såsom suspendering til harddisk, men den kan også være ansvarlig for at slukke computeren, efter du har bedt den om at lukke ned. Brug af APM kræver en korrekt fungerende BIOS. Hvis BIOSen er defekt på dette område, vil APM kun have begrænset effekt eller måske endda forhindre din maskine i at fungere, som den skal. Den kan derfor slås fra med parametren &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- slå ACPI fuldstændigt fra&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Visse meget nye computere kan bedre drage fordel af det nyere &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldamainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Kernevalgmuligheder: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;IDE, ulig SCSI, bruges hovedsagelig til skrivebordsarbejdsstationer. For at omgå noge hardwareproblemer, der kan optræde med IDE systemer, kan du bruge kerneparametren: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- slå DMA fra for IDE-drev&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldamainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;Valgmuligheder for installationen: installér&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Som standard vil de lokale CD-ROM-drev blive gennemsøgt efter softwarekilden. Hvis du ønsker at lave en netværksinstallation, skal du vælge valgmuligheden &lt;em&gt;installér&lt;/em&gt;. Der er følgende mulige installationsprotokoller &lt;ul&gt;&lt;li&gt;FTP&lt;/li&gt;&lt;li&gt;NFS&lt;/li&gt;&lt;li&gt;HTTP&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Den syntaks der skal bruges, er magen til den for almindelige URL'er. Hvis din server har IP-adressen 192.168.0.1 f.eks., og du ønsker at installere via NFS fra mappen /install på denne server så angiv kilden som følger:&lt;ul&gt;&lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Netværkskortet vil enten blive sat op med &lt;em&gt;dhcp&lt;/em&gt;, eller også skal du selv angive parametrene, som beskrevet i &lt;a href=&quot;#network&quot;&gt;netværksvalgmuligheder&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldamainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Kernevalgmuligheder: Splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Opstartsbilledet er billedet, som vises under systemets opstart. &lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- Opstartsbilledet slås fra. Dette kan være nyttigt med meget gamle skærme, eller hvis en fejl opstår.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Aktiverer opstartsbillede. Kerne- og boot-beskeder vises stadig.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Aktiverer opstartsbillede, men ingen beskeder. I stedet vises en fremgangslinje.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldamainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;Valgmuligheder for installationen: Vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;For at aktivere VNC-installation, skal du angive parametrene vnc og vncpassword: &lt;ul&gt;&lt;li&gt;&lt;em&gt;vnc=1 vncpassword=eksempel&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;VNC-serveren vil blive startet, og du kan styre YaST2 via en hvilken som helst VNC-klient på et andet system.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldamainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;Redningssystem&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;Redningssystem&lt;/em&gt; er et lille RAM-diskbaseret system. Derfra kan man foretage alle mulige ændringer på et installeret system. Da der kun er lav-niveau-værktøjer tilgængelige i dette system, er det kun tiltænkt eksperter.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldamainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;Valg af grafisk tilstand&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Tryk &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; for at få en liste over skærmtilstande, som er understøttet af dit grafikkort. Den højeste opløsning, din skærm understøtter, er forvalgt.&lt;/p&gt;
++
++&lt;p&gt;Det er muligt, at din skærm ikke kan genkendes automatisk. I så fald skal du vælge den ønskede tilstand manuelt.&lt;/p&gt;
++
++&lt;p&gt;Hvis dit system har problemer med grafikkortet under installationen, kan &lt;em&gt;teksttilstand&lt;/em&gt; være en brugbar midlertidig løsning.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldanavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Vend tilbage til &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldemainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;Boot-Lader-Hilfe&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Willkommen zu &lt;em&gt;@@@product@@@&lt;/em&gt;&lt;/p&gt;
++
++&lt;p&gt;Benutzen Sie dieses Menü, um die gewünschte Funktion auszuwählen. Falls Sie Probleme mit der Navigation in diesem Hilfesystem haben, drücken Sie &lt;em&gt;@@@fkey_help@@@&lt;/em&gt;, um &lt;a href=&quot;#help&quot;&gt;Beschreibung&lt;/a&gt; des Hilfesystems zu öffnen. Die Hauptfunktionen in diesem Menü sind:&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#harddisk&quot;&gt;Von Festplatte booten&lt;/a&gt;: Diese Auswahl wird an Ihrem System keine Änderung vornehmen. Sie startet lediglich ein bereits installiertes Betriebssystem.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#linux&quot;&gt;Installation&lt;/a&gt;: Dieser Installationsmodus arbeitet auf den meisten Maschinen. Falls Ihr System beim Hochfahren hängenbleibt oder Probleme mit der Erkennung von Hardwarekomponenten hat, z.B. Probleme mit Festplatten-Controllern oder Netzwerkkarten, versuchen Sie es mit einer der folgenden Installationsoptionen.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#noacpi&quot;&gt;Installation -- ACPI deaktiviert&lt;/a&gt;: Viele der heute verkauften Computer haben unvollständige oder fehlerhafte ACPI-Implementierungen. Diese Auswahl deaktiviert die ACPI-Unterstützung im Kernel, aktiviert aber immernoch viele Leistungsmerkmale, wie DMA für IDE-Festplatten.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#nolapic&quot;&gt;Installation -- Lokales APIC deaktiviert&lt;/a&gt;: Wenn die normale Installation fehlschlägt, dann kann das evtl. daran liegen, dass die Systemhardware kein lokales APIC unterstützt. Wenn dies der Fall zu sein scheint, benutzen Sie diese Option, um ohne lokale APIC-Unterstützung zu installieren.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#failsafe&quot;&gt;Installation -- Sichere Einstellungen&lt;/a&gt;: Falls Sie mit &lt;em&gt;Installation&lt;/em&gt; nicht erfolgreich waren, kann die folgende Auswahl evtl. das Problem lösen.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#rescue&quot;&gt;Rettungssystem&lt;/a&gt;: Dieses Boot-Abbild startet ein kleines Linux-System im RAM. Dieses Vorgehen ist sinnvoll, wenn das System nicht richtig startet. Loggen Sie sich nach dem Hochfahren des Systems als Root ein.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#firmware&quot;&gt;Firmware-Test&lt;/a&gt;: Lädt ein BIOS-Testwerkzeug, welches ACPI und andere Teile Ihres BIOS überprüft.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#memtest&quot;&gt;Speichertest&lt;/a&gt;: Speichertests sind nicht nur zur Überprüfung neuer Speichermodule sinnvoll. Sie sind ein Belastungstest für einen großen Teil Ihres Computersystems und können Hardwareprobleme aufzeigen.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#opt&quot;&gt;Boot-Optionen&lt;/a&gt;: Die Boot-Optionen können das Verhalten Ihres Systems komplett ändern. Sie sind Einstellungen für den Kernel.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@-Hilfe&lt;/a&gt;: Dies ist kontextspezifisch. Es wird verschiedene Bildschirme abhängig vom aktiven Element des Boot-Bildschirms zeigen. Es ist auch eine Beschreibung dieses Hilfesystems verfügbar.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Stellen Sie die vom Boot-Lader verwendete Sprache und Tastaturbelegung ein.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@-Videomodus&lt;/a&gt;: Wählen Sie hier zwischen den verschiedenen Bildschirmauflösungen während der Installation. Falls es Probleme mit der grafischen Installation gibt, wird &lt;em&gt;Textmodus&lt;/em&gt; evtl. eine Problemumgehung sein.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@-Installationsquelle&lt;/a&gt;: Wählen Sie die Installationsquelle aus.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@-Treiberaktualisierung&lt;/a&gt;: Bei sehr neuen Maschinen ist es evtl. notwendig eine Treiberaktualisierung vorzunehmen, um das System zu installieren.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldemainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;Auswahl des Softwaretyps&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Sie können wählen, ob Sie die 32- oder 64-Bit-Version von @@@product@@@ installieren.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldemaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;Treiberaktualisierung&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Falls eine Treiberaktualisierung per Diskette oder CD-ROM notwendig wird, drücken Sie &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. Der Boot-Lader erbittet das Einlegen des Treiberaktualisierungsmediums nach dem Laden des Linux-Kernels.&lt;/p&gt;
++
++&lt;p&gt;Eine Treiberaktualisierung ist typischerweise eine Diskette mit neuen Versionen von Hardwaretreibern oder Fehlerbehebungen, die während der Installation notwendig werden.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldemainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;Installation -- Sichere Einstellungen&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Wählen Sie &lt;em&gt;Installation -- Sichere Einstellungen&lt;/em&gt;, wenn der Computer während der Installation hängt oder nicht nachvollziehbare Fehler auftreten. Diese Option deaktiviert DMA für IDE-Laufwerke und alle Energieverwaltungsfunktionen. Sehen Sie sich auch die Kernel-Optionen für &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;, &lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; und &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; an.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldemainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;Firmware-Test&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Startet einen BIOS-Prüfer, welcher die ACPI-Tabellen und viele andere Teile Ihres BIOS überprüft. Die Testergebnisse können auf einem USB-Datenträger oder via Netzwerk gespeichert werden.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldemainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;Von Festplatte booten&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Wählen Sie &lt;em&gt;Installiertes Betriebssystem starten&lt;/em&gt;, um das auf Ihrer lokalen Festplatte installierte System zu starten. Dieses System muss richtig installiert sein, da nur der MBR (Master Boot Record) auf der ersten Festplatte gestartet wird. Die Geräte-ID der ersten Festplatte wird vom BIOS des Computers bereitgestellt.&lt;/p&gt;
++
++&lt;p&gt;Benutzen Sie dies, wenn Sie vergessen haben, die CD oder DVD aus dem Laufwerk zu nehmen und den Computer von der Festplatte starten möchten.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldemainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Hilfesystem verwenden&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Die Online-Hilfe des Boot-Laders ist kontextspezifisch. Sie gibt Informationen über das ausgewählte Menüelement oder sie versucht, bei Bearbeitung der Boot-Optionen, Informationen über die Option zu suchen, auf der der Mauszeiger positioniert ist.&lt;/p&gt;
++
++&lt;p&gt;Navigationstasten &lt;ul&gt;&lt;li&gt;&lt;em&gt;Aufwärtspfeil&lt;/em&gt;: vorherigen Link hervorheben&lt;/li&gt;&lt;li&gt;&lt;em&gt;Abwärtspfeil&lt;/em&gt;: nächsten Link hervorheben&lt;/li&gt;&lt;li&gt;&lt;em&gt;Linkspfeil&lt;/em&gt;, &lt;em&gt;Rücktaste&lt;/em&gt;: zum vorherigen Thema zurückkehren&lt;/li&gt;&lt;li&gt;&lt;em&gt;Rechtspfeil&lt;/em&gt;, &lt;em&gt;Eingabe&lt;/em&gt;, &lt;em&gt;Leerzeichen&lt;/em&gt;: Link folgen&lt;/li&gt;&lt;li&gt;&lt;em&gt;Bild auf&lt;/em&gt;: ein Seite nach oben blättern&lt;/li&gt;&lt;li&gt;&lt;em&gt;Bild ab&lt;/em&gt;: eine Seite nach unten blättern&lt;/li&gt;&lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: zur Startseite gehen&lt;/li&gt;&lt;li&gt;&lt;em&gt;Ende&lt;/em&gt;: zur Endseite gehen&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: Hilfe verlassen&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldemaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;Installationsquelle&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Drücken Sie &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt;, um eine Installationsquelle zu wählen.&lt;/p&gt;
++
++&lt;p&gt;Dies ist dasselbe, wie die Boot-Option &lt;a href=&quot;#o_install&quot;&gt;installieren&lt;/a&gt; zu verwenden.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldemainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Auswahl der Sprache und Tastaturbelegung&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Drücken Sie &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt;, um die Sprache und Tastaturbelegung, die der Boot-Laderverwendet zu wechseln.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldemainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;Installation&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Wählen Sie &lt;em&gt;Installation&lt;/em&gt;, um die Standardinstallation zu starten. Die eingegebenen &lt;a href=&quot;#opt&quot;&gt;Boot-Optionen&lt;/a&gt; werden beim Starten verwendet. Dieses Element aktiviert viele Funktionen der üblicherweise verfügbaren Hardware.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldemainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;Speichertest&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Der enthaltene &lt;em&gt;Speichertest&lt;/em&gt; unterstützt gute Möglichkeiten die Systemhardware auf Belastung zu testen. Der Hauptzweck ist die Erkennung von defektem RAM, es werden aber auch zahlreiche andere Systembereiche belastet.&lt;/p&gt;
++
++&lt;p&gt;Es gibt keine Garantie, dass der Speicher intakt ist, wenn keine Fehler gefunden werden, obwohl die meisten Speicherdefekte ausfindig gemacht werden.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldemainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;Installation -- ACPI deaktiviert&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Die momentane Hardware benötigt üblicherweise ACPI (Advanced Configuration and Power Interface), um die Interrupt-Handhabung zu kontrollieren. ACPI ersetzt das alte APM-System vollständig.&lt;/p&gt;
++
++&lt;p&gt;Wählen Sie &lt;em&gt;Installation -- ACPI deaktiviert&lt;/em&gt;, wenn es während des Hochfahrens Probleme mit dem Kernel gibt. Bekannte Probleme mit ACPI sind: &lt;ul&gt;&lt;li&gt;Kernel friert beim Booten ein&lt;/li&gt;&lt;li&gt;PCI-Karten werden nicht erkannt oder richtig initialisiert&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Sie können auch die Boot-Option &lt;a href=&quot;#firmware&quot;&gt;Firmware-Test&lt;/a&gt; versuchen und die Testergebnisse der ACPI-Überprüfung betrachten.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldemainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;Installation -- Lokales APIC deaktiviert&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Normalerweise gibt es keine Probleme mit dem APIC (Advanced Programmable Interrupt Controller). Falls es scheinbar doch welche gibt, versuchen Sie diese Option, um ohne lokale APIC-Unterstützung hochzufahren.&lt;/p&gt;
++
++&lt;p&gt;Bitte verwechseln Sie dies nicht mit &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt; (Advanced Configuration and Power Interface).&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldemainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Boot-Optionen&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Es gibt zwei verfügbare Typen von Boot-Optionen. Zum Einen gibt es Optionen, die den Installierer beeinflussen. Zum Zweiten gibt es Kernel-Optionen. Einige der üblicheren Optionen sind:&lt;/p&gt;
++
++&lt;p&gt;a) Installiereroptionen &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;installieren&lt;/a&gt; -- wählen Sie eine Installationsquelle&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#network&quot;&gt;Netzwerkoptionen&lt;/a&gt; -- die Netzwerkoptionen&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;VNC-Optionen&lt;/a&gt; -- Optionen für die Installation via VNC&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;b) Kernel-Optionen &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- beeinflusst das Verhalten des Splash-Bildschirms&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- Energieverwaltung umschalten&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- Erweiterte Konfigurations- und Energieschnittstelle&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- steuert das IDE-Subsystem&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldemainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,13 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;Installiereroptionen: Netzwerkoptionen&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Es ist möglich die Netzwerkschnittstelle sofort zu konfigurieren. Die Hardware wird später durch YaST2 erkannt. Der minimale Satz an Optionen, um Ihre Netzwerkkarte zu konfigurieren besteht aus Host-IP und Netzmaske. Beispiel: &lt;ul&gt;&lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;oder in einer kürzeren Form: &lt;ul&gt;&lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Wenn Sie &lt;a href=&quot;#o_install&quot;&gt;netzwerkbasierte Installation&lt;/a&gt; festgelegt haben, aber diese beiden Optionen nicht bestimmen, versucht der Installierer die Netzwerkschnittstelle mit &lt;em&gt;dhcp&lt;/em&gt; zu konfigurieren. Wenn Sie eine Standardschnittstelle benötigen, bestimmen Sie dies mit der Option &lt;em&gt;gateway&lt;/em&gt;. Beispiel: &lt;ul&gt;&lt;li&gt;gateway=192.168.0.8&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldemainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Kernel-Optionen: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI (Advanced Configuration and Power Interface) ist ein Standard, der die Energie- und Konfigurationsverwaltungsschnittstellen zwischen einem Betriebssystem und dem BIOS definiert. Standardmäßig ist &lt;em&gt;acpi&lt;/em&gt; aktiviert, wenn ein BIOS erkannt wird, welches nach 2000 datiert ist. Es gibt mehrere gebräuchliche Parameter zur Steuerung des ACPI: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- verwenden Sie ACPI nicht, um PCI-Interrupts zu routen&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- nur die Teile von ACPI, die für das Hochfahren relevant sind bleiben aktiviert&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- ACPI komplett abschalten&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- ACPI anschalten, selbst wenn Ihr BIOS vor 2000 datiert ist&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Besonders auf neuen Computern wird es das alte &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;-System ersetzen.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldemainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Kernel-Optionen: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM ist eine der beiden Energieverwaltungsstrategien, die auf den gegenwärtigen Computern verwendet wird. Es wird hauptsächlich auf Laptops für Funktionen wie Suspend-to-Disk benutzt, kann aber auch für das Abschalten des Computers nach dem Herunterfahren verantwortlich sein. APM ist von einem korrekt funktionierenden BIOS abhängig. Bei einem fehlerhaften BIOS funktioniert das APM evtl. nur eingeschränkt, möglicherweise funktioniert der Computer überhaupt nicht mehr. Daher kann es mit dem Parameter &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- APM komplett abschalten&lt;/li&gt;&lt;/ul&gt; deaktiviert werden.&lt;/p&gt;
++
++&lt;p&gt;Einige sehr neue Computer können vom neueren &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt; profitieren.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldemainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Kernel-Optionen: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;IDE wird, im Gegensatz zu SCSI, auf den meisten Desktop-Arbeitsstationen verwendet. Zur Umgehung einiger Hardwareprobleme, die mit IDE-Systemen auftreten, verwenden Sie den Kernel-Parameter: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- DMA für IDE-Laufwerke abschalten&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldemainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;Installiereroptionen: install&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Standardmäßig werden die lokalen CD-ROMs nach der Installationsquelle durchsucht. Bei einer Netzwerkinstallation wählen Sie die Option &lt;em&gt;installieren&lt;/em&gt;. Mögliche Installationsprotokolle sind &lt;ul&gt;&lt;li&gt;FTP&lt;/li&gt;&lt;li&gt;NFS&lt;/li&gt;&lt;li&gt;HTTP&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Die zu verwendende Syntax entspricht den Standard-URLs. Bsp.: Wenn Ihr Server bei 192.168.0.1 gefunden wird und Sie eine eine NFS-basierte Installation aus dem Verzeichnis /install durchführen wollen, legen Sie die Quelle wie folgt fest: &lt;ul&gt;&lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Die Netzwerkkarte wird entweder mit &lt;em&gt;dhcp&lt;/em&gt; konfiguriert oder Sie müssen die Parameter selbst festlegen, wie beschrieben in &lt;a href=&quot;#network&quot;&gt;Netzwerkoptionen&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldemainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Kernel-Optionen: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Der Splash-Bildschirm ist das während des Systemstarts angezeigte Bild. &lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- Der Splash-Bildschirm ist abgeschaltet. Dies kann bei bei sehr alten Monitoren sinnvoll sein oder wenn einige Fehler auftreten.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Splash wird aktiviert; Kernel- und Boot-Nachrichten werden nach wie vor angezeigt.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Splash wird aktiviert, aber keine Nachrichten. Anstelle dessen wird ein Fortschrittsbalken gezeichnet.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldemainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;Installiereroptionen: vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Um die VNC-Installation zu aktivieren, legen Sie die Parameter vnc und vncpassword fest: &lt;ul&gt;&lt;li&gt;&lt;em&gt;vnc=1 vncpassword=example&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Der VNC-Server wird gestartet und Sie können YaST2 über irgendeinen VNC-Client von einem Fernsystem aus steuern.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldemainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;Rettungssystem&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;Rettungssystem&lt;/em&gt; ist ein kleines RAM-Disk-Basissystem. Von dort aus können Sie alle möglichen Änderungen an einem installierten System vornehmen. Weil nur systemnahe Werkzeuge in diesem System verfügbar sind, ist es für Experten vorgesehen.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldemainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;Auswahl des Videomodus&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Drücken Sie &lt;em&gt;@@@fkey_video@@@&lt;/em&gt;, um die Liste der Modi zu erhalten, die Ihre Grafikkarte unterstützt. Der höchste Modus, den Ihr Monitor anzeigen kann ist vorgewählt.&lt;/p&gt;
++
++&lt;p&gt;Es ist möglich, dass Ihr Monitor nicht automatisch erkannt wird. Wählen Sie in diesem Fall Ihren bevorzugten Modus manuell aus.&lt;/p&gt;
++
++&lt;p&gt;Falls Ihr System während der Installation Probleme mit der Grafikkarte hat, kann &lt;em&gt;Textmodus&lt;/em&gt; eine brauchbare Problemumgehung sein.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldenavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Zurück zu &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallelmainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,103 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;Βοήθεια του Διαχειριστή Εκκίνησης&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Welcome to &lt;em&gt;@@@product@@@&lt;/em&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this menu to select the desired function. If you have
++problems navigating in this help system, press
++&lt;em&gt;@@@fkey_help@@@&lt;/em&gt; to enter the &lt;a href=&quot;#help&quot;&gt;περιγραφή&lt;/a&gt; of the help
++system. The main functions in this menu are:
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#harddisk&quot;&gt;Εκκίνηση από τον Σκληρό Δίσκο&lt;/a&gt;: This selection will not do
++anything to the system. It only starts a previously installed
++operating system.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#linux&quot;&gt;Εγκατάσταση&lt;/a&gt;:
++This installation mode works on most machines. If you experience a
++system freeze during boot or problems with detection of your hardware
++components, such as disk controllers or network cards, try one of the
++following installation options.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#noacpi&quot;&gt;Εγκατάσταση -- Το ACPI Απενεργοποιημένο&lt;/a&gt;: Many of the
++currently-sold computers have incomplete or faulty ACPI
++implementations. This selection disables ACPI support in the
++kernel, but still enables many performance features, like DMA for IDE
++hard disks.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#nolapic&quot;&gt;Εγκατάσταση -- Το Τοπικό APIC είναι Απενεργοποιημένο&lt;/a&gt;:
++If the normal installation fails, this might be due to the
++system hardware not supporting local APIC.
++If this seems to be the case, use this option to
++install without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#failsafe&quot;&gt;Εγκατάσταση -- Ασφαλείς Ρυθμίσεις &lt;/a&gt;: If you were not
++successful with &lt;em&gt;Εγκατάσταση&lt;/em&gt;, this selection might
++solve the issue.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#rescue&quot;&gt;Σύστημα Διάσωσης&lt;/a&gt;: This boot image starts a small
++Linux system in RAM. This is useful if the system does not start properly.
++After booting this system, log in as root.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#firmware&quot;&gt;Δοκιμή Υπολογισμικού&lt;/a&gt;: Runs a BIOS test tool that validates
++ACPI and other parts of your BIOS.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#memtest&quot;&gt;Έλεγχος Μνήμης&lt;/a&gt;: Memory testing is useful for more than
++checking installation of new memory modules. It is a stress test
++for a big part of your computer system and may indicate hardware
++problems.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#opt&quot;&gt;Ρυθμίσεις Εκκίνησης&lt;/a&gt;: The boot options may change the
++behavior of your system completely. They are settings for
++the kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Help&lt;/a&gt;: This is context sensitive. It will
++show different screens depending on the active element of the
++boot screen. There is also a description of this help system
++available.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Set language and keyboard mapping
++used by the boot loader.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Video Mode&lt;/a&gt;: Here, choose between
++different screen resolutions while installing. If you encounter
++problems with the graphical installation, the &lt;em&gt;κατάσταση κειμένου&lt;/em&gt; may
++be a work-around for you.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Installation Source&lt;/a&gt;: Choose the
++installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Driver Update&lt;/a&gt;: For very new machines, a
++driver update may be needed to install the system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallelmainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;Επιλογή Τύπου Λογισμικού&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++You have the choice to install the 32-bit or 64-bit version of @@@product@@@.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallelmaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;Ενημέρωση Οδηγού&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++If you need a driver update floppy or CD-ROM, press &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. The
++boot loader asks you to insert the driver update medium after
++loading the Linux kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++A driver update is typically a floppy with new versions of hardware
++drivers or bug fixes needed during installation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallelmainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,11 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;Εγκατάσταση -- Ασφαλείς Ρυθμίσεις &lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Εγκατάσταση -- Ασφαλείς Ρυθμίσεις &lt;/em&gt; if you encounter hangs
++while installing or irreproducible errors. This option disables DMA
++for IDE drives and all power management features.
++See also the kernel options for &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;,
++&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; and &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallelmainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;Δοκιμή Υπολογισμικού&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Starts a BIOS checker that validates the ACPI tables
++and many other parts of your BIOS.
++Test results can be stored on usb disk or saved via network.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallelmainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,16 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;Εκκίνηση από τον Σκληρό Δίσκο&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Εκκίνηση Εγκατεστημένου Λ.Σ.&lt;/em&gt; to start the system installed on
++your local hard disk. This system must be installed properly, because
++only the MBR (Master Boot Record) on the first hard disk is started.
++The device ID of the first hard disk is provided by the BIOS of
++the computer.
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this if you forgot to remove the CD or DVD from your
++drive and want to start the computer from the hard disk.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallelmainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Χρήση του Συστήματος Βοήθειας&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Επάνω Βελάκι&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Κάτω Βελάκι&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Αριστερό Βελάκι&lt;/em&gt;, &lt;em&gt;Πισωγύρισμα&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Δεξί Βελάκι&lt;/em&gt;, &lt;em&gt;Εισαγωγή&lt;/em&gt;, &lt;em&gt;Κενό&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Επάνω&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Κάτω&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Αρχή&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Τέλος&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallelmaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;Πηγή Εγκατάστασης&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; to choose an installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++This is the same as using the &lt;a href=&quot;#o_install&quot;&gt;εγκατάσταση&lt;/a&gt;
++boot option.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallelmainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Επιλογή Γλώσσας και Διάταξης Πληκτρολογίου&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallelmainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;Εγκατάσταση&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Εγκατάσταση&lt;/em&gt; to start the default installation. The
++&lt;a href=&quot;#opt&quot;&gt;επιλογές εκκίνησης&lt;/a&gt; entered are used in the
++start-up. This item activates many features of commonly available
++hardware.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallelmainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;Έλεγχος Μνήμης&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The included &lt;em&gt;Έλεγχος Μνήμης&lt;/em&gt; provides good possibilities to
++stress test the hardware of a system. Its main purpose is to detect
++broken RAM, but it also stresses many other parts of the system.
++&lt;/p&gt;
++
++&lt;p&gt;
++There is no guarantee that the memory is good if no errors are
++found, although most of memory defects will be found.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallelmainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,24 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;Εγκατάσταση -- Το ACPI Απενεργοποιημένο&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Current hardware usually requires ACPI (Advanced Configuration and Power Interface)
++to control the interrupt handling.
++ACPI completely replaces the old APM system.
++&lt;/p&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Εγκατάσταση -- Το ACPI Απενεργοποιημένο&lt;/em&gt; if you encounter
++problems during boot of the kernel. Known problems with machines that
++have problems with ACPI are:
++&lt;ul&gt;
++ &lt;li&gt;kernel freezes when booting&lt;/li&gt;
++ &lt;li&gt;PCI Cards are not detected or initialized properly&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++You may also try the &lt;a href=&quot;#firmware&quot;&gt;Δοκιμή Υπολογισμικού&lt;/a&gt; boot option
++and look at the test results of the ACPI validation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallelmainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;Εγκατάσταση -- Το Τοπικό APIC είναι Απενεργοποιημένο&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Normally there are no problems with the APIC (Advanced Programmable Interrupt
++Controller). But if you seem to have some, try this option to boot
++without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++Please don't confuse this with &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt;
++(Advanced Configuration and Power Interface).
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallelmainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,28 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Ρυθμίσεις Εκκίνησης&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++There are two types of boot options available. First, there are
++options that affect the installer. Second, there are kernel
++options. Some of the more common options are:
++&lt;/p&gt;
++
++&lt;p&gt;
++a) installer options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;εγκατάσταση&lt;/a&gt; -- select an installation source&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#network&quot;&gt;επιλογές δικτύου&lt;/a&gt; -- the network options&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;επιλογές vnc &lt;/a&gt; -- options for installation via VNC&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++b) kernel options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;αρχική οθόνη&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallelmainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;Επιλογές Εγκατάστσαης: Επιλογές Δικτύου&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++It is possible to configure the network interface right now. The
++hardware will be detected later by YaST2. The minimum set of options
++to configure your network card consists of host IP and netmask. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;Διεύθυνση ΙΡ κόμβου=192.168.0.10 μάσκα δικτύου=255.255.255.0&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++or in a shorter form:
++&lt;ul&gt;
++ &lt;li&gt;Διεύθυνση ΙΡ κόμβου=192.168.0.10/24&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++If you specified a &lt;a href=&quot;#o_install&quot;&gt;εγκατάσταση μέσω δικτύου&lt;/a&gt; and do
++not specify both of these options, the installer tries to configure
++the network interface with &lt;em&gt;dhcp&lt;/em&gt;. If you need a default
++gateway, specify this with the option &lt;em&gt;πύλη&lt;/em&gt;. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;πύλη=192.168.0.8&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallelmainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Επιλογές Πυρήνα: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallelmainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Επιλογές Πυρήνα: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=offapm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallelmainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Επιλογές Πυρήνα: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallelmainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,30 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;Επιλογές Εγκατάστασης: εγκατάσταση&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++By default, the local CD-ROMs are searched for the installation source.
++For a network install, select the
++&lt;em&gt;εγκατάσταση&lt;/em&gt; option. Possible installation protocols are
++&lt;ul&gt;
++ &lt;li&gt;FTP&lt;/li&gt;
++ &lt;li&gt;NFS&lt;/li&gt;
++ &lt;li&gt;HTTP&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The syntax to use is just like standard URLs. For example,
++if your server is found at 192.168.0.1 and you want to do an NFS-based
++install from the directory /install on this server, specify
++the source as follows:
++&lt;ul&gt;
++ &lt;li&gt;εγκατάσταση=nfs://192.168.0.1/install&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The network card will either be configured with &lt;em&gt;dhcp&lt;/em&gt; or you
++must specify the parameters yourself as described in the
++&lt;a href=&quot;#network&quot;&gt;επιλογές δικτύου&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallelmainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Επιλογές πυρήνα: αρχική οθόνη&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splase=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallelmainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;Επιλογές Εγκατάστασης: vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++To enable the VNC installation, specify the
++parameters vnc and vncpassword:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;vnc=1 κωδικός πρόσβασης vnc=παράδειγμα&lt;/em&gt;&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The VNC server will be started and you may control YaST2 over any VNC
++client from a remote system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallelmainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;Σύστημα Διάσωσης&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The &lt;em&gt;Σύστημα Διάσωσης&lt;/em&gt; is a small RAM disk base system. From there,
++it is possible to make all kinds of changes to an installed system. Because
++only low-level tools are available in this system, it is intended for
++experts.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallelmainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;Επιλογή Ρύθμισης Οθόνης&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; to get the list of video modes your graphics card
++supports. The highest mode your monitor can display is preselected.
++&lt;/p&gt;
++
++&lt;p&gt;
++It is possible that your monitor cannot be detected automatically. In that
++case, select your preferred mode manually.
++&lt;/p&gt;
++
++&lt;p&gt;
++If your system has problems with the graphics card during the
++installation, the &lt;em&gt;κατάσταση κειμένου&lt;/em&gt; may be a usable work-around.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallelnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Επιστροφή στο &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallenmainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,103 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;Boot Loader Help&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Welcome to &lt;em&gt;@@@product@@@&lt;/em&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this menu to select the desired function. If you have
++problems navigating in this help system, press
++&lt;em&gt;@@@fkey_help@@@&lt;/em&gt; to enter the &lt;a href=&quot;#help&quot;&gt;description&lt;/a&gt; of the help
++system. The main functions in this menu are:
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#harddisk&quot;&gt;Boot from Hard Disk&lt;/a&gt;: This selection will not do
++anything to the system. It only starts a previously installed
++operating system.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#linux&quot;&gt;Installation&lt;/a&gt;:
++This installation mode works on most machines. If you experience a
++system freeze during boot or problems with detection of your hardware
++components, such as disk controllers or network cards, try one of the
++following installation options.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#noacpi&quot;&gt;Installation -- ACPI Disabled&lt;/a&gt;: Many of the
++currently-sold computers have incomplete or faulty ACPI
++implementations. This selection disables ACPI support in the
++kernel, but still enables many performance features, like DMA for IDE
++hard disks.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#nolapic&quot;&gt;Installation -- Local APIC Disabled&lt;/a&gt;:
++If the normal installation fails, this might be due to the
++system hardware not supporting local APIC.
++If this seems to be the case, use this option to
++install without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#failsafe&quot;&gt;Installation -- Safe Settings&lt;/a&gt;: If you were not
++successful with &lt;em&gt;Installation&lt;/em&gt;, this selection might
++solve the issue.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#rescue&quot;&gt;Rescue System&lt;/a&gt;: This boot image starts a small
++Linux system in RAM. This is useful if the system does not start properly.
++After booting this system, log in as root.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#firmware&quot;&gt;Firmware Test&lt;/a&gt;: Runs a BIOS test tool that validates
++ACPI and other parts of your BIOS.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#memtest&quot;&gt;Memory Test&lt;/a&gt;: Memory testing is useful for more than
++checking installation of new memory modules. It is a stress test
++for a big part of your computer system and may indicate hardware
++problems.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#opt&quot;&gt;Boot Options&lt;/a&gt;: The boot options may change the
++behavior of your system completely. They are settings for
++the kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Help&lt;/a&gt;: This is context sensitive. It will
++show different screens depending on the active element of the
++boot screen. There is also a description of this help system
++available.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Set language and keyboard mapping
++used by the boot loader.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Video Mode&lt;/a&gt;: Here, choose between
++different screen resolutions while installing. If you encounter
++problems with the graphical installation, the &lt;em&gt;text mode&lt;/em&gt; may
++be a work-around for you.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Installation Source&lt;/a&gt;: Choose the
++installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Driver Update&lt;/a&gt;: For very new machines, a
++driver update may be needed to install the system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallenmainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;Software Type Selection&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++You have the choice to install the 32-bit or 64-bit version of @@@product@@@.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallenmaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;Driver Update&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++If you need a driver update floppy or CD-ROM, press &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. The
++boot loader asks you to insert the driver update medium after
++loading the Linux kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++A driver update is typically a floppy with new versions of hardware
++drivers or bug fixes needed during installation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallenmainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,11 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;Installation -- Safe Settings&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Installation -- Safe Settings&lt;/em&gt; if you encounter hangs
++while installing or irreproducible errors. This option disables DMA
++for IDE drives and all power management features.
++See also the kernel options for &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;,
++&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; and &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallenmainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;Firmware Test&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Starts a BIOS checker that validates the ACPI tables
++and many other parts of your BIOS.
++Test results can be stored on usb disk or saved via network.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallenmainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,16 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;Boot from Hard Disk&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Boot Installed OS&lt;/em&gt; to start the system installed on
++your local hard disk. This system must be installed properly, because
++only the MBR (Master Boot Record) on the first hard disk is started.
++The device ID of the first hard disk is provided by the BIOS of
++the computer.
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this if you forgot to remove the CD or DVD from your
++drive and want to start the computer from the hard disk.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallenmainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Using the Help System&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Up Arrow&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Down Arrow&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Left Arrow&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Right Arrow&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Space&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;End&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallenmaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;Installation Source&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; to choose an installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++This is the same as using the &lt;a href=&quot;#o_install&quot;&gt;install&lt;/a&gt;
++boot option.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallenmainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Language and Keyboard Layout Selection&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallenmainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;Installation&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Installation&lt;/em&gt; to start the default installation. The
++&lt;a href=&quot;#opt&quot;&gt;boot options&lt;/a&gt; entered are used in the
++start-up. This item activates many features of commonly available
++hardware.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallenmainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;Memory Test&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The included &lt;em&gt;Memory Test&lt;/em&gt; provides good possibilities to
++stress test the hardware of a system. Its main purpose is to detect
++broken RAM, but it also stresses many other parts of the system.
++&lt;/p&gt;
++
++&lt;p&gt;
++There is no guarantee that the memory is good if no errors are
++found, although most of memory defects will be found.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallenmainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,24 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;Installation -- ACPI Disabled&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Current hardware usually requires ACPI (Advanced Configuration and Power Interface)
++to control the interrupt handling.
++ACPI completely replaces the old APM system.
++&lt;/p&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Installation -- ACPI Disabled&lt;/em&gt; if you encounter
++problems during boot of the kernel. Known problems with machines that
++have problems with ACPI are:
++&lt;ul&gt;
++ &lt;li&gt;kernel freezes when booting&lt;/li&gt;
++ &lt;li&gt;PCI Cards are not detected or initialized properly&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++You may also try the &lt;a href=&quot;#firmware&quot;&gt;Firmware Test&lt;/a&gt; boot option
++and look at the test results of the ACPI validation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallenmainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;Installation -- Local APIC Disabled&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Normally there are no problems with the APIC (Advanced Programmable Interrupt
++Controller). But if you seem to have some, try this option to boot
++without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++Please don't confuse this with &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt;
++(Advanced Configuration and Power Interface).
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallenmainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,28 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Boot Options&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++There are two types of boot options available. First, there are
++options that affect the installer. Second, there are kernel
++options. Some of the more common options are:
++&lt;/p&gt;
++
++&lt;p&gt;
++a) installer options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;install&lt;/a&gt; -- select an installation source&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#network&quot;&gt;network options&lt;/a&gt; -- the network options&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;vnc options&lt;/a&gt; -- options for installation via VNC&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++b) kernel options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallenmainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;Installer Options: Network Options&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++It is possible to configure the network interface right now. The
++hardware will be detected later by YaST2. The minimum set of options
++to configure your network card consists of host IP and netmask. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++or in a shorter form:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++If you specified a &lt;a href=&quot;#o_install&quot;&gt;network-based install&lt;/a&gt; and do
++not specify both of these options, the installer tries to configure
++the network interface with &lt;em&gt;dhcp&lt;/em&gt;. If you need a default
++gateway, specify this with the option &lt;em&gt;gateway&lt;/em&gt;. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;gateway=192.168.0.8&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallenmainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Kernel Options: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallenmainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Kernel Options: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallenmainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Kernel Options: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallenmainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,30 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;Installer Options: install&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++By default, the local CD-ROMs are searched for the installation source.
++For a network install, select the
++&lt;em&gt;install&lt;/em&gt; option. Possible installation protocols are
++&lt;ul&gt;
++ &lt;li&gt;FTP&lt;/li&gt;
++ &lt;li&gt;NFS&lt;/li&gt;
++ &lt;li&gt;HTTP&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The syntax to use is just like standard URLs. For example,
++if your server is found at 192.168.0.1 and you want to do an NFS-based
++install from the directory /install on this server, specify
++the source as follows:
++&lt;ul&gt;
++ &lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The network card will either be configured with &lt;em&gt;dhcp&lt;/em&gt; or you
++must specify the parameters yourself as described in the
++&lt;a href=&quot;#network&quot;&gt;network options&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallenmainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Kernel Options: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallenmainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;Installer Options: vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++To enable the VNC installation, specify the
++parameters vnc and vncpassword:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;vnc=1 vncpassword=example&lt;/em&gt;&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The VNC server will be started and you may control YaST2 over any VNC
++client from a remote system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallenmainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;Rescue System&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The &lt;em&gt;Rescue System&lt;/em&gt; is a small RAM disk base system. From there,
++it is possible to make all kinds of changes to an installed system. Because
++only low-level tools are available in this system, it is intended for
++experts.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallenmainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;Video Mode Selection&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; to get the list of video modes your graphics card
++supports. The highest mode your monitor can display is preselected.
++&lt;/p&gt;
++
++&lt;p&gt;
++It is possible that your monitor cannot be detected automatically. In that
++case, select your preferred mode manually.
++&lt;/p&gt;
++
++&lt;p&gt;
++If your system has problems with the graphics card during the
++installation, the &lt;em&gt;text mode&lt;/em&gt; may be a usable work-around.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallennavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,3 @@
++&lt;p&gt;
++Return to &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallesmainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;Ayuda del cargador de arranque&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Bienvenido a &lt;em&gt;@@@product@@@&lt;/em&gt;&lt;/p&gt;
++
++&lt;p&gt;Utilice este menú para seleccionar la función deseada. Si tiene problemas para desplazarse por este sistema de ayuda, pulse &lt;em&gt;@@@fkey_help@@@&lt;/em&gt; para acceder al &lt;a href=&quot;#help&quot;&gt;descripción&lt;/a&gt; del sistema de ayuda. Las funciones principales de este menú son:&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#harddisk&quot;&gt;Arrancar desde disco duro&lt;/a&gt;: Esta selección no hará nada en el sistema. Sólo iniciará un sistema operativo instalado previamente.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#linux&quot;&gt;Instalación&lt;/a&gt;: Este modo de instalación funciona en la mayoría de los equipos. Si experimenta un bloqueo del sistema durante el arranque o problemas a la hora de detectar los componentes de hardware, como los controladores de disco o las tarjetas de red, pruebe una de las siguientes opciones de instalación.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#noacpi&quot;&gt;Instalación -- ACPI Inhabilitado&lt;/a&gt;: Muchos de los equipos que se venden actualmente cuentan con implementaciones de ACPI incompletas o erróneas. Esta opción inhabilita la compatibilidad con ACPI del kernel, pero mantiene habilitadas muchas de las funciones de rendimiento, como DMA para los discos duros IDE.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#nolapic&quot;&gt;Instalación -- APIC local Inhabilitado&lt;/a&gt;: Si la instalación normal no se lleva a cabo correctamente, puede deberse a que el hardware del sistema no sea compatible con APIC local. Si cree este sea el caso, utilice esta opción para instalar sin compatibilidad con APIC local.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#failsafe&quot;&gt;Instalación -- Ajustes seguros&lt;/a&gt;: Si no ha tenido éxito con &lt;em&gt;Instalación&lt;/em&gt;, esta selección puede que resuelva el problema.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#rescue&quot;&gt;Sistema de rescate&lt;/a&gt;: Esta imagen de arranque inicia un pequeño sistema Linux en RAM, lo que resulta útil si el sistema no se inicia correctamente. Tras arrancar este sistema, se debe iniciar sesión como usuario root.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#firmware&quot;&gt;Prueba de firmware&lt;/a&gt;: Ejecute la herramienta de prueba de la BIOS para comprobar ACPI y otras partes de su BIOS.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#memtest&quot;&gt;Prueba de memoria&lt;/a&gt;: La prueba de la memoria resulta útil no sólo para comprobar la instalación de nuevos módulos de memoria. Se trata de una prueba de carga de gran parte del sistema y puede poner de manifiesto otros problemas de hardware.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#opt&quot;&gt;Opciones de arranque&lt;/a&gt;: Las opciones de arranque pueden cambiar por completo el comportamiento del sistema. Se tratan de ajustes para el kernel.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Ayuda&lt;/a&gt;: Es sensible al contexto. Muestra distintas pantallas según el elemento activo de la pantalla de arranque. También hay disponible una descripción de este sistema de ayuda.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Defina el idioma y la distribución del teclado que utilizará el cargador de arranque.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Modo de vídeo&lt;/a&gt;: Aquí debe elegir entre varias resoluciones de pantalla durante la instalación. Si se producen problemas con la instalación gráfica, puede que la opción &lt;em&gt;modo de texto&lt;/em&gt; sirva de solución.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Fuente de instalación&lt;/a&gt;: Elija el origen de instalación.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Actualización de controladores&lt;/a&gt;: En los equipos muy nuevos, puede que se necesite una actualización de controladores para instalar el sistema.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallesmainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;Selección de tipo de software&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Tiene la opción de instalar la versión de 32 bits o de 64 bits de @@@product@@@.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallesmaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;Actualización de controladores&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Si necesita un disquete o un CD-ROM de actualización de controladores, pulse &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. El cargador de arranque le pedirá que introduzca el medio de actualización de controladores tras cargar el kernel de Linux.&lt;/p&gt;
++
++&lt;p&gt;Las actualizaciones del controlador suelen ser disquetes con versiones recientes de los controladores del hardware o con correcciones de errores necesarios durante la instalación.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallesmainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;Instalación -- Ajustes seguros&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Seleccione &lt;em&gt;Instalación -- Ajustes seguros&lt;/em&gt; si se producen bloqueos o errores irreproducibles durante la instalación. Esta opción inhabilita DMA para las unidades IDE y todas las funciones de gestión de la energía. Consulte también las opciones del kernel para &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;, &lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; y &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallesmainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;Prueba de firmware&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Inicia una comprobación de la BIOS que comprueba las tablas ACPI y muchas otras partes de la BIOS. Los resultados de la prueba se pueden almacenar en un disco USB o almacenarse en una ubicación de red.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallesmainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;Arrancar desde disco duro&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Seleccione &lt;em&gt;Arrancar SO instalado&lt;/em&gt; para iniciar el sistema instalado en el disco duro local. Este sistema se debe instalar de forma correcta, ya que sólo se inicia el MBR (sector de inicio principal) del primer disco duro. El ID de dispositivo del primer disco duro lo proporciona el BIOS del equipo.&lt;/p&gt;
++
++&lt;p&gt;Utilice esto si olvida retirar el CD o el DVD de la unidad y desea iniciar el equipo desde el disco duro.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallesmainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Uso del sistema de ayuda&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;La ayuda en línea del cargador de arranque es contextual. Proporciona información sobre el elemento de menú seleccionado o, si se están modificando las opciones de arranque, intenta buscar información sobre la opción en la que está situado el cursor.&lt;/p&gt;
++
++&lt;p&gt;Teclas de navegación &lt;ul&gt;&lt;li&gt;&lt;em&gt;Flecha arriba&lt;/em&gt;: resaltar el enlace anterior&lt;/li&gt;&lt;li&gt;&lt;em&gt;Flecha abajo&lt;/em&gt;: resaltar el enlace siguiente&lt;/li&gt;&lt;li&gt;&lt;em&gt;Flecha a la izquierda&lt;/em&gt;, &lt;em&gt;Retroceso&lt;/em&gt;: volver al apartado anterior&lt;/li&gt;&lt;li&gt;&lt;em&gt;Flecha a la derecha&lt;/em&gt;, &lt;em&gt;Intro&lt;/em&gt;, &lt;em&gt;Espacio&lt;/em&gt;: seguir el enlace&lt;/li&gt;&lt;li&gt;&lt;em&gt;Re Pág&lt;/em&gt;: subir una página&lt;/li&gt;&lt;li&gt;&lt;em&gt;Av Pág&lt;/em&gt;: bajar una página&lt;/li&gt;&lt;li&gt;&lt;em&gt;Inicio&lt;/em&gt;: ir al inicio de la página&lt;/li&gt;&lt;li&gt;&lt;em&gt;Fin&lt;/em&gt;: ir al final de la página&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: salir de la ayuda&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallesmaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;Fuente de instalación&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Pulse &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; para seleccionar un origen de instalación.&lt;/p&gt;
++
++&lt;p&gt;Esto es similar a usar la opción de arranque &lt;a href=&quot;#o_install&quot;&gt;instalar&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallesmainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Selección de idioma y distribución de teclado&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Pulse &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; para cambiar el idioma y la distribución del teclado que utilizará el cargador de arranque.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallesmainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;Instalación&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Seleccione &lt;em&gt;Instalación&lt;/em&gt; para iniciar la instalación por defecto. El valor &lt;a href=&quot;#opt&quot;&gt;opciones de arranque&lt;/a&gt; introducido se utiliza durante el inicio. Este elemento activa muchas funciones del hardware disponible habitualmente.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallesmainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;Prueba de memoria&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;El &lt;em&gt;Prueba de memoria&lt;/em&gt; incluido ofrece muchas posibilidades de realizar una prueba de carga del hardware de un sistema. Su objetivo principal es detectar RAM dañada, pero también analiza muchas otras partes del sistema.&lt;/p&gt;
++
++&lt;p&gt;No existen garantías de que la memoria no tenga problemas si no se encuentran errores, aunque se detectarán la mayoría de los defectos de memoria.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallesmainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;Instalación -- ACPI Inhabilitado&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;El hardware actual generalmente necesita ACPI para controlar la gestión de interrupciones. ACPI sustituye por completo el antiguo sistema APM.&lt;/p&gt;
++
++&lt;p&gt;Seleccione &lt;em&gt;Instalación -- ACPI Inhabilitado&lt;/em&gt; si encuentra problemas durante el arranque del kernel. Estos son algunos de los problemas conocidos de los equipos que presentan problemas con ACPI: &lt;ul&gt;&lt;li&gt;El kernel se bloquea durante el arranque&lt;/li&gt;&lt;li&gt;Las tarjetas PCI no se detectan o no se inician correctamente&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Puede intentar también la opción de arranque &lt;a href=&quot;#firmware&quot;&gt;Prueba de firmware&lt;/a&gt; y revisar los resultados del la prueba de arranque de la comprobación de ACPI.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallesmainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;Instalación -- APIC local Inhabilitado&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Normalmente no se producen problemas con APIC (controlador avanzado de interrupciones programables). No obstante, si cree que sufre alguno, intente que esta opción arranque sin compatibilidad APIC local.&lt;/p&gt;
++
++&lt;p&gt;No confunda esto con &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt; (Interfaz avanzada de configuración y energía (ACPI))&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallesmainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Opciones de arranque&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Hay dos tipos de opciones de arranque disponibles. En primer lugar, hay opciones que afectan al instalador. Por otro lado, existen opciones del kernel. Estas son algunas de las opciones más comunes:&lt;/p&gt;
++
++&lt;p&gt;a) opciones del instalador&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;instalar&lt;/a&gt; -- seleccionar un origen de instalación&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#network&quot;&gt;opciones de red&lt;/a&gt; -- las opciones de red&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;opciones VNC&lt;/a&gt; -- opciones para la instalación mediante VNC&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;b) opciones del kernel &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;pantalla inicial&lt;/a&gt; -- influye en el comportamiento de la pantalla inicial&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- alterna la gestión de la energía&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- interfaz avanzada de configuración y energía (ACPI)&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- controla el subsistema IDE&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallesmainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,13 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;Opciones del instalador: opciones de red&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Es posible configurar la interfaz de red ahora. YaST2 detectará el hardware posteriormente. El conjunto de opciones mínimo para configurar la tarjeta de red incluye la IP del host y la máscara de red. Por ejemplo: &lt;ul&gt;&lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;en más corto: &lt;ul&gt;&lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Si se indica un &lt;a href=&quot;#o_install&quot;&gt;instalación basada en red&lt;/a&gt; pero no se especifican estas dos opciones, el instalador intentará configurar la interfaz de red con &lt;em&gt;DHCP&lt;/em&gt;. Si se necesita una pasarela (gateway) por defecto, establezca la opción &lt;em&gt;pasarela&lt;/em&gt;. Por ejemplo: &lt;ul&gt;&lt;li&gt;gateway=192.168.0.8&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallesmainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Opciones del kernel: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI (interfaz avanzada de configuración y energía) es un estándar que define las interfaces de gestión de la configuración y la energía entre un sistema operativo y la BIOS. Por defecto, &lt;em&gt;acpi&lt;/em&gt; se activa cuando se detecta que la BIOS es posterior al año 2000. Habitualmente, se utilizan varios parámetros para controlar el comportamiento de ACPI: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- no utiliza ACPI para asignar las interrupciones PCI&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- sólo permanecen activadas las partes de ACPI que son importantes para el arranque&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- desactiva ACPI por completo&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- activa ACPI incluso si la BIOS es anterior al año 2000&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Especialmente en equipos nuevos, sustituye al antiguo sistema &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallesmainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Opciones del kernel: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM es una de las dos estrategias de gestión de la energía que se utiliza en los equipos actuales. Se utiliza principalmente en portátiles para funciones como la suspensión a disco, pero también puede ser responsable de apagar el equipo cuando se corta la alimentación. APM se fundamenta en un funcionamiento correcto de la BIOS. Si la BIOS está dañada, puede que APM tenga un uso limitado, o que incluso impida que el equipo funcione. Por lo tanto, puede ser necesario desactivarlo con el parámetro &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- desactiva ACPI por completo&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Algunos equipos muy nuevos pueden aprovechar mejor el &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt; más reciente.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallesmainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Opciones del kernel: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;IDE, a diferencia de SCSI, se utiliza en la mayoría de las estaciones de trabajo de escritorio. Para evitar algunos problemas de hardware que se producen con los sistemas IDE, utilice el parámetro del kernel: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- desactiva DMA para las unidades IDE&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallesmainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;Opciones del instalador: instalar&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Por defecto, se busca el origen de la instalación en las unidades de CD-ROM locales. Para realizar una instalación desde la red, seleccione la opción &lt;em&gt;instalar&lt;/em&gt;. Los protocolos de instalación posibles son &lt;ul&gt;&lt;li&gt;FTP&lt;/li&gt;&lt;li&gt;NFS&lt;/li&gt;&lt;li&gt;HTTP&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Se debe utilizar la misma sintaxis que para las URL usuales. Por ejemplo, si el servidor se encuentra en 192.168.0.1 y desea efectuar una instalación basada en NFS desde el directorio /install de ese servidor, indique el origen de esta forma: &lt;ul&gt;&lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;La tarjeta de red se configurará con &lt;em&gt;DHCP&lt;/em&gt; o se deberán indicar los parámetros manualmente como se describe en la &lt;a href=&quot;#network&quot;&gt;opciones de red&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallesmainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Opciones del kernel: pantalla inicial&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;La pantalla inicial es la imagen que se muestra durante el inicio del sistema. &lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- La pantalla inicial se desactiva. Esto puede ser útil en monitores muy antiguos o si se produce algún error.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activa la pantalla inicial y se siguen mostrando los mensajes del kernel y de arranque.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activa la pantalla inicial, pero no los mensajes. En su lugar, se muestra una barra de progreso.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallesmainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;Opciones del instalador: vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Para habilitar la instalación con VNC, establezca los parámetros vnc y vncpassword: &lt;ul&gt;&lt;li&gt;&lt;em&gt;vnc=1 vncpassword=ejemplo&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;El servidor VNC se iniciará y será posible controlar YaST2 en cualquier cliente VNC desde un sistema remoto.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallesmainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;Sistema de rescate&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;Sistema de rescate&lt;/em&gt; es un pequeño sistema base en disco RAM que permite realizar cualquier tipo de cambio en un sistema instalado. Puesto que en este sistema sólo hay disponibles herramientas de bajo nivel, está dirigido a usuarios expertos.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallesmainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;Selección de modo de vídeo&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Pulse &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; para obtener la lista de los modos de vídeo que admite la tarjeta gráfica. Aparece pre seleccionado el modo más elevado que admite su monitor.&lt;/p&gt;
++
++&lt;p&gt;Es posible que su monitor no se detecte automáticamente. En ese caso, seleccione el modo que prefiera manualmente.&lt;/p&gt;
++
++&lt;p&gt;Si su sistema tiene problemas con la tarjeta gráfica durante la instalación, puede que &lt;em&gt;modo de texto&lt;/em&gt; sirva como solución.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallesnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Volver a &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalletmainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,103 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;Alglaadija abi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Welcome to &lt;em&gt;@@@product@@@&lt;/em&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this menu to select the desired function. If you have
++problems navigating in this help system, press
++&lt;em&gt;@@@fkey_help@@@&lt;/em&gt; to enter the &lt;a href=&quot;#help&quot;&gt;kirjeldus&lt;/a&gt; of the help
++system. The main functions in this menu are:
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#harddisk&quot;&gt;Alglaadimine kõvakettalt&lt;/a&gt;: This selection will not do
++anything to the system. It only starts a previously installed
++operating system.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#linux&quot;&gt;Paigaldamine&lt;/a&gt;:
++This installation mode works on most machines. If you experience a
++system freeze during boot or problems with detection of your hardware
++components, such as disk controllers or network cards, try one of the
++following installation options.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#noacpi&quot;&gt;Paigaldamine -- ACPI keelatud&lt;/a&gt;: Many of the
++currently-sold computers have incomplete or faulty ACPI
++implementations. This selection disables ACPI support in the
++kernel, but still enables many performance features, like DMA for IDE
++hard disks.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#nolapic&quot;&gt;Paigaldamine--lokaalne APIC keelatud&lt;/a&gt;:
++If the normal installation fails, this might be due to the
++system hardware not supporting local APIC.
++If this seems to be the case, use this option to
++install without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#failsafe&quot;&gt;Paigaldamine -- turvalised sätted&lt;/a&gt;: If you were not
++successful with &lt;em&gt;Paigaldamine&lt;/em&gt;, this selection might
++solve the issue.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#rescue&quot;&gt;Päästesüsteem&lt;/a&gt;: This boot image starts a small
++Linux system in RAM. This is useful if the system does not start properly.
++After booting this system, log in as root.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#firmware&quot;&gt;Püsivara test&lt;/a&gt;: Runs a BIOS test tool that validates
++ACPI and other parts of your BIOS.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#memtest&quot;&gt;Mälu testimine&lt;/a&gt;: Memory testing is useful for more than
++checking installation of new memory modules. It is a stress test
++for a big part of your computer system and may indicate hardware
++problems.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#opt&quot;&gt;Alglaadimise sätted&lt;/a&gt;: The boot options may change the
++behavior of your system completely. They are settings for
++the kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Help&lt;/a&gt;: This is context sensitive. It will
++show different screens depending on the active element of the
++boot screen. There is also a description of this help system
++available.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Set language and keyboard mapping
++used by the boot loader.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Video Mode&lt;/a&gt;: Here, choose between
++different screen resolutions while installing. If you encounter
++problems with the graphical installation, the &lt;em&gt;tekstirežiim&lt;/em&gt; may
++be a work-around for you.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Installation Source&lt;/a&gt;: Choose the
++installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Driver Update&lt;/a&gt;: For very new machines, a
++driver update may be needed to install the system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalletmainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;Tarkvara tüübi valimine&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++You have the choice to install the 32-bit or 64-bit version of @@@product@@@.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalletmaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;Draiverite uuendamine&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++If you need a driver update floppy or CD-ROM, press &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. The
++boot loader asks you to insert the driver update medium after
++loading the Linux kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++A driver update is typically a floppy with new versions of hardware
++drivers or bug fixes needed during installation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalletmainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,11 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;Paigaldamine -- turvalised sätted&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Paigaldamine -- turvalised sätted&lt;/em&gt; if you encounter hangs
++while installing or irreproducible errors. This option disables DMA
++for IDE drives and all power management features.
++See also the kernel options for &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;,
++&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; and &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalletmainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;Püsivara test&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Starts a BIOS checker that validates the ACPI tables
++and many other parts of your BIOS.
++Test results can be stored on usb disk or saved via network.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalletmainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,16 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;Alglaadimine kõvakettalt&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Laadi paigaldatud OS&lt;/em&gt; to start the system installed on
++your local hard disk. This system must be installed properly, because
++only the MBR (Master Boot Record) on the first hard disk is started.
++The device ID of the first hard disk is provided by the BIOS of
++the computer.
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this if you forgot to remove the CD or DVD from your
++drive and want to start the computer from the hard disk.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalletmainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Abisüsteemi kasutamine&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Nool üles&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Nool alla&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Nool vasakule&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Nool paremale&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Tühik&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;PgUp&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;PgDn&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;End&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalletmaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;Paigaldusallikas&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; to choose an installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++This is the same as using the &lt;a href=&quot;#o_install&quot;&gt;paigaldamine&lt;/a&gt;
++boot option.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalletmainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Keele ja klaviatuuri paigutuse valimine&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalletmainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;Paigaldamine&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Paigaldamine&lt;/em&gt; to start the default installation. The
++&lt;a href=&quot;#opt&quot;&gt;alglaadimise sätted&lt;/a&gt; entered are used in the
++start-up. This item activates many features of commonly available
++hardware.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalletmainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;Mälu testimine&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The included &lt;em&gt;Mälu testimine&lt;/em&gt; provides good possibilities to
++stress test the hardware of a system. Its main purpose is to detect
++broken RAM, but it also stresses many other parts of the system.
++&lt;/p&gt;
++
++&lt;p&gt;
++There is no guarantee that the memory is good if no errors are
++found, although most of memory defects will be found.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalletmainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,24 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;Paigaldamine -- ACPI keelatud&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Current hardware usually requires ACPI (Advanced Configuration and Power Interface)
++to control the interrupt handling.
++ACPI completely replaces the old APM system.
++&lt;/p&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Paigaldamine -- ACPI keelatud&lt;/em&gt; if you encounter
++problems during boot of the kernel. Known problems with machines that
++have problems with ACPI are:
++&lt;ul&gt;
++ &lt;li&gt;kernel freezes when booting&lt;/li&gt;
++ &lt;li&gt;PCI Cards are not detected or initialized properly&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++You may also try the &lt;a href=&quot;#firmware&quot;&gt;Püsivara test&lt;/a&gt; boot option
++and look at the test results of the ACPI validation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalletmainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;Paigaldamine--lokaalne APIC keelatud&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Normally there are no problems with the APIC (Advanced Programmable Interrupt
++Controller). But if you seem to have some, try this option to boot
++without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++Please don't confuse this with &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt;
++(Advanced Configuration and Power Interface).
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalletmainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,28 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Alglaadimise sätted&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++There are two types of boot options available. First, there are
++options that affect the installer. Second, there are kernel
++options. Some of the more common options are:
++&lt;/p&gt;
++
++&lt;p&gt;
++a) installer options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;paigaldamine&lt;/a&gt; -- select an installation source&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#network&quot;&gt;võrgusätted&lt;/a&gt; -- the network options&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;vnc sätted&lt;/a&gt; -- options for installation via VNC&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++b) kernel options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalletmainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;Paigaldussätted: võrgusätted&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++It is possible to configure the network interface right now. The
++hardware will be detected later by YaST2. The minimum set of options
++to configure your network card consists of host IP and netmask. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++or in a shorter form:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++If you specified a &lt;a href=&quot;#o_install&quot;&gt;võrgupõhine paigaldamine&lt;/a&gt; and do
++not specify both of these options, the installer tries to configure
++the network interface with &lt;em&gt;dhcp&lt;/em&gt;. If you need a default
++gateway, specify this with the option &lt;em&gt;lüüs&lt;/em&gt;. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;gateway=192.168.0.8&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalletmainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Kerneli sätted: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalletmainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Kerneli sätted: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalletmainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Kerneli sätted: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalletmainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,30 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;Paigaldussätted: install&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++By default, the local CD-ROMs are searched for the installation source.
++For a network install, select the
++&lt;em&gt;paigaldamine&lt;/em&gt; option. Possible installation protocols are
++&lt;ul&gt;
++ &lt;li&gt;FTP&lt;/li&gt;
++ &lt;li&gt;NFS&lt;/li&gt;
++ &lt;li&gt;HTTP&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The syntax to use is just like standard URLs. For example,
++if your server is found at 192.168.0.1 and you want to do an NFS-based
++install from the directory /install on this server, specify
++the source as follows:
++&lt;ul&gt;
++ &lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The network card will either be configured with &lt;em&gt;dhcp&lt;/em&gt; or you
++must specify the parameters yourself as described in the
++&lt;a href=&quot;#network&quot;&gt;võrgusätted&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalletmainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Kerneli sätted: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalletmainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;Paigaladussätted: vns&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++To enable the VNC installation, specify the
++parameters vnc and vncpassword:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;vnc=1 vncpassword=n2ide&lt;/em&gt;&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The VNC server will be started and you may control YaST2 over any VNC
++client from a remote system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalletmainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;Päästesüsteem&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The &lt;em&gt;Päästesüsteem&lt;/em&gt; is a small RAM disk base system. From there,
++it is possible to make all kinds of changes to an installed system. Because
++only low-level tools are available in this system, it is intended for
++experts.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalletmainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;Videorežiimi valimine&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; to get the list of video modes your graphics card
++supports. The highest mode your monitor can display is preselected.
++&lt;/p&gt;
++
++&lt;p&gt;
++It is possible that your monitor cannot be detected automatically. In that
++case, select your preferred mode manually.
++&lt;/p&gt;
++
++&lt;p&gt;
++If your system has problems with the graphics card during the
++installation, the &lt;em&gt;tekstirežiim&lt;/em&gt; may be a usable work-around.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalletnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Tagasi &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt; juurde&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfimainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;Käynnistyslataimen ohje&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;@@@product@@@&lt;/em&gt;: Tervetuloa&lt;/p&gt;
++
++&lt;p&gt;Valitse tästä valikosta haluttu toiminto. Jos ohjejärjestelmässä ilmenee ongelmia liikkumisessa, paina &lt;em&gt;@@@fkey_help@@@&lt;/em&gt; päästäksesi ohjejärjestelmän &lt;a href=&quot;#help&quot;&gt;kuvaus&lt;/a&gt;. Valikon päätoimintoja ovat:&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#harddisk&quot;&gt;Käynnistä kiintolevyltä&lt;/a&gt;: Tämä valinta ei tee mitään järjestelmälle. Se käynnistää aiemmin asennetun käyttöjärjestelmän.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#linux&quot;&gt;Asennus&lt;/a&gt;: Tämä asennustila toimii useimmissa koneissa. Jos järjestelmä pysähtyy käynnistyksen aikana tai laitteiston tunnistamisessa on ongelmia (levyohjaimet ja verkkokortit), kokeile jotakin seuraavista asennusvalinnoista.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#noacpi&quot;&gt;Asennus -- ACPI poissa käytöstä&lt;/a&gt;: Useissa myynnissä olevissa tietokoneissa on keskeneräinen tai virheellinen ACPI toteutus. Tämä valinta poistaa ACPI -tuen ytimestä, mutta käyttää silti useita suorituskykyä parantavia ominaisuuksia, kuten DMA:ta IDE -kiintolevyille.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#nolapic&quot;&gt;Asennus -- Paikallinen APIC pois käytöstä&lt;/a&gt;: Jos normaali asennus epäonnistuu, tämä voi johtua paikallisen APICin puutteellisesta tuesta järjestelmän laitteille. Jos näin on, käytä tätä valintaa suorittaaksesi asennuksen ilman paikallista APIC tukea.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#failsafe&quot;&gt;Asennus -- Turvalliset asetukset&lt;/a&gt;: Jos et onnistunut &lt;em&gt;Asennus&lt;/em&gt; kanssa, tämä valinta saattaa ratkaista asian.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#rescue&quot;&gt;Korjausjärjestelmä&lt;/a&gt;: Tämä käynnistyslevykuva käynnistää pienen Linux -järjestelmän RAM -muistiin. Se on käytännöllinen, jos järjestelmä ei käynnisty kunnolla. Järjestelmän käynnistyttyä kirjaudu sisään root-käyttäjänä.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#firmware&quot;&gt;Laiteohjelmiston testi&lt;/a&gt;: Suorittaa BIOS tarkistustyökalun joka vahvistaa ACPIn ja muita BIOSin osia.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#memtest&quot;&gt;Muistitesti&lt;/a&gt;: Muistitesti on käytännöllinen muutenkin kuin vain uusien muistimoduulien tarkistamisessa. Se on kestotesti suurelle osalle tietokonettasi ja voi osoittaa mahdolliset laiteongelmat.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#opt&quot;&gt;Käynnistysvalinnat&lt;/a&gt;: Käynnistysvalinnat voivat täydellisesti muuttaa järjestelmän käyttäytymistä. Ne ovat ytimen asetuksia.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Ohje&lt;/a&gt;: Tämä on kontekstiriippuvainen. Se näyttää eri asioita riippuen valitusta käynnistysnäytön kohdasta. Myös ohjejärjestelmän kuvaus on saatavilla.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Aseta käynnistyslataimen käyttämä kieli ja näppäimistökartta.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Videotila&lt;/a&gt;: Tässä valitset asennuksen aikana käytettävän näytönkoon. Jos kohtaat ongelmia graafisessa asennuksessa, &lt;em&gt;tekstitila&lt;/em&gt; voi olla toimiva vaihtoehto.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Asennuslähde&lt;/a&gt;: Valitse asennuslähde.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Ohjainpäivitys&lt;/a&gt;: Uusimmat tietokoneet voivat vaatia ajuripäivityksen, jotta järjestelmän voi asentaa.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfimainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;Ohjelmistotyypin valinta&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Voit valita asennatko 32-bittisen vai 64-bittisen @@@product@@@-version.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfimaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;Ohjainpäivitys&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Jos tarvitset ajurin päivitykseen levykkeen tai CD-ROM -levyn, paina &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. Käynnistyslatain pyytää syöttämään ajurin päivitystietovälineen Linux-ytimen lataamisen jälkeen.&lt;/p&gt;
++
++&lt;p&gt;Ajuripäivitys on yleensä levyke, jossa on uusin versio laiteajureista tai virhekorjaus, jota tarvitaan asennuksen aikana.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfimainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;Asennus -- Turvalliset asetukset&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Valitse &lt;em&gt;Asennus -- Turvalliset asetukset&lt;/em&gt; jos asennus pysähtelee tai esiintyy satunnaisia virheitä. Valinta poistaa käytöstä sekä DMA:n IDE -levyiltä, että kaikki virranhallinta toiminnot. Katso myös ytimen valinnat &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;, &lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; ja &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfimainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;Laiteohjelmiston testi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Käynnistää BIOS-tarkistuksen, joka vahvistaa ACPI-taulut ja monta muuta BIOSin osaa. Tarkistuksen voi tallentaa usb-muistille tai verkkoon.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfimainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;Käynnistä kiintolevyltä&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Valitse &lt;em&gt;Käynnistä asennettu käyttöjärjestelmä&lt;/em&gt; käynnistääksesi paikalliselle kiintolevylle asennetun käyttöjärjestelmän. Järjestelmän tulee olla oikein asennettu, koska vain MBR (Master Boot Record) ensimmäiseltä levyltä käynnistetään. Ensimmäisen kiintolevyn laite ID saadaan tietokoneen BIOS:lta.&lt;/p&gt;
++
++&lt;p&gt;Käytä tätä jos unohdit poistaa CD- tai DVD -levyn asemasta ja haluat käynnistää tietokoneen kiintolevyltä.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfimainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Ohjejärjestelmän käyttäminen&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Käynnistyslataimen ohje on kontekstiriippuvainen. Se antaa tietoja valitusta valikon kohdasta tai, jos muokkaat käynnistysvalintoja, se yrittää hakea tietoa valinnasta, jolla kursori on.&lt;/p&gt;
++
++&lt;p&gt;Ohjausnäppäimet &lt;ul&gt;&lt;li&gt;&lt;em&gt;Nuoli ylös&lt;/em&gt;: korosta aiempi linkki&lt;/li&gt;&lt;li&gt;&lt;em&gt;Nuoli alas&lt;/em&gt;: korosta seuraava linkki&lt;/li&gt;&lt;li&gt;&lt;em&gt;Nuoli vasemmalle&lt;/em&gt;, &lt;em&gt;Askelpalautin&lt;/em&gt;: palaa aiempaan ohjeeseen&lt;/li&gt;&lt;li&gt;&lt;em&gt;Nuoli oikealle&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Välilyönti&lt;/em&gt;: seuraa linkkiä&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: vierittää sivun ylöspäin&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: vierittää sivun alaspäin&lt;/li&gt;&lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: mene sivun alkuun&lt;/li&gt;&lt;li&gt;&lt;em&gt;End&lt;/em&gt;: mene sivun loppuun&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: sulje ohje&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfimaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;Asennuslähde&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Paina &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; valitaksesi asennuslähteen.&lt;/p&gt;
++
++&lt;p&gt;Tämä tarkoittaa samaa kuin &lt;a href=&quot;#o_install&quot;&gt;asenna&lt;/a&gt; käynnistysvalinnan käyttö.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfimainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Kieli ja näppäimistökartta -valinnat&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Paina &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; vaihtaaksesi käynnistyslataimen kieltä ja näppäimistökarttaa.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfimainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;Asennus&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Valitse&lt;em&gt;Asennus&lt;/em&gt; käynnistääksesi oletusasennuksen. &lt;a href=&quot;#opt&quot;&gt;käynnistysvalinnat&lt;/a&gt;:sta käytetään käynnistämiseen. Valinta ottaa käyttöön useita yleisesti käytettävien laitteiden ominaisuuksia.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfimainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;Muistitesti&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Mukana oleva &lt;em&gt;Muistitesti&lt;/em&gt; tarjoaa hyvän mahdollisuuden suorittaa kestotesti järjestelmän laitteille. Sen päätarkoitus on tunnistaa vioittunut RAM -muisti, mutta se rasittaa myös järjestelmän muita osia.&lt;/p&gt;
++
++&lt;p&gt;Ei ole taattua että muisti olisi kunnossa vaikka virheitä ei löytyisi, vaikka yleensä useimmat muistin viat löytyvät.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfimainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;Asennus -- ACPI poissa käytöstä&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Uusimmat laitteistot vaativat joskus ACPIn (Advanced Configuration and Power Interface) ohjaavan keskeytysten hallintaa. ACPI korvaa täysin vanhan APM-järjestelmän.&lt;/p&gt;
++
++&lt;p&gt;Valitse &lt;em&gt;Asennus -- ACPI poissa käytöstä&lt;/em&gt; jos kohtaat ongelmia ytimen käynnistyksen aikana. Tunnettuja ongelmia ACPI:ta käyttävissä koneissa ovat: &lt;ul&gt;&lt;li&gt;ydin pysähtyy käynnistettäessä&lt;/li&gt;&lt;li&gt;PCI -kortteja ei tunnistettu tai alustettu oikein&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Voit myös kokeilla &lt;a href=&quot;#firmware&quot;&gt;Laiteohjelmiston testi&lt;/a&gt; käynnistysvalintaa ja katsoa ACPI vahvistuksen tarkistustuloksen.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfimainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;Asennus -- Paikallinen APIC pois käytöstä&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Normaalisti APIC (Advanced Programmable Interrupt Controller) ei aiheuta ongelmia, mutta törmätessäsi ongelmiin käynnistä tietokone tällä valinnalla ilman paikallista APIC-tukea.&lt;/p&gt;
++
++&lt;p&gt;Älä sekoita tätä &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt;:iin (Advanced Configuration and Power Interface).&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfimainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Käynnistysvalinnat&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Voit valita kahden tyyppisiä käynnistysvalintoja: 1) Valinnat, jotka vaikuttavat asentimeen. 2) Ytimen valinnat. Yleisiä valintoja ovat:&lt;/p&gt;
++
++&lt;p&gt;a) Asentimen valinnat &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;asenna&lt;/a&gt; -- valitse asennuslähde&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#network&quot;&gt;verkon valinnat&lt;/a&gt; -- verkon valinnat&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;vnc valinnat&lt;/a&gt; -- valinnat VNC-asennusta varten&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;b) Ytimen valinnat &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- vaikuta splash-näytön käyttäytymiseen&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- vaihda virranhallinta päälle/pois&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- edistynyt määritys ja virranhallinta (ACPI)&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- ohjaa IDE alijärjestelmää&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfimainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,13 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;Asentimen valinnat: Verkon valinnat&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Verkkoliitäntä on mahdollista määrittää nyt. Laitteisto tunnistetaan myöhemmin YaST2 toimesta. Pakolliset valinnat verkon määrittämiseksi ovat IP-osoite ja aliverkon peite. Esim: &lt;ul&gt;&lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;tai lyhyemmässä muodossa: &lt;ul&gt;&lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Jos määritit &lt;a href=&quot;#o_install&quot;&gt;asennus verkosta&lt;/a&gt;:n etkä määritä molempia näistä valinnoista, asennusohjelma yrittää määrittää verkkoliitännän &lt;em&gt;dhcp&lt;/em&gt;:llä. Jos tarvitset oletusyhdyskäytävän, määritä se valinnalla &lt;em&gt;gateway&lt;/em&gt;. Esim: &lt;ul&gt;&lt;li&gt;gateway=192.168.0.8&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfimainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Ytimen valinnat: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI (Advanced Configuration and Power Interface) on standardi, joka määrittelee virran- ja laitteistohallinnan liittymän käyttöjärjestelmän ja BIOS välillä. Oletuksena &lt;em&gt;acpi&lt;/em&gt; otetaan käyttöön, jos BIOS on uudempi kuin vuodelta 2000. Muutamia yleisesti käytettyjä parametreja ACPI:n ohjaamiseksi ovat: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; - älä käytä ACPI:a ohjaamaan PCI keskeytyksiä&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; - vain ne osat ACPI:sta, jotka kuuluvat käynnistykseen jäävät käyttöön&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- poista ACPI käytöstä kokonaan&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- käyttää ACPI:a vaikka BIOS olisi päivätty ennen vuotta 2000&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Uusissa tietokoneissa tämä korvaa vanhan &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;-järjestelmän.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfimainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Ytimen valinnat: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM on toinen nykyisissä tietokoneissa käytettävistä virranhallinta strategioista. Sitä käytetään pääasiassa kannettavien tietokoneiden toiminnoissa kuten lepotila levylle, mutta se voi olla vastuussa myös tietokoneen sammuttamisesta. APM on riippuvainen toimivasta BIOS:sta. Jos BIOS on rikkinäinen, APM:llä voi olla vain rajoitettua käyttöä, tai se voi jopa estää tietokonetta toimimasta. Tämän takia APM voidaan poistaa käytöstä parametrilla &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- poista APM käytöstä kokonaan&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Uusimmat tietokoneet voivat hyötyä enemmän uudemmasta &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;:sta.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfimainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Ytimen valinnat: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;IDE, toisin kuin SCSI, on yleisesti käytetty useimmissa työasemissa. Ohittaaksesi joitakin IDE-järjestelmien laitteisto-ongelmia, käytä ytimen parametria: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- poista DMA käytöstä IDE-levyiltä&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfimainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;Asentimen valinnat: asenna&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Oletuksena asennuslähteiksi etsitään paikallisia CD-ROM-asemia. Verkkoasennusta varten valitse &lt;em&gt;asenna&lt;/em&gt;. Mahdollisia asennuskäytäntöjä ovat &lt;ul&gt;&lt;li&gt;FTP&lt;/li&gt;&lt;li&gt;NFS&lt;/li&gt;&lt;li&gt;HTTP&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Kirjoitusmuoto on kuten normaaleissa URL-osoitteissa. Esimerkiksi jos palvelin löytyy osoitteesta 192.168.0.1 ja haluat tehdä NFS-pohjaisen asennuksen palvelimen /install hakemistosta, määritä asennuslähde seuraavasti: &lt;ul&gt;&lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Verkkokortti määritetään joko &lt;em&gt;dhcp&lt;/em&gt;:llä, tai sinun pitää määrittää parametrit, kuten on kuvattu &lt;a href=&quot;#network&quot;&gt;verkon valinnat&lt;/a&gt; kohdassa.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfimainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Ytimen valinnat: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Splash-näyttö on kuva, joka näytetään järjestelmän käynnistyksen yhteydessä. &lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- Splash-näyttö ei ole käytössä. Tämä voi olla käytännöllistä todella vanhojen monitoreiden kanssa, tai jos virheitä ilmenee.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Ottaa käyttöön splash-näytön, ydin- ja käynnistysviestit näkyvät silti.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Ottaa käyttöön splash-näytön, mutta ei viestejä. Näiden sijasta käytetään etenemispalkki.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfimainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;Asentimen valinnat: vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Ottaaksesi käyttöön VNC-asennuksen, määritä parametrit vnc ja vncpassword: &lt;ul&gt;&lt;li&gt;&lt;em&gt;vnc=1 vncpassword=esimerkki&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;VNC-palvelin käynnistetään ja voit hallita YaST2:sta millä tahansa VNC -asiakasohjelmalla etäjärjestelmästä.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfimainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;Korjausjärjestelmä&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;Korjausjärjestelmä&lt;/em&gt; on pieni RAM-levypohjainen perusjärjestelmä. Sen kautta on mahdollista tehdä kaikenlaisia muutoksia asennettuun järjestelmään. Koska vain matalan tason työkalut ovat saatavilla, se on tarkoitettu asiantuntijoille.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfimainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;Videotilan valinta&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Paina &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; saadaksesi luettelon näytönohjaimesi tukemista näyttötiloista. Korkein tila, jota näyttösi voi käyttää on esivalittu.&lt;/p&gt;
++
++&lt;p&gt;On mahdollista että näyttöäsi ei voida tunnistaa automaattisesti. Tässä tapauksessa valitse haluamasi tila käsin.&lt;/p&gt;
++
++&lt;p&gt;Jos järjestelmälläsi on ongelmia näytönohjaimen kanssa asennuksen aikana, &lt;em&gt;tekstitila&lt;/em&gt; voi olla toimiva vaihtoehto.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfinavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Palaa &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfrmainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;Aide sur le chargeur d'amorçage&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Bienvenue sur &lt;em&gt;@@@product@@@&lt;/em&gt;&lt;/p&gt;
++
++&lt;p&gt;Utilisez ce menu pour sélectionner la fonction désirée. Si vous rencontrez des problèmes de navigation dans ce système d'aide, appuyez sur &lt;em&gt;@@@fkey_help@@@&lt;/em&gt; pour entrer dans la &lt;a href=&quot;#help&quot;&gt;description&lt;/a&gt; du système d'aide. Les fonctions principales du menu sont :&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#harddisk&quot;&gt;Amorcer depuis le disque dur&lt;/a&gt; : cette opération n'agit pas sur le système. Elle permet seulement de démarrer un système d'exploitation installé précédemment.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#linux&quot;&gt;Installation&lt;/a&gt; : ce mode d'installation fonctionne sur la plupart des machines. Si vous rencontrez un gel du système lors de l'amorçage ou des problèmes de reconnaissance des composants matériels tels que les contrôleurs de disque ou cartes réseau, essayez l'une des options d'installation suivantes.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#noacpi&quot;&gt;Installation -- ACPI désactivé&lt;/a&gt; : en général, les ordinateurs vendus actuellement ont des implémentations ACPI incomplètes ou défectueuses. Pour désactiver la prise en charge ACPI dans le kernel, utilisez la présente option. Celle-ci laisse toutefois actives de nombreuses fonctions de performances, notamment DMA pour les disques durs IDE.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#nolapic&quot;&gt;Installation - APIC local désactivé&lt;/a&gt; : Si l'installation normale échoue, cela peut être dû au fait que le matériel ne prend pas en charge l'APIC locale. Dans ce cas, utilisez cette option pour procéder à l'installation sans la prise en charge l'APIC locale.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#failsafe&quot;&gt;Installation -- Paramètres sécurisés&lt;/a&gt; : en cas d'échec avec &lt;em&gt;Installation&lt;/em&gt;, cette option peut résoudre votre problème.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#rescue&quot;&gt;Système de secours&lt;/a&gt; : cette image d'amorçage démarre un petit système Linux en RAM. Cela est utile si le système ne démarre pas correctement. Une fois ce système amorcé, connectez-vous en tant que super-utilisateur (root).&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#firmware&quot;&gt;Test de microprogramme&lt;/a&gt; : Lance un outil de test du BIOS qui valide l'ACPI et d'autres parties de votre BIOS.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#memtest&quot;&gt;Test de mémoire&lt;/a&gt; : le test de mémoire n'est pas uniquement utile à la vérification de l'installation des nouveaux modules de mémoire. C'est un test pour une grande partie de votre système et peut révéler des problèmes matériels.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#opt&quot;&gt;Options d'amorçage&lt;/a&gt; : les options d'amorçage peuvent changer complètement le fonctionnement de votre système. Elles correspondent aux paramètres du kernel.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Aide&lt;/a&gt; : cette aide est contextuelle. Elle affichera différents écrans selon l'élément actif de l'écran d'amorçage. Une description de ce système d'aide est également disponible.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt; : cette fonction permet de définir la langue et la disposition du clavier utilisées par le chargeur d'amorçage.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Mode Video&lt;/a&gt; : cette fonction permet de choisir entre différentes résolutions d'écran lors de l'installation. Si vous rencontrez des problèmes avec l'installation graphique, le &lt;em&gt;Mode texte&lt;/em&gt; peut vous permettre de contourner le problème.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Source d'installation&lt;/a&gt; : cette fonction permet de choisir la source d'installation.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Mise à jour de pilote&lt;/a&gt; : pour les machines très récentes, une mise à jour de pilotes peut être nécessaire pour installer le système.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfrmainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;Sélection du type de logiciel&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Vous pouvez installer la version 32 ou 64 bits de @@@product@@@.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfrmaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;Mise à jour de pilotes&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Si vous nécessitez une disquette ou un CD de mise à jour des pilotes, appuyez sur &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. Le chargeur d'amorçage vous demandera d'insérer le support de mise à jour de pilotes après le chargement du noyau Linux.&lt;/p&gt;
++
++&lt;p&gt;En général, une mise à jour de pilotes est une disquette contenant la nouvelle version de pilotes matériels ou les corrections de bogues nécessaires à l'installation.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfrmainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;Installation -- Paramètres sécurisés&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Sélectionnez &lt;em&gt;Installation -- Paramètres sécurisés&lt;/em&gt; si votre système reste bloqué lors de l'installation ou si des erreurs non re-productibles se produisent. Cette option désactive DMA pour les unités IDE et toutes les fonctions de gestion de l'alimentation. Reportez-vous également aux options de noyau de &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;, &lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; et &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfrmainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;Test de microprogramme&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Démarre un vérificateur de BIOS qui valide les tables ACPI et un grand nombre d'autres parties de votre BIOS. Les résultats de test peuvent être stockés sur un disque usb ou enregistrées sur le réseau. &lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfrmainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;Amorcer depuis le disque dur&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Sélectionnez &lt;em&gt;Amorcer le système installé&lt;/em&gt; pour démarrer le système installé sur votre disque dur local. Ce système doit être installé correctement parce que seul le MBR (Master Boot Record - secteur d'amorçage principal) du premier disque dur est démarré. L'ID matériel du premier disque dur est fourni par le BIOS de l'ordinateur. &lt;/p&gt;
++
++&lt;p&gt;Utilisez ce moyen si vous avez oublié de retirer le CD ou le DVD du lecteur et si vous voulez démarrer l'ordinateur depuis le disque dur.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfrmainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Utilisation du système d'aide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;L'aide en ligne du chargeur d'amorçage est contextuelle. Elle fournit des informations sur l'élément du menu sélectionné. Lors de la modification de la configuration d'amorçage, elle recherche des informations sur l'option indiquée par l'emplacement du curseur.&lt;/p&gt;
++
++&lt;p&gt;Touches de navigation &lt;ul&gt;&lt;li&gt;&lt;em&gt;Flèche haut&lt;/em&gt; : mettre en sur-brillance le lien précédent&lt;/li&gt;&lt;li&gt;&lt;em&gt;Flèche bas&lt;/em&gt; : mettre en sur-brillance le lien suivant&lt;/li&gt;&lt;li&gt;&lt;em&gt;Flèche gauche&lt;/em&gt;, &lt;em&gt;Retour arrière&lt;/em&gt; : retour à la rubrique précédente&lt;/li&gt;&lt;li&gt;&lt;em&gt;Flèche droite&lt;/em&gt;, &lt;em&gt;Entrée&lt;/em&gt;, &lt;em&gt;Espace&lt;/em&gt; : suivre le lien&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page haut&lt;/em&gt; : faire défiler une page vers le haut&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page bas&lt;/em&gt; : faire défiler une page vers le bas&lt;/li&gt;&lt;li&gt;&lt;em&gt;Domicile&lt;/em&gt; : aller au début de la page&lt;/li&gt;&lt;li&gt;&lt;em&gt;Fin&lt;/em&gt; : aller à la fin de la page&lt;/li&gt;&lt;li&gt;&lt;em&gt;Échap&lt;/em&gt; : quitter l'aide&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfrmaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;Source d'installation&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Appuyez &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; pour choisir une source d'installation&lt;/p&gt;
++
++&lt;p&gt;Cette opération revient au même que d'utiliser l'option d'amorçage &lt;a href=&quot;#o_install&quot;&gt;install&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfrmainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Sélection de la langue et de la disposition du clavier&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Appuyez sur &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; pour changer la langue et la disposition du clavier utilisées par le chargeur d'amorçage.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfrmainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;Installation&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Sélectionnez &lt;em&gt;Installation&lt;/em&gt; pour démarrer l'installation par défaut. Les &lt;a href=&quot;#opt&quot;&gt;Options d'amorçage&lt;/a&gt; entrées sont utilisées lors du démarrage. Cet élément active de nombreuses fonctions du matériel couramment disponible.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfrmainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;Test de mémoire&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Le &lt;em&gt;Test de mémoire&lt;/em&gt; inclus fournit de bonnes possibilités de procéder à des tests de contraintes du matériel. Il vise principalement à détecter des RAM défectueuses mais il teste également beaucoup d'autres parties du système.&lt;/p&gt;
++
++&lt;p&gt;Il n'y a aucune garantie que la mémoire est bonne si aucune erreur n'est trouvée, bien que la plupart des défauts de la mémoire soient détectés.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfrmainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;Installation -- ACPI désactivé&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Les matériels actuels nécessitent généralement l'ACPI (Advanced Configuration and Power Interface) pour gérer les interruptions. L'ACPI remplace totalement l'ancien système APM.&lt;/p&gt;
++
++&lt;p&gt;Sélectionnez &lt;em&gt;Installation -- ACPI désactivé&lt;/em&gt; si vous rencontrez des problèmes lors de l'amorçage du noyau. Les problèmes connus avec ACPI sont : &lt;ul&gt;&lt;li&gt;gels du noyau lors de l'amorçage&lt;/li&gt;&lt;li&gt;Les cartes PCI ne sont pas détectées ou initialisées correctement&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Vous pouvez aussi essayer l'option d'amorçage &lt;a href=&quot;#firmware&quot;&gt;Test de microprogramme&lt;/a&gt; et regarder les résultats de la validation ACPI.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfrmainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;Installation - APIC local désactivé&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Normalement, il n'existe pas de problème avec l'APIC (Advanced Programmable Interrupt Controller). Par contre, s'il vous semble que vous en rencontrez un, essayez cette option pour procéder à l'amorçage sans la prise en charge APIC locale.&lt;/p&gt;
++
++&lt;p&gt;Merci de ne pas confondre avec &lt;a href=&quot;#noacpi&quot;&gt;acpi&lt;/a&gt; (Advanced Configuration and Power Interface).&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfrmainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Options d'amorçage&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Il y a deux types d'options d'amorçage disponibles. Celles qui agissent sur l'installateur et celles du noyau. Les plus courantes sont notamment les suivantes :&lt;/p&gt;
++
++&lt;p&gt;a) Options du programme d'installation &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;install&lt;/a&gt; -- sélectionne une source d'installation&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#network&quot;&gt;options réseau&lt;/a&gt; -- les options réseau&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;options VNC&lt;/a&gt; -- les options d'installation via VNC&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;b) Options du noyau &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- détermine le fonctionnement de l'écran de démarrage&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- active ou non la fonction de gestion de l'alimentation&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- configuration avancée et interface de gestion de l'alimentation&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- contrôle le sous-système IDE&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfrmainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,13 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;Options du programme d'installation : options réseau&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Il est possible de configurer l'interface réseau dès maintenant. Le matériel sera détecté ultérieurement par YaST2. Le jeu minimum d'options pour configurer votre carte réseau consiste en l'IP d'hôte et le masque réseau. Par exemple :&lt;ul&gt;&lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;ou dans une forme plus courte : &lt;ul&gt;&lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Si vous spécifiez une &lt;a href=&quot;#o_install&quot;&gt;installation basée réseau&lt;/a&gt; et ne définissez aucune de ces deux options, le programme d'installation essaie de configurer l'interface réseau avec &lt;em&gt;DHCP&lt;/em&gt;. Si vous nécessitez une passerelle par défaut, spécifiez-le avec l'option &lt;em&gt;Passerelle&lt;/em&gt;. Par exemple : &lt;ul&gt;&lt;li&gt;gateway=192.168.0.8&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfrmainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Options de kernel : acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Le standard ACPI (Advanced Configuration and Power Interface) définit les interfaces de gestion d'alimentation et de configuration entre un système d'exploitation et le BIOS. Par défaut, &lt;em&gt;acpi&lt;/em&gt; est activé lorsqu'un BIOS ultérieur à l'année 2000 est détecté. Il existe plusieurs paramètres utilisés couramment pour contrôler le fonctionnement de ACPI : ul&amp;gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- ne pas utiliser ACPI pour router les interruptions PCI&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- seules les parties de ACPI en rapport avec l'amorçage restent activées&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- désactiver complètement ACPI&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- activer ACPI même si votre BIOS est antérieur à 2000&lt;/li&gt;&lt;/p&gt;
++
++&lt;p&gt;Le remplacement de l'ancien système &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; s'applique notamment aux nouveaux ordinateurs.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfrmainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Options de kernel : apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM est l'une des deux stratégies de gestion de l'alimentation des ordinateurs actuels. Elle est utilisée principalement sur les ordinateurs portables pour des fonctions telles que la mise en veille sur disque. Par ailleurs, elle peut désactiver l'ordinateur après sa mise hors tension. APM dépend du fonctionnement correct du BIOS. Si le BIOS est défectueux, APM peut être d'une utilité limitée ou même empêcher l'ordinateur de fonctionner. Dans ces cas, elle peut être désactivée à l'aide du paramètre &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- désactiver complètement APM&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Certains ordinateurs très récent pourront tirer un plus grand avantage en utilisant le nouveau &lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfrmainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Options de kernel : ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;À la différence de SCSI, IDE est couramment utilisé sur la plupart des postes de travail de bureau. Pour contourner certains problèmes matériels des systèmes IDE, utilisez le paramètre de noyau suivant : &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- désactiver le DMA pour les lecteurs IDE&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfrmainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;Options du programme d'installation : install&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Par défaut, la source d'installation est recherchée dans les CD-ROM locaux. Pour une installation réseau, sélectionnez l'option &lt;em&gt;install&lt;/em&gt;. Les protocoles d'installation possibles sont &lt;ul&gt;&lt;li&gt;FTP&lt;/li&gt;&lt;li&gt;NFS&lt;/li&gt;&lt;li&gt;HTTP&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;La syntaxe à utiliser est simplement comme celle des URL standard. Par exemple, si votre serveur se trouve à l'adresse 192.168.0.1 et si vous voulez procéder à une installation basée NFS depuis le répertoire /install de ce serveur, spécifiez la source comme suit :&lt;ul&gt;&lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;La carte réseau sera configurée avec &lt;em&gt;DHCP&lt;/em&gt; ou vous devrez spécifier les paramètres vous-même conformément à la description &lt;a href=&quot;#network&quot;&gt;options réseau&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfrmainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Options de kernel : splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;L'écran de démarrage est l'image affichée durant l'amorçage du système.&lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- L'écran de démarrage est désactivé. Ça peut être utile avec des moniteurs très anciens ou si certaines erreurs surviennent.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Active l'écran de démarrage sans faire disparaître les messages du noyau et d'amorçage.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Active l'écran de démarrage sans les messages. À la place, une barre de progression est représentée.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfrmainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;Options du programme d'installation : vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Pour activer l'installation VNC, spécifiez les paramètres vnc et vncpassword :&lt;ul&gt;&lt;li&gt;&lt;em&gt;vnc=1 vncpassword=example&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Le serveur VNC sera démarré et vous pourrez contrôler YaST2 sur tout client VNC depuis un système distant.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfrmainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;Système de secours&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Le &lt;em&gt;Système de secours&lt;/em&gt; est un petit système de base sur RAM. Depuis ce système, il est possible de procéder à tous les types de changements sur un système installé. Étant donné que ce système ne dispose que d'outils de bas niveau, il est réservé aux experts.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfrmainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;Sélection du mode vidéo&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Appuyez sur &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; pour obtenir la liste des modes vidéo pris en charge par votre carte graphique. Le mode d'affichage maximum de votre moniteur est pré sélectionné.&lt;/p&gt;
++
++&lt;p&gt;Il est possible que votre moniteur ne soit pas détecté automatiquement. Dans ce cas, sélectionnez votre mode préféré manuellement.&lt;/p&gt;
++
++&lt;p&gt;Si votre système rencontre des problèmes avec la carte graphique lors de l'installation, le &lt;em&gt;Mode texte&lt;/em&gt; peut vous permettre de contourner le problème.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfrnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Retour à la rubrique &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallglmainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,103 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;Axuda do Cargador de Arrinque&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Welcome to &lt;em&gt;@@@product@@@&lt;/em&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this menu to select the desired function. If you have
++problems navigating in this help system, press
++&lt;em&gt;@@@fkey_help@@@&lt;/em&gt; to enter the &lt;a href=&quot;#help&quot;&gt;descrición&lt;/a&gt; of the help
++system. The main functions in this menu are:
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#harddisk&quot;&gt;Arrincar dende o Disco Duro&lt;/a&gt;: This selection will not do
++anything to the system. It only starts a previously installed
++operating system.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#linux&quot;&gt;Instalación&lt;/a&gt;:
++This installation mode works on most machines. If you experience a
++system freeze during boot or problems with detection of your hardware
++components, such as disk controllers or network cards, try one of the
++following installation options.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#noacpi&quot;&gt;Instalación -- ACPI Deshabilitado&lt;/a&gt;: Many of the
++currently-sold computers have incomplete or faulty ACPI
++implementations. This selection disables ACPI support in the
++kernel, but still enables many performance features, like DMA for IDE
++hard disks.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#nolapic&quot;&gt;Instalación -- APIC Local Deshabilitado&lt;/a&gt;:
++If the normal installation fails, this might be due to the
++system hardware not supporting local APIC.
++If this seems to be the case, use this option to
++install without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#failsafe&quot;&gt;Instalación -- Opcións Seguras&lt;/a&gt;: If you were not
++successful with &lt;em&gt;Instalación&lt;/em&gt;, this selection might
++solve the issue.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#rescue&quot;&gt;Rescatar Sistema&lt;/a&gt;: This boot image starts a small
++Linux system in RAM. This is useful if the system does not start properly.
++After booting this system, log in as root.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#firmware&quot;&gt;Proba de Firmware&lt;/a&gt;: Runs a BIOS test tool that validates
++ACPI and other parts of your BIOS.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#memtest&quot;&gt;Proba de Memoria&lt;/a&gt;: Memory testing is useful for more than
++checking installation of new memory modules. It is a stress test
++for a big part of your computer system and may indicate hardware
++problems.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#opt&quot;&gt;Opcións de Arrinque&lt;/a&gt;: The boot options may change the
++behavior of your system completely. They are settings for
++the kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Help&lt;/a&gt;: This is context sensitive. It will
++show different screens depending on the active element of the
++boot screen. There is also a description of this help system
++available.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Set language and keyboard mapping
++used by the boot loader.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Video Mode&lt;/a&gt;: Here, choose between
++different screen resolutions while installing. If you encounter
++problems with the graphical installation, the &lt;em&gt;modo texto&lt;/em&gt; may
++be a work-around for you.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Installation Source&lt;/a&gt;: Choose the
++installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Driver Update&lt;/a&gt;: For very new machines, a
++driver update may be needed to install the system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallglmainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;Selección de Tipo de Software&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++You have the choice to install the 32-bit or 64-bit version of @@@product@@@.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallglmaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;Actualización de Driver&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++If you need a driver update floppy or CD-ROM, press &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. The
++boot loader asks you to insert the driver update medium after
++loading the Linux kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++A driver update is typically a floppy with new versions of hardware
++drivers or bug fixes needed during installation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallglmainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,11 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;Instalación -- Opcións Seguras&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Instalación -- Opcións Seguras&lt;/em&gt; if you encounter hangs
++while installing or irreproducible errors. This option disables DMA
++for IDE drives and all power management features.
++See also the kernel options for &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;,
++&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; and &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallglmainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;Proba de Firmware&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Starts a BIOS checker that validates the ACPI tables
++and many other parts of your BIOS.
++Test results can be stored on usb disk or saved via network.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallglmainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,16 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;Arrincar dende o Disco Duro&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Arrincar SO Instalado&lt;/em&gt; to start the system installed on
++your local hard disk. This system must be installed properly, because
++only the MBR (Master Boot Record) on the first hard disk is started.
++The device ID of the first hard disk is provided by the BIOS of
++the computer.
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this if you forgot to remove the CD or DVD from your
++drive and want to start the computer from the hard disk.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallglmainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Usando o Sistema de Axuda&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Frecha Arriba&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Frecha Abaixo&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Frecha Esquerda&lt;/em&gt;, &lt;em&gt;Retroceso&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Frecha Dereita&lt;/em&gt;, &lt;em&gt;Intro&lt;/em&gt;, &lt;em&gt;Espazo&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Re Páx&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Av Páx&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Inicio&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Fin&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallglmaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;Fonte de Instalación&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; to choose an installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++This is the same as using the &lt;a href=&quot;#o_install&quot;&gt;install&lt;/a&gt;
++boot option.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallglmainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Selección de Lingua e Disposición de Teclado&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallglmainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;Instalación&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Instalación&lt;/em&gt; to start the default installation. The
++&lt;a href=&quot;#opt&quot;&gt;opcións de arrinque&lt;/a&gt; entered are used in the
++start-up. This item activates many features of commonly available
++hardware.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallglmainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;Proba de Memoria&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The included &lt;em&gt;Proba de Memoria&lt;/em&gt; provides good possibilities to
++stress test the hardware of a system. Its main purpose is to detect
++broken RAM, but it also stresses many other parts of the system.
++&lt;/p&gt;
++
++&lt;p&gt;
++There is no guarantee that the memory is good if no errors are
++found, although most of memory defects will be found.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallglmainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,24 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;Instalación -- ACPI Deshabilitado&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Current hardware usually requires ACPI (Advanced Configuration and Power Interface)
++to control the interrupt handling.
++ACPI completely replaces the old APM system.
++&lt;/p&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Instalación -- ACPI Deshabilitado&lt;/em&gt; if you encounter
++problems during boot of the kernel. Known problems with machines that
++have problems with ACPI are:
++&lt;ul&gt;
++ &lt;li&gt;kernel freezes when booting&lt;/li&gt;
++ &lt;li&gt;PCI Cards are not detected or initialized properly&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++You may also try the &lt;a href=&quot;#firmware&quot;&gt;Proba de Firmware&lt;/a&gt; boot option
++and look at the test results of the ACPI validation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallglmainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;Instalación -- APIC Local Deshabilitado&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Normally there are no problems with the APIC (Advanced Programmable Interrupt
++Controller). But if you seem to have some, try this option to boot
++without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++Please don't confuse this with &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt;
++(Advanced Configuration and Power Interface).
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallglmainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,28 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Opcións de Arrinque&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++There are two types of boot options available. First, there are
++options that affect the installer. Second, there are kernel
++options. Some of the more common options are:
++&lt;/p&gt;
++
++&lt;p&gt;
++a) installer options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;install&lt;/a&gt; -- select an installation source&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#network&quot;&gt;opcións de rede&lt;/a&gt; -- the network options&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;opcións vnc&lt;/a&gt; -- options for installation via VNC&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++b) kernel options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallglmainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;Opcións do Instalador: Opcións de Rede&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++It is possible to configure the network interface right now. The
++hardware will be detected later by YaST2. The minimum set of options
++to configure your network card consists of host IP and netmask. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++or in a shorter form:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++If you specified a &lt;a href=&quot;#o_install&quot;&gt;instalación por rede&lt;/a&gt; and do
++not specify both of these options, the installer tries to configure
++the network interface with &lt;em&gt;dhcp&lt;/em&gt;. If you need a default
++gateway, specify this with the option &lt;em&gt;gateway&lt;/em&gt;. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;gateway=192.168.0.8&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallglmainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Opcións do Kernel: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallglmainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Opcións do Kernel: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallglmainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Opcións do Kernel: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallglmainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,30 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;Opcións do Instalador: install&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++By default, the local CD-ROMs are searched for the installation source.
++For a network install, select the
++&lt;em&gt;install&lt;/em&gt; option. Possible installation protocols are
++&lt;ul&gt;
++ &lt;li&gt;FTP&lt;/li&gt;
++ &lt;li&gt;NFS&lt;/li&gt;
++ &lt;li&gt;HTTP&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The syntax to use is just like standard URLs. For example,
++if your server is found at 192.168.0.1 and you want to do an NFS-based
++install from the directory /install on this server, specify
++the source as follows:
++&lt;ul&gt;
++ &lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The network card will either be configured with &lt;em&gt;dhcp&lt;/em&gt; or you
++must specify the parameters yourself as described in the
++&lt;a href=&quot;#network&quot;&gt;opcións de rede&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallglmainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Opcións do Kernel: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallglmainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;Opcións do Instalador: vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++To enable the VNC installation, specify the
++parameters vnc and vncpassword:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;vnc=1 vncpassword=exemplo&lt;/em&gt;&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The VNC server will be started and you may control YaST2 over any VNC
++client from a remote system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallglmainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;Rescatar Sistema&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The &lt;em&gt;Rescatar Sistema&lt;/em&gt; is a small RAM disk base system. From there,
++it is possible to make all kinds of changes to an installed system. Because
++only low-level tools are available in this system, it is intended for
++experts.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallglmainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;Selección de Modo de Vídeo&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; to get the list of video modes your graphics card
++supports. The highest mode your monitor can display is preselected.
++&lt;/p&gt;
++
++&lt;p&gt;
++It is possible that your monitor cannot be detected automatically. In that
++case, select your preferred mode manually.
++&lt;/p&gt;
++
++&lt;p&gt;
++If your system has problems with the graphics card during the
++installation, the &lt;em&gt;modo texto&lt;/em&gt; may be a usable work-around.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallglnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,3 @@
++&lt;p&gt;
++Return to &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallgumainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,103 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;બુટ લોડર મદદ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Welcome to &lt;em&gt;@@@product@@@&lt;/em&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this menu to select the desired function. If you have
++problems navigating in this help system, press
++&lt;em&gt;@@@fkey_help@@@&lt;/em&gt; to enter the &lt;a href=&quot;#help&quot;&gt;વર્ણન&lt;/a&gt; of the help
++system. The main functions in this menu are:
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#harddisk&quot;&gt;હાર્ડ ડિસ્ક પરથી બુટ&lt;/a&gt;: This selection will not do
++anything to the system. It only starts a previously installed
++operating system.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#linux&quot;&gt;ઈન્સ્ટોલેશન&lt;/a&gt;:
++This installation mode works on most machines. If you experience a
++system freeze during boot or problems with detection of your hardware
++components, such as disk controllers or network cards, try one of the
++following installation options.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#noacpi&quot;&gt;ઈન્સ્ટોલેશન -- ACPI ડિસેબલ્ડ&lt;/a&gt;: Many of the
++currently-sold computers have incomplete or faulty ACPI
++implementations. This selection disables ACPI support in the
++kernel, but still enables many performance features, like DMA for IDE
++hard disks.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#nolapic&quot;&gt;ઈન્સ્ટોલેશન -- Local APIC ડિસેબલ્ડ&lt;/a&gt;:
++If the normal installation fails, this might be due to the
++system hardware not supporting local APIC.
++If this seems to be the case, use this option to
++install without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#failsafe&quot;&gt;ઈન્સ્ટોલેશન -- સલામતીભર્યા સેટિન્ગસ&lt;/a&gt;: If you were not
++successful with &lt;em&gt;ઈન્સ્ટોલેશન&lt;/em&gt;, this selection might
++solve the issue.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#rescue&quot;&gt;રેસ્ક્યુ સિસ્ટમ&lt;/a&gt;: This boot image starts a small
++Linux system in RAM. This is useful if the system does not start properly.
++After booting this system, log in as root.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#firmware&quot;&gt;ફર્મવેર ટેસ્ટ&lt;/a&gt;: Runs a BIOS test tool that validates
++ACPI and other parts of your BIOS.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#memtest&quot;&gt;મેમરી ટેસ્ટ&lt;/a&gt;: Memory testing is useful for more than
++checking installation of new memory modules. It is a stress test
++for a big part of your computer system and may indicate hardware
++problems.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#opt&quot;&gt;બુટ વિકલ્પો&lt;/a&gt;: The boot options may change the
++behavior of your system completely. They are settings for
++the kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Help&lt;/a&gt;: This is context sensitive. It will
++show different screens depending on the active element of the
++boot screen. There is also a description of this help system
++available.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Set language and keyboard mapping
++used by the boot loader.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Video Mode&lt;/a&gt;: Here, choose between
++different screen resolutions while installing. If you encounter
++problems with the graphical installation, the &lt;em&gt;ટેક્સ્ટ મોડ&lt;/em&gt; may
++be a work-around for you.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Installation Source&lt;/a&gt;: Choose the
++installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Driver Update&lt;/a&gt;: For very new machines, a
++driver update may be needed to install the system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallgumainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;સોફ્ટવેર પ્રકારની પસંદગી&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++You have the choice to install the 32-bit or 64-bit version of @@@product@@@.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallgumaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;ડ્રાયવર અપડેટ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++If you need a driver update floppy or CD-ROM, press &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. The
++boot loader asks you to insert the driver update medium after
++loading the Linux kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++A driver update is typically a floppy with new versions of hardware
++drivers or bug fixes needed during installation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallgumainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,11 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;ઈન્સ્ટોલેશન -- સલામતીભર્યા સેટિન્ગસ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;ઈન્સ્ટોલેશન -- સલામતીભર્યા સેટિન્ગસ&lt;/em&gt; if you encounter hangs
++while installing or irreproducible errors. This option disables DMA
++for IDE drives and all power management features.
++See also the kernel options for &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;,
++&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; and &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallgumainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;ફર્મવેર ટેસ્ટ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Starts a BIOS checker that validates the ACPI tables
++and many other parts of your BIOS.
++Test results can be stored on usb disk or saved via network.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallgumainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,16 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;હાર્ડ ડિસ્ક પરથી બુટ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;બુટ ઈન્સ્ટોલ્ડ OS&lt;/em&gt; to start the system installed on
++your local hard disk. This system must be installed properly, because
++only the MBR (Master Boot Record) on the first hard disk is started.
++The device ID of the first hard disk is provided by the BIOS of
++the computer.
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this if you forgot to remove the CD or DVD from your
++drive and want to start the computer from the hard disk.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallgumainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;મદદ સિસ્ટમ વાપરવી&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ઉપર જતું તીર&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;નીચે જતું તીર&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;ડાબે જતું તીર&lt;/em&gt;, &lt;em&gt;બેકસ્પેસ&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;જમણે જતું તીર&lt;/em&gt;, &lt;em&gt;એન્ટર&lt;/em&gt;, &lt;em&gt;સ્પેસ&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;ઉપર નું પૃષ્ઠ&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;નીચે નું પૃષ્ઠ&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;ઘર&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;છેડે&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;એસ્કેપ&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallgumaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;ઈન્સ્ટોલેશન સોર્સ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; to choose an installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++This is the same as using the &lt;a href=&quot;#o_install&quot;&gt;ઈન્સ્ટોલ&lt;/a&gt;
++boot option.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallgumainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;ભાષા અને કીબોર્ડ લેઆઉટ પસંદગી&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallgumainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;ઈન્સ્ટોલેશન&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;ઈન્સ્ટોલેશન&lt;/em&gt; to start the default installation. The
++&lt;a href=&quot;#opt&quot;&gt;બુટ વિકલ્પો&lt;/a&gt; entered are used in the
++start-up. This item activates many features of commonly available
++hardware.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallgumainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;મેમરી ટેસ્ટ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The included &lt;em&gt;મેમરી ટેસ્ટ&lt;/em&gt; provides good possibilities to
++stress test the hardware of a system. Its main purpose is to detect
++broken RAM, but it also stresses many other parts of the system.
++&lt;/p&gt;
++
++&lt;p&gt;
++There is no guarantee that the memory is good if no errors are
++found, although most of memory defects will be found.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallgumainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,24 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;ઈન્સ્ટોલેશન -- ACPI ડિસેબલ્ડ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Current hardware usually requires ACPI (Advanced Configuration and Power Interface)
++to control the interrupt handling.
++ACPI completely replaces the old APM system.
++&lt;/p&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;ઈન્સ્ટોલેશન -- ACPI ડિસેબલ્ડ&lt;/em&gt; if you encounter
++problems during boot of the kernel. Known problems with machines that
++have problems with ACPI are:
++&lt;ul&gt;
++ &lt;li&gt;kernel freezes when booting&lt;/li&gt;
++ &lt;li&gt;PCI Cards are not detected or initialized properly&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++You may also try the &lt;a href=&quot;#firmware&quot;&gt;ફર્મવેર ટેસ્ટ&lt;/a&gt; boot option
++and look at the test results of the ACPI validation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallgumainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;ઈન્સ્ટોલેશન -- Local APIC ડિસેબલ્ડ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Normally there are no problems with the APIC (Advanced Programmable Interrupt
++Controller). But if you seem to have some, try this option to boot
++without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++Please don't confuse this with &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt;
++(Advanced Configuration and Power Interface).
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallgumainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,28 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;બુટ વિકલ્પો&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++There are two types of boot options available. First, there are
++options that affect the installer. Second, there are kernel
++options. Some of the more common options are:
++&lt;/p&gt;
++
++&lt;p&gt;
++a) installer options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;ઈન્સ્ટોલ&lt;/a&gt; -- select an installation source&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#network&quot;&gt;નેટવર્ક વિકલ્પો&lt;/a&gt; -- the network options&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;vnc વિકલ્પો&lt;/a&gt; -- options for installation via VNC&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++b) kernel options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;સ્પ્લેશ&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallgumainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;ઈન્સ્ટોલર વિકલ્પો: નેટવર્ક વિકલ્પો&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++It is possible to configure the network interface right now. The
++hardware will be detected later by YaST2. The minimum set of options
++to configure your network card consists of host IP and netmask. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++or in a shorter form:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++If you specified a &lt;a href=&quot;#o_install&quot;&gt;નેટવર્ક-બેઝ્ડ ઈન્સ્ટોલ&lt;/a&gt; and do
++not specify both of these options, the installer tries to configure
++the network interface with &lt;em&gt;dhcp&lt;/em&gt;. If you need a default
++gateway, specify this with the option &lt;em&gt;ગેટવે&lt;/em&gt;. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;ગેટવે=192.168.0.8&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallgumainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;કેર્નાલ વિકલ્પો: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallgumainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;કેર્નાલ વિકલ્પો&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallgumainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt; કેર્નાલ વિકલ્પો: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallgumainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,30 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;ઈન્સ્ટોલર વિકલ્પો: ઈન્સ્ટોલ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++By default, the local CD-ROMs are searched for the installation source.
++For a network install, select the
++&lt;em&gt;ઈન્સ્ટોલ&lt;/em&gt; option. Possible installation protocols are
++&lt;ul&gt;
++ &lt;li&gt;FTP&lt;/li&gt;
++ &lt;li&gt;NFS&lt;/li&gt;
++ &lt;li&gt;HTTP&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The syntax to use is just like standard URLs. For example,
++if your server is found at 192.168.0.1 and you want to do an NFS-based
++install from the directory /install on this server, specify
++the source as follows:
++&lt;ul&gt;
++ &lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The network card will either be configured with &lt;em&gt;dhcp&lt;/em&gt; or you
++must specify the parameters yourself as described in the
++&lt;a href=&quot;#network&quot;&gt;નેટવર્ક વિકલ્પો&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallgumainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;કેર્નાલ વિકલ્પો: સ્પ્લેશ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;સ્પ્લેશ=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;સ્પ્લેશ=નકામા શબ્દો&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;સ્પ્લેશ=નિશબ્દ&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallgumainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;ઈન્સ્ટોલર વિકલ્પો: vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++To enable the VNC installation, specify the
++parameters vnc and vncpassword:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;vnc=1 vncpassword=example&lt;/em&gt;&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The VNC server will be started and you may control YaST2 over any VNC
++client from a remote system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallgumainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;રેસ્ક્યુ સિસ્ટમ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The &lt;em&gt;રેસ્ક્યુ સિસ્ટમ&lt;/em&gt; is a small RAM disk base system. From there,
++it is possible to make all kinds of changes to an installed system. Because
++only low-level tools are available in this system, it is intended for
++experts.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallgumainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;વિઇયો મોડ પસંદગી&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; to get the list of video modes your graphics card
++supports. The highest mode your monitor can display is preselected.
++&lt;/p&gt;
++
++&lt;p&gt;
++It is possible that your monitor cannot be detected automatically. In that
++case, select your preferred mode manually.
++&lt;/p&gt;
++
++&lt;p&gt;
++If your system has problems with the graphics card during the
++installation, the &lt;em&gt;ટેક્સ્ટ મોડ&lt;/em&gt; may be a usable work-around.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallgunavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;પાછા ફરો &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhrmainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,103 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;Boot Loader Help&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Welcome to &lt;em&gt;@@@product@@@&lt;/em&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this menu to select the desired function. If you have
++problems navigating in this help system, press
++&lt;em&gt;@@@fkey_help@@@&lt;/em&gt; to enter the &lt;a href=&quot;#help&quot;&gt;opis&lt;/a&gt; of the help
++system. The main functions in this menu are:
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#harddisk&quot;&gt;Podigni sustav s tvrdog diska&lt;/a&gt;: This selection will not do
++anything to the system. It only starts a previously installed
++operating system.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#linux&quot;&gt;Instalacija&lt;/a&gt;:
++This installation mode works on most machines. If you experience a
++system freeze during boot or problems with detection of your hardware
++components, such as disk controllers or network cards, try one of the
++following installation options.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#noacpi&quot;&gt;Installation -- ACPI Disabled&lt;/a&gt;: Many of the
++currently-sold computers have incomplete or faulty ACPI
++implementations. This selection disables ACPI support in the
++kernel, but still enables many performance features, like DMA for IDE
++hard disks.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#nolapic&quot;&gt;Installation -- Local APIC Disabled&lt;/a&gt;:
++If the normal installation fails, this might be due to the
++system hardware not supporting local APIC.
++If this seems to be the case, use this option to
++install without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#failsafe&quot;&gt;Installation -- Safe Settings&lt;/a&gt;: If you were not
++successful with &lt;em&gt;Instalacija&lt;/em&gt;, this selection might
++solve the issue.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#rescue&quot;&gt;Sustav za spašavanje&lt;/a&gt;: This boot image starts a small
++Linux system in RAM. This is useful if the system does not start properly.
++After booting this system, log in as root.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#firmware&quot;&gt;Test firmware-a&lt;/a&gt;: Runs a BIOS test tool that validates
++ACPI and other parts of your BIOS.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#memtest&quot;&gt;Test memorije&lt;/a&gt;: Memory testing is useful for more than
++checking installation of new memory modules. It is a stress test
++for a big part of your computer system and may indicate hardware
++problems.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#opt&quot;&gt;Izbori podizanja sustava&lt;/a&gt;: The boot options may change the
++behavior of your system completely. They are settings for
++the kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Help&lt;/a&gt;: This is context sensitive. It will
++show different screens depending on the active element of the
++boot screen. There is also a description of this help system
++available.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Set language and keyboard mapping
++used by the boot loader.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Video Mode&lt;/a&gt;: Here, choose between
++different screen resolutions while installing. If you encounter
++problems with the graphical installation, the &lt;em&gt;tekstualni način&lt;/em&gt; may
++be a work-around for you.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Installation Source&lt;/a&gt;: Choose the
++installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Driver Update&lt;/a&gt;: For very new machines, a
++driver update may be needed to install the system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhrmainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;Odabir vrste programa&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++You have the choice to install the 32-bit or 64-bit version of @@@product@@@.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhrmaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;Dogradnja upravljačkog programa&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++If you need a driver update floppy or CD-ROM, press &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. The
++boot loader asks you to insert the driver update medium after
++loading the Linux kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++A driver update is typically a floppy with new versions of hardware
++drivers or bug fixes needed during installation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhrmainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,11 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;Installation -- Safe Settings&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Installation -- Safe Settings&lt;/em&gt; if you encounter hangs
++while installing or irreproducible errors. This option disables DMA
++for IDE drives and all power management features.
++See also the kernel options for &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;,
++&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; and &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhrmainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;Test firmware-a&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Starts a BIOS checker that validates the ACPI tables
++and many other parts of your BIOS.
++Test results can be stored on usb disk or saved via network.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhrmainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,16 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;Podigni sustav s tvrdog diska&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Boot Installed OS&lt;/em&gt; to start the system installed on
++your local hard disk. This system must be installed properly, because
++only the MBR (Master Boot Record) on the first hard disk is started.
++The device ID of the first hard disk is provided by the BIOS of
++the computer.
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this if you forgot to remove the CD or DVD from your
++drive and want to start the computer from the hard disk.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhrmainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Koristim sustav pomoći&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Strelica gore&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Strelica dolje&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Strelica lijevo&lt;/em&gt;, &lt;em&gt;Brisanje&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Strelica desno&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Razmak&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Stranica gore&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Stranica dolje&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Kuća&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Kraj&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhrmaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;Instalacijski izvor&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; to choose an installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++This is the same as using the &lt;a href=&quot;#o_install&quot;&gt;instaliraj&lt;/a&gt;
++boot option.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhrmainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Odabir jezika i rasporeda tipkovnice&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhrmainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;Instalacija&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Instalacija&lt;/em&gt; to start the default installation. The
++&lt;a href=&quot;#opt&quot;&gt;boot options&lt;/a&gt; entered are used in the
++start-up. This item activates many features of commonly available
++hardware.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhrmainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;Test memorije&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The included &lt;em&gt;Test memorije&lt;/em&gt; provides good possibilities to
++stress test the hardware of a system. Its main purpose is to detect
++broken RAM, but it also stresses many other parts of the system.
++&lt;/p&gt;
++
++&lt;p&gt;
++There is no guarantee that the memory is good if no errors are
++found, although most of memory defects will be found.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhrmainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,24 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;Installation -- ACPI Disabled&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Current hardware usually requires ACPI (Advanced Configuration and Power Interface)
++to control the interrupt handling.
++ACPI completely replaces the old APM system.
++&lt;/p&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Installation -- ACPI Disabled&lt;/em&gt; if you encounter
++problems during boot of the kernel. Known problems with machines that
++have problems with ACPI are:
++&lt;ul&gt;
++ &lt;li&gt;kernel freezes when booting&lt;/li&gt;
++ &lt;li&gt;PCI Cards are not detected or initialized properly&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++You may also try the &lt;a href=&quot;#firmware&quot;&gt;Test firmware-a&lt;/a&gt; boot option
++and look at the test results of the ACPI validation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhrmainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;Installation -- Local APIC Disabled&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Normally there are no problems with the APIC (Advanced Programmable Interrupt
++Controller). But if you seem to have some, try this option to boot
++without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++Please don't confuse this with &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt;
++(Advanced Configuration and Power Interface).
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhrmainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,28 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Izbori podizanja sustava&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++There are two types of boot options available. First, there are
++options that affect the installer. Second, there are kernel
++options. Some of the more common options are:
++&lt;/p&gt;
++
++&lt;p&gt;
++a) installer options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;instaliraj&lt;/a&gt; -- select an installation source&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#network&quot;&gt;mrežni izbori&lt;/a&gt; -- the network options&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;vnc izbori&lt;/a&gt; -- options for installation via VNC&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++b) kernel options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhrmainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;Installer Options: Network Options&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++It is possible to configure the network interface right now. The
++hardware will be detected later by YaST2. The minimum set of options
++to configure your network card consists of host IP and netmask. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++or in a shorter form:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++If you specified a &lt;a href=&quot;#o_install&quot;&gt;network-based install&lt;/a&gt; and do
++not specify both of these options, the installer tries to configure
++the network interface with &lt;em&gt;dhcp&lt;/em&gt;. If you need a default
++gateway, specify this with the option &lt;em&gt;gateway&lt;/em&gt;. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;gateway=192.168.0.8&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhrmainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Izbori jezgre: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhrmainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Izbori jezgre: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhrmainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Izbori jezgre: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhrmainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,30 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;Installer Options: install&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++By default, the local CD-ROMs are searched for the installation source.
++For a network install, select the
++&lt;em&gt;instaliraj&lt;/em&gt; option. Possible installation protocols are
++&lt;ul&gt;
++ &lt;li&gt;FTP&lt;/li&gt;
++ &lt;li&gt;NFS&lt;/li&gt;
++ &lt;li&gt;HTTP&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The syntax to use is just like standard URLs. For example,
++if your server is found at 192.168.0.1 and you want to do an NFS-based
++install from the directory /install on this server, specify
++the source as follows:
++&lt;ul&gt;
++ &lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The network card will either be configured with &lt;em&gt;dhcp&lt;/em&gt; or you
++must specify the parameters yourself as described in the
++&lt;a href=&quot;#network&quot;&gt;mrežni izbori&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhrmainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Izbori kernela: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhrmainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;Installer Options: vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++To enable the VNC installation, specify the
++parameters vnc and vncpassword:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;vnc=1 vncpassword=primjer&lt;/em&gt;&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The VNC server will be started and you may control YaST2 over any VNC
++client from a remote system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhrmainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;Sustav za spašavanje&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The &lt;em&gt;Sustav za spašavanje&lt;/em&gt; is a small RAM disk base system. From there,
++it is possible to make all kinds of changes to an installed system. Because
++only low-level tools are available in this system, it is intended for
++experts.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhrmainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;Video Mode Selection&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; to get the list of video modes your graphics card
++supports. The highest mode your monitor can display is preselected.
++&lt;/p&gt;
++
++&lt;p&gt;
++It is possible that your monitor cannot be detected automatically. In that
++case, select your preferred mode manually.
++&lt;/p&gt;
++
++&lt;p&gt;
++If your system has problems with the graphics card during the
++installation, the &lt;em&gt;tekstualni način&lt;/em&gt; may be a usable work-around.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhrnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,3 @@
++&lt;p&gt;
++Return to &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhumainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;Rendszertöltő-súgó&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Üdvözli az &lt;em&gt;@@@product@@@&lt;/em&gt; &lt;/p&gt;
++
++&lt;p&gt;Válassza ki a kívánt funkciót a menüből. Ha gondot okoz a súgórendszerben való navigáció, az &lt;em&gt;@@@fkey_help@@@&lt;/em&gt; billentyű megnyomásával &lt;a href=&quot;#help&quot;&gt;leírás&lt;/a&gt; elolvashatja a súgórendszer leírását. A menü legfontosabb funkciói:&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#harddisk&quot;&gt;Rendszerindítás merevlemezről&lt;/a&gt;: Elindítja a már korábban telepített rendszert a merevlemezről. Ebben az esetben semmilyen módosítás nem történik a rendszeren.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#linux&quot;&gt;Telepítés&lt;/a&gt;: Ez a telepítési mód a legtöbb gépen működik. Ha rendszerindítás közben lefagyást észlel, vagy problémák jelentkeznek a hardverkomponensek (például lemezvezérlők vagy hálózati kártyák) felismerése során, akkor próbálkozzon meg az alábbi telepítési beállításokkal.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#noacpi&quot;&gt;Telepítés - ACPI-támogatás nélkül&lt;/a&gt;: Nagyon sok mai számítógépen nem teljes vagy hibás az ACPI megvalósítása. Ez a menüpont letiltja a kernel ACPI-támogatását, ugyanakkor megtart számos további teljesítménynövelő funkciót, például az IDE-merevlemezek DMA-támogatását.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#nolapic&quot;&gt;Telepítés - Local APIC támogatás nélkül&lt;/a&gt;: Ha a telepítés sikertelen, annak egyik oka az lehet, hogy a hardver nem rendelkezik lokális APIC támogatással. Ebben az esetben telepítsen lokális APIC támogatás nélkül.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#failsafe&quot;&gt;Telepítés - Biztonságos beállításokkal&lt;/a&gt;: Ha a &lt;em&gt;Telepítés&lt;/em&gt;mód nem bizonyult megfelelőnek, ez a mód lehet, hogy megoldja a problémát.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#rescue&quot;&gt;Mentőrendszer&lt;/a&gt;: Ez a rendszerkép egy kisméretű rendszert indít el a memóriából. Akkor hasznos, ha a rendszer nem megfelelően indul. A rendszer betöltése után jelentkezzen be root felhasználóként.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#firmware&quot;&gt;Firmware-teszt&lt;/a&gt;: BIOS ellenőrző eszközt futtat, amely ellenőrzi az ACPI-t, és a BIOS egyes részeit.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#memtest&quot;&gt;Memóriateszt&lt;/a&gt;: A memóriatesztelés nemcsak az újonnan behelyezett memóriamodulok ellenőrzésére jó, hanem a rendszer nagy részét terheli és alkalmas lehet hardverproblémák kimutatására.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#opt&quot;&gt;Rendszerindítási paraméterek&lt;/a&gt;: A rendszerindítási paraméterek teljesen megváltoztathatják a rendszer viselkedését. Ezek a kernel beállításai.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Súgó&lt;/a&gt;: Környezetérzékeny súgó. A rendszerindítási képernyő aktív elemétől függően más és más képernyőket jelenít meg és magáról a súgórendszerről is található leírás.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Itt választható ki a rendszertöltő által használt nyelvi és billentyűzetbeállítás.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Videomód&lt;/a&gt;: Itt választhatja ki a telepítés során használt képernyőfelbontást. Ha probléma van a grafikus telepítéssel, próbálja meg a &lt;em&gt;szöveges mód&lt;/em&gt;-ot.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Telepítési forrás&lt;/a&gt;: Válasszon telepítési forrását.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Illesztőprogram-frissítés&lt;/a&gt;: Nagyon új gépek esetében szükség lehet valamely illesztőprogram frissítésére a rendszer telepítéséhez.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhumainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;Szoftvertípus kiválasztása&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Telepítheti az @@@product@@@ 32, vagy 64 bites változatát.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhumaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;Illesztőprogram-frissítés&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Ha egy illesztőprogramot tartalmazó hajlékonylemezt vagy CD-t kíván használni, nyomja meg az &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;billentyűt. A rendszertöltő a Linux kernel betöltése után kéri az adathordozó behelyezésére.&lt;/p&gt;
++
++&lt;p&gt;Az új illesztőprogram általában egy hajlékonylemezen található, amelyen lehet egy frissebb verzió vagy egy egyszerű hibajavítás is.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhumainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;Telepítés - Biztonságos beállításokkal&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Ha telepítés közben lefagyásokat vagy nem megismételhető hibákat észlel, válassza a &lt;em&gt;Telepítés - Biztonságos beállításokkal&lt;/em&gt; beállítást, amely letiltja az IDE-meghajtók DMA-támogatását és az összes energiaellátás-felügyeleti funkciót. Tekintse meg továbbá az &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;, az &lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; és &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; paramétereket is.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhumainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;Firmware-teszt&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Elindítja a BIOS ellenőrzését, amely ellenőrzi az ACPI-táblákat és a BIOS egyéb részeit. Az ellenőrzés eredménye lementhető USB-eszközre vagy hálózaton keresztül.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhumainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;Rendszerindítás merevlemezről&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;A &lt;em&gt;Rendszerindítás merevlemezről&lt;/em&gt; beállítással indítható el a helyi merevlemezen telepített rendszer. A rendszert helyesen kell telepíteni, mert csak az első merevlemez mester rendszerindító rekordja (MBR) kerül indításra. Az első merevlemez eszközazonosítóját a számítógép BIOS-a biztosítja.&lt;/p&gt;
++
++&lt;p&gt;Ez akkor hasznos, ha a meghajtóban felejtette a CD-t vagy a DVD-t, és feltétlenül a merevlemezről kívánja elindítani a rendszert.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhumainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;A súgórendszer használata&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;A rendszertöltő online súgója helyzetfüggő segítséget nyújt az egyes kiválasztott menüpontokhoz. Ezenfelül az egyes rendszerindítási opciókhoz is információval szolgál. Ez akkor lehet hasznos, ha éppen egy bejegyzés szerkesztése válik szükségessé.&lt;/p&gt;
++
++&lt;p&gt;Navigációs gombok &lt;ul&gt;&lt;li&gt;&lt;em&gt;Felfelé nyíl&lt;/em&gt;: Előző hivatkozás kiválasztása&lt;/li&gt;&lt;li&gt;&lt;em&gt;Lefelé nyíl&lt;/em&gt;: Következő hivatkozás kiválasztása&lt;/li&gt;&lt;li&gt;&lt;em&gt;Bal nyíl&lt;/em&gt;, &lt;em&gt;Vissza&lt;/em&gt;: Vissza az előző témához&lt;/li&gt;&lt;li&gt;&lt;em&gt;Jobb nyíl&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Szóköz&lt;/em&gt;: Hivatkozás követése&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: Görgetés felfelé&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: Görgetés lefelé&lt;/li&gt;&lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: Ugrás az oldal elejére&lt;/li&gt;&lt;li&gt;&lt;em&gt;End&lt;/em&gt;: Ugrás az oldal végére&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: Kilépés&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhumaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;Telepítési forrás&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; -- telepítési forrás megadása&lt;/p&gt;
++
++&lt;p&gt;Ez ugyanaz, mint az &lt;a href=&quot;#o_install&quot;&gt;telepítés&lt;/a&gt; paraméter használata.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhumainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Nyelv és billentyűzet kiválasztása&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Az &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; billentyű megnyomásával kiválasztható az indítóképernyő és a billentyűzet nyelve.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhumainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;Telepítés&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;A &lt;em&gt;Telepítés&lt;/em&gt; beállítással indul az alapértelmezett telepítés. A megadott &lt;a href=&quot;#opt&quot;&gt;rendszerindítási paraméterek&lt;/a&gt; alkalmazásra kerülnek. Ez a beállítás a szokásosan elérhető hardvereszközök számos funkcióját aktiválja.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhumainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;Memóriateszt&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;A beépített &lt;em&gt;Memóriateszt&lt;/em&gt; jó lehetőséget nyújt egy rendszer hardvereszközeinek ellenőrzésére. Elsődleges célja természetesen a hibás RAM-modulok azonosítása, de a rendszer egyéb részeit is terheli.&lt;/p&gt;
++
++&lt;p&gt;Az, hogy a rendszer nem talál hibát, még nem garancia a memória tökéletességére, bár a legtöbb hiba előjön a vizsgálat során.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhumainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;Telepítés - ACPI-támogatás nélkül&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;A nagyon friss hardvereszközök néha igénylik az ACPI meglétét a megszakítások kezeléséhez. Az ACPI teljesen felváltja a régi APM rendszert.&lt;/p&gt;
++
++&lt;p&gt;Ha problémákba ütközik a kernel indítása során, válassza a &lt;em&gt;Telepítés - ACPI-támogatás nélkül&lt;/em&gt; beállítást. Ismert problémák hibás ACPI-vel rendelkező gépek esetén: &lt;ul&gt;&lt;li&gt;a kernel lefagy rendszerindítás közben&lt;/li&gt;&lt;li&gt;PCI-kártyák nem találhatók, vagy nem sikerül tökéletesen előkészíteni őket&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Érdemes kipróbálni a &lt;a href=&quot;#firmware&quot;&gt;Firmware-teszt&lt;/a&gt; beállítást, megnézni az ACPI-ellenőrzés eredményét.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhumainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;Telepítés - Local APIC támogatás nélkül&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Általában nincs probléma az APIC (Advanced Programmable Interrupt Controller) vezérlővel, azonban vannak olyan esetek, amikor célszerű APIC támogatás nélkül indítani a rendszert.&lt;/p&gt;
++
++&lt;p&gt;Ezt ne tévessze össze az &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt; (Advanced Configuration and Power Interface) vezérlővel.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhumainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Rendszerindítási paraméterek&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Kétféle rendszerindítási paraméter használható. Egyes paraméterek a telepítőprogram működését befolyásolják. Mások pedig a kernel működését. Néhány a leggyakoribb paraméterek közül:&lt;/p&gt;
++
++&lt;p&gt;a) telepítési beállítások &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;telepítés&lt;/a&gt; -- telepítési forrás kiválasztása&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#network&quot;&gt;hálózati beállítások&lt;/a&gt; -- hálózati beállítások&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;vnc-beállítások&lt;/a&gt; -- beállítások VNC-n keresztüli telepítéshez&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;b) kernelbeállítások &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- indítóképernyő beállítása&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- energiagazdálkodás beállítása&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- ACPI energiakezelési rendszer beállítása&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- IDE-alrendszer beállítása&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhumainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,13 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;Telepítési beállítások: Hálózati beállítások&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Lehetőség van a hálózati csatoló beállítására. A YaST2 a hardvert később felismeri. A hálózat beállításához legalább a gép IP-címét és hálózati maszkját meg kell adni. Például: &lt;ul&gt;&lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;vagy rövidebb formában: &lt;ul&gt;&lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Ha a &lt;a href=&quot;#o_install&quot;&gt;telepítés hálózatról&lt;/a&gt; kiválasztásakor nem adja meg mindkét paramétert, akkor a telepítőprogram megpróbálja &lt;em&gt;dhcp&lt;/em&gt;-n keresztül beállítani a hálózati csatolót. Amennyiben szükséges, az alapértelmezett átjáró a &lt;em&gt;gateway&lt;/em&gt; paraméterrel adható meg. Például: &lt;ul&gt;&lt;li&gt;gateway=192.168.0.8&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhumainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Kernelbeállítások: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Az ACPI (Advanced Configuration and Power Interface) szabvány meghatározza, hogy az operációs rendszer és a BIOS között hogyan működjenek az energiakezelési funkciók. Alapértelmezett esetben akkor van bekapcsolva az &lt;em&gt;acpi&lt;/em&gt; opció, ha a 2000. év után készült BIOS verziót talál. Az ACPI viselkedését az alábbi opciókkal lehet pontosan beállítani: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- ne használja az ACPI-t PCI-megszakításokhoz&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- az ACPI rendszerindításhoz szükségesek részeinek bekapcsolása&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- az ACPI teljes kikapcsolása&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- ACPI bekapcsolása annak ellenére, hogy a BIOS a 2000. év előtt készült&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Új számítógépeken az ACPI teljes mértékben helyettesíti az &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; rendszert.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhumainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Kernelbeállítások: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Az APM (Advanced Power Management) egy energiakezelő rendszer. Használatának leginkább hordozható számítógépeken van értelme, ahol átmenetileg fel lehet függeszteni a rendszer futását. Akkor szüksége lehet energiakezelő rendszerre, ha azt szeretné, hogy a rendszer leállításakor automatikusan kikapcsoljon a rendszer. Az APM működése erősen függ a számítógép BIOS rendszerétől. Ha nem jó a BIOS, vagy hibásan van beállítva, akkor az APM bekapcsolása mellékhatásokhoz vezethet. Ilyenkor letilthatja az APM bekapcsolását a következő paraméterrel: &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- az ACPI teljes kikapcsolása&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Az újabb számítógépeken az APM helyett az &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt; rendszer használata javasolt.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhumainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Kernelbeállítások: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;A legtöbb munkaállomás nem SCSI, hanem IDE meghajtót tartalmaz. Az IDE-rendszer, az esetleges hardverproblémáinak kikerüléséhez szüksége lehet az alábbi paraméterre: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- IDE-meghajtók DMA-jénak kikapcsolása&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhumainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;Telepítési beállítások: install&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Alapértelmezés szerint telepítési forrásként a helyi CD-olvasókat keresi végig a rendszer. Hálózati telepítéshez az &lt;em&gt;telepítés&lt;/em&gt; paramétert kell használni. A telepítéshez használható protokollok: &lt;ul&gt;&lt;li&gt;FTP&lt;/li&gt;&lt;li&gt;NFS&lt;/li&gt;&lt;li&gt;HTTP&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;A szintaxis pontosan olyan, mint a szabványos URL. Ha például a kiszolgáló a 192.168.0.1 címen található és a kiszolgáló /install könyvtárából kíván NFS-alapú telepítést végrehajtani, akkor így kell megadni a forrást: &lt;ul&gt;&lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;A hálózati kártya beállítása történhet &lt;em&gt;dhcp&lt;/em&gt; segítségével, vagy a &lt;a href=&quot;#network&quot;&gt;hálózati beállítások&lt;/a&gt; között bemutatott módon megadhatók kézzel a paraméterek.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhumainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Kernelbeállítások: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;A rendszerindításkor látható grafikus képernyőt splash screennek nevezzük. &lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- Indítóképernyő kikapcsolása. Ez akkor lehet hasznos, ha nagyon régi a monitora, illetve olyan, amelyen az indítóképernyő hibásan jelenik meg.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Indítóképernyő bekapcsolása. A kernel- és a rendszerindítási üzenetek a háttérben láthatók.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Indítóképernyő bekapcsolása. A rendszerüzenetek nem láthatók. Helyette egy grafikus kijelző tájékoztatást ad a rendszerindítási folyamatról.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhumainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;Telepítési beállítások: vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;A VNC-telepítés bekapcsolásához a vnc és a vncpassword paramétereket kell megadni: &lt;ul&gt;&lt;li&gt;&lt;em&gt;vnc=1 vncpassword=mintajelszó&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;A VNC-kiszolgáló elindul és a YaST2 távolról, VNC-kliensen keresztül vezérelhető.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhumainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;Mentőrendszer&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;A &lt;em&gt;Mentőrendszer&lt;/em&gt; egy kisméretű, RAM-lemez alapú rendszer, így lehetséges egy már telepített rendszer módosítása. Mivel ebben a rendszerben csak alacsony szintű eszközök érhetők el, használatát kizárólag szakembereknek javasoljuk.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhumainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;Videomód kiválasztása&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Nyomja meg az &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; billentyűt a grafikus kártya által támogatott videomódok listájának lekéréséhez. A monitor által támogatott legnagyobb felbontás alapértelmezésként kerül kiválasztásra.&lt;/p&gt;
++
++&lt;p&gt;Előfordulhat, hogy a monitor automatikus felismerése sikertelen, ebben az esetben állítsa be a használni kívánt felbontást.&lt;/p&gt;
++
++&lt;p&gt;Ha gondok vannak a grafikus kártyával a telepítés során, a &lt;em&gt;szöveges mód&lt;/em&gt; nyújthat kerülő megoldást.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhunavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Vissza a &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt; részhez.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallitmainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;Guida del caricatore di avvio&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Benvenuto in &lt;em&gt;@@@product@@@&lt;/em&gt;&lt;/p&gt;
++
++&lt;p&gt;Usa questo menu per selezionare la funzione desiderata. Se hai problemi durante l'esplorazione di questa Guida, premi &lt;em&gt;@@@fkey_help@@@&lt;/em&gt; per visualizzare il &lt;a href=&quot;#help&quot;&gt;descrizione&lt;/a&gt; della Guida. Le principali funzioni disponibili in questo menu sono:&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#harddisk&quot;&gt;Avvio dal disco rigido&lt;/a&gt;: Questa selezione non esegue alcuna operazione sul sistema. Avvia solo un sistema operativo precedentemente installato.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#linux&quot;&gt;Installazione&lt;/a&gt;: Questa modlità di installazione funziona sulla maggior parte dei computer. Se si verifica un arresto del sistema durante l'avvio, oppure in caso di problemi nel rilevamento di componenti hardware quali controllori di dischi o schede di rete, prova a selezionare una delle seguenti opzioni di installazione.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#noacpi&quot;&gt;Installazione -- ACPI disabilitata&lt;/a&gt;: Molti computer attualmente in commercio dispongono di implementazioni ACPI incomplete o difettose. Questa selezione disabilita il supporto ACPI nel kernel ma abilita molte funzionalità ad alte prestazioni, quali la tecnologia DMA per i dischi rigidi IDE.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#nolapic&quot;&gt;Installazione -- APIC locale disabilitata&lt;/a&gt;: Se l'installazione normale non viene completata, è possibile che il sistema hardware non supporti l'APIC locale. In questo caso, utilizza l'opzione di installazione senza il supporto dell'APIC locale.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#failsafe&quot;&gt;Installazione -- Impostazioni di protezione&lt;/a&gt;: Se non hai avuto successo con &lt;em&gt;Installazione&lt;/em&gt;, questa selezione può risolvere il problema.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#rescue&quot;&gt;Sistema di salvataggio&lt;/a&gt;: Questa immagine di avvio carica un piccolo sistema Linux nella RAM. Ciò è utile se il sistema non si avvia correttamente. Dopo aver avviato questo sistema, effettua il login come utente root.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#firmware&quot;&gt;Verifica firmware&lt;/a&gt;: Avvia uno strumento di verifica del BIOS che valida l'ACPI ed altri componenti del BIOS.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#memtest&quot;&gt;Verifica della memoria&lt;/a&gt;: Il test della memoria è utile non solo per verificare l'installazione dei nuovi moduli di memoria: è un test molto stressante per buona parte dei componenti del computer e può evidenziare problemi hardware.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#opt&quot;&gt;Opzioni di boot&lt;/a&gt;: Le opzioni di avvio, relative al kernel, possono modificare completamente il comportamento del sistema in uso.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Guida&lt;/a&gt;: Questa opzione è contestuale. Visualizza schermate diverse in base all'elemento attivo nella schermata di avvio. È inoltre disponibile una descrizione di questa Guida.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Imposta la lingua e la mappatura della tastiera utilizzate dal caricatore di avvio.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Modalità video&lt;/a&gt;: Qui puoi scegliere tra diverse risoluzioni dello schermo durante l'installazione. Se incontri problemi durante l'installazione grafica, puoi usare &lt;em&gt;modo testo&lt;/em&gt; per aggirarli.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Sorgente di installazione&lt;/a&gt;: Scegli la sorgente di installazione.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Aggiornamento driver&lt;/a&gt;: per computer molto recenti, per installare il sistema può rendersi necessario un aggiornamento dei driver.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallitmainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;Selezione tipo di applicazione&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Puoi scegliere di installare la versione a 32 o 64 bit di @@@product@@@.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallitmaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;Aggiornamento driver&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Se è necessario un floppy o un CD ROM di aggiornamento driver, premi &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. Dopo il caricamento del kernel Linux, ti verrà chiesto di inserire il supporto di aggiornamento driver.&lt;/p&gt;
++
++&lt;p&gt;Un aggiornamento driver è costituito in genere da un floppy contenente nuove versioni dei driver hardware o correzioni dei bug necessarie durante l'installazione.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallitmainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;Installazione -- Impostazioni di protezione&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Seleziona &lt;em&gt;Installazione -- Impostazioni di protezione&lt;/em&gt; se si verificano interruzioni durante l'installazione oppure errori non riproducibili. Questa opzione disabilita la funzionalità DMA per le unità IDE e, inoltre, tutte le funzionalità di risparmio energetico. Vedi anche le opzioni del kernel relative a &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;, &lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; e &lt;a href=&quot;#o_ide&quot;&gt;IDE&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallitmainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;Verifica firmware&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Avvia un controllo del BIOS che valida le tabelle ACPI e molte altre parti del BIOS. È possibile archiviare i risultati del test in un disco usb o salvarli via rete.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallitmainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;Avvio dal disco rigido&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Seleziona &lt;em&gt;Avvia sistema operativo installato&lt;/em&gt; per avviare il sistema installato nel disco rigido locale. Questo sistema deve essere installato correttamente perché solo l'MBR (Master Boot Record) viene avviato sul primo disco rigido. L'ID del dispositivo del primo disco rigido viene fornito dal BIOS del computer.&lt;/p&gt;
++
++&lt;p&gt;Usa questa opzione se hai dimenticato di rimuovere il CD o DVD dall'unità e desideri avviare il computer dal disco rigido.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallitmainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Uso della Guida&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;La Guida in linea del caricatore di avvio è sensibile al contesto e visualizza le informazioni sulla voce di menu selezionata, oppure, durante la modifica delle opzioni di avvio, tenta di individuare le informazioni relative all'opzione su cui è posizionato il cursore.&lt;/p&gt;
++
++&lt;p&gt;Tasti di navigazione &lt;ul&gt;&lt;li&gt;&lt;em&gt;Freccia su&lt;/em&gt;: evidenzia il collegamento precedente&lt;/li&gt;&lt;li&gt;&lt;em&gt;Fraccia giù&lt;/em&gt;: evidenzia il collegamento successivo&lt;/li&gt;&lt;li&gt;&lt;em&gt;Freccia sinistra&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: torna all'argomento precedente&lt;/li&gt;&lt;li&gt;&lt;em&gt;Fraccia destra&lt;/em&gt;, &lt;em&gt;Invio&lt;/em&gt;, &lt;em&gt;Spazio&lt;/em&gt;: visita il collegamento&lt;/li&gt;&lt;li&gt;&lt;em&gt;PgSu&lt;/em&gt;: scorre verso l'alto una pagina alla volta&lt;/li&gt;&lt;li&gt;&lt;em&gt;PgGiù&lt;/em&gt;: scorre verso il basso una pagina alla volta&lt;/li&gt;&lt;li&gt;&lt;em&gt;Casa&lt;/em&gt;: va a inizio pagina&lt;/li&gt;&lt;li&gt;&lt;em&gt;Termine&lt;/em&gt;: va a fine pagina&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: chiude la Guida&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallitmaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;Sorgente di installazione&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Premi &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; per selezionare una sorgente di installazione.&lt;/p&gt;
++
++&lt;p&gt;Questa opzione equivale all'opzione di avvio &lt;a href=&quot;#o_install&quot;&gt;installa&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallitmainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Selezione layout tastiera e lingua&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Premi &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; per cambiare la lingua e il layout della tastiera utilizzati dal caricatore di avvio.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallitmainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;Installazione&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Seleziona &lt;em&gt;Installazione&lt;/em&gt; per avviare l'installazione predefinita. Il &lt;a href=&quot;#opt&quot;&gt;Opzioni di boot&lt;/a&gt; inserito è utilizzato nella fase di avvio. Questa voce attiva molte funzioni dei componenti hardware comunemente disponibili.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallitmainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;Verifica della memoria&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Il &lt;em&gt;Verifica della memoria&lt;/em&gt; incluso offre buone possibilità di testare l'hardware di un sistema. Il suo scopo principale consiste nel rilevare interruzioni nella RAM nonché altri problemi nel sistema.&lt;/p&gt;
++
++&lt;p&gt;Nonostante la maggior parte dei difetti venga rilevata, non c'è comunque nessuna garanzia che la memoria sia a posto se non viene evidenziato nessun errore.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallitmainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;Installazione -- ACPI disabilitata&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;L'hardware attuale di solito richiede l'ACPI (Advanced Configuration and Power Interface) per controllare la gestione degli interrupt. L'ACPI sostituisce completamente il vecchio sistema APM.&lt;/p&gt;
++
++&lt;p&gt;Seleziona &lt;em&gt;Installazione -- ACPI disabilitata&lt;/em&gt; se si verificano problemi durante l'avvio del kernel. I problemi noti con la tecnologia ACPI nei computer sono: &lt;ul&gt;&lt;li&gt;Il kernel si blocca all'avvio&lt;/li&gt;&lt;li&gt;Le schede PCI non sono rilevate o inizializzate correttamente&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Puoi anche provare con l'opzione di avvio &lt;a href=&quot;#firmware&quot;&gt;Verifica firmware&lt;/a&gt; e verificare i risultati del test della convalida dell'ACPI.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallitmainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;Installazione -- APIC locale disabilitata&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Normalmente non si verificano problemi con l'APIC (Advanced Programmable Interrupt Controller). Se dovessero verificarsi, prova questa opzione ad avviare senza il supporto APIC locale.&lt;/p&gt;
++
++&lt;p&gt;Per favore non confonderti con &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt; (Advanced Configuration and Power Interface).&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallitmainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Opzioni di boot&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Sono disponibili due tipi di opzioni di avvio: quelle che influenzano il programma di installazione e quelle che agiscono sul kernel. Alcune delle opzioni più comuni sono:&lt;/p&gt;
++
++&lt;p&gt;a) optioni del programma d'installazione &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;installa&lt;/a&gt; -- seleziona una sorgente di installazione&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#network&quot;&gt;opzioni di rete&lt;/a&gt; -- le opzioni di rete&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;opzioni VNC&lt;/a&gt; -- opzioni per l'installazione via VNC&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;b) opzioni kernel &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;schermata di avvio&lt;/a&gt; -- influenza il comportamento della schermata di avvio&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- attiva o disattiva il risparmio energetico&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- interfaccia per il risparmio energetico e la configurazione avanzata&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;IDE&lt;/a&gt; -- controlla il sottosistema IDE&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallitmainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,13 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;Opzioni programma di installazione: Opzioni di rete&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;È possibile configurare subito l'interfaccia di rete. L'hardware verrà rilevato successivamente da YaST2. Per configurare la scheda di rete, è necessario specificare almeno l'IP host e la netmask. Ad esempio: &lt;ul&gt;&lt;li&gt;iphost=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;o in forma contratta: &lt;ul&gt;&lt;li&gt;iphost=192.168.0.10/24&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Se specifichi un &lt;a href=&quot;#o_install&quot;&gt;installazione basata su rete&lt;/a&gt; ma non specifichi entrambe queste opzioni, il programma di installazione cerca di configurare l'interfaccia di rete con &lt;em&gt;dhcp&lt;/em&gt;. Se hai bisogno di un gateway predefinito, specificalo con l'opzione &lt;em&gt;gateway&lt;/em&gt;. Ad esempio: &lt;ul&gt;&lt;li&gt;gateway=192.168.0.8&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallitmainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Opzioni kernel: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI (Advanced Configuration and Power Interface) è uno standard che definisce le interfacce di gestione del risparmio energetico e della configurazione tra un sistema operativo e il BIOS. Di solito, &lt;em&gt;acpi&lt;/em&gt; viene attivato ogni volta che viene rilevato un BIOS successivo all'anno 2000. Esistono molti parametri comunemente utilizzati per controllare il comportamento di ACPI: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- non usare l'ACPI per smistare gli interrupt PCI&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- solo i componenti di ACPI che sono necessari al boot rimangono attivi&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- disattiva completamente ACPI&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- attiva ACPI anche se il BIOS installato è precedente al 2000&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;In particolare nei nuovi computer sostituisce il vecchio sistema &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallitmainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Opzioni kernel: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM è una delle due strategie di risparmio energetico utiizzata nei computer moderni. Viene utilizzata principalmente sui computer portatili per funzioni quali la sospensione su disco, tuttavia può controllare anche l'arresto del computer dopo lo spegnimento. La funzionalità APM dipende dal corretto funzionamento del BIOS. Se il BIOS non funziona correttamente, APM può essere utilizzata in maniera limitata o può addirittura impedire il funzionamento del computer. Per questo motivo, è possibile disattivarla con il parametro &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- disattiva completamente APM&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Alcuni computer di nuova generazione possono beneficiare maggiormente del recente &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallitmainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Opzioni kernel: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Nella maggior parte delle workstation desktop vengono utilizzati dispositivi IDE, anziché SCSI. Per aggirare alcuni problemi hardware che possono verificarsi con i sistemi IDE, utiizza il parametro del kernel: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- disattiva il DMA per le unità IDE&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallitmainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;Opzioni programma di installazione: installa&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Di solito, l'origine dell'installazione viene cercata nei CD-ROM locali. Per l'installazione di rete, seleziona l'opzione &lt;em&gt;installa&lt;/em&gt;. I protocolli di installazione possibili sono: &lt;ul&gt;&lt;li&gt;FTP&lt;/li&gt;&lt;li&gt;NFS&lt;/li&gt;&lt;li&gt;HTTP&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;La sintassi da utilizzare è analoga agli URL standard. Se ad esempio il server è disponibile all'indirizzo 192.168.0.1 e vuoi eseguire un'installazione basata su NFS dalla directory /install di tale server, specifica la sorgente nel seguente modo: &lt;ul&gt;&lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;La scheda di rete sarà configurata con &lt;em&gt;dhcp&lt;/em&gt; oppure dovrai specificare manualmente i parametri come descritto in &lt;a href=&quot;#network&quot;&gt;opzioni di rete&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallitmainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Opzioni kernel: schermata di avvio&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;La schermata di avvio corrisponde all'immagine visualizzata all'avvio del sistema. &lt;ul&gt;&lt;li&gt;&lt;em&gt;schermata di avvio=0&lt;/em&gt; -- La schermata di avvio viene disattivata. Ciò può essere utile quando si utilizzano monitor molto vecchi o quando si verificano errori.&lt;/li&gt;&lt;li&gt;&lt;em&gt;schermata di avvio=verbose&lt;/em&gt; -- Attiva la schermata di avvio con la visualizzazione dei messaggi del kernel e di avvio.&lt;/li&gt;&lt;li&gt;&lt;em&gt;schermata di avvio=silent&lt;/em&gt; -- Attiva una schermata di avvio senza messaggi. Viene invece visualizzata una barra di avanzamento.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallitmainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;Opzioni programma di installazione: vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Per abilitare l'installazione VNC, specifica i parametri vnc e vncpassword:&lt;ul&gt;&lt;li&gt;&lt;em&gt;vnc=1 vncpassword=example&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Il server VNC verrà avviato e potrai controllare YaST2 attraverso qualsiasi client VNC da un sistema remoto.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallitmainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;Sistema di salvataggio&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;Sistema di salvataggio&lt;/em&gt; è un piccolo sistema di base caricato in memoria. Da qui è possibile apportare qualunque tipo di modifica ad un sistema installato. Dato che in questo sistema sono disponibili solo strumenti di basso livello, è consigliato per utenti esperti.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallitmainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;Selezione modalità video&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Premere &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; per visualizzare l'elenco delle modalità video supportate dalla scheda grafica in uso. La modalità migliore supportata dal monitor è preselezionata.&lt;/p&gt;
++
++&lt;p&gt;È possibile che il monitor non venga rilevato automaticamente. In questo caso, seleziona manualmente la modalità preferita.&lt;/p&gt;
++
++&lt;p&gt;Se nel sistema si verificano problemi con la scheda grafica durante l'installazione, è possibile utilizzare &lt;em&gt;modo testo&lt;/em&gt; per aggirarli.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallitnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Ritorna a &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalljamainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;ブートローダヘルプ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;@@@product@@@&lt;/em&gt; へようこそ&lt;/p&gt;
++
++&lt;p&gt;このメニューを使用して目的の機能を選択してください。 このヘルプシステムの操作がうまくいかない場合、 &lt;em&gt;@@@fkey_help@@@&lt;/em&gt; キーを押してヘルプシステムの &lt;a href=&quot;#help&quot;&gt;説明&lt;/a&gt; に入ってください。このメニューの主な機能は次の通りです:&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#harddisk&quot;&gt;ハードディスクから起動&lt;/a&gt;: この選択ではシステムには何も変更を加えません。インストールされたオペレーティングシステムを起動するだけです。&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#linux&quot;&gt;インストール&lt;/a&gt;: このインストールモードはほとんどのコンピュータで機能します。 起動中にシステムがフリーズする場合、またはディスクコントローラやネットワークカードなどのハードウエアコンポーネントの検出に問題がある場合、次のインストールオプションを試してください。&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#noacpi&quot;&gt;インストール -- ACPI 無効&lt;/a&gt;: 現在販売されている多くのコンピュータは ACPI を完全に実装していないか、実装に問題があります。この選択によりカーネルの ACPI サポートは無効になりますが、 IDE ハードディスク用の DMA のような多くのパフォーマンス機能は変わらず有効になります。&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#nolapic&quot;&gt;インストール -- ローカル APIC 無効&lt;/a&gt;: 標準インストールが失敗した場合、お使いのハードウエアがローカル APIC に対応していないためかもしれません。 これが原因と考えられる場合は、このオプションを使ってローカル APIC 対応なしでインストールを行なってください。&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#failsafe&quot;&gt;インストール -- 安全設定&lt;/a&gt;: &lt;em&gt;インストール&lt;/em&gt; がうまくいかなかった場合、このオプションを選択すると問題が解決されるかもしれません。&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#rescue&quot;&gt;レスキューシステム&lt;/a&gt;: このブートイメージではメモリ内で動作する小さな Linux システムを起動します。この仕組みはシステムが正しく起動しない場合に役立ちます。起動後は root でログインしてください。&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#firmware&quot;&gt;ファームウエアのテスト&lt;/a&gt;: ACPI とその他の BIOS 項目の妥当性を検証するテストツールを起動します。&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#memtest&quot;&gt;メモリテスト&lt;/a&gt;: メモリテストは新しくインストールしたメモリモジュールがきちんと動作しているか確認することができるだけではありません。これはコンピュータシステムの耐久テストであり、ハードウエアの問題が判明することもあります。&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#opt&quot;&gt;起動オプション&lt;/a&gt;: 起動オプションはシステムの動作を完全に変更してしまうかもしれません。 このオプションはカーネル用の設定です。&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ ヘルプ&lt;/a&gt;: このヘルプは状況依存です。起動画面で現在選択中の項目に応じて異なる画面を表示します。このヘルプシステム自身の説明も記載されています。&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: ブートローダで使用する言語とキーボードマップを設定します。&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ ビデオモード&lt;/a&gt;: ここではインストール中に使用する画面解像度を選択します。 グラフィカルなインストールに際して問題が発生した場合、 &lt;em&gt;テキストモード&lt;/em&gt; で回避できるかもしれません。&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ インストール元&lt;/a&gt;: インストール元を選択します。&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ ドライバ更新&lt;/a&gt;: とても新しいコンピュータにインストールする場合は、ドライバ更新が必要になるかもしれません。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalljamainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;ソフトウエア種類の選択&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;@@@product@@@ のうち 32 ビット版と 64 ビット版のどちらをインストールするかを選択することができます。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalljamaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;ドライバ更新&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ドライバ更新のフロッピィディスクまたは CD-ROM を指定する必要がある場合、 &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt; を押してください。 Linux カーネルをロードした後、ブートローダがドライバ更新メディアを挿入するよう要求します。&lt;/p&gt;
++
++&lt;p&gt;ドライバ更新は一般に、インストールの際に必要となる新しいバージョンのドライバまたはバグ修正が入ったフロッピィディスクの形で提供されます。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalljamainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;インストール -- 安全設定&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;インストール中にハングアップしたり、再現不可能なエラーが発生した場合には &lt;em&gt;インストール -- 安全設定&lt;/em&gt; を選択してください。このオプションは IDE ドライブの DMA 設定とすべての電源管理機能を無効にします。 &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; 、 &lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; および &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; についてのカーネルオプションも併せて参照してください。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalljamainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;ファームウエアのテスト&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI テーブルと他の多くの BIOS 部品を検証する BIOS チェッカーを開始します。 結果は USB ディスクか、またはネットワーク経由で保存することができます。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalljamainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::harddisk.html</a>
+===================================================================
+(Binary files differ)
+
+
+Property changes on: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::harddisk.html
+___________________________________________________________________
+Added: svn:mime-type
+ + application/octet-stream
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalljamainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;ヘルプシステムの使用&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ブートローダのオンラインヘルプは状況に合わせた表示を行ないます。メニュー項目を選択している場合はその項目についての情報を提供するほか、起動オプションを編集している場合はカーソル位置のオプションについて情報を調べます。&lt;/p&gt;
++
++&lt;p&gt;操作キー &lt;ul&gt;&lt;li&gt;&lt;em&gt;上矢印&lt;/em&gt;: 前のリンクを強調表示する&lt;/li&gt;&lt;li&gt;&lt;em&gt;下矢印&lt;/em&gt;: 次のリンクを強調表示する&lt;/li&gt;&lt;li&gt;&lt;em&gt;左矢印&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: 前のトピックに戻る&lt;/li&gt;&lt;li&gt;&lt;em&gt;右矢印&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;スペース&lt;/em&gt;: リンクをたどる&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: 1 ページ分スクロールアップ&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: 1 ページ分スクロールダウン&lt;/li&gt;&lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: ページの初めにジャンプ&lt;/li&gt;&lt;li&gt;&lt;em&gt;End&lt;/em&gt;: ページの最後にジャンプ&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: ヘルプの終了&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalljamaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;インストール元&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; を押すとインストール元を選択することができます。&lt;/p&gt;
++
++&lt;p&gt;このオプションは &lt;a href=&quot;#o_install&quot;&gt;インストール&lt;/a&gt; ブートオプションと同じ意味です。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalljamainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;言語とキーボードレイアウトの選択&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ブートローダで使用する言語とキーボードレイアウトを変更するには、 &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; を押してください。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalljamainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;インストール&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;既定のインストールを開始するには &lt;em&gt;インストール&lt;/em&gt; を選んでください。入力された &lt;em&gt;インストール&lt;/em&gt; は起動時に使用されます。この項目を選択すると一般的に利用可能な多くのハードウエアが使用できます。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalljamainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::memtest.html</a>
+===================================================================
+(Binary files differ)
+
+
+Property changes on: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::memtest.html
+___________________________________________________________________
+Added: svn:mime-type
+ + application/octet-stream
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalljamainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;インストール -- ACPI 無効&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;現在のハードウエアでは割り込み処理をコントロールするために ACPI (Advanced Configuration and Power Interface) を必要とする場合があります。 ACPI は古い APM システムに完全に取って代わるものです。&lt;/p&gt;
++
++&lt;p&gt;カーネルの起動中に問題が発生した場合、 &lt;em&gt;インストール -- ACPI 無効&lt;/em&gt; を選択してください。 ACPI に問題があるコンピュータについての既知の問題点は次の通りです: &lt;ul&gt;&lt;li&gt;起動時にカーネルがフリーズする&lt;/li&gt;&lt;li&gt;PCI カードが正しく検出されていないか、正しく初期化されていない&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#firmware&quot;&gt;ファームウエアのテスト&lt;/a&gt; の起動オプションを指定して ACPI 妥当性テストの結果を見ることもできます。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalljamainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;インストール -- ローカル APIC 無効&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;通常は APIC (Advanced Programmable Interrupt Controller) を利用しても何も問題はありません。 ただし、何か問題が発生した場合はこのオプションを使ってローカル APIC サポートなしで起動してみてください。&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt; (Advanced Configuration and Power Interface) と取り違えないよう注意してください。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalljamainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;起動オプション&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;使用できる起動オプションには 2 種類あります。 1 つはインストーラに影響を与えるオプションで、もう 1 つはカーネルオプションです。よく使われるオプションの一部を次に示します:&lt;/p&gt;
++
++&lt;p&gt;a) インストーラオプション &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;インストール&lt;/a&gt; -- インストール元の選択&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#network&quot;&gt;ネットワークオプション&lt;/a&gt; -- ネットワークオプション&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;VNC オプション&lt;/a&gt; -- VNC を経由してインストールするオプション&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;b) カーネルオプション &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;スプラッシュ&lt;/a&gt; -- スプラッシュ画面の動作に影響を与えます&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- 電源管理を切り替えます&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- &quot;詳細設定と電源インタフェース&quot; の略称です&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- IDE サブシステムを操作します&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalljamainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,13 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;インストーラオプション: ネットワークオプション&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ネットワークインタフェースを今すぐ設定することができます。ハードウェアは YaST2 を利用して後から検出します。ネットワークカードを設定するオプションの最低限の設定は IP アドレスとサブネットマスクの項目です。例: &lt;ul&gt;&lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;または短縮して: &lt;ul&gt;&lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#o_install&quot;&gt;ネットワークベースのインストール&lt;/a&gt; を指定しながらこれらのオプションを両方とも指定しない場合、インストーラは &lt;em&gt;DHCP&lt;/em&gt; でネットワークインタフェースを設定しようとします。デフォルトゲートウエイが必要な場合、オプション &lt;em&gt;ゲートウエイ&lt;/em&gt; でこのゲートウエイを指定してください。例: &lt;ul&gt;&lt;li&gt;gateway=192.168.0.8&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalljamainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;カーネルオプション: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI (Advanced Configuration and Power Interface) は、オペレーティングシステムと BIOS の間で決められた電源と設定管理インタフェースの標準です。既定では &lt;em&gt;acpi&lt;/em&gt; は BIOS が 2000 年より新しいものであると有効になります。 ACPI の動作をコントロールするために、いくつかのパラメータが用意されています: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- PCI の割り込み制御に ACPI を使わないようにする&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- ACPI のうち起動に関連する部分だけを有効にする&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- ACPI を完全に無効化する&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- BIOS が 2000 年以前の日付の場合でも ACPI を有効にする&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;特に新しいコンピュータでは、古い &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; システムに取って代わっています。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalljamainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;カーネルオプション: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM は現在のコンピュータで使用される 2 種類の電源管理ストラテジのうちの 1 つです。この機能はディスクへのサスペンド (Suspend to disk) のような機能に対してノート PC で主に使用されますが、パワーダウンした後にコンピュータの電源をオフにするような機能もあります。 APM は BIOS が正しく動作することを前提に作られているため、 BIOS が壊れた場合は APM の使用が制限されたり、コンピュータが機能しないこともあります。そのため、下記のパラメータでオフにすることもできます &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- APM を完全に無効化する&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;いくつかの最新コンピュータでは新しい &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt; を利用したほうが利点があるかもしれません。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalljamainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;カーネルオプション: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;IDE は SCSI と異なり、ほとんどのデスクトップワークステーションで広く使用されています。 IDE システムに発生したハードウェア問題を回避するには、カーネルパラメータを使用してください: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- IDE ドライブの DMA を無効にする&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalljamainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;インストーラオプション: インストール&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;既定ではローカルの CD-ROM ドライブをインストール元として検索します。ネットワークインストールの場合、 &lt;em&gt;インストール&lt;/em&gt; オプションを選択してください。使用可能なインストールプロトコルは下記の通りです。 &lt;ul&gt;&lt;li&gt;FTP&lt;/li&gt;&lt;li&gt;NFS&lt;/li&gt;&lt;li&gt;HTTP&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;使用する構文は一般的な URL に似ています。 例えばサーバが 192.168.0.1 で、そのサーバのディレクトリ /install から NFS ベースのインストールを行なう場合、以下のようにソースを指定してください: &lt;ul&gt;&lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;ネットワークカードは &lt;em&gt;DHCP&lt;/em&gt; で設定するか、 &lt;a href=&quot;#network&quot;&gt;ネットワークオプション&lt;/a&gt; で説明したように自分でパラメータを指定する必要があります。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalljamainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;カーネルオプション: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;スプラッシュ画面とはシステムが起動する際に表示される画像のことです。 &lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- スプラッシュ画面を無効にします。とても古いコンピュータを使用している場合や、何らかのエラーが起こる場合に便利です。&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- スプラッシュ画面を有効にし、あわせてカーネルと起動時のメッセージを表示します。&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- スプラッシュ画面を有効にしますが、メッセージを表示しません。進行状況のバーのみを表示します。&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalljamainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;インストーラオプション:vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;VNC インストールを使用するには、パラメータ vnc と vncpassword を指定してください: &lt;ul&gt;&lt;li&gt;&lt;em&gt;vnc=1 vncpassword=example&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;VNC サーバが起動され、リモートシステムから任意の VNC クライアントを経由して YaST2 をコントロールすることができるようになります。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalljamainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::rescue.html</a>
+===================================================================
+(Binary files differ)
+
+
+Property changes on: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::rescue.html
+___________________________________________________________________
+Added: svn:mime-type
+ + application/octet-stream
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalljamainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;ビデオモード選択&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;グラフィックカードがサポートするビデオモードの一覧を表示するには &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; キーを押してください。モニタが表示できるもっとも高いモードがあらかじめ選択されています。&lt;/p&gt;
++
++&lt;p&gt;モニタが自動的に検出されないこともあります。その場合は手動でモードを選択してください。&lt;/p&gt;
++
++&lt;p&gt;インストール中にグラフィックカードに問題が発生した場合、 &lt;em&gt;テキストモード&lt;/em&gt; が回避方法になるかもしれません。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalljanavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;&lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt; に戻る&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkomainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;부트 로더 도움말&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;@@@product@@@&lt;/em&gt; 에 오신것을 환영합니다&lt;/p&gt;
++
++&lt;p&gt;이 메뉴를 사용하여 원하는 기능을 선택합니다. 이 도움말 시스템에서 문제가 발생하면 &lt;em&gt;@@@fkey_help@@@&lt;/em&gt;를 눌러 도움말 시스템의 &lt;a href=&quot;#help&quot;&gt;설명&lt;/a&gt; 에 들어가세요. 이 메뉴에서 주요 기능은 다음과 같습니다:&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#harddisk&quot;&gt;하드디스크로 부팅&lt;/a&gt;: 이 선택사항은 앞서 설치된 운영체제만 시작할 뿐 시스템에 아무런 영향을 주지 않습니다.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#linux&quot;&gt;설치&lt;/a&gt;: 대부분의 머신은 이 설치 모드를 사용합니다. 부팅 도중 시스템이 멈추거나 하드웨어 관련 문제(디스크 제어기, 네트워크 카드 같은)가 발생하면, 다음의 설치 옵션 중 하나를 선택하세요.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#noacpi&quot;&gt;설치 -- ACPI 비활성화&lt;/a&gt;: 현재 판매되는 대부분의 컴퓨터가 불완전하거나, ACPI의 구현에 결함이 있습니다. 이 선택사항은 커널에서 ACPI 지원을 비활성화 시킵니다. 하지만 IDE 하드디스크의 DMA 기능 같은것들은 활성화합니다.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#nolapic&quot;&gt;설치 -- 내부 APIC 비활성화&lt;/a&gt;: 만약 정상적인 설치에 실패했다면, 시스템 하드웨어가 로컬 APIC를 지원하지 않을 수 있습니다. 그런 경우라면, 이 옵션을 사용하여 로컬 APIC 지원 없이 설치를 해보세요.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#failsafe&quot;&gt;설치 -- 안전 설정&lt;/a&gt;: &lt;em&gt;설치&lt;/em&gt;에 성공하지 못한 경우에는, 이 선택 항목으로 문제를 해결 할 수도 있습니다.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#rescue&quot;&gt;시스템 복구&lt;/a&gt;: 이 부팅 이미지는 RAM 을 이용한 작은 리눅스 시스템을 시작 시킵니다. 이것은 시스템에 문제가 발생한 경우에 유용합니다. 이것으로 부팅시킨 뒤, 루트로 로그인 할 수 있습니다.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#firmware&quot;&gt;펌웨어 검사&lt;/a&gt;: ACPI 및 BIOS의 부분의 유효성을 확인 할 BIOS 검사 도구가 실행 됩니다.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#memtest&quot;&gt;메모리 검사&lt;/a&gt;: 메모리 검사는 새 메모리 모듈을 검사하는데 유용합니다. 컴퓨터 시스템의 중요한 부분 및 문제에 대한 검사입니다.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#opt&quot;&gt;부트 옵션&lt;/a&gt;: 부트 옵션은 커널에 대한 설정입니다. 사용자 시스템 동작을 최적화 할 수 있게 변경할 수 있습니다.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ 도움말&lt;/a&gt;: 이것은 context sensitive 입니다. 부팅화면의 활성에 따라 서로 다른 화면을 보여 줍니다. 여기에 대한 설명은 도움말 시스템에 있습니다.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: 부트로더가 사용하는 언어와 키보드 배열 지정 합니다.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ 비디오 모드&lt;/a&gt;: 여기에서 설치 할 때의 해상도중 다른것을 선택합니다. 그래픽 모드 설치에 문제가 생길 수도 있고, 작업 도중 &lt;em&gt;텍스트 모드&lt;/em&gt; 있을 수 있습니다.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ 설치 소스&lt;/a&gt;: 설치할 소스를 선택합니다.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ 드라이버 업데이트&lt;/a&gt;: 최근 출시된 머신을 위해 드라이버 업데이트 설치가 필요 할 수 있습니다.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkomainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;소프트웨어 방식 선택&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;@@@product@@@ 의 32비트 또는 64비트 버전을 선택하세요.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkomaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;드라이버 업데이트&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;플로피 디스크나 CD-ROM 드라이버 업데이트가 필요하면, &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;를 누르세요. 리눅스 커널을 불러온 후에 부트 로더가 드라이버 업데이트 매체 삽입을 요구 할 것입니다.&lt;/p&gt;
++
++&lt;p&gt;드라이버 업데이트는 일반적으로 새 버전의 하드웨어 드라이버나, 버그 수정을 뜻합니다.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkomainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;설치 -- 안전 설정&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;설치 또는 irreproducible 오류를 만났을때 &lt;em&gt;설치 -- 안전 설정&lt;/em&gt; 를 선택하세요. 이 옵션은 IDE 드라이버의 DMA 와 모든 전원 관리 기능을 비활성화 합니다. 커널 옵션 &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;, &lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt;, &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt;을 참조하세요.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkomainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;펌웨어 검사&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;BIOS 검사기를 시작 합니다. BIOS의 ACPI 테이블 및 기타 부분의 유효성을 검사하고, 검사 결과를 USB 디스크나 네트워크를 통해 저장 할 수 있습니다.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkomainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;하드디스크로 부팅&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;설치된 OS 로 부팅&lt;/em&gt; 선택으로 하드디스크에 설치된 시스템으로 시작합니다. 이에 앞서 첫번째 하드디스크를 시작 할 때 MBR (Master Boot Record) 을 찾으므로 설치된 시스템이 있어야 합니다. 첫번째 하드디스크를 지칭하는 장치 ID 를 컴퓨터 BIOS(CMOS 셋업)에서 지정할 수 있습니다.&lt;/p&gt;
++
++&lt;p&gt;하드디스크로 컴퓨터를 시작하려고 하는데 잊어버리고 CD나 DVD를 꺼내지 않게되면 이것을 사용하세요.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkomainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;도움말 시스템 사용&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;부트로더 온라인 도움말은 context sensitive 입니다. 선택한 메뉴 아이템에 대한 정보를 얻거나, 부트 옵션을 편집 할 때 옵션에 커서가 올라가있으면 거기에 대한 정보를 조회 할 수 있습니다.&lt;/p&gt;
++
++&lt;p&gt;키 &lt;ul&gt;&lt;li&gt;&lt;em&gt;위 화살표&lt;/em&gt;: 앞의 링크를 하이라이트&lt;/li&gt;&lt;li&gt;&lt;em&gt;아래 화살표&lt;/em&gt;: 다음 링크를 하이라이트&lt;/li&gt;&lt;li&gt;&lt;em&gt;왼쪽 화살표&lt;/em&gt;, &lt;em&gt;백스페이스&lt;/em&gt;: 이전 주제로 되돌아가기&lt;/li&gt;&lt;li&gt;&lt;em&gt;오른쪽 화살표&lt;/em&gt;, &lt;em&gt;엔터&lt;/em&gt;, &lt;em&gt;스페이스&lt;/em&gt;: 다음 링크를&lt;/li&gt;&lt;li&gt;&lt;em&gt;페이지 업&lt;/em&gt;: 한장 위로&lt;/li&gt;&lt;li&gt;&lt;em&gt;페이지 다운&lt;/em&gt;: 한장 아래로&lt;/li&gt;&lt;li&gt;&lt;em&gt;처음&lt;/em&gt;: 첫장으로&lt;/li&gt;&lt;li&gt;&lt;em&gt;End&lt;/em&gt;: 마지막 장으로&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: 도움말 떠남&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkomaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;설치 소스&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; 를 눌러 설치할 소스를 선택합니다.&lt;/p&gt;
++
++&lt;p&gt;이것은 &lt;a href=&quot;#o_install&quot;&gt;설치&lt;/a&gt; 부트 옵션을 사용하는것과 같은 것입니다.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkomainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;언어 및 키보드 배열 선택&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; 을 눌러 부트 로더가 사용할 언어 및 키보드 배열을 변경합니다.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkomainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;설치&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;설치&lt;/em&gt; 선택으로 기본 설치를 시작합니다. &lt;a href=&quot;#opt&quot;&gt;부트 옵션&lt;/a&gt; 입력은 시작 할 때 사용됩니다. 이 항목은 하드웨어에서 사용할 수 있는 많은 기능을 활성화 할 수 있습니다.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkomainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;메모리 검사&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;포함된 &lt;em&gt;메모리 검사&lt;/em&gt; 는 시스템의 하드웨어 스트레스 검사를 제공합니다. 주요 기능은 고장난 RAM 을 감지하거나, 시스템 내의 많은 부분의 스트레스를 감지합니다.&lt;/p&gt;
++
++&lt;p&gt;메모리 오류가 발견되지 않았을 경우에도 메모리가 정상적일 것이라는 보장은 없습니다만, 대부분의 메모리 결함을 감지합니다.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkomainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;설치 -- ACPI 비활성화&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;현재 하드웨어는 ACPI (Advanced Configuration and Power Interface) 를 제어하는 인터럽트 처리를 요구합니다. 구형 APM 시스템을 ACPI 는 완벽하게 대체합니다.&lt;/p&gt;
++
++&lt;p&gt;&lt;em&gt;설치 -- ACPI 비활성화&lt;/em&gt; 를 선택하여 커널의 부팅 도중 문제가 발생한 경우 머신이 가지고 있는 알려진 문제 ACPI가: &lt;ul&gt;&lt;li&gt;부팅 도중 커널 뻗어버림&lt;/li&gt;&lt;li&gt;PCI 카드가 감지되지 않았거나 적당히 초기화됨&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#firmware&quot;&gt;펌웨어 검사&lt;/a&gt; 을 사용해 부트 옵션 및 ACPI 유효성 검사 결과 볼 수 있습니다.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkomainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;설치 -- 내부 APIC 비활성화&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;보통은 APIC (Advanced Programmable Interrupt Controller)에는 문제가 생기지 않습니다. 하지만 문제가 생긴것으로 보이면, 이 옵션을 사용하여 부팅 할 때 로컬 APIC 지원 없이 해보세요.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt; (Advanced Configuration and Power Interface)와 혼동하지 마세요.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkomainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;부트 옵션&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;부트 옵션으로 두가지 방식을 사용할 수 있습니다. 첫번째로, 설치 프로그램에 영향을 주는 옵션이고 두번째로, 커널 옵션 입니다. 일반적인 옵션은 다음과 같습니다:&lt;/p&gt;
++
++&lt;p&gt;a) 설치프로그램 옵션들 &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;설치&lt;/a&gt; -- 설치 소스 선택&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#network&quot;&gt;네트워크 옵션&lt;/a&gt; -- 네트워크 옵션&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;VNC 옵션&lt;/a&gt; -- VNC를 통한 설치를 위한 옵션&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;b) 커널 옵션 &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;스플래시&lt;/a&gt; -- 스플래시 화면의 동작 영향&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- 전원 관리 전환&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- 고급 설정 및 전원 인터페이스&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- IDE 서브시스템 제어&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkomainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,13 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;설치 옵션: Network Options&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;지금 바로 네트워크 인터페이스를 구성할 수 있습니다. 하드웨어는 나중에 YaST2에서 감지할 것입니다. 최소 옵션으로 호스트 IP 와 넷마스크로 네트워크 카드를 설정하세요. 예를 들어:&lt;ul&gt;&lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;또는 짧은 양식에서: &lt;ul&gt;&lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#o_install&quot;&gt;네트워크 설치&lt;/a&gt; 을 지정하고 이러한 옵션을 둘 다 지정하지 않고, 설치프로그램에서 네트워크 인터페이스를 &lt;em&gt;dhcp&lt;/em&gt; 와 함께 설정합니다. 만약 기본 게이트웨이가 필요하면, &lt;em&gt;gateway&lt;/em&gt; 옵션을 지정합니다. 예를 들어:&lt;ul&gt;&lt;li&gt;gateway=192.168.0.8&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkomainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;커널 옵션: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI는 (Advanced Configuration and Power Interface) 운영체제와 바이오스간의 전원관리 인터페이스를 정의하고 있는 표준입니다. 기본적으로 &lt;em&gt;acpi&lt;/em&gt;2000년 이후에 제조된 바이오스를 사용하고 있다면 acpi 옵션이 활성화될 것입니다. 다음은 ACPI 동작을 제어하기위해 일반적으로 사용되는 항목입니다:&lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- PCI 인터럽트 전달에 ACPI를 사용하지 않음&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- 부팅과 관련된 부분 중 ACPI 부분만 활성화&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- ACPI 를 완전히 끄기&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- 2000년 이전에 제조된 바이오스일지라도 강제로 ACPI 옵션을 켜기&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;특히 최신 컴퓨터에서 구형 &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; 시스템을 대체합니다.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkomainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;커널 옵션: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM(Advanced Power Management)은 요즘 컴퓨터에서 사용되고 있는 두 종류의 전원관리기술 중 하나입니다. 주로 휴대용에서 사용되는 &quot;디스크 일시 중지&quot;같은 기능은 물론, 전원이 공급이 중단된 이후의 컴퓨터를 끄는데 이 기술이 사용됩니다. APM은 정상적으로 동작하는 바이오스에 의지합니다. 만일 바이오스에 문제가 발생한다면 APM을 사용하는데 제약이 따를 뿐만 아니라 심지어 컴퓨터 동작을 방해할 수도 있습니다. 그러므로 APM 관련 항목은 기본적으로 매개변수 &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- ACPI 를 완전히 끄기&lt;/li&gt;&lt;/ul&gt; 와 함께 꺼져있을 수 있습니다.&lt;/p&gt;
++
++&lt;p&gt;최신 컴퓨터의 경우 새로운 &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt; 이 보다 더 유용할 것입니다.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkomainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;커널 옵션: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;SCSI 와는 달리 IDE 는 대부분의 데스크탑 워크스테이션에서 사용되고 있습니다. IDE 시스템에 문제가 발생할 경우에는 커널 매개변수를 사용하세요: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- IDE 드라이브용 DMA 끄기&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkomainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;설치 옵션: install&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;기본적으로, 내부 CD-ROM의 설치 소스를 검색합니다. 네트워크 인스톨을 위해서는&lt;em&gt;설치&lt;/em&gt; 옵션을 선택합니다. 설치 진행이 가능한 프로토콜은 &lt;ul&gt;&lt;li&gt;FTP&lt;/li&gt;&lt;li&gt;NFS&lt;/li&gt;&lt;li&gt;HTTP&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;구문 사용은 표준 URL 같은 것만을 사용합니다. 예를 들어, 192.168.0.1 에서 서버를 찾고 하고자 하는 NFS 기반 설치를 이 서버의 디렉토리 /install 에서 할 수 있습니다. 지정되는 소스는 다음과 같습니다: &lt;ul&gt;&lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;네트워크 카드는 둘중 하나를 사용하여 구성됩니다. &lt;em&gt;dhcp&lt;/em&gt; 또는 &lt;a href=&quot;#network&quot;&gt;네트워크 옵션&lt;/a&gt; 에서 자신의 설명에 따라 매개 변수를 지정해야 합니다.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkomainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;커널 옵션: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;스플래시 스크린은 시스템이 시작되는 동안 보여지는 사진입니다.&lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- 스플래시 스크린은 꺼져 있습니다. 아주 오래된 모니터를 사용하고 있거나, 오류가 발생했을 수 있습니다.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- 스플래시, 커널 및 부트 메시지가 보여지는 상태에서 활성화&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- 스플래시 활성화, 하지만 메시지는 없고, 대신에 진행률 막대가 그려집니다.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkomainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;설치 옵션: vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;VNC 설치를 활성화 한뒤 VNC 파라메터와 VNC 열쇠글 지정: &lt;ul&gt;&lt;li&gt;&lt;em&gt;vnc=1 vncpassword=example&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;원격 시스템 VNC 클라이언트에 대한 제어 및 VNC 서버 관리를 YaST2 에서 할 수 있습니다.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkomainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;시스템 복구&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;시스템 복구&lt;/em&gt; 는 적은 용량의 RAM 디스크를 기반으로 한 시스템입니다. 여기서, 설치된 시스템에 대한 모든 조정을 할 수 있습니다. 이 시스템에서 전문가를 위한 적은 도구만 사용가능합니다.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkomainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;비디오 모드 선택&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;@@@fkey_video@@@&lt;/em&gt; 를 눌러 그래픽 카드가 지원하는 비디오 모드 목록을 가져옵니다. 모니터에 표시할 수 있는 높은 모드를 미리 선택 할 수 있습니다.&lt;/p&gt;
++
++&lt;p&gt;사용자의 모니터가 자동으로 검색하지 못한 것도 가능합니다. 이 경우, 원하는 모드를 수동으로 선택하세요.&lt;/p&gt;
++
++&lt;p&gt;그래픽 카드에 문제가 있는 경우, 설치하는 동안 &lt;em&gt;텍스트 모드&lt;/em&gt; 을 사용 할 수 있습니다.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkonavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;&lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt; 에 되돌아감&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkymainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;Жүктөөгүч жардамы&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;@@@product@@@&lt;/em&gt; кош келиңиздер&lt;/p&gt;
++
++&lt;p&gt;Керектүү функцияны тандоо үчүн төмөнкү менюну колдонуңуз. Эгерде сизде жардам системасын аралоосунда кыйынчылыктар чыкса, анда жардам системанын &lt;a href=&quot;#help&quot;&gt;мүнөзүн&lt;/a&gt; көрүү үчүн &lt;em&gt;@@@fkey_help@@@&lt;/em&gt; баскычын басыңыз. Бул менюда көрсөтүлгөн негизги функциялар:&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#harddisk&quot;&gt;Катуу дисктен жүктөлүү&lt;/a&gt;: Бул тандоо, системага эч нерсе кылбайт. Ал мурда орнотулган операциондук системаны гана жүктөйт.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#linux&quot;&gt;Орнотуу&lt;/a&gt;: Бул режим көптөгөн учурларда иштетилет. Эгерде сиздин системаңыз жай иштеп баштаса же аппаратык жабдыктардын(диск контроллери же тармак карталары) аныктоосунда кыйынчылыктар пайда болсо, анда төмөнкү орнотуу параметрлерин колдонуп көрүңүз.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#noacpi&quot;&gt;Орнотуу - ACPI өчүк&lt;/a&gt;: Көптөгөн сатылган компьютерлер толук эмес же туура эмес ACPI реализациясын камтышы мүмкүн. Бул тандоо ядро ичинде ACPI колдоосун өчүрөт бирок кээ бир ылдамдыкка тиешелүү өзгөчөлүктөр жандырылган, мисалы IDE катуу дисктер үчүн DMA режими.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#nolapic&quot;&gt;Орнотуу - локалдык APIC өчүк&lt;/a&gt;: Эгерде жөнөкөй орнотуу болбой жатса анда сиздин жабдыктарыңыз APIC'ти колдобоошу мүмкүн. Эгерде ошондой болсо анда орнотууну APIC'сиз колдоо менен бул параметрди колдонуңуз.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#failsafe&quot;&gt;Орнотуу - коопсуз ырастоо параметрлери&lt;/a&gt;: Эгерде сиз &lt;em&gt;Орнотуу&lt;/em&gt; менен орнотууну аткаралбай калсаңыз анда бул тандоо сизге жардма бериши мүмкүн&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#rescue&quot;&gt;Аварийдик система&lt;/a&gt;: Бул жүктөөлүчү элес RAM эсине кичинекей Linux системасын жүктөйт. Эгерде сиздин системаңыз туура эмес башталып жатса бул ыкма өтө пайдалуу. Бул системанын жүктөөлүшү менен root колдонуучу атын колдонуп кириңиз.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#firmware&quot;&gt;Программа-жабдыктар текшерүүсү&lt;/a&gt;: ACPI жана BIOS'тун башка бөлүктөрүн текшерген BIOS текшерүү аспабын иштетет.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#memtest&quot;&gt;Эс тести&lt;/a&gt;: Эс тести жөн эле жаңы эс модулдарын текшерүүсүнө караганда өтө пайдалуу ыкма. Бул компьютер системасын көптөгөн бөлүктөрүн стресстик текшерүү жана жабдыктарда табылган каталарды аныкташы мүмкүн.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#opt&quot;&gt;Жүктөө параметрлери&lt;/a&gt;: Жүктөөлүү параметрлери сиздин системаңыздын журушун толугу менен өзгөртүшү мүмкүн. Бул ядро ырастоолору.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Жардам&lt;/a&gt;: Мазмундан көз каранды. Жүктөө экрандын активдүү элементке тиешелүү жардамы көрсөтүлөт жана бул жардам системанын баяны дагы камтылган.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Орноткуч колдонуучу тилин жана клавиатура жайгалышын тандаңыз.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Видео режими&lt;/a&gt;: Орнотуу мезгилинде колдонуулучу экран мүмкүнчүлүгүн тандаңыз. Эгерде сизде графикалык орнотууда кыйынчылыктар пайда болсо, анда &lt;em&gt;тексттик режим&lt;/em&gt; сизге жардам бериши мүмкүн.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Орнотуу булагы&lt;/a&gt;: Орнотуу булагын тандоо.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Драйвер жаңылоосу&lt;/a&gt;: Көбүнчө жаңы компьютерлер Драйвер жаңылоосун керектеши мүмкүн&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkymainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;Программалык камсыздоону тандоо&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Сиз орнотуу версиясын тандап алышыңыз мүмкүн: 32 же 64 биттик @@@product@@@ версиясы.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkymaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;Драйвер жаңылоосу&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Эгерде сизге драйвер жаңылоосу дискета же CD-ROM керек болсо, анда &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt; баскычын басыңыз. Жүктөөгүч Linux ядросу жүктөлгөндөн кийин драйвер жаңылоосун камтыган булакты киргизүүнү талап кылат.&lt;/p&gt;
++
++&lt;p&gt;Драйвер жаңылоосу бул жабдыктардын жаңы драйве версиясын же орнотуу мезгилинде керектүү каталардын жамактарын камтыган жөнөкөй дискета.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkymainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;Орнотуу - коопсуз ырастоо параметрлери&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Эгерде системаңыз орнотуу мезгилинде жай иштеп асылып жатса же түшүнүксүз каталар чыгып баратса, анда &lt;em&gt;Орнотуу - коопсуз ырастоо параметрлери&lt;/em&gt;'н тандаңыз. Бул параметр IDE түзүлүштөр үчүн DMA режимин жана бардык электр камсыздоо башкаруунун өзгөчөлүктөрүн өчүрөт. Кошумча &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;, &lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; жана &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; ядро параметрлерин дагы караңыз.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkymainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;Программа-жабдыктар текшерүүсү&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;BIOS'тун ACPI мүмкүнчүлүгүн жана BIOS'тун башка бөлүкчөлөрдүн BIOS текшерүүсүн иштетет. Текшерүү жыйынтыгын usb дискке же тармак аркылуу сактоо мүмкүн.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkymainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;Катуу дисктен жүктөөлүү&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Сиздин катуу дискиңизде орнотулган системаны жүктөө үчүн &lt;em&gt;Орнотулган ОС жүктөө&lt;/em&gt; тандаңыз. Бул система орнотулган болушу керек эмнеге дегенде биринчи катуу дисктин MBR(Башкы жүктөө жазылышы) гана баштатылат. Биринчи катуу диск түзүлүшүнүн ID'син компьютердин BIOS'у аныктап берет.&lt;/p&gt;
++
++&lt;p&gt;Эгерде сиз CD же DVD диск түзүлүшүнөн алып чыгууну унутуп жана компьютерди катуу дисктен жүктөөсүн каалаган учурда бул ыкманы колдонуңуз.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkymainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Жардам системасын колдонуу&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Онлайндык жүктөөгүч жардамы мазмундан көз каранды. Ал менюдан тандалаган элемент боюнча маалымат берет, же эгерде сиз жүктөөлүү параметрлерин өзгөртүп жаткан учурда, параметрде турган курсор боюнча маалыматты көрсөтүүнү аракеттенет.&lt;/p&gt;
++
++&lt;p&gt;Башкаруу баскычтары &lt;ul&gt;&lt;li&gt;&lt;em&gt;Жогору жебеси&lt;/em&gt;: мурунку шилтемени жаркыратат&lt;/li&gt;&lt;li&gt;&lt;em&gt;Ылдый жебеси&lt;/em&gt;: кийинки шилтемени жаркыратат&lt;/li&gt;&lt;li&gt;&lt;em&gt;Солго жебеси&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: мурунку бөлүмгө өтүү&lt;/li&gt;&lt;li&gt;&lt;em&gt;Оңго жебеси&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Боштук&lt;/em&gt;: шилтемедем өтүү&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: мурунку бетке өтүү&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: кийинки бетке өтүү&lt;/li&gt;&lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: беттин башына өтүү&lt;/li&gt;&lt;li&gt;&lt;em&gt;End&lt;/em&gt;: беттин аягына өтүү&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: жардам систе
+ масындан чыгуу&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkymaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;Орнотуу булагы&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Орнотуу булагын тандоо үчүн &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; баскычын басыңыз.&lt;/p&gt;
++
++&lt;p&gt;Бул эгерде &lt;a href=&quot;#o_install&quot;&gt;орнотуу&lt;/a&gt; жүктөө параметрин колдонгондой эле, экөө бир нерсе.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkymainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Тилди жана клавиатура жайгалышын тандоо&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Жүктөгүч колдонуучу тилин жана клавиатурасын өзгөртүү үчүн &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; баскычын басыңыз.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkymainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;Орнотуу&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Орнотууну алдын ала баштоо үчүн &lt;em&gt;Орнотуу&lt;/em&gt;'ну тандаңыз. Көрсөтүлгөн &lt;a href=&quot;#opt&quot;&gt;жүктөө параметрлери&lt;/a&gt; дагы башталышта колдонулат. Бул пункт бар болгон жабдыктандын көптөгөн жалпы өзгөчөлүктөрүн активдештирет.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkymainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;Эс тести&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;Эс тести&lt;/em&gt; жанык параметри системанын жабдыктардын стресстик тесттин жакшы мүмкүнчүлүгүн берет. Негизги максаты бузук RAM'дарды аныктоо, бирок андан тышкары системанын калган бөлктөрдүн жүктөмү аткарылат.&lt;/p&gt;
++
++&lt;p&gt;Эгерде эч кандай ката табылбаган болсо, анда эстин жакшы экендигин эч кандай кепилдиги жок бирок эстин көптөгөн дефектери табылмак эле.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkymainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;Орнотуу - ACPI өчүк&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Заманбап жабдыктарда көбүнчө токтолуштардын башкаруу үчүн ACPI (Жетилген система ырастоо интерфейси жана энергияны камсыздоо башкаруучусу) колдонулат. ACPI толугу менен эски APM системасын ордун алмаштырат.&lt;/p&gt;
++
++&lt;p&gt;Жүктөөлүү кезинде ядро менен кыйынчылыктар пайда болсо, анда &lt;em&gt;Орнотуу - ACPI өчүк&lt;/em&gt; тандаңыз. AC проблемаларын камтыган белгилүү машиналар проблемалары: &lt;ul&gt;&lt;li&gt;ядро жүктөөлүүдө токтотулуп жатат&lt;/li&gt;&lt;li&gt;PCI платалары табылган жок же туура эмес аныкталышты&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Сиз &lt;a href=&quot;#firmware&quot;&gt;Программа-жабдыктар текшерүүсү&lt;/a&gt; жүктөөлүү параметрин колдоно аласыз жана ACPI текшерүү жыйынтыгын көрө аласыз.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkymainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;Орнотуу - локалдык APIC өчүк&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Көбүнчө APIC (Жетилген программалоочу токтотулуштар башкаруучусу) менен эч кандай кыйынчылыктар пайда болбойт. Бирок эгерде сиз кээ бир проблемаларды тапкан болсоңуз, анда бул параметрди APIC колдоосуз жүктөөлүүнү колдонуп көрүңүз.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt; (Жетилген система ырастоо интерфейси жана энергияны камсыздоо башкаруучусу) менен адаштырбаңыз.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkymainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Жүктөөлүү параметрлери&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Жүктөөлүү параметрлердин эки түрү бар. Биринчиси бул орноткучка таасир тийгизген параметрлер. Экинчиси болсо ядро параметрлери. Алардын эң көп колдонулгандары:&lt;/p&gt;
++
++&lt;p&gt;a) орнотуу параметрлери: &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;орнотуу&lt;/a&gt; -- орнотуу булагын тандаңыз&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#network&quot;&gt;тармак параметрлери&lt;/a&gt; -- тармак параметрлери&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;vnc параметрлери&lt;/a&gt; -- VNC аркылуу орнотуунун параметрлери&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;b) ядро параметрлери: &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;заставка&lt;/a&gt; -- экрандык заставканы жандыруу/өчүрүү&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- электр камсыздоо башкаруусун иштетет&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- система ырастоо жетилген интерфейси жана энергияны камсыздоо башкаруучу&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- IDE системасын башкарат&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkymainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,13 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;Орнотуу параметрлери: Тармак параметрлери&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Тармак интерфейсин азыр ырастап койсо болот. Жабдык кийинчерек YaST2 менен аныкталат. Тармак картанын минималдуу ырастоо параметрлери түйюндүн IP адреси жана тармак маскасы болуп эсептелинет. Мисалы: &lt;ul&gt;&lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;же анын кыска формасында: &lt;ul&gt;&lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Ушул эки параметрлерди көрсөтпөй сиз &lt;a href=&quot;#o_install&quot;&gt;тармак менен орнотуу&lt;/a&gt;'ну тандасаңыз, анда орноткуч тармак картасын &lt;em&gt;dhcp&lt;/em&gt; жардамы менен ырастап көрөт. Эгерде сизге алдын ала шлюз керек болсо, анда аны &lt;em&gt;шлюз&lt;/em&gt; параметри менен көрсөтүңүз. Мисалы: &lt;ul&gt;&lt;li&gt;gateway=192.168.0.8&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkymainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Ядро параметрлери: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI (Система ырастоо жетилген интерфейси жана энергияны камсыздоо башкаруучу) бул операциондук система жана BIOS арасында стандарттык ырастоо жана энергияны камсыздоо башкаруу интерфесин түзөт. Алыдын ала, &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- PCI токтолуштарды башкарууда ACPIди колдонбоо&lt;/li&gt; жанык, эгерде BIOS дата версиясы 2000 жылдан кийин аныкталса. ACPI журуш-турушун башкаруу үчүн бир нече жалпы параметрлер бар: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- PCI токтолуштарды башкарууда ACPIди колдонбоо&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- ACPIдин жүктөлүүгө арналган бө
+ үгү гана активдүү калат&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- ACPIди толугу менен өчүрөт&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- BIOS дата версиясы 2000 жылдан мурун болсо да ACPIди жандырат&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Жаңы компьютердерде эски &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; системасын ордун алмаштырат.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkymainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Ядро параметрлери: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM бул азыркы компьютерлерде колдонулуп жаткан электр камсыздоо башкаруусунун эки стратегиядан бириси. Ал негизинен лаптоп компьютерлерде дискти токтотуу функцияларында колдонулат, бирок электр булагы өчкөн учурларда компьютердин өчүүсүндө колдонулушу мүмкүн. APM BIOSтун туура иштөөсүндө байланыштуу. Эгерде BIOS бузук болсо, анда APM колдонууда чектелүү же компьютер менен иштөөгө тыю салынышы мүмкүн. Бирок аны төмөнкү параметр менен өчүрсө болот &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- ACPIди толугу менен өчүрөт&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Кээ бир гана жаңы компьютердер башка &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt; караганда үстөмдүгү бар.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkymainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Ядро параметрлери: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;IDE, SCSI'ге караганда көбүнчө иштөө станцияларында колдонулат. IDE системаларда кээ бир жабдык каталарды чечүү үчүн, ядронун пераметрлерин колдонуңуз: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- IDE дисктер үчүн DMA режимин өчүрүү&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkymainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;Орнотуу параметрлери: install&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Алдын ала локалдык CD-ROM түзүлүштөрү орнотуу булактары болуп эсептелинет. Тармактан орнотуу үчүн &lt;em&gt;орнотуу&lt;/em&gt;'ну тандаңыз. Мүмкүн болгон тармак протоколдору: &lt;ul&gt;&lt;li&gt;FTP&lt;/li&gt;&lt;li&gt;NFS&lt;/li&gt;&lt;li&gt;HTTP&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Колдонулуп жаткан синтаксис бул жөнөкөй стандарттык эле URL. Мисалы, эгерде сиздин сервериңиз 192.168.0.1 адресинде жайгашкан болсо жана сиз ошол сервердин /install каталогундан NFS прокотол аркылуу орнотууну кааласаңыз, анда орнотуу булагын төмөнкүдөй көрсөтүңүз: &lt;ul&gt;&lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Тармак картасы &lt;em&gt;dhcp&lt;/em&gt; жардамы менен ырасталат же сиз &lt;a href=&quot;#network&quot;&gt;тармак параметрлери&lt;/a&gt; бөлүмүндө баяндалгандай өзүңуз ырастоолорду көрсөтүшүңүз керек.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkymainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Ядро параметрлери: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Экрандык заставка бул система жүктөлүп жатканда көрсөтүүлүчү сүрөт. &lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- Экрандык заставка өчүк. Бул өтө эски мониторлор колдонулуп же кандайдыр бир ката бар болгон кезде өтө пайдалуу ыкма.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Экрандык заставка жанык, бирок жүктөө жана ядро билдирүүлөрү көрсөтүлөт.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Экрандык заставка жанык жана эч кандай билдирүүлөр көрсөтүлбөйт. Билдирүүлөр ордуна аткарылып жаткан жүктөлүү индикатору көрсөтүлөт.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkymainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;Орнотуу параметрлери: vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;VNC орнотууга уруксат берүү үчүн vnc жана vncpassword параметрлерин көрсөтүңүз: &lt;ul&gt;&lt;li&gt;&lt;em&gt;vnc=1 vncpassword=example&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;VNC сервери баштатылат жана сиз башка узактагы системалардан VNC клиенти менен YaST2'ни башкара аласыз.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkymainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;Аварийдик система&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;Аварийдик система&lt;/em&gt; бул RAM'да кичинекей базалык система. Анын ичинен орнотулган системага өзгөртүүлөрдү киргизсе болот. Анын ичинде төмөн-деңгээлдүү утилиталар камтылган жана ошол үчүн специалисттерге гана арналган.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkymainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;Видео режимин тандоо&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Сиздин видео-карточкаңыз колдогон видео режимдердин тизмесин алуу үчүн &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; баскычын басыңыз. Монитордун эң жакшы режими тандалган болушу мүмкүн.&lt;/p&gt;
++
++&lt;p&gt;Балким сиздин мониторуңуз автоматтык түрдө аныкталбай калышы мүмкүн, анда жеке кол менен сиз каалаган режимди тандап алыңыз.&lt;/p&gt;
++
++&lt;p&gt;Эгерде сизде графикалык орнотууда кыйынчылыктар пайда болсо, анда &lt;em&gt;тексттик режим&lt;/em&gt; сизге жардам бериши мүмкүн.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkynavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;&lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt; кайтуу&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallltmainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,103 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;Įkrovos tvarkyklės pagalba&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Welcome to &lt;em&gt;@@@product@@@&lt;/em&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this menu to select the desired function. If you have
++problems navigating in this help system, press
++&lt;em&gt;@@@fkey_help@@@&lt;/em&gt; to enter the &lt;a href=&quot;#help&quot;&gt;aprašymas&lt;/a&gt; of the help
++system. The main functions in this menu are:
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#harddisk&quot;&gt;Įkrauti iš kietojo disko&lt;/a&gt;: This selection will not do
++anything to the system. It only starts a previously installed
++operating system.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#linux&quot;&gt;Diegimas&lt;/a&gt;:
++This installation mode works on most machines. If you experience a
++system freeze during boot or problems with detection of your hardware
++components, such as disk controllers or network cards, try one of the
++following installation options.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#noacpi&quot;&gt;Diegimas -- ACPI uždraustas&lt;/a&gt;: Many of the
++currently-sold computers have incomplete or faulty ACPI
++implementations. This selection disables ACPI support in the
++kernel, but still enables many performance features, like DMA for IDE
++hard disks.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#nolapic&quot;&gt;Diegimas --Vietinis APIC uždraustas&lt;/a&gt;:
++If the normal installation fails, this might be due to the
++system hardware not supporting local APIC.
++If this seems to be the case, use this option to
++install without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#failsafe&quot;&gt;Diegimas -- Saugūs nustatymai&lt;/a&gt;: If you were not
++successful with &lt;em&gt;Diegimas&lt;/em&gt;, this selection might
++solve the issue.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#rescue&quot;&gt;Avarinė sistema&lt;/a&gt;: This boot image starts a small
++Linux system in RAM. This is useful if the system does not start properly.
++After booting this system, log in as root.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#firmware&quot;&gt;Firmware Test&lt;/a&gt;: Runs a BIOS test tool that validates
++ACPI and other parts of your BIOS.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#memtest&quot;&gt;Atminties testas&lt;/a&gt;: Memory testing is useful for more than
++checking installation of new memory modules. It is a stress test
++for a big part of your computer system and may indicate hardware
++problems.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#opt&quot;&gt;Įkrovos parametrai&lt;/a&gt;: The boot options may change the
++behavior of your system completely. They are settings for
++the kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Help&lt;/a&gt;: This is context sensitive. It will
++show different screens depending on the active element of the
++boot screen. There is also a description of this help system
++available.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Set language and keyboard mapping
++used by the boot loader.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Video Mode&lt;/a&gt;: Here, choose between
++different screen resolutions while installing. If you encounter
++problems with the graphical installation, the &lt;em&gt;tekstinis režimas&lt;/em&gt; may
++be a work-around for you.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Installation Source&lt;/a&gt;: Choose the
++installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Driver Update&lt;/a&gt;: For very new machines, a
++driver update may be needed to install the system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallltmainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;Programinės įrangos tipo pasirinkimas&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++You have the choice to install the 32-bit or 64-bit version of @@@product@@@.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallltmaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;Tvarkyklės atnaujinimas&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++If you need a driver update floppy or CD-ROM, press &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. The
++boot loader asks you to insert the driver update medium after
++loading the Linux kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++A driver update is typically a floppy with new versions of hardware
++drivers or bug fixes needed during installation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallltmainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,11 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;Diegimas -- Saugūs nustatymai&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Diegimas -- Saugūs nustatymai&lt;/em&gt; if you encounter hangs
++while installing or irreproducible errors. This option disables DMA
++for IDE drives and all power management features.
++See also the kernel options for &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;,
++&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; and &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallltmainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;Firmware Test&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Starts a BIOS checker that validates the ACPI tables
++and many other parts of your BIOS.
++Test results can be stored on usb disk or saved via network.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallltmainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,16 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;Įkrauti iš kietojo disko&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Įkrauti įdiegtą OS&lt;/em&gt; to start the system installed on
++your local hard disk. This system must be installed properly, because
++only the MBR (Master Boot Record) on the first hard disk is started.
++The device ID of the first hard disk is provided by the BIOS of
++the computer.
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this if you forgot to remove the CD or DVD from your
++drive and want to start the computer from the hard disk.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallltmainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Naudojimasis pagalbos sistema&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Viršutinė rodyklė&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Apatinė rodyklė&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Kairioji rodyklė&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Dešinioji rodyklė&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Tarpas&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;End&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallltmaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;Diegimo šaltinis&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; to choose an installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++This is the same as using the &lt;a href=&quot;#o_install&quot;&gt;įdiegti&lt;/a&gt;
++boot option.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallltmainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Kalbos ir klaviatūros išdėstymo pasirinkimas&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallltmainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;Diegimas&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Diegimas&lt;/em&gt; to start the default installation. The
++&lt;a href=&quot;#opt&quot;&gt;įkrovos parametrai&lt;/a&gt; entered are used in the
++start-up. This item activates many features of commonly available
++hardware.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallltmainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;Atminties testas&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The included &lt;em&gt;Atminties testas&lt;/em&gt; provides good possibilities to
++stress test the hardware of a system. Its main purpose is to detect
++broken RAM, but it also stresses many other parts of the system.
++&lt;/p&gt;
++
++&lt;p&gt;
++There is no guarantee that the memory is good if no errors are
++found, although most of memory defects will be found.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallltmainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,24 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;Diegimas -- ACPI uždraustas&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Current hardware usually requires ACPI (Advanced Configuration and Power Interface)
++to control the interrupt handling.
++ACPI completely replaces the old APM system.
++&lt;/p&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Diegimas -- ACPI uždraustas&lt;/em&gt; if you encounter
++problems during boot of the kernel. Known problems with machines that
++have problems with ACPI are:
++&lt;ul&gt;
++ &lt;li&gt;kernel freezes when booting&lt;/li&gt;
++ &lt;li&gt;PCI Cards are not detected or initialized properly&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++You may also try the &lt;a href=&quot;#firmware&quot;&gt;Firmware Test&lt;/a&gt; boot option
++and look at the test results of the ACPI validation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallltmainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;Diegimas --Vietinis APIC uždraustas&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Normally there are no problems with the APIC (Advanced Programmable Interrupt
++Controller). But if you seem to have some, try this option to boot
++without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++Please don't confuse this with &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt;
++(Advanced Configuration and Power Interface).
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallltmainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,28 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Įkrovos parametrai&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++There are two types of boot options available. First, there are
++options that affect the installer. Second, there are kernel
++options. Some of the more common options are:
++&lt;/p&gt;
++
++&lt;p&gt;
++a) installer options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;įdiegti&lt;/a&gt; -- select an installation source&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#network&quot;&gt;tinklo parametrai&lt;/a&gt; -- the network options&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;vnc parametrai&lt;/a&gt; -- options for installation via VNC&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++b) kernel options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallltmainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;Installer Options: Network Options&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++It is possible to configure the network interface right now. The
++hardware will be detected later by YaST2. The minimum set of options
++to configure your network card consists of host IP and netmask. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++or in a shorter form:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++If you specified a &lt;a href=&quot;#o_install&quot;&gt;network-based install&lt;/a&gt; and do
++not specify both of these options, the installer tries to configure
++the network interface with &lt;em&gt;dhcp&lt;/em&gt;. If you need a default
++gateway, specify this with the option &lt;em&gt;tinklo vartai&lt;/em&gt;. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;tinklo vartai=192.168.0.8&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallltmainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Branduolio parametrai: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallltmainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Branduolio parametrai: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallltmainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Branduolio parametrai: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallltmainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,30 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;Installer Options: install&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++By default, the local CD-ROMs are searched for the installation source.
++For a network install, select the
++&lt;em&gt;įdiegti&lt;/em&gt; option. Possible installation protocols are
++&lt;ul&gt;
++ &lt;li&gt;FTP&lt;/li&gt;
++ &lt;li&gt;NFS&lt;/li&gt;
++ &lt;li&gt;HTTP&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The syntax to use is just like standard URLs. For example,
++if your server is found at 192.168.0.1 and you want to do an NFS-based
++install from the directory /install on this server, specify
++the source as follows:
++&lt;ul&gt;
++ &lt;li&gt;install=nfs://192.168.0.1/diegimas&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The network card will either be configured with &lt;em&gt;dhcp&lt;/em&gt; or you
++must specify the parameters yourself as described in the
++&lt;a href=&quot;#network&quot;&gt;tinklo parametrai&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallltmainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Branduolio parametrai: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallltmainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;Installer Options: vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++To enable the VNC installation, specify the
++parameters vnc and vncpassword:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;vnc=1 vncpassword=pavyzdys&lt;/em&gt;&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The VNC server will be started and you may control YaST2 over any VNC
++client from a remote system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallltmainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;Avarinė sistema&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The &lt;em&gt;Avarinė sistema&lt;/em&gt; is a small RAM disk base system. From there,
++it is possible to make all kinds of changes to an installed system. Because
++only low-level tools are available in this system, it is intended for
++experts.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallltmainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;Video režimo pasirinkimas&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; to get the list of video modes your graphics card
++supports. The highest mode your monitor can display is preselected.
++&lt;/p&gt;
++
++&lt;p&gt;
++It is possible that your monitor cannot be detected automatically. In that
++case, select your preferred mode manually.
++&lt;/p&gt;
++
++&lt;p&gt;
++If your system has problems with the graphics card during the
++installation, the &lt;em&gt;tekstinis režimas&lt;/em&gt; may be a usable work-around.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallltnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Grįžti į &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallmrmainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,103 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;बूट लोडर मदत&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Welcome to &lt;em&gt;@@@product@@@&lt;/em&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this menu to select the desired function. If you have
++problems navigating in this help system, press
++&lt;em&gt;@@@fkey_help@@@&lt;/em&gt; to enter the &lt;a href=&quot;#help&quot;&gt;वर्णन&lt;/a&gt; of the help
++system. The main functions in this menu are:
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#harddisk&quot;&gt;हार्ड डिस्कमधून बूट करा&lt;/a&gt;: This selection will not do
++anything to the system. It only starts a previously installed
++operating system.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#linux&quot;&gt;स्थापना&lt;/a&gt;:
++This installation mode works on most machines. If you experience a
++system freeze during boot or problems with detection of your hardware
++components, such as disk controllers or network cards, try one of the
++following installation options.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#noacpi&quot;&gt;स्थापना--एसीपीआय अक्षम&lt;/a&gt;: Many of the
++currently-sold computers have incomplete or faulty ACPI
++implementations. This selection disables ACPI support in the
++kernel, but still enables many performance features, like DMA for IDE
++hard disks.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#nolapic&quot;&gt; स्थापना—एपीआयसी अक्षम &lt;/a&gt;:
++If the normal installation fails, this might be due to the
++system hardware not supporting local APIC.
++If this seems to be the case, use this option to
++install without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#failsafe&quot;&gt; स्थापना – सुरक्षित सेटिंग्स &lt;/a&gt;: If you were not
++successful with &lt;em&gt;स्थापना&lt;/em&gt;, this selection might
++solve the issue.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#rescue&quot;&gt;बचाव प्रणाली&lt;/a&gt;: This boot image starts a small
++Linux system in RAM. This is useful if the system does not start properly.
++After booting this system, log in as root.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#firmware&quot;&gt;फर्मवेअर चाचणी&lt;/a&gt;: Runs a BIOS test tool that validates
++ACPI and other parts of your BIOS.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#memtest&quot;&gt;स्मरण चाचणी &lt;/a&gt;: Memory testing is useful for more than
++checking installation of new memory modules. It is a stress test
++for a big part of your computer system and may indicate hardware
++problems.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#opt&quot;&gt;बूट विकल्प&lt;/a&gt;: The boot options may change the
++behavior of your system completely. They are settings for
++the kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Help&lt;/a&gt;: This is context sensitive. It will
++show different screens depending on the active element of the
++boot screen. There is also a description of this help system
++available.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Set language and keyboard mapping
++used by the boot loader.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Video Mode&lt;/a&gt;: Here, choose between
++different screen resolutions while installing. If you encounter
++problems with the graphical installation, the &lt;em&gt;अक्षर स्थिती &lt;/em&gt; may
++be a work-around for you.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Installation Source&lt;/a&gt;: Choose the
++installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Driver Update&lt;/a&gt;: For very new machines, a
++driver update may be needed to install the system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallmrmainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;सोफ्टवेयर प्रकार निवड&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++You have the choice to install the 32-bit or 64-bit version of @@@product@@@.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallmrmaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;ड्रायव्हर अद्ययावत&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++If you need a driver update floppy or CD-ROM, press &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. The
++boot loader asks you to insert the driver update medium after
++loading the Linux kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++A driver update is typically a floppy with new versions of hardware
++drivers or bug fixes needed during installation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallmrmainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,11 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt; स्थापना – सुरक्षित सेटिंग्स &lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt; स्थापना – सुरक्षित सेटिंग्स &lt;/em&gt; if you encounter hangs
++while installing or irreproducible errors. This option disables DMA
++for IDE drives and all power management features.
++See also the kernel options for &lt;a href=&quot;#o_apm&quot;&gt;एपिएम&lt;/a&gt;,
++&lt;a href=&quot;#o_acpi&quot;&gt; एसिपिआई &lt;/a&gt; and &lt;a href=&quot;#o_ide&quot;&gt;आईडिई&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallmrmainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;फर्मवेअर चाचणी&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Starts a BIOS checker that validates the ACPI tables
++and many other parts of your BIOS.
++Test results can be stored on usb disk or saved via network.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallmrmainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,16 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;हार्ड डिस्कमधून बूट करा&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt; बूट स्थापना ओएस &lt;/em&gt; to start the system installed on
++your local hard disk. This system must be installed properly, because
++only the MBR (Master Boot Record) on the first hard disk is started.
++The device ID of the first hard disk is provided by the BIOS of
++the computer.
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this if you forgot to remove the CD or DVD from your
++drive and want to start the computer from the hard disk.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallmrmainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;मदत प्रणाली वापरताना&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ऊर्ध्वगामी बाण&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;अधोगामी बाण&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;डावा बाण&lt;/em&gt;, &lt;em&gt;बेकस्पेस&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;उजवा बाण&lt;/em&gt;, &lt;em&gt;एन्टर&lt;/em&gt;, &lt;em&gt;जागा&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;पान वर&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;पान खाली&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;होम&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;एन्ड&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;एस्केप&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallmrmaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt; स्थापना स्त्रोत&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; to choose an installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++This is the same as using the &lt;a href=&quot;#o_install&quot;&gt; स्थापना &lt;/a&gt;
++boot option.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallmrmainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;भाषा व किबोर्ड रचना निवड&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallmrmainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;स्थापना&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;स्थापना&lt;/em&gt; to start the default installation. The
++&lt;a href=&quot;#opt&quot;&gt;बूट विकल्प&lt;/a&gt; entered are used in the
++start-up. This item activates many features of commonly available
++hardware.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallmrmainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;स्मरण चाचणी &lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The included &lt;em&gt;स्मरण चाचणी &lt;/em&gt; provides good possibilities to
++stress test the hardware of a system. Its main purpose is to detect
++broken RAM, but it also stresses many other parts of the system.
++&lt;/p&gt;
++
++&lt;p&gt;
++There is no guarantee that the memory is good if no errors are
++found, although most of memory defects will be found.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallmrmainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,24 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;स्थापना--एसीपीआय अक्षम&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Current hardware usually requires ACPI (Advanced Configuration and Power Interface)
++to control the interrupt handling.
++ACPI completely replaces the old APM system.
++&lt;/p&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;स्थापना--एसीपीआय अक्षम&lt;/em&gt; if you encounter
++problems during boot of the kernel. Known problems with machines that
++have problems with ACPI are:
++&lt;ul&gt;
++ &lt;li&gt;kernel freezes when booting&lt;/li&gt;
++ &lt;li&gt;PCI Cards are not detected or initialized properly&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++You may also try the &lt;a href=&quot;#firmware&quot;&gt;फर्मवेअर चाचणी&lt;/a&gt; boot option
++and look at the test results of the ACPI validation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallmrmainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt; स्थापना—एपीआयसी अक्षम &lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Normally there are no problems with the APIC (Advanced Programmable Interrupt
++Controller). But if you seem to have some, try this option to boot
++without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++Please don't confuse this with &lt;a href=&quot;#noacpi&quot;&gt;एसिपिआई&lt;/a&gt;
++(Advanced Configuration and Power Interface).
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallmrmainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,28 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;बूट विकल्प&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++There are two types of boot options available. First, there are
++options that affect the installer. Second, there are kernel
++options. Some of the more common options are:
++&lt;/p&gt;
++
++&lt;p&gt;
++a) installer options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt; स्थापना &lt;/a&gt; -- select an installation source&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#network&quot;&gt;नेटवर्क विकल्प &lt;/a&gt; -- the network options&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt; विएनसि विकल्प &lt;/a&gt; -- options for installation via VNC&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++b) kernel options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;स्प्लेश&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;एपिएम&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt; एसिपिआई &lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;आईडिई&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallmrmainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt; स्थापनेचे विकल्प : नेटवर्क विकल्प &lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++It is possible to configure the network interface right now. The
++hardware will be detected later by YaST2. The minimum set of options
++to configure your network card consists of host IP and netmask. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;होस्टाआइपि=१९२.१६८.०.१० नेट्मास्क्= २५५.२५५.२५५.०&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++or in a shorter form:
++&lt;ul&gt;
++ &lt;li&gt; होस्टाआइपि=१९२.१६८.०.१० &lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++If you specified a &lt;a href=&quot;#o_install&quot;&gt; नेटवर्क बेस्ड स्थापना &lt;/a&gt; and do
++not specify both of these options, the installer tries to configure
++the network interface with &lt;em&gt;डिएचसिपि&lt;/em&gt;. If you need a default
++gateway, specify this with the option &lt;em&gt;गेटवे&lt;/em&gt;. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;गेटवे= १९२.१६८.०.१० &lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallmrmainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;केर्नल विकल्प = एसिपिआइ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt; एसिपिआई &lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;पिसिआइ=नो एसिपिआइ &lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt; एसिपिआइ = ओल्ड बूट&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt; एसिपिआइ = ओफ&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt; एसिपिआइ =फोर्स&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;एपिएम&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallmrmainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt; केर्नल विकल्प: एपिएम&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt; एपिएम = ओफ&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;एसिपिआई&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallmrmainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt; केर्नल विकल्प = आइडिई &lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt; आइडिई नोडिएमए&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallmrmainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,30 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;स्थापनेचे विकल्प: स्थापना &lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++By default, the local CD-ROMs are searched for the installation source.
++For a network install, select the
++&lt;em&gt; स्थापना &lt;/em&gt; option. Possible installation protocols are
++&lt;ul&gt;
++ &lt;li&gt;FTP&lt;/li&gt;
++ &lt;li&gt;NFS&lt;/li&gt;
++ &lt;li&gt;HTTP&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The syntax to use is just like standard URLs. For example,
++if your server is found at 192.168.0.1 and you want to do an NFS-based
++install from the directory /install on this server, specify
++the source as follows:
++&lt;ul&gt;
++ &lt;li&gt; स्थापना =एनएफएस://१९२.१६८.०.१/ स्थापना &lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The network card will either be configured with &lt;em&gt;डिएचसिपि&lt;/em&gt; or you
++must specify the parameters yourself as described in the
++&lt;a href=&quot;#network&quot;&gt;नेटवर्क विकल्प &lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallmrmainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;केर्नल विकल्प: स्प्लेश &lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;स्प्लेश=०&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;स्प्लेश = वर्बोस&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt; स्प्लेश= शांत&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallmrmainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt; स्थापनेचे विकल्प : विएनसि&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++To enable the VNC installation, specify the
++parameters vnc and vncpassword:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt; विएनसि=१ विएनसि पासवर्ड=उदाहरण&lt;/em&gt;&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The VNC server will be started and you may control YaST2 over any VNC
++client from a remote system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallmrmainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;बचाव प्रणाली&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The &lt;em&gt;बचाव प्रणाली&lt;/em&gt; is a small RAM disk base system. From there,
++it is possible to make all kinds of changes to an installed system. Because
++only low-level tools are available in this system, it is intended for
++experts.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallmrmainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt; व्हिडिओ स्थिती निवड&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; to get the list of video modes your graphics card
++supports. The highest mode your monitor can display is preselected.
++&lt;/p&gt;
++
++&lt;p&gt;
++It is possible that your monitor cannot be detected automatically. In that
++case, select your preferred mode manually.
++&lt;/p&gt;
++
++&lt;p&gt;
++If your system has problems with the graphics card during the
++installation, the &lt;em&gt;अक्षर स्थिती &lt;/em&gt; may be a usable work-around.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallmrnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;परत जा&lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnbmainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;Hjelp for oppstartslaster&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Velkommen til &lt;em&gt;@@@product@@@&lt;/em&gt;&lt;/p&gt;
++
++&lt;p&gt;Bruk denne menyen for å velge ønsket funksjon. Hvis du har problemer med å finne frem i hjelpesystemet, trykk &lt;em&gt;@@@fkey_help@@@&lt;/em&gt; for å vise &lt;a href=&quot;#help&quot;&gt;beskrivelse&lt;/a&gt; for hjelpesystemet. Hovedfunksjonene i denne menyen er:&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#harddisk&quot;&gt;Start fra harddisk&lt;/a&gt;: Dette valget gjør ingenting med systemet. Det starter bare et tidligere installert operativsystem.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#linux&quot;&gt;Installasjon&lt;/a&gt;: Denne installasjonsmodusen fungerer for de fleste datamaskiner. Hvis systemet fryser under oppstart eller hvis det oppstår problemer med registrering av maskinvarekomponenter, f.eks. diskkontrollere eller nettverkskort, kan du forsøke ett av følgende installasjonsvalg.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#noacpi&quot;&gt;Installasjon--ACPI deaktivert&lt;/a&gt;: Mange datamaskiner har ufullstendige eller defekte ACPI-funksjoner. Dette valget deaktiverer ACPI-støtte i kjernen, men mange andre ytelsesfunksjoner vil fremdeles være aktivert, som DMA for IDE-harddisker.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#nolapic&quot;&gt;Installasjon--Lokal APIC deaktivert&lt;/a&gt;: Hvis den vanlige installasjonen mislykkes, kan det skyldes at maskinvaren ikke støtter lokal APIC. Hvis dette ser ut til å være tilfellet, bruker du dette alternativet til å installere uten lokal APIC-støtte.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#failsafe&quot;&gt;Installasjon--sikker modus&lt;/a&gt;: Hvis &lt;em&gt;Installasjon&lt;/em&gt; mislyktes, kan dette valget løse problemet.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#rescue&quot;&gt;Redningssystem&lt;/a&gt;: Dette oppstartsdiskbildet starter et lite Linux-system fra minnet. Dette er nyttig hvis systemet ikke starter som det skal. Logg inn som rot etter at systemet har startet opp.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#firmware&quot;&gt;Fastvarekontroll&lt;/a&gt;: Kjører et BIOS-testverktøy som kontrollerer APCI og andre deler av BIOS.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#memtest&quot;&gt;Minnekontroll&lt;/a&gt;: Kontroll av minnet er nyttig i flere situasjoner enn testing av nye minnebrikker. Kontrollen er en belastningstest for store deler av systemet, og kan påvise forskjellige maskinvarefeil.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#opt&quot;&gt;Oppstartsalternativer&lt;/a&gt;: Oppstartsvalgene kan endre systemets funksjon helt. Det er innstillinger som påvirker kjernen.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Hjelp&lt;/a&gt;: Hjelpen er kontekstsensitiv. Ulike skjermbilder vil vises, avhengig av det aktive elementet på oppstartsskjermen. Det finnes også en beskrivelse av dette Hjelp-systemet.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Angi språk og tastaturoppsett for oppstartslasteren.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Skjermmodus&lt;/a&gt;: Her kan du velge mellom ulike skjermoppløsninger for installasjonen. Hvis det oppstår problemer med den grafiske installasjonen, kan &lt;em&gt;tekstmodus&lt;/em&gt; være en løsning.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Installasjonskilde&lt;/a&gt;: Velg installasjonskilden.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Driveroppdatering&lt;/a&gt;: På helt nye maskiner kan det hende at du trenger en driveroppdatering for å installere systemet.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnbmainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;Valg av programvaretype&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Du kan velge å installere en 32-bit- eller 64-bit-versjon av @@@product@@@.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnbmaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;Driveroppdatering&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Trykk &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt; hvis du trenger en diskett eller en CD-ROM med en driveroppdatering. Oppstartslasteren vil be deg om å sette inn mediet med driveroppdateringen etter at Linux-kjernen er lastet.&lt;/p&gt;
++
++&lt;p&gt;En driveroppdatering er vanligvis en diskett med nye versjoner av maskinvaredrivere eller oppdateringer som kreves for installasjonen.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnbmainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;Installasjon--sikker modus&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Velg&lt;em&gt;Installasjon--sikker modus&lt;/em&gt; hvis systemet henger under installasjonen eller ved uforklarlige feil. Dette valget deaktiverer DMA for IDE-disker og alle strømstyringsfunksjoner. Se også kjernevalgene for &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;, &lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; og &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnbmainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;Fastvarekontroll&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Starter en BIOS-testverktøy som bekrefter gyldigheten av ACPI-tabellene og mange andre deler av BIOS. Resultatene kan lagres på en USB-enhet eller via på nettverket.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnbmainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;Start fra harddisk&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Velg&lt;em&gt;Start installert OS&lt;/em&gt; for å starte systemet som er installert på den lokale harddisken. Dette systemet må være riktig installert fordi bare MBR (Master Boot Record) på første harddisk vil bli startet. Enhets-ID-en for første harddisk hentes fra datamaskinens BIOS.&lt;/p&gt;
++
++&lt;p&gt;Bruk dette valget hvis du glemte å fjerne CD-en eller DVD-en fra stasjonen og vil starte datamaskinen fra harddisken.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnbmainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Bruke Hjelp-systemet&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Den elektroniske hjelpen for oppstartslasteren er kontekstsensitiv. Den gir informasjon om det valgte menyelementet eller forsøker å finne informasjon om valget som markøren er plassert på, når du redigerer oppstartsvalg.&lt;/p&gt;
++
++&lt;p&gt;Navigasjonstaster &lt;ul&gt;&lt;li&gt;&lt;em&gt;Pil opp&lt;/em&gt;: aktiver forrige lenke&lt;/li&gt;&lt;li&gt;&lt;em&gt;Pil ned&lt;/em&gt;: aktiver neste lenke&lt;/li&gt;&lt;li&gt;&lt;em&gt;Pil venstre&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: tilbake til forrige emne&lt;/li&gt;&lt;li&gt;&lt;em&gt;Pil høyre&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Mellomrom&lt;/em&gt;: følg lenken&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: bla én side oppover&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: bla én side nedover&lt;/li&gt;&lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: til begynnelsen av siden&lt;/li&gt;&lt;li&gt;&lt;em&gt;End&lt;/em&gt;: til slutten av siden&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: avslutt hjelpen&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnbmaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;Installasjonskilde&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Trykk &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; for å velge en installasjonskilde.&lt;/p&gt;
++
++&lt;p&gt;Dette er det samme som å bruke oppstartsvalget &lt;a href=&quot;#o_install&quot;&gt;installer&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnbmainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Valg av språk og tastaturoppsett&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Trykk på &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; for å endre språket og tastaturoppsettet for oppstartslasteren.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnbmainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;Installasjon&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Velg&lt;em&gt;Installasjon&lt;/em&gt; for å starte en standardinstallasjon. Angitt &lt;a href=&quot;#opt&quot;&gt;oppstartsalternativer&lt;/a&gt; benyttes ved oppstart. Dette elementet aktiverer mange funksjoner i vanlig tilgjengelig maskinvare.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnbmainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;Minnekontroll&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;Minnekontroll&lt;/em&gt; gir gode muligheter til å kontrollere maskinvaren på systemet. Hovedformålet er å oppdage dårlige minnebrikker, men andre deler av systemet blir også kontrollert.&lt;/p&gt;
++
++&lt;p&gt;Det er ikke helt sikkert at minnet er feilfritt dersom ingen feil blir funnet, selv om de fleste minnefeil vil bli funnet.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnbmainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;Installasjon--ACPI deaktivert&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Nye datamaskiner krever iblant ACPI (Advanced Configuration and Power Interface) for å styre avbruddshandlingen. ACPI erstatter det tidligere APM-systemet.&lt;/p&gt;
++
++&lt;p&gt;Velg &lt;em&gt;Installasjon--ACPI deaktivert&lt;/em&gt; hvis det oppstår problemer under oppstart av kjernen. Vanlige problemer på maskiner med ACPI-feil er: &lt;ul&gt;&lt;li&gt;kjernen fryser under oppstart&lt;/li&gt;&lt;li&gt;PCI-kort er ikke registrert eller riktig initialisert&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Du kan også forsøke oppstartsvalget &lt;a href=&quot;#firmware&quot;&gt;Fastvarekontroll&lt;/a&gt; og kontrollere testresultatene etter ACPI-kontrollen.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnbmainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;Installasjon--Lokal APIC deaktivert&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Vanligvis er det ingen problemer med APIC (Advanced Programmable Interrupt Controller). Hvis du likevel skulle støte på noen, forsøk dette valget for å starte uten lokal APIC-støtte.&lt;/p&gt;
++
++&lt;p&gt;Ikke bland dette sammen med &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt; (advanced configuration and power interface).&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnbmainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Oppstartsalternativer&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Det er to tilgjengelige typer oppstartsvalg, valg for installasjonsprogrammet og valg for kjernen. Noen av de vanligste valgene er:&lt;/p&gt;
++
++&lt;p&gt;a) valg for installasjonsprogrammet &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;installer&lt;/a&gt; -- velg en installasjonskilde&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#network&quot;&gt;nettverksvalg&lt;/a&gt; -- nettverksvalg&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;vnc-valg&lt;/a&gt; -- valg for installasjon via VNC&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;b) valg for kjernen &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;skjerm&lt;/a&gt; -- påvirker oppstartsbildet&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- slå strømstyring av og på&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- avansert oppsett og strømstyringsvalg&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- kontroller IDE-systemet&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnbmainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,13 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;Installasjonsvalg: nettverksvalg&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Du kan sette opp nettverksgrensesnittet allerede nå. Maskinvaren vil ble registrert senere av YaST2. Du må minst angi IP-adressen og nettverksmasken for å konfigurere et nettverkskort. For eksempel:&lt;ul&gt;&lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;eller i et kortere format: &lt;ul&gt;&lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Hvis du spesifiserte en &lt;a href=&quot;#o_install&quot;&gt;nettverksbasert installasjon&lt;/a&gt; uten å definere disse to valgene, vil installasjonsprogrammet forsøke å konfigurere nettverksgrensesnittet med &lt;em&gt;dhcp&lt;/em&gt;. Hvis du trenger en standard systemport, angir du dette med valget &lt;em&gt;systemport&lt;/em&gt;. For eksempel: &lt;ul&gt;&lt;li&gt;gateway=192.168.0.8&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnbmainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Kjernevalg: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI (Advanced Configuration and Power Interface) er en standard som definerer kommunikasjonen med hensyn til strømstyring og konfigurasjon mellom et operativsystem og BIOS. Som standard aktiveres &lt;em&gt;acpi&lt;/em&gt; dersom BIOS er nyere enn fra år 2000. Det finnes flere vanlige parametere som som styrer ACPI-funksjonen:&lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- ikke bruk ACPI for å rute PCI-avbrudd&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- bare de delene av ACPI som er relevant for oppstart, skal være aktivert&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- deaktiver ACPI helt&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- aktiver ACPI selv om BIOS er eldre enn fra 2000&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Spesielt på nye datamaskiner, erstatter dette det tidligere &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;-systemet.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnbmainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Kjernevalg: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM er én av to strømstyringsstrategier som brukes på moderne datamaskiner. APM brukes hovedsakelig på bærbare maskiner for funksjoner som diskdvale, men kan også slå av maskinen når strømmen brytes. APM krever at BIOS fungerer riktig. Hvis BIOS er skadet, har APM begrenset nytte, og kan til og med føre til at datamaskinen ikke fungerer. Derfor kan APM deaktiveres med parameteren &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- deaktiver APM helt&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;For enkelte helt nye datamaskiner kan det være en fordel å bruke den nyere &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnbmainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Kjernevalg: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;IDE benyttes, i motsetning til SCSI, for de fleste skrivebordsmaskiner. For å unngå enkelte maskinvareproblemer som forekommer med IDE-systemer, bruk kjerneparameteren: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- deaktiver DMA for IDE-disker&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnbmainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;Installasjonsvalg: installer&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Som standard søker installasjonsprogrammet etter en kilde på lokale CD-ROM-stasjoner. For en nettverksinstallasjon, velg &lt;em&gt;installer&lt;/em&gt;. Mulige installasjonsprotokoller er &lt;ul&gt;&lt;li&gt;FTP&lt;/li&gt;&lt;li&gt;NFS&lt;/li&gt;&lt;li&gt;HTTP&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Syntaksen er den samme som i vanlige nettadresser. Hvis for eksempel serveren befinner seg på 192.168.0.1 og du vil utføre en NFS-basert installasjon fra katalogen /install på denne serveren, angir du følgende kilde: &lt;ul&gt;&lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Nettverkskortet vil enten bli konfigurert med &lt;em&gt;dhcp&lt;/em&gt;, eller du må definere parametrene selv, som beskrevet i &lt;a href=&quot;#network&quot;&gt;nettverksvalg&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnbmainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Kjernevalg: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Oppstartsskjermen er bildet som vises når systemet starter opp. &lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- Oppstartsbildet slås av. Dette kan være nyttig for svært gamle skjermer, eller hvis det oppstår feil.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Aktiverer et oppstartsbilde, men kjerne- og oppstartsmeldinger vises likevel.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Aktiverer et oppstartsbilde, men ingen meldinger. En forløpsindikator vises i stedet.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnbmainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;Installasjonsvalg: vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;For å aktivere VNC-installasjon, definer parametrene vnc og vncpassword: &lt;ul&gt;&lt;li&gt;&lt;em&gt;vnc=1 vncpassword=eksempel&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;VNC-serveren vil bli startet, og du kan styre YaST2 via en VNC-klient fra et eksternt system.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnbmainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;Redningssystem&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;Redningssystem&lt;/em&gt; er et lite grunnsystem som kjøres direkte fra minnet. Fra dette er det mulig å utføre alle slags endringer på et installert system. Dette systemet inneholder bare grunnleggende verktøy, og er beregnet på avanserte brukere.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnbmainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;Valg av skjermmodus&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Trykk &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; for å få opp en liste over skjermmoduser som støttes av grafikkortet. Den høyeste modusen som støttes av skjermen, er forhåndsvalgt.&lt;/p&gt;
++
++&lt;p&gt;Det kan hende at skjermen ikke oppdages automatisk. Velg i så fall ønsket modus manuelt.&lt;/p&gt;
++
++&lt;p&gt;Hvis systemet har problemer med grafikkortet under installasjonen, kan det hende at &lt;em&gt;tekstmodus&lt;/em&gt; bruker en reserveløsning.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnbnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Tilbake til &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnlmainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;Bootloader-help&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Welkom bij &lt;em&gt;@@@product@@@&lt;/em&gt;&lt;/p&gt;
++
++&lt;p&gt;Gebruik dit menu om de gewenste functie te selecteren. Als u problemen ondervindt bij het navigeren door dit helpsysteem, druk dan op &lt;em&gt;@@@fkey_help@@@&lt;/em&gt; om &lt;a href=&quot;#help&quot;&gt;beschrijving&lt;/a&gt; van het helpsysteem binnen te gaan. De hoofdfuncties van dit menu zijn:&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#harddisk&quot;&gt;Van harde schijf opstarten&lt;/a&gt;: Deze selectie zal geen wijzigingen aan het systeem aanbrengen. Het start enkel een eerder geïnstalleerd besturingssysteem op.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#linux&quot;&gt;Installatie&lt;/a&gt; Deze installatiemodus werkt op de meeste computers. Als uw systeem bevriest tijdens het opstarten of problemen ondervindt bij het detecteren van uw hardwarecomponenten, zoals schijfcontrollers of netwerkkaarten, probeer dan een van de volgende installatieopties.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#noacpi&quot;&gt;Installatie - ACPI uitgeschakeld&lt;/a&gt;: Veel van de computers die momenteel worden verkocht hebben een incomplete of verkeerde ACPI-implementatie. Deze selectie schakelt ACPI-ondersteuning in de kernel uit, maar laat veel prestatiefuncties, zoals DMA voor IDE-stations, geactiveerd.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#nolapic&quot;&gt;Installatie -- Local APIC uitgeschakeld&lt;/a&gt;: Als de normale installatie mislukt, dan kan dit worden veroorzaakt doordat uw hardware geen local APIC ondersteunt. Als dit het geval blijkt, gebruik dan deze optie om zonder ondersteuning voor APIC te installeren.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#failsafe&quot;&gt;Installatie - Veilige instellingen&lt;/a&gt;: Als u niet succesvol was met &lt;em&gt;Installatie&lt;/em&gt;, dan kan deze selectie het probleem mogelijk oplossen.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#rescue&quot;&gt;Reddingssysteem&lt;/a&gt;: Deze bootimage start een klein Linux-systeem in uw RAM-geheugen. U kunt het gebruiken als uw systeem niet goed opstart. Na het starten van dit systeem dient u als root in te loggen.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#firmware&quot;&gt;Firmware-test&lt;/a&gt;: Voert een BIOS-test uit die ACPI en andere delen van uw BIOS valideert.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#memtest&quot;&gt;Geheugentest&lt;/a&gt;:Geheugen testen kunt u voor meer gebruiken dan alleen het installeren van nieuwe geheugenmodules controleren. Het doet een stesstest van een groot deel van uw computersysteem en kan hardwareproblemen ontdekken.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#opt&quot;&gt;Opstartopties&lt;/a&gt;: De opstartopties kunnen het gedrag van uw systeem compleet veranderen. Het zijn instellingen voor de kernel.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Help&lt;/a&gt;:Dit is contextgevoelig. Het zal verschillende schermen tonen afhankelijk van het actieve element in het opstartscherm. Er is ook een beschrijving van dit helpsysteem beschikbaar.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;Stel de taal en toetsenbordindeling in om te gebruiken in de bootloader.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Video Mode&lt;/a&gt;: Hier kunt u tijdens de installatie kiezen uit verschillende schermresoluties. Als u problemen ondervindt met het grafische installatieprogramma, dan kan &lt;em&gt;tekstmodus&lt;/em&gt; misschien beter voor u werken.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Installatiebron&lt;/a&gt;: Kies de installatiebron.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Opwaardering voor apparaatstuurprogramma&lt;/a&gt;: Voor zeer nieuwe computers kan een stuurprogramma-opwaardering nodig zijn om het systeem te installeren.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnlmainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;Softwaretype selecteren&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;U kunt kiezen uit het installeren van een 32-bits of 64-bits versie van @@@product@@@.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnlmaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;Stuurprogramma-opwaardering&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Als u een diskette of cd-rom met bijgewerkte stuurprogramma's nodig heeft, druk op &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. De bootloader zal u vragen om het medium te plaatsen nadat de Linux-kernel is geladen.&lt;/p&gt;
++
++&lt;p&gt;Een stuurprogramma-opwaardering is meestal een diskette met nieuwe versies van stuurprogramma's of bugreparaties die nodig zijn gedurende de installatie.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnlmainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;Installatie - Veilige instellingen&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Selecteer &lt;em&gt;Installatie - Veilige instellingen&lt;/em&gt; als het systeem blijft hangen tijdens de installatie of niet-reproduceerbare fouten geeft. Deze optie schakelt DMA voor IDE-stations uit en alle energiebeheerfuncties. Zie ook de kernelopties voor &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;, &lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; en &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnlmainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;Firmware-test&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Start een BIOS-controleprogramma dat de ACPI-tabellen en vele andere delen van uw BIOS valideert. Testresultaten kunnen worden opgeslagen op een USB-schijf of over een netwerk.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnlmainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;Van harde schijf opstarten&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Selecteer &lt;em&gt;Geïnstalleerd systeem starten&lt;/em&gt; om een systeem dat op uw lokale harde schijf is geïnstalleerd te starten. Dit systeem moet goed zijn geïnstalleerd, omdat alleen de MBR op de eerste harde schijf wordt gestart. De stations-ID van de eerste harde schijf wordt geleverd door de BIOS van de computer.&lt;/p&gt;
++
++&lt;p&gt;Gebruik dit als u vergeten bent de cd en dvd uit uw station te verwijderen en de computer vanaf de harde schijf wilt opstarten.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnlmainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Het helpsysteem gebruiken&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;De online-help van de bootloader is contextgevoelig. Het geeft u informatie over de geselecteerde menu-optie of, als u opstart-opties aan het bewerken bent, probeert informatie over de optie die zich onder de cursor bevindt op te zoeken.&lt;/p&gt;
++
++&lt;p&gt;Navigatietoetsen &lt;ul&gt;&lt;li&gt;&lt;em&gt;Pijl omhoog&lt;/em&gt;: vorige koppeling accentueren&lt;/li&gt;&lt;li&gt;&lt;em&gt;Pijl omlaag&lt;/em&gt;: volgende koppeling accentueren&lt;/li&gt;&lt;li&gt;&lt;em&gt;Pijl links&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: ga terug naar het vorige onderwerp&lt;/li&gt;&lt;li&gt;&lt;em&gt;Pijl rechts&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Spatie&lt;/em&gt;: volg de koppeling&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: ga een pagina omhoog&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: ga een pagina omlaag&lt;/li&gt;&lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: ga naar pagina-begin&lt;/li&gt;&lt;li&gt;&lt;em&gt;Eind&lt;/em&gt;: ga naar pagina-einde&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: verlaat de helpfunctie&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnlmaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;Installatiebron&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Druk op &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; om een installatiebron te selecteren.&lt;/p&gt;
++
++&lt;p&gt;Dit is hetzelfde als de opstartoptie &lt;a href=&quot;#o_install&quot;&gt;installeren&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnlmainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Taal en toetsenbordindeling selecteren&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Druk op &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; om de taal en toetsenbordindeling van de bootloader te wijzigen.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnlmainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;Installatie&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Selecteer &lt;em&gt;Installatie&lt;/em&gt; om de standaard installatie te starten. De ingevoerde &lt;a href=&quot;#opt&quot;&gt;opstartopties&lt;/a&gt; worden gebruikt tijdens het opstarten. Dit item activeert veel functies van algemeen beschikbare hardware.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnlmainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;Geheugentest&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;De ingesloten &lt;em&gt;Geheugentest&lt;/em&gt; levert goede mogelijkheden tot een stress-test van de hardware van een systeem. Het hoofddoel is om kapot RAM-geheugen te ontdekken, maar het test ook vele andere onderdelen van het systeem.&lt;/p&gt;
++
++&lt;p&gt;Er is geen garantie dat het geheugen goed is als er geen fouten zijn gevonden alhoewel de meeste fouten in het geheugen zullen worden gevonden.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnlmainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;Installatie - ACPI uitgeschakeld&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Hedendaagse hardware vereist gebruikelijk ACPI (Advanced Configuration and Power Interface) voor het aansturen van de interrupt handling. ACPI vervangt het oude APM-systeem volledig.&lt;/p&gt;
++
++&lt;p&gt;Selecteer &lt;em&gt;Installatie - ACPI uitgeschakeld&lt;/em&gt; als u problemen tegenkomt tijdens het opstarten van de kernel. Bekende problemen met computers die problemen met ACPI hebben zijn: &lt;ul&gt;&lt;li&gt;kernel bevriest tijdens het opstarten&lt;/li&gt;&lt;li&gt;PCI-kaarten zijn niet goed gedetecteerd of geïnitialiseerd&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;U kunt ook de opstartoptie &lt;a href=&quot;#firmware&quot;&gt;Firmware-test&lt;/a&gt; proberen en de testresultaten van de ACPI-validatie bekijken.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnlmainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;Installatie -- Local APIC uitgeschakeld&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Normaliter zijn er geen problemen met APIC (Advanced Programmable Interrupt Controller). Maar als u toch problemen tegenkomt, dan kunt u deze opstartoptie proberen om zonder APIC-ondersteuning op te starten.&lt;/p&gt;
++
++&lt;p&gt;Verwar dit niet met &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt; (Advanced Configuration and Power Interface).&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnlmainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Opstartopties&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Er zijn twee soorten opstartopties beschikbaar. De eersten zijn opties die het installatieprogramma beïnvloeden. De tweede zijn de kernelopties. Sommige meer algemene opties zijn:&lt;/p&gt;
++
++&lt;p&gt;a) installatieopties &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;installeren&lt;/a&gt; -- installatiebron selecteren&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#network&quot;&gt;netwerkopties&lt;/a&gt; -- de netwerkopties&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;vnc-opties&lt;/a&gt; -- opties voor installatie via VNC&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;b) kernelopties &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;opstartscherm&lt;/a&gt; -- beïnvloedt het gedrag van het opstartscherm&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- schakel energiebeheer om&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- geavanceerde configuratie en energie-interface&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- het IDE-subsysteem aansturen&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnlmainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,13 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;Installatieopties: netwerkopties&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Het is mogelijk om nu het netwerkinterface in te stellen. De hardware zal later door YaST2 worden gedetecteerd. De minimale set opties om uw netwerkkaart mee in te stellen bestaat uit een host-IP en netwerkmasker. Bijvoorbeeld: &lt;ul&gt;&lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;of in een kortere vorm: &lt;ul&gt;&lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Als u een &lt;a href=&quot;#o_install&quot;&gt;netwerkinstallatie&lt;/a&gt; hebt gespecificeerd maar niet deze beide opties, dan zal het installatieprogramma proberen de netwerkinterface in te stellen met &lt;em&gt;dhcp&lt;/em&gt;. Als u een standaardgateway nodig hebt, geef die dan op met de optie &lt;em&gt;gateway&lt;/em&gt;. Bijvoorbeeld: &lt;ul&gt;&lt;li&gt;gateway=192.168.0.8&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnlmainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Kernelopties: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI (Advanced Configuration and Power Interface) is een standaard die interfaces voor energie- en configuratiebeheer tussen een besturingssysteem en de BIOS definieert. Standaard wordt &lt;em&gt;acpi&lt;/em&gt;ingeschakeld als een BIOS is gevonden die nieuwer is dan uit het jaar 2000. Er zijn diverse veelgebruikte parameters die het gedrag van ACPI bepalen: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- gebruik geen ACPI voor het routeren van PCI-interrupts&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- alleen de delen van ACPI die relevant zijn voor het opstarten blijven geactiveerd&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- schakel ACPI volledig uit&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; - schakel ACPI in, ook als uw BIOS van voor het jaar 2000 dateert&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Vooral bij nieuwe computers, het vervangt het oude &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;-systeem.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnlmainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Kernelopties: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM is een van de twee energiebeheerstrategieën die gebruikt wordt op de huidige computers. Het wordt voornamelijk gebruikt bij laptops voor functies zoals slaapstand naar schijf, maar het kan ook verantwoordelijk zijn voor het uitschakelen van de computer nadat u deze heeft afgesloten. APM is afhankelijk van een correct werkend BIOS. Als een BIOS niet correct werkt, dan kan APM slechts gedeeltelijk werken of zelfs het functioneren van de computer belemmeren. Daarom kunt u het uitschakelen met deze parameter &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- schakel APM volledig uit&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Sommige zeer nieuwe computers hebben meer voordeel bij de nieuwere &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnlmainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Kernelopties: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;IDE wordt, in tegenstelling tot SCSI, algemeen gebruikt op de meeste desktopwerkstations. Om hardwareproblemen die bij IDE-systemen kunnen voorkomen te omzeilen gebruikt u de parameter: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- DMA voor IDE-stations uitschakelen&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnlmainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;Installatieopties: installeren&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Standaard worden de lokale CD-ROM's doorzocht op de installatiebron. Voor een netwerkinstallatie selecteert u de optie &lt;em&gt;installeren&lt;/em&gt;. Mogelijke installatieprotocollen zijn &lt;ul&gt;&lt;li&gt;FTP&lt;/li&gt;&lt;li&gt;NFS&lt;/li&gt;&lt;li&gt;HTTP&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;De syntaxis die u moet gebruiken is hetzelfde als bij standaard URL-adressen. Bijvoorbeeld, als uw server gevonden is op 192.168.0.1 en u wilt een NFS-gebaseerde installatie doen vanuit de map /install op deze server, geef dan de bron als volgt op: &lt;ul&gt;&lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;De netwerkkaart zal worden ingesteld met &lt;em&gt;dhcp&lt;/em&gt;, of u kunt zelf de parameters opgeven zoals beschreven in &lt;a href=&quot;#network&quot;&gt;netwerkopties&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnlmainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Kernelopties: opstartscherm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Het opstartscherm is de afbeelding die getoond wordt tijdens de systeemstart. Deze wordt ook wel 'splash' genoemd. &lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- Het opstartscherm (splash) is uitgeschakeld. Deze optie is bedoeld voor zeer oude beeldschermen of als er zich een fout voordoet.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activeert het opstartscherm (splash), maar kernel- en opstartmeldingen worden nog steeds getoond.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activeert het opstartscherm (splash) zonder verdere meldingen. In plaats daarvan wordt een voortgangsbalk getoond.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnlmainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;Installatieopties: vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Om de VNC-installatie te activeren geeft u de parameters vnc en vncpassword op: &lt;ul&gt;&lt;li&gt;&lt;em&gt;vnc=1 vncpassword=voorbeeld&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;De VNC-server zal worden gestart en u kunt YaST-2 aansturen met een VNC-cliënt op een systeem op afstand.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnlmainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;Reddingssysteem&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;De &lt;em&gt;Reddingssysteem&lt;/em&gt; is een klein op RAM-disk gebaseerd systeem. U kunt er allerhande wijzigingen aan een geïnstalleerd systeem mee aanbrengen. Omdat alleen elementaire programma's beschikbaar zijn is het bedoeld voor experts.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnlmainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;Videomodus selecteren&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Druk op &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; om een lijst met videomodi die uw grafische kaart ondersteunt. De hoogste modus die uw monitor kan weergeven is voorgeselecteerd.&lt;/p&gt;
++
++&lt;p&gt;Het is mogelijk dat uw monitor niet automatisch kan worden gedetecteerd. In dat geval kun u hier de juiste modus handmatig selecteren.&lt;/p&gt;
++
++&lt;p&gt;Als u tijdens de installatie problemen ondervindt met de grafische kaart, dan kan &lt;em&gt;tekstmodus&lt;/em&gt; een bruikbare omweg leveren.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnlnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Terug naar &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpamainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,103 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;ਬੂਟ ਲੋਡਰ ਮੱਦਦ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Welcome to &lt;em&gt;@@@product@@@&lt;/em&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this menu to select the desired function. If you have
++problems navigating in this help system, press
++&lt;em&gt;@@@fkey_help@@@&lt;/em&gt; to enter the &lt;a href=&quot;#help&quot;&gt;ਵੇਰਵਾ&lt;/a&gt; of the help
++system. The main functions in this menu are:
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#harddisk&quot;&gt;ਹਾਰਡ ਡਿਸਕ ਤੋਂ ਬੂਟ&lt;/a&gt;: This selection will not do
++anything to the system. It only starts a previously installed
++operating system.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#linux&quot;&gt;ਇੰਸਟਾਲੇਸ਼ਨ&lt;/a&gt;:
++This installation mode works on most machines. If you experience a
++system freeze during boot or problems with detection of your hardware
++components, such as disk controllers or network cards, try one of the
++following installation options.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#noacpi&quot;&gt;ਇੰਸਟਾਲੇਸ਼ਨ -- ACPI ਆਯੋਗ&lt;/a&gt;: Many of the
++currently-sold computers have incomplete or faulty ACPI
++implementations. This selection disables ACPI support in the
++kernel, but still enables many performance features, like DMA for IDE
++hard disks.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#nolapic&quot;&gt;ਇੰਸਟਾਲੇਸ਼ਨ -- ਲੋਕਲ APIC ਆਯੋਗ&lt;/a&gt;:
++If the normal installation fails, this might be due to the
++system hardware not supporting local APIC.
++If this seems to be the case, use this option to
++install without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#failsafe&quot;&gt;ਇੰਸਟਾਲੇਸ਼ਨ -- ਸੁਰੱਖਿਅਤ ਸੈਟਿੰਗ&lt;/a&gt;: If you were not
++successful with &lt;em&gt;ਇੰਸਟਾਲੇਸ਼ਨ&lt;/em&gt;, this selection might
++solve the issue.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#rescue&quot;&gt;ਰਿਸਕਿਊ ਸਿਸਟਮ&lt;/a&gt;: This boot image starts a small
++Linux system in RAM. This is useful if the system does not start properly.
++After booting this system, log in as root.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#firmware&quot;&gt;ਫਾਇਰਮਵੇਅਰ ਟੈਸਟ&lt;/a&gt;: Runs a BIOS test tool that validates
++ACPI and other parts of your BIOS.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#memtest&quot;&gt;ਮੈਮੋਰੀ ਟੈਸਟ&lt;/a&gt;: Memory testing is useful for more than
++checking installation of new memory modules. It is a stress test
++for a big part of your computer system and may indicate hardware
++problems.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#opt&quot;&gt;ਬੂਟ ਚੋਣ&lt;/a&gt;: The boot options may change the
++behavior of your system completely. They are settings for
++the kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#help&quot;&gt; ਮੱਦਦ&lt;/a&gt;: This is context sensitive. It will
++show different screens depending on the active element of the
++boot screen. There is also a description of this help system
++available.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Set language and keyboard mapping
++used by the boot loader.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#videomode&quot;&gt; ਵੀਡਿਓ ਮੋਡ&lt;/a&gt;: Here, choose between
++different screen resolutions while installing. If you encounter
++problems with the graphical installation, the &lt;em&gt;ਟੈਕਸਟ ਮੋਡ&lt;/em&gt; may
++be a work-around for you.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Installation Source&lt;/a&gt;: Choose the
++installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Driver Update&lt;/a&gt;: For very new machines, a
++driver update may be needed to install the system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpamainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;ਸਾਫਟਵੇਅਰ ਕਿਸਮ ਚੋਣ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++You have the choice to install the 32-bit or 64-bit version of @@@product@@@.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpamaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;ਡਰਾਇਵਰ ਅੱਪਡੇਟ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++If you need a driver update floppy or CD-ROM, press &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. The
++boot loader asks you to insert the driver update medium after
++loading the Linux kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++A driver update is typically a floppy with new versions of hardware
++drivers or bug fixes needed during installation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpamainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,11 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;ਇੰਸਟਾਲੇਸ਼ਨ -- ਸੁਰੱਖਿਅਤ ਸੈਟਿੰਗ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;ਇੰਸਟਾਲੇਸ਼ਨ -- ਸੁਰੱਖਿਅਤ ਸੈਟਿੰਗ&lt;/em&gt; if you encounter hangs
++while installing or irreproducible errors. This option disables DMA
++for IDE drives and all power management features.
++See also the kernel options for &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;,
++&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; and &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpamainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;ਫਾਇਰਮਵੇਅਰ ਟੈਸਟ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Starts a BIOS checker that validates the ACPI tables
++and many other parts of your BIOS.
++Test results can be stored on usb disk or saved via network.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpamainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,16 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;ਹਾਰਡ ਡਿਸਕ ਤੋਂ ਬੂਟ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;ਇੰਸਟਾਲ ਹੋਇਆ OS ਬੂਟ ਕਰੋ&lt;/em&gt; to start the system installed on
++your local hard disk. This system must be installed properly, because
++only the MBR (Master Boot Record) on the first hard disk is started.
++The device ID of the first hard disk is provided by the BIOS of
++the computer.
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this if you forgot to remove the CD or DVD from your
++drive and want to start the computer from the hard disk.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpamainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;ਮੱਦਦ ਸਿਸਟਮ ਦੀ ਵਰਤੋਂ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ਤੀਰ ਉੱਤੇ&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;ਹੇਠਾਂ ਤੀਰ&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;ਖੱਬਾ ਤੀਰ&lt;/em&gt;, &lt;em&gt;ਬੈਕਸਪੇਸ&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;ਸੱਜਾ ਤੀਰ&lt;/em&gt;, &lt;em&gt;ਐਂਟਰ&lt;/em&gt;, &lt;em&gt;ਥਾਂ&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;ਘਰ&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;ਅੰਤ&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpamaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;ਇੰਸਟਾਲੇਸ਼ਨ ਸਰੋਤ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; to choose an installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++This is the same as using the &lt;a href=&quot;#o_install&quot;&gt;ਇੰਸਟਾਲ&lt;/a&gt;
++boot option.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpamainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;ਭਾਸ਼ਾ ਅਤੇ ਕੀਬੋਰਡ ਲੇਆਉਟ ਚੋਣ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpamainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;ਇੰਸਟਾਲੇਸ਼ਨ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;ਇੰਸਟਾਲੇਸ਼ਨ&lt;/em&gt; to start the default installation. The
++&lt;a href=&quot;#opt&quot;&gt;ਬੂਟ ਚੋਣ&lt;/a&gt; entered are used in the
++start-up. This item activates many features of commonly available
++hardware.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpamainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;ਮੈਮੋਰੀ ਟੈਸਟ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The included &lt;em&gt;ਮੈਮੋਰੀ ਟੈਸਟ&lt;/em&gt; provides good possibilities to
++stress test the hardware of a system. Its main purpose is to detect
++broken RAM, but it also stresses many other parts of the system.
++&lt;/p&gt;
++
++&lt;p&gt;
++There is no guarantee that the memory is good if no errors are
++found, although most of memory defects will be found.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpamainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,24 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;ਇੰਸਟਾਲੇਸ਼ਨ -- ACPI ਆਯੋਗ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Current hardware usually requires ACPI (Advanced Configuration and Power Interface)
++to control the interrupt handling.
++ACPI completely replaces the old APM system.
++&lt;/p&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;ਇੰਸਟਾਲੇਸ਼ਨ -- ACPI ਆਯੋਗ&lt;/em&gt; if you encounter
++problems during boot of the kernel. Known problems with machines that
++have problems with ACPI are:
++&lt;ul&gt;
++ &lt;li&gt;kernel freezes when booting&lt;/li&gt;
++ &lt;li&gt;PCI Cards are not detected or initialized properly&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++You may also try the &lt;a href=&quot;#firmware&quot;&gt;ਫਾਇਰਮਵੇਅਰ ਟੈਸਟ&lt;/a&gt; boot option
++and look at the test results of the ACPI validation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpamainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;ਇੰਸਟਾਲੇਸ਼ਨ -- ਲੋਕਲ APIC ਆਯੋਗ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Normally there are no problems with the APIC (Advanced Programmable Interrupt
++Controller). But if you seem to have some, try this option to boot
++without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++Please don't confuse this with &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt;
++(Advanced Configuration and Power Interface).
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpamainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,28 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;ਬੂਟ ਚੋਣ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++There are two types of boot options available. First, there are
++options that affect the installer. Second, there are kernel
++options. Some of the more common options are:
++&lt;/p&gt;
++
++&lt;p&gt;
++a) installer options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;ਇੰਸਟਾਲ&lt;/a&gt; -- select an installation source&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#network&quot;&gt;ਨੈੱਟਵਰਕ ਚੋਣਾਂ&lt;/a&gt; -- the network options&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;vnc ਚੋਣਾਂ&lt;/a&gt; -- options for installation via VNC&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++b) kernel options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpamainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;ਇੰਸਟਾਲਰ ਚੋਣਾਂ: ਨੈੱਟਵਰਕ ਚੋਣਾਂ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++It is possible to configure the network interface right now. The
++hardware will be detected later by YaST2. The minimum set of options
++to configure your network card consists of host IP and netmask. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++or in a shorter form:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++If you specified a &lt;a href=&quot;#o_install&quot;&gt;ਨੈੱਟਵਰਕ ਅਧਾਰਿਤ ਇੰਸਟਾਲ&lt;/a&gt; and do
++not specify both of these options, the installer tries to configure
++the network interface with &lt;em&gt;dhcp&lt;/em&gt;. If you need a default
++gateway, specify this with the option &lt;em&gt;ਗੇਟਵੇ&lt;/em&gt;. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;gateway=192.168.0.8&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpamainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;ਕਰਨਲ ਚੋਣਾਂ: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpamainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;ਕਰਨਲ ਚੋਣਾਂ: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpamainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;ਕਰਨਲ ਚੋਣਾਂ: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpamainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,30 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;ਇੰਸਟਾਲਰ ਚੋਣ: ਇੰਸਟਾਲ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++By default, the local CD-ROMs are searched for the installation source.
++For a network install, select the
++&lt;em&gt;ਇੰਸਟਾਲ&lt;/em&gt; option. Possible installation protocols are
++&lt;ul&gt;
++ &lt;li&gt;FTP&lt;/li&gt;
++ &lt;li&gt; &lt;/li&gt;
++ &lt;li&gt;HTTP&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The syntax to use is just like standard URLs. For example,
++if your server is found at 192.168.0.1 and you want to do an NFS-based
++install from the directory /install on this server, specify
++the source as follows:
++&lt;ul&gt;
++ &lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The network card will either be configured with &lt;em&gt;dhcp&lt;/em&gt; or you
++must specify the parameters yourself as described in the
++&lt;a href=&quot;#network&quot;&gt;ਨੈੱਟਵਰਕ ਚੋਣਾਂ&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpamainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;ਕਰਨਲ ਚੋਣਾਂ: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpamainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;ਇੰਸਟਾਲਰ ਚੋਣਾਂ: vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++To enable the VNC installation, specify the
++parameters vnc and vncpassword:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;vnc=1 vncpassword=example&lt;/em&gt;&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The VNC server will be started and you may control YaST2 over any VNC
++client from a remote system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpamainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;ਰਿਸਕਿਊ ਸਿਸਟਮ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The &lt;em&gt;ਰਿਸਕਿਊ ਸਿਸਟਮ&lt;/em&gt; is a small RAM disk base system. From there,
++it is possible to make all kinds of changes to an installed system. Because
++only low-level tools are available in this system, it is intended for
++experts.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpamainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;ਵੀਡਿਓ ਮੋਡ ਚੋਣ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; to get the list of video modes your graphics card
++supports. The highest mode your monitor can display is preselected.
++&lt;/p&gt;
++
++&lt;p&gt;
++It is possible that your monitor cannot be detected automatically. In that
++case, select your preferred mode manually.
++&lt;/p&gt;
++
++&lt;p&gt;
++If your system has problems with the graphics card during the
++installation, the &lt;em&gt;ਟੈਕਸਟ ਮੋਡ&lt;/em&gt; may be a usable work-around.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpanavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;&lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt; ਉੱਤੇ ਜਾਓ&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallplmainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,103 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;Pomoc programu rozruchowego&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Welcome to &lt;em&gt;@@@product@@@&lt;/em&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this menu to select the desired function. If you have
++problems navigating in this help system, press
++&lt;em&gt;@@@fkey_help@@@&lt;/em&gt; to enter the &lt;a href=&quot;#help&quot;&gt;Opis&lt;/a&gt; of the help
++system. The main functions in this menu are:
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#harddisk&quot;&gt;Uruchomienie z dysku twardego&lt;/a&gt;: This selection will not do
++anything to the system. It only starts a previously installed
++operating system.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#linux&quot;&gt;Instalacja&lt;/a&gt;:
++This installation mode works on most machines. If you experience a
++system freeze during boot or problems with detection of your hardware
++components, such as disk controllers or network cards, try one of the
++following installation options.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#noacpi&quot;&gt;Instalacja (bez ACPI)&lt;/a&gt;: Many of the
++currently-sold computers have incomplete or faulty ACPI
++implementations. This selection disables ACPI support in the
++kernel, but still enables many performance features, like DMA for IDE
++hard disks.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#nolapic&quot;&gt;Instalacja (bez lokalnego APIC)&lt;/a&gt;:
++If the normal installation fails, this might be due to the
++system hardware not supporting local APIC.
++If this seems to be the case, use this option to
++install without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#failsafe&quot;&gt;Instalacja (bezpieczne ustawienia)&lt;/a&gt;: If you were not
++successful with &lt;em&gt;Instalacja&lt;/em&gt;, this selection might
++solve the issue.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#rescue&quot;&gt;System ratunkowy&lt;/a&gt;: This boot image starts a small
++Linux system in RAM. This is useful if the system does not start properly.
++After booting this system, log in as root.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#firmware&quot;&gt;Test oprogramowania sprzętowego&lt;/a&gt;: Runs a BIOS test tool that validates
++ACPI and other parts of your BIOS.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#memtest&quot;&gt;Test pamięci&lt;/a&gt;: Memory testing is useful for more than
++checking installation of new memory modules. It is a stress test
++for a big part of your computer system and may indicate hardware
++problems.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#opt&quot;&gt;Opcje uruchamiania&lt;/a&gt;: The boot options may change the
++behavior of your system completely. They are settings for
++the kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Help&lt;/a&gt;: This is context sensitive. It will
++show different screens depending on the active element of the
++boot screen. There is also a description of this help system
++available.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Set language and keyboard mapping
++used by the boot loader.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Video Mode&lt;/a&gt;: Here, choose between
++different screen resolutions while installing. If you encounter
++problems with the graphical installation, the &lt;em&gt;Tryb tekstowy&lt;/em&gt; may
++be a work-around for you.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Installation Source&lt;/a&gt;: Choose the
++installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Driver Update&lt;/a&gt;: For very new machines, a
++driver update may be needed to install the system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallplmainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;Wybór typu oprogramowania&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++You have the choice to install the 32-bit or 64-bit version of @@@product@@@.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallplmaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;Aktualizacja sterowników&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++If you need a driver update floppy or CD-ROM, press &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. The
++boot loader asks you to insert the driver update medium after
++loading the Linux kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++A driver update is typically a floppy with new versions of hardware
++drivers or bug fixes needed during installation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallplmainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,11 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;Instalacja (bezpieczne ustawienia)&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Instalacja (bezpieczne ustawienia)&lt;/em&gt; if you encounter hangs
++while installing or irreproducible errors. This option disables DMA
++for IDE drives and all power management features.
++See also the kernel options for &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;,
++&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; and &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallplmainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;Test oprogramowania sprzętowego&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Starts a BIOS checker that validates the ACPI tables
++and many other parts of your BIOS.
++Test results can be stored on usb disk or saved via network.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallplmainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,16 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;Uruchomienie z dysku twardego&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Start zainstalowanego systemu&lt;/em&gt; to start the system installed on
++your local hard disk. This system must be installed properly, because
++only the MBR (Master Boot Record) on the first hard disk is started.
++The device ID of the first hard disk is provided by the BIOS of
++the computer.
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this if you forgot to remove the CD or DVD from your
++drive and want to start the computer from the hard disk.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallplmainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Używanie systemu pomocy&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Strzałka 'w górę'&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Strzałka 'w dół'&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Strzałka 'w lewo'&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Strzałka 'w prawo'&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Spacja&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;End&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallplmaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;Źródło instalacji&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; to choose an installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++This is the same as using the &lt;a href=&quot;#o_install&quot;&gt;Zainstaluj&lt;/a&gt;
++boot option.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallplmainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Ustawienia języka i klawiatury&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallplmainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;Instalacja&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Instalacja&lt;/em&gt; to start the default installation. The
++&lt;a href=&quot;#opt&quot;&gt;Opcje uruchamiania&lt;/a&gt; entered are used in the
++start-up. This item activates many features of commonly available
++hardware.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallplmainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;Test pamięci&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The included &lt;em&gt;Test pamięci&lt;/em&gt; provides good possibilities to
++stress test the hardware of a system. Its main purpose is to detect
++broken RAM, but it also stresses many other parts of the system.
++&lt;/p&gt;
++
++&lt;p&gt;
++There is no guarantee that the memory is good if no errors are
++found, although most of memory defects will be found.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallplmainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,24 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;Instalacja (bez ACPI)&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Current hardware usually requires ACPI (Advanced Configuration and Power Interface)
++to control the interrupt handling.
++ACPI completely replaces the old APM system.
++&lt;/p&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Instalacja (bez ACPI)&lt;/em&gt; if you encounter
++problems during boot of the kernel. Known problems with machines that
++have problems with ACPI are:
++&lt;ul&gt;
++ &lt;li&gt;kernel freezes when booting&lt;/li&gt;
++ &lt;li&gt;PCI Cards are not detected or initialized properly&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++You may also try the &lt;a href=&quot;#firmware&quot;&gt;Test oprogramowania sprzętowego&lt;/a&gt; boot option
++and look at the test results of the ACPI validation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallplmainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;Instalacja (bez lokalnego APIC)&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Normally there are no problems with the APIC (Advanced Programmable Interrupt
++Controller). But if you seem to have some, try this option to boot
++without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++Please don't confuse this with &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt;
++(Advanced Configuration and Power Interface).
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallplmainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,28 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Opcje uruchamiania&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++There are two types of boot options available. First, there are
++options that affect the installer. Second, there are kernel
++options. Some of the more common options are:
++&lt;/p&gt;
++
++&lt;p&gt;
++a) installer options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;Zainstaluj&lt;/a&gt; -- select an installation source&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#network&quot;&gt;Opcje sieciowe&lt;/a&gt; -- the network options&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;Opcje vnc&lt;/a&gt; -- options for installation via VNC&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++b) kernel options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallplmainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;Opcje instalatora: ustawienia sieciowe&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++It is possible to configure the network interface right now. The
++hardware will be detected later by YaST2. The minimum set of options
++to configure your network card consists of host IP and netmask. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;hostip:192.168.0.10 netmas=255.255.255.0&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++or in a shorter form:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++If you specified a &lt;a href=&quot;#o_install&quot;&gt;instalacja sieciowa&lt;/a&gt; and do
++not specify both of these options, the installer tries to configure
++the network interface with &lt;em&gt;dhcp&lt;/em&gt;. If you need a default
++gateway, specify this with the option &lt;em&gt;bramka sieciowa&lt;/em&gt;. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;gateway=192.168.0.8&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallplmainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Opcje jądra: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallplmainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Opcje ogólne: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallplmainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Opcje jądra: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallplmainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,30 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;Opcje instalatora: zainstaluj&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++By default, the local CD-ROMs are searched for the installation source.
++For a network install, select the
++&lt;em&gt;Zainstaluj&lt;/em&gt; option. Possible installation protocols are
++&lt;ul&gt;
++ &lt;li&gt;FTP&lt;/li&gt;
++ &lt;li&gt;NFS&lt;/li&gt;
++ &lt;li&gt;HTTP&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The syntax to use is just like standard URLs. For example,
++if your server is found at 192.168.0.1 and you want to do an NFS-based
++install from the directory /install on this server, specify
++the source as follows:
++&lt;ul&gt;
++ &lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The network card will either be configured with &lt;em&gt;dhcp&lt;/em&gt; or you
++must specify the parameters yourself as described in the
++&lt;a href=&quot;#network&quot;&gt;Opcje sieciowe&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallplmainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Opcje jądra: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash = 0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallplmainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;Opcje nstalatora: vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++To enable the VNC installation, specify the
++parameters vnc and vncpassword:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;vnc=1 vncpassword=example&lt;/em&gt;&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The VNC server will be started and you may control YaST2 over any VNC
++client from a remote system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallplmainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;System ratunkowy&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The &lt;em&gt;System ratunkowy&lt;/em&gt; is a small RAM disk base system. From there,
++it is possible to make all kinds of changes to an installed system. Because
++only low-level tools are available in this system, it is intended for
++experts.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallplmainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;Wybór trybu wyświetlania&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; to get the list of video modes your graphics card
++supports. The highest mode your monitor can display is preselected.
++&lt;/p&gt;
++
++&lt;p&gt;
++It is possible that your monitor cannot be detected automatically. In that
++case, select your preferred mode manually.
++&lt;/p&gt;
++
++&lt;p&gt;
++If your system has problems with the graphics card during the
++installation, the &lt;em&gt;Tryb tekstowy&lt;/em&gt; may be a usable work-around.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallplnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Wróć do &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallptmainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,101 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;Ajuda da Rotina de Arranque&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Bem vindo a &lt;em&gt;@@@product@@@&lt;/em&gt;&lt;/p&gt;
++
++&lt;p&gt;
++Use this menu to select the desired function. If you have
++problems navigating in this help system, press
++&lt;em&gt;@@@fkey_help@@@&lt;/em&gt; to enter the &lt;a href=&quot;#help&quot;&gt;descrição&lt;/a&gt; of the help
++system. The main functions in this menu are:
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#harddisk&quot;&gt;Arrancar de Disco Rígido&lt;/a&gt;: This selection will not do
++anything to the system. It only starts a previously installed
++operating system.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#linux&quot;&gt;Instalação&lt;/a&gt;:
++This installation mode works on most machines. If you experience a
++system freeze during boot or problems with detection of your hardware
++components, such as disk controllers or network cards, try one of the
++following installation options.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#noacpi&quot;&gt;Instalação -- ACPI Desactivado&lt;/a&gt;: Many of the
++currently-sold computers have incomplete or faulty ACPI
++implementations. This selection disables ACPI support in the
++kernel, but still enables many performance features, like DMA for IDE
++hard disks.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#nolapic&quot;&gt;Instalação -- APIC Local Desactivado&lt;/a&gt;:
++If the normal installation fails, this might be due to the
++system hardware not supporting local APIC.
++If this seems to be the case, use this option to
++install without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#failsafe&quot;&gt;Instalação -- Definições Seguras&lt;/a&gt;: If you were not
++successful with &lt;em&gt;Instalação&lt;/em&gt;, this selection might
++solve the issue.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#rescue&quot;&gt;Sistema de Recuperação&lt;/a&gt;: This boot image starts a small
++Linux system in RAM. This is useful if the system does not start properly.
++After booting this system, log in as root.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#firmware&quot;&gt;Testar Firmware&lt;/a&gt;: Runs a BIOS test tool that validates
++ACPI and other parts of your BIOS.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#memtest&quot;&gt;Teste de Memória&lt;/a&gt;: Memory testing is useful for more than
++checking installation of new memory modules. It is a stress test
++for a big part of your computer system and may indicate hardware
++problems.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#opt&quot;&gt;Opções de Arranque&lt;/a&gt;: The boot options may change the
++behavior of your system completely. They are settings for
++the kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Help&lt;/a&gt;: This is context sensitive. It will
++show different screens depending on the active element of the
++boot screen. There is also a description of this help system
++available.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Set language and keyboard mapping
++used by the boot loader.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Modo de Video&lt;/a&gt;: Here, choose between
++different screen resolutions while installing. If you encounter
++problems with the graphical installation, the &lt;em&gt;modo texto&lt;/em&gt; may
++be a work-around for you.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Fonte de Instalação&lt;/a&gt;: Choose the
++installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Actualização do Driver&lt;/a&gt;: For very new machines, a
++driver update may be needed to install the system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallptmainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;Escolha do Tipo de Software&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++You have the choice to install the 32-bit or 64-bit version of @@@product@@@.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallptmaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;Actualização de Driver&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++If you need a driver update floppy or CD-ROM, press &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. The
++boot loader asks you to insert the driver update medium after
++loading the Linux kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++A driver update is typically a floppy with new versions of hardware
++drivers or bug fixes needed during installation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallptmainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,11 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;Instalação -- Definições Seguras&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Instalação -- Definições Seguras&lt;/em&gt; if you encounter hangs
++while installing or irreproducible errors. This option disables DMA
++for IDE drives and all power management features.
++See also the kernel options for &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;,
++&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; and &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallptmainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;Testar Firmware&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Starts a BIOS checker that validates the ACPI tables
++and many other parts of your BIOS.
++Test results can be stored on usb disk or saved via network.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallptmainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,16 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;Arrancar de Disco Rígido&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Arrancar SO instalado&lt;/em&gt; to start the system installed on
++your local hard disk. This system must be installed properly, because
++only the MBR (Master Boot Record) on the first hard disk is started.
++The device ID of the first hard disk is provided by the BIOS of
++the computer.
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this if you forgot to remove the CD or DVD from your
++drive and want to start the computer from the hard disk.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallptmainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Utilizando o Sistema de Ajuda&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Seta para Cima&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Seta para Baixo&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Seta para a Esquerda&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Seta para a Direita&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Barra de Espaços&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;End&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallptmaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;Origem de Instalação&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; to choose an installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++This is the same as using the &lt;a href=&quot;#o_install&quot;&gt;Instalar&lt;/a&gt;
++boot option.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallptmainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Selecção de Teclado e Idioma&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallptmainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;Instalação&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Instalação&lt;/em&gt; to start the default installation. The
++&lt;a href=&quot;#opt&quot;&gt;Opções de Arranque&lt;/a&gt; entered are used in the
++start-up. This item activates many features of commonly available
++hardware.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallptmainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;Teste de Memória&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The included &lt;em&gt;Teste de Memória&lt;/em&gt; provides good possibilities to
++stress test the hardware of a system. Its main purpose is to detect
++broken RAM, but it also stresses many other parts of the system.
++&lt;/p&gt;
++
++&lt;p&gt;
++There is no guarantee that the memory is good if no errors are
++found, although most of memory defects will be found.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallptmainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,24 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;Instalação -- ACPI Desactivado&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Current hardware usually requires ACPI (Advanced Configuration and Power Interface)
++to control the interrupt handling.
++ACPI completely replaces the old APM system.
++&lt;/p&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Instalação -- ACPI Desactivado&lt;/em&gt; if you encounter
++problems during boot of the kernel. Known problems with machines that
++have problems with ACPI are:
++&lt;ul&gt;
++ &lt;li&gt;kernel freezes when booting&lt;/li&gt;
++ &lt;li&gt;PCI Cards are not detected or initialized properly&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++You may also try the &lt;a href=&quot;#firmware&quot;&gt;Testar Firmware&lt;/a&gt; boot option
++and look at the test results of the ACPI validation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallptmainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;Instalação -- APIC Local Desactivado&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Normally there are no problems with the APIC (Advanced Programmable Interrupt
++Controller). But if you seem to have some, try this option to boot
++without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++Please don't confuse this with &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt;
++(Advanced Configuration and Power Interface).
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallptmainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,28 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Opções de Arranque&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++There are two types of boot options available. First, there are
++options that affect the installer. Second, there are kernel
++options. Some of the more common options are:
++&lt;/p&gt;
++
++&lt;p&gt;
++a) installer options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;Instalar&lt;/a&gt; -- select an installation source&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#network&quot;&gt;opções de rede&lt;/a&gt; -- the network options&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;opções vnc&lt;/a&gt; -- options for installation via VNC&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++b) kernel options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallptmainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;Opções de Instalador: Opções de Rede&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++It is possible to configure the network interface right now. The
++hardware will be detected later by YaST2. The minimum set of options
++to configure your network card consists of host IP and netmask. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++or in a shorter form:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++If you specified a &lt;a href=&quot;#o_install&quot;&gt;instalação por rede&lt;/a&gt; and do
++not specify both of these options, the installer tries to configure
++the network interface with &lt;em&gt;dhcp&lt;/em&gt;. If you need a default
++gateway, specify this with the option &lt;em&gt;gateway&lt;/em&gt;. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;gateway=192.168.0.8&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallptmainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Opções de Kernel: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallptmainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Opções de Kernel: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallptmainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Opções de Kernel: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallptmainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,30 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;Opções de Instalador: instalar&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++By default, the local CD-ROMs are searched for the installation source.
++For a network install, select the
++&lt;em&gt;Instalar&lt;/em&gt; option. Possible installation protocols are
++&lt;ul&gt;
++ &lt;li&gt;FTP&lt;/li&gt;
++ &lt;li&gt;NFS&lt;/li&gt;
++ &lt;li&gt;HTTP&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The syntax to use is just like standard URLs. For example,
++if your server is found at 192.168.0.1 and you want to do an NFS-based
++install from the directory /install on this server, specify
++the source as follows:
++&lt;ul&gt;
++ &lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The network card will either be configured with &lt;em&gt;dhcp&lt;/em&gt; or you
++must specify the parameters yourself as described in the
++&lt;a href=&quot;#network&quot;&gt;opções de rede&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallptmainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Opções de Kernel: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallptmainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;Opções de Instalador: vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++To enable the VNC installation, specify the
++parameters vnc and vncpassword:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;vnc=1 vncpassword=exemplo&lt;/em&gt;&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The VNC server will be started and you may control YaST2 over any VNC
++client from a remote system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallptmainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;Sistema de Recuperação&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The &lt;em&gt;Sistema de Recuperação&lt;/em&gt; is a small RAM disk base system. From there,
++it is possible to make all kinds of changes to an installed system. Because
++only low-level tools are available in this system, it is intended for
++experts.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallptmainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;Selecção de Modo de Vídeo&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; to get the list of video modes your graphics card
++supports. The highest mode your monitor can display is preselected.
++&lt;/p&gt;
++
++&lt;p&gt;
++It is possible that your monitor cannot be detected automatically. In that
++case, select your preferred mode manually.
++&lt;/p&gt;
++
++&lt;p&gt;
++If your system has problems with the graphics card during the
++installation, the &lt;em&gt;modo texto&lt;/em&gt; may be a usable work-around.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallptnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Voltar para &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;Ajuda do carregador de inicialização&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Bem-vindo ao &lt;em&gt;@@@product@@@&lt;/em&gt;&lt;/p&gt;
++
++&lt;p&gt;Use este menu para selecionar a função desejada. Se você tiver problemas ao navegar neste sistema de ajuda, pressione &lt;em&gt;@@@fkey_help@@@&lt;/em&gt; para acessar a &lt;a href=&quot;#help&quot;&gt;descrição&lt;/a&gt; do sistema de ajuda. As principais funções deste menu são:&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#harddisk&quot;&gt;Inicializar do disco rígido&lt;/a&gt;: Esta seleção não fará nada no sistema. Ela apenas inicia um sistema operacional instalado anteriormente.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#linux&quot;&gt;Instalação&lt;/a&gt;: Este modo de instalação funciona na maioria das máquinas. Se o sistema travar durante a inicialização ou se houver problemas na detecção dos componentes de hardware, como controladores de disco ou placas de rede, tente uma das seguintes opções de instalação.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#noacpi&quot;&gt;Instalação -- ACPI desabilitada&lt;/a&gt;: Muitos dos computadores vendidos atualmente têm implementações de ACPI incompletas ou defeituosas. Esta seleção desabilita o suporte a ACPI no kernel, mas ainda habilita muitos recursos de desempenho, como o DMA para os discos rígidos IDE.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#nolapic&quot;&gt;Instalação -- APIC local desabilitada&lt;/a&gt;: Se a instalação normal falhar, isto pode ser devido ao hardware do sistema não suportar o APIC local. Se isto parecer ser o caso, use esta opção para instalar sem suporte ao APIC local.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#failsafe&quot;&gt;Instalação -- Configurações seguras&lt;/a&gt;: Se você não tiver obtido sucesso com &lt;em&gt;Instalação&lt;/em&gt;, esta seleção talvez resolva o problema.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#rescue&quot;&gt;Sistema de recuperação&lt;/a&gt;: Essa imagem de inicialização inicia um pequeno sistema Linux na RAM. Isso é útil se o sistema não é iniciado corretamente. Após inicializar esse sistema, efetue o login como root.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#firmware&quot;&gt;Teste de firmware&lt;/a&gt;: Executa uma ferramenta de teste da BIOS que valida o ACPI e outras partes da BIOS.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#memtest&quot;&gt;Teste de memória&lt;/a&gt;: O teste de memória é útil não só para verificar a instalação de novos módulos de memória, mas também para testar uma grande parte de seu computador e pode indicar problemas de hardware.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#opt&quot;&gt;Opções de inicialização&lt;/a&gt;: As opções de inicialização podem alterar completamente o comportamento de seu sistema. Elas são as configurações para o kernel.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Ajuda&lt;/a&gt;: Esta opção é sensível ao contexto. Ela exibirá telas diferentes dependendo do elemento ativo da tela de inicialização. Também há uma descrição desse sistema de ajuda disponível.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Definir o idioma e o mapeamento do teclado usados pelo carregador de inicialização.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Modo de vídeo&lt;/a&gt;: Aqui, escolha entre as diferentes resoluções de tela durante a instalação. Se houver problemas com a instalação gráfica, o &lt;em&gt;modo de texto&lt;/em&gt; poderá ser uma solução para você.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Fonte de instalação&lt;/a&gt;: Escolher a fonte de instalação.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Atualização de driver&lt;/a&gt;: Para máquinas mais novas, pode ser necessária uma atualização de driver para instalar o sistema.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;Seleção do tipo de software&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Você tem a opção de instalar a versão de 32 ou 64 bits do @@@product@@@.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;Atualização de driver&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Se precisar de um disquete ou CD-ROM de atualização de driver, pressione &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. O carregador de inicialização pedirá que você insira a mídia de atualização de driver após carregar o kernel do Linux.&lt;/p&gt;
++
++&lt;p&gt;Uma atualização de driver é geralmente um disquete com novas versões de drivers de hardware ou correções de erros necessárias durante a instalação.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;Instalação -- Configurações seguras&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Selecione &lt;em&gt;Instalação -- Configurações seguras&lt;/em&gt; se ocorrerem travamentos ou erros irreproduzíveis durante a instalação. Essa opção desabilita o DMA para unidades IDE e todos os recursos de gerenciamento de energia. Consulte também as opções do kernel para &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;, &lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; e &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;Teste de firmware&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Inicia um verificador de BIOS que valida as tabelas ACPI e várias outras partes da BIOS. Os resultados do teste podem ser armazenados em um disco usb ou salvos via rede.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;Inicializar do disco rígido&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Selecione &lt;em&gt;Iniciar o SO instalado&lt;/em&gt; para iniciar o sistema instalado no disco rígido local. Esse sistema deve estar instalado corretamente, pois apenas o MBR (Master Boot Record) no primeiro disco rígido é iniciado. O ID do dispositivo do primeiro disco rígido é fornecido pela BIOS do computador.&lt;/p&gt;
++
++&lt;p&gt;Utilize esta opção se você tiver esquecido de remover o CD ou o DVD da unidade e desejar iniciar o computador do disco rígido.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Usando o sistema de ajuda&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;A ajuda online do carregador de inicialização é sensível ao contexto. Ela fornece informações sobre o item de menu selecionado ou, se você estiver editando as opções de inicialização, tenta procurar informações sobre a opção em que o cursor está posicionado.&lt;/p&gt;
++
++&lt;p&gt;Teclas de navegação &lt;ul&gt;&lt;li&gt;&lt;em&gt;Seta para cima&lt;/em&gt;: realçar o link anterior&lt;/li&gt;&lt;li&gt;&lt;em&gt;Seta para baixo&lt;/em&gt;: realçar o próximo link&lt;/li&gt;&lt;li&gt;&lt;em&gt;Seta para a esquerda&lt;/em&gt;, &lt;em&gt;Tecla backspace&lt;/em&gt;: retornar ao tópico anterior&lt;/li&gt;&lt;li&gt;&lt;em&gt;Seta para a direita&lt;/em&gt;, &lt;em&gt;Tecla enter&lt;/em&gt;, &lt;em&gt;Tecla espaço&lt;/em&gt;: seguir o link&lt;/li&gt;&lt;li&gt;&lt;em&gt;Tecla page up&lt;/em&gt;: rolar uma página para cima&lt;/li&gt;&lt;li&gt;&lt;em&gt;Tecla page down&lt;/em&gt;: rolar uma página para baixo&lt;/li&gt;&lt;li&gt;&lt;em&gt;Tecla home&lt;/em&gt;: ir para o início da página&lt;/li&gt;&lt;li&gt;&lt;em&gt;Tecla end&lt;/em&gt;: ir para o final da página&lt;/li&gt;&lt;li&gt;&lt;em&gt;Tecla esc&lt;/em&gt;: sair da ajuda&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;Fonte de instalação&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Pressione &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; para selecionar uma fonte de instalação.&lt;/p&gt;
++
++&lt;p&gt;Isto é o mesmo que usar a opção de inicialização &lt;a href=&quot;#o_install&quot;&gt;instalar&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Seleção de idioma e layout de teclado&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Pressione &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; para alterar o idioma e o layout de teclado usados pelo carregador de inicialização.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;Instalação&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Selecione &lt;em&gt;Instalação&lt;/em&gt; para iniciar a instalação padrão. As &lt;a href=&quot;#opt&quot;&gt;opções de inicialização&lt;/a&gt; digitadas são usadas na inicialização. Esse item ativa muitos recursos de hardware frequentemente disponíveis.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;Teste de memória&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;O &lt;em&gt;Teste de memória&lt;/em&gt; incluído oferece boas possibilidades de executar um teste de stress no hardware de um sistema. Seu objetivo principal é detectar memórias RAM com defeitos, mas também testa muitas outras partes do sistema.&lt;/p&gt;
++
++&lt;p&gt;Não há garantia de que a memória esteja boa se não forem encontrados erros, embora a maioria dos defeitos de memória será encontrada.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;Instalação -- ACPI desabilitada&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;O hardware mais novo geralmente requer que a ACPI (Advanced Configuration and Power Interface - Interface Avançada de Configuração e Energia) controle o gerenciamento de interrupções. O ACPI substitui completamente o antigo sistema APM.&lt;/p&gt;
++
++&lt;p&gt;Selecione &lt;em&gt;Instalação -- ACPI desabilitada&lt;/em&gt; se você encontrar problemas durante a inicialização do kernel. Os problemas conhecidos de máquinas que têm problemas com ACPI são: &lt;ul&gt;&lt;li&gt;o kernel trava durante a inicialização&lt;/li&gt;&lt;li&gt;Placas PCI não são detectadas ou inicializadas corretamente&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Você também pode tentar a opção de inicialização &lt;a href=&quot;#firmware&quot;&gt;Teste de firmware&lt;/a&gt; e ver os resultados do teste de validação do ACPI.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;Instalação -- APIC local desabilitada&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Normalmente não há problemas com a APIC (Advanced Programmable Interrupt Controller - Controlador avançado de interrupção programável). Mas, se você acha que há algum problema, tente esta opção para inicializar sem o suporte à APIC local.&lt;/p&gt;
++
++&lt;p&gt;Por favor, não confunda isto com &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt; (ACPI - Interface avançada de configuração e energia).&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Opções de inicialização&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Há dois tipos de opções de inicialização disponíveis. Primeiro, há opções que afetam o instalador. Em segundo, há as opções do kernel. Algumas das opções mais comuns são:&lt;/p&gt;
++
++&lt;p&gt;a) opções do instalador &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;instalar&lt;/a&gt; -- selecionar uma fonte de instalação&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#network&quot;&gt;opções de rede&lt;/a&gt; -- as opções de rede&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;opções do vnc&lt;/a&gt; -- opções para instalação via VNC&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;b) opções do kernel &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;tela de inicialização&lt;/a&gt; -- influenciar o comportamento da tela de inicialização&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- alternar o gerenciamento de energia&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- interface avançada de configuração e energia&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- controlar o subsistema IDE&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,13 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;Opções do instalador: opções de rede&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;É possível configurar a interface de rede agora. O hardware será detectado mais tarde pelo YaST2. O conjunto mínimo de opções para configurar a placa de rede consiste em máscara de rede e IP de host. Por exemplo: &lt;ul&gt;&lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;ou numa forma mais curta: &lt;ul&gt;&lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Se você tiver especificado uma &lt;a href=&quot;#o_install&quot;&gt;instalação baseada em rede&lt;/a&gt; e não especificar essas duas opções, o instalador tentará configurar a interface de rede com &lt;em&gt;dhcp&lt;/em&gt;. Se precisar de um gateway padrão, especifique-o com a opção &lt;em&gt;gateway&lt;/em&gt;. Por exemplo: &lt;ul&gt;&lt;li&gt;gateway=192.168.0.8&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Opções do kernel: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;O ACPI (Advanced Configuration and Power Interface - Interface avançada de configuração e energia) é um padrão que define as interfaces de gerenciamento de configuração e energia entre o sistema operacional e a BIOS. Por padrão, &lt;em&gt;acpi&lt;/em&gt; é ativado quando é detectado uma BIOS mais recente do que o ano 2000. Há vários parâmetros normalmente usados para controlar o comportamento do ACPI: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- não usar o ACPI para rotear as interrupções PCI&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- apenas as partes do ACPI que são relevantes para a inicialização permanecem ativadas&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- desativar o ACPI completamente&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- ativar o ACPI mesmo que a BIOS tenha data anterior a 2000&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Especialmente em novos computadores, ele substitui o antigo sistema &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Opções do kernel: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;O APM é uma das duas estratégias de gerenciamento de energia usadas nos computadores atuais. Ele é usado principalmente com notebooks para funções como suspensão para o disco, mas também pode ser responsável pela desativação do computador após uma queda de energia. O APM depende do correto funcionamento da BIOS. Se a BIOS estiver danificada, o APM talvez tenha apenas uso limitado ou até impeça o funcionamento do computador. Portanto, ele pode ser desativado com o parâmetro &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- desativar o ACPI completamente&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Alguns computadores mais novos podem tirar mais proveito da &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt; mais recente.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Opções do kernel: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;O IDE é, diferente do SCSI, comumente utilizado na maioria das estações de trabalho. Para contornar alguns problemas de hardware que ocorrem com os sistemas IDE, use o parâmetro do kernel: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- desativar o DMA para unidades IDE&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;Opções do instalador: instalar&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Por padrão, a fonte de instalação é pesquisada nos CD-ROMs locais. Para uma instalação pela rede, selecione a opção &lt;em&gt;instalar&lt;/em&gt;. Os protocolos de instalação possíveis são &lt;ul&gt;&lt;li&gt;FTP&lt;/li&gt;&lt;li&gt;NFS&lt;/li&gt;&lt;li&gt;HTTP&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;A sintaxe a ser usada é semelhante ao padrão das URLs. Por exemplo, se o servidor for encontrado em 192.168.0.1 e você desejar fazer uma instalação baseada em NFS do diretório /install desse servidor, especifique a fonte da seguinte forma: &lt;ul&gt;&lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;A placa de rede ou será configurada com &lt;em&gt;dhcp&lt;/em&gt; ou você mesmo deverá especificar os parâmetros, conforme descrito em &lt;a href=&quot;#network&quot;&gt;opções de rede&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Opções do kernel: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;A tela de inicialização é a imagem exibida durante a inicialização do sistema. &lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- A tela de inicialização é desativada. Isto poderá ser útil com monitores muito antigos, ou se ocorrerem erros.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Ativa a tela de inicialização, as mensagens do kernel e de inicialização ainda são exibidas.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Ativa a tela de inicialização, mas sem mensagens. Em vez disto, é exibida uma barra de progresso.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;Opções do instalador: vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Para habilitar a instalação do VNC, especifique os parâmetros vnc e vncpassword: &lt;ul&gt;&lt;li&gt;&lt;em&gt;vnc=1 vncpassword=exemplo&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;O servidor VNC será iniciado e você poderá controlar o YaST2 em qualquer cliente VNC de um sistema remoto.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;Sistema de recuperação&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;O &lt;em&gt;Sistema de recuperação&lt;/em&gt; é um pequeno sistema base de disco RAM. Com ele, é possível fazer todos os tipos de alterações em um sistema instalado. Como há apenas ferramentas de baixo nível disponíveis nesse sistema, ele se destina a usuários avançados.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;Seleção do modo de vídeo&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Pressione &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; para obter a lista de modos de vídeo suportados por sua placa de vídeo. O modo mais elevado que seu monitor pode exibir é pré-selecionado.&lt;/p&gt;
++
++&lt;p&gt;É possível que seu monitor não possa ser detectado automaticamente. Nesse caso, selecione manualmente seu modo preferido.&lt;/p&gt;
++
++&lt;p&gt;Se o seu sistema tiver problemas com a placa de vídeo durante a instalação, o &lt;em&gt;modo de texto&lt;/em&gt; poderá ser uma solução viável.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Retornar a &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallromainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;Ajutor bootloader&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Bine-aţi venit la &lt;em&gt;@@@product@@@&lt;/em&gt;&lt;/p&gt;
++
++&lt;p&gt;Utilizați acest meniu pentru a selecta funcția dorită. Dacă apar probleme la navigarea prin acest sistem de ajutor, apăsați &lt;em&gt;@@@fkey_help@@@&lt;/em&gt; pentru a deschide &lt;a href=&quot;#help&quot;&gt;descriere&lt;/a&gt; al sistemului de ajutor. Funcțiile principale ale acestui meniu sunt:&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#harddisk&quot;&gt;Pornește de pe hard disc&lt;/a&gt;: Această opțiune nu are nici un efect asupra sistemului. Pornește doar un sistem de operare instalat anterior.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#linux&quot;&gt;Instalare&lt;/a&gt;: Acest mod de instalare funcționează pe majoritatea mașinilor. Dacă sistemul se blochează la bootare sau dacă apar probleme la detectarea componentelor hardware, ca de exemplu controllere de disc sau plăci de rețea, încercați cu una dintre următoarele opțiuni de instalare.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#noacpi&quot;&gt;Instalare -- ACPI deactivat&lt;/a&gt;: Multe dintre calculatoarele actuale au implementări APIC incomplete sau defectuoase. Această opțiune deactivează suportul APIC din kernel, însă păstrează activate anumite funcționalități pentru performanță, ca de exemplu DMA pentru hard disk-uri IDE.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#nolapic&quot;&gt;Instalare -- APIC local dezactivat&lt;/a&gt;: Dacă instalarea normală eșuează, poate fi din cauza hardware-ului din sistem ce nu suportă APIC local. Dacă aceasta pare a fi cauza, utilizați această opțiune pentru a instala fără suport APIC local.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#failsafe&quot;&gt;Instalare -- Setări sigure&lt;/a&gt;: Dacă nu ați reușit cu &lt;em&gt;Instalare&lt;/em&gt;, puteți încerca această variantă.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#rescue&quot;&gt;Sistem de salvare&lt;/a&gt;: Această imagine de boot pornește un mini-sistem Linux în RAM. Poate fi util dacă sistemul nu pornește corect. După bootare, autentificați-vă ca root.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#firmware&quot;&gt;Test firmware&lt;/a&gt;: Rulează un utilitare de testare a BIOS-ului, ce validează ACPI și alte părți ale BIOS-ului dvs.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#memtest&quot;&gt;Test de memorie&lt;/a&gt;: Testarea memoriei nu este utilă doar pentru verificarea instalării noilor module de memorie. Este de asemenea un test de rezistență pentru o mare parte a sistemului dvs. și poate descoperi eventualele probleme hardware existente.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#opt&quot;&gt;Opțiuni de boot&lt;/a&gt;: Opțiunile de boot pot modifica complet comportamentul sistemului dvs. Sunt setări pentru kernel.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Ajutor&lt;/a&gt;: Acesta este sensibil la context. Va afișa diverse ecrane în funcție de elementul activ din ecranul de boot. Există de asemenea o descriere a acestui sistem de ajutor.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Setează limba și aranjamentul de tastatură utilizate de bootloader.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Modul Video&lt;/a&gt;: Aici puteți alege rezoluția ecranului la instalare. Dacă apar probleme la instalarea grafică, o soluție de moment poate fi &lt;em&gt;mod text&lt;/em&gt;.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Sursa instalării&lt;/a&gt;: Alegeți sursa de instalare.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Actualizări drivere&lt;/a&gt;: În cazul computerelor foarte noi, pentru instalarea sistemului poate fi necesară o actualizare de drivere.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallromainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;Selecție tip software&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Puteți alege între versiunea pe 32 de biți și 64 de biți a @@@product@@@.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallromaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;Actualizare driver&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;h3&gt;&lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;&lt;/h3&gt; Dacă aveţi nevoie de o dischetă sau un CD-ROM de actualizare a driverelor, apăsați &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. Bootloader-ul vă va cere să introduceți mediul de actualizare după încărcarea kernelului Linux.&lt;/p&gt;
++
++&lt;p&gt;O actualizare de driver este în mod normal o dischetă cu versiuni noi ale driverelor hardware sau corecturi de erori necesare în timpul instalării.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallromainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;Instalare -- Setări sigure&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Selectați &lt;em&gt;Instalare -- Setări sigure&lt;/em&gt; dacă sistemul se blochează la instalare sau dacă apar erori ce nu se pot reproduce. Această opțiune deactivează DMA pentru unitățile IDE și toate funcționalitățile de gestiune a alimentării. Vedeți și opțiunile kernel pentru &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;, &lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; și &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallromainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;Test firmware&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Starts a BIOS checker that validates the ACPI tables
++and many other parts of your BIOS.
++Test results can be stored on usb disk or saved via network.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallromainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,16 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;Pornește de pe hard disc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Bootează sistemul de operare instalat&lt;/em&gt; to start the system installed on
++your local hard disk. This system must be installed properly, because
++only the MBR (Master Boot Record) on the first hard disk is started.
++The device ID of the first hard disk is provided by the BIOS of
++the computer.
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this if you forgot to remove the CD or DVD from your
++drive and want to start the computer from the hard disk.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallromainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Utilzarea sistemului de ajutor&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Săgeată în sus&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Săgeată în jos&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Săgeată stânga&lt;/em&gt;, &lt;em&gt;Inapoi&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Săgeată dreapta&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Spațiu&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Pagină sus&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Pagină jos&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Acasă&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Sfârșit&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallromaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;Sursă de instalare&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; to choose an installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++This is the same as using the &lt;a href=&quot;#o_install&quot;&gt;instalează&lt;/a&gt;
++boot option.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallromainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Selecție limbă și mapare tastatură&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallromainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;Instalare&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Instalare&lt;/em&gt; to start the default installation. The
++&lt;a href=&quot;#opt&quot;&gt;opțiuni de boot&lt;/a&gt; entered are used in the
++start-up. This item activates many features of commonly available
++hardware.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallromainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;Test de memorie&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The included &lt;em&gt;Test de memorie&lt;/em&gt; provides good possibilities to
++stress test the hardware of a system. Its main purpose is to detect
++broken RAM, but it also stresses many other parts of the system.
++&lt;/p&gt;
++
++&lt;p&gt;
++There is no guarantee that the memory is good if no errors are
++found, although most of memory defects will be found.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallromainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,24 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;Instalare -- ACPI deactivat&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Current hardware usually requires ACPI (Advanced Configuration and Power Interface)
++to control the interrupt handling.
++ACPI completely replaces the old APM system.
++&lt;/p&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Instalare -- ACPI deactivat&lt;/em&gt; if you encounter
++problems during boot of the kernel. Known problems with machines that
++have problems with ACPI are:
++&lt;ul&gt;
++ &lt;li&gt;kernel freezes when booting&lt;/li&gt;
++ &lt;li&gt;PCI Cards are not detected or initialized properly&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++You may also try the &lt;a href=&quot;#firmware&quot;&gt;Test firmware&lt;/a&gt; boot option
++and look at the test results of the ACPI validation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallromainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;Instalare -- APIC local dezactivat&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Normally there are no problems with the APIC (Advanced Programmable Interrupt
++Controller). But if you seem to have some, try this option to boot
++without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++Please don't confuse this with &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt;
++(Advanced Configuration and Power Interface).
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallromainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,28 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Opțiuni de boot&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++There are two types of boot options available. First, there are
++options that affect the installer. Second, there are kernel
++options. Some of the more common options are:
++&lt;/p&gt;
++
++&lt;p&gt;
++a) installer options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;instalează&lt;/a&gt; -- select an installation source&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#network&quot;&gt;opțiuni rețea&lt;/a&gt; -- the network options&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;opțiuni vnc&lt;/a&gt; -- options for installation via VNC&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++b) kernel options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallromainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;Opțiuni instalare: Opțiuni rețea&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++It is possible to configure the network interface right now. The
++hardware will be detected later by YaST2. The minimum set of options
++to configure your network card consists of host IP and netmask. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++or in a shorter form:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++If you specified a &lt;a href=&quot;#o_install&quot;&gt;instalare bazată pe rețea&lt;/a&gt; and do
++not specify both of these options, the installer tries to configure
++the network interface with &lt;em&gt;dhcp&lt;/em&gt;. If you need a default
++gateway, specify this with the option &lt;em&gt;gateway&lt;/em&gt;. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;gateway=192.168.0.8&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallromainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Opțiuni kernel: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallromainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Opțiuni kernel: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallromainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Opțiuni kernel: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallromainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,30 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;Opțiuni instalare: instalează&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++By default, the local CD-ROMs are searched for the installation source.
++For a network install, select the
++&lt;em&gt;instalează&lt;/em&gt; option. Possible installation protocols are
++&lt;ul&gt;
++ &lt;li&gt;FTP&lt;/li&gt;
++ &lt;li&gt;NFS&lt;/li&gt;
++ &lt;li&gt;HTTP&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The syntax to use is just like standard URLs. For example,
++if your server is found at 192.168.0.1 and you want to do an NFS-based
++install from the directory /install on this server, specify
++the source as follows:
++&lt;ul&gt;
++ &lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The network card will either be configured with &lt;em&gt;dhcp&lt;/em&gt; or you
++must specify the parameters yourself as described in the
++&lt;a href=&quot;#network&quot;&gt;opțiuni rețea&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallromainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Opțiuni kernel: splash (ecran de pornire)&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallromainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;Opțiuni instalare: vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++To enable the VNC installation, specify the
++parameters vnc and vncpassword:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;vnc=1 vncpassword=example&lt;/em&gt;&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The VNC server will be started and you may control YaST2 over any VNC
++client from a remote system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallromainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;Sistem de salvare&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The &lt;em&gt;Sistem de salvare&lt;/em&gt; is a small RAM disk base system. From there,
++it is possible to make all kinds of changes to an installed system. Because
++only low-level tools are available in this system, it is intended for
++experts.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallromainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;Selecție mod video&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; to get the list of video modes your graphics card
++supports. The highest mode your monitor can display is preselected.
++&lt;/p&gt;
++
++&lt;p&gt;
++It is possible that your monitor cannot be detected automatically. In that
++case, select your preferred mode manually.
++&lt;/p&gt;
++
++&lt;p&gt;
++If your system has problems with the graphics card during the
++installation, the &lt;em&gt;mod text&lt;/em&gt; may be a usable work-around.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallronavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Înapoi la &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallrumainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;Справка загрузчика&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Добро пожаловать &lt;em&gt;@@@product@@@&lt;/em&gt;&lt;/p&gt;
++
++&lt;p&gt;Используйте это меню для выбора необходимой функции. Если у вас проблемы с управлением в данной системе помощи, нажмите&lt;em&gt;@@@fkey_help@@@&lt;/em&gt; чтобы войти в &lt;a href=&quot;#help&quot;&gt;описание&lt;/a&gt; системы помощи. Главные функции в этом меню:&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#harddisk&quot;&gt;Загрузка с жёсткого диска&lt;/a&gt;: Этот выбор ничего ничего не сделает с системой. Просто будет запущена ранне установленная система.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#linux&quot;&gt;Установка&lt;/a&gt;: Этот режим установки работает на большинстве компьютеров. Если у вас зависает система при загрузке или у вас проблемы с обнаружением аппаратных средств, таких как контроллеры диска или сетевые платы, попробуйте одну из следующих установочных параметров.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#noacpi&quot;&gt;Установка - ACPI выключено&lt;/a&gt;: Многие проданные компьюетры имеют неполную или неверную реализацию ACPI. Этот выбор отключает поддержку ACPI в ядре, однако многие особенности влияющие на быстродействие все равно включены, напримерe DMA для IDE жестких дисков.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#nolapic&quot;&gt;Установка - локальный APIC выключен&lt;/a&gt;: Если обычная установка не получается, возможно ваше оборудование не поддерживает APIC. Если это так, используйте этот параметр для установки без поддержки APIC.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#failsafe&quot;&gt;Установка - безопасные параметры настройки&lt;/a&gt;: Если у вас не получается с &lt;em&gt;Установка&lt;/em&gt;, этот выбор может помочь вам.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#rescue&quot;&gt;Спасательная система&lt;/a&gt;: Этот загрузочный образ запускает маленькую Linux систмеу в RAM. Это полезно если ваша система запускает не правильно. После загрузки этой системы, войдите как root.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#firmware&quot;&gt;Проверка программно-аппаратных средств&lt;/a&gt;: Запускает инструмент проверки BIOS, который проверяет ACPI и другие части вашего BIOS.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#memtest&quot;&gt;Тест памяти&lt;/a&gt;: Тест памяти более полезней, чем просто проверка новых модулей памяти. Это стрессовая проверка большей части вашей компьютерной системы и может выявить проблемы в оборудовании.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#opt&quot;&gt;Параметры загрузки&lt;/a&gt;: Параметры загрузки могут полностью изменять поведение вашей системы. Это настройки ядра.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Help&lt;/a&gt;: Зависит от содержания. Будут показаны разные экраны в зависимости от активного элемента экрана загрузки. Также есть описание этой системы помощи.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Установить язык и раскладку клавиатуры используемые загрузчиком.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Видео режим&lt;/a&gt;: Выберите необходимое разрешение экрана, используемое при установке. Если у вас есть проблемы с графической установкой, &lt;em&gt;текстовый режим&lt;/em&gt; может быть поможет вам.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Источник установки&lt;/a&gt;: Выберите источник установки.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Драйвер обновления&lt;/a&gt;: Для очень новых машин, системе может понадобиться Драйвер обновления.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallrumainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;Выбор типа программного обеспечения&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Вы должны выбрать, устанавливать 32-разрядную или 64-разрядную версию @@@product@@@.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallrumaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;Обновление драйвера&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Если вам необходима дискета или CD-ROM с драйвером обновления, нажмите &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. Загрузчик попросит вас вставить носитель драйвера обновления после загрузки ядра Linux.&lt;/p&gt;
++
++&lt;p&gt;Драйвер обновления это обычно дискета с новыми версиями драйверов оборудования или исправлениями ошибок необходимыми во время установки.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallrumainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;Установка - безопасные параметры настройки&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Выберите &lt;em&gt;Установка - безопасные параметры настройки&lt;/em&gt; если у вас подвисает система при установке или возникают непонятные ошибки. Этот параметр отключает DMA для IDE устройств и все особенности управления питанием. Смотри также параметры ядра &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;, &lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; и &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallrumainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;Проверка программно-аппаратных средств&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Запускает проверку BIOS на совместимость с ACPI и другими частями вашего BIOS. Результат проверки можно сохранить на usb диске или по сети.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallrumainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;Загрузка с жёсткого диска&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Выберите &lt;em&gt;Загрузить установленную ОС&lt;/em&gt; чтобы запустить систему установленную на вашем жестком диске. Эта система должна быть установлена, так как стартует только MBR (Главная загрузочная запись) первого жесткого диска. ID устрайства перевого жесткого диска предоставляет BIOS компьютера.&lt;/p&gt;
++
++&lt;p&gt;Используйте это, если вы забыли вытащить CD или DVD из дисковода и вы хотите запуститькомпьютер с жесткого диска.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallrumainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Использование системы помощи&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ОнЛайновая справка загрузчика зависит от содержания. Она дает информацию по выбранному элементу меню или, если вы редактируете параметр загрузки, она пытается найти информацию о параметре на котором стоит курсор.&lt;/p&gt;
++
++&lt;p&gt;Кнопки управления &lt;ul&gt;&lt;li&gt;&lt;em&gt;Стрелка вверх&lt;/em&gt;: выделяет предыдущую ссылку&lt;/li&gt;&lt;li&gt;&lt;em&gt;Стрелка вниз&lt;/em&gt;: выделяет следующую ссылку&lt;/li&gt;&lt;li&gt;&lt;em&gt;Стрелка влево&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: вернуться к предыдущей главе&lt;/li&gt;&lt;li&gt;&lt;em&gt;Стрелка вправо&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Пробел&lt;/em&gt;: перейти по ссылке&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: пролистать назад одну страницу&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: пролистать вперед одну страницу&lt;/li&gt;&lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: перейти к началу страницы&lt;/li&gt;&lt;li&gt;&lt;em&gt;End&lt;/em&gt;: перейти к концу с
+ траницы&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: выйти из помощи&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallrumaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;Источник установки&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Нажмите &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; чтобы выбрать источник установки.&lt;/p&gt;
++
++&lt;p&gt;Это тоже самое, если использовать параметр загрузки &lt;a href=&quot;#o_install&quot;&gt;установить&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallrumainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Выбор языка и раскладки клавиатуры&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Нажмите &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; чтобы изменить язык и раскладку клавиатуры которую использует загрузчик.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallrumainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;Установка&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Выберите &lt;em&gt;Установка&lt;/em&gt; чтобы начать установку по умолчанию. Указанный &lt;a href=&quot;#opt&quot;&gt;параметры загрузки&lt;/a&gt;, будет использоваться при запуске. Этот пункт активирует многие общие особенности доступного оборудования.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallrumainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;Тест памяти&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Включенный параметр &lt;em&gt;Тест памяти&lt;/em&gt; предоставляет хорошую возможность для стрессового теста оборудования системы. Главная цель обнаружить неисправные RAM, но кроме этого происходит нагрузка остальных частей системы.&lt;/p&gt;
++
++&lt;p&gt;Если не обнаружено ошибок, нет гарантии, что память хорошая, однако большинство дефектов памяти были бы обнаружены.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallrumainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;Установка - ACPI выключено&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Современное оборудование, обычно использует APIC (Усовершенствованный интерфейс конфигурирования системы и управления энергопитанием) для управления прерываниями. ACPI полностью заменяет старую APM систему.&lt;/p&gt;
++
++&lt;p&gt;Выберите &lt;em&gt;Установка - ACPI выключено&lt;/em&gt; если есть проблемы с ядром во время загрузки. Известные проблемы с машинами, которые имеют проблемы с AC: &lt;ul&gt;&lt;li&gt;ядро приостанавливается при загрузке&lt;/li&gt;&lt;li&gt;PCI платы не обнаружены или неверно инициализированы&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Вы можете попробовать использовать &lt;a href=&quot;#firmware&quot;&gt;Проверка программно-аппаратных средств&lt;/a&gt; параметр загрузки и посмотреть результат проверки ACPI.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallrumainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;Установка - локальный APIC выключен&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Обычно не возникают проблемы с APIC (Усовершенствованный интерфейс конфигурирования системы и управления энергопитанием). Но если вы обнаружили некоторые, попробуйте этот параметр для загрузки без поддержки APIC.&lt;/p&gt;
++
++&lt;p&gt;Не путайте это с &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt; (Усовершенствованный интерфейс конфигурирования системы и управления энергопитанием).&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallrumainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Параметры загрузки&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Есть два типа параметров загрузки. Во первых, это параметры, которые влияют на установщик. Во вторых, это параметры ядра. Некоторые из наиболее распостранных параметров:&lt;/p&gt;
++
++&lt;p&gt;a) параметры установки &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;установить&lt;/a&gt; -- выберите источник установки&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#network&quot;&gt;параметры сети&lt;/a&gt; -- сетевые параметры&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;параметры vnc&lt;/a&gt; -- параметры для установки через VNC&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;b) параметры язра &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;заставка&lt;/a&gt; -- влияет на поведение заставки&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- переключает управление питанием&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- усовершенствованный интерфейс конфигурирования системы и управления энергопитанием&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- управляет IDE подсистемой&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallrumainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,13 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;Параметры установки: Параметры сети&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Можно настроить сетевой интерфейс прямо сейчас. Оборудование будет определено позже YaST2. Минимальный набор параметров вашей сетевой карты состоит из IP адреса узла и сетвой маски. Для примера: &lt;ul&gt;&lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;или в коротком виде: &lt;ul&gt;&lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Если вы указали &lt;a href=&quot;#o_install&quot;&gt;сетевая установка&lt;/a&gt; и не указали оба эти параметра, установщик попытается настроить сетевой интерфейс с &lt;em&gt;dhcp&lt;/em&gt;. Если вам необходим шлюз по умолчанию, укажите это с параметром &lt;em&gt;шлюз&lt;/em&gt;. Например: &lt;ul&gt;&lt;li&gt;gateway=192.168.0.8&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallrumainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Параметры ядра: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI (Усовершенствованный интерфейс конфигурирования системы и управления энергопитанием) эвляется стандартом которые определяет интерфейс управления питанием и конфигурацией между операционной системой и BIOS. По умолчанию, &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- не использовать ACPI для управления PCI прерываниями&lt;/li&gt; включен, если определяется, что версия BIOS датирована позднее чем 2000 г. Есть несколько общих параметров для управления поведением ACPI: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- не использовать ACPI для управления PCI прерываниями&lt;/li&gt;&lt;li&gt;&lt;em&g
+ t;acpi=oldboot&lt;/em&gt; -- только часть ACPI которая относиться к загрузке, остается активной&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- полностью выключает ACPI&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- включает ACPI даже если ваш BIOS датирован ранее чем 2000&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Особенно на новых компьютерах, заменяет старый &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; системы.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallrumainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Параметры ядра: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM это одна из двух стратегий управлений питанием используемых в настоящее время в компьютерах. Она в основном используется в лаптопах для функций таких как остановка диска, но она также может использоваться для отключения компьютера во время отключения питания. APM завист от правильной работы BIOS. Если BIOS не исправен, APM ограничено в применении или запретит работу компьютера. Однако, она может быть отключена со следующим параметром &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- полностью выключает APM&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Только некоторые очень новые компьютеры имеют преимущество перед другими &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallrumainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Параметры ядра: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;IDE, в отличии от SCSI, обычно используется в большинстве рабочих станциях. Чтобы предотвратить некоторые проблемы с оборудованием которое случается с IDE системами, используйте параметр ядра: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- выключить DMA для IDE дисков&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallrumainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;Параметры установки: install&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;По умолчанию, локальный CD-ROMы являются источником установки. Для сетевой установки, выберите параметр &lt;em&gt;установить&lt;/em&gt;. Возможные сетевые протоколы &lt;ul&gt;&lt;li&gt;FTP&lt;/li&gt;&lt;li&gt;NFS&lt;/li&gt;&lt;li&gt;HTTP&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Используемый синтакс это просто стандартынй URL. Дл примера, если ваш сервер находится по адресу 192.168.0.1 и вы хотите осуществить установку с NFS из каталога /install на этом сервере, укажите источник в следующем виде: &lt;ul&gt;&lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Сетевая карта будет настроена с &lt;em&gt;dhcp&lt;/em&gt; или вы сами должны указать параметры как описано в &lt;a href=&quot;#network&quot;&gt;параметры сети&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallrumainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Параметры ядра: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Заставка это картинка показываемая во время загрузки системы. &lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- Заставка отключена. Это может быть полезным со очень старыми мониторами или когда надо видеть ошибки на экране.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Активирует заставку, сообщения загрузки и ядра попрежнему показываны.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; --Активирует заставку, но без сообщений. Однако будет показ процесс выполнения.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallrumainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;Параметры установки: vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Чтобы разрешить VNC установку, укажите параметр vnc и vncpassword: &lt;ul&gt;&lt;li&gt;&lt;em&gt;vnc=1 vncpassword=example&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;VNC сервер будет запущен и вы сможеть управлять YaST2 через любой VNC клиент с удаленной системы.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallrumainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;Спасательная система&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;Спасательная система&lt;/em&gt; это маленькая базовая система в ОЗУ. Из нее возможно сделать различные изменения в установленной системе. Так как здесь доступны только низко-уровневые утилиты, она предназначена только для специалистов.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallrumainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;Выбор видео режима&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Нажмите &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; чтобы получить список видео режимов которые поддерживает ваша видео-карточка. Наилучший режим вашего монитора может быть уже выбран.&lt;/p&gt;
++
++&lt;p&gt;Возможно что ваш монитор не будет опреден автоматически. В этом случае, выберите ваш желаемый режим вручную.&lt;/p&gt;
++
++&lt;p&gt;Если ваша система имеет проблемы с графической картой во время установки, в этом случае может быть полезным &lt;em&gt;текстовый режим&lt;/em&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallrunavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Возврат к &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallskmainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,103 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;Pomocník pre správcu štartu&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Welcome to &lt;em&gt;@@@product@@@&lt;/em&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this menu to select the desired function. If you have
++problems navigating in this help system, press
++&lt;em&gt;@@@fkey_help@@@&lt;/em&gt; to enter the &lt;a href=&quot;#help&quot;&gt;Popis&lt;/a&gt; of the help
++system. The main functions in this menu are:
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#harddisk&quot;&gt;Spustiť systém z pevného disku&lt;/a&gt;: This selection will not do
++anything to the system. It only starts a previously installed
++operating system.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#linux&quot;&gt;Inštalácia&lt;/a&gt;:
++This installation mode works on most machines. If you experience a
++system freeze during boot or problems with detection of your hardware
++components, such as disk controllers or network cards, try one of the
++following installation options.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#noacpi&quot;&gt;Inštalácia - bez ACPI&lt;/a&gt;: Many of the
++currently-sold computers have incomplete or faulty ACPI
++implementations. This selection disables ACPI support in the
++kernel, but still enables many performance features, like DMA for IDE
++hard disks.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#nolapic&quot;&gt;Inštalácia - bez lokálneho APIC&lt;/a&gt;:
++If the normal installation fails, this might be due to the
++system hardware not supporting local APIC.
++If this seems to be the case, use this option to
++install without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#failsafe&quot;&gt;Inštalácia -- Záchranný režim&lt;/a&gt;: If you were not
++successful with &lt;em&gt;Inštalácia&lt;/em&gt;, this selection might
++solve the issue.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#rescue&quot;&gt;Záchranný systém&lt;/a&gt;: This boot image starts a small
++Linux system in RAM. This is useful if the system does not start properly.
++After booting this system, log in as root.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#firmware&quot;&gt;Test firmvéru&lt;/a&gt;: Runs a BIOS test tool that validates
++ACPI and other parts of your BIOS.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#memtest&quot;&gt;Test pamäte&lt;/a&gt;: Memory testing is useful for more than
++checking installation of new memory modules. It is a stress test
++for a big part of your computer system and may indicate hardware
++problems.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#opt&quot;&gt;Možnosti štartu&lt;/a&gt;: The boot options may change the
++behavior of your system completely. They are settings for
++the kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Help&lt;/a&gt;: This is context sensitive. It will
++show different screens depending on the active element of the
++boot screen. There is also a description of this help system
++available.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Set language and keyboard mapping
++used by the boot loader.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Video Mode&lt;/a&gt;: Here, choose between
++different screen resolutions while installing. If you encounter
++problems with the graphical installation, the &lt;em&gt;Textový režim&lt;/em&gt; may
++be a work-around for you.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Installation Source&lt;/a&gt;: Choose the
++installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Driver Update&lt;/a&gt;: For very new machines, a
++driver update may be needed to install the system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallskmainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;Výber typu sofvéru&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++You have the choice to install the 32-bit or 64-bit version of @@@product@@@.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallskmaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;Aktualizácia ovládačov&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++If you need a driver update floppy or CD-ROM, press &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. The
++boot loader asks you to insert the driver update medium after
++loading the Linux kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++A driver update is typically a floppy with new versions of hardware
++drivers or bug fixes needed during installation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallskmainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,11 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;Inštalácia -- Záchranný režim&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Inštalácia -- Záchranný režim&lt;/em&gt; if you encounter hangs
++while installing or irreproducible errors. This option disables DMA
++for IDE drives and all power management features.
++See also the kernel options for &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;,
++&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; and &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallskmainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;Test firmvéru&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Starts a BIOS checker that validates the ACPI tables
++and many other parts of your BIOS.
++Test results can be stored on usb disk or saved via network.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallskmainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,16 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;Spustiť systém z pevného disku&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Štartovať nainštalovaný systém&lt;/em&gt; to start the system installed on
++your local hard disk. This system must be installed properly, because
++only the MBR (Master Boot Record) on the first hard disk is started.
++The device ID of the first hard disk is provided by the BIOS of
++the computer.
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this if you forgot to remove the CD or DVD from your
++drive and want to start the computer from the hard disk.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallskmainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Ako používať tohto pomocníka&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Šipka hore&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Šipka dolu&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Šipka vľavo&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Šipka vpravo&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Medzerník&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;kláves Page Up&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;kláves Page Down&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Domov&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;kláves End&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallskmaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;Inštalačný zdroj&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; to choose an installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++This is the same as using the &lt;a href=&quot;#o_install&quot;&gt;inštalovať&lt;/a&gt;
++boot option.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallskmainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Voľba jazyka a klávesnice&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallskmainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;Inštalácia&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Inštalácia&lt;/em&gt; to start the default installation. The
++&lt;a href=&quot;#opt&quot;&gt;Možnosti štartu&lt;/a&gt; entered are used in the
++start-up. This item activates many features of commonly available
++hardware.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallskmainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;Test pamäte&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The included &lt;em&gt;Test pamäte&lt;/em&gt; provides good possibilities to
++stress test the hardware of a system. Its main purpose is to detect
++broken RAM, but it also stresses many other parts of the system.
++&lt;/p&gt;
++
++&lt;p&gt;
++There is no guarantee that the memory is good if no errors are
++found, although most of memory defects will be found.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallskmainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,24 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;Inštalácia - bez ACPI&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Current hardware usually requires ACPI (Advanced Configuration and Power Interface)
++to control the interrupt handling.
++ACPI completely replaces the old APM system.
++&lt;/p&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Inštalácia - bez ACPI&lt;/em&gt; if you encounter
++problems during boot of the kernel. Known problems with machines that
++have problems with ACPI are:
++&lt;ul&gt;
++ &lt;li&gt;kernel freezes when booting&lt;/li&gt;
++ &lt;li&gt;PCI Cards are not detected or initialized properly&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++You may also try the &lt;a href=&quot;#firmware&quot;&gt;Test firmvéru&lt;/a&gt; boot option
++and look at the test results of the ACPI validation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallskmainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;Inštalácia - bez lokálneho APIC&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Normally there are no problems with the APIC (Advanced Programmable Interrupt
++Controller). But if you seem to have some, try this option to boot
++without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++Please don't confuse this with &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt;
++(Advanced Configuration and Power Interface).
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallskmainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,28 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Možnosti štartu&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++There are two types of boot options available. First, there are
++options that affect the installer. Second, there are kernel
++options. Some of the more common options are:
++&lt;/p&gt;
++
++&lt;p&gt;
++a) installer options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;inštalovať&lt;/a&gt; -- select an installation source&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#network&quot;&gt;voľby siete&lt;/a&gt; -- the network options&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;Voľby vnc&lt;/a&gt; -- options for installation via VNC&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++b) kernel options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;úvodná obrazovka&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallskmainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;Inštalačné možnosti: Sieťové voľby&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++It is possible to configure the network interface right now. The
++hardware will be detected later by YaST2. The minimum set of options
++to configure your network card consists of host IP and netmask. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++or in a shorter form:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++If you specified a &lt;a href=&quot;#o_install&quot;&gt;inštalácia po sieti&lt;/a&gt; and do
++not specify both of these options, the installer tries to configure
++the network interface with &lt;em&gt;dhcp&lt;/em&gt;. If you need a default
++gateway, specify this with the option &lt;em&gt;brána&lt;/em&gt;. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;gateway=192.168.0.8&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallskmainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Voľba jadra: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallskmainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Voľba jadra: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallskmainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Voľba jadra: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallskmainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,30 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;Voľba inštalácie: instalácia&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++By default, the local CD-ROMs are searched for the installation source.
++For a network install, select the
++&lt;em&gt;inštalovať&lt;/em&gt; option. Possible installation protocols are
++&lt;ul&gt;
++ &lt;li&gt;FTP&lt;/li&gt;
++ &lt;li&gt;NFS&lt;/li&gt;
++ &lt;li&gt;HTTP&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The syntax to use is just like standard URLs. For example,
++if your server is found at 192.168.0.1 and you want to do an NFS-based
++install from the directory /install on this server, specify
++the source as follows:
++&lt;ul&gt;
++ &lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The network card will either be configured with &lt;em&gt;dhcp&lt;/em&gt; or you
++must specify the parameters yourself as described in the
++&lt;a href=&quot;#network&quot;&gt;voľby siete&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallskmainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Voľby jadra: úvodná obrazovka&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallskmainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;Voľba inštalácie: vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++To enable the VNC installation, specify the
++parameters vnc and vncpassword:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;vnc=1 vncpassword=mojeheslo&lt;/em&gt;&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The VNC server will be started and you may control YaST2 over any VNC
++client from a remote system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallskmainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;Záchranný systém&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The &lt;em&gt;Záchranný systém&lt;/em&gt; is a small RAM disk base system. From there,
++it is possible to make all kinds of changes to an installed system. Because
++only low-level tools are available in this system, it is intended for
++experts.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallskmainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;Voľba zobrazovacieho režimu&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; to get the list of video modes your graphics card
++supports. The highest mode your monitor can display is preselected.
++&lt;/p&gt;
++
++&lt;p&gt;
++It is possible that your monitor cannot be detected automatically. In that
++case, select your preferred mode manually.
++&lt;/p&gt;
++
++&lt;p&gt;
++If your system has problems with the graphics card during the
++installation, the &lt;em&gt;Textový režim&lt;/em&gt; may be a usable work-around.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallsknavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,3 @@
++&lt;p&gt;
++Return to &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallsvmainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;Hjälp om starthanterare&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Välkommen till &lt;em&gt;@@@product@@@&lt;/em&gt;&lt;/p&gt;
++
++&lt;p&gt;Välj önskad funktion på menyn. Om du har problem med att navigera i hjälpsystemet trycker du på &lt;em&gt;@@@fkey_help@@@&lt;/em&gt; och går till &lt;a href=&quot;#help&quot;&gt;beskrivning&lt;/a&gt; i hjälpsystemet. Menyns huvudfunktioner är: &lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#harddisk&quot;&gt;Starta från hårddisk&lt;/a&gt;: Det här valet kommer inte att göra något med systemet. Det startar endast ett tidigare installerat operativsystem.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#linux&quot;&gt;Installation&lt;/a&gt;: Det här installationsläget fungerar på de flesta datorer. Om du upplever att systemet låser sig under start eller problem med identifiering av hårdvarukomponenter, som t ex diskstyrenheter eller nätverkskort, försök med något av följande installationsalternativ.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#noacpi&quot;&gt;Installation - ACPI inaktiverat&lt;/a&gt;: Många av de datorer som säljs för tillfället har en ofullständig eller felaktig implementering av ACPI. Det här valet inaktiverar ACPI-stöd i kärnan, men aktiverar många prestandafunktioner, t ex DMA för IDE-hårddiskar.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#nolapic&quot;&gt;Installation - Lokal APIC inaktiverat&lt;/a&gt;: Om den vanliga installationen misslyckas kan det bero på att systemmaskinvaran inte har stöd för lokal APIC. Om detta verkar vara fallet använder du det här alternativet och installerar utan stöd för lokal APIC.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#failsafe&quot;&gt;Installation - Säkra inställningar&lt;/a&gt;: Om du inte lyckades med &lt;em&gt;Installation&lt;/em&gt;, kan det här valet kanske lösa problemet.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#rescue&quot;&gt;Räddningssystem&lt;/a&gt;: Den här startavbilden startar ett litet Linux-system i RAM. Det här är användbart om systemet inte startar ordentligt. Logga in som root när du har startat det här systemet.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#firmware&quot;&gt;Test av fast program&lt;/a&gt;: Kör en BIOS-test som kontrollerar ACPI och andra funktioner i ditt BIOS.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#memtest&quot;&gt;Minnestest&lt;/a&gt;: Minnestestning kan användas till mer än att kontrollera installationen av nya minnesmoduler. Det är ett stresstest för en stor del av datorsystemet och kan ge indikationer på eventuella maskinvaruproblem.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#opt&quot;&gt;Startalternativ&lt;/a&gt;: Startalternativen kan förändra datorns beteende. De är inställningar för kärnan.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Hjälp&lt;/a&gt;: Detta är skiftlägeskänsligt. Olika fönster visas beroende på vilket element som är aktivt på startskärmen. En beskrivning av hjälpsystemet finns tillgänglig.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Ange det språk och den tangentbordsmappning som ska användas av starthanteraren.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Skärmläge&lt;/a&gt;: Här väljer du skärmupplösning under installationen. Om du stöter på problem med den grafiska installationen kanske &lt;em&gt;textläge&lt;/em&gt; fungerar bättre.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Installationskälla&lt;/a&gt;: Välj installationskälla.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Drivrutinsuppdatering&lt;/a&gt;: För väldigt nya datorer kan en drivrutinsuppdatering behövas för att installera systemet.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallsvmainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;Val av mjukvarutyp&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Du kan välja att installera 32-bitars eller 64-bitars versionen av @@@product@@@.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallsvmaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;Drivrutinsuppdatering&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Om du behöver en diskett eller CD-ROM-skiva med drivrutinsuppdateringar trycker du på &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. När Linux-kärnan har lästs in uppmanas du av starthanteraren att sätta in mediet med drivrutinsuppdateringen.&lt;/p&gt;
++
++&lt;p&gt;En drivrutinsuppdatering är vanligtvis en diskett med nya versioner av maskinvarudrivrutiner eller programkorrigeringar som behövs vid installationen.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallsvmainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;Installation - Säkra inställningar&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Välj &lt;em&gt;Installation - Säkra inställningar&lt;/em&gt; om systemet hänger under installationen eller om fel uppstår som inte går att återskapa. Med det här alternativet inaktiveras DMA för IDE-enheter och samtliga strömsparfunktioner. Se även kärnalternativen för &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;, &lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; och &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallsvmainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;Test av fast program&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Startar en BIOS-kontrollfunktion som validerar ACPI-tabellerna och många andra delar av BIOS. Testresultaten kan lagras på USB-enhet eller sparas via nätverk.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallsvmainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;Starta från hårddisk&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Välj &lt;em&gt;Starta installerat system&lt;/em&gt; om du vill starta det system som finns installerat på den lokala hårddisken. Systemet måste vara korrekt installerat eftersom endast MBR (Master Boot Record) på den första hårddisken startas. Den första hårddiskens enhets-ID tillhandahålls av datorns BIOS.&lt;/p&gt;
++
++&lt;p&gt;Använd det här om du glömde att ta ur cd:n eller dvd:n från enheten och vill starta datorn från hårddisken.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallsvmainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Att använda hjälpsystemet&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Direkthjälpen för starthanteraren är sammanhangskänslig. Den innehåller information om det valda menyalternativet eller, om du redigerar startalternativ, söker efter information om det alternativ där markören befinner sig.&lt;/p&gt;
++
++&lt;p&gt;Navigationstangenter &lt;ul&gt;&lt;li&gt;&lt;em&gt;Uppåtpil&lt;/em&gt;: färglägg föregående länk&lt;/li&gt;&lt;li&gt;&lt;em&gt;Neråtpil&lt;/em&gt;: färglägg nästa länk&lt;/li&gt;&lt;li&gt;&lt;em&gt;Vänsterpil&lt;/em&gt;, &lt;em&gt;Backsteg&lt;/em&gt;: återgå till föregående ämne&lt;/li&gt;&lt;li&gt;&lt;em&gt;Högerpil&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Mellanslag&lt;/em&gt;: följ länk&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: rulla upp en sida&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: rulla ner en sida&lt;/li&gt;&lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: gå till sidstart&lt;/li&gt;&lt;li&gt;&lt;em&gt;End&lt;/em&gt;: gå till sidslut&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: lämna hjälpen&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallsvmaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;Installationskälla&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Tryck &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; för att välja en installationskälla.&lt;/p&gt;
++
++&lt;p&gt;Detta har samma funktion som att använda startalternativet &lt;a href=&quot;#o_install&quot;&gt;installera&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallsvmainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Val av språk och tangentbordslayout&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Tryck på &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; för att ändra språket och tangentbordslayouten som starthanteraren ska använda.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallsvmainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;Installation&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Välj &lt;em&gt;Installation&lt;/em&gt; om du vill starta standardinstallationen. Angiven &lt;a href=&quot;#opt&quot;&gt;startalternativ&lt;/a&gt; används i startprocessen. Den här posten aktiverar många funktioner på vanlig maskinvara.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallsvmainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;Minnestest&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Den medföljande &lt;em&gt;Minnestest&lt;/em&gt; ger goda möjligheter att stresstesta systemets maskinvara. Huvudsyftet är att upptäcka skadat RAM-minne, men även många andra delar av systemet testas.&lt;/p&gt;
++
++&lt;p&gt;Att inga fel hittas är ingen garanti för att minnet fungerar, även om de flesta typer av minnesfel kan hittas.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallsvmainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;Installation - ACPI inaktiverat&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;För den aktuella maskinvaran krävs vanligtvis ACPI (Advanced Configuration and Power Interface) för styrning av avbrottshanteringen. ACPI ersätter det tidigare APM-systemet fullt ut.&lt;/p&gt;
++
++&lt;p&gt;Välj &lt;em&gt;Installation - ACPI inaktiverat&lt;/em&gt; om du upplever problem under start av kärnan. Kända problem med datorer som har problem med ACPI är: &lt;ul&gt;&lt;li&gt;kärnan hänger sig vid start&lt;/li&gt;&lt;li&gt;PCI-kort identifieras eller initieras inte ordentligt&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Du kan också prova startalternativet &lt;a href=&quot;#firmware&quot;&gt;Test av fast program&lt;/a&gt; och se testresultaten av ACPI-kontrollen.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallsvmainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;Installation - Lokal APIC inaktiverat&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Normalt är det inga problem med APIC (Advanced Programmable Interrupt Controller). Om det ändå skulle uppstå problem kan du pröva det här alternativet för start utan lokalt APIC-stöd.&lt;/p&gt;
++
++&lt;p&gt;Förväxla inte detta med &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt; (Advanced Configuration and Power Interface).&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallsvmainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Startalternativ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Två typer av startalternativ finns tillgängliga. Alternativ som påverkar installationsprogrammet, samt kärnalternativ. Här är några av de vanligaste alternativen:&lt;/p&gt;
++
++&lt;p&gt;a) installationsalternativ &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;installera&lt;/a&gt; -- välj en installationskälla&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#network&quot;&gt;nätverksalternativ&lt;/a&gt; -- nätverksalternativen&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;vnc-alternativ&lt;/a&gt; -- alternativ för installation via VNC&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;b) kärnalternativ &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;startskärm&lt;/a&gt; -- påverka startskärmens uppträdande&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- hantera strömsparfunktioner&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- avancerat inställnings- och strömhanteringsgränssnitt&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- kontrollera IDE-undersystemet&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallsvmainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,13 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;Installationsalternativ: Nätverksalternativ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Det går att ställa in nätverksgränssnittet nu. Maskinvaran känns av senare av YaST2. Minimialternativen för inställning av nätverkskortet utgörs av värd-IP och nätmask. Exempel: &lt;ul&gt;&lt;li&gt;värd-ip=192.168.0.10 nätmask=255.255.255.0&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;eller i kortare form: &lt;ul&gt;&lt;li&gt;värd-ip=192.168.0.10/24&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Om du angav en &lt;a href=&quot;#o_install&quot;&gt;nätverksbaserad installation&lt;/a&gt; och inte anger båda de här alternativen, försöker installationsprogrammet ställa in nätverksgränssnittet med &lt;em&gt;dhcp&lt;/em&gt;. Om du behöver en standard-gateway anger du detta med alternativet &lt;em&gt;gateway&lt;/em&gt;. Exempel: &lt;ul&gt;&lt;li&gt;gateway=192.168.0.8&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallsvmainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Kärnalternativ: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI (Advanced Configuration and Power Interface) är en standard som definierar gränssnitt för ström- och inställningshantering mellan operativsystemet och BIOS. Som standard aktiveras &lt;em&gt;acpi&lt;/em&gt; när ett BIOS upptäcks som är tillverkat senare än år 2000. Det finns flera vanliga parametrar som styr ACPI:s beteende: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- använd inte ACPI för att hantera PCI-avbrott&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- enbart de funktioner i ACPI som är relavanta för uppstart är aktiverade&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=av&lt;/em&gt; -- stäng av ACPI helt&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=tvinga&lt;/em&gt; -- slå på ACPI även om ditt BIOS är tillverkat före 2000&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;På speciellt nya datorer ersätter den det gamla &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; systemet.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallsvmainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Kärnalternativ: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM är en av två strömsparstrategier som används på dagens datorer. Den används oftast på bärbara datorer för funktioner som vänteläge, men kan också hantera avstängning av datorn efter att strömbrytaren tryckts ned. För att APM ska fungera krävs en korrekt fungerande BIOS. Om BIOS är felaktig kanske APM endast har begränsade funktioner och den kan till och med hindra datorn från att fungera som den ska. Den kan därför stängas av med parametern &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=av&lt;/em&gt; -- stäng av APM helt&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;En del nya datorer kan dra större fördel av det senare &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallsvmainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Kärnalternativ: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Till skillnad mot SCSI används IDE på de flesta skrivbordsdatorer. För att kringgå vissa maskinvaruproblem som uppstår med IDE-system använder du följande kärnparameter: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- stäng av DMA för IDE-enheter&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallsvmainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;Installationsalternativ: installera&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Som standard söks de lokala CD-ROM-skivorna igenom efter installationskällan. För nätverksinstallation väljer du alternativet &lt;em&gt;installera&lt;/em&gt;. Möjliga installationsprotokoll är &lt;ul&gt;&lt;li&gt;FTP&lt;/li&gt;&lt;li&gt;NFS&lt;/li&gt;&lt;li&gt;HTTP&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Samma syntax som för vanliga URL:er används. Om servern t.ex. finns på 192.168.0.1 och du vill göra en NFS-baserad installation från katalogen /install på den servern, anger du källan enligt följande:&lt;ul&gt;&lt;li&gt;installera=nfs://192.168.0.1/install&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Antingen ställs nätverkskortet in med &lt;em&gt;dhcp&lt;/em&gt; eller så anger du själv inställningarna enligt anvisningarna i &lt;a href=&quot;#network&quot;&gt;nätverksalternativ&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallsvmainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Kärnalternativ: startskärm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Startskärmen är bilden som visas när systemet startar. &lt;ul&gt;&lt;li&gt;&lt;em&gt;startskärm=0&lt;/em&gt; -- Startskärmen stängs av. Detta kan vara praktiskt på äldre bildskärmar eller om fel uppstår.&lt;/li&gt;&lt;li&gt;&lt;em&gt;startskärm=utförlig&lt;/em&gt; -- Aktiverar startskärmar. Kärn- och startmeddelanden visas fortfarande.&lt;/li&gt;&lt;li&gt;&lt;em&gt;startskärm=tyst&lt;/em&gt; -- Aktiverar startskärm, men inga meddelanden. Istället visas ett fortskridandefält.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallsvmainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;Installationsalternativ: vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;För att aktivera VNC-installationen, ange parametrarna vnc och vncpassword: &lt;ul&gt;&lt;li&gt;&lt;em&gt;vnc=1 vnclösenord=exempel&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;VNC-servern kommer att startas och du kan styra YaST2 från en VNC-klient från ett fjärrsystem.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallsvmainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;Räddningssystem&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;Räddningssystem&lt;/em&gt; är ett litet RAM-diskbassystem. Därifrån går det att utföra alla typer av ändringar på ett installerat system. Eftersom endast verktyg på låg nivå finns tillgängliga i systemet är det avsett för experter.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallsvmainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;Val av videoläge&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Tryck på &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; om du vill se en lista med de skärmlägen som stöds av grafikkortet. Det högsta läge som stöds av bildskärmen är förvalt.&lt;/p&gt;
++
++&lt;p&gt;Det är möjligt att din bildskärm inte kan identifieras automatiskt. Om så är fallet, välj läget du föredrar manuellt.&lt;/p&gt;
++
++&lt;p&gt;Om systemet har problem med grafikkortet under installationen, kanske &lt;em&gt;textläge&lt;/em&gt; kan lösa problemet.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallsvnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Återgå till &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallukmainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;Довідка для завантажувача&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Ласкаво просимо до &lt;em&gt;@@@product@@@&lt;/em&gt;&lt;/p&gt;
++
++&lt;p&gt;Використовуйте це меню для вибирання бажаної функції. Якщо виникнуть проблеми з навігацією в цій системі довідки, натисніть &lt;em&gt;@@@fkey_help@@@&lt;/em&gt;, щоб увійти в &lt;a href=&quot;#help&quot;&gt;опис&lt;/a&gt; системи довідки. Головні функції цього меню:&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#harddisk&quot;&gt;Завантаження з жорсткого диска&lt;/a&gt;: Цей вибір нічого не зробить з системою. Він тільки запустить раніше встановлену операційну систему.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#linux&quot;&gt;Встановлення&lt;/a&gt;: Цей режим встановлення підходить для більшості машин. Якщо ваша система замерзає під час завантаження або має проблеми з виявленням компонентів вашого обладнання, таких як контролерів дисків або мережних плат, спробуйте один з наступних параметрів встановлення.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#noacpi&quot;&gt;Встановлення — ACPI вимкнено&lt;/a&gt;: Багато комп'ютерів мають неповні або неправильні впровадження ACPI. Ця секція вимикає підтримку ACPI в ядрі, однак уможливлює багато можливостей швидкодії, таких як DMA для жорстких дисків IDE.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#nolapic&quot;&gt;Встановлення — локальне APIC вимкнено&lt;/a&gt;: Якщо нормальне встановлення зазнає невдачі, то причиною може бути, що обладнання системи не підтримує локального APIC. Якщо це справді так, вживайте цей параметр для встановлення без підтримки APIC.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#failsafe&quot;&gt;Встановлення — безпечні параметри&lt;/a&gt;: Якщо у вас не вийшло з &lt;em&gt;Встановлення&lt;/em&gt;, цей вибір, можливо, вам допоможе.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#rescue&quot;&gt;Порятунок системи&lt;/a&gt;: Цей штамп завантаження запускає малу систему Linux в RAM. Це корисне, якщо система належно не запускається. Після завантаження цієї системи увійдіть в неї як root (адміністратор).&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#firmware&quot;&gt;Тест мікропрограмного забезпечення&lt;/a&gt;: Запускає засіб тестування BIOS, який перевіряє ACPI й інші частин вашого BIOS.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#memtest&quot;&gt;Тест пам'яті&lt;/a&gt;: Тестування пам'яті корисне не тільки для перевірки встановлення нових модулів пам'яті. Цей тест робить навантаження на значну частину вашої системи і може виявити проблеми з апаратним обладнанням.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#opt&quot;&gt;Параметри завантаження&lt;/a&gt;: Параметри завантаження можуть цілком змінити поведінку вашої системи. Це параметри для ядра.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Довідка&lt;/a&gt;: Залежить від контексту. Буде показувати різну інформацію залежно від активного елемента екрана завантаження. Також є і опис цієї системи довідки.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Вкажіть мову і розкладку клавіатури для завантажувача.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Режим відео&lt;/a&gt;: Тут можна вибрати різні роздільності екрана під час встановлення. Якщо ви зіткнетесь з проблемами під час графічного встановлення, то &lt;em&gt;текстовий режим&lt;/em&gt; може допомогти обійти ці проблеми.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Джерело встановлення&lt;/a&gt;: Виберіть джерело встановлення.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Оновлення драйверів&lt;/a&gt;: Для дуже нових комп'ютерів, щоб встановити систему, можливо, потрібне оновлення драйверів.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallukmainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;Вибір типу програмного забезпечення&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Ви можете вибрати і встановити або 32-бітову, або 64-бітову версію @@@product@@@.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallukmaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;Оновлення драйверів&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Якщо ви потребуєте вставити дискету або компакт-диск з оновленнями драйверів, натисніть &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. Завантажувач попросить вас вставити носій оновлення драйверів після завантаження ядра Linux.&lt;/p&gt;
++
++&lt;p&gt;Оновлення драйверів — це, зазвичай, дискета з новими версіями драйверів для обладнання чи з виправленнями помилок, які потрібні під час встановлення.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallukmainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;Встановлення — безпечні параметри&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Виберіть &lt;em&gt;Встановлення — безпечні параметри&lt;/em&gt;, якщо ви зазнаєте зависання під час встановлення або випадкові помилки. Цей параметр вимикає DMA для приводів IDE і всі функції керування живленням. Див. також про параметри ядра для &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;, &lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; і &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallukmainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;Тест мікропрограмного забезпечення&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Запускає тестування BIOS, яке перевіряє таблиці ACPI і багато інших частин вашого BIOS. Результати тестування можна зберігати на диску usb або через мережу.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallukmainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;Завантаження з жорсткого диска&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Виберіть &lt;em&gt;Завантажити встановлену ОС&lt;/em&gt;, щоб запустити систему встановлену на жорсткому диску. Ця система мусить бути правильно встановленою, тому що буде запущено тільки MBR (Master Boot Record) на першому жорсткому диску. Ідентифікатор пристрою першого жорсткого диска надається BIOS-ом комп'ютера.&lt;/p&gt;
++
++&lt;p&gt;Скористайтесь цим, якщо ви забули вийняти з вашого приводу компакт-диск або DVD й хочете запустити комп'ютер з жорсткого диска.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallukmainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Використання системи довідки&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Довідка завантажувача реагує на контекст. Вона надає інформацію про вибраний елемент меню або, якщо ви редагуєте параметри завантаження, вона намагається знайти інформацію про параметр, над яким знаходиться курсор.&lt;/p&gt;
++
++&lt;p&gt;Ключі навігації &lt;ul&gt;&lt;li&gt;&lt;em&gt;Стрілка вгору&lt;/em&gt;: підсвітити попереднє посилання&lt;/li&gt;&lt;li&gt;&lt;em&gt;Стрілка вниз&lt;/em&gt;: підсвітити наступне посилання&lt;/li&gt;&lt;li&gt;&lt;em&gt;Стрілка ліворуч&lt;/em&gt;, &lt;em&gt;Назад&lt;/em&gt;: повернутись до попередньої теми&lt;/li&gt;&lt;li&gt;&lt;em&gt;Стрілка праворуч&lt;/em&gt;, &lt;em&gt;Ввід (Enter)&lt;/em&gt;, &lt;em&gt;Пробіл&lt;/em&gt;: перейти за посиланням&lt;/li&gt;&lt;li&gt;&lt;em&gt;Сторінка вгору&lt;/em&gt;: прокрутити сторінку вгору&lt;/li&gt;&lt;li&gt;&lt;em&gt;Сторінка вниз&lt;/em&gt;: прокрутити сторінку вниз&lt;/li&gt;&lt;li&gt;&lt;em&gt;Домівка&lt;/em&gt;: перейти до початку сторінки&lt;
+ /li&gt;&lt;li&gt;&lt;em&gt;Кінець&lt;/em&gt;: перейти до кінця сторінки&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: вийти з довідки&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallukmaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;Джерело встановлення&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Натисніть &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt;, щоб вибрати джерело встановлення.&lt;/p&gt;
++
++&lt;p&gt;Це те саме, що використання параметра завантаження &lt;a href=&quot;#o_install&quot;&gt;встановити&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallukmainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Вибір мови та розкладки клавіатури&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Натисніть &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt;, щоб змінити мову та розкладку клавіатури, які використовує завантажувач.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallukmainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;Встановлення&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Виберіть &lt;em&gt;Встановлення&lt;/em&gt;, щоб запустити типове встановлення. &lt;a href=&quot;#opt&quot;&gt;параметри завантаження&lt;/a&gt; використовуються при запуску. Цей елемент активує багато можливостей загально наявного апаратного обладнання.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallukmainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;Тест пам'яті&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Включене &lt;em&gt;Тест пам'яті&lt;/em&gt; надає добру можливість для навантажувального тесту вашої системи. Хоча головна мета - це виявлення несправної RAM, але тест також робить навантаження на інші частини системи.&lt;/p&gt;
++
++&lt;p&gt;Якщо не знайдено помилок, це ще не є гарантією, що пам'ять добра, хоча буде знайдено більшість дефектів пам'яті.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallukmainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;Встановлення — ACPI вимкнено&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Найновіше апаратне обладнання часом потребує ACPI (інтерфейс розширеного налаштування та керування живленням) для керування обробкою перепинів. ACPI цілком заміняє стару систему APM.&lt;/p&gt;
++
++&lt;p&gt;Виберіть &lt;em&gt;Встановлення — ACPI вимкнено&lt;/em&gt;, якщо ви зіткнетесь з проблемами під час завантаження ядра. Відомі наступні проблеми в комп'ютерах, які мають проблеми з ACPI: &lt;/p&gt;
++
++&lt;p&gt;Також, можете спробувати параметр завантаження &lt;a href=&quot;#firmware&quot;&gt;Тест мікропрограмного забезпечення&lt;/a&gt; і переглянути результати тестування ACPI.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallukmainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;Встановлення — локальне APIC вимкнено&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Зазвичай, не виникає проблем з APIC (Advanced Programmable Interrupt Controller). Але, якщо у вас виникли проблеми, спробуйте цей параметр, щоб завантажити без підтримки APIC.&lt;/p&gt;
++
++&lt;p&gt;Будь ласка, не сплутайте це з &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt; (інтерфейс розширеного налаштування та керування живленням).&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallukmainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Параметри завантаження&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Є два типи наявних параметрів завантаження. По-перше, є параметри, які впливають на програму встановлення. По-друге, є параметри ядра. Найпоширеніші параметри:&lt;/p&gt;
++
++&lt;p&gt;a) параметри встановлення &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;встановити&lt;/a&gt; — виберіть джерело встановлення&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#network&quot;&gt;мережні параметри&lt;/a&gt; — мережні параметри&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;параметри vnc&lt;/a&gt; — параметри для встановлення через VNC&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;b) параметри ядра &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;заставка&lt;/a&gt; — керування поведінкою заставки&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; — перемикання керування живленням&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; — інтерфейс розширеного налаштування та керування живленням&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; — керування підсистемою IDE&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallukmainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,13 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;Параметри встановлення: мережні параметри&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Можна налаштувати мережний інтерфейс вже тепер. YaST2 виявить обладнання пізніше. Мінімальний набір параметрів для налаштування вашої мережної плати складається з адреси IP вузла і мережної маски. Наприклад: &lt;ul&gt;&lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;або в короткій формі: &lt;ul&gt;&lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Якщо ви вказали &lt;a href=&quot;#o_install&quot;&gt;встановлення через мережу&lt;/a&gt;, але не вказали обидва параметри, то програма встановлення намагається налаштувати мережний інтерфейс з &lt;em&gt;dhcp&lt;/em&gt;. Якщо вам потрібний типовий шлюз, вкажіть це за допомогою параметра &lt;em&gt;шлюз&lt;/em&gt;. Наприклад: &lt;ul&gt;&lt;li&gt;gateway=192.168.0.8&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallukmainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Параметри ядра: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI (Advanced Configuration and Power Interface) — це стандарт, яким визначаються інтерфейси керування живленням та налаштуванням між операційною системою і BIOS. Типово, &lt;em&gt;acpi&lt;/em&gt; вмикається, коли виявлено BIOS датований після 2000 року. Є декілька загальновживаних параметрів для керування поведінкою ACPI: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; — не використовувати ACPI для перенаправлення перепинів PCI&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; — тільки частини ACPI, які стосуються завантаження, залишаться активованими&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; — цілком вимкнути ACPI&lt;/li&gt;&lt;li&g
+ t;&lt;em&gt;acpi=force&lt;/em&gt; — увімкнути ACPI, навіть якщо ваш BIOS створено до 2000 року&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Особливо на нових комп'ютерах, вона замінює стару систему &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallukmainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Параметри ядра: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM — це одна з двох стратегій керування живленням, які застосовуються в сучасних комп'ютерах. Зазвичай, вона використовується в лептопах для таких функцій, як режим сну зі збереженням на диск, але також може вживатись для вимикання комп'ютера після знеструмлення. APM покладається на правильне функціонування BIOS. Якщо щось у BIOS не гаразд, APM, можливо, матиме тільки обмежене використання, або, навіть, перешкоджатими правильному функціонуванню комп'ютера. Тому, його можна вимкнути параметром &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; — цілком вимкнути
+ APM&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Деякі найновіші комп'ютери можуть мати користь з новішого &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallukmainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Параметри ядра: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;На відміну від SCSI, IDE найчастіше зустрічається в більшості стільничних робочих станцій. Щоб обійти деякі проблеми в обладнанні, скористайтесь параметром ядра: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt;— вимкнути DMA для IDE-приводів&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallukmainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;Параметри встановлення: install&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Типово, за джерелом встановлення ведеться пошук в пристроях CD-ROM. Для мережного встановлення виберіть параметр &lt;em&gt;встановити&lt;/em&gt;. Можливі наступні протоколи встановлення &lt;ul&gt;&lt;li&gt;FTP&lt;/li&gt;&lt;li&gt;NFS&lt;/li&gt;&lt;li&gt;HTTP&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Треба використовувати синтаксис як в стандартних URL. Наприклад, якщо ваш сервер знаходиться на 192.168.0.1 і ви хочете робити встановлення з каталогу NFS /install на цьому сервері, то вкажіть джерело так: &lt;ul&gt;&lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Мережну плату буде налаштовано через &lt;em&gt;dhcp&lt;/em&gt; або ви мусите самі вказати параметри, як описано в &lt;a href=&quot;#network&quot;&gt;мережні параметри&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallukmainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Параметри ядра: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Заставка екрана — це малюнок, який показується під час запуску системи. &lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; — Показ заставки вимкнено. Може придатись для дуже старих моніторів або, якщо виникає якась помилка.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; — Активує заставку, але буде показано повідомлення ядра та завантаження.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; — Активує заставку, але замість повідомлень показується смужка поступу.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallukmainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;Параметри встановлення: vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Щоб уможливити встановлення через VNC, вкажіть параметри vnc і vncpassword: &lt;ul&gt;&lt;li&gt;&lt;em&gt;vnc=1 vncpassword=example&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Буде запущено сервер VNC і ви зможете керувати програмою YaST2 через будь-який клієнт VNC з віддаленої системи.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallukmainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;Порятунок системи&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;Порятунок системи&lt;/em&gt; — це мала базова система на диску RAM. Звідти можна робити різноманітні зміни у встановленій системі. Оскільки в цій системі наявні тільки засоби низького рівня, вона призначена для експертів.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallukmainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;Вибір відеорежиму&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Натисніть &lt;em&gt;@@@fkey_video@@@&lt;/em&gt;, щоб отримати список відеорежимів, які підтримуються вашою графічною платою. Вибрано найвищий режим, який підтримується вашим монітором.&lt;/p&gt;
++
++&lt;p&gt;Ймовірно, ваш монітор неможливо виявити автоматично. У цьому випадку, виберіть бажаний режим вручну.&lt;/p&gt;
++
++&lt;p&gt;Якщо під час встановлення у вашій системі виникнуть проблеми з графічною платою, то можете скористатись &lt;em&gt;текстовий режим&lt;/em&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalluknavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Повернутись до &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallxhmainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,103 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;Uncedo Lomlayishi Womiselo Lwenkqubo&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Welcome to &lt;em&gt;@@@product@@@&lt;/em&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this menu to select the desired function. If you have
++problems navigating in this help system, press
++&lt;em&gt;@@@fkey_help@@@&lt;/em&gt; to enter the &lt;a href=&quot;#help&quot;&gt;inkcazelo&lt;/a&gt; of the help
++system. The main functions in this menu are:
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#harddisk&quot;&gt;Misela Inkqubo Kwiqokobhe Lekhompyutha&lt;/a&gt;: This selection will not do
++anything to the system. It only starts a previously installed
++operating system.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#linux&quot;&gt;Ukuhlohla&lt;/a&gt;:
++This installation mode works on most machines. If you experience a
++system freeze during boot or problems with detection of your hardware
++components, such as disk controllers or network cards, try one of the
++following installation options.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#noacpi&quot;&gt;Ukuhlohlwa kwe--ACPI Kususwe Isakhono&lt;/a&gt;: Many of the
++currently-sold computers have incomplete or faulty ACPI
++implementations. This selection disables ACPI support in the
++kernel, but still enables many performance features, like DMA for IDE
++hard disks.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#nolapic&quot;&gt;Ukuhlohlwa kwe--APIC Yendawo Leyo Kususwe Isakhono&lt;/a&gt;:
++If the normal installation fails, this might be due to the
++system hardware not supporting local APIC.
++If this seems to be the case, use this option to
++install without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#failsafe&quot;&gt;Imimiselo Yokuhlohla -- Ikhuselekile&lt;/a&gt;: If you were not
++successful with &lt;em&gt;Ukuhlohla&lt;/em&gt;, this selection might
++solve the issue.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#rescue&quot;&gt;Isixokelelwano Sokuhlangula&lt;/a&gt;: This boot image starts a small
++Linux system in RAM. This is useful if the system does not start properly.
++After booting this system, log in as root.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#firmware&quot;&gt;Uvavanyo lwe-Firmware&lt;/a&gt;: Runs a BIOS test tool that validates
++ACPI and other parts of your BIOS.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#memtest&quot;&gt;Uvavanyo Lukavimba Wolwazi&lt;/a&gt;: Memory testing is useful for more than
++checking installation of new memory modules. It is a stress test
++for a big part of your computer system and may indicate hardware
++problems.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#opt&quot;&gt;Izikhethwa Zomiselo Lwenkqubo&lt;/a&gt;: The boot options may change the
++behavior of your system completely. They are settings for
++the kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Help&lt;/a&gt;: This is context sensitive. It will
++show different screens depending on the active element of the
++boot screen. There is also a description of this help system
++available.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Set language and keyboard mapping
++used by the boot loader.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Video Mode&lt;/a&gt;: Here, choose between
++different screen resolutions while installing. If you encounter
++problems with the graphical installation, the &lt;em&gt;imo yokusebenza ngesiqendu&lt;/em&gt; may
++be a work-around for you.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Installation Source&lt;/a&gt;: Choose the
++installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Driver Update&lt;/a&gt;: For very new machines, a
++driver update may be needed to install the system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallxhmainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;Okukhethiweyo Kohlobo Lokungaphakathi Ekhompyutheni&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++You have the choice to install the 32-bit or 64-bit version of @@@product@@@.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallxhmaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;Uhlaziyo Lomqhubi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++If you need a driver update floppy or CD-ROM, press &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. The
++boot loader asks you to insert the driver update medium after
++loading the Linux kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++A driver update is typically a floppy with new versions of hardware
++drivers or bug fixes needed during installation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallxhmainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,11 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;Imimiselo Yokuhlohla -- Ikhuselekile&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Imimiselo Yokuhlohla -- Ikhuselekile&lt;/em&gt; if you encounter hangs
++while installing or irreproducible errors. This option disables DMA
++for IDE drives and all power management features.
++See also the kernel options for &lt;a href=&quot;#o_apm&quot;&gt;i-apm&lt;/a&gt;,
++&lt;a href=&quot;#o_acpi&quot;&gt;i-acpi&lt;/a&gt; and &lt;a href=&quot;#o_ide&quot;&gt;i-ide&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallxhmainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;Uvavanyo lwe-Firmware&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Starts a BIOS checker that validates the ACPI tables
++and many other parts of your BIOS.
++Test results can be stored on usb disk or saved via network.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallxhmainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,16 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;Misela Inkqubo Kwiqokobhe Lekhompyutha&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;I-OS Ehlohlwe Umiselo Lwenkqubo&lt;/em&gt; to start the system installed on
++your local hard disk. This system must be installed properly, because
++only the MBR (Master Boot Record) on the first hard disk is started.
++The device ID of the first hard disk is provided by the BIOS of
++the computer.
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this if you forgot to remove the CD or DVD from your
++drive and want to start the computer from the hard disk.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallxhmainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Kusetyenziswa Isixokelelwano Soncedo&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Isalathi-phezulu&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Isalathi-ezantsi&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Isalathi-ekhohlo&lt;/em&gt;, &lt;em&gt;Emva ngesithuba&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Isalathi-kunene&lt;/em&gt;, &lt;em&gt;Ngenisa&lt;/em&gt;, &lt;em&gt;Isithuba&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Tyhila Phezulu&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Tyhila Ezantsi&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Ekhaya&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Isiphelo&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Baleka&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallxhmaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;Umthombo Wokuhlohla&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; to choose an installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++This is the same as using the &lt;a href=&quot;#o_install&quot;&gt;hlohla&lt;/a&gt;
++boot option.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallxhmainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Ulwimi Nokukhethwayo Kokumisa kakuhle Ibhodi Yamaqhosha&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallxhmainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;Ukuhlohla&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Ukuhlohla&lt;/em&gt; to start the default installation. The
++&lt;a href=&quot;#opt&quot;&gt;izikhethwa zomiselo lwenkqubo&lt;/a&gt; entered are used in the
++start-up. This item activates many features of commonly available
++hardware.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallxhmainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;Uvavanyo Lukavimba Wolwazi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The included &lt;em&gt;Uvavanyo Lukavimba Wolwazi&lt;/em&gt; provides good possibilities to
++stress test the hardware of a system. Its main purpose is to detect
++broken RAM, but it also stresses many other parts of the system.
++&lt;/p&gt;
++
++&lt;p&gt;
++There is no guarantee that the memory is good if no errors are
++found, although most of memory defects will be found.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallxhmainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,24 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;Ukuhlohlwa kwe--ACPI Kususwe Isakhono&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Current hardware usually requires ACPI (Advanced Configuration and Power Interface)
++to control the interrupt handling.
++ACPI completely replaces the old APM system.
++&lt;/p&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Ukuhlohlwa kwe--ACPI Kususwe Isakhono&lt;/em&gt; if you encounter
++problems during boot of the kernel. Known problems with machines that
++have problems with ACPI are:
++&lt;ul&gt;
++ &lt;li&gt;kernel freezes when booting&lt;/li&gt;
++ &lt;li&gt;PCI Cards are not detected or initialized properly&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++You may also try the &lt;a href=&quot;#firmware&quot;&gt;Uvavanyo lwe-Firmware&lt;/a&gt; boot option
++and look at the test results of the ACPI validation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallxhmainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;Ukuhlohlwa kwe--APIC Yendawo Leyo Kususwe Isakhono&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Normally there are no problems with the APIC (Advanced Programmable Interrupt
++Controller). But if you seem to have some, try this option to boot
++without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++Please don't confuse this with &lt;a href=&quot;#noacpi&quot;&gt;i-ACPI&lt;/a&gt;
++(Advanced Configuration and Power Interface).
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallxhmainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,28 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Izikhethwa Zomiselo Lwenkqubo&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++There are two types of boot options available. First, there are
++options that affect the installer. Second, there are kernel
++options. Some of the more common options are:
++&lt;/p&gt;
++
++&lt;p&gt;
++a) installer options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;hlohla&lt;/a&gt; -- select an installation source&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#network&quot;&gt;izikhethwa zomsebenzi wothungelwano&lt;/a&gt; -- the network options&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;Izikhethwa ze-vnc&lt;/a&gt; -- options for installation via VNC&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++b) kernel options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;tshiza&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;i-apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;i-acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;i-ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallxhmainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;Izikhethwa Zomhlohli: Izikhethwa Zomsebenzi Wothungelwano&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++It is possible to configure the network interface right now. The
++hardware will be detected later by YaST2. The minimum set of options
++to configure your network card consists of host IP and netmask. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++or in a shorter form:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++If you specified a &lt;a href=&quot;#o_install&quot;&gt;ukuhlohla okusekwe kumsebenzi wothungelwano&lt;/a&gt; and do
++not specify both of these options, the installer tries to configure
++the network interface with &lt;em&gt;i-dhcp&lt;/em&gt;. If you need a default
++gateway, specify this with the option &lt;em&gt;Indlela yesango&lt;/em&gt;. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;indlela yesango=192.168.0.8&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallxhmainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Izikhethwa ze-Kernel: i-acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;i-acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;i-pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;i-acpi=umiselolwakudala&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;i-acpi=imo yokungasebenzi&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;i-acpi=yonyanzelo&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;i-apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallxhmainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Izikhethwa ze-Kernel: i-apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;i-apm=imo yokungasebenzi&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;i-ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallxhmainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Izikhethwa ze-Kernel: i-ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;i-ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallxhmainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,30 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;Izikhethwa Zomhlohli: hlohla&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++By default, the local CD-ROMs are searched for the installation source.
++For a network install, select the
++&lt;em&gt;hlohla&lt;/em&gt; option. Possible installation protocols are
++&lt;ul&gt;
++ &lt;li&gt;FTP&lt;/li&gt;
++ &lt;li&gt;NFS&lt;/li&gt;
++ &lt;li&gt;HTTP&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The syntax to use is just like standard URLs. For example,
++if your server is found at 192.168.0.1 and you want to do an NFS-based
++install from the directory /install on this server, specify
++the source as follows:
++&lt;ul&gt;
++ &lt;li&gt;ukuhlohla=nfs://192.168.0.1/ukuhlohla&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The network card will either be configured with &lt;em&gt;i-dhcp&lt;/em&gt; or you
++must specify the parameters yourself as described in the
++&lt;a href=&quot;#network&quot;&gt;izikhethwa zomsebenzi wothungelwano&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallxhmainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Izikhethwa ze-Kernel: tshiza&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;tshiza=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;tshiza=umlembelele&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;tshiza=ngokuthula&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallxhmainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;Izikhethwa Zomhlohli: i-vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++To enable the VNC installation, specify the
++parameters vnc and vncpassword:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;vnc=1 vncigamalokugqithisa=umzekelo&lt;/em&gt;&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The VNC server will be started and you may control YaST2 over any VNC
++client from a remote system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallxhmainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;Isixokelelwano Sokuhlangula&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The &lt;em&gt;Isixokelelwano Sokuhlangula&lt;/em&gt; is a small RAM disk base system. From there,
++it is possible to make all kinds of changes to an installed system. Because
++only low-level tools are available in this system, it is intended for
++experts.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallxhmainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;Okukhethwayo Kwimo Yevidiyo&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; to get the list of video modes your graphics card
++supports. The highest mode your monitor can display is preselected.
++&lt;/p&gt;
++
++&lt;p&gt;
++It is possible that your monitor cannot be detected automatically. In that
++case, select your preferred mode manually.
++&lt;/p&gt;
++
++&lt;p&gt;
++If your system has problems with the graphics card during the
++installation, the &lt;em&gt;imo yokusebenza ngesiqendu&lt;/em&gt; may be a usable work-around.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallxhnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Buyela &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,103 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;引导加载程序帮助&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Welcome to &lt;em&gt;@@@product@@@&lt;/em&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this menu to select the desired function. If you have
++problems navigating in this help system, press
++&lt;em&gt;@@@fkey_help@@@&lt;/em&gt; to enter the &lt;a href=&quot;#help&quot;&gt;描述&lt;/a&gt; of the help
++system. The main functions in this menu are:
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#harddisk&quot;&gt;从硬盘引导&lt;/a&gt;: This selection will not do
++anything to the system. It only starts a previously installed
++operating system.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#linux&quot;&gt;安装&lt;/a&gt;:
++This installation mode works on most machines. If you experience a
++system freeze during boot or problems with detection of your hardware
++components, such as disk controllers or network cards, try one of the
++following installation options.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#noacpi&quot;&gt;安装 - 禁用 ACPI&lt;/a&gt;: Many of the
++currently-sold computers have incomplete or faulty ACPI
++implementations. This selection disables ACPI support in the
++kernel, but still enables many performance features, like DMA for IDE
++hard disks.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#nolapic&quot;&gt;安装 - 禁用本地 APIC&lt;/a&gt;:
++If the normal installation fails, this might be due to the
++system hardware not supporting local APIC.
++If this seems to be the case, use this option to
++install without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#failsafe&quot;&gt;安装 - 安全设置&lt;/a&gt;: If you were not
++successful with &lt;em&gt;安装&lt;/em&gt;, this selection might
++solve the issue.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#rescue&quot;&gt;救援系统&lt;/a&gt;: This boot image starts a small
++Linux system in RAM. This is useful if the system does not start properly.
++After booting this system, log in as root.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#firmware&quot;&gt;固件测试&lt;/a&gt;: Runs a BIOS test tool that validates
++ACPI and other parts of your BIOS.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#memtest&quot;&gt;内存测试&lt;/a&gt;: Memory testing is useful for more than
++checking installation of new memory modules. It is a stress test
++for a big part of your computer system and may indicate hardware
++problems.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#opt&quot;&gt;引导选项&lt;/a&gt;: The boot options may change the
++behavior of your system completely. They are settings for
++the kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Help&lt;/a&gt;: This is context sensitive. It will
++show different screens depending on the active element of the
++boot screen. There is also a description of this help system
++available.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Set language and keyboard mapping
++used by the boot loader.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Video Mode&lt;/a&gt;: Here, choose between
++different screen resolutions while installing. If you encounter
++problems with the graphical installation, the &lt;em&gt;文本方式&lt;/em&gt; may
++be a work-around for you.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Installation Source&lt;/a&gt;: Choose the
++installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Driver Update&lt;/a&gt;: For very new machines, a
++driver update may be needed to install the system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;软件类型选择&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++You have the choice to install the 32-bit or 64-bit version of @@@product@@@.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;驱动程序更新&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++If you need a driver update floppy or CD-ROM, press &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. The
++boot loader asks you to insert the driver update medium after
++loading the Linux kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++A driver update is typically a floppy with new versions of hardware
++drivers or bug fixes needed during installation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,11 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;安装 - 安全设置&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;安装 - 安全设置&lt;/em&gt; if you encounter hangs
++while installing or irreproducible errors. This option disables DMA
++for IDE drives and all power management features.
++See also the kernel options for &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;,
++&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; and &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;固件测试&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Starts a BIOS checker that validates the ACPI tables
++and many other parts of your BIOS.
++Test results can be stored on usb disk or saved via network.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,16 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;从硬盘引导&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;引导已安装的操作系统&lt;/em&gt; to start the system installed on
++your local hard disk. This system must be installed properly, because
++only the MBR (Master Boot Record) on the first hard disk is started.
++The device ID of the first hard disk is provided by the BIOS of
++the computer.
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this if you forgot to remove the CD or DVD from your
++drive and want to start the computer from the hard disk.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;使用帮助系统&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;向上箭头&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;向下箭头&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;向左箭头&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;向右箭头&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Space&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;End&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;安装源&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; to choose an installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++This is the same as using the &lt;a href=&quot;#o_install&quot;&gt;安装&lt;/a&gt;
++boot option.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;语言和键盘布局选择&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;安装&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;安装&lt;/em&gt; to start the default installation. The
++&lt;a href=&quot;#opt&quot;&gt;引导选项&lt;/a&gt; entered are used in the
++start-up. This item activates many features of commonly available
++hardware.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;内存测试&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The included &lt;em&gt;内存测试&lt;/em&gt; provides good possibilities to
++stress test the hardware of a system. Its main purpose is to detect
++broken RAM, but it also stresses many other parts of the system.
++&lt;/p&gt;
++
++&lt;p&gt;
++There is no guarantee that the memory is good if no errors are
++found, although most of memory defects will be found.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,24 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;安装 - 禁用 ACPI&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Current hardware usually requires ACPI (Advanced Configuration and Power Interface)
++to control the interrupt handling.
++ACPI completely replaces the old APM system.
++&lt;/p&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;安装 - 禁用 ACPI&lt;/em&gt; if you encounter
++problems during boot of the kernel. Known problems with machines that
++have problems with ACPI are:
++&lt;ul&gt;
++ &lt;li&gt;kernel freezes when booting&lt;/li&gt;
++ &lt;li&gt;PCI Cards are not detected or initialized properly&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++You may also try the &lt;a href=&quot;#firmware&quot;&gt;固件测试&lt;/a&gt; boot option
++and look at the test results of the ACPI validation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;安装 - 禁用本地 APIC&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Normally there are no problems with the APIC (Advanced Programmable Interrupt
++Controller). But if you seem to have some, try this option to boot
++without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++Please don't confuse this with &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt;
++(Advanced Configuration and Power Interface).
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,28 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;引导选项&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++There are two types of boot options available. First, there are
++options that affect the installer. Second, there are kernel
++options. Some of the more common options are:
++&lt;/p&gt;
++
++&lt;p&gt;
++a) installer options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;安装&lt;/a&gt; -- select an installation source&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#network&quot;&gt;网络选项&lt;/a&gt; -- the network options&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;VNC 选项&lt;/a&gt; -- options for installation via VNC&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++b) kernel options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;安装程序选项:网络选项&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++It is possible to configure the network interface right now. The
++hardware will be detected later by YaST2. The minimum set of options
++to configure your network card consists of host IP and netmask. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++or in a shorter form:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++If you specified a &lt;a href=&quot;#o_install&quot;&gt;基于网络的安装&lt;/a&gt; and do
++not specify both of these options, the installer tries to configure
++the network interface with &lt;em&gt;dhcp&lt;/em&gt;. If you need a default
++gateway, specify this with the option &lt;em&gt;网关&lt;/em&gt;. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;gateway=192.168.0.8&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;内核选项:acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;内核选项:apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;内核选项:ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,30 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;安装程序选项:install&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++By default, the local CD-ROMs are searched for the installation source.
++For a network install, select the
++&lt;em&gt;安装&lt;/em&gt; option. Possible installation protocols are
++&lt;ul&gt;
++ &lt;li&gt;FTP&lt;/li&gt;
++ &lt;li&gt;NFS&lt;/li&gt;
++ &lt;li&gt;HTTP&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The syntax to use is just like standard URLs. For example,
++if your server is found at 192.168.0.1 and you want to do an NFS-based
++install from the directory /install on this server, specify
++the source as follows:
++&lt;ul&gt;
++ &lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The network card will either be configured with &lt;em&gt;dhcp&lt;/em&gt; or you
++must specify the parameters yourself as described in the
++&lt;a href=&quot;#network&quot;&gt;网络选项&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;内核选项:splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;安装程序选项:vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++To enable the VNC installation, specify the
++parameters vnc and vncpassword:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;vnc=1 vncpassword=example&lt;/em&gt;&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The VNC server will be started and you may control YaST2 over any VNC
++client from a remote system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;救援系统&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The &lt;em&gt;救援系统&lt;/em&gt; is a small RAM disk base system. From there,
++it is possible to make all kinds of changes to an installed system. Because
++only low-level tools are available in this system, it is intended for
++experts.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;视频模式选择&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; to get the list of video modes your graphics card
++supports. The highest mode your monitor can display is preselected.
++&lt;/p&gt;
++
++&lt;p&gt;
++It is possible that your monitor cannot be detected automatically. In that
++case, select your preferred mode manually.
++&lt;/p&gt;
++
++&lt;p&gt;
++If your system has problems with the graphics card during the
++installation, the &lt;em&gt;文本方式&lt;/em&gt; may be a usable work-around.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;返回 &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;開機載入器說明&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;歡迎光臨 &lt;em&gt;@@@產品@@@&lt;/em&gt;&lt;/p&gt;
++
++&lt;p&gt;使用此功能表來選取想要的功能。如果您在巡覽此系統時有問題,請按 &lt;em&gt;@@@fkey_help@@@&lt;/em&gt; 以進入說明系統的 &lt;a href=&quot;#help&quot;&gt;描述&lt;/a&gt;。此功能表的主要功能是:&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#harddisk&quot;&gt;從硬碟開機&lt;/a&gt;:此選項不會對系統進行任何動作,它只會啟動之前已安裝的作業系統。&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#linux&quot;&gt;安裝&lt;/a&gt;:此安裝模式適用於大部分的電腦上。如果系統在開機時凍結,或是在偵測硬體元件 (如磁碟控制卡或軟體卡) 上有問題,請嘗試以下其中一個安裝選項。&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#noacpi&quot;&gt;安裝 -- 停用 ACPI&lt;/a&gt;: 市面上許多電腦的 ACPI 執行方式不完整或錯誤。此選項可停用核心中的 ACPI 支援,但仍會啟用許多增強效能的功能,像 IDE 硬碟的 DMA。&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#nolapic&quot;&gt;安裝 -- 關閉 Local APIC&lt;/a&gt;: 如果正常安裝失敗,可能是因為系統硬體不支援本地 APIC。 如果是這個原因,請使用本選項即可無須本地 APIC 支援即安裝。&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#failsafe&quot;&gt;安裝 -- 安全設定&lt;/a&gt;:如果您無法成功使用 &lt;em&gt;安裝&lt;/em&gt;,此選項可能可以解決此問題。&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#rescue&quot;&gt;救援系統&lt;/a&gt;:此開機映像檔會啟動 RAM 中的迷你 Linux 系統。如果系統未能正確啟動,此功能非常的有用。此系統開機之後,請以 root 身份登入。&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#firmware&quot;&gt;韌體測試&lt;/a&gt;:執行 BIOS 測試工具確認您的 BIOS 的 ACPI 和其他部份。&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#memtest&quot;&gt;記憶體測試&lt;/a&gt;: 記憶體測試不僅只是檢查新記憶體模組的安裝,它可對您電腦系統的絕大部分進行壓力測試,並可能指出硬體的問題。&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#opt&quot;&gt;開機選項&lt;/a&gt;: 開機選項會完全變更您系統的行為,這些選項是核心的設定。&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ 說明&lt;/a&gt;: 為智慧型關聯式,它會根據開機畫面中的作用中元素而顯示不同的畫面。在此也有此說明系統的可用說明。&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: 設定開機載入器使用的語言和鍵盤對應。&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ 視訊模式&lt;/a&gt;:安裝時在此選擇其他螢幕解析度。如果您碰到圖形安裝的問題,&lt;em&gt;文字模式&lt;/em&gt; 會是因應措施。&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ 安裝來源&lt;/a&gt;: 選擇安裝來源。&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ 驅動程式更新&lt;/a&gt;:對於非常新的電腦,安裝系統時可能需要驅動程式更新。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;軟體類型選項&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;您可以選擇安裝 32 位元或 64 位元版本的 @@@product@@@。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;驅動程式更新&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;如果您需要驅動程式更新磁片或 CD-ROM,請按 &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;。 在載入 Linux 核心後,開機載入器會要求您插入驅動程式更新媒體。&lt;/p&gt;
++
++&lt;p&gt;驅動程式更新通常是一張提供新版硬碟驅動程式或安裝期間所需錯誤修復的磁碟片。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;安裝 -- 安全設定&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;如果您發生無法再現的錯誤或在安裝時碰到問題,請選取 &lt;em&gt;安裝 -- 安全設定&lt;/em&gt;,此選項會停用 IDE 磁碟機的 DMA 和所有電源管理功能。另請參閱 &lt;a href=&quot;#o_apm&quot;&gt;APM&lt;/a&gt;、&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; 和 &lt;a href=&quot;#o_ide&quot;&gt;IDE&lt;/a&gt;的核心選項。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;韌體測試&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;啟動 BIOS 檢查程式以驗證 ACPI 表和 BIOS 的其他許多部分。 測試結果可儲存在 USB 碟上或透過網路儲存。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;從硬碟開機&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;選取 &lt;em&gt;用安裝的作業系統開機&lt;/em&gt; 以啟動安裝在您本機硬碟上的系統。此系統必須正確地安裝,因為只有第一個硬碟上的 MBR (Master Boot Record,主開機記錄) 會被啟動。第一個硬碟上的裝置 ID 是由電腦的 BIOS 所提供。&lt;/p&gt;
++
++&lt;p&gt;如果您忘記將 CD 或 DVD 從您的磁碟機中取出,但要從硬碟啟動電腦,請使用此選項。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;使用說明系統&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;開機載入器線上說明為智慧型關聯式,它會根據選取的功能表項目來提供資訊,或者,如果您正在編輯開機選項,則它會嘗試查詢游標所在處選項的資訊。&lt;/p&gt;
++
++&lt;p&gt;瀏覽鍵 &lt;ul&gt;&lt;li&gt;&lt;em&gt;向上箭號&lt;/em&gt;: 反白上一個連結&lt;/li&gt;&lt;li&gt;&lt;em&gt;向下箭號&lt;/em&gt;: 反白下一個連結&lt;/li&gt;&lt;li&gt;&lt;em&gt;向左箭號&lt;/em&gt;, &lt;em&gt;退格鍵&lt;/em&gt;: 返回上一個主題&lt;/li&gt;&lt;li&gt;&lt;em&gt;向右箭號&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;空格&lt;/em&gt;: 跟隨連結&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: 向上捲動一頁&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: 向下捲動一頁&lt;/li&gt;&lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: 移至頁首&lt;/li&gt;&lt;li&gt;&lt;em&gt;End&lt;/em&gt;:移至頁底&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: 離開說明&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;安裝來源&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;按 &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; 以選取安裝來源&lt;/p&gt;
++
++&lt;p&gt;這與使用 &lt;a href=&quot;#o_install&quot;&gt;安裝&lt;/a&gt; 開機選項相同。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;語言和鍵盤配置選項&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;按下 &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; 以變更開機載入器使用的語言和鍵盤配置。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;安裝&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;選取 &lt;em&gt;安裝&lt;/em&gt; 以啟動預設安裝。輸入的 &lt;a href=&quot;#opt&quot;&gt;開機選項&lt;/a&gt; 是在啟動中使用。此項目會啟動一般可用硬體上的許多功能。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;記憶體測試&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;所包含的 &lt;em&gt;記憶體測試&lt;/em&gt; 很有可能對系統的硬體進行壓力測試。它的主要目的是偵測損壞的 RAM,但也會對系統的許多其他部分產生壓力。&lt;/p&gt;
++
++&lt;p&gt;即使沒有找到任何錯誤,仍不保證記憶體是好的。然而大部分的記憶體瑕疵都會被發現。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;安裝 -- 停用 ACPI&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;現在的硬體經常需要 ACPI (進階設定與電源介面)來控制中斷處理。ACPI 完全取代舊的 APM 系統。&lt;/p&gt;
++
++&lt;p&gt;如果您在核心開機時碰到問題,請選取 &lt;em&gt;安裝 -- 停用 ACPI&lt;/em&gt;。在 ACP 有問題的電腦上的已知問題為: &lt;ul&gt;&lt;li&gt;開機時核心凍結&lt;/li&gt;&lt;li&gt;未正確偵測或初始化 PCI 卡&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;您也可以嘗試 &lt;a href=&quot;#firmware&quot;&gt;韌體測試&lt;/a&gt; 的開機選項並查看 ACPI 確認項的測試結果。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;安裝 -- 關閉 Local APIC&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;通常 APIC (進階可程式化中斷控制器) 都沒有問題。 可是如果您有問題,請嘗試本選項,可以無須本地 APIC 支援即開機。 &lt;/p&gt;
++
++&lt;p&gt;請不要和&lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt; (進階組態和電源界面)搞混了。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;開機選項&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;有兩種可用的開機選項。第一種選項會影響安裝程式,第二種選項為核心選項。其中一些較常用的選項為:&lt;/p&gt;
++
++&lt;p&gt;a) 安裝程式選項 &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;安裝&lt;/a&gt; -- 選取安裝來源&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#network&quot;&gt;網路選項&lt;/a&gt; -- 網路選項&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;VNC 選項&lt;/a&gt; -- 透過 VNC 安裝的選項 &lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;b) 核心選項 &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;開機顯示畫面&lt;/a&gt; -- 影響開機顯示畫面的行為&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;APM&lt;/a&gt; -- 切換電源管理&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- 進階組態和電源界面&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;IDE&lt;/a&gt; -- 控制 IDE 子系統&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,13 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;安裝程式選項:網路選項&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;現在可以立即設定網路界面。稍後 YaST2 會偵測硬體。用來設定您網路卡的最少的參數包括主機 IP 和網路遮罩。例如: &lt;ul&gt;&lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;或使用簡短格式: &lt;ul&gt;&lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;如果您已指定 &lt;a href=&quot;#o_install&quot;&gt;網路式安裝&lt;/a&gt;,但未同時指定這兩個選項,安裝程式會嘗試使用 &lt;em&gt;DHCP&lt;/em&gt; 來設定網路界面。如果您需要使用預設閘道,請使用選項 &lt;em&gt;閘道&lt;/em&gt; 來指定此閘道。例如: &lt;ul&gt;&lt;li&gt;gateway=192.168.0.8&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;核心選項:acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI (進階管理與電源介面) 是一種標準,用來定義作業系統和 BIOS 之間的電源和組態管理界面。依預設值,當偵測到 BIOS 比 2000 年新時,便會開啟 &lt;em&gt;acpi&lt;/em&gt;。有數個常用的參數可控制 ACPI 的行為: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- 不要使用 ACPI 來管理 PCI 中斷&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- 只有部分與開機有關的 ACPI 會維持已啟動&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- 完全關閉 ACPI&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- 開啟 ACPI,即使您的 BIOS 日期早於 2000 年。&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;尤其是在新的電腦上,它會取代舊的 &lt;a href=&quot;#o_apm&quot;&gt;APM&lt;/a&gt; 系統。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;核心選項:APM&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;在目前電腦上使用的電源管理策略有兩種,APM 是其中一種。它主要是用於筆記型電腦,以提供如休眠到磁碟等功能,但它也會在電源中斷後負責關閉電腦。APM 依賴正確運作的 BIOS。如果 BIOS 壞了,APM 只會限制使用電腦作業,甚或是阻止作業。因此,可使用參數 &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- 完全關閉 APM&lt;/li&gt;&lt;/ul&gt; 關閉 APM。&lt;/p&gt;
++
++&lt;p&gt;有些非常新的電腦更從新的得到更好處 &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;核心選項:IDE&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;IDE 和 SCSI 不同,一般用於大部分的桌上型工作站上。若要避開一些 IDE 系統所發生的硬體問題,請使用核心參數: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- 關閉 IDE 磁碟機的 DMA&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;安裝程式選項:安裝&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;依預設值,會在本機 CD-ROM 中搜尋安裝來源。針對網路安裝,選取 &lt;em&gt;安裝&lt;/em&gt; 選項。可用的安裝通訊協定為 &lt;ul&gt;&lt;li&gt;FTP&lt;/li&gt;&lt;li&gt;NFS&lt;/li&gt;&lt;li&gt;HTTP&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;使用的語法就如同標準的 URL。例如,如果您的伺服器位於 192.168.0.1,且您要執行基於 NFS 從目錄安裝/安裝在此伺服器上,請按照下列方式指定來源: &lt;ul&gt;&lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;網路卡必須以 &lt;em&gt;DHCP&lt;/em&gt; 設定,或您必須自行指定參數如 &lt;a href=&quot;#network&quot;&gt;網路選項&lt;/a&gt;。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;核心選項:開機顯示畫面&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;開機顯示畫面是在系統啟動期間顯示的圖片。 &lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- 關閉開機顯示畫面。這對於非常舊的監視器或是當發生一些錯誤時,非常有用。&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- 啟動開機顯示畫面,且仍會顯示核心和開機訊息。&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- 啟動開機顯示畫面,但未顯示訊息,而是顯示進度條。&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;安裝程式選項:VNC&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;若要啟用 VNC 安裝,請指定 vnc 和 vncpassword 這兩個參數: &lt;ul&gt;&lt;li&gt;&lt;em&gt;vnc=1 vncpassword=example&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;VNC 伺服器將會啟動,您可以從遠端系統的任何 VNC 用戶端上控制 YaST2。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;救援系統&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;救援系統&lt;/em&gt; 是一種小的基於 RAM 磁碟的系統。由此可以對已安裝的系統進行所有類型的變更。因為此系統僅提供低階的工具,建議由專家使用。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;視訊模式選項&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;按下 &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; 可取得您圖形卡支援的視訊模式清單。已預先選取您監視器可顯示的最高模式。&lt;/p&gt;
++
++&lt;p&gt;有可能無法自動偵測您的監視器。在此情況下,請手動選取您偏好的模式。&lt;/p&gt;
++
++&lt;p&gt;如果您在安裝系統時,系統碰到圖形卡上的問題,&lt;em&gt;文字模式&lt;/em&gt; 會是可用的因應措施。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;返回 &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkkeymapskeymapcs_CZinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.cs_CZ.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.cs_CZ.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.cs_CZ.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,28 @@
++/keymap.cs_CZ [
++ [ 0x02 0x2b 0x31 0x00 ]
++ [ 0x03 0x11b 0x32 0x00 ]
++ [ 0x04 0x161 0x33 0x00 ]
++ [ 0x05 0x10d 0x34 0x00 ]
++ [ 0x06 0x159 0x35 0x00 ]
++ [ 0x07 0x17e 0x36 0x00 ]
++ [ 0x08 0xfd 0x37 0x00 ]
++ [ 0x09 0xe1 0x38 0x00 ]
++ [ 0x0a 0xed 0x39 0x00 ]
++ [ 0x0b 0xe9 0x30 0x00 ]
++ [ 0x0c 0x3d 0x25 0x2d ]
++ [ 0x0d 0x00 0x00 0x3d ]
++ [ 0x15 0x7a 0x5a 0x79 ]
++ [ 0x1a 0xfa 0x2f 0x5b ]
++ [ 0x1b 0x29 0x28 0x5d ]
++ [ 0x27 0x16f 0x22 0x3b ]
++ [ 0x28 0xa7 0x21 0x27 ]
++ [ 0x29 0x60 0x3b 0x00 ]
++ [ 0x2c 0x79 0x59 0x7a ]
++ [ 0x2e 0x63 0x43 0x00 ]
++ [ 0x33 0x2c 0x3f 0x00 ]
++ [ 0x34 0x2e 0x3a 0x00 ]
++ [ 0x35 0x2d 0x5f 0x2f ]
++ [ 0x56 0x7c 0x00 0x3c ]
++] def
++
++
+
+<a id="themetrunkmageiagfxbootthemetrunkkeymapskeymapda_DKinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.da_DK.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.da_DK.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.da_DK.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,24 @@
++/keymap.da_DK [
++ [ 0x03 0x32 0x22 0x40 ]
++ [ 0x04 0x33 0x23 0xa3 ]
++ [ 0x05 0x34 0x20ac 0x24 ]
++ [ 0x06 0x35 0x25 0x00 ]
++ [ 0x07 0x36 0x26 0x00 ]
++ [ 0x08 0x37 0x2f 0x7b ]
++ [ 0x09 0x38 0x28 0x5b ]
++ [ 0x0a 0x39 0x29 0x5d ]
++ [ 0x0b 0x30 0x3d 0x7d ]
++ [ 0x0c 0x2b 0x3f 0x00 ]
++ [ 0x0d 0x17d 0x60 0x7c ]
++ [ 0x1a 0xe5 0xc5 0x00 ]
++ [ 0x1b 0x161 0x5e 0x7e ]
++ [ 0x27 0xe6 0xc6 0x00 ]
++ [ 0x28 0xf8 0xd8 0x00 ]
++ [ 0x29 0x153 0xa7 0x00 ]
++ [ 0x2b 0x27 0x2a 0x00 ]
++ [ 0x2e 0x63 0x43 0x00 ]
++ [ 0x33 0x2c 0x3b 0x00 ]
++ [ 0x34 0x2e 0x3a 0x00 ]
++ [ 0x35 0x2d 0x5f 0x00 ]
++ [ 0x56 0x3c 0x3e 0x5c ]
++] def
+
+<a id="themetrunkmageiagfxbootthemetrunkkeymapskeymapde_DEinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.de_DE.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.de_DE.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.de_DE.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,29 @@
++/keymap.de_DE [
++ [ 0x03 0x32 0x22 0xb2 ]
++ [ 0x04 0x33 0xa7 0xb3 ]
++ [ 0x06 0x35 0x25 0x00 ]
++ [ 0x07 0x36 0x26 0x00 ]
++ [ 0x08 0x37 0x2f 0x7b ]
++ [ 0x09 0x38 0x28 0x5b ]
++ [ 0x0a 0x39 0x29 0x5d ]
++ [ 0x0b 0x30 0x3d 0x7d ]
++ [ 0x0c 0xdf 0x3f 0x5c ]
++ [ 0x0d 0x27 0x60 0x00 ]
++ [ 0x10 0x71 0x51 0x40 ]
++ [ 0x12 0x65 0x45 0x20ac ]
++ [ 0x15 0x7a 0x5a 0x00 ]
++ [ 0x1a 0xfc 0xdc 0x00 ]
++ [ 0x1b 0x2b 0x2a 0x7e ]
++ [ 0x27 0xf6 0xd6 0x00 ]
++ [ 0x28 0xe4 0xc4 0x00 ]
++ [ 0x29 0x5e 0xb0 0x00 ]
++ [ 0x2b 0x23 0x27 0x00 ]
++ [ 0x2c 0x79 0x59 0x00 ]
++ [ 0x32 0x6d 0x4d 0xb5 ]
++ [ 0x33 0x2c 0x3b 0x00 ]
++ [ 0x34 0x2e 0x3a 0x00 ]
++ [ 0x35 0x2d 0x5f 0x00 ]
++ [ 0x56 0x3c 0x3e 0x7c ]
++] def
++
++
+
+<a id="themetrunkmageiagfxbootthemetrunkkeymapskeymapel_GRinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.el_GR.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.el_GR.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.el_GR.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++/keymap.el_GR [
++ [ 0x06 0x35 0x25 0x00 ]
++ [ 0x2e 0x63 0x43 0x00 ]
++ [ 0x56 0x3c 0x3e 0x7c ]
++] def
+
+<a id="themetrunkmageiagfxbootthemetrunkkeymapskeymapes_ESinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.es_ES.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.es_ES.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.es_ES.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,26 @@
++/keymap.es_ES [
++ [ 0x02 0x31 0x21 0x7c ]
++ [ 0x03 0x32 0x22 0x40 ]
++ [ 0x04 0x33 0xb7 0x23 ]
++ [ 0x05 0x34 0x24 0x7e ]
++ [ 0x06 0x35 0x25 0x00 ]
++ [ 0x07 0x36 0x26 0xac ]
++ [ 0x08 0x37 0x2f 0x7b ]
++ [ 0x09 0x38 0x28 0x5b ]
++ [ 0x0a 0x39 0x29 0x5d ]
++ [ 0x0b 0x30 0x3d 0x7d ]
++ [ 0x0c 0x27 0x3f 0x5c ]
++ [ 0x0d 0xa1 0xbf 0x7e ]
++ [ 0x1a 0x00 0x00 0x5b ]
++ [ 0x1b 0x2b 0x2a 0x5d ]
++ [ 0x27 0xf1 0xd1 0x00 ]
++ [ 0x28 0x00 0x00 0x7b ]
++ [ 0x29 0xba 0xaa 0x5c ]
++ [ 0x2b 0xe7 0xc7 0x7d ]
++ [ 0x2e 0x63 0x43 0x00 ]
++ [ 0x33 0x2c 0x3b 0x00 ]
++ [ 0x34 0x2e 0x3a 0x00 ]
++ [ 0x35 0x2d 0x5f 0x00 ]
++ [ 0x56 0x3c 0x3e 0x00 ]
++] def
++
+
+<a id="themetrunkmageiagfxbootthemetrunkkeymapskeymapet_EEinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.et_EE.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.et_EE.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.et_EE.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++/keymap.et_EE [
++ [ 0x03 0x32 0x22 0x40 ]
++ [ 0x04 0x33 0x23 0xa3 ]
++ [ 0x05 0x34 0xa4 0x24 ]
++ [ 0x06 0x35 0x25 0x00 ]
++ [ 0x07 0x36 0x26 0x00 ]
++ [ 0x08 0x37 0x2f 0x7b ]
++ [ 0x09 0x38 0x28 0x5b ]
++ [ 0x0a 0x39 0x29 0x5d ]
++ [ 0x0b 0x30 0x3d 0x7d ]
++ [ 0x0c 0x2b 0x3f 0x5c ]
++ [ 0x12 0x65 0x45 0xa4 ]
++ [ 0x1a 0xfc 0xdc 0x00 ]
++ [ 0x1b 0xf5 0xd5 0xa7 ]
++ [ 0x1f 0x73 0x53 0xa8 ]
++ [ 0x27 0xf6 0xd6 0x00 ]
++ [ 0x28 0xe4 0xc4 0x5e ]
++ [ 0x2b 0x27 0x2a 0xbd ]
++ [ 0x2c 0x7a 0x5a 0xb8 ]
++ [ 0x2e 0x63 0x43 0x00 ]
++ [ 0x33 0x2c 0x3b 0x00 ]
++ [ 0x34 0x2e 0x3a 0x00 ]
++ [ 0x35 0x2d 0x5f 0x00 ]
++ [ 0x56 0x3c 0x3e 0x7c ]
++] def
+
+<a id="themetrunkmageiagfxbootthemetrunkkeymapskeymapfr_FRinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.fr_FR.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.fr_FR.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.fr_FR.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,32 @@
++/keymap.fr_FR [
++ [ 0x02 0x26 0x31 0x00 ]
++ [ 0x03 0x7b 0x32 0x7e ]
++ [ 0x04 0x22 0x33 0x23 ]
++ [ 0x05 0x27 0x34 0x7b ]
++ [ 0x06 0x28 0x35 0x5b ]
++ [ 0x07 0x2d 0x36 0x7c ]
++ [ 0x08 0x7d 0x37 0x60 ]
++ [ 0x09 0x5f 0x38 0x5c ]
++ [ 0x0a 0x2f 0x39 0x5e ]
++ [ 0x0b 0x40 0x30 0x00 ]
++ [ 0x0c 0x29 0x5d 0x00 ]
++ [ 0x0d 0x3d 0x2b 0x7d ]
++ [ 0x10 0x61 0x41 0x00 ]
++ [ 0x11 0x7a 0x5a 0x00 ]
++ [ 0x1a 0x5e 0x3c 0x00 ]
++ [ 0x1b 0x24 0x3e 0x7e ]
++ [ 0x1e 0x71 0x51 0x00 ]
++ [ 0x27 0x6d 0x4d 0x00 ]
++ [ 0x28 0x7c 0x25 0x00 ]
++ [ 0x29 0x2a 0x7e 0x00 ]
++ [ 0x2b 0x2a 0x23 0x00 ]
++ [ 0x2c 0x77 0x57 0x00 ]
++ [ 0x2e 0x63 0x43 0x00 ]
++ [ 0x32 0x2c 0x3f 0x00 ]
++ [ 0x33 0x3b 0x2e 0x00 ]
++ [ 0x34 0x3a 0x2f 0x00 ]
++ [ 0x35 0x21 0x5c 0x00 ]
++ [ 0x56 0x3c 0x3e 0x7c ]
++] def
++
++
+
+<a id="themetrunkmageiagfxbootthemetrunkkeymapskeymaphu_HUinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.hu_HU.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.hu_HU.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.hu_HU.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,43 @@
++/keymap.hu_HU [
++ [ 0x02 0x31 0x27 0x7e ]
++ [ 0x03 0x32 0x22 0x2c7 ]
++ [ 0x04 0x33 0x2b 0x5e ]
++ [ 0x05 0x34 0x21 0x2d8 ]
++ [ 0x06 0x35 0x25 0xb0 ]
++ [ 0x07 0x36 0x2f 0x2db ]
++ [ 0x08 0x37 0x3d 0x60 ]
++ [ 0x09 0x38 0x28 0x2d9 ]
++ [ 0x0a 0x39 0x29 0xb4 ]
++ [ 0x0b 0xf6 0xd6 0x2dd ]
++ [ 0x0c 0xfc 0xdc 0xa8 ]
++ [ 0x0d 0xf3 0xd3 0xb8 ]
++ [ 0x0f 0x09 0x09 0x00 ]
++ [ 0x10 0x71 0x51 0x5c ]
++ [ 0x11 0x77 0x57 0x7c ]
++ [ 0x15 0x7a 0x5a 0x00 ]
++ [ 0x17 0x69 0x49 0xcd ]
++ [ 0x1a 0x151 0x150 0xf7 ]
++ [ 0x1b 0xfa 0xda 0xd7 ]
++ [ 0x1f 0x73 0x53 0x111 ]
++ [ 0x20 0x64 0x44 0x110 ]
++ [ 0x21 0x66 0x46 0x5b ]
++ [ 0x22 0x67 0x47 0x5d ]
++ [ 0x24 0x6a 0x4a 0xed ]
++ [ 0x25 0x6b 0x4b 0x142 ]
++ [ 0x26 0x6c 0x4c 0x141 ]
++ [ 0x27 0xe9 0xc9 0x24 ]
++ [ 0x28 0xe1 0xc1 0xdf ]
++ [ 0x29 0x30 0xa7 0x00 ]
++ [ 0x2b 0x171 0x170 0xa4 ]
++ [ 0x2c 0x79 0x59 0x3e ]
++ [ 0x2d 0x78 0x58 0x23 ]
++ [ 0x2e 0x63 0x43 0x26 ]
++ [ 0x2f 0x76 0x56 0x40 ]
++ [ 0x30 0x62 0x42 0x7b ]
++ [ 0x31 0x6e 0x4e 0x7d ]
++ [ 0x33 0x2c 0x3f 0x3b ]
++ [ 0x34 0x2e 0x3a 0x00 ]
++ [ 0x35 0x2d 0x5f 0x2a ]
++ [ 0x56 0xed 0xcd 0x3c ]
++] def
++
+
+<a id="themetrunkmageiagfxbootthemetrunkkeymapskeymapit_ITinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.it_IT.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.it_IT.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.it_IT.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++/keymap.it_IT [
++ [ 0x03 0x32 0x22 0x00 ]
++ [ 0x04 0x33 0xa3 0x00 ]
++ [ 0x06 0x35 0x25 0x00 ]
++ [ 0x07 0x36 0x26 0x00 ]
++ [ 0x08 0x37 0x2f 0x00 ]
++ [ 0x09 0x38 0x28 0x7b ]
++ [ 0x0a 0x39 0x29 0x7d ]
++ [ 0x0b 0x30 0x3d 0x7e ]
++ [ 0x0c 0x27 0x3f 0x60 ]
++ [ 0x0d 0xec 0x5e 0xed ]
++ [ 0x1a 0xe8 0xe9 0x5b ]
++ [ 0x1b 0x2b 0x2a 0x5d ]
++ [ 0x27 0xf2 0xe7 0x40 ]
++ [ 0x28 0xe0 0xb0 0x23 ]
++ [ 0x29 0x5c 0x7c 0x00 ]
++ [ 0x2b 0xf9 0xa7 0xfa ]
++ [ 0x2e 0x63 0x43 0x00 ]
++ [ 0x33 0x2c 0x3b 0x00 ]
++ [ 0x34 0x2e 0x3a 0x00 ]
++ [ 0x35 0x2d 0x5f 0x00 ]
++ [ 0x56 0x3c 0x3e 0x00 ]
++] def
++
++
+
+<a id="themetrunkmageiagfxbootthemetrunkkeymapskeymapja_JPinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.ja_JP.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.ja_JP.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.ja_JP.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,24 @@
++/keymap.ja_JP [
++ [ 0x03 0x32 0x22 0x00 ]
++ [ 0x06 0x35 0x25 0x00 ]
++ [ 0x07 0x36 0x26 0x00 ]
++ [ 0x08 0x37 0x27 0x00 ]
++ [ 0x09 0x38 0x28 0x00 ]
++ [ 0x0a 0x39 0x29 0x00 ]
++ [ 0x0b 0x30 0x7e 0x00 ]
++ [ 0x0c 0x2d 0x3d 0x00 ]
++ [ 0x0d 0x5e 0x7e 0x00 ]
++ [ 0x1a 0x40 0x60 0x00 ]
++ [ 0x1b 0x5b 0x7b 0x00 ]
++ [ 0x27 0x3b 0x2b 0x00 ]
++ [ 0x28 0x3a 0x2a 0x00 ]
++ [ 0x29 0x1b 0x1b 0x00 ]
++ [ 0x2b 0x5d 0x7d 0x00 ]
++ [ 0x2e 0x63 0x43 0x00 ]
++ [ 0x56 0x3c 0x3e 0x00 ]
++ [ 0x59 0x5c 0x5f 0x00 ]
++ [ 0x5c 0x20 0x20 0x00 ]
++ [ 0x5e 0x20 0x20 0x00 ]
++ [ 0x7c 0x5c 0x7c 0x00 ]
++] def
++
+
+<a id="themetrunkmageiagfxbootthemetrunkkeymapskeymapnb_NOinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.nb_NO.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.nb_NO.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.nb_NO.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,43 @@
++/keymap.nb_NO [
++ [ 0x02 0x31 0x21 0xa1 ]
++ [ 0x03 0x32 0x22 0x40 ]
++ [ 0x04 0x33 0x23 0xa3 ]
++ [ 0x05 0x34 0x24 0x20ac ]
++ [ 0x06 0x35 0x25 0x153 ]
++ [ 0x07 0x36 0x26 0x178 ]
++ [ 0x08 0x37 0x2f 0x7b ]
++ [ 0x09 0x38 0x28 0x5b ]
++ [ 0x0a 0x39 0x29 0x5d ]
++ [ 0x0b 0x30 0x3d 0x7d ]
++ [ 0x0c 0x2b 0x3f 0xb1 ]
++ [ 0x0d 0x5c 0x60 0x00 ]
++ [ 0x0f 0x09 0x09 0x00 ]
++ [ 0x12 0x65 0x45 0xe9 ]
++ [ 0x13 0x72 0x52 0xae ]
++ [ 0x14 0x74 0x54 0xfe ]
++ [ 0x15 0x79 0x59 0xff ]
++ [ 0x16 0x75 0x55 0xfc ]
++ [ 0x17 0x69 0x49 0xef ]
++ [ 0x18 0x6f 0x4f 0xf2 ]
++ [ 0x19 0x70 0x50 0xb6 ]
++ [ 0x1a 0xe5 0xc5 0x7d ]
++ [ 0x1b 0x7e 0x5e 0x00 ]
++ [ 0x1e 0x61 0x41 0xe1 ]
++ [ 0x1f 0x73 0x53 0xdf ]
++ [ 0x20 0x64 0x44 0xf0 ]
++ [ 0x21 0x66 0x46 0xaa ]
++ [ 0x27 0xf8 0xd8 0x7c ]
++ [ 0x28 0xe6 0xc6 0x7b ]
++ [ 0x29 0x7c 0xa7 0x160 ]
++ [ 0x2b 0x27 0x2a 0x00 ]
++ [ 0x2d 0x78 0x58 0xd7 ]
++ [ 0x2e 0x63 0x43 0xe7 ]
++ [ 0x31 0x6e 0x4e 0xf1 ]
++ [ 0x32 0x6d 0x4d 0xb5 ]
++ [ 0x33 0x2c 0x3b 0x17e ]
++ [ 0x34 0x2e 0x3a 0xb7 ]
++ [ 0x35 0x2d 0x5f 0xad ]
++ [ 0x39 0x20 0x20 0xa0 ]
++ [ 0x56 0x3c 0x3e 0xab ]
++ [ 0x6f 0x7f 0x7f 0x00 ]
++] def
+
+<a id="themetrunkmageiagfxbootthemetrunkkeymapskeymappl_PLinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.pl_PL.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.pl_PL.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.pl_PL.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,16 @@
++/keymap.pl_PL [
++ [ 0x05 0x34 0x24 0xa7 ]
++ [ 0x06 0x35 0x25 0x00 ]
++ [ 0x0f 0x09 0x09 0x00 ]
++ [ 0x12 0x65 0x45 0x119 ]
++ [ 0x18 0x6f 0x4f 0xf3 ]
++ [ 0x1e 0x61 0x41 0x105 ]
++ [ 0x1f 0x73 0x53 0x15b ]
++ [ 0x26 0x6c 0x4c 0x142 ]
++ [ 0x2c 0x7a 0x5a 0x17c ]
++ [ 0x2d 0x78 0x58 0x17a ]
++ [ 0x2e 0x63 0x43 0x107 ]
++ [ 0x31 0x6e 0x4e 0x144 ]
++ [ 0x56 0x3c 0x3e 0x7c ]
++ [ 0x63 0x1c 0x1c 0x00 ]
++] def
+
+<a id="themetrunkmageiagfxbootthemetrunkkeymapskeymappt_BRinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.pt_BR.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.pt_BR.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.pt_BR.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,22 @@
++/keymap.pt_BR [
++ [ 0x02 0x31 0x21 0xb9 ]
++ [ 0x03 0x32 0x40 0xb2 ]
++ [ 0x04 0x33 0x23 0xb3 ]
++ [ 0x05 0x34 0x24 0xa3 ]
++ [ 0x06 0x35 0x25 0xa2 ]
++ [ 0x07 0x36 0x00 0xac ]
++ [ 0x0c 0x2d 0x5f 0x00 ]
++ [ 0x0d 0x3d 0x2b 0xa7 ]
++ [ 0x13 0x72 0x52 0xae ]
++ [ 0x1b 0x5b 0x7b 0xaa ]
++ [ 0x27 0xe7 0xc7 0x00 ]
++ [ 0x29 0x27 0x22 0x00 ]
++ [ 0x2b 0x5d 0x7d 0xba ]
++ [ 0x2e 0x63 0x43 0x00 ]
++ [ 0x32 0x6d 0x4d 0xb5 ]
++ [ 0x35 0x3b 0x3a 0x00 ]
++ [ 0x53 0x00 0x2c 0x00 ]
++ [ 0x56 0x5c 0x7c 0x00 ]
++ [ 0x59 0x2f 0x3f 0xb0 ]
++ [ 0x79 0x00 0x2e 0x00 ]
++] def
+
+<a id="themetrunkmageiagfxbootthemetrunkkeymapskeymappt_PTinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.pt_PT.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.pt_PT.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.pt_PT.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,24 @@
++/keymap.pt_PT [
++ [ 0x03 0x32 0x22 0x40 ]
++ [ 0x04 0x33 0x23 0xa3 ]
++ [ 0x05 0x34 0x24 0xa7 ]
++ [ 0x06 0x35 0x25 0x00 ]
++ [ 0x07 0x36 0x26 0x00 ]
++ [ 0x08 0x37 0x2f 0x7b ]
++ [ 0x09 0x38 0x28 0x5b ]
++ [ 0x0a 0x39 0x29 0x5d ]
++ [ 0x0b 0x30 0x3d 0x7d ]
++ [ 0x0c 0x27 0x3f 0x5c ]
++ [ 0x0d 0xab 0xbb 0x00 ]
++ [ 0x1a 0x2b 0x2a 0x00 ]
++ [ 0x1b 0x00 0x00 0x27 ]
++ [ 0x27 0xe7 0xc7 0x00 ]
++ [ 0x28 0xba 0xaa 0x00 ]
++ [ 0x29 0x5c 0x7c 0x00 ]
++ [ 0x2b 0x00 0x00 0x7e ]
++ [ 0x2e 0x63 0x43 0x00 ]
++ [ 0x33 0x2c 0x3b 0x00 ]
++ [ 0x34 0x2e 0x3a 0x00 ]
++ [ 0x35 0x2d 0x5f 0x00 ]
++ [ 0x56 0x3c 0x3e 0x7c ]
++] def
+
+<a id="themetrunkmageiagfxbootthemetrunkkeymapskeymapru_RUinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.ru_RU.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.ru_RU.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.ru_RU.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,43 @@
++/keymap.ru_RU [
++ [ 0x06 0x35 0x25 0x00 ]
++ [ 0x08 0x37 0x26 0x00 ]
++ [ 0x09 0x38 0x2a 0x00 ]
++ [ 0x0a 0x39 0x28 0x00 ]
++ [ 0x0b 0x30 0x29 0x00 ]
++ [ 0x0c 0x2d 0x5f 0x00 ]
++ [ 0x0f 0x09 0x09 0x00 ]
++ [ 0x10 0x71 0x51 0x439 ]
++ [ 0x11 0x77 0x57 0x446 ]
++ [ 0x12 0x65 0x45 0x443 ]
++ [ 0x13 0x72 0x52 0x43a ]
++ [ 0x14 0x74 0x54 0x435 ]
++ [ 0x15 0x79 0x59 0x43d ]
++ [ 0x16 0x75 0x55 0x433 ]
++ [ 0x17 0x69 0x49 0x448 ]
++ [ 0x18 0x6f 0x4f 0x449 ]
++ [ 0x19 0x70 0x50 0x437 ]
++ [ 0x1a 0x5b 0x7b 0x445 ]
++ [ 0x1b 0x5d 0x7d 0x5b ]
++ [ 0x1e 0x61 0x41 0x444 ]
++ [ 0x1f 0x73 0x53 0x44b ]
++ [ 0x20 0x64 0x44 0x432 ]
++ [ 0x21 0x66 0x46 0x430 ]
++ [ 0x22 0x67 0x47 0x43f ]
++ [ 0x23 0x68 0x48 0x440 ]
++ [ 0x24 0x6a 0x4a 0x43e ]
++ [ 0x25 0x6b 0x4b 0x43b ]
++ [ 0x26 0x6c 0x4c 0x434 ]
++ [ 0x27 0x3b 0x3a 0x436 ]
++ [ 0x28 0x27 0x22 0x44d ]
++ [ 0x2c 0x7a 0x5a 0x44f ]
++ [ 0x2d 0x78 0x58 0x447 ]
++ [ 0x2e 0x63 0x43 0x441 ]
++ [ 0x2f 0x76 0x56 0x43c ]
++ [ 0x30 0x62 0x42 0x438 ]
++ [ 0x31 0x6e 0x4e 0x442 ]
++ [ 0x32 0x6d 0x4d 0x44c ]
++ [ 0x33 0x2c 0x3c 0x431 ]
++ [ 0x34 0x2e 0x3e 0x44e ]
++ [ 0x56 0x3c 0x3e 0x7c ]
++] def
++
+
+<a id="themetrunkmageiagfxbootthemetrunkkeymapskeymapsk_SKinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.sk_SK.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.sk_SK.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.sk_SK.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,24 @@
++/keymap.sk_SK [
++ [ 0x02 0x31 0x21 0x2b ]
++ [ 0x03 0x32 0x40 0x13e ]
++ [ 0x04 0x33 0x23 0x161 ]
++ [ 0x05 0x34 0x24 0x10d ]
++ [ 0x06 0x35 0x25 0x165 ]
++ [ 0x07 0x36 0x5e 0x17e ]
++ [ 0x08 0x37 0x26 0xfd ]
++ [ 0x09 0x38 0x2a 0xe1 ]
++ [ 0x0a 0x39 0x28 0xed ]
++ [ 0x0b 0x30 0x29 0xe9 ]
++ [ 0x0c 0x2d 0x5f 0x3d ]
++ [ 0x15 0x7a 0x5a 0x00 ]
++ [ 0x1a 0x5b 0x7b 0xfa ]
++ [ 0x1b 0x5d 0x7d 0xe4 ]
++ [ 0x27 0x3b 0x3a 0xf4 ]
++ [ 0x28 0x27 0x22 0xa7 ]
++ [ 0x2b 0x5c 0x7c 0x148 ]
++ [ 0x2c 0x79 0x59 0x00 ]
++ [ 0x2e 0x63 0x43 0x00 ]
++ [ 0x35 0x2f 0x3f 0x2d ]
++ [ 0x56 0x3c 0x3e 0x7c ]
++] def
++
+
+<a id="themetrunkmageiagfxbootthemetrunkkeymapskeymapsl_SIinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.sl_SI.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.sl_SI.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.sl_SI.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,38 @@
++/keymap.sl_SI [
++ [ 0x02 0x31 0x21 0x7e ]
++ [ 0x03 0x32 0x22 0x2c7 ]
++ [ 0x04 0x33 0x23 0x5e ]
++ [ 0x05 0x34 0x24 0x2d8 ]
++ [ 0x06 0x35 0x25 0xb0 ]
++ [ 0x07 0x36 0x26 0x2db ]
++ [ 0x08 0x37 0x2f 0x60 ]
++ [ 0x09 0x38 0x28 0x2d9 ]
++ [ 0x0a 0x39 0x29 0xb4 ]
++ [ 0x0b 0x30 0x3d 0x2dd ]
++ [ 0x0c 0x27 0x3f 0xa8 ]
++ [ 0x0d 0x2b 0x2a 0xb8 ]
++ [ 0x0f 0x09 0x09 0x00 ]
++ [ 0x10 0x71 0x51 0x5c ]
++ [ 0x11 0x77 0x57 0x7c ]
++ [ 0x15 0x7a 0x5a 0x00 ]
++ [ 0x1a 0x161 0x160 0xf7 ]
++ [ 0x1b 0x111 0x110 0xd7 ]
++ [ 0x21 0x66 0x46 0x5b ]
++ [ 0x22 0x67 0x47 0x5d ]
++ [ 0x25 0x6b 0x4b 0x142 ]
++ [ 0x26 0x6c 0x4c 0x141 ]
++ [ 0x27 0x10d 0x10c 0x00 ]
++ [ 0x28 0x107 0x106 0xdf ]
++ [ 0x29 0xb8 0xa8 0x00 ]
++ [ 0x2b 0x17e 0x17d 0xa4 ]
++ [ 0x2c 0x79 0x59 0x00 ]
++ [ 0x2e 0x63 0x43 0x00 ]
++ [ 0x2f 0x76 0x56 0x40 ]
++ [ 0x30 0x62 0x42 0x7b ]
++ [ 0x31 0x6e 0x4e 0x7d ]
++ [ 0x32 0x6d 0x4d 0xa7 ]
++ [ 0x33 0x2c 0x3b 0x00 ]
++ [ 0x34 0x2e 0x3a 0x00 ]
++ [ 0x35 0x2d 0x5f 0x00 ]
++ [ 0x56 0x3c 0x3e 0x00 ]
++] def
+
+<a id="themetrunkmageiagfxbootthemetrunkkeymapskeymapsv_SEinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.sv_SE.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.sv_SE.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.sv_SE.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++/keymap.sv_SE [
++ [ 0x03 0x32 0x22 0x40 ]
++ [ 0x04 0x33 0x23 0xa3 ]
++ [ 0x05 0x34 0xe7 0x24 ]
++ [ 0x06 0x35 0x25 0x00 ]
++ [ 0x07 0x36 0x26 0xac ]
++ [ 0x08 0x37 0x2f 0x7b ]
++ [ 0x09 0x38 0x28 0x5b ]
++ [ 0x0a 0x39 0x29 0x5d ]
++ [ 0x0b 0x30 0x3d 0x7d ]
++ [ 0x0c 0x2b 0x3f 0x5c ]
++ [ 0x1a 0xe5 0xc5 0x00 ]
++ [ 0x1b 0x00 0x5e 0x7e ]
++ [ 0x27 0xf6 0xd6 0x00 ]
++ [ 0x28 0xe4 0xc4 0x00 ]
++ [ 0x29 0xa7 0xb0 0xbd ]
++ [ 0x2b 0x27 0x2a 0x00 ]
++ [ 0x2e 0x63 0x43 0x00 ]
++ [ 0x33 0x2c 0x3b 0x00 ]
++ [ 0x34 0x2e 0x3a 0x00 ]
++ [ 0x35 0x2d 0x5f 0x00 ]
++ [ 0x56 0x3c 0x3e 0x7c ]
++] def
+
+<a id="themetrunkmageiagfxbootthemetrunkkeymapskeymaptr_TRinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.tr_TR.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.tr_TR.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.tr_TR.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,29 @@
++/keymap.tr_TR [
++ [ 0x03 0x32 0x27 0x00 ]
++ [ 0x04 0x33 0x5e 0x23 ]
++ [ 0x05 0x34 0x2b 0x24 ]
++ [ 0x06 0x35 0x25 0x00 ]
++ [ 0x07 0x36 0x26 0x00 ]
++ [ 0x08 0x37 0x2f 0x7b ]
++ [ 0x09 0x38 0x28 0x5b ]
++ [ 0x0a 0x39 0x29 0x5d ]
++ [ 0x0b 0x30 0x3d 0x7d ]
++ [ 0x0c 0x2a 0x3f 0x5c ]
++ [ 0x0d 0x2d 0x5f 0x00 ]
++ [ 0x10 0x71 0x51 0x40 ]
++ [ 0x16 0x75 0x55 0xfb ]
++ [ 0x17 0x131 0x49 0xee ]
++ [ 0x18 0x6f 0x4f 0xf4 ]
++ [ 0x1a 0x11f 0x11e 0x00 ]
++ [ 0x1b 0xfc 0xdc 0x7e ]
++ [ 0x1e 0x61 0x41 0xe2 ]
++ [ 0x27 0x15f 0x15e 0x00 ]
++ [ 0x28 0x69 0x130 0x00 ]
++ [ 0x29 0x22 0xe9 0x00 ]
++ [ 0x2b 0x2c 0x3b 0x60 ]
++ [ 0x2e 0x63 0x43 0x00 ]
++ [ 0x33 0xf6 0xd6 0x00 ]
++ [ 0x34 0xe7 0xc7 0x00 ]
++ [ 0x35 0x2e 0x3a 0x2f ]
++ [ 0x56 0x3c 0x3e 0x7c ]
++] def
+
+<a id="themetrunkmageiagfxbootthemetrunkpoMakefile">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/Makefile</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/Makefile (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/Makefile 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++POFILES = $(wildcard *.po)
++TEXTS = $(addsuffix .tr,$(basename $(wildcard *.po)))
++
++PRODUCT = $(shell perl -ne 'print if s/^product=//' ../config)
++
++all: .ready
++
++.ready: text.inc $(TEXTS)
++ @touch .ready
++
++# the po2txt script requires that the po file has no fuzzy entries
++# and the same comments as the pot file; so we do a msgfmt/msgunfmt/msgmerge
++# to ensure that
++%.tr: %.po text.inc
++ msgfmt $&lt; -o - | msgunfmt | \
++ msgmerge --no-fuzzy-matching - bootloader.pot &gt; tmp_$&lt; &amp;&amp; \
++ bin/po2txt --product='$(PRODUCT)' tmp_$&lt; &gt;$@
++ rm -f tmp_$&lt;
++
++# en.tr uses msgids from bootloader.pot
++en.tr text.inc: bootloader.pot
++ bin/po2txt --product='$(PRODUCT)' $&lt; &gt;en.tr
++
++clean:
++ rm -f .ready text.inc *.tr *~ talk/*~
++
++
++update_n_merge: bootloader.pot merge
++
++merge:
++ for n in *.po; do \
++ echo &quot;Merging $$n&quot;; \
++ msgmerge -C $$n $$n bootloader.pot &gt; &quot;$$n&quot;t ; \
++ mv -f &quot;$$n&quot;t $$n ; \
++ done
+
+
+Property changes on: theme/trunk/mageia-gfxboot-theme/trunk/po/Makefile
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themetrunkmageiagfxbootthemetrunkpoREADME">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/README</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/README (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/README 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,24 @@
++boot loader translations
++------------------------
++
++o How do I add a new text?
++
++ - Use the gfxboot/po/bin/add_text script; example:
++
++ add_text help 'Help'
++
++ This will define txt_help; the 'txt_' prefix is optional.
++
++o How do I remove a text that's no longer needed?
++
++ - Use the gfxboot/po/bin/rm_text script; example:
++
++ rm_text help
++
++ This will remove txt_help; the removed lines are stored in the 'old'
++ directory.
++
++o How do I add a new language?
++
++ - Copy bootloader.pot to &lt;lang&gt;.po. Remember to get &lt;lang&gt;.po translated.
++
+
+<a id="themetrunkmageiagfxbootthemetrunkpoafpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/af.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/af.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/af.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,481 @@
++# LANGUAGE translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader\n&quot;
++&quot;POT-Creation-Date: 2006-10-26 15:50+0200\n&quot;
++&quot;PO-Revision-Date: 2006-11-03 14:26\n&quot;
++&quot;Last-Translator: Novell Language &lt;language@novell.com&gt;\n&quot;
++&quot;Language-Team: Novell Language &lt;language@novell.com&gt;\n&quot;
++&quot;Language: \n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;Goed&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Kanselleer&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Herselflaai&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Gaan voort&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Installasie&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Met-die-hand installasie&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Installasie--ACPI-versper&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Installasie--veilige instellings&quot;
++
++#. txt_safe_linux
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Selflaai vanaf harde skyf&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Reddingstelsel&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Geheuetoets&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Selflaai-opsies&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Hersien van ...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;U verlaat nou die grafiese selflaaikieslys en\n&quot;
++&quot; begin die teksmoduskoppelvlak.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Help&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Begin met ...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Laai van Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot; \n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Laai van memtest86\n&quot;
++&quot;\n&quot;
++&quot; \n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Selflaaiprogram&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;I/O-fout&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Wysig selflaaiskyf&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Sit selflaaiskyf %u in.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Dit is selflaaiskyf %u.\n&quot;
++&quot;Sit selflaaiskyf %u in.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Dit is nie 'n &lt;product&gt; selflaaiskyf nie.\n&quot;
++&quot;Sit selflaaiskyf %u in.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Wagwoord&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Kry u aandrywerbywerkingskyf gereed.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD-fout&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Dit 'n tweekantige DVD. U het vanaf die tweede kant geselflaai.\n&quot;
++&quot;\n&quot;
++&quot; Draai die DVD om en gaan dan voort.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Krag af&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Halt die stelsel nou?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Harde skyf&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Hardeskyfinstallasie&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Skyftoestel (skandeer alle skywe indien leeg)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Gids\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP-installasie&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Bediener\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Wagwoord\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Gebruiker (naamlose aantekening indien leeg)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS-installasie&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Gebruiker (gebruik \&quot;gas\&quot; indien leeg)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB (Windows-gedeelde) -installasie&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP-installasie&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Aandrywer&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Domein\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Ander opsies&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Taal&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Installasie--IOAPIC-ontsper&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Installasie--IOAPIC-versper&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Installasie--plaaslike APIC-versper&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Ja&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Nee&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Lêer&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Deel \n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Outomatiese modus&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Met-die-hand modus&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Konfigureer parameters op ZEN-partisie&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Installeer of werk ZEN-partisie by&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Herinstalleer ZEN-partisieselflaaiprogram&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Versper ZEN-partisie&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Ontsper ZEN-partisie&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Teksmodus&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Firmatuurtoets&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Om aandrywerbywerkings direk vanaf CD-ROM te laai,\n&quot;
++&quot;voer die aandrywerbywerklêername(geskei \n&quot;
++&quot; deur kommas ',') hier in:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Bron&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Arg.&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++#, fuzzy
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Ander opsies&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Sleutelbord&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;Linux--veilige instellings&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpoarpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/ar.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/ar.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/ar.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,495 @@
++# translation of bootloader.po to Arabic
++# LANGUAGE translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++# Ma'moun Diraneyya &lt;mamoun.diraneyya@gmail.com&gt;, 2009.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2006-05-18 10:26+0200\n&quot;
++&quot;PO-Revision-Date: 2009-04-20 20:59+0300\n&quot;
++&quot;Last-Translator: Ma'moun Diraneyya &lt;mamoun.diraneyya@gmail.com&gt;\n&quot;
++&quot;Language-Team: Arabic &lt;doc@arabeyes.org&gt;\n&quot;
++&quot;Language: ar\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++&quot;Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100&gt;=3 &quot;
++&quot;&amp;&amp; n%100&lt;=10 ? 3 : n%100&gt;=11 &amp;&amp; n%100&lt;=99 ? 4 : 5;\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;موافق&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;ألغِ&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;أعِد التشغيل&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;تابع&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;أقلع مايكروسُفت وندز&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;أداة اكتشاف العتاد&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;لينُكس مع النواة %s&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;افحص وسائط تثبيت&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;تثبيت يدوي&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;تثبيت--ACPI معطل&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;تثبيت--إعدادات آمنة&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;أقلع ماندريفا لينُكس 2009 الربيع (الوضع الآمن)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;أقلع من القرص الصلب&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;نظام الإنقاذ&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;اختبار الذاكرة&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;خيارات الإقلاع&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;خروج...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;أنت تغادر قائمة الإقلاع الرسومية\n&quot;
++&quot;وتبدأ واجهة الوضع النصي.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;مساعدة&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;بدء...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;تحميل نواة لينُكس\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;تحميل memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;مُحمِّل الإقلاع&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;خطأ في المدخلات/المخرجات&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;غيِّر قرص الإقلاع&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;أدخل قرص الإقلاع %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;هذا قرص الإقلاع %u.\n&quot;
++&quot;أدخل قرص الإقلاع %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;هذا ليس قرص إقلاع &lt;product&gt;.\n&quot;
++&quot;أدخل قرص الإقلاع %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;كلمة السر&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;خطأ في القرص الرقمي&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;هذا قرص رقمي بوجهين، وأنت أقلعت من الوجه الثاني.\n&quot;
++&quot;\n&quot;
++&quot;اقلب القرص الرقمي، ثم تابع.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;أطفئ&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;هل أوقف النظام الآن؟&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;القرص الصلب&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;تثبيت القرص الصلب&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;جهاز القرص (يمسح الأقراص كلها إذا كان فارغًا)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;الدليل\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;تثبيت FTP&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;الخادوم\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;كلمة السر\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;المستخدم (ولوج مجهول إذا كان فارغًا)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;تثبيت NFS&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;المستخدم (يستخدم \&quot;الضيف\&quot; إذا كان فارغًا)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;تثبيت سامبا‏ (مشاركة وندز)&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;تثبيت HTTP&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;المُشغِّل&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;النطاق\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;خيارات أخرى&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;اللغة&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;تثبيت--IOAPIC ممكَّن&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;تثبيت--IOAPIC معطَّل&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;تثبيت--APIC المحلي معطَّل&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;نعم&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;لا&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;ملف&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;شارك\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;الوضع التلقائي&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;الوضع اليدوي&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;اضبط المُعاملات في قسم ZEN&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;ثبِّت أو حدِّث قسم ZEN&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;أعِد تثبيت محمِّل إقلاع قسم ZEN&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;عطِّل قسم ZEN&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;مكِّن قسم ZEN&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;الوضع النصي&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;اختبار البرنامج المُضمَّن (فِرموير)&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;لتحميل تحديثات المُشغِّل مباشرةً من القرص المدمج،\n&quot;
++&quot;أدخل أسماء ملفات تحديثات المُشغِّل -مفصولة\n&quot;
++&quot; بفواصل ','- هنا:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;المصدر&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;وضع الفيديو&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;تحديث المُشغِّل&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;المعمارية&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;خيارات النواة&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;افتراضي&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;الإعدادات الآمنة&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;دون ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;دون APIC محلي&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;أصلح نظامًا مُثبتًا&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;افحص وسائط تثبيت&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;لوحة المفاتيح&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;نزِّل تحديث المُشغِّل&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;أدخل مسار تحديث المُشغل\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;معمارية خاطئة&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++#, fuzzy
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;هذا حاسوب 32-بِت، لا تستطيع استخدام برامج 64-بِت عليه.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;تحذير&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;أنت على وشك تثبيت برامج 32-بِت على حاسوب 64-بِت.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;أدخل القرص المُدمج لتحديث المُشغل\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;ضع قرص لينُكس ماندريفا المدمج من جديد في السوَّاقة.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;استعد نسخة احتياطية من لقطةدراك (draksnapshot)&quot;
++
++#, fuzzy
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;أقلع ماندريفا لينُكس 2009 الربيع&quot;
++
++#, fuzzy
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;ثبِّت لينُكس ماندريفا 2009 الربيع&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpoastpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/ast.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/ast.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/ast.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,499 @@
++# translation of ast.po to
++# translation of bootloader.po to
++# LANGUAGE translations for boot loader
++# Copyright (C) 2004 SUSE LINUX AG
++# , 2004
++# Astur &lt;malditoastur@gmail.com&gt;, 2009.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader.ast\n&quot;
++&quot;POT-Creation-Date: \n&quot;
++&quot;PO-Revision-Date: 2010-01-22 20:03+0100\n&quot;
++&quot;Last-Translator: marquinos &lt;marcoscostales@gmail.com&gt;\n&quot;
++&quot;Language-Team: Asturian &lt;opensuse-translation-es@opensuse.org&gt;\n&quot;
++&quot;Language: ast\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++&quot;X-Poedit-Language: Asturian\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;Aceutar&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Encaboxar&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Reaniciar&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Continuar&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Arrancar Microsoft Windows&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Ferramienta de Deteición de Hardware&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux con kernel %s&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Instalación&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Instalación manual&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Instalación -- ACPI Desactiváu&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Instalación -- Axustes seguros&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Arrancar Mandriva Linux 2010 Spring (mou seguru)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Arrancar dende'l discu duru&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Sistema de rescate&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Preba de memoria&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Opciones d'arranque&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Colando...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Tas colando del menú gráficu d'arranque y\n&quot;
++&quot;aniciando la interface en mou testu.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Aida&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Aniciando...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Cargando'l kernel Linux\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Cargando memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Cargador d'arranque&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;Fallos de E/S&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Camudar disquete d'arranque&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Inxerte'l discu d'arranque %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Esti ye'l discu d'arranque %u.\n&quot;
++&quot;Inxerte'l discu d'arranque %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Esti nun ye un discu d'arranque de &lt;product&gt;.\n&quot;
++&quot;Introduza'l discu d'arranque %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Contraseña&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Ten preparáu'l discu d'anovamientu del controlador.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;Fallu de DVD&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Esti DVD ye de duble. Agora mesmo ta puesta la segunda cara.\n&quot;
++&quot;\n&quot;
++&quot;Da-y la vuelta al DVD y sigui.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Apagar&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;¿Quies apagar el sistema agora?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Discu duru&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Instalación discu duru&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Preséu de discu (analiza tolos discos si se dexa ermu)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Direutoriu\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;Instalación FTP&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Sirvidor\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Contraseña\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Usuariu (dexar ermu p'anónimu)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;Instalación NFS&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Usuariu (úsase \&quot;guest\&quot; si se dexa ermu)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;Instalación SMB (recursu compartíu Windows)&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;Instalación HTTP&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Controlador&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Dominiu\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Otres opciones&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Llingua&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Instalación -- IOAPIC habilitado&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Instalación -- IOAPIC inhabilitáu&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Instalación -- APIC llocal inhabilitáu&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Sí&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Non&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Ficheru&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Compartir\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Mou automáticu&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Mou manual&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Configurar parámetros na partición ZEN&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Instalar o anovar la partición ZEN&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Volver a instalar el cargador d'arranque de partición ZEN&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Inhabilitar partición ZEN&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Habilitar partición ZEN&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Mou de testu&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Preba de firmware&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Pa cargar los anovamientos de controlador direutamente dende'l CD-ROM,\n&quot;
++&quot;indica los nomes de ficheru de los anovamientos del controlador (separtaos\n&quot;
++&quot;per comes \&quot;,\&quot;) equí:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Orixe&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Mou de vídeu&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Anovamientu de controlador&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Arquiteutura&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Opciones pal kernel&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Predetermináu&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Axustes seguros&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Ensin ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Ensin APIC llocal&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Iguar el sistema instaláu&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Verificar el mediu d'instalación&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Tecláu&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Descargar anovamientu de controlador&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Inxerte'l URL del anovamientu del controlador\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Arquiteutura non correuta&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;Esti equipu ye de 32-bits. Nun puedes usar software de 64-bit nél.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Avisu&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;Tas a piques d'instalar software de 32-bits nún equipu de 64-bits.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;Inxerte'l CD-ROM d'anovamientu del controlador pa\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Allugue'l CD-ROM de Mandriva Linux otra vegada na unidá. &quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;Restaurar copia de seguridá draksnapshot&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Arrancar Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Instalar Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;Linux -- Axustes seguros&quot;
++
++#~ msgid &quot;Kernel&quot;
++#~ msgstr &quot;Kernel&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpobgpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/bg.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/bg.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/bg.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,503 @@
++# translation of bg.po to
++# translation of bg.po to Bulgarian
++# translation of bootloader.po to Bulgarian
++# LANGUAGE translations for boot loader
++# Copyright (C) 2004 SUSE LINUX AG
++# Copyright (C) 2004 Vdel CREC
++#
++# Borislav Mitev &lt;morbid_viper@tkzs.org&gt;, 2004, 2005, 2006.
++# Kolio Kolev &lt;kolio_kolev@biotronica.net&gt;, 2009.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader.bg\n&quot;
++&quot;POT-Creation-Date: \n&quot;
++&quot;PO-Revision-Date: 2009-03-27 10:03+0200\n&quot;
++&quot;Last-Translator: Rossen Karpuzov &lt;gustav cointech net&gt;\n&quot;
++&quot;Language-Team: Mandriva User Group - Bulgaria &lt;mandriva-bg@googlegroups.&quot;
++&quot;com&gt;\n&quot;
++&quot;Language: \n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: Lokalize 0.3\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;Добре&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Прекъсване&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Рестартиране&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Продължаване&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Старт на Microsoft Windows&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Инструмент за откриване на хардуер&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Линукс с ядро %s&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Инсталиране&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Ръчно инсталиране&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Инсталиране - без ACPI&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Инсталиране - Безопасни настройки&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Старт на Mandriva Linux 2010 Spring (защитен режим)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Зареждане от твърдия диск&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Спасяване на системата&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Проверка на паметта&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Параметри на зареждането&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Излизане...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Вие напускате графичното меню и влизате\n&quot;
++&quot;в текстовия режим на зареждането.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Помощ&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Стартиране...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Зареждане на Линукс ядрото\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Зареждане на memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Зареждаща програма&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;Входно/Изходна грешка&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Промяна на диска за зареждане&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Моля, поставете зареждащ диск %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Това е зареждащ диск %u.\n&quot;
++&quot;Моля, поставете %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Това не е зареждащ диск на &lt;product&gt;.\n&quot;
++&quot;Моля, поставете %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Парола&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Пригответе дискетата с драйверите за подновяване.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD грешка&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Това е двустранно DVD. Вие сте заредили от втората страна\n&quot;
++&quot;\n&quot;
++&quot;Моля, обърнете DVD-то и след това продължете.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Изключване на захранването&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Желаете ли да спрете сега системата?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Твърд диск&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Инсталиране от твърд диск&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Дисково устройство (ще сканира всички дискове, ако е празно)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Директория\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;Инсталиране от FTP&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Сървър\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Парола\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Потребител (анонимен вход, ако е празно)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;Инсталация от NFS&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Потребител (ще използва \&quot;guest\&quot;, ако е празно)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;Инсталиране от SMB (Windows Share)&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;Инсталиране от HTTP&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Драйвер&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Домейн\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Други параметри&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Език&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Инсталация — разрешено IOAPIC&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Инсталиране - без IOAPIC&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Инсталация — забранено локален APIC&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Да&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Не&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Файл&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Споделен ресурс\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Автоматичен режим&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Ръчен режим&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Настройка на параметри на ZEN дял&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Инсталиране или подновяване на ZEN дял&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Преинсталиране ОС зареждане на ZEN дял&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Забраняване на ZEN дял&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Разрешаване на ZEN дял&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Текстов режим&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Проба на фърмуер&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;За да заредите драйвери директно от CD-ROM,\n&quot;
++&quot;въведете тук файловите имена на драйверите\n&quot;
++&quot;за обновяване, разделени със запетаи:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Източник&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Видео режим&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Обновяване на драйвери&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Архитектура&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Опции на ядрото&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;По подразбиране&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Безопасни настройки&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Без ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Без локален APIC&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Поправка на инсталирана система&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Проверка на инсталационен носител&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Клавиатура&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Свали актуализация на драйвер&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Въведи URL на актуален драйвер\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Грешна архитектура&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++#, fuzzy
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;Това е 32 битов компютър. Не може да ползвате 64 битов софтуер на него.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Внимание&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;Вие ще инсталирате 32 битов софтуер на 64 битов компютър.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;Поставете CD-ROM с обновени драйвери за\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Сложете CD-ROM-а на МАндрива Линукс обратно в устройството.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;Възтановява архив от draksnapshot&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Старт на Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Инсталирай Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;Linux - безопасни настройки&quot;
++
++#~ msgid &quot;Kernel&quot;
++#~ msgstr &quot;Ядро&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpobinadd_text">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/bin/add_text</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/bin/add_text (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/bin/add_text 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,56 @@
++#! /usr/bin/perl
++
++# add a new text to *.po files
++
++die &quot;usage: add_text [-c comment] id text_line1 text_line2 ... \nexample:\n add_text MENU_LANG Language\n&quot; if @ARGV &lt; 2;
++
++while($ARGV[0] eq '-c') {
++ shift;
++ push @l, &quot;#. $ARGV[0]\n&quot;;
++ shift;
++}
++
++$id = shift;
++@texts = @ARGV;
++
++$id =~ s/^txt_//;
++
++$_ = join '', @texts;
++
++push @l, &quot;#. txt_$id\n&quot;;
++push @l, &quot;#, c-format\n&quot; if /%/;
++
++if(@texts == 1) {
++ push @l, &quot;msgid \&quot;$texts[0]\&quot;\n&quot;
++}
++else {
++ push @l, &quot;msgid \&quot;\&quot;\n&quot;;
++ for (@texts) { push @l, &quot;\&quot;$_\&quot;\n&quot; }
++}
++
++push @l, &quot;msgstr \&quot;\&quot;\n&quot;;
++push @l, &quot;\n&quot;;
++
++print @l;
++
++print STDERR &quot;Should this entry be added to all *.po files? [Y/n]\n&quot;;
++
++$_ = &lt;STDIN&gt;;
++
++chomp;
++
++$_ = &quot;\L$_&quot;;
++
++exit unless $_ eq '' || $_ eq 'y';
++
++print &quot;ok\n&quot;;
++
++for $f (&quot;bootloader.pot&quot;, &lt;*.po&gt;) {
++ if(open F, &quot;+&lt;$f&quot;) {
++ @f = &lt;F&gt;;
++ print F &quot;\n&quot; if $f[-1] !~ /^\s*$/;
++ print F @l;
++ close F;
++ }
++}
++
+
+
+Property changes on: theme/trunk/mageia-gfxboot-theme/trunk/po/bin/add_text
+___________________________________________________________________
+<a id="svnexecutable">Added: svn:executable</a>
+ + *
+
+<a id="themetrunkmageiagfxbootthemetrunkpobinarabictxt">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/bin/arabic.txt</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/bin/arabic.txt (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/bin/arabic.txt 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,1040 @@
++0600;ARABIC NUMBER SIGN;Cf;0;AL;;;;;N;;;;;
++0601;ARABIC SIGN SANAH;Cf;0;AL;;;;;N;;;;;
++0602;ARABIC FOOTNOTE MARKER;Cf;0;AL;;;;;N;;;;;
++0603;ARABIC SIGN SAFHA;Cf;0;AL;;;;;N;;;;;
++060C;ARABIC COMMA;Po;0;CS;;;;;N;;;;;
++060D;ARABIC DATE SEPARATOR;Po;0;AL;;;;;N;;;;;
++060E;ARABIC POETIC VERSE SIGN;So;0;ON;;;;;N;;;;;
++060F;ARABIC SIGN MISRA;So;0;ON;;;;;N;;;;;
++0610;ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM;Mn;230;NSM;;;;;N;;;;;
++0611;ARABIC SIGN ALAYHE ASSALLAM;Mn;230;NSM;;;;;N;;;;;
++0612;ARABIC SIGN RAHMATULLAH ALAYHE;Mn;230;NSM;;;;;N;;;;;
++0613;ARABIC SIGN RADI ALLAHOU ANHU;Mn;230;NSM;;;;;N;;;;;
++0614;ARABIC SIGN TAKHALLUS;Mn;230;NSM;;;;;N;;;;;
++0615;ARABIC SMALL HIGH TAH;Mn;230;NSM;;;;;N;;;;;
++061B;ARABIC SEMICOLON;Po;0;AL;;;;;N;;;;;
++061F;ARABIC QUESTION MARK;Po;0;AL;;;;;N;;;;;
++0621;ARABIC LETTER HAMZA;Lo;0;AL;;;;;N;ARABIC LETTER HAMZAH;;;;
++0622;ARABIC LETTER ALEF WITH MADDA ABOVE;Lo;0;AL;0627 0653;;;;N;ARABIC LETTER MADDAH ON ALEF;;;;
++0623;ARABIC LETTER ALEF WITH HAMZA ABOVE;Lo;0;AL;0627 0654;;;;N;ARABIC LETTER HAMZAH ON ALEF;;;;
++0624;ARABIC LETTER WAW WITH HAMZA ABOVE;Lo;0;AL;0648 0654;;;;N;ARABIC LETTER HAMZAH ON WAW;;;;
++0625;ARABIC LETTER ALEF WITH HAMZA BELOW;Lo;0;AL;0627 0655;;;;N;ARABIC LETTER HAMZAH UNDER ALEF;;;;
++0626;ARABIC LETTER YEH WITH HAMZA ABOVE;Lo;0;AL;064A 0654;;;;N;ARABIC LETTER HAMZAH ON YA;;;;
++0627;ARABIC LETTER ALEF;Lo;0;AL;;;;;N;;;;;
++0628;ARABIC LETTER BEH;Lo;0;AL;;;;;N;ARABIC LETTER BAA;;;;
++0629;ARABIC LETTER TEH MARBUTA;Lo;0;AL;;;;;N;ARABIC LETTER TAA MARBUTAH;;;;
++062A;ARABIC LETTER TEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA;;;;
++062B;ARABIC LETTER THEH;Lo;0;AL;;;;;N;ARABIC LETTER THAA;;;;
++062C;ARABIC LETTER JEEM;Lo;0;AL;;;;;N;;;;;
++062D;ARABIC LETTER HAH;Lo;0;AL;;;;;N;ARABIC LETTER HAA;;;;
++062E;ARABIC LETTER KHAH;Lo;0;AL;;;;;N;ARABIC LETTER KHAA;;;;
++062F;ARABIC LETTER DAL;Lo;0;AL;;;;;N;;;;;
++0630;ARABIC LETTER THAL;Lo;0;AL;;;;;N;;;;;
++0631;ARABIC LETTER REH;Lo;0;AL;;;;;N;ARABIC LETTER RA;;;;
++0632;ARABIC LETTER ZAIN;Lo;0;AL;;;;;N;;;;;
++0633;ARABIC LETTER SEEN;Lo;0;AL;;;;;N;;;;;
++0634;ARABIC LETTER SHEEN;Lo;0;AL;;;;;N;;;;;
++0635;ARABIC LETTER SAD;Lo;0;AL;;;;;N;;;;;
++0636;ARABIC LETTER DAD;Lo;0;AL;;;;;N;;;;;
++0637;ARABIC LETTER TAH;Lo;0;AL;;;;;N;;;;;
++0638;ARABIC LETTER ZAH;Lo;0;AL;;;;;N;ARABIC LETTER DHAH;;;;
++0639;ARABIC LETTER AIN;Lo;0;AL;;;;;N;;;;;
++063A;ARABIC LETTER GHAIN;Lo;0;AL;;;;;N;;;;;
++0640;ARABIC TATWEEL;Lm;0;AL;;;;;N;;;;;
++0641;ARABIC LETTER FEH;Lo;0;AL;;;;;N;ARABIC LETTER FA;;;;
++0642;ARABIC LETTER QAF;Lo;0;AL;;;;;N;;;;;
++0643;ARABIC LETTER KAF;Lo;0;AL;;;;;N;ARABIC LETTER CAF;;;;
++0644;ARABIC LETTER LAM;Lo;0;AL;;;;;N;;;;;
++0645;ARABIC LETTER MEEM;Lo;0;AL;;;;;N;;;;;
++0646;ARABIC LETTER NOON;Lo;0;AL;;;;;N;;;;;
++0647;ARABIC LETTER HEH;Lo;0;AL;;;;;N;ARABIC LETTER HA;;;;
++0648;ARABIC LETTER WAW;Lo;0;AL;;;;;N;;;;;
++0649;ARABIC LETTER ALEF MAKSURA;Lo;0;AL;;;;;N;ARABIC LETTER ALEF MAQSURAH;;;;
++064A;ARABIC LETTER YEH;Lo;0;AL;;;;;N;ARABIC LETTER YA;;;;
++064B;ARABIC FATHATAN;Mn;27;NSM;;;;;N;;;;;
++064C;ARABIC DAMMATAN;Mn;28;NSM;;;;;N;;;;;
++064D;ARABIC KASRATAN;Mn;29;NSM;;;;;N;;;;;
++064E;ARABIC FATHA;Mn;30;NSM;;;;;N;ARABIC FATHAH;;;;
++064F;ARABIC DAMMA;Mn;31;NSM;;;;;N;ARABIC DAMMAH;;;;
++0650;ARABIC KASRA;Mn;32;NSM;;;;;N;ARABIC KASRAH;;;;
++0651;ARABIC SHADDA;Mn;33;NSM;;;;;N;ARABIC SHADDAH;;;;
++0652;ARABIC SUKUN;Mn;34;NSM;;;;;N;;;;;
++0653;ARABIC MADDAH ABOVE;Mn;230;NSM;;;;;N;;;;;
++0654;ARABIC HAMZA ABOVE;Mn;230;NSM;;;;;N;;;;;
++0655;ARABIC HAMZA BELOW;Mn;220;NSM;;;;;N;;;;;
++0656;ARABIC SUBSCRIPT ALEF;Mn;220;NSM;;;;;N;;;;;
++0657;ARABIC INVERTED DAMMA;Mn;230;NSM;;;;;N;;;;;
++0658;ARABIC MARK NOON GHUNNA;Mn;230;NSM;;;;;N;;;;;
++0660;ARABIC-INDIC DIGIT ZERO;Nd;0;AN;;0;0;0;N;;;;;
++0661;ARABIC-INDIC DIGIT ONE;Nd;0;AN;;1;1;1;N;;;;;
++0662;ARABIC-INDIC DIGIT TWO;Nd;0;AN;;2;2;2;N;;;;;
++0663;ARABIC-INDIC DIGIT THREE;Nd;0;AN;;3;3;3;N;;;;;
++0664;ARABIC-INDIC DIGIT FOUR;Nd;0;AN;;4;4;4;N;;;;;
++0665;ARABIC-INDIC DIGIT FIVE;Nd;0;AN;;5;5;5;N;;;;;
++0666;ARABIC-INDIC DIGIT SIX;Nd;0;AN;;6;6;6;N;;;;;
++0667;ARABIC-INDIC DIGIT SEVEN;Nd;0;AN;;7;7;7;N;;;;;
++0668;ARABIC-INDIC DIGIT EIGHT;Nd;0;AN;;8;8;8;N;;;;;
++0669;ARABIC-INDIC DIGIT NINE;Nd;0;AN;;9;9;9;N;;;;;
++066A;ARABIC PERCENT SIGN;Po;0;ET;;;;;N;;;;;
++066B;ARABIC DECIMAL SEPARATOR;Po;0;AN;;;;;N;;;;;
++066C;ARABIC THOUSANDS SEPARATOR;Po;0;AN;;;;;N;;;;;
++066D;ARABIC FIVE POINTED STAR;Po;0;AL;;;;;N;;;;;
++066E;ARABIC LETTER DOTLESS BEH;Lo;0;AL;;;;;N;;;;;
++066F;ARABIC LETTER DOTLESS QAF;Lo;0;AL;;;;;N;;;;;
++0670;ARABIC LETTER SUPERSCRIPT ALEF;Mn;35;NSM;;;;;N;ARABIC ALEF ABOVE;;;;
++0671;ARABIC LETTER ALEF WASLA;Lo;0;AL;;;;;N;ARABIC LETTER HAMZAT WASL ON ALEF;;;;
++0672;ARABIC LETTER ALEF WITH WAVY HAMZA ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER WAVY HAMZAH ON ALEF;;;;
++0673;ARABIC LETTER ALEF WITH WAVY HAMZA BELOW;Lo;0;AL;;;;;N;ARABIC LETTER WAVY HAMZAH UNDER ALEF;;;;
++0674;ARABIC LETTER HIGH HAMZA;Lo;0;AL;;;;;N;ARABIC LETTER HIGH HAMZAH;;;;
++0675;ARABIC LETTER HIGH HAMZA ALEF;Lo;0;AL;&lt;compat&gt; 0627 0674;;;;N;ARABIC LETTER HIGH HAMZAH ALEF;;;;
++0676;ARABIC LETTER HIGH HAMZA WAW;Lo;0;AL;&lt;compat&gt; 0648 0674;;;;N;ARABIC LETTER HIGH HAMZAH WAW;;;;
++0677;ARABIC LETTER U WITH HAMZA ABOVE;Lo;0;AL;&lt;compat&gt; 06C7 0674;;;;N;ARABIC LETTER HIGH HAMZAH WAW WITH DAMMAH;;;;
++0678;ARABIC LETTER HIGH HAMZA YEH;Lo;0;AL;&lt;compat&gt; 064A 0674;;;;N;ARABIC LETTER HIGH HAMZAH YA;;;;
++0679;ARABIC LETTER TTEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH SMALL TAH;;;;
++067A;ARABIC LETTER TTEHEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH TWO DOTS VERTICAL ABOVE;;;;
++067B;ARABIC LETTER BEEH;Lo;0;AL;;;;;N;ARABIC LETTER BAA WITH TWO DOTS VERTICAL BELOW;;;;
++067C;ARABIC LETTER TEH WITH RING;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH RING;;;;
++067D;ARABIC LETTER TEH WITH THREE DOTS ABOVE DOWNWARDS;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH THREE DOTS ABOVE DOWNWARD;;;;
++067E;ARABIC LETTER PEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH THREE DOTS BELOW;;;;
++067F;ARABIC LETTER TEHEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH FOUR DOTS ABOVE;;;;
++0680;ARABIC LETTER BEHEH;Lo;0;AL;;;;;N;ARABIC LETTER BAA WITH FOUR DOTS BELOW;;;;
++0681;ARABIC LETTER HAH WITH HAMZA ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER HAMZAH ON HAA;;;;
++0682;ARABIC LETTER HAH WITH TWO DOTS VERTICAL ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH TWO DOTS VERTICAL ABOVE;;;;
++0683;ARABIC LETTER NYEH;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH MIDDLE TWO DOTS;;;;
++0684;ARABIC LETTER DYEH;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH MIDDLE TWO DOTS VERTICAL;;;;
++0685;ARABIC LETTER HAH WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH THREE DOTS ABOVE;;;;
++0686;ARABIC LETTER TCHEH;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH MIDDLE THREE DOTS DOWNWARD;;;;
++0687;ARABIC LETTER TCHEHEH;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH MIDDLE FOUR DOTS;;;;
++0688;ARABIC LETTER DDAL;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH SMALL TAH;;;;
++0689;ARABIC LETTER DAL WITH RING;Lo;0;AL;;;;;N;;;;;
++068A;ARABIC LETTER DAL WITH DOT BELOW;Lo;0;AL;;;;;N;;;;;
++068B;ARABIC LETTER DAL WITH DOT BELOW AND SMALL TAH;Lo;0;AL;;;;;N;;;;;
++068C;ARABIC LETTER DAHAL;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH TWO DOTS ABOVE;;;;
++068D;ARABIC LETTER DDAHAL;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH TWO DOTS BELOW;;;;
++068E;ARABIC LETTER DUL;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH THREE DOTS ABOVE;;;;
++068F;ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARDS;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARD;;;;
++0690;ARABIC LETTER DAL WITH FOUR DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
++0691;ARABIC LETTER RREH;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH SMALL TAH;;;;
++0692;ARABIC LETTER REH WITH SMALL V;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH SMALL V;;;;
++0693;ARABIC LETTER REH WITH RING;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH RING;;;;
++0694;ARABIC LETTER REH WITH DOT BELOW;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH DOT BELOW;;;;
++0695;ARABIC LETTER REH WITH SMALL V BELOW;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH SMALL V BELOW;;;;
++0696;ARABIC LETTER REH WITH DOT BELOW AND DOT ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH DOT BELOW AND DOT ABOVE;;;;
++0697;ARABIC LETTER REH WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH TWO DOTS ABOVE;;;;
++0698;ARABIC LETTER JEH;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH THREE DOTS ABOVE;;;;
++0699;ARABIC LETTER REH WITH FOUR DOTS ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH FOUR DOTS ABOVE;;;;
++069A;ARABIC LETTER SEEN WITH DOT BELOW AND DOT ABOVE;Lo;0;AL;;;;;N;;;;;
++069B;ARABIC LETTER SEEN WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;;;;;
++069C;ARABIC LETTER SEEN WITH THREE DOTS BELOW AND THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
++069D;ARABIC LETTER SAD WITH TWO DOTS BELOW;Lo;0;AL;;;;;N;;;;;
++069E;ARABIC LETTER SAD WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
++069F;ARABIC LETTER TAH WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
++06A0;ARABIC LETTER AIN WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
++06A1;ARABIC LETTER DOTLESS FEH;Lo;0;AL;;;;;N;ARABIC LETTER DOTLESS FA;;;;
++06A2;ARABIC LETTER FEH WITH DOT MOVED BELOW;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH DOT MOVED BELOW;;;;
++06A3;ARABIC LETTER FEH WITH DOT BELOW;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH DOT BELOW;;;;
++06A4;ARABIC LETTER VEH;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH THREE DOTS ABOVE;;;;
++06A5;ARABIC LETTER FEH WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH THREE DOTS BELOW;;;;
++06A6;ARABIC LETTER PEHEH;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH FOUR DOTS ABOVE;;;;
++06A7;ARABIC LETTER QAF WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;;
++06A8;ARABIC LETTER QAF WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
++06A9;ARABIC LETTER KEHEH;Lo;0;AL;;;;;N;ARABIC LETTER OPEN CAF;;;;
++06AA;ARABIC LETTER SWASH KAF;Lo;0;AL;;;;;N;ARABIC LETTER SWASH CAF;;;;
++06AB;ARABIC LETTER KAF WITH RING;Lo;0;AL;;;;;N;ARABIC LETTER CAF WITH RING;;;;
++06AC;ARABIC LETTER KAF WITH DOT ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER CAF WITH DOT ABOVE;;;;
++06AD;ARABIC LETTER NG;Lo;0;AL;;;;;N;ARABIC LETTER CAF WITH THREE DOTS ABOVE;;;;
++06AE;ARABIC LETTER KAF WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;ARABIC LETTER CAF WITH THREE DOTS BELOW;;;;
++06AF;ARABIC LETTER GAF;Lo;0;AL;;;;;N;;*;;;
++06B0;ARABIC LETTER GAF WITH RING;Lo;0;AL;;;;;N;;;;;
++06B1;ARABIC LETTER NGOEH;Lo;0;AL;;;;;N;ARABIC LETTER GAF WITH TWO DOTS ABOVE;;;;
++06B2;ARABIC LETTER GAF WITH TWO DOTS BELOW;Lo;0;AL;;;;;N;;;;;
++06B3;ARABIC LETTER GUEH;Lo;0;AL;;;;;N;ARABIC LETTER GAF WITH TWO DOTS VERTICAL BELOW;;;;
++06B4;ARABIC LETTER GAF WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
++06B5;ARABIC LETTER LAM WITH SMALL V;Lo;0;AL;;;;;N;;;;;
++06B6;ARABIC LETTER LAM WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;;
++06B7;ARABIC LETTER LAM WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
++06B8;ARABIC LETTER LAM WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;;;;;
++06B9;ARABIC LETTER NOON WITH DOT BELOW;Lo;0;AL;;;;;N;;;;;
++06BA;ARABIC LETTER NOON GHUNNA;Lo;0;AL;;;;;N;ARABIC LETTER DOTLESS NOON;;;;
++06BB;ARABIC LETTER RNOON;Lo;0;AL;;;;;N;ARABIC LETTER DOTLESS NOON WITH SMALL TAH;;;;
++06BC;ARABIC LETTER NOON WITH RING;Lo;0;AL;;;;;N;;;;;
++06BD;ARABIC LETTER NOON WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
++06BE;ARABIC LETTER HEH DOACHASHMEE;Lo;0;AL;;;;;N;ARABIC LETTER KNOTTED HA;;;;
++06BF;ARABIC LETTER TCHEH WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;;
++06C0;ARABIC LETTER HEH WITH YEH ABOVE;Lo;0;AL;06D5 0654;;;;N;ARABIC LETTER HAMZAH ON HA;;;;
++06C1;ARABIC LETTER HEH GOAL;Lo;0;AL;;;;;N;ARABIC LETTER HA GOAL;;;;
++06C2;ARABIC LETTER HEH GOAL WITH HAMZA ABOVE;Lo;0;AL;06C1 0654;;;;N;ARABIC LETTER HAMZAH ON HA GOAL;;;;
++06C3;ARABIC LETTER TEH MARBUTA GOAL;Lo;0;AL;;;;;N;ARABIC LETTER TAA MARBUTAH GOAL;;;;
++06C4;ARABIC LETTER WAW WITH RING;Lo;0;AL;;;;;N;;;;;
++06C5;ARABIC LETTER KIRGHIZ OE;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH BAR;;;;
++06C6;ARABIC LETTER OE;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH SMALL V;;;;
++06C7;ARABIC LETTER U;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH DAMMAH;;;;
++06C8;ARABIC LETTER YU;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH ALEF ABOVE;;;;
++06C9;ARABIC LETTER KIRGHIZ YU;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH INVERTED SMALL V;;;;
++06CA;ARABIC LETTER WAW WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
++06CB;ARABIC LETTER VE;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH THREE DOTS ABOVE;;;;
++06CC;ARABIC LETTER FARSI YEH;Lo;0;AL;;;;;N;ARABIC LETTER DOTLESS YA;;;;
++06CD;ARABIC LETTER YEH WITH TAIL;Lo;0;AL;;;;;N;ARABIC LETTER YA WITH TAIL;;;;
++06CE;ARABIC LETTER YEH WITH SMALL V;Lo;0;AL;;;;;N;ARABIC LETTER YA WITH SMALL V;;;;
++06CF;ARABIC LETTER WAW WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;;
++06D0;ARABIC LETTER E;Lo;0;AL;;;;;N;ARABIC LETTER YA WITH TWO DOTS VERTICAL BELOW;*;;;
++06D1;ARABIC LETTER YEH WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;ARABIC LETTER YA WITH THREE DOTS BELOW;;;;
++06D2;ARABIC LETTER YEH BARREE;Lo;0;AL;;;;;N;ARABIC LETTER YA BARREE;;;;
++06D3;ARABIC LETTER YEH BARREE WITH HAMZA ABOVE;Lo;0;AL;06D2 0654;;;;N;ARABIC LETTER HAMZAH ON YA BARREE;;;;
++06D4;ARABIC FULL STOP;Po;0;AL;;;;;N;ARABIC PERIOD;;;;
++06D5;ARABIC LETTER AE;Lo;0;AL;;;;;N;;;;;
++06D6;ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA;Mn;230;NSM;;;;;N;;;;;
++06D7;ARABIC SMALL HIGH LIGATURE QAF WITH LAM WITH ALEF MAKSURA;Mn;230;NSM;;;;;N;;;;;
++06D8;ARABIC SMALL HIGH MEEM INITIAL FORM;Mn;230;NSM;;;;;N;;;;;
++06D9;ARABIC SMALL HIGH LAM ALEF;Mn;230;NSM;;;;;N;;;;;
++06DA;ARABIC SMALL HIGH JEEM;Mn;230;NSM;;;;;N;;;;;
++06DB;ARABIC SMALL HIGH THREE DOTS;Mn;230;NSM;;;;;N;;;;;
++06DC;ARABIC SMALL HIGH SEEN;Mn;230;NSM;;;;;N;;;;;
++06DD;ARABIC END OF AYAH;Cf;0;AL;;;;;N;;;;;
++06DE;ARABIC START OF RUB EL HIZB;Me;0;NSM;;;;;N;;;;;
++06DF;ARABIC SMALL HIGH ROUNDED ZERO;Mn;230;NSM;;;;;N;;;;;
++06E0;ARABIC SMALL HIGH UPRIGHT RECTANGULAR ZERO;Mn;230;NSM;;;;;N;;;;;
++06E1;ARABIC SMALL HIGH DOTLESS HEAD OF KHAH;Mn;230;NSM;;;;;N;;;;;
++06E2;ARABIC SMALL HIGH MEEM ISOLATED FORM;Mn;230;NSM;;;;;N;;;;;
++06E3;ARABIC SMALL LOW SEEN;Mn;220;NSM;;;;;N;;;;;
++06E4;ARABIC SMALL HIGH MADDA;Mn;230;NSM;;;;;N;;;;;
++06E5;ARABIC SMALL WAW;Lm;0;AL;;;;;N;;;;;
++06E6;ARABIC SMALL YEH;Lm;0;AL;;;;;N;;;;;
++06E7;ARABIC SMALL HIGH YEH;Mn;230;NSM;;;;;N;;;;;
++06E8;ARABIC SMALL HIGH NOON;Mn;230;NSM;;;;;N;;;;;
++06E9;ARABIC PLACE OF SAJDAH;So;0;ON;;;;;N;;;;;
++06EA;ARABIC EMPTY CENTRE LOW STOP;Mn;220;NSM;;;;;N;;;;;
++06EB;ARABIC EMPTY CENTRE HIGH STOP;Mn;230;NSM;;;;;N;;;;;
++06EC;ARABIC ROUNDED HIGH STOP WITH FILLED CENTRE;Mn;230;NSM;;;;;N;;;;;
++06ED;ARABIC SMALL LOW MEEM;Mn;220;NSM;;;;;N;;;;;
++06EE;ARABIC LETTER DAL WITH INVERTED V;Lo;0;AL;;;;;N;;;;;
++06EF;ARABIC LETTER REH WITH INVERTED V;Lo;0;AL;;;;;N;;;;;
++06F0;EXTENDED ARABIC-INDIC DIGIT ZERO;Nd;0;EN;;0;0;0;N;EASTERN ARABIC-INDIC DIGIT ZERO;;;;
++06F1;EXTENDED ARABIC-INDIC DIGIT ONE;Nd;0;EN;;1;1;1;N;EASTERN ARABIC-INDIC DIGIT ONE;;;;
++06F2;EXTENDED ARABIC-INDIC DIGIT TWO;Nd;0;EN;;2;2;2;N;EASTERN ARABIC-INDIC DIGIT TWO;;;;
++06F3;EXTENDED ARABIC-INDIC DIGIT THREE;Nd;0;EN;;3;3;3;N;EASTERN ARABIC-INDIC DIGIT THREE;;;;
++06F4;EXTENDED ARABIC-INDIC DIGIT FOUR;Nd;0;EN;;4;4;4;N;EASTERN ARABIC-INDIC DIGIT FOUR;;;;
++06F5;EXTENDED ARABIC-INDIC DIGIT FIVE;Nd;0;EN;;5;5;5;N;EASTERN ARABIC-INDIC DIGIT FIVE;;;;
++06F6;EXTENDED ARABIC-INDIC DIGIT SIX;Nd;0;EN;;6;6;6;N;EASTERN ARABIC-INDIC DIGIT SIX;;;;
++06F7;EXTENDED ARABIC-INDIC DIGIT SEVEN;Nd;0;EN;;7;7;7;N;EASTERN ARABIC-INDIC DIGIT SEVEN;;;;
++06F8;EXTENDED ARABIC-INDIC DIGIT EIGHT;Nd;0;EN;;8;8;8;N;EASTERN ARABIC-INDIC DIGIT EIGHT;;;;
++06F9;EXTENDED ARABIC-INDIC DIGIT NINE;Nd;0;EN;;9;9;9;N;EASTERN ARABIC-INDIC DIGIT NINE;;;;
++06FA;ARABIC LETTER SHEEN WITH DOT BELOW;Lo;0;AL;;;;;N;;;;;
++06FB;ARABIC LETTER DAD WITH DOT BELOW;Lo;0;AL;;;;;N;;;;;
++06FC;ARABIC LETTER GHAIN WITH DOT BELOW;Lo;0;AL;;;;;N;;;;;
++06FD;ARABIC SIGN SINDHI AMPERSAND;So;0;AL;;;;;N;;;;;
++06FE;ARABIC SIGN SINDHI POSTPOSITION MEN;So;0;AL;;;;;N;;;;;
++06FF;ARABIC LETTER HEH WITH INVERTED V;Lo;0;AL;;;;;N;;;;;
++FB50;ARABIC LETTER ALEF WASLA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0671;;;;N;;;;;
++FB51;ARABIC LETTER ALEF WASLA FINAL FORM;Lo;0;AL;&lt;final&gt; 0671;;;;N;;;;;
++FB52;ARABIC LETTER BEEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 067B;;;;N;;;;;
++FB53;ARABIC LETTER BEEH FINAL FORM;Lo;0;AL;&lt;final&gt; 067B;;;;N;;;;;
++FB54;ARABIC LETTER BEEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 067B;;;;N;;;;;
++FB55;ARABIC LETTER BEEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 067B;;;;N;;;;;
++FB56;ARABIC LETTER PEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 067E;;;;N;;;;;
++FB57;ARABIC LETTER PEH FINAL FORM;Lo;0;AL;&lt;final&gt; 067E;;;;N;;;;;
++FB58;ARABIC LETTER PEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 067E;;;;N;;;;;
++FB59;ARABIC LETTER PEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 067E;;;;N;;;;;
++FB5A;ARABIC LETTER BEHEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0680;;;;N;;;;;
++FB5B;ARABIC LETTER BEHEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0680;;;;N;;;;;
++FB5C;ARABIC LETTER BEHEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0680;;;;N;;;;;
++FB5D;ARABIC LETTER BEHEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0680;;;;N;;;;;
++FB5E;ARABIC LETTER TTEHEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 067A;;;;N;;;;;
++FB5F;ARABIC LETTER TTEHEH FINAL FORM;Lo;0;AL;&lt;final&gt; 067A;;;;N;;;;;
++FB60;ARABIC LETTER TTEHEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 067A;;;;N;;;;;
++FB61;ARABIC LETTER TTEHEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 067A;;;;N;;;;;
++FB62;ARABIC LETTER TEHEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 067F;;;;N;;;;;
++FB63;ARABIC LETTER TEHEH FINAL FORM;Lo;0;AL;&lt;final&gt; 067F;;;;N;;;;;
++FB64;ARABIC LETTER TEHEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 067F;;;;N;;;;;
++FB65;ARABIC LETTER TEHEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 067F;;;;N;;;;;
++FB66;ARABIC LETTER TTEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0679;;;;N;;;;;
++FB67;ARABIC LETTER TTEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0679;;;;N;;;;;
++FB68;ARABIC LETTER TTEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0679;;;;N;;;;;
++FB69;ARABIC LETTER TTEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0679;;;;N;;;;;
++FB6A;ARABIC LETTER VEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 06A4;;;;N;;;;;
++FB6B;ARABIC LETTER VEH FINAL FORM;Lo;0;AL;&lt;final&gt; 06A4;;;;N;;;;;
++FB6C;ARABIC LETTER VEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 06A4;;;;N;;;;;
++FB6D;ARABIC LETTER VEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 06A4;;;;N;;;;;
++FB6E;ARABIC LETTER PEHEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 06A6;;;;N;;;;;
++FB6F;ARABIC LETTER PEHEH FINAL FORM;Lo;0;AL;&lt;final&gt; 06A6;;;;N;;;;;
++FB70;ARABIC LETTER PEHEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 06A6;;;;N;;;;;
++FB71;ARABIC LETTER PEHEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 06A6;;;;N;;;;;
++FB72;ARABIC LETTER DYEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0684;;;;N;;;;;
++FB73;ARABIC LETTER DYEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0684;;;;N;;;;;
++FB74;ARABIC LETTER DYEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0684;;;;N;;;;;
++FB75;ARABIC LETTER DYEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0684;;;;N;;;;;
++FB76;ARABIC LETTER NYEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0683;;;;N;;;;;
++FB77;ARABIC LETTER NYEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0683;;;;N;;;;;
++FB78;ARABIC LETTER NYEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0683;;;;N;;;;;
++FB79;ARABIC LETTER NYEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0683;;;;N;;;;;
++FB7A;ARABIC LETTER TCHEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0686;;;;N;;;;;
++FB7B;ARABIC LETTER TCHEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0686;;;;N;;;;;
++FB7C;ARABIC LETTER TCHEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0686;;;;N;;;;;
++FB7D;ARABIC LETTER TCHEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0686;;;;N;;;;;
++FB7E;ARABIC LETTER TCHEHEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0687;;;;N;;;;;
++FB7F;ARABIC LETTER TCHEHEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0687;;;;N;;;;;
++FB80;ARABIC LETTER TCHEHEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0687;;;;N;;;;;
++FB81;ARABIC LETTER TCHEHEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0687;;;;N;;;;;
++FB82;ARABIC LETTER DDAHAL ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 068D;;;;N;;;;;
++FB83;ARABIC LETTER DDAHAL FINAL FORM;Lo;0;AL;&lt;final&gt; 068D;;;;N;;;;;
++FB84;ARABIC LETTER DAHAL ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 068C;;;;N;;;;;
++FB85;ARABIC LETTER DAHAL FINAL FORM;Lo;0;AL;&lt;final&gt; 068C;;;;N;;;;;
++FB86;ARABIC LETTER DUL ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 068E;;;;N;;;;;
++FB87;ARABIC LETTER DUL FINAL FORM;Lo;0;AL;&lt;final&gt; 068E;;;;N;;;;;
++FB88;ARABIC LETTER DDAL ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0688;;;;N;;;;;
++FB89;ARABIC LETTER DDAL FINAL FORM;Lo;0;AL;&lt;final&gt; 0688;;;;N;;;;;
++FB8A;ARABIC LETTER JEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0698;;;;N;;;;;
++FB8B;ARABIC LETTER JEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0698;;;;N;;;;;
++FB8C;ARABIC LETTER RREH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0691;;;;N;;;;;
++FB8D;ARABIC LETTER RREH FINAL FORM;Lo;0;AL;&lt;final&gt; 0691;;;;N;;;;;
++FB8E;ARABIC LETTER KEHEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 06A9;;;;N;;;;;
++FB8F;ARABIC LETTER KEHEH FINAL FORM;Lo;0;AL;&lt;final&gt; 06A9;;;;N;;;;;
++FB90;ARABIC LETTER KEHEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 06A9;;;;N;;;;;
++FB91;ARABIC LETTER KEHEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 06A9;;;;N;;;;;
++FB92;ARABIC LETTER GAF ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 06AF;;;;N;;;;;
++FB93;ARABIC LETTER GAF FINAL FORM;Lo;0;AL;&lt;final&gt; 06AF;;;;N;;;;;
++FB94;ARABIC LETTER GAF INITIAL FORM;Lo;0;AL;&lt;initial&gt; 06AF;;;;N;;;;;
++FB95;ARABIC LETTER GAF MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 06AF;;;;N;;;;;
++FB96;ARABIC LETTER GUEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 06B3;;;;N;;;;;
++FB97;ARABIC LETTER GUEH FINAL FORM;Lo;0;AL;&lt;final&gt; 06B3;;;;N;;;;;
++FB98;ARABIC LETTER GUEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 06B3;;;;N;;;;;
++FB99;ARABIC LETTER GUEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 06B3;;;;N;;;;;
++FB9A;ARABIC LETTER NGOEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 06B1;;;;N;;;;;
++FB9B;ARABIC LETTER NGOEH FINAL FORM;Lo;0;AL;&lt;final&gt; 06B1;;;;N;;;;;
++FB9C;ARABIC LETTER NGOEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 06B1;;;;N;;;;;
++FB9D;ARABIC LETTER NGOEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 06B1;;;;N;;;;;
++FB9E;ARABIC LETTER NOON GHUNNA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 06BA;;;;N;;;;;
++FB9F;ARABIC LETTER NOON GHUNNA FINAL FORM;Lo;0;AL;&lt;final&gt; 06BA;;;;N;;;;;
++FBA0;ARABIC LETTER RNOON ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 06BB;;;;N;;;;;
++FBA1;ARABIC LETTER RNOON FINAL FORM;Lo;0;AL;&lt;final&gt; 06BB;;;;N;;;;;
++FBA2;ARABIC LETTER RNOON INITIAL FORM;Lo;0;AL;&lt;initial&gt; 06BB;;;;N;;;;;
++FBA3;ARABIC LETTER RNOON MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 06BB;;;;N;;;;;
++FBA4;ARABIC LETTER HEH WITH YEH ABOVE ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 06C0;;;;N;;;;;
++FBA5;ARABIC LETTER HEH WITH YEH ABOVE FINAL FORM;Lo;0;AL;&lt;final&gt; 06C0;;;;N;;;;;
++FBA6;ARABIC LETTER HEH GOAL ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 06C1;;;;N;;;;;
++FBA7;ARABIC LETTER HEH GOAL FINAL FORM;Lo;0;AL;&lt;final&gt; 06C1;;;;N;;;;;
++FBA8;ARABIC LETTER HEH GOAL INITIAL FORM;Lo;0;AL;&lt;initial&gt; 06C1;;;;N;;;;;
++FBA9;ARABIC LETTER HEH GOAL MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 06C1;;;;N;;;;;
++FBAA;ARABIC LETTER HEH DOACHASHMEE ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 06BE;;;;N;;;;;
++FBAB;ARABIC LETTER HEH DOACHASHMEE FINAL FORM;Lo;0;AL;&lt;final&gt; 06BE;;;;N;;;;;
++FBAC;ARABIC LETTER HEH DOACHASHMEE INITIAL FORM;Lo;0;AL;&lt;initial&gt; 06BE;;;;N;;;;;
++FBAD;ARABIC LETTER HEH DOACHASHMEE MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 06BE;;;;N;;;;;
++FBAE;ARABIC LETTER YEH BARREE ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 06D2;;;;N;;;;;
++FBAF;ARABIC LETTER YEH BARREE FINAL FORM;Lo;0;AL;&lt;final&gt; 06D2;;;;N;;;;;
++FBB0;ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 06D3;;;;N;;;;;
++FBB1;ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM;Lo;0;AL;&lt;final&gt; 06D3;;;;N;;;;;
++FBD3;ARABIC LETTER NG ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 06AD;;;;N;;;;;
++FBD4;ARABIC LETTER NG FINAL FORM;Lo;0;AL;&lt;final&gt; 06AD;;;;N;;;;;
++FBD5;ARABIC LETTER NG INITIAL FORM;Lo;0;AL;&lt;initial&gt; 06AD;;;;N;;;;;
++FBD6;ARABIC LETTER NG MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 06AD;;;;N;;;;;
++FBD7;ARABIC LETTER U ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 06C7;;;;N;;;;;
++FBD8;ARABIC LETTER U FINAL FORM;Lo;0;AL;&lt;final&gt; 06C7;;;;N;;;;;
++FBD9;ARABIC LETTER OE ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 06C6;;;;N;;;;;
++FBDA;ARABIC LETTER OE FINAL FORM;Lo;0;AL;&lt;final&gt; 06C6;;;;N;;;;;
++FBDB;ARABIC LETTER YU ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 06C8;;;;N;;;;;
++FBDC;ARABIC LETTER YU FINAL FORM;Lo;0;AL;&lt;final&gt; 06C8;;;;N;;;;;
++FBDD;ARABIC LETTER U WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0677;;;;N;;;;;
++FBDE;ARABIC LETTER VE ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 06CB;;;;N;;;;;
++FBDF;ARABIC LETTER VE FINAL FORM;Lo;0;AL;&lt;final&gt; 06CB;;;;N;;;;;
++FBE0;ARABIC LETTER KIRGHIZ OE ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 06C5;;;;N;;;;;
++FBE1;ARABIC LETTER KIRGHIZ OE FINAL FORM;Lo;0;AL;&lt;final&gt; 06C5;;;;N;;;;;
++FBE2;ARABIC LETTER KIRGHIZ YU ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 06C9;;;;N;;;;;
++FBE3;ARABIC LETTER KIRGHIZ YU FINAL FORM;Lo;0;AL;&lt;final&gt; 06C9;;;;N;;;;;
++FBE4;ARABIC LETTER E ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 06D0;;;;N;;;;;
++FBE5;ARABIC LETTER E FINAL FORM;Lo;0;AL;&lt;final&gt; 06D0;;;;N;;;;;
++FBE6;ARABIC LETTER E INITIAL FORM;Lo;0;AL;&lt;initial&gt; 06D0;;;;N;;;;;
++FBE7;ARABIC LETTER E MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 06D0;;;;N;;;;;
++FBE8;ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0649;;;;N;;;;;
++FBE9;ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0649;;;;N;;;;;
++FBEA;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0626 0627;;;;N;;;;;
++FBEB;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF FINAL FORM;Lo;0;AL;&lt;final&gt; 0626 0627;;;;N;;;;;
++FBEC;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0626 06D5;;;;N;;;;;
++FBED;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE FINAL FORM;Lo;0;AL;&lt;final&gt; 0626 06D5;;;;N;;;;;
++FBEE;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0626 0648;;;;N;;;;;
++FBEF;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW FINAL FORM;Lo;0;AL;&lt;final&gt; 0626 0648;;;;N;;;;;
++FBF0;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0626 06C7;;;;N;;;;;
++FBF1;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U FINAL FORM;Lo;0;AL;&lt;final&gt; 0626 06C7;;;;N;;;;;
++FBF2;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0626 06C6;;;;N;;;;;
++FBF3;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE FINAL FORM;Lo;0;AL;&lt;final&gt; 0626 06C6;;;;N;;;;;
++FBF4;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0626 06C8;;;;N;;;;;
++FBF5;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU FINAL FORM;Lo;0;AL;&lt;final&gt; 0626 06C8;;;;N;;;;;
++FBF6;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0626 06D0;;;;N;;;;;
++FBF7;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E FINAL FORM;Lo;0;AL;&lt;final&gt; 0626 06D0;;;;N;;;;;
++FBF8;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0626 06D0;;;;N;;;;;
++FBF9;ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0626 0649;;;;N;;;;;
++FBFA;ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 0626 0649;;;;N;;;;;
++FBFB;ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0626 0649;;;;N;;;;;
++FBFC;ARABIC LETTER FARSI YEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 06CC;;;;N;;;;;
++FBFD;ARABIC LETTER FARSI YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 06CC;;;;N;;;;;
++FBFE;ARABIC LETTER FARSI YEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 06CC;;;;N;;;;;
++FBFF;ARABIC LETTER FARSI YEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 06CC;;;;N;;;;;
++FC00;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0626 062C;;;;N;;;;;
++FC01;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0626 062D;;;;N;;;;;
++FC02;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0626 0645;;;;N;;;;;
++FC03;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0626 0649;;;;N;;;;;
++FC04;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0626 064A;;;;N;;;;;
++FC05;ARABIC LIGATURE BEH WITH JEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0628 062C;;;;N;;;;;
++FC06;ARABIC LIGATURE BEH WITH HAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0628 062D;;;;N;;;;;
++FC07;ARABIC LIGATURE BEH WITH KHAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0628 062E;;;;N;;;;;
++FC08;ARABIC LIGATURE BEH WITH MEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0628 0645;;;;N;;;;;
++FC09;ARABIC LIGATURE BEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0628 0649;;;;N;;;;;
++FC0A;ARABIC LIGATURE BEH WITH YEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0628 064A;;;;N;;;;;
++FC0B;ARABIC LIGATURE TEH WITH JEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062A 062C;;;;N;;;;;
++FC0C;ARABIC LIGATURE TEH WITH HAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062A 062D;;;;N;;;;;
++FC0D;ARABIC LIGATURE TEH WITH KHAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062A 062E;;;;N;;;;;
++FC0E;ARABIC LIGATURE TEH WITH MEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062A 0645;;;;N;;;;;
++FC0F;ARABIC LIGATURE TEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062A 0649;;;;N;;;;;
++FC10;ARABIC LIGATURE TEH WITH YEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062A 064A;;;;N;;;;;
++FC11;ARABIC LIGATURE THEH WITH JEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062B 062C;;;;N;;;;;
++FC12;ARABIC LIGATURE THEH WITH MEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062B 0645;;;;N;;;;;
++FC13;ARABIC LIGATURE THEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062B 0649;;;;N;;;;;
++FC14;ARABIC LIGATURE THEH WITH YEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062B 064A;;;;N;;;;;
++FC15;ARABIC LIGATURE JEEM WITH HAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062C 062D;;;;N;;;;;
++FC16;ARABIC LIGATURE JEEM WITH MEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062C 0645;;;;N;;;;;
++FC17;ARABIC LIGATURE HAH WITH JEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062D 062C;;;;N;;;;;
++FC18;ARABIC LIGATURE HAH WITH MEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062D 0645;;;;N;;;;;
++FC19;ARABIC LIGATURE KHAH WITH JEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062E 062C;;;;N;;;;;
++FC1A;ARABIC LIGATURE KHAH WITH HAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062E 062D;;;;N;;;;;
++FC1B;ARABIC LIGATURE KHAH WITH MEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062E 0645;;;;N;;;;;
++FC1C;ARABIC LIGATURE SEEN WITH JEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0633 062C;;;;N;;;;;
++FC1D;ARABIC LIGATURE SEEN WITH HAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0633 062D;;;;N;;;;;
++FC1E;ARABIC LIGATURE SEEN WITH KHAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0633 062E;;;;N;;;;;
++FC1F;ARABIC LIGATURE SEEN WITH MEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0633 0645;;;;N;;;;;
++FC20;ARABIC LIGATURE SAD WITH HAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0635 062D;;;;N;;;;;
++FC21;ARABIC LIGATURE SAD WITH MEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0635 0645;;;;N;;;;;
++FC22;ARABIC LIGATURE DAD WITH JEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0636 062C;;;;N;;;;;
++FC23;ARABIC LIGATURE DAD WITH HAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0636 062D;;;;N;;;;;
++FC24;ARABIC LIGATURE DAD WITH KHAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0636 062E;;;;N;;;;;
++FC25;ARABIC LIGATURE DAD WITH MEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0636 0645;;;;N;;;;;
++FC26;ARABIC LIGATURE TAH WITH HAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0637 062D;;;;N;;;;;
++FC27;ARABIC LIGATURE TAH WITH MEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0637 0645;;;;N;;;;;
++FC28;ARABIC LIGATURE ZAH WITH MEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0638 0645;;;;N;;;;;
++FC29;ARABIC LIGATURE AIN WITH JEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0639 062C;;;;N;;;;;
++FC2A;ARABIC LIGATURE AIN WITH MEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0639 0645;;;;N;;;;;
++FC2B;ARABIC LIGATURE GHAIN WITH JEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 063A 062C;;;;N;;;;;
++FC2C;ARABIC LIGATURE GHAIN WITH MEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 063A 0645;;;;N;;;;;
++FC2D;ARABIC LIGATURE FEH WITH JEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0641 062C;;;;N;;;;;
++FC2E;ARABIC LIGATURE FEH WITH HAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0641 062D;;;;N;;;;;
++FC2F;ARABIC LIGATURE FEH WITH KHAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0641 062E;;;;N;;;;;
++FC30;ARABIC LIGATURE FEH WITH MEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0641 0645;;;;N;;;;;
++FC31;ARABIC LIGATURE FEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0641 0649;;;;N;;;;;
++FC32;ARABIC LIGATURE FEH WITH YEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0641 064A;;;;N;;;;;
++FC33;ARABIC LIGATURE QAF WITH HAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0642 062D;;;;N;;;;;
++FC34;ARABIC LIGATURE QAF WITH MEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0642 0645;;;;N;;;;;
++FC35;ARABIC LIGATURE QAF WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0642 0649;;;;N;;;;;
++FC36;ARABIC LIGATURE QAF WITH YEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0642 064A;;;;N;;;;;
++FC37;ARABIC LIGATURE KAF WITH ALEF ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0643 0627;;;;N;;;;;
++FC38;ARABIC LIGATURE KAF WITH JEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0643 062C;;;;N;;;;;
++FC39;ARABIC LIGATURE KAF WITH HAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0643 062D;;;;N;;;;;
++FC3A;ARABIC LIGATURE KAF WITH KHAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0643 062E;;;;N;;;;;
++FC3B;ARABIC LIGATURE KAF WITH LAM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0643 0644;;;;N;;;;;
++FC3C;ARABIC LIGATURE KAF WITH MEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0643 0645;;;;N;;;;;
++FC3D;ARABIC LIGATURE KAF WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0643 0649;;;;N;;;;;
++FC3E;ARABIC LIGATURE KAF WITH YEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0643 064A;;;;N;;;;;
++FC3F;ARABIC LIGATURE LAM WITH JEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0644 062C;;;;N;;;;;
++FC40;ARABIC LIGATURE LAM WITH HAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0644 062D;;;;N;;;;;
++FC41;ARABIC LIGATURE LAM WITH KHAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0644 062E;;;;N;;;;;
++FC42;ARABIC LIGATURE LAM WITH MEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0644 0645;;;;N;;;;;
++FC43;ARABIC LIGATURE LAM WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0644 0649;;;;N;;;;;
++FC44;ARABIC LIGATURE LAM WITH YEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0644 064A;;;;N;;;;;
++FC45;ARABIC LIGATURE MEEM WITH JEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0645 062C;;;;N;;;;;
++FC46;ARABIC LIGATURE MEEM WITH HAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0645 062D;;;;N;;;;;
++FC47;ARABIC LIGATURE MEEM WITH KHAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0645 062E;;;;N;;;;;
++FC48;ARABIC LIGATURE MEEM WITH MEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0645 0645;;;;N;;;;;
++FC49;ARABIC LIGATURE MEEM WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0645 0649;;;;N;;;;;
++FC4A;ARABIC LIGATURE MEEM WITH YEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0645 064A;;;;N;;;;;
++FC4B;ARABIC LIGATURE NOON WITH JEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0646 062C;;;;N;;;;;
++FC4C;ARABIC LIGATURE NOON WITH HAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0646 062D;;;;N;;;;;
++FC4D;ARABIC LIGATURE NOON WITH KHAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0646 062E;;;;N;;;;;
++FC4E;ARABIC LIGATURE NOON WITH MEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0646 0645;;;;N;;;;;
++FC4F;ARABIC LIGATURE NOON WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0646 0649;;;;N;;;;;
++FC50;ARABIC LIGATURE NOON WITH YEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0646 064A;;;;N;;;;;
++FC51;ARABIC LIGATURE HEH WITH JEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0647 062C;;;;N;;;;;
++FC52;ARABIC LIGATURE HEH WITH MEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0647 0645;;;;N;;;;;
++FC53;ARABIC LIGATURE HEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0647 0649;;;;N;;;;;
++FC54;ARABIC LIGATURE HEH WITH YEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0647 064A;;;;N;;;;;
++FC55;ARABIC LIGATURE YEH WITH JEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 064A 062C;;;;N;;;;;
++FC56;ARABIC LIGATURE YEH WITH HAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 064A 062D;;;;N;;;;;
++FC57;ARABIC LIGATURE YEH WITH KHAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 064A 062E;;;;N;;;;;
++FC58;ARABIC LIGATURE YEH WITH MEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 064A 0645;;;;N;;;;;
++FC59;ARABIC LIGATURE YEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 064A 0649;;;;N;;;;;
++FC5A;ARABIC LIGATURE YEH WITH YEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 064A 064A;;;;N;;;;;
++FC5B;ARABIC LIGATURE THAL WITH SUPERSCRIPT ALEF ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0630 0670;;;;N;;;;;
++FC5C;ARABIC LIGATURE REH WITH SUPERSCRIPT ALEF ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0631 0670;;;;N;;;;;
++FC5D;ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0649 0670;;;;N;;;;;
++FC5E;ARABIC LIGATURE SHADDA WITH DAMMATAN ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0020 064C 0651;;;;N;;;;;
++FC5F;ARABIC LIGATURE SHADDA WITH KASRATAN ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0020 064D 0651;;;;N;;;;;
++FC60;ARABIC LIGATURE SHADDA WITH FATHA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0020 064E 0651;;;;N;;;;;
++FC61;ARABIC LIGATURE SHADDA WITH DAMMA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0020 064F 0651;;;;N;;;;;
++FC62;ARABIC LIGATURE SHADDA WITH KASRA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0020 0650 0651;;;;N;;;;;
++FC63;ARABIC LIGATURE SHADDA WITH SUPERSCRIPT ALEF ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0020 0651 0670;;;;N;;;;;
++FC64;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH REH FINAL FORM;Lo;0;AL;&lt;final&gt; 0626 0631;;;;N;;;;;
++FC65;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ZAIN FINAL FORM;Lo;0;AL;&lt;final&gt; 0626 0632;;;;N;;;;;
++FC66;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 0626 0645;;;;N;;;;;
++FC67;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH NOON FINAL FORM;Lo;0;AL;&lt;final&gt; 0626 0646;;;;N;;;;;
++FC68;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 0626 0649;;;;N;;;;;
++FC69;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0626 064A;;;;N;;;;;
++FC6A;ARABIC LIGATURE BEH WITH REH FINAL FORM;Lo;0;AL;&lt;final&gt; 0628 0631;;;;N;;;;;
++FC6B;ARABIC LIGATURE BEH WITH ZAIN FINAL FORM;Lo;0;AL;&lt;final&gt; 0628 0632;;;;N;;;;;
++FC6C;ARABIC LIGATURE BEH WITH MEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 0628 0645;;;;N;;;;;
++FC6D;ARABIC LIGATURE BEH WITH NOON FINAL FORM;Lo;0;AL;&lt;final&gt; 0628 0646;;;;N;;;;;
++FC6E;ARABIC LIGATURE BEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 0628 0649;;;;N;;;;;
++FC6F;ARABIC LIGATURE BEH WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0628 064A;;;;N;;;;;
++FC70;ARABIC LIGATURE TEH WITH REH FINAL FORM;Lo;0;AL;&lt;final&gt; 062A 0631;;;;N;;;;;
++FC71;ARABIC LIGATURE TEH WITH ZAIN FINAL FORM;Lo;0;AL;&lt;final&gt; 062A 0632;;;;N;;;;;
++FC72;ARABIC LIGATURE TEH WITH MEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 062A 0645;;;;N;;;;;
++FC73;ARABIC LIGATURE TEH WITH NOON FINAL FORM;Lo;0;AL;&lt;final&gt; 062A 0646;;;;N;;;;;
++FC74;ARABIC LIGATURE TEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 062A 0649;;;;N;;;;;
++FC75;ARABIC LIGATURE TEH WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 062A 064A;;;;N;;;;;
++FC76;ARABIC LIGATURE THEH WITH REH FINAL FORM;Lo;0;AL;&lt;final&gt; 062B 0631;;;;N;;;;;
++FC77;ARABIC LIGATURE THEH WITH ZAIN FINAL FORM;Lo;0;AL;&lt;final&gt; 062B 0632;;;;N;;;;;
++FC78;ARABIC LIGATURE THEH WITH MEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 062B 0645;;;;N;;;;;
++FC79;ARABIC LIGATURE THEH WITH NOON FINAL FORM;Lo;0;AL;&lt;final&gt; 062B 0646;;;;N;;;;;
++FC7A;ARABIC LIGATURE THEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 062B 0649;;;;N;;;;;
++FC7B;ARABIC LIGATURE THEH WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 062B 064A;;;;N;;;;;
++FC7C;ARABIC LIGATURE FEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 0641 0649;;;;N;;;;;
++FC7D;ARABIC LIGATURE FEH WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0641 064A;;;;N;;;;;
++FC7E;ARABIC LIGATURE QAF WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 0642 0649;;;;N;;;;;
++FC7F;ARABIC LIGATURE QAF WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0642 064A;;;;N;;;;;
++FC80;ARABIC LIGATURE KAF WITH ALEF FINAL FORM;Lo;0;AL;&lt;final&gt; 0643 0627;;;;N;;;;;
++FC81;ARABIC LIGATURE KAF WITH LAM FINAL FORM;Lo;0;AL;&lt;final&gt; 0643 0644;;;;N;;;;;
++FC82;ARABIC LIGATURE KAF WITH MEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 0643 0645;;;;N;;;;;
++FC83;ARABIC LIGATURE KAF WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 0643 0649;;;;N;;;;;
++FC84;ARABIC LIGATURE KAF WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0643 064A;;;;N;;;;;
++FC85;ARABIC LIGATURE LAM WITH MEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 0644 0645;;;;N;;;;;
++FC86;ARABIC LIGATURE LAM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 0644 0649;;;;N;;;;;
++FC87;ARABIC LIGATURE LAM WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0644 064A;;;;N;;;;;
++FC88;ARABIC LIGATURE MEEM WITH ALEF FINAL FORM;Lo;0;AL;&lt;final&gt; 0645 0627;;;;N;;;;;
++FC89;ARABIC LIGATURE MEEM WITH MEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 0645 0645;;;;N;;;;;
++FC8A;ARABIC LIGATURE NOON WITH REH FINAL FORM;Lo;0;AL;&lt;final&gt; 0646 0631;;;;N;;;;;
++FC8B;ARABIC LIGATURE NOON WITH ZAIN FINAL FORM;Lo;0;AL;&lt;final&gt; 0646 0632;;;;N;;;;;
++FC8C;ARABIC LIGATURE NOON WITH MEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 0646 0645;;;;N;;;;;
++FC8D;ARABIC LIGATURE NOON WITH NOON FINAL FORM;Lo;0;AL;&lt;final&gt; 0646 0646;;;;N;;;;;
++FC8E;ARABIC LIGATURE NOON WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 0646 0649;;;;N;;;;;
++FC8F;ARABIC LIGATURE NOON WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0646 064A;;;;N;;;;;
++FC90;ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF FINAL FORM;Lo;0;AL;&lt;final&gt; 0649 0670;;;;N;;;;;
++FC91;ARABIC LIGATURE YEH WITH REH FINAL FORM;Lo;0;AL;&lt;final&gt; 064A 0631;;;;N;;;;;
++FC92;ARABIC LIGATURE YEH WITH ZAIN FINAL FORM;Lo;0;AL;&lt;final&gt; 064A 0632;;;;N;;;;;
++FC93;ARABIC LIGATURE YEH WITH MEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 064A 0645;;;;N;;;;;
++FC94;ARABIC LIGATURE YEH WITH NOON FINAL FORM;Lo;0;AL;&lt;final&gt; 064A 0646;;;;N;;;;;
++FC95;ARABIC LIGATURE YEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 064A 0649;;;;N;;;;;
++FC96;ARABIC LIGATURE YEH WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 064A 064A;;;;N;;;;;
++FC97;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0626 062C;;;;N;;;;;
++FC98;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0626 062D;;;;N;;;;;
++FC99;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH KHAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0626 062E;;;;N;;;;;
++FC9A;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0626 0645;;;;N;;;;;
++FC9B;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0626 0647;;;;N;;;;;
++FC9C;ARABIC LIGATURE BEH WITH JEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0628 062C;;;;N;;;;;
++FC9D;ARABIC LIGATURE BEH WITH HAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0628 062D;;;;N;;;;;
++FC9E;ARABIC LIGATURE BEH WITH KHAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0628 062E;;;;N;;;;;
++FC9F;ARABIC LIGATURE BEH WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0628 0645;;;;N;;;;;
++FCA0;ARABIC LIGATURE BEH WITH HEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0628 0647;;;;N;;;;;
++FCA1;ARABIC LIGATURE TEH WITH JEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 062A 062C;;;;N;;;;;
++FCA2;ARABIC LIGATURE TEH WITH HAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 062A 062D;;;;N;;;;;
++FCA3;ARABIC LIGATURE TEH WITH KHAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 062A 062E;;;;N;;;;;
++FCA4;ARABIC LIGATURE TEH WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 062A 0645;;;;N;;;;;
++FCA5;ARABIC LIGATURE TEH WITH HEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 062A 0647;;;;N;;;;;
++FCA6;ARABIC LIGATURE THEH WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 062B 0645;;;;N;;;;;
++FCA7;ARABIC LIGATURE JEEM WITH HAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 062C 062D;;;;N;;;;;
++FCA8;ARABIC LIGATURE JEEM WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 062C 0645;;;;N;;;;;
++FCA9;ARABIC LIGATURE HAH WITH JEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 062D 062C;;;;N;;;;;
++FCAA;ARABIC LIGATURE HAH WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 062D 0645;;;;N;;;;;
++FCAB;ARABIC LIGATURE KHAH WITH JEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 062E 062C;;;;N;;;;;
++FCAC;ARABIC LIGATURE KHAH WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 062E 0645;;;;N;;;;;
++FCAD;ARABIC LIGATURE SEEN WITH JEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0633 062C;;;;N;;;;;
++FCAE;ARABIC LIGATURE SEEN WITH HAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0633 062D;;;;N;;;;;
++FCAF;ARABIC LIGATURE SEEN WITH KHAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0633 062E;;;;N;;;;;
++FCB0;ARABIC LIGATURE SEEN WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0633 0645;;;;N;;;;;
++FCB1;ARABIC LIGATURE SAD WITH HAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0635 062D;;;;N;;;;;
++FCB2;ARABIC LIGATURE SAD WITH KHAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0635 062E;;;;N;;;;;
++FCB3;ARABIC LIGATURE SAD WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0635 0645;;;;N;;;;;
++FCB4;ARABIC LIGATURE DAD WITH JEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0636 062C;;;;N;;;;;
++FCB5;ARABIC LIGATURE DAD WITH HAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0636 062D;;;;N;;;;;
++FCB6;ARABIC LIGATURE DAD WITH KHAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0636 062E;;;;N;;;;;
++FCB7;ARABIC LIGATURE DAD WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0636 0645;;;;N;;;;;
++FCB8;ARABIC LIGATURE TAH WITH HAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0637 062D;;;;N;;;;;
++FCB9;ARABIC LIGATURE ZAH WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0638 0645;;;;N;;;;;
++FCBA;ARABIC LIGATURE AIN WITH JEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0639 062C;;;;N;;;;;
++FCBB;ARABIC LIGATURE AIN WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0639 0645;;;;N;;;;;
++FCBC;ARABIC LIGATURE GHAIN WITH JEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 063A 062C;;;;N;;;;;
++FCBD;ARABIC LIGATURE GHAIN WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 063A 0645;;;;N;;;;;
++FCBE;ARABIC LIGATURE FEH WITH JEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0641 062C;;;;N;;;;;
++FCBF;ARABIC LIGATURE FEH WITH HAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0641 062D;;;;N;;;;;
++FCC0;ARABIC LIGATURE FEH WITH KHAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0641 062E;;;;N;;;;;
++FCC1;ARABIC LIGATURE FEH WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0641 0645;;;;N;;;;;
++FCC2;ARABIC LIGATURE QAF WITH HAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0642 062D;;;;N;;;;;
++FCC3;ARABIC LIGATURE QAF WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0642 0645;;;;N;;;;;
++FCC4;ARABIC LIGATURE KAF WITH JEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0643 062C;;;;N;;;;;
++FCC5;ARABIC LIGATURE KAF WITH HAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0643 062D;;;;N;;;;;
++FCC6;ARABIC LIGATURE KAF WITH KHAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0643 062E;;;;N;;;;;
++FCC7;ARABIC LIGATURE KAF WITH LAM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0643 0644;;;;N;;;;;
++FCC8;ARABIC LIGATURE KAF WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0643 0645;;;;N;;;;;
++FCC9;ARABIC LIGATURE LAM WITH JEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0644 062C;;;;N;;;;;
++FCCA;ARABIC LIGATURE LAM WITH HAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0644 062D;;;;N;;;;;
++FCCB;ARABIC LIGATURE LAM WITH KHAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0644 062E;;;;N;;;;;
++FCCC;ARABIC LIGATURE LAM WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0644 0645;;;;N;;;;;
++FCCD;ARABIC LIGATURE LAM WITH HEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0644 0647;;;;N;;;;;
++FCCE;ARABIC LIGATURE MEEM WITH JEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0645 062C;;;;N;;;;;
++FCCF;ARABIC LIGATURE MEEM WITH HAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0645 062D;;;;N;;;;;
++FCD0;ARABIC LIGATURE MEEM WITH KHAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0645 062E;;;;N;;;;;
++FCD1;ARABIC LIGATURE MEEM WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0645 0645;;;;N;;;;;
++FCD2;ARABIC LIGATURE NOON WITH JEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0646 062C;;;;N;;;;;
++FCD3;ARABIC LIGATURE NOON WITH HAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0646 062D;;;;N;;;;;
++FCD4;ARABIC LIGATURE NOON WITH KHAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0646 062E;;;;N;;;;;
++FCD5;ARABIC LIGATURE NOON WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0646 0645;;;;N;;;;;
++FCD6;ARABIC LIGATURE NOON WITH HEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0646 0647;;;;N;;;;;
++FCD7;ARABIC LIGATURE HEH WITH JEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0647 062C;;;;N;;;;;
++FCD8;ARABIC LIGATURE HEH WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0647 0645;;;;N;;;;;
++FCD9;ARABIC LIGATURE HEH WITH SUPERSCRIPT ALEF INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0647 0670;;;;N;;;;;
++FCDA;ARABIC LIGATURE YEH WITH JEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 064A 062C;;;;N;;;;;
++FCDB;ARABIC LIGATURE YEH WITH HAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 064A 062D;;;;N;;;;;
++FCDC;ARABIC LIGATURE YEH WITH KHAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 064A 062E;;;;N;;;;;
++FCDD;ARABIC LIGATURE YEH WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 064A 0645;;;;N;;;;;
++FCDE;ARABIC LIGATURE YEH WITH HEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 064A 0647;;;;N;;;;;
++FCDF;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0626 0645;;;;N;;;;;
++FCE0;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0626 0647;;;;N;;;;;
++FCE1;ARABIC LIGATURE BEH WITH MEEM MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0628 0645;;;;N;;;;;
++FCE2;ARABIC LIGATURE BEH WITH HEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0628 0647;;;;N;;;;;
++FCE3;ARABIC LIGATURE TEH WITH MEEM MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 062A 0645;;;;N;;;;;
++FCE4;ARABIC LIGATURE TEH WITH HEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 062A 0647;;;;N;;;;;
++FCE5;ARABIC LIGATURE THEH WITH MEEM MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 062B 0645;;;;N;;;;;
++FCE6;ARABIC LIGATURE THEH WITH HEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 062B 0647;;;;N;;;;;
++FCE7;ARABIC LIGATURE SEEN WITH MEEM MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0633 0645;;;;N;;;;;
++FCE8;ARABIC LIGATURE SEEN WITH HEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0633 0647;;;;N;;;;;
++FCE9;ARABIC LIGATURE SHEEN WITH MEEM MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0634 0645;;;;N;;;;;
++FCEA;ARABIC LIGATURE SHEEN WITH HEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0634 0647;;;;N;;;;;
++FCEB;ARABIC LIGATURE KAF WITH LAM MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0643 0644;;;;N;;;;;
++FCEC;ARABIC LIGATURE KAF WITH MEEM MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0643 0645;;;;N;;;;;
++FCED;ARABIC LIGATURE LAM WITH MEEM MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0644 0645;;;;N;;;;;
++FCEE;ARABIC LIGATURE NOON WITH MEEM MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0646 0645;;;;N;;;;;
++FCEF;ARABIC LIGATURE NOON WITH HEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0646 0647;;;;N;;;;;
++FCF0;ARABIC LIGATURE YEH WITH MEEM MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 064A 0645;;;;N;;;;;
++FCF1;ARABIC LIGATURE YEH WITH HEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 064A 0647;;;;N;;;;;
++FCF2;ARABIC LIGATURE SHADDA WITH FATHA MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0640 064E 0651;;;;N;;;;;
++FCF3;ARABIC LIGATURE SHADDA WITH DAMMA MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0640 064F 0651;;;;N;;;;;
++FCF4;ARABIC LIGATURE SHADDA WITH KASRA MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0640 0650 0651;;;;N;;;;;
++FCF5;ARABIC LIGATURE TAH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0637 0649;;;;N;;;;;
++FCF6;ARABIC LIGATURE TAH WITH YEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0637 064A;;;;N;;;;;
++FCF7;ARABIC LIGATURE AIN WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0639 0649;;;;N;;;;;
++FCF8;ARABIC LIGATURE AIN WITH YEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0639 064A;;;;N;;;;;
++FCF9;ARABIC LIGATURE GHAIN WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 063A 0649;;;;N;;;;;
++FCFA;ARABIC LIGATURE GHAIN WITH YEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 063A 064A;;;;N;;;;;
++FCFB;ARABIC LIGATURE SEEN WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0633 0649;;;;N;;;;;
++FCFC;ARABIC LIGATURE SEEN WITH YEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0633 064A;;;;N;;;;;
++FCFD;ARABIC LIGATURE SHEEN WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0634 0649;;;;N;;;;;
++FCFE;ARABIC LIGATURE SHEEN WITH YEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0634 064A;;;;N;;;;;
++FCFF;ARABIC LIGATURE HAH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062D 0649;;;;N;;;;;
++FD00;ARABIC LIGATURE HAH WITH YEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062D 064A;;;;N;;;;;
++FD01;ARABIC LIGATURE JEEM WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062C 0649;;;;N;;;;;
++FD02;ARABIC LIGATURE JEEM WITH YEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062C 064A;;;;N;;;;;
++FD03;ARABIC LIGATURE KHAH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062E 0649;;;;N;;;;;
++FD04;ARABIC LIGATURE KHAH WITH YEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062E 064A;;;;N;;;;;
++FD05;ARABIC LIGATURE SAD WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0635 0649;;;;N;;;;;
++FD06;ARABIC LIGATURE SAD WITH YEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0635 064A;;;;N;;;;;
++FD07;ARABIC LIGATURE DAD WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0636 0649;;;;N;;;;;
++FD08;ARABIC LIGATURE DAD WITH YEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0636 064A;;;;N;;;;;
++FD09;ARABIC LIGATURE SHEEN WITH JEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0634 062C;;;;N;;;;;
++FD0A;ARABIC LIGATURE SHEEN WITH HAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0634 062D;;;;N;;;;;
++FD0B;ARABIC LIGATURE SHEEN WITH KHAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0634 062E;;;;N;;;;;
++FD0C;ARABIC LIGATURE SHEEN WITH MEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0634 0645;;;;N;;;;;
++FD0D;ARABIC LIGATURE SHEEN WITH REH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0634 0631;;;;N;;;;;
++FD0E;ARABIC LIGATURE SEEN WITH REH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0633 0631;;;;N;;;;;
++FD0F;ARABIC LIGATURE SAD WITH REH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0635 0631;;;;N;;;;;
++FD10;ARABIC LIGATURE DAD WITH REH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0636 0631;;;;N;;;;;
++FD11;ARABIC LIGATURE TAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 0637 0649;;;;N;;;;;
++FD12;ARABIC LIGATURE TAH WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0637 064A;;;;N;;;;;
++FD13;ARABIC LIGATURE AIN WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 0639 0649;;;;N;;;;;
++FD14;ARABIC LIGATURE AIN WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0639 064A;;;;N;;;;;
++FD15;ARABIC LIGATURE GHAIN WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 063A 0649;;;;N;;;;;
++FD16;ARABIC LIGATURE GHAIN WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 063A 064A;;;;N;;;;;
++FD17;ARABIC LIGATURE SEEN WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 0633 0649;;;;N;;;;;
++FD18;ARABIC LIGATURE SEEN WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0633 064A;;;;N;;;;;
++FD19;ARABIC LIGATURE SHEEN WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 0634 0649;;;;N;;;;;
++FD1A;ARABIC LIGATURE SHEEN WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0634 064A;;;;N;;;;;
++FD1B;ARABIC LIGATURE HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 062D 0649;;;;N;;;;;
++FD1C;ARABIC LIGATURE HAH WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 062D 064A;;;;N;;;;;
++FD1D;ARABIC LIGATURE JEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 062C 0649;;;;N;;;;;
++FD1E;ARABIC LIGATURE JEEM WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 062C 064A;;;;N;;;;;
++FD1F;ARABIC LIGATURE KHAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 062E 0649;;;;N;;;;;
++FD20;ARABIC LIGATURE KHAH WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 062E 064A;;;;N;;;;;
++FD21;ARABIC LIGATURE SAD WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 0635 0649;;;;N;;;;;
++FD22;ARABIC LIGATURE SAD WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0635 064A;;;;N;;;;;
++FD23;ARABIC LIGATURE DAD WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 0636 0649;;;;N;;;;;
++FD24;ARABIC LIGATURE DAD WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0636 064A;;;;N;;;;;
++FD25;ARABIC LIGATURE SHEEN WITH JEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 0634 062C;;;;N;;;;;
++FD26;ARABIC LIGATURE SHEEN WITH HAH FINAL FORM;Lo;0;AL;&lt;final&gt; 0634 062D;;;;N;;;;;
++FD27;ARABIC LIGATURE SHEEN WITH KHAH FINAL FORM;Lo;0;AL;&lt;final&gt; 0634 062E;;;;N;;;;;
++FD28;ARABIC LIGATURE SHEEN WITH MEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 0634 0645;;;;N;;;;;
++FD29;ARABIC LIGATURE SHEEN WITH REH FINAL FORM;Lo;0;AL;&lt;final&gt; 0634 0631;;;;N;;;;;
++FD2A;ARABIC LIGATURE SEEN WITH REH FINAL FORM;Lo;0;AL;&lt;final&gt; 0633 0631;;;;N;;;;;
++FD2B;ARABIC LIGATURE SAD WITH REH FINAL FORM;Lo;0;AL;&lt;final&gt; 0635 0631;;;;N;;;;;
++FD2C;ARABIC LIGATURE DAD WITH REH FINAL FORM;Lo;0;AL;&lt;final&gt; 0636 0631;;;;N;;;;;
++FD2D;ARABIC LIGATURE SHEEN WITH JEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0634 062C;;;;N;;;;;
++FD2E;ARABIC LIGATURE SHEEN WITH HAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0634 062D;;;;N;;;;;
++FD2F;ARABIC LIGATURE SHEEN WITH KHAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0634 062E;;;;N;;;;;
++FD30;ARABIC LIGATURE SHEEN WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0634 0645;;;;N;;;;;
++FD31;ARABIC LIGATURE SEEN WITH HEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0633 0647;;;;N;;;;;
++FD32;ARABIC LIGATURE SHEEN WITH HEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0634 0647;;;;N;;;;;
++FD33;ARABIC LIGATURE TAH WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0637 0645;;;;N;;;;;
++FD34;ARABIC LIGATURE SEEN WITH JEEM MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0633 062C;;;;N;;;;;
++FD35;ARABIC LIGATURE SEEN WITH HAH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0633 062D;;;;N;;;;;
++FD36;ARABIC LIGATURE SEEN WITH KHAH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0633 062E;;;;N;;;;;
++FD37;ARABIC LIGATURE SHEEN WITH JEEM MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0634 062C;;;;N;;;;;
++FD38;ARABIC LIGATURE SHEEN WITH HAH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0634 062D;;;;N;;;;;
++FD39;ARABIC LIGATURE SHEEN WITH KHAH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0634 062E;;;;N;;;;;
++FD3A;ARABIC LIGATURE TAH WITH MEEM MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0637 0645;;;;N;;;;;
++FD3B;ARABIC LIGATURE ZAH WITH MEEM MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0638 0645;;;;N;;;;;
++FD3C;ARABIC LIGATURE ALEF WITH FATHATAN FINAL FORM;Lo;0;AL;&lt;final&gt; 0627 064B;;;;N;;;;;
++FD3D;ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0627 064B;;;;N;;;;;
++FD3E;ORNATE LEFT PARENTHESIS;Ps;0;ON;;;;;N;;;;;
++FD3F;ORNATE RIGHT PARENTHESIS;Pe;0;ON;;;;;N;;;;;
++FD50;ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 062A 062C 0645;;;;N;;;;;
++FD51;ARABIC LIGATURE TEH WITH HAH WITH JEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 062A 062D 062C;;;;N;;;;;
++FD52;ARABIC LIGATURE TEH WITH HAH WITH JEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 062A 062D 062C;;;;N;;;;;
++FD53;ARABIC LIGATURE TEH WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 062A 062D 0645;;;;N;;;;;
++FD54;ARABIC LIGATURE TEH WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 062A 062E 0645;;;;N;;;;;
++FD55;ARABIC LIGATURE TEH WITH MEEM WITH JEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 062A 0645 062C;;;;N;;;;;
++FD56;ARABIC LIGATURE TEH WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 062A 0645 062D;;;;N;;;;;
++FD57;ARABIC LIGATURE TEH WITH MEEM WITH KHAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 062A 0645 062E;;;;N;;;;;
++FD58;ARABIC LIGATURE JEEM WITH MEEM WITH HAH FINAL FORM;Lo;0;AL;&lt;final&gt; 062C 0645 062D;;;;N;;;;;
++FD59;ARABIC LIGATURE JEEM WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 062C 0645 062D;;;;N;;;;;
++FD5A;ARABIC LIGATURE HAH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 062D 0645 064A;;;;N;;;;;
++FD5B;ARABIC LIGATURE HAH WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 062D 0645 0649;;;;N;;;;;
++FD5C;ARABIC LIGATURE SEEN WITH HAH WITH JEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0633 062D 062C;;;;N;;;;;
++FD5D;ARABIC LIGATURE SEEN WITH JEEM WITH HAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0633 062C 062D;;;;N;;;;;
++FD5E;ARABIC LIGATURE SEEN WITH JEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 0633 062C 0649;;;;N;;;;;
++FD5F;ARABIC LIGATURE SEEN WITH MEEM WITH HAH FINAL FORM;Lo;0;AL;&lt;final&gt; 0633 0645 062D;;;;N;;;;;
++FD60;ARABIC LIGATURE SEEN WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0633 0645 062D;;;;N;;;;;
++FD61;ARABIC LIGATURE SEEN WITH MEEM WITH JEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0633 0645 062C;;;;N;;;;;
++FD62;ARABIC LIGATURE SEEN WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 0633 0645 0645;;;;N;;;;;
++FD63;ARABIC LIGATURE SEEN WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0633 0645 0645;;;;N;;;;;
++FD64;ARABIC LIGATURE SAD WITH HAH WITH HAH FINAL FORM;Lo;0;AL;&lt;final&gt; 0635 062D 062D;;;;N;;;;;
++FD65;ARABIC LIGATURE SAD WITH HAH WITH HAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0635 062D 062D;;;;N;;;;;
++FD66;ARABIC LIGATURE SAD WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 0635 0645 0645;;;;N;;;;;
++FD67;ARABIC LIGATURE SHEEN WITH HAH WITH MEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 0634 062D 0645;;;;N;;;;;
++FD68;ARABIC LIGATURE SHEEN WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0634 062D 0645;;;;N;;;;;
++FD69;ARABIC LIGATURE SHEEN WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0634 062C 064A;;;;N;;;;;
++FD6A;ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH FINAL FORM;Lo;0;AL;&lt;final&gt; 0634 0645 062E;;;;N;;;;;
++FD6B;ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0634 0645 062E;;;;N;;;;;
++FD6C;ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 0634 0645 0645;;;;N;;;;;
++FD6D;ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0634 0645 0645;;;;N;;;;;
++FD6E;ARABIC LIGATURE DAD WITH HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 0636 062D 0649;;;;N;;;;;
++FD6F;ARABIC LIGATURE DAD WITH KHAH WITH MEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 0636 062E 0645;;;;N;;;;;
++FD70;ARABIC LIGATURE DAD WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0636 062E 0645;;;;N;;;;;
++FD71;ARABIC LIGATURE TAH WITH MEEM WITH HAH FINAL FORM;Lo;0;AL;&lt;final&gt; 0637 0645 062D;;;;N;;;;;
++FD72;ARABIC LIGATURE TAH WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0637 0645 062D;;;;N;;;;;
++FD73;ARABIC LIGATURE TAH WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0637 0645 0645;;;;N;;;;;
++FD74;ARABIC LIGATURE TAH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0637 0645 064A;;;;N;;;;;
++FD75;ARABIC LIGATURE AIN WITH JEEM WITH MEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 0639 062C 0645;;;;N;;;;;
++FD76;ARABIC LIGATURE AIN WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 0639 0645 0645;;;;N;;;;;
++FD77;ARABIC LIGATURE AIN WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0639 0645 0645;;;;N;;;;;
++FD78;ARABIC LIGATURE AIN WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 0639 0645 0649;;;;N;;;;;
++FD79;ARABIC LIGATURE GHAIN WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 063A 0645 0645;;;;N;;;;;
++FD7A;ARABIC LIGATURE GHAIN WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 063A 0645 064A;;;;N;;;;;
++FD7B;ARABIC LIGATURE GHAIN WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 063A 0645 0649;;;;N;;;;;
++FD7C;ARABIC LIGATURE FEH WITH KHAH WITH MEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 0641 062E 0645;;;;N;;;;;
++FD7D;ARABIC LIGATURE FEH WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0641 062E 0645;;;;N;;;;;
++FD7E;ARABIC LIGATURE QAF WITH MEEM WITH HAH FINAL FORM;Lo;0;AL;&lt;final&gt; 0642 0645 062D;;;;N;;;;;
++FD7F;ARABIC LIGATURE QAF WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 0642 0645 0645;;;;N;;;;;
++FD80;ARABIC LIGATURE LAM WITH HAH WITH MEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 0644 062D 0645;;;;N;;;;;
++FD81;ARABIC LIGATURE LAM WITH HAH WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0644 062D 064A;;;;N;;;;;
++FD82;ARABIC LIGATURE LAM WITH HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 0644 062D 0649;;;;N;;;;;
++FD83;ARABIC LIGATURE LAM WITH JEEM WITH JEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0644 062C 062C;;;;N;;;;;
++FD84;ARABIC LIGATURE LAM WITH JEEM WITH JEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 0644 062C 062C;;;;N;;;;;
++FD85;ARABIC LIGATURE LAM WITH KHAH WITH MEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 0644 062E 0645;;;;N;;;;;
++FD86;ARABIC LIGATURE LAM WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0644 062E 0645;;;;N;;;;;
++FD87;ARABIC LIGATURE LAM WITH MEEM WITH HAH FINAL FORM;Lo;0;AL;&lt;final&gt; 0644 0645 062D;;;;N;;;;;
++FD88;ARABIC LIGATURE LAM WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0644 0645 062D;;;;N;;;;;
++FD89;ARABIC LIGATURE MEEM WITH HAH WITH JEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0645 062D 062C;;;;N;;;;;
++FD8A;ARABIC LIGATURE MEEM WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0645 062D 0645;;;;N;;;;;
++FD8B;ARABIC LIGATURE MEEM WITH HAH WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0645 062D 064A;;;;N;;;;;
++FD8C;ARABIC LIGATURE MEEM WITH JEEM WITH HAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0645 062C 062D;;;;N;;;;;
++FD8D;ARABIC LIGATURE MEEM WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0645 062C 0645;;;;N;;;;;
++FD8E;ARABIC LIGATURE MEEM WITH KHAH WITH JEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0645 062E 062C;;;;N;;;;;
++FD8F;ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0645 062E 0645;;;;N;;;;;
++FD92;ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0645 062C 062E;;;;N;;;;;
++FD93;ARABIC LIGATURE HEH WITH MEEM WITH JEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0647 0645 062C;;;;N;;;;;
++FD94;ARABIC LIGATURE HEH WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0647 0645 0645;;;;N;;;;;
++FD95;ARABIC LIGATURE NOON WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0646 062D 0645;;;;N;;;;;
++FD96;ARABIC LIGATURE NOON WITH HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 0646 062D 0649;;;;N;;;;;
++FD97;ARABIC LIGATURE NOON WITH JEEM WITH MEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 0646 062C 0645;;;;N;;;;;
++FD98;ARABIC LIGATURE NOON WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0646 062C 0645;;;;N;;;;;
++FD99;ARABIC LIGATURE NOON WITH JEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 0646 062C 0649;;;;N;;;;;
++FD9A;ARABIC LIGATURE NOON WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0646 0645 064A;;;;N;;;;;
++FD9B;ARABIC LIGATURE NOON WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 0646 0645 0649;;;;N;;;;;
++FD9C;ARABIC LIGATURE YEH WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 064A 0645 0645;;;;N;;;;;
++FD9D;ARABIC LIGATURE YEH WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 064A 0645 0645;;;;N;;;;;
++FD9E;ARABIC LIGATURE BEH WITH KHAH WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0628 062E 064A;;;;N;;;;;
++FD9F;ARABIC LIGATURE TEH WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 062A 062C 064A;;;;N;;;;;
++FDA0;ARABIC LIGATURE TEH WITH JEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 062A 062C 0649;;;;N;;;;;
++FDA1;ARABIC LIGATURE TEH WITH KHAH WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 062A 062E 064A;;;;N;;;;;
++FDA2;ARABIC LIGATURE TEH WITH KHAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 062A 062E 0649;;;;N;;;;;
++FDA3;ARABIC LIGATURE TEH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 062A 0645 064A;;;;N;;;;;
++FDA4;ARABIC LIGATURE TEH WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 062A 0645 0649;;;;N;;;;;
++FDA5;ARABIC LIGATURE JEEM WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 062C 0645 064A;;;;N;;;;;
++FDA6;ARABIC LIGATURE JEEM WITH HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 062C 062D 0649;;;;N;;;;;
++FDA7;ARABIC LIGATURE JEEM WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 062C 0645 0649;;;;N;;;;;
++FDA8;ARABIC LIGATURE SEEN WITH KHAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 0633 062E 0649;;;;N;;;;;
++FDA9;ARABIC LIGATURE SAD WITH HAH WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0635 062D 064A;;;;N;;;;;
++FDAA;ARABIC LIGATURE SHEEN WITH HAH WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0634 062D 064A;;;;N;;;;;
++FDAB;ARABIC LIGATURE DAD WITH HAH WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0636 062D 064A;;;;N;;;;;
++FDAC;ARABIC LIGATURE LAM WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0644 062C 064A;;;;N;;;;;
++FDAD;ARABIC LIGATURE LAM WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0644 0645 064A;;;;N;;;;;
++FDAE;ARABIC LIGATURE YEH WITH HAH WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 064A 062D 064A;;;;N;;;;;
++FDAF;ARABIC LIGATURE YEH WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 064A 062C 064A;;;;N;;;;;
++FDB0;ARABIC LIGATURE YEH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 064A 0645 064A;;;;N;;;;;
++FDB1;ARABIC LIGATURE MEEM WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0645 0645 064A;;;;N;;;;;
++FDB2;ARABIC LIGATURE QAF WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0642 0645 064A;;;;N;;;;;
++FDB3;ARABIC LIGATURE NOON WITH HAH WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0646 062D 064A;;;;N;;;;;
++FDB4;ARABIC LIGATURE QAF WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0642 0645 062D;;;;N;;;;;
++FDB5;ARABIC LIGATURE LAM WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0644 062D 0645;;;;N;;;;;
++FDB6;ARABIC LIGATURE AIN WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0639 0645 064A;;;;N;;;;;
++FDB7;ARABIC LIGATURE KAF WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0643 0645 064A;;;;N;;;;;
++FDB8;ARABIC LIGATURE NOON WITH JEEM WITH HAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0646 062C 062D;;;;N;;;;;
++FDB9;ARABIC LIGATURE MEEM WITH KHAH WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0645 062E 064A;;;;N;;;;;
++FDBA;ARABIC LIGATURE LAM WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0644 062C 0645;;;;N;;;;;
++FDBB;ARABIC LIGATURE KAF WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 0643 0645 0645;;;;N;;;;;
++FDBC;ARABIC LIGATURE LAM WITH JEEM WITH MEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 0644 062C 0645;;;;N;;;;;
++FDBD;ARABIC LIGATURE NOON WITH JEEM WITH HAH FINAL FORM;Lo;0;AL;&lt;final&gt; 0646 062C 062D;;;;N;;;;;
++FDBE;ARABIC LIGATURE JEEM WITH HAH WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 062C 062D 064A;;;;N;;;;;
++FDBF;ARABIC LIGATURE HAH WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 062D 062C 064A;;;;N;;;;;
++FDC0;ARABIC LIGATURE MEEM WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0645 062C 064A;;;;N;;;;;
++FDC1;ARABIC LIGATURE FEH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0641 0645 064A;;;;N;;;;;
++FDC2;ARABIC LIGATURE BEH WITH HAH WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0628 062D 064A;;;;N;;;;;
++FDC3;ARABIC LIGATURE KAF WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0643 0645 0645;;;;N;;;;;
++FDC4;ARABIC LIGATURE AIN WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0639 062C 0645;;;;N;;;;;
++FDC5;ARABIC LIGATURE SAD WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0635 0645 0645;;;;N;;;;;
++FDC6;ARABIC LIGATURE SEEN WITH KHAH WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0633 062E 064A;;;;N;;;;;
++FDC7;ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0646 062C 064A;;;;N;;;;;
++FDF0;ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0635 0644 06D2;;;;N;;;;;
++FDF1;ARABIC LIGATURE QALA USED AS KORANIC STOP SIGN ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0642 0644 06D2;;;;N;;;;;
++FDF2;ARABIC LIGATURE ALLAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0627 0644 0644 0647;;;;N;;;;;
++FDF3;ARABIC LIGATURE AKBAR ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0627 0643 0628 0631;;;;N;;;;;
++FDF4;ARABIC LIGATURE MOHAMMAD ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0645 062D 0645 062F;;;;N;;;;;
++FDF5;ARABIC LIGATURE SALAM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0635 0644 0639 0645;;;;N;;;;;
++FDF6;ARABIC LIGATURE RASOUL ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0631 0633 0648 0644;;;;N;;;;;
++FDF7;ARABIC LIGATURE ALAYHE ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0639 0644 064A 0647;;;;N;;;;;
++FDF8;ARABIC LIGATURE WASALLAM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0648 0633 0644 0645;;;;N;;;;;
++FDF9;ARABIC LIGATURE SALLA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0635 0644 0649;;;;N;;;;;
++FDFA;ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM;Lo;0;AL;&lt;isolated&gt; 0635 0644 0649 0020 0627 0644 0644 0647 0020 0639 0644 064A 0647 0020 0648 0633 0644 0645;;;;N;ARABIC LETTER SALLALLAHOU ALAYHE WASALLAM;;;;
++FDFB;ARABIC LIGATURE JALLAJALALOUHOU;Lo;0;AL;&lt;isolated&gt; 062C 0644 0020 062C 0644 0627 0644 0647;;;;N;ARABIC LETTER JALLAJALALOUHOU;;;;
++FDFC;RIAL SIGN;Sc;0;AL;&lt;isolated&gt; 0631 06CC 0627 0644;;;;N;;;;;
++FDFD;ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM;So;0;ON;;;;;N;;;;;
++FE00;VARIATION SELECTOR-1;Mn;0;NSM;;;;;N;;;;;
++FE01;VARIATION SELECTOR-2;Mn;0;NSM;;;;;N;;;;;
++FE02;VARIATION SELECTOR-3;Mn;0;NSM;;;;;N;;;;;
++FE03;VARIATION SELECTOR-4;Mn;0;NSM;;;;;N;;;;;
++FE04;VARIATION SELECTOR-5;Mn;0;NSM;;;;;N;;;;;
++FE05;VARIATION SELECTOR-6;Mn;0;NSM;;;;;N;;;;;
++FE06;VARIATION SELECTOR-7;Mn;0;NSM;;;;;N;;;;;
++FE07;VARIATION SELECTOR-8;Mn;0;NSM;;;;;N;;;;;
++FE08;VARIATION SELECTOR-9;Mn;0;NSM;;;;;N;;;;;
++FE09;VARIATION SELECTOR-10;Mn;0;NSM;;;;;N;;;;;
++FE0A;VARIATION SELECTOR-11;Mn;0;NSM;;;;;N;;;;;
++FE0B;VARIATION SELECTOR-12;Mn;0;NSM;;;;;N;;;;;
++FE0C;VARIATION SELECTOR-13;Mn;0;NSM;;;;;N;;;;;
++FE0D;VARIATION SELECTOR-14;Mn;0;NSM;;;;;N;;;;;
++FE0E;VARIATION SELECTOR-15;Mn;0;NSM;;;;;N;;;;;
++FE0F;VARIATION SELECTOR-16;Mn;0;NSM;;;;;N;;;;;
++FE20;COMBINING LIGATURE LEFT HALF;Mn;230;NSM;;;;;N;;;;;
++FE21;COMBINING LIGATURE RIGHT HALF;Mn;230;NSM;;;;;N;;;;;
++FE22;COMBINING DOUBLE TILDE LEFT HALF;Mn;230;NSM;;;;;N;;;;;
++FE23;COMBINING DOUBLE TILDE RIGHT HALF;Mn;230;NSM;;;;;N;;;;;
++FE30;PRESENTATION FORM FOR VERTICAL TWO DOT LEADER;Po;0;ON;&lt;vertical&gt; 2025;;;;N;GLYPH FOR VERTICAL TWO DOT LEADER;;;;
++FE31;PRESENTATION FORM FOR VERTICAL EM DASH;Pd;0;ON;&lt;vertical&gt; 2014;;;;N;GLYPH FOR VERTICAL EM DASH;;;;
++FE32;PRESENTATION FORM FOR VERTICAL EN DASH;Pd;0;ON;&lt;vertical&gt; 2013;;;;N;GLYPH FOR VERTICAL EN DASH;;;;
++FE33;PRESENTATION FORM FOR VERTICAL LOW LINE;Pc;0;ON;&lt;vertical&gt; 005F;;;;N;GLYPH FOR VERTICAL SPACING UNDERSCORE;;;;
++FE34;PRESENTATION FORM FOR VERTICAL WAVY LOW LINE;Pc;0;ON;&lt;vertical&gt; 005F;;;;N;GLYPH FOR VERTICAL SPACING WAVY UNDERSCORE;;;;
++FE35;PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS;Ps;0;ON;&lt;vertical&gt; 0028;;;;N;GLYPH FOR VERTICAL OPENING PARENTHESIS;;;;
++FE36;PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS;Pe;0;ON;&lt;vertical&gt; 0029;;;;N;GLYPH FOR VERTICAL CLOSING PARENTHESIS;;;;
++FE37;PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET;Ps;0;ON;&lt;vertical&gt; 007B;;;;N;GLYPH FOR VERTICAL OPENING CURLY BRACKET;;;;
++FE38;PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET;Pe;0;ON;&lt;vertical&gt; 007D;;;;N;GLYPH FOR VERTICAL CLOSING CURLY BRACKET;;;;
++FE39;PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET;Ps;0;ON;&lt;vertical&gt; 3014;;;;N;GLYPH FOR VERTICAL OPENING TORTOISE SHELL BRACKET;;;;
++FE3A;PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET;Pe;0;ON;&lt;vertical&gt; 3015;;;;N;GLYPH FOR VERTICAL CLOSING TORTOISE SHELL BRACKET;;;;
++FE3B;PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET;Ps;0;ON;&lt;vertical&gt; 3010;;;;N;GLYPH FOR VERTICAL OPENING BLACK LENTICULAR BRACKET;;;;
++FE3C;PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET;Pe;0;ON;&lt;vertical&gt; 3011;;;;N;GLYPH FOR VERTICAL CLOSING BLACK LENTICULAR BRACKET;;;;
++FE3D;PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET;Ps;0;ON;&lt;vertical&gt; 300A;;;;N;GLYPH FOR VERTICAL OPENING DOUBLE ANGLE BRACKET;;;;
++FE3E;PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET;Pe;0;ON;&lt;vertical&gt; 300B;;;;N;GLYPH FOR VERTICAL CLOSING DOUBLE ANGLE BRACKET;;;;
++FE3F;PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET;Ps;0;ON;&lt;vertical&gt; 3008;;;;N;GLYPH FOR VERTICAL OPENING ANGLE BRACKET;;;;
++FE40;PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET;Pe;0;ON;&lt;vertical&gt; 3009;;;;N;GLYPH FOR VERTICAL CLOSING ANGLE BRACKET;;;;
++FE41;PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET;Ps;0;ON;&lt;vertical&gt; 300C;;;;N;GLYPH FOR VERTICAL OPENING CORNER BRACKET;;;;
++FE42;PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET;Pe;0;ON;&lt;vertical&gt; 300D;;;;N;GLYPH FOR VERTICAL CLOSING CORNER BRACKET;;;;
++FE43;PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET;Ps;0;ON;&lt;vertical&gt; 300E;;;;N;GLYPH FOR VERTICAL OPENING WHITE CORNER BRACKET;;;;
++FE44;PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET;Pe;0;ON;&lt;vertical&gt; 300F;;;;N;GLYPH FOR VERTICAL CLOSING WHITE CORNER BRACKET;;;;
++FE45;SESAME DOT;Po;0;ON;;;;;N;;;;;
++FE46;WHITE SESAME DOT;Po;0;ON;;;;;N;;;;;
++FE47;PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET;Ps;0;ON;&lt;vertical&gt; 005B;;;;N;;;;;
++FE48;PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET;Pe;0;ON;&lt;vertical&gt; 005D;;;;N;;;;;
++FE49;DASHED OVERLINE;Po;0;ON;&lt;compat&gt; 203E;;;;N;SPACING DASHED OVERSCORE;;;;
++FE4A;CENTRELINE OVERLINE;Po;0;ON;&lt;compat&gt; 203E;;;;N;SPACING CENTERLINE OVERSCORE;;;;
++FE4B;WAVY OVERLINE;Po;0;ON;&lt;compat&gt; 203E;;;;N;SPACING WAVY OVERSCORE;;;;
++FE4C;DOUBLE WAVY OVERLINE;Po;0;ON;&lt;compat&gt; 203E;;;;N;SPACING DOUBLE WAVY OVERSCORE;;;;
++FE4D;DASHED LOW LINE;Pc;0;ON;&lt;compat&gt; 005F;;;;N;SPACING DASHED UNDERSCORE;;;;
++FE4E;CENTRELINE LOW LINE;Pc;0;ON;&lt;compat&gt; 005F;;;;N;SPACING CENTERLINE UNDERSCORE;;;;
++FE4F;WAVY LOW LINE;Pc;0;ON;&lt;compat&gt; 005F;;;;N;SPACING WAVY UNDERSCORE;;;;
++FE50;SMALL COMMA;Po;0;CS;&lt;small&gt; 002C;;;;N;;;;;
++FE51;SMALL IDEOGRAPHIC COMMA;Po;0;ON;&lt;small&gt; 3001;;;;N;;;;;
++FE52;SMALL FULL STOP;Po;0;CS;&lt;small&gt; 002E;;;;N;SMALL PERIOD;;;;
++FE54;SMALL SEMICOLON;Po;0;ON;&lt;small&gt; 003B;;;;N;;;;;
++FE55;SMALL COLON;Po;0;CS;&lt;small&gt; 003A;;;;N;;;;;
++FE56;SMALL QUESTION MARK;Po;0;ON;&lt;small&gt; 003F;;;;N;;;;;
++FE57;SMALL EXCLAMATION MARK;Po;0;ON;&lt;small&gt; 0021;;;;N;;;;;
++FE58;SMALL EM DASH;Pd;0;ON;&lt;small&gt; 2014;;;;N;;;;;
++FE59;SMALL LEFT PARENTHESIS;Ps;0;ON;&lt;small&gt; 0028;;;;N;SMALL OPENING PARENTHESIS;;;;
++FE5A;SMALL RIGHT PARENTHESIS;Pe;0;ON;&lt;small&gt; 0029;;;;N;SMALL CLOSING PARENTHESIS;;;;
++FE5B;SMALL LEFT CURLY BRACKET;Ps;0;ON;&lt;small&gt; 007B;;;;N;SMALL OPENING CURLY BRACKET;;;;
++FE5C;SMALL RIGHT CURLY BRACKET;Pe;0;ON;&lt;small&gt; 007D;;;;N;SMALL CLOSING CURLY BRACKET;;;;
++FE5D;SMALL LEFT TORTOISE SHELL BRACKET;Ps;0;ON;&lt;small&gt; 3014;;;;N;SMALL OPENING TORTOISE SHELL BRACKET;;;;
++FE5E;SMALL RIGHT TORTOISE SHELL BRACKET;Pe;0;ON;&lt;small&gt; 3015;;;;N;SMALL CLOSING TORTOISE SHELL BRACKET;;;;
++FE5F;SMALL NUMBER SIGN;Po;0;ET;&lt;small&gt; 0023;;;;N;;;;;
++FE60;SMALL AMPERSAND;Po;0;ON;&lt;small&gt; 0026;;;;N;;;;;
++FE61;SMALL ASTERISK;Po;0;ON;&lt;small&gt; 002A;;;;N;;;;;
++FE62;SMALL PLUS SIGN;Sm;0;ET;&lt;small&gt; 002B;;;;N;;;;;
++FE63;SMALL HYPHEN-MINUS;Pd;0;ET;&lt;small&gt; 002D;;;;N;;;;;
++FE64;SMALL LESS-THAN SIGN;Sm;0;ON;&lt;small&gt; 003C;;;;N;;;;;
++FE65;SMALL GREATER-THAN SIGN;Sm;0;ON;&lt;small&gt; 003E;;;;N;;;;;
++FE66;SMALL EQUALS SIGN;Sm;0;ON;&lt;small&gt; 003D;;;;N;;;;;
++FE68;SMALL REVERSE SOLIDUS;Po;0;ON;&lt;small&gt; 005C;;;;N;SMALL BACKSLASH;;;;
++FE69;SMALL DOLLAR SIGN;Sc;0;ET;&lt;small&gt; 0024;;;;N;;;;;
++FE6A;SMALL PERCENT SIGN;Po;0;ET;&lt;small&gt; 0025;;;;N;;;;;
++FE6B;SMALL COMMERCIAL AT;Po;0;ON;&lt;small&gt; 0040;;;;N;;;;;
++FE70;ARABIC FATHATAN ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0020 064B;;;;N;ARABIC SPACING FATHATAN;;;;
++FE71;ARABIC TATWEEL WITH FATHATAN ABOVE;Lo;0;AL;&lt;medial&gt; 0640 064B;;;;N;ARABIC FATHATAN ON TATWEEL;;;;
++FE72;ARABIC DAMMATAN ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0020 064C;;;;N;ARABIC SPACING DAMMATAN;;;;
++FE73;ARABIC TAIL FRAGMENT;Lo;0;AL;;;;;N;;;;;
++FE74;ARABIC KASRATAN ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0020 064D;;;;N;ARABIC SPACING KASRATAN;;;;
++FE76;ARABIC FATHA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0020 064E;;;;N;ARABIC SPACING FATHAH;;;;
++FE77;ARABIC FATHA MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0640 064E;;;;N;ARABIC FATHAH ON TATWEEL;;;;
++FE78;ARABIC DAMMA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0020 064F;;;;N;ARABIC SPACING DAMMAH;;;;
++FE79;ARABIC DAMMA MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0640 064F;;;;N;ARABIC DAMMAH ON TATWEEL;;;;
++FE7A;ARABIC KASRA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0020 0650;;;;N;ARABIC SPACING KASRAH;;;;
++FE7B;ARABIC KASRA MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0640 0650;;;;N;ARABIC KASRAH ON TATWEEL;;;;
++FE7C;ARABIC SHADDA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0020 0651;;;;N;ARABIC SPACING SHADDAH;;;;
++FE7D;ARABIC SHADDA MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0640 0651;;;;N;ARABIC SHADDAH ON TATWEEL;;;;
++FE7E;ARABIC SUKUN ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0020 0652;;;;N;ARABIC SPACING SUKUN;;;;
++FE7F;ARABIC SUKUN MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0640 0652;;;;N;ARABIC SUKUN ON TATWEEL;;;;
++FE80;ARABIC LETTER HAMZA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0621;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH;;;;
++FE81;ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0622;;;;N;GLYPH FOR ISOLATE ARABIC MADDAH ON ALEF;;;;
++FE82;ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM;Lo;0;AL;&lt;final&gt; 0622;;;;N;GLYPH FOR FINAL ARABIC MADDAH ON ALEF;;;;
++FE83;ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0623;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH ON ALEF;;;;
++FE84;ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM;Lo;0;AL;&lt;final&gt; 0623;;;;N;GLYPH FOR FINAL ARABIC HAMZAH ON ALEF;;;;
++FE85;ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0624;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH ON WAW;;;;
++FE86;ARABIC LETTER WAW WITH HAMZA ABOVE FINAL FORM;Lo;0;AL;&lt;final&gt; 0624;;;;N;GLYPH FOR FINAL ARABIC HAMZAH ON WAW;;;;
++FE87;ARABIC LETTER ALEF WITH HAMZA BELOW ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0625;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH UNDER ALEF;;;;
++FE88;ARABIC LETTER ALEF WITH HAMZA BELOW FINAL FORM;Lo;0;AL;&lt;final&gt; 0625;;;;N;GLYPH FOR FINAL ARABIC HAMZAH UNDER ALEF;;;;
++FE89;ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0626;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH ON YA;;;;
++FE8A;ARABIC LETTER YEH WITH HAMZA ABOVE FINAL FORM;Lo;0;AL;&lt;final&gt; 0626;;;;N;GLYPH FOR FINAL ARABIC HAMZAH ON YA;;;;
++FE8B;ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0626;;;;N;GLYPH FOR INITIAL ARABIC HAMZAH ON YA;;;;
++FE8C;ARABIC LETTER YEH WITH HAMZA ABOVE MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0626;;;;N;GLYPH FOR MEDIAL ARABIC HAMZAH ON YA;;;;
++FE8D;ARABIC LETTER ALEF ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0627;;;;N;GLYPH FOR ISOLATE ARABIC ALEF;;;;
++FE8E;ARABIC LETTER ALEF FINAL FORM;Lo;0;AL;&lt;final&gt; 0627;;;;N;GLYPH FOR FINAL ARABIC ALEF;;;;
++FE8F;ARABIC LETTER BEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0628;;;;N;GLYPH FOR ISOLATE ARABIC BAA;;;;
++FE90;ARABIC LETTER BEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0628;;;;N;GLYPH FOR FINAL ARABIC BAA;;;;
++FE91;ARABIC LETTER BEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0628;;;;N;GLYPH FOR INITIAL ARABIC BAA;;;;
++FE92;ARABIC LETTER BEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0628;;;;N;GLYPH FOR MEDIAL ARABIC BAA;;;;
++FE93;ARABIC LETTER TEH MARBUTA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0629;;;;N;GLYPH FOR ISOLATE ARABIC TAA MARBUTAH;;;;
++FE94;ARABIC LETTER TEH MARBUTA FINAL FORM;Lo;0;AL;&lt;final&gt; 0629;;;;N;GLYPH FOR FINAL ARABIC TAA MARBUTAH;;;;
++FE95;ARABIC LETTER TEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062A;;;;N;GLYPH FOR ISOLATE ARABIC TAA;;;;
++FE96;ARABIC LETTER TEH FINAL FORM;Lo;0;AL;&lt;final&gt; 062A;;;;N;GLYPH FOR FINAL ARABIC TAA;;;;
++FE97;ARABIC LETTER TEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 062A;;;;N;GLYPH FOR INITIAL ARABIC TAA;;;;
++FE98;ARABIC LETTER TEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 062A;;;;N;GLYPH FOR MEDIAL ARABIC TAA;;;;
++FE99;ARABIC LETTER THEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062B;;;;N;GLYPH FOR ISOLATE ARABIC THAA;;;;
++FE9A;ARABIC LETTER THEH FINAL FORM;Lo;0;AL;&lt;final&gt; 062B;;;;N;GLYPH FOR FINAL ARABIC THAA;;;;
++FE9B;ARABIC LETTER THEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 062B;;;;N;GLYPH FOR INITIAL ARABIC THAA;;;;
++FE9C;ARABIC LETTER THEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 062B;;;;N;GLYPH FOR MEDIAL ARABIC THAA;;;;
++FE9D;ARABIC LETTER JEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062C;;;;N;GLYPH FOR ISOLATE ARABIC JEEM;;;;
++FE9E;ARABIC LETTER JEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 062C;;;;N;GLYPH FOR FINAL ARABIC JEEM;;;;
++FE9F;ARABIC LETTER JEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 062C;;;;N;GLYPH FOR INITIAL ARABIC JEEM;;;;
++FEA0;ARABIC LETTER JEEM MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 062C;;;;N;GLYPH FOR MEDIAL ARABIC JEEM;;;;
++FEA1;ARABIC LETTER HAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062D;;;;N;GLYPH FOR ISOLATE ARABIC HAA;;;;
++FEA2;ARABIC LETTER HAH FINAL FORM;Lo;0;AL;&lt;final&gt; 062D;;;;N;GLYPH FOR FINAL ARABIC HAA;;;;
++FEA3;ARABIC LETTER HAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 062D;;;;N;GLYPH FOR INITIAL ARABIC HAA;;;;
++FEA4;ARABIC LETTER HAH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 062D;;;;N;GLYPH FOR MEDIAL ARABIC HAA;;;;
++FEA5;ARABIC LETTER KHAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062E;;;;N;GLYPH FOR ISOLATE ARABIC KHAA;;;;
++FEA6;ARABIC LETTER KHAH FINAL FORM;Lo;0;AL;&lt;final&gt; 062E;;;;N;GLYPH FOR FINAL ARABIC KHAA;;;;
++FEA7;ARABIC LETTER KHAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 062E;;;;N;GLYPH FOR INITIAL ARABIC KHAA;;;;
++FEA8;ARABIC LETTER KHAH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 062E;;;;N;GLYPH FOR MEDIAL ARABIC KHAA;;;;
++FEA9;ARABIC LETTER DAL ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062F;;;;N;GLYPH FOR ISOLATE ARABIC DAL;;;;
++FEAA;ARABIC LETTER DAL FINAL FORM;Lo;0;AL;&lt;final&gt; 062F;;;;N;GLYPH FOR FINAL ARABIC DAL;;;;
++FEAB;ARABIC LETTER THAL ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0630;;;;N;GLYPH FOR ISOLATE ARABIC THAL;;;;
++FEAC;ARABIC LETTER THAL FINAL FORM;Lo;0;AL;&lt;final&gt; 0630;;;;N;GLYPH FOR FINAL ARABIC THAL;;;;
++FEAD;ARABIC LETTER REH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0631;;;;N;GLYPH FOR ISOLATE ARABIC RA;;;;
++FEAE;ARABIC LETTER REH FINAL FORM;Lo;0;AL;&lt;final&gt; 0631;;;;N;GLYPH FOR FINAL ARABIC RA;;;;
++FEAF;ARABIC LETTER ZAIN ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0632;;;;N;GLYPH FOR ISOLATE ARABIC ZAIN;;;;
++FEB0;ARABIC LETTER ZAIN FINAL FORM;Lo;0;AL;&lt;final&gt; 0632;;;;N;GLYPH FOR FINAL ARABIC ZAIN;;;;
++FEB1;ARABIC LETTER SEEN ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0633;;;;N;GLYPH FOR ISOLATE ARABIC SEEN;;;;
++FEB2;ARABIC LETTER SEEN FINAL FORM;Lo;0;AL;&lt;final&gt; 0633;;;;N;GLYPH FOR FINAL ARABIC SEEN;;;;
++FEB3;ARABIC LETTER SEEN INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0633;;;;N;GLYPH FOR INITIAL ARABIC SEEN;;;;
++FEB4;ARABIC LETTER SEEN MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0633;;;;N;GLYPH FOR MEDIAL ARABIC SEEN;;;;
++FEB5;ARABIC LETTER SHEEN ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0634;;;;N;GLYPH FOR ISOLATE ARABIC SHEEN;;;;
++FEB6;ARABIC LETTER SHEEN FINAL FORM;Lo;0;AL;&lt;final&gt; 0634;;;;N;GLYPH FOR FINAL ARABIC SHEEN;;;;
++FEB7;ARABIC LETTER SHEEN INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0634;;;;N;GLYPH FOR INITIAL ARABIC SHEEN;;;;
++FEB8;ARABIC LETTER SHEEN MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0634;;;;N;GLYPH FOR MEDIAL ARABIC SHEEN;;;;
++FEB9;ARABIC LETTER SAD ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0635;;;;N;GLYPH FOR ISOLATE ARABIC SAD;;;;
++FEBA;ARABIC LETTER SAD FINAL FORM;Lo;0;AL;&lt;final&gt; 0635;;;;N;GLYPH FOR FINAL ARABIC SAD;;;;
++FEBB;ARABIC LETTER SAD INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0635;;;;N;GLYPH FOR INITIAL ARABIC SAD;;;;
++FEBC;ARABIC LETTER SAD MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0635;;;;N;GLYPH FOR MEDIAL ARABIC SAD;;;;
++FEBD;ARABIC LETTER DAD ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0636;;;;N;GLYPH FOR ISOLATE ARABIC DAD;;;;
++FEBE;ARABIC LETTER DAD FINAL FORM;Lo;0;AL;&lt;final&gt; 0636;;;;N;GLYPH FOR FINAL ARABIC DAD;;;;
++FEBF;ARABIC LETTER DAD INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0636;;;;N;GLYPH FOR INITIAL ARABIC DAD;;;;
++FEC0;ARABIC LETTER DAD MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0636;;;;N;GLYPH FOR MEDIAL ARABIC DAD;;;;
++FEC1;ARABIC LETTER TAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0637;;;;N;GLYPH FOR ISOLATE ARABIC TAH;;;;
++FEC2;ARABIC LETTER TAH FINAL FORM;Lo;0;AL;&lt;final&gt; 0637;;;;N;GLYPH FOR FINAL ARABIC TAH;;;;
++FEC3;ARABIC LETTER TAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0637;;;;N;GLYPH FOR INITIAL ARABIC TAH;;;;
++FEC4;ARABIC LETTER TAH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0637;;;;N;GLYPH FOR MEDIAL ARABIC TAH;;;;
++FEC5;ARABIC LETTER ZAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0638;;;;N;GLYPH FOR ISOLATE ARABIC DHAH;;;;
++FEC6;ARABIC LETTER ZAH FINAL FORM;Lo;0;AL;&lt;final&gt; 0638;;;;N;GLYPH FOR FINAL ARABIC DHAH;;;;
++FEC7;ARABIC LETTER ZAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0638;;;;N;GLYPH FOR INITIAL ARABIC DHAH;;;;
++FEC8;ARABIC LETTER ZAH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0638;;;;N;GLYPH FOR MEDIAL ARABIC DHAH;;;;
++FEC9;ARABIC LETTER AIN ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0639;;;;N;GLYPH FOR ISOLATE ARABIC AIN;;;;
++FECA;ARABIC LETTER AIN FINAL FORM;Lo;0;AL;&lt;final&gt; 0639;;;;N;GLYPH FOR FINAL ARABIC AIN;;;;
++FECB;ARABIC LETTER AIN INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0639;;;;N;GLYPH FOR INITIAL ARABIC AIN;;;;
++FECC;ARABIC LETTER AIN MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0639;;;;N;GLYPH FOR MEDIAL ARABIC AIN;;;;
++FECD;ARABIC LETTER GHAIN ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 063A;;;;N;GLYPH FOR ISOLATE ARABIC GHAIN;;;;
++FECE;ARABIC LETTER GHAIN FINAL FORM;Lo;0;AL;&lt;final&gt; 063A;;;;N;GLYPH FOR FINAL ARABIC GHAIN;;;;
++FECF;ARABIC LETTER GHAIN INITIAL FORM;Lo;0;AL;&lt;initial&gt; 063A;;;;N;GLYPH FOR INITIAL ARABIC GHAIN;;;;
++FED0;ARABIC LETTER GHAIN MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 063A;;;;N;GLYPH FOR MEDIAL ARABIC GHAIN;;;;
++FED1;ARABIC LETTER FEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0641;;;;N;GLYPH FOR ISOLATE ARABIC FA;;;;
++FED2;ARABIC LETTER FEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0641;;;;N;GLYPH FOR FINAL ARABIC FA;;;;
++FED3;ARABIC LETTER FEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0641;;;;N;GLYPH FOR INITIAL ARABIC FA;;;;
++FED4;ARABIC LETTER FEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0641;;;;N;GLYPH FOR MEDIAL ARABIC FA;;;;
++FED5;ARABIC LETTER QAF ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0642;;;;N;GLYPH FOR ISOLATE ARABIC QAF;;;;
++FED6;ARABIC LETTER QAF FINAL FORM;Lo;0;AL;&lt;final&gt; 0642;;;;N;GLYPH FOR FINAL ARABIC QAF;;;;
++FED7;ARABIC LETTER QAF INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0642;;;;N;GLYPH FOR INITIAL ARABIC QAF;;;;
++FED8;ARABIC LETTER QAF MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0642;;;;N;GLYPH FOR MEDIAL ARABIC QAF;;;;
++FED9;ARABIC LETTER KAF ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0643;;;;N;GLYPH FOR ISOLATE ARABIC CAF;;;;
++FEDA;ARABIC LETTER KAF FINAL FORM;Lo;0;AL;&lt;final&gt; 0643;;;;N;GLYPH FOR FINAL ARABIC CAF;;;;
++FEDB;ARABIC LETTER KAF INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0643;;;;N;GLYPH FOR INITIAL ARABIC CAF;;;;
++FEDC;ARABIC LETTER KAF MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0643;;;;N;GLYPH FOR MEDIAL ARABIC CAF;;;;
++FEDD;ARABIC LETTER LAM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0644;;;;N;GLYPH FOR ISOLATE ARABIC LAM;;;;
++FEDE;ARABIC LETTER LAM FINAL FORM;Lo;0;AL;&lt;final&gt; 0644;;;;N;GLYPH FOR FINAL ARABIC LAM;;;;
++FEDF;ARABIC LETTER LAM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0644;;;;N;GLYPH FOR INITIAL ARABIC LAM;;;;
++FEE0;ARABIC LETTER LAM MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0644;;;;N;GLYPH FOR MEDIAL ARABIC LAM;;;;
++FEE1;ARABIC LETTER MEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0645;;;;N;GLYPH FOR ISOLATE ARABIC MEEM;;;;
++FEE2;ARABIC LETTER MEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 0645;;;;N;GLYPH FOR FINAL ARABIC MEEM;;;;
++FEE3;ARABIC LETTER MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0645;;;;N;GLYPH FOR INITIAL ARABIC MEEM;;;;
++FEE4;ARABIC LETTER MEEM MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0645;;;;N;GLYPH FOR MEDIAL ARABIC MEEM;;;;
++FEE5;ARABIC LETTER NOON ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0646;;;;N;GLYPH FOR ISOLATE ARABIC NOON;;;;
++FEE6;ARABIC LETTER NOON FINAL FORM;Lo;0;AL;&lt;final&gt; 0646;;;;N;GLYPH FOR FINAL ARABIC NOON;;;;
++FEE7;ARABIC LETTER NOON INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0646;;;;N;GLYPH FOR INITIAL ARABIC NOON;;;;
++FEE8;ARABIC LETTER NOON MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0646;;;;N;GLYPH FOR MEDIAL ARABIC NOON;;;;
++FEE9;ARABIC LETTER HEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0647;;;;N;GLYPH FOR ISOLATE ARABIC HA;;;;
++FEEA;ARABIC LETTER HEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0647;;;;N;GLYPH FOR FINAL ARABIC HA;;;;
++FEEB;ARABIC LETTER HEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0647;;;;N;GLYPH FOR INITIAL ARABIC HA;;;;
++FEEC;ARABIC LETTER HEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0647;;;;N;GLYPH FOR MEDIAL ARABIC HA;;;;
++FEED;ARABIC LETTER WAW ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0648;;;;N;GLYPH FOR ISOLATE ARABIC WAW;;;;
++FEEE;ARABIC LETTER WAW FINAL FORM;Lo;0;AL;&lt;final&gt; 0648;;;;N;GLYPH FOR FINAL ARABIC WAW;;;;
++FEEF;ARABIC LETTER ALEF MAKSURA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0649;;;;N;GLYPH FOR ISOLATE ARABIC ALEF MAQSURAH;;;;
++FEF0;ARABIC LETTER ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 0649;;;;N;GLYPH FOR FINAL ARABIC ALEF MAQSURAH;;;;
++FEF1;ARABIC LETTER YEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 064A;;;;N;GLYPH FOR ISOLATE ARABIC YA;;;;
++FEF2;ARABIC LETTER YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 064A;;;;N;GLYPH FOR FINAL ARABIC YA;;;;
++FEF3;ARABIC LETTER YEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 064A;;;;N;GLYPH FOR INITIAL ARABIC YA;;;;
++FEF4;ARABIC LETTER YEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 064A;;;;N;GLYPH FOR MEDIAL ARABIC YA;;;;
++FEF5;ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0644 0622;;;;N;GLYPH FOR ISOLATE ARABIC MADDAH ON LIGATURE LAM ALEF;;;;
++FEF6;ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM;Lo;0;AL;&lt;final&gt; 0644 0622;;;;N;GLYPH FOR FINAL ARABIC MADDAH ON LIGATURE LAM ALEF;;;;
++FEF7;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0644 0623;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH ON LIGATURE LAM ALEF;;;;
++FEF8;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM;Lo;0;AL;&lt;final&gt; 0644 0623;;;;N;GLYPH FOR FINAL ARABIC HAMZAH ON LIGATURE LAM ALEF;;;;
++FEF9;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0644 0625;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH UNDER LIGATURE LAM ALEF;;;;
++FEFA;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM;Lo;0;AL;&lt;final&gt; 0644 0625;;;;N;GLYPH FOR FINAL ARABIC HAMZAH UNDER LIGATURE LAM ALEF;;;;
++FEFB;ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0644 0627;;;;N;GLYPH FOR ISOLATE ARABIC LIGATURE LAM ALEF;;;;
++FEFC;ARABIC LIGATURE LAM WITH ALEF FINAL FORM;Lo;0;AL;&lt;final&gt; 0644 0627;;;;N;GLYPH FOR FINAL ARABIC LIGATURE LAM ALEF;;;;
+
+
+Property changes on: theme/trunk/mageia-gfxboot-theme/trunk/po/bin/arabic.txt
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themetrunkmageiagfxbootthemetrunkpobinfixpot">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/bin/fixpot</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/bin/fixpot (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/bin/fixpot 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,27 @@
++#! /usr/bin/perl
++
++while(&lt;&gt;) {
++ if(/^\s*#|^\s*$/) { $msg[$cnt]{comment} .= $_; next }
++ if(s/^\s*msgid\b\s*//) { $cnt++; $id = 1 }
++ if(s/^\s*msgstr\b\s*//) { $id = 2 }
++ if($id == 1) { $msg[$cnt - 1]{id} .= $_; next }
++ if($id == 2) { $msg[$cnt - 1]{str} .= $_; next }
++
++ die &quot;oops at line $.\n&quot;;
++}
++
++for (@msg) {
++ print $_-&gt;{comment};
++
++ next unless defined($_-&gt;{id}) &amp;&amp; defined($_-&gt;{str});
++
++ if($_-&gt;{id} =~ /^\s*&quot;&quot;\s*$/ || $_-&gt;{str} =~ /^\s*&quot;&quot;\s*$/) {
++ print &quot;msgid &quot;, $_-&gt;{id};
++ print &quot;msgstr &quot;, $_-&gt;{str};
++ }
++ else {
++ print &quot;msgid &quot;, $_-&gt;{str};
++ print &quot;msgstr \&quot;\&quot;\n&quot;;
++ }
++}
++
+
+
+Property changes on: theme/trunk/mageia-gfxboot-theme/trunk/po/bin/fixpot
+___________________________________________________________________
+Added: svn:executable
+ + *
+
+<a id="themetrunkmageiagfxbootthemetrunkpobinpo2txt">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/bin/po2txt</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/bin/po2txt (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/bin/po2txt 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,281 @@
++#! /usr/bin/perl
++
++# convert *.po files to texts.* files suitable for gfxboot
++# usage: po2txt lang.po &gt;texts.lang
++# Note: en.po ist treated specially!
++
++use Getopt::Long;
++use Encode;
++
++sub arabic_is_letter;
++sub arabic_read_map;
++sub arabic_conv;
++
++sub read_texts;
++sub join_msg;
++sub fribidi;
++
++$opt_product = &quot;openSUSE&quot;;
++
++GetOptions(
++ 'product=s' =&gt; \$opt_product,
++ 'verbose|v' =&gt; \$opt_arabic_verbose,
++);
++
++
++chomp ($tmp_file = `mktemp /tmp/po2txt.XXXXXXXXXX`);
++
++arabic_read_map;
++
++for $lang (@ARGV) {
++ $lang = 'en' if $lang eq 'bootloader.pot';
++ $lang =~ s/\.po$//;
++ read_texts $lang;
++}
++
++unlink $tmp_file;
++
++
++sub read_texts
++{
++ local $_;
++
++ my ($lang, @f, $txt, $context, $t, $p, $ids, $file);
++
++ $lang = shift;
++
++ $file = &quot;$lang.po&quot;;
++ $file = 'bootloader.pot' if $lang eq 'en';
++
++ if($lang eq 'en') {
++ $ids = 1;
++ }
++
++ open F, $file;
++ @f = (&lt;F&gt;);
++ close F;
++
++ map { s/&lt;product&gt;/$opt_product/g; } @f;
++
++ $_ = $lang;
++ s/.*\///;
++
++ for (@f) {
++ if(/^\s*#\.\s*(txt_\S+)/) {
++ if($txt) {
++ @msgstr = @msgid if $ids || join_msg(\@msgstr) eq &quot;&quot;;
++ $txts{$txt} = join_msg(\@msgstr);
++ }
++
++ $txt = $1;
++
++ undef @msgid;
++ undef @msgstr;
++ undef $context;
++ next;
++ }
++
++ next if /^\s*#.*|^\s*$/;
++
++ if(/^\s*msgid\s*(\&quot;.*\&quot;)\s*$/) {
++ push @msgid, $1 unless $1 eq '&quot;&quot;';
++ $context = 1;
++ next;
++ }
++
++ if(/^\s*msgstr\s*(\&quot;.*\&quot;)\s*$/) {
++ push @msgstr, $1 unless $1 eq '&quot;&quot;';
++ $context = 2;
++ next;
++ }
++
++ if(/^\s*(\&quot;.*\&quot;)\s*$/) {
++ if($context == 1) {
++ push @msgid, $1;
++ }
++ elsif($context == 2) {
++ push @msgstr, $1;
++ }
++ else {
++ die &quot;format oops in ${lang}.po: $_&quot;
++ }
++ }
++ }
++
++ if($txt) {
++ @msgstr = @msgid if $ids || join_msg(\@msgstr) eq &quot;&quot;;
++ $txts{$txt} = join_msg(\@msgstr);
++ }
++
++ @txts = sort keys %txts;
++
++ for (@txts) {
++ $txt = $txts{$_};
++ $txt =~ s/\\&quot;/&quot;/g;
++ $txt =~ s/\\\\/\\/g;
++ $txt =~ s/\\n/\n/g;
++ $txt = fribidi $txt if $lang =~ /^(ar|he)/;
++ print &quot;$txt\x00&quot;
++ }
++
++ if($ids) {
++ open W, &quot;&gt;text.inc&quot;;
++ print W &quot;%\n% This file is generated automatically. Editing it is pointless.\n%\n\n&quot;;
++ print W &quot;/texts [\n&quot;;
++ $p = pop @txts;
++ for (@txts) { print W &quot; /$_\n&quot; }
++ print W &quot; /$p\n] def\n&quot;;
++ close W;
++ }
++ else {
++ open F, &quot;text.inc&quot;;
++ for (&lt;F&gt;) {
++ if(/\s+\/(txt_\S+)/) {
++ $txt_ref{$1} = undef;
++ }
++ }
++ close F;
++ for (@txts) {
++ $txt_list{$_}++;
++ $txt_multi{$_} = 1 if $txt_list{$_} &gt; 1;
++ }
++ for (@txts) {
++ $txt_unknown{$_} = 1 unless exists $txt_ref{$_};
++ }
++ for (keys %txt_ref) {
++ $txt_miss{$_} = 1 unless exists $txt_list{$_};
++ }
++
++ if(defined(%txt_miss) || defined(%txt_unknown) || defined(%txt_multi)) {
++ print STDERR &quot;$lang:\n&quot;;
++ for (sort keys %txt_miss) {
++ print STDERR &quot; missing: $_\n&quot;
++ }
++ for (sort keys %txt_unknown) {
++ print STDERR &quot; unknown: $_\n&quot;
++ }
++ for (sort keys %txt_multi) {
++ print STDERR &quot; multi: $_\n&quot;
++ }
++ }
++ }
++
++}
++
++
++sub join_msg
++{
++ local $_;
++ my ($s, $msg, $m);
++
++ $msg = shift;
++
++ for $s (@{$msg}) {
++ $_ = $s;
++ s/^\&quot;(.*)\&quot;$/$1/;
++ $m .= $_;
++ }
++
++ return $m;
++}
++
++
++sub fribidi
++{
++ local $_;
++ my $m;
++
++ $m = shift;
++
++ open F, &quot;&gt;$tmp_file&quot;;
++ print F arabic_conv($m);
++ close F;
++
++ open F, &quot;cat $tmp_file | fribidi --nopad --nobreak |&quot;;
++ $m = undef;
++ while(read F, $_, 0x10000) {
++ $m .= $_;
++ }
++ close F;
++
++ return $m;
++}
++
++
++sub arabic_conv {
++ local $_;
++ my (@c, @m, $i, @attr, @attr_name);
++
++ push @c, 0;
++ push @c, unpack(&quot;V*&quot;, encode(&quot;utf32le&quot;, decode(&quot;utf8&quot;, $_[0])));
++ push @c, 0;
++
++ # isolated: 0, initial: 1, final: 2, medial: 3
++ for ($i = 1; $i &lt; @c - 1; $i++) {
++ next if !arabic_is_letter $c[$i];
++ $attr[$i-1] += 2 if arabic_is_letter $c[$i-1];
++ $attr[$i-1] += 1 if arabic_is_letter $c[$i+1];
++ }
++
++ shift @c;
++ pop @c;
++
++ @attr_name = ( &quot;isolated&quot;, &quot;initial&quot;, &quot;final&quot;, &quot;medial&quot; );
++
++ for ($i = 0; $i &lt; @c; $i++) {
++ $m = $c[$i];
++ if(arabic_is_letter $c[$i]) {
++ $m = $arabic_map-&gt;{$c[$i]}{$attr_name[$attr[$i]]};
++ if(!$m &amp;&amp; $attr[$i] == 3) { # medial -&gt; final
++ $attr[$i] = 2;
++ $m = $arabic_map-&gt;{$c[$i]}{$attr_name[$attr[$i]]};
++ if($m &amp;&amp; $i &lt; @c - 1) {
++ if($attr[$i+1] == 3) { # next char: medial -&gt; initial
++ $attr[$i+1] = 1;
++ }
++ elsif($attr[$i+1] == 1) { # next char: initial -&gt;isolated
++ $attr[$i+1] = 0;
++ }
++ }
++ }
++ $m = $c[$i] unless $m;
++ }
++ push @m, $m;
++
++ printf STDERR &quot;%04x -&gt; %04x (%s)\n&quot;, $c[$i], $m, $attr_name[$attr[$i]] if $opt_arabic_verbose;
++ }
++
++ return encode(&quot;utf8&quot;, decode(&quot;utf32le&quot;, pack(&quot;V*&quot;, @m)));
++}
++
++
++sub arabic_is_letter
++{
++ return $_[0] &gt;= 0x600 &amp;&amp; $_[0] &lt;= 0x6ff ? 1 : 0
++}
++
++
++sub arabic_read_map
++{
++ local $_;
++ my (@i, $u, $m);
++
++ open F, &quot;bin/arabic.txt&quot;;
++ while(&lt;F&gt;) {
++ @i = split /;/;
++ $u = hex $i[0];
++ if($i[5] =~ /^&lt;(isolated|initial|final|medial)&gt; (\S{4})$/) {
++ $m = hex $2;
++ if($arabic_map-&gt;{$m}{$1}) {
++ printf STDERR &quot;%04x already has a '$1' form: %04x\n&quot;, $arabic_map-&gt;{$m}{$1}
++ }
++ $arabic_map-&gt;{$m}{$1} = $u;
++ # printf STDERR &quot;%04x %s %04x\n&quot;, $u, $1, $m;
++ }
++ }
++ close F;
++
++ print STDERR &quot;warning: no arabic support\n&quot; unless $arabic_map
++}
++
++
+
+
+Property changes on: theme/trunk/mageia-gfxboot-theme/trunk/po/bin/po2txt
+___________________________________________________________________
+Added: svn:executable
+ + *
+
+<a id="themetrunkmageiagfxbootthemetrunkpobinrm_text">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/bin/rm_text</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/bin/rm_text (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/bin/rm_text 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,63 @@
++#! /usr/bin/perl
++
++# remove a text from *.po files
++
++sub drop;
++
++die &quot;usage: rm_text id\n&quot; if @ARGV != 1;
++
++$id = shift;
++$id = &quot;txt_$id&quot; unless $id =~ /^txt_/;
++
++mkdir old, 0755;
++
++for $f (&quot;bootloader.pot&quot;, &lt;*.po&gt;) {
++ if(open F, $f) {
++ @f = &lt;F&gt;;
++ close F;
++
++ ( $new, $old ) = drop @f;
++ if(open F, &quot;&gt;&gt;old/$f&quot;) {
++ print F @$old;
++ close F;
++
++ open F, &quot;&gt;$f&quot;;
++ print F @$new;
++ close F;
++ }
++ }
++}
++
++
++sub drop
++{
++ local $_;
++ my (@f, @g, $drop_it, @d);
++
++ for (@_) {
++ push @g, $_;
++ $drop_it = 1 if /^#\.\s*${id}\s*$/;
++ if(/^\s*$/) {
++ if($drop_it) {
++ push @d, @g;
++ }
++ else {
++ push @f, @g;
++ }
++ undef $drop_it;
++ undef @g;
++ }
++ }
++
++ if(@g) {
++ if($drop_it) {
++ push @d, @g;
++ }
++ else {
++ push @f, @g;
++ }
++ }
++
++ return ( \@f, \@d );
++}
++
+
+
+Property changes on: theme/trunk/mageia-gfxboot-theme/trunk/po/bin/rm_text
+___________________________________________________________________
+Added: svn:executable
+ + *
+
+<a id="themetrunkmageiagfxbootthemetrunkpobnpo_disabled">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/bn.po_disabled</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/bn.po_disabled (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/bn.po_disabled 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,422 @@
++# LANGUAGE translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: @PACKAGE@\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2007-03-07 18:59+0100\n&quot;
++&quot;PO-Revision-Date: 2005-07-29 15:37+0530\n&quot;
++&quot;Last-Translator: Priyavert Sharma&lt;priyavert.sharma@agreeya.com&gt;\n&quot;
++&quot;Language-Team: AgreeYa Solutions &lt;linux_team@agreeya.com&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;#-#-#-#-# bootloader.bn.po (@PACKAGE@) #-#-#-#-#\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n!=1);\n&quot;
++&quot;\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;OK&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;বাতিল&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;রিবুট&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;ক্রমাগত&quot;
++
++#. txt_install
++msgid &quot;Installation&quot;
++msgstr &quot;স্থাপন&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;নিজের হাতে স্থাপন&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;স্থাপন--ACPI অসমর্থ&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;স্থাপন--সেটিংগুলি সুরক্ষিত করুন&quot;
++
++#. txt_safe_linux
++msgid &quot;Linux--Safe Settings&quot;
++msgstr &quot;লিনাক্স--সেটিংসমূহ সুরক্ষিত করুন&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;হার্ড ডিস্ক থেকে বুট করুন&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;সিস্টেম উদ্ধার করুন&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;মেমরি টেস্ট&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;বুট বিকল্পসমূহ&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;মজুদ করছি...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;আপনি গ্রাফিকাল বুট মেনু ছেড়ে যাচ্ছেন এবং রচনাশর্ত\n&quot;
++&quot; ইন্টারফেস শুরু করছে.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;হেল্প&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;স্টর্টিং...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;লিনাক্স কার্নেল লোড করছি\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot; memtest86 লোড করছি\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;বুট লোডার&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;I/O ত্রুটি&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;বুট ডিস্ক পরিবর্তন করুন&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;%u বুড ডিস্ক প্রবিষ্ট করুন.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;এটা বুড ডিস্ক %u.\n&quot;
++&quot;বুট ডিস্ক %u প্রবিষ্ট করুন.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;এটা &lt;প্রোডাক্ট&gt; বুট ডিস্ক নয়.\n&quot;
++&quot;বুট ডিস্ক %u প্রবিষ্ট করুন.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;পাসওয়ার্ড&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;আপনার ড্রাইভার আপডেট ফ্লপি রেডি নিন.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD ত্রুটি&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;একটা একটা দুদিকের DVD. আপনি দ্বিতীয় দিক থকে বুট করেছেন.\n&quot;
++&quot;\n&quot;
++&quot;DVD র দিকে পাল্টে তারপর চালাতে থাকুন.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;পাওয়ার অফ&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;সিস্টেম কি বন্ধ করব?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;হার্ড ডিস্ক&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;হার্ড ডিস্ক স্থাপন&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;ডিস্ক সরঞ্জাম (যদি খালি থাকে সমস্ত ডিস্কগুলি স্ক্যান করুন)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;ডাইরেক্টরি\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP স্থাপন&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;সার্ভার\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;পাসওয়ার্ড\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;ব্যবহারকারী(যদি খালি এনোমাস লগইন করুন)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS স্থাপন&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;ব্যবহারকারী(ব্যবহার করছি \&quot;guest\&quot; যদি খালি থাকে)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB (উইণ্ডোস শেয়ার) স্থাপন&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP স্থাপন&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;ড্রাইভার&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;ডোমেন\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;অন্য বিকল্পসমূহ&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;ভাষা&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;স্থাপন--IOAPIC সমর্থিত&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;স্থাপন--IOAPIC অসমর্থিত&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;স্থাপন--লোকাল APIC অসমর্থিত&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;হ্যাঁ&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;না&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;ফাইল&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;শেয়ার\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;স্বয়ংক্রিয় শর্ত&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;ম্যানুয়াল শর্ত&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;ZEN পার্টিশনে প্যারমিটার গঠন করুন&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;ZEN পার্টিশন ইনস্টল/আপডেট করুন&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;ZEN পার্টিশন বুট লোডার পুনরায় ইনস্টল করুন&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;ZEN পার্টিশন অসমর্থ করুন&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;ZEN পার্টিশন সমর্থ করুন&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;পাঠ্যাংশ মোড&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;ফার্মওয়্যার পরীক্ষণ&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;সরাসরি CD-ROM থেকে ড্রাইভারের আপডেট ভরার জন্যে\n&quot;
++&quot;ড্রাইভার আপডেটের ফাইলের নামগুলি প্রবিষ্ট করুন (কমা দ্বারা\n&quot;
++&quot;পৃথকীকৃত ',') এখানে:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;উত্‍স&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;আর্ক&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;কিবোর্ড&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpobootloaderpot">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/bootloader.pot</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/bootloader.pot (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/bootloader.pot 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,454 @@
++# LANGUAGE translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader\n&quot;
++&quot;PO-Revision-Date: 2005-07-27 11:49+0200\n&quot;
++&quot;Last-Translator: FULL NAME &lt;EMAIL@ADDRESS&gt;\n&quot;
++&quot;Language-Team: LANGUAGE &lt;i18n@suse.de&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;&quot;
++
++#. txt_install
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;&quot;
++
++#. txt_safe_linux
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;&quot;
++
++#. txt_dud_file_msg
++#, wrap
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;Insert driver update CD-ROM for\n\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;&quot;
++
+
+<a id="themetrunkmageiagfxbootthemetrunkpobrpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/br.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/br.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/br.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,506 @@
++# LANGUAGE translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader\n&quot;
++&quot;POT-Creation-Date: 2005-07-27 11:49+0200\n&quot;
++&quot;PO-Revision-Date: 2009-04-15 16:39+0200\n&quot;
++&quot;Last-Translator: Thierry Vignaud &lt;tvignaud@mandriva.com&gt;\n&quot;
++&quot;Language-Team: breton &lt;i18n@suse.de&gt;\n&quot;
++&quot;Language: \n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;Mat eo&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Nullañ&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Adlañsañ&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Kenderc'hel&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Loc'hañ Microsoft Windows&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux gant ar galon %s&quot;
++
++# dialog title for ftp installation
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Staliadur FTP&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Staliadur a-zorn&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Staliadur (hep ACPI)&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Loc'hañ Mandriva Linux 2010 Spring (gant surantez)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Loc'hañ eus ar bladenn&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;O wiriekaat ar memor&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Dibaboù loc'hañ&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;O kuitaat ...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Skoazell&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;O loc'hañ ...&quot;
++
++# Keep the three newlines!
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;O kargañ kalon Linux\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++# Keep the three newlines!
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;O kargañ memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++# info box title
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Karger loc'hañ&quot;
++
++# error box title
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;Fazi E/D&quot;
++
++# boot disk change dialog title
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Cheñch ar bladenn loc'hañ&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Enlakit ar bladenn loc'hañ %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Setu ar bladenn loc'hañ %u.\n&quot;
++&quot;Enlakit ar bladenn loc'hañ %u&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, fuzzy, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Setu ar bladenn loc'hañ %u.\n&quot;
++&quot;Enlakit ar bladenn loc'hañ %u&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Tremenger&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;&quot;
++
++# dvd warning title
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;Fazi DVD&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++
++# power off dialog title
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Lazhañ&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Lazhañ ar reizhiad bremañ ?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Pladenn&quot;
++
++# dialog title for hard disk installation
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Staliadur eus ar bladenn&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Renkell\n&quot;
++
++# dialog title for ftp installation
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;Staliadur FTP&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Servijer\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Tremenger\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;&quot;
++
++# dialog title for nfs installation
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;Staliadur NFS&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;Staliadur SMB (Windows Share)&quot;
++
++# dialog title for http installation
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;Staliadur HTTP&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Sturier&quot;
++
++# as in Windows Authentication Domain
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Domani\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Dibarzhoù all&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Yezh&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Staliadur--IOAPIC bev&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Staliadur--IOAPIC marv&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Staliadur--IOAPIC lec'hel marv&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Ya&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;N'eo ket&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Restr&quot;
++
++# input label: share as in &quot;Windows share&quot; (SMB)
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Rann\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Mod otomatek&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Mod dornek&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Mod skrid&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Tarzh&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Mod video&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++#, fuzzy
++msgid &quot;Driver Update&quot;
++msgstr &quot;Sturier&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Dibarzhoù ar galon&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Dre ziouer&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;ACPI ebet&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;APIC lec'hel ebet&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;&quot;
++
++# dialog title for ftp installation
++#. menu item
++#. txt_mediacheck
++#, fuzzy
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Staliadur FTP&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Stokellaoueg&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Ho evezh&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Loc'hañ Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Staliañ Mandriva Linux 2010 Spring&quot;
++
++# Keep the newlines and spaces after ':'!
++#~ msgid &quot;&quot;
++#~ &quot;Enter your password: \n&quot;
++#~ &quot;\n&quot;
++#~ &quot;\n&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Roit ho tremenger : \n&quot;
++#~ &quot;\n&quot;
++#~ &quot;\n&quot;
++
++# dialog title for ISO installation
++#~ msgid &quot;Installation from ISO file&quot;
++#~ msgstr &quot;Staliañ eus ur restr ISO&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpobspo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/bs.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/bs.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/bs.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,533 @@
++# translation of bs.po to Bosnian
++# LANGUAGE translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++# Vedran Ljubovic &lt;vljubovic@smartnet.ba&gt;, 2006.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bs\n&quot;
++&quot;POT-Creation-Date: 2005-07-27 11:49+0200\n&quot;
++&quot;PO-Revision-Date: 2006-09-16 09:28+0200\n&quot;
++&quot;Last-Translator: Vedran Ljubovic &lt;vljubovic@smartnet.ba&gt;\n&quot;
++&quot;Language-Team: Bosnian &lt;lokal@linux.org.ba&gt;\n&quot;
++&quot;Language: bs\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.10.2\n&quot;
++&quot;Plural-Forms: nplurals=3; plural=(n%10==1 &amp;&amp; n%100!=11 ? 0 : n%10&gt;=2 &amp;&amp; n&quot;
++&quot;%10&lt;=4 &amp;&amp; (n%100&lt;10 || n%100&gt;=20) ? 1 : 2);\n&quot;
++
++# ok button label
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;U redu&quot;
++
++# cancel button label
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Odustani&quot;
++
++# reboot button label
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Restart&quot;
++
++# continue button label
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Nastavi&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;&quot;
++
++# dialog title for ftp installation
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;FTP instalacija&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Ručna instalacija&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Instalacija - ACPI isključen&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Instalacija - Sigurne postavke&quot;
++
++#. txt_safe_linux
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Pokreni sa hard diska&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Popravka sistema&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Test memorije&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Opcije starta&quot;
++
++# window title for exit dialog
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Završetak...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Napuštate grafički izbor operativnog sistema\n&quot;
++&quot;i prelazite u tekstualno okruženje.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Pomoć&quot;
++
++# window title for kernel loading (see txt_load_kernel)
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Pokrećem...&quot;
++
++# Keep the three newlines!
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Učitavam Linux kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++# Keep the three newlines!
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Učitavam memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++# info box title
++#. info box title
++#. txt_info_title
++#, fuzzy
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Boot loader&quot;
++
++# error box title
++#. error box title
++#. txt_error_title
++#, fuzzy
++msgid &quot;I/O Error&quot;
++msgstr &quot;U/I greška&quot;
++
++# boot disk change dialog title
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Promijenite boot disk&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Ubacite boot disk %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Ovo je boot disk %u.\n&quot;
++&quot;Ubacite boot disk %u.&quot;
++
++# &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, fuzzy, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Ovo nije &lt;product&gt; boot disk.\n&quot;
++&quot;Molim ubacite boot disk %u.&quot;
++
++# password dialog title
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Šifra&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Pripremite vašu disketu sa drajverima.&quot;
++
++# dvd warning title
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD greška&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Ovo je dvostrani DVD. Startovali ste sistem sa pogrešne strane.\n&quot;
++&quot;\n&quot;
++&quot;Okrenite DVD i pokušajte ponovo.&quot;
++
++# power off dialog title
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Isključenje&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Da ugasim računar?&quot;
++
++# menu entry for hard disk installation
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Hard disk&quot;
++
++# dialog title for hard disk installation
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Instalacija na hard disk&quot;
++
++#. txt_hd_diskdevice
++#, fuzzy
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Disk uređaj (ako je prazno, pretraži diskove)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Direktorij\n&quot;
++
++# dialog title for ftp installation
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP instalacija&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Server\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Šifra\n&quot;
++
++# label for ftp user input
++#. label for ftp user input
++#. txt_user1
++#, fuzzy
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Korisnik (ako je prazno, anonimna prijava)\n&quot;
++
++# dialog title for nfs installation
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS instalacija&quot;
++
++# label for smb user input
++#. label for smb user input
++#. txt_user2
++#, fuzzy
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Korisnik (ako je prazno, koristim \&quot;guest\&quot;)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++#, fuzzy
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;Ručna instalacija&quot;
++
++# dialog title for http installation
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP instalacija&quot;
++
++# 'driver' as in '(hardware) driver update'
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Drajver&quot;
++
++# as in Windows Authentication Domain
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Domena\n&quot;
++
++# button label for other/more options
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Ostale opcije&quot;
++
++# label for language selection
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Jezik&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Instalacija - Uključen IOAPIC&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Instalacija - Isključen IOAPIC&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Instalacija - Isključen lokalni APIC&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Da&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Ne&quot;
++
++# menu item for selecting a file
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Datoteka&quot;
++
++# input label: share as in &quot;Windows share&quot; (SMB)
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Dijeljeni resurs\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;&quot;
++
++# 'driver' as in '(hardware) driver update'
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++#, fuzzy
++msgid &quot;Driver Update&quot;
++msgstr &quot;Drajver&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++#, fuzzy
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Instalacija - Sigurne postavke&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++#, fuzzy
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Popravka sistema&quot;
++
++# dialog title for ftp installation
++#. menu item
++#. txt_mediacheck
++#, fuzzy
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;FTP instalacija&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;&quot;
++
++# Keep the newlines and spaces after ':'!
++#~ msgid &quot;&quot;
++#~ &quot;Enter your password: \n&quot;
++#~ &quot;\n&quot;
++#~ &quot;\n&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Unesite vašu šifru: \n&quot;
++#~ &quot;\n&quot;
++#~ &quot;\n&quot;
++
++# dialog title for ISO installation
++#~ msgid &quot;Installation from ISO file&quot;
++#~ msgstr &quot;Instalacija iz ISO datoteke&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpocapo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/ca.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/ca.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/ca.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,483 @@
++# LANGUAGE translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: YaST (@memory@)\n&quot;
++&quot;Report-Msgid-Bugs-To: translation@suse.de\n&quot;
++&quot;POT-Creation-Date: 2006-05-15 15:07+0200\n&quot;
++&quot;PO-Revision-Date: 2007-02-19 15:09+0100\n&quot;
++&quot;Last-Translator: Olga López\n&quot;
++&quot;Language-Team: Catalan\n&quot;
++&quot;Language: \n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;D'acord&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Anul·la&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Reinicia&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Continua&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Instal·lació&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Instal·lació manual&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Instal·lació -- ACPI inhabilitada&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Instal·lació -- Configuració segura&quot;
++
++#. txt_safe_linux
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Arrenca des del disc dur&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Sistema de recuperació&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Prova de memòria&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Opcions d'arrencada&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Sortida...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Esteu sortint del menú d'arrencada gràfic i\n&quot;
++&quot;iniciant la interfície del mode de text.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Ajuda&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Inicialització...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Càrrega del nucli de Linux\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Càrrega del memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Carregador de l'arrencada&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;Error d'E/S&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Canvieu el disc d'arrencada&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Inseriu el disc d'arrencada %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Aquest és el disc d'arrencada %u.\n&quot;
++&quot;Inseriu el disc d'arrencada %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Aquest no és un disc d'arrencada per a &lt;product&gt;.\n&quot;
++&quot;Inseriu el disc d'arrencada %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Contrasenya&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Prepareu el disquet d'actualització de controladors.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;S'ha produït un error de DVD&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Aquest DVD té dues cares. Heu arrencat des de la segona cara.\n&quot;
++&quot;\n&quot;
++&quot;Gireu el DVD i continueu.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Apaga&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Voleu aturar el sistema ara?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Disc dur&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Instal·lació del disc dur&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Dispositiu de disc (escaneja tots els discs si es deixa buit)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Directori\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;Instal·lació per FTP&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Servidor\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Contrasenya\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Usuari (entrada anònima si es deixa buit)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;Instal·lació per NFS&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Usuari (utilitza \&quot;guest\&quot; si es deixa buit)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;Instal·lació de SMB (recurs compartit del Windows)&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;Instal·lació per HTTP&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Controlador&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Domini\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Altres opcions&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Idioma&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Instal·lació -- IOAPIC habilitat&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Instal·lació -- IOAPIC inhabilitat&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Instal·lació -- APIC local inhabilitat&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Sí&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;No&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Fitxer&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Recurs compartit\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Mode automàtic&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Mode manual&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Configura els paràmetres a la partició de ZEN&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Instal·la o actualitza la partició de ZEN&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Torna a instal·lar el carregador de l'arrencada de la partició de ZEN&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Inhabilita la partició de ZEN&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Habilita la partició de ZEN&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Mode de text&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Prova de microprogramari&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Per a carregar les actualitzacions dels controladors directament des del CD-&quot;
++&quot;ROM,\n&quot;
++&quot;introduïu els noms dels fitxers d'actualització de controladors (separats\n&quot;
++&quot;per comes ',') aquí:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Font&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Actualització de controladors&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Arquit.&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++#, fuzzy
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Altres opcions&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Per defecte&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Teclat&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;Linux -- Configuració segura&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpocspo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/cs.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/cs.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/cs.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,494 @@
++# Translation of cs.po to Czech
++# translation of cs.po to cs_CZ
++# LANGUAGE translations for boot loader
++# Copyright (C) 2004 SUSE LINUX AG
++#
++# Klara Cihlarova &lt;koty@seznam.cz&gt;, 2004, 2005, 2006.
++# Michal Bukovjan &lt;bukm@centrum.cz&gt;, 2009, 2010.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: cs\n&quot;
++&quot;PO-Revision-Date: 2010-05-14 21:55+0200\n&quot;
++&quot;Last-Translator: Michal Bukovjan &lt;bukm@centrum.cz&gt;\n&quot;
++&quot;Language-Team: Czech &lt;kde-i18n-doc@kde.org&gt;\n&quot;
++&quot;Language: cs\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: Lokalize 1.0\n&quot;
++&quot;Plural-Forms: nplurals=3; plural=(n%10==1 &amp;&amp; n%100!=11 ? 0 : n%10&gt;=2 &amp;&amp; n&quot;
++&quot;%10&lt;=4 &amp;&amp; (n%100&lt;10 || n%100&gt;=20) ? 1 : 2);\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;OK&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Zrušit&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Restartovat&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Pokračovat&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Zavést Microsoft Windows&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Nástroj pro zjištění hardware&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux s jádrem %s&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Kontrola instalačního média&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Ruční instalace&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Instalace -- bez ACPI&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Instalace -- bezpečné nastavení&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Zavést Mandriva Linux 2010 Spring (bezpečný režim)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Spustit z disku&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Záchranný systém&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Test paměti&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Parametry startu&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Ukončuji...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Opouštíte grafickou startovací nabídku\n&quot;
++&quot;a spouštíte textový režim.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Nápověda&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Startuji...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Zavádím linuxové jádro\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Zavádím memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Zavaděč&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;Chyba I/O&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Změnit startovací disk&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Vložte startovací disk %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Toto je startovací disk %u.\n&quot;
++&quot;Vložte prosím disk %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Toto není startovací disk systému &lt;product&gt;.\n&quot;
++&quot;Vložte startovací disk %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Heslo&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Připravte si disketu s ovladači.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;Chyba DVD&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Toto je oboustranné DVD. Spouštíte systém z druhé strany DVD.\n&quot;
++&quot;\n&quot;
++&quot;Obraťte prosím DVD a pokračujte.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Vypnout&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Chcete nyní vypnout systém?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Pevny disk&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Instalace z disku&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Disk (při nevyplnění prohledávání všech disků)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Adresář\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP instalace&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Server\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Heslo\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Uživatel (při nevyplnění anonymní přihlášení)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS instalace&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Uživatel (při nevyplnění nastaveno na \&quot;guest\&quot;)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB instalace (sdílený adresář)&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP instalace&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Ovladač&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Doména\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Další volby&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Jazyk&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Instalace -- s IOAPIC&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Instalace -- bez IOAPIC&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Instalace -- bez local APIC&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Ano&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Ne&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Soubor&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Sdílení\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Automatický režim&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Ruční režim&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Nastavit parametry pro ZEN oddíl&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Instalovat či aktualizovat ZEN oddíl&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Reinstalovat zavaděč ZEN oddílu&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Zakázat ZEN oddíl&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Povolit ZEN oddíl&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Textový režim&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Test firmwaru&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Pro nahrání aktualizací ovladačů přímo z CD-ROM,\n&quot;
++&quot;zadejte jména souborů aktualizací (oddělená\n&quot;
++&quot;čárkami ','):\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Zdroj&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Video režim&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Aktualizace ovladače&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Arch&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Volba jádra&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Výchozí&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Bezpečné nastavení&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Bez ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Bez local APIC&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Opravit nainstalovaný systém&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Kontrola instalačního média&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Klávesnice&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Stáhnout aktualizace ovladačů&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Zadejte adresu aktualizace ovladačů\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Chybná architektura&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;Toto je 32bitový počítač. Nelze na něm používat nebo instalovat 64bitový &quot;
++&quot;software.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Varování&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;Chystáte se instalovat 32bitový software na 64bitový počítač.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;Vložte CD-ROM s aktualizacemi ovladačů pro\n&quot;
++&quot;„%s”.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Vložte do zařízení zpět CD-ROM s distribucí Mandriva Linux.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;Obnovit zálohu draksnapshot&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Zavést Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Instalovat Mandriva Linux 2010 Spring&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpocypo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/cy.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/cy.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/cy.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,518 @@
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader=-cy\n&quot;
++&quot;POT-Creation-Date: 2005-07-27 11:49+0200\n&quot;
++&quot;PO-Revision-Date: 2009-08-24 19:12-0000\n&quot;
++&quot;Last-Translator: Rhoslyn Prys &lt;rprys@yahoo.com&gt;\n&quot;
++&quot;Language-Team: Cymraeg/Welsh &lt;post@meddal.com&gt;\n&quot;
++&quot;Language: \n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Poedit-Language: Welsh\n&quot;
++&quot;X-Poedit-Country: UNITED KINGDOM\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n == 2) ? 1 : 0;\n&quot;
++
++# ok button label
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;Iawn&quot;
++
++# cancel button label
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Diddymu&quot;
++
++# reboot button label
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Ailgychwyn&quot;
++
++# continue button label
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Parhau&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Cychwyn Microsoft Windows&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Teclyn Canfod Caledwedd&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux gyda cnewyllyn %s&quot;
++
++# dialog title for ftp installation
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Gwirio'r Cyfrwng Gosod&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Gosod gyda Llaw&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Gosod--Anablu ACPI&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Gosod--Gosodiadau Diogel&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Gosod Mandriva Linux 2010 Spring (modd diogel)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Gosod o'r Ddisg Galed.&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;System Achub&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Prawf Cof&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Dewisiadau Cychwyn&quot;
++
++# window title for exit dialog
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Gadael...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Rydych yn gadael y ddewislen graffigol ac\n&quot;
++&quot;yn cychwyn y rhyngwyneb modd testun.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Cymorth&quot;
++
++# window title for kernel loading (see txt_load_kernel)
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Cychwyn...&quot;
++
++# Keep the three newlines!
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Llwytho Cnewyllyn Linux\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++# Keep the three newlines!
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Llwytho memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++# info box title
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Cychwynnwr&quot;
++
++# error box title
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;Gwall I/O&quot;
++
++# boot disk change dialog title
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Newid Disg Cychwyn&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Mewnosod disg cychwyn %u&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Hwn yw disg cychwyn %u.\n&quot;
++&quot;Mewnosodwch ddisg cychwyn %u.&quot;
++
++# &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Nid disg cychwyn &lt;product&gt; yw hwn.\n&quot;
++&quot;Mewnosodwch ddisg cychwyn %u.&quot;
++
++# password dialog title
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Cyfrinair&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Paratowch eich disg meddal gyrrwyr.&quot;
++
++# dvd warning title
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;Gwall DVD&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Mae hwn yn DVD dwy ochr. Rydych wedi cychwyn o'r ail ochr.\n&quot;
++&quot;\n&quot;
++&quot;Trowch y DVD drosodd ac yna parhau.&quot;
++
++# power off dialog title
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Diffodd y Pŵer&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Atal y system nawr?&quot;
++
++# menu entry for hard disk installation
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Disg Caled&quot;
++
++# dialog title for hard disk installation
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Gosod Disg Caled&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Dyfais Disgiau (sganiwch bob disg os yn wag)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Cyfeiriadur\n&quot;
++
++# dialog title for ftp installation
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;Gosodiad FTP&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Gweinydd\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Cyfrinair\n&quot;
++
++# label for ftp user input
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Defnyddiwr (mewngofnod anhysbys os yw'n wag)\n&quot;
++
++# dialog title for nfs installation
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;Gosodiad NFS&quot;
++
++# label for smb user input
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Defnyddiwr (defnyddio \&quot;guest\&quot; Os yw'n wag)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;Gosod SMB (Rhannu Windows)&quot;
++
++# dialog title for http installation
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;Gosod HTTP&quot;
++
++# 'driver' as in '(hardware) driver update'
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Gyrrwr&quot;
++
++# as in Windows Authentication Domain
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Parth\n&quot;
++
++# button label for other/more options
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Dewisiadau Eraill&quot;
++
++# label for language selection
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Iaith&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Gosodiad--IOAPIC wedi ei Alluogi&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Gosodiad--IOAPIC wedi ei Anablu&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Gosodiad--APIC Lleol wedi ei Anablu&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Iawn&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Na&quot;
++
++# menu item for selecting a file
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Ffeil&quot;
++
++# input label: share as in &quot;Windows share&quot; (SMB)
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Rhannu\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Modd Awtomatig&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Modd Llaw&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Ffurfweddu Paramedrau Rhaniad ZEN&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Gosod neu Ddiweddaru Rhaniad ZEN&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Ailosod Cychwynnwr Rhaniad ZEN&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Anablu Rhaniad ZEN&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Galluogi Rhaniad ZEN&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Modd Testun&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Prawf Caledwar&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;I lwytho'r diweddariadau o'r CD-ROM, rhowch\n&quot;
++&quot;enw'r ffeil diweddaru'r (wedi ei wahannu gan\n&quot;
++&quot;gollnod',') yma:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Ffynhonnell&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Modd Fideo&quot;
++
++# 'driver' as in '(hardware) driver update'
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Diweddaru Gyrrwr&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Arch&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Dewis Cnewyllyn&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Rhagosodedig&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Gosodiadau Diogel&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Dim ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Dim APIC Lleol&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Trwsio System wedi ei Osod&quot;
++
++# dialog title for ftp installation
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Gwirio'r Cyfrwng Gosod&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Bysellfwrdd&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Diweddaru Llwytho Gyrrwr&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Rhowch URL Diweddaru Gyrrwr\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Pensaerniarth anghywir&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++#, fuzzy
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;Cyfrifiadur 32 did yw hwn&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Rhybudd&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;Rydych ar fin gosod meddalwedd 32did ar gyfrifiadur 64did.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;Mewnosod diweddariad gyrrwr CD-ROM ar gyfer\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Rhowch CD-ROM Mandriva Linux nôl yn y gyrrwr.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;Adfer copïau wrth gefn draksnapshot&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Cychwyn Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Gosod Mandriva Linux 2010 Spring&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpodapo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/da.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/da.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/da.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,492 @@
++# translation of da.po to Danish
++# LANGUAGE translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++# Martin Møller &lt;martin@martinm-76.dk&gt;, 2005.
++# Keld Simonsen &lt;keld@dkuug.dk&gt;, 2009.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: da\n&quot;
++&quot;PO-Revision-Date: 2009-12-30 20:54+0200\n&quot;
++&quot;Last-Translator: Keld Simonsen &lt;keld@dkuug.dk&gt;\n&quot;
++&quot;Language-Team: Danish &lt;dansk@dansk-gruppen.dk&gt;\n&quot;
++&quot;Language: da\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;O.k.&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Annullér&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Genstart&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Fortsæt&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Start Microsoft Windows op&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Værktøj til at bestemme materiel&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux med kerne %s&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Tjek installationsmedie&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Manuel installation&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Installation--ACPI deaktiveret&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Installation--fejlsikret&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Start Mandriva Linux 2010 Spring op (sikker tilstand)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Boot fra harddisk&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Redningssystem&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Hukommelsestest&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Boot-valgmuligheder&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Afslutter...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Du forlader den grafiske bootmenu, og\n&quot;
++&quot;starter grænsefladen i teksttilstand.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Hjælp&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Starter...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Indlæser Linux-kernen\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Indlæser 'memtest86'\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Bootloader&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;I/O-fejl&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Skift bootdisk&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Indsæt bootdisk %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Dette er bootdisk %u.\n&quot;
++&quot;Indsæt bootdisk %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Dette er ikke en &lt;product&gt; bootdisk.\n&quot;
++&quot;Indsæt bootdisk %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Adgangskode&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Gør din driver-opdateringsdiskette klar.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD-fejl&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Dette er en tosidet DVD. Du har startet op fra den anden side.\n&quot;
++&quot;\n&quot;
++&quot;Vend DVD'en om og prøv igen.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Sluk maskinen&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Luk systemet ned nu?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Harddisk&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Harddisk-installation&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Diskenhed (gennemsøger alle diske hvis tom)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Mappe\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP-installation&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Server\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Adgangskode\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Bruger (anonymt login hvis tom)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS-installation&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Bruger (anvender \&quot;guest\&quot; hvis tom)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB-installation (Windows fildeling)&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP-installation&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Driver&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Domæne\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Andre valgmuligheder&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Sprog&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Installation--IOAPIC aktiveret&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Installation--IOAPIC deaktiveret&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Installation--Lokal APIC deaktiveret&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Ja&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Nej&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Fil&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Delt ressource\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Automatisk tilstand&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Manuel tilstand&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Konfigurér parametre på ZEN-partition&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Installér eller opdatér ZEN-partition&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Geninstallér ZEN-partitionens bootloader&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Deaktivér ZEN-partition&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Aktivér ZEN-partition&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Teksttilstand&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Firmware-test&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;For at indlæse driveropdateringer direkte fra CD-ROM,\n&quot;
++&quot;angives filnavnene for driveropdateringerne (adskilt\n&quot;
++&quot;af kommaer ',') her:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Kilde&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Grafisk tilstand&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Driveropdatering&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Ark.&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Kerne-valgmulighed&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Standard&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Fejlsikrede indstillinger&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Ingen ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Ingen lokal APIC&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Reparér installeret system&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Tjek installationsmedie&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Tastatur&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Hent driver-opdatering&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Indtast URL for driver-opdatering\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Forkert arkitektur&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;Dette er en 32-bit maskine. Du kan ikke bruge eller installere 64-bit &quot;
++&quot;programmel på den.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Advarsel&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;Du er ved at installere 32-bit programmel på en 64-bit maskine.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;Indsæt driver-opdaterings CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Sæt Mandriva Linux CD-ROM'en tilbage i drevet.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;Genetablér draksnapshot sikkerhedskopi&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Start Mandriva Linux 2010 Spring op&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Installér Mandriva Linux 2010 Spring&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpodepo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/de.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/de.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/de.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,496 @@
++# translation of de.po to deutsch
++# translation of de.po to
++# LANGUAGE translations for boot loader
++# Copyright (C) 2004 SUSE LINUX AG
++#
++# Antje Faber &lt;afaber@suse.de&gt;, 2004, 2005.
++# Oliver Burger &lt;oliver@mandrivauser.de&gt;, 2009, 2010.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: de\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2005-07-27 16:23+0200\n&quot;
++&quot;PO-Revision-Date: 2010-04-27 11:31+0200\n&quot;
++&quot;Last-Translator: Oliver Burger &lt;oliver@mandrivauser.de&gt;\n&quot;
++&quot;Language-Team: German &lt;cooker-i18n@mandrivalinux.org&gt;\n&quot;
++&quot;Language: de\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++&quot;X-Generator: Lokalize 1.0\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;O.K.&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Abbrechen&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Neustart&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Weiter&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Starte Microsoft Windows&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Hardware-Erkennungswerkzeug&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux mit Kernel %s&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Prüfe Installationsmedium&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Manuelle Installation&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Installation - ACPI deaktiviert&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Installation - Sichere Einstellungen&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Starten von Mandriva Linux 2010 Spring (sicherer Modus)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Von Festplatte booten&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Rettungssystem&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Speichertest&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Bootoptionen&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Beenden ...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Sie verlassen das grafische Bootmenü und\n&quot;
++&quot;kommen in den Textmodus.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Hilfe&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Starten...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Laden des Linux-Kernels\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Laden von memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Bootloader&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;Ein-/Ausgabefehler&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Bootdiskette wechseln&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Bootdiskette %u einlegen.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Dies ist Bootdiskette %u.\n&quot;
++&quot;Legen Sie bitte die Bootdiskette %u ein.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Dies ist keine &lt;product&gt;-Bootdiskette.\n&quot;
++&quot;Legen Sie bitte die Bootdiskette %u ein.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Passwort&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Halten Sie die Aktualisierungsdiskette für den Treiber bereit.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD-Fehler&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Dies ist eine doppelseitige DVD. Sie haben von der zweiten Seite gebootet.\n&quot;
++&quot;\n&quot;
++&quot;Drehen Sie bitte die DVD um, und fahren Sie dann fort.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Ausschalten&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;System jetzt anhalten?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Festplatte&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Festplatten-Installation&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Festplattengerät (scannt alle Festplatten, falls leer)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Verzeichnis\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP-Installation&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Server\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Passwort\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Benutzer (Anonyme-Anmeldung, falls leer)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS-Installation&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Benutzer (verwendet \&quot;guest\&quot;, falls leer)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB (Windows Share)-Installation&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP-Installation&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Treiber&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Domain\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Weitere Optionen&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Sprache&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Installation - IOAPIC aktiviert&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Installation - IOAPIC deaktiviert&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Installation - Lokaler APIC deaktiviert&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Ja&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Nein&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Datei&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Freigabe\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Automatischer Modus&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Manueller Modus&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Parameter in ZEN-Partition konfigurieren&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;ZEN-Partition installieren oder aktualisieren&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Bootloader für ZEN-Partition neu installieren&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;ZEN-Partition deaktivieren&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;ZEN-Partition aktivieren&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Textmodus&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Firmware-Test&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Wenn Sie Treiber-Aktualisierungen direkt von der CD-ROM laden möchten,\n&quot;
++&quot;geben Sie hier die Dateinamen der Treiber-Aktualisierungen\n&quot;
++&quot;(durch Kommas getrennt) ein:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Quelle&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Videomodus&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Treiber-Aktualisierung&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Architektur&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Kernel Optionen&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Standard&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Sichere Einstellungen&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Kein ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Kein lokales APIC&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Installiertes System reparieren&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Prüfe Installationsmedium&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Tastatur&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Treiber-Updates herunterladen&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Treiber-Update URL eingeben\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Falsche Architektur&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;Dies ist ein 32-bit Computer. Sie können keine 64-bit Software auf ihm &quot;
++&quot;benutzen.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Warnung&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++&quot;Sie sind dabei, 32-bit Software auf einem 64-bit Computer zu installieren.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;Legen Sie die Treiber Update CD-ROM für\n&quot;
++&quot;\&quot;%s\&quot; ein.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Legen Sie die Mandriva-Linux CD-ROM erneut in Ihr Laufwerk ein.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;Stelle das Draksnapshot-Backup wieder her&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Starten von Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Installiere Mandriva Linux 2010 Spring&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpoelpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/el.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/el.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/el.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,508 @@
++# translation of el.po to Hellenic-Ελληνικά-Greek
++# translation of el.po to Hellenic
++# LANGUAGE translations for boot loader
++# Copyright (C) 2004 SUSE LINUX AG
++#
++# Hellenic SuSE Translators Group &lt;hstg@billg.gr&gt;, 2004, 2005.
++# Hellenic SuSE Translation Team &lt;hstg@billg.gr&gt;, 2005.
++# Glentadakis Dimitrios &lt;dglent@gmail.com&gt;, 2009.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader.el\n&quot;
++&quot;POT-Creation-Date: \n&quot;
++&quot;PO-Revision-Date: 2009-12-01 07:32+0100\n&quot;
++&quot;Last-Translator: Glentadakis Dimitrios &lt;dglent@gmail.com&gt;\n&quot;
++&quot;Language-Team: Greek &lt;i18ngr@lists.hellug.gr&gt;\n&quot;
++&quot;Language: el\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: Lokalize 1.0\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;Εντάξει&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Ακύρωση&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Επανεκκίνηση&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Συνέχεια&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Εκκίνηση Microsoft Windows&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Εργαλείο Ανίχνευσης Υλικού&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux με kernel %s&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Εγκατάσταση&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Χειροκίνητη Εγκατάσταση&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Εγκατάσταση --ACPI Απενεργοποιημένο&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Εγκατάσταση --Ασφαλείς Ρυθμίσεις&quot;
++
++# dialog title for smb installation
++# msgid &quot;SMB (Windows Share) Installation&quot;
++# msgstr &quot;Εγκατάσταση SMB (Windows Share)&quot;
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Εκκίνηση Mandriva Linux 2010 Spring (ασφαλής λειτουργία)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Εκκίνηση από τον Σκληρό Δίσκο&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Σύστημα Διάσωσης&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Έλεγχος Μνήμης&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Ρυθμίσεις Εκκίνησης&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Έξοδος...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Εγκαταλείπετε το μενού γραφικής εκκίνησης και\n&quot;
++&quot;ξεκινάτε το περιβάλλον κατάστασης κειμένου.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Βοήθεια&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Εκκίνηση...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Ο πυρήνας του Linux φορτώνεται\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Το memtest86 φορτώνεται\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Διαχειριστής Εκκίνησης &quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;Σφάλμα Εισ/Εξ&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Αλλαγή Δισκέτας Εκκίνησης&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Παρακαλώ εισάγετε την δισκέτα εκκίνησης %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Αυτή είναι η δισκέτα εκκίνησης %u.\n&quot;
++&quot;Παρακαλώ εισάγετε τη δισκέτα εκκίνησης %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Αυτή δεν είναι δισκέτα εκκίνησης του &lt;product&gt;.\n&quot;
++&quot;Παρακαλώ εισάγετε τη δισκέτα εκκίνησης %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Κωδικός&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Ετοιμάστε την δισκέτα ενημέρωσης οδηγών.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;Σφάλμα DVD&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Αυτό είναι DVD δύο πλευρών. Έχετε κάνει εκκίνηση από την δεύτερη πλευρά.\n&quot;
++&quot;\n&quot;
++&quot;Γυρίστε το DVD και συνεχίστε.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Διακοπή λειτουργίας&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Θέλετε να σταματήσετε το σύστημα τώρα;&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Σκληρός Δίσκος&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Εγκατάσταση Σκληρού Δίσκου&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Συσκευή Δίσκου (Ελέγχει Όλους τους Δίσκους Αν είναι Κενοί)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Κατάλογος\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;Εγκατάσταση FTP&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Διακομιστής\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Κωδικός\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Χρήστης (Ανώνυμη Σύνδεση Αν είναι Κενό)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;Εγκατάσταση NFS&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Χρήστης (Χρήση του \&quot;guest\&quot; Αν είναι Κενό)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;Εγκατάσταση SMB (Windows Share)&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;Εγκατάσταση HTTP&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Οδηγός&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Περιοχή\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Άλλες Επιλογές&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Γλώσσα&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Εγκατάσταση -- Ενεργοποιημένο το IOAPIC&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Εγκατάσταση--IOAPIC Απενεργοποιημένο&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Εγκατάσταση -- Το Τοπικό APIC είναι Απενεργοποιημένο&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Ναι&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Όχι&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Αρχείο&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Κοινόχρηστο\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Αυτόματη Κατάσταση&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Χειροκίνητη Κατάσταση&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Ρύθμιση Παραμέτρων στην Κατάτμηση ΖΕΝ&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Εγκατάσταση ή Ενημέρωση της Κατάτμησης ΖΕΝ&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Επανεγκατάσταση του Διαχειριστή Εκκίνησης για την Κατάτμηση ΖΕΝ&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Απενεργοποίηση Κατάτμησης ΖΕΝ&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Ενεργοποίηση Κατάτμησης ΖΕΝ&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Κατάσταση Κειμένου&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Δοκιμή Firmware&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Για να φορτώσετε ενημερώσεις οδηγών κατευθείαν από το CD-ROM,\n&quot;
++&quot;πρέπει να εισάγετε εδώ τα ονόματα των αρχείων των οδηγών ενημέρωσης &quot;
++&quot;(χωρισμένα\n&quot;
++&quot;από κόμμα ','):\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Πηγή&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Ρύθμιση Οθόνης&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Ενημέρωση Οδηγού&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Τόξο&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Επιλογές πυρήνα&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Προκαθορισμένο&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Ασφαλείς Ρυθμίσεις&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Χωρίς ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Χωρίς Τοπικό ACPI&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Επισκευή Εγκατεστημένου Συστήματος&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Έλεγχος Μέσου Εγκατάστασης&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Πληκτρολόγιο&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Λήψη Ενημέρωσης του Οδηγού&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Εισάγετε το URL Ενημερωσης του Οδηγού\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Λάθος αρχιτεκτονική&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;Έχετε έναν υπολογιστή 32-bit: Δεν μπορείτε να χρησιμοποιήσετε λογισμικό 64-&quot;
++&quot;bit σε αυτόν.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Προσοχή&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;Πρόκειται να εγκαταστήσετε λογισμικό 32-bit σε υπολογιστή 64-bit.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;Εισάγετε το CD-ROM αναβάθμισης\n&quot;
++&quot;των οδηγών για « %s ».&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Παρακαλώ εισάγετε ξανά το CD-ROM Mandriva στον οδηγό.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;Επαναφορά αντιγράφων ασφαλείας draksnapshot&quot;
++
++# dialog title for smb installation
++# msgid &quot;SMB (Windows Share) Installation&quot;
++# msgstr &quot;Εγκατάσταση SMB (Windows Share)&quot;
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Εκκίνηση Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Εγκατάσταση Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;Linux--Ασφαλείς Ρυθμίσεις&quot;
++
++#~ msgid &quot;Kernel&quot;
++#~ msgstr &quot;Πυρήνας&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpoeopo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/eo.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/eo.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/eo.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,537 @@
++# translation of bootloader.po to Esperanto
++# LANGUAGE translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++# Vilhelmo Lutermano &lt;vlutermano@free.fr&gt;, 2007.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader\n&quot;
++&quot;POT-Creation-Date: 2005-07-27 11:49+0200\n&quot;
++&quot;PO-Revision-Date: 2007-12-29 05:04+0100\n&quot;
++&quot;Last-Translator: Vilhelmo Lutermano &lt;vlutermano@free.fr&gt;\n&quot;
++&quot;Language-Team: Esperanto &lt;eo@li.org&gt;\n&quot;
++&quot;Language: eo\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++
++# ok button label
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;JES&quot;
++
++# cancel button label
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Rezigni&quot;
++
++# reboot button label
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Restarti&quot;
++
++# continue button label
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Daŭrigi&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Starto Mikrosofta Vindozo&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linukso kun kerno %s&quot;
++
++# dialog title for ftp installation
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;FTP-instalado&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Permana instalo&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Instalado--ACPI Malŝaltita&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Instalado--Sekuraj Agordoj&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Starto de Mandriva Linux 2010 Spring (sekura moduso)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Starto de Fiskdisko&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Ripari Sistemon&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Memoro-testo&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Start-opcioj&quot;
++
++# window title for exit dialog
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Elirante...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Vi forlasas la grafikan startmenuon kaj\n&quot;
++&quot;startigas la interfacon de teksta moduso&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Helpo&quot;
++
++# window title for kernel loading (see txt_load_kernel)
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Startanta...&quot;
++
++# Keep the three newlines!
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Ŝarĝanta la Linukso-kernon\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++# Keep the three newlines!
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Ŝarĝanta memortest86\n&quot;
++&quot;\n&quot;
++
++# info box title
++#. info box title
++#. txt_info_title
++#, fuzzy
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Startŝarĝilo&quot;
++
++# error box title
++#. error box title
++#. txt_error_title
++#, fuzzy
++msgid &quot;I/O Error&quot;
++msgstr &quot;enelig-eraro&quot;
++
++# boot disk change dialog title
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Ŝanĝu la Start-Diskon&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Enigu la startdiskon %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Tio ĉi estas la startdisko %u.\n&quot;
++&quot;Enigu la startdiskon %u.&quot;
++
++# &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, fuzzy, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Tiu ne estas &lt;product&gt;-startdisko.\n&quot;
++&quot;Bonvole enigu la startdiskon %u.&quot;
++
++# password dialog title
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Pasvorto&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Tenu vian ĝisdatigan pelilo-disketon preta.&quot;
++
++# dvd warning title
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD Eraro&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Tiu estas duflanka DVD. Vi startigis el la dua flanko.\n&quot;
++&quot;\n&quot;
++&quot;Ŝanĝu la flankon de la DVD kaj daŭrigu.&quot;
++
++# power off dialog title
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Kurento Elŝaltita&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Ĉu haltigi la sistemon nun?&quot;
++
++# menu entry for hard disk installation
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Fiksdisko&quot;
++
++# dialog title for hard disk installation
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Fiksdiska instalado&quot;
++
++#. txt_hd_diskdevice
++#, fuzzy
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Disko-aparato (skani ĉiujn diskojn ĉu malplenaj)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Dosierujo\n&quot;
++
++# dialog title for ftp installation
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP-instalado&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Servilo\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Pasvorto\n&quot;
++
++# label for ftp user input
++#. label for ftp user input
++#. txt_user1
++#, fuzzy
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Uzulo (anonima ensaluto se malplena)\n&quot;
++
++# dialog title for nfs installation
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS-instalado&quot;
++
++# label for smb user input
++#. label for smb user input
++#. txt_user2
++#, fuzzy
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Uzulo (uzante \&quot;guest\&quot; se malplena)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++#, fuzzy
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;Permana instalo&quot;
++
++# dialog title for http installation
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP-instalado&quot;
++
++# 'driver' as in '(hardware) driver update'
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Pelilo&quot;
++
++# as in Windows Authentication Domain
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Domajno\n&quot;
++
++# button label for other/more options
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Aliaj opcioj&quot;
++
++# label for language selection
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Lingvo&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Instalado--IOAPIC enŝaltita&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Instalado--IOAPIC elŝaltita&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Instalado--Loka APIC Elŝaltita&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Jes&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Ne&quot;
++
++# menu item for selecting a file
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Dosiero&quot;
++
++# input label: share as in &quot;Windows share&quot; (SMB)
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Kundividi\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;&quot;
++
++# 'driver' as in '(hardware) driver update'
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++#, fuzzy
++msgid &quot;Driver Update&quot;
++msgstr &quot;Pelilo&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Kerno-opcio&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++#, fuzzy
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Instalado--Sekuraj Agordoj&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++#, fuzzy
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Ripari Sistemon&quot;
++
++# dialog title for ftp installation
++#. menu item
++#. txt_mediacheck
++#, fuzzy
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;FTP-instalado&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Starto Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Instali Mandriva Linux 2010 Spring en via sistemo&quot;
++
++# Keep the newlines and spaces after ':'!
++#~ msgid &quot;&quot;
++#~ &quot;Enter your password: \n&quot;
++#~ &quot;\n&quot;
++#~ &quot;\n&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Enigu vian pasvorton: \n&quot;
++#~ &quot;\n&quot;
++#~ &quot;\n&quot;
++
++# dialog title for ISO installation
++#~ msgid &quot;Installation from ISO file&quot;
++#~ msgstr &quot;Instalado el ISO-dosiero&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpoespo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/es.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/es.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/es.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,503 @@
++# translation of es.po to
++# translation of bootloader.po to
++# LANGUAGE translations for boot loader
++# Copyright (C) 2004 SUSE LINUX AG
++# , 2004
++# Ines Pozo &lt;Ines.Pozo@novell.com&gt;, 2005.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader.es\n&quot;
++&quot;POT-Creation-Date: \n&quot;
++&quot;PO-Revision-Date: 2010-03-23 12:40-0300\n&quot;
++&quot;Last-Translator: Diego Bello &lt;dbello@gmail.com&gt;\n&quot;
++&quot;Language-Team: Spanish &lt;opensuse-translation-es@opensuse.org&gt;\n&quot;
++&quot;Language: es\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++&quot;X-Poedit-Language: Spanish\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;Aceptar&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Cancelar&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Reiniciar&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Continuar&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Arrancar Microsoft Windows&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Herramienta de Detección de Hardware&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux con kernel %s&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Instalación&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Instalación manual&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Instalación -- ACPI inhabilitado&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Instalación -- Ajustes seguros&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Arrancar Mandriva Linux 2010 Spring (modo seguro)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Arrancar desde el disco duro&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Sistema de rescate&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Prueba de memoria&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Opciones de arranque&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Saliendo...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Está saliendo del menú gráfico de arranque e\n&quot;
++&quot;iniciando la interfaz en modo texto.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Ayuda&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Iniciando...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Cargando el kernel Linux\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Cargando memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Cargador de arranque&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;Errores de E/S&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Cambiar disquete de arranque&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Inserte el disco de arranque %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Este es el disco de arranque %u.\n&quot;
++&quot;Inserte el disco de arranque %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Este no es un disco de arranque de &lt;product&gt;.\n&quot;
++&quot;Introduzca el disco de arranque %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Contraseña&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Tenga listo el disco de actualización del controlador.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;Error de DVD&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Este DVD es de doble cara. Ha arrancado desde la segunda cara.\n&quot;
++&quot;\n&quot;
++&quot;Dé la vuelta al DVD y continúe.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Apagar&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;¿Desea apagar el sistema ahora?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Disco duro&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Instalación disco duro&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Dispositivo de disco (analiza todos los discos si se deja vacío)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Directorio\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;Instalación FTP&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Servidor\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Contraseña\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Usuario (dejar vacío para anónimo)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;Instalación NFS&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Usuario (se utiliza \&quot;guest\&quot; si se deja vacío)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;Instalación SMB (recurso compartido Windows)&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;Instalación HTTP&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Controlador&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Dominio\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Otras opciones&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Idioma&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Instalación -- IOAPIC habilitado&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Instalación -- IOAPIC inhabilitado&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Instalación -- APIC local inhabilitado&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Sí&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;No&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Archivo&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Compartir\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Modo automático&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Modo manual&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Configurar parámetros en la partición ZEN&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Instalar o actualizar la partición ZEN&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Volver a instalar el cargador de arranque de partición ZEN&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Inhabilitar partición ZEN&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Habilitar partición ZEN&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Modo de texto&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Prueba de firmware&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Para cargar las actualizaciones de controlador directamente desde el CD-&quot;
++&quot;ROM,\n&quot;
++&quot;indique los nombres de archivo de las actualizaciones del controlador &quot;
++&quot;(separados\n&quot;
++&quot;por comas \&quot;,\&quot;) aquí:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Origen&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Modo de vídeo&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Actualización de controlador&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Arquitectura&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Opciones para el kernel&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Predeterminado&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Ajustes seguros&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Sin ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Sin APIC local&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Reparar el sistema instalado&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Verificar el medio de instalación&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Teclado&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Descargar Actualización de Controlador&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Ingrese Dirección URL de Actualización de Controlador\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Arquitectura errónea&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;Éste es un computador de 32 bits. No puede instalar aplicaciones de 64 bits &quot;
++&quot;en él.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Advertencia&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;Va a instalar aplicaciones de 32 bits en un computador de 64 bits.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;Inserte el CD-ROM de actualización de controlador para\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Ponga el CD-ROM de Mandriva Linux de vuelta en el lector.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;Restablecer respaldo de draksnapshot&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Arrancar Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Instalar Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;Linux -- Ajustes seguros&quot;
++
++#~ msgid &quot;Kernel&quot;
++#~ msgstr &quot;Kernel&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpoetpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/et.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/et.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/et.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,498 @@
++# Estonian translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++# Ain Vagula &lt;avagula@gmail.com&gt;, 2007
++# Marek Laane &lt;bald@smail.ee&gt;, 2008-2009
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader.et\n&quot;
++&quot;POT-Creation-Date: 2003-03-04 15:08+0100\n&quot;
++&quot;PO-Revision-Date: 2009-12-03 12:27+0300\n&quot;
++&quot;Last-Translator: Marek Laane &lt;bald@smail.ee&gt;\n&quot;
++&quot;Language-Team: Estonian &lt;linux-ee@lists.eenet.ee&gt;\n&quot;
++&quot;Language: et\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;Olgu&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Loobu&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Taaskäivita&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Jätka&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Microsoft Windowsi laadimine&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Riistvara tuvastamise tööriist&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux kerneliga %s&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Paigaldamine&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Käsitsi paigaldamine&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Paigaldamine--ACPI keelatud&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Paigaldamine--ohutud sätted&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Mandriva Linux 2010 Springi laadimine (safe mode)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Alglaadimine kõvakettalt&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Päästesüsteem&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Mälu testimine&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Alglaadimise sätted&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Väljumine...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Graafiline alglaadimismenüü suletakse\n&quot;
++&quot;ja käivitatakse tekstirežiimi liides.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Abi&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Alustamine...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Linuxi kerneli laadimine\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;memtest86 laadimine\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Alglaadija&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;I/O viga&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Alglaadimisketta vahetamine&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Sisestage alglaadimisketas %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;See on alglaadimisketas %u.\n&quot;
++&quot;Sisestage alglaadimisketas %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;See ei ole &lt;product&gt; alglaadimisketas.\n&quot;
++&quot;Sisestage alglaadimisketas %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Parool&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Hoidke oma draiverite uuendamise diskett käepärast.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD viga&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;See on kahepoolne DVD. Te tegite alglaadimise teiselt poolelt.\n&quot;
++&quot;\n&quot;
++&quot;Jätkamiseks pöörake DVD ümber.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Väljalülitamine&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Kas lülitada süsteem välja?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Kõvaketas&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Paigaldamine kõvakettalt&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Kettaseade (puudumise korral skaneeritakse kõiki kettaid)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Kataloog\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP-paigaldus&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Server\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Parool\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Kasutajanimi (anonüümse sisselogimise korral jätke tühjaks)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS-paigaldus&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Kasutajanimi (kui väli on tühi, kasutatakse \&quot;guest\&quot;-i)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB (Windowsi jagatud ressurss) paigaldus&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP-paigaldus&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Draiver&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Domeen\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Muud sätted&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Keel&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Paigaldamine--IOAPIC lubatud&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Paigaldamine--IOAPIC keelatud&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Paigaldamine--lokaalne APIC keelatud&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Jah&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Ei&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Fail&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Ressurss\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Automaatrežiim&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Käsitsirežiim&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;ZEN-partitsiooni parameetrite häälestamine&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;ZEN-partitsiooni paigaldamine või uuendamine&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;ZEN-partitsiooni alglaadija taaspaigaldamine&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;ZEN-partitsiooni keelamine&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;ZEN-partitsiooni lubamine&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Tekstirežiim&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Püsivara test&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Draiveri uuenduste laadimiseks CD-ROM-ilt\n&quot;
++&quot;sisestage siia draiveri uuenduste failide nimed\n&quot;
++&quot;(eraldatud komadega ','):\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Allikas&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Videorežiim&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Draiverite uuendamine&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Arh.&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Kerneli võtmed&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Vaikimisi&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Ohutud sätted&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Ilma ACPI-ta&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Ilma kohaliku APIC-ta&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Paigaldatud süsteemi parandamine&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Paigaldusandmekandja kontrollimine&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Klaviatuur&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Draiveri uuenduse allalaadimine&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Sisestage draiveri uuenduse URL\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Vale arhitektuur&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;See on 32-bitine arvuti. Sellel ei saa kasutada 64-bitist tarkvara ega seda &quot;
++&quot;ka paigaldada.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Hoiatus&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;Kavatsete paigaldada 32-bitist tarkvara 64-bitisesse arvutisse.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;Sisestage draiverite uuendamise CD\n&quot;
++&quot;\&quot;%s\&quot; jaoks.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Asetage Mandriva Linuxi CD taas seadmesse.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;Taastamine draksnapshoti varukoopiast&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Mandriva Linux 2010 Springi laadimine&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Mandriva Linux 2010 Springi paigaldamine masinasse&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;Linux--ohutud sätted&quot;
++
++#~ msgid &quot;Kernel&quot;
++#~ msgstr &quot;Kernel&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpoeupo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/eu.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/eu.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/eu.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,536 @@
++# translation of bootloder.po to Euskara
++# LANGUAGE translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++# Iñigo Salvador Azurmendi &lt;xalba@euskalnet.net&gt;, 2007, 2008, 2009.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloder\n&quot;
++&quot;POT-Creation-Date: 2005-07-27 11:49+0200\n&quot;
++&quot;PO-Revision-Date: 2009-12-14 21:51+0100\n&quot;
++&quot;Last-Translator: Iñigo Salvador Azurmendi &lt;xalba@euskalnet.net&gt;\n&quot;
++&quot;Language-Team: Basque &lt;kde-i18n-doc@kde.org&gt;\n&quot;
++&quot;Language: eu\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: Lokalize 1.0\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=n != 1;\n&quot;
++
++# ok button label
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;Ados&quot;
++
++# cancel button label
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Galarazi&quot;
++
++# reboot button label
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Berrabiatu&quot;
++
++# continue button label
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Jarraitu&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Abiatu Microsoft windows&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Hardwarea detektatzeko tresna&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux %s kernelarekin&quot;
++
++# dialog title for ftp installation
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Instalaketa euskarria egiaztatu&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Eskuz egindako instalaketa&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Instalaketa -- ACPI ezgaituta&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Instalaketa -- Ezarpen seguruak&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Abiatu Mandriva Linux 2010 Spring (modu segurua)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Abiatu disko zurrunetik&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Berreskuratzeko sistema&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Memoria proba&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Abio aukerak&quot;
++
++# window title for exit dialog
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Irtetzen...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Abiapen menu grafikoa utzi eta testu moduko\n&quot;
++&quot;interfazean hasten ari zara.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Laguntza&quot;
++
++# window title for kernel loading (see txt_load_kernel)
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Hasten...&quot;
++
++# Keep the three newlines!
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Linux kernela zamatzen\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++# Keep the three newlines!
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;memtest86 zamatzen\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++# info box title
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Abio zamatzailea&quot;
++
++# error box title
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;S/I akatsa&quot;
++
++# boot disk change dialog title
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Aldatu abiapen diskoa&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Sartu %u abiapen diskoa.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Hau %u abiapen diskoa da.\n&quot;
++&quot;Sartu %u abiapen diskoa.&quot;
++
++# &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Hau ez da &lt;product&gt; abiapen disko bat.\n&quot;
++&quot;Mesedez sartu %u abiapen diskoa.&quot;
++
++# password dialog title
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Pasahitza&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Prestatu gidaria eguneratzeko disketea.&quot;
++
++# dvd warning title
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD akatsa&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Hau bi aldeak erabiltzen dituen DVD-a da. Bigarren aldetik abiatu duzu.\n&quot;
++&quot;\n&quot;
++&quot;Buelta eman DVD-ari eta jarraitu.&quot;
++
++# power off dialog title
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Itzaldu&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Sistema gelditu nahi duzu?&quot;
++
++# menu entry for hard disk installation
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Disko zurruna&quot;
++
++# dialog title for hard disk installation
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Disko zurrun instalaketa&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Disko gailua (aztertu disko guztiak hutsik dauden)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Direktorioa\n&quot;
++
++# dialog title for ftp installation
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP instalaketa&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Zerbitzaria\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Pasahitza\n&quot;
++
++# label for ftp user input
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Erabiltzailea (hutsik badago saio sarrera anonimoa)\n&quot;
++
++# dialog title for nfs installation
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS instalaketa&quot;
++
++# label for smb user input
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Erabiltzailea (\&quot;guest\&quot; erabiliko da hutsik badago)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB (Windows partekatzea) instalaketa&quot;
++
++# dialog title for http installation
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP instalaketa&quot;
++
++# 'driver' as in '(hardware) driver update'
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Gidaria&quot;
++
++# as in Windows Authentication Domain
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Domeinua\n&quot;
++
++# button label for other/more options
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Beste aukera batzuk&quot;
++
++# label for language selection
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Hizkuntza&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Instalaketa -- IOAPIC gaituta&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Instalaketa -- IOAPIC ezgaituta&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Instalaketa -- Bertako APIC ezgaituta&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Bai&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Ez&quot;
++
++# menu item for selecting a file
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Fitxategia&quot;
++
++# input label: share as in &quot;Windows share&quot; (SMB)
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Banatu\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Modu automatikoa&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Eskuzko modua&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;ZEN partizioan parametroak konfiguratu&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;ZEN partizioa instalatu edo eguneratu&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Berrinstalatu ZEN partizioaren abio zamatzailea&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;ZEN partizioa ezgaitu&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;ZEN partizioa gaitu&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Testu modua&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Firmware proba&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Gidari eguneraketak CD-ROMetik zuzenean zamatzeko,\n&quot;
++&quot;sartu gidari eguneratzeko fitxategi izenak (komaz ','\n&quot;
++&quot;banatuta) hemen:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Iturburua&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Bideo modua&quot;
++
++# 'driver' as in '(hardware) driver update'
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Gidari eguneraketa&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Arkitektura&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Kernelaren aukerak&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Lehenetsia&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Ezarpen seguruak&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;ACPI ez&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Bertako APIC ez&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Instalatutako sistema konpondu&quot;
++
++# dialog title for ftp installation
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Instalaketa euskarria egiaztatu&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Teklatua&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Jaitsi gidari eguneraketa&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Sartu gidari eguneratzeko URL\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Arkitektura okerra&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;Hau 32-biteko konputagailua da. Bertan ezin duzu 64-biteko softwarea erabili.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Abisua&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;32-biteko softwarea 64-biteko konputagailuan instalatu behar duzu.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;Sartu gidari eguneratzeko CD-ROMa\n&quot;
++&quot;\&quot;%s\&quot;-rentzako.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Ipini Mandriva Linux CD-ROMa atzera unitatean.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;Leheneratu draksnapshot babeskopia&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Abiatu Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Instalatu Mandriva Linux 2010 Spring&quot;
++
++# Keep the newlines and spaces after ':'!
++#~ msgid &quot;&quot;
++#~ &quot;Enter your password: \n&quot;
++#~ &quot;\n&quot;
++#~ &quot;\n&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Sartu zure pasahitza: \n&quot;
++#~ &quot;\n&quot;
++#~ &quot;\n&quot;
++
++# dialog title for ISO installation
++#~ msgid &quot;Installation from ISO file&quot;
++#~ msgstr &quot;Instalaketa ISO fitxategitik&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpofipo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/fi.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/fi.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/fi.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,498 @@
++# Finnish translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++# Jyri Palokangas &lt;jmp@netti.fi&gt;, 2005, 2006.
++# Jami Saarikoski &lt;jami.saarikoski@gmail.com&gt;, 2006.
++# Anssi Hannula &lt;anssi@mandriva.org&gt;, 2009.
++# Jani Välimaa &lt;wally@mandriva.org&gt;, 2009.
++# Thomas Backlund &lt;tmb@mandriva.org&gt;, 2009.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader.fi\n&quot;
++&quot;PO-Revision-Date: 2009-11-30 19:48+0200\n&quot;
++&quot;Last-Translator: Jani Välimaa &lt;wally@mandriva.org&gt;\n&quot;
++&quot;Language-Team: Finnish &lt;cooker-i18n@mandrivalinux.org&gt;\n&quot;
++&quot;Language: fi\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: Lokalize 1.0\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=n != 1;\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;OK&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Peruuta&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Käynnistä uudelleen&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Jatka&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Käynnistä Microsoft Windows&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Laitteiston tunnistustyökalu&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux %s-ytimellä&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Asennus&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Manuaalinen asennus&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Asennus--ACPI pois käytöstä&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Asennus--Turvalliset asetukset&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Käynnista Mandriva Linux 2010 Spring (vikatila)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Käynnistä kiintolevyltä&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Korjausjärjestelmä&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Muistitesti&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Käynnistysvalinnat&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Poistutaan...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Olet poistumassa graafisesta käynnistysvalikosta ja\n&quot;
++&quot;käynnistämässä tekstipohjaisen liittymän.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Ohje&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Käynnistetään...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Ladataan Linux-ydintä\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Ladataan memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Käynnistyslatain&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;I/O-virhe&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Vaihda käynnistyslevyä&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Anna käynnistyslevyke %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Tämä on käynnistyslevyke %u.\n&quot;
++&quot;Anna käynnistyslevyke %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Tämä ei ole &lt;product&gt; käynnistyslevyke.\n&quot;
++&quot;Anna käynnistyslevyke %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Salasana&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Ota ajurin päivityslevyke esille.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD-virhe&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Tämä on kaksipuoleinen DVD. Olet käynnistänyt kakkospuolelta.\n&quot;
++&quot;\n&quot;
++&quot;Käännä DVD toisinpäin ja jatka.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Katkaise virta&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Sammutetaanko järjestelmä?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Kiintolevy&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Kiintolevyasennus&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Kiintolevy (jos tyhjä, tarkistetaan kaikki levyt)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Hakemisto\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP-asennus&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Palvelin\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Salasana\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Käyttäjä (anonyymi kirjautuminen, jos tyhjä)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS-asennus&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Käyttäjä (tunnuksella \&quot;guest\&quot;, jos tyhjä)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB-asennus (Windows-jako) &quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP-asennus&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Ajuri&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Toimialue\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Muut valinnat&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Kieli&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Asennus--IOAPIC käytössä&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Asennus--IOAPIC pois käytöstä&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Asennus--Paikallinen APIC pois käytöstä&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Kyllä&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Ei&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Tiedosto&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Jako\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Automaattinen tila&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Manuaalinen tila&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Määritä ZEN-osion parametrit&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Asenna tai päivitä ZEN-osio&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Asenna ZEN-osion käynnistyslatain uudelleen&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Poista ZEN-osio käytöstä&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Ota ZEN-osio käyttöön&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Tekstitila&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Laiteohjelmistotesti&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Jos haluat ladata ajuripäivityksen suoraan CD-levyltä,\n&quot;
++&quot;anna päivitystiedostojen nimet pilkuilla eroteltuina:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Lähde&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Videotila&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Ohjainpäivitys&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Arkkitehtuuri&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Ytimen valitsimet&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Oletus&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Turvalliset asetukset&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Ei ACPI:a&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Ei paikallista APIC:a&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Korjaa asennettu järjestelmä&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Tarkista asennusmedia&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Näppäimistö&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Lataa ajuripäivitys&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Anna ajuripäivityksen URL\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Väärä arkkitehtuuri&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;Tämä on 32-bittinen tietokone. Et voi käyttää 64-bittisiä ohjelmistoja.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Huomautus&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;Olet asentamassa 32-bittistä ohjelmistoa 64-bittiseen järjestelmään.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;Aseta asemaan ohjainpäivitys-CD laitteelle\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Aseta Mandriva Linux -levy takaisin asemaan.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;Palauta draksnapshot-varmuuskopio&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Käynnistä Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Asenna Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;Linux--Turvalliset asetukset&quot;
++
++#~ msgid &quot;Kernel&quot;
++#~ msgstr &quot;Ydin&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpofrpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/fr.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/fr.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/fr.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,502 @@
++# translation of fr.po to
++# translation of fr.po to français
++# translation of bootloader.fr.po to Français
++# translation of bootloader.po to Français
++# LANGUAGE translations for boot loader
++# Copyright (C) 2004 SUSE LINUX AG
++#
++# Patricia Vaz &lt;Patricia.Vaz@suse.de&gt;, 2004.
++# Patricia Vaz &lt;patricia.vaz@suse.com&gt;, 2004.
++# Patricia Vaz &lt;patricia@suse.de&gt;, 2005.
++# Christophe Berthelé &lt;cpjc@free.fr&gt;, 2009.
++# Christophe Berthelé &lt;berthy@mandriva.org&gt;, 2009.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: fr\n&quot;
++&quot;POT-Creation-Date: \n&quot;
++&quot;PO-Revision-Date: 2010-02-17 12:30+0100\n&quot;
++&quot;Last-Translator: Christophe Berthelé &lt;cpjc@free.fr&gt;\n&quot;
++&quot;Language-Team: French &lt;cooker-i18n@mandrivalinux.org&gt;\n&quot;
++&quot;Language: fr\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++&quot;Plural-Forms: nplurals=2;plural=(n&gt;1);\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;OK&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Annuler&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Réamorcer&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Continuer&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Amorcer Microsoft Windows&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Outil de détection du matériel&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux avec le noyau %s&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Vérifier le média d'installation&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Installation manuelle&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Installation - ACPI désactivé&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Installation - Paramètres sécurisés&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Amorcer Mandriva Linux 2010 Spring (mode dégradé)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Amorcer depuis le disque dur&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Système de secours&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Test de mémoire&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Options d'amorçage&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Sortie...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Vous quittez le menu d'amorçage graphique et\n&quot;
++&quot;démarrez l'interface en mode texte.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Aide&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Démarrage...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Chargement du noyau Linux\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Chargement de memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Chargeur d'amorçage&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;Erreur E/S&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Changer le disque d'amorçage&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Insérer le disque d'amorçage %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Il s'agit du disque d'amorçage %u.\n&quot;
++&quot;Insérer le disque d'amorçage %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Il ne s'agit pas d'un disque d'amorçage pour &lt;product&gt;.\n&quot;
++&quot;Insérez le disque d'amorçage %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Mot de passe&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Ayez à disposition la disquette de mise à jour des pilotes.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;Erreur DVD&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Il s'agit d'un DVD double face. Vous avez effectué l'amorçage à partir de la &quot;
++&quot;seconde face.\n&quot;
++&quot;\n&quot;
++&quot;Retournez le DVD, puis continuez.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Arrêt&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Arrêter le système maintenant ?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Disque dur&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Installation sur disque dur&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Périphérique disque (recherche sur tous les disques si vide)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Répertoire\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;Installation FTP&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Serveur\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Mot de passe\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Utilisateur (connexion anonyme si vide)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;Installation NFS&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Utilisateur (utilisation de « guest » si vide)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;Installation SMB (partage Windows)&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;Installation HTTP&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Pilote&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Domaine\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Autres options&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Langue&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Installation - IOAPIC activé&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Installation - IOAPIC désactivé&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Installation - APIC local désactivé&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Oui&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Non&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Fichier&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Partage\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Mode automatique&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Mode manuel&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Configurer les paramètres sur la partition ZEN&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Installer ou mettre à jour la partition ZEN&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Réinstaller le chargeur d'amorçage de la partition ZEN&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Désactiver la partition ZEN&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Activer la partition ZEN&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Mode texte&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Test de microcode&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Pour charger les mises à jour de pilotes directement\n&quot;
++&quot;depuis un CD-ROM, entrez les noms de fichier séparés\n&quot;
++&quot;par des virgules (,) :\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Source&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Mode vidéo&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Mise à jour de pilote&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Arch&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Option noyau&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Par défaut&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Paramètres sécurisés&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Pas d'ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Pas d'APIC local&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Réparer le système installé&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Vérifier le média d'installation&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Clavier&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Télécharger la mise à jour du pilote&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Entrez l'URL de la mise à jour du pilote\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Architecture incorrecte&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;Cet ordinateur 32-bit ne permet pas d'exécuter ou d'installer des &quot;
++&quot;applications 64-bit.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Attention&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++&quot;Vous êtes sur le point d'installer des applications 32-bit sur cet &quot;
++&quot;ordinateur 64-bit.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;Insérez le CD-ROM de mise à jour des pilotes pour\n&quot;
++&quot;« %s ».&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Veuillez remettre le CD-ROM Mandriva dans le lecteur.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;Restaurer la sauvegarde draksnapshot&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Amorcer Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Installer Mandriva Linux 2010 Spring&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpoglpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/gl.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/gl.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/gl.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,499 @@
++# LANGUAGE translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++# Alejo Pacín Jul &lt;alejopj@gmail.com&gt;, 2009.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: YaST (@memory@)\n&quot;
++&quot;Report-Msgid-Bugs-To: translation@suse.de\n&quot;
++&quot;POT-Creation-Date: 2006-05-15 15:07+0200\n&quot;
++&quot;PO-Revision-Date: 2009-09-24 18:49+0200\n&quot;
++&quot;Last-Translator: Alejo Pacín Jul &lt;alejopj@gmail.com&gt;\n&quot;
++&quot;Language-Team: Galician &lt;cooker-i18n@mandrivalinux.org&gt;\n&quot;
++&quot;Language: gl\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n!=1);\n&quot;
++&quot;X-Generator: Lokalize 0.3\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;Aceptar&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Cancelar&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Rearrincar&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Continuar&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Arrincar Microsoft Windows&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Ferramenta de Detección de Hardware&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux con kernel %s&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Instalación&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Instalación Manual&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Instalación--ACPI Deshabilitado&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Instalación--Opcións seguras&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Arrincar Mandriva Linux 2010 Spring (modo seguro)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Arrincar dende o Disco Duro&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Recuperar o Sistema&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Proba de Memoria&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Opcións de Arrinque&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Saíndo...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Está saíndo do menú de arrinque gráfico e\n&quot;
++&quot;está iniciando a interface en modo texto.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Axuda&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Iniciando...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Cargando o Kernel Linux\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Cargando o memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Cargador de Arrinque&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;Erro de E/S&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Cambiar o Disco de Arrinque&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Insira o disco de arrinque %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Este é o disco de arrinque %u.\n&quot;
++&quot;Insira o disco de arrinque %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Este non é un disco de arrinque de &lt;product&gt;.\n&quot;
++&quot;Insira o disco de arrinque %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Contrasinal&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Teña preparado o seu disquete de actualización do driver.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;Erro de DVD&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Este é un DVD de dúas caras. Arrincou dende a segunda cara.\n&quot;
++&quot;\n&quot;
++&quot;Déalle a volta ó DVD e continúe.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Apagar&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Apagar o sistema agora?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Disco Duro&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Instalación no Disco Duro&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Dispositivo de Disco (examina tódolos discos se está baleiro)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Directorio\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;Instalación mediante FTP&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Servidor\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Contrasinal\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Usuario (hase empregar identificación anónima se está baleiro)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;Instalación mediante NFS&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Usuario (hase empregar \&quot;guest\&quot; se está baleiro)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;Instalación mediante SMB (Recursos de Windows)&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;Instalación mediante HTTP&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Controlador&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Dominio\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Outras Opcións&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Lingua&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Instalación--IOAPIC Habilitado&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Instalación--IOAPIC Deshabilitado&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Instalación--APIC Local Deshabilitado&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Si&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Non&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Ficheiro&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Recurso\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Modo Automático&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Modo Manual&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Configurar os Parámetros da Partición ZEN&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Instalar ou Actualizar a Partición ZEN&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Reinstalar o Cargador de Arrinque da Partición ZEN&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Deshabilitar a Partición ZEN&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Habilitar a Partición ZEN&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Modo Texto&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Proba do Firmware&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Para cargar as actualizacións de controladores directamente dende o CD-ROM,\n&quot;
++&quot;introduza os nomes de ficheiro de actualización de controladores &quot;
++&quot;(separados\n&quot;
++&quot;por comas ',') aquí:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Fonte&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Modo de Vídeo&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Actualización de Controladores&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Arq&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Opción de Kernel&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Predeterminado&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Opcións Seguras&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Sen ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Sen APIC Local&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Reparar o Sistema Instalado&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Comprobar o Soporte de Instalación&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Teclado&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Descargar Actualización do Controlador&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Introduza a URL de actualización do controlador\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Arquitectura incorrecta&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++#, fuzzy
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;Isto é un ordenador de 32-bit. Non pode empregar software de 64-bit nel.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Ollo&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;Está a piques de instalar software de 32-bt nun ordenador de 64-bit.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;Insira o CD-ROM de actualización de controladores para\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Volva colocar o CD-ROM de Mandriva Linux na unidade.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;Restaurar a copia de seguridade de draksnapshot&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Arrincar Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Instalar Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;Linux--Opcións Seguras&quot;
++
++#~ msgid &quot;Kernel&quot;
++#~ msgstr &quot;Kernel&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpogupo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/gu.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/gu.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/gu.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,482 @@
++# LANGUAGE translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: YaST (@memory@)\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2005-07-27 16:23+0200\n&quot;
++&quot;PO-Revision-Date: 2004-08-09 10:24+0200\n&quot;
++&quot;Last-Translator: Priyavert Sharma &lt;priyavert.sharma@agreeya.com&gt;\n&quot;
++&quot;Language-Team: AgreeYa Solutions &lt;linux_team@agreeya.com&gt;\n&quot;
++&quot;Language: \n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=n != 1;\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;બરાબર&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;રદ કરો &quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;ફરીથી બૂટ કરો&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;ચાલુ રાખો&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;સ્થાપન&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot; મેન્યુઅલ સ્થાપન &quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;સ્થાપન -- ACPI અક્ષમ&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;સ્થાપન -- સુરક્ષિત સેટિંગ્સ&quot;
++
++#. txt_safe_linux
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;હાર્ડ ડિસ્કમાંથી બૂટ કરો&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;બચાવ સિસ્ટમ&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;મેમરી પરિક્ષણ&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;બૂટ વિકલ્પો&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;બહાર નીકળી રહ્યા છો...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;તમે ગ્રાફિકલ બૂટ મેનુથી બહાર જઇ રહ્યા છો અને\n&quot;
++&quot;ટેક્ષ્ટ ઢબ ઇન્ટરફેસ શરૂ થઇ રહ્યું છે.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;મદદ&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;શરૂ થઇ રહ્યું છે...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot; લિનક્ષ કર્નલ લોડ થઇ રહ્યું છે \n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot; memtest86 લોડ થઇ રહ્યું છે \n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;બૂટ લોડર&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;I/O ભૂલ&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;બૂટ ડિસ્ક બદલો&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;%u બૂટ ડિસ્ક દાખલ કરો.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;આ %u બૂટ ડિસ્ક છે.\n&quot;
++&quot;%u બૂટ ડિસ્ક દાખલ કરો &quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;આ &lt; પ્રોડક્ટ &gt; બૂટ ડિસ્ક નથી.\n&quot;
++&quot;%u બૂટ ડિસ્ક દાખલ કરો.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;પાસવર્ડ&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;તમારી તૈયાર ડ્રાઇવર અદ્યતન ફ્લોપી મેળવો.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;ડીવીડી ભૂલ&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot; આ બે-બાજુ ડીવીડી છે. તમારે બીજી બાજુથી બૂટ કરવું જોઇશે.\n&quot;
++&quot;\n&quot;
++&quot; ડીવીડી બીજી બાજુ ફેરવો પછી ચાલુ રાખો.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;પાવર બંધ&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;અત્યારે સિસ્ટમ&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;હાર્ડ ડિસ્ક&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;હાર્ડ ડિસ્કનું સ્થાપન&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot; ડિસ્ક ઉપકરણ (જો ખાલી હોય તો બધી ડિસ્કસ સ્કેન કરો)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;ડિરેક્ટરી\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP સ્થાપન&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;સર્વર\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;પાસવર્ડ\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;વપરાશકર્તા (જો ખાલી હોય તો અનામી લોગીન કરો)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot; NFS સ્થાપન &quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot; વપરાશકર્તા (જો ખાલી હોય તો \&quot; મહેમાન \&quot; તરીકે ઉપયોગ કરો)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB (વિન્ડોઝ શેર) સ્થાપન&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot; HTTP સ્થાપન &quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;ડ્રાઇવર&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;ડોમેઇન\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;અન્ય વિકલ્પો&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;ભાષા&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;સ્થાપન -- IOAPIC સક્ષમ&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;સ્થાપન -- IOAPIC અક્ષમ&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;સ્થાપન -- સ્થાનિક IOAPIC અક્ષમ&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;હા&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;ના&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;ફાઈલ&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;શેર \n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;સ્વયંચાલિત ઢબ&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;મેન્યુઅલ ઢબ&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;ZEN પાર્ટિશન પર પારમિતિઓ કન્ફિગર કરો&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;ZEN પાર્ટિશન સ્થાપો અથવા અદ્યતન કરો&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;ZEN પાર્ટિશન બૂટ લોડર ફરીથી સ્થાપો&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;ZEN પાર્ટિશન અક્ષમ કરો&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;ZEN પાર્ટિશન સક્ષમ કરો&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;ટેક્ષ્ટ ઢબ&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;ફર્મવેર પરિક્ષણ&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;સીડી-રોમ પરથી સીધું ડ્રાઇવર અદ્યતનો લોડ કરવા,\n&quot;
++&quot; અહીં ડ્રાઇવર અદ્યતનોના ફાઇલ નામો (કોમા દ્વારા \n&quot;
++&quot;જુદા પાડેલા ',') દાખલ કરો:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;સોર્સ&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;ડ્રાયવર અપડેટ&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot; આર્ક &quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++#, fuzzy
++msgid &quot;Kernel Option&quot;
++msgstr &quot;અન્ય વિકલ્પો&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;પ્રાથમિક&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;કીબોર્ડ&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;લિનક્ષ -- સુરક્ષિત સેટિંગ્સ&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpohipo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/hi.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/hi.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/hi.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,482 @@
++# LANGUAGE translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: NetworkManager-vpnc\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2006-05-16 17:10+0200\n&quot;
++&quot;PO-Revision-Date: 2006-01-26 15:19+0100\n&quot;
++&quot;Last-Translator: Priyavert Sharma &lt;priyavert.sharma@agreeya.com&gt;\n&quot;
++&quot;Language-Team: AgreeYa Solutions &lt;www.agreeya.com&gt;\n&quot;
++&quot;Language: \n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n &gt; 1);\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;ओ.के.&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;रद्द&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;फिर से चालु करें&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;जारी रखें&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;अधिष्ठापन&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;मैनुअल अधिष्ठापन&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;अधिष्ठापन--ACPI असमर्थ&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;अधिष्ठापन--सुरक्षित सेटिंग्ज़&quot;
++
++#. txt_safe_linux
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;हार्ड डिस्क से बूट करें&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;रेस्क्यू सिस्टम&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;मेमोरी जांच&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;बूट विक्लप&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;बाहर आ रहा है...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;आप ग्राफिकल बूट विकल्प सूची छोड़ रहे है तथा\n&quot;
++&quot;टैक्सट मोड अंतरापृष्ठ आरंभ कर रहे हैं.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;सहायता&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;आरंभ हो रहा है...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;लाईनेक्स कर्नल लोड हो रहा है\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;मेमटेस्ट86 लोड हो रहा है\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;बूट लोडर&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;I/O त्रुटि&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;बूट डिस्क का परिवर्तन करें&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;बूट डिस्क %u प्रविष्ट करें.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;यह बूट डिस्क %u है.\n&quot;
++&quot;बूट डिस्क %u प्रविष्ट करें.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;यह &lt;प्रोडक्ट&gt; बूट डिस्क नहीं है.\n&quot;
++&quot;कृपया बूट डिस्क %u प्रविष्ट करें.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;कूट शब्द&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;अपनी ड्राइवर नवीनीकरण फ्लॉपी तैयार पाएं&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD त्रुटि&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;यह दो-तरफा DVD है. आपने दूसरी तरफ से बूट किया है.\n&quot;
++&quot;\n&quot;
++&quot;DVD को पलटे तब जारी रखें.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;बिजली बन्द करें&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;सिस्टम को अभी रोकें&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;हार्ड डिस्क&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;हार्ड डिस्क अधिष्ठापन&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;डिस्क उपकरण (यदि सभी डिस्कें खाली है तो स्कैन करें)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;निर्देशिका\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP अधिष्ठापन&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;सर्वर\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;कूट शब्द\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;प्रयोक्ता (यदि खाली है तो बेनाम लॉगइन करें)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS अधिष्ठापन&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;प्रयोक्ता (यदि खाली है तो \&quot;गेस्ट\&quot; का उपयोग करें)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB (विंडोज शेयर) अधिष्ठापन&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP अधिष्ठापन&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;ड्राइवर&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;डोमेन\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;अन्य विकल्प&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;भाषा&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;अधिष्ठापन--IOAPIC समर्थित&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;अधिष्ठापन--IOAPIC असमर्थित&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;अधिष्ठापन--स्थानीय APIC असमर्थित&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;हां&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;नहीं&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;फाइल&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;शेयर\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;स्वचालित मोड&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;मैनुअल मोड&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;ZEN पार्टिशन पर पैरामीटर्स को कनफिगर करें&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;ZEN पार्टिशन का अधिष्ठापन/अद्यतन &quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;ZEN पार्टिशन बूट लोडर का पुनः अधिष्ठापन करें&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;असमर्थ ZEN पार्टिशन&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;समर्थ ZEN पार्टिशन&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;पाठ्य मोड&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;फर्मवेयर परीक्षण&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;सीडी-रोम से सीधे ड्राइवर अद्यतनों को लोड करने के लिए,\n&quot;
++&quot;यहां पर ड्राइवर अद्यतन फाइल नामों को प्रविष्ट (अल्पविराम\n&quot;
++&quot;',' द्वारा पृथक) करें:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;स्रोत&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;आर्क&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++#, fuzzy
++msgid &quot;Kernel Option&quot;
++msgstr &quot;अन्य विकल्प&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;कीबोर्ड&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;लाईनेक्स--सुरक्षित सेटिंग्ज़&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpohrpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/hr.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/hr.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/hr.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,487 @@
++# LANGUAGE translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader.hr\n&quot;
++&quot;Report-Msgid-Bugs-To: translation@suse.de\n&quot;
++&quot;POT-Creation-Date: 2006-05-15 15:07+0200\n&quot;
++&quot;PO-Revision-Date: 2008-05-22 22:06+0100\n&quot;
++&quot;Last-Translator: Krešimir Jozić &lt;kjozic@gmail.com&gt;\n&quot;
++&quot;Language-Team: Hrvatski\n&quot;
++&quot;Language: \n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=3; plural=n%10==1 &amp;&amp; n%100!=11 ? 0 : n%10&gt;=2 &amp;&amp; n&quot;
++&quot;%10&lt;=4 &amp;&amp; (n%100&lt;10 || n%100&gt;=20) ? 1 : 2;\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;U redu&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Otkaži&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Ponovno pokreni računalo&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Nastavi&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Instalacija&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Ručna instalacija&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Instalacija--ACPI onemogućen&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Instalacija--sigurne postavke&quot;
++
++#. txt_safe_linux
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Podigni sustav s tvrdog diska&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Sustav za spašavanje&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Test memorije&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Opcije podizanja sustava&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Izlazim...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Napuštate grafički izbornik za dizanje sustava i\n&quot;
++&quot;pokrećete tekstualno sučelje&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Pomoć&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Pokrećem...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Učitavam Linux kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Učitavam memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Program za podizanje sustava&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;Ulazno/izlazna pogreška&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Promijeni disk za podizanje sustava&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Umetnite disketu za podizanje sustava %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Ovo je disketa za podizanje sustava %u.\n&quot;
++&quot;Umetnite disketu za podizanje sustava %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Ovo nije &lt;product&gt; disk za podizanje sustav.\n&quot;
++&quot;Umetnite disk za podizanje sustava %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Lozinka&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Pripremite disketu s dogradnjom upravljačkih programa.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD pogreška&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Ovo je dvostrani DVD. Podigli ste sustav s druge strane.\n&quot;
++&quot;\n&quot;
++&quot;Okrenite DVD i onda nastavite.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Isključi napajanje&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Zaustavi sustav sada?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Tvrdi disk&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Instalacija s tvrdog diska&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Disk uređaj (pretražuje sve diskove ako je prazno)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Direktorij\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP instalacija&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Poslužitelj\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Lozinka\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Korisnik (automatsko prijavljivanje ako je prazno)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS instalacija&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Korisnik (koristi \&quot;gost\&quot; ako je prazno)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB (Windows dijeljenje) instalacija&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP instalacija&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Pogonski program&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Domena\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Ostali izbori&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Jezik&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Instalacija--IOAPIC uključen&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Instalacija--IOAPIC isključen&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Instalacija--lokalni APIC isključen&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Da&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Ne&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Datoteka&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Dijeli\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Automatski način&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Ručni način&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Podesi parametre na ZEN particiji&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Instaliraj ili dogradi ZEN particiju&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Ponovno instaliraj program za podizanje sustava na ZEN particiju&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Onemogući ZEN particiju&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Omogući ZEN particiju&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Tekstualni način&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Test firmware-a&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Da biste učitali dogradnju upravljačkih programa direkno s CD-ROM-a,\n&quot;
++&quot;unesite imena dogradnji upravljačkih programa (odvojena\n&quot;
++&quot;zarezima ',') ovdje:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Izvor&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;VIdeo način&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Dogradnja upravljačkog programa&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Arhitektura&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++#, fuzzy
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Ostali izbori&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Pretpostavljeno&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Sigurne postavke&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Bez ACPI-a&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Bez lokalnog ACPI-a&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Popravi instalirani sustav&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Provjeri instalacijski medij&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Tipkovnica&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;Linux--sigurne postavke&quot;
++
++#~ msgid &quot;Kernel&quot;
++#~ msgstr &quot;Kernel&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpohupo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/hu.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/hu.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/hu.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,506 @@
++# translation of hu.po to
++# translation of hu.po to Hungarian
++# LANGUAGE translations for boot loader
++# Copyright (C) 2004 SUSE LINUX AG
++#
++# Kéménczy Kálmán, 2006.
++# Marcel Hilzinger &lt;marcel.hilzinger@suselinux.hu&gt;, 2004.
++# Szabolcs Varga &lt;shirokuma@shirokuma.hu&gt;, 2004, 2005.
++# Kalman Kemenczy &lt;kkemenczy@novell.com&gt;, 2006.
++# Kéménczy Kálmán &lt;kkemenczy@novell.com&gt;, 2006.
++# Lónyai Gergely &lt;aleph@mandriva.org&gt;, 2007, 2008, 2009, 2010.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: mandriva-gfxboot-theme-2010.1\n&quot;
++&quot;POT-Creation-Date: \n&quot;
++&quot;PO-Revision-Date: 2009-12-23 13:57+0100\n&quot;
++&quot;Last-Translator: Gergely Lónyai &lt;aleph@mandriva.org&gt;\n&quot;
++&quot;Language-Team: Hungarian &lt;aleph@mandriva.org&gt;\n&quot;
++&quot;Language: hu\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++&quot;X-Poedit-Language: Hungarian\n&quot;
++&quot;X-Poedit-Country: HUNGARY\n&quot;
++&quot;X-Poedit-SourceCharset: utf-8\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;OK&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Mégsem&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Újraindítás&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Folytatás&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Microsoft Windows indítása&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Hardverazonosító eszköz&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux %s kernellel&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Telepítés&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Kézi telepítés&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Telepítés - ACPI-támogatás nélkül&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Telepítés - Biztonságos beállításokkal&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Mandriva Linux 2010 Spring indítása (biztonsági üzem)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Rendszerindítás merevlemezről&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Mentőrendszer&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Memóriateszt&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Rendszerindítási paraméterek&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Kilépés...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Kilép a grafikus rendszerindító menüből.\n&quot;
++&quot;El fog indulni a szöveges módú felület.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Segítség&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Indítás...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;A Linux kernel betöltése\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;A memtest86 program betöltése\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Rendszertöltő&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;I/O hiba&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Cserélje az indítólemezt&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Helyezze be a(z) %u. indítólemezt.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Ez a(z) %u. indítólemez.\n&quot;
++&quot;Helyezze be a(z) %u. indítólemezt.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Ez nem egy &lt;product&gt; indítólemez.\n&quot;
++&quot;Helyezze be a(z) %u. indítólemezt.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Jelszó&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Készítse elő a frissítéseket tartalmazó meghajtólemezt.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD-hiba&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Ez egy kétoldalas DVD. Ön a rendszerindításhoz a második oldalt használta.\n&quot;
++&quot;\n&quot;
++&quot;Fordítsa meg a DVD-t, majd folytassa.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Gép kikapcsolása&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Ki akarja most kapcsolni a számítógépet?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Merevlemez&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Telepítés merevlemezről&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Merevlemez-eszköz (ha üres, akkor az összes merevlemez ellenőrzése)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Könyvtár\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP telepítés&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Kiszolgáló\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Jelszó\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Felhasználó (ha üres, akkor anonymous)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS telepítés&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Felhasználó (ha üres, akkor \&quot;guest\&quot;)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB telepítés (Windows megosztásról)&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP telepítés&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Illesztőprogram&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Tartomány\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Egyéb beállítások&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Nyelv&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Telepítés - IOAPIC támogatással&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Telepítés - IOAPIC támogatás nélkül&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Telepítés - Local APIC támogatás nélkül&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Igen&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Nem&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Fájl&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Megosztás\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Automatikus&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Kézi&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;ZEN partíció paramétereinek beállítása&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;ZEN partíció telepítése/frissítése&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;ZEN partíció betöltőjének újratelepítése&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;ZEN partíció tiltása&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;ZEN partíció engedélyezése&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Karakteres mód&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Firmware-teszt&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Amennyiben az illesztőprogram-frissítéseket közvetlenül\n&quot;
++&quot;CD-ről tölti be, adja meg az illesztőprogramok nevét\n&quot;
++&quot;(vesszővel elválasztva ','):\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Forrás&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Videomód&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Illesztőprogram-frissítés&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Architektúra&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Kernel beállítás&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Alapértelmezett&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Biztonságos beállítások&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;ACPI nélkül&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Helyi APIC nélkül&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Telepített rendszer javítása&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Telepítőkészlet ellenőrzése&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Billentyűzet&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Meghajtófrissítés letöltése&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Adja megy a meghajtófrissítés útvonalát\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Nem megfelelő architektúra&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;Ez egy 32 bites számítógép. Nem használhatsz rajta 64 bites programokat.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Figyelem&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;Ön 32 bites szoftvert akar 64 bites számítógépre telepíteni.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;Kérem helyezze be a \&quot;%s\&quot; meghajtóhoz \n&quot;
++&quot;szükséges CD-ROM-ot.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Helyezze vissza a Mandriva Linux telepítőjét CD-ROM-ba.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;Draksnapshot mentés helyreállítása&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Mandriva Linux 2010 Spring indítása&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Mandriva Linux 2010 Spring telepítése&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;Linux - Biztonságos beállításokkal&quot;
++
++#~ msgid &quot;Kernel&quot;
++#~ msgstr &quot;Kernel&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpoidpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/id.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/id.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/id.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,489 @@
++# LANGUAGE translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader\n&quot;
++&quot;Report-Msgid-Bugs-To: translation@suse.de\n&quot;
++&quot;POT-Creation-Date: 2006-05-15 15:07+0200\n&quot;
++&quot;PO-Revision-Date: 2006-10-13 00:07+0700\n&quot;
++&quot;Last-Translator: Tedi Heriyanto &lt;tedi.heriyanto@gmail.com&gt;\n&quot;
++&quot;Language-Team: Indonesian &lt;i18n@suse.de&gt;\n&quot;
++&quot;Language: id\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=1; plural=0\n&quot;
++&quot;X-Generator: KBabel 1.11.2\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;OK&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Batal&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Reboot&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Lanjutkan&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Boot Microsoft Windows&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux dengan kernel %s&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Instalasi&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Instalasi manual.&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Instalasi--ACPI ditiadakan&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Instalasi--Seting Aman&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Boot Mandriva Linux 2010 Spring (mode aman)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Boot dari Hard Disk&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Sistem Penyelamat&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Tes Memori&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Opsi Boot&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Keluar...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Anda meninggalkan menu boot grafis dan\n&quot;
++&quot;memulai interface mode teks.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Bantuan&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Mulai...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Memuatkan Kernel Linux\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Memuatkan memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Boot Loader&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;Kesalahan I/O&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Merubah Disk Boot&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Masukkan disk boot %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Ini adalah disk boot %u.\n&quot;
++&quot;Masukkan disk boot %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Ini bukan boot disk &lt;product&gt;.\n&quot;
++&quot;Masukkan disk boot %u&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Password&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Siapkan floppy update driver anda.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;Kesalahan DVD&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Ini adalah DVD dua sisi. Anda harus boot dari sisi kedua.\n&quot;
++&quot;\n&quot;
++&quot;Balik DVD lalu lanjutkan.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Power Off&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Halt sistem sekarang?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Hard Disk&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Instalasi Hard Disk&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Device Disk (Scan Seluruh Disk bila Kosong)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Direktori\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;Instalasi FTP&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Server\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Password\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;User (Login Anonim bila Kosong)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;Instalasi NFS&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;User (Gunakan \&quot;guest\&quot; jika Kosong)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;Instalasi SMB (Share Windows)&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;Instalasi HTTP&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Driver&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Domain\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Opsi Lain&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Bahasa&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Instalasi--IOAPIC Diadakan&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Instalasi--IOAPIC Ditiadakan&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Instalasi--APIC Lokal ditiadakan&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Ya&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Tidak&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;File&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Share\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Mode Otomatis&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Mode Manual&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Konfigurasi Parameter pada Partisi ZEN&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Instalasi atau Update Partisi ZEN&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Instalasi ulang Boot Loader Partisi ZEN&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Tiadakan Partisi ZEN&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Adakan Partisi ZEN&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Mode Teks&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Tes Firmware&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Untuk memuatkan update driver secara langsung dari CDROM,\n&quot;
++&quot;masukkan nama file update driver (dipisahkan\n&quot;
++&quot;oleh koma ',') di sini:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Opsi Kernel&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Boot Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Install Mandriva Linux 2010 Spring pada sistem Anda&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;Linux--Seting Aman&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpoispo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/is.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/is.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/is.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,522 @@
++# Icelandic translation of mandriva-gfxboot-theme.po
++# translation of bootloader.po to Icelandic
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++# Pjetur G. Hjaltason &lt;pjetur@pjetur.net&gt;, 2006, 2007, 2008, 2009.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: mandriva-gfxboot-theme\n&quot;
++&quot;POT-Creation-Date: 2005-07-27 11:49+0200\n&quot;
++&quot;PO-Revision-Date: 2009-03-30 01:28+0000\n&quot;
++&quot;Last-Translator: Pjetur G. Hjaltason &lt;pjetur@pjetur.net&gt;\n&quot;
++&quot;Language-Team: Icelandic &lt;kde-isl@molar.is&gt;\n&quot;
++&quot;Language: is\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++# ok button label
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;Í lagi&quot;
++
++# cancel button label
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Hætta við&quot;
++
++# reboot button label
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Endurræsa&quot;
++
++# continue button label
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Áfram&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Ræsa Microsoft Windows&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Vélbúnaðarleitar-tól&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux með kjarna %s&quot;
++
++# dialog title for ftp installation
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Athuga uppsetningarmiðil&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Handvirk uppsetning&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Uppsetning--ACPI aftengt&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Uppsetning--Öruggar stillingar&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Ræsa Mandriva Linux 2010 Spring (öruggur hamur)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Ræsa frá diski&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Bjarga kerfi&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Minnisprófun&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Ræsivalkostir&quot;
++
++# window title for exit dialog
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Hætti...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Þú ertað fara úr grafískri ræsivalmynd og\n&quot;
++&quot;í textaham.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Hjálp&quot;
++
++# window title for kernel loading (see txt_load_kernel)
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Ræsi...&quot;
++
++# Keep the three newlines!
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Hleð inn Linux kjarna\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++# Keep the three newlines!
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Hleð inn memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++# info box title
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Ræsistjóri&quot;
++
++# error box title
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;I/Ú villa&quot;
++
++# boot disk change dialog title
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Skifta um ræsidisk&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Settu inn ræsidisk %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Þetta er ræsidiskur %u.\n&quot;
++&quot;Settu inn ræsidisk %u.&quot;
++
++# &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Þetta er ekki &lt;product&gt; ræsidiskur.\n&quot;
++&quot;Settu inn ræsidisk %u.&quot;
++
++# password dialog title
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Lykilorð&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Hafðu diskettu með nýjum rekli tilbúinn.&quot;
++
++# dvd warning title
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD villa&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Þetta er tvíhliða DVD diskur. Þú hefur ræst frá hlið tvö.\n&quot;
++&quot;\n&quot;
++&quot;Snúðu DVD disknum við og haltu síðan áfram.&quot;
++
++# power off dialog title
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Slökkva&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Stöðva kerfi núna?&quot;
++
++# menu entry for hard disk installation
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Diskur&quot;
++
++# dialog title for hard disk installation
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Uppsetning frá diski&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Diskur (leita á öllum diskum ef autt)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Mappa\n&quot;
++
++# dialog title for ftp installation
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP Uppsetning&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Miðlari\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Lykilorð\n&quot;
++
++# label for ftp user input
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Notandi (nafnlaus innskráning ef autt)\n&quot;
++
++# dialog title for nfs installation
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS Uppsetning&quot;
++
++# label for smb user input
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Notandi (notar \&quot;guest\&quot; ef autt)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB (Windows Sameignir) uppsetning&quot;
++
++# dialog title for http installation
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP Uppsetning&quot;
++
++# 'driver' as in '(hardware) driver update'
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Rekill&quot;
++
++# as in Windows Authentication Domain
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Lén\n&quot;
++
++# button label for other/more options
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Aðrar stillingar&quot;
++
++# label for language selection
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Tungumál&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Uppsetning--IOAPIC Virkt&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Uppsetning--IOAPIC Aftengt&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Uppsetning--Staðbundið APIC Aftengt&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Já&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Nei&quot;
++
++# menu item for selecting a file
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Skrá&quot;
++
++# input label: share as in &quot;Windows share&quot; (SMB)
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Miðlað svæði\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Sjálfvirkur hamur&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Handvirkur hamur&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Stilla viðföng á ZEN disksneið&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Setja inn eða uppfæra ZEN disksneið&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Setja aftur inn ZEN disksneiðar ræsiforrit&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Aftengja ZEN disksneið&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Virkja ZEN disksneið&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Textahamur&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Vélbúnaðarprófun&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Til að sækja reklauppfærslur beint frá\n&quot;
++&quot;geisladiski, sláðu inn skráarnöfn reklanna\n&quot;
++&quot;(aðskilin með kommum ',') hér:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Miðill&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Skjáhamur&quot;
++
++# 'driver' as in '(hardware) driver update'
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Uppærsla rekils&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Vélb.&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Kjarnavalkostur&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Sjálfgefið&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Öruggar stillingar&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Ekki ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Ekki staðbundið APIC&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Bjarga uppsettu kerfi&quot;
++
++# dialog title for ftp installation
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Athuga uppsetningarmiðil&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Lyklaborð&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Sækja uppfærðan rekil&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Slóð að uppfærðum reklii\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Rangur vélbúnaður&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++#, fuzzy
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;Þetta er 32-bita tölva. Þú getur ekki notað 64-bita hugbúnað á henni.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Aðvörun&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;Þú ert að fara að setja upp 32-bita hugbúnað á 64-bita tölvu.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;Settu inn geisladisk með rekli fyrir\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Settu Mandriva Linux geisladiskinn aftur í drifið.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;Sækja draksnapshot afrit&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Ræsa Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Setja Mandriva Linux 2010 Spring inn á tölvuna þína&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpoitpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/it.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/it.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/it.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,493 @@
++# translation of mandriva-gfxboot-theme.po to Italian
++# translation of bootloader.po to
++# LANGUAGE translations for boot loader
++# Copyright (C) 2004 SUSE LINUX AG
++# Andrea Celli &lt;andrea.celli@libero.it&gt;, 2009, 2010.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: mandriva-gfxboot-theme\n&quot;
++&quot;POT-Creation-Date: \n&quot;
++&quot;PO-Revision-Date: 2010-02-16 23:46+0100\n&quot;
++&quot;Last-Translator: Andrea Celli &lt;andrea.celli@libero.it&gt;\n&quot;
++&quot;Language-Team: Italian &lt;kde-i18n-it@kde.org&gt;\n&quot;
++&quot;Language: it\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: Lokalize 0.3\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;OK&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Cancella&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Riavvia&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Continua&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Boot di Microsoft Windows&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Strumento per rilevare l'hardware&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux con il kernel %s&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Verifica del supporto di installazione&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Installazione manuale&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Installazione--ACPI disabilitata&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Installazione--Safe Settings&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Boot di Mandriva Linux 2010 Spring (safe mode)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Avvio dal disco rigido&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Sistema di salvataggio&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Verifica della memoria&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Opzioni di boot&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Uscita in corso...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;State per uscire dal menu di avvio grafico e\n&quot;
++&quot;per avviare l'interfaccia nel modo testo.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Aiuto&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Avvio in corso...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Caricamento del kernel Linux in corso\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Caricamento di memtest86 in corso\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Boot loader&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;Errore di I/O&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Cambia dischetto di boot&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Inserire il disco di avvio di %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Questo è il disco di avvio di %u.\n&quot;
++&quot;Inserire il disco di avvio di %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Questo non è un disco di avvio di &lt;prodotto&gt;.\n&quot;
++&quot;Inserire il disco di avvio %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Password&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Preparare il disco floppy con l'aggiornamento dei driver.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;Errore DVD&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Il DVD è a due lati. È stato effettuato l'avvio dal secondo lato.\n&quot;
++&quot;\n&quot;
++&quot;Capovolgere il DVD e continuare.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Spegnimento&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Arrestare il sistema?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Disco rigido&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Installazione disco rigido&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Dispositivo disco (se vuoto analizza tutti i dischi)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Directory\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;Installazione FTP&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Server\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Password\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Utente (login anonimo se vuoto)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;Installazione NFS&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Utente (se vuoto viene utilizzato \&quot;guest\&quot;)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;Installazione SMB (share Windows)&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;Installazione HTTP&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Driver&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Domino\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Altre opzioni&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Lingua&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Installazione IO-APIC abilitata&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Installazione--IOAPIC disabilitata&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Installazione ACPI locale disabilitata&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Sì&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;No&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;File&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Condividi\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Modalità automatica&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Modalità manuale&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Configura parametri nella partizione ZEN&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Installa o aggiorna partizione ZEN&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Reinstalla caricatore di avvio partizione ZEN&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Disabilita partizione ZEN&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Abilita partizione ZEN&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Modo testo&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Verifica firmware&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Per caricare gli aggiornamenti del driver direttamente dal CD ROM,\n&quot;
++&quot;immettere qui i nomi dei file di aggiornamento del driver (separati\n&quot;
++&quot;da virgole','):\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Sorgente&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Modalità video&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Aggiornamento driver&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Arch.&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Opzioni per il kernel&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Predefinito&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Impostazioni sicure&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;No ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;No Local APIC&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Ripara sistema installato&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Verifica del supporto di installazione&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Tastiera&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Recupera il driver aggiornato&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Scrivi l'URL del driver aggiornato\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Architettura errata&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;Questo è un computer a 32-bit. Non vi puoi installare né utilizzare software &quot;
++&quot;a 64-bit.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Attenzione&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++&quot;Stai installando un software compilato a 32-bit su un computer a 64-bit.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;Inserisci il CD-ROM con driver aggiornato per\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Inserisci di nuovo il CD/DVD di Mandriva Linux.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;Ripristinare da backup (draksnapshot)&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Boot di Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Installa Mandriva Linux 2010 Spring&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpojapo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/ja.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/ja.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/ja.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,489 @@
++# LANGUAGE translations for boot loader
++# Copyright (C) 2004 SUSE LINUX AG
++# Yasuhiko Kamata &lt;belphegor@belbel.or.jp&gt;
++# Yukiko Bando &lt;ybando@k6.dion.ne.jp&gt;
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader-ja\n&quot;
++&quot;PO-Revision-Date: 2009-03-22 20:51+0900\n&quot;
++&quot;Last-Translator: Yukiko Bando &lt;ybando@k6.dion.ne.jp&gt;\n&quot;
++&quot;Language-Team: Japanese &lt;cooker-i18n@mandrivalinux.org&gt;\n&quot;
++&quot;Language: ja\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=1; plural=0;\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;OK&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;キャンセル&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;再起動&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;続行&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Microsoft Windows を起動&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux (カーネル %s)&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;インストールメディアのチェック&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;手動インストール&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;インストール -- ACPI 無効&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;インストール -- 安全設定&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Mandriva Linux 2010 Spring を起動 (セーフモード)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;ハードディスクから起動&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;レスキューシステム&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;メモリテスト&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;起動オプション&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;終了しています...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;グラフィックブートメニューから\n&quot;
++&quot;テキストモードに切替えます。&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;ヘルプ&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;起動しています...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Linux カーネルを読み込んでいます\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;memtest86 を読み込んでいます\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;ブートローダ&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;入出力エラー&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;ブートディスクの変更&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;ブートディスク %u を挿入してください。&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;これはブートディスク %u です。\n&quot;
++&quot;ブートディスク %u を挿入してください。&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;これは &lt;product&gt; ブートディスクではありません。\n&quot;
++&quot;ブートディスク %u を挿入してください。&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;パスワード&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;ドライバ更新用のフロッピーディスクを準備してください。&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD エラー&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;これは両面 DVD です。第 2 面からブートしています。\n&quot;
++&quot;DVD をひっくり返してからもう一度行なってください。&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;電源オフ&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;システムを中止しますか?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;ハードディスク&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;ハードディスクへのインストール&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;ディスクデバイス (空の場合は全ディスクを検索します)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;ディレクトリ\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP インストール&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;サーバ\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;パスワード\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;ユーザ (無入力の場合は匿名ログイン)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS インストール&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;ユーザ (無入力の場合は guest を使用)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB (Windows 共有) インストール&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP インストール&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;ドライバ&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;ドメイン\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;その他のオプション&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;言語&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;インストール--IOAPIC 有効&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;インストール -- IOAPIC 無効&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;インストール--ローカル APIC 無効&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;はい&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;いいえ&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;ファイル&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;共有\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;自動モード&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;手動モード&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;ZEN パーティション上のパラメータ設定&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;ZEN パーティションのインストールまたはアップデート&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;ZEN パーティションブートローダの再インストール&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;ZEN パーティションを無効にする&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;ZEN パーティションを有効にする&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;テキストモード&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;ファームウェアのテスト&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;CD-ROM から直接更新済みのドライバを読み込むには、\n&quot;
++&quot;更新済みのドライバファイル名をここで入力してください\n&quot;
++&quot;(コンマ ',' で区切ります):\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;ソース&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;ビデオモード&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;ドライバ更新&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;アーキテクチャ&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;カーネルのオプション&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;デフォルト&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;安全設定&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;ACPI なし&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;ローカル APIC なし&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;インストール済みのシステムを修復&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;インストールメディアのチェック&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;キーボード&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;ドライバのアップデートをダウンロード&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;ドライバのアップデートのための URL を入力\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;不正なアーキテクチャ&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++#, fuzzy
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;これは 32 ビットのコンピュータなので 64 ビットのソフトウェアは使えません。&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;警告&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++&quot;64 ビットのコンピュータに 32 ビットのソフトウェアをインストールしようとしてい&quot;
++&quot;ます。&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;\&quot;%s\&quot; のためのドライバ更新用 CD-ROM を挿入してください。&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Mandriva Linux の CD-ROM をドライブに戻してください。&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;draksnapshot のバックアップを復元&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Mandriva Linux 2010 Spring を起動&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Mandriva Linux 2010 Spring をインストール&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpokapo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/ka.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/ka.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/ka.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,482 @@
++# LANGUAGE translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: @PACKAGE@\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2006-06-19 15:33+0200\n&quot;
++&quot;PO-Revision-Date: 2008-09-25 18:02+0400\n&quot;
++&quot;Last-Translator: George Machitidze &lt;giomac@gmail.com&gt;\n&quot;
++&quot;Language-Team: Georgian &lt;i18n@suse.de&gt;\n&quot;
++&quot;Language: ka\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=1; plural=0;\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;OK&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;შეწყვეტა&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;გადატვირთვა&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;გაგრძელება&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;ჩადგმა&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;ხელით დაყენება&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;ჩადგმა--ACPI-ის გათიშვით&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;ჩადგმა--უსაფრთხო პარამეტრებით&quot;
++
++#. txt_safe_linux
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;მყარი დისკიდან ჩატვირთვა&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;მაშველი სისტემა&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;მეხსიერების შემოწმება&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;ჩარტვირთვის პარამეტრები&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;გამოსვლა...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;თქვენ ტოვებთ გრაფიკულ მენიუს\n&quot;
++&quot;გადადიხართ ტექსტურ რეჟიმში.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;დახმარება&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;დაწყება...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Linux-ის ბირთვის ჩატვირთვაl\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;memtest86-ის ჩარტვირთვა\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;ჩამტვირთავი&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;I/O შეცდომა&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;ჩატვირთვის დისკის შეცვლა&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;ჩადეთ ჩასატვირთი დისკი %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;ეს არის ჩასატვირთი დისკი %u.\n&quot;
++&quot;ჩადეთ ჩასატვირთი დისკი %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;ეს არ არის &lt;product&gt;-ის ჩასატვირთი დისკი.\n&quot;
++&quot;ჩადეთ ჩასატვირთი დისკი %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;პაროლი&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD-ის შეცდომა&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;ეს არის ორმხირივი DVD. თქვენ ჩაიტვირთეთ მეორე მხრიდან.\n&quot;
++&quot;\n&quot;
++&quot;გადააბრუნეთ DVD დისკი და შემდეგ გააგრძელეთ პროცესი.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;გამოთიშვა&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;ახლავე შევაჩერო სისტემა?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;მყარი დისკი&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;მყარი დისკით ჩადგმა&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;დირექტორია\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP-ით ჩადგმა&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;სერვერი\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;პაროლი\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;მოხმარებელი (ცარიელის შემთხვევაში ანონიმური)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS-ით ჩადგმა&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;მოხმარბელი (თუ ცარიელია, იყენებს \&quot;guest\&quot;-ს)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB (Windows-ის გაზიარებით) ჩადგმა&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP-ით ჩადგმა&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;ფრაივერი&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;დომენი\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;სხვა პარამეტრები&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;ენა&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;ჩადგმა--ჩართული IOAPIC-ით&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;ჩადგმა--გამორთული IOAPIC-ით&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;ჩადგმა--ადგილობრივი APIC-ის გარეშე&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;დიახ&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;არა&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;ფაილი&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;ზიარი\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;ავტომატური რეჟიმი&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;ხელოვნური რეჟმი&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;ZEN დანაყოფის პარამეტრების მითთება&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;ZEN დანაყოფის ჩადგმა ან განახლება&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;ZEN დანაყოფის გათიშვა&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;ZEN დანაყოფის ჩართვა&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;ტექსტური რეჟიმი&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;წყარო&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;ვიდეოს რეჟიმი&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;დრაივერის განახლება&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;არქიტექტურა&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++#, fuzzy
++msgid &quot;Kernel Option&quot;
++msgstr &quot;სხვა პარამეტრები&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;ნაგულისხმები&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;უსაფრთხო პარამეტრები&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;ACPI-ის გარეშე&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;ადგილობრივი APIC-ის გარეშე&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;ჩადგმული სისტემის შველა&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;დისკის შემოწმება&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;კლავიატურა&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;Linux--უსაფრთხო პარამეტრებით&quot;
++
++#~ msgid &quot;Kernel&quot;
++#~ msgstr &quot;ბირთვი&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpokopo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/ko.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/ko.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/ko.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,488 @@
++# LANGUAGE translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader.ko\n&quot;
++&quot;Report-Msgid-Bugs-To: translation@suse.de\n&quot;
++&quot;POT-Creation-Date: \n&quot;
++&quot;PO-Revision-Date: 2008-06-14 18:12+0900\n&quot;
++&quot;Last-Translator: YunSeok Choi &lt;xein@naver.com&gt;\n&quot;
++&quot;Language-Team: Korean &lt;xein@naver.com&gt;\n&quot;
++&quot;Language: ko\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=1; plural=0;\n&quot;
++&quot;X-Poedit-Language: Korean\n&quot;
++&quot;X-Poedit-Country: KOREA, REPUBLIC OF\n&quot;
++&quot;X-Poedit-SourceCharset: utf-8\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;확인&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;취소&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;재부팅&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;계속&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;오픈수세 설치&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;수동 설치&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;설치--ACPI 비활성&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;설치--안전 설정&quot;
++
++#. txt_safe_linux
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;하드디스크로 부팅&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;시스템 복구(콘솔)&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;메모리 테스트&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;부트 옵션&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;종료 중...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;그래픽 부트메뉴에서 떠나\n&quot;
++&quot;텍스트 모드 인터페이스로 시작합니다.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;도움말&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;시작 중...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;리눅스 커널 불러오는 중\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;memtest84 불러오는 중\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;부트로더&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;I/O 오류&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;부트 디스크 변경&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;%u 부트 디스크 삽입하세요.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;이것은 %u 부트디스크 입니다.\n&quot;
++&quot;%u 부트디스크를 삽입하세요.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;이것은 &lt;product&gt; 부트디스크가 아닙니다.\n&quot;
++&quot;%u 부트디스크를 삽입하세요.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;열쇠글&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;플로피디스크에서 드라이버를 업데이트 준비&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD 오류&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;이것은 양면으로 된 DVD 입니다. 두번째 면으로 부팅 되었습니다.\n&quot;
++&quot;\n&quot;
++&quot;DVD를 뒤집어서 계속할 수 있습니다.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;전원 OFF&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;시스템을 지금 종료하시겠습니까?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;하드디스크&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;하드디스크 설치&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;디스크 장치 (비어있을 경우 모든 디스크 검색)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;디렉토리\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP 설치&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;서버\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;열쇠글\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;사용자 (비어있을 경우 익명 로그인)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS 설치&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;사용자 (비어있을 경우 \&quot;guest\&quot; 사용)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB (윈도우 공유) 설치&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP 설치&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;드라이버&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;도메인\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;다른 옵션&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;언어&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;설치--IOAPIC 활성&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;설치--IOAPIC 비활성&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;설치--내부 APIC 비활성&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;예&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;아니요&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;파일&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;공유\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;자동 모드&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;수동 모드&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;ZEN 파티션 매개변수 구성&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;ZEN 파티션 설치 또는 업데이트&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;ZEN 파티션 부트로더 재설치&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;ZEN 파티션 비활성&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;ZEN 파티션 활성&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;텍스트 모드&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;펌웨어 테스트&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;CD-ROM으로 바로 업데이트 드라이버를 불러옵니다\n&quot;
++&quot;이곳에 업데이트 드라이버 이름을 입력하세요\n&quot;
++&quot;(쉼표로 구분하세요 ','):\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;소스&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;비디오 모드&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;드라이버 업데이트&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Arch&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++#, fuzzy
++msgid &quot;Kernel Option&quot;
++msgstr &quot;다른 옵션&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;기본&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;안전 설정&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;ACPI 없음&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;내부 APIC 없음&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;설치된 시스템 복원(복구 도구)&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;설치 미디어 확인&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;키보드&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;리눅스--안전 설정&quot;
++
++#~ msgid &quot;Kernel&quot;
++#~ msgstr &quot;커널&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpokypo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/ky.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/ky.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/ky.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,519 @@
++# Kirghiz translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++# Ilyas Bakirov &lt;just_ilyas@yahoo.com&gt;, 2009.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader\n&quot;
++&quot;POT-Creation-Date: 2005-07-27 11:49+0200\n&quot;
++&quot;PO-Revision-Date: 2009-12-25 22:10+0600\n&quot;
++&quot;Last-Translator: Ilyas Bakirov &lt;just_ilyas@yahoo.com&gt;\n&quot;
++&quot;Language-Team: Kirghiz &lt;just_ilyas@yahoo.com&gt;\n&quot;
++&quot;Language: ky\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++
++# ok button label
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;OK&quot;
++
++# cancel button label
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Айнуу&quot;
++
++# reboot button label
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Кайра жүктөө&quot;
++
++# continue button label
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Улантуу&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Microsoft Windows жүктөө&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Жабдыктарды аныктоо аспабы&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux %s ядросу менен&quot;
++
++# dialog title for ftp installation
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Орнотуу булактарын текшерүү&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Жеке кол менен орнотулушу&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;ACPI'сиз орнотуу&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Орнотуу--Коопсуз ырастоолор&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Mandriva Linux 2010 Spring жүктөө (коопсуз режими)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Катуу дисктен жүктөө&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Аварийдик система&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Эс тести&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Жүктөө параметрлери&quot;
++
++# window title for exit dialog
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Чыгуу...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Графикалык жүктөө менюсу аякталып тексттик\n&quot;
++&quot;интерфейс башталып жатат.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Жардам&quot;
++
++# window title for kernel loading (see txt_load_kernel)
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Баштоо...&quot;
++
++# Keep the three newlines!
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Linux ядросу жүктөлүп жатат\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++# Keep the three newlines!
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;memtest86 эс тести жүктөлүп жатат\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++# info box title
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Жүктөөгүч&quot;
++
++# error box title
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;I/O Катасы&quot;
++
++# boot disk change dialog title
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Жүктөлүүчү дискти алмаштыруу&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;%u жүктөлүүчү дискти киргизиңиз.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Бул %u жүктөлүүчү диски.\n&quot;
++&quot;%u жүктөлүүчү дискти киргизиңиз.&quot;
++
++# &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Бул &lt;product&gt; жүктөлүүчү диски эмес.\n&quot;
++&quot;%u жүктөөлүүчү дискти киргизиңиз.&quot;
++
++# password dialog title
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Сырсөз&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Драйвер жаңылоолор дискетасын даярдап коюңуз.&quot;
++
++# dvd warning title
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD катасы&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Бул эки жактуу DVD-диски. Сиз экинчи жактан жүктөлдүңүз.\n&quot;
++&quot;\n&quot;
++&quot;DVD-дискти айландырып коюңуз.&quot;
++
++# power off dialog title
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Өчүрүү&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Система өчүрүлсүнбү?&quot;
++
++# menu entry for hard disk installation
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Катуу диск&quot;
++
++# dialog title for hard disk installation
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Катуу диск орнотулушу&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Диск түзүлүшү (көрсөтүлбөгөн болсо бардык дисктер араланат)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Каталог\n&quot;
++
++# dialog title for ftp installation
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP орнотулушу&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Сервер\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Сырсөз\n&quot;
++
++# label for ftp user input
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Колдонуучу (көрсөтүлбөгөн болсо анонимдик кирүү колдонулат)\n&quot;
++
++# dialog title for nfs installation
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS орнотулушу&quot;
++
++# label for smb user input
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Колдонуучу (көрсөтүлбөгөн болсо \&quot;guest\&quot; колдонулат)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB (Windows бөлүшүү) орнотулушу&quot;
++
++# dialog title for http installation
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP орнотулушу&quot;
++
++# 'driver' as in '(hardware) driver update'
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Драйвер&quot;
++
++# as in Windows Authentication Domain
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Домен\n&quot;
++
++# button label for other/more options
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Башка параметрлер&quot;
++
++# label for language selection
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Тил&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;IOAPIC менен орнотуу&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;IOAPIC'сиз орнотуу&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Local APIC'сиз орнотуу&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Ооба&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Жок&quot;
++
++# menu item for selecting a file
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Файл&quot;
++
++# input label: share as in &quot;Windows share&quot; (SMB)
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Бөлүшүү\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Автоматтык режим&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Жеке кол менен режими&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;ZEN бөлүмүндө параметрлерди ырастоо&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;ZEN бөлүмүн орнотуу же жаңылоо&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;ZEN бөлүмдүн жүктөгүчүн кайра орнотуу&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;ZEN бөлүмүн өчүрүү&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;ZEN бөлүмүн жандыруу&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Текст режими&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Firmware тести&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Дисктен драйвер жаңылоолорду жүктөө\n&quot;
++&quot;үчүн драйвер жаңылоолор файл аттарын\n&quot;
++&quot;кириңиз (үтүр менен бөлүнгөн ','):\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Булак&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Видео режими&quot;
++
++# 'driver' as in '(hardware) driver update'
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Драйвер Жаңылоо&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Арх.&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Ядро опциялары&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Алдын ала&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Safe Settings&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;ACPI'сиз&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Локалдык APIC'сиз&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Орнотулган системаны ондоо&quot;
++
++# dialog title for ftp installation
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Орнотуу булактарын текшерүү&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Клавиатура&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Драйвер жаңылоосун жүктөө&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Драйвер жаңылоо адреси\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Архитектура туура эмес&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;Бул 32-бит компьютер. Сиз 64-бит программаларды колдоно же орното албайсыз.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Эскертүү&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;Сиз 64-бит компьютерге 32-бит программасын орнотуп жатасыз.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;\&quot;%s\&quot;\n&quot;
++&quot;драйвер жаңылоо дискин коюңуз.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Mandriva Linux дискин кайра коюңуз.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;draksnapshot резервдик копиядан калыбына келтирүү&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Mandriva Linux 2010 Spring жүктөө&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Mandriva Linux 2010 Spring орнотуу&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpoltpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/lt.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/lt.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/lt.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,482 @@
++# LITHUANIAN translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader.lt\n&quot;
++&quot;POT-Creation-Date: \n&quot;
++&quot;PO-Revision-Date: 2007-08-19 19:58+0300\n&quot;
++&quot;Last-Translator: Andrius Štikonas &lt;stikonas@gmail.com&gt;\n&quot;
++&quot;Language-Team: Lietuvių &lt;komp_lt@konf.lt&gt;\n&quot;
++&quot;Language: \n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++&quot;Plural-Forms: nplurals=3; plural=(n%10==1 &amp;&amp; n%100!=11 ? 0 : n%10&gt;=2 &amp;&amp; (n&quot;
++&quot;%100&lt;10 || n%100&gt;=20) ? 1 : 2);\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;Gerai&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Atšaukti&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Perkrauti&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Tęsti&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Diegimas&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Rankinis diegimas&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Diegimas--ACPI išjungtas&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Diegimas--saugūs nustatymai&quot;
++
++#. txt_safe_linux
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Įkrauti iš kietojo disko&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Avarinė sistema&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Atminties testas&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Įkrovos parametrai&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Išeinama...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Jūs paliekate grafinį įkrovos meniu ir\n&quot;
++&quot;paleidžiate tekstinę sąsają.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Pagalba&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Paleidžiama...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Įkeliamas Linux branduolys\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Įkeliamas memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Įkrovos tvarkyklė&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;I/O klaida&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Keisti įkrovos diską&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Įdėkite įkrovos diską %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Tai įkrovos diskas %u.\n&quot;
++&quot;Įdėkite įkrovos diską %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Tai ne &lt;product&gt; įkrovos diskas.\n&quot;
++&quot;Prašome įdėti įkrovos diską %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Slaptažodis&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Paruoškite savo diskelį su tvarkyklės atnaujinimu.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD klaida&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Tai dvipusis DVD. Jūs įkrovėte iš antrosios pusės.\n&quot;
++&quot;\n&quot;
++&quot;Apverskite DVD ir tęskite.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Išjungti&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Sustabdyti sistemą?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Kietasis diskas&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Diegimas iš kietojo disko&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Diskų įrenginys (jei nėra, skenuos visus diskus)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Aplankas\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP diegimas&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Serveris\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Slaptažodis\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Vartotojas (jungiasi anonimas, jei tuščia)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS diegimas&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Vartotojas (naudojama „guest“, jei tuščia)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;Diegimas per SMB (Windows Share)&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP diegimas&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Tvarkyklė&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Domenas\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Kiti parametrai&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Kalba&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Diegimas--IOAPIC įgalintas &quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Diegimas--IOAPIC uždraustas&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Diegimas--Vietinis APIC uždraustas&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Taip&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Ne&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Byla&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Resursas\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Automatinis režimas&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Rankinis režimas&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Konfigūruoti ZEN skaidinio parametrus&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Įdiegtiarba atnaujinti ZEN skaidinį&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Iš naujo įdiegti ZEN skaidinio įkrovos tvarkyklę&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Uždrausti ZEN skaidinį&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Įgalinti ZEN skaidinį&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Tekstinis režimas&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Resursas&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Video režimas&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Tvarkyklės atnaujinimas&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Arch&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Numatytas&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Saugūs nustatymai&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Be ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Taisyti įdiegtą sistemą&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Klaviatūra&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;Linux--saugios nuostatos&quot;
++
++#~ msgid &quot;Kernel&quot;
++#~ msgstr &quot;Branduolys&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpoltgpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/ltg.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/ltg.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/ltg.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,532 @@
++# Translation of bootloader.po to Russian
++# LANGUAGE translations for boot loader
++# Copyright (C) 2004 SUSE LINUX AG
++# Copyright (C) 2004 Vdel CREC
++#
++# Andrew Bogatov&lt;bert@bert2.crec.mipt.ru&gt;, 2004.
++# Aleksey Osipov &lt;aliks-os@yandex.ru&gt;, 2006.
++# Pavel Maryanov &lt;acid_jack@ukr.net&gt;, 2006.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader\n&quot;
++&quot;POT-Creation-Date: 2005-07-27 11:49+0200\n&quot;
++&quot;PO-Revision-Date: 2006-09-25 15:54+0200\n&quot;
++&quot;Last-Translator: Māris Laureckis &lt;marlau@inbox.lv&gt;\n&quot;
++&quot;Language-Team: Latgalian &lt;marlau@inbox.lv&gt;\n&quot;
++&quot;Language: \n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.11.2\n&quot;
++
++# ok button label
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;Labi&quot;
++
++# cancel button label
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Atceļt&quot;
++
++# reboot button label
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Puorsuoknēt&quot;
++
++# continue button label
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Turpynuot&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;&quot;
++
++# dialog title for ftp installation
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Instalaceja pa FTP&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Manualuo instalaceja&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Instalaceja bez ACPI&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Instalaceja drūšā režimā&quot;
++
++#. txt_safe_linux
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Suoknēt nu cītuo diska&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Avarejis sistemys īluode&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Atminis tests&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Suokneišonys parametri&quot;
++
++# window title for exit dialog
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Izīt...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Teik aizvārta grafiskuo suokneišonys izvieļne\n&quot;
++&quot;i saskarne teik palaista teksta režimā.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Paleidzeiba&quot;
++
++# window title for kernel loading (see txt_load_kernel)
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Teik starteits...&quot;
++
++# Keep the three newlines!
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Teik īluodāts Linux kūduls\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++# Keep the three newlines!
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Teik īluodāts memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++# info box title
++#. info box title
++#. txt_info_title
++#, fuzzy
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Suokneituojs&quot;
++
++# error box title
++#. error box title
++#. txt_error_title
++#, fuzzy
++msgid &quot;I/O Error&quot;
++msgstr &quot;Īvoda/Izvoda kliuda&quot;
++
++# boot disk change dialog title
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Nūmainit suokneišonys disku&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Īlicit suokneišonys disku %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Itys ir suokneišonys disks %u.\n&quot;
++&quot;Īlicit suokneišonys disku %u.&quot;
++
++# &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, fuzzy, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Itys nav &lt;product&gt; suokneišonys disks.\n&quot;
++&quot;Īlicit suokneišonys disku %u.&quot;
++
++# password dialog title
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Paroļs&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Sagatavejit draiveru atjaunynuošonys disketi.&quot;
++
++# dvd warning title
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD kliuda&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Itys divu pušu DVD. Jius īsuoknēt nu ūtruos pusis.\n&quot;
++&quot;\n&quot;
++&quot;Puorgrīzit DVD iz ūtru pusi, tod turpynojit.&quot;
++
++# power off dialog title
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Izslēgt&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Vai apstuodynuot sistemu?&quot;
++
++# menu entry for hard disk installation
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Cītīs disks&quot;
++
++# dialog title for hard disk installation
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Instalaceja nu cītuo diska&quot;
++
++#. txt_hd_diskdevice
++#, fuzzy
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Diska īkuorta ( ja nav nūruodeits, skenej vysus diskus)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Katalogs\n&quot;
++
++# dialog title for ftp installation
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;Instalaceja pa FTP&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Servers\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Paroļs\n&quot;
++
++# label for ftp user input
++#. label for ftp user input
++#. txt_user1
++#, fuzzy
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Lītuotuojs (ja nav nūruodeits, anonimuo īsalūguošona)\n&quot;
++
++# dialog title for nfs installation
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;Instalaceja pa NFS&quot;
++
++# label for smb user input
++#. label for smb user input
++#. txt_user2
++#, fuzzy
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Lītuotuojs (ja nav nūruodeits, teik izmontuots \&quot;guest\&quot;)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++#, fuzzy
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;Manualuo instalaceja&quot;
++
++# dialog title for http installation
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;Instalaceja pa HTTP&quot;
++
++# 'driver' as in '(hardware) driver update'
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Draivers&quot;
++
++# as in Windows Authentication Domain
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Domens\n&quot;
++
++# button label for other/more options
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Cytys opcejis&quot;
++
++# label for language selection
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Volūda&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Instalaceja--IOAPIC īslāgts&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Instalaceja--IOAPIC izslāgts&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Instalaceja--Local APIC izslāgts&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Da&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Nā&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Fails&quot;
++
++# input label: share as in &quot;Windows share&quot; (SMB)
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Kūplītuošona\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;&quot;
++
++# 'driver' as in '(hardware) driver update'
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++#, fuzzy
++msgid &quot;Driver Update&quot;
++msgstr &quot;Draivers&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++#, fuzzy
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Instalaceja drūšā režimā&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++#, fuzzy
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Avarejis sistemys īluode&quot;
++
++# dialog title for ftp installation
++#. menu item
++#. txt_mediacheck
++#, fuzzy
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Instalaceja pa FTP&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;&quot;
++
++# Keep the newlines and spaces after ':'!
++#~ msgid &quot;&quot;
++#~ &quot;Enter your password: \n&quot;
++#~ &quot;\n&quot;
++#~ &quot;\n&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Īvodit paroli: \n&quot;
++#~ &quot;\n&quot;
++#~ &quot;\n&quot;
++
++#~ msgid &quot;Installation from ISO file&quot;
++#~ msgstr &quot;Instalaceja nu ISO faila&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpomkpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/mk.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/mk.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/mk.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,532 @@
++# translation of bootloader.po to Macedonian
++# LANGUAGE translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++# Zoran Dimovski &lt;zoki.dimovski@gmail.com&gt;, 2006.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader\n&quot;
++&quot;POT-Creation-Date: 2005-07-27 11:49+0200\n&quot;
++&quot;PO-Revision-Date: 2006-09-17 20:33-0700\n&quot;
++&quot;Last-Translator: Zoran Dimovski &lt;zoki.dimovski@gmail.com&gt;\n&quot;
++&quot;Language-Team: Macedonian\n&quot;
++&quot;Language: \n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++&quot;Plural-Forms: nplurals=2; plural= n==1 || n%10==1 ? 0 : 1\n&quot;
++
++# ok button label
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;Во ред&quot;
++
++# cancel button label
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Откажи&quot;
++
++# reboot button label
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Рестартирај&quot;
++
++# continue button label
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Продолжи&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;&quot;
++
++# dialog title for ftp installation
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Инсталација преку „FTP“&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Рачна инсталација&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Инсталација--Оневозможено „ACPI“&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Инсталација--Сигурни поставувања&quot;
++
++#. txt_safe_linux
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Подигни од хард диск&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Систем за спасување&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Тест на меморијата&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Опции за подигнување&quot;
++
++# window title for exit dialog
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Излегувам...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Вие излегувате од графичкото мени за подигнување и\n&quot;
++&quot;и го вклучувате текстуалниот режим.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Помош&quot;
++
++# window title for kernel loading (see txt_load_kernel)
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Вклучувам...&quot;
++
++# Keep the three newlines!
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Вчитување на кернелот „Linux“\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++# Keep the three newlines!
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Вчитување на „memtest86“\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++# info box title
++#. info box title
++#. txt_info_title
++#, fuzzy
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Подигнувач&quot;
++
++# error box title
++#. error box title
++#. txt_error_title
++#, fuzzy
++msgid &quot;I/O Error&quot;
++msgstr &quot;В/И грешка&quot;
++
++# boot disk change dialog title
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Промена на дискот за подигнување&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Внесете го дискот за подигнување „%u“.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Ова е дискот за подигнување „%u“.\n&quot;
++&quot;Внесете го дискот за подигнување „%u“.&quot;
++
++# &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, fuzzy, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Ова не е „&lt;product&gt;“ диск за подигнување.\n&quot;
++&quot;Ве молиме внесете го дискот за подигнување „%u“.&quot;
++
++# password dialog title
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Лозинка&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Подгответе ја дискетата за ажурирање на драјверот.&quot;
++
++# dvd warning title
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;„DVD“ грешка&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Ова е обострано „DVD“. Вие го вклучивте од втората страна.\n&quot;
++&quot;\n&quot;
++&quot;Обратно свртете го дискот и продолжете.&quot;
++
++# power off dialog title
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Исклучи&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Дали сакате да го исклучите системот?&quot;
++
++# menu entry for hard disk installation
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Хард диск&quot;
++
++# dialog title for hard disk installation
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Инсталација преку хард диск&quot;
++
++#. txt_hd_diskdevice
++#, fuzzy
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Хард диск (ако е празно ги скенира сите дискови)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Директориум\n&quot;
++
++# dialog title for ftp installation
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;Инсталација преку „FTP“&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Сервер\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Лозинка\n&quot;
++
++# label for ftp user input
++#. label for ftp user input
++#. txt_user1
++#, fuzzy
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Корисник (ако е празно значи дека е анонимен корисник)\n&quot;
++
++# dialog title for nfs installation
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;Инсталација преку „NFS“&quot;
++
++# label for smb user input
++#. label for smb user input
++#. txt_user2
++#, fuzzy
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Корисник (ако е празно значи дека е „гостин“)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++#, fuzzy
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;Рачна инсталација&quot;
++
++# dialog title for http installation
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;Инсталација преку „HTTP“&quot;
++
++# 'driver' as in '(hardware) driver update'
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Драјвер&quot;
++
++# as in Windows Authentication Domain
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Домен\n&quot;
++
++# button label for other/more options
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Други опции&quot;
++
++# label for language selection
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Јазик&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Инсталација--Овозможено „IOAPIC“&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Инсталација--Оневозможено „IOAPIC“&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Инсталација--Оневозможено локално „APIC“&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Да&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Не&quot;
++
++# menu item for selecting a file
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Датотека&quot;
++
++# input label: share as in &quot;Windows share&quot; (SMB)
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Сподели\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;&quot;
++
++# 'driver' as in '(hardware) driver update'
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++#, fuzzy
++msgid &quot;Driver Update&quot;
++msgstr &quot;Драјвер&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++#, fuzzy
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Инсталација--Сигурни поставувања&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++#, fuzzy
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Систем за спасување&quot;
++
++# dialog title for ftp installation
++#. menu item
++#. txt_mediacheck
++#, fuzzy
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Инсталација преку „FTP“&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;&quot;
++
++# Keep the newlines and spaces after ':'!
++#~ msgid &quot;&quot;
++#~ &quot;Enter your password: \n&quot;
++#~ &quot;\n&quot;
++#~ &quot;\n&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Внесете ја вашата лозинка: \n&quot;
++#~ &quot;\n&quot;
++#~ &quot;\n&quot;
++
++# dialog title for ISO installation
++#~ msgid &quot;Installation from ISO file&quot;
++#~ msgstr &quot;Инсталација преку „ISO“ датотека&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpomrpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/mr.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/mr.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/mr.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,483 @@
++# LANGUAGE translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: Check hardware-2.0\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2007-01-16 23:21+0100\n&quot;
++&quot;PO-Revision-Date: 2006-11-13 12:55+0530\n&quot;
++&quot;Last-Translator: Priyavert Sharma &lt;priyavert.sharma@agreeya.com&gt;\n&quot;
++&quot;Language-Team: AgreeYa Solutions &lt;linux_team@agreeya.com&gt;\n&quot;
++&quot;Language: \n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++&quot;X-Generator: KBabel 1.10.2\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;ठीक आहे&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;रद्द करा&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;पुन्हा सुरु करा (रीबूट)&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;पुढे चालू ठेवा&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;स्थापना (इन्स्टॉलेशन)&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;हाताने स्थापना&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;स्थापना--ACPI असमर्थ&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;स्थापना - सुरक्षित सेटिंग्ज&quot;
++
++#. txt_safe_linux
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;हार्ड डिस्कवरुन सुरु करा&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;बचावात्मक प्रणाली&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;स्मृती चाचणी&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;सुरु करण्याचे (बूट) पर्याय&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;बाहेर येत आहे...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;आपण ग्राफिकल बूट मेन्यूमधून बाहेर येत आहात आणि\n&quot;
++&quot;पाठ्य मोड इंटरफेस सुरु करत आहात.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;मदत&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;सुरु करत आहे...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;लायनक्स कर्नेल लोड करत आहे.\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;मेमटेक्स्ट 86 लोड करत आहे\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;बूट लोडर&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;I/O चूक&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;बूट डिस्क बदला&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;%u.बूट डिस्क घाला&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;ही %u.बूट डिस्क आहे\n&quot;
++&quot;बूट डिस्क %u.घाला&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;ही &lt;product&gt; बूट डिस्क नाही.\n&quot;
++&quot;%u.बूट डिस्क घाला&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;पासवर्ड&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;आपला ड्रायव्हर अपडेट करणारी फ्लॉपी तयार ठेवा.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD चूक&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;ही दोन्ही बाजूंनी वापरता येणारी DVDआहे. आपण दुसर्या बाजूपासून सुरु (बूट) केली आहे.\n&quot;
++&quot;\n&quot;
++&quot;DVD उलटी करा व पुढे चालू करा.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;वीजपुरवठा बंद&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;प्रणाली आता थांबवायची?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;हार्ड डिस्क&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;हार्ड डिस्कची स्थापना&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;डिस्क डिव्हाईस (सर्व डिस्क रिकाम्या आहेत किंवा काय ते पहाते)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;डिरेक्टरी\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP स्थापना&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;सर्व्हर\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;पासवर्ड\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;उपभोक्ता (रिक्त असल्यास निनावी लॉगईन) \n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS स्थापना&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;उपभोक्ता (रिक्त असल्यास \&quot;guest\&quot; वापरते)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB (विंडोज शेयर) स्थापना &quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP स्थापना&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;ड्रायव्हर&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;डोमेन\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;अन्य पर्याय&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;भाषा&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;स्थापना--IOAPIC समर्थ&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;स्थापना--IOAPIC असमर्थ&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;स्थापना--स्थानिक APIC असमर्थ&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;होय&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;नाही&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;फाईल&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;शेअर\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;स्वयंचलित मोड&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;हाताने चालणारा मोड&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;ZEN पार्टिशनवर पॅरामीटर्सचा आकृतीबंध बनवा&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot; ZEN पार्टिशन स्थापित किंवा अपडेट करा&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;ZEN पार्टिशन बूट लोडर पुनरस्थापित करा&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot; ZEN पार्टिशन असमर्थ करा&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;ZEN पार्टिशन समर्थ करा&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;पाठ्य मोड&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot; फर्मवेअर चाचणी&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;CD-ROM वरुन थेट ड्रायव्हर अपडेट्स लोड करण्यासाठी,\n&quot;
++&quot;ड्रायव्हर अपडेट फाईलींची नांवे येथे प्रविष्ट करा \n&quot;
++&quot;(स्वल्पविराम ',' देऊन) वेगवेगळी कराः\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;स्रोत&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;शिल्प&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++#, fuzzy
++msgid &quot;Kernel Option&quot;
++msgstr &quot;अन्य पर्याय&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;की बोर्ड&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot; लायनक्स--सुरक्षित सेटिंग्ज &quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpomspo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/ms.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/ms.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/ms.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,528 @@
++# LANGUAGE translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader\n&quot;
++&quot;POT-Creation-Date: 2005-07-27 11:49+0200\n&quot;
++&quot;PO-Revision-Date: 2008-12-28 21:47+0800\n&quot;
++&quot;Last-Translator: Sharuzzaman Ahmat Raslan &lt;sharuzzaman@myrealbox.com&gt;\n&quot;
++&quot;Language-Team: Malay &lt;translation-team-ms@lists.sourceforge.net&gt;\n&quot;
++&quot;Language: ms\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++
++# ok button label
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;OK&quot;
++
++# cancel button label
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Batal&quot;
++
++# reboot button label
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Ulangbut&quot;
++
++# continue button label
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Teruskan&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Boot Microsoft Windows&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux dengan kernel %s&quot;
++
++# dialog title for ftp installation
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Pemasangan FTP&quot;
++
++#. txt_manual_install
++#, fuzzy
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Pemasangan Pakej&quot;
++
++#. txt_noacpi_install
++#, fuzzy
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Pemasangan--IOAPIC Dimatikan&quot;
++
++#. txt_safe_install
++#, fuzzy
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Ubah seting latar belakang&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Boot Mandriva Linux 2009 Spring&quot;
++
++#. txt_boot_harddisk
++#, fuzzy
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Kembalikan dari Cakera Keras.&quot;
++
++#. txt_rescue
++#, fuzzy
++msgid &quot;Rescue System&quot;
++msgstr &quot;Sistem untuk diselamatkan&quot;
++
++#. txt_memtest
++#, fuzzy
++msgid &quot;Memory Test&quot;
++msgstr &quot;Ujian Kevins&quot;
++
++#. txt_bootoptions
++#, fuzzy
++msgid &quot;Boot Options&quot;
++msgstr &quot;Pilihan Bina&quot;
++
++# window title for exit dialog
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++#, fuzzy
++msgid &quot;Exiting...&quot;
++msgstr &quot;Keluar...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Bantuan&quot;
++
++# window title for kernel loading (see txt_load_kernel)
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++#, fuzzy
++msgid &quot;Starting...&quot;
++msgstr &quot;Mulakan %s: &quot;
++
++# Keep the three newlines!
++#. Keep the three newlines!
++#. txt_load_kernel
++#, fuzzy
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;Linux dengan kernel %s&quot;
++
++# Keep the three newlines!
++#. Keep the three newlines!
++#. txt_load_memtest
++#, fuzzy
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;Memuatkan jurupacu %s...&quot;
++
++# info box title
++#. info box title
++#. txt_info_title
++#, fuzzy
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Pemuat but&quot;
++
++# error box title
++#. error box title
++#. txt_error_title
++#, fuzzy
++msgid &quot;I/O Error&quot;
++msgstr &quot;Ralat I/O&quot;
++
++# boot disk change dialog title
++#. boot disk change dialog title
++#. txt_change_disk_title
++#, fuzzy
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Gantung Ke Cakera&quot;
++
++#. txt_insert_disk
++#, fuzzy, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Masukkan Cekera Jurupacu&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++
++# password dialog title
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Katalaluan&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;&quot;
++
++# dvd warning title
++#. dvd warning title
++#. txt_dvd_warning_title
++#, fuzzy
++msgid &quot;DVD Error&quot;
++msgstr &quot;Ralat KMail&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++
++# power off dialog title
++#. power off dialog title
++#. txt_power_off_title
++#, fuzzy
++msgid &quot;Power Off&quot;
++msgstr &quot;Kawalan Kuasa&quot;
++
++#. txt_power_off
++#, fuzzy
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Sistem anda akan diulang but sekarang.&quot;
++
++# menu entry for hard disk installation
++#. menu entry for hard disk installation
++#. txt_harddisk
++#, fuzzy
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Cakera Keras&quot;
++
++# dialog title for hard disk installation
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Pemasangan Cakera Keras&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Direktori\n&quot;
++
++# dialog title for ftp installation
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;Pemasangan FTP&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Pelayan\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Katalaluan\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;&quot;
++
++# dialog title for nfs installation
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;Pemasangan NFS&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++#, fuzzy
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;Pemasangan Pakej&quot;
++
++# dialog title for http installation
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;Pemasangan HTTP&quot;
++
++# 'driver' as in '(hardware) driver update'
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Jurupacu&quot;
++
++# as in Windows Authentication Domain
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Domain\n&quot;
++
++# button label for other/more options
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Pilihan Lain&quot;
++
++# label for language selection
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Bahasa&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Pemasangan--IOAPIC Dihidupkan&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Pemasangan--IOAPIC Dimatikan&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Pemasangan--APIC Tempatan Dimatikan&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Ya&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Tidak&quot;
++
++# menu item for selecting a file
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Fail&quot;
++
++# input label: share as in &quot;Windows share&quot; (SMB)
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Kongsi\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;&quot;
++
++# 'driver' as in '(hardware) driver update'
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++#, fuzzy
++msgid &quot;Driver Update&quot;
++msgstr &quot;Jurupacu&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Pilihan Kernel&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++#, fuzzy
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Ubah seting latar belakang&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++#, fuzzy
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Sistem untuk diselamatkan&quot;
++
++# dialog title for ftp installation
++#. menu item
++#. txt_mediacheck
++#, fuzzy
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Pemasangan FTP&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Boot Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Pasang Mandriva Linux 2010 Spring&quot;
++
++# Keep the newlines and spaces after ':'!
++#, fuzzy
++#~ msgid &quot;&quot;
++#~ &quot;Enter your password: \n&quot;
++#~ &quot;\n&quot;
++#~ &quot;\n&quot;
++#~ msgstr &quot;Masukkan Nama Anda&quot;
++
++# dialog title for ISO installation
++#~ msgid &quot;Installation from ISO file&quot;
++#~ msgstr &quot;Pemasangan dari fail ISO&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkponbpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/nb.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/nb.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/nb.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,497 @@
++# translation of nb.po to Norwegian Bokmål
++# translation of nb.po to
++# translation of bootloader.nb.po to
++# translation of bootloader.po to
++# LANGUAGE translations for boot loader
++# Copyright (C) 2004 SUSE LINUX AG
++#
++# Olav Pettershagen &lt;olav.pettershagen@trysil.online.no&gt;, 2004, 2005.
++# Olav Pettershagen &lt;olav.pet@online.no&gt;, 2005.
++# Olav Dahlum &lt;odahlum@gmail.com&gt;, 2009.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: nb\n&quot;
++&quot;PO-Revision-Date: 2009-12-01 22:39+0100\n&quot;
++&quot;Last-Translator: Olav Dahlum &lt;odahlum@gmail.com&gt;\n&quot;
++&quot;Language-Team: Norwegian Bokmål &lt;cooker-i18n@mandrivalinux.org&gt;\n&quot;
++&quot;Language: \n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;OK&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Avbryt&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Start på nytt&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Fortsett&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Start Microsoft Windows&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Verktøy for maskinvareoppdagelse&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux med kjerne %s&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Kontroller installasjonsmedier&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Manuell installasjon&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Installering – ACPI avslått&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Installering – trygge innstillinger&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Start Mandriva Linux 2010 Spring (sikkermodus)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Start fra harddisk&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Redningssystem&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Minnekontroll&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Oppstartsalternativer&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Avslutter...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Du er i ferd med å avslutte den grafiske oppstartsmenyen\n&quot;
++&quot;og gå over til tekstmodus.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Hjelp&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Starter...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Laster Linux-kjerne\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Laster memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Oppstartslaster&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;Inn/ut-feil&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Endre oppstartsdisk&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Sett inn oppstartsdisken %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Dette er oppstartsdisk %u.\n&quot;
++&quot;Sett inn oppstartsdisk %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Dette er ikke en oppstartsdisk for &lt;product&gt;.\n&quot;
++&quot;Sett inn oppstartsdisk %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Passord&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Hold disketten med driveroppdateringer klar.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD-feil&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Dette er en tosidig DVD. Du har startet opp fra side to.\n&quot;
++&quot;\n&quot;
++&quot;Snu DVD-en og fortsett.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Slå av maskinen&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Hvil du avslutte nå?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Harddisk&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Harddiskinstallasjon&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Diskenhet (søker på alle disker hvis tomt)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Katalog\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP-installasjon&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Server\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Passord\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Bruker (anonym innlogging hvis tomt)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS-installasjon&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Bruker (bruker \&quot;guest\&quot; hvis tomt)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB-installasjon (delt Windows-ressurs)&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP-installasjon&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Driver&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Domene\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Andre valg&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Språk&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Installasjon--IOAPIC aktivert&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Installasjon--IOAPIC deaktivert&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Installasjon--Lokal APIC deaktivert&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Ja&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Nei&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Fil&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Delt ressurs\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Automatisk modus&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Manuell modus&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Konfigurer parametere for ZEN-partisjon&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Installerer eller oppdater ZEN-partisjon&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Installer oppstartslaster for ZEN-partisjon på nytt&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Ikke bruk ZEN-partisjon&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Bruk ZEN-partisjon&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Tekstmodus&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Fastvarekontroll&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;For å laste driveroppdateringer direkte fra CD-ROM,\n&quot;
++&quot;angi driveroppdateringsfilenes navn (adskilt\n&quot;
++&quot;av komma ',') her:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Kilde&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Grafisk modus&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Driveroppdatering&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Arkitektur&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Kjernevalg&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Standard&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Sikker modus&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Ikke bruk ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Ikke bruk lokal APIC&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Reparer installert system&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Kontroller installasjonsmedier&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Tastatur&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Last ned driveroppdatering&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Tast inn adresse for oppdateringen\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Feil arkitektur&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;Dette er en 32-bits datamaskin. Du kan ikke installere eller bruke 64-bits &quot;
++&quot;programvare på den.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Advarsel&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++&quot;Du er i ferd med å installere 32-bits programvare på en 64-bits datamaskin.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;Sett inn CD-ROM med driveroppdatering for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Sett inn igjen CD-en for Mandriva Linux.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;Gjenopprett reservekopi fra draksnapshot&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Start Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Installer Mandriva Linux 2010 Spring&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkponlpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/nl.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/nl.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/nl.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,501 @@
++# translation of bootloader.po to Nederlands
++# translation of bootloader.po to Dutch
++# translation of nl.po to Dutch
++# LANGUAGE translations for boot loader
++# Copyright (C) 2004 SUSE LINUX AG
++# Proefgelezen op 10-08-2005 door Henk Krus
++# Arthur &amp; Ettie Kerkmeester &lt;a.s.kerkmeester@hccnet.nl&gt;, 2004, 2005.
++# Rinse de Vries &lt;rinsedevries@kde.nl&gt;, 2005.
++# Reinout van Schouwen &lt;reinouts@gnome.org&gt;, 2009
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader\n&quot;
++&quot;PO-Revision-Date: 2009-04-05 19:50+0100\n&quot;
++&quot;Last-Translator: Reinout van Schouwen &lt;reinouts@gnome.org&gt;\n&quot;
++&quot;Language-Team: Dutch &lt;vertaling@vrijschrift.org&gt;\n&quot;
++&quot;Language: nl\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=n != 1;\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;OK&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Annuleren&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Herstarten&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Doorgaan&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Microsoft Windows opstarten&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Hulpprogramma voor apparatuurdetectie&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux met kernel %s&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Installatie&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Handmatige installatie&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Installatie - ACPI uitgeschakeld&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Installatie - Veilige instellingen&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Mandriva Linux 2010 Spring opstarten (veilige modus)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Van harde schijf opstarten&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Reddingssysteem&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Geheugentest&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Opstartopties&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Beëindigen...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;U gaat het grafische opstartmenu verlaten en\n&quot;
++&quot;de interface wordt nu opgestart in tekstmodus.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Hulp&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Starten...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Linux-kernel wordt geladen\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Memtest86 wordt geladen\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Bootloader&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;I/O-fout&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Opstartdiskette wijzigen&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Plaats opstartdiskette %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Dit is opstartdiskette %u.\n&quot;
++&quot;Plaats a.u.b. opstartdiskette %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Dit is geen opstartdiskette van &lt;product&gt;.\n&quot;
++&quot;Plaats a.u.b. opstartdiskette %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Wachtwoord&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Houdt uw diskette met de stuurprogramma-opwaardering gereed.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD-fout&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Dit is een dubbelzijdige DVD. U heeft met kant twee opgestart.\n&quot;
++&quot;\n&quot;
++&quot;Draai de DVD om en ga dan verder.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Computer uitschakelen&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Wilt u nu het systeem stoppen?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Harde schijf &quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Installatie van harde schijf&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Schijfapparaat (indien leeg: alle schijven doorzoeken)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Map\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP-installatie&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Server\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Wachtwoord\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Gebruiker (indien leeg: anonieme aanmelding)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS-installatie&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Gebruiker (indien leeg: \&quot;guest\&quot; gebruiken)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB-installatie (Windows-netwerk)&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP-installatie&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Stuurprogramma&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Domein\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Andere opties&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Taal&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Installatie - IOAPIC ingeschakeld&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Installatie - IOAPIC uitgeschakeld&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Installatie - Local APIC uitgeschakeld&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Ja&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Nee&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Bestand&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Gedeelde map\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Automatisch&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Handmatig&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Parameters op ZEN-partitie instellen&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;ZEN-partitie installeren/opwaarderen&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Bootloader voor ZEN-partitie herinstalleren&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;ZEN-partitie uitschakelen&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;ZEN-partitie inschakelen&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Tekstmodus&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Firmware-test&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Om stuurprogramma-herzieningen direct van cd-rom te laden,\n&quot;
++&quot;voer hier de bestandsnamen in van de stuurprogramma-herzieningen\n&quot;
++&quot;(gescheiden door komma's ','):\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Bron&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Videomodus&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Stuurprogramma-herziening&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Arch&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Kernel-optie&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Standaard&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Veilige instellingen&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Geen ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Geen lokale APIC&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Geïnstalleerd systeem repareren&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Controleer installatiemedia&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Toetsenbord&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Herzien stuurprogramma downloaden&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;URL voor stuurprogramma-herzieningen invoeren\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Verkeerde architectuur&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++#, fuzzy
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;Dit is een 32-bit-computer. U kunt er geen 64-bit-software op gebruiken.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Waarschuwing&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++&quot;U staat op het punt om 32-bit-software op een 64-bit-computer te installeren.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;Plaats de cd-rom met stuurprogrammaherziening voor\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Plaats de Mandriva Linux cd-rom terug in het station.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;Draksnapshot-reservekopie herstellen&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Mandriva Linux 2010 Spring opstarten&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Mandriva Linux 2010 Spring installeren&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;Linux - Veilige instellingen&quot;
++
++#~ msgid &quot;Kernel&quot;
++#~ msgstr &quot;Kernel&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkponnpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/nn.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/nn.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/nn.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,539 @@
++# Translation of mandriva-gfxboot-theme to Norwegian Nynorsk
++#
++# Karl Ove Hufthammer &lt;karl@huftis.org&gt;, 2006, 2007, 2008, 2009, 2010.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader\n&quot;
++&quot;POT-Creation-Date: 2005-07-27 11:49+0200\n&quot;
++&quot;PO-Revision-Date: 2010-01-31 11:29+0100\n&quot;
++&quot;Last-Translator: Karl Ove Hufthammer &lt;karl@huftis.org&gt;\n&quot;
++&quot;Language-Team: Norwegian Nynorsk &lt;i18n-nn@lister.ping.uio.no&gt;\n&quot;
++&quot;Language: nn\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: Lokalize 1.0\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++# ok button label
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;OK&quot;
++
++# cancel button label
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Avbryt&quot;
++
++# reboot button label
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Start på nytt&quot;
++
++# continue button label
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Hald fram&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Start Microsoft Windows&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Maskinvareoppdaging&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux med kjernen %s&quot;
++
++# dialog title for ftp installation
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Kontroller installasjonsmedium&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Manuell installering&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Installering – ACPI avslått&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Installering – trygge innstillingar&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Start Mandriva Linux 2010 – vårutgåve (sikkermodus)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Start frå harddisk&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Redningssystem&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Minnekontroll&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Oppstartsval&quot;
++
++# window title for exit dialog
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Avsluttar …&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Du er i ferd med å avslutta den grafiske\n&quot;
++&quot;oppstartsmenyen og gå over til tekstmodus.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Hjelp&quot;
++
++# window title for kernel loading (see txt_load_kernel)
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Startar …&quot;
++
++# Keep the three newlines!
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Lastar Linux-kjerne\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++# Keep the three newlines!
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Lastar memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++# info box title
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Oppstartslastar&quot;
++
++# error box title
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;Inn/ut-feil&quot;
++
++# boot disk change dialog title
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Byt oppstartdisk&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Set inn oppstartsdisken «%u».&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Dette er oppstartsdisk «%u».\n&quot;
++&quot;Set inn oppstartsdisk «%u».&quot;
++
++# &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Dette er ikkje ein oppstartsdisk for &lt;product&gt;.\n&quot;
++&quot;Set inn oppstartsdisken «%u».&quot;
++
++# password dialog title
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Passord&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Hent fram disketten med drivaroppdateringar.&quot;
++
++# dvd warning title
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD-feil&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Dette er ein tosidig DVD. Du har starta opp frå side to.\n&quot;
++&quot;\n&quot;
++&quot;Snu DVD-en og hald så fram.&quot;
++
++# power off dialog title
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Slå av maskina&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Vil du stengja ned maskina no?&quot;
++
++# menu entry for hard disk installation
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Harddisk&quot;
++
++# dialog title for hard disk installation
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Harddisk-installering&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Diskeining (søkjer på alle diskar viss tom)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Mappe\n&quot;
++
++# dialog title for ftp installation
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP-installering&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Tenar\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Passord\n&quot;
++
++# label for ftp user input
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Brukar (anonym innlogging viss tom)\n&quot;
++
++# dialog title for nfs installation
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS-installering&quot;
++
++# label for smb user input
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Brukar (brukar «guest» viss tom)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB-installering (delt Windows-område)&quot;
++
++# dialog title for http installation
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP-installering&quot;
++
++# 'driver' as in '(hardware) driver update'
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Drivar&quot;
++
++# as in Windows Authentication Domain
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Domene\n&quot;
++
++# button label for other/more options
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Andre val&quot;
++
++# label for language selection
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Språk&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Installering – IOAPIC slått på&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Installering – IOAPIC slått av&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Installation – lokal APIC slått av&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Ja&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Nei&quot;
++
++# menu item for selecting a file
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Fil&quot;
++
++# input label: share as in &quot;Windows share&quot; (SMB)
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Delt område\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Automatisk&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Manuell&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Set opp parametrar på ZEN-partisjon&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Installer eller oppdater ZEN-partisjon&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Legg til oppstartslastar til ZEN-partisjon på nytt&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Ikkje bruk ZEN-partisjon&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Bruk ZEN-partisjon&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Tekstmodus&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Fastvaretest&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Viss du vil lasta drivaroppdateringar rett frå\n&quot;
++&quot;ein CD-ROM, kan du skriva inn filnamna (skilde\n&quot;
++&quot;med komma) her:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Kjelde&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Videmodus&quot;
++
++# 'driver' as in '(hardware) driver update'
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Drivaroppdatering&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Arkitektur&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Kjerneval&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Standard&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Trygt oppsett&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Ingen ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Ingen lokal APIC&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Reparer installert system&quot;
++
++# dialog title for ftp installation
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Kontroller installasjonsmedium&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Tastatur&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Last ned drivaroppdatering&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Skriv inn adressa til drivaroppdateringa\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Feil arkitektur&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;Dette er ei 32-bits maskin. Du kan derfor ikkje køyra eller installera 64-&quot;
++&quot;bits programvare på ho.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Åtvaring&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++&quot;Du er i ferd med å installera 32-bits programvare på ei 64-bits maskin.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;Set inn drivaroppdaterings-CD-en for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Set inn att CD-en for Mandriva Linux.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;Gjenopprett reservekopi frå draksnapshot&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Start Mandriva Linux 2010 – vårutgåve&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Installer Mandriva Linux 2010 – vårutgåve&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;Linux – trygt oppsett&quot;
++
++# Keep the newlines and spaces after ':'!
++#~ msgid &quot;&quot;
++#~ &quot;Enter your password: \n&quot;
++#~ &quot;\n&quot;
++#~ &quot;\n&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Skriv inn passordet ditt: \n&quot;
++#~ &quot;\n&quot;
++#~ &quot;\n&quot;
++
++# dialog title for ISO installation
++#~ msgid &quot;Installation from ISO file&quot;
++#~ msgstr &quot;Installering frå ISO-fil&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpopapo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/pa.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/pa.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/pa.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,496 @@
++# translation of bootloader.pa.po to Panjabi
++# translation of bootloader.po to Panjabi
++# LANGUAGE translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++# Amanpreet Singh Alam[ਆਲਮ] &lt;amanpreetalam@yahoo.com&gt;, 2005.
++# Amanpreet Singh Alam[ਆਲਮ] &lt;amanpreetalam@yahoo.com&gt;, 2005.
++# Amanpreet Singh Alam[ਆਲਮ] &lt;amanpreetalam@yahoo.com&gt;, 2005.
++# Amanpreet Singh Alam[ਆਲਮ] &lt;amanpreetalam@yahoo.com&gt;, 2005.
++# Amanpreet Singh Alam[ਆਲਮ] &lt;amanpreetalam@yahoo.com&gt;, 2005.
++# Amanpreet Singh Alam[ਆਲਮ] &lt;amanpreetalam@yahoo.com&gt;, 2005.
++# Amanpreet Singh Alam[ਆਲਮ] &lt;amanpreetalam@yahoo.com&gt;, 2005.
++# Amanpreet Singh Alam[ਆਲਮ] &lt;amanpreetalam@yahoo.com&gt;, 2005.
++# Amanpreet Singh Alam[ਆਲਮ] &lt;amanpreetalam@yahoo.com&gt;, 2005.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader.pa\n&quot;
++&quot;POT-Creation-Date: \n&quot;
++&quot;PO-Revision-Date: 2008-11-11 08:07+0530\n&quot;
++&quot;Last-Translator: KDB &lt;brar.kd@gmail.com&gt;\n&quot;
++&quot;Language-Team: Panjabi &lt;punjabi-l10n@list.sf.net&gt;\n&quot;
++&quot;Language: \n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=n != 1;\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;ਠੀਕ ਹੈ&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;ਰੱਦ ਕਰੋ&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;ਮੁੜ-ਚਾਲੂ&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;ਜਾਰੀ ਰੱਖੋ&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;ਇੰਸਟਾਲੇਸ਼ਨ&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;ਖੁਦ ਇੰਸਟਾਲੇਸ਼ਨ&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;ਇੰਸਟਾਲੇਸ਼ਨ--ACPI ਆਯੋਗ&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;ਇੰਸਟਾਲੇਸ਼ਨ--ਸੁਰੱਖਿਅਤ ਸੈਟਿੰਗ&quot;
++
++#. txt_safe_linux
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;ਹਾਰਡ ਡਿਸਕ ਤੋਂ ਬੂਟ&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;ਸੰਕਟਕਾਲੀਨ ਸਿਸਟਮ&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;ਮੈਮੋਰੀ ਟੈਸਟ&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;ਬੂਟ ਚੋਣਾਂ&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;ਬੰਦ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;ਤੁਸੀਂ ਗਰਾਫਿਕਲ ਬੂਟ ਮੇਨੂ ਛੱਡ ਕੇ ਟੈਕਸਟ ਢੰਗ ਨਾਲ ਇੰਟਰਫੇਸ ਸ਼ੁਰੂ\n&quot;
++&quot;ਕਰ ਰਹੇ ਹੋ।&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;ਮੱਦਦ&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;ਸ਼ੁਰੂ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;ਲੀਨਕਸ ਕਰਨਲ ਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;memtest86 ਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;ਬੂਟ ਲੋਡਰ&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;I/O ਗਲਤੀ&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;ਬੂਟ ਡਿਸਕ ਬਦਲੋ&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;ਬੂਟ ਡਿਸਕ %u ਪਾਓ&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;ਇਹ ਬੂਟ ਡਿਸਕ %u ਹੈ।\n&quot;
++&quot;ਬੂਟ ਡਿਸਕ %u ਪਾਓ।&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;ਇਹ &lt;product&gt; ਬੂਟ ਡਿਸਕ ਨਹੀਂ ਹੈ।\n&quot;
++&quot;ਬੂਟ ਡਿਸਕ %u ਪਾਓ ਜੀ।&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;ਪਾਸਵਰਡ&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;ਆਪਣੀ ਡਰਾਇਵਰ ਅੱਪਡੇਟ ਫਲਾਪੀ ਤਿਆਰ ਰੱਖੋ।&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD ਗਲਤੀ&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;ਇਹ ਦੋਹਰੀ ਪਰਤ DVD ਹੈ। ਤੁਹਾਨੂੰ ਦੂਜੇ ਪਾਸੇ ਤੋਂ ਬੂਟ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ।\n&quot;
++&quot;\n&quot;
++&quot;ਜਾਰੀ ਰੱਖਣ ਲਈ DVD ਨੂੰ ਪਲਟੋ।&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;ਬੰਦ ਕਰੋ&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;ਕੀ ਹੁਣੇ ਸਿਸਟਮ ਬੰਦ ਕਰਨਾ ਹੈ?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;ਹਾਰਡ ਡਿਸਕ&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;ਹਾਰਡ ਡਿਸਕ ਇੰਸਟਾਲੇਸ਼ਨ&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;ਡਿਸਕ ਜੰਤਰ (ਜੇਕਰ ਖਾਲੀ ਹੈ ਤਾਂ ਸਭ ਡਿਸਕਾਂ ਦੀ ਜਾਂਚ)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;ਡਾਇਰੈਕਟਰੀ\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP ਇੰਸਟਾਲੇਸ਼ਨ&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;ਸਰਵਰ\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;ਪਾਸਵਰਡ\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;ਯੂਜ਼ਰ (ਅਗਿਆਤ ਲਾਗਇਨ, ਜੇਕਰ ਖਾਲੀ ਹੈ ਤਾਂ)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS ਇੰਸਟਾਲੇਸ਼ਨ&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;ਯੂਜ਼ਰ (ਜੇਕਰ ਖਾਲੀ ਹੋਇਆ ਤਾਂ \&quot;guest\&quot; ਵਰਤੇਗਾ)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB (Windows ਸਾਂਝ) ਇੰਸਟਾਲੇਸ਼ਨ&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP ਇੰਸਟਾਲੇਸ਼ਨ&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;ਡਰਾਇਵਰ&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;ਡੋਮੇਨ\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;ਹੋਰ ਚੋਣਾਂ&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;ਭਾਸ਼ਾ&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;ਇੰਸਟਾਲੇਸ਼ਨ--IOAPIC ਯੋਗ ਹੈ&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;ਇੰਸਟਾਲੇਸ਼ਨ--IOAPIC ਆਯੋਗ ਹੈ&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;ਇੰਸਟਾਲੇਸ਼ਨ-ਲੋਕਲ APIC ਆਯੋਗ ਹੈ&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;ਹਾਂ&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;ਨਹੀਂ&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;ਫਾਇਲ&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;ਸਾਂਝ\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;ਆਟੋਮੈਟਿਕ ਮੋਡ&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;ਦਸਤੀ ਮੋਡ&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;ZEN ਪਾਰਟੀਸ਼ਨ ਉੱਤੇ ਪੈਰਾਮੀਟਰ ਸੰਰਚਨਾ&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;ZEN ਪਾਰਟੀਸ਼ਨ ਇੰਸਟਾਲ ਜਾਂ ਅੱਪਡੇਟ&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;ZEN ਪਾਰਟੀਸ਼ਨ ਬੂਟ ਲੋਡਰ ਮੁੜ-ਇੰਸਟਾਲ&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;ZEN ਪਾਰਟੀਸ਼ਨ ਆਯੋਗ&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;ZEN ਪਾਰਟੀਸ਼ਨ ਯੋਗ&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;ਟੈਕਸਟ ਮੋਡ&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;ਫਾਇਰਮਵੇਅਰ ਟੈਸਟ&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;CD-ROM ਤੋਂ ਡਰਾਇਵਰ ਅੱਪਡੇਟ ਸਿੱਧਾ ਲੋਡ ਕਰਨ ਲਈ,\n&quot;
++&quot;ਅੱਪਡੇਟ ਡਰਾਇਵਰ ਫਾਇਲ ਨਾਂ ਇੱਥੇ ਦਿਓ (',' ਨਾਲ ਵੱਖ\n&quot;
++&quot;ਕਰਕੇ):\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;ਸਰੋਤ&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;ਵੀਡਿਓ ਮੋਡ&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;ਡਰਾਇਵਰ ਅੱਪਡੇਟ&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;ਢਾਂਚਾ&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++#, fuzzy
++msgid &quot;Kernel Option&quot;
++msgstr &quot;ਹੋਰ ਚੋਣਾਂ&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;ਡਿਫਾਲਟ&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;ਸੁਰੱਖਿਅਤ ਸੈਟਿੰਗ&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;ACPI ਨਹੀਂ&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;ਲੋਕਲ APIC ਨਹੀਂ&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;ਇੰਸਟਾਲ ਹੋਇਆ ਸਿਸਟਮ ਰਿਪੇਅਰ&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;ਇੰਸਟਾਲੇਸ਼ਨ ਮੀਡਿਆ ਚੈੱਕ ਕਰੋ&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;ਕੀਬੋਰਡ&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;ਲੀਨਕਸ--ਸੁਰੱਖਿਅਤ ਸੈਟਿੰਗ&quot;
++
++#~ msgid &quot;Kernel&quot;
++#~ msgstr &quot;ਕਰਨਲ&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpoplpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/pl.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/pl.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/pl.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,495 @@
++# translation of bootloader.po to
++# translation of pl.po to
++# translation of pl.po to
++# LANGUAGE translations for boot loader
++# Copyright (C) 2004 SUSE LINUX AG
++#
++# Wojciech Kapusta &lt;wojciech@aviary.pl&gt;, 2006.
++# Amazis.net sp. z o.o. - Tomasz Bednarski &lt;tomasz.bednarski@amazis.pl&gt;, 2009.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader\n&quot;
++&quot;POT-Creation-Date: \n&quot;
++&quot;PO-Revision-Date: 2010-02-18 15:03+0100\n&quot;
++&quot;Last-Translator: Marek Walczak &lt;kubdat@poczta.fm&gt;\n&quot;
++&quot;Language-Team: &lt;pl@li.org&gt;\n&quot;
++&quot;Language: \n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;OK&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Anuluj&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Uruchom ponownie&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Kontynuuj&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Uruchom Microsoft Windows&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Program do detekcji sprzętu&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Jądro Linuksa %s&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Sprawdzenie płyty instalacyjnej&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Instalacja ręczna&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Instalacja (bez ACPI)&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Instalacja (bezpieczne ustawienia)&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Uruchom Mandriva Linux 2010 spring (tryb awaryjny)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Uruchomienie z dysku twardego&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;System ratunkowy&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Test pamięci&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Opcje uruchamiania&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Zamykanie...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Nastąpi zamknięcie graficznego menu rozruchowego\n&quot;
++&quot;i uruchomienie interfejsu tekstowego.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Pomoc&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Uruchamianie...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Wczytywanie jądra systemu Linux\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Wczytywanie memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Program rozruchowy&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;Błąd wejścia/wyjścia&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Zmiana dysku rozruchowego&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Proszę umieścić dysk startowy %u w napędzie.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;W napędzie znajduje się dysk startowy %u.\n&quot;
++&quot;Proszę włożyć dysk startowy %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;To nie jest dysk startowy systemu &lt;product&gt;.\n&quot;
++&quot;Proszę włożyć dysk startowy %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Hasło&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Proszę przygotować dyskietkę z uaktualnieniami sterowników.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;Błąd DVD&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;To jest dwustronna płyta DVD. System został uruchomiony\n&quot;
++&quot;z drugiej strony płyty.\n&quot;
++&quot;Proszę odwrócić płytę.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Wyłączanie&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Czy zatrzymać system?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Dysk twardy&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Instalacja na dysku twardym&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Dysk (skanuje wszystkie dyski, jeśli puste)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Katalog\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;Instalacja FTP&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Serwer\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Hasło\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Użytkownik (używa \&quot;anonymous\&quot; jeśli puste)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;Instalacja NFS&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Użytkownik (używa \&quot;guest\&quot;, jeśli puste)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;Instalacja SMB (udział dyskowy Windows)&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;Instalacja HTTP&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Sterownik&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Domena\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Inne opcje&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Język&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Instalacja (z IOAPIC)&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Instalacja (bez IOAPIC)&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Instalacja (bez lokalnego APIC)&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Tak&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Nie&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Plik&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Zasób\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Tryb automatyczny&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Tryb ręczny&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Konfiguruj parametry partycji ZEN&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Instaluj lub aktualizuj partycję ZEN&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Zainstaluj ponownie program rozruchowy z partycji ZEN&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Wyłącz partycję ZEN&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Włącz partycję ZEN&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Tryb tekstowy&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Test oprogramowania sprzętu&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Aby załadować aktualizacje sterowników \n&quot;
++&quot;bezpośrednio z CD, proszę podac nazwy plików\n&quot;
++&quot;z aktualizacjami (oddzielone przecinkami ','):\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Źródło&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Tryb graficzny&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Aktualizacja sterowników&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Arch&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Opcje jądra&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Domyślne&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Bezpieczne ustawienia&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Bez ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Bez lokalnego APIC&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Naprawa systemu&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Sprawdzenie płyty instalacyjnej&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Klawiatura&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Pobierz aktualizację sterownika&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Wprowadź adres URL aktualizacji sterownika\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Nieprawidłowa architektura&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;To jest komputer 32-bitowy. Nie możesz używać na nim oprogramowania 64-&quot;
++&quot;bitowego.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Ostrzeżenie&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++&quot;Zamierzasz instalować oprogramowanie 32-bitowe na komputerze 64-bitowym.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;Włóż płytę CD-ROM z aktualizacjami sterowników dla\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Włóż ponownie płytę Mandriva Linux.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;Przywróć kopię utworzoną przez draksnapshot&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Uruchom Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Zainstaluj Mandriva Linux 2010 Spring&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpoptpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/pt.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/pt.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/pt.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,500 @@
++# translation of pt.po to portuguese
++# LANGUAGE translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++# Antonio Cardoso Martins &lt;digiplan@netvisao.pt&gt;, 2005.
++# Elisio Andre Martins Catana &lt;eacatana@netvisao.pt&gt;, 2005.
++# Zé &lt;ze@mandriva.org&gt;, 2010.
++# Zé &lt;ze@mandriva.org&gt;, 2010.
++# Thanks to contributions made by Sérgio Marques &lt;smarquespt@gmail.com&gt;, 2010
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader.pt\n&quot;
++&quot;Report-Msgid-Bugs-To: https://qa.mandriva.com\n&quot;
++&quot;POT-Creation-Date: \n&quot;
++&quot;PO-Revision-Date: 2010-06-14 16:20+0100\n&quot;
++&quot;Last-Translator: Zé &lt;ze@mandriva.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: Lokalize 1.0\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;OK&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Cancelar&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Reiniciar&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Continuar&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Arrancar Microsoft Windows&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Ferramenta de Detecção de Material&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux com kernel %s&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Instalação&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Instalação Manual&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Instalação--ACPI Desactivado&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Instalação--Definições de Segurança&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Arrancar Mandriva Linux 2010 Spring (modo seguro)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Arrancar do Disco Rígido&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Sistema de Recuperação&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Teste de Memória&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Opções de Arranque&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;A sair...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Está a sair do menu de arranque gráfico\n&quot;
++&quot;e a iniciar o interface em modo texto.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Ajuda&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;A iniciar...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;A carregar Kernel do Linux\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;A carregar memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Carregador de Arranque&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;Erro de E/S&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Mudar Disco de Arranque&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Inserir disco de arranque %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Este é o disco de arranque %u.\n&quot;
++&quot;Insira o disco de arranque %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Este não é um disco de arranque &lt;product&gt;.\n&quot;
++&quot;Insira o disco de arranque %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Senha&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Tenha a sua disquete de actualização do controlador preparada.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;Erro no DVD&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Este é um DVD com informação nos dois lados. Arrancou pelo segundo lado.\n&quot;
++&quot;\n&quot;
++&quot;Vire o DVD e continue.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Desligar&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Desligar o sistema agora?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Disco Rígido&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Instalação do Disco Rígido&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Dispositivo do Disco (Analisar Todos os Discos, caso estejam vazios)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Directório\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;Instalação FTP&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Servidor\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Senha\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Utilizador (Autenticação Anónima Se Vazio)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;Instalação NFS&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Utilizador (Usar \&quot;guest\&quot; Se Vazio)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;Instalação SMB (Partilha Windows)&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;Instalação HTTP&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Controlador&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Domínio\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Outras Opções&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Língua&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Instalação--IOAPIC Activada&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Instalação--IOAPIC Desactivada&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Instalação--APIC Local Desactivada&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Sim&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Não&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Ficheiro&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Partilha\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Modo Automático&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Modo Manual&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Configurar Parâmetros na Partição ZEN&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Instalar ou Actualizar Partição ZEN&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Reinstalar Gestor de Arranque da Partição ZEN&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Desactivar Partição ZEN&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Activar Partição ZEN&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Modo Texto&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Testar Firmware&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Para carregar actualizações de controladores\n&quot;
++&quot;directamente do CD-ROM, indique aqui o nome dos\n&quot;
++&quot;ficheiros de actualização (separados por virgulas ','):\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Origem&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Modo Gráfico&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Actualização do Controlador&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Arquitectura&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Opção do Kernel&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Predefinido&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Definições de Segurança&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Sem ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Sem APIC Local&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Reparar Sistema Instalado&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Verificar Suporte de Instalação&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Teclado&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Transferir Actualização do Controlador&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Indique o URL de Actualização do Controlador\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Arquitectura errada&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;Este é um computador 32-bit. Não pode aqui usar ou instalar programas 64-bit.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Aviso&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;Está prestes a instalar programas 32-bit num computador 64-bit.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;Insira o CD-ROM de actualização do controlador para\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Coloque o CD-ROM Mandriva Linux novamente no dispositivo.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;Restaurar salvaguarda draksnapshot&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Arrancar Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Instalar Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;Linux--Definições de Segurança&quot;
++
++#~ msgid &quot;Kernel&quot;
++#~ msgstr &quot;Kernel&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpopt_BRpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/pt_BR.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/pt_BR.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/pt_BR.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,495 @@
++# translation of pt_BR.po to Brazilian portuguese
++# LANGUAGE translations for boot loader
++# Copyright (C) 2004 SUSE LINUX AG
++#
++# Sergio Rafael Lemke &lt;sergio@mandriva.com.br&gt;, 2009.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: pt_BR\n&quot;
++&quot;POT-Creation-Date: \n&quot;
++&quot;PO-Revision-Date: 2009-08-17 18:05-0300\n&quot;
++&quot;Last-Translator: \n&quot;
++&quot;Language-Team: Brazilian Portuguese &lt;kde-i18n-doc@kde.org&gt;\n&quot;
++&quot;Language: pt_BR\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=n&gt;1;\n&quot;
++&quot;X-Poedit-Language: Portuguese\n&quot;
++&quot;X-Poedit-Country: BRAZIL\n&quot;
++&quot;X-Poedit-SourceCharset: utf-8\n&quot;
++&quot;X-Generator: Lokalize 0.3\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;OK&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Cancelar&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Reiniciar&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Continuar&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Iniciar Microsoft Windows&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Ferramenta de Detecção de Hardware&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux com kernel %s&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Verificar a Mídia de Instalação&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Instalação Manual&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Instalação com ACPI Desabilitada&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Instalar Mandriva Linux em Modo de Segurança&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Iniciar Mandriva Linux 2010 Spring (modo seguro)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Inicializar do Disco Rígido&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Sistema de Recuperação&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Teste de Memória&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Opções de Inicialização&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Saindo...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Você está saindo do menu de inicialização gráfica\n&quot;
++&quot;e iniciando a interface em modo de texto.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Ajuda&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Iniciando...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Carregando kernel do Linux\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Carregando memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Carregador de Inicialização&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;Erro de E/S&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Alterar o Disco de Inicialização&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Inserir o Disco de Inicialização %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Este é o Disco de Inicialização %u.\n&quot;
++&quot;Insira o Disco de Inicialização %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Este não é um Disco de Inicialização do &lt;product&gt;.\n&quot;
++&quot;Insira o Disco de Inicialização %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Senha&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Tenha o Disquete de Atualização de Driver Pronto.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;Erro no DVD&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Este é um DVD de Dois Lados. Você fez a Inicialização pelo Segundo lado.\n&quot;
++&quot;\n&quot;
++&quot;Vire o DVD e Continue.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Desligar&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Desligar o Sistema Agora ?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Disco Rígido&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Instalação em Disco Rígido&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Dispositivo de Disco (Varre todos os Discos se Vazio)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Diretório\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;Instalação por FTP&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Servidor\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Senha\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Usuário (Efetua login anônimo se vazio)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;Instalação por NFS&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Usuário (utiliza \&quot;guest\&quot; se Vazio)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;Instalação por SMB (Compartilhamento Windows)&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;Instalação por HTTP&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Driver&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Domínio\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Outras Opções&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Idioma&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Instalação--IOAPIC Habilitada&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Instalação--IOAPIC Desabilitada&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Instalação--APIC Local Desabilitada&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Sim&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Não&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Arquivo&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Compartilhamento\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Modo Automático&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Modo Manual&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Configurar os Parâmetros na Partição ZEN&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Instalar ou Atualizar Partição ZEN&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Reinstalar o Carregador de Inicialização de Partições ZEN&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Desabilitar a Partição ZEN&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Habilitar a Partição ZEN&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Modo Texto&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Teste de Firmware&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Para Carregar Atualizações de Driver Diretamente do CD-ROM,\n&quot;
++&quot;Digite aqui os Nomes dos Arquivos de Atualização de Driver\n&quot;
++&quot;(Separado por Vírgulas ','):\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Fonte&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Modo de Vídeo&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Atualização de Driver&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Arquitetura&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Opção do Kernel&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Padrão&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Configurações Seguras&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Sem ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Sem APIC Local&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Reparar o Sistema Instalado&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Verificar a Mídia de Instalação&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Teclado&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Baixar Atualização do Driver&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Insira a URL com a Atualização do Driver\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Arquitetura Errada&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;Este é um computador de 32-bit. Você não pode usar ou instalar programas de &quot;
++&quot;64-bit nele.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Atenção&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;Você está prestes a instalar software 32-bit num computador de 64-bit&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;Insira o CD-ROM de atualização do drive\n&quot;
++&quot;para \&quot;%s\&quot;.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Recoloque o CD-ROM Mandriva Linux no drive.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;Restaurar Backup do Draksnapshot&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Iniciar Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Instalar Mandriva Linux 2010 Spring&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkporopo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/ro.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/ro.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/ro.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,529 @@
++# Copyright (c) 1999-2009 Mandriva
++#
++# Vă rugăm să nu actualizaţi fișierul, cu excepția cazului în care sînteți
++# sigur de calitatea traducerii dumneavoastră, de gramatică și de ortografie.
++# Acestea din urmă sînt de prea multe ori aproximative.
++# Corectarea lor ulterioară nu are nici un alt rezultat decît acela de
++# pierdere de timp pentru toata lumea.
++#
++# VĂ RUGĂM SĂ RESPECTAȚI SEMNELE DE PUNCTUAȚIE ALE LIMBII ROMÂNE!
++#
++# Nu suprimați spațiul care urmează unui semn de punctuație de sfîrșit de
++# frază; trebuie respectată versiunea originală. În acest caz, este foarte
++# probabil ca programul să afișeze un mesaj la sfîrșit. Suprimînd acel spațiu,
++# cele două cuvintele vor fi afișate legat.
++#
++# Traduceți de manieră INTELIGENTĂ (de ce nu și prin comparație cu alte
++# traduceri ale acestui fișier în alte limbi) și nu cuvînt cu cuvînt. Unele
++# astfel de traduceri nu au nici un sens în limba română.
++#
++# ATENȚIE LA FONTURILE UTILIZATE! Pentru a reda corect diacriticele folosiți
++# disponerea tastaturii românească standard, codarea de caractere UTF-8 și
++# asigurați-vă că fonturile utilizate sînt cu virgulițe, NU CU SEDILE!
++# Exemplu:
++# font incorect (cu sedile): şŞ ţŢ
++# font corect (cu virgule): șȘ țȚ
++#
++# Pentru a vă asigura că folosiți fonturile corecte, vizitați:
++# http://i18n.ro/Fonturi_romanesti/testare
++#
++# Vă mulțumim pentru înțelegere.
++# Echipa de traducători,
++# www.Mandrivausers.ro
++#
++# Traducători de-a lungul timpului:
++#
++#
++# Claudiu COSTIN &lt;claudiuc@kde.org&gt;, 2004.
++# Florin Cătălin RUSSEN &lt;cfrussen@yahoo.co.uk&gt;, 2009.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader\n&quot;
++&quot;Report-Msgid-Bugs-To: https://qa.mandriva.com\n&quot;
++&quot;POT-Creation-Date: \n&quot;
++&quot;PO-Revision-Date: 2010-05-10 22:45+0100\n&quot;
++&quot;Last-Translator: Florin Cătălin RUSSEN &lt;cfrussen@yahoo.co.uk&gt;\n&quot;
++&quot;Language-Team: Romanian &lt;cfrussen@yahoo.co.uk&gt;\n&quot;
++&quot;Language: ro\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=3;plural=(n==1?0:(((n%100&gt;19)||((n%100==0)&amp;&amp;(n!=0)))?&quot;
++&quot;2:1))\n&quot;
++&quot;X-Generator: Lokalize 0.3\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;OK&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Anulează&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Repornește&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Continuă&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Pornește Microsoft Windows&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Unealtă de detectat componentele materiale&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux cu nucleu %s&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Verifică mediul de instalare&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Instalare manuală&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Instalare--ACPI dezactivat&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Instalare--Opțiuni sigure&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Pornește Mandriva Linux 2010 Spring (mod degradat)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Pornește de pe discul dur&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Recuperează sistemul&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Test de memorie&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Opțiuni de pornire&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Ieșire...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Acum părăsiți modul grafic de pornire\n&quot;
++&quot;și intrați în interfața text.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Ajutor&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Pornire...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Se încarcă nucleul Linux\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Se încarcă memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Încărcător de sistem&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;Eroare I/O&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Schimbați discul de pornire&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Introduceți discul de pornire %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Aceasta este discul de pornire %u.\n&quot;
++&quot;Introduceți discul de pornire %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Acesta nu este un disc de pornire &lt;product&gt;.\n&quot;
++&quot;Introduceți discul %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Parolă&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Pregătiți discheta cu piloții actualizați.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;Eroare de DVD&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Acesta este un DVD cu două fețe. Ați pornit sistemul de pe a doua față.\n&quot;
++&quot;\n&quot;
++&quot; Întoarceți DVD-ul și apoi continuați.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Oprire&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Opriți sistemul acum?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Disc dur&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Instalare de pe discul dur&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Dispozitive disc (caută toate discurile dacă nu este specificat)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Director\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;Instalare prin FTP&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Server\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Parolă\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Utilizator (anonim, dacă nu este specificat)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;Instalare prin NFS&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Utilizator (se utilizează „guest” dacă nu este specificat)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;Instalare prin SMB (partaj Windows)&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;Instalare prin HTTP&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Pilot&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Domeniu\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Alte opțiuni&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Limbă&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Instalare--IOAPIC activat&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Instalare--IOAPIC dezactivat&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Instalare--APIC local dezactivat&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Da&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Nu&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Fișier&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Partaj\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Mod automat&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Mod manual&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Configurați parametrii partiției ZEN&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Instalați sau actualizați o partiție ZEN&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Reinstalați încărcătorul de sistem al partiției ZEN&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Dezactivează partiția ZEN&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Activează partiția ZEN&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Mod text&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Test de microcod&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Pentru a încărca actualizările piloților direct de pe CD-ROM,\n&quot;
++&quot;introduceți aici numele fișierelor cu actualizări (separate prin\n&quot;
++&quot;virgulă ','):\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Sursă&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Mod video&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Actualizare de pilot&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Arhitectură&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Opțiune nucleu&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Implicit&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Opțiuni sigure&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Fără ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Fără APIC local&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Repară sistemul instalat&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Verifică mediul de instalare&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Tastatură&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Descarcă actualizarea de pilot&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Introduceți URL de actualizare pilot\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Arhitectură greșită&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;Acesta este un calculator pe 32 de biți. Nu puteți utiliza pe el aplicații &quot;
++&quot;pe 64 de biți.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Avertisment&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++&quot;Sînteți pe cale să instalați programe pe 32 de biți pe un calculator pe 64 &quot;
++&quot;de biți.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;Introduceți CD-ul cu pilotul actualizat pentru\n&quot;
++&quot;„%s”.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Puneți discul optic cu Mandriva Linux înapoi în unitate.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;Restaurează salvgardarea draksnapshot&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Pornește Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Instalează Mandriva Linux 2010 Spring&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkporupo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/ru.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/ru.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/ru.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,499 @@
++# translation of ru.po to Russian
++# Translation of mandriva-gfxboot-theme messages to Russian
++# Copyright (C) 2004 SUSE LINUX AG
++# Copyright (C) 2004 Vdel CREC
++# Andrew Bogatov&lt;bert@bert2.crec.mipt.ru&gt;, 2004.
++# Aleksey Osipov &lt;aliks-os@yandex.ru&gt;, 2006.
++# Pavel Maryanov &lt;acid_jack@ukr.net&gt;, 2009.
++# akdengi &lt;kazancas@mandriva.ru&gt;, 2009.
++# Pavel Maryanov &lt;acid@jack.kiev.ua&gt;, 2010.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: ru\n&quot;
++&quot;POT-Creation-Date: 2008-09-26 18:04+0200\n&quot;
++&quot;PO-Revision-Date: 2010-05-12 12:52+0200\n&quot;
++&quot;Last-Translator: Pavel Maryanov &lt;acid@jack.kiev.ua&gt;\n&quot;
++&quot;Language-Team: Russian &lt;gnu@mx.ru&gt;\n&quot;
++&quot;Language: ru\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n!=1);\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;OK&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Отмена&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Перезагрузить&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Продолжить&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Microsoft Windows&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Определение оборудования&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux с ядром %s&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Проверка носителя установки&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Ручная установка&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Установка с выключенным ACPI&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Установка с безопасными параметрами&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Загрузка Mandriva Linux 2010 Spring (безопасный режим)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Загрузка с жёсткого диска&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Восстановление системы&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Проверка памяти&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Параметры загрузки&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Выход...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Вы вышли из графического меню загрузки и\n&quot;
++&quot;запустили интерфейс текстового режима.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Справка&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Запуск...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Загрузка ядра Linux\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Загрузка memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Загрузчик&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;Ошибка ввода/вывода&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Сменить загрузочный диск&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Вставьте загрузочный диск %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Это загрузочный диск %u.\n&quot;
++&quot;Вставьте загрузочный диск %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Это не загрузочный диск &lt;product&gt;.\n&quot;
++&quot;Вставьте загрузочный диск %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Пароль&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Подготовьте дискету с драйверами.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;Ошибка диска DVD&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Это двухсторонний диск DVD. Вы загрузились со второй стороны.\n&quot;
++&quot;\n&quot;
++&quot;Переверните диск DVD и продолжите.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Выключить питание&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Остановить систему?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Жёсткий диск&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Установка с жёсткого диска&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Дисковое устройство (проверить все диски, если не указано)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Каталог\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;Установка по FTP&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Сервер\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Пароль\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Пользователь (анонимный вход, если не указан)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;Установка по NFS&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Пользователь (использовать \&quot;guest\&quot;, если не указан)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;Установка по SMB (из общей\tпапки Windows)&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;Установка по HTTP&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Драйвер&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Домен\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Другие варианты&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Язык&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Установка -- IOAPIC включен&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Установка -- IOAPIC выключен&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Установка -- локальный APIC выключен&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Да&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Нет&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Файл&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Общая папка\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Автоматический режим&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Ручной режим&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Настройка параметров на разделе ZEN&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Установить или обновить раздел ZEN&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Переустановить загрузчик раздела ZEN&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Отключить раздел ZEN&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Включить раздел ZEN&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Текстовый режим&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Проверка микропрограммного обеспечения&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Чтобы напрямую загрузить обновления драйверов с компакт-диска,\n&quot;
++&quot;введите имена файлов обновления драйверов (разделенных\n&quot;
++&quot;запятыми ','):\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Источник&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Видеорежим&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Обновление драйверов&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Арх.&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Опция ядра&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;По умолчанию&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Безопасные параметры&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Без ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Без локального APIC&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Восстановление установленной системы&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Проверка носителя установки&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Клавиатура&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Загрузка обновления драйвера&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Адрес драйвера обновления\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Неверная архитектура&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;Это компьютер с 32-битным процессором. На нём нельзя использовать или &quot;
++&quot;устанавливать 64-битное программное обеспечение.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Предупреждение&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++&quot;Вы собираетесь установить 32-битное программное обеспечение на компьютер с &quot;
++&quot;64-битным процессором&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;Вставьте компакт-диск с драйвером для\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Вставьте в привод компакт-диск с Mandriva Linux.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;Восстановить резервную копию draksnapshot&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Загрузка Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Установка Mandriva Linux 2010 Spring&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkposkpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/sk.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/sk.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/sk.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,488 @@
++# translation of bootloader.po to
++# LANGUAGE translations for boot loader
++# Copyright (C) 2004 SUSE LINUX AG
++# , 2004.
++# , 2004.
++# Andrej Kacian &lt;andrej@kacian.sk&gt;, 2005.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader\n&quot;
++&quot;POT-Creation-Date: \n&quot;
++&quot;PO-Revision-Date: 2007-08-19 15:31+0100\n&quot;
++&quot;Last-Translator: Ladislav Michnovic &lt;lmichnovic@suse.cz&gt;\n&quot;
++&quot;Language-Team: Slovak &lt;sk-i18n@lists.linux.sk&gt;\n&quot;
++&quot;Language: sk\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.10\n&quot;
++&quot;Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n&gt;=2 &amp;&amp; n&lt;=4) ? 1 : 2;\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;OK&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Zrušiť&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Reštartovať&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Pokračovať&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Inštalácia&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Manuálna inštalácia&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Inštalácia - s vypnutým ACPI&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Inštalácia - s bezpečným nastavením&quot;
++
++#. txt_safe_linux
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Spustiť systém z pevného disku&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Záchranný systém&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Test pamäte&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Možnosti štartu&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Končím...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Opúšťate grafické menu štartu a spúšťate\n&quot;
++&quot;textové používateľské rozhranie.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Pomocník&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Spúšťam...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Načítavam linuxové jadro\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Načítavam memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Správca štartu&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;Chyba vstupu/výstupu&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Zmena štartovacej diskety&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Prosím, vložte štartovaciu disketu %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Toto je štartovacia disketa %u.\n&quot;
++&quot;Prosím, vložte štartovaciu disketu %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Toto nie je štartovacia disketa &lt;product&gt;.\n&quot;
++&quot;Prosím, vložte štartovaciu disketu %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Heslo&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Prosím, pripravte si disketu s aktualizovanými ovládačmi.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;Chyba DVD&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Toto je obojstranné DVD médium. Systém ste spustili z druhej strany.\n&quot;
++&quot;\n&quot;
++&quot;Prosím, otočte médium a potom pokračujte.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Vypnúť&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Chcete vypnúť počítač teraz?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Pevný disk&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Inštalácia na pevný disk&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Diskové zariadenie (prehľadá všetky disky, ak necháte prázdne)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Adresár\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP Inštalácia&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Server\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Heslo\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Používateľ (ak necháte prázdne, použije anonymné prihlásenie)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS Inštalácia&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Používateľ (ak necháte prázdne, použije \&quot;guest\&quot;)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB (Windows zdieľanie) Inštalácia&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP Inštalácia&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Ovládač&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Doména\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Ďalšie voľby&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Jazyk&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Inštalácia - so zapnutým IOAPIC&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Inštalácia - s vypnutým IOAPIC&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Inštalácia - s vypnutým lokálnym APIC&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Áno&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Nie&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Súbor&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Zdieľanie\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Automatický režim&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Ručný režim&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Nastaviť parametre pre ZENový diskový oddiel&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Inštalovať alebo obnoviť ZENový diskový oddiel&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Preinštalovať spúšťač systému pre ZENový oddiel&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Zakázať ZENový diskový oddiel&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Povoliť ZENový diskový oddiel&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Textový režim&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Test firmvéru&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Ak chcete nahrať aktualizované ovládače priamo z CD,\n&quot;
++&quot;napíšte mená súborov ovládačov oddelené čiarkami ','\n&quot;
++&quot;sem:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Zdroj&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Zobrazovací režim&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Aktualizácia ovládačov&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Arch&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Predvolené&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Záchranný režim&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Bez ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Bez Lokálneho APIC&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Opraviť nainštalovaný systém&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Kontrola integrity média&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Klávesnica&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;Linux - Bezpečné nastavenie&quot;
++
++#~ msgid &quot;Kernel&quot;
++#~ msgstr &quot;Jadro&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkposlpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/sl.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/sl.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/sl.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,499 @@
++# translation of sl.po to Slovenščina
++# translation of bootloader.sl_SI.po to Slovenscina
++# translation of sl_SI.po to Slovenscina
++# LANGUAGE translations for boot loader
++# Copyright (C) 2004 SUSE LINUX AG
++#
++# Janez Krek &lt;janez.krek@euroteh.si&gt;, 2004, 2005.
++# Jure Repinc &lt;jlp@holodeck1.com&gt;, 2009, 2010.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: sl\n&quot;
++&quot;PO-Revision-Date: 2010-05-09 16:36+0200\n&quot;
++&quot;Last-Translator: Jure Repinc &lt;jlp@holodeck1.com&gt;\n&quot;
++&quot;Language-Team: Slovenian &lt;lugos-slo@lugos.si&gt;\n&quot;
++&quot;Language: sl\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: Lokalize 1.0\n&quot;
++&quot;Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || &quot;
++&quot;n%100==4 ? 2 : 3);\n&quot;
++&quot;n%100==4 ? 2 : 3);\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;V redu&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Prekliči&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Znova zaženi&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Nadaljuj&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Zaženi Microsoft Windows&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Orodje za zaznavanje strojne opreme&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux z jedrom %s&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Namestitev&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Ročna namestitev&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Namestitev--onemogočen ACPI&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Namestitev--varne nastavitve&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Zaženi Mandriva Linux 2010 Spring (varni način)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Zaženi s trdega diska&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Sistem za reševanje&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Testiranje pomnilnika&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Možnosti zagona&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Zapuščanje ...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Zapustili boste grafični zagonski meni in\n&quot;
++&quot;nadaljevali v besedilnem načinu.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Pomoč&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Zaganjanje ...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Nalaganje jedra Linux\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Nalaganje memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Zagonski nalagalnik&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;V/I napaka&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Zamenjava zagonskega diska&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Vstavite zagonski disk %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;To je zagonski disk %u.\n&quot;
++&quot;Vstavite zagonski disk %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;To ni zagonski disk za &lt;product&gt;.\n&quot;
++&quot;Vstavite zagonski disk %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Geslo&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Pripravite disketo za posodobitev gonilnika.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;Napaka DVD-ja&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;DVD je dvo-stranski, sistem pa ste zagnali z druge strani.\n&quot;
++&quot;\n&quot;
++&quot;Obrnite DVD in nadaljujte.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Ugasnitev&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Ali želite sedaj zaustaviti sistem?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Trdi disk&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Namestitev s trdega diska&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Diskovna naprava (če je prazno, so pregledani vsi diski)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Mapa\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;Namestitev z FTP&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Strežnik\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Geslo\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Uporabnik (če je prazno, bo prijava anonimna)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;Namestitev z NFS&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Uporabnik (če je prazno, bo uporabnik »guest«)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;Namestitev z SMB (Windows mapa v souporabi)&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;Namestitev s HTTP&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Gonilnik&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Domena\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Druge možnosti&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Jezik&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Namestitev--omogočen IOAPIC&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Namestitev--onemogočen IOAPIC&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Namestitev--onemogočen krajevni APIC&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Da&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Ne&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Datoteka&quot;
++
++# input label: share as in &quot;Windows share&quot; (SMB)
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Mapa v souporabi\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Samodejni način&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Ročni način&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Nastavite parametre na razdelku ZEN&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Namesti ali posodobi razdelek ZEN&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Znova namesti zagonski nalagalnik razdelka ZEN&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Onemogoči razdelek ZEN&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Omogoči razdelek ZEN&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Besedilni način&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Preizkus strojne programske opreme&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Da naložite posodobitve gonilnika neposredno s\n&quot;
++&quot;CD-ROMa, vnesite imena datotek s posodobitvami\n&quot;
++&quot;(ločite jih z vejicami):\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Vir&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Video način&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Posodobitev gonilnika&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Arhit.&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Možnosti jedra&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Privzete&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Varne nastavitve&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Brez ACPI-ja&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Brez krajevnega APIC-a&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Popravi nameščen sistem&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Preveri namestitveni nosilec&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Tipkovnica&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Prenesi posodobitev gonilnika&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Vnesite lokacijo posodobitve gonilnika\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Napačna arhitektura&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;To je 32-biten računalnik. Na njem ne morete poganjati 64-bitnih programov.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Opozorilo&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;Na 64-biten računalnik boste namestili 32-bitno programsko opremo.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;Vstavite nosilec s posodobljenim gonilnikom za\n&quot;
++&quot;»%s«&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;V pogon vstavite nosilec z Mandriva Linuxom.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;Obnovi iz varnostne kopije&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Zaženi Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Namesti Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;Linux--varne nastavitve&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkposrpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/sr.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/sr.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/sr.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,483 @@
++# Serbian translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++# Copyright © 2005 Danilo Segan &lt;danilo@gnome.org&gt;
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader\n&quot;
++&quot;PO-Revision-Date: 2007-09-30 01:20+0200\n&quot;
++&quot;Last-Translator: Жарко Михајловић &lt;developer@beotel.net&gt;\n&quot;
++&quot;Language-Team: Serbian (Српски језик) &lt;sr@li.org&gt;\n&quot;
++&quot;Language: \n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;У реду&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Одустани&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Ресетуј&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Настави&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Инсталација&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Ручна инсталација&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Инсталација — ACPI искључен&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Инсталација — безбедна подешавања&quot;
++
++#. txt_safe_linux
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Покрени са тврдог диска&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Спасилачки систем&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Провера меморије&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Опције за покретање&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Завршавам...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Напуштате графички мени за покретање и\n&quot;
++&quot;покрећете текстуално сучеље.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Помоћ&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Покрећем...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Учитавам Линукс језгро\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Учитавам memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Покретач система&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;У/И грешка&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Промените диск за покретање&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Уметните диск за покретање %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Ово је диск за покретање %u.\n&quot;
++&quot;Уметните диск за покретање %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Ово није диск за покретање &lt;product&gt;.\n&quot;
++&quot;Уметните диск за покретање %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Лозинка&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Припремите вашу дискету са освежењем драјвера.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;ДВД грешка&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Ово је двострани ДВД. Покренули сте са друге стране.\n&quot;
++&quot;\n&quot;
++&quot;Окрените ДВД и затим наставите.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Угаси&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Сада угасити систем?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Тврди диск&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Инсталација на тврди диск&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Диск (прегледај све дискове ако је празно)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Директоријум\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP инсталација&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Сервер\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Лозинка\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Корсиник (анонимна пријава ако је празно)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS инсталација&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Корисник (користи „guest“ ако је празно)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB (дељени Windows диск) инсталација&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP инсталација&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Драјвер&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Домен\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Остале опције&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Језик&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Инсталација — IOAPIC укључен&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Инсталација — IOAPIC искључен&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Инсталација — APIC искључен&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Да&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Не&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Датотека&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Дељено\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Аутоматски режим&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Ручни режим&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Подеси параметре ZEN партиције&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Инсталирај или ажурирај ZEN партицију&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Реинсталирај ZEN Boot Loader&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Онемогући ZEN партицију&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Омогући ZEN партицију&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Текст режим&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Firmware тест&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Да учитате нове драјвере са CD-ROM-а,\n&quot;
++&quot;упишите имена нових фајлова (одвојена\n&quot;
++&quot;зарезима ',') овде:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Извор&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Видео режим&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Ажурирање драјвера&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Арх.&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Подразумевано&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Безбедна подешавања&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Без ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Без локалног APIC&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Поправи систем&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;Линукс — безбедна подешавања&quot;
++
++#~ msgid &quot;Kernel&quot;
++#~ msgstr &quot;Језгро&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkposrLatnpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/sr@Latn.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/sr@Latn.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/sr@Latn.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,530 @@
++# Serbian translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++# Copyright (C) 2005 Danilo Segan &lt;danilo@gnome.org&gt;
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader\n&quot;
++&quot;POT-Creation-Date: 2005-07-27 11:49+0200\n&quot;
++&quot;PO-Revision-Date: 2005-08-03 21:03+0200\n&quot;
++&quot;Last-Translator: Danilo Šegan_&lt;danilo@gnome.org&gt;\n&quot;
++&quot;Language-Team: Serbian &lt;novell@prevod.org&gt;\n&quot;
++&quot;Language: sr\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=3; plural=n%10==1 &amp;&amp; n%100!=11 ? 0 : n%10&gt;=2 &amp;&amp; n&quot;
++&quot;%10&lt;=4 &amp;&amp; (n%100&lt;10 || n%100&gt;=20) ? 1 : 2;\n&quot;
++
++# ok button label
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;U redu&quot;
++
++# cancel button label
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Odustani&quot;
++
++# reboot button label
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Resetuj&quot;
++
++# continue button label
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Nastavi&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;&quot;
++
++# dialog title for ftp installation
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;FTP instalacija&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Ručna instalacija&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Instalacija -- ACPI isključen&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Instalacija -- bezbedna podešavanja&quot;
++
++#. txt_safe_linux
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Pokreni sa tvrdog diska&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Spasilački sistem&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Provera memorije&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Opcije za pokretanje&quot;
++
++# window title for exit dialog
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Završavam...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Napuštate grafički meni za pokretanje i\n&quot;
++&quot;pokrećete tekstualno sučelje.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Pomoć&quot;
++
++# window title for kernel loading (see txt_load_kernel)
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Pokrećem...&quot;
++
++# Keep the three newlines!
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Učitavam Linux jezgro\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++# Keep the three newlines!
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Učitavam memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++# info box title
++#. info box title
++#. txt_info_title
++#, fuzzy
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Pokretač sistema&quot;
++
++# error box title
++#. error box title
++#. txt_error_title
++#, fuzzy
++msgid &quot;I/O Error&quot;
++msgstr &quot;U/I greška&quot;
++
++# boot disk change dialog title
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Promenite disk za pokretanje&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Umetnite disk za pokretanje %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Ovo je disk za pokretanje %u.\n&quot;
++&quot;Umetnite disk za pokretanje %u.&quot;
++
++# &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, fuzzy, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Ovo nije disk za pokretanje &lt;product&gt;.\n&quot;
++&quot;Umetnite disk za pokretanje %u.&quot;
++
++# password dialog title
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Lozinka&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Pripremite vašu disketu sa osveženjem drajvera.&quot;
++
++# dvd warning title
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD greška&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Ovo je dvostrani DVD. Pokrenuli ste sa druge strane.\n&quot;
++&quot;\n&quot;
++&quot;Okrenite DVD i zatim nastavite.&quot;
++
++# power off dialog title
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Ugasi&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Sada ugasiti sistem?&quot;
++
++# menu entry for hard disk installation
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Tvrdi disk&quot;
++
++# dialog title for hard disk installation
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Instalacija na tvrdi disk&quot;
++
++#. txt_hd_diskdevice
++#, fuzzy
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Disk (pregledaj sve diskove ako je prazno)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Direktorijum\n&quot;
++
++# dialog title for ftp installation
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP instalacija&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Server\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Lozinka\n&quot;
++
++# label for ftp user input
++#. label for ftp user input
++#. txt_user1
++#, fuzzy
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Korsinik (anonimna prijava ako je prazno)\n&quot;
++
++# dialog title for nfs installation
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS instalacija&quot;
++
++# label for smb user input
++#. label for smb user input
++#. txt_user2
++#, fuzzy
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Korisnik (koristi „guest” ako je prazno)\n&quot;
++
++# dialog title for smb installation
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB (deljeni Windows disk) instalacija&quot;
++
++# dialog title for http installation
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP instalacija&quot;
++
++# 'driver' as in '(hardware) driver update'
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Drajver&quot;
++
++# as in Windows Authentication Domain
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Domen\n&quot;
++
++# button label for other/more options
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Ostale opcije&quot;
++
++# label for language selection
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Jezik&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Instalacija -- IOAPIC isključen&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Da&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Ne&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Fajl&quot;
++
++# input label: share as in &quot;Windows share&quot; (SMB)
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;&quot;
++
++# 'driver' as in '(hardware) driver update'
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++#, fuzzy
++msgid &quot;Driver Update&quot;
++msgstr &quot;Drajver&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++#, fuzzy
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Instalacija -- bezbedna podešavanja&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++#, fuzzy
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Spasilački sistem&quot;
++
++# dialog title for ftp installation
++#. menu item
++#. txt_mediacheck
++#, fuzzy
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;FTP instalacija&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;&quot;
++
++# Keep the newlines and spaces after ':'!
++#~ msgid &quot;&quot;
++#~ &quot;Enter your password: \n&quot;
++#~ &quot;\n&quot;
++#~ &quot;\n&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Unesite svoju lozinku: \n&quot;
++#~ &quot;\n&quot;
++#~ &quot;\n&quot;
++
++#, fuzzy
++#~ msgid &quot;Installation from ISO file&quot;
++#~ msgstr &quot;Instalacija nije uspela&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkposvpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/sv.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/sv.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/sv.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,499 @@
++# Copyright (C) 2004 SUSE LINUX AG
++#
++# Thomas Backlund &lt;tmb@mandriva.org&gt;, 2009.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader\n&quot;
++&quot;POT-Creation-Date: \n&quot;
++&quot;PO-Revision-Date: 2009-10-20 01:43+0300\n&quot;
++&quot;Last-Translator: Thomas Backlund &lt;tmb@mandriva.org&gt;\n&quot;
++&quot;Language-Team: Swedish &lt;sv@li.org&gt;\n&quot;
++&quot;Language: sv\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: Lokalize 1.0\n&quot;
++&quot;X-Poedit-Language: Swedish\n&quot;
++&quot;X-Poedit-Country: SWEDEN\n&quot;
++&quot;X-Poedit-SourceCharset: utf-8\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;OK&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Avbryt&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Starta om&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Fortsätt&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Starta Microsoft Windows&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Verktyg för hårdvaru-detektering&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux med kärna %s&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Installation&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Manuell installation&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Installation - ACPI inaktiverat&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Installation - Säkra inställningar&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Starta Mandriva Linux 2010 Spring (felsäkert läge)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Starta från hårddisk&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Räddningssystem&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Minnestest&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Startalternativ&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Avslutar...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Du är på väg att lämna den grafiska startmenyn och\n&quot;
++&quot;starta textlägesgränssnittet.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Hjälp&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Startar...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Laddar Linuxkärnan\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Laddar memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Starthanterare&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;I/O-fel&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Ändra startdisk&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Sätt i startdisk %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Det här är startdisk %u.\n&quot;
++&quot;Sätt i startdisk %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Det här är inte en &lt;product&gt;-startdisk.\n&quot;
++&quot;Sätt i startdisk %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Lösenord&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Ha disketten för drivrutinsuppdatering redo.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD fel&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Det här är en dubbelsidig DVD. Du har startat från den andra sidan.\n&quot;
++&quot;\n&quot;
++&quot;Vänd på DVD-skivan och fortsätt sedan.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Stäng av&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Vill du stänga av systemet nu?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Hårddisk&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Hårddiskinstallation&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Diskenhet (söker av alla diskar om tom)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Katalog\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP-installation&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Server\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Lösenord\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Användare (anonym inloggning om tomt)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS-installation&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Användare (använder \&quot;guest\&quot; om tomt)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB (Windows-utdelning) installation&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP-installation&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Drivrutin&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Domän\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Fler alternativ&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Språk&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Installation - IOAPIC aktiverat&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Installation - IOAPIC inaktiverat&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Installation - Lokal APIC inaktiverat&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Ja&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Nej&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Fil&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Utdelning\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Automatiskt läge&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Manuellt läge&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Ställ in parametrar på ZEN-partition&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Installera eller uppdatera ZEN-partition&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Ominstallera starthanterare för ZEN-partition&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Inaktivera ZEN-partition&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Aktivera ZEN-partition&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Textläge&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Test av fast programvara&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;För att ladda drivrutinsuppdateringar direkt från cd-rom,\n&quot;
++&quot;ange drivrutinsuppdateringsfilnamn (åtskilda med kommatecken\n&quot;
++&quot;\&quot;,\&quot;) här:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Källa&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Videoläge&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Drivrutinsuppdatering&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Arkitektur&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Kärn-alternativ&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Standard&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Säkra inställningar&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Ingen ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Ingen lokal ACPI&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Reparera installerat system&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Kontrollera installationsmedia&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Tangentbord&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Ladda ner drivrutins-uppdateringar&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Ange sökväg till uppdaterad drivrutin\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Fel arkitektur&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;Detta är en 32-bitars dator. Du kan inte använda 64-bitars programvara på &quot;
++&quot;den.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Varning&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;Du håller på att installera 32-bitars program på en 64-bitars dator.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;Sätt i CD-ROM med uppdaterade drivrutiner för\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Sätt tillbaka Mandriva Linux CD/DVD i enheten.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;Återställ draksnapshot säkerhetskopia&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Starta Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Installera Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;Linux - Säkra inställningar&quot;
++
++#~ msgid &quot;Kernel&quot;
++#~ msgstr &quot;Kärna&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpotapo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/ta.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/ta.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/ta.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,482 @@
++# LANGUAGE translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: NetworkManager-vpnc\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2006-05-16 17:10+0200\n&quot;
++&quot;PO-Revision-Date: 2006-01-26 15:19+0100\n&quot;
++&quot;Last-Translator: Priyavert Sharma &lt;priyavert.sharma@agreeya.com&gt;\n&quot;
++&quot;Language-Team: AgreeYa Solutions &lt;www.agreeya.com&gt;\n&quot;
++&quot;Language: \n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n &gt; 1);\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;ஓ.கே.&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;ரத்து செய்&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;ரீபூட்&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;தொடரு&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;நிறுவுதல்&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;மேனுவல் நிறுவுதல்&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;நிறுவுதல்--ACPI டிஸ்ஏபிள்ட்&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;நிறுவுதல்--பாதுகாப்பான செட்டிங்குகள்&quot;
++
++#. txt_safe_linux
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;ஹார்டு டிஸ்கிலிருந்து பூட் செய்&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;மீட்பு ௮மைப்பு முறை&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;நினைவாற்றல் சோதனை&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;பூட் தெரிவுகள்&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;வெளியேறுகிறது...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;நீங்கள் கிராபிகல் பூட் மெனுவிலிருந்து வெளியேறுகிறீர்கள்\n&quot;
++&quot;மற்றும்ஸீ டெக்ஸ்ட் மோட் இன்டர்பேஸ்.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;உதவி&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;ஆரம்பிக்கிறது...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;லினுக்ஸ் கெர்னல் லோடு ஆகிறது\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;மெம்டெஸ்ட் 86 லோடு ஆகிறது\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;பூட் லோடர்&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;ஐ/ஓ தவறு&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;பூட் டிஸ்க்கை மாற்று&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;இன்சர்ட் பூட் டிஸ்க் %u&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;இதுதான் பூட் டிஸ்க் %u.\n&quot;
++&quot;இன்சர்ட் பூட் டிஸ்க் %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;இது &lt;ப்ராடக்ட்&gt; பூட் டிஸ்க் ௮ல்ல.\n&quot;
++&quot;தயவுசெய்து இன்சர்ட் பூட் டிஸ்க்%u&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;கடவுச்சொல்&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;உங்களுடைய டிரைவர் ௮ப்டேட் ப்ளாப்பியை தயார் செய்யவும்.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;டி.வி.டி. தவறு&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;இது இருபக்க டி.வி.டி. நீங்கள் இரண்டாவது பக்கத்திலிருந்து பூட் செய் துள்ளீர்கள்.\n&quot;
++&quot;\n&quot;
++&quot;டி.வி.டி.-யை மாற்றிப் போட்டு தொடரவும்.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;பவர் ஆஃப்&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;கணிப்பொறியை இப்போது நிறுத்தவும்?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;ஹார்டு டிஸ்க்&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;ஹார்டு டிஸ்க் நிறுவுதல்&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;டிஸ்க் சாதனம் (காலியாக இருந்தால் எல்லா டிஸ்க்குகளையும் ஸ்கேன் செய்யவும்)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;டைரக்டரி\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP நிறுவுதல்&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;சர்வர்\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;கடவுச்சொல்\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;பயன்படுத்துபவர் (காலியாக இருந்தால் பெயரின்றி லாக் இன்)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS நிறுவுதல்&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;பயன்படுத்துபவர் (காலியாக இருந்தால் \&quot;கெஸ்ட்\&quot; பயன்படுத்தவும்)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB (விண்டோஸ் ஷோ) நிறுவுதல்&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP நிறுவுதல்&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;டிரைவர்&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;டொமைன்\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;பிற தெரிவுகள்&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;மொழி&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;நிறுவுதல் --IOAPIC எனாபிள்ட்&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;நிறுவுதல்--IOAPIC டிஸ்ஏபிள்ட்&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;நிறுவுதல்--லோக்கல் APIC டிஸ்ஏபிள்ட்&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;ஆம்&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;இல்லை&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;கோப்பு&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;பகிர்ந்துகொள்\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;ஆட்டோமேடிக் மோட்&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;மேனுவல் மோட்&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;ZEN பிரிவினையில் ஒருங்கிணைக்கும் ௮ளவீடுகள்&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;ZEN பிரிவினையை நிறுவு/மேம்படுத்து&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;ZEN பிரிவினை பூட் லோடரை மறுநிறுவுதல் செய்&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;ZEN பிரிவினையை செயலிழக்கச் செய்&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;ZEN பிரிவினையை ஏதுவாக்கு&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;உரை மோட்&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;ஃபர்ம்வேர் சோதனை&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;சிடி-ரோமிலிருந்து நேரடியாக டிரைவர் புதுப்பித்தல்களை \n&quot;
++&quot;சேர்ப்பதற்கு, டிரைவர் புதுப்பித்தல் கோப்பு பெயர்களை \n&quot;
++&quot;(காற்புள்ளிகளால்(',') பிரித்து) இங்கு என்டர் செய்யவும்:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Arch&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++#, fuzzy
++msgid &quot;Kernel Option&quot;
++msgstr &quot;பிற தெரிவுகள்&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;தட்டச்சு பொறி&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;லினுக்ஸ்--பாதுகாப்பான செட்டிங்குகள்&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpothpo_disabled">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/th.po_disabled</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/th.po_disabled (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/th.po_disabled 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,421 @@
++# LANGUAGE translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: YaST (@memory@)\n&quot;
++&quot;Report-Msgid-Bugs-To: i18n@suse.de\n&quot;
++&quot;POT-Creation-Date: 2008-01-03 17:06+0100\n&quot;
++&quot;PO-Revision-Date: 2008-11-02 11:05+0700\n&quot;
++&quot;Last-Translator: Thanomsub Noppaburana &lt;donga.nb@gmail.com&gt;\n&quot;
++&quot;Language-Team: Thai &lt;thai-l10n@googlegroups.com&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=1; plural=0;\n&quot;
++&quot;X-Generator: Lokalize 0.2\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;ตกลง&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;ยกเลิก&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;บูตระบบใหม่&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;ทำต่อไป&quot;
++
++#. txt_install
++msgid &quot;Installation&quot;
++msgstr &quot;ทำการติดตั้ง&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;ทำการติดตั้งด้วยตนเอง&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;ทำการติดตั้ง--ปิดการใช้งาน ACPI&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;ทำการติดตั้ง--ตั้งค่าแบบปลอดภัย&quot;
++
++#. txt_safe_linux
++msgid &quot;Linux--Safe Settings&quot;
++msgstr &quot;ลินุกซ์--ตั้งค่าแบบปลอดภัย&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;บูตระบบจากฮาร์ดดิสก์&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;กู้ระบบ&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;ทดสอบหน่วยความจำ&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;ตัวเลือกการบูต&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;กำลังออก...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;คุณกำลังออกจากเมนูการบูตแบบกราฟิก\n&quot;
++&quot;
และเริ่มส่วนติดต่อในโหมดข้อความ&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;ช่วยเหลือ&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;กำลังเริ่ม...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;ทำการโหลดเคอร์เนลของลินุกซ์\n&quot;
++&quot;
\n&quot;
++&quot;
\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;ทำการโหลด memtest86\n&quot;
++&quot;
\n&quot;
++&quot;
\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;ตัวจัดการการบูต&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;I/O ผิดพลาด&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;เปลี่ยนดิสก์ที่จะใช้บูต&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;โปรดใส่ดิสก์ %u ที่จะใช้บูต&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;นี่คือดิสก์ %u สำหรับใช้บูต\n&quot;
++&quot;
โปรดใส่ดิสก์ %u เพื่อใช้บูต&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;นี่ไม่ใช่ดิสก์เพื่อใช้บูตของ &lt;product&gt;\n&quot;
++&quot;
โปรดใส่ดิกส์ %u เพื่อใช้บูต&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;รหัสผ่าน&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;พร้อมรับแผ่นฟลอปปีไดรเวอร์รุ่นใหม่&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;ดีวีดีผิดพลาด&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;นี่เป็นแผ่นดีวีดีแบบสองด้าน และคุณได้บูตจากด้านที่สอง\n&quot;
++&quot;
\n&quot;
++&quot;
โปรดพลิกด้านแล้วทำต่อไป&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;ปิดเครื่อง&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;จะปิดเครื่องเดี๋ยวนี้หรือไม่ ?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;ฮาร์ดดิสก์&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;ติดตั้งจากฮาร์ดดิสก์&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;อุปกรณ์ดิสก์ (หากว่างไว้จะค้นหาดิสก์ทั้งหมด)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;ไดเรกทอรี\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;ติดตั้งผ่านทาง FTP&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;เครื่องแม่ข่าย\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;รหัสผ่าน\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;ผู้ใช้ (หากว่างไว้จะใช้ผู้ใช้นิรนาม)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;ติดตั้งผ่านทาง NFS&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;ผู้ใช้ (หากว่างไว้จะใช้ \&quot;guest\&quot; แทน)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;ติดตั้งผ่านทาง SMB (แชร์ของระบบวินโดว์ส)&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;ติดตั้งผ่านทาง HTTP&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;ไดรเวอร์&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;โดเมน\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;ตัวเลือกอื่น&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;ภาษา&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;ทำการติดตั้ง--เปิดใช้งาน IOAPIC&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;ทำการติดตั้ง--ปิดการใช้งาน IOAPIC&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;ทำการติดตั้ง--ปิดการใช้งาน APIC ภายใน&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;ใช่&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;ไม่ใช่&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;แฟ้ม&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;แชร์\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;โหมดอัตโนมัติ&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;โหมดทำด้วยตนเอง&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;ปรับแต่งพารามิเตอร์บนพาร์ทิชัน ZEN&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;ติดตั้งหรืออัปเดตพาร์ทิชัน ZEN&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;ติดตั้งตัวจัดการการบูตของพาร์ทิชัน ZEN อีกครั้ง&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;ปิดการใช้พาร์ทิชัน ZEN&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;เปิดการใช้พาร์ทิชัน ZEN&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;โหมดข้อความ&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;ทดสอบเฟิร์มแวร์&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;เพื่อโหลดไดรเวอร์รุ่นใหม่โดยตรงจากแผ่นซีดีรอม\n&quot;
++&quot;
ป้อนชื่อแฟ้มของไดรเวอร์รุ่นใหม่ (แยกด้วยจุลภาค ',')\n&quot;
++&quot;
ได้ที่นี่:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;ต้นฉบับ&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;โหมดแสดงผล&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;อัปเดตไดรเวอร์&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;สถาปัตยกรรม&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel&quot;
++msgstr &quot;เคอร์เนล&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;ค่าปริยาย&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;ตั้งค่าแบบปลอดภัย&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;ไม่มี ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;ไม่มี APIC ภายใน&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;ซ่อมแซมระบบที่ติดตั้งไว้&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;ตรวจสอบสื่อการติดตั้ง&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;แป้นพิมพ์&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpotrpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/tr.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/tr.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/tr.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,497 @@
++# LANGUAGE translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++# Atilla ÖNTAŞ &lt;atilla_ontas@mandriva.org&gt;, 2009.
++# Atilla ÖNTAŞ &lt;atilla_ontas@mandriva.com&gt;, 2009.
++# Atilla ÖNTAŞ &lt;atilla_ontas@mandriva.org&gt;, 2009.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: YaST (@memory@)\n&quot;
++&quot;Report-Msgid-Bugs-To: translation@suse.de\n&quot;
++&quot;POT-Creation-Date: 2006-05-15 15:07+0200\n&quot;
++&quot;PO-Revision-Date: 2009-11-30 19:42+0200\n&quot;
++&quot;Last-Translator: Atilla ÖNTAŞ &lt;atilla_ontas@mandriva.org&gt;\n&quot;
++&quot;Language-Team: Turkish &lt;cooker-i18n@mandrivalinux.org&gt;\n&quot;
++&quot;Language: tr\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=1; plural=0;\n&quot;
++&quot;X-Generator: Lokalize 0.3\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;Tamam&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;İptal&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Yeniden başlat&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Devam et&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Microsoft Windows Sistemini Başlat&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Donanım Algılama Aracı&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux Çekirdek Sürümü %s&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Kurulum&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Elle kurulum yap&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Kurulum--ACPI Devredışı&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Kurulum--Güvenli Ayarlar&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Mandriva Linux 2010 Spring Sistemini Başlat (Güvenli Kip)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Sistemi Sabit Diskten Başlat&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Kurtarma Sistemi&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Bellek Sınama&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Açılış Seçenekleri&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Çıkılıyor...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Grafik arabirimini kullanan açılış menüsünden çıkıyor ve\n&quot;
++&quot;metin tabanlı arabirimi başlatıyorsunuz.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Yardım&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Başlatılıyor...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Linux Çekirdeği Yükleniyor\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;memtest86 Yükleniyor\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Açılış Önyükleyicisi&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;Girdi/Çıktı Hatası&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Açılış Diskini Değiştir&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;%u açılış diskini takın.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Bu açılış diski %u.\n&quot;
++&quot;%u açılış diskini takın.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Bu &lt;ürün&gt; açılış diski değil.\n&quot;
++&quot;%u açılış diskini takın.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Parola&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Sürücü güncelleme disketini hazır bulundurun.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD hatası&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Bu çift taraflı bir DVD'dir. İkinci tarafı kullanarak sistemi açtınız.\n&quot;
++&quot;\n&quot;
++&quot;DVD'yi çevirip devam edin.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Kapat&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Sistem şimdi kapatılsın mı?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Sabit Disk&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Sabit Disk Kurulumu&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Disk Aygıtı (Boş bırakılırsa tüm diskler taranacak)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Dizin\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP Kurulumu&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Sunucu\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Parola\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Kullanıcı (Boş bırakılırsa anonim olarak giriş yapılacak)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS kurulumu&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Kullanıcı (Boş bırakılırsa \&quot;guest\&quot; kullanılacak)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB (Windows paylaşımı) kurulumu&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP kurulumu&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Sürücü&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Alan\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Diğer Seçenekler&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Dil&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Kurulum--IOAPIC Etkin&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Kurulum--IOAPIC Devredışı&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Kurulum--Yerel APIC Devredışı&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Evet&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Hayır&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Dosya&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Paylaşım\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Otomatik Kip&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Elle Kullanma Kipi&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;ZEN Disk Bölümündeki Parametreleri Ayarla&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Bir ZEN Disk Bölümü Kur veya Güncelle&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;ZEN Bölümü Açılış Önyükleyicisini Yeniden Kur&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;ZEN Bölümünü Devredışı Bırak&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;ZEN Bölümünü Etkinleştir&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Metin Kipi&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Donanımsal Yazılım Sınama&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Sürücü güncellemelerini doğrudan CD-ROM'dan\n&quot;
++&quot;yüklemek için sürücü güncelleme dosya adlarını girin:\n&quot;
++&quot;(virgüllerle ',' ayırarak)\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Kaynak&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Görüntü Kipi&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Sürücü Güncelleme&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Mimari&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Çekirdek Seçeneği&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Öntanımlı&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Güvenli Ayarlar&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;ACPI Yok&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Yerel APIC Yok&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Kurulu Sistemi Onar&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Kurulum Kaynağını Denetle&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Klavye&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Sürücü Güncellemesini İndir&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Sürücü Güncelleme Adresini Gir\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Yanlış mimari&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;Bu bir 32 bit bilgisayar. Bu bilgisayarda 64 bit yazılım kuramaz veya &quot;
++&quot;kullanamazsınız.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Uyarı&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;64 bit bir bilgisayara 32 bit yazılım kurmak üzeresiniz.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;Şu aygıt için sürücü güncelleme CD_ROM' u takın:\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Mandriva Linux CD-ROM' unu sürücüye geri takın.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;Draksnapshot yedeklemesini geri yükle&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Mandriva Linux 2010 Spring Sistemini Başlat&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Mandriva Linux 2010 Spring Sistemini Kur&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;Linux--Güvenli Ayarlar&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpoukpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/uk.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/uk.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/uk.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,496 @@
++# translation of mandriva-gfxboot-theme.po to ukrainian
++# $Id: uk.po 266807 2010-03-14 13:38:08Z btr0001 $
++# Ukrainian translations for boot loader
++# Copyright (C) 2004 SUSE LINUX AG
++#
++# Ivan Petrouchtchak &lt;iip@telus.net&gt;, 2005.
++# Ivan Petrouchtchak &lt;ivanpetrouchtchak@yahoo.com&gt;, 2006.
++# Taras Boychuk &lt;btr0001@ukr.net&gt;, 2009, 2010.
++# Yuri Chornoivan &lt;yurchor@ukr.net&gt;, 2009.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: mandriva-gfxboot-theme\n&quot;
++&quot;PO-Revision-Date: 2010-03-12 07:34-0500\n&quot;
++&quot;Last-Translator: Taras Boychuk &lt;btr0001@ukr.net&gt;\n&quot;
++&quot;Language-Team: Ukrainian &lt;translation@linux.org.ua&gt;\n&quot;
++&quot;Language: uk\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: Lokalize 1.0\n&quot;
++&quot;Plural-Forms: nplurals=3; plural=(n%10==1 &amp;&amp; n%100!=11 ? 0 : n%10&gt;=2 &amp;&amp; n&quot;
++&quot;%10&lt;=4 &amp;&amp; (n%100&lt;10 || n%100&gt;=20) ? 1 : 2);\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;Гаразд&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Скасувати&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Перезавантажити комп'ютер&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Продовжити&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Завантажити Microsoft Windows&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Інструмент пошуку обладнання&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux з ядром %s&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Перевірити носій для встановлення&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Ручне встановлення&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Встановлення -- ACPI вимкнено&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Встановлення -- безпечні параметри&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Завантажити Mandriva Linux 2010 Spring (безпечний режим)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Завантажити з твердого диска&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Порятунок системи&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Тест пам'яті&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Параметри завантаження&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Вихід...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Ви покидаєте графічне меню завантаження\n&quot;
++&quot;і запускаєте текстовий варіант інтерфейсу.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Довідка&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Запуск...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Завантаження ядра Linux\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Завантаження memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Завантажувач&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;Помилка вводу/виводу&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Змініть завантажувальний диск&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Вставте завантажувальний диск %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Це завантажувальний диск %u.\n&quot;
++&quot;Вставте завантажувальний диск %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Це не завантажувальний диск &lt;product&gt;.\n&quot;
++&quot;Вставте завантажувальний диск %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Пароль&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Підготуйте дискету з оновленнями драйверів.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;Помилка DVD&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Це двобічний DVD. Ви завантажили з другого боку.\n&quot;
++&quot;\n&quot;
++&quot;Переверніть DVD і продовжуйте.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Вимкнути живлення&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Хочете зараз вимкнути систему?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Твердий диск&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Встановлення з твердого диска&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Дисковий пристрій (переглядає всі диски, якщо порожнє)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Тека\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;Встановлення з FTP&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Сервер\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Пароль\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Користувач (анонімний вхід, якщо порожнє)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;Встановлення з NFS&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Користувач (використовує «guest», якщо порожнє)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;Встановлення з SMB (Windows Share)&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;Встановлення через HTTP&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Драйвер&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Домен\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Інші параметри&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Мова&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Встановлення -- IOAPIC увімкнено&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Встановлення -- IOAPIC вимкнено&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Встановлення -- локальне APIC вимкнено&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Так&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Ні&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Файл&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Ресурс\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Автоматичний режим&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Ручний режим&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Налаштувати параметри на розділі ZEN&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Встановити або оновити розділ ZEN&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Перевстановити завантажувач розділу ZEN&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Вимкнути розділ ZEN&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Увімкнути розділ ZEN&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Текстовий режим&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Тест мікропрограмного забезпечення&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Щоб завантажити оновлення драйверів з\n&quot;
++&quot;CD-ROM, введіть сюди назви файлів для\n&quot;
++&quot;оновлення драйвера (розділені комами \&quot;,\&quot;):\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Джерело&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Відеорежим&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Оновлення драйверів&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Арх.&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Параметри ядра&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Типове&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Безпечні параметри&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Без ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Без локального APIC&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Поремонтувати встановлену систему&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Перевірити носій для встановлення&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Клавіатура&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Звантажити поновлення драйвера&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Ввести URL до поновленого драйвера\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Неправильна архітектура&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;Це 32-розрядний комп’ютер. Ви не можете запускати або встановлювати на ньому &quot;
++&quot;64-бітні програми.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Попередження&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;Ви збираєтесь встановити 32-бітні програми на 64-бітний комп’ютер.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;Вставте КД з поновленням драйвера для\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Вставте Mandriva Linux CD-ROM назад в привід.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;Відновити копію draksnapshot&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Завантажити Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Встановити Mandriva Linux 2010 Spring&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpouzpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/uz.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/uz.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/uz.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,490 @@
++# uzbek cyrillic translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++# Nurali Abdurahmonov &lt;mavnur@gmail.com&gt;, 2009, 2010.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader\n&quot;
++&quot;PO-Revision-Date: 2010-01-12 13:40+0500\n&quot;
++&quot;Last-Translator: Nurali Abdurahmonov &lt;mavnur@gmail.com&gt;\n&quot;
++&quot;Language-Team: American English &lt;mavnur@gmail.com&gt;\n&quot;
++&quot;Language: \n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: Lokalize 1.0\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;OK&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Bekor qilish&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Oʻchirib-yoqish&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Davom etish&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Microsoft Windows'ni yuklash&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Uskunalarni aniqlash vositasi&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;%s kernelli Linux&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Oʻrnatish manbasini tekshirish&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Qoʻlbola oʻrnatish&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Oʻrnatish --ACPI oʻchirilgan&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Oʻrnatish --Safe moslamalari&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Mandriva Linux 2010 Spring'ni yuklash (xavfsiz usul)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Qattiq diskdan yuklash&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Tizimni tiklash&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Xotirani tekshirish&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Yuklash parametrlari&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Chiqish...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Siz grafik yuklash menyusidan chiqib\n&quot;
++&quot;matn usuliga oʻtmoqchimisiz.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Yordam&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Boshlash...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Linux kerneli yuklanmoqda\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;memtest86 yuklanmoqda\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Yuklovchi&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;I/O xatosi&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Yuklanadigan diskni oʻzgartirish&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;%u yuklash diskini kiriting.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Bu %u yuklash diski.\n&quot;
++&quot;%u yuklash diskini kiriting.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Bu &lt;product&gt; yuklash diski emas.\n&quot;
++&quot;%u yuklash diskini kiriting.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Maxfiy soʻz&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Drayverli disketani tayyorlang.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD disk xatosi&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Bu ikki tomonli DVD disk. Siz ikkinchi tomondan yukladingiz.\n&quot;
++&quot;\n&quot;
++&quot;DVD diskn oʻgiring va davom ettiring.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Oʻchirish&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Kompyuter oʻchirilsinmi?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Qattiq disk&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Qattiq diskdan oʻrnatish&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Disk uskunasi (agar boʻsh boʻlsa barcha disklar tekshiriladi)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Direktoriya\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP orqali oʻrnatish&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Server\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Maxfiy soʻz\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Foydalanuvchi (agar boʻsh boʻlsa anonim kiriladi)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS orqali oʻrnatish&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Foydalanuvchi (agar boʻsh boʻlsa \&quot;guest\&quot; dan foydalaniladi)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB (Windows Share) orqali oʻrnatish&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP orqali oʻrnatish&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Drayver&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Domen\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Boshqa variantlar&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Til&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Oʻrnatish --IOAPIC yoqilgan&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Oʻrnatish --IOAPIC oʻchirilgan&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Oʻrnatish --Local APIC oʻchirilgan&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Ha&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Yoʻq&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Fayl&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Umumiy jild\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Avtomatik usul&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Qoʻlbola usul&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;ZEN disk qismidagi parametrlarni moslash&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;ZEN disk qismidagi yangilash yoki oʻrnatish&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;ZEN disk qismi yuklovchisini qayta oʻrnatish&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;ZEN disk qismini oʻchirish&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;ZEN disk qismini yoqish&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Mant usuli&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Mikrodasturiy taʼminotni (firmware) tekshirish&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Drayver yangilanishlarni CD-ROM'dan yuklash uchun,\n&quot;
++&quot;yangilanish fayllari nomini (vergul ',' bilan ajratilgan)\n&quot;
++&quot;shu yerga kiriting:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Manba&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Video usuli&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Drayverni yangilash&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Arx.&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Kernel opsiyasi&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Andoza&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Xavfsiz parametrlar&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;ACPI'siz&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Lokal APIC'siz&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Oʻrnatilgan tizimni yangilash&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Oʻrnatish manbasini tekshirish&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Klaviatura&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Drayver yangilanishini yuklab olish&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Drayver yangilanish URL manzilini kiriting\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Xato arxitektura&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;Bu 32-bitli kompyuter. Ushbu kompyuterda 64-bitli dasturiy taʼminotni &quot;
++&quot;oʻrnata olmaysiz.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Diqqat&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;Siz 64-bitli kompyuterga 32-bitli dasturiy taʼminotni oʻrnatmoqchisiz.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;\&quot;%s\&quot; uchun drayver yangilash diskini \n&quot;
++&quot; qoʻying.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Mandriva Linux CD-ROM diskini uskunaga qoʻying.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;draksnapshot zahira nusxasini tiklash&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Mandriva Linux 2010 Spring'ni yuklash&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Mandriva Linux 2010 Spring tizimini oʻrnatish&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpouzcyrillicpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/uz@cyrillic.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/uz@cyrillic.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/uz@cyrillic.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,490 @@
++# uzbek cyrillic translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++# Nurali Abdurahmonov &lt;mavnur@gmail.com&gt;, 2009, 2010.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader\n&quot;
++&quot;PO-Revision-Date: 2010-01-12 13:40+0500\n&quot;
++&quot;Last-Translator: Nurali Abdurahmonov &lt;mavnur@gmail.com&gt;\n&quot;
++&quot;Language-Team: American English &lt;mavnur@gmail.com&gt;\n&quot;
++&quot;Language: \n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: Lokalize 1.0\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;OK&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Бекор қилиш&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Ўчириб-ёқиш&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Давом этиш&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Microsoft Windows'ни юклаш&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Ускуналарни аниқлаш воситаси&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;%s кернелли Linux&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Ўрнатиш манбасини текшириш&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Қўлбола ўрнатиш&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Ўрнатиш --ACPI ўчирилган&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Ўрнатиш --Safe мосламалари&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Mandriva Linux 2010 Spring'ни юклаш (хавфсиз усул)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Қаттиқ дискдан юклаш&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Тизимни тиклаш&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Хотирани текшириш&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Юклаш параметрлари&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Чиқиш...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Сиз график юклаш менюсидан чиқиб\n&quot;
++&quot;матн усулига ўтмоқчимисиз.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Ёрдам&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Бошлаш...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Linux кернели юкланмоқда\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;memtest86 юкланмоқда\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Юкловчи&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;I/O хатоси&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Юкланадиган дискни ўзгартириш&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;%u юклаш дискини киритинг.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Бу %u юклаш диски.\n&quot;
++&quot;%u юклаш дискини киритинг.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Бу &lt;product&gt; юклаш диски эмас.\n&quot;
++&quot;%u юклаш дискини киритинг.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Махфий сўз&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Драйверли дискетани тайёрланг.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD диск хатоси&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Бу икки томонли DVD диск. Сиз иккинчи томондан юкладингиз.\n&quot;
++&quot;\n&quot;
++&quot;DVD дискн ўгиринг ва давом эттиринг.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Ўчириш&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Компьютер ўчирилсинми?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Қаттиқ диск&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Қаттиқ дискдан ўрнатиш&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Диск ускунаси (агар бўш бўлса барча дисклар текширилади)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Директория\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP орқали ўрнатиш&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Сервер\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Махфий сўз\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Фойдаланувчи (агар бўш бўлса аноним кирилади)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS орқали ўрнатиш&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Фойдаланувчи (агар бўш бўлса \&quot;guest\&quot; дан фойдаланилади)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB (Windows Share) орқали ўрнатиш&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP орқали ўрнатиш&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Драйвер&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Домен\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Бошқа вариантлар&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Тил&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Ўрнатиш --IOAPIC ёқилган&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Ўрнатиш --IOAPIC ўчирилган&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Ўрнатиш --Local APIC ўчирилган&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Ҳа&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Йўқ&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Файл&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Умумий жилд\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Автоматик усул&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Қўлбола усул&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;ZEN диск қисмидаги параметрларни мослаш&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;ZEN диск қисмидаги янгилаш ёки ўрнатиш&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;ZEN диск қисми юкловчисини қайта ўрнатиш&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;ZEN диск қисмини ўчириш&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;ZEN диск қисмини ёқиш&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Мант усули&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Микродастурий таъминотни (firmware) текшириш&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Драйвер янгиланишларни CD-ROM'дан юклаш учун,\n&quot;
++&quot;янгиланиш файллари номини (вергул ',' билан ажратилган)\n&quot;
++&quot;шу ерга киритинг:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Манба&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Видео усули&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Драйверни янгилаш&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Арх.&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Кернел опцияси&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Андоза&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Хавфсиз параметрлар&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;ACPI'сиз&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Локал APIC'сиз&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Ўрнатилган тизимни янгилаш&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Ўрнатиш манбасини текшириш&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Клавиатура&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Драйвер янгиланишини юклаб олиш&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Драйвер янгиланиш URL манзилини киритинг\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Хато архитектура&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;Бу 32-битли компьютер. Ушбу компьютерда 64-битли дастурий таъминотни ўрната &quot;
++&quot;олмайсиз.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Диққат&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;Сиз 64-битли компьютерга 32-битли дастурий таъминотни ўрнатмоқчисиз.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;\&quot;%s\&quot; учун драйвер янгилаш дискини \n&quot;
++&quot; қўйинг.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Mandriva Linux CD-ROM дискини ускунага қўйинг.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;draksnapshot заҳира нусхасини тиклаш&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Mandriva Linux 2010 Spring'ни юклаш&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Mandriva Linux 2010 Spring тизимини ўрнатиш&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpowapo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/wa.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/wa.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/wa.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,484 @@
++# LANGUAGE translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader.wa\n&quot;
++&quot;POT-Creation-Date: 2006-10-01 19:37+0200\n&quot;
++&quot;PO-Revision-Date: 2008-11-11 18:08+0100\n&quot;
++&quot;Last-Translator: \n&quot;
++&quot;Language-Team: American English &lt;kde-i18n-doc@lists.kde.org&gt;\n&quot;
++&quot;Language: \n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n &gt; 1);\n&quot;
++&quot;X-Generator: LoKalize 0.2\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;'l est Bon&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Rinoncî&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Renonder l' copiutrece&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Continouwer&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Astalaedje&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Astalaedje al mwin&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Astalaedje--ACPI dismetou&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Astalaedje--Tchuzes di såvrité&quot;
++
++#. txt_safe_linux
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Enonder a pårti del deure plake&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Sistinme di houplaedje&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Saye di memwere&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Tchuzes d' enondaedje&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Dji cwite...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Vos cwitez l' menu grafike d' enondaedje sistinme et\n&quot;
++&quot;enondez l' eterface e mode tecse.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Aidance&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Dj' enonde...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Dji tchedje li nawea Linux\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Dji tchedje memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Tcherdjeu d' enondaedje sistinme&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;Aroke d' I/R&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Candjî l' plake d' enondaedje&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Intrez l' diskete d' enondaedje %u&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Çouci est l' diskete d' enondaedje %u.\n&quot;
++&quot;Intrez l' diskete d' enondaedje %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Çouci n' est nén ene diskete d' enondaedje &lt;product&gt;.\n&quot;
++&quot;Intrez l' diskete d' enondaedje %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Sicret&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Preparez vosse diskete di metaedje a djoû di moenneu.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;Aroke DVD&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Çouci est on DVD a deus costés. Vos avoz enondé a pårti do deujhinme costé.\n&quot;
++&quot;\n&quot;
++&quot;Ritournez l' DVD et adon continouwez.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Distinde&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Arester l' sistinme asteure?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Deure plake&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Astalaedje del deure plake&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Éndjin plake (scane totes les plakes si vude)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Ridant\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;Astalaedje FTP&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Sierveu\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Sicret\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Uzeu (login racamuchyî si vude)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;Astalaedje NFS&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Uzeu (eploye \&quot;guest\&quot; si vude)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;Astalaedje SMB (pårtaedje avou Windows)&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;Astalaedje HTTP&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Mineu&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Dominne\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Ôtès tchuzes&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Lingaedje&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Astalaedje--IOAPIC en alaedje&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Astalaedje--IOACPI dismetou&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Astalaedje--Locå APIC en alaedje&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Oyi&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Nonna&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Fitchî&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Pårtaedje\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Môde otomatike&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Môde al mwin&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Apontyî les parametes sol pårticion ZEN&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Astaler ou mete a djoû les pårticion ZEN&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Rastaler l' tcherdjeu d' enondaedje del pårticion ZEN&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Dismete li pårticion ZEN&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Mete en alaedje le pårticion ZEN&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Môde tecse&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Saye firmware&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Po tcherdjî les metaedjes a djoû d' moenneu direk do\n&quot;
++&quot;CD-ROM, intrez les nos d' fitchî di metaedje a djoû\n&quot;
++&quot;(metous a pårt pa des comas ',') vaici:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Sourdant&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Môde videyo&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Metaedje a djoû do mineu&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Årtch&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Prémetou&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Tchuzes såvrité&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Nol ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Nou locå ACPI&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Remantchî on sistinme d' astalé&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Verifyî media d' astalaedje&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Taprece&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;Linux--Tchuzes di såvrité&quot;
++
++#~ msgid &quot;Kernel&quot;
++#~ msgstr &quot;Nawea&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpoxhpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/xh.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/xh.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/xh.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,480 @@
++# LANGUAGE translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader\n&quot;
++&quot;PO-Revision-Date: 2005-07-27 11:49+0200\n&quot;
++&quot;Last-Translator: Novell Language &lt;language@novell.com&gt;\n&quot;
++&quot;Language-Team: Novell Language &lt;language@novell.com&gt;\n&quot;
++&quot;Language: \n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;KULUNGILE&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Rhoxisa&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Phinda umisele inkqubo&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Uyaqhuba?&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Ukuhlohla&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Ukuhlohla Ngokwenza Ngesandla&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Ukuhlohlwa kwe--ACPI Kususwe Isakhono&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Imimiselo Yokuhlohla -- Ikhuselekile&quot;
++
++#. txt_safe_linux
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Misela Inkqubo Kwiqokobhe Lekhompyutha&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Isixokelelwano Sokuhlangula&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Uvavanyo Lukavimba Wolwazi&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Izikhethwa Zomiselo Lwenkqubo&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Kuyaphunywa...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Ushiya imenyu yegrafu yokumisela inkqubo kwaye\n&quot;
++&quot;uqalisa ngesithuba somdibaniso wemo yokusebenza kwisiqendu.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Uncedo&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Kuyaqaliswa...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Kulayishwa i-Kernel ye-Linux\n&quot;
++&quot;\n&quot;
++&quot; \n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Kulayishwa uvavanyo lwe-mem86\n&quot;
++&quot;\n&quot;
++&quot; \n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Umlayishi Womiselo Lwenkqubo&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;Imposiso ye-I/O &quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Guqula Idiski Yokumisela Inkqubo&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Faka idiski yokumisela inkqubo %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Le yidiski yokumisela inkqubo ye-%u.\n&quot;
++&quot;Faka idiski yokumisela inkqubo ye-%u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Le asiyodiski yokumisela inkqubo ye-&lt;mveliso&gt;.\n&quot;
++&quot;Faka idiski yokumisela inkqubo ye-%u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Igama lokugqithisa&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Yenza i-floppy yohlaziyo lomqhubi lulunge.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;Imposiso ye-DVD&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Le yi-DVD yamacala amabini. Umisele inkqubo kwicala lesibini.\n&quot;
++&quot;\n&quot;
++&quot; Guqula i-DVD uze uqhube.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Umbane Ucimile&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Uyasizizilizisa isixokelelwano ngoku?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Okuseqokobheni Lekhompyutha&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Ukuhlohla Okuseqokobheni Lekhompyutha&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Isixhobo Sediski (Sifota ngokuskena Zonke Iidiski Xa Silikhamte)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Uvimba weefayili\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;Ukuhlohlwa kwe-FTP&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Iseva\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Igama lokugqithisa\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Umsebenzisi (Ungena Ngokungalixeli Igama Ukuba likhamte)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;Ukuhlohlwa kwe-NFS&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Umsebenzisi (Usebenzisa\&quot;undwendwe\&quot; Ukuba likhamte)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;Ukuhlohlwa kwe-SMB (Ukwabelana ne-Windows)&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;Ukuhlohlwa kwe-HTTP&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Umqhubi&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Ummandla wolawulo\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Ezinye Izikhethwa&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Ulwimi&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Ukuhlohlwa kwe--IOAPIC Kunikwe Isakhono&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Ukuhlohlwa kwe--IOAPIC Kususwe Isakhono&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Ukuhlohlwa kwe--APIC Yalapho Kususwe Isakhono&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Ewe&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Hayi&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Ifayili&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Ukwabelana\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Imo Yokusebenza Ezenzekelayo&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Imo Yokusebenza Yokwenza Ngesandla&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Yenza Ubumbeko Lwemida Yenkcazelo Kwisahlulelo se-ZEN&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Hlohla okanye Hlaziya Isahlulelo se-ZEN&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Phinda Uhlohle Umlayishi Womiselo Lwenkqubo Yesahlulelo se-ZEN&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Susa Isakhono Kwisahlulelo se-ZEN&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Nika Isakhono Kwisahlulelo se-ZEN&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Imo Yokusebenza Ngesiqendu&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Uvavanyo lwe-Firmware&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Ukuze ulayishe iziganeko zohlaziyo lomqhubi ngokungqalileyo ukusuka kwi-CD-&quot;
++&quot;ROM,\n&quot;
++&quot;ngenisa amagama eefayili zokuhlaziya umqhubi (ezahlukaniswe\n&quot;
++&quot; ngeekoma ',') apha:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Uvimba&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Ezokwakha.&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++#, fuzzy
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Ezinye Izikhethwa&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Ibhodi yamaqhosha&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;Imimiselo Ye-Linux -- Ikhuselekile&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpozh_CNpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/zh_CN.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/zh_CN.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/zh_CN.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,488 @@
++# LANGUAGE translations for boot loader
++# Copyright (C) 2004 SUSE LINUX AG
++# Thruth Wang &lt;lihaow@opera.com&gt;, 2008
++# Funda Wang &lt;fundawang@gmail.com&gt;, 2009
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader\n&quot;
++&quot;POT-Creation-Date: \n&quot;
++&quot;PO-Revision-Date: 2008-06-02 02:05+0800\n&quot;
++&quot;Last-Translator: Funda Wang &lt;fundawang@gmail.com&gt;\n&quot;
++&quot;Language-Team: Simplified Chinese\n&quot;
++&quot;Language: \n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;确定&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;取消&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;重启&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;继续&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;启动 Microsoft Windows&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;硬件检测工具&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;内核为 %s 的 Linux&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;检查安装介质&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;手动安装&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;安装 - 禁用 ACPI&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;安装 - 安全设置&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;启动 Mandriva Linux 2010 Spring (安全模式)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;从硬盘引导&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;挽救系统&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;内存测试&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;引导选项&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;正在退出...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;您将离开图形引导菜单\n&quot;
++&quot;并启动文本方式界面。&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;帮助&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;正在启动...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;正在装载 Linux 内核\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;正在装载 memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;引导装载程序&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;I/O 错误&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;更换引导盘&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;插入引导盘 %u。&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;这是引导盘 %u。\n&quot;
++&quot;插入引导盘 %u。&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;这不是 &lt;product&gt; 引导磁盘。\n&quot;
++&quot;请插入引导磁盘 %u。&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;口令&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;准备好驱动程序更新软盘。&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD 错误&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;这是双面 DVD。您是从第二面引导的。\n&quot;
++&quot;\n&quot;
++&quot;请将 DVD 翻转然后继续。&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;关闭电源&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;是否立即暂停系统?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;硬盘&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;硬盘安装&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;磁盘设备(如果为空,则扫描所有磁盘)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;目录\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP 安装&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;服务器\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;密码\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;用户(如果未填写,则以匿名身份登录)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS 安装&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;用户(如果为空,则使用“guest”)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB (Windows 共享)安装&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP 安装&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;驱动程序&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;域\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;其他选项&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;语言&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;安装 - 启用 IOAPIC&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;安装 - 禁用 IOAPIC&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;安装 - 禁用本地 APIC&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;是&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;否&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;文件&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;共享\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;自动方式&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;手动方式&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;在 ZEN 分区上配置参数&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;安装或更新 ZEN 分区&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;重新安装 ZEN 分区引导装载程序&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;禁用 ZEN 分区&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;启用 ZEN 分区&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;文本方式&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;固件测试&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;要直接从 CD-ROM 装入驱动程序更新,\n&quot;
++&quot;请在此处输入驱动程序更新文件名(以逗号“,”\n&quot;
++&quot;隔开):\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;源&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;视频模式&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;驱动程序更新&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;架构&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;内核选项&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;默认&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;安全设置&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;无 ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;无本地 ACPI&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;修复已安装系统&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;检查安装介质&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;键盘&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;下载驱动程序更新&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;输入驱动程序更新 URL\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;错误的架构&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;这是 32 位计算机。您不能使用 64 位软件。&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;警告&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;您即将在 64 位计算机上安装 32 位软件。&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;请插入驱动程序更新光盘\n&quot;
++&quot;“%s”。&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;请将 Mandriva Linux 的光盘放入驱动器。&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;恢复 DrakSnapshot 备份&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;启动 Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;安装 Mandriva Linux 2010 Spring&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpozh_TWpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/zh_TW.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/zh_TW.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/zh_TW.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,484 @@
++# LANGUAGE translations for boot loader
++# Copyright (C) 2004 SUSE LINUX AG
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader\n&quot;
++&quot;PO-Revision-Date: 2008-05-13 22:16+0800\n&quot;
++&quot;Last-Translator: swyear &lt;swyear@gmail.com&gt;\n&quot;
++&quot;Language-Team: Chinese Traditional &lt;zh@li.org&gt;\n&quot;
++&quot;Language: \n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;確定&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;取消&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;重新開機&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;繼續&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;啟動 Microsoft Windows&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;硬體偵測工具&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;核心 %s 的 Linux&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;檢查安裝媒體&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;手動安裝&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;安裝 -- 關閉 ACPI&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;安裝 -- 安全設定&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;啟動 Mandriva Linux 2010 Spring (安全模式)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;從硬碟開機&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;救援系統&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;記憶體測試&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;開機選項&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;正在離開...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;您將離開圖形開機功能表並\n&quot;
++&quot;啟動文字模式介面。&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;說明&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;正在啟動...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;載入 Linux 核心\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;載入 memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;開機載入器&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;I/O 錯誤&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;變更開機磁碟&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;插入開機磁碟 %u。&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;這是開機磁片 %u。\n&quot;
++&quot;插入開機磁片 %u。&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;這不是 &lt;product&gt; 開機磁片。\n&quot;
++&quot;插入開機磁片 %u。&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;密碼&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;備妥您的驅動程式更新磁片。&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD 錯誤&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;這是雙面 DVD。您是從第二面開機。\n&quot;
++&quot;\n&quot;
++&quot;請將 DVD 翻面,然後繼續。&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;關閉電源&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;要立即終止系統嗎?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;硬碟&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;硬碟安裝&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;磁碟裝置 (如果為空白則掃描所有磁碟)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;目錄\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP 安裝&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;伺服器\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;密碼\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;使用者 (如果是空的,將匿名登入)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS 安裝&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;使用者 (如果空白則使用 \&quot;guest\&quot;)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB (Windows 分享) 安裝&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP 安裝&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;驅動程式&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;領域\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;其他選項&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;語言&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;安裝 -- 開啟 IOAPIC&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;安裝 -- 關閉 IOAPIC&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;安裝 -- 關閉 Local APIC&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;是&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;否&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;檔案&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;共享\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;自動模式&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;手動模式&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;設定 ZEN 分割區參數&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;安裝或更新 ZEN 分割區&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;重新安裝 ZEN 分割區開機載入器&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;停用 ZEN 分割區&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;啟用 ZEN 分割區&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;文字模式&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;韌體測試&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;若要從 CD-ROM 直接載入驅動程式更新,\n&quot;
++&quot;請在此輸入驅動程式更新檔案名稱 \n&quot;
++&quot;(由逗號 ',' 分隔):\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;來源&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;視訊模式&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;驅動程式更新&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;架構&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;核心選項&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;預設值&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;安全設定&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;關閉 ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;關閉本機 APIC&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;修復已安裝的系統&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;檢查安裝媒體&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;鍵盤&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;下載驅動程式更新&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;輸入驅動程式更新網址\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;錯誤的系統架構&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;這是一台 32 位元的電腦,您無法在其上使用或安裝 64 位元的軟體。&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;警告&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;您將要在 64 位元的電腦上安裝設計給 32 位元電腦執行的軟體&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;請插入 \&quot;%s\&quot; 的更新驅動程式的光碟片。&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;將 Mandriva Linux 的光碟重新放回光碟機&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;使用 draksnapshot 的備份回復&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;啟動 Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;安裝 Mandriva Linux 2010 Spring&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpozupo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/zu.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/zu.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/zu.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,479 @@
++# LANGUAGE translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader\n&quot;
++&quot;PO-Revision-Date: 2005-07-27 11:49+0200\n&quot;
++&quot;Last-Translator: Novell Language &lt;language@novell.com&gt;\n&quot;
++&quot;Language-Team: Novell Language &lt;language@novell.com&gt;\n&quot;
++&quot;Language: \n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;OK&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Khansela&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Vula kabusha&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Qhubeka&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Ukufaka uhlelo&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Ukuzifakela Mathupha&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Ukufaka--I-ACPI Icishiwe&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Ukufaka Uhlelo--Amasethingi Aphephile&quot;
++
++#. txt_safe_linux
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Qalisa kuGalaza (Hard Disk)&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Hlenga Isistimu&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Ukuhlola Imemori&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Okukhethwa Kukho Kokuqalisa&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Luyaphuma...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Uyaphuma kwimenu yezithombe yokuqalisa futhi\n&quot;
++&quot;i-interface yemodi elandelayo.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Usizo&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Iyaqalisa...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Ifaka i-Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot; \n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Ifaka i-memtes86\n&quot;
++&quot;\n&quot;
++&quot; \n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;I-Boot Loader&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;Iphutha le-I/O&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Shintsha Idiski Yokuqalisa&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Faka idiski yokuqalisa%u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Lena idiski yokuqalisa %u.\n&quot;
++&quot;Faka idiski yokuqalisa %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Lena akuyona &lt;product&gt;idiski yokuqalisa.\n&quot;
++&quot;Faka idiski yokuqalisa %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Iphasiwedi&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Yenza ukuba iflophi yokuvuselela i-driver yakho ihlale ilungele.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;Iphutha le-DVD&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Lena yi-DVD enezinhlangothi ezimbili. Uqalise ohlangothini lwesibili.\n&quot;
++&quot;\n&quot;
++&quot; Phendula i-DVD ukuze uqhubeke.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Cisha&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Misa isistimu manje?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Ugalaza (hard disk)&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Ukufakwa Kukagalaza (hard disk)&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Idivayisi Yediski (Iskena Wonke Amadiski Uma Engenalutho)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;I-directory\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;Ukufakwa Kwe-FTP&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Isiphakelalwazi\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Iphasiwedi\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Umsebenzisi (Ukungena Kongaziwa Uma Kungenalutho)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;Ukufakwa Kwe-NFS&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Umsebenzisi (Usebenzisa \&quot;isivakashi\&quot; Uma Kungenalutho)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;Ukufakwa Kwe-SMB (I-Windows Share)&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;Ukufakwa Kwe-HTTP&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;I-driver&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;I-domain\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Okunye Ongakhetha Kukho&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Ulimi&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Ukufaka Uhlelo--IOAPIC Ivuliwe&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Ukufaka Uhlelo--IOAPIC Icishiwe&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Ukufaka Uhlelo--I-APIC Eseduze Icishiwe&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Yebo&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Cha&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Ifayela&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Abelana\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Imodi Ezenzakalelayo&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Imodi Yokuzenzela Mathupha&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Hlela Amapharamitha Ekamelweni (partition) Le-ZEN&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Faka noma Uvuselele Ikamelo Le-ZEN&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Phinde Ufake I-Boot Loader Yekamelo Le-ZEN&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Yenza Ikamelo Le-ZEN Lingasebenzi&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Yenza Ikamelo Le-ZEN Lisebenze&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Imodi Yombhalo&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Uvivinyo Lwe-Firmware&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Ukuze ufake izivuseleli ze-driver ngokuqondile ukusuka kwi-CD-ROM,\n&quot;
++&quot;faka amagama efayela yezivuseleli ze-driver (ehlukaniswe\n&quot;
++&quot; ngokhefana',') lapha:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Umthombo&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;I-Arch&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++#, fuzzy
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Okunye Ongakhetha Kukho&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Okufike Nohlelo (default)&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Ikhibhodi&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;I-Linux--Amasethingi Aphephile&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunksrcMakefile">Added: theme/trunk/mageia-gfxboot-theme/trunk/src/Makefile</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/src/Makefile (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/src/Makefile 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,16 @@
++BINDIR := $(shell [ -x ../../../gfxboot-compile ] &amp;&amp; echo ../../../ )
++
++GFXBOOT_COMPILE = $(BINDIR)gfxboot-compile
++BFLAGS = -O -v -L ../..
++
++all: main.bin
++
++main.bin: main.bc *.inc ../po/.ready
++ $(GFXBOOT_COMPILE) $(BFLAGS) -l main.log -c main.bc $@
++
++../po/.ready:
++ make -C ../po
++
++clean:
++ rm -f main.bin *.log *~
++
+
+
+Property changes on: theme/trunk/mageia-gfxboot-theme/trunk/src/Makefile
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themetrunkmageiagfxbootthemetrunksrcbsplashinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/src/bsplash.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/src/bsplash.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/src/bsplash.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,291 @@
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% Boot loader splash code.
++%
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Some global vars.
++
++/.b_init 0 def
++/.b_done 1 def
++/.b_run 2 def
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Init splash.
++%
++% ( ) ==&gt; ( )
++%
++/bsplash.init {
++ /bsplash.list [
++ config.welcome 2 eq { [ /b1.init /b1.done /b1.run ] } if
++ [ /b2.init /b2.done /b2.run ]
++ ] def
++
++ bsplash.list { dup .b_init get exec } forall
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Free splash memory.
++%
++% ( ) ==&gt; ( )
++%
++/bsplash.free {
++ bsplash.list { dup .b_done get exec } forall
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Show boot loader splash.
++%
++% ( ) ==&gt; ( )
++%
++/bsplash.show {
++ currentimage
++
++ &quot;welcome.jpg&quot; findfile /splash.file over def setimage
++
++ 0 0 moveto 0 0 image.size image
++
++ bsplash.init
++
++ bsplash.skip not { 100000 usleep } if
++
++ bsplash.skip not {
++ {
++ 0 usleep
++ bsplash.skip { exit } if
++ bsplash.run { exit } if
++ } loop
++ } if
++
++ bsplash.free
++
++ setimage
++
++ /splash.file xfree
++
++} def
++
++
++% Run splash animations. Return 'true' when done.
++%
++% ( ) ==&gt; ( true|false )
++%
++/bsplash.run {
++ true
++
++ bsplash.list { dup .b_run get exec and } forall
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Just wait.
++%
++% ( ) ==&gt; ( )
++%
++/bsplash.done {
++ bsplash.skip not {
++ 1500000 usleep
++ } if
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Check if we should skip the intro.
++%
++% ( ) ==&gt; ( true|false )
++%
++/bsplash.skip {
++ % any key pressed?
++ getkey 0xffff and {
++ /bsplash.skip true def
++ true
++ } {
++ false
++ } ifelse
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Init.
++%
++% ( array ) ==&gt; ( )
++%
++/b1.init {
++ pop
++
++ /b1_ok false def
++
++ /b1_cd &quot;cd.jpg&quot; readimage def
++ /b1_cd_mask &quot;cd_a.jpg&quot; readimage def
++
++ b1_cd .undef eq b1_cd_mask .undef eq or { return } if
++
++ /b1_cd_tmp b1_cd imgsize 0 0 moveto savescreen def
++
++ 20 350 moveto
++ /b1_orig 300 150 savescreen def
++ /b1_buf 300 150 savescreen def
++
++ /b1_idx 0 def
++ /b1_steps 20 def
++
++ /b1_ok true def
++} def
++
++
++/b1_x [ 0 2 6 15 25 37 51 67 83 98 113 125 136 144 148 150 ] def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Cleanup.
++%
++% ( array ) ==&gt; ( )
++%
++/b1.done {
++ pop
++
++ b1_ok not { return } if
++
++ /b1_cd xfree
++ /b1_cd_mask xfree
++ /b1_cd_tmp xfree
++
++ /b1_orig xfree
++ /b1_buf xfree
++
++ /b1_ok false def
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Run animation.
++%
++% Return true when finished.
++%
++% ( array ) ==&gt; ( true|false )
++%
++/b1.run {
++ pop
++
++ b1_ok not { true return } if
++
++ /b1_idx inc
++
++ b1_idx b1_steps gt { true return } if
++
++ b1_buf b1_orig over length memcpy
++
++ b1_cd_tmp b1_cd_mask over length memcpy
++ 0 255 b1_idx 20 mul sub 0 max b1_cd_tmp blend
++
++ /b1_dx_cur b1_x b1_idx aget dup .undef eq { pop 150 } if def
++
++ 150 0 moveto
++ b1_cd b1_cd_tmp b1_buf blend
++
++ 150 b1_dx_cur 2 div sub 0 moveto
++ b1_cd b1_cd_tmp b1_buf blend
++
++ 150 b1_dx_cur sub 0 moveto
++ b1_cd b1_cd_tmp b1_buf blend
++
++
++ 20 350 moveto b1_buf restorescreen
++
++ false
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Init.
++%
++% ( array ) ==&gt; ( )
++%
++/b2.init {
++ pop
++
++ /b2_ok false def
++
++ /b2_text &quot;mageia.pcx&quot; readimage def
++ % /b2_spot &quot;spotlite.jpg&quot; readimage def
++
++ b2_text .undef eq { return } if
++
++ /b2_text_tmp b2_text imgsize 0 0 moveto savescreen def
++ % /b2_spot_tmp b2_spot imgsize 0 0 moveto savescreen def
++
++ 199 37 moveto
++ /b2_orig b2_text imgsize savescreen def
++ /b2_buf b2_text imgsize savescreen def
++
++ /b2_idx 0 def
++ /b2_start 10 def
++ /b2_steps 20 def
++
++ /b2_ok true def
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Cleanup.
++%
++% ( array ) ==&gt; ( )
++%
++/b2.done {
++ pop
++
++ b2_ok not { return } if
++
++ /b2_text xfree
++ /b2_text_tmp xfree
++
++ /b2_orig xfree
++ /b2_buf xfree
++
++ /b2_ok false def
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Run animation.
++%
++% Return true when finished.
++%
++% ( array ) ==&gt; ( true|false )
++%
++/b2.run {
++ pop
++
++ b2_ok not { true return } if
++
++ /b2_idx inc
++
++ b2_idx b2_start b2_steps add gt { true return } if
++
++ b2_idx b2_start lt { false return } if
++
++ b2_buf b2_orig over length memcpy
++
++ b2_text_tmp b2_text over length memcpy
++ 90 255 b2_idx b2_start sub 20 mul sub 90 max b2_text_tmp blend
++
++ % b2_spot_tmp b2_spot over length memcpy
++ % 0 255 b2_idx b2_start sub 20 mul sub 0 max b2_spot_tmp blend
++
++ % 0 0 moveto
++ % 0x80ff80 b2_spot_tmp b2_buf blend
++ 0 0 moveto
++ 0xffffff b2_text_tmp b2_buf blend
++
++ 199 37 moveto b2_buf restorescreen
++
++ false
++
++} def
++
++
+
+<a id="themetrunkmageiagfxbootthemetrunksrcbuttoninc">Added: theme/trunk/mageia-gfxboot-theme/trunk/src/button.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/src/button.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/src/button.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,116 @@
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% button handling
++%
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Button templates.
++%
++% [ x y width height label selected hotkey action ]
++%
++/button.ok { [ 0 0 90 25 txt_ok false 0 0 ] } def
++/button.cancel { [ 0 0 90 25 txt_cancel false keyEsc 0 ] } def
++/button.reboot { [ 0 0 90 25 txt_reboot false 0 0 ] } def
++/button.continue { [ 0 0 90 25 txt_continue false 0 0 ] } def
++% /button.eject { [ 0 0 90 25 &quot;Eject&quot; false 0 0 ] } def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Set default button.
++%
++% ( button ) =&gt; ( button )
++%
++/button.default {
++ dup 5 true put
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Make it _not_ the default button.
++%
++% ( button ) =&gt; ( button )
++%
++/button.notdefault {
++ dup 5 false put
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Set button position.
++%
++% ( button x y ) ==&gt; ( button )
++%
++/button.moveto {
++ rot dup 0 5 -1 roll put exch over 1 rot put
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Assign action to button.
++%
++% ( button action ) =&gt; ( button )
++%
++/button.setaction {
++ over 7 rot put
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Draw button.
++%
++% ( button ) ==&gt; ( )
++%
++/button.show {
++ /bt.x over 0 get def
++ /bt.y over 1 get def
++ /bt.width over 2 get def
++ /bt.height over 3 get def
++ /bt.text over 4 get def
++ /bt.default exch 5 get def
++
++ bt.text strsize
++ bt.height sub neg 2 div /bt.y.textofs exch def
++ bt.width sub neg 2 div /bt.x.textofs exch def
++
++ bt.x bt.y moveto
++ currentpoint currentpoint currentpoint
++
++ currentpoint bt.width bt.height window.current .color.bg get setcolor fillrect moveto
++
++ bt.default {
++ black black
++ } {
++ window.current .color.bg get dup
++ } ifelse
++ bt.width bt.height drawborder
++ moveto 1 1 rmoveto white black bt.width 2 sub bt.height 2 sub drawborder
++ moveto
++ % 2 2 rmoveto white black bt.width 4 sub bt.height 4 sub drawborder
++
++ window.current .color.fg get setcolor
++ moveto bt.x.textofs bt.y.textofs rmoveto bt.text show
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Press button.
++%
++% ( button ) ==&gt; ( )
++%
++/button.press {
++ /bt.x over 0 get def
++ /bt.y over 1 get def
++ /bt.width over 2 get def
++ /bt.height exch 3 get def
++
++ bt.x 3 add bt.y 3 add moveto
++ bt.width 7 sub bt.height 7 sub savescreen
++ 1 1 rmoveto dup restorescreen free
++
++ bt.x 1 add bt.y 1 add moveto black white bt.width 2 sub bt.height 2 sub drawborder
++ % bt.x 2 add bt.y 2 add moveto black white bt.width 4 sub bt.height 4 sub drawborder
++} def
++
++
+
+<a id="themetrunkmageiagfxbootthemetrunksrccommoninc">Added: theme/trunk/mageia-gfxboot-theme/trunk/src/common.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/src/common.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/src/common.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,1443 @@
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% Main part.
++%
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++
++% max command line length
++/cmdlinelength 512 def
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% Install source is 64bit?
++%
++% ( ) ==&gt; ( true|false )
++%
++/64bit_source {
++ % 64 bit dir exists and is != 32 bit dir
++ 64bit_boot_dir 32bit_boot_dir ne
++ 64bit_boot_dir .undef ne and
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% Are we a dvd?
++%
++% ( ) ==&gt; ( true|false )
++%
++/is_dvd {
++ % check only once
++ is_dvd.result .undef ne { is_dvd.result return } if
++
++ /is_dvd.result
++ mediatype m_cdrom eq {
++ 0x10 readsector
++ dup 0x50 add getdword exch free
++ 9 shr % iso size in MB
++ 720 gt % assume dvd if &gt; 720 MB
++ } {
++ false
++ } ifelse
++ def
++
++ is_dvd.result return
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% Install source is 32 &amp; 64bit?
++%
++% ( ) ==&gt; ( true|false )
++%
++/32+64bit_source {
++ 32bit_boot_dir .undef ne
++ % uncomment next line to automatically warn about 32bit software on 64bit machines, too
++ 64bit_boot_dir .undef ne and
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% Check if there are boot directories for 32 &amp; 64bit.
++%
++% Assumes 32bit to be in *i586* and 64bit in *x86_64*.
++%
++% ( ) ==&gt; ( )
++%
++/check_arch_boot_dir {
++ &quot;/i586/isolinux/isolinux.cfg&quot; filesize .undef ne {
++ /32bit_boot_dir &quot;/i586/isolinux/&quot; def
++ } if
++
++ &quot;/x86_64/isolinux/isolinux.cfg&quot; filesize .undef ne {
++ /64bit_boot_dir &quot;/x86_64/isolinux/&quot; def
++ } if
++
++ % font.normal setfont
++ % 0 400 moveto 32bit_boot_dir print
++ % 0 420 moveto 64bit_boot_dir print dtrace
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% input event handling
++%
++% ( key ) ==&gt; ( input_buffer menu_entry action )
++%
++% key
++% bit 0-7 ascii
++% bit 8-15 scan code
++% bit 16-32 status bits (ctrl, shift...)
++%
++% action
++% 0: ok, stay in input loop
++% 1: switch to text mode
++% &gt;=2: start linux
++%
++/KeyEvent {
++ % timeout
++
++ dup 0 eq { boot.ed.list buildcmdline 2 return } if
++
++ debug 4 ge {
++ % print keycode somewhere
++ -1 settransparentcolor
++ white setcolor
++ 500 0 moveto dup print &quot; &quot; print
++ } if
++
++ dup 0xff00 and 16 shl over 0xff and dup 0xe0 eq { pop 0 } if add /key exch def
++ 16 shr 0xffff and /keystat exch def
++
++ key 24 shr 0xff and dup 0xf0 ge exch 0xf4 le and { key serial.input return } if
++
++ key
++
++ config.keymap { mapkey } if
++
++ dup 0xffffff and dup { exch } if pop
++
++ debug 4 ge {
++ % print mapped key somewhere
++ -1 settransparentcolor
++ white setcolor
++ 500 20 moveto dup print &quot; &quot; print
++ } if
++
++ % some special keys
++ debug.input
++
++ % put key through normal input queue
++ window.input
++
++ pop
++
++ window.action actExit eq {
++ /window.action actNothing def
++ &quot;&quot; -1 1 return
++ } if
++
++ window.action actCloseInfo eq {
++ /window.action actNothing def
++ % cd change dialog
++ info.type 5 eq info.type 6 eq or {
++ % 'chdir' triggers fs metadata re-read
++ getcwd dup .undef ne { chdir } { pop } ifelse
++ } if
++
++ &quot;&quot; -1 3 return
++ } if
++
++ window.action actPassword eq {
++ /window.action actNothing def
++ password.dialog {
++ password.dialog .ed.buffer.list get 0 get
++ } { &quot;&quot; } ifelse
++ -1 3 return
++ } if
++
++ window.action actStart eq {
++ /window.action actNothing def
++ /load_error false def
++
++ syslinux {
++ menu.texts menu.entry 0 max menu.texts length 1 sub min get
++ dup &quot;mem.min[%s]&quot; mem.min sprintf
++ &quot;mem.msg[%s]&quot; mem.msg sprintf
++ } if
++
++ % some tricks to make it possible to review the complete command line
++ debug 3 ge xxx.cmdline .undef eq and {
++ /window.action actNothing def
++
++ boot.ed.list buildcmdline /xxx.menu exch def /xxx.cmdline exch def
++
++ /dia window.dialog def
++ dia .title &quot;Kernel command line&quot; put
++ dia .text &quot;&quot; put
++ % Must all be of same size!
++ dia .ed.list 1 array put
++ dia .ed.buffer.list [ xxx.cmdline ] put
++ dia .ed.text.list [ &quot;All options\n&quot; ] put
++
++ dia .ed.focus 0 put
++ dia .ed.width 600 put
++ dia .ed.font font.normal put
++ dia .buttons
++ [ button.ok button.default actStart button.setaction ]
++ put
++ dia window.init
++ dia window.show
++
++ &quot;&quot; -1 0
++ } {
++ sound.done
++
++ xxx.cmdline .undef ne {
++ xxx.cmdline xxx.menu
++ /xxx.cmdline .undef def
++ } {
++ boot.ed.list buildcmdline
++ } ifelse
++ 2 return
++ } ifelse
++ } if
++
++ window.action actRedraw eq {
++ /window.action actNothing def
++ main.redraw
++ } if
++
++ window.action actRedrawBootOptionsPanel eq {
++ /window.action actNothing def
++ menu.entry true MenuSelect
++ panel.show
++ } if
++
++ window.action actRedrawPanel eq {
++ /window.action actNothing def
++ panel.show
++ } if
++
++ window.action actInstallOK eq {
++ /window.action actNothing def
++ install.ok
++ } if
++
++ window.action actInstallCancel eq {
++ /window.action actNothing def
++ install.cancel
++ } if
++
++ &quot;&quot; -1 0
++} def
++
++
++/bc.cmd cmdlinelength string def
++/mem.min 128 string def
++/mem.msg 256 string def
++
++
++% ( edit_object_list ) ==&gt; ( cmdline menu_entry )
++%
++/buildcmdline {
++ menu.entry 0 lt menu.entry menu.texts length ge or { pop &quot;&quot; -1 return } if
++
++ [ over
++ {
++ dup .inp_show get {
++ build1cmdline strdup
++ } {
++ pop
++ } ifelse
++ } forall
++
++ % empty? -&gt; pass at least the first edit object
++ dup [ eq { over 0 get build1cmdline strdup } if
++
++ ]
++
++ dup boot.splitstr join bc.cmd over strcpy pop free
++ dup { free } forall free
++
++ pop bc.cmd
++
++ % we want the index of the entry that was selected in the list of *all*
++ % entries (including hidden ones)
++ menu.texts menu.entry get
++ 0 1 menu.texts.real length
++ {
++ dup menu.texts.real exch get
++ 2 index eq { exit } { pop } ifelse
++ } for
++ exch pop
++
++} def
++
++
++% ( edit_object ) ==&gt; ( cmdline )
++%
++% grub:
++% just return
++%
++% syslinux &amp; lilo:
++% add kernel name at start of command line
++%
++/build1cmdline {
++ syslinux {
++ % set new working directory
++ xmenu.bits .xm_current get 1 eq { 64bit_boot_dir } { 32bit_boot_dir } ifelse
++ dup .undef ne {
++ dup getcwd ne { chdir } { pop } ifelse
++ } {
++ pop
++ } ifelse
++ } if
++ % getcwd 0 300 moveto show
++
++ % lilo &amp; syslinux: prepend kernel/label name
++ grub {
++ bc.cmd 0 0 put
++ } {
++ menu.texts menu.entry get
++ bits.suffix xmenu.bits .xm_current get get dup {
++ exch &quot;%s%s &quot;
++ } {
++ pop &quot;%s &quot;
++ } ifelse
++ bc.cmd sprintf
++ } ifelse
++
++ xmenu.kernelopts {
++ kernelopts.options xmenu.kernelopts .xm_current get get dup &quot;&quot; ne {
++ &quot;%s &quot; bc.cmd dup length add sprintf
++ } { pop } ifelse
++ } if
++
++ /cmdline.hidden over dup length .inp_hidden ge { .inp_hidden get } { pop .undef } ifelse def
++
++ cmdline.hidden {
++ cmdline.hidden &quot;&quot; ne {
++ cmdline.hidden &quot;%s &quot; bc.cmd dup length add sprintf
++ } if
++ } if
++
++ syslinux {
++
++ config.lang {
++ config.lang &quot;en_US&quot; ne {
++ config.lang &quot;lang=%s &quot; bc.cmd dup length add sprintf
++ } if
++ } if
++
++ v_impaired 1 ge {
++ &quot;braille=1 &quot; bc.cmd dup length add sprintf
++ } if
++
++ v_impaired 2 ge {
++ &quot;linemode=1 &quot; bc.cmd dup length add sprintf
++ } if
++ } if
++
++ xmenu.dud {
++ dud.options xmenu.dud .xm_current get get dup &quot;&quot; ne {
++ &quot;%s &quot; bc.cmd dup length add sprintf
++ } { pop } ifelse
++ } if
++
++ xmenu.profile {
++ profile.options xmenu.profile .xm_current get get dup &quot;&quot; ne {
++ &quot;%s &quot; bc.cmd dup length add sprintf
++ } { pop } ifelse
++ } if
++
++ xmenu.install {
++ config.noinstallopt menu.texts menu.entry get iselement not {
++ install.option &quot;&quot; ne {
++ install.option &quot;%s &quot; bc.cmd dup length add sprintf
++ } if
++ } if
++ } if
++
++ % add user-supplied options
++
++ bc.cmd exch .inp_buf get strcat &quot; &quot; strcat pop
++
++ % remove all but last 'vga' &amp; 'initrd' options
++ [ &quot;vga&quot; &quot;initrd&quot; ] dup {
++ {
++ bc.cmd over bootopt.find2 .undef eq { pop exit } if
++ bc.cmd over bootopt.remove free
++ } loop
++ } forall free
++
++ syslinux {
++ % find out initrd sizes for kernel loading progress bar
++ bc.cmd &quot;initrd&quot; bootopt.find dup .undef ne {
++ &quot;initrd=&quot; length add
++ dup dup skipnonspaces
++ sub neg
++ string
++ exch strcpy
++ % it's a ',' separated list
++ dup ',' split exch free
++ dup
++ {
++ dup
++ % skip leading '+' or '-'
++ dup 0 get dup '+' eq exch '-' eq or { 1 add } if
++ filesize dup .undef ne {
++ sectorsize 1 sub add
++ sectorsize div /progress_extra exch progress_extra add def
++ } { pop } ifelse
++ free
++ } forall
++ free
++ } { pop } ifelse
++ } if
++
++ % remove final space
++ bc.cmd dropspaces
++
++ bc.cmd
++} def
++
++
++/iso.needscheck {
++ false
++
++ /i_tmp 0x10 readsector def
++ i_tmp {
++ i_tmp dup length 1 sub 0 put
++ /i_tmp2 i_tmp 0x373 add cvs def
++ i_tmp2 &quot;check=1&quot; strstr {
++ pop true
++ } if
++
++ i_tmp free
++ } if
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% get rid of some entries
++% the resulting arrrays are malloced
++% ( menu_entries_array cmdline_args_array ) == &gt; ( menu_entries_array cmdline_args_array )
++/filter_install_menu_items {
++ /tmp.args exch def
++ /tmp.texts exch def
++
++ /keep_it {
++ syslinux {
++ dup &quot;alt0&quot; eq
++ over &quot;alt1&quot; eq or
++ over &quot;vgalo&quot; eq or
++ over &quot;vgahi&quot; eq or
++ over &quot;text&quot; eq or
++ over &quot;noacpi&quot; eq or
++ over &quot;64&quot; strstr 0 gt or
++ } {
++ dup &quot;linux-nonfb&quot; eq
++ } ifelse
++ exch pop not
++ } def
++
++ 0
++ tmp.texts {
++ keep_it { 1 add } if
++ } forall
++ dup
++ array /menu.args exch def
++ array /menu.texts exch def
++
++ /tmp.i 0 def
++ /tmp.dest_i 0 def
++ tmp.texts {
++ keep_it {
++ menu.args tmp.dest_i tmp.args tmp.i get put
++ menu.texts tmp.dest_i tmp.texts tmp.i get put
++ /tmp.dest_i tmp.dest_i 1 add def
++ } if
++ /tmp.i tmp.i 1 add def
++ } forall
++
++ menu.texts menu.args
++} def
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% ( menu_entries_array cmdline_args_array defaultentry ) == &gt; ( )
++/MenuInit {
++ bsplash.done
++
++ colorbits 8 le {
++ 0 setcolor 0 0 moveto screen.size fillrect loadpalette
++ } if
++
++ init
++
++ /menu.entry -1 def
++
++ /menu.dentry exch def
++ /menu.args.real exch def
++ /menu.texts.real exch def
++
++ menu.texts.real menu.args.real filter_install_menu_items
++ /menu.args exch def
++ /menu.texts exch def
++
++ /mi_name &quot;mediacheck&quot; &quot;&quot; gfxconfig.set.str
++
++ mi_name {
++ /remove.mediachk false def
++ sectorsize 0x800 eq {
++ /remove.mediachk iso.needscheck not def
++ } if
++ } {
++ /remove.mediachk false def
++ } ifelse
++
++ remove.mediachk menu.dentry mi_name ne and {
++ /mi_tmp 0 def
++ menu.texts {
++ mi_name eq { exit } if
++ /mi_tmp inc
++ } forall
++
++ mi_tmp menu.texts length lt {
++ /mi_tmp2 0 def
++ /menu.texts
++ [
++ menu.texts { mi_tmp2 mi_tmp eq { pop } if /mi_tmp2 inc } forall
++ ]
++ def
++
++ /mi_tmp2 0 def
++ /menu.args
++ [
++ menu.args { mi_tmp2 mi_tmp eq { pop } if /mi_tmp2 inc } forall
++ ]
++ def
++ } if
++ } if
++
++ window.main
++ dup window.init
++ window.show
++
++ config.beep { 3000 50000 beep } if
++
++ config.talk {
++ load_talk_dialog
++ menu.texts menu.idx get menuitemmap speak
++ } if
++
++ syslinux {
++ 32+64bit_source not {
++ 64bit 64bit_source not or not {
++ notimeout 64bit_popup
++ } if
++
++ } if
++ } if
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% ( text errorcode ) ==&gt; ( )
++% errorcode:
++% 0 normal info
++% 1 fatal error
++% 2 missing file
++% 3 disk change
++% 4 disk change failed
++% 5 ask for cd change
++% 6 change cd back to original
++%
++
++/info.tmpmsg 256 string def
++
++/InfoBoxInit {
++ /info.type exch def
++ /info.msg exch def
++
++ window.dialog
++
++ info.type 1 eq {
++ dup .title.bg window.title.error.bg put
++ dup .title txt_error_title put
++ dup .buttons
++ [
++ button.reboot button.default actCloseInfo button.setaction
++ ] put
++ } {
++ dup .title txt_info_title put
++ dup .buttons
++ [
++ button.ok button.default actCloseInfo button.setaction
++% button.cancel button.notdefault actCloseInfo button.setaction
++ ] put
++ } ifelse
++
++ syslinux info.type 2 eq and {
++ dup .title &quot;I/O Error&quot; put
++ info.msg &quot;File not found: %s&quot; info.tmpmsg sprintf
++ /info.msg info.tmpmsg def
++ /load_error true def
++ } if
++
++ syslinux info.type 3 eq and {
++ dup .title txt_change_disk_title put
++ 0 getinfo 1 add txt_insert_disk info.tmpmsg sprintf
++ /info.msg info.tmpmsg def
++ } if
++
++ syslinux info.type 4 eq and {
++ dup .title txt_change_disk_title put
++ 1 getinfo 15 not and {
++ 0 getinfo 1 add
++ txt_insert_disk3 info.tmpmsg sprintf
++ } {
++ 0 getinfo 1 add 1 getinfo 1 add
++ txt_insert_disk2 info.tmpmsg sprintf
++ } ifelse
++ /info.msg info.tmpmsg def
++ } if
++
++ syslinux info.type 5 eq and {
++ dup .title txt_driver_update2 put
++ info.msg txt_insert_driver_cd info.tmpmsg sprintf
++ /info.msg info.tmpmsg def
++ } if
++
++ syslinux info.type 6 eq and {
++ dup .title txt_driver_update2 put
++ /info.msg txt_insert_mdv_cd def
++ } if
++
++ dup .text info.msg put
++
++ serial.line.status {
++ serial.infobox .undef eq {
++ /serial.infobox .xm_size array def
++ serial.infobox .xm_current 0 put
++ } if
++
++ serial.infobox .xm_title 2 index .title get put
++ serial.infobox .xm_text info.msg put
++ serial.infobox .xm_list [ info.type 1 eq { &quot;reboot&quot; } { &quot;ok&quot; } ifelse ] put
++
++ serial.infobox.setup
++ } if
++
++ dup window.init
++ window.show
++
++} def
++
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++
++% progress bar code
++
++
++% Show percentage of progress bar.
++%
++% ( percentage ) ==&gt; ( )
++%
++/progress.percent {
++ 0 max 100 min % so people don't ask silly questions...
++ &quot;100%&quot; strsize over neg progress.text.x add progress.text.y moveto
++ window.current .color.bg get setcolor
++ fillrect
++
++ &quot;%3u%%&quot; 8 string dup 4 1 roll sprintf
++
++ dup strsize pop neg progress.text.x add progress.text.y moveto
++ window.current .color.fg get setcolor
++
++ serial.line.status {
++ &quot;\x08\x08\x08\x08&quot; serial.show
++ dup serial.show
++ } if
++
++ dup show
++ free
++
++} def
++
++
++% Show n-th progress bar symbol.
++%
++% ( n ) ==&gt; ( )
++%
++/progress.sym.show {
++ /progress.sym.current exch def
++
++ progress.bar.x progress.bar.y moveto
++ progress.sym.width progress.sym.current 1 sub mul 1 add 1 rmoveto
++ progress.sym.width 2 sub
++ progress.bar.height 2 sub
++ progress.bar.color setcolor
++ fillrect
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% ( kernel_name ) ==&gt; ( )
++/ProgressInit {
++ /progress.kname exch def
++
++ boot.ed.list { edit.hidecursor } forall
++
++ /dia window.dialog def
++
++ dia .width.min 350 put
++ dia .position 10 put
++
++ dia .title txt_load_kernel_title put
++ dia .text
++ progress.kname &quot;memtest&quot; eq {
++ txt_load_memtest
++ } {
++ txt_load_kernel
++ } ifelse
++ put
++
++ dia window.init
++ dia window.show
++
++ % now add progress bar
++
++ dia .x get dia .y get moveto
++ dia .text.x get dia .text.y get 28 add rmoveto
++
++ /progress.bar.height 19 def
++ /progress.bar.width dia .width get 75 sub def
++
++ /progress.sym.width 10 def
++ /progress.bar.width
++ progress.bar.width progress.sym.width div
++ /progress.syms over def progress.sym.width mul
++ def
++
++ currentpoint over 1 sub over 2 sub moveto
++ black white progress.bar.width 2 add progress.bar.height 4 add drawborder
++
++ /progress.bar.y exch def
++ /progress.bar.x exch def
++
++ /progress.text.x progress.bar.x progress.bar.width 55 add add def
++ /progress.text.y progress.bar.y progress.bar.height fontheight sub 2 div add def
++
++ /progress.sym.current 0 def
++
++ 0 progress.percent
++
++ serial.line.status {
++ &quot;\n&quot; serial.show
++ dia .text get serial.show
++ &quot; 0%&quot; serial.show
++ } if
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% ( ) ==&gt; ( )
++/ProgressDone {
++ window.done
++
++ load_error {
++ /load_error false def
++ boot.ed.list boot.window .ed.focus get get edit.showcursor
++ } if
++
++ serial.line.status { &quot;\n\n&quot; serial.show } if
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% ( max current ) ==&gt; ( )
++%
++% Note: max is just kernel size (in sectors).
++%
++/ProgressUpdate {
++ exch progress_extra add exch
++
++ over over 100 mul exch 1 max div progress.percent
++
++ progress.syms mul progress.syms 2 div add exch 1 max div
++
++ 0 max progress.syms min
++
++ dup progress.sym.current gt {
++ progress.sym.current 1 add over 1 exch {
++ progress.sym.show
++ } for
++ } if
++ pop
++
++} def
++
++% initrd size (in sectors)
++/progress_extra 0 def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% ( time ) ==&gt; ( )
++% /Timer { pop } def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% ( label correct_password ) ==&gt; ( )
++%
++/PasswordInit {
++ /password.key exch def pop
++
++ /dia window.dialog def
++
++ /password.dialog dia def
++
++ dia .title txt_password_title put
++ dia .text &quot;&quot; put
++
++ % Must all be of same size!
++ dia .ed.list 1 array put
++ dia .ed.buffer.list [ 31 string ] put
++ dia .ed.text.list [ txt_password ] put
++
++ dia .ed.focus 0 put
++
++ dia .ed.width 200 put
++
++ dia .ed.font font.normal pwmode put
++
++ dia .buttons
++ [ button.ok button.default actPassword button.setaction ]
++ put
++
++ dia window.init
++ dia window.show
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% ( password ) ==&gt; ( error )
++%
++% error:
++% true password ok
++% false wrong password
++%
++% ****** FIXME: test result seems to be unused
++%
++/PasswordDone {
++
++ password.key eq
++} def
++
++
++/kernel_str 256 string def
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% ( text ) == &gt; ( new_text )
++/menuitemmap {
++ translate
++ config._2space {
++ /mmm.tmp xfree
++ strdup /mmm.tmp over def
++ dup length 0 gt {
++ 0 1 2 index length 1 sub {
++ over over get '_' eq { over exch ' ' put } { pop } ifelse
++ } for
++ } if
++ } if
++ dup &quot;memtest&quot; eq over &quot;memtest86&quot; eq or { pop txt_memtest return } if
++ dup &quot;firmware&quot; eq { pop txt_firmware return } if
++ syslinux {
++ dup &quot;live&quot; eq { pop txt_linux return } if
++ dup &quot;kde&quot; eq { pop &quot;LiveCD - KDE&quot; return } if
++ dup &quot;gnome&quot; eq { pop &quot;LiveCD - GNOME&quot; return } if
++ dup &quot;linux&quot; eq { pop txt_install return } if
++ dup &quot;failsafe&quot; eq { pop txt_safe_install return } if
++ dup &quot;noacpi&quot; eq { pop txt_noacpi_install return } if
++ dup &quot;noapic&quot; eq { pop txt_noapic_install return } if
++ dup &quot;nolapic&quot; eq { pop txt_nolapic_install return } if
++ dup &quot;apic&quot; eq { pop txt_apic return } if
++ dup &quot;manual&quot; eq { pop txt_manual_install return } if
++ dup &quot;repair&quot; eq { pop txt_repain_system return } if
++ dup &quot;rescue&quot; eq { pop txt_rescue return } if
++ dup &quot;hwcheck&quot; eq { pop &quot;Hardware Check&quot; return } if
++ dup &quot;harddisk&quot; eq { pop txt_boot_harddisk return } if
++ dup &quot;mediachk&quot; eq { pop txt_mediacheck return } if
++ dup &quot;mediacheck&quot; eq { pop txt_mediacheck return } if
++ dup &quot;restore&quot; eq { pop txt_restore return } if
++ dup &quot;hdt&quot; eq { pop txt_hdt return } if
++ } {
++ dup &quot;linux&quot; eq { pop txt_linux return } if
++ dup &quot;failsafe&quot; eq { pop txt_safe_linux return } if
++ dup &quot;windows&quot; eq { pop txt_windows return } if
++ dup &quot;2.6&quot; strstr 1 eq { txt_linux_kernel_version kernel_str sprintf
++ kernel_str return } if
++ } ifelse
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% ( color0 color1 width height ) ==&gt; ( )
++/drawborder {
++ currentpoint /db.y0 exch def /db.x0 exch def
++
++ /db.y1 exch 1 sub db.y0 add def
++ /db.x1 exch 1 sub db.x0 add def
++ /db.col1 exch def
++ /db.col0 exch def
++
++ db.x0 db.y1 moveto
++
++ db.col0 setcolor
++ db.x0 db.y0 lineto db.x1 db.y0 lineto
++
++ db.col1 setcolor
++ db.x1 db.y1 lineto db.x0 db.y1 lineto
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% ( color0 color1 color2 width height ) ==&gt; ( )
++% draw frame with shadow
++% color0: upper left, color1: lower right, color2: shadow
++/drawborder3 {
++ currentpoint /db.y0 exch def /db.x0 exch def
++
++ /db.y1 exch 1 sub db.y0 add def
++ /db.x1 exch 1 sub db.x0 add def
++ /db.col2 exch def
++ /db.col1 exch def
++ /db.col0 exch def
++
++ db.x0 db.y1 moveto
++
++ db.col0 setcolor
++ db.x0 db.y0 lineto db.x1 db.y0 lineto
++
++ db.col1 setcolor
++ db.x1 db.y1 lineto db.x0 db.y1 lineto
++
++ db.col2 -1 ne {
++ db.col2 setcolor
++ 1 1 rmoveto
++ db.x1 1 add db.y1 1 add lineto
++ db.x1 1 add db.y0 1 add lineto
++ } if
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% ( color0 color1 width height ) ==&gt; ( )
++/drawborder4 {
++ 3 index 4 1 roll rot dup 3 index 3 index
++ currentpoint 6 2 roll
++ 1 1 rmoveto drawborder
++ moveto drawborder
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% center text
++% ( text width height ) ==&gt; ( )
++/centertext {
++ 3 -1 roll strsize
++ 4 2 roll
++ 4 1 roll exch 4 1 roll sub 2 div neg 3 1 roll sub 2 div neg
++} def
++
++
++% ( img ) =&gt; ( width heigh )
++/imgsize {
++ dup .undef eq {
++ pop 0 0
++ } {
++ getdword dup
++ 0xffff and exch 16 shr
++ } ifelse
++} def
++
++
++% ( pic pic_a -- )
++/showlogo {
++ /tmp.sc over imgsize savescreen def
++
++ currentpoint 4 2 roll
++ 0 0 moveto tmp.sc blend
++ moveto tmp.sc restorescreen
++
++ tmp.sc free
++} def
++
++
++% ( file_name ) ==&gt; ( image )
++/readimage {
++ findfile dup .undef ne {
++ dup setimage 0 0 image.size unpackimage exch free
++ } if
++} def
++
++
++/init {
++ 0 0 moveto currentpoint clip.size image
++
++ % set default language
++ &quot;lang&quot; findfile dup {
++ /tmp over length 1 add 2 max string def
++ tmp exch {
++ dup ' ' eq over '\n' eq or { pop pop exit } if
++ over exch 0 exch put
++ 1 add
++ } forall
++ tmp dup setlang pop getkeymapfromlocale setkeymap
++ } {
++ pop
++ &quot;en_US&quot; dup setlang pop getkeymapfromlocale setkeymap
++ } ifelse
++
++ keymap.default &quot;&quot; ne { keymap.default setkeymap } if
++
++ font.large setfont
++
++ /menu.text.xofs 10 def
++ /menu.text.yofs 2 def
++ /menu.item.height fontheight dup ptheme { 3 } { 2 } ifelse div add def
++ /menu.bar.height fontheight menu.text.yofs dup add add def
++
++ font.normal setfont
++
++ /menu.bar.width menu.bar.min.width def
++
++ % false: no boot options line initially
++ /boot.show false def
++
++} def
++
++
++/chksum {
++ 0 exch
++ { add } forall
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Some special debug &amp; test keys.
++%
++% ( key_in ) ==&gt; ( key_out )
++%
++/debug.input {
++ dup keyShiftF4 eq debug 3 ge and {
++ currentcolor black setcolor
++ currentpoint 0 0 moveto
++ 64 string biosmem &quot;mem = %u &quot; 2 index sprintf dup show free
++ moveto setcolor
++ } if
++
++ dup keyShiftF3 eq syslinux and debug 3 ge and {
++ currentcolor black setcolor
++ currentpoint 0 0 moveto
++ &quot;eject &quot; print bootdrive eject print
++ moveto setcolor
++ } if
++
++ dup keyShiftF5 eq syslinux and debug 3 ge and {
++ currentcolor black setcolor
++ currentpoint 100 0 moveto
++ bootdrive print
++ moveto setcolor
++ } if
++
++ dup keyShiftF8 eq debug 3 ge and {
++ currentcolor debug 1 and { white } { black } ifelse setcolor
++
++ currentpoint 300 0 moveto
++ 0 memsize print &quot;/&quot; print print &quot; &quot; print
++ moveto
++
++ currentpoint 300 20 moveto
++ 1 memsize print &quot;/&quot; print print &quot; &quot; print
++ moveto
++
++ currentpoint 300 40 moveto
++ 2 memsize print &quot;/&quot; print print &quot; &quot; print
++ moveto
++
++ currentpoint 300 60 moveto
++ 3 memsize print &quot;/&quot; print print &quot; &quot; print
++ moveto
++
++ currentpoint 300 80 moveto
++ 4 memsize print &quot;/&quot; print print &quot; &quot; print
++ moveto
++
++ setcolor
++ } if
++
++ dup keyShiftF9 eq debug 3 ge and {
++ dumpmem
++ } if
++
++ dup keyShiftF10 eq {
++ /debug debug 1 add def
++ } if
++
++ dup keyShiftF4 eq {
++ % sound test XXXXXXXX
++
++ sound.done
++
++ } if
++
++ dup keyF11 eq debug 1 ge and {
++
++ /dit {
++ dup 0xff and rand 0xff and gt { 0xff add } if
++ 8 shr
++ } def
++
++ /c13.r rand 0x7f00 and def
++ /c02_13.r rand 0x7f00 and c13.r sub def
++ /c23.r rand 0x7f00 and def
++ /c01_23.r rand 0x7f00 and c23.r sub def
++ /c13.g rand 0x7f00 and def
++ /c02_13.g rand 0x7f00 and c13.g sub def
++ /c23.g rand 0x7f00 and def
++ /c01_23.g rand 0x7f00 and c23.g sub def
++ /c13.b rand 0x7f00 and def
++ /c02_13.b rand 0x7f00 and c13.b sub def
++ /c23.b rand 0x7f00 and def
++ /c01_23.b rand 0x7f00 and c23.b sub def
++
++ screen.size /h exch def /w exch def
++
++ 0 1 screen.size exch pop {
++ 0 1 screen.size pop {
++ over moveto
++
++ currentpoint c01_23.r mul h div exch c02_13.r mul w div add c13.r add c23.r add
++ dit 0 max 0xff min 16 shl
++ currentpoint c01_23.g mul h div exch c02_13.g mul w div add c13.g add c23.g add
++ dit 0 max 0xff min 8 shl
++ currentpoint c01_23.b mul h div exch c02_13.b mul w div add c13.b add c23.b add
++ dit 0 max 0xff min add add
++
++ setcolor putpixel
++ } for
++ pop
++ } for
++
++ pop 0
++ } if
++
++ dup keyF12 eq debug 3 ge and {
++ % mouse support testing
++
++ 1 keepmode
++
++ /mouse xxx def
++ 0xc00000 setcolor
++ mouse .undef eq {
++ 700 580 moveto &quot;no mouse&quot; show
++ } {
++ {
++ mouse getdword 16 shl 16 shr screen.size pop 2 div add
++ mouse getdword 16 shr neg screen.size exch pop 2 div add
++ moveto 4 4 fillrect
++
++ mouse 4 add getdword 7 and
++ dup 1 and { 0xc00000 setcolor } if
++ dup 2 and { 0x0000a0 setcolor } if
++ dup 4 and { 0x009000 setcolor } if
++
++ 3 and 3 eq { exit } if
++
++ } loop
++ } ifelse
++ pop 0
++ } if
++
++ dup keyShiftF12 eq {
++ /transp transp 0x10 add 0x100 min def
++ pop 0
++ } if
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Show exit popup.
++%
++% ( ) ==&gt; ( )
++%
++/exit_popup {
++ window.dialog
++
++ dup .title txt_exit_title put
++ dup .text txt_exit_dialog put
++ dup .buttons [
++ button.ok button.default actExit button.setaction
++ button.cancel button.notdefault actNothing button.setaction
++ config.rtl { exch } if
++ ] put
++ dup window.init
++ window.show
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Show help window.
++%
++% ( ) ==&gt; ( )
++%
++/show_help {
++ window.help
++
++ dup window.init
++ window.show
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Show dvd popup.
++%
++% ( ) ==&gt; ( )
++%
++/dvd_popup {
++ window.dialog
++
++ dup .title txt_dvd_warning_title put
++ dup .text txt_dvd_warning2 put
++ dup .buttons [
++% button.eject button.default actEject actNoClose or button.setaction
++ button.continue button.default actNothing button.setaction
++ ] put
++ dup window.init
++ window.show
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Warn that we are about to install 32bit software on a 64bit system.
++%
++% ( ) ==&gt; ( )
++%
++/32bit_popup {
++ window.dialog
++
++ dup .title txt_warning put
++ dup .text txt_32bit_popup put
++ dup .buttons [
++ button.continue button.default actNothing button.setaction
++ ] put
++ dup window.init
++ window.show
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Warn that we are about to install 64bit software on a 32bit system.
++%
++% ( ) ==&gt; ( )
++%
++/64bit_popup {
++ window.dialog
++
++ dup .title txt_wrong_arch put
++ dup .text txt_64bit_popup put
++ dup .buttons [
++ button.reboot button.default actReboot actNoClose or button.setaction
++ ] put
++ dup window.init
++ window.show
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Show &quot;power off&quot; popup.
++%
++% ( ) ==&gt; ( )
++%
++/power_off {
++ window.dialog
++
++ dup .title txt_power_off_title put
++ dup .text txt_power_off put
++ dup .buttons [
++ button.ok button.notdefault actPowerOff actNoClose or button.setaction
++ button.cancel button.default actNothing button.setaction
++ config.rtl { exch } if
++ ] put
++ dup window.init
++ window.show
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Set global config variables.
++%
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% For monitor tests: fake DDC info.
++%
++
++% &quot;ddc&quot; findfile test1
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% First, figure out video mode.
++%
++
++/config.screen.width /config.screen.height &quot;screen.size&quot; 800 600 gfxconfig.set.int2
++
++/screen.fallback false def
++
++config.screen.width config.screen.height 32 findmode setmode not {
++ config.screen.width config.screen.height 16 findmode setmode not {
++ /screen.fallback true def
++ 640 480 16 findmode setmode not {
++ 640 480 32 findmode setmode not {
++ false .end
++ } if
++ } if
++ } if
++} if
++
++% prepend fallback section to layout section list
++screen.fallback {
++ /gfxconfig.layout [ &quot;640x480&quot; gfxconfig.layout { } forall ] gfxconfig.layout free def
++} if
++
++
++/ptheme false def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Then, read the other config variables (might depend on video mode).
++%
++
++/config.welcome &quot;welcome&quot; 0 gfxconfig.set.int
++/config.beep &quot;beep&quot; false gfxconfig.set.bool
++/config.volume &quot;volume&quot; 70 gfxconfig.set.int
++/config.talk &quot;talk&quot; false gfxconfig.set.bool
++/config.livecd &quot;livecd&quot; false gfxconfig.set.bool
++/config._2space &quot;_2space&quot; false gfxconfig.set.bool
++/transp &quot;menu.transparency&quot; 0x20 gfxconfig.set.int
++/config.screen.width
++/config.screen.height &quot;screen.size&quot; 800 600 gfxconfig.set.int2
++/config.background &quot;background&quot; &quot;back.jpg&quot; gfxconfig.set.str
++/config.font.normal &quot;font.normal&quot; &quot;16x16.fnt&quot; gfxconfig.set.str
++/config.font.large &quot;font.large&quot; &quot;16x16.fnt&quot; gfxconfig.set.str
++/progress.bar.color &quot;progress.bar.color&quot; white gfxconfig.set.int
++/xmenu.normal.bg &quot;menu.normal.bg&quot; black gfxconfig.set.int
++/xmenu.normal.fg &quot;menu.normal.fg&quot; white gfxconfig.set.int
++/xmenu.selected.bg &quot;menu.selected.bg&quot; white gfxconfig.set.int
++/xmenu.selected.fg &quot;menu.selected.fg&quot; black gfxconfig.set.int
++/window.color.bg &quot;window.bg&quot; white gfxconfig.set.int
++/window.color.fg &quot;window.fg&quot; black gfxconfig.set.int
++/window.title.bg &quot;window.title.bg&quot; black gfxconfig.set.int
++/window.title.fg &quot;window.title.fg&quot; white gfxconfig.set.int
++/window.title.error.bg &quot;window.title.error.bg&quot; 0xc00000 gfxconfig.set.int
++/help.link.fg &quot;help.link.fg&quot; 0x0000a0 gfxconfig.set.int
++/help.link.selected.fg &quot;help.link.selected.fg&quot; white gfxconfig.set.int
++/help.link.selected.bg &quot;help.link.selected.bg&quot; 0x0000a0 gfxconfig.set.int
++/help.highlight.fg &quot;help.highlight.fg&quot; 0x009000 gfxconfig.set.int
++/menu.text.normal &quot;mainmenu.normal.fg&quot; white gfxconfig.set.int
++/menu.text.select &quot;mainmenu.selected.fg&quot; black gfxconfig.set.int
++/boot.text.options &quot;bootopt.label.fg&quot; white gfxconfig.set.int
++/boot.text.normal &quot;bootopt.text.fg&quot; white gfxconfig.set.int
++/menu.bar.color &quot;mainmenu.bar.color&quot; white gfxconfig.set.int
++/menu.bar.min.width &quot;mainmenu.bar.minwidth&quot; 300 gfxconfig.set.int
++/menu.bar.transparency &quot;mainmenu.bar.transparency&quot; 70 gfxconfig.set.int
++/menu.start.x
++/menu.start.y &quot;mainmenu.pos&quot; 253 170 gfxconfig.set.int2
++/menu.max.entries &quot;mainmenu.entries&quot; 8 gfxconfig.set.int
++/boot.pos.x
++/boot.pos.y &quot;bootopt.pos&quot; 263 480 gfxconfig.set.int2
++/panel.normal.fg &quot;panel.normal.fg&quot; white gfxconfig.set.int
++/panel.title.fg &quot;panel.title.fg&quot; white gfxconfig.set.int
++/panel.f-key.fg &quot;panel.f-key.fg&quot; black gfxconfig.set.int
++/keymap.submenu &quot;keymap.submenu&quot; false gfxconfig.set.bool
++/keymap.mainmenu &quot;keymap.mainmenu&quot; false gfxconfig.set.bool
++/keymap.default &quot;keymap&quot; &quot;&quot; gfxconfig.set.str
++
++/dud.default &quot;dud&quot; &quot;&quot; gfxconfig.set.str
++
++/serial.line0 &quot;serial.line0&quot; [ ] gfxconfig.set.array_str
++/serial.line1 &quot;serial.line1&quot; [ ] gfxconfig.set.array_str
++/serial.line2 &quot;serial.line2&quot; [ ] gfxconfig.set.array_str
++/serial.line3 &quot;serial.line3&quot; [ ] gfxconfig.set.array_str
++
++/serial.lines [
++ serial.line0 serial.line1 serial.line2 serial.line3
++] def
++
++% Array of menu entries with no boot option input field.
++/config.nobootoptions &quot;nobootoptions&quot; [ ] gfxconfig.set.array_str
++
++% Array of menu entries which should not get an 'install' option appended.
++/config.noinstallopt &quot;noinstallopt&quot; [ ] gfxconfig.set.array_str
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++
++% drawing area size
++/clip.size { screen.size } def
++
++% set background image
++config.background findfile setimage
++
++% get font(s)
++/font.normal config.font.normal findfile def
++/font.large
++ % don't load it twice
++ config.font.normal config.font.large eq {
++ font.normal
++ } {
++ config.font.large findfile
++ } ifelse
++def
++
++% default kroet direction (idle task)
++/kroete.dir 0 def
++
++% default debug level
++/debug 0 def
++
++% no specials for visual impaired people
++/v_impaired 0 def
++
++% show welcome animation?
++ptheme
++screen.fallback or
++CapsLock or
++config.welcome 0 eq or
++{
++ /bsplash.done { } def
++} {
++ bsplash.show
++} ifelse
++
++% check for bi-arch config
++check_arch_boot_dir
++
+
+<a id="themetrunkmageiagfxbootthemetrunksrcdia_aboutinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/src/dia_about.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/src/dia_about.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/src/dia_about.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,75 @@
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% Panel 'about' entry.
++%
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Show help window.
++%
++% ( ) =&gt; ( )
++%
++/panel.about {
++ panel 0 panel.entry.help put
++ about.popup
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Return width of 'about' entry.
++%
++% ( ) =&gt; ( width )
++%
++/panel.about.width {
++ &quot;About&quot; strsize pop
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Redraw panel entry.
++%
++% ( panel ) =&gt; ( )
++%
++/panel.about.update {
++ panel.text.moveto
++ &quot;About&quot; show
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Show 'about' box.
++%
++% ( ) ==&gt; ( )
++%
++/about.popup {
++ window.dialog
++
++ dup .title &quot;About&quot; put
++ dup .text about.msg put
++ dup .buttons [
++ button.ok button.default actRedraw button.setaction
++ ] put
++ dup window.init
++ window.show
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Return 'about' text, if any.
++%
++% ( -- obj1 )
++%
++% obj1: string with message or .undef
++%
++/about.msg {
++
++ /about.msg
++ &quot;about.txt&quot; findfile dup .undef ne {
++ dup length string dup cvp rot dup length memcpy
++ } if
++ def
++
++ about.msg
++
++} def
++
+
+<a id="themetrunkmageiagfxbootthemetrunksrcdia_bitsinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/src/dia_bits.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/src/dia_bits.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/src/dia_bits.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,96 @@
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% 32/64 bit install selection dialog.
++%
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Some global vars.
++%
++/bits.default 0 def
++
++/bits.suffix [
++ .undef
++ &quot;64&quot;
++] def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Build menu list.
++%
++% ( ) ==&gt; ( )
++%
++/bits.init {
++ /xmenu.bits .xm_size array def
++
++ /xmenu xmenu.bits def
++
++ xmenu .xm_list [ &quot;x86&quot; ] put
++
++ 32+64bit_source {
++ 64bit {
++ /bits.default 1 def
++ xmenu .xm_list [ &quot;x86&quot; &quot;x86-64&quot; ] put
++ } if
++ } {
++ bits.suffix 1 .undef put
++ } ifelse
++
++ xmenu .xm_current bits.default put
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Update bit selection menu.
++%
++% ( ) ==&gt; ( )
++%
++/bits.update {
++ /xmenu xmenu.bits def
++
++ /window.action actRedrawPanel def
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Show bit selection menu.
++%
++% ( ) =&gt; ( )
++%
++/panel.bits {
++ &quot;bits&quot; help.setcontext
++
++ window.xmenu
++ dup .xmenu xmenu.bits put
++ dup .xmenu.update /bits.update put
++ dup window.init
++ window.show
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Return width of panel entry.
++%
++% ( ) =&gt; ( width )
++%
++/panel.bits.width {
++ /xmenu xmenu.bits def
++
++ pmenu.width
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Redraw panel entry.
++%
++% ( panel ) =&gt; ( )
++%
++/panel.bits.update {
++ /xmenu xmenu.bits def
++
++ pmenu.panel.update
++} def
++
++
+
+<a id="themetrunkmageiagfxbootthemetrunksrcdia_dudinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/src/dia_dud.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/src/dia_dud.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/src/dia_dud.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,129 @@
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% Driver update dialog.
++%
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Some global vars.
++%
++/.dud_yes 0 def
++/.dud_no 1 def
++
++/dud.last .dud_no def
++
++/dud.options [
++ &quot;updatemodules&quot;
++ &quot;&quot;
++] def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Build driver update menu.
++%
++% ( ) ==&gt; ( )
++%
++/dud.init {
++ /xmenu.dud .xm_size array def
++
++ /xmenu xmenu.dud def
++
++ dud.read.config
++
++ xmenu .xm_current dud.last put
++ xmenu .xm_list [ /txt_yes /txt_no ] put
++
++ xmenu .xm_title /txt_driver_update put
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Update driver update mode.
++%
++% ( ) ==&gt; ( )
++%
++/dud.update {
++ /xmenu xmenu.dud def
++
++ /window.action actRedrawPanel def
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Show driver update menu.
++%
++% ( ) =&gt; ( )
++%
++/panel.dud {
++ &quot;driverupdate&quot; help.setcontext
++
++ window.xmenu
++ dup .xmenu xmenu.dud put
++ dup .xmenu.update /dud.update put
++ dup window.init
++ window.show
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Return width of panel entry.
++%
++% ( ) =&gt; ( width )
++%
++/panel.dud.width {
++ /xmenu xmenu.dud def
++
++ pmenu.width
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Redraw panel entry.
++%
++% ( panel ) =&gt; ( )
++%
++/panel.dud.update {
++ /xmenu xmenu.dud def
++
++ pmenu.panel.update
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++/dud.dialog {
++
++ /dia window.dialog def
++
++ dia .text &quot;&quot; put
++
++ xmenu .xm_current get
++
++ pop
++
++ dia .ed.focus 0 put
++ dia .ed.width 300 put
++
++ dia .buttons [
++ button.ok button.default actNothing button.setaction
++ button.cancel button.notdefault actNothing button.setaction
++ config.rtl { exch } if
++ ] put
++
++ dia window.init
++ dia window.show
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Read default values.
++%
++% ( -- )
++%
++/dud.read.config {
++ dud.default
++ dup &quot;yes&quot; eq { /dud.last .dud_yes def } if
++ dup &quot;no&quot; eq { /dud.last .dud_no def } if
++ pop
++} def
+
+<a id="themetrunkmageiagfxbootthemetrunksrcdia_helpinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/src/dia_help.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/src/dia_help.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/src/dia_help.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,46 @@
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% Panel help entry.
++%
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Show help window.
++%
++% ( ) =&gt; ( )
++%
++/panel.help {
++ help.context &quot;opt&quot; eq {
++ findbootoption
++ help.mapcontext
++ dup help.findpage
++ &quot;&quot; eq { pop } { help.setcontext } ifelse
++ } if
++ show_help
++
++ config.talk { txt_help speak } if
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Return width of help entry.
++%
++% ( ) =&gt; ( width )
++%
++/panel.help.width {
++ txt_help strsize pop
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Redraw panel entry.
++%
++% ( panel ) =&gt; ( )
++%
++/panel.help.update {
++ panel.text.moveto
++
++ txt_help show.rtl
++} def
++
++
+
+<a id="themetrunkmageiagfxbootthemetrunksrcdia_installinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/src/dia_install.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/src/dia_install.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/src/dia_install.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,137 @@
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% Install mode selection dialog.
++%
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Some global vars.
++%
++/install.option 255 string def
++
++% install types
++/.inst_cdrom 0 def
++/.inst_other 1 def
++
++/install.last .inst_cdrom def
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Build install mode list.
++%
++% ( ) ==&gt; ( )
++%
++/install.init {
++ /xmenu.install .xm_size array def
++
++ /xmenu xmenu.install def
++
++ xmenu .xm_current install.last put
++
++ % see install types (.inst_*)
++ xmenu .xm_list [ is_dvd { &quot;DVD&quot; } { &quot;CD-ROM&quot; } ifelse &quot;Other&quot; ] put
++
++ install.set.install.option
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Update install mode.
++%
++% ( ) ==&gt; ( )
++%
++/install.update {
++ /xmenu xmenu.install def
++
++ /install.last xmenu .xm_current get def
++
++ install.set.install.option
++
++ /window.action actRedrawPanel def
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Show install menu.
++%
++% ( ) =&gt; ( )
++%
++/panel.install {
++ &quot;install_src&quot; help.setcontext
++
++ window.xmenu
++ dup .xmenu xmenu.install put
++ dup .xmenu.update /install.update put
++ dup window.init
++ window.show
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Return width of panel entry.
++%
++% ( ) =&gt; ( width )
++%
++/panel.install.width {
++ /xmenu xmenu.install def
++
++ pmenu.width
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Redraw panel entry.
++%
++% ( panel ) =&gt; ( )
++%
++/panel.install.update {
++ /xmenu xmenu.install def
++
++ pmenu.panel.update
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++
++
++
++/install.ok {
++ /xmenu xmenu.install def
++
++ window.done
++
++ /install.last xmenu .xm_current get def
++
++ /window.action actRedrawPanel def
++
++ pmenu.update
++
++} def
++
++
++/install.cancel {
++ /xmenu xmenu.install def
++
++ xmenu .xm_current install.last put
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Set 'install=' boot option.
++%
++% ( -- )
++%
++/install.set.install.option {
++ xmenu .xm_current get
++
++ % default: .inst_other
++ install.option &quot;&quot; strcpy pop
++
++ dup .inst_cdrom eq {
++ install.option &quot;automatic=method:cdrom&quot; strcpy pop
++ } if
++
++ pop
++} def
+
+<a id="themetrunkmageiagfxbootthemetrunksrcdia_kerneloptsinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/src/dia_kernelopts.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/src/dia_kernelopts.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/src/dia_kernelopts.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,98 @@
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% Kernel options dialog.
++%
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Some global vars.
++%
++/kernelopts.default 0 def
++
++/kernelopts.options [
++ &quot;&quot;
++ &quot;apm=off acpi=off mce=off barrier=off ide=nodma idewait=50 i8042.nomux psmouse.proto=bare irqpoll pci=nommconf&quot;
++ &quot;acpi=off&quot;
++ &quot;nolapic&quot;
++] def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Build kernelopts list.
++%
++% ( ) ==&gt; ( )
++%
++/kernelopts.init {
++ /xmenu.kernelopts .xm_size array def
++
++ /xmenu xmenu.kernelopts def
++
++ xmenu .xm_current kernelopts.default put
++ xmenu .xm_list [
++ /txt_kernel_default
++ /txt_kernel_safe
++ /txt_kernel_noacpi
++ /txt_kernel_nolapic
++ ] put
++ xmenu .xm_title /txt_kernel put
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Update kernelopts mode.
++%
++% ( ) ==&gt; ( )
++%
++/kernelopts.update {
++ /xmenu xmenu.kernelopts def
++
++ /window.action actRedrawBootOptionsPanel def
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Show kernelopts menu.
++%
++% ( ) =&gt; ( )
++%
++/panel.kernelopts {
++ &quot;main&quot; help.setcontext
++
++ boot.show not {
++ /boot.show true def
++ } if
++
++ window.xmenu
++ dup .xmenu xmenu.kernelopts put
++ dup .xmenu.update /kernelopts.update put
++ dup window.init
++ window.show
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Return width of panel entry.
++%
++% ( ) =&gt; ( width )
++%
++/panel.kernelopts.width {
++ /xmenu xmenu.kernelopts def
++
++ pmenu.width
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Redraw panel entry.
++%
++% ( panel ) =&gt; ( )
++%
++/panel.kernelopts.update {
++ /xmenu xmenu.kernelopts def
++
++ pmenu.panel.update
++} def
++
++
+
+<a id="themetrunkmageiagfxbootthemetrunksrcdia_keymapinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/src/dia_keymap.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/src/dia_keymap.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/src/dia_keymap.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,105 @@
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% keyboard map selection dialog.
++%
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Some global vars.
++%
++
++/keymap.setdefault {
++ xmenu.keymap .xm_current
++
++ 0
++ keymaps {
++ .km.id get config.keymap.id eq { exit } if
++ 1 add
++ } forall
++
++ dup keymaps length ge { pop 0 } if
++
++ put
++
++} def
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Build menu list.
++%
++% ( ) ==&gt; ( )
++%
++/keymap.init {
++ /xmenu.keymap .xm_size array def
++
++ /xmenu xmenu.keymap def
++
++ xmenu .xm_list [
++ keymaps { .km.name get } forall
++ ] put
++
++ xmenu .xm_title &quot;Keyboard&quot; put
++
++ keymap.setdefault
++
++ % just once (see lang.init)
++ /keymap.init { } def
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Update keybaord selection menu.
++%
++% ( ) ==&gt; ( )
++%
++/keymap.update {
++ /xmenu xmenu.keymap def
++
++ keymaps xmenu .xm_current get get .km.id get setkeymap
++
++ /window.action actRedrawPanel def
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Show keymap selection menu.
++%
++% ( ) =&gt; ( )
++%
++/panel.keymap {
++ &quot;keymap&quot; help.setcontext
++
++ keymap.setdefault
++
++ window.xmenu
++ dup .xmenu xmenu.keymap put
++ dup .xmenu.update /keymap.update put
++ dup window.init
++ window.show
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Return width of panel entry.
++%
++% ( ) =&gt; ( width )
++%
++/panel.keymap.width {
++ /xmenu xmenu.keymap def
++
++ pmenu.width
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Redraw panel entry.
++%
++% ( panel ) =&gt; ( )
++%
++/panel.keymap.update {
++ /xmenu xmenu.keymap def
++
++ pmenu.panel.update
++} def
++
++
+
+<a id="themetrunkmageiagfxbootthemetrunksrcdia_langinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/src/dia_lang.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/src/dia_lang.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/src/dia_lang.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,311 @@
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% Language selection dialog.
++%
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Some global vars.
++%
++
++% fallback if there is no &quot;langs&quot;
++/lang.items [ &quot;en_US&quot; ] def
++/lang.names [ &quot;English (US)&quot; ] def
++
++/.la.locale 0 def
++/.la.keymap 1 def
++/.la.rtl 2 def
++/.la.name 3 def
++
++/lang.defaultnames [
++ [ &quot;af_ZA&quot; &quot;en_US&quot; false &quot;Afrikaans&quot; ] % Afrikaans
++% [ &quot;ar_EG&quot; &quot;en_US&quot; true &quot;\u064a\u0628\u0631\u0639&quot; ] % Arabic
++ [ &quot;ar_EG&quot; &quot;en_US&quot; true &quot;\ufef2\ufe91\ufeae\ufecb&quot; ] % Arabic
++ [ &quot;bg_BG&quot; &quot;en_US&quot; false &quot;Български&quot; ] % Bulgarian
++ [ &quot;bn_BD&quot; &quot;en_US&quot; false &quot;\u09ac\u09be\u0982\u09b2\u09be&quot; ] % Bengali
++ [ &quot;bs_BA&quot; &quot;en_US&quot; false &quot;Bosanski&quot; ] % Bosnian
++ [ &quot;ca_ES&quot; &quot;en_US&quot; false &quot;Català&quot; ] % Catalan
++ [ &quot;cs_CZ&quot; &quot;czech&quot; false &quot;Čeština&quot; ] % Czech
++ [ &quot;cy_GB&quot; &quot;en_US&quot; false &quot;Cymraeg&quot; ] % Welsh
++ [ &quot;da_DK&quot; &quot;danish&quot; false &quot;Dansk&quot; ] % Danish
++ [ &quot;de_DE&quot; &quot;german&quot; false &quot;Deutsch&quot; ] % German
++ [ &quot;el_GR&quot; &quot;greek&quot; false &quot;Ελληνικά&quot; ] % Greek
++ [ &quot;en_GB&quot; &quot;en_US&quot; false &quot;English (UK)&quot; ] % English
++ [ &quot;en_US&quot; &quot;en_US&quot; false &quot;English (US)&quot; ] % English
++ [ &quot;es_ES&quot; &quot;spanish&quot; false &quot;Español&quot; ] % Spanish
++ [ &quot;et_EE&quot; &quot;estonian&quot; false &quot;Eesti&quot; ] % Estonian
++ [ &quot;fa_IR&quot; &quot;en_US&quot; true &quot;\ufbfd\ufeb4\u0631\ufe8e\ufed3&quot; ] % Farsi
++ [ &quot;fi_FI&quot; &quot;en_US&quot; false &quot;Suomi&quot; ] % Finnish
++ [ &quot;fr_FR&quot; &quot;french&quot; false &quot;Français&quot; ] % French
++ [ &quot;gl_ES&quot; &quot;en_US&quot; false &quot;Galego&quot; ] % Galician
++ [ &quot;ka_GE&quot; &quot;en_US&quot; false &quot;ქართული&quot; ] % Kartuli
++ [ &quot;gu_IN&quot; &quot;en_US&quot; false &quot;\u0a97\u0ac1\u0a9c\u0ab0\u0abe\u0aa4\u0ac0&quot; ] % Gujarati
++ [ &quot;he_IL&quot; &quot;en_US&quot; false &quot;תירבע&quot; ] % Hebrew
++% [ &quot;hi_IN&quot; &quot;en_US&quot; false &quot;\u0939\u093f\u0928\u094d\u0926\u0940&quot; ] % Hindi
++ [ &quot;hi_IN&quot; &quot;en_US&quot; false &quot;\u0939\u093f\u0902\u0926\u0940&quot; ] % Hindi
++ [ &quot;hr_HR&quot; &quot;en_US&quot; false &quot;Hrvatski&quot; ] % Croatian
++ [ &quot;hu_HU&quot; &quot;hungarian&quot; false &quot;Magyar&quot; ] % Hungarian
++ [ &quot;id_ID&quot; &quot;en_US&quot; false &quot;Bahasa Indonesia&quot; ] % Indonesian
++ [ &quot;it_IT&quot; &quot;italian&quot; false &quot;Italiano&quot; ] % Italian
++ [ &quot;ja_JP&quot; &quot;japanese&quot; false &quot;日本語&quot; ] % Japanese
++ [ &quot;jv_ID&quot; &quot;en_US&quot; false &quot;Basa Jawa&quot; ] % Javanese
++% [ &quot;km_KH&quot; &quot;en_US&quot; false &quot;\u1781\u17d2\u1798\u17c2\u179a&quot; ] % Khmer
++ [ &quot;km_KH&quot; &quot;en_US&quot; false &quot;Khmer&quot; ] % Khmer
++ [ &quot;ko_KR&quot; &quot;en_US&quot; false &quot;한글&quot; ] % Korean
++ [ &quot;ky_KG&quot; &quot;en_US&quot; false &quot;Кыргызча&quot; ] % Kirghiz
++ [ &quot;lo_LA&quot; &quot;en_US&quot; false &quot;\u0e9e\u0eb2\u0eaa\u0eb2\u0ea5\u0eb2\u0ea7&quot; ] % Lao
++ [ &quot;lt_LT&quot; &quot;en_US&quot; false &quot;Lietuvių&quot; ] % Lithuanian
++ [ &quot;mk_MK&quot; &quot;en_US&quot; false &quot;Македонски&quot; ] % Macedonian
++ [ &quot;mr_IN&quot; &quot;en_US&quot; false &quot;\u092e\u0930\u093e\u0920\u0940&quot; ] % Marathi
++ [ &quot;nb_NO&quot; &quot;norwegian&quot; false &quot;Norsk (bokmål)&quot; ] % Norwegian
++ [ &quot;nn_NO&quot; &quot;norwegian&quot; false &quot;Norsk (nynorsk)&quot; ] % Norwegian
++ [ &quot;nl_NL&quot; &quot;en_US&quot; false &quot;Nederlands&quot; ] % Dutch
++ [ &quot;pa_IN&quot; &quot;en_US&quot; false &quot;\u0a2a\u0a70\u0a1c\u0a3e\u0a2c\u0a40&quot; ] % Punjabi
++ [ &quot;pl_PL&quot; &quot;polish&quot; false &quot;Polski&quot; ] % Polish
++ [ &quot;pt_PT&quot; &quot;portugese&quot; false &quot;Português&quot; ] % Portuguese
++ [ &quot;pt_BR&quot; &quot;portugese-br&quot; false &quot;Português (Brasil)&quot; ] % Portuguese (Brazilian)
++ [ &quot;ro_RO&quot; &quot;en_US&quot; false &quot;Română&quot; ] % Romanian
++ [ &quot;ru_RU&quot; &quot;russian&quot; false &quot;Русский&quot; ] % Russian
++ [ &quot;si_LK&quot; &quot;en_US&quot; false &quot;\u0dc3\u0dd2\u0d82\u0dc4\u0dbd&quot; ] % Sinhala
++ [ &quot;sk_SK&quot; &quot;slovak&quot; false &quot;Slovenčina&quot; ] % Slovak
++ [ &quot;sl_SI&quot; &quot;slovene&quot; false &quot;Slovenščina&quot; ] % Slovenian
++ [ &quot;sr_CS&quot; &quot;en_US&quot; false &quot;Srpski&quot; ] % Serbian
++ [ &quot;sv_SE&quot; &quot;swedish&quot; false &quot;Svenska&quot; ] % Swedish
++ [ &quot;ta_IN&quot; &quot;en_US&quot; false &quot;\u0ba4\u0bae\u0bbf\u0bb4\u0bcd&quot; ] % Tamil
++ [ &quot;th_TH&quot; &quot;en_US&quot; false &quot;\u0e20\u0e32\u0e29\u0e32\u0e44\u0e17\u0e22&quot; ] % Thai
++ [ &quot;tr_TR&quot; &quot;turkish&quot; false &quot;Türkçe&quot; ] % Turkish
++ [ &quot;uk_UA&quot; &quot;en_US&quot; false &quot;Українська&quot; ] % Ukrainian
++ [ &quot;vi_VN&quot; &quot;en_US&quot; false &quot;Tiếng Việt&quot; ] % Vietnamese
++ [ &quot;wa_BE&quot; &quot;en_US&quot; false &quot;Walon&quot; ] % Walloon
++ [ &quot;xh_ZA&quot; &quot;en_US&quot; false &quot;isiXhosa&quot; ] % Xhosa
++ [ &quot;zh_CN&quot; &quot;en_US&quot; false &quot;简体中文&quot; ] % Simplified Chinese
++ [ &quot;zh_TW&quot; &quot;en_US&quot; false &quot;繁體中文 (台灣)&quot; ] % Traditional Chinese
++ [ &quot;zu_ZA&quot; &quot;en_US&quot; false &quot;isiZulu&quot; ] % Zulu
++] def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Get language property.
++%
++% Returns .undef if not found.
++%
++% ( locale prop ) ==&gt; ( obj )
++%
++/lang.getprop {
++ lang.defaultnames {
++ dup .la.locale get 3 index eq { exch get exch pop return } { pop } ifelse
++ } forall
++
++ % try a loose match
++ lang.defaultnames {
++ dup .la.locale get 3 index locale.cmp { exch get exch pop return } { pop } ifelse
++ } forall
++
++ pop pop .undef
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Get language name.
++%
++% Returns locale if not found.
++%
++% ( locale ) ==&gt; ( name )
++%
++/lang.getdefname {
++ dup
++ .la.name lang.getprop
++ dup .undef ne { exch } if
++ pop
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Check for rtl.
++%
++% ( locale ) ==&gt; ( bool )
++%
++/lang.getrtl {
++ .la.rtl lang.getprop
++ dup .undef eq { pop false } if
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Parse &quot;langs&quot; file.
++%
++% ( ) ==&gt; ( )
++%
++/lang.parsedata {
++ /lang.default 0 def
++
++ &quot;langs&quot; findfile dup { /lang.data exch def } { pop return } ifelse
++
++ /la.tmp.datalen lang.data length def
++ /la.tmp.str lang.data cvs def
++
++ la.tmp.datalen 0 eq { return } if
++ la.tmp.str la.tmp.datalen 1 sub get '\n' ne { return } if
++
++ '\n' seteotchar
++
++ /lang.items [
++
++ /la.tmp.len 0 def
++ /la.tmp.cnt 0 def
++ {
++ la.tmp.str la.tmp.len add strdup
++ dup dup length 0 put
++ /la.tmp.len over length 1 add la.tmp.len add def
++
++ dup 0 get '*' eq { 1 add /lang.default la.tmp.cnt def } if
++
++ la.tmp.len la.tmp.datalen ge { exit } if
++
++ /la.tmp.cnt inc
++ } loop
++
++ ] def
++
++ ' ' seteotchar
++
++ /lang.names [
++
++ lang.items {
++
++ dup dup length add
++
++ dup 0 get {
++ dup 0 0 put 1 add
++ exch pop
++ } {
++ pop lang.getdefname
++ } ifelse
++
++ } forall
++
++ keymap.submenu {
++ /lang.submenu.keyboard
++ } if
++
++ ] def
++
++ /lang.submenu.idx keymap.submenu { lang.names length 1 sub } { -1 } ifelse def
++
++ 0 seteotchar
++
++} def
++
++
++/lang.submenu.keyboard.buf 64 string def
++/lang.submenu.keyboard {
++ /txt_keyboard exec &quot;\x09%s&quot; lang.submenu.keyboard.buf sprintf
++ lang.submenu.keyboard.buf
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Build language list.
++%
++% ( ) ==&gt; ( )
++%
++/lang.init {
++ /xmenu.lang .xm_size array def
++ /xmenu xmenu.lang def
++
++ lang.parsedata
++
++ xmenu .xm_current lang.default put
++ xmenu .xm_list lang.names put
++
++ xmenu .xm_title /txt_language put
++
++ % make menu smaller if there are more than 19 language entries
++ %lang.items length 19 gt {
++ % xmenu .xm_vspace 2 put
++ %} if
++
++ % start with current lang
++
++ /la.tmp.cnt 0 def
++ lang.items {
++ config.lang locale.cmp { xmenu .xm_current la.tmp.cnt put exit } if
++ /la.tmp.cnt inc
++ } forall
++
++ /la.tmp.cnt 0 def
++ lang.items {
++ config.lang eq { xmenu .xm_current la.tmp.cnt put exit } if
++ /la.tmp.cnt inc
++ } forall
++
++ % needed in case menu is only attached to lang menu
++ keymap.init
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Update language.
++%
++% ( ) ==&gt; ( )
++%
++/lang.update {
++ /xmenu xmenu.lang def
++
++ xmenu .xm_current get lang.submenu.idx eq {
++ xmenu .xm_current over .xm_last get put
++ panel.keymap
++ } {
++ lang.items xmenu .xm_current get get
++ dup
++ setlang { /window.action actRedraw def } if
++ getkeymapfromlocale setkeymap
++ keymap.setdefault
++ } ifelse
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Show language menu.
++%
++% ( ) =&gt; ( )
++%
++/panel.lang {
++ &quot;keytable&quot; help.setcontext
++
++ window.xmenu
++ dup .xmenu xmenu.lang put
++ dup .xmenu.update /lang.update put
++ dup window.init
++ window.show
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Return width of panel entry.
++%
++% ( ) =&gt; ( width )
++%
++/panel.lang.width {
++ /xmenu xmenu.lang def
++
++ pmenu.width
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Redraw panel entry.
++%
++% ( panel ) =&gt; ( )
++%
++/panel.lang.update {
++ /xmenu xmenu.lang def
++
++ pmenu.panel.update
++
++ xmenu.keymap .xm_panel_x xmenu.lang .xm_panel_x get put
++} def
++
++
+
+<a id="themetrunkmageiagfxbootthemetrunksrcdia_profileinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/src/dia_profile.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/src/dia_profile.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/src/dia_profile.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,137 @@
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% Profile selection dialog.
++%
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Some global vars.
++%
++
++% fallback if we can't parse &quot;profiles&quot;
++/profile.options [ &quot;&quot; ] def
++/profile.items [ &quot;Broken Profiles&quot; ] def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Parse &quot;profiles&quot; file.
++%
++% ( ) ==&gt; ( )
++%
++/profile.parsedata {
++ /pf.tmp.datalen profile.data length def
++ /pf.tmp.str profile.data cvs def
++
++ /profile.default 0 def
++
++ pf.tmp.datalen 0 eq { return } if
++ pf.tmp.str pf.tmp.datalen 1 sub get '\n' ne { return } if
++
++ '\n' seteotchar
++
++ /profile.items [
++
++ /pf.tmp.len 0 def
++ /pf.tmp.cnt 0 def
++ {
++ pf.tmp.str pf.tmp.len add strdup
++ dup dup length 0 put
++ /pf.tmp.len over length 1 add pf.tmp.len add def
++
++ dup 0 get '*' eq { 1 add /profile.default pf.tmp.cnt def } if
++
++ pf.tmp.len pf.tmp.datalen ge { exit } if
++
++ /pf.tmp.cnt inc
++ } loop
++
++ ] def
++
++ ' ' seteotchar
++
++ /profile.options [
++
++ profile.items {
++ dup length add
++ dup 0 0 put
++ 1 add
++ } forall
++
++ ] def
++
++ 0 seteotchar
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Build profile list.
++%
++% ( ) ==&gt; ( )
++%
++/profile.init {
++ /xmenu.profile .xm_size array def
++ /xmenu xmenu.profile def
++
++ profile.parsedata
++
++ xmenu .xm_title &quot;Profile&quot; put
++
++ xmenu .xm_current profile.default put
++ xmenu .xm_list profile.items put
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Update profile.
++%
++% ( ) ==&gt; ( )
++%
++/profile.update {
++ /xmenu xmenu.profile def
++
++ /window.action actRedrawPanel def
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Show profile menu.
++%
++% ( ) =&gt; ( )
++%
++/panel.profile {
++ &quot;profile&quot; help.setcontext
++
++ window.xmenu
++ dup .xmenu xmenu.profile put
++ dup .xmenu.update /profile.update put
++ dup window.init
++ window.show
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Return width of panel entry.
++%
++% ( ) =&gt; ( width )
++%
++/panel.profile.width {
++ /xmenu xmenu.profile def
++
++ pmenu.width
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Redraw panel entry.
++%
++% ( panel ) =&gt; ( )
++%
++/panel.profile.update {
++ /xmenu xmenu.profile def
++
++ pmenu.panel.update
++} def
++
++
+
+<a id="themetrunkmageiagfxbootthemetrunksrcdia_videoinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/src/dia_video.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/src/dia_video.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/src/dia_video.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,81 @@
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% Video mode selection dialog.
++%
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Some global vars.
++%
++% video mode array fields
++/video.default 2 def
++/video.modes.list [ 0 785 788 791 ] def
++/video.modes.text [ &quot;Text&quot; &quot;640 x 480&quot; &quot;800 x 600&quot; &quot;1024 x 768&quot; ] def
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Build video mode list.
++%
++% ( ) ==&gt; ( )
++%
++/video.init {
++ /xmenu.video .xm_size array def
++
++ /xmenu xmenu.video def
++
++ xmenu .xm_list video.modes.text put
++ xmenu .xm_title .undef put
++ xmenu .xm_current video.default put
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Update video mode.
++%
++% ( ) ==&gt; ( )
++%
++/video.update {
++ /xmenu xmenu.video def
++
++ /window.action actRedrawPanel def
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Show video menu.
++%
++% ( ) =&gt; ( )
++%
++/panel.video {
++ &quot;videomode&quot; help.setcontext
++
++ window.xmenu
++ dup .xmenu xmenu.video put
++ dup .xmenu.update /video.update put
++ dup window.init
++ window.show
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Return width of video entry.
++%
++% ( ) =&gt; ( width )
++%
++/panel.video.width {
++ /xmenu xmenu.video def
++
++ pmenu.width
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Redraw panel entry.
++%
++% ( panel ) =&gt; ( )
++%
++/panel.video.update {
++ /xmenu xmenu.video def
++
++ pmenu.panel.update
++} def
+
+<a id="themetrunkmageiagfxbootthemetrunksrchelpinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/src/help.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/src/help.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/src/help.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,684 @@
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% help system
++%
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++
++% global vars used by help system
++
++
++/help.context &quot;main&quot; def
++
++/help.light white def
++/help.dark black def
++/help.font font.normal def
++/help.normal.bg window.color.bg def
++/help.normal.fg window.color.fg def
++
++/help.x 80 def
++/help.y 50 def
++/help.width 480 def
++/help.height 322 def
++
++clip.size pop 800 eq {
++ /help.x 120 def
++ /help.y 90 def
++ /help.width 560 def
++ /help.height 359 def
++} if
++
++/help.text.x help.x 10 add def
++/help.text.y help.y 30 add def
++
++/help.text.width help.width 20 sub def
++/help.text.height help.height help.text.y sub help.y add 4 sub def
++/help.text.rightmargin help.text.x help.text.width add def
++
++/help.title.x help.x 10 add def
++/help.title.y help.y 3 add def
++/help.title.height 20 def
++/help.title.font font.normal def
++
++/help.hist.page 16 array def
++/help.hist.startrow help.hist.page length array def
++/help.hist.selectedlink help.hist.page length array def
++
++
++% for boot option lookup
++/bo.opt.max 32 def
++/bo.opt bo.opt.max 3 add string def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Map help context.
++%
++% ( context ) ==&gt; ( new_context )
++%
++% Note: obsolete.
++%
++/help.mapcontext {
++ % dup &quot;xxx&quot; eq { pop &quot;yyy&quot; } if
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Set help context.
++%
++% ( context ) ==&gt; ( )
++%
++/help.setcontext {
++ help.mapcontext /help.context exch def
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Find boot option the cursor is positioned at.
++%
++% ( ) ==&gt; ( option )
++%
++/findbootoption {
++ boot.window .ed.list get boot.window .ed.focus get get
++ /bo.buf over .inp_buf get def
++ /bo.len over .inp_buf_len get def
++ /bo.pos exch .inp_int get .inp_int_cur get def
++
++ {
++ bo.pos 0 eq { exit } if
++ bo.buf bo.pos 1 sub get ' ' le { exit } if
++ /bo.pos bo.pos 1 sub def
++ } loop
++
++ /bo.buf bo.buf bo.pos add def
++
++ bo.buf 0 get ' ' le { &quot;&quot; return } if
++
++ % &quot;o_&quot; + option name is the help text label
++ &quot;o_&quot; bo.opt sprintf
++
++ 0 1 bo.opt.max 1 sub {
++ dup
++ bo.buf exch get
++ dup ' ' le over '=' eq or { pop pop exit } if
++ over bo.opt 2 add exch rot put
++ bo.opt 3 add exch 0 put
++ } for
++
++ bo.opt
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Find help page.
++%
++% returns help page or empty string if no page was found
++%
++% ( label ) ==&gt; ( help_text )
++%
++% Shows first help page if label is not found.
++%
++/help.findpage {
++ dup length 3 add dup string
++ &quot;\x12%s\x14&quot;
++ 3 1 roll dup 5 1 roll snprintf
++ help.getmessages over strstr
++ dup { 2 sub } if 1 add
++ help.getmessages add
++ exch free
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Find help page.
++%
++% returns n-th help page or empty string if no page was found
++%
++% ( n ) ==&gt; ( help_text )
++%
++/help.findpagebyindex {
++ help.getmessages exch
++ {
++ dup &quot;\x04&quot; strstr
++ dup { add } { pop pop &quot;&quot; exit } ifelse
++ } repeat
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Init &amp; display help page.
++%
++% ( help_text start_row selected_link ) ==&gt; ( )
++%
++/help.initpage {
++ /help.selectedlink exch def
++ /help.startrow exch def
++
++ /help.currenttext over def
++
++ window.title.bg setcolor
++ help.x 1 add help.y 1 add moveto
++ help.width 2 sub help.title.height 1 sub fillrect
++
++ help.text.x help.text.y moveto
++ currentmaxrows 0 setmaxrows exch formattext setmaxrows
++
++ white setcolor
++ currenteotchar 16 seteotchar
++ help.title.x help.title.y moveto currenttitle
++ currentfont help.title.font setfont exch show setfont
++ seteotchar
++
++ getlinks { help.selectedlink setlink } if
++
++ help.updatepage
++
++ % 500 0 moveto gettextrows print
++ % 400 0 moveto getlinks print
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Redraw help page.
++%
++% ( ) ==&gt; ( )
++%
++/help.updatepage {
++ help.normal.bg setcolor
++ help.text.x help.text.y moveto
++ help.text.width help.text.height fillrect
++
++ help.normal.fg help.highlight.fg help.link.fg help.link.selected.fg settextcolors
++
++ help.startrow setstartrow
++
++ help.text.x help.text.y moveto
++ help.currenttext show
++
++ 0 setstartrow
++
++ true help.selectedlink help.redrawlink
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Used to iterate over all help pages (for debugging).
++%
++% get the n-th page starting from current pos
++%
++% ( n ) ==&gt; ( help_text )
++%
++/help.test {
++ help.test.cnt add
++ dup 1 lt { pop 1 } if
++ /help.test.cnt over def
++ help.findpagebyindex
++ dup &quot;&quot; eq {
++ % one page back
++ pop help.test.cnt 1 sub /help.test.cnt over def
++ help.findpagebyindex
++ } if
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Redraw link.
++%
++% selected: true or false.
++%
++% ( selected n ) ==&gt; ( )
++%
++%
++/help.redrawlink {
++ getlinks 0 eq { pop pop return } if
++ getlink
++ dup help.startrow lt
++ over help.startrow help.text.rows add ge or {
++ 5 { pop } repeat return
++ } if
++ help.startrow sub lineheight mul help.text.y add
++ moveto
++ rot
++
++ 16 seteotchar
++
++ {
++ currenttextcolors 4 1 roll pop pop pop
++ help.link.selected.bg
++ } {
++ currenttextcolors 4 2 roll pop pop pop
++ help.normal.bg
++ } ifelse
++
++ setcolor over currentpoint rot strsize fillrect moveto
++
++ setcolor show
++
++ 4 seteotchar
++
++ pop
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Select n-th link.
++%
++% ( n ) ==&gt; ( )
++%
++/help.selectlink {
++ help.selectedlink over eq {
++ pop
++ } {
++ % deselect old link
++ false help.selectedlink help.redrawlink
++
++ /help.selectedlink over dup setlink def
++
++ % select link
++ true exch help.redrawlink
++ } ifelse
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Select first visible link.
++%
++% No screen update if 'update' is false.
++%
++% ( update ) ==&gt; ( )
++%
++/help.sel.firstlink {
++ getlinks {
++ 0 1 getlinks 1 sub {
++ dup
++ getlink 4 1 roll pop pop pop
++ dup help.startrow help.text.rows add ge {
++ pop pop exit
++ } if
++ dup help.startrow ge {
++ pop
++ over { help.selectlink } { /help.selectedlink exch dup setlink def } ifelse
++ exit
++ } if
++ pop pop
++ } for
++ } if
++ pop
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Select last visible link.
++%
++% No screen update if 'update' is false.
++%
++% ( update ) ==&gt; ( )
++%
++/help.sel.lastlink {
++ getlinks {
++ getlinks 1 sub -1 0 {
++ dup
++ getlink 4 1 roll pop pop pop
++ dup help.startrow lt {
++ pop pop exit
++ } if
++ dup help.startrow help.text.rows add lt {
++ pop
++ over { help.selectlink } { /help.selectedlink exch dup setlink def } ifelse
++ exit
++ } if
++ pop pop
++ } for
++ } if
++ pop
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Push current help context to history.
++%
++% ( ) ==&gt; ( )
++%
++/help.add2history {
++ help.hist.index help.hist.page length lt {
++ help.hist.page help.hist.index help.currenttext put
++ help.hist.startrow help.hist.index help.startrow put
++ help.hist.selectedlink help.hist.index help.selectedlink put
++ /help.hist.index help.hist.index 1 add def
++ } if
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Follow currently selected link.
++%
++% ( ) ==&gt; ( )
++%
++/help.followlink {
++ getlinks {
++ help.selectedlink getlink pop pop pop
++ help.add2history
++ help.findpage
++ dup &quot;&quot; eq {
++ pop
++ } {
++ 0 0 help.initpage
++ } ifelse
++ } if
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Go back to previous page.
++%
++% ( ) ==&gt; ( )
++%
++/help.prevlink {
++ help.hist.index 0 gt {
++ /help.hist.index help.hist.index 1 sub def
++ help.hist.page help.hist.index get
++ help.hist.startrow help.hist.index get
++ help.hist.selectedlink help.hist.index get
++ help.initpage
++ } if
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Scroll a page down.
++%
++% ( ) ==&gt; ( )
++%
++/help.key.pagedown {
++ help.startrow
++ gettextrows help.text.rows gt {
++ pop
++ gettextrows help.text.rows sub
++ help.startrow help.text.rows add
++ min
++ } if
++
++ dup help.startrow eq {
++ pop
++ true help.sel.lastlink
++ } {
++ /help.startrow exch def
++ false help.sel.firstlink
++ help.updatepage
++ } ifelse
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Scroll a page up.
++%
++% ( ) ==&gt; ( )
++%
++/help.key.pageup {
++ help.startrow
++ gettextrows help.text.rows gt {
++ pop
++ 0
++ help.startrow help.text.rows sub
++ max
++ } if
++
++ dup help.startrow eq {
++ pop
++ true help.sel.firstlink
++ } {
++ /help.startrow exch def
++ false help.sel.firstlink
++ help.updatepage
++ } ifelse
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Go to page start.
++%
++% ( ) ==&gt; ( )
++%
++/help.key.home {
++ help.startrow 0 eq {
++ true help.sel.firstlink
++ } {
++ /help.startrow 0 def
++ false help.sel.firstlink
++ help.updatepage
++ } ifelse
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Go to page end.
++%
++% ( ) ==&gt; ( )
++%
++/help.key.end {
++ gettextrows help.text.rows sub 0 max
++ dup help.startrow eq {
++ pop
++ true help.sel.lastlink
++ } {
++ /help.startrow exch def
++ false help.sel.lastlink
++ help.updatepage
++ } ifelse
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Next link or scroll down.
++%
++% ( ) ==&gt; ( )
++%
++/help.key.down {
++ help.selectedlink getlinks 1 sub lt {
++ help.selectedlink 1 add getlink 4 1 roll pop pop pop
++ dup help.startrow help.text.rows add lt {
++ % link visible
++ pop help.selectedlink 1 add help.selectlink
++ return
++ } {
++ help.startrow help.text.rows add eq {
++ % link visible after scrolling down
++ /help.selectedlink help.selectedlink 1 add dup setlink def
++ } if
++ } ifelse
++ } if
++
++ % scroll down
++
++ help.startrow help.text.rows add gettextrows lt {
++ /help.startrow help.startrow 1 add def
++ help.updatepage
++ } if
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Previous link or scroll up.
++%
++% ( ) ==&gt; ( )
++%
++/help.key.up {
++ help.selectedlink 0 gt {
++ help.selectedlink 1 sub getlink 4 1 roll pop pop pop
++ % row
++ dup help.startrow ge {
++ % link visible
++ pop help.selectedlink 1 sub help.selectlink
++ return
++ } {
++ help.startrow 1 sub eq {
++ % link visible after scrolling up
++ /help.selectedlink help.selectedlink 1 sub dup setlink def
++ } if
++ } ifelse
++ } if
++
++ % scroll up
++
++ help.startrow 0 gt {
++ /help.startrow help.startrow 1 sub def
++ help.updatepage
++ } if
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Handle keyboard input.
++%
++% ( key_in ) ==&gt; ( key_out )
++%
++/help.input {
++ dup 0 eq { return } if
++
++ dup keyEsc eq { /window.action actNothing def window.done } if
++ dup keyCtrlDown eq { 1 help.test 0 0 help.initpage } if
++ dup keyCtrlUp eq { -1 help.test 0 0 help.initpage } if
++ dup keyDown eq { help.key.down } if
++ dup keyUp eq { help.key.up } if
++ dup keyPgDown eq { help.key.pagedown } if
++ dup keyPgUp eq { help.key.pageup } if
++ dup keyHome eq { help.key.home } if
++ dup keyEnd eq { help.key.end } if
++ dup keyRight eq { help.followlink } if
++ dup keyEnter eq { help.followlink } if
++ dup 0xff and ' ' eq { help.followlink } if
++ dup keyLeft eq { help.prevlink } if
++ dup 0xff and '\x08' eq { help.prevlink } if
++ dup keyF1 eq {
++ &quot;help&quot; help.findpage
++ dup help.currenttext eq {
++ pop
++ } {
++ help.add2history
++ 0 0 help.initpage
++ } ifelse
++ } if
++% dup keyF9 eq {
++% /help.font help.font 8 add 10 mod def help.reinit
++% help.currenttext help.startrow help.selectedlink help.initpage
++% } if
++ pop 0
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Recalculate some sizes and redraw help screen.
++%
++% ( ) ==&gt; ( )
++%
++/help.reinit {
++ help.normal.bg setcolor
++ help.x help.y moveto
++ help.width help.height fillrect
++
++ help.x 1 add help.y 1 add help.title.height add moveto
++ help.dark help.light
++ help.width 2 sub help.height 2 sub help.title.height sub
++ drawborder
++
++ help.font setfont
++
++ /help.text.rows help.text.height lineheight div def
++ help.text.rows setmaxrows
++
++ help.text.rightmargin settextwrap
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Initialize help window.
++%
++% ( window ) ==&gt; ( )
++%
++/help.init {
++ /help.tmp exch def
++
++ help.x 1 sub help.y 1 sub moveto
++ help.light help.dark
++ help.width 2 add help.height 2 add
++ over over
++ savescreen
++ help.tmp .saved rot put
++ drawborder
++
++ help.reinit
++
++ 4 seteotchar
++
++ /help.hist.index 0 def
++
++ /help.test.cnt 1 def
++
++ help.context help.findpage 0 0 help.initpage
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Draw help window.
++%
++% ( window ) ==&gt; ( )
++%
++/help.show {
++ window.push
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Close current help window.
++%
++% ( ) ==&gt; ( )
++%
++/help.done {
++ 0 settextwrap
++ 0 seteotchar
++ 0 setmaxrows
++} def
++
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Create new help window.
++%
++% ( ) ==&gt; ( window )
++%
++/window.help {
++ widget.size array
++ dup .type t_help put
++
++ dup .x help.x put
++ dup .y help.y put
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Find help texts.
++%
++% ( ) ==&gt; ( start_of_help_messages )
++%
++% Note: must always return something (fake a message if necessary).
++%
++/help.getmessages {
++
++ help.messages .undef eq {
++ % load help texts
++ /help.messages
++ config.lang &quot;%s.hlp&quot; locale.findfile
++ dup .undef eq { pop &quot;en_US&quot; &quot;%s.hlp&quot; locale.findfile } if
++ dup .undef eq { pop &quot;\x04\x12\x14No Help Texts\x10Sorry, no help texts found.&quot; } if
++ cvs
++ def
++ } if
++
++ help.messages
++
++} def
++
++
+
+<a id="themetrunkmageiagfxbootthemetrunksrckeytablesinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/src/keytables.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/src/keytables.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/src/keytables.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,62 @@
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% Keyboard mappings.
++%
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++
++
++% keymap layout (diff to us map):
++%
++% key_code, plain, shift, altgr
++%
++
++/.km.name 0 def
++/.km.locale 1 def
++/.km.id 2 def
++/.km.map 3 def
++
++%% include ../keymaps/keymap.cs_CZ.inc
++%% include ../keymaps/keymap.da_DK.inc
++%% include ../keymaps/keymap.de_DE.inc
++%% include ../keymaps/keymap.et_EE.inc
++%% include ../keymaps/keymap.el_GR.inc
++%% include ../keymaps/keymap.es_ES.inc
++%% include ../keymaps/keymap.fr_FR.inc
++%% include ../keymaps/keymap.hu_HU.inc
++%% include ../keymaps/keymap.it_IT.inc
++%% include ../keymaps/keymap.ja_JP.inc
++%% include ../keymaps/keymap.nb_NO.inc
++%% include ../keymaps/keymap.pl_PL.inc
++%% include ../keymaps/keymap.pt_BR.inc
++%% include ../keymaps/keymap.pt_PT.inc
++%% include ../keymaps/keymap.ru_RU.inc
++%% include ../keymaps/keymap.sk_SK.inc
++%% include ../keymaps/keymap.sl_SI.inc
++%% include ../keymaps/keymap.sv_SE.inc
++%% include ../keymaps/keymap.tr_TR.inc
++
++% array must not be empty
++/keymaps [
++ [ &quot;Czech&quot; &quot;cs_CZ&quot; &quot;czech&quot; keymap.cs_CZ ]
++ [ &quot;Danish&quot; &quot;da_DK&quot; &quot;danish&quot; keymap.da_DK ]
++ [ &quot;German&quot; &quot;de_DE&quot; &quot;german&quot; keymap.de_DE ]
++ [ &quot;Estonian&quot; &quot;et_EE&quot; &quot;estonian&quot; keymap.et_EE ]
++ [ &quot;English-US&quot; &quot;en_US&quot; &quot;english-us&quot; .undef ]
++ [ &quot;Greek&quot; &quot;el_GR&quot; &quot;greek&quot; keymap.el_GR ]
++ [ &quot;Spanish&quot; &quot;es_ES&quot; &quot;spanish&quot; keymap.es_ES ]
++ [ &quot;French&quot; &quot;fr_FR&quot; &quot;french&quot; keymap.fr_FR ]
++ [ &quot;Hungarian&quot; &quot;hu_HU&quot; &quot;hungarian&quot; keymap.hu_HU ]
++ [ &quot;Italian&quot; &quot;it_IT&quot; &quot;italian&quot; keymap.it_IT ]
++ [ &quot;Japanese&quot; &quot;ja_JP&quot; &quot;japanese&quot; keymap.ja_JP ]
++ [ &quot;Norwegian&quot; &quot;nb_NO&quot; &quot;norwegian&quot; keymap.nb_NO ]
++ [ &quot;Polish&quot; &quot;pl_PL&quot; &quot;polish&quot; keymap.pl_PL ]
++ [ &quot;Portuguese-BR&quot; &quot;pt_BR&quot; &quot;portuguese-br&quot; keymap.pt_BR ]
++ [ &quot;Portuguese&quot; &quot;pt_PT&quot; &quot;portuguese&quot; keymap.pt_PT ]
++ [ &quot;Russian&quot; &quot;ru_RU&quot; &quot;russian&quot; keymap.ru_RU ]
++ [ &quot;Slovak&quot; &quot;sk_SK&quot; &quot;slovak&quot; keymap.sk_SK ]
++ [ &quot;Slovene&quot; &quot;sl_SI&quot; &quot;slovene&quot; keymap.sl_SI ]
++ [ &quot;Swedish&quot; &quot;sv_SE&quot; &quot;swedish&quot; keymap.sv_SE ]
++ [ &quot;Turkish&quot; &quot;tr_TR&quot; &quot;turkish&quot; keymap.tr_TR ]
++] def
++
++
+
+<a id="themetrunkmageiagfxbootthemetrunksrclocaleinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/src/locale.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/src/locale.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/src/locale.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,267 @@
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% Handle translations.
++%
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Set language.
++%
++% ( locale ) ==&gt; ( true|false )
++%
++/setlang {
++ config.lang over eq { pop false return } if
++
++ /config.lang exch def
++
++ /config.rtl config.lang lang.getrtl def
++
++ % clear old help texts
++ /help.messages xfree
++
++ translation.texts {
++ translation.texts dup { free } forall free
++ /translation.texts .undef def
++ } if
++
++ findtexts
++
++ true
++} def
++
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Set keyboard map.
++%
++% ( locale|keymap ) ==&gt; ( )
++%
++/setkeymap {
++ config.keymap.name over eq { pop return } if
++ /config.keymap.name exch def
++
++ config.keymap.id config.keymap.name eq { return } if
++
++ /config.keymap .undef def
++ /config.keymap.id .undef def
++
++ keymaps {
++ dup .km.id get config.keymap.name eq
++ over .km.locale get config.keymap.name eq or {
++ dup .km.map get /config.keymap exch def
++ .km.id get /config.keymap.id exch def
++ } { pop } ifelse
++ } forall
++
++ config.keymap.id .undef eq {
++ keymaps {
++ dup .km.locale get config.keymap.name locale.cmp {
++ dup .km.map get /config.keymap exch def
++ .km.id get /config.keymap.id exch def
++ } { pop } ifelse
++ } forall
++ } if
++
++ config.keymap.id .undef eq {
++ /config.keymap.id &quot;en_US&quot; def
++ } if
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Look up keymap in languale locale list.
++%
++% ( locale ) ==&gt; ( keymap|locale )
++%
++/getkeymapfromlocale {
++ /kbd.tmp exch def
++ /kbd.tmp.locale .undef def
++
++ lang.defaultnames {
++ dup .la.locale get kbd.tmp eq { .la.keymap get /kbd.tmp.locale exch def exit } { pop } ifelse
++ } forall
++
++ kbd.tmp.locale .undef eq {
++ lang.defaultnames {
++ dup .la.locale get kbd.tmp locale.cmp { .la.keymap get /kbd.tmp.locale exch def exit } { pop } ifelse
++ } forall
++ } if
++
++ kbd.tmp.locale .undef ne { /kbd.tmp kbd.tmp.locale def } if
++
++ kbd.tmp
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Set texts for current language.
++%
++% ( ) ==&gt; ( )
++%
++/findtexts {
++ /locale.texts afree
++ /locale.texts config.lang &quot;%s.tr&quot; loadtexts def
++
++ 0 texts {
++ over locale.texts exch aget dup .undef eq { pop &quot;No Texts!&quot; } if def
++ 1 add
++ } forall
++ pop
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Load texts for current language.
++%
++% ( str1 str2 -- array1 )
++%
++% str1: locale
++% str2: file name template (like &quot;foo.%s&quot;)
++% array1: array with texts (empty if no file was found)
++%
++/loadtexts {
++ locale.findfile
++ dup .undef eq { pop &quot;en_US&quot; &quot;%s.tr&quot; locale.findfile } if
++ dup .undef eq { pop [ ] return } if
++
++ /ft.len over length def
++ /ft.str over cvs def
++ /ft.pos 0 def
++
++ [
++ {
++ ft.pos ft.str length add ft.len lt {
++ ft.str strdup
++ /ft.str ft.str dup length 1 add /ft.pos over ft.pos add def add def
++ } {
++ exit
++ } ifelse
++ } loop
++ ]
++
++ exch free
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Translate menu entry.
++%
++% ( text ) ==&gt; ( text )
++%
++/translate {
++ translations.init
++
++ translation.texts length 2 lt { return } if
++
++ 0 2 translation.texts length -2 and 1 sub {
++ translation.texts over get 2 index eq {
++ 1 add translation.texts exch get exch pop exit
++ } { pop } ifelse
++ } for
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Read menu translations.
++%
++% ( ) ==&gt; ( )
++%
++/translations.init {
++ translation.texts { return } if
++
++ /translation.texts [ ] def
++
++ config.lang .undef eq { return } if
++
++ config.lang &quot;translations.%s&quot; locale.findfile dup {
++
++ /la.tmp.datalen over length def
++ /la.tmp.str exch cvs def
++
++ la.tmp.datalen 0 eq { return } if
++ la.tmp.str la.tmp.datalen 1 sub get '\n' ne { return } if
++
++ '\n' seteotchar
++
++ /translation.texts [
++
++ /la.tmp.len 0 def
++
++ {
++ la.tmp.str la.tmp.len add strdup
++ dup dup length 0 put
++ /la.tmp.len over length 1 add la.tmp.len add def
++
++ la.tmp.len la.tmp.datalen ge { exit } if
++
++ } loop
++
++ ] def
++
++ 0 seteotchar
++ } { pop } ifelse
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Read locale-specific file.
++%
++% ( str1 str2 -- ptr1 )
++%
++% str1: locale
++% str2: file name template (like &quot;foo.%s&quot;)
++% ptr1: buffer with file data (or .undef)
++%
++/locale.findfile {
++ over length over length add string
++
++ rot strdup rot
++
++ over over 4 index sprintf 2 index findfile
++
++ dup .undef eq {
++ pop
++ exch
++ dup &quot;_&quot; strstr dup {
++ 1 sub
++ over exch 0 put
++ exch
++ over over 4 index sprintf 2 index findfile
++ } {
++ pop exch .undef
++ } ifelse
++ } if
++
++ exch pop exch free exch free
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Compare two locale names.
++%
++% ( str1 str2 -- int1 )
++%
++% str1: locale1
++% str2: locale2
++% int1: 0 = no match, 1 = loose match, 2 = identical
++%
++/locale.cmp {
++ over over eq { pop pop 2 return } if
++
++ currenteotchar '_' seteotchar
++
++ rot strdup rot strdup
++
++ over over eq rot free exch free
++
++ exch seteotchar
++
++ { 1 } { 0 } ifelse
++} def
++
++
+
+<a id="themetrunkmageiagfxbootthemetrunksrcmainbc">Added: theme/trunk/mageia-gfxboot-theme/trunk/src/main.bc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/src/main.bc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/src/main.bc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,27 @@
++%% include system.inc
++%% include bsplash.inc
++
++%% include timeout.inc
++%% include common.inc
++%% include serial.inc
++
++%% include ../po/text.inc
++%% include window.inc
++%% include button.inc
++%% include help.inc
++%% include menu.inc
++%% include xmenu.inc
++%% include dia_video.inc
++%% include dia_lang.inc
++%% include dia_dud.inc
++%% include dia_help.inc
++%% include dia_profile.inc
++%% include dia_install.inc
++%% include dia_bits.inc
++%% include dia_about.inc
++%% include dia_kernelopts.inc
++%% include dia_keymap.inc
++%% include panel.inc
++%% include keytables.inc
++%% include locale.inc
++%% include speech.inc
+
+<a id="themetrunkmageiagfxbootthemetrunksrcmenuinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/src/menu.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/src/menu.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/src/menu.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,496 @@
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% Main menu (boot entry + boot options + panel).
++%
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++
++% max number of boot option input fields
++/boot.ed.max 2 def
++
++% boot option input line separator
++/boot.splitchar 1 def
++/boot.splitstr 1 string dup 0 boot.splitchar put def
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Create new main window.
++%
++% ( ) ==&gt; ( window )
++%
++/window.main {
++ widget.size array
++ dup .type t_main put
++ dup .font font.normal put
++ dup .ed.font font.normal put
++ dup .color.fg boot.text.normal put
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Initialize main window.
++%
++% ( window ) ==&gt; ( )
++%
++/main.init {
++ pop
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Redraw main window.
++% (E.g. after selecting a new language.)
++%
++% ( window ) ==&gt; ( )
++%
++/main.redraw {
++
++ % boot.drawlabels
++
++ main.drawmenu
++ /keepbootoptions 1 def
++ menu.entry true MenuSelect
++ /keepbootoptions .undef def
++
++ panel.show
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Draw boot option input field labels.
++%
++% ( ) == &gt; ( )
++%
++/boot.drawlabels {
++ boot.show not { return } if
++
++ boot.text.options setcolor
++ window.current .font get setfont
++ boot.ed.list {
++ dup .inp_x get 10 sub over .inp_y get moveto
++ currentpoint
++ currentpoint 0 exch moveto
++ currentpoint rot 1 add fontheight image
++ moveto
++ dup .inp_show get {
++ .inp_label get exec showright
++ } { pop } ifelse
++ } forall
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Setup boot option input field.
++%
++% ( ) == &gt; ( )
++%
++/boot.input.setup {
++ % HACK: we do not need to do this function if not boot.show,
++ % and since we have some ugly overlap of bootoptions on the panel
++ % we really do not want to do it if not really useful
++ boot.show not { return } if
++
++ boot.ed.list {
++ dup .inp_x get over .inp_y get boot.ed.height add moveto
++
++ currentpoint boot.ed.width 2 image
++
++ currentcolor
++ currenttransparency
++
++ white setcolor
++ 0xe0 settransparency
++
++ 2 index .inp_show get {
++ boot.ed.width 2 fillrect
++ } if
++
++ settransparency
++ setcolor
++
++ pop
++
++ } forall
++} def
++
++
++/boot.input.preinit {
++
++ boot.ed.list { dup .inp_show false put .inp_buf get 0 0 put } forall
++
++ menu.args menu.entry get boot.splitchar split
++
++ 0 1 boot.ed.list length 1 sub {
++ over over aget dup .undef ne {
++ boot.ed.list rot get dup .inp_show true put .inp_buf get exch strcpy pop
++ } {
++ pop pop exit
++ } ifelse
++ } for
++
++ free
++
++ config.nobootoptions menu.texts menu.entry get iselement {
++ boot.ed.list 0 get .inp_show false put
++ } if
++
++ boot.ed.list { splitcmdline } forall
++
++} def
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Activate boot option input field.
++%
++% ( ) == &gt; ( )
++%
++/bootoptions.init {
++ window.current .color.fg get setcolor
++ window.current .ed.font get setfont
++
++ boot.ed.list boot.window .ed.focus get get edit.hidecursor
++
++ boot.window .ed.focus 0 put
++
++ boot.show {
++ boot.ed.list {
++ dup .inp_show get {
++ dup
++ dup dup .inp_buf get exch over edit.init
++ &quot;&quot; ne { ' ' edit.input } { pop } ifelse
++ edit.hidecursor
++ } {
++ edit.done
++ } ifelse
++ } forall
++ boot.ed.list boot.window .ed.focus get get dup .inp_show get {
++ edit.showcursor
++ % HACK: there is some ugly overlap of bootoptions on the panel
++ % so force to redraw the panel after displaying bootoptions
++ panel.show
++ } { pop } ifelse
++
++ boot.ed.list {
++ dup .inp_show get .inp_visible exch put
++ } forall
++
++ } if
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Redraw boot option input field.
++%
++% ( ) == &gt; ( )
++%
++/bootoptions.redraw {
++
++ % clear old options
++
++ boot.text.options setcolor
++ window.current .font get setfont
++ boot.ed.list {
++ dup .inp_x get 10 sub over .inp_y get moveto
++ currentpoint
++ currentpoint 0 exch moveto
++ currentpoint rot 1 add fontheight image
++ moveto
++ dup .inp_show get {
++ .inp_label get exec showright
++ } { pop } ifelse
++ } forall
++
++ boot.drawlabels
++ boot.input.setup
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Draw boot menu.
++%
++% No entry is marked as selected.
++%
++% ( ) == &gt; ( )
++%
++/main.drawmenu {
++ menu.text.normal setcolor
++
++ /x menu.start.x def
++ /y menu.start.y def
++
++ /menu.bar.width.old menu.bar.width def
++
++ /menu.bar.width
++ menu.bar.min.width
++ menu.texts { menuitemmap strsize pop menu.text.xofs 2 mul add 2 add max } forall
++ def
++
++ 0 1 menu.visible.entries 1 sub {
++ x y moveto currentpoint menu.bar.width.old menu.bar.height image
++ x config.rtl { menu.bar.width menu.text.xofs sub } { menu.text.xofs } ifelse add
++ y menu.text.yofs add moveto
++ menu.texts exch menu.shift add get menuitemmap
++ currentfont exch font.large setfont show.rtl setfont
++ /y y menu.item.height add def
++ } for
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Select/deselect menu entry.
++%
++% If an entry is selected (status = true), the boot options input field is
++% initialized.
++%
++% ( entry status ) ==&gt; ( )
++%
++% status:
++% false not selected
++% true selected
++%
++% Note: menu.bar.width must be valid even if status = false.
++%
++/MenuSelect {
++ /menu.status exch def
++
++ /menu.idx over def
++
++ menu.shift sub
++ menu.item.height mul menu.start.y add
++ menu.start.x exch
++ moveto
++
++ currentpoint
++ menu.status {
++ menu.bar.color setcolor
++ currenttransparency
++ menu.bar.transparency settransparency
++ menu.bar.width menu.bar.height
++ fillrect
++ settransparency
++ } {
++ currentpoint menu.bar.width menu.bar.height image
++ } ifelse
++ moveto
++
++ config.rtl { menu.bar.width menu.text.xofs sub } { menu.text.xofs } ifelse
++ menu.text.yofs rmoveto
++ menu.status {
++ menu.text.select
++ } {
++ menu.text.normal
++ } ifelse
++ setcolor
++ menu.texts menu.idx get menuitemmap
++ menu.status { config.talk { dup speak } if } if
++ currentfont exch font.large setfont show.rtl setfont
++
++ menu.status {
++ % init boot options
++ keepbootoptions .undef eq {
++
++ boot.input.preinit
++
++ false
++ boot.ed.list {
++ dup .inp_show get exch .inp_visible get xor or
++ } forall
++ {
++ boot.input.setup
++ boot.drawlabels
++ } if
++
++ bootoptions.init
++ } {
++ bootoptions.redraw
++ } ifelse
++
++ % set help context
++ &quot;main&quot; help.setcontext
++ menu.texts menu.idx get
++ dup help.findpage &quot;&quot; eq {
++ pop
++ } {
++ help.setcontext
++ } ifelse
++ } if
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Draw main window.
++%
++% ( window ) ==&gt; ( )
++%
++/main.show {
++ window.push
++
++ /menu.shift 0 def
++ /menu.visible.entries menu.texts length menu.max.entries min def
++
++ % get index of default entry
++ /menu.entry 0 def
++ 0 1 menu.texts length 1 sub {
++ dup menu.texts exch get menu.dentry eq { /menu.entry exch def exit } { pop } ifelse
++ } for
++
++ menu.entry menu.visible.entries sub 0 ge {
++ /menu.shift menu.entry menu.texts length menu.visible.entries sub min def
++ } if
++
++ boot.text.options setcolor
++
++ window.current .font get setfont
++
++ /boot.ed.width screen.size pop boot.pos.x boot.pos.y pop sub 20 sub def
++ /boot.ed.height fontheight 2 add def
++
++ /boot.window window.current def
++
++ /boot.ed.list [
++ 0 1 boot.ed.max 1 sub {
++ [
++ boot.pos.x boot.pos.y exch 10 add exch 1 sub 4 -1 roll boot.ed.height 5 add mul add
++ over over moveto boot.ed.width boot.ed.height savescreen
++ cmdlinelength string
++ cmdlinelength
++ .undef
++ cmdlinelength string
++ &quot;More Options&quot;
++ false
++ false
++ ]
++ } for
++ ] def
++
++ boot.ed.list 0 get .inp_label /txt_bootoptions put
++
++ boot.window .ed.list boot.ed.list put
++ boot.window .ed.focus 0 put
++
++ main.drawmenu
++
++ boot.drawlabels
++
++ menu.entry true MenuSelect
++
++ % find default splash mode
++ % 0 1 splash.options length 1 sub {
++ % splash.options over get menu.args menu.entry get exch strstr {
++ % /splash.default exch def
++ % } {
++ % pop
++ % } ifelse
++ % } for
++
++ panel.init
++
++ &quot;main&quot; help.setcontext
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Split command line into hidden and normal part.
++%
++% ( edit_object ) == &gt; ( )
++%
++/splitcmdline {
++ dup length .inp_hidden le { pop return } if
++ dup .inp_hidden get .undef eq { pop return } if
++
++ dup .inp_hidden get over .inp_buf get strcpy pop
++
++ dup .inp_hidden get &quot;showopts&quot; bootopt.find dup {
++ dup &quot;showopts&quot; length add skipspaces
++ 2 index .inp_buf get exch strcpy dropspaces
++ 0 0 put
++ .inp_hidden get dropspaces
++ } {
++ pop dup .inp_hidden get 0 0 put
++ .inp_buf get dropspaces
++ } ifelse
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Handle keyboard input.
++%
++% ( key_in ) ==&gt; ( key_out )
++%
++/main.input {
++ dup 0 eq { return } if
++
++ % handle panel entries
++ panel.input
++
++ dup keyF10 eq {
++ power_off
++ pop 0
++ } if
++
++ dup keyEsc eq { exit_popup pop 0 } if
++
++ dup keyEnter eq {
++ /window.action actStart def
++ pop 0
++ } if
++
++ dup keyUp eq {
++ menu.entry 0 gt {
++ menu.entry false MenuSelect
++ menu.entry menu.shift eq {
++ /menu.shift menu.shift 1 sub def main.drawmenu
++ } if
++ /menu.entry menu.entry 1 sub def
++ menu.entry true MenuSelect
++ } if
++ pop 0
++ } if
++
++ dup keyDown eq {
++ menu.entry menu.texts length 1 sub lt {
++ menu.entry false MenuSelect
++ menu.visible.entries menu.entry menu.shift sub sub 1 eq {
++ /menu.shift menu.shift 1 add def main.drawmenu
++ } if
++ /menu.entry menu.entry 1 add def
++ menu.entry true MenuSelect
++ } if
++ pop 0
++ } if
++
++ dup keyPgUp eq {
++ menu.entry 0 gt {
++ menu.entry false MenuSelect
++ /menu.entry 0 def
++ menu.shift 0 ne {
++ /menu.shift 0 def main.drawmenu
++ } if
++ menu.entry true MenuSelect
++ } if
++ pop 0
++ } if
++
++ dup keyPgDown eq {
++ menu.entry menu.texts length 1 sub lt {
++ menu.entry false MenuSelect
++ /menu.entry menu.texts length 1 sub def
++ menu.texts length menu.visible.entries sub dup menu.shift ne {
++ /menu.shift exch def main.drawmenu
++ } {
++ pop
++ } ifelse
++ menu.entry true MenuSelect
++ } if
++ pop 0
++ } if
++
++ dup 0 ne {
++ &quot;opt&quot; help.setcontext
++ } if
++
++} def
++
++
+
+<a id="themetrunkmageiagfxbootthemetrunksrcpanelinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/src/panel.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/src/panel.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/src/panel.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,200 @@
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% Panel handling.
++%
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Some global vars.
++%
++/panel.size { clip.size pop 24 } def
++/panel.y { clip.size exch pop panel.size exch pop sub 5 sub } def
++/panel.text.y { panel.y 5 add } def
++/panel.text.Fy 0 def
++/panel.font font.normal def
++
++/panel.expert false def
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Init panel.
++%
++% ( ) ==&gt; ( )
++%
++/panel.init {
++
++ /panel.back 0 panel.y moveto panel.size savescreen def
++
++ /panel.entry.help [ keyF1 0 &quot;F1&quot; /panel.help /panel.help.width /panel.help.update .undef ] def
++ /panel.entry.about [ keyF1 0 &quot;F1&quot; /panel.about /panel.about.width /panel.about.update .undef ] def
++
++ % define panel layout
++ /panel.full [
++
++ % [ key x label show_func width_func update_func init_func ]
++
++ about.msg {
++ panel.entry.about
++ } {
++ panel.entry.help
++ } ifelse
++
++ syslinux {
++
++ config.livecd {
++
++ [ keyF2 0 &quot;F2&quot; /panel.lang /panel.lang.width /panel.lang.update /lang.init ]
++ [ keyF3 0 &quot;F3&quot; /panel.video /panel.video.width /panel.video.update /video.init ]
++ [ keyF4 0 &quot;F4&quot; /panel.kernelopts /panel.kernelopts.width /panel.kernelopts.update /kernelopts.init ]
++
++ } {
++
++ [ keyF2 0 &quot;F2&quot; /panel.lang /panel.lang.width /panel.lang.update /lang.init ]
++ [ keyF3 0 &quot;F3&quot; /panel.video /panel.video.width /panel.video.update /video.init ]
++ [ keyF4 0 &quot;F4&quot; /panel.install /panel.install.width /panel.install.update /install.init ]
++ [ keyF5 0 &quot;F5&quot; /panel.dud /panel.dud.width /panel.dud.update /dud.init ]
++ [ keyF6 0 &quot;F6&quot; /panel.kernelopts /panel.kernelopts.width /panel.kernelopts.update /kernelopts.init ]
++
++ 32+64bit_source {
++ 64bit {
++ 32bit_boot_dir .undef ne
++ 64bit_boot_dir .undef ne
++ 32bit_boot_dir 64bit_boot_dir ne
++ and and {
++ [ keyF7 0 &quot;F7&quot; /panel.bits /panel.bits.width /panel.bits.update /bits.init ]
++ } if
++ } if
++ } if
++
++ keymap.mainmenu {
++ [ keyF8 0 &quot;F8&quot; /panel.keymap /panel.keymap.width /panel.keymap.update /keymap.init ]
++ } if
++
++ } ifelse
++
++ xmenu.bits .undef eq { bits.init } if
++
++ } {
++
++ [ keyF2 0 &quot;F2&quot; /panel.lang /panel.lang.width /panel.lang.update /lang.init ]
++ [ keyF3 0 &quot;F3&quot; /panel.kernelopts /panel.kernelopts.width /panel.kernelopts.update /kernelopts.init ]
++ &quot;profiles&quot; findfile dup {
++ /profile.data exch def
++ [ keyF3 0 &quot;F3&quot; /panel.profile /panel.profile.width /panel.profile.update /profile.init ]
++ } { pop } ifelse
++
++ keymap.mainmenu {
++ [ keyF4 0 &quot;F4&quot; /panel.keymap /panel.keymap.width /panel.keymap.update /keymap.init ]
++ } if
++
++ } ifelse
++
++ ] def
++
++ % initialize all
++ panel.full { 6 get dup .undef ne { exec } { pop } ifelse } forall
++
++ /panel panel.full def
++
++ panel.show
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Show panel.
++%
++% ( ) ==&gt; ( )
++%
++/panel.show {
++ panel.font setfont
++
++% panel.bg setcolor
++ 0 panel.y moveto
++% currentpoint
++ panel.back restorescreen
++% currenttransparency
++% 50 settransparency
++% panel.size fillrect
++% settransparency
++% moveto
++
++% panel.border.color setcolor
++% 0 -1 rmoveto
++% 0 1 clip.size pop 3 div { pop putpixel 3 0 rmoveto } for
++
++ % don't change xmenu
++ /xmenu xmenu
++
++ /panel.x config.rtl { clip.size pop } { 0 } ifelse def
++ panel { dup {
++ dup 1 panel.x put
++ dup 4 get exec over 2 get strsize pop add 20 add panel.x exch
++ config.rtl { sub } { add } ifelse
++ /panel.x exch def
++ dup 5 get exec
++ } { pop } ifelse } forall
++
++ def
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Handle keyboard input.
++%
++% ( key_in ) ==&gt; ( key_out )
++%
++/panel.input {
++ panel { dup {
++ dup 0 get 2 index eq { over panel.extra pop 3 get exec pop 0 exit } { pop } ifelse
++ } { pop } ifelse } forall
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Draw panel entry label and move to text field.
++%
++% ( panel ) =&gt; ( )
++%
++/panel.text.moveto {
++ /panel.tmp.x over 1 get 10 config.rtl { sub } { add } ifelse def
++ /panel.tmp.F exch 2 get def
++
++ panel.tmp.x panel.text.y panel.text.Fy add moveto
++ panel.f-key.fg setcolor panel.tmp.F show.rtl
++ panel.normal.fg setcolor
++
++ 6 config.rtl { neg } if panel.text.Fy neg rmoveto
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Do some extra things.
++%
++% ( key ) =&gt; ( key )
++%
++/panel.extra {
++ % move down one menu entry; but only once
++ % see keyDown in main::main.input
++
++ % only for install CDs
++ syslinux not { return } if
++
++ % not for F1
++ dup keyF1 eq { return } if
++
++ panel.extra.fkey .undef eq
++ menu.entry 0 eq
++ menu.entry menu.texts length 1 sub lt
++ and and {
++ /panel.extra.fkey 1 def
++ menu.entry false MenuSelect
++ menu.visible.entries menu.entry menu.shift sub sub 1 eq {
++ /menu.shift menu.shift 1 add def main.drawmenu
++ } if
++ /menu.entry menu.entry 1 add def
++ menu.entry true MenuSelect
++ } if
++} def
++
++
+
+<a id="themetrunkmageiagfxbootthemetrunksrcserialinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/src/serial.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/src/serial.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/src/serial.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,517 @@
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Some vars.
++
++/act.nop 0 def
++/act.boot 1 def
++
++/.sm.setup 0 def
++/.sm.ok 1 def
++
++/serial.action act.nop def
++
++/serial.setup /serial.setup.start def
++
++/serial.menu.index 0 def
++
++/serial.line.status 0 def
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% serial line input event handling
++%
++% ( key -- input_buffer menu_entry action )
++%
++% key
++% bit 0-7 ascii
++% bit 24-32 scan code (0xf0 + serial line number)
++%
++% action
++% 0: ok, stay in input loop
++% 1: switch to text mode
++% &gt;=2: start linux
++%
++/serial.input {
++ dup 24 shr 0x0f and 1 exch shl serial.line.status or /serial.line.status exch def
++
++ 0xffffff and
++
++ % ^? -&gt; ^H
++ dup 0x7f eq { pop 8 } if
++
++ serial.setup exec
++
++ serial.edit
++ dup 0 eq { pop &quot;&quot; -1 0 return } if
++
++ 1 eq { serial.menu.ok } { serial.menu.prev } ifelse
++
++ window.action actCloseInfo eq {
++ /window.action actNothing def
++ window.done
++ } if
++
++ serial.action act.boot eq {
++ % /serial.setup serial.menu.layout serial.menu.index get .sm.setup get def
++
++ serial.cmdline serial.menu_idx 2
++ return
++ } if
++
++ &quot;&quot; -1 0
++} def
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Write string to serial line.
++%
++% ( str1 -- )
++%
++/serial.show {
++ {
++ dup 0x0a eq { 0x0d serial.putc } if
++ serial.putc
++ } forall
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% ( str1 -- )
++%
++/serial.edit.init {
++ serial.edit.buf exch strcpy
++ &quot;&gt; &quot; serial.show serial.show
++} def
++
++/serial.edit.buf 1024 string def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% ( int1 -- int2 )
++%
++/serial.edit {
++ dup 0x0d eq {
++ &quot;\n\n&quot; serial.show
++ pop 1 return
++ } if
++
++ dup 0x1b eq {
++ &quot;\n\n&quot; serial.show
++ pop 2 return
++ } if
++
++ dup 0x08 eq {
++ serial.edit.buf length 0 gt {
++ serial.edit.buf dup length 1 sub 0 put
++ &quot;\x08 \x08&quot; serial.show
++ } if
++ pop 0 return
++ } if
++
++ dup 0x15 eq {
++ serial.edit.buf length 0 gt {
++ serial.edit.buf length {
++ &quot;\x08 \x08&quot; serial.show
++ } repeat
++ serial.edit.buf 0 0 put
++ } if
++ pop 0 return
++ } if
++
++ dup 0x20 ge over 0x7e le and {
++ serial.edit.buf cvp length serial.edit.buf length 1 add gt {
++ serial.edit.buf dup length add dup 1 0 put 0 2 index put
++
++ serial.putc 0 return
++ } if
++ } if
++
++ pop 0
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% ( -- )
++%
++/serial.smenu.init {
++ &quot;\n=== &quot; serial.show
++ smenu .xm_title get exec serial.show
++ &quot; ===\n\n&quot; serial.show
++ smenu .xm_text get exec serial.show
++ &quot;\n\n&quot; serial.show
++
++ /serial.smenu.cnt 0 def
++ /serial.smenu.tmp 256 string def
++
++ smenu .xm_list get {
++ exec
++ serial.smenu.cnt smenu .xm_current get eq { &quot; * &quot; } { &quot; &quot; } ifelse
++ /serial.smenu.cnt inc
++ serial.smenu.cnt
++ smenu .xm_list get length 10 ge { &quot;%2d)%s%s\n&quot; } { &quot;%d)%s%s\n&quot; } ifelse
++ serial.smenu.tmp sprintf
++ serial.smenu.tmp serial.show
++ } forall
++
++ /serial.smenu.tmp xfree
++
++ &quot;\n&quot; serial.show
++
++ &quot;&quot; serial.edit.init
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Draw main menu.
++%
++% ( int1 -- int2 )
++%
++% int1: key
++% int2: key
++%
++/serial.setup.start {
++ /serial.menu.layout [
++ [ /serial.main.setup /serial.main.ok ]
++ xmenu.bits .xm_list get length 1 gt { [ /serial.bits.setup /serial.bits.ok ] } if
++ xmenu.kernelopts .undef ne { [ /serial.kernel.setup /serial.kernel.ok ] } if
++ [ /serial.options.setup /serial.options.ok ]
++ [ /serial.infobox.setup /serial.infobox.ok ]
++ ] def
++
++ % go for text mode (or use 0?)
++ xmenu.video .xm_current 1 put
++
++ &quot;\nopenSUSE 11.1 installation\n\n&quot; serial.show
++
++ /serial.setup /serial.nop def
++
++ serial.menu.again
++
++ pop 0
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Setup main menu.
++%
++% ( -- )
++%
++/serial.main.setup {
++ smenu.main .undef eq {
++ /smenu.main .xm_size array def
++
++ smenu.main .xm_current menu.entry put
++ smenu.main .xm_title &quot;Main Menu&quot; put
++ smenu.main .xm_text &quot;Select a boot entry.&quot; put
++ smenu.main .xm_list [ menu.texts { menuitemmap } forall ] put
++ } if
++
++ /smenu smenu.main def
++
++ serial.smenu.init
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Leave main menu.
++%
++% ( -- )
++%
++/serial.main.ok {
++ serial.edit.buf to_number
++
++ menu.entry false MenuSelect
++
++ serial.smenu.select {
++ /menu.entry smenu .xm_current get def
++ serial.menu.next
++ } {
++ serial.menu.again
++ } ifelse
++
++ menu.entry true MenuSelect
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Setup kernel menu.
++%
++% ( -- )
++%
++/serial.kernel.setup {
++ xmenu.kernelopts .xm_text &quot;Select a predefined set of kernel options.&quot; put
++
++ /smenu xmenu.kernelopts def
++
++ serial.smenu.init
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Leave kernel menu.
++%
++% ( -- )
++%
++/serial.kernel.ok {
++ serial.edit.buf to_number
++ serial.smenu.select { serial.menu.next } { serial.menu.again } ifelse
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Setup arch menu.
++%
++% ( -- )
++%
++/serial.bits.setup {
++ xmenu.bits .xm_text &quot;32 or 64 bit?&quot; put
++
++ /smenu xmenu.bits def
++
++ serial.smenu.init
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Leave arch menu.
++%
++% ( -- )
++%
++/serial.bits.ok {
++ serial.edit.buf to_number
++ serial.smenu.select { serial.menu.next } { serial.menu.again } ifelse
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Setup lang menu.
++%
++% ( -- )
++%
++/serial.lang.setup {
++ /smenu xmenu.lang def
++
++ serial.smenu.init
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Leave lang menu.
++%
++% ( -- )
++%
++/serial.lang.ok {
++ serial.edit.buf to_number
++ serial.smenu.select { serial.menu.next } { serial.menu.again } ifelse
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Setup options menu.
++%
++% ( -- )
++%
++/serial.options.setup {
++ &quot;=== Boot Options ===\n&quot; serial.show
++
++&quot;
++Edit boot options.
++
++- lang=&lt;locale&gt; selects the default language
++- install=&lt;url&gt; sets the install repository
++- dud=&lt;url&gt; adds a driverupdate (option can be given more than once)
++
++&quot;
++ serial.show
++
++ boot.ed.list buildcmdline /serial.menu_idx exch def /serial.cmdline exch def
++
++ serial.console.option dup .undef ne {
++ &quot; %s&quot; serial.cmdline dup length add sprintf
++ } { pop } ifelse
++
++ serial.cmdline serial.edit.init
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Options -&gt; Boot.
++%
++% ( -- )
++%
++/serial.options.ok {
++ serial.cmdline serial.edit.buf strcpy pop
++
++ % point to infobox
++ /serial.menu.index inc
++
++ /serial.action act.boot def
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Setup infobox.
++%
++% ( -- )
++%
++/serial.infobox.setup {
++ /smenu serial.infobox def
++
++ serial.smenu.init
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Leave infobox.
++%
++% ( -- )
++%
++/serial.infobox.ok {
++ serial.edit.buf to_number
++ serial.smenu.select {
++ serial.menu.prev
++ /window.action actCloseInfo def
++ } {
++ serial.menu.again
++ } ifelse
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Do nothing.
++%
++% ( -- )
++%
++/serial.nop {
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Convert String to number.
++%
++% ( str1 -- int1 )
++%
++% Returns -1 if str1 is not a number.
++%
++/to_number {
++ dup cvn
++ dup 0 ne { exch pop return } if
++ pop
++ dup &quot;&quot; eq exch &quot;0&quot; eq or { 0 } { -1 } ifelse
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Ensure serial.menu.index has a valid value.
++%
++% ( -- )
++%
++/serial.menu.index.normalize {
++ serial.menu.index serial.menu.layout length gt { /serial.menu.index serial.menu.layout length def } if
++ serial.menu.index 0 lt { /serial.menu.index 0 def } if
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Reinit current menu.
++%
++% ( -- )
++%
++/serial.menu.again {
++ serial.menu.index.normalize
++ serial.menu.layout serial.menu.index get .sm.setup get exec
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Run 'ok' action for current menu.
++%
++% ( -- )
++%
++/serial.menu.ok {
++ serial.menu.index.normalize
++ serial.menu.layout serial.menu.index get .sm.ok get exec
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Go to next menu.
++%
++% ( -- )
++%
++/serial.menu.next {
++ /serial.menu.index inc
++ serial.menu.again
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Go to previous menu.
++%
++% ( -- )
++%
++/serial.menu.prev {
++ /serial.menu.index dec
++ serial.menu.again
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Select menu item (update smenu-&gt;.xm_current).
++%
++% ( int1 -- bool1 )
++%
++/serial.smenu.select {
++ smenu .xm_list get length over lt over 0 lt or {
++ pop
++
++ false
++ } {
++ dup 0 eq { pop smenu .xm_current get 1 add } if
++
++ 1 sub smenu .xm_current rot put
++
++ true
++ } ifelse
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Build 'console' option for kernel.
++%
++% ( -- str1 )
++%
++/serial.console.option {
++
++ /serial.tmp.bm 0 def
++ {
++ serial.line.status 1 serial.tmp.bm shl and { exit } if
++ /serial.tmp.bm inc
++ serial.tmp.bm 8 ge { /serial.tmp.bm .undef def exit } if
++ } loop
++
++ serial.tmp.bm .undef eq { .undef return } if
++ serial.lines length serial.tmp.bm le { .undef return } if
++
++ serial.lines serial.tmp.bm get 2 aget dup .undef ne {
++ serial.tmp.bm serial.getbaud exch
++ &quot;console=%s,%d&quot; serial.console.buf sprintf
++ serial.console.buf
++ } if
++
++} def
++
++/serial.console.buf 64 string def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Setup serial lines.
++%
++0 1 serial.lines length 1 sub {
++ serial.lines over get dup length 2 ge {
++ dup 0 get cvn exch 1 get cvn serial.setconfig
++ } {
++ pop pop
++ } ifelse
++} for
++
++serial.init
++
+
+<a id="themetrunkmageiagfxbootthemetrunksrcspeechinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/src/speech.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/src/speech.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/src/speech.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,121 @@
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% Speech related function.
++%
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++
++
++/.talk_text 0 def
++/.talk_sound 1 def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% ( text -- )
++%
++/speak {
++ % skip leading TAB
++ dup 0 get '\x09' eq { 1 add } if
++
++ /last.spoken xfree
++ /last.spoken over strdup def
++
++ dup _speak { pop return } if
++ dup retranslate dup rot ne { _speak } if pop
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Say text.
++%
++% ( str -- bool )
++%
++% str: text
++% bool: sound sample found
++%
++/_speak {
++ talk_array {
++ dup .talk_text get 2 index eq {
++ .talk_sound get wav.playlater
++ pop true return
++ } {
++ pop
++ } ifelse
++ } forall
++ pop
++ false
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Load sound samples.
++%
++% ( -- )
++%
++/load_talk {
++ /talk_file &quot;en.tlk&quot; findfile def
++
++ talk_file .undef eq { return } if
++
++ talk_file getdword 0x692741e8 ne { return } if
++
++ locale.texts.en .undef eq {
++ /locale.texts.en &quot;en_US&quot; &quot;%s.tr&quot; loadtexts def
++ } if
++
++ talk_array .undef ne {
++ talk_array { free } forall
++ } if
++
++ /talk_array xfree
++
++ /talk_array [
++ 0 1 talk_file 4 add getdword 1 sub {
++ [
++ exch 8 mul 8 add talk_file add
++ dup getdword talk_file add cvs
++ exch 4 add getdword talk_file add
++ ]
++ } for
++ ] def
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Load sound samples.
++%
++% ( -- )
++%
++/load_talk_dialog {
++ window.dialog
++ dup .title &quot;Just a second...&quot; put
++ dup .text &quot;Please wait while speech files are being loaded...&quot; put
++ dup window.init window.show
++
++ load_talk
++ config.volume sound.setvolume
++
++ window.done
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Get english text from translated text.
++%
++% ( str1 -- str2 )
++%
++% str1: text
++% str2: text in en_US
++%
++/retranslate {
++ 0 locale.texts {
++ 2 index eq {
++ locale.texts.en exch aget dup .undef eq { pop dup } if exch pop
++ return
++ } if
++ 1 add
++ } forall
++ pop
++} def
++
++
+
+<a id="themetrunkmageiagfxbootthemetrunksrcsysteminc">Added: theme/trunk/mageia-gfxboot-theme/trunk/src/system.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/src/system.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/src/system.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,1406 @@
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% Some basic definitions.
++%
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++
++
++% some key codes
++/keyEsc 0x0000001b def
++/keyEnter 0x0000000d def
++/keyTab 0x00000009 def
++/keyShiftTab 0x0f000000 def
++/keyF1 0x3b000000 def
++/keyF2 0x3c000000 def
++/keyF3 0x3d000000 def
++/keyF4 0x3e000000 def
++/keyF5 0x3f000000 def
++/keyF6 0x40000000 def
++/keyF7 0x41000000 def
++/keyF8 0x42000000 def
++/keyF9 0x43000000 def
++/keyF10 0x44000000 def
++/keyF11 0x85000000 def
++/keyF12 0x86000000 def
++/keyHome 0x47000000 def
++/keyUp 0x48000000 def
++/keyPgUp 0x49000000 def
++/keyLeft 0x4b000000 def
++/keyRight 0x4d000000 def
++/keyEnd 0x4f000000 def
++/keyDown 0x50000000 def
++/keyPgDown 0x51000000 def
++/keyIns 0x52000000 def
++/keyDel 0x53000000 def
++/keyShiftF1 0x54000000 def
++/keyShiftF2 0x55000000 def
++/keyShiftF3 0x56000000 def
++/keyShiftF4 0x57000000 def
++/keyShiftF5 0x58000000 def
++/keyShiftF6 0x59000000 def
++/keyShiftF7 0x5a000000 def
++/keyShiftF8 0x5b000000 def
++/keyShiftF9 0x5c000000 def
++/keyShiftF10 0x5d000000 def
++/keyShiftF11 0x87000000 def
++/keyShiftF12 0x88000000 def
++/keyCtrlF1 0x5e000000 def
++/keyCtrlF2 0x5f000000 def
++/keyCtrlF3 0x60000000 def
++/keyCtrlF4 0x61000000 def
++/keyCtrlF5 0x62000000 def
++/keyCtrlF6 0x63000000 def
++/keyCtrlF7 0x64000000 def
++/keyCtrlF8 0x65000000 def
++/keyCtrlF9 0x66000000 def
++/keyCtrlF10 0x67000000 def
++/keyAltF1 0x68000000 def
++/keyAltF2 0x69000000 def
++/keyAltF3 0x6a000000 def
++/keyAltF4 0x6b000000 def
++/keyAltF5 0x6c000000 def
++/keyAltF6 0x6d000000 def
++/keyAltF7 0x6e000000 def
++/keyAltF8 0x6f000000 def
++/keyAltF9 0x70000000 def
++/keyAltF10 0x71000000 def
++/keyCtrlLeft 0x73000000 def
++/keyCtrlRight 0x74000000 def
++/keyCtrlEnd 0x75000000 def
++/keyCtrlDown 0x76000000 def
++/keyCtrlHome 0x76000000 def
++/keyCtrlUp 0x84000000 def
++/keyStatus 0xff000000 def
++
++/statusAlt 0x0208 def
++/statusAltL 0x0200 def
++/statusAltR 0x0008 def
++/statusCtrl 0x0104 def
++/statusShift 0x0003 def
++
++/CapsLock { 0x417 cvp getbyte 0x40 and 0 ne } def
++
++/black 0 def
++/white 0xffffff def
++
++% input object fields
++/.inp_x 0 def % x pos
++/.inp_y 1 def % y pos
++/.inp_back 2 def % background pixmap
++/.inp_buf 3 def % input buffer
++/.inp_buf_len 4 def % input buffer length
++/.inp_int 5 def % internal state array, see below
++% optional fields
++/.inp_hidden 6 def % hidden buffer
++/.inp_label 7 def % input field label
++/.inp_visible 8 def % field is visible
++/.inp_show 9 def % field should be visible
++
++/.inp_int_cur 0 def % current edit char offset
++/.inp_int_cursor 1 def % cursor pos (pixel)
++/.inp_int_shift 2 def % input line shifted (pixel)
++/.inp_int_flags 3 def % bit 0: cursor visible
++/.inp_int_saved_cursor 4 def % saved cursor background
++
++% boot loader
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% bootloader - boot loader type
++%
++% group: system
++%
++% ( -- int1 )
++%
++% int1: boot loader type (0: lilo, 1:syslinux/isolinux, 2: grub)
++%
++/bootloader sysconfig getbyte def
++
++/lilo bootloader 0 eq def
++/syslinux bootloader 1 eq def
++/grub bootloader 2 eq def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% boot_failsafe - failsafe options the user selected (bitmask)
++%
++% group: system
++%
++% ( -- int1 )
++%
++% int1: option bitmask
++% bit 0: SHIFT pressed
++% bit 1: no graphics
++% bit 2: no monitor detection
++%
++/boot_failsafe sysconfig 3 add getbyte def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% bootdrive - drive the BIOS booted from
++%
++% group: system
++%
++% ( -- int1 )
++%
++% int1: BIOS drive id
++%
++/bootdrive sysconfig 5 add getbyte def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% mediatype - type of media we booted from
++%
++% group: system
++%
++% ( -- int1 )
++%
++% int1: media type (0 disk, 1 floppy, 2 cdrom)
++%
++/mediatype sysconfig 2 add getbyte def
++
++/m_disk 0 def
++/m_floppy 1 def
++/m_cdrom 2 def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% biosmem - BIOS reported memory size
++%
++% group: mem
++%
++% ( -- int1 )
++%
++% int1: total memory size according to BIOS
++%
++/biosmem sysconfig 20 add getdword def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% sectorsize - sector size
++%
++% group: mem system
++%
++% ( -- int1 )
++%
++% int1: sector size in bytes
++%
++/sectorsize
++ 1
++ sysconfig 1 add getbyte
++ 20 min % max. 1 MB
++ dup 0 eq { pop 9 } if
++ shl
++def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% getinfo - type of info box
++%
++% group: system
++%
++% ( int1 -- int2 )
++%
++% int1: type of info box we have to show
++% int2: some data
++%
++% Note: really weird, should be replaced by something more obvious.
++%
++/getinfo {
++ 2 shl
++ sysconfig 12 add exch add getdword
++} def
++
++
++% bool values
++/true 0 0 eq def
++/false 0 0 ne def
++
++% type values
++/t_none 0 def
++/t_int 1 def
++/t_unsigned 2 def
++/t_bool 3 def
++/t_string 4 def
++/t_code 5 def
++/t_ret 6 def
++/t_prim 7 def
++/t_sec 8 def
++/t_dict_idx 9 def
++/t_array 10 def
++/t_end 11 def
++/t_ptr 12 def
++
++/.value { t_int settype } def
++/.undef 0 t_none settype def
++/.end 0 t_end settype def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Print string (for debugging).
++%
++% ( string ) ==&gt; ( )
++%
++/string.print {
++ dup
++ currentpoint currentpoint 5 -1 roll strsize image moveto
++ show
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Print number (for debugging).
++%
++% ( number ) ==&gt; ( )
++%
++/number.print {
++ 32 string
++ exch over
++ &quot;%08x&quot; exch sprintf
++ dup string.print
++ free
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Print obj (for debugging).
++%
++% ( obj ) ==&gt; ( )
++%
++/obj.print {
++ 64 string
++ exch dup
++ .value exch gettype
++ &quot;%x:%08x&quot; 3 index sprintf
++ dup string.print
++ free
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Print (for debugging).
++%
++% ( obj ) ==&gt; ( )
++%
++/print {
++ dup gettype t_int eq { number.print return } if
++ dup gettype t_string eq { string.print return } if
++ obj.print
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Convert object to pointer.
++%
++% ( obj ) ==&gt; ( ptr )
++%
++/cvp { t_ptr settype } def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Convert object to string.
++%
++% ( obj ) ==&gt; ( string )
++%
++/cvs { t_string settype } def
++
++
++% base num char
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Convert object to number.
++%
++% ( obj ) ==&gt; ( int )
++%
++/cvn {
++ dup gettype t_string eq {
++ 1 % sign
++ exch dup 0 get '-' eq {
++ exch pop 1 add -1 exch
++ } if
++ 10 % initial base
++ 0 % value
++ rot
++ {
++ dup 'a' ge { 0x20 sub } if
++ dup 'X' eq { pop pop pop 16 0 '0' } if
++ '0' sub
++ dup 9 gt { 7 sub } if
++ dup 0 lt over 4 index ge or { pop exit } if
++ exch 2 index mul add
++ } forall
++ exch pop mul
++ } {
++ t_int settype
++ } ifelse
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Arguments like snprintf.
++%
++% ( obj_1 ... obj_n string_1 string_2 ) ==&gt; ( )
++%
++/sprintf {
++ dup cvp length exch snprintf
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Allocate new string.
++%
++% ( size ) ==&gt; ( string )
++/string {
++ 1 add malloc cvs
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Increment variable.
++%
++% ( dict_ref ) ==&gt; ( )
++%
++/inc {
++ dup exec 1 add def
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Decrement variable.
++%
++% ( dict_ref ) ==&gt; ( )
++%
++/dec {
++ dup exec 1 sub def
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Copy src to dst.
++%
++% Watch overlapping src &amp; dst!
++%
++% ( dst src ) ==&gt; ( dst )
++%
++/strcpy {
++ &quot;%s&quot; 2 index sprintf
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Duplicate string.
++%
++% ( string ) ==&gt; ( string )
++%
++/strdup {
++ dup length string exch strcpy
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Concatenate strings.
++%
++% ( string1 string2 ) ==&gt; ( string1 )
++%
++/strcat {
++ over dup length add exch strcpy pop
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Test for AltGr.
++%
++% ( ) ==&gt; ( bool )
++%
++/is_altGr {
++ keystat statusAltR and 0 ne keystat statusAltL and 0 eq and
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Keyboard mapping.
++%
++% ( key ) ==&gt; ( key )
++%
++/mapkey {
++ dup 24 shr 0xff and /key.code exch def
++ is_altGr {
++ % bios is too smart...
++ key.code 0x78 ge key.code 0x83 le and { /key.code key.code 0x76 sub def } if
++ } if
++ 0 1 config.keymap length 1 sub {
++ config.keymap exch get
++ dup 0 get key.code eq {
++ 1
++ keystat statusShift and { pop 2 } if
++ is_altGr { pop 3 } if
++ get
++ exch pop
++ } {
++ pop
++ } ifelse
++ } for
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Set password mode font property.
++%
++% ( font ) ==&gt; ( font )
++%
++/pwmode {
++ dup gettype t_ptr eq {
++ .value 0x80000000 or t_ptr settype
++ } if
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Test for password mode.
++%
++% ( font -- true|false )
++%
++/is.pwmode {
++ dup gettype t_ptr eq {
++ .value 0x80000000 and 0 ne
++ } {
++ false
++ } ifelse
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Show one-line string right aligned.
++%
++% ( string ) ==&gt; ( )
++%
++/showright1 {
++ dup strsize pop neg 0 rmoveto currentpoint rot show currentpoint exch pop exch pop moveto
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Show string right aligned.
++%
++% ( string ) ==&gt; ( )
++%
++/showright {
++ '\n' split
++ currentpoint pop
++ false 2 index
++
++ % array x not_first? array
++ {
++ % array x not_first? elem
++
++ over {
++ &quot;\n&quot; show
++ 2 index currentpoint exch pop moveto
++ } if
++
++ dup showright1 free
++
++ pop true
++ } forall
++ pop pop
++ free
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Show string right/left aligned.
++%
++% ( string ) ==&gt; ( )
++%
++/show.rtl {
++ config.rtl { showright } { show } ifelse
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Show string centered.
++%
++% ( string ) ==&gt; ( )
++%
++/showcenter {
++ dup strsize pop 2 div neg 0 rmoveto show
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Generate pseudo random number.
++% Good enough for boot loader splash screen.
++%
++% ( ) ==&gt; ( int )
++%
++/rand {
++ rand.start 59 mul 97 add 0x7fffffff and
++ /rand.start over def
++} def
++
++% start value
++/rand.start time def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% ( date ) ==&gt; ( weekday )
++%
++% (Monday: 0)
++%
++% d + [26*(m+1)/10] + j + [j/4] + [c/4] - 2 c - 2
++%
++/weekday {
++ dup day exch
++ dup year exch
++ month dup 2 le { 12 add exch 1 sub exch } if
++ 1 add 26 mul 10 div
++ exch dup
++ 100 mod dup 4 div add
++ exch 100 div dup 4 div exch 2 mul sub
++ add add add
++ 7 mod 12 add
++ 7 mod
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% ( date ) ==&gt; ( day )
++%
++/day {
++ 0xff and
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% ( date ) ==&gt; ( month )
++%
++/month {
++ 8 shr 0xff and
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% ( date ) ==&gt; ( year )
++%
++/year {
++ 16 shr
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% Read CMOS RAM.
++%
++% ( index ) ==&gt; ( value )
++%
++/nvram {
++ 0x70 exch outbyte
++ 0x71 inbyte
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% readsector - read sector
++%
++% group: system
++%
++% ( int1 -- ptr1 )
++%
++% int1: sector number
++% ptr1: buffer with sector data or .undef. Use @free to free the buffer.
++%
++% Note: does not return on error. Returns .undef if function is not implemented.
++%
++/readsector {
++ _readsector
++ dup .undef eq { return } if
++
++ sectorsize malloc dup rot over length memcpy
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% gfxconfig.data - return array with gfxboot config entries
++%
++% Reads and parses &quot;gfxboot.cfg&quot; when called first time.
++%
++% group: system
++%
++% ( -- array1 )
++%
++% array1: config values
++%
++% array1 may be empty but is never .undef.
++% Elements of array1 (if any) are arrays of three strings: [ section key value ].
++%
++/gfxconfig.data {
++
++ % read file and copy to temp string (we need the final 0)
++ &quot;gfxboot.cfg&quot; findfile dup .undef ne {
++ dup dup length dup string dup cvp 4 2 roll memcpy exch free
++ } {
++ pop &quot;&quot;
++ } ifelse
++
++ % free temp string and create temp array
++ /gfxconfig.data over '\n' split def free
++
++ % modifies gfxconfig.data
++ /gfxconfig.data [
++
++ &quot;base&quot; % default section
++
++ gfxconfig.data {
++
++ skipspaces
++
++ dup 0 get dup 0 eq over ';' eq or exch '#' eq or {
++ % empty or comment
++ pop
++ } {
++ dup 0 get '[' eq {
++ % [section]
++ 1 add
++ dup &quot;]&quot; strstr dup {
++ % put new section on stack
++ 1 sub over exch 0 put
++ exch free
++ } {
++ % wrong [section] entry
++ pop pop
++ } ifelse
++ } {
++ % key=value?
++ dup &quot;=&quot; strstr dup {
++ over over 1 sub over exch 0 put add
++ [ 3 index 4 2 roll ] exch
++ } {
++ % no &quot;=&quot;
++ pop pop
++ } ifelse
++ } ifelse
++ } ifelse
++ } forall
++
++ free
++ ]
++
++ % free temp array
++ gfxconfig.data free
++
++ def
++
++ gfxconfig.data
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% gfxconfig.layout - return array with config file sections
++%
++% group: system
++%
++% ( -- array1 )
++%
++% array1: section names
++%
++% array1 may be empty but is never .undef.
++%
++/gfxconfig.layout {
++
++ /gfxconfig.layout [ &quot;base&quot; ] def
++
++ &quot;layout&quot; gfxconfig.array_str
++ dup .undef ne {
++ gfxconfig.layout free
++ [ exch { } forall &quot;base&quot; ] /gfxconfig.layout exch def
++ } {
++ pop
++ } ifelse
++
++ gfxconfig.layout
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% gfxconfig.getentry_s - return gfxboot config file entry
++%
++% group: system
++%
++% ( str1 str2 -- str3 )
++%
++% str1: section
++% str2: config entry key
++% str3: config value (or .undef)
++%
++/gfxconfig.getentry_s {
++ .undef
++ gfxconfig.data {
++ 3 index over 0 get eq 3 index 2 index 1 get eq and {
++ 2 get exch pop exit
++ } {
++ pop
++ } ifelse
++ } forall
++
++ exch pop exch pop
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% gfxconfig.getentry - return raw gfxboot config file entry
++%
++% group: system
++%
++% ( str1 -- str2 )
++%
++% str1: config entry key
++% str2: config value (or .undef)
++%
++/gfxconfig.getentry {
++ .undef
++
++ gfxconfig.layout {
++ 2 index gfxconfig.getentry_s
++ dup .undef eq {
++ pop
++ } {
++ exch pop
++ exit
++ } ifelse
++ } forall
++
++ exch pop
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% gfxconfig.str - return gfxboot config file entry: string
++%
++% group: system
++%
++% ( str1 -- str2 )
++%
++% str1: config entry key
++% str2: config value (or .undef)
++%
++/gfxconfig.str {
++ gfxconfig.getentry dup .undef ne { strdup dup dropspaces } if
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% gfxconfig.int - return gfxboot config file entry: integer
++%
++% group: system
++%
++% ( str1 -- int1 )
++%
++% str1: config entry key
++% int1: config value (or .undef)
++%
++/gfxconfig.int {
++ gfxconfig.getentry dup .undef ne { cvn } if
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% gfxconfig.int2 - return gfxboot config file entry: two integers
++%
++% group: system
++%
++% ( str1 -- int1 int2 )
++%
++% str1: config entry key
++% int1: first config value (or .undef)
++% int2: second config value (or .undef)
++%
++/gfxconfig.int2 {
++ gfxconfig.array_int dup .undef eq { pop [ ] } if
++ dup 0 aget over 1 aget rot free
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% gfxconfig.array_str - return gfxboot config file entry: array of strings
++%
++% group: system
++%
++% ( str1 -- array1 )
++%
++% str1: config entry key
++% array1: config value (or .undef)
++%
++/gfxconfig.array_str {
++ gfxconfig.getentry dup .undef ne { ',' split } if
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% gfxconfig.array_int - return gfxboot config file entry: array of integers
++%
++% group: system
++%
++% ( str1 -- array1 )
++%
++% str1: config entry key
++% array1: config value (or .undef)
++%
++/gfxconfig.array_int {
++ gfxconfig.array_str dup .undef ne {
++ [ exch
++ { dup .undef ne { cvn } if } forall
++ ]
++ } if
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% gfxconfig.set.str - initialize variable with gfxboot config file entry
++%
++% group: system
++%
++% ( dict1 str1 str2 -- )
++%
++% dict1: variable to modify
++% str1: config entry key
++% str2: default value
++%
++/gfxconfig.set.str {
++ exch gfxconfig.str
++ dup .undef ne { exch } if pop def
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% gfxconfig.set.int - initialize variable with gfxboot config file entry
++%
++% group: system
++%
++% ( dict1 str1 int1 -- )
++%
++% dict1: variable to modify
++% str1: config entry key
++% int1: default value
++%
++/gfxconfig.set.int {
++ exch gfxconfig.int
++ dup .undef ne { exch } if pop def
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% gfxconfig.set.int2 - initialize two variables with gfxboot config file entry
++%
++% group: system
++%
++% ( dict1 dict2 str1 int1 int2 -- )
++%
++% dict1: first variable to modify
++% dict2: second variable to modify
++% str1: config entry key
++% int1: first default value
++% int2: second default value
++%
++/gfxconfig.set.int2 {
++ rot gfxconfig.int2
++ % dict1 dict2 def1 def2 val1 val2
++ exch 4 -1 roll exch
++ % dict1 dict2 def2 val2 def1 val1
++ dup .undef ne { exch } if pop
++ 5 -1 roll exch def
++ % dict2 def2 val2
++ dup .undef ne { exch } if pop def
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% gfxconfig.set.bool - initialize variable with gfxboot config file entry
++%
++% group: system
++%
++% ( dict1 str1 bool1 -- )
++%
++% dict1: variable to modify
++% str1: config entry key
++% bool1: default value
++%
++/gfxconfig.set.bool {
++ exch gfxconfig.int
++ dup .undef ne { 0 ne exch } if pop def
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% gfxconfig.set.array_str - initialize variable with gfxboot config file entry
++%
++% group: system
++%
++% ( dict1 str1 array1 -- )
++%
++% dict1: variable to modify
++% str1: config entry key
++% array1: default value
++%
++/gfxconfig.set.array_str {
++ exch gfxconfig.array_str
++ dup .undef ne { exch } if pop def
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% gfxconfig.set.array_int - initialize variable with gfxboot config file entry
++%
++% group: system
++%
++% ( dict1 str1 array1 -- )
++%
++% dict1: variable to modify
++% str1: config entry key
++% array1: default value
++%
++/gfxconfig.set.array_int {
++ exch gfxconfig.array_int
++ dup .undef ne { exch } if pop def
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% split - split string
++%
++% group:
++%
++% ( str1 int1 -- array1 )
++%
++% str1: string
++% int1: char
++% array1: array of strings
++%
++/split {
++
++ % split does not work if str1 is in a special memory region (where
++ % 'cvp length' does not work). So we dup it first.
++
++ exch strdup dup rot
++
++ currenteotchar exch seteotchar exch
++
++ [ exch
++
++ {
++ dup strdup exch
++ dup length add
++
++ dup cvp length 1 le { pop exit } if
++
++ 1 add
++
++ } loop
++
++ ]
++
++ exch seteotchar
++
++ exch free
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% join - join array of strings
++%
++% group:
++%
++% ( array1 str1 -- str2 )
++%
++% array1: array of strings
++% str1: separator
++% str2: complete string
++%
++/join {
++ over length 0 eq { pop pop 0 string return } if
++
++ over length 1 sub over length mul
++ 2 index { length add } forall
++ string
++
++ % note: last element is not followed by separator because it exceeds
++ % the destination string size
++ rot {
++ strcat over strcat
++ } forall
++
++ exch pop
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Skip leading non-spaces.
++%
++% ( string ) ==&gt; ( string )
++%
++/skipnonspaces {
++ { dup 0 get dup 0 ne exch ' ' ne and { 1 add } { exit } ifelse } loop
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Skip leading spaces.
++%
++% ( string ) ==&gt; ( string )
++%
++/skipspaces {
++ { dup 0 get ' ' eq { 1 add } { exit } ifelse } loop
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Drop spaces at string end.
++% Modifies string!
++%
++% ( string ) ==&gt; ( )
++%
++/dropspaces {
++ dup length
++ dup 0 eq {
++ pop pop
++ } {
++ 1 sub
++ -1 0 {
++ over over get ' ' eq { over exch 0 put } { pop exit } ifelse
++ } for
++ pop
++ } ifelse
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Test if string[ofs-1]/string[ofs] is a word boundary.
++%
++% ( string ofs ) ==&gt; ( true|false )
++%
++% boundary is either space/non-space or non-space/(space|'=')
++%
++/iswordboundary {
++ dup 0 eq { pop pop true return } if
++
++ add dup 1 sub 0 get exch 0 get
++
++ over ' ' eq over ' ' gt and { pop pop true return } if
++ over ' ' gt over dup ' ' eq exch dup '=' eq exch 0 eq or or and { pop pop true return } if
++
++ pop pop false
++} def
++
++
++%% findmode - find video mode number
++%
++% group: gfx.screen
++%
++% ( int1 int2 int3 -- int4 )
++%
++% int1, int2: width, height
++% int3: color bits
++% int4: mode number (or .undef)
++%
++% example
++% 1024 768 16 findmode setmode % 1024x768, 16-bit color mode
++%
++/findmode {
++ 0 1 videomodes {
++ videomodeinfo dup .undef eq {
++ pop pop pop pop
++ } {
++ % compare width, height, colors
++ 6 index 4 index eq 6 index 4 index eq and 5 index 3 index eq and {
++ 7 1 roll 6 { pop } repeat 0xbfff and return
++ } {
++ pop pop pop pop
++ } ifelse
++ } ifelse
++ } for
++
++ pop pop pop .undef
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% Replace substring. Returns newly allocated string.
++%
++% ( str key value ) ==&gt; ( new_str )
++%
++% Replaces first occurence of 'key' in str with 'value'.
++%
++/strreplace {
++ 2 index 2 index strstr dup 0 ne {
++ 1 sub
++ over length 3 index length sub 4 index length add string
++ dup cvp 5 index cvp 3 index memcpy
++ dup 6 1 roll over add exch 5 -1 roll exch add
++ 4 -1 roll length add 3 1 roll &quot;%s%s&quot; exch sprintf
++ } {
++ pop pop pop strdup
++ } ifelse
++
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Search for option in cmdline.
++% Returns .undef if not found.
++%
++% ( cmdline option_name ) ==&gt; ( option_start )
++%
++/bootopt.find {
++ /_bo.opt exch def
++ /_bo.cmdline exch def
++ /_bo.= _bo.opt dup length 1 sub get '=' eq def
++
++ {
++ _bo.cmdline _bo.opt strstr
++ dup {
++ dup 1 eq {
++ true
++ } {
++ dup 2 sub _bo.cmdline exch get ' ' eq
++ } ifelse
++
++ {
++ _bo.cmdline over _bo.opt length add 1 sub get
++ dup '=' eq
++ over ' ' eq or
++ exch 0 eq or
++ _bo.= or
++ } {
++ false
++ } ifelse
++
++ _bo.cmdline rot add exch
++
++ {
++ 1 sub exit
++ } {
++ /_bo.cmdline exch def
++ } ifelse
++ } {
++ pop
++ .undef exit
++ } ifelse
++ } loop
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Search for second occurence of option in cmdline.
++% Returns .undef if not found.
++%
++% ( cmdline option_name ) ==&gt; ( option_start )
++%
++/bootopt.find2 {
++ over over bootopt.find dup .undef eq {
++ pop pop pop .undef
++ } {
++ 1 add rot pop exch bootopt.find
++ } ifelse
++} def
++
++
++% Remove option from cmdline. Returns removed option or .undef.
++%
++% cmdline is modified, option_entry is allocated dynamicyll and must be
++% freed later.
++%
++% ( cmdline option_name -- option_entry )
++%
++/bootopt.remove {
++ bootopt.find dup .undef ne {
++ dup
++ skipnonspaces dup skipspaces 2 index sub rot rot over sub string over strcpy
++ rot rot
++ {
++ over over exch get
++ over over 0 exch put {
++ 1 add
++ } {
++ exit
++ } ifelse
++ } loop
++ pop pop
++ } if
++} def
++
++
++% Video memory in kb.
++%
++% ( -- int )
++%
++/video.memory {
++ /video.memory 0 sysinfo def
++ video.memory
++} def
++
++
++% Graphics card OEM info.
++%
++% ( -- string )
++%
++/video.oem {
++ /video.oem 1 sysinfo strdup def
++ video.oem
++} def
++
++
++% Graphics card vendor name.
++%
++% ( -- string )
++%
++/video.vendor {
++ /video.vendor 2 sysinfo strdup def
++ video.vendor
++} def
++
++
++% Graphics card product name.
++%
++% ( -- string )
++%
++/video.product {
++ /video.product 3 sysinfo strdup def
++ video.product
++} def
++
++
++% Graphics card revision.
++%
++% ( -- string )
++%
++/video.revision {
++ /video.revision 4 sysinfo strdup def
++ video.revision
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Free memory.
++%
++% Like free, but accepts dict entries, too.
++%
++% ( obj -- )
++%
++/xfree {
++ dup gettype
++ t_dict_idx eq {
++ dup exec exch .undef def
++ } if
++ free
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Free array and all its elements.
++%
++% If array is a dict entries, undefines it, too.
++%
++% ( array -- )
++%
++/afree {
++ dup .undef ne {
++ dup gettype t_dict_idx eq { dup exec exch .undef def } if
++ dup { free } forall
++ free
++ } {
++ pop
++ } ifelse
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Get array element.
++%
++% Like get, but returns .undef if index is outside array bounds.
++%
++% ( array index -- obj )
++%
++/aget {
++ over length over gt { get } { pop pop .undef } ifelse
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Search for array element.
++%
++% ( array key -- bool )
++%
++/iselement {
++ false rot {
++ 2 index eq { pop true exit } if
++ } forall
++ exch pop
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% pc speaker beep.
++%
++% ( freq duration -- )
++%
++% freq in Hz, duration in microseconds.
++%
++/beep {
++ exch
++ 0x61 inbyte
++ dup 3 or 0x61 exch outbyte
++ 0x43 0xb6 outbyte
++ exch 2386360 exch div
++
++ dup 0x42 exch outbyte
++ 8 shr 0x42 exch outbyte
++
++ exch usleep
++
++ 0x61 exch outbyte
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Play movie.
++%
++% ( str1 -- )
++%
++% Image filename template.
++%
++/play_movie {
++ 64 string
++
++ 0
++
++ {
++ 1 add
++ dup 3 index 3 index sprintf
++
++ over findfile dup .undef eq {
++ pop exit
++ } {
++ 10000 usleep
++ currentimage
++ over setimage 0 0 image.size image
++ setimage
++ free
++ } ifelse
++
++
++ } loop
++
++ pop free pop
++
++} def
++
++
+
+<a id="themetrunkmageiagfxbootthemetrunksrctimeoutinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/src/timeout.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/src/timeout.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/src/timeout.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,147 @@
++%
++% include before common.inc
++%
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Boot timeout counter.
++%
++% ( timeout time ) ==&gt; ( )
++%
++% timeout: total time in 18.2Hz steps, time: current value.
++%
++% The code below assumes we're showing seconds and some symbolic counter.
++%
++/Timeout {
++ % first time
++ timeout.current .undef eq { over timeout.init } if
++
++ % no counter
++ timeout.steps .undef eq { return } if
++
++ /timeout.s.last timeout.s.current def
++ /timeout.s.current over 10 mul 150 add 182 div def
++
++ /timeout.last timeout.current def
++ over sub neg timeout.steps mul exch div
++ /timeout.current exch def
++
++ timeout.current timeout.steps ge {
++ % last run
++ timeout.s.done
++ timeout.done
++ } {
++ % 0 270 moveto timeout.last print &quot;&lt;&quot; print timeout.current print &quot;&lt;&quot; print
++
++ timeout.s.last timeout.s.current ne { timeout.s.current timeout.s.update } if
++
++ timeout.last timeout.current ne {
++ timeout.last 1 add 1 timeout.current { timeout.update } for
++ } if
++
++ } ifelse
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Initialize timeout indicator.
++%
++% ( time ) ==&gt; ( )
++%
++/timeout.init {
++ &quot;timer_a.jpg&quot; findfile /timeout.file over def dup .undef ne {
++ currentimage exch setimage
++ 0 0 image.size unpackimage /timeout.image exch def
++ setimage
++
++ /timeout.steps timeout.image imgsize div def
++
++ /timeout.width timeout.image imgsize exch pop def
++
++ /timeout.x menu.start.x menu.bar.width add 24 sub def
++ /timeout.y menu.start.y 1 sub menu.entry menu.item.height mul add def
++
++ timeout.x timeout.y moveto
++ /timeout.bg timeout.width dup savescreen def
++ % just a few buffers
++ /timeout.img_buf timeout.width dup savescreen def
++ /timeout.alpha_buf timeout.width dup savescreen def
++
++ /timeout.current 0 def
++
++ timeout.current timeout.update
++ } { pop } ifelse
++
++ /timeout.s.buf 64 string def
++ /timeout.s.x 100 def
++ /timeout.s.y 250 def
++ /timeout.s.current -1 def
++
++ pop
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Update timeout indicator.
++%
++% ( index ) ==&gt; ( )
++%
++% index runs from 0 to timeout.steps - 1. It is guaranteed that index is
++% 1 larger than the last index. Never a step twice and no step is left out.
++%
++/timeout.update {
++ timeout.width mul 0 moveto
++ timeout.image 255 timeout.alpha_buf blend
++
++ timeout.img_buf timeout.bg dup length memcpy
++
++ 0 0 moveto
++ black timeout.alpha_buf timeout.img_buf blend
++
++ timeout.x timeout.y moveto
++ timeout.img_buf restorescreen
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Clear timeout indicator.
++%
++% ( ) ==&gt; ( )
++%
++/timeout.done {
++ timeout.x timeout.y moveto
++ timeout.bg restorescreen
++
++ /timeout.bg timeout.bg free .undef def
++ /timeout.img_buf timeout.img_buf free .undef def
++ /timeout.alpha_buf timeout.alpha_buf free .undef def
++ /timeout.image timeout.image free .undef def
++ /timeout.file timeout.file free .undef def
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Update seconds counter.
++%
++% ( time_in_s ) ==&gt; ( )
++%
++/timeout.s.update {
++% white setcolor
++% timeout.s.x timeout.s.y moveto -30 0 rmoveto
++% currentpoint 30 fontheight image
++% &quot;%ds&quot; timeout.s.buf sprintf
++% timeout.s.x timeout.s.y moveto timeout.s.buf showright
++ pop
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Clear seconds counter.
++%
++% ( ) ==&gt; ( )
++%
++/timeout.s.done {
++% timeout.s.x timeout.s.y moveto -30 0 rmoveto
++% currentpoint 30 fontheight image
++} def
++
++
+
+<a id="themetrunkmageiagfxbootthemetrunksrcwindowinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/src/window.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/src/window.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/src/window.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,712 @@
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% window code
++%
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++
++
++% public words:
++%
++% window.dialog ( ) ==&gt; ( window )
++% - create a new dialog
++%
++% window.init ( window ) ==&gt; ( )
++% - initialize window
++%
++% window.show ( window ) ==&gt; ( )
++% - draw window
++%
++% window.current ( ) ==&gt; ( window )
++% - the top level window
++%
++% window.action ( ) ==&gt; ( action )
++% - recent window action
++%
++% window.input ( key_in ) ==&gt; ( key_out )
++% - handle keyboard input
++%
++% window.done ( ) ==&gt; ( )
++% - close top level window
++%
++%
++% constants:
++% - window.action
++% actNothing - do nothing
++% actExit - leave boot menu
++% actCloseInfo - close info window
++% actPassword - password entered
++% actStart - boot kernel
++% actEject - eject CD
++% actPowerOff - turn computer off
++% actReboot - reboot computer
++% actRedraw - redraw everything
++% actNoClose - don't close dialog (it's a flag)
++%
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% window related global variables
++%
++
++% all open windows are stacked here
++/window.list 8 array def
++/window.list.index 0 def
++
++% the top level window
++% /window.current
++
++% action selected by closing window
++/window.action actNothing def
++
++% window field definitions
++/widget.size 0 def
++/newfield { widget.size def /widget.size widget.size 1 add def } def
++
++/.type newfield
++/.x newfield
++/.y newfield
++/.width newfield
++/.height newfield
++/.width.min newfield
++/.position newfield
++/.color.fg newfield
++/.color.bg newfield
++/.font newfield
++/.saved newfield
++/.saved.areas newfield
++/.title newfield
++/.title.fg newfield
++/.title.bg newfield
++/.title.height newfield
++/.text newfield
++/.text.x newfield
++/.text.y newfield
++/.buttons newfield
++/.button.y newfield
++/.ed newfield
++/.ed.font newfield
++/.ed.list newfield
++/.ed.buffer.list newfield
++/.ed.text.list newfield
++/.ed.width newfield
++/.ed.focus newfield
++/.ed.pw_field newfield
++/.xmenu newfield
++/.xmenu.update newfield
++
++% window types
++/t_dialog 100 def
++/t_help 101 def
++/t_main 102 def
++/t_xmenu 103 def
++
++% actions
++/actNothing 0 def
++/actExit 1 def
++/actCloseInfo 2 def
++/actPassword 3 def
++/actStart 4 def
++/actEject 5 def
++/actPowerOff 6 def
++/actRedraw 7 def
++/actRedrawPanel 8 def
++/actInstallOK 9 def
++/actInstallCancel 10 def
++/actReboot 11 def
++/actRedrawBootOptionsPanel 12 def
++/actNoClose 0x100 def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Create new dialog window.
++%
++% ( ) ==&gt; ( window )
++%
++/window.dialog {
++ widget.size array
++ dup .type t_dialog put
++ dup .position 8 put % centered at 8/10 of screen height
++ dup .x 0 put
++ dup .y 0 put
++ dup .width.min 0 put
++ dup .color.fg window.color.fg put
++ dup .color.bg window.color.bg put
++ dup .font font.normal put
++ dup .title.fg window.title.fg put
++ dup .title.bg window.title.bg put
++ dup .title.height help.title.height put
++ dup .text.x 12 put
++ dup .text.y help.title.height 10 add put
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Handle keyboard input.
++%
++% ( key_in ) ==&gt; ( key_out )
++%
++/window.input {
++ window.current .undef ne {
++ window.current .type get
++ dup t_dialog eq { exch dialog.input exch } if
++ dup t_help eq { exch help.input exch } if
++ dup t_main eq { exch main.input dialog.input exch } if
++ dup t_xmenu eq { exch xmenu.input exch } if
++ pop
++
++ % % maybe there is an editable input field
++ % dup 0 ne {
++ % window.current .ed get .undef ne {
++ % window.current .ed.font get setfont
++ % window.current .color.fg get setcolor
++ % window.current .ed get exch edit.input
++ % 0
++ % } if
++ % } if
++
++ % only top level window gets input
++ pop 0
++
++ } if
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Initialize window.
++%
++% ( window ) ==&gt; ( )
++%
++/window.init {
++ dup .type get
++ dup t_dialog eq { pop dialog.init return } if
++ dup t_help eq { pop help.init return } if
++ dup t_main eq { pop main.init return } if
++ dup t_xmenu eq { pop xmenu.init return } if
++ pop
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Show window.
++%
++% ( window ) ==&gt; ( )
++%
++/window.show {
++ dup .type get
++ dup t_dialog eq { pop dialog.show return } if
++ dup t_help eq { pop help.show return } if
++ dup t_main eq { pop main.show return } if
++ dup t_xmenu eq { pop xmenu.show return } if
++ pop
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Add window to list.
++%
++% ( window ) ==&gt; ( )
++%
++/window.push {
++ window.list.index window.list length ge { pop return } if
++ /window.current over def
++ window.list window.list.index rot put
++ /window.list.index window.list.index 1 add def
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Remove window from list.
++%
++% ( ) ==&gt; ( window )
++%
++/window.pop {
++ window.list.index 0 eq { .undef return } if
++ /window.list.index window.list.index 1 sub def
++ window.list window.list.index get
++ window.list window.list.index .undef put
++ /window.current
++ window.list.index 0 eq { .undef } { window.list window.list.index 1 sub get } ifelse
++ def
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Close top level window.
++%
++% ( ) ==&gt; ( )
++%
++/window.done {
++ window.current .undef ne {
++ window.current dup .type get
++ dup t_help eq { help.done } if
++ dup t_xmenu eq { xmenu.done } if
++ pop
++ % restore saved background and free bg image
++ dup .saved get .undef ne {
++ dup .x get 1 sub over .y get 1 sub moveto
++ dup .saved get dup restorescreen free
++ dup .saved .undef put
++ } if
++ % restore &amp; free saved background areas
++ dup .saved.areas get .undef ne {
++ % list of [ x y screen ]
++ dup .saved.areas get {
++ dup { } forall
++ 3 1 roll moveto dup restorescreen free
++ free
++ } forall
++ dup .saved.areas get free
++ dup .saved.areas .undef put
++ } if
++ % free input field memory
++ dup .ed get .undef ne {
++ dup .ed get 2 get free % background
++ dup .ed get free
++ dup .ed .undef put
++ } if
++ dup .ed.text.list get free
++ dup .ed.list get dup {
++ { dup 2 get free free } forall
++ } { pop } ifelse
++ dup .ed.list get free
++ pop
++ % remove it from window list
++ window.pop
++ % free buttons &amp; button list
++ dup .buttons get
++ dup .undef ne {
++ dup length 0 gt {
++ dup length 1 sub 0 1 rot {
++ over exch get free
++ } for
++ } if
++ } if
++ free
++ % free window
++ free
++ } if
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Handle keyboard input.
++%
++% ( key_in ) ==&gt; ( key_out )
++%
++/dialog.input {
++ dup 0 eq { return } if
++
++ /window.buttons window.current .buttons get def
++
++ /has_buttons window.buttons .undef ne { window.buttons length 0 gt } { false } ifelse def
++
++ dup keyEnter eq has_buttons and {
++ window.buttons window.findselected
++ over over get 7 get /window.action exch def get
++ dup button.press 100000 usleep
++ window.action actNoClose and {
++ window.action dialog.specialaction { button.show } if
++ } {
++ pop window.done
++ } ifelse
++ pop 0
++ } if
++
++ window.current .ed.list get {
++
++ window.current .ed.list get window.current .ed.focus get get .inp_show aget false ne {
++
++ dup keyDown eq over keyTab eq or {
++ window.current .ed.focus get
++ window.current .ed.list get over get edit.hidecursor
++
++ 1 add window.current .ed.list get length mod
++ window.current .ed.list get over get .inp_show aget false ne { } { pop 0 } ifelse
++ window.current .ed.focus 2 index put
++ window.current .ed.list get exch get edit.showcursor
++ dialog.say.label
++ pop 0
++ } if
++
++ dup keyUp eq over keyShiftTab eq or {
++ window.current .ed.focus get
++ window.current .ed.list get over get edit.hidecursor
++
++ 1 sub window.current .ed.list get length exch over add exch mod
++ {
++ dup 0 eq { exit } if
++ window.current .ed.list get over get .inp_show aget false ne { exit } { 1 sub } ifelse
++ } loop
++ window.current .ed.focus 2 index put
++ window.current .ed.list get exch get edit.showcursor
++ dialog.say.label
++ pop 0
++ } if
++
++ % dup keyTab eq {
++ % window.findselected 1 add window.buttons length mod
++ % window.selectbutton
++ % pop 0
++ % } if
++
++ } if
++
++ } {
++ has_buttons {
++ dup keyTab eq over keyRight eq or over keyDown eq or {
++ window.findselected 1 add window.buttons length mod
++ window.selectbutton
++ pop 0
++ } if
++
++ dup keyShiftTab eq over keyLeft eq or over keyUp eq or {
++ window.findselected window.buttons length 1 sub add window.buttons length mod
++ window.selectbutton
++ pop 0
++ } if
++ } if
++ } ifelse
++
++ has_buttons {
++ dup window.findkey dup 0 ge {
++ window.buttons exch
++ over over get 7 get /window.action exch def get
++ dup button.press 100000 usleep
++ window.action actNoClose and {
++ window.action dialog.specialaction { button.show } if
++ } {
++ pop window.done
++ } ifelse
++ pop 0
++ } {
++ pop
++ } ifelse
++ } if
++
++
++ % maybe there are input fields
++ dup 0 ne {
++ window.current .ed.list get dup {
++ window.current .ed.font get
++ window.current .ed.focus get window.current .ed.pw_field get eq { pwmode } if
++ setfont
++ window.current .color.fg get setcolor
++
++ window.current .ed.focus get get dup .inp_show aget false ne {
++ exch over over edit.input
++ % only if real key
++ 24 shr 0xff and 0xff ne config.talk and currentfont is.pwmode not and {
++ edit.getleft dup 'A' ge over 'Z' le and { 0x20 add } if
++ dialog.input.tmp1 0 rot put dialog.input.tmp1 speak
++ } {
++ pop
++ } ifelse
++ } {
++ pop pop
++ } ifelse
++ 0
++ } { pop } ifelse
++ } if
++
++} def
++
++/dialog.input.tmp1 1 string def
++
++/dialog.say.label {
++ config.talk { window.current .ed.text.list get window.current .ed.focus get get speak } if
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Find selected button.
++%
++% ( ) ==&gt; ( button_idx )
++%
++/window.findselected {
++ 0
++ 0 1 window.buttons length 1 sub {
++ dup
++ window.buttons exch get 5 get
++ {
++ exch pop exit
++ } {
++ pop
++ } ifelse
++ } for
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Find button for key.
++%
++% ( key ) ==&gt; ( button_idx )
++%
++% button_idx = -1 if not found
++%
++/window.findkey {
++ /window.key exch def
++ -1
++ window.key 0 eq { return } if
++ 0 1 window.buttons length 1 sub {
++ dup
++ window.buttons exch get 6 get window.key eq
++ {
++ exch pop exit
++ } {
++ pop
++ } ifelse
++ } for
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Select button.
++%
++% ( button_idx ) ==&gt; ( )
++%
++/window.selectbutton {
++ window.findselected
++ over over eq {
++ pop pop
++ } {
++ window.buttons exch get button.notdefault button.show
++ window.buttons exch get button.default button.show
++ } ifelse
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Initialize dialog window.
++%
++% ( window ) ==&gt; ( )
++%
++/dialog.init {
++ /dialog.tmp exch def
++
++ dialog.tmp .font get setfont
++
++ dialog.tmp .text get dup &quot;&quot; ne { strsize } { pop 0 0 } ifelse
++ /dialog.height exch dialog.tmp .text.y get 10 add add def
++ /dialog.width exch dialog.tmp .text.x get 1 add 2 mul add dialog.tmp .width.min get max def
++
++ /dialog.width dialog.tmp .title get strsize pop dialog.tmp .text.x get 1 add 2 mul add dialog.width max def
++
++ dialog.tmp .ed.text.list get dup {
++ /dialog.width
++ dialog.tmp .ed.width get dialog.tmp .text.x get 1 add 2 mul add 8 add dialog.width max
++ def
++ {
++ strsize
++ /dialog.height exch dialog.height add def
++ /dialog.width exch dialog.tmp .text.x get 1 add 2 mul add dialog.width max def
++ } forall
++ } { pop } ifelse
++
++ dialog.tmp .ed.buffer.list get dup {
++ length lineheight 20 add mul /dialog.height exch dialog.height add def
++ } { pop } ifelse
++
++ /window.buttons dialog.tmp .buttons get def
++
++ /dialog.button.y dialog.height 5 add def
++
++ window.buttons .undef ne { window.buttons length {
++ /dialog.height window.buttons 0 get 3 get dialog.button.y add 8 add def
++ } if } if
++
++ /dialog.y screen.size exch pop dialog.tmp .position get mul 10 div dialog.height sub 2 div 10 max def
++
++ window.buttons .undef ne { window.buttons length {
++ 10
++ 0 1 window.buttons length 1 sub {
++ window.buttons exch get
++ dup 1 dialog.button.y dialog.y add put
++ 2 get 10 add add
++ } for
++
++ dialog.width max /dialog.width exch def
++ } if } if
++
++ % adjust to window size
++ dialog.tmp .ed.width get .undef ne {
++ dialog.tmp .ed.width over over get dialog.width 30 sub max put
++ } if
++
++ /dialog.x screen.size pop dialog.width sub 2 div def
++
++ window.buttons .undef ne { window.buttons length {
++ % calculate button x positions
++ dialog.width 0
++ 0 1 window.buttons length 1 sub {
++ window.buttons exch get 2 get add
++ } for
++ sub window.buttons length 1 add div
++ dialog.x over add
++ 0 1 window.buttons length 1 sub {
++ window.buttons exch get
++ over over 0 rot put
++ 2 get add over add
++ } for
++ pop pop
++ } if } if
++
++ % store values
++
++ dialog.tmp
++ dup .x dialog.x put
++ dup .y dialog.y put
++ dup .width dialog.width put
++ dup .height dialog.height put
++ .button.y dialog.button.y put
++
++ /dialog.tmp .undef def
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Draw dialog window.
++%
++% ( window ) ==&gt; ( )
++%
++/dialog.show {
++ /dialog.tmp exch def
++
++ % put into list early, so drawing functions can access it there
++ dialog.tmp window.push
++
++ % now start drawing
++
++ dialog.tmp .x get 1 sub dialog.tmp .y get 1 sub moveto
++ white black
++ dialog.tmp .width get 2 add dialog.tmp .height get 2 add
++ over over
++ savescreen
++ dialog.tmp .saved rot put
++ drawborder
++
++ dialog.tmp .color.bg get setcolor
++ dialog.tmp .x get dialog.tmp .y get moveto
++ dialog.tmp .width get dialog.tmp .height get fillrect
++
++ dialog.tmp .title.bg get setcolor
++ dialog.tmp .x get 1 add dialog.tmp .y get 1 add moveto
++ dialog.tmp .width get 2 sub dialog.tmp .title.height get 1 sub fillrect
++
++ dialog.tmp .x get 10 add dialog.tmp .y get 3 add moveto
++ dialog.tmp .title.fg get setcolor
++ dialog.tmp .title get config.rtl { dialog.tmp .width get 20 sub 0 rmoveto } if show.rtl
++
++ dialog.tmp .color.fg get setcolor
++ dialog.tmp .x get dialog.tmp .y get moveto
++ dialog.tmp .text.x get dialog.tmp .text.y get rmoveto
++
++ config.talk { dialog.tmp .title get speak } if
++
++ /dialog.tmp.x currentpoint pop def
++
++ config.rtl { dialog.tmp .text.x get -2 mul dialog.tmp .width get add 0 rmoveto } if
++
++ dialog.tmp .text get config.talk { dup speak } if show.rtl
++
++ currentpoint exch pop dialog.tmp.x exch moveto
++
++ dialog.tmp .ed.text.list get dup {
++ /dialog.tmp.idx 0 def
++ {
++ % really '2 add'?
++ config.rtl { dialog.tmp .ed.width get 2 add 0 rmoveto } if show.rtl
++ currentpoint exch pop dialog.tmp.x exch moveto
++
++ dialog.tmp .ed.buffer.list get dialog.tmp.idx get
++
++ dup {
++
++ 3 7 rmoveto
++
++ /dialog.tmp.buf [
++ currentpoint
++ dialog.tmp .ed.width get fontheight 2 add savescreen
++ 0 0
++ .undef
++ ] def
++
++ dialog.tmp.buf 3 2 index put
++ dialog.tmp.buf 4 rot cvp length put
++
++ dialog.tmp .ed.list get dialog.tmp.idx dialog.tmp.buf put
++
++ currentcolor
++ currentpoint over 1 sub over 2 sub moveto
++ black white dialog.tmp .ed.width get 2 add fontheight 5 add drawborder
++ moveto -3 lineheight 20 add 7 sub rmoveto
++ setcolor
++
++ currentfont
++ % hide text in password fields
++ dialog.tmp.idx dialog.tmp .ed.pw_field get eq {
++ dialog.tmp .ed.font get pwmode setfont
++ } if
++ dialog.tmp.buf dup 3 get edit.init
++ setfont
++
++ dialog.tmp .ed.focus get dialog.tmp.idx ne {
++ dialog.tmp.buf edit.hidecursor
++ } {
++ config.talk { dialog.tmp .ed.text.list get dialog.tmp.idx get speak } if
++ } ifelse
++
++ } { pop } ifelse
++
++ /dialog.tmp.idx inc
++ } forall
++ } { pop } ifelse
++
++ dialog.tmp .buttons get .undef ne { dialog.tmp .buttons get length {
++ 0 1 dialog.tmp .buttons get length 1 sub {
++ dialog.tmp .buttons get exch get button.show
++ } for
++ } if } if
++
++ /dialog.tmp .undef def
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Do something without closing the window.
++%
++% ( action ) ==&gt; ( true|false )
++%
++% Returns whether the window still exists.
++%
++/dialog.specialaction {
++ actNoClose not and
++
++ true exch
++
++ dup actEject eq {
++ bootdrive eject pop
++ } if
++
++ dup actPowerOff eq {
++ poweroff
++ } if
++
++ dup actReboot eq {
++ reboot
++ } if
++
++ dup actInstallOK eq {
++ install.ok
++ exch not exch
++ } if
++
++% dup actInstallCancel eq {
++% install.cancel
++% exch not exch
++% } if
++
++ pop
++} def
++
++
+
+<a id="themetrunkmageiagfxbootthemetrunksrcxmenuinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/src/xmenu.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/src/xmenu.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/src/xmenu.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,410 @@
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% List dialog handling.
++%
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Some global vars.
++%
++/xmenu.vspace.default { xmenu .xm_list get length 15 ge { 2 } { 4 } ifelse } def
++/xmenu.hspace 12 def
++/xmenu.light white def
++/xmenu.dark black def
++/xmenu.font font.normal def
++
++% xmenu layout
++%
++% [ selected_entry string_list x y panel_x ]
++%
++/.xm_current 0 def % selected entry
++/.xm_list 1 def % string list
++/.xm_x 2 def % menu x pos
++/.xm_y 3 def % menu y pos
++/.xm_width 4 def % menu width
++/.xm_height 5 def % menu height
++/.xm_panel_x 6 def % panel entry x pos
++/.xm_vspace 7 def % vspace per menu
++/.xm_title 8 def % xmenu title
++/.xm_text 9 def % xmenu text
++/.xm_last 10 def % last selected entry
++/.xm_size 11 def % xmenu size
++
++
++% short hands
++/xmenu.x { xmenu .xm_x get } def
++/xmenu.y { xmenu .xm_y get } def
++/xmenu.width { xmenu .xm_width get } def
++/xmenu.height { xmenu .xm_height get } def
++
++/xmenu.vspace { xmenu .xm_vspace get dup .undef ne { } { pop xmenu.vspace.default } ifelse } def
++
++/xmenu.saved { xmenu.saved.areas xmenu.column get 2 get } def
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Create new xmenu.
++%
++% ( ) ==&gt; ( window )
++%
++/window.xmenu {
++ widget.size array
++ dup .type t_xmenu put
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Handle keyboad input.
++%
++% ( key_in ) ==&gt; ( key_out )
++%
++/xmenu.input {
++ dup 0 eq { return } if
++
++ dup keyEsc eq {
++ xmenu .xm_current over .xm_last get put
++ window.done
++ pop 0
++ } if
++
++ dup keyEnter eq {
++ window.current .xmenu.update get
++ window.done
++ exec
++ pop 0
++ } if
++
++ dup keyDown eq {
++ xmenu .xm_current get 1 add xmenu.select
++ pop 0
++ } if
++
++ dup keyUp eq {
++ xmenu .xm_current get 1 sub xmenu.select
++ pop 0
++ } if
++
++ dup keyPgDown eq {
++ xmenu .xm_current get 5 add
++ xmenu .xm_list get length 1 sub min xmenu.select
++ pop 0
++ } if
++
++ dup keyPgUp eq {
++ xmenu .xm_current get 5 sub
++ 0 max xmenu.select
++ pop 0
++ } if
++
++ dup keyHome eq {
++ 0 xmenu.select
++ pop 0
++ } if
++
++ dup keyEnd eq {
++ xmenu .xm_list get length 1 sub xmenu.select
++ pop 0
++ } if
++
++ dup config.rtl { keyLeft } { keyRight } ifelse eq {
++ xmenu .xm_current get
++ xmenu .xm_list get length over sub xmenu.maxlines lt v_impaired and {
++ pop
++ } {
++ dup xmenu.maxlines div 1 add xmenu.columns mod xmenu.maxlines mul
++ exch xmenu.maxlines mod add
++ xmenu .xm_list get length 1 sub min xmenu.select
++ } ifelse
++ pop 0
++ } if
++
++ dup config.rtl { keyRight } { keyLeft } ifelse eq {
++ xmenu .xm_current get
++ dup xmenu.maxlines lt v_impaired and {
++ pop
++ } {
++ dup xmenu.maxlines div xmenu.columns add 1 sub xmenu.columns mod xmenu.maxlines mul
++ exch xmenu.maxlines mod add
++ xmenu .xm_list get length 1 sub min xmenu.select
++ } ifelse
++ pop 0
++ } if
++
++ dup keyF1 eq {
++ show_help
++ pop 0
++ } if
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Calculate menu sizes.
++%
++% ( ) ==&gt; ( )
++%
++/xmenu.sizes {
++ /xmenu.lheight xmenu.font setfont fontheight xmenu.vspace dup add add def
++
++ /xmenu.maxlines
++ panel.text.y 2 sub xmenu.lheight div
++ def
++
++ /xmenu.columns xmenu .xm_list get length xmenu.maxlines add 1 sub xmenu.maxlines div def
++
++ /xmenu.lastheight
++ xmenu .xm_list get length xmenu.maxlines xmenu.columns 1 sub mul sub xmenu.lheight mul
++ def
++
++ xmenu .xm_height
++ xmenu .xm_list get length xmenu.maxlines min xmenu.lheight mul
++ put
++
++ xmenu .xm_width
++ 0 xmenu .xm_list get { exec strsize pop max } forall xmenu.hspace 2 mul add
++ put
++
++ xmenu .xm_y panel.text.y 1 sub xmenu.height sub put
++
++ xmenu .xm_x xmenu .xm_panel_x get config.rtl { xmenu .xm_width get sub } if put
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Init and show menu.
++%
++% ( window ) ==&gt; ( )
++%
++% xmenu: [ selected_entry [ text0 text1 ... ] x y ]
++%
++/xmenu.init {
++ /xmenu over .xmenu get def
++
++ xmenu.sizes
++
++ dup .saved.areas xmenu.columns array /xmenu.saved.areas over def put
++
++ 0 1 xmenu.columns 1 sub {
++ /xmenu.column exch def
++
++ dup .saved.areas get xmenu.column
++
++ [
++ xmenu.column xmenu.width 2 add mul config.rtl { neg } if xmenu.x add 1 sub xmenu.y 1 sub moveto
++ currentpoint
++
++ xmenu.light xmenu.dark
++ xmenu.width 2 add
++ xmenu.column 1 add xmenu.columns eq { xmenu.lastheight } { xmenu.height } ifelse 2 add
++ over over savescreen 5 1 roll
++ drawborder
++
++ ] put
++
++ } for
++
++ 0 1 xmenu .xm_list get length 1 sub { xmenu.viewentry } for
++
++ xmenu .xm_last over .xm_current get put
++
++ dup .x xmenu.x put
++ .y xmenu.y put
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Close menu.
++%
++% ( ) ==&gt; ( )
++%
++/xmenu.done {
++ /xmenu.tmpbuf xmenu.tmpbuf free .undef def
++ /xmenu.saved.normal xmenu.saved.normal free .undef def
++ /xmenu.saved.selected xmenu.saved.selected free .undef def
++ /xmenu.saved.areas .undef def
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Draw xmenu.
++%
++% ( window ) ==&gt; ( )
++%
++/xmenu.show {
++ window.push
++
++ config.talk {
++ xmenu .xm_title get dup .undef ne { exec speak } { pop } ifelse
++ xmenu .xm_list get xmenu .xm_current get get exec speak
++ } if
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Draw single entry.
++%
++% ( entry ) ==&gt; ( )
++%
++/xmenu.viewentry {
++ xmenu.font setfont
++
++ dup xmenu.maxlines mod xmenu.lheight mul xmenu.y add /xmenu.pos.y exch def
++
++ dup xmenu.maxlines div /xmenu.column over def
++ xmenu.width 2 add mul config.rtl { neg } if xmenu.x add /xmenu.pos.x exch def
++
++ xmenu.pos.x xmenu.pos.y moveto
++
++ dup xmenu .xm_current get eq { xmenu.saved.selected } { xmenu.saved.normal } ifelse
++
++ dup {
++ transp { pop } { restorescreen } ifelse
++ } {
++ pop
++
++ dup xmenu .xm_current get eq { xmenu.selected.bg } { xmenu.normal.bg } ifelse
++ setcolor xmenu.width xmenu.lheight fillrect
++
++ dup xmenu .xm_current get eq {
++ xmenu.pos.x xmenu.pos.y moveto
++ xmenu.dark xmenu.light xmenu.width xmenu.lheight drawborder
++ } if
++
++ dup xmenu .xm_current get eq { /xmenu.saved.selected } { /xmenu.saved.normal } ifelse
++ xmenu.pos.x xmenu.pos.y moveto
++ xmenu.width xmenu.lheight
++ savescreen
++ def
++ } ifelse
++
++
++ transp {
++ % copy entry to avoid reading the screen again
++ dup xmenu .xm_current get eq { xmenu.saved.selected } { xmenu.saved.normal } ifelse
++ xmenu.tmpbuf .undef eq {
++ dup length malloc /xmenu.tmpbuf exch def
++ } if
++ xmenu.tmpbuf exch dup length memcpy
++
++ 0 xmenu.pos.y xmenu.y sub moveto 1 1 rmoveto
++ xmenu.saved transp xmenu.tmpbuf blend
++
++ xmenu.pos.x xmenu.pos.y moveto xmenu.tmpbuf restorescreen
++ } if
++
++ dup xmenu .xm_current get eq { xmenu.selected.fg } { xmenu.normal.fg } ifelse setcolor
++
++ config.rtl {
++ xmenu.pos.x xmenu.width add xmenu.hspace sub xmenu.pos.y xmenu.vspace add moveto
++ } {
++ xmenu.pos.x xmenu.hspace add xmenu.pos.y xmenu.vspace add moveto
++ } ifelse
++
++ xmenu .xm_list get over get exec
++ dup 0 get '\x09' eq {
++ 1 add
++ currentpoint
++ currentcolor
++
++ xmenu.dark setcolor
++ xmenu.pos.x xmenu.pos.y moveto
++ xmenu.pos.x xmenu.width add xmenu.pos.y lineto
++ xmenu.light setcolor
++ xmenu.pos.x xmenu.pos.y 1 add moveto
++ xmenu.pos.x xmenu.width add xmenu.pos.y 1 add lineto
++
++ setcolor
++ moveto
++ show.rtl
++ config.rtl {
++ xmenu.pos.x 8 add xmenu.pos.y moveto &quot;\u25c0&quot; show
++ } {
++ xmenu.pos.x xmenu.width add 8 sub xmenu.pos.y moveto &quot;\u25b6&quot; showright1
++ } ifelse
++ } {
++ show.rtl
++ } ifelse
++
++ pop
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Select menu entry.
++%
++% ( new_entry ) ==&gt; ( )
++%
++/xmenu.select {
++ dup 0 lt { v_impaired { 1 } { xmenu .xm_list get length } ifelse add } if
++ dup xmenu .xm_list get length ge { v_impaired { 1 } { xmenu .xm_list get length } ifelse sub } if
++
++ xmenu .xm_current get over xmenu .xm_current rot put
++ xmenu.viewentry
++ xmenu.viewentry
++
++ config.talk {
++ xmenu .xm_list get xmenu .xm_current get get exec speak
++ } if
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Panel/xmenu helper function.
++%
++% ( ) =&gt; ( )
++%
++/pmenu.panel.update {
++ panel.text.moveto
++
++ xmenu .xm_panel_x currentpoint pop xmenu.hspace config.rtl { neg } if sub put
++
++ pmenu.update
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Panel/xmenu helper function.
++%
++% ( ) =&gt; ( width )
++%
++/pmenu.width {
++ 0
++
++ xmenu .xm_title get
++ dup .undef ne { exec strsize pop max } { pop
++
++ xmenu .xm_list get xmenu .xm_current get get
++ dup .undef ne { exec strsize pop max } { pop } ifelse
++ } ifelse
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Panel/xmenu helper function.
++%
++% ( ) =&gt; ( )
++%
++/pmenu.update {
++ % note: we're always redrawing the whole panel
++
++ panel.title.fg setcolor
++ panel.font setfont
++
++ xmenu .xm_panel_x get xmenu.hspace config.rtl { neg } if add
++ panel.text.y
++ moveto
++
++ xmenu .xm_title get
++ dup .undef eq {
++ pop
++ xmenu .xm_list get xmenu .xm_current get get
++ } if
++ dup .undef ne { exec show.rtl } { pop } ifelse
++
++} def
++
++
+
+<a id="themetrunkmageiagfxbootthemetrunktalkMakefile">Added: theme/trunk/mageia-gfxboot-theme/trunk/talk/Makefile</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/talk/Makefile (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/talk/Makefile 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++all: en.tlk
++
++en.tlk: talk.po sc
++ ./po2talk --compress $&lt; $@
++
++sc: sc.c
++ gcc -O2 -Wall -o $@ $&lt;
++
++clean:
++ rm -f sc *~
+
+
+Property changes on: theme/trunk/mageia-gfxboot-theme/trunk/talk/Makefile
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themetrunkmageiagfxbootthemetrunktalkentlk">Added: theme/trunk/mageia-gfxboot-theme/trunk/talk/en.tlk</a>
+===================================================================
+(Binary files differ)
+
+
+Property changes on: theme/trunk/mageia-gfxboot-theme/trunk/talk/en.tlk
+___________________________________________________________________
+Added: svn:mime-type
+ + application/octet-stream
+
+<a id="themetrunkmageiagfxbootthemetrunktalkpo2talk">Added: theme/trunk/mageia-gfxboot-theme/trunk/talk/po2talk</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/talk/po2talk (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/talk/po2talk 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,191 @@
++#! /usr/bin/perl
++
++use Getopt::Long;
++
++sub help;
++sub read_po;
++sub join_id;
++sub new_tmp_file;
++sub cleanup;
++
++GetOptions(
++ 'help' =&gt; \&amp;help,
++ 'compress' =&gt; \$opt_compress,
++);
++
++END { cleanup }
++$SIG{INT} = \&amp;cleanup;
++$SIG{TERM} = \&amp;cleanup;
++
++my @tmp_files;
++
++$espeak = &quot;espeak&quot;;
++
++$magic = 0x692741e8;
++
++help if @ARGV != 2;
++
++$po = read_po $ARGV[0];
++
++$tmp_txt = new_tmp_file;
++$tmp_wav = new_tmp_file;
++$tmp_snd = new_tmp_file;
++
++for $msg (@{$po}) {
++ $id = join_id $msg, 'id';
++ $str = join_id $msg, 'str';
++
++ next unless $id ne &quot;&quot;;
++
++ eval '$id = &quot;' . $id . '&quot;';
++ eval '$str = &quot;' . $str . '&quot;';
++
++ $str = $id if $str eq &quot;&quot;;
++
++ if(!$snd{$str}) {
++ open W, &quot;&gt;$tmp_txt&quot;;
++ print W $str;
++ close W;
++
++ $punc = length($id) == 1 ? &quot;--punc&quot; : &quot;&quot;;
++
++ system &quot;$espeak $punc -f $tmp_txt -w $tmp_wav&quot;;
++ system &quot;sox $tmp_wav -b -u -c 1 -r 16000 -t .wav $tmp_snd&quot;;
++ if($opt_compress) {
++ system &quot;./sc $tmp_snd $tmp_snd&quot;;
++ }
++
++ open F, $tmp_snd;
++ sysread F, $snd_buf, -s $tmp_snd;
++ close F;
++
++ $snd{$str} = $snd_buf;
++ }
++
++ $snd_id{$id} = $str;
++}
++
++$file_ofs = 0;
++@snds = sort keys %snd;
++@snd_ids = sort keys %snd_id;
++
++for $snd_id (@snd_ids) {
++ $txt_ofs{$snd_id} = $file_ofs;
++ $file_ofs += length($snd_id) + 1;
++}
++
++for $snd (@snds) {
++ $snd_ofs{$snd} = $file_ofs;
++ $file_ofs += length($snd{$snd});
++}
++
++$head_size = 8 + 8 * @snd_ids;
++
++open W, &quot;&gt;$ARGV[1]&quot;;
++
++print W pack(&quot;VV&quot;, $magic, scalar(@snd_ids));
++for $snd_id (@snd_ids) {
++ print W pack(&quot;VV&quot;, ($txt_ofs{$snd_id} + $head_size, $snd_ofs{$snd_id{$snd_id}} + $head_size));
++}
++for $snd_id (@snd_ids) {
++ print W $snd_id, &quot;\x00&quot;;
++}
++for $snd (@snds) {
++ print W $snd{$snd};
++}
++
++close W;
++
++
++sub help
++{
++ print STDERR
++ &quot;Usage: po2talk [options] po_file talk_file\n&quot; .
++ &quot;Run po file through espeak.\n&quot;;
++
++ exit 0;
++}
++
++
++sub read_po
++{
++ local $_;
++ my ($msg, $cnt, $id, $f);
++
++ $cnt = 0;
++
++ open F, $_[0];
++ while(&lt;F&gt;) {
++ s/^\s*|\s*$//g;
++ next if $_ eq &quot;&quot;;
++ if(/^#,/) {
++ s/^#,\s*//;
++ for $f (split /\s*,\s*/) {
++ ${$msg-&gt;[$cnt]{flags}{$f}} = 1 if $f ne &quot;&quot;;
++ }
++ next
++ }
++ if(/^#(\s|$)/) { push @{$msg-&gt;[$cnt]{u_comment}}, $_ ; next }
++ if(/^#/) { push @{$msg-&gt;[$cnt]{a_comment}}, $_; next }
++ if(s/^msg(id\b|id_plural\b|str(\[\d+\])?)\s*//) {
++ $id = $1;
++ if($id eq 'id') {
++ $msg-&gt;[$cnt]{line} = $. unless exists $msg-&gt;[$cnt]{$line};
++ $cnt++;
++ }
++ }
++ if($cnt &amp;&amp; /^&quot;(.*)&quot;$/) {
++ push @{$msg-&gt;[$cnt - 1]{$id}}, $1;
++ }
++ else {
++ print STDERR &quot;$_[0]:$.: invalid po format\n&quot;;
++ return undef;
++ }
++ }
++ close F;
++
++ # trailing comments
++ pop @$msg if @$msg &gt; 0 &amp;&amp; !$msg-&gt;[-1]{id};
++
++ return $msg;
++}
++
++
++sub join_id
++{
++ my ($msg, $id);
++
++ ($msg, $id) = @_;
++
++ return join '', @{$msg-&gt;{$id}};
++}
++
++
++# create new temporary file
++sub new_tmp_file
++{
++ local $_;
++
++ chomp ($_ = `mktemp /tmp/po2talk.XXXXXXXXXX`);
++ die &quot;error: mktemp failed\n&quot; if $?;
++
++ push @tmp_files, $_;
++
++ return $_;
++}
++
++
++# remove temporary files
++sub cleanup
++{
++ local $_;
++
++ for (@tmp_files) {
++ next unless defined $_;
++ unlink;
++ $_ = undef;
++ }
++
++ undef @tmp_files;
++}
++
+
+
+Property changes on: theme/trunk/mageia-gfxboot-theme/trunk/talk/po2talk
+___________________________________________________________________
+Added: svn:executable
+ + *
+
+<a id="themetrunkmageiagfxbootthemetrunktalkscc">Added: theme/trunk/mageia-gfxboot-theme/trunk/talk/sc.c</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/talk/sc.c (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/talk/sc.c 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,229 @@
++#define _GNU_SOURCE
++
++#include &lt;stdio.h&gt;
++#include &lt;stdlib.h&gt;
++#include &lt;unistd.h&gt;
++#include &lt;string.h&gt;
++#include &lt;inttypes.h&gt;
++
++#define MAGIC 0x7d53b605
++
++#define MIN_REF_LEN 5
++#define MAX_REF 127 + MIN_REF_LEN
++
++typedef struct {
++ unsigned size;
++ unsigned char *data;
++ unsigned real_size;
++} file_data_t;
++
++typedef struct __attribute ((packed)) {
++ uint32_t magic;
++ uint32_t size;
++ uint32_t unpacked_size;
++ uint32_t sample_rate;
++} snd_header_t;
++
++file_data_t *read_file(char *name);
++void add_data(file_data_t *d, void *buffer, unsigned size);
++void write_data(file_data_t *d, char *name);
++
++void compr(file_data_t *fd, file_data_t *fd_compr);
++unsigned find_longest(unsigned char *data, unsigned len, unsigned start, unsigned *ofs);
++
++
++int main(int argc, char **argv)
++{
++ file_data_t *fd, fd_compr = { }, fd_samples = { };
++ snd_header_t sh;
++ unsigned sample_rate;
++
++ if(argc != 3) return 1;
++
++ fd = read_file(argv[1]);
++
++ if(fd-&gt;size &lt;= 44) return 1;
++
++ if(
++ *((unsigned *) (fd-&gt;data + 0)) != 0x46464952 ||
++ *((unsigned *) (fd-&gt;data + 8)) != 0x45564157 ||
++ *((short *) (fd-&gt;data + 20)) != 1 ||
++ *((short *) (fd-&gt;data + 34)) != 8 ||
++ *((short *) (fd-&gt;data + 22)) != 1
++ ) {
++ fprintf(stderr, &quot;invalid data, expecting 8bit mono wav (ms pcm) file\n&quot;);
++ return 3;
++ }
++ sample_rate = *((unsigned *) (fd-&gt;data + 24));
++
++ printf(&quot;%s: %u Hz, %u samples\n&quot;, argv[1], sample_rate, fd-&gt;size - 44);
++
++ add_data(&amp;fd_samples, fd-&gt;data + 44, fd-&gt;size - 44);
++
++ sh.magic = MAGIC;
++ sh.unpacked_size = fd_samples.size;
++ sh.sample_rate = sample_rate;
++
++ add_data(&amp;fd_compr, &amp;sh, sizeof sh);
++
++ compr(&amp;fd_samples, &amp;fd_compr);
++
++ sh.size = fd_compr.size - sizeof (snd_header_t);
++
++ memcpy(fd_compr.data, &amp;sh, sizeof (snd_header_t));
++
++ write_data(&amp;fd_compr, argv[2]);
++
++ return 0;
++}
++
++
++file_data_t *read_file(char *name)
++{
++ file_data_t *fd;
++ FILE *f;
++
++ fd = calloc(1, sizeof *fd);
++
++ if(!name) return fd;
++
++ f = fopen(name, &quot;r&quot;);
++
++ if(!f) { perror(name); return fd; }
++
++ if(fseek(f, 0, SEEK_END)) {
++ perror(name);
++ exit(30);
++ }
++
++ fd-&gt;size = fd-&gt;real_size = ftell(f);
++
++ if(fseek(f, 0, SEEK_SET)) {
++ perror(name);
++ exit(30);
++ }
++
++ if(fd-&gt;size) {
++ fd-&gt;data = calloc(1, fd-&gt;size);
++ if(!fd-&gt;data) {
++ fprintf(stderr, &quot;malloc failed\n&quot;);
++ exit(30);
++ }
++ }
++
++ if(fread(fd-&gt;data, 1, fd-&gt;size, f) != fd-&gt;size) {
++ perror(name);
++ exit(30);
++ }
++
++ fclose(f);
++
++ return fd;
++}
++
++
++void add_data(file_data_t *d, void *buffer, unsigned size)
++{
++ if(!size || !d || !buffer) return;
++
++ if(d-&gt;size + size &gt; d-&gt;real_size) {
++ d-&gt;real_size = d-&gt;size + size + 0x1000;
++ d-&gt;data = realloc(d-&gt;data, d-&gt;real_size);
++ if(!d-&gt;data) d-&gt;real_size = 0;
++ }
++
++ if(d-&gt;size + size &lt;= d-&gt;real_size) {
++ memcpy(d-&gt;data + d-&gt;size, buffer, size);
++ d-&gt;size += size;
++ }
++ else {
++ fprintf(stderr, &quot;Oops, out of memory? Aborted.\n&quot;);
++ exit(10);
++ }
++}
++
++
++void write_data(file_data_t *d, char *name)
++{
++ FILE *f;
++
++ f = strcmp(name, &quot;-&quot;) ? fopen(name, &quot;w&quot;) : stdout;
++
++ if(!f) {
++ perror(name);
++ return;
++ }
++
++ if(fwrite(d-&gt;data, d-&gt;size, 1, f) != 1) {
++ perror(name);
++ exit(3);
++ }
++
++ fclose(f);
++}
++
++
++void compr(file_data_t *fd, file_data_t *fd_compr)
++{
++ unsigned u, v, l, ofs;
++ unsigned char uc;
++
++ if(!fd-&gt;size) return;
++
++ for(u = 0; u &lt; fd-&gt;size; u++) {
++ if(fd-&gt;data[u] == 0xff) fd-&gt;data[u] = 0xfe;
++ }
++
++ // printf(&quot;%5u: %02x\n&quot;, fd-&gt;size, fd-&gt;data[0]);
++ add_data(fd_compr, fd-&gt;data, 1);
++
++ for(u = 1; u &lt; fd-&gt;size; ) {
++ l = find_longest(fd-&gt;data, fd-&gt;size, u, &amp;ofs);
++ // printf(&quot;%u: %u bytes @ %u\n&quot;, u, l, ofs);
++ if(l &gt;= MIN_REF_LEN) {
++ // printf(&quot;%5u: %u bytes @ %u\n&quot;, fd-&gt;size, l, ofs);
++ v = (ofs &lt;&lt; 7) + l - MIN_REF_LEN;
++ uc = 0xff; add_data(fd_compr, &amp;uc, 1);
++ uc = v; add_data(fd_compr, &amp;uc, 1);
++ uc = v &gt;&gt; 8; add_data(fd_compr, &amp;uc, 1);
++ uc = v &gt;&gt; 16; add_data(fd_compr, &amp;uc, 1);
++ u += l;
++ }
++ else {
++ // printf(&quot;%5u: %02x\n&quot;, fd-&gt;size, fd-&gt;data[u]);
++ add_data(fd_compr, fd-&gt;data + u, 1);
++ u++;
++ }
++ }
++}
++
++
++unsigned find_longest(unsigned char *data, unsigned len, unsigned start, unsigned *ofs)
++{
++ unsigned l;
++ unsigned char *p, *p1;
++
++ p = data;
++ l = MIN_REF_LEN;
++
++ for(;;) {
++ p1 = memmem(p, data + start + l - 1 - p, data + start, l);
++ if(!p1) break;
++ p = p1;
++ l++;
++
++ if(l &gt; MAX_REF) break;
++ }
++
++ l--;
++
++ if(l &lt; MIN_REF_LEN) {
++ *ofs = 0;
++ return 0;
++ }
++
++ *ofs = p - data;
++ return l;
++}
++
++
+
+
+Property changes on: theme/trunk/mageia-gfxboot-theme/trunk/talk/sc.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themetrunkmageiagfxbootthemetrunktalktalkpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/talk/talk.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/talk/talk.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/talk/talk.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,687 @@
++# main menu
++
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Installation&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Rescue System&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Firmware Test&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Memory Test&quot;
++msgstr &quot;&quot;
++
++msgid &quot;openSUSE-11.1&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Failsafe-openSUSE-11.1&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Hard-Disk&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Live-System-GNOME&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Live-System-KDE&quot;
++msgstr &quot;&quot;
++
++msgid &quot;openSUSE Live (GNOME)&quot;
++msgstr &quot;&quot;
++
++msgid &quot;openSUSE Live (KDE)&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Failsafe Settings&quot;
++msgstr &quot;&quot;
++
++
++# panel texts
++
++msgid &quot;Help&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Language&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Video Mode&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Source&quot;
++msgstr &quot;Installation Source&quot;
++
++msgid &quot;Kernel&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Driver&quot;
++msgstr &quot;Driver Update&quot;
++
++msgid &quot;Arch&quot;
++msgstr &quot;Architecture&quot;
++
++msgid &quot;Keyboard&quot;
++msgstr &quot;&quot;
++
++
++# language menu
++
++msgid &quot;Afrikaans&quot;
++msgstr &quot;Afrikaans&quot;
++
++msgid &quot;\xef\xbb\xb2\xef\xba\x91\xef\xba\xae\xef\xbb\x8b&quot;
++msgstr &quot;Arabic&quot;
++
++msgid &quot;Български&quot;
++msgstr &quot;Bulgarian&quot;
++
++msgid &quot;\xe0\xa6\xac\xe0\xa6\xbe\xe0\xa6\x82\xe0\xa6\xb2\xe0\xa6&quot;
++msgstr &quot;Bengali&quot;
++
++msgid &quot;Bosanski&quot;
++msgstr &quot;Bosnian&quot;
++
++msgid &quot;Català&quot;
++msgstr &quot;Catalan&quot;
++
++msgid &quot;Čeština&quot;
++msgstr &quot;Czech&quot;
++
++msgid &quot;Cymraeg&quot;
++msgstr &quot;Welsh&quot;
++
++msgid &quot;Dansk&quot;
++msgstr &quot;Danish&quot;
++
++msgid &quot;Deutsch&quot;
++msgstr &quot;German&quot;
++
++msgid &quot;Ελληνικά&quot;
++msgstr &quot;Greek&quot;
++
++msgid &quot;English (UK)&quot;
++msgstr &quot;English (UK)&quot;
++
++msgid &quot;English (US)&quot;
++msgstr &quot;English (US)&quot;
++
++msgid &quot;Español&quot;
++msgstr &quot;Spanish&quot;
++
++msgid &quot;Eesti&quot;
++msgstr &quot;Estonian&quot;
++
++msgid &quot;\xef\xaf\xbd\xef\xba\xb4\xd8\xb1\xef\xba\x8e\xef\xbb\x93&quot;
++msgstr &quot;Farsi&quot;
++
++msgid &quot;Suomi&quot;
++msgstr &quot;Finnish&quot;
++
++msgid &quot;Français&quot;
++msgstr &quot;French&quot;
++
++msgid &quot;Galego&quot;
++msgstr &quot;Galician&quot;
++
++msgid &quot;ქართული&quot;
++msgstr &quot;Kartuli&quot;
++
++msgid &quot;\xe0\xaa\x97\xe0\xab\x81\xe0\xaa\x9c\xe0\xaa\xb0\xe0\xaa\xbe\xe0\xaa\xa4\xe0\xab\x80&quot;
++msgstr &quot;Gujarati&quot;
++
++msgid &quot;תירבע&quot;
++msgstr &quot;Hebrew&quot;
++
++msgid &quot;\xe0\xa4\xb9\xe0\xa4\xbf\xe0\xa4\x82\xe0\xa4\xa6\xe0\xa5\x80&quot;
++msgstr &quot;Hindi&quot;
++
++msgid &quot;Hrvatski&quot;
++msgstr &quot;Croatian&quot;
++
++msgid &quot;Magyar&quot;
++msgstr &quot;Hungarian&quot;
++
++msgid &quot;Bahasa Indonesia&quot;
++msgstr &quot;Indonesian&quot;
++
++msgid &quot;Italiano&quot;
++msgstr &quot;Italian&quot;
++
++msgid &quot;日本語&quot;
++msgstr &quot;Japanese&quot;
++
++msgid &quot;Basa Jawa&quot;
++msgstr &quot;Javanese&quot;
++
++msgid &quot;Khmer&quot;
++msgstr &quot;Khmer&quot;
++
++msgid &quot;한글&quot;
++msgstr &quot;Korean&quot;
++
++msgid &quot;\xe0\xba\x9e\xe0\xba\xb2\xe0\xba\xaa\xe0\xba\xb2\xe0\xba\xa5\xe0\xba\xb2\xe0\xba\xa7&quot;
++msgstr &quot;Lao&quot;
++
++msgid &quot;Lietuvių&quot;
++msgstr &quot;Lithuanian&quot;
++
++msgid &quot;Македонски&quot;
++msgstr &quot;Macedonian&quot;
++
++msgid &quot;\xe0\xa4\xae\xe0\xa4\xb0\xe0\xa4\xbe\xe0\xa4\xa0\xe0\xa5\x80&quot;
++msgstr &quot;Marathi&quot;
++
++msgid &quot;Norsk&quot;
++msgstr &quot;Norwegian&quot;
++
++msgid &quot;Nederlands&quot;
++msgstr &quot;Dutch&quot;
++
++msgid &quot;\xe0\xa8\xaa\xe0\xa9\xb0\xe0\xa8\x9c\xe0\xa8\xbe\xe0\xa8\xac\xe0\xa9\x80&quot;
++msgstr &quot;Punjabi&quot;
++
++msgid &quot;Polski&quot;
++msgstr &quot;Polish&quot;
++
++msgid &quot;Português (Brasil)&quot;
++msgstr &quot;Portuguese (Brazilian)&quot;
++
++msgid &quot;Português&quot;
++msgstr &quot;Portuguese&quot;
++
++msgid &quot;Română&quot;
++msgstr &quot;Romanian&quot;
++
++msgid &quot;Русский&quot;
++msgstr &quot;Russian&quot;
++
++msgid &quot;\xe0\xb7\x83\xe0\xb7\x92\xe0\xb6\x82\xe0\xb7\x84\xe0\xb6\xbd&quot;
++msgstr &quot;Sinhala&quot;
++
++msgid &quot;Slovenčina&quot;
++msgstr &quot;Slovak&quot;
++
++msgid &quot;Slovenščina&quot;
++msgstr &quot;Slovenian&quot;
++
++msgid &quot;Srpski&quot;
++msgstr &quot;Serbian&quot;
++
++msgid &quot;Svenska&quot;
++msgstr &quot;Swedish&quot;
++
++msgid &quot;\xe0\xae\xa4\xe0\xae\xae\xe0\xae\xbf\xe0\xae\xb4\xe0\xaf\x8d&quot;
++msgstr &quot;Tamil&quot;
++
++msgid &quot;\xe0\xb8\xa0\xe0\xb8\xb2\xe0\xb8\xa9\xe0\xb8\xb2\xe0\xb9\x84\xe0\xb8\x97\xe0\xb8\xa2&quot;
++msgstr &quot;Thai&quot;
++
++msgid &quot;Türkçe&quot;
++msgstr &quot;Turkish&quot;
++
++msgid &quot;Українська&quot;
++msgstr &quot;Ukrainian&quot;
++
++msgid &quot;Tiếng Việt&quot;
++msgstr &quot;Vietnamese&quot;
++
++msgid &quot;Walon&quot;
++msgstr &quot;Walloon&quot;
++
++msgid &quot;isiXhosa&quot;
++msgstr &quot;Xhosa&quot;
++
++msgid &quot;简体中文&quot;
++msgstr &quot;Simplified Chinese&quot;
++
++msgid &quot;繁體中文 (台灣)&quot;
++msgstr &quot;Traditional Chinese&quot;
++
++msgid &quot;isiZulu&quot;
++msgstr &quot;Zulu&quot;
++
++# keymap menu
++
++msgid &quot;Czech&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Danish&quot;
++msgstr &quot;&quot;
++
++msgid &quot;German&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Estonian&quot;
++msgstr &quot;&quot;
++
++msgid &quot;English-US&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Greek&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Spanish&quot;
++msgstr &quot;&quot;
++
++msgid &quot;French&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Hungarian&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Italian&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Japanese&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Norwegian&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Polish&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Portuguese-BR&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Portuguese&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Russian&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Slovak&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Slovene&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Swedish&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Turkish&quot;
++msgstr &quot;&quot;
++
++
++# video menu
++
++msgid &quot;Text Mode&quot;
++msgstr &quot;&quot;
++
++msgid &quot;VESA&quot;
++msgstr &quot;&quot;
++
++msgid &quot;800 x 600&quot;
++msgstr &quot;800 times 600&quot;
++
++msgid &quot;1024 x 768&quot;
++msgstr &quot;1024 times 768&quot;
++
++msgid &quot;1280 x 1024&quot;
++msgstr &quot;1280 times 1024&quot;
++
++msgid &quot;1400 x 1050&quot;
++msgstr &quot;1400 times 1050&quot;
++
++msgid &quot;1600 x 1200&quot;
++msgstr &quot;1600 times 1200&quot;
++
++
++# source menu
++
++msgid &quot;CD-ROM&quot;
++msgstr &quot;&quot;
++
++msgid &quot;DVD&quot;
++msgstr &quot;&quot;
++
++msgid &quot;SLP&quot;
++msgstr &quot;&quot;
++
++msgid &quot;FTP&quot;
++msgstr &quot;&quot;
++
++msgid &quot;HTTP&quot;
++msgstr &quot;&quot;
++
++
++msgid &quot;NFS&quot;
++msgstr &quot;&quot;
++
++
++msgid &quot;SMB / CIFS&quot;
++msgstr &quot;&quot;
++
++
++msgid &quot;Hard Disk&quot;
++msgstr &quot;&quot;
++
++
++# kernel menu
++
++msgid &quot;Default&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Safe Settings&quot;
++msgstr &quot;&quot;
++
++msgid &quot;No ACPI&quot;
++msgstr &quot;&quot;
++
++msgid &quot;No Local APIC&quot;
++msgstr &quot;&quot;
++
++
++# driver menu
++
++msgid &quot;Yes&quot;
++msgstr &quot;&quot;
++
++msgid &quot;No&quot;
++msgstr &quot;&quot;
++
++msgid &quot;File&quot;
++msgstr &quot;&quot;
++
++msgid &quot;URL&quot;
++msgstr &quot;&quot;
++
++
++# arch menu
++
++msgid &quot;x86&quot;
++msgstr &quot;&quot;
++
++msgid &quot;x86-64&quot;
++msgstr &quot;&quot;
++
++
++# install sources
++
++msgid &quot;FTP Installation&quot;
++msgstr &quot;&quot;
++
++msgid &quot;NFS Installation&quot;
++msgstr &quot;&quot;
++
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;&quot;
++
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Server\n&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Directory\n&quot;
++msgstr &quot;&quot;
++
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;&quot;
++
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Password\n&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Domain\n&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Share\n&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;&quot;
++
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Driver Update&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Exiting...&quot;
++msgstr &quot;&quot;
++
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Power Off&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;&quot;
++
++
++# ascii
++
++msgid &quot; &quot;
++msgstr &quot;space&quot;
++
++msgid &quot;!&quot;
++msgstr &quot;&quot;
++
++msgid &quot;\&quot;&quot;
++msgstr &quot;&quot;
++
++msgid &quot;#&quot;
++msgstr &quot;&quot;
++
++msgid &quot;$&quot;
++msgstr &quot;&quot;
++
++msgid &quot;%&quot;
++msgstr &quot;&quot;
++
++msgid &quot;&amp;&quot;
++msgstr &quot;&quot;
++
++msgid &quot;'&quot;
++msgstr &quot;&quot;
++
++msgid &quot;(&quot;
++msgstr &quot;&quot;
++
++msgid &quot;)&quot;
++msgstr &quot;&quot;
++
++msgid &quot;*&quot;
++msgstr &quot;&quot;
++
++msgid &quot;+&quot;
++msgstr &quot;&quot;
++
++msgid &quot;,&quot;
++msgstr &quot;&quot;
++
++msgid &quot;-&quot;
++msgstr &quot;&quot;
++
++msgid &quot;.&quot;
++msgstr &quot;&quot;
++
++msgid &quot;/&quot;
++msgstr &quot;&quot;
++
++msgid &quot;0&quot;
++msgstr &quot;&quot;
++
++msgid &quot;1&quot;
++msgstr &quot;&quot;
++
++msgid &quot;2&quot;
++msgstr &quot;&quot;
++
++msgid &quot;3&quot;
++msgstr &quot;&quot;
++
++msgid &quot;4&quot;
++msgstr &quot;&quot;
++
++msgid &quot;5&quot;
++msgstr &quot;&quot;
++
++msgid &quot;6&quot;
++msgstr &quot;&quot;
++
++msgid &quot;7&quot;
++msgstr &quot;&quot;
++
++msgid &quot;8&quot;
++msgstr &quot;&quot;
++
++msgid &quot;9&quot;
++msgstr &quot;&quot;
++
++msgid &quot;:&quot;
++msgstr &quot;&quot;
++
++msgid &quot;;&quot;
++msgstr &quot;&quot;
++
++msgid &quot;&lt;&quot;
++msgstr &quot;&quot;
++
++msgid &quot;=&quot;
++msgstr &quot;&quot;
++
++msgid &quot;&gt;&quot;
++msgstr &quot;&quot;
++
++msgid &quot;?&quot;
++msgstr &quot;&quot;
++
++msgid &quot;@&quot;
++msgstr &quot;&quot;
++
++msgid &quot;[&quot;
++msgstr &quot;&quot;
++
++msgid &quot;\\&quot;
++msgstr &quot;&quot;
++
++msgid &quot;]&quot;
++msgstr &quot;&quot;
++
++msgid &quot;^&quot;
++msgstr &quot;&quot;
++
++msgid &quot;_&quot;
++msgstr &quot;&quot;
++
++msgid &quot;`&quot;
++msgstr &quot;&quot;
++
++msgid &quot;a&quot;
++msgstr &quot;&quot;
++
++msgid &quot;b&quot;
++msgstr &quot;&quot;
++
++msgid &quot;c&quot;
++msgstr &quot;&quot;
++
++msgid &quot;d&quot;
++msgstr &quot;&quot;
++
++msgid &quot;e&quot;
++msgstr &quot;&quot;
++
++msgid &quot;f&quot;
++msgstr &quot;&quot;
++
++msgid &quot;g&quot;
++msgstr &quot;&quot;
++
++msgid &quot;h&quot;
++msgstr &quot;&quot;
++
++msgid &quot;i&quot;
++msgstr &quot;&quot;
++
++msgid &quot;j&quot;
++msgstr &quot;&quot;
++
++msgid &quot;k&quot;
++msgstr &quot;&quot;
++
++msgid &quot;l&quot;
++msgstr &quot;&quot;
++
++msgid &quot;m&quot;
++msgstr &quot;&quot;
++
++msgid &quot;n&quot;
++msgstr &quot;&quot;
++
++msgid &quot;o&quot;
++msgstr &quot;&quot;
++
++msgid &quot;p&quot;
++msgstr &quot;&quot;
++
++msgid &quot;q&quot;
++msgstr &quot;&quot;
++
++msgid &quot;r&quot;
++msgstr &quot;&quot;
++
++msgid &quot;s&quot;
++msgstr &quot;&quot;
++
++msgid &quot;t&quot;
++msgstr &quot;&quot;
++
++msgid &quot;u&quot;
++msgstr &quot;&quot;
++
++msgid &quot;v&quot;
++msgstr &quot;&quot;
++
++msgid &quot;w&quot;
++msgstr &quot;&quot;
++
++msgid &quot;x&quot;
++msgstr &quot;&quot;
++
++msgid &quot;y&quot;
++msgstr &quot;&quot;
++
++msgid &quot;z&quot;
++msgstr &quot;&quot;
++
++msgid &quot;{&quot;
++msgstr &quot;&quot;
++
++msgid &quot;|&quot;
++msgstr &quot;&quot;
++
++msgid &quot;}&quot;
++msgstr &quot;&quot;
++
++msgid &quot;~&quot;
++msgstr &quot;&quot;
++
+
+</pre></div>
+
+</body>
+</html> \ No newline at end of file
diff --git a/zarb-ml/mageia-sysadm/attachments/20110207/53d55fc0/attachment.html b/zarb-ml/mageia-sysadm/attachments/20110207/53d55fc0/attachment.html
new file mode 100644
index 000000000..67516f47b
--- /dev/null
+++ b/zarb-ml/mageia-sysadm/attachments/20110207/53d55fc0/attachment.html
@@ -0,0 +1,123619 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>[456] Import cleaned mageia-gfxboot-theme</title>
+</head>
+<body>
+
+<style type="text/css"><!--
+#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
+#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
+#msg dt:after { content:':';}
+#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
+#msg dl a { font-weight: bold}
+#msg dl a:link { color:#fc3; }
+#msg dl a:active { color:#ff0; }
+#msg dl a:visited { color:#cc6; }
+h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
+#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
+#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
+#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
+#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
+#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
+#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
+#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
+#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
+#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
+#logmsg pre { background: #eee; padding: 1em; }
+#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
+#logmsg dl { margin: 0; }
+#logmsg dt { font-weight: bold; }
+#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
+#logmsg dd:before { content:'\00bb';}
+#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
+#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
+#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
+#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
+#logmsg table th.Corner { text-align: left; }
+#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
+#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
+#patch { width: 100%; }
+--></style>
+<div id="msg">
+<dl class="meta">
+<dt>Revision</dt> <dd>456</dd>
+<dt>Author</dt> <dd>dmorgan</dd>
+<dt>Date</dt> <dd>2011-02-07 09:15:44 +0100 (Mon, 07 Feb 2011)</dd>
+</dl>
+
+<h3>Log Message</h3>
+<pre>Import cleaned mageia-gfxboot-theme</pre>
+
+<h3>Added Paths</h3>
+<ul>
+<li>theme/</li>
+<li>theme/trunk/</li>
+<li>theme/trunk/mageia-gfxboot-theme/</li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkMakefile">theme/trunk/mageia-gfxboot-theme/trunk/Makefile</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkconfig">theme/trunk/mageia-gfxboot-theme/trunk/config</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/data-boot/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkdatabootbackjpg">theme/trunk/mageia-gfxboot-theme/trunk/data-boot/back.jpg</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkdatabootgfxbootcfg">theme/trunk/mageia-gfxboot-theme/trunk/data-boot/gfxboot.cfg</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkdatabootlangs">theme/trunk/mageia-gfxboot-theme/trunk/data-boot/langs</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkdataboottimer_ajpg">theme/trunk/mageia-gfxboot-theme/trunk/data-boot/timer_a.jpg</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/data-install/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkdatainstallbackjpg">theme/trunk/mageia-gfxboot-theme/trunk/data-install/back.jpg</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkdatainstallgfxbootcfg">theme/trunk/mageia-gfxboot-theme/trunk/data-install/gfxboot.cfg</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkdatainstalllangs">theme/trunk/mageia-gfxboot-theme/trunk/data-install/langs</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkdatainstalltextjpg">theme/trunk/mageia-gfxboot-theme/trunk/data-install/text.jpg</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkdatainstalltimer_ajpg">theme/trunk/mageia-gfxboot-theme/trunk/data-install/timer_a.jpg</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkdatainstallwelcomejpg">theme/trunk/mageia-gfxboot-theme/trunk/data-install/welcome.jpg</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/fonts/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkfonts16x16fnt">theme/trunk/mageia-gfxboot-theme/trunk/fonts/16x16.fnt</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkfonts16x16fntlog">theme/trunk/mageia-gfxboot-theme/trunk/fonts/16x16.fnt.log</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkfontsMakefile">theme/trunk/mageia-gfxboot-theme/trunk/fonts/Makefile</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-boot/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootMakefile">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/Makefile</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootafnavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/navi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootafopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootafopthelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/opt::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootafoptkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/opt::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootafopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootafopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootafopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootafopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootafoptprofilehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/opt::profile.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootarnavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/navi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootaropthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootaropthelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/opt::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootaroptkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/opt::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootaropto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootaropto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootaropto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootaropto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootaroptprofilehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/opt::profile.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootbgnavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/navi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootbgopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootbgopthelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/opt::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootbgoptkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/opt::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootbgopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootbgopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootbgopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootbgopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootbgoptprofilehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/opt::profile.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootcanavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/navi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootcaopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootcaopthelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/opt::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootcaoptkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/opt::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootcaopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootcaopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootcaopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootcaopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootcaoptprofilehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/opt::profile.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootcsnavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/navi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootcsopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootcsopthelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/opt::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootcsoptkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/opt::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootcsopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootcsopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootcsopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootcsopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootcsoptprofilehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/opt::profile.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootdanavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/navi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootdaopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootdaopthelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/opt::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootdaoptkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/opt::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootdaopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootdaopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootdaopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootdaopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootdaoptprofilehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/opt::profile.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootdenavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/navi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootdeopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootdeopthelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/opt::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootdeoptkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/opt::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootdeopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootdeopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootdeopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootdeopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootdeoptprofilehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/opt::profile.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootelnavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/navi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootelopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootelopthelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/opt::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbooteloptkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/opt::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootelopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootelopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootelopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootelopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbooteloptprofilehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/opt::profile.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootennavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/navi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootenopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootenopthelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/opt::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootenoptkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/opt::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootenopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootenopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootenopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootenopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootenoptprofilehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/opt::profile.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootesnavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/navi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootesopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootesopthelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/opt::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootesoptkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/opt::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootesopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootesopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootesopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootesopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootesoptprofilehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/opt::profile.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootetnavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/navi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootetopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootetopthelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/opt::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootetoptkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/opt::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootetopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootetopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootetopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootetopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootetoptprofilehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/opt::profile.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootfinavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/navi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootfiopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootfiopthelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/opt::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootfioptkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/opt::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootfiopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootfiopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootfiopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootfiopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootfioptprofilehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/opt::profile.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootfrnavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/navi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootfropthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootfropthelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/opt::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootfroptkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/opt::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootfropto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootfropto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootfropto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootfropto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootfroptprofilehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/opt::profile.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootglnavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/navi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootglopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootglopthelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/opt::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootgloptkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/opt::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootglopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootglopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootglopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootglopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootgloptprofilehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/opt::profile.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootgunavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/navi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootguopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootguopthelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/opt::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootguoptkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/opt::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootguopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootguopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootguopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootguopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootguoptprofilehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/opt::profile.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpboothinavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/navi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpboothiopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpboothiopthelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/opt::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpboothioptkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/opt::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpboothiopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpboothiopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpboothiopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpboothiopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpboothioptprofilehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/opt::profile.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpboothrnavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/navi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpboothropthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpboothropthelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/opt::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpboothroptkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/opt::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpboothropto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpboothropto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpboothropto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpboothropto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpboothroptprofilehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/opt::profile.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpboothunavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/navi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpboothuopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpboothuopthelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/opt::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpboothuoptkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/opt::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpboothuopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpboothuopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpboothuopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpboothuopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpboothuoptprofilehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/opt::profile.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootitnavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/navi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootitopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootitopthelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/opt::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootitoptkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/opt::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootitopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootitopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootitopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootitopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootitoptprofilehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/opt::profile.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootjanavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/navi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootjaopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootjaopthelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/opt::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootjaoptkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/opt::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootjaopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootjaopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootjaopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootjaopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootjaoptprofilehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/opt::profile.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootkonavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/navi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootkoopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootkoopthelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/opt::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootkooptkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/opt::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootkoopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootkoopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootkoopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootkoopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootkooptprofilehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/opt::profile.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootkynavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/navi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootkyopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootkyopthelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/opt::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootkyoptkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/opt::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootkyopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootkyopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootkyopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootkyopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootkyoptprofilehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/opt::profile.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootltnavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/navi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootltopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootltopthelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/opt::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootltoptkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/opt::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootltopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootltopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootltopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootltopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootltoptprofilehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/opt::profile.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootmrnavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/navi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootmropthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootmropthelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/opt::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootmroptkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/opt::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootmropto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootmropto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootmropto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootmropto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootmroptprofilehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/opt::profile.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootnbnavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/navi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootnbopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootnbopthelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/opt::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootnboptkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/opt::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootnbopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootnbopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootnbopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootnbopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootnboptprofilehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/opt::profile.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootnlnavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/navi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootnlopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootnlopthelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/opt::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootnloptkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/opt::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootnlopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootnlopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootnlopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootnlopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootnloptprofilehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/opt::profile.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootpanavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/navi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootpaopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootpaopthelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/opt::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootpaoptkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/opt::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootpaopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootpaopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootpaopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootpaopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootpaoptprofilehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/opt::profile.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootplnavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/navi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootplopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootplopthelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/opt::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootploptkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/opt::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootplopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootplopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootplopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootplopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootploptprofilehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/opt::profile.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootptnavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/navi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootptopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootptopthelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/opt::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootptoptkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/opt::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootptopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootptopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootptopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootptopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootptoptprofilehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/opt::profile.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootpt_BRnavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/navi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootpt_BRopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootpt_BRopthelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/opt::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootpt_BRoptkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/opt::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootpt_BRopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootpt_BRopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootpt_BRopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootpt_BRopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootpt_BRoptprofilehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/opt::profile.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootronavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/navi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootroopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootroopthelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/opt::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootrooptkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/opt::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootroopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootroopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootroopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootroopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootrooptprofilehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/opt::profile.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootrunavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/navi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootruopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootruopthelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/opt::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootruoptkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/opt::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootruopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootruopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootruopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootruopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootruoptprofilehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/opt::profile.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootsknavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/navi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootskopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootskopthelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/opt::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootskoptkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/opt::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootskopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootskopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootskopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootskopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootskoptprofilehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/opt::profile.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootsvnavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/navi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootsvopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootsvopthelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/opt::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootsvoptkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/opt::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootsvopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootsvopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootsvopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootsvopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootsvoptprofilehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/opt::profile.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootuknavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/navi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootukopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootukopthelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/opt::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootukoptkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/opt::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootukopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootukopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootukopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootukopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootukoptprofilehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/opt::profile.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootwanavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/navi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootwaopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootwaopthelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/opt::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootwaoptkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/opt::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootwaopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootwaopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootwaopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootwaopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootwaoptprofilehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/opt::profile.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootxhnavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/navi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootxhopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootxhopthelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/opt::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootxhoptkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/opt::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootxhopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootxhopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootxhopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootxhopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootxhoptprofilehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/opt::profile.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootzh_CNnavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/navi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootzh_CNopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootzh_CNopthelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/opt::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootzh_CNoptkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/opt::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootzh_CNopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootzh_CNopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootzh_CNopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootzh_CNopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootzh_CNoptprofilehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/opt::profile.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootzh_TWnavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/navi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootzh_TWopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootzh_TWopthelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/opt::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootzh_TWoptkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/opt::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootzh_TWopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootzh_TWopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootzh_TWopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootzh_TWopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpbootzh_TWoptprofilehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/opt::profile.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-install/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallMakefile">theme/trunk/mageia-gfxboot-theme/trunk/help-install/Makefile</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallafmainhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallafmainbitshtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::bits.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallafmaindriverupdatehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::driverupdate.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallafmainfailsafehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::failsafe.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallafmainfirmwarehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::firmware.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallafmainharddiskhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::harddisk.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallafmainhelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallafmaininstall_srchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::install_src.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallafmainkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallafmainlinuxhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::linux.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallafmainmemtesthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::memtest.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallafmainnoacpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::noacpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallafmainnolapichtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::nolapic.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallafmainopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallafmainoptnetworkhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::opt::network.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallafmainopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallafmainopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallafmainopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallafmainopto_installhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::opt::o_install.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallafmainopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallafmainopto_vnchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::opt::o_vnc.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallafmainrescuehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::rescue.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallafmainvideomodehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::videomode.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallafnavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/navi.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallarmainhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallarmainbitshtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::bits.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallarmaindriverupdatehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::driverupdate.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallarmainfailsafehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::failsafe.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallarmainfirmwarehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::firmware.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallarmainharddiskhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::harddisk.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallarmainhelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallarmaininstall_srchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::install_src.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallarmainkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallarmainlinuxhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::linux.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallarmainmemtesthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::memtest.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallarmainnoacpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::noacpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallarmainnolapichtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::nolapic.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallarmainopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallarmainoptnetworkhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::opt::network.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallarmainopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallarmainopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallarmainopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallarmainopto_installhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::opt::o_install.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallarmainopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallarmainopto_vnchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::opt::o_vnc.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallarmainrescuehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::rescue.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallarmainvideomodehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::videomode.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallarnavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/navi.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallcamainhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallcamainbitshtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::bits.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallcamaindriverupdatehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::driverupdate.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallcamainfailsafehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::failsafe.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallcamainfirmwarehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::firmware.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallcamainharddiskhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::harddisk.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallcamainhelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallcamaininstall_srchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::install_src.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallcamainkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallcamainlinuxhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::linux.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallcamainmemtesthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::memtest.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallcamainnoacpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::noacpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallcamainnolapichtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::nolapic.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallcamainopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallcamainoptnetworkhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::opt::network.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallcamainopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallcamainopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallcamainopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallcamainopto_installhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::opt::o_install.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallcamainopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallcamainopto_vnchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::opt::o_vnc.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallcamainrescuehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::rescue.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallcamainvideomodehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::videomode.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallcanavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/navi.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallcsmainhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallcsmainbitshtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::bits.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallcsmaindriverupdatehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::driverupdate.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallcsmainfailsafehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::failsafe.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallcsmainfirmwarehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::firmware.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallcsmainharddiskhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::harddisk.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallcsmainhelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallcsmaininstall_srchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::install_src.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallcsmainkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallcsmainlinuxhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::linux.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallcsmainmemtesthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::memtest.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallcsmainnoacpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::noacpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallcsmainnolapichtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::nolapic.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallcsmainopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallcsmainoptnetworkhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::opt::network.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallcsmainopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallcsmainopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallcsmainopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallcsmainopto_installhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::opt::o_install.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallcsmainopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallcsmainopto_vnchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::opt::o_vnc.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallcsmainrescuehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::rescue.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallcsmainvideomodehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::videomode.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallcsnavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/navi.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalldamainhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalldamainbitshtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::bits.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalldamaindriverupdatehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::driverupdate.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalldamainfailsafehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::failsafe.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalldamainfirmwarehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::firmware.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalldamainharddiskhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::harddisk.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalldamainhelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalldamaininstall_srchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::install_src.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalldamainkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalldamainlinuxhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::linux.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalldamainmemtesthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::memtest.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalldamainnoacpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::noacpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalldamainnolapichtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::nolapic.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalldamainopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalldamainoptnetworkhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::opt::network.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalldamainopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalldamainopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalldamainopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalldamainopto_installhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::opt::o_install.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalldamainopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalldamainopto_vnchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::opt::o_vnc.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalldamainrescuehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::rescue.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalldamainvideomodehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::videomode.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalldanavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/navi.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalldemainhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalldemainbitshtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::bits.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalldemaindriverupdatehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::driverupdate.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalldemainfailsafehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::failsafe.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalldemainfirmwarehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::firmware.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalldemainharddiskhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::harddisk.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalldemainhelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalldemaininstall_srchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::install_src.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalldemainkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalldemainlinuxhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::linux.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalldemainmemtesthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::memtest.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalldemainnoacpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::noacpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalldemainnolapichtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::nolapic.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalldemainopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalldemainoptnetworkhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::opt::network.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalldemainopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalldemainopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalldemainopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalldemainopto_installhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::opt::o_install.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalldemainopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalldemainopto_vnchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::opt::o_vnc.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalldemainrescuehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::rescue.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalldemainvideomodehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::videomode.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalldenavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/navi.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallelmainhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallelmainbitshtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::bits.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallelmaindriverupdatehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::driverupdate.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallelmainfailsafehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::failsafe.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallelmainfirmwarehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::firmware.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallelmainharddiskhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::harddisk.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallelmainhelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallelmaininstall_srchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::install_src.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallelmainkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallelmainlinuxhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::linux.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallelmainmemtesthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::memtest.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallelmainnoacpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::noacpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallelmainnolapichtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::nolapic.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallelmainopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallelmainoptnetworkhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::opt::network.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallelmainopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallelmainopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallelmainopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallelmainopto_installhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::opt::o_install.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallelmainopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallelmainopto_vnchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::opt::o_vnc.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallelmainrescuehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::rescue.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallelmainvideomodehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::videomode.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallelnavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/navi.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallenmainhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallenmainbitshtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::bits.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallenmaindriverupdatehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::driverupdate.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallenmainfailsafehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::failsafe.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallenmainfirmwarehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::firmware.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallenmainharddiskhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::harddisk.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallenmainhelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallenmaininstall_srchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::install_src.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallenmainkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallenmainlinuxhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::linux.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallenmainmemtesthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::memtest.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallenmainnoacpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::noacpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallenmainnolapichtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::nolapic.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallenmainopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallenmainoptnetworkhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::opt::network.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallenmainopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallenmainopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallenmainopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallenmainopto_installhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::opt::o_install.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallenmainopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallenmainopto_vnchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::opt::o_vnc.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallenmainrescuehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::rescue.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallenmainvideomodehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::videomode.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallennavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/navi.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallesmainhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallesmainbitshtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::bits.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallesmaindriverupdatehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::driverupdate.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallesmainfailsafehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::failsafe.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallesmainfirmwarehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::firmware.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallesmainharddiskhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::harddisk.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallesmainhelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallesmaininstall_srchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::install_src.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallesmainkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallesmainlinuxhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::linux.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallesmainmemtesthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::memtest.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallesmainnoacpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::noacpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallesmainnolapichtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::nolapic.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallesmainopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallesmainoptnetworkhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::opt::network.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallesmainopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallesmainopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallesmainopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallesmainopto_installhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::opt::o_install.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallesmainopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallesmainopto_vnchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::opt::o_vnc.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallesmainrescuehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::rescue.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallesmainvideomodehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::videomode.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallesnavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/navi.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalletmainhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalletmainbitshtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::bits.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalletmaindriverupdatehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::driverupdate.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalletmainfailsafehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::failsafe.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalletmainfirmwarehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::firmware.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalletmainharddiskhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::harddisk.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalletmainhelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalletmaininstall_srchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::install_src.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalletmainkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalletmainlinuxhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::linux.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalletmainmemtesthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::memtest.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalletmainnoacpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::noacpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalletmainnolapichtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::nolapic.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalletmainopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalletmainoptnetworkhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::opt::network.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalletmainopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalletmainopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalletmainopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalletmainopto_installhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::opt::o_install.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalletmainopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalletmainopto_vnchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::opt::o_vnc.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalletmainrescuehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::rescue.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalletmainvideomodehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::videomode.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalletnavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/navi.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallfimainhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallfimainbitshtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::bits.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallfimaindriverupdatehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::driverupdate.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallfimainfailsafehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::failsafe.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallfimainfirmwarehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::firmware.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallfimainharddiskhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::harddisk.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallfimainhelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallfimaininstall_srchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::install_src.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallfimainkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallfimainlinuxhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::linux.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallfimainmemtesthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::memtest.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallfimainnoacpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::noacpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallfimainnolapichtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::nolapic.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallfimainopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallfimainoptnetworkhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::opt::network.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallfimainopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallfimainopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallfimainopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallfimainopto_installhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::opt::o_install.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallfimainopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallfimainopto_vnchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::opt::o_vnc.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallfimainrescuehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::rescue.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallfimainvideomodehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::videomode.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallfinavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/navi.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallfrmainhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallfrmainbitshtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::bits.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallfrmaindriverupdatehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::driverupdate.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallfrmainfailsafehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::failsafe.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallfrmainfirmwarehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::firmware.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallfrmainharddiskhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::harddisk.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallfrmainhelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallfrmaininstall_srchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::install_src.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallfrmainkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallfrmainlinuxhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::linux.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallfrmainmemtesthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::memtest.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallfrmainnoacpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::noacpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallfrmainnolapichtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::nolapic.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallfrmainopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallfrmainoptnetworkhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::opt::network.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallfrmainopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallfrmainopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallfrmainopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallfrmainopto_installhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::opt::o_install.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallfrmainopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallfrmainopto_vnchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::opt::o_vnc.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallfrmainrescuehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::rescue.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallfrmainvideomodehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::videomode.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallfrnavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/navi.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallglmainhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallglmainbitshtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::bits.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallglmaindriverupdatehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::driverupdate.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallglmainfailsafehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::failsafe.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallglmainfirmwarehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::firmware.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallglmainharddiskhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::harddisk.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallglmainhelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallglmaininstall_srchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::install_src.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallglmainkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallglmainlinuxhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::linux.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallglmainmemtesthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::memtest.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallglmainnoacpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::noacpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallglmainnolapichtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::nolapic.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallglmainopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallglmainoptnetworkhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::opt::network.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallglmainopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallglmainopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallglmainopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallglmainopto_installhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::opt::o_install.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallglmainopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallglmainopto_vnchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::opt::o_vnc.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallglmainrescuehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::rescue.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallglmainvideomodehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::videomode.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallglnavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/navi.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallgumainhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallgumainbitshtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::bits.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallgumaindriverupdatehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::driverupdate.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallgumainfailsafehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::failsafe.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallgumainfirmwarehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::firmware.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallgumainharddiskhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::harddisk.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallgumainhelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallgumaininstall_srchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::install_src.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallgumainkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallgumainlinuxhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::linux.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallgumainmemtesthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::memtest.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallgumainnoacpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::noacpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallgumainnolapichtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::nolapic.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallgumainopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallgumainoptnetworkhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::opt::network.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallgumainopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallgumainopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallgumainopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallgumainopto_installhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::opt::o_install.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallgumainopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallgumainopto_vnchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::opt::o_vnc.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallgumainrescuehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::rescue.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallgumainvideomodehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::videomode.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallgunavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/navi.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallhrmainhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallhrmainbitshtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::bits.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallhrmaindriverupdatehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::driverupdate.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallhrmainfailsafehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::failsafe.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallhrmainfirmwarehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::firmware.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallhrmainharddiskhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::harddisk.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallhrmainhelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallhrmaininstall_srchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::install_src.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallhrmainkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallhrmainlinuxhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::linux.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallhrmainmemtesthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::memtest.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallhrmainnoacpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::noacpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallhrmainnolapichtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::nolapic.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallhrmainopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallhrmainoptnetworkhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::opt::network.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallhrmainopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallhrmainopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallhrmainopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallhrmainopto_installhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::opt::o_install.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallhrmainopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallhrmainopto_vnchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::opt::o_vnc.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallhrmainrescuehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::rescue.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallhrmainvideomodehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::videomode.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallhrnavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/navi.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallhumainhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallhumainbitshtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::bits.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallhumaindriverupdatehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::driverupdate.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallhumainfailsafehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::failsafe.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallhumainfirmwarehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::firmware.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallhumainharddiskhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::harddisk.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallhumainhelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallhumaininstall_srchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::install_src.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallhumainkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallhumainlinuxhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::linux.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallhumainmemtesthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::memtest.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallhumainnoacpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::noacpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallhumainnolapichtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::nolapic.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallhumainopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallhumainoptnetworkhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::opt::network.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallhumainopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallhumainopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallhumainopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallhumainopto_installhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::opt::o_install.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallhumainopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallhumainopto_vnchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::opt::o_vnc.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallhumainrescuehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::rescue.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallhumainvideomodehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::videomode.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallhunavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/navi.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallitmainhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallitmainbitshtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::bits.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallitmaindriverupdatehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::driverupdate.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallitmainfailsafehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::failsafe.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallitmainfirmwarehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::firmware.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallitmainharddiskhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::harddisk.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallitmainhelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallitmaininstall_srchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::install_src.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallitmainkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallitmainlinuxhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::linux.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallitmainmemtesthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::memtest.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallitmainnoacpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::noacpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallitmainnolapichtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::nolapic.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallitmainopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallitmainoptnetworkhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt::network.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallitmainopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallitmainopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallitmainopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallitmainopto_installhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt::o_install.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallitmainopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallitmainopto_vnchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt::o_vnc.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallitmainrescuehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::rescue.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallitmainvideomodehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::videomode.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallitnavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/navi.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalljamainhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalljamainbitshtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::bits.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalljamaindriverupdatehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::driverupdate.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalljamainfailsafehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::failsafe.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalljamainfirmwarehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::firmware.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalljamainharddiskhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::harddisk.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalljamainhelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalljamaininstall_srchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::install_src.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalljamainkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalljamainlinuxhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::linux.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalljamainmemtesthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::memtest.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalljamainnoacpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::noacpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalljamainnolapichtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::nolapic.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalljamainopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalljamainoptnetworkhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt::network.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalljamainopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalljamainopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalljamainopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalljamainopto_installhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt::o_install.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalljamainopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalljamainopto_vnchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt::o_vnc.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalljamainrescuehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::rescue.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalljamainvideomodehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::videomode.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalljanavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/navi.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkomainhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkomainbitshtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::bits.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkomaindriverupdatehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::driverupdate.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkomainfailsafehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::failsafe.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkomainfirmwarehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::firmware.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkomainharddiskhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::harddisk.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkomainhelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkomaininstall_srchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::install_src.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkomainkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkomainlinuxhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::linux.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkomainmemtesthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::memtest.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkomainnoacpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::noacpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkomainnolapichtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::nolapic.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkomainopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkomainoptnetworkhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt::network.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkomainopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkomainopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkomainopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkomainopto_installhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt::o_install.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkomainopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkomainopto_vnchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt::o_vnc.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkomainrescuehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::rescue.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkomainvideomodehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::videomode.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkonavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/navi.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkymainhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkymainbitshtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::bits.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkymaindriverupdatehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::driverupdate.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkymainfailsafehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::failsafe.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkymainfirmwarehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::firmware.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkymainharddiskhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::harddisk.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkymainhelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkymaininstall_srchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::install_src.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkymainkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkymainlinuxhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::linux.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkymainmemtesthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::memtest.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkymainnoacpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::noacpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkymainnolapichtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::nolapic.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkymainopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkymainoptnetworkhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt::network.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkymainopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkymainopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkymainopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkymainopto_installhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt::o_install.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkymainopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkymainopto_vnchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt::o_vnc.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkymainrescuehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::rescue.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkymainvideomodehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::videomode.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallkynavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/navi.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallltmainhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallltmainbitshtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::bits.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallltmaindriverupdatehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::driverupdate.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallltmainfailsafehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::failsafe.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallltmainfirmwarehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::firmware.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallltmainharddiskhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::harddisk.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallltmainhelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallltmaininstall_srchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::install_src.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallltmainkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallltmainlinuxhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::linux.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallltmainmemtesthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::memtest.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallltmainnoacpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::noacpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallltmainnolapichtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::nolapic.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallltmainopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallltmainoptnetworkhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt::network.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallltmainopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallltmainopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallltmainopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallltmainopto_installhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt::o_install.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallltmainopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallltmainopto_vnchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt::o_vnc.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallltmainrescuehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::rescue.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallltmainvideomodehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::videomode.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallltnavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/navi.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallmrmainhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallmrmainbitshtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::bits.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallmrmaindriverupdatehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::driverupdate.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallmrmainfailsafehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::failsafe.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallmrmainfirmwarehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::firmware.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallmrmainharddiskhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::harddisk.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallmrmainhelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallmrmaininstall_srchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::install_src.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallmrmainkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallmrmainlinuxhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::linux.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallmrmainmemtesthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::memtest.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallmrmainnoacpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::noacpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallmrmainnolapichtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::nolapic.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallmrmainopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallmrmainoptnetworkhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt::network.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallmrmainopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallmrmainopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallmrmainopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallmrmainopto_installhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt::o_install.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallmrmainopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallmrmainopto_vnchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt::o_vnc.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallmrmainrescuehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::rescue.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallmrmainvideomodehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::videomode.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallmrnavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/navi.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnbmainhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnbmainbitshtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::bits.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnbmaindriverupdatehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::driverupdate.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnbmainfailsafehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::failsafe.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnbmainfirmwarehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::firmware.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnbmainharddiskhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::harddisk.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnbmainhelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnbmaininstall_srchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::install_src.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnbmainkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnbmainlinuxhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::linux.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnbmainmemtesthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::memtest.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnbmainnoacpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::noacpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnbmainnolapichtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::nolapic.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnbmainopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnbmainoptnetworkhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt::network.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnbmainopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnbmainopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnbmainopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnbmainopto_installhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt::o_install.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnbmainopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnbmainopto_vnchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt::o_vnc.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnbmainrescuehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::rescue.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnbmainvideomodehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::videomode.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnbnavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/navi.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnlmainhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnlmainbitshtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::bits.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnlmaindriverupdatehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::driverupdate.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnlmainfailsafehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::failsafe.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnlmainfirmwarehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::firmware.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnlmainharddiskhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::harddisk.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnlmainhelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnlmaininstall_srchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::install_src.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnlmainkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnlmainlinuxhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::linux.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnlmainmemtesthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::memtest.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnlmainnoacpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::noacpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnlmainnolapichtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::nolapic.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnlmainopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnlmainoptnetworkhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt::network.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnlmainopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnlmainopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnlmainopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnlmainopto_installhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt::o_install.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnlmainopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnlmainopto_vnchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt::o_vnc.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnlmainrescuehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::rescue.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnlmainvideomodehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::videomode.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallnlnavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/navi.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpamainhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpamainbitshtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::bits.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpamaindriverupdatehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::driverupdate.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpamainfailsafehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::failsafe.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpamainfirmwarehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::firmware.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpamainharddiskhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::harddisk.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpamainhelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpamaininstall_srchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::install_src.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpamainkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpamainlinuxhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::linux.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpamainmemtesthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::memtest.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpamainnoacpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::noacpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpamainnolapichtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::nolapic.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpamainopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpamainoptnetworkhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt::network.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpamainopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpamainopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpamainopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpamainopto_installhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt::o_install.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpamainopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpamainopto_vnchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt::o_vnc.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpamainrescuehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::rescue.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpamainvideomodehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::videomode.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpanavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/navi.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallplmainhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallplmainbitshtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::bits.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallplmaindriverupdatehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::driverupdate.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallplmainfailsafehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::failsafe.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallplmainfirmwarehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::firmware.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallplmainharddiskhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::harddisk.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallplmainhelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallplmaininstall_srchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::install_src.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallplmainkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallplmainlinuxhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::linux.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallplmainmemtesthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::memtest.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallplmainnoacpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::noacpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallplmainnolapichtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::nolapic.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallplmainopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallplmainoptnetworkhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt::network.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallplmainopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallplmainopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallplmainopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallplmainopto_installhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt::o_install.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallplmainopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallplmainopto_vnchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt::o_vnc.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallplmainrescuehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::rescue.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallplmainvideomodehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::videomode.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallplnavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/navi.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallptmainhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallptmainbitshtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::bits.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallptmaindriverupdatehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::driverupdate.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallptmainfailsafehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::failsafe.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallptmainfirmwarehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::firmware.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallptmainharddiskhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::harddisk.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallptmainhelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallptmaininstall_srchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::install_src.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallptmainkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallptmainlinuxhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::linux.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallptmainmemtesthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::memtest.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallptmainnoacpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::noacpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallptmainnolapichtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::nolapic.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallptmainopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallptmainoptnetworkhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt::network.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallptmainopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallptmainopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallptmainopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallptmainopto_installhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt::o_install.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallptmainopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallptmainopto_vnchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt::o_vnc.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallptmainrescuehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::rescue.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallptmainvideomodehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::videomode.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallptnavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/navi.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainbitshtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::bits.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmaindriverupdatehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::driverupdate.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainfailsafehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::failsafe.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainfirmwarehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::firmware.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainharddiskhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::harddisk.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainhelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmaininstall_srchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::install_src.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainlinuxhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::linux.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainmemtesthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::memtest.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainnoacpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::noacpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainnolapichtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::nolapic.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainoptnetworkhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt::network.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainopto_installhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt::o_install.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainopto_vnchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt::o_vnc.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainrescuehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::rescue.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainvideomodehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::videomode.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRnavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/navi.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallromainhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallromainbitshtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::bits.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallromaindriverupdatehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::driverupdate.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallromainfailsafehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::failsafe.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallromainfirmwarehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::firmware.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallromainharddiskhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::harddisk.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallromainhelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallromaininstall_srchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::install_src.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallromainkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallromainlinuxhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::linux.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallromainmemtesthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::memtest.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallromainnoacpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::noacpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallromainnolapichtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::nolapic.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallromainopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallromainoptnetworkhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt::network.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallromainopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallromainopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallromainopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallromainopto_installhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt::o_install.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallromainopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallromainopto_vnchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt::o_vnc.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallromainrescuehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::rescue.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallromainvideomodehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::videomode.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallronavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/navi.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallrumainhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallrumainbitshtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::bits.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallrumaindriverupdatehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::driverupdate.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallrumainfailsafehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::failsafe.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallrumainfirmwarehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::firmware.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallrumainharddiskhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::harddisk.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallrumainhelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallrumaininstall_srchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::install_src.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallrumainkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallrumainlinuxhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::linux.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallrumainmemtesthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::memtest.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallrumainnoacpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::noacpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallrumainnolapichtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::nolapic.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallrumainopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallrumainoptnetworkhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt::network.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallrumainopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallrumainopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallrumainopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallrumainopto_installhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt::o_install.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallrumainopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallrumainopto_vnchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt::o_vnc.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallrumainrescuehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::rescue.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallrumainvideomodehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::videomode.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallrunavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/navi.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallskmainhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallskmainbitshtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::bits.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallskmaindriverupdatehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::driverupdate.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallskmainfailsafehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::failsafe.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallskmainfirmwarehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::firmware.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallskmainharddiskhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::harddisk.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallskmainhelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallskmaininstall_srchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::install_src.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallskmainkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallskmainlinuxhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::linux.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallskmainmemtesthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::memtest.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallskmainnoacpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::noacpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallskmainnolapichtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::nolapic.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallskmainopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallskmainoptnetworkhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt::network.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallskmainopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallskmainopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallskmainopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallskmainopto_installhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt::o_install.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallskmainopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallskmainopto_vnchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt::o_vnc.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallskmainrescuehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::rescue.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallskmainvideomodehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::videomode.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallsknavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/navi.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallsvmainhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallsvmainbitshtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::bits.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallsvmaindriverupdatehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::driverupdate.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallsvmainfailsafehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::failsafe.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallsvmainfirmwarehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::firmware.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallsvmainharddiskhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::harddisk.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallsvmainhelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallsvmaininstall_srchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::install_src.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallsvmainkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallsvmainlinuxhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::linux.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallsvmainmemtesthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::memtest.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallsvmainnoacpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::noacpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallsvmainnolapichtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::nolapic.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallsvmainopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallsvmainoptnetworkhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt::network.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallsvmainopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallsvmainopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallsvmainopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallsvmainopto_installhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt::o_install.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallsvmainopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallsvmainopto_vnchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt::o_vnc.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallsvmainrescuehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::rescue.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallsvmainvideomodehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::videomode.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallsvnavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/navi.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallukmainhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallukmainbitshtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::bits.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallukmaindriverupdatehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::driverupdate.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallukmainfailsafehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::failsafe.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallukmainfirmwarehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::firmware.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallukmainharddiskhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::harddisk.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallukmainhelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallukmaininstall_srchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::install_src.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallukmainkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallukmainlinuxhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::linux.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallukmainmemtesthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::memtest.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallukmainnoacpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::noacpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallukmainnolapichtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::nolapic.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallukmainopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallukmainoptnetworkhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt::network.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallukmainopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallukmainopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallukmainopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallukmainopto_installhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt::o_install.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallukmainopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallukmainopto_vnchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt::o_vnc.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallukmainrescuehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::rescue.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallukmainvideomodehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::videomode.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstalluknavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/navi.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallxhmainhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallxhmainbitshtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::bits.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallxhmaindriverupdatehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::driverupdate.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallxhmainfailsafehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::failsafe.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallxhmainfirmwarehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::firmware.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallxhmainharddiskhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::harddisk.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallxhmainhelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallxhmaininstall_srchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::install_src.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallxhmainkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallxhmainlinuxhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::linux.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallxhmainmemtesthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::memtest.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallxhmainnoacpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::noacpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallxhmainnolapichtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::nolapic.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallxhmainopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallxhmainoptnetworkhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt::network.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallxhmainopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallxhmainopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallxhmainopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallxhmainopto_installhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt::o_install.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallxhmainopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallxhmainopto_vnchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt::o_vnc.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallxhmainrescuehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::rescue.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallxhmainvideomodehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::videomode.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallxhnavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/navi.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainbitshtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::bits.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmaindriverupdatehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::driverupdate.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainfailsafehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::failsafe.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainfirmwarehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::firmware.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainharddiskhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::harddisk.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainhelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmaininstall_srchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::install_src.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainlinuxhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::linux.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainmemtesthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::memtest.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainnoacpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::noacpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainnolapichtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::nolapic.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainoptnetworkhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt::network.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainopto_installhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt::o_install.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainopto_vnchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt::o_vnc.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainrescuehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::rescue.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainvideomodehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::videomode.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNnavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/navi.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainbitshtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::bits.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmaindriverupdatehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::driverupdate.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainfailsafehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::failsafe.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainfirmwarehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::firmware.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainharddiskhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::harddisk.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainhelphtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::help.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmaininstall_srchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::install_src.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainkeytablehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::keytable.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainlinuxhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::linux.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainmemtesthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::memtest.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainnoacpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::noacpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainnolapichtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::nolapic.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainopthtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainoptnetworkhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt::network.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainopto_acpihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt::o_acpi.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainopto_apmhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt::o_apm.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainopto_idehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt::o_ide.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainopto_installhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt::o_install.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainopto_splashhtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt::o_splash.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainopto_vnchtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt::o_vnc.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainrescuehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::rescue.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainvideomodehtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::videomode.html</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWnavihtml">theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/navi.html</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/keymaps/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkkeymapskeymapcs_CZinc">theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.cs_CZ.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkkeymapskeymapda_DKinc">theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.da_DK.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkkeymapskeymapde_DEinc">theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.de_DE.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkkeymapskeymapel_GRinc">theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.el_GR.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkkeymapskeymapes_ESinc">theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.es_ES.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkkeymapskeymapet_EEinc">theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.et_EE.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkkeymapskeymapfr_FRinc">theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.fr_FR.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkkeymapskeymaphu_HUinc">theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.hu_HU.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkkeymapskeymapit_ITinc">theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.it_IT.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkkeymapskeymapja_JPinc">theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.ja_JP.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkkeymapskeymapnb_NOinc">theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.nb_NO.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkkeymapskeymappl_PLinc">theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.pl_PL.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkkeymapskeymappt_BRinc">theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.pt_BR.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkkeymapskeymappt_PTinc">theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.pt_PT.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkkeymapskeymapru_RUinc">theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.ru_RU.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkkeymapskeymapsk_SKinc">theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.sk_SK.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkkeymapskeymapsl_SIinc">theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.sl_SI.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkkeymapskeymapsv_SEinc">theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.sv_SE.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkkeymapskeymaptr_TRinc">theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.tr_TR.inc</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/po/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpoMakefile">theme/trunk/mageia-gfxboot-theme/trunk/po/Makefile</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpoREADME">theme/trunk/mageia-gfxboot-theme/trunk/po/README</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpoafpo">theme/trunk/mageia-gfxboot-theme/trunk/po/af.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpoarpo">theme/trunk/mageia-gfxboot-theme/trunk/po/ar.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpoastpo">theme/trunk/mageia-gfxboot-theme/trunk/po/ast.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpobgpo">theme/trunk/mageia-gfxboot-theme/trunk/po/bg.po</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/po/bin/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpobinadd_text">theme/trunk/mageia-gfxboot-theme/trunk/po/bin/add_text</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpobinarabictxt">theme/trunk/mageia-gfxboot-theme/trunk/po/bin/arabic.txt</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpobinfixpot">theme/trunk/mageia-gfxboot-theme/trunk/po/bin/fixpot</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpobinpo2txt">theme/trunk/mageia-gfxboot-theme/trunk/po/bin/po2txt</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpobinrm_text">theme/trunk/mageia-gfxboot-theme/trunk/po/bin/rm_text</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpobnpo_disabled">theme/trunk/mageia-gfxboot-theme/trunk/po/bn.po_disabled</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpobootloaderpot">theme/trunk/mageia-gfxboot-theme/trunk/po/bootloader.pot</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpobrpo">theme/trunk/mageia-gfxboot-theme/trunk/po/br.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpobspo">theme/trunk/mageia-gfxboot-theme/trunk/po/bs.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpocapo">theme/trunk/mageia-gfxboot-theme/trunk/po/ca.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpocspo">theme/trunk/mageia-gfxboot-theme/trunk/po/cs.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpocypo">theme/trunk/mageia-gfxboot-theme/trunk/po/cy.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpodapo">theme/trunk/mageia-gfxboot-theme/trunk/po/da.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpodepo">theme/trunk/mageia-gfxboot-theme/trunk/po/de.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpoelpo">theme/trunk/mageia-gfxboot-theme/trunk/po/el.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpoeopo">theme/trunk/mageia-gfxboot-theme/trunk/po/eo.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpoespo">theme/trunk/mageia-gfxboot-theme/trunk/po/es.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpoetpo">theme/trunk/mageia-gfxboot-theme/trunk/po/et.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpoeupo">theme/trunk/mageia-gfxboot-theme/trunk/po/eu.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpofipo">theme/trunk/mageia-gfxboot-theme/trunk/po/fi.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpofrpo">theme/trunk/mageia-gfxboot-theme/trunk/po/fr.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpoglpo">theme/trunk/mageia-gfxboot-theme/trunk/po/gl.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpogupo">theme/trunk/mageia-gfxboot-theme/trunk/po/gu.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpohipo">theme/trunk/mageia-gfxboot-theme/trunk/po/hi.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpohrpo">theme/trunk/mageia-gfxboot-theme/trunk/po/hr.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpohupo">theme/trunk/mageia-gfxboot-theme/trunk/po/hu.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpoidpo">theme/trunk/mageia-gfxboot-theme/trunk/po/id.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpoispo">theme/trunk/mageia-gfxboot-theme/trunk/po/is.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpoitpo">theme/trunk/mageia-gfxboot-theme/trunk/po/it.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpojapo">theme/trunk/mageia-gfxboot-theme/trunk/po/ja.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpokapo">theme/trunk/mageia-gfxboot-theme/trunk/po/ka.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpokopo">theme/trunk/mageia-gfxboot-theme/trunk/po/ko.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpokypo">theme/trunk/mageia-gfxboot-theme/trunk/po/ky.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpoltpo">theme/trunk/mageia-gfxboot-theme/trunk/po/lt.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpoltgpo">theme/trunk/mageia-gfxboot-theme/trunk/po/ltg.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpomkpo">theme/trunk/mageia-gfxboot-theme/trunk/po/mk.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpomrpo">theme/trunk/mageia-gfxboot-theme/trunk/po/mr.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpomspo">theme/trunk/mageia-gfxboot-theme/trunk/po/ms.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkponbpo">theme/trunk/mageia-gfxboot-theme/trunk/po/nb.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkponlpo">theme/trunk/mageia-gfxboot-theme/trunk/po/nl.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkponnpo">theme/trunk/mageia-gfxboot-theme/trunk/po/nn.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpopapo">theme/trunk/mageia-gfxboot-theme/trunk/po/pa.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpoplpo">theme/trunk/mageia-gfxboot-theme/trunk/po/pl.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpoptpo">theme/trunk/mageia-gfxboot-theme/trunk/po/pt.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpopt_BRpo">theme/trunk/mageia-gfxboot-theme/trunk/po/pt_BR.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkporopo">theme/trunk/mageia-gfxboot-theme/trunk/po/ro.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkporupo">theme/trunk/mageia-gfxboot-theme/trunk/po/ru.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkposkpo">theme/trunk/mageia-gfxboot-theme/trunk/po/sk.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkposlpo">theme/trunk/mageia-gfxboot-theme/trunk/po/sl.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkposrpo">theme/trunk/mageia-gfxboot-theme/trunk/po/sr.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkposrLatnpo">theme/trunk/mageia-gfxboot-theme/trunk/po/sr@Latn.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkposvpo">theme/trunk/mageia-gfxboot-theme/trunk/po/sv.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpotapo">theme/trunk/mageia-gfxboot-theme/trunk/po/ta.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpothpo_disabled">theme/trunk/mageia-gfxboot-theme/trunk/po/th.po_disabled</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpotrpo">theme/trunk/mageia-gfxboot-theme/trunk/po/tr.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpoukpo">theme/trunk/mageia-gfxboot-theme/trunk/po/uk.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpouzpo">theme/trunk/mageia-gfxboot-theme/trunk/po/uz.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpouzcyrillicpo">theme/trunk/mageia-gfxboot-theme/trunk/po/uz@cyrillic.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpowapo">theme/trunk/mageia-gfxboot-theme/trunk/po/wa.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpoxhpo">theme/trunk/mageia-gfxboot-theme/trunk/po/xh.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpozh_CNpo">theme/trunk/mageia-gfxboot-theme/trunk/po/zh_CN.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpozh_TWpo">theme/trunk/mageia-gfxboot-theme/trunk/po/zh_TW.po</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunkpozupo">theme/trunk/mageia-gfxboot-theme/trunk/po/zu.po</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/src/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunksrcMakefile">theme/trunk/mageia-gfxboot-theme/trunk/src/Makefile</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunksrcbsplashinc">theme/trunk/mageia-gfxboot-theme/trunk/src/bsplash.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunksrcbuttoninc">theme/trunk/mageia-gfxboot-theme/trunk/src/button.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunksrccommoninc">theme/trunk/mageia-gfxboot-theme/trunk/src/common.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunksrcdia_aboutinc">theme/trunk/mageia-gfxboot-theme/trunk/src/dia_about.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunksrcdia_bitsinc">theme/trunk/mageia-gfxboot-theme/trunk/src/dia_bits.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunksrcdia_dudinc">theme/trunk/mageia-gfxboot-theme/trunk/src/dia_dud.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunksrcdia_helpinc">theme/trunk/mageia-gfxboot-theme/trunk/src/dia_help.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunksrcdia_installinc">theme/trunk/mageia-gfxboot-theme/trunk/src/dia_install.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunksrcdia_kerneloptsinc">theme/trunk/mageia-gfxboot-theme/trunk/src/dia_kernelopts.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunksrcdia_keymapinc">theme/trunk/mageia-gfxboot-theme/trunk/src/dia_keymap.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunksrcdia_langinc">theme/trunk/mageia-gfxboot-theme/trunk/src/dia_lang.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunksrcdia_profileinc">theme/trunk/mageia-gfxboot-theme/trunk/src/dia_profile.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunksrcdia_videoinc">theme/trunk/mageia-gfxboot-theme/trunk/src/dia_video.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunksrchelpinc">theme/trunk/mageia-gfxboot-theme/trunk/src/help.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunksrckeytablesinc">theme/trunk/mageia-gfxboot-theme/trunk/src/keytables.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunksrclocaleinc">theme/trunk/mageia-gfxboot-theme/trunk/src/locale.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunksrcmainbc">theme/trunk/mageia-gfxboot-theme/trunk/src/main.bc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunksrcmenuinc">theme/trunk/mageia-gfxboot-theme/trunk/src/menu.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunksrcpanelinc">theme/trunk/mageia-gfxboot-theme/trunk/src/panel.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunksrcserialinc">theme/trunk/mageia-gfxboot-theme/trunk/src/serial.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunksrcspeechinc">theme/trunk/mageia-gfxboot-theme/trunk/src/speech.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunksrcsysteminc">theme/trunk/mageia-gfxboot-theme/trunk/src/system.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunksrctimeoutinc">theme/trunk/mageia-gfxboot-theme/trunk/src/timeout.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunksrcwindowinc">theme/trunk/mageia-gfxboot-theme/trunk/src/window.inc</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunksrcxmenuinc">theme/trunk/mageia-gfxboot-theme/trunk/src/xmenu.inc</a></li>
+<li>theme/trunk/mageia-gfxboot-theme/trunk/talk/</li>
+<li><a href="#themetrunkmageiagfxbootthemetrunktalkMakefile">theme/trunk/mageia-gfxboot-theme/trunk/talk/Makefile</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunktalkentlk">theme/trunk/mageia-gfxboot-theme/trunk/talk/en.tlk</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunktalkpo2talk">theme/trunk/mageia-gfxboot-theme/trunk/talk/po2talk</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunktalkscc">theme/trunk/mageia-gfxboot-theme/trunk/talk/sc.c</a></li>
+<li><a href="#themetrunkmageiagfxbootthemetrunktalktalkpo">theme/trunk/mageia-gfxboot-theme/trunk/talk/talk.po</a></li>
+</ul>
+
+</div>
+<div id="patch"><pre>
+<a id="themetrunkmageiagfxbootthemetrunkMakefile">Added: theme/trunk/mageia-gfxboot-theme/trunk/Makefile</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/Makefile (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/Makefile 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,106 @@
++BINDIR := $(shell [ -x ../../gfxboot-compile ] &amp;&amp; echo ../../ )
++
++BASED_ON = $(shell perl -ne 'print if s/^based_on=//' config)
++
++ifeq ($(BASED_ON),)
++PREPARED = 1
++else
++PREPARED = $(shell [ -f .prepared ] &amp;&amp; echo 1)
++endif
++
++ADDDIR = gfxboot-adddir
++BFLAGS = -O -v -L ../..
++
++SUBDIRS = fonts help-boot help-install po src
++
++IN_CPIO_INSTALL = init $(notdir $(wildcard fonts/*.fnt)) $(notdir $(wildcard po/*.tr))
++
++DEFAULT_LANG =
++
++.PHONY: all clean distclean themes $(SUBDIRS)
++
++ifeq ($(PREPARED), 1)
++
++ all: bootlogo message
++
++else
++
++ all:
++ $(ADDDIR) ../$(BASED_ON) .
++ make clean
++ touch .prepared
++ make
++
++endif
++
++themes: all
++
++%/.ready: %
++ make -C $*
++
++src/main.bin: src
++ make -C src
++
++bootlogo: src/main.bin help-install/.ready po/.ready fonts/.ready
++ @rm -rf bootlogo.dir
++ @mkdir bootlogo.dir
++ cp -rL data-install/* fonts/*.fnt po/*.tr bootlogo.dir
++ cp -rL help-install/*.hlp bootlogo.dir
++ cp src/main.bin bootlogo.dir/init
++ifdef DEFAULT_LANG
++ @echo $(DEFAULT_LANG) &gt;bootlogo.dir/lang
++endif
++ @sh -c 'cd bootlogo.dir; chmod +t * ; chmod -t init langs'
++ @sh -c 'cd bootlogo.dir; echo $(IN_CPIO_INSTALL) | sed -e &quot;s/ /\n/g&quot; | cpio --quiet -o &gt;../bootlogo'
++ @cd bootlogo.dir; rm $(IN_CPIO_INSTALL)
++
++message: src/main.bin help-boot/.ready po/.ready fonts/.ready
++ @rm -rf message.dir
++ @mkdir message.dir
++ cp -rL data-boot/* fonts/*.fnt message.dir
++ cp -rL po/*.tr help-boot/*.hlp message.dir
++ cp src/main.bin message.dir/init
++ifdef DEFAULT_LANG
++ cp -rL po/$(DEFAULT_LANG).tr help-boot/$(DEFAULT_LANG).hlp message.dir
++ @echo $(DEFAULT_LANG) &gt;message.dir/lang
++ @echo $(DEFAULT_LANG) &gt;&gt;message.dir/langs
++endif
++ @sh -c 'cd message.dir; echo * | sed -e &quot;s/ /\n/g&quot; | cpio --quiet -o &gt;../message'
++ @rm -r message.dir
++
++clean:
++ @for i in $(SUBDIRS) ; do [ ! -f $$i/Makefile ] || make -C $$i clean || break ; done
++ rm -rf bootlogo bootlogo.dir message message.dir *~
++
++distclean: clean
++ifneq ($(BASED_ON),)
++ rm -f .prepared
++ rm -f `find -type l \! -wholename ./Makefile`
++ rmdir `find -depth -type d \! -name . \! -name .svn \! -wholename './.svn/*' \! -wholename './*/.svn/*'` 2&gt;/dev/null || true
++endif
++
++
++NAME = mageia-gfxboot-theme
++UPSTREAM_VERSION = 4.1.19
++VERSION = $(UPSTREAM_VERSION).21
++
++dist:
++ rm -rf ../$(NAME)-$(VERSION).tar*
++ @if [ -e &quot;.svn&quot; ]; then \
++ $(MAKE) dist-svn; \
++ elif [ -e &quot;.git&quot; ]; then \
++ $(MAKE) dist-git; \
++ else \
++ echo &quot;Unknown SCM (not SVN nor GIT)&quot;;\
++ exit 1; \
++ fi;
++ $(info $(NAME)-$(VERSION).tar.lzma is ready)
++
++dist-svn:
++ rm -rf $(NAME)-$(VERSION)
++ svn export -q -rBASE . $(NAME)-$(VERSION)
++ tar cfY ../$(NAME)-$(VERSION).tar.lzma $(NAME)-$(VERSION)
++ rm -rf $(NAME)-$(VERSION)
++
++dist-git:
++ @git archive --prefix=$(NAME)-$(VERSION)/ HEAD | lzma &gt;../$(NAME)-$(VERSION).tar.lzma;
+
+
+Property changes on: theme/trunk/mageia-gfxboot-theme/trunk/Makefile
+___________________________________________________________________
+<a id="svneolstyle">Added: svn:eol-style</a>
+ + native
+
+<a id="themetrunkmageiagfxbootthemetrunkconfig">Added: theme/trunk/mageia-gfxboot-theme/trunk/config</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/config (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/config 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,2 @@
++product=Mageia alpha 1
++based_on=
+
+<a id="themetrunkmageiagfxbootthemetrunkdatabootbackjpg">Added: theme/trunk/mageia-gfxboot-theme/trunk/data-boot/back.jpg</a>
+===================================================================
+(Binary files differ)
+
+
+Property changes on: theme/trunk/mageia-gfxboot-theme/trunk/data-boot/back.jpg
+___________________________________________________________________
+<a id="svnmimetype">Added: svn:mime-type</a>
+ + image/jpeg
+
+<a id="themetrunkmageiagfxbootthemetrunkdatabootgfxbootcfg">Added: theme/trunk/mageia-gfxboot-theme/trunk/data-boot/gfxboot.cfg</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/data-boot/gfxboot.cfg (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/data-boot/gfxboot.cfg 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,132 @@
++; Sections are read in the order given in base::layout, with section 'base'
++; implicitly added at the end. If a config value is given more than once,
++; the first entry wins.
++;
++; If a screen resolution can't be set, 640x480 is used as fallback (and
++; section '640x480' added to the layout list).
++;
++; If the penguin screen is active, section 'penguin' is automatically added
++; to the layout list.
++;
++; Color values: 24 bit RGB (e.g. 0xff0000 = red).
++;
++
++[base]
++; theme name
++theme=Mageia
++; other sections to read
++layout=800x600,boot
++; activate speech output
++talk=0
++; sound volume (0..100)
++volume=70
++; menu background transparency (0..255)
++menu.transparency=0x20
++; default font
++font.normal=16x16.fnt
++; main menu font
++font.large=16x16.fnt
++; background image
++background=back.jpg
++; max. visible main menu items
++mainmenu.entries=11
++; minimal main menu selection bar width
++mainmenu.bar.minwidth=400
++; main menu selection bar transparency (0..255)
++mainmenu.bar.transparency=100
++; main menu colors
++mainmenu.bar.color=0xffffff
++mainmenu.normal.fg=0xffffff
++mainmenu.selected.fg=0x000000
++; boot option colors
++bootopt.label.fg=0xffffff
++bootopt.text.fg=0xffffff
++; progress bar color
++progress.bar.color=0x21449c
++; menu colors
++menu.normal.bg=0xeff3f7
++menu.normal.fg=0x000000
++menu.selected.bg=0x6c6c6c
++menu.selected.fg=0xffffff
++; window colors
++window.bg=0xeff3f7
++window.fg=0x000000
++window.title.bg=0x21449c
++window.title.fg=0xffffff
++window.title.error.bg=0xc00000
++; help system colors
++help.link.fg=0x0000a0
++help.link.selected.fg=0xffffff
++help.link.selected.bg=0x0000a0
++help.highlight.fg=0x21449c
++; panel colors
++panel.fg=0xffffff
++panel.title.fg=0xffffff
++panel.f-key.fg=0x33358c
++; default keymap (e.g. de_DE, czech)
++keymap=
++; replace underscores ('_') with space in menu entries
++_2space=1
++
++[800x600]
++; screen size
++screen.size=800,600
++; upper left corner
++mainmenu.pos=210,235
++; boot option input field position
++bootopt.pos=200,540
++
++[640x480]
++; screen size
++screen.size=640,480
++; upper left corner
++mainmenu.pos=130,122
++; boot option input field position
++bootopt.pos=263,380
++
++[install]
++; show welcome animation
++welcome=1
++; beep when menu is ready
++beep=1
++; main menu item shown only if iso is tagged for media check
++mediacheck=mediachk
++; main menu items where user can't add boot options
++nobootoptions=harddisk,memtest
++; main menu items that are not passed an 'install' parameter
++noinstallopt=harddisk,firmware,memtest
++; default driver update (one of: yes, no, file, url; default: no)
++dud=
++; if 'dud=file': file name on DVD
++dud.file=
++; if 'dud=url': URL
++dud.url=
++; if 'dud=url': menu item name (default = 'URL')
++dud.url.name=
++; serial line setup (up to four lines)
++; format: port,baud,dev
++; - port: 0-3: first four BIOS serial lines (COM1-COM4); &gt;=4: I/O port (0x3f8)
++; - baud: baud rate (e.g. 115200); 0 = autodetect (considers baud rates &gt;= 9600)
++; - dev: linux device name (e.g. ttyS0)
++; - all lines are set up with 8 bits, no parity, 1 stop bit
++; - if the bootloader also has a serial line setup, the port is
++; automatically used
++serial.line0=0,0,ttyS0
++serial.line1=1,0,ttyS1
++serial.line2=
++serial.line3=
++; show keymap menu as submenu in lang dialog
++keymap.submenu=1
++; show keymap in main menu
++keymap.mainmenu=0
++
++[boot]
++; show welcome animation
++welcome=0
++; beep when menu is ready
++beep=0
++; show keymap menu as submenu in lang dialog
++keymap.submenu=0
++; show keymap in main menu
++keymap.mainmenu=0
++
+
+<a id="themetrunkmageiagfxbootthemetrunkdatabootlangs">Added: theme/trunk/mageia-gfxboot-theme/trunk/data-boot/langs</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/data-boot/langs (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/data-boot/langs 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++link ../data-install/langs
+\ No newline at end of file
+
+
+Property changes on: theme/trunk/mageia-gfxboot-theme/trunk/data-boot/langs
+___________________________________________________________________
+<a id="svnspecial">Added: svn:special</a>
+ + *
+
+<a id="themetrunkmageiagfxbootthemetrunkdataboottimer_ajpg">Added: theme/trunk/mageia-gfxboot-theme/trunk/data-boot/timer_a.jpg</a>
+===================================================================
+(Binary files differ)
+
+
+Property changes on: theme/trunk/mageia-gfxboot-theme/trunk/data-boot/timer_a.jpg
+___________________________________________________________________
+Added: svn:mime-type
+ + image/jpeg
+
+<a id="themetrunkmageiagfxbootthemetrunkdatainstallbackjpg">Added: theme/trunk/mageia-gfxboot-theme/trunk/data-install/back.jpg</a>
+===================================================================
+(Binary files differ)
+
+
+Property changes on: theme/trunk/mageia-gfxboot-theme/trunk/data-install/back.jpg
+___________________________________________________________________
+Added: svn:mime-type
+ + image/jpeg
+
+<a id="themetrunkmageiagfxbootthemetrunkdatainstallgfxbootcfg">Added: theme/trunk/mageia-gfxboot-theme/trunk/data-install/gfxboot.cfg</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/data-install/gfxboot.cfg (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/data-install/gfxboot.cfg 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,132 @@
++; Sections are read in the order given in base::layout, with section 'base'
++; implicitly added at the end. If a config value is given more than once,
++; the first entry wins.
++;
++; If a screen resolution can't be set, 640x480 is used as fallback (and
++; section '640x480' added to the layout list).
++;
++; If the penguin screen is active, section 'penguin' is automatically added
++; to the layout list.
++;
++; Color values: 24 bit RGB (e.g. 0xff0000 = red).
++;
++
++[base]
++; theme name
++theme=Mageia
++; other sections to read
++layout=800x600,install
++; activate speech output
++talk=0
++; sound volume (0..100)
++volume=70
++; menu background transparency (0..255)
++menu.transparency=0x20
++; default font
++font.normal=16x16.fnt
++; main menu font
++font.large=16x16.fnt
++; background image
++background=back.jpg
++; max. visible main menu items
++mainmenu.entries=11
++; minimal main menu selection bar width
++mainmenu.bar.minwidth=400
++; main menu selection bar transparency (0..255)
++mainmenu.bar.transparency=100
++; main menu colors
++mainmenu.bar.color=0xffffff
++mainmenu.normal.fg=0xffffff
++mainmenu.selected.fg=0x000000
++; boot option colors
++bootopt.label.fg=0xffffff
++bootopt.text.fg=0xffffff
++; progress bar color
++progress.bar.color=0x21449c
++; menu colors
++menu.normal.bg=0xeff3f7
++menu.normal.fg=0x000000
++menu.selected.bg=0x6c6c6c
++menu.selected.fg=0xffffff
++; window colors
++window.bg=0xeff3f7
++window.fg=0x000000
++window.title.bg=0x21449c
++window.title.fg=0xffffff
++window.title.error.bg=0xc00000
++; help system colors
++help.link.fg=0x0000a0
++help.link.selected.fg=0xffffff
++help.link.selected.bg=0x0000a0
++help.highlight.fg=0x21449c
++; panel colors
++panel.fg=0xffffff
++panel.title.fg=0xffffff
++panel.f-key.fg=0x33358c
++; default keymap (e.g. de_DE, czech)
++keymap=
++; replace underscores ('_') with space in menu entries
++_2space=1
++
++[800x600]
++; screen size
++screen.size=800,600
++; upper left corner
++mainmenu.pos=210,235
++; boot option input field position
++bootopt.pos=200,540
++
++[640x480]
++; screen size
++screen.size=640,480
++; upper left corner
++mainmenu.pos=130,122
++; boot option input field position
++bootopt.pos=263,380
++
++[install]
++; show welcome animation
++welcome=1
++; beep when menu is ready
++beep=1
++; main menu item shown only if iso is tagged for media check
++mediacheck=mediachk
++; main menu items where user can't add boot options
++nobootoptions=harddisk,memtest
++; main menu items that are not passed an 'install' parameter
++noinstallopt=harddisk,firmware,memtest
++; default driver update (one of: yes, no, file, url; default: no)
++dud=
++; if 'dud=file': file name on DVD
++dud.file=
++; if 'dud=url': URL
++dud.url=
++; if 'dud=url': menu item name (default = 'URL')
++dud.url.name=
++; serial line setup (up to four lines)
++; format: port,baud,dev
++; - port: 0-3: first four BIOS serial lines (COM1-COM4); &gt;=4: I/O port (0x3f8)
++; - baud: baud rate (e.g. 115200); 0 = autodetect (considers baud rates &gt;= 9600)
++; - dev: linux device name (e.g. ttyS0)
++; - all lines are set up with 8 bits, no parity, 1 stop bit
++; - if the bootloader also has a serial line setup, the port is
++; automatically used
++serial.line0=0,0,ttyS0
++serial.line1=1,0,ttyS1
++serial.line2=
++serial.line3=
++; show keymap menu as submenu in lang dialog
++keymap.submenu=1
++; show keymap in main menu
++keymap.mainmenu=0
++
++[boot]
++; show welcome animation
++welcome=0
++; beep when menu is ready
++beep=1
++; show keymap menu as submenu in lang dialog
++keymap.submenu=0
++; show keymap in main menu
++keymap.mainmenu=0
++
+
+<a id="themetrunkmageiagfxbootthemetrunkdatainstalllangs">Added: theme/trunk/mageia-gfxboot-theme/trunk/data-install/langs</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/data-install/langs (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/data-install/langs 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,60 @@
++af_ZA
++ar_EG
++bn_BD
++bs_BA
++bg_BG
++ca_ES
++cs_CZ
++cy_GB
++da_DK
++de_DE
++et_EE
++en_GB
++en_US
++es_ES
++fa_IR
++fr_FR
++gl_ES
++ka_GE
++gu_IN
++el_GR
++hi_IN
++id_ID
++hr_HR
++it_IT
++he_IL
++ja_JP
++jv_ID
++km_KH
++ko_KR
++ky_KG
++lo_LA
++lt_LT
++mr_IN
++hu_HU
++mk_MK
++nl_NL
++nb_NO
++nn_NO
++pl_PL
++pt_PT
++pt_BR
++pa_IN
++ro_RO
++ru_RU
++zh_CN
++si_LK
++sk_SK
++sl_SI
++sr_CS
++fi_FI
++sv_SE
++ta_IN
++th_TH
++zh_TW
++vi_VN
++tr_TR
++uk_UA
++wa_BE
++xh_ZA
++zu_ZA
+
+<a id="themetrunkmageiagfxbootthemetrunkdatainstalltextjpg">Added: theme/trunk/mageia-gfxboot-theme/trunk/data-install/text.jpg</a>
+===================================================================
+(Binary files differ)
+
+
+Property changes on: theme/trunk/mageia-gfxboot-theme/trunk/data-install/text.jpg
+___________________________________________________________________
+Added: svn:mime-type
+ + image/jpeg
+
+<a id="themetrunkmageiagfxbootthemetrunkdatainstalltimer_ajpg">Added: theme/trunk/mageia-gfxboot-theme/trunk/data-install/timer_a.jpg</a>
+===================================================================
+(Binary files differ)
+
+
+Property changes on: theme/trunk/mageia-gfxboot-theme/trunk/data-install/timer_a.jpg
+___________________________________________________________________
+Added: svn:mime-type
+ + image/jpeg
+
+<a id="themetrunkmageiagfxbootthemetrunkdatainstallwelcomejpg">Added: theme/trunk/mageia-gfxboot-theme/trunk/data-install/welcome.jpg</a>
+===================================================================
+(Binary files differ)
+
+
+Property changes on: theme/trunk/mageia-gfxboot-theme/trunk/data-install/welcome.jpg
+___________________________________________________________________
+Added: svn:mime-type
+ + image/jpeg
+
+<a id="themetrunkmageiagfxbootthemetrunkfonts16x16fnt">Added: theme/trunk/mageia-gfxboot-theme/trunk/fonts/16x16.fnt</a>
+===================================================================
+(Binary files differ)
+
+
+Property changes on: theme/trunk/mageia-gfxboot-theme/trunk/fonts/16x16.fnt
+___________________________________________________________________
+Added: svn:mime-type
+ + application/octet-stream
+
+<a id="themetrunkmageiagfxbootthemetrunkfonts16x16fntlog">Added: theme/trunk/mageia-gfxboot-theme/trunk/fonts/16x16.fnt.log</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/fonts/16x16.fnt.log (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/fonts/16x16.fnt.log 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,55897 @@
++Font List
++ NachlieliCLM-Bold (ok)
++ File /usr/share/fonts/Type1/NachlieliCLM-Bold.pfa
++ Size 14
++ c 0x0590-0x05ff
++ KacstOne (ok)
++ File /usr/share/fonts/truetype/KacstOne.ttf
++ Size 14, dY 2
++ c 0x0600-0x06ff
++ c 0xfe70-0xfefc
++ MuktiNarrow (ok)
++ File /usr/share/fonts/truetype/MuktiNarrow.ttf
++ Size 18
++ c 0x0981-0x09fa
++ lohit_hi (ok)
++ File /usr/share/fonts/truetype/lohit_hi.ttf
++ Size 18
++ c 0x0901-0x0970
++ lohit_pa (ok)
++ File /usr/share/fonts/truetype/lohit_pa.ttf
++ Size 19
++ c 0x0a01-0x0a74
++ lohit_gu (ok)
++ File /usr/share/fonts/truetype/lohit_gu.ttf
++ Size 18
++ c 0x0a81-0x0af1
++ TSCu_Paranar (ok)
++ File /usr/share/fonts/truetype/TSCu_Paranar.ttf
++ Size 18, dY 2
++ c 0x0b82-0x0bfa
++ lklug (ok)
++ File /usr/share/fonts/truetype/lklug.ttf
++ Size 17, dY 1
++ c 0x0d82-0x0df4
++ Loma (ok)
++ File /usr/share/fonts/truetype/Loma.ttf
++ Size 17, dY -2
++ c 0x0e01-0x0e7f
++ Loma (ok)
++ File /usr/share/fonts/truetype/Loma.ttf
++ Size 17, dY -2
++ c 0x0e81-0x0eff
++ KhmerOS_sys (ok)
++ File /usr/share/fonts/truetype/KhmerOS_sys.ttf
++ Size 16, dY -2
++ c 0x1780-0x17f9
++ DejaVuSans-Bold (ok)
++ File /usr/share/fonts/truetype/DejaVuSans-Bold.ttf
++ Size 14
++ wenquanyi_12pt.pcf (ok)
++ File /usr/share/fonts/misc/wenquanyi_12pt.pcf
++ Size 16
++ gulim (ok)
++ File /usr/share/fonts/truetype/gulim.ttf
++ Size 17
++
++Missing Chars
++ 0x0009
++ 0x001b-0x001c
++ 0x0081-0x009f
++ 0x2029
++
++Font Size
++ Height: 22
++ Baseline: 5
++ Line Height: 18
++
++Char 0x0020 ' '
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 0 x 0
++ Advance: 5
++ Offset: 0 x 0
++ _____
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ -&gt;|.....|&lt;-
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ -----
++
++Char 0x0021 '!'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 2 x 10
++ Advance: 6
++ Offset: 2 x 0
++ ______
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |..##..|
++ |..##..|
++ |..##..|
++ |..##..|
++ |..##..|
++ |..cc..|
++ |..aa..|
++ |.. ..|
++ |..##..|
++ -&gt;|..##..|&lt;-
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ ------
++
++Char 0x0022 '&quot;'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 5 x 4
++ Advance: 7
++ Offset: 1 x 6
++ _______
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -&gt;|.......|&lt;-
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -------
++
++Char 0x0023 '#'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 10
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |. 4#3 c8 .|
++ |. 7# 1#5 .|
++ |. ab 4#2 .|
++ |.2#########.|
++ |. 4#2 #8 .|
++ |. 8# 2#4 .|
++ |.#########2.|
++ |. 2#5 aa .|
++ |. 5#2 #7 .|
++ -&gt;|. 8# 3#4 .|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x0024 '$'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 13
++ Advance: 10
++ Offset: 2 x -2
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.. # .|
++ |.. # .|
++ |.. 8c#b4 .|
++ |..9#3#18 .|
++ |..##1# .|
++ |..c#c#51 .|
++ |..5#####5.|
++ |.. 26###c.|
++ |.. #1##.|
++ |..a4 #2#a.|
++ -&gt;|..39##c91.|&lt;-
++ |.. # .|
++ |.. # .|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0025 '%'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 13 x 10
++ Advance: 14
++ Offset: 1 x 0
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |.1a#a1 5##2 |
++ |.a#4#a 2##5 |
++ |.## ## b#8 |
++ |.## ## 8#b |
++ |.a#4#94##4a#a1|
++ |.1a#a3##5a#4#a|
++ |. a#8 ## ##|
++ |. 7#b ## ##|
++ |. 3##2 a#4#9|
++ -&gt;|. 1c#5 1a#a1|&lt;-
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ --------------
++
++Char 0x0026 '&amp;'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 10
++ Advance: 13
++ Offset: 1 x 0
++ _____________
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |. 19##a4 .|
++ |. b#3 39 .|
++ |. ##2 .|
++ |. 1##b1 .|
++ |.1c#8#c1 #c.|
++ |.a#5 5#c21#9.|
++ |.## 5#c8#4.|
++ |.c#1 5##b .|
++ |.5#a2 28##a .|
++ -&gt;|. 3a###b56#7.|&lt;-
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ -------------
++
++Char 0x0027 '''
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 2 x 4
++ Advance: 4
++ Offset: 1 x 6
++ ____
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ -&gt;|....|&lt;-
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ ----
++
++Char 0x0028 '('
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 4 x 12
++ Advance: 6
++ Offset: 1 x -1
++ ______
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |. 6#9.|
++ |. c#2.|
++ |.4#9 .|
++ |.9#5 .|
++ |.c#1 .|
++ |.## .|
++ |.## .|
++ |.c#1 .|
++ |.9#5 .|
++ |.5#9 .|
++ -&gt;|. c#2.|&lt;-
++ |. 6#9.|
++ |......|
++ |......|
++ |......|
++ |......|
++ ------
++
++Char 0x0029 ')'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 4 x 12
++ Advance: 6
++ Offset: 1 x -1
++ ______
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |.9#6 .|
++ |.2#c .|
++ |. 9#4.|
++ |. 5#9.|
++ |. 1#c.|
++ |. ##.|
++ |. ##.|
++ |. 1#c.|
++ |. 5#9.|
++ |. 9#4.|
++ -&gt;|.2#c .|&lt;-
++ |.9#6 .|
++ |......|
++ |......|
++ |......|
++ |......|
++ ------
++
++Char 0x002a '*'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 7
++ Advance: 7
++ Offset: 0 x 3
++ _______
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ | # |
++ |86 # 68|
++ |5cb#bc5|
++ | 1c#c1 |
++ |5cb#bc5|
++ |86 # 68|
++ | # |
++ |.......|
++ |.......|
++ -&gt;|.......|&lt;-
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -------
++
++Char 0x002b '+'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 8
++ Advance: 12
++ Offset: 2 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |..########..|
++ |..########..|
++ |.. ## ..|
++ |.. ## ..|
++ -&gt;|.. ## ..|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x002c ','
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 3 x 5
++ Advance: 5
++ Offset: 0 x -2
++ _____
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ | ##..|
++ | ##..|
++ -&gt;|1#b..|&lt;-
++ |6#1..|
++ |b5 ..|
++ |.....|
++ |.....|
++ |.....|
++ -----
++
++Char 0x002d '-'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 4 x 2
++ Advance: 6
++ Offset: 1 x 3
++ ______
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |.####.|
++ |.####.|
++ |......|
++ |......|
++ -&gt;|......|&lt;-
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ ------
++
++Char 0x002e '.'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 2 x 3
++ Advance: 5
++ Offset: 1 x 0
++ _____
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.##..|
++ |.##..|
++ -&gt;|.##..|&lt;-
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ -----
++
++Char 0x002f '/'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 5 x 12
++ Advance: 5
++ Offset: 0 x -2
++ _____
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ | 8b|
++ | c7|
++ | 3#3|
++ | 7# |
++ | b9 |
++ | 1#5 |
++ | 5#1 |
++ | 9b |
++ | #7 |
++ -&gt;|3#3 |&lt;-
++ |7c |
++ |b8 |
++ |.....|
++ |.....|
++ |.....|
++ -----
++
++Char 0x0030 '0'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 2a##a2 .|
++ |.1#a11a#1.|
++ |.8#3 3#8.|
++ |.c# 1#b.|
++ |.## ##.|
++ |.## ##.|
++ |.c#1 1#b.|
++ |.8#3 3#8.|
++ |.1#a11a#1.|
++ -&gt;|. 2a##a2 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0031 '1'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 10
++ Advance: 10
++ Offset: 2 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..3a## ..|
++ |..a3## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ -&gt;|..######..|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0032 '2'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 10
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.39c#c7 ..|
++ |.a4 8#7..|
++ |. #c..|
++ |. 1##..|
++ |. 9#b..|
++ |. 8##4..|
++ |. 8##3 ..|
++ |. 7##3 ..|
++ |.7##4 ..|
++ -&gt;|.#######..|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0033 '3'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.39c##b71.|
++ |.a41 17#a.|
++ |. ##.|
++ |. 17#8.|
++ |. ####b1.|
++ |. 29#9.|
++ |. 1##.|
++ |. 1#c.|
++ |.a41 19#6.|
++ -&gt;|.39c#ca4 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0034 '4'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 4c## .|
++ |. 2c2## .|
++ |. b5 ## .|
++ |. 97 ## .|
++ |.7a ## .|
++ |.c1 ## .|
++ |.########.|
++ |. ## .|
++ |. ## .|
++ -&gt;|. ## .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0035 '5'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.####### .|
++ |.## .|
++ |.## .|
++ |.####c93 .|
++ |.a41 3b#4.|
++ |. 2#b.|
++ |. ##.|
++ |. 2#b.|
++ |.a51 2b#4.|
++ -&gt;|.39c##a3 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0036 '6'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 7c#b4 .|
++ |. bb2 29 .|
++ |.6#2 .|
++ |.b#a##b5 .|
++ |.##9 9#6.|
++ |.##1 1#c.|
++ |.c# ##.|
++ |.8#1 1#b.|
++ |.1#9 9#4.|
++ -&gt;|. 29##b4 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0037 '7'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.########.|
++ |. 3#c.|
++ |. a#6.|
++ |. 2## .|
++ |. 9#7 .|
++ |. 2##1 .|
++ |. 9#7 .|
++ |. 2##1 .|
++ |. 8#8 .|
++ -&gt;|. 1##1 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0038 '8'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.18c##c81.|
++ |.a#6 6#a.|
++ |.## ##.|
++ |.9#6 6#9.|
++ |. b####b .|
++ |.8#8 8#8.|
++ |.## ##.|
++ |.## ##.|
++ |.8#8 8#8.|
++ -&gt;|. 7b##b7 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0039 '9'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 4b##92 .|
++ |.4#9119#1.|
++ |.b#1 1#8.|
++ |.## #c.|
++ |.c#1 1##.|
++ |.6#9 9##.|
++ |. 5b##a#b.|
++ |. 3#6.|
++ |. 92 2bb .|
++ -&gt;|. 4b#c7 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x003a ':'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 2 x 8
++ Advance: 6
++ Offset: 1 x 0
++ ______
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |.##...|
++ |.##...|
++ |.##...|
++ |. ...|
++ |. ...|
++ |.##...|
++ |.##...|
++ -&gt;|.##...|&lt;-
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ ------
++
++Char 0x003b ';'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 3 x 10
++ Advance: 6
++ Offset: 0 x -2
++ ______
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ | ##...|
++ | ##...|
++ | ##...|
++ | ...|
++ | ...|
++ | ##...|
++ | ##...|
++ -&gt;|1#b...|&lt;-
++ |6#1...|
++ |b5 ...|
++ |......|
++ |......|
++ |......|
++ ------
++
++Char 0x003c '&lt;'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 8
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |. 16b..|
++ |. 5a##c..|
++ |. 49##c73 ..|
++ |.##c83 ..|
++ |.##c73 ..|
++ |. 49##c73 ..|
++ |. 15a##c..|
++ -&gt;|. 16b..|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x003d '='
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 6
++ Advance: 12
++ Offset: 1 x 2
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |.#########..|
++ |.#########..|
++ |. ..|
++ |. ..|
++ |.#########..|
++ |.#########..|
++ |............|
++ -&gt;|............|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x003e '&gt;'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 8
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |.b61 ..|
++ |.c##a5 ..|
++ |. 37c##94 ..|
++ |. 37c##..|
++ |. 37c##..|
++ |. 37c##94 ..|
++ |.c##a51 ..|
++ -&gt;|.b61 ..|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x003f '?'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 10
++ Advance: 8
++ Offset: 1 x 0
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |.3a##91.|
++ |.93 4#a.|
++ |. 1##.|
++ |. a#9.|
++ |. 1b#9 .|
++ |. 9#8 .|
++ |. ## .|
++ |. .|
++ |. ## .|
++ -&gt;|. ## .|&lt;-
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ --------
++
++Char 0x0040 '@'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 12 x 12
++ Advance: 14
++ Offset: 1 x -2
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |. 5a##b71 .|
++ |. 1b93 27c4 .|
++ |. b6 2c2.|
++ |.69 1a#9## 69.|
++ |.b3 9#45## 1c.|
++ |.# ## ## #.|
++ |.# ## ## 3b.|
++ |.b3 9#45##2b3.|
++ |.69 1a#9##a3 .|
++ -&gt;|. b6 .|&lt;-
++ |. 1b93 279 .|
++ |. 5a##c82 .|
++ |..............|
++ |..............|
++ |..............|
++ --------------
++
++Char 0x0041 'A'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 10
++ Advance: 11
++ Offset: 0 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ | 1###1 |
++ | 6###6 |
++ | c#4#b |
++ | 3#a a#3 |
++ | 9#4 4#9 |
++ | 1#c c#1 |
++ | 6#######6 |
++ | c#1 1#c |
++ |3#a a#3|
++ -&gt;|9#4 4#9|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0042 'B'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.#####c81.|
++ |.## 6#a.|
++ |.## ##.|
++ |.## 6#a.|
++ |.#######2.|
++ |.## 7#9.|
++ |.## ##.|
++ |.## ##.|
++ |.## 7#9.|
++ -&gt;|.#####c81.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0043 'C'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 10
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |. 39c##c9.|
++ |. 7#82 14a.|
++ |.5#9 .|
++ |.a#2 .|
++ |.## .|
++ |.## .|
++ |.a#2 .|
++ |.5#9 .|
++ |. 7#82 14a.|
++ -&gt;|. 39c##ca.|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0044 'D'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 10
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |.####c94 .|
++ |.## 29#8 .|
++ |.## 9#5.|
++ |.## 2#a.|
++ |.## ##.|
++ |.## ##.|
++ |.## 2#a.|
++ |.## 9#5.|
++ |.## 29#8 .|
++ -&gt;|.####c94 .|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0045 'E'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 10
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.#######.|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.#######.|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ -&gt;|.#######.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0046 'F'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 10
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.#######.|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.#######.|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ -&gt;|.## .|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0047 'G'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 10
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |. 4ac##c9 .|
++ |. 9#71 14a .|
++ |.5#8 .|
++ |.b#2 .|
++ |.## ####.|
++ |.## ##.|
++ |.a#3 ##.|
++ |.5#9 ##.|
++ |. 8#a3 2##.|
++ -&gt;|. 49c##ca8.|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x0048 'H'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 10
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.#########.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ -&gt;|.## ##.|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0049 'I'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 2 x 10
++ Advance: 4
++ Offset: 1 x 0
++ ____
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ -&gt;|.##.|&lt;-
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ ----
++
++Char 0x004a 'J'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 4 x 13
++ Advance: 4
++ Offset: -1 x -3
++ ____
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ -&gt;| ##.|&lt;-
++ | ##.|
++ | 7#9.|
++ |#c8 .|
++ |.....|
++ |.....|
++ ----
++
++Char 0x004b 'K'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 10
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |.## 3##6 |
++ |.## 3##5 |
++ |.## 4##4 |
++ |.##4##3 |
++ |.####5 |
++ |.##6##3 |
++ |.## 5##4 |
++ |.## 5##4 |
++ |.## 5##5 |
++ -&gt;|.## 4##6|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x004c 'L'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 10
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ -&gt;|.#######.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x004d 'M'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 10
++ Advance: 13
++ Offset: 1 x 0
++ _____________
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.###2 2###.|
++ |.###8 9###.|
++ |.##c#1 1#c##.|
++ |.##6#8 8#6##.|
++ |.## c#2#c ##.|
++ |.## 6#c#6 ##.|
++ |.## c#c ##.|
++ |.## 5#5 ##.|
++ |.## ##.|
++ -&gt;|.## ##.|&lt;-
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ -------------
++
++Char 0x004e 'N'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 10
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |.##8 ##.|
++ |.###3 ##.|
++ |.###b ##.|
++ |.##5#6 ##.|
++ |.## a#1 ##.|
++ |.## 2#a ##.|
++ |.## 7#5##.|
++ |.## bc##.|
++ |.## 3###.|
++ -&gt;|.## 8##.|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x004f 'O'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 10
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |. 6b##b6 .|
++ |. a#6 6#a .|
++ |.6#7 7#6.|
++ |.b#2 2#b.|
++ |.## ##.|
++ |.## ##.|
++ |.b#2 2#b.|
++ |.6#7 7#6.|
++ |. a#5 6#a .|
++ -&gt;|. 6b##b6 .|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x0050 'P'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.#####b6 .|
++ |.## 19#6.|
++ |.## 1#c.|
++ |.## ##.|
++ |.## 2#c.|
++ |.## 19#6.|
++ |.#####b6 .|
++ |.## .|
++ |.## .|
++ -&gt;|.## .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0051 'Q'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 12
++ Advance: 12
++ Offset: 1 x -2
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |. 6b##b6 .|
++ |. a#6 6#a .|
++ |.6#7 7#6.|
++ |.b#2 2#b.|
++ |.## ##.|
++ |.## ##.|
++ |.b#2 2#b.|
++ |.6#8 8#6.|
++ |. a#6 6#b .|
++ -&gt;|. 6b###8 .|&lt;-
++ |. 4#c2 .|
++ |. 6#c1.|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x0052 'R'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 10
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.#####c8 |
++ |.## 18#9 |
++ |.## ## |
++ |.## #c |
++ |.## 18#8 |
++ |.######c |
++ |.## 2a#5 |
++ |.## 1#c |
++ |.## 9#4|
++ -&gt;|.## 4#a|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0053 'S'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 7c##cb .|
++ |.8#5 4a .|
++ |.c# .|
++ |.##b74 .|
++ |.4c####91.|
++ |. 38c##a.|
++ |. 7##.|
++ |. #c.|
++ |.b52 5#7.|
++ -&gt;|.9b###b6 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0054 'T'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.########.|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ -&gt;|. ## .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0055 'U'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 10
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.c#1 1#c.|
++ |.6#91 19#6.|
++ -&gt;|. 5a###a5 .|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0056 'V'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 10
++ Advance: 11
++ Offset: 0 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |b#3 3#b|
++ |5#8 8#5|
++ | ## ## |
++ | 8#6 6#8 |
++ | 3#b b#3 |
++ | b#3 3#b |
++ | 6#8 9#6 |
++ | 1##2##1 |
++ | 9#b#9 |
++ -&gt;| 4###4 |&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0057 'W'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 15 x 10
++ Advance: 15
++ Offset: 0 x 0
++ _______________
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |1#c 7#8 c#1|
++ | c#2 b#b 2#c |
++ | 8#5 1###1 5#8 |
++ | 5#8 5#a#5 8#5 |
++ | 1#b 9#2#9 b#1 |
++ | c#1#a a#1#c |
++ | 8#7#6 6#7#8 |
++ | 5###2 2###5 |
++ | 1##c b##2 |
++ -&gt;| c#7 7#c |&lt;-
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ ---------------
++
++Char 0x0058 'X'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 10
++ Advance: 10
++ Offset: 0 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |9#a 9#9|
++ | c#3 3#c |
++ | 3#b b#3 |
++ | 7#55#7 |
++ | bccb |
++ | 1cbbc1 |
++ | 9#33#9 |
++ | 4#a a#4 |
++ |1c#2 2#c1|
++ -&gt;|9#9 9#9|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0059 'Y'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 10
++ Advance: 10
++ Offset: 0 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |9#9 9#9|
++ | c#3 3#c |
++ | 3#a a#3 |
++ | 8#44#8 |
++ | bccb |
++ | 2##2 |
++ | ## |
++ | ## |
++ | ## |
++ -&gt;| ## |&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x005a 'Z'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 10
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |.#########.|
++ |. 6##.|
++ |. 5##3.|
++ |. 5##3 .|
++ |. 5##4 .|
++ |. 4##4 .|
++ |. 4##4 .|
++ |.4##4 .|
++ |.##4 .|
++ -&gt;|.#########.|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x005b '['
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 4 x 12
++ Advance: 6
++ Offset: 1 x -1
++ ______
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |.####.|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ -&gt;|.## .|&lt;-
++ |.####.|
++ |......|
++ |......|
++ |......|
++ |......|
++ ------
++
++Char 0x005c '\'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 5 x 12
++ Advance: 5
++ Offset: 0 x -2
++ _____
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |b8 |
++ |7c |
++ |3#3 |
++ | #7 |
++ | 9b |
++ | 5#1 |
++ | 1#5 |
++ | b9 |
++ | 7# |
++ -&gt;| 3#3|&lt;-
++ | c7|
++ | 8b|
++ |.....|
++ |.....|
++ |.....|
++ -----
++
++Char 0x005d ']'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 4 x 12
++ Advance: 6
++ Offset: 1 x -1
++ ______
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |.####.|
++ |. ##.|
++ |. ##.|
++ |. ##.|
++ |. ##.|
++ |. ##.|
++ |. ##.|
++ |. ##.|
++ |. ##.|
++ |. ##.|
++ -&gt;|. ##.|&lt;-
++ |.####.|
++ |......|
++ |......|
++ |......|
++ |......|
++ ------
++
++Char 0x005e '^'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 4
++ Advance: 12
++ Offset: 1 x 6
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |. a#a ..|
++ |. 9###9 ..|
++ |. 8#8 8#8 ..|
++ |.7#5 5#7..|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ -&gt;|............|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x005f '_'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 1
++ Advance: 7
++ Offset: 0 x -3
++ _______
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -&gt;|.......|&lt;-
++ |.......|
++ |.......|
++ |#######|
++ |.......|
++ |.......|
++ -------
++
++Char 0x0060 '`'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 4 x 3
++ Advance: 7
++ Offset: 1 x 9
++ _______
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.7#4 ..|
++ |. 9c1..|
++ |. a9..|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -&gt;|.......|&lt;-
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -------
++
++Char 0x0061 'a'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 8
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. 6##c8 .|
++ |. 62 5#8.|
++ |. #c.|
++ |.29#####.|
++ |.b#5 ##.|
++ |.## 2##.|
++ |.b#4 9##.|
++ -&gt;|.2b#c5##.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0062 'b'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 11
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.##5b#c5 .|
++ |.##a11a#4.|
++ |.##2 2#a.|
++ |.## ##.|
++ |.## ##.|
++ |.##2 2#a.|
++ |.##a11a#4.|
++ -&gt;|.##5b#c5 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0063 'c'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 8
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. 29c#b4.|
++ |.2#c3 29.|
++ |.a#3 .|
++ |.## .|
++ |.## .|
++ |.a#3 .|
++ |.3#c3 28.|
++ -&gt;|. 29c#b4.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0064 'd'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 11
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. ##.|
++ |. ##.|
++ |. ##.|
++ |. 5c#b5##.|
++ |.4#a11a##.|
++ |.a#2 2##.|
++ |.## ##.|
++ |.## ##.|
++ |.a#2 2##.|
++ |.4#a11a##.|
++ -&gt;|. 5c#b5##.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0065 'e'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 8
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 3a##b4 .|
++ |.3#a1 8#5.|
++ |.a#2 #b.|
++ |.########.|
++ |.## .|
++ |.a#4 .|
++ |.3#b2 15a.|
++ -&gt;|. 29c#c93.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0066 'f'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 5 x 11
++ Advance: 6
++ Offset: 1 x 0
++ ______
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |. 4c##|
++ |. c#2 |
++ |. ## |
++ |.#####|
++ |. ## |
++ |. ## |
++ |. ## |
++ |. ## |
++ |. ## |
++ |. ## |
++ -&gt;|. ## |&lt;-
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ ------
++
++Char 0x0067 'g'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 11
++ Advance: 10
++ Offset: 1 x -3
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 4c#b5##.|
++ |.4#a11a##.|
++ |.a#2 3##.|
++ |.## ##.|
++ |.## ##.|
++ |.a#2 3##.|
++ |.4#a11a##.|
++ -&gt;|. 4c#b5##.|&lt;-
++ |. 2#b.|
++ |. 92 1a#5.|
++ |. 4b##a4 .|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0068 'h'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 11
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.##4a##a2.|
++ |.##b2 6#a.|
++ |.##2 ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ -&gt;|.## ##.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0069 'i'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 2 x 11
++ Advance: 4
++ Offset: 1 x 0
++ ____
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |.##.|
++ |.##.|
++ |. .|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ -&gt;|.##.|&lt;-
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ ----
++
++Char 0x006a 'j'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 4 x 14
++ Advance: 4
++ Offset: -1 x -3
++ ____
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ | ##.|
++ | ##.|
++ | .|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ -&gt;| ##.|&lt;-
++ | ##.|
++ | 4#b.|
++ |##b2.|
++ |.....|
++ |.....|
++ ----
++
++Char 0x006b 'k'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 11
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.## |
++ |.## |
++ |.## |
++ |.## 3##6 |
++ |.## 3##5 |
++ |.##4##4 |
++ |.####4 |
++ |.##5#b1 |
++ |.## 5#c2 |
++ |.## 5#c2 |
++ -&gt;|.## 5##3|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ---------
++
++Char 0x006c 'l'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 2 x 11
++ Advance: 4
++ Offset: 1 x 0
++ ____
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ -&gt;|.##.|&lt;-
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ ----
++
++Char 0x006d 'm'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 12 x 8
++ Advance: 14
++ Offset: 1 x 0
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |.##5c#b47c#a2.|
++ |.##9 4##9 4#b.|
++ |.##1 ##1 ##.|
++ |.## ## ##.|
++ |.## ## ##.|
++ |.## ## ##.|
++ |.## ## ##.|
++ -&gt;|.## ## ##.|&lt;-
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ --------------
++
++Char 0x006e 'n'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 8
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.##4a##a2.|
++ |.##b2 6#a.|
++ |.##2 ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ -&gt;|.## ##.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x006f 'o'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 8
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 3a##a3 .|
++ |.3#a11a#3.|
++ |.a#2 2#a.|
++ |.## ##.|
++ |.## ##.|
++ |.a#2 2#a.|
++ |.3#a11a#3.|
++ -&gt;|. 3a##a3 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0070 'p'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 11
++ Advance: 10
++ Offset: 1 x -3
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.##5b#c5 .|
++ |.##a11a#4.|
++ |.##2 2#a.|
++ |.## ##.|
++ |.## ##.|
++ |.##2 2#a.|
++ |.##a11a#4.|
++ -&gt;|.##5b#c5 .|&lt;-
++ |.## .|
++ |.## .|
++ |.## .|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0071 'q'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 11
++ Advance: 10
++ Offset: 1 x -3
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 5c#b5##.|
++ |.4#a11a##.|
++ |.a#2 2##.|
++ |.## ##.|
++ |.## ##.|
++ |.a#2 2##.|
++ |.4#a11a##.|
++ -&gt;|. 5c#b5##.|&lt;-
++ |. ##.|
++ |. ##.|
++ |. ##.|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0072 'r'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 8
++ Advance: 7
++ Offset: 1 x 0
++ _______
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.##4a##|
++ |.##a2 |
++ |.##2 |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ -&gt;|.## |&lt;-
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -------
++
++Char 0x0073 's'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 8
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.19c#c93.|
++ |.b#4 14a.|
++ |.##3 .|
++ |.b###b71.|
++ |.18c###b.|
++ |. 4##.|
++ |.a41 3#a.|
++ -&gt;|.39c#c91.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0074 't'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 5 x 10
++ Advance: 6
++ Offset: 0 x 0
++ ______
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ | ## .|
++ | ## .|
++ |#####.|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | c#2 .|
++ -&gt;| 5c##.|&lt;-
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ ------
++
++Char 0x0075 'u'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 8
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## 2##.|
++ |.b#6 2a##.|
++ -&gt;|.2a##b4##.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0076 'v'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 8
++ Advance: 9
++ Offset: 0 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |b#4 4#b|
++ |5#9 9#5|
++ | ##1 1## |
++ | 8#6 6#8 |
++ | 3#b b#3 |
++ | b#5#b |
++ | 6###6 |
++ -&gt;| 1###1 |&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0077 'w'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 12 x 8
++ Advance: 14
++ Offset: 1 x 0
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |.b#2 cc 2#b.|
++ |.7#6 2##2 6#7.|
++ |.3#9 6##6 9#3.|
++ |. ## a##a ## .|
++ |. a#3#99#3#a .|
++ |. 6#a#55#a#6 .|
++ |. 2###11###2 .|
++ -&gt;|. c#b a#c .|&lt;-
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ --------------
++
++Char 0x0078 'x'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 8
++ Advance: 9
++ Offset: 0 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |8#b b#8|
++ | b#5 5#b |
++ | 2#c2c#1 |
++ | 4#c#4 |
++ | 6#c#6 |
++ | 2#c1c#2 |
++ | b#5 4#b |
++ -&gt;|8#a a#8|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0079 'y'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 11
++ Advance: 9
++ Offset: 0 x -3
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |b#4 3#b|
++ |5#9 8#6|
++ | c# c#1|
++ | 7#5 2#a |
++ | 1#a 7#5 |
++ | 9#1b# |
++ | 4#8#9 |
++ -&gt;| c##4 |&lt;-
++ | 6#c |
++ | 9#7 |
++ | a#c7 |
++ |.........|
++ |.........|
++ ---------
++
++Char 0x007a 'z'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 8
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.#######.|
++ |. 4##.|
++ |. 4##4.|
++ |. 4##4 .|
++ |. 4##3 .|
++ |.4##3 .|
++ |.##3 .|
++ -&gt;|.#######.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x007b '{'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 13
++ Advance: 10
++ Offset: 2 x -2
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.. 4c##..|
++ |.. c#4 ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. 5#b ..|
++ |..###4 ..|
++ |.. 5#b ..|
++ |.. ## ..|
++ |.. ## ..|
++ -&gt;|.. ## ..|&lt;-
++ |.. c#4 ..|
++ |.. 4c##..|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x007c '|'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 2 x 14
++ Advance: 5
++ Offset: 2 x -3
++ _____
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |..##.|
++ |..##.|
++ |..##.|
++ |..##.|
++ |..##.|
++ |..##.|
++ |..##.|
++ |..##.|
++ |..##.|
++ |..##.|
++ -&gt;|..##.|&lt;-
++ |..##.|
++ |..##.|
++ |..##.|
++ |.....|
++ |.....|
++ -----
++
++Char 0x007d '}'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 13
++ Advance: 10
++ Offset: 2 x -2
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..##c4 ..|
++ |.. 4#c ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. b#5 ..|
++ |.. 4###..|
++ |.. b#5 ..|
++ |.. ## ..|
++ |.. ## ..|
++ -&gt;|.. ## ..|&lt;-
++ |.. 4#c ..|
++ |..##c4 ..|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x007e '~'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 3
++ Advance: 12
++ Offset: 1 x 3
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |.3a#c72 3a..|
++ |.#########..|
++ |.a2 27c#a3..|
++ |............|
++ |............|
++ -&gt;|............|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x007f ''
++ Font: gulim (17)
++ Bitmap: 0 x 0
++ Advance: 17
++ Offset: 0 x 0
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x0080 '€'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 8 x 12
++ Advance: 9
++ Offset: 0 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ | #### .|
++ | ## ##.|
++ | ## .|
++ | ## .|
++ |###### .|
++ | ## .|
++ |###### .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## ##.|
++ -&gt;| #### .|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x00a0 ' '
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 0 x 0
++ Advance: 5
++ Offset: 0 x 0
++ _____
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ -&gt;|.....|&lt;-
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ -----
++
++Char 0x00a1 '¡'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 2 x 10
++ Advance: 6
++ Offset: 2 x 0
++ ______
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |..##..|
++ |..##..|
++ |.. ..|
++ |..aa..|
++ |..cc..|
++ |..##..|
++ |..##..|
++ |..##..|
++ |..##..|
++ -&gt;|..##..|&lt;-
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ ------
++
++Char 0x00a2 '¢'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 12
++ Advance: 10
++ Offset: 1 x -2
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. # ...|
++ |. # ...|
++ |. 5c#c5...|
++ |.5#b#18...|
++ |.b#3# ...|
++ |.## # ...|
++ |.## # ...|
++ |.a#3# ...|
++ |.4#b#17...|
++ -&gt;|. 4b#c5...|&lt;-
++ |. # ...|
++ |. # ...|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x00a3 '£'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 10
++ Offset: 0 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ | 18c#b4..|
++ | 9#7 18..|
++ | ## ..|
++ | ## ..|
++ | ###### ..|
++ | ## ..|
++ | ## ..|
++ | ## ..|
++ | ## ..|
++ -&gt;|########..|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x00a4 '¤'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 8
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.65 56|
++ |.5#b##b#5|
++ |. b9119b |
++ |. #1 1# |
++ |. #1 1# |
++ |. b9119b |
++ |.5#b##b#5|
++ -&gt;|.75 56|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x00a5 '¥'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.9#9 9#9.|
++ |.1##44##1.|
++ |. 5#cc#5 .|
++ |.########.|
++ |. 1##1 .|
++ |.########.|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ -&gt;|. ## .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x00a7 '§'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 11
++ Advance: 7
++ Offset: 1 x -1
++ _______
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |. 3b##b |
++ |. c#219 |
++ |. ##6 |
++ |. 8##b5 |
++ |.8#87c#8|
++ |.##1 1##|
++ |.9#c67#9|
++ |. 6c##9 |
++ |. 7#c |
++ -&gt;|. 921#c |&lt;-
++ |. b##b3 |
++ |........|
++ |........|
++ |........|
++ |........|
++ -------
++
++Char 0x00a8 '¨'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 5 x 2
++ Advance: 7
++ Offset: 1 x 9
++ _______
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.## ##.|
++ |.## ##.|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -&gt;|.......|&lt;-
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -------
++
++Char 0x00a9 '©'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 10
++ Advance: 14
++ Offset: 2 x 0
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |.. 4a##a4 ..|
++ |.. 7b4 4b7 ..|
++ |..4b18c#c b4..|
++ |..a488118 4a..|
++ |..# # #..|
++ |..# # #..|
++ |..a488 4a..|
++ |..4b18c#c b4..|
++ |.. 7b4 4b7 ..|
++ -&gt;|.. 4a##a4 ..|&lt;-
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ --------------
++
++Char 0x00aa 'ª'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 8
++ Advance: 8
++ Offset: 1 x 2
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |.ac##92.|
++ |. 4#b.|
++ |.3b####.|
++ |.c#32##.|
++ |.##17##.|
++ |.5c#7##.|
++ |. .|
++ |.#####c.|
++ |........|
++ -&gt;|........|&lt;-
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ --------
++
++Char 0x00ab '«'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 6
++ Advance: 9
++ Offset: 1 x 1
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. 8 8..|
++ |.1ac1ac..|
++ |.ca1ca1..|
++ |.ca1ca1..|
++ |.1ac1ac..|
++ |. 8 8..|
++ -&gt;|.........|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x00ac '¬'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 4
++ Advance: 12
++ Offset: 1 x 2
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |.#########..|
++ |.#########..|
++ |. ##..|
++ |. ##..|
++ |............|
++ -&gt;|............|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x00ad '­'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 4 x 2
++ Advance: 6
++ Offset: 1 x 3
++ ______
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |.####.|
++ |.####.|
++ |......|
++ |......|
++ -&gt;|......|&lt;-
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ ------
++
++Char 0x00ae '®'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 10
++ Advance: 14
++ Offset: 2 x 0
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |.. 4a##a4 ..|
++ |.. 7b4 4b7 ..|
++ |..4b ###7 b4..|
++ |..a4 # 4# 4a..|
++ |..# ###7 #..|
++ |..# #2#7 #..|
++ |..a4 # 6b 4a..|
++ |..4b # #3b4..|
++ |.. 7b4 4b7 ..|
++ -&gt;|.. 4a##a4 ..|&lt;-
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ --------------
++
++Char 0x00af '¯'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 4 x 1
++ Advance: 7
++ Offset: 2 x 9
++ _______
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |..####.|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -&gt;|.......|&lt;-
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -------
++
++Char 0x00b0 '°'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 5 x 5
++ Advance: 7
++ Offset: 1 x 5
++ _______
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.1a#a1.|
++ |.a6 6a.|
++ |.# #.|
++ |.a6 6a.|
++ |.2a#a1.|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -&gt;|.......|&lt;-
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -------
++
++Char 0x00b1 '±'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 8
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |. ## .|
++ |. ## .|
++ |.##########.|
++ |.##########.|
++ |. ## .|
++ |. ## .|
++ |.##########.|
++ -&gt;|.##########.|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x00b2 '²'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 5 x 6
++ Advance: 6
++ Offset: 1 x 4
++ ______
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |.a##c4|
++ |.812##|
++ |. 2#a|
++ |. 2ca |
++ |.5#9 |
++ |.#####|
++ |......|
++ |......|
++ |......|
++ -&gt;|......|&lt;-
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ ------
++
++Char 0x00b3 '³'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 5 x 6
++ Advance: 6
++ Offset: 1 x 4
++ ______
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |.b##c6|
++ |. 3#c|
++ |. ##c3|
++ |. 3#b|
++ |.7 3#c|
++ |.b##b4|
++ |......|
++ |......|
++ |......|
++ -&gt;|......|&lt;-
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ ------
++
++Char 0x00b4 '´'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 4 x 3
++ Advance: 7
++ Offset: 3 x 9
++ _______
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |... 4#7|
++ |...1c9 |
++ |...9a |
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -&gt;|.......|&lt;-
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -------
++
++Char 0x00b5 'µ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 11
++ Advance: 10
++ Offset: 1 x -3
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.## ## |
++ |.## ## |
++ |.## ## |
++ |.## ## |
++ |.## ## |
++ |.## ## |
++ |.##7 7##1|
++ -&gt;|.##b##b8##|&lt;-
++ |.## |
++ |.## |
++ |.## |
++ |..........|
++ |..........|
++ ----------
++
++Char 0x00b6 '¶'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 11
++ Advance: 9
++ Offset: 1 x -1
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. 7c###..|
++ |.8### #..|
++ |.#### #..|
++ |.#### #..|
++ |.8### #..|
++ |. 7c# #..|
++ |. # #..|
++ |. # #..|
++ |. # #..|
++ -&gt;|. # #..|&lt;-
++ |. # #..|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x00b7 '·'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 2 x 3
++ Advance: 5
++ Offset: 1 x 3
++ _____
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.##..|
++ |.##..|
++ |.##..|
++ |.....|
++ |.....|
++ -&gt;|.....|&lt;-
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ -----
++
++Char 0x00b8 '¸'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 3 x 3
++ Advance: 7
++ Offset: 2 x -3
++ _______
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -&gt;|.......|&lt;-
++ |.. 48..|
++ |.. 1#..|
++ |..##8..|
++ |.......|
++ |.......|
++ -------
++
++Char 0x00b9 '¹'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 5 x 6
++ Advance: 6
++ Offset: 0 x 4
++ ______
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |ca## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ####.|
++ |......|
++ |......|
++ |......|
++ -&gt;|......|&lt;-
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ ------
++
++Char 0x00ba 'º'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 8
++ Advance: 8
++ Offset: 1 x 2
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |. 9##9 .|
++ |.9#44#9.|
++ |.## ##.|
++ |.## ##.|
++ |.9#44#9.|
++ |.19##9 .|
++ |. .|
++ |.9####9.|
++ |........|
++ -&gt;|........|&lt;-
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ --------
++
++Char 0x00bb '»'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 6
++ Advance: 9
++ Offset: 1 x 1
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.8 8 ..|
++ |.ca1ca1..|
++ |.1ac1ac..|
++ |.1ac1ac..|
++ |.ca1ca1..|
++ |.8 8 ..|
++ -&gt;|.........|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x00bd '½'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 14 x 11
++ Advance: 15
++ Offset: 0 x -1
++ _______________
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |ca## 9#a .|
++ | ## 3##2 .|
++ | ## b#8 .|
++ | ## 4## .|
++ | ## c#6 .|
++ | ####6#b a##c4.|
++ | 1##4 812##.|
++ | 8#a 2#a.|
++ | 2##2 2ca .|
++ -&gt;| a#8 5#9 .|&lt;-
++ | #####.|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ ---------------
++
++Char 0x00bf '¿'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 10
++ Advance: 8
++ Offset: 1 x 0
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |. ## .|
++ |. ## .|
++ |. .|
++ |. ## .|
++ |. 8#9 .|
++ |. 9#b1 .|
++ |.9#a .|
++ |.##1 .|
++ |.a#4 39.|
++ -&gt;|.19##a4.|&lt;-
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ --------
++
++Char 0x00c0 'À'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 14
++ Advance: 11
++ Offset: 0 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ | 7#1 |
++ | 99 |
++ | |
++ | |
++ | 1###1 |
++ | 6###6 |
++ | c#4#b |
++ | 3#a a#3 |
++ | 9#4 4#9 |
++ | 1#c c#1 |
++ | 6#######6 |
++ | c#1 1#c |
++ |3#a a#3|
++ -&gt;|9#4 4#9|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x00c1 'Á'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 14
++ Advance: 11
++ Offset: 0 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ | 1#7 |
++ | 99 |
++ | |
++ | |
++ | 1###1 |
++ | 6###6 |
++ | c#4#b |
++ | 3#a a#3 |
++ | 9#4 4#9 |
++ | 1#c c#1 |
++ | 6#######6 |
++ | c#1 1#c |
++ |3#a a#3|
++ -&gt;|9#4 4#9|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x00c2 'Â'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 14
++ Advance: 11
++ Offset: 0 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ | b#b |
++ | 89 98 |
++ | |
++ | |
++ | 1###1 |
++ | 6###6 |
++ | c#4#b |
++ | 3#a a#3 |
++ | 9#4 4#9 |
++ | 1#c c#1 |
++ | 6#######6 |
++ | c#1 1#c |
++ |3#a a#3|
++ -&gt;|9#4 4#9|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x00c3 'Ã'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 14
++ Advance: 11
++ Offset: 0 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ | 6#73b |
++ | b27#5 |
++ | |
++ | |
++ | 1###1 |
++ | 6###6 |
++ | c#4#b |
++ | 3#a a#3 |
++ | 9#4 4#9 |
++ | 1#c c#1 |
++ | 6#######6 |
++ | c#1 1#c |
++ |3#a a#3|
++ -&gt;|9#4 4#9|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x00c4 'Ä'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 14
++ Advance: 11
++ Offset: 0 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ | c#3#c |
++ | c#3#c |
++ | |
++ | |
++ | 1###1 |
++ | 6###6 |
++ | c#4#b |
++ | 3#a a#3 |
++ | 9#4 4#9 |
++ | 1#c c#1 |
++ | 6#######6 |
++ | c#1 1#c |
++ |3#a a#3|
++ -&gt;|9#4 4#9|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x00c5 'Å'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 13
++ Advance: 11
++ Offset: 0 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ | 2b#b2 |
++ | c4 4c |
++ | c4 4c |
++ | 6#8#6 |
++ | b# #b |
++ | 2#8 8#2 |
++ | 8#3 4#8 |
++ | c# #c |
++ | 4#8 8#4 |
++ | 9#######9 |
++ |1#c c#1|
++ |6#8 8#6|
++ -&gt;|b#3 3#b|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x00c6 'Æ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 14 x 10
++ Advance: 15
++ Offset: 0 x 0
++ _______________
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ | c#c#######.|
++ | 4#b ## .|
++ | a#5 ## .|
++ | 2#c ## .|
++ | 8#6 #######.|
++ | 1## ## .|
++ | 6####### .|
++ | c#3 ## .|
++ |4#b ## .|
++ -&gt;|a#5 #######.|&lt;-
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ ---------------
++
++Char 0x00c7 'Ç'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 13
++ Advance: 11
++ Offset: 1 x -3
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |. 39c##c9.|
++ |. 7#82 14a.|
++ |.5#9 .|
++ |.a#2 .|
++ |.## .|
++ |.## .|
++ |.a#2 .|
++ |.5#9 .|
++ |. 7#82 14a.|
++ -&gt;|. 39c##ca.|&lt;-
++ |. 48 .|
++ |. 1# .|
++ |. ##8 .|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x00c8 'È'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 14
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |. 7#1 .|
++ |. 99 .|
++ |. .|
++ |. .|
++ |.#######.|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.#######.|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ -&gt;|.#######.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x00c9 'É'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 14
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |. 1#7 .|
++ |. 99 .|
++ |. .|
++ |. .|
++ |.#######.|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.#######.|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ -&gt;|.#######.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x00ca 'Ê'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 14
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |. b#b .|
++ |. 89 98 .|
++ |. .|
++ |. .|
++ |.#######.|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.#######.|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ -&gt;|.#######.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x00cb 'Ë'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 14
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |. ## ## .|
++ |. ## ## .|
++ |. .|
++ |. .|
++ |.#######.|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.#######.|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ -&gt;|.#######.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x00cc 'Ì'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 3 x 14
++ Advance: 4
++ Offset: 0 x 0
++ ____
++ |....|
++ |....|
++ |....|
++ |7#1.|
++ | 99.|
++ | .|
++ | .|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ -&gt;| ##.|&lt;-
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ ----
++
++Char 0x00cd 'Í'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 3 x 14
++ Advance: 4
++ Offset: 1 x 0
++ ____
++ |....|
++ |....|
++ |....|
++ |.1#7|
++ |.99 |
++ |. |
++ |. |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ -&gt;|.## |&lt;-
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ ----
++
++Char 0x00ce 'Î'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 14
++ Advance: 4
++ Offset: -1 x 0
++ ____
++ |......|
++ |......|
++ |......|
++ | 5##5 |
++ |2c33c2|
++ | |
++ | |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ -&gt;| ## |&lt;-
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ ----
++
++Char 0x00cf 'Ï'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 14
++ Advance: 4
++ Offset: -1 x 0
++ ____
++ |......|
++ |......|
++ |......|
++ |## ##|
++ |## ##|
++ | |
++ | |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ -&gt;| ## |&lt;-
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ ----
++
++Char 0x00d0 'Ð'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 10
++ Advance: 11
++ Offset: 0 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ | ####c94 .|
++ | ## 28#8 .|
++ | ## 8#5.|
++ | ## 2#a.|
++ |##### ##.|
++ | ## ##.|
++ | ## 2#a.|
++ | ## 9#5.|
++ | ## 28#8 .|
++ -&gt;| ####c94 .|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x00d1 'Ñ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 14
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |. 7#71# .|
++ |. #27#7 .|
++ |. .|
++ |. .|
++ |.##8 ##.|
++ |.###3 ##.|
++ |.###b ##.|
++ |.##5#6 ##.|
++ |.## a#1 ##.|
++ |.## 2#a ##.|
++ |.## 7#5##.|
++ |.## bc##.|
++ |.## 3###.|
++ -&gt;|.## 8##.|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x00d2 'Ò'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 14
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |. 7#1 .|
++ |. 99 .|
++ |. .|
++ |. .|
++ |. 6b##b6 .|
++ |. a#6 6#a .|
++ |.6#7 7#6.|
++ |.b#2 2#b.|
++ |.## ##.|
++ |.## ##.|
++ |.b#2 2#b.|
++ |.6#7 7#6.|
++ |. a#5 6#a .|
++ -&gt;|. 6b##b6 .|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x00d3 'Ó'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 14
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |. 1#7 .|
++ |. 99 .|
++ |. .|
++ |. .|
++ |. 6b##b6 .|
++ |. a#6 6#a .|
++ |.6#7 7#6.|
++ |.b#2 2#b.|
++ |.## ##.|
++ |.## ##.|
++ |.b#2 2#b.|
++ |.6#7 7#6.|
++ |. a#5 6#a .|
++ -&gt;|. 6b##b6 .|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x00d4 'Ô'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 14
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |. b#b .|
++ |. 89 98 .|
++ |. .|
++ |. .|
++ |. 6b##b6 .|
++ |. a#6 6#a .|
++ |.6#7 7#6.|
++ |.b#2 2#b.|
++ |.## ##.|
++ |.## ##.|
++ |.b#2 2#b.|
++ |.6#7 7#6.|
++ |. a#5 6#a .|
++ -&gt;|. 6b##b6 .|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x00d5 'Õ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 14
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |. 8c2b .|
++ |. b2c8 .|
++ |. .|
++ |. .|
++ |. 6b##b6 .|
++ |. a#6 6#a .|
++ |.6#7 7#6.|
++ |.b#2 2#b.|
++ |.## ##.|
++ |.## ##.|
++ |.b#2 2#b.|
++ |.6#7 7#6.|
++ |. a#5 6#a .|
++ -&gt;|. 6b##b6 .|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x00d6 'Ö'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 14
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |. ## ## .|
++ |. ## ## .|
++ |. .|
++ |. .|
++ |. 6b##b6 .|
++ |. a#6 6#a .|
++ |.6#7 7#6.|
++ |.b#2 2#b.|
++ |.## ##.|
++ |.## ##.|
++ |.b#2 2#b.|
++ |.6#7 7#6.|
++ |. a#5 6#a .|
++ -&gt;|. 6b##b6 .|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x00d7 '×'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 8
++ Advance: 12
++ Offset: 2 x 1
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |..58 85..|
++ |..8#8 8#8..|
++ |.. 8#88#8 ..|
++ |.. 8##8 ..|
++ |.. 8##8 ..|
++ |.. 8#88#8 ..|
++ |..8#8 8#8..|
++ |..58 85..|
++ -&gt;|............|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x00d8 'Ø'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 12 x 12
++ Advance: 12
++ Offset: 0 x -1
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ | 1 |
++ | 4a##a43b1|
++ | 8#6 6##3 |
++ | 4#7 6##5 |
++ | a#2 6#7#a |
++ | c# 6#5 ## |
++ | ## 6#5 #c |
++ | c#8#5 2#a |
++ | 6##5 7#4 |
++ | 4##6 6#8 |
++ -&gt;|2c76b##a4 |&lt;-
++ | 1 |
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x00d9 'Ù'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 14
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |. 7#1 .|
++ |. 99 .|
++ |. .|
++ |. .|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.c#1 1#c.|
++ |.6#91 19#6.|
++ -&gt;|. 5a###a5 .|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x00da 'Ú'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 14
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |. 1#7 .|
++ |. 99 .|
++ |. .|
++ |. .|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.c#1 1#c.|
++ |.6#91 19#6.|
++ -&gt;|. 5a###a5 .|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x00db 'Û'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 14
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |. b#b .|
++ |. 89 98 .|
++ |. .|
++ |. .|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.c#1 1#c.|
++ |.6#91 19#6.|
++ -&gt;|. 5a###a5 .|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x00dc 'Ü'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 14
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |. ## ## .|
++ |. ## ## .|
++ |. .|
++ |. .|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.c#1 1#c.|
++ |.6#91 19#6.|
++ -&gt;|. 5a###a5 .|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x00dd 'Ý'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 14
++ Advance: 10
++ Offset: 0 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ | 1#7 |
++ | 99 |
++ | |
++ | |
++ |9#9 9#9|
++ | c#3 3#c |
++ | 3#a a#3 |
++ | 8#44#8 |
++ | bccb |
++ | 2##2 |
++ | ## |
++ | ## |
++ | ## |
++ -&gt;| ## |&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x00de 'Þ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.## .|
++ |.#####b6 .|
++ |.## 19#6.|
++ |.## 2#c.|
++ |.## ##.|
++ |.## 1#c.|
++ |.## 19#6.|
++ |.#####b6 .|
++ |.## .|
++ -&gt;|.## .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x00df 'ß'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 11
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.18c#c81 .|
++ |.a#6 5#a .|
++ |.## 3## .|
++ |.## 5#b6 .|
++ |.## c#1 .|
++ |.## ##7 .|
++ |.## 9##a1.|
++ |.## 1a##a.|
++ |.## 5##.|
++ |.## 3#b.|
++ -&gt;|.## c##a2.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x00e0 'à'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 12
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. 7#4 .|
++ |. 9c1 .|
++ |. a9 .|
++ |. .|
++ |. 6##c8 .|
++ |. 62 5#8.|
++ |. #c.|
++ |.29#####.|
++ |.b#5 ##.|
++ |.## 2##.|
++ |.b#4 9##.|
++ -&gt;|.2b#c5##.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x00e1 'á'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 12
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. 4#7.|
++ |. 1c9 .|
++ |. 9a .|
++ |. .|
++ |. 6##c8 .|
++ |. 62 5#8.|
++ |. #c.|
++ |.29#####.|
++ |.b#5 ##.|
++ |.## 2##.|
++ |.b#4 9##.|
++ -&gt;|.2b#c5##.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x00e2 'â'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 12
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. 8#8 .|
++ |. 2#7#2 .|
++ |. a7 7a .|
++ |. .|
++ |. 6##c8 .|
++ |. 62 5#8.|
++ |. #c.|
++ |.29#####.|
++ |.b#5 ##.|
++ |.## 2##.|
++ |.b#4 9##.|
++ -&gt;|.2b#c5##.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x00e3 'ã'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 12
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. 7a a .|
++ |. b54b .|
++ |. a a7 .|
++ |. .|
++ |. 6##c8 .|
++ |. 62 5#8.|
++ |. #c.|
++ |.29#####.|
++ |.b#5 ##.|
++ |.## 2##.|
++ |.b#4 9##.|
++ -&gt;|.2b#c5##.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x00e4 'ä'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 11
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. ## ## .|
++ |. ## ## .|
++ |. .|
++ |. 6##c8 .|
++ |. 62 5#8.|
++ |. #c.|
++ |.29#####.|
++ |.b#5 ##.|
++ |.## 2##.|
++ |.b#4 9##.|
++ -&gt;|.2b#c5##.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x00e5 'å'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 13
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. 4cc4 .|
++ |. c33c .|
++ |. c33c .|
++ |. 4cc4 .|
++ |. .|
++ |. 6##c8 .|
++ |. 62 5#8.|
++ |. #c.|
++ |.29#####.|
++ |.b#5 ##.|
++ |.## 2##.|
++ |.b#4 9##.|
++ -&gt;|.2b#c5##.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x00e6 'æ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 14 x 8
++ Advance: 16
++ Offset: 1 x 0
++ ________________
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |. 4###b63a##a3 .|
++ |. 74 6##a1 8#4.|
++ |. ##2 #b.|
++ |.18c###########.|
++ |.a#7 ## .|
++ |.## 4##4 .|
++ |.a#6 2c##c2 15a.|
++ -&gt;|.19##c827b##c83.|&lt;-
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ ----------------
++
++Char 0x00e7 'ç'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 11
++ Advance: 9
++ Offset: 1 x -3
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. 29c#b4.|
++ |.2#c3 29.|
++ |.a#3 .|
++ |.## .|
++ |.## .|
++ |.a#3 .|
++ |.3#c3 28.|
++ -&gt;|. 29c#b4.|&lt;-
++ |. 48 .|
++ |. 1# .|
++ |. ##8 .|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x00e8 'è'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 12
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 7#4 .|
++ |. 9c1 .|
++ |. a9 .|
++ |. .|
++ |. 3a##b4 .|
++ |.3#a1 8#5.|
++ |.a#2 #b.|
++ |.########.|
++ |.## .|
++ |.a#4 .|
++ |.3#b2 15a.|
++ -&gt;|. 29c#c93.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x00e9 'é'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 12
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 4#7 .|
++ |. 1c9 .|
++ |. 9a .|
++ |. .|
++ |. 3a##b4 .|
++ |.3#a1 8#5.|
++ |.a#2 #b.|
++ |.########.|
++ |.## .|
++ |.a#4 .|
++ |.3#b2 15a.|
++ -&gt;|. 29c#c93.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x00ea 'ê'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 12
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 8#8 .|
++ |. 2#7#2 .|
++ |. a7 7a .|
++ |. .|
++ |. 3a##b4 .|
++ |.3#a1 8#5.|
++ |.a#2 #b.|
++ |.########.|
++ |.## .|
++ |.a#4 .|
++ |.3#b2 15a.|
++ -&gt;|. 29c#c93.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x00eb 'ë'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 11
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. ## ## .|
++ |. ## ## .|
++ |. .|
++ |. 3a##b4 .|
++ |.3#a1 8#5.|
++ |.a#2 #b.|
++ |.########.|
++ |.## .|
++ |.a#4 .|
++ |.3#b2 15a.|
++ -&gt;|. 29c#c93.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x00ec 'ì'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 4 x 12
++ Advance: 4
++ Offset: 0 x 0
++ ____
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |7#4 |
++ | 9c1|
++ | a9|
++ | |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ -&gt;| ## |&lt;-
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ ----
++
++Char 0x00ed 'í'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 5 x 12
++ Advance: 4
++ Offset: 1 x 0
++ ____
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |. 4#7|
++ |. 1c9 |
++ |. 9a |
++ |. |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ -&gt;|.## |&lt;-
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ ----
++
++Char 0x00ee 'î'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 12
++ Advance: 4
++ Offset: -1 x 0
++ ____
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ | 1##1 |
++ | 9aa9 |
++ |3c11c3|
++ | |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ -&gt;| ## |&lt;-
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ ----
++
++Char 0x00ef 'ï'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 11
++ Advance: 4
++ Offset: -1 x 0
++ ____
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |## ##|
++ |## ##|
++ | |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ -&gt;| ## |&lt;-
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ ----
++
++Char 0x00f0 'ð'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 11
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 3##5393.|
++ |. 6##c5 .|
++ |. ac9#c1 .|
++ |. 3 9#9 .|
++ |. 6b####4.|
++ |.7#91 5#a.|
++ |.c#1 ##.|
++ |.## ##.|
++ |.b#2 2#b.|
++ |.4#a11a#4.|
++ -&gt;|. 4a##a4 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x00f1 'ñ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 12
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 5c3 # .|
++ |. b3a3b .|
++ |. # 3#5 .|
++ |. .|
++ |.##4a##a2.|
++ |.##b2 6#a.|
++ |.##2 ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ -&gt;|.## ##.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x00f2 'ò'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 12
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 7#4 .|
++ |. 9c1 .|
++ |. a9 .|
++ |. .|
++ |. 3a##a3 .|
++ |.3#a11a#3.|
++ |.a#2 2#a.|
++ |.## ##.|
++ |.## ##.|
++ |.a#2 2#a.|
++ |.3#a11a#3.|
++ -&gt;|. 3a##a3 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x00f3 'ó'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 12
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 4#7 .|
++ |. 1c9 .|
++ |. 9a .|
++ |. .|
++ |. 3a##a3 .|
++ |.3#a11a#3.|
++ |.a#2 2#a.|
++ |.## ##.|
++ |.## ##.|
++ |.a#2 2#a.|
++ |.3#a11a#3.|
++ -&gt;|. 3a##a3 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x00f4 'ô'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 12
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 1##1 .|
++ |. 8aa9 .|
++ |. 2#11c3 .|
++ |. .|
++ |. 3a##a3 .|
++ |.3#a11a#3.|
++ |.a#2 2#a.|
++ |.## ##.|
++ |.## ##.|
++ |.a#2 2#a.|
++ |.3#a11a#3.|
++ -&gt;|. 3a##a3 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x00f5 'õ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 12
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 4#8 3# .|
++ |. b5765b .|
++ |. #2 8#4 .|
++ |. .|
++ |. 3a##a3 .|
++ |.3#a11a#3.|
++ |.a#2 2#a.|
++ |.## ##.|
++ |.## ##.|
++ |.a#2 2#a.|
++ |.3#a11a#3.|
++ -&gt;|. 3a##a3 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x00f6 'ö'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 11
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. ## ## .|
++ |. ## ## .|
++ |. .|
++ |. 3a##a3 .|
++ |.3#a11a#3.|
++ |.a#2 2#a.|
++ |.## ##.|
++ |.## ##.|
++ |.a#2 2#a.|
++ |.3#a11a#3.|
++ -&gt;|. 3a##a3 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x00f7 '÷'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 8
++ Advance: 12
++ Offset: 2 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ..|
++ |..########..|
++ |..########..|
++ |.. ..|
++ |.. ## ..|
++ -&gt;|.. ## ..|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x00f8 'ø'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 10
++ Offset: 1 x -1
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 2.|
++ |. 29##c87.|
++ |.2#a11##4.|
++ |.9#2 8##a.|
++ |.## 6#3##.|
++ |.##4#5 ##.|
++ |.a##7 2#9.|
++ |.5#c11a#2.|
++ -&gt;|.778##92 .|&lt;-
++ |.3 .|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x00f9 'ù'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 12
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 7#4 .|
++ |. 9c1 .|
++ |. a9 .|
++ |. .|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## 2##.|
++ |.b#6 2a##.|
++ -&gt;|.2a##b4##.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x00fa 'ú'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 12
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 4#7.|
++ |. 1c9 .|
++ |. 9a .|
++ |. .|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## 2##.|
++ |.b#6 2a##.|
++ -&gt;|.2a##b4##.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x00fb 'û'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 12
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 1##1 .|
++ |. 9aa9 .|
++ |. 3c11c3 .|
++ |. .|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## 2##.|
++ |.b#6 2a##.|
++ -&gt;|.2a##b4##.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x00fc 'ü'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 11
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. ## ## .|
++ |. ## ## .|
++ |. .|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## 2##.|
++ |.b#6 2a##.|
++ -&gt;|.2a##b4##.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x00fd 'ý'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 15
++ Advance: 9
++ Offset: 0 x -3
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ | 4#7 |
++ | 1c9 |
++ | 9a |
++ | |
++ |b#4 3#b|
++ |5#9 8#6|
++ | c# c#1|
++ | 7#5 2#a |
++ | 1#a 7#5 |
++ | 9#1b# |
++ | 4#8#9 |
++ -&gt;| c##4 |&lt;-
++ | 6#c |
++ | 9#7 |
++ | a#c7 |
++ |.........|
++ |.........|
++ ---------
++
++Char 0x00fe 'þ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 14
++ Advance: 10
++ Offset: 1 x -3
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.##5b#c5 .|
++ |.##a11a#4.|
++ |.##2 2#a.|
++ |.## ##.|
++ |.## ##.|
++ |.##2 2#a.|
++ |.##a11a#4.|
++ -&gt;|.##5b#c5 .|&lt;-
++ |.## .|
++ |.## .|
++ |.## .|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x00ff 'ÿ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 14
++ Advance: 9
++ Offset: 0 x -3
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ | ## ## |
++ | ## ## |
++ | |
++ |b#4 3#b|
++ |5#9 8#6|
++ | c# c#1|
++ | 7#5 2#a |
++ | 1#a 7#5 |
++ | 9#1b# |
++ | 4#8#9 |
++ -&gt;| c##4 |&lt;-
++ | 6#c |
++ | 9#7 |
++ | a#c7 |
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0101 'ā'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 10
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. #### .|
++ |. .|
++ |. 6##c8 .|
++ |. 62 5#8.|
++ |. #c.|
++ |.29#####.|
++ |.b#5 ##.|
++ |.## 2##.|
++ |.b#4 9##.|
++ -&gt;|.2b#c5##.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0102 'Ă'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 13
++ Advance: 11
++ Offset: 0 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ | a5 5a |
++ | 3b#b3 |
++ | |
++ | 1###1 |
++ | 6###6 |
++ | c#4#b |
++ | 3#a a#3 |
++ | 9#4 4#9 |
++ | 1#c c#1 |
++ | 6#######6 |
++ | c#1 1#c |
++ |3#a a#3|
++ -&gt;|9#4 4#9|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0103 'ă'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 11
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. c4 4c .|
++ |. 4b#b3 .|
++ |. .|
++ |. 6##c8 .|
++ |. 62 5#8.|
++ |. #c.|
++ |.29#####.|
++ |.b#5 ##.|
++ |.## 2##.|
++ |.b#4 9##.|
++ -&gt;|.2b#c5##.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0104 'Ą'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 13
++ Advance: 11
++ Offset: 0 x -3
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ | 1###1 |
++ | 6###6 |
++ | c#4#b |
++ | 3#a a#3 |
++ | 9#4 4#9 |
++ | 1#c c#1 |
++ | 6#######6 |
++ | c#1 1#c |
++ |3#a a#3|
++ -&gt;|9#4 4#9|&lt;-
++ | 84 |
++ | #1 |
++ | 8## |
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0105 'ą'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 11
++ Advance: 9
++ Offset: 1 x -3
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. 6##c8 .|
++ |. 62 5#8.|
++ |. #c.|
++ |.29#####.|
++ |.b#5 ##.|
++ |.## 2##.|
++ |.b#4 9##.|
++ -&gt;|.2b#c5##.|&lt;-
++ |. 84 .|
++ |. #1 .|
++ |. 8##.|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0106 'Ć'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 14
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |. 1#7 .|
++ |. 99 .|
++ |. .|
++ |. .|
++ |. 39c##c9.|
++ |. 7#82 14a.|
++ |.5#9 .|
++ |.a#2 .|
++ |.## .|
++ |.## .|
++ |.a#2 .|
++ |.5#9 .|
++ |. 7#82 14a.|
++ -&gt;|. 39c##ca.|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0107 'ć'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 12
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. 4#7.|
++ |. 1c9 .|
++ |. 9a .|
++ |. .|
++ |. 29c#b4.|
++ |.2#c3 29.|
++ |.a#3 .|
++ |.## .|
++ |.## .|
++ |.a#3 .|
++ |.3#c3 28.|
++ -&gt;|. 29c#b4.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0108 'Ĉ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 14
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |. b#b .|
++ |. 89 98 .|
++ |. .|
++ |. .|
++ |. 39c##c9.|
++ |. 7#82 14a.|
++ |.5#9 .|
++ |.a#2 .|
++ |.## .|
++ |.## .|
++ |.a#2 .|
++ |.5#9 .|
++ |. 7#82 14a.|
++ -&gt;|. 39c##ca.|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0109 'ĉ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 12
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. 8#8 .|
++ |. 2#7#2.|
++ |. a7 7a.|
++ |. .|
++ |. 29c#b4.|
++ |.2#c3 29.|
++ |.a#3 .|
++ |.## .|
++ |.## .|
++ |.a#3 .|
++ |.3#c3 28.|
++ -&gt;|. 29c#b4.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x010c 'Č'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 14
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |. 89 98 .|
++ |. b#b .|
++ |. .|
++ |. .|
++ |. 39c##c9.|
++ |. 7#82 14a.|
++ |.5#9 .|
++ |.a#2 .|
++ |.## .|
++ |.## .|
++ |.a#2 .|
++ |.5#9 .|
++ |. 7#82 14a.|
++ -&gt;|. 39c##ca.|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x010d 'č'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 12
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. a7 7a .|
++ |. 2#7#2 .|
++ |. 8#8 .|
++ |. .|
++ |. 29c#b4.|
++ |.2#c3 29.|
++ |.a#3 .|
++ |.## .|
++ |.## .|
++ |.a#3 .|
++ |.3#c3 28.|
++ -&gt;|. 29c#b4.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x010e 'Ď'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 14
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |. 89 98 .|
++ |. b#b .|
++ |. .|
++ |. .|
++ |.####c94 .|
++ |.## 29#8 .|
++ |.## 9#5.|
++ |.## 2#a.|
++ |.## ##.|
++ |.## ##.|
++ |.## 2#a.|
++ |.## 9#5.|
++ |.## 29#8 .|
++ -&gt;|.####c94 .|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x010f 'ď'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 11
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |. ##8b|
++ |. ##a7|
++ |. ##c3|
++ |. 5c#b5## |
++ |.4#a11a## |
++ |.a#2 2## |
++ |.## ## |
++ |.## ## |
++ |.a#2 2## |
++ |.4#a11a## |
++ -&gt;|. 5c#b5## |&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ ----------
++
++Char 0x0110 'Đ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 10
++ Advance: 12
++ Offset: 0 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ | ####c94 ..|
++ | ## 28#8 ..|
++ | ## 8#5..|
++ | ## 2#a..|
++ |##### ##..|
++ | ## ##..|
++ | ## 2#a..|
++ | ## 9#5..|
++ | ## 28#8 ..|
++ -&gt;| ####c94 ..|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x0111 'đ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 11
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. ## |
++ |. #####|
++ |. ## |
++ |. 5c#b5## |
++ |.4#a11a## |
++ |.a#2 2## |
++ |.## ## |
++ |.## ## |
++ |.a#2 2## |
++ |.4#a11a## |
++ -&gt;|. 5c#b5## |&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0113 'ē'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. #### .|
++ |. .|
++ |. 3a##b4 .|
++ |.3#a1 8#5.|
++ |.a#2 #b.|
++ |.########.|
++ |.## .|
++ |.a#4 .|
++ |.3#b2 15a.|
++ -&gt;|. 29c#c93.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0117 'ė'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 11
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. ## .|
++ |. ## .|
++ |. .|
++ |. 3a##b4 .|
++ |.3#a1 8#5.|
++ |.a#2 #b.|
++ |.########.|
++ |.## .|
++ |.a#4 .|
++ |.3#b2 15a.|
++ -&gt;|. 29c#c93.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0118 'Ę'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 13
++ Advance: 9
++ Offset: 1 x -3
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.#######.|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.#######.|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ -&gt;|.#######.|&lt;-
++ |. 84 .|
++ |. #1 .|
++ |. 8##.|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0119 'ę'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 11
++ Advance: 10
++ Offset: 1 x -3
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 3a##b4 .|
++ |.3#a1 8#5.|
++ |.a#2 #b.|
++ |.########.|
++ |.## .|
++ |.a#4 .|
++ |.3#b2 15a.|
++ -&gt;|. 29c#c93.|&lt;-
++ |. 84 .|
++ |. #1 .|
++ |. 8## .|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x011a 'Ě'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 14
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |. 89 98 .|
++ |. b#b .|
++ |. .|
++ |. .|
++ |.#######.|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.#######.|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ -&gt;|.#######.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x011b 'ě'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 12
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. a7 7a .|
++ |. 2#7#2 .|
++ |. 8#8 .|
++ |. .|
++ |. 3a##b4 .|
++ |.3#a1 8#5.|
++ |.a#2 #b.|
++ |.########.|
++ |.## .|
++ |.a#4 .|
++ |.3#b2 15a.|
++ -&gt;|. 29c#c93.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x011d 'ĝ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 15
++ Advance: 10
++ Offset: 1 x -3
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 8#8 .|
++ |. 2#7#2 .|
++ |. a7 7a .|
++ |. .|
++ |. 4c#b5##.|
++ |.4#a11a##.|
++ |.a#2 3##.|
++ |.## ##.|
++ |.## ##.|
++ |.a#2 3##.|
++ |.4#a11a##.|
++ -&gt;|. 4c#b5##.|&lt;-
++ |. 2#b.|
++ |. 92 1a#5.|
++ |. 4b##a4 .|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x011e 'Ğ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 14
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |. c5 5c .|
++ |. 3b#b3 .|
++ |. .|
++ |. .|
++ |. 4ac##c9 .|
++ |. 9#71 14a .|
++ |.5#8 .|
++ |.b#2 .|
++ |.## ####.|
++ |.## ##.|
++ |.a#3 ##.|
++ |.5#9 ##.|
++ |. 8#a3 2##.|
++ -&gt;|. 49c##ca8.|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x011f 'ğ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 14
++ Advance: 10
++ Offset: 1 x -3
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. c4 4c .|
++ |. 4b#b3 .|
++ |. .|
++ |. 4c#b5##.|
++ |.4#a11a##.|
++ |.a#2 3##.|
++ |.## ##.|
++ |.## ##.|
++ |.a#2 3##.|
++ |.4#a11a##.|
++ -&gt;|. 4c#b5##.|&lt;-
++ |. 2#b.|
++ |. 92 1a#5.|
++ |. 4b##a4 .|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x012a 'Ī'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 4 x 12
++ Advance: 4
++ Offset: 0 x 0
++ ____
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |####|
++ | |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ -&gt;| ## |&lt;-
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ ----
++
++Char 0x012b 'ī'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 4 x 10
++ Advance: 4
++ Offset: 0 x 0
++ ____
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |####|
++ | |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ -&gt;| ## |&lt;-
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ ----
++
++Char 0x012e 'Į'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 4 x 13
++ Advance: 4
++ Offset: 1 x -3
++ ____
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ -&gt;|.## |&lt;-
++ |. 84 |
++ |. #1 |
++ |. 8##|
++ |.....|
++ |.....|
++ ----
++
++Char 0x012f 'į'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 4 x 14
++ Advance: 4
++ Offset: 1 x -3
++ ____
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.## |
++ |.## |
++ |. |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ -&gt;|.## |&lt;-
++ |. 84 |
++ |. #1 |
++ |. 8##|
++ |.....|
++ |.....|
++ ----
++
++Char 0x0130 'İ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 2 x 14
++ Advance: 4
++ Offset: 1 x 0
++ ____
++ |....|
++ |....|
++ |....|
++ |.##.|
++ |.##.|
++ |. .|
++ |. .|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ -&gt;|.##.|&lt;-
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ ----
++
++Char 0x0131 'ı'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 2 x 8
++ Advance: 4
++ Offset: 1 x 0
++ ____
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ -&gt;|.##.|&lt;-
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ ----
++
++Char 0x0139 'Ĺ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 14
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.1#7 .|
++ |.99 .|
++ |. .|
++ |. .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ -&gt;|.#######.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x013a 'ĺ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 3 x 14
++ Advance: 4
++ Offset: 1 x 0
++ ____
++ |....|
++ |....|
++ |....|
++ |.1#7|
++ |.99 |
++ |. |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ -&gt;|.## |&lt;-
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ ----
++
++Char 0x013c 'ļ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 3 x 14
++ Advance: 4
++ Offset: 1 x -3
++ ____
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ -&gt;|.## |&lt;-
++ |. |
++ |.7#8|
++ |.ba |
++ |....|
++ |....|
++ ----
++
++Char 0x013d 'Ľ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 11
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. 8b.|
++ |.## a7.|
++ |.## c3.|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ -&gt;|.#######.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x013e 'ľ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 5 x 11
++ Advance: 7
++ Offset: 1 x 0
++ _______
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.## 8b.|
++ |.## a7.|
++ |.## c3.|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ -&gt;|.## .|&lt;-
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -------
++
++Char 0x0141 'Ł'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 10
++ Advance: 9
++ Offset: -1 x 0
++ _________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ | ## .|
++ | ## .|
++ | ##1b6 .|
++ | ####6 .|
++ | ##b2 .|
++ | 3## .|
++ |4### .|
++ |19## .|
++ | ## .|
++ -&gt;| #######.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ---------
++
++Char 0x0142 'ł'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 5 x 11
++ Advance: 4
++ Offset: 0 x 0
++ ____
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ | ## |
++ | ## |
++ | ## |
++ | ##a3|
++ | ##b2|
++ |9## |
++ |a## |
++ | ## |
++ | ## |
++ | ## |
++ -&gt;| ## |&lt;-
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ ----
++
++Char 0x0143 'Ń'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 14
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |. 1#7 .|
++ |. 99 .|
++ |. .|
++ |. .|
++ |.##8 ##.|
++ |.###3 ##.|
++ |.###b ##.|
++ |.##5#6 ##.|
++ |.## a#1 ##.|
++ |.## 2#a ##.|
++ |.## 7#5##.|
++ |.## bc##.|
++ |.## 3###.|
++ -&gt;|.## 8##.|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0144 'ń'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 12
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 4#7 .|
++ |. 1c9 .|
++ |. 9a .|
++ |. .|
++ |.##4a##a2.|
++ |.##b2 6#a.|
++ |.##2 ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ -&gt;|.## ##.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0147 'Ň'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 14
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |. 89 98 .|
++ |. b#b .|
++ |. .|
++ |. .|
++ |.##8 ##.|
++ |.###3 ##.|
++ |.###b ##.|
++ |.##5#6 ##.|
++ |.## a#1 ##.|
++ |.## 2#a ##.|
++ |.## 7#5##.|
++ |.## bc##.|
++ |.## 3###.|
++ -&gt;|.## 8##.|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0148 'ň'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 12
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. a7 7a .|
++ |. 2#7#2 .|
++ |. 8#8 .|
++ |. .|
++ |.##4a##a2.|
++ |.##b2 6#a.|
++ |.##2 ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ -&gt;|.## ##.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0150 'Ő'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 14
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |. 1#71#7 .|
++ |. 99 99 .|
++ |. .|
++ |. .|
++ |. 6b##b6 .|
++ |. a#6 6#a .|
++ |.6#7 7#6.|
++ |.b#2 2#b.|
++ |.## ##.|
++ |.## ##.|
++ |.b#2 2#b.|
++ |.6#7 7#6.|
++ |. a#5 6#a .|
++ -&gt;|. 6b##b6 .|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x0151 'ő'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 12
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. b9 a9 .|
++ |. 4#13#1 .|
++ |. a6 a6 .|
++ |. .|
++ |. 3a##a3 .|
++ |.3#a11a#3.|
++ |.a#2 2#a.|
++ |.## ##.|
++ |.## ##.|
++ |.a#2 2#a.|
++ |.3#a11a#3.|
++ -&gt;|. 3a##a3 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0152 'Œ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 15 x 10
++ Advance: 17
++ Offset: 1 x 0
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. 27b##########.|
++ |. 6#b51 ## .|
++ |.4#a ## .|
++ |.a#3 ## .|
++ |.## #######.|
++ |.## ## .|
++ |.a#3 ## .|
++ |.4#a ## .|
++ |. 6#b51 ## .|
++ -&gt;|. 28b##########.|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x0153 'œ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 14 x 8
++ Advance: 16
++ Offset: 1 x 0
++ ________________
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |. 3a##c77c##a4 .|
++ |.3#a11a##a1 8#4.|
++ |.a#2 2##2 #b.|
++ |.## ########.|
++ |.## ## .|
++ |.a#2 2##4 .|
++ |.3#a11a##b2 15a.|
++ -&gt;|. 3a##b54a##c83.|&lt;-
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ ----------------
++
++Char 0x0154 'Ŕ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 14
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |. 1#7 |
++ |. 99 |
++ |. |
++ |. |
++ |.#####c8 |
++ |.## 18#9 |
++ |.## ## |
++ |.## #c |
++ |.## 18#8 |
++ |.######c |
++ |.## 2a#5 |
++ |.## 1#c |
++ |.## 9#4|
++ -&gt;|.## 4#a|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0155 'ŕ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 12
++ Advance: 7
++ Offset: 1 x 0
++ _______
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |. 4#7|
++ |. 1c9 |
++ |. 9a |
++ |. |
++ |.##4a## |
++ |.##a2 |
++ |.##2 |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ -&gt;|.## |&lt;-
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ -------
++
++Char 0x0158 'Ř'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 14
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |. 89 98 |
++ |. b#b |
++ |. |
++ |. |
++ |.#####c8 |
++ |.## 18#9 |
++ |.## ## |
++ |.## #c |
++ |.## 18#8 |
++ |.######c |
++ |.## 2a#5 |
++ |.## 1#c |
++ |.## 9#4|
++ -&gt;|.## 4#a|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0159 'ř'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 12
++ Advance: 7
++ Offset: 1 x 0
++ _______
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |. a7 7a|
++ |. 2#7#2|
++ |. 8#8 |
++ |. |
++ |.##4a##|
++ |.##a2 |
++ |.##2 |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ -&gt;|.## |&lt;-
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -------
++
++Char 0x015a 'Ś'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 14
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |. 1#7 .|
++ |. 99 .|
++ |. .|
++ |. .|
++ |. 7c##cb .|
++ |.8#5 4a .|
++ |.c# .|
++ |.##b74 .|
++ |.4c####91.|
++ |. 38c##a.|
++ |. 7##.|
++ |. #c.|
++ |.b52 5#7.|
++ -&gt;|.9b###b6 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x015b 'ś'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 12
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. 4#7.|
++ |. 1c9 .|
++ |. 9a .|
++ |. .|
++ |.19c#c93.|
++ |.b#4 14a.|
++ |.##3 .|
++ |.b###b71.|
++ |.18c###b.|
++ |. 4##.|
++ |.a41 3#a.|
++ -&gt;|.39c#c91.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x015c 'Ŝ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 14
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |. b#b .|
++ |. 89 98 .|
++ |. .|
++ |. .|
++ |. 7c##cb .|
++ |.8#5 4a .|
++ |.c# .|
++ |.##b74 .|
++ |.4c####91.|
++ |. 38c##a.|
++ |. 7##.|
++ |. #c.|
++ |.b52 5#7.|
++ -&gt;|.9b###b6 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x015d 'ŝ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 12
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. 8#8 .|
++ |. 2#7#2 .|
++ |. a7 7a .|
++ |. .|
++ |.19c#c93.|
++ |.b#4 14a.|
++ |.##3 .|
++ |.b###b71.|
++ |.18c###b.|
++ |. 4##.|
++ |.a41 3#a.|
++ -&gt;|.39c#c91.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x015e 'Ş'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 13
++ Advance: 10
++ Offset: 1 x -3
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 7c##cb .|
++ |.8#5 4a .|
++ |.c# .|
++ |.##b74 .|
++ |.4c####91.|
++ |. 38c##a.|
++ |. 7##.|
++ |. #c.|
++ |.b52 5#7.|
++ -&gt;|.9b###b6 .|&lt;-
++ |. 48 .|
++ |. 1# .|
++ |. ##8 .|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x015f 'ş'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 11
++ Advance: 9
++ Offset: 1 x -3
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.19c#c93.|
++ |.b#4 14a.|
++ |.##3 .|
++ |.b###b71.|
++ |.18c###b.|
++ |. 4##.|
++ |.a41 3#a.|
++ -&gt;|.39c#c91.|&lt;-
++ |. 48 .|
++ |. 1# .|
++ |. ##8 .|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0160 'Š'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 14
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |. 89 98 .|
++ |. b#b .|
++ |. .|
++ |. .|
++ |. 7c##cb .|
++ |.8#5 4a .|
++ |.c# .|
++ |.##b74 .|
++ |.4c####91.|
++ |. 38c##a.|
++ |. 7##.|
++ |. #c.|
++ |.b52 5#7.|
++ -&gt;|.9b###b6 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0161 'š'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 12
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. a7 7a .|
++ |. 2#7#2 .|
++ |. 8#8 .|
++ |. .|
++ |.19c#c93.|
++ |.b#4 14a.|
++ |.##3 .|
++ |.b###b71.|
++ |.18c###b.|
++ |. 4##.|
++ |.a41 3#a.|
++ -&gt;|.39c#c91.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0162 'Ţ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 13
++ Advance: 10
++ Offset: 1 x -3
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.########.|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ -&gt;|. ## .|&lt;-
++ |. 48 .|
++ |. 1# .|
++ |. ##8 .|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0163 'ţ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 5 x 13
++ Advance: 6
++ Offset: 0 x -3
++ ______
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ | ## .|
++ | ## .|
++ |#####.|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | c#2 .|
++ -&gt;| 5c##.|&lt;-
++ | 48.|
++ | 1#.|
++ | ##8.|
++ |......|
++ |......|
++ ------
++
++Char 0x0164 'Ť'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 14
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |. 9559 .|
++ |. 1##1 .|
++ |. .|
++ |. .|
++ |.########.|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ -&gt;|. ## .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0165 'ť'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 12
++ Advance: 6
++ Offset: 0 x 0
++ ______
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ | 8b|
++ | a7|
++ | ## c3|
++ | ## |
++ |##### |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | c#2 |
++ -&gt;| 5c## |&lt;-
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ ------
++
++Char 0x016b 'ū'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. #### .|
++ |. .|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## 2##.|
++ |.b#6 2a##.|
++ -&gt;|.2a##b4##.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x016d 'ŭ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 11
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. c4 4c .|
++ |. 4b#b3 .|
++ |. .|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## 2##.|
++ |.b#6 2a##.|
++ -&gt;|.2a##b4##.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x016e 'Ů'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 15
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |. 4cc4 .|
++ |. c33c .|
++ |. c33c .|
++ |. 4cc4 .|
++ |. .|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.c#1 1#c.|
++ |.6#91 19#6.|
++ -&gt;|. 5a###a5 .|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x016f 'ů'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 13
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 4cc4 .|
++ |. c33c .|
++ |. c33c .|
++ |. 4cc4 .|
++ |. .|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## 2##.|
++ |.b#6 2a##.|
++ -&gt;|.2a##b4##.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0170 'Ű'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 14
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |. 1#71#7 .|
++ |. 99 99 .|
++ |. .|
++ |. .|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.c#1 1#c.|
++ |.6#91 19#6.|
++ -&gt;|. 5a###a5 .|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0171 'ű'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 12
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. b9 a9.|
++ |. 4#13#1.|
++ |. a6 a6 .|
++ |. .|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## 2##.|
++ |.b#6 2a##.|
++ -&gt;|.2a##b4##.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0173 'ų'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 11
++ Advance: 10
++ Offset: 1 x -3
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.## ## |
++ |.## ## |
++ |.## ## |
++ |.## ## |
++ |.## ## |
++ |.## 2## |
++ |.b#6 2a## |
++ -&gt;|.2a##b4## |&lt;-
++ |. 84 |
++ |. #1 |
++ |. 8##|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0175 'ŵ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 12 x 12
++ Advance: 14
++ Offset: 1 x 0
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |. 1##1 .|
++ |. 9aa9 .|
++ |. 3c11c3 .|
++ |. .|
++ |.b#2 cc 2#b.|
++ |.7#6 2##2 6#7.|
++ |.3#9 6##6 9#3.|
++ |. ## a##a ## .|
++ |. a#3#99#3#a .|
++ |. 6#a#55#a#6 .|
++ |. 2###11###2 .|
++ -&gt;|. c#b a#c .|&lt;-
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ --------------
++
++Char 0x0178 'Ÿ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 14
++ Advance: 10
++ Offset: 0 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ | ## ## |
++ | ## ## |
++ | |
++ | |
++ |9#9 9#9|
++ | c#3 3#c |
++ | 3#a a#3 |
++ | 8#44#8 |
++ | bccb |
++ | 2##2 |
++ | ## |
++ | ## |
++ | ## |
++ -&gt;| ## |&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0179 'Ź'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 14
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |. 1#7 .|
++ |. 99 .|
++ |. .|
++ |. .|
++ |.#########.|
++ |. 6##.|
++ |. 5##3.|
++ |. 5##3 .|
++ |. 5##4 .|
++ |. 4##4 .|
++ |. 4##4 .|
++ |.4##4 .|
++ |.##4 .|
++ -&gt;|.#########.|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x017a 'ź'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 12
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. 4#7.|
++ |. 1c9 .|
++ |. 9a .|
++ |. .|
++ |.#######.|
++ |. 4##.|
++ |. 4##4.|
++ |. 4##4 .|
++ |. 4##3 .|
++ |.4##3 .|
++ |.##3 .|
++ -&gt;|.#######.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x017b 'Ż'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 14
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |. ## .|
++ |. ## .|
++ |. .|
++ |. .|
++ |.#########.|
++ |. 6##.|
++ |. 5##3.|
++ |. 5##3 .|
++ |. 5##4 .|
++ |. 4##4 .|
++ |. 4##4 .|
++ |.4##4 .|
++ |.##4 .|
++ -&gt;|.#########.|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x017c 'ż'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 11
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. ## .|
++ |. ## .|
++ |. .|
++ |.#######.|
++ |. 4##.|
++ |. 4##4.|
++ |. 4##4 .|
++ |. 4##3 .|
++ |.4##3 .|
++ |.##3 .|
++ -&gt;|.#######.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x017d 'Ž'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 14
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |. 89 98 .|
++ |. b#b .|
++ |. .|
++ |. .|
++ |.#########.|
++ |. 6##.|
++ |. 5##3.|
++ |. 5##3 .|
++ |. 5##4 .|
++ |. 4##4 .|
++ |. 4##4 .|
++ |.4##4 .|
++ |.##4 .|
++ -&gt;|.#########.|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x017e 'ž'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 12
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. a7 7a .|
++ |. 2#7#2 .|
++ |. 8#8 .|
++ |. .|
++ |.#######.|
++ |. 4##.|
++ |. 4##4.|
++ |. 4##4 .|
++ |. 4##3 .|
++ |.4##3 .|
++ |.##3 .|
++ -&gt;|.#######.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0219 'ș'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 11
++ Advance: 9
++ Offset: 1 x -3
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.19c#c93.|
++ |.b#4 14a.|
++ |.##3 .|
++ |.b###b71.|
++ |.18c###b.|
++ |. 4##.|
++ |.a41 3#a.|
++ -&gt;|.39c#c91.|&lt;-
++ |. .|
++ |. 7#8 .|
++ |. ba .|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x021b 'ț'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 5 x 13
++ Advance: 6
++ Offset: 0 x -3
++ ______
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ | ## .|
++ | ## .|
++ |#####.|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | c#2 .|
++ -&gt;| 5c##.|&lt;-
++ | .|
++ | 7#8 .|
++ | ba .|
++ |......|
++ |......|
++ ------
++
++Char 0x02c7 'ˇ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 5 x 3
++ Advance: 7
++ Offset: 1 x 9
++ _______
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.a7 7a.|
++ |.2#7#2.|
++ |. 8#8 .|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -&gt;|.......|&lt;-
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -------
++
++Char 0x02d8 '˘'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 5 x 2
++ Advance: 7
++ Offset: 1 x 9
++ _______
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.c4 4c.|
++ |.4b#b3.|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -&gt;|.......|&lt;-
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -------
++
++Char 0x02d9 '˙'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 2 x 2
++ Advance: 7
++ Offset: 3 x 9
++ _______
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |...##..|
++ |...##..|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -&gt;|.......|&lt;-
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -------
++
++Char 0x02db '˛'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 3 x 3
++ Advance: 7
++ Offset: 2 x -3
++ _______
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -&gt;|.......|&lt;-
++ |..84 ..|
++ |..#1 ..|
++ |..8##..|
++ |.......|
++ |.......|
++ -------
++
++Char 0x02dd '˝'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 3
++ Advance: 7
++ Offset: 1 x 9
++ _______
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |. b9 a9|
++ |.4#13#1|
++ |.a6 a6 |
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -&gt;|.......|&lt;-
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -------
++
++Char 0x0386 'Ά'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 12
++ Advance: 11
++ Offset: 0 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ | 4#7 |
++ |1c9 |
++ |9a 1###1 |
++ | 6###6 |
++ | c#4#b |
++ | 3#a a#3 |
++ | 9#4 4#9 |
++ | 1#c c#1 |
++ | 6#######6 |
++ | c#1 1#c |
++ |3#a a#3|
++ -&gt;|9#4 4#9|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0388 'Έ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 12
++ Advance: 12
++ Offset: -1 x 0
++ ____________
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ | 4#7 ..|
++ |1c9 ..|
++ |9a #######..|
++ | ## ..|
++ | ## ..|
++ | ## ..|
++ | #######..|
++ | ## ..|
++ | ## ..|
++ | ## ..|
++ | ## ..|
++ -&gt;| #######..|&lt;-
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ ------------
++
++Char 0x038c 'Ό'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 13 x 12
++ Advance: 12
++ Offset: -1 x 0
++ ____________
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ | 4#7 |
++ |1c9 |
++ |9a 6b##b6 |
++ | a#6 6#a |
++ | 6#7 7#6|
++ | b#2 2#b|
++ | ## ##|
++ | ## ##|
++ | b#2 2#b|
++ | 6#7 7#6|
++ | a#5 6#a |
++ -&gt;| 6b##b6 |&lt;-
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ ------------
++
++Char 0x0391 'Α'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 10
++ Advance: 11
++ Offset: 0 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ | 1###1 |
++ | 6###6 |
++ | c#4#b |
++ | 3#a a#3 |
++ | 9#4 4#9 |
++ | 1#c c#1 |
++ | 6#######6 |
++ | c#1 1#c |
++ |3#a a#3|
++ -&gt;|9#4 4#9|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0392 'Β'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.#####c81.|
++ |.## 6#a.|
++ |.## ##.|
++ |.## 6#a.|
++ |.#######2.|
++ |.## 7#9.|
++ |.## ##.|
++ |.## ##.|
++ |.## 7#9.|
++ -&gt;|.#####c81.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0393 'Γ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 10
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.#######.|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ -&gt;|.## .|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0394 'Δ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 10
++ Advance: 11
++ Offset: 0 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ | 1###1 |
++ | 6###6 |
++ | c#4#b |
++ | 3#a a#3 |
++ | 9#4 4#9 |
++ | 1#c c#1 |
++ | 6#7 7#6 |
++ | c#1 1#c |
++ |3#a a#3|
++ -&gt;|9#########9|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0395 'Ε'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 10
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.#######.|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.#######.|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ -&gt;|.#######.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0396 'Ζ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 10
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |.#########.|
++ |. 6##.|
++ |. 5##3.|
++ |. 5##3 .|
++ |. 5##4 .|
++ |. 4##4 .|
++ |. 4##4 .|
++ |.4##4 .|
++ |.##4 .|
++ -&gt;|.#########.|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0398 'Θ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 10
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |. 6b##b6 .|
++ |. a#6 6#a .|
++ |.6#7 7#6.|
++ |.b#2 2#b.|
++ |.## #### ##.|
++ |.## ##.|
++ |.b#2 2#b.|
++ |.6#7 7#6.|
++ |. a#5 6#a .|
++ -&gt;|. 6b##b6 .|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x0399 'Ι'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 2 x 10
++ Advance: 4
++ Offset: 1 x 0
++ ____
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ -&gt;|.##.|&lt;-
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ ----
++
++Char 0x039a 'Κ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 10
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |.## 3##6 |
++ |.## 3##5 |
++ |.## 4##4 |
++ |.##4##3 |
++ |.####5 |
++ |.##6##3 |
++ |.## 5##4 |
++ |.## 5##4 |
++ |.## 5##5 |
++ -&gt;|.## 4##6|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x039b 'Λ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 10
++ Advance: 11
++ Offset: 0 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ | 1###1 |
++ | 6###6 |
++ | c#4#b |
++ | 3#a a#3 |
++ | 9#4 4#9 |
++ | 1#c c#1 |
++ | 6#7 7#6 |
++ | c#2 2#c |
++ |3#a a#3|
++ -&gt;|9#4 4#9|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x039c 'Μ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 10
++ Advance: 13
++ Offset: 1 x 0
++ _____________
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.###2 2###.|
++ |.###8 9###.|
++ |.##c#1 1#c##.|
++ |.##6#8 8#6##.|
++ |.## c#2#c ##.|
++ |.## 6#c#6 ##.|
++ |.## c#c ##.|
++ |.## 5#5 ##.|
++ |.## ##.|
++ -&gt;|.## ##.|&lt;-
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ -------------
++
++Char 0x039d 'Ν'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 10
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |.##8 ##.|
++ |.###3 ##.|
++ |.###b ##.|
++ |.##5#6 ##.|
++ |.## a#1 ##.|
++ |.## 2#a ##.|
++ |.## 7#5##.|
++ |.## bc##.|
++ |.## 3###.|
++ -&gt;|.## 8##.|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x039f 'Ο'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 10
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |. 6b##b6 .|
++ |. a#6 6#a .|
++ |.6#7 7#6.|
++ |.b#2 2#b.|
++ |.## ##.|
++ |.## ##.|
++ |.b#2 2#b.|
++ |.6#7 7#6.|
++ |. a#5 6#a .|
++ -&gt;|. 6b##b6 .|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x03a0 'Π'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 10
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |.#########..|
++ |.## ##..|
++ |.## ##..|
++ |.## ##..|
++ |.## ##..|
++ |.## ##..|
++ |.## ##..|
++ |.## ##..|
++ |.## ##..|
++ -&gt;|.## ##..|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x03a1 'Ρ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.#####b6 .|
++ |.## 19#6.|
++ |.## 1#c.|
++ |.## ##.|
++ |.## 2#c.|
++ |.## 19#6.|
++ |.#####b6 .|
++ |.## .|
++ |.## .|
++ -&gt;|.## .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x03a3 'Σ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 10
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.#######.|
++ |.8#c2 .|
++ |. 9#c1 .|
++ |. a#b1 .|
++ |. c#a .|
++ |. 4##4 .|
++ |. 2##6 .|
++ |. b#9 .|
++ |.9#b .|
++ -&gt;|.#######.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x03a4 'Τ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.########.|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ -&gt;|. ## .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x03a5 'Υ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 10
++ Advance: 10
++ Offset: 0 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |9#9 9#9|
++ | c#3 3#c |
++ | 3#a a#3 |
++ | 8#44#8 |
++ | bccb |
++ | 2##2 |
++ | ## |
++ | ## |
++ | ## |
++ -&gt;| ## |&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x03a7 'Χ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 10
++ Advance: 10
++ Offset: 0 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |9#a 9#9|
++ | c#3 3#c |
++ | 3#b b#3 |
++ | 7#55#7 |
++ | bccb |
++ | 1cbbc1 |
++ | 9#33#9 |
++ | 4#a a#4 |
++ |1c#2 2#c1|
++ -&gt;|9#9 9#9|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x03ac 'ά'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 12
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 4#7 .|
++ |. 1c9 .|
++ |. 9a .|
++ |. .|
++ |. 6b#c8#c.|
++ |.6#9 6##9.|
++ |.c#2 ##6.|
++ |.## ##3.|
++ |.## ## .|
++ |.b#2 ##1.|
++ |.6#9 6##4.|
++ -&gt;|. 7c##7a#.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x03ad 'έ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 12
++ Advance: 8
++ Offset: 1 x 0
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |. 4#7.|
++ |. 1c9 .|
++ |. 9a .|
++ |. .|
++ |.3a##b4.|
++ |.c#5 29.|
++ |.c#4 .|
++ |.3c### .|
++ |.9#7 .|
++ |.## .|
++ |.b#6 28.|
++ -&gt;|.19c#b4.|&lt;-
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ --------
++
++Char 0x03ae 'ή'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 15
++ Advance: 10
++ Offset: 1 x -3
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 4#7 .|
++ |. 1c9 .|
++ |. 9a .|
++ |. .|
++ |.##4a##a2.|
++ |.##b2 6#a.|
++ |.##2 ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ -&gt;|.## ##.|&lt;-
++ |. ##.|
++ |. ##.|
++ |. ##.|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x03af 'ί'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 4 x 12
++ Advance: 5
++ Offset: 1 x 0
++ _____
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |. 4#7|
++ |.1c9 |
++ |.9a |
++ |. |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.##1 |
++ -&gt;|.8## |&lt;-
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ -----
++
++Char 0x03b1 'α'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 8
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 6b#c8#c.|
++ |.6#9 6##9.|
++ |.c#2 ##6.|
++ |.## ##3.|
++ |.## ## .|
++ |.b#2 ##1.|
++ |.6#9 6##4.|
++ -&gt;|. 7c##7a#.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x03b2 'β'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 14
++ Advance: 10
++ Offset: 1 x -3
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 3a#c7 .|
++ |.3#7 6#8 .|
++ |.a#1 ## .|
++ |.## 1## .|
++ |.## 19#7 .|
++ |.## ##c5 .|
++ |.## 2b#7.|
++ |.## 2#c.|
++ |.##2 ##.|
++ |.##91 7#8.|
++ -&gt;|.##3a#c7 .|&lt;-
++ |.## .|
++ |.## .|
++ |.## .|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x03b3 'γ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 11
++ Advance: 10
++ Offset: 0 x -3
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |#c6 4#b.|
++ | a#3 8#6.|
++ | 1#9 c#1.|
++ | a# 2#9 .|
++ | 4#56#4 .|
++ | caac .|
++ | 7##7 .|
++ -&gt;| 2##2 .|&lt;-
++ | ## .|
++ | ## .|
++ | ## .|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x03b4 'δ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 11
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 3a##b5 .|
++ |. c#2 28 .|
++ |. c#5 .|
++ |. a###a3 .|
++ |.5#b11a#4.|
++ |.b#3 2#b.|
++ |.## ##.|
++ |.## ##.|
++ |.9#3 3#a.|
++ |.3#a11b#3.|
++ -&gt;|. 3a##a3 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x03b5 'ε'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 8
++ Advance: 8
++ Offset: 1 x 0
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |.3a##b4.|
++ |.c#5 29.|
++ |.c#4 .|
++ |.3c### .|
++ |.9#7 .|
++ |.## .|
++ |.b#6 28.|
++ -&gt;|.19c#b4.|&lt;-
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ --------
++
++Char 0x03b7 'η'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 11
++ Advance: 10
++ Offset: 1 x -3
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.##4a##a2.|
++ |.##b2 6#a.|
++ |.##2 ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ -&gt;|.## ##.|&lt;-
++ |. ##.|
++ |. ##.|
++ |. ##.|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x03b8 'θ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 11
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 2a##a2 .|
++ |.1##22##1.|
++ |.7#7 7#7.|
++ |.b#2 2#b.|
++ |.## ##.|
++ |.########.|
++ |.## ##.|
++ |.b#2 2#b.|
++ |.7#6 6#7.|
++ |.1##22##1.|
++ -&gt;|. 2a##a2 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x03b9 'ι'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 3 x 8
++ Advance: 5
++ Offset: 1 x 0
++ _____
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.##1.|
++ -&gt;|.8##.|&lt;-
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ -----
++
++Char 0x03ba 'κ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 8
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.## 7c2.|
++ |.## 8b1 .|
++ |.## ab .|
++ |.##b##1 .|
++ |.##69#a .|
++ |.## 1##5 .|
++ |.## 5#c1.|
++ -&gt;|.## a#9.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x03bb 'λ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 11
++ Advance: 9
++ Offset: 0 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |###7 .|
++ | a#6 .|
++ | 3#c .|
++ | c#3 .|
++ | 1##8 .|
++ | 7### .|
++ | c#c#5 .|
++ | 5#a5#a .|
++ | b#4 ##1.|
++ |4#c 9#6.|
++ -&gt;|a#5 4#b.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x03bc 'μ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 11
++ Advance: 10
++ Offset: 1 x -3
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.## ## |
++ |.## ## |
++ |.## ## |
++ |.## ## |
++ |.## ## |
++ |.## ## |
++ |.##7 7##1|
++ -&gt;|.##b##b8##|&lt;-
++ |.## |
++ |.## |
++ |.## |
++ |..........|
++ |..........|
++ ----------
++
++Char 0x03bd 'ν'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 8
++ Advance: 10
++ Offset: 0 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |b#4 8#3.|
++ |5#a 2#a.|
++ | ##1 ##.|
++ | 8#7 #c.|
++ | 3#c 4#8.|
++ | b#4 b#1.|
++ | 6#99#3 .|
++ -&gt;| 1###5 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x03be 'ξ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 14
++ Advance: 8
++ Offset: 1 x -3
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |.#######|
++ |. 4cb41 |
++ |. c#1 |
++ |. ## |
++ |. 9#92 |
++ |. 6#### |
++ |.8#c51 |
++ |.##2 |
++ |.## |
++ |.8#81 |
++ -&gt;|. 6b##b3|&lt;-
++ |. 2#c|
++ |. 2#c|
++ |. #b3|
++ |........|
++ |........|
++ --------
++
++Char 0x03bf 'ο'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 8
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 3a##a3 .|
++ |.3#a11a#3.|
++ |.a#2 2#a.|
++ |.## ##.|
++ |.## ##.|
++ |.a#2 2#a.|
++ |.3#a11a#3.|
++ -&gt;|. 3a##a3 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x03c0 'π'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 8
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |.#########.|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ##1.|
++ -&gt;|. ## 7##.|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x03c1 'ρ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 11
++ Advance: 10
++ Offset: 1 x -3
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 29c#b4 .|
++ |.2#a11a#4.|
++ |.a#2 2#b.|
++ |.## ##.|
++ |.## ##.|
++ |.##2 2#a.|
++ |.##911a#4.|
++ -&gt;|.##3b#c5 .|&lt;-
++ |.## .|
++ |.## .|
++ |.## .|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x03c2 'ς'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 11
++ Advance: 9
++ Offset: 1 x -3
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. 29c#b4.|
++ |.2#c3 29.|
++ |.9#4 .|
++ |.## .|
++ |.## .|
++ |.b#3 .|
++ |.4#b3 .|
++ -&gt;|. 5b##b3.|&lt;-
++ |. 2#c.|
++ |. 2#c.|
++ |. #b3.|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x03c3 'σ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 8
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |. 5b######.|
++ |.5#a11a#9 .|
++ |.b#2 2#c .|
++ |.## ## .|
++ |.## ## .|
++ |.a#2 2#a .|
++ |.3#a11a#3 .|
++ -&gt;|. 3a##a3 .|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x03c4 'τ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 8
++ Advance: 8
++ Offset: 0 x 0
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |########|
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ##1 |
++ -&gt;| 7## |&lt;-
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ --------
++
++Char 0x03c5 'υ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 8
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.## 8#1.|
++ |.## 3#8.|
++ |.## #c.|
++ |.## ##.|
++ |.## #c.|
++ |.## 3#9.|
++ |.a#3 3b#3.|
++ -&gt;|.29###a4 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x03c6 'φ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 11
++ Advance: 12
++ Offset: 1 x -3
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |. 29#1a#b4 .|
++ |.2#c38#36#3.|
++ |.a#4 c# 1#a.|
++ |.## ## ##.|
++ |.## ## 1##.|
++ |.a#5 ## 6#a.|
++ |.3##4##4##3.|
++ -&gt;|. 29c##c92 .|&lt;-
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |............|
++ |............|
++ ------------
++
++Char 0x03c7 'χ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 11
++ Advance: 9
++ Offset: 0 x -3
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |##9 6#a.|
++ | 8#71##2.|
++ | 1##8#9 .|
++ | a###2 .|
++ | 5##8 .|
++ | 2##2 .|
++ | 9##5 .|
++ -&gt;| 2###a .|&lt;-
++ | 9#8##1 .|
++ |3## 7#7 .|
++ |a#6 9##.|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x03c8 'ψ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 11
++ Advance: 12
++ Offset: 1 x -3
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |.## ## ##.|
++ |.## ## ##.|
++ |.## ## ##.|
++ |.## ## ##.|
++ |.## ## ##.|
++ |.9#3 ## 3#9.|
++ |.2#c3##3c#2.|
++ -&gt;|. 29c##c92 .|&lt;-
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |............|
++ |............|
++ ------------
++
++Char 0x03c9 'ω'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 8
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |.2#7 7#2.|
++ |.8#4 4#7.|
++ |.b#1 1#b.|
++ |.## ## ##.|
++ |.## ## ##.|
++ |.b# 1##11#b.|
++ |.7#55cc55#7.|
++ -&gt;|. 9#c44c#9 .|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x03cc 'ό'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 12
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 4#7 .|
++ |. 1c9 .|
++ |. 9a .|
++ |. .|
++ |. 3a##a3 .|
++ |.3#a11a#3.|
++ |.a#2 2#a.|
++ |.## ##.|
++ |.## ##.|
++ |.a#2 2#a.|
++ |.3#a11a#3.|
++ -&gt;|. 3a##a3 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x03cd 'ύ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 12
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 4#7 .|
++ |. 1c9 .|
++ |. 9a .|
++ |. .|
++ |.## 8#1.|
++ |.## 3#8.|
++ |.## #c.|
++ |.## ##.|
++ |.## #c.|
++ |.## 3#9.|
++ |.a#3 3b#3.|
++ -&gt;|.29###a4 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x03ce 'ώ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 12
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |. 4#7 .|
++ |. 1c9 .|
++ |. 9a .|
++ |. .|
++ |.2#7 7#2.|
++ |.8#4 4#7.|
++ |.b#1 1#b.|
++ |.## ## ##.|
++ |.## ## ##.|
++ |.b# 1##11#b.|
++ |.7#55cc55#7.|
++ -&gt;|. 9#c44c#9 .|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x0401 'Ё'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 14
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |. ## ## .|
++ |. ## ## .|
++ |. .|
++ |. .|
++ |.#######.|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.#######.|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ -&gt;|.#######.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0404 'Є'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 10
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 39c##c9|
++ |. 7#71 14a|
++ |.5#8 |
++ |.a#1 |
++ |.####### |
++ |.##1 |
++ |.a#5 |
++ |.5#b |
++ |. 7#92 14a|
++ -&gt;|. 39c##b8|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0406 'І'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 2 x 10
++ Advance: 4
++ Offset: 1 x 0
++ ____
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ -&gt;|.##.|&lt;-
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ ----
++
++Char 0x0408 'Ј'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 4 x 13
++ Advance: 4
++ Offset: -1 x -3
++ ____
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ -&gt;| ##.|&lt;-
++ | ##.|
++ | 7#9.|
++ |#c8 .|
++ |.....|
++ |.....|
++ ----
++
++Char 0x0410 'А'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 10
++ Advance: 11
++ Offset: 0 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ | 1###1 |
++ | 6###6 |
++ | c#4#b |
++ | 3#a a#3 |
++ | 9#4 4#9 |
++ | 1#c c#1 |
++ | 6#######6 |
++ | c#1 1#c |
++ |3#a a#3|
++ -&gt;|9#4 4#9|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0411 'Б'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |.####### ..|
++ |.## ..|
++ |.## ..|
++ |.## ..|
++ |.#####b6 ..|
++ |.## 7#8..|
++ |.## ##..|
++ |.## ##..|
++ |.## 7#8..|
++ -&gt;|.#####c7 ..|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0412 'В'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.#####c81.|
++ |.## 6#a.|
++ |.## ##.|
++ |.## 6#a.|
++ |.#######2.|
++ |.## 7#9.|
++ |.## ##.|
++ |.## ##.|
++ |.## 7#9.|
++ -&gt;|.#####c81.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0413 'Г'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 10
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.#######.|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ -&gt;|.## .|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0414 'Д'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 12
++ Advance: 12
++ Offset: 1 x -2
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |. ######## |
++ |. ## ## |
++ |. ## ## |
++ |. ## ## |
++ |. ## ## |
++ |. #c ## |
++ |. 1#b ## |
++ |. 2#9 ## |
++ |. 9#7 ## |
++ -&gt;|.###########|&lt;-
++ |.## ##|
++ |.## ##|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x0415 'Е'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 10
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.#######.|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.#######.|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.## .|
++ -&gt;|.#######.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0416 'Ж'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 18 x 10
++ Advance: 17
++ Offset: -1 x 0
++ _________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |6##7 ## 7##6|
++ | 4##9 ## 9##4 |
++ | 3##a ## a##3 |
++ | 2c#b1##1b#c2 |
++ | b##c##c##b |
++ | 8#ba####ab#8 |
++ | 5##2 9##8 2##5 |
++ | 2##5 ## 5##2 |
++ | b#8 ## 8#b |
++ -&gt;|8#b ## b#8|&lt;-
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ -----------------
++
++Char 0x0417 'З'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.39c##b7 .|
++ |.a41 7#a.|
++ |. ##.|
++ |. 16#8.|
++ |. ####b1.|
++ |. 19#9.|
++ |. ##.|
++ |. #c.|
++ |.a41 19#7.|
++ -&gt;|.3a###a5 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0418 'И'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 10
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |.## b##..|
++ |.## 6###..|
++ |.## 1####..|
++ |.## a#8##..|
++ |.## 4#c1##..|
++ |.## c#5 ##..|
++ |.##8#a ##..|
++ |.####1 ##..|
++ |.###6 ##..|
++ -&gt;|.##b ##..|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x0419 'Й'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 14
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |. c5 5c ..|
++ |. 3b#b3 ..|
++ |. ..|
++ |. ..|
++ |.## b##..|
++ |.## 6###..|
++ |.## 1####..|
++ |.## a#8##..|
++ |.## 4#c1##..|
++ |.## c#5 ##..|
++ |.##8#a ##..|
++ |.####1 ##..|
++ |.###6 ##..|
++ -&gt;|.##b ##..|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x041a 'К'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 10
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |.## 7##6|
++ |.## 9##4 |
++ |.## a##3 |
++ |.##1b#c2 |
++ |.##c##a |
++ |.###ac#7 |
++ |.##9 3##4 |
++ |.## 6##1 |
++ |.## 9#b |
++ -&gt;|.## b#8|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x041b 'Л'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 10
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |. #######..|
++ |. ## ##..|
++ |. ## ##..|
++ |. ## ##..|
++ |. #c ##..|
++ |. #b ##..|
++ |. 2#9 ##..|
++ |. 4#7 ##..|
++ |.2b#1 ##..|
++ -&gt;|.c81 ##..|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x041c 'М'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 10
++ Advance: 13
++ Offset: 1 x 0
++ _____________
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.###2 2###.|
++ |.###8 9###.|
++ |.##c#1 1#c##.|
++ |.##6#8 8#6##.|
++ |.## c#2#c ##.|
++ |.## 6#c#6 ##.|
++ |.## c#c ##.|
++ |.## 5#5 ##.|
++ |.## ##.|
++ -&gt;|.## ##.|&lt;-
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ -------------
++
++Char 0x041d 'Н'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 10
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.#########.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ -&gt;|.## ##.|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x041e 'О'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 10
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |. 6b##b6 .|
++ |. a#6 6#a .|
++ |.6#7 7#6.|
++ |.b#2 2#b.|
++ |.## ##.|
++ |.## ##.|
++ |.b#2 2#b.|
++ |.6#7 7#6.|
++ |. a#5 6#a .|
++ -&gt;|. 6b##b6 .|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x041f 'П'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 10
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |.#########..|
++ |.## ##..|
++ |.## ##..|
++ |.## ##..|
++ |.## ##..|
++ |.## ##..|
++ |.## ##..|
++ |.## ##..|
++ |.## ##..|
++ -&gt;|.## ##..|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x0420 'Р'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.#####b6 .|
++ |.## 19#6.|
++ |.## 1#c.|
++ |.## ##.|
++ |.## 2#c.|
++ |.## 19#6.|
++ |.#####b6 .|
++ |.## .|
++ |.## .|
++ -&gt;|.## .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0421 'С'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 10
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |. 39c##c9.|
++ |. 7#82 14a.|
++ |.5#9 .|
++ |.a#2 .|
++ |.## .|
++ |.## .|
++ |.a#2 .|
++ |.5#9 .|
++ |. 7#82 14a.|
++ -&gt;|. 39c##ca.|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0422 'Т'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.########.|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ -&gt;|. ## .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0423 'У'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 10
++ Advance: 11
++ Offset: 0 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |a#6 6#a.|
++ |3#c c#4.|
++ | a#6 5#b .|
++ | 4#c b#5 .|
++ | b#53#c .|
++ | 4#ca#6 .|
++ | b### .|
++ | 5##7 .|
++ | 3##1 .|
++ -&gt;| ##a3 .|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0424 'Ф'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 14 x 10
++ Advance: 14
++ Offset: 1 x 0
++ ______________
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |. ## |
++ |. 48b####b84 |
++ |.1b#73 ## 37#b1|
++ |.9#5 ## 5#9|
++ |.## ## ##|
++ |.## ## ##|
++ |.9#5 ## 5#9|
++ |.1b#72 ## 27#b1|
++ |. 48b####b84 |
++ -&gt;|. ## |&lt;-
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ --------------
++
++Char 0x0425 'Х'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 10
++ Advance: 10
++ Offset: 0 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |9#a 9#9|
++ | c#3 3#c |
++ | 3#b b#3 |
++ | 7#55#7 |
++ | bccb |
++ | 1cbbc1 |
++ | 9#33#9 |
++ | 4#a a#4 |
++ |1c#2 2#c1|
++ -&gt;|9#9 9#9|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0426 'Ц'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 12
++ Advance: 13
++ Offset: 1 x -2
++ _____________
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.## ## .|
++ |.## ## .|
++ |.## ## .|
++ |.## ## .|
++ |.## ## .|
++ |.## ## .|
++ |.## ## .|
++ |.## ## .|
++ |.## ## .|
++ -&gt;|.###########.|&lt;-
++ |. ##.|
++ |. ##.|
++ |.............|
++ |.............|
++ |.............|
++ -------------
++
++Char 0x0427 'Ч'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 10
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |.## ##.|
++ |.## ##.|
++ |.## ##.|
++ |.b#5 ##.|
++ |.2a#######.|
++ |. ##.|
++ |. ##.|
++ |. ##.|
++ |. ##.|
++ -&gt;|. ##.|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0428 'Ш'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 16 x 10
++ Advance: 17
++ Offset: 1 x 0
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.## ## ##|
++ |.## ## ##|
++ |.## ## ##|
++ |.## ## ##|
++ |.## ## ##|
++ |.## ## ##|
++ |.## ## ##|
++ |.## ## ##|
++ |.## ## ##|
++ -&gt;|.################|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x0429 'Щ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 18 x 12
++ Advance: 19
++ Offset: 1 x -2
++ ___________________
++ |...................|
++ |...................|
++ |...................|
++ |...................|
++ |...................|
++ |...................|
++ |...................|
++ |.## ## ## |
++ |.## ## ## |
++ |.## ## ## |
++ |.## ## ## |
++ |.## ## ## |
++ |.## ## ## |
++ |.## ## ## |
++ |.## ## ## |
++ |.## ## ## |
++ -&gt;|.##################|&lt;-
++ |. ##|
++ |. ##|
++ |...................|
++ |...................|
++ |...................|
++ -------------------
++
++Char 0x042a 'Ъ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 13 x 11
++ Advance: 13
++ Offset: 0 x 0
++ _____________
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ | 222221 |
++ |4#####9 |
++ |3aaa##9 |
++ | ##9 |
++ | ##a443 |
++ | #######5 |
++ | ##c99###2|
++ | ##9 4##5|
++ | ##9 4##5|
++ | ###bb###1|
++ -&gt;| #####c92 |&lt;-
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ -------------
++
++Char 0x042b 'Ы'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 10
++ Advance: 15
++ Offset: 1 x 0
++ _______________
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |.## ##...|
++ |.## ##...|
++ |.## ##...|
++ |.## ##...|
++ |.#####c7 ##...|
++ |.## 7#9 ##...|
++ |.## ## ##...|
++ |.## ## ##...|
++ |.## 7#9 ##...|
++ -&gt;|.#####c7 ##...|&lt;-
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ ---------------
++
++Char 0x042c 'Ь'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |.## ..|
++ |.## ..|
++ |.## ..|
++ |.## ..|
++ |.#####c7 ..|
++ |.## 7#9..|
++ |.## ##..|
++ |.## ##..|
++ |.## 7#9..|
++ -&gt;|.#####c7 ..|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x042d 'Э'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 12
++ Advance: 10
++ Offset: 0 x -1
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ | 2443 |
++ | c####c5 |
++ |1#a78c##6 |
++ | 2 1c##1|
++ | 11116##5|
++ | b######7|
++ | acccc##7|
++ | 6##5|
++ | 4 2c## |
++ |1#caa###4 |
++ -&gt;| 9####a3 |&lt;-
++ | 22 |
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x042e 'Ю'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 14 x 10
++ Advance: 16
++ Offset: 1 x 0
++ ________________
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |.## 7b##b6 .|
++ |.## b#6 6#a .|
++ |.## 7#7 7#6.|
++ |.## c#2 2#b.|
++ |.###### ##.|
++ |.## c# ##.|
++ |.## 9#2 2#b.|
++ |.## 3#7 7#6.|
++ |.## 7#5 6#a .|
++ -&gt;|.## 5b##b6 .|&lt;-
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ ----------------
++
++Char 0x042f 'Я'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |. 7c#####..|
++ |.8#7 ##..|
++ |.## ##..|
++ |.c# ##..|
++ |.5#7 ##..|
++ |. 4######..|
++ |. 4#c ##..|
++ |. a#6 ##..|
++ |.3#c ##..|
++ -&gt;|.a#6 ##..|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0430 'а'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 8
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. 6##c8 .|
++ |. 62 5#8.|
++ |. #c.|
++ |.29#####.|
++ |.b#5 ##.|
++ |.## 2##.|
++ |.b#4 9##.|
++ -&gt;|.2b#c5##.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0431 'б'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 11
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 38bcc6 .|
++ |.2#b2 .|
++ |.9#3 .|
++ |.c#8c#b4 .|
++ |.##a11a#4.|
++ |.##2 2#a.|
++ |.## ##.|
++ |.## ##.|
++ |.a#2 2#a.|
++ |.4#a11a#3.|
++ -&gt;|. 4a##a3 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0432 'в'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 8
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.#####a3.|
++ |.## 3#c.|
++ |.## 3#c.|
++ |.######5.|
++ |.## 5#a.|
++ |.## ##.|
++ |.## 5#b.|
++ -&gt;|.#####a2.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0433 'г'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 8
++ Advance: 7
++ Offset: 1 x 0
++ _______
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.######|
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ |.## |
++ -&gt;|.## |&lt;-
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -------
++
++Char 0x0434 'д'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 10
++ Advance: 11
++ Offset: 1 x -2
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |. ####### |
++ |. ## ## |
++ |. ## ## |
++ |. ## ## |
++ |. 1#b ## |
++ |. 4#a ## |
++ |.1b#7 ## |
++ -&gt;|.##########|&lt;-
++ |.## ##|
++ |.## ##|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0435 'е'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 8
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 3a##b4 .|
++ |.3#a1 8#5.|
++ |.a#2 #b.|
++ |.########.|
++ |.## .|
++ |.a#4 .|
++ |.3#b2 15a.|
++ -&gt;|. 29c#c93.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0436 'ж'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 14 x 8
++ Advance: 14
++ Offset: 0 x 0
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |6##7 ## 7##6|
++ | 4##9 ## 9##4 |
++ | 3##a##a##3 |
++ | 8######8 |
++ | 4##b##b##4 |
++ | 1##6 ## 6##1 |
++ | b#9 ## 9#b |
++ -&gt;|8#b ## b#8|&lt;-
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ --------------
++
++Char 0x0437 'з'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 8
++ Advance: 8
++ Offset: 1 x 0
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |.3a##ca3|
++ |.92 4#c|
++ |. 5#c|
++ |. ####c3|
++ |. 17#8|
++ |. ##|
++ |.a4 7#b|
++ -&gt;|.4a##c81|&lt;-
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ --------
++
++Char 0x0438 'и'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 8
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.## 5##..|
++ |.## 1###..|
++ |.## 9###..|
++ |.##4####..|
++ |.##c#5##..|
++ |.###a ##..|
++ |.###1 ##..|
++ -&gt;|.##6 ##..|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0439 'й'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 11
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. c4 4c ..|
++ |. 4b#b3 ..|
++ |. ..|
++ |.## 5##..|
++ |.## 1###..|
++ |.## 9###..|
++ |.##4####..|
++ |.##c#5##..|
++ |.###a ##..|
++ |.###1 ##..|
++ -&gt;|.##6 ##..|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x043a 'к'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 8
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.## 7##6.|
++ |.## 9##4 .|
++ |.##a##3 .|
++ |.####8 .|
++ |.##c##4 .|
++ |.##15##2 .|
++ |.## 9#b .|
++ -&gt;|.## b#8.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x043b 'л'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 8
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. #######|
++ |. ## ##|
++ |. ## ##|
++ |. ## ##|
++ |. 1#b ##|
++ |. 2#9 ##|
++ |.2a#2 ##|
++ -&gt;|.#a3 ##|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x043c 'м'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 8
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |.##b b##.|
++ |.###4 4###.|
++ |.###a a###.|
++ |.####5####.|
++ |.##7###7##.|
++ |.##1###1##.|
++ |.## 9#9 ##.|
++ -&gt;|.## ##.|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x043d 'н'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 8
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.## ##..|
++ |.## ##..|
++ |.## ##..|
++ |.#######..|
++ |.## ##..|
++ |.## ##..|
++ |.## ##..|
++ -&gt;|.## ##..|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x043e 'о'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 8
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 3a##a3 .|
++ |.3#a11a#3.|
++ |.a#2 2#a.|
++ |.## ##.|
++ |.## ##.|
++ |.a#2 2#a.|
++ |.3#a11a#3.|
++ -&gt;|. 3a##a3 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x043f 'п'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 8
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.#######..|
++ |.## ##..|
++ |.## ##..|
++ |.## ##..|
++ |.## ##..|
++ |.## ##..|
++ |.## ##..|
++ -&gt;|.## ##..|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0440 'р'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 11
++ Advance: 10
++ Offset: 1 x -3
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.##5b#c5 .|
++ |.##a11a#4.|
++ |.##2 2#a.|
++ |.## ##.|
++ |.## ##.|
++ |.##2 2#a.|
++ |.##a11a#4.|
++ -&gt;|.##5b#c5 .|&lt;-
++ |.## .|
++ |.## .|
++ |.## .|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0441 'с'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 8
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. 29c#b4.|
++ |.2#c3 29.|
++ |.a#3 .|
++ |.## .|
++ |.## .|
++ |.a#3 .|
++ |.3#c3 28.|
++ -&gt;|. 29c#b4.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0442 'т'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 8
++ Advance: 8
++ Offset: 0 x 0
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |########|
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ -&gt;| ## |&lt;-
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ --------
++
++Char 0x0443 'у'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 11
++ Advance: 9
++ Offset: 0 x -3
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |b#4 3#b|
++ |5#9 8#6|
++ | c# c#1|
++ | 7#5 2#a |
++ | 1#a 7#5 |
++ | 9#1b# |
++ | 4#8#9 |
++ -&gt;| c##4 |&lt;-
++ | 6#c |
++ | 9#7 |
++ | a#c7 |
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0444 'ф'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 12 x 14
++ Advance: 14
++ Offset: 1 x -3
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. 5c#6##6#c5 .|
++ |.4#a 3##3 a#4.|
++ |.a#2 ## 2#a.|
++ |.## ## ##.|
++ |.## ## ##.|
++ |.a#2 ## 2#a.|
++ |.4#a 3##3 a#4.|
++ -&gt;|. 5c#6##6#c5 .|&lt;-
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |..............|
++ |..............|
++ --------------
++
++Char 0x0445 'х'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 8
++ Advance: 9
++ Offset: 0 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |8#b b#8|
++ | b#5 5#b |
++ | 2#c2c#1 |
++ | 4#c#4 |
++ | 6#c#6 |
++ | 2#c1c#2 |
++ | b#5 4#b |
++ -&gt;|8#a a#8|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0446 'ц'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 10
++ Advance: 10
++ Offset: 1 x -2
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.## ## .|
++ |.## ## .|
++ |.## ## .|
++ |.## ## .|
++ |.## ## .|
++ |.## ## .|
++ |.## ## .|
++ -&gt;|.########.|&lt;-
++ |. ##.|
++ |. ##.|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0447 'ч'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 8
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.## ##..|
++ |.## ##..|
++ |.## ##..|
++ |.b#4 ##..|
++ |.3c#####..|
++ |. ##..|
++ |. ##..|
++ -&gt;|. ##..|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0448 'ш'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 12 x 8
++ Advance: 15
++ Offset: 1 x 0
++ _______________
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |.## ## ##..|
++ |.## ## ##..|
++ |.## ## ##..|
++ |.## ## ##..|
++ |.## ## ##..|
++ |.## ## ##..|
++ |.## ## ##..|
++ -&gt;|.############..|&lt;-
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ ---------------
++
++Char 0x0449 'щ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 13 x 10
++ Advance: 15
++ Offset: 1 x -2
++ _______________
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |.## ## ## .|
++ |.## ## ## .|
++ |.## ## ## .|
++ |.## ## ## .|
++ |.## ## ## .|
++ |.## ## ## .|
++ |.## ## ## .|
++ -&gt;|.#############.|&lt;-
++ |. ##.|
++ |. ##.|
++ |...............|
++ |...............|
++ |...............|
++ ---------------
++
++Char 0x044a 'ъ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 8
++ Advance: 11
++ Offset: 0 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |699993 .|
++ |8cc##4 .|
++ | 1##4 .|
++ | 1##ba96 .|
++ | 1##ba##9.|
++ | 1##4 5#c.|
++ | 1##97b#a.|
++ -&gt;| 1#####a2.|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x044b 'ы'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 8
++ Advance: 13
++ Offset: 1 x 0
++ _____________
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.## ##..|
++ |.## ##..|
++ |.## ##..|
++ |.####c91 ##..|
++ |.## 5#a ##..|
++ |.## ## ##..|
++ |.## 5#b ##..|
++ -&gt;|.#####a2 ##..|&lt;-
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ -------------
++
++Char 0x044c 'ь'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 8
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.## .|
++ |.## .|
++ |.## .|
++ |.####c91.|
++ |.## 5#a.|
++ |.## ##.|
++ |.## 5#b.|
++ -&gt;|.#####a2.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x044d 'э'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 9
++ Advance: 8
++ Offset: 1 x -1
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |.7aba5 |
++ |.#####a |
++ |.3 7##5|
++ |.1777##8|
++ |.2bbb##9|
++ |. 3##7|
++ |.c88###1|
++ -&gt;|.c###a2 |&lt;-
++ |. 121 |
++ |........|
++ |........|
++ |........|
++ |........|
++ --------
++
++Char 0x044e 'ю'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 8
++ Advance: 14
++ Offset: 1 x 0
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |.## 4a##a3 ..|
++ |.## 4#a11a#3..|
++ |.## b#2 2#a..|
++ |.##c## ##..|
++ |.##a## ##..|
++ |.## b#2 2#a..|
++ |.## 4#a11a#3..|
++ -&gt;|.## 4b##a3 ..|&lt;-
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ --------------
++
++Char 0x044f 'я'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 8
++ Advance: 9
++ Offset: 0 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ | 3a#####.|
++ | c#5 ##.|
++ | ## ##.|
++ | 8#5 ##.|
++ | b#####.|
++ | 3##3 ##.|
++ | c#7 ##.|
++ -&gt;|8#b ##.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0451 'ё'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 11
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. ## ## .|
++ |. ## ## .|
++ |. .|
++ |. 3a##b4 .|
++ |.3#a1 8#5.|
++ |.a#2 #b.|
++ |.########.|
++ |.## .|
++ |.a#4 .|
++ |.3#b2 15a.|
++ -&gt;|. 29c#c93.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0454 'є'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 8
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. 29c#b4.|
++ |.2#b2 29.|
++ |.a#2 .|
++ |.##### .|
++ |.##1 .|
++ |.a#6 .|
++ |.3##3 18.|
++ -&gt;|. 29c#b4.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0456 'і'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 2 x 11
++ Advance: 4
++ Offset: 1 x 0
++ ____
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |.##.|
++ |.##.|
++ |. .|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ |.##.|
++ -&gt;|.##.|&lt;-
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ ----
++
++Char 0x0457 'ї'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 11
++ Advance: 5
++ Offset: -1 x 0
++ _____
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |## ##|
++ |## ##|
++ | |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ -&gt;| ## |&lt;-
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ -----
++
++Char 0x0458 'ј'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 4 x 14
++ Advance: 4
++ Offset: -1 x -3
++ ____
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ | ##.|
++ | ##.|
++ | .|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ -&gt;| ##.|&lt;-
++ | ##.|
++ | 4#b.|
++ |##b2.|
++ |.....|
++ |.....|
++ ----
++
++Char 0x0459 'љ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 14 x 8
++ Advance: 14
++ Offset: 0 x 0
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ | 6999998 |
++ | 9#####c |
++ | 9#a18#c |
++ | a#a 7##aa71 |
++ | b#9 7##ac#c |
++ | 2##7 7#c 2##2|
++ |4###1 7##7a## |
++ -&gt;|5c92 7####b3 |&lt;-
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ --------------
++
++Char 0x045a 'њ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 12 x 8
++ Advance: 13
++ Offset: 1 x 0
++ _____________
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.795 894 |
++ |.b#8 ##7 |
++ |.b#8 ##7 |
++ |.b#caa##ca95 |
++ |.b#caa##cb##6|
++ |.b#8 ##7 8#a|
++ |.b#8 ##a7c#8|
++ -&gt;|.b#8 ####c81|&lt;-
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ -------------
++
++Char 0x045b 'ћ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 11
++ Advance: 10
++ Offset: 0 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ | 488 |
++ | 7## |
++ | 7## |
++ |6b##9993 |
++ |8###ccc3 |
++ | 7## 353 |
++ | 7##9###7 |
++ | 7##b6b## |
++ | 7##2 4##2|
++ | 7## 3##2|
++ -&gt;| 7## 3##2|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x04a3 'ң'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 10
++ Advance: 11
++ Offset: 1 x -2
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |.795 894 |
++ |.b#8 ##7 |
++ |.b#8 ##7 |
++ |.b#caa##7 |
++ |.b#caa##7 |
++ |.b#8 ##7 |
++ |.b#8 ##a76|
++ -&gt;|.b#8 #####|&lt;-
++ |. 6##|
++ |. 6#c|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x04af 'ү'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 11
++ Advance: 9
++ Offset: 0 x -3
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |696 696|
++ |4##1 ##5|
++ | c#6 4#c |
++ | 6#c 9#7 |
++ | 1##4##1 |
++ | 8#c#9 |
++ | 2###3 |
++ -&gt;| a#b |&lt;-
++ | 5#6 |
++ | 5#6 |
++ | 5#6 |
++ |.........|
++ |.........|
++ ---------
++
++Char 0x04e8 'Ө'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 10
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |. 6b##b6 .|
++ |. a#8118#a .|
++ |.6#a a#6.|
++ |.b#4 4#b.|
++ |.##1 1##.|
++ |.##########.|
++ |.b# #b.|
++ |.6#4 4#6.|
++ |. a#4 4#a .|
++ -&gt;|. 6b##b6 .|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x04e9 'ө'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 8
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 3a##a3 .|
++ |.3#911a#3.|
++ |.a#2 2#a.|
++ |.########.|
++ |.## ##.|
++ |.a#3 3#a.|
++ |.3#a11b#3.|
++ -&gt;|. 3a##a3 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x05d1 'ב'
++ Font: NachlieliCLM-Bold (14)
++ Bitmap: 7 x 8
++ Advance: 8
++ Offset: 1 x 0
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |.c##b4 |
++ |.667c#4 |
++ |. 2#a |
++ |. #b |
++ |. #b |
++ |. #b |
++ |.6666#c6|
++ -&gt;|.c######|&lt;-
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ --------
++
++Char 0x05d9 'י'
++ Font: NachlieliCLM-Bold (14)
++ Bitmap: 2 x 4
++ Advance: 4
++ Offset: 1 x 4
++ ____
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |.#b.|
++ |.#b.|
++ |.#b.|
++ |.#7.|
++ |....|
++ |....|
++ |....|
++ -&gt;|....|&lt;-
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ ----
++
++Char 0x05e2 'ע'
++ Font: NachlieliCLM-Bold (14)
++ Bitmap: 8 x 9
++ Advance: 8
++ Offset: 0 x -1
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ | 9#2 #b|
++ | 6#6 #b|
++ | 3#9 #b|
++ | ## #b|
++ | b#3 #b|
++ | 7#77#8|
++ | 49###a |
++ -&gt;|4##b74 |&lt;-
++ |13 |
++ |........|
++ |........|
++ |........|
++ |........|
++ --------
++
++Char 0x05e8 'ר'
++ Font: NachlieliCLM-Bold (14)
++ Bitmap: 7 x 8
++ Advance: 8
++ Offset: 0 x 0
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |3###b5 .|
++ |1667c#5.|
++ | 2#a.|
++ | #b.|
++ | #b.|
++ | #b.|
++ | #b.|
++ -&gt;| #b.|&lt;-
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ --------
++
++Char 0x05ea 'ת'
++ Font: NachlieliCLM-Bold (14)
++ Bitmap: 9 x 8
++ Advance: 10
++ Offset: 0 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ | 8####b4 .|
++ | 4#c67c#4.|
++ | #b 2#a.|
++ | #b #b.|
++ | #b #b.|
++ | #b #b.|
++ |18#9 #b.|
++ -&gt;|3#a1 #b.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x060c '،'
++ Font: KacstOne (14)
++ Bitmap: 3 x 4
++ Advance: 6
++ Offset: 2 x 2
++ ______
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |.. 1 .|
++ |..7 .|
++ |..a6 .|
++ |..5#2.|
++ |......|
++ -&gt;|......|&lt;-
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ ------
++
++Char 0x061f '؟'
++ Font: KacstOne (14)
++ Bitmap: 4 x 8
++ Advance: 4
++ Offset: 0 x 2
++ ____
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |1771|
++ |a119|
++ |b497|
++ |5c |
++ | 65 |
++ | 6 |
++ | 3 |
++ | a3 |
++ |....|
++ -&gt;|....|&lt;-
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ ----
++
++Char 0x0621 'ء'
++ Font: KacstOne (14)
++ Bitmap: 3 x 4
++ Advance: 6
++ Offset: 1 x 2
++ ______
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |.183..|
++ |.61 ..|
++ |.1b7..|
++ |.33 ..|
++ |......|
++ -&gt;|......|&lt;-
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ ------
++
++Char 0x0622 'آ'
++ Font: KacstOne (14)
++ Bitmap: 4 x 10
++ Advance: 4
++ Offset: 1 x 2
++ ____
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.4997|
++ |. |
++ |. 9 |
++ |. 3c |
++ |. 2# |
++ |. 1# |
++ |. # |
++ |. #1|
++ |. # |
++ |. 6 |
++ |.....|
++ -&gt;|.....|&lt;-
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ ----
++
++Char 0x0623 'أ'
++ Font: KacstOne (14)
++ Bitmap: 3 x 12
++ Advance: 3
++ Offset: 1 x 2
++ ___
++ |....|
++ |....|
++ |....|
++ |.37 |
++ |.6 |
++ |.582|
++ |.21 |
++ |. a |
++ |.3c |
++ |.2# |
++ |.1# |
++ |. # |
++ |. #1|
++ |. # |
++ |. 6 |
++ |....|
++ -&gt;|....|&lt;-
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ ---
++
++Char 0x0625 'إ'
++ Font: KacstOne (14)
++ Bitmap: 3 x 12
++ Advance: 3
++ Offset: 1 x -2
++ ___
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |.19 |
++ |.4b |
++ |.3c |
++ |.2# |
++ |.1# |
++ |. # |
++ |. # |
++ |. 6 |
++ |. |
++ -&gt;|.38 |&lt;-
++ |.552|
++ |.35 |
++ |....|
++ |....|
++ |....|
++ ---
++
++Char 0x0626 'ئ'
++ Font: KacstOne (14)
++ Bitmap: 9 x 10
++ Advance: 10
++ Offset: 1 x -1
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 83 |
++ |. 95 1 |
++ |.12 9#5|
++ |. 1 8211|
++ |.11 61 |
++ |.5 bc84 |
++ |.9 28c# |
++ |.a4 79 |
++ -&gt;|.7#a8a#8 |&lt;-
++ |. 9#c92 |
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0627 'ا'
++ Font: KacstOne (14)
++ Bitmap: 3 x 9
++ Advance: 3
++ Offset: 1 x 2
++ ___
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |. 1 |
++ |.1a |
++ |.3c |
++ |.2# |
++ |.1# |
++ |. # |
++ |. #1|
++ |. c |
++ |. 5 |
++ |....|
++ -&gt;|....|&lt;-
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ ---
++
++Char 0x0628 'ب'
++ Font: KacstOne (14)
++ Bitmap: 9 x 9
++ Advance: 10
++ Offset: 1 x -2
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 32|
++ |.6 aa|
++ |.a3 3#|
++ |.8#987789#|
++ |.19#####b8|
++ |. |
++ -&gt;|. |&lt;-
++ |. 42 |
++ |. 9b |
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0629 'ة'
++ Font: KacstOne (14)
++ Bitmap: 5 x 8
++ Advance: 6
++ Offset: 1 x 2
++ ______
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |.3c89 |
++ |. 413 |
++ |. 1 |
++ |. 1c7 |
++ |. 58#a|
++ |.51 6#|
++ |.a97b6|
++ |.7#b5 |
++ |......|
++ -&gt;|......|&lt;-
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ ------
++
++Char 0x062a 'ت'
++ Font: KacstOne (14)
++ Bitmap: 9 x 6
++ Advance: 10
++ Offset: 1 x 2
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 795c2 |
++ |. 5 4 5 |
++ |.6 #7|
++ |.c1 7a|
++ |.bc98778aa|
++ |.2a####cb6|
++ |..........|
++ -&gt;|..........|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x062b 'ث'
++ Font: KacstOne (14)
++ Bitmap: 9 x 7
++ Advance: 11
++ Offset: 0 x 2
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ | 7a ..|
++ | 425 ..|
++ | 98a332..|
++ |6 aa..|
++ |a3 4#..|
++ |8#977789#..|
++ |19#####b8..|
++ |...........|
++ -&gt;|...........|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x062c 'ج'
++ Font: KacstOne (14)
++ Bitmap: 8 x 10
++ Advance: 8
++ Offset: 1 x -3
++ ________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. 3888772|
++ |.2#####c |
++ |.1 492 |
++ |. 18 |
++ |. 7 |
++ |. 9 1#5 |
++ -&gt;|. b 53 |&lt;-
++ |. c5 |
++ |. 6#b89b6|
++ |. 6c#a3 |
++ |.........|
++ |.........|
++ --------
++
++Char 0x062d 'ح'
++ Font: KacstOne (14)
++ Bitmap: 8 x 10
++ Advance: 8
++ Offset: 1 x -3
++ ________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. 3888772|
++ |.2#####c |
++ |.1 492 |
++ |. 18 |
++ |. 7 |
++ |. 9 |
++ -&gt;|. b |&lt;-
++ |. c5 |
++ |. 6#b89b6|
++ |. 6c#a3 |
++ |.........|
++ |.........|
++ --------
++
++Char 0x062e 'خ'
++ Font: KacstOne (14)
++ Bitmap: 8 x 13
++ Advance: 8
++ Offset: 1 x -3
++ ________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. 56 |
++ |. 5a |
++ |. |
++ |. 3888772|
++ |.2#####c |
++ |.1 492 |
++ |. 18 |
++ |. 7 |
++ |. 9 |
++ -&gt;|. b |&lt;-
++ |. c5 |
++ |. 6#b89b6|
++ |. 6c#a3 |
++ |.........|
++ |.........|
++ --------
++
++Char 0x062f 'د'
++ Font: KacstOne (14)
++ Bitmap: 5 x 6
++ Advance: 6
++ Offset: 0 x 2
++ ______
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ | 3.|
++ | 5a.|
++ | 2c.|
++ | 2 c.|
++ |2b77#.|
++ | c###.|
++ |......|
++ -&gt;|......|&lt;-
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ ------
++
++Char 0x0630 'ذ'
++ Font: KacstOne (14)
++ Bitmap: 5 x 8
++ Advance: 6
++ Offset: 0 x 2
++ ______
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ | 37 .|
++ | 39 .|
++ | 3.|
++ | 69.|
++ | 3c.|
++ |2 c.|
++ |6a77b.|
++ |3###9.|
++ |......|
++ -&gt;|......|&lt;-
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ ------
++
++Char 0x0631 'ر'
++ Font: KacstOne (14)
++ Bitmap: 6 x 7
++ Advance: 6
++ Offset: 0 x -2
++ ______
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ | c3|
++ | b9|
++ | 2a|
++ | 29|
++ -&gt;|1 1b5|&lt;-
++ |5a9#c |
++ | 6#b2 |
++ |......|
++ |......|
++ |......|
++ ------
++
++Char 0x0632 'ز'
++ Font: KacstOne (14)
++ Bitmap: 6 x 11
++ Advance: 6
++ Offset: 0 x -2
++ ______
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ | 1#6 |
++ | 42 |
++ | |
++ | |
++ | a6|
++ | 9c|
++ | c|
++ | b|
++ -&gt;|1 98|&lt;-
++ |2a9c#2|
++ | 4cc4 |
++ |......|
++ |......|
++ |......|
++ ------
++
++Char 0x0633 'س'
++ Font: KacstOne (14)
++ Bitmap: 13 x 8
++ Advance: 14
++ Offset: 1 x -2
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |. 21 5 19|
++ |. 1 a7 b 2b|
++ |.41 8c8a#879|
++ |.7 3##a8c#6|
++ |.9 a |
++ -&gt;|.a6 285 |&lt;-
++ |.4####a |
++ |. 3774 |
++ |..............|
++ |..............|
++ |..............|
++ --------------
++
++Char 0x0634 'ش'
++ Font: KacstOne (14)
++ Bitmap: 13 x 13
++ Advance: 14
++ Offset: 1 x -2
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |. 3 |
++ |. 96 |
++ |. 2857 |
++ |. 1836 |
++ |. |
++ |. 21 5 19|
++ |. 1 a7 b 2b|
++ |.41 8c8a#879|
++ |.7 3##a8c#6|
++ |.9 a |
++ -&gt;|.a6 285 |&lt;-
++ |.4####a |
++ |. 3774 |
++ |..............|
++ |..............|
++ |..............|
++ --------------
++
++Char 0x0635 'ص'
++ Font: KacstOne (14)
++ Bitmap: 15 x 9
++ Advance: 16
++ Offset: 1 x -2
++ ________________
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |. 1a#7 |
++ |. 13 2b89#a|
++ |. 1 8a 3a1 2c|
++ |.4 5#a#a888ac|
++ |.7 #######c5|
++ |.9 9 |
++ -&gt;|.a6 275 |&lt;-
++ |.4####a |
++ |. 3774 |
++ |................|
++ |................|
++ |................|
++ ----------------
++
++Char 0x0636 'ض'
++ Font: KacstOne (14)
++ Bitmap: 15 x 12
++ Advance: 16
++ Offset: 1 x -2
++ ________________
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |. 6c2 |
++ |. 15 |
++ |. |
++ |. 1a#7 |
++ |. 14 1b89#a|
++ |. 1 8a 2a1 2c|
++ |.4 5#a#a888ac|
++ |.7 #######c5|
++ |.9 9 |
++ -&gt;|.a6 275 |&lt;-
++ |.4####a |
++ |. 3774 |
++ |................|
++ |................|
++ |................|
++ ----------------
++
++Char 0x0637 'ط'
++ Font: KacstOne (14)
++ Bitmap: 10 x 8
++ Advance: 10
++ Offset: 0 x 2
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ | 29 |
++ | 5#3 |
++ | 2# |
++ | # 152 |
++ | c 5###4|
++ | 985 179|
++ |69b#98889a|
++ |4########a|
++ |..........|
++ -&gt;|..........|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0638 'ظ'
++ Font: KacstOne (14)
++ Bitmap: 10 x 8
++ Advance: 10
++ Offset: 0 x 2
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ | 29 72 |
++ | 5#3 1a6 |
++ | 2# |
++ | # 152 |
++ | c 5###4|
++ | 985 179|
++ |69b#98889a|
++ |4########a|
++ |..........|
++ -&gt;|..........|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0639 'ع'
++ Font: KacstOne (14)
++ Bitmap: 7 x 11
++ Advance: 7
++ Offset: 1 x -4
++ _______
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |. a#6 |
++ |. 78 1 |
++ |. c8147 |
++ |. 6###8 |
++ |. 9b4 |
++ |.49 |
++ -&gt;|.91 |&lt;-
++ |.a1 |
++ |.7b4 |
++ |.1c###c6|
++ |. 6862 |
++ |........|
++ -------
++
++Char 0x063a 'غ'
++ Font: KacstOne (14)
++ Bitmap: 7 x 14
++ Advance: 7
++ Offset: 1 x -4
++ _______
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |. 68 |
++ |. 48 |
++ |. |
++ |. a#6 |
++ |. 78 1 |
++ |. c8158 |
++ |. 6###8 |
++ |. 9b4 |
++ |.49 |
++ -&gt;|.91 |&lt;-
++ |.a1 |
++ |.7b4 |
++ |.1c###c6|
++ |. 6862 |
++ |........|
++ -------
++
++Char 0x0641 'ف'
++ Font: KacstOne (14)
++ Bitmap: 10 x 9
++ Advance: 12
++ Offset: 1 x 2
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |. 74 .|
++ |. 75 .|
++ |. .|
++ |. 7c1.|
++ |. 4249.|
++ |. 9a3a.|
++ |.5 7c#.|
++ |.#98888889c.|
++ |.7########7.|
++ |............|
++ -&gt;|............|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x0642 'ق'
++ Font: KacstOne (14)
++ Bitmap: 9 x 12
++ Advance: 9
++ Offset: 1 x -2
++ _________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 1#7b |
++ |. 3 3 |
++ |. |
++ |. 9c2 |
++ |. 6c#9 |
++ |. a 4# |
++ |.2 #a8#1|
++ |.6 6###1|
++ |.8 6 |
++ -&gt;|.b3 68 |&lt;-
++ |.7#a8a#b1 |
++ |. 8c#b6 |
++ |..........|
++ |..........|
++ |..........|
++ ---------
++
++Char 0x0643 'ك'
++ Font: KacstOne (14)
++ Bitmap: 10 x 9
++ Advance: 10
++ Offset: 0 x 2
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ | 5 |
++ | 79 |
++ | 6a |
++ | 64 4c |
++ |11 5 2# |
++ |6 96 # |
++ |92 1 c1|
++ |8c655555c2|
++ |1b######b |
++ |..........|
++ -&gt;|..........|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0644 'ل'
++ Font: KacstOne (14)
++ Bitmap: 7 x 11
++ Advance: 7
++ Offset: 1 x -1
++ _______
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |. 7 |
++ |. 5c |
++ |. 4# |
++ |. 2# |
++ |. 1#1|
++ |. #1|
++ |.3 c2|
++ |.7 b2|
++ |.a2 b2|
++ -&gt;|.9#9a#9 |&lt;-
++ |.1a#c7 |
++ |........|
++ |........|
++ |........|
++ |........|
++ -------
++
++Char 0x0645 'م'
++ Font: KacstOne (14)
++ Bitmap: 6 x 10
++ Advance: 7
++ Offset: 1 x -3
++ _______
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |. 52 |
++ |. 8#c |
++ |.133#7 |
++ |.167c#2|
++ |.7#ccb |
++ |.8 |
++ -&gt;|.53 |&lt;-
++ |.27 |
++ |. 8 |
++ |. 4 |
++ |.......|
++ |.......|
++ -------
++
++Char 0x0646 'ن'
++ Font: KacstOne (14)
++ Bitmap: 7 x 11
++ Advance: 8
++ Offset: 1 x -2
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |. 3 |
++ |. 1#3 |
++ |. |
++ |. 1|
++ |. 1 77|
++ |.31 6a|
++ |.6 1b|
++ |.9 a|
++ -&gt;|.a5 14a7|&lt;-
++ |.5####9 |
++ |. 4751 |
++ |........|
++ |........|
++ |........|
++ --------
++
++Char 0x0647 'ه'
++ Font: KacstOne (14)
++ Bitmap: 5 x 6
++ Advance: 6
++ Offset: 1 x 2
++ ______
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |. 1 |
++ |. 1c7 |
++ |. 58#a|
++ |.51 5c|
++ |.a97a7|
++ |.7#b5 |
++ |......|
++ -&gt;|......|&lt;-
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ ------
++
++Char 0x0648 'و'
++ Font: KacstOne (14)
++ Bitmap: 6 x 9
++ Advance: 7
++ Offset: 1 x -2
++ _______
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |. 59 |
++ |. 1##7|
++ |. 546c|
++ |. 7c8#|
++ |. 2a##|
++ |. 1b|
++ -&gt;|. a7|&lt;-
++ |.778cc |
++ |. 8#b2 |
++ |.......|
++ |.......|
++ |.......|
++ -------
++
++Char 0x0649 'ى'
++ Font: KacstOne (14)
++ Bitmap: 9 x 9
++ Advance: 10
++ Offset: 1 x -1
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 1 |
++ |. 9#5|
++ |. 1 8211|
++ |.11 61 |
++ |.5 bc84 |
++ |.9 28c# |
++ |.a4 79 |
++ -&gt;|.7#a8a#8 |&lt;-
++ |. 9#c92 |
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x064a 'ي'
++ Font: KacstOne (14)
++ Bitmap: 9 x 11
++ Advance: 10
++ Offset: 1 x -3
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 1 |
++ |. 1a#4|
++ |. 1 1821 |
++ |.2 81 |
++ |.6 c#a6 |
++ |.a 49b |
++ |.c71 16b4 |
++ -&gt;|.6####a2 |&lt;-
++ |. 4773 |
++ |. 513 |
++ |. 1c7a |
++ |..........|
++ |..........|
++ ----------
++
++Char 0x064b 'ً'
++ Font: KacstOne (14)
++ Bitmap: 3 x 3
++ Advance: 2
++ Offset: 0 x 12
++ __
++ |...|
++ |...|
++ | 21|
++ |561|
++ |53 |
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ -&gt;|...|&lt;-
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ --
++
++Char 0x064e 'َ'
++ Font: KacstOne (14)
++ Bitmap: 2 x 2
++ Advance: 3
++ Offset: 0 x 13
++ ___
++ |...|
++ |...|
++ |24.|
++ |1 .|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ -&gt;|...|&lt;-
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ ---
++
++Char 0x0650 'ِ'
++ Font: KacstOne (14)
++ Bitmap: 3 x 2
++ Advance: 4
++ Offset: 0 x -4
++ ____
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ -&gt;|....|&lt;-
++ |....|
++ |....|
++ | 32.|
++ |52 .|
++ |....|
++ ----
++
++Char 0x0651 'ّ'
++ Font: KacstOne (14)
++ Bitmap: 3 x 2
++ Advance: 5
++ Offset: 0 x 12
++ _____
++ |.....|
++ |.....|
++ |.....|
++ |127..|
++ |b95..|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ -&gt;|.....|&lt;-
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ -----
++
++Char 0x0902 'ं'
++ Font: lohit_hi (18)
++ Bitmap: 3 x 2
++ Advance: 0
++ Offset: -3 x 11
++
++ |...|
++ |...|
++ |...|
++ |...|
++ | 22|
++ |2##|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ -&gt;|...|&lt;-
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++
++
++Char 0x0903 'ः'
++ Font: lohit_hi (18)
++ Bitmap: 3 x 6
++ Advance: 5
++ Offset: 1 x 1
++ _____
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.9#a.|
++ |.8#9.|
++ |. .|
++ |. .|
++ |.9#a.|
++ |.8#a.|
++ -&gt;|.....|&lt;-
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ -----
++
++Char 0x0905 'अ'
++ Font: lohit_hi (18)
++ Bitmap: 12 x 9
++ Advance: 11
++ Offset: 0 x 0
++ ___________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ | 6##b1b###a|
++ | 7#a5#a cc |
++ | 1#b cc |
++ | 4##6 cc |
++ |16429##### |
++ | bc1 1#bcc |
++ | 3##23#9cc |
++ | 3###b1cc |
++ -&gt;| cc |&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ -----------
++
++Char 0x0906 'आ'
++ Font: lohit_hi (18)
++ Bitmap: 15 x 9
++ Advance: 15
++ Offset: 0 x 0
++ _______________
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ | 6##a7#######b|
++ | 7#95#a cc cc |
++ | 1#b cc cc |
++ | 4##6 cc cc |
++ |27539##### cc |
++ | c#1 1cbcc cc |
++ | 3##24#9cc cc |
++ | 3###b1cc cc |
++ -&gt;| cc cc |&lt;-
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ ---------------
++
++Char 0x0907 'इ'
++ Font: lohit_hi (18)
++ Bitmap: 8 x 12
++ Advance: 8
++ Offset: 0 x -3
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |b######b|
++ | ## |
++ | 7#### |
++ | c# |
++ | 7#7 |
++ | 8###8 |
++ | cc |
++ |1##73#a |
++ -&gt;| a###c1 |&lt;-
++ | ac2 |
++ | 1c#5 |
++ | 21 |
++ |........|
++ |........|
++ --------
++
++Char 0x0908 'ई'
++ Font: lohit_hi (18)
++ Bitmap: 9 x 16
++ Advance: 8
++ Offset: -1 x -3
++ ________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ | 9##2|
++ | 9#611|
++ | cc |
++ | 8c4 |
++ |1########|
++ | 3666##63|
++ | 7#### |
++ | ## |
++ | 7#7 |
++ | 9###8 |
++ | cc |
++ | ##73#a |
++ -&gt;| 9####2 |&lt;-
++ | b#2 |
++ | 1b#6 |
++ | 21 |
++ |.........|
++ |.........|
++ --------
++
++Char 0x0909 'उ'
++ Font: lohit_hi (18)
++ Bitmap: 10 x 9
++ Advance: 9
++ Offset: 0 x 0
++ _________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |b########7|
++ | 3## |
++ | cc |
++ |473 3#b |
++ |1b98###7 |
++ | 8c3 5#7 |
++ | 1cc1 cb |
++ | 3##37#8 |
++ -&gt;| 2b##9 |&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ---------
++
++Char 0x090a 'ऊ'
++ Font: lohit_hi (18)
++ Bitmap: 14 x 9
++ Advance: 13
++ Offset: 0 x 0
++ _____________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |b############5|
++ | 4#c |
++ |131 cc |
++ |4b7 4c87##8 |
++ | cb8#####97#8 |
++ | 7c5 6## cc |
++ | 1c#1 2c9 2ca |
++ | 3##39#5 b#4 |
++ -&gt;| 3###6 54 |&lt;-
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ -------------
++
++Char 0x090f 'ए'
++ Font: lohit_hi (18)
++ Bitmap: 8 x 11
++ Advance: 7
++ Offset: 0 x -2
++ _______
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |b######8|
++ | cc cc |
++ | cc cc |
++ | cc cc |
++ | cc 4#9 |
++ | 9#4241 |
++ | a#5 |
++ | a#5 |
++ -&gt;| 9#5 |&lt;-
++ | 1## |
++ | 274 |
++ |........|
++ |........|
++ |........|
++ -------
++
++Char 0x0913 'ओ'
++ Font: lohit_hi (18)
++ Bitmap: 15 x 14
++ Advance: 15
++ Offset: 0 x -1
++ _______________
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ | 3#9 |
++ | 7#6 |
++ | 9#4 |
++ | ac2 |
++ | 7##b9########|
++ | 7#95#a cc cc |
++ | 1#b cc cc |
++ | 4##6 cc cc |
++ |25339##### cc |
++ | bc1 1cbcc cc |
++ | 3##23#9cc cc |
++ | 3###b1cc cc |
++ -&gt;| cc cc |&lt;-
++ | 22 22 |
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ ---------------
++
++Char 0x0914 'औ'
++ Font: lohit_hi (18)
++ Bitmap: 15 x 14
++ Advance: 15
++ Offset: 0 x -1
++ _______________
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ | 5#7 |
++ | 1ba2cb |
++ | 5##aa3 |
++ | 1a##7 |
++ | 8##a9########|
++ | 7#76#9 cc cc |
++ | 1cb cc cc |
++ | 4##6 cc cc |
++ |25339##### cc |
++ | bc1 1cbcc cc |
++ | 3##23#9cc cc |
++ | 3###b1cc cc |
++ -&gt;| cc cc |&lt;-
++ | 22 22 |
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ ---------------
++
++Char 0x0915 'क'
++ Font: lohit_hi (18)
++ Bitmap: 12 x 9
++ Advance: 11
++ Offset: -1 x 0
++ ___________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |1##########c|
++ | cc |
++ | 8######c2 |
++ | 7#81##b5#a |
++ | bc c#1 cc |
++ | 9#44## 1#b |
++ | 1c###c b#5 |
++ | cc296 |
++ -&gt;| cc |&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ -----------
++
++Char 0x0916 'ख'
++ Font: lohit_hi (18)
++ Bitmap: 13 x 9
++ Advance: 12
++ Offset: -1 x 0
++ ____________
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |1###########c|
++ | cc cc |
++ | 1 cc1b###c |
++ | 7#8cba#42#c |
++ | 2###3a#33#c |
++ | 9b1 2####c |
++ | 2b9 4#c |
++ | 4#8 7##c |
++ -&gt;| 3####7cc |&lt;-
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ ------------
++
++Char 0x0917 'ग'
++ Font: lohit_hi (18)
++ Bitmap: 9 x 9
++ Advance: 8
++ Offset: -1 x 0
++ ________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |1#######b|
++ | cc cc |
++ | cc cc |
++ | 1a#c cc |
++ | ##c cc |
++ | 2b8 cc |
++ | cc |
++ | cc |
++ -&gt;| cc |&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ --------
++
++Char 0x0918 'घ'
++ Font: lohit_hi (18)
++ Bitmap: 10 x 9
++ Advance: 9
++ Offset: 0 x 0
++ _________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |b########8|
++ | bc cc |
++ | c#1 cc |
++ | 4###3cc |
++ | 8#7 cc |
++ | cc 2## |
++ | 8#74### |
++ | 9##a#c |
++ -&gt;| cc |&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ---------
++
++Char 0x091a 'च'
++ Font: lohit_hi (18)
++ Bitmap: 10 x 9
++ Advance: 9
++ Offset: 0 x 0
++ _________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |b########8|
++ | cc |
++ |c######c |
++ | 7#7 cc |
++ | cc 2## |
++ | c#2b## |
++ | 4####c |
++ | cc |
++ -&gt;| cc |&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ---------
++
++Char 0x091b 'छ'
++ Font: lohit_hi (18)
++ Bitmap: 11 x 9
++ Advance: 10
++ Offset: 0 x 0
++ __________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |b#########8|
++ | cc cc |
++ | c#1 7##3 |
++ | 3###a#b#b |
++ | 7#8 bc cc |
++ | bc1 7#b#a |
++ | bc1 a##2 |
++ | 5#b25##4 |
++ -&gt;| 5###a1 |&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ ----------
++
++Char 0x091c 'ज'
++ Font: lohit_hi (18)
++ Bitmap: 11 x 9
++ Advance: 11
++ Offset: 0 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |b#########a|
++ | cc |
++ | cc |
++ |494 c####c |
++ |1cb 3c8 cc |
++ | 8#4 cc cc |
++ | c#4#c cc |
++ | 2c##4 cc |
++ -&gt;| cc |&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x091f 'ट'
++ Font: lohit_hi (18)
++ Bitmap: 9 x 9
++ Advance: 8
++ Offset: 0 x 0
++ ________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |b#######9|
++ | cc |
++ | cc |
++ | 3####c |
++ | b#2 |
++ | cc |
++ | a#2 |
++ | 3##33##2|
++ -&gt;| 3####4 |&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ --------
++
++Char 0x0920 'ठ'
++ Font: lohit_hi (18)
++ Bitmap: 9 x 9
++ Advance: 9
++ Offset: 0 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |b#######b|
++ | cc |
++ | cc |
++ | 3####c |
++ | b#2 7c4 |
++ | cc 1#b |
++ | a#2 cc |
++ | 2##36#9 |
++ -&gt;| 2c##9 |&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0921 'ड'
++ Font: lohit_hi (18)
++ Bitmap: 10 x 9
++ Advance: 9
++ Offset: 0 x 0
++ _________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |b########7|
++ | cc |
++ | 8#### |
++ | cc |
++ | 1 8#6 |
++ |3#9 9###7 |
++ | 9#6 cb |
++ | a#928#7 |
++ -&gt;| 6###8 |&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ---------
++
++Char 0x0922 'ढ'
++ Font: lohit_hi (18)
++ Bitmap: 9 x 9
++ Advance: 9
++ Offset: 0 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |b#######b|
++ | cc |
++ | cc |
++ | 4####c |
++ | c#1 |
++ | cc 7##6 |
++ | a#3cccc |
++ | 2#####b |
++ -&gt;| 2###c2 |&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0923 'ण'
++ Font: lohit_hi (18)
++ Bitmap: 11 x 9
++ Advance: 10
++ Offset: -1 x 0
++ __________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |1#########b|
++ | cc cc cc |
++ | cc cc cc |
++ | cc cc cc |
++ | cc cc cc |
++ | b#5#b cc |
++ | 2###2 cc |
++ | cc |
++ -&gt;| cc |&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ ----------
++
++Char 0x0924 'त'
++ Font: lohit_hi (18)
++ Bitmap: 11 x 9
++ Advance: 9
++ Offset: -1 x 0
++ _________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |1#########2|
++ | cc |
++ | cc |
++ | 5#####c |
++ | c# cc |
++ | cc cc |
++ | 8#5 cc |
++ | c#2 cc |
++ -&gt;| 1b9 cc |&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ ---------
++
++Char 0x0925 'थ'
++ Font: lohit_hi (18)
++ Bitmap: 10 x 9
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |.4###38###5|
++ |.c#3#b cc |
++ |.c#1cc cc |
++ |.4###9 cc |
++ |.b##9 #c |
++ |.7#8 2### |
++ |. 7###b#c |
++ |. cc |
++ -&gt;|. cc |&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ ----------
++
++Char 0x0926 'द'
++ Font: lohit_hi (18)
++ Bitmap: 9 x 10
++ Advance: 8
++ Offset: 0 x -1
++ ________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |b#######6|
++ | cc |
++ | 2##### |
++ | b#3 |
++ | cc |
++ | a#2 7a2 |
++ | 2##6##4 |
++ | 1a##c |
++ -&gt;| a#3 |&lt;-
++ | 253 |
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ --------
++
++Char 0x0927 'ध'
++ Font: lohit_hi (18)
++ Bitmap: 10 x 9
++ Advance: 10
++ Offset: 0 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |4########4|
++ |b#4#b cc |
++ |9###3 cc |
++ | b###4cc |
++ | a#7 cc |
++ | cc 6#c |
++ | a#46##c |
++ | 1a##a#c |
++ -&gt;| cc |&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0928 'न'
++ Font: lohit_hi (18)
++ Bitmap: 9 x 9
++ Advance: 9
++ Offset: 0 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |c#######b|
++ | cc |
++ | cc |
++ |2######c |
++ | b## cc |
++ | 198 cc |
++ | cc |
++ | cc |
++ -&gt;| cc |&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x092a 'प'
++ Font: lohit_hi (18)
++ Bitmap: 10 x 9
++ Advance: 8
++ Offset: -1 x 0
++ ________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |1########3|
++ | cc cc |
++ | cc cc |
++ | cc cc |
++ | cc cc |
++ | a#59#c |
++ | 1b###c |
++ | cc |
++ -&gt;| cc |&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ --------
++
++Char 0x092b 'फ'
++ Font: lohit_hi (18)
++ Bitmap: 12 x 9
++ Advance: 11
++ Offset: 0 x 0
++ ___________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |b##########6|
++ | cc cc |
++ | cc cc |
++ | cc c####1 |
++ | c#12##34#a |
++ | 4####c cb |
++ | cc 4c8 |
++ | cc 9b1 |
++ -&gt;| cc |&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ -----------
++
++Char 0x092c 'ब'
++ Font: lohit_hi (18)
++ Bitmap: 10 x 9
++ Advance: 8
++ Offset: -1 x 0
++ ________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |1########3|
++ | cc |
++ | 5##c#c |
++ | 6##7 cc |
++ | b#c#9cc |
++ | 9#56##c |
++ | 1a####c |
++ | cc |
++ -&gt;| cc |&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ --------
++
++Char 0x092d 'भ'
++ Font: lohit_hi (18)
++ Bitmap: 10 x 9
++ Advance: 10
++ Offset: 0 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |4########7|
++ |b#3#b cc |
++ |5#9cc cc |
++ | cc cc |
++ | 7###### |
++ | 1b#c cc |
++ | cc |
++ | cc |
++ -&gt;| cc |&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x092e 'म'
++ Font: lohit_hi (18)
++ Bitmap: 9 x 9
++ Advance: 9
++ Offset: 0 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |b#######b|
++ | cc cc |
++ | cc cc |
++ | cc cc |
++ |1######c |
++ | 3#9 cc |
++ | cc |
++ | cc |
++ -&gt;| cc |&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x092f 'य'
++ Font: lohit_hi (18)
++ Bitmap: 10 x 9
++ Advance: 9
++ Offset: -1 x 0
++ _________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |1########b|
++ | 2b8 cc |
++ | cc cc |
++ | 4#a cc |
++ | 4#a cc |
++ | 88 2c#c |
++ | 2b####c |
++ | cc |
++ -&gt;| cc |&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ---------
++
++Char 0x0930 'र'
++ Font: lohit_hi (18)
++ Bitmap: 8 x 9
++ Advance: 7
++ Offset: -1 x 0
++ _______
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |1c#####b|
++ | cc |
++ | 1 cc |
++ | 5#a3#a |
++ | c###3 |
++ | 3#a |
++ | 7#7 |
++ | 9#5 |
++ -&gt;| 9a2|&lt;-
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ -------
++
++Char 0x0931 'ऱ'
++ Font: lohit_hi (18)
++ Bitmap: 8 x 9
++ Advance: 7
++ Offset: -1 x 0
++ _______
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |1######b|
++ | cc |
++ | 131 cc |
++ | 6#b2#b |
++ | c###3 |
++ | 3#a |
++ | 7#7 |
++ | 9#5 |
++ -&gt;| ac29b1|&lt;-
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ -------
++
++Char 0x0932 'ल'
++ Font: lohit_hi (18)
++ Bitmap: 11 x 9
++ Advance: 11
++ Offset: 0 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |b#########a|
++ | cc |
++ | cc |
++ | 1b###c##c |
++ | a#51##9cc |
++ | cc 1#c cc |
++ | a#2 11 cc |
++ | 2##4 cc |
++ -&gt;| 1a#8 cc |&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0933 'ळ'
++ Font: lohit_hi (18)
++ Bitmap: 11 x 8
++ Advance: 11
++ Offset: 0 x 1
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |b#########b|
++ | cc |
++ | cc |
++ | 2###a###2 |
++ | b#3c#a3#a |
++ | cc 8#4 cc |
++ | b#4b#93#a |
++ | 2###6###2 |
++ -&gt;|...........|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0935 'व'
++ Font: lohit_hi (18)
++ Bitmap: 9 x 9
++ Advance: 8
++ Offset: 0 x 0
++ ________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |b#######5|
++ | cc |
++ | 9###c |
++ | 9#61cc |
++ | cc cc |
++ | b#35## |
++ | 2####c |
++ | cc |
++ -&gt;| cc |&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ --------
++
++Char 0x0936 'श'
++ Font: lohit_hi (18)
++ Bitmap: 11 x 9
++ Advance: 10
++ Offset: 0 x 0
++ __________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ | 4##c####c1|
++ | c#6#9 cc |
++ | c#6## cc |
++ | 4###c cc |
++ | 6#8 cc |
++ |2###a cc |
++ | 3#c1 cc |
++ | 2##2 cc |
++ -&gt;| 2a7 cc |&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ ----------
++
++Char 0x0937 'ष'
++ Font: lohit_hi (18)
++ Bitmap: 10 x 9
++ Advance: 8
++ Offset: -1 x 0
++ ________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |1########2|
++ | ##8 cc |
++ | c##9cc |
++ | cc3##c |
++ | c#24#c |
++ | 3####c |
++ | cc |
++ | cc |
++ -&gt;| cc |&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ --------
++
++Char 0x0938 'स'
++ Font: lohit_hi (18)
++ Bitmap: 11 x 9
++ Advance: 10
++ Offset: 0 x 0
++ __________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |b#########8|
++ | cc cc |
++ | cc cc |
++ |5a5cc cc |
++ |1######## |
++ | 4c7 cc |
++ | 8c3 cc |
++ | cc1 cc |
++ -&gt;| 4b7 cc |&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ ----------
++
++Char 0x0939 'ह'
++ Font: lohit_hi (18)
++ Bitmap: 10 x 10
++ Advance: 8
++ Offset: -1 x -1
++ ________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |1#######c1|
++ | cc |
++ | 7####c |
++ | cc |
++ | 5####2 |
++ | 8#84#b |
++ | cc cc |
++ | b#1 66 |
++ -&gt;| 3##61 |&lt;-
++ | 19##2 |
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ --------
++
++Char 0x093c '़'
++ Font: lohit_hi (18)
++ Bitmap: 3 x 1
++ Advance: 0
++ Offset: -8 x 0
++
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ -&gt;|5c6.....|&lt;-
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++
++
++Char 0x093e 'ा'
++ Font: lohit_hi (18)
++ Bitmap: 5 x 9
++ Advance: 5
++ Offset: 0 x 0
++ _____
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |b###9|
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ -&gt;| cc |&lt;-
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ -----
++
++Char 0x093f 'ि'
++ Font: lohit_hi (18)
++ Bitmap: 10 x 13
++ Advance: 5
++ Offset: 0 x 0
++ _____
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ | 5###7 |
++ | 5#a26##2 |
++ | bc1 2##1|
++ | cc 4#a|
++ |b###9 |
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ -&gt;| cc |&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ -----
++
++Char 0x0940 'ी'
++ Font: lohit_hi (18)
++ Bitmap: 8 x 13
++ Advance: 5
++ Offset: -3 x 0
++ _____
++ |........|
++ |........|
++ |........|
++ |........|
++ |1b#c2 |
++ |a#6#c1 |
++ |bc15c7 |
++ |3a6 cb |
++ | b###9|
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ -&gt;| cc |&lt;-
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ -----
++
++Char 0x0941 'ु'
++ Font: lohit_hi (18)
++ Bitmap: 8 x 5
++ Advance: 0
++ Offset: -7 x -4
++
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ -&gt;| 4###3|&lt;-
++ | 585#b|
++ |7#6 cc|
++ |2##b27#9|
++ | 6###9 |
++ |........|
++
++
++Char 0x0942 'ू'
++ Font: lohit_hi (18)
++ Bitmap: 7 x 4
++ Advance: 0
++ Offset: -4 x -3
++
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -&gt;|1b##8 |&lt;-
++ |a#56#b |
++ |b#215#8|
++ |4###2aa|
++ |.......|
++ |.......|
++
++
++Char 0x0943 'ृ'
++ Font: lohit_hi (18)
++ Bitmap: 5 x 4
++ Advance: 0
++ Offset: -4 x -4
++
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ -&gt;|.....|&lt;-
++ |3###1|
++ |c#1 |
++ |b#355|
++ |2###9|
++ |.....|
++
++
++Char 0x0945 'ॅ'
++ Font: lohit_hi (18)
++ Bitmap: 7 x 3
++ Advance: 0
++ Offset: -5 x 10
++
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |153 55|
++ | c#15#9|
++ | 3###a |
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -&gt;|.......|&lt;-
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++
++
++Char 0x0947 'े'
++ Font: lohit_hi (18)
++ Bitmap: 6 x 5
++ Advance: 0
++ Offset: -6 x 8
++
++ |......|
++ |......|
++ |......|
++ |......|
++ |3c9 |
++ | 7#6 |
++ | 9#3 |
++ | ac1|
++ | 21|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ -&gt;|......|&lt;-
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++
++
++Char 0x0948 'ै'
++ Font: lohit_hi (18)
++ Bitmap: 7 x 5
++ Advance: 0
++ Offset: -7 x 8
++
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ | 7c4 |
++ |1aa3c9 |
++ | 4##ba |
++ | 8#c5|
++ | 131|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -&gt;|.......|&lt;-
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++
++
++Char 0x0949 'ॉ'
++ Font: lohit_hi (18)
++ Bitmap: 8 x 13
++ Advance: 5
++ Offset: -3 x 0
++ _____
++ |........|
++ |........|
++ |........|
++ |........|
++ |142 242 |
++ |2#a b#3 |
++ | 5###6 |
++ | |
++ | b###9|
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ -&gt;| cc |&lt;-
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ -----
++
++Char 0x094b 'ो'
++ Font: lohit_hi (18)
++ Bitmap: 7 x 14
++ Advance: 5
++ Offset: -2 x -1
++ _____
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |692 |
++ |1cb |
++ | 4#8 |
++ | 8c4 |
++ | ####c|
++ | 3##52|
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ -&gt;| cc |&lt;-
++ | 22 |
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -----
++
++Char 0x094c 'ौ'
++ Font: lohit_hi (18)
++ Bitmap: 8 x 14
++ Advance: 5
++ Offset: -3 x -1
++ _____
++ |........|
++ |........|
++ |........|
++ |........|
++ | 77 |
++ |1647a2 |
++ |1b#896 |
++ | 5##8 |
++ | ####c|
++ | 3##52|
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ -&gt;| cc |&lt;-
++ | 22 |
++ |........|
++ |........|
++ |........|
++ |........|
++ -----
++
++Char 0x094d '्'
++ Font: lohit_hi (18)
++ Bitmap: 6 x 3
++ Advance: 0
++ Offset: -3 x -3
++
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ -&gt;|......|&lt;-
++ |5##2 |
++ |12a#5 |
++ | 7a2|
++ |......|
++ |......|
++
++
++Char 0x0964 '।'
++ Font: lohit_hi (18)
++ Bitmap: 2 x 9
++ Advance: 5
++ Offset: 1 x 0
++ _____
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.99..|
++ |.cc..|
++ |.cc..|
++ |.cc..|
++ |.cc..|
++ |.cc..|
++ |.cc..|
++ |.cc..|
++ -&gt;|.cc..|&lt;-
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ -----
++
++Char 0x0966 '०'
++ Font: lohit_hi (18)
++ Bitmap: 7 x 7
++ Advance: 10
++ Offset: 1 x 1
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 4###5 ..|
++ |.4#c2b#5..|
++ |.ac2 1cb..|
++ |.cc cc..|
++ |.ac2 1cb..|
++ |.4#c2a#5..|
++ |. 4###5 ..|
++ -&gt;|..........|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0967 '१'
++ Font: lohit_hi (18)
++ Bitmap: 6 x 10
++ Advance: 10
++ Offset: 2 x -1
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..2c##b1..|
++ |..a#35#8..|
++ |..cc 1#b..|
++ |..9#68#c..|
++ |..19###c..|
++ |.. cc..|
++ |.. cc..|
++ |.. cc..|
++ -&gt;|.. cc..|&lt;-
++ |.. 88..|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0968 '२'
++ Font: lohit_hi (18)
++ Bitmap: 7 x 10
++ Advance: 10
++ Offset: 1 x -1
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.1a###8 ..|
++ |.5a4 7#7..|
++ |. cc..|
++ |. cc..|
++ |. 5#9..|
++ |.1#####1..|
++ |. 9##c ..|
++ |. 9#5 ..|
++ -&gt;|. c#2..|&lt;-
++ |. 385..|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x096b '५'
++ Font: lohit_hi (18)
++ Bitmap: 7 x 11
++ Advance: 10
++ Offset: 1 x -1
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |.484 ..|
++ |.9c3 ..|
++ |.bc a#9..|
++ |.bc ##c..|
++ |.7#7 ##4..|
++ |. 8####1..|
++ |. 6b5..|
++ |. 3c9..|
++ |. #c..|
++ -&gt;|. 2#c..|&lt;-
++ |. 363..|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x096c '६'
++ Font: lohit_hi (18)
++ Bitmap: 7 x 12
++ Advance: 10
++ Offset: 2 x -3
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..1b###4 .|
++ |..b#4242 .|
++ |..cc .|
++ |..a#6 .|
++ |..2####3 .|
++ |..8#6 .|
++ |..bc 132.|
++ |..5##4c#b.|
++ -&gt;|.. 2b###4.|&lt;-
++ |.. 8#4.|
++ |.. 2#b.|
++ |.. 11.|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x096e '८'
++ Font: lohit_hi (18)
++ Bitmap: 7 x 9
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 7b4..|
++ |. 6#a ..|
++ |. 5#a ..|
++ |. 5#b ..|
++ |.4#c ..|
++ |.b#2 ..|
++ |.c# ..|
++ |.7#8 3#c..|
++ -&gt;|. 7###b1..|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x096f '९'
++ Font: lohit_hi (18)
++ Bitmap: 7 x 12
++ Advance: 10
++ Offset: 1 x -2
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. a##a ..|
++ |.8#88#8 ..|
++ |.bc1 #c ..|
++ |.ab11#c ..|
++ |.4#98#8 ..|
++ |. 9##a1 ..|
++ |. ab1 ..|
++ |. 1bb1 ..|
++ |. 2#a ..|
++ -&gt;|. 4#8..|&lt;-
++ |. 5#b..|
++ |. 781..|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0982 'ং'
++ Font: MuktiNarrow (18)
++ Bitmap: 8 x 11
++ Advance: 9
++ Offset: 2 x 1
++ _________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..3###7 |
++ |..c#6## |
++ |..##6## |
++ |..7###3 |
++ |.. |
++ |..b#5 |
++ |..1##5 |
++ |.. 2##5 |
++ |.. 2##5 |
++ |.. 2##4 |
++ |.. 2##2|
++ -&gt;|..........|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ---------
++
++Char 0x09ac 'ব'
++ Font: MuktiNarrow (18)
++ Bitmap: 10 x 13
++ Advance: 10
++ Offset: 0 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |1333333321|
++ |#########c|
++ | ##2 |
++ | 3###1 |
++ | 19####1 |
++ | 5##8 ##1 |
++ |8##2 ##1 |
++ |2##6 ##1 |
++ | 1##7 ##1 |
++ | 1c#9##1 |
++ | a###1 |
++ | 9##1 |
++ -&gt;| 33 |&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x09b2 'ল'
++ Font: MuktiNarrow (18)
++ Bitmap: 14 x 13
++ Advance: 13
++ Offset: 0 x 0
++ _____________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |1333333333332 |
++ |#############8|
++ | ##1 |
++ | ##1 |
++ | 9###c#####1 |
++ | 8#a2b##4###1 |
++ | ##1 1 2##1 |
++ | ##1 ##1 |
++ | 8#b1 ##1 |
++ | 8##8 ##1 |
++ | ##1 |
++ | ##1 |
++ -&gt;| 55 |&lt;-
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ -------------
++
++Char 0x09be 'া'
++ Font: MuktiNarrow (18)
++ Bitmap: 6 x 13
++ Advance: 5
++ Offset: 0 x 0
++ _____
++ |......|
++ |......|
++ |......|
++ |......|
++ |13332 |
++ |#####5|
++ | 2## |
++ | 1## |
++ | 1## |
++ | 1## |
++ | 1## |
++ | 1## |
++ | 1## |
++ | 1## |
++ | 1## |
++ | 1## |
++ -&gt;| 11 |&lt;-
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ -----
++
++Char 0x0a02 'ਂ'
++ Font: lohit_pa (19)
++ Bitmap: 3 x 2
++ Advance: 0
++ Offset: -3 x 11
++
++ |...|
++ |...|
++ |...|
++ |...|
++ |b#9|
++ |9#7|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ -&gt;|...|&lt;-
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++
++
++Char 0x0a05 'ਅ'
++ Font: lohit_pa (19)
++ Bitmap: 13 x 10
++ Advance: 12
++ Offset: 0 x -1
++ ____________
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |a##1 c##b|
++ | 5#94##5 cc |
++ | #####9 cc |
++ | 1##61##9## |
++ | 9## ##### |
++ | ##9 8#c cc |
++ | 6826##9 cc |
++ | 7##3 cc |
++ -&gt;| cc |&lt;-
++ | 33 |
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ ------------
++
++Char 0x0a06 'ਆ'
++ Font: lohit_pa (19)
++ Bitmap: 18 x 10
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |a##1 c#######a|
++ | 5#94##5 cc cc |
++ | #####9 cc cc |
++ | 1##61##9## cc |
++ | 9## ##### cc |
++ | ##9 8#c cc 22 |
++ | 6826##9 cc |
++ | 7##3 cc |
++ -&gt;| cc |&lt;-
++ | 33 |
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ -----------------
++
++Char 0x0a07 'ਇ'
++ Font: lohit_pa (19)
++ Bitmap: 14 x 13
++ Advance: 14
++ Offset: 0 x 0
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ | 1c##a |
++ | a#57#7 |
++ | ## 77 |
++ | cc |
++ |##############|
++ | cc c# cc |
++ | cc 8#5 cc |
++ | cc 1##5 cc |
++ | cc 2#####b |
++ | cc 1b#3 |
++ | cc 6a3 |
++ | cc 9#7 166 |
++ -&gt;| cc 6###c2 |&lt;-
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ --------------
++
++Char 0x0a08 'ਈ'
++ Font: lohit_pa (19)
++ Bitmap: 15 x 13
++ Advance: 14
++ Offset: -1 x 0
++ ______________
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ | a##b1 |
++ | 8#55#a |
++ | 77 ## |
++ | cc |
++ |1##############|
++ | cc ## cc |
++ | 9#4 ## cc |
++ | 3##2 ## cc |
++ | 8####c cc |
++ | 6#c1 cc |
++ | ##2 cc |
++ | 3##4 462 cc |
++ -&gt;| 2c###4 cc |&lt;-
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ --------------
++
++Char 0x0a09 'ਉ'
++ Font: lohit_pa (19)
++ Bitmap: 12 x 17
++ Advance: 11
++ Offset: -1 x -3
++ ___________
++ |............|
++ |............|
++ |............|
++ | 8###7 |
++ | b#729#a |
++ | 6#8 8#5 |
++ | b#2 2#b |
++ | cc cc |
++ |2###########|
++ | cc c# |
++ | c# 3#b |
++ | a#2 3##4 |
++ | 7######5 |
++ | 2c9 6#9 |
++ | a#2 ## |
++ | 2##24#b |
++ -&gt;| 3###c2 |&lt;-
++ | |
++ | 34 142 |
++ | 8#####4 |
++ |............|
++ |............|
++ -----------
++
++Char 0x0a0a 'ਊ'
++ Font: lohit_pa (19)
++ Bitmap: 12 x 18
++ Advance: 11
++ Offset: -1 x -4
++ ___________
++ |............|
++ |............|
++ |............|
++ | 8###7 |
++ | b#729#a |
++ | 6#8 8#5 |
++ | b#2 2#b |
++ | cc cc |
++ |2###########|
++ | cc c# |
++ | c# 3#b |
++ | a#2 3##4 |
++ | 7######5 |
++ | 2c9 6#9 |
++ | a#2 ## |
++ | 2##24#b |
++ -&gt;| 3###c2 |&lt;-
++ | 34 142 |
++ | 8#####3 |
++ | 571 363 |
++ | 7#####3 |
++ |............|
++ -----------
++
++Char 0x0a10 'ਐ'
++ Font: lohit_pa (19)
++ Bitmap: 13 x 15
++ Advance: 12
++ Offset: 0 x -1
++ ____________
++ |.............|
++ |.............|
++ |.............|
++ | ###8 |
++ | 233a8 |
++ | 76 |
++ | 9####83 |
++ | 242 275 |
++ |a##1 c##b|
++ | 5#94##5 cc |
++ | #####9 cc |
++ | 1##61##9## |
++ | 9## ##### |
++ | ##9 8#c cc |
++ | 6825##9 cc |
++ | 7##4 cc |
++ -&gt;| 21 cc |&lt;-
++ | 33 |
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ ------------
++
++Char 0x0a13 'ਓ'
++ Font: lohit_pa (19)
++ Bitmap: 12 x 14
++ Advance: 11
++ Offset: -1 x 0
++ ___________
++ |............|
++ |............|
++ |............|
++ | 5#####c |
++ | 8#c2 |
++ | 5#a |
++ | a#2 |
++ | cc |
++ |2###########|
++ | cc c# |
++ | cc 2#b |
++ | ac1 3##5 |
++ | 7######6 |
++ | 2b8 7#9 |
++ | ac1 ## |
++ | 2##24#b |
++ -&gt;| 3###c2 |&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ -----------
++
++Char 0x0a15 'ਕ'
++ Font: lohit_pa (19)
++ Bitmap: 12 x 10
++ Advance: 10
++ Offset: -1 x -1
++ __________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |2##########2|
++ | cc |
++ | 1ca |
++ | 1c###7c8 |
++ | a#51c##3 |
++ | ## 3## |
++ | a#64###4 |
++ | 1b##a5#9 |
++ -&gt;| cc |&lt;-
++ | 33 |
++ |............|
++ |............|
++ |............|
++ |............|
++ ----------
++
++Char 0x0a16 'ਖ'
++ Font: lohit_pa (19)
++ Bitmap: 11 x 10
++ Advance: 10
++ Offset: 0 x -1
++ __________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |a##7 ###a|
++ | 2#c ## |
++ | ####### |
++ | 2ca ## |
++ | 9#5 ## |
++ | 6#8 ## |
++ | 8#927## |
++ | 5##### |
++ -&gt;| ## |&lt;-
++ | 33 |
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ ----------
++
++Char 0x0a17 'ਗ'
++ Font: lohit_pa (19)
++ Bitmap: 12 x 10
++ Advance: 11
++ Offset: 0 x -1
++ ___________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |###########9|
++ | cc cc |
++ | cc cc |
++ | 4##### cc |
++ | c#1 cc cc |
++ | c# cc cc |
++ | 6#7 cc cc |
++ | a#7#c cc |
++ -&gt;| 9##4 cc |&lt;-
++ | 33 |
++ |............|
++ |............|
++ |............|
++ |............|
++ -----------
++
++Char 0x0a18 'ਘ'
++ Font: lohit_pa (19)
++ Bitmap: 12 x 10
++ Advance: 12
++ Offset: 0 x -1
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |c##6 7#8c##b|
++ | 3#b ##ccc |
++ | #c ###cc |
++ | 3#a c#bcc |
++ | a#5 8#7cc |
++ | 9#a3##8## |
++ | 7####### |
++ | 6##c |
++ -&gt;| cc |&lt;-
++ | 33 |
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x0a1a 'ਚ'
++ Font: lohit_pa (19)
++ Bitmap: 11 x 9
++ Advance: 10
++ Offset: 0 x 0
++ __________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |##########7|
++ | cc |
++ | 22 cc |
++ | a#c cc |
++ |2#######c |
++ | c# cc |
++ | 6#8 cc |
++ | 9#83#b |
++ -&gt;| 6###3 |&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ ----------
++
++Char 0x0a1b 'ਛ'
++ Font: lohit_pa (19)
++ Bitmap: 11 x 9
++ Advance: 11
++ Offset: 0 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |###########|
++ | ## |
++ | 4####### |
++ | c#1 |
++ | ##1 |
++ | 2#######3 |
++ | b#2cc 3#b |
++ | b#2cc 3#b |
++ -&gt;| 3#######3 |&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0a1c 'ਜ'
++ Font: lohit_pa (19)
++ Bitmap: 12 x 10
++ Advance: 10
++ Offset: -1 x -1
++ __________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |2##########1|
++ | ## |
++ | ## |
++ | 274 ## |
++ | 4### ## |
++ | a####### |
++ | ## ## |
++ | ## ## |
++ -&gt;| ## ## |&lt;-
++ | 55 55 |
++ |............|
++ |............|
++ |............|
++ |............|
++ ----------
++
++Char 0x0a1d 'ਝ'
++ Font: lohit_pa (19)
++ Bitmap: 10 x 9
++ Advance: 9
++ Offset: 0 x 0
++ _________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |#########6|
++ | ab #c |
++ | 2ba16#8 |
++ | 8#####1 |
++ | 24117#a |
++ | ## |
++ | a##5c#8 |
++ | 6####7 |
++ -&gt;| 2##2 |&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ---------
++
++Char 0x0a1f 'ਟ'
++ Font: lohit_pa (19)
++ Bitmap: 10 x 9
++ Advance: 9
++ Offset: 0 x 0
++ _________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |#########6|
++ | cc |
++ | cc |
++ | 7###c |
++ | 2##a2 |
++ |1##2 |
++ |1##1 |
++ | 3##3 693 |
++ -&gt;| 2c###3 |&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ---------
++
++Char 0x0a20 'ਠ'
++ Font: lohit_pa (19)
++ Bitmap: 12 x 9
++ Advance: 10
++ Offset: -1 x 0
++ __________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |2##########1|
++ | ## |
++ | ## |
++ | 8##7 |
++ | 1c#99#c1 |
++ | 9#6 6#9 |
++ | ## ## |
++ | 9#8118#9 |
++ -&gt;| 8####7 |&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ----------
++
++Char 0x0a21 'ਡ'
++ Font: lohit_pa (19)
++ Bitmap: 11 x 9
++ Advance: 10
++ Offset: -1 x 0
++ __________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |2##########|
++ | 1#c |
++ | 2c#####8 |
++ | 2######2 |
++ | 6#9 |
++ | 3###81#c |
++ | c#36###a |
++ | b#3 7##3 |
++ -&gt;| 2####b2 |&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ ----------
++
++Char 0x0a22 'ਢ'
++ Font: lohit_pa (19)
++ Bitmap: 11 x 9
++ Advance: 10
++ Offset: 0 x 0
++ __________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |##########b|
++ | ## |
++ |1c#b ## |
++ |9######## |
++ | cc |
++ | a#2 |
++ | 5#88###5 |
++ | 9##51ba |
++ -&gt;| 6####2 |&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ ----------
++
++Char 0x0a23 'ਣ'
++ Font: lohit_pa (19)
++ Bitmap: 11 x 9
++ Advance: 10
++ Offset: 0 x 0
++ __________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |##########a|
++ | 6##2 |
++ | 2###4 |
++ | 3####aa8 |
++ | 5##46c5 |
++ |2##1 |
++ | 9#8 1 |
++ | 8##3 4b7 |
++ -&gt;| 4####5 |&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ ----------
++
++Char 0x0a24 'ਤ'
++ Font: lohit_pa (19)
++ Bitmap: 11 x 9
++ Advance: 10
++ Offset: -1 x 0
++ __________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |2##########|
++ | 3c9 |
++ | 5#8 |
++ | 3######2 |
++ | 4######1 |
++ | 5#9 |
++ | 461 #c |
++ | 9#71 8#9 |
++ -&gt;| 5####8 |&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ ----------
++
++Char 0x0a25 'ਥ'
++ Font: lohit_pa (19)
++ Bitmap: 10 x 10
++ Advance: 10
++ Offset: 0 x -1
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |#########c|
++ | 7#6 cc |
++ | 3c9 cc |
++ | 4###### |
++ | b#3 cc |
++ | c#2 cc |
++ | 2##46## |
++ | 2b#### |
++ -&gt;| cc |&lt;-
++ | 33 |
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0a26 'ਦ'
++ Font: lohit_pa (19)
++ Bitmap: 11 x 9
++ Advance: 10
++ Offset: 0 x 0
++ __________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |##########a|
++ | ## |
++ | 11 ## |
++ |1##c ## |
++ |8######## |
++ | cc |
++ | 9#4 |
++ | 2##3 693 |
++ -&gt;| 3####5 |&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ ----------
++
++Char 0x0a27 'ਧ'
++ Font: lohit_pa (19)
++ Bitmap: 10 x 10
++ Advance: 10
++ Offset: 0 x -1
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |#########c|
++ | 5#8 cc |
++ | cc cc |
++ | 2#b cc |
++ | 8#7 cc |
++ | ##3 cc |
++ | 3##45## |
++ | 2c#### |
++ -&gt;| cc |&lt;-
++ | 33 |
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0a28 'ਨ'
++ Font: lohit_pa (19)
++ Bitmap: 11 x 9
++ Advance: 10
++ Offset: -1 x 0
++ __________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |1##########|
++ | ## |
++ | ## |
++ | 1c##b1 |
++ | 2##55##1 |
++ | a#5 5#a |
++ | ## ## |
++ | a#4 5#a |
++ -&gt;| 2c#67#c1 |&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ ----------
++
++Char 0x0a2a 'ਪ'
++ Font: lohit_pa (19)
++ Bitmap: 11 x 10
++ Advance: 10
++ Offset: -1 x -1
++ __________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |1###2 c##b|
++ | 6#9 cc |
++ | ## cc |
++ | 2#c cc |
++ | 8#7 cc |
++ | ##3 cc |
++ | 3##45## |
++ | 2c#### |
++ -&gt;| cc |&lt;-
++ | 33 |
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ ----------
++
++Char 0x0a2b 'ਫ'
++ Font: lohit_pa (19)
++ Bitmap: 10 x 9
++ Advance: 9
++ Offset: 0 x 0
++ _________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |#########9|
++ | cc |
++ | 1c##### |
++ | a#5 |
++ | ## |
++ | b#a###3 |
++ | 5##22#c |
++ | 8c42#c |
++ -&gt;| 7###4 |&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ---------
++
++Char 0x0a2c 'ਬ'
++ Font: lohit_pa (19)
++ Bitmap: 12 x 10
++ Advance: 10
++ Offset: -1 x -1
++ __________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |2##########2|
++ | 3c9 cc |
++ | 9#91 cc |
++ | b##### |
++ | 6#b cc |
++ | ##1 cc |
++ | 6#b39## |
++ | 5##### |
++ -&gt;| cc |&lt;-
++ | 33 |
++ |............|
++ |............|
++ |............|
++ |............|
++ ----------
++
++Char 0x0a2d 'ਭ'
++ Font: lohit_pa (19)
++ Bitmap: 10 x 9
++ Advance: 9
++ Offset: 0 x 0
++ _________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |#########a|
++ | cc |
++ | 2###8#c |
++ | b#47##9 |
++ | b#35##7 |
++ | 3###9#c |
++ | #c |
++ | 9a2 9#7 |
++ -&gt;| 1a###7 |&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ---------
++
++Char 0x0a2e 'ਮ'
++ Font: lohit_pa (19)
++ Bitmap: 12 x 10
++ Advance: 10
++ Offset: -1 x -1
++ __________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |2###6 ###a|
++ | 3#b cc |
++ | #c cc |
++ | ## cc |
++ | 1######c |
++ | 7## cc |
++ | c#c cc |
++ | ##a cc |
++ -&gt;| 6a4 cc |&lt;-
++ | 33 |
++ |............|
++ |............|
++ |............|
++ |............|
++ ----------
++
++Char 0x0a2f 'ਯ'
++ Font: lohit_pa (19)
++ Bitmap: 12 x 10
++ Advance: 11
++ Offset: 0 x -1
++ ___________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |###########7|
++ | 4#a cc |
++ | #c cc |
++ | #c cc |
++ | 4#a ####c |
++ | 8#8 cc cc |
++ | 1c#7#c cc |
++ | 8##b cc |
++ -&gt;| cc |&lt;-
++ | 33 |
++ |............|
++ |............|
++ |............|
++ |............|
++ -----------
++
++Char 0x0a30 'ਰ'
++ Font: lohit_pa (19)
++ Bitmap: 10 x 9
++ Advance: 9
++ Offset: 0 x 0
++ _________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |#########7|
++ | ## |
++ | ## |
++ | 4###### |
++ | c#1 ## |
++ | b#1 ## |
++ | 5#9 ## |
++ | 7#a2#c |
++ -&gt;| 5###4 |&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ---------
++
++Char 0x0a32 'ਲ'
++ Font: lohit_pa (19)
++ Bitmap: 13 x 9
++ Advance: 11
++ Offset: -1 x 0
++ ___________
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |2###########3|
++ | 8c3 4c8 |
++ | 3b8 8c3 |
++ | 3##4##3 |
++ | 5#######5 |
++ | c# 3631#c |
++ | c# #c |
++ | 7#a 1a#7 |
++ -&gt;| 6##7##6 |&lt;-
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ -----------
++
++Char 0x0a35 'ਵ'
++ Font: lohit_pa (19)
++ Bitmap: 11 x 9
++ Advance: 10
++ Offset: -1 x 0
++ __________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |1##########|
++ | cc |
++ | 4######c |
++ | b#1 |
++ | bc1 |
++ | 5######c |
++ | c#1 |
++ | 7#8 |
++ -&gt;| 8###b |&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ ----------
++
++Char 0x0a36 'ਸ਼'
++ Font: lohit_pa (19)
++ Bitmap: 11 x 10
++ Advance: 10
++ Offset: 0 x -1
++ __________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |##########a|
++ | 8#6 cc |
++ | 1ba cc |
++ | 99 cc |
++ | a#####c |
++ | 6## cc |
++ | b## cc |
++ | ##bb#4cc |
++ -&gt;| 6a4571cc |&lt;-
++ | 33 |
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ ----------
++
++Char 0x0a38 'ਸ'
++ Font: lohit_pa (19)
++ Bitmap: 11 x 10
++ Advance: 10
++ Offset: 0 x -1
++ __________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |##########a|
++ | 8#6 cc |
++ | 1ba cc |
++ | 99 cc |
++ | a#####c |
++ | 6## cc |
++ | b## cc |
++ | ##b cc |
++ -&gt;| 6a4 cc |&lt;-
++ | 33 |
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ ----------
++
++Char 0x0a39 'ਹ'
++ Font: lohit_pa (19)
++ Bitmap: 10 x 9
++ Advance: 10
++ Offset: 0 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |#########c|
++ | cc |
++ | cc |
++ | cc |
++ | 7##5 cc |
++ | ## cc |
++ | 7#8 cc |
++ | 7#b2#c |
++ -&gt;| 4###5 |&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0a3c '਼'
++ Font: lohit_pa (19)
++ Bitmap: 3 x 3
++ Advance: 0
++ Offset: -5 x -3
++
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ -&gt;|.....|&lt;-
++ |22 ..|
++ |c#5..|
++ |12 ..|
++ |.....|
++ |.....|
++
++
++Char 0x0a3e 'ਾ'
++ Font: lohit_pa (19)
++ Bitmap: 6 x 6
++ Advance: 5
++ Offset: 0 x 3
++ _____
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |#####8|
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ | 22 |
++ |......|
++ |......|
++ -&gt;|......|&lt;-
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ -----
++
++Char 0x0a3f 'ਿ'
++ Font: lohit_pa (19)
++ Bitmap: 8 x 14
++ Advance: 5
++ Offset: 0 x -1
++ _____
++ |........|
++ |........|
++ |........|
++ |........|
++ | 1c##a |
++ | a#57#7|
++ | ## 77|
++ | cc |
++ |#####8 |
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ -&gt;| cc |&lt;-
++ | 33 |
++ |........|
++ |........|
++ |........|
++ |........|
++ -----
++
++Char 0x0a40 'ੀ'
++ Font: lohit_pa (19)
++ Bitmap: 8 x 14
++ Advance: 5
++ Offset: -2 x -1
++ _____
++ |........|
++ |........|
++ |........|
++ |........|
++ |1c##a |
++ |a#46#8 |
++ |77 #c |
++ | cc |
++ | #####8|
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ | cc |
++ -&gt;| cc |&lt;-
++ | 33 |
++ |........|
++ |........|
++ |........|
++ |........|
++ -----
++
++Char 0x0a41 'ੁ'
++ Font: lohit_pa (19)
++ Bitmap: 7 x 2
++ Advance: 0
++ Offset: -8 x -3
++
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ -&gt;|........|&lt;-
++ |........|
++ |241 44.|
++ |4#####8.|
++ |........|
++ |........|
++
++
++Char 0x0a42 'ੂ'
++ Font: lohit_pa (19)
++ Bitmap: 7 x 4
++ Advance: 0
++ Offset: -8 x -4
++
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ -&gt;|........|&lt;-
++ |45 253.|
++ |8#####3.|
++ |571 363.|
++ |7#####3.|
++ |........|
++
++
++Char 0x0a47 'ੇ'
++ Font: lohit_pa (19)
++ Bitmap: 7 x 5
++ Advance: 0
++ Offset: -8 x 9
++
++ |........|
++ |........|
++ |........|
++ | 12 .|
++ |5###a1 .|
++ | 223b9 .|
++ | 55.|
++ | 11.|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ -&gt;|........|&lt;-
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++
++
++Char 0x0a48 'ੈ'
++ Font: lohit_pa (19)
++ Bitmap: 7 x 5
++ Advance: 0
++ Offset: -8 x 9
++
++ |........|
++ |........|
++ |........|
++ |6###3 .|
++ |1337a3 .|
++ | 571.|
++ |4####b6.|
++ | 43 177.|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ -&gt;|........|&lt;-
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++
++
++Char 0x0a4b 'ੋ'
++ Font: lohit_pa (19)
++ Bitmap: 7 x 3
++ Advance: 0
++ Offset: -8 x 10
++
++ |........|
++ |........|
++ |........|
++ |........|
++ |572131 .|
++ |2#####7.|
++ | 111a9.|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ -&gt;|........|&lt;-
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++
++
++Char 0x0a4c 'ੌ'
++ Font: lohit_pa (19)
++ Bitmap: 7 x 5
++ Advance: 0
++ Offset: -6 x 9
++
++ |.......|
++ |.......|
++ |.......|
++ |66 |
++ |5#####2|
++ | ac4b8|
++ | 79585|
++ | 121 |
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -&gt;|.......|&lt;-
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++
++
++Char 0x0a4d '੍'
++ Font: lohit_pa (19)
++ Bitmap: 8 x 4
++ Advance: 0
++ Offset: -4 x -4
++
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ -&gt;|........|&lt;-
++ |2###4 |
++ | 359#6 |
++ | 4b7 |
++ | 242|
++ |........|
++
++
++Char 0x0a5c 'ੜ'
++ Font: lohit_pa (19)
++ Bitmap: 11 x 9
++ Advance: 11
++ Offset: 0 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |##########b|
++ | ## |
++ | 4######7 |
++ | 5######8 |
++ | 6#9 |
++ | #c |
++ |3##a412b#6 |
++ | a######4 |
++ -&gt;| 197 7c5 |&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0a70 'ੰ'
++ Font: lohit_pa (19)
++ Bitmap: 5 x 4
++ Advance: 0
++ Offset: -4 x 10
++
++ |.....|
++ |.....|
++ |.....|
++ |4###2|
++ |b#4#a|
++ |88 88|
++ |25541|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ -&gt;|.....|&lt;-
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++
++
++Char 0x0a71 'ੱ'
++ Font: lohit_pa (19)
++ Bitmap: 7 x 3
++ Advance: 0
++ Offset: -5 x 11
++
++ |.......|
++ |.......|
++ |.......|
++ |88 187|
++ |6c6 9c3|
++ | 8###5 |
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -&gt;|.......|&lt;-
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++
++
++Char 0x0a82 'ં'
++ Font: lohit_gu (18)
++ Bitmap: 3 x 2
++ Advance: 0
++ Offset: -3 x 11
++
++ |...|
++ |...|
++ |...|
++ |...|
++ |a#a|
++ |a#9|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++ -&gt;|...|&lt;-
++ |...|
++ |...|
++ |...|
++ |...|
++ |...|
++
++
++Char 0x0a85 'અ'
++ Font: lohit_gu (18)
++ Bitmap: 12 x 9
++ Advance: 14
++ Offset: 0 x 0
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |5###a1 bb..|
++ |2316#b ##..|
++ | ## 99 ##..|
++ | 19#a ## ##..|
++ |8###c1 #####..|
++ | ##3 2#b ##..|
++ | 8#c2a#6 ##..|
++ | 8###6 ##..|
++ -&gt;| ##..|&lt;-
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ --------------
++
++Char 0x0a86 'આ'
++ Font: lohit_gu (18)
++ Bitmap: 16 x 9
++ Advance: 18
++ Offset: 0 x 0
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |5###a1 bb bb..|
++ |2316#b ## ##..|
++ | ## 99 ## ##..|
++ | 19#a ## ## ##..|
++ |8###c1 ##### ##..|
++ | ##3 2#b ## ##..|
++ | 8#c2a#6 ## ##..|
++ | 8###6 ## ##..|
++ -&gt;| ## ##..|&lt;-
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0x0a87 'ઇ'
++ Font: lohit_gu (18)
++ Bitmap: 10 x 12
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |. 6b5|
++ |. 6#c1|
++ |. c#2 |
++ |.1a##a1## |
++ |.a#71 1## |
++ |.##1 1## |
++ |.8#b2 ## |
++ |. c##a ##1 |
++ |.9#7 ## |
++ |.##1 3#b |
++ |.9#8 1##3 |
++ -&gt;|. 7####4 |&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ ----------
++
++Char 0x0a88 'ઈ'
++ Font: lohit_gu (18)
++ Bitmap: 11 x 12
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |. a##2|
++ |. 8#a#a|
++ |. ##188|
++ |.19##91## |
++ |.a#81 1#c |
++ |.##1 1## |
++ |.8#b1 ## |
++ |. c##a ## |
++ |.9#7 ## |
++ |.##1 4#a |
++ |.9#8 1##3 |
++ -&gt;|. 7####4 |&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ----------
++
++Char 0x0a89 'ઉ'
++ Font: lohit_gu (18)
++ Bitmap: 9 x 12
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |. 2c#b .|
++ |. 2##2 .|
++ |. c#2 .|
++ |.6#8a###3 .|
++ |.a#4 3## .|
++ |.##1 4#c .|
++ |.##17###3 .|
++ |.c#2 4##4.|
++ |.9#6 2#c.|
++ |.3##1 2#c.|
++ |. 7##2 a#6.|
++ -&gt;|. 6####5 .|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0a8f 'એ'
++ Font: lohit_gu (18)
++ Bitmap: 12 x 13
++ Advance: 14
++ Offset: 0 x 0
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ | 3##a2 ..|
++ | 5##7 ..|
++ | 8#b1..|
++ | 4#a..|
++ |5###a1 bb..|
++ |2316#b ##..|
++ | ## 99 ##..|
++ | 19#a ## ##..|
++ |8###c1 #####..|
++ | ##3 2#b ##..|
++ | 8#c2a#6 ##..|
++ | 8###6 ##..|
++ -&gt;| ##..|&lt;-
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ --------------
++
++Char 0x0a93 'ઓ'
++ Font: lohit_gu (18)
++ Bitmap: 16 x 13
++ Advance: 18
++ Offset: 0 x 0
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ | a##3 ..|
++ | 3##9 ..|
++ | 7#b1..|
++ | 4#a..|
++ |5###a1 bb bb..|
++ |2316#b ## ##..|
++ | ## 99 ## ##..|
++ | 19#a ## ## ##..|
++ |8###c1 ##### ##..|
++ | ##3 2#b ## ##..|
++ | 8#c2a#6 ## ##..|
++ | 8###6 ## ##..|
++ -&gt;| ## ##..|&lt;-
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0x0a95 'ક'
++ Font: lohit_gu (18)
++ Bitmap: 9 x 9
++ Advance: 9
++ Offset: 0 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ | 1a####5 |
++ | c#6 21 |
++ | b#5 33 |
++ | 1b####b1|
++ |18####8 |
++ |4a71 9#9 |
++ | ## |
++ |5#a1 6#b |
++ -&gt;| 6####a1 |&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0a96 'ખ'
++ Font: lohit_gu (18)
++ Bitmap: 11 x 9
++ Advance: 12
++ Offset: 0 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |3##7 bb.|
++ | 2## 11 ##.|
++ | ## ## ##.|
++ | ## #####.|
++ | ## ## ##.|
++ | ## 1## ##.|
++ | a#77#a ##.|
++ | 1c##b1 ##.|
++ -&gt;| ##.|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x0a97 'ગ'
++ Font: lohit_gu (18)
++ Bitmap: 9 x 9
++ Advance: 11
++ Offset: 0 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ | 9###8 bb..|
++ | 452b#8##..|
++ | 1####..|
++ | 1####..|
++ |8#41b#8##..|
++ |1a###7 ##..|
++ | ##..|
++ | ##..|
++ -&gt;| ##..|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0a98 'ઘ'
++ Font: lohit_gu (18)
++ Bitmap: 8 x 9
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |.3###8 bb..|
++ |.c#5 ##..|
++ |.c#3 ##..|
++ |.4###a ##..|
++ |.9#8 ##..|
++ |.##1 1##..|
++ |.a#6 3###..|
++ |.1b###c##..|
++ -&gt;|. ##..|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0a9a 'ચ'
++ Font: lohit_gu (18)
++ Bitmap: 11 x 9
++ Advance: 12
++ Offset: 0 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |1b###9 bb.|
++ | 32 7#9 ##.|
++ | 1## ##.|
++ | 9#9 1##.|
++ | ####9 6##.|
++ | ##1 1###.|
++ | 7#a 3####.|
++ | 7####4##.|
++ -&gt;| ##.|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x0a9b 'છ'
++ Font: lohit_gu (18)
++ Bitmap: 10 x 9
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |.2b##59##9 .|
++ |.b#5 9#87#8.|
++ |.c#4 ##1 #c.|
++ |.4#####54##.|
++ |.6#a 2c###b.|
++ |.c#1 4#8.|
++ |.##1 b#2.|
++ |.6#b1 1c#5 .|
++ -&gt;|. 5#####3 .|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x0a9c 'જ'
++ Font: lohit_gu (18)
++ Bitmap: 11 x 9
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |.3###91 5c7|
++ |.##37##14#b |
++ |.##228###b |
++ |.4###78##1 |
++ |. 2###2 |
++ |. 9###9 |
++ |. ##3## |
++ |. ##5#c |
++ -&gt;|. 4###4 |&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ -----------
++
++Char 0x0a9d 'ઝ'
++ Font: lohit_gu (18)
++ Bitmap: 11 x 9
++ Advance: 12
++ Offset: 0 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |1a###3 8#6.|
++ |2634##4b#6 .|
++ | 6###3 .|
++ | 2####6 .|
++ | 2##2a#6.|
++ | 6#9 1#c.|
++ |22 3##2 ##.|
++ |5####43 7#9.|
++ -&gt;| 5###a .|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x0a9f 'ટ'
++ Font: lohit_gu (18)
++ Bitmap: 8 x 9
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. 4####2 |
++ |. 8914#c |
++ |. 5#b |
++ |. 4##b1 |
++ |.1c#81 |
++ |.b#4 |
++ |.## 66|
++ |.9#8 1b#5|
++ -&gt;|. 7####4 |&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0aa0 'ઠ'
++ Font: lohit_gu (18)
++ Bitmap: 8 x 9
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 4#####1.|
++ |. ##3 .|
++ |. b#6 .|
++ |. 3####8 .|
++ |.4#b1 a#8.|
++ |.##1 1##.|
++ |.##1 1##.|
++ |.7#a 8#8.|
++ -&gt;|. 5####7 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0aa1 'ડ'
++ Font: lohit_gu (18)
++ Bitmap: 9 x 9
++ Advance: 10
++ Offset: 0 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ | 9####a .|
++ | 9#8 .|
++ | ##1 .|
++ | a#7 .|
++ | 9####c1.|
++ |11 6#b.|
++ |a#3 1##.|
++ |2##4 a#7.|
++ -&gt;| 1a####6 .|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0aa2 'ઢ'
++ Font: lohit_gu (18)
++ Bitmap: 8 x 9
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. 4####3 |
++ |. 23 3## |
++ |. 4#b |
++ |. 17##a1 |
++ |.3##81 |
++ |.c#35###6|
++ |.## ##3##|
++ |.9#88#c#a|
++ -&gt;|. 8####8 |&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0aa3 'ણ'
++ Font: lohit_gu (18)
++ Bitmap: 11 x 10
++ Advance: 14
++ Offset: 1 x -1
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |.bb 7###6 bb..|
++ |.## 121a#7##..|
++ |.## 1####..|
++ |.## 2#c##..|
++ |.## 1b#6##..|
++ |.## a###6 ##..|
++ |.c#2 ##..|
++ |.8#8 ##..|
++ -&gt;|. b#b2 4bc##..|&lt;-
++ |. 6#####5 ..|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ --------------
++
++Char 0x0aa4 'ત'
++ Font: lohit_gu (18)
++ Bitmap: 8 x 9
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |. bb..|
++ |. ##..|
++ |. 4######..|
++ |.5##2 ##..|
++ |.c#2 ##..|
++ |.## ##..|
++ |.b#3 ##..|
++ |.4##2 ##..|
++ -&gt;|. 3##9 ##..|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0aa5 'થ'
++ Font: lohit_gu (18)
++ Bitmap: 10 x 10
++ Advance: 11
++ Offset: 0 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ | 2####2 .|
++ | b#43#b bb.|
++ | ##11## ##.|
++ | 8##c#9 ##.|
++ | 9###1 ##.|
++ |1###7 ##.|
++ | 99 3##.|
++ | 3cb228###.|
++ | 2c###8##.|
++ -&gt;| ##.|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0aa6 'દ'
++ Font: lohit_gu (18)
++ Bitmap: 8 x 9
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.2c###b |
++ |.c#5 |
++ |.b#4 |
++ |.2####2 |
++ |.9#9 |
++ |.## |
++ |.##1 121|
++ |.8#9 1c#3|
++ -&gt;|. 7####4 |&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0aa7 'ધ'
++ Font: lohit_gu (18)
++ Bitmap: 9 x 10
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |. 5##6 .|
++ |.3##a3 bb.|
++ |.##2 ##.|
++ |.b#6 ##.|
++ |.1###a ##.|
++ |.8##3 2##.|
++ |.##1 b##.|
++ |.a#7 3####.|
++ |.1a####3##.|
++ -&gt;|. ##.|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0aa8 'ન'
++ Font: lohit_gu (18)
++ Bitmap: 9 x 9
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |. bb.|
++ |. ##.|
++ |. 7#######.|
++ |.8#99#7 ##.|
++ |.##11## ##.|
++ |.## ## ##.|
++ |.9#66#9 ##.|
++ |.1a##a1 ##.|
++ -&gt;|. ##.|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0aaa 'પ'
++ Font: lohit_gu (18)
++ Bitmap: 9 x 9
++ Advance: 11
++ Offset: 0 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |c##4 bb..|
++ | 4#c ##..|
++ | 1## ##..|
++ | 1## ##..|
++ | 1## 1##..|
++ | a#8 a##..|
++ | 1a#####..|
++ | ##..|
++ -&gt;| ##..|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0aab 'ફ'
++ Font: lohit_gu (18)
++ Bitmap: 8 x 11
++ Advance: 9
++ Offset: 0 x -2
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ | 8####4.|
++ | b#8 131.|
++ | c#3 22.|
++ | 3#####8.|
++ |18####4 .|
++ |4a6 2##6.|
++ | 3##.|
++ |4a7 9#9.|
++ -&gt;| 7####8 .|&lt;-
++ | 8#8 .|
++ | 7##2.|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0aac 'બ'
++ Font: lohit_gu (18)
++ Bitmap: 10 x 9
++ Advance: 13
++ Offset: 1 x 0
++ _____________
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |. 3###6 bb..|
++ |.4##3 ##..|
++ |.b#2 ##..|
++ |.## ## ##..|
++ |.##2 #####..|
++ |.7##26#c ##..|
++ |. 6####3 ##..|
++ |. ##..|
++ -&gt;|. ##..|&lt;-
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ -------------
++
++Char 0x0aad 'ભ'
++ Font: lohit_gu (18)
++ Bitmap: 11 x 9
++ Advance: 13
++ Offset: 1 x 0
++ _____________
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |. 3###a1 bb.|
++ |.3##47#b ##.|
++ |.b#4 ## ##.|
++ |.## ## ##.|
++ |.## b######.|
++ |.b#4 b#b ##.|
++ |.5#a ##.|
++ |. a#8 ##.|
++ -&gt;|. 9#6 ##.|&lt;-
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ -------------
++
++Char 0x0aae 'મ'
++ Font: lohit_gu (18)
++ Bitmap: 9 x 9
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |.2###2 bb.|
++ |. 5#b ##.|
++ |. ## ##.|
++ |. ## ##.|
++ |.2c#######.|
++ |.c#5## ##.|
++ |.##4## ##.|
++ |.4###6 ##.|
++ -&gt;|. ##.|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0aaf 'ય'
++ Font: lohit_gu (18)
++ Bitmap: 9 x 9
++ Advance: 11
++ Offset: 0 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |3###c2 bb..|
++ | 5## ##..|
++ | 1##1##..|
++ | c###6 ##..|
++ | ## 2##..|
++ | a#4 9##..|
++ | 2##37###..|
++ | 3###8##..|
++ -&gt;| ##..|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0ab0 'ર'
++ Font: lohit_gu (18)
++ Bitmap: 7 x 9
++ Advance: 8
++ Offset: 0 x 0
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |9###8 .|
++ |331a#8 .|
++ | ## .|
++ | 1## .|
++ | 1c#6 .|
++ |c###6 .|
++ | a#3 .|
++ | 7#7 .|
++ -&gt;| 1####7.|&lt;-
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ --------
++
++Char 0x0ab2 'લ'
++ Font: lohit_gu (18)
++ Bitmap: 9 x 9
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |. 2b##7 bb..|
++ |.1##5 ##..|
++ |.9#6 ##..|
++ |.##1 ##..|
++ |.## 5#####..|
++ |.##1 ##..|
++ |.9#6 ##..|
++ |.2##3 ##..|
++ -&gt;|. 3###7 ##..|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x0ab3 'ળ'
++ Font: lohit_gu (18)
++ Bitmap: 10 x 9
++ Advance: 13
++ Offset: 1 x 0
++ _____________
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |. 5###6###3..|
++ |.5##2 b#6#c..|
++ |.c#3 ## ##..|
++ |.## ## ##..|
++ |.c#2 ## ##..|
++ |.6#b16#a ##..|
++ |. 6###c1 ##..|
++ |. ##..|
++ -&gt;|. 99..|&lt;-
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ -------------
++
++Char 0x0ab5 'વ'
++ Font: lohit_gu (18)
++ Bitmap: 8 x 9
++ Advance: 11
++ Offset: 1 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |. 7##b bb..|
++ |.7#c1 ##..|
++ |.##2 ##..|
++ |.## ##..|
++ |.c#3 ##..|
++ |.4##429##..|
++ |. 3######..|
++ |. ##..|
++ -&gt;|. ##..|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0ab6 'શ'
++ Font: lohit_gu (18)
++ Bitmap: 10 x 9
++ Advance: 12
++ Offset: 0 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ | 3####2 bb..|
++ | c#45#b ##..|
++ | ##1 ## ##..|
++ | 5##7#c ##..|
++ | 2##5 ##..|
++ |3####4 ##..|
++ | 3##8 ##..|
++ | a#6 ##..|
++ -&gt;| 1## ##..|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x0ab7 'ષ'
++ Font: lohit_gu (18)
++ Bitmap: 9 x 9
++ Advance: 11
++ Offset: 0 x 0
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |2##8 bb..|
++ | 2##5 ##..|
++ | ##b8 ##..|
++ | ##1ab##..|
++ | ##1 7##..|
++ | a#919##..|
++ | 1a#####..|
++ | ##..|
++ -&gt;| ##..|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0ab8 'સ'
++ Font: lohit_gu (18)
++ Bitmap: 10 x 9
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |.9###7 bb.|
++ |.33 9#8 ##.|
++ |. 1## ##.|
++ |. 2#c ##.|
++ |. 1c######.|
++ |.b###6 ##.|
++ |. c# ##.|
++ |. 9#3 ##.|
++ -&gt;|. 3###c1 ##.|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x0ab9 'હ'
++ Font: lohit_gu (18)
++ Bitmap: 8 x 10
++ Advance: 9
++ Offset: 1 x -1
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. 5#####1|
++ |. ##3 |
++ |. a####6 |
++ |.2##72a#8|
++ |.a#6 1##|
++ |.##1 5#b|
++ |.##11c##2|
++ |.8#8 |
++ -&gt;|. b#a1 11|&lt;-
++ |. 5####5|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0abe 'ા'
++ Font: lohit_gu (18)
++ Bitmap: 2 x 9
++ Advance: 5
++ Offset: 2 x 0
++ _____
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |..bb.|
++ |..##.|
++ |..##.|
++ |..##.|
++ |..##.|
++ |..##.|
++ |..##.|
++ |..##.|
++ -&gt;|..##.|&lt;-
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ -----
++
++Char 0x0abf 'િ'
++ Font: lohit_gu (18)
++ Bitmap: 11 x 14
++ Advance: 5
++ Offset: 2 x -1
++ _____
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.. 6#####3 |
++ |.. b#a1 4##6 |
++ |..8#9 2##2|
++ |..##2 8#7|
++ |..## 142|
++ |..## |
++ |..## |
++ |..## |
++ |..## |
++ |..## |
++ |..## |
++ |..## |
++ -&gt;|..## |&lt;-
++ |..22 |
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ -----
++
++Char 0x0ac0 'ી'
++ Font: lohit_gu (18)
++ Bitmap: 6 x 13
++ Advance: 5
++ Offset: -3 x 0
++ _____
++ |........|
++ |........|
++ |........|
++ |........|
++ | 9##c1..|
++ |8#86#a..|
++ |c#21##..|
++ |## ##..|
++ |12 ##..|
++ | ##..|
++ | ##..|
++ | ##..|
++ | ##..|
++ | ##..|
++ | ##..|
++ | ##..|
++ -&gt;| ##..|&lt;-
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ -----
++
++Char 0x0ac1 'ુ'
++ Font: lohit_gu (18)
++ Bitmap: 9 x 4
++ Advance: 0
++ Offset: -8 x -4
++
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ -&gt;|.........|&lt;-
++ | 9###4|
++ |8a1 112##|
++ |3##81 4#c|
++ | 8####c2|
++ |.........|
++
++
++Char 0x0ac2 'ૂ'
++ Font: lohit_gu (18)
++ Bitmap: 10 x 4
++ Advance: 0
++ Offset: -5 x -4
++
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ -&gt;|..........|&lt;-
++ |2c###c3 |
++ |b#4 3##a |
++ |c#245 4##1|
++ |3###8 253|
++ |..........|
++
++
++Char 0x0ac3 'ૃ'
++ Font: lohit_gu (18)
++ Bitmap: 6 x 4
++ Advance: 0
++ Offset: -5 x -4
++
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ -&gt;|......|&lt;-
++ |3###c |
++ |##4 |
++ |c#3 |
++ |3####8|
++ |......|
++
++
++Char 0x0ac7 'ે'
++ Font: lohit_gu (18)
++ Bitmap: 8 x 5
++ Advance: 0
++ Offset: -8 x 8
++
++ |........|
++ |........|
++ |........|
++ |........|
++ |9##4 |
++ | 2c#b1 |
++ | 6##2 |
++ | 3##2|
++ | 12 |
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ -&gt;|........|&lt;-
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++
++
++Char 0x0ac8 'ૈ'
++ Font: lohit_gu (18)
++ Bitmap: 9 x 5
++ Advance: 0
++ Offset: -9 x 8
++
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |b##39#6 |
++ | 3##88#6 |
++ | 7#99b2|
++ | 4#aa8|
++ | 2222|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ -&gt;|.........|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++
++
++Char 0x0acb 'ો'
++ Font: lohit_gu (18)
++ Bitmap: 8 x 13
++ Advance: 5
++ Offset: -4 x 0
++ _____
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |2##a2 .|
++ | 5##7 .|
++ | a#a .|
++ | 6#a.|
++ | cb.|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ | ##.|
++ -&gt;| ##.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ -----
++
++Char 0x0acd '્'
++ Font: lohit_gu (18)
++ Bitmap: 8 x 4
++ Advance: 0
++ Offset: -4 x -4
++
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ -&gt;|........|&lt;-
++ |18c4 |
++ |27c#a1 |
++ | 3##4 |
++ | 9#7|
++ |........|
++
++
++Char 0x0b83 'ஃ'
++ Font: TSCu_Paranar (18)
++ Bitmap: 14 x 12
++ Advance: 14
++ Offset: 0 x 2
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ | 2###a |
++ | a####7 |
++ | b#b##8 |
++ | 4####2 |
++ | 133 |
++ | |
++ | |
++ | 4###3 6###3 |
++ |1####c 1####c |
++ |4##7##14##7##1|
++ |1##### 2####c |
++ | 5###3 6###3 |
++ |..............|
++ -&gt;|..............|&lt;-
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ --------------
++
++Char 0x0b86 'ஆ'
++ Font: TSCu_Paranar (18)
++ Bitmap: 23 x 15
++ Advance: 25
++ Offset: 1 x -4
++ _________________________
++ |.........................|
++ |.........................|
++ |.........................|
++ |.........................|
++ |.........................|
++ |.........................|
++ |. 1a####5 4##1 .|
++ |. c######a4##1 .|
++ |. 3##25####b##1 .|
++ |. 1##8a##6####1 .|
++ |. 6####34####1 .|
++ |. 143 5####1 .|
++ |.2#################1 .|
++ |.a##7555555559#####c62 .|
++ |.9##9 ###5######3.|
++ |.2###9 1b##44##919##.|
++ -&gt;|. 1c###c77a###924##2 5##.|&lt;-
++ |. 2a#############12##a.|
++ |. 3##a5546###b .|
++ |. 7########3 .|
++ |. 1443 .|
++ |.........................|
++ -------------------------
++
++Char 0x0b87 'இ'
++ Font: TSCu_Paranar (18)
++ Bitmap: 16 x 17
++ Advance: 16
++ Offset: 0 x -1
++ ________________
++ |................|
++ | 6#####8 |
++ | 1c##b79###2 |
++ | b##2 c##1 |
++ | 6##3 1##8 |
++ | c#8 9## |
++ | 2##33####6 5##1|
++ | 3##3######74##1|
++ | 3##6##b####4##1|
++ | 2##4b######5##1|
++ | ##7 2315##5##1|
++ | 8#########6##1|
++ | 8####76######1|
++ | 7####4 8####a |
++ |1##c###b##86## |
++ |4##31####c 4##1 |
++ -&gt;|1##a8#####8##b |&lt;-
++ | 4#####8####c1 |
++ |................|
++ |................|
++ |................|
++ |................|
++ ----------------
++
++Char 0x0b89 'உ'
++ Font: TSCu_Paranar (18)
++ Bitmap: 15 x 8
++ Advance: 16
++ Offset: 0 x 2
++ ________________
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ | 3#####6 .|
++ |1#######8 .|
++ |3##a##7## .|
++ | a###85##1 .|
++ | 2322##a .|
++ | 9#####b1 .|
++ |3###c9766666652.|
++ | b############9.|
++ |................|
++ -&gt;|................|&lt;-
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ ----------------
++
++Char 0x0b8e 'எ'
++ Font: TSCu_Paranar (18)
++ Bitmap: 14 x 8
++ Advance: 14
++ Offset: 0 x 2
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ | 3##########2|
++ | 3##c6559##73 |
++ | c#9 4##1 |
++ |3##9###34##1 |
++ |4#######4##1 |
++ |1####6##5##1 |
++ | 8#####c4##1 |
++ | 6####34##1 |
++ |..............|
++ -&gt;|..............|&lt;-
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ --------------
++
++Char 0x0b8f 'ஏ'
++ Font: TSCu_Paranar (18)
++ Bitmap: 14 x 11
++ Advance: 14
++ Offset: 0 x -1
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ | 3##########2|
++ | 3###6559##73 |
++ | c#a 4##1 |
++ |2##9###34##1 |
++ |3######c4##1 |
++ |1####6##5##1 |
++ | 7#####c4##1 |
++ | 5####38##1 |
++ | 1c#c1 |
++ -&gt;| 2##b |&lt;-
++ | 881 |
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ --------------
++
++Char 0x0b90 'ஐ'
++ Font: TSCu_Paranar (18)
++ Bitmap: 14 x 14
++ Advance: 14
++ Offset: 0 x -4
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ | a###c####7 |
++ | a##9####8##6 |
++ |2####c##3 7## |
++ |4#######1 4##1|
++ |1#######1 7## |
++ | 6###a##38##9 |
++ | 9########c1 |
++ | 9#######c72 |
++ |1##7 4#c 1##6 |
++ -&gt;|4##2 4##11c## |&lt;-
++ |3##3 5##3 4##1|
++ | c#c4####3b#b |
++ | 2##########2 |
++ | 242 241 |
++ |..............|
++ --------------
++
++Char 0x0b92 'ஒ'
++ Font: TSCu_Paranar (18)
++ Bitmap: 14 x 13
++ Advance: 14
++ Offset: 0 x -3
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ | 4#####a2 |
++ | a##c78###5 |
++ | 8##3 8##3 |
++ |1#####38####a |
++ |3#########6## |
++ |2###6####c4##1|
++ | c##########c |
++ | 19###b#####2 |
++ | 3c91#####3 |
++ -&gt;| 2##a4##953 |&lt;-
++ | 3##5c#c |
++ | 9####2 |
++ | 132 |
++ |..............|
++ |..............|
++ --------------
++
++Char 0x0b93 'ஓ'
++ Font: TSCu_Paranar (18)
++ Bitmap: 14 x 14
++ Advance: 15
++ Offset: 1 x -4
++ _______________
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |. 6#####b2 |
++ |. 1####97c##5 |
++ |. a###1 5##4 |
++ |.2#####34####b |
++ |.5#########7## |
++ |.5#########7##1|
++ |.1######8####c |
++ |. 3####4c####3 |
++ |. 4###c#### |
++ -&gt;|. a#####b53 |&lt;-
++ |. b#####2 |
++ |. 8####a |
++ |. 1####2 |
++ |. 23 |
++ |...............|
++ ---------------
++
++Char 0x0b95 'க'
++ Font: TSCu_Paranar (18)
++ Bitmap: 12 x 8
++ Advance: 12
++ Offset: 0 x 2
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ | 4######c |
++ | 4##a##62 |
++ | 4##6##1 |
++ | 5########5 |
++ |2##859##b## |
++ |3##3 5##4##1|
++ | c##9###c## |
++ | 1b#######6 |
++ |............|
++ -&gt;|............|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x0b99 'ங'
++ Font: TSCu_Paranar (18)
++ Bitmap: 14 x 8
++ Advance: 14
++ Offset: 0 x 2
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |4########14##1|
++ |4##a##753 4##1|
++ |4##6##1 4##1|
++ |4##6#####34##1|
++ |4##6##a###4##1|
++ |4##6##15##5##1|
++ |4##6#########1|
++ |4##6#########1|
++ |..............|
++ -&gt;|..............|&lt;-
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ --------------
++
++Char 0x0b9a 'ச'
++ Font: TSCu_Paranar (18)
++ Bitmap: 10 x 8
++ Advance: 11
++ Offset: 0 x 2
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ | 4######9.|
++ | 4##a##61.|
++ | 4##6##2 .|
++ | 6#######9.|
++ |2##859##51.|
++ |3##3 4## .|
++ | ###8##b .|
++ | 2c###c2 .|
++ |...........|
++ -&gt;|...........|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0b9f 'ட'
++ Font: TSCu_Paranar (18)
++ Bitmap: 13 x 9
++ Advance: 14
++ Offset: 0 x 2
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |297 .|
++ |4##1 .|
++ |4##1 .|
++ |4##1 .|
++ |4##1 .|
++ |4##1 .|
++ |4##1 .|
++ |4###########5.|
++ |4###########9.|
++ |..............|
++ -&gt;|..............|&lt;-
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ --------------
++
++Char 0x0ba3 'ண'
++ Font: TSCu_Paranar (18)
++ Bitmap: 21 x 8
++ Advance: 22
++ Offset: 1 x 2
++ ______________________
++ |......................|
++ |......................|
++ |......................|
++ |......................|
++ |......................|
++ |......................|
++ |......................|
++ |. 3#################2|
++ |. 6###9a###a###99##73 |
++ |.3###8 8#######94##1 |
++ |.9#######b######4##1 |
++ |.b#######6###c##5##1 |
++ |.9#######a######4##1 |
++ |.2#############a4##1 |
++ |. 3####4c##38##34##1 |
++ |......................|
++ -&gt;|......................|&lt;-
++ |......................|
++ |......................|
++ |......................|
++ |......................|
++ |......................|
++ ----------------------
++
++Char 0x0ba4 'த'
++ Font: TSCu_Paranar (18)
++ Bitmap: 12 x 13
++ Advance: 12
++ Offset: 0 x -3
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ | 4#######3 |
++ | 4##a##73 |
++ | 4##6##1 |
++ | 5#######b1 |
++ |2##859####a |
++ |3##3 4##7## |
++ | ###9###5##1|
++ | 2c###c28#c |
++ | 18##4 |
++ -&gt;| a#######4 |&lt;-
++ |3##75541 |
++ |4#c |
++ |6#a |
++ |............|
++ |............|
++ ------------
++
++Char 0x0ba8 'ந'
++ Font: TSCu_Paranar (18)
++ Bitmap: 12 x 13
++ Advance: 12
++ Offset: 0 x -3
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ | 4#######c |
++ | 4##a##752 |
++ | 4##6##1 |
++ | 4##6####a |
++ | 4##6##b##9 |
++ | 4##6##16## |
++ | 4##6##15##1|
++ | 4##6##19#c |
++ | 7##5 |
++ -&gt;| 7#######7 |&lt;-
++ |2##95553 |
++ |4##2 |
++ |4##1 |
++ |............|
++ |............|
++ ------------
++
++Char 0x0ba9 'ன'
++ Font: TSCu_Paranar (18)
++ Bitmap: 16 x 8
++ Advance: 16
++ Offset: 0 x 2
++ ________________
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ | 3############9|
++ | 7###c7####a##61|
++ |4###8 c###b##1 |
++ |9#####5##b####1 |
++ |a########7####1 |
++ |8########9####1 |
++ |2#############1 |
++ | 3####35###6##1 |
++ |................|
++ -&gt;|................|&lt;-
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ ----------------
++
++Char 0x0baa 'ப'
++ Font: TSCu_Paranar (18)
++ Bitmap: 12 x 9
++ Advance: 12
++ Offset: 0 x 2
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |297 297 |
++ |4##1 4##1|
++ |4##1 4##1|
++ |4##1 4##1|
++ |4##1 4##1|
++ |4##1 4##1|
++ |4##1 4##1|
++ |4##########1|
++ |4##########1|
++ |............|
++ -&gt;|............|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x0bae 'ம'
++ Font: TSCu_Paranar (18)
++ Bitmap: 13 x 8
++ Advance: 13
++ Offset: 0 x 2
++ _____________
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |4##1 5###b1 |
++ |4##11##b###1 |
++ |4##14##1 ##8 |
++ |4##14##1 7## |
++ |4##14##1 4##1|
++ |4##14##1 6## |
++ |4##########b |
++ |4#########c2 |
++ |.............|
++ -&gt;|.............|&lt;-
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ -------------
++
++Char 0x0baf 'ய'
++ Font: TSCu_Paranar (18)
++ Bitmap: 14 x 9
++ Advance: 14
++ Offset: 0 x 2
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |297 297 297 |
++ |4##14##1 4##1|
++ |4##14##1 4##1|
++ |4##14##1 4##1|
++ |4##14##1 4##1|
++ |4##14##1 4##1|
++ |4##26##1 4##1|
++ |2############1|
++ | 5###########1|
++ |..............|
++ -&gt;|..............|&lt;-
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ --------------
++
++Char 0x0bb0 'ர'
++ Font: TSCu_Paranar (18)
++ Bitmap: 10 x 11
++ Advance: 10
++ Offset: 0 x -1
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |4########2|
++ |4##79##73 |
++ |4##14##1 |
++ |4##14##1 |
++ |4##14##1 |
++ |4##14##1 |
++ |4##14##1 |
++ |4##14##1 |
++ | 1c#c |
++ -&gt;| 2###1 |&lt;-
++ | 6##2 |
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0bb1 'ற'
++ Font: TSCu_Paranar (18)
++ Bitmap: 12 x 12
++ Advance: 12
++ Offset: 0 x -2
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ | 6######7 |
++ | 2#####c##5 |
++ | 4##6##17#b |
++ | 4##6##14## |
++ | 4##6##14##1|
++ | 4##6##15## |
++ | 4##6##19#c |
++ | 4##6##3##7 |
++ | 2c## |
++ -&gt;| 5######c1 |&lt;-
++ |3##85531 |
++ |4##1 |
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x0bb2 'ல'
++ Font: TSCu_Paranar (18)
++ Bitmap: 14 x 9
++ Advance: 14
++ Offset: 0 x 2
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ | 472 |
++ | 4####b2c##1 |
++ | 4##c7##a2##9 |
++ | ##9 5## 7## |
++ |3#####8##14##1|
++ |4########14##1|
++ |1###6####27## |
++ | 9#######c##8 |
++ | 9###46###9 |
++ |..............|
++ -&gt;|..............|&lt;-
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ --------------
++
++Char 0x0bb3 'ள'
++ Font: TSCu_Paranar (18)
++ Bitmap: 16 x 8
++ Advance: 16
++ Offset: 0 x 2
++ ________________
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ | 5############2|
++ | 5##a9###79##73 |
++ | ##8 7##14##1 |
++ |3#####a##14##1 |
++ |3########14##1 |
++ |1###8####14##1 |
++ | 8#######14##1 |
++ | 8###9##14##1 |
++ |................|
++ -&gt;|................|&lt;-
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ ----------------
++
++Char 0x0bb4 'ழ'
++ Font: TSCu_Paranar (18)
++ Bitmap: 13 x 14
++ Advance: 13
++ Offset: 0 x -4
++ _____________
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |3#c1 5###c2 |
++ |4##11##c###1 |
++ |4##14##1 ##8 |
++ |4##14##1 7## |
++ |4##14##1 4##1|
++ |4##14##1 6## |
++ |4##########b |
++ |4#########a1 |
++ | 2aa4##8 |
++ -&gt;| ####7####2 |&lt;-
++ |3#######41 |
++ |2##cb##7 |
++ | 5####a |
++ | 1562 |
++ |.............|
++ -------------
++
++Char 0x0bb5 'வ'
++ Font: TSCu_Paranar (18)
++ Bitmap: 15 x 8
++ Advance: 16
++ Offset: 0 x 2
++ ________________
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ | 3####b2 4##1.|
++ | 4###7###2 4##1.|
++ | c#9 b#a 4##1.|
++ |3##8###8## 4##1.|
++ |3#########14##1.|
++ |1####7#### 4##1.|
++ | 7############1.|
++ | 5###########1.|
++ |................|
++ -&gt;|................|&lt;-
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ ----------------
++
++Char 0x0bb7 'ஷ'
++ Font: TSCu_Paranar (18)
++ Bitmap: 20 x 12
++ Advance: 20
++ Offset: 0 x -2
++ ____________________
++ |....................|
++ |....................|
++ |....................|
++ |....................|
++ |....................|
++ |....................|
++ |....................|
++ | 2c###c2 3####9 |
++ | 3###7###21###7##7 |
++ | c#a c#93##2 8#b3 |
++ |3##9###9##1##b4####1|
++ |3#########13#######1|
++ |1####7#### 28####1|
++ | 8#################1|
++ | 6################1|
++ | 4##1 |
++ -&gt;| 4##1 |&lt;-
++ | 4##1 |
++ | 4##1 |
++ |....................|
++ |....................|
++ |....................|
++ --------------------
++
++Char 0x0bb8 'ஸ'
++ Font: TSCu_Paranar (18)
++ Bitmap: 17 x 9
++ Advance: 17
++ Offset: 0 x 2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | 12 |
++ | 5########49#c |
++ | 6##a9######3##8 |
++ | ##7 5##6##17## |
++ |3#####9##6##14##1|
++ |3########6##15## |
++ |1###b####5##19#b |
++ | 7#######2#####5 |
++ | 7###9##14###7 |
++ |.................|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x0bb9 'ஹ'
++ Font: TSCu_Paranar (18)
++ Bitmap: 21 x 13
++ Advance: 21
++ Offset: 0 x -3
++ _____________________
++ |.....................|
++ |.....................|
++ |.....................|
++ |.....................|
++ |.....................|
++ |.....................|
++ |.....................|
++ | 2####b1 6######7 |
++ | 3###7###22#####c##6 |
++ | c#a b#a4##6##18#c |
++ |3######8##4##6##15## |
++ |3#########5##6##14##1|
++ |1###94####5##6##15## |
++ | 7########9##6##19#b |
++ | 5##########6##4##5 |
++ | 4##8 |
++ -&gt;| 8##############6 |&lt;-
++ | 3##855555555552 |
++ | 4##1 |
++ | 297 |
++ |.....................|
++ |.....................|
++ ---------------------
++
++Char 0x0bbe 'ா'
++ Font: TSCu_Paranar (18)
++ Bitmap: 9 x 8
++ Advance: 9
++ Offset: 0 x 2
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |4#######9|
++ |4##79##61|
++ |4##14##1 |
++ |4##14##1 |
++ |4##14##1 |
++ |4##14##1 |
++ |4##14##1 |
++ |4##14##1 |
++ |.........|
++ -&gt;|.........|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x0bbf 'ி'
++ Font: TSCu_Paranar (18)
++ Bitmap: 9 x 12
++ Advance: 4
++ Offset: -5 x 2
++ ____
++ |.........|
++ |.........|
++ |.........|
++ | 7###c2 |
++ | 9##9##a |
++ |2##5 6## |
++ |3##2 4##1|
++ |1##c14##1|
++ | 165 4##1|
++ | 4##1|
++ | 4##1|
++ | 4##1|
++ | 4##1|
++ | 4##1|
++ | 4##1|
++ |.........|
++ -&gt;|.........|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ----
++
++Char 0x0bc0 'ீ'
++ Font: TSCu_Paranar (18)
++ Bitmap: 8 x 7
++ Advance: 4
++ Offset: -5 x 8
++ ____
++ |.........|
++ |.........|
++ | 5####3.|
++ | 7######.|
++ |1####c##.|
++ |3######7.|
++ |1##6231 .|
++ | 4##6 .|
++ | 252 .|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ -&gt;|.........|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ----
++
++Char 0x0bc1 'ு'
++ Font: TSCu_Paranar (18)
++ Bitmap: 11 x 7
++ Advance: 8
++ Offset: -3 x 3
++ ________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |b#######9 |
++ |2559##7##8 |
++ | 3##15## |
++ | 2##25##1|
++ | c#8c#c |
++ | 4####3 |
++ | 32 |
++ |...........|
++ |...........|
++ -&gt;|...........|&lt;-
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ --------
++
++Char 0x0bc2 'ூ'
++ Font: TSCu_Paranar (18)
++ Bitmap: 16 x 13
++ Advance: 12
++ Offset: -4 x 2
++ ____________
++ |................|
++ |................|
++ | 1a####b2 |
++ | 2###78###3 |
++ | a#b a##1 |
++ | 1##4 1##7 |
++ | 4##2 8#c |
++ |b#########3 5## |
++ |2556##b5c## 4##1|
++ | 7##58## 6## |
++ | 8####5 a#a |
++ | 87 33 4##4 |
++ | 6##8 3##8 |
++ | 9###87###8 |
++ | 4#####c3 |
++ |................|
++ -&gt;|................|&lt;-
++ |................|
++ |................|
++ |................|
++ |................|
++ |................|
++ ------------
++
++Char 0x0bc6 'ெ'
++ Font: TSCu_Paranar (18)
++ Bitmap: 13 x 13
++ Advance: 13
++ Offset: 0 x 2
++ _____________
++ |.............|
++ |.............|
++ | 18####91 |
++ | 2###97###1 |
++ | c##1 b#8 |
++ | 7##2 5## |
++ | c#8 4##1|
++ |2##4 4##1|
++ |3##2 4##1|
++ |3##2 4##1|
++ |1##34###c6##1|
++ | b#9##c#####1|
++ | 5####25####1|
++ | 8###c#####1|
++ | 4####c6##1|
++ |.............|
++ -&gt;|.............|&lt;-
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ -------------
++
++Char 0x0bc7 'ே'
++ Font: TSCu_Paranar (18)
++ Bitmap: 13 x 13
++ Advance: 13
++ Offset: 0 x 2
++ _____________
++ |.............|
++ |.............|
++ | 8#####6 |
++ | 2###a####8 |
++ | 1##a 3##9## |
++ | 9## 2##b## |
++ | ##6 8###7 |
++ |3##3 231 |
++ |3##2 |
++ |2##3 4###3 |
++ | ##8 1####c |
++ | 8##2 4##6##1|
++ | 1##c12##### |
++ | 2###9####6 |
++ | 19#####4 |
++ |.............|
++ -&gt;|.............|&lt;-
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ -------------
++
++Char 0x0bc8 'ை'
++ Font: TSCu_Paranar (18)
++ Bitmap: 16 x 8
++ Advance: 17
++ Offset: 1 x 2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. 3#########c2 |
++ |. 6####8###8c##3 |
++ |.3###b b##5 a#b |
++ |.9#####5###c 5## |
++ |.b##########14##1|
++ |.9##########17## |
++ |.3#####c####2##8 |
++ |. 3####25##55#b1 |
++ |.................|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x0bca 'ொ'
++ Font: TSCu_Paranar (18)
++ Bitmap: 13 x 13
++ Advance: 13
++ Offset: 0 x 2
++ _____________
++ |.............|
++ |.............|
++ | 18####91 |
++ | 2###97###1 |
++ | c##1 b#8 |
++ | 7##2 5## |
++ | c#8 4##1|
++ |2##4 4##1|
++ |3##2 4##1|
++ |3##2 4##1|
++ |1##34###c6##1|
++ | b#9##c#####1|
++ | 5####25####1|
++ | 8###c#####1|
++ | 4####c6##1|
++ |.............|
++ -&gt;|.............|&lt;-
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ -------------
++
++Char 0x0bcd '்'
++ Font: TSCu_Paranar (18)
++ Bitmap: 4 x 6
++ Advance: 5
++ Offset: 1 x 10
++ _____
++ |.....|
++ |.6##3|
++ |.###b|
++ |.8###|
++ |. 7#b|
++ |.3##3|
++ |.692 |
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ -&gt;|.....|&lt;-
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ -----
++
++Char 0x0bee '௮'
++ Font: TSCu_Paranar (18)
++ Bitmap: 20 x 11
++ Advance: 20
++ Offset: 0 x -1
++ ____________________
++ |....................|
++ |....................|
++ |....................|
++ |....................|
++ |....................|
++ |....................|
++ |....................|
++ | 3####91 4##1|
++ | 1#######14##1|
++ | 4##7####a4##1|
++ | 1####c5##5##1|
++ | 5###34##6##1|
++ | a#################1|
++ |3##855555555b##89##1|
++ |1###2 5##7 4##1|
++ | 4###c5114###7 4##1|
++ -&gt;| 7#######c3 4##1|&lt;-
++ | 2442 4##1|
++ |....................|
++ |....................|
++ |....................|
++ |....................|
++ --------------------
++
++Char 0x0d82 'ං'
++ Font: lklug (17)
++ Bitmap: 5 x 3
++ Advance: 5
++ Offset: 0 x 4
++ _____
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |17c93|
++ |45 55|
++ | 7c82|
++ |.....|
++ |.....|
++ |.....|
++ -&gt;|.....|&lt;-
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ -----
++
++Char 0x0dbd 'ල'
++ Font: lklug (17)
++ Bitmap: 14 x 14
++ Advance: 14
++ Offset: 0 x -4
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ | 1 |
++ | 19##a8851 |
++ | 5#b1 461 |
++ | 3#b 3c###965 |
++ | b#3 352154 |
++ |3## 5bb6 |
++ |5## |
++ |5## |
++ |3##3 44|
++ -&gt;| c#9 87|&lt;-
++ | 5##3 781|
++ | 8##3 7a3 |
++ | 4#####c6 |
++ | 11 |
++ |..............|
++ --------------
++
++Char 0x0dc3 'ස'
++ Font: lklug (17)
++ Bitmap: 13 x 10
++ Advance: 13
++ Offset: 0 x 1
++ _____________
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ | 252 153 |
++ | 2###7 4###6 |
++ | 3#c462ac376 |
++ |19####5b###5 |
++ | 494 1981|
++ | 65 77|
++ |252 55 88|
++ | 98 6#b 3c9|
++ | 9##########4|
++ | 9###28###5 |
++ -&gt;|.............|&lt;-
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ -------------
++
++Char 0x0dc4 'හ'
++ Font: lklug (17)
++ Bitmap: 14 x 10
++ Advance: 14
++ Offset: 0 x 1
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ | 153 253 |
++ |1###7 7####2 |
++ |3##5413##8##c |
++ | 56ab377 5a5|
++ | 3a91 88 66|
++ | 66 2b#8 55|
++ | 55 66 55|
++ | 89 66 363|
++ | 7######3 297 |
++ | 6###c22a#6 |
++ -&gt;|..............|&lt;-
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ --------------
++
++Char 0x0dd2 'ි'
++ Font: lklug (17)
++ Bitmap: 10 x 5
++ Advance: 0
++ Offset: -10 x 10
++
++ |..........|
++ |..........|
++ | 6######5 |
++ |9########8|
++ |##3 4##|
++ |99 99|
++ |56 165|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ -&gt;|..........|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++
++
++Char 0x0e17 'ท'
++ Font: Loma (17)
++ Bitmap: 10 x 11
++ Advance: 11
++ Offset: 0 x -3
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |5#7 5b6 .|
++ |b2c 1### .|
++ |b1c2 7#2#2.|
++ |5c#2 #7 #2.|
++ | #25#1 #2.|
++ | #2b8 #2.|
++ | #5#2 #2.|
++ -&gt;| #b9 #2.|&lt;-
++ | ##3 #2.|
++ | #a #2.|
++ | 1 1 .|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0e20 'ภ'
++ Font: Loma (17)
++ Bitmap: 10 x 10
++ Advance: 11
++ Offset: 1 x -2
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |. 1 |
++ |. 19###9 |
++ |. b92 2b9 |
++ |. 4#3 2# |
++ |. 4#1 #1|
++ |. 98 #2|
++ |. #2 #2|
++ -&gt;|.8##2 #2|&lt;-
++ |.c1#1 #2|
++ |.7#8 #2|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0e22 'ย'
++ Font: Loma (17)
++ Bitmap: 8 x 10
++ Advance: 10
++ Offset: 1 x -2
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 8#7 4.|
++ |.2#2c 2#.|
++ |.4#2c 2#.|
++ |.4#c7 2#.|
++ |. #4 2#.|
++ |. 5##1 2#.|
++ |. #3 2#.|
++ -&gt;|.2# 2#.|&lt;-
++ |.2#22223#.|
++ |.2#######.|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0e29 'ษ'
++ Font: Loma (17)
++ Bitmap: 10 x 10
++ Advance: 11
++ Offset: 0 x -2
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |5#8 5 .|
++ |c2c1 2# .|
++ |b2#2 2# .|
++ |5b#2 284#9.|
++ | #2 a1b#b.|
++ | #2 978#7.|
++ | #2 2ac# .|
++ -&gt;| #2 2# .|&lt;-
++ | #32223# .|
++ | ####### .|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0e32 'า'
++ Font: Loma (17)
++ Bitmap: 7 x 11
++ Advance: 10
++ Offset: 1 x -3
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 1 ..|
++ |. 5###9 ..|
++ |.3c4 1a8..|
++ |.23 3#..|
++ |. 2#..|
++ |. 2#..|
++ |. 2#..|
++ -&gt;|. 2#..|&lt;-
++ |. 2#..|
++ |. 2#..|
++ |. 3..|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0e44 'ไ'
++ Font: Loma (17)
++ Bitmap: 10 x 16
++ Advance: 9
++ Offset: -2 x -2
++ _________
++ |...........|
++ |...........|
++ |...........|
++ | 1 .|
++ |2a 6#c1 .|
++ | c3 b3#4 .|
++ | 782c #4 .|
++ | 1bc4 #4 .|
++ | #4 .|
++ | #4 .|
++ | #4 .|
++ | #4 .|
++ | #4 .|
++ | #4 .|
++ | #4 .|
++ | #4 .|
++ -&gt;| #cb5.|&lt;-
++ | c51a.|
++ | 5cc5.|
++ |...........|
++ |...........|
++ |...........|
++ ---------
++
++Char 0x0e9e 'ພ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 9
++ Advance: 12
++ Offset: 1 x -1
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |.2ab8 3b9.|
++ |.a###5 4#b.|
++ |.a###3 4#b.|
++ |.4##6aa 4#b.|
++ |.a#51## 4#b.|
++ |.c#31## 4#b.|
++ |.b#aa##9b#9.|
++ -&gt;|.3###c###c2.|&lt;-
++ |. 22 22 .|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x0ea5 'ລ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 9
++ Advance: 11
++ Offset: 0 x -1
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ | 39bba72 .|
++ | 4###c###2.|
++ | 9#b1 3##8.|
++ | 683 7#9.|
++ | 4896 6#9.|
++ |3####6 6#9.|
++ |5#####5a#9.|
++ -&gt;|2###8c###5.|&lt;-
++ | 254 1552 .|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x0ea7 'ວ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 9
++ Advance: 10
++ Offset: 0 x -1
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ | 6abb95 .|
++ | a######9.|
++ |2##2 6##.|
++ | 13 3##.|
++ | 797 3##.|
++ |6###6 3##.|
++ |6###95a#c.|
++ -&gt;| 9######5.|&lt;-
++ | 146641 .|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x0eaa 'ສ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 12 x 11
++ Advance: 12
++ Offset: 0 x -1
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ | 29a |
++ | 4788863c#4|
++ | a#########5|
++ | ##a767a##b |
++ | 5#######c1 |
++ | 34447#b |
++ | 5ab91 4#b |
++ |2####b 4#b |
++ |3#####9a#b |
++ -&gt;| b##8a###5 |&lt;-
++ | 32 231 |
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x0eb2 'າ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 9
++ Advance: 9
++ Offset: 0 x 0
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ | 332 .|
++ | 5####b1.|
++ |2###8b#9.|
++ |5###84#c.|
++ |5###83#c.|
++ | 8b913#c.|
++ | 3#c.|
++ | 3#c.|
++ -&gt;| 3#c.|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x10d0 'ა'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 9
++ Advance: 8
++ Offset: 0 x -1
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ | 793 .|
++ | 6#9 .|
++ | 9#c2.|
++ | 73 6#b.|
++ |3#b 1##.|
++ |3#c 2##.|
++ | ##7a#a.|
++ -&gt;| 4###b2.|&lt;-
++ | 21 .|
++ |........|
++ |........|
++ |........|
++ |........|
++ --------
++
++Char 0x10d1 'ბ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 12
++ Advance: 8
++ Offset: 0 x -1
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ | 881 .|
++ | 6#c3 .|
++ | 1#b .|
++ | cc .|
++ | 3###c1.|
++ | c#68#9.|
++ |3#c 2##.|
++ |4#b ##.|
++ |3#c 2##.|
++ | c#79#9.|
++ -&gt;| 3c##b1.|&lt;-
++ | 11 .|
++ |........|
++ |........|
++ |........|
++ |........|
++ --------
++
++Char 0x10d2 'გ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 11
++ Advance: 8
++ Offset: 0 x -3
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ | 133 |
++ | 7####3 |
++ | #c47#9 |
++ | 84 3#9 |
++ | 59c#4 |
++ | 9##c##1|
++ |2##1 a#6|
++ -&gt;|4#b 7#8|&lt;-
++ |2##1 9#7|
++ | a#cc##2|
++ | 7aa82 |
++ |........|
++ |........|
++ --------
++
++Char 0x10d3 'დ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 11
++ Advance: 11
++ Offset: 0 x -3
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ | 131 32 |
++ | 6###3c##a |
++ | ##5b#c5b#6|
++ |3#c 7#7 6#9|
++ |4#b 5#7 5#9|
++ |2#c 4#9 7#8|
++ | c#2 c#b##3|
++ -&gt;| 6#a 2a#b5 |&lt;-
++ | 9#b61 |
++ | 4#####8 |
++ | 62 17a6 |
++ |...........|
++ |...........|
++ -----------
++
++Char 0x10d4 'ე'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 11
++ Advance: 8
++ Offset: 0 x -3
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ | 33 .|
++ | 4####3.|
++ | c#78#b.|
++ | ## 1##.|
++ | 9b ##.|
++ | ##.|
++ | 51 ##.|
++ -&gt;|3#c ##.|&lt;-
++ |3#c 2##.|
++ | c#cc#9.|
++ | 18aa6 .|
++ |........|
++ |........|
++ --------
++
++Char 0x10d5 'ვ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 11
++ Advance: 8
++ Offset: 0 x -3
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ | 33 .|
++ | 5####4.|
++ | ##67#c.|
++ | ## 1##.|
++ | 98 4#c.|
++ | 4##2.|
++ | 3 29#9.|
++ -&gt;|3#a 1##.|&lt;-
++ |3#a 1##.|
++ | c#bc#a.|
++ | 18aa71.|
++ |........|
++ |........|
++ --------
++
++Char 0x10d6 'ზ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 12
++ Advance: 8
++ Offset: 0 x -1
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ | 2784 .|
++ | ##c#4 .|
++ |3#61#8 .|
++ |3#61#6 .|
++ | 8#c#6 .|
++ | a#ac#6.|
++ |2#c 2#c.|
++ |4#b 1##.|
++ |3#c 2##.|
++ | c#7a#9.|
++ -&gt;| 3c##b1.|&lt;-
++ | 11 .|
++ |........|
++ |........|
++ |........|
++ |........|
++ --------
++
++Char 0x10d7 'თ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 9
++ Advance: 12
++ Offset: 0 x -1
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ | 32 23 .|
++ | 5###67##c1.|
++ | ##69##78#8.|
++ |3#c 2## 2#b.|
++ |4#b #c 1#c.|
++ |3#c 2#b 3#a.|
++ | c#7a#7 b#4.|
++ -&gt;| 3c##a 1#6 .|&lt;-
++ | 11 1 .|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x10d8 'ი'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 9
++ Advance: 8
++ Offset: 0 x -1
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ | 33 .|
++ | 5###c2.|
++ | ##69#a.|
++ |3#c 1##.|
++ |4#b 1##.|
++ |2#c 2#c.|
++ | b#15#8.|
++ -&gt;| 3#27c1.|&lt;-
++ | 2 11 .|
++ |........|
++ |........|
++ |........|
++ |........|
++ --------
++
++Char 0x10d9 'კ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 11
++ Advance: 8
++ Offset: 0 x -3
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ | 1 .|
++ | b#b5 .|
++ | 58##5.|
++ | 7#9.|
++ | 29#7.|
++ | c#a .|
++ |13 39#5.|
++ -&gt;|6#7 3#b.|&lt;-
++ |6#9 5#a.|
++ |2##b##6.|
++ | 39a95 .|
++ |........|
++ |........|
++ --------
++
++Char 0x10da 'ლ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 15 x 11
++ Advance: 15
++ Offset: 0 x -3
++ _______________
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ | 2 3 2 |
++ | 5###5c#c5###5 |
++ |1##6a#c4c#a6##1|
++ |3#b 2#7 7#3 b#4|
++ |3#b 1#6 6#2 a#4|
++ |1##1 21 12 2##1|
++ | 8#b1 5#5 |
++ -&gt;| 8##841 22 |&lt;-
++ | 5#####c71 |
++ | 1c5 148#c1 |
++ | 583 |
++ |...............|
++ |...............|
++ ---------------
++
++Char 0x10db 'მ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 12
++ Advance: 8
++ Offset: 0 x -1
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ | 6885 .|
++ | a#cc#9.|
++ | bb1 ##.|
++ | 31c#.|
++ | 4#####.|
++ | ##77##.|
++ |3#c ##.|
++ |4#b ##.|
++ |3#c ##.|
++ | c#89#a.|
++ -&gt;| 3c##b1.|&lt;-
++ | 11 .|
++ |........|
++ |........|
++ |........|
++ |........|
++ --------
++
++Char 0x10dc 'ნ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 12
++ Advance: 8
++ Offset: 0 x -1
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ | 56662 |
++ | b####5 |
++ |1#c211 |
++ |2#b 3 |
++ |2#####3 |
++ |2##77#c |
++ |2#c ##1|
++ |2#b c#2|
++ |1## ##1|
++ | b#88#b |
++ -&gt;| 2b##b2 |&lt;-
++ | 11 |
++ |........|
++ |........|
++ |........|
++ |........|
++ --------
++
++Char 0x10dd 'ო'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 9
++ Advance: 11
++ Offset: 0 x -1
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ | 131 32 |
++ | 5###6b##a |
++ | ##58#c4b#5|
++ |3#c 1#6 7#8|
++ |4#b #5 6#9|
++ |2## 1 9#7|
++ | 9#a1 7#c1|
++ -&gt;| 8#3 #b2 |&lt;-
++ | 11 2 |
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x10de 'პ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 12
++ Advance: 8
++ Offset: 0 x -1
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ | 783 .|
++ | 6##b7 .|
++ | 38c#7.|
++ | 5#a.|
++ | 4b#5.|
++ | 7#c2.|
++ | 61 4#b.|
++ |3#b 1##.|
++ |3#b 2##.|
++ |1##7a#9.|
++ -&gt;| 5###b1.|&lt;-
++ | 21 .|
++ |........|
++ |........|
++ |........|
++ |........|
++ --------
++
++Char 0x10df 'ჟ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 11
++ Advance: 8
++ Offset: 0 x -3
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ | 1353|
++ |5ac####6|
++ |6##b7b#6|
++ | 2##18#6|
++ | 8#48#6|
++ |6a##28#6|
++ |9#a4 8#6|
++ -&gt;| 8#6|&lt;-
++ |7b7 b#5|
++ |4##bc#c1|
++ | 38aa71 |
++ |........|
++ |........|
++ --------
++
++Char 0x10e0 'რ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 12
++ Advance: 12
++ Offset: 0 x -1
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ | 16a5 .|
++ | 18###7 .|
++ | 4##83 .|
++ | 2#c2 32 .|
++ | a###4a##b1.|
++ |1##69##5a#7.|
++ |3#b 2#9 5#a.|
++ |3#b #7 4#b.|
++ |1##1 31 7#8.|
++ | 8#a1 5##2.|
++ -&gt;| 7#4 cb2 .|&lt;-
++ | 11 2 .|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x10e1 'ს'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 12
++ Advance: 8
++ Offset: 0 x -1
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |175 |
++ |2#a |
++ |2#a 4 |
++ |2#a 7#4 |
++ |2#a ba |
++ |2#a 6#6 |
++ |2#a ## |
++ |2#a ##2|
++ |1#c ##1|
++ | b#88#b |
++ -&gt;| 2b##c2 |&lt;-
++ | 11 |
++ |........|
++ |........|
++ |........|
++ |........|
++ --------
++
++Char 0x10e2 'ტ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 13
++ Advance: 10
++ Offset: 0 x -3
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ | 21 .|
++ | #9 .|
++ | b7 .|
++ | 29#c7 .|
++ | 3#bcb#b .|
++ | b#1b75#7.|
++ |2#c b72#b.|
++ |4#b a71##.|
++ |3#b 2##.|
++ -&gt;|2## 4#b.|&lt;-
++ | b#6 a#7.|
++ | 3##bc#c .|
++ | 28aa6 .|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x10e3 'უ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 11
++ Advance: 8
++ Offset: 0 x -3
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |131 22 |
++ |4##7##9 |
++ |14a#5c#2|
++ | 5# 8#4|
++ | 26 8#4|
++ | 8#4|
++ |1b7 8#4|
++ -&gt;|3#a 8#4|&lt;-
++ |3#b a#3|
++ | c#cc#c |
++ | 18aa71 |
++ |........|
++ |........|
++ --------
++
++Char 0x10e4 'ფ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 11
++ Advance: 11
++ Offset: 0 x -3
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ | 132 23 |
++ | 5###7a##c1|
++ | ##68##5b#7|
++ |3#b 1#9 6#9|
++ |4#a #8 6#7|
++ |1##25#65ca |
++ | 9####15cc2|
++ -&gt;| 4761 8#7|&lt;-
++ | 441 9#7|
++ | 9##bc##2|
++ | 69aa82 |
++ |...........|
++ |...........|
++ -----------
++
++Char 0x10e5 'ქ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 14
++ Advance: 8
++ Offset: 0 x -3
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ | 67.|
++ | c#.|
++ | c#.|
++ | 3 c#.|
++ | 3#####.|
++ | b#68##.|
++ | ## ##.|
++ | c#.|
++ | c#.|
++ | 41 c#.|
++ -&gt;|2#c c#.|&lt;-
++ |3#c ##.|
++ | c#cc#9.|
++ | 18aa6 .|
++ |........|
++ |........|
++ --------
++
++Char 0x10e7 'ყ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 11
++ Advance: 8
++ Offset: 0 x -3
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ | 3 .|
++ | 7#3 c#.|
++ |1##2 c#.|
++ |3#a c#.|
++ |3#a ##.|
++ | ##78##.|
++ | 3c#c##.|
++ -&gt;| c#.|&lt;-
++ |3#c ##.|
++ | c#cc#9.|
++ | 18aa6 .|
++ |........|
++ |........|
++ --------
++
++Char 0x10e8 'შ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 12
++ Advance: 8
++ Offset: 0 x -1
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |2842871.|
++ |38#c9#a.|
++ | 9c c#.|
++ | 12 c#.|
++ | 18b7c#.|
++ | b#cc##.|
++ |3## 1##.|
++ |4#b ##.|
++ |3#c ##.|
++ | c#89#a.|
++ -&gt;| 3c##b1.|&lt;-
++ | 11 .|
++ |........|
++ |........|
++ |........|
++ |........|
++ --------
++
++Char 0x10e9 'ჩ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 12
++ Advance: 8
++ Offset: 0 x -1
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ | 17872 |
++ | b#ac# |
++ |1#a 3#3 |
++ |2#918#1 |
++ |2####b1 |
++ |2##77#b |
++ |2#c ##1|
++ |2#b c#2|
++ |2#b ## |
++ |2#b 2#b |
++ -&gt;|2#b 7#5 |&lt;-
++ | 21 3 |
++ |........|
++ |........|
++ |........|
++ |........|
++ --------
++
++Char 0x10ea 'ც'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 11
++ Advance: 9
++ Offset: 0 x -3
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ | 22 21 |
++ | 9#23#8 |
++ | ## b#5 |
++ |2#c 2#c |
++ |3#b 3#b |
++ |4#b 5##2 |
++ |4#b 26#a |
++ -&gt;|3#b ##1|&lt;-
++ |1##2 2##1|
++ | 8##b##9 |
++ | 59a95 |
++ |.........|
++ |.........|
++ ---------
++
++Char 0x10eb 'ძ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 12
++ Advance: 8
++ Offset: 0 x -1
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ | 67.|
++ | c#.|
++ | c#.|
++ | 3 c#.|
++ | 4#####.|
++ | ##68##.|
++ |3#c ##.|
++ |4#b ##.|
++ |3#c ##.|
++ | c#79#9.|
++ -&gt;| 3c##b1.|&lt;-
++ | 21 .|
++ |........|
++ |........|
++ |........|
++ |........|
++ --------
++
++Char 0x10ec 'წ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 12
++ Advance: 8
++ Offset: 0 x -1
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ | 1781581|
++ | c#8cc92|
++ |1#b c7 |
++ |2#b 32 |
++ |2#b7b81 |
++ |2##cc#a |
++ |2## 1##1|
++ |2#b ##2|
++ |1#c ##1|
++ | c#89#b |
++ -&gt;| 3c##b2 |&lt;-
++ | 11 |
++ |........|
++ |........|
++ |........|
++ |........|
++ --------
++
++Char 0x10ee 'ხ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 12
++ Advance: 8
++ Offset: 0 x -1
++ ________
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |175 |
++ |2#b |
++ |2#b |
++ |2#b 3 |
++ |2#####3 |
++ |2##77#b |
++ |2#c ##1|
++ |2#b ##2|
++ |1#c ##1|
++ | b#88#b |
++ -&gt;| 2b##c2 |&lt;-
++ | 11 |
++ |........|
++ |........|
++ |........|
++ |........|
++ --------
++
++Char 0x1ebf 'ế'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 12
++ Advance: 10
++ Offset: 1 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 1#7.|
++ |. b#ba9 .|
++ |. 89 98 .|
++ |. .|
++ |. 3a##b4 .|
++ |.3#a1 8#5.|
++ |.a#2 #b.|
++ |.########.|
++ |.## .|
++ |.a#4 .|
++ |.3#b2 15a.|
++ -&gt;|. 29c#c93.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x1ec7 'ệ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 8 x 15
++ Advance: 10
++ Offset: 1 x -3
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 8#8 .|
++ |. 2#7#2 .|
++ |. a7 7a .|
++ |. .|
++ |. 3a##b4 .|
++ |.3#a1 8#5.|
++ |.a#2 #b.|
++ |.########.|
++ |.## .|
++ |.a#4 .|
++ |.3#b2 15a.|
++ -&gt;|. 29c#c93.|&lt;-
++ |. .|
++ |. ## .|
++ |. ## .|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x200f '‏'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 0 x 0
++ Advance: 0
++ Offset: 0 x 0
++
++ ||
++ ||
++ ||
++ ||
++ ||
++ ||
++ ||
++ ||
++ ||
++ ||
++ ||
++ ||
++ ||
++ ||
++ ||
++ ||
++ -&gt;||&lt;-
++ ||
++ ||
++ ||
++ ||
++ ||
++
++
++Char 0x2013 '–'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 2
++ Advance: 7
++ Offset: 1 x 3
++ _______
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.######|
++ |.######|
++ |.......|
++ |.......|
++ -&gt;|.......|&lt;-
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ |.......|
++ -------
++
++Char 0x2014 '—'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 13 x 2
++ Advance: 14
++ Offset: 1 x 3
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |.#############|
++ |.#############|
++ |..............|
++ |..............|
++ -&gt;|..............|&lt;-
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ --------------
++
++Char 0x2019 '’'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 3 x 4
++ Advance: 5
++ Offset: 1 x 6
++ _____
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |. ##.|
++ |. ##.|
++ |.4#5.|
++ |.a6 .|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ -&gt;|.....|&lt;-
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ -----
++
++Char 0x201c '“'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 4
++ Advance: 9
++ Offset: 1 x 6
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. 6a 6a..|
++ |.5#44#4..|
++ |.## ## ..|
++ |.## ## ..|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ -&gt;|.........|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x201d '”'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 4
++ Advance: 9
++ Offset: 1 x 6
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. ## ##..|
++ |. ## ##..|
++ |.4#54#5..|
++ |.a6 a6 ..|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ -&gt;|.........|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x201e '„'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 4
++ Advance: 9
++ Offset: 1 x -1
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |. ## ##..|
++ |. ## ##..|
++ -&gt;|.4#54#5..|&lt;-
++ |.a6 a6 ..|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x2022 '•'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 5 x 5
++ Advance: 9
++ Offset: 2 x 3
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |..1a#a1..|
++ |..a###a..|
++ |..#####..|
++ |..a###a..|
++ |..1a#a1..|
++ |.........|
++ |.........|
++ -&gt;|.........|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x2023 '‣'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 6
++ Advance: 9
++ Offset: 2 x 2
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |..c5 .|
++ |..##b4 .|
++ |..####a1.|
++ |..###c4 .|
++ |..#c6 .|
++ |..7 .|
++ |.........|
++ -&gt;|.........|&lt;-
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ ---------
++
++Char 0x2026 '…'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 10 x 3
++ Advance: 14
++ Offset: 1 x 0
++ ______________
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |.## ## ##...|
++ |.## ## ##...|
++ -&gt;|.## ## ##...|&lt;-
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ |..............|
++ --------------
++
++Char 0x20ac '€'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 10
++ Advance: 10
++ Offset: 0 x 0
++ __________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ | 6b##c9.|
++ | b#6 39.|
++ | 8#7 .|
++ |b#####a .|
++ | ## .|
++ |b####9 .|
++ | 9#6 .|
++ | 3#c .|
++ | 6#91 39.|
++ -&gt;| 4a##c9.|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ----------
++
++Char 0x2219 '∙'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 2 x 3
++ Advance: 5
++ Offset: 1 x 3
++ _____
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.##..|
++ |.##..|
++ |.##..|
++ |.....|
++ |.....|
++ -&gt;|.....|&lt;-
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ -----
++
++Char 0x221a '√'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 12
++ Advance: 9
++ Offset: 1 x 0
++ _________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 9#|
++ |. 1#1|
++ |. 5a |
++ |. b5 |
++ |. 2# |
++ |.499 79 |
++ |.8a#1 c3 |
++ |. 4#54c |
++ |. cb97 |
++ |. 7##2 |
++ |. 2#b |
++ -&gt;|. a5 |&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ---------
++
++Char 0x2248 '≈'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 6
++ Advance: 12
++ Offset: 1 x 1
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |.3a#c72 3a..|
++ |.#########..|
++ |.92 27c#a3..|
++ |.3a#c72 29..|
++ |.#########..|
++ |.a2 27c#a3..|
++ -&gt;|............|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x2264 '≤'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 8
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |. 1369c..|
++ |.369c##b86..|
++ |.###94 ..|
++ |.369c##b86..|
++ |. 369c..|
++ |. ..|
++ |.#########..|
++ -&gt;|.#########..|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x2265 '≥'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 9 x 8
++ Advance: 12
++ Offset: 1 x 0
++ ____________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |.c851 ..|
++ |.a###c852 ..|
++ |. 258b##c..|
++ |. 258b##c..|
++ |.a###c851 ..|
++ |.c851 ..|
++ |.#########..|
++ -&gt;|.#########..|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ ------------
++
++Char 0x2320 '⌠'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 15
++ Advance: 9
++ Offset: 3 x -4
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |... 585 |
++ |... 7ba#1|
++ |... #737 |
++ |...4#5 |
++ |...6#4 |
++ |...8#3 |
++ |...9#3 |
++ |...9#3 |
++ |...a#3 |
++ |...a#3 |
++ -&gt;|...a#3 |&lt;-
++ |...a#3 |
++ |...a#3 |
++ |...a#3 |
++ |...571 |
++ |.........|
++ ---------
++
++Char 0x2321 '⌡'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 6 x 15
++ Advance: 9
++ Offset: 0 x -4
++ _________
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ |.........|
++ | 7a2...|
++ | a#3...|
++ | a#3...|
++ | a#3...|
++ | a#3...|
++ | a#3...|
++ | a#3...|
++ | a#2...|
++ | a#2...|
++ | a# ...|
++ -&gt;| b# ...|&lt;-
++ | ca ...|
++ |5b1#5 ...|
++ |7#aa ...|
++ | 33 ...|
++ |.........|
++ ---------
++
++Char 0x2500 '─'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 17 x 1
++ Advance: 17
++ Offset: 0 x 6
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |#################|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x2502 '│'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 2 x 16
++ Advance: 17
++ Offset: 8 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |........##.......|
++ |........##.......|
++ |........##.......|
++ |........##.......|
++ |........##.......|
++ |........##.......|
++ |........##.......|
++ |........##.......|
++ |........##.......|
++ |........##.......|
++ |........##.......|
++ |........##.......|
++ |........##.......|
++ -&gt;|........##.......|&lt;-
++ |........##.......|
++ |........##.......|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x250c '┌'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 9 x 9
++ Advance: 17
++ Offset: 8 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |........#########|
++ |........## |
++ |........## |
++ |........## |
++ |........## |
++ |........## |
++ -&gt;|........## |&lt;-
++ |........## |
++ |........## |
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x2510 '┐'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 10 x 9
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |##########.......|
++ | ##.......|
++ | ##.......|
++ | ##.......|
++ | ##.......|
++ | ##.......|
++ -&gt;| ##.......|&lt;-
++ | ##.......|
++ | ##.......|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x2514 '└'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 9 x 8
++ Advance: 17
++ Offset: 8 x 6
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |........## |
++ |........## |
++ |........## |
++ |........## |
++ |........## |
++ |........## |
++ |........## |
++ |........#########|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x2518 '┘'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 10 x 8
++ Advance: 17
++ Offset: 0 x 6
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ##.......|
++ | ##.......|
++ | ##.......|
++ | ##.......|
++ | ##.......|
++ | ##.......|
++ | ##.......|
++ |##########.......|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x251c '├'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 9 x 16
++ Advance: 17
++ Offset: 8 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |........## |
++ |........## |
++ |........## |
++ |........## |
++ |........## |
++ |........## |
++ |........## |
++ |........#########|
++ |........## |
++ |........## |
++ |........## |
++ |........## |
++ |........## |
++ -&gt;|........## |&lt;-
++ |........## |
++ |........## |
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x2524 '┤'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 10 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ##.......|
++ | ##.......|
++ | ##.......|
++ | ##.......|
++ | ##.......|
++ | ##.......|
++ | ##.......|
++ |##########.......|
++ | ##.......|
++ | ##.......|
++ | ##.......|
++ | ##.......|
++ | ##.......|
++ -&gt;| ##.......|&lt;-
++ | ##.......|
++ | ##.......|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x252c '┬'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 17 x 9
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |#################|
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ -&gt;| ## |&lt;-
++ | ## |
++ | ## |
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x2534 '┴'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 17 x 8
++ Advance: 17
++ Offset: 0 x 6
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ |#################|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x253c '┼'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 17 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ |#################|
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ -&gt;| ## |&lt;-
++ | ## |
++ | ## |
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x2550 '═'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 17 x 3
++ Advance: 17
++ Offset: 0 x 4
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |#################|
++ | |
++ |#################|
++ |.................|
++ |.................|
++ |.................|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x2551 '║'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 4 x 16
++ Advance: 17
++ Offset: 6 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |......####.......|
++ |......####.......|
++ |......####.......|
++ |......####.......|
++ |......####.......|
++ |......####.......|
++ |......####.......|
++ |......####.......|
++ |......####.......|
++ |......####.......|
++ |......####.......|
++ |......####.......|
++ |......####.......|
++ -&gt;|......####.......|&lt;-
++ |......####.......|
++ |......####.......|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x2552 '╒'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 9 x 9
++ Advance: 17
++ Offset: 8 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |........#########|
++ |........## |
++ |........#########|
++ |........## |
++ |........## |
++ |........## |
++ -&gt;|........## |&lt;-
++ |........## |
++ |........## |
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x2553 '╓'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 10 x 9
++ Advance: 17
++ Offset: 7 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.......##########|
++ |.......#### |
++ |.......#### |
++ |.......#### |
++ |.......#### |
++ |.......#### |
++ -&gt;|.......#### |&lt;-
++ |.......#### |
++ |.......#### |
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x2554 '╔'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 10 x 9
++ Advance: 17
++ Offset: 7 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.......##########|
++ |.......## |
++ |.......##########|
++ |.......#### |
++ |.......#### |
++ |.......#### |
++ -&gt;|.......#### |&lt;-
++ |.......#### |
++ |.......#### |
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x2555 '╕'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 10 x 9
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |##########.......|
++ | ##.......|
++ |##########.......|
++ | ##.......|
++ | ##.......|
++ | ##.......|
++ -&gt;| ##.......|&lt;-
++ | ##.......|
++ | ##.......|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x2556 '╖'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 10 x 9
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |##########.......|
++ | ####.......|
++ | ####.......|
++ | ####.......|
++ | ####.......|
++ | ####.......|
++ -&gt;| ####.......|&lt;-
++ | ####.......|
++ | ####.......|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x2557 '╗'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 10 x 9
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |##########.......|
++ | ##.......|
++ |##########.......|
++ | ####.......|
++ | ####.......|
++ | ####.......|
++ -&gt;| ####.......|&lt;-
++ | ####.......|
++ | ####.......|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x2558 '╘'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 9 x 9
++ Advance: 17
++ Offset: 8 x 5
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |........## |
++ |........## |
++ |........## |
++ |........## |
++ |........## |
++ |........## |
++ |........#########|
++ |........## |
++ |........#########|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x2559 '╙'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 10 x 8
++ Advance: 17
++ Offset: 7 x 6
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.......#### |
++ |.......#### |
++ |.......#### |
++ |.......#### |
++ |.......#### |
++ |.......#### |
++ |.......#### |
++ |.......##########|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x255a '╚'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 10 x 9
++ Advance: 17
++ Offset: 7 x 5
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.......#### |
++ |.......#### |
++ |.......#### |
++ |.......#### |
++ |.......#### |
++ |.......#### |
++ |.......##########|
++ |.......## |
++ |.......##########|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x255b '╛'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 10 x 9
++ Advance: 17
++ Offset: 0 x 5
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ##.......|
++ | ##.......|
++ | ##.......|
++ | ##.......|
++ | ##.......|
++ | ##.......|
++ |##########.......|
++ | ##.......|
++ |##########.......|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x255c '╜'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 10 x 8
++ Advance: 17
++ Offset: 0 x 6
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ####.......|
++ | ####.......|
++ | ####.......|
++ | ####.......|
++ | ####.......|
++ | ####.......|
++ | ####.......|
++ |##########.......|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x255d '╝'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 10 x 9
++ Advance: 17
++ Offset: 0 x 5
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ####.......|
++ | ####.......|
++ | ####.......|
++ | ####.......|
++ | ####.......|
++ | ####.......|
++ |##########.......|
++ | ##.......|
++ |##########.......|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x255e '╞'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 9 x 16
++ Advance: 17
++ Offset: 8 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |........## |
++ |........## |
++ |........## |
++ |........## |
++ |........## |
++ |........## |
++ |........#########|
++ |........## |
++ |........#########|
++ |........## |
++ |........## |
++ |........## |
++ |........## |
++ -&gt;|........## |&lt;-
++ |........## |
++ |........## |
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x255f '╟'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 10 x 16
++ Advance: 17
++ Offset: 7 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.......#### |
++ |.......#### |
++ |.......#### |
++ |.......#### |
++ |.......#### |
++ |.......#### |
++ |.......#### |
++ |.......##########|
++ |.......#### |
++ |.......#### |
++ |.......#### |
++ |.......#### |
++ |.......#### |
++ -&gt;|.......#### |&lt;-
++ |.......#### |
++ |.......#### |
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x2560 '╠'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 10 x 16
++ Advance: 17
++ Offset: 7 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.......#### |
++ |.......#### |
++ |.......#### |
++ |.......#### |
++ |.......#### |
++ |.......#### |
++ |.......##########|
++ |.......## |
++ |.......##########|
++ |.......#### |
++ |.......#### |
++ |.......#### |
++ |.......#### |
++ -&gt;|.......#### |&lt;-
++ |.......#### |
++ |.......#### |
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x2561 '╡'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 10 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ##.......|
++ | ##.......|
++ | ##.......|
++ | ##.......|
++ | ##.......|
++ | ##.......|
++ | ##.......|
++ |##########.......|
++ | ##.......|
++ |##########.......|
++ | ##.......|
++ | ##.......|
++ | ##.......|
++ -&gt;| ##.......|&lt;-
++ | ##.......|
++ | ##.......|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x2562 '╢'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 10 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ####.......|
++ | ####.......|
++ | ####.......|
++ | ####.......|
++ | ####.......|
++ | ####.......|
++ | ####.......|
++ |##########.......|
++ | ####.......|
++ | ####.......|
++ | ####.......|
++ | ####.......|
++ | ####.......|
++ -&gt;| ####.......|&lt;-
++ | ####.......|
++ | ####.......|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x2563 '╣'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 10 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ####.......|
++ | ####.......|
++ | ####.......|
++ | ####.......|
++ | ####.......|
++ | ####.......|
++ |##########.......|
++ | ##.......|
++ |##########.......|
++ | ####.......|
++ | ####.......|
++ | ####.......|
++ | ####.......|
++ -&gt;| ####.......|&lt;-
++ | ####.......|
++ | ####.......|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x2564 '╤'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 17 x 9
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |#################|
++ | |
++ |#################|
++ | ## |
++ | ## |
++ | ## |
++ -&gt;| ## |&lt;-
++ | ## |
++ | ## |
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x2565 '╥'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 17 x 9
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |#################|
++ | #### |
++ | #### |
++ | #### |
++ | #### |
++ | #### |
++ -&gt;| #### |&lt;-
++ | #### |
++ | #### |
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x2566 '╦'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 17 x 9
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |#################|
++ | |
++ |#################|
++ | #### |
++ | #### |
++ | #### |
++ -&gt;| #### |&lt;-
++ | #### |
++ | #### |
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x2567 '╧'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 17 x 9
++ Advance: 17
++ Offset: 0 x 5
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ |#################|
++ | |
++ |#################|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x2568 '╨'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 17 x 8
++ Advance: 17
++ Offset: 0 x 6
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | #### |
++ | #### |
++ | #### |
++ | #### |
++ | #### |
++ | #### |
++ | #### |
++ |#################|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x2569 '╩'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 17 x 9
++ Advance: 17
++ Offset: 0 x 5
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | #### |
++ | #### |
++ | #### |
++ | #### |
++ | #### |
++ | #### |
++ |#################|
++ | |
++ |#################|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x256a '╪'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 17 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ |#################|
++ | |
++ |#################|
++ | ## |
++ | ## |
++ | ## |
++ | ## |
++ -&gt;| ## |&lt;-
++ | ## |
++ | ## |
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x256b '╫'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 17 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | #### |
++ | #### |
++ | #### |
++ | #### |
++ | #### |
++ | #### |
++ | #### |
++ |#################|
++ | #### |
++ | #### |
++ | #### |
++ | #### |
++ | #### |
++ -&gt;| #### |&lt;-
++ | #### |
++ | #### |
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x256c '╬'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 17 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | #### |
++ | #### |
++ | #### |
++ | #### |
++ | #### |
++ | #### |
++ |#################|
++ | |
++ |#################|
++ | #### |
++ | #### |
++ | #### |
++ | #### |
++ -&gt;| #### |&lt;-
++ | #### |
++ | #### |
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x2580 '▀'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 12 x 8
++ Advance: 11
++ Offset: -1 x 3
++ ___________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |188888888888|
++ |1##########c|
++ |1##########c|
++ |1##########c|
++ |1##########c|
++ |1##########c|
++ |1##########c|
++ | 77777777776|
++ |............|
++ |............|
++ -&gt;|............|&lt;-
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ -----------
++
++Char 0x2584 '▄'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 12 x 8
++ Advance: 11
++ Offset: -1 x -4
++ ___________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |188888888888|
++ |1##########c|
++ |1##########c|
++ -&gt;|1##########c|&lt;-
++ |1##########c|
++ |1##########c|
++ |1##########c|
++ | 77777777776|
++ |............|
++ -----------
++
++Char 0x2588 '█'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 12 x 15
++ Advance: 11
++ Offset: -1 x -4
++ ___________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |1aaaaaaaaaa9|
++ |1##########c|
++ |1##########c|
++ |1##########c|
++ |1##########c|
++ |1##########c|
++ |1##########c|
++ |1##########c|
++ |1##########c|
++ |1##########c|
++ -&gt;|1##########c|&lt;-
++ |1##########c|
++ |1##########c|
++ |1##########c|
++ | 77777777776|
++ |............|
++ -----------
++
++Char 0x258c '▌'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 15
++ Advance: 11
++ Offset: -1 x -4
++ ___________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |1aaaaa4.....|
++ |1#####5.....|
++ |1#####5.....|
++ |1#####5.....|
++ |1#####5.....|
++ |1#####5.....|
++ |1#####5.....|
++ |1#####5.....|
++ |1#####5.....|
++ |1#####5.....|
++ -&gt;|1#####5.....|&lt;-
++ |1#####5.....|
++ |1#####5.....|
++ |1#####5.....|
++ | 777772.....|
++ |............|
++ -----------
++
++Char 0x2590 '▐'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 7 x 15
++ Advance: 11
++ Offset: 5 x -4
++ ___________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |.....1aaaaa4|
++ |.....1#####5|
++ |.....1#####5|
++ |.....1#####5|
++ |.....1#####5|
++ |.....1#####5|
++ |.....1#####5|
++ |.....1#####5|
++ |.....1#####5|
++ |.....1#####5|
++ -&gt;|.....1#####5|&lt;-
++ |.....1#####5|
++ |.....1#####5|
++ |.....1#####5|
++ |..... 777772|
++ |............|
++ -----------
++
++Char 0x2591 '░'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 15
++ Advance: 11
++ Offset: -1 x -4
++ ___________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |1a2 68 .|
++ |1#3 8a .|
++ | 13 32.|
++ | 5# c7.|
++ | 27 63.|
++ |1a2 68 .|
++ |1#3 8a .|
++ | 13 32.|
++ | 5# c7.|
++ | 27 63.|
++ -&gt;|1a2 68 .|&lt;-
++ |1#3 8a .|
++ | 13 32.|
++ | 5# c7.|
++ | 27 63.|
++ |............|
++ -----------
++
++Char 0x2592 '▒'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 12 x 15
++ Advance: 11
++ Offset: -1 x -4
++ ___________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |1a24a 68 95 |
++ |1#35# 8a c7 |
++ | a8 #53#16c|
++ | 2752b2 b 3a|
++ |1#35# 8a c7 |
++ |182 85245615|
++ | a8 #53#16c|
++ |181 85355724|
++ |1#35# 8a c7 |
++ | 1861c31c 4a|
++ -&gt;| 97 #42#15b|&lt;-
++ |1#35# 8a c7 |
++ |1a 1a3463833|
++ | a8 #53#16c|
++ | 54 7217 36|
++ |............|
++ -----------
++
++Char 0x2593 '▓'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 12 x 15
++ Advance: 11
++ Offset: -1 x -4
++ ___________
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ |............|
++ | 8aaa42aaa9|
++ | a###53###c|
++ |1##ca####abc|
++ |1##8 ####16c|
++ |1##b7####7ac|
++ | 3b###75###c|
++ | a###53###c|
++ |1##ca####abc|
++ |1##8 ####16c|
++ |1##b7####7ac|
++ -&gt;| 3b###75###c|&lt;-
++ | a###53###c|
++ |1##ca####abc|
++ |1##8 ####16c|
++ | 774 7777 36|
++ |............|
++ -----------
++
++Char 0x25a0 '■'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 11
++ Advance: 13
++ Offset: 1 x -2
++ _____________
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.............|
++ |.a##########.|
++ |.a##########.|
++ |.a##########.|
++ |.a##########.|
++ |.a##########.|
++ |.a##########.|
++ |.a##########.|
++ |.a##########.|
++ -&gt;|.a##########.|&lt;-
++ |.a##########.|
++ |.7aaaaaaaaa9.|
++ |.............|
++ |.............|
++ |.............|
++ -------------
++
++Char 0x25b6 '▶'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 11
++ Advance: 11
++ Offset: 0 x -2
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |a3 |
++ |##a3 |
++ |####a3 |
++ |######a3 |
++ |########a3 |
++ |#########c3|
++ |#######c6 |
++ |#####c6 |
++ -&gt;|###c6 |&lt;-
++ |##6 |
++ |6 |
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x25c0 '◀'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 11 x 11
++ Advance: 11
++ Offset: 0 x -2
++ ___________
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ |...........|
++ | 58|
++ | 5c#a|
++ | 5c###a|
++ | 5c#####a|
++ | 5b#######a|
++ |6#########a|
++ | 18#######a|
++ | 18#####a|
++ -&gt;| 18###a|&lt;-
++ | 18#a|
++ | 15|
++ |...........|
++ |...........|
++ |...........|
++ -----------
++
++Char 0x3001 '、'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 5 x 4
++ Advance: 17
++ Offset: 3 x 1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |...## .........|
++ |... ### .........|
++ |... ###.........|
++ |... ##.........|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3002 '。'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 5 x 4
++ Advance: 17
++ Offset: 3 x 0
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |... ### .........|
++ |...## ##.........|
++ |...## ##.........|
++ -&gt;|... ### .........|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3042 'あ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 15
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## .|
++ |.. ## .|
++ |.. ## ##### .|
++ |.. ###### .|
++ |.. ## .|
++ |.. ## ## .|
++ |.. ####### .|
++ |.. ## ## ## .|
++ |.. ### ## ## .|
++ |.. #### ## ##.|
++ |..## #### ##.|
++ |..## ## ##.|
++ |.. ###### ## .|
++ -&gt;|.. ### ### .|&lt;-
++ |.. ### .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3044 'い'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 11
++ Advance: 17
++ Offset: 3 x 0
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |...## .|
++ |... ## ## .|
++ |... ## ## .|
++ |... ## ## .|
++ |...## ## .|
++ |...## ##.|
++ |...## ## ##.|
++ |...## ## ###.|
++ |... #### ##.|
++ |... ## .|
++ -&gt;|... ## .|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3046 'う'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 10 x 16
++ Advance: 17
++ Offset: 4 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.... ## ...|
++ |.... #### ...|
++ |.... ...|
++ |.... ...|
++ |....## #### ...|
++ |.... #### ## ...|
++ |.... ##...|
++ |.... ##...|
++ |.... ##...|
++ |.... ##...|
++ |.... ## ...|
++ |.... ## ...|
++ |.... ## ...|
++ -&gt;|.... ## ...|&lt;-
++ |.... ## ...|
++ |.... ## ...|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3048 'え'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 15
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ### ..|
++ |.. ..|
++ |.. ## ##### ..|
++ |.. #### ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. #### ..|
++ |.. ## ## ..|
++ |.. ## ## ..|
++ |.. ## ## ..|
++ -&gt;|..## ## ..|&lt;-
++ |.. ####..|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x304a 'お'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 1 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## |
++ |. ## |
++ |. ## ## |
++ |. ## ## ### |
++ |. #### ## |
++ |. ##### ####|
++ |. ## |
++ |. ## ##### |
++ |. #### ## |
++ |. ## ## |
++ |. ### ## |
++ |.### ## ## |
++ |. ##### ## ## |
++ -&gt;|. ### ### |&lt;-
++ |. ## |
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x304b 'か'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 14
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.. ## .|
++ |.. ## .|
++ |.. ## ## .|
++ |.. ## ## .|
++ |..## ##### ## .|
++ |.. #### ## ## .|
++ |.. ## ## ##.|
++ |.. ## ## ###.|
++ |.. ## ## ##.|
++ |.. ## ## .|
++ |.. ## ## .|
++ |.. #### ## .|
++ -&gt;|..## #### .|&lt;-
++ |.. ## .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x304c 'が'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 14
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.. ## ## |
++ |.. ## ####|
++ |.. ## ######|
++ |.. ## ## |
++ |..## ##### ## |
++ |.. #### ## ## |
++ |.. ## ## ## |
++ |.. ## ## ### |
++ |.. ## ## ## |
++ |.. ## ## |
++ |.. ## ## |
++ |.. #### ## |
++ -&gt;|..## #### |&lt;-
++ |.. ## |
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x304d 'き'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 11 x 15
++ Advance: 17
++ Offset: 4 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.... ## ..|
++ |.... ## ## ..|
++ |.... ##### ..|
++ |.... ###### ..|
++ |.... ## ##..|
++ |.... ##### ..|
++ |....######## ..|
++ |.... ## ..|
++ |.... ## ..|
++ |.... ######## ..|
++ |.... ## ### ..|
++ |....## ..|
++ |....## ..|
++ -&gt;|.... ### ..|&lt;-
++ |.... ##### ..|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x304f 'く'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 7 x 15
++ Advance: 17
++ Offset: 5 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |..... ##.....|
++ |..... ##.....|
++ |..... ## .....|
++ |..... ## .....|
++ |..... ## .....|
++ |..... ## .....|
++ |..... ## .....|
++ |.....## .....|
++ |..... ## .....|
++ |..... ## .....|
++ |..... ## .....|
++ |..... ## .....|
++ |..... ## .....|
++ -&gt;|..... ##.....|&lt;-
++ |..... ##.....|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3050 'ぐ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 11 x 15
++ Advance: 17
++ Offset: 5 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |..... ## .|
++ |..... ## .|
++ |..... ## ## .|
++ |..... #### ##.|
++ |..... ## ####.|
++ |..... ## ## .|
++ |..... ## .|
++ |.....## .|
++ |..... ## .|
++ |..... ## .|
++ |..... ## .|
++ |..... ## .|
++ |..... ## .|
++ -&gt;|..... ## .|&lt;-
++ |..... ## .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3051 'け'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 16
++ Advance: 17
++ Offset: 2 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## .|
++ |..## ## .|
++ |.. ## ## .|
++ |.. ## ## .|
++ |.. ## #####.|
++ |..## ####### .|
++ |..## ## .|
++ |..## ## .|
++ |..## ## .|
++ |..## ## .|
++ |..#### ## .|
++ |.. ## ## .|
++ |.. ## ## .|
++ -&gt;|.. ## .|&lt;-
++ |.. ## .|
++ |.. ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3053 'こ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 12 x 12
++ Advance: 17
++ Offset: 3 x 0
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |... ## ..|
++ |... ######## ..|
++ |... ## ..|
++ |... ## ..|
++ |... ..|
++ |... ..|
++ |... ..|
++ |...## ..|
++ |...## ..|
++ |...## ..|
++ |... ## ##..|
++ -&gt;|... ######### ..|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3055 'さ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 11 x 15
++ Advance: 17
++ Offset: 4 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.... ## ..|
++ |.... ## ..|
++ |.... ## ###..|
++ |....## #### ..|
++ |.... ####### ..|
++ |.... ## ..|
++ |.... ## ..|
++ |.... ## ..|
++ |.... ######## ..|
++ |.... ## ### ..|
++ |....## ..|
++ |....## ..|
++ |.... ## ..|
++ -&gt;|.... ### ..|&lt;-
++ |.... ##### ..|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3057 'し'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 11 x 14
++ Advance: 17
++ Offset: 3 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |...## ...|
++ |... ## ...|
++ |... ## ...|
++ |... ## ...|
++ |... ## ...|
++ |... ## ...|
++ |... ## ...|
++ |... ## ...|
++ |... ## ...|
++ |... ## ...|
++ |... ## ##...|
++ |... ## ## ...|
++ -&gt;|... ## ### ...|&lt;-
++ |... #### ...|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3058 'じ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 11 x 14
++ Advance: 17
++ Offset: 3 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |...## ...|
++ |... ## ## ...|
++ |... ## ## ##...|
++ |... ## ####...|
++ |... ## ## ...|
++ |... ## ...|
++ |... ## ...|
++ |... ## ...|
++ |... ## ...|
++ |... ## ...|
++ |... ## ##...|
++ |... ## ## ...|
++ -&gt;|... ## ### ...|&lt;-
++ |... #### ...|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3059 'す'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 16
++ Advance: 17
++ Offset: 2 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## .|
++ |.. ## .|
++ |..## #######.|
++ |.. ######## .|
++ |.. ## .|
++ |.. ## .|
++ |.. ##### .|
++ |.. ### ## .|
++ |.. ## ## .|
++ |.. ## ### .|
++ |.. ##### .|
++ |.. ## .|
++ |.. ## .|
++ -&gt;|.. ## .|&lt;-
++ |.. ## .|
++ |.. ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x305a 'ず'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## ## |
++ |. ## ##|
++ |.## #########|
++ |. ######## ## |
++ |. ## |
++ |. ## |
++ |. ##### |
++ |. ### ## |
++ |. ## ## |
++ |. ## ### |
++ |. ##### |
++ |. ## |
++ |. ## |
++ -&gt;|. ## |&lt;-
++ |. ## |
++ |. ## |
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x305b 'せ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 13
++ Advance: 17
++ Offset: 1 x 0
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. ## .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ######.|
++ |.## ####### .|
++ |. ###### ## .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ### .|
++ |. ## ## .|
++ |. ## .|
++ |. ## .|
++ -&gt;|. ####### .|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x305d 'そ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 14
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.. ## #### ..|
++ |.. ### ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## #####..|
++ |.. ###### ..|
++ |..#### ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ -&gt;|.. ## ..|&lt;-
++ |.. #### ..|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x305f 'た'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 15
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ## ..|
++ |.. ##### ..|
++ |.. ### ..|
++ |..##### ..|
++ |.. ## #### ..|
++ |.. ## ### ###..|
++ |.. ## ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ## ..|
++ |..## ## ..|
++ -&gt;|..## ## ..|&lt;-
++ |..## ######..|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3060 'だ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 15
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## ## .|
++ |.. ## ## ##.|
++ |.. ## ## ####.|
++ |.. ##### ## .|
++ |.. ### .|
++ |..##### .|
++ |.. ## #### .|
++ |.. ## ### ### .|
++ |.. ## ## .|
++ |.. ## .|
++ |.. ## .|
++ |.. ## ## .|
++ |..## ## .|
++ -&gt;|..## ## .|&lt;-
++ |..## ###### .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3061 'ち'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 15
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ### ..|
++ |..## ##### ..|
++ |.. ##### ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ##### ..|
++ |.. #### ## ..|
++ |.. ### ##..|
++ |.. ## ##..|
++ |.. ##..|
++ |.. ## ..|
++ -&gt;|.. ### ..|&lt;-
++ |.. ##### ..|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3063 'っ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 10 x 7
++ Advance: 17
++ Offset: 4 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.... ###### ...|
++ |....#### ##...|
++ |.... ##...|
++ |.... ##...|
++ |.... ## ...|
++ -&gt;|.... ### ...|&lt;-
++ |.... ### ...|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3064 'つ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 10
++ Advance: 17
++ Offset: 1 x 1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. #### .|
++ |. #### ## .|
++ |.## ### ## .|
++ |. ### ##.|
++ |. ##.|
++ |. ##.|
++ |. ## .|
++ |. ## .|
++ |. ### .|
++ |. #### .|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3066 'て'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 13
++ Advance: 17
++ Offset: 1 x 0
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. #####.|
++ |.## ####### .|
++ |. ##### ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ -&gt;|. #### .|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3067 'で'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 13
++ Advance: 17
++ Offset: 1 x 0
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. #### |
++ |.## ####### |
++ |. ##### ## ## |
++ |. ## ## ##|
++ |. ## ####|
++ |. ## ## |
++ |. ## |
++ |. ## |
++ |. ## |
++ |. ## |
++ |. ## |
++ |. ## |
++ -&gt;|. #### |&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3068 'と'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 11 x 14
++ Advance: 17
++ Offset: 4 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.... ## ..|
++ |.... ## ..|
++ |.... ## ..|
++ |.... ## ## ..|
++ |.... ## ###..|
++ |.... ## ### ..|
++ |.... #### ..|
++ |.... ### ..|
++ |.... ## ..|
++ |.... ## ..|
++ |....## ..|
++ |....## ..|
++ -&gt;|.... ## ..|&lt;-
++ |.... #########..|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3069 'ど'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 14
++ Advance: 17
++ Offset: 3 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |... ## ## .|
++ |... ## ## ##.|
++ |... ## ####.|
++ |... ## ## .|
++ |... ## ### .|
++ |... ## ### .|
++ |... #### .|
++ |... ### .|
++ |... ## .|
++ |... ## .|
++ |...## .|
++ |...## .|
++ -&gt;|... ## .|&lt;-
++ |... ######### .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x306a 'な'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 15
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## .|
++ |.. ## ## .|
++ |.. #### .|
++ |..###### ## .|
++ |.. ## ### .|
++ |.. ## ## ##.|
++ |.. ## ## .|
++ |.. ## ## .|
++ |.. ## ## .|
++ |.. ## ## .|
++ |..## ## .|
++ |.. ###### .|
++ |.. ## #### .|
++ -&gt;|.. ## ## ## .|&lt;-
++ |.. ##### .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x306b 'に'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 14
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |..## ..|
++ |.. ## ..|
++ |.. ## ##### ..|
++ |.. ## ### ###..|
++ |.. ## ## ..|
++ |..## ..|
++ |..## ..|
++ |..## ..|
++ |..## ..|
++ |..## ## ..|
++ |..## ## ..|
++ |..#### ## ..|
++ -&gt;|.. ## ######..|&lt;-
++ |.. ## ..|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x306e 'の'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 12
++ Advance: 17
++ Offset: 2 x 0
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.. ##### .|
++ |.. ##### ## .|
++ |.. ## ## ## .|
++ |.. ## ## ## .|
++ |.. ## ## ## .|
++ |..## ## ##.|
++ |..## ## ##.|
++ |..## ## ## .|
++ |.. #### ## .|
++ |.. ### ## .|
++ |.. ## .|
++ -&gt;|.. ### .|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x306f 'は'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 15
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## .|
++ |..## ## .|
++ |.. ## ## .|
++ |.. ## ## .|
++ |.. ## ## #####.|
++ |.. ## ###### .|
++ |.. ## ## .|
++ |..## ## .|
++ |..## ## .|
++ |..## ## .|
++ |..## ## .|
++ |..#### ###### .|
++ |..### ## #### .|
++ -&gt;|.. ## ## ## ##.|&lt;-
++ |.. ## ##### .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3070 'ば'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 15
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## ## |
++ |..## ### ##|
++ |.. ## ######|
++ |.. ## #### |
++ |.. ## ## ##### |
++ |.. ## ###### |
++ |.. ## ## |
++ |..## ## |
++ |..## ## |
++ |..## ## |
++ |..## ## |
++ |..#### ###### |
++ |..### ## #### |
++ -&gt;|.. ## ## ## ## |&lt;-
++ |.. ## ##### |
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3072 'ひ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 14
++ Advance: 17
++ Offset: 1 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. ## .|
++ |. ## ## .|
++ |. #### ### .|
++ |.###### ## .|
++ |. ## ## .|
++ |. ## ### .|
++ |. ## #### .|
++ |. ## ## ##.|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ## .|
++ -&gt;|. ## ### .|&lt;-
++ |. #### .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3073 'び'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 1 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## |
++ |. #### ##|
++ |. ## ## ####|
++ |. #### ##### |
++ |.###### ## |
++ |. ## ## |
++ |. ## ### |
++ |. ## #### |
++ |. ## ## ## |
++ |. ## ## |
++ |. ## ## |
++ |. ## ## |
++ |. ## ## |
++ -&gt;|. ## ### |&lt;-
++ |. #### |
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3078 'へ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 7
++ Advance: 17
++ Offset: 1 x 3
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. ### |
++ |. ## ## |
++ |. ## ## |
++ |. ## ## |
++ |.#### ## |
++ |. ## ### |
++ |. ###|
++ |.................|
++ |.................|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3079 'べ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 10
++ Advance: 17
++ Offset: 1 x 3
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. ## |
++ |. ## ## |
++ |. #### |
++ |. ### ## |
++ |. ## ## |
++ |. ## ## |
++ |. ## ## |
++ |.#### ## |
++ |. ## ### |
++ |. ###|
++ |.................|
++ |.................|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x307b 'ほ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 14
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |..## ## ### .|
++ |.. ## ##### .|
++ |.. ## ## .|
++ |.. ## ## .|
++ |.. ## #####.|
++ |.. ## ####### .|
++ |..## ## .|
++ |..## ## .|
++ |..## ## .|
++ |..## ## .|
++ |..#### ###### .|
++ |..### ## #### .|
++ -&gt;|.. ## ## ## ##.|&lt;-
++ |.. ## ##### .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x307e 'ま'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 12 x 15
++ Advance: 17
++ Offset: 3 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |... ## ..|
++ |... ## ..|
++ |...## ##### ..|
++ |... ####### ..|
++ |... ## ..|
++ |... ## ..|
++ |...## #### ..|
++ |... ####### ..|
++ |... ## ..|
++ |... ## ..|
++ |... ###### ..|
++ |... ## #### ..|
++ |...## ## ###..|
++ -&gt;|...### ## ..|&lt;-
++ |... ##### ..|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x307f 'み'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 13
++ Advance: 17
++ Offset: 1 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. ## ## .|
++ |. ##### .|
++ |. ## .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ###### ## .|
++ |. ##### #### .|
++ |. ## ## ### .|
++ |.## ## ## ##.|
++ |.## ## ## .|
++ |.## ## ## .|
++ -&gt;|. ### ## .|&lt;-
++ |. ## .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3080 'む'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 15
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## .|
++ |.. ## .|
++ |..## ##### .|
++ |.. #### ### .|
++ |.. ## ## .|
++ |.. ## ###.|
++ |.. #### .|
++ |..## ## .|
++ |..## ## ## .|
++ |..## ## ## .|
++ |..#### ## .|
++ |.. ### ## .|
++ |.. ## ## .|
++ -&gt;|.. ## ## .|&lt;-
++ |.. ####### .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3081 'め'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 14
++ Advance: 17
++ Offset: 1 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. ## .|
++ |. ## .|
++ |. ## ## .|
++ |. ## ##### .|
++ |. ####### ### .|
++ |. ### ## ## .|
++ |. ### ## ## .|
++ |. #### ## ##.|
++ |. ## #### ##.|
++ |.## ## ##.|
++ |.## ### ## .|
++ |.## ## ## ## .|
++ -&gt;|. ### ## .|&lt;-
++ |. ### .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3082 'も'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 12 x 15
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## ...|
++ |.. ## ...|
++ |.. ## ## ...|
++ |.. #### ...|
++ |.. #### ...|
++ |.. #### ...|
++ |..### ## ...|
++ |.. ##### ## ...|
++ |.. ##### ##...|
++ |.. ## ##...|
++ |.. ## ##...|
++ |.. ## ##...|
++ |.. ## ## ...|
++ -&gt;|.. ## ## ...|&lt;-
++ |.. #### ...|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3084 'や'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 15
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. ## .|
++ |. ### .|
++ |. ### ### .|
++ |. ## .|
++ |. ## ##### .|
++ |. ###### ##.|
++ |.## #### ##.|
++ |. ### ## ##.|
++ |. ## ## .|
++ |. ## #### .|
++ |. ## .|
++ |. ## .|
++ -&gt;|. ## .|&lt;-
++ |. ## .|
++ |. ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3086 'ゆ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 14
++ Advance: 17
++ Offset: 1 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. ### .|
++ |. ## .|
++ |.## ##### .|
++ |. ## #### ## .|
++ |. ## ## ## ## .|
++ |. ## ## ## ##.|
++ |. #### ## ##.|
++ |. ### ## ##.|
++ |. ### ## ## ## .|
++ |. ## #### ## .|
++ |. ## ##### .|
++ |. ## .|
++ -&gt;|. ## .|&lt;-
++ |. ## .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3088 'よ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 15
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ###..|
++ |.. ##### ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ####### ..|
++ |..## #### ..|
++ |..## ## ### ..|
++ -&gt;|..## ## ##..|&lt;-
++ |.. ##### ..|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3089 'ら'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 11 x 15
++ Advance: 17
++ Offset: 4 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.... ## ..|
++ |.... ## ..|
++ |.... #### ..|
++ |.... ## ..|
++ |.... ## ..|
++ |....## ..|
++ |....## ..|
++ |....## ##### ..|
++ |....##### ## ..|
++ |....### ##..|
++ |....## ##..|
++ |....## ## ..|
++ |.... ## ..|
++ -&gt;|.... ### ..|&lt;-
++ |.... #### ..|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x308a 'り'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 10 x 16
++ Advance: 17
++ Offset: 3 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |...## ....|
++ |... ## #### ....|
++ |... #### ## ....|
++ |... #### ##....|
++ |... ### ##....|
++ |... ### ##....|
++ |... ## ##....|
++ |... ## ##....|
++ |... ## ##....|
++ |... ## ##....|
++ |... ## ....|
++ |... ## ....|
++ |... ## ....|
++ -&gt;|... ## ....|&lt;-
++ |... ## ....|
++ |... ## ....|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x308b 'る'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 12 x 14
++ Advance: 17
++ Offset: 3 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |... ## #### ..|
++ |... ### ## ..|
++ |... ## ..|
++ |... ## ..|
++ |... ## ..|
++ |... ###### ..|
++ |... ### ## ..|
++ |... ## ## ..|
++ |...## ##..|
++ |... ##..|
++ |... ### ##..|
++ |... ## ## ## ..|
++ -&gt;|... ## #### ..|&lt;-
++ |... ##### ..|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x308c 'れ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 1 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## |
++ |. ## |
++ |. ## |
++ |. ## ### |
++ |. ## ## ## |
++ |.## ##### ## |
++ |. ###### ## |
++ |. ## ## |
++ |. ## ## |
++ |. ### ## |
++ |. ### ## |
++ |. #### ## ##|
++ |. ## ## ## ## |
++ -&gt;|.## ### ### |&lt;-
++ |. ## |
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x308f 'わ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 15
++ Advance: 17
++ Offset: 1 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. #### .|
++ |.## ### .|
++ |. #### ##### .|
++ |. ##### ## .|
++ |. ### ## .|
++ |. ## ##.|
++ |. ### ##.|
++ |. ### ## .|
++ |. #### ## .|
++ |.## ## ### .|
++ -&gt;|. ### ### .|&lt;-
++ |. ## .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3092 'を'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 15
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## .|
++ |.. ## .|
++ |.. ## ##### .|
++ |.. ##### .|
++ |.. ## ## .|
++ |.. ## ###.|
++ |.. ##### ### .|
++ |.. ## ### .|
++ |.. ## ### .|
++ |..## #### .|
++ |.. ## ## .|
++ |.. ## ## .|
++ |.. ## .|
++ -&gt;|.. ## .|&lt;-
++ |.. ####### .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x3093 'ん'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 15
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## |
++ |.. ## |
++ |.. ## |
++ |.. ## |
++ |.. ## |
++ |.. ## |
++ |.. ## |
++ |.. ##### |
++ |.. ### ## |
++ |.. ### ## |
++ |.. ## ## |
++ |.. ## ## ##|
++ |.. ## ## ## |
++ -&gt;|..## ## ## |&lt;-
++ |..## ### |
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30a1 'ァ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 10 x 9
++ Advance: 17
++ Offset: 3 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |...## #####....|
++ |... ##### ##....|
++ |... ## ....|
++ |... #### ....|
++ |... ## ....|
++ |... ## ....|
++ |... ## ....|
++ -&gt;|... ## ....|&lt;-
++ |... ## ....|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30a2 'ア'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 13
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |..## ######..|
++ |.. ####### ##..|
++ |.. ## ..|
++ |.. ## ## ..|
++ |.. ## ## ..|
++ |.. #### ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ -&gt;|.. ## ..|&lt;-
++ |.. ## ..|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30a3 'ィ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 9 x 11
++ Advance: 17
++ Offset: 4 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.... ##....|
++ |.... ##....|
++ |.... ## ....|
++ |.... ## ....|
++ |.... ## ....|
++ |.... ##### ....|
++ |....### ## ....|
++ |.... ## ....|
++ |.... ## ....|
++ -&gt;|.... ## ....|&lt;-
++ |.... ## ....|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30a4 'イ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 11 x 14
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.. ##....|
++ |.. ##....|
++ |.. ## ....|
++ |.. ## ....|
++ |.. ## ....|
++ |.. ### ....|
++ |.. ## ## ....|
++ |.. ### ## ....|
++ |..### ## ....|
++ |.. ## ....|
++ |.. ## ....|
++ |.. ## ....|
++ -&gt;|.. ## ....|&lt;-
++ |.. ## ....|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30a6 'ウ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 12 x 14
++ Advance: 17
++ Offset: 3 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |... ## ..|
++ |... ## ..|
++ |... ## ..|
++ |...## #######..|
++ |...###### ##..|
++ |... ## ##..|
++ |... ## ## ..|
++ |... ## ## ..|
++ |... ## ## ..|
++ |... ## ..|
++ |... ## ..|
++ |... ## ..|
++ -&gt;|... ## ..|&lt;-
++ |... ## ..|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30a7 'ェ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 10 x 7
++ Advance: 17
++ Offset: 3 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |... ##### ....|
++ |... ##### ....|
++ |... ## ....|
++ |... ## ....|
++ |... ## ....|
++ -&gt;|... ###### ....|&lt;-
++ |...#### ##....|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30a8 'エ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 10
++ Advance: 17
++ Offset: 1 x 1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. #### .|
++ |. ######## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ######### .|
++ |.###### ##.|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30a9 'ォ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 10 x 11
++ Advance: 17
++ Offset: 4 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.... ## ...|
++ |.... ## ...|
++ |....## #####...|
++ |.... ###### ...|
++ |.... ### ...|
++ |.... #### ...|
++ |.... ## ## ...|
++ |.... ## ## ...|
++ -&gt;|....## ## ...|&lt;-
++ |.... ### ...|
++ |.... ## ...|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30aa 'オ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 14
++ Advance: 17
++ Offset: 3 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |... ## .|
++ |... ## .|
++ |...## ######.|
++ |... ######## .|
++ |... ## .|
++ |... ### .|
++ |... ### .|
++ |... #### .|
++ |... ## ## .|
++ |... ## ## .|
++ |... ## ## .|
++ |...### ## .|
++ -&gt;|... ### .|&lt;-
++ |... ## .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30ab 'カ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 14
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## #######..|
++ |.. ###### ##..|
++ |.. ## ##..|
++ |.. ## ##..|
++ |.. ## ##..|
++ |.. ## ## ..|
++ |.. ## ## ..|
++ |.. ## ## ..|
++ |.. ## #### ..|
++ -&gt;|.. ## ### ..|&lt;-
++ |..## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30ad 'キ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 14
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.. ## .|
++ |.. ## .|
++ |.. ## ### .|
++ |.. ##### .|
++ |.. ####### .|
++ |.. ## .|
++ |.. ## ####.|
++ |.. ##### .|
++ |.. ##### .|
++ |..##### ## .|
++ |.. ## .|
++ |.. ## .|
++ -&gt;|.. ## .|&lt;-
++ |.. ## .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30af 'ク'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 11 x 14
++ Advance: 17
++ Offset: 3 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |... ## ...|
++ |... ## ###...|
++ |... #######...|
++ |... ## ##...|
++ |... ## ##...|
++ |... ## ## ...|
++ |... ## ## ...|
++ |... ## ## ...|
++ |...## ## ...|
++ |... ## ...|
++ |... ## ...|
++ |... ## ...|
++ -&gt;|... ## ...|&lt;-
++ |... ## ...|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30b0 'グ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 15
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## |
++ |.. ## ## ##|
++ |.. ## #######|
++ |.. ######### |
++ |.. ## ## |
++ |.. ## ## |
++ |.. ## ## |
++ |.. ## ## |
++ |.. ## ## |
++ |..## ## |
++ |.. ## |
++ |.. ## |
++ |.. ## |
++ -&gt;|.. ## |&lt;-
++ |.. ## |
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30b2 'ゲ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 15
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## |
++ |.. ## ## ##|
++ |.. ## ####|
++ |.. ## #### |
++ |.. ####### |
++ |.. ## ## |
++ |.. ## ## |
++ |.. ## ## |
++ |.. ## ## |
++ |..## ## |
++ |.. ## |
++ |.. ## |
++ |.. ## |
++ -&gt;|.. ## |&lt;-
++ |.. ## |
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30b3 'コ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 12 x 10
++ Advance: 17
++ Offset: 2 x 1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |..## ######...|
++ |.. ###### ##...|
++ |.. ##...|
++ |.. ##...|
++ |.. ##...|
++ |.. ## ...|
++ |.. ## ...|
++ |.. ## ...|
++ |.. ####### ...|
++ |.. #### ## ...|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30b5 'サ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 15
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## .|
++ |.. ## ## .|
++ |.. ## ## .|
++ |.. ## ## .|
++ |..## ## #######.|
++ |.. ####### ## .|
++ |.. ## ## .|
++ |.. ## ## .|
++ |.. ## ## .|
++ |.. ## ## .|
++ |.. ## .|
++ |.. ## .|
++ |.. ## .|
++ -&gt;|.. ## .|&lt;-
++ |.. ## .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30b6 'ザ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 15
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## ## |
++ |.. ## ### ##|
++ |.. ## ######|
++ |.. ## #### |
++ |..## ## ####### |
++ |.. ####### ## |
++ |.. ## ## |
++ |.. ## ## |
++ |.. ## ## |
++ |.. ## ## |
++ |.. ## |
++ |.. ## |
++ |.. ## |
++ -&gt;|.. ## |&lt;-
++ |.. ## |
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30b7 'シ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 13
++ Advance: 17
++ Offset: 3 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |... ### .|
++ |... ## .|
++ |... .|
++ |... .|
++ |...### ##.|
++ |... ## ## .|
++ |... ## .|
++ |... ## .|
++ |... ## .|
++ |... ## .|
++ |... ## .|
++ -&gt;|...## ### .|&lt;-
++ |... ### .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30b8 'ジ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 15
++ Advance: 17
++ Offset: 3 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |... ## |
++ |... ## ##|
++ |... ### ####|
++ |... ## ## |
++ |... |
++ |... |
++ |...### ## |
++ |... ## ## |
++ |... ## |
++ |... ## |
++ |... ## |
++ |... ## |
++ |... ## |
++ -&gt;|...## ### |&lt;-
++ |... ### |
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30b9 'ス'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 12
++ Advance: 17
++ Offset: 1 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. ## #### ..|
++ |. ##### ## ..|
++ |. ## ..|
++ |. ## ..|
++ |. ## ..|
++ |. ## ..|
++ |. ### ..|
++ |. ## ## ..|
++ |. ## ## ..|
++ |. ## ## ..|
++ -&gt;|. ### ##..|&lt;-
++ |.### ##..|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30ba 'ズ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 14
++ Advance: 17
++ Offset: 1 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. ## .|
++ |. ## ##.|
++ |. ## ########.|
++ |. ##### #### .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ### .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ## .|
++ -&gt;|. ### ## .|&lt;-
++ |.### ## .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30bb 'セ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 13
++ Advance: 17
++ Offset: 2 x 0
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.. ## .|
++ |.. ## .|
++ |.. ## .|
++ |.. ## #####.|
++ |.. ###### ##.|
++ |..## ### ## .|
++ |.. ##### ## .|
++ |.. ## ## .|
++ |.. ## ## .|
++ |.. ## .|
++ |.. ## .|
++ |.. ## .|
++ -&gt;|.. ####### .|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30bd 'ソ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 12 x 14
++ Advance: 17
++ Offset: 3 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |... ## ..|
++ |...## ##..|
++ |... ## ##..|
++ |... ## ##..|
++ |... ## ## ..|
++ |... ## ## ..|
++ |... ## ..|
++ |... ## ..|
++ |... ## ..|
++ |... ## ..|
++ |... ## ..|
++ |... ## ..|
++ -&gt;|... ## ..|&lt;-
++ |... ## ..|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30bf 'タ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 12 x 14
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.. ## ...|
++ |.. ## ####...|
++ |.. ##### ##...|
++ |.. ## ##...|
++ |.. ## ## ...|
++ |.. ## ## ...|
++ |.. ## ##### ...|
++ |.. ## ### ...|
++ |..## ## ...|
++ |.. ## ...|
++ |.. ## ...|
++ |.. ## ...|
++ -&gt;|.. ### ...|&lt;-
++ |..### ...|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30c0 'ダ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 1 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## |
++ |. ## ## ##|
++ |. ## ####|
++ |. ######### |
++ |. ## ## |
++ |. ## ## |
++ |. ## ## |
++ |. ## ### ## |
++ |. ## ### |
++ |.## ## |
++ |. ## |
++ |. ## |
++ |. ## |
++ -&gt;|. ### |&lt;-
++ |.### |
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30c1 'チ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 14
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.. ## .|
++ |.. ### .|
++ |.. ###### .|
++ |.. ## .|
++ |.. ## .|
++ |.. #######.|
++ |..## ##### .|
++ |.. #### ## .|
++ |.. ## .|
++ |.. ## .|
++ |.. ## .|
++ |.. ## .|
++ -&gt;|.. ## .|&lt;-
++ |.. ## .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30c3 'ッ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 10 x 9
++ Advance: 17
++ Offset: 3 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |... ## ## ....|
++ |...## ## ##....|
++ |... ## ## ##....|
++ |... ## ## ....|
++ |... ## ....|
++ |... ## ....|
++ |... ## ....|
++ -&gt;|... ## ....|&lt;-
++ |... ## ....|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30c4 'ツ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 13
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.. ## ## ..|
++ |..## ## ##..|
++ |.. ## ## ##..|
++ |.. ## ## ##..|
++ |.. ## ## ## ..|
++ |.. ## ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ -&gt;|.. ## ..|&lt;-
++ |.. ### ..|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30c6 'テ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 13
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.. ## #### .|
++ |.. ##### .|
++ |.. .|
++ |.. .|
++ |.. ######.|
++ |..## #### .|
++ |.. ##### ## .|
++ |.. ## .|
++ |.. ## .|
++ |.. ## .|
++ |.. ## .|
++ -&gt;|.. ## .|&lt;-
++ |.. ## .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30c7 'デ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 15
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## .|
++ |.. ## ##.|
++ |.. ## #######.|
++ |.. ##### ## .|
++ |.. .|
++ |.. .|
++ |.. ######.|
++ |..## #### .|
++ |.. ##### ## .|
++ |.. ## .|
++ |.. ## .|
++ |.. ## .|
++ |.. ## .|
++ -&gt;|.. ## .|&lt;-
++ |.. ## .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30c8 'ト'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 9 x 15
++ Advance: 17
++ Offset: 5 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.....## ...|
++ |..... ## ...|
++ |..... ## ...|
++ |..... ## ...|
++ |..... ## ...|
++ |..... #### ...|
++ |..... ## ### ...|
++ |..... ## ## ...|
++ |..... ## ##...|
++ |..... ## ...|
++ |..... ## ...|
++ |..... ## ...|
++ -&gt;|..... ## ...|&lt;-
++ |..... ## ...|
++ |..... ## ...|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30c9 'ド'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 11 x 15
++ Advance: 17
++ Offset: 5 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.....## ## .|
++ |..... ## ## ##.|
++ |..... ## ####.|
++ |..... ## ## .|
++ |..... ## .|
++ |..... #### .|
++ |..... ## ### .|
++ |..... ## ## .|
++ |..... ## ## .|
++ |..... ## .|
++ |..... ## .|
++ |..... ## .|
++ -&gt;|..... ## .|&lt;-
++ |..... ## .|
++ |..... ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30cb 'ニ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 9
++ Advance: 17
++ Offset: 2 x 1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.. ## #### .|
++ |.. ##### .|
++ |.. .|
++ |.. .|
++ |.. .|
++ |.. .|
++ |.. .|
++ |.. ####### .|
++ |..####### ##.|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30cd 'ネ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 15
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## .|
++ |.. ## .|
++ |.. ## .|
++ |.. ## ###### .|
++ |.. ##### ## .|
++ |.. ## .|
++ |.. ## .|
++ |.. ## .|
++ |.. ###### .|
++ |.. ##### ### .|
++ |..#### ## ##.|
++ |.. ## .|
++ |.. ## .|
++ -&gt;|.. ## .|&lt;-
++ |.. ## .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30ce 'ノ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 10 x 14
++ Advance: 17
++ Offset: 4 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.... ## ...|
++ |.... ##...|
++ |.... ##...|
++ |.... ##...|
++ |.... ## ...|
++ |.... ## ...|
++ |.... ## ...|
++ |.... ## ...|
++ |.... ## ...|
++ |.... ## ...|
++ |.... ## ...|
++ |.... ## ...|
++ -&gt;|.... ## ...|&lt;-
++ |....## ...|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30cf 'ハ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 10
++ Advance: 17
++ Offset: 1 x 0
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. ## .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ##.|
++ |. ## ##.|
++ -&gt;|.## ##.|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30d0 'バ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 13
++ Advance: 17
++ Offset: 1 x 0
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. ## .|
++ |. ## ##.|
++ |. ####.|
++ |. ## ## ## .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ##.|
++ |. ## ##.|
++ -&gt;|.## ##.|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30d1 'パ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 13
++ Advance: 17
++ Offset: 1 x 0
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. ### .|
++ |. ## ##.|
++ |. ## ##.|
++ |. ## ## ### .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ##.|
++ |. ## ##.|
++ -&gt;|.## ##.|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30d3 'ビ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 13
++ Advance: 17
++ Offset: 2 x 0
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |..## ## .|
++ |.. ## ## ##.|
++ |.. ## ####.|
++ |.. ## ## .|
++ |.. ## ### .|
++ |.. ## ### .|
++ |.. ##### .|
++ |.. ## .|
++ |.. ## .|
++ |.. ## .|
++ |.. ## .|
++ |.. ## .|
++ -&gt;|.. ######### .|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30d4 'ピ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 13
++ Advance: 17
++ Offset: 1 x 0
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.## ### ..|
++ |. ## ## ##..|
++ |. ## ## ##..|
++ |. ## ### ..|
++ |. ## ### ..|
++ |. ## ### ..|
++ |. ##### ..|
++ |. ## ..|
++ |. ## ..|
++ |. ## ..|
++ |. ## ..|
++ |. ## ..|
++ -&gt;|. ######### ..|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30d5 'フ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 13
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |..## ######..|
++ |.. ####### ##..|
++ |.. ##..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ -&gt;|.. ## ..|&lt;-
++ |.. ### ..|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30d6 'ブ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 1 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## |
++ |. ## ##|
++ |.## #########|
++ |. ####### #### |
++ |. ## |
++ |. ## |
++ |. ## |
++ |. ## |
++ |. ## |
++ |. ## |
++ |. ## |
++ |. ## |
++ |. ## |
++ -&gt;|. ## |&lt;-
++ |. ### |
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30d7 'プ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 15
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ### |
++ |.. ## ##|
++ |..## ##### ##|
++ |.. ####### #### |
++ |.. ## |
++ |.. ## |
++ |.. ## |
++ |.. ## |
++ |.. ## |
++ |.. ## |
++ |.. ## |
++ |.. ## |
++ |.. ## |
++ -&gt;|.. ## |&lt;-
++ |.. ### |
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30d8 'ヘ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 8
++ Advance: 17
++ Offset: 1 x 2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. ## |
++ |. #### |
++ |. ## ## |
++ |. ## ## |
++ |.#### ## |
++ |. ## ## |
++ |. ## |
++ |. ###|
++ |.................|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30d9 'ベ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 10
++ Advance: 17
++ Offset: 1 x 2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. ## |
++ |. ## ## |
++ |. ## #### |
++ |. #### ## |
++ |. ## ## |
++ |. ## ## |
++ |.#### ## |
++ |. ## ## |
++ |. ## |
++ |. ###|
++ |.................|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30da 'ペ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 10
++ Advance: 17
++ Offset: 1 x 2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. ### |
++ |. ## ## |
++ |. ## ## ## |
++ |. #### ### |
++ |. ## ## |
++ |. ## ## |
++ |.#### ## |
++ |. ## ## |
++ |. ## |
++ |. ###|
++ |.................|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30dc 'ボ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 15
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## |
++ |.. ## ## ##|
++ |.. ## ####|
++ |.. ## ## |
++ |..## ####### |
++ |.. ####### |
++ |.. ## |
++ |.. ## ## |
++ |.. ## ## ## |
++ |.. ## ## ## |
++ |.. ## ## ## |
++ |.. ## ## ## |
++ |.. ## ## |
++ -&gt;|..## ### |&lt;-
++ |.. ## |
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30dd 'ポ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 14
++ Advance: 17
++ Offset: 2 x 0
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## ### |
++ |.. ## ## ##|
++ |.. ## ## ##|
++ |..## ######## |
++ |.. ####### |
++ |.. ## |
++ |.. ## ## |
++ |.. ## ## ## |
++ |.. ## ## ## |
++ |.. ## ## ## |
++ |.. ## ## ## |
++ |.. ## ## |
++ |..## ### |
++ -&gt;|.. ## |&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30de 'マ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 11
++ Advance: 17
++ Offset: 2 x 0
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |..## ######..|
++ |.. ####### ##..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ### ## ..|
++ |.. ##### ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ -&gt;|.. ## ..|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30e0 'ム'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 14
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.. ## .|
++ |.. ## .|
++ |.. ## .|
++ |.. ## .|
++ |.. ## .|
++ |.. ## ## .|
++ |.. ## ## .|
++ |.. ## ## .|
++ |.. ## ## .|
++ |.. ## ##### .|
++ |..## ###### ## .|
++ |.. ##### ##.|
++ -&gt;|.. ##.|&lt;-
++ |.. ##.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30e1 'メ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 12 x 14
++ Advance: 17
++ Offset: 3 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |... ## ..|
++ |... ## ..|
++ |... ## ..|
++ |... ## ..|
++ |... ### ## ..|
++ |... ### ## ..|
++ |... ### ..|
++ |... ### ..|
++ |... #### ..|
++ |... ## ##..|
++ |... ## ..|
++ |... ## ..|
++ -&gt;|... ### ..|&lt;-
++ |...### ..|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30e2 'モ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 12
++ Advance: 17
++ Offset: 1 x 0
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. ## ##### ..|
++ |. ##### ..|
++ |. ## ..|
++ |. ## ..|
++ |. ## ..|
++ |.## #########..|
++ |. ###### ..|
++ |. ## ..|
++ |. ## ..|
++ |. ## ..|
++ |. ## ..|
++ -&gt;|. ###### ..|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30e3 'ャ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 12 x 11
++ Advance: 17
++ Offset: 2 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.. ## ...|
++ |.. ## ...|
++ |.. ## #####...|
++ |.. #### ##...|
++ |..## ### ## ...|
++ |.. ##### ## ...|
++ |.. ## ...|
++ |.. ## ...|
++ -&gt;|.. ## ...|&lt;-
++ |.. ## ...|
++ |.. ## ...|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30e5 'ュ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 12 x 6
++ Advance: 17
++ Offset: 2 x 0
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.. #### ...|
++ |.. #### ## ...|
++ |.. ## ...|
++ |.. ## ...|
++ |.. ###### ...|
++ -&gt;|..###### ##...|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30e6 'ユ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 9
++ Advance: 17
++ Offset: 2 x 1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.. ## #### .|
++ |.. ##### ## .|
++ |.. ## .|
++ |.. ## .|
++ |.. ## .|
++ |.. ## .|
++ |.. ## .|
++ |.. ######### .|
++ |..##### ##.|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30e7 'ョ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 9 x 9
++ Advance: 17
++ Offset: 4 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.... #####....|
++ |....##### ##....|
++ |.... ##....|
++ |.... ##....|
++ |.... #### ....|
++ |.... #### ## ....|
++ |.... ## ....|
++ -&gt;|.... #### ....|&lt;-
++ |....##### ##....|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30e9 'ラ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 14
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.. ## ##### ..|
++ |.. ##### ..|
++ |.. ..|
++ |.. ..|
++ |.. #####..|
++ |..## ##### ##..|
++ |.. #### ##..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ -&gt;|.. ### ..|&lt;-
++ |.. ### ..|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30ea 'リ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 9 x 15
++ Advance: 17
++ Offset: 4 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.... ## ....|
++ |....## ##....|
++ |.... ## ##....|
++ |.... ## ##....|
++ |.... ## ##....|
++ |.... ## ##....|
++ |.... ## ##....|
++ |.... ## ##....|
++ |.... ## ##....|
++ |.... ## ##....|
++ |.... ## ....|
++ |.... ## ....|
++ |.... ## ....|
++ -&gt;|.... ## ....|&lt;-
++ |.... ## ....|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30eb 'ル'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 14
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.. ## |
++ |.. ## |
++ |.. ## ## |
++ |.. ## ## |
++ |.. ## ## ##|
++ |.. ## ## ##|
++ |.. ## ## ## |
++ |.. ## ## ## |
++ |.. ## ## ## |
++ |.. ## ## ## |
++ |.. ## #### |
++ |.. ## ### |
++ -&gt;|.. ## ## |&lt;-
++ |..## |
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30ec 'レ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 11 x 14
++ Advance: 17
++ Offset: 4 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |....## ..|
++ |.... ## ..|
++ |.... ## ..|
++ |.... ## ..|
++ |.... ## ..|
++ |.... ## ..|
++ |.... ## ..|
++ |.... ## ##..|
++ |.... ## ## ..|
++ |.... ## ## ..|
++ |.... ## ## ..|
++ |.... ## ### ..|
++ -&gt;|.... #### ..|&lt;-
++ |.... ## ..|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30ed 'ロ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 12
++ Advance: 17
++ Offset: 2 x 0
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |..## ..|
++ |.. ## #######..|
++ |.. ###### ##..|
++ |.. ## ##..|
++ |.. ## ##..|
++ |.. ## ##..|
++ |.. ## ## ..|
++ |.. ## ## ..|
++ |.. ## ## ..|
++ |.. ## ###### ..|
++ |.. ##### ##..|
++ -&gt;|.. ## ..|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30ef 'ワ'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 12
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |..## ######..|
++ |.. ####### ##..|
++ |.. ## ##..|
++ |.. ## ##..|
++ |.. ## ## ..|
++ |.. ## ## ..|
++ |.. ## ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ -&gt;|.. ## ..|&lt;-
++ |.. ## ..|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30f3 'ン'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 12
++ Advance: 17
++ Offset: 3 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |...### .|
++ |... ## ##.|
++ |... ## ##.|
++ |... ## .|
++ |... ## .|
++ |... ## .|
++ |... ## .|
++ |... ## .|
++ |... ## .|
++ |... ## .|
++ -&gt;|...## ### .|&lt;-
++ |... ### .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x30fc 'ー'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 2
++ Advance: 17
++ Offset: 0 x 4
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |### ########.|
++ | ####### .|
++ |.................|
++ |.................|
++ |.................|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4e00 '一'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 1
++ Advance: 17
++ Offset: 0 x 6
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |################.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4e0a '上'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ######## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ -&gt;| ## .|&lt;-
++ |################.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4e0b '下'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |################.|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## .|
++ | ## .|
++ -&gt;| ## .|&lt;-
++ | ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4e0d '不'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ##############..|
++ | ## ..|
++ | ## ..|
++ | ## ..|
++ | ## ..|
++ | ##### ..|
++ | #### ## ..|
++ | ## ## ## ..|
++ | ## ## ## ..|
++ | ## ## ##..|
++ | ## ## ##..|
++ |## ## ..|
++ -&gt;| ## ..|&lt;-
++ | ## ..|
++ | ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4e0e '与'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ..|
++ | ## ..|
++ | ## ..|
++ | ############..|
++ | ## ..|
++ | ## ..|
++ | ## ..|
++ | ############ ..|
++ | ## ..|
++ | ## ..|
++ | ## ..|
++ |########### ## ..|
++ | ## ..|
++ -&gt;| ## ..|&lt;-
++ | #### ..|
++ | ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4e14 '且'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 14
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ########## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ |################.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4e21 '両'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |################.|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ############## .|
++ | ## ## ## .|
++ | ## ## ## ## ## .|
++ | ## ## ## ## ## .|
++ | ## ## ## ## ## .|
++ | ## ## ## ## ## .|
++ | ## ######## ## .|
++ | ## ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## #### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4e26 '並'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ############## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | #### ## ## .|
++ | #### #### .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ |################.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4e2d '中'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 12 x 16
++ Advance: 17
++ Offset: 2 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## ...|
++ |.. ## ...|
++ |.. ## ...|
++ |.. ## ...|
++ |..############...|
++ |..## ## ##...|
++ |..## ## ##...|
++ |..## ## ##...|
++ |..## ## ##...|
++ |..## ## ##...|
++ |..############...|
++ |..## ## ##...|
++ |.. ## ...|
++ -&gt;|.. ## ...|&lt;-
++ |.. ## ...|
++ |.. ## ...|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4e3a '为'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ...|
++ | ## ## ...|
++ | ## ## ...|
++ | ## ## ...|
++ | ## ...|
++ | #############...|
++ | ## ##...|
++ | ## ##...|
++ | #### ##...|
++ | ## ## ##...|
++ | ## ## ##...|
++ | ## ##...|
++ | ## ##...|
++ -&gt;| ## ##...|&lt;-
++ | ## #### ...|
++ |## ## ...|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4e3b '主'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | .|
++ | ############## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ############ .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ -&gt;| ## .|&lt;-
++ |################.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4e45 '久'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ####### .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## .|
++ | #### .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ### ## .|
++ |### ###.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4e4b '之'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 15
++ Advance: 17
++ Offset: 1 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. .|
++ |.############# .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ### .|
++ -&gt;|. ## ## .|&lt;-
++ |.## ##########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4e5f '也'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ## ## .|
++ | ## ## ### .|
++ | ## ###### .|
++ | ###### ## .|
++ | #### ## ## .|
++ |##### ## ## .|
++ | ## ## ## .|
++ | ## ###### .|
++ | ## ## ## .|
++ | ## ## ##.|
++ | ## ##.|
++ -&gt;| ## ##.|&lt;-
++ | ############.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4e86 '了'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 15
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.#############...|
++ |. ## ...|
++ |. ## ...|
++ |. ## ...|
++ |. ### ...|
++ |. ## ...|
++ |. ## ...|
++ |. ## ...|
++ |. ## ...|
++ |. ## ...|
++ |. ## ...|
++ |. ## ...|
++ -&gt;|. ## ...|&lt;-
++ |. #### ...|
++ |. ## ...|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4e8c '二'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 10
++ Advance: 17
++ Offset: 0 x 1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ############ .|
++ | .|
++ | .|
++ | .|
++ | .|
++ | .|
++ | .|
++ | .|
++ | .|
++ |################.|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4e8e '于'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ############ .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ |################.|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ -&gt;| ## .|&lt;-
++ | #### .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4e9b '些'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## ## ## .|
++ | ## ###### ## .|
++ | ## ## #### .|
++ | ## ## ## ##.|
++ | ## ## ## ##.|
++ | ######### ##.|
++ |##### ######.|
++ | ## .|
++ | .|
++ | ########## .|
++ | .|
++ -&gt;| .|&lt;-
++ | ############## .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4eab '享'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ############## .|
++ | .|
++ | ########## .|
++ | ## ## .|
++ | ########## .|
++ | .|
++ | ######### .|
++ | ## .|
++ | ### .|
++ |################.|
++ | ## .|
++ -&gt;| ## .|&lt;-
++ | #### .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4eca '今'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | #### .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ |### ## ###.|
++ | .|
++ | ########## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ -&gt;| ## .|&lt;-
++ | ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4ecb '介'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | #### .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ |### ## ## ###.|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4ecd '仍'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ..|
++ | ## ..|
++ | ########## ..|
++ | ## ## ## ..|
++ | ## ## ## ..|
++ | ### ## ## ..|
++ | ### #### ..|
++ | #### #######..|
++ |## ## ## ##..|
++ | ## ## ##..|
++ | ## ## ##..|
++ | ## ## ##..|
++ | ## ## ##..|
++ -&gt;| ## ## ##..|&lt;-
++ | ## ## #### ..|
++ | #### ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4ece '从'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## #### .|
++ | #### #### .|
++ | ## ## #### .|
++ | ## #### ## .|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ## ## .|
++ |## ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4ed5 '仕'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ##############.|
++ | ### ## .|
++ | #### ## .|
++ |## ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ############ .|&lt;-
++ | ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4ed6 '他'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | #### ## .|
++ | ## ## ##### .|
++ | ## ## ##### .|
++ | ### ##### ## .|
++ | ### ##### ## .|
++ | ####### ## ## .|
++ |## ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ##### .|
++ | ## ## ## ##.|
++ | ## ## ##.|
++ -&gt;| ## ## ##.|&lt;-
++ | ## #########.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4ed8 '付'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | #############.|
++ | ### ## .|
++ | ### ## .|
++ | #### ## .|
++ |## ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## #### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4ee3 '代'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## .|
++ | ## ########.|
++ | ######### .|
++ | ### ## .|
++ | #### ## .|
++ |## ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## ##.|
++ | ## ## ##.|
++ -&gt;| ## ####.|&lt;-
++ | ## ###.|
++ | ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4ee4 '令'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | #### .|
++ | ## ## .|
++ | #### ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ |### ###.|
++ | ########## .|
++ | ## .|
++ | ## .|
++ | ## ## .|
++ | #### .|
++ -&gt;| ## .|&lt;-
++ | ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4ee5 '以'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 16
++ Advance: 17
++ Offset: 2 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## .|
++ |.. ## ## .|
++ |..## ## ## .|
++ |..## ## ## .|
++ |..## ## ## .|
++ |..## ## .|
++ |..## ## .|
++ |..## ## .|
++ |..## ## .|
++ |..## ## .|
++ |..## ## ## .|
++ |..#### #### .|
++ |..### ## ## .|
++ -&gt;|..## ## ## .|&lt;-
++ |.. ## ##.|
++ |.. ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4ef6 '件'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ######## .|
++ | ### ## ## .|
++ | ### ## ## .|
++ | ###### ## .|
++ |## ## ## .|
++ | #############.|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4efb '任'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ##### .|
++ | ####### .|
++ | ## ## .|
++ | ## ## .|
++ | ### ## .|
++ | ### ## .|
++ | ###############.|
++ |## ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ############ .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4efd '份'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ### ## ## .|
++ | ### ## ## .|
++ | ###############.|
++ |## ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ## #### .|
++ | #### ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4f11 '休'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | #############.|
++ | ### ## .|
++ | ### #### .|
++ | #### #### .|
++ |## ## ###### .|
++ | ## ###### .|
++ | ## ## ## ## .|
++ | #### ## ## .|
++ | ### ## ##.|
++ -&gt;| ## ## .|&lt;-
++ | ## ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4f3a '伺'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ..|
++ | ###########..|
++ | ## ##..|
++ | ## ##..|
++ | ############..|
++ | ### ##..|
++ | ### ##..|
++ | #### ###### ##..|
++ |## ## ## ## ##..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ | ## ###### ##..|
++ | ## ##..|
++ -&gt;| ## ##..|&lt;-
++ | ## ####..|
++ | ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4f3c '似'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ### ## ## .|
++ | ### ## ## .|
++ |#### ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## #### #### .|
++ | ## ### ## ## .|
++ -&gt;| ## ## ## ## .|&lt;-
++ | ## ## ##.|
++ | ## ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4f46 '但'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ########### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ### ## ## .|
++ | ### ######### .|
++ | #### ## ## .|
++ |## ## ## ## .|
++ | ## ## ## .|
++ | ## ######### .|
++ | ## ## ## .|
++ | ## .|
++ -&gt;| ## .|&lt;-
++ | #############.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4f4d '位'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## .|
++ | ############ .|
++ | ### .|
++ | ### ## .|
++ | #### ## ## .|
++ |## ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | #############.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4f4e '低'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ##### .|
++ | ######## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ### ## ## .|
++ | ### ## ## .|
++ | #### ##########.|
++ |## ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## ##.|
++ | ## ## ####.|
++ -&gt;| ## #### ####.|&lt;-
++ | ## ### ## ###.|
++ | ## ## ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4f53 '体'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ############ .|
++ | ### ## .|
++ | ### #### .|
++ | #### #### .|
++ |## ## ###### .|
++ | ## ###### .|
++ | ## ## ## ## .|
++ | ############ .|
++ | ### ## ##.|
++ -&gt;| ## ## .|&lt;-
++ | ## ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4f55 '何'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | #############.|
++ | ## ## .|
++ | ## ## .|
++ | ### ##### ## .|
++ | #### ## ## ## .|
++ |## ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ##### ## .|
++ | ## ## ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## #### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4f5c '作'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## #########.|
++ | ## #### .|
++ | ### #### .|
++ | ##### ## .|
++ | #### ###### .|
++ |## ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ####### .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4f60 '你'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## #########.|
++ | ## ## ##.|
++ | ### ## ## .|
++ | ##### ## .|
++ | #### ## .|
++ |## ## ## #### .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ##.|
++ | #### ## ##.|
++ -&gt;| ## ## .|&lt;-
++ | ## #### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4f75 '併'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## .|
++ | ## ##########.|
++ | ### ## ## .|
++ | ### ## ## .|
++ | #### ## ## .|
++ |## ## ## ## .|
++ | #############.|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ## ## .|
++ | #### ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4f7f '使'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | #############.|
++ | ## ## .|
++ | ## ## .|
++ | ### ########## .|
++ | ### ## ## ## .|
++ |#### ## ## ## .|
++ | ## ########## .|
++ | ## ## .|
++ | ## ## ## .|
++ | ## #### .|
++ | ## ## .|
++ -&gt;| ## #### .|&lt;-
++ | ## ## ### .|
++ | ##### ####.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4f86 '來'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ############## .|
++ | ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | #### ## #### .|
++ | ## ###### ## .|
++ | #### .|
++ | ###### .|
++ | ## ## ## .|
++ | ### ## ### .|
++ -&gt;|### ## ###.|&lt;-
++ | ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4f8b '例'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ##..|
++ | ## ##..|
++ | ######## ##..|
++ | ## ## ####..|
++ | ## ## ####..|
++ | ### #########..|
++ | ### ## ######..|
++ |#### ## ######..|
++ | ## ### ######..|
++ | ## ##########..|
++ | #### ## ####..|
++ | ## ## ####..|
++ | ## ## ##..|
++ -&gt;| ## ## ##..|&lt;-
++ | ## ## ####..|
++ | #### ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4f9b '供'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ######### .|
++ | ### ## ## .|
++ | ### ## ## .|
++ | #### ## ## .|
++ |## ## ## ## .|
++ | #############.|
++ | ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | #### ## .|
++ | ### ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4f9d '依'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | #############.|
++ | ## ## .|
++ | ### ## .|
++ | ### #### .|
++ | #### #### ## .|
++ |## ## ##### ## .|
++ | ###### ### .|
++ | ### ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ## #### ## .|&lt;-
++ | ## ### ##.|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4fbf '便'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | #############.|
++ | ## ## .|
++ | ## ########## .|
++ | ## ## ## ## .|
++ | ### ## ## ## .|
++ | ### ########## .|
++ |#### ## ## ## .|
++ | ## ## ## ## .|
++ | ## ########## .|
++ | ## ## ## .|
++ | ## #### .|
++ | ## ## .|
++ -&gt;| ## #### .|&lt;-
++ | ## ## ### .|
++ | ##### ####.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4fdd '保'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ########## .|
++ | #### ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ### ######## .|
++ | ### ## .|
++ | #### ## .|
++ |## ############ .|
++ | ## #### .|
++ | ## ###### .|
++ | ## ## ## ## .|
++ | #### ## ## .|
++ -&gt;| ### ## ##.|&lt;-
++ | ## ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x4fee '修'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ####### .|
++ | ## ## ## .|
++ | ######## ## .|
++ | ###### ### .|
++ |###### ### ### .|
++ | ###### ## ###.|
++ | #### ### .|
++ | ####### ## .|
++ | #### ## .|
++ | #### ### ## .|
++ | ####### ## .|
++ -&gt;| ## ### .|&lt;-
++ | ## ### .|
++ | ## ### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x500b '個'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ..|
++ | ############..|
++ | #### ## ##..|
++ | ## ## ## ##..|
++ | ## ##########..|
++ | ### ## ## ##..|
++ | ### ## ## ##..|
++ |#### ##########..|
++ | ## #### ####..|
++ | ## #### ####..|
++ | ## #### ####..|
++ | ## ##########..|
++ | ## #### ####..|
++ -&gt;| ## ## ##..|&lt;-
++ | ## ##########..|
++ | ## ## ##..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x503c '值'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ########### .|
++ | ## ## .|
++ | ## ## .|
++ | ### ######## .|
++ | ### ## ## .|
++ | #### ######## .|
++ |## ## ## ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | #############.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x504f '偏'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ..|
++ | ## ## ..|
++ | ############..|
++ | ## ## ##..|
++ | ## ## ##..|
++ | ### ##########..|
++ | ### ## ..|
++ |#### ## ..|
++ | ## ##########..|
++ | ## ####### ##..|
++ | ########## ##..|
++ | #############..|
++ | ########## ##..|
++ -&gt;| ########## ##..|&lt;-
++ | ### ###### ##..|
++ | ## ## ###..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x505c '停'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ############ .|
++ | ## .|
++ | ## ######## .|
++ | ### ## ## .|
++ | ### ######## .|
++ |#### .|
++ | ##############.|
++ | #### ##.|
++ | ## ######## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## #### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5075 '偵'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## #######.|
++ | ## ## .|
++ | ## ## .|
++ | ## ########## .|
++ | ### ## ## .|
++ | ### ## ## .|
++ |#### ########## .|
++ | ## ## ## .|
++ | ## ########## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ########## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ## ## .|
++ | ## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5099 '備'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ############.|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ##############.|
++ | ### ## .|
++ | #### ######## .|
++ |## ## ### ## ## .|
++ | ############ .|
++ | ## ## ## ## .|
++ | ## ######## .|
++ | ## ## ## ## .|
++ -&gt;| ## ## ## ## .|&lt;-
++ | ## ## ## ## .|
++ | ## ## ### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x50c5 '僅'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ## .|
++ | ## ## ## .|
++ | #############.|
++ | ## ## ## .|
++ | ## ###### .|
++ | ### ## .|
++ | ### ########## .|
++ |#### ## ## ## .|
++ | ## ########## .|
++ | ## ## .|
++ | ##############.|
++ | ## ## .|
++ | ## ########## .|
++ -&gt;| ## ## .|&lt;-
++ | ##############.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x50cf '像'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ###### .|
++ | #### ## .|
++ | ############ .|
++ | ##### ## ## .|
++ | ### ## ## ## .|
++ | ### ######### .|
++ | #### ## .|
++ |## ## #### ## .|
++ | ########### .|
++ | ## ## ### .|
++ | ##### ##### .|
++ | ## ###### .|
++ -&gt;| ## ## ## ## .|&lt;-
++ | ######### ##.|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5132 '儲'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | #### ## .|
++ | ## ## ## .|
++ | ## ## #######.|
++ | ####### ## ##.|
++ | ## #### .|
++ | ###############.|
++ | ### ## .|
++ |######### ## .|
++ | ## ##### .|
++ | ########## ## .|
++ | #### ##### ## .|
++ | #### ## ##### .|
++ | #### ## ## ## .|
++ -&gt;| ####### ## ## .|&lt;-
++ | #### ## ##### .|
++ | ## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5143 '元'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ############ .|
++ | .|
++ | .|
++ | .|
++ |################.|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## ##.|
++ | ## ## ##.|
++ -&gt;| ## ## ##.|&lt;-
++ | ## ######.|
++ |## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5148 '先'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## .|
++ | ## ## .|
++ | ########### .|
++ | ## ## .|
++ | ## ## .|
++ | ## .|
++ |################.|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## ##.|
++ -&gt;| ## ## ##.|&lt;-
++ | ## ######.|
++ |### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5149 '光'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## .|
++ |################.|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## ##.|
++ | ## ## ##.|
++ -&gt;| ## ## ##.|&lt;-
++ | ## ######.|
++ |### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5165 '入'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | #### .|
++ | #### .|
++ | #### .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## ## .|
++ |## ###.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5168 '全'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | #### .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ############ .|
++ |### ## ###.|
++ | ## .|
++ | ## .|
++ | ########## .|
++ | ## .|
++ | ## .|
++ -&gt;| ## .|&lt;-
++ | ############## .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5169 '兩'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |################.|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ############## .|
++ | ## ## ## .|
++ | #### #### ## .|
++ | ## ## ## ## ## .|
++ | ## ## ## ## ## .|
++ | ############## .|
++ | ### ##### #### .|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ## #### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5171 '共'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ############# .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ## .|
++ |.###############.|
++ |. .|
++ |. ## ## .|
++ -&gt;|. ## ## .|&lt;-
++ |. ## ## .|
++ |. ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5173 '关'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | .|
++ | ############ .|
++ | ## .|
++ | ## .|
++ | ## .|
++ |################.|
++ | ## .|
++ | #### .|
++ | #### .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ### ### .|
++ |### ###.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5176 '其'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ############## .|
++ | ## ## .|
++ | ## ## .|
++ | ######## .|
++ | ## ## .|
++ | ## ## .|
++ | ######## .|
++ | ## ## .|
++ | ## ## .|
++ |################.|
++ | .|
++ -&gt;| ## ## .|&lt;-
++ | ## ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5177 '具'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ########## .|
++ | ## ## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ## ## .|
++ |################.|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5185 '内'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## ..|
++ |. ## ..|
++ |. ## ..|
++ |.##############..|
++ |.## ## ##..|
++ |.## ## ##..|
++ |.## ## ##..|
++ |.## #### ##..|
++ |.## ## ## ##..|
++ |.## ## ## ##..|
++ |.## ## ####..|
++ |.#### ####..|
++ |.## ##..|
++ -&gt;|.## ##..|&lt;-
++ |.## ####..|
++ |.## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x518d '再'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |################.|
++ | ## .|
++ | ## .|
++ | ############ .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ############ .|
++ | ## ## ## .|
++ | ## ## ## .|
++ |################.|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## #### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5199 '写'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ###############.|
++ | ## ##.|
++ |## ## ## .|
++ | ## .|
++ | ########### .|
++ | ## .|
++ | ## .|
++ | ############ .|
++ | ## .|
++ | ## .|
++ |########### ## .|
++ | ## .|
++ -&gt;| ## .|&lt;-
++ | #### .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x51c6 '准'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | #### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ##########.|
++ | ## ## .|
++ | ##### ## .|
++ | ############ .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ######### .|
++ |#### ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ## ##########.|&lt;-
++ | ## ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x51cd '凍'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## .|
++ | ## ########## .|
++ | ## ## .|
++ | ######## .|
++ | #### ## ## .|
++ | ########## .|
++ | ## ## ## ## .|
++ | ## ######## .|
++ |#### ## .|
++ | ## #### .|
++ | ## ###### .|
++ | ## ## ## ## .|
++ -&gt;| ##### ## ###.|&lt;-
++ | ## ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x51e6 '処'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ##### .|
++ | ## ## ## .|
++ | ####### ## .|
++ | ## #### ## .|
++ | ## #### ## .|
++ | ## #### ## .|
++ | #### #### ## .|
++ |## #### ## #### .|
++ | #### ## #### .|
++ | ## ## #### .|
++ | ## ## ### .|
++ | #### .|
++ -&gt;| ## ### .|&lt;-
++ | ## ########.|
++ |## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x51fa '出'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## ..|
++ |. ## ..|
++ |. ## ## ## ..|
++ |. ## ## ## ..|
++ |. ## ## ## ..|
++ |. ## ## ## ..|
++ |. ############ ..|
++ |. ## ## ..|
++ |. ## ..|
++ |. ## ..|
++ |.## ## ##..|
++ |.## ## ##..|
++ |.## ## ##..|
++ -&gt;|.## ## ##..|&lt;-
++ |.##############..|
++ |. ##..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5206 '分'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ |## ######### ##.|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## #### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5207 '切'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ..|
++ | ## ..|
++ | ## ########..|
++ | ## ## ##..|
++ | ## ## ##..|
++ | ##### ## ##..|
++ |##### ## ##..|
++ | ## ## ##..|
++ | ## ## ##..|
++ | ## ## ## ##..|
++ | #### ## ##..|
++ | ### ## ##..|
++ | ## ## ##..|
++ -&gt;| ## ##..|&lt;-
++ | ## #### ..|
++ | ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5217 '列'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ##..|
++ | ######### ##..|
++ | ## ##..|
++ | ## ## ##..|
++ | ###### ## ##..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ | #### ## ## ##..|
++ |## #### ## ##..|
++ | ## ## ##..|
++ | ## ## ##..|
++ | ## ##..|
++ -&gt;| ## ##..|&lt;-
++ | ## ####..|
++ | ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5219 '则'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ##..|
++ | ######## ##..|
++ | ## ## ##..|
++ | ## ## ## ##..|
++ | ## ## ## ## ##..|
++ | ## ## ## ## ##..|
++ | ## ## ## ## ##..|
++ | ## ## ## ## ##..|
++ | ## ## ## ## ##..|
++ | ## ## ## ## ##..|
++ | ## ## ## ## ##..|
++ | #### ## ##..|
++ | ## ## ##..|
++ -&gt;| ## ## ##..|&lt;-
++ | ## ## ####..|
++ |## ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x521d '初'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ..|
++ | ## ..|
++ | ########..|
++ |####### ## ##..|
++ | ## ## ##..|
++ | ## ## ##..|
++ | ## ## ##..|
++ | ##### ## ##..|
++ | ##### ## ##..|
++ |## #### ## ##..|
++ | #### ## ##..|
++ | ## ## ##..|
++ | ## ## ##..|
++ -&gt;| ## ## ##..|&lt;-
++ | ## ## #### ..|
++ | #### ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5224 '判'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ##..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ | ## #### ## ##..|
++ | ## ## ##..|
++ | ########### ##..|
++ | ## ## ##..|
++ | ## ## ##..|
++ | ## ## ##..|
++ |############ ##..|
++ | ## ## ##..|
++ | ## ## ##..|
++ | ## ##..|
++ -&gt;| ## ##..|&lt;-
++ | ## ####..|
++ | ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5229 '利'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ##..|
++ | ##### ##..|
++ | ###### ##..|
++ | ## ## ##..|
++ | ## ## ##..|
++ | ## ## ##..|
++ |############ ##..|
++ | ### ## ##..|
++ | ##### ## ##..|
++ | ###### ## ##..|
++ | ## ## #### ##..|
++ | ## ## ## ##..|
++ | ## ## ##..|
++ -&gt;|## ## ##..|&lt;-
++ | ## ####..|
++ | ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5230 '到'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ##..|
++ |########## ##..|
++ | ## ##..|
++ | ## ## ##..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ |############ ##..|
++ | ## #### ##..|
++ | ## ## ##..|
++ | ## ## ##..|
++ | ######## ## ##..|
++ | ## ## ##..|
++ | ## ##..|
++ -&gt;| ###### ##..|&lt;-
++ |###### ####..|
++ | ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5236 '制'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ##..|
++ | ## ## ##..|
++ | ## ## ##..|
++ | ########## ##..|
++ | ## ## ## ##..|
++ | ## ## ##..|
++ |############ ##..|
++ | ## ## ##..|
++ | ## ## ##..|
++ | ########## ##..|
++ | ## ## #### ##..|
++ | ## ## #### ##..|
++ | ## ##### ##..|
++ -&gt;| ## #### ##..|&lt;-
++ | ## ####..|
++ | ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5247 '則'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ##..|
++ | ######## ##..|
++ | ## ## ##..|
++ | ## ## ## ##..|
++ | ######## ## ##..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ | ######## ## ##..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ | ######## ## ##..|
++ | ## ##..|
++ | ## ## ##..|
++ -&gt;| ## ## ##..|&lt;-
++ | ## ## ####..|
++ |## ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x524d '前'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ |################.|
++ | .|
++ | ###### ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ###### ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ###### ## ## .|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ###### #### .|
++ | ## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5272 '割'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ##..|
++ | ## ##..|
++ |########## ##..|
++ |## #### ##..|
++ | ## ## ## ##..|
++ | ######## ## ##..|
++ | ## ## ##..|
++ | ######## ## ##..|
++ | ## ## ##..|
++ |############ ##..|
++ | ## ## ##..|
++ | ######## ## ##..|
++ | ## ## ##..|
++ -&gt;| ## ## ##..|&lt;-
++ | ######## ####..|
++ | ## ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x529b '力'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## ...|
++ |. ## ...|
++ |. ## ...|
++ |. ## ...|
++ |.#############...|
++ |. ## ##...|
++ |. ## ##...|
++ |. ## ##...|
++ |. ## ##...|
++ |. ## ##...|
++ |. ## ##...|
++ |. ## ##...|
++ |. ## ##...|
++ -&gt;|. ## ## ##...|&lt;-
++ |. ## #### ...|
++ |.## ## ...|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x529f '功'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ..|
++ | ## ..|
++ | ## ..|
++ |######## ## ..|
++ | ## ########..|
++ | ## ## ##..|
++ | ## ## ##..|
++ | ## ## ##..|
++ | ## ## ##..|
++ | ## ## ##..|
++ | ## ## ##..|
++ | ####### ##..|
++ |##### ## ##..|
++ -&gt;| ## ## ##..|&lt;-
++ | ## #### ..|
++ | ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x52a0 '加'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ..|
++ | ## ..|
++ | ## ..|
++ | ## ######..|
++ |######## ## ##..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ -&gt;| ## ## ######..|&lt;-
++ | ## #### ## ##..|
++ |## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x52a1 '务'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ######### .|
++ | ### ## .|
++ | ## ## ### .|
++ | ### .|
++ | ### ### .|
++ | ### ## ### .|
++ |### ## ####.|
++ | ########## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## #### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x52a8 '动'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ..|
++ | ## ..|
++ | ###### ## ..|
++ | ## ..|
++ | ########..|
++ | ## ##..|
++ |######## ## ##..|
++ | ## ## ##..|
++ | ## ## ##..|
++ | ## ## ##..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ |######### ##..|
++ -&gt;| ## #### ##..|&lt;-
++ | ## #### ..|
++ | ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x52a9 '助'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ..|
++ | ###### ## ..|
++ | ## ## ## ..|
++ | ## ## ## ..|
++ | ## ## #######..|
++ | ###### ## ##..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ | ###### ## ##..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ | ## #### ## ##..|
++ -&gt;|##### ## ##..|&lt;-
++ | ## #### ..|
++ | ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x52b9 '効'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ..|
++ | ## ## ..|
++ | ## ..|
++ |######### ## ..|
++ | #######..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ |## ## ## ##..|
++ | ## ## ## ##..|
++ | #### ## ##..|
++ | ## ## ##..|
++ | #### ## ##..|
++ | ## ## ## ##..|
++ -&gt;| ## #### ##..|&lt;-
++ |## ## #### ..|
++ | ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x52d5 '動'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ##### ## ..|
++ | ##### ## ..|
++ | ## ## ..|
++ |############ ..|
++ | ## ######..|
++ | ######## ## ##..|
++ | ## ## ## ## ##..|
++ | ######## ## ##..|
++ | ## ## ## ## ##..|
++ | ######## ## ##..|
++ | ## ## ##..|
++ | ######## ## ##..|
++ | ## ## ##..|
++ -&gt;| ####### ##..|&lt;-
++ |###### ## ####..|
++ | ## ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5305 '包'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ..|
++ | ## ..|
++ | ########## ..|
++ | ## ## ..|
++ | ## ## ..|
++ | ######### ## ..|
++ |## ## ## ## ..|
++ | ## ## ## ..|
++ | ## ## ## ..|
++ | ####### ## ..|
++ | ## #### ..|
++ | ## ## ..|
++ | ## ##..|
++ -&gt;| ## ##..|&lt;-
++ | ###########..|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5316 '化'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ### #### .|
++ | ### ### .|
++ | #### ## .|
++ |## ## ### .|
++ | ## #### .|
++ | #### ## .|
++ | ## ## ##.|
++ | ## ## ##.|
++ -&gt;| ## ## ##.|&lt;-
++ | ## #######.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x533a '区'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 14
++ Advance: 17
++ Offset: 1 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.############## .|
++ |.## .|
++ |.## ## .|
++ |.## ## ## .|
++ |.## ## ## .|
++ |.## #### .|
++ |.## ## .|
++ |.## #### .|
++ |.## ## ## .|
++ |.## ## ## .|
++ |.## ## ## .|
++ |.## .|
++ -&gt;|.## .|&lt;-
++ |.###############.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x533f '匿'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 14
++ Advance: 17
++ Offset: 1 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.############## .|
++ |.## .|
++ |.## ## ## .|
++ |.###############.|
++ |.## ## ## .|
++ |.## ## .|
++ |.###############.|
++ |.## ## .|
++ |.## ########## .|
++ |.###### ## .|
++ |.### ## ## .|
++ |.## ######### .|
++ -&gt;|.## .|&lt;-
++ |.###############.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5340 '區'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 14
++ Advance: 17
++ Offset: 1 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.############## .|
++ |.## .|
++ |.## ######### .|
++ |.## ## ## .|
++ |.## ## ## .|
++ |.## ######### .|
++ |.## .|
++ |.####### ##### .|
++ |.#### ## ## ## .|
++ |.#### ## ## ## .|
++ |.####### ##### .|
++ |.#### ## ## ## .|
++ -&gt;|.## .|&lt;-
++ |.###############.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5354 '協'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ######### .|
++ | ## ## ## .|
++ |###### ## ## .|
++ | ## ## #### .|
++ | ## ## ## .|
++ | ## ## .|
++ | ## ## ## .|
++ | ##############.|
++ | ## ## ## ## ##.|
++ | ## ## ## ## ##.|
++ | ## ## ## ## ##.|
++ -&gt;| #### #### ##.|&lt;-
++ | ##############.|
++ | ### #### ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5355 '单'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ############ .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ############ .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ############ .|
++ | ## .|
++ | ## .|
++ |################.|
++ -&gt;| ## .|&lt;-
++ | ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5361 '卡'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ######## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ |################.|
++ | ## .|
++ | ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## .|&lt;-
++ | ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5370 '印'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 15
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. ### ..|
++ |.##### #######..|
++ |.## ## ##..|
++ |.## ## ##..|
++ |.## ## ##..|
++ |.######### ##..|
++ |.## ## ##..|
++ |.## ## ##..|
++ |.## ## ##..|
++ |.## ## ##..|
++ |.## ########## ..|
++ |.#### ## ## ..|
++ -&gt;|. ## ..|&lt;-
++ |. ## ..|
++ |. ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5373 '即'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 15
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.####### ######..|
++ |.## ## ## ##..|
++ |.## ## ## ##..|
++ |.####### ## ##..|
++ |.## ## ## ##..|
++ |.## ## ## ##..|
++ |.####### ## ##..|
++ |.## ## ##..|
++ |.## ## ## ##..|
++ |.## ## ######..|
++ |.## #### ## ## ..|
++ |.#### ## ## ..|
++ -&gt;|.### ## ..|&lt;-
++ |. ## ..|
++ |. ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x539f '原'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ##############.|
++ | ## ## .|
++ | ## ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ######## .|
++ | ## ## .|
++ | ## ## ## ## .|
++ -&gt;| ## ## ## ## .|&lt;-
++ | #### #### ## .|
++ |## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x53c2 '参'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## .|
++ | ## ## .|
++ | ########## .|
++ | ## .|
++ | ############## .|
++ | ## ## .|
++ | ## ## ## .|
++ | ## ### ## .|
++ |### ### ## ###.|
++ | ### .|
++ | ### ## .|
++ | ### ## .|
++ -&gt;| ### .|&lt;-
++ | #### .|
++ | ##### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x53c3 '參'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ## ## ## ## .|
++ | ############## .|
++ | ## .|
++ | ###### .|
++ | ### ##### .|
++ |#### ### ####.|
++ | ### ## .|
++ | ### ### ## .|
++ | ### ## .|
++ -&gt;| #### ### .|&lt;-
++ | #### .|
++ | ##### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x53cc '双'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 14
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |############### .|
++ | ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | #### ## ## .|
++ | #### ## ## .|
++ | ## #### .|
++ | ## #### .|
++ | #### ## .|
++ | #### ## .|
++ | ## ## #### .|
++ -&gt;| ## ## ## ## .|&lt;-
++ |## ## ## .|
++ | ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x53cd '反'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ###### .|
++ | ####### .|
++ | ## .|
++ | ## .|
++ | ############ .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## #### .|
++ | ## ## .|
++ | ## #### .|
++ -&gt;| ## ## ## .|&lt;-
++ |## ### ### .|
++ | ### ###.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x53d6 '取'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |########## .|
++ | ## ######### .|
++ | ## ## ## ## .|
++ | ###### ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ###### ## ## .|
++ | ## ## #### .|
++ | ## ## #### .|
++ | ## ######### .|
++ |######## ## .|
++ | ## ## ## .|
++ -&gt;| ## #### .|&lt;-
++ | ## ## ## .|
++ | #### ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x53e3 '口'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 12 x 13
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |..############...|
++ |..## ##...|
++ |..## ##...|
++ |..## ##...|
++ |..## ##...|
++ |..## ##...|
++ |..## ##...|
++ |..## ##...|
++ |..## ##...|
++ |..## ##...|
++ |..## ##...|
++ -&gt;|..############...|&lt;-
++ |..## ##...|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x53e4 '古'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ |################.|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ########## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ########## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x53e6 '另'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 15
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. ########## ...|
++ |. ## ## ...|
++ |. ## ## ...|
++ |. ## ## ...|
++ |. ########## ...|
++ |. ## ...|
++ |. ## ...|
++ |.#############...|
++ |. ## ##...|
++ |. ## ##...|
++ |. ## ##...|
++ |. ## ##...|
++ -&gt;|. ## ##...|&lt;-
++ |. ## #### ...|
++ |.## ## ...|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x53ea '只'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 15
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. ########## ..|
++ |. ## ## ..|
++ |. ## ## ..|
++ |. ## ## ..|
++ |. ## ## ..|
++ |. ## ## ..|
++ |. ## ## ..|
++ |. ########## ..|
++ |. ## ## ..|
++ |. ..|
++ |. ## ## ..|
++ |. ## ## ..|
++ -&gt;|. ## ## ..|&lt;-
++ |. ## ##..|
++ |.## ##..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x53ef '可'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 15
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.###############.|
++ |. ## .|
++ |. ## .|
++ |. ###### ## .|
++ |. ## ## ## .|
++ |. ## ## ## .|
++ |. ## ## ## .|
++ |. ## ## ## .|
++ |. ## ## ## .|
++ |. ###### ## .|
++ |. ## ## ## .|
++ |. ## .|
++ -&gt;|. ## .|&lt;-
++ |. #### .|
++ |. ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x53f0 '台'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## ..|
++ |. ## ..|
++ |. ## ..|
++ |. ## ## ..|
++ |. ## ## ..|
++ |. ## ## ..|
++ |.##############..|
++ |. ## ##..|
++ |. ..|
++ |. ########## ..|
++ |. ## ## ..|
++ |. ## ## ..|
++ |. ## ## ..|
++ -&gt;|. ## ## ..|&lt;-
++ |. ########## ..|
++ |. ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x53f3 '右'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ## .|
++ |################.|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ########### .|
++ | #### ## .|
++ | ## ## ## .|
++ |## ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ########## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x53f7 '号'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ########## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ########## .|
++ | .|
++ |################.|
++ | ## .|
++ | ## .|
++ | ########## .|
++ | ## .|
++ | ## .|
++ -&gt;| ## .|&lt;-
++ | #### .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5408 '合'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | #### .|
++ | ## ## .|
++ | ## ## .|
++ | ### ### .|
++ |### ######## ###.|
++ | .|
++ | .|
++ | ########## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ########## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x540c '同'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 15
++ Advance: 17
++ Offset: 2 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |..#############..|
++ |..## ##..|
++ |..## ##..|
++ |..#############..|
++ |..## ##..|
++ |..## ##..|
++ |..## ####### ##..|
++ |..## ## ## ##..|
++ |..## ## ## ##..|
++ |..## ## ## ##..|
++ |..## ####### ##..|
++ |..## ## ## ##..|
++ -&gt;|..## ##..|&lt;-
++ |..## ####..|
++ |..## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x540d '名'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ...|
++ | ## ...|
++ | ######## ...|
++ | ## ## ...|
++ | #### ## ...|
++ | ### ## ## ...|
++ | #### ...|
++ | ## ...|
++ | ### ...|
++ | ###########...|
++ |###### ##...|
++ | ## ##...|
++ | ## ##...|
++ -&gt;| ## ##...|&lt;-
++ | ##########...|
++ | ## ##...|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x540e '后'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ###### .|
++ | ###### .|
++ | ## .|
++ | ## .|
++ | #############.|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ########### .|
++ | #### ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ |## ######### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5411 '向'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## ..|
++ |. ## ..|
++ |. ## ..|
++ |.##############..|
++ |.## ##..|
++ |.## ##..|
++ |.## ###### ##..|
++ |.## ## ## ##..|
++ |.## ## ## ##..|
++ |.## ## ## ##..|
++ |.## ## ## ##..|
++ |.## ###### ##..|
++ |.## ## ## ##..|
++ -&gt;|.## ##..|&lt;-
++ |.## ####..|
++ |.## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5426 '否'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ############## .|
++ | ## .|
++ | ## .|
++ | ### .|
++ | ####### .|
++ | ## ## ### .|
++ | ### ## ## .|
++ |### ## ##.|
++ | .|
++ | ########## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ########## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x542b '含'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | #### .|
++ | ## ## .|
++ | #### ## .|
++ | ### ## ### .|
++ |### ## ###.|
++ | ######## .|
++ | ## .|
++ | ## .|
++ | ########## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ########## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x542f '启'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ..|
++ | ## ..|
++ | ############..|
++ | ## ##..|
++ | ## ##..|
++ | ## ##..|
++ | ############..|
++ | ## ..|
++ | ## ..|
++ | ## ..|
++ | ############..|
++ | ## ## ##..|
++ | ## ## ##..|
++ -&gt;| ## ## ##..|&lt;-
++ |## ##########..|
++ | ## ##..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x544a '告'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## .|
++ | ## ## .|
++ | ########### .|
++ | ## ## .|
++ | ## ## .|
++ | ## .|
++ |################.|
++ | .|
++ | .|
++ | ########## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ########## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5473 '味'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## .|
++ |. ## .|
++ |.##### ## .|
++ |.## ########### .|
++ |.## ## ## .|
++ |.## ## ## .|
++ |.## ## ## .|
++ |.## ############.|
++ |.## ## #### .|
++ |.## ## ###### .|
++ |.##### ###### .|
++ |.## #### ## ## .|
++ |. ## ## ## .|
++ -&gt;|. ## ## ##.|&lt;-
++ |. ## .|
++ |. ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x548c '和'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ..|
++ | #### ..|
++ | ##### ..|
++ | ## ######..|
++ | ## ## ##..|
++ |########### ##..|
++ | ## ## ##..|
++ | ### ## ##..|
++ | #### ## ##..|
++ | ###### ## ##..|
++ | ###### ## ##..|
++ | ## ## ## ##..|
++ |## ## ######..|
++ -&gt;| ## ## ##..|&lt;-
++ | ## ..|
++ | ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x54c1 '品'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 15
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. ########## ..|
++ |. ## ## ..|
++ |. ## ## ..|
++ |. ## ## ..|
++ |. ## ## ..|
++ |. ########## ..|
++ |. ..|
++ |. ..|
++ |.###### ######..|
++ |.## ## ## ##..|
++ |.## ## ## ##..|
++ |.## ## ## ##..|
++ -&gt;|.## ## ## ##..|&lt;-
++ |.###### ######..|
++ |.## ## ## ##..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x554f '問'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 15
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.###### ######...|
++ |.## ## ## ##...|
++ |.###### ######...|
++ |.## ## ## ##...|
++ |.###### ######...|
++ |.## ##...|
++ |.## ##...|
++ |.## ####### ##...|
++ |.## ## ## ##...|
++ |.## ## ## ##...|
++ |.## ####### ##...|
++ |.## ## ## ##...|
++ -&gt;|.## ##...|&lt;-
++ |.## ####...|
++ |.## ## ...|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x555f '啟'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ####### ## .|
++ | ## ## ######.|
++ | ## #### ## .|
++ | ## #### ## .|
++ | ######### ## .|
++ | ## #### ## .|
++ | ## #### .|
++ | ####### #### .|
++ | ### ## ## .|
++ | #### ## ## .|
++ | #### ## #### .|
++ -&gt;|## ###### #### .|&lt;-
++ | ## #### ## .|
++ | ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x55ae '單'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ############## .|
++ | ## #### ## .|
++ | ## #### ## .|
++ | ############## .|
++ | .|
++ | ############ .|
++ | ## ## ## .|
++ | ############ .|
++ | ## ## ## .|
++ | ############ .|
++ | ## .|
++ |################.|
++ -&gt;| ## .|&lt;-
++ | ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x55ce '嗎'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 15
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. #########.|
++ |.##### ## ## .|
++ |.## ## ######## .|
++ |.## ## ## ## .|
++ |.## ## ######## .|
++ |.## ## ## ## .|
++ |.## ## ## ## .|
++ |.## ## #########.|
++ |.## ## ##.|
++ |.###############.|
++ |.## ############.|
++ |. ##########.|
++ -&gt;|. ## ##.|&lt;-
++ |. #### .|
++ |. ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5617 '嘗'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ###############.|
++ | #### ## ##.|
++ |## ############ .|
++ | .|
++ | ## ##### .|
++ | ####### ## .|
++ | ## ## .|
++ | ############ .|
++ | .|
++ | ########### .|
++ | ## ## .|
++ -&gt;| ########### .|&lt;-
++ | ## ## .|
++ | ########### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5668 '器'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ###### ###### .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ###### ###### .|
++ | ## ## .|
++ | ## ## .|
++ |################.|
++ | #### .|
++ | ### ### .|
++ | ### ### .|
++ |### ###.|
++ | ###### ###### .|
++ -&gt;| ## ## ## ## .|&lt;-
++ | ## ## ## ## .|
++ | ###### ###### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x56de '回'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 12 x 14
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |..############...|
++ |..## ##...|
++ |..## ##...|
++ |..## ###### ##...|
++ |..## ## ## ##...|
++ |..## ## ## ##...|
++ |..## ## ## ##...|
++ |..## ## ## ##...|
++ |..## ## ## ##...|
++ |..## ###### ##...|
++ |..## ##...|
++ |..## ##...|
++ -&gt;|..############...|&lt;-
++ |..## ##...|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x56e0 '因'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 15
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.##############..|
++ |.## ##..|
++ |.## ## ##..|
++ |.## ## ##..|
++ |.## ## ##..|
++ |.##############..|
++ |.## ## ##..|
++ |.## #### ##..|
++ |.## ## ## ##..|
++ |.## ## ## ##..|
++ |.## ## ####..|
++ |.#### ####..|
++ -&gt;|.## ##..|&lt;-
++ |.##############..|
++ |.## ##..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x56fa '固'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 15
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.##############..|
++ |.## ## ##..|
++ |.## ## ##..|
++ |.##############..|
++ |.## ## ##..|
++ |.## ## ##..|
++ |.## ######## ##..|
++ |.## ## ## ##..|
++ |.## ## ## ##..|
++ |.## ## ## ##..|
++ |.## ######## ##..|
++ |.## ## ## ##..|
++ -&gt;|.## ##..|&lt;-
++ |.##############..|
++ |.## ##..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x56fe '图'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 15
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.##############..|
++ |.## ## ##..|
++ |.## ## ##..|
++ |.## ####### ##..|
++ |.## ### ## ##..|
++ |.#### #### ##..|
++ |.## ## ##..|
++ |.## ###### ##..|
++ |.##### #####..|
++ |.## ### ##..|
++ |.## ## ##..|
++ |.## ### ##..|
++ -&gt;|.## ### ##..|&lt;-
++ |.##############..|
++ |.## ##..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5716 '圖'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.##############..|
++ |.## ##..|
++ |.## ######## ##..|
++ |.## ## ## ##..|
++ |.## ######## ##..|
++ |.## ## ##..|
++ |.##############..|
++ |.## ## ##..|
++ |.##############..|
++ |.#### ####..|
++ |.##############..|
++ |.###### ######..|
++ |.##############..|
++ -&gt;|.## ##..|&lt;-
++ |.##############..|
++ |.## ##..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5728 '在'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ## .|
++ |################.|
++ | ## .|
++ | ## ## .|
++ | ## ## .|
++ | ### ## .|
++ | ############## .|
++ |## ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | #############.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5730 '地'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## ## .|
++ | ## ## ##### .|
++ |######### ##### .|
++ | ## ##### ## .|
++ | ## ###### ## .|
++ | ## ## ## ## .|
++ | ## ## ##### .|
++ | ## ## #### .|
++ | ###### ## ##.|
++ |#### ## ## ##.|
++ -&gt;| ## ## ##.|&lt;-
++ | ########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5740 '址'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ |######### ## .|
++ | ## ## ##### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ###### ## .|
++ |#### ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ###########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x578b '型'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ######### ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ |############ ## .|
++ | ## ## ## ## .|
++ | ## ## ## .|
++ | ## ## #### .|
++ | ## ## ## .|
++ |## ## .|
++ | ############ .|
++ | ## .|
++ -&gt;| ## .|&lt;-
++ |################.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x57df '域'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## #### .|
++ | ## ## ##.|
++ | ## ## .|
++ | ## ###########.|
++ | ## ## .|
++ |###### ## .|
++ | ## ####### ##.|
++ | ## ## #### ##.|
++ | ## ## #### ##.|
++ | ## ## ###### .|
++ | ## ######### .|
++ | #### ## .|
++ |#### ########.|
++ -&gt;| ## #### #####.|&lt;-
++ | ## ## ###.|
++ | ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x57f7 '執'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ###### ## .|
++ | ## ####### .|
++ | ## ## ## .|
++ |######## ## ## .|
++ | ## ## ## ## .|
++ | #### #### ## .|
++ | ###### ### ## .|
++ | ## ## ## .|
++ | ## ###### .|
++ |############## .|
++ | ## ## ####.|
++ -&gt;| ## ## ####.|&lt;-
++ | ## ## ###.|
++ | ## ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x57fa '基'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ############## .|
++ | ## ## .|
++ | ######## .|
++ | ## ## .|
++ | ######## .|
++ | ## ## .|
++ |################.|
++ | ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ |### ######## ###.|
++ -&gt;| ## .|&lt;-
++ | ## .|
++ | ############ .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5831 '報'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ####### .|
++ | ###### ## ## .|
++ | ## ## ## .|
++ | ## ## #### .|
++ |########## ## .|
++ | ## ## ## .|
++ | #### ####### .|
++ | ###### #### ## .|
++ | ## #### ## .|
++ | ## ###### .|
++ |############## .|
++ | ## ## ## .|
++ -&gt;| ## ###### .|&lt;-
++ | ## ### ## .|
++ | ## ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5834 '場'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ |############## .|
++ | ## .|
++ | ##############.|
++ | ## ## .|
++ | ## ######### .|
++ | ## ## ## #### .|
++ | #### ## ## ## .|
++ |#### ## ## ## .|
++ -&gt;| ## ## ## ## .|&lt;-
++ | ## #### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x586b '填'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ########## .|
++ | ## ## .|
++ | ## ######## .|
++ |######## ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ | ## ######## .|
++ | ###### ## .|
++ |################.|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x589e '增'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ## ..|
++ | ## ## ## ..|
++ | ## ..|
++ | ## ##########..|
++ | ## ## ## ##..|
++ |###############..|
++ | ## ## #### ##..|
++ | ## ## ## ##..|
++ | ## ##########..|
++ | ## ..|
++ | ## ######## ..|
++ | ###### ## ..|
++ |#### ######## ..|
++ -&gt;| ## ## ## ..|&lt;-
++ | ######## ..|
++ | ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x58ca '壊'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ###########.|
++ | ## ## .|
++ | ## ##########.|
++ |######## #### ##.|
++ | ## ## #### ##.|
++ | ## ##########.|
++ | ## ## .|
++ | ## ## .|
++ | ## ###########.|
++ | #### #### ## .|
++ |#### ####### .|
++ -&gt;| ## #### ## .|&lt;-
++ | ## ## ## .|
++ | ### ###.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x58d3 '壓'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ##############.|
++ | #### ## ### .|
++ | ######## ####.|
++ | #### ## ## .|
++ | ##############.|
++ | ## ## .|
++ | ######## ## .|
++ | #### ## ## .|
++ | ######## #### .|
++ | #### ## #### .|
++ | #### ##### ##.|
++ | ## ## .|
++ -&gt;| ## ########## .|&lt;-
++ |## ## .|
++ | #############.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x58de '壞'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ##############.|
++ | ## .|
++ | ## ########## .|
++ |####### #### ## .|
++ | ## ########## .|
++ | ## ## ## ## .|
++ | ## ###### .|
++ | ## ## ## .|
++ | ## ## ## ## .|
++ | #### ###### .|
++ |#### ## ## .|
++ -&gt;| ## ### ## .|&lt;-
++ | ####### ###.|
++ | ### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x58f2 '売'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ############## .|
++ | ## .|
++ | ## .|
++ | ########## .|
++ | .|
++ | ###############.|
++ | ## ##.|
++ |## ## ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ## ## .|
++ | ## ##### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5904 '处'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ##### ## .|
++ | ## ## ### .|
++ | ## ## #### .|
++ | ## ## ## ## .|
++ | #### ## ## ## .|
++ |## #### ## ## .|
++ | #### ## .|
++ | ## ## .|
++ | ## ## .|
++ | #### ## .|
++ -&gt;| ## ### .|&lt;-
++ | ## ########.|
++ |## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5907 '备'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ######### .|
++ | ### ## .|
++ | ### ## ## .|
++ | #### .|
++ | #### #### .|
++ |#### ####.|
++ | ########## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ########## .|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ########## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5909 '変'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ |################.|
++ | ## ## .|
++ | #### #### .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## .|
++ | ######### .|
++ | ## ## .|
++ | #### ## .|
++ | ## ## ## .|
++ | #### .|
++ -&gt;| ### ### .|&lt;-
++ | ### ### .|
++ |### ###.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x590d '复'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ############ .|
++ | ## .|
++ | ############ .|
++ |## ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ########## .|
++ | ## .|
++ | ######### .|
++ | ### ## .|
++ | ### ## ## .|
++ -&gt;| #### .|&lt;-
++ | #### #### .|
++ |#### ####.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x591a '多'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## ...|
++ |. ## ...|
++ |. ######## ...|
++ |. ## ## ...|
++ |. #### ## ...|
++ |. ## ## ...|
++ |. ##### ...|
++ |. ### ## ...|
++ |.#### #######...|
++ |. ## ##...|
++ |. ### ## ...|
++ |. ### ## ## ...|
++ |. #### ...|
++ -&gt;|. ### ...|&lt;-
++ |. #### ...|
++ |.#### ...|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5927 '大'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ |################.|
++ | ## .|
++ | ## .|
++ | #### .|
++ | #### .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## ## .|
++ |### ###.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5931 '失'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ########### .|
++ | ## ## .|
++ | ## ## .|
++ | ## .|
++ |################.|
++ | ## .|
++ | #### .|
++ | #### .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## ## .|
++ | ### ### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5934 '头'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## .|
++ |################.|
++ | ## .|
++ | #### .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ### ## .|
++ |### ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x597d '好'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ####### .|
++ | ## ## .|
++ | ## ## .|
++ |####### ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ###########.|
++ | ## ## ## .|
++ | ## ## ## .|
++ | #### ## .|
++ | ## ## .|
++ | #### ## .|
++ -&gt;| ## ## ## .|&lt;-
++ |## ## #### .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5982 '如'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ..|
++ | ## ..|
++ | ## ..|
++ | ## ######..|
++ |######## ## ##..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ | #### ## ##..|
++ | ## ## ##..|
++ | #### ## ##..|
++ -&gt;| ## ## ######..|&lt;-
++ | ## ## ## ##..|
++ |## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x59a5 '妥'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ####### .|
++ | ######## .|
++ | ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## .|
++ | ## .|
++ | ## .|
++ |################.|
++ | ## ## .|
++ | ## ## .|
++ | ##### ## .|
++ | ### .|
++ -&gt;| ### ### .|&lt;-
++ | ### ### .|
++ | ### ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x59cb '始'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ |####### ## ## .|
++ | ## ## ## ## .|
++ | ## ###########.|
++ | ## ## ## ##.|
++ | ## ## .|
++ | ## ## ####### .|
++ | #### ## ## .|
++ | ## ## ## .|
++ | #### ## ## .|
++ -&gt;| ## ## ## ## .|&lt;-
++ |## ####### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5a92 '媒'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ########## .|
++ |###### ## ## .|
++ | #### ###### .|
++ | #### ## ## .|
++ | #### ###### .|
++ | ## ## ## .|
++ | ## ############.|
++ | #### ## .|
++ | ## #### .|
++ | ## ###### .|
++ -&gt;| ###### ## ####.|&lt;-
++ | ## ## ## ## .|
++ |## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5b50 '子'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ############# .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ### .|
++ | ## .|
++ |################.|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ -&gt;| ## .|&lt;-
++ | #### .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5b57 '字'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ###############.|
++ | ## ##.|
++ |## ## .|
++ | ######### .|
++ | ## .|
++ | ## .|
++ | ## .|
++ |################.|
++ | ## .|
++ | ## .|
++ | ## .|
++ -&gt;| ## .|&lt;-
++ | #### .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5b58 '存'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ |################.|
++ | ## .|
++ | ## .|
++ | ## ######## .|
++ | ## ## .|
++ | ### ## .|
++ | #### ## .|
++ |## #############.|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## #### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5b83 '它'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ###############.|
++ | ## ##.|
++ |## ## .|
++ | ## .|
++ | ## ## .|
++ | ## ### .|
++ | ## #### .|
++ | #### .|
++ | ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ########## .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5b89 '安'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ############# .|
++ | ## ## .|
++ | ## ## ## .|
++ | ## .|
++ | ## .|
++ |################.|
++ | ## ## .|
++ | ## ## .|
++ | ### ## .|
++ | ### ## .|
++ | ### .|
++ -&gt;| ## ### .|&lt;-
++ | ### ## .|
++ | #### ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5b8c '完'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ###############.|
++ | ## ##.|
++ |## ## .|
++ | ########## .|
++ | .|
++ | .|
++ | ############## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ## ## .|
++ | ### ##### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5b9a '定'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ###############.|
++ | ## ##.|
++ |## ## .|
++ | .|
++ | ############ .|
++ | ## .|
++ | ## .|
++ | ## ## .|
++ | ## ####### .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| #### ## .|&lt;-
++ | ## ###########.|
++ |## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5b9f '実'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ###############.|
++ | ## ##.|
++ |## ## ## .|
++ | ## .|
++ | ############ .|
++ | ## .|
++ | ########## .|
++ | ## .|
++ | ############## .|
++ | #### .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ### ### .|
++ |### ###.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5bb6 '家'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ###############.|
++ | ## ##.|
++ |## ## .|
++ | ############## .|
++ | ## .|
++ | ##### ## .|
++ | #### ### ## .|
++ | ###### .|
++ | ### ### .|
++ | #### ##### .|
++ | ##### ### .|
++ -&gt;| ### ## ###.|&lt;-
++ |#### #### .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5bc6 '密'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ###############.|
++ | ## ##.|
++ |## ## ## ## .|
++ | ## #### .|
++ | #### ## ## .|
++ | ## ##### #### .|
++ | #### ## .|
++ |#### ######## .|
++ | ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ############ .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5bfc '导'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ########### .|
++ | ## ## .|
++ | ## ## .|
++ | ########### .|
++ | ## ## .|
++ | ## ## .|
++ | ############ .|
++ | ## .|
++ | ## .|
++ |################.|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | #### .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5bfe '対'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## .|
++ |################.|
++ | ## ## .|
++ | ## ## .|
++ | ## ## ## ## .|
++ | #### #### .|
++ | ## #### .|
++ | ## ## .|
++ | #### ## .|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ |## #### .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5c06 '将'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ###### .|
++ | ## ## ## .|
++ | ## #### ## .|
++ | #### #### .|
++ | #### ## .|
++ | ## ## ## .|
++ | ##### ## .|
++ | ### ## .|
++ | ##############.|
++ |### ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## #### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5c07 '將'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## ###### .|
++ | ## ## ### ## .|
++ | ## #### #### .|
++ | ## ## ## ## .|
++ | ##### #### .|
++ | ## ## ## .|
++ | ##### ## .|
++ |####### ## .|
++ | ## ###########.|
++ | ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ |## ## #### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5c08 '專'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ############## .|
++ | ## .|
++ | ############ .|
++ | ## ## ## .|
++ | ############ .|
++ | ## ## ## .|
++ | ############ .|
++ | ## ## .|
++ |################.|
++ | ## ##.|
++ |################.|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## #### .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5c0b '尋'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ########### .|
++ | ## .|
++ | ########## .|
++ | ## .|
++ | ########### .|
++ | .|
++ | ###### ###### .|
++ | ## ## ## .|
++ | ############## .|
++ | ## .|
++ |################.|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## #### .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5c0d '對'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | #### ## .|
++ | #### ## .|
++ | ######## ## .|
++ | ###### ## .|
++ | #### #######.|
++ |######### ## .|
++ | ## .|
++ | ## ## ## ## .|
++ | #### #### .|
++ | ######## #### .|
++ | ## ## .|
++ | ###### ## .|
++ | ## ## .|
++ -&gt;| ##### ## .|&lt;-
++ | ##### #### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5c0f '小'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ##.|
++ | ## ## ##.|
++ |## ## ##.|
++ | ## .|
++ -&gt;| ## .|&lt;-
++ | #### .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5c11 '少'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## ..|
++ |. ## ..|
++ |. ## ..|
++ |. ## ## ## ..|
++ |. ## ## ## ..|
++ |. ## ## ## ..|
++ |. ## ## ##..|
++ |. ## ## ####..|
++ |.## ## ## ..|
++ |. ## ## ..|
++ |. ## ..|
++ |. ## ..|
++ |. ## ..|
++ -&gt;|. ## ..|&lt;-
++ |. ### ..|
++ |.#### ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5c24 '尤'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## .|
++ |################.|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## ##.|
++ | ## ## ##.|
++ -&gt;| ## ## ##.|&lt;-
++ | ## #######.|
++ |## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5c31 '就'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## #### .|
++ |######## ## ## .|
++ | ## ## .|
++ | ## .|
++ | ###############.|
++ | ## ## #### .|
++ | ## ## #### .|
++ | ## ## #### .|
++ | ###### #### .|
++ | ## ## ## .|
++ | ###### ## ## .|
++ |## ## #### ## ##.|
++ -&gt;| ## ## ## ##.|&lt;-
++ | #### ## ####.|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5c40 '局'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ############ ..|
++ | ## ## ..|
++ | ## ## ..|
++ | ############ ..|
++ | ## ..|
++ | ## ..|
++ | #############..|
++ | ## ##..|
++ | ## ####### ##..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ | ## ####### ##..|
++ -&gt;| ## ##..|&lt;-
++ |## #### ..|
++ | ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5c5e '属'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | #############..|
++ | ## ##..|
++ | #############..|
++ | ## ..|
++ | ############ ..|
++ | ## ## ..|
++ | ############ ..|
++ | #### ## ## ..|
++ | ############ ..|
++ | ## ## ..|
++ | #############..|
++ | #### ## ####..|
++ -&gt;| ##############..|&lt;-
++ |## ## ####..|
++ | ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5de1 '巡'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 14
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ |####### ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## .|
++ -&gt;| #### .|&lt;-
++ | ## ###########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5de5 '工'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 12
++ Advance: 17
++ Offset: 0 x 0
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ############## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ -&gt;|################.|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5de6 '左'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ## .|
++ |################.|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ########## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;|## ## .|&lt;-
++ | ##############.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5df2 '已'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 14
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |..########### ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |..## ## ..|
++ |..## ## ..|
++ |..########### ..|
++ |..## ..|
++ |..## ..|
++ |..## ..|
++ |..## ##..|
++ |..## ##..|
++ -&gt;|..## ##..|&lt;-
++ |.. ############..|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5e02 '市'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## ..|
++ |. ## ..|
++ |. ..|
++ |.##############..|
++ |. ## ..|
++ |. ## ..|
++ |. ## ..|
++ |. ############ ..|
++ |. ## ## ## ..|
++ |. ## ## ## ..|
++ |. ## ## ## ..|
++ |. ## ## ## ..|
++ |. ## ## #### ..|
++ -&gt;|. ## ## ## ..|&lt;-
++ |. ## ..|
++ |. ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5e03 '布'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ## .|
++ |################.|
++ | ## .|
++ | ## ## .|
++ | ## ## .|
++ | ############ .|
++ | #### ## ## .|
++ |## ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## #### .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5e2e '帮'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ..|
++ | ## ######..|
++ |########### ## ..|
++ | ## #### ..|
++ | ####### ## ## ..|
++ | ## ## ##..|
++ |###############..|
++ | ## ## ## ..|
++ | ## ## ..|
++ | ## ## ..|
++ |############## ..|
++ | ## ## ## ..|
++ | ## ## ## ..|
++ -&gt;| ## ## #### ..|&lt;-
++ | ## ## ## ..|
++ | ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5e38 '常'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ###############.|
++ | ## ##.|
++ |## ############ .|
++ | ## ## .|
++ | ########## .|
++ | ## .|
++ | ############ .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## #### .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5e55 '幕'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ############## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ########## .|
++ | ## .|
++ |################.|
++ | ## ## ## .|
++ | ############ .|
++ |##### ## #####.|
++ -&gt;| ## ###### .|&lt;-
++ | ## ## ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5e74 '年'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ############ .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ########### .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ |################.|
++ | ## .|
++ | ## .|
++ -&gt;| ## .|&lt;-
++ | ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5e76 '并'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | .|
++ | ############## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ |################.|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5e83 '広'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ##############.|
++ | ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ## ########### .|&lt;-
++ |## ## ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5e8f '序'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ##############.|
++ | ## .|
++ | ## ######## .|
++ | ## ## .|
++ | ## #### .|
++ | ## ## .|
++ | ##############.|
++ | ## ## ##.|
++ | ## ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ |## #### .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5e95 '底'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ##############.|
++ | ## .|
++ | ## ##### .|
++ | ## ###### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ###########.|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## ##.|
++ -&gt;| ## #### ####.|&lt;-
++ | ## ### ## ###.|
++ |## ## ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5ea6 '度'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ##############.|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ############# .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ###### .|
++ | ## .|
++ | ########### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ## #### .|&lt;-
++ |## ### ### .|
++ | #### ####.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5efa '建'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ |############## .|
++ | ## ## ## .|
++ | #############.|
++ | ## ## ## .|
++ | ## ######## .|
++ | ##### ## .|
++ | ########## .|
++ | ## ## .|
++ | ## ## ## .|
++ | ############# .|
++ | ## ## .|
++ -&gt;| ##### ## .|&lt;-
++ | ## ##########.|
++ |## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5f00 '开'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ############## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ |################.|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5f0f '式'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## .|
++ |################.|
++ | ## .|
++ | ## .|
++ | ###### ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## ##.|
++ | ##### ## ##.|
++ -&gt;| ##### ####.|&lt;-
++ | ## ###.|
++ | ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5f15 '引'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ##...|
++ |.######## ##...|
++ |. ## ##...|
++ |. ## ##...|
++ |. ## ##...|
++ |. ####### ##...|
++ |. ## ##...|
++ |. ## ##...|
++ |.## ##...|
++ |.######## ##...|
++ |. ## ##...|
++ |. ## ##...|
++ |. ## ##...|
++ -&gt;|. ## ##...|&lt;-
++ |. #### ##...|
++ |. ## ##...|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5f35 '張'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |###### ####### .|
++ | ## ## .|
++ | ## ###### .|
++ | ## ## .|
++ | ##### ###### .|
++ | ## ## .|
++ | ## ###########.|
++ | ## #### .|
++ | ##### ## ## ## .|
++ | ## ## #### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ## #### ## .|&lt;-
++ | #### ### ##.|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5f37 '強'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ |###### ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ############.|
++ | ##### ## ##.|
++ | ## ## .|
++ | ## ##########.|
++ | ## ## ## ##.|
++ | ####### ## ##.|
++ | ############.|
++ | ## ## .|
++ | ## ## ## .|
++ -&gt;| ## ## ##.|&lt;-
++ | ###############.|
++ | ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5f53 '当'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## ...|
++ |. ## ## ##...|
++ |. ## ## ##...|
++ |. ## ## ## ...|
++ |. ## ## ## ...|
++ |. ## ...|
++ |.#############...|
++ |. ##...|
++ |. ##...|
++ |. ##...|
++ |. ############...|
++ |. ##...|
++ |. ##...|
++ -&gt;|. ##...|&lt;-
++ |.#############...|
++ |. ##...|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5f55 '录'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ########### .|
++ | ## .|
++ | ## .|
++ | ########## .|
++ | ## .|
++ | ## .|
++ |################.|
++ | ## .|
++ | ## ## ## .|
++ | ## ### ## .|
++ | ####### .|
++ | ## ## ## .|
++ -&gt;| ### ## ### .|&lt;-
++ |### #### ###.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5f62 '形'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ######### ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## ##.|
++ | ## ## ##.|
++ |########### ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## ##.|
++ | ## ## ##.|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ## ## .|
++ |## ## ### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5f71 '影'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ######## ## .|
++ | ## ## ## .|
++ | ######## ## .|
++ | ## ## ## .|
++ | ######## ## ##.|
++ | ## ##.|
++ |########### ## .|
++ | ## .|
++ | ######## ## .|
++ | ## ## ## ##.|
++ | ######## ##.|
++ | ## ## .|
++ -&gt;| ## ## ## ## .|&lt;-
++ |## ## ## ## .|
++ | ### ### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5f79 '役'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ###### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## ## .|
++ | #### ####.|
++ | #### .|
++ | ### ######## .|
++ | #### ## ## .|
++ |## ## ## ## .|
++ | ## ## ## .|
++ | ## #### .|
++ | ## ## .|
++ -&gt;| ## #### .|&lt;-
++ | ## ### ### .|
++ | #### ###.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5f88 '很'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ########## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ########## .|
++ | #### ## .|
++ | ## ## ## .|
++ | ### ######## .|
++ | #### ## ## ## .|
++ |## ## ## ## ## .|
++ | ## ## ### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ## #### ## .|&lt;-
++ | ## ### ###.|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5f8c '後'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ######## .|
++ | ## ## .|
++ | ## ## ## .|
++ | ### ######### .|
++ | #### ## ## .|
++ |## ## ## .|
++ | ## ####### .|
++ | ## ### ## .|
++ | #### ## ## .|
++ -&gt;| ## ### .|&lt;-
++ | ## ### ### .|
++ | ##### ###.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5f97 '得'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ########## .|
++ | ## ## ## .|
++ | ## ######## .|
++ | ## #### ## .|
++ | ########## .|
++ | ## .|
++ | ### ######### .|
++ | #### ## .|
++ |## #############.|
++ | ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## #### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5f9e '從'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ######## .|
++ | #### ## ##.|
++ | #### ## ##.|
++ | ### ## .|
++ | #### ## .|
++ |## ## ## ## .|
++ | ## ## ##### .|
++ | ## ## ## .|
++ | ## ###### .|
++ -&gt;| ## ## ### .|&lt;-
++ | #### ######.|
++ | ### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5fa1 '御'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | #### .|
++ | #### .|
++ | ## ###########.|
++ | ## ## ## ## ##.|
++ |## ## ## ## ##.|
++ | ## ## ## ##.|
++ | ########### ##.|
++ | ### ## ## ##.|
++ |#### ## ## ##.|
++ | ## ######## ##.|
++ | ## #### ## ##.|
++ | ## #### #####.|
++ | ## ########## .|
++ -&gt;| ###### ## .|&lt;-
++ | #### ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5fa9 '復'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## #########.|
++ | ## ## .|
++ | ## ########### .|
++ | ## ## ## .|
++ | ## ######## .|
++ | ### ## ## .|
++ | #### ######## .|
++ |## ## ## .|
++ | ## ####### .|
++ | ## ## ## .|
++ | ## #### ## .|
++ -&gt;| ## ### .|&lt;-
++ | ## ### ### .|
++ | ##### ###.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5fc3 '心'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 14
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ##.|
++ | ## ## ##.|
++ | ## ## ## ##.|
++ |## ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ####### .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5fc5 '必'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | #### ## ## .|
++ | #### ## ## .|
++ | #### ## ## .|
++ | ## ## ## ##.|
++ | ## #### ##.|
++ |## ### ## ##.|
++ | ## ## .|
++ -&gt;| ### ## .|&lt;-
++ | ## ######## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5fd8 '忘'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ |################.|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ########### .|
++ | .|
++ | ## .|
++ | ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ##.|
++ -&gt;| ## ## ## ##.|&lt;-
++ |## ######## .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x5fdc '応'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ##############.|
++ | ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ###### ## .|
++ | ###### ## .|
++ | ###### #### .|
++ | #### ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ |## ###### .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6027 '性'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ### ######## .|
++ | ######## ## .|
++ | #### ## ## .|
++ | #### ## .|
++ |## ## ## .|
++ | ## ######## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## ##########.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6062 '恢'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ##########.|
++ | ### ## .|
++ | ###### ## ## .|
++ | #### ## ## .|
++ | #### ## ## ##.|
++ |## ## ###### ##.|
++ | ## ######## .|
++ | ## #### ## .|
++ | ## ## #### .|
++ | #### #### .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ## ## .|
++ | ## ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x606f '息'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ########## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ## .|
++ | ## ## ## .|
++ | ## ## ## ## ##.|
++ -&gt;| ## ## ## ##.|&lt;-
++ |## ######## .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x60a8 '您'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ######## .|
++ | ### ## ## .|
++ | ###### ## ## .|
++ |## ### ###### .|
++ | ## #### ## .|
++ | ## ## ## ## .|
++ | #### ## ## .|
++ | ## #### .|
++ | ## ## .|
++ | ## .|
++ | #### ## ## .|
++ -&gt;| #### ## ## ##.|&lt;-
++ |## ## ## ##.|
++ | ######### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x60c5 '情'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 17 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## |
++ | ## ## |
++ | ## ########## |
++ | ## ## |
++ | #### ######## |
++ | ##### ## |
++ | ################|
++ |## #### |
++ | ## ######## |
++ | ## ## ## |
++ | ## ######## |
++ | ## ## ## |
++ | ## ######## |
++ -&gt;| ## ## ## |&lt;-
++ | ## ## #### |
++ | ## ## ### |
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x60f3 '想'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ###### .|
++ | ## ## ## .|
++ | ######### ## .|
++ | ## ###### .|
++ | ### ## ## .|
++ | #### ###### .|
++ | ######## ## .|
++ | ## ## ## ## .|
++ | ## ###### .|
++ | ## .|
++ | ## ## ## .|
++ | ## ## ## ## ##.|
++ -&gt;| ## ## ## ##.|&lt;-
++ |## ######## .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x610f '意'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ############ .|
++ | ## ## .|
++ | ## ## .|
++ |################.|
++ | .|
++ | ########## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ########## .|
++ | ## .|
++ | #### ## ## .|
++ -&gt;| #### ## ## ##.|&lt;-
++ |## ## ## ##.|
++ | ######### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x614b '態'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## ## ### .|
++ | ########### .|
++ | ## ## .|
++ | ####### ###### .|
++ | ## ## .|
++ | ######### ### .|
++ | ## ###### .|
++ | ######### ## .|
++ | ## #### ## .|
++ | ## ### ###### .|
++ | ## .|
++ | #### ## ## .|
++ -&gt;| #### ## ## ##.|&lt;-
++ |## ## ## ##.|
++ | ######### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6167 '慧'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ |################.|
++ | ## ## .|
++ | ###### ###### .|
++ | ## ## .|
++ |################.|
++ | ## ## .|
++ | ############ .|
++ | ## .|
++ | ########### .|
++ | ## .|
++ | ############ .|
++ | ## .|
++ -&gt;| ## ## ## ## .|&lt;-
++ | ## ## ## ##.|
++ |## ######## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x61b6 '憶'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ######### .|
++ | ### ## ## .|
++ | ###### ## ## .|
++ | ###############.|
++ | #### .|
++ |## ## ######### .|
++ | ## ## ## .|
++ | ## ######### .|
++ | ## ## ## .|
++ | ## ######### .|
++ | ## ## .|
++ -&gt;| ###### ## ## .|&lt;-
++ | ###### ####.|
++ | ### ########.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x61c9 '應'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ##############.|
++ | ## ## ## ## .|
++ | ## ## ########.|
++ | ######## ## .|
++ | ##### ####### .|
++ | ## ## ## ## .|
++ | ## ## ####### .|
++ | ## ## ## ## .|
++ | ## ## ########.|
++ | ## ## ## .|
++ | ## ## ## ## .|
++ -&gt;| #### ## ## ####.|&lt;-
++ |## ## ## ####.|
++ | ## ####### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6210 '成'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | #### .|
++ | ## ## .|
++ | ## .|
++ | ##############.|
++ | ## ## .|
++ | ## ## .|
++ | ## ## ## .|
++ | ###### ## ## .|
++ | ## ## ## ## .|
++ | ## ## #### .|
++ | ## ## #### .|
++ | ## ## ## ##.|
++ | ###### ### ##.|
++ -&gt;| ## ## ## ####.|&lt;-
++ | ## ## ###.|
++ |## ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6216 '或'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## .|
++ |################.|
++ | ## .|
++ | ## .|
++ | ###### ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## #### .|
++ | ###### #### .|
++ | ## ##.|
++ | #### ### ##.|
++ -&gt;| ##### ## ####.|&lt;-
++ | ## ## ###.|
++ | ### ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6236 '戶'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ...|
++ | ######...|
++ | ###### ...|
++ | ## ...|
++ | ###########...|
++ | ## ##...|
++ | ## ##...|
++ | ## ##...|
++ | ###########...|
++ | ## ##...|
++ | ## ...|
++ | ## ...|
++ | ## ...|
++ -&gt;| ## ...|&lt;-
++ | ## ...|
++ |## ...|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6237 '户'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## ...|
++ |. ## ...|
++ |. ## ...|
++ |. ###########...|
++ |. ## ##...|
++ |. ## ##...|
++ |. ## ##...|
++ |. ## ##...|
++ |. ###########...|
++ |. ## ##...|
++ |. ## ...|
++ |. ## ...|
++ |. ## ...|
++ -&gt;|. ## ...|&lt;-
++ |. ## ...|
++ |.## ...|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x623b '戻'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ############# .|
++ | ## ## .|
++ | ## ## .|
++ | ############# .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ############# .|
++ | ## #### .|
++ | ## #### .|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ |## ## ## .|
++ | ## ###.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6240 '所'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | #### #### .|
++ | #### #### .|
++ | ## ## .|
++ | ## ## .|
++ | ######## .|
++ | ## ##########.|
++ | ## #### ## .|
++ | ## #### ## .|
++ | ######## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ |## ## ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x624b '手'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ###### .|
++ | ####### .|
++ | ## .|
++ | ## .|
++ | ############ .|
++ | ## .|
++ | ## .|
++ | ## .|
++ |################.|
++ | ## .|
++ | ## .|
++ | ## .|
++ -&gt;| ## .|&lt;-
++ | #### .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x626b '扫'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ..|
++ | ## ..|
++ | ## #########..|
++ | ## ##..|
++ |####### ##..|
++ | ## ##..|
++ | ## ##..|
++ | ############..|
++ | ### ##..|
++ | ### ##..|
++ |##### ##..|
++ | ## ##..|
++ | ## ##..|
++ -&gt;| ## #########..|&lt;-
++ | #### ##..|
++ | ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x627e '找'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ## ..|
++ | ## ## ## ..|
++ | ## ## ## ..|
++ | ## ## ..|
++ |####### #######..|
++ | ## ##### ..|
++ | ## ## ..|
++ | #### ## ## ..|
++ | ### ## ## ..|
++ | ### ## ## ..|
++ |##### ### ..|
++ | ## ## ##..|
++ | ## #### ##..|
++ -&gt;| ## ## ####..|&lt;-
++ | #### ## ###..|
++ | ## ##..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x629e '択'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ |######### ## .|
++ | ## ## ## .|
++ | ## ######## .|
++ | ###### ## ## .|
++ | ### ## ## .|
++ | ### ## ## .|
++ |##### ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ###### ## .|
++ | #### ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x62bc '押'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ..|
++ | ## ########..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ |######### ## ##..|
++ | ## ########..|
++ | ## ## ## ##..|
++ | ###### ## ##..|
++ | ### ## ## ##..|
++ | ### ########..|
++ |##### ## ## ##..|
++ | ## ## ..|
++ | ## ## ..|
++ -&gt;| ## ## ..|&lt;-
++ | #### ## ..|
++ | ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x62e9 '择'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ######### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ |##### #### .|
++ | ## ## .|
++ | ## ###### .|
++ | ## ### ## ####.|
++ | ### ## .|
++ |#### ######## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ########## .|
++ -&gt;| ## ## .|&lt;-
++ |#### ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x62ec '括'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ##### .|
++ | ## ##### .|
++ | ## ## .|
++ |####### ## .|
++ | ## ##########.|
++ | ## ## .|
++ | #### ## .|
++ | ### ## .|
++ | ### ######## .|
++ |##### ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | #### ######## .|
++ | ## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6301 '持'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ######## .|
++ |####### ## .|
++ | ## ## .|
++ | ## ##########.|
++ | ## ## .|
++ | ### ## .|
++ | ### ##########.|
++ |##### ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | #### #### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6307 '指'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## ## .|
++ | ## ## #### .|
++ | ## #### .|
++ |######### ##.|
++ | ## ## ##.|
++ | ## ########.|
++ | #### .|
++ | ### ######## .|
++ | ### ## ## .|
++ |##### ## ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | #### ######## .|
++ | ## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6309 '按'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ##########.|
++ |######## ##.|
++ | #### ## ## .|
++ | ## ## .|
++ | #############.|
++ | ### ## ## .|
++ |##### ## ## .|
++ | ## ## ## .|
++ | ## ##### .|
++ | ## ## .|
++ -&gt;| ## #### .|&lt;-
++ | #### ## ## .|
++ | ## ### ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x633d '挽'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ####### .|
++ | ## ## ## .|
++ |####### ## .|
++ | ## ######### .|
++ | ## ## ## ## .|
++ | ##### ## ## .|
++ | ##### ## ## .|
++ | ### ######### .|
++ |##### #### .|
++ | ## #### .|
++ | ## ## ## ##.|
++ -&gt;| ## ## ## ##.|&lt;-
++ | #### ## #####.|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x633f '挿'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## #### .|
++ | ## ##### .|
++ | ## ## .|
++ | ## ## .|
++ |################.|
++ | ## ## .|
++ | ## ######## .|
++ | ###### ## ## .|
++ | ### ## ## ## .|
++ | ### ######## .|
++ |##### ## ## ## .|
++ | ## ## ## ## .|
++ | ## ######## .|
++ -&gt;| ## ## .|&lt;-
++ | #### ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6362 '换'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ###### .|
++ | ## ## ## .|
++ |######## ## .|
++ | ############ .|
++ | ## ## ## ## .|
++ | ### ## ## ## .|
++ | ### ## ## ## .|
++ |##### ## ## ## .|
++ | #############.|
++ | ## #### .|
++ | ## #### .|
++ -&gt;| ## ## ## .|&lt;-
++ | #### ## ## .|
++ | ## ### ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6372 '捲'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## ## ## .|
++ | ## ###### .|
++ | ## ##########.|
++ |####### ## .|
++ | ## ## .|
++ | #############.|
++ | ## ## ## .|
++ | ##### ## .|
++ | ##############.|
++ |###### ## ## .|
++ | ## ## ## .|
++ | ## ## #### .|
++ -&gt;| ## ## ## ##.|&lt;-
++ | #### ## ##.|
++ | ## ########.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6383 '掃'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ######## .|
++ | ## ## .|
++ | ## ####### .|
++ |####### ## .|
++ | ## ######## .|
++ | ## .|
++ | ## ##########.|
++ | ##### ## ##.|
++ | ### ## .|
++ |##### ######## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ -&gt;| ## ## ##### .|&lt;-
++ | #### ## #### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6392 '排'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ####### #####.|
++ |###### ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ####### #### .|
++ | ### ## ## .|
++ |##### ## ## .|
++ | ## ## ## .|
++ | ####### #####.|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | #### ## ## .|
++ | ## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x63a5 '接'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ######### .|
++ | ## .|
++ |######### ## .|
++ | ## ## ## .|
++ | #############.|
++ | ## ## .|
++ | ### ## .|
++ | ##############.|
++ |##### ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ## ### .|&lt;-
++ | #### ### ### .|
++ | ## ### ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x63a7 '控'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ##########.|
++ |######## ##.|
++ | #### ## #### .|
++ | ## ## ## .|
++ | ##### ## .|
++ | ### .|
++ |##### ######## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ###############.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x63aa '措'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ##########.|
++ |###### ## ## .|
++ | ## ## ## .|
++ | #############.|
++ | ### .|
++ | ### ######## .|
++ |##### ## ## .|
++ | ## ## ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | #### ######## .|
++ | ## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x63cf '描'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ##########.|
++ | ## ## ## .|
++ |####### ## ## .|
++ | ## .|
++ | ## ######## .|
++ | ###### ## ## .|
++ | ### ## ## ## .|
++ | ### ## ## ## .|
++ |##### ######## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ -&gt;| ## ## ## ## .|&lt;-
++ | #### ######## .|
++ | ## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x63d0 '提'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ |############### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ############ .|
++ | ### .|
++ | ### ##########.|
++ |##### ## .|
++ | ## ## ## .|
++ | ## ## ##### .|
++ -&gt;| ## ## ## .|&lt;-
++ | #### ###### .|
++ | ## ## #######.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x63d2 '插'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ##### .|
++ | ## ###### .|
++ | ## ## .|
++ |###### ## .|
++ | ##############.|
++ | ## ## .|
++ | #### #### .|
++ | ###### ###### .|
++ |#### ## ## ## .|
++ | ## ## ## ## .|
++ | ## ########## .|
++ | ## ## ## ## .|
++ -&gt;| ## ## ## ## .|&lt;-
++ |#### ########## .|
++ | ## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x63db '換'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ####### .|
++ | ## ## ## .|
++ |####### ## .|
++ | ## ##########.|
++ | ## ## ##.|
++ | ##### #### ##.|
++ | ### #### ####.|
++ |##### ## ## ##.|
++ | ## ## .|
++ | #############.|
++ | ## #### .|
++ -&gt;| ## ## ## .|&lt;-
++ | #### ## ## .|
++ | ## ### ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x63f4 '援'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ##### .|
++ | ## ###### .|
++ | ## ## ## ## .|
++ | ## ## #### .|
++ |###### .|
++ | ## ######### .|
++ | ## ## .|
++ | #### ## .|
++ | ##############.|
++ |#### ## .|
++ | ## ####### .|
++ | ## #### ## .|
++ | ## ## #### .|
++ -&gt;| ## ## ## .|&lt;-
++ |###### ###### .|
++ | ## ### ###.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x640d '損'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ..|
++ | ## ####### ..|
++ | ## ## ## ..|
++ | ## ## ## ..|
++ |############## ..|
++ | ## ..|
++ | ## #########..|
++ | ##### ##..|
++ | ############..|
++ | ### ## ##..|
++ |##### #########..|
++ | ## ## ##..|
++ | ## #########..|
++ -&gt;| ## ## ## ..|&lt;-
++ | #### ## ## ..|
++ | ## ## ##..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x641c '搜'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## #### .|
++ | ## ## ##### .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ |############### .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ############ .|
++ | ### ## .|
++ | ### ######## .|
++ |##### ## ## .|
++ | ## #### .|
++ | ## ## .|
++ -&gt;| ## #### .|&lt;-
++ | #### ## ## .|
++ | ## ### ###.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x641e '搞'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ##########.|
++ | ## .|
++ |############### .|
++ | ## ## ## .|
++ | ## ######## .|
++ | #### .|
++ | #############.|
++ | ### ## ##.|
++ |##### ##########.|
++ | ## #### ####.|
++ | ## ##########.|
++ -&gt;| ## ## ##.|&lt;-
++ | #### ## ####.|
++ | ## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x64c7 '擇'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ##########.|
++ | ## ## #### ##.|
++ | ## ##########.|
++ |####### ## .|
++ | ## ######## .|
++ | #### ## .|
++ | #############.|
++ | ### ## ## .|
++ |##### #### .|
++ | ## ######## .|
++ | ## ## .|
++ | #############.|
++ -&gt;| ## ## .|&lt;-
++ | #### ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x64cd '操'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ######## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ######## .|
++ |###### .|
++ | ## ########## .|
++ | ## ## #### ## .|
++ | ##### #### ## .|
++ | ############# .|
++ |#### ## .|
++ | ##############.|
++ | ## ##### .|
++ | ## ## #### .|
++ -&gt;| ## ## ## ## .|&lt;-
++ |###### ## ###.|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x64da '據'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ###### .|
++ | ## ## .|
++ | ## ##########.|
++ |######## ## ##.|
++ | ## ## ##### .|
++ | ## ##### ## .|
++ | ##### ##### .|
++ | ##### .|
++ | ### ##########.|
++ |##### ## ## .|
++ | ## ###### ## .|
++ | ## ## ##### .|
++ -&gt;| ############ .|&lt;-
++ | ###### #### ##.|
++ | #### ###### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x652f '支'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ############## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ########### .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | #### .|
++ | ## .|
++ -&gt;| ###### .|&lt;-
++ | ### ### .|
++ |#### ####.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x653e '放'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## .|
++ |########## .|
++ | ## ########.|
++ | ## ## ## .|
++ | ######## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## #### .|
++ | ## ## #### .|
++ | ## ## ## .|
++ | ## ## #### .|
++ -&gt;| ###### ## ## .|&lt;-
++ |## ## ## ## .|
++ | ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6548 '效'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## .|
++ |######### ######.|
++ | ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ |## ##### ## .|
++ | ## ## #### .|
++ | #### #### .|
++ | ## ## .|
++ | #### ## .|
++ | ## ## #### .|
++ -&gt;| ## ## ## ## .|&lt;-
++ |## ## ## .|
++ | ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6551 '救'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | #### ## .|
++ | ## ## ## .|
++ | ## ## .|
++ |################.|
++ | ## ## ## .|
++ | ## ## ## .|
++ |## ## #### ## .|
++ | ###### ## ## .|
++ | ## #### .|
++ | #### #### .|
++ | ###### ## .|
++ |## ## ## #### .|
++ -&gt;| ## ## ## .|&lt;-
++ | #### ## ## .|
++ | ## ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6557 '敗'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ###### ## .|
++ | ## ## ## .|
++ | ## ## ########.|
++ | ######## ## .|
++ | ## #### ## .|
++ | ## ##### ## .|
++ | ###### ## ## .|
++ | ## ## ## ## .|
++ | ## ## #### .|
++ | ###### #### .|
++ | ## .|
++ | #### #### .|
++ -&gt;| ## ## ## ## .|&lt;-
++ | ## #### ## .|
++ |## ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6570 '数'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## ## ## .|
++ | ###### ## .|
++ | ## ######.|
++ |########### ## .|
++ | ###### ## ## .|
++ | ## ## #### ## .|
++ |## ## #### ## .|
++ | ## #### .|
++ |######## #### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ### ## #### .|
++ -&gt;| ### #### .|&lt;-
++ | ##### ## ## .|
++ |### #### ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6574 '整'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ |################.|
++ | ## ## ## .|
++ | ########### ## .|
++ | ## ## ## ## ## .|
++ | ######## #### .|
++ | ###### ## .|
++ | ## ## ## #### .|
++ |## ## ## ###.|
++ | .|
++ | ############## .|
++ | ## .|
++ -&gt;| ## ####### .|&lt;-
++ | ## ## .|
++ |################.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6578 '數'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ######## ## .|
++ | ## ## ## ## .|
++ |############ .|
++ | ## ## ## ######.|
++ | ########## ## .|
++ | ## ## ## .|
++ | ######## ## ## .|
++ | ## ## ## ## ## .|
++ | ######## #### .|
++ | ## #### .|
++ |######### ## .|
++ | ## ## #### .|
++ -&gt;| #### ## #### .|&lt;-
++ | ### ## ## .|
++ |##### #### ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6587 '文'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ## .|
++ |################.|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | #### .|
++ | ## .|
++ | #### .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ### ### .|
++ |### ###.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x65b0 '新'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## .|
++ | ############# .|
++ | ## .|
++ | ## ## ## .|
++ | #### ## .|
++ |################.|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ########## ## .|
++ | ## ## ## .|
++ | ###### ## ## .|
++ | ## ## #### ## .|
++ -&gt;|## ## ## ## .|&lt;-
++ | #### ## ## .|
++ | ## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x65b7 '斷'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## ## ##.|
++ |.#### ## #### .|
++ |.############ .|
++ |.## ## ###### .|
++ |.###### ## ## .|
++ |.###############.|
++ |.## ## ###### .|
++ |.############## .|
++ |.## ## ## #### .|
++ |.#### ## #### .|
++ |.############## .|
++ |.## ## ######## .|
++ |.###### ## #### .|
++ -&gt;|.############## .|&lt;-
++ |.## ## ### ## .|
++ |.########## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x65b9 '方'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ## .|
++ |################.|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ######## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## #### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x65bc '於'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## .|
++ |######## #### .|
++ | ## #### .|
++ | ## ## ## .|
++ | ####### ## .|
++ | ## ### ##.|
++ | ## ## ### .|
++ | ## ## ## .|
++ | ## ## .|
++ | ## ## ### .|
++ | ## ## ## .|
++ -&gt;| ###### ## .|&lt;-
++ |## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x65bd '施'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ########.|
++ | ## ## .|
++ |######## ## .|
++ | ## ## ## .|
++ | ## ## ##### .|
++ | ############# .|
++ | ## ####### ## .|
++ | ## #### ## ## .|
++ | ## #### ##### .|
++ | ## #### ######.|
++ | ## #### ## ##.|
++ -&gt;| ## #### ##.|&lt;-
++ | ###### ########.|
++ |## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x65e0 '无'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ########### ..|
++ | ## ..|
++ | ## ..|
++ | ## ..|
++ | ## ..|
++ | ##############..|
++ | ## ## ..|
++ | ## ## ..|
++ | ## ## ..|
++ | ## ## ..|
++ | ## ## ..|
++ | ## ## ##..|
++ -&gt;| ## ## ##..|&lt;-
++ | ## ######..|
++ |## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x65e2 '既'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 15
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.############## .|
++ |.## ## ## .|
++ |.## ## ## .|
++ |.######## ## .|
++ |.## #### ## .|
++ |.## ###########.|
++ |.###### ## .|
++ |.## ## .|
++ |.## ## ### .|
++ |.## ## #### .|
++ |.## #### #### .|
++ |.#### #### ## ##.|
++ -&gt;|.### ## ## ##.|&lt;-
++ |.## ## ####.|
++ |. ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x65e5 '日'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 10 x 15
++ Advance: 17
++ Offset: 3 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |...##########....|
++ |...## ##....|
++ |...## ##....|
++ |...## ##....|
++ |...## ##....|
++ |...## ##....|
++ |...##########....|
++ |...## ##....|
++ |...## ##....|
++ |...## ##....|
++ |...## ##....|
++ |...## ##....|
++ -&gt;|...## ##....|&lt;-
++ |...##########....|
++ |...## ##....|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x65e9 '早'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ########## .|
++ | ## ## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ## ## .|
++ | ########## .|
++ | ## .|
++ | ## .|
++ |################.|
++ | ## .|
++ | ## .|
++ -&gt;| ## .|&lt;-
++ | ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x660e '明'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 15
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. #######..|
++ |.###### ## ##..|
++ |.## ## ## ##..|
++ |.## ## ## ##..|
++ |.## ## #######..|
++ |.###### ## ##..|
++ |.## ## ## ##..|
++ |.## ## ## ##..|
++ |.## ## #######..|
++ |.###### ## ##..|
++ |.## ## ## ##..|
++ |. ## ##..|
++ -&gt;|. ## ##..|&lt;-
++ |. ## ####..|
++ |. ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6620 '映'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## .|
++ |. ## .|
++ |.##### ## .|
++ |.## ## ######## .|
++ |.## ## ## ## ## .|
++ |.## ## ## ## ## .|
++ |.##### ## ## ## .|
++ |.## ## ## ## ## .|
++ |.## ## ## ## ## .|
++ |.## ############.|
++ |.## ## ## .|
++ |.##### #### .|
++ |.## ## #### .|
++ -&gt;|. ## ## .|&lt;-
++ |. ## ## .|
++ |. ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x662f '是'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ########## .|
++ | ## ## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ## ## .|
++ | ########## .|
++ | .|
++ |################.|
++ | ## .|
++ | ## ## .|
++ | ## ####### .|
++ | ## ## .|
++ -&gt;| #### ## .|&lt;-
++ | ## #### .|
++ |## ##########.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6642 '時'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## .|
++ |. ## .|
++ |.###### ## .|
++ |.## ########## .|
++ |.## ## ## .|
++ |.## ## ## .|
++ |.## ###########.|
++ |.###### ## .|
++ |.## ## ## .|
++ |.## ###########.|
++ |.## ## ## .|
++ |.## ## ## ## .|
++ |.###### ## ## .|
++ -&gt;|.## ## ## .|&lt;-
++ |. #### .|
++ |. ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x667a '智'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ..|
++ | ###### ######..|
++ | ## ## ## ##..|
++ | ## ## ##..|
++ |########### ##..|
++ | #### ## ##..|
++ | ## ## ######..|
++ | ## ..|
++ | ########## ..|
++ | ## ## ..|
++ | ## ## ..|
++ | ########## ..|
++ | ## ## ..|
++ -&gt;| ## ## ..|&lt;-
++ | ########## ..|
++ | ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6682 '暂'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ### .|
++ |############# .|
++ | ## ## .|
++ | ## ## ## .|
++ | ###############.|
++ | ## ## ## .|
++ | ###### ## .|
++ |###### ## ## .|
++ | ## #### ## .|
++ | ########### .|
++ | ## ## .|
++ | ## ## .|
++ | ########## .|
++ -&gt;| ## ## .|&lt;-
++ | ## ## .|
++ | ########## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x66ab '暫'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## ## .|
++ |.############# .|
++ |. ## ## .|
++ |.########## .|
++ |.## ## #########.|
++ |.########## ## .|
++ |.## ## #### ## .|
++ |.########## ## .|
++ |. ## ## ## .|
++ |.########## ## .|
++ |. ## ## ## .|
++ |. ########## .|
++ |. ## ## .|
++ -&gt;|. ########## .|&lt;-
++ |. ## ## .|
++ |. ########## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x66f4 '更'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |################.|
++ | ## .|
++ | ## .|
++ | ############ .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ############ .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ############ .|
++ | ## ## .|
++ | #### .|
++ -&gt;| ### .|&lt;-
++ | ### #### .|
++ |#### ######.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x66ff '替'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ############## .|
++ | ## ## .|
++ |################.|
++ | #### #### .|
++ | ## #### ## .|
++ | ## ## ###.|
++ |## ########## .|
++ | ## ## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ########## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6700 '最'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ########## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ########## .|
++ | .|
++ |################.|
++ | ## ## .|
++ | ############ .|
++ | ## #### ## .|
++ | ######## ## .|
++ | ## ## #### .|
++ | ####### ## .|
++ -&gt;|##### ## #### .|&lt;-
++ | ## #### ## .|
++ | ### ###.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6703 '會'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | #### .|
++ | ### ### .|
++ | ############ .|
++ |### ###.|
++ | ############ .|
++ | #### ## #### .|
++ | ## ###### ## .|
++ | ############ .|
++ | .|
++ | ########## .|
++ | ## ## .|
++ | ########## .|
++ -&gt;| ## ## .|&lt;-
++ | ########## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6709 '有'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ |################.|
++ | ## .|
++ | ## .|
++ | ######### .|
++ | ## ## .|
++ | ### ## .|
++ | ########### .|
++ | ## ## ## .|
++ |## ## ## .|
++ | ######### .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## #### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x670d '服'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ############# .|
++ | ## #### ## .|
++ | ## #### ## .|
++ | ## #### #### .|
++ | ######## ## .|
++ | ## #### .|
++ | ## ######### .|
++ | ## ###### ## .|
++ | ########## ## .|
++ | ## ######## .|
++ | ## ######## .|
++ | ## #### ## .|
++ -&gt;| ## ######## .|&lt;-
++ | ## ####### ## .|
++ |## ## ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x671f '期'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ..|
++ | ## ## ######..|
++ | ########## ##..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ | ###### ######..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ | ###### ## ##..|
++ | ## ## ######..|
++ | ## ## ## ##..|
++ |########### ##..|
++ | ## ## ##..|
++ -&gt;| ## #### ##..|&lt;-
++ | ## ## ####..|
++ |## ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x672a '未'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ############ .|
++ | ## .|
++ | ## .|
++ | ## .|
++ |################.|
++ | #### .|
++ | ###### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;|### ## ###.|&lt;-
++ | ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x672c '本'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ############## .|
++ | #### .|
++ | ###### .|
++ | ###### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ######## ## .|
++ |## ## ##.|
++ -&gt;| ## .|&lt;-
++ | ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x673a '机'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ###### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ |######### ## .|
++ | ## ## ## .|
++ | ### ## ## .|
++ | #### ## ## .|
++ | ######## ## .|
++ | ######## ## .|
++ |## ## ## ## .|
++ | ## ## ## ##.|
++ | ## ## ## ##.|
++ -&gt;| ## ## ## ##.|&lt;-
++ | ## ## ####.|
++ | #### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6784 '构'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ..|
++ | ## ## ..|
++ | ## ## ..|
++ | ## #######..|
++ |######### ##..|
++ | ## ## ##..|
++ | ### ## ## ##..|
++ | #### ## ##..|
++ | ###### ## ##..|
++ | ###### #### ##..|
++ |## ## ## ####..|
++ | ## ########..|
++ | ## ####..|
++ -&gt;| ## ##..|&lt;-
++ | ## #### ..|
++ | ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6790 '析'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## #### .|
++ | ## ##### .|
++ | ## ## .|
++ |######### .|
++ | ## ## .|
++ | ### #########.|
++ | #### ## ## .|
++ | ######## ## .|
++ | #### ## ## .|
++ |## ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ## ## .|
++ | #### ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x679c '果'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ########## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ########## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ########## .|
++ | ## ## ## .|
++ | ## .|
++ |################.|
++ | ###### .|
++ | ## ## ## .|
++ -&gt;| ### ## ### .|&lt;-
++ |### ## ###.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x67b6 '架'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ############## .|
++ | ## #### ## .|
++ | ## #### ## .|
++ | ## #### ## .|
++ | ## ########## .|
++ | ## ## .|
++ | ## .|
++ | ## .|
++ |################.|
++ | ###### .|
++ | ## ## ## .|
++ -&gt;| ### ## ### .|&lt;-
++ |### ## ###.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x67e5 '查'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ |################.|
++ | ###### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ############ .|
++ |##### #####.|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ## ## .|
++ | ########## .|
++ -&gt;| .|&lt;-
++ |################.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6838 '核'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ##########.|
++ |####### ## .|
++ | ## ## ##.|
++ | ### ## ## .|
++ | #### ####### .|
++ | ###### ## .|
++ | ###### ## ##.|
++ |## ## ### ## .|
++ | ## ### ## .|
++ | ## ## .|
++ -&gt;| ## #### .|&lt;-
++ | ## ### ## .|
++ | ## ### ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6839 '根'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ |############## .|
++ | ## ## ## .|
++ | ### ## ## .|
++ | ############ .|
++ | ####### ## ## .|
++ | #### ## ## ## .|
++ |## ## ## ### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ## #### ## .|&lt;-
++ | ## ### ###.|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x683c '格'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ###### .|
++ | ## ## ## .|
++ |######### ## .|
++ | #### #### .|
++ | ### ## .|
++ | #### #### .|
++ | ######## ### .|
++ | #### ## ###.|
++ |## ########### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ####### .|
++ | ## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6848 '案'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ############## .|
++ | ## ## .|
++ | ## .|
++ |################.|
++ | ## ## .|
++ | ##### ## .|
++ | ##### .|
++ | ##### #### .|
++ | ## .|
++ |################.|
++ | ###### .|
++ | ## ## ## .|
++ -&gt;| ### ## ### .|&lt;-
++ |### ## ###.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x684c '桌'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ######## .|
++ | ## .|
++ | ########### .|
++ | ## ## .|
++ | ########### .|
++ | ## ## .|
++ | ########### .|
++ | ## .|
++ |################.|
++ | ###### .|
++ | ## ## ## .|
++ -&gt;| ### ## ### .|&lt;-
++ |### ## ###.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x689d '條'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ####### .|
++ | ## ## ## .|
++ | ########### .|
++ | ###### ## .|
++ |## #### ###### .|
++ | ###### ## ###.|
++ | #### ## .|
++ | ############ .|
++ | #### ## .|
++ | #### ###### .|
++ | ###### ## ## .|
++ -&gt;| ## ## ## ##.|&lt;-
++ | ## #### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x68c0 '检'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## #### .|
++ | ## #### .|
++ |######### ## .|
++ | ## ## ## .|
++ | ##############.|
++ | #### .|
++ | ###### ## ## .|
++ | #### ## ## .|
++ |## ## ## ## ## .|
++ | ## ###### .|
++ | ## ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | #############.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x691c '検'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## #### .|
++ | ## ## ## .|
++ |######### ## .|
++ | ## ##########.|
++ | ### ## .|
++ | #### ## .|
++ | ############## .|
++ | ######## ## ## .|
++ |## ## ## ## ## .|
++ | ## ######## .|
++ | ## #### .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ## ## .|
++ | ## ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x696d '業'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## ## ## .|
++ | #### #### .|
++ |################.|
++ | ## ## .|
++ | ## ## .|
++ | ############## .|
++ | ## .|
++ | ############ .|
++ | ## .|
++ |################.|
++ | ###### .|
++ | ## ## ## .|
++ -&gt;| ### ## ### .|&lt;-
++ |### ## ###.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x69cb '構'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ##########.|
++ | ## ## ## .|
++ |############### .|
++ | ## ## ## .|
++ | ### ##########.|
++ | #### ## .|
++ | ############## .|
++ | ######## ## ## .|
++ |## ## ######## .|
++ | ## ## ## ## .|
++ | ## ##########.|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ## #### .|
++ | ## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6a19 '標'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ##########.|
++ | ## #### .|
++ | ## ######## .|
++ |############### .|
++ | ## ######## .|
++ | ### ######## .|
++ | #### .|
++ | ############## .|
++ | ###### .|
++ |## ## ##########.|
++ | ## ## .|
++ | ## ###### .|
++ -&gt;| ## ## ## ## .|&lt;-
++ | ## ###### ##.|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6a21 '模'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ############ .|
++ | ## ## ## .|
++ |####### .|
++ | ## ######## .|
++ | ### ## ## .|
++ | ############ .|
++ | ####### ## .|
++ | #### ######## .|
++ |## ## ## .|
++ | ############ .|
++ | ## #### .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ## ## .|
++ | #### ###.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6a5f '機'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ##########.|
++ | ## ##########.|
++ |###### ## ## ## .|
++ | ## ##########.|
++ | ### ##########.|
++ | #### ## ## ## .|
++ | ###############.|
++ | #### ## ## .|
++ |## ## ## #### .|
++ | ## ## #### .|
++ | ## #### ####.|
++ -&gt;| ## ## ## ####.|&lt;-
++ | ## ## #####.|
++ | #### ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6a94 '檔'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## ## ## .|
++ | ## ###### .|
++ | ## ##########.|
++ |######## ##.|
++ | ## ###### .|
++ | ### ## ## .|
++ | #### ## ## .|
++ | ###### ###### .|
++ | ###### .|
++ |## ## ######## .|
++ | ## ## ## ## .|
++ | ## ######## .|
++ -&gt;| ## ## ## ## .|&lt;-
++ | ## ######## .|
++ | ## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6aa2 '檢'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## #### .|
++ | ## ## ## .|
++ |######### ## .|
++ | ## ##########.|
++ | ### .|
++ | #### .|
++ | ############## .|
++ | ############## .|
++ |## ## ######## .|
++ | ## ######## .|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ######## .|
++ | ## ## ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6b20 '欠'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ########### .|
++ | ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## .|
++ | ## .|
++ | #### .|
++ | #### .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## ## .|
++ |### ###.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6b21 '次'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ####### .|
++ | ## ## .|
++ | ## ## ## .|
++ | #### ## .|
++ | #### ## .|
++ | ## ## .|
++ |#### #### .|
++ | ## #### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ## ## .|
++ | ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6b61 '歡'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ## .|
++ | ## ## ## .|
++ |############ .|
++ | ## ## #######.|
++ | ########## ##.|
++ | ######### ## .|
++ | ######## ## .|
++ | ## ## ## .|
++ | ####### ## .|
++ | ### ## ## .|
++ |######### #### .|
++ | ## ## #### .|
++ | ####### #### .|
++ -&gt;| ## ## ## ## .|&lt;-
++ | ######### ## .|
++ | ## ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6b62 '止'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ####### .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ |################.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6b63 '正'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 14
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ############## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## ## .|
++ | ## ####### .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ |################.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6b64 '此'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ######## .|
++ | ## ## ### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## ##.|
++ | ######### ##.|
++ -&gt;|##### ## ##.|&lt;-
++ | ## ######.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6bd4 '比'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 15
++ Advance: 17
++ Offset: 2 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## .|
++ |..## ## .|
++ |..## ## .|
++ |..## ## ## .|
++ |..## ## ## .|
++ |..## ## ## .|
++ |..########## .|
++ |..## ### .|
++ |..## ## .|
++ |..## ## .|
++ |..## ## .|
++ |..## ## ##.|
++ |..## ##### ##.|
++ -&gt;|..#### ## ##.|&lt;-
++ |..## #######.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6c42 '求'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## .|
++ |.############## .|
++ |. ## .|
++ |. ## ## ## .|
++ |. ## ## ## .|
++ |. ## ##### .|
++ |. ##### .|
++ |. #### ## .|
++ |. ## ## ## .|
++ |. ## ## ## .|
++ |.### ## ###.|
++ -&gt;|. ## .|&lt;-
++ |. #### .|
++ |. ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6c7a '決'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## .|
++ | ## ## .|
++ | ########### .|
++ |## ## ## .|
++ | ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## .|
++ | #############.|
++ | ## ## .|
++ |#### #### .|
++ | ## #### .|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | #### ## .|
++ | ## ###.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6c92 '沒'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## .|
++ | ## ####### .|
++ | ## ## ## .|
++ |## ## ## .|
++ | ## ## #### .|
++ | ## ## ## .|
++ | ########### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ |#### ## ## .|
++ | ## #### .|
++ | ## ## .|
++ -&gt;| ## #### .|&lt;-
++ | ## ### ## .|
++ | ### ###.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6cc1 '況'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ## ######### .|
++ | #### ## .|
++ | #### ## .|
++ |## ## ## .|
++ | ## ## ## .|
++ | ## ######### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ |#### ## ## .|
++ | ## ## ## .|
++ | ## ## ## ##.|
++ -&gt;| ## ## ## ##.|&lt;-
++ | #### #####.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6cd5 '法'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ |## ########## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | #############.|
++ | ## ## .|
++ |#### ## .|
++ | ## ## .|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ############# .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6ce8 '注'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## .|
++ | ## .|
++ | ############ .|
++ |## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ######### .|
++ | ## ## .|
++ |#### ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ##############.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6d4b '测'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ##..|
++ | ## ###### ##..|
++ | #### ## ##..|
++ | #### ######..|
++ |## ##########..|
++ | ## ##########..|
++ | ## ##########..|
++ | ############..|
++ | ############..|
++ | ## ##########..|
++ |#### ##########..|
++ | ## ## ##..|
++ | ## #### ##..|
++ -&gt;| ## ## ## ##..|&lt;-
++ | ## ## ####..|
++ | ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6d88 '消'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ...|
++ | ## ## ## ##...|
++ | ## #### ##...|
++ | ## ###### ...|
++ |## ## ...|
++ | ## ########...|
++ | ## #### ##...|
++ | #### ##...|
++ | ## ########...|
++ | ## ## ##...|
++ |#### ## ##...|
++ | ## ########...|
++ | ## ## ##...|
++ -&gt;| ## ## ##...|&lt;-
++ | ## ## ####...|
++ | ## ## ...|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6df7 '混'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ## ########## .|
++ | #### ## .|
++ | #### ## .|
++ |## ########## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ############ .|
++ | ## .|
++ | ## ## ## .|
++ |#### ## ## ##.|
++ | ## ########## .|
++ | ## ## ### .|
++ -&gt;| ## ## ## ##.|&lt;-
++ | ## ####### ##.|
++ | ### #####.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6e05 '清'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ############ .|
++ | ## .|
++ |## ######## .|
++ | ## ## .|
++ | ## ############.|
++ | ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ | ## ######## .|
++ |#### ## ## .|
++ | ## ######## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ## #### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6e08 '済'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## .|
++ | #############.|
++ | ## ## ## .|
++ |## ## ## .|
++ | ## ### .|
++ | ## ### ### .|
++ | ##### ###.|
++ | ## ## ## .|
++ | ## ####### .|
++ |#### ## ## .|
++ | ## ####### .|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ## ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6e2c '測'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ##.|
++ | ## ###### ##.|
++ | #### ## ##.|
++ | #### #### ##.|
++ |## ######## ##.|
++ | ## ## #### ##.|
++ | ## ## #### ##.|
++ | ########## ##.|
++ | #### #### ##.|
++ | ## ## #### ##.|
++ |#### ######## ##.|
++ | ## ##.|
++ | ## #### ##.|
++ -&gt;| ## ## ## ##.|&lt;-
++ | ## ## ## ####.|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6e38 '游'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | #############.|
++ |## ## ## .|
++ | ## ## ## .|
++ | ## ######### .|
++ | ## #### ## .|
++ | ## #### ## .|
++ | ## #### ## .|
++ |#### ##########.|
++ | ## #### ## .|
++ | ## ## ## ## .|
++ -&gt;| ## ## ## ## .|&lt;-
++ | #### ####### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6e90 '源'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ## ###########.|
++ | #### ## .|
++ | #### ## .|
++ |## ########## .|
++ | ## #### ## .|
++ | ## ########## .|
++ | ###### ## .|
++ | ############ .|
++ | ## #### ## ## .|
++ |#### ## ## .|
++ | ## ## ###### .|
++ | #### ## ## ## .|
++ -&gt;| ###### ## ##.|&lt;-
++ | ### #### .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x6e96 '準'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## #### .|
++ | ## ## ## .|
++ |## ######### .|
++ | #### ## ## .|
++ | ########### .|
++ | ###### ## .|
++ |#### ######## .|
++ | ## ## ## .|
++ | ## ######### .|
++ | ## ## .|
++ | ## .|
++ |################.|
++ | ## .|
++ -&gt;| ## .|&lt;-
++ | ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x700f '瀏'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ##.|
++ | ## ####### ##.|
++ | #### #### ##.|
++ | #############.|
++ |## #### ######.|
++ | ## ### #######.|
++ | ## ## ####.|
++ | ## #### ####.|
++ | #### ## ####.|
++ | ##############.|
++ |#### ## ####.|
++ | ## ###### ####.|
++ | ## ## ## ##.|
++ -&gt;| ## ###### ##.|&lt;-
++ | ## #########.|
++ | #### ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7063 '灣'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ## ## .|
++ | #### ###### .|
++ | ###### ####.|
++ |## ## #### ## .|
++ | ## #### ####.|
++ | ## ############.|
++ | #### .|
++ | ##############.|
++ | ## .|
++ | ## ######### .|
++ |### ## .|
++ | ## ######### .|
++ | ## ## .|
++ -&gt;| ## ########## .|&lt;-
++ | ## ## .|
++ | #### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x70b9 '点'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ..|
++ | ## ..|
++ | ## ..|
++ | #########..|
++ | ## ..|
++ | ## ..|
++ | ########### ..|
++ | ## ## ..|
++ | ## ## ..|
++ | ## ## ..|
++ | ########### ..|
++ | ..|
++ | ## ## ## ## ..|
++ -&gt;| ## ## ## ##..|&lt;-
++ | ## ## ## ##..|
++ |## ##..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x70ba '為'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ..|
++ | ## ## ..|
++ | #### ..|
++ | ############ ..|
++ | ## ## ..|
++ | ## ## ..|
++ | ########## ..|
++ | ## ## ..|
++ | ## ## ..|
++ | ############..|
++ | ## ##..|
++ | ########## ##..|
++ | ## ######## ##..|
++ -&gt;|## ## ##..|&lt;-
++ | #### ..|
++ | ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7121 '無'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ..|
++ | ## ..|
++ | ############..|
++ | ########## ..|
++ | ## ######## ..|
++ | ######## ..|
++ | ##############..|
++ | ######## ..|
++ | ######## ..|
++ | ######## ..|
++ | ##############..|
++ | ..|
++ | ## ## ## ## ..|
++ -&gt;| ## ## ## ##..|&lt;-
++ | ## ## ## ##..|
++ |## ##..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7136 '然'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## #### .|
++ | ##### ## ## .|
++ | ## ## ## .|
++ | ### ##########.|
++ | ## #### ## .|
++ |#### ## #### .|
++ | #### #### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ##.|
++ | .|
++ -&gt;| ## ## ## ## .|&lt;-
++ | ## ## ## ## .|
++ |## ## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7167 '照'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ##############..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ | ## ## ## ####..|
++ | ######## ## ..|
++ | ## ## #######..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ | ###### #######..|
++ | ..|
++ -&gt;| ## ## ## ## ..|&lt;-
++ | ## ## ## ##..|
++ |## ## ## ##..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x719f '熟'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ |######## ## .|
++ | ## .|
++ | ############# .|
++ | ## ## ## ## .|
++ | ###### ## ## .|
++ | ### ## .|
++ | ###### ## ## .|
++ | ## ########.|
++ |################.|
++ | ## ## ###.|
++ | #### ## ##.|
++ | ## .|
++ -&gt;| ## ## ## ## .|&lt;-
++ | ## ## ## ## .|
++ |## ## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7247 '片'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## ..|
++ |. ## ## ..|
++ |. ## ## ..|
++ |. ## ## ..|
++ |. ## ## ..|
++ |. ############..|
++ |. ## ..|
++ |. ## ..|
++ |. ## ..|
++ |. ######### ..|
++ |. ## ## ..|
++ |. ## ## ..|
++ |. ## ## ..|
++ -&gt;|. ## ## ..|&lt;-
++ |. ## ## ..|
++ |.## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7248 '版'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## #### .|
++ | ## ## ##### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ############## .|
++ | ## #### ## .|
++ | ## #### ## .|
++ | ##### #### ## .|
++ | ## ## ## #### .|
++ | ## ## ## #### .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ -&gt;| ## #### #### .|&lt;-
++ | ## #### ## ## .|
++ |## ### ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7279 '特'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | #### ## .|
++ | #### ######## .|
++ | ###### ## .|
++ | #### ## .|
++ |## ## ##########.|
++ | ## ## .|
++ | #### ## .|
++ |##### #########.|
++ | #### ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## #### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x72b6 '状'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## ## .|
++ | #### ## .|
++ | ##############.|
++ | ## ## .|
++ | ## ## .|
++ | ### ## .|
++ | #### #### .|
++ |### ## #### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | #### ## .|
++ | ### ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x73fe '現'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ######## .|
++ |######### ## .|
++ | ## ## ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ############## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ######## .|
++ | ## #### .|
++ | #### ## ## .|
++ -&gt;|#### ## ## ##.|&lt;-
++ | ## ## ## ##.|
++ | ## ####.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7406 '理'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 14
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ######## .|
++ |######### ## ## .|
++ | ## ## ## ## .|
++ | ## ######## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ############## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ######## .|
++ | ## ## .|
++ | #### ## .|
++ -&gt;|#### ## .|&lt;-
++ | ## ##########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7455 '瑕'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ##########.|
++ |######## ## ##.|
++ | ## ## ## ##.|
++ | ## ## ## ##.|
++ | ## ##########.|
++ | ## ## .|
++ |######## ######.|
++ | ## ####### ##.|
++ | ## ## ## ##.|
++ | ## ## #### .|
++ | ############# .|
++ |#### ## ## .|
++ -&gt;| ## ## #### .|&lt;-
++ | ## ## ## .|
++ | ## ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x751a '甚'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ############## .|
++ | ## ## .|
++ | ## ## .|
++ | ######## .|
++ | ## ## .|
++ | ## ## .|
++ | ######## .|
++ | ## ## .|
++ | ## ## .|
++ |################.|
++ | ## ## ## .|
++ -&gt;| #### ## .|&lt;-
++ | ## .|
++ | ########### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x751f '生'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ############# .|
++ | ## ## .|
++ | ## ## .|
++ |## ## .|
++ | ## .|
++ | ############ .|
++ | ## .|
++ | ## .|
++ | ## .|
++ -&gt;| ## .|&lt;-
++ |################.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7522 '產'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ##############.|
++ | ## ## .|
++ | #### .|
++ | ## ## .|
++ | ##############.|
++ | ## ## .|
++ | ## ## ## .|
++ | ## ########## .|
++ | #### ## .|
++ | ### ## .|
++ | ## ######### .|
++ -&gt;| ## ## .|&lt;-
++ | ## ## .|
++ |## #############.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7528 '用'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ############...|
++ | ## ## ##...|
++ | ## ## ##...|
++ | ## ## ##...|
++ | ############...|
++ | ## ## ##...|
++ | ## ## ##...|
++ | ## ## ##...|
++ | ############...|
++ | ## ## ##...|
++ | ## ## ##...|
++ | ## ## ##...|
++ -&gt;| ## ## ##...|&lt;-
++ | ## ## ####...|
++ |## ## ...|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7531 '由'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 12 x 16
++ Advance: 17
++ Offset: 2 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## ...|
++ |.. ## ...|
++ |.. ## ...|
++ |.. ## ...|
++ |..############...|
++ |..## ## ##...|
++ |..## ## ##...|
++ |..## ## ##...|
++ |..## ## ##...|
++ |..############...|
++ |..## ## ##...|
++ |..## ## ##...|
++ |..## ## ##...|
++ -&gt;|..## ## ##...|&lt;-
++ |..############...|
++ |..## ##...|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7535 '电'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 16
++ Advance: 17
++ Offset: 2 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## .|
++ |.. ## .|
++ |.. ## .|
++ |..############ .|
++ |..## ## ## .|
++ |..## ## ## .|
++ |..## ## ## .|
++ |..############ .|
++ |..## ## ## .|
++ |..## ## ## .|
++ |..## ## ## .|
++ |..############ .|
++ |..## ## ####.|
++ -&gt;|.. ## ##.|&lt;-
++ |.. ## ##.|
++ |.. ########.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x753b '画'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |################.|
++ | .|
++ | .|
++ | ## ######## ## .|
++ | ## ## ## ## ## .|
++ | ## ## ## ## ## .|
++ | ## ######## ## .|
++ | ## ## ## ## ## .|
++ | ## ## ## ## ## .|
++ | ## ## ## ## ## .|
++ | ## ######## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ############## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x754c '界'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ########## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ########## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ########## .|
++ | #### .|
++ | ### ### .|
++ | ##### ##### .|
++ |### ## ## ###.|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7565 '略'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ |###### ###### .|
++ |###### ## ## .|
++ |######### ## .|
++ |####### #### .|
++ |###### ## .|
++ |###### #### .|
++ |###### ## ### .|
++ |######## ###.|
++ |############## .|
++ |###### ## ## .|
++ |## ## ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ####### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x756b '畫'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ############ .|
++ | ## ## .|
++ |################.|
++ | ## ## .|
++ | ############ .|
++ | ## .|
++ | ############## .|
++ | .|
++ | ############ .|
++ | ## ## ## .|
++ | ############ .|
++ | ## ## ## .|
++ -&gt;| ############ .|&lt;-
++ | .|
++ |################.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7570 '異'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ############ .|
++ | ## ## ## .|
++ | ############ .|
++ | ## ## ## .|
++ | ############ .|
++ | ## ## .|
++ | ## ## .|
++ | ############## .|
++ | ## ## .|
++ | ## ## .|
++ |################.|
++ | .|
++ -&gt;| ## ## .|&lt;-
++ | ## ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7576 '當'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ###############.|
++ | ## ##.|
++ |## ############ .|
++ | ## ## .|
++ | ## ## .|
++ | ########## .|
++ | .|
++ | ############ .|
++ | ## ## ## .|
++ | ############ .|
++ -&gt;| ## ## ## .|&lt;-
++ | ############ .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x75b5 '疵'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | #############.|
++ | ## .|
++ |## ## ## ## .|
++ | #### ## ## .|
++ | ######## ## ##.|
++ | ###### #### .|
++ | ############ .|
++ | ######## ## .|
++ |## ###### ## .|
++ | ###### ## .|
++ | ## #### ## ##.|
++ -&gt;| ## ######## ##.|&lt;-
++ | ####### ## ##.|
++ |## ## ####.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x767a '発'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ########### .|
++ | ## ## ## .|
++ | ## ## ## ## .|
++ | #### ### .|
++ | ## ## .|
++ | ## ## .|
++ |################.|
++ | ## ## .|
++ | ## ## .|
++ | ############## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ## ## .|
++ | ### ##### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x767b '登'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ######## ## .|
++ | ###### ## .|
++ | ## ## ## ## .|
++ | #### #### .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ |################.|
++ | ## ## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ############## .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x767c '發'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ########### .|
++ | ## ## ## .|
++ | #### #### .|
++ | ## ## .|
++ | ##### ###### .|
++ |### ## ## #####.|
++ | ## ## ## .|
++ | ####### ### .|
++ | ## .|
++ | ## ####### .|
++ | ###### ## .|
++ | ## ##### .|
++ -&gt;| ## ## .|&lt;-
++ | #### #### .|
++ | ## ### ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x767d '白'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 12 x 16
++ Advance: 17
++ Offset: 2 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.. ## ...|
++ |.. ## ...|
++ |.. ## ...|
++ |..############...|
++ |..## ##...|
++ |..## ##...|
++ |..## ##...|
++ |..## ##...|
++ |..############...|
++ |..## ##...|
++ |..## ##...|
++ |..## ##...|
++ |..## ##...|
++ -&gt;|..## ##...|&lt;-
++ |..############...|
++ |..## ##...|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7684 '的'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## ## ..|
++ |. ## ## ..|
++ |. ## ## ..|
++ |.####### ######..|
++ |.## #### ##..|
++ |.## #### ##..|
++ |.## ### ##..|
++ |.## ## ## ##..|
++ |.####### ## ##..|
++ |.## ## ## ##..|
++ |.## ## ##..|
++ |.## ## ##..|
++ |.## ## ##..|
++ -&gt;|.####### ##..|&lt;-
++ |.## ## #### ..|
++ |. ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x76d8 '盘'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ########## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ |################.|
++ | ## ## .|
++ | ## ## ## .|
++ | ## ###### .|
++ | ## ## .|
++ | ############ .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ -&gt;| ## ## ## ## .|&lt;-
++ |################.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x76e3 '監'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 14
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ####### ## .|
++ | ## ## ## .|
++ | ####### ######.|
++ | ## #### .|
++ | ########### .|
++ | ## ## ## ## .|
++ | ####### ## .|
++ | .|
++ | ############ .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ -&gt;| ## ## ## ## .|&lt;-
++ |################.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x76e4 '盤'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ##### .|
++ | ###### ## ## .|
++ | ## ## ## ## .|
++ | ######## ###.|
++ |############## .|
++ | ## ## ## ## .|
++ | ###### #### .|
++ | ## ## ## .|
++ | ## #### #### .|
++ |## ## ## ###.|
++ | ############ .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ -&gt;| ## ## ## ## .|&lt;-
++ |################.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x76ee '目'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 12 x 15
++ Advance: 17
++ Offset: 2 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |..############...|
++ |..## ##...|
++ |..## ##...|
++ |..## ##...|
++ |..############...|
++ |..## ##...|
++ |..## ##...|
++ |..## ##...|
++ |..############...|
++ |..## ##...|
++ |..## ##...|
++ |..## ##...|
++ -&gt;|..## ##...|&lt;-
++ |..############...|
++ |..## ##...|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x76f4 '直'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ############## .|
++ | ## .|
++ | ########## .|
++ | ## ## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ |################.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x76f8 '相'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ..|
++ | ## #######..|
++ | ## ## ##..|
++ | ## ## ##..|
++ |########## ##..|
++ | ## #######..|
++ | ### ## ##..|
++ | #### ## ##..|
++ | ######## ##..|
++ | #############..|
++ | ## ## ## ##..|
++ |## ## ## ##..|
++ | ## ## ##..|
++ -&gt;| ## ## ##..|&lt;-
++ | ## #######..|
++ | ## ## ##..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x770b '看'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ###### .|
++ | ######## .|
++ | ## .|
++ | ############ .|
++ | ## .|
++ |################.|
++ | ## .|
++ | ## .|
++ | ########## .|
++ | #### ## .|
++ | ## ######### .|
++ |## ## ## .|
++ | ######### .|
++ -&gt;| ## ## .|&lt;-
++ | ######### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7720 '眠'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 15
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |. ######## .|
++ |.######## ## .|
++ |.## #### ## .|
++ |.## #### ## .|
++ |.############## .|
++ |.## #### ## .|
++ |.## #### ## .|
++ |.###############.|
++ |.## #### ## .|
++ |.## #### ## .|
++ |.## #### ## .|
++ |.######## ## ##.|
++ -&gt;|.## ###### ####.|&lt;-
++ |. ### ###.|
++ |. ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x77e2 '矢'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ########### .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## .|
++ |################.|
++ | ## .|
++ | #### .|
++ | #### .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ### ### .|
++ |### ###.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x77e5 '知'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ..|
++ | ## ..|
++ | ## ######..|
++ | ####### ## ##..|
++ | ## ## ## ##..|
++ |## ## ## ##..|
++ | ## ## ##..|
++ | ## ## ##..|
++ |########### ##..|
++ | ## ## ##..|
++ | #### ## ##..|
++ | #### ## ##..|
++ | ## ## ######..|
++ -&gt;| ## ## ## ##..|&lt;-
++ | ## ## ..|
++ |## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x77ed '短'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## #########.|
++ | ##### .|
++ | #### .|
++ |## ## ####### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ |########## ## .|
++ | ## ####### .|
++ | ## .|
++ | ## ## ## .|
++ | #### ## ## .|
++ | ## ## ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## #########.|
++ |## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7801 '码'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ####### .|
++ |####### ## .|
++ | ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ##### ## ## .|
++ | ### ## ########.|
++ | ### ## ##.|
++ |#### ## ##.|
++ | ## ## ##.|
++ | ## ###########.|
++ | ##### ##.|
++ -&gt;| ## ## ##.|&lt;-
++ | ## #### .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x786c '硬'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | #########.|
++ |####### ## .|
++ | ## ## .|
++ | ## ######## .|
++ | ## ## ## ## .|
++ | ####### ## ## .|
++ | ### ########## .|
++ | ### #### ## ## .|
++ |#### #### ## ## .|
++ | ## ########## .|
++ | ## #### ## .|
++ | ##### #### .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ##### .|
++ | ### ####.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x786e '确'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ |####### ###### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ##########.|
++ | ##### ## ## ##.|
++ | ### ## ## ## ##.|
++ | ### ## ########.|
++ |#### ## ## ## ##.|
++ | ## ## ## ## ##.|
++ | ## ## ########.|
++ | ##### ## ## ##.|
++ -&gt;| ## #### ## ##.|&lt;-
++ | ## ## ####.|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x789f '碟'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | #### ## .|
++ |########## ## .|
++ | ## ###########.|
++ | ## #### ## .|
++ | ## #### ## .|
++ | ############ .|
++ |### #### .|
++ | ## ########### .|
++ | ## ## ## .|
++ | ## ############.|
++ | ## ## #### .|
++ | ##### ###### .|
++ -&gt;| ## ## ## ## .|&lt;-
++ | ### ## ###.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x78b0 '碰'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ |###### .|
++ | ## ######### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ##### ## ## ##.|
++ | ## ### ## ## ##.|
++ |### ###### #### .|
++ | ## ###### ### .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ##### ## ## .|
++ -&gt;| ## ## ## ## .|&lt;-
++ | ###########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x78ba '確'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ |################.|
++ | ## ###### ##.|
++ | ## ## ## .|
++ | ## #########.|
++ | ##### ## ## .|
++ | ## ##### ## .|
++ |### ############.|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## #########.|
++ | ##### ## ## .|
++ -&gt;| ## ## ## ## .|&lt;-
++ | #########.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x78bc '碼'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | #########.|
++ |###### ## ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ | ## ######## .|
++ | ##### ## ## .|
++ | ## ## ## ## .|
++ |### ## #########.|
++ | ## ## ##.|
++ | ## ############.|
++ | ## ############.|
++ | ###############.|
++ -&gt;| ## #### ##.|&lt;-
++ | #### .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x78c1 '磁'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ |##### ## ## .|
++ | ## ###########.|
++ | ## ## ## .|
++ | ## ## ## .|
++ | #### ## ## .|
++ |##### #### #### .|
++ | ###### #### ## .|
++ | ######## #### .|
++ | #### ## ## .|
++ | #### ## ## .|
++ | #### ## ## .|
++ -&gt;| ###### #### ## .|&lt;-
++ | ########## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x793a '示'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ############ .|
++ | .|
++ | .|
++ | .|
++ | .|
++ |################.|
++ | ## .|
++ | ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ##.|
++ -&gt;|## ## ##.|&lt;-
++ | #### .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7981 '禁'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ############## .|
++ | ## ## .|
++ | #### #### .|
++ | ############ .|
++ |### ## ## ###.|
++ | .|
++ | ############ .|
++ | .|
++ | .|
++ |################.|
++ | ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## #### ## .|
++ | ## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x79bb '离'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ |################.|
++ | .|
++ | #### #### .|
++ | ## #### ## .|
++ | #### #### .|
++ | ########## .|
++ | ## .|
++ | ############## .|
++ | ## ## ## .|
++ | ## ## ## ## .|
++ | ## ######## ## .|
++ -&gt;| ## ## ## ## .|&lt;-
++ | ## #### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x79f0 '称'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | #### ## .|
++ |##### ## .|
++ | ## ########.|
++ | ## ## ##.|
++ |######### ## .|
++ | ## ## ## .|
++ | ### ## .|
++ | #### ###### .|
++ | ###### #### ## .|
++ | #### ## ## ## .|
++ |## ## ## ## ##.|
++ | ## ## ## ##.|
++ -&gt;| ## ## .|&lt;-
++ | ## #### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x79fb '移'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | #### ## .|
++ |##### ###### .|
++ | ## ## ## .|
++ | ## #### ## .|
++ |####### ### .|
++ | ## ## .|
++ | ### ## ## .|
++ | #### ### ## .|
++ | ###### ######.|
++ | ###### ## ##.|
++ |## ## ##### ## .|
++ | ## ### .|
++ -&gt;| ## ## .|&lt;-
++ | ## ### .|
++ | ## ### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7a0b '程'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ########### .|
++ |##### ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ |############### .|
++ | ## .|
++ | #### .|
++ | ############# .|
++ | ###### ## .|
++ | #### ## .|
++ |## ## ######## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## ## .|
++ | #############.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7a0d '稍'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ..|
++ | ###### ## ##..|
++ |##### #### ##..|
++ | ## ###### ..|
++ | ## ## ..|
++ |###############..|
++ | ## ## ##..|
++ | ### ## ##..|
++ | #### ########..|
++ | ######## ##..|
++ | ######## ##..|
++ |## ## ########..|
++ | ## ## ##..|
++ -&gt;| ## ## ##..|&lt;-
++ | ## ## ####..|
++ | ## ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7a2e '種'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | #### ##### .|
++ |##### ##### .|
++ | ## ## .|
++ | ## ##########.|
++ |####### ## .|
++ | ## ######## .|
++ | ### ## ## ## .|
++ | #### ######## .|
++ | ######## ## ## .|
++ | ############## .|
++ |## ## ## .|
++ | ## ######## .|
++ -&gt;| ## ## .|&lt;-
++ | ## ##########.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7a31 '稱'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## #####.|
++ | ######### .|
++ |##### ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## .|
++ |####### ## .|
++ | ## ######## .|
++ | #### ## ## ## .|
++ | ####### ## ## .|
++ | ############## .|
++ | #### ## ## ## .|
++ |## ## ## ## ## .|
++ | ## ##########.|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ## #### .|
++ | ## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7a7a '空'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ###############.|
++ | ## ##.|
++ |## ## ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | .|
++ | ########## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ## .|
++ -&gt;| ## .|&lt;-
++ | ############## .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7acb '立'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ## .|
++ | .|
++ | ############## .|
++ | .|
++ | ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| .|&lt;-
++ |################.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7ad9 '站'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ####### ## .|
++ | ######.|
++ | ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ########## .|
++ | #### ## ## .|
++ | #### ## ## .|
++ | ##### ## .|
++ |##### ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ######## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7aef '端'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ |######### ## ## .|
++ | ######## .|
++ | ## .|
++ |## ############.|
++ |## ## ## .|
++ | ## ## ## .|
++ | ## ## ######## .|
++ | #### ######## .|
++ | #### ######## .|
++ | ############ .|
++ -&gt;|#### ######## .|&lt;-
++ | ## ######## .|
++ | ## ### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7b2c '第'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ##############.|
++ | ## ## ## ## .|
++ |## #### ## .|
++ | ############ .|
++ | ## ## .|
++ | ## ## .|
++ | ############ .|
++ | ## ## .|
++ | ## ## .|
++ | ############# .|
++ | ### ## .|
++ | #### ## .|
++ -&gt;| ### ## #### .|&lt;-
++ |#### ## ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7b46 '筆'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ##############.|
++ | ## ## ## ## .|
++ |## #### ## .|
++ | ########### .|
++ | ## ## .|
++ |################.|
++ | ## ## .|
++ | ########### .|
++ | ## .|
++ | ############ .|
++ | ## .|
++ -&gt;|################.|&lt;-
++ | ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7b49 '等'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ##############.|
++ | ## ## ## ## .|
++ |## #### ## .|
++ | ## .|
++ | ############ .|
++ | ## .|
++ | ## .|
++ |################.|
++ | .|
++ | ## .|
++ | ############## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## #### .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7b56 '策'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ##############.|
++ | ## ## ## ## .|
++ |## #### ## .|
++ | ## .|
++ |################.|
++ | ## .|
++ | ############ .|
++ | ## ## ## .|
++ | ## #### ## .|
++ | ## ######### .|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ### ## ### .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7b80 '简'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ##############.|
++ | ## ## ## ## .|
++ |## #### ## .|
++ | ## .|
++ | ########## .|
++ | ## ## .|
++ | ## ###### ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ###### ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ -&gt;| ## ###### ## .|&lt;-
++ | ## ## .|
++ | ## ### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7b97 '算'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ###### #######.|
++ | ## ## ## ## .|
++ |## .|
++ | ############ .|
++ | ## ## .|
++ | ############ .|
++ | ## ## .|
++ | ############ .|
++ | ## ## .|
++ | ############ .|
++ | ## ## .|
++ |################.|
++ -&gt;| ## ## .|&lt;-
++ | ## ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7ba1 '管'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ##############.|
++ | ## ## ## ## .|
++ |## #### ## .|
++ | ## .|
++ | ###############.|
++ | ## ##.|
++ |## ######### ## .|
++ | ## ## .|
++ | ######### .|
++ | ## .|
++ | ########## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ########## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7bad '箭'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ##############.|
++ | ## ## ## ## .|
++ |## #### ## .|
++ | ## ## .|
++ | ## ## .|
++ |################.|
++ | .|
++ | ###### ## ## .|
++ | ## ## ## ## .|
++ | ###### ## ## .|
++ | ## ## ## ## .|
++ | ###### ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ###### #### .|
++ | ## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7c21 '簡'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ##############.|
++ | ## ## ## ## .|
++ |## #### ## .|
++ | ###### ###### .|
++ | ## ## ## ## .|
++ | ###### ###### .|
++ | ## ## ## ## .|
++ | ###### ###### .|
++ | ## ## .|
++ | ## ######## ## .|
++ | ## ## ## ## .|
++ | ## ######## ## .|
++ -&gt;| ## ## ## ## .|&lt;-
++ | ## ######## ## .|
++ | ## ### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7c7b '类'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## .|
++ | ############## .|
++ | ###### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ### ## .|
++ | ## .|
++ |################.|
++ | #### .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ### ### .|
++ |### ###.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7cfb '系'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ###### ..|
++ |. ####### ..|
++ |. ## ..|
++ |. ## ## ..|
++ |. ## ## ..|
++ |. ######## ..|
++ |. ## ..|
++ |. ### ## ..|
++ |. ### ## ..|
++ |.##############..|
++ |. ## ##..|
++ |. ## ## ## ..|
++ |. ## ## ## ..|
++ -&gt;|. ## ## ## ..|&lt;-
++ |.## #### ##..|
++ |. ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7d20 '素'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ############ .|
++ | ## .|
++ | ########## .|
++ | ## .|
++ |################.|
++ | ## .|
++ | ## ## .|
++ | ######## .|
++ | ### .|
++ | ### ## .|
++ | ############ .|
++ | ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## #### ## .|
++ | ## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7d22 '索'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ############ .|
++ | ## .|
++ | ## .|
++ | ###############.|
++ | ## ## ##.|
++ |## ## ## ## .|
++ | ######## .|
++ | ### .|
++ | ### ## .|
++ | ############ .|
++ | ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## #### ## .|
++ | ## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7d30 '細'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ..|
++ | ## ..|
++ | ## ########..|
++ | ## #### ## ##..|
++ | ## #### ## ##..|
++ |###### ## ## ##..|
++ | ## ## ## ##..|
++ | ## ## ## ##..|
++ | ## ## ########..|
++ |######### ## ##..|
++ | #### ## ##..|
++ | ## ## ##..|
++ | ######## ## ##..|
++ -&gt;| ######## ## ##..|&lt;-
++ |## ########..|
++ | ## ##..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7d42 '終'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ###### .|
++ | #### ## ## .|
++ | ## ## ### ## .|
++ |##### ## #### .|
++ | ## ## .|
++ | ## #### .|
++ | ## ## ## ## .|
++ |######### ###.|
++ | ## ### .|
++ | ## .|
++ |###### ## .|
++ -&gt;|###### ### .|&lt;-
++ |## ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7d44 '組'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ####### .|
++ | ## ## ## .|
++ | ## #### ## .|
++ | ## #### ## .|
++ |###### ####### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## ## .|
++ |############## .|
++ | #### ## .|
++ | ## ## .|
++ |###### ## ## .|
++ -&gt;|###### ## ## .|&lt;-
++ |## ###########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7d4c '経'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## #### .|
++ |###### ## .|
++ | ## #### .|
++ | ## ## ## .|
++ | ## ##### ## ###.|
++ |####### ## .|
++ | ########## .|
++ | ## .|
++ | ###### ## .|
++ -&gt;| ###### ## .|&lt;-
++ |## ##########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7d50 '結'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ##############.|
++ | ## ## ## .|
++ |##### ## .|
++ | ## ######## .|
++ | ## .|
++ | ## ## .|
++ |############### .|
++ | #### ## .|
++ | ## ## .|
++ | ######## ## .|
++ -&gt;| ######## ## .|&lt;-
++ |## ######## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7d55 '絕'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ######### .|
++ | ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ |###### ## #### .|
++ | ## ## ## .|
++ | ## ######## .|
++ | ## ## ## ## ## .|
++ |######### ## ## .|
++ | ########## .|
++ | ## .|
++ | ######## ##.|
++ -&gt;| ######## ##.|&lt;-
++ |## ########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7d66 '給'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## #### .|
++ | ## ## ## ## .|
++ | ## #### ## .|
++ |######## ##.|
++ | ## ######## .|
++ | ## .|
++ | ## ## .|
++ |############### .|
++ | #### ## .|
++ | ## ## .|
++ | ######## ## .|
++ -&gt;| ######## ## .|&lt;-
++ |## ######## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7d71 '統'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ##############.|
++ | ## ## ## .|
++ |##### ## ## .|
++ | ## ## ## .|
++ | ## ##########.|
++ | ## ## ## ## ##.|
++ |####### ## ## .|
++ | ## ## ## .|
++ | ## ## .|
++ | ######## ## ##.|
++ -&gt;| ######## ## ##.|&lt;-
++ |## ## ####.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7d93 '經'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## #########.|
++ | ## .|
++ | #### ## ## ##.|
++ | ## ## ## ## ## .|
++ |##### ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ##.|
++ | ## ## .|
++ |################.|
++ | ## ## .|
++ | ## .|
++ | ###### ## .|
++ -&gt;| ###### ## .|&lt;-
++ |## ##########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7d9a '続'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ##########.|
++ | #### ## .|
++ | ## ## ######## .|
++ |##### .|
++ | ## ##########.|
++ | ## ## ##.|
++ | ## ### ## .|
++ |###### ## ## .|
++ | ## ## ## .|
++ | ## ## .|
++ |###### ## ## .|
++ -&gt;|###### ## ## ##.|&lt;-
++ |## ## ## ##.|
++ | ## ####.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7dad '維'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## #### .|
++ | ## ## ## .|
++ | ## ## .|
++ | ## ###########.|
++ | ## #### ## .|
++ |######### ## .|
++ | ############ .|
++ | ## ## ## .|
++ | ## ## ## ## .|
++ |############### .|
++ | #### ## .|
++ | ## ## .|
++ | ######## ## .|
++ -&gt;| ###############.|&lt;-
++ |## ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7db2 '網'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## #########.|
++ | ## ## ##.|
++ | ## ### ####.|
++ | ## ## ###### ##.|
++ |###### #########.|
++ | ## ## ## ##.|
++ | ## ## ## ##.|
++ | ## #########.|
++ | ## ## #### ##.|
++ |########### ##.|
++ | #########.|
++ | ######## ##.|
++ -&gt;| ######## ##.|&lt;-
++ | ######## ####.|
++ |## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7dda '線'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ######## .|
++ | #### ## ## .|
++ | ## ## ######## .|
++ |##### ## ## .|
++ | ## ######## .|
++ | ## ## .|
++ | ## ## ### ##.|
++ |############### .|
++ | ## ###### .|
++ | ## #### .|
++ |###### ## ## ## .|
++ -&gt;|######## ## ## .|&lt;-
++ |## ## #### ##.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7de8 '編'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## #########.|
++ | ## #### ##.|
++ | ## #### ##.|
++ |###### #########.|
++ | ## ## .|
++ | ## ## .|
++ | ## ## #########.|
++ |################.|
++ | ###########.|
++ | ##########.|
++ |################.|
++ -&gt;|################.|&lt;-
++ |## ## #### ##.|
++ | ## ###.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7df4 '練'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ##########.|
++ | ## ## ## .|
++ | ## ########## .|
++ |###### ## ## ## .|
++ | ## ######## .|
++ | ## ######## .|
++ | ## ## ## ## ## .|
++ |############### .|
++ | ## ## .|
++ | #### .|
++ | ###### ###### .|
++ -&gt;| ######## ## ## .|&lt;-
++ |## ## ## ##.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7e2e '縮'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ##########.|
++ | ###### ##.|
++ | ## ## ## .|
++ |##### ########.|
++ | ## ## ## .|
++ | ## ### ## .|
++ | ## ########### .|
++ |###### #### ## .|
++ | ## #### ## .|
++ | ######## .|
++ |###### #### ## .|
++ -&gt;|###### #### ## .|&lt;-
++ |## ######## .|
++ | #### ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7e41 '繁'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ####### ## .|
++ | ## ######.|
++ |######## ## ## .|
++ | ############ .|
++ |######### #### .|
++ | ## #### ## .|
++ | ######## #### .|
++ | ## ## ###.|
++ | ## ## .|
++ | ###### .|
++ | ## ## .|
++ | ############ .|
++ -&gt;| ## ## .|&lt;-
++ | ###### ## .|
++ | ## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7e7c '繼'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ## .|
++ | ## #### ## .|
++ | ## ##########.|
++ | ###### ## ####.|
++ | ## ######## ## .|
++ |##### ##########.|
++ | ## ## ## ##.|
++ | ## ##########.|
++ | ## #### ## ## .|
++ |########## ## .|
++ | ############.|
++ | ## ## ####.|
++ |############ ## .|
++ -&gt;|################.|&lt;-
++ |## ## ## ##.|
++ | ##########.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7e8c '續'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ##########.|
++ | ## ## .|
++ | #### ######## .|
++ | ## ## .|
++ |##### ##########.|
++ | ## ## #### ##.|
++ | ## ##########.|
++ | ## ## ## ## .|
++ |############### .|
++ | #### ## .|
++ | ######## .|
++ | ######## ## .|
++ -&gt;| ############## .|&lt;-
++ |## ## ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7edc '络'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ###### .|
++ | ## ## ## .|
++ | ## ##### ## .|
++ |####### #### .|
++ | ## ## .|
++ | ## #### .|
++ | ## ## ### .|
++ |######## ###.|
++ | ## ######### .|
++ | ## ## .|
++ | ### ## ## .|
++ -&gt;|#### ## ## .|&lt;-
++ | ## ####### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7edf '统'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ##########.|
++ | ## ## ## .|
++ |###### ## ## .|
++ | ## ## ## .|
++ | ## ##########.|
++ | ## ## ## ##.|
++ |###### ## ## .|
++ | ## ## ## .|
++ | ## ## .|
++ | ### ## ## ##.|
++ -&gt;|#### ## ## ##.|&lt;-
++ | ## ## ####.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7ee7 '继'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ### ## ## .|
++ | ## ########## .|
++ |##### ## ## .|
++ | ## ######### .|
++ | ## ## ## .|
++ | ## ## #### .|
++ |############## .|
++ | ## ### ## ## .|
++ | ## ## .|
++ | ##### ## .|
++ -&gt;|#### ## ## .|&lt;-
++ | ## ##########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7eed '续'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ |################.|
++ | ## ##.|
++ | ## ## #### .|
++ | ## #### .|
++ |######### ## .|
++ | ## ## ## .|
++ | ##########.|
++ | #### #### .|
++ -&gt;|#### ## ## .|&lt;-
++ | ## ## ##.|
++ | ### ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7f51 '网'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 15
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.##############..|
++ |.## ##..|
++ |.## ##..|
++ |.## ## ####..|
++ |.#### #### ####..|
++ |.## #### ######..|
++ |.## ## ## ##..|
++ |.## ## ## ##..|
++ |.## #### ######..|
++ |.## #### ######..|
++ |.#### #### ####..|
++ |.### ## ##..|
++ -&gt;|.## ##..|&lt;-
++ |.## ####..|
++ |.## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7f69 '罩'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ############## .|
++ | ## ## ## ## .|
++ | ############## .|
++ | ## .|
++ | ######## .|
++ | ## .|
++ | ############ .|
++ | ## ## .|
++ | ############ .|
++ | ## ## .|
++ | ############ .|
++ | ## .|
++ -&gt;|################.|&lt;-
++ | ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7f6e '置'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ############## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ############## .|
++ | ## .|
++ |################.|
++ | ## .|
++ | ########## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ -&gt;| ########## .|&lt;-
++ | ## ## .|
++ |################.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7fa9 '義'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ############## .|
++ | ## .|
++ | ############ .|
++ | ## .|
++ |################.|
++ | ## ## .|
++ | ##### #### .|
++ | ## ## ## .|
++ |################.|
++ | ## ## ## .|
++ | #### #### .|
++ -&gt;| ##### ## ## .|&lt;-
++ | ## ###### .|
++ | ### ### ### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x7ffb '翻'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | #### ..|
++ |##### ########..|
++ |## ## ## ## ##..|
++ | ###### ## ##..|
++ |###############..|
++ | #### ### ###..|
++ | ###### ## ##..|
++ |## ## ## ##..|
++ | ###### ## ###..|
++ | ###### #######..|
++ | ########### ##..|
++ | ###### ## ##..|
++ | ###### ## ##..|
++ -&gt;| ###### ## ##..|&lt;-
++ | ##############..|
++ | ## ## ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8003 '考'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## .|
++ | ########### .|
++ | ## ## .|
++ | ## ## .|
++ |################.|
++ | ## .|
++ | ## .|
++ | ########## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ######## .|
++ |## ## .|
++ -&gt;| ## .|&lt;-
++ | #### .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8005 '者'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## .|
++ | ########### .|
++ | ## ## .|
++ | ## ## .|
++ |################.|
++ | ## .|
++ | ## .|
++ | ######### .|
++ | ### ## .|
++ | #### ## .|
++ | ## ######### .|
++ |## ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ######### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x800c '而'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 15
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.##############..|
++ |. ## ..|
++ |. ## ..|
++ |. ## ..|
++ |. ############ ..|
++ |. ## ## ## ## ..|
++ |. ## ## ## ## ..|
++ |. ## ## ## ## ..|
++ |. ## ## ## ## ..|
++ |. ## ## ## ## ..|
++ |. ## ## ## ## ..|
++ |. ## ## ## ## ..|
++ -&gt;|. ## ## ## ## ..|&lt;-
++ |. ## #### ..|
++ |. ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8010 '耐'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ |########## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ########.|
++ | ######## ## .|
++ | ######## ## .|
++ | ######## ## .|
++ | ########## ## .|
++ | ######## #### .|
++ | ######## #### .|
++ | ######## ## .|
++ | ######## ## .|
++ -&gt;| ######## ## .|&lt;-
++ | ## ## #### .|
++ | ## ### ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x806f '聯'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ |########### ####.|
++ | ## #### #### ##.|
++ | ## ###### #### .|
++ | ##### ## ## .|
++ | ## #### #### ##.|
++ | ## ############.|
++ | ##### ## ##.|
++ | ## ## ## ## .|
++ | ## ###### ## ##.|
++ | ## ###### ## ##.|
++ | ######### #####.|
++ |### ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ## ## .|
++ | ## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x80fd '能'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ |############# .|
++ | #### .|
++ | ## ##.|
++ | ####### ## ##.|
++ | ## ## ######.|
++ | ## ## .|
++ | ####### ## ## .|
++ | ## ## ## ## .|
++ | ## ## #### .|
++ | ####### ## .|
++ -&gt;| ## ## ## ##.|&lt;-
++ | ## #### ## ##.|
++ | ## ## ######.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8166 '腦'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ##.|
++ | ##### ## ## ## .|
++ | ## #### ## ## .|
++ | ## ## ## ## ## .|
++ | ## ## ## ## ##.|
++ | ##### ## .|
++ | ## ## ## .|
++ | ## ############.|
++ | ## #### ##.|
++ | ######### ####.|
++ | ## #### #### ##.|
++ | ## #### ## ##.|
++ | ## #### #### ##.|
++ -&gt;| ## ###### ####.|&lt;-
++ | ## ############.|
++ |## ##### ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x81e8 '臨'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## .|
++ |.####### ## .|
++ |.## ## #######.|
++ |.## ## ## .|
++ |.## ## ## .|
++ |.####### ###### .|
++ |.## ## ## ## .|
++ |.## ## ## ## .|
++ |.## ## ###### .|
++ |.####### .|
++ |.## ## ########.|
++ |.## ## ########.|
++ |.## ## ########.|
++ -&gt;|.## ## ########.|&lt;-
++ |.###############.|
++ |. ########.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x81ea '自'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 10 x 16
++ Advance: 17
++ Offset: 3 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |... ## ....|
++ |... ## ....|
++ |... ## ....|
++ |...##########....|
++ |...## ##....|
++ |...## ##....|
++ |...## ##....|
++ |...##########....|
++ |...## ##....|
++ |...## ##....|
++ |...##########....|
++ |...## ##....|
++ |...## ##....|
++ -&gt;|...## ##....|&lt;-
++ |...##########....|
++ |...## ##....|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x81f3 '至'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 14
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ############## .|
++ | ## .|
++ | ## .|
++ | ## ## .|
++ | ## ## .|
++ | ############ .|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ############ .|
++ | ## .|
++ | ## .|
++ -&gt;| ## .|&lt;-
++ |################.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8207 '與'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | #### .|
++ | ### ## #### .|
++ | ## #### ## .|
++ | ## ## ## .|
++ | ###### #### .|
++ | ## #### ## .|
++ | ## ## ## .|
++ | ############ .|
++ | ## #### ## .|
++ | ## #### ## .|
++ |################.|
++ | .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x820a '舊'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ |################.|
++ | ## ## ## .|
++ | ############ .|
++ | ### ## .|
++ | ############# .|
++ |## ## ## .|
++ | ########### .|
++ | ## ## .|
++ | ############ .|
++ | ## .|
++ | #### ##### .|
++ | ## ## .|
++ -&gt;| ##### ##### .|&lt;-
++ | ## ## .|
++ | ########### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x822c '般'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ##### .|
++ | ###### ## ## .|
++ | ## ## ## ## .|
++ | ### ## ## ## .|
++ | ######## ###.|
++ | ###### .|
++ |############### .|
++ | ## ## ## ## .|
++ | ### ## ## ## .|
++ | ###### #### .|
++ | ###### #### .|
++ | ## ## ## .|
++ -&gt;| ## ## #### .|&lt;-
++ | ## #### ## ## .|
++ |## ##### ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x82e5 '若'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ |################.|
++ | ## ## .|
++ | #### ## .|
++ | ## .|
++ |################.|
++ | ## .|
++ | ## .|
++ | ########## .|
++ | #### ## .|
++ | ## ## ## .|
++ |## ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ######### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x83dc '菜'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ |################.|
++ | ## ## .|
++ | ## .|
++ | ###### .|
++ | ####### .|
++ | ## ## ## .|
++ | ## ## .|
++ | ## .|
++ | ############## .|
++ | ###### .|
++ | ## ## ## .|
++ -&gt;| ### ## ### .|&lt;-
++ |### ## ###.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8655 '處'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ####### .|
++ | ## .|
++ | ##############.|
++ | ## ## ##.|
++ | ## ###### .|
++ | ####### ## .|
++ | ## ####### .|
++ | ## ## .|
++ | ## ## #### .|
++ | ## ######### .|
++ | #### ########.|
++ | ####### ######.|
++ -&gt;| ## ## ## ###.|&lt;-
++ | ## ##### .|
++ |## ### #######.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x865f '號'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ##### ######.|
++ | ## ## ## .|
++ | ## ## #########.|
++ | ## ## ## ## ##.|
++ | ##### ## #### .|
++ | ##### .|
++ |######### ## ##.|
++ | ## ## #####.|
++ | ## ## .|
++ | ##### ####### .|
++ | ## #### ## .|
++ | ## #### ## .|
++ -&gt;| #### ## ####.|&lt;-
++ | #### ## ## ####.|
++ | ## ## ## ###.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x87a2 '螢'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ########## ## .|
++ | ## ##### #### .|
++ | #### #### .|
++ | ## #### ## .|
++ | ###############.|
++ | ## ## ##.|
++ |## ## ## .|
++ | ########## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ########## .|
++ | ## .|
++ -&gt;| ## ## .|&lt;-
++ | ############## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x884c '行'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ######## .|
++ | ## .|
++ | ## .|
++ | ## ## .|
++ | ## .|
++ | ## ##########.|
++ | ### ## .|
++ | #### ## .|
++ |## ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ## #### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8868 '表'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ############## .|
++ | ## .|
++ | ## .|
++ | ############ .|
++ | ## .|
++ | ## .|
++ |################.|
++ | #### .|
++ | ## ## ## .|
++ | ### #### .|
++ | #### ## .|
++ -&gt;|### ## ## ### .|&lt;-
++ | #### ###.|
++ | ### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x88ab '被'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## .|
++ |###### #########.|
++ | ## ## ## ##.|
++ | ## ## #### .|
++ | ###### ## .|
++ | #### ######## .|
++ | ########## ## .|
++ |## ## #### ## .|
++ | ## ## #### .|
++ | ## ## #### .|
++ | ## ## ## .|
++ -&gt;| ## ## #### .|&lt;-
++ | ## ## ## ## .|
++ | #### ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x88c5 '装'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## ## .|
++ | ##############.|
++ | ## ## .|
++ | ### ## .|
++ | #### ## .|
++ |### ## ######## .|
++ | #### .|
++ | ## .|
++ |################.|
++ | #### .|
++ | ### ## ## .|
++ | ##### #### .|
++ -&gt;|### #### ### .|&lt;-
++ | ### ####.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x88dd '裝'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ##### ## .|
++ | ########## .|
++ |####### ## .|
++ | ## ## ## .|
++ | ## ## ###### .|
++ | ## ### .|
++ | ## .|
++ |################.|
++ | #### .|
++ | ### ## ## .|
++ | ##### #### .|
++ -&gt;|### #### ### .|&lt;-
++ | ### ####.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8981 '要'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 15
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.##############..|
++ |. ## ## ..|
++ |. ## ## ..|
++ |. ############ ..|
++ |. ## ## ## ## ..|
++ |. ## ## ## ## ..|
++ |. ############ ..|
++ |. ## ..|
++ |.##############..|
++ |. ## ## ..|
++ |. ## ## ..|
++ |. #### ## ..|
++ -&gt;|. #### ..|&lt;-
++ |. ### #### ..|
++ |. #### ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x898b '見'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ########## .|
++ | ## ## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| ## ## ##.|&lt;-
++ | ### ## ##.|
++ |### ######.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8996 '視'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ |###### ## ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | #### ######## .|
++ | ######## ## .|
++ |## ###### ## .|
++ | ## ######## .|
++ | ## #### .|
++ | ## ## ## .|
++ -&gt;| ## ## ## ##.|&lt;-
++ | ## ## ## ##.|
++ | ## ## ####.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x89a7 '覧'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ####### ## .|
++ | ## ## ## .|
++ | ####### ######.|
++ | ## #### .|
++ | ########### .|
++ | ## ## ## ## .|
++ | ############ .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ########## .|
++ -&gt;| ## ## ##.|&lt;-
++ | ### ## ##.|
++ |#### ######.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x89bd '覽'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ####### ## .|
++ | ## ## #######.|
++ | ######### ## .|
++ | ## ### ## .|
++ | ###############.|
++ | ## ## ########.|
++ | ###############.|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ########## .|
++ -&gt;| ## ## ##.|&lt;-
++ | ### ## ##.|
++ |#### ######.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x89c6 '视'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ |###### ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | #### ## ## ## .|
++ | ######## ## ## .|
++ |## ############ .|
++ | ## #### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ## ## ## ##.|&lt;-
++ | ## ## ## ##.|
++ | #### ####.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x89e3 '解'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ####### .|
++ | ##### ## ## .|
++ | ## ## ## ## .|
++ | ## ## ###### .|
++ |########## ## .|
++ | ###### ## .|
++ | ###### #### .|
++ | ###### ###### .|
++ | ######## ## .|
++ | ###### ## .|
++ | ##############.|
++ | ###### ## .|
++ -&gt;| ## #### ## .|&lt;-
++ | ## ## ## .|
++ |## ### ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8a00 '言'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ |################.|
++ | .|
++ | .|
++ | ############ .|
++ | .|
++ | .|
++ | ############ .|
++ | .|
++ | .|
++ | ############ .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ############ .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8a08 '計'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ |######## ## .|
++ | ## .|
++ | ###### ## .|
++ | ##########.|
++ | ###### ## .|
++ | ## .|
++ | ###### ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ###### ## .|&lt;-
++ | ## ## ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8a0a '訊'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ####### .|
++ | ## ## .|
++ |####### ## ## .|
++ | ## ## .|
++ | ##### ## ## .|
++ | ## ## .|
++ | ############ .|
++ | ## ## .|
++ | ##### ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## ##.|
++ | ## ## ## ####.|
++ -&gt;| ##### ## ####.|&lt;-
++ | ## ## ## ###.|
++ | ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8a18 '記'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ## ####### .|
++ |######## ## .|
++ | ## .|
++ | ###### ## .|
++ | ## .|
++ | ###### ####### .|
++ | ## ## .|
++ | ###### ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## ##.|
++ -&gt;| ###### ## ##.|&lt;-
++ | ## ## #######.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8a2d '設'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ###### .|
++ | ## ## ## .|
++ |########## ## .|
++ | ## ## .|
++ | ######## ###.|
++ | ## .|
++ | ############## .|
++ | ## ## .|
++ | ###### ## ## .|
++ | ## ## ## ## .|
++ | ## ## #### .|
++ | ## ## ## .|
++ -&gt;| ###### #### .|&lt;-
++ | ## ## ## ## .|
++ | ### ###.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8a31 '許'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## .|
++ |############### .|
++ | ## ## .|
++ | ####### ## .|
++ | ## .|
++ | ##### ## .|
++ | ##########.|
++ | ##### ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ##### ## .|&lt;-
++ | ## ## ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8a3c '証'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ##########.|
++ |####### ## .|
++ | ## .|
++ | ##### ## .|
++ | ## ## .|
++ | ##### ## ## .|
++ | ## ##### .|
++ | ##### ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ -&gt;| ##### ## ## .|&lt;-
++ | ## ###########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8a62 '詢'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ..|
++ | ## ## ..|
++ | ########..|
++ |######### ##..|
++ | ## ##..|
++ | ##### ##### ##..|
++ | ## ## ##..|
++ | ##### ## ## ##..|
++ | ##### ##..|
++ | ##### ## ## ##..|
++ | ## ## ## ## ##..|
++ | ## ## ##### ##..|
++ | ## ## ## ##..|
++ -&gt;| ##### ##..|&lt;-
++ | ## ## #### ..|
++ | ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8a66 '試'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## #### .|
++ | ## ##.|
++ |####### ## .|
++ | ##########.|
++ | ##### ## .|
++ | ## .|
++ | ##### ###### .|
++ | ## ## .|
++ | ##### ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ########.|
++ -&gt;| ######### ####.|&lt;-
++ | ## ## ###.|
++ | ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8a73 '詳'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## .|
++ |####### .|
++ | ##########.|
++ | ##### ## .|
++ | ## .|
++ | ##### ######## .|
++ | ## .|
++ | ##### ## .|
++ | ## ############.|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| ##### ## .|&lt;-
++ | ## ## ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8a8d '認'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ######### .|
++ | ## ## .|
++ |########### ## .|
++ | #### ## .|
++ | ######### ## .|
++ | ## #### .|
++ | ##### ## ## .|
++ | ## ## .|
++ | ##### ## .|
++ | ## ## #### ## .|
++ | ## ###### ##.|
++ | ## ###### ####.|
++ -&gt;| ######### ####.|&lt;-
++ | ## ## ##### .|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8a9e '語'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ######### .|
++ | ## .|
++ |####### ## .|
++ | ####### .|
++ | ##### ## ## .|
++ | ## ## .|
++ | ###############.|
++ | .|
++ | ##### .|
++ | ## ## ####### .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ -&gt;| ##### ## ## .|&lt;-
++ | ## ## ####### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8aa4 '誤'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ######## .|
++ | ## ## .|
++ |######### ## .|
++ | ######## .|
++ | ##### .|
++ | .|
++ | ##### ######## .|
++ | ## .|
++ | ##### ## .|
++ | ## ############.|
++ | ## ## ## .|
++ | ## ## #### .|
++ -&gt;| ##### ## ## .|&lt;-
++ | ## ## ## ## .|
++ | ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8aaa '說'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## ## .|
++ | ## ## .|
++ |######### ## .|
++ | ## ## .|
++ | ###############.|
++ | ## ## .|
++ | ##### ## ## .|
++ | ## ## .|
++ | ##### ####### .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ -&gt;| ##### ## ## ##.|&lt;-
++ | ## #### ## ##.|
++ | ## ####.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8aac '説'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## .|
++ |####### ## .|
++ | ######## .|
++ | ##### ## ## .|
++ | ## ## .|
++ | ##### ## ## .|
++ | ######## .|
++ | ##### #### .|
++ | ## ## #### .|
++ | ## ## ## ## .|
++ | ## ## ## ## ##.|
++ -&gt;| ##### ## ## ##.|&lt;-
++ | ## #### ####.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8aad '読'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ##########.|
++ |####### ## .|
++ | ######## .|
++ | ##### .|
++ | ##########.|
++ | ####### ##.|
++ | ## ## .|
++ | ##### ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ -&gt;| ##### ## ## ##.|&lt;-
++ | ## ## ## ## ##.|
++ | ## ####.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8abf '調'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ..|
++ | ## ########..|
++ | ## ## ##..|
++ |######### ## ##..|
++ | ########..|
++ | ##### ## ## ##..|
++ | ########..|
++ | ##### ## ##..|
++ | ########..|
++ | ##### ########..|
++ | ## ## ########..|
++ | ## ## ########..|
++ | ## ## ## ##..|
++ -&gt;| ####### ##..|&lt;-
++ | ## #### ####..|
++ | ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8acb '請'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ##########.|
++ |####### ## .|
++ | ######## .|
++ | ##### ## .|
++ | ##########.|
++ | ##### .|
++ | ######## .|
++ | ##### ## ## .|
++ | ## ## ######## .|
++ | ## ## ## ## .|
++ | ## ## ######## .|
++ -&gt;| ##### ## ## .|&lt;-
++ | ## ## ## #### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8b49 '證'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ######### ## .|
++ | ###### .|
++ |########## ## ##.|
++ | ## #### .|
++ | ####### ## .|
++ | ########## .|
++ | ##### ##.|
++ | ######## .|
++ | ####### ## .|
++ | ## #### ## .|
++ | ## ########## .|
++ | ## #### ## .|
++ -&gt;| ##### ## ## .|&lt;-
++ | ## ############.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8b66 '警'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ## .|
++ |######### ## .|
++ | ## ## #######.|
++ | ########## ## .|
++ |## ## #### .|
++ | ####### ## .|
++ | ## #### #### .|
++ | ########## ###.|
++ | #### .|
++ |################.|
++ | .|
++ | ############ .|
++ | .|
++ -&gt;| ############ .|&lt;-
++ | ## ## .|
++ | ############ .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8b70 '議'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ##########.|
++ |####### ## .|
++ | ######## .|
++ | ##### ## .|
++ | ##########.|
++ | ##### ###### .|
++ | ### ## ##.|
++ | ##### ## ## .|
++ | ## ############.|
++ | ## ## ## ## .|
++ | ## ## ####### .|
++ -&gt;| ######### ####.|&lt;-
++ | ## ## ## #####.|
++ | ##### ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8b8a '變'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ## .|
++ | ## ###### ## .|
++ |## ## ## ##.|
++ |##### ######### .|
++ | ## ## .|
++ | ## ###### ## ##.|
++ |###### ######.|
++ | #### .|
++ |################.|
++ |################.|
++ | ## .|
++ | ########### .|
++ | #### ## .|
++ -&gt;| ###### .|&lt;-
++ | ### ### .|
++ |#### ####.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8ba1 '计'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## .|
++ | ## .|
++ |################.|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | #### ## .|
++ -&gt;| ### ## .|&lt;-
++ | ## ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8ba4 '认'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## .|
++ | ## .|
++ |##### ## .|
++ | ## ## .|
++ | ## #### .|
++ | ## #### .|
++ | ## #### .|
++ | ###### ## .|
++ | ### ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ## .|
++ | ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8bbe '设'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ## ###### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## .|
++ | ## ####.|
++ |####### .|
++ | ## ######## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | #### #### .|
++ | ### ## .|
++ -&gt;| ## #### .|&lt;-
++ | ### ### .|
++ | ### ###.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8bd5 '试'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | #### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## .|
++ | ###########.|
++ | ## .|
++ |##### ## .|
++ | ######### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ###### ## .|
++ | ### #### ####.|
++ -&gt;| ###### ####.|&lt;-
++ | ## ###.|
++ | ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8bed '语'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ## ########## .|
++ | ## ## .|
++ | ## ## .|
++ | ######## .|
++ | ## ## .|
++ |#### ## ## .|
++ | ## ###########.|
++ | ## .|
++ | ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ | ###### ## .|
++ -&gt;| ### ## ## .|&lt;-
++ | ## ######## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8bef '误'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ## ######## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ######## .|
++ | .|
++ |#### ########## .|
++ | ## ## .|
++ | ## ## .|
++ | ##############.|
++ | ## ## .|
++ | ## #### .|
++ | #### #### .|
++ -&gt;| ### ## ## .|&lt;-
++ | ## ## ## .|
++ | ## ###.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8bf7 '请'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## .|
++ | ## ########## .|
++ | ## ## .|
++ | ######## .|
++ | ## .|
++ |#### ###########.|
++ | ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ | ############ .|
++ -&gt;| ### ## ## .|&lt;-
++ | ## ## #### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8c61 '象'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ######### .|
++ | ## ## .|
++ | ############# .|
++ |#### ## ## .|
++ | ## ## ## .|
++ | ############ .|
++ | ### .|
++ | ### ## ## .|
++ | ### ###### .|
++ | ### ### .|
++ | #### ##### .|
++ | ##### ## .|
++ -&gt;| ### ## ## .|&lt;-
++ |#### #### ###.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8ca0 '負'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ..|
++ | ## ..|
++ | ######### ..|
++ | ## ## ..|
++ | ## ## ..|
++ |############## ..|
++ | ## ## ..|
++ | ############ ..|
++ | ## ## ..|
++ | ############ ..|
++ | ## ## ..|
++ | ############ ..|
++ | ..|
++ -&gt;| ## ### ..|&lt;-
++ | ### ### ..|
++ | ### ##..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8ca9 '販'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ##### #### .|
++ | ## ## ##### .|
++ | ## ## ## .|
++ | ##### ## .|
++ | ## ## ######## .|
++ | ## ## #### ## .|
++ | ##### #### ## .|
++ | ## ## #### ## .|
++ | ## ## ## #### .|
++ | ##### ## #### .|
++ | ## ## .|
++ | #### ## ## .|
++ -&gt;| ## #### #### .|&lt;-
++ |## #### ## ## .|
++ | ## ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8cac '責'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ############ .|
++ | ## .|
++ | ########## .|
++ | ## .|
++ |################.|
++ | .|
++ | ########## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ -&gt;| ########## .|&lt;-
++ | ## ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8cc7 '資'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ######## .|
++ | #### ## ## .|
++ | ## ## ## .|
++ |#### #### .|
++ | ## ## ### .|
++ | ## ### ###.|
++ | ########## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ -&gt;| ########## .|&lt;-
++ | ## ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8cf4 '賴'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ |######## ##### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ |############### .|
++ |## ## #### ## .|
++ |## ## ######### .|
++ |########## ## .|
++ | ## ####### .|
++ | #### ## ## .|
++ | ###### ####### .|
++ |## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ## ## .|
++ | ## ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8d28 '质'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ###### .|
++ | ######### .|
++ | ## ## .|
++ | ## ## .|
++ | ##############.|
++ | ## ## .|
++ | ## ## .|
++ | ## ########## .|
++ | ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ####### .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ### ## .|
++ |## ### ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8d77 '起'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ## ###### .|
++ | ####### ## .|
++ | ## ## .|
++ | ## ## .|
++ |############## .|
++ | ## ## ## .|
++ | #### ## .|
++ | #### ## .|
++ | ######## ## .|
++ | #### ## ## .|
++ | #### ###### .|
++ -&gt;| ##### .|&lt;-
++ | ## ############.|
++ |## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8ddf '跟'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ############# .|
++ | ## #### ## .|
++ | ## #### ## .|
++ | ## ######### .|
++ | ######## ## .|
++ | ## ## ## .|
++ | ## ####### .|
++ | ########## ## .|
++ | #### #### ## .|
++ | #### ## ### .|
++ | #### ## ## .|
++ | ######## ## .|
++ -&gt;|#### #### ## .|&lt;-
++ | ### ###.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8def '路'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ###### ## .|
++ | ## ## ##### .|
++ | ## ## ## ## .|
++ | ## ######## .|
++ | ###### ## .|
++ | ## #### .|
++ | ## ## ## .|
++ | ## ## ###.|
++ | ###### ###### .|
++ | #### ## ## .|
++ | #### ## ## .|
++ | #### ## ## .|
++ -&gt;| ###### ## ## .|&lt;-
++ |#### ###### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8eab '身'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ########## .|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ########## ##.|
++ | ## #### .|
++ | ## ### .|
++ | ############ .|
++ | #### .|
++ | ## ## .|
++ | ### ## .|
++ -&gt;| #### ## .|&lt;-
++ |#### #### .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8edf '軟'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ |######## ###### .|
++ | ## ## ## .|
++ | ###### ## ## .|
++ | ######## ## .|
++ | ###### ## .|
++ | ###### ## .|
++ | ###### #### .|
++ | ## #### .|
++ |######## #### .|
++ | ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ## ## .|
++ | ## ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8f03 '較'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ |################.|
++ | ## .|
++ | ###### ## ## .|
++ | ######## ## .|
++ | ####### ##.|
++ | ###### ## ## .|
++ | ###### ## ## .|
++ | ## #### .|
++ |######## #### .|
++ | ## ## .|
++ -&gt;| ## #### .|&lt;-
++ | ## ## ## .|
++ | ## ### ###.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8f09 '載'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ######## #### .|
++ | ## ## ## .|
++ |################.|
++ | ## ## .|
++ |############ .|
++ | ## ## ## .|
++ | ######## ## ## .|
++ | ## ## ## ## ## .|
++ | ######## #### .|
++ | ## ## ## #### .|
++ | ######## ## .|
++ | ## ## ##.|
++ -&gt;|################.|&lt;-
++ | ## ## ###.|
++ | ## ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8f2f '輯'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ###### .|
++ | ## ## ## .|
++ |########## ## .|
++ | ## ###### .|
++ | ###### .|
++ | ###############.|
++ | ###### ## ## .|
++ | ###### ###### .|
++ | ###### ## ## .|
++ | ## ###### .|
++ |########## ## .|
++ | ## ## #####.|
++ -&gt;| ## ######## .|&lt;-
++ | ## ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8f38 '輸'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## #### .|
++ | ## ## ## .|
++ |######## ## .|
++ | ## ###########.|
++ |###### .|
++ |########### ## .|
++ |######## ###### .|
++ |######## ###### .|
++ |############### .|
++ | ## ## ###### .|
++ |######## ###### .|
++ | ## ######### .|
++ -&gt;| ## ## ## ## .|&lt;-
++ | ## ## ###### .|
++ | ## ##### ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8f6c '转'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ |############### .|
++ | ## ## .|
++ | #### ## .|
++ |## ## ##########.|
++ |####### ## .|
++ | ## ## .|
++ | ## ######## .|
++ | #### ## .|
++ |##### ## ## .|
++ | #### #### .|
++ -&gt;| ## ## .|&lt;-
++ | ## ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8f6f '软'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ |######## ###### .|
++ | ## ## ## .|
++ | #### ## ## .|
++ | ## ## ## ## .|
++ | ####### ## .|
++ | ## ## .|
++ | ## #### .|
++ | #### #### .|
++ |###### #### .|
++ | ## ## ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ## ## .|
++ | #### ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8f7d '载'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## #### .|
++ | ######## ## ## .|
++ | ## ## .|
++ |################.|
++ | ## ## .|
++ | ## ## ## .|
++ |######### ## ## .|
++ | ## ## ## .|
++ | ## ## #### .|
++ | ######## #### .|
++ | ## ## .|
++ | ##### ## ##.|
++ -&gt;|###### ######.|&lt;-
++ | ## ## ###.|
++ | ## ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8f93 '输'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## #### .|
++ | ## ## ## .|
++ |######## ## .|
++ | ## ###########.|
++ | ## .|
++ | #### ##### ## .|
++ |## ## ## ###### .|
++ |######## ###### .|
++ | ## ######### .|
++ | ##### ###### .|
++ |##### ## ###### .|
++ | #### ######### .|
++ -&gt;| ## ## ## ## .|&lt;-
++ | ## ## ###### .|
++ | ## ##### ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8fbc '込'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## .|
++ | #### .|
++ |##### #### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | #### ## .|
++ | ### ##.|
++ | ## .|
++ -&gt;| #### .|&lt;-
++ | ## ###########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8fce '迎'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 14
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ### ##### .|
++ | ## ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ |##### ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ######### .|
++ | ## ### #### .|
++ | ## ## ## .|
++ | ## ## .|
++ -&gt;| #### ## .|&lt;-
++ | ## ###########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8fd4 '返'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ##### .|
++ | ## ##### .|
++ | ## ## .|
++ | ## .|
++ | ######### .|
++ |##### ## ## .|
++ | ## #### ## .|
++ | ## ## #### .|
++ | ## ## ## .|
++ | ## ## #### .|
++ | #### ## ## .|
++ | ###### ## .|
++ -&gt;| #### .|&lt;-
++ | ## ###########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8fd9 '这'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## .|
++ | ## ## .|
++ | ############ .|
++ | ## .|
++ | ## ## .|
++ |##### ## ## .|
++ | ## #### .|
++ | ## ## .|
++ | ## #### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | #### ## .|
++ -&gt;| #### .|&lt;-
++ | ## ###########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8ff0 '述'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## #### .|
++ | ## ## ## .|
++ | ## ## .|
++ | ########## .|
++ | ### .|
++ |##### #### .|
++ | ## ###### .|
++ | ## #### ## .|
++ | ## ## ## ## .|
++ | #### ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| #### .|&lt;-
++ | ## ###########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x8ff7 '迷'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## ## ## .|
++ | ## #### ## .|
++ | ## ###### .|
++ | ## .|
++ | ########## .|
++ |##### ## .|
++ | ## #### .|
++ | ## ###### .|
++ | ## ## ## ## .|
++ | #### ## ## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| #### .|&lt;-
++ | ## ###########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9000 '退'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ######## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ######## .|
++ | ## ## .|
++ | ## ## .|
++ |##### ######## .|
++ | ## ## ## ## .|
++ | ## ## #### .|
++ | ## ## ## .|
++ | ## #### ## .|
++ | ## ### ## .|
++ | ## ## ## .|
++ -&gt;| #### .|&lt;-
++ | ## ###########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9009 '选'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ######## .|
++ | ## ## .|
++ | ## .|
++ |############### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | #### #### .|
++ -&gt;| #### .|&lt;-
++ | ## ###########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x900f '透'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | #### .|
++ | ## ##### .|
++ | ## ## .|
++ | ############ .|
++ | ###### .|
++ | ## ## ## .|
++ |####### ## ###.|
++ | ## ####### .|
++ | ## ## ## .|
++ | ## ## ##### .|
++ | ## ## ## .|
++ | ## ## #### .|
++ | #### ## .|
++ -&gt;| #### .|&lt;-
++ | ## ###########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9017 '逗'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 14
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ## ########## .|
++ | ## .|
++ | ## .|
++ | ######## .|
++ | ## ## .|
++ |##### ## ## .|
++ | ## ######## .|
++ | ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ############ .|
++ | ## .|
++ -&gt;| #### .|&lt;-
++ | ## ###########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9019 '這'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## .|
++ | ############ .|
++ | ## .|
++ | ######## .|
++ | .|
++ |##### ######## .|
++ | ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ -&gt;| #### .|&lt;-
++ | ## ###########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x901a '通'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ## ######### .|
++ | ## ## .|
++ | ## ##### .|
++ | ## .|
++ | ########## .|
++ |#### ## ## ## .|
++ | ## ## ## ## .|
++ | ## ########## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ########## .|
++ | ## ## ## ## .|
++ -&gt;| ## ## ###### .|&lt;-
++ | ###### ## .|
++ |## ############.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9023 '連'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## .|
++ | ##############.|
++ | ## ## .|
++ | ########## .|
++ | ## ## ## .|
++ |#### ########## .|
++ | ## ## ## ## .|
++ | ## ########## .|
++ | ## ## .|
++ | ##############.|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| #### ## .|&lt;-
++ |## ############.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9032 '進'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | #### .|
++ | ## ## ## .|
++ | ## ##########.|
++ | ## ## ## .|
++ | ### ## .|
++ | ########### .|
++ |##### ## ## .|
++ | ## ## ## .|
++ | ## ######### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ##########.|
++ | ## ## .|
++ -&gt;| #### .|&lt;-
++ | ## ###########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x904b '運'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 14
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ## ########## .|
++ | #### ## ## .|
++ | ## ######## .|
++ | ## .|
++ | ######## .|
++ |##### ## ## ## .|
++ | ## ######## .|
++ | ## ## ## ## .|
++ | ## ######## .|
++ | ## ## .|
++ | ############ .|
++ | ## ## .|
++ -&gt;| #### ## .|&lt;-
++ | ## ###########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x904e '過'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ####### .|
++ | ## ## ## .|
++ | ## ####### .|
++ | ## ## #### .|
++ | ## #### .|
++ | ######### .|
++ |##### ## ## .|
++ | ## ######### .|
++ | ## #### #### .|
++ | ## ######### .|
++ | ## ## ## .|
++ | ## ## #### .|
++ | ## ## ## .|
++ -&gt;| #### .|&lt;-
++ | ## ###########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9053 '道'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## ## .|
++ | ## .|
++ | ############ .|
++ | ## .|
++ | ######## .|
++ |##### ## ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ -&gt;| #### .|&lt;-
++ | ## ###########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9055 '違'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ | #############.|
++ | .|
++ | ######## .|
++ |##### ## ## .|
++ | ## ######## .|
++ | ## ## .|
++ | ############ .|
++ | ## ## .|
++ | #### ## .|
++ | #############.|
++ -&gt;| ## ## .|&lt;-
++ | #### ## .|
++ | ## ###########.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9060 '遠'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## .|
++ | ## ######## .|
++ | ## ## .|
++ | ########## .|
++ | .|
++ |##### ######## .|
++ | ## ## ## .|
++ | ## ######## .|
++ | ## ### ## .|
++ | ## ####### .|
++ | ## #### ## .|
++ | #### ## ## .|
++ -&gt;| ## ## ## .|&lt;-
++ | #### .|
++ | ## ###########.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9069 '適'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## .|
++ | ## ########## .|
++ | ## ## ## .|
++ | #### .|
++ | ########## .|
++ |#### ## ## ## .|
++ | ## ########## .|
++ | ## ## ## ## .|
++ | ## ########## .|
++ | ## #### #### .|
++ | ## ########## .|
++ | ## ## ## .|
++ -&gt;| ## ## ### .|&lt;-
++ | #### .|
++ |## ############.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x906e '遮'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ## .|
++ | ## ###########.|
++ | ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ |#### ###########.|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ###### .|
++ | #### .|
++ | ########## ## .|
++ | ### ## #### ##.|
++ -&gt;| ## ## #### ##.|&lt;-
++ | #### .|
++ |## ############.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9078 '選'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ##### ##### .|
++ | ## ## ## ## ## .|
++ | ####### ##### .|
++ | #### #### ##.|
++ | ##### #####.|
++ | ## ## .|
++ |#### ########## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ##############.|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ -&gt;| #### .|&lt;-
++ |## ############.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x907f '避'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ##### ## .|
++ | ## ## ########.|
++ | ## ## ## .|
++ | ## #### ##.|
++ | ##### #### .|
++ |#### ## ######.|
++ | #### ## .|
++ | ######## ## .|
++ | ##### ########.|
++ | ## ## ## ## .|
++ | ## ##### ## .|
++ | ## ## ## ## .|
++ -&gt;| #### .|&lt;-
++ |## ############.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x90e8 '部'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ######.|
++ | ########### ##.|
++ | ## ## .|
++ | ## ## ## ## .|
++ | ## ## #### .|
++ |############ ## .|
++ | ## ## .|
++ | ## ##.|
++ | ####### ## ##.|
++ | ## ## ## ##.|
++ | ## ## ##### .|
++ | ## ## #### .|
++ -&gt;| ####### ## .|&lt;-
++ | ## ## ## .|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x90fd '都'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## ########.|
++ | ########### ##.|
++ | ## ## ## ## .|
++ | #### ## ## .|
++ |############## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ####### ## ##.|
++ | ### ## ## ##.|
++ |#### ## ## ##.|
++ | ####### ##### .|
++ | ## ## #### .|
++ -&gt;| ## ## ## .|&lt;-
++ | ####### ## .|
++ | ## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x914d '配'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |######## .|
++ | #### ###### .|
++ | #### ## .|
++ |######## ## .|
++ |######## ## .|
++ |######## ## .|
++ |############## .|
++ |########## ## .|
++ |### #### .|
++ |## #### .|
++ |########## .|
++ |## #### ##.|
++ -&gt;|## #### ##.|&lt;-
++ |######## #######.|
++ |## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x91cd '重'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ###### .|
++ | ####### .|
++ | ## .|
++ |################.|
++ | ## .|
++ | ########## .|
++ | ## ## ## .|
++ | ########## .|
++ | ## ## ## .|
++ | ########## .|
++ | ## .|
++ | ############ .|
++ -&gt;| ## .|&lt;-
++ |################.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x91dd '針'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | #### ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ |####### ## .|
++ | ## ##########.|
++ | ## ## .|
++ |######## ## .|
++ | ## ## .|
++ |## #### ## .|
++ | ##### ## .|
++ | #### ## .|
++ -&gt;| ##### ## .|&lt;-
++ |##### ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9304 '錄'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ###### .|
++ | #### ## ## .|
++ | ## #### ## .|
++ | ## ###### .|
++ |###### ## .|
++ | ## ## .|
++ | ## ##########.|
++ |####### ## .|
++ | ## ## ## ##.|
++ |## ############ .|
++ | ##### ###### .|
++ | #### ## ## ## .|
++ -&gt;| ##### ## ##.|&lt;-
++ |#### #### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x932f '錯'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ## .|
++ | ## ## ## .|
++ | #### ## ## .|
++ | ## ###########.|
++ | ## ## ## ## .|
++ |####### ## ## .|
++ | ## #########.|
++ | ## .|
++ |############### .|
++ | ## ## ## .|
++ |## #### ## ## .|
++ | ##### ####### .|
++ | #### ## ## .|
++ -&gt;| ####### ## .|&lt;-
++ |##### ####### .|
++ | ## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9375 '鍵'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ############## .|
++ | ## ## ## #### .|
++ |## #########.|
++ | #### ## #### .|
++ | ## ## ###### .|
++ | ## #### ## .|
++ |##### ######## .|
++ | ## #### ## .|
++ |#### ###########.|
++ | #### ## ## .|
++ | ## ## ## .|
++ -&gt;| ####### .|&lt;-
++ |### ## ########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9519 '错'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## ## .|
++ | ## ## ## .|
++ | #### ## ## .|
++ | ## ########## .|
++ | ## ## ## .|
++ | ##### ## ## .|
++ |################.|
++ | ## .|
++ |############## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ######## .|
++ | ###### ## .|
++ -&gt;| ### ## ## .|&lt;-
++ | ## ######## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x952e '键'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -1
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ############# .|
++ | ## ## #### .|
++ | ## #########.|
++ | ####### #### .|
++ |#### ## ###### .|
++ | ## #### ## .|
++ |###### ######## .|
++ | ## #### ## .|
++ | ## ###########.|
++ | ## ## ## .|
++ | ###### ## .|
++ -&gt;| ####### .|&lt;-
++ | #### ########.|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9589 '閉'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 15
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.###### ######..|
++ |.## ## ## ##..|
++ |.###### ######..|
++ |.## ## ## ##..|
++ |.###### ######..|
++ |.## ## ##..|
++ |.## ## ##..|
++ |.## ###########..|
++ |.## ### ##..|
++ |.## #### ##..|
++ |.## ## ## ##..|
++ |.## ## ## ##..|
++ -&gt;|.## #### ##..|&lt;-
++ |.## ## ####..|
++ |.## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x958b '開'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 15
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.###### ######...|
++ |.## ## ## ##...|
++ |.###### ######...|
++ |.## ## ## ##...|
++ |.###### ######...|
++ |.## ##...|
++ |.## ####### ##...|
++ |.## ## ## ##...|
++ |.## ## ## ##...|
++ |.#############...|
++ |.## ## ## ##...|
++ |.## ## ## ##...|
++ -&gt;|.## ## ## ##...|&lt;-
++ |.#### ######...|
++ |.## ## ...|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9593 '間'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 13 x 15
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.###### ######...|
++ |.## ## ## ##...|
++ |.###### ######...|
++ |.## ## ## ##...|
++ |.###### ######...|
++ |.## ##...|
++ |.## ####### ##...|
++ |.## ## ## ##...|
++ |.## ####### ##...|
++ |.## ## ## ##...|
++ |.## ####### ##...|
++ |.## ## ## ##...|
++ -&gt;|.## ##...|&lt;-
++ |.## ####...|
++ |.## ## ...|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9598 '閘'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.###### ######..|
++ |.## ## ## ##..|
++ |.###### ######..|
++ |.## ## ## ##..|
++ |.###### ######..|
++ |.## ##..|
++ |.## ######## ##..|
++ |.## ## ## ## ##..|
++ |.## ######## ##..|
++ |.## ## ## ## ##..|
++ |.## ######## ##..|
++ |.## ## ## ## ##..|
++ |.## ## ##..|
++ -&gt;|.## ## ##..|&lt;-
++ |.## ####..|
++ |.## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x95a2 '関'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.###### ######..|
++ |.## ## ## ##..|
++ |.###### ######..|
++ |.## ## ## ##..|
++ |.###### ######..|
++ |.## ##..|
++ |.## ## ## ##..|
++ |.## #### ##..|
++ |.## ######## ##..|
++ |.## ## ##..|
++ |.##############..|
++ |.## ## ##..|
++ |.## #### ##..|
++ -&gt;|.## ## ## ##..|&lt;-
++ |.## ## ## ##..|
++ |.## ###..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x95b1 '閱'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.###### ######..|
++ |.## ## ## ##..|
++ |.###### ######..|
++ |.## ## ## ##..|
++ |.###### ######..|
++ |.## ## ## ##..|
++ |.## ## ## ##..|
++ |.##############..|
++ |.##### #####..|
++ |.## ## ## ##..|
++ |.## ######## ##..|
++ |.## #### ##..|
++ |.## #### ##..|
++ -&gt;|.## ## ## ####..|&lt;-
++ |.## ## ######..|
++ |.#### ###..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x95dc '關'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.###### ######..|
++ |.## ## ## ##..|
++ |.###### ######..|
++ |.## ## ## ##..|
++ |.###### ######..|
++ |.## ## ## ##..|
++ |.#### #### ####..|
++ |.###### #### ##..|
++ |.## #### ######..|
++ |.##############..|
++ |.## #### ##..|
++ |.#### #### ####..|
++ |.##############..|
++ -&gt;|.## #### ##..|&lt;-
++ |.## ## ## ####..|
++ |.## ## ## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x95ed '闭'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 14 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## ..|
++ |. ############..|
++ |. ##..|
++ |.## ## ##..|
++ |.## ## ##..|
++ |.##############..|
++ |.## ## ##..|
++ |.## ### ##..|
++ |.## #### ##..|
++ |.## ## ## ##..|
++ |.## ## ## ##..|
++ |.#### ## ##..|
++ |.## #### ##..|
++ -&gt;|.## ## ##..|&lt;-
++ |.## ####..|
++ |.## ## ..|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x963b '阻'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 15
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.############# .|
++ |.## #### ## .|
++ |.## ## ## ## .|
++ |.## ## ## ## .|
++ |.#### ####### .|
++ |.## ## ## ## .|
++ |.## ## ## ## .|
++ |.## #### ## .|
++ |.## ######### .|
++ |.## #### ## .|
++ |.##### ## ## .|
++ |.#### ## ## .|
++ -&gt;|.## ## ## .|&lt;-
++ |.## ###########.|
++ |.## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9650 '限'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 15
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.############# .|
++ |.## #### ## .|
++ |.#### ## ## .|
++ |.#### ######## .|
++ |.### ## ## .|
++ |.#### ## ## .|
++ |.## ########## .|
++ |.## #### ## ## .|
++ |.## #### ## ## .|
++ |.####### ### .|
++ |.#### ## ## .|
++ |.## ## ## .|
++ -&gt;|.## #### ## .|&lt;-
++ |.## ### ###.|
++ |.## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9665 '陥'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## .|
++ |.###### ## .|
++ |.## ## ###### .|
++ |.## ## ## ## .|
++ |.## ## ## ## .|
++ |.#### ## ## .|
++ |.## ## ## ######.|
++ |.## ## ## ## ##.|
++ |.## #### ## ##.|
++ |.## #### ## ##.|
++ |.## #### ######.|
++ |.##### ## ## ##.|
++ |.#### ## ## ##.|
++ -&gt;|.## ## ## ##.|&lt;-
++ |.## ## ######.|
++ |.## ## ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x968e '階'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## ## .|
++ |.######## ## ##.|
++ |.## ########## .|
++ |.## ## ## ### .|
++ |.## ## ###### ##.|
++ |.#### ### ## ##.|
++ |.## ## ## ######.|
++ |.## ## ## .|
++ |.## ########## .|
++ |.## #### ## .|
++ |.## #### ## .|
++ |.##### ######## .|
++ |.#### ## ## .|
++ -&gt;|.## ## ## .|&lt;-
++ |.## ######## .|
++ |.## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9694 '隔'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 15
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.###############.|
++ |.## ## .|
++ |.#### ######## .|
++ |.#### ## ## .|
++ |.### ## ## .|
++ |.#### ######## .|
++ |.## ## .|
++ |.## ############.|
++ |.## ###### ####.|
++ |.####### #### ##.|
++ |.#### ##########.|
++ |.## ## ## ##.|
++ -&gt;|.## ## ## ##.|&lt;-
++ |.## ## ######.|
++ |.## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x969b '際'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## .|
++ |.##### ## ## .|
++ |.## ########### .|
++ |.#### ## ###### .|
++ |.############## .|
++ |.### #### ## .|
++ |.#### ## ## .|
++ |.## ########### .|
++ |.## ### ##.|
++ |.## ## .|
++ |.############## .|
++ |.#### ## .|
++ |.## ###### .|
++ -&gt;|.## ## ## ## .|&lt;-
++ |.## ###### ## .|
++ |.## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x96a8 '隨'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## .|
++ |.##### #########.|
++ |.## ### ## .|
++ |.## ########### .|
++ |.#### ## ## .|
++ |.#### ##########.|
++ |.### .|
++ |.############## .|
++ |.## ###### ## .|
++ |.## ########### .|
++ |.## ###### ## .|
++ |.############## .|
++ |.#### #### ## .|
++ -&gt;|.## #### ### .|&lt;-
++ |.## #### .|
++ |.## ## ########.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x96c6 '集'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ############ .|
++ | ### ## .|
++ | ############# .|
++ |## ## ## .|
++ | ########### .|
++ | ## ## .|
++ | ############ .|
++ | ## ## .|
++ |################.|
++ | ###### .|
++ | ## ## ## .|
++ -&gt;| ### ## ### .|&lt;-
++ |### ## ###.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x96d9 '雙'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## ## ## .|
++ | ##############.|
++ | ### ## ### ## .|
++ |################.|
++ | ## ## ## ## .|
++ | ##############.|
++ | ## ## ## ## .|
++ | ##############.|
++ | ## ## .|
++ | ########## .|
++ | ## ## .|
++ | ## ## .|
++ -&gt;| #### .|&lt;-
++ | #### #### .|
++ |#### ####.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x96e2 '離'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 16
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |. ## #### .|
++ |. ## ## ## .|
++ |.########## .|
++ |. #### #######.|
++ |.## ## #### ## .|
++ |.########## ## .|
++ |.## #########.|
++ |.########## ## .|
++ |. ## ## ## .|
++ |.###############.|
++ |.#### #### ## .|
++ |.########## ## .|
++ |.########## ## .|
++ -&gt;|.## #########.|&lt;-
++ |.## ###### .|
++ |.## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x96fb '電'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ############ .|
++ | ## .|
++ | ###############.|
++ | ## ## ##.|
++ |## ############ .|
++ | ## .|
++ | ########## .|
++ | .|
++ | ############ .|
++ | ## ## ## .|
++ | ############ .|
++ | ## ## ## .|
++ | ############ .|
++ -&gt;| ## ##.|&lt;-
++ | ## ##.|
++ | ########.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9700 '需'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ############ .|
++ | ## .|
++ | ###############.|
++ | ## ## ##.|
++ |## ############ .|
++ | ## .|
++ | ########## .|
++ | .|
++ |################.|
++ | ## .|
++ | ############ .|
++ | ## ## ## ## .|
++ -&gt;| ## ## ## ## .|&lt;-
++ | ## ## ###### .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x975e '非'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ |####### #######.|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ###### ###### .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ | ## ## .|
++ |####### #######.|
++ -&gt;| ## ## .|&lt;-
++ | ## ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9762 '面'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |################.|
++ | ## .|
++ | ## .|
++ | ## .|
++ | ############ .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ###### ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ###### ## .|
++ | ## ## ## ## .|
++ -&gt;| ## ## ## ## .|&lt;-
++ | ############ .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x97cc '韌'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ | ###############.|
++ | ## ## ## ##.|
++ |######### ## ##.|
++ | #### ##.|
++ | ####### #### ##.|
++ | ## ## #### ##.|
++ | ######### ## ##.|
++ | ## ## ##.|
++ | ####### ## ##.|
++ | ## ## ##.|
++ | ## ## ## ##.|
++ -&gt;| ####### ## ##.|&lt;-
++ | ## ## ####.|
++ | ## ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x97ff '響'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ##########.|
++ | ####### #### ##.|
++ | ## ######### .|
++ | ###### #### ##.|
++ | ###############.|
++ | ## #### #### .|
++ | ## ####### .|
++ | ## .|
++ | ############ .|
++ | ## ## .|
++ |################.|
++ | ## ## .|
++ -&gt;| ########## .|&lt;-
++ | ## ## .|
++ | ########## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9801 '頁'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 15 x 15
++ Advance: 17
++ Offset: 1 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.###############.|
++ |. ## .|
++ |. ## .|
++ |. ########### .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ########### .|
++ |. ## ## .|
++ |. ########### .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ########### .|
++ -&gt;|. ## ## .|&lt;-
++ |. ## ## .|
++ |. ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9805 '項'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | #########.|
++ | ## .|
++ |####### ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ | ###### ## .|
++ |#### ######## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ## .|
++ | ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9808 '須'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## #########.|
++ | ## ## .|
++ | ## ## .|
++ | ## ######## .|
++ |## ## ## ## .|
++ | ## ## ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ | ## ########## .|
++ |## #### ## .|
++ | ## ## ## .|
++ | ## ######## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ## ## .|
++ |## ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9810 '預'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ###### ########.|
++ | ## ## .|
++ | #### ## .|
++ | ## ####### .|
++ | ## ## ## .|
++ |########## ## .|
++ | ## ######### .|
++ | #### ## ## .|
++ | ## ####### .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ####### .|
++ -&gt;| ## ## ## .|&lt;-
++ | #### ## ## .|
++ | ## ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9818 '領'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## #########.|
++ | #### ## .|
++ | ## ## ## .|
++ | ## ######### .|
++ |## ## ## ## .|
++ | ## ## ## .|
++ | ######## .|
++ |######### ## .|
++ | ########## .|
++ | ## ## ## .|
++ | #### ## ## .|
++ | ## ######## .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ## ## .|
++ | ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x982d '頭'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |################.|
++ | ## .|
++ | ## .|
++ | ###### ####### .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ####### .|
++ | ###### ## ## .|
++ | ####### .|
++ | ## ## ## ## .|
++ | #### ## ## .|
++ | ############# .|
++ -&gt;|##### .|&lt;-
++ | ## ## ## .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x984c '題'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | ##############.|
++ | ## ## ## .|
++ | ###### ## .|
++ | ## ## ###### .|
++ | ###### ## ## .|
++ | ###### .|
++ |########### ## .|
++ | ## ###### .|
++ | ## ## ## .|
++ | ############# .|
++ | #### #### .|
++ | #### ## ## .|
++ -&gt;| ##### ## ##.|&lt;-
++ | ## ############.|
++ |## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x985e '類'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ |## ## ##########.|
++ | ###### ## .|
++ |######## ## .|
++ | ### ####### .|
++ | ###### ## ## .|
++ |## ## #### ## .|
++ | ####### .|
++ | #### ## ## .|
++ | ## ######### .|
++ |########## ## .|
++ | ## ## ## .|
++ | #### ####### .|
++ -&gt;| ## ## ## ## .|&lt;-
++ | ## ## ## ## .|
++ |## ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x986f '顯'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |################.|
++ |## ## ## .|
++ |######## ## .|
++ |## ######### .|
++ |########## ## .|
++ | ## ## ## ## .|
++ |############### .|
++ |########## ## .|
++ | ## ## ####### .|
++ |########## ## .|
++ |########## ## .|
++ | ####### .|
++ -&gt;|######## ## ## .|&lt;-
++ |########## ## .|
++ | ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9879 '项'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ | #########.|
++ | ## .|
++ |####### ## .|
++ | ## ######## .|
++ | ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ## ## ## ## .|
++ | ######## ## .|
++ |#### #### .|
++ -&gt;| ## ## ## .|&lt;-
++ | ## ## .|
++ | ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9891 '频'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## #########.|
++ | #### ## .|
++ | ###### ## .|
++ | #### ######## .|
++ | #### ## ## .|
++ |######### ## ## .|
++ | ## ## ## .|
++ | ## ## ## ## .|
++ | ######## ## ## .|
++ | ######## ## ## .|
++ | ########## ## .|
++ |## ## #### .|
++ -&gt;| ## ## ## .|&lt;-
++ | ### ## ## .|
++ |### ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9996 '首'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## ## .|
++ | ## ## .|
++ |################.|
++ | ## .|
++ | ## .|
++ | ############ .|
++ | ## ## .|
++ | ## ## .|
++ | ############ .|
++ | ## ## .|
++ | ## ## .|
++ | ############ .|
++ | ## ## .|
++ -&gt;| ## ## .|&lt;-
++ | ############ .|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9a45 '驅'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |################.|
++ |#### ## .|
++ |######## ###### .|
++ |#### ## ## ## .|
++ |######## ## ## .|
++ |#### ## ###### .|
++ |#### ## .|
++ |################.|
++ | ############.|
++ |################.|
++ |################.|
++ |################.|
++ -&gt;|## #### .|&lt;-
++ | ############.|
++ | ### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9a57 '驗'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ###### ## .|
++ | #### #### .|
++ | ###### ## ## .|
++ | #### ## ## .|
++ | ###############.|
++ | #### .|
++ | #### .|
++ | ############## .|
++ | ########## .|
++ | ############## .|
++ | ############## .|
++ | ###### ## ## .|
++ -&gt;|## ## ## ## .|&lt;-
++ | ############ .|
++ | #### ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9a71 '驱'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 15
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |###### #########.|
++ | ## ## .|
++ | ## ## ## ## .|
++ | ## ## #### ## .|
++ | ## ## ## #### .|
++ | ## ## ## #### .|
++ | ######## ## .|
++ | #### ## .|
++ | #### #### .|
++ | ###### #### .|
++ |#### ###### ## .|
++ | ## ##### ## .|
++ -&gt;| #### .|&lt;-
++ | #### #########.|
++ | ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9ad4 '體'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | #### .|
++ | ############## .|
++ | ## ########## .|
++ | ############## .|
++ | ############## .|
++ |############### .|
++ |## ## .|
++ | ############## .|
++ | ## ## .|
++ | ############## .|
++ | ## #### ## .|
++ | ############## .|
++ | ## ## ## ## .|
++ -&gt;| ## ## #### .|&lt;-
++ | ###############.|
++ | ## ## .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9ad8 '高'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ | ## .|
++ |################.|
++ | .|
++ | ######## .|
++ | ## ## .|
++ | ## ## .|
++ | ######## .|
++ | .|
++ | ############## .|
++ | ## ## .|
++ | ## ######## ## .|
++ | ## ## ## ## .|
++ -&gt;| ## ## ## ## .|&lt;-
++ | ## ######## ## .|
++ | ## ### .|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0x9ed8 '默'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 16 x 16
++ Advance: 17
++ Offset: 0 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ | ## .|
++ |######## #### .|
++ |## ## ## ## ## .|
++ |######## ## ## .|
++ |######## ## .|
++ |## ## ##########.|
++ |######## ## .|
++ | ## ## .|
++ |######## ## .|
++ | ## #### .|
++ | ##### #### .|
++ |#### #### .|
++ | #### ## .|
++ -&gt;|########## ## .|&lt;-
++ |###### ## ## .|
++ |## ## ##.|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0xac00 '가'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.4#######3 ## .|
++ |. 6#9 ## .|
++ |. 4#a ## .|
++ |. 5#8 ## .|
++ |. 7#7 ## .|
++ |. 9#4 ####4.|
++ |. c# ## .|
++ |. 7#8 ## .|
++ |. 4#c ## .|
++ |. 6##1 ## .|
++ |.5###a1 ## .|
++ -&gt;|.5a71 ## .|&lt;-
++ |. ## .|
++ |. ## .|
++ |. 44 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xac04 '간'
++ Font: gulim (17)
++ Bitmap: 17 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 6#######4 aa |
++ |. 6#8 ## |
++ |. 6#8 ## |
++ |. 7#5 ## |
++ |. c#1 ####3|
++ |. 1c#5 ## |
++ |. 2a##3 ## |
++ |.4####4 ## |
++ |. 22 ## |
++ |. 33 ## |
++ |. 1## cc |
++ -&gt;|. 1## |&lt;-
++ |. ## |
++ |. 9##########a |
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xac10 '감'
++ Font: gulim (17)
++ Bitmap: 17 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. c#######2 #c |
++ |. 9#6 ## |
++ |. 9#5 ## |
++ |. ##1 ####3|
++ |. 8#8 ## |
++ |. 1c#9 ## |
++ |. 49###4 ## |
++ |.4##a3 88 |
++ |. |
++ |. 9##########9 |
++ |. 1## 1## |
++ -&gt;|. 1## 1## |&lt;-
++ |. 1## 2## |
++ |. a##########7 |
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xac15 '강'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.7#######4 1#c .|
++ |. 4#a 1## .|
++ |. 4#9 1## .|
++ |. 7#5 1####2.|
++ |. 3#b 1## .|
++ |. 7#c1 1## .|
++ |.3a###6 1## .|
++ |.4a83 1## .|
++ |. 55 .|
++ |. 19######a2 .|
++ |. 4##71 17##5 .|
++ -&gt;|. ##2 2## .|&lt;-
++ |. ##2 2## .|
++ |. 5##82 14a##4 .|
++ |. 19######71 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xac19 '같'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.6#######6 c# .|
++ |. 2#b ## .|
++ |. 2#a ## .|
++ |. 7#6 ####4.|
++ |. 3#a ## .|
++ |. 19#9 ## .|
++ |.7###c3 ## .|
++ |.363 c# .|
++ |. .|
++ |. b##########7 .|
++ |. 1## .|
++ -&gt;|. 1###########6 .|&lt;-
++ |. 1## .|
++ |. a##########7 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xac1c '개'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..8#####7 cc #c..|
++ |.. 1## ## ##..|
++ |.. ## ## ##..|
++ |.. 1#c ## ##..|
++ |.. 2#b ## ##..|
++ |.. 4#9 ######..|
++ |.. 7#6 ## ##..|
++ |.. 1##1 ## ##..|
++ |.. a#7 ## ##..|
++ |.. 1b#a ## ##..|
++ |..8##7 ## ##..|
++ -&gt;|..561 ## ##..|&lt;-
++ |.. ## ##..|
++ |.. ## ##..|
++ |.. 44 66..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xac70 '거'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. a######8 #c..|
++ |.. ##2 ##..|
++ |.. c#2 ##..|
++ |.. c#1 ##..|
++ |.. ## ##..|
++ |.. 3#a ##..|
++ |.. 8#6c####..|
++ |.. 3## ##..|
++ |.. 1##4 ##..|
++ |.. 3##5 ##..|
++ |..1a###3 ##..|
++ -&gt;|..1893 ##..|&lt;-
++ |.. ##..|
++ |.. ##..|
++ |.. 55..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xac80 '검'
++ Font: gulim (17)
++ Bitmap: 15 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. b######a c# ..|
++ |. b#3 ## ..|
++ |. a#3 ## ..|
++ |. c# ## ..|
++ |. 3#b##### ..|
++ |. 1cc1 ## ..|
++ |. 17#b1 ## ..|
++ |.4####4 ## ..|
++ |. 22 ..|
++ |. 8##########a..|
++ |. ##1 ##..|
++ -&gt;|. ## ##..|&lt;-
++ |. ##1 1##..|
++ |. 9##########8..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xac83 '것'
++ Font: gulim (17)
++ Bitmap: 15 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. c######a cc ..|
++ |. ##2 ## ..|
++ |. c#1 ## ..|
++ |. 1#c ## ..|
++ |. 8#9##### ..|
++ |. a#9 ## ..|
++ |. 4a##6 ## ..|
++ |.5###6 ## ..|
++ |. ## ..|
++ |. 8c3 66 ..|
++ |. 5##b ..|
++ -&gt;|. 5##8#9 ..|&lt;-
++ |. 27##b1 7##51 ..|
++ |. 6##c3 3###7..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xac8c '게'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. #####8 cc cc..|
++ |.. ##1 ## ##..|
++ |.. ## ## ##..|
++ |.. ## ## ##..|
++ |.. 1#c ## ##..|
++ |.. 2#b ## ##..|
++ |.. 5#a#### ##..|
++ |.. a#4 ## ##..|
++ |.. 5#a ## ##..|
++ |.. 5#c1 ## ##..|
++ |..2c#b1 ## ##..|
++ -&gt;|..153 ## ##..|&lt;-
++ |.. ## ##..|
++ |.. ## ##..|
++ |.. 55..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xaca0 '겠'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.1#####b1 cc cc .|
++ |. b#4 ## ## .|
++ |. a#4 ## ## .|
++ |. a#3 ## ## .|
++ |. ###### ## .|
++ |. 6#9 ## ## .|
++ |. 4##1 ## ## .|
++ |. 3c#b1 cc ## .|
++ |.4##5 cc .|
++ |. 2b8 7a3 .|
++ |. 6## a#7 .|
++ -&gt;|. c##4 2### .|&lt;-
++ |. 8#c##2 c###8 .|
++ |. a#9 4####6 a##1.|
++ |. 22 1331 22 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xaca9 '격'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. c######9 #c..|
++ |.. ##2 1##..|
++ |.. c#1 1##..|
++ |.. #ca####..|
++ |.. 4c7 1##..|
++ |.. 3c9 1##..|
++ |.. 29#5 b####..|
++ |..3c#c4 1##..|
++ |.. a9..|
++ |.. ..|
++ |.. b##########7..|
++ -&gt;|.. 3#c..|&lt;-
++ |.. 2#c..|
++ |.. 2#c..|
++ |.. 2#b..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xacac '견'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. c######8 #c..|
++ |.. ##2 ##..|
++ |.. c#1 ##..|
++ |.. #######..|
++ |.. 3c8 ##..|
++ |.. 2cb1 ##..|
++ |.. 7#91 ##..|
++ |..5###92 c####..|
++ |..131 ##..|
++ |.. 33 ##..|
++ |.. ## ##..|
++ -&gt;|.. ## 11..|&lt;-
++ |.. ##1 ..|
++ |.. 9##########b..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xacb0 '결'
++ Font: gulim (17)
++ Bitmap: 15 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.1#######8 #c ..|
++ |. c#2 1## ..|
++ |. b###### ..|
++ |. cb 1## ..|
++ |. 8#6 1## ..|
++ |. 1a#81##### ..|
++ |. 4b##5 1## ..|
++ |.5###5 cb ..|
++ |. ..|
++ |. b#########a ..|
++ |. 1## ..|
++ -&gt;|. a#########9 ..|&lt;-
++ |. c#2 ..|
++ |. 9##########7..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xacbd '경'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. c######9 c#...|
++ |. c#2 ##...|
++ |. b#1 ##...|
++ |. 1#ba####...|
++ |. a#4 ##...|
++ |. 2##6 ##...|
++ |. 4c##3 9####...|
++ |.5###4 ##...|
++ |. 88...|
++ |. 2a######a2 ...|
++ |. 5##81 17##5...|
++ -&gt;|. c#2 2##...|&lt;-
++ |. c#2 2##...|
++ |. 4##83 14a##5...|
++ |. 18######81 ...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xacc4 '계'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..1#####8 aa cc..|
++ |.. 1## ## ##..|
++ |.. ## ## ##..|
++ |.. ###### ##..|
++ |.. 1#c ## ##..|
++ |.. 2#b ## ##..|
++ |.. 5#8 ## ##..|
++ |.. a#3 ## ##..|
++ |.. 5#a6#### ##..|
++ |.. 5#c1 ## ##..|
++ |..2c#b1 ## ##..|
++ -&gt;|..253 ## ##..|&lt;-
++ |.. ## ##..|
++ |.. cc ##..|
++ |.. 55..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xace0 '고'
++ Font: gulim (17)
++ Bitmap: 14 x 13
++ Advance: 18
++ Offset: 2 x -1
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 8##########8 ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. 1## ..|
++ |.. 77 2#c ..|
++ |.. ## 4#9 ..|
++ |.. ## 8#6 ..|
++ |.. ## b#2 ..|
++ |.. ## 77 ..|
++ -&gt;|.. ## ..|&lt;-
++ |..b############b..|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xacf3 '곳'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. b##########6 .|
++ |. 1#c .|
++ |. ##1 .|
++ |. ab ## .|
++ |. ## ## .|
++ |. ## 1#c .|
++ |. ## 2#b .|
++ |.1##############1.|
++ |. .|
++ |. 2b9 .|
++ |. a##6 .|
++ -&gt;|. a#9##4 .|&lt;-
++ |. 17##6 1##a1 .|
++ |. a##91 7###1 .|
++ |. 1 32 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xacf5 '공'
++ Font: gulim (17)
++ Bitmap: 15 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. b##########6 ..|
++ |. 1#b ..|
++ |. c# ..|
++ |. 66 ## ..|
++ |. ## ## ..|
++ |. ## 1#c ..|
++ |. ## 2c9 ..|
++ |.3#############a..|
++ |. ..|
++ |. 2a######a2 ..|
++ |. 7##71 17##7 ..|
++ -&gt;|. ##2 1## ..|&lt;-
++ |. 7##5 5##8 ..|
++ |. 3c######c3 ..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xacfc '과'
++ Font: gulim (17)
++ Bitmap: 17 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 9#######a #c |
++ |. ## ## |
++ |. ## ## |
++ |. ## ## |
++ |. ## ## |
++ |. ## ## |
++ |. ## 1#b ####2|
++ |. ## 4#9 ## |
++ |. ## 7b4 ## |
++ |. ## ## |
++ |. ##1347a### |
++ -&gt;|.5############# |&lt;-
++ |. ## |
++ |. ## |
++ |. 77 |
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xad00 '관'
++ Font: gulim (17)
++ Bitmap: 17 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 4#######a #c |
++ |. ##1 ## |
++ |. ##1 ## |
++ |. 77 ## ## |
++ |. ## ## ## |
++ |. ## ## ####2|
++ |. ## 5##58## |
++ |.1############# |
++ |. ## |
++ |. 33 ## |
++ |. 1## bb |
++ -&gt;|. 1## |&lt;-
++ |. ##1 |
++ |. 9##########a |
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xad6c '구'
++ Font: gulim (17)
++ Bitmap: 15 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. c##########6 ..|
++ |. 3## ..|
++ |. ## ..|
++ |. ## ..|
++ |. #c ..|
++ |. 1#b ..|
++ |. 3#a ..|
++ |. 5#8 ..|
++ |.5#############a..|
++ |. ## ..|
++ |. ## ..|
++ -&gt;|. ## ..|&lt;-
++ |. ## ..|
++ |. ## ..|
++ |. 66 ..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xadf8 '그'
++ Font: gulim (17)
++ Bitmap: 14 x 13
++ Advance: 18
++ Offset: 2 x -1
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..1##########b ..|
++ |.. ##1 ..|
++ |.. c#1 ..|
++ |.. c#1 ..|
++ |.. ##1 ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. 1#c ..|
++ |.. 3#b ..|
++ -&gt;|.. 5#8 ..|&lt;-
++ |..b############6..|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xadfc '근'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 2###########9 .|
++ |. ##1 .|
++ |. c#1 .|
++ |. ## .|
++ |. ## .|
++ |. #c .|
++ |. 1#c .|
++ |.1##############1.|
++ |. .|
++ |. 78 .|
++ |. ## .|
++ -&gt;|. ## .|&lt;-
++ |. ##1 .|
++ |. 8##########b .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xae00 '글'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 2###########7 .|
++ |. 2## .|
++ |. 1#c .|
++ |. 2#a .|
++ |. 3#9 .|
++ |.1##############1.|
++ |. .|
++ |. .|
++ |. a##########9 .|
++ |. ## .|
++ |. 8##########b .|
++ -&gt;|. c#2 .|&lt;-
++ |. c#2 .|
++ |. 8##########c .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xae08 '금'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 4###########6 .|
++ |. 3#c .|
++ |. 2#b .|
++ |. 3#a .|
++ |. 4#9 .|
++ |. 5#8 .|
++ |.1##############1.|
++ |. .|
++ |. .|
++ |. 8##########9 .|
++ |. ##1 1## .|
++ -&gt;|. ## ## .|&lt;-
++ |. ##1 1## .|
++ |. 8##########8 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xae09 '급'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 3###########7 .|
++ |. 2## .|
++ |. 1#c .|
++ |. 2#b .|
++ |. 2#a .|
++ |. 3#9 .|
++ |.1##############1.|
++ |. .|
++ |. c# bb .|
++ |. ## ## .|
++ |. ############ .|
++ -&gt;|. ## ## .|&lt;-
++ |. ##1 1## .|
++ |. 8##########8 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xae30 '기'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 9######a #c..|
++ |.. c#3 ##..|
++ |.. 9#3 ##..|
++ |.. a#2 ##..|
++ |.. b#1 ##..|
++ |.. ## ##..|
++ |.. 4#a ##..|
++ |.. c#4 ##..|
++ |.. a#8 ##..|
++ |.. 3##8 ##..|
++ |..1a###4 ##..|
++ -&gt;|.. 562 ##..|&lt;-
++ |.. ##..|
++ |.. ##..|
++ |.. 55..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xae34 '긴'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. b######b cc..|
++ |.. b#3 ##..|
++ |.. b#3 ##..|
++ |.. c#1 ##..|
++ |.. 2#b ##..|
++ |.. 2##4 ##..|
++ |.. 18##5 ##..|
++ |..2a###a2 ##..|
++ |..29a4 ##..|
++ |.. 33 ##..|
++ |.. ## 77..|
++ -&gt;|.. ## ..|&lt;-
++ |.. ##1 ..|
++ |.. 9##########b..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xae38 '길'
++ Font: gulim (17)
++ Bitmap: 15 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.1#######b1 cc ..|
++ |. a#4 ## ..|
++ |. 9#3 ## ..|
++ |. c# ## ..|
++ |. 5#9 ## ..|
++ |. 6#c ## ..|
++ |. 38##8 ## ..|
++ |.6###71 bb ..|
++ |. b#########8 ..|
++ |. ## ..|
++ |. 1## ..|
++ -&gt;|. a#########9 ..|&lt;-
++ |. c#2 ..|
++ |. 9##########7..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xae4c '까'
++ Font: gulim (17)
++ Bitmap: 17 x 15
++ Advance: 18
++ Offset: 0 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ | 9###a8###a c# .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | ## ## ## .|
++ | 1#c ## ## .|
++ | 3#a #c ####3.|
++ | 7#7 2#a ## .|
++ | c#3 5#8 ## .|
++ | 8#a a#4 ## .|
++ | 9#c1 5#c ## .|
++ -&gt;|177 1##2 ## .|&lt;-
++ | ## .|
++ | ## .|
++ | 33 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xaebc '꺼'
++ Font: gulim (17)
++ Bitmap: 15 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 4###ab###7 #c..|
++ |. ## c#8 ##..|
++ |. ## c#2 ##..|
++ |. ## b#1 ##..|
++ |. ## b#1 ##..|
++ |. ## bc1 ##..|
++ |. 2#b c#5####..|
++ |. 4#9 ## ##..|
++ |. 9#5 #c ##..|
++ |. 3## 3#a ##..|
++ |. 5##3 9#5 ##..|
++ -&gt;|.1cc2 6#c ##..|&lt;-
++ |. bc1 ##..|
++ |. ##..|
++ |. 77..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xaed8 '께'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 9##7b##8 bbc#..|
++ |.. 2#c #c ####..|
++ |.. cc cc ####..|
++ |.. cc cc ####..|
++ |.. cc cc ####..|
++ |.. cb c######..|
++ |.. 1cb 1#b ####..|
++ |.. 3#9 2#a ####..|
++ |.. 9#5 5#8 ####..|
++ |.. 4#b b#4 ####..|
++ |..4##2 8#a ####..|
++ -&gt;|..121 1a9 ####..|&lt;-
++ |.. ####..|
++ |.. ####..|
++ |.. 1133..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb044 '끄'
++ Font: gulim (17)
++ Bitmap: 14 x 13
++ Advance: 18
++ Offset: 2 x -1
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..2#####a9####a ..|
++ |.. ##1 ## ..|
++ |.. c#1 ## ..|
++ |.. c#1 ## ..|
++ |.. ## ## ..|
++ |.. ## ## ..|
++ |.. ## ## ..|
++ |.. 1#c 1#c ..|
++ |.. 2#b 2#b ..|
++ |.. 4#9 4#9 ..|
++ |.. 7#7 6#7 ..|
++ -&gt;|.. 9#5 8#5 ..|&lt;-
++ |..c############c..|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb098 '나'
++ Font: gulim (17)
++ Bitmap: 15 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..88 #c .|
++ |..## 1## .|
++ |..## 1## .|
++ |..## 1## .|
++ |..## 1## .|
++ |..## 1## .|
++ |..## 1####5.|
++ |..## 1## .|
++ |..## 1## .|
++ |..##4 148### .|
++ |..4########c## .|
++ -&gt;|.. 1## .|&lt;-
++ |.. 1## .|
++ |.. 1## .|
++ |.. 66 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb09c '난'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.11 .|
++ |.## ## .|
++ |.## ## .|
++ |.## ## .|
++ |.## ## .|
++ |.## ####3.|
++ |.##1 15## .|
++ |.8############ .|
++ |. 111 ## .|
++ |. ## .|
++ |. c# ## .|
++ |. ##1 33 .|
++ -&gt;|. ##1 .|&lt;-
++ |. ##2 .|
++ |. 8##########b .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb0a8 '남'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.88 ## .|
++ |.## ## .|
++ |.## ## .|
++ |.## ####3.|
++ |.## ## .|
++ |.##3 136a### .|
++ |.5#########b## .|
++ |. ## .|
++ |. 33 .|
++ |. 8##########8 .|
++ |. ##1 1## .|
++ -&gt;|. ## ## .|&lt;-
++ |. ##1 1## .|
++ |. 9##########7 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb0ac '났'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.aa ## .|
++ |.## ## .|
++ |.## ## .|
++ |.## ####3.|
++ |.## ## .|
++ |.##3 136a### .|
++ |.5#########b## .|
++ |. ## .|
++ |. 88 .|
++ |. 3b8 6c5 .|
++ |. 7#c a#9 .|
++ -&gt;|. ###3 2###1 .|&lt;-
++ |. a#c##11c#c#b .|
++ |.c#8 5####6 8##2 .|
++ |.11 1231 12 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb0b4 '내'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. a9 cc cc..|
++ |..1## ## ##..|
++ |..1## ## ##..|
++ |..1## ## ##..|
++ |..1## ## ##..|
++ |..1## ## ##..|
++ |..1## ######..|
++ |..1## ## ##..|
++ |..1## ## ##..|
++ |.. ##1 2## ##..|
++ |.. 7######## ##..|
++ -&gt;|.. ## ##..|&lt;-
++ |.. ## ##..|
++ |.. ## ##..|
++ |.. 22 55..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb110 '널'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..bc c# ..|
++ |..## ##1..|
++ |..## 6######1..|
++ |..## ##1..|
++ |..## ##1..|
++ |..##4 137#c4 ##1..|
++ |..6######c5 ##1..|
++ |.. 78 ..|
++ |.. b##########7 ..|
++ |.. ## ..|
++ |.. 1## ..|
++ -&gt;|.. a##########9 ..|&lt;-
++ |.. c#2 ..|
++ |.. 9##########a ..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb124 '네'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 3 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |...bb bb #c..|
++ |...## ## ##..|
++ |...## ## ##..|
++ |...## ## ##..|
++ |...## ## ##..|
++ |...## 3##### ##..|
++ |...## ## ##..|
++ |...## ## ##..|
++ |...## ## ##..|
++ |...## 486## ##..|
++ |...a#####8## ##..|
++ -&gt;|... 11 ## ##..|&lt;-
++ |... ## ##..|
++ |... cc ##..|
++ |... 44..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb137 '넷'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..bb 99 #c ..|
++ |..## ## ## ..|
++ |..## ## ## ..|
++ |..## 2##### ## ..|
++ |..## ## ## ..|
++ |..## ## ## ..|
++ |..##2 1## ## ..|
++ |..7######## ## ..|
++ |.. cc ## ..|
++ |.. 78 33 ..|
++ |.. 5##7 ..|
++ -&gt;|.. 3####3 ..|&lt;-
++ |.. 7##21##8 ..|
++ |..7###8 19###3..|
++ |..385 441..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb144 '년'
++ Font: gulim (17)
++ Bitmap: 13 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..99 cc...|
++ |..## ##...|
++ |..## b#####...|
++ |..## ##...|
++ |..## ##...|
++ |..## b#####...|
++ |..##1 11 ##...|
++ |..8#######5 ##...|
++ |.. 122 ##...|
++ |.. 33 ##...|
++ |.. ##1 aa...|
++ -&gt;|.. ##1 ...|&lt;-
++ |.. ##2 ...|
++ |.. 8##########c...|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb178 '노'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 77 .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ##1 .|
++ |. 7##########c .|
++ |. .|
++ |. bb .|
++ |. ## .|
++ -&gt;|. ## .|&lt;-
++ |. ## .|
++ |.2##############1.|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb192 '높'
++ Font: gulim (17)
++ Bitmap: 15 x 15
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 11 ..|
++ |. ## ..|
++ |. ## ..|
++ |. ## ..|
++ |. ## ..|
++ |. 8##########a ..|
++ |. 1## ..|
++ |. 1## ..|
++ |.7#############a..|
++ |. ..|
++ |. 2###########b ..|
++ |. 3#b b#1 ..|
++ -&gt;|. 1#c ## ..|&lt;-
++ |. ## ## ..|
++ |. b###########b ..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb204 '누'
++ Font: gulim (17)
++ Bitmap: 15 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 9a .|
++ |.. ##1 .|
++ |.. ##1 .|
++ |.. ##1 .|
++ |.. ##3 .|
++ |.. 6###########3 .|
++ |.. .|
++ |.. .|
++ |..b#############5.|
++ |.. ##1 .|
++ |.. ##1 .|
++ -&gt;|.. ##1 .|&lt;-
++ |.. ##1 .|
++ |.. ##1 .|
++ |.. 55 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb205 '눅'
++ Font: gulim (17)
++ Bitmap: 15 x 16
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 11 ..|
++ |. 1## ..|
++ |. 1## ..|
++ |. 1## ..|
++ |. 1##1 ..|
++ |. 9###########2..|
++ |. ..|
++ |. ..|
++ |.5#############a..|
++ |. ## ..|
++ |. ## ..|
++ |. 2###########9 ..|
++ -&gt;|. 1## ..|&lt;-
++ |. ## ..|
++ |. ## ..|
++ |. #c ..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb20c '눌'
++ Font: gulim (17)
++ Bitmap: 15 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 9a ..|
++ |. ##1 ..|
++ |. ##1 ..|
++ |. ##3 ..|
++ |. 7###########3..|
++ |. ..|
++ |.1#############c..|
++ |. ## ..|
++ |. ## ..|
++ |. b##########a ..|
++ |. ## ..|
++ -&gt;|. b##########9 ..|&lt;-
++ |. ## ..|
++ |. a###########5..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb274 '뉴'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 9a .|
++ |. ##1 .|
++ |. ##1 .|
++ |. ##1 .|
++ |. ##3 .|
++ |. 7##########b .|
++ |. .|
++ |. .|
++ |.1##############1.|
++ |. ## ## .|
++ |. ## ## .|
++ -&gt;|. ## ## .|&lt;-
++ |. ## ## .|
++ |. ## ## .|
++ |. 33 55 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb294 '는'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 45 .|
++ |. ##1 .|
++ |. ##1 .|
++ |. ##1 .|
++ |. ##3 .|
++ |. 7########### .|
++ |. .|
++ |. .|
++ |.1##############1.|
++ |. 55 .|
++ |. ## .|
++ -&gt;|. ## .|&lt;-
++ |. ##1 .|
++ |. 8###########2 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb2a5 '능'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. c#1 .|
++ |. ##1 .|
++ |. ##1 .|
++ |. ##2 .|
++ |. 8##########b .|
++ |. .|
++ |. .|
++ |.1#############c1.|
++ |. .|
++ |. 18######5 .|
++ |. 5##a3115###3 .|
++ -&gt;|. ##3 4#c .|&lt;-
++ |. ##2 3#c .|
++ |. 4##a4 14b##4 .|
++ |. 17######71 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb2c8 '니'
++ Font: gulim (17)
++ Bitmap: 12 x 15
++ Advance: 18
++ Offset: 3 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |...cb cc...|
++ |...## ##...|
++ |...## ##...|
++ |...## ##...|
++ |...## ##...|
++ |...## ##...|
++ |...## ##...|
++ |...## ##...|
++ |...## ##...|
++ |...##1 147###...|
++ |...8###########...|
++ -&gt;|... ##...|&lt;-
++ |... ##...|
++ |... ##...|
++ |... 33...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb2d9 '닙'
++ Font: gulim (17)
++ Bitmap: 13 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..bc c#...|
++ |..## ##...|
++ |..## ##...|
++ |..## ##...|
++ |..##1 26b##...|
++ |..8############...|
++ |.. 111 ##...|
++ |.. 77...|
++ |.. bb ab...|
++ |.. ## ##...|
++ |.. ###########...|
++ -&gt;|.. ## ##...|&lt;-
++ |.. ## 1##...|
++ |.. 9#########8...|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb2e4 '다'
++ Font: gulim (17)
++ Bitmap: 15 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..7#######1 c# .|
++ |..##1 ## .|
++ |..## ## .|
++ |..## ## .|
++ |..## ## .|
++ |..## ####3.|
++ |..## ## .|
++ |..## ## .|
++ |..## ## .|
++ |..##1 259### .|
++ |..8#######a6## .|
++ -&gt;|.. ## .|&lt;-
++ |.. ## .|
++ |.. ## .|
++ |.. 66 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb2e8 '단'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.6#######a #c .|
++ |.##2 1## .|
++ |.## 1## .|
++ |.## 1####2.|
++ |.## 1## .|
++ |.## 1## .|
++ |.##1 137b### .|
++ |.7######a1 1## .|
++ |. 1## .|
++ |. c#1 1## .|
++ |. ##1 a9 .|
++ -&gt;|. ##1 .|&lt;-
++ |. ##2 .|
++ |. 8###########4 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb2ec '달'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.6#######a #c .|
++ |.##2 1## .|
++ |.## 1## .|
++ |.## 1####2.|
++ |.## 1## .|
++ |.##1 136c### .|
++ |.7######a1 1## .|
++ |. 33 .|
++ |. a##########a .|
++ |. ##1 .|
++ |. 8##########c .|
++ -&gt;|. c#2 .|&lt;-
++ |. c#2 .|
++ |. 9##########a .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb2f9 '당'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.6#######a #c .|
++ |.##2 1## .|
++ |.## 1## .|
++ |.## 1####2.|
++ |.## 1## .|
++ |.##1 149### .|
++ |.8########b8## .|
++ |. 11 1## .|
++ |. 87 .|
++ |. 2a######81 .|
++ |. 6##71 19##4 .|
++ -&gt;|. ##2 3## .|&lt;-
++ |. c#4 3## .|
++ |. 3##c4115###3 .|
++ |. 5######6 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb300 '대'
++ Font: gulim (17)
++ Bitmap: 12 x 15
++ Advance: 18
++ Offset: 3 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |...7#####2cc c#...|
++ |...##1 ## ##...|
++ |...## ## ##...|
++ |...## ## ##...|
++ |...## ## ##...|
++ |...## #####...|
++ |...## ## ##...|
++ |...## ## ##...|
++ |...## ## ##...|
++ |...## ## ##...|
++ |...##1 25a## ##...|
++ -&gt;|...6######## ##...|&lt;-
++ |... ## ##...|
++ |... ## ##...|
++ |... 22 55...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb354 '더'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 7######c c#...|
++ |.. ##1 ##...|
++ |..1## ##...|
++ |..1## ##...|
++ |..1## ##...|
++ |..1## 4######...|
++ |..1## ##...|
++ |..1## ##...|
++ |..1## ##...|
++ |..1## ##...|
++ |.. ##21359#b1##...|
++ -&gt;|.. 8######c5 ##...|&lt;-
++ |.. ##...|
++ |.. ##...|
++ |.. 44...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb370 '데'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 3 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |...6####b cc #c..|
++ |...##1 ## ##..|
++ |...## ## ##..|
++ |...## ## ##..|
++ |...## ## ##..|
++ |...## 3##### ##..|
++ |...## ## ##..|
++ |...## ## ##..|
++ |...## ## ##..|
++ |...## 1485## ##..|
++ |...9#####6## ##..|
++ -&gt;|... ## ##..|&lt;-
++ |... ## ##..|
++ |... ## ##..|
++ |... 55..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb3c4 '도'
++ Font: gulim (17)
++ Bitmap: 16 x 13
++ Advance: 18
++ Offset: 1 x -1
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 7##########a .|
++ |. ##1 .|
++ |. 1## .|
++ |. 1## .|
++ |. 1## .|
++ |. 1## .|
++ |. ##1 .|
++ |. 6##########c .|
++ |. 77 .|
++ |. ## .|
++ |. ## .|
++ -&gt;|. ## .|&lt;-
++ |.1##############1.|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb3cc '돌'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 7##########c .|
++ |. ##2 .|
++ |. ##1 .|
++ |. ##2 .|
++ |. 6##########b .|
++ |. ## .|
++ |.1##############1.|
++ |. .|
++ |. b##########7 .|
++ |. ## .|
++ |. 1## .|
++ -&gt;|. a##########8 .|&lt;-
++ |. c#2 .|
++ |. 9###########2 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb3d9 '동'
++ Font: gulim (17)
++ Bitmap: 15 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 7##########b ..|
++ |. ##2 ..|
++ |. ##1 ..|
++ |. ##2 ..|
++ |. 8##########b ..|
++ |. ## ..|
++ |. ## ..|
++ |.1##############..|
++ |. ..|
++ |. 2a######81 ..|
++ |. 6##71 18##4 ..|
++ -&gt;|. ##2 2## ..|&lt;-
++ |. ##4 3## ..|
++ |. 3##c4115###3 ..|
++ |. 5######6 ..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb418 '되'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 3 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |... 9#######8 #c..|
++ |...1##1 ##..|
++ |...1## ##..|
++ |...1## ##..|
++ |...1## ##..|
++ |...1## ##..|
++ |...1##1 ##..|
++ |... 7#######a ##..|
++ |... ## ##..|
++ |... ## ##..|
++ |... 1## 259##..|
++ -&gt;|...9############..|&lt;-
++ |... ##..|
++ |... ##..|
++ |... 66..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb41c '된'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 8########1cc ..|
++ |.. ##3 ## ..|
++ |.. ##1 ## ..|
++ |.. ##1 ## ..|
++ |.. ##2 ## ..|
++ |.. 6########4## ..|
++ |.. ## ## ..|
++ |.. 1## 25a## ..|
++ |..c############ ..|
++ |.. 33 ## ..|
++ |.. ## bc ..|
++ -&gt;|.. ## ..|&lt;-
++ |.. ##1 ..|
++ |.. 8##########b..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb420 '될'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 8#######b ## ..|
++ |.. ##2 ## ..|
++ |.. ##1 ## ..|
++ |.. ##2 ## ..|
++ |.. 8########1## ..|
++ |.. ## 3## ..|
++ |.. ######## ..|
++ |..c#####3 ## ..|
++ |.. 22 ..|
++ |.. b#########b ..|
++ |.. 1## ..|
++ -&gt;|.. b#########9 ..|&lt;-
++ |.. ##1 ..|
++ |.. a##########7..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb428 '됨'
++ Font: gulim (17)
++ Bitmap: 13 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 8########1c#...|
++ |.. ##3 ##...|
++ |.. ##1 ##...|
++ |.. ##2 ##...|
++ |.. 8########4##...|
++ |.. ## ##...|
++ |.. 1## 29###...|
++ |..b#########c##...|
++ |.. 99...|
++ |.. 8#########7...|
++ |.. ##1 2##...|
++ -&gt;|.. ## 1##...|&lt;-
++ |.. ## 2##...|
++ |.. 9#########7...|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb429 '됩'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 8########1c#...|
++ |. ##3 ##...|
++ |. ##1 ##...|
++ |. ##2 ##...|
++ |. 8########4##...|
++ |. ## ##...|
++ |. 1## 14b##...|
++ |.4#############...|
++ |. 44 77...|
++ |. ## ##...|
++ |. ###########...|
++ -&gt;|. ## ##...|&lt;-
++ |. ##1 1##...|
++ |. 9#########8...|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb450 '두'
++ Font: gulim (17)
++ Bitmap: 15 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 7##########8 ..|
++ |. ##2 ..|
++ |. ##1 ..|
++ |. ##1 ..|
++ |. ##2 ..|
++ |. 7##########c ..|
++ |. ..|
++ |. ..|
++ |.1#############b..|
++ |. ## ..|
++ |. ## ..|
++ -&gt;|. ## ..|&lt;-
++ |. ## ..|
++ |. ## ..|
++ |. 22 ..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb458 '둘'
++ Font: gulim (17)
++ Bitmap: 15 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 7##########c ..|
++ |. ##2 ..|
++ |. ##1 ..|
++ |. ##1 ..|
++ |. 7###########2..|
++ |. ..|
++ |. ..|
++ |.1#############c..|
++ |. ## ..|
++ |. b##########a ..|
++ |. ## ..|
++ -&gt;|. a##########9 ..|&lt;-
++ |. ## ..|
++ |. a###########5..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb4a4 '뒤'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 6#######7 c#...|
++ |. ##2 ##...|
++ |. ##1 ##...|
++ |. ##1 ##...|
++ |. ##1 ##...|
++ |. 7#######a ##...|
++ |. ##...|
++ |. 1246a###...|
++ |.1##########9##...|
++ |. 1 ## ##...|
++ |. ## ##...|
++ -&gt;|. ## ##...|&lt;-
++ |. ## ##...|
++ |. ## ##...|
++ |. 22 56...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb4c8 '듈'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 8##########b .|
++ |. ##2 .|
++ |. ##1 .|
++ |. ##2 .|
++ |. 8###########1 .|
++ |. .|
++ |. .|
++ |.1##############1.|
++ |. ## ## .|
++ |. b##########a .|
++ |. 1## .|
++ -&gt;|. b##########a .|&lt;-
++ |. ## .|
++ |. b###########2 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb4dc '드'
++ Font: gulim (17)
++ Bitmap: 16 x 13
++ Advance: 18
++ Offset: 1 x -1
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 8##########a .|
++ |. ##1 .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |. ##1 .|
++ |. 7###########1 .|
++ |. .|
++ |. .|
++ |. .|
++ -&gt;|. .|&lt;-
++ |.1##############1.|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb4e0 '든'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 8##########a .|
++ |. ##2 .|
++ |. ##1 .|
++ |. ##1 .|
++ |. ##2 .|
++ |. 8##########b .|
++ |. .|
++ |. .|
++ |.1##############1.|
++ |. 33 .|
++ |. ## .|
++ -&gt;|. ## .|&lt;-
++ |. ##1 .|
++ |. 8##########b .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb4e4 '들'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 8##########c .|
++ |. ##2 .|
++ |. ##1 .|
++ |. ##2 .|
++ |. 7###########1 .|
++ |. .|
++ |.1##############1.|
++ |. .|
++ |. a##########7 .|
++ |. 1## .|
++ |. 2## .|
++ -&gt;|. a##########8 .|&lt;-
++ |. c#2 .|
++ |. 9##########c .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb514 '디'
++ Font: gulim (17)
++ Bitmap: 12 x 15
++ Advance: 18
++ Offset: 3 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |...5#######1 cc...|
++ |...##1 ##...|
++ |...## ##...|
++ |...## ##...|
++ |...## ##...|
++ |...## ##...|
++ |...## ##...|
++ |...## ##...|
++ |...## 1##...|
++ |...##3 149####...|
++ |...c#######c6##...|
++ -&gt;|...2b##4 ##...|&lt;-
++ |... ##...|
++ |... ##...|
++ |... 33...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb530 '따'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.8####b###b #c .|
++ |.##2 ##1 ## .|
++ |.## ## ## .|
++ |.## ## ## .|
++ |.## ## ## .|
++ |.## ## ## .|
++ |.## ## ####1.|
++ |.## ## ## .|
++ |.## ## ## .|
++ |.##124##225c## .|
++ |.a############ .|
++ -&gt;|. ## .|&lt;-
++ |. ## .|
++ |. ## .|
++ |. 33 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb54c '때'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..8###c##bcc c#...|
++ |..##1 ## ## ##...|
++ |..## ## ## ##...|
++ |..## ## ## ##...|
++ |..## ## ## ##...|
++ |..## ## ## ##...|
++ |..## ## #####...|
++ |..## ## ## ##...|
++ |..## ## ## ##...|
++ |..##11##14## ##...|
++ |..9######### ##...|
++ -&gt;|.. ## ##...|&lt;-
++ |.. ## ##...|
++ |.. cc ##...|
++ |.. 34...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb5a0 '떠'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 3 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |...7###a7####2#c..|
++ |...##1 ##1 ##..|
++ |...## ## ##..|
++ |...## ## ##..|
++ |...## ## ##..|
++ |...## ## 9####..|
++ |...## ## ##..|
++ |...## ## ##..|
++ |...## ## ##..|
++ |...## ## 11##..|
++ |...a###a8####8##..|
++ -&gt;|... ##..|&lt;-
++ |... ##..|
++ |... ##..|
++ |... 44..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb610 '또'
++ Font: gulim (17)
++ Bitmap: 14 x 13
++ Advance: 18
++ Offset: 2 x -1
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..7#####28#####6..|
++ |..## ## ..|
++ |..## ## ..|
++ |..## ## ..|
++ |..## ## ..|
++ |..## ## ..|
++ |..##1133 ## ..|
++ |..7#####48#####8..|
++ |.. ..|
++ |.. #c ..|
++ |.. ## ..|
++ -&gt;|.. ## ..|&lt;-
++ |..b############b..|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb73b '뜻'
++ Font: gulim (17)
++ Bitmap: 15 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 7#####28#####4..|
++ |. ##1 ## ..|
++ |. ## ## ..|
++ |. ## ## ..|
++ |. ## 122 ## ..|
++ |. 7#####48#####6..|
++ |. ..|
++ |. b############b..|
++ |. ..|
++ |. 3## ..|
++ |. c##8 ..|
++ -&gt;|. 2##69#7 ..|&lt;-
++ |. 2a##4 9##5 ..|
++ |.2###5 3###2..|
++ |. 11 ..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb77c '라'
++ Font: gulim (17)
++ Bitmap: 15 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..c######7 ## .|
++ |.. 1## ##1 .|
++ |.. ## ##1 .|
++ |.. ## ##1 .|
++ |.. 1## ##1 .|
++ |..a######9 ##1 .|
++ |..## ####3.|
++ |..## ##1 .|
++ |..## ##1 .|
++ |..## 26###1 .|
++ |..9###########1 .|
++ -&gt;|.. 1 ##1 .|&lt;-
++ |.. ##1 .|
++ |.. ##1 .|
++ |.. 44 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb798 '래'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..a#####7 bb c#...|
++ |.. 1## ## ##...|
++ |.. ## ## ##...|
++ |.. ## ## ##...|
++ |.. 1## ## ##...|
++ |..7#####9 #####...|
++ |..##1 ## ##...|
++ |..## ## ##...|
++ |..## ## ##...|
++ |..##1 16## ##...|
++ |..8######### ##...|
++ -&gt;|.. ## ##...|&lt;-
++ |.. ## ##...|
++ |.. cc ##...|
++ |.. 33...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb7a8 '램'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..a#####8 cc c# ..|
++ |.. 2## ## ## ..|
++ |.. 1## ## ## ..|
++ |..6#####9 ##### ..|
++ |..##2 ## ## ..|
++ |..## ## ## ..|
++ |..##1 29## ## ..|
++ |..7######### ## ..|
++ |.. 11 44 ..|
++ |.. 8#########9 ..|
++ |.. ## ##1..|
++ -&gt;|.. ## ##1..|&lt;-
++ |.. ## ##1..|
++ |.. 9#########9 ..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb7c9 '량'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.a#######8 ## .|
++ |. 1## ## .|
++ |. 1## ####2.|
++ |.6#######9 ## .|
++ |.c#3 ## .|
++ |.c#2 ####2.|
++ |.c#3 259### .|
++ |.6#########a## .|
++ |. ## .|
++ |. 2a######91 .|
++ |. 5##71 18##4 .|
++ -&gt;|. ##3 2## .|&lt;-
++ |. b#5 3## .|
++ |. 2###4115c##3 .|
++ |. 5######6 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb7ec '러'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. b######7 c#...|
++ |.. 1## ##...|
++ |.. ## ##...|
++ |.. ## ##...|
++ |.. 1## ##...|
++ |.. a######6 ##...|
++ |..1## 9####...|
++ |..1## ##...|
++ |..1## ##...|
++ |..1## 2474 ##...|
++ |.. 9#######8 ##...|
++ -&gt;|.. ##...|&lt;-
++ |.. ##...|
++ |.. ##...|
++ |.. 22...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb7f0 '런'
++ Font: gulim (17)
++ Bitmap: 13 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..a######7 cc...|
++ |.. 1## ##...|
++ |.. ## ##...|
++ |.. 1## ##...|
++ |..9######79####...|
++ |..##1 ##...|
++ |..## ##...|
++ |..##1 14762 ##...|
++ |..8######b2 ##...|
++ |.. 33 ##...|
++ |.. ## 88...|
++ -&gt;|.. ## ...|&lt;-
++ |.. ##1 ...|
++ |.. 8##########b...|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb7fd '럽'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. b######7 ba..|
++ |.. 1## ##..|
++ |.. ## ##..|
++ |.. 13334## ##..|
++ |.. c######59####..|
++ |..1## ##..|
++ |..1## 13684 ##..|
++ |.. 9#######5 #c..|
++ |.. 67 56..|
++ |.. ## ##..|
++ |.. ############..|
++ -&gt;|.. ## ##..|&lt;-
++ |.. ##1 1##..|
++ |.. 8##########8..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb808 '레'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 3 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |...b####8 bb ##..|
++ |... 1## ## ##..|
++ |... ## ## ##..|
++ |... ## ## ##..|
++ |... 1## ## ##..|
++ |...a####8 ## ##..|
++ |...## 8#### ##..|
++ |...## ## ##..|
++ |...## ## ##..|
++ |...## 243 ## ##..|
++ |...a######2## ##..|
++ -&gt;|... ## ##..|&lt;-
++ |... ## ##..|
++ |... cc ##..|
++ |... 33..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb809 '렉'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..a#####7 cc ##...|
++ |.. 2## ## ##...|
++ |.. ## ## ##...|
++ |.. 2## ## ##...|
++ |..9######### ##...|
++ |..##1 ## ##...|
++ |..##1 ## ##...|
++ |..a######c## ##...|
++ |.. 13321 66 76...|
++ |.. ...|
++ |.. 9##########9...|
++ -&gt;|.. 1##...|&lt;-
++ |.. ##...|
++ |.. ##...|
++ |.. ##...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb824 '려'
++ Font: gulim (17)
++ Bitmap: 12 x 15
++ Advance: 18
++ Offset: 3 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |...c#####8 c#...|
++ |... 1## ##...|
++ |... ## ##...|
++ |... ##b####...|
++ |... 1## ##...|
++ |...a#####9 ##...|
++ |...## ##...|
++ |...## ##...|
++ |...## 7####...|
++ |...## 121 ##...|
++ |...8######9 ##...|
++ -&gt;|... ##...|&lt;-
++ |... ##...|
++ |... ##...|
++ |... 66...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb825 '력'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 3 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |...c#####8 c# .|
++ |... 1## ##1.|
++ |... ## 9####1.|
++ |... 1## ##1.|
++ |...a#####9 ##1.|
++ |...## ##1.|
++ |...## 7####1.|
++ |...a######b ##1.|
++ |... 89 .|
++ |... .|
++ |... 9##########9 .|
++ -&gt;|... 1## .|&lt;-
++ |... ## .|
++ |... ## .|
++ |... ## .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb828 '련'
++ Font: gulim (17)
++ Bitmap: 13 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..b#####8 bb...|
++ |.. 1## ##...|
++ |.. ## ##...|
++ |.. ## a####...|
++ |..8#####a ##...|
++ |..##1 ##...|
++ |..##1 7####...|
++ |..##2 1232 ##...|
++ |..6######8 ##...|
++ |.. 33 ##...|
++ |.. ## #c...|
++ -&gt;|.. ## ...|&lt;-
++ |.. ##1 ...|
++ |.. 8##########b...|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb85c '로'
++ Font: gulim (17)
++ Bitmap: 14 x 13
++ Advance: 18
++ Offset: 2 x -1
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. b#########8 ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. 7#########b ..|
++ |.. ##2 ..|
++ |.. ##1 ..|
++ |.. ##1 ..|
++ |.. 9##########b ..|
++ |.. ## ..|
++ |.. ## ..|
++ -&gt;|.. ## ..|&lt;-
++ |..a############8..|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb85d '록'
++ Font: gulim (17)
++ Bitmap: 15 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. b##########7 ..|
++ |. 1## ..|
++ |. ## ..|
++ |. 9##########9 ..|
++ |. ##1 ..|
++ |. 9###########1..|
++ |. ## ..|
++ |. ## ..|
++ |.1#############a..|
++ |. ..|
++ |. b##########9 ..|
++ -&gt;|. ## ..|&lt;-
++ |. ## ..|
++ |. ## ..|
++ |. 89 ..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb860 '론'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. b##########8 ..|
++ |.. 1## ..|
++ |.. ## ..|
++ |.. 7##########a ..|
++ |.. ##2 ..|
++ |.. ##2 ..|
++ |.. 7##########a ..|
++ |.. ## ..|
++ |..b############b..|
++ |.. ..|
++ |.. c# ..|
++ -&gt;|.. ## ..|&lt;-
++ |.. ##2 ..|
++ |.. 8##########b ..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb8cc '료'
++ Font: gulim (17)
++ Bitmap: 15 x 13
++ Advance: 18
++ Offset: 2 x -1
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 5##########7 .|
++ |.. 1## .|
++ |.. ## .|
++ |.. 1## .|
++ |.. 9##########7 .|
++ |.. ##1 .|
++ |.. ##1 .|
++ |.. 9##########a .|
++ |.. .|
++ |.. 9a 99 .|
++ |.. ## ## .|
++ -&gt;|.. ## ## .|&lt;-
++ |..##############1.|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb8e8 '루'
++ Font: gulim (17)
++ Bitmap: 15 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. a##########8 ..|
++ |. 1## ..|
++ |. ## ..|
++ |. 9##########9 ..|
++ |. ## ..|
++ |. ## ..|
++ |. a###########2..|
++ |. ..|
++ |. ..|
++ |.1#############c..|
++ |. ## ..|
++ -&gt;|. ## ..|&lt;-
++ |. ## ..|
++ |. ## ..|
++ |. 44 ..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb958 '류'
++ Font: gulim (17)
++ Bitmap: 15 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. b##########8 .|
++ |.. 1## .|
++ |.. ## .|
++ |.. 9##########9 .|
++ |.. ## .|
++ |.. ## .|
++ |.. a###########1 .|
++ |.. .|
++ |.. .|
++ |..c#############2.|
++ |.. ## ## .|
++ -&gt;|.. ## ## .|&lt;-
++ |.. ## ## .|
++ |.. ## ## .|
++ |.. 44 77 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb960 '률'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. b##########7 ..|
++ |.. 2## ..|
++ |.. 2## ..|
++ |.. b##########6 ..|
++ |.. ## ..|
++ |.. 9###########2..|
++ |.. ..|
++ |..c############c..|
++ |.. ## ## ..|
++ |.. a##########a ..|
++ |.. 1## ..|
++ -&gt;|.. 8##########9 ..|&lt;-
++ |.. cc ..|
++ |.. 8##########c ..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb974 '르'
++ Font: gulim (17)
++ Bitmap: 14 x 13
++ Advance: 18
++ Offset: 2 x -1
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. a##########8 ..|
++ |.. 1## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. 8##########9 ..|
++ |.. ##1 ..|
++ |.. ## ..|
++ |.. ## ..|
++ |.. 9##########8 ..|
++ |.. ..|
++ |.. ..|
++ -&gt;|.. ..|&lt;-
++ |..b############b..|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb978 '른'
++ Font: gulim (17)
++ Bitmap: 15 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. b##########8 ..|
++ |. 1## ..|
++ |. 1## ..|
++ |. 9##########9 ..|
++ |. 1## ..|
++ |. 1## ..|
++ |. 9##########b ..|
++ |. ..|
++ |.6#############b..|
++ |. ..|
++ |. c# ..|
++ -&gt;|. ## ..|&lt;-
++ |. ##1 ..|
++ |. 8##########b ..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb97c '를'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. a##########9 .|
++ |. ##1 .|
++ |. 8##########a .|
++ |. ## .|
++ |. ## .|
++ |. 7###########2 .|
++ |. .|
++ |.1##############1.|
++ |. .|
++ |. a##########9 .|
++ |. 1## .|
++ -&gt;|. 9##########9 .|&lt;-
++ |. c#2 .|
++ |. 9##########8 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb984 '름'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. c##########7 .|
++ |. 2## .|
++ |. 1## .|
++ |. a##########7 .|
++ |. ## .|
++ |. a###########2 .|
++ |. .|
++ |.1##############1.|
++ |. .|
++ |. 7##########6 .|
++ |. ##1 1## .|
++ -&gt;|. ## ## .|&lt;-
++ |. ##1 1## .|
++ |. 7##########8 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb9ac '리'
++ Font: gulim (17)
++ Bitmap: 12 x 15
++ Advance: 18
++ Offset: 3 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |...c######7 c#...|
++ |... 1## ##...|
++ |... ## ##...|
++ |... ## ##...|
++ |... 1## ##...|
++ |...a######8 ##...|
++ |...## ##...|
++ |...## ##...|
++ |...## ##...|
++ |...## 14##...|
++ |...8###########...|
++ -&gt;|... ##...|&lt;-
++ |... ##...|
++ |... ##...|
++ |... 33...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb9b0 '린'
++ Font: gulim (17)
++ Bitmap: 13 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..a#######6 c#...|
++ |.. 2## ##...|
++ |.. ## ##...|
++ |.. 2## ##...|
++ |..9#######7 ##...|
++ |..c#2 ##...|
++ |..c#2 1##...|
++ |..9############...|
++ |.. 12111 ##...|
++ |.. 33 ##...|
++ |.. ## ...|
++ -&gt;|.. ## ...|&lt;-
++ |.. ##1 ...|
++ |.. 8##########b...|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb9bc '림'
++ Font: gulim (17)
++ Bitmap: 13 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..a#######7 bb...|
++ |.. 2## ##...|
++ |.. 1## ##...|
++ |..7#######8 ##...|
++ |..c#2 ##...|
++ |..c#1 2##...|
++ |..8############...|
++ |.. 222211 cc...|
++ |.. ...|
++ |.. a#########9...|
++ |.. ## ##...|
++ -&gt;|.. ## ##...|&lt;-
++ |.. ## ##...|
++ |.. 9#########9...|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb9c1 '링'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..a#######7 c#...|
++ |.. 1## ##...|
++ |.. 1## ##...|
++ |..7#######8 ##...|
++ |..c#2 ##...|
++ |..c#2 1##...|
++ |..8############...|
++ |.. 222211 ##...|
++ |.. 5######577...|
++ |.. 1###5114###1...|
++ |.. a#6 6#a...|
++ -&gt;|.. ## ##...|&lt;-
++ |.. b#4 5#c...|
++ |.. 2##a3 15###2...|
++ |.. 6######6 ...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb9c8 '마'
++ Font: gulim (17)
++ Bitmap: 15 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..8######7 c# .|
++ |..##1 1## ## .|
++ |..## ## ## .|
++ |..## ## ## .|
++ |..## ## ## .|
++ |..## ## ## .|
++ |..## ## ####4.|
++ |..## ## ## .|
++ |..## ## ## .|
++ |..##1 1## ## .|
++ |..7######7 ## .|
++ -&gt;|.. ## .|&lt;-
++ |.. ## .|
++ |.. ## .|
++ |.. 33 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb9c9 '막'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.7#######6 #c .|
++ |.##2 1## ## .|
++ |.## ## ## .|
++ |.## ## ####1.|
++ |.## ## ## .|
++ |.## ## ## .|
++ |.##2 1## ## .|
++ |.6#######6 ## .|
++ |. 88 .|
++ |. .|
++ |. 9##########9 .|
++ -&gt;|. 1## .|&lt;-
++ |. ## .|
++ |. ## .|
++ |. ## .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb9cc '만'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.7#######7 ba .|
++ |.##2 1## ## .|
++ |.## ## ## .|
++ |.## ## ## .|
++ |.## ## ####1.|
++ |.## ## ## .|
++ |.##1 1## ## .|
++ |.7#######7 ## .|
++ |. ## .|
++ |. 33 ## .|
++ |. ## #c .|
++ -&gt;|. ## .|&lt;-
++ |. ##1 .|
++ |. 8##########b .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb9ce '많'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.7#######6 #c .|
++ |.##2 1## ## .|
++ |.## ## ## .|
++ |.## ## ####1.|
++ |.## ## ## .|
++ |.##1 ## ## .|
++ |.7#######8 ## .|
++ |. 44 .|
++ |.11 a###9 .|
++ |.## a#######2 .|
++ |.## .|
++ -&gt;|.## 6#####5 .|&lt;-
++ |.##122 ##2 2## .|
++ |.8###c24#####5 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb9d0 '말'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.7#######6 #c .|
++ |.##2 1## ## .|
++ |.## ## ## .|
++ |.## ## ####1.|
++ |.## ## ## .|
++ |.##1 ## ## .|
++ |.7#######7 ## .|
++ |. 66 .|
++ |. ##########8 .|
++ |. ## .|
++ |. ## .|
++ -&gt;|. c#########9 .|&lt;-
++ |. ## .|
++ |. b##########6 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xb9e4 '매'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 3 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |...8#####8 cc cc..|
++ |...##1 1## ## ##..|
++ |...## ## ## ##..|
++ |...## ## ## ##..|
++ |...## ## ## ##..|
++ |...## ## #####..|
++ |...## ## ## ##..|
++ |...## ## ## ##..|
++ |...## ## ## ##..|
++ |...##1 2## ## ##..|
++ |...6#####6 ## ##..|
++ -&gt;|... ## ##..|&lt;-
++ |... ## ##..|
++ |... cc ##..|
++ |... 55..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xba38 '머'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 3 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |...8######7 #c..|
++ |...##1 1## ##..|
++ |...## ## ##..|
++ |...## ## ##..|
++ |...## ## ##..|
++ |...## ##9####..|
++ |...## ## ##..|
++ |...## ## ##..|
++ |...## ## ##..|
++ |...##1 1## ##..|
++ |...7######7 ##..|
++ -&gt;|... ##..|&lt;-
++ |... ##..|
++ |... ##..|
++ |... 55..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xba48 '멈'
++ Font: gulim (17)
++ Bitmap: 13 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..7#######6 89...|
++ |..##1 1## ##...|
++ |..## ## ##...|
++ |..## ######...|
++ |..## ## ##...|
++ |..##1 1## ##...|
++ |..7#######7 ##...|
++ |.. cc...|
++ |.. ...|
++ |.. a#########a...|
++ |.. ## 1##...|
++ -&gt;|.. ## ##...|&lt;-
++ |.. ## 1##...|
++ |.. a#########9...|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xba54 '메'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..7#####7 cc cc...|
++ |..##1 2## ## ##...|
++ |..## ## ## ##...|
++ |..## ## ## ##...|
++ |..## ## ## ##...|
++ |..## ##### ##...|
++ |..## ## ## ##...|
++ |..## ## ## ##...|
++ |..## ## ## ##...|
++ |..##2 2## ## ##...|
++ |..6#####6 ## ##...|
++ -&gt;|.. ## ##...|&lt;-
++ |.. ## ##...|
++ |.. cc ##...|
++ |.. 55...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xba74 '면'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..7#######7 bb ..|
++ |..##2 1## ## ..|
++ |..## ###### ..|
++ |..## ## ## ..|
++ |..## ## ## ..|
++ |..## ## ## ..|
++ |..##1 ###### ..|
++ |..7#######8 ## ..|
++ |.. ## ..|
++ |.. 33 ## ..|
++ |.. ## c# ..|
++ -&gt;|.. ## ..|&lt;-
++ |.. ## ..|
++ |.. 8##########a..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xba85 '명'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..7#######6 ab ..|
++ |..##2 1## c#1..|
++ |..## ######1..|
++ |..## ## c#1..|
++ |..## ## c#1..|
++ |..## ######1..|
++ |..##2 1## c#1..|
++ |..6#######6 c#1..|
++ |.. bc1..|
++ |.. 2a######91 ..|
++ |.. 5##71 18##4 ..|
++ -&gt;|.. ##3 2## ..|&lt;-
++ |.. b#5 3## ..|
++ |.. 2###4115c##4 ..|
++ |.. 5######6 ..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbaa8 '모'
++ Font: gulim (17)
++ Bitmap: 14 x 13
++ Advance: 18
++ Offset: 2 x -1
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 6##########6 ..|
++ |.. ##1 1## ..|
++ |.. ## ## ..|
++ |.. ## ## ..|
++ |.. ## ## ..|
++ |.. ## ## ..|
++ |.. ##2 2## ..|
++ |.. 5##########6 ..|
++ |.. ..|
++ |.. ## ..|
++ |.. ## ..|
++ -&gt;|.. ## ..|&lt;-
++ |..a############8..|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbaa9 '목'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 7##########7 ..|
++ |.. ##2 1## ..|
++ |.. ## ## ..|
++ |.. ## ## ..|
++ |.. ##2 2## ..|
++ |.. 6##########6 ..|
++ |.. ## ..|
++ |..b############b..|
++ |.. ..|
++ |.. ..|
++ |.. b##########8 ..|
++ -&gt;|.. 1## ..|&lt;-
++ |.. ## ..|
++ |.. ## ..|
++ |.. cc ..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbabb '못'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 7##########7 ..|
++ |.. ##2 1## ..|
++ |.. ## ## ..|
++ |.. ## ## ..|
++ |.. ##2 2## ..|
++ |.. 5##########6 ..|
++ |.. ## ..|
++ |.. ## ..|
++ |..c############b..|
++ |.. 11 ..|
++ |.. 5##4 ..|
++ -&gt;|.. 6####3 ..|&lt;-
++ |.. 16##8 2##6 ..|
++ |..9##b2 19##9 ..|
++ |.. 1 275 ..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbb34 '무'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 7##########6 ..|
++ |.. ##1 1## ..|
++ |.. ## ## ..|
++ |.. ## ## ..|
++ |.. ## ## ..|
++ |.. ##2 2## ..|
++ |.. 5##########6 ..|
++ |.. ..|
++ |..b############b..|
++ |.. ## ..|
++ |.. ## ..|
++ -&gt;|.. ## ..|&lt;-
++ |.. ## ..|
++ |.. ## ..|
++ |.. 11 ..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbb38 '문'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 7##########6 ..|
++ |.. ##1 1## ..|
++ |.. ## ## ..|
++ |.. ## ## ..|
++ |.. ##1 1## ..|
++ |.. 7##########8 ..|
++ |.. ..|
++ |.. ..|
++ |..##############..|
++ |.. ## ..|
++ |.. cc ## ..|
++ -&gt;|.. ## aa ..|&lt;-
++ |.. ##1 ..|
++ |.. 9##########c ..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbb3c '물'
++ Font: gulim (17)
++ Bitmap: 15 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 7##########7 ..|
++ |. ##1 1## ..|
++ |. ## ## ..|
++ |. ##1 ## ..|
++ |. 7##########8 ..|
++ |. ..|
++ |. ..|
++ |.1#############c..|
++ |. ## ..|
++ |. b##########9 ..|
++ |. 1## ..|
++ -&gt;|. a##########8 ..|&lt;-
++ |. ## ..|
++ |. a###########4..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbbc0 '므'
++ Font: gulim (17)
++ Bitmap: 14 x 13
++ Advance: 18
++ Offset: 2 x -1
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 7##########6 ..|
++ |.. ##2 1## ..|
++ |.. ## ## ..|
++ |.. ## ## ..|
++ |.. ## ## ..|
++ |.. ## ## ..|
++ |.. ##2 2## ..|
++ |.. 5##########6 ..|
++ |.. ..|
++ |.. ..|
++ |.. ..|
++ -&gt;|.. ..|&lt;-
++ |..b############b..|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbbf8 '미'
++ Font: gulim (17)
++ Bitmap: 12 x 15
++ Advance: 18
++ Offset: 3 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |...8######7 c#...|
++ |...##1 1## ##...|
++ |...## ## ##...|
++ |...## ## ##...|
++ |...## ## ##...|
++ |...## ## ##...|
++ |...## ## ##...|
++ |...## ## ##...|
++ |...## ## ##...|
++ |...##1 1## ##...|
++ |...7######6 ##...|
++ -&gt;|... ##...|&lt;-
++ |... ##...|
++ |... ##...|
++ |... 55...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbc0f '및'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..7#######7 c#...|
++ |..##2 1## ##...|
++ |..## ## ##...|
++ |..## ## ##...|
++ |..## ## ##...|
++ |..##1 ## ##...|
++ |..7#######8 ##...|
++ |.. c#...|
++ |.. a####a ...|
++ |.. ...|
++ |.. 8##########b...|
++ -&gt;|.. 1c##1 ...|&lt;-
++ |.. 17#####6 ...|
++ |.. c###b2 2b##c...|
++ |.. 1 22...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbc14 '바'
++ Font: gulim (17)
++ Bitmap: 15 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..c# cc #c .|
++ |..## ## ## .|
++ |..## ## ## .|
++ |..## ## ## .|
++ |..######## ## .|
++ |..## ## ## .|
++ |..## ## ####3.|
++ |..## ## ## .|
++ |..## ## ## .|
++ |..##2 2## ## .|
++ |..7######6 ## .|
++ -&gt;|.. ## .|&lt;-
++ |.. ## .|
++ |.. ## .|
++ |.. 44 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbc18 '반'
++ Font: gulim (17)
++ Bitmap: 15 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..88 9a a9 .|
++ |..## ##1 ## .|
++ |..## ##1 ## .|
++ |..########1 ###c.|
++ |..## ##1 ## .|
++ |..## ##1 ## .|
++ |..## ##1 ## .|
++ |..##1 1## ## .|
++ |..7######7 ## .|
++ |.. 33 ## .|
++ |.. ## #c .|
++ -&gt;|.. ## .|&lt;-
++ |.. ##2 .|
++ |.. 8##########c .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbc1c '발'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..cb c# c# |
++ |..## ##1 ##1 |
++ |..## ##1 ##1 |
++ |..########1 ####1|
++ |..## ##1 ##1 |
++ |..## ##1 ##1 |
++ |..9######9 ##1 |
++ |.. 55 |
++ |.. b##########7 |
++ |.. 1## |
++ |.. 1## |
++ -&gt;|.. a##########8 |&lt;-
++ |.. c#2 |
++ |.. 9##########8 |
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbc29 '방'
++ Font: gulim (17)
++ Bitmap: 15 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..bb cc cc .|
++ |..## ##1 ## .|
++ |..## ##1 ## .|
++ |..########1 ## .|
++ |..## ##1 ###c.|
++ |..## ##1 ## .|
++ |..##1 1## ## .|
++ |..7######7 ## .|
++ |.. #c .|
++ |.. 2b######81 .|
++ |.. 6##6 19##4 .|
++ -&gt;|.. ##2 3#c .|&lt;-
++ |.. ##3 4#c .|
++ |.. 3##b4115###3 .|
++ |.. 6######6 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbc30 '배'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. cc c# cc #c..|
++ |..1## ## ## ##..|
++ |..1## ## ## ##..|
++ |..1## ## ## ##..|
++ |..1###### ## ##..|
++ |..1## ## ######..|
++ |..1## ## ## ##..|
++ |..1## ## ## ##..|
++ |..1## ## ## ##..|
++ |.. ##11## ## ##..|
++ |.. 8####8 ## ##..|
++ -&gt;|.. ## ##..|&lt;-
++ |.. ## ##..|
++ |.. cc ##..|
++ |.. 33..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbc31 '백'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. ## c# cc c#..|
++ |..1## ## ## ##..|
++ |..1## ## ## ##..|
++ |..1###### ######..|
++ |..1## ## ## ##..|
++ |..1## ## ## ##..|
++ |..1## 1## ## ##..|
++ |.. 9####9 ## ##..|
++ |.. 33 88..|
++ |.. ..|
++ |.. 9##########9..|
++ -&gt;|.. 1##..|&lt;-
++ |.. ##..|
++ |.. ##..|
++ |.. ##..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbc84 '버'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..c# #c cc...|
++ |..## 1## ##...|
++ |..## 1## ##...|
++ |..## 1## ##...|
++ |..######## ##...|
++ |..## 1#######...|
++ |..## 1## ##...|
++ |..## 1## ##...|
++ |..## 1## ##...|
++ |..##1 2## ##...|
++ |..6######6 ##...|
++ -&gt;|.. ##...|&lt;-
++ |.. ##...|
++ |.. ##...|
++ |.. 33...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbc88 '번'
++ Font: gulim (17)
++ Bitmap: 13 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..c# #c cc...|
++ |..## 1## ##...|
++ |..## 1## ##...|
++ |..######## ##...|
++ |..## 1#######...|
++ |..## 1## ##...|
++ |..## 1## ##...|
++ |..##1 2## ##...|
++ |..6######6 ##...|
++ |.. 33 ##...|
++ |.. ## 88...|
++ -&gt;|.. ## ...|&lt;-
++ |.. ##1 ...|
++ |.. 8##########b...|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbcbd '벽'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 3 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |...#c cc ##..|
++ |...## ## ##..|
++ |...## ##9####..|
++ |...######## ##..|
++ |...## ## ##..|
++ |...## ## ##..|
++ |...## 1##a####..|
++ |...9######8 ##..|
++ |... 77..|
++ |... ..|
++ |... 9##########9..|
++ -&gt;|... 1##..|&lt;-
++ |... ##..|
++ |... ##..|
++ |... ##..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbcc0 '변'
++ Font: gulim (17)
++ Bitmap: 13 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..99 88 99...|
++ |..##1 ## ##...|
++ |..##1 ##a####...|
++ |..######## ##...|
++ |..##1 ## ##...|
++ |..##1 ## ##...|
++ |..##1 1##a####...|
++ |..8######9 ##...|
++ |.. ##...|
++ |.. 33 ##...|
++ |.. ## #c...|
++ -&gt;|.. ## ...|&lt;-
++ |.. ##1 ...|
++ |.. 8##########b...|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbcf4 '보'
++ Font: gulim (17)
++ Bitmap: 15 x 13
++ Advance: 18
++ Offset: 1 x -1
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. ab ab ..|
++ |. ## ## ..|
++ |. ## ## ..|
++ |. ########### ..|
++ |. ## ## ..|
++ |. ## ## ..|
++ |. ## ## ..|
++ |. ##2 1## ..|
++ |. 6#########8 ..|
++ |. ## ..|
++ |. ## ..|
++ -&gt;|. ## ..|&lt;-
++ |.3#############5..|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbcf5 '복'
++ Font: gulim (17)
++ Bitmap: 16 x 16
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 11 11 .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ############ .|
++ |. ## ## .|
++ |. ##1 1## .|
++ |. 7##########7 .|
++ |. ## .|
++ |. ## .|
++ |.3#############c1.|
++ |. .|
++ |. ###########9 .|
++ -&gt;|. 1## .|&lt;-
++ |. ## .|
++ |. ## .|
++ |. 99 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbcf8 '본'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 77 77 .|
++ |. ## ## .|
++ |. ############ .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ##1 1## .|
++ |. 6##########6 .|
++ |. ## .|
++ |.1##############1.|
++ |. .|
++ |. cc .|
++ -&gt;|. ## .|&lt;-
++ |. ##1 .|
++ |. 8########### .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbcfc '볼'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 77 77 .|
++ |. ## ## .|
++ |. ############ .|
++ |. ## ## .|
++ |. ##1 1## .|
++ |. 6##########6 .|
++ |. ## .|
++ |.1##############1.|
++ |. .|
++ |. c##########a .|
++ |. 1## .|
++ -&gt;|. b##########9 .|&lt;-
++ |. ## .|
++ |. b##########a .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbd80 '부'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. ab aa .|
++ |. ## ## .|
++ |. ############ .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ##2 1## .|
++ |. 6##########6 .|
++ |. .|
++ |. .|
++ |.1##############1.|
++ |. ## .|
++ -&gt;|. ## .|&lt;-
++ |. ## .|
++ |. ## .|
++ |. 66 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbd81 '북'
++ Font: gulim (17)
++ Bitmap: 16 x 16
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 11 .|
++ |. ## 1#c .|
++ |. ## 1#c .|
++ |. ###########c .|
++ |. ## 1#c .|
++ |. ##1 2#c .|
++ |. 7##########6 .|
++ |. .|
++ |. .|
++ |.3##############1.|
++ |. ## .|
++ |. 1###########6 .|
++ -&gt;|. 2## .|&lt;-
++ |. ## .|
++ |. ## .|
++ |. 66 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbd84 '분'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 66 66 .|
++ |. ## ## .|
++ |. ############ .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ##2 2## .|
++ |. 6##########6 .|
++ |. .|
++ |.1##############1.|
++ |. ## .|
++ |. c# ## .|
++ -&gt;|. ## aa .|&lt;-
++ |. ##1 .|
++ |. 8##########b .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbd88 '불'
++ Font: gulim (17)
++ Bitmap: 15 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 66 66 ..|
++ |. ## ## ..|
++ |. ############ ..|
++ |. ## ## ..|
++ |. ##2 2## ..|
++ |. 6##########6 ..|
++ |. ..|
++ |.2#############c..|
++ |. ## ..|
++ |. c##########a ..|
++ |. ##1..|
++ -&gt;|. b##########9 ..|&lt;-
++ |. 1## ..|
++ |. a###########5..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbe0c '브'
++ Font: gulim (17)
++ Bitmap: 16 x 13
++ Advance: 18
++ Offset: 1 x -1
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. ## ba .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ############ .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ##1 1## .|
++ |. 8##########9 .|
++ |. .|
++ |. .|
++ -&gt;|. .|&lt;-
++ |.1##############1.|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbe14 '블'
++ Font: gulim (17)
++ Bitmap: 15 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 9a 99 ..|
++ |. ## cc ..|
++ |. ############ ..|
++ |. ## cc ..|
++ |. ##2 ## ..|
++ |. 5##########5 ..|
++ |. ..|
++ |.1c############c..|
++ |. ..|
++ |. b##########a ..|
++ |. 1## ..|
++ -&gt;|. a##########9 ..|&lt;-
++ |. c#2 ..|
++ |. 9##########c ..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbe44 '비'
++ Font: gulim (17)
++ Bitmap: 12 x 15
++ Advance: 18
++ Offset: 3 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |...cc cc c#...|
++ |...## ## ##...|
++ |...## ## ##...|
++ |...## ## ##...|
++ |...######## ##...|
++ |...## ## ##...|
++ |...## ## ##...|
++ |...## ## ##...|
++ |...## ## ##...|
++ |...## 2## ##...|
++ |...7######7 ##...|
++ -&gt;|... ##...|&lt;-
++ |... ##...|
++ |... ##...|
++ |... 33...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbed7 '뻗'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..77 aabb bb cc ..|
++ |..cc cccc cc ## ..|
++ |..cc cccc cc ## ..|
++ |..c###cc#### ## ..|
++ |..cc cccc c#### ..|
++ |..cc cccc cc ## ..|
++ |..cc #ccc ## ## ..|
++ |..8###88###a ## ..|
++ |.. 55 ..|
++ |.. 7##########9..|
++ |.. ## ..|
++ -&gt;|.. ## ..|&lt;-
++ |.. ## ..|
++ |.. 8##########a..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xbfd0 '뿐'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. bb 6666 bb .|
++ |. cc cc## ## .|
++ |. #####c###### .|
++ |. cc cc## ## .|
++ |. cc cc## ## .|
++ |. ## 1#c##1 ## .|
++ |. 7####67####7 .|
++ |. .|
++ |.1##############1.|
++ |. ## .|
++ |. cc ## .|
++ -&gt;|. ## aa .|&lt;-
++ |. ##1 .|
++ |. 8##########c .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc0ac '사'
++ Font: gulim (17)
++ Bitmap: 17 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 1ca #c |
++ |. 3## ## |
++ |. 4##1 ## |
++ |. 6##3 ## |
++ |. 9##6 ## |
++ |. c##9 ####4|
++ |. 4#a## ## |
++ |. b#38#5 ## |
++ |. 5#a 2##1 ## |
++ |. 2##2 6#a ## |
++ |.4##3 8#91## |
++ -&gt;|.692 781## |&lt;-
++ |. ## |
++ |. ## |
++ |. 44 |
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc0b4 '살'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. b#2 #c .|
++ |. 1##5 ## .|
++ |. 6##a ## .|
++ |. 1##c#3 ####3.|
++ |. a#63##2 ## .|
++ |. a#9 5##3 ## .|
++ |.b#7 3##4## .|
++ |. 1 44 .|
++ |. b#########8 .|
++ |. ## .|
++ |. ## .|
++ -&gt;|. a#########9 .|&lt;-
++ |. c#2 .|
++ |. 9##########7 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc0bd '삽'
++ Font: gulim (17)
++ Bitmap: 17 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 8#6 #c |
++ |. b#9 ## |
++ |. 2### ## |
++ |. 9###6 ####3|
++ |. 5#a1##3 ## |
++ |. 4##1 3##4 ## |
++ |.7##1 2##6 ## |
++ |.22 32 66 |
++ |. bb aa |
++ |. ## ## |
++ |. ############ |
++ -&gt;|. ## ## |&lt;-
++ |. ##1 1## |
++ |. 8##########8 |
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc0c1 '상'
++ Font: gulim (17)
++ Bitmap: 17 x 15
++ Advance: 18
++ Offset: 0 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ | 3#b #c .|
++ | 5## ## .|
++ | a##4 ## .|
++ | 2###a ####2.|
++ | b#3a#6 ## .|
++ | a#8 1##6 ## .|
++ |1##7 1##9 ## .|
++ |154 55 ## .|
++ | 88 .|
++ | 29######a2 .|
++ | 5##71 17##5 .|
++ -&gt;| c#2 2## .|&lt;-
++ | c#2 2## .|
++ | 4##82 14a##5 .|
++ | 18######81 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc0c8 '새'
++ Font: gulim (17)
++ Bitmap: 15 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. bb cc #c..|
++ |. ## ## ##..|
++ |. ## ## ##..|
++ |. ## ## ##..|
++ |. 2##2 ## ##..|
++ |. 5##6 ## ##..|
++ |. a##a ######..|
++ |. 1####1 ## ##..|
++ |. 7#78#6 ## ##..|
++ |. 2##11#c ## ##..|
++ |. c#5 7#7## ##..|
++ -&gt;|.2a8 ba## ##..|&lt;-
++ |. ## ##..|
++ |. cc ##..|
++ |. 33..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc0c9 '색'
++ Font: gulim (17)
++ Bitmap: 15 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 6#7 cc bc1..|
++ |. 7#9 ## c#1..|
++ |. 9#b ## c#1..|
++ |. c## #####1..|
++ |. 4###5 ## c#1..|
++ |. c#7##1 ## c#1..|
++ |. a#8 8#b ## c#1..|
++ |.6#9 8#8## c#1..|
++ |. 22 67 ..|
++ |. 8##########9 ..|
++ |. 1## ..|
++ -&gt;|. ## ..|&lt;-
++ |. ## ..|
++ |. ## ..|
++ |. 55 ..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc0dd '생'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. b#1 cc 1#b..|
++ |.. ##3 ## 2#c..|
++ |.. 1##5 ## 2#c..|
++ |.. 4##8 #####c..|
++ |.. a### ## 2#c..|
++ |.. 4#b9#7 ## 2#c..|
++ |..2##21##5## 2#c..|
++ |..b#3 2#### 2#c..|
++ |.. 22 76..|
++ |.. 17######6 ..|
++ |.. 4##b4114c##3..|
++ -&gt;|.. c#4 4#c..|&lt;-
++ |.. c#4 3#c..|
++ |.. 3##b4114b##4..|
++ |.. 6######71 ..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc11c '서'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. cc c#..|
++ |.. ## ##..|
++ |.. ## ##..|
++ |.. 1## ##..|
++ |.. 3##3 ##..|
++ |.. 8##7 c#####..|
++ |.. #### ##..|
++ |.. 6#9a#5 ##..|
++ |.. ##23#c ##..|
++ |.. 8#8 9#7 ##..|
++ |..7##1 1##6 ##..|
++ -&gt;|..9b2 2#c ##..|&lt;-
++ |.. ##..|
++ |.. ##..|
++ |.. 33..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc120 '선'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 99 aa..|
++ |.. 1## ##..|
++ |.. 4##3 ##..|
++ |.. 7##6 ##..|
++ |.. c##c 9#####..|
++ |.. 6#9a#5 ##..|
++ |.. 1##22##1 ##..|
++ |.. b#5 5#b ##..|
++ |..7#7 7#7 ##..|
++ |.. 33 ##..|
++ |.. ## cc..|
++ -&gt;|.. ## ..|&lt;-
++ |.. ##1 ..|
++ |.. 9##########b..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc124 '설'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 1ca cc..|
++ |.. 4## ##..|
++ |.. 8##4 ##..|
++ |.. ###9 9#####..|
++ |.. 6#ac#2 ##..|
++ |.. 3##24##1 ##..|
++ |..3##5 7##2 ##..|
++ |..8c3 494 77..|
++ |.. ..|
++ |.. c##########a..|
++ |.. 1##..|
++ -&gt;|.. b##########9..|&lt;-
++ |.. ## ..|
++ |.. a##########b..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc131 '성'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. cc #c..|
++ |.. 3##1 1##..|
++ |.. 7##5 1##..|
++ |.. c##a 9#####..|
++ |.. 5#ab#4 1##..|
++ |.. 2##23##1 1##..|
++ |..1##6 6#c 1##..|
++ |..a#6 6#7 1##..|
++ |.. a9..|
++ |.. 2b######81 ..|
++ |.. 6##6 19##4..|
++ -&gt;|.. ##2 3#c..|&lt;-
++ |.. c#4 4#c..|
++ |.. 3##c4115###3..|
++ |.. 5######6 ..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc138 '세'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. cc cc c#..|
++ |.. ## ## ##..|
++ |.. ## ## ##..|
++ |.. ## ## ##..|
++ |.. ## ## ##..|
++ |.. 3##19#### ##..|
++ |.. 6##5 ## ##..|
++ |.. a##a ## ##..|
++ |.. 1##c#1 ## ##..|
++ |.. 8#76#8 ## ##..|
++ |..2##1 b#6 ## ##..|
++ -&gt;|..9#4 1c#3## ##..|&lt;-
++ |.. ## ##..|
++ |.. cc ##..|
++ |.. 55..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc14b '셋'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 99 99 #c..|
++ |.. ## ## ##..|
++ |.. 1##1 ## ##..|
++ |.. 3##a#### ##..|
++ |.. 7##7 ## ##..|
++ |.. 1####1 ## ##..|
++ |.. a#67#9 ## ##..|
++ |..8#9 b#7## ##..|
++ |..33 22cc #c..|
++ |.. 396 ..|
++ |.. b##1 ..|
++ -&gt;|.. 9#b#c1 ..|&lt;-
++ |.. 3##8 5##4 ..|
++ |.. 4###3 2###6..|
++ |.. 21 131..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc158 '션'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 99 aa..|
++ |.. 1## ##..|
++ |.. 3##3 4#####..|
++ |.. 6##7 ##..|
++ |.. c##c ##..|
++ |.. 5#99#5 ##..|
++ |.. 2##22##6#####..|
++ |..1c#5 5##1 ##..|
++ |..9#6 6#9 ##..|
++ |.. 33 ##..|
++ |.. ## #c..|
++ -&gt;|.. ## ..|&lt;-
++ |.. ##1 ..|
++ |.. 8##########b..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc18c '소'
++ Font: gulim (17)
++ Bitmap: 15 x 14
++ Advance: 18
++ Offset: 2 x -1
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 44 .|
++ |.. 5##6 .|
++ |.. 1####2 .|
++ |.. a#86#c .|
++ |.. 9#a 8#a .|
++ |.. 2c#a 9#c1 .|
++ |..7##7 6##6 .|
++ |..682 2ba1.|
++ |.. 77 .|
++ |.. 1## .|
++ |.. 1## .|
++ |.. 1## .|
++ -&gt;|.. 1## .|&lt;-
++ |..#############c .|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc18d '속'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 3##2 ..|
++ |.. 2####2 ..|
++ |.. 5##44##5 ..|
++ |..3b##c2 2c##b3..|
++ |..5b82 aa 29#8..|
++ |.. ## ..|
++ |.. ## ..|
++ |..##############..|
++ |.. ..|
++ |.. ..|
++ |.. 9##########9 ..|
++ -&gt;|.. 1## ..|&lt;-
++ |.. ## ..|
++ |.. ## ..|
++ |.. ## ..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc194 '솔'
++ Font: gulim (17)
++ Bitmap: 15 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 4##5 .|
++ |.. 6####7 .|
++ |.. 17##b1 9##92 .|
++ |..a##c3 55 29### .|
++ |.. ## .|
++ |.. ## .|
++ |..c#############1.|
++ |.. .|
++ |.. .|
++ |.. c##########a .|
++ |.. 1## .|
++ -&gt;|.. c##########9 .|&lt;-
++ |.. ## .|
++ |.. b##########c .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc1e0 '쇠'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. a#2 cc...|
++ |. 1##5 ##...|
++ |. 5##a ##...|
++ |. b###3 ##...|
++ |. 7#94#b ##...|
++ |. 5#c1 8#b ##...|
++ |. 8#c1 8##1##...|
++ |. 33 22 351##...|
++ |. ## ##...|
++ |. ## ##...|
++ |. 1##78b####...|
++ -&gt;|.3########c95##...|&lt;-
++ |. ##...|
++ |. ##...|
++ |. 33...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc218 '수'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 4##2 .|
++ |. ###b .|
++ |. a#87#9 .|
++ |. 3##8 8#c2 .|
++ |. 5###4 4###4 .|
++ |. 6a4 4a6 .|
++ |. .|
++ |. .|
++ |.1##############1.|
++ |. ## .|
++ |. ## .|
++ -&gt;|. ## .|&lt;-
++ |. ## .|
++ |. ## .|
++ |. 77 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc220 '술'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 2##3 .|
++ |. 2####2 .|
++ |. 7##53##81 .|
++ |. 7###b2 19###8 .|
++ |. 363 374 .|
++ |. .|
++ |.1##############1.|
++ |. ## .|
++ |. b##########8 .|
++ |. ## .|
++ |. 1## .|
++ -&gt;|. b##########8 .|&lt;-
++ |. ## .|
++ |. a###########5 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc27c '쉼'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 11 ..|
++ |.. 2##4 #c..|
++ |.. a###1 ##..|
++ |.. 7#96#a ##..|
++ |.. 9#b 7##2 ##..|
++ |.. c#7 4##1##..|
++ |.. 13##..|
++ |..3c############..|
++ |.. 3445## ##..|
++ |.. ## 77..|
++ |.. 7##########7..|
++ |.. ##1 1##..|
++ -&gt;|.. ## ##..|&lt;-
++ |.. ## 1##..|
++ |.. 8##########8..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc2a4 '스'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -1
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 32 .|
++ |. 4##2 .|
++ |. a##8 .|
++ |. 4#cc#2 .|
++ |. 1##34#b .|
++ |. 1c#7 8#9 .|
++ |. 5##6 8##2 .|
++ |. a#c2 4##6 .|
++ |. 11 .|
++ |. .|
++ |. .|
++ |. .|
++ -&gt;|. .|&lt;-
++ |.1##############1.|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc2b5 '습'
++ Font: gulim (17)
++ Bitmap: 15 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 5##4 ..|
++ |. 6####4 ..|
++ |. 15###22###4 ..|
++ |. ####5 5###a..|
++ |. 11 21..|
++ |. ..|
++ |.5#############9..|
++ |. ..|
++ |. bc aa ..|
++ |. ## ## ..|
++ |. ############ ..|
++ -&gt;|. ## ## ..|&lt;-
++ |. ##1 1## ..|
++ |. 7##########8 ..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc2dc '시'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. cc c#...|
++ |. ##1 ##...|
++ |. 3##4 ##...|
++ |. 6##7 ##...|
++ |. a##b ##...|
++ |. 1#cb#2 ##...|
++ |. 7#76#7 ##...|
++ |. 1##11##1 ##...|
++ |. a#7 8#8 ##...|
++ |. 5#b 1##3 ##...|
++ |.2##2 4##1##...|
++ -&gt;|.253 451##...|&lt;-
++ |. ##...|
++ |. ##...|
++ |. 33...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc2dd '식'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 4c7 1#b..|
++ |.. 9#b 2#c..|
++ |.. ###2 2#c..|
++ |.. 6###8 2#c..|
++ |.. 2##1c#3 2#c..|
++ |.. 1##4 3##1 2#c..|
++ |..2##6 5##22#c..|
++ |..7c4 3b72#c..|
++ |.. 55..|
++ |.. 9##########8..|
++ |.. 2##..|
++ -&gt;|.. ##..|&lt;-
++ |.. ##..|
++ |.. ##..|
++ |.. 55..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc2e0 '신'
++ Font: gulim (17)
++ Bitmap: 15 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. ab1 c# ..|
++ |. 1##4 ## ..|
++ |. 5##8 ## ..|
++ |. b### ## ..|
++ |. 5#a8#7 ## ..|
++ |. 1##21##2 ## ..|
++ |. c#6 4#c ## ..|
++ |. b#8 6#b1## ..|
++ |.176 682## ..|
++ |. 78 ## ..|
++ |. ## aa ..|
++ -&gt;|. ## ..|&lt;-
++ |. ##1 ..|
++ |. 8##########b..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc2e4 '실'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 8#5 1#b..|
++ |.. ##a 1#c..|
++ |.. 5###2 1#c..|
++ |.. ##7#a 1#c..|
++ |.. 9#8 b#5 1#c..|
++ |.. 7#c 2##3 1#c..|
++ |..8##1 3##41#c..|
++ |..45 153 87..|
++ |.. c##########7..|
++ |.. 1##..|
++ |.. 2##..|
++ -&gt;|.. b##########8..|&lt;-
++ |.. ## ..|
++ |.. a##########b..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc2ec '심'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 5c7 #c..|
++ |.. 9#b ##..|
++ |.. ###2 ##..|
++ |.. 7###8 ##..|
++ |.. 2##1c#2 ##..|
++ |.. 1##4 4#c1 ##..|
++ |..2##6 6##2 ##..|
++ |..7c4 3b7 ##..|
++ |.. 11..|
++ |.. 7##########6..|
++ |.. ##1 2##..|
++ -&gt;|.. ## 1##..|&lt;-
++ |.. ##1 1##..|
++ |.. 7##########8..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc544 '아'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 19###a1 #c .|
++ |. b#817#b ## .|
++ |.4#b a#5 ## .|
++ |.9#5 4#9 ## .|
++ |.c#2 1#c ## .|
++ |.##1 ## ####4.|
++ |.##1 ## ## .|
++ |.c#2 1#c ## .|
++ |.a#4 3#a ## .|
++ |.6#a 9#7 ## .|
++ |.1##928##1 ## .|
++ -&gt;|. 2c###c2 ## .|&lt;-
++ |. ## .|
++ |. ## .|
++ |. 55 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc548 '안'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 2b###b1 c# .|
++ |.2##5 6##1 ## .|
++ |.9#5 6#9 ## .|
++ |.## ## ## .|
++ |.## 1## ####5.|
++ |.9#5 7#9 ## .|
++ |.2##5 6##1 ## .|
++ |. 2c###a1 ## .|
++ |. ## .|
++ |. 22 ## .|
++ |. ## 99 .|
++ -&gt;|. ## .|&lt;-
++ |. ##1 .|
++ |. 8##########b .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc54a '않'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 3#####3 bb .|
++ |.4##3 4##4 ## .|
++ |.b#3 3#b ## .|
++ |.## ## ####5.|
++ |.b#3 4#b ##c .|
++ |.4##3 4##3 ##c .|
++ |. 4#####3 c#b .|
++ |. .|
++ |. a###a .|
++ |. cc 9######a .|
++ |. ## .|
++ -&gt;|. ## 2b###91 .|&lt;-
++ |. ## c#4 5#b .|
++ |. a####7b#416#b .|
++ |. 2a###a1 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc54c '알'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 3#####3 c# .|
++ |.4##3 4##4 ## .|
++ |.b#3 3#b ## .|
++ |.## ## ####4.|
++ |.b#3 4#b ## .|
++ |.4##3 4##3 ## .|
++ |. 4#####3 ## .|
++ |. 77 .|
++ |. c#########7 .|
++ |. 1## .|
++ |. 1## .|
++ -&gt;|. c#########8 .|&lt;-
++ |. ## .|
++ |. b##########6 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc558 '았'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 2c###c2 c# .|
++ |.2##4 5##2 ## .|
++ |.9#5 6#9 ## .|
++ |.c# ## ####4.|
++ |.c# 1## ## .|
++ |.9#5 7#9 ## .|
++ |.2##618##1 ## .|
++ |. 2b###91 ## .|
++ |. .|
++ |. 6#7 ## .|
++ |. 9#b 2##3 .|
++ -&gt;|. 2###3 8##9 .|&lt;-
++ |. 2##8##35#bb#7 .|
++ |.1##4 4###b11a#a .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc55e '앞'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 2c###c2 c# .|
++ |.2##4 5##2 ## .|
++ |.9#5 6#9 ## .|
++ |.c# ## ####4.|
++ |.c# 1## ## .|
++ |.9#5 7#9 ## .|
++ |.2##618##1 ## .|
++ |. 2b###91 ## .|
++ |. .|
++ |. b###########a .|
++ |. 8#5 9#3 .|
++ -&gt;|. 6#7 b#2 .|&lt;-
++ |. 5#9 c#1 .|
++ |. ############# .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc57c '야'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 19###a1 #c .|
++ |. b#818#b ## .|
++ |.4#b a#5 ## .|
++ |.9#5 4#9 ####6.|
++ |.c#3 1#c ## .|
++ |.##1 ## ## .|
++ |.##1 ## ## .|
++ |.c#2 1#c ## .|
++ |.a#5 3#a ####7.|
++ |.6#a 9#6 ## .|
++ |. c#938## ## .|
++ -&gt;|. 1a###b1 ## .|&lt;-
++ |. ## .|
++ |. ## .|
++ |. 44 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc57d '약'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 2c###c2 1#c .|
++ |.2##4 5##2 1#c .|
++ |.9#5 6#9 1####3.|
++ |.c# ## 1#c .|
++ |.c# 1## 1#c .|
++ |.9#5 7#9 1####3.|
++ |.2##618##1 1#c .|
++ |. 2b###91 1#c .|
++ |. 65 .|
++ |. 9##########8 .|
++ |. 1## .|
++ -&gt;|. ## .|&lt;-
++ |. ## .|
++ |. ## .|
++ |. 22 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc591 '양'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 2c###c2 ## .|
++ |.2##4 5##2 ## .|
++ |.9#5 6#9 ####4.|
++ |.c# ## ## .|
++ |.c# 1## ## .|
++ |.9#5 7#9 ####4.|
++ |.2##618##1 ## .|
++ |. 2b###91 ## .|
++ |. 66 .|
++ |. 3c######3 .|
++ |. 5##5 4##6 .|
++ -&gt;|. ##1 1## .|&lt;-
++ |. ##1 2## .|
++ |. 5##51 28##6 .|
++ |. 2b#####a2 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc5b4 '어'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 9###a1 #c..|
++ |.. b#818#b ##..|
++ |..4#b a#5 ##..|
++ |..9#5 5#9 ##..|
++ |..c#2 1#c ##..|
++ |..##1 ## ##..|
++ |..##1 ##a####..|
++ |..c#2 1#c ##..|
++ |..9#4 4#a ##..|
++ |..5#a 9#6 ##..|
++ |.. b#a39#c ##..|
++ -&gt;|.. 9###a1 ##..|&lt;-
++ |.. ##..|
++ |.. ##..|
++ |.. 55..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc5b8 '언'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 1a###a1 aa..|
++ |..1##6 7#c ##..|
++ |..7#7 8#7 ##..|
++ |..c#1 2#c ##..|
++ |..## ##9####..|
++ |..c#1 2#c ##..|
++ |..7#8 a#6 ##..|
++ |.. c#82a#a ##..|
++ |.. 19###7 ##..|
++ |.. 22 ##..|
++ |.. ## #c..|
++ -&gt;|.. ## ..|&lt;-
++ |.. ##1 ..|
++ |.. 8##########b..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc5bb '얻'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 2c###c2 1cb..|
++ |..2##4 5##2 1#c..|
++ |..a#5 5#9 1#c..|
++ |..## ##a###c..|
++ |..## 1## 1#c..|
++ |..9#5 6#9 1#c..|
++ |..2##618##1 1#c..|
++ |.. 2b###91 1#c..|
++ |.. 33..|
++ |.. 7##########a..|
++ |.. ##3 ..|
++ -&gt;|.. ##1 ..|&lt;-
++ |.. ##2 ..|
++ |.. 8##########8..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc5c5 '업'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 2c###c2 aa..|
++ |..2##4 5##2 ##..|
++ |..9#5 5#9 ##..|
++ |..c# ##9####..|
++ |..c# 1## ##..|
++ |..9#5 7#9 ##..|
++ |..2##618##1 ##..|
++ |.. 2b###91 #c..|
++ |.. 66 55..|
++ |.. ## ##..|
++ |.. ############..|
++ -&gt;|.. ## ##..|&lt;-
++ |.. ##1 ##..|
++ |.. 8##########8..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc5c6 '없'
++ Font: gulim (17)
++ Bitmap: 15 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 3#####3 #c ..|
++ |.4##3 4##4 ## ..|
++ |.b#3 3#b ## ..|
++ |.## ##9#### ..|
++ |.b#3 3#b ## ..|
++ |.4##3 4##4 ## ..|
++ |. 4#####3 ## ..|
++ |. ## ..|
++ |. ## #c 6633 ..|
++ |. ## ## 1##2 ..|
++ |. ###### 7##8 ..|
++ -&gt;|. ## ## 3####3 ..|&lt;-
++ |. ## 1##4##62##4..|
++ |. 9####a##4 198..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc5c8 '었'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 2c###c2 cc .|
++ |.2##5 5##2 ## .|
++ |.9#5 6#9 ## .|
++ |.c# ##9#### .|
++ |.c# 1## ## .|
++ |.9#6 7#9 ## .|
++ |.1##728##1 ## .|
++ |. 1a###91 ## .|
++ |. 33 .|
++ |. 6#7 6#6 .|
++ |. 9#b 9#a .|
++ -&gt;|. 1###2 2###2 .|&lt;-
++ |. 1##a##21##9##1 .|
++ |.1##5 5####5 5##3.|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc5d0 '에'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 6###5 cc c#...|
++ |..2##5##2 ## ##...|
++ |..8#7 6#7 ## ##...|
++ |..a#3 2#a ## ##...|
++ |..c#1 #c ## ##...|
++ |..cc ##### ##...|
++ |..cc ## ## ##...|
++ |..c#1 #c ## ##...|
++ |..a#3 2#b ## ##...|
++ |..7#7 6#8 ## ##...|
++ |..2##4##3 ## ##...|
++ -&gt;|.. 5###6 ## ##...|&lt;-
++ |.. ## ##...|
++ |.. cc ##...|
++ |.. 11...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc5d4 '엔'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 6###6 cc c# ..|
++ |..4#b1a#4 ## ## ..|
++ |..9#3 3#a ## ## ..|
++ |..c# ## ## ## ..|
++ |..c# ##### ## ..|
++ |..a#3 3#a ## ## ..|
++ |..4#a 9#5 ## ## ..|
++ |.. 6###7 ## ## ..|
++ |.. ## ## ..|
++ |.. 22 ## ## ..|
++ |.. ## 11 66 ..|
++ -&gt;|.. ## ..|&lt;-
++ |.. ## ..|
++ |.. 8##########b..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc5ec '여'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 2####3 c#...|
++ |..1##44##1 ##...|
++ |..6#8 7#6 ##...|
++ |..a#4 3#ab####...|
++ |..c#2 1#c ##...|
++ |..##1 ## ##...|
++ |..##1 ## ##...|
++ |..##1 ## ##...|
++ |..b#3 2#bb####...|
++ |..7#7 6#8 ##...|
++ |..1##65##2 ##...|
++ -&gt;|.. 4####4 ##...|&lt;-
++ |.. ##...|
++ |.. ##...|
++ |.. 44...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc5f4 '열'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 2c###c2 #c..|
++ |..2##4 5##2 ##..|
++ |..9#5 5#9b####..|
++ |..## ## ##..|
++ |..## 1## ##..|
++ |..9#5 6#9b####..|
++ |..2##617##1 ##..|
++ |.. 2b###91 a9..|
++ |.. c##########7..|
++ |.. 1##..|
++ |.. 1##..|
++ -&gt;|.. b##########8..|&lt;-
++ |.. ## ..|
++ |.. a##########9..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc601 '영'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 2c###c2 cc..|
++ |..2##5 5##2 ##..|
++ |..9#5 6#9b####..|
++ |..c# ## ##..|
++ |..c# 1## ##..|
++ |..9#6 7#9b####..|
++ |..1##728##1 ##..|
++ |.. 1a###91 ##..|
++ |.. #c..|
++ |.. 3c#####a2 ..|
++ |.. 6##5 6##5 ..|
++ -&gt;|.. ##2 2## ..|&lt;-
++ |.. ##3 3## ..|
++ |.. 3##a3 3a##4 ..|
++ |.. 17#####71 ..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc608 '예'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 4###4 ccc#...|
++ |..1##5##1 ####...|
++ |..6#7 7#7 ####...|
++ |..a#3 2#ba#####...|
++ |..c#1 #c ####...|
++ |..c# ## ####...|
++ |..c# ## ####...|
++ |..c#1 #c ####...|
++ |..a#3 2#ba#####...|
++ |..6#8 6#7 ####...|
++ |..1##5##2 ####...|
++ -&gt;|.. 4###5 ####...|&lt;-
++ |.. ####...|
++ |.. ####...|
++ |.. 33...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc624 '오'
++ Font: gulim (17)
++ Bitmap: 15 x 13
++ Advance: 18
++ Offset: 2 x -1
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 3c#####b3 .|
++ |.. a##5 6##8 .|
++ |.. 9#a b#7 .|
++ |.. ##1 2## .|
++ |.. ##1 3#c .|
++ |.. 7#b1 1c#7 .|
++ |.. 8##6 17##7 .|
++ |.. 2b#####a2 .|
++ |.. 11 .|
++ |.. ## .|
++ |.. ## .|
++ -&gt;|.. ## .|&lt;-
++ |..a#############a.|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc628 '온'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 7######81 .|
++ |. 3##b3 28##3 .|
++ |. c#3 2#c .|
++ |. c#2 2#c .|
++ |. 4##81 17##5 .|
++ |. 1a######b2 .|
++ |. ##1 .|
++ |. ## .|
++ |.1##############1.|
++ |. 11 .|
++ |. ## .|
++ -&gt;|. ## .|&lt;-
++ |. ##1 .|
++ |. 8##########b .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc62c '올'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 3c######c3 .|
++ |. 7##61 4##7 .|
++ |. ##1 1## .|
++ |. 8##5 4##8 .|
++ |. 4########5 .|
++ |. ##1 .|
++ |. ## .|
++ |.1##############1.|
++ |. .|
++ |. a##########a .|
++ |. 1## .|
++ -&gt;|. a##########9 .|&lt;-
++ |. c#2 .|
++ |. 9##########c .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc635 '옵'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 3c######c3 .|
++ |. 7##61 4##7 .|
++ |. ##1 1## .|
++ |. 8##5 4##8 .|
++ |. 4########5 .|
++ |. ##1 .|
++ |. ## .|
++ |.1##############1.|
++ |. 22 11 .|
++ |. ## ## .|
++ |. ############ .|
++ -&gt;|. ## ## .|&lt;-
++ |. ##1 1## .|
++ |. 8##########8 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc640 '와'
++ Font: gulim (17)
++ Bitmap: 17 x 15
++ Advance: 18
++ Offset: 0 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ | 1b###c2 #c .|
++ | 2##3 4##2 ## .|
++ | 9#5 5#9 ## .|
++ | ## ## ## .|
++ | ##1 1#c ## .|
++ | 8#6 6#8 ####6.|
++ | 1c#727##1 ## .|
++ | 8###8 ## .|
++ | 88 ## .|
++ | ## ## .|
++ | 1## 257b## .|
++ -&gt;|2############# .|&lt;-
++ | ## .|
++ | ## .|
++ | 44 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc644 '완'
++ Font: gulim (17)
++ Bitmap: 17 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 3####c2 #c |
++ |. 4##3 3##3 ## |
++ |. c#3 3#c ## |
++ |. ## ## ####4|
++ |. 7#8 8#9 ## |
++ |. 7##c##b ## |
++ |. 15##4 ## |
++ |. ## 147b## |
++ |.4##########b## |
++ |. 121 ## |
++ |. ##1 99 |
++ -&gt;|. ##1 |&lt;-
++ |. ##2 |
++ |. 8##########b |
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc67c '왼'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 3####c2 88..|
++ |.. 5##2 3##4 ##..|
++ |.. c#1 3#c ##..|
++ |.. ## 2## ##..|
++ |.. 7#9 9#8 ##..|
++ |.. 6#####a ##..|
++ |.. 2##1 ##..|
++ |.. 1##4568b##..|
++ |..4#############..|
++ |.. 11 ##..|
++ |.. ##1 c#..|
++ -&gt;|.. ##1 ..|&lt;-
++ |.. ##2 ..|
++ |.. 8##########b..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc694 '요'
++ Font: gulim (17)
++ Bitmap: 15 x 13
++ Advance: 18
++ Offset: 1 x -1
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 5######5 ..|
++ |. 1b##3 3##b ..|
++ |. 9#8 9#8 ..|
++ |. ##1 1## ..|
++ |. ##1 1## ..|
++ |. 7#b b#7 ..|
++ |. 8##7117##8 ..|
++ |. 2a####a2 ..|
++ |. 55 55 ..|
++ |. ## ## ..|
++ |. ## ## ..|
++ -&gt;|. ## ## ..|&lt;-
++ |.5#############a..|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc6a9 '용'
++ Font: gulim (17)
++ Bitmap: 15 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 4#######b3 .|
++ |.. 9##4 6##7 .|
++ |.. ##1 1## .|
++ |.. 7##71 17##8 .|
++ |.. 2a######b3 .|
++ |.. 99 99 .|
++ |.. ## ## .|
++ |..c#############2.|
++ |.. .|
++ |.. 29######71 .|
++ |.. 6##82 3a##4 .|
++ -&gt;|.. ##2 3## .|&lt;-
++ |.. ##3 3## .|
++ |.. 4##b4114b##4 .|
++ |.. 17######71 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc6b0 '우'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 18######71 ..|
++ |.. 3##81 19##2 ..|
++ |.. c#4 4#b ..|
++ |.. ## ## ..|
++ |.. b#6 6#b ..|
++ |.. 1###5115###2 ..|
++ |.. 4######5 ..|
++ |.. ..|
++ |..b############b..|
++ |.. ## ..|
++ |.. ## ..|
++ -&gt;|.. ## ..|&lt;-
++ |.. ## ..|
++ |.. ## ..|
++ |.. 22 ..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc6b4 '운'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 7######6 .|
++ |. 2##a1 2b##1 .|
++ |. b#6 6#b .|
++ |. ##1 ## .|
++ |. 9#7 6#a .|
++ |. a##5115##c1 .|
++ |. 3c#####4 .|
++ |. .|
++ |.1##############1.|
++ |. 22 ## .|
++ |. ##1 ## .|
++ -&gt;|. ##1 cb .|&lt;-
++ |. ##2 .|
++ |. 8##########c .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc6c0 '움'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 19######81 .|
++ |. 5##81 29##4 .|
++ |. c#3 3## .|
++ |. b#5 3## .|
++ |. 2##c4 4c##3 .|
++ |. 5######6 .|
++ |. .|
++ |.1##############1.|
++ |. ## .|
++ |. 7##########6 .|
++ |. ##1 1## .|
++ -&gt;|. ## ## .|&lt;-
++ |. ## 1## .|
++ |. 8##########8 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc6cc '워'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 3####c3 ##..|
++ |.. 4##3 4##4 ##..|
++ |.. c#3 3#c ##..|
++ |.. ## ## ##..|
++ |.. b#5 4#b ##..|
++ |.. 2##716##3 ##..|
++ |.. 1a###b2 ##..|
++ |.. 15##..|
++ |..4#############..|
++ |.. ## ##..|
++ |.. ## c#####..|
++ -&gt;|.. ## ##..|&lt;-
++ |.. ## ##..|
++ |.. ## ##..|
++ |.. 11 55..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc6d0 '원'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 4#####4 ##..|
++ |.. 6##2 2##7 ##..|
++ |.. ##1 1## ##..|
++ |.. c#2 2## ##..|
++ |.. 4##5 3##6 ##..|
++ |.. 2b####4 ##..|
++ |.. 1358##..|
++ |..3#############..|
++ |.. 1 ## ##..|
++ |.. 33 ## 2#####..|
++ |.. ##1## ##..|
++ -&gt;|.. ##1 11..|&lt;-
++ |.. ##1 ..|
++ |.. 8##########b..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc6e8 '웨'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 4####3 cc cc..|
++ |.. 3##12##3## ##..|
++ |.. b#2 4#a## ##..|
++ |.. ## #c## ##..|
++ |.. b#3 4#a## ##..|
++ |.. 3##12##2## ##..|
++ |.. 4####2 ## ##..|
++ |.. 13## ##..|
++ |..6########## ##..|
++ |.. 1## ## ##..|
++ |.. 1##a#### ##..|
++ -&gt;|.. 1## ## ##..|&lt;-
++ |.. 1## ## ##..|
++ |.. ## cc ##..|
++ |.. 44..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc704 '위'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 3####c3 ##..|
++ |.. 4##3 4##4 ##..|
++ |.. c#3 3#c ##..|
++ |.. ## ## ##..|
++ |.. b#5 4#b ##..|
++ |.. 3##716##3 ##..|
++ |.. 1a###b2 ##..|
++ |.. 1347a###..|
++ |..7##########a##..|
++ |.. 11 ## ##..|
++ |.. ## ##..|
++ -&gt;|.. ## ##..|&lt;-
++ |.. ## ##..|
++ |.. ## ##..|
++ |.. 33 55..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc708 '윈'
++ Font: gulim (17)
++ Bitmap: 15 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 3#####4 c# ..|
++ |. 5##2 2##7 ## ..|
++ |. c#1 1## ## ..|
++ |. b#2 2## ## ..|
++ |. 4##5 3##6 ## ..|
++ |. 2b####3 ## ..|
++ |. 3## ..|
++ |.4############# ..|
++ |.13543##1 ## ..|
++ |. 33## ## ..|
++ |. 1##c# cc ..|
++ -&gt;|. 1## ..|&lt;-
++ |. 1##1 ..|
++ |. 9##########a..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc720 '유'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 18######7 ..|
++ |.. 3##6 2a##2 ..|
++ |.. c#3 5#b ..|
++ |.. ## ## ..|
++ |.. a#6 6#b ..|
++ |.. 1c##5115##c1 ..|
++ |.. 3c####c4 ..|
++ |.. ..|
++ |..c############c..|
++ |.. ## ## ..|
++ |.. ## ## ..|
++ -&gt;|.. ## ## ..|&lt;-
++ |.. ## ## ..|
++ |.. ## ## ..|
++ |.. 55 55 ..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc73c '으'
++ Font: gulim (17)
++ Bitmap: 14 x 13
++ Advance: 18
++ Offset: 2 x -1
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 6######4 ..|
++ |.. 1c##3 4##a ..|
++ |.. a#8 a#8 ..|
++ |.. ##1 1## ..|
++ |.. ##2 2## ..|
++ |.. 8#b b#8 ..|
++ |.. 9##7127##9 ..|
++ |.. 3b####b3 ..|
++ |.. ..|
++ |.. ..|
++ |.. ..|
++ -&gt;|.. ..|&lt;-
++ |..c############c..|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc740 '은'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 18######7 .|
++ |. 3##81 29##3 .|
++ |. c#4 3#c .|
++ |. b#4 3## .|
++ |. 2##91 29##4 .|
++ |. 6######81 .|
++ |. .|
++ |. .|
++ |.1##############1.|
++ |. 33 .|
++ |. ## .|
++ -&gt;|. ## .|&lt;-
++ |. ##1 .|
++ |. 8########### .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc744 '을'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 19######81 ..|
++ |.. 5##81 18##4 ..|
++ |.. c#3 3## ..|
++ |.. b#5 4## ..|
++ |.. 2###5115###3 ..|
++ |.. 4######5 ..|
++ |..b############b..|
++ |.. ..|
++ |.. a##########7 ..|
++ |.. 1## ..|
++ |.. 2## ..|
++ -&gt;|.. a##########8 ..|&lt;-
++ |.. c#2 ..|
++ |.. 9##########c ..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc74c '음'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 29######91 ..|
++ |.. 5##81 18##4 ..|
++ |.. ##3 3## ..|
++ |.. b#5 3## ..|
++ |.. 2###5115###3 ..|
++ |.. 4######5 ..|
++ |.. ..|
++ |..c############c..|
++ |.. ..|
++ |.. 9##########8 ..|
++ |.. ## ## ..|
++ -&gt;|.. ## ## ..|&lt;-
++ |.. ##1 ## ..|
++ |.. 8##########8 ..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc758 '의'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 2c###b2 #c..|
++ |.. 2##5 5##2 ##..|
++ |.. a#5 5#a ##..|
++ |.. ##1 1## ##..|
++ |.. ##1 ## ##..|
++ |.. 9#5 5#a ##..|
++ |.. 1##5 5##2 ##..|
++ |.. 1b###c2 ##..|
++ |.. ##..|
++ |.. ##..|
++ |.. 138###..|
++ -&gt;|..2#############..|&lt;-
++ |.. 23321 ##..|
++ |.. ##..|
++ |.. 44..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc774 '이'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 1a###9 cc..|
++ |.. c#7 8#b ##..|
++ |.. 6#9 a#5 ##..|
++ |.. b#4 5#9 ##..|
++ |.. ##1 2#c ##..|
++ |.. ## ## ##..|
++ |..1## ## ##..|
++ |.. ##1 1#c ##..|
++ |.. c#3 4#a ##..|
++ |.. 8#8 a#6 ##..|
++ |.. 1##83a## ##..|
++ -&gt;|.. 2c###b1 ##..|&lt;-
++ |.. ##..|
++ |.. ##..|
++ |.. 33..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc775 '익'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 2c###c2 #c..|
++ |..2##4 5##2 1##..|
++ |..9#5 5#9 1##..|
++ |..c# ## 1##..|
++ |..c# 1## 1##..|
++ |..9#5 7#9 1##..|
++ |..2##618##1 1##..|
++ |.. 2b###91 #c..|
++ |.. ..|
++ |.. 9##########8..|
++ |.. 2##..|
++ -&gt;|.. ##..|&lt;-
++ |.. ##..|
++ |.. ##..|
++ |.. 77..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc778 '인'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 2c###b1 99..|
++ |..2##5 6##1 ##..|
++ |..9#5 6#9 ##..|
++ |..## ## ##..|
++ |..## 1## ##..|
++ |..9#5 7#9 ##..|
++ |..2##5 7##1 ##..|
++ |.. 2c###a1 ##..|
++ |.. ##..|
++ |.. 22 ##..|
++ |.. ## cc..|
++ -&gt;|.. ## ..|&lt;-
++ |.. ##1 ..|
++ |.. 8##########b..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc77c '일'
++ Font: gulim (17)
++ Bitmap: 15 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 3#####3 cc .|
++ |..4##3 4##4 ## .|
++ |..b#2 3#b ## .|
++ |..## ## ## .|
++ |..b#3 3#b ## .|
++ |..4##3 4##4 ## .|
++ |.. 4#####3 ## .|
++ |.. 66 .|
++ |.. c##########8 .|
++ |.. ##1.|
++ |.. 1##1.|
++ -&gt;|.. b##########9 .|&lt;-
++ |.. ## .|
++ |.. a##########6 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc785 '입'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 3#####3 #c..|
++ |..4##3 4##4 ##..|
++ |..b#3 3#b ##..|
++ |..## ## ##..|
++ |..b#3 3#b ##..|
++ |..4##3 4##4 ##..|
++ |.. 3#####3 ##..|
++ |.. 44..|
++ |.. bb aa..|
++ |.. ## ##..|
++ |.. ############..|
++ -&gt;|.. ## ##..|&lt;-
++ |.. ##1 ##..|
++ |.. 7##########9..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc788 '있'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 2c###c2 cc .|
++ |.2##5 5##2 ## .|
++ |.9#5 5#9 ## .|
++ |.c# ## ## .|
++ |.c# 1## ## .|
++ |.9#6 6#9 ## .|
++ |.2##617##1 ## .|
++ |. 1b###91 ## .|
++ |. 66 .|
++ |. 3c9 5#7 .|
++ |. 6## 9#b .|
++ -&gt;|. ###4 1###3 .|&lt;-
++ |. a#a##3 c#a##2 .|
++ |. b#7 4####6 4##4.|
++ |. 1 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc78a '잊'
++ Font: gulim (17)
++ Bitmap: 15 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 2c###c2 #c .|
++ |..2##4 5##2 ## .|
++ |..a#4 5#9 ## .|
++ |..## ## ## .|
++ |..## 1## ## .|
++ |..9#5 6#9 ## .|
++ |..2##618##1 ## .|
++ |.. 2b###91 ## .|
++ |.. 11 .|
++ |.. 4###########a .|
++ |.. 8#c .|
++ -&gt;|.. 4###9 .|&lt;-
++ |.. 3b##28##82 .|
++ |.. 7###7 2c###5.|
++ |.. 21 44 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc790 '자'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.6########8 cc .|
++ |. ## ## .|
++ |. ## ## .|
++ |. ## ## .|
++ |. 3##3 ## .|
++ |. 7##7 ####6.|
++ |. b### ## .|
++ |. 3#aa#6 ## .|
++ |. b#42##2 ## .|
++ |. 8#a 5##1 ## .|
++ |.7##1 7##2## .|
++ -&gt;|.792 5a5## .|&lt;-
++ |. ## .|
++ |. ## .|
++ |. 44 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc791 '작'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.9########9 c# .|
++ |. c#2 ##1 .|
++ |. 3##6 ##1 .|
++ |. 8##c ####5.|
++ |. 3#b7#8 ##1 .|
++ |. 3##2 a#8 ##1 .|
++ |.6##2 9#b1##1 .|
++ |.34 34 ## .|
++ |. 33 .|
++ |. 9##########8 .|
++ |. 1## .|
++ -&gt;|. ## .|&lt;-
++ |. ## .|
++ |. ## .|
++ |. 44 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc7a5 '장'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.7########9 c# .|
++ |. b#4 ## .|
++ |. 1##8 ## .|
++ |. 7###1 ####5.|
++ |. 2#c6#a ## .|
++ |. 2##3 9#9 ## .|
++ |.5##3 8##1## .|
++ |.341 341## .|
++ |. 77 .|
++ |. 19######a2 .|
++ |. 4##81 17##4 .|
++ -&gt;|. c#2 2#c .|&lt;-
++ |. c#2 2## .|
++ |. 4##82 3a##5 .|
++ |. 18######81 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc7ac '재'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..1######b cc cc..|
++ |.. ##1 ## ##..|
++ |.. ##1 ## ##..|
++ |.. ##1 ## ##..|
++ |.. ##1 ## ##..|
++ |.. ##3 #####..|
++ |.. 2##5 ## ##..|
++ |.. 6##9 ## ##..|
++ |.. b###1 ## ##..|
++ |.. 4#a6#8 ## ##..|
++ |..2##2 ##3 ## ##..|
++ -&gt;|..b#5 3#c ## ##..|&lt;-
++ |.. ## ##..|
++ |.. cc ##..|
++ |.. 44..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc800 '저'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..2########c #c..|
++ |.. ## ##..|
++ |.. ## ##..|
++ |.. ##1 ##..|
++ |.. 1##3 ##..|
++ |.. 4##6 3#####..|
++ |.. 7##a ##..|
++ |.. bc##2 ##..|
++ |.. 4c87#a ##..|
++ |.. bc11##7 ##..|
++ |.. 8#6 5##6 ##..|
++ -&gt;|..6#a 8##5 ##..|&lt;-
++ |..22 341 ##..|
++ |.. ##..|
++ |.. 33..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc801 '적'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. a#######8 1#c..|
++ |.. ##1 1##..|
++ |.. 2##3 1##..|
++ |.. 7##9 3#####..|
++ |.. 1####3 1##..|
++ |.. b#63##1 1##..|
++ |.. a#9 5##1 1##..|
++ |..5c7 495 1##..|
++ |.. 22..|
++ |.. 9##########8..|
++ |.. 2##..|
++ -&gt;|.. ##..|&lt;-
++ |.. ##..|
++ |.. ##..|
++ |.. 44..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc804 '전'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..2########3 c# ..|
++ |.. ##21 ## ..|
++ |.. 1##2 ## ..|
++ |.. 3##62##### ..|
++ |.. 8##b ## ..|
++ |.. 2#ca#4 ## ..|
++ |.. 1##42##2 ## ..|
++ |..1##6 3##3 ## ..|
++ |..384 263 ## ..|
++ |.. 44 ## ..|
++ |.. ## 99 ..|
++ -&gt;|.. ## ..|&lt;-
++ |.. ##1 ..|
++ |.. 9##########a..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc808 '절'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..2########3 c# ..|
++ |.. ##21 ## ..|
++ |.. 3##4 ## ..|
++ |.. a##c2##### ..|
++ |.. 5#a8#7 ## ..|
++ |.. 3##2 c#6 ## ..|
++ |..4##3 1b#6 ## ..|
++ |..131 1 77 ..|
++ |.. b#########7 ..|
++ |.. ## ..|
++ |.. 1## ..|
++ -&gt;|.. b#########9 ..|&lt;-
++ |.. ## ..|
++ |.. a##########7..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc815 '정'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. a#######8 #c..|
++ |.. ##1 ##..|
++ |.. 1##3 ##..|
++ |.. 7##9 3#####..|
++ |.. 1####3 ##..|
++ |.. a#63##1 ##..|
++ |.. a#9 5##2 ##..|
++ |..5c7 495 ##..|
++ |.. 22..|
++ |.. 2a######a2 ..|
++ |.. 5##71 17##4..|
++ -&gt;|.. ##2 2#c..|&lt;-
++ |.. ##2 3#c..|
++ |.. 4##72 4a##4..|
++ |.. 18######81 ..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc81c '제'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..7######7cc c#...|
++ |.. ## ## ##...|
++ |.. ## ## ##...|
++ |.. ## ## ##...|
++ |.. ##1 ## ##...|
++ |.. 1##b#### ##...|
++ |.. 5##5 ## ##...|
++ |.. a##a ## ##...|
++ |.. 2####1 ## ##...|
++ |.. a#86#8 ## ##...|
++ |..7##1 b#3## ##...|
++ -&gt;|..9#4 3a7## ##...|&lt;-
++ |.. ## ##...|
++ |.. ## ##...|
++ |.. 33...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc838 '져'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. b#######a cc..|
++ |.. ## ##..|
++ |.. ## ##..|
++ |.. ##1 ##..|
++ |.. 1##3 2#####..|
++ |.. 4##6 ##..|
++ |.. 7##a ##..|
++ |.. b###2 ##..|
++ |.. 3#a9#92#####..|
++ |.. a#32##5 ##..|
++ |.. 6#8 7##4 ##..|
++ -&gt;|..4#b a##4 ##..|&lt;-
++ |..231 462 ##..|
++ |.. ##..|
++ |.. 22..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc870 '조'
++ Font: gulim (17)
++ Bitmap: 14 x 13
++ Advance: 18
++ Offset: 2 x -1
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..2###########c ..|
++ |.. ##3 ..|
++ |.. 4##6 ..|
++ |.. c##c ..|
++ |.. 8#98#7 ..|
++ |.. 1b#a b#7 ..|
++ |..3###6 9##92..|
++ |..153 1893..|
++ |.. a9 ..|
++ |.. 1#c ..|
++ |.. 1#c ..|
++ -&gt;|.. 1#c ..|&lt;-
++ |..a############a..|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc880 '좀'
++ Font: gulim (17)
++ Bitmap: 15 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. a##########a .|
++ |.. 1##6 .|
++ |.. 1####3 .|
++ |.. 28##52##92 .|
++ |.. b##91 6###1 .|
++ |.. ## .|
++ |.. ## .|
++ |..b#############1.|
++ |.. .|
++ |.. 7##########6 .|
++ |.. ##1 1## .|
++ -&gt;|.. ## ## .|&lt;-
++ |.. ##1 ## .|
++ |.. 7##########8 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc885 '종'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. b##########a ..|
++ |.. 2##5 ..|
++ |.. 3####4 ..|
++ |.. 15c##2 a#b2 ..|
++ |.. c##5 aa 4##a ..|
++ |.. ## ..|
++ |.. ## ..|
++ |..b############c..|
++ |.. ..|
++ |.. 2a######81 ..|
++ |.. 5##71 19##3 ..|
++ -&gt;|.. ##3 3#c ..|&lt;-
++ |.. b#5 4#c ..|
++ |.. 2##c4115###3 ..|
++ |.. 5######6 ..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc8fc '주'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. a##########a ..|
++ |.. 3##1 ..|
++ |.. b##9 ..|
++ |.. 9#89#8 ..|
++ |.. 2##8 9#b1 ..|
++ |..2c##4 6##b1..|
++ |.. 43 55 ..|
++ |.. ..|
++ |..b#############..|
++ |.. ## ..|
++ |.. ## ..|
++ -&gt;|.. ## ..|&lt;-
++ |.. ## ..|
++ |.. ## ..|
++ |.. 66 ..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc900 '준'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. b##########a .|
++ |. 4##3 .|
++ |. 2####2 .|
++ |. 6##44##6 .|
++ |. 7##b1 1a##7 .|
++ |. 671 297 .|
++ |. .|
++ |. .|
++ |.1#############c1.|
++ |. 11 ## .|
++ |. ## ## .|
++ -&gt;|. ## 78 .|&lt;-
++ |. ##1 .|
++ |. 8###########3 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc90d '줍'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. b##########a .|
++ |. 4##5 .|
++ |. 3####4 .|
++ |. 18##32##b2 .|
++ |. a##8 6###1 .|
++ |. 12 22 .|
++ |. .|
++ |.2##############1.|
++ |. 66 ## 66 .|
++ |. ##1 ## ## .|
++ |. ############ .|
++ -&gt;|. ##1 ## .|&lt;-
++ |. ##1 1## .|
++ |. 8##########8 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc911 '중'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. a##########b ..|
++ |.. 3##4 ..|
++ |.. 2####4 ..|
++ |.. 18##33##a1 ..|
++ |.. 9##81 7##b ..|
++ |.. 12 32 ..|
++ |.. ..|
++ |..b############b..|
++ |.. ## ..|
++ |.. 3b######b3 ..|
++ |.. 8##71 28##8 ..|
++ -&gt;|..1##1 1##1..|&lt;-
++ |.. 9##61 17##9 ..|
++ |.. 3c#######4 ..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc998 '즘'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. b##########a .|
++ |. 7##2 .|
++ |. 6####3 .|
++ |. 3##c14##91 .|
++ |. 3###5 7##c .|
++ |. 21 32 .|
++ |. .|
++ |.1##############1.|
++ |. .|
++ |. 7##########6 .|
++ |. ##1 1## .|
++ -&gt;|. ## ## .|&lt;-
++ |. ## ## .|
++ |. 7##########8 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc9c0 '지'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. b########8 cc..|
++ |.. ## ##..|
++ |.. ## ##..|
++ |.. 1## ##..|
++ |.. 4##2 ##..|
++ |.. 8##6 ##..|
++ |.. c##b ##..|
++ |.. 6#7a#3 ##..|
++ |.. 1#c 3#b ##..|
++ |.. 1c#3 9#8 ##..|
++ |..1##5 1##8 ##..|
++ -&gt;|..253 297 ##..|&lt;-
++ |.. ##..|
++ |.. ##..|
++ |.. 22..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc9c4 '진'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..1#########4 #c..|
++ |.. 6#9 ##..|
++ |.. a#c ##..|
++ |.. 1###4 ##..|
++ |.. 9#9#c ##..|
++ |.. 5#a 8#9 ##..|
++ |.. 4##1 b#8 ##..|
++ |..3##2 b#7 ##..|
++ |.. 11 21 ##..|
++ |.. 22 ##..|
++ |.. ## 98..|
++ -&gt;|.. ## ..|&lt;-
++ |.. ## ..|
++ |.. 8##########a..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc9d1 '집'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 9########7 #c..|
++ |.. 4#c ##..|
++ |.. 9##3 ##..|
++ |.. 2###b ##..|
++ |.. c#48#7 ##..|
++ |.. 1##6 a#9 ##..|
++ |..1##4 8#a ##..|
++ |.. ..|
++ |.. a9 a9..|
++ |.. ## ##..|
++ |.. ############..|
++ -&gt;|.. ## ##..|&lt;-
++ |.. ## 1##..|
++ |.. 8##########7..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc9e7 '짧'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.a#########6cb .|
++ |. ## ## 1#c .|
++ |. 1## ## 1#c .|
++ |. 5##3 3##41####4.|
++ |. b##a 7##b2#c .|
++ |.4#9a#4cb9#7#c .|
++ |.c#127##61###c .|
++ |.21 77 2497 .|
++ |. b####7cc bb .|
++ |. 1#### ## .|
++ |. 1######## .|
++ -&gt;|. b####7## ## .|&lt;-
++ |. ## 11## ## .|
++ |. a##########b .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xc9f8 '째'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..3#######bbb bb..|
++ |.. cc cc cc ##..|
++ |.. cc cc cc ##..|
++ |.. cc cc cc ##..|
++ |.. ## ## cc ##..|
++ |.. ## 1## #####..|
++ |.. 3## 3##2cc ##..|
++ |.. 6##15##4cc ##..|
++ |.. a##37##7cc ##..|
++ |..1##c6a##acc ##..|
++ |..6#9#abbab#c ##..|
++ -&gt;|..ab158a758#c ##..|&lt;-
++ |.. cc ##..|
++ |.. bb ##..|
++ |.. 44..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xcabd '쪽'
++ Font: gulim (17)
++ Bitmap: 15 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 7#####aa#####2..|
++ |. 7#c 2##2 ..|
++ |. 1###5 9##a ..|
++ |. 2##6##36#a8#9 ..|
++ |. b#3 1aaaa 7#8..|
++ |. 88 ..|
++ |. ## ..|
++ |.1#############c..|
++ |. ..|
++ |. ..|
++ |. b##########9 ..|
++ -&gt;|. 1## ..|&lt;-
++ |. ## ..|
++ |. ## ..|
++ |. ## ..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xcc38 '참'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. a####a c# .|
++ |. ## .|
++ |. ## .|
++ |.5########9 ## .|
++ |. 2##2 ####4.|
++ |. a##b ## .|
++ |. 9#88#c1 ## .|
++ |.5##7 6##7 ## .|
++ |.682 187 55 .|
++ |. 8#########7 .|
++ |. ##1 ##1 .|
++ -&gt;|. 1## ##1 .|&lt;-
++ |. ## ##1 .|
++ |. 9#########9 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xcc3e '찾'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. a####a c# .|
++ |. ## .|
++ |. ## .|
++ |.5########a ####4.|
++ |. 7##4 ## .|
++ |. 6####4 ## .|
++ |.1a#b 2##91 ## .|
++ |.c#5 8#c ## .|
++ |. 11 .|
++ |. b###########7 .|
++ |. ##7 .|
++ -&gt;|. b###6 .|&lt;-
++ |. 6##71c##3 .|
++ |.1c##c2 5###5 .|
++ |. 32 131 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xcc98 '처'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. a#####1 cc...|
++ |. ##...|
++ |. ##...|
++ |. a########9 ##...|
++ |. ## ##...|
++ |. ## ##...|
++ |. 3##21#####...|
++ |. 9##7 ##...|
++ |. 3####1 ##...|
++ |. 1##54#8 ##...|
++ |. 2##8 8#6 ##...|
++ -&gt;|.2##a a#5 ##...|&lt;-
++ |. 33 ##...|
++ |. ##...|
++ |. 33...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xccab '첫'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. a####a a9..|
++ |.. ##..|
++ |.. ##..|
++ |..1########b ##..|
++ |.. 6##3 3#####..|
++ |.. 3####2 ##..|
++ |.. 5##23##5 ##..|
++ |..9#a1 2##9 ##..|
++ |..22 33 ##..|
++ |.. 11 #c..|
++ |.. 7## ..|
++ -&gt;|.. 5###9 ..|&lt;-
++ |.. 1a#c18##2 ..|
++ |.. 6###5 4###5..|
++ |.. 495 473..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xccb4 '체'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 4####a cc #c..|
++ |.. ## ##..|
++ |.. ## ##..|
++ |..a######a ## ##..|
++ |.. ## ## ##..|
++ |.. ## ## ##..|
++ |.. 1##28#### ##..|
++ |.. 5##6 ## ##..|
++ |.. a##b ## ##..|
++ |.. 4#bb#4 ## ##..|
++ |..1##32##2 ## ##..|
++ -&gt;|..b#6 5#c ## ##..|&lt;-
++ |.. ## ##..|
++ |.. cc ##..|
++ |.. 22..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xcd08 '초'
++ Font: gulim (17)
++ Bitmap: 15 x 13
++ Advance: 18
++ Offset: 2 x -1
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. b#####a .|
++ |.. .|
++ |.. .|
++ |.. a###########a .|
++ |.. 3##4 .|
++ |.. a##c .|
++ |.. 7#86#c1 .|
++ |.. 1a#a 6##4 .|
++ |.. 7##7 55 2c##6 .|
++ |..1981 ## 2b91.|
++ |.. ## .|
++ -&gt;|.. ## .|&lt;-
++ |..c#############1.|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xcd5c '최'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. a####7 cc..|
++ |.. ##..|
++ |.. ##..|
++ |.. b########2 ##..|
++ |.. 1##3 ##..|
++ |.. 8##8 ##..|
++ |.. 5#bb#5 ##..|
++ |.. 3c#c33b##3 ##..|
++ |.. 6a41## 5#8 ##..|
++ |.. 1## ##..|
++ |.. 2##69b####..|
++ -&gt;|..4########c95##..|&lt;-
++ |.. ##..|
++ |.. ##..|
++ |.. 22..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xcd94 '추'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. a#####b ..|
++ |.. ..|
++ |.. ..|
++ |.. b##########a ..|
++ |.. 8##6 ..|
++ |.. 6####4 ..|
++ |.. 17##9 1b##5 ..|
++ |..3##81 3b#c ..|
++ |.. ..|
++ |..b############b..|
++ |.. ## ..|
++ -&gt;|.. ## ..|&lt;-
++ |.. ## ..|
++ |.. ## ..|
++ |.. 99 ..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xcd9c '출'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. a#####b ..|
++ |.. ..|
++ |.. b##########5 ..|
++ |.. a##7 ..|
++ |.. 4b##9a##92 ..|
++ |..3###71 19##b ..|
++ |.. ..|
++ |..c############c..|
++ |.. ## ..|
++ |.. a##########a ..|
++ |.. 1## ..|
++ -&gt;|.. a##########9 ..|&lt;-
++ |.. ## ..|
++ |.. 9###########1..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xcde8 '취'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. a####7 ##..|
++ |.. 1##..|
++ |.. a########21##..|
++ |.. 1##3 1##..|
++ |.. 9##a 1##..|
++ |.. 9#a9#a 1##..|
++ |.. 6##7 6##71##..|
++ |.. 231 1653##..|
++ |.. 14####..|
++ |..5#############..|
++ |.. 2211## 1##..|
++ -&gt;|.. ## 1##..|&lt;-
++ |.. ## 1##..|
++ |.. ## 1##..|
++ |.. 88 44..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xce58 '치'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 3 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |... 1c####b #c..|
++ |... ##..|
++ |... ##..|
++ |...8########b ##..|
++ |... ## ##..|
++ |... 1## ##..|
++ |... 3##2 ##..|
++ |... 9##7 ##..|
++ |... 2####1 ##..|
++ |... c#46#9 ##..|
++ |...1c#6 9#8 ##..|
++ -&gt;|...##6 b#a ##..|&lt;-
++ |...22 11 ##..|
++ |... ##..|
++ |... 33..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xce6d '칭'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. a####a 89 ..|
++ |.. ## ..|
++ |.. ## ..|
++ |..5########a ## ..|
++ |.. ##6 ## ..|
++ |.. 8###2 ## ..|
++ |.. 8#93##4 ## ..|
++ |..3##7 2##b1## ..|
++ |..472 671cc ..|
++ |.. 2a######81 ..|
++ |.. 6##6 29##3..|
++ -&gt;|.. ##2 4#c..|&lt;-
++ |.. c#3 4#c..|
++ |.. 3##b4115###3..|
++ |.. 5######5 ..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xce74 '카'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.5#######7 ## .|
++ |. 1## ## .|
++ |. ## ## .|
++ |. 1## ## .|
++ |. 14#c ## .|
++ |.7#######9 ####7.|
++ |. 8#5 ## .|
++ |. 1##1 ## .|
++ |. a#6 ## .|
++ |. a#8 ## .|
++ |.39###6 ## .|
++ -&gt;|.6#a4 ## .|&lt;-
++ |. ## .|
++ |. ## .|
++ |. 33 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xcee4 '커'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 3 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |...5######7 #c..|
++ |... 1## ##..|
++ |... ## ##..|
++ |... ## ##..|
++ |... 12#b ##..|
++ |...7######99####..|
++ |... 6c6 ##..|
++ |... bc1 ##..|
++ |... 7#7 ##..|
++ |... 6#b ##..|
++ |...39##a ##..|
++ -&gt;|...6#a3 ##..|&lt;-
++ |... ##..|
++ |... ##..|
++ |... 33..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xceec '컬'
++ Font: gulim (17)
++ Bitmap: 15 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. b#######3 cc ..|
++ |. 7#8 ##1..|
++ |. 13b#6 ##1..|
++ |.2########3 ##1..|
++ |. 233226#bc####1..|
++ |. 4##1 ##1..|
++ |. 15##c1 ##1..|
++ |.2####4 78 ..|
++ |. b#########7 ..|
++ |. 1## ..|
++ |. 1## ..|
++ -&gt;|. b#########8 ..|&lt;-
++ |. ## ..|
++ |. 9##########8..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xcef4 '컴'
++ Font: gulim (17)
++ Bitmap: 15 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.1########3 cc ..|
++ |. 7#8 ## ..|
++ |. 13b#6 ## ..|
++ |.2########2 ## ..|
++ |. 233226#bc#### ..|
++ |. 3##1 ## ..|
++ |. 15c#b1 ## ..|
++ |.3###b3 ## ..|
++ |. 11 ..|
++ |. 9#########a ..|
++ |. ##1 c#2..|
++ -&gt;|. ## c#2..|&lt;-
++ |. ##1 ##2..|
++ |. 8#########a ..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xcf1c '켜'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 3 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |...6######7 cc..|
++ |... 1## ##..|
++ |... ## ##..|
++ |... ##c####..|
++ |... 13#b ##..|
++ |...8######9 ##..|
++ |... 6c5 ##..|
++ |... bc1 ##..|
++ |... 8#61#####..|
++ |... 8#9 ##..|
++ |...4c##8 ##..|
++ -&gt;|...5a71 ##..|&lt;-
++ |... ##..|
++ |... ##..|
++ |... 33..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xcf58 '콘'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. c##########8 .|
++ |. 1## .|
++ |. ## .|
++ |. 2c########### .|
++ |. 1321 cc .|
++ |. 55 ## .|
++ |. ## 43 .|
++ |. ## .|
++ |.1##############1.|
++ |. 11 .|
++ |. ##1 .|
++ -&gt;|. ##1 .|&lt;-
++ |. ##2 .|
++ |. 8##########b .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xcf5c '콜'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. a##########7 ..|
++ |.. 2## ..|
++ |.. 1## ..|
++ |.. a##########c ..|
++ |.. 1321 3#b ..|
++ |.. cc 363 ..|
++ |.. ## ..|
++ |..#############a..|
++ |.. ..|
++ |.. c##########a ..|
++ |.. 1## ..|
++ -&gt;|.. b##########9 ..|&lt;-
++ |.. ## ..|
++ |.. a########### ..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd06c '크'
++ Font: gulim (17)
++ Bitmap: 15 x 13
++ Advance: 18
++ Offset: 2 x -1
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 1##########8 .|
++ |.. ## .|
++ |.. ## .|
++ |.. ## .|
++ |.. ## .|
++ |.. 235## .|
++ |.. 2##########c .|
++ |.. 3#b .|
++ |.. 4#9 .|
++ |.. 5#8 .|
++ |.. 7#7 .|
++ -&gt;|.. 8#5 .|&lt;-
++ |..3#############2.|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd074 '클'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. a##########7 ..|
++ |.. 2## ..|
++ |.. 1## ..|
++ |.. b##########c ..|
++ |.. 1321 3#b ..|
++ |.. 5#8 ..|
++ |..b#############..|
++ |.. ..|
++ |.. c##########7 ..|
++ |.. 1## ..|
++ |.. 1## ..|
++ -&gt;|.. c##########8 ..|&lt;-
++ |.. ## ..|
++ |.. b##########c ..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd0a4 '키'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..6#######8 c#...|
++ |.. ##2 ##...|
++ |.. c#2 ##...|
++ |.. ##1 ##...|
++ |.. 13## ##...|
++ |..9#######b ##...|
++ |.. 7#7 ##...|
++ |.. ##2 ##...|
++ |.. 9#7 ##...|
++ |.. 9#a ##...|
++ |..38c##7 ##...|
++ -&gt;|..8#c61 ##...|&lt;-
++ |.. ##...|
++ |.. ##...|
++ |.. 44...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd0a8 '킨'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..a#######9 9a ..|
++ |.. ##2 ##1..|
++ |.. ## ##1..|
++ |.. 13569#b ##1..|
++ |..########5 ##1..|
++ |.. 4#9 ##1..|
++ |.. 26##8 ##1..|
++ |..####81 ##1..|
++ |.. ##1..|
++ |.. 55 ##1..|
++ |.. ## c# ..|
++ -&gt;|.. ## ..|&lt;-
++ |.. ##1 ..|
++ |.. 9##########9..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd0b5 '킵'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. a#######8 c#...|
++ |. ##1 ##...|
++ |. 24## ##...|
++ |.1c#######b ##...|
++ |. 12 1##5 ##...|
++ |. 1c#8 ##...|
++ |. 39##7 ##...|
++ |.1####81 66...|
++ |. 77 77...|
++ |. ## ##...|
++ |. ###########...|
++ -&gt;|. ## ##...|&lt;-
++ |. ##1 ##...|
++ |. 7#########8...|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd0c0 '타'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 8######a cc .|
++ |.1##1 ## .|
++ |.1## ## .|
++ |.1## ## .|
++ |.1## ## .|
++ |.1#######5 ####5.|
++ |.1## ## .|
++ |.1## ## .|
++ |.1## ## .|
++ |. ##2 1469## .|
++ |. 5########### .|
++ -&gt;|. ## .|&lt;-
++ |. ## .|
++ |. ## .|
++ |. 33 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd0d1 '탑'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.7#######a #c .|
++ |.##2 1## .|
++ |.##1 1## .|
++ |.########5 1####4.|
++ |.##1 1## .|
++ |.##1 148### .|
++ |.8#########c## .|
++ |. 88 .|
++ |. 77 77 .|
++ |. ## ## .|
++ |. ############ .|
++ -&gt;|. ## ## .|&lt;-
++ |. ##1 1## .|
++ |. 7##########7 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd0dc '태'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 8#####2bb cc..|
++ |..1##1 ## ##..|
++ |..1## ## ##..|
++ |..1## ## ##..|
++ |..1##111 ## ##..|
++ |..1######3######..|
++ |..1## ## ##..|
++ |..1## ## ##..|
++ |..1## ## ##..|
++ |..1## 148## ##..|
++ |.. 8######## ##..|
++ -&gt;|.. ## ##..|&lt;-
++ |.. ## ##..|
++ |.. cc ##..|
++ |.. 44..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd0dd '택'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..7#####3 88 c#...|
++ |..##2 ## ##...|
++ |..##1 ## ##...|
++ |..######4 #####...|
++ |..##3221 ## ##...|
++ |..##1 ## ##...|
++ |..##2 137c## ##...|
++ |..6######### ##...|
++ |.. cc c#...|
++ |.. ...|
++ |.. 9##########9...|
++ -&gt;|.. 1##...|&lt;-
++ |.. ##...|
++ |.. ##...|
++ |.. ##...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd130 '터'
++ Font: gulim (17)
++ Bitmap: 12 x 15
++ Advance: 18
++ Offset: 3 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |...7######2 cc...|
++ |...##3 ##...|
++ |...##1 ##...|
++ |...##1 ##...|
++ |...##1 ##...|
++ |...######ca####...|
++ |...##1 ##...|
++ |...##1 ##...|
++ |...##1 ##...|
++ |...##4 13761 ##...|
++ |...5######c2 ##...|
++ -&gt;|... 22 ##...|&lt;-
++ |... ##...|
++ |... ##...|
++ |... 33...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd14c '테'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 8####b cc cc..|
++ |..1##1 ## ##..|
++ |..1## ## ##..|
++ |..1## ## ##..|
++ |..1## ## ##..|
++ |..1######### ##..|
++ |..1## ## ##..|
++ |..1## ## ##..|
++ |..1## ## ##..|
++ |..1##11352## ##..|
++ |.. 7#####3## ##..|
++ -&gt;|.. ## ##..|&lt;-
++ |.. ## ##..|
++ |.. cc ##..|
++ |.. 33..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd14d '텍'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 8####c1cc a9..|
++ |..1##1 ## ##..|
++ |..1## ## ##..|
++ |..1## ## ##..|
++ |..1######### ##..|
++ |..1## ## ##..|
++ |..1## ## ##..|
++ |.. 9#####8## ##..|
++ |.. 77 cc..|
++ |.. ..|
++ |.. 9##########9..|
++ -&gt;|.. 1##..|&lt;-
++ |.. ##..|
++ |.. ##..|
++ |.. ##..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd15c '템'
++ Font: gulim (17)
++ Bitmap: 15 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 8####c1bb #c .|
++ |..1##1 ## ## .|
++ |..1## ## ## .|
++ |..1## ## ## .|
++ |..1######### ## .|
++ |..1## ## ## .|
++ |..1## 1 ## ## .|
++ |.. 9#####8cc ## .|
++ |.. 11 .|
++ |.. 7##########9 .|
++ |.. ##1 ## .|
++ -&gt;|.. ## ##1.|&lt;-
++ |.. ##1 ## .|
++ |.. 8##########9 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd1a0 '토'
++ Font: gulim (17)
++ Bitmap: 14 x 13
++ Advance: 18
++ Offset: 2 x -1
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 6##########4 ..|
++ |.. ##3 ..|
++ |.. ##1 ..|
++ |.. ##1 ..|
++ |.. ###########3 ..|
++ |.. ##1 ..|
++ |.. ##1 ..|
++ |.. ##2 ..|
++ |.. 6##########5 ..|
++ |.. ## ..|
++ |.. ## ..|
++ -&gt;|.. ## ..|&lt;-
++ |..b############9..|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd1a8 '톨'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 7##########9 ..|
++ |.. ##3 ..|
++ |.. ##1 ..|
++ |.. ###########9 ..|
++ |.. ##2 ..|
++ |.. 6##########c ..|
++ |.. ## ..|
++ |..b############b..|
++ |.. ..|
++ |.. c##########9 ..|
++ |.. 1## ..|
++ -&gt;|.. b##########9 ..|&lt;-
++ |.. ## ..|
++ |.. b##########c ..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd1b5 '통'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 6##########7 ..|
++ |.. ##3 ..|
++ |.. ##2 ..|
++ |.. ###########7 ..|
++ |.. ##2 ..|
++ |.. 7##########a ..|
++ |.. ## ..|
++ |.. ## ..|
++ |..b############b..|
++ |.. ..|
++ |.. 5#######c3 ..|
++ -&gt;|.. 9#c3 4##7 ..|&lt;-
++ |.. ##2 2## ..|
++ |.. 6##83 38##6 ..|
++ |.. 28######92 ..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd2b8 '트'
++ Font: gulim (17)
++ Bitmap: 14 x 13
++ Advance: 18
++ Offset: 2 x -1
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 6##########1 ..|
++ |.. ##2 ..|
++ |.. ##1 ..|
++ |.. ##1 ..|
++ |.. ##########c ..|
++ |.. ##1 ..|
++ |.. ##2 ..|
++ |.. 7##########2 ..|
++ |.. ..|
++ |.. ..|
++ |.. ..|
++ -&gt;|.. ..|&lt;-
++ |..b############2..|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd2b9 '특'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 5##########8 .|
++ |. c#4 .|
++ |. c#2 .|
++ |. c##########8 .|
++ |. c#2 .|
++ |. 5##########9 .|
++ |. .|
++ |. .|
++ |.1##############1.|
++ |. .|
++ |. b##########9 .|
++ -&gt;|. 1## .|&lt;-
++ |. ## .|
++ |. ## .|
++ |. 89 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd2f0 '티'
++ Font: gulim (17)
++ Bitmap: 12 x 15
++ Advance: 18
++ Offset: 3 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |...6######c cc...|
++ |...##2 ##...|
++ |...##1 ##...|
++ |...##1 ##...|
++ |...##1 ##...|
++ |...#######a ##...|
++ |...##1 ##...|
++ |...##1 ##...|
++ |...##1 ##...|
++ |...##3 1258b##...|
++ |...4###########...|
++ -&gt;|... ##...|&lt;-
++ |... ##...|
++ |... ##...|
++ |... 33...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd305 '팅'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..6#######b aa...|
++ |..##2 ##...|
++ |..##1 ##...|
++ |..########8 ##...|
++ |..##1 ##...|
++ |..##1 36##...|
++ |..7############...|
++ |.. 11 ##...|
++ |.. cc...|
++ |.. 2a######91 ...|
++ |.. 5##71 18##4...|
++ -&gt;|.. c#3 2##...|&lt;-
++ |.. b#5 3##...|
++ |.. 2###5115c##3...|
++ |.. 5######6 ...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd30c '파'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.3########b cc .|
++ |. ## .|
++ |. 55 21 ## .|
++ |. cc 4c7 ## .|
++ |. cc 6c5 ## .|
++ |. b#1 8c3 ## .|
++ |. 9#3 ac2 ####7.|
++ |. 8#4 bc ## .|
++ |. 6#6 cc ## .|
++ |. 5#82##469## .|
++ |.6############ .|
++ -&gt;|. 8a1 ## .|&lt;-
++ |. ## .|
++ |. ## .|
++ |. 44 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd310 '판'
++ Font: gulim (17)
++ Bitmap: 17 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.2########a 98 |
++ |. ## |
++ |. 99 89 ## |
++ |. c# c#1 ## |
++ |. bc1 c# ####4|
++ |. bc1 ## ## |
++ |. ac2 cc 2## |
++ |.7############# |
++ |. 11 ## |
++ |. 55 ## |
++ |. ## cc |
++ -&gt;|. ## |&lt;-
++ |. ##1 |
++ |. 8##########b |
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd328 '패'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..4######a cc #c..|
++ |.. ## ##..|
++ |.. 44 55 ## ##..|
++ |.. 2ca cc ## ##..|
++ |.. 1ca cc ## ##..|
++ |.. cb cc #####..|
++ |.. cc cc ## ##..|
++ |.. cc cc ## ##..|
++ |.. cc1cb ## ##..|
++ |.. bc2c#47## ##..|
++ |..2########## ##..|
++ -&gt;|.. 1 ## ##..|&lt;-
++ |.. ## ##..|
++ |.. cc ##..|
++ |.. 44..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd38c '펌'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. b#######9 #c..|
++ |.. ##..|
++ |.. 55 8#4 ##..|
++ |.. b#1 9#5#####..|
++ |.. a#3 a#2 ##..|
++ |.. 8#4 c#1 ##..|
++ |.. 7#95##ca4 ##..|
++ |..3######71 ##..|
++ |.. ..|
++ |.. 7##########7..|
++ |.. ##1 1##..|
++ -&gt;|.. ##1 ##..|&lt;-
++ |.. ##1 1##..|
++ |.. 7##########9..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd398 '페'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. c#####a bb #c..|
++ |.. ## ##..|
++ |.. 2a7 89 ## ##..|
++ |.. 2b9 bb ## ##..|
++ |.. 1ba bb ## ##..|
++ |.. ba b##### ##..|
++ |.. bb bb ## ##..|
++ |.. bb ba ## ##..|
++ |.. bb1b9 ## ##..|
++ |.. bc4##61## ##..|
++ |..4######91## ##..|
++ -&gt;|.. ## ##..|&lt;-
++ |.. ## ##..|
++ |.. cc ##..|
++ |.. 33..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd3b8 '편'
++ Font: gulim (17)
++ Bitmap: 15 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 7#######a aa ..|
++ |. 11 11 ## ..|
++ |. 1ca bc6#### ..|
++ |. cb cc ## ..|
++ |. cc cc ## ..|
++ |. cc #c ## ..|
++ |. cc 1#c7#### ..|
++ |.2c########7 ## ..|
++ |. 35321 ## ..|
++ |. 44 ## ..|
++ |. ## cc ..|
++ -&gt;|. ## ..|&lt;-
++ |. ##1 ..|
++ |. 9##########4..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd3ec '포'
++ Font: gulim (17)
++ Bitmap: 14 x 13
++ Advance: 18
++ Offset: 2 x -1
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..1###########a ..|
++ |.. ..|
++ |.. 21 11 ..|
++ |.. 5#8 bb ..|
++ |.. 4#9 bb ..|
++ |.. 3#a bb ..|
++ |.. 3#b 1ba ..|
++ |.. 2#c 2b9 ..|
++ |.. c##########a ..|
++ |.. ## ..|
++ |.. ## ..|
++ -&gt;|.. ## ..|&lt;-
++ |..a############1..|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd45c '표'
++ Font: gulim (17)
++ Bitmap: 14 x 13
++ Advance: 18
++ Offset: 2 x -1
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..1###########a ..|
++ |.. ..|
++ |.. 3b8 ac1 ..|
++ |.. 2#a c# ..|
++ |.. 1#b cc ..|
++ |.. ## cb ..|
++ |..8###########b ..|
++ |.. ..|
++ |.. bb bb ..|
++ |.. ## ## ..|
++ |.. ## ## ..|
++ -&gt;|.. ## ## ..|&lt;-
++ |..a############9..|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd4e8 '퓨'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..4###########a ..|
++ |.. ..|
++ |.. 593 78 ..|
++ |.. 6#7 ## ..|
++ |.. 4#9 1#c ..|
++ |.. 3#b 3#b ..|
++ |..5###########a ..|
++ |.. ..|
++ |..b############9..|
++ |.. ## ## ..|
++ |.. ## ## ..|
++ -&gt;|.. ## ## ..|&lt;-
++ |.. ## ## ..|
++ |.. ## ## ..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd504 '프'
++ Font: gulim (17)
++ Bitmap: 14 x 13
++ Advance: 18
++ Offset: 2 x -1
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..4###########a ..|
++ |.. ..|
++ |.. 187 b#1 ..|
++ |.. 2#b c#1 ..|
++ |.. 1#c ## ..|
++ |.. ## ## ..|
++ |.. ##1 1#c ..|
++ |.. b#3 1#b ..|
++ |..6###########b ..|
++ |.. ..|
++ |.. ..|
++ -&gt;|.. ..|&lt;-
++ |..b############b..|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd50c '플'
++ Font: gulim (17)
++ Bitmap: 15 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. b###########c ..|
++ |. 231 352 ..|
++ |. 7#5 8c4 ..|
++ |. 5c7 9c2 ..|
++ |. 7###########a ..|
++ |. ..|
++ |. ..|
++ |.3#############6..|
++ |. ..|
++ |. c#########a ..|
++ |. ## ..|
++ -&gt;|. b#########a ..|&lt;-
++ |. ## ..|
++ |. a##########a ..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd53c '피'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..1#########1cc...|
++ |.. ##...|
++ |.. 65 66 ##...|
++ |.. 2ca cc ##...|
++ |.. 1cb cc ##...|
++ |.. cc cc ##...|
++ |.. cc cc ##...|
++ |.. cc cc ##...|
++ |.. cc 1cb ##...|
++ |.. c#35##7b##...|
++ |..5############...|
++ -&gt;|.. ##...|&lt;-
++ |.. ##...|
++ |.. ##...|
++ |.. 33...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd53d '픽'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..3########b cc..|
++ |.. ##..|
++ |.. 4b7 3b7 ##..|
++ |.. 3c8 5c7 ##..|
++ |.. 2ca 6c6 ##..|
++ |.. cb 7c4 2##..|
++ |..4c############..|
++ |..7#######82 ##..|
++ |.. 66..|
++ |.. ..|
++ |.. 9##########9..|
++ -&gt;|.. 1##..|&lt;-
++ |.. ##..|
++ |.. ##..|
++ |.. ##..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd544 '필'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..3########a cc..|
++ |.. 33 231 ##..|
++ |.. bc 7#5 ##..|
++ |.. ac2 9#4 ##..|
++ |.. 8c3 a#2 ##..|
++ |..39############..|
++ |..9#######a334##..|
++ |..13321 ##..|
++ |.. b##########7..|
++ |.. 1##..|
++ |.. 1##..|
++ -&gt;|.. b##########8..|&lt;-
++ |.. ## ..|
++ |.. a##########6..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd558 '하'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 9####a #c .|
++ |. ## .|
++ |. ## .|
++ |.b#########1## .|
++ |. ## .|
++ |. 3#####3 ## .|
++ |. 4##3 4##4 ####6.|
++ |. c#3 4#b ## .|
++ |. ## 1## ## .|
++ |. c#3 5#b ## .|
++ |. 4##218##3 ## .|
++ -&gt;|. 2c###c2 ## .|&lt;-
++ |. ## .|
++ |. ## .|
++ |. 33 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd55c '한'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. a####b aa .|
++ |. ## .|
++ |.a#########3## .|
++ |. ## .|
++ |. 3c###a2 ####4.|
++ |. 7##415##5 ## .|
++ |. ##1 3#c ## .|
++ |. ##2 2## ## .|
++ |. 6##515##6 ## .|
++ |. 3b###b3 ## .|
++ |. ## cc .|
++ -&gt;|. ## .|&lt;-
++ |. ##1 .|
++ |. 7##########b .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd560 '할'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. a####b ## .|
++ |. ## .|
++ |.a#########1## .|
++ |. ####4.|
++ |. 2#####b2 ## .|
++ |. c#3 4#c ## .|
++ |. c#5 4#c ## .|
++ |. 1b####b2 ## .|
++ |. 22 .|
++ |. b#########b .|
++ |. ## .|
++ -&gt;|. a#########b .|&lt;-
++ |. 1## .|
++ |. a##########8 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd568 '함'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. a####b c# .|
++ |. ## .|
++ |.b########c ## .|
++ |. ####5.|
++ |. 1a####91 ## .|
++ |. b#6 7#a ## .|
++ |. ## ## ## .|
++ |. 8#c22b#8 ## .|
++ |. 5####6 77 .|
++ |. 7##########8 .|
++ |. ##1 ## .|
++ -&gt;|. ## ## .|&lt;-
++ |. ##1 ## .|
++ |. 8##########8 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd569 '합'
++ Font: gulim (17)
++ Bitmap: 16 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. a####b c# .|
++ |. ## .|
++ |.b########c ## .|
++ |. ####5.|
++ |. 1a####91 ## .|
++ |. b#6 7#a ## .|
++ |. ## ## ## .|
++ |. 8#c22b#8 ## .|
++ |. 5####6 11 .|
++ |. ## c# .|
++ |. ############ .|
++ -&gt;|. ## ## .|&lt;-
++ |. ##1 ## .|
++ |. 8##########8 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd56d '항'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. a####b ## .|
++ |. ## .|
++ |.b########c1## .|
++ |. ####4.|
++ |. 1a####91 ## .|
++ |. b#6 7#a ## .|
++ |. ## ## ## .|
++ |. 8#c22b#8 ## .|
++ |. 5####6 ## .|
++ |. .|
++ |. 5########4 .|
++ -&gt;|. 9##3 4##9 .|&lt;-
++ |. ##2 1## .|
++ |. 6##83 38##8 .|
++ |. 28######a2 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd574 '해'
++ Font: gulim (17)
++ Bitmap: 13 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. a###a bb cc...|
++ |.. ## ##...|
++ |.. ## ##...|
++ |..b######a## ##...|
++ |.. ## ##...|
++ |.. 3####5 ## ##...|
++ |..3##11b#5#####...|
++ |..9#4 2#c## ##...|
++ |..b#2 #### ##...|
++ |..9#5 3#b## ##...|
++ |..2##43##4## ##...|
++ -&gt;|.. 3####4 ## ##...|&lt;-
++ |.. ## ##...|
++ |.. cc ##...|
++ |.. 33...|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd588 '했'
++ Font: gulim (17)
++ Bitmap: 15 x 14
++ Advance: 18
++ Offset: 1 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. a###9 bb ## ..|
++ |. ## ## ..|
++ |.4#######3## ## ..|
++ |. 1 ## ## ..|
++ |. 1b####2 ##### ..|
++ |. a#5 4#b ## ## ..|
++ |. c# ## ## ## ..|
++ |. 8#929#9 ## ## ..|
++ |. 7###8 bb cc ..|
++ |. 462 56 ..|
++ |. b#7 c#5 ..|
++ -&gt;|. 4### 5##b ..|&lt;-
++ |. 3##9#c13##a#9 ..|
++ |.3##3 7####2 8#c..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd589 '행'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 3####5 aa cc..|
++ |.. ##1##..|
++ |..5#######3##1##..|
++ |.. ##1##..|
++ |.. 8###8 #####..|
++ |.. 9#6 8#9 ##1##..|
++ |.. ## ## ##1##..|
++ |.. a#6 7#a ##1##..|
++ |.. 9###9 cc1#c..|
++ |.. 11..|
++ |.. 5########4 ..|
++ -&gt;|.. 9##3 3##9..|&lt;-
++ |.. ##2 1##..|
++ |.. 6##83 38##8..|
++ |.. 28######a3 ..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd5a5 '향'
++ Font: gulim (17)
++ Bitmap: 16 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. a####b cc .|
++ |. ## .|
++ |.b########c ## .|
++ |. ####5.|
++ |. 1a####91 ## .|
++ |. b#6 7#a ## .|
++ |. ## ## ####5.|
++ |. 8#c22b#8 ## .|
++ |. 5####6 ## .|
++ |. 55 .|
++ |. 5########4 .|
++ -&gt;|. 9##3 3c#9 .|&lt;-
++ |. ##2 ##1 .|
++ |. 6##83 27##8 .|
++ |. 28######a3 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd604 '현'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 7####a bb..|
++ |.. ##..|
++ |..b########b ##..|
++ |.. ##..|
++ |.. 3c###a24####..|
++ |.. 7##415##5 ##..|
++ |.. ##1 2#c ##..|
++ |.. ##2 2## ##..|
++ |.. 6##515##b####..|
++ |.. 2b###b3 ##..|
++ |.. cc #c..|
++ -&gt;|.. ## ..|&lt;-
++ |.. ##1 ..|
++ |.. 8##########b..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd615 '형'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 4####6 ##..|
++ |.. ##..|
++ |..b########b ##..|
++ |.. 4####..|
++ |.. 1a####8 ##..|
++ |.. a#7 8#a ##..|
++ |.. ## ## ##..|
++ |.. 9#9 9#94####..|
++ |.. 7####8 ##..|
++ |.. 54..|
++ |.. 6#######c3 ..|
++ -&gt;|.. a#c2 4##7..|&lt;-
++ |.. ##1 2##..|
++ |.. 7##82 38##6..|
++ |.. 29######92 ..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd638 '호'
++ Font: gulim (17)
++ Bitmap: 14 x 13
++ Advance: 18
++ Offset: 2 x -1
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 4######2 ..|
++ |.. ..|
++ |.. ..|
++ |..b############4..|
++ |.. ..|
++ |.. 4########4 ..|
++ |.. 8#c3 3##8 ..|
++ |.. ## ## ..|
++ |.. 9#b2 3c#9 ..|
++ |.. 5########6 ..|
++ |.. ## ..|
++ -&gt;|.. ## ..|&lt;-
++ |..b############b..|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd63c '혼'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. a#####4 ..|
++ |.. ..|
++ |..5###########a ..|
++ |.. ..|
++ |.. 1a########81 ..|
++ |.. c#6 6#b ..|
++ |.. a#92 29#b ..|
++ |.. 6########7 ..|
++ |.. ## ..|
++ |..b############b..|
++ |.. 77 ..|
++ -&gt;|.. ##1 ..|&lt;-
++ |.. c#2 ..|
++ |.. 7##########c ..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd648 '홈'
++ Font: gulim (17)
++ Bitmap: 14 x 14
++ Advance: 18
++ Offset: 2 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. a#####4 ..|
++ |.. ..|
++ |..5###########a ..|
++ |.. 19########7 ..|
++ |.. c#71 18#b ..|
++ |.. c#61 17#c ..|
++ |.. 19########91 ..|
++ |.. ## ..|
++ |..b############b..|
++ |.. ..|
++ |.. 8##########9 ..|
++ -&gt;|.. ##1 1## ..|&lt;-
++ |.. ##1 ## ..|
++ |.. 8##########8 ..|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd654 '화'
++ Font: gulim (17)
++ Bitmap: 17 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. a####8 #c |
++ |. ## |
++ |. ## |
++ |.2#########a ## |
++ |. ## |
++ |. 8#####a1 ## |
++ |. 9#7 7#b ####4|
++ |. c# ## ## |
++ |. 8#c3 2b#9 ## |
++ |. 5#####7 ## |
++ |. ## 25## |
++ -&gt;|.8############# |&lt;-
++ |. ## |
++ |. ## |
++ |. 33 |
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd655 '확'
++ Font: gulim (17)
++ Bitmap: 17 x 15
++ Advance: 18
++ Offset: 0 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ | 7####9 #c .|
++ | 1## .|
++ | a########c2## .|
++ | 1## .|
++ | 3#######31####3.|
++ | ##3 5##1## .|
++ | 6#######41## .|
++ | ##12469## .|
++ |3############# .|
++ | 66 .|
++ | 4##########7 .|
++ -&gt;| ## .|&lt;-
++ | ## .|
++ | ## .|
++ | 66 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd658 '환'
++ Font: gulim (17)
++ Bitmap: 17 x 14
++ Advance: 18
++ Offset: 0 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ | 7####9 c# .|
++ | ## .|
++ | a########c1## .|
++ | ## .|
++ | 2b#####b2 ## .|
++ | c#5 5#c ####3.|
++ | a#81 2c#8 ## .|
++ | 5c##c82 ## .|
++ | ######### .|
++ |3########8 ## .|
++ | 77 88 .|
++ -&gt;| ## .|&lt;-
++ | ##1 .|
++ | 8##########b .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd65c '활'
++ Font: gulim (17)
++ Bitmap: 17 x 14
++ Advance: 18
++ Offset: 0 x -2
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ | 7####9 cc .|
++ | ## .|
++ | a########c1## .|
++ | 18#####81 ## .|
++ | c#61 2b#c ####4.|
++ | a###c###8 ## .|
++ | 27##841 ## .|
++ |3############# .|
++ | 121 88 .|
++ | c#########8 .|
++ | ## .|
++ -&gt;| a#########b .|&lt;-
++ | ## .|
++ | a##########6 .|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd669 '황'
++ Font: gulim (17)
++ Bitmap: 17 x 15
++ Advance: 18
++ Offset: 0 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ | 7####9 #c .|
++ | ## .|
++ | a########c2## .|
++ | ## .|
++ | 3#######3 ####3.|
++ | ##3 5## ## .|
++ | 6#######4 ## .|
++ | ##12469## .|
++ |3############# .|
++ | 88 .|
++ | 5########4 .|
++ -&gt;| 9#c3 4##9 .|&lt;-
++ | ##2 1## .|
++ | 6##72 27##8 .|
++ | 29######a3 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd68c '회'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 9####a cc..|
++ |.. ##..|
++ |.. 3#########6##..|
++ |.. ##..|
++ |.. 6#####6 ##..|
++ |.. 9#91 2a#9 ##..|
++ |.. ## ## ##..|
++ |.. b#7 6#9 ##..|
++ |.. 2c#####8 ##..|
++ |.. ## ##..|
++ |.. ## 137##..|
++ -&gt;|..3#############..|&lt;-
++ |.. ##..|
++ |.. ##..|
++ |.. 33..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd6a8 '효'
++ Font: gulim (17)
++ Bitmap: 14 x 13
++ Advance: 18
++ Offset: 2 x -1
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. a#####a ..|
++ |.. ..|
++ |.. ..|
++ |..1############2..|
++ |.. 3b######a2 ..|
++ |.. 8##51 15##8 ..|
++ |.. ## ## ..|
++ |.. 8#c3 2c#8 ..|
++ |.. 5########5 ..|
++ |.. 22 22 ..|
++ |.. ## ## ..|
++ -&gt;|.. ## ## ..|&lt;-
++ |..b############b..|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd6c4 '후'
++ Font: gulim (17)
++ Bitmap: 15 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. a#####b .|
++ |.. .|
++ |..9############1 .|
++ |.. .|
++ |.. 2a#####92 .|
++ |.. 7##72126##7 .|
++ |.. ##3 ##1 .|
++ |.. 7##82 15##9 .|
++ |.. 2a#####b3 .|
++ |.. .|
++ |..b#############1.|
++ -&gt;|.. ## .|&lt;-
++ |.. ## .|
++ |.. ## .|
++ |.. 99 .|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd734 '휴'
++ Font: gulim (17)
++ Bitmap: 15 x 15
++ Advance: 18
++ Offset: 1 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |. 6#####a ..|
++ |. ..|
++ |. 7###########c ..|
++ |. ..|
++ |. 6#######6 ..|
++ |. c#a41 14b#b ..|
++ |. ##6 6## ..|
++ |. 2a#######a2 ..|
++ |. ..|
++ |.9#############b..|
++ |. ## ## ..|
++ -&gt;|. ## ## ..|&lt;-
++ |. ## ## ..|
++ |. ## ## ..|
++ |. 22 44 ..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xd788 '히'
++ Font: gulim (17)
++ Bitmap: 14 x 15
++ Advance: 18
++ Offset: 2 x -3
++ __________________
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |..................|
++ |.. 9####a #c..|
++ |.. ##..|
++ |.. ##..|
++ |..1#########b ##..|
++ |.. ##..|
++ |.. 1a####a2 ##..|
++ |.. 2##6 6##3 ##..|
++ |.. b#4 5#b ##..|
++ |.. ##1 2## ##..|
++ |.. b#5 6#b ##..|
++ |.. 3##6 18##2 ##..|
++ -&gt;|.. 19####91 ##..|&lt;-
++ |.. ##..|
++ |.. ##..|
++ |.. 55..|
++ |..................|
++ |..................|
++ ------------------
++
++Char 0xfbfd 'ﯽ'
++ Font: DejaVuSans-Bold (14)
++ Bitmap: 14 x 6
++ Advance: 14
++ Offset: 1 x -2
++ ______________
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |...............|
++ |. 4c##6 |
++ |.453 ##c##4 |
++ |.##5 b#93##3|
++ -&gt;|.##8 27##25#4|&lt;-
++ |.9########9 |
++ |. 59aaa862 |
++ |...............|
++ |...............|
++ |...............|
++ --------------
++
++Char 0xfe8e 'ﺎ'
++ Font: KacstOne (14)
++ Bitmap: 4 x 8
++ Advance: 4
++ Offset: 0 x 2
++ ____
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ | a |
++ |1# |
++ | # |
++ | #1 |
++ | c1 |
++ | b2 |
++ | aa2|
++ | 5#4|
++ |....|
++ -&gt;|....|&lt;-
++ |....|
++ |....|
++ |....|
++ |....|
++ |....|
++ ----
++
++Char 0xfe91 'ﺑ'
++ Font: KacstOne (14)
++ Bitmap: 6 x 9
++ Advance: 5
++ Offset: -1 x -2
++ _____
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ | 31|
++ | b7|
++ | 6c|
++ |18889#|
++ |2#####|
++ | |
++ -&gt;| |&lt;-
++ | 35 |
++ | 5c |
++ |......|
++ |......|
++ |......|
++ -----
++
++Char 0xfeae 'ﺮ'
++ Font: KacstOne (14)
++ Bitmap: 6 x 7
++ Advance: 6
++ Offset: 0 x -2
++ ______
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ |......|
++ | c3|
++ | b9|
++ | 2a|
++ | 29|
++ -&gt;|1 1b5|&lt;-
++ |6a9#b |
++ | 6#b2 |
++ |......|
++ |......|
++ |......|
++ ------
++
++Char 0xfeb4 'ﺴ'
++ Font: KacstOne (14)
++ Bitmap: 10 x 4
++ Advance: 9
++ Offset: -1 x 2
++ _________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ | 6 41 a|
++ | b a #|
++ |59c989#97#|
++ |7bb##b7b#c|
++ |..........|
++ -&gt;|..........|&lt;-
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ ---------
++
++Char 0xfecb 'ﻋ'
++ Font: KacstOne (14)
++ Bitmap: 8 x 6
++ Advance: 7
++ Offset: -1 x 2
++ _______
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ | 1 |
++ | 4##5 |
++ | #2 3 |
++ | #9 |
++ |488b#b77|
++ |7######6|
++ |........|
++ -&gt;|........|&lt;-
++ |........|
++ |........|
++ |........|
++ |........|
++ |........|
++ -------
++
++Char 0xfed3 'ﻓ'
++ Font: KacstOne (14)
++ Bitmap: 5 x 9
++ Advance: 5
++ Offset: 0 x 2
++ _____
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ | 1 |
++ | b7 |
++ | 1 |
++ | ba |
++ | 5185|
++ | c729|
++ | 4c#a|
++ |888ca|
++ |####6|
++ |.....|
++ -&gt;|.....|&lt;-
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ |.....|
++ -----
++
++Char 0xfef2 'ﻲ'
++ Font: KacstOne (14)
++ Bitmap: 9 x 9
++ Advance: 9
++ Offset: 1 x -5
++ _________
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |..........|
++ |. 5781|
++ |.11 7###1|
++ |.6 c93 |
++ -&gt;|.a1 39#4 |&lt;-
++ |.9#8779c1 |
++ |.1a##a61 |
++ |. 2 2 |
++ |. 1#8c |
++ |. 1 1 |
++ ---------
++
++Char 0xff08 '('
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 5 x 16
++ Advance: 17
++ Offset: 9 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |......... ##...|
++ |......... ## ...|
++ |......... ## ...|
++ |......... ## ...|
++ |......... ## ...|
++ |......... ## ...|
++ |.........## ...|
++ |.........## ...|
++ |.........## ...|
++ |.........## ...|
++ |......... ## ...|
++ |......... ## ...|
++ |......... ## ...|
++ -&gt;|......... ## ...|&lt;-
++ |......... ## ...|
++ |......... ##...|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0xff09 ')'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 5 x 16
++ Advance: 17
++ Offset: 3 x -2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |...## .........|
++ |... ## .........|
++ |... ## .........|
++ |... ## .........|
++ |... ## .........|
++ |... ## .........|
++ |... ##.........|
++ |... ##.........|
++ |... ##.........|
++ |... ##.........|
++ |... ## .........|
++ |... ## .........|
++ |... ## .........|
++ -&gt;|... ## .........|&lt;-
++ |... ## .........|
++ |...## .........|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0xff0c ','
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 3 x 4
++ Advance: 17
++ Offset: 3 x 0
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |...###...........|
++ |...###...........|
++ |... ##...........|
++ -&gt;|...## ...........|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0xff0d '-'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 12 x 1
++ Advance: 17
++ Offset: 2 x 6
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |..############...|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0xff1a ':'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 3 x 8
++ Advance: 17
++ Offset: 7 x 2
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.......###.......|
++ |.......###.......|
++ |....... .......|
++ |....... .......|
++ |....... .......|
++ |....... .......|
++ |.......###.......|
++ |.......###.......|
++ |.................|
++ -&gt;|.................|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
++Char 0xff1f '?'
++ Font: wenquanyi_12pt.pcf (16)
++ Bitmap: 9 x 14
++ Advance: 17
++ Offset: 4 x 0
++ _________________
++ |.................|
++ |.................|
++ |.................|
++ |.... ##### ....|
++ |.... ## ## ....|
++ |....## ##....|
++ |....## ##....|
++ |....## ##....|
++ |.... ## ....|
++ |.... ## ....|
++ |.... ## ....|
++ |.... ## ....|
++ |.... ## ....|
++ |.... ....|
++ |.... ....|
++ |.... ## ....|
++ -&gt;|.... ## ....|&lt;-
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ |.................|
++ -----------------
++
+
+<a id="themetrunkmageiagfxbootthemetrunkfontsMakefile">Added: theme/trunk/mageia-gfxboot-theme/trunk/fonts/Makefile</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/fonts/Makefile (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/fonts/Makefile 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,39 @@
++GFXBOOT_FONT = gfxboot-font
++KEYMAPCHARS = gfxboot-keymapchars
++
++all: .ready
++
++fonts: 16x16.fnt
++
++.ready:
++ @touch .ready
++
++16x16.fnt: ../po/en.tr ../src/main.log
++ cat ../po/*.tr ../help-*/*/*.html &gt;tmp.txt
++ $(GFXBOOT_FONT) -v -l 18 \
++ -a 0x2022-0x2023 \
++ -c ISO-8859-15 -c ISO-8859-2 -c koi8-r \
++ `$(KEYMAPCHARS) ../keymaps/keymap.*.inc` \
++ -t tmp.txt \
++ -t ../src/main.log \
++ -t ../data-install/langs \
++ -f NachlieliCLM-Bold:size=14:c=0x590-0x5ff \
++ -f KacstOne:size=14:c=0x600-0x6ff,0xfe70-0xfefc:dy=2 \
++ -f MuktiNarrow:size=18:c=0x0981-0x09fa:bold=1 \
++ -f lohit_hi:size=18:c=0x0901-0x0970:bold=1 \
++ -f lohit_pa:size=19:c=0x0a01-0x0a74:bold=1:autohint=1 \
++ -f lohit_gu:size=18:c=0x0a81-0x0af1:bold=1 \
++ -f TSCu_Paranar:size=18:c=0x0b82-0x0bfa:dy=2:bold=1 \
++ -f lklug:size=17:c=0x0d82-0x0df4:bold=1:dy=1 \
++ -f Loma:size=17:c=0x0e01-0x0e7f:bold=0:dy=-2 \
++ -f Loma:size=17:c=0x0e81-0x0eff:bold=0:dy=-2 \
++ -f KhmerOS_sys:size=16:c=0x1780-0x17f9:dy=-2 \
++ -f DejaVuSans-Bold:size=14:autohint=0 \
++ -f wenquanyi_12pt.pcf:size=16:bold=1 \
++ -f gulim:size=17:bold=1:nobitmap=1:autohint=1 \
++ 16x16.fnt &gt;16x16.fnt.log
++ rm -f tmp.txt
++
++clean:
++ rm -f .ready *~
++
+
+
+Property changes on: theme/trunk/mageia-gfxboot-theme/trunk/fonts/Makefile
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootMakefile">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/Makefile</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/Makefile (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/Makefile 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,20 @@
++BINDIR = $(shell [ -x ../../../gfxboot ] &amp;&amp; echo ../../../ )
++GFXBOOT = $(BINDIR)gfxboot
++PRODUCT = $(shell perl -ne 'print if s/^product=//' ../config)
++HELPFILES = $(addsuffix .hlp, $(shell for i in * ; do [ -d $$i ] &amp;&amp; echo $$i ; done))
++
++HELPSRC = opt*
++HELPNAVI = navi
++ENTITIES = product='$(PRODUCT)' fkey_help=F1 fkey_lang=F2 fkey_profile=F3
++
++%.hlp: %
++ $(GFXBOOT) --help-create $@ --define $(ENTITIES) --navi $&lt;/$(HELPNAVI).html $&lt;/$(HELPSRC).html || true
++
++all: .ready
++
++.ready: $(HELPFILES)
++ @touch .ready
++
++clean:
++ rm -f .ready *.hlp *~
++
+
+
+Property changes on: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/Makefile
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootafnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Gaan terug na &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootafopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Selflaai-opsies&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splat&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootafopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Gebruik van die Hulpstelsel&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Op-pyl&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Af-pyl&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Links-pyl&lt;/em&gt;, &lt;em&gt;Terugspasie&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Regs-pyl&lt;/em&gt;, &lt;em&gt;Voer in&lt;/em&gt;, &lt;em&gt;Spasie&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Bladsy op&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Bladsy af&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Tuis&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Eindig&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Ontsnap&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootafoptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Taal- en sleutelborduitlegkeuse&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootafopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Kernopsies: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=geenacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=ouselflaai&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=af&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=dwang&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootafopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Kernopsies: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=af&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootafopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Kernopsies: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=geendma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootafopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Kernopsies: splat&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splat=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splat=woordryk&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splat=stil&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootafoptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/af/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,8 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Kies profiel&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; to select a profile. Your system will be started using the
++configuration saved in this profile.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootarnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;الرجوع إلى &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootaropthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;خيارات التشغيل&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;شاشة بداية التشغيل&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootaropthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;استخدام نظام التعليمات&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;سهم لأعلى&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;سهم لأسفل&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;سهم لليسار&lt;/em&gt;, &lt;em&gt;مسافة للخلف&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;سهم لليمين&lt;/em&gt;, &lt;em&gt;مفتاح الإدخال&lt;/em&gt;, &lt;em&gt;مسافة&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;المنزل&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;End&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;خروج&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootaroptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;تحديد اللغة وتخطيط لوحة المفاتيح&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootaropto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;خيارات Kernel: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootaropto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;خيارات Kernel: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootaropto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;خيارات Kernel: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootaropto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;خيارات Kernel: شاشة بداية التشغيل&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootaroptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ar/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,8 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;اختيار ملف تعريف&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; to select a profile. Your system will be started using the
++configuration saved in this profile.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootbgnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,3 @@
++&lt;p&gt;
++Return to &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootbgopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Параметри на зареждането&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootbgopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Използване на помощната система&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Стрелка нагоре&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Стрелка надолу&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Стрелка наляво&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Стрелка надясно&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Интервал&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Страница нагоре&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Страница надолу&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;End&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootbgoptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Избор на език и клавиатурна подредба&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootbgopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Параметри към ядрото: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootbgopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Параметри към ядрото: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootbgopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Параметри към ядрото: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootbgopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Параметри към ядрото: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootbgoptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/bg/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,8 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Избор на профил&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; to select a profile. Your system will be started using the
++configuration saved in this profile.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootcanavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Torna a &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootcaopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Opcions d'arrencada&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootcaopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Ús del sistema d'ajuda&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Fletxa amunt&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Fletxa avall&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Fletxa esquerra&lt;/em&gt;, &lt;em&gt;Retrocés&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Fletxa dreta&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Espai&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Re Pàg&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Av Pàg&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Inici&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Fi&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootcaoptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Selecció d'idioma i format de teclat&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootcaopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Opcions del nucli: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;uacpi=off&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootcaopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Opcions del nucli: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootcaopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Opcions del nucli: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootcaopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Opcions del nucli: pantalla de presentació&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootcaoptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ca/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,8 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Trieu el perfil&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; to select a profile. Your system will be started using the
++configuration saved in this profile.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootcsnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Návrat k &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootcsopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Parametry startu&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- ovlivňuje chování úvodní obrazovky&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- zapíná správu napájení&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- pokročilé nastavení a rozhraní napájení&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- ovládá subsystém IDE&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootcsopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Používání nápovědy&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Nápověda zavaděče je závislá na obsahu. Poskytuje informace o zvolené nabídce nebo pokud editujete parametry jádra, snaží se poskytnout informace o volbě podle polohy kurzoru.&lt;/p&gt;
++
++&lt;p&gt;Navigační klíče&lt;ul&gt;&lt;li&gt;&lt;em&gt;Šipka nahoru&lt;/em&gt;: zvýraznit předchozí odkaz&lt;/li&gt;&lt;li&gt;&lt;em&gt;Šipka dolů&lt;/em&gt;:zvýraznit následující odkaz&lt;/li&gt;&lt;li&gt;&lt;em&gt;Šipka vlevo&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: návrat k předchozímu tématu&lt;/li&gt;&lt;li&gt;&lt;em&gt;Šipka vpravo&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Mezerník&lt;/em&gt;:následovat odkaz&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: o stránku nahoru&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: o stránku dolů&lt;/li&gt;&lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: přejít na začátek stránky&lt;/li&gt;&lt;li&gt;&lt;em&gt;End&lt;/em&gt;: přejít na konec stránky&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: opustit nápovědu&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootcsoptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Výběr jazyka a rozložení klávesnice&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Stiskněte &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; pro změnu jazyka a rozložení klávesnice, které používá zavaděč.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootcsopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Parametry jádra: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI (Advanced Configuration and Power Interface) je standard definující nastavení napájení a správu zařízení mezi operačním systémem a BIOSem. Ve výchozím nastavení je &lt;em&gt;acpi&lt;/em&gt; zapnuto v případě, že jde o BIOS vydaný po roce 2000. Je zde několik parametrů kontrolujících chování ACPI: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- nepoužívat ACPI pro předávání PCI přerušení&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- aktivní zůstane pouze ta část ACPI, která je potřebná pro start systému&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- zcela vypnout ACPI&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- zapnout ACPI i pro BIOS vydaný před rokem 2000&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Zvláště na nových počítačích nahrazuje starší systém &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; systém.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootcsopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Parametry jádra: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM je jednou ze dvou dnešních strategií správy napájení. Používá se hlavně na noteboocích pro uspávání disků a podobně, může však zodpovídat i za vypínání počítače. APM je závislé na správně fungujícím BIOSu. Je-li BIOS nefunkční, mohou být funkce APM omezeny nebo může APM znemožnit funkci počítače. Lze proto vypnout parametrem &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- zcela vypnout APM&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Některé nové počítače mohou s výhodou použít novější &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootcsopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Parametry jádra: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;IDE je na rozdíl od SCSI obvykle používáno na pracovních stanicích. V případě výskytu problémů s IDE systémem můžete použít jaderný parametr: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- vypnout DMA pro IDE jednotky&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootcsopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Parametry jádra: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Splash screen je obrázek zobrazený během startu systému. &lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- Splash obrazovka je vypnuta. To může být vhodné pro staré monitory nebo při chybě.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Aktivuje splash obrazovku, zprávy jádra a spouštění jsou stále zobrazeny.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Aktivuje splash obrazovku, ale žádné zprávy nejsou zobrazeny. Místo toho je zobrazen ukazatel průběhu.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootcsoptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/cs/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Vybrat profil&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Stiskněte &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; pro výběr profilu. Váš systém bude spuštěn s konfigurací uloženou v tomto profilu.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootdanavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Vend tilbage til &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootdaopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Boot-muligheder&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;opstartsbillede&lt;/a&gt; -- påvirk opstartsbilledets opførsel&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- slå strømstyring til eller fra&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- avanceret konfiguration og strømgrænseflade (acpi)&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- kontrollerer IDE-subsystemet&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootdaopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Brug af hjælpesystemet&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Bootloaderens onlinehjælp tilpasser sig emnet. Den viser information om det valgte menupunkt eller, hvis du er ved at redigere bootparametrene, så prøver den at finde information om parameteren ved markøren.&lt;/p&gt;
++
++&lt;p&gt;Navigationstaster &lt;ul&gt;&lt;li&gt;&lt;em&gt;Pil op&lt;/em&gt;: Fremhæv forrige link&lt;/li&gt;&lt;li&gt;&lt;em&gt;Pil ned&lt;/em&gt;: Fremhæv næste link&lt;/li&gt;&lt;li&gt;&lt;em&gt;Pil til venstre&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: Vend tilbage til det forrige emne&lt;/li&gt;&lt;li&gt;&lt;em&gt;Pil til højre&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Mellemrum&lt;/em&gt;: Følg link&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: Rul en side op&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: Rul en side nedad&lt;/li&gt;&lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: Gå til sidens begyndelse&lt;/li&gt;&lt;li&gt;&lt;em&gt;End&lt;/em&gt;: gå til sidens slutning&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: Forlad hjælpesystemet&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootdaoptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Valg af sprog og tastaturlayout&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Tryk &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; for at ændre det sprog og tastaturlayout som bootloaderen bruger.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootdaopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Kerneparametre: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI (Advanced Configuration and Power Interface) er en standard, der definerer hvordan strømstyring og opsætningen af systemet foretages mellem operativsystemet og BIOS. Som standard vil &lt;em&gt;acpi&lt;/em&gt; aktiveres, hvis en BIOS nyere end år 2000 bliver fundet. Der er adskillige ofte brugte parametre, der bruges til, at styre hvordan ACPI opfører sig: 
 &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- anvend ikke ACPI til at route PCI-interrupts&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- kun de dele af ACPI som er relevante for at boote forbliver aktiveret&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- slå ACPI fuldstændigt fra&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- slå ACPI til selv hvis din BIOS er fra før år 2000&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Især på nyere computere erstatter den det gamle &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;-system.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootdaopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Kerneparametre: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM er en af de to strømstyringsstrategier, der bruges på moderne computere. Den bruges hovedsageligt på bærbare til funktioner såsom suspendering til harddisk, men den kan også være ansvarlig for at slukke computeren, efter du har bedt den om at lukke ned. APM er afhængig af en korrekt fungerende BIOS. Hvis BIOS er defekt på dette område, vil APM kun have begrænset effekt, eller måske endda forhindre din maskine i at fungere, som den skal. Det kan derfor slås fra med parametret 
&lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- slå APM fuldstændigt fra&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Visse meget nye computere kan have mere gavn af det nyere &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootdaopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Kerneparametre: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;IDE bruges, i modsætning til SCSI, ofte til skrivebordsarbejdsstationer. For at omgå nogle hardwareproblemer, der kan optræde med IDE-systemer, kan du bruge kerneparametren: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- slå DMA fra for IDE-drev&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootdaopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Kerneparametre: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Opstartsbilledet, er billedet du ser, mens systemet starter op.&lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- Opstartsbilledet er slået fra. Dette kan være nyttigt på meget gamle skærme eller hvis der opstår en fejl.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Aktiverer opstartsbillede. Kerne- og boot-beskeder vises stadig.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Aktiverer opstartsbilledet, men uden beskeder. I stedet vises en fremgangslinje.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootdaoptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/da/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Vælg profil&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Tryk &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; for at vælge profil. Dit system vil blive startet med den opsætning, der er gemt i denne profil.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootdenavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Zurück zu &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootdeopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Boot-Optionen&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- das Verhalten des Splash-Bildschirms beeinflussen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- Energieverwaltung umschalten&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- Erweiterte Konfigurations- und Energieschnittstelle&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- das IDE-Subsystem steuern&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootdeopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Hilfesystem verwenden&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Die Online-Hilfe des Boot-Laders ist kontextspezifisch. Sie gibt Informationen über das ausgewählte Menüelement oder sie versucht, bei Bearbeitung der Boot-Optionen, Informationen über die Option zu suchen, auf der der Mauszeiger positioniert ist.&lt;/p&gt;
++
++&lt;p&gt;Navigationstasten &lt;ul&gt;&lt;li&gt;&lt;em&gt;Aufwärtspfeil&lt;/em&gt;: vorherigen Link hervorheben&lt;/li&gt;&lt;li&gt;&lt;em&gt;Abwärtspfeil&lt;/em&gt;: nächsten Link hervorheben&lt;/li&gt;&lt;li&gt;&lt;em&gt;Linkspfeil&lt;/em&gt;, &lt;em&gt;Rücktaste&lt;/em&gt;: zum vorherigen Thema zurückkehren&lt;/li&gt;&lt;li&gt;&lt;em&gt;Rechtspfeil&lt;/em&gt;, &lt;em&gt;Eingabe&lt;/em&gt;, &lt;em&gt;Leerzeichen&lt;/em&gt;: Link folgen&lt;/li&gt;&lt;li&gt;&lt;em&gt;Bild auf&lt;/em&gt;: eine Seite nach oben blättern&lt;/li&gt;&lt;li&gt;&lt;em&gt;Bild ab&lt;/em&gt;: eine Seite nach unten blättern&lt;/li&gt;&lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: zur Startseite gehen&lt;/li&gt;&lt;li&gt;&lt;em&gt;Ende&lt;/em&gt;: zur Endseite gehen&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: Hilfe verlassen&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootdeoptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Auswahl der Sprache und Tastaturbelegung&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Drücken Sie &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt;, um die Sprache und Tastaturbelegung, die der Boot-Lader verwendet zu wechseln.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootdeopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Kernel-Optionen: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI (Advanced Configuration and Power Interface) ist ein Standard, der die Energie- und Konfigurationsverwaltungsschnittstellen zwischen einem Betriebssystem und dem BIOS festlegt. Standardmäßig ist &lt;em&gt;acpi&lt;/em&gt; aktiviert, wenn ein BIOS erkannt wird, welches nach 2000 datiert ist. Es gibt mehrere gebräuchliche Parameter zur Steuerung des ACPI: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- benutzen Sie ACPI nicht, um PCI-Interrupts zu routen&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- nur die für das Hochfahren relevanten Teile von ACPI bleiben aktiviert&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- ACPI komplett abschalten&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- ACPI anschalten, selbst wenn Ihr BIOS vor 2000 datiert ist&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Besonders auf neuen Computern wird es das alte &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;-System ersetzen.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootdeopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Kernel-Optionen: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM ist eine der beiden Energieverwaltungsstrategien, die auf den gegenwärtigen Computern verwendet wird. Es wird hauptsächlich auf Laptops für Funktionen wie Suspend-to-Disk verwendet, kann aber auch für das Abschalten des Computers nach dem Herunterfahren verantwortlich sein. APM ist von einem korrekt funktionierenden BIOS abhängig. Bei einem fehlerhaften BIOS funktioniert das APM evtl. nur eingeschränkt, möglicherweise funktioniert der Computer überhaupt nicht mehr. Daher kann es mit dem Parameter &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- APM komplett abschalten&lt;/li&gt;&lt;/ul&gt; deaktiviert werden.&lt;/p&gt;
++
++&lt;p&gt;Einige sehr neue Computer können vom neueren &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt; profitieren.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootdeopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Kernel-Optionen: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;IDE wird, im Gegensatz zu SCSI, auf den meisten Desktop-Arbeitsstationen verwendet. Zur Umgehung einiger Hardwareprobleme, die mit IDE-Systemen auftreten, verwenden Sie den Kernel-Parameter: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- DMA für IDE-Laufwerke abschalten&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootdeopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Kernel-Optionen: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Der Splash-Bildschirm ist das während des Systemstarts angezeigte Bild. &lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- Der Splash-Bildschirm ist abgeschaltet. Dies kann bei bei sehr alten Monitoren nützlich sein oder wenn einige Fehler auftreten.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Splash wird aktiviert; Kernel- und Boot-Nachrichten werden nach wie vor angezeigt.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Splash wird aktiviert, aber keine Nachrichten. Anstelle dessen wird ein Fortschrittsbalken gezeichnet.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootdeoptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/de/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Profil auswählen&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Drücken Sie &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt;, um ein Profil auszuwählen. Ihr System wird mit der in diesem Profil gespeicherten Konfiguration gestartet.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootelnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Επιστροφή στο &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootelopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Ρυθμίσεις Εκκίνησης&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;οθόνη εκκίνησης&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootelopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Χρησιμοποιώντας το Σύστημα Βοήθειας&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Πάνω Βέλος&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Κάτω Βέλος&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Αριστερό Βέλος&lt;/em&gt;, &lt;em&gt;Πίσω&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Δεξιό Βέλος&lt;/em&gt;, &lt;em&gt;Επιστροφή&lt;/em&gt;, &lt;em&gt;Κενό&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Πάνω Σελίδα&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Κάτω Σελίδα&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Αρχή&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Τέλος&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Αποχώρηση&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbooteloptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Επιλογή Γλώσσας και Εμφάνισης Πληκτρολογίου&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootelopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Επιλογές Πυρήνα: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootelopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Επιλογές Πυρήνα: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootelopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Επιλογές Πυρήνα: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootelopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Επιλογές Πυρήνα: οθόνη εκκίνησης&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbooteloptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/el/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,8 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Επιλέξτε Προφίλ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; to select a profile. Your system will be started using the
++configuration saved in this profile.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootennavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,3 @@
++&lt;p&gt;
++Return to &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootenopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Boot Options&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootenopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Using the Help System&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Up Arrow&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Down Arrow&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Left Arrow&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Right Arrow&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Space&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;End&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootenoptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Language and Keyboard Layout Selection&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootenopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Kernel Options: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootenopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Kernel Options: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootenopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Kernel Options: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootenopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Kernel Options: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootenoptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/en/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,8 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Choose Profile&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; to select a profile. Your system will be started using the
++configuration saved in this profile.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootesnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Volver a &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootesopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Opciones de arranque&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;pantalla inicial&lt;/a&gt; -- influye en el comportamiento de la pantalla inicial&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- alterna la gestión de la energía&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- interfaz avanzada de configuración y energía (ACPI)&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- controla el subsistema IDE&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootesopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Uso del sistema de ayuda&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;La ayuda en línea del cargador de arranque es contextual. Proporciona información sobre el elemento de menú seleccionado o, si se están modificando las opciones de arranque, intenta buscar información sobre la opción en la que está situado el cursor.&lt;/p&gt;
++
++&lt;p&gt;Teclas de navegación &lt;ul&gt;&lt;li&gt;&lt;em&gt;Flecha arriba&lt;/em&gt;: resalta el enlace anterior&lt;/li&gt;&lt;li&gt;&lt;em&gt;Flecha abajo&lt;/em&gt;: resalta el enlace siguiente&lt;/li&gt;&lt;li&gt;&lt;em&gt;Flecha a la izquierda&lt;/em&gt;, &lt;em&gt;Retroceso&lt;/em&gt;: vuelve al tema anterior&lt;/li&gt;&lt;li&gt;&lt;em&gt;Flecha a la derecha&lt;/em&gt;, &lt;em&gt;Intro&lt;/em&gt;, &lt;em&gt;Espacio&lt;/em&gt;: sigue el enlace&lt;/li&gt;&lt;li&gt;&lt;em&gt;Re Pág&lt;/em&gt;: sube una página&lt;/li&gt;&lt;li&gt;&lt;em&gt;Av Pág&lt;/em&gt;: baja una página&lt;/li&gt;&lt;li&gt;&lt;em&gt;Inicio&lt;/em&gt;: se dirige al inicio de la página&lt;/li&gt;&lt;li&gt;&lt;em&gt;Fin&lt;/em&gt;: se dirige al final de la página&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: sale de la ayuda&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootesoptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Selección de idioma y distribución de teclado&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Pulse &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; para cambiar el idioma y la distribución del teclado que utilizará el cargador de arranque.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootesopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Opciones del kernel: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI (interfaz avanzada de configuración y energía) es un estándar que define las interfaces de gestión de la configuración y la energía entre un sistema operativo y la BIOS. Por defecto, &lt;em&gt;acpi&lt;/em&gt; se activa cuando se detecta que la BIOS es posterior al año 2000. Habitualmente, se utilizan varios parámetros para controlar el comportamiento de ACPI: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- no utiliza ACPI para asignar las interrupciones PCI&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- sólo permanecen activadas las partes de ACPI que son importantes para el arranque&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- desactiva ACPI por completo&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- activa ACPI incluso si la BIOS es anterior al año 2000&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Especialmente en equipos nuevos, sustituye al sistema &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; antiguo.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootesopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Opciones del kernel: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM es una de las dos estrategias de gestión de la energía que se utiliza en los equipos actuales. Se utiliza principalmente en portátiles para funciones como la suspensión a disco, pero también puede ser responsable de apagar el equipo cuando se corta la alimentación. APM se fundamenta en un funcionamiento correcto de la BIOS. Si la BIOS está dañada, puede que APM tenga un uso limitado, o que incluso impida que el equipo funcione. Por lo tanto, es posible desactivarlo con el parámetro &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- desactiva APM por completo&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Algunos equipos muy nuevos pueden aprovechar mejor el &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt; más reciente.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootesopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Opciones del kernel: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;IDE, a diferencia de SCSI, se utiliza en la mayoría de las estaciones de trabajo de escritorio. Para evitar algunos problemas de hardware que se producen con los sistemas IDE, utilice el parámetro del kernel: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- desactiva DMA para las unidades IDE&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootesopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Opciones del kernel: pantalla inicial&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;La pantalla inicial es la imagen que se muestra durante el inicio del sistema. &lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- la pantalla inicial se desactiva. Esto puede ser útil en monitores muy antiguos o si se produce algún error.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- activa la pantalla inicial y se siguen mostrando los mensajes del kernel y de arranque.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- activa la pantalla inicial, pero no los mensajes. En su lugar, se muestra una barra de progreso.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootesoptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/es/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Elegir perfil&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Pulse &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; para seleccionar un perfil. El sistema se iniciará usando la configuración guardada en este perfil.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootetnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Tagasi &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt; juurde&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootetopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Alglaadimise sätted&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootetopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Abisüsteemi kasutamine&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Nool üles&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Nool alla&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Nool vasakule&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Nool paremale&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Tühik&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;PgUp&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;PgDn&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;End&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootetoptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Keele ja klaviatuuri paigutuse valimine&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootetopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Kerneli sätted: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootetopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Kerneli sätted: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootetopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Kerneli sätted: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootetopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Kerneli sätted: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootetoptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/et/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,8 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Vali profiil&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; to select a profile. Your system will be started using the
++configuration saved in this profile.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootfinavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Palaa &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootfiopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Käynnistysvalinnat&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- vaikuta splash-näytön käyttäytymiseen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- vaihda virranhallinta päälle/pois&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- edistynyt määritys ja virranhallinta (ACPI)&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- ohjaa IDE alijärjestelmää&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootfiopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Ohjejärjestelmän käyttäminen&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Käynnistyslataimen ohje on kontekstiriippuvainen. Se antaa tietoja valitusta valikon kohdasta tai, jos muokkaat käynnistysvalintoja, se yrittää hakea tietoa valinnasta jolla kursori on.&lt;/p&gt;
++
++&lt;p&gt;Ohjausnäppäimet &lt;ul&gt;&lt;li&gt;&lt;em&gt;Nuoli ylös&lt;/em&gt;: korosta aiempi linkki&lt;/li&gt;&lt;li&gt;&lt;em&gt;Nuoli alas&lt;/em&gt;: korosta seuraava linkki&lt;/li&gt;&lt;li&gt;&lt;em&gt;Nuoli vasemmalle&lt;/em&gt;, &lt;em&gt;Askelpalautin&lt;/em&gt;: palaa aiempaan aiheeseen&lt;/li&gt;&lt;li&gt;&lt;em&gt;Nuoli oikealle&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Välilyönti&lt;/em&gt;: seuraa linkkiä&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: vieritä yksi sivu ylös&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: vieritä yksi sivu alas&lt;/li&gt;&lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: mene sivun alkuun&lt;/li&gt;&lt;li&gt;&lt;em&gt;End&lt;/em&gt;: mene sivun loppuun&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: sulje ohje&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootfioptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Kieli ja näppäimistökartta -valinnat&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Paina &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; vaihtaaksesi käytettävää käynnistyslataimen kieltä ja näppäimistökarttaa.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootfiopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Ytimen valinnat: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI (Advanced Configuration and Power Interface) on standardi, joka määrittelee virran- ja laitteistohallinnan liittymän käyttöjärjestelmän ja BIOS välillä. Oletuksena, &lt;em&gt;acpi&lt;/em&gt; otetaan käyttöön kun BIOS-versio on otettu käyttöön vuoden 2000 jälkeen. Useita yleisesti käytettyjä parametreja ACPI:n ohjaamiseen ovat: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; - älä käytä ACPI:a ohjaamaan PCI keskeytyksiä&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; - vain ne osat ACPI:sta, jotka kuuluvat käynnistykseen jäävät käyttöön&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- poista ACPI käytöstä kokonaan&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- käyttää ACPI:a vaikka BIOS olisi päivätty ennen vuotta 2000&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Erityisesti uusissa tietokoneissa tämä korvaa vanhan &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;-järjestelmän.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootfiopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Ytimen valinnat: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM on toinen nykyisissä tietokoneissa käytettävistä virranhallinta strategioista. Sitä käytetään pääasiassa kannettavien tietokoneiden toiminnoissa kuten lepotila levylle, mutta se voi olla vastuussa myös tietokoneen sammuttamisesta. APM on riippuvainen toimivasta BIOS:sta. Jos BIOS on rikkinäinen, APM:llä voi olla vain rajoitettua käyttöä, tai se voi jopa estää tietokonetta toimimasta. Tämän takia APM voidaan poistaa käytöstä parametrilla &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- poista APM käytöstä kokonaan&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Uusimmat tietokoneet voivat hyötyä enemmän uudemmasta &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;:sta.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootfiopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Ytimen valinnat: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;IDE, toisin kuin SCSI, on yleisesti käytetty useimmissa työasemissa. Ohittaaksesi joitakin IDE-järjestelmien laitteisto-ongelmia, käytä ytimen parametria: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- poista DMA käytöstä IDE-levyiltä&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootfiopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Ytimen valinnat: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Splash-näyttö on kuva, joka näytetään järjestelmän käynnistyksen yhteydessä. &lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- Splash-näyttö ei ole käytössä. Tämä voi olla käytännöllistä todella vanhojen monitoreiden kanssa, tai jos virheitä ilmenee.&lt;/li&gt;&lt;li&gt;Ottaa käyttöön splash-näytön, ydin- ja käynnistysviestit näkyvät silti.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Ottaa käyttöön splash-näytön, mutta ei viestejä. Näiden sijasta käytetään etenemispalkki.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootfioptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fi/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Valitse profiili&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Paina &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; valitaksesi käytettävän profiilin. Järjestelmäsi käynnistetään käyttäen profiiliin tallennettua määritystä.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootfrnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Retour à la rubrique &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootfropthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Options d'amorçage&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- détermine le fonctionnement de l'écran de démarrage&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- active ou non la fonction de gestion de l'alimentation&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- configuration avancée et gestion de l'alimentation&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- contrôle le sous-système IDE&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootfropthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Utilisation du système d'aide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;L'aide en ligne du chargeur d'amorçage est contextuelle. Elle fournit des informations sur l'élément du menu sélectionné ou si vous éditez les options d'amorçage, elle recherche des informations sur l'option pointée par le curseur.&lt;/p&gt;
++
++&lt;p&gt;Touches de navigation &lt;ul&gt;&lt;li&gt;&lt;em&gt;Flèche haut&lt;/em&gt; : mettre en sur-brillance le lien précédent&lt;/li&gt;&lt;li&gt;&lt;em&gt;Flèche bas&lt;/em&gt; : mettre en sur-brillance le lien suivant&lt;/li&gt;&lt;li&gt;&lt;em&gt;Flèche gauche&lt;/em&gt;, &lt;em&gt;Retour arrière&lt;/em&gt; : retour à la rubrique précédente&lt;/li&gt;&lt;li&gt;&lt;em&gt;Flèche droite&lt;/em&gt;, &lt;em&gt;Entrée&lt;/em&gt; et &lt;em&gt;Espace&lt;/em&gt; : suivre le lien&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page haut&lt;/em&gt; : faire défiler une page vers le haut&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page bas&lt;/em&gt; : faire défiler une page vers le bas&lt;/li&gt;&lt;li&gt;&lt;em&gt;Domicile&lt;/em&gt; : aller au début de la page&lt;/li&gt;&lt;li&gt;&lt;em&gt;Fin&lt;/em&gt; : aller à la fin de la page&lt;/li&gt;&lt;li&gt;&lt;em&gt;Échap&lt;/em&gt; : quitter l'aide&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootfroptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Sélection de la langue et de la disposition du clavier&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Appuyez sur &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; pour changer la langue et la disposition du clavier utilisées par le chargeur d'amorçage.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootfropto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Options de kernel : acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Le standard ACPI (Advanced Configuration and Power Interface) définit les interfaces de gestion d'alimentation et de configuration entre un système d'exploitation et le BIOS. Par défaut, &lt;em&gt;acpi&lt;/em&gt; est activé lorsqu'un BIOS ultérieur à l'année 2000 est détecté. Il existe plusieurs paramètres utilisés couramment pour contrôler le fonctionnement de ACPI : &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- ne pas utiliser ACPI pour router les interruptions PCI&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- seules les parties de ACPI en rapport avec l'amorçage restent activées&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- désactiver complètement ACPI&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- activer ACPI même si votre BIOS est antérieur à l'année 2000&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Spécialement pour les nouveaux ordinateurs, il remplace l'ancien système &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootfropto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Options de kernel : apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM est l'une des deux stratégies de gestion de l'alimentation des ordinateurs actuels. Elle est utilisée principalement sur les ordinateurs portables pour des fonctions telles que la mise en veille sur disque, mais elle peut désactiver l'ordinateur après sa mise hors tension. APM dépend du fonctionnement correct du BIOS. Si le BIOS est défectueux, APM peut être d'une utilité limitée ou même empêcher l'ordinateur de fonctionner. Dans ces cas, elle peut être désactivée à l'aide du paramètre &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- désactiver complètement ACPI&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Certains ordinateurs vraiment nouveaux peuvent tirer plus d'avantage à partir du nouveau &lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootfropto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Options de kernel : ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;A la différence de SCSI, IDE est couramment utilisé sur la plupart des postes de travail de bureau. Pour contourner certains problèmes matériels des systèmes IDE, utilisez le paramètre de noyau suivant : &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- désactiver le DMA pour les lecteurs IDE&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootfropto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Options de kernel : splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;L'écran de démarrage est l'image affichée durant l'amorçage du système. &lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- L'écran de démarrage est désactivé. Ca peut être utile avec des moniteurs très anciens ou si certaines erreurs surviennent.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Active l'écran de démarrage sans faire disparaître les messages de noyau et d'amorçage.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Active l'écran de démarrage sans les messages. À la place, une barre de progression est représentée.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootfroptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/fr/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Choisir un profil&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Appuyez sur &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; pour sélectionner un profil. Votre système démarrera avec la configuration enregistrée dans ce profil.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootglnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,3 @@
++&lt;p&gt;
++Return to &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootglopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Opcións de Arrinque&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootglopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Usando o Sistema de Axuda&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Frecha Arriba&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Frecha Abaixo&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Frecha Esquerda&lt;/em&gt;, &lt;em&gt;Retroceso&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Frecha Dereita&lt;/em&gt;, &lt;em&gt;Intro&lt;/em&gt;, &lt;em&gt;Espazo&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Re Páx&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Av Páx&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Inicio&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Fin&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootgloptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Selección de Disposición de Teclado e Lingua&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootglopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Opcións do Kernel: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootglopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Opcións do Kernel: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootglopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Opcións do Kernel: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootglopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Opcións do Kernel: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootgloptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gl/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,8 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Escoller Perfil&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; to select a profile. Your system will be started using the
++configuration saved in this profile.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootgunavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;પાછા ફરો &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootguopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;બુટ વિકલ્પો&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;સ્પ્લેશ&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootguopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;મદદ માટેની સિસ્ટમ વાપરવી&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ઉપર જતું તીર&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;નીચે જતું તીર&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;ડાબે જતું તીર&lt;/em&gt;, &lt;em&gt;બેકસ્પેસ&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;જમણે જતું તીર&lt;/em&gt;, &lt;em&gt;એન્ટર&lt;/em&gt;, &lt;em&gt;સ્પેસ&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;ઉપરનું પૃષ્ઠ&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;નીચેનું પૃષ્ઠ&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;ઘર&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;છેવટનું&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;એસ્કેપ&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootguoptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;ભાષા અને કીબોર્ડના લેઆઉટની પસંદગી&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootguopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;કેર્નાલ વિકલ્પો: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=નો acpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=ઓલ્ડબુટ&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=બંધ&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=ફોર્સ&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootguopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;કેર્નાલ વિકલ્પો: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=બંધ&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootguopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;કેર્નાલ વિકલ્પો: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=નોડમા&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootguopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;કેર્નાલ વિકલ્પો: સ્પ્લેશ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;સ્પ્લેશ=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;સ્પ્લેશ=નકામા શબ્દો&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;સ્પ્લેશ=શાંત&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootguoptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/gu/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,8 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;પ્રોફાઈલ પસંદ કરો&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; to select a profile. Your system will be started using the
++configuration saved in this profile.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpboothinavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;&lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt; में लौटा&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpboothiopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Boot Options&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;स्पलास&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;आईडीइ&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpboothiopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;मदद सिस्टम का उपयोग करते हुए&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Up Arrow&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Down Arrow&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;बायां तीर&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Right Arrow&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;स्थान&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;पृष्ठ ऊपर&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;पृष्ठ नीचे&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;घर&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;अंत&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpboothioptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;भाषा और कीबोर्ड लेआऊट चुनाव&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpboothiopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;कर्नेल विकल्प: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=बंद&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=बल&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpboothiopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;कर्नेल विकल्प: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;एपीएम=बंद&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpboothiopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;कर्नेल विकल्प: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpboothiopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;कर्नेल विकल्प:स्पलास&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;स्पलास=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;स्पलास=वरबोस&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;स्पलास=मूक&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpboothioptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hi/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,8 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;प्रोफाइल चुनें&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; to select a profile. Your system will be started using the
++configuration saved in this profile.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpboothrnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,3 @@
++&lt;p&gt;
++Return to &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpboothropthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Opcije podizanja sustava&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpboothropthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Koristim sustav pomoći&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Strelica gore&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Strelica dolje&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Strelica lijevo&lt;/em&gt;, &lt;em&gt;Brisanje&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Strelica desno&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Razmak&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Stranica gore&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Stranica dolje&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Kuća&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Kraj&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpboothroptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Odabir jezika i rasporeda tipkovnice&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpboothropto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Izbori kernela: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpboothropto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Izbori kernela: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpboothropto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Izbori kernela: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpboothropto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Izbori kernela: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpboothroptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hr/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,8 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Odaberite profil&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; to select a profile. Your system will be started using the
++configuration saved in this profile.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpboothunavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Vissza a &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt; részhez.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpboothuopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Rendszerindítási paraméterek&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- az indítóképernyő beállítása&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- energiakezelés beállítása&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- ACPI energiakezelési rendszer&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- IDE alrendszer&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpboothuopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;A súgórendszer használata&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;A rendszertöltő online súgója helyzetfüggő segítséget nyújt az egyes kiválasztott menüpontokhoz. Ezenfelül az egyes rendszerindítási opciókhoz is információval szolgál. Ez akkor lehet hasznos, ha éppen egy bejegyzés szerkesztése válik szükségessé.&lt;/p&gt;
++
++&lt;p&gt;Navigációs billentyűk &lt;ul&gt;&lt;li&gt;&lt;em&gt;Felfelé nyíl&lt;/em&gt;: előző hivatkozás kiválasztása&lt;/li&gt;&lt;li&gt;&lt;em&gt;Lefelé nyíl&lt;/em&gt;: következő hivatkozás kiválasztása&lt;/li&gt;&lt;li&gt;&lt;em&gt;Bal nyíl&lt;/em&gt;, &lt;em&gt;Vissza&lt;/em&gt;: vissza az előző témához&lt;/li&gt;&lt;li&gt;&lt;em&gt;Jobb nyíl&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Szóköz&lt;/em&gt;: hivatkozás követése&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: görgetés felfelé&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: görgetés lefelé&lt;/li&gt;&lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: ugrás az oldal elejére&lt;/li&gt;&lt;li&gt;&lt;em&gt;End&lt;/em&gt;: ugrás az oldal végére&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: kilépés a súgóból&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpboothuoptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Nyelv és billentyűzet kiválasztása&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Az &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; billentyű megnyomásával választható ki az indítóképernyő és a billentyűzet nyelve.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpboothuopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Kernelparamétere: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Az ACPI (Advanced Configuration and Power Interface) szabvány meghatározza, hogy az operációs rendszer és a BIOS között hogyan működjenek az energiakezelési funkciók. Alapértelmezett esetben akkor van bekapcsolva az &lt;em&gt;acpi&lt;/em&gt; opció, ha a 2000. év után készült BIOS verziót talál. Az ACPI viselkedését az alábbi opciókkal lehet pontosan meghatározni: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- ne használja az ACPI-t PCI megszakításokhoz&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- a rendszerindításkor szükséges ACPI-részek bekapcsolása&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- az ACPI teljes kikapcsolása&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- az ACPI bekapcsolása annak ellenére, hogy a BIOS a 2000. év előtt készült&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Új számítógépeken az ACPI teljes mértékben helyettesíti a régi &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; rendszert.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpboothuopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Kernelparaméterek: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Az APM (Advanced Power Management) egy energiakezelő rendszer. Használatának leginkább hordozható számítógépeken van értelme, ahol átmenetileg fel lehet függeszteni a rendszer futását. Akkor szüksége lehet energiakezelő rendszerre, ha azt szeretné, hogy a rendszer leállításakor automatikusan kikapcsoljon a rendszer. Az APM működése erősen függ a számítógép BIOS rendszerétől. Amennyiben hibás a BIOS, vagy hibásan van beállítva, akkor az APM bekapcsolása mellékhatásokhoz vezethet. Ilyenkor letilthatja az APM bekapcsolását a következő paraméterrel: &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- az ACPI teljes kikapcsolása&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Az újabb számítógépeken az APM helyett az újabb &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt; rendszer használata javasolt.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpboothuopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Kernelbeállítások: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;A legtöbb munkaállomás nem SCSI, hanem IDE csatolót használ. Az IDE rendszer esetleges hardverproblémáinak kikerüléséhez szüksége lehet a következő paraméterre: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- kikapcsolja a merevlemez DMA módját&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpboothuopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Kernelbeállítások: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;A rendszerindításkor látható kép a rendszerindító képernyő. &lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- A rendszerindító képernyő nem jelenik meg. Ez akkor lehet hasznos, ha régi a monitor.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Bekapcsolja az indítóképernyőt, a kernel- és a rendszerindítási üzenetek megjelennek.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Bekapcsolja az indítóképernyőt, de az üzenetek helyett csak a folyamatjelző jelenik meg.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpboothuoptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/hu/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Profil kiválasztása&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Egy profil kiválasztásához nyomja meg az &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt;billentyűt. A rendszer a kiválasztott profilban beállított paraméterekkel indul el.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootitnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Ritorna a &lt;a href=&quot;#foobar&quot;&gt;FOOBAR &lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootitopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Opzioni di boot&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;schermata di avvio&lt;/a&gt; -- influenza il comportamento della schermata di avvio&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- attiva o disattiva il risparmio energetico&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- configurazione avanzata ed interfaccia per il risparmio energetico&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;IDE&lt;/a&gt; -- controlla il sottosistema IDE &lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootitopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Uso della Guida&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;La Guida in linea del boot loader è sensibile al contesto e visualizza le informazioni sulla voce di menu selezionata, oppure, durante la modifica delle opzioni di avvio, tenta di individuare le informazioni relative all'opzione su cui è posizionato il cursore.&lt;/p&gt;
++
++&lt;p&gt;Chiavi di navigazione &lt;ul&gt;&lt;li&gt;&lt;em&gt;Freccia su&lt;/em&gt;: evidenzia il collegamento precedente&lt;/li&gt;&lt;li&gt;&lt;em&gt;Fraccia giù&lt;/em&gt;: evidenzia il collegamento successivo&lt;/li&gt;&lt;li&gt;&lt;em&gt;Freccia sinistra&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: torna all'argomento precedente&lt;/li&gt;&lt;li&gt;&lt;em&gt;Fraccia destra&lt;/em&gt;, &lt;em&gt;Invio&lt;/em&gt;, &lt;em&gt;Spazio&lt;/em&gt;: visita il colegamento&lt;/li&gt;&lt;li&gt;&lt;em&gt;PgSu&lt;/em&gt;: scorre verso l'alto una pagina alla volta&lt;/li&gt;&lt;li&gt;&lt;em&gt;PgGiù&lt;/em&gt;: scorre verso il basso una pagina alla volta&lt;/li&gt;&lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: va a inizio pagina&lt;/li&gt;&lt;li&gt;&lt;em&gt;Termine&lt;/em&gt;: va a fine pagina&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: chiude la Guida&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootitoptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Selezione layout tastiera e lingua&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Premere &lt;em&gt;@@@fkey_lang@@@ &lt;/em&gt; per cambiare la lingua e il layout della tastiera utilizzati dal boot loader.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootitopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Opzioni kernel: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI (Advanced Configuration and Power Interface) è uno standard che definisce le interfacce di risparmio energetico e configurazione tra un sistema operativo e il BIOS. Per impostazione predefinita, &lt;em&gt;acpi&lt;/em&gt; viene attivato ogni volta che viene rilevato un BIOS successivo all'anno 2000. Esistono molti parametri comunemente utilizzati per controllare il comportamento di un ACPI: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- non usare l'ACPI per indirizzare gli interrupt PCI&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- solo i componenti di ACPI che sono necessari al boot rimangono attivi&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- disattiva completamente ACPI&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- attiva ACPI anche se il BIOS installato è precedente al 2000&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;In particolare nei nuovi computer sostituisce il sistema di &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; precedente. &lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootitopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Opzioni kernel: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM è una delle due strategie di risparmio energetico utiizzata nei computer moderni. Viene utilizzata principalmente sui computer portatili per funzioni quali la sospensione su disco, tuttavia può controllare anche l'arresto del computer dopo lo spegnimento. La funzionalità APM dipende dal corretto funzionamento del BIOS. Se il BIOS non funziona correttamente, APM può essere utilizzata in maniera limitata o può addirittura impedire il funzionamento del computer. Per questo motivo, è possibile disattivarla con il parametro &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- disattiva completamente ACPI&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Alcuni computer di nuova generazione possono beneficiare maggiormente del recente &lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootitopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Opzioni kernel: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt; Nella maggior parte delle workstation desktop vengono utilizzati dispositivi IDE, anziché SCSI. Per aggirare alcuni problemi hardware che possono verificarsi con i sistemi IDE, utiizzare il parametro del kernel: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- disattiva il DMA per le unità IDE&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootitopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Opzioni kernel: schermata di avvio&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;La schermata di avvio corrisponde all'immagine visualizzata all'avvio del sistema. &lt;ul&gt;&lt;li&gt;&lt;em&gt;schermata di avvio=0&lt;/em&gt; --La schermata di avvio è disattivata. Ciò può essere utile quando si utilizzano monitor molto vecchi o quando si verificano errori.&lt;/li&gt;&lt;li&gt;&lt;em&gt;schermata di avvio=verbose&lt;/em&gt; -- Attiva la schermata di avvio con la visualizzazione dei messaggi del kernel e di avvio.&lt;/li&gt;&lt;li&gt;&lt;em&gt;schermata di avvio=silent&lt;/em&gt; -- Attiva una schermata di avvio senza messaggi. Viene invece visualizzata una barra di avanzamento.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootitoptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/it/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Scegli profilo&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Premere &lt;em&gt;@@@fkey_profile@@@ &lt;/em&gt; per selezionare un profilo. Il sistema verrà avviato utilizzando la configurazione salvata in questo profilo.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootjanavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;&lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt; に戻る &lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootjaopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;起動オプション&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;スプラッシュ&lt;/a&gt; -- スプラッシュ画面の動作に影響を与えます&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- 電源管理機能を切り替えます&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- &quot;詳細設定と電源インタフェース&quot; の略称です&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;IDE&lt;/a&gt; -- IDE サブシステムを操作します&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootjaopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;ヘルプシステムの使用&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ブートローダのオンラインヘルプは状況に合わせた表示を行ないます。メニュー項目を選択している場合はその項目についての情報を提供するほか、起動オプションを編集している場合はカーソル位置のオプションについて情報を調べます。&lt;/p&gt;
++
++&lt;p&gt;操作キー &lt;ul&gt;&lt;li&gt;&lt;em&gt;上矢印&lt;/em&gt;: 前のリンクを強調表示する&lt;/li&gt;&lt;li&gt;&lt;em&gt;下矢印&lt;/em&gt;: 次のリンクを強調表示する&lt;/li&gt;&lt;li&gt;&lt;em&gt;左矢印&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: 前のトピックに戻る&lt;/li&gt;&lt;li&gt;&lt;em&gt;右矢印&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;スペース&lt;/em&gt;: リンクをたどる&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: 1 ページ分スクロールアップ&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: 1ページ分スクロールダウン&lt;/li&gt;&lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: ページの初めにジャンプ&lt;/li&gt;&lt;li&gt;&lt;em&gt;End&lt;/em&gt;: ページの最後にジャンプ&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: ヘルプの終了&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootjaoptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;言語とキーボードレイアウトの選択&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ブートローダで使用する言語とキーボードレイアウトを変更するには、 &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; を押してください。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootjaopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;カーネルオプション: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI (Advanced Configuration and Power Interface) は、オペレーティングシステムと BIOS の間で決められた電源と設定管理インタフェースの標準です。既定では &lt;em&gt;acpi&lt;/em&gt; は BIOS が 2000 年より新しいものであると有効になります。 ACPI の動作をコントロールするために、いくつかのパラメータが用意されています: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- PCI の割り込み制御に ACPI を使わないようにする&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- ACPI のうち起動に関連する部分だけを有効にする&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- ACPI を完全に無効化する&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- BIOS が 2000 年以前の日付の場合でも ACPI を有効にする&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;特に新しいコンピュータでは、古い &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; システムに取って代わっています。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootjaopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;カーネルオプション: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM は現在のコンピュータで使用される 2 種類の電源管理ストラテジのうちの 1 つです。この機能はディスクへのサスペンド (Suspend to disk) のような機能に対してノート PC で主に使用されますが、パワーダウンした後にコンピュータの電源をオフにするような機能もあります。 APM は BIOS が正しく動作することを前提に作られているため、 BIOS が壊れた場合は APM の使用が制限されたり、コンピュータが機能しないこともあります。そのため、下記のパラメータでオフにすることもできます &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- APM を完全に無効化する&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;いくつかの最新コンピュータでは新しい &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt; を利用したほうが利点があるかもしれません。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootjaopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;カーネルオプション: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;IDE は SCSI と異なり、ほとんどのデスクトップワークステーションで広く使用されています。 IDE システムに発生したハードウェア問題を回避するには、カーネルパラメータを使用してください: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- IDE ドライブの DMA を無効にする&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootjaopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;カーネルオプション: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;スプラッシュ画面とはシステムが起動する際に表示される画像のことです。 &lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- スプラッシュ画面を無効にします。とても古いコンピュータを使用している場合や、何らかのエラーが起こる場合に便利です。&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- スプラッシュ画面を有効にし、あわせてカーネルと起動時のメッセージを表示します。&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- スプラッシュ画面を有効にしますが、メッセージを表示しません。進行状況のバーのみを表示します。&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootjaoptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ja/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;プロファイルの選択&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; を押すとプロファイルを選択することができます。選択したプロファイルを利用してシステムを起動することができます。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootkonavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;&lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt; 로 되돌아가기&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootkoopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;부트 옵션&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;스플래시&lt;/a&gt; -- 스플래시 화면의 동작 영향&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- 전원 관리 전환&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- 고급 구성 및 전원 인터페이스&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- IDE 서브시스템 제어&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootkoopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;도움말 시스템 사용&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;부트로더 온라인 도움말은 context sensitive 입니다. 선택한 메뉴 아이템에 대한 정보를 얻거나, 부트 옵션을 편집 할 때 옵션에 커서가 올라가있으면 거기에 대한 정보를 조회 할 수 있습니다.&lt;/p&gt;
++
++&lt;p&gt;찾아보기 키 &lt;ul&gt;&lt;li&gt;&lt;em&gt;위 화살표&lt;/em&gt;: 앞의 링크를 하이라이트&lt;/li&gt;&lt;li&gt;&lt;em&gt;아래 화살표&lt;/em&gt;: 다음의 링크를 하이라이트&lt;/li&gt;&lt;li&gt;&lt;em&gt;왼쪽 화살표&lt;/em&gt;, &lt;em&gt;백스페이스&lt;/em&gt;: 이전 주제로 되돌아가기&lt;/li&gt;&lt;li&gt;&lt;em&gt;오른쪽 화살표&lt;/em&gt;, &lt;em&gt;엔터&lt;/em&gt;, &lt;em&gt;스페이스&lt;/em&gt;: 다음의 링크&lt;/li&gt;&lt;li&gt;&lt;em&gt;페이지 업&lt;/em&gt;: 한장 위로&lt;/li&gt;&lt;li&gt;&lt;em&gt;페이지 다운&lt;/em&gt;: 한장 아래로&lt;/li&gt;&lt;li&gt;&lt;em&gt;홈&lt;/em&gt;: 첫장으로&lt;/li&gt;&lt;li&gt;&lt;em&gt;엔드&lt;/em&gt;: 마지막 장으로&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: 도움말을 떠남&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootkooptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;언어 및 키보드 배열 선택&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;h3&gt;&lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; 을 눌러 부트 로더가 사용할 언어 및 키보드 배열을 변경합니다.&lt;/h3&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootkoopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;커널 옵션: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI 는 (Advanced Configuration and Power Interface) 운영체제와 바이오스간의 전원관리 인터페이스를 정의하는 표준입니다. 기본적으로 &lt;em&gt;acpi&lt;/em&gt; 는 2000년 이후에 제조된 바이오스가 감지될 때 켜집니다. 다음은 ACPI 동작을 제어하기위해 일반적으로 사용되는 항목 : &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- ACPI 를 PCI 인터럽트 라우트에 사용하지 않음&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- 부팅 활성화에서 ACPI 부분 적절한 것 만&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- ACPI 를 완전히 끄기&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- 2000년 이전에 제조된 바이오스일지라도 ACPI 옵션 켜기&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;특히 최신 컴퓨터에서, 예전의 &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; 시스템을 대체합니다.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootkoopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;커널 옵션: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM(Advanced Power Management)은 현재 컴퓨터에서 사용되고 있는 두 종류의 전원관리기술 중 하나입니다. 주로 노트북에서 사용되는 디스크 일시 중지 같은 기능은 물론, 전원이 공급이 중단된 이후 컴퓨터를 끄는데 이 기술이 사용됩니다. APM은 바이오스에 의해 결정됩니다. 만약 바이오스에 문제가 발생한다면 APM을 사용하는데 제약이 따를 뿐만 아니라 심지어 컴퓨터 작동을 방해할 수도 있습니다. 따라서 APM 관련 항목은 기본적으로 &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- APM 을 완전히 끄기&lt;/li&gt;&lt;/ul&gt; 매개변수와 함께 꺼져있을 수 있습니다.&lt;/p&gt;
++
++&lt;p&gt;최신 컴퓨터의 경우 새로운 &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt; 이 좀더 유용할 수 있습니다.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootkoopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;커널 옵션: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;SCSI 와는 달리 IDE 는 대부분의 데스크탑 워크스테이션에서 사용되고 있습니다. IDE 시스템에 문제가 발생할 경우에는 커널 매개변수를 사용하세요: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- IDE 드라이버용 DMA 끄기&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootkoopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;커널 옵션: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;스플래시 스크린은 시스템이 시작되는 동안 보여지는 그림입니다.&lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- 스플래시 스크린은 꺼져 있습니다. 아주 오래된 모니터를 사용하고 있거나, 오류가 발생했을 수 있습니다.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- 스플래시 활성화, 커널과 부트 메시지가 계속 표시됩니다.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- 스플래시 활성화, 하지만 메시지는 없고 대신에 진행상황 막대가 그려집니다.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootkooptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ko/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;프로필 선택&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; 를 눌러 프로필을 선택합니다. 시스템이 이 프로필 설정으로 시작 될것입니다.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootkynavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;&lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt; кайтуу&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootkyopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Жүктөөлүү параметрлери&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;заставка&lt;/a&gt; -- экрандык заставканы жандыруу/өчүрүү&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- электр камсыздоо башкаруусун иштетет&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- система ырастоо жетилген интерфейси жана энергияны камсыздоо башкаруучу&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- IDE системасын башкарат&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootkyopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Жардам системасын колодонуу&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Онлайндык жүктөөгүч жардамы мазмундан көз каранды. Ал менюдан тандалаган элемент боюнча маалымат берет, же эгерде сиз жүктөөлүү параметрлерин өзгөртүп жаткан учурда, параметрде турган курсор боюнча маалыматты көрсөтүүнү аракеттенет.&lt;/p&gt;
++
++&lt;p&gt;Башкаруу баскычтары: &lt;ul&gt;&lt;li&gt;&lt;em&gt;Жогору жебеси&lt;/em&gt;: мурунку шилтемени жаркыратат&lt;/li&gt;&lt;li&gt;&lt;em&gt;Ылдый жебеси&lt;/em&gt;: кийинки шилтемени жаркыратат&lt;/li&gt;&lt;li&gt;&lt;em&gt;Солго жебеси&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: мурунку бөлүмгө өтүү&lt;/li&gt;&lt;li&gt;&lt;em&gt;Оңго жебеси&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Боштук&lt;/em&gt;: шилтемедем өтүү&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: мурунку бетке өтүү&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: кийинки бетке өтүү&lt;/li&gt;&lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: беттин башына өтүү&lt;/li&gt;&lt;li&gt;&lt;em&gt;End&lt;/em&gt;: беттин аягына өтүү&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: жардам сист
+ масындан чыгуу&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootkyoptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Тилди жана клавиатура жайгалышын тандоо&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Жүктөгүч колдонуучу тилин жана клавиатурасын өзгөртүү үчүн &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; баскычын басыңыз.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootkyopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Ядро параметрлери: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI (Жетилген система ырастоо интерфейси жана энергияны камсыздоо башкаруучусу) бул операциондук система жана BIOS арасында стандарттык ырастоо жана энергияны камсыздоо башкаруу интерфесин түзөт. Алыдын ала, &lt;em&gt;pci=noacpi&lt;/em&gt; -- PCI токтолуштарды башкарууда ACPI'ди колдонбоо жанык, эгерде BIOS дата версиясы 2000 жылдан кийин аныкталса. ACPI журуш-турушун башкаруу үчүн бир нече жалпы параметрлер бар: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- PCI токтолуштарды башкарууда ACPI'ди колдонбоо&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- ACPI'дин жүктөлүүгө арналган бөлүгү ган
+ а активдүү калат&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- ACPI'ди толугу менен өчүрөт&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- BIOS дата версиясы 2000 жылдан мурун болсо да ACPI'ди жандырат&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Жаңы компьютердерде эски &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; системасын ордун алмаштырат.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootkyopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Ядро параметрлери: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM бул азыркы компьютерлерде колдонулуп жаткан электр камсыздоо башкаруусунун эки стратегиядан бириси. Ал негизинен лаптоп компьютерлерде дискти токтотуу функцияларында колдонулат, бирок электр булагы өчкөн учурларда компьютердин өчүүсүндө колдонулушу мүмкүн. APM BIOS'тун туура иштөөсүндө байланыштуу. Эгерде BIOS бузук болсо, анда APM колдонууда чектелүү же компьютер менен иштөөгө тыю салынышы мүмкүн. Бирок аны төмөнкү параметр менен өчүрсө болот: &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- ACPI'ди толугу менен өчүрөт&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Кээ бир гана жаңы компьютердер башка &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt; караганда үстөмдүгү бар.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootkyopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Ядро параметрлери: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;IDE, SCSI'ге караганда көбүнчө иштөө станцияларында колдонулат. IDE системаларда кээ бир жабдык каталарды чечүү үчүн, ядронун пераметрлерин колдонуңуз: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- IDE дисктер үчүн DMA режимин өчүрүү&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootkyopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Ядро параметрлери: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Экрандык заставка бул система жүктөлүп жатканда көрсөтүүлүчү сүрөт. &lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- Экрандык заставка өчүк. Бул өтө эски мониторлор колдонулуп же кандайдыр бир ката бар болгон кезде өтө пайдалуу ыкма.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Экрандык заставка жанык, бирок жүктөө жана ядро билдирүүлөрү көрсөтүлөт.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Экрандык заставка жанык жана эч кандай билдирүүлөр көрсөтүлбөйт. Билдирүүлөр ордуна аткарылып жаткан жүктөлүү индикатору көрсөтүлөт.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootkyoptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ky/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Профилди тандоо&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Профилди тандоо үчүн &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; баскычын тандоо. Сиздин системаңыз бул профилде сакталган ырастоолорду колдонуп жүктөлөт.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootltnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Grįžti į &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootltopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Įkrovos parametrai&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootltopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Naudojimasis pagalbos sistema&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Viršutinė rodyklė&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Apatinė rodyklė&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Kairioji rodyklė&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Dešinioji rodyklė&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Tarpas&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;End&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootltoptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Kalbos ir klaviatūros išdėstymo pasirinkimas&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootltopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Branduolio parametrai: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootltopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Branduolio parametrai: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootltopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Branduolio parametrai: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootltopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Branduolio parametrai: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootltoptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/lt/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,8 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Pasirinkite profilį&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; to select a profile. Your system will be started using the
++configuration saved in this profile.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootmrnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;परत जा&lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootmropthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;बूट विकल्प&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;स्प्लेश&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;एपिएम&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;एसिपिआय&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;आयडिई&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootmropthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt; हेल्प सिस्टिम वापऱुन &lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt; अप एरो &lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;डाऊन एरो &lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;डावा एरो &lt;/em&gt;, &lt;em&gt;मागे&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;उजवा एरो &lt;/em&gt;, &lt;em&gt;एन्टर&lt;/em&gt;, &lt;em&gt;स्पेस&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;पेज अप&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt; पेज डाऊन &lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;होम&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;एन्ड&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;एस्केप&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootmroptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;भाषा व किबोर्ड रचना निवड&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootmropto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;केर्नल विकल्प: एसिपिआई &lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;एसिपिआय&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;पिसिआई=एनओ&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;एसिपिआई=ओल्डबूट&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;एसिपिआई=ओफ&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;एसिपिआई=फोर्स&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;एपिएम&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootmropto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt; केर्नल विकल्प: एपिएम &lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt; एपिएम=ओफ&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;एसिपिआई&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootmropto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;केर्नल विकल्प: आइडिई&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;आइडिई=एनओडिएमए&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootmropto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;केर्नल विकल्प: स्प्लेश &lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt; स्प्लेश=०&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt; स्प्लेश=वर्बोस &lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt; स्प्लेश=सायलेन्ट &lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootmroptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/mr/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,8 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;प्रोफाइल &lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; to select a profile. Your system will be started using the
++configuration saved in this profile.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootnbnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Tilbake til &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootnbopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Oppstartsalternativer&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- påvirker oppstartsbildet&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- slå strømstyring av og på&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- avansert oppsett og strømstyringsvalg&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- kontroller IDE-systemet&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootnbopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Bruke Hjelp-systemet&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Den elektroniske hjelpen for oppstartslasteren er kontekstsensitiv. Den gir informasjon om det valgte menyelementet eller forsøker å finne informasjon om valget som markøren er plassert på, når du redigerer oppstartsvalg.&lt;/p&gt;
++
++&lt;p&gt;Navigasjonstaster &lt;ul&gt;&lt;li&gt;&lt;em&gt;Pil opp&lt;/em&gt;: aktiver forrige lenke&lt;/li&gt;&lt;li&gt;&lt;em&gt;Pil ned&lt;/em&gt;: aktiver neste lenke&lt;/li&gt;&lt;li&gt;&lt;em&gt;Pil venstre&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: tilbake til forrige emne&lt;/li&gt;&lt;li&gt;&lt;em&gt;Pil høyre&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Mellomrom&lt;/em&gt;: følg lenken&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: bla én side oppover&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: bla én side nedover&lt;/li&gt;&lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: til begynnelsen av siden&lt;/li&gt;&lt;li&gt;&lt;em&gt;End&lt;/em&gt;: til slutten av siden&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: avslutt Hjelp&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootnboptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Valg av språk og tastaturoppsett&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Trykk på &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; for å endre språket og tastaturoppsettet for oppstartslasteren.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootnbopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Kjernevalg: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI (Advanced Configuration and Power Interface) er en standard som definerer kommunikasjonen med hensyn til strømstyring og konfigurasjon mellom et operativsystem og BIOS. Som standard aktiveres &lt;em&gt;acpi&lt;/em&gt; dersom BIOS er nyere enn fra år 2000. Det finnes flere vanlige parametere som som styrer ACPI-funksjonen:&lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- ikke bruk ACPI for å rute PCI-avbrudd&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- bare de delene av ACPI som er relevant for oppstart, skal være aktivert&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- deaktiver ACPI helt&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- aktiver ACPI selv om BIOS er eldre enn fra 2000&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Spesielt på nye datamaskiner, erstatter dette det tidligere &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;-systemet.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootnbopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Kjernevalg: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM er én av to strømstyringsstrategier som brukes på moderne datamaskiner. APM brukes hovedsakelig på bærbare maskiner for funksjoner som diskdvale, men kan også slå av maskinen når strømmen brytes. APM krever at BIOS fungerer riktig. Hvis BIOS er skadet, har APM begrenset nytte, og kan til og med føre til at datamaskinen ikke fungerer. Derfor kan APM deaktiveres med parameteren &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- deaktiver APM helt&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;For enkelte helt nye datamaskiner kan det være en fordel å bruke den nyere &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootnbopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Kjernevalg: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;IDE benyttes, i motsetning til SCSI, for de fleste skrivebordsmaskiner. For å unngå enkelte maskinvareproblemer som forekommer med IDE-systemer, bruk kjerneparameteren: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- deaktiver DMA for IDE-disker&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootnbopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Kjernevalg: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Oppstartsskjermen er bildet som vises når systemet starter opp. &lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- Oppstartsbildet slås av. Dette kan være nyttig for svært gamle skjermer, eller hvis det oppstår feil.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Aktiverer et oppstartsbilde, men kjerne- og oppstartsmeldinger vises likevel.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Aktiverer et oppstartsbilde, men ingen meldinger. En forløpsindikator vises i stedet.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootnboptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nb/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Velg profil&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Trykk &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; for å velge en profil. Systemet vil bruke konfigurasjonen som er lagret i denne profilen under oppstarten.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootnlnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Terug naar &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootnlopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Opstartopties&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;opstartscherm&lt;/a&gt; -- beïnvloedt het gedrag van het opstartscherm (splash)&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- energiebeheer omschakelen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- geavanceerde configuratie en power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- het IDE-subsysteem aansturen&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootnlopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Het helpsysteem gebruiken&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;De online-help van de bootloader is contextgevoelig. Het geeft u informatie over de geselecteerde menuoptie of, als u opstartopties aan het bewerken bent, probeert het informatie over de optie die zich onder de cursor bevindt op te zoeken.&lt;/p&gt;
++
++&lt;p&gt;Navigatie sleutels &lt;ul&gt;&lt;li&gt;&lt;em&gt;Pijl omhoog&lt;/em&gt;: vorige koppeling accentueren&lt;/li&gt;&lt;li&gt;&lt;em&gt;Pijl omlaag&lt;/em&gt;: volgende koppeling accentueren&lt;/li&gt;&lt;li&gt;&lt;em&gt;Pijl links&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: ga naar vorig onderwerp&lt;/li&gt;&lt;li&gt;&lt;em&gt;Pijl rechts&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Spatie&lt;/em&gt;: volg de koppeling&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: ga een pagina omhoog&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: ga een pagina omlaag&lt;/li&gt;&lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: ga naar paginabegin&lt;/li&gt;&lt;li&gt;&lt;em&gt;End&lt;/em&gt;: ga naar pagina-einde&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: verlaat de helpfunctie&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootnloptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Taal en toetsenbordindeling selecteren&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Druk op &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; om de taal en toetsenbordindeling van de bootloader te wijzigen.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootnlopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Kernelopties: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI (Advanced Configuration and Power Interface) is een standaard die interfaces voor energie- en configuratiebeheer tussen een besturingssysteem en de BIOS definieert. Standaard wordt &lt;em&gt;acpi&lt;/em&gt;ingeschakeld als een BIOS is gevonden die nieuwer is dan uit het jaar 2000. Er zijn diverse veelgebruikte parameters die het gedrag van ACPI bepalen: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- gebruik geen ACPI voor het routeren van PCI-interrupts&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- alleen de delen van ACPI die relevant zijn voor het opstarten blijven geactiveerd&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- schakel ACPI volledig uit&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- schakel ACPI in, ook als uw BIOS van voor 2000 is&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Vooral bij nieuwe computers, het vervangt het oude &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;-systeem.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootnlopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Kernelopties: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM is een van de twee energiebeheerstrategieën die gebruikt wordt op de huidige computers. Het wordt voornamelijk gebruikt bij laptops voor functies zoals slaapstand naar schijf, maar het kan ook verantwoordelijk zijn voor het uitschakelen van de computer nadat u deze heeft afgesloten. APM is afhankelijk van een correct werkend BIOS. Als een BIOS niet correct werkt, dan kan APM slechts gedeeltelijk werken of zelfs het functioneren van de computer belemmeren. Daarom kunt u het met deze parameter uitschakelen.&lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- schakel APM volledig uit&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Sommige zeer nieuwe computers hebben meer voordeel bij de nieuwere &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootnlopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Kernelopties: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;IDE wordt, in tegenstelling tot SCSI, algemeen gebruikt in de meeste desktopcomputers. Om hardwareproblemen die bij IDE-systemen kunnen voorkomen te omzeilen gebruikt u de parameter: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- DMA voor IDE-stations uitschakelen&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootnlopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Kernelopties: opstartscherm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Het opstartscherm is de afbeelding die getoond wordt tijdens de systeemstart. Deze wordt ook wel 'splash' genoemd. &lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- Het opstartscherm (splash) is uitgeschakeld. Deze optie is bedoeld voor zeer oude beeldschermen of als er zich een fout voordoet.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activeert het opstartscherm (splash), maar kernel- en opstartmeldingen worden nog steeds getoond.&lt;/li&gt;splash=silent -- Activeert het opstartscherm (splash) zonder verdere meldingen. In plaats daarvan wordt een voortgangsbalk getoond.&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootnloptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/nl/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Profiel kiezen&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Druk op &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; om een profiel te selecteren. Uw systeem zal worden opgestart aan de hand van de configuratie die in dit profiel is opgeslagen.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootpanavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;&lt;a href=&quot;#foobar&quot;&gt;ਫੂਬਾਰ&lt;/a&gt; ਉੱਤੇ ਜਾਓ&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootpaopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;ਬੂਟ ਚੋਣ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- ਸਪਲੈਸ਼ ਸਕਰੀਨ ਦਾ ਰਵੱਈਆ ਪਰਭਾਵਿਤ ਕਰੋ&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- ਪਾਵਰ ਮੈਨੇਜ਼ਮਿੰਟ ਬਦਲੋ&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- ਐਂਡਵਾਂਸ ਕੰਨਫੀਗਰੇਸ਼ਨ ਐਂਡ ਪਾਵਰ ਇੰਟਰਫੇਸ&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- IDE ਸਬ-ਸਿਸਟਮ ਕੰਟਰੋਲ ਕਰੋ&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootpaopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;ਮੱਦਦ ਸਿਸਟਮ ਵਰਤੋਂ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;ਨੇਵੀਗੇਸ਼ਨ ਸਵਿੱਚਾਂ &lt;ul&gt;&lt;li&gt;&lt;em&gt;ਉੱਤੇ ਤੀਰ&lt;/em&gt;: ਪਿਛਲਾ ਲਿੰਕ ਹਾਈਲਾਈਟ&lt;/li&gt;&lt;li&gt;&lt;em&gt;ਹੇਠਾਂ ਤੀਰ&lt;/em&gt;: ਅੱਗੇ ਲਿੰਕ ਹਾਈਲਾਈਟ&lt;/li&gt;&lt;li&gt;&lt;em&gt;ਖੱਬੇ ਤੀਰ&lt;/em&gt;, &lt;em&gt;ਬੈਕਸਪੇਸ&lt;/em&gt;: ਪਿਛਲੇ ਵਿਸ਼ੇ ਉੱਤੇ ਵਾਪਿਸ&lt;/li&gt;&lt;li&gt;&lt;em&gt;ਸੱਜੇ ਤੀਰ&lt;/em&gt;, &lt;em&gt;ਐਂਟਰ&lt;/em&gt;, &lt;em&gt;ਸਪੇਸ&lt;/em&gt;: ਲਿੰਕ ਖੋਲ੍ਹੋ&lt;/li&gt;&lt;li&gt;&lt;em&gt;ਪੇਜ਼ ਅੱਪ&lt;/em&gt;: ਇੱਕ ਪੇਜ਼ ਉੱਤੇ ਜਾਓ&lt;/li&gt;&lt;li&gt;&lt;em&gt;ਪੇਜ਼ ਡਾਊਨ&lt;/em&gt;: ਇੱਕ ਪੇਜ਼ ਹੇਠਾਂ ਜਾਓ&lt;/li&gt;&lt;li&gt;&lt;em&gt;ਘਰ&lt;/em&gt;: ਪੇਜ਼ ਸ਼ੁਰੂ ਉੱਤੇ ਜਾਓ&lt;/li&gt;&lt;li&gt;&lt;em&gt;
+ ੰਤ&lt;/em&gt;: ਪੇਜ਼ ਅਖੀਰ ਉੱਤੇ ਜਾਓ&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: ਮੱਦਦ ਛੱਡੋ&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootpaoptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;ਭਾਸ਼ਾ ਅਤੇ ਕੀਬੋਰਡ ਲੇਆਉਟ ਚੋਣ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; ਬੂਟ ਲੋਡਰ ਵਰਤੋਂ ਲਈ ਭਾਸ਼ਾ ਅਤੇ ਕੀ-ਬੋਰਡ ਬਦਲਣ ਲਈ ਵਰਤੋਂ&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootpaopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,20 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;ਕਰਨਲ ਚੋਣਾਂ: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- ACPI ਦੇ ਭਾਗ, ਜੋ ਕਿ ਬੂਟਿੰਗ ਲਈ ਢੁੱਕਵੇਂ ਹਨ, ਹੀ ਐਕਟਿਵੇਟਡ ਰਹਿਣਗੇ&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- ਪੂਰੀ ਤਰ੍ਹਾਂ ACPI ਸਵਿੱਚ ਆਫ਼ ਕਰੋ&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- ਜੇ ਤੁਹਾਡਾ BIOS 2000 ਤੋਂ ਪੁਰਾਣਾ ਹੈ ਤਾਂ ਵੀ ACPI ਸਵਿੱਚ ਆਨ ਰੱਖੋ&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;ਖਾਸ ਤੌਰ ਉੱਤੇ ਨਵੇਂ ਕੰਪਿਊਟਰਾਂ ਉੱਤੇ, &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; ਸਿਸਟਮ ਨੂੰ ਬਦਲੋ।&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootpaopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;ਕਰਨਲ ਚੋਣਾਂ: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- ਪੂਰੀ ਤਰ੍ਹਾਂ ACPI ਸਵਿੱਚ ਆਫ਼ ਕਰੋ&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;ਕੁਝ ਬਹੁਤ ਹੀ ਨਵੇਂ ਕੰਪਿਊਟਰ, ਨਵੇਂ &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt; ਤੋਂ ਫਾਇਦਾ ਲੈ ਵੀ ਸਕਦੇ ਹਨ।&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootpaopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;ਕਰਨਲ ਚੋਣਾਂ: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; --IDE ਡਰਾਇਵਾਂ ਲਈ DMA ਸਵਿੱਚ ਆਫ਼ ਕਰੋ&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootpaopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;ਕਰਨਲ ਚੋਣਾਂ: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootpaoptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pa/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,8 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;ਪਰੋਫਾਇਲ ਚੁਣੋ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; to select a profile. Your system will be started using the
++configuration saved in this profile.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootplnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,3 @@
++&lt;p&gt;
++Return to &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootplopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Opcje uruchamiania&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootplopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Jak korzystać z systemu pomocy&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Strzałka 'w górę'&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Strzałka 'w dół'&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Strzałka 'w lewo'&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Strzałka 'w prawo'&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Spacja&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;End&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootploptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Wybór języka i klawiatury&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootplopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Opcje jądra: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=wyłączone&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootplopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Opcje jądra: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootplopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Opcje jądra: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootplopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Opcje jądra: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootploptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pl/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,8 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Wybierz profil&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; to select a profile. Your system will be started using the
++configuration saved in this profile.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootptnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Voltar para &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootptopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Opções de Arranque&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootptopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Utilizando o Sistema de Ajuda&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Seta para Cima&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Seta para Baixo&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Seta para a Esquerda&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Seta para a Direita&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Barra de Espaços&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;End&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootptoptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Selecção de Teclado e Idioma&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootptopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Opções de Kernel: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootptopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Opções de Kernel: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootptopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Opções de Kernel: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootptopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Opções de Kernel: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootptoptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,8 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Escolher Perfil&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; to select a profile. Your system will be started using the
++configuration saved in this profile.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootpt_BRnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Retornar a &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootpt_BRopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Opções de inicialização&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- influenciar o comportamento da tela de inicialização&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- alternar o gerenciamento de energia&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- interface avançada de configuração e energia&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- controlar o subsistema IDE&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootpt_BRopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Usando o sistema de ajuda&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;A ajuda online do carregador de inicialização é sensível ao contexto. Ela fornece informações sobre o item de menu selecionado ou se você estiver editando as opções de inicialização, ele tenta procurar informações sobre a opção em que o cursor está posicionado.&lt;/p&gt;
++
++&lt;p&gt;Teclas de navegação &lt;ul&gt;&lt;li&gt;&lt;em&gt;Seta para cima&lt;/em&gt;: realçar o link anterior&lt;/li&gt;&lt;li&gt;&lt;em&gt;Seta para baixo&lt;/em&gt;: realçar o próximo link&lt;/li&gt;&lt;li&gt;&lt;em&gt;Seta para a esquerda&lt;/em&gt;, &lt;em&gt;Tecla backspace&lt;/em&gt;: retornar ao tópico anterior&lt;/li&gt;&lt;li&gt;&lt;em&gt;Seta para a direita&lt;/em&gt;, &lt;em&gt;Tecla enter&lt;/em&gt;, &lt;em&gt;Tecla espaço&lt;/em&gt;: seguir o link&lt;/li&gt;&lt;li&gt;&lt;em&gt;Tecla page up&lt;/em&gt;: rolar uma página para cima&lt;/li&gt;&lt;li&gt;&lt;em&gt;Tecla page down&lt;/em&gt;: rolar uma página para baixo&lt;/li&gt;&lt;li&gt;&lt;em&gt;Tecla home&lt;/em&gt;: ir para o início da página&lt;/li&gt;&lt;li&gt;&lt;em&gt;Tecla end&lt;/em&gt;: ir para o final da página&lt;/li&gt;&lt;li&gt;&lt;em&gt;Tecla esc&lt;/em&gt;: sair da ajuda&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootpt_BRoptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Seleção de idioma e layout de teclado&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Pressione &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; para alterar o idioma e o layout de teclado usados pelo carregador de inicialização.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootpt_BRopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Opções do kernel: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;O ACPI (Advanced Configuration and Power Interface - Interface avançada de configuração e energia) é um padrão que define as interfaces de gerenciamento de configuração e energia entre o sistema operacional e a BIOS. Por padrão, &lt;em&gt;acpi&lt;/em&gt; é ativado quando é detectado uma BIOS mais recente do que o ano 2000. Há vários parâmetros normalmente usados para controlar o comportamento do ACPI: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- não usar o ACPI para rotear as interrupções PCI&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- apenas as partes da ACPI que são relevantes para a inicialização permanecem ativadas&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- desativar o ACPI completamente&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- ativar o ACPI mesmo que a BIOS tenha data anterior a 2000&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Especialmente em novos computadores, ele substitui o antigo sistema &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootpt_BRopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Opções do kernel: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;O APM é uma das duas estratégias de gerenciamento de energia usadas nos computadores atuais. Ele é usado principalmente com notebooks para funções como suspender para o disco, mas também pode ser responsável pela desativação do computador após uma queda de energia. O APM depende do correto funcionamento da BIOS. Se a BIOS estiver danificada, o APM pode ter seu uso limitado ou até pode impedir o funcionamento do computador. Portanto, ele pode ser desativado com o parâmetro &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- desativar o ACPI completamente&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Alguns computadores muito novos podem tirar mais proveito da &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt; mais recente.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootpt_BRopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Opções do kernel: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;O IDE é, diferente do SCSI, comumente utilizado na maioria das estações de trabalho. Para contornar alguns problemas de hardware que ocorrem com os sistemas IDE, use o parâmetro do kernel: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- desativar o DMA para unidades IDE&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootpt_BRopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Opções do kernel: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;A tela de inicialização é a imagem exibida durante a inicialização do sistema. &lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- A tela de inicialização é desativada. Isso poderá ser útil com monitores muito antigos ou se ocorrerem erros.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Ativa a tela de inicialização, as mensagens do kernel e de inicialização ainda são exibidas.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Ativa a tela de inicialização, mas sem exibir mensagens. Em vez disso é exibida uma barra de progresso.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootpt_BRoptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/pt_BR/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Escolher o perfil&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Pressione &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; para selecionar um perfil. Seu sistema será inicializado usando a configuração salva nesse perfil.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootronavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Înapoi la &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootroopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Opțiuni de bootare&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootroopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Modul de folosire al sistemului de ajutor&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Săgeată sus&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Săgeată jos&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Săgeată stânga&lt;/em&gt;, &lt;em&gt;Înapoi&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Săgeată dreapta&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Spațiu&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Pagină sus&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Pagină jos&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Acasă&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Sfârșit&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootrooptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Selecția limbii și a mapării de tastatură&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootroopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Opțiuni kernel: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootroopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Opțiuni kernel: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootroopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Opțiuni kernel: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootroopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Opținu kernel: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootrooptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ro/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,8 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Alegeți profilul&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; to select a profile. Your system will be started using the
++configuration saved in this profile.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootrunavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Возврат к &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootruopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Параметры загрузки&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;заставка&lt;/a&gt; -- влияет на поведение заставки&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- переключает управление питанием&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- усовершенствованный интерфейс конфигурирования системы и управления энергопитанием&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- управляет IDE подсистемой&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootruopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Использование системы справки&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ОнЛайновая справка загрузчика зависит от содержания. Она дает информацию по выбранному элементу меню или, если вы редактируете параметр загрузки, она пытается найти информацию о параметре на котором стоит курсор.&lt;/p&gt;
++
++&lt;p&gt;Кнопки управления &lt;ul&gt;&lt;li&gt;&lt;em&gt;Стрелка вверх&lt;/em&gt;: выделяет предыдущую ссылку&lt;/li&gt;&lt;li&gt;&lt;em&gt;Стрелка вниз&lt;/em&gt;: выделяет следующую ссылку&lt;/li&gt;&lt;li&gt;&lt;em&gt;Стрелка влево&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: вернуться к предыдущей главе&lt;/li&gt;&lt;li&gt;&lt;em&gt;Стрелка вправо&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Пробел&lt;/em&gt;: перейти по ссылке&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: пролистать одну странцу назад&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: пролистать одну страницу вперед&lt;/li&gt;&lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: перейти к началу страницы&lt;/li&gt;&lt;li&gt;&lt;em&gt;End&lt;/em&gt;: перейти к концу ст
+ раницы&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: выйти из помощи&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootruoptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Выбор языка и раскладки клавиатуры&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Нажмите &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; чтобы изменить язык и раскладку клавиатуры которую использует загрузчик.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootruopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Параметры ядра: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI (Усовершенствованный интерфейс конфигурирования системы и управления энергопитанием) эвляется стандартом которые определяет интерфейс управления питанием и конфигурацией между операционной системой и BIOS. По умолчанию, &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- не использовать ACPI для управления PCI прерываниями&lt;/li&gt; включен, если определяется, что версия BIOS датирована позднее чем 2000 г. Есть несколько общих параметров для управления поведением ACPI: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- не использовать ACPI для управления PCI прерываниями&lt;/li&gt;&lt;li&gt;&lt;em&g
+ t;acpi=oldboot&lt;/em&gt; -- только часть ACPI которая относиться к загрузке, остается активной&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- выключает полностью ACPI&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- включает ACPI даже если ваш BIOS датирован ранее чем 2000&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Особенно на новых компьютерах, заменяет старый &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; системы.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootruopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Параметры ядра: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM это одна из двух стратегий управлений питанием исполузуемых в настоящее время в компьютерах. Она в основном используется в лаптопах для функций таких как остановка диска, но она также может использоваться для отключения компьютера во время отключения питания. APM завист от правильной работы BIOS. Если BIOS не исправен, APM ограничено в применении или запретит работу компьютера. Однако, она может быть отключена со следующим параметром &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- выключает полностью ACPI&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Только некоторые очень новые компьютеры имеют преимущество перед другими &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootruopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Параметры ядра: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;IDE, в отличии от SCSI, обычно используется в большинстве рабочих станциях. Чтобы предотвратить некоторые проблемы с оборудованием которое случается с IDE системами, используйте параметр ядра: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- выключить DMA для IDE дисков&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootruopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Параметры ядра: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Заставка это картинка показываемая во время загрузки системы. &lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- Заставка отключена. Это может быть полезным со очень старыми мониторами или когда надо видеть ошибки на экране.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Активирует заставку, сообщения загрузки и ядра попрежнему показываны.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Активирует заставку, но без сообщений. Однако будет показ процесс выполнения.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootruoptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/ru/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Выберите профиль&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Нажмите &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; чтобы выбрать профиль. Ваша система будет запущена используя конфигурацию сохраненную в этом профиле.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootsknavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,3 @@
++&lt;p&gt;
++Return to &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootskopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Možnosti štartu&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;Úvodná obrazovka&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootskopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Ako používať tohto pomocníka&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Šipka hore&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Šipka dolu&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Šipka vľavo&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Šipka vpravo&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Medzerník&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;kláves Page Up&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;kláves Page Down&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Domov&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;kláves End&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootskoptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Voľba jazyka a klávesnice&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootskopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Voľba jadra: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootskopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Voľba jadra: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootskopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Voľba jadra: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootskopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Voľby jadra: úvodná obrazovka&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootskoptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sk/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,8 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Zvoliť profil&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; to select a profile. Your system will be started using the
++configuration saved in this profile.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootsvnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Återgå till &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootsvopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Startalternativ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;startskärm&lt;/a&gt; -- påverka startskärmens uppträdande&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- växla strömsparfunktioner&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- avancerat inställnings- och strömhanteringsgränssnitt&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- hantera IDE-undersystemet&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootsvopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Att använda hjälpsystemet&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Direkthjälpen för starthanteraren är sammanhangskänslig. Den innehåller information om det valda menyalternativet eller, om du redigerar startalternativ, söker efter information om det alternativ där markören befinner sig.&lt;/p&gt;
++
++&lt;p&gt;Navigationstangenter &lt;ul&gt;&lt;li&gt;&lt;em&gt;Uppåtpil&lt;/em&gt;: färglägg föregående länk&lt;/li&gt;&lt;li&gt;&lt;em&gt;Neråtpil&lt;/em&gt;: färglägg nästa länk&lt;/li&gt;&lt;li&gt;&lt;em&gt;Vänsterpil&lt;/em&gt;, &lt;em&gt;Backsteg&lt;/em&gt;: återgå till föregående ämne&lt;/li&gt;&lt;li&gt;&lt;em&gt;Högerpil&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Mellanslag&lt;/em&gt;: följ länk&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: rulla upp en sida&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: rulla ner en sida&lt;/li&gt;&lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: gå till sidans början&lt;/li&gt;&lt;li&gt;&lt;em&gt;End&lt;/em&gt;: gå till sidans slut&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: lämna hjälpen&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootsvoptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Val av språk och tangentbordslayout&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Tryck på &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; för att ändra språket och tangentbordslayouten som starthanteraren ska använda.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootsvopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Kärnalternativ: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI (Advanced Configuration and Power Interface) är en standard som definierar gränssnitt för ström- och inställningshantering mellan operativsystemet och BIOS. Som standard aktiveras &lt;em&gt;acpi&lt;/em&gt; när ett BIOS som är tillverkat efter år 2000 upptäcks. Det finns flera vanliga parametrar som styr ACPI:s beteende: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- använd inte ACPI för att hantera PCI-avbrottsförfrågningar&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- bara delarna av ACPI som är relevanta för uppstart kommer vara aktiverade&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=av&lt;/em&gt; -- stäng av ACPI helt&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=tvinga&lt;/em&gt; -- sätt på ACPI även om ditt BIOS är tillverkat före 2000&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Speciellt på nyare datorer ersätter den det gamla &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;-systemet.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootsvopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Kärnalternativ: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM är en av två strömsparstrategier som används på dagens datorer. APM används oftast på bärbara datorer för funktioner som vänteläge, men kan också hantera avstängning av datorn efter att strömbrytaren tryckts ned. För att APM ska fungera krävs ett korrekt fungerande BIOS. Om BIOS är felaktig kan APM ha en begränsad funktionalitet och kan till och med hindra datorn från att fungera som den ska. Den kan därför stängas av med parametern&lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=av&lt;/em&gt; -- stäng av APM helt&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;På vissa nya datorer kan det vara lämpligare att använda de senare &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootsvopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Kärnalternativ: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Till skillnad mot SCSI används IDE på de flesta skrivbordsdatorer. För att kringgå vissa maskinvaruproblem som uppstår med IDE-system använder du följande kärnparameter: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- stäng av DMA för IDE-enheter&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootsvopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Kärnalternativ: startskärm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Startskärmen är bilden som visas när systemet startar.&lt;ul&gt;&lt;li&gt;&lt;em&gt;startskärm=0&lt;/em&gt; -- Startskärmen är avstängd. Detta kan vara praktiskt på äldre bildskärmar eller om fel uppstår.&lt;/li&gt;&lt;li&gt;&lt;em&gt;startskärm=utförlig&lt;/em&gt; -- Aktiverar startskärmar. Kärn- och startmeddelanden visas fortfarande.&lt;/li&gt;&lt;li&gt;&lt;em&gt;startskärm=tyst&lt;/em&gt; -- Aktiverar startskärm, men inga meddelanden. Istället visas ett fortskridandefält.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootsvoptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/sv/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Välj profil&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Tryck på &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; för att välja en profil. Datorn startas med den konfiguration som sparats i den valda profilen.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootuknavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Повернутись до &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootukopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Параметри завантаження&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;заставка&lt;/a&gt; -- керування поведінкою заставки&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; — перемикання керування живленням&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; — інтерфейс розширеного налаштування та керування живленням&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; — керування підсистемою IDE&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootukopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Використання системи довідки&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Довідка завантажувача реагує на контекст. Вона надає інформацію про вибраний елемент меню або, якщо ви редагуєте параметри завантаження, вона намагається знайти інформацію про параметр, над яким знаходиться курсор.&lt;/p&gt;
++
++&lt;p&gt;Ключі навігації &lt;ul&gt;&lt;li&gt;&lt;em&gt;Стрілка вгору&lt;/em&gt;: підсвітити попереднє посилання&lt;/li&gt;&lt;li&gt;&lt;em&gt;Стрілка вниз&lt;/em&gt;: підсвітити наступне посилання&lt;/li&gt;&lt;li&gt;&lt;em&gt;Стрілка ліворуч&lt;/em&gt;, &lt;em&gt;Назад&lt;/em&gt;: повернутись до попередньої теми&lt;/li&gt;&lt;li&gt;&lt;em&gt;Стрілка праворуч&lt;/em&gt;, &lt;em&gt;Ввід (Enter)&lt;/em&gt;, &lt;em&gt;Пробіл&lt;/em&gt;: перейти за посиланням&lt;/li&gt;&lt;li&gt;&lt;em&gt;Сторінка вгору&lt;/em&gt;: прокрутити сторінку вгору&lt;/li&gt;&lt;li&gt;&lt;em&gt;Сторінка вниз&lt;/em&gt;: прокрутити сторінку вниз&lt;/li&gt;&lt;li&gt;&lt;em&gt;Домівка&lt;/em&gt;: перейти до початку сторінки&lt;
+ /li&gt;&lt;li&gt;&lt;em&gt;Кінець&lt;/em&gt;: перейти до кінця сторінки&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: вийти з довідки&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootukoptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Вибір мови та розкладки клавіатури&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Натисніть &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt;, щоб змінити мову та розкладку клавіатури, які використовує завантажувач.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootukopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Параметри ядра: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI (Advanced Configuration and Power Interface) — це стандарт, яким визначаються інтерфейси керування живленням та налаштуванням між операційною системою і BIOS. Типово, &lt;em&gt;acpi&lt;/em&gt; вмикається, коли виявлено BIOS датований після 2000 року. Є декілька загальновживаних параметрів для керування поведінкою ACPI: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- не використовувати ACPI для перенаправлення перепинів PCI&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- тільки частини ACPI, які стосуються завантаження, залишаться активованими&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; — цілком вимкнути ACPI&lt;/li&gt;&lt;li&gt;
+ &lt;em&gt;acpi=force&lt;/em&gt; — увімкнути ACPI, навіть якщо ваш BIOS створено до 2000 року&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Особливо на нових комп'ютерах, вона замінює стару систему &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootukopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Параметри ядра: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM — це одна з двох стратегій керування живленням, які застосовуються в сучасних комп'ютерах. Зазвичай, вона використовується в лептопах для таких функцій, як режим сну зі збереженням на диск, але також може вживатись для вимикання комп'ютера після знеструмлення. APM покладається на правильне функціонування BIOS. Якщо щось у BIOS не гаразд, APM, можливо, матиме тільки обмежене використання, або, навіть, перешкоджатими правильному функціонуванню комп'ютера. Тому, його можна вимкнути параметром &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; — цілком вимкнути
+ APM&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Деякі найновіші комп'ютери можуть мати користь з новішого &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootukopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Параметри ядра: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;На відміну від SCSI, IDE найчастіше зустрічається в більшості стільничних робочих станцій. Щоб обійти деякі проблеми в обладнанні, скористайтесь параметром ядра: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt;— вимкнути DMA для IDE-приводів&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootukopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Параметри ядра: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Заставка екрана — це малюнок, який показується під час запуску системи. &lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; — Показ заставки вимкнено. Може придатись для дуже старих моніторів або, якщо виникає якась помилка.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; — Активує заставку, але буде показано повідомлення ядра та завантаження.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; — Активує заставку, але замість повідомлень показується смужка поступу.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootukoptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/uk/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Виберіть профіль&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Натисніть &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt;, щоб вибрати профіль. Вашу систему буде запущено з використанням налаштування, збереженого в цьому профілі.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootwanavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,3 @@
++&lt;p&gt;
++Return to &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootwaopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Tchuzes d' enondaedje sistinme&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;waitroûle d' enondaedje&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootwaopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Eployî sistinme d' aidance&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Fletche viè l' hôt&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Fletche viè l' bas&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Hintche fletche&lt;/em&gt;, &lt;em&gt;Backspace (en erî)&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Droete fletche&lt;/em&gt;, &lt;em&gt;Intrêye&lt;/em&gt;, &lt;em&gt;Espåce&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Måjhon&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;End&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootwaoptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Tchoes do lingaedje eyet di adjinçmint del taprece&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootwaopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Tchuzes do nawea: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=dismetou&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=foirci&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootwaopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Tchuzes do nawea: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=dismetou&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootwaopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Tchuzes do nawea: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootwaopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Tchuzes do nawea: waitroûle d' enondaedje&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;waitroûle d' enondaedje=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;waitroûle d' enondaedje=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;waitroûle d' enondaedje=sins motî&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootwaoptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/wa/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,8 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Tchoezi profil&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; to select a profile. Your system will be started using the
++configuration saved in this profile.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootxhnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Buyela &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootxhopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Izikhethwa Zomiselo Lwenkqubo&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;tshiza&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;i-apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;i-acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;i-ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootxhopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Kusetyenziswa Isixokelelwano Soncedo&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Isalathi-phezulu&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Isalathi-ezantsi&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Isalathi-ekhohlo&lt;/em&gt;, &lt;em&gt;Emva ngesithuba&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Isalathi-kunene&lt;/em&gt;, &lt;em&gt;Ngenisa&lt;/em&gt;, &lt;em&gt;Isithuba&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Tyhila Phezulu&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Tyhila Ezantsi&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Ekhaya&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Isiphelo&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Baleka&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootxhoptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Ulwimi Nokukhethwayo Kokumisa kakuhle Ibhodi Yamaqhosha&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootxhopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Izikhethwa ze-Kernel: i-acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;i-acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;i-pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;i-acpi=umiselolwakudala&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;i-acpi=imo yokungasebenzi&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;i-acpi=yonyanzelo&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;i-apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootxhopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Izikhethwa ze-Kernel: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;i-apm=imo yokungasebenzi&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;i-ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootxhopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Izikhethwa ze-Kernel: i-ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;i-ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootxhopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Izikhethwa ze-Kernel: tshiza&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;tshiza-0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;tshiza=umlembelele&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;tshiza=ngokuthula&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootxhoptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/xh/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,8 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;Khetha Inkangeleko Yecala&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; to select a profile. Your system will be started using the
++configuration saved in this profile.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootzh_CNnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;返回 &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootzh_CNopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;引导选项&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootzh_CNopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;使用帮助系统&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;向上箭头&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;向下箭头&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;向左箭头&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;向右箭头&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Space&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;End&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootzh_CNoptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;语言和键盘布局选择&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootzh_CNopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;内核选项:acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootzh_CNopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;内核选项:apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootzh_CNopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;内核选项:ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootzh_CNopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;内核选项:splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootzh_CNoptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_CN/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,8 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;选择配置文件&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; to select a profile. Your system will be started using the
++configuration saved in this profile.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootzh_TWnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;返回 &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootzh_TWopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;開機選項&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;開頭顯示畫面&lt;/a&gt; -- 影響開機顯示畫面的行為&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;APM&lt;/a&gt; -- 切換電源管理&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt; -- 進階組態和電源界面&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;IDE&lt;/a&gt; -- 控制 IDE 子系統&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootzh_TWopthelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/opt::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/opt::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/opt::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;使用說明系統&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;開機載入器線上說明為智慧型關聯式,它會根據選取的功能表項目來提供資訊,或者,如果您正在編輯開機選項,則它會嘗試查詢游標所在處選項的資訊。&lt;/p&gt;
++
++&lt;p&gt;瀏覽鍵 &lt;ul&gt;&lt;li&gt;&lt;em&gt;向上箭號&lt;/em&gt;: 反白上一個連結&lt;/li&gt;&lt;li&gt;&lt;em&gt;向下箭號&lt;/em&gt;: 反白下一個連結&lt;/li&gt;&lt;li&gt;&lt;em&gt;向左箭號&lt;/em&gt;, &lt;em&gt;退格鍵&lt;/em&gt;:返回上一個主題&lt;/li&gt;&lt;li&gt;&lt;em&gt;向右箭號&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;空格&lt;/em&gt;:跟隨連結&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: 向上捲動一頁&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: 向下捲動一頁&lt;/li&gt;&lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: 移至頁首&lt;/li&gt;&lt;li&gt;&lt;em&gt;End&lt;/em&gt;: 移至頁底&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: 離開說明&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootzh_TWoptkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/opt::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/opt::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/opt::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;語言和鍵盤配置選項&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;按下 &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; 以變更開機載入器使用的語言和鍵盤配置。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootzh_TWopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;核心選項:ACPI&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI (Advanced Configuration and Power Interface) 是一種標準,用來定義作業系統和 BIOS 之間的電源和組態管理界面。依預設值,&lt;em&gt;ACPI&lt;/em&gt;當偵測到 BIOS 比 2000 年新時,便會開啟。有數個常用的參數可控制 ACPI 的行為: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- 不要使用 ACPI 安排 PCI 中斷&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- 只有部分與開機有關的 ACPI 會維持已啟動&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- 開啟 ACPI,即使您的 BIOS 日期早於 2000 年&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;尤其是在新的電腦上,它會取代舊的 &lt;a href=&quot;#o_apm&quot;&gt;APM&lt;/a&gt; 系統。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootzh_TWopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;核心選項:APM&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;在目前電腦上使用的電源管理策略有兩種,APM 是其中一種。它主要是用於筆記型電腦,以提供如暫停磁碟等功能,但它也會在電源中斷後負責關閉電腦。APM 依賴正確運作的 BIOS。如果 BIOS 壞了,APM 只會限制使用電腦作業,甚或是阻止作業。因此,可使用參數 關閉 APM。 &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- 完全關閉 ACPI&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;一些非常新的電腦常能從新的得到更多好處 &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootzh_TWopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;核心選項:IDE&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;IDE 和 SCSI 不同,一般用於大部分的桌上型工作站上。若要避開一些 IDE 系統所發生的硬體問題,請使用核心參數: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- 關閉 IDE 磁碟機的 DMA&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootzh_TWopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;核心選項:開頭顯示畫面&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;開機顯示畫面是在系統啟動期間顯示的圖片。 &lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- 關閉開機顯示畫面。這對於非常舊的監視器或是當發生一些錯誤時,非常有用。&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- 啟動開機顯示畫面,且仍會顯示核心和開機訊息。&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- 啟動開機顯示畫面,但未顯示訊息,而是顯示進度條。&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpbootzh_TWoptprofilehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/opt::profile.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/opt::profile.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-boot/zh_TW/opt::profile.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;profile&quot;&gt;選擇設定檔&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;按下 &lt;em&gt;@@@fkey_profile@@@&lt;/em&gt; 以選取設定檔。您的系統會使用儲存在此設定檔中的組態來啟動。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallMakefile">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/Makefile</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/Makefile (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/Makefile 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,20 @@
++BINDIR = $(shell [ -x ../../../gfxboot ] &amp;&amp; echo ../../../ )
++GFXBOOT = $(BINDIR)gfxboot
++PRODUCT = $(shell perl -ne 'print if s/^product=//' ../config)
++HELPFILES = $(addsuffix .hlp, $(shell for i in * ; do [ -d $$i ] &amp;&amp; echo $$i ; done))
++
++HELPSRC = main*
++HELPNAVI = navi
++ENTITIES = product='$(PRODUCT)' fkey_help=F1 fkey_lang=F2 fkey_video=F3 fkey_inst=F4 fkey_dud=F6
++
++%.hlp: %
++ $(GFXBOOT) --help-create $@ --define $(ENTITIES) --navi $&lt;/$(HELPNAVI).html $&lt;/$(HELPSRC).html || true
++
++all: .ready
++
++.ready: $(HELPFILES)
++ @touch .ready
++
++clean:
++ rm -f .ready *.hlp *~
++
+
+
+Property changes on: theme/trunk/mageia-gfxboot-theme/trunk/help-install/Makefile
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallafmainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,103 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;Selflaaiprogramhulp&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Welcome to &lt;em&gt;@@@product@@@&lt;/em&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this menu to select the desired function. If you have
++problems navigating in this help system, press
++&lt;em&gt;@@@fkey_help@@@&lt;/em&gt; to enter the &lt;a href=&quot;#help&quot;&gt;beskrywing&lt;/a&gt; of the help
++system. The main functions in this menu are:
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#harddisk&quot;&gt;Selflaai vanaf harde skyf&lt;/a&gt;: This selection will not do
++anything to the system. It only starts a previously installed
++operating system.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#linux&quot;&gt;Installasie&lt;/a&gt;:
++This installation mode works on most machines. If you experience a
++system freeze during boot or problems with detection of your hardware
++components, such as disk controllers or network cards, try one of the
++following installation options.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#noacpi&quot;&gt;Installasie -- ACPI-versper&lt;/a&gt;: Many of the
++currently-sold computers have incomplete or faulty ACPI
++implementations. This selection disables ACPI support in the
++kernel, but still enables many performance features, like DMA for IDE
++hard disks.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#nolapic&quot;&gt;Installasie -- plaaslike APIC-versper&lt;/a&gt;:
++If the normal installation fails, this might be due to the
++system hardware not supporting local APIC.
++If this seems to be the case, use this option to
++install without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#failsafe&quot;&gt;Installasie -- veilige instellings&lt;/a&gt;: If you were not
++successful with &lt;em&gt;Installasie&lt;/em&gt;, this selection might
++solve the issue.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#rescue&quot;&gt;Reddingstelsel&lt;/a&gt;: This boot image starts a small
++Linux system in RAM. This is useful if the system does not start properly.
++After booting this system, log in as root.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#firmware&quot;&gt;Firmatuurtoets&lt;/a&gt;: Runs a BIOS test tool that validates
++ACPI and other parts of your BIOS.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#memtest&quot;&gt;Geheuetoets&lt;/a&gt;: Memory testing is useful for more than
++checking installation of new memory modules. It is a stress test
++for a big part of your computer system and may indicate hardware
++problems.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#opt&quot;&gt;Selflaai-opsies&lt;/a&gt;: The boot options may change the
++behavior of your system completely. They are settings for
++the kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Help&lt;/a&gt;: This is context sensitive. It will
++show different screens depending on the active element of the
++boot screen. There is also a description of this help system
++available.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Set language and keyboard mapping
++used by the boot loader.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Video Mode&lt;/a&gt;: Here, choose between
++different screen resolutions while installing. If you encounter
++problems with the graphical installation, the &lt;em&gt;teksmodus&lt;/em&gt; may
++be a work-around for you.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Installation Source&lt;/a&gt;: Choose the
++installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Driver Update&lt;/a&gt;: For very new machines, a
++driver update may be needed to install the system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallafmainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;Sagtewaresoortkeuse&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++You have the choice to install the 32-bit or 64-bit version of @@@product@@@.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallafmaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;Aandrywerbywerking&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++If you need a driver update floppy or CD-ROM, press &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. The
++boot loader asks you to insert the driver update medium after
++loading the Linux kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++A driver update is typically a floppy with new versions of hardware
++drivers or bug fixes needed during installation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallafmainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,11 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;Installasie -- veilige instellings&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Installasie -- veilige instellings&lt;/em&gt; if you encounter hangs
++while installing or irreproducible errors. This option disables DMA
++for IDE drives and all power management features.
++See also the kernel options for &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;,
++&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; and &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallafmainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;Firmatuurtoets&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Starts a BIOS checker that validates the ACPI tables
++and many other parts of your BIOS.
++Test results can be stored on usb disk or saved via network.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallafmainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,16 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;Selflaai vanaf harde skyf&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Selflaai-geïnstalleerde OS&lt;/em&gt; to start the system installed on
++your local hard disk. This system must be installed properly, because
++only the MBR (Master Boot Record) on the first hard disk is started.
++The device ID of the first hard disk is provided by the BIOS of
++the computer.
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this if you forgot to remove the CD or DVD from your
++drive and want to start the computer from the hard disk.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallafmainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Gebruik van die Hulpstelsel&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Op-pyl&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Af-pyl&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Links-pyl&lt;/em&gt;, &lt;em&gt;Terugspasie&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Regs-pyl&lt;/em&gt;, &lt;em&gt;Voer in&lt;/em&gt;, &lt;em&gt;Spasie&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Bladsy op&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Bladsy af&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Tuis&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Eindig&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Ontsnap&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallafmaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;Installasiebron&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; to choose an installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++This is the same as using the &lt;a href=&quot;#o_install&quot;&gt;installeer&lt;/a&gt;
++boot option.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallafmainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Taal- en sleutelborduitlegkeuse&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallafmainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;Installasie&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Installasie&lt;/em&gt; to start the default installation. The
++&lt;a href=&quot;#opt&quot;&gt;selflaai-opsies&lt;/a&gt; entered are used in the
++start-up. This item activates many features of commonly available
++hardware.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallafmainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;Geheuetoets&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The included &lt;em&gt;Geheuetoets&lt;/em&gt; provides good possibilities to
++stress test the hardware of a system. Its main purpose is to detect
++broken RAM, but it also stresses many other parts of the system.
++&lt;/p&gt;
++
++&lt;p&gt;
++There is no guarantee that the memory is good if no errors are
++found, although most of memory defects will be found.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallafmainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,24 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;Installasie -- ACPI-versper&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Current hardware usually requires ACPI (Advanced Configuration and Power Interface)
++to control the interrupt handling.
++ACPI completely replaces the old APM system.
++&lt;/p&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Installasie -- ACPI-versper&lt;/em&gt; if you encounter
++problems during boot of the kernel. Known problems with machines that
++have problems with ACPI are:
++&lt;ul&gt;
++ &lt;li&gt;kernel freezes when booting&lt;/li&gt;
++ &lt;li&gt;PCI Cards are not detected or initialized properly&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++You may also try the &lt;a href=&quot;#firmware&quot;&gt;Firmatuurtoets&lt;/a&gt; boot option
++and look at the test results of the ACPI validation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallafmainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;Installasie -- plaaslike APIC-versper&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Normally there are no problems with the APIC (Advanced Programmable Interrupt
++Controller). But if you seem to have some, try this option to boot
++without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++Please don't confuse this with &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt;
++(Advanced Configuration and Power Interface).
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallafmainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,28 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Selflaai-opsies&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++There are two types of boot options available. First, there are
++options that affect the installer. Second, there are kernel
++options. Some of the more common options are:
++&lt;/p&gt;
++
++&lt;p&gt;
++a) installer options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;installeer&lt;/a&gt; -- select an installation source&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#network&quot;&gt;netwerk-opsies&lt;/a&gt; -- the network options&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;vnc-opsies&lt;/a&gt; -- options for installation via VNC&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++b) kernel options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splat&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallafmainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;Installeerderopsies: Netwerkopsies&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++It is possible to configure the network interface right now. The
++hardware will be detected later by YaST2. The minimum set of options
++to configure your network card consists of host IP and netmask. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;gasheerip=192.168.0.10 netmasker=255.255.255.0&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++or in a shorter form:
++&lt;ul&gt;
++ &lt;li&gt;gasheerip=192.168.0.10/24&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++If you specified a &lt;a href=&quot;#o_install&quot;&gt;netwerkgebaseerde installering&lt;/a&gt; and do
++not specify both of these options, the installer tries to configure
++the network interface with &lt;em&gt;dhcp&lt;/em&gt;. If you need a default
++gateway, specify this with the option &lt;em&gt;deurgang&lt;/em&gt;. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;deurgang=192.168.0.8&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallafmainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Kernopsies: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=ouselflaai&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=af&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=dwang&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallafmainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Kernopsies: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=af&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallafmainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Kernopsies: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=geendma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallafmainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,30 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;Installeerderopsies: installeer&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++By default, the local CD-ROMs are searched for the installation source.
++For a network install, select the
++&lt;em&gt;installeer&lt;/em&gt; option. Possible installation protocols are
++&lt;ul&gt;
++ &lt;li&gt;FTP&lt;/li&gt;
++ &lt;li&gt;NFS&lt;/li&gt;
++ &lt;li&gt;HTTP&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The syntax to use is just like standard URLs. For example,
++if your server is found at 192.168.0.1 and you want to do an NFS-based
++install from the directory /install on this server, specify
++the source as follows:
++&lt;ul&gt;
++ &lt;li&gt;installeer=nfs://192.168.0.1/installeer&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The network card will either be configured with &lt;em&gt;dhcp&lt;/em&gt; or you
++must specify the parameters yourself as described in the
++&lt;a href=&quot;#network&quot;&gt;netwerk-opsies&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallafmainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Kernopsies: splat&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splat=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splat=woordryk&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splat=stil&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallafmainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;Installeerderopsies: vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++To enable the VNC installation, specify the
++parameters vnc and vncpassword:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;vnc=1 vncwagwoord=voorbeeld&lt;/em&gt;&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The VNC server will be started and you may control YaST2 over any VNC
++client from a remote system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallafmainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;Reddingstelsel&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The &lt;em&gt;Reddingstelsel&lt;/em&gt; is a small RAM disk base system. From there,
++it is possible to make all kinds of changes to an installed system. Because
++only low-level tools are available in this system, it is intended for
++experts.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallafmainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;Videomoduskeuse&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; to get the list of video modes your graphics card
++supports. The highest mode your monitor can display is preselected.
++&lt;/p&gt;
++
++&lt;p&gt;
++It is possible that your monitor cannot be detected automatically. In that
++case, select your preferred mode manually.
++&lt;/p&gt;
++
++&lt;p&gt;
++If your system has problems with the graphics card during the
++installation, the &lt;em&gt;teksmodus&lt;/em&gt; may be a usable work-around.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallafnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/af/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Gaan terug na &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallarmainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,103 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;تعليمات أداة تحميل التشغيل&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Welcome to &lt;em&gt;@@@product@@@&lt;/em&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this menu to select the desired function. If you have
++problems navigating in this help system, press
++&lt;em&gt;@@@fkey_help@@@&lt;/em&gt; to enter the &lt;a href=&quot;#help&quot;&gt;الوصف&lt;/a&gt; of the help
++system. The main functions in this menu are:
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#harddisk&quot;&gt;تشغيل من القرص الصلب&lt;/a&gt;: This selection will not do
++anything to the system. It only starts a previously installed
++operating system.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#linux&quot;&gt;التثبيت&lt;/a&gt;:
++This installation mode works on most machines. If you experience a
++system freeze during boot or problems with detection of your hardware
++components, such as disk controllers or network cards, try one of the
++following installation options.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#noacpi&quot;&gt;تثبيت--ACPI معطلة&lt;/a&gt;: Many of the
++currently-sold computers have incomplete or faulty ACPI
++implementations. This selection disables ACPI support in the
++kernel, but still enables many performance features, like DMA for IDE
++hard disks.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#nolapic&quot;&gt;تثبيت--APIC المحلي معطَّل&lt;/a&gt;:
++If the normal installation fails, this might be due to the
++system hardware not supporting local APIC.
++If this seems to be the case, use this option to
++install without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#failsafe&quot;&gt;تثبيت--إعدادات آمنة&lt;/a&gt;: If you were not
++successful with &lt;em&gt;التثبيت&lt;/em&gt;, this selection might
++solve the issue.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#rescue&quot;&gt;نظام الإنقاذ&lt;/a&gt;: This boot image starts a small
++Linux system in RAM. This is useful if the system does not start properly.
++After booting this system, log in as root.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#firmware&quot;&gt;اختبار البرنامج الثابت&lt;/a&gt;: Runs a BIOS test tool that validates
++ACPI and other parts of your BIOS.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#memtest&quot;&gt;اختبار الذاكرة&lt;/a&gt;: Memory testing is useful for more than
++checking installation of new memory modules. It is a stress test
++for a big part of your computer system and may indicate hardware
++problems.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#opt&quot;&gt;خيارات التشغيل&lt;/a&gt;: The boot options may change the
++behavior of your system completely. They are settings for
++the kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Help&lt;/a&gt;: This is context sensitive. It will
++show different screens depending on the active element of the
++boot screen. There is also a description of this help system
++available.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Set language and keyboard mapping
++used by the boot loader.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Video Mode&lt;/a&gt;: Here, choose between
++different screen resolutions while installing. If you encounter
++problems with the graphical installation, the &lt;em&gt;وضع النص&lt;/em&gt; may
++be a work-around for you.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Installation Source&lt;/a&gt;: Choose the
++installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Driver Update&lt;/a&gt;: For very new machines, a
++driver update may be needed to install the system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallarmainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;تحديد نوع البرنامج&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++You have the choice to install the 32-bit or 64-bit version of @@@product@@@.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallarmaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;تحديث برنامج التشغيل&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++If you need a driver update floppy or CD-ROM, press &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. The
++boot loader asks you to insert the driver update medium after
++loading the Linux kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++A driver update is typically a floppy with new versions of hardware
++drivers or bug fixes needed during installation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallarmainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,11 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;تثبيت--إعدادات آمنة&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;تثبيت--إعدادات آمنة&lt;/em&gt; if you encounter hangs
++while installing or irreproducible errors. This option disables DMA
++for IDE drives and all power management features.
++See also the kernel options for &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;,
++&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; and &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallarmainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;اختبار البرنامج الثابت&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Starts a BIOS checker that validates the ACPI tables
++and many other parts of your BIOS.
++Test results can be stored on usb disk or saved via network.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallarmainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,16 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;تشغيل من القرص الصلب&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;تشغيل نظام التشغيل المثبَّت&lt;/em&gt; to start the system installed on
++your local hard disk. This system must be installed properly, because
++only the MBR (Master Boot Record) on the first hard disk is started.
++The device ID of the first hard disk is provided by the BIOS of
++the computer.
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this if you forgot to remove the CD or DVD from your
++drive and want to start the computer from the hard disk.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallarmainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;استخدام نظام التعليمات&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;سهم لأعلى&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;سهم لأسفل&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;سهم لليسار&lt;/em&gt;, &lt;em&gt;مسافة للخلف&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;سهم لليمين&lt;/em&gt;, &lt;em&gt;مفتاح الإدخال&lt;/em&gt;, &lt;em&gt;مسافة&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;المنزل&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;End&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;خروج&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallarmaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;مصدر التثبيت&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; to choose an installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++This is the same as using the &lt;a href=&quot;#o_install&quot;&gt;تثبيت&lt;/a&gt;
++boot option.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallarmainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;تحديد اللغة وتخطيط لوحة المفاتيح&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallarmainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;التثبيت&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;التثبيت&lt;/em&gt; to start the default installation. The
++&lt;a href=&quot;#opt&quot;&gt;خيارات التشغيل&lt;/a&gt; entered are used in the
++start-up. This item activates many features of commonly available
++hardware.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallarmainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;اختبار الذاكرة&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The included &lt;em&gt;اختبار الذاكرة&lt;/em&gt; provides good possibilities to
++stress test the hardware of a system. Its main purpose is to detect
++broken RAM, but it also stresses many other parts of the system.
++&lt;/p&gt;
++
++&lt;p&gt;
++There is no guarantee that the memory is good if no errors are
++found, although most of memory defects will be found.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallarmainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,24 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;تثبيت--ACPI معطلة&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Current hardware usually requires ACPI (Advanced Configuration and Power Interface)
++to control the interrupt handling.
++ACPI completely replaces the old APM system.
++&lt;/p&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;تثبيت--ACPI معطلة&lt;/em&gt; if you encounter
++problems during boot of the kernel. Known problems with machines that
++have problems with ACPI are:
++&lt;ul&gt;
++ &lt;li&gt;kernel freezes when booting&lt;/li&gt;
++ &lt;li&gt;PCI Cards are not detected or initialized properly&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++You may also try the &lt;a href=&quot;#firmware&quot;&gt;اختبار البرنامج الثابت&lt;/a&gt; boot option
++and look at the test results of the ACPI validation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallarmainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;تثبيت--APIC المحلي معطَّل&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Normally there are no problems with the APIC (Advanced Programmable Interrupt
++Controller). But if you seem to have some, try this option to boot
++without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++Please don't confuse this with &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt;
++(Advanced Configuration and Power Interface).
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallarmainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,28 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;خيارات التشغيل&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++There are two types of boot options available. First, there are
++options that affect the installer. Second, there are kernel
++options. Some of the more common options are:
++&lt;/p&gt;
++
++&lt;p&gt;
++a) installer options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;تثبيت&lt;/a&gt; -- select an installation source&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#network&quot;&gt;خيارات الشبكة&lt;/a&gt; -- the network options&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;خيارات vnc&lt;/a&gt; -- options for installation via VNC&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++b) kernel options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;شاشة بداية التشغيل&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallarmainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;خيارات المثبِّت: خيارات الشبكة&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++It is possible to configure the network interface right now. The
++hardware will be detected later by YaST2. The minimum set of options
++to configure your network card consists of host IP and netmask. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++or in a shorter form:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++If you specified a &lt;a href=&quot;#o_install&quot;&gt;تثبيت مستند إلى الشبكة&lt;/a&gt; and do
++not specify both of these options, the installer tries to configure
++the network interface with &lt;em&gt;dhcp&lt;/em&gt;. If you need a default
++gateway, specify this with the option &lt;em&gt;البوابة&lt;/em&gt;. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;gateway=192.168.0.8&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallarmainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;خيارات Kernel: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallarmainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;خيارات Kernel: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallarmainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;خيارات Kernel: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallarmainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,30 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;خيارات المثبِّت: تثبيت&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++By default, the local CD-ROMs are searched for the installation source.
++For a network install, select the
++&lt;em&gt;تثبيت&lt;/em&gt; option. Possible installation protocols are
++&lt;ul&gt;
++ &lt;li&gt;FTP&lt;/li&gt;
++ &lt;li&gt;NFS&lt;/li&gt;
++ &lt;li&gt;HTTP&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The syntax to use is just like standard URLs. For example,
++if your server is found at 192.168.0.1 and you want to do an NFS-based
++install from the directory /install on this server, specify
++the source as follows:
++&lt;ul&gt;
++ &lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The network card will either be configured with &lt;em&gt;dhcp&lt;/em&gt; or you
++must specify the parameters yourself as described in the
++&lt;a href=&quot;#network&quot;&gt;خيارات الشبكة&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallarmainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;خيارات Kernel: شاشة بداية التشغيل&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallarmainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;خيارات المثبِّت: vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++To enable the VNC installation, specify the
++parameters vnc and vncpassword:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;vnc=1 vncpassword=example&lt;/em&gt;&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The VNC server will be started and you may control YaST2 over any VNC
++client from a remote system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallarmainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;نظام الإنقاذ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The &lt;em&gt;نظام الإنقاذ&lt;/em&gt; is a small RAM disk base system. From there,
++it is possible to make all kinds of changes to an installed system. Because
++only low-level tools are available in this system, it is intended for
++experts.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallarmainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;تحديد وضع الفيديو&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; to get the list of video modes your graphics card
++supports. The highest mode your monitor can display is preselected.
++&lt;/p&gt;
++
++&lt;p&gt;
++It is possible that your monitor cannot be detected automatically. In that
++case, select your preferred mode manually.
++&lt;/p&gt;
++
++&lt;p&gt;
++If your system has problems with the graphics card during the
++installation, the &lt;em&gt;وضع النص&lt;/em&gt; may be a usable work-around.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallarnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ar/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;الرجوع إلى &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcamainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,103 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;Ajuda del carregador de l'arrencada&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Welcome to &lt;em&gt;@@@product@@@&lt;/em&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this menu to select the desired function. If you have
++problems navigating in this help system, press
++&lt;em&gt;@@@fkey_help@@@&lt;/em&gt; to enter the &lt;a href=&quot;#help&quot;&gt;description&lt;/a&gt; of the help
++system. The main functions in this menu are:
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#harddisk&quot;&gt;Arrenca des del disc dur&lt;/a&gt;: This selection will not do
++anything to the system. It only starts a previously installed
++operating system.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#linux&quot;&gt;Installation&lt;/a&gt;:
++This installation mode works on most machines. If you experience a
++system freeze during boot or problems with detection of your hardware
++components, such as disk controllers or network cards, try one of the
++following installation options.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#noacpi&quot;&gt;Instal·lació -- ACPI inhabilitat&lt;/a&gt;: Many of the
++currently-sold computers have incomplete or faulty ACPI
++implementations. This selection disables ACPI support in the
++kernel, but still enables many performance features, like DMA for IDE
++hard disks.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#nolapic&quot;&gt;Instal·lació -- APIC local inhabilitat&lt;/a&gt;:
++If the normal installation fails, this might be due to the
++system hardware not supporting local APIC.
++If this seems to be the case, use this option to
++install without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#failsafe&quot;&gt;Instal·lació -- Paràmetres de seguretat&lt;/a&gt;: If you were not
++successful with &lt;em&gt;Installation&lt;/em&gt;, this selection might
++solve the issue.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#rescue&quot;&gt;Rescue System&lt;/a&gt;: This boot image starts a small
++Linux system in RAM. This is useful if the system does not start properly.
++After booting this system, log in as root.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#firmware&quot;&gt;Prova de microprogramari&lt;/a&gt;: Runs a BIOS test tool that validates
++ACPI and other parts of your BIOS.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#memtest&quot;&gt;Prova de memòria&lt;/a&gt;: Memory testing is useful for more than
++checking installation of new memory modules. It is a stress test
++for a big part of your computer system and may indicate hardware
++problems.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#opt&quot;&gt;Opcions d'arrencada&lt;/a&gt;: The boot options may change the
++behavior of your system completely. They are settings for
++the kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Help&lt;/a&gt;: This is context sensitive. It will
++show different screens depending on the active element of the
++boot screen. There is also a description of this help system
++available.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Set language and keyboard mapping
++used by the boot loader.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Video Mode&lt;/a&gt;: Here, choose between
++different screen resolutions while installing. If you encounter
++problems with the graphical installation, the &lt;em&gt;mode de text&lt;/em&gt; may
++be a work-around for you.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Installation Source&lt;/a&gt;: Choose the
++installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Driver Update&lt;/a&gt;: For very new machines, a
++driver update may be needed to install the system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcamainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;Selecció del tipus de programari&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++You have the choice to install the 32-bit or 64-bit version of @@@product@@@.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcamaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;Actualització de controladors&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++If you need a driver update floppy or CD-ROM, press &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. The
++boot loader asks you to insert the driver update medium after
++loading the Linux kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++A driver update is typically a floppy with new versions of hardware
++drivers or bug fixes needed during installation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcamainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,11 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;Instal·lació -- Paràmetres de seguretat&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Instal·lació -- Paràmetres de seguretat&lt;/em&gt; if you encounter hangs
++while installing or irreproducible errors. This option disables DMA
++for IDE drives and all power management features.
++See also the kernel options for &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;,
++&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; and &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcamainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;Prova de microprogramari&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Starts a BIOS checker that validates the ACPI tables
++and many other parts of your BIOS.
++Test results can be stored on usb disk or saved via network.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcamainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,16 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;Arrenca des del disc dur&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Arrenca el SO instal·lat&lt;/em&gt; to start the system installed on
++your local hard disk. This system must be installed properly, because
++only the MBR (Master Boot Record) on the first hard disk is started.
++The device ID of the first hard disk is provided by the BIOS of
++the computer.
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this if you forgot to remove the CD or DVD from your
++drive and want to start the computer from the hard disk.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcamainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Ús del sistema d'ajuda&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Fletxa amunt&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Fletxa avall&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Fletxa esquerra&lt;/em&gt;, &lt;em&gt;Retrocés&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Fletxa dreta&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Espai&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Re Pàg&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Av Pàg&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Inici&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Fi&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcamaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;Origen de la instal·lació&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; to choose an installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++This is the same as using the &lt;a href=&quot;#o_install&quot;&gt;install&lt;/a&gt;
++boot option.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcamainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Selecció d'idioma i format de teclat&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcamainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;Installation&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Installation&lt;/em&gt; to start the default installation. The
++&lt;a href=&quot;#opt&quot;&gt;opcions d'arrencada&lt;/a&gt; entered are used in the
++start-up. This item activates many features of commonly available
++hardware.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcamainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;Prova de memòria&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The included &lt;em&gt;Prova de memòria&lt;/em&gt; provides good possibilities to
++stress test the hardware of a system. Its main purpose is to detect
++broken RAM, but it also stresses many other parts of the system.
++&lt;/p&gt;
++
++&lt;p&gt;
++There is no guarantee that the memory is good if no errors are
++found, although most of memory defects will be found.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcamainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,24 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;Instal·lació -- ACPI inhabilitat&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Current hardware usually requires ACPI (Advanced Configuration and Power Interface)
++to control the interrupt handling.
++ACPI completely replaces the old APM system.
++&lt;/p&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Instal·lació -- ACPI inhabilitat&lt;/em&gt; if you encounter
++problems during boot of the kernel. Known problems with machines that
++have problems with ACPI are:
++&lt;ul&gt;
++ &lt;li&gt;kernel freezes when booting&lt;/li&gt;
++ &lt;li&gt;PCI Cards are not detected or initialized properly&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++You may also try the &lt;a href=&quot;#firmware&quot;&gt;Prova de microprogramari&lt;/a&gt; boot option
++and look at the test results of the ACPI validation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcamainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;Instal·lació -- APIC local inhabilitat&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Normally there are no problems with the APIC (Advanced Programmable Interrupt
++Controller). But if you seem to have some, try this option to boot
++without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++Please don't confuse this with &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt;
++(Advanced Configuration and Power Interface).
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcamainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,28 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Opcions d'arrencada&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++There are two types of boot options available. First, there are
++options that affect the installer. Second, there are kernel
++options. Some of the more common options are:
++&lt;/p&gt;
++
++&lt;p&gt;
++a) installer options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;install&lt;/a&gt; -- select an installation source&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#network&quot;&gt;opcions de xarxa&lt;/a&gt; -- the network options&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;opcions del vnc&lt;/a&gt; -- options for installation via VNC&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++b) kernel options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcamainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;Opcions de l'instal·lador: opcions de xarxa&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++It is possible to configure the network interface right now. The
++hardware will be detected later by YaST2. The minimum set of options
++to configure your network card consists of host IP and netmask. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++or in a shorter form:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++If you specified a &lt;a href=&quot;#o_install&quot;&gt;instal·lació basada en la xarxa&lt;/a&gt; and do
++not specify both of these options, the installer tries to configure
++the network interface with &lt;em&gt;dhcp&lt;/em&gt;. If you need a default
++gateway, specify this with the option &lt;em&gt;passarel·la&lt;/em&gt;. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;gateway=192.168.0.8&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcamainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Opcions del nucli: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;uacpi=off&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcamainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Opcions del nucli: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcamainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Opcions del nucli: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcamainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,30 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;Opcions de l'instal·lador: instal·la&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++By default, the local CD-ROMs are searched for the installation source.
++For a network install, select the
++&lt;em&gt;install&lt;/em&gt; option. Possible installation protocols are
++&lt;ul&gt;
++ &lt;li&gt;FTP&lt;/li&gt;
++ &lt;li&gt;NFS&lt;/li&gt;
++ &lt;li&gt;HTTP&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The syntax to use is just like standard URLs. For example,
++if your server is found at 192.168.0.1 and you want to do an NFS-based
++install from the directory /install on this server, specify
++the source as follows:
++&lt;ul&gt;
++ &lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The network card will either be configured with &lt;em&gt;dhcp&lt;/em&gt; or you
++must specify the parameters yourself as described in the
++&lt;a href=&quot;#network&quot;&gt;opcions de xarxa&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcamainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Opcions del nucli: pantalla de presentació&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcamainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;Opcions de l'instal·lador: vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++To enable the VNC installation, specify the
++parameters vnc and vncpassword:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;vnc=1 vncpassword=example&lt;/em&gt;&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The VNC server will be started and you may control YaST2 over any VNC
++client from a remote system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcamainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;Rescue System&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The &lt;em&gt;Rescue System&lt;/em&gt; is a small RAM disk base system. From there,
++it is possible to make all kinds of changes to an installed system. Because
++only low-level tools are available in this system, it is intended for
++experts.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcamainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;Selecció del mode de vídeo&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; to get the list of video modes your graphics card
++supports. The highest mode your monitor can display is preselected.
++&lt;/p&gt;
++
++&lt;p&gt;
++It is possible that your monitor cannot be detected automatically. In that
++case, select your preferred mode manually.
++&lt;/p&gt;
++
++&lt;p&gt;
++If your system has problems with the graphics card during the
++installation, the &lt;em&gt;mode de text&lt;/em&gt; may be a usable work-around.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcanavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ca/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Torna a &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcsmainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;Nápověda zavaděče&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Vítejte v &lt;em&gt;@@@product@@@&lt;/em&gt;&lt;/p&gt;
++
++&lt;p&gt;Z této nabídky zvolte požadovanou funkci. Máte-li problémy s orientací v této nápovědě, stiskněte &lt;em&gt;@@@fkey_help@@@&lt;/em&gt; pro vstup do &lt;a href=&quot;#help&quot;&gt;popis&lt;/a&gt; systému nápovědy. Hlavní funkce v této nabídce jsou:&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#harddisk&quot;&gt;Spustit z disku&lt;/a&gt;: Tato volba systém nijak neovlivní. Pouze spustí dříve nainstalovaný systém.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#linux&quot;&gt;Instalace&lt;/a&gt;:Tento instalační režim je vhodný pro naprostou většinu počítačů. Pokud při instalaci dojde k zatuhnutí nebo špatné detekci některých zařízení, například diskových řadičů či síťových karet, vyzkoušejte některou z dalších voleb.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#noacpi&quot;&gt;Instalace -- bez ACPI&lt;/a&gt;: Mnoho v současnosti prodávaných počítačů stále ještě neobsahuje kompletní implementaci ACPI nebo je tato implementace vadná. Tímto výběrem zakážete podporu ACPI v jádře, ale stále budete mít k dispozici řadu dalších funkcí jako například DMA pro IDE zařízení.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#nolapic&quot;&gt;Instalace -- bez local APIC&lt;/a&gt;: Selhání normální instalace může být způsobeno tím, že systémový hardware nepodporuje lokální APIC. Pokud se zdá, že nastal tento případ, použijte tuto volbu pro instalaci bez podpory lokálního APIC.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#failsafe&quot;&gt;Instalace -- bezpečné nastavení&lt;/a&gt;: Pokud jste nebyli s &lt;em&gt;Instalace&lt;/em&gt; úspěšní, může vám tato sekce pomoci vyřešit problém.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#rescue&quot;&gt;Záchranný systém&lt;/a&gt;: Tento obraz spouští malý linuxový systém v RAM. Je užitečný, pokud systém správně nestartuje. Po spuštění tohoto systému se přihlaste jako root.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#firmware&quot;&gt;Test firmwaru&lt;/a&gt;: Spouští nástroj pro validaci ACPI a dalších částí BIOSu vašeho počítače.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#memtest&quot;&gt;Test paměti&lt;/a&gt;: Testování paměti je užitečné nejen při instalaci nových paměťových modulů. Je to zátěžový test velké části systému a může pomoci odhalit hardwarové problémy.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#opt&quot;&gt;Parametry startu&lt;/a&gt;: Volby spouštění mohou zcela změnit chování vašeho systému. Jsou to parametry jádra.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Nápověda&lt;/a&gt;: Toto je kontextově závislé. Obrazovky se budou lišit v závislosti na aktivním prvku spouštěcí obrazovky. Tento systém nápovědy má k dispozici i popis svých funkcí.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Nastavte jazyk a rozložení klávesnice používané zavaděčem.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Video Mode&lt;/a&gt;: Zde si vyberte rozlišení obrazovky pro instalaci. Při problémech s grafickou instalací můžete jako řešení použít &lt;em&gt;textový režim&lt;/em&gt;.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Instalační zdroj&lt;/a&gt;: Vyberte instalační zdroj.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@Aktualizace ovladače&lt;/a&gt;: U velmi nových počítačů je pro instalaci systému potřeba aktualizace ovladače.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcsmainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;Výběr softwaru&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Můžete zvolit mezi instalací 32bitové či 64bitové verze @@@product@@@.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcsmaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;Aktualizace ovladače&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Pokud potřebujete disketu nebo CD s aktualizací ovladačů, stiskněte &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. Zavaděč vás požádá o médium s aktualizacemi ovladačů po zavedení linuxového jádra.&lt;/p&gt;
++
++&lt;p&gt;Aktualizace ovladačů je typicky disketa s novými verzemi hardwarových ovladačů nebo opravami chyb potřebnými během instalace.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcsmainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;Instalace -- bezpečné nastavení&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Zvolte &lt;em&gt;Instalace -- bezpečné nastavení&lt;/em&gt;, pokud během instalace narazíte na zatuhnutí systému nebo na nereprodukovatelné chyby. Tato volba zakáže DMA pro IDE jednotky a veškeré funkce správy napájení. Viz také parametry jádra pro &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;, &lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; a &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcsmainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;Test firmwaru&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Spouští kontrolu BIOSu validující tabulky ACPI a další součásti vašeho BIOSu. Výsledky testu lze uložit na USB disk nebo po síti.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcsmainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;Spustit z disku&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Zvolte &lt;em&gt;Spustit nainstalovaný systém&lt;/em&gt; pro spuštění systému nainstalovaného na lokálním disku. Systém, musí být správně nainstalován , protože je spouštěn pouze MBR na prvním disku. ID zařízení tohoto disku je poskytován BIOSem počítače.&lt;/p&gt;
++
++&lt;p&gt;Toto použijte, pokud zapomenete CD nebo DVD v mechanice a chcete počítač spustit z pevného disku.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcsmainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Použití systému nápovědy&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Nápověda zavaděče je závislá na obsahu. Poskytuje informace o zvolené nabídce nebo pokud editujete parametry jádra, snaží se poskytnout informace o volbě podle polohy kurzoru.&lt;/p&gt;
++
++&lt;p&gt;Navigační klávesy &lt;ul&gt;&lt;li&gt;&lt;em&gt;Šipka nahoru&lt;/em&gt;: zvýraznit předchozí odkaz&lt;/li&gt;&lt;li&gt;&lt;em&gt;Šipka dolů&lt;/em&gt;: zvýraznit následující odkaz&lt;/li&gt;&lt;li&gt;&lt;em&gt;Šipka vlevo&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: návrat k předchozímu tématu&lt;/li&gt;&lt;li&gt;&lt;em&gt;Šipka vpravo&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Mezerník&lt;/em&gt;: následovat odkaz&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: o stránku nahoru&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: o stránku dolů&lt;/li&gt;&lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: přejít na začátek stránky&lt;/li&gt;&lt;li&gt;&lt;em&gt;End&lt;/em&gt;: přejít na konec stránky&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: opustit nápovědu&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcsmaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;Instalační zdroj&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Zmáčkněte &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; pro výběr instalačního zdroje.&lt;/p&gt;
++
++&lt;p&gt;Totéž jako použití spouštěcího parametru&lt;a href=&quot;#o_install&quot;&gt;instalovat&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcsmainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Výběr jazyka a rozložení klávesnice&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Stiskněte &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; pro změnu jazyka a rozložení klávesnice, které bude zavaděč používat.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcsmainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;Instalace&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Zvolte &lt;em&gt;Instalace&lt;/em&gt; pro zahájení implicitní instalace. Zadané &lt;a href=&quot;#opt&quot;&gt;parametry startu&lt;/a&gt; jsou použity během spouštění. Tato položka aktivuje mnoho vlastností běžného hardwaru.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcsmainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;Test paměti&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;Test paměti&lt;/em&gt; umožňuje provést zátěžový test hardware systému. Testuje hlavně operační paměť, ale i jiné součásti systému.&lt;/p&gt;
++
++&lt;p&gt;Nejsou-li nalezeny chyby, není žádná záruka, že je paměť v pořádku. Většina chyb však bývá nalezena.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcsmainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;Instalace -- bez ACPI&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Současný hardware obvykle vyžaduje ACPI (Advanced Configuration and Power Interface) pro kontrolu přerušení. ACPI zcela nahrazuje starý APM systém.&lt;/p&gt;
++
++&lt;p&gt;Pokud při startu jádra narazíte na problémy, zvolte &lt;em&gt;Instalace -- bez ACPI&lt;/em&gt;. Známe problémy strojů s problematickým ACPI jsou: &lt;ul&gt;&lt;li&gt;jádro zatuhne během startu&lt;/li&gt;&lt;li&gt;* PCI karty nejsou správně detekovány nebo inicializovány&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Můžete rovněž vyzkoušet volbu spouštění &lt;a href=&quot;#firmware&quot;&gt;Test firmwaru&lt;/a&gt; a prohlédnout si výsledky validace ACPI.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcsmainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;Instalace -- bez local APIC&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Za běžných okolností nejsou s APIC (Advanced Programmable Interrupt Controller) žádné problémy. Pokud ale problémy máte, zkuste tuto volbu pro spouštění systému bez podpory lokálního APIC.&lt;/p&gt;
++
++&lt;p&gt;Nezaměňujte prosím s &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt; (Advanced Configuration and Power Interface).&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcsmainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Parametry startu&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Jsou dva typy spouštěcích voleb. Zaprvé jsou to parametry ovlivňující instalátor. Zadruhé jsou to parametry jádra, Mezi běžné parametry patří:&lt;/p&gt;
++
++&lt;p&gt;a) volby instalátoru &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;instalovat&lt;/a&gt; -- výběr instalačního zdroje&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#network&quot;&gt;nastavení sítě&lt;/a&gt; -- volby sítě&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;nastavení vnc&lt;/a&gt; -- parametry pro instalaci přes VNC&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;a) volby jádra &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- ovlivňuje chování úvodní obrazovky&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- zapnout správu napájení&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface (ACPI)&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- ovládá subsystém IDE&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcsmainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,13 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;Parametry instalátoru: síťové nastavení&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Nyní je možné nastavit síťové rozhraní. Hardware bude detekován později pomocí programu YaST2. Minimální nastavení se skládá z IP počítače a masky sítě. Například: &lt;ul&gt;&lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;nebo v kratší formě: &lt;ul&gt;&lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Pokud jste zadali &lt;a href=&quot;#o_install&quot;&gt;síťová instalace&lt;/a&gt; a nezadáte obě tyto volby, pokusí se instalátor nastavit síť pomocí &lt;em&gt;dhcp&lt;/em&gt;. Potřebujete-li výchozí bránu, zadejte ji parametrem &lt;em&gt;gateway&lt;/em&gt;. Například: &lt;ul&gt;&lt;li&gt;gateway=192.168.0.8&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcsmainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Parametry jádra: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI (Advanced Configuration and Power Interface) je standard definující nastavení napájení a správu zařízení mezi operačním systémem a BIOSem. Ve výchozím nastavení je &lt;em&gt;acpi&lt;/em&gt; zapnuto v případě, že jde o BIOS vydaný po roce 2000. Je k dispozici několik parametrů používaných ke kontrole chování ACPI: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- nepoužívat ACPI pro předávání PCI přerušení&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- aktivní zůstane pouze ta část ACPI, která je potřebná pro start systému&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- zcela vypnout ACPI&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- zapnout ACPI i pro BIOS vydaný před rokem 2000&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Zvláště na nových počítačích nahrazuje starší systém &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcsmainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Parametry jádra: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM je jednou ze dvou dnešních strategií správy napájení. Používá se hlavně na noteboocích pro uspávání disků a podobně, může však zodpovídat i za vypínání počítače. APM je závislé na správně fungujícím BIOSu. Je-li BIOS nefunkční, mohou být funkce APM omezeny nebo může APM znemožnit funkci počítače. Lze proto vypnout parametrem &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- zcela vypnout APM&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Některé nové počítače mohou s výhodou použít novější &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcsmainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Parametry jádra: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;IDE je na rozdíl od SCSI obvykle používáno na pracovních stanicích. V případě výskytu problémů s IDE systémem můžete použít parametr: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- vypnout DMA pro IDE jednotky&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcsmainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;Parametry instalátoru: install&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Ve výchozím nastavení se instalační zdroj hledá v lokálních CD mechanikách. Pro síťovou instalaci zvolte &lt;em&gt;instalovat&lt;/em&gt;. Možné instalační protokoly jsou &lt;ul&gt;&lt;li&gt;FTP&lt;/li&gt;&lt;li&gt;NFS&lt;/li&gt;&lt;li&gt;HTTP&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Syntaxe je jako u běžných URL. Pokud je například váš systém na adrese 192.168.0.1 a chcete provést NFS instalaci z adresáře /install na tomto serveru, zadejte zdroj takto: &lt;ul&gt;&lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Síťová karta bude nastavena buď pomocí &lt;em&gt;dhcp&lt;/em&gt; nebo musíte zadat parametry sami, jak je popsáno v &lt;a href=&quot;#network&quot;&gt;nastavení sítě&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcsmainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Parametry jádra: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Splash screen je obrázek zobrazený během startu systému. &lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0 &lt;/em&gt; -- Splash obrazovka je vypnuta. To může být vhodné pro staré monitory nebo při chybě.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Aktivuje splash obrazovku, zprávy jádra a spouštění jsou stále zobrazeny.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Aktivuje splash obrazovku, ale žádné zprávy. Místo toho je zobrazen ukazatel průběhu.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcsmainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;Parametry instalátoru: vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Pro umožnění VNC instalace zadejte parametry vnc a vncpassword: &lt;ul&gt;&lt;li&gt;&lt;em&gt;vnc=1 vncpassword=example&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Bude spuštěn VNC server; YaST2 můžete ovládat ze vzdáleného systému pomocí VNC klienta.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcsmainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;Záchranný systém&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;Záchranný systém&lt;/em&gt; je malý systém na RAM disku. Z něj je možno provádět všechny druhy změn instalovaného systému. Protože však obsahuje pouze nízkoúrovňové nástroje, je určen pro experty.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcsmainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;Výběr video režimu&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Stiskněte &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; pro získání seznamu video režimů podporovaných vaší grafickou kartou. Přednastaven je nejvyšší podporovaný režim.&lt;/p&gt;
++
++&lt;p&gt;Je možné, že váš monitor nelze automaticky detekovat. V takovém případě zvolte svůj preferovaný režim ručně.&lt;/p&gt;
++
++&lt;p&gt;Pokud má váš systém během instalace problé=my s grafickou kartou, může být &lt;em&gt;textový režim&lt;/em&gt; použitelným řešením.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallcsnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/cs/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Návrat k &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldamainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;Hjælp til bootloader&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Velkommen til &lt;em&gt;@@@product@@@&lt;/em&gt;&lt;/p&gt;
++
++&lt;p&gt;Brug denne menu til at vælge den ønskede funktion. Hvis du har problemer med at navigere i dette hjælpesystem så tryk &lt;em&gt;@@@fkey_help@@@&lt;/em&gt; for at få &lt;a href=&quot;#help&quot;&gt;beskrivelse&lt;/a&gt; om hjælpesystemet. De væsentligste funktioner i denne menu er:&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#harddisk&quot;&gt;Boot fra harddisk&lt;/a&gt;: Dette udvalg vil ikke ændre noget på systemet. Det starter bare det allerede installerede operativsystem.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#linux&quot;&gt;Installation&lt;/a&gt;: Denne installationstilstand virker på de fleste maskiner. Hvis du oplever at systemet fryser ved boot, eller problemer med genkendelsen af din hardwarekomponenter, f.eks. harddisk-controllere eller netværkskort, kan du prøve en af følgende installationsmuligheder.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#noacpi&quot;&gt;Installation -- ACPI deaktiveret&lt;/a&gt;: Mange af de computere der sælges for tiden, har ufuldstændige eller fejlbehæftede implementationer af ACPI. Dette valg deaktiverer ACPI-understøttelse i kernen, men mange ydelsesfunktioner såsom DMA for IDE-harddiske forbliver aktiverede.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#nolapic&quot;&gt;Installation -- Lokal APIC deaktiveret&lt;/a&gt;: Hvis den normale installation fejler, kan det skyldes at hardwaren ikke understøtter lokal APIC. Hvis dette lader til at være tilfældet, så anvend denne valgmulighed for at installere uden understøttelse for lokal APIC.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#failsafe&quot;&gt;Installation -- fejlsikret tilstand&lt;/a&gt;: Hvis du ikke havde held med &lt;em&gt;Installation&lt;/em&gt;, kan det være at dette valg vil løse problemet.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#rescue&quot;&gt;Redningssystem&lt;/a&gt;: Denne bootimagefil starter et lille Linuxsystem i RAM. Dette er nyttigt, hvis systemet ikke vil starte korrekt op. Når dette system er startet op, skal du logge ind som brugeren root.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#firmware&quot;&gt;Firmware-test&lt;/a&gt;: Kører et BIOS-testværktøj, som validerer ACPI og andre dele af din BIOS.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#memtest&quot;&gt;Hukommelsestest&lt;/a&gt;: Test af hukommelsen er nyttig til mere end blot at tjekke installationen af nye hukommelsesmoduler. Det stresstester også en stor del af din computer og kan indikere hardwareproblemer.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#opt&quot;&gt;Boot-valgmuligheder&lt;/a&gt;: Bootparametrene kan ændre dit systems opførsel fuldstændigt. De er indstillinger til kernen.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Help&lt;/a&gt;: Hjælpen tilpasser sig konteksten. Du vil se forskellige ting, alt efter hvad det aktive element på skærmen er. Der er også en beskrivelse af dette hjælpesystem tilgængelig.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Vælg det sprog og tastaturlayout der skal bruges at bootloaderen.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Video Mode&lt;/a&gt;: Her kan du vælge imellem forskellige skærmopløsninger, der kan bruges under installationen. Hvis du løber ind i problemer med den grafiske installation, kan &lt;em&gt;teksttilstand&lt;/em&gt; være en måde at komme videre på.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Softwarekilde&lt;/a&gt;: Vælg softwarekilden.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Driveropdatering&lt;/a&gt;: Hvis systemet er virkelig nyt, kan det være nødvendigt med en driveropdatering for at kunne installere systemet.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldamainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;Valg af softwaretype&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Du kan vælge at installere 32-bit- eller 64-bit-versionen af @@@product@@@.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldamaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;Driveropdatering&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Hvis du har brug for en driveropdatering via diskette eller CD-ROM så tryk &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. Bootloaderen beder dig om at indsætte mediet med driveropdateringen efter indlæsning af Linux-kernen.&lt;/p&gt;
++
++&lt;p&gt;En driveropdatering vil typisk være en diskette med en nyere version af en hardwaredriver eller fejlrettelser, der er påkrævet under installationen.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldamainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;Installation -- fejlsikret tilstand&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Vælg &lt;em&gt;Installation -- fejlsikret tilstand&lt;/em&gt;, hvis du oplever at systemet hænger under installationen, eller at der opstår fejl der ikke kan reproduceres. Hvis du vælger dette, bliver DMA slået fra for IDE-drev, og det samme gør alle former for strømstyring. Se også kerneparametrene for &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;, &lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; og &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldamainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;Firmware-test&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Starter en BIOS-tjekker, som validerer ACPI-tabellerne og mange andre dele af din BIOS. Testresultatet kan gemmes på en USB-disk eller gemmes via netværk.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldamainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;Boot fra harddisk&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Vælg &lt;em&gt;Boot det installerede system&lt;/em&gt; for at starte systemet, der er installeret på din lokale harddisk. Dette system skal installeres korrekt, da kun MBR (Master Boot Record) på harddisken der indlæses. Enheds-IDet for den første harddisk angives af BIOSen i computeren.&lt;/p&gt;
++
++&lt;p&gt;Brug dette, hvis du glemte at tage CD'en eller DVD'en ud af drevet og vil starte computeren fra harddisken.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldamainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Brug af hjælpesystemet&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Bootloaderens onlinehjælp tilpasser sig konteksten. Den viser information om det valgte menupunkt eller, hvis du er ved at redigere bootparametrene, så prøver det at finde information om parameteren ved markøren.&lt;/p&gt;
++
++&lt;p&gt;Navigationstaster &lt;ul&gt;&lt;li&gt;&lt;em&gt;Pil op&lt;/em&gt;: Fremhæv forrige link&lt;/li&gt;&lt;li&gt;&lt;em&gt;Pil ned&lt;/em&gt;: Fremhæv næste link&lt;/li&gt;&lt;li&gt;&lt;em&gt;Pil til venstre&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: Vend tilbage til det forrige emne&lt;/li&gt;&lt;li&gt;&lt;em&gt;Pil til højre&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Mellemrum&lt;/em&gt;: Følg link&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: Rul en side op&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: Rul en side nedad&lt;/li&gt;&lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: Gå til sidens begyndelse&lt;/li&gt;&lt;li&gt;&lt;em&gt;End&lt;/em&gt;: Gå til sidens slutning&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: Forlad hjælpesystemet&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldamaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;Softwarekilde&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Tryk &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; for at vælge en softwarekilde.&lt;/p&gt;
++
++&lt;p&gt;Dette er det samme som at bruge bootparametren &lt;a href=&quot;#o_install&quot;&gt;installér&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldamainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Valg af sprog og tastaturlayout&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Tryk &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; for at ændre det sprog og tastaturlayout, som bootloaderen bruger.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldamainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;Installation&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Vælg &lt;em&gt;Installation&lt;/em&gt; for at starte standardinstallationen. &lt;a href=&quot;#opt&quot;&gt;boot-valgmuligheder&lt;/a&gt;, der indtastes, bruges under opstart. Dette punkt aktiverer mange af de funktioner, der er gængse i hardware nu om dage.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldamainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;Hukommelsestest&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Den inkluderede &lt;em&gt;Hukommelsestest&lt;/em&gt; giver gode muligheder for at stressteste systemets hardware. Hovedformålet med den er at finde ud af om der er defekt RAM i systemet, men mange andre dele af systemet stresstestes også.&lt;/p&gt;
++
++&lt;p&gt;Der er ingen garanti for, at hukommelsen er i orden, hvis der ikke findes fejl, men de fleste typer af hukommelsesdefekter vil blive fundet.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldamainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;Installation -- ACPI deaktiveret&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Nutidig hardware kræver normalt ACPI (Advanced Configuration and Power Interface) for at styre interrupthåndteringen. ACPI erstatter fuldkomment det gamle APM-system.&lt;/p&gt;
++
++&lt;p&gt;Vælg &lt;em&gt;Installation -- ACPI deaktiveret&lt;/em&gt;, hvis du oplever problemer under boot af kernen. Kendte problemer for maskiner, der har problemer med ACPI er: &lt;ul&gt;&lt;li&gt;kernen fryser når systemet booter&lt;/li&gt;&lt;li&gt;PCI-kort bliver ikke fundet eller initialiseres ikke ordenligt&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Du kan også forsøge bootparametren &lt;a href=&quot;#firmware&quot;&gt;Firmware-test&lt;/a&gt; og se på testresultaterne fra ACPI-valideringen.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldamainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;Installation -- Lokal APIC deaktiveret&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Normalt er der ingen problemer med APIC (Advanced Programmable Interrupt Controller). Men hvis du lader til at have nogle, så prøv denne bootparameter for at boote uden local APIC-understøttelse.&lt;/p&gt;
++
++&lt;p&gt;Pas på ikke at forveksle dette med &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt; (Advanced Configuration and Power Interface).&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldamainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Boot-valgmuligheder&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Der er 2 typer af bootparametre du kan angive. Først er der dem, der påvirker installationsprogramet selv. Dernæst er der kerneparametrene. Nogle af de mere almindelige valgmuligheder er:&lt;/p&gt;
++
++&lt;p&gt;a) installationsvalgmuligheder&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;installér&lt;/a&gt; -- vælg en softwarekilde&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#network&quot;&gt;netværksvalgmuligheder&lt;/a&gt; -- netværksvalgmulighederne&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;vnc-valgmuligheder&lt;/a&gt; -- valgmuligheder ved VNC-installation&lt;/li&gt; &lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;a) kerneparametre &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- bestem opstartsbilledets opførsel&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- slå strømstyring til eller fra&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- avanceret konfiguration og strømgrænseflade (ACPI)&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- bestem opstartsbilledets opførsel&lt;/li&gt; &lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldamainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,13 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;Valgmuligheder for installationen: Netværksmuligheder&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Det er muligt at sætte netværkskortet op allerede nu. Selve hardwaren vil blive fundet senere af YaST2. Det minimale sæt valgmuligheder, til konfiguration af dit netkort, består af værtsmaskine-IP samt en netmaske. For eksempel:&lt;ul&gt;&lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;eller i kortere form: &lt;ul&gt;&lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Hvis du angav en &lt;a href=&quot;#o_install&quot;&gt;netværksbaseret installation&lt;/a&gt; og du ikke angav begge disse muligheder, vil installationsprogrammet prøve at sætte netværkskortet op med &lt;em&gt;dhcp&lt;/em&gt;. Hvis du skal bruge en standard-gateway, så angiv denne med valgmuligheden &lt;em&gt;gateway&lt;/em&gt;. For eksempel: &lt;ul&gt;&lt;li&gt;gateway=192.168.0.8&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldamainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Kernevalgmuligheder: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI (Advanced Configuration and Power Interface) er en standard, der definerer, hvordan strømhåndteringen og opsætningen af systemet foretages mellem operativsystemet og BIOS'en. Som standard vil &lt;em&gt;acpi&lt;/em&gt; blive aktiveret, hvis en BIOS der er nyere end år 2000, bliver fundet. Der er adskillige ofte brugte parametre, der bruges, til at styre hvordan ACPI opfører sig: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- anvend ikke ACPI til at route PCI-interrupts&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- kun de dele af ACPI som er relevante for at boote forbliver aktiveret&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- slå ACPI fuldstændigt fra&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- slå ACPI til, selv hvis din BIOS er fra før år 2000&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Især på nyere computere erstatter den det gamle &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;-system.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldamainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Kernevalgmuligheder: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM er en af de to strømhåndteringsstrategier, der bruges på nutidige computere. Den bruges hovedsagelig på bærbare til funktioner såsom suspendering til harddisk, men den kan også være ansvarlig for at slukke computeren, efter du har bedt den om at lukke ned. Brug af APM kræver en korrekt fungerende BIOS. Hvis BIOSen er defekt på dette område, vil APM kun have begrænset effekt eller måske endda forhindre din maskine i at fungere, som den skal. Den kan derfor slås fra med parametren &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- slå ACPI fuldstændigt fra&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Visse meget nye computere kan bedre drage fordel af det nyere &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldamainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Kernevalgmuligheder: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;IDE, ulig SCSI, bruges hovedsagelig til skrivebordsarbejdsstationer. For at omgå noge hardwareproblemer, der kan optræde med IDE systemer, kan du bruge kerneparametren: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- slå DMA fra for IDE-drev&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldamainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;Valgmuligheder for installationen: installér&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Som standard vil de lokale CD-ROM-drev blive gennemsøgt efter softwarekilden. Hvis du ønsker at lave en netværksinstallation, skal du vælge valgmuligheden &lt;em&gt;installér&lt;/em&gt;. Der er følgende mulige installationsprotokoller &lt;ul&gt;&lt;li&gt;FTP&lt;/li&gt;&lt;li&gt;NFS&lt;/li&gt;&lt;li&gt;HTTP&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Den syntaks der skal bruges, er magen til den for almindelige URL'er. Hvis din server har IP-adressen 192.168.0.1 f.eks., og du ønsker at installere via NFS fra mappen /install på denne server så angiv kilden som følger:&lt;ul&gt;&lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Netværkskortet vil enten blive sat op med &lt;em&gt;dhcp&lt;/em&gt;, eller også skal du selv angive parametrene, som beskrevet i &lt;a href=&quot;#network&quot;&gt;netværksvalgmuligheder&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldamainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Kernevalgmuligheder: Splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Opstartsbilledet er billedet, som vises under systemets opstart. &lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- Opstartsbilledet slås fra. Dette kan være nyttigt med meget gamle skærme, eller hvis en fejl opstår.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Aktiverer opstartsbillede. Kerne- og boot-beskeder vises stadig.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Aktiverer opstartsbillede, men ingen beskeder. I stedet vises en fremgangslinje.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldamainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;Valgmuligheder for installationen: Vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;For at aktivere VNC-installation, skal du angive parametrene vnc og vncpassword: &lt;ul&gt;&lt;li&gt;&lt;em&gt;vnc=1 vncpassword=eksempel&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;VNC-serveren vil blive startet, og du kan styre YaST2 via en hvilken som helst VNC-klient på et andet system.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldamainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;Redningssystem&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;Redningssystem&lt;/em&gt; er et lille RAM-diskbaseret system. Derfra kan man foretage alle mulige ændringer på et installeret system. Da der kun er lav-niveau-værktøjer tilgængelige i dette system, er det kun tiltænkt eksperter.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldamainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;Valg af grafisk tilstand&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Tryk &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; for at få en liste over skærmtilstande, som er understøttet af dit grafikkort. Den højeste opløsning, din skærm understøtter, er forvalgt.&lt;/p&gt;
++
++&lt;p&gt;Det er muligt, at din skærm ikke kan genkendes automatisk. I så fald skal du vælge den ønskede tilstand manuelt.&lt;/p&gt;
++
++&lt;p&gt;Hvis dit system har problemer med grafikkortet under installationen, kan &lt;em&gt;teksttilstand&lt;/em&gt; være en brugbar midlertidig løsning.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldanavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/da/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Vend tilbage til &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldemainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;Boot-Lader-Hilfe&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Willkommen zu &lt;em&gt;@@@product@@@&lt;/em&gt;&lt;/p&gt;
++
++&lt;p&gt;Benutzen Sie dieses Menü, um die gewünschte Funktion auszuwählen. Falls Sie Probleme mit der Navigation in diesem Hilfesystem haben, drücken Sie &lt;em&gt;@@@fkey_help@@@&lt;/em&gt;, um &lt;a href=&quot;#help&quot;&gt;Beschreibung&lt;/a&gt; des Hilfesystems zu öffnen. Die Hauptfunktionen in diesem Menü sind:&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#harddisk&quot;&gt;Von Festplatte booten&lt;/a&gt;: Diese Auswahl wird an Ihrem System keine Änderung vornehmen. Sie startet lediglich ein bereits installiertes Betriebssystem.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#linux&quot;&gt;Installation&lt;/a&gt;: Dieser Installationsmodus arbeitet auf den meisten Maschinen. Falls Ihr System beim Hochfahren hängenbleibt oder Probleme mit der Erkennung von Hardwarekomponenten hat, z.B. Probleme mit Festplatten-Controllern oder Netzwerkkarten, versuchen Sie es mit einer der folgenden Installationsoptionen.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#noacpi&quot;&gt;Installation -- ACPI deaktiviert&lt;/a&gt;: Viele der heute verkauften Computer haben unvollständige oder fehlerhafte ACPI-Implementierungen. Diese Auswahl deaktiviert die ACPI-Unterstützung im Kernel, aktiviert aber immernoch viele Leistungsmerkmale, wie DMA für IDE-Festplatten.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#nolapic&quot;&gt;Installation -- Lokales APIC deaktiviert&lt;/a&gt;: Wenn die normale Installation fehlschlägt, dann kann das evtl. daran liegen, dass die Systemhardware kein lokales APIC unterstützt. Wenn dies der Fall zu sein scheint, benutzen Sie diese Option, um ohne lokale APIC-Unterstützung zu installieren.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#failsafe&quot;&gt;Installation -- Sichere Einstellungen&lt;/a&gt;: Falls Sie mit &lt;em&gt;Installation&lt;/em&gt; nicht erfolgreich waren, kann die folgende Auswahl evtl. das Problem lösen.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#rescue&quot;&gt;Rettungssystem&lt;/a&gt;: Dieses Boot-Abbild startet ein kleines Linux-System im RAM. Dieses Vorgehen ist sinnvoll, wenn das System nicht richtig startet. Loggen Sie sich nach dem Hochfahren des Systems als Root ein.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#firmware&quot;&gt;Firmware-Test&lt;/a&gt;: Lädt ein BIOS-Testwerkzeug, welches ACPI und andere Teile Ihres BIOS überprüft.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#memtest&quot;&gt;Speichertest&lt;/a&gt;: Speichertests sind nicht nur zur Überprüfung neuer Speichermodule sinnvoll. Sie sind ein Belastungstest für einen großen Teil Ihres Computersystems und können Hardwareprobleme aufzeigen.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#opt&quot;&gt;Boot-Optionen&lt;/a&gt;: Die Boot-Optionen können das Verhalten Ihres Systems komplett ändern. Sie sind Einstellungen für den Kernel.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@-Hilfe&lt;/a&gt;: Dies ist kontextspezifisch. Es wird verschiedene Bildschirme abhängig vom aktiven Element des Boot-Bildschirms zeigen. Es ist auch eine Beschreibung dieses Hilfesystems verfügbar.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Stellen Sie die vom Boot-Lader verwendete Sprache und Tastaturbelegung ein.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@-Videomodus&lt;/a&gt;: Wählen Sie hier zwischen den verschiedenen Bildschirmauflösungen während der Installation. Falls es Probleme mit der grafischen Installation gibt, wird &lt;em&gt;Textmodus&lt;/em&gt; evtl. eine Problemumgehung sein.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@-Installationsquelle&lt;/a&gt;: Wählen Sie die Installationsquelle aus.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@-Treiberaktualisierung&lt;/a&gt;: Bei sehr neuen Maschinen ist es evtl. notwendig eine Treiberaktualisierung vorzunehmen, um das System zu installieren.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldemainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;Auswahl des Softwaretyps&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Sie können wählen, ob Sie die 32- oder 64-Bit-Version von @@@product@@@ installieren.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldemaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;Treiberaktualisierung&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Falls eine Treiberaktualisierung per Diskette oder CD-ROM notwendig wird, drücken Sie &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. Der Boot-Lader erbittet das Einlegen des Treiberaktualisierungsmediums nach dem Laden des Linux-Kernels.&lt;/p&gt;
++
++&lt;p&gt;Eine Treiberaktualisierung ist typischerweise eine Diskette mit neuen Versionen von Hardwaretreibern oder Fehlerbehebungen, die während der Installation notwendig werden.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldemainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;Installation -- Sichere Einstellungen&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Wählen Sie &lt;em&gt;Installation -- Sichere Einstellungen&lt;/em&gt;, wenn der Computer während der Installation hängt oder nicht nachvollziehbare Fehler auftreten. Diese Option deaktiviert DMA für IDE-Laufwerke und alle Energieverwaltungsfunktionen. Sehen Sie sich auch die Kernel-Optionen für &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;, &lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; und &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; an.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldemainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;Firmware-Test&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Startet einen BIOS-Prüfer, welcher die ACPI-Tabellen und viele andere Teile Ihres BIOS überprüft. Die Testergebnisse können auf einem USB-Datenträger oder via Netzwerk gespeichert werden.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldemainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;Von Festplatte booten&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Wählen Sie &lt;em&gt;Installiertes Betriebssystem starten&lt;/em&gt;, um das auf Ihrer lokalen Festplatte installierte System zu starten. Dieses System muss richtig installiert sein, da nur der MBR (Master Boot Record) auf der ersten Festplatte gestartet wird. Die Geräte-ID der ersten Festplatte wird vom BIOS des Computers bereitgestellt.&lt;/p&gt;
++
++&lt;p&gt;Benutzen Sie dies, wenn Sie vergessen haben, die CD oder DVD aus dem Laufwerk zu nehmen und den Computer von der Festplatte starten möchten.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldemainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Hilfesystem verwenden&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Die Online-Hilfe des Boot-Laders ist kontextspezifisch. Sie gibt Informationen über das ausgewählte Menüelement oder sie versucht, bei Bearbeitung der Boot-Optionen, Informationen über die Option zu suchen, auf der der Mauszeiger positioniert ist.&lt;/p&gt;
++
++&lt;p&gt;Navigationstasten &lt;ul&gt;&lt;li&gt;&lt;em&gt;Aufwärtspfeil&lt;/em&gt;: vorherigen Link hervorheben&lt;/li&gt;&lt;li&gt;&lt;em&gt;Abwärtspfeil&lt;/em&gt;: nächsten Link hervorheben&lt;/li&gt;&lt;li&gt;&lt;em&gt;Linkspfeil&lt;/em&gt;, &lt;em&gt;Rücktaste&lt;/em&gt;: zum vorherigen Thema zurückkehren&lt;/li&gt;&lt;li&gt;&lt;em&gt;Rechtspfeil&lt;/em&gt;, &lt;em&gt;Eingabe&lt;/em&gt;, &lt;em&gt;Leerzeichen&lt;/em&gt;: Link folgen&lt;/li&gt;&lt;li&gt;&lt;em&gt;Bild auf&lt;/em&gt;: ein Seite nach oben blättern&lt;/li&gt;&lt;li&gt;&lt;em&gt;Bild ab&lt;/em&gt;: eine Seite nach unten blättern&lt;/li&gt;&lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: zur Startseite gehen&lt;/li&gt;&lt;li&gt;&lt;em&gt;Ende&lt;/em&gt;: zur Endseite gehen&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: Hilfe verlassen&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldemaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;Installationsquelle&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Drücken Sie &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt;, um eine Installationsquelle zu wählen.&lt;/p&gt;
++
++&lt;p&gt;Dies ist dasselbe, wie die Boot-Option &lt;a href=&quot;#o_install&quot;&gt;installieren&lt;/a&gt; zu verwenden.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldemainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Auswahl der Sprache und Tastaturbelegung&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Drücken Sie &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt;, um die Sprache und Tastaturbelegung, die der Boot-Laderverwendet zu wechseln.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldemainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;Installation&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Wählen Sie &lt;em&gt;Installation&lt;/em&gt;, um die Standardinstallation zu starten. Die eingegebenen &lt;a href=&quot;#opt&quot;&gt;Boot-Optionen&lt;/a&gt; werden beim Starten verwendet. Dieses Element aktiviert viele Funktionen der üblicherweise verfügbaren Hardware.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldemainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;Speichertest&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Der enthaltene &lt;em&gt;Speichertest&lt;/em&gt; unterstützt gute Möglichkeiten die Systemhardware auf Belastung zu testen. Der Hauptzweck ist die Erkennung von defektem RAM, es werden aber auch zahlreiche andere Systembereiche belastet.&lt;/p&gt;
++
++&lt;p&gt;Es gibt keine Garantie, dass der Speicher intakt ist, wenn keine Fehler gefunden werden, obwohl die meisten Speicherdefekte ausfindig gemacht werden.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldemainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;Installation -- ACPI deaktiviert&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Die momentane Hardware benötigt üblicherweise ACPI (Advanced Configuration and Power Interface), um die Interrupt-Handhabung zu kontrollieren. ACPI ersetzt das alte APM-System vollständig.&lt;/p&gt;
++
++&lt;p&gt;Wählen Sie &lt;em&gt;Installation -- ACPI deaktiviert&lt;/em&gt;, wenn es während des Hochfahrens Probleme mit dem Kernel gibt. Bekannte Probleme mit ACPI sind: &lt;ul&gt;&lt;li&gt;Kernel friert beim Booten ein&lt;/li&gt;&lt;li&gt;PCI-Karten werden nicht erkannt oder richtig initialisiert&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Sie können auch die Boot-Option &lt;a href=&quot;#firmware&quot;&gt;Firmware-Test&lt;/a&gt; versuchen und die Testergebnisse der ACPI-Überprüfung betrachten.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldemainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;Installation -- Lokales APIC deaktiviert&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Normalerweise gibt es keine Probleme mit dem APIC (Advanced Programmable Interrupt Controller). Falls es scheinbar doch welche gibt, versuchen Sie diese Option, um ohne lokale APIC-Unterstützung hochzufahren.&lt;/p&gt;
++
++&lt;p&gt;Bitte verwechseln Sie dies nicht mit &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt; (Advanced Configuration and Power Interface).&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldemainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Boot-Optionen&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Es gibt zwei verfügbare Typen von Boot-Optionen. Zum Einen gibt es Optionen, die den Installierer beeinflussen. Zum Zweiten gibt es Kernel-Optionen. Einige der üblicheren Optionen sind:&lt;/p&gt;
++
++&lt;p&gt;a) Installiereroptionen &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;installieren&lt;/a&gt; -- wählen Sie eine Installationsquelle&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#network&quot;&gt;Netzwerkoptionen&lt;/a&gt; -- die Netzwerkoptionen&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;VNC-Optionen&lt;/a&gt; -- Optionen für die Installation via VNC&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;b) Kernel-Optionen &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- beeinflusst das Verhalten des Splash-Bildschirms&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- Energieverwaltung umschalten&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- Erweiterte Konfigurations- und Energieschnittstelle&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- steuert das IDE-Subsystem&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldemainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,13 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;Installiereroptionen: Netzwerkoptionen&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Es ist möglich die Netzwerkschnittstelle sofort zu konfigurieren. Die Hardware wird später durch YaST2 erkannt. Der minimale Satz an Optionen, um Ihre Netzwerkkarte zu konfigurieren besteht aus Host-IP und Netzmaske. Beispiel: &lt;ul&gt;&lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;oder in einer kürzeren Form: &lt;ul&gt;&lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Wenn Sie &lt;a href=&quot;#o_install&quot;&gt;netzwerkbasierte Installation&lt;/a&gt; festgelegt haben, aber diese beiden Optionen nicht bestimmen, versucht der Installierer die Netzwerkschnittstelle mit &lt;em&gt;dhcp&lt;/em&gt; zu konfigurieren. Wenn Sie eine Standardschnittstelle benötigen, bestimmen Sie dies mit der Option &lt;em&gt;gateway&lt;/em&gt;. Beispiel: &lt;ul&gt;&lt;li&gt;gateway=192.168.0.8&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldemainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Kernel-Optionen: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI (Advanced Configuration and Power Interface) ist ein Standard, der die Energie- und Konfigurationsverwaltungsschnittstellen zwischen einem Betriebssystem und dem BIOS definiert. Standardmäßig ist &lt;em&gt;acpi&lt;/em&gt; aktiviert, wenn ein BIOS erkannt wird, welches nach 2000 datiert ist. Es gibt mehrere gebräuchliche Parameter zur Steuerung des ACPI: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- verwenden Sie ACPI nicht, um PCI-Interrupts zu routen&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- nur die Teile von ACPI, die für das Hochfahren relevant sind bleiben aktiviert&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- ACPI komplett abschalten&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- ACPI anschalten, selbst wenn Ihr BIOS vor 2000 datiert ist&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Besonders auf neuen Computern wird es das alte &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;-System ersetzen.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldemainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Kernel-Optionen: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM ist eine der beiden Energieverwaltungsstrategien, die auf den gegenwärtigen Computern verwendet wird. Es wird hauptsächlich auf Laptops für Funktionen wie Suspend-to-Disk benutzt, kann aber auch für das Abschalten des Computers nach dem Herunterfahren verantwortlich sein. APM ist von einem korrekt funktionierenden BIOS abhängig. Bei einem fehlerhaften BIOS funktioniert das APM evtl. nur eingeschränkt, möglicherweise funktioniert der Computer überhaupt nicht mehr. Daher kann es mit dem Parameter &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- APM komplett abschalten&lt;/li&gt;&lt;/ul&gt; deaktiviert werden.&lt;/p&gt;
++
++&lt;p&gt;Einige sehr neue Computer können vom neueren &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt; profitieren.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldemainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Kernel-Optionen: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;IDE wird, im Gegensatz zu SCSI, auf den meisten Desktop-Arbeitsstationen verwendet. Zur Umgehung einiger Hardwareprobleme, die mit IDE-Systemen auftreten, verwenden Sie den Kernel-Parameter: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- DMA für IDE-Laufwerke abschalten&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldemainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;Installiereroptionen: install&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Standardmäßig werden die lokalen CD-ROMs nach der Installationsquelle durchsucht. Bei einer Netzwerkinstallation wählen Sie die Option &lt;em&gt;installieren&lt;/em&gt;. Mögliche Installationsprotokolle sind &lt;ul&gt;&lt;li&gt;FTP&lt;/li&gt;&lt;li&gt;NFS&lt;/li&gt;&lt;li&gt;HTTP&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Die zu verwendende Syntax entspricht den Standard-URLs. Bsp.: Wenn Ihr Server bei 192.168.0.1 gefunden wird und Sie eine eine NFS-basierte Installation aus dem Verzeichnis /install durchführen wollen, legen Sie die Quelle wie folgt fest: &lt;ul&gt;&lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Die Netzwerkkarte wird entweder mit &lt;em&gt;dhcp&lt;/em&gt; konfiguriert oder Sie müssen die Parameter selbst festlegen, wie beschrieben in &lt;a href=&quot;#network&quot;&gt;Netzwerkoptionen&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldemainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Kernel-Optionen: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Der Splash-Bildschirm ist das während des Systemstarts angezeigte Bild. &lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- Der Splash-Bildschirm ist abgeschaltet. Dies kann bei bei sehr alten Monitoren sinnvoll sein oder wenn einige Fehler auftreten.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Splash wird aktiviert; Kernel- und Boot-Nachrichten werden nach wie vor angezeigt.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Splash wird aktiviert, aber keine Nachrichten. Anstelle dessen wird ein Fortschrittsbalken gezeichnet.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldemainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;Installiereroptionen: vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Um die VNC-Installation zu aktivieren, legen Sie die Parameter vnc und vncpassword fest: &lt;ul&gt;&lt;li&gt;&lt;em&gt;vnc=1 vncpassword=example&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Der VNC-Server wird gestartet und Sie können YaST2 über irgendeinen VNC-Client von einem Fernsystem aus steuern.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldemainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;Rettungssystem&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;Rettungssystem&lt;/em&gt; ist ein kleines RAM-Disk-Basissystem. Von dort aus können Sie alle möglichen Änderungen an einem installierten System vornehmen. Weil nur systemnahe Werkzeuge in diesem System verfügbar sind, ist es für Experten vorgesehen.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldemainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;Auswahl des Videomodus&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Drücken Sie &lt;em&gt;@@@fkey_video@@@&lt;/em&gt;, um die Liste der Modi zu erhalten, die Ihre Grafikkarte unterstützt. Der höchste Modus, den Ihr Monitor anzeigen kann ist vorgewählt.&lt;/p&gt;
++
++&lt;p&gt;Es ist möglich, dass Ihr Monitor nicht automatisch erkannt wird. Wählen Sie in diesem Fall Ihren bevorzugten Modus manuell aus.&lt;/p&gt;
++
++&lt;p&gt;Falls Ihr System während der Installation Probleme mit der Grafikkarte hat, kann &lt;em&gt;Textmodus&lt;/em&gt; eine brauchbare Problemumgehung sein.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalldenavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/de/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Zurück zu &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallelmainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,103 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;Βοήθεια του Διαχειριστή Εκκίνησης&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Welcome to &lt;em&gt;@@@product@@@&lt;/em&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this menu to select the desired function. If you have
++problems navigating in this help system, press
++&lt;em&gt;@@@fkey_help@@@&lt;/em&gt; to enter the &lt;a href=&quot;#help&quot;&gt;περιγραφή&lt;/a&gt; of the help
++system. The main functions in this menu are:
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#harddisk&quot;&gt;Εκκίνηση από τον Σκληρό Δίσκο&lt;/a&gt;: This selection will not do
++anything to the system. It only starts a previously installed
++operating system.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#linux&quot;&gt;Εγκατάσταση&lt;/a&gt;:
++This installation mode works on most machines. If you experience a
++system freeze during boot or problems with detection of your hardware
++components, such as disk controllers or network cards, try one of the
++following installation options.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#noacpi&quot;&gt;Εγκατάσταση -- Το ACPI Απενεργοποιημένο&lt;/a&gt;: Many of the
++currently-sold computers have incomplete or faulty ACPI
++implementations. This selection disables ACPI support in the
++kernel, but still enables many performance features, like DMA for IDE
++hard disks.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#nolapic&quot;&gt;Εγκατάσταση -- Το Τοπικό APIC είναι Απενεργοποιημένο&lt;/a&gt;:
++If the normal installation fails, this might be due to the
++system hardware not supporting local APIC.
++If this seems to be the case, use this option to
++install without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#failsafe&quot;&gt;Εγκατάσταση -- Ασφαλείς Ρυθμίσεις &lt;/a&gt;: If you were not
++successful with &lt;em&gt;Εγκατάσταση&lt;/em&gt;, this selection might
++solve the issue.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#rescue&quot;&gt;Σύστημα Διάσωσης&lt;/a&gt;: This boot image starts a small
++Linux system in RAM. This is useful if the system does not start properly.
++After booting this system, log in as root.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#firmware&quot;&gt;Δοκιμή Υπολογισμικού&lt;/a&gt;: Runs a BIOS test tool that validates
++ACPI and other parts of your BIOS.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#memtest&quot;&gt;Έλεγχος Μνήμης&lt;/a&gt;: Memory testing is useful for more than
++checking installation of new memory modules. It is a stress test
++for a big part of your computer system and may indicate hardware
++problems.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#opt&quot;&gt;Ρυθμίσεις Εκκίνησης&lt;/a&gt;: The boot options may change the
++behavior of your system completely. They are settings for
++the kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Help&lt;/a&gt;: This is context sensitive. It will
++show different screens depending on the active element of the
++boot screen. There is also a description of this help system
++available.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Set language and keyboard mapping
++used by the boot loader.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Video Mode&lt;/a&gt;: Here, choose between
++different screen resolutions while installing. If you encounter
++problems with the graphical installation, the &lt;em&gt;κατάσταση κειμένου&lt;/em&gt; may
++be a work-around for you.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Installation Source&lt;/a&gt;: Choose the
++installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Driver Update&lt;/a&gt;: For very new machines, a
++driver update may be needed to install the system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallelmainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;Επιλογή Τύπου Λογισμικού&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++You have the choice to install the 32-bit or 64-bit version of @@@product@@@.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallelmaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;Ενημέρωση Οδηγού&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++If you need a driver update floppy or CD-ROM, press &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. The
++boot loader asks you to insert the driver update medium after
++loading the Linux kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++A driver update is typically a floppy with new versions of hardware
++drivers or bug fixes needed during installation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallelmainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,11 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;Εγκατάσταση -- Ασφαλείς Ρυθμίσεις &lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Εγκατάσταση -- Ασφαλείς Ρυθμίσεις &lt;/em&gt; if you encounter hangs
++while installing or irreproducible errors. This option disables DMA
++for IDE drives and all power management features.
++See also the kernel options for &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;,
++&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; and &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallelmainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;Δοκιμή Υπολογισμικού&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Starts a BIOS checker that validates the ACPI tables
++and many other parts of your BIOS.
++Test results can be stored on usb disk or saved via network.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallelmainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,16 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;Εκκίνηση από τον Σκληρό Δίσκο&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Εκκίνηση Εγκατεστημένου Λ.Σ.&lt;/em&gt; to start the system installed on
++your local hard disk. This system must be installed properly, because
++only the MBR (Master Boot Record) on the first hard disk is started.
++The device ID of the first hard disk is provided by the BIOS of
++the computer.
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this if you forgot to remove the CD or DVD from your
++drive and want to start the computer from the hard disk.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallelmainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Χρήση του Συστήματος Βοήθειας&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Επάνω Βελάκι&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Κάτω Βελάκι&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Αριστερό Βελάκι&lt;/em&gt;, &lt;em&gt;Πισωγύρισμα&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Δεξί Βελάκι&lt;/em&gt;, &lt;em&gt;Εισαγωγή&lt;/em&gt;, &lt;em&gt;Κενό&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Επάνω&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Κάτω&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Αρχή&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Τέλος&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallelmaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;Πηγή Εγκατάστασης&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; to choose an installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++This is the same as using the &lt;a href=&quot;#o_install&quot;&gt;εγκατάσταση&lt;/a&gt;
++boot option.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallelmainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Επιλογή Γλώσσας και Διάταξης Πληκτρολογίου&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallelmainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;Εγκατάσταση&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Εγκατάσταση&lt;/em&gt; to start the default installation. The
++&lt;a href=&quot;#opt&quot;&gt;επιλογές εκκίνησης&lt;/a&gt; entered are used in the
++start-up. This item activates many features of commonly available
++hardware.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallelmainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;Έλεγχος Μνήμης&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The included &lt;em&gt;Έλεγχος Μνήμης&lt;/em&gt; provides good possibilities to
++stress test the hardware of a system. Its main purpose is to detect
++broken RAM, but it also stresses many other parts of the system.
++&lt;/p&gt;
++
++&lt;p&gt;
++There is no guarantee that the memory is good if no errors are
++found, although most of memory defects will be found.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallelmainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,24 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;Εγκατάσταση -- Το ACPI Απενεργοποιημένο&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Current hardware usually requires ACPI (Advanced Configuration and Power Interface)
++to control the interrupt handling.
++ACPI completely replaces the old APM system.
++&lt;/p&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Εγκατάσταση -- Το ACPI Απενεργοποιημένο&lt;/em&gt; if you encounter
++problems during boot of the kernel. Known problems with machines that
++have problems with ACPI are:
++&lt;ul&gt;
++ &lt;li&gt;kernel freezes when booting&lt;/li&gt;
++ &lt;li&gt;PCI Cards are not detected or initialized properly&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++You may also try the &lt;a href=&quot;#firmware&quot;&gt;Δοκιμή Υπολογισμικού&lt;/a&gt; boot option
++and look at the test results of the ACPI validation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallelmainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;Εγκατάσταση -- Το Τοπικό APIC είναι Απενεργοποιημένο&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Normally there are no problems with the APIC (Advanced Programmable Interrupt
++Controller). But if you seem to have some, try this option to boot
++without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++Please don't confuse this with &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt;
++(Advanced Configuration and Power Interface).
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallelmainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,28 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Ρυθμίσεις Εκκίνησης&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++There are two types of boot options available. First, there are
++options that affect the installer. Second, there are kernel
++options. Some of the more common options are:
++&lt;/p&gt;
++
++&lt;p&gt;
++a) installer options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;εγκατάσταση&lt;/a&gt; -- select an installation source&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#network&quot;&gt;επιλογές δικτύου&lt;/a&gt; -- the network options&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;επιλογές vnc &lt;/a&gt; -- options for installation via VNC&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++b) kernel options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;αρχική οθόνη&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallelmainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;Επιλογές Εγκατάστσαης: Επιλογές Δικτύου&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++It is possible to configure the network interface right now. The
++hardware will be detected later by YaST2. The minimum set of options
++to configure your network card consists of host IP and netmask. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;Διεύθυνση ΙΡ κόμβου=192.168.0.10 μάσκα δικτύου=255.255.255.0&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++or in a shorter form:
++&lt;ul&gt;
++ &lt;li&gt;Διεύθυνση ΙΡ κόμβου=192.168.0.10/24&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++If you specified a &lt;a href=&quot;#o_install&quot;&gt;εγκατάσταση μέσω δικτύου&lt;/a&gt; and do
++not specify both of these options, the installer tries to configure
++the network interface with &lt;em&gt;dhcp&lt;/em&gt;. If you need a default
++gateway, specify this with the option &lt;em&gt;πύλη&lt;/em&gt;. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;πύλη=192.168.0.8&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallelmainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Επιλογές Πυρήνα: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallelmainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Επιλογές Πυρήνα: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=offapm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallelmainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Επιλογές Πυρήνα: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallelmainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,30 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;Επιλογές Εγκατάστασης: εγκατάσταση&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++By default, the local CD-ROMs are searched for the installation source.
++For a network install, select the
++&lt;em&gt;εγκατάσταση&lt;/em&gt; option. Possible installation protocols are
++&lt;ul&gt;
++ &lt;li&gt;FTP&lt;/li&gt;
++ &lt;li&gt;NFS&lt;/li&gt;
++ &lt;li&gt;HTTP&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The syntax to use is just like standard URLs. For example,
++if your server is found at 192.168.0.1 and you want to do an NFS-based
++install from the directory /install on this server, specify
++the source as follows:
++&lt;ul&gt;
++ &lt;li&gt;εγκατάσταση=nfs://192.168.0.1/install&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The network card will either be configured with &lt;em&gt;dhcp&lt;/em&gt; or you
++must specify the parameters yourself as described in the
++&lt;a href=&quot;#network&quot;&gt;επιλογές δικτύου&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallelmainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Επιλογές πυρήνα: αρχική οθόνη&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splase=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallelmainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;Επιλογές Εγκατάστασης: vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++To enable the VNC installation, specify the
++parameters vnc and vncpassword:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;vnc=1 κωδικός πρόσβασης vnc=παράδειγμα&lt;/em&gt;&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The VNC server will be started and you may control YaST2 over any VNC
++client from a remote system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallelmainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;Σύστημα Διάσωσης&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The &lt;em&gt;Σύστημα Διάσωσης&lt;/em&gt; is a small RAM disk base system. From there,
++it is possible to make all kinds of changes to an installed system. Because
++only low-level tools are available in this system, it is intended for
++experts.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallelmainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;Επιλογή Ρύθμισης Οθόνης&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; to get the list of video modes your graphics card
++supports. The highest mode your monitor can display is preselected.
++&lt;/p&gt;
++
++&lt;p&gt;
++It is possible that your monitor cannot be detected automatically. In that
++case, select your preferred mode manually.
++&lt;/p&gt;
++
++&lt;p&gt;
++If your system has problems with the graphics card during the
++installation, the &lt;em&gt;κατάσταση κειμένου&lt;/em&gt; may be a usable work-around.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallelnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/el/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Επιστροφή στο &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallenmainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,103 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;Boot Loader Help&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Welcome to &lt;em&gt;@@@product@@@&lt;/em&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this menu to select the desired function. If you have
++problems navigating in this help system, press
++&lt;em&gt;@@@fkey_help@@@&lt;/em&gt; to enter the &lt;a href=&quot;#help&quot;&gt;description&lt;/a&gt; of the help
++system. The main functions in this menu are:
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#harddisk&quot;&gt;Boot from Hard Disk&lt;/a&gt;: This selection will not do
++anything to the system. It only starts a previously installed
++operating system.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#linux&quot;&gt;Installation&lt;/a&gt;:
++This installation mode works on most machines. If you experience a
++system freeze during boot or problems with detection of your hardware
++components, such as disk controllers or network cards, try one of the
++following installation options.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#noacpi&quot;&gt;Installation -- ACPI Disabled&lt;/a&gt;: Many of the
++currently-sold computers have incomplete or faulty ACPI
++implementations. This selection disables ACPI support in the
++kernel, but still enables many performance features, like DMA for IDE
++hard disks.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#nolapic&quot;&gt;Installation -- Local APIC Disabled&lt;/a&gt;:
++If the normal installation fails, this might be due to the
++system hardware not supporting local APIC.
++If this seems to be the case, use this option to
++install without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#failsafe&quot;&gt;Installation -- Safe Settings&lt;/a&gt;: If you were not
++successful with &lt;em&gt;Installation&lt;/em&gt;, this selection might
++solve the issue.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#rescue&quot;&gt;Rescue System&lt;/a&gt;: This boot image starts a small
++Linux system in RAM. This is useful if the system does not start properly.
++After booting this system, log in as root.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#firmware&quot;&gt;Firmware Test&lt;/a&gt;: Runs a BIOS test tool that validates
++ACPI and other parts of your BIOS.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#memtest&quot;&gt;Memory Test&lt;/a&gt;: Memory testing is useful for more than
++checking installation of new memory modules. It is a stress test
++for a big part of your computer system and may indicate hardware
++problems.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#opt&quot;&gt;Boot Options&lt;/a&gt;: The boot options may change the
++behavior of your system completely. They are settings for
++the kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Help&lt;/a&gt;: This is context sensitive. It will
++show different screens depending on the active element of the
++boot screen. There is also a description of this help system
++available.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Set language and keyboard mapping
++used by the boot loader.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Video Mode&lt;/a&gt;: Here, choose between
++different screen resolutions while installing. If you encounter
++problems with the graphical installation, the &lt;em&gt;text mode&lt;/em&gt; may
++be a work-around for you.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Installation Source&lt;/a&gt;: Choose the
++installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Driver Update&lt;/a&gt;: For very new machines, a
++driver update may be needed to install the system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallenmainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;Software Type Selection&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++You have the choice to install the 32-bit or 64-bit version of @@@product@@@.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallenmaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;Driver Update&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++If you need a driver update floppy or CD-ROM, press &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. The
++boot loader asks you to insert the driver update medium after
++loading the Linux kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++A driver update is typically a floppy with new versions of hardware
++drivers or bug fixes needed during installation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallenmainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,11 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;Installation -- Safe Settings&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Installation -- Safe Settings&lt;/em&gt; if you encounter hangs
++while installing or irreproducible errors. This option disables DMA
++for IDE drives and all power management features.
++See also the kernel options for &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;,
++&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; and &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallenmainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;Firmware Test&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Starts a BIOS checker that validates the ACPI tables
++and many other parts of your BIOS.
++Test results can be stored on usb disk or saved via network.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallenmainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,16 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;Boot from Hard Disk&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Boot Installed OS&lt;/em&gt; to start the system installed on
++your local hard disk. This system must be installed properly, because
++only the MBR (Master Boot Record) on the first hard disk is started.
++The device ID of the first hard disk is provided by the BIOS of
++the computer.
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this if you forgot to remove the CD or DVD from your
++drive and want to start the computer from the hard disk.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallenmainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Using the Help System&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Up Arrow&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Down Arrow&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Left Arrow&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Right Arrow&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Space&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;End&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallenmaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;Installation Source&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; to choose an installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++This is the same as using the &lt;a href=&quot;#o_install&quot;&gt;install&lt;/a&gt;
++boot option.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallenmainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Language and Keyboard Layout Selection&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallenmainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;Installation&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Installation&lt;/em&gt; to start the default installation. The
++&lt;a href=&quot;#opt&quot;&gt;boot options&lt;/a&gt; entered are used in the
++start-up. This item activates many features of commonly available
++hardware.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallenmainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;Memory Test&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The included &lt;em&gt;Memory Test&lt;/em&gt; provides good possibilities to
++stress test the hardware of a system. Its main purpose is to detect
++broken RAM, but it also stresses many other parts of the system.
++&lt;/p&gt;
++
++&lt;p&gt;
++There is no guarantee that the memory is good if no errors are
++found, although most of memory defects will be found.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallenmainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,24 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;Installation -- ACPI Disabled&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Current hardware usually requires ACPI (Advanced Configuration and Power Interface)
++to control the interrupt handling.
++ACPI completely replaces the old APM system.
++&lt;/p&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Installation -- ACPI Disabled&lt;/em&gt; if you encounter
++problems during boot of the kernel. Known problems with machines that
++have problems with ACPI are:
++&lt;ul&gt;
++ &lt;li&gt;kernel freezes when booting&lt;/li&gt;
++ &lt;li&gt;PCI Cards are not detected or initialized properly&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++You may also try the &lt;a href=&quot;#firmware&quot;&gt;Firmware Test&lt;/a&gt; boot option
++and look at the test results of the ACPI validation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallenmainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;Installation -- Local APIC Disabled&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Normally there are no problems with the APIC (Advanced Programmable Interrupt
++Controller). But if you seem to have some, try this option to boot
++without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++Please don't confuse this with &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt;
++(Advanced Configuration and Power Interface).
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallenmainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,28 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Boot Options&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++There are two types of boot options available. First, there are
++options that affect the installer. Second, there are kernel
++options. Some of the more common options are:
++&lt;/p&gt;
++
++&lt;p&gt;
++a) installer options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;install&lt;/a&gt; -- select an installation source&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#network&quot;&gt;network options&lt;/a&gt; -- the network options&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;vnc options&lt;/a&gt; -- options for installation via VNC&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++b) kernel options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallenmainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;Installer Options: Network Options&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++It is possible to configure the network interface right now. The
++hardware will be detected later by YaST2. The minimum set of options
++to configure your network card consists of host IP and netmask. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++or in a shorter form:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++If you specified a &lt;a href=&quot;#o_install&quot;&gt;network-based install&lt;/a&gt; and do
++not specify both of these options, the installer tries to configure
++the network interface with &lt;em&gt;dhcp&lt;/em&gt;. If you need a default
++gateway, specify this with the option &lt;em&gt;gateway&lt;/em&gt;. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;gateway=192.168.0.8&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallenmainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Kernel Options: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallenmainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Kernel Options: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallenmainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Kernel Options: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallenmainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,30 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;Installer Options: install&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++By default, the local CD-ROMs are searched for the installation source.
++For a network install, select the
++&lt;em&gt;install&lt;/em&gt; option. Possible installation protocols are
++&lt;ul&gt;
++ &lt;li&gt;FTP&lt;/li&gt;
++ &lt;li&gt;NFS&lt;/li&gt;
++ &lt;li&gt;HTTP&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The syntax to use is just like standard URLs. For example,
++if your server is found at 192.168.0.1 and you want to do an NFS-based
++install from the directory /install on this server, specify
++the source as follows:
++&lt;ul&gt;
++ &lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The network card will either be configured with &lt;em&gt;dhcp&lt;/em&gt; or you
++must specify the parameters yourself as described in the
++&lt;a href=&quot;#network&quot;&gt;network options&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallenmainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Kernel Options: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallenmainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;Installer Options: vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++To enable the VNC installation, specify the
++parameters vnc and vncpassword:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;vnc=1 vncpassword=example&lt;/em&gt;&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The VNC server will be started and you may control YaST2 over any VNC
++client from a remote system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallenmainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;Rescue System&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The &lt;em&gt;Rescue System&lt;/em&gt; is a small RAM disk base system. From there,
++it is possible to make all kinds of changes to an installed system. Because
++only low-level tools are available in this system, it is intended for
++experts.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallenmainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;Video Mode Selection&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; to get the list of video modes your graphics card
++supports. The highest mode your monitor can display is preselected.
++&lt;/p&gt;
++
++&lt;p&gt;
++It is possible that your monitor cannot be detected automatically. In that
++case, select your preferred mode manually.
++&lt;/p&gt;
++
++&lt;p&gt;
++If your system has problems with the graphics card during the
++installation, the &lt;em&gt;text mode&lt;/em&gt; may be a usable work-around.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallennavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/en/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,3 @@
++&lt;p&gt;
++Return to &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallesmainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;Ayuda del cargador de arranque&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Bienvenido a &lt;em&gt;@@@product@@@&lt;/em&gt;&lt;/p&gt;
++
++&lt;p&gt;Utilice este menú para seleccionar la función deseada. Si tiene problemas para desplazarse por este sistema de ayuda, pulse &lt;em&gt;@@@fkey_help@@@&lt;/em&gt; para acceder al &lt;a href=&quot;#help&quot;&gt;descripción&lt;/a&gt; del sistema de ayuda. Las funciones principales de este menú son:&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#harddisk&quot;&gt;Arrancar desde disco duro&lt;/a&gt;: Esta selección no hará nada en el sistema. Sólo iniciará un sistema operativo instalado previamente.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#linux&quot;&gt;Instalación&lt;/a&gt;: Este modo de instalación funciona en la mayoría de los equipos. Si experimenta un bloqueo del sistema durante el arranque o problemas a la hora de detectar los componentes de hardware, como los controladores de disco o las tarjetas de red, pruebe una de las siguientes opciones de instalación.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#noacpi&quot;&gt;Instalación -- ACPI Inhabilitado&lt;/a&gt;: Muchos de los equipos que se venden actualmente cuentan con implementaciones de ACPI incompletas o erróneas. Esta opción inhabilita la compatibilidad con ACPI del kernel, pero mantiene habilitadas muchas de las funciones de rendimiento, como DMA para los discos duros IDE.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#nolapic&quot;&gt;Instalación -- APIC local Inhabilitado&lt;/a&gt;: Si la instalación normal no se lleva a cabo correctamente, puede deberse a que el hardware del sistema no sea compatible con APIC local. Si cree este sea el caso, utilice esta opción para instalar sin compatibilidad con APIC local.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#failsafe&quot;&gt;Instalación -- Ajustes seguros&lt;/a&gt;: Si no ha tenido éxito con &lt;em&gt;Instalación&lt;/em&gt;, esta selección puede que resuelva el problema.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#rescue&quot;&gt;Sistema de rescate&lt;/a&gt;: Esta imagen de arranque inicia un pequeño sistema Linux en RAM, lo que resulta útil si el sistema no se inicia correctamente. Tras arrancar este sistema, se debe iniciar sesión como usuario root.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#firmware&quot;&gt;Prueba de firmware&lt;/a&gt;: Ejecute la herramienta de prueba de la BIOS para comprobar ACPI y otras partes de su BIOS.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#memtest&quot;&gt;Prueba de memoria&lt;/a&gt;: La prueba de la memoria resulta útil no sólo para comprobar la instalación de nuevos módulos de memoria. Se trata de una prueba de carga de gran parte del sistema y puede poner de manifiesto otros problemas de hardware.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#opt&quot;&gt;Opciones de arranque&lt;/a&gt;: Las opciones de arranque pueden cambiar por completo el comportamiento del sistema. Se tratan de ajustes para el kernel.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Ayuda&lt;/a&gt;: Es sensible al contexto. Muestra distintas pantallas según el elemento activo de la pantalla de arranque. También hay disponible una descripción de este sistema de ayuda.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Defina el idioma y la distribución del teclado que utilizará el cargador de arranque.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Modo de vídeo&lt;/a&gt;: Aquí debe elegir entre varias resoluciones de pantalla durante la instalación. Si se producen problemas con la instalación gráfica, puede que la opción &lt;em&gt;modo de texto&lt;/em&gt; sirva de solución.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Fuente de instalación&lt;/a&gt;: Elija el origen de instalación.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Actualización de controladores&lt;/a&gt;: En los equipos muy nuevos, puede que se necesite una actualización de controladores para instalar el sistema.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallesmainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;Selección de tipo de software&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Tiene la opción de instalar la versión de 32 bits o de 64 bits de @@@product@@@.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallesmaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;Actualización de controladores&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Si necesita un disquete o un CD-ROM de actualización de controladores, pulse &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. El cargador de arranque le pedirá que introduzca el medio de actualización de controladores tras cargar el kernel de Linux.&lt;/p&gt;
++
++&lt;p&gt;Las actualizaciones del controlador suelen ser disquetes con versiones recientes de los controladores del hardware o con correcciones de errores necesarios durante la instalación.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallesmainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;Instalación -- Ajustes seguros&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Seleccione &lt;em&gt;Instalación -- Ajustes seguros&lt;/em&gt; si se producen bloqueos o errores irreproducibles durante la instalación. Esta opción inhabilita DMA para las unidades IDE y todas las funciones de gestión de la energía. Consulte también las opciones del kernel para &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;, &lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; y &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallesmainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;Prueba de firmware&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Inicia una comprobación de la BIOS que comprueba las tablas ACPI y muchas otras partes de la BIOS. Los resultados de la prueba se pueden almacenar en un disco USB o almacenarse en una ubicación de red.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallesmainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;Arrancar desde disco duro&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Seleccione &lt;em&gt;Arrancar SO instalado&lt;/em&gt; para iniciar el sistema instalado en el disco duro local. Este sistema se debe instalar de forma correcta, ya que sólo se inicia el MBR (sector de inicio principal) del primer disco duro. El ID de dispositivo del primer disco duro lo proporciona el BIOS del equipo.&lt;/p&gt;
++
++&lt;p&gt;Utilice esto si olvida retirar el CD o el DVD de la unidad y desea iniciar el equipo desde el disco duro.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallesmainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Uso del sistema de ayuda&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;La ayuda en línea del cargador de arranque es contextual. Proporciona información sobre el elemento de menú seleccionado o, si se están modificando las opciones de arranque, intenta buscar información sobre la opción en la que está situado el cursor.&lt;/p&gt;
++
++&lt;p&gt;Teclas de navegación &lt;ul&gt;&lt;li&gt;&lt;em&gt;Flecha arriba&lt;/em&gt;: resaltar el enlace anterior&lt;/li&gt;&lt;li&gt;&lt;em&gt;Flecha abajo&lt;/em&gt;: resaltar el enlace siguiente&lt;/li&gt;&lt;li&gt;&lt;em&gt;Flecha a la izquierda&lt;/em&gt;, &lt;em&gt;Retroceso&lt;/em&gt;: volver al apartado anterior&lt;/li&gt;&lt;li&gt;&lt;em&gt;Flecha a la derecha&lt;/em&gt;, &lt;em&gt;Intro&lt;/em&gt;, &lt;em&gt;Espacio&lt;/em&gt;: seguir el enlace&lt;/li&gt;&lt;li&gt;&lt;em&gt;Re Pág&lt;/em&gt;: subir una página&lt;/li&gt;&lt;li&gt;&lt;em&gt;Av Pág&lt;/em&gt;: bajar una página&lt;/li&gt;&lt;li&gt;&lt;em&gt;Inicio&lt;/em&gt;: ir al inicio de la página&lt;/li&gt;&lt;li&gt;&lt;em&gt;Fin&lt;/em&gt;: ir al final de la página&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: salir de la ayuda&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallesmaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;Fuente de instalación&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Pulse &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; para seleccionar un origen de instalación.&lt;/p&gt;
++
++&lt;p&gt;Esto es similar a usar la opción de arranque &lt;a href=&quot;#o_install&quot;&gt;instalar&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallesmainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Selección de idioma y distribución de teclado&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Pulse &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; para cambiar el idioma y la distribución del teclado que utilizará el cargador de arranque.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallesmainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;Instalación&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Seleccione &lt;em&gt;Instalación&lt;/em&gt; para iniciar la instalación por defecto. El valor &lt;a href=&quot;#opt&quot;&gt;opciones de arranque&lt;/a&gt; introducido se utiliza durante el inicio. Este elemento activa muchas funciones del hardware disponible habitualmente.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallesmainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;Prueba de memoria&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;El &lt;em&gt;Prueba de memoria&lt;/em&gt; incluido ofrece muchas posibilidades de realizar una prueba de carga del hardware de un sistema. Su objetivo principal es detectar RAM dañada, pero también analiza muchas otras partes del sistema.&lt;/p&gt;
++
++&lt;p&gt;No existen garantías de que la memoria no tenga problemas si no se encuentran errores, aunque se detectarán la mayoría de los defectos de memoria.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallesmainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;Instalación -- ACPI Inhabilitado&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;El hardware actual generalmente necesita ACPI para controlar la gestión de interrupciones. ACPI sustituye por completo el antiguo sistema APM.&lt;/p&gt;
++
++&lt;p&gt;Seleccione &lt;em&gt;Instalación -- ACPI Inhabilitado&lt;/em&gt; si encuentra problemas durante el arranque del kernel. Estos son algunos de los problemas conocidos de los equipos que presentan problemas con ACPI: &lt;ul&gt;&lt;li&gt;El kernel se bloquea durante el arranque&lt;/li&gt;&lt;li&gt;Las tarjetas PCI no se detectan o no se inician correctamente&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Puede intentar también la opción de arranque &lt;a href=&quot;#firmware&quot;&gt;Prueba de firmware&lt;/a&gt; y revisar los resultados del la prueba de arranque de la comprobación de ACPI.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallesmainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;Instalación -- APIC local Inhabilitado&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Normalmente no se producen problemas con APIC (controlador avanzado de interrupciones programables). No obstante, si cree que sufre alguno, intente que esta opción arranque sin compatibilidad APIC local.&lt;/p&gt;
++
++&lt;p&gt;No confunda esto con &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt; (Interfaz avanzada de configuración y energía (ACPI))&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallesmainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Opciones de arranque&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Hay dos tipos de opciones de arranque disponibles. En primer lugar, hay opciones que afectan al instalador. Por otro lado, existen opciones del kernel. Estas son algunas de las opciones más comunes:&lt;/p&gt;
++
++&lt;p&gt;a) opciones del instalador&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;instalar&lt;/a&gt; -- seleccionar un origen de instalación&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#network&quot;&gt;opciones de red&lt;/a&gt; -- las opciones de red&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;opciones VNC&lt;/a&gt; -- opciones para la instalación mediante VNC&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;b) opciones del kernel &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;pantalla inicial&lt;/a&gt; -- influye en el comportamiento de la pantalla inicial&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- alterna la gestión de la energía&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- interfaz avanzada de configuración y energía (ACPI)&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- controla el subsistema IDE&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallesmainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,13 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;Opciones del instalador: opciones de red&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Es posible configurar la interfaz de red ahora. YaST2 detectará el hardware posteriormente. El conjunto de opciones mínimo para configurar la tarjeta de red incluye la IP del host y la máscara de red. Por ejemplo: &lt;ul&gt;&lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;en más corto: &lt;ul&gt;&lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Si se indica un &lt;a href=&quot;#o_install&quot;&gt;instalación basada en red&lt;/a&gt; pero no se especifican estas dos opciones, el instalador intentará configurar la interfaz de red con &lt;em&gt;DHCP&lt;/em&gt;. Si se necesita una pasarela (gateway) por defecto, establezca la opción &lt;em&gt;pasarela&lt;/em&gt;. Por ejemplo: &lt;ul&gt;&lt;li&gt;gateway=192.168.0.8&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallesmainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Opciones del kernel: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI (interfaz avanzada de configuración y energía) es un estándar que define las interfaces de gestión de la configuración y la energía entre un sistema operativo y la BIOS. Por defecto, &lt;em&gt;acpi&lt;/em&gt; se activa cuando se detecta que la BIOS es posterior al año 2000. Habitualmente, se utilizan varios parámetros para controlar el comportamiento de ACPI: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- no utiliza ACPI para asignar las interrupciones PCI&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- sólo permanecen activadas las partes de ACPI que son importantes para el arranque&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- desactiva ACPI por completo&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- activa ACPI incluso si la BIOS es anterior al año 2000&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Especialmente en equipos nuevos, sustituye al antiguo sistema &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallesmainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Opciones del kernel: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM es una de las dos estrategias de gestión de la energía que se utiliza en los equipos actuales. Se utiliza principalmente en portátiles para funciones como la suspensión a disco, pero también puede ser responsable de apagar el equipo cuando se corta la alimentación. APM se fundamenta en un funcionamiento correcto de la BIOS. Si la BIOS está dañada, puede que APM tenga un uso limitado, o que incluso impida que el equipo funcione. Por lo tanto, puede ser necesario desactivarlo con el parámetro &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- desactiva ACPI por completo&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Algunos equipos muy nuevos pueden aprovechar mejor el &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt; más reciente.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallesmainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Opciones del kernel: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;IDE, a diferencia de SCSI, se utiliza en la mayoría de las estaciones de trabajo de escritorio. Para evitar algunos problemas de hardware que se producen con los sistemas IDE, utilice el parámetro del kernel: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- desactiva DMA para las unidades IDE&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallesmainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;Opciones del instalador: instalar&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Por defecto, se busca el origen de la instalación en las unidades de CD-ROM locales. Para realizar una instalación desde la red, seleccione la opción &lt;em&gt;instalar&lt;/em&gt;. Los protocolos de instalación posibles son &lt;ul&gt;&lt;li&gt;FTP&lt;/li&gt;&lt;li&gt;NFS&lt;/li&gt;&lt;li&gt;HTTP&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Se debe utilizar la misma sintaxis que para las URL usuales. Por ejemplo, si el servidor se encuentra en 192.168.0.1 y desea efectuar una instalación basada en NFS desde el directorio /install de ese servidor, indique el origen de esta forma: &lt;ul&gt;&lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;La tarjeta de red se configurará con &lt;em&gt;DHCP&lt;/em&gt; o se deberán indicar los parámetros manualmente como se describe en la &lt;a href=&quot;#network&quot;&gt;opciones de red&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallesmainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Opciones del kernel: pantalla inicial&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;La pantalla inicial es la imagen que se muestra durante el inicio del sistema. &lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- La pantalla inicial se desactiva. Esto puede ser útil en monitores muy antiguos o si se produce algún error.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activa la pantalla inicial y se siguen mostrando los mensajes del kernel y de arranque.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activa la pantalla inicial, pero no los mensajes. En su lugar, se muestra una barra de progreso.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallesmainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;Opciones del instalador: vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Para habilitar la instalación con VNC, establezca los parámetros vnc y vncpassword: &lt;ul&gt;&lt;li&gt;&lt;em&gt;vnc=1 vncpassword=ejemplo&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;El servidor VNC se iniciará y será posible controlar YaST2 en cualquier cliente VNC desde un sistema remoto.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallesmainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;Sistema de rescate&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;Sistema de rescate&lt;/em&gt; es un pequeño sistema base en disco RAM que permite realizar cualquier tipo de cambio en un sistema instalado. Puesto que en este sistema sólo hay disponibles herramientas de bajo nivel, está dirigido a usuarios expertos.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallesmainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;Selección de modo de vídeo&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Pulse &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; para obtener la lista de los modos de vídeo que admite la tarjeta gráfica. Aparece pre seleccionado el modo más elevado que admite su monitor.&lt;/p&gt;
++
++&lt;p&gt;Es posible que su monitor no se detecte automáticamente. En ese caso, seleccione el modo que prefiera manualmente.&lt;/p&gt;
++
++&lt;p&gt;Si su sistema tiene problemas con la tarjeta gráfica durante la instalación, puede que &lt;em&gt;modo de texto&lt;/em&gt; sirva como solución.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallesnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/es/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Volver a &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalletmainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,103 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;Alglaadija abi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Welcome to &lt;em&gt;@@@product@@@&lt;/em&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this menu to select the desired function. If you have
++problems navigating in this help system, press
++&lt;em&gt;@@@fkey_help@@@&lt;/em&gt; to enter the &lt;a href=&quot;#help&quot;&gt;kirjeldus&lt;/a&gt; of the help
++system. The main functions in this menu are:
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#harddisk&quot;&gt;Alglaadimine kõvakettalt&lt;/a&gt;: This selection will not do
++anything to the system. It only starts a previously installed
++operating system.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#linux&quot;&gt;Paigaldamine&lt;/a&gt;:
++This installation mode works on most machines. If you experience a
++system freeze during boot or problems with detection of your hardware
++components, such as disk controllers or network cards, try one of the
++following installation options.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#noacpi&quot;&gt;Paigaldamine -- ACPI keelatud&lt;/a&gt;: Many of the
++currently-sold computers have incomplete or faulty ACPI
++implementations. This selection disables ACPI support in the
++kernel, but still enables many performance features, like DMA for IDE
++hard disks.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#nolapic&quot;&gt;Paigaldamine--lokaalne APIC keelatud&lt;/a&gt;:
++If the normal installation fails, this might be due to the
++system hardware not supporting local APIC.
++If this seems to be the case, use this option to
++install without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#failsafe&quot;&gt;Paigaldamine -- turvalised sätted&lt;/a&gt;: If you were not
++successful with &lt;em&gt;Paigaldamine&lt;/em&gt;, this selection might
++solve the issue.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#rescue&quot;&gt;Päästesüsteem&lt;/a&gt;: This boot image starts a small
++Linux system in RAM. This is useful if the system does not start properly.
++After booting this system, log in as root.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#firmware&quot;&gt;Püsivara test&lt;/a&gt;: Runs a BIOS test tool that validates
++ACPI and other parts of your BIOS.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#memtest&quot;&gt;Mälu testimine&lt;/a&gt;: Memory testing is useful for more than
++checking installation of new memory modules. It is a stress test
++for a big part of your computer system and may indicate hardware
++problems.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#opt&quot;&gt;Alglaadimise sätted&lt;/a&gt;: The boot options may change the
++behavior of your system completely. They are settings for
++the kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Help&lt;/a&gt;: This is context sensitive. It will
++show different screens depending on the active element of the
++boot screen. There is also a description of this help system
++available.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Set language and keyboard mapping
++used by the boot loader.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Video Mode&lt;/a&gt;: Here, choose between
++different screen resolutions while installing. If you encounter
++problems with the graphical installation, the &lt;em&gt;tekstirežiim&lt;/em&gt; may
++be a work-around for you.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Installation Source&lt;/a&gt;: Choose the
++installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Driver Update&lt;/a&gt;: For very new machines, a
++driver update may be needed to install the system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalletmainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;Tarkvara tüübi valimine&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++You have the choice to install the 32-bit or 64-bit version of @@@product@@@.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalletmaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;Draiverite uuendamine&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++If you need a driver update floppy or CD-ROM, press &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. The
++boot loader asks you to insert the driver update medium after
++loading the Linux kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++A driver update is typically a floppy with new versions of hardware
++drivers or bug fixes needed during installation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalletmainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,11 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;Paigaldamine -- turvalised sätted&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Paigaldamine -- turvalised sätted&lt;/em&gt; if you encounter hangs
++while installing or irreproducible errors. This option disables DMA
++for IDE drives and all power management features.
++See also the kernel options for &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;,
++&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; and &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalletmainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;Püsivara test&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Starts a BIOS checker that validates the ACPI tables
++and many other parts of your BIOS.
++Test results can be stored on usb disk or saved via network.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalletmainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,16 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;Alglaadimine kõvakettalt&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Laadi paigaldatud OS&lt;/em&gt; to start the system installed on
++your local hard disk. This system must be installed properly, because
++only the MBR (Master Boot Record) on the first hard disk is started.
++The device ID of the first hard disk is provided by the BIOS of
++the computer.
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this if you forgot to remove the CD or DVD from your
++drive and want to start the computer from the hard disk.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalletmainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Abisüsteemi kasutamine&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Nool üles&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Nool alla&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Nool vasakule&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Nool paremale&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Tühik&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;PgUp&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;PgDn&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;End&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalletmaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;Paigaldusallikas&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; to choose an installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++This is the same as using the &lt;a href=&quot;#o_install&quot;&gt;paigaldamine&lt;/a&gt;
++boot option.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalletmainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Keele ja klaviatuuri paigutuse valimine&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalletmainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;Paigaldamine&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Paigaldamine&lt;/em&gt; to start the default installation. The
++&lt;a href=&quot;#opt&quot;&gt;alglaadimise sätted&lt;/a&gt; entered are used in the
++start-up. This item activates many features of commonly available
++hardware.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalletmainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;Mälu testimine&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The included &lt;em&gt;Mälu testimine&lt;/em&gt; provides good possibilities to
++stress test the hardware of a system. Its main purpose is to detect
++broken RAM, but it also stresses many other parts of the system.
++&lt;/p&gt;
++
++&lt;p&gt;
++There is no guarantee that the memory is good if no errors are
++found, although most of memory defects will be found.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalletmainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,24 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;Paigaldamine -- ACPI keelatud&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Current hardware usually requires ACPI (Advanced Configuration and Power Interface)
++to control the interrupt handling.
++ACPI completely replaces the old APM system.
++&lt;/p&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Paigaldamine -- ACPI keelatud&lt;/em&gt; if you encounter
++problems during boot of the kernel. Known problems with machines that
++have problems with ACPI are:
++&lt;ul&gt;
++ &lt;li&gt;kernel freezes when booting&lt;/li&gt;
++ &lt;li&gt;PCI Cards are not detected or initialized properly&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++You may also try the &lt;a href=&quot;#firmware&quot;&gt;Püsivara test&lt;/a&gt; boot option
++and look at the test results of the ACPI validation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalletmainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;Paigaldamine--lokaalne APIC keelatud&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Normally there are no problems with the APIC (Advanced Programmable Interrupt
++Controller). But if you seem to have some, try this option to boot
++without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++Please don't confuse this with &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt;
++(Advanced Configuration and Power Interface).
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalletmainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,28 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Alglaadimise sätted&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++There are two types of boot options available. First, there are
++options that affect the installer. Second, there are kernel
++options. Some of the more common options are:
++&lt;/p&gt;
++
++&lt;p&gt;
++a) installer options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;paigaldamine&lt;/a&gt; -- select an installation source&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#network&quot;&gt;võrgusätted&lt;/a&gt; -- the network options&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;vnc sätted&lt;/a&gt; -- options for installation via VNC&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++b) kernel options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalletmainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;Paigaldussätted: võrgusätted&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++It is possible to configure the network interface right now. The
++hardware will be detected later by YaST2. The minimum set of options
++to configure your network card consists of host IP and netmask. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++or in a shorter form:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++If you specified a &lt;a href=&quot;#o_install&quot;&gt;võrgupõhine paigaldamine&lt;/a&gt; and do
++not specify both of these options, the installer tries to configure
++the network interface with &lt;em&gt;dhcp&lt;/em&gt;. If you need a default
++gateway, specify this with the option &lt;em&gt;lüüs&lt;/em&gt;. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;gateway=192.168.0.8&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalletmainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Kerneli sätted: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalletmainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Kerneli sätted: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalletmainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Kerneli sätted: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalletmainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,30 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;Paigaldussätted: install&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++By default, the local CD-ROMs are searched for the installation source.
++For a network install, select the
++&lt;em&gt;paigaldamine&lt;/em&gt; option. Possible installation protocols are
++&lt;ul&gt;
++ &lt;li&gt;FTP&lt;/li&gt;
++ &lt;li&gt;NFS&lt;/li&gt;
++ &lt;li&gt;HTTP&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The syntax to use is just like standard URLs. For example,
++if your server is found at 192.168.0.1 and you want to do an NFS-based
++install from the directory /install on this server, specify
++the source as follows:
++&lt;ul&gt;
++ &lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The network card will either be configured with &lt;em&gt;dhcp&lt;/em&gt; or you
++must specify the parameters yourself as described in the
++&lt;a href=&quot;#network&quot;&gt;võrgusätted&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalletmainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Kerneli sätted: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalletmainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;Paigaladussätted: vns&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++To enable the VNC installation, specify the
++parameters vnc and vncpassword:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;vnc=1 vncpassword=n2ide&lt;/em&gt;&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The VNC server will be started and you may control YaST2 over any VNC
++client from a remote system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalletmainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;Päästesüsteem&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The &lt;em&gt;Päästesüsteem&lt;/em&gt; is a small RAM disk base system. From there,
++it is possible to make all kinds of changes to an installed system. Because
++only low-level tools are available in this system, it is intended for
++experts.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalletmainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;Videorežiimi valimine&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; to get the list of video modes your graphics card
++supports. The highest mode your monitor can display is preselected.
++&lt;/p&gt;
++
++&lt;p&gt;
++It is possible that your monitor cannot be detected automatically. In that
++case, select your preferred mode manually.
++&lt;/p&gt;
++
++&lt;p&gt;
++If your system has problems with the graphics card during the
++installation, the &lt;em&gt;tekstirežiim&lt;/em&gt; may be a usable work-around.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalletnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/et/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Tagasi &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt; juurde&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfimainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;Käynnistyslataimen ohje&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;@@@product@@@&lt;/em&gt;: Tervetuloa&lt;/p&gt;
++
++&lt;p&gt;Valitse tästä valikosta haluttu toiminto. Jos ohjejärjestelmässä ilmenee ongelmia liikkumisessa, paina &lt;em&gt;@@@fkey_help@@@&lt;/em&gt; päästäksesi ohjejärjestelmän &lt;a href=&quot;#help&quot;&gt;kuvaus&lt;/a&gt;. Valikon päätoimintoja ovat:&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#harddisk&quot;&gt;Käynnistä kiintolevyltä&lt;/a&gt;: Tämä valinta ei tee mitään järjestelmälle. Se käynnistää aiemmin asennetun käyttöjärjestelmän.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#linux&quot;&gt;Asennus&lt;/a&gt;: Tämä asennustila toimii useimmissa koneissa. Jos järjestelmä pysähtyy käynnistyksen aikana tai laitteiston tunnistamisessa on ongelmia (levyohjaimet ja verkkokortit), kokeile jotakin seuraavista asennusvalinnoista.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#noacpi&quot;&gt;Asennus -- ACPI poissa käytöstä&lt;/a&gt;: Useissa myynnissä olevissa tietokoneissa on keskeneräinen tai virheellinen ACPI toteutus. Tämä valinta poistaa ACPI -tuen ytimestä, mutta käyttää silti useita suorituskykyä parantavia ominaisuuksia, kuten DMA:ta IDE -kiintolevyille.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#nolapic&quot;&gt;Asennus -- Paikallinen APIC pois käytöstä&lt;/a&gt;: Jos normaali asennus epäonnistuu, tämä voi johtua paikallisen APICin puutteellisesta tuesta järjestelmän laitteille. Jos näin on, käytä tätä valintaa suorittaaksesi asennuksen ilman paikallista APIC tukea.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#failsafe&quot;&gt;Asennus -- Turvalliset asetukset&lt;/a&gt;: Jos et onnistunut &lt;em&gt;Asennus&lt;/em&gt; kanssa, tämä valinta saattaa ratkaista asian.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#rescue&quot;&gt;Korjausjärjestelmä&lt;/a&gt;: Tämä käynnistyslevykuva käynnistää pienen Linux -järjestelmän RAM -muistiin. Se on käytännöllinen, jos järjestelmä ei käynnisty kunnolla. Järjestelmän käynnistyttyä kirjaudu sisään root-käyttäjänä.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#firmware&quot;&gt;Laiteohjelmiston testi&lt;/a&gt;: Suorittaa BIOS tarkistustyökalun joka vahvistaa ACPIn ja muita BIOSin osia.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#memtest&quot;&gt;Muistitesti&lt;/a&gt;: Muistitesti on käytännöllinen muutenkin kuin vain uusien muistimoduulien tarkistamisessa. Se on kestotesti suurelle osalle tietokonettasi ja voi osoittaa mahdolliset laiteongelmat.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#opt&quot;&gt;Käynnistysvalinnat&lt;/a&gt;: Käynnistysvalinnat voivat täydellisesti muuttaa järjestelmän käyttäytymistä. Ne ovat ytimen asetuksia.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Ohje&lt;/a&gt;: Tämä on kontekstiriippuvainen. Se näyttää eri asioita riippuen valitusta käynnistysnäytön kohdasta. Myös ohjejärjestelmän kuvaus on saatavilla.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Aseta käynnistyslataimen käyttämä kieli ja näppäimistökartta.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Videotila&lt;/a&gt;: Tässä valitset asennuksen aikana käytettävän näytönkoon. Jos kohtaat ongelmia graafisessa asennuksessa, &lt;em&gt;tekstitila&lt;/em&gt; voi olla toimiva vaihtoehto.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Asennuslähde&lt;/a&gt;: Valitse asennuslähde.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Ohjainpäivitys&lt;/a&gt;: Uusimmat tietokoneet voivat vaatia ajuripäivityksen, jotta järjestelmän voi asentaa.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfimainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;Ohjelmistotyypin valinta&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Voit valita asennatko 32-bittisen vai 64-bittisen @@@product@@@-version.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfimaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;Ohjainpäivitys&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Jos tarvitset ajurin päivitykseen levykkeen tai CD-ROM -levyn, paina &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. Käynnistyslatain pyytää syöttämään ajurin päivitystietovälineen Linux-ytimen lataamisen jälkeen.&lt;/p&gt;
++
++&lt;p&gt;Ajuripäivitys on yleensä levyke, jossa on uusin versio laiteajureista tai virhekorjaus, jota tarvitaan asennuksen aikana.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfimainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;Asennus -- Turvalliset asetukset&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Valitse &lt;em&gt;Asennus -- Turvalliset asetukset&lt;/em&gt; jos asennus pysähtelee tai esiintyy satunnaisia virheitä. Valinta poistaa käytöstä sekä DMA:n IDE -levyiltä, että kaikki virranhallinta toiminnot. Katso myös ytimen valinnat &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;, &lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; ja &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfimainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;Laiteohjelmiston testi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Käynnistää BIOS-tarkistuksen, joka vahvistaa ACPI-taulut ja monta muuta BIOSin osaa. Tarkistuksen voi tallentaa usb-muistille tai verkkoon.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfimainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;Käynnistä kiintolevyltä&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Valitse &lt;em&gt;Käynnistä asennettu käyttöjärjestelmä&lt;/em&gt; käynnistääksesi paikalliselle kiintolevylle asennetun käyttöjärjestelmän. Järjestelmän tulee olla oikein asennettu, koska vain MBR (Master Boot Record) ensimmäiseltä levyltä käynnistetään. Ensimmäisen kiintolevyn laite ID saadaan tietokoneen BIOS:lta.&lt;/p&gt;
++
++&lt;p&gt;Käytä tätä jos unohdit poistaa CD- tai DVD -levyn asemasta ja haluat käynnistää tietokoneen kiintolevyltä.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfimainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Ohjejärjestelmän käyttäminen&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Käynnistyslataimen ohje on kontekstiriippuvainen. Se antaa tietoja valitusta valikon kohdasta tai, jos muokkaat käynnistysvalintoja, se yrittää hakea tietoa valinnasta, jolla kursori on.&lt;/p&gt;
++
++&lt;p&gt;Ohjausnäppäimet &lt;ul&gt;&lt;li&gt;&lt;em&gt;Nuoli ylös&lt;/em&gt;: korosta aiempi linkki&lt;/li&gt;&lt;li&gt;&lt;em&gt;Nuoli alas&lt;/em&gt;: korosta seuraava linkki&lt;/li&gt;&lt;li&gt;&lt;em&gt;Nuoli vasemmalle&lt;/em&gt;, &lt;em&gt;Askelpalautin&lt;/em&gt;: palaa aiempaan ohjeeseen&lt;/li&gt;&lt;li&gt;&lt;em&gt;Nuoli oikealle&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Välilyönti&lt;/em&gt;: seuraa linkkiä&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: vierittää sivun ylöspäin&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: vierittää sivun alaspäin&lt;/li&gt;&lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: mene sivun alkuun&lt;/li&gt;&lt;li&gt;&lt;em&gt;End&lt;/em&gt;: mene sivun loppuun&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: sulje ohje&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfimaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;Asennuslähde&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Paina &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; valitaksesi asennuslähteen.&lt;/p&gt;
++
++&lt;p&gt;Tämä tarkoittaa samaa kuin &lt;a href=&quot;#o_install&quot;&gt;asenna&lt;/a&gt; käynnistysvalinnan käyttö.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfimainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Kieli ja näppäimistökartta -valinnat&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Paina &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; vaihtaaksesi käynnistyslataimen kieltä ja näppäimistökarttaa.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfimainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;Asennus&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Valitse&lt;em&gt;Asennus&lt;/em&gt; käynnistääksesi oletusasennuksen. &lt;a href=&quot;#opt&quot;&gt;käynnistysvalinnat&lt;/a&gt;:sta käytetään käynnistämiseen. Valinta ottaa käyttöön useita yleisesti käytettävien laitteiden ominaisuuksia.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfimainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;Muistitesti&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Mukana oleva &lt;em&gt;Muistitesti&lt;/em&gt; tarjoaa hyvän mahdollisuuden suorittaa kestotesti järjestelmän laitteille. Sen päätarkoitus on tunnistaa vioittunut RAM -muisti, mutta se rasittaa myös järjestelmän muita osia.&lt;/p&gt;
++
++&lt;p&gt;Ei ole taattua että muisti olisi kunnossa vaikka virheitä ei löytyisi, vaikka yleensä useimmat muistin viat löytyvät.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfimainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;Asennus -- ACPI poissa käytöstä&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Uusimmat laitteistot vaativat joskus ACPIn (Advanced Configuration and Power Interface) ohjaavan keskeytysten hallintaa. ACPI korvaa täysin vanhan APM-järjestelmän.&lt;/p&gt;
++
++&lt;p&gt;Valitse &lt;em&gt;Asennus -- ACPI poissa käytöstä&lt;/em&gt; jos kohtaat ongelmia ytimen käynnistyksen aikana. Tunnettuja ongelmia ACPI:ta käyttävissä koneissa ovat: &lt;ul&gt;&lt;li&gt;ydin pysähtyy käynnistettäessä&lt;/li&gt;&lt;li&gt;PCI -kortteja ei tunnistettu tai alustettu oikein&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Voit myös kokeilla &lt;a href=&quot;#firmware&quot;&gt;Laiteohjelmiston testi&lt;/a&gt; käynnistysvalintaa ja katsoa ACPI vahvistuksen tarkistustuloksen.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfimainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;Asennus -- Paikallinen APIC pois käytöstä&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Normaalisti APIC (Advanced Programmable Interrupt Controller) ei aiheuta ongelmia, mutta törmätessäsi ongelmiin käynnistä tietokone tällä valinnalla ilman paikallista APIC-tukea.&lt;/p&gt;
++
++&lt;p&gt;Älä sekoita tätä &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt;:iin (Advanced Configuration and Power Interface).&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfimainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Käynnistysvalinnat&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Voit valita kahden tyyppisiä käynnistysvalintoja: 1) Valinnat, jotka vaikuttavat asentimeen. 2) Ytimen valinnat. Yleisiä valintoja ovat:&lt;/p&gt;
++
++&lt;p&gt;a) Asentimen valinnat &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;asenna&lt;/a&gt; -- valitse asennuslähde&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#network&quot;&gt;verkon valinnat&lt;/a&gt; -- verkon valinnat&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;vnc valinnat&lt;/a&gt; -- valinnat VNC-asennusta varten&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;b) Ytimen valinnat &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- vaikuta splash-näytön käyttäytymiseen&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- vaihda virranhallinta päälle/pois&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- edistynyt määritys ja virranhallinta (ACPI)&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- ohjaa IDE alijärjestelmää&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfimainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,13 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;Asentimen valinnat: Verkon valinnat&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Verkkoliitäntä on mahdollista määrittää nyt. Laitteisto tunnistetaan myöhemmin YaST2 toimesta. Pakolliset valinnat verkon määrittämiseksi ovat IP-osoite ja aliverkon peite. Esim: &lt;ul&gt;&lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;tai lyhyemmässä muodossa: &lt;ul&gt;&lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Jos määritit &lt;a href=&quot;#o_install&quot;&gt;asennus verkosta&lt;/a&gt;:n etkä määritä molempia näistä valinnoista, asennusohjelma yrittää määrittää verkkoliitännän &lt;em&gt;dhcp&lt;/em&gt;:llä. Jos tarvitset oletusyhdyskäytävän, määritä se valinnalla &lt;em&gt;gateway&lt;/em&gt;. Esim: &lt;ul&gt;&lt;li&gt;gateway=192.168.0.8&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfimainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Ytimen valinnat: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI (Advanced Configuration and Power Interface) on standardi, joka määrittelee virran- ja laitteistohallinnan liittymän käyttöjärjestelmän ja BIOS välillä. Oletuksena &lt;em&gt;acpi&lt;/em&gt; otetaan käyttöön, jos BIOS on uudempi kuin vuodelta 2000. Muutamia yleisesti käytettyjä parametreja ACPI:n ohjaamiseksi ovat: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; - älä käytä ACPI:a ohjaamaan PCI keskeytyksiä&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; - vain ne osat ACPI:sta, jotka kuuluvat käynnistykseen jäävät käyttöön&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- poista ACPI käytöstä kokonaan&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- käyttää ACPI:a vaikka BIOS olisi päivätty ennen vuotta 2000&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Uusissa tietokoneissa tämä korvaa vanhan &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;-järjestelmän.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfimainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Ytimen valinnat: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM on toinen nykyisissä tietokoneissa käytettävistä virranhallinta strategioista. Sitä käytetään pääasiassa kannettavien tietokoneiden toiminnoissa kuten lepotila levylle, mutta se voi olla vastuussa myös tietokoneen sammuttamisesta. APM on riippuvainen toimivasta BIOS:sta. Jos BIOS on rikkinäinen, APM:llä voi olla vain rajoitettua käyttöä, tai se voi jopa estää tietokonetta toimimasta. Tämän takia APM voidaan poistaa käytöstä parametrilla &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- poista APM käytöstä kokonaan&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Uusimmat tietokoneet voivat hyötyä enemmän uudemmasta &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;:sta.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfimainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Ytimen valinnat: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;IDE, toisin kuin SCSI, on yleisesti käytetty useimmissa työasemissa. Ohittaaksesi joitakin IDE-järjestelmien laitteisto-ongelmia, käytä ytimen parametria: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- poista DMA käytöstä IDE-levyiltä&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfimainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;Asentimen valinnat: asenna&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Oletuksena asennuslähteiksi etsitään paikallisia CD-ROM-asemia. Verkkoasennusta varten valitse &lt;em&gt;asenna&lt;/em&gt;. Mahdollisia asennuskäytäntöjä ovat &lt;ul&gt;&lt;li&gt;FTP&lt;/li&gt;&lt;li&gt;NFS&lt;/li&gt;&lt;li&gt;HTTP&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Kirjoitusmuoto on kuten normaaleissa URL-osoitteissa. Esimerkiksi jos palvelin löytyy osoitteesta 192.168.0.1 ja haluat tehdä NFS-pohjaisen asennuksen palvelimen /install hakemistosta, määritä asennuslähde seuraavasti: &lt;ul&gt;&lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Verkkokortti määritetään joko &lt;em&gt;dhcp&lt;/em&gt;:llä, tai sinun pitää määrittää parametrit, kuten on kuvattu &lt;a href=&quot;#network&quot;&gt;verkon valinnat&lt;/a&gt; kohdassa.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfimainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Ytimen valinnat: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Splash-näyttö on kuva, joka näytetään järjestelmän käynnistyksen yhteydessä. &lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- Splash-näyttö ei ole käytössä. Tämä voi olla käytännöllistä todella vanhojen monitoreiden kanssa, tai jos virheitä ilmenee.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Ottaa käyttöön splash-näytön, ydin- ja käynnistysviestit näkyvät silti.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Ottaa käyttöön splash-näytön, mutta ei viestejä. Näiden sijasta käytetään etenemispalkki.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfimainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;Asentimen valinnat: vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Ottaaksesi käyttöön VNC-asennuksen, määritä parametrit vnc ja vncpassword: &lt;ul&gt;&lt;li&gt;&lt;em&gt;vnc=1 vncpassword=esimerkki&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;VNC-palvelin käynnistetään ja voit hallita YaST2:sta millä tahansa VNC -asiakasohjelmalla etäjärjestelmästä.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfimainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;Korjausjärjestelmä&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;Korjausjärjestelmä&lt;/em&gt; on pieni RAM-levypohjainen perusjärjestelmä. Sen kautta on mahdollista tehdä kaikenlaisia muutoksia asennettuun järjestelmään. Koska vain matalan tason työkalut ovat saatavilla, se on tarkoitettu asiantuntijoille.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfimainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;Videotilan valinta&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Paina &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; saadaksesi luettelon näytönohjaimesi tukemista näyttötiloista. Korkein tila, jota näyttösi voi käyttää on esivalittu.&lt;/p&gt;
++
++&lt;p&gt;On mahdollista että näyttöäsi ei voida tunnistaa automaattisesti. Tässä tapauksessa valitse haluamasi tila käsin.&lt;/p&gt;
++
++&lt;p&gt;Jos järjestelmälläsi on ongelmia näytönohjaimen kanssa asennuksen aikana, &lt;em&gt;tekstitila&lt;/em&gt; voi olla toimiva vaihtoehto.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfinavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fi/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Palaa &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfrmainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;Aide sur le chargeur d'amorçage&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Bienvenue sur &lt;em&gt;@@@product@@@&lt;/em&gt;&lt;/p&gt;
++
++&lt;p&gt;Utilisez ce menu pour sélectionner la fonction désirée. Si vous rencontrez des problèmes de navigation dans ce système d'aide, appuyez sur &lt;em&gt;@@@fkey_help@@@&lt;/em&gt; pour entrer dans la &lt;a href=&quot;#help&quot;&gt;description&lt;/a&gt; du système d'aide. Les fonctions principales du menu sont :&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#harddisk&quot;&gt;Amorcer depuis le disque dur&lt;/a&gt; : cette opération n'agit pas sur le système. Elle permet seulement de démarrer un système d'exploitation installé précédemment.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#linux&quot;&gt;Installation&lt;/a&gt; : ce mode d'installation fonctionne sur la plupart des machines. Si vous rencontrez un gel du système lors de l'amorçage ou des problèmes de reconnaissance des composants matériels tels que les contrôleurs de disque ou cartes réseau, essayez l'une des options d'installation suivantes.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#noacpi&quot;&gt;Installation -- ACPI désactivé&lt;/a&gt; : en général, les ordinateurs vendus actuellement ont des implémentations ACPI incomplètes ou défectueuses. Pour désactiver la prise en charge ACPI dans le kernel, utilisez la présente option. Celle-ci laisse toutefois actives de nombreuses fonctions de performances, notamment DMA pour les disques durs IDE.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#nolapic&quot;&gt;Installation - APIC local désactivé&lt;/a&gt; : Si l'installation normale échoue, cela peut être dû au fait que le matériel ne prend pas en charge l'APIC locale. Dans ce cas, utilisez cette option pour procéder à l'installation sans la prise en charge l'APIC locale.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#failsafe&quot;&gt;Installation -- Paramètres sécurisés&lt;/a&gt; : en cas d'échec avec &lt;em&gt;Installation&lt;/em&gt;, cette option peut résoudre votre problème.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#rescue&quot;&gt;Système de secours&lt;/a&gt; : cette image d'amorçage démarre un petit système Linux en RAM. Cela est utile si le système ne démarre pas correctement. Une fois ce système amorcé, connectez-vous en tant que super-utilisateur (root).&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#firmware&quot;&gt;Test de microprogramme&lt;/a&gt; : Lance un outil de test du BIOS qui valide l'ACPI et d'autres parties de votre BIOS.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#memtest&quot;&gt;Test de mémoire&lt;/a&gt; : le test de mémoire n'est pas uniquement utile à la vérification de l'installation des nouveaux modules de mémoire. C'est un test pour une grande partie de votre système et peut révéler des problèmes matériels.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#opt&quot;&gt;Options d'amorçage&lt;/a&gt; : les options d'amorçage peuvent changer complètement le fonctionnement de votre système. Elles correspondent aux paramètres du kernel.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Aide&lt;/a&gt; : cette aide est contextuelle. Elle affichera différents écrans selon l'élément actif de l'écran d'amorçage. Une description de ce système d'aide est également disponible.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt; : cette fonction permet de définir la langue et la disposition du clavier utilisées par le chargeur d'amorçage.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Mode Video&lt;/a&gt; : cette fonction permet de choisir entre différentes résolutions d'écran lors de l'installation. Si vous rencontrez des problèmes avec l'installation graphique, le &lt;em&gt;Mode texte&lt;/em&gt; peut vous permettre de contourner le problème.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Source d'installation&lt;/a&gt; : cette fonction permet de choisir la source d'installation.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Mise à jour de pilote&lt;/a&gt; : pour les machines très récentes, une mise à jour de pilotes peut être nécessaire pour installer le système.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfrmainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;Sélection du type de logiciel&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Vous pouvez installer la version 32 ou 64 bits de @@@product@@@.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfrmaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;Mise à jour de pilotes&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Si vous nécessitez une disquette ou un CD de mise à jour des pilotes, appuyez sur &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. Le chargeur d'amorçage vous demandera d'insérer le support de mise à jour de pilotes après le chargement du noyau Linux.&lt;/p&gt;
++
++&lt;p&gt;En général, une mise à jour de pilotes est une disquette contenant la nouvelle version de pilotes matériels ou les corrections de bogues nécessaires à l'installation.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfrmainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;Installation -- Paramètres sécurisés&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Sélectionnez &lt;em&gt;Installation -- Paramètres sécurisés&lt;/em&gt; si votre système reste bloqué lors de l'installation ou si des erreurs non re-productibles se produisent. Cette option désactive DMA pour les unités IDE et toutes les fonctions de gestion de l'alimentation. Reportez-vous également aux options de noyau de &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;, &lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; et &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfrmainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;Test de microprogramme&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Démarre un vérificateur de BIOS qui valide les tables ACPI et un grand nombre d'autres parties de votre BIOS. Les résultats de test peuvent être stockés sur un disque usb ou enregistrées sur le réseau. &lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfrmainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;Amorcer depuis le disque dur&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Sélectionnez &lt;em&gt;Amorcer le système installé&lt;/em&gt; pour démarrer le système installé sur votre disque dur local. Ce système doit être installé correctement parce que seul le MBR (Master Boot Record - secteur d'amorçage principal) du premier disque dur est démarré. L'ID matériel du premier disque dur est fourni par le BIOS de l'ordinateur. &lt;/p&gt;
++
++&lt;p&gt;Utilisez ce moyen si vous avez oublié de retirer le CD ou le DVD du lecteur et si vous voulez démarrer l'ordinateur depuis le disque dur.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfrmainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Utilisation du système d'aide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;L'aide en ligne du chargeur d'amorçage est contextuelle. Elle fournit des informations sur l'élément du menu sélectionné. Lors de la modification de la configuration d'amorçage, elle recherche des informations sur l'option indiquée par l'emplacement du curseur.&lt;/p&gt;
++
++&lt;p&gt;Touches de navigation &lt;ul&gt;&lt;li&gt;&lt;em&gt;Flèche haut&lt;/em&gt; : mettre en sur-brillance le lien précédent&lt;/li&gt;&lt;li&gt;&lt;em&gt;Flèche bas&lt;/em&gt; : mettre en sur-brillance le lien suivant&lt;/li&gt;&lt;li&gt;&lt;em&gt;Flèche gauche&lt;/em&gt;, &lt;em&gt;Retour arrière&lt;/em&gt; : retour à la rubrique précédente&lt;/li&gt;&lt;li&gt;&lt;em&gt;Flèche droite&lt;/em&gt;, &lt;em&gt;Entrée&lt;/em&gt;, &lt;em&gt;Espace&lt;/em&gt; : suivre le lien&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page haut&lt;/em&gt; : faire défiler une page vers le haut&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page bas&lt;/em&gt; : faire défiler une page vers le bas&lt;/li&gt;&lt;li&gt;&lt;em&gt;Domicile&lt;/em&gt; : aller au début de la page&lt;/li&gt;&lt;li&gt;&lt;em&gt;Fin&lt;/em&gt; : aller à la fin de la page&lt;/li&gt;&lt;li&gt;&lt;em&gt;Échap&lt;/em&gt; : quitter l'aide&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfrmaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;Source d'installation&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Appuyez &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; pour choisir une source d'installation&lt;/p&gt;
++
++&lt;p&gt;Cette opération revient au même que d'utiliser l'option d'amorçage &lt;a href=&quot;#o_install&quot;&gt;install&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfrmainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Sélection de la langue et de la disposition du clavier&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Appuyez sur &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; pour changer la langue et la disposition du clavier utilisées par le chargeur d'amorçage.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfrmainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;Installation&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Sélectionnez &lt;em&gt;Installation&lt;/em&gt; pour démarrer l'installation par défaut. Les &lt;a href=&quot;#opt&quot;&gt;Options d'amorçage&lt;/a&gt; entrées sont utilisées lors du démarrage. Cet élément active de nombreuses fonctions du matériel couramment disponible.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfrmainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;Test de mémoire&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Le &lt;em&gt;Test de mémoire&lt;/em&gt; inclus fournit de bonnes possibilités de procéder à des tests de contraintes du matériel. Il vise principalement à détecter des RAM défectueuses mais il teste également beaucoup d'autres parties du système.&lt;/p&gt;
++
++&lt;p&gt;Il n'y a aucune garantie que la mémoire est bonne si aucune erreur n'est trouvée, bien que la plupart des défauts de la mémoire soient détectés.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfrmainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;Installation -- ACPI désactivé&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Les matériels actuels nécessitent généralement l'ACPI (Advanced Configuration and Power Interface) pour gérer les interruptions. L'ACPI remplace totalement l'ancien système APM.&lt;/p&gt;
++
++&lt;p&gt;Sélectionnez &lt;em&gt;Installation -- ACPI désactivé&lt;/em&gt; si vous rencontrez des problèmes lors de l'amorçage du noyau. Les problèmes connus avec ACPI sont : &lt;ul&gt;&lt;li&gt;gels du noyau lors de l'amorçage&lt;/li&gt;&lt;li&gt;Les cartes PCI ne sont pas détectées ou initialisées correctement&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Vous pouvez aussi essayer l'option d'amorçage &lt;a href=&quot;#firmware&quot;&gt;Test de microprogramme&lt;/a&gt; et regarder les résultats de la validation ACPI.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfrmainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;Installation - APIC local désactivé&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Normalement, il n'existe pas de problème avec l'APIC (Advanced Programmable Interrupt Controller). Par contre, s'il vous semble que vous en rencontrez un, essayez cette option pour procéder à l'amorçage sans la prise en charge APIC locale.&lt;/p&gt;
++
++&lt;p&gt;Merci de ne pas confondre avec &lt;a href=&quot;#noacpi&quot;&gt;acpi&lt;/a&gt; (Advanced Configuration and Power Interface).&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfrmainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Options d'amorçage&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Il y a deux types d'options d'amorçage disponibles. Celles qui agissent sur l'installateur et celles du noyau. Les plus courantes sont notamment les suivantes :&lt;/p&gt;
++
++&lt;p&gt;a) Options du programme d'installation &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;install&lt;/a&gt; -- sélectionne une source d'installation&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#network&quot;&gt;options réseau&lt;/a&gt; -- les options réseau&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;options VNC&lt;/a&gt; -- les options d'installation via VNC&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;b) Options du noyau &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- détermine le fonctionnement de l'écran de démarrage&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- active ou non la fonction de gestion de l'alimentation&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- configuration avancée et interface de gestion de l'alimentation&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- contrôle le sous-système IDE&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfrmainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,13 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;Options du programme d'installation : options réseau&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Il est possible de configurer l'interface réseau dès maintenant. Le matériel sera détecté ultérieurement par YaST2. Le jeu minimum d'options pour configurer votre carte réseau consiste en l'IP d'hôte et le masque réseau. Par exemple :&lt;ul&gt;&lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;ou dans une forme plus courte : &lt;ul&gt;&lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Si vous spécifiez une &lt;a href=&quot;#o_install&quot;&gt;installation basée réseau&lt;/a&gt; et ne définissez aucune de ces deux options, le programme d'installation essaie de configurer l'interface réseau avec &lt;em&gt;DHCP&lt;/em&gt;. Si vous nécessitez une passerelle par défaut, spécifiez-le avec l'option &lt;em&gt;Passerelle&lt;/em&gt;. Par exemple : &lt;ul&gt;&lt;li&gt;gateway=192.168.0.8&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfrmainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Options de kernel : acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Le standard ACPI (Advanced Configuration and Power Interface) définit les interfaces de gestion d'alimentation et de configuration entre un système d'exploitation et le BIOS. Par défaut, &lt;em&gt;acpi&lt;/em&gt; est activé lorsqu'un BIOS ultérieur à l'année 2000 est détecté. Il existe plusieurs paramètres utilisés couramment pour contrôler le fonctionnement de ACPI : ul&amp;gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- ne pas utiliser ACPI pour router les interruptions PCI&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- seules les parties de ACPI en rapport avec l'amorçage restent activées&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- désactiver complètement ACPI&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- activer ACPI même si votre BIOS est antérieur à 2000&lt;/li&gt;&lt;/p&gt;
++
++&lt;p&gt;Le remplacement de l'ancien système &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; s'applique notamment aux nouveaux ordinateurs.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfrmainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Options de kernel : apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM est l'une des deux stratégies de gestion de l'alimentation des ordinateurs actuels. Elle est utilisée principalement sur les ordinateurs portables pour des fonctions telles que la mise en veille sur disque. Par ailleurs, elle peut désactiver l'ordinateur après sa mise hors tension. APM dépend du fonctionnement correct du BIOS. Si le BIOS est défectueux, APM peut être d'une utilité limitée ou même empêcher l'ordinateur de fonctionner. Dans ces cas, elle peut être désactivée à l'aide du paramètre &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- désactiver complètement APM&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Certains ordinateurs très récent pourront tirer un plus grand avantage en utilisant le nouveau &lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfrmainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Options de kernel : ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;À la différence de SCSI, IDE est couramment utilisé sur la plupart des postes de travail de bureau. Pour contourner certains problèmes matériels des systèmes IDE, utilisez le paramètre de noyau suivant : &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- désactiver le DMA pour les lecteurs IDE&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfrmainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;Options du programme d'installation : install&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Par défaut, la source d'installation est recherchée dans les CD-ROM locaux. Pour une installation réseau, sélectionnez l'option &lt;em&gt;install&lt;/em&gt;. Les protocoles d'installation possibles sont &lt;ul&gt;&lt;li&gt;FTP&lt;/li&gt;&lt;li&gt;NFS&lt;/li&gt;&lt;li&gt;HTTP&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;La syntaxe à utiliser est simplement comme celle des URL standard. Par exemple, si votre serveur se trouve à l'adresse 192.168.0.1 et si vous voulez procéder à une installation basée NFS depuis le répertoire /install de ce serveur, spécifiez la source comme suit :&lt;ul&gt;&lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;La carte réseau sera configurée avec &lt;em&gt;DHCP&lt;/em&gt; ou vous devrez spécifier les paramètres vous-même conformément à la description &lt;a href=&quot;#network&quot;&gt;options réseau&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfrmainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Options de kernel : splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;L'écran de démarrage est l'image affichée durant l'amorçage du système.&lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- L'écran de démarrage est désactivé. Ça peut être utile avec des moniteurs très anciens ou si certaines erreurs surviennent.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Active l'écran de démarrage sans faire disparaître les messages du noyau et d'amorçage.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Active l'écran de démarrage sans les messages. À la place, une barre de progression est représentée.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfrmainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;Options du programme d'installation : vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Pour activer l'installation VNC, spécifiez les paramètres vnc et vncpassword :&lt;ul&gt;&lt;li&gt;&lt;em&gt;vnc=1 vncpassword=example&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Le serveur VNC sera démarré et vous pourrez contrôler YaST2 sur tout client VNC depuis un système distant.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfrmainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;Système de secours&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Le &lt;em&gt;Système de secours&lt;/em&gt; est un petit système de base sur RAM. Depuis ce système, il est possible de procéder à tous les types de changements sur un système installé. Étant donné que ce système ne dispose que d'outils de bas niveau, il est réservé aux experts.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfrmainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;Sélection du mode vidéo&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Appuyez sur &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; pour obtenir la liste des modes vidéo pris en charge par votre carte graphique. Le mode d'affichage maximum de votre moniteur est pré sélectionné.&lt;/p&gt;
++
++&lt;p&gt;Il est possible que votre moniteur ne soit pas détecté automatiquement. Dans ce cas, sélectionnez votre mode préféré manuellement.&lt;/p&gt;
++
++&lt;p&gt;Si votre système rencontre des problèmes avec la carte graphique lors de l'installation, le &lt;em&gt;Mode texte&lt;/em&gt; peut vous permettre de contourner le problème.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallfrnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/fr/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Retour à la rubrique &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallglmainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,103 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;Axuda do Cargador de Arrinque&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Welcome to &lt;em&gt;@@@product@@@&lt;/em&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this menu to select the desired function. If you have
++problems navigating in this help system, press
++&lt;em&gt;@@@fkey_help@@@&lt;/em&gt; to enter the &lt;a href=&quot;#help&quot;&gt;descrición&lt;/a&gt; of the help
++system. The main functions in this menu are:
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#harddisk&quot;&gt;Arrincar dende o Disco Duro&lt;/a&gt;: This selection will not do
++anything to the system. It only starts a previously installed
++operating system.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#linux&quot;&gt;Instalación&lt;/a&gt;:
++This installation mode works on most machines. If you experience a
++system freeze during boot or problems with detection of your hardware
++components, such as disk controllers or network cards, try one of the
++following installation options.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#noacpi&quot;&gt;Instalación -- ACPI Deshabilitado&lt;/a&gt;: Many of the
++currently-sold computers have incomplete or faulty ACPI
++implementations. This selection disables ACPI support in the
++kernel, but still enables many performance features, like DMA for IDE
++hard disks.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#nolapic&quot;&gt;Instalación -- APIC Local Deshabilitado&lt;/a&gt;:
++If the normal installation fails, this might be due to the
++system hardware not supporting local APIC.
++If this seems to be the case, use this option to
++install without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#failsafe&quot;&gt;Instalación -- Opcións Seguras&lt;/a&gt;: If you were not
++successful with &lt;em&gt;Instalación&lt;/em&gt;, this selection might
++solve the issue.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#rescue&quot;&gt;Rescatar Sistema&lt;/a&gt;: This boot image starts a small
++Linux system in RAM. This is useful if the system does not start properly.
++After booting this system, log in as root.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#firmware&quot;&gt;Proba de Firmware&lt;/a&gt;: Runs a BIOS test tool that validates
++ACPI and other parts of your BIOS.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#memtest&quot;&gt;Proba de Memoria&lt;/a&gt;: Memory testing is useful for more than
++checking installation of new memory modules. It is a stress test
++for a big part of your computer system and may indicate hardware
++problems.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#opt&quot;&gt;Opcións de Arrinque&lt;/a&gt;: The boot options may change the
++behavior of your system completely. They are settings for
++the kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Help&lt;/a&gt;: This is context sensitive. It will
++show different screens depending on the active element of the
++boot screen. There is also a description of this help system
++available.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Set language and keyboard mapping
++used by the boot loader.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Video Mode&lt;/a&gt;: Here, choose between
++different screen resolutions while installing. If you encounter
++problems with the graphical installation, the &lt;em&gt;modo texto&lt;/em&gt; may
++be a work-around for you.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Installation Source&lt;/a&gt;: Choose the
++installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Driver Update&lt;/a&gt;: For very new machines, a
++driver update may be needed to install the system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallglmainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;Selección de Tipo de Software&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++You have the choice to install the 32-bit or 64-bit version of @@@product@@@.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallglmaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;Actualización de Driver&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++If you need a driver update floppy or CD-ROM, press &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. The
++boot loader asks you to insert the driver update medium after
++loading the Linux kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++A driver update is typically a floppy with new versions of hardware
++drivers or bug fixes needed during installation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallglmainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,11 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;Instalación -- Opcións Seguras&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Instalación -- Opcións Seguras&lt;/em&gt; if you encounter hangs
++while installing or irreproducible errors. This option disables DMA
++for IDE drives and all power management features.
++See also the kernel options for &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;,
++&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; and &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallglmainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;Proba de Firmware&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Starts a BIOS checker that validates the ACPI tables
++and many other parts of your BIOS.
++Test results can be stored on usb disk or saved via network.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallglmainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,16 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;Arrincar dende o Disco Duro&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Arrincar SO Instalado&lt;/em&gt; to start the system installed on
++your local hard disk. This system must be installed properly, because
++only the MBR (Master Boot Record) on the first hard disk is started.
++The device ID of the first hard disk is provided by the BIOS of
++the computer.
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this if you forgot to remove the CD or DVD from your
++drive and want to start the computer from the hard disk.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallglmainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Usando o Sistema de Axuda&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Frecha Arriba&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Frecha Abaixo&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Frecha Esquerda&lt;/em&gt;, &lt;em&gt;Retroceso&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Frecha Dereita&lt;/em&gt;, &lt;em&gt;Intro&lt;/em&gt;, &lt;em&gt;Espazo&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Re Páx&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Av Páx&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Inicio&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Fin&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallglmaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;Fonte de Instalación&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; to choose an installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++This is the same as using the &lt;a href=&quot;#o_install&quot;&gt;install&lt;/a&gt;
++boot option.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallglmainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Selección de Lingua e Disposición de Teclado&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallglmainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;Instalación&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Instalación&lt;/em&gt; to start the default installation. The
++&lt;a href=&quot;#opt&quot;&gt;opcións de arrinque&lt;/a&gt; entered are used in the
++start-up. This item activates many features of commonly available
++hardware.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallglmainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;Proba de Memoria&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The included &lt;em&gt;Proba de Memoria&lt;/em&gt; provides good possibilities to
++stress test the hardware of a system. Its main purpose is to detect
++broken RAM, but it also stresses many other parts of the system.
++&lt;/p&gt;
++
++&lt;p&gt;
++There is no guarantee that the memory is good if no errors are
++found, although most of memory defects will be found.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallglmainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,24 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;Instalación -- ACPI Deshabilitado&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Current hardware usually requires ACPI (Advanced Configuration and Power Interface)
++to control the interrupt handling.
++ACPI completely replaces the old APM system.
++&lt;/p&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Instalación -- ACPI Deshabilitado&lt;/em&gt; if you encounter
++problems during boot of the kernel. Known problems with machines that
++have problems with ACPI are:
++&lt;ul&gt;
++ &lt;li&gt;kernel freezes when booting&lt;/li&gt;
++ &lt;li&gt;PCI Cards are not detected or initialized properly&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++You may also try the &lt;a href=&quot;#firmware&quot;&gt;Proba de Firmware&lt;/a&gt; boot option
++and look at the test results of the ACPI validation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallglmainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;Instalación -- APIC Local Deshabilitado&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Normally there are no problems with the APIC (Advanced Programmable Interrupt
++Controller). But if you seem to have some, try this option to boot
++without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++Please don't confuse this with &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt;
++(Advanced Configuration and Power Interface).
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallglmainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,28 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Opcións de Arrinque&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++There are two types of boot options available. First, there are
++options that affect the installer. Second, there are kernel
++options. Some of the more common options are:
++&lt;/p&gt;
++
++&lt;p&gt;
++a) installer options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;install&lt;/a&gt; -- select an installation source&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#network&quot;&gt;opcións de rede&lt;/a&gt; -- the network options&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;opcións vnc&lt;/a&gt; -- options for installation via VNC&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++b) kernel options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallglmainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;Opcións do Instalador: Opcións de Rede&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++It is possible to configure the network interface right now. The
++hardware will be detected later by YaST2. The minimum set of options
++to configure your network card consists of host IP and netmask. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++or in a shorter form:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++If you specified a &lt;a href=&quot;#o_install&quot;&gt;instalación por rede&lt;/a&gt; and do
++not specify both of these options, the installer tries to configure
++the network interface with &lt;em&gt;dhcp&lt;/em&gt;. If you need a default
++gateway, specify this with the option &lt;em&gt;gateway&lt;/em&gt;. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;gateway=192.168.0.8&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallglmainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Opcións do Kernel: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallglmainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Opcións do Kernel: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallglmainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Opcións do Kernel: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallglmainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,30 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;Opcións do Instalador: install&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++By default, the local CD-ROMs are searched for the installation source.
++For a network install, select the
++&lt;em&gt;install&lt;/em&gt; option. Possible installation protocols are
++&lt;ul&gt;
++ &lt;li&gt;FTP&lt;/li&gt;
++ &lt;li&gt;NFS&lt;/li&gt;
++ &lt;li&gt;HTTP&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The syntax to use is just like standard URLs. For example,
++if your server is found at 192.168.0.1 and you want to do an NFS-based
++install from the directory /install on this server, specify
++the source as follows:
++&lt;ul&gt;
++ &lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The network card will either be configured with &lt;em&gt;dhcp&lt;/em&gt; or you
++must specify the parameters yourself as described in the
++&lt;a href=&quot;#network&quot;&gt;opcións de rede&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallglmainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Opcións do Kernel: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallglmainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;Opcións do Instalador: vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++To enable the VNC installation, specify the
++parameters vnc and vncpassword:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;vnc=1 vncpassword=exemplo&lt;/em&gt;&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The VNC server will be started and you may control YaST2 over any VNC
++client from a remote system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallglmainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;Rescatar Sistema&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The &lt;em&gt;Rescatar Sistema&lt;/em&gt; is a small RAM disk base system. From there,
++it is possible to make all kinds of changes to an installed system. Because
++only low-level tools are available in this system, it is intended for
++experts.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallglmainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;Selección de Modo de Vídeo&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; to get the list of video modes your graphics card
++supports. The highest mode your monitor can display is preselected.
++&lt;/p&gt;
++
++&lt;p&gt;
++It is possible that your monitor cannot be detected automatically. In that
++case, select your preferred mode manually.
++&lt;/p&gt;
++
++&lt;p&gt;
++If your system has problems with the graphics card during the
++installation, the &lt;em&gt;modo texto&lt;/em&gt; may be a usable work-around.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallglnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gl/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,3 @@
++&lt;p&gt;
++Return to &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallgumainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,103 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;બુટ લોડર મદદ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Welcome to &lt;em&gt;@@@product@@@&lt;/em&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this menu to select the desired function. If you have
++problems navigating in this help system, press
++&lt;em&gt;@@@fkey_help@@@&lt;/em&gt; to enter the &lt;a href=&quot;#help&quot;&gt;વર્ણન&lt;/a&gt; of the help
++system. The main functions in this menu are:
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#harddisk&quot;&gt;હાર્ડ ડિસ્ક પરથી બુટ&lt;/a&gt;: This selection will not do
++anything to the system. It only starts a previously installed
++operating system.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#linux&quot;&gt;ઈન્સ્ટોલેશન&lt;/a&gt;:
++This installation mode works on most machines. If you experience a
++system freeze during boot or problems with detection of your hardware
++components, such as disk controllers or network cards, try one of the
++following installation options.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#noacpi&quot;&gt;ઈન્સ્ટોલેશન -- ACPI ડિસેબલ્ડ&lt;/a&gt;: Many of the
++currently-sold computers have incomplete or faulty ACPI
++implementations. This selection disables ACPI support in the
++kernel, but still enables many performance features, like DMA for IDE
++hard disks.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#nolapic&quot;&gt;ઈન્સ્ટોલેશન -- Local APIC ડિસેબલ્ડ&lt;/a&gt;:
++If the normal installation fails, this might be due to the
++system hardware not supporting local APIC.
++If this seems to be the case, use this option to
++install without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#failsafe&quot;&gt;ઈન્સ્ટોલેશન -- સલામતીભર્યા સેટિન્ગસ&lt;/a&gt;: If you were not
++successful with &lt;em&gt;ઈન્સ્ટોલેશન&lt;/em&gt;, this selection might
++solve the issue.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#rescue&quot;&gt;રેસ્ક્યુ સિસ્ટમ&lt;/a&gt;: This boot image starts a small
++Linux system in RAM. This is useful if the system does not start properly.
++After booting this system, log in as root.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#firmware&quot;&gt;ફર્મવેર ટેસ્ટ&lt;/a&gt;: Runs a BIOS test tool that validates
++ACPI and other parts of your BIOS.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#memtest&quot;&gt;મેમરી ટેસ્ટ&lt;/a&gt;: Memory testing is useful for more than
++checking installation of new memory modules. It is a stress test
++for a big part of your computer system and may indicate hardware
++problems.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#opt&quot;&gt;બુટ વિકલ્પો&lt;/a&gt;: The boot options may change the
++behavior of your system completely. They are settings for
++the kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Help&lt;/a&gt;: This is context sensitive. It will
++show different screens depending on the active element of the
++boot screen. There is also a description of this help system
++available.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Set language and keyboard mapping
++used by the boot loader.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Video Mode&lt;/a&gt;: Here, choose between
++different screen resolutions while installing. If you encounter
++problems with the graphical installation, the &lt;em&gt;ટેક્સ્ટ મોડ&lt;/em&gt; may
++be a work-around for you.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Installation Source&lt;/a&gt;: Choose the
++installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Driver Update&lt;/a&gt;: For very new machines, a
++driver update may be needed to install the system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallgumainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;સોફ્ટવેર પ્રકારની પસંદગી&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++You have the choice to install the 32-bit or 64-bit version of @@@product@@@.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallgumaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;ડ્રાયવર અપડેટ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++If you need a driver update floppy or CD-ROM, press &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. The
++boot loader asks you to insert the driver update medium after
++loading the Linux kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++A driver update is typically a floppy with new versions of hardware
++drivers or bug fixes needed during installation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallgumainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,11 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;ઈન્સ્ટોલેશન -- સલામતીભર્યા સેટિન્ગસ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;ઈન્સ્ટોલેશન -- સલામતીભર્યા સેટિન્ગસ&lt;/em&gt; if you encounter hangs
++while installing or irreproducible errors. This option disables DMA
++for IDE drives and all power management features.
++See also the kernel options for &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;,
++&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; and &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallgumainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;ફર્મવેર ટેસ્ટ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Starts a BIOS checker that validates the ACPI tables
++and many other parts of your BIOS.
++Test results can be stored on usb disk or saved via network.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallgumainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,16 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;હાર્ડ ડિસ્ક પરથી બુટ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;બુટ ઈન્સ્ટોલ્ડ OS&lt;/em&gt; to start the system installed on
++your local hard disk. This system must be installed properly, because
++only the MBR (Master Boot Record) on the first hard disk is started.
++The device ID of the first hard disk is provided by the BIOS of
++the computer.
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this if you forgot to remove the CD or DVD from your
++drive and want to start the computer from the hard disk.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallgumainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;મદદ સિસ્ટમ વાપરવી&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ઉપર જતું તીર&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;નીચે જતું તીર&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;ડાબે જતું તીર&lt;/em&gt;, &lt;em&gt;બેકસ્પેસ&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;જમણે જતું તીર&lt;/em&gt;, &lt;em&gt;એન્ટર&lt;/em&gt;, &lt;em&gt;સ્પેસ&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;ઉપર નું પૃષ્ઠ&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;નીચે નું પૃષ્ઠ&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;ઘર&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;છેડે&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;એસ્કેપ&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallgumaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;ઈન્સ્ટોલેશન સોર્સ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; to choose an installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++This is the same as using the &lt;a href=&quot;#o_install&quot;&gt;ઈન્સ્ટોલ&lt;/a&gt;
++boot option.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallgumainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;ભાષા અને કીબોર્ડ લેઆઉટ પસંદગી&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallgumainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;ઈન્સ્ટોલેશન&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;ઈન્સ્ટોલેશન&lt;/em&gt; to start the default installation. The
++&lt;a href=&quot;#opt&quot;&gt;બુટ વિકલ્પો&lt;/a&gt; entered are used in the
++start-up. This item activates many features of commonly available
++hardware.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallgumainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;મેમરી ટેસ્ટ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The included &lt;em&gt;મેમરી ટેસ્ટ&lt;/em&gt; provides good possibilities to
++stress test the hardware of a system. Its main purpose is to detect
++broken RAM, but it also stresses many other parts of the system.
++&lt;/p&gt;
++
++&lt;p&gt;
++There is no guarantee that the memory is good if no errors are
++found, although most of memory defects will be found.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallgumainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,24 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;ઈન્સ્ટોલેશન -- ACPI ડિસેબલ્ડ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Current hardware usually requires ACPI (Advanced Configuration and Power Interface)
++to control the interrupt handling.
++ACPI completely replaces the old APM system.
++&lt;/p&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;ઈન્સ્ટોલેશન -- ACPI ડિસેબલ્ડ&lt;/em&gt; if you encounter
++problems during boot of the kernel. Known problems with machines that
++have problems with ACPI are:
++&lt;ul&gt;
++ &lt;li&gt;kernel freezes when booting&lt;/li&gt;
++ &lt;li&gt;PCI Cards are not detected or initialized properly&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++You may also try the &lt;a href=&quot;#firmware&quot;&gt;ફર્મવેર ટેસ્ટ&lt;/a&gt; boot option
++and look at the test results of the ACPI validation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallgumainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;ઈન્સ્ટોલેશન -- Local APIC ડિસેબલ્ડ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Normally there are no problems with the APIC (Advanced Programmable Interrupt
++Controller). But if you seem to have some, try this option to boot
++without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++Please don't confuse this with &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt;
++(Advanced Configuration and Power Interface).
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallgumainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,28 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;બુટ વિકલ્પો&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++There are two types of boot options available. First, there are
++options that affect the installer. Second, there are kernel
++options. Some of the more common options are:
++&lt;/p&gt;
++
++&lt;p&gt;
++a) installer options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;ઈન્સ્ટોલ&lt;/a&gt; -- select an installation source&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#network&quot;&gt;નેટવર્ક વિકલ્પો&lt;/a&gt; -- the network options&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;vnc વિકલ્પો&lt;/a&gt; -- options for installation via VNC&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++b) kernel options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;સ્પ્લેશ&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallgumainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;ઈન્સ્ટોલર વિકલ્પો: નેટવર્ક વિકલ્પો&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++It is possible to configure the network interface right now. The
++hardware will be detected later by YaST2. The minimum set of options
++to configure your network card consists of host IP and netmask. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++or in a shorter form:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++If you specified a &lt;a href=&quot;#o_install&quot;&gt;નેટવર્ક-બેઝ્ડ ઈન્સ્ટોલ&lt;/a&gt; and do
++not specify both of these options, the installer tries to configure
++the network interface with &lt;em&gt;dhcp&lt;/em&gt;. If you need a default
++gateway, specify this with the option &lt;em&gt;ગેટવે&lt;/em&gt;. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;ગેટવે=192.168.0.8&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallgumainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;કેર્નાલ વિકલ્પો: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallgumainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;કેર્નાલ વિકલ્પો&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallgumainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt; કેર્નાલ વિકલ્પો: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallgumainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,30 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;ઈન્સ્ટોલર વિકલ્પો: ઈન્સ્ટોલ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++By default, the local CD-ROMs are searched for the installation source.
++For a network install, select the
++&lt;em&gt;ઈન્સ્ટોલ&lt;/em&gt; option. Possible installation protocols are
++&lt;ul&gt;
++ &lt;li&gt;FTP&lt;/li&gt;
++ &lt;li&gt;NFS&lt;/li&gt;
++ &lt;li&gt;HTTP&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The syntax to use is just like standard URLs. For example,
++if your server is found at 192.168.0.1 and you want to do an NFS-based
++install from the directory /install on this server, specify
++the source as follows:
++&lt;ul&gt;
++ &lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The network card will either be configured with &lt;em&gt;dhcp&lt;/em&gt; or you
++must specify the parameters yourself as described in the
++&lt;a href=&quot;#network&quot;&gt;નેટવર્ક વિકલ્પો&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallgumainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;કેર્નાલ વિકલ્પો: સ્પ્લેશ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;સ્પ્લેશ=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;સ્પ્લેશ=નકામા શબ્દો&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;સ્પ્લેશ=નિશબ્દ&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallgumainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;ઈન્સ્ટોલર વિકલ્પો: vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++To enable the VNC installation, specify the
++parameters vnc and vncpassword:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;vnc=1 vncpassword=example&lt;/em&gt;&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The VNC server will be started and you may control YaST2 over any VNC
++client from a remote system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallgumainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;રેસ્ક્યુ સિસ્ટમ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The &lt;em&gt;રેસ્ક્યુ સિસ્ટમ&lt;/em&gt; is a small RAM disk base system. From there,
++it is possible to make all kinds of changes to an installed system. Because
++only low-level tools are available in this system, it is intended for
++experts.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallgumainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;વિઇયો મોડ પસંદગી&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; to get the list of video modes your graphics card
++supports. The highest mode your monitor can display is preselected.
++&lt;/p&gt;
++
++&lt;p&gt;
++It is possible that your monitor cannot be detected automatically. In that
++case, select your preferred mode manually.
++&lt;/p&gt;
++
++&lt;p&gt;
++If your system has problems with the graphics card during the
++installation, the &lt;em&gt;ટેક્સ્ટ મોડ&lt;/em&gt; may be a usable work-around.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallgunavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/gu/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;પાછા ફરો &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhrmainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,103 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;Boot Loader Help&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Welcome to &lt;em&gt;@@@product@@@&lt;/em&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this menu to select the desired function. If you have
++problems navigating in this help system, press
++&lt;em&gt;@@@fkey_help@@@&lt;/em&gt; to enter the &lt;a href=&quot;#help&quot;&gt;opis&lt;/a&gt; of the help
++system. The main functions in this menu are:
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#harddisk&quot;&gt;Podigni sustav s tvrdog diska&lt;/a&gt;: This selection will not do
++anything to the system. It only starts a previously installed
++operating system.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#linux&quot;&gt;Instalacija&lt;/a&gt;:
++This installation mode works on most machines. If you experience a
++system freeze during boot or problems with detection of your hardware
++components, such as disk controllers or network cards, try one of the
++following installation options.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#noacpi&quot;&gt;Installation -- ACPI Disabled&lt;/a&gt;: Many of the
++currently-sold computers have incomplete or faulty ACPI
++implementations. This selection disables ACPI support in the
++kernel, but still enables many performance features, like DMA for IDE
++hard disks.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#nolapic&quot;&gt;Installation -- Local APIC Disabled&lt;/a&gt;:
++If the normal installation fails, this might be due to the
++system hardware not supporting local APIC.
++If this seems to be the case, use this option to
++install without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#failsafe&quot;&gt;Installation -- Safe Settings&lt;/a&gt;: If you were not
++successful with &lt;em&gt;Instalacija&lt;/em&gt;, this selection might
++solve the issue.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#rescue&quot;&gt;Sustav za spašavanje&lt;/a&gt;: This boot image starts a small
++Linux system in RAM. This is useful if the system does not start properly.
++After booting this system, log in as root.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#firmware&quot;&gt;Test firmware-a&lt;/a&gt;: Runs a BIOS test tool that validates
++ACPI and other parts of your BIOS.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#memtest&quot;&gt;Test memorije&lt;/a&gt;: Memory testing is useful for more than
++checking installation of new memory modules. It is a stress test
++for a big part of your computer system and may indicate hardware
++problems.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#opt&quot;&gt;Izbori podizanja sustava&lt;/a&gt;: The boot options may change the
++behavior of your system completely. They are settings for
++the kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Help&lt;/a&gt;: This is context sensitive. It will
++show different screens depending on the active element of the
++boot screen. There is also a description of this help system
++available.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Set language and keyboard mapping
++used by the boot loader.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Video Mode&lt;/a&gt;: Here, choose between
++different screen resolutions while installing. If you encounter
++problems with the graphical installation, the &lt;em&gt;tekstualni način&lt;/em&gt; may
++be a work-around for you.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Installation Source&lt;/a&gt;: Choose the
++installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Driver Update&lt;/a&gt;: For very new machines, a
++driver update may be needed to install the system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhrmainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;Odabir vrste programa&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++You have the choice to install the 32-bit or 64-bit version of @@@product@@@.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhrmaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;Dogradnja upravljačkog programa&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++If you need a driver update floppy or CD-ROM, press &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. The
++boot loader asks you to insert the driver update medium after
++loading the Linux kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++A driver update is typically a floppy with new versions of hardware
++drivers or bug fixes needed during installation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhrmainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,11 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;Installation -- Safe Settings&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Installation -- Safe Settings&lt;/em&gt; if you encounter hangs
++while installing or irreproducible errors. This option disables DMA
++for IDE drives and all power management features.
++See also the kernel options for &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;,
++&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; and &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhrmainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;Test firmware-a&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Starts a BIOS checker that validates the ACPI tables
++and many other parts of your BIOS.
++Test results can be stored on usb disk or saved via network.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhrmainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,16 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;Podigni sustav s tvrdog diska&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Boot Installed OS&lt;/em&gt; to start the system installed on
++your local hard disk. This system must be installed properly, because
++only the MBR (Master Boot Record) on the first hard disk is started.
++The device ID of the first hard disk is provided by the BIOS of
++the computer.
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this if you forgot to remove the CD or DVD from your
++drive and want to start the computer from the hard disk.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhrmainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Koristim sustav pomoći&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Strelica gore&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Strelica dolje&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Strelica lijevo&lt;/em&gt;, &lt;em&gt;Brisanje&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Strelica desno&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Razmak&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Stranica gore&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Stranica dolje&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Kuća&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Kraj&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhrmaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;Instalacijski izvor&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; to choose an installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++This is the same as using the &lt;a href=&quot;#o_install&quot;&gt;instaliraj&lt;/a&gt;
++boot option.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhrmainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Odabir jezika i rasporeda tipkovnice&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhrmainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;Instalacija&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Instalacija&lt;/em&gt; to start the default installation. The
++&lt;a href=&quot;#opt&quot;&gt;boot options&lt;/a&gt; entered are used in the
++start-up. This item activates many features of commonly available
++hardware.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhrmainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;Test memorije&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The included &lt;em&gt;Test memorije&lt;/em&gt; provides good possibilities to
++stress test the hardware of a system. Its main purpose is to detect
++broken RAM, but it also stresses many other parts of the system.
++&lt;/p&gt;
++
++&lt;p&gt;
++There is no guarantee that the memory is good if no errors are
++found, although most of memory defects will be found.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhrmainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,24 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;Installation -- ACPI Disabled&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Current hardware usually requires ACPI (Advanced Configuration and Power Interface)
++to control the interrupt handling.
++ACPI completely replaces the old APM system.
++&lt;/p&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Installation -- ACPI Disabled&lt;/em&gt; if you encounter
++problems during boot of the kernel. Known problems with machines that
++have problems with ACPI are:
++&lt;ul&gt;
++ &lt;li&gt;kernel freezes when booting&lt;/li&gt;
++ &lt;li&gt;PCI Cards are not detected or initialized properly&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++You may also try the &lt;a href=&quot;#firmware&quot;&gt;Test firmware-a&lt;/a&gt; boot option
++and look at the test results of the ACPI validation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhrmainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;Installation -- Local APIC Disabled&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Normally there are no problems with the APIC (Advanced Programmable Interrupt
++Controller). But if you seem to have some, try this option to boot
++without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++Please don't confuse this with &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt;
++(Advanced Configuration and Power Interface).
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhrmainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,28 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Izbori podizanja sustava&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++There are two types of boot options available. First, there are
++options that affect the installer. Second, there are kernel
++options. Some of the more common options are:
++&lt;/p&gt;
++
++&lt;p&gt;
++a) installer options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;instaliraj&lt;/a&gt; -- select an installation source&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#network&quot;&gt;mrežni izbori&lt;/a&gt; -- the network options&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;vnc izbori&lt;/a&gt; -- options for installation via VNC&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++b) kernel options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhrmainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;Installer Options: Network Options&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++It is possible to configure the network interface right now. The
++hardware will be detected later by YaST2. The minimum set of options
++to configure your network card consists of host IP and netmask. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++or in a shorter form:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++If you specified a &lt;a href=&quot;#o_install&quot;&gt;network-based install&lt;/a&gt; and do
++not specify both of these options, the installer tries to configure
++the network interface with &lt;em&gt;dhcp&lt;/em&gt;. If you need a default
++gateway, specify this with the option &lt;em&gt;gateway&lt;/em&gt;. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;gateway=192.168.0.8&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhrmainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Izbori jezgre: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhrmainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Izbori jezgre: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhrmainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Izbori jezgre: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhrmainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,30 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;Installer Options: install&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++By default, the local CD-ROMs are searched for the installation source.
++For a network install, select the
++&lt;em&gt;instaliraj&lt;/em&gt; option. Possible installation protocols are
++&lt;ul&gt;
++ &lt;li&gt;FTP&lt;/li&gt;
++ &lt;li&gt;NFS&lt;/li&gt;
++ &lt;li&gt;HTTP&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The syntax to use is just like standard URLs. For example,
++if your server is found at 192.168.0.1 and you want to do an NFS-based
++install from the directory /install on this server, specify
++the source as follows:
++&lt;ul&gt;
++ &lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The network card will either be configured with &lt;em&gt;dhcp&lt;/em&gt; or you
++must specify the parameters yourself as described in the
++&lt;a href=&quot;#network&quot;&gt;mrežni izbori&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhrmainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Izbori kernela: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhrmainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;Installer Options: vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++To enable the VNC installation, specify the
++parameters vnc and vncpassword:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;vnc=1 vncpassword=primjer&lt;/em&gt;&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The VNC server will be started and you may control YaST2 over any VNC
++client from a remote system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhrmainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;Sustav za spašavanje&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The &lt;em&gt;Sustav za spašavanje&lt;/em&gt; is a small RAM disk base system. From there,
++it is possible to make all kinds of changes to an installed system. Because
++only low-level tools are available in this system, it is intended for
++experts.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhrmainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;Video Mode Selection&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; to get the list of video modes your graphics card
++supports. The highest mode your monitor can display is preselected.
++&lt;/p&gt;
++
++&lt;p&gt;
++It is possible that your monitor cannot be detected automatically. In that
++case, select your preferred mode manually.
++&lt;/p&gt;
++
++&lt;p&gt;
++If your system has problems with the graphics card during the
++installation, the &lt;em&gt;tekstualni način&lt;/em&gt; may be a usable work-around.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhrnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hr/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,3 @@
++&lt;p&gt;
++Return to &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhumainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;Rendszertöltő-súgó&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Üdvözli az &lt;em&gt;@@@product@@@&lt;/em&gt; &lt;/p&gt;
++
++&lt;p&gt;Válassza ki a kívánt funkciót a menüből. Ha gondot okoz a súgórendszerben való navigáció, az &lt;em&gt;@@@fkey_help@@@&lt;/em&gt; billentyű megnyomásával &lt;a href=&quot;#help&quot;&gt;leírás&lt;/a&gt; elolvashatja a súgórendszer leírását. A menü legfontosabb funkciói:&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#harddisk&quot;&gt;Rendszerindítás merevlemezről&lt;/a&gt;: Elindítja a már korábban telepített rendszert a merevlemezről. Ebben az esetben semmilyen módosítás nem történik a rendszeren.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#linux&quot;&gt;Telepítés&lt;/a&gt;: Ez a telepítési mód a legtöbb gépen működik. Ha rendszerindítás közben lefagyást észlel, vagy problémák jelentkeznek a hardverkomponensek (például lemezvezérlők vagy hálózati kártyák) felismerése során, akkor próbálkozzon meg az alábbi telepítési beállításokkal.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#noacpi&quot;&gt;Telepítés - ACPI-támogatás nélkül&lt;/a&gt;: Nagyon sok mai számítógépen nem teljes vagy hibás az ACPI megvalósítása. Ez a menüpont letiltja a kernel ACPI-támogatását, ugyanakkor megtart számos további teljesítménynövelő funkciót, például az IDE-merevlemezek DMA-támogatását.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#nolapic&quot;&gt;Telepítés - Local APIC támogatás nélkül&lt;/a&gt;: Ha a telepítés sikertelen, annak egyik oka az lehet, hogy a hardver nem rendelkezik lokális APIC támogatással. Ebben az esetben telepítsen lokális APIC támogatás nélkül.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#failsafe&quot;&gt;Telepítés - Biztonságos beállításokkal&lt;/a&gt;: Ha a &lt;em&gt;Telepítés&lt;/em&gt;mód nem bizonyult megfelelőnek, ez a mód lehet, hogy megoldja a problémát.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#rescue&quot;&gt;Mentőrendszer&lt;/a&gt;: Ez a rendszerkép egy kisméretű rendszert indít el a memóriából. Akkor hasznos, ha a rendszer nem megfelelően indul. A rendszer betöltése után jelentkezzen be root felhasználóként.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#firmware&quot;&gt;Firmware-teszt&lt;/a&gt;: BIOS ellenőrző eszközt futtat, amely ellenőrzi az ACPI-t, és a BIOS egyes részeit.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#memtest&quot;&gt;Memóriateszt&lt;/a&gt;: A memóriatesztelés nemcsak az újonnan behelyezett memóriamodulok ellenőrzésére jó, hanem a rendszer nagy részét terheli és alkalmas lehet hardverproblémák kimutatására.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#opt&quot;&gt;Rendszerindítási paraméterek&lt;/a&gt;: A rendszerindítási paraméterek teljesen megváltoztathatják a rendszer viselkedését. Ezek a kernel beállításai.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Súgó&lt;/a&gt;: Környezetérzékeny súgó. A rendszerindítási képernyő aktív elemétől függően más és más képernyőket jelenít meg és magáról a súgórendszerről is található leírás.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Itt választható ki a rendszertöltő által használt nyelvi és billentyűzetbeállítás.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Videomód&lt;/a&gt;: Itt választhatja ki a telepítés során használt képernyőfelbontást. Ha probléma van a grafikus telepítéssel, próbálja meg a &lt;em&gt;szöveges mód&lt;/em&gt;-ot.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Telepítési forrás&lt;/a&gt;: Válasszon telepítési forrását.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Illesztőprogram-frissítés&lt;/a&gt;: Nagyon új gépek esetében szükség lehet valamely illesztőprogram frissítésére a rendszer telepítéséhez.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhumainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;Szoftvertípus kiválasztása&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Telepítheti az @@@product@@@ 32, vagy 64 bites változatát.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhumaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;Illesztőprogram-frissítés&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Ha egy illesztőprogramot tartalmazó hajlékonylemezt vagy CD-t kíván használni, nyomja meg az &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;billentyűt. A rendszertöltő a Linux kernel betöltése után kéri az adathordozó behelyezésére.&lt;/p&gt;
++
++&lt;p&gt;Az új illesztőprogram általában egy hajlékonylemezen található, amelyen lehet egy frissebb verzió vagy egy egyszerű hibajavítás is.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhumainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;Telepítés - Biztonságos beállításokkal&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Ha telepítés közben lefagyásokat vagy nem megismételhető hibákat észlel, válassza a &lt;em&gt;Telepítés - Biztonságos beállításokkal&lt;/em&gt; beállítást, amely letiltja az IDE-meghajtók DMA-támogatását és az összes energiaellátás-felügyeleti funkciót. Tekintse meg továbbá az &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;, az &lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; és &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; paramétereket is.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhumainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;Firmware-teszt&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Elindítja a BIOS ellenőrzését, amely ellenőrzi az ACPI-táblákat és a BIOS egyéb részeit. Az ellenőrzés eredménye lementhető USB-eszközre vagy hálózaton keresztül.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhumainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;Rendszerindítás merevlemezről&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;A &lt;em&gt;Rendszerindítás merevlemezről&lt;/em&gt; beállítással indítható el a helyi merevlemezen telepített rendszer. A rendszert helyesen kell telepíteni, mert csak az első merevlemez mester rendszerindító rekordja (MBR) kerül indításra. Az első merevlemez eszközazonosítóját a számítógép BIOS-a biztosítja.&lt;/p&gt;
++
++&lt;p&gt;Ez akkor hasznos, ha a meghajtóban felejtette a CD-t vagy a DVD-t, és feltétlenül a merevlemezről kívánja elindítani a rendszert.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhumainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;A súgórendszer használata&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;A rendszertöltő online súgója helyzetfüggő segítséget nyújt az egyes kiválasztott menüpontokhoz. Ezenfelül az egyes rendszerindítási opciókhoz is információval szolgál. Ez akkor lehet hasznos, ha éppen egy bejegyzés szerkesztése válik szükségessé.&lt;/p&gt;
++
++&lt;p&gt;Navigációs gombok &lt;ul&gt;&lt;li&gt;&lt;em&gt;Felfelé nyíl&lt;/em&gt;: Előző hivatkozás kiválasztása&lt;/li&gt;&lt;li&gt;&lt;em&gt;Lefelé nyíl&lt;/em&gt;: Következő hivatkozás kiválasztása&lt;/li&gt;&lt;li&gt;&lt;em&gt;Bal nyíl&lt;/em&gt;, &lt;em&gt;Vissza&lt;/em&gt;: Vissza az előző témához&lt;/li&gt;&lt;li&gt;&lt;em&gt;Jobb nyíl&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Szóköz&lt;/em&gt;: Hivatkozás követése&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: Görgetés felfelé&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: Görgetés lefelé&lt;/li&gt;&lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: Ugrás az oldal elejére&lt;/li&gt;&lt;li&gt;&lt;em&gt;End&lt;/em&gt;: Ugrás az oldal végére&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: Kilépés&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhumaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;Telepítési forrás&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; -- telepítési forrás megadása&lt;/p&gt;
++
++&lt;p&gt;Ez ugyanaz, mint az &lt;a href=&quot;#o_install&quot;&gt;telepítés&lt;/a&gt; paraméter használata.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhumainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Nyelv és billentyűzet kiválasztása&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Az &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; billentyű megnyomásával kiválasztható az indítóképernyő és a billentyűzet nyelve.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhumainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;Telepítés&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;A &lt;em&gt;Telepítés&lt;/em&gt; beállítással indul az alapértelmezett telepítés. A megadott &lt;a href=&quot;#opt&quot;&gt;rendszerindítási paraméterek&lt;/a&gt; alkalmazásra kerülnek. Ez a beállítás a szokásosan elérhető hardvereszközök számos funkcióját aktiválja.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhumainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;Memóriateszt&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;A beépített &lt;em&gt;Memóriateszt&lt;/em&gt; jó lehetőséget nyújt egy rendszer hardvereszközeinek ellenőrzésére. Elsődleges célja természetesen a hibás RAM-modulok azonosítása, de a rendszer egyéb részeit is terheli.&lt;/p&gt;
++
++&lt;p&gt;Az, hogy a rendszer nem talál hibát, még nem garancia a memória tökéletességére, bár a legtöbb hiba előjön a vizsgálat során.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhumainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;Telepítés - ACPI-támogatás nélkül&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;A nagyon friss hardvereszközök néha igénylik az ACPI meglétét a megszakítások kezeléséhez. Az ACPI teljesen felváltja a régi APM rendszert.&lt;/p&gt;
++
++&lt;p&gt;Ha problémákba ütközik a kernel indítása során, válassza a &lt;em&gt;Telepítés - ACPI-támogatás nélkül&lt;/em&gt; beállítást. Ismert problémák hibás ACPI-vel rendelkező gépek esetén: &lt;ul&gt;&lt;li&gt;a kernel lefagy rendszerindítás közben&lt;/li&gt;&lt;li&gt;PCI-kártyák nem találhatók, vagy nem sikerül tökéletesen előkészíteni őket&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Érdemes kipróbálni a &lt;a href=&quot;#firmware&quot;&gt;Firmware-teszt&lt;/a&gt; beállítást, megnézni az ACPI-ellenőrzés eredményét.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhumainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;Telepítés - Local APIC támogatás nélkül&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Általában nincs probléma az APIC (Advanced Programmable Interrupt Controller) vezérlővel, azonban vannak olyan esetek, amikor célszerű APIC támogatás nélkül indítani a rendszert.&lt;/p&gt;
++
++&lt;p&gt;Ezt ne tévessze össze az &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt; (Advanced Configuration and Power Interface) vezérlővel.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhumainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Rendszerindítási paraméterek&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Kétféle rendszerindítási paraméter használható. Egyes paraméterek a telepítőprogram működését befolyásolják. Mások pedig a kernel működését. Néhány a leggyakoribb paraméterek közül:&lt;/p&gt;
++
++&lt;p&gt;a) telepítési beállítások &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;telepítés&lt;/a&gt; -- telepítési forrás kiválasztása&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#network&quot;&gt;hálózati beállítások&lt;/a&gt; -- hálózati beállítások&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;vnc-beállítások&lt;/a&gt; -- beállítások VNC-n keresztüli telepítéshez&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;b) kernelbeállítások &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- indítóképernyő beállítása&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- energiagazdálkodás beállítása&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- ACPI energiakezelési rendszer beállítása&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- IDE-alrendszer beállítása&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhumainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,13 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;Telepítési beállítások: Hálózati beállítások&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Lehetőség van a hálózati csatoló beállítására. A YaST2 a hardvert később felismeri. A hálózat beállításához legalább a gép IP-címét és hálózati maszkját meg kell adni. Például: &lt;ul&gt;&lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;vagy rövidebb formában: &lt;ul&gt;&lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Ha a &lt;a href=&quot;#o_install&quot;&gt;telepítés hálózatról&lt;/a&gt; kiválasztásakor nem adja meg mindkét paramétert, akkor a telepítőprogram megpróbálja &lt;em&gt;dhcp&lt;/em&gt;-n keresztül beállítani a hálózati csatolót. Amennyiben szükséges, az alapértelmezett átjáró a &lt;em&gt;gateway&lt;/em&gt; paraméterrel adható meg. Például: &lt;ul&gt;&lt;li&gt;gateway=192.168.0.8&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhumainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Kernelbeállítások: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Az ACPI (Advanced Configuration and Power Interface) szabvány meghatározza, hogy az operációs rendszer és a BIOS között hogyan működjenek az energiakezelési funkciók. Alapértelmezett esetben akkor van bekapcsolva az &lt;em&gt;acpi&lt;/em&gt; opció, ha a 2000. év után készült BIOS verziót talál. Az ACPI viselkedését az alábbi opciókkal lehet pontosan beállítani: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- ne használja az ACPI-t PCI-megszakításokhoz&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- az ACPI rendszerindításhoz szükségesek részeinek bekapcsolása&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- az ACPI teljes kikapcsolása&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- ACPI bekapcsolása annak ellenére, hogy a BIOS a 2000. év előtt készült&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Új számítógépeken az ACPI teljes mértékben helyettesíti az &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; rendszert.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhumainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Kernelbeállítások: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Az APM (Advanced Power Management) egy energiakezelő rendszer. Használatának leginkább hordozható számítógépeken van értelme, ahol átmenetileg fel lehet függeszteni a rendszer futását. Akkor szüksége lehet energiakezelő rendszerre, ha azt szeretné, hogy a rendszer leállításakor automatikusan kikapcsoljon a rendszer. Az APM működése erősen függ a számítógép BIOS rendszerétől. Ha nem jó a BIOS, vagy hibásan van beállítva, akkor az APM bekapcsolása mellékhatásokhoz vezethet. Ilyenkor letilthatja az APM bekapcsolását a következő paraméterrel: &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- az ACPI teljes kikapcsolása&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Az újabb számítógépeken az APM helyett az &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt; rendszer használata javasolt.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhumainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Kernelbeállítások: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;A legtöbb munkaállomás nem SCSI, hanem IDE meghajtót tartalmaz. Az IDE-rendszer, az esetleges hardverproblémáinak kikerüléséhez szüksége lehet az alábbi paraméterre: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- IDE-meghajtók DMA-jénak kikapcsolása&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhumainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;Telepítési beállítások: install&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Alapértelmezés szerint telepítési forrásként a helyi CD-olvasókat keresi végig a rendszer. Hálózati telepítéshez az &lt;em&gt;telepítés&lt;/em&gt; paramétert kell használni. A telepítéshez használható protokollok: &lt;ul&gt;&lt;li&gt;FTP&lt;/li&gt;&lt;li&gt;NFS&lt;/li&gt;&lt;li&gt;HTTP&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;A szintaxis pontosan olyan, mint a szabványos URL. Ha például a kiszolgáló a 192.168.0.1 címen található és a kiszolgáló /install könyvtárából kíván NFS-alapú telepítést végrehajtani, akkor így kell megadni a forrást: &lt;ul&gt;&lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;A hálózati kártya beállítása történhet &lt;em&gt;dhcp&lt;/em&gt; segítségével, vagy a &lt;a href=&quot;#network&quot;&gt;hálózati beállítások&lt;/a&gt; között bemutatott módon megadhatók kézzel a paraméterek.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhumainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Kernelbeállítások: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;A rendszerindításkor látható grafikus képernyőt splash screennek nevezzük. &lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- Indítóképernyő kikapcsolása. Ez akkor lehet hasznos, ha nagyon régi a monitora, illetve olyan, amelyen az indítóképernyő hibásan jelenik meg.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Indítóképernyő bekapcsolása. A kernel- és a rendszerindítási üzenetek a háttérben láthatók.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Indítóképernyő bekapcsolása. A rendszerüzenetek nem láthatók. Helyette egy grafikus kijelző tájékoztatást ad a rendszerindítási folyamatról.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhumainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;Telepítési beállítások: vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;A VNC-telepítés bekapcsolásához a vnc és a vncpassword paramétereket kell megadni: &lt;ul&gt;&lt;li&gt;&lt;em&gt;vnc=1 vncpassword=mintajelszó&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;A VNC-kiszolgáló elindul és a YaST2 távolról, VNC-kliensen keresztül vezérelhető.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhumainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;Mentőrendszer&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;A &lt;em&gt;Mentőrendszer&lt;/em&gt; egy kisméretű, RAM-lemez alapú rendszer, így lehetséges egy már telepített rendszer módosítása. Mivel ebben a rendszerben csak alacsony szintű eszközök érhetők el, használatát kizárólag szakembereknek javasoljuk.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhumainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;Videomód kiválasztása&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Nyomja meg az &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; billentyűt a grafikus kártya által támogatott videomódok listájának lekéréséhez. A monitor által támogatott legnagyobb felbontás alapértelmezésként kerül kiválasztásra.&lt;/p&gt;
++
++&lt;p&gt;Előfordulhat, hogy a monitor automatikus felismerése sikertelen, ebben az esetben állítsa be a használni kívánt felbontást.&lt;/p&gt;
++
++&lt;p&gt;Ha gondok vannak a grafikus kártyával a telepítés során, a &lt;em&gt;szöveges mód&lt;/em&gt; nyújthat kerülő megoldást.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallhunavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/hu/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Vissza a &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt; részhez.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallitmainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;Guida del caricatore di avvio&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Benvenuto in &lt;em&gt;@@@product@@@&lt;/em&gt;&lt;/p&gt;
++
++&lt;p&gt;Usa questo menu per selezionare la funzione desiderata. Se hai problemi durante l'esplorazione di questa Guida, premi &lt;em&gt;@@@fkey_help@@@&lt;/em&gt; per visualizzare il &lt;a href=&quot;#help&quot;&gt;descrizione&lt;/a&gt; della Guida. Le principali funzioni disponibili in questo menu sono:&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#harddisk&quot;&gt;Avvio dal disco rigido&lt;/a&gt;: Questa selezione non esegue alcuna operazione sul sistema. Avvia solo un sistema operativo precedentemente installato.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#linux&quot;&gt;Installazione&lt;/a&gt;: Questa modlità di installazione funziona sulla maggior parte dei computer. Se si verifica un arresto del sistema durante l'avvio, oppure in caso di problemi nel rilevamento di componenti hardware quali controllori di dischi o schede di rete, prova a selezionare una delle seguenti opzioni di installazione.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#noacpi&quot;&gt;Installazione -- ACPI disabilitata&lt;/a&gt;: Molti computer attualmente in commercio dispongono di implementazioni ACPI incomplete o difettose. Questa selezione disabilita il supporto ACPI nel kernel ma abilita molte funzionalità ad alte prestazioni, quali la tecnologia DMA per i dischi rigidi IDE.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#nolapic&quot;&gt;Installazione -- APIC locale disabilitata&lt;/a&gt;: Se l'installazione normale non viene completata, è possibile che il sistema hardware non supporti l'APIC locale. In questo caso, utilizza l'opzione di installazione senza il supporto dell'APIC locale.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#failsafe&quot;&gt;Installazione -- Impostazioni di protezione&lt;/a&gt;: Se non hai avuto successo con &lt;em&gt;Installazione&lt;/em&gt;, questa selezione può risolvere il problema.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#rescue&quot;&gt;Sistema di salvataggio&lt;/a&gt;: Questa immagine di avvio carica un piccolo sistema Linux nella RAM. Ciò è utile se il sistema non si avvia correttamente. Dopo aver avviato questo sistema, effettua il login come utente root.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#firmware&quot;&gt;Verifica firmware&lt;/a&gt;: Avvia uno strumento di verifica del BIOS che valida l'ACPI ed altri componenti del BIOS.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#memtest&quot;&gt;Verifica della memoria&lt;/a&gt;: Il test della memoria è utile non solo per verificare l'installazione dei nuovi moduli di memoria: è un test molto stressante per buona parte dei componenti del computer e può evidenziare problemi hardware.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#opt&quot;&gt;Opzioni di boot&lt;/a&gt;: Le opzioni di avvio, relative al kernel, possono modificare completamente il comportamento del sistema in uso.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Guida&lt;/a&gt;: Questa opzione è contestuale. Visualizza schermate diverse in base all'elemento attivo nella schermata di avvio. È inoltre disponibile una descrizione di questa Guida.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Imposta la lingua e la mappatura della tastiera utilizzate dal caricatore di avvio.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Modalità video&lt;/a&gt;: Qui puoi scegliere tra diverse risoluzioni dello schermo durante l'installazione. Se incontri problemi durante l'installazione grafica, puoi usare &lt;em&gt;modo testo&lt;/em&gt; per aggirarli.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Sorgente di installazione&lt;/a&gt;: Scegli la sorgente di installazione.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Aggiornamento driver&lt;/a&gt;: per computer molto recenti, per installare il sistema può rendersi necessario un aggiornamento dei driver.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallitmainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;Selezione tipo di applicazione&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Puoi scegliere di installare la versione a 32 o 64 bit di @@@product@@@.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallitmaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;Aggiornamento driver&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Se è necessario un floppy o un CD ROM di aggiornamento driver, premi &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. Dopo il caricamento del kernel Linux, ti verrà chiesto di inserire il supporto di aggiornamento driver.&lt;/p&gt;
++
++&lt;p&gt;Un aggiornamento driver è costituito in genere da un floppy contenente nuove versioni dei driver hardware o correzioni dei bug necessarie durante l'installazione.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallitmainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;Installazione -- Impostazioni di protezione&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Seleziona &lt;em&gt;Installazione -- Impostazioni di protezione&lt;/em&gt; se si verificano interruzioni durante l'installazione oppure errori non riproducibili. Questa opzione disabilita la funzionalità DMA per le unità IDE e, inoltre, tutte le funzionalità di risparmio energetico. Vedi anche le opzioni del kernel relative a &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;, &lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; e &lt;a href=&quot;#o_ide&quot;&gt;IDE&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallitmainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;Verifica firmware&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Avvia un controllo del BIOS che valida le tabelle ACPI e molte altre parti del BIOS. È possibile archiviare i risultati del test in un disco usb o salvarli via rete.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallitmainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;Avvio dal disco rigido&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Seleziona &lt;em&gt;Avvia sistema operativo installato&lt;/em&gt; per avviare il sistema installato nel disco rigido locale. Questo sistema deve essere installato correttamente perché solo l'MBR (Master Boot Record) viene avviato sul primo disco rigido. L'ID del dispositivo del primo disco rigido viene fornito dal BIOS del computer.&lt;/p&gt;
++
++&lt;p&gt;Usa questa opzione se hai dimenticato di rimuovere il CD o DVD dall'unità e desideri avviare il computer dal disco rigido.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallitmainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Uso della Guida&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;La Guida in linea del caricatore di avvio è sensibile al contesto e visualizza le informazioni sulla voce di menu selezionata, oppure, durante la modifica delle opzioni di avvio, tenta di individuare le informazioni relative all'opzione su cui è posizionato il cursore.&lt;/p&gt;
++
++&lt;p&gt;Tasti di navigazione &lt;ul&gt;&lt;li&gt;&lt;em&gt;Freccia su&lt;/em&gt;: evidenzia il collegamento precedente&lt;/li&gt;&lt;li&gt;&lt;em&gt;Fraccia giù&lt;/em&gt;: evidenzia il collegamento successivo&lt;/li&gt;&lt;li&gt;&lt;em&gt;Freccia sinistra&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: torna all'argomento precedente&lt;/li&gt;&lt;li&gt;&lt;em&gt;Fraccia destra&lt;/em&gt;, &lt;em&gt;Invio&lt;/em&gt;, &lt;em&gt;Spazio&lt;/em&gt;: visita il collegamento&lt;/li&gt;&lt;li&gt;&lt;em&gt;PgSu&lt;/em&gt;: scorre verso l'alto una pagina alla volta&lt;/li&gt;&lt;li&gt;&lt;em&gt;PgGiù&lt;/em&gt;: scorre verso il basso una pagina alla volta&lt;/li&gt;&lt;li&gt;&lt;em&gt;Casa&lt;/em&gt;: va a inizio pagina&lt;/li&gt;&lt;li&gt;&lt;em&gt;Termine&lt;/em&gt;: va a fine pagina&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: chiude la Guida&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallitmaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;Sorgente di installazione&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Premi &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; per selezionare una sorgente di installazione.&lt;/p&gt;
++
++&lt;p&gt;Questa opzione equivale all'opzione di avvio &lt;a href=&quot;#o_install&quot;&gt;installa&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallitmainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Selezione layout tastiera e lingua&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Premi &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; per cambiare la lingua e il layout della tastiera utilizzati dal caricatore di avvio.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallitmainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;Installazione&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Seleziona &lt;em&gt;Installazione&lt;/em&gt; per avviare l'installazione predefinita. Il &lt;a href=&quot;#opt&quot;&gt;Opzioni di boot&lt;/a&gt; inserito è utilizzato nella fase di avvio. Questa voce attiva molte funzioni dei componenti hardware comunemente disponibili.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallitmainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;Verifica della memoria&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Il &lt;em&gt;Verifica della memoria&lt;/em&gt; incluso offre buone possibilità di testare l'hardware di un sistema. Il suo scopo principale consiste nel rilevare interruzioni nella RAM nonché altri problemi nel sistema.&lt;/p&gt;
++
++&lt;p&gt;Nonostante la maggior parte dei difetti venga rilevata, non c'è comunque nessuna garanzia che la memoria sia a posto se non viene evidenziato nessun errore.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallitmainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;Installazione -- ACPI disabilitata&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;L'hardware attuale di solito richiede l'ACPI (Advanced Configuration and Power Interface) per controllare la gestione degli interrupt. L'ACPI sostituisce completamente il vecchio sistema APM.&lt;/p&gt;
++
++&lt;p&gt;Seleziona &lt;em&gt;Installazione -- ACPI disabilitata&lt;/em&gt; se si verificano problemi durante l'avvio del kernel. I problemi noti con la tecnologia ACPI nei computer sono: &lt;ul&gt;&lt;li&gt;Il kernel si blocca all'avvio&lt;/li&gt;&lt;li&gt;Le schede PCI non sono rilevate o inizializzate correttamente&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Puoi anche provare con l'opzione di avvio &lt;a href=&quot;#firmware&quot;&gt;Verifica firmware&lt;/a&gt; e verificare i risultati del test della convalida dell'ACPI.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallitmainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;Installazione -- APIC locale disabilitata&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Normalmente non si verificano problemi con l'APIC (Advanced Programmable Interrupt Controller). Se dovessero verificarsi, prova questa opzione ad avviare senza il supporto APIC locale.&lt;/p&gt;
++
++&lt;p&gt;Per favore non confonderti con &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt; (Advanced Configuration and Power Interface).&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallitmainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Opzioni di boot&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Sono disponibili due tipi di opzioni di avvio: quelle che influenzano il programma di installazione e quelle che agiscono sul kernel. Alcune delle opzioni più comuni sono:&lt;/p&gt;
++
++&lt;p&gt;a) optioni del programma d'installazione &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;installa&lt;/a&gt; -- seleziona una sorgente di installazione&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#network&quot;&gt;opzioni di rete&lt;/a&gt; -- le opzioni di rete&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;opzioni VNC&lt;/a&gt; -- opzioni per l'installazione via VNC&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;b) opzioni kernel &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;schermata di avvio&lt;/a&gt; -- influenza il comportamento della schermata di avvio&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- attiva o disattiva il risparmio energetico&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- interfaccia per il risparmio energetico e la configurazione avanzata&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;IDE&lt;/a&gt; -- controlla il sottosistema IDE&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallitmainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,13 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;Opzioni programma di installazione: Opzioni di rete&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;È possibile configurare subito l'interfaccia di rete. L'hardware verrà rilevato successivamente da YaST2. Per configurare la scheda di rete, è necessario specificare almeno l'IP host e la netmask. Ad esempio: &lt;ul&gt;&lt;li&gt;iphost=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;o in forma contratta: &lt;ul&gt;&lt;li&gt;iphost=192.168.0.10/24&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Se specifichi un &lt;a href=&quot;#o_install&quot;&gt;installazione basata su rete&lt;/a&gt; ma non specifichi entrambe queste opzioni, il programma di installazione cerca di configurare l'interfaccia di rete con &lt;em&gt;dhcp&lt;/em&gt;. Se hai bisogno di un gateway predefinito, specificalo con l'opzione &lt;em&gt;gateway&lt;/em&gt;. Ad esempio: &lt;ul&gt;&lt;li&gt;gateway=192.168.0.8&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallitmainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Opzioni kernel: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI (Advanced Configuration and Power Interface) è uno standard che definisce le interfacce di gestione del risparmio energetico e della configurazione tra un sistema operativo e il BIOS. Di solito, &lt;em&gt;acpi&lt;/em&gt; viene attivato ogni volta che viene rilevato un BIOS successivo all'anno 2000. Esistono molti parametri comunemente utilizzati per controllare il comportamento di ACPI: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- non usare l'ACPI per smistare gli interrupt PCI&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- solo i componenti di ACPI che sono necessari al boot rimangono attivi&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- disattiva completamente ACPI&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- attiva ACPI anche se il BIOS installato è precedente al 2000&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;In particolare nei nuovi computer sostituisce il vecchio sistema &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallitmainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Opzioni kernel: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM è una delle due strategie di risparmio energetico utiizzata nei computer moderni. Viene utilizzata principalmente sui computer portatili per funzioni quali la sospensione su disco, tuttavia può controllare anche l'arresto del computer dopo lo spegnimento. La funzionalità APM dipende dal corretto funzionamento del BIOS. Se il BIOS non funziona correttamente, APM può essere utilizzata in maniera limitata o può addirittura impedire il funzionamento del computer. Per questo motivo, è possibile disattivarla con il parametro &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- disattiva completamente APM&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Alcuni computer di nuova generazione possono beneficiare maggiormente del recente &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallitmainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Opzioni kernel: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Nella maggior parte delle workstation desktop vengono utilizzati dispositivi IDE, anziché SCSI. Per aggirare alcuni problemi hardware che possono verificarsi con i sistemi IDE, utiizza il parametro del kernel: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- disattiva il DMA per le unità IDE&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallitmainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;Opzioni programma di installazione: installa&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Di solito, l'origine dell'installazione viene cercata nei CD-ROM locali. Per l'installazione di rete, seleziona l'opzione &lt;em&gt;installa&lt;/em&gt;. I protocolli di installazione possibili sono: &lt;ul&gt;&lt;li&gt;FTP&lt;/li&gt;&lt;li&gt;NFS&lt;/li&gt;&lt;li&gt;HTTP&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;La sintassi da utilizzare è analoga agli URL standard. Se ad esempio il server è disponibile all'indirizzo 192.168.0.1 e vuoi eseguire un'installazione basata su NFS dalla directory /install di tale server, specifica la sorgente nel seguente modo: &lt;ul&gt;&lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;La scheda di rete sarà configurata con &lt;em&gt;dhcp&lt;/em&gt; oppure dovrai specificare manualmente i parametri come descritto in &lt;a href=&quot;#network&quot;&gt;opzioni di rete&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallitmainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Opzioni kernel: schermata di avvio&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;La schermata di avvio corrisponde all'immagine visualizzata all'avvio del sistema. &lt;ul&gt;&lt;li&gt;&lt;em&gt;schermata di avvio=0&lt;/em&gt; -- La schermata di avvio viene disattivata. Ciò può essere utile quando si utilizzano monitor molto vecchi o quando si verificano errori.&lt;/li&gt;&lt;li&gt;&lt;em&gt;schermata di avvio=verbose&lt;/em&gt; -- Attiva la schermata di avvio con la visualizzazione dei messaggi del kernel e di avvio.&lt;/li&gt;&lt;li&gt;&lt;em&gt;schermata di avvio=silent&lt;/em&gt; -- Attiva una schermata di avvio senza messaggi. Viene invece visualizzata una barra di avanzamento.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallitmainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;Opzioni programma di installazione: vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Per abilitare l'installazione VNC, specifica i parametri vnc e vncpassword:&lt;ul&gt;&lt;li&gt;&lt;em&gt;vnc=1 vncpassword=example&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Il server VNC verrà avviato e potrai controllare YaST2 attraverso qualsiasi client VNC da un sistema remoto.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallitmainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;Sistema di salvataggio&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;Sistema di salvataggio&lt;/em&gt; è un piccolo sistema di base caricato in memoria. Da qui è possibile apportare qualunque tipo di modifica ad un sistema installato. Dato che in questo sistema sono disponibili solo strumenti di basso livello, è consigliato per utenti esperti.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallitmainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;Selezione modalità video&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Premere &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; per visualizzare l'elenco delle modalità video supportate dalla scheda grafica in uso. La modalità migliore supportata dal monitor è preselezionata.&lt;/p&gt;
++
++&lt;p&gt;È possibile che il monitor non venga rilevato automaticamente. In questo caso, seleziona manualmente la modalità preferita.&lt;/p&gt;
++
++&lt;p&gt;Se nel sistema si verificano problemi con la scheda grafica durante l'installazione, è possibile utilizzare &lt;em&gt;modo testo&lt;/em&gt; per aggirarli.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallitnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/it/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Ritorna a &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalljamainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;ブートローダヘルプ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;@@@product@@@&lt;/em&gt; へようこそ&lt;/p&gt;
++
++&lt;p&gt;このメニューを使用して目的の機能を選択してください。 このヘルプシステムの操作がうまくいかない場合、 &lt;em&gt;@@@fkey_help@@@&lt;/em&gt; キーを押してヘルプシステムの &lt;a href=&quot;#help&quot;&gt;説明&lt;/a&gt; に入ってください。このメニューの主な機能は次の通りです:&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#harddisk&quot;&gt;ハードディスクから起動&lt;/a&gt;: この選択ではシステムには何も変更を加えません。インストールされたオペレーティングシステムを起動するだけです。&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#linux&quot;&gt;インストール&lt;/a&gt;: このインストールモードはほとんどのコンピュータで機能します。 起動中にシステムがフリーズする場合、またはディスクコントローラやネットワークカードなどのハードウエアコンポーネントの検出に問題がある場合、次のインストールオプションを試してください。&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#noacpi&quot;&gt;インストール -- ACPI 無効&lt;/a&gt;: 現在販売されている多くのコンピュータは ACPI を完全に実装していないか、実装に問題があります。この選択によりカーネルの ACPI サポートは無効になりますが、 IDE ハードディスク用の DMA のような多くのパフォーマンス機能は変わらず有効になります。&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#nolapic&quot;&gt;インストール -- ローカル APIC 無効&lt;/a&gt;: 標準インストールが失敗した場合、お使いのハードウエアがローカル APIC に対応していないためかもしれません。 これが原因と考えられる場合は、このオプションを使ってローカル APIC 対応なしでインストールを行なってください。&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#failsafe&quot;&gt;インストール -- 安全設定&lt;/a&gt;: &lt;em&gt;インストール&lt;/em&gt; がうまくいかなかった場合、このオプションを選択すると問題が解決されるかもしれません。&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#rescue&quot;&gt;レスキューシステム&lt;/a&gt;: このブートイメージではメモリ内で動作する小さな Linux システムを起動します。この仕組みはシステムが正しく起動しない場合に役立ちます。起動後は root でログインしてください。&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#firmware&quot;&gt;ファームウエアのテスト&lt;/a&gt;: ACPI とその他の BIOS 項目の妥当性を検証するテストツールを起動します。&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#memtest&quot;&gt;メモリテスト&lt;/a&gt;: メモリテストは新しくインストールしたメモリモジュールがきちんと動作しているか確認することができるだけではありません。これはコンピュータシステムの耐久テストであり、ハードウエアの問題が判明することもあります。&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#opt&quot;&gt;起動オプション&lt;/a&gt;: 起動オプションはシステムの動作を完全に変更してしまうかもしれません。 このオプションはカーネル用の設定です。&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ ヘルプ&lt;/a&gt;: このヘルプは状況依存です。起動画面で現在選択中の項目に応じて異なる画面を表示します。このヘルプシステム自身の説明も記載されています。&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: ブートローダで使用する言語とキーボードマップを設定します。&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ ビデオモード&lt;/a&gt;: ここではインストール中に使用する画面解像度を選択します。 グラフィカルなインストールに際して問題が発生した場合、 &lt;em&gt;テキストモード&lt;/em&gt; で回避できるかもしれません。&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ インストール元&lt;/a&gt;: インストール元を選択します。&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ ドライバ更新&lt;/a&gt;: とても新しいコンピュータにインストールする場合は、ドライバ更新が必要になるかもしれません。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalljamainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;ソフトウエア種類の選択&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;@@@product@@@ のうち 32 ビット版と 64 ビット版のどちらをインストールするかを選択することができます。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalljamaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;ドライバ更新&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ドライバ更新のフロッピィディスクまたは CD-ROM を指定する必要がある場合、 &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt; を押してください。 Linux カーネルをロードした後、ブートローダがドライバ更新メディアを挿入するよう要求します。&lt;/p&gt;
++
++&lt;p&gt;ドライバ更新は一般に、インストールの際に必要となる新しいバージョンのドライバまたはバグ修正が入ったフロッピィディスクの形で提供されます。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalljamainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;インストール -- 安全設定&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;インストール中にハングアップしたり、再現不可能なエラーが発生した場合には &lt;em&gt;インストール -- 安全設定&lt;/em&gt; を選択してください。このオプションは IDE ドライブの DMA 設定とすべての電源管理機能を無効にします。 &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; 、 &lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; および &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; についてのカーネルオプションも併せて参照してください。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalljamainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;ファームウエアのテスト&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI テーブルと他の多くの BIOS 部品を検証する BIOS チェッカーを開始します。 結果は USB ディスクか、またはネットワーク経由で保存することができます。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalljamainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::harddisk.html</a>
+===================================================================
+(Binary files differ)
+
+
+Property changes on: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::harddisk.html
+___________________________________________________________________
+Added: svn:mime-type
+ + application/octet-stream
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalljamainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;ヘルプシステムの使用&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ブートローダのオンラインヘルプは状況に合わせた表示を行ないます。メニュー項目を選択している場合はその項目についての情報を提供するほか、起動オプションを編集している場合はカーソル位置のオプションについて情報を調べます。&lt;/p&gt;
++
++&lt;p&gt;操作キー &lt;ul&gt;&lt;li&gt;&lt;em&gt;上矢印&lt;/em&gt;: 前のリンクを強調表示する&lt;/li&gt;&lt;li&gt;&lt;em&gt;下矢印&lt;/em&gt;: 次のリンクを強調表示する&lt;/li&gt;&lt;li&gt;&lt;em&gt;左矢印&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: 前のトピックに戻る&lt;/li&gt;&lt;li&gt;&lt;em&gt;右矢印&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;スペース&lt;/em&gt;: リンクをたどる&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: 1 ページ分スクロールアップ&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: 1 ページ分スクロールダウン&lt;/li&gt;&lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: ページの初めにジャンプ&lt;/li&gt;&lt;li&gt;&lt;em&gt;End&lt;/em&gt;: ページの最後にジャンプ&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: ヘルプの終了&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalljamaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;インストール元&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; を押すとインストール元を選択することができます。&lt;/p&gt;
++
++&lt;p&gt;このオプションは &lt;a href=&quot;#o_install&quot;&gt;インストール&lt;/a&gt; ブートオプションと同じ意味です。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalljamainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;言語とキーボードレイアウトの選択&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ブートローダで使用する言語とキーボードレイアウトを変更するには、 &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; を押してください。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalljamainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;インストール&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;既定のインストールを開始するには &lt;em&gt;インストール&lt;/em&gt; を選んでください。入力された &lt;em&gt;インストール&lt;/em&gt; は起動時に使用されます。この項目を選択すると一般的に利用可能な多くのハードウエアが使用できます。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalljamainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::memtest.html</a>
+===================================================================
+(Binary files differ)
+
+
+Property changes on: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::memtest.html
+___________________________________________________________________
+Added: svn:mime-type
+ + application/octet-stream
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalljamainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;インストール -- ACPI 無効&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;現在のハードウエアでは割り込み処理をコントロールするために ACPI (Advanced Configuration and Power Interface) を必要とする場合があります。 ACPI は古い APM システムに完全に取って代わるものです。&lt;/p&gt;
++
++&lt;p&gt;カーネルの起動中に問題が発生した場合、 &lt;em&gt;インストール -- ACPI 無効&lt;/em&gt; を選択してください。 ACPI に問題があるコンピュータについての既知の問題点は次の通りです: &lt;ul&gt;&lt;li&gt;起動時にカーネルがフリーズする&lt;/li&gt;&lt;li&gt;PCI カードが正しく検出されていないか、正しく初期化されていない&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#firmware&quot;&gt;ファームウエアのテスト&lt;/a&gt; の起動オプションを指定して ACPI 妥当性テストの結果を見ることもできます。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalljamainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;インストール -- ローカル APIC 無効&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;通常は APIC (Advanced Programmable Interrupt Controller) を利用しても何も問題はありません。 ただし、何か問題が発生した場合はこのオプションを使ってローカル APIC サポートなしで起動してみてください。&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt; (Advanced Configuration and Power Interface) と取り違えないよう注意してください。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalljamainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;起動オプション&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;使用できる起動オプションには 2 種類あります。 1 つはインストーラに影響を与えるオプションで、もう 1 つはカーネルオプションです。よく使われるオプションの一部を次に示します:&lt;/p&gt;
++
++&lt;p&gt;a) インストーラオプション &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;インストール&lt;/a&gt; -- インストール元の選択&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#network&quot;&gt;ネットワークオプション&lt;/a&gt; -- ネットワークオプション&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;VNC オプション&lt;/a&gt; -- VNC を経由してインストールするオプション&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;b) カーネルオプション &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;スプラッシュ&lt;/a&gt; -- スプラッシュ画面の動作に影響を与えます&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- 電源管理を切り替えます&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- &quot;詳細設定と電源インタフェース&quot; の略称です&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- IDE サブシステムを操作します&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalljamainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,13 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;インストーラオプション: ネットワークオプション&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ネットワークインタフェースを今すぐ設定することができます。ハードウェアは YaST2 を利用して後から検出します。ネットワークカードを設定するオプションの最低限の設定は IP アドレスとサブネットマスクの項目です。例: &lt;ul&gt;&lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;または短縮して: &lt;ul&gt;&lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#o_install&quot;&gt;ネットワークベースのインストール&lt;/a&gt; を指定しながらこれらのオプションを両方とも指定しない場合、インストーラは &lt;em&gt;DHCP&lt;/em&gt; でネットワークインタフェースを設定しようとします。デフォルトゲートウエイが必要な場合、オプション &lt;em&gt;ゲートウエイ&lt;/em&gt; でこのゲートウエイを指定してください。例: &lt;ul&gt;&lt;li&gt;gateway=192.168.0.8&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalljamainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;カーネルオプション: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI (Advanced Configuration and Power Interface) は、オペレーティングシステムと BIOS の間で決められた電源と設定管理インタフェースの標準です。既定では &lt;em&gt;acpi&lt;/em&gt; は BIOS が 2000 年より新しいものであると有効になります。 ACPI の動作をコントロールするために、いくつかのパラメータが用意されています: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- PCI の割り込み制御に ACPI を使わないようにする&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- ACPI のうち起動に関連する部分だけを有効にする&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- ACPI を完全に無効化する&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- BIOS が 2000 年以前の日付の場合でも ACPI を有効にする&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;特に新しいコンピュータでは、古い &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; システムに取って代わっています。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalljamainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;カーネルオプション: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM は現在のコンピュータで使用される 2 種類の電源管理ストラテジのうちの 1 つです。この機能はディスクへのサスペンド (Suspend to disk) のような機能に対してノート PC で主に使用されますが、パワーダウンした後にコンピュータの電源をオフにするような機能もあります。 APM は BIOS が正しく動作することを前提に作られているため、 BIOS が壊れた場合は APM の使用が制限されたり、コンピュータが機能しないこともあります。そのため、下記のパラメータでオフにすることもできます &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- APM を完全に無効化する&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;いくつかの最新コンピュータでは新しい &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt; を利用したほうが利点があるかもしれません。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalljamainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;カーネルオプション: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;IDE は SCSI と異なり、ほとんどのデスクトップワークステーションで広く使用されています。 IDE システムに発生したハードウェア問題を回避するには、カーネルパラメータを使用してください: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- IDE ドライブの DMA を無効にする&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalljamainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;インストーラオプション: インストール&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;既定ではローカルの CD-ROM ドライブをインストール元として検索します。ネットワークインストールの場合、 &lt;em&gt;インストール&lt;/em&gt; オプションを選択してください。使用可能なインストールプロトコルは下記の通りです。 &lt;ul&gt;&lt;li&gt;FTP&lt;/li&gt;&lt;li&gt;NFS&lt;/li&gt;&lt;li&gt;HTTP&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;使用する構文は一般的な URL に似ています。 例えばサーバが 192.168.0.1 で、そのサーバのディレクトリ /install から NFS ベースのインストールを行なう場合、以下のようにソースを指定してください: &lt;ul&gt;&lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;ネットワークカードは &lt;em&gt;DHCP&lt;/em&gt; で設定するか、 &lt;a href=&quot;#network&quot;&gt;ネットワークオプション&lt;/a&gt; で説明したように自分でパラメータを指定する必要があります。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalljamainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;カーネルオプション: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;スプラッシュ画面とはシステムが起動する際に表示される画像のことです。 &lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- スプラッシュ画面を無効にします。とても古いコンピュータを使用している場合や、何らかのエラーが起こる場合に便利です。&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- スプラッシュ画面を有効にし、あわせてカーネルと起動時のメッセージを表示します。&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- スプラッシュ画面を有効にしますが、メッセージを表示しません。進行状況のバーのみを表示します。&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalljamainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;インストーラオプション:vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;VNC インストールを使用するには、パラメータ vnc と vncpassword を指定してください: &lt;ul&gt;&lt;li&gt;&lt;em&gt;vnc=1 vncpassword=example&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;VNC サーバが起動され、リモートシステムから任意の VNC クライアントを経由して YaST2 をコントロールすることができるようになります。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalljamainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::rescue.html</a>
+===================================================================
+(Binary files differ)
+
+
+Property changes on: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::rescue.html
+___________________________________________________________________
+Added: svn:mime-type
+ + application/octet-stream
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalljamainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;ビデオモード選択&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;グラフィックカードがサポートするビデオモードの一覧を表示するには &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; キーを押してください。モニタが表示できるもっとも高いモードがあらかじめ選択されています。&lt;/p&gt;
++
++&lt;p&gt;モニタが自動的に検出されないこともあります。その場合は手動でモードを選択してください。&lt;/p&gt;
++
++&lt;p&gt;インストール中にグラフィックカードに問題が発生した場合、 &lt;em&gt;テキストモード&lt;/em&gt; が回避方法になるかもしれません。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalljanavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ja/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;&lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt; に戻る&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkomainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;부트 로더 도움말&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;@@@product@@@&lt;/em&gt; 에 오신것을 환영합니다&lt;/p&gt;
++
++&lt;p&gt;이 메뉴를 사용하여 원하는 기능을 선택합니다. 이 도움말 시스템에서 문제가 발생하면 &lt;em&gt;@@@fkey_help@@@&lt;/em&gt;를 눌러 도움말 시스템의 &lt;a href=&quot;#help&quot;&gt;설명&lt;/a&gt; 에 들어가세요. 이 메뉴에서 주요 기능은 다음과 같습니다:&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#harddisk&quot;&gt;하드디스크로 부팅&lt;/a&gt;: 이 선택사항은 앞서 설치된 운영체제만 시작할 뿐 시스템에 아무런 영향을 주지 않습니다.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#linux&quot;&gt;설치&lt;/a&gt;: 대부분의 머신은 이 설치 모드를 사용합니다. 부팅 도중 시스템이 멈추거나 하드웨어 관련 문제(디스크 제어기, 네트워크 카드 같은)가 발생하면, 다음의 설치 옵션 중 하나를 선택하세요.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#noacpi&quot;&gt;설치 -- ACPI 비활성화&lt;/a&gt;: 현재 판매되는 대부분의 컴퓨터가 불완전하거나, ACPI의 구현에 결함이 있습니다. 이 선택사항은 커널에서 ACPI 지원을 비활성화 시킵니다. 하지만 IDE 하드디스크의 DMA 기능 같은것들은 활성화합니다.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#nolapic&quot;&gt;설치 -- 내부 APIC 비활성화&lt;/a&gt;: 만약 정상적인 설치에 실패했다면, 시스템 하드웨어가 로컬 APIC를 지원하지 않을 수 있습니다. 그런 경우라면, 이 옵션을 사용하여 로컬 APIC 지원 없이 설치를 해보세요.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#failsafe&quot;&gt;설치 -- 안전 설정&lt;/a&gt;: &lt;em&gt;설치&lt;/em&gt;에 성공하지 못한 경우에는, 이 선택 항목으로 문제를 해결 할 수도 있습니다.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#rescue&quot;&gt;시스템 복구&lt;/a&gt;: 이 부팅 이미지는 RAM 을 이용한 작은 리눅스 시스템을 시작 시킵니다. 이것은 시스템에 문제가 발생한 경우에 유용합니다. 이것으로 부팅시킨 뒤, 루트로 로그인 할 수 있습니다.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#firmware&quot;&gt;펌웨어 검사&lt;/a&gt;: ACPI 및 BIOS의 부분의 유효성을 확인 할 BIOS 검사 도구가 실행 됩니다.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#memtest&quot;&gt;메모리 검사&lt;/a&gt;: 메모리 검사는 새 메모리 모듈을 검사하는데 유용합니다. 컴퓨터 시스템의 중요한 부분 및 문제에 대한 검사입니다.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#opt&quot;&gt;부트 옵션&lt;/a&gt;: 부트 옵션은 커널에 대한 설정입니다. 사용자 시스템 동작을 최적화 할 수 있게 변경할 수 있습니다.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ 도움말&lt;/a&gt;: 이것은 context sensitive 입니다. 부팅화면의 활성에 따라 서로 다른 화면을 보여 줍니다. 여기에 대한 설명은 도움말 시스템에 있습니다.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: 부트로더가 사용하는 언어와 키보드 배열 지정 합니다.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ 비디오 모드&lt;/a&gt;: 여기에서 설치 할 때의 해상도중 다른것을 선택합니다. 그래픽 모드 설치에 문제가 생길 수도 있고, 작업 도중 &lt;em&gt;텍스트 모드&lt;/em&gt; 있을 수 있습니다.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ 설치 소스&lt;/a&gt;: 설치할 소스를 선택합니다.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ 드라이버 업데이트&lt;/a&gt;: 최근 출시된 머신을 위해 드라이버 업데이트 설치가 필요 할 수 있습니다.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkomainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;소프트웨어 방식 선택&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;@@@product@@@ 의 32비트 또는 64비트 버전을 선택하세요.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkomaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;드라이버 업데이트&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;플로피 디스크나 CD-ROM 드라이버 업데이트가 필요하면, &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;를 누르세요. 리눅스 커널을 불러온 후에 부트 로더가 드라이버 업데이트 매체 삽입을 요구 할 것입니다.&lt;/p&gt;
++
++&lt;p&gt;드라이버 업데이트는 일반적으로 새 버전의 하드웨어 드라이버나, 버그 수정을 뜻합니다.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkomainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;설치 -- 안전 설정&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;설치 또는 irreproducible 오류를 만났을때 &lt;em&gt;설치 -- 안전 설정&lt;/em&gt; 를 선택하세요. 이 옵션은 IDE 드라이버의 DMA 와 모든 전원 관리 기능을 비활성화 합니다. 커널 옵션 &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;, &lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt;, &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt;을 참조하세요.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkomainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;펌웨어 검사&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;BIOS 검사기를 시작 합니다. BIOS의 ACPI 테이블 및 기타 부분의 유효성을 검사하고, 검사 결과를 USB 디스크나 네트워크를 통해 저장 할 수 있습니다.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkomainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;하드디스크로 부팅&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;설치된 OS 로 부팅&lt;/em&gt; 선택으로 하드디스크에 설치된 시스템으로 시작합니다. 이에 앞서 첫번째 하드디스크를 시작 할 때 MBR (Master Boot Record) 을 찾으므로 설치된 시스템이 있어야 합니다. 첫번째 하드디스크를 지칭하는 장치 ID 를 컴퓨터 BIOS(CMOS 셋업)에서 지정할 수 있습니다.&lt;/p&gt;
++
++&lt;p&gt;하드디스크로 컴퓨터를 시작하려고 하는데 잊어버리고 CD나 DVD를 꺼내지 않게되면 이것을 사용하세요.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkomainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;도움말 시스템 사용&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;부트로더 온라인 도움말은 context sensitive 입니다. 선택한 메뉴 아이템에 대한 정보를 얻거나, 부트 옵션을 편집 할 때 옵션에 커서가 올라가있으면 거기에 대한 정보를 조회 할 수 있습니다.&lt;/p&gt;
++
++&lt;p&gt;키 &lt;ul&gt;&lt;li&gt;&lt;em&gt;위 화살표&lt;/em&gt;: 앞의 링크를 하이라이트&lt;/li&gt;&lt;li&gt;&lt;em&gt;아래 화살표&lt;/em&gt;: 다음 링크를 하이라이트&lt;/li&gt;&lt;li&gt;&lt;em&gt;왼쪽 화살표&lt;/em&gt;, &lt;em&gt;백스페이스&lt;/em&gt;: 이전 주제로 되돌아가기&lt;/li&gt;&lt;li&gt;&lt;em&gt;오른쪽 화살표&lt;/em&gt;, &lt;em&gt;엔터&lt;/em&gt;, &lt;em&gt;스페이스&lt;/em&gt;: 다음 링크를&lt;/li&gt;&lt;li&gt;&lt;em&gt;페이지 업&lt;/em&gt;: 한장 위로&lt;/li&gt;&lt;li&gt;&lt;em&gt;페이지 다운&lt;/em&gt;: 한장 아래로&lt;/li&gt;&lt;li&gt;&lt;em&gt;처음&lt;/em&gt;: 첫장으로&lt;/li&gt;&lt;li&gt;&lt;em&gt;End&lt;/em&gt;: 마지막 장으로&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: 도움말 떠남&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkomaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;설치 소스&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; 를 눌러 설치할 소스를 선택합니다.&lt;/p&gt;
++
++&lt;p&gt;이것은 &lt;a href=&quot;#o_install&quot;&gt;설치&lt;/a&gt; 부트 옵션을 사용하는것과 같은 것입니다.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkomainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;언어 및 키보드 배열 선택&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; 을 눌러 부트 로더가 사용할 언어 및 키보드 배열을 변경합니다.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkomainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;설치&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;설치&lt;/em&gt; 선택으로 기본 설치를 시작합니다. &lt;a href=&quot;#opt&quot;&gt;부트 옵션&lt;/a&gt; 입력은 시작 할 때 사용됩니다. 이 항목은 하드웨어에서 사용할 수 있는 많은 기능을 활성화 할 수 있습니다.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkomainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;메모리 검사&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;포함된 &lt;em&gt;메모리 검사&lt;/em&gt; 는 시스템의 하드웨어 스트레스 검사를 제공합니다. 주요 기능은 고장난 RAM 을 감지하거나, 시스템 내의 많은 부분의 스트레스를 감지합니다.&lt;/p&gt;
++
++&lt;p&gt;메모리 오류가 발견되지 않았을 경우에도 메모리가 정상적일 것이라는 보장은 없습니다만, 대부분의 메모리 결함을 감지합니다.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkomainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;설치 -- ACPI 비활성화&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;현재 하드웨어는 ACPI (Advanced Configuration and Power Interface) 를 제어하는 인터럽트 처리를 요구합니다. 구형 APM 시스템을 ACPI 는 완벽하게 대체합니다.&lt;/p&gt;
++
++&lt;p&gt;&lt;em&gt;설치 -- ACPI 비활성화&lt;/em&gt; 를 선택하여 커널의 부팅 도중 문제가 발생한 경우 머신이 가지고 있는 알려진 문제 ACPI가: &lt;ul&gt;&lt;li&gt;부팅 도중 커널 뻗어버림&lt;/li&gt;&lt;li&gt;PCI 카드가 감지되지 않았거나 적당히 초기화됨&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#firmware&quot;&gt;펌웨어 검사&lt;/a&gt; 을 사용해 부트 옵션 및 ACPI 유효성 검사 결과 볼 수 있습니다.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkomainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;설치 -- 내부 APIC 비활성화&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;보통은 APIC (Advanced Programmable Interrupt Controller)에는 문제가 생기지 않습니다. 하지만 문제가 생긴것으로 보이면, 이 옵션을 사용하여 부팅 할 때 로컬 APIC 지원 없이 해보세요.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt; (Advanced Configuration and Power Interface)와 혼동하지 마세요.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkomainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;부트 옵션&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;부트 옵션으로 두가지 방식을 사용할 수 있습니다. 첫번째로, 설치 프로그램에 영향을 주는 옵션이고 두번째로, 커널 옵션 입니다. 일반적인 옵션은 다음과 같습니다:&lt;/p&gt;
++
++&lt;p&gt;a) 설치프로그램 옵션들 &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;설치&lt;/a&gt; -- 설치 소스 선택&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#network&quot;&gt;네트워크 옵션&lt;/a&gt; -- 네트워크 옵션&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;VNC 옵션&lt;/a&gt; -- VNC를 통한 설치를 위한 옵션&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;b) 커널 옵션 &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;스플래시&lt;/a&gt; -- 스플래시 화면의 동작 영향&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- 전원 관리 전환&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- 고급 설정 및 전원 인터페이스&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- IDE 서브시스템 제어&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkomainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,13 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;설치 옵션: Network Options&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;지금 바로 네트워크 인터페이스를 구성할 수 있습니다. 하드웨어는 나중에 YaST2에서 감지할 것입니다. 최소 옵션으로 호스트 IP 와 넷마스크로 네트워크 카드를 설정하세요. 예를 들어:&lt;ul&gt;&lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;또는 짧은 양식에서: &lt;ul&gt;&lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#o_install&quot;&gt;네트워크 설치&lt;/a&gt; 을 지정하고 이러한 옵션을 둘 다 지정하지 않고, 설치프로그램에서 네트워크 인터페이스를 &lt;em&gt;dhcp&lt;/em&gt; 와 함께 설정합니다. 만약 기본 게이트웨이가 필요하면, &lt;em&gt;gateway&lt;/em&gt; 옵션을 지정합니다. 예를 들어:&lt;ul&gt;&lt;li&gt;gateway=192.168.0.8&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkomainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;커널 옵션: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI는 (Advanced Configuration and Power Interface) 운영체제와 바이오스간의 전원관리 인터페이스를 정의하고 있는 표준입니다. 기본적으로 &lt;em&gt;acpi&lt;/em&gt;2000년 이후에 제조된 바이오스를 사용하고 있다면 acpi 옵션이 활성화될 것입니다. 다음은 ACPI 동작을 제어하기위해 일반적으로 사용되는 항목입니다:&lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- PCI 인터럽트 전달에 ACPI를 사용하지 않음&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- 부팅과 관련된 부분 중 ACPI 부분만 활성화&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- ACPI 를 완전히 끄기&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- 2000년 이전에 제조된 바이오스일지라도 강제로 ACPI 옵션을 켜기&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;특히 최신 컴퓨터에서 구형 &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; 시스템을 대체합니다.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkomainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;커널 옵션: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM(Advanced Power Management)은 요즘 컴퓨터에서 사용되고 있는 두 종류의 전원관리기술 중 하나입니다. 주로 휴대용에서 사용되는 &quot;디스크 일시 중지&quot;같은 기능은 물론, 전원이 공급이 중단된 이후의 컴퓨터를 끄는데 이 기술이 사용됩니다. APM은 정상적으로 동작하는 바이오스에 의지합니다. 만일 바이오스에 문제가 발생한다면 APM을 사용하는데 제약이 따를 뿐만 아니라 심지어 컴퓨터 동작을 방해할 수도 있습니다. 그러므로 APM 관련 항목은 기본적으로 매개변수 &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- ACPI 를 완전히 끄기&lt;/li&gt;&lt;/ul&gt; 와 함께 꺼져있을 수 있습니다.&lt;/p&gt;
++
++&lt;p&gt;최신 컴퓨터의 경우 새로운 &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt; 이 보다 더 유용할 것입니다.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkomainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;커널 옵션: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;SCSI 와는 달리 IDE 는 대부분의 데스크탑 워크스테이션에서 사용되고 있습니다. IDE 시스템에 문제가 발생할 경우에는 커널 매개변수를 사용하세요: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- IDE 드라이브용 DMA 끄기&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkomainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;설치 옵션: install&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;기본적으로, 내부 CD-ROM의 설치 소스를 검색합니다. 네트워크 인스톨을 위해서는&lt;em&gt;설치&lt;/em&gt; 옵션을 선택합니다. 설치 진행이 가능한 프로토콜은 &lt;ul&gt;&lt;li&gt;FTP&lt;/li&gt;&lt;li&gt;NFS&lt;/li&gt;&lt;li&gt;HTTP&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;구문 사용은 표준 URL 같은 것만을 사용합니다. 예를 들어, 192.168.0.1 에서 서버를 찾고 하고자 하는 NFS 기반 설치를 이 서버의 디렉토리 /install 에서 할 수 있습니다. 지정되는 소스는 다음과 같습니다: &lt;ul&gt;&lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;네트워크 카드는 둘중 하나를 사용하여 구성됩니다. &lt;em&gt;dhcp&lt;/em&gt; 또는 &lt;a href=&quot;#network&quot;&gt;네트워크 옵션&lt;/a&gt; 에서 자신의 설명에 따라 매개 변수를 지정해야 합니다.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkomainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;커널 옵션: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;스플래시 스크린은 시스템이 시작되는 동안 보여지는 사진입니다.&lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- 스플래시 스크린은 꺼져 있습니다. 아주 오래된 모니터를 사용하고 있거나, 오류가 발생했을 수 있습니다.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- 스플래시, 커널 및 부트 메시지가 보여지는 상태에서 활성화&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- 스플래시 활성화, 하지만 메시지는 없고, 대신에 진행률 막대가 그려집니다.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkomainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;설치 옵션: vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;VNC 설치를 활성화 한뒤 VNC 파라메터와 VNC 열쇠글 지정: &lt;ul&gt;&lt;li&gt;&lt;em&gt;vnc=1 vncpassword=example&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;원격 시스템 VNC 클라이언트에 대한 제어 및 VNC 서버 관리를 YaST2 에서 할 수 있습니다.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkomainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;시스템 복구&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;시스템 복구&lt;/em&gt; 는 적은 용량의 RAM 디스크를 기반으로 한 시스템입니다. 여기서, 설치된 시스템에 대한 모든 조정을 할 수 있습니다. 이 시스템에서 전문가를 위한 적은 도구만 사용가능합니다.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkomainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;비디오 모드 선택&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;@@@fkey_video@@@&lt;/em&gt; 를 눌러 그래픽 카드가 지원하는 비디오 모드 목록을 가져옵니다. 모니터에 표시할 수 있는 높은 모드를 미리 선택 할 수 있습니다.&lt;/p&gt;
++
++&lt;p&gt;사용자의 모니터가 자동으로 검색하지 못한 것도 가능합니다. 이 경우, 원하는 모드를 수동으로 선택하세요.&lt;/p&gt;
++
++&lt;p&gt;그래픽 카드에 문제가 있는 경우, 설치하는 동안 &lt;em&gt;텍스트 모드&lt;/em&gt; 을 사용 할 수 있습니다.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkonavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ko/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;&lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt; 에 되돌아감&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkymainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;Жүктөөгүч жардамы&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;@@@product@@@&lt;/em&gt; кош келиңиздер&lt;/p&gt;
++
++&lt;p&gt;Керектүү функцияны тандоо үчүн төмөнкү менюну колдонуңуз. Эгерде сизде жардам системасын аралоосунда кыйынчылыктар чыкса, анда жардам системанын &lt;a href=&quot;#help&quot;&gt;мүнөзүн&lt;/a&gt; көрүү үчүн &lt;em&gt;@@@fkey_help@@@&lt;/em&gt; баскычын басыңыз. Бул менюда көрсөтүлгөн негизги функциялар:&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#harddisk&quot;&gt;Катуу дисктен жүктөлүү&lt;/a&gt;: Бул тандоо, системага эч нерсе кылбайт. Ал мурда орнотулган операциондук системаны гана жүктөйт.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#linux&quot;&gt;Орнотуу&lt;/a&gt;: Бул режим көптөгөн учурларда иштетилет. Эгерде сиздин системаңыз жай иштеп баштаса же аппаратык жабдыктардын(диск контроллери же тармак карталары) аныктоосунда кыйынчылыктар пайда болсо, анда төмөнкү орнотуу параметрлерин колдонуп көрүңүз.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#noacpi&quot;&gt;Орнотуу - ACPI өчүк&lt;/a&gt;: Көптөгөн сатылган компьютерлер толук эмес же туура эмес ACPI реализациясын камтышы мүмкүн. Бул тандоо ядро ичинде ACPI колдоосун өчүрөт бирок кээ бир ылдамдыкка тиешелүү өзгөчөлүктөр жандырылган, мисалы IDE катуу дисктер үчүн DMA режими.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#nolapic&quot;&gt;Орнотуу - локалдык APIC өчүк&lt;/a&gt;: Эгерде жөнөкөй орнотуу болбой жатса анда сиздин жабдыктарыңыз APIC'ти колдобоошу мүмкүн. Эгерде ошондой болсо анда орнотууну APIC'сиз колдоо менен бул параметрди колдонуңуз.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#failsafe&quot;&gt;Орнотуу - коопсуз ырастоо параметрлери&lt;/a&gt;: Эгерде сиз &lt;em&gt;Орнотуу&lt;/em&gt; менен орнотууну аткаралбай калсаңыз анда бул тандоо сизге жардма бериши мүмкүн&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#rescue&quot;&gt;Аварийдик система&lt;/a&gt;: Бул жүктөөлүчү элес RAM эсине кичинекей Linux системасын жүктөйт. Эгерде сиздин системаңыз туура эмес башталып жатса бул ыкма өтө пайдалуу. Бул системанын жүктөөлүшү менен root колдонуучу атын колдонуп кириңиз.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#firmware&quot;&gt;Программа-жабдыктар текшерүүсү&lt;/a&gt;: ACPI жана BIOS'тун башка бөлүктөрүн текшерген BIOS текшерүү аспабын иштетет.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#memtest&quot;&gt;Эс тести&lt;/a&gt;: Эс тести жөн эле жаңы эс модулдарын текшерүүсүнө караганда өтө пайдалуу ыкма. Бул компьютер системасын көптөгөн бөлүктөрүн стресстик текшерүү жана жабдыктарда табылган каталарды аныкташы мүмкүн.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#opt&quot;&gt;Жүктөө параметрлери&lt;/a&gt;: Жүктөөлүү параметрлери сиздин системаңыздын журушун толугу менен өзгөртүшү мүмкүн. Бул ядро ырастоолору.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Жардам&lt;/a&gt;: Мазмундан көз каранды. Жүктөө экрандын активдүү элементке тиешелүү жардамы көрсөтүлөт жана бул жардам системанын баяны дагы камтылган.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Орноткуч колдонуучу тилин жана клавиатура жайгалышын тандаңыз.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Видео режими&lt;/a&gt;: Орнотуу мезгилинде колдонуулучу экран мүмкүнчүлүгүн тандаңыз. Эгерде сизде графикалык орнотууда кыйынчылыктар пайда болсо, анда &lt;em&gt;тексттик режим&lt;/em&gt; сизге жардам бериши мүмкүн.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Орнотуу булагы&lt;/a&gt;: Орнотуу булагын тандоо.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Драйвер жаңылоосу&lt;/a&gt;: Көбүнчө жаңы компьютерлер Драйвер жаңылоосун керектеши мүмкүн&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkymainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;Программалык камсыздоону тандоо&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Сиз орнотуу версиясын тандап алышыңыз мүмкүн: 32 же 64 биттик @@@product@@@ версиясы.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkymaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;Драйвер жаңылоосу&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Эгерде сизге драйвер жаңылоосу дискета же CD-ROM керек болсо, анда &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt; баскычын басыңыз. Жүктөөгүч Linux ядросу жүктөлгөндөн кийин драйвер жаңылоосун камтыган булакты киргизүүнү талап кылат.&lt;/p&gt;
++
++&lt;p&gt;Драйвер жаңылоосу бул жабдыктардын жаңы драйве версиясын же орнотуу мезгилинде керектүү каталардын жамактарын камтыган жөнөкөй дискета.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkymainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;Орнотуу - коопсуз ырастоо параметрлери&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Эгерде системаңыз орнотуу мезгилинде жай иштеп асылып жатса же түшүнүксүз каталар чыгып баратса, анда &lt;em&gt;Орнотуу - коопсуз ырастоо параметрлери&lt;/em&gt;'н тандаңыз. Бул параметр IDE түзүлүштөр үчүн DMA режимин жана бардык электр камсыздоо башкаруунун өзгөчөлүктөрүн өчүрөт. Кошумча &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;, &lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; жана &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; ядро параметрлерин дагы караңыз.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkymainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;Программа-жабдыктар текшерүүсү&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;BIOS'тун ACPI мүмкүнчүлүгүн жана BIOS'тун башка бөлүкчөлөрдүн BIOS текшерүүсүн иштетет. Текшерүү жыйынтыгын usb дискке же тармак аркылуу сактоо мүмкүн.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkymainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;Катуу дисктен жүктөөлүү&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Сиздин катуу дискиңизде орнотулган системаны жүктөө үчүн &lt;em&gt;Орнотулган ОС жүктөө&lt;/em&gt; тандаңыз. Бул система орнотулган болушу керек эмнеге дегенде биринчи катуу дисктин MBR(Башкы жүктөө жазылышы) гана баштатылат. Биринчи катуу диск түзүлүшүнүн ID'син компьютердин BIOS'у аныктап берет.&lt;/p&gt;
++
++&lt;p&gt;Эгерде сиз CD же DVD диск түзүлүшүнөн алып чыгууну унутуп жана компьютерди катуу дисктен жүктөөсүн каалаган учурда бул ыкманы колдонуңуз.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkymainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Жардам системасын колдонуу&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Онлайндык жүктөөгүч жардамы мазмундан көз каранды. Ал менюдан тандалаган элемент боюнча маалымат берет, же эгерде сиз жүктөөлүү параметрлерин өзгөртүп жаткан учурда, параметрде турган курсор боюнча маалыматты көрсөтүүнү аракеттенет.&lt;/p&gt;
++
++&lt;p&gt;Башкаруу баскычтары &lt;ul&gt;&lt;li&gt;&lt;em&gt;Жогору жебеси&lt;/em&gt;: мурунку шилтемени жаркыратат&lt;/li&gt;&lt;li&gt;&lt;em&gt;Ылдый жебеси&lt;/em&gt;: кийинки шилтемени жаркыратат&lt;/li&gt;&lt;li&gt;&lt;em&gt;Солго жебеси&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: мурунку бөлүмгө өтүү&lt;/li&gt;&lt;li&gt;&lt;em&gt;Оңго жебеси&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Боштук&lt;/em&gt;: шилтемедем өтүү&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: мурунку бетке өтүү&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: кийинки бетке өтүү&lt;/li&gt;&lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: беттин башына өтүү&lt;/li&gt;&lt;li&gt;&lt;em&gt;End&lt;/em&gt;: беттин аягына өтүү&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: жардам систе
+ масындан чыгуу&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkymaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;Орнотуу булагы&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Орнотуу булагын тандоо үчүн &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; баскычын басыңыз.&lt;/p&gt;
++
++&lt;p&gt;Бул эгерде &lt;a href=&quot;#o_install&quot;&gt;орнотуу&lt;/a&gt; жүктөө параметрин колдонгондой эле, экөө бир нерсе.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkymainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Тилди жана клавиатура жайгалышын тандоо&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Жүктөгүч колдонуучу тилин жана клавиатурасын өзгөртүү үчүн &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; баскычын басыңыз.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkymainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;Орнотуу&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Орнотууну алдын ала баштоо үчүн &lt;em&gt;Орнотуу&lt;/em&gt;'ну тандаңыз. Көрсөтүлгөн &lt;a href=&quot;#opt&quot;&gt;жүктөө параметрлери&lt;/a&gt; дагы башталышта колдонулат. Бул пункт бар болгон жабдыктандын көптөгөн жалпы өзгөчөлүктөрүн активдештирет.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkymainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;Эс тести&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;Эс тести&lt;/em&gt; жанык параметри системанын жабдыктардын стресстик тесттин жакшы мүмкүнчүлүгүн берет. Негизги максаты бузук RAM'дарды аныктоо, бирок андан тышкары системанын калган бөлктөрдүн жүктөмү аткарылат.&lt;/p&gt;
++
++&lt;p&gt;Эгерде эч кандай ката табылбаган болсо, анда эстин жакшы экендигин эч кандай кепилдиги жок бирок эстин көптөгөн дефектери табылмак эле.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkymainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;Орнотуу - ACPI өчүк&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Заманбап жабдыктарда көбүнчө токтолуштардын башкаруу үчүн ACPI (Жетилген система ырастоо интерфейси жана энергияны камсыздоо башкаруучусу) колдонулат. ACPI толугу менен эски APM системасын ордун алмаштырат.&lt;/p&gt;
++
++&lt;p&gt;Жүктөөлүү кезинде ядро менен кыйынчылыктар пайда болсо, анда &lt;em&gt;Орнотуу - ACPI өчүк&lt;/em&gt; тандаңыз. AC проблемаларын камтыган белгилүү машиналар проблемалары: &lt;ul&gt;&lt;li&gt;ядро жүктөөлүүдө токтотулуп жатат&lt;/li&gt;&lt;li&gt;PCI платалары табылган жок же туура эмес аныкталышты&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Сиз &lt;a href=&quot;#firmware&quot;&gt;Программа-жабдыктар текшерүүсү&lt;/a&gt; жүктөөлүү параметрин колдоно аласыз жана ACPI текшерүү жыйынтыгын көрө аласыз.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkymainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;Орнотуу - локалдык APIC өчүк&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Көбүнчө APIC (Жетилген программалоочу токтотулуштар башкаруучусу) менен эч кандай кыйынчылыктар пайда болбойт. Бирок эгерде сиз кээ бир проблемаларды тапкан болсоңуз, анда бул параметрди APIC колдоосуз жүктөөлүүнү колдонуп көрүңүз.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt; (Жетилген система ырастоо интерфейси жана энергияны камсыздоо башкаруучусу) менен адаштырбаңыз.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkymainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Жүктөөлүү параметрлери&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Жүктөөлүү параметрлердин эки түрү бар. Биринчиси бул орноткучка таасир тийгизген параметрлер. Экинчиси болсо ядро параметрлери. Алардын эң көп колдонулгандары:&lt;/p&gt;
++
++&lt;p&gt;a) орнотуу параметрлери: &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;орнотуу&lt;/a&gt; -- орнотуу булагын тандаңыз&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#network&quot;&gt;тармак параметрлери&lt;/a&gt; -- тармак параметрлери&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;vnc параметрлери&lt;/a&gt; -- VNC аркылуу орнотуунун параметрлери&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;b) ядро параметрлери: &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;заставка&lt;/a&gt; -- экрандык заставканы жандыруу/өчүрүү&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- электр камсыздоо башкаруусун иштетет&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- система ырастоо жетилген интерфейси жана энергияны камсыздоо башкаруучу&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- IDE системасын башкарат&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkymainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,13 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;Орнотуу параметрлери: Тармак параметрлери&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Тармак интерфейсин азыр ырастап койсо болот. Жабдык кийинчерек YaST2 менен аныкталат. Тармак картанын минималдуу ырастоо параметрлери түйюндүн IP адреси жана тармак маскасы болуп эсептелинет. Мисалы: &lt;ul&gt;&lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;же анын кыска формасында: &lt;ul&gt;&lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Ушул эки параметрлерди көрсөтпөй сиз &lt;a href=&quot;#o_install&quot;&gt;тармак менен орнотуу&lt;/a&gt;'ну тандасаңыз, анда орноткуч тармак картасын &lt;em&gt;dhcp&lt;/em&gt; жардамы менен ырастап көрөт. Эгерде сизге алдын ала шлюз керек болсо, анда аны &lt;em&gt;шлюз&lt;/em&gt; параметри менен көрсөтүңүз. Мисалы: &lt;ul&gt;&lt;li&gt;gateway=192.168.0.8&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkymainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Ядро параметрлери: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI (Система ырастоо жетилген интерфейси жана энергияны камсыздоо башкаруучу) бул операциондук система жана BIOS арасында стандарттык ырастоо жана энергияны камсыздоо башкаруу интерфесин түзөт. Алыдын ала, &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- PCI токтолуштарды башкарууда ACPIди колдонбоо&lt;/li&gt; жанык, эгерде BIOS дата версиясы 2000 жылдан кийин аныкталса. ACPI журуш-турушун башкаруу үчүн бир нече жалпы параметрлер бар: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- PCI токтолуштарды башкарууда ACPIди колдонбоо&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- ACPIдин жүктөлүүгө арналган бө
+ үгү гана активдүү калат&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- ACPIди толугу менен өчүрөт&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- BIOS дата версиясы 2000 жылдан мурун болсо да ACPIди жандырат&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Жаңы компьютердерде эски &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; системасын ордун алмаштырат.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkymainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Ядро параметрлери: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM бул азыркы компьютерлерде колдонулуп жаткан электр камсыздоо башкаруусунун эки стратегиядан бириси. Ал негизинен лаптоп компьютерлерде дискти токтотуу функцияларында колдонулат, бирок электр булагы өчкөн учурларда компьютердин өчүүсүндө колдонулушу мүмкүн. APM BIOSтун туура иштөөсүндө байланыштуу. Эгерде BIOS бузук болсо, анда APM колдонууда чектелүү же компьютер менен иштөөгө тыю салынышы мүмкүн. Бирок аны төмөнкү параметр менен өчүрсө болот &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- ACPIди толугу менен өчүрөт&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Кээ бир гана жаңы компьютердер башка &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt; караганда үстөмдүгү бар.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkymainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Ядро параметрлери: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;IDE, SCSI'ге караганда көбүнчө иштөө станцияларында колдонулат. IDE системаларда кээ бир жабдык каталарды чечүү үчүн, ядронун пераметрлерин колдонуңуз: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- IDE дисктер үчүн DMA режимин өчүрүү&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkymainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;Орнотуу параметрлери: install&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Алдын ала локалдык CD-ROM түзүлүштөрү орнотуу булактары болуп эсептелинет. Тармактан орнотуу үчүн &lt;em&gt;орнотуу&lt;/em&gt;'ну тандаңыз. Мүмкүн болгон тармак протоколдору: &lt;ul&gt;&lt;li&gt;FTP&lt;/li&gt;&lt;li&gt;NFS&lt;/li&gt;&lt;li&gt;HTTP&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Колдонулуп жаткан синтаксис бул жөнөкөй стандарттык эле URL. Мисалы, эгерде сиздин сервериңиз 192.168.0.1 адресинде жайгашкан болсо жана сиз ошол сервердин /install каталогундан NFS прокотол аркылуу орнотууну кааласаңыз, анда орнотуу булагын төмөнкүдөй көрсөтүңүз: &lt;ul&gt;&lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Тармак картасы &lt;em&gt;dhcp&lt;/em&gt; жардамы менен ырасталат же сиз &lt;a href=&quot;#network&quot;&gt;тармак параметрлери&lt;/a&gt; бөлүмүндө баяндалгандай өзүңуз ырастоолорду көрсөтүшүңүз керек.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkymainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Ядро параметрлери: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Экрандык заставка бул система жүктөлүп жатканда көрсөтүүлүчү сүрөт. &lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- Экрандык заставка өчүк. Бул өтө эски мониторлор колдонулуп же кандайдыр бир ката бар болгон кезде өтө пайдалуу ыкма.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Экрандык заставка жанык, бирок жүктөө жана ядро билдирүүлөрү көрсөтүлөт.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Экрандык заставка жанык жана эч кандай билдирүүлөр көрсөтүлбөйт. Билдирүүлөр ордуна аткарылып жаткан жүктөлүү индикатору көрсөтүлөт.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkymainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;Орнотуу параметрлери: vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;VNC орнотууга уруксат берүү үчүн vnc жана vncpassword параметрлерин көрсөтүңүз: &lt;ul&gt;&lt;li&gt;&lt;em&gt;vnc=1 vncpassword=example&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;VNC сервери баштатылат жана сиз башка узактагы системалардан VNC клиенти менен YaST2'ни башкара аласыз.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkymainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;Аварийдик система&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;Аварийдик система&lt;/em&gt; бул RAM'да кичинекей базалык система. Анын ичинен орнотулган системага өзгөртүүлөрдү киргизсе болот. Анын ичинде төмөн-деңгээлдүү утилиталар камтылган жана ошол үчүн специалисттерге гана арналган.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkymainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;Видео режимин тандоо&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Сиздин видео-карточкаңыз колдогон видео режимдердин тизмесин алуу үчүн &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; баскычын басыңыз. Монитордун эң жакшы режими тандалган болушу мүмкүн.&lt;/p&gt;
++
++&lt;p&gt;Балким сиздин мониторуңуз автоматтык түрдө аныкталбай калышы мүмкүн, анда жеке кол менен сиз каалаган режимди тандап алыңыз.&lt;/p&gt;
++
++&lt;p&gt;Эгерде сизде графикалык орнотууда кыйынчылыктар пайда болсо, анда &lt;em&gt;тексттик режим&lt;/em&gt; сизге жардам бериши мүмкүн.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallkynavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ky/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;&lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt; кайтуу&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallltmainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,103 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;Įkrovos tvarkyklės pagalba&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Welcome to &lt;em&gt;@@@product@@@&lt;/em&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this menu to select the desired function. If you have
++problems navigating in this help system, press
++&lt;em&gt;@@@fkey_help@@@&lt;/em&gt; to enter the &lt;a href=&quot;#help&quot;&gt;aprašymas&lt;/a&gt; of the help
++system. The main functions in this menu are:
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#harddisk&quot;&gt;Įkrauti iš kietojo disko&lt;/a&gt;: This selection will not do
++anything to the system. It only starts a previously installed
++operating system.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#linux&quot;&gt;Diegimas&lt;/a&gt;:
++This installation mode works on most machines. If you experience a
++system freeze during boot or problems with detection of your hardware
++components, such as disk controllers or network cards, try one of the
++following installation options.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#noacpi&quot;&gt;Diegimas -- ACPI uždraustas&lt;/a&gt;: Many of the
++currently-sold computers have incomplete or faulty ACPI
++implementations. This selection disables ACPI support in the
++kernel, but still enables many performance features, like DMA for IDE
++hard disks.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#nolapic&quot;&gt;Diegimas --Vietinis APIC uždraustas&lt;/a&gt;:
++If the normal installation fails, this might be due to the
++system hardware not supporting local APIC.
++If this seems to be the case, use this option to
++install without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#failsafe&quot;&gt;Diegimas -- Saugūs nustatymai&lt;/a&gt;: If you were not
++successful with &lt;em&gt;Diegimas&lt;/em&gt;, this selection might
++solve the issue.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#rescue&quot;&gt;Avarinė sistema&lt;/a&gt;: This boot image starts a small
++Linux system in RAM. This is useful if the system does not start properly.
++After booting this system, log in as root.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#firmware&quot;&gt;Firmware Test&lt;/a&gt;: Runs a BIOS test tool that validates
++ACPI and other parts of your BIOS.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#memtest&quot;&gt;Atminties testas&lt;/a&gt;: Memory testing is useful for more than
++checking installation of new memory modules. It is a stress test
++for a big part of your computer system and may indicate hardware
++problems.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#opt&quot;&gt;Įkrovos parametrai&lt;/a&gt;: The boot options may change the
++behavior of your system completely. They are settings for
++the kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Help&lt;/a&gt;: This is context sensitive. It will
++show different screens depending on the active element of the
++boot screen. There is also a description of this help system
++available.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Set language and keyboard mapping
++used by the boot loader.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Video Mode&lt;/a&gt;: Here, choose between
++different screen resolutions while installing. If you encounter
++problems with the graphical installation, the &lt;em&gt;tekstinis režimas&lt;/em&gt; may
++be a work-around for you.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Installation Source&lt;/a&gt;: Choose the
++installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Driver Update&lt;/a&gt;: For very new machines, a
++driver update may be needed to install the system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallltmainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;Programinės įrangos tipo pasirinkimas&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++You have the choice to install the 32-bit or 64-bit version of @@@product@@@.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallltmaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;Tvarkyklės atnaujinimas&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++If you need a driver update floppy or CD-ROM, press &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. The
++boot loader asks you to insert the driver update medium after
++loading the Linux kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++A driver update is typically a floppy with new versions of hardware
++drivers or bug fixes needed during installation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallltmainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,11 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;Diegimas -- Saugūs nustatymai&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Diegimas -- Saugūs nustatymai&lt;/em&gt; if you encounter hangs
++while installing or irreproducible errors. This option disables DMA
++for IDE drives and all power management features.
++See also the kernel options for &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;,
++&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; and &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallltmainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;Firmware Test&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Starts a BIOS checker that validates the ACPI tables
++and many other parts of your BIOS.
++Test results can be stored on usb disk or saved via network.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallltmainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,16 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;Įkrauti iš kietojo disko&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Įkrauti įdiegtą OS&lt;/em&gt; to start the system installed on
++your local hard disk. This system must be installed properly, because
++only the MBR (Master Boot Record) on the first hard disk is started.
++The device ID of the first hard disk is provided by the BIOS of
++the computer.
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this if you forgot to remove the CD or DVD from your
++drive and want to start the computer from the hard disk.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallltmainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Naudojimasis pagalbos sistema&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Viršutinė rodyklė&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Apatinė rodyklė&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Kairioji rodyklė&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Dešinioji rodyklė&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Tarpas&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;End&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallltmaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;Diegimo šaltinis&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; to choose an installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++This is the same as using the &lt;a href=&quot;#o_install&quot;&gt;įdiegti&lt;/a&gt;
++boot option.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallltmainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Kalbos ir klaviatūros išdėstymo pasirinkimas&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallltmainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;Diegimas&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Diegimas&lt;/em&gt; to start the default installation. The
++&lt;a href=&quot;#opt&quot;&gt;įkrovos parametrai&lt;/a&gt; entered are used in the
++start-up. This item activates many features of commonly available
++hardware.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallltmainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;Atminties testas&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The included &lt;em&gt;Atminties testas&lt;/em&gt; provides good possibilities to
++stress test the hardware of a system. Its main purpose is to detect
++broken RAM, but it also stresses many other parts of the system.
++&lt;/p&gt;
++
++&lt;p&gt;
++There is no guarantee that the memory is good if no errors are
++found, although most of memory defects will be found.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallltmainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,24 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;Diegimas -- ACPI uždraustas&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Current hardware usually requires ACPI (Advanced Configuration and Power Interface)
++to control the interrupt handling.
++ACPI completely replaces the old APM system.
++&lt;/p&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Diegimas -- ACPI uždraustas&lt;/em&gt; if you encounter
++problems during boot of the kernel. Known problems with machines that
++have problems with ACPI are:
++&lt;ul&gt;
++ &lt;li&gt;kernel freezes when booting&lt;/li&gt;
++ &lt;li&gt;PCI Cards are not detected or initialized properly&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++You may also try the &lt;a href=&quot;#firmware&quot;&gt;Firmware Test&lt;/a&gt; boot option
++and look at the test results of the ACPI validation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallltmainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;Diegimas --Vietinis APIC uždraustas&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Normally there are no problems with the APIC (Advanced Programmable Interrupt
++Controller). But if you seem to have some, try this option to boot
++without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++Please don't confuse this with &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt;
++(Advanced Configuration and Power Interface).
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallltmainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,28 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Įkrovos parametrai&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++There are two types of boot options available. First, there are
++options that affect the installer. Second, there are kernel
++options. Some of the more common options are:
++&lt;/p&gt;
++
++&lt;p&gt;
++a) installer options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;įdiegti&lt;/a&gt; -- select an installation source&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#network&quot;&gt;tinklo parametrai&lt;/a&gt; -- the network options&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;vnc parametrai&lt;/a&gt; -- options for installation via VNC&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++b) kernel options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallltmainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;Installer Options: Network Options&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++It is possible to configure the network interface right now. The
++hardware will be detected later by YaST2. The minimum set of options
++to configure your network card consists of host IP and netmask. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++or in a shorter form:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++If you specified a &lt;a href=&quot;#o_install&quot;&gt;network-based install&lt;/a&gt; and do
++not specify both of these options, the installer tries to configure
++the network interface with &lt;em&gt;dhcp&lt;/em&gt;. If you need a default
++gateway, specify this with the option &lt;em&gt;tinklo vartai&lt;/em&gt;. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;tinklo vartai=192.168.0.8&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallltmainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Branduolio parametrai: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallltmainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Branduolio parametrai: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallltmainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Branduolio parametrai: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallltmainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,30 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;Installer Options: install&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++By default, the local CD-ROMs are searched for the installation source.
++For a network install, select the
++&lt;em&gt;įdiegti&lt;/em&gt; option. Possible installation protocols are
++&lt;ul&gt;
++ &lt;li&gt;FTP&lt;/li&gt;
++ &lt;li&gt;NFS&lt;/li&gt;
++ &lt;li&gt;HTTP&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The syntax to use is just like standard URLs. For example,
++if your server is found at 192.168.0.1 and you want to do an NFS-based
++install from the directory /install on this server, specify
++the source as follows:
++&lt;ul&gt;
++ &lt;li&gt;install=nfs://192.168.0.1/diegimas&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The network card will either be configured with &lt;em&gt;dhcp&lt;/em&gt; or you
++must specify the parameters yourself as described in the
++&lt;a href=&quot;#network&quot;&gt;tinklo parametrai&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallltmainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Branduolio parametrai: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallltmainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;Installer Options: vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++To enable the VNC installation, specify the
++parameters vnc and vncpassword:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;vnc=1 vncpassword=pavyzdys&lt;/em&gt;&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The VNC server will be started and you may control YaST2 over any VNC
++client from a remote system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallltmainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;Avarinė sistema&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The &lt;em&gt;Avarinė sistema&lt;/em&gt; is a small RAM disk base system. From there,
++it is possible to make all kinds of changes to an installed system. Because
++only low-level tools are available in this system, it is intended for
++experts.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallltmainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;Video režimo pasirinkimas&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; to get the list of video modes your graphics card
++supports. The highest mode your monitor can display is preselected.
++&lt;/p&gt;
++
++&lt;p&gt;
++It is possible that your monitor cannot be detected automatically. In that
++case, select your preferred mode manually.
++&lt;/p&gt;
++
++&lt;p&gt;
++If your system has problems with the graphics card during the
++installation, the &lt;em&gt;tekstinis režimas&lt;/em&gt; may be a usable work-around.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallltnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/lt/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Grįžti į &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallmrmainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,103 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;बूट लोडर मदत&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Welcome to &lt;em&gt;@@@product@@@&lt;/em&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this menu to select the desired function. If you have
++problems navigating in this help system, press
++&lt;em&gt;@@@fkey_help@@@&lt;/em&gt; to enter the &lt;a href=&quot;#help&quot;&gt;वर्णन&lt;/a&gt; of the help
++system. The main functions in this menu are:
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#harddisk&quot;&gt;हार्ड डिस्कमधून बूट करा&lt;/a&gt;: This selection will not do
++anything to the system. It only starts a previously installed
++operating system.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#linux&quot;&gt;स्थापना&lt;/a&gt;:
++This installation mode works on most machines. If you experience a
++system freeze during boot or problems with detection of your hardware
++components, such as disk controllers or network cards, try one of the
++following installation options.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#noacpi&quot;&gt;स्थापना--एसीपीआय अक्षम&lt;/a&gt;: Many of the
++currently-sold computers have incomplete or faulty ACPI
++implementations. This selection disables ACPI support in the
++kernel, but still enables many performance features, like DMA for IDE
++hard disks.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#nolapic&quot;&gt; स्थापना—एपीआयसी अक्षम &lt;/a&gt;:
++If the normal installation fails, this might be due to the
++system hardware not supporting local APIC.
++If this seems to be the case, use this option to
++install without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#failsafe&quot;&gt; स्थापना – सुरक्षित सेटिंग्स &lt;/a&gt;: If you were not
++successful with &lt;em&gt;स्थापना&lt;/em&gt;, this selection might
++solve the issue.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#rescue&quot;&gt;बचाव प्रणाली&lt;/a&gt;: This boot image starts a small
++Linux system in RAM. This is useful if the system does not start properly.
++After booting this system, log in as root.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#firmware&quot;&gt;फर्मवेअर चाचणी&lt;/a&gt;: Runs a BIOS test tool that validates
++ACPI and other parts of your BIOS.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#memtest&quot;&gt;स्मरण चाचणी &lt;/a&gt;: Memory testing is useful for more than
++checking installation of new memory modules. It is a stress test
++for a big part of your computer system and may indicate hardware
++problems.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#opt&quot;&gt;बूट विकल्प&lt;/a&gt;: The boot options may change the
++behavior of your system completely. They are settings for
++the kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Help&lt;/a&gt;: This is context sensitive. It will
++show different screens depending on the active element of the
++boot screen. There is also a description of this help system
++available.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Set language and keyboard mapping
++used by the boot loader.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Video Mode&lt;/a&gt;: Here, choose between
++different screen resolutions while installing. If you encounter
++problems with the graphical installation, the &lt;em&gt;अक्षर स्थिती &lt;/em&gt; may
++be a work-around for you.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Installation Source&lt;/a&gt;: Choose the
++installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Driver Update&lt;/a&gt;: For very new machines, a
++driver update may be needed to install the system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallmrmainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;सोफ्टवेयर प्रकार निवड&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++You have the choice to install the 32-bit or 64-bit version of @@@product@@@.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallmrmaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;ड्रायव्हर अद्ययावत&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++If you need a driver update floppy or CD-ROM, press &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. The
++boot loader asks you to insert the driver update medium after
++loading the Linux kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++A driver update is typically a floppy with new versions of hardware
++drivers or bug fixes needed during installation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallmrmainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,11 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt; स्थापना – सुरक्षित सेटिंग्स &lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt; स्थापना – सुरक्षित सेटिंग्स &lt;/em&gt; if you encounter hangs
++while installing or irreproducible errors. This option disables DMA
++for IDE drives and all power management features.
++See also the kernel options for &lt;a href=&quot;#o_apm&quot;&gt;एपिएम&lt;/a&gt;,
++&lt;a href=&quot;#o_acpi&quot;&gt; एसिपिआई &lt;/a&gt; and &lt;a href=&quot;#o_ide&quot;&gt;आईडिई&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallmrmainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;फर्मवेअर चाचणी&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Starts a BIOS checker that validates the ACPI tables
++and many other parts of your BIOS.
++Test results can be stored on usb disk or saved via network.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallmrmainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,16 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;हार्ड डिस्कमधून बूट करा&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt; बूट स्थापना ओएस &lt;/em&gt; to start the system installed on
++your local hard disk. This system must be installed properly, because
++only the MBR (Master Boot Record) on the first hard disk is started.
++The device ID of the first hard disk is provided by the BIOS of
++the computer.
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this if you forgot to remove the CD or DVD from your
++drive and want to start the computer from the hard disk.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallmrmainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;मदत प्रणाली वापरताना&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ऊर्ध्वगामी बाण&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;अधोगामी बाण&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;डावा बाण&lt;/em&gt;, &lt;em&gt;बेकस्पेस&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;उजवा बाण&lt;/em&gt;, &lt;em&gt;एन्टर&lt;/em&gt;, &lt;em&gt;जागा&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;पान वर&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;पान खाली&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;होम&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;एन्ड&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;एस्केप&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallmrmaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt; स्थापना स्त्रोत&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; to choose an installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++This is the same as using the &lt;a href=&quot;#o_install&quot;&gt; स्थापना &lt;/a&gt;
++boot option.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallmrmainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;भाषा व किबोर्ड रचना निवड&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallmrmainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;स्थापना&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;स्थापना&lt;/em&gt; to start the default installation. The
++&lt;a href=&quot;#opt&quot;&gt;बूट विकल्प&lt;/a&gt; entered are used in the
++start-up. This item activates many features of commonly available
++hardware.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallmrmainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;स्मरण चाचणी &lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The included &lt;em&gt;स्मरण चाचणी &lt;/em&gt; provides good possibilities to
++stress test the hardware of a system. Its main purpose is to detect
++broken RAM, but it also stresses many other parts of the system.
++&lt;/p&gt;
++
++&lt;p&gt;
++There is no guarantee that the memory is good if no errors are
++found, although most of memory defects will be found.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallmrmainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,24 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;स्थापना--एसीपीआय अक्षम&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Current hardware usually requires ACPI (Advanced Configuration and Power Interface)
++to control the interrupt handling.
++ACPI completely replaces the old APM system.
++&lt;/p&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;स्थापना--एसीपीआय अक्षम&lt;/em&gt; if you encounter
++problems during boot of the kernel. Known problems with machines that
++have problems with ACPI are:
++&lt;ul&gt;
++ &lt;li&gt;kernel freezes when booting&lt;/li&gt;
++ &lt;li&gt;PCI Cards are not detected or initialized properly&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++You may also try the &lt;a href=&quot;#firmware&quot;&gt;फर्मवेअर चाचणी&lt;/a&gt; boot option
++and look at the test results of the ACPI validation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallmrmainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt; स्थापना—एपीआयसी अक्षम &lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Normally there are no problems with the APIC (Advanced Programmable Interrupt
++Controller). But if you seem to have some, try this option to boot
++without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++Please don't confuse this with &lt;a href=&quot;#noacpi&quot;&gt;एसिपिआई&lt;/a&gt;
++(Advanced Configuration and Power Interface).
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallmrmainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,28 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;बूट विकल्प&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++There are two types of boot options available. First, there are
++options that affect the installer. Second, there are kernel
++options. Some of the more common options are:
++&lt;/p&gt;
++
++&lt;p&gt;
++a) installer options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt; स्थापना &lt;/a&gt; -- select an installation source&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#network&quot;&gt;नेटवर्क विकल्प &lt;/a&gt; -- the network options&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt; विएनसि विकल्प &lt;/a&gt; -- options for installation via VNC&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++b) kernel options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;स्प्लेश&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;एपिएम&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt; एसिपिआई &lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;आईडिई&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallmrmainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt; स्थापनेचे विकल्प : नेटवर्क विकल्प &lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++It is possible to configure the network interface right now. The
++hardware will be detected later by YaST2. The minimum set of options
++to configure your network card consists of host IP and netmask. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;होस्टाआइपि=१९२.१६८.०.१० नेट्मास्क्= २५५.२५५.२५५.०&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++or in a shorter form:
++&lt;ul&gt;
++ &lt;li&gt; होस्टाआइपि=१९२.१६८.०.१० &lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++If you specified a &lt;a href=&quot;#o_install&quot;&gt; नेटवर्क बेस्ड स्थापना &lt;/a&gt; and do
++not specify both of these options, the installer tries to configure
++the network interface with &lt;em&gt;डिएचसिपि&lt;/em&gt;. If you need a default
++gateway, specify this with the option &lt;em&gt;गेटवे&lt;/em&gt;. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;गेटवे= १९२.१६८.०.१० &lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallmrmainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;केर्नल विकल्प = एसिपिआइ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt; एसिपिआई &lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;पिसिआइ=नो एसिपिआइ &lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt; एसिपिआइ = ओल्ड बूट&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt; एसिपिआइ = ओफ&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt; एसिपिआइ =फोर्स&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;एपिएम&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallmrmainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt; केर्नल विकल्प: एपिएम&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt; एपिएम = ओफ&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;एसिपिआई&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallmrmainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt; केर्नल विकल्प = आइडिई &lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt; आइडिई नोडिएमए&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallmrmainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,30 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;स्थापनेचे विकल्प: स्थापना &lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++By default, the local CD-ROMs are searched for the installation source.
++For a network install, select the
++&lt;em&gt; स्थापना &lt;/em&gt; option. Possible installation protocols are
++&lt;ul&gt;
++ &lt;li&gt;FTP&lt;/li&gt;
++ &lt;li&gt;NFS&lt;/li&gt;
++ &lt;li&gt;HTTP&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The syntax to use is just like standard URLs. For example,
++if your server is found at 192.168.0.1 and you want to do an NFS-based
++install from the directory /install on this server, specify
++the source as follows:
++&lt;ul&gt;
++ &lt;li&gt; स्थापना =एनएफएस://१९२.१६८.०.१/ स्थापना &lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The network card will either be configured with &lt;em&gt;डिएचसिपि&lt;/em&gt; or you
++must specify the parameters yourself as described in the
++&lt;a href=&quot;#network&quot;&gt;नेटवर्क विकल्प &lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallmrmainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;केर्नल विकल्प: स्प्लेश &lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;स्प्लेश=०&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;स्प्लेश = वर्बोस&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt; स्प्लेश= शांत&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallmrmainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt; स्थापनेचे विकल्प : विएनसि&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++To enable the VNC installation, specify the
++parameters vnc and vncpassword:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt; विएनसि=१ विएनसि पासवर्ड=उदाहरण&lt;/em&gt;&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The VNC server will be started and you may control YaST2 over any VNC
++client from a remote system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallmrmainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;बचाव प्रणाली&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The &lt;em&gt;बचाव प्रणाली&lt;/em&gt; is a small RAM disk base system. From there,
++it is possible to make all kinds of changes to an installed system. Because
++only low-level tools are available in this system, it is intended for
++experts.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallmrmainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt; व्हिडिओ स्थिती निवड&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; to get the list of video modes your graphics card
++supports. The highest mode your monitor can display is preselected.
++&lt;/p&gt;
++
++&lt;p&gt;
++It is possible that your monitor cannot be detected automatically. In that
++case, select your preferred mode manually.
++&lt;/p&gt;
++
++&lt;p&gt;
++If your system has problems with the graphics card during the
++installation, the &lt;em&gt;अक्षर स्थिती &lt;/em&gt; may be a usable work-around.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallmrnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/mr/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;परत जा&lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnbmainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;Hjelp for oppstartslaster&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Velkommen til &lt;em&gt;@@@product@@@&lt;/em&gt;&lt;/p&gt;
++
++&lt;p&gt;Bruk denne menyen for å velge ønsket funksjon. Hvis du har problemer med å finne frem i hjelpesystemet, trykk &lt;em&gt;@@@fkey_help@@@&lt;/em&gt; for å vise &lt;a href=&quot;#help&quot;&gt;beskrivelse&lt;/a&gt; for hjelpesystemet. Hovedfunksjonene i denne menyen er:&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#harddisk&quot;&gt;Start fra harddisk&lt;/a&gt;: Dette valget gjør ingenting med systemet. Det starter bare et tidligere installert operativsystem.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#linux&quot;&gt;Installasjon&lt;/a&gt;: Denne installasjonsmodusen fungerer for de fleste datamaskiner. Hvis systemet fryser under oppstart eller hvis det oppstår problemer med registrering av maskinvarekomponenter, f.eks. diskkontrollere eller nettverkskort, kan du forsøke ett av følgende installasjonsvalg.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#noacpi&quot;&gt;Installasjon--ACPI deaktivert&lt;/a&gt;: Mange datamaskiner har ufullstendige eller defekte ACPI-funksjoner. Dette valget deaktiverer ACPI-støtte i kjernen, men mange andre ytelsesfunksjoner vil fremdeles være aktivert, som DMA for IDE-harddisker.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#nolapic&quot;&gt;Installasjon--Lokal APIC deaktivert&lt;/a&gt;: Hvis den vanlige installasjonen mislykkes, kan det skyldes at maskinvaren ikke støtter lokal APIC. Hvis dette ser ut til å være tilfellet, bruker du dette alternativet til å installere uten lokal APIC-støtte.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#failsafe&quot;&gt;Installasjon--sikker modus&lt;/a&gt;: Hvis &lt;em&gt;Installasjon&lt;/em&gt; mislyktes, kan dette valget løse problemet.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#rescue&quot;&gt;Redningssystem&lt;/a&gt;: Dette oppstartsdiskbildet starter et lite Linux-system fra minnet. Dette er nyttig hvis systemet ikke starter som det skal. Logg inn som rot etter at systemet har startet opp.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#firmware&quot;&gt;Fastvarekontroll&lt;/a&gt;: Kjører et BIOS-testverktøy som kontrollerer APCI og andre deler av BIOS.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#memtest&quot;&gt;Minnekontroll&lt;/a&gt;: Kontroll av minnet er nyttig i flere situasjoner enn testing av nye minnebrikker. Kontrollen er en belastningstest for store deler av systemet, og kan påvise forskjellige maskinvarefeil.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#opt&quot;&gt;Oppstartsalternativer&lt;/a&gt;: Oppstartsvalgene kan endre systemets funksjon helt. Det er innstillinger som påvirker kjernen.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Hjelp&lt;/a&gt;: Hjelpen er kontekstsensitiv. Ulike skjermbilder vil vises, avhengig av det aktive elementet på oppstartsskjermen. Det finnes også en beskrivelse av dette Hjelp-systemet.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Angi språk og tastaturoppsett for oppstartslasteren.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Skjermmodus&lt;/a&gt;: Her kan du velge mellom ulike skjermoppløsninger for installasjonen. Hvis det oppstår problemer med den grafiske installasjonen, kan &lt;em&gt;tekstmodus&lt;/em&gt; være en løsning.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Installasjonskilde&lt;/a&gt;: Velg installasjonskilden.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Driveroppdatering&lt;/a&gt;: På helt nye maskiner kan det hende at du trenger en driveroppdatering for å installere systemet.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnbmainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;Valg av programvaretype&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Du kan velge å installere en 32-bit- eller 64-bit-versjon av @@@product@@@.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnbmaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;Driveroppdatering&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Trykk &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt; hvis du trenger en diskett eller en CD-ROM med en driveroppdatering. Oppstartslasteren vil be deg om å sette inn mediet med driveroppdateringen etter at Linux-kjernen er lastet.&lt;/p&gt;
++
++&lt;p&gt;En driveroppdatering er vanligvis en diskett med nye versjoner av maskinvaredrivere eller oppdateringer som kreves for installasjonen.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnbmainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;Installasjon--sikker modus&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Velg&lt;em&gt;Installasjon--sikker modus&lt;/em&gt; hvis systemet henger under installasjonen eller ved uforklarlige feil. Dette valget deaktiverer DMA for IDE-disker og alle strømstyringsfunksjoner. Se også kjernevalgene for &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;, &lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; og &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnbmainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;Fastvarekontroll&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Starter en BIOS-testverktøy som bekrefter gyldigheten av ACPI-tabellene og mange andre deler av BIOS. Resultatene kan lagres på en USB-enhet eller via på nettverket.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnbmainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;Start fra harddisk&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Velg&lt;em&gt;Start installert OS&lt;/em&gt; for å starte systemet som er installert på den lokale harddisken. Dette systemet må være riktig installert fordi bare MBR (Master Boot Record) på første harddisk vil bli startet. Enhets-ID-en for første harddisk hentes fra datamaskinens BIOS.&lt;/p&gt;
++
++&lt;p&gt;Bruk dette valget hvis du glemte å fjerne CD-en eller DVD-en fra stasjonen og vil starte datamaskinen fra harddisken.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnbmainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Bruke Hjelp-systemet&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Den elektroniske hjelpen for oppstartslasteren er kontekstsensitiv. Den gir informasjon om det valgte menyelementet eller forsøker å finne informasjon om valget som markøren er plassert på, når du redigerer oppstartsvalg.&lt;/p&gt;
++
++&lt;p&gt;Navigasjonstaster &lt;ul&gt;&lt;li&gt;&lt;em&gt;Pil opp&lt;/em&gt;: aktiver forrige lenke&lt;/li&gt;&lt;li&gt;&lt;em&gt;Pil ned&lt;/em&gt;: aktiver neste lenke&lt;/li&gt;&lt;li&gt;&lt;em&gt;Pil venstre&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: tilbake til forrige emne&lt;/li&gt;&lt;li&gt;&lt;em&gt;Pil høyre&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Mellomrom&lt;/em&gt;: følg lenken&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: bla én side oppover&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: bla én side nedover&lt;/li&gt;&lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: til begynnelsen av siden&lt;/li&gt;&lt;li&gt;&lt;em&gt;End&lt;/em&gt;: til slutten av siden&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: avslutt hjelpen&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnbmaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;Installasjonskilde&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Trykk &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; for å velge en installasjonskilde.&lt;/p&gt;
++
++&lt;p&gt;Dette er det samme som å bruke oppstartsvalget &lt;a href=&quot;#o_install&quot;&gt;installer&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnbmainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Valg av språk og tastaturoppsett&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Trykk på &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; for å endre språket og tastaturoppsettet for oppstartslasteren.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnbmainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;Installasjon&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Velg&lt;em&gt;Installasjon&lt;/em&gt; for å starte en standardinstallasjon. Angitt &lt;a href=&quot;#opt&quot;&gt;oppstartsalternativer&lt;/a&gt; benyttes ved oppstart. Dette elementet aktiverer mange funksjoner i vanlig tilgjengelig maskinvare.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnbmainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;Minnekontroll&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;Minnekontroll&lt;/em&gt; gir gode muligheter til å kontrollere maskinvaren på systemet. Hovedformålet er å oppdage dårlige minnebrikker, men andre deler av systemet blir også kontrollert.&lt;/p&gt;
++
++&lt;p&gt;Det er ikke helt sikkert at minnet er feilfritt dersom ingen feil blir funnet, selv om de fleste minnefeil vil bli funnet.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnbmainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;Installasjon--ACPI deaktivert&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Nye datamaskiner krever iblant ACPI (Advanced Configuration and Power Interface) for å styre avbruddshandlingen. ACPI erstatter det tidligere APM-systemet.&lt;/p&gt;
++
++&lt;p&gt;Velg &lt;em&gt;Installasjon--ACPI deaktivert&lt;/em&gt; hvis det oppstår problemer under oppstart av kjernen. Vanlige problemer på maskiner med ACPI-feil er: &lt;ul&gt;&lt;li&gt;kjernen fryser under oppstart&lt;/li&gt;&lt;li&gt;PCI-kort er ikke registrert eller riktig initialisert&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Du kan også forsøke oppstartsvalget &lt;a href=&quot;#firmware&quot;&gt;Fastvarekontroll&lt;/a&gt; og kontrollere testresultatene etter ACPI-kontrollen.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnbmainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;Installasjon--Lokal APIC deaktivert&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Vanligvis er det ingen problemer med APIC (Advanced Programmable Interrupt Controller). Hvis du likevel skulle støte på noen, forsøk dette valget for å starte uten lokal APIC-støtte.&lt;/p&gt;
++
++&lt;p&gt;Ikke bland dette sammen med &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt; (advanced configuration and power interface).&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnbmainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Oppstartsalternativer&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Det er to tilgjengelige typer oppstartsvalg, valg for installasjonsprogrammet og valg for kjernen. Noen av de vanligste valgene er:&lt;/p&gt;
++
++&lt;p&gt;a) valg for installasjonsprogrammet &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;installer&lt;/a&gt; -- velg en installasjonskilde&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#network&quot;&gt;nettverksvalg&lt;/a&gt; -- nettverksvalg&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;vnc-valg&lt;/a&gt; -- valg for installasjon via VNC&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;b) valg for kjernen &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;skjerm&lt;/a&gt; -- påvirker oppstartsbildet&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- slå strømstyring av og på&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- avansert oppsett og strømstyringsvalg&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- kontroller IDE-systemet&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnbmainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,13 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;Installasjonsvalg: nettverksvalg&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Du kan sette opp nettverksgrensesnittet allerede nå. Maskinvaren vil ble registrert senere av YaST2. Du må minst angi IP-adressen og nettverksmasken for å konfigurere et nettverkskort. For eksempel:&lt;ul&gt;&lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;eller i et kortere format: &lt;ul&gt;&lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Hvis du spesifiserte en &lt;a href=&quot;#o_install&quot;&gt;nettverksbasert installasjon&lt;/a&gt; uten å definere disse to valgene, vil installasjonsprogrammet forsøke å konfigurere nettverksgrensesnittet med &lt;em&gt;dhcp&lt;/em&gt;. Hvis du trenger en standard systemport, angir du dette med valget &lt;em&gt;systemport&lt;/em&gt;. For eksempel: &lt;ul&gt;&lt;li&gt;gateway=192.168.0.8&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnbmainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Kjernevalg: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI (Advanced Configuration and Power Interface) er en standard som definerer kommunikasjonen med hensyn til strømstyring og konfigurasjon mellom et operativsystem og BIOS. Som standard aktiveres &lt;em&gt;acpi&lt;/em&gt; dersom BIOS er nyere enn fra år 2000. Det finnes flere vanlige parametere som som styrer ACPI-funksjonen:&lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- ikke bruk ACPI for å rute PCI-avbrudd&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- bare de delene av ACPI som er relevant for oppstart, skal være aktivert&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- deaktiver ACPI helt&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- aktiver ACPI selv om BIOS er eldre enn fra 2000&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Spesielt på nye datamaskiner, erstatter dette det tidligere &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;-systemet.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnbmainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Kjernevalg: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM er én av to strømstyringsstrategier som brukes på moderne datamaskiner. APM brukes hovedsakelig på bærbare maskiner for funksjoner som diskdvale, men kan også slå av maskinen når strømmen brytes. APM krever at BIOS fungerer riktig. Hvis BIOS er skadet, har APM begrenset nytte, og kan til og med føre til at datamaskinen ikke fungerer. Derfor kan APM deaktiveres med parameteren &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- deaktiver APM helt&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;For enkelte helt nye datamaskiner kan det være en fordel å bruke den nyere &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnbmainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Kjernevalg: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;IDE benyttes, i motsetning til SCSI, for de fleste skrivebordsmaskiner. For å unngå enkelte maskinvareproblemer som forekommer med IDE-systemer, bruk kjerneparameteren: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- deaktiver DMA for IDE-disker&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnbmainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;Installasjonsvalg: installer&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Som standard søker installasjonsprogrammet etter en kilde på lokale CD-ROM-stasjoner. For en nettverksinstallasjon, velg &lt;em&gt;installer&lt;/em&gt;. Mulige installasjonsprotokoller er &lt;ul&gt;&lt;li&gt;FTP&lt;/li&gt;&lt;li&gt;NFS&lt;/li&gt;&lt;li&gt;HTTP&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Syntaksen er den samme som i vanlige nettadresser. Hvis for eksempel serveren befinner seg på 192.168.0.1 og du vil utføre en NFS-basert installasjon fra katalogen /install på denne serveren, angir du følgende kilde: &lt;ul&gt;&lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Nettverkskortet vil enten bli konfigurert med &lt;em&gt;dhcp&lt;/em&gt;, eller du må definere parametrene selv, som beskrevet i &lt;a href=&quot;#network&quot;&gt;nettverksvalg&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnbmainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Kjernevalg: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Oppstartsskjermen er bildet som vises når systemet starter opp. &lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- Oppstartsbildet slås av. Dette kan være nyttig for svært gamle skjermer, eller hvis det oppstår feil.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Aktiverer et oppstartsbilde, men kjerne- og oppstartsmeldinger vises likevel.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Aktiverer et oppstartsbilde, men ingen meldinger. En forløpsindikator vises i stedet.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnbmainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;Installasjonsvalg: vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;For å aktivere VNC-installasjon, definer parametrene vnc og vncpassword: &lt;ul&gt;&lt;li&gt;&lt;em&gt;vnc=1 vncpassword=eksempel&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;VNC-serveren vil bli startet, og du kan styre YaST2 via en VNC-klient fra et eksternt system.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnbmainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;Redningssystem&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;Redningssystem&lt;/em&gt; er et lite grunnsystem som kjøres direkte fra minnet. Fra dette er det mulig å utføre alle slags endringer på et installert system. Dette systemet inneholder bare grunnleggende verktøy, og er beregnet på avanserte brukere.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnbmainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;Valg av skjermmodus&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Trykk &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; for å få opp en liste over skjermmoduser som støttes av grafikkortet. Den høyeste modusen som støttes av skjermen, er forhåndsvalgt.&lt;/p&gt;
++
++&lt;p&gt;Det kan hende at skjermen ikke oppdages automatisk. Velg i så fall ønsket modus manuelt.&lt;/p&gt;
++
++&lt;p&gt;Hvis systemet har problemer med grafikkortet under installasjonen, kan det hende at &lt;em&gt;tekstmodus&lt;/em&gt; bruker en reserveløsning.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnbnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nb/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Tilbake til &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnlmainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;Bootloader-help&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Welkom bij &lt;em&gt;@@@product@@@&lt;/em&gt;&lt;/p&gt;
++
++&lt;p&gt;Gebruik dit menu om de gewenste functie te selecteren. Als u problemen ondervindt bij het navigeren door dit helpsysteem, druk dan op &lt;em&gt;@@@fkey_help@@@&lt;/em&gt; om &lt;a href=&quot;#help&quot;&gt;beschrijving&lt;/a&gt; van het helpsysteem binnen te gaan. De hoofdfuncties van dit menu zijn:&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#harddisk&quot;&gt;Van harde schijf opstarten&lt;/a&gt;: Deze selectie zal geen wijzigingen aan het systeem aanbrengen. Het start enkel een eerder geïnstalleerd besturingssysteem op.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#linux&quot;&gt;Installatie&lt;/a&gt; Deze installatiemodus werkt op de meeste computers. Als uw systeem bevriest tijdens het opstarten of problemen ondervindt bij het detecteren van uw hardwarecomponenten, zoals schijfcontrollers of netwerkkaarten, probeer dan een van de volgende installatieopties.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#noacpi&quot;&gt;Installatie - ACPI uitgeschakeld&lt;/a&gt;: Veel van de computers die momenteel worden verkocht hebben een incomplete of verkeerde ACPI-implementatie. Deze selectie schakelt ACPI-ondersteuning in de kernel uit, maar laat veel prestatiefuncties, zoals DMA voor IDE-stations, geactiveerd.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#nolapic&quot;&gt;Installatie -- Local APIC uitgeschakeld&lt;/a&gt;: Als de normale installatie mislukt, dan kan dit worden veroorzaakt doordat uw hardware geen local APIC ondersteunt. Als dit het geval blijkt, gebruik dan deze optie om zonder ondersteuning voor APIC te installeren.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#failsafe&quot;&gt;Installatie - Veilige instellingen&lt;/a&gt;: Als u niet succesvol was met &lt;em&gt;Installatie&lt;/em&gt;, dan kan deze selectie het probleem mogelijk oplossen.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#rescue&quot;&gt;Reddingssysteem&lt;/a&gt;: Deze bootimage start een klein Linux-systeem in uw RAM-geheugen. U kunt het gebruiken als uw systeem niet goed opstart. Na het starten van dit systeem dient u als root in te loggen.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#firmware&quot;&gt;Firmware-test&lt;/a&gt;: Voert een BIOS-test uit die ACPI en andere delen van uw BIOS valideert.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#memtest&quot;&gt;Geheugentest&lt;/a&gt;:Geheugen testen kunt u voor meer gebruiken dan alleen het installeren van nieuwe geheugenmodules controleren. Het doet een stesstest van een groot deel van uw computersysteem en kan hardwareproblemen ontdekken.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#opt&quot;&gt;Opstartopties&lt;/a&gt;: De opstartopties kunnen het gedrag van uw systeem compleet veranderen. Het zijn instellingen voor de kernel.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Help&lt;/a&gt;:Dit is contextgevoelig. Het zal verschillende schermen tonen afhankelijk van het actieve element in het opstartscherm. Er is ook een beschrijving van dit helpsysteem beschikbaar.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;Stel de taal en toetsenbordindeling in om te gebruiken in de bootloader.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Video Mode&lt;/a&gt;: Hier kunt u tijdens de installatie kiezen uit verschillende schermresoluties. Als u problemen ondervindt met het grafische installatieprogramma, dan kan &lt;em&gt;tekstmodus&lt;/em&gt; misschien beter voor u werken.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Installatiebron&lt;/a&gt;: Kies de installatiebron.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Opwaardering voor apparaatstuurprogramma&lt;/a&gt;: Voor zeer nieuwe computers kan een stuurprogramma-opwaardering nodig zijn om het systeem te installeren.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnlmainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;Softwaretype selecteren&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;U kunt kiezen uit het installeren van een 32-bits of 64-bits versie van @@@product@@@.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnlmaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;Stuurprogramma-opwaardering&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Als u een diskette of cd-rom met bijgewerkte stuurprogramma's nodig heeft, druk op &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. De bootloader zal u vragen om het medium te plaatsen nadat de Linux-kernel is geladen.&lt;/p&gt;
++
++&lt;p&gt;Een stuurprogramma-opwaardering is meestal een diskette met nieuwe versies van stuurprogramma's of bugreparaties die nodig zijn gedurende de installatie.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnlmainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;Installatie - Veilige instellingen&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Selecteer &lt;em&gt;Installatie - Veilige instellingen&lt;/em&gt; als het systeem blijft hangen tijdens de installatie of niet-reproduceerbare fouten geeft. Deze optie schakelt DMA voor IDE-stations uit en alle energiebeheerfuncties. Zie ook de kernelopties voor &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;, &lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; en &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnlmainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;Firmware-test&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Start een BIOS-controleprogramma dat de ACPI-tabellen en vele andere delen van uw BIOS valideert. Testresultaten kunnen worden opgeslagen op een USB-schijf of over een netwerk.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnlmainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;Van harde schijf opstarten&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Selecteer &lt;em&gt;Geïnstalleerd systeem starten&lt;/em&gt; om een systeem dat op uw lokale harde schijf is geïnstalleerd te starten. Dit systeem moet goed zijn geïnstalleerd, omdat alleen de MBR op de eerste harde schijf wordt gestart. De stations-ID van de eerste harde schijf wordt geleverd door de BIOS van de computer.&lt;/p&gt;
++
++&lt;p&gt;Gebruik dit als u vergeten bent de cd en dvd uit uw station te verwijderen en de computer vanaf de harde schijf wilt opstarten.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnlmainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Het helpsysteem gebruiken&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;De online-help van de bootloader is contextgevoelig. Het geeft u informatie over de geselecteerde menu-optie of, als u opstart-opties aan het bewerken bent, probeert informatie over de optie die zich onder de cursor bevindt op te zoeken.&lt;/p&gt;
++
++&lt;p&gt;Navigatietoetsen &lt;ul&gt;&lt;li&gt;&lt;em&gt;Pijl omhoog&lt;/em&gt;: vorige koppeling accentueren&lt;/li&gt;&lt;li&gt;&lt;em&gt;Pijl omlaag&lt;/em&gt;: volgende koppeling accentueren&lt;/li&gt;&lt;li&gt;&lt;em&gt;Pijl links&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: ga terug naar het vorige onderwerp&lt;/li&gt;&lt;li&gt;&lt;em&gt;Pijl rechts&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Spatie&lt;/em&gt;: volg de koppeling&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: ga een pagina omhoog&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: ga een pagina omlaag&lt;/li&gt;&lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: ga naar pagina-begin&lt;/li&gt;&lt;li&gt;&lt;em&gt;Eind&lt;/em&gt;: ga naar pagina-einde&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: verlaat de helpfunctie&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnlmaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;Installatiebron&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Druk op &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; om een installatiebron te selecteren.&lt;/p&gt;
++
++&lt;p&gt;Dit is hetzelfde als de opstartoptie &lt;a href=&quot;#o_install&quot;&gt;installeren&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnlmainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Taal en toetsenbordindeling selecteren&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Druk op &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; om de taal en toetsenbordindeling van de bootloader te wijzigen.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnlmainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;Installatie&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Selecteer &lt;em&gt;Installatie&lt;/em&gt; om de standaard installatie te starten. De ingevoerde &lt;a href=&quot;#opt&quot;&gt;opstartopties&lt;/a&gt; worden gebruikt tijdens het opstarten. Dit item activeert veel functies van algemeen beschikbare hardware.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnlmainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;Geheugentest&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;De ingesloten &lt;em&gt;Geheugentest&lt;/em&gt; levert goede mogelijkheden tot een stress-test van de hardware van een systeem. Het hoofddoel is om kapot RAM-geheugen te ontdekken, maar het test ook vele andere onderdelen van het systeem.&lt;/p&gt;
++
++&lt;p&gt;Er is geen garantie dat het geheugen goed is als er geen fouten zijn gevonden alhoewel de meeste fouten in het geheugen zullen worden gevonden.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnlmainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;Installatie - ACPI uitgeschakeld&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Hedendaagse hardware vereist gebruikelijk ACPI (Advanced Configuration and Power Interface) voor het aansturen van de interrupt handling. ACPI vervangt het oude APM-systeem volledig.&lt;/p&gt;
++
++&lt;p&gt;Selecteer &lt;em&gt;Installatie - ACPI uitgeschakeld&lt;/em&gt; als u problemen tegenkomt tijdens het opstarten van de kernel. Bekende problemen met computers die problemen met ACPI hebben zijn: &lt;ul&gt;&lt;li&gt;kernel bevriest tijdens het opstarten&lt;/li&gt;&lt;li&gt;PCI-kaarten zijn niet goed gedetecteerd of geïnitialiseerd&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;U kunt ook de opstartoptie &lt;a href=&quot;#firmware&quot;&gt;Firmware-test&lt;/a&gt; proberen en de testresultaten van de ACPI-validatie bekijken.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnlmainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;Installatie -- Local APIC uitgeschakeld&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Normaliter zijn er geen problemen met APIC (Advanced Programmable Interrupt Controller). Maar als u toch problemen tegenkomt, dan kunt u deze opstartoptie proberen om zonder APIC-ondersteuning op te starten.&lt;/p&gt;
++
++&lt;p&gt;Verwar dit niet met &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt; (Advanced Configuration and Power Interface).&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnlmainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Opstartopties&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Er zijn twee soorten opstartopties beschikbaar. De eersten zijn opties die het installatieprogramma beïnvloeden. De tweede zijn de kernelopties. Sommige meer algemene opties zijn:&lt;/p&gt;
++
++&lt;p&gt;a) installatieopties &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;installeren&lt;/a&gt; -- installatiebron selecteren&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#network&quot;&gt;netwerkopties&lt;/a&gt; -- de netwerkopties&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;vnc-opties&lt;/a&gt; -- opties voor installatie via VNC&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;b) kernelopties &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;opstartscherm&lt;/a&gt; -- beïnvloedt het gedrag van het opstartscherm&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- schakel energiebeheer om&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- geavanceerde configuratie en energie-interface&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- het IDE-subsysteem aansturen&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnlmainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,13 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;Installatieopties: netwerkopties&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Het is mogelijk om nu het netwerkinterface in te stellen. De hardware zal later door YaST2 worden gedetecteerd. De minimale set opties om uw netwerkkaart mee in te stellen bestaat uit een host-IP en netwerkmasker. Bijvoorbeeld: &lt;ul&gt;&lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;of in een kortere vorm: &lt;ul&gt;&lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Als u een &lt;a href=&quot;#o_install&quot;&gt;netwerkinstallatie&lt;/a&gt; hebt gespecificeerd maar niet deze beide opties, dan zal het installatieprogramma proberen de netwerkinterface in te stellen met &lt;em&gt;dhcp&lt;/em&gt;. Als u een standaardgateway nodig hebt, geef die dan op met de optie &lt;em&gt;gateway&lt;/em&gt;. Bijvoorbeeld: &lt;ul&gt;&lt;li&gt;gateway=192.168.0.8&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnlmainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Kernelopties: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI (Advanced Configuration and Power Interface) is een standaard die interfaces voor energie- en configuratiebeheer tussen een besturingssysteem en de BIOS definieert. Standaard wordt &lt;em&gt;acpi&lt;/em&gt;ingeschakeld als een BIOS is gevonden die nieuwer is dan uit het jaar 2000. Er zijn diverse veelgebruikte parameters die het gedrag van ACPI bepalen: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- gebruik geen ACPI voor het routeren van PCI-interrupts&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- alleen de delen van ACPI die relevant zijn voor het opstarten blijven geactiveerd&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- schakel ACPI volledig uit&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; - schakel ACPI in, ook als uw BIOS van voor het jaar 2000 dateert&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Vooral bij nieuwe computers, het vervangt het oude &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;-systeem.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnlmainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Kernelopties: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM is een van de twee energiebeheerstrategieën die gebruikt wordt op de huidige computers. Het wordt voornamelijk gebruikt bij laptops voor functies zoals slaapstand naar schijf, maar het kan ook verantwoordelijk zijn voor het uitschakelen van de computer nadat u deze heeft afgesloten. APM is afhankelijk van een correct werkend BIOS. Als een BIOS niet correct werkt, dan kan APM slechts gedeeltelijk werken of zelfs het functioneren van de computer belemmeren. Daarom kunt u het uitschakelen met deze parameter &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- schakel APM volledig uit&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Sommige zeer nieuwe computers hebben meer voordeel bij de nieuwere &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnlmainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Kernelopties: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;IDE wordt, in tegenstelling tot SCSI, algemeen gebruikt op de meeste desktopwerkstations. Om hardwareproblemen die bij IDE-systemen kunnen voorkomen te omzeilen gebruikt u de parameter: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- DMA voor IDE-stations uitschakelen&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnlmainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;Installatieopties: installeren&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Standaard worden de lokale CD-ROM's doorzocht op de installatiebron. Voor een netwerkinstallatie selecteert u de optie &lt;em&gt;installeren&lt;/em&gt;. Mogelijke installatieprotocollen zijn &lt;ul&gt;&lt;li&gt;FTP&lt;/li&gt;&lt;li&gt;NFS&lt;/li&gt;&lt;li&gt;HTTP&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;De syntaxis die u moet gebruiken is hetzelfde als bij standaard URL-adressen. Bijvoorbeeld, als uw server gevonden is op 192.168.0.1 en u wilt een NFS-gebaseerde installatie doen vanuit de map /install op deze server, geef dan de bron als volgt op: &lt;ul&gt;&lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;De netwerkkaart zal worden ingesteld met &lt;em&gt;dhcp&lt;/em&gt;, of u kunt zelf de parameters opgeven zoals beschreven in &lt;a href=&quot;#network&quot;&gt;netwerkopties&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnlmainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Kernelopties: opstartscherm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Het opstartscherm is de afbeelding die getoond wordt tijdens de systeemstart. Deze wordt ook wel 'splash' genoemd. &lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- Het opstartscherm (splash) is uitgeschakeld. Deze optie is bedoeld voor zeer oude beeldschermen of als er zich een fout voordoet.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activeert het opstartscherm (splash), maar kernel- en opstartmeldingen worden nog steeds getoond.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activeert het opstartscherm (splash) zonder verdere meldingen. In plaats daarvan wordt een voortgangsbalk getoond.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnlmainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;Installatieopties: vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Om de VNC-installatie te activeren geeft u de parameters vnc en vncpassword op: &lt;ul&gt;&lt;li&gt;&lt;em&gt;vnc=1 vncpassword=voorbeeld&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;De VNC-server zal worden gestart en u kunt YaST-2 aansturen met een VNC-cliënt op een systeem op afstand.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnlmainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;Reddingssysteem&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;De &lt;em&gt;Reddingssysteem&lt;/em&gt; is een klein op RAM-disk gebaseerd systeem. U kunt er allerhande wijzigingen aan een geïnstalleerd systeem mee aanbrengen. Omdat alleen elementaire programma's beschikbaar zijn is het bedoeld voor experts.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnlmainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;Videomodus selecteren&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Druk op &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; om een lijst met videomodi die uw grafische kaart ondersteunt. De hoogste modus die uw monitor kan weergeven is voorgeselecteerd.&lt;/p&gt;
++
++&lt;p&gt;Het is mogelijk dat uw monitor niet automatisch kan worden gedetecteerd. In dat geval kun u hier de juiste modus handmatig selecteren.&lt;/p&gt;
++
++&lt;p&gt;Als u tijdens de installatie problemen ondervindt met de grafische kaart, dan kan &lt;em&gt;tekstmodus&lt;/em&gt; een bruikbare omweg leveren.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallnlnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/nl/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Terug naar &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpamainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,103 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;ਬੂਟ ਲੋਡਰ ਮੱਦਦ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Welcome to &lt;em&gt;@@@product@@@&lt;/em&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this menu to select the desired function. If you have
++problems navigating in this help system, press
++&lt;em&gt;@@@fkey_help@@@&lt;/em&gt; to enter the &lt;a href=&quot;#help&quot;&gt;ਵੇਰਵਾ&lt;/a&gt; of the help
++system. The main functions in this menu are:
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#harddisk&quot;&gt;ਹਾਰਡ ਡਿਸਕ ਤੋਂ ਬੂਟ&lt;/a&gt;: This selection will not do
++anything to the system. It only starts a previously installed
++operating system.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#linux&quot;&gt;ਇੰਸਟਾਲੇਸ਼ਨ&lt;/a&gt;:
++This installation mode works on most machines. If you experience a
++system freeze during boot or problems with detection of your hardware
++components, such as disk controllers or network cards, try one of the
++following installation options.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#noacpi&quot;&gt;ਇੰਸਟਾਲੇਸ਼ਨ -- ACPI ਆਯੋਗ&lt;/a&gt;: Many of the
++currently-sold computers have incomplete or faulty ACPI
++implementations. This selection disables ACPI support in the
++kernel, but still enables many performance features, like DMA for IDE
++hard disks.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#nolapic&quot;&gt;ਇੰਸਟਾਲੇਸ਼ਨ -- ਲੋਕਲ APIC ਆਯੋਗ&lt;/a&gt;:
++If the normal installation fails, this might be due to the
++system hardware not supporting local APIC.
++If this seems to be the case, use this option to
++install without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#failsafe&quot;&gt;ਇੰਸਟਾਲੇਸ਼ਨ -- ਸੁਰੱਖਿਅਤ ਸੈਟਿੰਗ&lt;/a&gt;: If you were not
++successful with &lt;em&gt;ਇੰਸਟਾਲੇਸ਼ਨ&lt;/em&gt;, this selection might
++solve the issue.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#rescue&quot;&gt;ਰਿਸਕਿਊ ਸਿਸਟਮ&lt;/a&gt;: This boot image starts a small
++Linux system in RAM. This is useful if the system does not start properly.
++After booting this system, log in as root.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#firmware&quot;&gt;ਫਾਇਰਮਵੇਅਰ ਟੈਸਟ&lt;/a&gt;: Runs a BIOS test tool that validates
++ACPI and other parts of your BIOS.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#memtest&quot;&gt;ਮੈਮੋਰੀ ਟੈਸਟ&lt;/a&gt;: Memory testing is useful for more than
++checking installation of new memory modules. It is a stress test
++for a big part of your computer system and may indicate hardware
++problems.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#opt&quot;&gt;ਬੂਟ ਚੋਣ&lt;/a&gt;: The boot options may change the
++behavior of your system completely. They are settings for
++the kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#help&quot;&gt; ਮੱਦਦ&lt;/a&gt;: This is context sensitive. It will
++show different screens depending on the active element of the
++boot screen. There is also a description of this help system
++available.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Set language and keyboard mapping
++used by the boot loader.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#videomode&quot;&gt; ਵੀਡਿਓ ਮੋਡ&lt;/a&gt;: Here, choose between
++different screen resolutions while installing. If you encounter
++problems with the graphical installation, the &lt;em&gt;ਟੈਕਸਟ ਮੋਡ&lt;/em&gt; may
++be a work-around for you.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Installation Source&lt;/a&gt;: Choose the
++installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Driver Update&lt;/a&gt;: For very new machines, a
++driver update may be needed to install the system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpamainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;ਸਾਫਟਵੇਅਰ ਕਿਸਮ ਚੋਣ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++You have the choice to install the 32-bit or 64-bit version of @@@product@@@.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpamaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;ਡਰਾਇਵਰ ਅੱਪਡੇਟ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++If you need a driver update floppy or CD-ROM, press &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. The
++boot loader asks you to insert the driver update medium after
++loading the Linux kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++A driver update is typically a floppy with new versions of hardware
++drivers or bug fixes needed during installation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpamainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,11 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;ਇੰਸਟਾਲੇਸ਼ਨ -- ਸੁਰੱਖਿਅਤ ਸੈਟਿੰਗ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;ਇੰਸਟਾਲੇਸ਼ਨ -- ਸੁਰੱਖਿਅਤ ਸੈਟਿੰਗ&lt;/em&gt; if you encounter hangs
++while installing or irreproducible errors. This option disables DMA
++for IDE drives and all power management features.
++See also the kernel options for &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;,
++&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; and &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpamainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;ਫਾਇਰਮਵੇਅਰ ਟੈਸਟ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Starts a BIOS checker that validates the ACPI tables
++and many other parts of your BIOS.
++Test results can be stored on usb disk or saved via network.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpamainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,16 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;ਹਾਰਡ ਡਿਸਕ ਤੋਂ ਬੂਟ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;ਇੰਸਟਾਲ ਹੋਇਆ OS ਬੂਟ ਕਰੋ&lt;/em&gt; to start the system installed on
++your local hard disk. This system must be installed properly, because
++only the MBR (Master Boot Record) on the first hard disk is started.
++The device ID of the first hard disk is provided by the BIOS of
++the computer.
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this if you forgot to remove the CD or DVD from your
++drive and want to start the computer from the hard disk.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpamainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;ਮੱਦਦ ਸਿਸਟਮ ਦੀ ਵਰਤੋਂ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ਤੀਰ ਉੱਤੇ&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;ਹੇਠਾਂ ਤੀਰ&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;ਖੱਬਾ ਤੀਰ&lt;/em&gt;, &lt;em&gt;ਬੈਕਸਪੇਸ&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;ਸੱਜਾ ਤੀਰ&lt;/em&gt;, &lt;em&gt;ਐਂਟਰ&lt;/em&gt;, &lt;em&gt;ਥਾਂ&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;ਘਰ&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;ਅੰਤ&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpamaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;ਇੰਸਟਾਲੇਸ਼ਨ ਸਰੋਤ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; to choose an installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++This is the same as using the &lt;a href=&quot;#o_install&quot;&gt;ਇੰਸਟਾਲ&lt;/a&gt;
++boot option.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpamainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;ਭਾਸ਼ਾ ਅਤੇ ਕੀਬੋਰਡ ਲੇਆਉਟ ਚੋਣ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpamainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;ਇੰਸਟਾਲੇਸ਼ਨ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;ਇੰਸਟਾਲੇਸ਼ਨ&lt;/em&gt; to start the default installation. The
++&lt;a href=&quot;#opt&quot;&gt;ਬੂਟ ਚੋਣ&lt;/a&gt; entered are used in the
++start-up. This item activates many features of commonly available
++hardware.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpamainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;ਮੈਮੋਰੀ ਟੈਸਟ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The included &lt;em&gt;ਮੈਮੋਰੀ ਟੈਸਟ&lt;/em&gt; provides good possibilities to
++stress test the hardware of a system. Its main purpose is to detect
++broken RAM, but it also stresses many other parts of the system.
++&lt;/p&gt;
++
++&lt;p&gt;
++There is no guarantee that the memory is good if no errors are
++found, although most of memory defects will be found.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpamainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,24 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;ਇੰਸਟਾਲੇਸ਼ਨ -- ACPI ਆਯੋਗ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Current hardware usually requires ACPI (Advanced Configuration and Power Interface)
++to control the interrupt handling.
++ACPI completely replaces the old APM system.
++&lt;/p&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;ਇੰਸਟਾਲੇਸ਼ਨ -- ACPI ਆਯੋਗ&lt;/em&gt; if you encounter
++problems during boot of the kernel. Known problems with machines that
++have problems with ACPI are:
++&lt;ul&gt;
++ &lt;li&gt;kernel freezes when booting&lt;/li&gt;
++ &lt;li&gt;PCI Cards are not detected or initialized properly&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++You may also try the &lt;a href=&quot;#firmware&quot;&gt;ਫਾਇਰਮਵੇਅਰ ਟੈਸਟ&lt;/a&gt; boot option
++and look at the test results of the ACPI validation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpamainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;ਇੰਸਟਾਲੇਸ਼ਨ -- ਲੋਕਲ APIC ਆਯੋਗ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Normally there are no problems with the APIC (Advanced Programmable Interrupt
++Controller). But if you seem to have some, try this option to boot
++without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++Please don't confuse this with &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt;
++(Advanced Configuration and Power Interface).
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpamainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,28 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;ਬੂਟ ਚੋਣ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++There are two types of boot options available. First, there are
++options that affect the installer. Second, there are kernel
++options. Some of the more common options are:
++&lt;/p&gt;
++
++&lt;p&gt;
++a) installer options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;ਇੰਸਟਾਲ&lt;/a&gt; -- select an installation source&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#network&quot;&gt;ਨੈੱਟਵਰਕ ਚੋਣਾਂ&lt;/a&gt; -- the network options&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;vnc ਚੋਣਾਂ&lt;/a&gt; -- options for installation via VNC&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++b) kernel options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpamainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;ਇੰਸਟਾਲਰ ਚੋਣਾਂ: ਨੈੱਟਵਰਕ ਚੋਣਾਂ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++It is possible to configure the network interface right now. The
++hardware will be detected later by YaST2. The minimum set of options
++to configure your network card consists of host IP and netmask. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++or in a shorter form:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++If you specified a &lt;a href=&quot;#o_install&quot;&gt;ਨੈੱਟਵਰਕ ਅਧਾਰਿਤ ਇੰਸਟਾਲ&lt;/a&gt; and do
++not specify both of these options, the installer tries to configure
++the network interface with &lt;em&gt;dhcp&lt;/em&gt;. If you need a default
++gateway, specify this with the option &lt;em&gt;ਗੇਟਵੇ&lt;/em&gt;. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;gateway=192.168.0.8&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpamainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;ਕਰਨਲ ਚੋਣਾਂ: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpamainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;ਕਰਨਲ ਚੋਣਾਂ: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpamainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;ਕਰਨਲ ਚੋਣਾਂ: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpamainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,30 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;ਇੰਸਟਾਲਰ ਚੋਣ: ਇੰਸਟਾਲ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++By default, the local CD-ROMs are searched for the installation source.
++For a network install, select the
++&lt;em&gt;ਇੰਸਟਾਲ&lt;/em&gt; option. Possible installation protocols are
++&lt;ul&gt;
++ &lt;li&gt;FTP&lt;/li&gt;
++ &lt;li&gt; &lt;/li&gt;
++ &lt;li&gt;HTTP&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The syntax to use is just like standard URLs. For example,
++if your server is found at 192.168.0.1 and you want to do an NFS-based
++install from the directory /install on this server, specify
++the source as follows:
++&lt;ul&gt;
++ &lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The network card will either be configured with &lt;em&gt;dhcp&lt;/em&gt; or you
++must specify the parameters yourself as described in the
++&lt;a href=&quot;#network&quot;&gt;ਨੈੱਟਵਰਕ ਚੋਣਾਂ&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpamainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;ਕਰਨਲ ਚੋਣਾਂ: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpamainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;ਇੰਸਟਾਲਰ ਚੋਣਾਂ: vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++To enable the VNC installation, specify the
++parameters vnc and vncpassword:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;vnc=1 vncpassword=example&lt;/em&gt;&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The VNC server will be started and you may control YaST2 over any VNC
++client from a remote system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpamainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;ਰਿਸਕਿਊ ਸਿਸਟਮ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The &lt;em&gt;ਰਿਸਕਿਊ ਸਿਸਟਮ&lt;/em&gt; is a small RAM disk base system. From there,
++it is possible to make all kinds of changes to an installed system. Because
++only low-level tools are available in this system, it is intended for
++experts.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpamainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;ਵੀਡਿਓ ਮੋਡ ਚੋਣ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; to get the list of video modes your graphics card
++supports. The highest mode your monitor can display is preselected.
++&lt;/p&gt;
++
++&lt;p&gt;
++It is possible that your monitor cannot be detected automatically. In that
++case, select your preferred mode manually.
++&lt;/p&gt;
++
++&lt;p&gt;
++If your system has problems with the graphics card during the
++installation, the &lt;em&gt;ਟੈਕਸਟ ਮੋਡ&lt;/em&gt; may be a usable work-around.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpanavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pa/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;&lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt; ਉੱਤੇ ਜਾਓ&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallplmainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,103 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;Pomoc programu rozruchowego&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Welcome to &lt;em&gt;@@@product@@@&lt;/em&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this menu to select the desired function. If you have
++problems navigating in this help system, press
++&lt;em&gt;@@@fkey_help@@@&lt;/em&gt; to enter the &lt;a href=&quot;#help&quot;&gt;Opis&lt;/a&gt; of the help
++system. The main functions in this menu are:
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#harddisk&quot;&gt;Uruchomienie z dysku twardego&lt;/a&gt;: This selection will not do
++anything to the system. It only starts a previously installed
++operating system.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#linux&quot;&gt;Instalacja&lt;/a&gt;:
++This installation mode works on most machines. If you experience a
++system freeze during boot or problems with detection of your hardware
++components, such as disk controllers or network cards, try one of the
++following installation options.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#noacpi&quot;&gt;Instalacja (bez ACPI)&lt;/a&gt;: Many of the
++currently-sold computers have incomplete or faulty ACPI
++implementations. This selection disables ACPI support in the
++kernel, but still enables many performance features, like DMA for IDE
++hard disks.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#nolapic&quot;&gt;Instalacja (bez lokalnego APIC)&lt;/a&gt;:
++If the normal installation fails, this might be due to the
++system hardware not supporting local APIC.
++If this seems to be the case, use this option to
++install without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#failsafe&quot;&gt;Instalacja (bezpieczne ustawienia)&lt;/a&gt;: If you were not
++successful with &lt;em&gt;Instalacja&lt;/em&gt;, this selection might
++solve the issue.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#rescue&quot;&gt;System ratunkowy&lt;/a&gt;: This boot image starts a small
++Linux system in RAM. This is useful if the system does not start properly.
++After booting this system, log in as root.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#firmware&quot;&gt;Test oprogramowania sprzętowego&lt;/a&gt;: Runs a BIOS test tool that validates
++ACPI and other parts of your BIOS.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#memtest&quot;&gt;Test pamięci&lt;/a&gt;: Memory testing is useful for more than
++checking installation of new memory modules. It is a stress test
++for a big part of your computer system and may indicate hardware
++problems.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#opt&quot;&gt;Opcje uruchamiania&lt;/a&gt;: The boot options may change the
++behavior of your system completely. They are settings for
++the kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Help&lt;/a&gt;: This is context sensitive. It will
++show different screens depending on the active element of the
++boot screen. There is also a description of this help system
++available.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Set language and keyboard mapping
++used by the boot loader.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Video Mode&lt;/a&gt;: Here, choose between
++different screen resolutions while installing. If you encounter
++problems with the graphical installation, the &lt;em&gt;Tryb tekstowy&lt;/em&gt; may
++be a work-around for you.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Installation Source&lt;/a&gt;: Choose the
++installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Driver Update&lt;/a&gt;: For very new machines, a
++driver update may be needed to install the system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallplmainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;Wybór typu oprogramowania&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++You have the choice to install the 32-bit or 64-bit version of @@@product@@@.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallplmaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;Aktualizacja sterowników&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++If you need a driver update floppy or CD-ROM, press &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. The
++boot loader asks you to insert the driver update medium after
++loading the Linux kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++A driver update is typically a floppy with new versions of hardware
++drivers or bug fixes needed during installation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallplmainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,11 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;Instalacja (bezpieczne ustawienia)&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Instalacja (bezpieczne ustawienia)&lt;/em&gt; if you encounter hangs
++while installing or irreproducible errors. This option disables DMA
++for IDE drives and all power management features.
++See also the kernel options for &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;,
++&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; and &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallplmainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;Test oprogramowania sprzętowego&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Starts a BIOS checker that validates the ACPI tables
++and many other parts of your BIOS.
++Test results can be stored on usb disk or saved via network.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallplmainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,16 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;Uruchomienie z dysku twardego&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Start zainstalowanego systemu&lt;/em&gt; to start the system installed on
++your local hard disk. This system must be installed properly, because
++only the MBR (Master Boot Record) on the first hard disk is started.
++The device ID of the first hard disk is provided by the BIOS of
++the computer.
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this if you forgot to remove the CD or DVD from your
++drive and want to start the computer from the hard disk.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallplmainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Używanie systemu pomocy&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Strzałka 'w górę'&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Strzałka 'w dół'&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Strzałka 'w lewo'&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Strzałka 'w prawo'&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Spacja&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;End&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallplmaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;Źródło instalacji&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; to choose an installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++This is the same as using the &lt;a href=&quot;#o_install&quot;&gt;Zainstaluj&lt;/a&gt;
++boot option.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallplmainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Ustawienia języka i klawiatury&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallplmainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;Instalacja&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Instalacja&lt;/em&gt; to start the default installation. The
++&lt;a href=&quot;#opt&quot;&gt;Opcje uruchamiania&lt;/a&gt; entered are used in the
++start-up. This item activates many features of commonly available
++hardware.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallplmainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;Test pamięci&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The included &lt;em&gt;Test pamięci&lt;/em&gt; provides good possibilities to
++stress test the hardware of a system. Its main purpose is to detect
++broken RAM, but it also stresses many other parts of the system.
++&lt;/p&gt;
++
++&lt;p&gt;
++There is no guarantee that the memory is good if no errors are
++found, although most of memory defects will be found.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallplmainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,24 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;Instalacja (bez ACPI)&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Current hardware usually requires ACPI (Advanced Configuration and Power Interface)
++to control the interrupt handling.
++ACPI completely replaces the old APM system.
++&lt;/p&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Instalacja (bez ACPI)&lt;/em&gt; if you encounter
++problems during boot of the kernel. Known problems with machines that
++have problems with ACPI are:
++&lt;ul&gt;
++ &lt;li&gt;kernel freezes when booting&lt;/li&gt;
++ &lt;li&gt;PCI Cards are not detected or initialized properly&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++You may also try the &lt;a href=&quot;#firmware&quot;&gt;Test oprogramowania sprzętowego&lt;/a&gt; boot option
++and look at the test results of the ACPI validation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallplmainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;Instalacja (bez lokalnego APIC)&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Normally there are no problems with the APIC (Advanced Programmable Interrupt
++Controller). But if you seem to have some, try this option to boot
++without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++Please don't confuse this with &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt;
++(Advanced Configuration and Power Interface).
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallplmainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,28 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Opcje uruchamiania&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++There are two types of boot options available. First, there are
++options that affect the installer. Second, there are kernel
++options. Some of the more common options are:
++&lt;/p&gt;
++
++&lt;p&gt;
++a) installer options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;Zainstaluj&lt;/a&gt; -- select an installation source&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#network&quot;&gt;Opcje sieciowe&lt;/a&gt; -- the network options&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;Opcje vnc&lt;/a&gt; -- options for installation via VNC&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++b) kernel options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallplmainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;Opcje instalatora: ustawienia sieciowe&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++It is possible to configure the network interface right now. The
++hardware will be detected later by YaST2. The minimum set of options
++to configure your network card consists of host IP and netmask. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;hostip:192.168.0.10 netmas=255.255.255.0&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++or in a shorter form:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++If you specified a &lt;a href=&quot;#o_install&quot;&gt;instalacja sieciowa&lt;/a&gt; and do
++not specify both of these options, the installer tries to configure
++the network interface with &lt;em&gt;dhcp&lt;/em&gt;. If you need a default
++gateway, specify this with the option &lt;em&gt;bramka sieciowa&lt;/em&gt;. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;gateway=192.168.0.8&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallplmainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Opcje jądra: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallplmainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Opcje ogólne: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallplmainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Opcje jądra: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallplmainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,30 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;Opcje instalatora: zainstaluj&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++By default, the local CD-ROMs are searched for the installation source.
++For a network install, select the
++&lt;em&gt;Zainstaluj&lt;/em&gt; option. Possible installation protocols are
++&lt;ul&gt;
++ &lt;li&gt;FTP&lt;/li&gt;
++ &lt;li&gt;NFS&lt;/li&gt;
++ &lt;li&gt;HTTP&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The syntax to use is just like standard URLs. For example,
++if your server is found at 192.168.0.1 and you want to do an NFS-based
++install from the directory /install on this server, specify
++the source as follows:
++&lt;ul&gt;
++ &lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The network card will either be configured with &lt;em&gt;dhcp&lt;/em&gt; or you
++must specify the parameters yourself as described in the
++&lt;a href=&quot;#network&quot;&gt;Opcje sieciowe&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallplmainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Opcje jądra: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash = 0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallplmainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;Opcje nstalatora: vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++To enable the VNC installation, specify the
++parameters vnc and vncpassword:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;vnc=1 vncpassword=example&lt;/em&gt;&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The VNC server will be started and you may control YaST2 over any VNC
++client from a remote system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallplmainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;System ratunkowy&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The &lt;em&gt;System ratunkowy&lt;/em&gt; is a small RAM disk base system. From there,
++it is possible to make all kinds of changes to an installed system. Because
++only low-level tools are available in this system, it is intended for
++experts.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallplmainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;Wybór trybu wyświetlania&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; to get the list of video modes your graphics card
++supports. The highest mode your monitor can display is preselected.
++&lt;/p&gt;
++
++&lt;p&gt;
++It is possible that your monitor cannot be detected automatically. In that
++case, select your preferred mode manually.
++&lt;/p&gt;
++
++&lt;p&gt;
++If your system has problems with the graphics card during the
++installation, the &lt;em&gt;Tryb tekstowy&lt;/em&gt; may be a usable work-around.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallplnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pl/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Wróć do &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallptmainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,101 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;Ajuda da Rotina de Arranque&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Bem vindo a &lt;em&gt;@@@product@@@&lt;/em&gt;&lt;/p&gt;
++
++&lt;p&gt;
++Use this menu to select the desired function. If you have
++problems navigating in this help system, press
++&lt;em&gt;@@@fkey_help@@@&lt;/em&gt; to enter the &lt;a href=&quot;#help&quot;&gt;descrição&lt;/a&gt; of the help
++system. The main functions in this menu are:
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#harddisk&quot;&gt;Arrancar de Disco Rígido&lt;/a&gt;: This selection will not do
++anything to the system. It only starts a previously installed
++operating system.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#linux&quot;&gt;Instalação&lt;/a&gt;:
++This installation mode works on most machines. If you experience a
++system freeze during boot or problems with detection of your hardware
++components, such as disk controllers or network cards, try one of the
++following installation options.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#noacpi&quot;&gt;Instalação -- ACPI Desactivado&lt;/a&gt;: Many of the
++currently-sold computers have incomplete or faulty ACPI
++implementations. This selection disables ACPI support in the
++kernel, but still enables many performance features, like DMA for IDE
++hard disks.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#nolapic&quot;&gt;Instalação -- APIC Local Desactivado&lt;/a&gt;:
++If the normal installation fails, this might be due to the
++system hardware not supporting local APIC.
++If this seems to be the case, use this option to
++install without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#failsafe&quot;&gt;Instalação -- Definições Seguras&lt;/a&gt;: If you were not
++successful with &lt;em&gt;Instalação&lt;/em&gt;, this selection might
++solve the issue.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#rescue&quot;&gt;Sistema de Recuperação&lt;/a&gt;: This boot image starts a small
++Linux system in RAM. This is useful if the system does not start properly.
++After booting this system, log in as root.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#firmware&quot;&gt;Testar Firmware&lt;/a&gt;: Runs a BIOS test tool that validates
++ACPI and other parts of your BIOS.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#memtest&quot;&gt;Teste de Memória&lt;/a&gt;: Memory testing is useful for more than
++checking installation of new memory modules. It is a stress test
++for a big part of your computer system and may indicate hardware
++problems.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#opt&quot;&gt;Opções de Arranque&lt;/a&gt;: The boot options may change the
++behavior of your system completely. They are settings for
++the kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Help&lt;/a&gt;: This is context sensitive. It will
++show different screens depending on the active element of the
++boot screen. There is also a description of this help system
++available.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Set language and keyboard mapping
++used by the boot loader.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Modo de Video&lt;/a&gt;: Here, choose between
++different screen resolutions while installing. If you encounter
++problems with the graphical installation, the &lt;em&gt;modo texto&lt;/em&gt; may
++be a work-around for you.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Fonte de Instalação&lt;/a&gt;: Choose the
++installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Actualização do Driver&lt;/a&gt;: For very new machines, a
++driver update may be needed to install the system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallptmainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;Escolha do Tipo de Software&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++You have the choice to install the 32-bit or 64-bit version of @@@product@@@.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallptmaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;Actualização de Driver&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++If you need a driver update floppy or CD-ROM, press &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. The
++boot loader asks you to insert the driver update medium after
++loading the Linux kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++A driver update is typically a floppy with new versions of hardware
++drivers or bug fixes needed during installation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallptmainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,11 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;Instalação -- Definições Seguras&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Instalação -- Definições Seguras&lt;/em&gt; if you encounter hangs
++while installing or irreproducible errors. This option disables DMA
++for IDE drives and all power management features.
++See also the kernel options for &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;,
++&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; and &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallptmainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;Testar Firmware&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Starts a BIOS checker that validates the ACPI tables
++and many other parts of your BIOS.
++Test results can be stored on usb disk or saved via network.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallptmainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,16 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;Arrancar de Disco Rígido&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Arrancar SO instalado&lt;/em&gt; to start the system installed on
++your local hard disk. This system must be installed properly, because
++only the MBR (Master Boot Record) on the first hard disk is started.
++The device ID of the first hard disk is provided by the BIOS of
++the computer.
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this if you forgot to remove the CD or DVD from your
++drive and want to start the computer from the hard disk.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallptmainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Utilizando o Sistema de Ajuda&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Seta para Cima&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Seta para Baixo&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Seta para a Esquerda&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Seta para a Direita&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Barra de Espaços&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;End&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallptmaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;Origem de Instalação&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; to choose an installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++This is the same as using the &lt;a href=&quot;#o_install&quot;&gt;Instalar&lt;/a&gt;
++boot option.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallptmainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Selecção de Teclado e Idioma&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallptmainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;Instalação&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Instalação&lt;/em&gt; to start the default installation. The
++&lt;a href=&quot;#opt&quot;&gt;Opções de Arranque&lt;/a&gt; entered are used in the
++start-up. This item activates many features of commonly available
++hardware.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallptmainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;Teste de Memória&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The included &lt;em&gt;Teste de Memória&lt;/em&gt; provides good possibilities to
++stress test the hardware of a system. Its main purpose is to detect
++broken RAM, but it also stresses many other parts of the system.
++&lt;/p&gt;
++
++&lt;p&gt;
++There is no guarantee that the memory is good if no errors are
++found, although most of memory defects will be found.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallptmainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,24 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;Instalação -- ACPI Desactivado&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Current hardware usually requires ACPI (Advanced Configuration and Power Interface)
++to control the interrupt handling.
++ACPI completely replaces the old APM system.
++&lt;/p&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Instalação -- ACPI Desactivado&lt;/em&gt; if you encounter
++problems during boot of the kernel. Known problems with machines that
++have problems with ACPI are:
++&lt;ul&gt;
++ &lt;li&gt;kernel freezes when booting&lt;/li&gt;
++ &lt;li&gt;PCI Cards are not detected or initialized properly&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++You may also try the &lt;a href=&quot;#firmware&quot;&gt;Testar Firmware&lt;/a&gt; boot option
++and look at the test results of the ACPI validation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallptmainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;Instalação -- APIC Local Desactivado&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Normally there are no problems with the APIC (Advanced Programmable Interrupt
++Controller). But if you seem to have some, try this option to boot
++without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++Please don't confuse this with &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt;
++(Advanced Configuration and Power Interface).
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallptmainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,28 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Opções de Arranque&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++There are two types of boot options available. First, there are
++options that affect the installer. Second, there are kernel
++options. Some of the more common options are:
++&lt;/p&gt;
++
++&lt;p&gt;
++a) installer options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;Instalar&lt;/a&gt; -- select an installation source&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#network&quot;&gt;opções de rede&lt;/a&gt; -- the network options&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;opções vnc&lt;/a&gt; -- options for installation via VNC&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++b) kernel options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallptmainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;Opções de Instalador: Opções de Rede&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++It is possible to configure the network interface right now. The
++hardware will be detected later by YaST2. The minimum set of options
++to configure your network card consists of host IP and netmask. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++or in a shorter form:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++If you specified a &lt;a href=&quot;#o_install&quot;&gt;instalação por rede&lt;/a&gt; and do
++not specify both of these options, the installer tries to configure
++the network interface with &lt;em&gt;dhcp&lt;/em&gt;. If you need a default
++gateway, specify this with the option &lt;em&gt;gateway&lt;/em&gt;. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;gateway=192.168.0.8&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallptmainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Opções de Kernel: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallptmainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Opções de Kernel: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallptmainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Opções de Kernel: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallptmainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,30 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;Opções de Instalador: instalar&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++By default, the local CD-ROMs are searched for the installation source.
++For a network install, select the
++&lt;em&gt;Instalar&lt;/em&gt; option. Possible installation protocols are
++&lt;ul&gt;
++ &lt;li&gt;FTP&lt;/li&gt;
++ &lt;li&gt;NFS&lt;/li&gt;
++ &lt;li&gt;HTTP&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The syntax to use is just like standard URLs. For example,
++if your server is found at 192.168.0.1 and you want to do an NFS-based
++install from the directory /install on this server, specify
++the source as follows:
++&lt;ul&gt;
++ &lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The network card will either be configured with &lt;em&gt;dhcp&lt;/em&gt; or you
++must specify the parameters yourself as described in the
++&lt;a href=&quot;#network&quot;&gt;opções de rede&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallptmainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Opções de Kernel: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallptmainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;Opções de Instalador: vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++To enable the VNC installation, specify the
++parameters vnc and vncpassword:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;vnc=1 vncpassword=exemplo&lt;/em&gt;&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The VNC server will be started and you may control YaST2 over any VNC
++client from a remote system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallptmainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;Sistema de Recuperação&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The &lt;em&gt;Sistema de Recuperação&lt;/em&gt; is a small RAM disk base system. From there,
++it is possible to make all kinds of changes to an installed system. Because
++only low-level tools are available in this system, it is intended for
++experts.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallptmainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;Selecção de Modo de Vídeo&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; to get the list of video modes your graphics card
++supports. The highest mode your monitor can display is preselected.
++&lt;/p&gt;
++
++&lt;p&gt;
++It is possible that your monitor cannot be detected automatically. In that
++case, select your preferred mode manually.
++&lt;/p&gt;
++
++&lt;p&gt;
++If your system has problems with the graphics card during the
++installation, the &lt;em&gt;modo texto&lt;/em&gt; may be a usable work-around.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallptnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Voltar para &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;Ajuda do carregador de inicialização&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Bem-vindo ao &lt;em&gt;@@@product@@@&lt;/em&gt;&lt;/p&gt;
++
++&lt;p&gt;Use este menu para selecionar a função desejada. Se você tiver problemas ao navegar neste sistema de ajuda, pressione &lt;em&gt;@@@fkey_help@@@&lt;/em&gt; para acessar a &lt;a href=&quot;#help&quot;&gt;descrição&lt;/a&gt; do sistema de ajuda. As principais funções deste menu são:&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#harddisk&quot;&gt;Inicializar do disco rígido&lt;/a&gt;: Esta seleção não fará nada no sistema. Ela apenas inicia um sistema operacional instalado anteriormente.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#linux&quot;&gt;Instalação&lt;/a&gt;: Este modo de instalação funciona na maioria das máquinas. Se o sistema travar durante a inicialização ou se houver problemas na detecção dos componentes de hardware, como controladores de disco ou placas de rede, tente uma das seguintes opções de instalação.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#noacpi&quot;&gt;Instalação -- ACPI desabilitada&lt;/a&gt;: Muitos dos computadores vendidos atualmente têm implementações de ACPI incompletas ou defeituosas. Esta seleção desabilita o suporte a ACPI no kernel, mas ainda habilita muitos recursos de desempenho, como o DMA para os discos rígidos IDE.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#nolapic&quot;&gt;Instalação -- APIC local desabilitada&lt;/a&gt;: Se a instalação normal falhar, isto pode ser devido ao hardware do sistema não suportar o APIC local. Se isto parecer ser o caso, use esta opção para instalar sem suporte ao APIC local.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#failsafe&quot;&gt;Instalação -- Configurações seguras&lt;/a&gt;: Se você não tiver obtido sucesso com &lt;em&gt;Instalação&lt;/em&gt;, esta seleção talvez resolva o problema.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#rescue&quot;&gt;Sistema de recuperação&lt;/a&gt;: Essa imagem de inicialização inicia um pequeno sistema Linux na RAM. Isso é útil se o sistema não é iniciado corretamente. Após inicializar esse sistema, efetue o login como root.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#firmware&quot;&gt;Teste de firmware&lt;/a&gt;: Executa uma ferramenta de teste da BIOS que valida o ACPI e outras partes da BIOS.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#memtest&quot;&gt;Teste de memória&lt;/a&gt;: O teste de memória é útil não só para verificar a instalação de novos módulos de memória, mas também para testar uma grande parte de seu computador e pode indicar problemas de hardware.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#opt&quot;&gt;Opções de inicialização&lt;/a&gt;: As opções de inicialização podem alterar completamente o comportamento de seu sistema. Elas são as configurações para o kernel.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Ajuda&lt;/a&gt;: Esta opção é sensível ao contexto. Ela exibirá telas diferentes dependendo do elemento ativo da tela de inicialização. Também há uma descrição desse sistema de ajuda disponível.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Definir o idioma e o mapeamento do teclado usados pelo carregador de inicialização.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Modo de vídeo&lt;/a&gt;: Aqui, escolha entre as diferentes resoluções de tela durante a instalação. Se houver problemas com a instalação gráfica, o &lt;em&gt;modo de texto&lt;/em&gt; poderá ser uma solução para você.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Fonte de instalação&lt;/a&gt;: Escolher a fonte de instalação.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Atualização de driver&lt;/a&gt;: Para máquinas mais novas, pode ser necessária uma atualização de driver para instalar o sistema.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;Seleção do tipo de software&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Você tem a opção de instalar a versão de 32 ou 64 bits do @@@product@@@.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;Atualização de driver&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Se precisar de um disquete ou CD-ROM de atualização de driver, pressione &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. O carregador de inicialização pedirá que você insira a mídia de atualização de driver após carregar o kernel do Linux.&lt;/p&gt;
++
++&lt;p&gt;Uma atualização de driver é geralmente um disquete com novas versões de drivers de hardware ou correções de erros necessárias durante a instalação.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;Instalação -- Configurações seguras&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Selecione &lt;em&gt;Instalação -- Configurações seguras&lt;/em&gt; se ocorrerem travamentos ou erros irreproduzíveis durante a instalação. Essa opção desabilita o DMA para unidades IDE e todos os recursos de gerenciamento de energia. Consulte também as opções do kernel para &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;, &lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; e &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;Teste de firmware&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Inicia um verificador de BIOS que valida as tabelas ACPI e várias outras partes da BIOS. Os resultados do teste podem ser armazenados em um disco usb ou salvos via rede.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;Inicializar do disco rígido&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Selecione &lt;em&gt;Iniciar o SO instalado&lt;/em&gt; para iniciar o sistema instalado no disco rígido local. Esse sistema deve estar instalado corretamente, pois apenas o MBR (Master Boot Record) no primeiro disco rígido é iniciado. O ID do dispositivo do primeiro disco rígido é fornecido pela BIOS do computador.&lt;/p&gt;
++
++&lt;p&gt;Utilize esta opção se você tiver esquecido de remover o CD ou o DVD da unidade e desejar iniciar o computador do disco rígido.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Usando o sistema de ajuda&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;A ajuda online do carregador de inicialização é sensível ao contexto. Ela fornece informações sobre o item de menu selecionado ou, se você estiver editando as opções de inicialização, tenta procurar informações sobre a opção em que o cursor está posicionado.&lt;/p&gt;
++
++&lt;p&gt;Teclas de navegação &lt;ul&gt;&lt;li&gt;&lt;em&gt;Seta para cima&lt;/em&gt;: realçar o link anterior&lt;/li&gt;&lt;li&gt;&lt;em&gt;Seta para baixo&lt;/em&gt;: realçar o próximo link&lt;/li&gt;&lt;li&gt;&lt;em&gt;Seta para a esquerda&lt;/em&gt;, &lt;em&gt;Tecla backspace&lt;/em&gt;: retornar ao tópico anterior&lt;/li&gt;&lt;li&gt;&lt;em&gt;Seta para a direita&lt;/em&gt;, &lt;em&gt;Tecla enter&lt;/em&gt;, &lt;em&gt;Tecla espaço&lt;/em&gt;: seguir o link&lt;/li&gt;&lt;li&gt;&lt;em&gt;Tecla page up&lt;/em&gt;: rolar uma página para cima&lt;/li&gt;&lt;li&gt;&lt;em&gt;Tecla page down&lt;/em&gt;: rolar uma página para baixo&lt;/li&gt;&lt;li&gt;&lt;em&gt;Tecla home&lt;/em&gt;: ir para o início da página&lt;/li&gt;&lt;li&gt;&lt;em&gt;Tecla end&lt;/em&gt;: ir para o final da página&lt;/li&gt;&lt;li&gt;&lt;em&gt;Tecla esc&lt;/em&gt;: sair da ajuda&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;Fonte de instalação&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Pressione &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; para selecionar uma fonte de instalação.&lt;/p&gt;
++
++&lt;p&gt;Isto é o mesmo que usar a opção de inicialização &lt;a href=&quot;#o_install&quot;&gt;instalar&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Seleção de idioma e layout de teclado&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Pressione &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; para alterar o idioma e o layout de teclado usados pelo carregador de inicialização.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;Instalação&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Selecione &lt;em&gt;Instalação&lt;/em&gt; para iniciar a instalação padrão. As &lt;a href=&quot;#opt&quot;&gt;opções de inicialização&lt;/a&gt; digitadas são usadas na inicialização. Esse item ativa muitos recursos de hardware frequentemente disponíveis.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;Teste de memória&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;O &lt;em&gt;Teste de memória&lt;/em&gt; incluído oferece boas possibilidades de executar um teste de stress no hardware de um sistema. Seu objetivo principal é detectar memórias RAM com defeitos, mas também testa muitas outras partes do sistema.&lt;/p&gt;
++
++&lt;p&gt;Não há garantia de que a memória esteja boa se não forem encontrados erros, embora a maioria dos defeitos de memória será encontrada.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;Instalação -- ACPI desabilitada&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;O hardware mais novo geralmente requer que a ACPI (Advanced Configuration and Power Interface - Interface Avançada de Configuração e Energia) controle o gerenciamento de interrupções. O ACPI substitui completamente o antigo sistema APM.&lt;/p&gt;
++
++&lt;p&gt;Selecione &lt;em&gt;Instalação -- ACPI desabilitada&lt;/em&gt; se você encontrar problemas durante a inicialização do kernel. Os problemas conhecidos de máquinas que têm problemas com ACPI são: &lt;ul&gt;&lt;li&gt;o kernel trava durante a inicialização&lt;/li&gt;&lt;li&gt;Placas PCI não são detectadas ou inicializadas corretamente&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Você também pode tentar a opção de inicialização &lt;a href=&quot;#firmware&quot;&gt;Teste de firmware&lt;/a&gt; e ver os resultados do teste de validação do ACPI.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;Instalação -- APIC local desabilitada&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Normalmente não há problemas com a APIC (Advanced Programmable Interrupt Controller - Controlador avançado de interrupção programável). Mas, se você acha que há algum problema, tente esta opção para inicializar sem o suporte à APIC local.&lt;/p&gt;
++
++&lt;p&gt;Por favor, não confunda isto com &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt; (ACPI - Interface avançada de configuração e energia).&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Opções de inicialização&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Há dois tipos de opções de inicialização disponíveis. Primeiro, há opções que afetam o instalador. Em segundo, há as opções do kernel. Algumas das opções mais comuns são:&lt;/p&gt;
++
++&lt;p&gt;a) opções do instalador &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;instalar&lt;/a&gt; -- selecionar uma fonte de instalação&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#network&quot;&gt;opções de rede&lt;/a&gt; -- as opções de rede&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;opções do vnc&lt;/a&gt; -- opções para instalação via VNC&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;b) opções do kernel &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;tela de inicialização&lt;/a&gt; -- influenciar o comportamento da tela de inicialização&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- alternar o gerenciamento de energia&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- interface avançada de configuração e energia&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- controlar o subsistema IDE&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,13 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;Opções do instalador: opções de rede&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;É possível configurar a interface de rede agora. O hardware será detectado mais tarde pelo YaST2. O conjunto mínimo de opções para configurar a placa de rede consiste em máscara de rede e IP de host. Por exemplo: &lt;ul&gt;&lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;ou numa forma mais curta: &lt;ul&gt;&lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Se você tiver especificado uma &lt;a href=&quot;#o_install&quot;&gt;instalação baseada em rede&lt;/a&gt; e não especificar essas duas opções, o instalador tentará configurar a interface de rede com &lt;em&gt;dhcp&lt;/em&gt;. Se precisar de um gateway padrão, especifique-o com a opção &lt;em&gt;gateway&lt;/em&gt;. Por exemplo: &lt;ul&gt;&lt;li&gt;gateway=192.168.0.8&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Opções do kernel: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;O ACPI (Advanced Configuration and Power Interface - Interface avançada de configuração e energia) é um padrão que define as interfaces de gerenciamento de configuração e energia entre o sistema operacional e a BIOS. Por padrão, &lt;em&gt;acpi&lt;/em&gt; é ativado quando é detectado uma BIOS mais recente do que o ano 2000. Há vários parâmetros normalmente usados para controlar o comportamento do ACPI: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- não usar o ACPI para rotear as interrupções PCI&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- apenas as partes do ACPI que são relevantes para a inicialização permanecem ativadas&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- desativar o ACPI completamente&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- ativar o ACPI mesmo que a BIOS tenha data anterior a 2000&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Especialmente em novos computadores, ele substitui o antigo sistema &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Opções do kernel: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;O APM é uma das duas estratégias de gerenciamento de energia usadas nos computadores atuais. Ele é usado principalmente com notebooks para funções como suspensão para o disco, mas também pode ser responsável pela desativação do computador após uma queda de energia. O APM depende do correto funcionamento da BIOS. Se a BIOS estiver danificada, o APM talvez tenha apenas uso limitado ou até impeça o funcionamento do computador. Portanto, ele pode ser desativado com o parâmetro &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- desativar o ACPI completamente&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Alguns computadores mais novos podem tirar mais proveito da &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt; mais recente.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Opções do kernel: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;O IDE é, diferente do SCSI, comumente utilizado na maioria das estações de trabalho. Para contornar alguns problemas de hardware que ocorrem com os sistemas IDE, use o parâmetro do kernel: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- desativar o DMA para unidades IDE&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;Opções do instalador: instalar&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Por padrão, a fonte de instalação é pesquisada nos CD-ROMs locais. Para uma instalação pela rede, selecione a opção &lt;em&gt;instalar&lt;/em&gt;. Os protocolos de instalação possíveis são &lt;ul&gt;&lt;li&gt;FTP&lt;/li&gt;&lt;li&gt;NFS&lt;/li&gt;&lt;li&gt;HTTP&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;A sintaxe a ser usada é semelhante ao padrão das URLs. Por exemplo, se o servidor for encontrado em 192.168.0.1 e você desejar fazer uma instalação baseada em NFS do diretório /install desse servidor, especifique a fonte da seguinte forma: &lt;ul&gt;&lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;A placa de rede ou será configurada com &lt;em&gt;dhcp&lt;/em&gt; ou você mesmo deverá especificar os parâmetros, conforme descrito em &lt;a href=&quot;#network&quot;&gt;opções de rede&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Opções do kernel: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;A tela de inicialização é a imagem exibida durante a inicialização do sistema. &lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- A tela de inicialização é desativada. Isto poderá ser útil com monitores muito antigos, ou se ocorrerem erros.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Ativa a tela de inicialização, as mensagens do kernel e de inicialização ainda são exibidas.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Ativa a tela de inicialização, mas sem mensagens. Em vez disto, é exibida uma barra de progresso.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;Opções do instalador: vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Para habilitar a instalação do VNC, especifique os parâmetros vnc e vncpassword: &lt;ul&gt;&lt;li&gt;&lt;em&gt;vnc=1 vncpassword=exemplo&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;O servidor VNC será iniciado e você poderá controlar o YaST2 em qualquer cliente VNC de um sistema remoto.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;Sistema de recuperação&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;O &lt;em&gt;Sistema de recuperação&lt;/em&gt; é um pequeno sistema base de disco RAM. Com ele, é possível fazer todos os tipos de alterações em um sistema instalado. Como há apenas ferramentas de baixo nível disponíveis nesse sistema, ele se destina a usuários avançados.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRmainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;Seleção do modo de vídeo&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Pressione &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; para obter a lista de modos de vídeo suportados por sua placa de vídeo. O modo mais elevado que seu monitor pode exibir é pré-selecionado.&lt;/p&gt;
++
++&lt;p&gt;É possível que seu monitor não possa ser detectado automaticamente. Nesse caso, selecione manualmente seu modo preferido.&lt;/p&gt;
++
++&lt;p&gt;Se o seu sistema tiver problemas com a placa de vídeo durante a instalação, o &lt;em&gt;modo de texto&lt;/em&gt; poderá ser uma solução viável.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallpt_BRnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/pt_BR/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Retornar a &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallromainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;Ajutor bootloader&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Bine-aţi venit la &lt;em&gt;@@@product@@@&lt;/em&gt;&lt;/p&gt;
++
++&lt;p&gt;Utilizați acest meniu pentru a selecta funcția dorită. Dacă apar probleme la navigarea prin acest sistem de ajutor, apăsați &lt;em&gt;@@@fkey_help@@@&lt;/em&gt; pentru a deschide &lt;a href=&quot;#help&quot;&gt;descriere&lt;/a&gt; al sistemului de ajutor. Funcțiile principale ale acestui meniu sunt:&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#harddisk&quot;&gt;Pornește de pe hard disc&lt;/a&gt;: Această opțiune nu are nici un efect asupra sistemului. Pornește doar un sistem de operare instalat anterior.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#linux&quot;&gt;Instalare&lt;/a&gt;: Acest mod de instalare funcționează pe majoritatea mașinilor. Dacă sistemul se blochează la bootare sau dacă apar probleme la detectarea componentelor hardware, ca de exemplu controllere de disc sau plăci de rețea, încercați cu una dintre următoarele opțiuni de instalare.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#noacpi&quot;&gt;Instalare -- ACPI deactivat&lt;/a&gt;: Multe dintre calculatoarele actuale au implementări APIC incomplete sau defectuoase. Această opțiune deactivează suportul APIC din kernel, însă păstrează activate anumite funcționalități pentru performanță, ca de exemplu DMA pentru hard disk-uri IDE.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#nolapic&quot;&gt;Instalare -- APIC local dezactivat&lt;/a&gt;: Dacă instalarea normală eșuează, poate fi din cauza hardware-ului din sistem ce nu suportă APIC local. Dacă aceasta pare a fi cauza, utilizați această opțiune pentru a instala fără suport APIC local.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#failsafe&quot;&gt;Instalare -- Setări sigure&lt;/a&gt;: Dacă nu ați reușit cu &lt;em&gt;Instalare&lt;/em&gt;, puteți încerca această variantă.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#rescue&quot;&gt;Sistem de salvare&lt;/a&gt;: Această imagine de boot pornește un mini-sistem Linux în RAM. Poate fi util dacă sistemul nu pornește corect. După bootare, autentificați-vă ca root.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#firmware&quot;&gt;Test firmware&lt;/a&gt;: Rulează un utilitare de testare a BIOS-ului, ce validează ACPI și alte părți ale BIOS-ului dvs.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#memtest&quot;&gt;Test de memorie&lt;/a&gt;: Testarea memoriei nu este utilă doar pentru verificarea instalării noilor module de memorie. Este de asemenea un test de rezistență pentru o mare parte a sistemului dvs. și poate descoperi eventualele probleme hardware existente.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#opt&quot;&gt;Opțiuni de boot&lt;/a&gt;: Opțiunile de boot pot modifica complet comportamentul sistemului dvs. Sunt setări pentru kernel.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Ajutor&lt;/a&gt;: Acesta este sensibil la context. Va afișa diverse ecrane în funcție de elementul activ din ecranul de boot. Există de asemenea o descriere a acestui sistem de ajutor.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Setează limba și aranjamentul de tastatură utilizate de bootloader.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Modul Video&lt;/a&gt;: Aici puteți alege rezoluția ecranului la instalare. Dacă apar probleme la instalarea grafică, o soluție de moment poate fi &lt;em&gt;mod text&lt;/em&gt;.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Sursa instalării&lt;/a&gt;: Alegeți sursa de instalare.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Actualizări drivere&lt;/a&gt;: În cazul computerelor foarte noi, pentru instalarea sistemului poate fi necesară o actualizare de drivere.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallromainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;Selecție tip software&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Puteți alege între versiunea pe 32 de biți și 64 de biți a @@@product@@@.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallromaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;Actualizare driver&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;h3&gt;&lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;&lt;/h3&gt; Dacă aveţi nevoie de o dischetă sau un CD-ROM de actualizare a driverelor, apăsați &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. Bootloader-ul vă va cere să introduceți mediul de actualizare după încărcarea kernelului Linux.&lt;/p&gt;
++
++&lt;p&gt;O actualizare de driver este în mod normal o dischetă cu versiuni noi ale driverelor hardware sau corecturi de erori necesare în timpul instalării.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallromainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;Instalare -- Setări sigure&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Selectați &lt;em&gt;Instalare -- Setări sigure&lt;/em&gt; dacă sistemul se blochează la instalare sau dacă apar erori ce nu se pot reproduce. Această opțiune deactivează DMA pentru unitățile IDE și toate funcționalitățile de gestiune a alimentării. Vedeți și opțiunile kernel pentru &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;, &lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; și &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallromainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;Test firmware&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Starts a BIOS checker that validates the ACPI tables
++and many other parts of your BIOS.
++Test results can be stored on usb disk or saved via network.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallromainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,16 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;Pornește de pe hard disc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Bootează sistemul de operare instalat&lt;/em&gt; to start the system installed on
++your local hard disk. This system must be installed properly, because
++only the MBR (Master Boot Record) on the first hard disk is started.
++The device ID of the first hard disk is provided by the BIOS of
++the computer.
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this if you forgot to remove the CD or DVD from your
++drive and want to start the computer from the hard disk.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallromainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Utilzarea sistemului de ajutor&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Săgeată în sus&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Săgeată în jos&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Săgeată stânga&lt;/em&gt;, &lt;em&gt;Inapoi&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Săgeată dreapta&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Spațiu&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Pagină sus&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Pagină jos&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Acasă&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Sfârșit&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallromaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;Sursă de instalare&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; to choose an installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++This is the same as using the &lt;a href=&quot;#o_install&quot;&gt;instalează&lt;/a&gt;
++boot option.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallromainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Selecție limbă și mapare tastatură&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallromainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;Instalare&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Instalare&lt;/em&gt; to start the default installation. The
++&lt;a href=&quot;#opt&quot;&gt;opțiuni de boot&lt;/a&gt; entered are used in the
++start-up. This item activates many features of commonly available
++hardware.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallromainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;Test de memorie&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The included &lt;em&gt;Test de memorie&lt;/em&gt; provides good possibilities to
++stress test the hardware of a system. Its main purpose is to detect
++broken RAM, but it also stresses many other parts of the system.
++&lt;/p&gt;
++
++&lt;p&gt;
++There is no guarantee that the memory is good if no errors are
++found, although most of memory defects will be found.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallromainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,24 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;Instalare -- ACPI deactivat&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Current hardware usually requires ACPI (Advanced Configuration and Power Interface)
++to control the interrupt handling.
++ACPI completely replaces the old APM system.
++&lt;/p&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Instalare -- ACPI deactivat&lt;/em&gt; if you encounter
++problems during boot of the kernel. Known problems with machines that
++have problems with ACPI are:
++&lt;ul&gt;
++ &lt;li&gt;kernel freezes when booting&lt;/li&gt;
++ &lt;li&gt;PCI Cards are not detected or initialized properly&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++You may also try the &lt;a href=&quot;#firmware&quot;&gt;Test firmware&lt;/a&gt; boot option
++and look at the test results of the ACPI validation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallromainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;Instalare -- APIC local dezactivat&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Normally there are no problems with the APIC (Advanced Programmable Interrupt
++Controller). But if you seem to have some, try this option to boot
++without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++Please don't confuse this with &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt;
++(Advanced Configuration and Power Interface).
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallromainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,28 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Opțiuni de boot&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++There are two types of boot options available. First, there are
++options that affect the installer. Second, there are kernel
++options. Some of the more common options are:
++&lt;/p&gt;
++
++&lt;p&gt;
++a) installer options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;instalează&lt;/a&gt; -- select an installation source&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#network&quot;&gt;opțiuni rețea&lt;/a&gt; -- the network options&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;opțiuni vnc&lt;/a&gt; -- options for installation via VNC&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++b) kernel options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallromainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;Opțiuni instalare: Opțiuni rețea&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++It is possible to configure the network interface right now. The
++hardware will be detected later by YaST2. The minimum set of options
++to configure your network card consists of host IP and netmask. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++or in a shorter form:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++If you specified a &lt;a href=&quot;#o_install&quot;&gt;instalare bazată pe rețea&lt;/a&gt; and do
++not specify both of these options, the installer tries to configure
++the network interface with &lt;em&gt;dhcp&lt;/em&gt;. If you need a default
++gateway, specify this with the option &lt;em&gt;gateway&lt;/em&gt;. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;gateway=192.168.0.8&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallromainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Opțiuni kernel: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallromainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Opțiuni kernel: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallromainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Opțiuni kernel: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallromainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,30 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;Opțiuni instalare: instalează&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++By default, the local CD-ROMs are searched for the installation source.
++For a network install, select the
++&lt;em&gt;instalează&lt;/em&gt; option. Possible installation protocols are
++&lt;ul&gt;
++ &lt;li&gt;FTP&lt;/li&gt;
++ &lt;li&gt;NFS&lt;/li&gt;
++ &lt;li&gt;HTTP&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The syntax to use is just like standard URLs. For example,
++if your server is found at 192.168.0.1 and you want to do an NFS-based
++install from the directory /install on this server, specify
++the source as follows:
++&lt;ul&gt;
++ &lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The network card will either be configured with &lt;em&gt;dhcp&lt;/em&gt; or you
++must specify the parameters yourself as described in the
++&lt;a href=&quot;#network&quot;&gt;opțiuni rețea&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallromainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Opțiuni kernel: splash (ecran de pornire)&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallromainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;Opțiuni instalare: vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++To enable the VNC installation, specify the
++parameters vnc and vncpassword:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;vnc=1 vncpassword=example&lt;/em&gt;&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The VNC server will be started and you may control YaST2 over any VNC
++client from a remote system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallromainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;Sistem de salvare&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The &lt;em&gt;Sistem de salvare&lt;/em&gt; is a small RAM disk base system. From there,
++it is possible to make all kinds of changes to an installed system. Because
++only low-level tools are available in this system, it is intended for
++experts.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallromainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;Selecție mod video&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; to get the list of video modes your graphics card
++supports. The highest mode your monitor can display is preselected.
++&lt;/p&gt;
++
++&lt;p&gt;
++It is possible that your monitor cannot be detected automatically. In that
++case, select your preferred mode manually.
++&lt;/p&gt;
++
++&lt;p&gt;
++If your system has problems with the graphics card during the
++installation, the &lt;em&gt;mod text&lt;/em&gt; may be a usable work-around.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallronavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ro/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Înapoi la &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallrumainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;Справка загрузчика&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Добро пожаловать &lt;em&gt;@@@product@@@&lt;/em&gt;&lt;/p&gt;
++
++&lt;p&gt;Используйте это меню для выбора необходимой функции. Если у вас проблемы с управлением в данной системе помощи, нажмите&lt;em&gt;@@@fkey_help@@@&lt;/em&gt; чтобы войти в &lt;a href=&quot;#help&quot;&gt;описание&lt;/a&gt; системы помощи. Главные функции в этом меню:&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#harddisk&quot;&gt;Загрузка с жёсткого диска&lt;/a&gt;: Этот выбор ничего ничего не сделает с системой. Просто будет запущена ранне установленная система.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#linux&quot;&gt;Установка&lt;/a&gt;: Этот режим установки работает на большинстве компьютеров. Если у вас зависает система при загрузке или у вас проблемы с обнаружением аппаратных средств, таких как контроллеры диска или сетевые платы, попробуйте одну из следующих установочных параметров.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#noacpi&quot;&gt;Установка - ACPI выключено&lt;/a&gt;: Многие проданные компьюетры имеют неполную или неверную реализацию ACPI. Этот выбор отключает поддержку ACPI в ядре, однако многие особенности влияющие на быстродействие все равно включены, напримерe DMA для IDE жестких дисков.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#nolapic&quot;&gt;Установка - локальный APIC выключен&lt;/a&gt;: Если обычная установка не получается, возможно ваше оборудование не поддерживает APIC. Если это так, используйте этот параметр для установки без поддержки APIC.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#failsafe&quot;&gt;Установка - безопасные параметры настройки&lt;/a&gt;: Если у вас не получается с &lt;em&gt;Установка&lt;/em&gt;, этот выбор может помочь вам.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#rescue&quot;&gt;Спасательная система&lt;/a&gt;: Этот загрузочный образ запускает маленькую Linux систмеу в RAM. Это полезно если ваша система запускает не правильно. После загрузки этой системы, войдите как root.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#firmware&quot;&gt;Проверка программно-аппаратных средств&lt;/a&gt;: Запускает инструмент проверки BIOS, который проверяет ACPI и другие части вашего BIOS.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#memtest&quot;&gt;Тест памяти&lt;/a&gt;: Тест памяти более полезней, чем просто проверка новых модулей памяти. Это стрессовая проверка большей части вашей компьютерной системы и может выявить проблемы в оборудовании.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#opt&quot;&gt;Параметры загрузки&lt;/a&gt;: Параметры загрузки могут полностью изменять поведение вашей системы. Это настройки ядра.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Help&lt;/a&gt;: Зависит от содержания. Будут показаны разные экраны в зависимости от активного элемента экрана загрузки. Также есть описание этой системы помощи.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Установить язык и раскладку клавиатуры используемые загрузчиком.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Видео режим&lt;/a&gt;: Выберите необходимое разрешение экрана, используемое при установке. Если у вас есть проблемы с графической установкой, &lt;em&gt;текстовый режим&lt;/em&gt; может быть поможет вам.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Источник установки&lt;/a&gt;: Выберите источник установки.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Драйвер обновления&lt;/a&gt;: Для очень новых машин, системе может понадобиться Драйвер обновления.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallrumainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;Выбор типа программного обеспечения&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Вы должны выбрать, устанавливать 32-разрядную или 64-разрядную версию @@@product@@@.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallrumaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;Обновление драйвера&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Если вам необходима дискета или CD-ROM с драйвером обновления, нажмите &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. Загрузчик попросит вас вставить носитель драйвера обновления после загрузки ядра Linux.&lt;/p&gt;
++
++&lt;p&gt;Драйвер обновления это обычно дискета с новыми версиями драйверов оборудования или исправлениями ошибок необходимыми во время установки.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallrumainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;Установка - безопасные параметры настройки&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Выберите &lt;em&gt;Установка - безопасные параметры настройки&lt;/em&gt; если у вас подвисает система при установке или возникают непонятные ошибки. Этот параметр отключает DMA для IDE устройств и все особенности управления питанием. Смотри также параметры ядра &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;, &lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; и &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallrumainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;Проверка программно-аппаратных средств&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Запускает проверку BIOS на совместимость с ACPI и другими частями вашего BIOS. Результат проверки можно сохранить на usb диске или по сети.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallrumainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;Загрузка с жёсткого диска&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Выберите &lt;em&gt;Загрузить установленную ОС&lt;/em&gt; чтобы запустить систему установленную на вашем жестком диске. Эта система должна быть установлена, так как стартует только MBR (Главная загрузочная запись) первого жесткого диска. ID устрайства перевого жесткого диска предоставляет BIOS компьютера.&lt;/p&gt;
++
++&lt;p&gt;Используйте это, если вы забыли вытащить CD или DVD из дисковода и вы хотите запуститькомпьютер с жесткого диска.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallrumainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Использование системы помощи&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ОнЛайновая справка загрузчика зависит от содержания. Она дает информацию по выбранному элементу меню или, если вы редактируете параметр загрузки, она пытается найти информацию о параметре на котором стоит курсор.&lt;/p&gt;
++
++&lt;p&gt;Кнопки управления &lt;ul&gt;&lt;li&gt;&lt;em&gt;Стрелка вверх&lt;/em&gt;: выделяет предыдущую ссылку&lt;/li&gt;&lt;li&gt;&lt;em&gt;Стрелка вниз&lt;/em&gt;: выделяет следующую ссылку&lt;/li&gt;&lt;li&gt;&lt;em&gt;Стрелка влево&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: вернуться к предыдущей главе&lt;/li&gt;&lt;li&gt;&lt;em&gt;Стрелка вправо&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Пробел&lt;/em&gt;: перейти по ссылке&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: пролистать назад одну страницу&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: пролистать вперед одну страницу&lt;/li&gt;&lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: перейти к началу страницы&lt;/li&gt;&lt;li&gt;&lt;em&gt;End&lt;/em&gt;: перейти к концу с
+ траницы&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: выйти из помощи&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallrumaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;Источник установки&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Нажмите &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; чтобы выбрать источник установки.&lt;/p&gt;
++
++&lt;p&gt;Это тоже самое, если использовать параметр загрузки &lt;a href=&quot;#o_install&quot;&gt;установить&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallrumainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Выбор языка и раскладки клавиатуры&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Нажмите &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; чтобы изменить язык и раскладку клавиатуры которую использует загрузчик.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallrumainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;Установка&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Выберите &lt;em&gt;Установка&lt;/em&gt; чтобы начать установку по умолчанию. Указанный &lt;a href=&quot;#opt&quot;&gt;параметры загрузки&lt;/a&gt;, будет использоваться при запуске. Этот пункт активирует многие общие особенности доступного оборудования.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallrumainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;Тест памяти&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Включенный параметр &lt;em&gt;Тест памяти&lt;/em&gt; предоставляет хорошую возможность для стрессового теста оборудования системы. Главная цель обнаружить неисправные RAM, но кроме этого происходит нагрузка остальных частей системы.&lt;/p&gt;
++
++&lt;p&gt;Если не обнаружено ошибок, нет гарантии, что память хорошая, однако большинство дефектов памяти были бы обнаружены.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallrumainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;Установка - ACPI выключено&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Современное оборудование, обычно использует APIC (Усовершенствованный интерфейс конфигурирования системы и управления энергопитанием) для управления прерываниями. ACPI полностью заменяет старую APM систему.&lt;/p&gt;
++
++&lt;p&gt;Выберите &lt;em&gt;Установка - ACPI выключено&lt;/em&gt; если есть проблемы с ядром во время загрузки. Известные проблемы с машинами, которые имеют проблемы с AC: &lt;ul&gt;&lt;li&gt;ядро приостанавливается при загрузке&lt;/li&gt;&lt;li&gt;PCI платы не обнаружены или неверно инициализированы&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Вы можете попробовать использовать &lt;a href=&quot;#firmware&quot;&gt;Проверка программно-аппаратных средств&lt;/a&gt; параметр загрузки и посмотреть результат проверки ACPI.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallrumainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;Установка - локальный APIC выключен&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Обычно не возникают проблемы с APIC (Усовершенствованный интерфейс конфигурирования системы и управления энергопитанием). Но если вы обнаружили некоторые, попробуйте этот параметр для загрузки без поддержки APIC.&lt;/p&gt;
++
++&lt;p&gt;Не путайте это с &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt; (Усовершенствованный интерфейс конфигурирования системы и управления энергопитанием).&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallrumainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Параметры загрузки&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Есть два типа параметров загрузки. Во первых, это параметры, которые влияют на установщик. Во вторых, это параметры ядра. Некоторые из наиболее распостранных параметров:&lt;/p&gt;
++
++&lt;p&gt;a) параметры установки &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;установить&lt;/a&gt; -- выберите источник установки&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#network&quot;&gt;параметры сети&lt;/a&gt; -- сетевые параметры&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;параметры vnc&lt;/a&gt; -- параметры для установки через VNC&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;b) параметры язра &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;заставка&lt;/a&gt; -- влияет на поведение заставки&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- переключает управление питанием&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- усовершенствованный интерфейс конфигурирования системы и управления энергопитанием&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- управляет IDE подсистемой&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallrumainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,13 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;Параметры установки: Параметры сети&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Можно настроить сетевой интерфейс прямо сейчас. Оборудование будет определено позже YaST2. Минимальный набор параметров вашей сетевой карты состоит из IP адреса узла и сетвой маски. Для примера: &lt;ul&gt;&lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;или в коротком виде: &lt;ul&gt;&lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Если вы указали &lt;a href=&quot;#o_install&quot;&gt;сетевая установка&lt;/a&gt; и не указали оба эти параметра, установщик попытается настроить сетевой интерфейс с &lt;em&gt;dhcp&lt;/em&gt;. Если вам необходим шлюз по умолчанию, укажите это с параметром &lt;em&gt;шлюз&lt;/em&gt;. Например: &lt;ul&gt;&lt;li&gt;gateway=192.168.0.8&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallrumainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Параметры ядра: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI (Усовершенствованный интерфейс конфигурирования системы и управления энергопитанием) эвляется стандартом которые определяет интерфейс управления питанием и конфигурацией между операционной системой и BIOS. По умолчанию, &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- не использовать ACPI для управления PCI прерываниями&lt;/li&gt; включен, если определяется, что версия BIOS датирована позднее чем 2000 г. Есть несколько общих параметров для управления поведением ACPI: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- не использовать ACPI для управления PCI прерываниями&lt;/li&gt;&lt;li&gt;&lt;em&g
+ t;acpi=oldboot&lt;/em&gt; -- только часть ACPI которая относиться к загрузке, остается активной&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- полностью выключает ACPI&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- включает ACPI даже если ваш BIOS датирован ранее чем 2000&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Особенно на новых компьютерах, заменяет старый &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; системы.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallrumainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Параметры ядра: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM это одна из двух стратегий управлений питанием используемых в настоящее время в компьютерах. Она в основном используется в лаптопах для функций таких как остановка диска, но она также может использоваться для отключения компьютера во время отключения питания. APM завист от правильной работы BIOS. Если BIOS не исправен, APM ограничено в применении или запретит работу компьютера. Однако, она может быть отключена со следующим параметром &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- полностью выключает APM&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Только некоторые очень новые компьютеры имеют преимущество перед другими &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallrumainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Параметры ядра: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;IDE, в отличии от SCSI, обычно используется в большинстве рабочих станциях. Чтобы предотвратить некоторые проблемы с оборудованием которое случается с IDE системами, используйте параметр ядра: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- выключить DMA для IDE дисков&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallrumainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;Параметры установки: install&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;По умолчанию, локальный CD-ROMы являются источником установки. Для сетевой установки, выберите параметр &lt;em&gt;установить&lt;/em&gt;. Возможные сетевые протоколы &lt;ul&gt;&lt;li&gt;FTP&lt;/li&gt;&lt;li&gt;NFS&lt;/li&gt;&lt;li&gt;HTTP&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Используемый синтакс это просто стандартынй URL. Дл примера, если ваш сервер находится по адресу 192.168.0.1 и вы хотите осуществить установку с NFS из каталога /install на этом сервере, укажите источник в следующем виде: &lt;ul&gt;&lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Сетевая карта будет настроена с &lt;em&gt;dhcp&lt;/em&gt; или вы сами должны указать параметры как описано в &lt;a href=&quot;#network&quot;&gt;параметры сети&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallrumainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Параметры ядра: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Заставка это картинка показываемая во время загрузки системы. &lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- Заставка отключена. Это может быть полезным со очень старыми мониторами или когда надо видеть ошибки на экране.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Активирует заставку, сообщения загрузки и ядра попрежнему показываны.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; --Активирует заставку, но без сообщений. Однако будет показ процесс выполнения.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallrumainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;Параметры установки: vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Чтобы разрешить VNC установку, укажите параметр vnc и vncpassword: &lt;ul&gt;&lt;li&gt;&lt;em&gt;vnc=1 vncpassword=example&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;VNC сервер будет запущен и вы сможеть управлять YaST2 через любой VNC клиент с удаленной системы.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallrumainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;Спасательная система&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;Спасательная система&lt;/em&gt; это маленькая базовая система в ОЗУ. Из нее возможно сделать различные изменения в установленной системе. Так как здесь доступны только низко-уровневые утилиты, она предназначена только для специалистов.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallrumainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;Выбор видео режима&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Нажмите &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; чтобы получить список видео режимов которые поддерживает ваша видео-карточка. Наилучший режим вашего монитора может быть уже выбран.&lt;/p&gt;
++
++&lt;p&gt;Возможно что ваш монитор не будет опреден автоматически. В этом случае, выберите ваш желаемый режим вручную.&lt;/p&gt;
++
++&lt;p&gt;Если ваша система имеет проблемы с графической картой во время установки, в этом случае может быть полезным &lt;em&gt;текстовый режим&lt;/em&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallrunavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/ru/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Возврат к &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallskmainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,103 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;Pomocník pre správcu štartu&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Welcome to &lt;em&gt;@@@product@@@&lt;/em&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this menu to select the desired function. If you have
++problems navigating in this help system, press
++&lt;em&gt;@@@fkey_help@@@&lt;/em&gt; to enter the &lt;a href=&quot;#help&quot;&gt;Popis&lt;/a&gt; of the help
++system. The main functions in this menu are:
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#harddisk&quot;&gt;Spustiť systém z pevného disku&lt;/a&gt;: This selection will not do
++anything to the system. It only starts a previously installed
++operating system.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#linux&quot;&gt;Inštalácia&lt;/a&gt;:
++This installation mode works on most machines. If you experience a
++system freeze during boot or problems with detection of your hardware
++components, such as disk controllers or network cards, try one of the
++following installation options.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#noacpi&quot;&gt;Inštalácia - bez ACPI&lt;/a&gt;: Many of the
++currently-sold computers have incomplete or faulty ACPI
++implementations. This selection disables ACPI support in the
++kernel, but still enables many performance features, like DMA for IDE
++hard disks.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#nolapic&quot;&gt;Inštalácia - bez lokálneho APIC&lt;/a&gt;:
++If the normal installation fails, this might be due to the
++system hardware not supporting local APIC.
++If this seems to be the case, use this option to
++install without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#failsafe&quot;&gt;Inštalácia -- Záchranný režim&lt;/a&gt;: If you were not
++successful with &lt;em&gt;Inštalácia&lt;/em&gt;, this selection might
++solve the issue.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#rescue&quot;&gt;Záchranný systém&lt;/a&gt;: This boot image starts a small
++Linux system in RAM. This is useful if the system does not start properly.
++After booting this system, log in as root.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#firmware&quot;&gt;Test firmvéru&lt;/a&gt;: Runs a BIOS test tool that validates
++ACPI and other parts of your BIOS.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#memtest&quot;&gt;Test pamäte&lt;/a&gt;: Memory testing is useful for more than
++checking installation of new memory modules. It is a stress test
++for a big part of your computer system and may indicate hardware
++problems.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#opt&quot;&gt;Možnosti štartu&lt;/a&gt;: The boot options may change the
++behavior of your system completely. They are settings for
++the kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Help&lt;/a&gt;: This is context sensitive. It will
++show different screens depending on the active element of the
++boot screen. There is also a description of this help system
++available.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Set language and keyboard mapping
++used by the boot loader.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Video Mode&lt;/a&gt;: Here, choose between
++different screen resolutions while installing. If you encounter
++problems with the graphical installation, the &lt;em&gt;Textový režim&lt;/em&gt; may
++be a work-around for you.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Installation Source&lt;/a&gt;: Choose the
++installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Driver Update&lt;/a&gt;: For very new machines, a
++driver update may be needed to install the system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallskmainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;Výber typu sofvéru&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++You have the choice to install the 32-bit or 64-bit version of @@@product@@@.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallskmaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;Aktualizácia ovládačov&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++If you need a driver update floppy or CD-ROM, press &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. The
++boot loader asks you to insert the driver update medium after
++loading the Linux kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++A driver update is typically a floppy with new versions of hardware
++drivers or bug fixes needed during installation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallskmainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,11 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;Inštalácia -- Záchranný režim&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Inštalácia -- Záchranný režim&lt;/em&gt; if you encounter hangs
++while installing or irreproducible errors. This option disables DMA
++for IDE drives and all power management features.
++See also the kernel options for &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;,
++&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; and &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallskmainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;Test firmvéru&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Starts a BIOS checker that validates the ACPI tables
++and many other parts of your BIOS.
++Test results can be stored on usb disk or saved via network.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallskmainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,16 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;Spustiť systém z pevného disku&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Štartovať nainštalovaný systém&lt;/em&gt; to start the system installed on
++your local hard disk. This system must be installed properly, because
++only the MBR (Master Boot Record) on the first hard disk is started.
++The device ID of the first hard disk is provided by the BIOS of
++the computer.
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this if you forgot to remove the CD or DVD from your
++drive and want to start the computer from the hard disk.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallskmainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Ako používať tohto pomocníka&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Šipka hore&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Šipka dolu&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Šipka vľavo&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Šipka vpravo&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Medzerník&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;kláves Page Up&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;kláves Page Down&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Domov&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;kláves End&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallskmaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;Inštalačný zdroj&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; to choose an installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++This is the same as using the &lt;a href=&quot;#o_install&quot;&gt;inštalovať&lt;/a&gt;
++boot option.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallskmainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Voľba jazyka a klávesnice&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallskmainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;Inštalácia&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Inštalácia&lt;/em&gt; to start the default installation. The
++&lt;a href=&quot;#opt&quot;&gt;Možnosti štartu&lt;/a&gt; entered are used in the
++start-up. This item activates many features of commonly available
++hardware.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallskmainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;Test pamäte&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The included &lt;em&gt;Test pamäte&lt;/em&gt; provides good possibilities to
++stress test the hardware of a system. Its main purpose is to detect
++broken RAM, but it also stresses many other parts of the system.
++&lt;/p&gt;
++
++&lt;p&gt;
++There is no guarantee that the memory is good if no errors are
++found, although most of memory defects will be found.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallskmainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,24 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;Inštalácia - bez ACPI&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Current hardware usually requires ACPI (Advanced Configuration and Power Interface)
++to control the interrupt handling.
++ACPI completely replaces the old APM system.
++&lt;/p&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Inštalácia - bez ACPI&lt;/em&gt; if you encounter
++problems during boot of the kernel. Known problems with machines that
++have problems with ACPI are:
++&lt;ul&gt;
++ &lt;li&gt;kernel freezes when booting&lt;/li&gt;
++ &lt;li&gt;PCI Cards are not detected or initialized properly&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++You may also try the &lt;a href=&quot;#firmware&quot;&gt;Test firmvéru&lt;/a&gt; boot option
++and look at the test results of the ACPI validation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallskmainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;Inštalácia - bez lokálneho APIC&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Normally there are no problems with the APIC (Advanced Programmable Interrupt
++Controller). But if you seem to have some, try this option to boot
++without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++Please don't confuse this with &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt;
++(Advanced Configuration and Power Interface).
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallskmainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,28 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Možnosti štartu&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++There are two types of boot options available. First, there are
++options that affect the installer. Second, there are kernel
++options. Some of the more common options are:
++&lt;/p&gt;
++
++&lt;p&gt;
++a) installer options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;inštalovať&lt;/a&gt; -- select an installation source&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#network&quot;&gt;voľby siete&lt;/a&gt; -- the network options&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;Voľby vnc&lt;/a&gt; -- options for installation via VNC&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++b) kernel options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;úvodná obrazovka&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallskmainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;Inštalačné možnosti: Sieťové voľby&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++It is possible to configure the network interface right now. The
++hardware will be detected later by YaST2. The minimum set of options
++to configure your network card consists of host IP and netmask. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++or in a shorter form:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++If you specified a &lt;a href=&quot;#o_install&quot;&gt;inštalácia po sieti&lt;/a&gt; and do
++not specify both of these options, the installer tries to configure
++the network interface with &lt;em&gt;dhcp&lt;/em&gt;. If you need a default
++gateway, specify this with the option &lt;em&gt;brána&lt;/em&gt;. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;gateway=192.168.0.8&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallskmainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Voľba jadra: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallskmainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Voľba jadra: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallskmainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Voľba jadra: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallskmainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,30 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;Voľba inštalácie: instalácia&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++By default, the local CD-ROMs are searched for the installation source.
++For a network install, select the
++&lt;em&gt;inštalovať&lt;/em&gt; option. Possible installation protocols are
++&lt;ul&gt;
++ &lt;li&gt;FTP&lt;/li&gt;
++ &lt;li&gt;NFS&lt;/li&gt;
++ &lt;li&gt;HTTP&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The syntax to use is just like standard URLs. For example,
++if your server is found at 192.168.0.1 and you want to do an NFS-based
++install from the directory /install on this server, specify
++the source as follows:
++&lt;ul&gt;
++ &lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The network card will either be configured with &lt;em&gt;dhcp&lt;/em&gt; or you
++must specify the parameters yourself as described in the
++&lt;a href=&quot;#network&quot;&gt;voľby siete&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallskmainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Voľby jadra: úvodná obrazovka&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallskmainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;Voľba inštalácie: vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++To enable the VNC installation, specify the
++parameters vnc and vncpassword:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;vnc=1 vncpassword=mojeheslo&lt;/em&gt;&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The VNC server will be started and you may control YaST2 over any VNC
++client from a remote system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallskmainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;Záchranný systém&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The &lt;em&gt;Záchranný systém&lt;/em&gt; is a small RAM disk base system. From there,
++it is possible to make all kinds of changes to an installed system. Because
++only low-level tools are available in this system, it is intended for
++experts.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallskmainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;Voľba zobrazovacieho režimu&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; to get the list of video modes your graphics card
++supports. The highest mode your monitor can display is preselected.
++&lt;/p&gt;
++
++&lt;p&gt;
++It is possible that your monitor cannot be detected automatically. In that
++case, select your preferred mode manually.
++&lt;/p&gt;
++
++&lt;p&gt;
++If your system has problems with the graphics card during the
++installation, the &lt;em&gt;Textový režim&lt;/em&gt; may be a usable work-around.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallsknavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sk/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,3 @@
++&lt;p&gt;
++Return to &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallsvmainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;Hjälp om starthanterare&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Välkommen till &lt;em&gt;@@@product@@@&lt;/em&gt;&lt;/p&gt;
++
++&lt;p&gt;Välj önskad funktion på menyn. Om du har problem med att navigera i hjälpsystemet trycker du på &lt;em&gt;@@@fkey_help@@@&lt;/em&gt; och går till &lt;a href=&quot;#help&quot;&gt;beskrivning&lt;/a&gt; i hjälpsystemet. Menyns huvudfunktioner är: &lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#harddisk&quot;&gt;Starta från hårddisk&lt;/a&gt;: Det här valet kommer inte att göra något med systemet. Det startar endast ett tidigare installerat operativsystem.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#linux&quot;&gt;Installation&lt;/a&gt;: Det här installationsläget fungerar på de flesta datorer. Om du upplever att systemet låser sig under start eller problem med identifiering av hårdvarukomponenter, som t ex diskstyrenheter eller nätverkskort, försök med något av följande installationsalternativ.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#noacpi&quot;&gt;Installation - ACPI inaktiverat&lt;/a&gt;: Många av de datorer som säljs för tillfället har en ofullständig eller felaktig implementering av ACPI. Det här valet inaktiverar ACPI-stöd i kärnan, men aktiverar många prestandafunktioner, t ex DMA för IDE-hårddiskar.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#nolapic&quot;&gt;Installation - Lokal APIC inaktiverat&lt;/a&gt;: Om den vanliga installationen misslyckas kan det bero på att systemmaskinvaran inte har stöd för lokal APIC. Om detta verkar vara fallet använder du det här alternativet och installerar utan stöd för lokal APIC.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#failsafe&quot;&gt;Installation - Säkra inställningar&lt;/a&gt;: Om du inte lyckades med &lt;em&gt;Installation&lt;/em&gt;, kan det här valet kanske lösa problemet.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#rescue&quot;&gt;Räddningssystem&lt;/a&gt;: Den här startavbilden startar ett litet Linux-system i RAM. Det här är användbart om systemet inte startar ordentligt. Logga in som root när du har startat det här systemet.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#firmware&quot;&gt;Test av fast program&lt;/a&gt;: Kör en BIOS-test som kontrollerar ACPI och andra funktioner i ditt BIOS.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#memtest&quot;&gt;Minnestest&lt;/a&gt;: Minnestestning kan användas till mer än att kontrollera installationen av nya minnesmoduler. Det är ett stresstest för en stor del av datorsystemet och kan ge indikationer på eventuella maskinvaruproblem.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#opt&quot;&gt;Startalternativ&lt;/a&gt;: Startalternativen kan förändra datorns beteende. De är inställningar för kärnan.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Hjälp&lt;/a&gt;: Detta är skiftlägeskänsligt. Olika fönster visas beroende på vilket element som är aktivt på startskärmen. En beskrivning av hjälpsystemet finns tillgänglig.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Ange det språk och den tangentbordsmappning som ska användas av starthanteraren.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Skärmläge&lt;/a&gt;: Här väljer du skärmupplösning under installationen. Om du stöter på problem med den grafiska installationen kanske &lt;em&gt;textläge&lt;/em&gt; fungerar bättre.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Installationskälla&lt;/a&gt;: Välj installationskälla.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Drivrutinsuppdatering&lt;/a&gt;: För väldigt nya datorer kan en drivrutinsuppdatering behövas för att installera systemet.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallsvmainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;Val av mjukvarutyp&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Du kan välja att installera 32-bitars eller 64-bitars versionen av @@@product@@@.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallsvmaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;Drivrutinsuppdatering&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Om du behöver en diskett eller CD-ROM-skiva med drivrutinsuppdateringar trycker du på &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. När Linux-kärnan har lästs in uppmanas du av starthanteraren att sätta in mediet med drivrutinsuppdateringen.&lt;/p&gt;
++
++&lt;p&gt;En drivrutinsuppdatering är vanligtvis en diskett med nya versioner av maskinvarudrivrutiner eller programkorrigeringar som behövs vid installationen.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallsvmainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;Installation - Säkra inställningar&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Välj &lt;em&gt;Installation - Säkra inställningar&lt;/em&gt; om systemet hänger under installationen eller om fel uppstår som inte går att återskapa. Med det här alternativet inaktiveras DMA för IDE-enheter och samtliga strömsparfunktioner. Se även kärnalternativen för &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;, &lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; och &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallsvmainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;Test av fast program&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Startar en BIOS-kontrollfunktion som validerar ACPI-tabellerna och många andra delar av BIOS. Testresultaten kan lagras på USB-enhet eller sparas via nätverk.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallsvmainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;Starta från hårddisk&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Välj &lt;em&gt;Starta installerat system&lt;/em&gt; om du vill starta det system som finns installerat på den lokala hårddisken. Systemet måste vara korrekt installerat eftersom endast MBR (Master Boot Record) på den första hårddisken startas. Den första hårddiskens enhets-ID tillhandahålls av datorns BIOS.&lt;/p&gt;
++
++&lt;p&gt;Använd det här om du glömde att ta ur cd:n eller dvd:n från enheten och vill starta datorn från hårddisken.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallsvmainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Att använda hjälpsystemet&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Direkthjälpen för starthanteraren är sammanhangskänslig. Den innehåller information om det valda menyalternativet eller, om du redigerar startalternativ, söker efter information om det alternativ där markören befinner sig.&lt;/p&gt;
++
++&lt;p&gt;Navigationstangenter &lt;ul&gt;&lt;li&gt;&lt;em&gt;Uppåtpil&lt;/em&gt;: färglägg föregående länk&lt;/li&gt;&lt;li&gt;&lt;em&gt;Neråtpil&lt;/em&gt;: färglägg nästa länk&lt;/li&gt;&lt;li&gt;&lt;em&gt;Vänsterpil&lt;/em&gt;, &lt;em&gt;Backsteg&lt;/em&gt;: återgå till föregående ämne&lt;/li&gt;&lt;li&gt;&lt;em&gt;Högerpil&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Mellanslag&lt;/em&gt;: följ länk&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: rulla upp en sida&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: rulla ner en sida&lt;/li&gt;&lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: gå till sidstart&lt;/li&gt;&lt;li&gt;&lt;em&gt;End&lt;/em&gt;: gå till sidslut&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: lämna hjälpen&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallsvmaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;Installationskälla&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Tryck &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; för att välja en installationskälla.&lt;/p&gt;
++
++&lt;p&gt;Detta har samma funktion som att använda startalternativet &lt;a href=&quot;#o_install&quot;&gt;installera&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallsvmainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Val av språk och tangentbordslayout&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Tryck på &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; för att ändra språket och tangentbordslayouten som starthanteraren ska använda.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallsvmainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;Installation&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Välj &lt;em&gt;Installation&lt;/em&gt; om du vill starta standardinstallationen. Angiven &lt;a href=&quot;#opt&quot;&gt;startalternativ&lt;/a&gt; används i startprocessen. Den här posten aktiverar många funktioner på vanlig maskinvara.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallsvmainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;Minnestest&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Den medföljande &lt;em&gt;Minnestest&lt;/em&gt; ger goda möjligheter att stresstesta systemets maskinvara. Huvudsyftet är att upptäcka skadat RAM-minne, men även många andra delar av systemet testas.&lt;/p&gt;
++
++&lt;p&gt;Att inga fel hittas är ingen garanti för att minnet fungerar, även om de flesta typer av minnesfel kan hittas.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallsvmainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;Installation - ACPI inaktiverat&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;För den aktuella maskinvaran krävs vanligtvis ACPI (Advanced Configuration and Power Interface) för styrning av avbrottshanteringen. ACPI ersätter det tidigare APM-systemet fullt ut.&lt;/p&gt;
++
++&lt;p&gt;Välj &lt;em&gt;Installation - ACPI inaktiverat&lt;/em&gt; om du upplever problem under start av kärnan. Kända problem med datorer som har problem med ACPI är: &lt;ul&gt;&lt;li&gt;kärnan hänger sig vid start&lt;/li&gt;&lt;li&gt;PCI-kort identifieras eller initieras inte ordentligt&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Du kan också prova startalternativet &lt;a href=&quot;#firmware&quot;&gt;Test av fast program&lt;/a&gt; och se testresultaten av ACPI-kontrollen.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallsvmainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;Installation - Lokal APIC inaktiverat&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Normalt är det inga problem med APIC (Advanced Programmable Interrupt Controller). Om det ändå skulle uppstå problem kan du pröva det här alternativet för start utan lokalt APIC-stöd.&lt;/p&gt;
++
++&lt;p&gt;Förväxla inte detta med &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt; (Advanced Configuration and Power Interface).&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallsvmainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Startalternativ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Två typer av startalternativ finns tillgängliga. Alternativ som påverkar installationsprogrammet, samt kärnalternativ. Här är några av de vanligaste alternativen:&lt;/p&gt;
++
++&lt;p&gt;a) installationsalternativ &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;installera&lt;/a&gt; -- välj en installationskälla&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#network&quot;&gt;nätverksalternativ&lt;/a&gt; -- nätverksalternativen&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;vnc-alternativ&lt;/a&gt; -- alternativ för installation via VNC&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;b) kärnalternativ &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;startskärm&lt;/a&gt; -- påverka startskärmens uppträdande&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- hantera strömsparfunktioner&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- avancerat inställnings- och strömhanteringsgränssnitt&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- kontrollera IDE-undersystemet&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallsvmainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,13 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;Installationsalternativ: Nätverksalternativ&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Det går att ställa in nätverksgränssnittet nu. Maskinvaran känns av senare av YaST2. Minimialternativen för inställning av nätverkskortet utgörs av värd-IP och nätmask. Exempel: &lt;ul&gt;&lt;li&gt;värd-ip=192.168.0.10 nätmask=255.255.255.0&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;eller i kortare form: &lt;ul&gt;&lt;li&gt;värd-ip=192.168.0.10/24&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Om du angav en &lt;a href=&quot;#o_install&quot;&gt;nätverksbaserad installation&lt;/a&gt; och inte anger båda de här alternativen, försöker installationsprogrammet ställa in nätverksgränssnittet med &lt;em&gt;dhcp&lt;/em&gt;. Om du behöver en standard-gateway anger du detta med alternativet &lt;em&gt;gateway&lt;/em&gt;. Exempel: &lt;ul&gt;&lt;li&gt;gateway=192.168.0.8&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallsvmainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Kärnalternativ: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI (Advanced Configuration and Power Interface) är en standard som definierar gränssnitt för ström- och inställningshantering mellan operativsystemet och BIOS. Som standard aktiveras &lt;em&gt;acpi&lt;/em&gt; när ett BIOS upptäcks som är tillverkat senare än år 2000. Det finns flera vanliga parametrar som styr ACPI:s beteende: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- använd inte ACPI för att hantera PCI-avbrott&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- enbart de funktioner i ACPI som är relavanta för uppstart är aktiverade&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=av&lt;/em&gt; -- stäng av ACPI helt&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=tvinga&lt;/em&gt; -- slå på ACPI även om ditt BIOS är tillverkat före 2000&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;På speciellt nya datorer ersätter den det gamla &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; systemet.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallsvmainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Kärnalternativ: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM är en av två strömsparstrategier som används på dagens datorer. Den används oftast på bärbara datorer för funktioner som vänteläge, men kan också hantera avstängning av datorn efter att strömbrytaren tryckts ned. För att APM ska fungera krävs en korrekt fungerande BIOS. Om BIOS är felaktig kanske APM endast har begränsade funktioner och den kan till och med hindra datorn från att fungera som den ska. Den kan därför stängas av med parametern &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=av&lt;/em&gt; -- stäng av APM helt&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;En del nya datorer kan dra större fördel av det senare &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallsvmainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Kärnalternativ: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Till skillnad mot SCSI används IDE på de flesta skrivbordsdatorer. För att kringgå vissa maskinvaruproblem som uppstår med IDE-system använder du följande kärnparameter: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- stäng av DMA för IDE-enheter&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallsvmainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;Installationsalternativ: installera&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Som standard söks de lokala CD-ROM-skivorna igenom efter installationskällan. För nätverksinstallation väljer du alternativet &lt;em&gt;installera&lt;/em&gt;. Möjliga installationsprotokoll är &lt;ul&gt;&lt;li&gt;FTP&lt;/li&gt;&lt;li&gt;NFS&lt;/li&gt;&lt;li&gt;HTTP&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Samma syntax som för vanliga URL:er används. Om servern t.ex. finns på 192.168.0.1 och du vill göra en NFS-baserad installation från katalogen /install på den servern, anger du källan enligt följande:&lt;ul&gt;&lt;li&gt;installera=nfs://192.168.0.1/install&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Antingen ställs nätverkskortet in med &lt;em&gt;dhcp&lt;/em&gt; eller så anger du själv inställningarna enligt anvisningarna i &lt;a href=&quot;#network&quot;&gt;nätverksalternativ&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallsvmainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Kärnalternativ: startskärm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Startskärmen är bilden som visas när systemet startar. &lt;ul&gt;&lt;li&gt;&lt;em&gt;startskärm=0&lt;/em&gt; -- Startskärmen stängs av. Detta kan vara praktiskt på äldre bildskärmar eller om fel uppstår.&lt;/li&gt;&lt;li&gt;&lt;em&gt;startskärm=utförlig&lt;/em&gt; -- Aktiverar startskärmar. Kärn- och startmeddelanden visas fortfarande.&lt;/li&gt;&lt;li&gt;&lt;em&gt;startskärm=tyst&lt;/em&gt; -- Aktiverar startskärm, men inga meddelanden. Istället visas ett fortskridandefält.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallsvmainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;Installationsalternativ: vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;För att aktivera VNC-installationen, ange parametrarna vnc och vncpassword: &lt;ul&gt;&lt;li&gt;&lt;em&gt;vnc=1 vnclösenord=exempel&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;VNC-servern kommer att startas och du kan styra YaST2 från en VNC-klient från ett fjärrsystem.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallsvmainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;Räddningssystem&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;Räddningssystem&lt;/em&gt; är ett litet RAM-diskbassystem. Därifrån går det att utföra alla typer av ändringar på ett installerat system. Eftersom endast verktyg på låg nivå finns tillgängliga i systemet är det avsett för experter.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallsvmainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;Val av videoläge&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Tryck på &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; om du vill se en lista med de skärmlägen som stöds av grafikkortet. Det högsta läge som stöds av bildskärmen är förvalt.&lt;/p&gt;
++
++&lt;p&gt;Det är möjligt att din bildskärm inte kan identifieras automatiskt. Om så är fallet, välj läget du föredrar manuellt.&lt;/p&gt;
++
++&lt;p&gt;Om systemet har problem med grafikkortet under installationen, kanske &lt;em&gt;textläge&lt;/em&gt; kan lösa problemet.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallsvnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/sv/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Återgå till &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallukmainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;Довідка для завантажувача&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Ласкаво просимо до &lt;em&gt;@@@product@@@&lt;/em&gt;&lt;/p&gt;
++
++&lt;p&gt;Використовуйте це меню для вибирання бажаної функції. Якщо виникнуть проблеми з навігацією в цій системі довідки, натисніть &lt;em&gt;@@@fkey_help@@@&lt;/em&gt;, щоб увійти в &lt;a href=&quot;#help&quot;&gt;опис&lt;/a&gt; системи довідки. Головні функції цього меню:&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#harddisk&quot;&gt;Завантаження з жорсткого диска&lt;/a&gt;: Цей вибір нічого не зробить з системою. Він тільки запустить раніше встановлену операційну систему.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#linux&quot;&gt;Встановлення&lt;/a&gt;: Цей режим встановлення підходить для більшості машин. Якщо ваша система замерзає під час завантаження або має проблеми з виявленням компонентів вашого обладнання, таких як контролерів дисків або мережних плат, спробуйте один з наступних параметрів встановлення.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#noacpi&quot;&gt;Встановлення — ACPI вимкнено&lt;/a&gt;: Багато комп'ютерів мають неповні або неправильні впровадження ACPI. Ця секція вимикає підтримку ACPI в ядрі, однак уможливлює багато можливостей швидкодії, таких як DMA для жорстких дисків IDE.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#nolapic&quot;&gt;Встановлення — локальне APIC вимкнено&lt;/a&gt;: Якщо нормальне встановлення зазнає невдачі, то причиною може бути, що обладнання системи не підтримує локального APIC. Якщо це справді так, вживайте цей параметр для встановлення без підтримки APIC.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#failsafe&quot;&gt;Встановлення — безпечні параметри&lt;/a&gt;: Якщо у вас не вийшло з &lt;em&gt;Встановлення&lt;/em&gt;, цей вибір, можливо, вам допоможе.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#rescue&quot;&gt;Порятунок системи&lt;/a&gt;: Цей штамп завантаження запускає малу систему Linux в RAM. Це корисне, якщо система належно не запускається. Після завантаження цієї системи увійдіть в неї як root (адміністратор).&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#firmware&quot;&gt;Тест мікропрограмного забезпечення&lt;/a&gt;: Запускає засіб тестування BIOS, який перевіряє ACPI й інші частин вашого BIOS.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#memtest&quot;&gt;Тест пам'яті&lt;/a&gt;: Тестування пам'яті корисне не тільки для перевірки встановлення нових модулів пам'яті. Цей тест робить навантаження на значну частину вашої системи і може виявити проблеми з апаратним обладнанням.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#opt&quot;&gt;Параметри завантаження&lt;/a&gt;: Параметри завантаження можуть цілком змінити поведінку вашої системи. Це параметри для ядра.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Довідка&lt;/a&gt;: Залежить від контексту. Буде показувати різну інформацію залежно від активного елемента екрана завантаження. Також є і опис цієї системи довідки.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Вкажіть мову і розкладку клавіатури для завантажувача.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Режим відео&lt;/a&gt;: Тут можна вибрати різні роздільності екрана під час встановлення. Якщо ви зіткнетесь з проблемами під час графічного встановлення, то &lt;em&gt;текстовий режим&lt;/em&gt; може допомогти обійти ці проблеми.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Джерело встановлення&lt;/a&gt;: Виберіть джерело встановлення.&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Оновлення драйверів&lt;/a&gt;: Для дуже нових комп'ютерів, щоб встановити систему, можливо, потрібне оновлення драйверів.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallukmainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;Вибір типу програмного забезпечення&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Ви можете вибрати і встановити або 32-бітову, або 64-бітову версію @@@product@@@.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallukmaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;Оновлення драйверів&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Якщо ви потребуєте вставити дискету або компакт-диск з оновленнями драйверів, натисніть &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. Завантажувач попросить вас вставити носій оновлення драйверів після завантаження ядра Linux.&lt;/p&gt;
++
++&lt;p&gt;Оновлення драйверів — це, зазвичай, дискета з новими версіями драйверів для обладнання чи з виправленнями помилок, які потрібні під час встановлення.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallukmainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;Встановлення — безпечні параметри&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Виберіть &lt;em&gt;Встановлення — безпечні параметри&lt;/em&gt;, якщо ви зазнаєте зависання під час встановлення або випадкові помилки. Цей параметр вимикає DMA для приводів IDE і всі функції керування живленням. Див. також про параметри ядра для &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;, &lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; і &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallukmainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;Тест мікропрограмного забезпечення&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Запускає тестування BIOS, яке перевіряє таблиці ACPI і багато інших частин вашого BIOS. Результати тестування можна зберігати на диску usb або через мережу.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallukmainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;Завантаження з жорсткого диска&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Виберіть &lt;em&gt;Завантажити встановлену ОС&lt;/em&gt;, щоб запустити систему встановлену на жорсткому диску. Ця система мусить бути правильно встановленою, тому що буде запущено тільки MBR (Master Boot Record) на першому жорсткому диску. Ідентифікатор пристрою першого жорсткого диска надається BIOS-ом комп'ютера.&lt;/p&gt;
++
++&lt;p&gt;Скористайтесь цим, якщо ви забули вийняти з вашого приводу компакт-диск або DVD й хочете запустити комп'ютер з жорсткого диска.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallukmainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Використання системи довідки&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Довідка завантажувача реагує на контекст. Вона надає інформацію про вибраний елемент меню або, якщо ви редагуєте параметри завантаження, вона намагається знайти інформацію про параметр, над яким знаходиться курсор.&lt;/p&gt;
++
++&lt;p&gt;Ключі навігації &lt;ul&gt;&lt;li&gt;&lt;em&gt;Стрілка вгору&lt;/em&gt;: підсвітити попереднє посилання&lt;/li&gt;&lt;li&gt;&lt;em&gt;Стрілка вниз&lt;/em&gt;: підсвітити наступне посилання&lt;/li&gt;&lt;li&gt;&lt;em&gt;Стрілка ліворуч&lt;/em&gt;, &lt;em&gt;Назад&lt;/em&gt;: повернутись до попередньої теми&lt;/li&gt;&lt;li&gt;&lt;em&gt;Стрілка праворуч&lt;/em&gt;, &lt;em&gt;Ввід (Enter)&lt;/em&gt;, &lt;em&gt;Пробіл&lt;/em&gt;: перейти за посиланням&lt;/li&gt;&lt;li&gt;&lt;em&gt;Сторінка вгору&lt;/em&gt;: прокрутити сторінку вгору&lt;/li&gt;&lt;li&gt;&lt;em&gt;Сторінка вниз&lt;/em&gt;: прокрутити сторінку вниз&lt;/li&gt;&lt;li&gt;&lt;em&gt;Домівка&lt;/em&gt;: перейти до початку сторінки&lt;
+ /li&gt;&lt;li&gt;&lt;em&gt;Кінець&lt;/em&gt;: перейти до кінця сторінки&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: вийти з довідки&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallukmaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;Джерело встановлення&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Натисніть &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt;, щоб вибрати джерело встановлення.&lt;/p&gt;
++
++&lt;p&gt;Це те саме, що використання параметра завантаження &lt;a href=&quot;#o_install&quot;&gt;встановити&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallukmainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Вибір мови та розкладки клавіатури&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Натисніть &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt;, щоб змінити мову та розкладку клавіатури, які використовує завантажувач.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallukmainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;Встановлення&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Виберіть &lt;em&gt;Встановлення&lt;/em&gt;, щоб запустити типове встановлення. &lt;a href=&quot;#opt&quot;&gt;параметри завантаження&lt;/a&gt; використовуються при запуску. Цей елемент активує багато можливостей загально наявного апаратного обладнання.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallukmainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;Тест пам'яті&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Включене &lt;em&gt;Тест пам'яті&lt;/em&gt; надає добру можливість для навантажувального тесту вашої системи. Хоча головна мета - це виявлення несправної RAM, але тест також робить навантаження на інші частини системи.&lt;/p&gt;
++
++&lt;p&gt;Якщо не знайдено помилок, це ще не є гарантією, що пам'ять добра, хоча буде знайдено більшість дефектів пам'яті.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallukmainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;Встановлення — ACPI вимкнено&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Найновіше апаратне обладнання часом потребує ACPI (інтерфейс розширеного налаштування та керування живленням) для керування обробкою перепинів. ACPI цілком заміняє стару систему APM.&lt;/p&gt;
++
++&lt;p&gt;Виберіть &lt;em&gt;Встановлення — ACPI вимкнено&lt;/em&gt;, якщо ви зіткнетесь з проблемами під час завантаження ядра. Відомі наступні проблеми в комп'ютерах, які мають проблеми з ACPI: &lt;/p&gt;
++
++&lt;p&gt;Також, можете спробувати параметр завантаження &lt;a href=&quot;#firmware&quot;&gt;Тест мікропрограмного забезпечення&lt;/a&gt; і переглянути результати тестування ACPI.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallukmainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;Встановлення — локальне APIC вимкнено&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Зазвичай, не виникає проблем з APIC (Advanced Programmable Interrupt Controller). Але, якщо у вас виникли проблеми, спробуйте цей параметр, щоб завантажити без підтримки APIC.&lt;/p&gt;
++
++&lt;p&gt;Будь ласка, не сплутайте це з &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt; (інтерфейс розширеного налаштування та керування живленням).&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallukmainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Параметри завантаження&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Є два типи наявних параметрів завантаження. По-перше, є параметри, які впливають на програму встановлення. По-друге, є параметри ядра. Найпоширеніші параметри:&lt;/p&gt;
++
++&lt;p&gt;a) параметри встановлення &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;встановити&lt;/a&gt; — виберіть джерело встановлення&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#network&quot;&gt;мережні параметри&lt;/a&gt; — мережні параметри&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;параметри vnc&lt;/a&gt; — параметри для встановлення через VNC&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;b) параметри ядра &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;заставка&lt;/a&gt; — керування поведінкою заставки&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; — перемикання керування живленням&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; — інтерфейс розширеного налаштування та керування живленням&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; — керування підсистемою IDE&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallukmainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,13 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;Параметри встановлення: мережні параметри&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Можна налаштувати мережний інтерфейс вже тепер. YaST2 виявить обладнання пізніше. Мінімальний набір параметрів для налаштування вашої мережної плати складається з адреси IP вузла і мережної маски. Наприклад: &lt;ul&gt;&lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;або в короткій формі: &lt;ul&gt;&lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Якщо ви вказали &lt;a href=&quot;#o_install&quot;&gt;встановлення через мережу&lt;/a&gt;, але не вказали обидва параметри, то програма встановлення намагається налаштувати мережний інтерфейс з &lt;em&gt;dhcp&lt;/em&gt;. Якщо вам потрібний типовий шлюз, вкажіть це за допомогою параметра &lt;em&gt;шлюз&lt;/em&gt;. Наприклад: &lt;ul&gt;&lt;li&gt;gateway=192.168.0.8&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallukmainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Параметри ядра: acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI (Advanced Configuration and Power Interface) — це стандарт, яким визначаються інтерфейси керування живленням та налаштуванням між операційною системою і BIOS. Типово, &lt;em&gt;acpi&lt;/em&gt; вмикається, коли виявлено BIOS датований після 2000 року. Є декілька загальновживаних параметрів для керування поведінкою ACPI: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; — не використовувати ACPI для перенаправлення перепинів PCI&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; — тільки частини ACPI, які стосуються завантаження, залишаться активованими&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; — цілком вимкнути ACPI&lt;/li&gt;&lt;li&g
+ t;&lt;em&gt;acpi=force&lt;/em&gt; — увімкнути ACPI, навіть якщо ваш BIOS створено до 2000 року&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Особливо на нових комп'ютерах, вона замінює стару систему &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallukmainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Параметри ядра: apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;APM — це одна з двох стратегій керування живленням, які застосовуються в сучасних комп'ютерах. Зазвичай, вона використовується в лептопах для таких функцій, як режим сну зі збереженням на диск, але також може вживатись для вимикання комп'ютера після знеструмлення. APM покладається на правильне функціонування BIOS. Якщо щось у BIOS не гаразд, APM, можливо, матиме тільки обмежене використання, або, навіть, перешкоджатими правильному функціонуванню комп'ютера. Тому, його можна вимкнути параметром &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; — цілком вимкнути
+ APM&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Деякі найновіші комп'ютери можуть мати користь з новішого &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallukmainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Параметри ядра: ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;На відміну від SCSI, IDE найчастіше зустрічається в більшості стільничних робочих станцій. Щоб обійти деякі проблеми в обладнанні, скористайтесь параметром ядра: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt;— вимкнути DMA для IDE-приводів&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallukmainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;Параметри встановлення: install&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Типово, за джерелом встановлення ведеться пошук в пристроях CD-ROM. Для мережного встановлення виберіть параметр &lt;em&gt;встановити&lt;/em&gt;. Можливі наступні протоколи встановлення &lt;ul&gt;&lt;li&gt;FTP&lt;/li&gt;&lt;li&gt;NFS&lt;/li&gt;&lt;li&gt;HTTP&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Треба використовувати синтаксис як в стандартних URL. Наприклад, якщо ваш сервер знаходиться на 192.168.0.1 і ви хочете робити встановлення з каталогу NFS /install на цьому сервері, то вкажіть джерело так: &lt;ul&gt;&lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Мережну плату буде налаштовано через &lt;em&gt;dhcp&lt;/em&gt; або ви мусите самі вказати параметри, як описано в &lt;a href=&quot;#network&quot;&gt;мережні параметри&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallukmainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Параметри ядра: splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Заставка екрана — це малюнок, який показується під час запуску системи. &lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; — Показ заставки вимкнено. Може придатись для дуже старих моніторів або, якщо виникає якась помилка.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; — Активує заставку, але буде показано повідомлення ядра та завантаження.&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; — Активує заставку, але замість повідомлень показується смужка поступу.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallukmainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;Параметри встановлення: vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Щоб уможливити встановлення через VNC, вкажіть параметри vnc і vncpassword: &lt;ul&gt;&lt;li&gt;&lt;em&gt;vnc=1 vncpassword=example&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;Буде запущено сервер VNC і ви зможете керувати програмою YaST2 через будь-який клієнт VNC з віддаленої системи.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallukmainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;Порятунок системи&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;Порятунок системи&lt;/em&gt; — це мала базова система на диску RAM. Звідти можна робити різноманітні зміни у встановленій системі. Оскільки в цій системі наявні тільки засоби низького рівня, вона призначена для експертів.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallukmainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;Вибір відеорежиму&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;Натисніть &lt;em&gt;@@@fkey_video@@@&lt;/em&gt;, щоб отримати список відеорежимів, які підтримуються вашою графічною платою. Вибрано найвищий режим, який підтримується вашим монітором.&lt;/p&gt;
++
++&lt;p&gt;Ймовірно, ваш монітор неможливо виявити автоматично. У цьому випадку, виберіть бажаний режим вручну.&lt;/p&gt;
++
++&lt;p&gt;Якщо під час встановлення у вашій системі виникнуть проблеми з графічною платою, то можете скористатись &lt;em&gt;текстовий режим&lt;/em&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstalluknavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/uk/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Повернутись до &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallxhmainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,103 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;Uncedo Lomlayishi Womiselo Lwenkqubo&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Welcome to &lt;em&gt;@@@product@@@&lt;/em&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this menu to select the desired function. If you have
++problems navigating in this help system, press
++&lt;em&gt;@@@fkey_help@@@&lt;/em&gt; to enter the &lt;a href=&quot;#help&quot;&gt;inkcazelo&lt;/a&gt; of the help
++system. The main functions in this menu are:
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#harddisk&quot;&gt;Misela Inkqubo Kwiqokobhe Lekhompyutha&lt;/a&gt;: This selection will not do
++anything to the system. It only starts a previously installed
++operating system.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#linux&quot;&gt;Ukuhlohla&lt;/a&gt;:
++This installation mode works on most machines. If you experience a
++system freeze during boot or problems with detection of your hardware
++components, such as disk controllers or network cards, try one of the
++following installation options.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#noacpi&quot;&gt;Ukuhlohlwa kwe--ACPI Kususwe Isakhono&lt;/a&gt;: Many of the
++currently-sold computers have incomplete or faulty ACPI
++implementations. This selection disables ACPI support in the
++kernel, but still enables many performance features, like DMA for IDE
++hard disks.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#nolapic&quot;&gt;Ukuhlohlwa kwe--APIC Yendawo Leyo Kususwe Isakhono&lt;/a&gt;:
++If the normal installation fails, this might be due to the
++system hardware not supporting local APIC.
++If this seems to be the case, use this option to
++install without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#failsafe&quot;&gt;Imimiselo Yokuhlohla -- Ikhuselekile&lt;/a&gt;: If you were not
++successful with &lt;em&gt;Ukuhlohla&lt;/em&gt;, this selection might
++solve the issue.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#rescue&quot;&gt;Isixokelelwano Sokuhlangula&lt;/a&gt;: This boot image starts a small
++Linux system in RAM. This is useful if the system does not start properly.
++After booting this system, log in as root.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#firmware&quot;&gt;Uvavanyo lwe-Firmware&lt;/a&gt;: Runs a BIOS test tool that validates
++ACPI and other parts of your BIOS.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#memtest&quot;&gt;Uvavanyo Lukavimba Wolwazi&lt;/a&gt;: Memory testing is useful for more than
++checking installation of new memory modules. It is a stress test
++for a big part of your computer system and may indicate hardware
++problems.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#opt&quot;&gt;Izikhethwa Zomiselo Lwenkqubo&lt;/a&gt;: The boot options may change the
++behavior of your system completely. They are settings for
++the kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Help&lt;/a&gt;: This is context sensitive. It will
++show different screens depending on the active element of the
++boot screen. There is also a description of this help system
++available.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Set language and keyboard mapping
++used by the boot loader.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Video Mode&lt;/a&gt;: Here, choose between
++different screen resolutions while installing. If you encounter
++problems with the graphical installation, the &lt;em&gt;imo yokusebenza ngesiqendu&lt;/em&gt; may
++be a work-around for you.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Installation Source&lt;/a&gt;: Choose the
++installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Driver Update&lt;/a&gt;: For very new machines, a
++driver update may be needed to install the system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallxhmainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;Okukhethiweyo Kohlobo Lokungaphakathi Ekhompyutheni&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++You have the choice to install the 32-bit or 64-bit version of @@@product@@@.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallxhmaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;Uhlaziyo Lomqhubi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++If you need a driver update floppy or CD-ROM, press &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. The
++boot loader asks you to insert the driver update medium after
++loading the Linux kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++A driver update is typically a floppy with new versions of hardware
++drivers or bug fixes needed during installation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallxhmainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,11 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;Imimiselo Yokuhlohla -- Ikhuselekile&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Imimiselo Yokuhlohla -- Ikhuselekile&lt;/em&gt; if you encounter hangs
++while installing or irreproducible errors. This option disables DMA
++for IDE drives and all power management features.
++See also the kernel options for &lt;a href=&quot;#o_apm&quot;&gt;i-apm&lt;/a&gt;,
++&lt;a href=&quot;#o_acpi&quot;&gt;i-acpi&lt;/a&gt; and &lt;a href=&quot;#o_ide&quot;&gt;i-ide&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallxhmainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;Uvavanyo lwe-Firmware&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Starts a BIOS checker that validates the ACPI tables
++and many other parts of your BIOS.
++Test results can be stored on usb disk or saved via network.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallxhmainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,16 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;Misela Inkqubo Kwiqokobhe Lekhompyutha&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;I-OS Ehlohlwe Umiselo Lwenkqubo&lt;/em&gt; to start the system installed on
++your local hard disk. This system must be installed properly, because
++only the MBR (Master Boot Record) on the first hard disk is started.
++The device ID of the first hard disk is provided by the BIOS of
++the computer.
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this if you forgot to remove the CD or DVD from your
++drive and want to start the computer from the hard disk.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallxhmainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;Kusetyenziswa Isixokelelwano Soncedo&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;Isalathi-phezulu&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Isalathi-ezantsi&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Isalathi-ekhohlo&lt;/em&gt;, &lt;em&gt;Emva ngesithuba&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Isalathi-kunene&lt;/em&gt;, &lt;em&gt;Ngenisa&lt;/em&gt;, &lt;em&gt;Isithuba&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Tyhila Phezulu&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Tyhila Ezantsi&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Ekhaya&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Isiphelo&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Baleka&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallxhmaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;Umthombo Wokuhlohla&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; to choose an installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++This is the same as using the &lt;a href=&quot;#o_install&quot;&gt;hlohla&lt;/a&gt;
++boot option.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallxhmainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;Ulwimi Nokukhethwayo Kokumisa kakuhle Ibhodi Yamaqhosha&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallxhmainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;Ukuhlohla&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Ukuhlohla&lt;/em&gt; to start the default installation. The
++&lt;a href=&quot;#opt&quot;&gt;izikhethwa zomiselo lwenkqubo&lt;/a&gt; entered are used in the
++start-up. This item activates many features of commonly available
++hardware.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallxhmainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;Uvavanyo Lukavimba Wolwazi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The included &lt;em&gt;Uvavanyo Lukavimba Wolwazi&lt;/em&gt; provides good possibilities to
++stress test the hardware of a system. Its main purpose is to detect
++broken RAM, but it also stresses many other parts of the system.
++&lt;/p&gt;
++
++&lt;p&gt;
++There is no guarantee that the memory is good if no errors are
++found, although most of memory defects will be found.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallxhmainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,24 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;Ukuhlohlwa kwe--ACPI Kususwe Isakhono&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Current hardware usually requires ACPI (Advanced Configuration and Power Interface)
++to control the interrupt handling.
++ACPI completely replaces the old APM system.
++&lt;/p&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;Ukuhlohlwa kwe--ACPI Kususwe Isakhono&lt;/em&gt; if you encounter
++problems during boot of the kernel. Known problems with machines that
++have problems with ACPI are:
++&lt;ul&gt;
++ &lt;li&gt;kernel freezes when booting&lt;/li&gt;
++ &lt;li&gt;PCI Cards are not detected or initialized properly&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++You may also try the &lt;a href=&quot;#firmware&quot;&gt;Uvavanyo lwe-Firmware&lt;/a&gt; boot option
++and look at the test results of the ACPI validation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallxhmainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;Ukuhlohlwa kwe--APIC Yendawo Leyo Kususwe Isakhono&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Normally there are no problems with the APIC (Advanced Programmable Interrupt
++Controller). But if you seem to have some, try this option to boot
++without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++Please don't confuse this with &lt;a href=&quot;#noacpi&quot;&gt;i-ACPI&lt;/a&gt;
++(Advanced Configuration and Power Interface).
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallxhmainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,28 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;Izikhethwa Zomiselo Lwenkqubo&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++There are two types of boot options available. First, there are
++options that affect the installer. Second, there are kernel
++options. Some of the more common options are:
++&lt;/p&gt;
++
++&lt;p&gt;
++a) installer options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;hlohla&lt;/a&gt; -- select an installation source&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#network&quot;&gt;izikhethwa zomsebenzi wothungelwano&lt;/a&gt; -- the network options&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;Izikhethwa ze-vnc&lt;/a&gt; -- options for installation via VNC&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++b) kernel options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;tshiza&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;i-apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;i-acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;i-ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallxhmainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;Izikhethwa Zomhlohli: Izikhethwa Zomsebenzi Wothungelwano&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++It is possible to configure the network interface right now. The
++hardware will be detected later by YaST2. The minimum set of options
++to configure your network card consists of host IP and netmask. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++or in a shorter form:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++If you specified a &lt;a href=&quot;#o_install&quot;&gt;ukuhlohla okusekwe kumsebenzi wothungelwano&lt;/a&gt; and do
++not specify both of these options, the installer tries to configure
++the network interface with &lt;em&gt;i-dhcp&lt;/em&gt;. If you need a default
++gateway, specify this with the option &lt;em&gt;Indlela yesango&lt;/em&gt;. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;indlela yesango=192.168.0.8&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallxhmainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;Izikhethwa ze-Kernel: i-acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;i-acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;i-pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;i-acpi=umiselolwakudala&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;i-acpi=imo yokungasebenzi&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;i-acpi=yonyanzelo&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;i-apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallxhmainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;Izikhethwa ze-Kernel: i-apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;i-apm=imo yokungasebenzi&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;i-ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallxhmainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;Izikhethwa ze-Kernel: i-ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;i-ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallxhmainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,30 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;Izikhethwa Zomhlohli: hlohla&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++By default, the local CD-ROMs are searched for the installation source.
++For a network install, select the
++&lt;em&gt;hlohla&lt;/em&gt; option. Possible installation protocols are
++&lt;ul&gt;
++ &lt;li&gt;FTP&lt;/li&gt;
++ &lt;li&gt;NFS&lt;/li&gt;
++ &lt;li&gt;HTTP&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The syntax to use is just like standard URLs. For example,
++if your server is found at 192.168.0.1 and you want to do an NFS-based
++install from the directory /install on this server, specify
++the source as follows:
++&lt;ul&gt;
++ &lt;li&gt;ukuhlohla=nfs://192.168.0.1/ukuhlohla&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The network card will either be configured with &lt;em&gt;i-dhcp&lt;/em&gt; or you
++must specify the parameters yourself as described in the
++&lt;a href=&quot;#network&quot;&gt;izikhethwa zomsebenzi wothungelwano&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallxhmainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;Izikhethwa ze-Kernel: tshiza&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;tshiza=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;tshiza=umlembelele&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;tshiza=ngokuthula&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallxhmainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;Izikhethwa Zomhlohli: i-vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++To enable the VNC installation, specify the
++parameters vnc and vncpassword:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;vnc=1 vncigamalokugqithisa=umzekelo&lt;/em&gt;&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The VNC server will be started and you may control YaST2 over any VNC
++client from a remote system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallxhmainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;Isixokelelwano Sokuhlangula&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The &lt;em&gt;Isixokelelwano Sokuhlangula&lt;/em&gt; is a small RAM disk base system. From there,
++it is possible to make all kinds of changes to an installed system. Because
++only low-level tools are available in this system, it is intended for
++experts.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallxhmainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;Okukhethwayo Kwimo Yevidiyo&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; to get the list of video modes your graphics card
++supports. The highest mode your monitor can display is preselected.
++&lt;/p&gt;
++
++&lt;p&gt;
++It is possible that your monitor cannot be detected automatically. In that
++case, select your preferred mode manually.
++&lt;/p&gt;
++
++&lt;p&gt;
++If your system has problems with the graphics card during the
++installation, the &lt;em&gt;imo yokusebenza ngesiqendu&lt;/em&gt; may be a usable work-around.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallxhnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/xh/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;Buyela &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;.&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,103 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;引导加载程序帮助&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Welcome to &lt;em&gt;@@@product@@@&lt;/em&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this menu to select the desired function. If you have
++problems navigating in this help system, press
++&lt;em&gt;@@@fkey_help@@@&lt;/em&gt; to enter the &lt;a href=&quot;#help&quot;&gt;描述&lt;/a&gt; of the help
++system. The main functions in this menu are:
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#harddisk&quot;&gt;从硬盘引导&lt;/a&gt;: This selection will not do
++anything to the system. It only starts a previously installed
++operating system.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#linux&quot;&gt;安装&lt;/a&gt;:
++This installation mode works on most machines. If you experience a
++system freeze during boot or problems with detection of your hardware
++components, such as disk controllers or network cards, try one of the
++following installation options.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#noacpi&quot;&gt;安装 - 禁用 ACPI&lt;/a&gt;: Many of the
++currently-sold computers have incomplete or faulty ACPI
++implementations. This selection disables ACPI support in the
++kernel, but still enables many performance features, like DMA for IDE
++hard disks.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#nolapic&quot;&gt;安装 - 禁用本地 APIC&lt;/a&gt;:
++If the normal installation fails, this might be due to the
++system hardware not supporting local APIC.
++If this seems to be the case, use this option to
++install without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#failsafe&quot;&gt;安装 - 安全设置&lt;/a&gt;: If you were not
++successful with &lt;em&gt;安装&lt;/em&gt;, this selection might
++solve the issue.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#rescue&quot;&gt;救援系统&lt;/a&gt;: This boot image starts a small
++Linux system in RAM. This is useful if the system does not start properly.
++After booting this system, log in as root.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#firmware&quot;&gt;固件测试&lt;/a&gt;: Runs a BIOS test tool that validates
++ACPI and other parts of your BIOS.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#memtest&quot;&gt;内存测试&lt;/a&gt;: Memory testing is useful for more than
++checking installation of new memory modules. It is a stress test
++for a big part of your computer system and may indicate hardware
++problems.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#opt&quot;&gt;引导选项&lt;/a&gt;: The boot options may change the
++behavior of your system completely. They are settings for
++the kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ Help&lt;/a&gt;: This is context sensitive. It will
++show different screens depending on the active element of the
++boot screen. There is also a description of this help system
++available.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: Set language and keyboard mapping
++used by the boot loader.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ Video Mode&lt;/a&gt;: Here, choose between
++different screen resolutions while installing. If you encounter
++problems with the graphical installation, the &lt;em&gt;文本方式&lt;/em&gt; may
++be a work-around for you.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ Installation Source&lt;/a&gt;: Choose the
++installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ Driver Update&lt;/a&gt;: For very new machines, a
++driver update may be needed to install the system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;软件类型选择&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++You have the choice to install the 32-bit or 64-bit version of @@@product@@@.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;驱动程序更新&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++If you need a driver update floppy or CD-ROM, press &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;. The
++boot loader asks you to insert the driver update medium after
++loading the Linux kernel.
++&lt;/p&gt;
++
++&lt;p&gt;
++A driver update is typically a floppy with new versions of hardware
++drivers or bug fixes needed during installation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,11 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;安装 - 安全设置&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;安装 - 安全设置&lt;/em&gt; if you encounter hangs
++while installing or irreproducible errors. This option disables DMA
++for IDE drives and all power management features.
++See also the kernel options for &lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt;,
++&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; and &lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;固件测试&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Starts a BIOS checker that validates the ACPI tables
++and many other parts of your BIOS.
++Test results can be stored on usb disk or saved via network.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,16 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;从硬盘引导&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;引导已安装的操作系统&lt;/em&gt; to start the system installed on
++your local hard disk. This system must be installed properly, because
++only the MBR (Master Boot Record) on the first hard disk is started.
++The device ID of the first hard disk is provided by the BIOS of
++the computer.
++&lt;/p&gt;
++
++&lt;p&gt;
++Use this if you forgot to remove the CD or DVD from your
++drive and want to start the computer from the hard disk.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;使用帮助系统&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The boot loader online help is context sensitive. It gives information
++about the selected menu item or, if you are editing boot options,
++it tries to look up information about the option in which the cursor is
++positioned.
++&lt;/p&gt;
++
++&lt;p&gt;
++Navigation Keys
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;向上箭头&lt;/em&gt;: highlight previous link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;向下箭头&lt;/em&gt;: highlight next link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;向左箭头&lt;/em&gt;, &lt;em&gt;Backspace&lt;/em&gt;: return to previous topic&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;向右箭头&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;Space&lt;/em&gt;: follow link&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: scroll up one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: scroll down one page&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: go to page start&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;End&lt;/em&gt;: go to page end&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: leave help&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;安装源&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; to choose an installation source.
++&lt;/p&gt;
++
++&lt;p&gt;
++This is the same as using the &lt;a href=&quot;#o_install&quot;&gt;安装&lt;/a&gt;
++boot option.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;语言和键盘布局选择&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; to change language and keyboard layout the boot loader uses.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;安装&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;安装&lt;/em&gt; to start the default installation. The
++&lt;a href=&quot;#opt&quot;&gt;引导选项&lt;/a&gt; entered are used in the
++start-up. This item activates many features of commonly available
++hardware.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;内存测试&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The included &lt;em&gt;内存测试&lt;/em&gt; provides good possibilities to
++stress test the hardware of a system. Its main purpose is to detect
++broken RAM, but it also stresses many other parts of the system.
++&lt;/p&gt;
++
++&lt;p&gt;
++There is no guarantee that the memory is good if no errors are
++found, although most of memory defects will be found.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,24 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;安装 - 禁用 ACPI&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Current hardware usually requires ACPI (Advanced Configuration and Power Interface)
++to control the interrupt handling.
++ACPI completely replaces the old APM system.
++&lt;/p&gt;
++
++&lt;p&gt;
++Select &lt;em&gt;安装 - 禁用 ACPI&lt;/em&gt; if you encounter
++problems during boot of the kernel. Known problems with machines that
++have problems with ACPI are:
++&lt;ul&gt;
++ &lt;li&gt;kernel freezes when booting&lt;/li&gt;
++ &lt;li&gt;PCI Cards are not detected or initialized properly&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++You may also try the &lt;a href=&quot;#firmware&quot;&gt;固件测试&lt;/a&gt; boot option
++and look at the test results of the ACPI validation.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,14 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;安装 - 禁用本地 APIC&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Normally there are no problems with the APIC (Advanced Programmable Interrupt
++Controller). But if you seem to have some, try this option to boot
++without local APIC support.
++&lt;/p&gt;
++
++&lt;p&gt;
++Please don't confuse this with &lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt;
++(Advanced Configuration and Power Interface).
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,28 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;引导选项&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++There are two types of boot options available. First, there are
++options that affect the installer. Second, there are kernel
++options. Some of the more common options are:
++&lt;/p&gt;
++
++&lt;p&gt;
++a) installer options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;安装&lt;/a&gt; -- select an installation source&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#network&quot;&gt;网络选项&lt;/a&gt; -- the network options&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;VNC 选项&lt;/a&gt; -- options for installation via VNC&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++b) kernel options
++&lt;ul&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;splash&lt;/a&gt; -- influence the behavior of the splash screen&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; -- toggle power management&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- advanced configuration and power interface&lt;/li&gt;
++ &lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;ide&lt;/a&gt; -- control the IDE subsystem&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;安装程序选项:网络选项&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++It is possible to configure the network interface right now. The
++hardware will be detected later by YaST2. The minimum set of options
++to configure your network card consists of host IP and netmask. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++or in a shorter form:
++&lt;ul&gt;
++ &lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++If you specified a &lt;a href=&quot;#o_install&quot;&gt;基于网络的安装&lt;/a&gt; and do
++not specify both of these options, the installer tries to configure
++the network interface with &lt;em&gt;dhcp&lt;/em&gt;. If you need a default
++gateway, specify this with the option &lt;em&gt;网关&lt;/em&gt;. For
++example:
++&lt;ul&gt;
++ &lt;li&gt;gateway=192.168.0.8&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;内核选项:acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++ACPI (Advanced Configuration and Power Interface) is a
++standard that defines power and configuration management interfaces
++between an operating system and the BIOS. By default, &lt;em&gt;acpi&lt;/em&gt; is
++switched on when a BIOS is detected that is newer than from year
++2000. There are several commonly
++used parameters to control the behavior of ACPI:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- do not use ACPI to route PCI interrupts&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- only the parts of ACPI that are relevant for booting remain activated&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- switch off ACPI completely&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- switch on ACPI even if your BIOS is dated before 2000&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Especially on new computers, it replaces the old
++&lt;a href=&quot;#o_apm&quot;&gt;apm&lt;/a&gt; system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,21 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;内核选项:apm&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++APM is one of the two power management strategies used on current
++computers. It is mainly used with laptops for functions like suspend
++to disk, but it may also be responsible for switching off the
++computer after power down. APM relies on a correct working BIOS. If
++the BIOS is broken, APM may have only limited use or even prevent the
++computer from working. Therefore, it may be switched off with the
++parameter
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- switch off APM completely&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++Some very new computers may take more advantage from the newer
++&lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;内核选项:ide&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++IDE is, unlike SCSI, commonly used in most desktop workstations.
++To circumvent some hardware problems that occur with IDE systems, use the
++kernel parameter:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- switch off DMA for IDE drives&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,30 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;安装程序选项:install&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++By default, the local CD-ROMs are searched for the installation source.
++For a network install, select the
++&lt;em&gt;安装&lt;/em&gt; option. Possible installation protocols are
++&lt;ul&gt;
++ &lt;li&gt;FTP&lt;/li&gt;
++ &lt;li&gt;NFS&lt;/li&gt;
++ &lt;li&gt;HTTP&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The syntax to use is just like standard URLs. For example,
++if your server is found at 192.168.0.1 and you want to do an NFS-based
++install from the directory /install on this server, specify
++the source as follows:
++&lt;ul&gt;
++ &lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The network card will either be configured with &lt;em&gt;dhcp&lt;/em&gt; or you
++must specify the parameters yourself as described in the
++&lt;a href=&quot;#network&quot;&gt;网络选项&lt;/a&gt;.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,12 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;内核选项:splash&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The splash screen is the picture shown during system start-up.
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- The splash screen is switched off. This may be useful with very old monitors or if some error occurs.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- Activates splash, kernel and boot messages are still shown.&lt;/li&gt;
++ &lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- Activates splash, but no messages. Instead a progress bar is drawn.&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;安装程序选项:vnc&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++To enable the VNC installation, specify the
++parameters vnc and vncpassword:
++&lt;ul&gt;
++ &lt;li&gt;&lt;em&gt;vnc=1 vncpassword=example&lt;/em&gt;&lt;/li&gt;
++&lt;/ul&gt;
++&lt;/p&gt;
++
++&lt;p&gt;
++The VNC server will be started and you may control YaST2 over any VNC
++client from a remote system.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;救援系统&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++The &lt;em&gt;救援系统&lt;/em&gt; is a small RAM disk base system. From there,
++it is possible to make all kinds of changes to an installed system. Because
++only low-level tools are available in this system, it is intended for
++experts.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNmainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,18 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;视频模式选择&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;
++Press &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; to get the list of video modes your graphics card
++supports. The highest mode your monitor can display is preselected.
++&lt;/p&gt;
++
++&lt;p&gt;
++It is possible that your monitor cannot be detected automatically. In that
++case, select your preferred mode manually.
++&lt;/p&gt;
++
++&lt;p&gt;
++If your system has problems with the graphics card during the
++installation, the &lt;em&gt;文本方式&lt;/em&gt; may be a usable work-around.
++&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_CNnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_CN/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;返回 &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++&lt;h3&gt;
++&lt;a name=&quot;main&quot;&gt;開機載入器說明&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;歡迎光臨 &lt;em&gt;@@@產品@@@&lt;/em&gt;&lt;/p&gt;
++
++&lt;p&gt;使用此功能表來選取想要的功能。如果您在巡覽此系統時有問題,請按 &lt;em&gt;@@@fkey_help@@@&lt;/em&gt; 以進入說明系統的 &lt;a href=&quot;#help&quot;&gt;描述&lt;/a&gt;。此功能表的主要功能是:&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#harddisk&quot;&gt;從硬碟開機&lt;/a&gt;:此選項不會對系統進行任何動作,它只會啟動之前已安裝的作業系統。&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#linux&quot;&gt;安裝&lt;/a&gt;:此安裝模式適用於大部分的電腦上。如果系統在開機時凍結,或是在偵測硬體元件 (如磁碟控制卡或軟體卡) 上有問題,請嘗試以下其中一個安裝選項。&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#noacpi&quot;&gt;安裝 -- 停用 ACPI&lt;/a&gt;: 市面上許多電腦的 ACPI 執行方式不完整或錯誤。此選項可停用核心中的 ACPI 支援,但仍會啟用許多增強效能的功能,像 IDE 硬碟的 DMA。&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#nolapic&quot;&gt;安裝 -- 關閉 Local APIC&lt;/a&gt;: 如果正常安裝失敗,可能是因為系統硬體不支援本地 APIC。 如果是這個原因,請使用本選項即可無須本地 APIC 支援即安裝。&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#failsafe&quot;&gt;安裝 -- 安全設定&lt;/a&gt;:如果您無法成功使用 &lt;em&gt;安裝&lt;/em&gt;,此選項可能可以解決此問題。&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#rescue&quot;&gt;救援系統&lt;/a&gt;:此開機映像檔會啟動 RAM 中的迷你 Linux 系統。如果系統未能正確啟動,此功能非常的有用。此系統開機之後,請以 root 身份登入。&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#firmware&quot;&gt;韌體測試&lt;/a&gt;:執行 BIOS 測試工具確認您的 BIOS 的 ACPI 和其他部份。&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#memtest&quot;&gt;記憶體測試&lt;/a&gt;: 記憶體測試不僅只是檢查新記憶體模組的安裝,它可對您電腦系統的絕大部分進行壓力測試,並可能指出硬體的問題。&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#opt&quot;&gt;開機選項&lt;/a&gt;: 開機選項會完全變更您系統的行為,這些選項是核心的設定。&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#help&quot;&gt;@@@fkey_help@@@ 說明&lt;/a&gt;: 為智慧型關聯式,它會根據開機畫面中的作用中元素而顯示不同的畫面。在此也有此說明系統的可用說明。&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#keytable&quot;&gt;@@@fkey_lang@@@&lt;/a&gt;: 設定開機載入器使用的語言和鍵盤對應。&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#videomode&quot;&gt;@@@fkey_video@@@ 視訊模式&lt;/a&gt;:安裝時在此選擇其他螢幕解析度。如果您碰到圖形安裝的問題,&lt;em&gt;文字模式&lt;/em&gt; 會是因應措施。&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#install_src&quot;&gt;@@@fkey_inst@@@ 安裝來源&lt;/a&gt;: 選擇安裝來源。&lt;/p&gt;
++
++&lt;p&gt;&lt;a href=&quot;#driverupdate&quot;&gt;@@@fkey_dud@@@ 驅動程式更新&lt;/a&gt;:對於非常新的電腦,安裝系統時可能需要驅動程式更新。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainbitshtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::bits.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::bits.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::bits.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;bits&quot;&gt;軟體類型選項&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;您可以選擇安裝 32 位元或 64 位元版本的 @@@product@@@。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmaindriverupdatehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::driverupdate.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::driverupdate.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::driverupdate.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;driverupdate&quot;&gt;驅動程式更新&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;如果您需要驅動程式更新磁片或 CD-ROM,請按 &lt;em&gt;@@@fkey_dud@@@&lt;/em&gt;。 在載入 Linux 核心後,開機載入器會要求您插入驅動程式更新媒體。&lt;/p&gt;
++
++&lt;p&gt;驅動程式更新通常是一張提供新版硬碟驅動程式或安裝期間所需錯誤修復的磁碟片。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainfailsafehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::failsafe.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::failsafe.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::failsafe.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;failsafe&quot;&gt;安裝 -- 安全設定&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;如果您發生無法再現的錯誤或在安裝時碰到問題,請選取 &lt;em&gt;安裝 -- 安全設定&lt;/em&gt;,此選項會停用 IDE 磁碟機的 DMA 和所有電源管理功能。另請參閱 &lt;a href=&quot;#o_apm&quot;&gt;APM&lt;/a&gt;、&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; 和 &lt;a href=&quot;#o_ide&quot;&gt;IDE&lt;/a&gt;的核心選項。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainfirmwarehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::firmware.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::firmware.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::firmware.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;firmware&quot;&gt;韌體測試&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;啟動 BIOS 檢查程式以驗證 ACPI 表和 BIOS 的其他許多部分。 測試結果可儲存在 USB 碟上或透過網路儲存。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainharddiskhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::harddisk.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::harddisk.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::harddisk.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;harddisk&quot;&gt;從硬碟開機&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;選取 &lt;em&gt;用安裝的作業系統開機&lt;/em&gt; 以啟動安裝在您本機硬碟上的系統。此系統必須正確地安裝,因為只有第一個硬碟上的 MBR (Master Boot Record,主開機記錄) 會被啟動。第一個硬碟上的裝置 ID 是由電腦的 BIOS 所提供。&lt;/p&gt;
++
++&lt;p&gt;如果您忘記將 CD 或 DVD 從您的磁碟機中取出,但要從硬碟啟動電腦,請使用此選項。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainhelphtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::help.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::help.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::help.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;help&quot;&gt;使用說明系統&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;開機載入器線上說明為智慧型關聯式,它會根據選取的功能表項目來提供資訊,或者,如果您正在編輯開機選項,則它會嘗試查詢游標所在處選項的資訊。&lt;/p&gt;
++
++&lt;p&gt;瀏覽鍵 &lt;ul&gt;&lt;li&gt;&lt;em&gt;向上箭號&lt;/em&gt;: 反白上一個連結&lt;/li&gt;&lt;li&gt;&lt;em&gt;向下箭號&lt;/em&gt;: 反白下一個連結&lt;/li&gt;&lt;li&gt;&lt;em&gt;向左箭號&lt;/em&gt;, &lt;em&gt;退格鍵&lt;/em&gt;: 返回上一個主題&lt;/li&gt;&lt;li&gt;&lt;em&gt;向右箭號&lt;/em&gt;, &lt;em&gt;Enter&lt;/em&gt;, &lt;em&gt;空格&lt;/em&gt;: 跟隨連結&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Up&lt;/em&gt;: 向上捲動一頁&lt;/li&gt;&lt;li&gt;&lt;em&gt;Page Down&lt;/em&gt;: 向下捲動一頁&lt;/li&gt;&lt;li&gt;&lt;em&gt;Home&lt;/em&gt;: 移至頁首&lt;/li&gt;&lt;li&gt;&lt;em&gt;End&lt;/em&gt;:移至頁底&lt;/li&gt;&lt;li&gt;&lt;em&gt;Esc&lt;/em&gt;: 離開說明&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmaininstall_srchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::install_src.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::install_src.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::install_src.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;install_src&quot;&gt;安裝來源&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;按 &lt;em&gt;@@@fkey_inst@@@&lt;/em&gt; 以選取安裝來源&lt;/p&gt;
++
++&lt;p&gt;這與使用 &lt;a href=&quot;#o_install&quot;&gt;安裝&lt;/a&gt; 開機選項相同。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainkeytablehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::keytable.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::keytable.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::keytable.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;keytable&quot;&gt;語言和鍵盤配置選項&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;按下 &lt;em&gt;@@@fkey_lang@@@&lt;/em&gt; 以變更開機載入器使用的語言和鍵盤配置。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainlinuxhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::linux.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::linux.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::linux.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;linux&quot;&gt;安裝&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;選取 &lt;em&gt;安裝&lt;/em&gt; 以啟動預設安裝。輸入的 &lt;a href=&quot;#opt&quot;&gt;開機選項&lt;/a&gt; 是在啟動中使用。此項目會啟動一般可用硬體上的許多功能。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainmemtesthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::memtest.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::memtest.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::memtest.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;memtest&quot;&gt;記憶體測試&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;所包含的 &lt;em&gt;記憶體測試&lt;/em&gt; 很有可能對系統的硬體進行壓力測試。它的主要目的是偵測損壞的 RAM,但也會對系統的許多其他部分產生壓力。&lt;/p&gt;
++
++&lt;p&gt;即使沒有找到任何錯誤,仍不保證記憶體是好的。然而大部分的記憶體瑕疵都會被發現。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainnoacpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::noacpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::noacpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::noacpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;noacpi&quot;&gt;安裝 -- 停用 ACPI&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;現在的硬體經常需要 ACPI (進階設定與電源介面)來控制中斷處理。ACPI 完全取代舊的 APM 系統。&lt;/p&gt;
++
++&lt;p&gt;如果您在核心開機時碰到問題,請選取 &lt;em&gt;安裝 -- 停用 ACPI&lt;/em&gt;。在 ACP 有問題的電腦上的已知問題為: &lt;ul&gt;&lt;li&gt;開機時核心凍結&lt;/li&gt;&lt;li&gt;未正確偵測或初始化 PCI 卡&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;您也可以嘗試 &lt;a href=&quot;#firmware&quot;&gt;韌體測試&lt;/a&gt; 的開機選項並查看 ACPI 確認項的測試結果。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainnolapichtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::nolapic.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::nolapic.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::nolapic.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;nolapic&quot;&gt;安裝 -- 關閉 Local APIC&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;通常 APIC (進階可程式化中斷控制器) 都沒有問題。 可是如果您有問題,請嘗試本選項,可以無須本地 APIC 支援即開機。 &lt;/p&gt;
++
++&lt;p&gt;請不要和&lt;a href=&quot;#noacpi&quot;&gt;ACPI&lt;/a&gt; (進階組態和電源界面)搞混了。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainopthtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;opt&quot;&gt;開機選項&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;有兩種可用的開機選項。第一種選項會影響安裝程式,第二種選項為核心選項。其中一些較常用的選項為:&lt;/p&gt;
++
++&lt;p&gt;a) 安裝程式選項 &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_install&quot;&gt;安裝&lt;/a&gt; -- 選取安裝來源&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#network&quot;&gt;網路選項&lt;/a&gt; -- 網路選項&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_vnc&quot;&gt;VNC 選項&lt;/a&gt; -- 透過 VNC 安裝的選項 &lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;b) 核心選項 &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;#o_splash&quot;&gt;開機顯示畫面&lt;/a&gt; -- 影響開機顯示畫面的行為&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_apm&quot;&gt;APM&lt;/a&gt; -- 切換電源管理&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_acpi&quot;&gt;acpi&lt;/a&gt; -- 進階組態和電源界面&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;#o_ide&quot;&gt;IDE&lt;/a&gt; -- 控制 IDE 子系統&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainoptnetworkhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt::network.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt::network.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt::network.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,13 @@
++&lt;a name=&quot;o_hostip&quot;/&gt;
++&lt;a name=&quot;o_netmask&quot;/&gt;
++&lt;a name=&quot;o_gateway&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;network&quot;&gt;安裝程式選項:網路選項&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;現在可以立即設定網路界面。稍後 YaST2 會偵測硬體。用來設定您網路卡的最少的參數包括主機 IP 和網路遮罩。例如: &lt;ul&gt;&lt;li&gt;hostip=192.168.0.10 netmask=255.255.255.0&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;或使用簡短格式: &lt;ul&gt;&lt;li&gt;hostip=192.168.0.10/24&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;如果您已指定 &lt;a href=&quot;#o_install&quot;&gt;網路式安裝&lt;/a&gt;,但未同時指定這兩個選項,安裝程式會嘗試使用 &lt;em&gt;DHCP&lt;/em&gt; 來設定網路界面。如果您需要使用預設閘道,請使用選項 &lt;em&gt;閘道&lt;/em&gt; 來指定此閘道。例如: &lt;ul&gt;&lt;li&gt;gateway=192.168.0.8&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainopto_acpihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt::o_acpi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt::o_acpi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt::o_acpi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_acpi&quot;&gt;核心選項:acpi&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;ACPI (進階管理與電源介面) 是一種標準,用來定義作業系統和 BIOS 之間的電源和組態管理界面。依預設值,當偵測到 BIOS 比 2000 年新時,便會開啟 &lt;em&gt;acpi&lt;/em&gt;。有數個常用的參數可控制 ACPI 的行為: &lt;ul&gt;&lt;li&gt;&lt;em&gt;pci=noacpi&lt;/em&gt; -- 不要使用 ACPI 來管理 PCI 中斷&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=oldboot&lt;/em&gt; -- 只有部分與開機有關的 ACPI 會維持已啟動&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=off&lt;/em&gt; -- 完全關閉 ACPI&lt;/li&gt;&lt;li&gt;&lt;em&gt;acpi=force&lt;/em&gt; -- 開啟 ACPI,即使您的 BIOS 日期早於 2000 年。&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;尤其是在新的電腦上,它會取代舊的 &lt;a href=&quot;#o_apm&quot;&gt;APM&lt;/a&gt; 系統。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainopto_apmhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt::o_apm.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt::o_apm.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt::o_apm.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,7 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_apm&quot;&gt;核心選項:APM&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;在目前電腦上使用的電源管理策略有兩種,APM 是其中一種。它主要是用於筆記型電腦,以提供如休眠到磁碟等功能,但它也會在電源中斷後負責關閉電腦。APM 依賴正確運作的 BIOS。如果 BIOS 壞了,APM 只會限制使用電腦作業,甚或是阻止作業。因此,可使用參數 &lt;ul&gt;&lt;li&gt;&lt;em&gt;apm=off&lt;/em&gt; -- 完全關閉 APM&lt;/li&gt;&lt;/ul&gt; 關閉 APM。&lt;/p&gt;
++
++&lt;p&gt;有些非常新的電腦更從新的得到更好處 &lt;a href=&quot;#o_acpi&quot;&gt;ACPI&lt;/a&gt;。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainopto_idehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt::o_ide.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt::o_ide.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt::o_ide.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_ide&quot;&gt;核心選項:IDE&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;IDE 和 SCSI 不同,一般用於大部分的桌上型工作站上。若要避開一些 IDE 系統所發生的硬體問題,請使用核心參數: &lt;ul&gt;&lt;li&gt;&lt;em&gt;ide=nodma&lt;/em&gt; -- 關閉 IDE 磁碟機的 DMA&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainopto_installhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt::o_install.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt::o_install.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt::o_install.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_install&quot;&gt;安裝程式選項:安裝&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;依預設值,會在本機 CD-ROM 中搜尋安裝來源。針對網路安裝,選取 &lt;em&gt;安裝&lt;/em&gt; 選項。可用的安裝通訊協定為 &lt;ul&gt;&lt;li&gt;FTP&lt;/li&gt;&lt;li&gt;NFS&lt;/li&gt;&lt;li&gt;HTTP&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;使用的語法就如同標準的 URL。例如,如果您的伺服器位於 192.168.0.1,且您要執行基於 NFS 從目錄安裝/安裝在此伺服器上,請按照下列方式指定來源: &lt;ul&gt;&lt;li&gt;install=nfs://192.168.0.1/install&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;網路卡必須以 &lt;em&gt;DHCP&lt;/em&gt; 設定,或您必須自行指定參數如 &lt;a href=&quot;#network&quot;&gt;網路選項&lt;/a&gt;。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainopto_splashhtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt::o_splash.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt::o_splash.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt::o_splash.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;o_splash&quot;&gt;核心選項:開機顯示畫面&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;開機顯示畫面是在系統啟動期間顯示的圖片。 &lt;ul&gt;&lt;li&gt;&lt;em&gt;splash=0&lt;/em&gt; -- 關閉開機顯示畫面。這對於非常舊的監視器或是當發生一些錯誤時,非常有用。&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=verbose&lt;/em&gt; -- 啟動開機顯示畫面,且仍會顯示核心和開機訊息。&lt;/li&gt;&lt;li&gt;&lt;em&gt;splash=silent&lt;/em&gt; -- 啟動開機顯示畫面,但未顯示訊息,而是顯示進度條。&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainopto_vnchtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt::o_vnc.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt::o_vnc.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::opt::o_vnc.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;a name=&quot;o_vncpassword&quot;/&gt;
++
++&lt;h3&gt;
++&lt;a name=&quot;o_vnc&quot;&gt;安裝程式選項:VNC&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;若要啟用 VNC 安裝,請指定 vnc 和 vncpassword 這兩個參數: &lt;ul&gt;&lt;li&gt;&lt;em&gt;vnc=1 vncpassword=example&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
++
++&lt;p&gt;VNC 伺服器將會啟動,您可以從遠端系統的任何 VNC 用戶端上控制 YaST2。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainrescuehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::rescue.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::rescue.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::rescue.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++&lt;h3&gt;
++&lt;a name=&quot;rescue&quot;&gt;救援系統&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;&lt;em&gt;救援系統&lt;/em&gt; 是一種小的基於 RAM 磁碟的系統。由此可以對已安裝的系統進行所有類型的變更。因為此系統僅提供低階的工具,建議由專家使用。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWmainvideomodehtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::videomode.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::videomode.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/main::videomode.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,9 @@
++&lt;h3&gt;
++&lt;a name=&quot;videomode&quot;&gt;視訊模式選項&lt;/a&gt;
++&lt;/h3&gt;
++
++&lt;p&gt;按下 &lt;em&gt;@@@fkey_video@@@&lt;/em&gt; 可取得您圖形卡支援的視訊模式清單。已預先選取您監視器可顯示的最高模式。&lt;/p&gt;
++
++&lt;p&gt;有可能無法自動偵測您的監視器。在此情況下,請手動選取您偏好的模式。&lt;/p&gt;
++
++&lt;p&gt;如果您在安裝系統時,系統碰到圖形卡上的問題,&lt;em&gt;文字模式&lt;/em&gt; 會是可用的因應措施。&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkhelpinstallzh_TWnavihtml">Added: theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/navi.html</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/navi.html (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/help-install/zh_TW/navi.html 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1 @@
++&lt;p&gt;返回 &lt;a href=&quot;#foobar&quot;&gt;FOOBAR&lt;/a&gt;&lt;/p&gt;
+
+<a id="themetrunkmageiagfxbootthemetrunkkeymapskeymapcs_CZinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.cs_CZ.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.cs_CZ.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.cs_CZ.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,28 @@
++/keymap.cs_CZ [
++ [ 0x02 0x2b 0x31 0x00 ]
++ [ 0x03 0x11b 0x32 0x00 ]
++ [ 0x04 0x161 0x33 0x00 ]
++ [ 0x05 0x10d 0x34 0x00 ]
++ [ 0x06 0x159 0x35 0x00 ]
++ [ 0x07 0x17e 0x36 0x00 ]
++ [ 0x08 0xfd 0x37 0x00 ]
++ [ 0x09 0xe1 0x38 0x00 ]
++ [ 0x0a 0xed 0x39 0x00 ]
++ [ 0x0b 0xe9 0x30 0x00 ]
++ [ 0x0c 0x3d 0x25 0x2d ]
++ [ 0x0d 0x00 0x00 0x3d ]
++ [ 0x15 0x7a 0x5a 0x79 ]
++ [ 0x1a 0xfa 0x2f 0x5b ]
++ [ 0x1b 0x29 0x28 0x5d ]
++ [ 0x27 0x16f 0x22 0x3b ]
++ [ 0x28 0xa7 0x21 0x27 ]
++ [ 0x29 0x60 0x3b 0x00 ]
++ [ 0x2c 0x79 0x59 0x7a ]
++ [ 0x2e 0x63 0x43 0x00 ]
++ [ 0x33 0x2c 0x3f 0x00 ]
++ [ 0x34 0x2e 0x3a 0x00 ]
++ [ 0x35 0x2d 0x5f 0x2f ]
++ [ 0x56 0x7c 0x00 0x3c ]
++] def
++
++
+
+<a id="themetrunkmageiagfxbootthemetrunkkeymapskeymapda_DKinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.da_DK.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.da_DK.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.da_DK.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,24 @@
++/keymap.da_DK [
++ [ 0x03 0x32 0x22 0x40 ]
++ [ 0x04 0x33 0x23 0xa3 ]
++ [ 0x05 0x34 0x20ac 0x24 ]
++ [ 0x06 0x35 0x25 0x00 ]
++ [ 0x07 0x36 0x26 0x00 ]
++ [ 0x08 0x37 0x2f 0x7b ]
++ [ 0x09 0x38 0x28 0x5b ]
++ [ 0x0a 0x39 0x29 0x5d ]
++ [ 0x0b 0x30 0x3d 0x7d ]
++ [ 0x0c 0x2b 0x3f 0x00 ]
++ [ 0x0d 0x17d 0x60 0x7c ]
++ [ 0x1a 0xe5 0xc5 0x00 ]
++ [ 0x1b 0x161 0x5e 0x7e ]
++ [ 0x27 0xe6 0xc6 0x00 ]
++ [ 0x28 0xf8 0xd8 0x00 ]
++ [ 0x29 0x153 0xa7 0x00 ]
++ [ 0x2b 0x27 0x2a 0x00 ]
++ [ 0x2e 0x63 0x43 0x00 ]
++ [ 0x33 0x2c 0x3b 0x00 ]
++ [ 0x34 0x2e 0x3a 0x00 ]
++ [ 0x35 0x2d 0x5f 0x00 ]
++ [ 0x56 0x3c 0x3e 0x5c ]
++] def
+
+<a id="themetrunkmageiagfxbootthemetrunkkeymapskeymapde_DEinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.de_DE.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.de_DE.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.de_DE.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,29 @@
++/keymap.de_DE [
++ [ 0x03 0x32 0x22 0xb2 ]
++ [ 0x04 0x33 0xa7 0xb3 ]
++ [ 0x06 0x35 0x25 0x00 ]
++ [ 0x07 0x36 0x26 0x00 ]
++ [ 0x08 0x37 0x2f 0x7b ]
++ [ 0x09 0x38 0x28 0x5b ]
++ [ 0x0a 0x39 0x29 0x5d ]
++ [ 0x0b 0x30 0x3d 0x7d ]
++ [ 0x0c 0xdf 0x3f 0x5c ]
++ [ 0x0d 0x27 0x60 0x00 ]
++ [ 0x10 0x71 0x51 0x40 ]
++ [ 0x12 0x65 0x45 0x20ac ]
++ [ 0x15 0x7a 0x5a 0x00 ]
++ [ 0x1a 0xfc 0xdc 0x00 ]
++ [ 0x1b 0x2b 0x2a 0x7e ]
++ [ 0x27 0xf6 0xd6 0x00 ]
++ [ 0x28 0xe4 0xc4 0x00 ]
++ [ 0x29 0x5e 0xb0 0x00 ]
++ [ 0x2b 0x23 0x27 0x00 ]
++ [ 0x2c 0x79 0x59 0x00 ]
++ [ 0x32 0x6d 0x4d 0xb5 ]
++ [ 0x33 0x2c 0x3b 0x00 ]
++ [ 0x34 0x2e 0x3a 0x00 ]
++ [ 0x35 0x2d 0x5f 0x00 ]
++ [ 0x56 0x3c 0x3e 0x7c ]
++] def
++
++
+
+<a id="themetrunkmageiagfxbootthemetrunkkeymapskeymapel_GRinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.el_GR.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.el_GR.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.el_GR.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,5 @@
++/keymap.el_GR [
++ [ 0x06 0x35 0x25 0x00 ]
++ [ 0x2e 0x63 0x43 0x00 ]
++ [ 0x56 0x3c 0x3e 0x7c ]
++] def
+
+<a id="themetrunkmageiagfxbootthemetrunkkeymapskeymapes_ESinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.es_ES.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.es_ES.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.es_ES.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,26 @@
++/keymap.es_ES [
++ [ 0x02 0x31 0x21 0x7c ]
++ [ 0x03 0x32 0x22 0x40 ]
++ [ 0x04 0x33 0xb7 0x23 ]
++ [ 0x05 0x34 0x24 0x7e ]
++ [ 0x06 0x35 0x25 0x00 ]
++ [ 0x07 0x36 0x26 0xac ]
++ [ 0x08 0x37 0x2f 0x7b ]
++ [ 0x09 0x38 0x28 0x5b ]
++ [ 0x0a 0x39 0x29 0x5d ]
++ [ 0x0b 0x30 0x3d 0x7d ]
++ [ 0x0c 0x27 0x3f 0x5c ]
++ [ 0x0d 0xa1 0xbf 0x7e ]
++ [ 0x1a 0x00 0x00 0x5b ]
++ [ 0x1b 0x2b 0x2a 0x5d ]
++ [ 0x27 0xf1 0xd1 0x00 ]
++ [ 0x28 0x00 0x00 0x7b ]
++ [ 0x29 0xba 0xaa 0x5c ]
++ [ 0x2b 0xe7 0xc7 0x7d ]
++ [ 0x2e 0x63 0x43 0x00 ]
++ [ 0x33 0x2c 0x3b 0x00 ]
++ [ 0x34 0x2e 0x3a 0x00 ]
++ [ 0x35 0x2d 0x5f 0x00 ]
++ [ 0x56 0x3c 0x3e 0x00 ]
++] def
++
+
+<a id="themetrunkmageiagfxbootthemetrunkkeymapskeymapet_EEinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.et_EE.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.et_EE.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.et_EE.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++/keymap.et_EE [
++ [ 0x03 0x32 0x22 0x40 ]
++ [ 0x04 0x33 0x23 0xa3 ]
++ [ 0x05 0x34 0xa4 0x24 ]
++ [ 0x06 0x35 0x25 0x00 ]
++ [ 0x07 0x36 0x26 0x00 ]
++ [ 0x08 0x37 0x2f 0x7b ]
++ [ 0x09 0x38 0x28 0x5b ]
++ [ 0x0a 0x39 0x29 0x5d ]
++ [ 0x0b 0x30 0x3d 0x7d ]
++ [ 0x0c 0x2b 0x3f 0x5c ]
++ [ 0x12 0x65 0x45 0xa4 ]
++ [ 0x1a 0xfc 0xdc 0x00 ]
++ [ 0x1b 0xf5 0xd5 0xa7 ]
++ [ 0x1f 0x73 0x53 0xa8 ]
++ [ 0x27 0xf6 0xd6 0x00 ]
++ [ 0x28 0xe4 0xc4 0x5e ]
++ [ 0x2b 0x27 0x2a 0xbd ]
++ [ 0x2c 0x7a 0x5a 0xb8 ]
++ [ 0x2e 0x63 0x43 0x00 ]
++ [ 0x33 0x2c 0x3b 0x00 ]
++ [ 0x34 0x2e 0x3a 0x00 ]
++ [ 0x35 0x2d 0x5f 0x00 ]
++ [ 0x56 0x3c 0x3e 0x7c ]
++] def
+
+<a id="themetrunkmageiagfxbootthemetrunkkeymapskeymapfr_FRinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.fr_FR.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.fr_FR.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.fr_FR.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,32 @@
++/keymap.fr_FR [
++ [ 0x02 0x26 0x31 0x00 ]
++ [ 0x03 0x7b 0x32 0x7e ]
++ [ 0x04 0x22 0x33 0x23 ]
++ [ 0x05 0x27 0x34 0x7b ]
++ [ 0x06 0x28 0x35 0x5b ]
++ [ 0x07 0x2d 0x36 0x7c ]
++ [ 0x08 0x7d 0x37 0x60 ]
++ [ 0x09 0x5f 0x38 0x5c ]
++ [ 0x0a 0x2f 0x39 0x5e ]
++ [ 0x0b 0x40 0x30 0x00 ]
++ [ 0x0c 0x29 0x5d 0x00 ]
++ [ 0x0d 0x3d 0x2b 0x7d ]
++ [ 0x10 0x61 0x41 0x00 ]
++ [ 0x11 0x7a 0x5a 0x00 ]
++ [ 0x1a 0x5e 0x3c 0x00 ]
++ [ 0x1b 0x24 0x3e 0x7e ]
++ [ 0x1e 0x71 0x51 0x00 ]
++ [ 0x27 0x6d 0x4d 0x00 ]
++ [ 0x28 0x7c 0x25 0x00 ]
++ [ 0x29 0x2a 0x7e 0x00 ]
++ [ 0x2b 0x2a 0x23 0x00 ]
++ [ 0x2c 0x77 0x57 0x00 ]
++ [ 0x2e 0x63 0x43 0x00 ]
++ [ 0x32 0x2c 0x3f 0x00 ]
++ [ 0x33 0x3b 0x2e 0x00 ]
++ [ 0x34 0x3a 0x2f 0x00 ]
++ [ 0x35 0x21 0x5c 0x00 ]
++ [ 0x56 0x3c 0x3e 0x7c ]
++] def
++
++
+
+<a id="themetrunkmageiagfxbootthemetrunkkeymapskeymaphu_HUinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.hu_HU.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.hu_HU.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.hu_HU.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,43 @@
++/keymap.hu_HU [
++ [ 0x02 0x31 0x27 0x7e ]
++ [ 0x03 0x32 0x22 0x2c7 ]
++ [ 0x04 0x33 0x2b 0x5e ]
++ [ 0x05 0x34 0x21 0x2d8 ]
++ [ 0x06 0x35 0x25 0xb0 ]
++ [ 0x07 0x36 0x2f 0x2db ]
++ [ 0x08 0x37 0x3d 0x60 ]
++ [ 0x09 0x38 0x28 0x2d9 ]
++ [ 0x0a 0x39 0x29 0xb4 ]
++ [ 0x0b 0xf6 0xd6 0x2dd ]
++ [ 0x0c 0xfc 0xdc 0xa8 ]
++ [ 0x0d 0xf3 0xd3 0xb8 ]
++ [ 0x0f 0x09 0x09 0x00 ]
++ [ 0x10 0x71 0x51 0x5c ]
++ [ 0x11 0x77 0x57 0x7c ]
++ [ 0x15 0x7a 0x5a 0x00 ]
++ [ 0x17 0x69 0x49 0xcd ]
++ [ 0x1a 0x151 0x150 0xf7 ]
++ [ 0x1b 0xfa 0xda 0xd7 ]
++ [ 0x1f 0x73 0x53 0x111 ]
++ [ 0x20 0x64 0x44 0x110 ]
++ [ 0x21 0x66 0x46 0x5b ]
++ [ 0x22 0x67 0x47 0x5d ]
++ [ 0x24 0x6a 0x4a 0xed ]
++ [ 0x25 0x6b 0x4b 0x142 ]
++ [ 0x26 0x6c 0x4c 0x141 ]
++ [ 0x27 0xe9 0xc9 0x24 ]
++ [ 0x28 0xe1 0xc1 0xdf ]
++ [ 0x29 0x30 0xa7 0x00 ]
++ [ 0x2b 0x171 0x170 0xa4 ]
++ [ 0x2c 0x79 0x59 0x3e ]
++ [ 0x2d 0x78 0x58 0x23 ]
++ [ 0x2e 0x63 0x43 0x26 ]
++ [ 0x2f 0x76 0x56 0x40 ]
++ [ 0x30 0x62 0x42 0x7b ]
++ [ 0x31 0x6e 0x4e 0x7d ]
++ [ 0x33 0x2c 0x3f 0x3b ]
++ [ 0x34 0x2e 0x3a 0x00 ]
++ [ 0x35 0x2d 0x5f 0x2a ]
++ [ 0x56 0xed 0xcd 0x3c ]
++] def
++
+
+<a id="themetrunkmageiagfxbootthemetrunkkeymapskeymapit_ITinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.it_IT.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.it_IT.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.it_IT.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,25 @@
++/keymap.it_IT [
++ [ 0x03 0x32 0x22 0x00 ]
++ [ 0x04 0x33 0xa3 0x00 ]
++ [ 0x06 0x35 0x25 0x00 ]
++ [ 0x07 0x36 0x26 0x00 ]
++ [ 0x08 0x37 0x2f 0x00 ]
++ [ 0x09 0x38 0x28 0x7b ]
++ [ 0x0a 0x39 0x29 0x7d ]
++ [ 0x0b 0x30 0x3d 0x7e ]
++ [ 0x0c 0x27 0x3f 0x60 ]
++ [ 0x0d 0xec 0x5e 0xed ]
++ [ 0x1a 0xe8 0xe9 0x5b ]
++ [ 0x1b 0x2b 0x2a 0x5d ]
++ [ 0x27 0xf2 0xe7 0x40 ]
++ [ 0x28 0xe0 0xb0 0x23 ]
++ [ 0x29 0x5c 0x7c 0x00 ]
++ [ 0x2b 0xf9 0xa7 0xfa ]
++ [ 0x2e 0x63 0x43 0x00 ]
++ [ 0x33 0x2c 0x3b 0x00 ]
++ [ 0x34 0x2e 0x3a 0x00 ]
++ [ 0x35 0x2d 0x5f 0x00 ]
++ [ 0x56 0x3c 0x3e 0x00 ]
++] def
++
++
+
+<a id="themetrunkmageiagfxbootthemetrunkkeymapskeymapja_JPinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.ja_JP.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.ja_JP.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.ja_JP.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,24 @@
++/keymap.ja_JP [
++ [ 0x03 0x32 0x22 0x00 ]
++ [ 0x06 0x35 0x25 0x00 ]
++ [ 0x07 0x36 0x26 0x00 ]
++ [ 0x08 0x37 0x27 0x00 ]
++ [ 0x09 0x38 0x28 0x00 ]
++ [ 0x0a 0x39 0x29 0x00 ]
++ [ 0x0b 0x30 0x7e 0x00 ]
++ [ 0x0c 0x2d 0x3d 0x00 ]
++ [ 0x0d 0x5e 0x7e 0x00 ]
++ [ 0x1a 0x40 0x60 0x00 ]
++ [ 0x1b 0x5b 0x7b 0x00 ]
++ [ 0x27 0x3b 0x2b 0x00 ]
++ [ 0x28 0x3a 0x2a 0x00 ]
++ [ 0x29 0x1b 0x1b 0x00 ]
++ [ 0x2b 0x5d 0x7d 0x00 ]
++ [ 0x2e 0x63 0x43 0x00 ]
++ [ 0x56 0x3c 0x3e 0x00 ]
++ [ 0x59 0x5c 0x5f 0x00 ]
++ [ 0x5c 0x20 0x20 0x00 ]
++ [ 0x5e 0x20 0x20 0x00 ]
++ [ 0x7c 0x5c 0x7c 0x00 ]
++] def
++
+
+<a id="themetrunkmageiagfxbootthemetrunkkeymapskeymapnb_NOinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.nb_NO.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.nb_NO.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.nb_NO.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,43 @@
++/keymap.nb_NO [
++ [ 0x02 0x31 0x21 0xa1 ]
++ [ 0x03 0x32 0x22 0x40 ]
++ [ 0x04 0x33 0x23 0xa3 ]
++ [ 0x05 0x34 0x24 0x20ac ]
++ [ 0x06 0x35 0x25 0x153 ]
++ [ 0x07 0x36 0x26 0x178 ]
++ [ 0x08 0x37 0x2f 0x7b ]
++ [ 0x09 0x38 0x28 0x5b ]
++ [ 0x0a 0x39 0x29 0x5d ]
++ [ 0x0b 0x30 0x3d 0x7d ]
++ [ 0x0c 0x2b 0x3f 0xb1 ]
++ [ 0x0d 0x5c 0x60 0x00 ]
++ [ 0x0f 0x09 0x09 0x00 ]
++ [ 0x12 0x65 0x45 0xe9 ]
++ [ 0x13 0x72 0x52 0xae ]
++ [ 0x14 0x74 0x54 0xfe ]
++ [ 0x15 0x79 0x59 0xff ]
++ [ 0x16 0x75 0x55 0xfc ]
++ [ 0x17 0x69 0x49 0xef ]
++ [ 0x18 0x6f 0x4f 0xf2 ]
++ [ 0x19 0x70 0x50 0xb6 ]
++ [ 0x1a 0xe5 0xc5 0x7d ]
++ [ 0x1b 0x7e 0x5e 0x00 ]
++ [ 0x1e 0x61 0x41 0xe1 ]
++ [ 0x1f 0x73 0x53 0xdf ]
++ [ 0x20 0x64 0x44 0xf0 ]
++ [ 0x21 0x66 0x46 0xaa ]
++ [ 0x27 0xf8 0xd8 0x7c ]
++ [ 0x28 0xe6 0xc6 0x7b ]
++ [ 0x29 0x7c 0xa7 0x160 ]
++ [ 0x2b 0x27 0x2a 0x00 ]
++ [ 0x2d 0x78 0x58 0xd7 ]
++ [ 0x2e 0x63 0x43 0xe7 ]
++ [ 0x31 0x6e 0x4e 0xf1 ]
++ [ 0x32 0x6d 0x4d 0xb5 ]
++ [ 0x33 0x2c 0x3b 0x17e ]
++ [ 0x34 0x2e 0x3a 0xb7 ]
++ [ 0x35 0x2d 0x5f 0xad ]
++ [ 0x39 0x20 0x20 0xa0 ]
++ [ 0x56 0x3c 0x3e 0xab ]
++ [ 0x6f 0x7f 0x7f 0x00 ]
++] def
+
+<a id="themetrunkmageiagfxbootthemetrunkkeymapskeymappl_PLinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.pl_PL.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.pl_PL.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.pl_PL.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,16 @@
++/keymap.pl_PL [
++ [ 0x05 0x34 0x24 0xa7 ]
++ [ 0x06 0x35 0x25 0x00 ]
++ [ 0x0f 0x09 0x09 0x00 ]
++ [ 0x12 0x65 0x45 0x119 ]
++ [ 0x18 0x6f 0x4f 0xf3 ]
++ [ 0x1e 0x61 0x41 0x105 ]
++ [ 0x1f 0x73 0x53 0x15b ]
++ [ 0x26 0x6c 0x4c 0x142 ]
++ [ 0x2c 0x7a 0x5a 0x17c ]
++ [ 0x2d 0x78 0x58 0x17a ]
++ [ 0x2e 0x63 0x43 0x107 ]
++ [ 0x31 0x6e 0x4e 0x144 ]
++ [ 0x56 0x3c 0x3e 0x7c ]
++ [ 0x63 0x1c 0x1c 0x00 ]
++] def
+
+<a id="themetrunkmageiagfxbootthemetrunkkeymapskeymappt_BRinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.pt_BR.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.pt_BR.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.pt_BR.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,22 @@
++/keymap.pt_BR [
++ [ 0x02 0x31 0x21 0xb9 ]
++ [ 0x03 0x32 0x40 0xb2 ]
++ [ 0x04 0x33 0x23 0xb3 ]
++ [ 0x05 0x34 0x24 0xa3 ]
++ [ 0x06 0x35 0x25 0xa2 ]
++ [ 0x07 0x36 0x00 0xac ]
++ [ 0x0c 0x2d 0x5f 0x00 ]
++ [ 0x0d 0x3d 0x2b 0xa7 ]
++ [ 0x13 0x72 0x52 0xae ]
++ [ 0x1b 0x5b 0x7b 0xaa ]
++ [ 0x27 0xe7 0xc7 0x00 ]
++ [ 0x29 0x27 0x22 0x00 ]
++ [ 0x2b 0x5d 0x7d 0xba ]
++ [ 0x2e 0x63 0x43 0x00 ]
++ [ 0x32 0x6d 0x4d 0xb5 ]
++ [ 0x35 0x3b 0x3a 0x00 ]
++ [ 0x53 0x00 0x2c 0x00 ]
++ [ 0x56 0x5c 0x7c 0x00 ]
++ [ 0x59 0x2f 0x3f 0xb0 ]
++ [ 0x79 0x00 0x2e 0x00 ]
++] def
+
+<a id="themetrunkmageiagfxbootthemetrunkkeymapskeymappt_PTinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.pt_PT.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.pt_PT.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.pt_PT.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,24 @@
++/keymap.pt_PT [
++ [ 0x03 0x32 0x22 0x40 ]
++ [ 0x04 0x33 0x23 0xa3 ]
++ [ 0x05 0x34 0x24 0xa7 ]
++ [ 0x06 0x35 0x25 0x00 ]
++ [ 0x07 0x36 0x26 0x00 ]
++ [ 0x08 0x37 0x2f 0x7b ]
++ [ 0x09 0x38 0x28 0x5b ]
++ [ 0x0a 0x39 0x29 0x5d ]
++ [ 0x0b 0x30 0x3d 0x7d ]
++ [ 0x0c 0x27 0x3f 0x5c ]
++ [ 0x0d 0xab 0xbb 0x00 ]
++ [ 0x1a 0x2b 0x2a 0x00 ]
++ [ 0x1b 0x00 0x00 0x27 ]
++ [ 0x27 0xe7 0xc7 0x00 ]
++ [ 0x28 0xba 0xaa 0x00 ]
++ [ 0x29 0x5c 0x7c 0x00 ]
++ [ 0x2b 0x00 0x00 0x7e ]
++ [ 0x2e 0x63 0x43 0x00 ]
++ [ 0x33 0x2c 0x3b 0x00 ]
++ [ 0x34 0x2e 0x3a 0x00 ]
++ [ 0x35 0x2d 0x5f 0x00 ]
++ [ 0x56 0x3c 0x3e 0x7c ]
++] def
+
+<a id="themetrunkmageiagfxbootthemetrunkkeymapskeymapru_RUinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.ru_RU.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.ru_RU.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.ru_RU.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,43 @@
++/keymap.ru_RU [
++ [ 0x06 0x35 0x25 0x00 ]
++ [ 0x08 0x37 0x26 0x00 ]
++ [ 0x09 0x38 0x2a 0x00 ]
++ [ 0x0a 0x39 0x28 0x00 ]
++ [ 0x0b 0x30 0x29 0x00 ]
++ [ 0x0c 0x2d 0x5f 0x00 ]
++ [ 0x0f 0x09 0x09 0x00 ]
++ [ 0x10 0x71 0x51 0x439 ]
++ [ 0x11 0x77 0x57 0x446 ]
++ [ 0x12 0x65 0x45 0x443 ]
++ [ 0x13 0x72 0x52 0x43a ]
++ [ 0x14 0x74 0x54 0x435 ]
++ [ 0x15 0x79 0x59 0x43d ]
++ [ 0x16 0x75 0x55 0x433 ]
++ [ 0x17 0x69 0x49 0x448 ]
++ [ 0x18 0x6f 0x4f 0x449 ]
++ [ 0x19 0x70 0x50 0x437 ]
++ [ 0x1a 0x5b 0x7b 0x445 ]
++ [ 0x1b 0x5d 0x7d 0x5b ]
++ [ 0x1e 0x61 0x41 0x444 ]
++ [ 0x1f 0x73 0x53 0x44b ]
++ [ 0x20 0x64 0x44 0x432 ]
++ [ 0x21 0x66 0x46 0x430 ]
++ [ 0x22 0x67 0x47 0x43f ]
++ [ 0x23 0x68 0x48 0x440 ]
++ [ 0x24 0x6a 0x4a 0x43e ]
++ [ 0x25 0x6b 0x4b 0x43b ]
++ [ 0x26 0x6c 0x4c 0x434 ]
++ [ 0x27 0x3b 0x3a 0x436 ]
++ [ 0x28 0x27 0x22 0x44d ]
++ [ 0x2c 0x7a 0x5a 0x44f ]
++ [ 0x2d 0x78 0x58 0x447 ]
++ [ 0x2e 0x63 0x43 0x441 ]
++ [ 0x2f 0x76 0x56 0x43c ]
++ [ 0x30 0x62 0x42 0x438 ]
++ [ 0x31 0x6e 0x4e 0x442 ]
++ [ 0x32 0x6d 0x4d 0x44c ]
++ [ 0x33 0x2c 0x3c 0x431 ]
++ [ 0x34 0x2e 0x3e 0x44e ]
++ [ 0x56 0x3c 0x3e 0x7c ]
++] def
++
+
+<a id="themetrunkmageiagfxbootthemetrunkkeymapskeymapsk_SKinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.sk_SK.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.sk_SK.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.sk_SK.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,24 @@
++/keymap.sk_SK [
++ [ 0x02 0x31 0x21 0x2b ]
++ [ 0x03 0x32 0x40 0x13e ]
++ [ 0x04 0x33 0x23 0x161 ]
++ [ 0x05 0x34 0x24 0x10d ]
++ [ 0x06 0x35 0x25 0x165 ]
++ [ 0x07 0x36 0x5e 0x17e ]
++ [ 0x08 0x37 0x26 0xfd ]
++ [ 0x09 0x38 0x2a 0xe1 ]
++ [ 0x0a 0x39 0x28 0xed ]
++ [ 0x0b 0x30 0x29 0xe9 ]
++ [ 0x0c 0x2d 0x5f 0x3d ]
++ [ 0x15 0x7a 0x5a 0x00 ]
++ [ 0x1a 0x5b 0x7b 0xfa ]
++ [ 0x1b 0x5d 0x7d 0xe4 ]
++ [ 0x27 0x3b 0x3a 0xf4 ]
++ [ 0x28 0x27 0x22 0xa7 ]
++ [ 0x2b 0x5c 0x7c 0x148 ]
++ [ 0x2c 0x79 0x59 0x00 ]
++ [ 0x2e 0x63 0x43 0x00 ]
++ [ 0x35 0x2f 0x3f 0x2d ]
++ [ 0x56 0x3c 0x3e 0x7c ]
++] def
++
+
+<a id="themetrunkmageiagfxbootthemetrunkkeymapskeymapsl_SIinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.sl_SI.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.sl_SI.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.sl_SI.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,38 @@
++/keymap.sl_SI [
++ [ 0x02 0x31 0x21 0x7e ]
++ [ 0x03 0x32 0x22 0x2c7 ]
++ [ 0x04 0x33 0x23 0x5e ]
++ [ 0x05 0x34 0x24 0x2d8 ]
++ [ 0x06 0x35 0x25 0xb0 ]
++ [ 0x07 0x36 0x26 0x2db ]
++ [ 0x08 0x37 0x2f 0x60 ]
++ [ 0x09 0x38 0x28 0x2d9 ]
++ [ 0x0a 0x39 0x29 0xb4 ]
++ [ 0x0b 0x30 0x3d 0x2dd ]
++ [ 0x0c 0x27 0x3f 0xa8 ]
++ [ 0x0d 0x2b 0x2a 0xb8 ]
++ [ 0x0f 0x09 0x09 0x00 ]
++ [ 0x10 0x71 0x51 0x5c ]
++ [ 0x11 0x77 0x57 0x7c ]
++ [ 0x15 0x7a 0x5a 0x00 ]
++ [ 0x1a 0x161 0x160 0xf7 ]
++ [ 0x1b 0x111 0x110 0xd7 ]
++ [ 0x21 0x66 0x46 0x5b ]
++ [ 0x22 0x67 0x47 0x5d ]
++ [ 0x25 0x6b 0x4b 0x142 ]
++ [ 0x26 0x6c 0x4c 0x141 ]
++ [ 0x27 0x10d 0x10c 0x00 ]
++ [ 0x28 0x107 0x106 0xdf ]
++ [ 0x29 0xb8 0xa8 0x00 ]
++ [ 0x2b 0x17e 0x17d 0xa4 ]
++ [ 0x2c 0x79 0x59 0x00 ]
++ [ 0x2e 0x63 0x43 0x00 ]
++ [ 0x2f 0x76 0x56 0x40 ]
++ [ 0x30 0x62 0x42 0x7b ]
++ [ 0x31 0x6e 0x4e 0x7d ]
++ [ 0x32 0x6d 0x4d 0xa7 ]
++ [ 0x33 0x2c 0x3b 0x00 ]
++ [ 0x34 0x2e 0x3a 0x00 ]
++ [ 0x35 0x2d 0x5f 0x00 ]
++ [ 0x56 0x3c 0x3e 0x00 ]
++] def
+
+<a id="themetrunkmageiagfxbootthemetrunkkeymapskeymapsv_SEinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.sv_SE.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.sv_SE.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.sv_SE.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,23 @@
++/keymap.sv_SE [
++ [ 0x03 0x32 0x22 0x40 ]
++ [ 0x04 0x33 0x23 0xa3 ]
++ [ 0x05 0x34 0xe7 0x24 ]
++ [ 0x06 0x35 0x25 0x00 ]
++ [ 0x07 0x36 0x26 0xac ]
++ [ 0x08 0x37 0x2f 0x7b ]
++ [ 0x09 0x38 0x28 0x5b ]
++ [ 0x0a 0x39 0x29 0x5d ]
++ [ 0x0b 0x30 0x3d 0x7d ]
++ [ 0x0c 0x2b 0x3f 0x5c ]
++ [ 0x1a 0xe5 0xc5 0x00 ]
++ [ 0x1b 0x00 0x5e 0x7e ]
++ [ 0x27 0xf6 0xd6 0x00 ]
++ [ 0x28 0xe4 0xc4 0x00 ]
++ [ 0x29 0xa7 0xb0 0xbd ]
++ [ 0x2b 0x27 0x2a 0x00 ]
++ [ 0x2e 0x63 0x43 0x00 ]
++ [ 0x33 0x2c 0x3b 0x00 ]
++ [ 0x34 0x2e 0x3a 0x00 ]
++ [ 0x35 0x2d 0x5f 0x00 ]
++ [ 0x56 0x3c 0x3e 0x7c ]
++] def
+
+<a id="themetrunkmageiagfxbootthemetrunkkeymapskeymaptr_TRinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.tr_TR.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.tr_TR.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/keymaps/keymap.tr_TR.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,29 @@
++/keymap.tr_TR [
++ [ 0x03 0x32 0x27 0x00 ]
++ [ 0x04 0x33 0x5e 0x23 ]
++ [ 0x05 0x34 0x2b 0x24 ]
++ [ 0x06 0x35 0x25 0x00 ]
++ [ 0x07 0x36 0x26 0x00 ]
++ [ 0x08 0x37 0x2f 0x7b ]
++ [ 0x09 0x38 0x28 0x5b ]
++ [ 0x0a 0x39 0x29 0x5d ]
++ [ 0x0b 0x30 0x3d 0x7d ]
++ [ 0x0c 0x2a 0x3f 0x5c ]
++ [ 0x0d 0x2d 0x5f 0x00 ]
++ [ 0x10 0x71 0x51 0x40 ]
++ [ 0x16 0x75 0x55 0xfb ]
++ [ 0x17 0x131 0x49 0xee ]
++ [ 0x18 0x6f 0x4f 0xf4 ]
++ [ 0x1a 0x11f 0x11e 0x00 ]
++ [ 0x1b 0xfc 0xdc 0x7e ]
++ [ 0x1e 0x61 0x41 0xe2 ]
++ [ 0x27 0x15f 0x15e 0x00 ]
++ [ 0x28 0x69 0x130 0x00 ]
++ [ 0x29 0x22 0xe9 0x00 ]
++ [ 0x2b 0x2c 0x3b 0x60 ]
++ [ 0x2e 0x63 0x43 0x00 ]
++ [ 0x33 0xf6 0xd6 0x00 ]
++ [ 0x34 0xe7 0xc7 0x00 ]
++ [ 0x35 0x2e 0x3a 0x2f ]
++ [ 0x56 0x3c 0x3e 0x7c ]
++] def
+
+<a id="themetrunkmageiagfxbootthemetrunkpoMakefile">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/Makefile</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/Makefile (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/Makefile 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,35 @@
++POFILES = $(wildcard *.po)
++TEXTS = $(addsuffix .tr,$(basename $(wildcard *.po)))
++
++PRODUCT = $(shell perl -ne 'print if s/^product=//' ../config)
++
++all: .ready
++
++.ready: text.inc $(TEXTS)
++ @touch .ready
++
++# the po2txt script requires that the po file has no fuzzy entries
++# and the same comments as the pot file; so we do a msgfmt/msgunfmt/msgmerge
++# to ensure that
++%.tr: %.po text.inc
++ msgfmt $&lt; -o - | msgunfmt | \
++ msgmerge --no-fuzzy-matching - bootloader.pot &gt; tmp_$&lt; &amp;&amp; \
++ bin/po2txt --product='$(PRODUCT)' tmp_$&lt; &gt;$@
++ rm -f tmp_$&lt;
++
++# en.tr uses msgids from bootloader.pot
++en.tr text.inc: bootloader.pot
++ bin/po2txt --product='$(PRODUCT)' $&lt; &gt;en.tr
++
++clean:
++ rm -f .ready text.inc *.tr *~ talk/*~
++
++
++update_n_merge: bootloader.pot merge
++
++merge:
++ for n in *.po; do \
++ echo &quot;Merging $$n&quot;; \
++ msgmerge -C $$n $$n bootloader.pot &gt; &quot;$$n&quot;t ; \
++ mv -f &quot;$$n&quot;t $$n ; \
++ done
+
+
+Property changes on: theme/trunk/mageia-gfxboot-theme/trunk/po/Makefile
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themetrunkmageiagfxbootthemetrunkpoREADME">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/README</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/README (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/README 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,24 @@
++boot loader translations
++------------------------
++
++o How do I add a new text?
++
++ - Use the gfxboot/po/bin/add_text script; example:
++
++ add_text help 'Help'
++
++ This will define txt_help; the 'txt_' prefix is optional.
++
++o How do I remove a text that's no longer needed?
++
++ - Use the gfxboot/po/bin/rm_text script; example:
++
++ rm_text help
++
++ This will remove txt_help; the removed lines are stored in the 'old'
++ directory.
++
++o How do I add a new language?
++
++ - Copy bootloader.pot to &lt;lang&gt;.po. Remember to get &lt;lang&gt;.po translated.
++
+
+<a id="themetrunkmageiagfxbootthemetrunkpoafpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/af.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/af.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/af.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,481 @@
++# LANGUAGE translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader\n&quot;
++&quot;POT-Creation-Date: 2006-10-26 15:50+0200\n&quot;
++&quot;PO-Revision-Date: 2006-11-03 14:26\n&quot;
++&quot;Last-Translator: Novell Language &lt;language@novell.com&gt;\n&quot;
++&quot;Language-Team: Novell Language &lt;language@novell.com&gt;\n&quot;
++&quot;Language: \n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;Goed&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Kanselleer&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Herselflaai&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Gaan voort&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Installasie&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Met-die-hand installasie&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Installasie--ACPI-versper&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Installasie--veilige instellings&quot;
++
++#. txt_safe_linux
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Selflaai vanaf harde skyf&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Reddingstelsel&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Geheuetoets&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Selflaai-opsies&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Hersien van ...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;U verlaat nou die grafiese selflaaikieslys en\n&quot;
++&quot; begin die teksmoduskoppelvlak.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Help&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Begin met ...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Laai van Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot; \n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Laai van memtest86\n&quot;
++&quot;\n&quot;
++&quot; \n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Selflaaiprogram&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;I/O-fout&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Wysig selflaaiskyf&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Sit selflaaiskyf %u in.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Dit is selflaaiskyf %u.\n&quot;
++&quot;Sit selflaaiskyf %u in.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Dit is nie 'n &lt;product&gt; selflaaiskyf nie.\n&quot;
++&quot;Sit selflaaiskyf %u in.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Wagwoord&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Kry u aandrywerbywerkingskyf gereed.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD-fout&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Dit 'n tweekantige DVD. U het vanaf die tweede kant geselflaai.\n&quot;
++&quot;\n&quot;
++&quot; Draai die DVD om en gaan dan voort.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Krag af&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Halt die stelsel nou?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Harde skyf&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Hardeskyfinstallasie&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Skyftoestel (skandeer alle skywe indien leeg)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Gids\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP-installasie&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Bediener\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Wagwoord\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Gebruiker (naamlose aantekening indien leeg)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS-installasie&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Gebruiker (gebruik \&quot;gas\&quot; indien leeg)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB (Windows-gedeelde) -installasie&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP-installasie&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Aandrywer&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Domein\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Ander opsies&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Taal&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Installasie--IOAPIC-ontsper&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Installasie--IOAPIC-versper&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Installasie--plaaslike APIC-versper&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Ja&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Nee&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Lêer&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Deel \n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Outomatiese modus&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Met-die-hand modus&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Konfigureer parameters op ZEN-partisie&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Installeer of werk ZEN-partisie by&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Herinstalleer ZEN-partisieselflaaiprogram&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Versper ZEN-partisie&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Ontsper ZEN-partisie&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Teksmodus&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Firmatuurtoets&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Om aandrywerbywerkings direk vanaf CD-ROM te laai,\n&quot;
++&quot;voer die aandrywerbywerklêername(geskei \n&quot;
++&quot; deur kommas ',') hier in:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Bron&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Arg.&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++#, fuzzy
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Ander opsies&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Sleutelbord&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;Linux--veilige instellings&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpoarpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/ar.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/ar.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/ar.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,495 @@
++# translation of bootloader.po to Arabic
++# LANGUAGE translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++# Ma'moun Diraneyya &lt;mamoun.diraneyya@gmail.com&gt;, 2009.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2006-05-18 10:26+0200\n&quot;
++&quot;PO-Revision-Date: 2009-04-20 20:59+0300\n&quot;
++&quot;Last-Translator: Ma'moun Diraneyya &lt;mamoun.diraneyya@gmail.com&gt;\n&quot;
++&quot;Language-Team: Arabic &lt;doc@arabeyes.org&gt;\n&quot;
++&quot;Language: ar\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++&quot;Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100&gt;=3 &quot;
++&quot;&amp;&amp; n%100&lt;=10 ? 3 : n%100&gt;=11 &amp;&amp; n%100&lt;=99 ? 4 : 5;\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;موافق&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;ألغِ&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;أعِد التشغيل&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;تابع&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;أقلع مايكروسُفت وندز&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;أداة اكتشاف العتاد&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;لينُكس مع النواة %s&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;افحص وسائط تثبيت&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;تثبيت يدوي&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;تثبيت--ACPI معطل&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;تثبيت--إعدادات آمنة&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;أقلع ماندريفا لينُكس 2009 الربيع (الوضع الآمن)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;أقلع من القرص الصلب&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;نظام الإنقاذ&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;اختبار الذاكرة&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;خيارات الإقلاع&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;خروج...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;أنت تغادر قائمة الإقلاع الرسومية\n&quot;
++&quot;وتبدأ واجهة الوضع النصي.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;مساعدة&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;بدء...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;تحميل نواة لينُكس\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;تحميل memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;مُحمِّل الإقلاع&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;خطأ في المدخلات/المخرجات&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;غيِّر قرص الإقلاع&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;أدخل قرص الإقلاع %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;هذا قرص الإقلاع %u.\n&quot;
++&quot;أدخل قرص الإقلاع %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;هذا ليس قرص إقلاع &lt;product&gt;.\n&quot;
++&quot;أدخل قرص الإقلاع %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;كلمة السر&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;خطأ في القرص الرقمي&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;هذا قرص رقمي بوجهين، وأنت أقلعت من الوجه الثاني.\n&quot;
++&quot;\n&quot;
++&quot;اقلب القرص الرقمي، ثم تابع.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;أطفئ&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;هل أوقف النظام الآن؟&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;القرص الصلب&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;تثبيت القرص الصلب&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;جهاز القرص (يمسح الأقراص كلها إذا كان فارغًا)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;الدليل\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;تثبيت FTP&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;الخادوم\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;كلمة السر\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;المستخدم (ولوج مجهول إذا كان فارغًا)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;تثبيت NFS&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;المستخدم (يستخدم \&quot;الضيف\&quot; إذا كان فارغًا)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;تثبيت سامبا‏ (مشاركة وندز)&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;تثبيت HTTP&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;المُشغِّل&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;النطاق\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;خيارات أخرى&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;اللغة&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;تثبيت--IOAPIC ممكَّن&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;تثبيت--IOAPIC معطَّل&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;تثبيت--APIC المحلي معطَّل&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;نعم&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;لا&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;ملف&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;شارك\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;الوضع التلقائي&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;الوضع اليدوي&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;اضبط المُعاملات في قسم ZEN&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;ثبِّت أو حدِّث قسم ZEN&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;أعِد تثبيت محمِّل إقلاع قسم ZEN&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;عطِّل قسم ZEN&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;مكِّن قسم ZEN&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;الوضع النصي&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;اختبار البرنامج المُضمَّن (فِرموير)&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;لتحميل تحديثات المُشغِّل مباشرةً من القرص المدمج،\n&quot;
++&quot;أدخل أسماء ملفات تحديثات المُشغِّل -مفصولة\n&quot;
++&quot; بفواصل ','- هنا:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;المصدر&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;وضع الفيديو&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;تحديث المُشغِّل&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;المعمارية&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;خيارات النواة&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;افتراضي&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;الإعدادات الآمنة&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;دون ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;دون APIC محلي&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;أصلح نظامًا مُثبتًا&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;افحص وسائط تثبيت&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;لوحة المفاتيح&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;نزِّل تحديث المُشغِّل&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;أدخل مسار تحديث المُشغل\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;معمارية خاطئة&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++#, fuzzy
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;هذا حاسوب 32-بِت، لا تستطيع استخدام برامج 64-بِت عليه.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;تحذير&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;أنت على وشك تثبيت برامج 32-بِت على حاسوب 64-بِت.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;أدخل القرص المُدمج لتحديث المُشغل\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;ضع قرص لينُكس ماندريفا المدمج من جديد في السوَّاقة.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;استعد نسخة احتياطية من لقطةدراك (draksnapshot)&quot;
++
++#, fuzzy
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;أقلع ماندريفا لينُكس 2009 الربيع&quot;
++
++#, fuzzy
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;ثبِّت لينُكس ماندريفا 2009 الربيع&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpoastpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/ast.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/ast.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/ast.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,499 @@
++# translation of ast.po to
++# translation of bootloader.po to
++# LANGUAGE translations for boot loader
++# Copyright (C) 2004 SUSE LINUX AG
++# , 2004
++# Astur &lt;malditoastur@gmail.com&gt;, 2009.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader.ast\n&quot;
++&quot;POT-Creation-Date: \n&quot;
++&quot;PO-Revision-Date: 2010-01-22 20:03+0100\n&quot;
++&quot;Last-Translator: marquinos &lt;marcoscostales@gmail.com&gt;\n&quot;
++&quot;Language-Team: Asturian &lt;opensuse-translation-es@opensuse.org&gt;\n&quot;
++&quot;Language: ast\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++&quot;X-Poedit-Language: Asturian\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;Aceutar&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Encaboxar&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Reaniciar&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Continuar&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Arrancar Microsoft Windows&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Ferramienta de Deteición de Hardware&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux con kernel %s&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Instalación&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Instalación manual&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Instalación -- ACPI Desactiváu&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Instalación -- Axustes seguros&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Arrancar Mandriva Linux 2010 Spring (mou seguru)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Arrancar dende'l discu duru&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Sistema de rescate&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Preba de memoria&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Opciones d'arranque&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Colando...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Tas colando del menú gráficu d'arranque y\n&quot;
++&quot;aniciando la interface en mou testu.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Aida&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Aniciando...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Cargando'l kernel Linux\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Cargando memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Cargador d'arranque&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;Fallos de E/S&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Camudar disquete d'arranque&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Inxerte'l discu d'arranque %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Esti ye'l discu d'arranque %u.\n&quot;
++&quot;Inxerte'l discu d'arranque %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Esti nun ye un discu d'arranque de &lt;product&gt;.\n&quot;
++&quot;Introduza'l discu d'arranque %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Contraseña&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Ten preparáu'l discu d'anovamientu del controlador.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;Fallu de DVD&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Esti DVD ye de duble. Agora mesmo ta puesta la segunda cara.\n&quot;
++&quot;\n&quot;
++&quot;Da-y la vuelta al DVD y sigui.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Apagar&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;¿Quies apagar el sistema agora?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Discu duru&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Instalación discu duru&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Preséu de discu (analiza tolos discos si se dexa ermu)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Direutoriu\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;Instalación FTP&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Sirvidor\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Contraseña\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Usuariu (dexar ermu p'anónimu)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;Instalación NFS&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Usuariu (úsase \&quot;guest\&quot; si se dexa ermu)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;Instalación SMB (recursu compartíu Windows)&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;Instalación HTTP&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Controlador&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Dominiu\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Otres opciones&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Llingua&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Instalación -- IOAPIC habilitado&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Instalación -- IOAPIC inhabilitáu&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Instalación -- APIC llocal inhabilitáu&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Sí&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Non&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Ficheru&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Compartir\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Mou automáticu&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Mou manual&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Configurar parámetros na partición ZEN&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Instalar o anovar la partición ZEN&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Volver a instalar el cargador d'arranque de partición ZEN&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Inhabilitar partición ZEN&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Habilitar partición ZEN&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Mou de testu&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Preba de firmware&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Pa cargar los anovamientos de controlador direutamente dende'l CD-ROM,\n&quot;
++&quot;indica los nomes de ficheru de los anovamientos del controlador (separtaos\n&quot;
++&quot;per comes \&quot;,\&quot;) equí:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Orixe&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Mou de vídeu&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Anovamientu de controlador&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Arquiteutura&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Opciones pal kernel&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Predetermináu&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Axustes seguros&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Ensin ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Ensin APIC llocal&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Iguar el sistema instaláu&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Verificar el mediu d'instalación&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Tecláu&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Descargar anovamientu de controlador&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Inxerte'l URL del anovamientu del controlador\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Arquiteutura non correuta&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;Esti equipu ye de 32-bits. Nun puedes usar software de 64-bit nél.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Avisu&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;Tas a piques d'instalar software de 32-bits nún equipu de 64-bits.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;Inxerte'l CD-ROM d'anovamientu del controlador pa\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Allugue'l CD-ROM de Mandriva Linux otra vegada na unidá. &quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;Restaurar copia de seguridá draksnapshot&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Arrancar Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Instalar Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;Linux -- Axustes seguros&quot;
++
++#~ msgid &quot;Kernel&quot;
++#~ msgstr &quot;Kernel&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpobgpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/bg.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/bg.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/bg.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,503 @@
++# translation of bg.po to
++# translation of bg.po to Bulgarian
++# translation of bootloader.po to Bulgarian
++# LANGUAGE translations for boot loader
++# Copyright (C) 2004 SUSE LINUX AG
++# Copyright (C) 2004 Vdel CREC
++#
++# Borislav Mitev &lt;morbid_viper@tkzs.org&gt;, 2004, 2005, 2006.
++# Kolio Kolev &lt;kolio_kolev@biotronica.net&gt;, 2009.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader.bg\n&quot;
++&quot;POT-Creation-Date: \n&quot;
++&quot;PO-Revision-Date: 2009-03-27 10:03+0200\n&quot;
++&quot;Last-Translator: Rossen Karpuzov &lt;gustav cointech net&gt;\n&quot;
++&quot;Language-Team: Mandriva User Group - Bulgaria &lt;mandriva-bg@googlegroups.&quot;
++&quot;com&gt;\n&quot;
++&quot;Language: \n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: Lokalize 0.3\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;Добре&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Прекъсване&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Рестартиране&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Продължаване&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Старт на Microsoft Windows&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Инструмент за откриване на хардуер&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Линукс с ядро %s&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Инсталиране&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Ръчно инсталиране&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Инсталиране - без ACPI&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Инсталиране - Безопасни настройки&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Старт на Mandriva Linux 2010 Spring (защитен режим)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Зареждане от твърдия диск&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Спасяване на системата&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Проверка на паметта&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Параметри на зареждането&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Излизане...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Вие напускате графичното меню и влизате\n&quot;
++&quot;в текстовия режим на зареждането.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Помощ&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Стартиране...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Зареждане на Линукс ядрото\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Зареждане на memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Зареждаща програма&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;Входно/Изходна грешка&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Промяна на диска за зареждане&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Моля, поставете зареждащ диск %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Това е зареждащ диск %u.\n&quot;
++&quot;Моля, поставете %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Това не е зареждащ диск на &lt;product&gt;.\n&quot;
++&quot;Моля, поставете %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Парола&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Пригответе дискетата с драйверите за подновяване.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD грешка&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Това е двустранно DVD. Вие сте заредили от втората страна\n&quot;
++&quot;\n&quot;
++&quot;Моля, обърнете DVD-то и след това продължете.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Изключване на захранването&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Желаете ли да спрете сега системата?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Твърд диск&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Инсталиране от твърд диск&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Дисково устройство (ще сканира всички дискове, ако е празно)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Директория\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;Инсталиране от FTP&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Сървър\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Парола\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Потребител (анонимен вход, ако е празно)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;Инсталация от NFS&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Потребител (ще използва \&quot;guest\&quot;, ако е празно)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;Инсталиране от SMB (Windows Share)&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;Инсталиране от HTTP&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Драйвер&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Домейн\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Други параметри&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Език&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Инсталация — разрешено IOAPIC&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Инсталиране - без IOAPIC&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Инсталация — забранено локален APIC&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Да&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Не&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Файл&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Споделен ресурс\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Автоматичен режим&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Ръчен режим&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Настройка на параметри на ZEN дял&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Инсталиране или подновяване на ZEN дял&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Преинсталиране ОС зареждане на ZEN дял&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Забраняване на ZEN дял&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Разрешаване на ZEN дял&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Текстов режим&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Проба на фърмуер&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;За да заредите драйвери директно от CD-ROM,\n&quot;
++&quot;въведете тук файловите имена на драйверите\n&quot;
++&quot;за обновяване, разделени със запетаи:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Източник&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Видео режим&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Обновяване на драйвери&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Архитектура&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Опции на ядрото&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;По подразбиране&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Безопасни настройки&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Без ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Без локален APIC&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Поправка на инсталирана система&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Проверка на инсталационен носител&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Клавиатура&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Свали актуализация на драйвер&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Въведи URL на актуален драйвер\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Грешна архитектура&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++#, fuzzy
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;Това е 32 битов компютър. Не може да ползвате 64 битов софтуер на него.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Внимание&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;Вие ще инсталирате 32 битов софтуер на 64 битов компютър.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;Поставете CD-ROM с обновени драйвери за\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Сложете CD-ROM-а на МАндрива Линукс обратно в устройството.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;Възтановява архив от draksnapshot&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Старт на Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Инсталирай Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;Linux - безопасни настройки&quot;
++
++#~ msgid &quot;Kernel&quot;
++#~ msgstr &quot;Ядро&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpobinadd_text">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/bin/add_text</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/bin/add_text (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/bin/add_text 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,56 @@
++#! /usr/bin/perl
++
++# add a new text to *.po files
++
++die &quot;usage: add_text [-c comment] id text_line1 text_line2 ... \nexample:\n add_text MENU_LANG Language\n&quot; if @ARGV &lt; 2;
++
++while($ARGV[0] eq '-c') {
++ shift;
++ push @l, &quot;#. $ARGV[0]\n&quot;;
++ shift;
++}
++
++$id = shift;
++@texts = @ARGV;
++
++$id =~ s/^txt_//;
++
++$_ = join '', @texts;
++
++push @l, &quot;#. txt_$id\n&quot;;
++push @l, &quot;#, c-format\n&quot; if /%/;
++
++if(@texts == 1) {
++ push @l, &quot;msgid \&quot;$texts[0]\&quot;\n&quot;
++}
++else {
++ push @l, &quot;msgid \&quot;\&quot;\n&quot;;
++ for (@texts) { push @l, &quot;\&quot;$_\&quot;\n&quot; }
++}
++
++push @l, &quot;msgstr \&quot;\&quot;\n&quot;;
++push @l, &quot;\n&quot;;
++
++print @l;
++
++print STDERR &quot;Should this entry be added to all *.po files? [Y/n]\n&quot;;
++
++$_ = &lt;STDIN&gt;;
++
++chomp;
++
++$_ = &quot;\L$_&quot;;
++
++exit unless $_ eq '' || $_ eq 'y';
++
++print &quot;ok\n&quot;;
++
++for $f (&quot;bootloader.pot&quot;, &lt;*.po&gt;) {
++ if(open F, &quot;+&lt;$f&quot;) {
++ @f = &lt;F&gt;;
++ print F &quot;\n&quot; if $f[-1] !~ /^\s*$/;
++ print F @l;
++ close F;
++ }
++}
++
+
+
+Property changes on: theme/trunk/mageia-gfxboot-theme/trunk/po/bin/add_text
+___________________________________________________________________
+<a id="svnexecutable">Added: svn:executable</a>
+ + *
+
+<a id="themetrunkmageiagfxbootthemetrunkpobinarabictxt">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/bin/arabic.txt</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/bin/arabic.txt (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/bin/arabic.txt 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,1040 @@
++0600;ARABIC NUMBER SIGN;Cf;0;AL;;;;;N;;;;;
++0601;ARABIC SIGN SANAH;Cf;0;AL;;;;;N;;;;;
++0602;ARABIC FOOTNOTE MARKER;Cf;0;AL;;;;;N;;;;;
++0603;ARABIC SIGN SAFHA;Cf;0;AL;;;;;N;;;;;
++060C;ARABIC COMMA;Po;0;CS;;;;;N;;;;;
++060D;ARABIC DATE SEPARATOR;Po;0;AL;;;;;N;;;;;
++060E;ARABIC POETIC VERSE SIGN;So;0;ON;;;;;N;;;;;
++060F;ARABIC SIGN MISRA;So;0;ON;;;;;N;;;;;
++0610;ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM;Mn;230;NSM;;;;;N;;;;;
++0611;ARABIC SIGN ALAYHE ASSALLAM;Mn;230;NSM;;;;;N;;;;;
++0612;ARABIC SIGN RAHMATULLAH ALAYHE;Mn;230;NSM;;;;;N;;;;;
++0613;ARABIC SIGN RADI ALLAHOU ANHU;Mn;230;NSM;;;;;N;;;;;
++0614;ARABIC SIGN TAKHALLUS;Mn;230;NSM;;;;;N;;;;;
++0615;ARABIC SMALL HIGH TAH;Mn;230;NSM;;;;;N;;;;;
++061B;ARABIC SEMICOLON;Po;0;AL;;;;;N;;;;;
++061F;ARABIC QUESTION MARK;Po;0;AL;;;;;N;;;;;
++0621;ARABIC LETTER HAMZA;Lo;0;AL;;;;;N;ARABIC LETTER HAMZAH;;;;
++0622;ARABIC LETTER ALEF WITH MADDA ABOVE;Lo;0;AL;0627 0653;;;;N;ARABIC LETTER MADDAH ON ALEF;;;;
++0623;ARABIC LETTER ALEF WITH HAMZA ABOVE;Lo;0;AL;0627 0654;;;;N;ARABIC LETTER HAMZAH ON ALEF;;;;
++0624;ARABIC LETTER WAW WITH HAMZA ABOVE;Lo;0;AL;0648 0654;;;;N;ARABIC LETTER HAMZAH ON WAW;;;;
++0625;ARABIC LETTER ALEF WITH HAMZA BELOW;Lo;0;AL;0627 0655;;;;N;ARABIC LETTER HAMZAH UNDER ALEF;;;;
++0626;ARABIC LETTER YEH WITH HAMZA ABOVE;Lo;0;AL;064A 0654;;;;N;ARABIC LETTER HAMZAH ON YA;;;;
++0627;ARABIC LETTER ALEF;Lo;0;AL;;;;;N;;;;;
++0628;ARABIC LETTER BEH;Lo;0;AL;;;;;N;ARABIC LETTER BAA;;;;
++0629;ARABIC LETTER TEH MARBUTA;Lo;0;AL;;;;;N;ARABIC LETTER TAA MARBUTAH;;;;
++062A;ARABIC LETTER TEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA;;;;
++062B;ARABIC LETTER THEH;Lo;0;AL;;;;;N;ARABIC LETTER THAA;;;;
++062C;ARABIC LETTER JEEM;Lo;0;AL;;;;;N;;;;;
++062D;ARABIC LETTER HAH;Lo;0;AL;;;;;N;ARABIC LETTER HAA;;;;
++062E;ARABIC LETTER KHAH;Lo;0;AL;;;;;N;ARABIC LETTER KHAA;;;;
++062F;ARABIC LETTER DAL;Lo;0;AL;;;;;N;;;;;
++0630;ARABIC LETTER THAL;Lo;0;AL;;;;;N;;;;;
++0631;ARABIC LETTER REH;Lo;0;AL;;;;;N;ARABIC LETTER RA;;;;
++0632;ARABIC LETTER ZAIN;Lo;0;AL;;;;;N;;;;;
++0633;ARABIC LETTER SEEN;Lo;0;AL;;;;;N;;;;;
++0634;ARABIC LETTER SHEEN;Lo;0;AL;;;;;N;;;;;
++0635;ARABIC LETTER SAD;Lo;0;AL;;;;;N;;;;;
++0636;ARABIC LETTER DAD;Lo;0;AL;;;;;N;;;;;
++0637;ARABIC LETTER TAH;Lo;0;AL;;;;;N;;;;;
++0638;ARABIC LETTER ZAH;Lo;0;AL;;;;;N;ARABIC LETTER DHAH;;;;
++0639;ARABIC LETTER AIN;Lo;0;AL;;;;;N;;;;;
++063A;ARABIC LETTER GHAIN;Lo;0;AL;;;;;N;;;;;
++0640;ARABIC TATWEEL;Lm;0;AL;;;;;N;;;;;
++0641;ARABIC LETTER FEH;Lo;0;AL;;;;;N;ARABIC LETTER FA;;;;
++0642;ARABIC LETTER QAF;Lo;0;AL;;;;;N;;;;;
++0643;ARABIC LETTER KAF;Lo;0;AL;;;;;N;ARABIC LETTER CAF;;;;
++0644;ARABIC LETTER LAM;Lo;0;AL;;;;;N;;;;;
++0645;ARABIC LETTER MEEM;Lo;0;AL;;;;;N;;;;;
++0646;ARABIC LETTER NOON;Lo;0;AL;;;;;N;;;;;
++0647;ARABIC LETTER HEH;Lo;0;AL;;;;;N;ARABIC LETTER HA;;;;
++0648;ARABIC LETTER WAW;Lo;0;AL;;;;;N;;;;;
++0649;ARABIC LETTER ALEF MAKSURA;Lo;0;AL;;;;;N;ARABIC LETTER ALEF MAQSURAH;;;;
++064A;ARABIC LETTER YEH;Lo;0;AL;;;;;N;ARABIC LETTER YA;;;;
++064B;ARABIC FATHATAN;Mn;27;NSM;;;;;N;;;;;
++064C;ARABIC DAMMATAN;Mn;28;NSM;;;;;N;;;;;
++064D;ARABIC KASRATAN;Mn;29;NSM;;;;;N;;;;;
++064E;ARABIC FATHA;Mn;30;NSM;;;;;N;ARABIC FATHAH;;;;
++064F;ARABIC DAMMA;Mn;31;NSM;;;;;N;ARABIC DAMMAH;;;;
++0650;ARABIC KASRA;Mn;32;NSM;;;;;N;ARABIC KASRAH;;;;
++0651;ARABIC SHADDA;Mn;33;NSM;;;;;N;ARABIC SHADDAH;;;;
++0652;ARABIC SUKUN;Mn;34;NSM;;;;;N;;;;;
++0653;ARABIC MADDAH ABOVE;Mn;230;NSM;;;;;N;;;;;
++0654;ARABIC HAMZA ABOVE;Mn;230;NSM;;;;;N;;;;;
++0655;ARABIC HAMZA BELOW;Mn;220;NSM;;;;;N;;;;;
++0656;ARABIC SUBSCRIPT ALEF;Mn;220;NSM;;;;;N;;;;;
++0657;ARABIC INVERTED DAMMA;Mn;230;NSM;;;;;N;;;;;
++0658;ARABIC MARK NOON GHUNNA;Mn;230;NSM;;;;;N;;;;;
++0660;ARABIC-INDIC DIGIT ZERO;Nd;0;AN;;0;0;0;N;;;;;
++0661;ARABIC-INDIC DIGIT ONE;Nd;0;AN;;1;1;1;N;;;;;
++0662;ARABIC-INDIC DIGIT TWO;Nd;0;AN;;2;2;2;N;;;;;
++0663;ARABIC-INDIC DIGIT THREE;Nd;0;AN;;3;3;3;N;;;;;
++0664;ARABIC-INDIC DIGIT FOUR;Nd;0;AN;;4;4;4;N;;;;;
++0665;ARABIC-INDIC DIGIT FIVE;Nd;0;AN;;5;5;5;N;;;;;
++0666;ARABIC-INDIC DIGIT SIX;Nd;0;AN;;6;6;6;N;;;;;
++0667;ARABIC-INDIC DIGIT SEVEN;Nd;0;AN;;7;7;7;N;;;;;
++0668;ARABIC-INDIC DIGIT EIGHT;Nd;0;AN;;8;8;8;N;;;;;
++0669;ARABIC-INDIC DIGIT NINE;Nd;0;AN;;9;9;9;N;;;;;
++066A;ARABIC PERCENT SIGN;Po;0;ET;;;;;N;;;;;
++066B;ARABIC DECIMAL SEPARATOR;Po;0;AN;;;;;N;;;;;
++066C;ARABIC THOUSANDS SEPARATOR;Po;0;AN;;;;;N;;;;;
++066D;ARABIC FIVE POINTED STAR;Po;0;AL;;;;;N;;;;;
++066E;ARABIC LETTER DOTLESS BEH;Lo;0;AL;;;;;N;;;;;
++066F;ARABIC LETTER DOTLESS QAF;Lo;0;AL;;;;;N;;;;;
++0670;ARABIC LETTER SUPERSCRIPT ALEF;Mn;35;NSM;;;;;N;ARABIC ALEF ABOVE;;;;
++0671;ARABIC LETTER ALEF WASLA;Lo;0;AL;;;;;N;ARABIC LETTER HAMZAT WASL ON ALEF;;;;
++0672;ARABIC LETTER ALEF WITH WAVY HAMZA ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER WAVY HAMZAH ON ALEF;;;;
++0673;ARABIC LETTER ALEF WITH WAVY HAMZA BELOW;Lo;0;AL;;;;;N;ARABIC LETTER WAVY HAMZAH UNDER ALEF;;;;
++0674;ARABIC LETTER HIGH HAMZA;Lo;0;AL;;;;;N;ARABIC LETTER HIGH HAMZAH;;;;
++0675;ARABIC LETTER HIGH HAMZA ALEF;Lo;0;AL;&lt;compat&gt; 0627 0674;;;;N;ARABIC LETTER HIGH HAMZAH ALEF;;;;
++0676;ARABIC LETTER HIGH HAMZA WAW;Lo;0;AL;&lt;compat&gt; 0648 0674;;;;N;ARABIC LETTER HIGH HAMZAH WAW;;;;
++0677;ARABIC LETTER U WITH HAMZA ABOVE;Lo;0;AL;&lt;compat&gt; 06C7 0674;;;;N;ARABIC LETTER HIGH HAMZAH WAW WITH DAMMAH;;;;
++0678;ARABIC LETTER HIGH HAMZA YEH;Lo;0;AL;&lt;compat&gt; 064A 0674;;;;N;ARABIC LETTER HIGH HAMZAH YA;;;;
++0679;ARABIC LETTER TTEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH SMALL TAH;;;;
++067A;ARABIC LETTER TTEHEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH TWO DOTS VERTICAL ABOVE;;;;
++067B;ARABIC LETTER BEEH;Lo;0;AL;;;;;N;ARABIC LETTER BAA WITH TWO DOTS VERTICAL BELOW;;;;
++067C;ARABIC LETTER TEH WITH RING;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH RING;;;;
++067D;ARABIC LETTER TEH WITH THREE DOTS ABOVE DOWNWARDS;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH THREE DOTS ABOVE DOWNWARD;;;;
++067E;ARABIC LETTER PEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH THREE DOTS BELOW;;;;
++067F;ARABIC LETTER TEHEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH FOUR DOTS ABOVE;;;;
++0680;ARABIC LETTER BEHEH;Lo;0;AL;;;;;N;ARABIC LETTER BAA WITH FOUR DOTS BELOW;;;;
++0681;ARABIC LETTER HAH WITH HAMZA ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER HAMZAH ON HAA;;;;
++0682;ARABIC LETTER HAH WITH TWO DOTS VERTICAL ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH TWO DOTS VERTICAL ABOVE;;;;
++0683;ARABIC LETTER NYEH;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH MIDDLE TWO DOTS;;;;
++0684;ARABIC LETTER DYEH;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH MIDDLE TWO DOTS VERTICAL;;;;
++0685;ARABIC LETTER HAH WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH THREE DOTS ABOVE;;;;
++0686;ARABIC LETTER TCHEH;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH MIDDLE THREE DOTS DOWNWARD;;;;
++0687;ARABIC LETTER TCHEHEH;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH MIDDLE FOUR DOTS;;;;
++0688;ARABIC LETTER DDAL;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH SMALL TAH;;;;
++0689;ARABIC LETTER DAL WITH RING;Lo;0;AL;;;;;N;;;;;
++068A;ARABIC LETTER DAL WITH DOT BELOW;Lo;0;AL;;;;;N;;;;;
++068B;ARABIC LETTER DAL WITH DOT BELOW AND SMALL TAH;Lo;0;AL;;;;;N;;;;;
++068C;ARABIC LETTER DAHAL;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH TWO DOTS ABOVE;;;;
++068D;ARABIC LETTER DDAHAL;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH TWO DOTS BELOW;;;;
++068E;ARABIC LETTER DUL;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH THREE DOTS ABOVE;;;;
++068F;ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARDS;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARD;;;;
++0690;ARABIC LETTER DAL WITH FOUR DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
++0691;ARABIC LETTER RREH;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH SMALL TAH;;;;
++0692;ARABIC LETTER REH WITH SMALL V;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH SMALL V;;;;
++0693;ARABIC LETTER REH WITH RING;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH RING;;;;
++0694;ARABIC LETTER REH WITH DOT BELOW;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH DOT BELOW;;;;
++0695;ARABIC LETTER REH WITH SMALL V BELOW;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH SMALL V BELOW;;;;
++0696;ARABIC LETTER REH WITH DOT BELOW AND DOT ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH DOT BELOW AND DOT ABOVE;;;;
++0697;ARABIC LETTER REH WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH TWO DOTS ABOVE;;;;
++0698;ARABIC LETTER JEH;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH THREE DOTS ABOVE;;;;
++0699;ARABIC LETTER REH WITH FOUR DOTS ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH FOUR DOTS ABOVE;;;;
++069A;ARABIC LETTER SEEN WITH DOT BELOW AND DOT ABOVE;Lo;0;AL;;;;;N;;;;;
++069B;ARABIC LETTER SEEN WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;;;;;
++069C;ARABIC LETTER SEEN WITH THREE DOTS BELOW AND THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
++069D;ARABIC LETTER SAD WITH TWO DOTS BELOW;Lo;0;AL;;;;;N;;;;;
++069E;ARABIC LETTER SAD WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
++069F;ARABIC LETTER TAH WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
++06A0;ARABIC LETTER AIN WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
++06A1;ARABIC LETTER DOTLESS FEH;Lo;0;AL;;;;;N;ARABIC LETTER DOTLESS FA;;;;
++06A2;ARABIC LETTER FEH WITH DOT MOVED BELOW;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH DOT MOVED BELOW;;;;
++06A3;ARABIC LETTER FEH WITH DOT BELOW;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH DOT BELOW;;;;
++06A4;ARABIC LETTER VEH;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH THREE DOTS ABOVE;;;;
++06A5;ARABIC LETTER FEH WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH THREE DOTS BELOW;;;;
++06A6;ARABIC LETTER PEHEH;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH FOUR DOTS ABOVE;;;;
++06A7;ARABIC LETTER QAF WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;;
++06A8;ARABIC LETTER QAF WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
++06A9;ARABIC LETTER KEHEH;Lo;0;AL;;;;;N;ARABIC LETTER OPEN CAF;;;;
++06AA;ARABIC LETTER SWASH KAF;Lo;0;AL;;;;;N;ARABIC LETTER SWASH CAF;;;;
++06AB;ARABIC LETTER KAF WITH RING;Lo;0;AL;;;;;N;ARABIC LETTER CAF WITH RING;;;;
++06AC;ARABIC LETTER KAF WITH DOT ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER CAF WITH DOT ABOVE;;;;
++06AD;ARABIC LETTER NG;Lo;0;AL;;;;;N;ARABIC LETTER CAF WITH THREE DOTS ABOVE;;;;
++06AE;ARABIC LETTER KAF WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;ARABIC LETTER CAF WITH THREE DOTS BELOW;;;;
++06AF;ARABIC LETTER GAF;Lo;0;AL;;;;;N;;*;;;
++06B0;ARABIC LETTER GAF WITH RING;Lo;0;AL;;;;;N;;;;;
++06B1;ARABIC LETTER NGOEH;Lo;0;AL;;;;;N;ARABIC LETTER GAF WITH TWO DOTS ABOVE;;;;
++06B2;ARABIC LETTER GAF WITH TWO DOTS BELOW;Lo;0;AL;;;;;N;;;;;
++06B3;ARABIC LETTER GUEH;Lo;0;AL;;;;;N;ARABIC LETTER GAF WITH TWO DOTS VERTICAL BELOW;;;;
++06B4;ARABIC LETTER GAF WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
++06B5;ARABIC LETTER LAM WITH SMALL V;Lo;0;AL;;;;;N;;;;;
++06B6;ARABIC LETTER LAM WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;;
++06B7;ARABIC LETTER LAM WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
++06B8;ARABIC LETTER LAM WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;;;;;
++06B9;ARABIC LETTER NOON WITH DOT BELOW;Lo;0;AL;;;;;N;;;;;
++06BA;ARABIC LETTER NOON GHUNNA;Lo;0;AL;;;;;N;ARABIC LETTER DOTLESS NOON;;;;
++06BB;ARABIC LETTER RNOON;Lo;0;AL;;;;;N;ARABIC LETTER DOTLESS NOON WITH SMALL TAH;;;;
++06BC;ARABIC LETTER NOON WITH RING;Lo;0;AL;;;;;N;;;;;
++06BD;ARABIC LETTER NOON WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
++06BE;ARABIC LETTER HEH DOACHASHMEE;Lo;0;AL;;;;;N;ARABIC LETTER KNOTTED HA;;;;
++06BF;ARABIC LETTER TCHEH WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;;
++06C0;ARABIC LETTER HEH WITH YEH ABOVE;Lo;0;AL;06D5 0654;;;;N;ARABIC LETTER HAMZAH ON HA;;;;
++06C1;ARABIC LETTER HEH GOAL;Lo;0;AL;;;;;N;ARABIC LETTER HA GOAL;;;;
++06C2;ARABIC LETTER HEH GOAL WITH HAMZA ABOVE;Lo;0;AL;06C1 0654;;;;N;ARABIC LETTER HAMZAH ON HA GOAL;;;;
++06C3;ARABIC LETTER TEH MARBUTA GOAL;Lo;0;AL;;;;;N;ARABIC LETTER TAA MARBUTAH GOAL;;;;
++06C4;ARABIC LETTER WAW WITH RING;Lo;0;AL;;;;;N;;;;;
++06C5;ARABIC LETTER KIRGHIZ OE;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH BAR;;;;
++06C6;ARABIC LETTER OE;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH SMALL V;;;;
++06C7;ARABIC LETTER U;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH DAMMAH;;;;
++06C8;ARABIC LETTER YU;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH ALEF ABOVE;;;;
++06C9;ARABIC LETTER KIRGHIZ YU;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH INVERTED SMALL V;;;;
++06CA;ARABIC LETTER WAW WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
++06CB;ARABIC LETTER VE;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH THREE DOTS ABOVE;;;;
++06CC;ARABIC LETTER FARSI YEH;Lo;0;AL;;;;;N;ARABIC LETTER DOTLESS YA;;;;
++06CD;ARABIC LETTER YEH WITH TAIL;Lo;0;AL;;;;;N;ARABIC LETTER YA WITH TAIL;;;;
++06CE;ARABIC LETTER YEH WITH SMALL V;Lo;0;AL;;;;;N;ARABIC LETTER YA WITH SMALL V;;;;
++06CF;ARABIC LETTER WAW WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;;
++06D0;ARABIC LETTER E;Lo;0;AL;;;;;N;ARABIC LETTER YA WITH TWO DOTS VERTICAL BELOW;*;;;
++06D1;ARABIC LETTER YEH WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;ARABIC LETTER YA WITH THREE DOTS BELOW;;;;
++06D2;ARABIC LETTER YEH BARREE;Lo;0;AL;;;;;N;ARABIC LETTER YA BARREE;;;;
++06D3;ARABIC LETTER YEH BARREE WITH HAMZA ABOVE;Lo;0;AL;06D2 0654;;;;N;ARABIC LETTER HAMZAH ON YA BARREE;;;;
++06D4;ARABIC FULL STOP;Po;0;AL;;;;;N;ARABIC PERIOD;;;;
++06D5;ARABIC LETTER AE;Lo;0;AL;;;;;N;;;;;
++06D6;ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA;Mn;230;NSM;;;;;N;;;;;
++06D7;ARABIC SMALL HIGH LIGATURE QAF WITH LAM WITH ALEF MAKSURA;Mn;230;NSM;;;;;N;;;;;
++06D8;ARABIC SMALL HIGH MEEM INITIAL FORM;Mn;230;NSM;;;;;N;;;;;
++06D9;ARABIC SMALL HIGH LAM ALEF;Mn;230;NSM;;;;;N;;;;;
++06DA;ARABIC SMALL HIGH JEEM;Mn;230;NSM;;;;;N;;;;;
++06DB;ARABIC SMALL HIGH THREE DOTS;Mn;230;NSM;;;;;N;;;;;
++06DC;ARABIC SMALL HIGH SEEN;Mn;230;NSM;;;;;N;;;;;
++06DD;ARABIC END OF AYAH;Cf;0;AL;;;;;N;;;;;
++06DE;ARABIC START OF RUB EL HIZB;Me;0;NSM;;;;;N;;;;;
++06DF;ARABIC SMALL HIGH ROUNDED ZERO;Mn;230;NSM;;;;;N;;;;;
++06E0;ARABIC SMALL HIGH UPRIGHT RECTANGULAR ZERO;Mn;230;NSM;;;;;N;;;;;
++06E1;ARABIC SMALL HIGH DOTLESS HEAD OF KHAH;Mn;230;NSM;;;;;N;;;;;
++06E2;ARABIC SMALL HIGH MEEM ISOLATED FORM;Mn;230;NSM;;;;;N;;;;;
++06E3;ARABIC SMALL LOW SEEN;Mn;220;NSM;;;;;N;;;;;
++06E4;ARABIC SMALL HIGH MADDA;Mn;230;NSM;;;;;N;;;;;
++06E5;ARABIC SMALL WAW;Lm;0;AL;;;;;N;;;;;
++06E6;ARABIC SMALL YEH;Lm;0;AL;;;;;N;;;;;
++06E7;ARABIC SMALL HIGH YEH;Mn;230;NSM;;;;;N;;;;;
++06E8;ARABIC SMALL HIGH NOON;Mn;230;NSM;;;;;N;;;;;
++06E9;ARABIC PLACE OF SAJDAH;So;0;ON;;;;;N;;;;;
++06EA;ARABIC EMPTY CENTRE LOW STOP;Mn;220;NSM;;;;;N;;;;;
++06EB;ARABIC EMPTY CENTRE HIGH STOP;Mn;230;NSM;;;;;N;;;;;
++06EC;ARABIC ROUNDED HIGH STOP WITH FILLED CENTRE;Mn;230;NSM;;;;;N;;;;;
++06ED;ARABIC SMALL LOW MEEM;Mn;220;NSM;;;;;N;;;;;
++06EE;ARABIC LETTER DAL WITH INVERTED V;Lo;0;AL;;;;;N;;;;;
++06EF;ARABIC LETTER REH WITH INVERTED V;Lo;0;AL;;;;;N;;;;;
++06F0;EXTENDED ARABIC-INDIC DIGIT ZERO;Nd;0;EN;;0;0;0;N;EASTERN ARABIC-INDIC DIGIT ZERO;;;;
++06F1;EXTENDED ARABIC-INDIC DIGIT ONE;Nd;0;EN;;1;1;1;N;EASTERN ARABIC-INDIC DIGIT ONE;;;;
++06F2;EXTENDED ARABIC-INDIC DIGIT TWO;Nd;0;EN;;2;2;2;N;EASTERN ARABIC-INDIC DIGIT TWO;;;;
++06F3;EXTENDED ARABIC-INDIC DIGIT THREE;Nd;0;EN;;3;3;3;N;EASTERN ARABIC-INDIC DIGIT THREE;;;;
++06F4;EXTENDED ARABIC-INDIC DIGIT FOUR;Nd;0;EN;;4;4;4;N;EASTERN ARABIC-INDIC DIGIT FOUR;;;;
++06F5;EXTENDED ARABIC-INDIC DIGIT FIVE;Nd;0;EN;;5;5;5;N;EASTERN ARABIC-INDIC DIGIT FIVE;;;;
++06F6;EXTENDED ARABIC-INDIC DIGIT SIX;Nd;0;EN;;6;6;6;N;EASTERN ARABIC-INDIC DIGIT SIX;;;;
++06F7;EXTENDED ARABIC-INDIC DIGIT SEVEN;Nd;0;EN;;7;7;7;N;EASTERN ARABIC-INDIC DIGIT SEVEN;;;;
++06F8;EXTENDED ARABIC-INDIC DIGIT EIGHT;Nd;0;EN;;8;8;8;N;EASTERN ARABIC-INDIC DIGIT EIGHT;;;;
++06F9;EXTENDED ARABIC-INDIC DIGIT NINE;Nd;0;EN;;9;9;9;N;EASTERN ARABIC-INDIC DIGIT NINE;;;;
++06FA;ARABIC LETTER SHEEN WITH DOT BELOW;Lo;0;AL;;;;;N;;;;;
++06FB;ARABIC LETTER DAD WITH DOT BELOW;Lo;0;AL;;;;;N;;;;;
++06FC;ARABIC LETTER GHAIN WITH DOT BELOW;Lo;0;AL;;;;;N;;;;;
++06FD;ARABIC SIGN SINDHI AMPERSAND;So;0;AL;;;;;N;;;;;
++06FE;ARABIC SIGN SINDHI POSTPOSITION MEN;So;0;AL;;;;;N;;;;;
++06FF;ARABIC LETTER HEH WITH INVERTED V;Lo;0;AL;;;;;N;;;;;
++FB50;ARABIC LETTER ALEF WASLA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0671;;;;N;;;;;
++FB51;ARABIC LETTER ALEF WASLA FINAL FORM;Lo;0;AL;&lt;final&gt; 0671;;;;N;;;;;
++FB52;ARABIC LETTER BEEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 067B;;;;N;;;;;
++FB53;ARABIC LETTER BEEH FINAL FORM;Lo;0;AL;&lt;final&gt; 067B;;;;N;;;;;
++FB54;ARABIC LETTER BEEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 067B;;;;N;;;;;
++FB55;ARABIC LETTER BEEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 067B;;;;N;;;;;
++FB56;ARABIC LETTER PEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 067E;;;;N;;;;;
++FB57;ARABIC LETTER PEH FINAL FORM;Lo;0;AL;&lt;final&gt; 067E;;;;N;;;;;
++FB58;ARABIC LETTER PEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 067E;;;;N;;;;;
++FB59;ARABIC LETTER PEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 067E;;;;N;;;;;
++FB5A;ARABIC LETTER BEHEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0680;;;;N;;;;;
++FB5B;ARABIC LETTER BEHEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0680;;;;N;;;;;
++FB5C;ARABIC LETTER BEHEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0680;;;;N;;;;;
++FB5D;ARABIC LETTER BEHEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0680;;;;N;;;;;
++FB5E;ARABIC LETTER TTEHEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 067A;;;;N;;;;;
++FB5F;ARABIC LETTER TTEHEH FINAL FORM;Lo;0;AL;&lt;final&gt; 067A;;;;N;;;;;
++FB60;ARABIC LETTER TTEHEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 067A;;;;N;;;;;
++FB61;ARABIC LETTER TTEHEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 067A;;;;N;;;;;
++FB62;ARABIC LETTER TEHEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 067F;;;;N;;;;;
++FB63;ARABIC LETTER TEHEH FINAL FORM;Lo;0;AL;&lt;final&gt; 067F;;;;N;;;;;
++FB64;ARABIC LETTER TEHEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 067F;;;;N;;;;;
++FB65;ARABIC LETTER TEHEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 067F;;;;N;;;;;
++FB66;ARABIC LETTER TTEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0679;;;;N;;;;;
++FB67;ARABIC LETTER TTEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0679;;;;N;;;;;
++FB68;ARABIC LETTER TTEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0679;;;;N;;;;;
++FB69;ARABIC LETTER TTEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0679;;;;N;;;;;
++FB6A;ARABIC LETTER VEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 06A4;;;;N;;;;;
++FB6B;ARABIC LETTER VEH FINAL FORM;Lo;0;AL;&lt;final&gt; 06A4;;;;N;;;;;
++FB6C;ARABIC LETTER VEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 06A4;;;;N;;;;;
++FB6D;ARABIC LETTER VEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 06A4;;;;N;;;;;
++FB6E;ARABIC LETTER PEHEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 06A6;;;;N;;;;;
++FB6F;ARABIC LETTER PEHEH FINAL FORM;Lo;0;AL;&lt;final&gt; 06A6;;;;N;;;;;
++FB70;ARABIC LETTER PEHEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 06A6;;;;N;;;;;
++FB71;ARABIC LETTER PEHEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 06A6;;;;N;;;;;
++FB72;ARABIC LETTER DYEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0684;;;;N;;;;;
++FB73;ARABIC LETTER DYEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0684;;;;N;;;;;
++FB74;ARABIC LETTER DYEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0684;;;;N;;;;;
++FB75;ARABIC LETTER DYEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0684;;;;N;;;;;
++FB76;ARABIC LETTER NYEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0683;;;;N;;;;;
++FB77;ARABIC LETTER NYEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0683;;;;N;;;;;
++FB78;ARABIC LETTER NYEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0683;;;;N;;;;;
++FB79;ARABIC LETTER NYEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0683;;;;N;;;;;
++FB7A;ARABIC LETTER TCHEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0686;;;;N;;;;;
++FB7B;ARABIC LETTER TCHEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0686;;;;N;;;;;
++FB7C;ARABIC LETTER TCHEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0686;;;;N;;;;;
++FB7D;ARABIC LETTER TCHEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0686;;;;N;;;;;
++FB7E;ARABIC LETTER TCHEHEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0687;;;;N;;;;;
++FB7F;ARABIC LETTER TCHEHEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0687;;;;N;;;;;
++FB80;ARABIC LETTER TCHEHEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0687;;;;N;;;;;
++FB81;ARABIC LETTER TCHEHEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0687;;;;N;;;;;
++FB82;ARABIC LETTER DDAHAL ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 068D;;;;N;;;;;
++FB83;ARABIC LETTER DDAHAL FINAL FORM;Lo;0;AL;&lt;final&gt; 068D;;;;N;;;;;
++FB84;ARABIC LETTER DAHAL ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 068C;;;;N;;;;;
++FB85;ARABIC LETTER DAHAL FINAL FORM;Lo;0;AL;&lt;final&gt; 068C;;;;N;;;;;
++FB86;ARABIC LETTER DUL ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 068E;;;;N;;;;;
++FB87;ARABIC LETTER DUL FINAL FORM;Lo;0;AL;&lt;final&gt; 068E;;;;N;;;;;
++FB88;ARABIC LETTER DDAL ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0688;;;;N;;;;;
++FB89;ARABIC LETTER DDAL FINAL FORM;Lo;0;AL;&lt;final&gt; 0688;;;;N;;;;;
++FB8A;ARABIC LETTER JEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0698;;;;N;;;;;
++FB8B;ARABIC LETTER JEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0698;;;;N;;;;;
++FB8C;ARABIC LETTER RREH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0691;;;;N;;;;;
++FB8D;ARABIC LETTER RREH FINAL FORM;Lo;0;AL;&lt;final&gt; 0691;;;;N;;;;;
++FB8E;ARABIC LETTER KEHEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 06A9;;;;N;;;;;
++FB8F;ARABIC LETTER KEHEH FINAL FORM;Lo;0;AL;&lt;final&gt; 06A9;;;;N;;;;;
++FB90;ARABIC LETTER KEHEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 06A9;;;;N;;;;;
++FB91;ARABIC LETTER KEHEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 06A9;;;;N;;;;;
++FB92;ARABIC LETTER GAF ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 06AF;;;;N;;;;;
++FB93;ARABIC LETTER GAF FINAL FORM;Lo;0;AL;&lt;final&gt; 06AF;;;;N;;;;;
++FB94;ARABIC LETTER GAF INITIAL FORM;Lo;0;AL;&lt;initial&gt; 06AF;;;;N;;;;;
++FB95;ARABIC LETTER GAF MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 06AF;;;;N;;;;;
++FB96;ARABIC LETTER GUEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 06B3;;;;N;;;;;
++FB97;ARABIC LETTER GUEH FINAL FORM;Lo;0;AL;&lt;final&gt; 06B3;;;;N;;;;;
++FB98;ARABIC LETTER GUEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 06B3;;;;N;;;;;
++FB99;ARABIC LETTER GUEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 06B3;;;;N;;;;;
++FB9A;ARABIC LETTER NGOEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 06B1;;;;N;;;;;
++FB9B;ARABIC LETTER NGOEH FINAL FORM;Lo;0;AL;&lt;final&gt; 06B1;;;;N;;;;;
++FB9C;ARABIC LETTER NGOEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 06B1;;;;N;;;;;
++FB9D;ARABIC LETTER NGOEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 06B1;;;;N;;;;;
++FB9E;ARABIC LETTER NOON GHUNNA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 06BA;;;;N;;;;;
++FB9F;ARABIC LETTER NOON GHUNNA FINAL FORM;Lo;0;AL;&lt;final&gt; 06BA;;;;N;;;;;
++FBA0;ARABIC LETTER RNOON ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 06BB;;;;N;;;;;
++FBA1;ARABIC LETTER RNOON FINAL FORM;Lo;0;AL;&lt;final&gt; 06BB;;;;N;;;;;
++FBA2;ARABIC LETTER RNOON INITIAL FORM;Lo;0;AL;&lt;initial&gt; 06BB;;;;N;;;;;
++FBA3;ARABIC LETTER RNOON MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 06BB;;;;N;;;;;
++FBA4;ARABIC LETTER HEH WITH YEH ABOVE ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 06C0;;;;N;;;;;
++FBA5;ARABIC LETTER HEH WITH YEH ABOVE FINAL FORM;Lo;0;AL;&lt;final&gt; 06C0;;;;N;;;;;
++FBA6;ARABIC LETTER HEH GOAL ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 06C1;;;;N;;;;;
++FBA7;ARABIC LETTER HEH GOAL FINAL FORM;Lo;0;AL;&lt;final&gt; 06C1;;;;N;;;;;
++FBA8;ARABIC LETTER HEH GOAL INITIAL FORM;Lo;0;AL;&lt;initial&gt; 06C1;;;;N;;;;;
++FBA9;ARABIC LETTER HEH GOAL MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 06C1;;;;N;;;;;
++FBAA;ARABIC LETTER HEH DOACHASHMEE ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 06BE;;;;N;;;;;
++FBAB;ARABIC LETTER HEH DOACHASHMEE FINAL FORM;Lo;0;AL;&lt;final&gt; 06BE;;;;N;;;;;
++FBAC;ARABIC LETTER HEH DOACHASHMEE INITIAL FORM;Lo;0;AL;&lt;initial&gt; 06BE;;;;N;;;;;
++FBAD;ARABIC LETTER HEH DOACHASHMEE MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 06BE;;;;N;;;;;
++FBAE;ARABIC LETTER YEH BARREE ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 06D2;;;;N;;;;;
++FBAF;ARABIC LETTER YEH BARREE FINAL FORM;Lo;0;AL;&lt;final&gt; 06D2;;;;N;;;;;
++FBB0;ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 06D3;;;;N;;;;;
++FBB1;ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM;Lo;0;AL;&lt;final&gt; 06D3;;;;N;;;;;
++FBD3;ARABIC LETTER NG ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 06AD;;;;N;;;;;
++FBD4;ARABIC LETTER NG FINAL FORM;Lo;0;AL;&lt;final&gt; 06AD;;;;N;;;;;
++FBD5;ARABIC LETTER NG INITIAL FORM;Lo;0;AL;&lt;initial&gt; 06AD;;;;N;;;;;
++FBD6;ARABIC LETTER NG MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 06AD;;;;N;;;;;
++FBD7;ARABIC LETTER U ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 06C7;;;;N;;;;;
++FBD8;ARABIC LETTER U FINAL FORM;Lo;0;AL;&lt;final&gt; 06C7;;;;N;;;;;
++FBD9;ARABIC LETTER OE ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 06C6;;;;N;;;;;
++FBDA;ARABIC LETTER OE FINAL FORM;Lo;0;AL;&lt;final&gt; 06C6;;;;N;;;;;
++FBDB;ARABIC LETTER YU ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 06C8;;;;N;;;;;
++FBDC;ARABIC LETTER YU FINAL FORM;Lo;0;AL;&lt;final&gt; 06C8;;;;N;;;;;
++FBDD;ARABIC LETTER U WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0677;;;;N;;;;;
++FBDE;ARABIC LETTER VE ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 06CB;;;;N;;;;;
++FBDF;ARABIC LETTER VE FINAL FORM;Lo;0;AL;&lt;final&gt; 06CB;;;;N;;;;;
++FBE0;ARABIC LETTER KIRGHIZ OE ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 06C5;;;;N;;;;;
++FBE1;ARABIC LETTER KIRGHIZ OE FINAL FORM;Lo;0;AL;&lt;final&gt; 06C5;;;;N;;;;;
++FBE2;ARABIC LETTER KIRGHIZ YU ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 06C9;;;;N;;;;;
++FBE3;ARABIC LETTER KIRGHIZ YU FINAL FORM;Lo;0;AL;&lt;final&gt; 06C9;;;;N;;;;;
++FBE4;ARABIC LETTER E ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 06D0;;;;N;;;;;
++FBE5;ARABIC LETTER E FINAL FORM;Lo;0;AL;&lt;final&gt; 06D0;;;;N;;;;;
++FBE6;ARABIC LETTER E INITIAL FORM;Lo;0;AL;&lt;initial&gt; 06D0;;;;N;;;;;
++FBE7;ARABIC LETTER E MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 06D0;;;;N;;;;;
++FBE8;ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0649;;;;N;;;;;
++FBE9;ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0649;;;;N;;;;;
++FBEA;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0626 0627;;;;N;;;;;
++FBEB;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF FINAL FORM;Lo;0;AL;&lt;final&gt; 0626 0627;;;;N;;;;;
++FBEC;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0626 06D5;;;;N;;;;;
++FBED;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE FINAL FORM;Lo;0;AL;&lt;final&gt; 0626 06D5;;;;N;;;;;
++FBEE;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0626 0648;;;;N;;;;;
++FBEF;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW FINAL FORM;Lo;0;AL;&lt;final&gt; 0626 0648;;;;N;;;;;
++FBF0;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0626 06C7;;;;N;;;;;
++FBF1;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U FINAL FORM;Lo;0;AL;&lt;final&gt; 0626 06C7;;;;N;;;;;
++FBF2;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0626 06C6;;;;N;;;;;
++FBF3;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE FINAL FORM;Lo;0;AL;&lt;final&gt; 0626 06C6;;;;N;;;;;
++FBF4;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0626 06C8;;;;N;;;;;
++FBF5;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU FINAL FORM;Lo;0;AL;&lt;final&gt; 0626 06C8;;;;N;;;;;
++FBF6;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0626 06D0;;;;N;;;;;
++FBF7;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E FINAL FORM;Lo;0;AL;&lt;final&gt; 0626 06D0;;;;N;;;;;
++FBF8;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0626 06D0;;;;N;;;;;
++FBF9;ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0626 0649;;;;N;;;;;
++FBFA;ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 0626 0649;;;;N;;;;;
++FBFB;ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0626 0649;;;;N;;;;;
++FBFC;ARABIC LETTER FARSI YEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 06CC;;;;N;;;;;
++FBFD;ARABIC LETTER FARSI YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 06CC;;;;N;;;;;
++FBFE;ARABIC LETTER FARSI YEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 06CC;;;;N;;;;;
++FBFF;ARABIC LETTER FARSI YEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 06CC;;;;N;;;;;
++FC00;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0626 062C;;;;N;;;;;
++FC01;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0626 062D;;;;N;;;;;
++FC02;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0626 0645;;;;N;;;;;
++FC03;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0626 0649;;;;N;;;;;
++FC04;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0626 064A;;;;N;;;;;
++FC05;ARABIC LIGATURE BEH WITH JEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0628 062C;;;;N;;;;;
++FC06;ARABIC LIGATURE BEH WITH HAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0628 062D;;;;N;;;;;
++FC07;ARABIC LIGATURE BEH WITH KHAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0628 062E;;;;N;;;;;
++FC08;ARABIC LIGATURE BEH WITH MEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0628 0645;;;;N;;;;;
++FC09;ARABIC LIGATURE BEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0628 0649;;;;N;;;;;
++FC0A;ARABIC LIGATURE BEH WITH YEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0628 064A;;;;N;;;;;
++FC0B;ARABIC LIGATURE TEH WITH JEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062A 062C;;;;N;;;;;
++FC0C;ARABIC LIGATURE TEH WITH HAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062A 062D;;;;N;;;;;
++FC0D;ARABIC LIGATURE TEH WITH KHAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062A 062E;;;;N;;;;;
++FC0E;ARABIC LIGATURE TEH WITH MEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062A 0645;;;;N;;;;;
++FC0F;ARABIC LIGATURE TEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062A 0649;;;;N;;;;;
++FC10;ARABIC LIGATURE TEH WITH YEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062A 064A;;;;N;;;;;
++FC11;ARABIC LIGATURE THEH WITH JEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062B 062C;;;;N;;;;;
++FC12;ARABIC LIGATURE THEH WITH MEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062B 0645;;;;N;;;;;
++FC13;ARABIC LIGATURE THEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062B 0649;;;;N;;;;;
++FC14;ARABIC LIGATURE THEH WITH YEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062B 064A;;;;N;;;;;
++FC15;ARABIC LIGATURE JEEM WITH HAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062C 062D;;;;N;;;;;
++FC16;ARABIC LIGATURE JEEM WITH MEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062C 0645;;;;N;;;;;
++FC17;ARABIC LIGATURE HAH WITH JEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062D 062C;;;;N;;;;;
++FC18;ARABIC LIGATURE HAH WITH MEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062D 0645;;;;N;;;;;
++FC19;ARABIC LIGATURE KHAH WITH JEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062E 062C;;;;N;;;;;
++FC1A;ARABIC LIGATURE KHAH WITH HAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062E 062D;;;;N;;;;;
++FC1B;ARABIC LIGATURE KHAH WITH MEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062E 0645;;;;N;;;;;
++FC1C;ARABIC LIGATURE SEEN WITH JEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0633 062C;;;;N;;;;;
++FC1D;ARABIC LIGATURE SEEN WITH HAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0633 062D;;;;N;;;;;
++FC1E;ARABIC LIGATURE SEEN WITH KHAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0633 062E;;;;N;;;;;
++FC1F;ARABIC LIGATURE SEEN WITH MEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0633 0645;;;;N;;;;;
++FC20;ARABIC LIGATURE SAD WITH HAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0635 062D;;;;N;;;;;
++FC21;ARABIC LIGATURE SAD WITH MEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0635 0645;;;;N;;;;;
++FC22;ARABIC LIGATURE DAD WITH JEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0636 062C;;;;N;;;;;
++FC23;ARABIC LIGATURE DAD WITH HAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0636 062D;;;;N;;;;;
++FC24;ARABIC LIGATURE DAD WITH KHAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0636 062E;;;;N;;;;;
++FC25;ARABIC LIGATURE DAD WITH MEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0636 0645;;;;N;;;;;
++FC26;ARABIC LIGATURE TAH WITH HAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0637 062D;;;;N;;;;;
++FC27;ARABIC LIGATURE TAH WITH MEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0637 0645;;;;N;;;;;
++FC28;ARABIC LIGATURE ZAH WITH MEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0638 0645;;;;N;;;;;
++FC29;ARABIC LIGATURE AIN WITH JEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0639 062C;;;;N;;;;;
++FC2A;ARABIC LIGATURE AIN WITH MEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0639 0645;;;;N;;;;;
++FC2B;ARABIC LIGATURE GHAIN WITH JEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 063A 062C;;;;N;;;;;
++FC2C;ARABIC LIGATURE GHAIN WITH MEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 063A 0645;;;;N;;;;;
++FC2D;ARABIC LIGATURE FEH WITH JEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0641 062C;;;;N;;;;;
++FC2E;ARABIC LIGATURE FEH WITH HAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0641 062D;;;;N;;;;;
++FC2F;ARABIC LIGATURE FEH WITH KHAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0641 062E;;;;N;;;;;
++FC30;ARABIC LIGATURE FEH WITH MEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0641 0645;;;;N;;;;;
++FC31;ARABIC LIGATURE FEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0641 0649;;;;N;;;;;
++FC32;ARABIC LIGATURE FEH WITH YEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0641 064A;;;;N;;;;;
++FC33;ARABIC LIGATURE QAF WITH HAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0642 062D;;;;N;;;;;
++FC34;ARABIC LIGATURE QAF WITH MEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0642 0645;;;;N;;;;;
++FC35;ARABIC LIGATURE QAF WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0642 0649;;;;N;;;;;
++FC36;ARABIC LIGATURE QAF WITH YEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0642 064A;;;;N;;;;;
++FC37;ARABIC LIGATURE KAF WITH ALEF ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0643 0627;;;;N;;;;;
++FC38;ARABIC LIGATURE KAF WITH JEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0643 062C;;;;N;;;;;
++FC39;ARABIC LIGATURE KAF WITH HAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0643 062D;;;;N;;;;;
++FC3A;ARABIC LIGATURE KAF WITH KHAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0643 062E;;;;N;;;;;
++FC3B;ARABIC LIGATURE KAF WITH LAM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0643 0644;;;;N;;;;;
++FC3C;ARABIC LIGATURE KAF WITH MEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0643 0645;;;;N;;;;;
++FC3D;ARABIC LIGATURE KAF WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0643 0649;;;;N;;;;;
++FC3E;ARABIC LIGATURE KAF WITH YEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0643 064A;;;;N;;;;;
++FC3F;ARABIC LIGATURE LAM WITH JEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0644 062C;;;;N;;;;;
++FC40;ARABIC LIGATURE LAM WITH HAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0644 062D;;;;N;;;;;
++FC41;ARABIC LIGATURE LAM WITH KHAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0644 062E;;;;N;;;;;
++FC42;ARABIC LIGATURE LAM WITH MEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0644 0645;;;;N;;;;;
++FC43;ARABIC LIGATURE LAM WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0644 0649;;;;N;;;;;
++FC44;ARABIC LIGATURE LAM WITH YEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0644 064A;;;;N;;;;;
++FC45;ARABIC LIGATURE MEEM WITH JEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0645 062C;;;;N;;;;;
++FC46;ARABIC LIGATURE MEEM WITH HAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0645 062D;;;;N;;;;;
++FC47;ARABIC LIGATURE MEEM WITH KHAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0645 062E;;;;N;;;;;
++FC48;ARABIC LIGATURE MEEM WITH MEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0645 0645;;;;N;;;;;
++FC49;ARABIC LIGATURE MEEM WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0645 0649;;;;N;;;;;
++FC4A;ARABIC LIGATURE MEEM WITH YEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0645 064A;;;;N;;;;;
++FC4B;ARABIC LIGATURE NOON WITH JEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0646 062C;;;;N;;;;;
++FC4C;ARABIC LIGATURE NOON WITH HAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0646 062D;;;;N;;;;;
++FC4D;ARABIC LIGATURE NOON WITH KHAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0646 062E;;;;N;;;;;
++FC4E;ARABIC LIGATURE NOON WITH MEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0646 0645;;;;N;;;;;
++FC4F;ARABIC LIGATURE NOON WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0646 0649;;;;N;;;;;
++FC50;ARABIC LIGATURE NOON WITH YEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0646 064A;;;;N;;;;;
++FC51;ARABIC LIGATURE HEH WITH JEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0647 062C;;;;N;;;;;
++FC52;ARABIC LIGATURE HEH WITH MEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0647 0645;;;;N;;;;;
++FC53;ARABIC LIGATURE HEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0647 0649;;;;N;;;;;
++FC54;ARABIC LIGATURE HEH WITH YEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0647 064A;;;;N;;;;;
++FC55;ARABIC LIGATURE YEH WITH JEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 064A 062C;;;;N;;;;;
++FC56;ARABIC LIGATURE YEH WITH HAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 064A 062D;;;;N;;;;;
++FC57;ARABIC LIGATURE YEH WITH KHAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 064A 062E;;;;N;;;;;
++FC58;ARABIC LIGATURE YEH WITH MEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 064A 0645;;;;N;;;;;
++FC59;ARABIC LIGATURE YEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 064A 0649;;;;N;;;;;
++FC5A;ARABIC LIGATURE YEH WITH YEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 064A 064A;;;;N;;;;;
++FC5B;ARABIC LIGATURE THAL WITH SUPERSCRIPT ALEF ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0630 0670;;;;N;;;;;
++FC5C;ARABIC LIGATURE REH WITH SUPERSCRIPT ALEF ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0631 0670;;;;N;;;;;
++FC5D;ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0649 0670;;;;N;;;;;
++FC5E;ARABIC LIGATURE SHADDA WITH DAMMATAN ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0020 064C 0651;;;;N;;;;;
++FC5F;ARABIC LIGATURE SHADDA WITH KASRATAN ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0020 064D 0651;;;;N;;;;;
++FC60;ARABIC LIGATURE SHADDA WITH FATHA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0020 064E 0651;;;;N;;;;;
++FC61;ARABIC LIGATURE SHADDA WITH DAMMA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0020 064F 0651;;;;N;;;;;
++FC62;ARABIC LIGATURE SHADDA WITH KASRA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0020 0650 0651;;;;N;;;;;
++FC63;ARABIC LIGATURE SHADDA WITH SUPERSCRIPT ALEF ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0020 0651 0670;;;;N;;;;;
++FC64;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH REH FINAL FORM;Lo;0;AL;&lt;final&gt; 0626 0631;;;;N;;;;;
++FC65;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ZAIN FINAL FORM;Lo;0;AL;&lt;final&gt; 0626 0632;;;;N;;;;;
++FC66;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 0626 0645;;;;N;;;;;
++FC67;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH NOON FINAL FORM;Lo;0;AL;&lt;final&gt; 0626 0646;;;;N;;;;;
++FC68;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 0626 0649;;;;N;;;;;
++FC69;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0626 064A;;;;N;;;;;
++FC6A;ARABIC LIGATURE BEH WITH REH FINAL FORM;Lo;0;AL;&lt;final&gt; 0628 0631;;;;N;;;;;
++FC6B;ARABIC LIGATURE BEH WITH ZAIN FINAL FORM;Lo;0;AL;&lt;final&gt; 0628 0632;;;;N;;;;;
++FC6C;ARABIC LIGATURE BEH WITH MEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 0628 0645;;;;N;;;;;
++FC6D;ARABIC LIGATURE BEH WITH NOON FINAL FORM;Lo;0;AL;&lt;final&gt; 0628 0646;;;;N;;;;;
++FC6E;ARABIC LIGATURE BEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 0628 0649;;;;N;;;;;
++FC6F;ARABIC LIGATURE BEH WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0628 064A;;;;N;;;;;
++FC70;ARABIC LIGATURE TEH WITH REH FINAL FORM;Lo;0;AL;&lt;final&gt; 062A 0631;;;;N;;;;;
++FC71;ARABIC LIGATURE TEH WITH ZAIN FINAL FORM;Lo;0;AL;&lt;final&gt; 062A 0632;;;;N;;;;;
++FC72;ARABIC LIGATURE TEH WITH MEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 062A 0645;;;;N;;;;;
++FC73;ARABIC LIGATURE TEH WITH NOON FINAL FORM;Lo;0;AL;&lt;final&gt; 062A 0646;;;;N;;;;;
++FC74;ARABIC LIGATURE TEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 062A 0649;;;;N;;;;;
++FC75;ARABIC LIGATURE TEH WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 062A 064A;;;;N;;;;;
++FC76;ARABIC LIGATURE THEH WITH REH FINAL FORM;Lo;0;AL;&lt;final&gt; 062B 0631;;;;N;;;;;
++FC77;ARABIC LIGATURE THEH WITH ZAIN FINAL FORM;Lo;0;AL;&lt;final&gt; 062B 0632;;;;N;;;;;
++FC78;ARABIC LIGATURE THEH WITH MEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 062B 0645;;;;N;;;;;
++FC79;ARABIC LIGATURE THEH WITH NOON FINAL FORM;Lo;0;AL;&lt;final&gt; 062B 0646;;;;N;;;;;
++FC7A;ARABIC LIGATURE THEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 062B 0649;;;;N;;;;;
++FC7B;ARABIC LIGATURE THEH WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 062B 064A;;;;N;;;;;
++FC7C;ARABIC LIGATURE FEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 0641 0649;;;;N;;;;;
++FC7D;ARABIC LIGATURE FEH WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0641 064A;;;;N;;;;;
++FC7E;ARABIC LIGATURE QAF WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 0642 0649;;;;N;;;;;
++FC7F;ARABIC LIGATURE QAF WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0642 064A;;;;N;;;;;
++FC80;ARABIC LIGATURE KAF WITH ALEF FINAL FORM;Lo;0;AL;&lt;final&gt; 0643 0627;;;;N;;;;;
++FC81;ARABIC LIGATURE KAF WITH LAM FINAL FORM;Lo;0;AL;&lt;final&gt; 0643 0644;;;;N;;;;;
++FC82;ARABIC LIGATURE KAF WITH MEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 0643 0645;;;;N;;;;;
++FC83;ARABIC LIGATURE KAF WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 0643 0649;;;;N;;;;;
++FC84;ARABIC LIGATURE KAF WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0643 064A;;;;N;;;;;
++FC85;ARABIC LIGATURE LAM WITH MEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 0644 0645;;;;N;;;;;
++FC86;ARABIC LIGATURE LAM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 0644 0649;;;;N;;;;;
++FC87;ARABIC LIGATURE LAM WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0644 064A;;;;N;;;;;
++FC88;ARABIC LIGATURE MEEM WITH ALEF FINAL FORM;Lo;0;AL;&lt;final&gt; 0645 0627;;;;N;;;;;
++FC89;ARABIC LIGATURE MEEM WITH MEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 0645 0645;;;;N;;;;;
++FC8A;ARABIC LIGATURE NOON WITH REH FINAL FORM;Lo;0;AL;&lt;final&gt; 0646 0631;;;;N;;;;;
++FC8B;ARABIC LIGATURE NOON WITH ZAIN FINAL FORM;Lo;0;AL;&lt;final&gt; 0646 0632;;;;N;;;;;
++FC8C;ARABIC LIGATURE NOON WITH MEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 0646 0645;;;;N;;;;;
++FC8D;ARABIC LIGATURE NOON WITH NOON FINAL FORM;Lo;0;AL;&lt;final&gt; 0646 0646;;;;N;;;;;
++FC8E;ARABIC LIGATURE NOON WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 0646 0649;;;;N;;;;;
++FC8F;ARABIC LIGATURE NOON WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0646 064A;;;;N;;;;;
++FC90;ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF FINAL FORM;Lo;0;AL;&lt;final&gt; 0649 0670;;;;N;;;;;
++FC91;ARABIC LIGATURE YEH WITH REH FINAL FORM;Lo;0;AL;&lt;final&gt; 064A 0631;;;;N;;;;;
++FC92;ARABIC LIGATURE YEH WITH ZAIN FINAL FORM;Lo;0;AL;&lt;final&gt; 064A 0632;;;;N;;;;;
++FC93;ARABIC LIGATURE YEH WITH MEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 064A 0645;;;;N;;;;;
++FC94;ARABIC LIGATURE YEH WITH NOON FINAL FORM;Lo;0;AL;&lt;final&gt; 064A 0646;;;;N;;;;;
++FC95;ARABIC LIGATURE YEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 064A 0649;;;;N;;;;;
++FC96;ARABIC LIGATURE YEH WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 064A 064A;;;;N;;;;;
++FC97;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0626 062C;;;;N;;;;;
++FC98;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0626 062D;;;;N;;;;;
++FC99;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH KHAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0626 062E;;;;N;;;;;
++FC9A;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0626 0645;;;;N;;;;;
++FC9B;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0626 0647;;;;N;;;;;
++FC9C;ARABIC LIGATURE BEH WITH JEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0628 062C;;;;N;;;;;
++FC9D;ARABIC LIGATURE BEH WITH HAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0628 062D;;;;N;;;;;
++FC9E;ARABIC LIGATURE BEH WITH KHAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0628 062E;;;;N;;;;;
++FC9F;ARABIC LIGATURE BEH WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0628 0645;;;;N;;;;;
++FCA0;ARABIC LIGATURE BEH WITH HEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0628 0647;;;;N;;;;;
++FCA1;ARABIC LIGATURE TEH WITH JEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 062A 062C;;;;N;;;;;
++FCA2;ARABIC LIGATURE TEH WITH HAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 062A 062D;;;;N;;;;;
++FCA3;ARABIC LIGATURE TEH WITH KHAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 062A 062E;;;;N;;;;;
++FCA4;ARABIC LIGATURE TEH WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 062A 0645;;;;N;;;;;
++FCA5;ARABIC LIGATURE TEH WITH HEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 062A 0647;;;;N;;;;;
++FCA6;ARABIC LIGATURE THEH WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 062B 0645;;;;N;;;;;
++FCA7;ARABIC LIGATURE JEEM WITH HAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 062C 062D;;;;N;;;;;
++FCA8;ARABIC LIGATURE JEEM WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 062C 0645;;;;N;;;;;
++FCA9;ARABIC LIGATURE HAH WITH JEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 062D 062C;;;;N;;;;;
++FCAA;ARABIC LIGATURE HAH WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 062D 0645;;;;N;;;;;
++FCAB;ARABIC LIGATURE KHAH WITH JEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 062E 062C;;;;N;;;;;
++FCAC;ARABIC LIGATURE KHAH WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 062E 0645;;;;N;;;;;
++FCAD;ARABIC LIGATURE SEEN WITH JEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0633 062C;;;;N;;;;;
++FCAE;ARABIC LIGATURE SEEN WITH HAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0633 062D;;;;N;;;;;
++FCAF;ARABIC LIGATURE SEEN WITH KHAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0633 062E;;;;N;;;;;
++FCB0;ARABIC LIGATURE SEEN WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0633 0645;;;;N;;;;;
++FCB1;ARABIC LIGATURE SAD WITH HAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0635 062D;;;;N;;;;;
++FCB2;ARABIC LIGATURE SAD WITH KHAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0635 062E;;;;N;;;;;
++FCB3;ARABIC LIGATURE SAD WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0635 0645;;;;N;;;;;
++FCB4;ARABIC LIGATURE DAD WITH JEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0636 062C;;;;N;;;;;
++FCB5;ARABIC LIGATURE DAD WITH HAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0636 062D;;;;N;;;;;
++FCB6;ARABIC LIGATURE DAD WITH KHAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0636 062E;;;;N;;;;;
++FCB7;ARABIC LIGATURE DAD WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0636 0645;;;;N;;;;;
++FCB8;ARABIC LIGATURE TAH WITH HAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0637 062D;;;;N;;;;;
++FCB9;ARABIC LIGATURE ZAH WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0638 0645;;;;N;;;;;
++FCBA;ARABIC LIGATURE AIN WITH JEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0639 062C;;;;N;;;;;
++FCBB;ARABIC LIGATURE AIN WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0639 0645;;;;N;;;;;
++FCBC;ARABIC LIGATURE GHAIN WITH JEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 063A 062C;;;;N;;;;;
++FCBD;ARABIC LIGATURE GHAIN WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 063A 0645;;;;N;;;;;
++FCBE;ARABIC LIGATURE FEH WITH JEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0641 062C;;;;N;;;;;
++FCBF;ARABIC LIGATURE FEH WITH HAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0641 062D;;;;N;;;;;
++FCC0;ARABIC LIGATURE FEH WITH KHAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0641 062E;;;;N;;;;;
++FCC1;ARABIC LIGATURE FEH WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0641 0645;;;;N;;;;;
++FCC2;ARABIC LIGATURE QAF WITH HAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0642 062D;;;;N;;;;;
++FCC3;ARABIC LIGATURE QAF WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0642 0645;;;;N;;;;;
++FCC4;ARABIC LIGATURE KAF WITH JEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0643 062C;;;;N;;;;;
++FCC5;ARABIC LIGATURE KAF WITH HAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0643 062D;;;;N;;;;;
++FCC6;ARABIC LIGATURE KAF WITH KHAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0643 062E;;;;N;;;;;
++FCC7;ARABIC LIGATURE KAF WITH LAM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0643 0644;;;;N;;;;;
++FCC8;ARABIC LIGATURE KAF WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0643 0645;;;;N;;;;;
++FCC9;ARABIC LIGATURE LAM WITH JEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0644 062C;;;;N;;;;;
++FCCA;ARABIC LIGATURE LAM WITH HAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0644 062D;;;;N;;;;;
++FCCB;ARABIC LIGATURE LAM WITH KHAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0644 062E;;;;N;;;;;
++FCCC;ARABIC LIGATURE LAM WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0644 0645;;;;N;;;;;
++FCCD;ARABIC LIGATURE LAM WITH HEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0644 0647;;;;N;;;;;
++FCCE;ARABIC LIGATURE MEEM WITH JEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0645 062C;;;;N;;;;;
++FCCF;ARABIC LIGATURE MEEM WITH HAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0645 062D;;;;N;;;;;
++FCD0;ARABIC LIGATURE MEEM WITH KHAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0645 062E;;;;N;;;;;
++FCD1;ARABIC LIGATURE MEEM WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0645 0645;;;;N;;;;;
++FCD2;ARABIC LIGATURE NOON WITH JEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0646 062C;;;;N;;;;;
++FCD3;ARABIC LIGATURE NOON WITH HAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0646 062D;;;;N;;;;;
++FCD4;ARABIC LIGATURE NOON WITH KHAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0646 062E;;;;N;;;;;
++FCD5;ARABIC LIGATURE NOON WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0646 0645;;;;N;;;;;
++FCD6;ARABIC LIGATURE NOON WITH HEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0646 0647;;;;N;;;;;
++FCD7;ARABIC LIGATURE HEH WITH JEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0647 062C;;;;N;;;;;
++FCD8;ARABIC LIGATURE HEH WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0647 0645;;;;N;;;;;
++FCD9;ARABIC LIGATURE HEH WITH SUPERSCRIPT ALEF INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0647 0670;;;;N;;;;;
++FCDA;ARABIC LIGATURE YEH WITH JEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 064A 062C;;;;N;;;;;
++FCDB;ARABIC LIGATURE YEH WITH HAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 064A 062D;;;;N;;;;;
++FCDC;ARABIC LIGATURE YEH WITH KHAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 064A 062E;;;;N;;;;;
++FCDD;ARABIC LIGATURE YEH WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 064A 0645;;;;N;;;;;
++FCDE;ARABIC LIGATURE YEH WITH HEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 064A 0647;;;;N;;;;;
++FCDF;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0626 0645;;;;N;;;;;
++FCE0;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0626 0647;;;;N;;;;;
++FCE1;ARABIC LIGATURE BEH WITH MEEM MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0628 0645;;;;N;;;;;
++FCE2;ARABIC LIGATURE BEH WITH HEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0628 0647;;;;N;;;;;
++FCE3;ARABIC LIGATURE TEH WITH MEEM MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 062A 0645;;;;N;;;;;
++FCE4;ARABIC LIGATURE TEH WITH HEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 062A 0647;;;;N;;;;;
++FCE5;ARABIC LIGATURE THEH WITH MEEM MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 062B 0645;;;;N;;;;;
++FCE6;ARABIC LIGATURE THEH WITH HEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 062B 0647;;;;N;;;;;
++FCE7;ARABIC LIGATURE SEEN WITH MEEM MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0633 0645;;;;N;;;;;
++FCE8;ARABIC LIGATURE SEEN WITH HEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0633 0647;;;;N;;;;;
++FCE9;ARABIC LIGATURE SHEEN WITH MEEM MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0634 0645;;;;N;;;;;
++FCEA;ARABIC LIGATURE SHEEN WITH HEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0634 0647;;;;N;;;;;
++FCEB;ARABIC LIGATURE KAF WITH LAM MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0643 0644;;;;N;;;;;
++FCEC;ARABIC LIGATURE KAF WITH MEEM MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0643 0645;;;;N;;;;;
++FCED;ARABIC LIGATURE LAM WITH MEEM MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0644 0645;;;;N;;;;;
++FCEE;ARABIC LIGATURE NOON WITH MEEM MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0646 0645;;;;N;;;;;
++FCEF;ARABIC LIGATURE NOON WITH HEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0646 0647;;;;N;;;;;
++FCF0;ARABIC LIGATURE YEH WITH MEEM MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 064A 0645;;;;N;;;;;
++FCF1;ARABIC LIGATURE YEH WITH HEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 064A 0647;;;;N;;;;;
++FCF2;ARABIC LIGATURE SHADDA WITH FATHA MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0640 064E 0651;;;;N;;;;;
++FCF3;ARABIC LIGATURE SHADDA WITH DAMMA MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0640 064F 0651;;;;N;;;;;
++FCF4;ARABIC LIGATURE SHADDA WITH KASRA MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0640 0650 0651;;;;N;;;;;
++FCF5;ARABIC LIGATURE TAH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0637 0649;;;;N;;;;;
++FCF6;ARABIC LIGATURE TAH WITH YEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0637 064A;;;;N;;;;;
++FCF7;ARABIC LIGATURE AIN WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0639 0649;;;;N;;;;;
++FCF8;ARABIC LIGATURE AIN WITH YEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0639 064A;;;;N;;;;;
++FCF9;ARABIC LIGATURE GHAIN WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 063A 0649;;;;N;;;;;
++FCFA;ARABIC LIGATURE GHAIN WITH YEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 063A 064A;;;;N;;;;;
++FCFB;ARABIC LIGATURE SEEN WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0633 0649;;;;N;;;;;
++FCFC;ARABIC LIGATURE SEEN WITH YEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0633 064A;;;;N;;;;;
++FCFD;ARABIC LIGATURE SHEEN WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0634 0649;;;;N;;;;;
++FCFE;ARABIC LIGATURE SHEEN WITH YEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0634 064A;;;;N;;;;;
++FCFF;ARABIC LIGATURE HAH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062D 0649;;;;N;;;;;
++FD00;ARABIC LIGATURE HAH WITH YEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062D 064A;;;;N;;;;;
++FD01;ARABIC LIGATURE JEEM WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062C 0649;;;;N;;;;;
++FD02;ARABIC LIGATURE JEEM WITH YEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062C 064A;;;;N;;;;;
++FD03;ARABIC LIGATURE KHAH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062E 0649;;;;N;;;;;
++FD04;ARABIC LIGATURE KHAH WITH YEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062E 064A;;;;N;;;;;
++FD05;ARABIC LIGATURE SAD WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0635 0649;;;;N;;;;;
++FD06;ARABIC LIGATURE SAD WITH YEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0635 064A;;;;N;;;;;
++FD07;ARABIC LIGATURE DAD WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0636 0649;;;;N;;;;;
++FD08;ARABIC LIGATURE DAD WITH YEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0636 064A;;;;N;;;;;
++FD09;ARABIC LIGATURE SHEEN WITH JEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0634 062C;;;;N;;;;;
++FD0A;ARABIC LIGATURE SHEEN WITH HAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0634 062D;;;;N;;;;;
++FD0B;ARABIC LIGATURE SHEEN WITH KHAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0634 062E;;;;N;;;;;
++FD0C;ARABIC LIGATURE SHEEN WITH MEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0634 0645;;;;N;;;;;
++FD0D;ARABIC LIGATURE SHEEN WITH REH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0634 0631;;;;N;;;;;
++FD0E;ARABIC LIGATURE SEEN WITH REH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0633 0631;;;;N;;;;;
++FD0F;ARABIC LIGATURE SAD WITH REH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0635 0631;;;;N;;;;;
++FD10;ARABIC LIGATURE DAD WITH REH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0636 0631;;;;N;;;;;
++FD11;ARABIC LIGATURE TAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 0637 0649;;;;N;;;;;
++FD12;ARABIC LIGATURE TAH WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0637 064A;;;;N;;;;;
++FD13;ARABIC LIGATURE AIN WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 0639 0649;;;;N;;;;;
++FD14;ARABIC LIGATURE AIN WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0639 064A;;;;N;;;;;
++FD15;ARABIC LIGATURE GHAIN WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 063A 0649;;;;N;;;;;
++FD16;ARABIC LIGATURE GHAIN WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 063A 064A;;;;N;;;;;
++FD17;ARABIC LIGATURE SEEN WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 0633 0649;;;;N;;;;;
++FD18;ARABIC LIGATURE SEEN WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0633 064A;;;;N;;;;;
++FD19;ARABIC LIGATURE SHEEN WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 0634 0649;;;;N;;;;;
++FD1A;ARABIC LIGATURE SHEEN WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0634 064A;;;;N;;;;;
++FD1B;ARABIC LIGATURE HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 062D 0649;;;;N;;;;;
++FD1C;ARABIC LIGATURE HAH WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 062D 064A;;;;N;;;;;
++FD1D;ARABIC LIGATURE JEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 062C 0649;;;;N;;;;;
++FD1E;ARABIC LIGATURE JEEM WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 062C 064A;;;;N;;;;;
++FD1F;ARABIC LIGATURE KHAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 062E 0649;;;;N;;;;;
++FD20;ARABIC LIGATURE KHAH WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 062E 064A;;;;N;;;;;
++FD21;ARABIC LIGATURE SAD WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 0635 0649;;;;N;;;;;
++FD22;ARABIC LIGATURE SAD WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0635 064A;;;;N;;;;;
++FD23;ARABIC LIGATURE DAD WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 0636 0649;;;;N;;;;;
++FD24;ARABIC LIGATURE DAD WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0636 064A;;;;N;;;;;
++FD25;ARABIC LIGATURE SHEEN WITH JEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 0634 062C;;;;N;;;;;
++FD26;ARABIC LIGATURE SHEEN WITH HAH FINAL FORM;Lo;0;AL;&lt;final&gt; 0634 062D;;;;N;;;;;
++FD27;ARABIC LIGATURE SHEEN WITH KHAH FINAL FORM;Lo;0;AL;&lt;final&gt; 0634 062E;;;;N;;;;;
++FD28;ARABIC LIGATURE SHEEN WITH MEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 0634 0645;;;;N;;;;;
++FD29;ARABIC LIGATURE SHEEN WITH REH FINAL FORM;Lo;0;AL;&lt;final&gt; 0634 0631;;;;N;;;;;
++FD2A;ARABIC LIGATURE SEEN WITH REH FINAL FORM;Lo;0;AL;&lt;final&gt; 0633 0631;;;;N;;;;;
++FD2B;ARABIC LIGATURE SAD WITH REH FINAL FORM;Lo;0;AL;&lt;final&gt; 0635 0631;;;;N;;;;;
++FD2C;ARABIC LIGATURE DAD WITH REH FINAL FORM;Lo;0;AL;&lt;final&gt; 0636 0631;;;;N;;;;;
++FD2D;ARABIC LIGATURE SHEEN WITH JEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0634 062C;;;;N;;;;;
++FD2E;ARABIC LIGATURE SHEEN WITH HAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0634 062D;;;;N;;;;;
++FD2F;ARABIC LIGATURE SHEEN WITH KHAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0634 062E;;;;N;;;;;
++FD30;ARABIC LIGATURE SHEEN WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0634 0645;;;;N;;;;;
++FD31;ARABIC LIGATURE SEEN WITH HEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0633 0647;;;;N;;;;;
++FD32;ARABIC LIGATURE SHEEN WITH HEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0634 0647;;;;N;;;;;
++FD33;ARABIC LIGATURE TAH WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0637 0645;;;;N;;;;;
++FD34;ARABIC LIGATURE SEEN WITH JEEM MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0633 062C;;;;N;;;;;
++FD35;ARABIC LIGATURE SEEN WITH HAH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0633 062D;;;;N;;;;;
++FD36;ARABIC LIGATURE SEEN WITH KHAH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0633 062E;;;;N;;;;;
++FD37;ARABIC LIGATURE SHEEN WITH JEEM MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0634 062C;;;;N;;;;;
++FD38;ARABIC LIGATURE SHEEN WITH HAH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0634 062D;;;;N;;;;;
++FD39;ARABIC LIGATURE SHEEN WITH KHAH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0634 062E;;;;N;;;;;
++FD3A;ARABIC LIGATURE TAH WITH MEEM MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0637 0645;;;;N;;;;;
++FD3B;ARABIC LIGATURE ZAH WITH MEEM MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0638 0645;;;;N;;;;;
++FD3C;ARABIC LIGATURE ALEF WITH FATHATAN FINAL FORM;Lo;0;AL;&lt;final&gt; 0627 064B;;;;N;;;;;
++FD3D;ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0627 064B;;;;N;;;;;
++FD3E;ORNATE LEFT PARENTHESIS;Ps;0;ON;;;;;N;;;;;
++FD3F;ORNATE RIGHT PARENTHESIS;Pe;0;ON;;;;;N;;;;;
++FD50;ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 062A 062C 0645;;;;N;;;;;
++FD51;ARABIC LIGATURE TEH WITH HAH WITH JEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 062A 062D 062C;;;;N;;;;;
++FD52;ARABIC LIGATURE TEH WITH HAH WITH JEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 062A 062D 062C;;;;N;;;;;
++FD53;ARABIC LIGATURE TEH WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 062A 062D 0645;;;;N;;;;;
++FD54;ARABIC LIGATURE TEH WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 062A 062E 0645;;;;N;;;;;
++FD55;ARABIC LIGATURE TEH WITH MEEM WITH JEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 062A 0645 062C;;;;N;;;;;
++FD56;ARABIC LIGATURE TEH WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 062A 0645 062D;;;;N;;;;;
++FD57;ARABIC LIGATURE TEH WITH MEEM WITH KHAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 062A 0645 062E;;;;N;;;;;
++FD58;ARABIC LIGATURE JEEM WITH MEEM WITH HAH FINAL FORM;Lo;0;AL;&lt;final&gt; 062C 0645 062D;;;;N;;;;;
++FD59;ARABIC LIGATURE JEEM WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 062C 0645 062D;;;;N;;;;;
++FD5A;ARABIC LIGATURE HAH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 062D 0645 064A;;;;N;;;;;
++FD5B;ARABIC LIGATURE HAH WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 062D 0645 0649;;;;N;;;;;
++FD5C;ARABIC LIGATURE SEEN WITH HAH WITH JEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0633 062D 062C;;;;N;;;;;
++FD5D;ARABIC LIGATURE SEEN WITH JEEM WITH HAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0633 062C 062D;;;;N;;;;;
++FD5E;ARABIC LIGATURE SEEN WITH JEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 0633 062C 0649;;;;N;;;;;
++FD5F;ARABIC LIGATURE SEEN WITH MEEM WITH HAH FINAL FORM;Lo;0;AL;&lt;final&gt; 0633 0645 062D;;;;N;;;;;
++FD60;ARABIC LIGATURE SEEN WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0633 0645 062D;;;;N;;;;;
++FD61;ARABIC LIGATURE SEEN WITH MEEM WITH JEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0633 0645 062C;;;;N;;;;;
++FD62;ARABIC LIGATURE SEEN WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 0633 0645 0645;;;;N;;;;;
++FD63;ARABIC LIGATURE SEEN WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0633 0645 0645;;;;N;;;;;
++FD64;ARABIC LIGATURE SAD WITH HAH WITH HAH FINAL FORM;Lo;0;AL;&lt;final&gt; 0635 062D 062D;;;;N;;;;;
++FD65;ARABIC LIGATURE SAD WITH HAH WITH HAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0635 062D 062D;;;;N;;;;;
++FD66;ARABIC LIGATURE SAD WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 0635 0645 0645;;;;N;;;;;
++FD67;ARABIC LIGATURE SHEEN WITH HAH WITH MEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 0634 062D 0645;;;;N;;;;;
++FD68;ARABIC LIGATURE SHEEN WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0634 062D 0645;;;;N;;;;;
++FD69;ARABIC LIGATURE SHEEN WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0634 062C 064A;;;;N;;;;;
++FD6A;ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH FINAL FORM;Lo;0;AL;&lt;final&gt; 0634 0645 062E;;;;N;;;;;
++FD6B;ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0634 0645 062E;;;;N;;;;;
++FD6C;ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 0634 0645 0645;;;;N;;;;;
++FD6D;ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0634 0645 0645;;;;N;;;;;
++FD6E;ARABIC LIGATURE DAD WITH HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 0636 062D 0649;;;;N;;;;;
++FD6F;ARABIC LIGATURE DAD WITH KHAH WITH MEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 0636 062E 0645;;;;N;;;;;
++FD70;ARABIC LIGATURE DAD WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0636 062E 0645;;;;N;;;;;
++FD71;ARABIC LIGATURE TAH WITH MEEM WITH HAH FINAL FORM;Lo;0;AL;&lt;final&gt; 0637 0645 062D;;;;N;;;;;
++FD72;ARABIC LIGATURE TAH WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0637 0645 062D;;;;N;;;;;
++FD73;ARABIC LIGATURE TAH WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0637 0645 0645;;;;N;;;;;
++FD74;ARABIC LIGATURE TAH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0637 0645 064A;;;;N;;;;;
++FD75;ARABIC LIGATURE AIN WITH JEEM WITH MEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 0639 062C 0645;;;;N;;;;;
++FD76;ARABIC LIGATURE AIN WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 0639 0645 0645;;;;N;;;;;
++FD77;ARABIC LIGATURE AIN WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0639 0645 0645;;;;N;;;;;
++FD78;ARABIC LIGATURE AIN WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 0639 0645 0649;;;;N;;;;;
++FD79;ARABIC LIGATURE GHAIN WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 063A 0645 0645;;;;N;;;;;
++FD7A;ARABIC LIGATURE GHAIN WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 063A 0645 064A;;;;N;;;;;
++FD7B;ARABIC LIGATURE GHAIN WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 063A 0645 0649;;;;N;;;;;
++FD7C;ARABIC LIGATURE FEH WITH KHAH WITH MEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 0641 062E 0645;;;;N;;;;;
++FD7D;ARABIC LIGATURE FEH WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0641 062E 0645;;;;N;;;;;
++FD7E;ARABIC LIGATURE QAF WITH MEEM WITH HAH FINAL FORM;Lo;0;AL;&lt;final&gt; 0642 0645 062D;;;;N;;;;;
++FD7F;ARABIC LIGATURE QAF WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 0642 0645 0645;;;;N;;;;;
++FD80;ARABIC LIGATURE LAM WITH HAH WITH MEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 0644 062D 0645;;;;N;;;;;
++FD81;ARABIC LIGATURE LAM WITH HAH WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0644 062D 064A;;;;N;;;;;
++FD82;ARABIC LIGATURE LAM WITH HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 0644 062D 0649;;;;N;;;;;
++FD83;ARABIC LIGATURE LAM WITH JEEM WITH JEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0644 062C 062C;;;;N;;;;;
++FD84;ARABIC LIGATURE LAM WITH JEEM WITH JEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 0644 062C 062C;;;;N;;;;;
++FD85;ARABIC LIGATURE LAM WITH KHAH WITH MEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 0644 062E 0645;;;;N;;;;;
++FD86;ARABIC LIGATURE LAM WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0644 062E 0645;;;;N;;;;;
++FD87;ARABIC LIGATURE LAM WITH MEEM WITH HAH FINAL FORM;Lo;0;AL;&lt;final&gt; 0644 0645 062D;;;;N;;;;;
++FD88;ARABIC LIGATURE LAM WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0644 0645 062D;;;;N;;;;;
++FD89;ARABIC LIGATURE MEEM WITH HAH WITH JEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0645 062D 062C;;;;N;;;;;
++FD8A;ARABIC LIGATURE MEEM WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0645 062D 0645;;;;N;;;;;
++FD8B;ARABIC LIGATURE MEEM WITH HAH WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0645 062D 064A;;;;N;;;;;
++FD8C;ARABIC LIGATURE MEEM WITH JEEM WITH HAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0645 062C 062D;;;;N;;;;;
++FD8D;ARABIC LIGATURE MEEM WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0645 062C 0645;;;;N;;;;;
++FD8E;ARABIC LIGATURE MEEM WITH KHAH WITH JEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0645 062E 062C;;;;N;;;;;
++FD8F;ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0645 062E 0645;;;;N;;;;;
++FD92;ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0645 062C 062E;;;;N;;;;;
++FD93;ARABIC LIGATURE HEH WITH MEEM WITH JEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0647 0645 062C;;;;N;;;;;
++FD94;ARABIC LIGATURE HEH WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0647 0645 0645;;;;N;;;;;
++FD95;ARABIC LIGATURE NOON WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0646 062D 0645;;;;N;;;;;
++FD96;ARABIC LIGATURE NOON WITH HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 0646 062D 0649;;;;N;;;;;
++FD97;ARABIC LIGATURE NOON WITH JEEM WITH MEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 0646 062C 0645;;;;N;;;;;
++FD98;ARABIC LIGATURE NOON WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0646 062C 0645;;;;N;;;;;
++FD99;ARABIC LIGATURE NOON WITH JEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 0646 062C 0649;;;;N;;;;;
++FD9A;ARABIC LIGATURE NOON WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0646 0645 064A;;;;N;;;;;
++FD9B;ARABIC LIGATURE NOON WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 0646 0645 0649;;;;N;;;;;
++FD9C;ARABIC LIGATURE YEH WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 064A 0645 0645;;;;N;;;;;
++FD9D;ARABIC LIGATURE YEH WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 064A 0645 0645;;;;N;;;;;
++FD9E;ARABIC LIGATURE BEH WITH KHAH WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0628 062E 064A;;;;N;;;;;
++FD9F;ARABIC LIGATURE TEH WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 062A 062C 064A;;;;N;;;;;
++FDA0;ARABIC LIGATURE TEH WITH JEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 062A 062C 0649;;;;N;;;;;
++FDA1;ARABIC LIGATURE TEH WITH KHAH WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 062A 062E 064A;;;;N;;;;;
++FDA2;ARABIC LIGATURE TEH WITH KHAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 062A 062E 0649;;;;N;;;;;
++FDA3;ARABIC LIGATURE TEH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 062A 0645 064A;;;;N;;;;;
++FDA4;ARABIC LIGATURE TEH WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 062A 0645 0649;;;;N;;;;;
++FDA5;ARABIC LIGATURE JEEM WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 062C 0645 064A;;;;N;;;;;
++FDA6;ARABIC LIGATURE JEEM WITH HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 062C 062D 0649;;;;N;;;;;
++FDA7;ARABIC LIGATURE JEEM WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 062C 0645 0649;;;;N;;;;;
++FDA8;ARABIC LIGATURE SEEN WITH KHAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 0633 062E 0649;;;;N;;;;;
++FDA9;ARABIC LIGATURE SAD WITH HAH WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0635 062D 064A;;;;N;;;;;
++FDAA;ARABIC LIGATURE SHEEN WITH HAH WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0634 062D 064A;;;;N;;;;;
++FDAB;ARABIC LIGATURE DAD WITH HAH WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0636 062D 064A;;;;N;;;;;
++FDAC;ARABIC LIGATURE LAM WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0644 062C 064A;;;;N;;;;;
++FDAD;ARABIC LIGATURE LAM WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0644 0645 064A;;;;N;;;;;
++FDAE;ARABIC LIGATURE YEH WITH HAH WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 064A 062D 064A;;;;N;;;;;
++FDAF;ARABIC LIGATURE YEH WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 064A 062C 064A;;;;N;;;;;
++FDB0;ARABIC LIGATURE YEH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 064A 0645 064A;;;;N;;;;;
++FDB1;ARABIC LIGATURE MEEM WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0645 0645 064A;;;;N;;;;;
++FDB2;ARABIC LIGATURE QAF WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0642 0645 064A;;;;N;;;;;
++FDB3;ARABIC LIGATURE NOON WITH HAH WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0646 062D 064A;;;;N;;;;;
++FDB4;ARABIC LIGATURE QAF WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0642 0645 062D;;;;N;;;;;
++FDB5;ARABIC LIGATURE LAM WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0644 062D 0645;;;;N;;;;;
++FDB6;ARABIC LIGATURE AIN WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0639 0645 064A;;;;N;;;;;
++FDB7;ARABIC LIGATURE KAF WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0643 0645 064A;;;;N;;;;;
++FDB8;ARABIC LIGATURE NOON WITH JEEM WITH HAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0646 062C 062D;;;;N;;;;;
++FDB9;ARABIC LIGATURE MEEM WITH KHAH WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0645 062E 064A;;;;N;;;;;
++FDBA;ARABIC LIGATURE LAM WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0644 062C 0645;;;;N;;;;;
++FDBB;ARABIC LIGATURE KAF WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 0643 0645 0645;;;;N;;;;;
++FDBC;ARABIC LIGATURE LAM WITH JEEM WITH MEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 0644 062C 0645;;;;N;;;;;
++FDBD;ARABIC LIGATURE NOON WITH JEEM WITH HAH FINAL FORM;Lo;0;AL;&lt;final&gt; 0646 062C 062D;;;;N;;;;;
++FDBE;ARABIC LIGATURE JEEM WITH HAH WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 062C 062D 064A;;;;N;;;;;
++FDBF;ARABIC LIGATURE HAH WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 062D 062C 064A;;;;N;;;;;
++FDC0;ARABIC LIGATURE MEEM WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0645 062C 064A;;;;N;;;;;
++FDC1;ARABIC LIGATURE FEH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0641 0645 064A;;;;N;;;;;
++FDC2;ARABIC LIGATURE BEH WITH HAH WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0628 062D 064A;;;;N;;;;;
++FDC3;ARABIC LIGATURE KAF WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0643 0645 0645;;;;N;;;;;
++FDC4;ARABIC LIGATURE AIN WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0639 062C 0645;;;;N;;;;;
++FDC5;ARABIC LIGATURE SAD WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0635 0645 0645;;;;N;;;;;
++FDC6;ARABIC LIGATURE SEEN WITH KHAH WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0633 062E 064A;;;;N;;;;;
++FDC7;ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0646 062C 064A;;;;N;;;;;
++FDF0;ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0635 0644 06D2;;;;N;;;;;
++FDF1;ARABIC LIGATURE QALA USED AS KORANIC STOP SIGN ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0642 0644 06D2;;;;N;;;;;
++FDF2;ARABIC LIGATURE ALLAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0627 0644 0644 0647;;;;N;;;;;
++FDF3;ARABIC LIGATURE AKBAR ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0627 0643 0628 0631;;;;N;;;;;
++FDF4;ARABIC LIGATURE MOHAMMAD ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0645 062D 0645 062F;;;;N;;;;;
++FDF5;ARABIC LIGATURE SALAM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0635 0644 0639 0645;;;;N;;;;;
++FDF6;ARABIC LIGATURE RASOUL ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0631 0633 0648 0644;;;;N;;;;;
++FDF7;ARABIC LIGATURE ALAYHE ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0639 0644 064A 0647;;;;N;;;;;
++FDF8;ARABIC LIGATURE WASALLAM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0648 0633 0644 0645;;;;N;;;;;
++FDF9;ARABIC LIGATURE SALLA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0635 0644 0649;;;;N;;;;;
++FDFA;ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM;Lo;0;AL;&lt;isolated&gt; 0635 0644 0649 0020 0627 0644 0644 0647 0020 0639 0644 064A 0647 0020 0648 0633 0644 0645;;;;N;ARABIC LETTER SALLALLAHOU ALAYHE WASALLAM;;;;
++FDFB;ARABIC LIGATURE JALLAJALALOUHOU;Lo;0;AL;&lt;isolated&gt; 062C 0644 0020 062C 0644 0627 0644 0647;;;;N;ARABIC LETTER JALLAJALALOUHOU;;;;
++FDFC;RIAL SIGN;Sc;0;AL;&lt;isolated&gt; 0631 06CC 0627 0644;;;;N;;;;;
++FDFD;ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM;So;0;ON;;;;;N;;;;;
++FE00;VARIATION SELECTOR-1;Mn;0;NSM;;;;;N;;;;;
++FE01;VARIATION SELECTOR-2;Mn;0;NSM;;;;;N;;;;;
++FE02;VARIATION SELECTOR-3;Mn;0;NSM;;;;;N;;;;;
++FE03;VARIATION SELECTOR-4;Mn;0;NSM;;;;;N;;;;;
++FE04;VARIATION SELECTOR-5;Mn;0;NSM;;;;;N;;;;;
++FE05;VARIATION SELECTOR-6;Mn;0;NSM;;;;;N;;;;;
++FE06;VARIATION SELECTOR-7;Mn;0;NSM;;;;;N;;;;;
++FE07;VARIATION SELECTOR-8;Mn;0;NSM;;;;;N;;;;;
++FE08;VARIATION SELECTOR-9;Mn;0;NSM;;;;;N;;;;;
++FE09;VARIATION SELECTOR-10;Mn;0;NSM;;;;;N;;;;;
++FE0A;VARIATION SELECTOR-11;Mn;0;NSM;;;;;N;;;;;
++FE0B;VARIATION SELECTOR-12;Mn;0;NSM;;;;;N;;;;;
++FE0C;VARIATION SELECTOR-13;Mn;0;NSM;;;;;N;;;;;
++FE0D;VARIATION SELECTOR-14;Mn;0;NSM;;;;;N;;;;;
++FE0E;VARIATION SELECTOR-15;Mn;0;NSM;;;;;N;;;;;
++FE0F;VARIATION SELECTOR-16;Mn;0;NSM;;;;;N;;;;;
++FE20;COMBINING LIGATURE LEFT HALF;Mn;230;NSM;;;;;N;;;;;
++FE21;COMBINING LIGATURE RIGHT HALF;Mn;230;NSM;;;;;N;;;;;
++FE22;COMBINING DOUBLE TILDE LEFT HALF;Mn;230;NSM;;;;;N;;;;;
++FE23;COMBINING DOUBLE TILDE RIGHT HALF;Mn;230;NSM;;;;;N;;;;;
++FE30;PRESENTATION FORM FOR VERTICAL TWO DOT LEADER;Po;0;ON;&lt;vertical&gt; 2025;;;;N;GLYPH FOR VERTICAL TWO DOT LEADER;;;;
++FE31;PRESENTATION FORM FOR VERTICAL EM DASH;Pd;0;ON;&lt;vertical&gt; 2014;;;;N;GLYPH FOR VERTICAL EM DASH;;;;
++FE32;PRESENTATION FORM FOR VERTICAL EN DASH;Pd;0;ON;&lt;vertical&gt; 2013;;;;N;GLYPH FOR VERTICAL EN DASH;;;;
++FE33;PRESENTATION FORM FOR VERTICAL LOW LINE;Pc;0;ON;&lt;vertical&gt; 005F;;;;N;GLYPH FOR VERTICAL SPACING UNDERSCORE;;;;
++FE34;PRESENTATION FORM FOR VERTICAL WAVY LOW LINE;Pc;0;ON;&lt;vertical&gt; 005F;;;;N;GLYPH FOR VERTICAL SPACING WAVY UNDERSCORE;;;;
++FE35;PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS;Ps;0;ON;&lt;vertical&gt; 0028;;;;N;GLYPH FOR VERTICAL OPENING PARENTHESIS;;;;
++FE36;PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS;Pe;0;ON;&lt;vertical&gt; 0029;;;;N;GLYPH FOR VERTICAL CLOSING PARENTHESIS;;;;
++FE37;PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET;Ps;0;ON;&lt;vertical&gt; 007B;;;;N;GLYPH FOR VERTICAL OPENING CURLY BRACKET;;;;
++FE38;PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET;Pe;0;ON;&lt;vertical&gt; 007D;;;;N;GLYPH FOR VERTICAL CLOSING CURLY BRACKET;;;;
++FE39;PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET;Ps;0;ON;&lt;vertical&gt; 3014;;;;N;GLYPH FOR VERTICAL OPENING TORTOISE SHELL BRACKET;;;;
++FE3A;PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET;Pe;0;ON;&lt;vertical&gt; 3015;;;;N;GLYPH FOR VERTICAL CLOSING TORTOISE SHELL BRACKET;;;;
++FE3B;PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET;Ps;0;ON;&lt;vertical&gt; 3010;;;;N;GLYPH FOR VERTICAL OPENING BLACK LENTICULAR BRACKET;;;;
++FE3C;PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET;Pe;0;ON;&lt;vertical&gt; 3011;;;;N;GLYPH FOR VERTICAL CLOSING BLACK LENTICULAR BRACKET;;;;
++FE3D;PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET;Ps;0;ON;&lt;vertical&gt; 300A;;;;N;GLYPH FOR VERTICAL OPENING DOUBLE ANGLE BRACKET;;;;
++FE3E;PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET;Pe;0;ON;&lt;vertical&gt; 300B;;;;N;GLYPH FOR VERTICAL CLOSING DOUBLE ANGLE BRACKET;;;;
++FE3F;PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET;Ps;0;ON;&lt;vertical&gt; 3008;;;;N;GLYPH FOR VERTICAL OPENING ANGLE BRACKET;;;;
++FE40;PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET;Pe;0;ON;&lt;vertical&gt; 3009;;;;N;GLYPH FOR VERTICAL CLOSING ANGLE BRACKET;;;;
++FE41;PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET;Ps;0;ON;&lt;vertical&gt; 300C;;;;N;GLYPH FOR VERTICAL OPENING CORNER BRACKET;;;;
++FE42;PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET;Pe;0;ON;&lt;vertical&gt; 300D;;;;N;GLYPH FOR VERTICAL CLOSING CORNER BRACKET;;;;
++FE43;PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET;Ps;0;ON;&lt;vertical&gt; 300E;;;;N;GLYPH FOR VERTICAL OPENING WHITE CORNER BRACKET;;;;
++FE44;PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET;Pe;0;ON;&lt;vertical&gt; 300F;;;;N;GLYPH FOR VERTICAL CLOSING WHITE CORNER BRACKET;;;;
++FE45;SESAME DOT;Po;0;ON;;;;;N;;;;;
++FE46;WHITE SESAME DOT;Po;0;ON;;;;;N;;;;;
++FE47;PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET;Ps;0;ON;&lt;vertical&gt; 005B;;;;N;;;;;
++FE48;PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET;Pe;0;ON;&lt;vertical&gt; 005D;;;;N;;;;;
++FE49;DASHED OVERLINE;Po;0;ON;&lt;compat&gt; 203E;;;;N;SPACING DASHED OVERSCORE;;;;
++FE4A;CENTRELINE OVERLINE;Po;0;ON;&lt;compat&gt; 203E;;;;N;SPACING CENTERLINE OVERSCORE;;;;
++FE4B;WAVY OVERLINE;Po;0;ON;&lt;compat&gt; 203E;;;;N;SPACING WAVY OVERSCORE;;;;
++FE4C;DOUBLE WAVY OVERLINE;Po;0;ON;&lt;compat&gt; 203E;;;;N;SPACING DOUBLE WAVY OVERSCORE;;;;
++FE4D;DASHED LOW LINE;Pc;0;ON;&lt;compat&gt; 005F;;;;N;SPACING DASHED UNDERSCORE;;;;
++FE4E;CENTRELINE LOW LINE;Pc;0;ON;&lt;compat&gt; 005F;;;;N;SPACING CENTERLINE UNDERSCORE;;;;
++FE4F;WAVY LOW LINE;Pc;0;ON;&lt;compat&gt; 005F;;;;N;SPACING WAVY UNDERSCORE;;;;
++FE50;SMALL COMMA;Po;0;CS;&lt;small&gt; 002C;;;;N;;;;;
++FE51;SMALL IDEOGRAPHIC COMMA;Po;0;ON;&lt;small&gt; 3001;;;;N;;;;;
++FE52;SMALL FULL STOP;Po;0;CS;&lt;small&gt; 002E;;;;N;SMALL PERIOD;;;;
++FE54;SMALL SEMICOLON;Po;0;ON;&lt;small&gt; 003B;;;;N;;;;;
++FE55;SMALL COLON;Po;0;CS;&lt;small&gt; 003A;;;;N;;;;;
++FE56;SMALL QUESTION MARK;Po;0;ON;&lt;small&gt; 003F;;;;N;;;;;
++FE57;SMALL EXCLAMATION MARK;Po;0;ON;&lt;small&gt; 0021;;;;N;;;;;
++FE58;SMALL EM DASH;Pd;0;ON;&lt;small&gt; 2014;;;;N;;;;;
++FE59;SMALL LEFT PARENTHESIS;Ps;0;ON;&lt;small&gt; 0028;;;;N;SMALL OPENING PARENTHESIS;;;;
++FE5A;SMALL RIGHT PARENTHESIS;Pe;0;ON;&lt;small&gt; 0029;;;;N;SMALL CLOSING PARENTHESIS;;;;
++FE5B;SMALL LEFT CURLY BRACKET;Ps;0;ON;&lt;small&gt; 007B;;;;N;SMALL OPENING CURLY BRACKET;;;;
++FE5C;SMALL RIGHT CURLY BRACKET;Pe;0;ON;&lt;small&gt; 007D;;;;N;SMALL CLOSING CURLY BRACKET;;;;
++FE5D;SMALL LEFT TORTOISE SHELL BRACKET;Ps;0;ON;&lt;small&gt; 3014;;;;N;SMALL OPENING TORTOISE SHELL BRACKET;;;;
++FE5E;SMALL RIGHT TORTOISE SHELL BRACKET;Pe;0;ON;&lt;small&gt; 3015;;;;N;SMALL CLOSING TORTOISE SHELL BRACKET;;;;
++FE5F;SMALL NUMBER SIGN;Po;0;ET;&lt;small&gt; 0023;;;;N;;;;;
++FE60;SMALL AMPERSAND;Po;0;ON;&lt;small&gt; 0026;;;;N;;;;;
++FE61;SMALL ASTERISK;Po;0;ON;&lt;small&gt; 002A;;;;N;;;;;
++FE62;SMALL PLUS SIGN;Sm;0;ET;&lt;small&gt; 002B;;;;N;;;;;
++FE63;SMALL HYPHEN-MINUS;Pd;0;ET;&lt;small&gt; 002D;;;;N;;;;;
++FE64;SMALL LESS-THAN SIGN;Sm;0;ON;&lt;small&gt; 003C;;;;N;;;;;
++FE65;SMALL GREATER-THAN SIGN;Sm;0;ON;&lt;small&gt; 003E;;;;N;;;;;
++FE66;SMALL EQUALS SIGN;Sm;0;ON;&lt;small&gt; 003D;;;;N;;;;;
++FE68;SMALL REVERSE SOLIDUS;Po;0;ON;&lt;small&gt; 005C;;;;N;SMALL BACKSLASH;;;;
++FE69;SMALL DOLLAR SIGN;Sc;0;ET;&lt;small&gt; 0024;;;;N;;;;;
++FE6A;SMALL PERCENT SIGN;Po;0;ET;&lt;small&gt; 0025;;;;N;;;;;
++FE6B;SMALL COMMERCIAL AT;Po;0;ON;&lt;small&gt; 0040;;;;N;;;;;
++FE70;ARABIC FATHATAN ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0020 064B;;;;N;ARABIC SPACING FATHATAN;;;;
++FE71;ARABIC TATWEEL WITH FATHATAN ABOVE;Lo;0;AL;&lt;medial&gt; 0640 064B;;;;N;ARABIC FATHATAN ON TATWEEL;;;;
++FE72;ARABIC DAMMATAN ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0020 064C;;;;N;ARABIC SPACING DAMMATAN;;;;
++FE73;ARABIC TAIL FRAGMENT;Lo;0;AL;;;;;N;;;;;
++FE74;ARABIC KASRATAN ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0020 064D;;;;N;ARABIC SPACING KASRATAN;;;;
++FE76;ARABIC FATHA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0020 064E;;;;N;ARABIC SPACING FATHAH;;;;
++FE77;ARABIC FATHA MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0640 064E;;;;N;ARABIC FATHAH ON TATWEEL;;;;
++FE78;ARABIC DAMMA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0020 064F;;;;N;ARABIC SPACING DAMMAH;;;;
++FE79;ARABIC DAMMA MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0640 064F;;;;N;ARABIC DAMMAH ON TATWEEL;;;;
++FE7A;ARABIC KASRA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0020 0650;;;;N;ARABIC SPACING KASRAH;;;;
++FE7B;ARABIC KASRA MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0640 0650;;;;N;ARABIC KASRAH ON TATWEEL;;;;
++FE7C;ARABIC SHADDA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0020 0651;;;;N;ARABIC SPACING SHADDAH;;;;
++FE7D;ARABIC SHADDA MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0640 0651;;;;N;ARABIC SHADDAH ON TATWEEL;;;;
++FE7E;ARABIC SUKUN ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0020 0652;;;;N;ARABIC SPACING SUKUN;;;;
++FE7F;ARABIC SUKUN MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0640 0652;;;;N;ARABIC SUKUN ON TATWEEL;;;;
++FE80;ARABIC LETTER HAMZA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0621;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH;;;;
++FE81;ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0622;;;;N;GLYPH FOR ISOLATE ARABIC MADDAH ON ALEF;;;;
++FE82;ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM;Lo;0;AL;&lt;final&gt; 0622;;;;N;GLYPH FOR FINAL ARABIC MADDAH ON ALEF;;;;
++FE83;ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0623;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH ON ALEF;;;;
++FE84;ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM;Lo;0;AL;&lt;final&gt; 0623;;;;N;GLYPH FOR FINAL ARABIC HAMZAH ON ALEF;;;;
++FE85;ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0624;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH ON WAW;;;;
++FE86;ARABIC LETTER WAW WITH HAMZA ABOVE FINAL FORM;Lo;0;AL;&lt;final&gt; 0624;;;;N;GLYPH FOR FINAL ARABIC HAMZAH ON WAW;;;;
++FE87;ARABIC LETTER ALEF WITH HAMZA BELOW ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0625;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH UNDER ALEF;;;;
++FE88;ARABIC LETTER ALEF WITH HAMZA BELOW FINAL FORM;Lo;0;AL;&lt;final&gt; 0625;;;;N;GLYPH FOR FINAL ARABIC HAMZAH UNDER ALEF;;;;
++FE89;ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0626;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH ON YA;;;;
++FE8A;ARABIC LETTER YEH WITH HAMZA ABOVE FINAL FORM;Lo;0;AL;&lt;final&gt; 0626;;;;N;GLYPH FOR FINAL ARABIC HAMZAH ON YA;;;;
++FE8B;ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0626;;;;N;GLYPH FOR INITIAL ARABIC HAMZAH ON YA;;;;
++FE8C;ARABIC LETTER YEH WITH HAMZA ABOVE MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0626;;;;N;GLYPH FOR MEDIAL ARABIC HAMZAH ON YA;;;;
++FE8D;ARABIC LETTER ALEF ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0627;;;;N;GLYPH FOR ISOLATE ARABIC ALEF;;;;
++FE8E;ARABIC LETTER ALEF FINAL FORM;Lo;0;AL;&lt;final&gt; 0627;;;;N;GLYPH FOR FINAL ARABIC ALEF;;;;
++FE8F;ARABIC LETTER BEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0628;;;;N;GLYPH FOR ISOLATE ARABIC BAA;;;;
++FE90;ARABIC LETTER BEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0628;;;;N;GLYPH FOR FINAL ARABIC BAA;;;;
++FE91;ARABIC LETTER BEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0628;;;;N;GLYPH FOR INITIAL ARABIC BAA;;;;
++FE92;ARABIC LETTER BEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0628;;;;N;GLYPH FOR MEDIAL ARABIC BAA;;;;
++FE93;ARABIC LETTER TEH MARBUTA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0629;;;;N;GLYPH FOR ISOLATE ARABIC TAA MARBUTAH;;;;
++FE94;ARABIC LETTER TEH MARBUTA FINAL FORM;Lo;0;AL;&lt;final&gt; 0629;;;;N;GLYPH FOR FINAL ARABIC TAA MARBUTAH;;;;
++FE95;ARABIC LETTER TEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062A;;;;N;GLYPH FOR ISOLATE ARABIC TAA;;;;
++FE96;ARABIC LETTER TEH FINAL FORM;Lo;0;AL;&lt;final&gt; 062A;;;;N;GLYPH FOR FINAL ARABIC TAA;;;;
++FE97;ARABIC LETTER TEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 062A;;;;N;GLYPH FOR INITIAL ARABIC TAA;;;;
++FE98;ARABIC LETTER TEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 062A;;;;N;GLYPH FOR MEDIAL ARABIC TAA;;;;
++FE99;ARABIC LETTER THEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062B;;;;N;GLYPH FOR ISOLATE ARABIC THAA;;;;
++FE9A;ARABIC LETTER THEH FINAL FORM;Lo;0;AL;&lt;final&gt; 062B;;;;N;GLYPH FOR FINAL ARABIC THAA;;;;
++FE9B;ARABIC LETTER THEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 062B;;;;N;GLYPH FOR INITIAL ARABIC THAA;;;;
++FE9C;ARABIC LETTER THEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 062B;;;;N;GLYPH FOR MEDIAL ARABIC THAA;;;;
++FE9D;ARABIC LETTER JEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062C;;;;N;GLYPH FOR ISOLATE ARABIC JEEM;;;;
++FE9E;ARABIC LETTER JEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 062C;;;;N;GLYPH FOR FINAL ARABIC JEEM;;;;
++FE9F;ARABIC LETTER JEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 062C;;;;N;GLYPH FOR INITIAL ARABIC JEEM;;;;
++FEA0;ARABIC LETTER JEEM MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 062C;;;;N;GLYPH FOR MEDIAL ARABIC JEEM;;;;
++FEA1;ARABIC LETTER HAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062D;;;;N;GLYPH FOR ISOLATE ARABIC HAA;;;;
++FEA2;ARABIC LETTER HAH FINAL FORM;Lo;0;AL;&lt;final&gt; 062D;;;;N;GLYPH FOR FINAL ARABIC HAA;;;;
++FEA3;ARABIC LETTER HAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 062D;;;;N;GLYPH FOR INITIAL ARABIC HAA;;;;
++FEA4;ARABIC LETTER HAH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 062D;;;;N;GLYPH FOR MEDIAL ARABIC HAA;;;;
++FEA5;ARABIC LETTER KHAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062E;;;;N;GLYPH FOR ISOLATE ARABIC KHAA;;;;
++FEA6;ARABIC LETTER KHAH FINAL FORM;Lo;0;AL;&lt;final&gt; 062E;;;;N;GLYPH FOR FINAL ARABIC KHAA;;;;
++FEA7;ARABIC LETTER KHAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 062E;;;;N;GLYPH FOR INITIAL ARABIC KHAA;;;;
++FEA8;ARABIC LETTER KHAH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 062E;;;;N;GLYPH FOR MEDIAL ARABIC KHAA;;;;
++FEA9;ARABIC LETTER DAL ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 062F;;;;N;GLYPH FOR ISOLATE ARABIC DAL;;;;
++FEAA;ARABIC LETTER DAL FINAL FORM;Lo;0;AL;&lt;final&gt; 062F;;;;N;GLYPH FOR FINAL ARABIC DAL;;;;
++FEAB;ARABIC LETTER THAL ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0630;;;;N;GLYPH FOR ISOLATE ARABIC THAL;;;;
++FEAC;ARABIC LETTER THAL FINAL FORM;Lo;0;AL;&lt;final&gt; 0630;;;;N;GLYPH FOR FINAL ARABIC THAL;;;;
++FEAD;ARABIC LETTER REH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0631;;;;N;GLYPH FOR ISOLATE ARABIC RA;;;;
++FEAE;ARABIC LETTER REH FINAL FORM;Lo;0;AL;&lt;final&gt; 0631;;;;N;GLYPH FOR FINAL ARABIC RA;;;;
++FEAF;ARABIC LETTER ZAIN ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0632;;;;N;GLYPH FOR ISOLATE ARABIC ZAIN;;;;
++FEB0;ARABIC LETTER ZAIN FINAL FORM;Lo;0;AL;&lt;final&gt; 0632;;;;N;GLYPH FOR FINAL ARABIC ZAIN;;;;
++FEB1;ARABIC LETTER SEEN ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0633;;;;N;GLYPH FOR ISOLATE ARABIC SEEN;;;;
++FEB2;ARABIC LETTER SEEN FINAL FORM;Lo;0;AL;&lt;final&gt; 0633;;;;N;GLYPH FOR FINAL ARABIC SEEN;;;;
++FEB3;ARABIC LETTER SEEN INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0633;;;;N;GLYPH FOR INITIAL ARABIC SEEN;;;;
++FEB4;ARABIC LETTER SEEN MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0633;;;;N;GLYPH FOR MEDIAL ARABIC SEEN;;;;
++FEB5;ARABIC LETTER SHEEN ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0634;;;;N;GLYPH FOR ISOLATE ARABIC SHEEN;;;;
++FEB6;ARABIC LETTER SHEEN FINAL FORM;Lo;0;AL;&lt;final&gt; 0634;;;;N;GLYPH FOR FINAL ARABIC SHEEN;;;;
++FEB7;ARABIC LETTER SHEEN INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0634;;;;N;GLYPH FOR INITIAL ARABIC SHEEN;;;;
++FEB8;ARABIC LETTER SHEEN MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0634;;;;N;GLYPH FOR MEDIAL ARABIC SHEEN;;;;
++FEB9;ARABIC LETTER SAD ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0635;;;;N;GLYPH FOR ISOLATE ARABIC SAD;;;;
++FEBA;ARABIC LETTER SAD FINAL FORM;Lo;0;AL;&lt;final&gt; 0635;;;;N;GLYPH FOR FINAL ARABIC SAD;;;;
++FEBB;ARABIC LETTER SAD INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0635;;;;N;GLYPH FOR INITIAL ARABIC SAD;;;;
++FEBC;ARABIC LETTER SAD MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0635;;;;N;GLYPH FOR MEDIAL ARABIC SAD;;;;
++FEBD;ARABIC LETTER DAD ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0636;;;;N;GLYPH FOR ISOLATE ARABIC DAD;;;;
++FEBE;ARABIC LETTER DAD FINAL FORM;Lo;0;AL;&lt;final&gt; 0636;;;;N;GLYPH FOR FINAL ARABIC DAD;;;;
++FEBF;ARABIC LETTER DAD INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0636;;;;N;GLYPH FOR INITIAL ARABIC DAD;;;;
++FEC0;ARABIC LETTER DAD MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0636;;;;N;GLYPH FOR MEDIAL ARABIC DAD;;;;
++FEC1;ARABIC LETTER TAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0637;;;;N;GLYPH FOR ISOLATE ARABIC TAH;;;;
++FEC2;ARABIC LETTER TAH FINAL FORM;Lo;0;AL;&lt;final&gt; 0637;;;;N;GLYPH FOR FINAL ARABIC TAH;;;;
++FEC3;ARABIC LETTER TAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0637;;;;N;GLYPH FOR INITIAL ARABIC TAH;;;;
++FEC4;ARABIC LETTER TAH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0637;;;;N;GLYPH FOR MEDIAL ARABIC TAH;;;;
++FEC5;ARABIC LETTER ZAH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0638;;;;N;GLYPH FOR ISOLATE ARABIC DHAH;;;;
++FEC6;ARABIC LETTER ZAH FINAL FORM;Lo;0;AL;&lt;final&gt; 0638;;;;N;GLYPH FOR FINAL ARABIC DHAH;;;;
++FEC7;ARABIC LETTER ZAH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0638;;;;N;GLYPH FOR INITIAL ARABIC DHAH;;;;
++FEC8;ARABIC LETTER ZAH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0638;;;;N;GLYPH FOR MEDIAL ARABIC DHAH;;;;
++FEC9;ARABIC LETTER AIN ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0639;;;;N;GLYPH FOR ISOLATE ARABIC AIN;;;;
++FECA;ARABIC LETTER AIN FINAL FORM;Lo;0;AL;&lt;final&gt; 0639;;;;N;GLYPH FOR FINAL ARABIC AIN;;;;
++FECB;ARABIC LETTER AIN INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0639;;;;N;GLYPH FOR INITIAL ARABIC AIN;;;;
++FECC;ARABIC LETTER AIN MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0639;;;;N;GLYPH FOR MEDIAL ARABIC AIN;;;;
++FECD;ARABIC LETTER GHAIN ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 063A;;;;N;GLYPH FOR ISOLATE ARABIC GHAIN;;;;
++FECE;ARABIC LETTER GHAIN FINAL FORM;Lo;0;AL;&lt;final&gt; 063A;;;;N;GLYPH FOR FINAL ARABIC GHAIN;;;;
++FECF;ARABIC LETTER GHAIN INITIAL FORM;Lo;0;AL;&lt;initial&gt; 063A;;;;N;GLYPH FOR INITIAL ARABIC GHAIN;;;;
++FED0;ARABIC LETTER GHAIN MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 063A;;;;N;GLYPH FOR MEDIAL ARABIC GHAIN;;;;
++FED1;ARABIC LETTER FEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0641;;;;N;GLYPH FOR ISOLATE ARABIC FA;;;;
++FED2;ARABIC LETTER FEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0641;;;;N;GLYPH FOR FINAL ARABIC FA;;;;
++FED3;ARABIC LETTER FEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0641;;;;N;GLYPH FOR INITIAL ARABIC FA;;;;
++FED4;ARABIC LETTER FEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0641;;;;N;GLYPH FOR MEDIAL ARABIC FA;;;;
++FED5;ARABIC LETTER QAF ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0642;;;;N;GLYPH FOR ISOLATE ARABIC QAF;;;;
++FED6;ARABIC LETTER QAF FINAL FORM;Lo;0;AL;&lt;final&gt; 0642;;;;N;GLYPH FOR FINAL ARABIC QAF;;;;
++FED7;ARABIC LETTER QAF INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0642;;;;N;GLYPH FOR INITIAL ARABIC QAF;;;;
++FED8;ARABIC LETTER QAF MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0642;;;;N;GLYPH FOR MEDIAL ARABIC QAF;;;;
++FED9;ARABIC LETTER KAF ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0643;;;;N;GLYPH FOR ISOLATE ARABIC CAF;;;;
++FEDA;ARABIC LETTER KAF FINAL FORM;Lo;0;AL;&lt;final&gt; 0643;;;;N;GLYPH FOR FINAL ARABIC CAF;;;;
++FEDB;ARABIC LETTER KAF INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0643;;;;N;GLYPH FOR INITIAL ARABIC CAF;;;;
++FEDC;ARABIC LETTER KAF MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0643;;;;N;GLYPH FOR MEDIAL ARABIC CAF;;;;
++FEDD;ARABIC LETTER LAM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0644;;;;N;GLYPH FOR ISOLATE ARABIC LAM;;;;
++FEDE;ARABIC LETTER LAM FINAL FORM;Lo;0;AL;&lt;final&gt; 0644;;;;N;GLYPH FOR FINAL ARABIC LAM;;;;
++FEDF;ARABIC LETTER LAM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0644;;;;N;GLYPH FOR INITIAL ARABIC LAM;;;;
++FEE0;ARABIC LETTER LAM MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0644;;;;N;GLYPH FOR MEDIAL ARABIC LAM;;;;
++FEE1;ARABIC LETTER MEEM ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0645;;;;N;GLYPH FOR ISOLATE ARABIC MEEM;;;;
++FEE2;ARABIC LETTER MEEM FINAL FORM;Lo;0;AL;&lt;final&gt; 0645;;;;N;GLYPH FOR FINAL ARABIC MEEM;;;;
++FEE3;ARABIC LETTER MEEM INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0645;;;;N;GLYPH FOR INITIAL ARABIC MEEM;;;;
++FEE4;ARABIC LETTER MEEM MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0645;;;;N;GLYPH FOR MEDIAL ARABIC MEEM;;;;
++FEE5;ARABIC LETTER NOON ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0646;;;;N;GLYPH FOR ISOLATE ARABIC NOON;;;;
++FEE6;ARABIC LETTER NOON FINAL FORM;Lo;0;AL;&lt;final&gt; 0646;;;;N;GLYPH FOR FINAL ARABIC NOON;;;;
++FEE7;ARABIC LETTER NOON INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0646;;;;N;GLYPH FOR INITIAL ARABIC NOON;;;;
++FEE8;ARABIC LETTER NOON MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0646;;;;N;GLYPH FOR MEDIAL ARABIC NOON;;;;
++FEE9;ARABIC LETTER HEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0647;;;;N;GLYPH FOR ISOLATE ARABIC HA;;;;
++FEEA;ARABIC LETTER HEH FINAL FORM;Lo;0;AL;&lt;final&gt; 0647;;;;N;GLYPH FOR FINAL ARABIC HA;;;;
++FEEB;ARABIC LETTER HEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 0647;;;;N;GLYPH FOR INITIAL ARABIC HA;;;;
++FEEC;ARABIC LETTER HEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 0647;;;;N;GLYPH FOR MEDIAL ARABIC HA;;;;
++FEED;ARABIC LETTER WAW ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0648;;;;N;GLYPH FOR ISOLATE ARABIC WAW;;;;
++FEEE;ARABIC LETTER WAW FINAL FORM;Lo;0;AL;&lt;final&gt; 0648;;;;N;GLYPH FOR FINAL ARABIC WAW;;;;
++FEEF;ARABIC LETTER ALEF MAKSURA ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0649;;;;N;GLYPH FOR ISOLATE ARABIC ALEF MAQSURAH;;;;
++FEF0;ARABIC LETTER ALEF MAKSURA FINAL FORM;Lo;0;AL;&lt;final&gt; 0649;;;;N;GLYPH FOR FINAL ARABIC ALEF MAQSURAH;;;;
++FEF1;ARABIC LETTER YEH ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 064A;;;;N;GLYPH FOR ISOLATE ARABIC YA;;;;
++FEF2;ARABIC LETTER YEH FINAL FORM;Lo;0;AL;&lt;final&gt; 064A;;;;N;GLYPH FOR FINAL ARABIC YA;;;;
++FEF3;ARABIC LETTER YEH INITIAL FORM;Lo;0;AL;&lt;initial&gt; 064A;;;;N;GLYPH FOR INITIAL ARABIC YA;;;;
++FEF4;ARABIC LETTER YEH MEDIAL FORM;Lo;0;AL;&lt;medial&gt; 064A;;;;N;GLYPH FOR MEDIAL ARABIC YA;;;;
++FEF5;ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0644 0622;;;;N;GLYPH FOR ISOLATE ARABIC MADDAH ON LIGATURE LAM ALEF;;;;
++FEF6;ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM;Lo;0;AL;&lt;final&gt; 0644 0622;;;;N;GLYPH FOR FINAL ARABIC MADDAH ON LIGATURE LAM ALEF;;;;
++FEF7;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0644 0623;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH ON LIGATURE LAM ALEF;;;;
++FEF8;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM;Lo;0;AL;&lt;final&gt; 0644 0623;;;;N;GLYPH FOR FINAL ARABIC HAMZAH ON LIGATURE LAM ALEF;;;;
++FEF9;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0644 0625;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH UNDER LIGATURE LAM ALEF;;;;
++FEFA;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM;Lo;0;AL;&lt;final&gt; 0644 0625;;;;N;GLYPH FOR FINAL ARABIC HAMZAH UNDER LIGATURE LAM ALEF;;;;
++FEFB;ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM;Lo;0;AL;&lt;isolated&gt; 0644 0627;;;;N;GLYPH FOR ISOLATE ARABIC LIGATURE LAM ALEF;;;;
++FEFC;ARABIC LIGATURE LAM WITH ALEF FINAL FORM;Lo;0;AL;&lt;final&gt; 0644 0627;;;;N;GLYPH FOR FINAL ARABIC LIGATURE LAM ALEF;;;;
+
+
+Property changes on: theme/trunk/mageia-gfxboot-theme/trunk/po/bin/arabic.txt
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themetrunkmageiagfxbootthemetrunkpobinfixpot">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/bin/fixpot</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/bin/fixpot (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/bin/fixpot 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,27 @@
++#! /usr/bin/perl
++
++while(&lt;&gt;) {
++ if(/^\s*#|^\s*$/) { $msg[$cnt]{comment} .= $_; next }
++ if(s/^\s*msgid\b\s*//) { $cnt++; $id = 1 }
++ if(s/^\s*msgstr\b\s*//) { $id = 2 }
++ if($id == 1) { $msg[$cnt - 1]{id} .= $_; next }
++ if($id == 2) { $msg[$cnt - 1]{str} .= $_; next }
++
++ die &quot;oops at line $.\n&quot;;
++}
++
++for (@msg) {
++ print $_-&gt;{comment};
++
++ next unless defined($_-&gt;{id}) &amp;&amp; defined($_-&gt;{str});
++
++ if($_-&gt;{id} =~ /^\s*&quot;&quot;\s*$/ || $_-&gt;{str} =~ /^\s*&quot;&quot;\s*$/) {
++ print &quot;msgid &quot;, $_-&gt;{id};
++ print &quot;msgstr &quot;, $_-&gt;{str};
++ }
++ else {
++ print &quot;msgid &quot;, $_-&gt;{str};
++ print &quot;msgstr \&quot;\&quot;\n&quot;;
++ }
++}
++
+
+
+Property changes on: theme/trunk/mageia-gfxboot-theme/trunk/po/bin/fixpot
+___________________________________________________________________
+Added: svn:executable
+ + *
+
+<a id="themetrunkmageiagfxbootthemetrunkpobinpo2txt">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/bin/po2txt</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/bin/po2txt (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/bin/po2txt 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,281 @@
++#! /usr/bin/perl
++
++# convert *.po files to texts.* files suitable for gfxboot
++# usage: po2txt lang.po &gt;texts.lang
++# Note: en.po ist treated specially!
++
++use Getopt::Long;
++use Encode;
++
++sub arabic_is_letter;
++sub arabic_read_map;
++sub arabic_conv;
++
++sub read_texts;
++sub join_msg;
++sub fribidi;
++
++$opt_product = &quot;openSUSE&quot;;
++
++GetOptions(
++ 'product=s' =&gt; \$opt_product,
++ 'verbose|v' =&gt; \$opt_arabic_verbose,
++);
++
++
++chomp ($tmp_file = `mktemp /tmp/po2txt.XXXXXXXXXX`);
++
++arabic_read_map;
++
++for $lang (@ARGV) {
++ $lang = 'en' if $lang eq 'bootloader.pot';
++ $lang =~ s/\.po$//;
++ read_texts $lang;
++}
++
++unlink $tmp_file;
++
++
++sub read_texts
++{
++ local $_;
++
++ my ($lang, @f, $txt, $context, $t, $p, $ids, $file);
++
++ $lang = shift;
++
++ $file = &quot;$lang.po&quot;;
++ $file = 'bootloader.pot' if $lang eq 'en';
++
++ if($lang eq 'en') {
++ $ids = 1;
++ }
++
++ open F, $file;
++ @f = (&lt;F&gt;);
++ close F;
++
++ map { s/&lt;product&gt;/$opt_product/g; } @f;
++
++ $_ = $lang;
++ s/.*\///;
++
++ for (@f) {
++ if(/^\s*#\.\s*(txt_\S+)/) {
++ if($txt) {
++ @msgstr = @msgid if $ids || join_msg(\@msgstr) eq &quot;&quot;;
++ $txts{$txt} = join_msg(\@msgstr);
++ }
++
++ $txt = $1;
++
++ undef @msgid;
++ undef @msgstr;
++ undef $context;
++ next;
++ }
++
++ next if /^\s*#.*|^\s*$/;
++
++ if(/^\s*msgid\s*(\&quot;.*\&quot;)\s*$/) {
++ push @msgid, $1 unless $1 eq '&quot;&quot;';
++ $context = 1;
++ next;
++ }
++
++ if(/^\s*msgstr\s*(\&quot;.*\&quot;)\s*$/) {
++ push @msgstr, $1 unless $1 eq '&quot;&quot;';
++ $context = 2;
++ next;
++ }
++
++ if(/^\s*(\&quot;.*\&quot;)\s*$/) {
++ if($context == 1) {
++ push @msgid, $1;
++ }
++ elsif($context == 2) {
++ push @msgstr, $1;
++ }
++ else {
++ die &quot;format oops in ${lang}.po: $_&quot;
++ }
++ }
++ }
++
++ if($txt) {
++ @msgstr = @msgid if $ids || join_msg(\@msgstr) eq &quot;&quot;;
++ $txts{$txt} = join_msg(\@msgstr);
++ }
++
++ @txts = sort keys %txts;
++
++ for (@txts) {
++ $txt = $txts{$_};
++ $txt =~ s/\\&quot;/&quot;/g;
++ $txt =~ s/\\\\/\\/g;
++ $txt =~ s/\\n/\n/g;
++ $txt = fribidi $txt if $lang =~ /^(ar|he)/;
++ print &quot;$txt\x00&quot;
++ }
++
++ if($ids) {
++ open W, &quot;&gt;text.inc&quot;;
++ print W &quot;%\n% This file is generated automatically. Editing it is pointless.\n%\n\n&quot;;
++ print W &quot;/texts [\n&quot;;
++ $p = pop @txts;
++ for (@txts) { print W &quot; /$_\n&quot; }
++ print W &quot; /$p\n] def\n&quot;;
++ close W;
++ }
++ else {
++ open F, &quot;text.inc&quot;;
++ for (&lt;F&gt;) {
++ if(/\s+\/(txt_\S+)/) {
++ $txt_ref{$1} = undef;
++ }
++ }
++ close F;
++ for (@txts) {
++ $txt_list{$_}++;
++ $txt_multi{$_} = 1 if $txt_list{$_} &gt; 1;
++ }
++ for (@txts) {
++ $txt_unknown{$_} = 1 unless exists $txt_ref{$_};
++ }
++ for (keys %txt_ref) {
++ $txt_miss{$_} = 1 unless exists $txt_list{$_};
++ }
++
++ if(defined(%txt_miss) || defined(%txt_unknown) || defined(%txt_multi)) {
++ print STDERR &quot;$lang:\n&quot;;
++ for (sort keys %txt_miss) {
++ print STDERR &quot; missing: $_\n&quot;
++ }
++ for (sort keys %txt_unknown) {
++ print STDERR &quot; unknown: $_\n&quot;
++ }
++ for (sort keys %txt_multi) {
++ print STDERR &quot; multi: $_\n&quot;
++ }
++ }
++ }
++
++}
++
++
++sub join_msg
++{
++ local $_;
++ my ($s, $msg, $m);
++
++ $msg = shift;
++
++ for $s (@{$msg}) {
++ $_ = $s;
++ s/^\&quot;(.*)\&quot;$/$1/;
++ $m .= $_;
++ }
++
++ return $m;
++}
++
++
++sub fribidi
++{
++ local $_;
++ my $m;
++
++ $m = shift;
++
++ open F, &quot;&gt;$tmp_file&quot;;
++ print F arabic_conv($m);
++ close F;
++
++ open F, &quot;cat $tmp_file | fribidi --nopad --nobreak |&quot;;
++ $m = undef;
++ while(read F, $_, 0x10000) {
++ $m .= $_;
++ }
++ close F;
++
++ return $m;
++}
++
++
++sub arabic_conv {
++ local $_;
++ my (@c, @m, $i, @attr, @attr_name);
++
++ push @c, 0;
++ push @c, unpack(&quot;V*&quot;, encode(&quot;utf32le&quot;, decode(&quot;utf8&quot;, $_[0])));
++ push @c, 0;
++
++ # isolated: 0, initial: 1, final: 2, medial: 3
++ for ($i = 1; $i &lt; @c - 1; $i++) {
++ next if !arabic_is_letter $c[$i];
++ $attr[$i-1] += 2 if arabic_is_letter $c[$i-1];
++ $attr[$i-1] += 1 if arabic_is_letter $c[$i+1];
++ }
++
++ shift @c;
++ pop @c;
++
++ @attr_name = ( &quot;isolated&quot;, &quot;initial&quot;, &quot;final&quot;, &quot;medial&quot; );
++
++ for ($i = 0; $i &lt; @c; $i++) {
++ $m = $c[$i];
++ if(arabic_is_letter $c[$i]) {
++ $m = $arabic_map-&gt;{$c[$i]}{$attr_name[$attr[$i]]};
++ if(!$m &amp;&amp; $attr[$i] == 3) { # medial -&gt; final
++ $attr[$i] = 2;
++ $m = $arabic_map-&gt;{$c[$i]}{$attr_name[$attr[$i]]};
++ if($m &amp;&amp; $i &lt; @c - 1) {
++ if($attr[$i+1] == 3) { # next char: medial -&gt; initial
++ $attr[$i+1] = 1;
++ }
++ elsif($attr[$i+1] == 1) { # next char: initial -&gt;isolated
++ $attr[$i+1] = 0;
++ }
++ }
++ }
++ $m = $c[$i] unless $m;
++ }
++ push @m, $m;
++
++ printf STDERR &quot;%04x -&gt; %04x (%s)\n&quot;, $c[$i], $m, $attr_name[$attr[$i]] if $opt_arabic_verbose;
++ }
++
++ return encode(&quot;utf8&quot;, decode(&quot;utf32le&quot;, pack(&quot;V*&quot;, @m)));
++}
++
++
++sub arabic_is_letter
++{
++ return $_[0] &gt;= 0x600 &amp;&amp; $_[0] &lt;= 0x6ff ? 1 : 0
++}
++
++
++sub arabic_read_map
++{
++ local $_;
++ my (@i, $u, $m);
++
++ open F, &quot;bin/arabic.txt&quot;;
++ while(&lt;F&gt;) {
++ @i = split /;/;
++ $u = hex $i[0];
++ if($i[5] =~ /^&lt;(isolated|initial|final|medial)&gt; (\S{4})$/) {
++ $m = hex $2;
++ if($arabic_map-&gt;{$m}{$1}) {
++ printf STDERR &quot;%04x already has a '$1' form: %04x\n&quot;, $arabic_map-&gt;{$m}{$1}
++ }
++ $arabic_map-&gt;{$m}{$1} = $u;
++ # printf STDERR &quot;%04x %s %04x\n&quot;, $u, $1, $m;
++ }
++ }
++ close F;
++
++ print STDERR &quot;warning: no arabic support\n&quot; unless $arabic_map
++}
++
++
+
+
+Property changes on: theme/trunk/mageia-gfxboot-theme/trunk/po/bin/po2txt
+___________________________________________________________________
+Added: svn:executable
+ + *
+
+<a id="themetrunkmageiagfxbootthemetrunkpobinrm_text">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/bin/rm_text</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/bin/rm_text (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/bin/rm_text 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,63 @@
++#! /usr/bin/perl
++
++# remove a text from *.po files
++
++sub drop;
++
++die &quot;usage: rm_text id\n&quot; if @ARGV != 1;
++
++$id = shift;
++$id = &quot;txt_$id&quot; unless $id =~ /^txt_/;
++
++mkdir old, 0755;
++
++for $f (&quot;bootloader.pot&quot;, &lt;*.po&gt;) {
++ if(open F, $f) {
++ @f = &lt;F&gt;;
++ close F;
++
++ ( $new, $old ) = drop @f;
++ if(open F, &quot;&gt;&gt;old/$f&quot;) {
++ print F @$old;
++ close F;
++
++ open F, &quot;&gt;$f&quot;;
++ print F @$new;
++ close F;
++ }
++ }
++}
++
++
++sub drop
++{
++ local $_;
++ my (@f, @g, $drop_it, @d);
++
++ for (@_) {
++ push @g, $_;
++ $drop_it = 1 if /^#\.\s*${id}\s*$/;
++ if(/^\s*$/) {
++ if($drop_it) {
++ push @d, @g;
++ }
++ else {
++ push @f, @g;
++ }
++ undef $drop_it;
++ undef @g;
++ }
++ }
++
++ if(@g) {
++ if($drop_it) {
++ push @d, @g;
++ }
++ else {
++ push @f, @g;
++ }
++ }
++
++ return ( \@f, \@d );
++}
++
+
+
+Property changes on: theme/trunk/mageia-gfxboot-theme/trunk/po/bin/rm_text
+___________________________________________________________________
+Added: svn:executable
+ + *
+
+<a id="themetrunkmageiagfxbootthemetrunkpobnpo_disabled">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/bn.po_disabled</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/bn.po_disabled (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/bn.po_disabled 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,422 @@
++# LANGUAGE translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: @PACKAGE@\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2007-03-07 18:59+0100\n&quot;
++&quot;PO-Revision-Date: 2005-07-29 15:37+0530\n&quot;
++&quot;Last-Translator: Priyavert Sharma&lt;priyavert.sharma@agreeya.com&gt;\n&quot;
++&quot;Language-Team: AgreeYa Solutions &lt;linux_team@agreeya.com&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;#-#-#-#-# bootloader.bn.po (@PACKAGE@) #-#-#-#-#\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n!=1);\n&quot;
++&quot;\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;OK&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;বাতিল&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;রিবুট&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;ক্রমাগত&quot;
++
++#. txt_install
++msgid &quot;Installation&quot;
++msgstr &quot;স্থাপন&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;নিজের হাতে স্থাপন&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;স্থাপন--ACPI অসমর্থ&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;স্থাপন--সেটিংগুলি সুরক্ষিত করুন&quot;
++
++#. txt_safe_linux
++msgid &quot;Linux--Safe Settings&quot;
++msgstr &quot;লিনাক্স--সেটিংসমূহ সুরক্ষিত করুন&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;হার্ড ডিস্ক থেকে বুট করুন&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;সিস্টেম উদ্ধার করুন&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;মেমরি টেস্ট&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;বুট বিকল্পসমূহ&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;মজুদ করছি...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;আপনি গ্রাফিকাল বুট মেনু ছেড়ে যাচ্ছেন এবং রচনাশর্ত\n&quot;
++&quot; ইন্টারফেস শুরু করছে.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;হেল্প&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;স্টর্টিং...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;লিনাক্স কার্নেল লোড করছি\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot; memtest86 লোড করছি\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;বুট লোডার&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;I/O ত্রুটি&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;বুট ডিস্ক পরিবর্তন করুন&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;%u বুড ডিস্ক প্রবিষ্ট করুন.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;এটা বুড ডিস্ক %u.\n&quot;
++&quot;বুট ডিস্ক %u প্রবিষ্ট করুন.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;এটা &lt;প্রোডাক্ট&gt; বুট ডিস্ক নয়.\n&quot;
++&quot;বুট ডিস্ক %u প্রবিষ্ট করুন.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;পাসওয়ার্ড&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;আপনার ড্রাইভার আপডেট ফ্লপি রেডি নিন.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD ত্রুটি&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;একটা একটা দুদিকের DVD. আপনি দ্বিতীয় দিক থকে বুট করেছেন.\n&quot;
++&quot;\n&quot;
++&quot;DVD র দিকে পাল্টে তারপর চালাতে থাকুন.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;পাওয়ার অফ&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;সিস্টেম কি বন্ধ করব?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;হার্ড ডিস্ক&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;হার্ড ডিস্ক স্থাপন&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;ডিস্ক সরঞ্জাম (যদি খালি থাকে সমস্ত ডিস্কগুলি স্ক্যান করুন)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;ডাইরেক্টরি\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP স্থাপন&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;সার্ভার\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;পাসওয়ার্ড\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;ব্যবহারকারী(যদি খালি এনোমাস লগইন করুন)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS স্থাপন&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;ব্যবহারকারী(ব্যবহার করছি \&quot;guest\&quot; যদি খালি থাকে)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB (উইণ্ডোস শেয়ার) স্থাপন&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP স্থাপন&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;ড্রাইভার&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;ডোমেন\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;অন্য বিকল্পসমূহ&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;ভাষা&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;স্থাপন--IOAPIC সমর্থিত&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;স্থাপন--IOAPIC অসমর্থিত&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;স্থাপন--লোকাল APIC অসমর্থিত&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;হ্যাঁ&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;না&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;ফাইল&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;শেয়ার\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;স্বয়ংক্রিয় শর্ত&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;ম্যানুয়াল শর্ত&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;ZEN পার্টিশনে প্যারমিটার গঠন করুন&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;ZEN পার্টিশন ইনস্টল/আপডেট করুন&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;ZEN পার্টিশন বুট লোডার পুনরায় ইনস্টল করুন&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;ZEN পার্টিশন অসমর্থ করুন&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;ZEN পার্টিশন সমর্থ করুন&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;পাঠ্যাংশ মোড&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;ফার্মওয়্যার পরীক্ষণ&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;সরাসরি CD-ROM থেকে ড্রাইভারের আপডেট ভরার জন্যে\n&quot;
++&quot;ড্রাইভার আপডেটের ফাইলের নামগুলি প্রবিষ্ট করুন (কমা দ্বারা\n&quot;
++&quot;পৃথকীকৃত ',') এখানে:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;উত্‍স&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;আর্ক&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;কিবোর্ড&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpobootloaderpot">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/bootloader.pot</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/bootloader.pot (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/bootloader.pot 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,454 @@
++# LANGUAGE translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader\n&quot;
++&quot;PO-Revision-Date: 2005-07-27 11:49+0200\n&quot;
++&quot;Last-Translator: FULL NAME &lt;EMAIL@ADDRESS&gt;\n&quot;
++&quot;Language-Team: LANGUAGE &lt;i18n@suse.de&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;&quot;
++
++#. txt_install
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;&quot;
++
++#. txt_safe_linux
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;&quot;
++
++#. txt_dud_file_msg
++#, wrap
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;Insert driver update CD-ROM for\n\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;&quot;
++
+
+<a id="themetrunkmageiagfxbootthemetrunkpobrpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/br.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/br.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/br.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,506 @@
++# LANGUAGE translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader\n&quot;
++&quot;POT-Creation-Date: 2005-07-27 11:49+0200\n&quot;
++&quot;PO-Revision-Date: 2009-04-15 16:39+0200\n&quot;
++&quot;Last-Translator: Thierry Vignaud &lt;tvignaud@mandriva.com&gt;\n&quot;
++&quot;Language-Team: breton &lt;i18n@suse.de&gt;\n&quot;
++&quot;Language: \n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;Mat eo&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Nullañ&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Adlañsañ&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Kenderc'hel&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Loc'hañ Microsoft Windows&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux gant ar galon %s&quot;
++
++# dialog title for ftp installation
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Staliadur FTP&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Staliadur a-zorn&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Staliadur (hep ACPI)&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Loc'hañ Mandriva Linux 2010 Spring (gant surantez)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Loc'hañ eus ar bladenn&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;O wiriekaat ar memor&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Dibaboù loc'hañ&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;O kuitaat ...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Skoazell&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;O loc'hañ ...&quot;
++
++# Keep the three newlines!
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;O kargañ kalon Linux\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++# Keep the three newlines!
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;O kargañ memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++# info box title
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Karger loc'hañ&quot;
++
++# error box title
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;Fazi E/D&quot;
++
++# boot disk change dialog title
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Cheñch ar bladenn loc'hañ&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Enlakit ar bladenn loc'hañ %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Setu ar bladenn loc'hañ %u.\n&quot;
++&quot;Enlakit ar bladenn loc'hañ %u&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, fuzzy, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Setu ar bladenn loc'hañ %u.\n&quot;
++&quot;Enlakit ar bladenn loc'hañ %u&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Tremenger&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;&quot;
++
++# dvd warning title
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;Fazi DVD&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++
++# power off dialog title
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Lazhañ&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Lazhañ ar reizhiad bremañ ?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Pladenn&quot;
++
++# dialog title for hard disk installation
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Staliadur eus ar bladenn&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Renkell\n&quot;
++
++# dialog title for ftp installation
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;Staliadur FTP&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Servijer\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Tremenger\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;&quot;
++
++# dialog title for nfs installation
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;Staliadur NFS&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;Staliadur SMB (Windows Share)&quot;
++
++# dialog title for http installation
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;Staliadur HTTP&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Sturier&quot;
++
++# as in Windows Authentication Domain
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Domani\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Dibarzhoù all&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Yezh&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Staliadur--IOAPIC bev&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Staliadur--IOAPIC marv&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Staliadur--IOAPIC lec'hel marv&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Ya&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;N'eo ket&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Restr&quot;
++
++# input label: share as in &quot;Windows share&quot; (SMB)
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Rann\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Mod otomatek&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Mod dornek&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Mod skrid&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Tarzh&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Mod video&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++#, fuzzy
++msgid &quot;Driver Update&quot;
++msgstr &quot;Sturier&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Dibarzhoù ar galon&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Dre ziouer&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;ACPI ebet&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;APIC lec'hel ebet&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;&quot;
++
++# dialog title for ftp installation
++#. menu item
++#. txt_mediacheck
++#, fuzzy
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Staliadur FTP&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Stokellaoueg&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Ho evezh&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Loc'hañ Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Staliañ Mandriva Linux 2010 Spring&quot;
++
++# Keep the newlines and spaces after ':'!
++#~ msgid &quot;&quot;
++#~ &quot;Enter your password: \n&quot;
++#~ &quot;\n&quot;
++#~ &quot;\n&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Roit ho tremenger : \n&quot;
++#~ &quot;\n&quot;
++#~ &quot;\n&quot;
++
++# dialog title for ISO installation
++#~ msgid &quot;Installation from ISO file&quot;
++#~ msgstr &quot;Staliañ eus ur restr ISO&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpobspo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/bs.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/bs.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/bs.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,533 @@
++# translation of bs.po to Bosnian
++# LANGUAGE translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++# Vedran Ljubovic &lt;vljubovic@smartnet.ba&gt;, 2006.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bs\n&quot;
++&quot;POT-Creation-Date: 2005-07-27 11:49+0200\n&quot;
++&quot;PO-Revision-Date: 2006-09-16 09:28+0200\n&quot;
++&quot;Last-Translator: Vedran Ljubovic &lt;vljubovic@smartnet.ba&gt;\n&quot;
++&quot;Language-Team: Bosnian &lt;lokal@linux.org.ba&gt;\n&quot;
++&quot;Language: bs\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.10.2\n&quot;
++&quot;Plural-Forms: nplurals=3; plural=(n%10==1 &amp;&amp; n%100!=11 ? 0 : n%10&gt;=2 &amp;&amp; n&quot;
++&quot;%10&lt;=4 &amp;&amp; (n%100&lt;10 || n%100&gt;=20) ? 1 : 2);\n&quot;
++
++# ok button label
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;U redu&quot;
++
++# cancel button label
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Odustani&quot;
++
++# reboot button label
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Restart&quot;
++
++# continue button label
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Nastavi&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;&quot;
++
++# dialog title for ftp installation
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;FTP instalacija&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Ručna instalacija&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Instalacija - ACPI isključen&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Instalacija - Sigurne postavke&quot;
++
++#. txt_safe_linux
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Pokreni sa hard diska&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Popravka sistema&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Test memorije&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Opcije starta&quot;
++
++# window title for exit dialog
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Završetak...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Napuštate grafički izbor operativnog sistema\n&quot;
++&quot;i prelazite u tekstualno okruženje.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Pomoć&quot;
++
++# window title for kernel loading (see txt_load_kernel)
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Pokrećem...&quot;
++
++# Keep the three newlines!
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Učitavam Linux kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++# Keep the three newlines!
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Učitavam memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++# info box title
++#. info box title
++#. txt_info_title
++#, fuzzy
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Boot loader&quot;
++
++# error box title
++#. error box title
++#. txt_error_title
++#, fuzzy
++msgid &quot;I/O Error&quot;
++msgstr &quot;U/I greška&quot;
++
++# boot disk change dialog title
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Promijenite boot disk&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Ubacite boot disk %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Ovo je boot disk %u.\n&quot;
++&quot;Ubacite boot disk %u.&quot;
++
++# &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, fuzzy, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Ovo nije &lt;product&gt; boot disk.\n&quot;
++&quot;Molim ubacite boot disk %u.&quot;
++
++# password dialog title
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Šifra&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Pripremite vašu disketu sa drajverima.&quot;
++
++# dvd warning title
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD greška&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Ovo je dvostrani DVD. Startovali ste sistem sa pogrešne strane.\n&quot;
++&quot;\n&quot;
++&quot;Okrenite DVD i pokušajte ponovo.&quot;
++
++# power off dialog title
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Isključenje&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Da ugasim računar?&quot;
++
++# menu entry for hard disk installation
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Hard disk&quot;
++
++# dialog title for hard disk installation
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Instalacija na hard disk&quot;
++
++#. txt_hd_diskdevice
++#, fuzzy
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Disk uređaj (ako je prazno, pretraži diskove)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Direktorij\n&quot;
++
++# dialog title for ftp installation
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP instalacija&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Server\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Šifra\n&quot;
++
++# label for ftp user input
++#. label for ftp user input
++#. txt_user1
++#, fuzzy
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Korisnik (ako je prazno, anonimna prijava)\n&quot;
++
++# dialog title for nfs installation
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS instalacija&quot;
++
++# label for smb user input
++#. label for smb user input
++#. txt_user2
++#, fuzzy
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Korisnik (ako je prazno, koristim \&quot;guest\&quot;)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++#, fuzzy
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;Ručna instalacija&quot;
++
++# dialog title for http installation
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP instalacija&quot;
++
++# 'driver' as in '(hardware) driver update'
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Drajver&quot;
++
++# as in Windows Authentication Domain
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Domena\n&quot;
++
++# button label for other/more options
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Ostale opcije&quot;
++
++# label for language selection
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Jezik&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Instalacija - Uključen IOAPIC&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Instalacija - Isključen IOAPIC&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Instalacija - Isključen lokalni APIC&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Da&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Ne&quot;
++
++# menu item for selecting a file
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Datoteka&quot;
++
++# input label: share as in &quot;Windows share&quot; (SMB)
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Dijeljeni resurs\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;&quot;
++
++# 'driver' as in '(hardware) driver update'
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++#, fuzzy
++msgid &quot;Driver Update&quot;
++msgstr &quot;Drajver&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++#, fuzzy
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Instalacija - Sigurne postavke&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++#, fuzzy
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Popravka sistema&quot;
++
++# dialog title for ftp installation
++#. menu item
++#. txt_mediacheck
++#, fuzzy
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;FTP instalacija&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;&quot;
++
++# Keep the newlines and spaces after ':'!
++#~ msgid &quot;&quot;
++#~ &quot;Enter your password: \n&quot;
++#~ &quot;\n&quot;
++#~ &quot;\n&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Unesite vašu šifru: \n&quot;
++#~ &quot;\n&quot;
++#~ &quot;\n&quot;
++
++# dialog title for ISO installation
++#~ msgid &quot;Installation from ISO file&quot;
++#~ msgstr &quot;Instalacija iz ISO datoteke&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpocapo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/ca.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/ca.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/ca.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,483 @@
++# LANGUAGE translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: YaST (@memory@)\n&quot;
++&quot;Report-Msgid-Bugs-To: translation@suse.de\n&quot;
++&quot;POT-Creation-Date: 2006-05-15 15:07+0200\n&quot;
++&quot;PO-Revision-Date: 2007-02-19 15:09+0100\n&quot;
++&quot;Last-Translator: Olga López\n&quot;
++&quot;Language-Team: Catalan\n&quot;
++&quot;Language: \n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;D'acord&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Anul·la&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Reinicia&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Continua&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Instal·lació&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Instal·lació manual&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Instal·lació -- ACPI inhabilitada&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Instal·lació -- Configuració segura&quot;
++
++#. txt_safe_linux
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Arrenca des del disc dur&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Sistema de recuperació&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Prova de memòria&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Opcions d'arrencada&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Sortida...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Esteu sortint del menú d'arrencada gràfic i\n&quot;
++&quot;iniciant la interfície del mode de text.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Ajuda&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Inicialització...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Càrrega del nucli de Linux\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Càrrega del memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Carregador de l'arrencada&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;Error d'E/S&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Canvieu el disc d'arrencada&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Inseriu el disc d'arrencada %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Aquest és el disc d'arrencada %u.\n&quot;
++&quot;Inseriu el disc d'arrencada %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Aquest no és un disc d'arrencada per a &lt;product&gt;.\n&quot;
++&quot;Inseriu el disc d'arrencada %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Contrasenya&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Prepareu el disquet d'actualització de controladors.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;S'ha produït un error de DVD&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Aquest DVD té dues cares. Heu arrencat des de la segona cara.\n&quot;
++&quot;\n&quot;
++&quot;Gireu el DVD i continueu.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Apaga&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Voleu aturar el sistema ara?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Disc dur&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Instal·lació del disc dur&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Dispositiu de disc (escaneja tots els discs si es deixa buit)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Directori\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;Instal·lació per FTP&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Servidor\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Contrasenya\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Usuari (entrada anònima si es deixa buit)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;Instal·lació per NFS&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Usuari (utilitza \&quot;guest\&quot; si es deixa buit)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;Instal·lació de SMB (recurs compartit del Windows)&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;Instal·lació per HTTP&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Controlador&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Domini\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Altres opcions&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Idioma&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Instal·lació -- IOAPIC habilitat&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Instal·lació -- IOAPIC inhabilitat&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Instal·lació -- APIC local inhabilitat&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Sí&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;No&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Fitxer&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Recurs compartit\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Mode automàtic&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Mode manual&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Configura els paràmetres a la partició de ZEN&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Instal·la o actualitza la partició de ZEN&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Torna a instal·lar el carregador de l'arrencada de la partició de ZEN&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Inhabilita la partició de ZEN&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Habilita la partició de ZEN&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Mode de text&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Prova de microprogramari&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Per a carregar les actualitzacions dels controladors directament des del CD-&quot;
++&quot;ROM,\n&quot;
++&quot;introduïu els noms dels fitxers d'actualització de controladors (separats\n&quot;
++&quot;per comes ',') aquí:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Font&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Actualització de controladors&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Arquit.&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++#, fuzzy
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Altres opcions&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Per defecte&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Teclat&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;Linux -- Configuració segura&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpocspo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/cs.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/cs.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/cs.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,494 @@
++# Translation of cs.po to Czech
++# translation of cs.po to cs_CZ
++# LANGUAGE translations for boot loader
++# Copyright (C) 2004 SUSE LINUX AG
++#
++# Klara Cihlarova &lt;koty@seznam.cz&gt;, 2004, 2005, 2006.
++# Michal Bukovjan &lt;bukm@centrum.cz&gt;, 2009, 2010.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: cs\n&quot;
++&quot;PO-Revision-Date: 2010-05-14 21:55+0200\n&quot;
++&quot;Last-Translator: Michal Bukovjan &lt;bukm@centrum.cz&gt;\n&quot;
++&quot;Language-Team: Czech &lt;kde-i18n-doc@kde.org&gt;\n&quot;
++&quot;Language: cs\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: Lokalize 1.0\n&quot;
++&quot;Plural-Forms: nplurals=3; plural=(n%10==1 &amp;&amp; n%100!=11 ? 0 : n%10&gt;=2 &amp;&amp; n&quot;
++&quot;%10&lt;=4 &amp;&amp; (n%100&lt;10 || n%100&gt;=20) ? 1 : 2);\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;OK&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Zrušit&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Restartovat&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Pokračovat&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Zavést Microsoft Windows&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Nástroj pro zjištění hardware&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux s jádrem %s&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Kontrola instalačního média&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Ruční instalace&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Instalace -- bez ACPI&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Instalace -- bezpečné nastavení&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Zavést Mandriva Linux 2010 Spring (bezpečný režim)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Spustit z disku&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Záchranný systém&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Test paměti&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Parametry startu&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Ukončuji...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Opouštíte grafickou startovací nabídku\n&quot;
++&quot;a spouštíte textový režim.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Nápověda&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Startuji...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Zavádím linuxové jádro\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Zavádím memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Zavaděč&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;Chyba I/O&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Změnit startovací disk&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Vložte startovací disk %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Toto je startovací disk %u.\n&quot;
++&quot;Vložte prosím disk %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Toto není startovací disk systému &lt;product&gt;.\n&quot;
++&quot;Vložte startovací disk %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Heslo&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Připravte si disketu s ovladači.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;Chyba DVD&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Toto je oboustranné DVD. Spouštíte systém z druhé strany DVD.\n&quot;
++&quot;\n&quot;
++&quot;Obraťte prosím DVD a pokračujte.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Vypnout&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Chcete nyní vypnout systém?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Pevny disk&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Instalace z disku&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Disk (při nevyplnění prohledávání všech disků)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Adresář\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP instalace&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Server\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Heslo\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Uživatel (při nevyplnění anonymní přihlášení)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS instalace&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Uživatel (při nevyplnění nastaveno na \&quot;guest\&quot;)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB instalace (sdílený adresář)&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP instalace&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Ovladač&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Doména\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Další volby&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Jazyk&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Instalace -- s IOAPIC&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Instalace -- bez IOAPIC&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Instalace -- bez local APIC&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Ano&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Ne&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Soubor&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Sdílení\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Automatický režim&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Ruční režim&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Nastavit parametry pro ZEN oddíl&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Instalovat či aktualizovat ZEN oddíl&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Reinstalovat zavaděč ZEN oddílu&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Zakázat ZEN oddíl&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Povolit ZEN oddíl&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Textový režim&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Test firmwaru&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Pro nahrání aktualizací ovladačů přímo z CD-ROM,\n&quot;
++&quot;zadejte jména souborů aktualizací (oddělená\n&quot;
++&quot;čárkami ','):\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Zdroj&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Video režim&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Aktualizace ovladače&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Arch&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Volba jádra&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Výchozí&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Bezpečné nastavení&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Bez ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Bez local APIC&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Opravit nainstalovaný systém&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Kontrola instalačního média&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Klávesnice&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Stáhnout aktualizace ovladačů&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Zadejte adresu aktualizace ovladačů\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Chybná architektura&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;Toto je 32bitový počítač. Nelze na něm používat nebo instalovat 64bitový &quot;
++&quot;software.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Varování&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;Chystáte se instalovat 32bitový software na 64bitový počítač.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;Vložte CD-ROM s aktualizacemi ovladačů pro\n&quot;
++&quot;„%s”.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Vložte do zařízení zpět CD-ROM s distribucí Mandriva Linux.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;Obnovit zálohu draksnapshot&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Zavést Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Instalovat Mandriva Linux 2010 Spring&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpocypo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/cy.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/cy.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/cy.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,518 @@
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader=-cy\n&quot;
++&quot;POT-Creation-Date: 2005-07-27 11:49+0200\n&quot;
++&quot;PO-Revision-Date: 2009-08-24 19:12-0000\n&quot;
++&quot;Last-Translator: Rhoslyn Prys &lt;rprys@yahoo.com&gt;\n&quot;
++&quot;Language-Team: Cymraeg/Welsh &lt;post@meddal.com&gt;\n&quot;
++&quot;Language: \n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Poedit-Language: Welsh\n&quot;
++&quot;X-Poedit-Country: UNITED KINGDOM\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n == 2) ? 1 : 0;\n&quot;
++
++# ok button label
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;Iawn&quot;
++
++# cancel button label
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Diddymu&quot;
++
++# reboot button label
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Ailgychwyn&quot;
++
++# continue button label
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Parhau&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Cychwyn Microsoft Windows&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Teclyn Canfod Caledwedd&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux gyda cnewyllyn %s&quot;
++
++# dialog title for ftp installation
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Gwirio'r Cyfrwng Gosod&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Gosod gyda Llaw&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Gosod--Anablu ACPI&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Gosod--Gosodiadau Diogel&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Gosod Mandriva Linux 2010 Spring (modd diogel)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Gosod o'r Ddisg Galed.&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;System Achub&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Prawf Cof&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Dewisiadau Cychwyn&quot;
++
++# window title for exit dialog
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Gadael...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Rydych yn gadael y ddewislen graffigol ac\n&quot;
++&quot;yn cychwyn y rhyngwyneb modd testun.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Cymorth&quot;
++
++# window title for kernel loading (see txt_load_kernel)
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Cychwyn...&quot;
++
++# Keep the three newlines!
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Llwytho Cnewyllyn Linux\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++# Keep the three newlines!
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Llwytho memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++# info box title
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Cychwynnwr&quot;
++
++# error box title
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;Gwall I/O&quot;
++
++# boot disk change dialog title
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Newid Disg Cychwyn&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Mewnosod disg cychwyn %u&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Hwn yw disg cychwyn %u.\n&quot;
++&quot;Mewnosodwch ddisg cychwyn %u.&quot;
++
++# &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Nid disg cychwyn &lt;product&gt; yw hwn.\n&quot;
++&quot;Mewnosodwch ddisg cychwyn %u.&quot;
++
++# password dialog title
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Cyfrinair&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Paratowch eich disg meddal gyrrwyr.&quot;
++
++# dvd warning title
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;Gwall DVD&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Mae hwn yn DVD dwy ochr. Rydych wedi cychwyn o'r ail ochr.\n&quot;
++&quot;\n&quot;
++&quot;Trowch y DVD drosodd ac yna parhau.&quot;
++
++# power off dialog title
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Diffodd y Pŵer&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Atal y system nawr?&quot;
++
++# menu entry for hard disk installation
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Disg Caled&quot;
++
++# dialog title for hard disk installation
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Gosod Disg Caled&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Dyfais Disgiau (sganiwch bob disg os yn wag)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Cyfeiriadur\n&quot;
++
++# dialog title for ftp installation
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;Gosodiad FTP&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Gweinydd\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Cyfrinair\n&quot;
++
++# label for ftp user input
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Defnyddiwr (mewngofnod anhysbys os yw'n wag)\n&quot;
++
++# dialog title for nfs installation
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;Gosodiad NFS&quot;
++
++# label for smb user input
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Defnyddiwr (defnyddio \&quot;guest\&quot; Os yw'n wag)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;Gosod SMB (Rhannu Windows)&quot;
++
++# dialog title for http installation
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;Gosod HTTP&quot;
++
++# 'driver' as in '(hardware) driver update'
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Gyrrwr&quot;
++
++# as in Windows Authentication Domain
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Parth\n&quot;
++
++# button label for other/more options
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Dewisiadau Eraill&quot;
++
++# label for language selection
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Iaith&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Gosodiad--IOAPIC wedi ei Alluogi&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Gosodiad--IOAPIC wedi ei Anablu&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Gosodiad--APIC Lleol wedi ei Anablu&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Iawn&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Na&quot;
++
++# menu item for selecting a file
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Ffeil&quot;
++
++# input label: share as in &quot;Windows share&quot; (SMB)
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Rhannu\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Modd Awtomatig&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Modd Llaw&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Ffurfweddu Paramedrau Rhaniad ZEN&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Gosod neu Ddiweddaru Rhaniad ZEN&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Ailosod Cychwynnwr Rhaniad ZEN&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Anablu Rhaniad ZEN&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Galluogi Rhaniad ZEN&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Modd Testun&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Prawf Caledwar&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;I lwytho'r diweddariadau o'r CD-ROM, rhowch\n&quot;
++&quot;enw'r ffeil diweddaru'r (wedi ei wahannu gan\n&quot;
++&quot;gollnod',') yma:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Ffynhonnell&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Modd Fideo&quot;
++
++# 'driver' as in '(hardware) driver update'
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Diweddaru Gyrrwr&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Arch&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Dewis Cnewyllyn&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Rhagosodedig&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Gosodiadau Diogel&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Dim ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Dim APIC Lleol&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Trwsio System wedi ei Osod&quot;
++
++# dialog title for ftp installation
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Gwirio'r Cyfrwng Gosod&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Bysellfwrdd&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Diweddaru Llwytho Gyrrwr&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Rhowch URL Diweddaru Gyrrwr\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Pensaerniarth anghywir&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++#, fuzzy
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;Cyfrifiadur 32 did yw hwn&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Rhybudd&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;Rydych ar fin gosod meddalwedd 32did ar gyfrifiadur 64did.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;Mewnosod diweddariad gyrrwr CD-ROM ar gyfer\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Rhowch CD-ROM Mandriva Linux nôl yn y gyrrwr.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;Adfer copïau wrth gefn draksnapshot&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Cychwyn Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Gosod Mandriva Linux 2010 Spring&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpodapo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/da.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/da.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/da.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,492 @@
++# translation of da.po to Danish
++# LANGUAGE translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++# Martin Møller &lt;martin@martinm-76.dk&gt;, 2005.
++# Keld Simonsen &lt;keld@dkuug.dk&gt;, 2009.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: da\n&quot;
++&quot;PO-Revision-Date: 2009-12-30 20:54+0200\n&quot;
++&quot;Last-Translator: Keld Simonsen &lt;keld@dkuug.dk&gt;\n&quot;
++&quot;Language-Team: Danish &lt;dansk@dansk-gruppen.dk&gt;\n&quot;
++&quot;Language: da\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;O.k.&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Annullér&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Genstart&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Fortsæt&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Start Microsoft Windows op&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Værktøj til at bestemme materiel&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux med kerne %s&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Tjek installationsmedie&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Manuel installation&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Installation--ACPI deaktiveret&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Installation--fejlsikret&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Start Mandriva Linux 2010 Spring op (sikker tilstand)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Boot fra harddisk&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Redningssystem&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Hukommelsestest&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Boot-valgmuligheder&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Afslutter...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Du forlader den grafiske bootmenu, og\n&quot;
++&quot;starter grænsefladen i teksttilstand.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Hjælp&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Starter...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Indlæser Linux-kernen\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Indlæser 'memtest86'\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Bootloader&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;I/O-fejl&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Skift bootdisk&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Indsæt bootdisk %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Dette er bootdisk %u.\n&quot;
++&quot;Indsæt bootdisk %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Dette er ikke en &lt;product&gt; bootdisk.\n&quot;
++&quot;Indsæt bootdisk %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Adgangskode&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Gør din driver-opdateringsdiskette klar.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD-fejl&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Dette er en tosidet DVD. Du har startet op fra den anden side.\n&quot;
++&quot;\n&quot;
++&quot;Vend DVD'en om og prøv igen.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Sluk maskinen&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Luk systemet ned nu?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Harddisk&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Harddisk-installation&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Diskenhed (gennemsøger alle diske hvis tom)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Mappe\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP-installation&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Server\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Adgangskode\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Bruger (anonymt login hvis tom)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS-installation&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Bruger (anvender \&quot;guest\&quot; hvis tom)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB-installation (Windows fildeling)&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP-installation&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Driver&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Domæne\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Andre valgmuligheder&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Sprog&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Installation--IOAPIC aktiveret&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Installation--IOAPIC deaktiveret&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Installation--Lokal APIC deaktiveret&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Ja&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Nej&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Fil&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Delt ressource\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Automatisk tilstand&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Manuel tilstand&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Konfigurér parametre på ZEN-partition&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Installér eller opdatér ZEN-partition&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Geninstallér ZEN-partitionens bootloader&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Deaktivér ZEN-partition&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Aktivér ZEN-partition&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Teksttilstand&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Firmware-test&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;For at indlæse driveropdateringer direkte fra CD-ROM,\n&quot;
++&quot;angives filnavnene for driveropdateringerne (adskilt\n&quot;
++&quot;af kommaer ',') her:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Kilde&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Grafisk tilstand&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Driveropdatering&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Ark.&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Kerne-valgmulighed&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Standard&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Fejlsikrede indstillinger&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Ingen ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Ingen lokal APIC&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Reparér installeret system&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Tjek installationsmedie&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Tastatur&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Hent driver-opdatering&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Indtast URL for driver-opdatering\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Forkert arkitektur&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;Dette er en 32-bit maskine. Du kan ikke bruge eller installere 64-bit &quot;
++&quot;programmel på den.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Advarsel&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;Du er ved at installere 32-bit programmel på en 64-bit maskine.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;Indsæt driver-opdaterings CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Sæt Mandriva Linux CD-ROM'en tilbage i drevet.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;Genetablér draksnapshot sikkerhedskopi&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Start Mandriva Linux 2010 Spring op&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Installér Mandriva Linux 2010 Spring&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpodepo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/de.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/de.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/de.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,496 @@
++# translation of de.po to deutsch
++# translation of de.po to
++# LANGUAGE translations for boot loader
++# Copyright (C) 2004 SUSE LINUX AG
++#
++# Antje Faber &lt;afaber@suse.de&gt;, 2004, 2005.
++# Oliver Burger &lt;oliver@mandrivauser.de&gt;, 2009, 2010.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: de\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2005-07-27 16:23+0200\n&quot;
++&quot;PO-Revision-Date: 2010-04-27 11:31+0200\n&quot;
++&quot;Last-Translator: Oliver Burger &lt;oliver@mandrivauser.de&gt;\n&quot;
++&quot;Language-Team: German &lt;cooker-i18n@mandrivalinux.org&gt;\n&quot;
++&quot;Language: de\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++&quot;X-Generator: Lokalize 1.0\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;O.K.&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Abbrechen&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Neustart&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Weiter&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Starte Microsoft Windows&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Hardware-Erkennungswerkzeug&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux mit Kernel %s&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Prüfe Installationsmedium&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Manuelle Installation&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Installation - ACPI deaktiviert&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Installation - Sichere Einstellungen&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Starten von Mandriva Linux 2010 Spring (sicherer Modus)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Von Festplatte booten&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Rettungssystem&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Speichertest&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Bootoptionen&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Beenden ...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Sie verlassen das grafische Bootmenü und\n&quot;
++&quot;kommen in den Textmodus.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Hilfe&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Starten...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Laden des Linux-Kernels\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Laden von memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Bootloader&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;Ein-/Ausgabefehler&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Bootdiskette wechseln&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Bootdiskette %u einlegen.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Dies ist Bootdiskette %u.\n&quot;
++&quot;Legen Sie bitte die Bootdiskette %u ein.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Dies ist keine &lt;product&gt;-Bootdiskette.\n&quot;
++&quot;Legen Sie bitte die Bootdiskette %u ein.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Passwort&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Halten Sie die Aktualisierungsdiskette für den Treiber bereit.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD-Fehler&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Dies ist eine doppelseitige DVD. Sie haben von der zweiten Seite gebootet.\n&quot;
++&quot;\n&quot;
++&quot;Drehen Sie bitte die DVD um, und fahren Sie dann fort.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Ausschalten&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;System jetzt anhalten?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Festplatte&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Festplatten-Installation&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Festplattengerät (scannt alle Festplatten, falls leer)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Verzeichnis\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP-Installation&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Server\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Passwort\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Benutzer (Anonyme-Anmeldung, falls leer)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS-Installation&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Benutzer (verwendet \&quot;guest\&quot;, falls leer)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB (Windows Share)-Installation&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP-Installation&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Treiber&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Domain\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Weitere Optionen&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Sprache&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Installation - IOAPIC aktiviert&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Installation - IOAPIC deaktiviert&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Installation - Lokaler APIC deaktiviert&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Ja&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Nein&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Datei&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Freigabe\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Automatischer Modus&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Manueller Modus&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Parameter in ZEN-Partition konfigurieren&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;ZEN-Partition installieren oder aktualisieren&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Bootloader für ZEN-Partition neu installieren&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;ZEN-Partition deaktivieren&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;ZEN-Partition aktivieren&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Textmodus&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Firmware-Test&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Wenn Sie Treiber-Aktualisierungen direkt von der CD-ROM laden möchten,\n&quot;
++&quot;geben Sie hier die Dateinamen der Treiber-Aktualisierungen\n&quot;
++&quot;(durch Kommas getrennt) ein:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Quelle&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Videomodus&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Treiber-Aktualisierung&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Architektur&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Kernel Optionen&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Standard&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Sichere Einstellungen&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Kein ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Kein lokales APIC&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Installiertes System reparieren&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Prüfe Installationsmedium&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Tastatur&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Treiber-Updates herunterladen&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Treiber-Update URL eingeben\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Falsche Architektur&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;Dies ist ein 32-bit Computer. Sie können keine 64-bit Software auf ihm &quot;
++&quot;benutzen.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Warnung&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++&quot;Sie sind dabei, 32-bit Software auf einem 64-bit Computer zu installieren.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;Legen Sie die Treiber Update CD-ROM für\n&quot;
++&quot;\&quot;%s\&quot; ein.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Legen Sie die Mandriva-Linux CD-ROM erneut in Ihr Laufwerk ein.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;Stelle das Draksnapshot-Backup wieder her&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Starten von Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Installiere Mandriva Linux 2010 Spring&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpoelpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/el.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/el.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/el.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,508 @@
++# translation of el.po to Hellenic-Ελληνικά-Greek
++# translation of el.po to Hellenic
++# LANGUAGE translations for boot loader
++# Copyright (C) 2004 SUSE LINUX AG
++#
++# Hellenic SuSE Translators Group &lt;hstg@billg.gr&gt;, 2004, 2005.
++# Hellenic SuSE Translation Team &lt;hstg@billg.gr&gt;, 2005.
++# Glentadakis Dimitrios &lt;dglent@gmail.com&gt;, 2009.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader.el\n&quot;
++&quot;POT-Creation-Date: \n&quot;
++&quot;PO-Revision-Date: 2009-12-01 07:32+0100\n&quot;
++&quot;Last-Translator: Glentadakis Dimitrios &lt;dglent@gmail.com&gt;\n&quot;
++&quot;Language-Team: Greek &lt;i18ngr@lists.hellug.gr&gt;\n&quot;
++&quot;Language: el\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: Lokalize 1.0\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;Εντάξει&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Ακύρωση&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Επανεκκίνηση&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Συνέχεια&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Εκκίνηση Microsoft Windows&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Εργαλείο Ανίχνευσης Υλικού&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux με kernel %s&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Εγκατάσταση&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Χειροκίνητη Εγκατάσταση&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Εγκατάσταση --ACPI Απενεργοποιημένο&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Εγκατάσταση --Ασφαλείς Ρυθμίσεις&quot;
++
++# dialog title for smb installation
++# msgid &quot;SMB (Windows Share) Installation&quot;
++# msgstr &quot;Εγκατάσταση SMB (Windows Share)&quot;
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Εκκίνηση Mandriva Linux 2010 Spring (ασφαλής λειτουργία)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Εκκίνηση από τον Σκληρό Δίσκο&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Σύστημα Διάσωσης&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Έλεγχος Μνήμης&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Ρυθμίσεις Εκκίνησης&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Έξοδος...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Εγκαταλείπετε το μενού γραφικής εκκίνησης και\n&quot;
++&quot;ξεκινάτε το περιβάλλον κατάστασης κειμένου.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Βοήθεια&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Εκκίνηση...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Ο πυρήνας του Linux φορτώνεται\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Το memtest86 φορτώνεται\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Διαχειριστής Εκκίνησης &quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;Σφάλμα Εισ/Εξ&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Αλλαγή Δισκέτας Εκκίνησης&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Παρακαλώ εισάγετε την δισκέτα εκκίνησης %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Αυτή είναι η δισκέτα εκκίνησης %u.\n&quot;
++&quot;Παρακαλώ εισάγετε τη δισκέτα εκκίνησης %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Αυτή δεν είναι δισκέτα εκκίνησης του &lt;product&gt;.\n&quot;
++&quot;Παρακαλώ εισάγετε τη δισκέτα εκκίνησης %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Κωδικός&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Ετοιμάστε την δισκέτα ενημέρωσης οδηγών.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;Σφάλμα DVD&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Αυτό είναι DVD δύο πλευρών. Έχετε κάνει εκκίνηση από την δεύτερη πλευρά.\n&quot;
++&quot;\n&quot;
++&quot;Γυρίστε το DVD και συνεχίστε.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Διακοπή λειτουργίας&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Θέλετε να σταματήσετε το σύστημα τώρα;&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Σκληρός Δίσκος&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Εγκατάσταση Σκληρού Δίσκου&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Συσκευή Δίσκου (Ελέγχει Όλους τους Δίσκους Αν είναι Κενοί)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Κατάλογος\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;Εγκατάσταση FTP&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Διακομιστής\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Κωδικός\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Χρήστης (Ανώνυμη Σύνδεση Αν είναι Κενό)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;Εγκατάσταση NFS&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Χρήστης (Χρήση του \&quot;guest\&quot; Αν είναι Κενό)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;Εγκατάσταση SMB (Windows Share)&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;Εγκατάσταση HTTP&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Οδηγός&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Περιοχή\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Άλλες Επιλογές&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Γλώσσα&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Εγκατάσταση -- Ενεργοποιημένο το IOAPIC&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Εγκατάσταση--IOAPIC Απενεργοποιημένο&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Εγκατάσταση -- Το Τοπικό APIC είναι Απενεργοποιημένο&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Ναι&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Όχι&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Αρχείο&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Κοινόχρηστο\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Αυτόματη Κατάσταση&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Χειροκίνητη Κατάσταση&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Ρύθμιση Παραμέτρων στην Κατάτμηση ΖΕΝ&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Εγκατάσταση ή Ενημέρωση της Κατάτμησης ΖΕΝ&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Επανεγκατάσταση του Διαχειριστή Εκκίνησης για την Κατάτμηση ΖΕΝ&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Απενεργοποίηση Κατάτμησης ΖΕΝ&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Ενεργοποίηση Κατάτμησης ΖΕΝ&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Κατάσταση Κειμένου&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Δοκιμή Firmware&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Για να φορτώσετε ενημερώσεις οδηγών κατευθείαν από το CD-ROM,\n&quot;
++&quot;πρέπει να εισάγετε εδώ τα ονόματα των αρχείων των οδηγών ενημέρωσης &quot;
++&quot;(χωρισμένα\n&quot;
++&quot;από κόμμα ','):\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Πηγή&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Ρύθμιση Οθόνης&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Ενημέρωση Οδηγού&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Τόξο&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Επιλογές πυρήνα&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Προκαθορισμένο&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Ασφαλείς Ρυθμίσεις&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Χωρίς ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Χωρίς Τοπικό ACPI&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Επισκευή Εγκατεστημένου Συστήματος&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Έλεγχος Μέσου Εγκατάστασης&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Πληκτρολόγιο&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Λήψη Ενημέρωσης του Οδηγού&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Εισάγετε το URL Ενημερωσης του Οδηγού\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Λάθος αρχιτεκτονική&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;Έχετε έναν υπολογιστή 32-bit: Δεν μπορείτε να χρησιμοποιήσετε λογισμικό 64-&quot;
++&quot;bit σε αυτόν.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Προσοχή&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;Πρόκειται να εγκαταστήσετε λογισμικό 32-bit σε υπολογιστή 64-bit.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;Εισάγετε το CD-ROM αναβάθμισης\n&quot;
++&quot;των οδηγών για « %s ».&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Παρακαλώ εισάγετε ξανά το CD-ROM Mandriva στον οδηγό.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;Επαναφορά αντιγράφων ασφαλείας draksnapshot&quot;
++
++# dialog title for smb installation
++# msgid &quot;SMB (Windows Share) Installation&quot;
++# msgstr &quot;Εγκατάσταση SMB (Windows Share)&quot;
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Εκκίνηση Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Εγκατάσταση Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;Linux--Ασφαλείς Ρυθμίσεις&quot;
++
++#~ msgid &quot;Kernel&quot;
++#~ msgstr &quot;Πυρήνας&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpoeopo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/eo.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/eo.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/eo.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,537 @@
++# translation of bootloader.po to Esperanto
++# LANGUAGE translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++# Vilhelmo Lutermano &lt;vlutermano@free.fr&gt;, 2007.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader\n&quot;
++&quot;POT-Creation-Date: 2005-07-27 11:49+0200\n&quot;
++&quot;PO-Revision-Date: 2007-12-29 05:04+0100\n&quot;
++&quot;Last-Translator: Vilhelmo Lutermano &lt;vlutermano@free.fr&gt;\n&quot;
++&quot;Language-Team: Esperanto &lt;eo@li.org&gt;\n&quot;
++&quot;Language: eo\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++
++# ok button label
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;JES&quot;
++
++# cancel button label
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Rezigni&quot;
++
++# reboot button label
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Restarti&quot;
++
++# continue button label
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Daŭrigi&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Starto Mikrosofta Vindozo&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linukso kun kerno %s&quot;
++
++# dialog title for ftp installation
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;FTP-instalado&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Permana instalo&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Instalado--ACPI Malŝaltita&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Instalado--Sekuraj Agordoj&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Starto de Mandriva Linux 2010 Spring (sekura moduso)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Starto de Fiskdisko&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Ripari Sistemon&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Memoro-testo&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Start-opcioj&quot;
++
++# window title for exit dialog
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Elirante...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Vi forlasas la grafikan startmenuon kaj\n&quot;
++&quot;startigas la interfacon de teksta moduso&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Helpo&quot;
++
++# window title for kernel loading (see txt_load_kernel)
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Startanta...&quot;
++
++# Keep the three newlines!
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Ŝarĝanta la Linukso-kernon\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++# Keep the three newlines!
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Ŝarĝanta memortest86\n&quot;
++&quot;\n&quot;
++
++# info box title
++#. info box title
++#. txt_info_title
++#, fuzzy
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Startŝarĝilo&quot;
++
++# error box title
++#. error box title
++#. txt_error_title
++#, fuzzy
++msgid &quot;I/O Error&quot;
++msgstr &quot;enelig-eraro&quot;
++
++# boot disk change dialog title
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Ŝanĝu la Start-Diskon&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Enigu la startdiskon %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Tio ĉi estas la startdisko %u.\n&quot;
++&quot;Enigu la startdiskon %u.&quot;
++
++# &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, fuzzy, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Tiu ne estas &lt;product&gt;-startdisko.\n&quot;
++&quot;Bonvole enigu la startdiskon %u.&quot;
++
++# password dialog title
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Pasvorto&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Tenu vian ĝisdatigan pelilo-disketon preta.&quot;
++
++# dvd warning title
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD Eraro&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Tiu estas duflanka DVD. Vi startigis el la dua flanko.\n&quot;
++&quot;\n&quot;
++&quot;Ŝanĝu la flankon de la DVD kaj daŭrigu.&quot;
++
++# power off dialog title
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Kurento Elŝaltita&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Ĉu haltigi la sistemon nun?&quot;
++
++# menu entry for hard disk installation
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Fiksdisko&quot;
++
++# dialog title for hard disk installation
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Fiksdiska instalado&quot;
++
++#. txt_hd_diskdevice
++#, fuzzy
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Disko-aparato (skani ĉiujn diskojn ĉu malplenaj)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Dosierujo\n&quot;
++
++# dialog title for ftp installation
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP-instalado&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Servilo\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Pasvorto\n&quot;
++
++# label for ftp user input
++#. label for ftp user input
++#. txt_user1
++#, fuzzy
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Uzulo (anonima ensaluto se malplena)\n&quot;
++
++# dialog title for nfs installation
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS-instalado&quot;
++
++# label for smb user input
++#. label for smb user input
++#. txt_user2
++#, fuzzy
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Uzulo (uzante \&quot;guest\&quot; se malplena)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++#, fuzzy
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;Permana instalo&quot;
++
++# dialog title for http installation
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP-instalado&quot;
++
++# 'driver' as in '(hardware) driver update'
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Pelilo&quot;
++
++# as in Windows Authentication Domain
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Domajno\n&quot;
++
++# button label for other/more options
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Aliaj opcioj&quot;
++
++# label for language selection
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Lingvo&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Instalado--IOAPIC enŝaltita&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Instalado--IOAPIC elŝaltita&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Instalado--Loka APIC Elŝaltita&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Jes&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Ne&quot;
++
++# menu item for selecting a file
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Dosiero&quot;
++
++# input label: share as in &quot;Windows share&quot; (SMB)
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Kundividi\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;&quot;
++
++# 'driver' as in '(hardware) driver update'
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++#, fuzzy
++msgid &quot;Driver Update&quot;
++msgstr &quot;Pelilo&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Kerno-opcio&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++#, fuzzy
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Instalado--Sekuraj Agordoj&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++#, fuzzy
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Ripari Sistemon&quot;
++
++# dialog title for ftp installation
++#. menu item
++#. txt_mediacheck
++#, fuzzy
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;FTP-instalado&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Starto Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Instali Mandriva Linux 2010 Spring en via sistemo&quot;
++
++# Keep the newlines and spaces after ':'!
++#~ msgid &quot;&quot;
++#~ &quot;Enter your password: \n&quot;
++#~ &quot;\n&quot;
++#~ &quot;\n&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Enigu vian pasvorton: \n&quot;
++#~ &quot;\n&quot;
++#~ &quot;\n&quot;
++
++# dialog title for ISO installation
++#~ msgid &quot;Installation from ISO file&quot;
++#~ msgstr &quot;Instalado el ISO-dosiero&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpoespo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/es.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/es.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/es.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,503 @@
++# translation of es.po to
++# translation of bootloader.po to
++# LANGUAGE translations for boot loader
++# Copyright (C) 2004 SUSE LINUX AG
++# , 2004
++# Ines Pozo &lt;Ines.Pozo@novell.com&gt;, 2005.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader.es\n&quot;
++&quot;POT-Creation-Date: \n&quot;
++&quot;PO-Revision-Date: 2010-03-23 12:40-0300\n&quot;
++&quot;Last-Translator: Diego Bello &lt;dbello@gmail.com&gt;\n&quot;
++&quot;Language-Team: Spanish &lt;opensuse-translation-es@opensuse.org&gt;\n&quot;
++&quot;Language: es\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++&quot;X-Poedit-Language: Spanish\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;Aceptar&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Cancelar&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Reiniciar&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Continuar&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Arrancar Microsoft Windows&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Herramienta de Detección de Hardware&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux con kernel %s&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Instalación&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Instalación manual&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Instalación -- ACPI inhabilitado&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Instalación -- Ajustes seguros&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Arrancar Mandriva Linux 2010 Spring (modo seguro)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Arrancar desde el disco duro&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Sistema de rescate&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Prueba de memoria&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Opciones de arranque&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Saliendo...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Está saliendo del menú gráfico de arranque e\n&quot;
++&quot;iniciando la interfaz en modo texto.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Ayuda&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Iniciando...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Cargando el kernel Linux\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Cargando memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Cargador de arranque&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;Errores de E/S&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Cambiar disquete de arranque&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Inserte el disco de arranque %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Este es el disco de arranque %u.\n&quot;
++&quot;Inserte el disco de arranque %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Este no es un disco de arranque de &lt;product&gt;.\n&quot;
++&quot;Introduzca el disco de arranque %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Contraseña&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Tenga listo el disco de actualización del controlador.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;Error de DVD&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Este DVD es de doble cara. Ha arrancado desde la segunda cara.\n&quot;
++&quot;\n&quot;
++&quot;Dé la vuelta al DVD y continúe.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Apagar&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;¿Desea apagar el sistema ahora?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Disco duro&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Instalación disco duro&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Dispositivo de disco (analiza todos los discos si se deja vacío)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Directorio\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;Instalación FTP&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Servidor\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Contraseña\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Usuario (dejar vacío para anónimo)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;Instalación NFS&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Usuario (se utiliza \&quot;guest\&quot; si se deja vacío)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;Instalación SMB (recurso compartido Windows)&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;Instalación HTTP&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Controlador&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Dominio\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Otras opciones&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Idioma&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Instalación -- IOAPIC habilitado&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Instalación -- IOAPIC inhabilitado&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Instalación -- APIC local inhabilitado&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Sí&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;No&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Archivo&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Compartir\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Modo automático&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Modo manual&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Configurar parámetros en la partición ZEN&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Instalar o actualizar la partición ZEN&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Volver a instalar el cargador de arranque de partición ZEN&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Inhabilitar partición ZEN&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Habilitar partición ZEN&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Modo de texto&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Prueba de firmware&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Para cargar las actualizaciones de controlador directamente desde el CD-&quot;
++&quot;ROM,\n&quot;
++&quot;indique los nombres de archivo de las actualizaciones del controlador &quot;
++&quot;(separados\n&quot;
++&quot;por comas \&quot;,\&quot;) aquí:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Origen&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Modo de vídeo&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Actualización de controlador&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Arquitectura&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Opciones para el kernel&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Predeterminado&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Ajustes seguros&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Sin ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Sin APIC local&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Reparar el sistema instalado&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Verificar el medio de instalación&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Teclado&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Descargar Actualización de Controlador&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Ingrese Dirección URL de Actualización de Controlador\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Arquitectura errónea&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;Éste es un computador de 32 bits. No puede instalar aplicaciones de 64 bits &quot;
++&quot;en él.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Advertencia&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;Va a instalar aplicaciones de 32 bits en un computador de 64 bits.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;Inserte el CD-ROM de actualización de controlador para\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Ponga el CD-ROM de Mandriva Linux de vuelta en el lector.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;Restablecer respaldo de draksnapshot&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Arrancar Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Instalar Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;Linux -- Ajustes seguros&quot;
++
++#~ msgid &quot;Kernel&quot;
++#~ msgstr &quot;Kernel&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpoetpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/et.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/et.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/et.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,498 @@
++# Estonian translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++# Ain Vagula &lt;avagula@gmail.com&gt;, 2007
++# Marek Laane &lt;bald@smail.ee&gt;, 2008-2009
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader.et\n&quot;
++&quot;POT-Creation-Date: 2003-03-04 15:08+0100\n&quot;
++&quot;PO-Revision-Date: 2009-12-03 12:27+0300\n&quot;
++&quot;Last-Translator: Marek Laane &lt;bald@smail.ee&gt;\n&quot;
++&quot;Language-Team: Estonian &lt;linux-ee@lists.eenet.ee&gt;\n&quot;
++&quot;Language: et\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;Olgu&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Loobu&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Taaskäivita&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Jätka&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Microsoft Windowsi laadimine&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Riistvara tuvastamise tööriist&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux kerneliga %s&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Paigaldamine&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Käsitsi paigaldamine&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Paigaldamine--ACPI keelatud&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Paigaldamine--ohutud sätted&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Mandriva Linux 2010 Springi laadimine (safe mode)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Alglaadimine kõvakettalt&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Päästesüsteem&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Mälu testimine&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Alglaadimise sätted&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Väljumine...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Graafiline alglaadimismenüü suletakse\n&quot;
++&quot;ja käivitatakse tekstirežiimi liides.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Abi&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Alustamine...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Linuxi kerneli laadimine\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;memtest86 laadimine\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Alglaadija&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;I/O viga&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Alglaadimisketta vahetamine&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Sisestage alglaadimisketas %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;See on alglaadimisketas %u.\n&quot;
++&quot;Sisestage alglaadimisketas %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;See ei ole &lt;product&gt; alglaadimisketas.\n&quot;
++&quot;Sisestage alglaadimisketas %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Parool&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Hoidke oma draiverite uuendamise diskett käepärast.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD viga&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;See on kahepoolne DVD. Te tegite alglaadimise teiselt poolelt.\n&quot;
++&quot;\n&quot;
++&quot;Jätkamiseks pöörake DVD ümber.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Väljalülitamine&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Kas lülitada süsteem välja?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Kõvaketas&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Paigaldamine kõvakettalt&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Kettaseade (puudumise korral skaneeritakse kõiki kettaid)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Kataloog\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP-paigaldus&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Server\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Parool\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Kasutajanimi (anonüümse sisselogimise korral jätke tühjaks)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS-paigaldus&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Kasutajanimi (kui väli on tühi, kasutatakse \&quot;guest\&quot;-i)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB (Windowsi jagatud ressurss) paigaldus&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP-paigaldus&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Draiver&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Domeen\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Muud sätted&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Keel&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Paigaldamine--IOAPIC lubatud&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Paigaldamine--IOAPIC keelatud&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Paigaldamine--lokaalne APIC keelatud&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Jah&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Ei&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Fail&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Ressurss\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Automaatrežiim&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Käsitsirežiim&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;ZEN-partitsiooni parameetrite häälestamine&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;ZEN-partitsiooni paigaldamine või uuendamine&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;ZEN-partitsiooni alglaadija taaspaigaldamine&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;ZEN-partitsiooni keelamine&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;ZEN-partitsiooni lubamine&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Tekstirežiim&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Püsivara test&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Draiveri uuenduste laadimiseks CD-ROM-ilt\n&quot;
++&quot;sisestage siia draiveri uuenduste failide nimed\n&quot;
++&quot;(eraldatud komadega ','):\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Allikas&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Videorežiim&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Draiverite uuendamine&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Arh.&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Kerneli võtmed&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Vaikimisi&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Ohutud sätted&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Ilma ACPI-ta&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Ilma kohaliku APIC-ta&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Paigaldatud süsteemi parandamine&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Paigaldusandmekandja kontrollimine&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Klaviatuur&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Draiveri uuenduse allalaadimine&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Sisestage draiveri uuenduse URL\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Vale arhitektuur&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;See on 32-bitine arvuti. Sellel ei saa kasutada 64-bitist tarkvara ega seda &quot;
++&quot;ka paigaldada.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Hoiatus&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;Kavatsete paigaldada 32-bitist tarkvara 64-bitisesse arvutisse.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;Sisestage draiverite uuendamise CD\n&quot;
++&quot;\&quot;%s\&quot; jaoks.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Asetage Mandriva Linuxi CD taas seadmesse.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;Taastamine draksnapshoti varukoopiast&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Mandriva Linux 2010 Springi laadimine&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Mandriva Linux 2010 Springi paigaldamine masinasse&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;Linux--ohutud sätted&quot;
++
++#~ msgid &quot;Kernel&quot;
++#~ msgstr &quot;Kernel&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpoeupo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/eu.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/eu.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/eu.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,536 @@
++# translation of bootloder.po to Euskara
++# LANGUAGE translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++# Iñigo Salvador Azurmendi &lt;xalba@euskalnet.net&gt;, 2007, 2008, 2009.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloder\n&quot;
++&quot;POT-Creation-Date: 2005-07-27 11:49+0200\n&quot;
++&quot;PO-Revision-Date: 2009-12-14 21:51+0100\n&quot;
++&quot;Last-Translator: Iñigo Salvador Azurmendi &lt;xalba@euskalnet.net&gt;\n&quot;
++&quot;Language-Team: Basque &lt;kde-i18n-doc@kde.org&gt;\n&quot;
++&quot;Language: eu\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: Lokalize 1.0\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=n != 1;\n&quot;
++
++# ok button label
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;Ados&quot;
++
++# cancel button label
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Galarazi&quot;
++
++# reboot button label
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Berrabiatu&quot;
++
++# continue button label
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Jarraitu&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Abiatu Microsoft windows&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Hardwarea detektatzeko tresna&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux %s kernelarekin&quot;
++
++# dialog title for ftp installation
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Instalaketa euskarria egiaztatu&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Eskuz egindako instalaketa&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Instalaketa -- ACPI ezgaituta&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Instalaketa -- Ezarpen seguruak&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Abiatu Mandriva Linux 2010 Spring (modu segurua)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Abiatu disko zurrunetik&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Berreskuratzeko sistema&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Memoria proba&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Abio aukerak&quot;
++
++# window title for exit dialog
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Irtetzen...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Abiapen menu grafikoa utzi eta testu moduko\n&quot;
++&quot;interfazean hasten ari zara.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Laguntza&quot;
++
++# window title for kernel loading (see txt_load_kernel)
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Hasten...&quot;
++
++# Keep the three newlines!
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Linux kernela zamatzen\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++# Keep the three newlines!
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;memtest86 zamatzen\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++# info box title
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Abio zamatzailea&quot;
++
++# error box title
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;S/I akatsa&quot;
++
++# boot disk change dialog title
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Aldatu abiapen diskoa&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Sartu %u abiapen diskoa.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Hau %u abiapen diskoa da.\n&quot;
++&quot;Sartu %u abiapen diskoa.&quot;
++
++# &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Hau ez da &lt;product&gt; abiapen disko bat.\n&quot;
++&quot;Mesedez sartu %u abiapen diskoa.&quot;
++
++# password dialog title
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Pasahitza&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Prestatu gidaria eguneratzeko disketea.&quot;
++
++# dvd warning title
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD akatsa&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Hau bi aldeak erabiltzen dituen DVD-a da. Bigarren aldetik abiatu duzu.\n&quot;
++&quot;\n&quot;
++&quot;Buelta eman DVD-ari eta jarraitu.&quot;
++
++# power off dialog title
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Itzaldu&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Sistema gelditu nahi duzu?&quot;
++
++# menu entry for hard disk installation
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Disko zurruna&quot;
++
++# dialog title for hard disk installation
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Disko zurrun instalaketa&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Disko gailua (aztertu disko guztiak hutsik dauden)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Direktorioa\n&quot;
++
++# dialog title for ftp installation
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP instalaketa&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Zerbitzaria\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Pasahitza\n&quot;
++
++# label for ftp user input
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Erabiltzailea (hutsik badago saio sarrera anonimoa)\n&quot;
++
++# dialog title for nfs installation
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS instalaketa&quot;
++
++# label for smb user input
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Erabiltzailea (\&quot;guest\&quot; erabiliko da hutsik badago)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB (Windows partekatzea) instalaketa&quot;
++
++# dialog title for http installation
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP instalaketa&quot;
++
++# 'driver' as in '(hardware) driver update'
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Gidaria&quot;
++
++# as in Windows Authentication Domain
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Domeinua\n&quot;
++
++# button label for other/more options
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Beste aukera batzuk&quot;
++
++# label for language selection
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Hizkuntza&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Instalaketa -- IOAPIC gaituta&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Instalaketa -- IOAPIC ezgaituta&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Instalaketa -- Bertako APIC ezgaituta&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Bai&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Ez&quot;
++
++# menu item for selecting a file
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Fitxategia&quot;
++
++# input label: share as in &quot;Windows share&quot; (SMB)
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Banatu\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Modu automatikoa&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Eskuzko modua&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;ZEN partizioan parametroak konfiguratu&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;ZEN partizioa instalatu edo eguneratu&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Berrinstalatu ZEN partizioaren abio zamatzailea&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;ZEN partizioa ezgaitu&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;ZEN partizioa gaitu&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Testu modua&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Firmware proba&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Gidari eguneraketak CD-ROMetik zuzenean zamatzeko,\n&quot;
++&quot;sartu gidari eguneratzeko fitxategi izenak (komaz ','\n&quot;
++&quot;banatuta) hemen:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Iturburua&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Bideo modua&quot;
++
++# 'driver' as in '(hardware) driver update'
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Gidari eguneraketa&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Arkitektura&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Kernelaren aukerak&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Lehenetsia&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Ezarpen seguruak&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;ACPI ez&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Bertako APIC ez&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Instalatutako sistema konpondu&quot;
++
++# dialog title for ftp installation
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Instalaketa euskarria egiaztatu&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Teklatua&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Jaitsi gidari eguneraketa&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Sartu gidari eguneratzeko URL\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Arkitektura okerra&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;Hau 32-biteko konputagailua da. Bertan ezin duzu 64-biteko softwarea erabili.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Abisua&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;32-biteko softwarea 64-biteko konputagailuan instalatu behar duzu.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;Sartu gidari eguneratzeko CD-ROMa\n&quot;
++&quot;\&quot;%s\&quot;-rentzako.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Ipini Mandriva Linux CD-ROMa atzera unitatean.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;Leheneratu draksnapshot babeskopia&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Abiatu Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Instalatu Mandriva Linux 2010 Spring&quot;
++
++# Keep the newlines and spaces after ':'!
++#~ msgid &quot;&quot;
++#~ &quot;Enter your password: \n&quot;
++#~ &quot;\n&quot;
++#~ &quot;\n&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Sartu zure pasahitza: \n&quot;
++#~ &quot;\n&quot;
++#~ &quot;\n&quot;
++
++# dialog title for ISO installation
++#~ msgid &quot;Installation from ISO file&quot;
++#~ msgstr &quot;Instalaketa ISO fitxategitik&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpofipo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/fi.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/fi.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/fi.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,498 @@
++# Finnish translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++# Jyri Palokangas &lt;jmp@netti.fi&gt;, 2005, 2006.
++# Jami Saarikoski &lt;jami.saarikoski@gmail.com&gt;, 2006.
++# Anssi Hannula &lt;anssi@mandriva.org&gt;, 2009.
++# Jani Välimaa &lt;wally@mandriva.org&gt;, 2009.
++# Thomas Backlund &lt;tmb@mandriva.org&gt;, 2009.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader.fi\n&quot;
++&quot;PO-Revision-Date: 2009-11-30 19:48+0200\n&quot;
++&quot;Last-Translator: Jani Välimaa &lt;wally@mandriva.org&gt;\n&quot;
++&quot;Language-Team: Finnish &lt;cooker-i18n@mandrivalinux.org&gt;\n&quot;
++&quot;Language: fi\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: Lokalize 1.0\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=n != 1;\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;OK&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Peruuta&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Käynnistä uudelleen&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Jatka&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Käynnistä Microsoft Windows&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Laitteiston tunnistustyökalu&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux %s-ytimellä&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Asennus&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Manuaalinen asennus&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Asennus--ACPI pois käytöstä&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Asennus--Turvalliset asetukset&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Käynnista Mandriva Linux 2010 Spring (vikatila)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Käynnistä kiintolevyltä&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Korjausjärjestelmä&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Muistitesti&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Käynnistysvalinnat&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Poistutaan...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Olet poistumassa graafisesta käynnistysvalikosta ja\n&quot;
++&quot;käynnistämässä tekstipohjaisen liittymän.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Ohje&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Käynnistetään...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Ladataan Linux-ydintä\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Ladataan memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Käynnistyslatain&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;I/O-virhe&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Vaihda käynnistyslevyä&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Anna käynnistyslevyke %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Tämä on käynnistyslevyke %u.\n&quot;
++&quot;Anna käynnistyslevyke %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Tämä ei ole &lt;product&gt; käynnistyslevyke.\n&quot;
++&quot;Anna käynnistyslevyke %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Salasana&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Ota ajurin päivityslevyke esille.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD-virhe&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Tämä on kaksipuoleinen DVD. Olet käynnistänyt kakkospuolelta.\n&quot;
++&quot;\n&quot;
++&quot;Käännä DVD toisinpäin ja jatka.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Katkaise virta&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Sammutetaanko järjestelmä?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Kiintolevy&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Kiintolevyasennus&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Kiintolevy (jos tyhjä, tarkistetaan kaikki levyt)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Hakemisto\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP-asennus&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Palvelin\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Salasana\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Käyttäjä (anonyymi kirjautuminen, jos tyhjä)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS-asennus&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Käyttäjä (tunnuksella \&quot;guest\&quot;, jos tyhjä)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB-asennus (Windows-jako) &quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP-asennus&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Ajuri&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Toimialue\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Muut valinnat&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Kieli&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Asennus--IOAPIC käytössä&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Asennus--IOAPIC pois käytöstä&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Asennus--Paikallinen APIC pois käytöstä&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Kyllä&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Ei&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Tiedosto&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Jako\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Automaattinen tila&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Manuaalinen tila&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Määritä ZEN-osion parametrit&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Asenna tai päivitä ZEN-osio&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Asenna ZEN-osion käynnistyslatain uudelleen&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Poista ZEN-osio käytöstä&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Ota ZEN-osio käyttöön&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Tekstitila&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Laiteohjelmistotesti&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Jos haluat ladata ajuripäivityksen suoraan CD-levyltä,\n&quot;
++&quot;anna päivitystiedostojen nimet pilkuilla eroteltuina:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Lähde&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Videotila&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Ohjainpäivitys&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Arkkitehtuuri&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Ytimen valitsimet&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Oletus&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Turvalliset asetukset&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Ei ACPI:a&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Ei paikallista APIC:a&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Korjaa asennettu järjestelmä&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Tarkista asennusmedia&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Näppäimistö&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Lataa ajuripäivitys&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Anna ajuripäivityksen URL\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Väärä arkkitehtuuri&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;Tämä on 32-bittinen tietokone. Et voi käyttää 64-bittisiä ohjelmistoja.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Huomautus&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;Olet asentamassa 32-bittistä ohjelmistoa 64-bittiseen järjestelmään.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;Aseta asemaan ohjainpäivitys-CD laitteelle\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Aseta Mandriva Linux -levy takaisin asemaan.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;Palauta draksnapshot-varmuuskopio&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Käynnistä Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Asenna Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;Linux--Turvalliset asetukset&quot;
++
++#~ msgid &quot;Kernel&quot;
++#~ msgstr &quot;Ydin&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpofrpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/fr.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/fr.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/fr.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,502 @@
++# translation of fr.po to
++# translation of fr.po to français
++# translation of bootloader.fr.po to Français
++# translation of bootloader.po to Français
++# LANGUAGE translations for boot loader
++# Copyright (C) 2004 SUSE LINUX AG
++#
++# Patricia Vaz &lt;Patricia.Vaz@suse.de&gt;, 2004.
++# Patricia Vaz &lt;patricia.vaz@suse.com&gt;, 2004.
++# Patricia Vaz &lt;patricia@suse.de&gt;, 2005.
++# Christophe Berthelé &lt;cpjc@free.fr&gt;, 2009.
++# Christophe Berthelé &lt;berthy@mandriva.org&gt;, 2009.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: fr\n&quot;
++&quot;POT-Creation-Date: \n&quot;
++&quot;PO-Revision-Date: 2010-02-17 12:30+0100\n&quot;
++&quot;Last-Translator: Christophe Berthelé &lt;cpjc@free.fr&gt;\n&quot;
++&quot;Language-Team: French &lt;cooker-i18n@mandrivalinux.org&gt;\n&quot;
++&quot;Language: fr\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++&quot;Plural-Forms: nplurals=2;plural=(n&gt;1);\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;OK&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Annuler&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Réamorcer&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Continuer&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Amorcer Microsoft Windows&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Outil de détection du matériel&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux avec le noyau %s&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Vérifier le média d'installation&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Installation manuelle&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Installation - ACPI désactivé&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Installation - Paramètres sécurisés&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Amorcer Mandriva Linux 2010 Spring (mode dégradé)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Amorcer depuis le disque dur&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Système de secours&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Test de mémoire&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Options d'amorçage&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Sortie...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Vous quittez le menu d'amorçage graphique et\n&quot;
++&quot;démarrez l'interface en mode texte.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Aide&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Démarrage...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Chargement du noyau Linux\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Chargement de memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Chargeur d'amorçage&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;Erreur E/S&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Changer le disque d'amorçage&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Insérer le disque d'amorçage %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Il s'agit du disque d'amorçage %u.\n&quot;
++&quot;Insérer le disque d'amorçage %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Il ne s'agit pas d'un disque d'amorçage pour &lt;product&gt;.\n&quot;
++&quot;Insérez le disque d'amorçage %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Mot de passe&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Ayez à disposition la disquette de mise à jour des pilotes.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;Erreur DVD&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Il s'agit d'un DVD double face. Vous avez effectué l'amorçage à partir de la &quot;
++&quot;seconde face.\n&quot;
++&quot;\n&quot;
++&quot;Retournez le DVD, puis continuez.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Arrêt&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Arrêter le système maintenant ?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Disque dur&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Installation sur disque dur&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Périphérique disque (recherche sur tous les disques si vide)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Répertoire\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;Installation FTP&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Serveur\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Mot de passe\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Utilisateur (connexion anonyme si vide)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;Installation NFS&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Utilisateur (utilisation de « guest » si vide)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;Installation SMB (partage Windows)&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;Installation HTTP&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Pilote&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Domaine\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Autres options&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Langue&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Installation - IOAPIC activé&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Installation - IOAPIC désactivé&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Installation - APIC local désactivé&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Oui&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Non&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Fichier&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Partage\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Mode automatique&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Mode manuel&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Configurer les paramètres sur la partition ZEN&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Installer ou mettre à jour la partition ZEN&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Réinstaller le chargeur d'amorçage de la partition ZEN&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Désactiver la partition ZEN&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Activer la partition ZEN&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Mode texte&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Test de microcode&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Pour charger les mises à jour de pilotes directement\n&quot;
++&quot;depuis un CD-ROM, entrez les noms de fichier séparés\n&quot;
++&quot;par des virgules (,) :\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Source&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Mode vidéo&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Mise à jour de pilote&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Arch&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Option noyau&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Par défaut&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Paramètres sécurisés&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Pas d'ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Pas d'APIC local&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Réparer le système installé&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Vérifier le média d'installation&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Clavier&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Télécharger la mise à jour du pilote&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Entrez l'URL de la mise à jour du pilote\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Architecture incorrecte&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;Cet ordinateur 32-bit ne permet pas d'exécuter ou d'installer des &quot;
++&quot;applications 64-bit.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Attention&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++&quot;Vous êtes sur le point d'installer des applications 32-bit sur cet &quot;
++&quot;ordinateur 64-bit.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;Insérez le CD-ROM de mise à jour des pilotes pour\n&quot;
++&quot;« %s ».&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Veuillez remettre le CD-ROM Mandriva dans le lecteur.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;Restaurer la sauvegarde draksnapshot&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Amorcer Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Installer Mandriva Linux 2010 Spring&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpoglpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/gl.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/gl.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/gl.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,499 @@
++# LANGUAGE translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++# Alejo Pacín Jul &lt;alejopj@gmail.com&gt;, 2009.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: YaST (@memory@)\n&quot;
++&quot;Report-Msgid-Bugs-To: translation@suse.de\n&quot;
++&quot;POT-Creation-Date: 2006-05-15 15:07+0200\n&quot;
++&quot;PO-Revision-Date: 2009-09-24 18:49+0200\n&quot;
++&quot;Last-Translator: Alejo Pacín Jul &lt;alejopj@gmail.com&gt;\n&quot;
++&quot;Language-Team: Galician &lt;cooker-i18n@mandrivalinux.org&gt;\n&quot;
++&quot;Language: gl\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n!=1);\n&quot;
++&quot;X-Generator: Lokalize 0.3\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;Aceptar&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Cancelar&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Rearrincar&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Continuar&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Arrincar Microsoft Windows&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Ferramenta de Detección de Hardware&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux con kernel %s&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Instalación&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Instalación Manual&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Instalación--ACPI Deshabilitado&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Instalación--Opcións seguras&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Arrincar Mandriva Linux 2010 Spring (modo seguro)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Arrincar dende o Disco Duro&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Recuperar o Sistema&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Proba de Memoria&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Opcións de Arrinque&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Saíndo...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Está saíndo do menú de arrinque gráfico e\n&quot;
++&quot;está iniciando a interface en modo texto.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Axuda&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Iniciando...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Cargando o Kernel Linux\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Cargando o memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Cargador de Arrinque&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;Erro de E/S&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Cambiar o Disco de Arrinque&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Insira o disco de arrinque %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Este é o disco de arrinque %u.\n&quot;
++&quot;Insira o disco de arrinque %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Este non é un disco de arrinque de &lt;product&gt;.\n&quot;
++&quot;Insira o disco de arrinque %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Contrasinal&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Teña preparado o seu disquete de actualización do driver.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;Erro de DVD&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Este é un DVD de dúas caras. Arrincou dende a segunda cara.\n&quot;
++&quot;\n&quot;
++&quot;Déalle a volta ó DVD e continúe.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Apagar&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Apagar o sistema agora?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Disco Duro&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Instalación no Disco Duro&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Dispositivo de Disco (examina tódolos discos se está baleiro)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Directorio\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;Instalación mediante FTP&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Servidor\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Contrasinal\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Usuario (hase empregar identificación anónima se está baleiro)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;Instalación mediante NFS&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Usuario (hase empregar \&quot;guest\&quot; se está baleiro)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;Instalación mediante SMB (Recursos de Windows)&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;Instalación mediante HTTP&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Controlador&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Dominio\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Outras Opcións&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Lingua&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Instalación--IOAPIC Habilitado&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Instalación--IOAPIC Deshabilitado&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Instalación--APIC Local Deshabilitado&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Si&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Non&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Ficheiro&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Recurso\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Modo Automático&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Modo Manual&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Configurar os Parámetros da Partición ZEN&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Instalar ou Actualizar a Partición ZEN&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Reinstalar o Cargador de Arrinque da Partición ZEN&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Deshabilitar a Partición ZEN&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Habilitar a Partición ZEN&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Modo Texto&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Proba do Firmware&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Para cargar as actualizacións de controladores directamente dende o CD-ROM,\n&quot;
++&quot;introduza os nomes de ficheiro de actualización de controladores &quot;
++&quot;(separados\n&quot;
++&quot;por comas ',') aquí:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Fonte&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Modo de Vídeo&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Actualización de Controladores&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Arq&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Opción de Kernel&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Predeterminado&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Opcións Seguras&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Sen ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Sen APIC Local&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Reparar o Sistema Instalado&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Comprobar o Soporte de Instalación&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Teclado&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Descargar Actualización do Controlador&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Introduza a URL de actualización do controlador\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Arquitectura incorrecta&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++#, fuzzy
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;Isto é un ordenador de 32-bit. Non pode empregar software de 64-bit nel.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Ollo&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;Está a piques de instalar software de 32-bt nun ordenador de 64-bit.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;Insira o CD-ROM de actualización de controladores para\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Volva colocar o CD-ROM de Mandriva Linux na unidade.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;Restaurar a copia de seguridade de draksnapshot&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Arrincar Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Instalar Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;Linux--Opcións Seguras&quot;
++
++#~ msgid &quot;Kernel&quot;
++#~ msgstr &quot;Kernel&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpogupo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/gu.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/gu.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/gu.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,482 @@
++# LANGUAGE translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: YaST (@memory@)\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2005-07-27 16:23+0200\n&quot;
++&quot;PO-Revision-Date: 2004-08-09 10:24+0200\n&quot;
++&quot;Last-Translator: Priyavert Sharma &lt;priyavert.sharma@agreeya.com&gt;\n&quot;
++&quot;Language-Team: AgreeYa Solutions &lt;linux_team@agreeya.com&gt;\n&quot;
++&quot;Language: \n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=n != 1;\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;બરાબર&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;રદ કરો &quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;ફરીથી બૂટ કરો&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;ચાલુ રાખો&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;સ્થાપન&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot; મેન્યુઅલ સ્થાપન &quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;સ્થાપન -- ACPI અક્ષમ&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;સ્થાપન -- સુરક્ષિત સેટિંગ્સ&quot;
++
++#. txt_safe_linux
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;હાર્ડ ડિસ્કમાંથી બૂટ કરો&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;બચાવ સિસ્ટમ&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;મેમરી પરિક્ષણ&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;બૂટ વિકલ્પો&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;બહાર નીકળી રહ્યા છો...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;તમે ગ્રાફિકલ બૂટ મેનુથી બહાર જઇ રહ્યા છો અને\n&quot;
++&quot;ટેક્ષ્ટ ઢબ ઇન્ટરફેસ શરૂ થઇ રહ્યું છે.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;મદદ&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;શરૂ થઇ રહ્યું છે...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot; લિનક્ષ કર્નલ લોડ થઇ રહ્યું છે \n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot; memtest86 લોડ થઇ રહ્યું છે \n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;બૂટ લોડર&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;I/O ભૂલ&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;બૂટ ડિસ્ક બદલો&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;%u બૂટ ડિસ્ક દાખલ કરો.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;આ %u બૂટ ડિસ્ક છે.\n&quot;
++&quot;%u બૂટ ડિસ્ક દાખલ કરો &quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;આ &lt; પ્રોડક્ટ &gt; બૂટ ડિસ્ક નથી.\n&quot;
++&quot;%u બૂટ ડિસ્ક દાખલ કરો.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;પાસવર્ડ&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;તમારી તૈયાર ડ્રાઇવર અદ્યતન ફ્લોપી મેળવો.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;ડીવીડી ભૂલ&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot; આ બે-બાજુ ડીવીડી છે. તમારે બીજી બાજુથી બૂટ કરવું જોઇશે.\n&quot;
++&quot;\n&quot;
++&quot; ડીવીડી બીજી બાજુ ફેરવો પછી ચાલુ રાખો.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;પાવર બંધ&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;અત્યારે સિસ્ટમ&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;હાર્ડ ડિસ્ક&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;હાર્ડ ડિસ્કનું સ્થાપન&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot; ડિસ્ક ઉપકરણ (જો ખાલી હોય તો બધી ડિસ્કસ સ્કેન કરો)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;ડિરેક્ટરી\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP સ્થાપન&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;સર્વર\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;પાસવર્ડ\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;વપરાશકર્તા (જો ખાલી હોય તો અનામી લોગીન કરો)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot; NFS સ્થાપન &quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot; વપરાશકર્તા (જો ખાલી હોય તો \&quot; મહેમાન \&quot; તરીકે ઉપયોગ કરો)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB (વિન્ડોઝ શેર) સ્થાપન&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot; HTTP સ્થાપન &quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;ડ્રાઇવર&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;ડોમેઇન\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;અન્ય વિકલ્પો&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;ભાષા&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;સ્થાપન -- IOAPIC સક્ષમ&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;સ્થાપન -- IOAPIC અક્ષમ&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;સ્થાપન -- સ્થાનિક IOAPIC અક્ષમ&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;હા&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;ના&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;ફાઈલ&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;શેર \n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;સ્વયંચાલિત ઢબ&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;મેન્યુઅલ ઢબ&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;ZEN પાર્ટિશન પર પારમિતિઓ કન્ફિગર કરો&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;ZEN પાર્ટિશન સ્થાપો અથવા અદ્યતન કરો&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;ZEN પાર્ટિશન બૂટ લોડર ફરીથી સ્થાપો&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;ZEN પાર્ટિશન અક્ષમ કરો&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;ZEN પાર્ટિશન સક્ષમ કરો&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;ટેક્ષ્ટ ઢબ&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;ફર્મવેર પરિક્ષણ&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;સીડી-રોમ પરથી સીધું ડ્રાઇવર અદ્યતનો લોડ કરવા,\n&quot;
++&quot; અહીં ડ્રાઇવર અદ્યતનોના ફાઇલ નામો (કોમા દ્વારા \n&quot;
++&quot;જુદા પાડેલા ',') દાખલ કરો:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;સોર્સ&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;ડ્રાયવર અપડેટ&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot; આર્ક &quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++#, fuzzy
++msgid &quot;Kernel Option&quot;
++msgstr &quot;અન્ય વિકલ્પો&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;પ્રાથમિક&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;કીબોર્ડ&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;લિનક્ષ -- સુરક્ષિત સેટિંગ્સ&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpohipo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/hi.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/hi.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/hi.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,482 @@
++# LANGUAGE translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: NetworkManager-vpnc\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2006-05-16 17:10+0200\n&quot;
++&quot;PO-Revision-Date: 2006-01-26 15:19+0100\n&quot;
++&quot;Last-Translator: Priyavert Sharma &lt;priyavert.sharma@agreeya.com&gt;\n&quot;
++&quot;Language-Team: AgreeYa Solutions &lt;www.agreeya.com&gt;\n&quot;
++&quot;Language: \n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n &gt; 1);\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;ओ.के.&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;रद्द&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;फिर से चालु करें&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;जारी रखें&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;अधिष्ठापन&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;मैनुअल अधिष्ठापन&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;अधिष्ठापन--ACPI असमर्थ&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;अधिष्ठापन--सुरक्षित सेटिंग्ज़&quot;
++
++#. txt_safe_linux
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;हार्ड डिस्क से बूट करें&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;रेस्क्यू सिस्टम&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;मेमोरी जांच&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;बूट विक्लप&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;बाहर आ रहा है...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;आप ग्राफिकल बूट विकल्प सूची छोड़ रहे है तथा\n&quot;
++&quot;टैक्सट मोड अंतरापृष्ठ आरंभ कर रहे हैं.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;सहायता&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;आरंभ हो रहा है...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;लाईनेक्स कर्नल लोड हो रहा है\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;मेमटेस्ट86 लोड हो रहा है\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;बूट लोडर&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;I/O त्रुटि&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;बूट डिस्क का परिवर्तन करें&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;बूट डिस्क %u प्रविष्ट करें.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;यह बूट डिस्क %u है.\n&quot;
++&quot;बूट डिस्क %u प्रविष्ट करें.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;यह &lt;प्रोडक्ट&gt; बूट डिस्क नहीं है.\n&quot;
++&quot;कृपया बूट डिस्क %u प्रविष्ट करें.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;कूट शब्द&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;अपनी ड्राइवर नवीनीकरण फ्लॉपी तैयार पाएं&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD त्रुटि&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;यह दो-तरफा DVD है. आपने दूसरी तरफ से बूट किया है.\n&quot;
++&quot;\n&quot;
++&quot;DVD को पलटे तब जारी रखें.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;बिजली बन्द करें&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;सिस्टम को अभी रोकें&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;हार्ड डिस्क&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;हार्ड डिस्क अधिष्ठापन&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;डिस्क उपकरण (यदि सभी डिस्कें खाली है तो स्कैन करें)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;निर्देशिका\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP अधिष्ठापन&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;सर्वर\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;कूट शब्द\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;प्रयोक्ता (यदि खाली है तो बेनाम लॉगइन करें)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS अधिष्ठापन&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;प्रयोक्ता (यदि खाली है तो \&quot;गेस्ट\&quot; का उपयोग करें)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB (विंडोज शेयर) अधिष्ठापन&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP अधिष्ठापन&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;ड्राइवर&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;डोमेन\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;अन्य विकल्प&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;भाषा&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;अधिष्ठापन--IOAPIC समर्थित&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;अधिष्ठापन--IOAPIC असमर्थित&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;अधिष्ठापन--स्थानीय APIC असमर्थित&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;हां&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;नहीं&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;फाइल&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;शेयर\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;स्वचालित मोड&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;मैनुअल मोड&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;ZEN पार्टिशन पर पैरामीटर्स को कनफिगर करें&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;ZEN पार्टिशन का अधिष्ठापन/अद्यतन &quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;ZEN पार्टिशन बूट लोडर का पुनः अधिष्ठापन करें&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;असमर्थ ZEN पार्टिशन&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;समर्थ ZEN पार्टिशन&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;पाठ्य मोड&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;फर्मवेयर परीक्षण&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;सीडी-रोम से सीधे ड्राइवर अद्यतनों को लोड करने के लिए,\n&quot;
++&quot;यहां पर ड्राइवर अद्यतन फाइल नामों को प्रविष्ट (अल्पविराम\n&quot;
++&quot;',' द्वारा पृथक) करें:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;स्रोत&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;आर्क&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++#, fuzzy
++msgid &quot;Kernel Option&quot;
++msgstr &quot;अन्य विकल्प&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;कीबोर्ड&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;लाईनेक्स--सुरक्षित सेटिंग्ज़&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpohrpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/hr.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/hr.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/hr.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,487 @@
++# LANGUAGE translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader.hr\n&quot;
++&quot;Report-Msgid-Bugs-To: translation@suse.de\n&quot;
++&quot;POT-Creation-Date: 2006-05-15 15:07+0200\n&quot;
++&quot;PO-Revision-Date: 2008-05-22 22:06+0100\n&quot;
++&quot;Last-Translator: Krešimir Jozić &lt;kjozic@gmail.com&gt;\n&quot;
++&quot;Language-Team: Hrvatski\n&quot;
++&quot;Language: \n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=3; plural=n%10==1 &amp;&amp; n%100!=11 ? 0 : n%10&gt;=2 &amp;&amp; n&quot;
++&quot;%10&lt;=4 &amp;&amp; (n%100&lt;10 || n%100&gt;=20) ? 1 : 2;\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;U redu&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Otkaži&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Ponovno pokreni računalo&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Nastavi&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Instalacija&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Ručna instalacija&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Instalacija--ACPI onemogućen&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Instalacija--sigurne postavke&quot;
++
++#. txt_safe_linux
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Podigni sustav s tvrdog diska&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Sustav za spašavanje&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Test memorije&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Opcije podizanja sustava&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Izlazim...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Napuštate grafički izbornik za dizanje sustava i\n&quot;
++&quot;pokrećete tekstualno sučelje&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Pomoć&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Pokrećem...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Učitavam Linux kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Učitavam memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Program za podizanje sustava&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;Ulazno/izlazna pogreška&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Promijeni disk za podizanje sustava&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Umetnite disketu za podizanje sustava %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Ovo je disketa za podizanje sustava %u.\n&quot;
++&quot;Umetnite disketu za podizanje sustava %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Ovo nije &lt;product&gt; disk za podizanje sustav.\n&quot;
++&quot;Umetnite disk za podizanje sustava %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Lozinka&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Pripremite disketu s dogradnjom upravljačkih programa.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD pogreška&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Ovo je dvostrani DVD. Podigli ste sustav s druge strane.\n&quot;
++&quot;\n&quot;
++&quot;Okrenite DVD i onda nastavite.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Isključi napajanje&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Zaustavi sustav sada?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Tvrdi disk&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Instalacija s tvrdog diska&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Disk uređaj (pretražuje sve diskove ako je prazno)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Direktorij\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP instalacija&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Poslužitelj\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Lozinka\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Korisnik (automatsko prijavljivanje ako je prazno)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS instalacija&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Korisnik (koristi \&quot;gost\&quot; ako je prazno)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB (Windows dijeljenje) instalacija&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP instalacija&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Pogonski program&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Domena\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Ostali izbori&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Jezik&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Instalacija--IOAPIC uključen&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Instalacija--IOAPIC isključen&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Instalacija--lokalni APIC isključen&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Da&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Ne&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Datoteka&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Dijeli\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Automatski način&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Ručni način&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Podesi parametre na ZEN particiji&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Instaliraj ili dogradi ZEN particiju&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Ponovno instaliraj program za podizanje sustava na ZEN particiju&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Onemogući ZEN particiju&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Omogući ZEN particiju&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Tekstualni način&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Test firmware-a&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Da biste učitali dogradnju upravljačkih programa direkno s CD-ROM-a,\n&quot;
++&quot;unesite imena dogradnji upravljačkih programa (odvojena\n&quot;
++&quot;zarezima ',') ovdje:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Izvor&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;VIdeo način&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Dogradnja upravljačkog programa&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Arhitektura&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++#, fuzzy
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Ostali izbori&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Pretpostavljeno&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Sigurne postavke&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Bez ACPI-a&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Bez lokalnog ACPI-a&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Popravi instalirani sustav&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Provjeri instalacijski medij&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Tipkovnica&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;Linux--sigurne postavke&quot;
++
++#~ msgid &quot;Kernel&quot;
++#~ msgstr &quot;Kernel&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpohupo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/hu.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/hu.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/hu.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,506 @@
++# translation of hu.po to
++# translation of hu.po to Hungarian
++# LANGUAGE translations for boot loader
++# Copyright (C) 2004 SUSE LINUX AG
++#
++# Kéménczy Kálmán, 2006.
++# Marcel Hilzinger &lt;marcel.hilzinger@suselinux.hu&gt;, 2004.
++# Szabolcs Varga &lt;shirokuma@shirokuma.hu&gt;, 2004, 2005.
++# Kalman Kemenczy &lt;kkemenczy@novell.com&gt;, 2006.
++# Kéménczy Kálmán &lt;kkemenczy@novell.com&gt;, 2006.
++# Lónyai Gergely &lt;aleph@mandriva.org&gt;, 2007, 2008, 2009, 2010.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: mandriva-gfxboot-theme-2010.1\n&quot;
++&quot;POT-Creation-Date: \n&quot;
++&quot;PO-Revision-Date: 2009-12-23 13:57+0100\n&quot;
++&quot;Last-Translator: Gergely Lónyai &lt;aleph@mandriva.org&gt;\n&quot;
++&quot;Language-Team: Hungarian &lt;aleph@mandriva.org&gt;\n&quot;
++&quot;Language: hu\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++&quot;X-Poedit-Language: Hungarian\n&quot;
++&quot;X-Poedit-Country: HUNGARY\n&quot;
++&quot;X-Poedit-SourceCharset: utf-8\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;OK&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Mégsem&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Újraindítás&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Folytatás&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Microsoft Windows indítása&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Hardverazonosító eszköz&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux %s kernellel&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Telepítés&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Kézi telepítés&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Telepítés - ACPI-támogatás nélkül&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Telepítés - Biztonságos beállításokkal&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Mandriva Linux 2010 Spring indítása (biztonsági üzem)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Rendszerindítás merevlemezről&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Mentőrendszer&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Memóriateszt&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Rendszerindítási paraméterek&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Kilépés...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Kilép a grafikus rendszerindító menüből.\n&quot;
++&quot;El fog indulni a szöveges módú felület.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Segítség&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Indítás...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;A Linux kernel betöltése\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;A memtest86 program betöltése\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Rendszertöltő&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;I/O hiba&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Cserélje az indítólemezt&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Helyezze be a(z) %u. indítólemezt.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Ez a(z) %u. indítólemez.\n&quot;
++&quot;Helyezze be a(z) %u. indítólemezt.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Ez nem egy &lt;product&gt; indítólemez.\n&quot;
++&quot;Helyezze be a(z) %u. indítólemezt.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Jelszó&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Készítse elő a frissítéseket tartalmazó meghajtólemezt.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD-hiba&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Ez egy kétoldalas DVD. Ön a rendszerindításhoz a második oldalt használta.\n&quot;
++&quot;\n&quot;
++&quot;Fordítsa meg a DVD-t, majd folytassa.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Gép kikapcsolása&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Ki akarja most kapcsolni a számítógépet?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Merevlemez&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Telepítés merevlemezről&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Merevlemez-eszköz (ha üres, akkor az összes merevlemez ellenőrzése)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Könyvtár\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP telepítés&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Kiszolgáló\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Jelszó\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Felhasználó (ha üres, akkor anonymous)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS telepítés&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Felhasználó (ha üres, akkor \&quot;guest\&quot;)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB telepítés (Windows megosztásról)&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP telepítés&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Illesztőprogram&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Tartomány\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Egyéb beállítások&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Nyelv&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Telepítés - IOAPIC támogatással&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Telepítés - IOAPIC támogatás nélkül&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Telepítés - Local APIC támogatás nélkül&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Igen&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Nem&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Fájl&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Megosztás\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Automatikus&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Kézi&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;ZEN partíció paramétereinek beállítása&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;ZEN partíció telepítése/frissítése&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;ZEN partíció betöltőjének újratelepítése&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;ZEN partíció tiltása&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;ZEN partíció engedélyezése&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Karakteres mód&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Firmware-teszt&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Amennyiben az illesztőprogram-frissítéseket közvetlenül\n&quot;
++&quot;CD-ről tölti be, adja meg az illesztőprogramok nevét\n&quot;
++&quot;(vesszővel elválasztva ','):\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Forrás&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Videomód&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Illesztőprogram-frissítés&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Architektúra&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Kernel beállítás&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Alapértelmezett&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Biztonságos beállítások&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;ACPI nélkül&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Helyi APIC nélkül&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Telepített rendszer javítása&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Telepítőkészlet ellenőrzése&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Billentyűzet&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Meghajtófrissítés letöltése&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Adja megy a meghajtófrissítés útvonalát\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Nem megfelelő architektúra&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;Ez egy 32 bites számítógép. Nem használhatsz rajta 64 bites programokat.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Figyelem&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;Ön 32 bites szoftvert akar 64 bites számítógépre telepíteni.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;Kérem helyezze be a \&quot;%s\&quot; meghajtóhoz \n&quot;
++&quot;szükséges CD-ROM-ot.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Helyezze vissza a Mandriva Linux telepítőjét CD-ROM-ba.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;Draksnapshot mentés helyreállítása&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Mandriva Linux 2010 Spring indítása&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Mandriva Linux 2010 Spring telepítése&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;Linux - Biztonságos beállításokkal&quot;
++
++#~ msgid &quot;Kernel&quot;
++#~ msgstr &quot;Kernel&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpoidpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/id.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/id.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/id.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,489 @@
++# LANGUAGE translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader\n&quot;
++&quot;Report-Msgid-Bugs-To: translation@suse.de\n&quot;
++&quot;POT-Creation-Date: 2006-05-15 15:07+0200\n&quot;
++&quot;PO-Revision-Date: 2006-10-13 00:07+0700\n&quot;
++&quot;Last-Translator: Tedi Heriyanto &lt;tedi.heriyanto@gmail.com&gt;\n&quot;
++&quot;Language-Team: Indonesian &lt;i18n@suse.de&gt;\n&quot;
++&quot;Language: id\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=1; plural=0\n&quot;
++&quot;X-Generator: KBabel 1.11.2\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;OK&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Batal&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Reboot&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Lanjutkan&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Boot Microsoft Windows&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux dengan kernel %s&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Instalasi&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Instalasi manual.&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Instalasi--ACPI ditiadakan&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Instalasi--Seting Aman&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Boot Mandriva Linux 2010 Spring (mode aman)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Boot dari Hard Disk&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Sistem Penyelamat&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Tes Memori&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Opsi Boot&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Keluar...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Anda meninggalkan menu boot grafis dan\n&quot;
++&quot;memulai interface mode teks.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Bantuan&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Mulai...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Memuatkan Kernel Linux\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Memuatkan memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Boot Loader&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;Kesalahan I/O&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Merubah Disk Boot&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Masukkan disk boot %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Ini adalah disk boot %u.\n&quot;
++&quot;Masukkan disk boot %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Ini bukan boot disk &lt;product&gt;.\n&quot;
++&quot;Masukkan disk boot %u&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Password&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Siapkan floppy update driver anda.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;Kesalahan DVD&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Ini adalah DVD dua sisi. Anda harus boot dari sisi kedua.\n&quot;
++&quot;\n&quot;
++&quot;Balik DVD lalu lanjutkan.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Power Off&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Halt sistem sekarang?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Hard Disk&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Instalasi Hard Disk&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Device Disk (Scan Seluruh Disk bila Kosong)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Direktori\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;Instalasi FTP&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Server\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Password\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;User (Login Anonim bila Kosong)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;Instalasi NFS&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;User (Gunakan \&quot;guest\&quot; jika Kosong)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;Instalasi SMB (Share Windows)&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;Instalasi HTTP&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Driver&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Domain\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Opsi Lain&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Bahasa&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Instalasi--IOAPIC Diadakan&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Instalasi--IOAPIC Ditiadakan&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Instalasi--APIC Lokal ditiadakan&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Ya&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Tidak&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;File&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Share\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Mode Otomatis&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Mode Manual&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Konfigurasi Parameter pada Partisi ZEN&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Instalasi atau Update Partisi ZEN&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Instalasi ulang Boot Loader Partisi ZEN&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Tiadakan Partisi ZEN&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Adakan Partisi ZEN&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Mode Teks&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Tes Firmware&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Untuk memuatkan update driver secara langsung dari CDROM,\n&quot;
++&quot;masukkan nama file update driver (dipisahkan\n&quot;
++&quot;oleh koma ',') di sini:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Opsi Kernel&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Boot Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Install Mandriva Linux 2010 Spring pada sistem Anda&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;Linux--Seting Aman&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpoispo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/is.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/is.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/is.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,522 @@
++# Icelandic translation of mandriva-gfxboot-theme.po
++# translation of bootloader.po to Icelandic
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++# Pjetur G. Hjaltason &lt;pjetur@pjetur.net&gt;, 2006, 2007, 2008, 2009.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: mandriva-gfxboot-theme\n&quot;
++&quot;POT-Creation-Date: 2005-07-27 11:49+0200\n&quot;
++&quot;PO-Revision-Date: 2009-03-30 01:28+0000\n&quot;
++&quot;Last-Translator: Pjetur G. Hjaltason &lt;pjetur@pjetur.net&gt;\n&quot;
++&quot;Language-Team: Icelandic &lt;kde-isl@molar.is&gt;\n&quot;
++&quot;Language: is\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++# ok button label
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;Í lagi&quot;
++
++# cancel button label
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Hætta við&quot;
++
++# reboot button label
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Endurræsa&quot;
++
++# continue button label
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Áfram&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Ræsa Microsoft Windows&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Vélbúnaðarleitar-tól&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux með kjarna %s&quot;
++
++# dialog title for ftp installation
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Athuga uppsetningarmiðil&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Handvirk uppsetning&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Uppsetning--ACPI aftengt&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Uppsetning--Öruggar stillingar&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Ræsa Mandriva Linux 2010 Spring (öruggur hamur)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Ræsa frá diski&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Bjarga kerfi&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Minnisprófun&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Ræsivalkostir&quot;
++
++# window title for exit dialog
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Hætti...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Þú ertað fara úr grafískri ræsivalmynd og\n&quot;
++&quot;í textaham.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Hjálp&quot;
++
++# window title for kernel loading (see txt_load_kernel)
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Ræsi...&quot;
++
++# Keep the three newlines!
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Hleð inn Linux kjarna\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++# Keep the three newlines!
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Hleð inn memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++# info box title
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Ræsistjóri&quot;
++
++# error box title
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;I/Ú villa&quot;
++
++# boot disk change dialog title
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Skifta um ræsidisk&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Settu inn ræsidisk %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Þetta er ræsidiskur %u.\n&quot;
++&quot;Settu inn ræsidisk %u.&quot;
++
++# &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Þetta er ekki &lt;product&gt; ræsidiskur.\n&quot;
++&quot;Settu inn ræsidisk %u.&quot;
++
++# password dialog title
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Lykilorð&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Hafðu diskettu með nýjum rekli tilbúinn.&quot;
++
++# dvd warning title
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD villa&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Þetta er tvíhliða DVD diskur. Þú hefur ræst frá hlið tvö.\n&quot;
++&quot;\n&quot;
++&quot;Snúðu DVD disknum við og haltu síðan áfram.&quot;
++
++# power off dialog title
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Slökkva&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Stöðva kerfi núna?&quot;
++
++# menu entry for hard disk installation
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Diskur&quot;
++
++# dialog title for hard disk installation
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Uppsetning frá diski&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Diskur (leita á öllum diskum ef autt)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Mappa\n&quot;
++
++# dialog title for ftp installation
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP Uppsetning&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Miðlari\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Lykilorð\n&quot;
++
++# label for ftp user input
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Notandi (nafnlaus innskráning ef autt)\n&quot;
++
++# dialog title for nfs installation
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS Uppsetning&quot;
++
++# label for smb user input
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Notandi (notar \&quot;guest\&quot; ef autt)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB (Windows Sameignir) uppsetning&quot;
++
++# dialog title for http installation
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP Uppsetning&quot;
++
++# 'driver' as in '(hardware) driver update'
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Rekill&quot;
++
++# as in Windows Authentication Domain
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Lén\n&quot;
++
++# button label for other/more options
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Aðrar stillingar&quot;
++
++# label for language selection
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Tungumál&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Uppsetning--IOAPIC Virkt&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Uppsetning--IOAPIC Aftengt&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Uppsetning--Staðbundið APIC Aftengt&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Já&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Nei&quot;
++
++# menu item for selecting a file
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Skrá&quot;
++
++# input label: share as in &quot;Windows share&quot; (SMB)
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Miðlað svæði\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Sjálfvirkur hamur&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Handvirkur hamur&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Stilla viðföng á ZEN disksneið&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Setja inn eða uppfæra ZEN disksneið&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Setja aftur inn ZEN disksneiðar ræsiforrit&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Aftengja ZEN disksneið&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Virkja ZEN disksneið&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Textahamur&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Vélbúnaðarprófun&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Til að sækja reklauppfærslur beint frá\n&quot;
++&quot;geisladiski, sláðu inn skráarnöfn reklanna\n&quot;
++&quot;(aðskilin með kommum ',') hér:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Miðill&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Skjáhamur&quot;
++
++# 'driver' as in '(hardware) driver update'
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Uppærsla rekils&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Vélb.&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Kjarnavalkostur&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Sjálfgefið&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Öruggar stillingar&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Ekki ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Ekki staðbundið APIC&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Bjarga uppsettu kerfi&quot;
++
++# dialog title for ftp installation
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Athuga uppsetningarmiðil&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Lyklaborð&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Sækja uppfærðan rekil&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Slóð að uppfærðum reklii\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Rangur vélbúnaður&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++#, fuzzy
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;Þetta er 32-bita tölva. Þú getur ekki notað 64-bita hugbúnað á henni.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Aðvörun&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;Þú ert að fara að setja upp 32-bita hugbúnað á 64-bita tölvu.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;Settu inn geisladisk með rekli fyrir\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Settu Mandriva Linux geisladiskinn aftur í drifið.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;Sækja draksnapshot afrit&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Ræsa Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Setja Mandriva Linux 2010 Spring inn á tölvuna þína&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpoitpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/it.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/it.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/it.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,493 @@
++# translation of mandriva-gfxboot-theme.po to Italian
++# translation of bootloader.po to
++# LANGUAGE translations for boot loader
++# Copyright (C) 2004 SUSE LINUX AG
++# Andrea Celli &lt;andrea.celli@libero.it&gt;, 2009, 2010.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: mandriva-gfxboot-theme\n&quot;
++&quot;POT-Creation-Date: \n&quot;
++&quot;PO-Revision-Date: 2010-02-16 23:46+0100\n&quot;
++&quot;Last-Translator: Andrea Celli &lt;andrea.celli@libero.it&gt;\n&quot;
++&quot;Language-Team: Italian &lt;kde-i18n-it@kde.org&gt;\n&quot;
++&quot;Language: it\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: Lokalize 0.3\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;OK&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Cancella&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Riavvia&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Continua&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Boot di Microsoft Windows&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Strumento per rilevare l'hardware&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux con il kernel %s&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Verifica del supporto di installazione&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Installazione manuale&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Installazione--ACPI disabilitata&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Installazione--Safe Settings&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Boot di Mandriva Linux 2010 Spring (safe mode)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Avvio dal disco rigido&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Sistema di salvataggio&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Verifica della memoria&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Opzioni di boot&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Uscita in corso...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;State per uscire dal menu di avvio grafico e\n&quot;
++&quot;per avviare l'interfaccia nel modo testo.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Aiuto&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Avvio in corso...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Caricamento del kernel Linux in corso\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Caricamento di memtest86 in corso\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Boot loader&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;Errore di I/O&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Cambia dischetto di boot&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Inserire il disco di avvio di %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Questo è il disco di avvio di %u.\n&quot;
++&quot;Inserire il disco di avvio di %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Questo non è un disco di avvio di &lt;prodotto&gt;.\n&quot;
++&quot;Inserire il disco di avvio %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Password&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Preparare il disco floppy con l'aggiornamento dei driver.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;Errore DVD&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Il DVD è a due lati. È stato effettuato l'avvio dal secondo lato.\n&quot;
++&quot;\n&quot;
++&quot;Capovolgere il DVD e continuare.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Spegnimento&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Arrestare il sistema?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Disco rigido&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Installazione disco rigido&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Dispositivo disco (se vuoto analizza tutti i dischi)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Directory\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;Installazione FTP&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Server\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Password\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Utente (login anonimo se vuoto)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;Installazione NFS&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Utente (se vuoto viene utilizzato \&quot;guest\&quot;)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;Installazione SMB (share Windows)&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;Installazione HTTP&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Driver&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Domino\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Altre opzioni&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Lingua&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Installazione IO-APIC abilitata&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Installazione--IOAPIC disabilitata&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Installazione ACPI locale disabilitata&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Sì&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;No&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;File&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Condividi\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Modalità automatica&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Modalità manuale&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Configura parametri nella partizione ZEN&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Installa o aggiorna partizione ZEN&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Reinstalla caricatore di avvio partizione ZEN&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Disabilita partizione ZEN&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Abilita partizione ZEN&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Modo testo&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Verifica firmware&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Per caricare gli aggiornamenti del driver direttamente dal CD ROM,\n&quot;
++&quot;immettere qui i nomi dei file di aggiornamento del driver (separati\n&quot;
++&quot;da virgole','):\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Sorgente&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Modalità video&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Aggiornamento driver&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Arch.&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Opzioni per il kernel&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Predefinito&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Impostazioni sicure&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;No ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;No Local APIC&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Ripara sistema installato&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Verifica del supporto di installazione&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Tastiera&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Recupera il driver aggiornato&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Scrivi l'URL del driver aggiornato\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Architettura errata&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;Questo è un computer a 32-bit. Non vi puoi installare né utilizzare software &quot;
++&quot;a 64-bit.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Attenzione&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++&quot;Stai installando un software compilato a 32-bit su un computer a 64-bit.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;Inserisci il CD-ROM con driver aggiornato per\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Inserisci di nuovo il CD/DVD di Mandriva Linux.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;Ripristinare da backup (draksnapshot)&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Boot di Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Installa Mandriva Linux 2010 Spring&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpojapo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/ja.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/ja.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/ja.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,489 @@
++# LANGUAGE translations for boot loader
++# Copyright (C) 2004 SUSE LINUX AG
++# Yasuhiko Kamata &lt;belphegor@belbel.or.jp&gt;
++# Yukiko Bando &lt;ybando@k6.dion.ne.jp&gt;
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader-ja\n&quot;
++&quot;PO-Revision-Date: 2009-03-22 20:51+0900\n&quot;
++&quot;Last-Translator: Yukiko Bando &lt;ybando@k6.dion.ne.jp&gt;\n&quot;
++&quot;Language-Team: Japanese &lt;cooker-i18n@mandrivalinux.org&gt;\n&quot;
++&quot;Language: ja\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=1; plural=0;\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;OK&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;キャンセル&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;再起動&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;続行&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Microsoft Windows を起動&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux (カーネル %s)&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;インストールメディアのチェック&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;手動インストール&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;インストール -- ACPI 無効&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;インストール -- 安全設定&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Mandriva Linux 2010 Spring を起動 (セーフモード)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;ハードディスクから起動&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;レスキューシステム&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;メモリテスト&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;起動オプション&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;終了しています...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;グラフィックブートメニューから\n&quot;
++&quot;テキストモードに切替えます。&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;ヘルプ&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;起動しています...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Linux カーネルを読み込んでいます\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;memtest86 を読み込んでいます\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;ブートローダ&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;入出力エラー&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;ブートディスクの変更&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;ブートディスク %u を挿入してください。&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;これはブートディスク %u です。\n&quot;
++&quot;ブートディスク %u を挿入してください。&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;これは &lt;product&gt; ブートディスクではありません。\n&quot;
++&quot;ブートディスク %u を挿入してください。&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;パスワード&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;ドライバ更新用のフロッピーディスクを準備してください。&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD エラー&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;これは両面 DVD です。第 2 面からブートしています。\n&quot;
++&quot;DVD をひっくり返してからもう一度行なってください。&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;電源オフ&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;システムを中止しますか?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;ハードディスク&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;ハードディスクへのインストール&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;ディスクデバイス (空の場合は全ディスクを検索します)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;ディレクトリ\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP インストール&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;サーバ\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;パスワード\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;ユーザ (無入力の場合は匿名ログイン)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS インストール&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;ユーザ (無入力の場合は guest を使用)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB (Windows 共有) インストール&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP インストール&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;ドライバ&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;ドメイン\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;その他のオプション&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;言語&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;インストール--IOAPIC 有効&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;インストール -- IOAPIC 無効&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;インストール--ローカル APIC 無効&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;はい&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;いいえ&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;ファイル&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;共有\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;自動モード&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;手動モード&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;ZEN パーティション上のパラメータ設定&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;ZEN パーティションのインストールまたはアップデート&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;ZEN パーティションブートローダの再インストール&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;ZEN パーティションを無効にする&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;ZEN パーティションを有効にする&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;テキストモード&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;ファームウェアのテスト&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;CD-ROM から直接更新済みのドライバを読み込むには、\n&quot;
++&quot;更新済みのドライバファイル名をここで入力してください\n&quot;
++&quot;(コンマ ',' で区切ります):\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;ソース&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;ビデオモード&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;ドライバ更新&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;アーキテクチャ&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;カーネルのオプション&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;デフォルト&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;安全設定&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;ACPI なし&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;ローカル APIC なし&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;インストール済みのシステムを修復&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;インストールメディアのチェック&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;キーボード&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;ドライバのアップデートをダウンロード&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;ドライバのアップデートのための URL を入力\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;不正なアーキテクチャ&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++#, fuzzy
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;これは 32 ビットのコンピュータなので 64 ビットのソフトウェアは使えません。&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;警告&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++&quot;64 ビットのコンピュータに 32 ビットのソフトウェアをインストールしようとしてい&quot;
++&quot;ます。&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;\&quot;%s\&quot; のためのドライバ更新用 CD-ROM を挿入してください。&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Mandriva Linux の CD-ROM をドライブに戻してください。&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;draksnapshot のバックアップを復元&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Mandriva Linux 2010 Spring を起動&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Mandriva Linux 2010 Spring をインストール&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpokapo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/ka.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/ka.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/ka.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,482 @@
++# LANGUAGE translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: @PACKAGE@\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2006-06-19 15:33+0200\n&quot;
++&quot;PO-Revision-Date: 2008-09-25 18:02+0400\n&quot;
++&quot;Last-Translator: George Machitidze &lt;giomac@gmail.com&gt;\n&quot;
++&quot;Language-Team: Georgian &lt;i18n@suse.de&gt;\n&quot;
++&quot;Language: ka\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=1; plural=0;\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;OK&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;შეწყვეტა&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;გადატვირთვა&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;გაგრძელება&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;ჩადგმა&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;ხელით დაყენება&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;ჩადგმა--ACPI-ის გათიშვით&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;ჩადგმა--უსაფრთხო პარამეტრებით&quot;
++
++#. txt_safe_linux
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;მყარი დისკიდან ჩატვირთვა&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;მაშველი სისტემა&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;მეხსიერების შემოწმება&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;ჩარტვირთვის პარამეტრები&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;გამოსვლა...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;თქვენ ტოვებთ გრაფიკულ მენიუს\n&quot;
++&quot;გადადიხართ ტექსტურ რეჟიმში.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;დახმარება&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;დაწყება...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Linux-ის ბირთვის ჩატვირთვაl\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;memtest86-ის ჩარტვირთვა\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;ჩამტვირთავი&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;I/O შეცდომა&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;ჩატვირთვის დისკის შეცვლა&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;ჩადეთ ჩასატვირთი დისკი %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;ეს არის ჩასატვირთი დისკი %u.\n&quot;
++&quot;ჩადეთ ჩასატვირთი დისკი %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;ეს არ არის &lt;product&gt;-ის ჩასატვირთი დისკი.\n&quot;
++&quot;ჩადეთ ჩასატვირთი დისკი %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;პაროლი&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD-ის შეცდომა&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;ეს არის ორმხირივი DVD. თქვენ ჩაიტვირთეთ მეორე მხრიდან.\n&quot;
++&quot;\n&quot;
++&quot;გადააბრუნეთ DVD დისკი და შემდეგ გააგრძელეთ პროცესი.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;გამოთიშვა&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;ახლავე შევაჩერო სისტემა?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;მყარი დისკი&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;მყარი დისკით ჩადგმა&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;დირექტორია\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP-ით ჩადგმა&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;სერვერი\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;პაროლი\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;მოხმარებელი (ცარიელის შემთხვევაში ანონიმური)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS-ით ჩადგმა&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;მოხმარბელი (თუ ცარიელია, იყენებს \&quot;guest\&quot;-ს)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB (Windows-ის გაზიარებით) ჩადგმა&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP-ით ჩადგმა&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;ფრაივერი&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;დომენი\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;სხვა პარამეტრები&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;ენა&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;ჩადგმა--ჩართული IOAPIC-ით&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;ჩადგმა--გამორთული IOAPIC-ით&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;ჩადგმა--ადგილობრივი APIC-ის გარეშე&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;დიახ&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;არა&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;ფაილი&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;ზიარი\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;ავტომატური რეჟიმი&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;ხელოვნური რეჟმი&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;ZEN დანაყოფის პარამეტრების მითთება&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;ZEN დანაყოფის ჩადგმა ან განახლება&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;ZEN დანაყოფის გათიშვა&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;ZEN დანაყოფის ჩართვა&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;ტექსტური რეჟიმი&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;წყარო&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;ვიდეოს რეჟიმი&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;დრაივერის განახლება&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;არქიტექტურა&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++#, fuzzy
++msgid &quot;Kernel Option&quot;
++msgstr &quot;სხვა პარამეტრები&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;ნაგულისხმები&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;უსაფრთხო პარამეტრები&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;ACPI-ის გარეშე&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;ადგილობრივი APIC-ის გარეშე&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;ჩადგმული სისტემის შველა&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;დისკის შემოწმება&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;კლავიატურა&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;Linux--უსაფრთხო პარამეტრებით&quot;
++
++#~ msgid &quot;Kernel&quot;
++#~ msgstr &quot;ბირთვი&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpokopo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/ko.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/ko.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/ko.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,488 @@
++# LANGUAGE translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader.ko\n&quot;
++&quot;Report-Msgid-Bugs-To: translation@suse.de\n&quot;
++&quot;POT-Creation-Date: \n&quot;
++&quot;PO-Revision-Date: 2008-06-14 18:12+0900\n&quot;
++&quot;Last-Translator: YunSeok Choi &lt;xein@naver.com&gt;\n&quot;
++&quot;Language-Team: Korean &lt;xein@naver.com&gt;\n&quot;
++&quot;Language: ko\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=1; plural=0;\n&quot;
++&quot;X-Poedit-Language: Korean\n&quot;
++&quot;X-Poedit-Country: KOREA, REPUBLIC OF\n&quot;
++&quot;X-Poedit-SourceCharset: utf-8\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;확인&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;취소&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;재부팅&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;계속&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;오픈수세 설치&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;수동 설치&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;설치--ACPI 비활성&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;설치--안전 설정&quot;
++
++#. txt_safe_linux
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;하드디스크로 부팅&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;시스템 복구(콘솔)&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;메모리 테스트&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;부트 옵션&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;종료 중...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;그래픽 부트메뉴에서 떠나\n&quot;
++&quot;텍스트 모드 인터페이스로 시작합니다.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;도움말&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;시작 중...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;리눅스 커널 불러오는 중\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;memtest84 불러오는 중\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;부트로더&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;I/O 오류&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;부트 디스크 변경&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;%u 부트 디스크 삽입하세요.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;이것은 %u 부트디스크 입니다.\n&quot;
++&quot;%u 부트디스크를 삽입하세요.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;이것은 &lt;product&gt; 부트디스크가 아닙니다.\n&quot;
++&quot;%u 부트디스크를 삽입하세요.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;열쇠글&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;플로피디스크에서 드라이버를 업데이트 준비&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD 오류&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;이것은 양면으로 된 DVD 입니다. 두번째 면으로 부팅 되었습니다.\n&quot;
++&quot;\n&quot;
++&quot;DVD를 뒤집어서 계속할 수 있습니다.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;전원 OFF&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;시스템을 지금 종료하시겠습니까?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;하드디스크&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;하드디스크 설치&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;디스크 장치 (비어있을 경우 모든 디스크 검색)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;디렉토리\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP 설치&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;서버\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;열쇠글\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;사용자 (비어있을 경우 익명 로그인)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS 설치&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;사용자 (비어있을 경우 \&quot;guest\&quot; 사용)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB (윈도우 공유) 설치&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP 설치&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;드라이버&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;도메인\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;다른 옵션&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;언어&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;설치--IOAPIC 활성&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;설치--IOAPIC 비활성&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;설치--내부 APIC 비활성&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;예&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;아니요&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;파일&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;공유\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;자동 모드&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;수동 모드&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;ZEN 파티션 매개변수 구성&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;ZEN 파티션 설치 또는 업데이트&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;ZEN 파티션 부트로더 재설치&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;ZEN 파티션 비활성&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;ZEN 파티션 활성&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;텍스트 모드&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;펌웨어 테스트&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;CD-ROM으로 바로 업데이트 드라이버를 불러옵니다\n&quot;
++&quot;이곳에 업데이트 드라이버 이름을 입력하세요\n&quot;
++&quot;(쉼표로 구분하세요 ','):\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;소스&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;비디오 모드&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;드라이버 업데이트&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Arch&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++#, fuzzy
++msgid &quot;Kernel Option&quot;
++msgstr &quot;다른 옵션&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;기본&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;안전 설정&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;ACPI 없음&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;내부 APIC 없음&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;설치된 시스템 복원(복구 도구)&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;설치 미디어 확인&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;키보드&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;리눅스--안전 설정&quot;
++
++#~ msgid &quot;Kernel&quot;
++#~ msgstr &quot;커널&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpokypo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/ky.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/ky.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/ky.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,519 @@
++# Kirghiz translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++# Ilyas Bakirov &lt;just_ilyas@yahoo.com&gt;, 2009.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader\n&quot;
++&quot;POT-Creation-Date: 2005-07-27 11:49+0200\n&quot;
++&quot;PO-Revision-Date: 2009-12-25 22:10+0600\n&quot;
++&quot;Last-Translator: Ilyas Bakirov &lt;just_ilyas@yahoo.com&gt;\n&quot;
++&quot;Language-Team: Kirghiz &lt;just_ilyas@yahoo.com&gt;\n&quot;
++&quot;Language: ky\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++
++# ok button label
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;OK&quot;
++
++# cancel button label
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Айнуу&quot;
++
++# reboot button label
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Кайра жүктөө&quot;
++
++# continue button label
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Улантуу&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Microsoft Windows жүктөө&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Жабдыктарды аныктоо аспабы&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux %s ядросу менен&quot;
++
++# dialog title for ftp installation
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Орнотуу булактарын текшерүү&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Жеке кол менен орнотулушу&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;ACPI'сиз орнотуу&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Орнотуу--Коопсуз ырастоолор&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Mandriva Linux 2010 Spring жүктөө (коопсуз режими)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Катуу дисктен жүктөө&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Аварийдик система&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Эс тести&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Жүктөө параметрлери&quot;
++
++# window title for exit dialog
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Чыгуу...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Графикалык жүктөө менюсу аякталып тексттик\n&quot;
++&quot;интерфейс башталып жатат.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Жардам&quot;
++
++# window title for kernel loading (see txt_load_kernel)
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Баштоо...&quot;
++
++# Keep the three newlines!
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Linux ядросу жүктөлүп жатат\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++# Keep the three newlines!
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;memtest86 эс тести жүктөлүп жатат\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++# info box title
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Жүктөөгүч&quot;
++
++# error box title
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;I/O Катасы&quot;
++
++# boot disk change dialog title
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Жүктөлүүчү дискти алмаштыруу&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;%u жүктөлүүчү дискти киргизиңиз.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Бул %u жүктөлүүчү диски.\n&quot;
++&quot;%u жүктөлүүчү дискти киргизиңиз.&quot;
++
++# &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Бул &lt;product&gt; жүктөлүүчү диски эмес.\n&quot;
++&quot;%u жүктөөлүүчү дискти киргизиңиз.&quot;
++
++# password dialog title
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Сырсөз&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Драйвер жаңылоолор дискетасын даярдап коюңуз.&quot;
++
++# dvd warning title
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD катасы&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Бул эки жактуу DVD-диски. Сиз экинчи жактан жүктөлдүңүз.\n&quot;
++&quot;\n&quot;
++&quot;DVD-дискти айландырып коюңуз.&quot;
++
++# power off dialog title
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Өчүрүү&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Система өчүрүлсүнбү?&quot;
++
++# menu entry for hard disk installation
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Катуу диск&quot;
++
++# dialog title for hard disk installation
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Катуу диск орнотулушу&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Диск түзүлүшү (көрсөтүлбөгөн болсо бардык дисктер араланат)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Каталог\n&quot;
++
++# dialog title for ftp installation
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP орнотулушу&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Сервер\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Сырсөз\n&quot;
++
++# label for ftp user input
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Колдонуучу (көрсөтүлбөгөн болсо анонимдик кирүү колдонулат)\n&quot;
++
++# dialog title for nfs installation
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS орнотулушу&quot;
++
++# label for smb user input
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Колдонуучу (көрсөтүлбөгөн болсо \&quot;guest\&quot; колдонулат)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB (Windows бөлүшүү) орнотулушу&quot;
++
++# dialog title for http installation
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP орнотулушу&quot;
++
++# 'driver' as in '(hardware) driver update'
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Драйвер&quot;
++
++# as in Windows Authentication Domain
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Домен\n&quot;
++
++# button label for other/more options
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Башка параметрлер&quot;
++
++# label for language selection
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Тил&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;IOAPIC менен орнотуу&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;IOAPIC'сиз орнотуу&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Local APIC'сиз орнотуу&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Ооба&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Жок&quot;
++
++# menu item for selecting a file
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Файл&quot;
++
++# input label: share as in &quot;Windows share&quot; (SMB)
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Бөлүшүү\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Автоматтык режим&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Жеке кол менен режими&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;ZEN бөлүмүндө параметрлерди ырастоо&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;ZEN бөлүмүн орнотуу же жаңылоо&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;ZEN бөлүмдүн жүктөгүчүн кайра орнотуу&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;ZEN бөлүмүн өчүрүү&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;ZEN бөлүмүн жандыруу&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Текст режими&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Firmware тести&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Дисктен драйвер жаңылоолорду жүктөө\n&quot;
++&quot;үчүн драйвер жаңылоолор файл аттарын\n&quot;
++&quot;кириңиз (үтүр менен бөлүнгөн ','):\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Булак&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Видео режими&quot;
++
++# 'driver' as in '(hardware) driver update'
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Драйвер Жаңылоо&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Арх.&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Ядро опциялары&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Алдын ала&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Safe Settings&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;ACPI'сиз&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Локалдык APIC'сиз&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Орнотулган системаны ондоо&quot;
++
++# dialog title for ftp installation
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Орнотуу булактарын текшерүү&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Клавиатура&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Драйвер жаңылоосун жүктөө&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Драйвер жаңылоо адреси\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Архитектура туура эмес&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;Бул 32-бит компьютер. Сиз 64-бит программаларды колдоно же орното албайсыз.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Эскертүү&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;Сиз 64-бит компьютерге 32-бит программасын орнотуп жатасыз.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;\&quot;%s\&quot;\n&quot;
++&quot;драйвер жаңылоо дискин коюңуз.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Mandriva Linux дискин кайра коюңуз.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;draksnapshot резервдик копиядан калыбына келтирүү&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Mandriva Linux 2010 Spring жүктөө&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Mandriva Linux 2010 Spring орнотуу&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpoltpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/lt.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/lt.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/lt.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,482 @@
++# LITHUANIAN translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader.lt\n&quot;
++&quot;POT-Creation-Date: \n&quot;
++&quot;PO-Revision-Date: 2007-08-19 19:58+0300\n&quot;
++&quot;Last-Translator: Andrius Štikonas &lt;stikonas@gmail.com&gt;\n&quot;
++&quot;Language-Team: Lietuvių &lt;komp_lt@konf.lt&gt;\n&quot;
++&quot;Language: \n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++&quot;Plural-Forms: nplurals=3; plural=(n%10==1 &amp;&amp; n%100!=11 ? 0 : n%10&gt;=2 &amp;&amp; (n&quot;
++&quot;%100&lt;10 || n%100&gt;=20) ? 1 : 2);\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;Gerai&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Atšaukti&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Perkrauti&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Tęsti&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Diegimas&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Rankinis diegimas&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Diegimas--ACPI išjungtas&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Diegimas--saugūs nustatymai&quot;
++
++#. txt_safe_linux
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Įkrauti iš kietojo disko&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Avarinė sistema&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Atminties testas&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Įkrovos parametrai&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Išeinama...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Jūs paliekate grafinį įkrovos meniu ir\n&quot;
++&quot;paleidžiate tekstinę sąsają.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Pagalba&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Paleidžiama...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Įkeliamas Linux branduolys\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Įkeliamas memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Įkrovos tvarkyklė&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;I/O klaida&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Keisti įkrovos diską&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Įdėkite įkrovos diską %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Tai įkrovos diskas %u.\n&quot;
++&quot;Įdėkite įkrovos diską %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Tai ne &lt;product&gt; įkrovos diskas.\n&quot;
++&quot;Prašome įdėti įkrovos diską %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Slaptažodis&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Paruoškite savo diskelį su tvarkyklės atnaujinimu.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD klaida&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Tai dvipusis DVD. Jūs įkrovėte iš antrosios pusės.\n&quot;
++&quot;\n&quot;
++&quot;Apverskite DVD ir tęskite.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Išjungti&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Sustabdyti sistemą?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Kietasis diskas&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Diegimas iš kietojo disko&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Diskų įrenginys (jei nėra, skenuos visus diskus)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Aplankas\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP diegimas&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Serveris\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Slaptažodis\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Vartotojas (jungiasi anonimas, jei tuščia)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS diegimas&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Vartotojas (naudojama „guest“, jei tuščia)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;Diegimas per SMB (Windows Share)&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP diegimas&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Tvarkyklė&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Domenas\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Kiti parametrai&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Kalba&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Diegimas--IOAPIC įgalintas &quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Diegimas--IOAPIC uždraustas&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Diegimas--Vietinis APIC uždraustas&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Taip&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Ne&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Byla&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Resursas\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Automatinis režimas&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Rankinis režimas&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Konfigūruoti ZEN skaidinio parametrus&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Įdiegtiarba atnaujinti ZEN skaidinį&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Iš naujo įdiegti ZEN skaidinio įkrovos tvarkyklę&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Uždrausti ZEN skaidinį&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Įgalinti ZEN skaidinį&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Tekstinis režimas&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Resursas&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Video režimas&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Tvarkyklės atnaujinimas&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Arch&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Numatytas&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Saugūs nustatymai&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Be ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Taisyti įdiegtą sistemą&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Klaviatūra&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;Linux--saugios nuostatos&quot;
++
++#~ msgid &quot;Kernel&quot;
++#~ msgstr &quot;Branduolys&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpoltgpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/ltg.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/ltg.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/ltg.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,532 @@
++# Translation of bootloader.po to Russian
++# LANGUAGE translations for boot loader
++# Copyright (C) 2004 SUSE LINUX AG
++# Copyright (C) 2004 Vdel CREC
++#
++# Andrew Bogatov&lt;bert@bert2.crec.mipt.ru&gt;, 2004.
++# Aleksey Osipov &lt;aliks-os@yandex.ru&gt;, 2006.
++# Pavel Maryanov &lt;acid_jack@ukr.net&gt;, 2006.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader\n&quot;
++&quot;POT-Creation-Date: 2005-07-27 11:49+0200\n&quot;
++&quot;PO-Revision-Date: 2006-09-25 15:54+0200\n&quot;
++&quot;Last-Translator: Māris Laureckis &lt;marlau@inbox.lv&gt;\n&quot;
++&quot;Language-Team: Latgalian &lt;marlau@inbox.lv&gt;\n&quot;
++&quot;Language: \n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.11.2\n&quot;
++
++# ok button label
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;Labi&quot;
++
++# cancel button label
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Atceļt&quot;
++
++# reboot button label
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Puorsuoknēt&quot;
++
++# continue button label
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Turpynuot&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;&quot;
++
++# dialog title for ftp installation
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Instalaceja pa FTP&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Manualuo instalaceja&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Instalaceja bez ACPI&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Instalaceja drūšā režimā&quot;
++
++#. txt_safe_linux
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Suoknēt nu cītuo diska&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Avarejis sistemys īluode&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Atminis tests&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Suokneišonys parametri&quot;
++
++# window title for exit dialog
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Izīt...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Teik aizvārta grafiskuo suokneišonys izvieļne\n&quot;
++&quot;i saskarne teik palaista teksta režimā.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Paleidzeiba&quot;
++
++# window title for kernel loading (see txt_load_kernel)
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Teik starteits...&quot;
++
++# Keep the three newlines!
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Teik īluodāts Linux kūduls\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++# Keep the three newlines!
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Teik īluodāts memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++# info box title
++#. info box title
++#. txt_info_title
++#, fuzzy
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Suokneituojs&quot;
++
++# error box title
++#. error box title
++#. txt_error_title
++#, fuzzy
++msgid &quot;I/O Error&quot;
++msgstr &quot;Īvoda/Izvoda kliuda&quot;
++
++# boot disk change dialog title
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Nūmainit suokneišonys disku&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Īlicit suokneišonys disku %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Itys ir suokneišonys disks %u.\n&quot;
++&quot;Īlicit suokneišonys disku %u.&quot;
++
++# &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, fuzzy, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Itys nav &lt;product&gt; suokneišonys disks.\n&quot;
++&quot;Īlicit suokneišonys disku %u.&quot;
++
++# password dialog title
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Paroļs&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Sagatavejit draiveru atjaunynuošonys disketi.&quot;
++
++# dvd warning title
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD kliuda&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Itys divu pušu DVD. Jius īsuoknēt nu ūtruos pusis.\n&quot;
++&quot;\n&quot;
++&quot;Puorgrīzit DVD iz ūtru pusi, tod turpynojit.&quot;
++
++# power off dialog title
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Izslēgt&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Vai apstuodynuot sistemu?&quot;
++
++# menu entry for hard disk installation
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Cītīs disks&quot;
++
++# dialog title for hard disk installation
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Instalaceja nu cītuo diska&quot;
++
++#. txt_hd_diskdevice
++#, fuzzy
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Diska īkuorta ( ja nav nūruodeits, skenej vysus diskus)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Katalogs\n&quot;
++
++# dialog title for ftp installation
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;Instalaceja pa FTP&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Servers\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Paroļs\n&quot;
++
++# label for ftp user input
++#. label for ftp user input
++#. txt_user1
++#, fuzzy
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Lītuotuojs (ja nav nūruodeits, anonimuo īsalūguošona)\n&quot;
++
++# dialog title for nfs installation
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;Instalaceja pa NFS&quot;
++
++# label for smb user input
++#. label for smb user input
++#. txt_user2
++#, fuzzy
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Lītuotuojs (ja nav nūruodeits, teik izmontuots \&quot;guest\&quot;)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++#, fuzzy
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;Manualuo instalaceja&quot;
++
++# dialog title for http installation
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;Instalaceja pa HTTP&quot;
++
++# 'driver' as in '(hardware) driver update'
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Draivers&quot;
++
++# as in Windows Authentication Domain
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Domens\n&quot;
++
++# button label for other/more options
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Cytys opcejis&quot;
++
++# label for language selection
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Volūda&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Instalaceja--IOAPIC īslāgts&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Instalaceja--IOAPIC izslāgts&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Instalaceja--Local APIC izslāgts&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Da&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Nā&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Fails&quot;
++
++# input label: share as in &quot;Windows share&quot; (SMB)
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Kūplītuošona\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;&quot;
++
++# 'driver' as in '(hardware) driver update'
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++#, fuzzy
++msgid &quot;Driver Update&quot;
++msgstr &quot;Draivers&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++#, fuzzy
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Instalaceja drūšā režimā&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++#, fuzzy
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Avarejis sistemys īluode&quot;
++
++# dialog title for ftp installation
++#. menu item
++#. txt_mediacheck
++#, fuzzy
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Instalaceja pa FTP&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;&quot;
++
++# Keep the newlines and spaces after ':'!
++#~ msgid &quot;&quot;
++#~ &quot;Enter your password: \n&quot;
++#~ &quot;\n&quot;
++#~ &quot;\n&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Īvodit paroli: \n&quot;
++#~ &quot;\n&quot;
++#~ &quot;\n&quot;
++
++#~ msgid &quot;Installation from ISO file&quot;
++#~ msgstr &quot;Instalaceja nu ISO faila&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpomkpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/mk.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/mk.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/mk.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,532 @@
++# translation of bootloader.po to Macedonian
++# LANGUAGE translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++# Zoran Dimovski &lt;zoki.dimovski@gmail.com&gt;, 2006.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader\n&quot;
++&quot;POT-Creation-Date: 2005-07-27 11:49+0200\n&quot;
++&quot;PO-Revision-Date: 2006-09-17 20:33-0700\n&quot;
++&quot;Last-Translator: Zoran Dimovski &lt;zoki.dimovski@gmail.com&gt;\n&quot;
++&quot;Language-Team: Macedonian\n&quot;
++&quot;Language: \n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++&quot;Plural-Forms: nplurals=2; plural= n==1 || n%10==1 ? 0 : 1\n&quot;
++
++# ok button label
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;Во ред&quot;
++
++# cancel button label
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Откажи&quot;
++
++# reboot button label
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Рестартирај&quot;
++
++# continue button label
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Продолжи&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;&quot;
++
++# dialog title for ftp installation
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Инсталација преку „FTP“&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Рачна инсталација&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Инсталација--Оневозможено „ACPI“&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Инсталација--Сигурни поставувања&quot;
++
++#. txt_safe_linux
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Подигни од хард диск&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Систем за спасување&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Тест на меморијата&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Опции за подигнување&quot;
++
++# window title for exit dialog
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Излегувам...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Вие излегувате од графичкото мени за подигнување и\n&quot;
++&quot;и го вклучувате текстуалниот режим.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Помош&quot;
++
++# window title for kernel loading (see txt_load_kernel)
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Вклучувам...&quot;
++
++# Keep the three newlines!
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Вчитување на кернелот „Linux“\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++# Keep the three newlines!
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Вчитување на „memtest86“\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++# info box title
++#. info box title
++#. txt_info_title
++#, fuzzy
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Подигнувач&quot;
++
++# error box title
++#. error box title
++#. txt_error_title
++#, fuzzy
++msgid &quot;I/O Error&quot;
++msgstr &quot;В/И грешка&quot;
++
++# boot disk change dialog title
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Промена на дискот за подигнување&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Внесете го дискот за подигнување „%u“.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Ова е дискот за подигнување „%u“.\n&quot;
++&quot;Внесете го дискот за подигнување „%u“.&quot;
++
++# &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, fuzzy, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Ова не е „&lt;product&gt;“ диск за подигнување.\n&quot;
++&quot;Ве молиме внесете го дискот за подигнување „%u“.&quot;
++
++# password dialog title
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Лозинка&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Подгответе ја дискетата за ажурирање на драјверот.&quot;
++
++# dvd warning title
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;„DVD“ грешка&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Ова е обострано „DVD“. Вие го вклучивте од втората страна.\n&quot;
++&quot;\n&quot;
++&quot;Обратно свртете го дискот и продолжете.&quot;
++
++# power off dialog title
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Исклучи&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Дали сакате да го исклучите системот?&quot;
++
++# menu entry for hard disk installation
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Хард диск&quot;
++
++# dialog title for hard disk installation
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Инсталација преку хард диск&quot;
++
++#. txt_hd_diskdevice
++#, fuzzy
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Хард диск (ако е празно ги скенира сите дискови)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Директориум\n&quot;
++
++# dialog title for ftp installation
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;Инсталација преку „FTP“&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Сервер\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Лозинка\n&quot;
++
++# label for ftp user input
++#. label for ftp user input
++#. txt_user1
++#, fuzzy
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Корисник (ако е празно значи дека е анонимен корисник)\n&quot;
++
++# dialog title for nfs installation
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;Инсталација преку „NFS“&quot;
++
++# label for smb user input
++#. label for smb user input
++#. txt_user2
++#, fuzzy
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Корисник (ако е празно значи дека е „гостин“)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++#, fuzzy
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;Рачна инсталација&quot;
++
++# dialog title for http installation
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;Инсталација преку „HTTP“&quot;
++
++# 'driver' as in '(hardware) driver update'
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Драјвер&quot;
++
++# as in Windows Authentication Domain
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Домен\n&quot;
++
++# button label for other/more options
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Други опции&quot;
++
++# label for language selection
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Јазик&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Инсталација--Овозможено „IOAPIC“&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Инсталација--Оневозможено „IOAPIC“&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Инсталација--Оневозможено локално „APIC“&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Да&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Не&quot;
++
++# menu item for selecting a file
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Датотека&quot;
++
++# input label: share as in &quot;Windows share&quot; (SMB)
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Сподели\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;&quot;
++
++# 'driver' as in '(hardware) driver update'
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++#, fuzzy
++msgid &quot;Driver Update&quot;
++msgstr &quot;Драјвер&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++#, fuzzy
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Инсталација--Сигурни поставувања&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++#, fuzzy
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Систем за спасување&quot;
++
++# dialog title for ftp installation
++#. menu item
++#. txt_mediacheck
++#, fuzzy
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Инсталација преку „FTP“&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;&quot;
++
++# Keep the newlines and spaces after ':'!
++#~ msgid &quot;&quot;
++#~ &quot;Enter your password: \n&quot;
++#~ &quot;\n&quot;
++#~ &quot;\n&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Внесете ја вашата лозинка: \n&quot;
++#~ &quot;\n&quot;
++#~ &quot;\n&quot;
++
++# dialog title for ISO installation
++#~ msgid &quot;Installation from ISO file&quot;
++#~ msgstr &quot;Инсталација преку „ISO“ датотека&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpomrpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/mr.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/mr.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/mr.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,483 @@
++# LANGUAGE translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: Check hardware-2.0\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2007-01-16 23:21+0100\n&quot;
++&quot;PO-Revision-Date: 2006-11-13 12:55+0530\n&quot;
++&quot;Last-Translator: Priyavert Sharma &lt;priyavert.sharma@agreeya.com&gt;\n&quot;
++&quot;Language-Team: AgreeYa Solutions &lt;linux_team@agreeya.com&gt;\n&quot;
++&quot;Language: \n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++&quot;X-Generator: KBabel 1.10.2\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;ठीक आहे&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;रद्द करा&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;पुन्हा सुरु करा (रीबूट)&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;पुढे चालू ठेवा&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;स्थापना (इन्स्टॉलेशन)&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;हाताने स्थापना&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;स्थापना--ACPI असमर्थ&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;स्थापना - सुरक्षित सेटिंग्ज&quot;
++
++#. txt_safe_linux
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;हार्ड डिस्कवरुन सुरु करा&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;बचावात्मक प्रणाली&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;स्मृती चाचणी&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;सुरु करण्याचे (बूट) पर्याय&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;बाहेर येत आहे...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;आपण ग्राफिकल बूट मेन्यूमधून बाहेर येत आहात आणि\n&quot;
++&quot;पाठ्य मोड इंटरफेस सुरु करत आहात.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;मदत&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;सुरु करत आहे...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;लायनक्स कर्नेल लोड करत आहे.\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;मेमटेक्स्ट 86 लोड करत आहे\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;बूट लोडर&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;I/O चूक&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;बूट डिस्क बदला&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;%u.बूट डिस्क घाला&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;ही %u.बूट डिस्क आहे\n&quot;
++&quot;बूट डिस्क %u.घाला&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;ही &lt;product&gt; बूट डिस्क नाही.\n&quot;
++&quot;%u.बूट डिस्क घाला&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;पासवर्ड&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;आपला ड्रायव्हर अपडेट करणारी फ्लॉपी तयार ठेवा.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD चूक&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;ही दोन्ही बाजूंनी वापरता येणारी DVDआहे. आपण दुसर्या बाजूपासून सुरु (बूट) केली आहे.\n&quot;
++&quot;\n&quot;
++&quot;DVD उलटी करा व पुढे चालू करा.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;वीजपुरवठा बंद&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;प्रणाली आता थांबवायची?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;हार्ड डिस्क&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;हार्ड डिस्कची स्थापना&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;डिस्क डिव्हाईस (सर्व डिस्क रिकाम्या आहेत किंवा काय ते पहाते)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;डिरेक्टरी\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP स्थापना&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;सर्व्हर\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;पासवर्ड\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;उपभोक्ता (रिक्त असल्यास निनावी लॉगईन) \n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS स्थापना&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;उपभोक्ता (रिक्त असल्यास \&quot;guest\&quot; वापरते)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB (विंडोज शेयर) स्थापना &quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP स्थापना&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;ड्रायव्हर&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;डोमेन\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;अन्य पर्याय&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;भाषा&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;स्थापना--IOAPIC समर्थ&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;स्थापना--IOAPIC असमर्थ&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;स्थापना--स्थानिक APIC असमर्थ&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;होय&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;नाही&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;फाईल&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;शेअर\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;स्वयंचलित मोड&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;हाताने चालणारा मोड&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;ZEN पार्टिशनवर पॅरामीटर्सचा आकृतीबंध बनवा&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot; ZEN पार्टिशन स्थापित किंवा अपडेट करा&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;ZEN पार्टिशन बूट लोडर पुनरस्थापित करा&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot; ZEN पार्टिशन असमर्थ करा&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;ZEN पार्टिशन समर्थ करा&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;पाठ्य मोड&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot; फर्मवेअर चाचणी&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;CD-ROM वरुन थेट ड्रायव्हर अपडेट्स लोड करण्यासाठी,\n&quot;
++&quot;ड्रायव्हर अपडेट फाईलींची नांवे येथे प्रविष्ट करा \n&quot;
++&quot;(स्वल्पविराम ',' देऊन) वेगवेगळी कराः\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;स्रोत&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;शिल्प&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++#, fuzzy
++msgid &quot;Kernel Option&quot;
++msgstr &quot;अन्य पर्याय&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;की बोर्ड&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot; लायनक्स--सुरक्षित सेटिंग्ज &quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpomspo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/ms.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/ms.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/ms.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,528 @@
++# LANGUAGE translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader\n&quot;
++&quot;POT-Creation-Date: 2005-07-27 11:49+0200\n&quot;
++&quot;PO-Revision-Date: 2008-12-28 21:47+0800\n&quot;
++&quot;Last-Translator: Sharuzzaman Ahmat Raslan &lt;sharuzzaman@myrealbox.com&gt;\n&quot;
++&quot;Language-Team: Malay &lt;translation-team-ms@lists.sourceforge.net&gt;\n&quot;
++&quot;Language: ms\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++
++# ok button label
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;OK&quot;
++
++# cancel button label
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Batal&quot;
++
++# reboot button label
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Ulangbut&quot;
++
++# continue button label
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Teruskan&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Boot Microsoft Windows&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux dengan kernel %s&quot;
++
++# dialog title for ftp installation
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Pemasangan FTP&quot;
++
++#. txt_manual_install
++#, fuzzy
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Pemasangan Pakej&quot;
++
++#. txt_noacpi_install
++#, fuzzy
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Pemasangan--IOAPIC Dimatikan&quot;
++
++#. txt_safe_install
++#, fuzzy
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Ubah seting latar belakang&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Boot Mandriva Linux 2009 Spring&quot;
++
++#. txt_boot_harddisk
++#, fuzzy
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Kembalikan dari Cakera Keras.&quot;
++
++#. txt_rescue
++#, fuzzy
++msgid &quot;Rescue System&quot;
++msgstr &quot;Sistem untuk diselamatkan&quot;
++
++#. txt_memtest
++#, fuzzy
++msgid &quot;Memory Test&quot;
++msgstr &quot;Ujian Kevins&quot;
++
++#. txt_bootoptions
++#, fuzzy
++msgid &quot;Boot Options&quot;
++msgstr &quot;Pilihan Bina&quot;
++
++# window title for exit dialog
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++#, fuzzy
++msgid &quot;Exiting...&quot;
++msgstr &quot;Keluar...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Bantuan&quot;
++
++# window title for kernel loading (see txt_load_kernel)
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++#, fuzzy
++msgid &quot;Starting...&quot;
++msgstr &quot;Mulakan %s: &quot;
++
++# Keep the three newlines!
++#. Keep the three newlines!
++#. txt_load_kernel
++#, fuzzy
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;Linux dengan kernel %s&quot;
++
++# Keep the three newlines!
++#. Keep the three newlines!
++#. txt_load_memtest
++#, fuzzy
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;Memuatkan jurupacu %s...&quot;
++
++# info box title
++#. info box title
++#. txt_info_title
++#, fuzzy
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Pemuat but&quot;
++
++# error box title
++#. error box title
++#. txt_error_title
++#, fuzzy
++msgid &quot;I/O Error&quot;
++msgstr &quot;Ralat I/O&quot;
++
++# boot disk change dialog title
++#. boot disk change dialog title
++#. txt_change_disk_title
++#, fuzzy
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Gantung Ke Cakera&quot;
++
++#. txt_insert_disk
++#, fuzzy, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Masukkan Cekera Jurupacu&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++
++# password dialog title
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Katalaluan&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;&quot;
++
++# dvd warning title
++#. dvd warning title
++#. txt_dvd_warning_title
++#, fuzzy
++msgid &quot;DVD Error&quot;
++msgstr &quot;Ralat KMail&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++
++# power off dialog title
++#. power off dialog title
++#. txt_power_off_title
++#, fuzzy
++msgid &quot;Power Off&quot;
++msgstr &quot;Kawalan Kuasa&quot;
++
++#. txt_power_off
++#, fuzzy
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Sistem anda akan diulang but sekarang.&quot;
++
++# menu entry for hard disk installation
++#. menu entry for hard disk installation
++#. txt_harddisk
++#, fuzzy
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Cakera Keras&quot;
++
++# dialog title for hard disk installation
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Pemasangan Cakera Keras&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Direktori\n&quot;
++
++# dialog title for ftp installation
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;Pemasangan FTP&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Pelayan\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Katalaluan\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;&quot;
++
++# dialog title for nfs installation
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;Pemasangan NFS&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++#, fuzzy
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;Pemasangan Pakej&quot;
++
++# dialog title for http installation
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;Pemasangan HTTP&quot;
++
++# 'driver' as in '(hardware) driver update'
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Jurupacu&quot;
++
++# as in Windows Authentication Domain
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Domain\n&quot;
++
++# button label for other/more options
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Pilihan Lain&quot;
++
++# label for language selection
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Bahasa&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Pemasangan--IOAPIC Dihidupkan&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Pemasangan--IOAPIC Dimatikan&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Pemasangan--APIC Tempatan Dimatikan&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Ya&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Tidak&quot;
++
++# menu item for selecting a file
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Fail&quot;
++
++# input label: share as in &quot;Windows share&quot; (SMB)
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Kongsi\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;&quot;
++
++# 'driver' as in '(hardware) driver update'
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++#, fuzzy
++msgid &quot;Driver Update&quot;
++msgstr &quot;Jurupacu&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Pilihan Kernel&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++#, fuzzy
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Ubah seting latar belakang&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++#, fuzzy
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Sistem untuk diselamatkan&quot;
++
++# dialog title for ftp installation
++#. menu item
++#. txt_mediacheck
++#, fuzzy
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Pemasangan FTP&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Boot Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Pasang Mandriva Linux 2010 Spring&quot;
++
++# Keep the newlines and spaces after ':'!
++#, fuzzy
++#~ msgid &quot;&quot;
++#~ &quot;Enter your password: \n&quot;
++#~ &quot;\n&quot;
++#~ &quot;\n&quot;
++#~ msgstr &quot;Masukkan Nama Anda&quot;
++
++# dialog title for ISO installation
++#~ msgid &quot;Installation from ISO file&quot;
++#~ msgstr &quot;Pemasangan dari fail ISO&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkponbpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/nb.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/nb.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/nb.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,497 @@
++# translation of nb.po to Norwegian Bokmål
++# translation of nb.po to
++# translation of bootloader.nb.po to
++# translation of bootloader.po to
++# LANGUAGE translations for boot loader
++# Copyright (C) 2004 SUSE LINUX AG
++#
++# Olav Pettershagen &lt;olav.pettershagen@trysil.online.no&gt;, 2004, 2005.
++# Olav Pettershagen &lt;olav.pet@online.no&gt;, 2005.
++# Olav Dahlum &lt;odahlum@gmail.com&gt;, 2009.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: nb\n&quot;
++&quot;PO-Revision-Date: 2009-12-01 22:39+0100\n&quot;
++&quot;Last-Translator: Olav Dahlum &lt;odahlum@gmail.com&gt;\n&quot;
++&quot;Language-Team: Norwegian Bokmål &lt;cooker-i18n@mandrivalinux.org&gt;\n&quot;
++&quot;Language: \n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;OK&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Avbryt&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Start på nytt&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Fortsett&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Start Microsoft Windows&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Verktøy for maskinvareoppdagelse&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux med kjerne %s&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Kontroller installasjonsmedier&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Manuell installasjon&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Installering – ACPI avslått&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Installering – trygge innstillinger&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Start Mandriva Linux 2010 Spring (sikkermodus)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Start fra harddisk&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Redningssystem&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Minnekontroll&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Oppstartsalternativer&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Avslutter...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Du er i ferd med å avslutte den grafiske oppstartsmenyen\n&quot;
++&quot;og gå over til tekstmodus.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Hjelp&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Starter...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Laster Linux-kjerne\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Laster memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Oppstartslaster&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;Inn/ut-feil&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Endre oppstartsdisk&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Sett inn oppstartsdisken %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Dette er oppstartsdisk %u.\n&quot;
++&quot;Sett inn oppstartsdisk %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Dette er ikke en oppstartsdisk for &lt;product&gt;.\n&quot;
++&quot;Sett inn oppstartsdisk %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Passord&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Hold disketten med driveroppdateringer klar.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD-feil&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Dette er en tosidig DVD. Du har startet opp fra side to.\n&quot;
++&quot;\n&quot;
++&quot;Snu DVD-en og fortsett.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Slå av maskinen&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Hvil du avslutte nå?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Harddisk&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Harddiskinstallasjon&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Diskenhet (søker på alle disker hvis tomt)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Katalog\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP-installasjon&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Server\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Passord\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Bruker (anonym innlogging hvis tomt)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS-installasjon&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Bruker (bruker \&quot;guest\&quot; hvis tomt)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB-installasjon (delt Windows-ressurs)&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP-installasjon&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Driver&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Domene\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Andre valg&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Språk&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Installasjon--IOAPIC aktivert&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Installasjon--IOAPIC deaktivert&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Installasjon--Lokal APIC deaktivert&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Ja&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Nei&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Fil&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Delt ressurs\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Automatisk modus&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Manuell modus&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Konfigurer parametere for ZEN-partisjon&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Installerer eller oppdater ZEN-partisjon&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Installer oppstartslaster for ZEN-partisjon på nytt&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Ikke bruk ZEN-partisjon&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Bruk ZEN-partisjon&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Tekstmodus&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Fastvarekontroll&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;For å laste driveroppdateringer direkte fra CD-ROM,\n&quot;
++&quot;angi driveroppdateringsfilenes navn (adskilt\n&quot;
++&quot;av komma ',') her:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Kilde&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Grafisk modus&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Driveroppdatering&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Arkitektur&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Kjernevalg&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Standard&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Sikker modus&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Ikke bruk ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Ikke bruk lokal APIC&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Reparer installert system&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Kontroller installasjonsmedier&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Tastatur&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Last ned driveroppdatering&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Tast inn adresse for oppdateringen\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Feil arkitektur&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;Dette er en 32-bits datamaskin. Du kan ikke installere eller bruke 64-bits &quot;
++&quot;programvare på den.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Advarsel&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++&quot;Du er i ferd med å installere 32-bits programvare på en 64-bits datamaskin.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;Sett inn CD-ROM med driveroppdatering for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Sett inn igjen CD-en for Mandriva Linux.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;Gjenopprett reservekopi fra draksnapshot&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Start Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Installer Mandriva Linux 2010 Spring&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkponlpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/nl.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/nl.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/nl.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,501 @@
++# translation of bootloader.po to Nederlands
++# translation of bootloader.po to Dutch
++# translation of nl.po to Dutch
++# LANGUAGE translations for boot loader
++# Copyright (C) 2004 SUSE LINUX AG
++# Proefgelezen op 10-08-2005 door Henk Krus
++# Arthur &amp; Ettie Kerkmeester &lt;a.s.kerkmeester@hccnet.nl&gt;, 2004, 2005.
++# Rinse de Vries &lt;rinsedevries@kde.nl&gt;, 2005.
++# Reinout van Schouwen &lt;reinouts@gnome.org&gt;, 2009
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader\n&quot;
++&quot;PO-Revision-Date: 2009-04-05 19:50+0100\n&quot;
++&quot;Last-Translator: Reinout van Schouwen &lt;reinouts@gnome.org&gt;\n&quot;
++&quot;Language-Team: Dutch &lt;vertaling@vrijschrift.org&gt;\n&quot;
++&quot;Language: nl\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=n != 1;\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;OK&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Annuleren&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Herstarten&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Doorgaan&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Microsoft Windows opstarten&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Hulpprogramma voor apparatuurdetectie&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux met kernel %s&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Installatie&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Handmatige installatie&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Installatie - ACPI uitgeschakeld&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Installatie - Veilige instellingen&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Mandriva Linux 2010 Spring opstarten (veilige modus)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Van harde schijf opstarten&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Reddingssysteem&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Geheugentest&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Opstartopties&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Beëindigen...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;U gaat het grafische opstartmenu verlaten en\n&quot;
++&quot;de interface wordt nu opgestart in tekstmodus.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Hulp&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Starten...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Linux-kernel wordt geladen\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Memtest86 wordt geladen\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Bootloader&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;I/O-fout&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Opstartdiskette wijzigen&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Plaats opstartdiskette %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Dit is opstartdiskette %u.\n&quot;
++&quot;Plaats a.u.b. opstartdiskette %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Dit is geen opstartdiskette van &lt;product&gt;.\n&quot;
++&quot;Plaats a.u.b. opstartdiskette %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Wachtwoord&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Houdt uw diskette met de stuurprogramma-opwaardering gereed.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD-fout&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Dit is een dubbelzijdige DVD. U heeft met kant twee opgestart.\n&quot;
++&quot;\n&quot;
++&quot;Draai de DVD om en ga dan verder.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Computer uitschakelen&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Wilt u nu het systeem stoppen?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Harde schijf &quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Installatie van harde schijf&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Schijfapparaat (indien leeg: alle schijven doorzoeken)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Map\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP-installatie&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Server\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Wachtwoord\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Gebruiker (indien leeg: anonieme aanmelding)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS-installatie&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Gebruiker (indien leeg: \&quot;guest\&quot; gebruiken)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB-installatie (Windows-netwerk)&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP-installatie&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Stuurprogramma&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Domein\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Andere opties&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Taal&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Installatie - IOAPIC ingeschakeld&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Installatie - IOAPIC uitgeschakeld&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Installatie - Local APIC uitgeschakeld&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Ja&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Nee&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Bestand&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Gedeelde map\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Automatisch&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Handmatig&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Parameters op ZEN-partitie instellen&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;ZEN-partitie installeren/opwaarderen&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Bootloader voor ZEN-partitie herinstalleren&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;ZEN-partitie uitschakelen&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;ZEN-partitie inschakelen&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Tekstmodus&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Firmware-test&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Om stuurprogramma-herzieningen direct van cd-rom te laden,\n&quot;
++&quot;voer hier de bestandsnamen in van de stuurprogramma-herzieningen\n&quot;
++&quot;(gescheiden door komma's ','):\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Bron&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Videomodus&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Stuurprogramma-herziening&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Arch&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Kernel-optie&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Standaard&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Veilige instellingen&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Geen ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Geen lokale APIC&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Geïnstalleerd systeem repareren&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Controleer installatiemedia&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Toetsenbord&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Herzien stuurprogramma downloaden&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;URL voor stuurprogramma-herzieningen invoeren\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Verkeerde architectuur&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++#, fuzzy
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;Dit is een 32-bit-computer. U kunt er geen 64-bit-software op gebruiken.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Waarschuwing&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++&quot;U staat op het punt om 32-bit-software op een 64-bit-computer te installeren.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;Plaats de cd-rom met stuurprogrammaherziening voor\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Plaats de Mandriva Linux cd-rom terug in het station.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;Draksnapshot-reservekopie herstellen&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Mandriva Linux 2010 Spring opstarten&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Mandriva Linux 2010 Spring installeren&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;Linux - Veilige instellingen&quot;
++
++#~ msgid &quot;Kernel&quot;
++#~ msgstr &quot;Kernel&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkponnpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/nn.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/nn.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/nn.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,539 @@
++# Translation of mandriva-gfxboot-theme to Norwegian Nynorsk
++#
++# Karl Ove Hufthammer &lt;karl@huftis.org&gt;, 2006, 2007, 2008, 2009, 2010.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader\n&quot;
++&quot;POT-Creation-Date: 2005-07-27 11:49+0200\n&quot;
++&quot;PO-Revision-Date: 2010-01-31 11:29+0100\n&quot;
++&quot;Last-Translator: Karl Ove Hufthammer &lt;karl@huftis.org&gt;\n&quot;
++&quot;Language-Team: Norwegian Nynorsk &lt;i18n-nn@lister.ping.uio.no&gt;\n&quot;
++&quot;Language: nn\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: Lokalize 1.0\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++# ok button label
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;OK&quot;
++
++# cancel button label
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Avbryt&quot;
++
++# reboot button label
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Start på nytt&quot;
++
++# continue button label
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Hald fram&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Start Microsoft Windows&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Maskinvareoppdaging&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux med kjernen %s&quot;
++
++# dialog title for ftp installation
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Kontroller installasjonsmedium&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Manuell installering&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Installering – ACPI avslått&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Installering – trygge innstillingar&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Start Mandriva Linux 2010 – vårutgåve (sikkermodus)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Start frå harddisk&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Redningssystem&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Minnekontroll&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Oppstartsval&quot;
++
++# window title for exit dialog
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Avsluttar …&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Du er i ferd med å avslutta den grafiske\n&quot;
++&quot;oppstartsmenyen og gå over til tekstmodus.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Hjelp&quot;
++
++# window title for kernel loading (see txt_load_kernel)
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Startar …&quot;
++
++# Keep the three newlines!
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Lastar Linux-kjerne\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++# Keep the three newlines!
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Lastar memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++# info box title
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Oppstartslastar&quot;
++
++# error box title
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;Inn/ut-feil&quot;
++
++# boot disk change dialog title
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Byt oppstartdisk&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Set inn oppstartsdisken «%u».&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Dette er oppstartsdisk «%u».\n&quot;
++&quot;Set inn oppstartsdisk «%u».&quot;
++
++# &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Dette er ikkje ein oppstartsdisk for &lt;product&gt;.\n&quot;
++&quot;Set inn oppstartsdisken «%u».&quot;
++
++# password dialog title
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Passord&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Hent fram disketten med drivaroppdateringar.&quot;
++
++# dvd warning title
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD-feil&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Dette er ein tosidig DVD. Du har starta opp frå side to.\n&quot;
++&quot;\n&quot;
++&quot;Snu DVD-en og hald så fram.&quot;
++
++# power off dialog title
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Slå av maskina&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Vil du stengja ned maskina no?&quot;
++
++# menu entry for hard disk installation
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Harddisk&quot;
++
++# dialog title for hard disk installation
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Harddisk-installering&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Diskeining (søkjer på alle diskar viss tom)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Mappe\n&quot;
++
++# dialog title for ftp installation
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP-installering&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Tenar\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Passord\n&quot;
++
++# label for ftp user input
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Brukar (anonym innlogging viss tom)\n&quot;
++
++# dialog title for nfs installation
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS-installering&quot;
++
++# label for smb user input
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Brukar (brukar «guest» viss tom)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB-installering (delt Windows-område)&quot;
++
++# dialog title for http installation
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP-installering&quot;
++
++# 'driver' as in '(hardware) driver update'
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Drivar&quot;
++
++# as in Windows Authentication Domain
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Domene\n&quot;
++
++# button label for other/more options
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Andre val&quot;
++
++# label for language selection
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Språk&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Installering – IOAPIC slått på&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Installering – IOAPIC slått av&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Installation – lokal APIC slått av&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Ja&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Nei&quot;
++
++# menu item for selecting a file
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Fil&quot;
++
++# input label: share as in &quot;Windows share&quot; (SMB)
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Delt område\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Automatisk&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Manuell&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Set opp parametrar på ZEN-partisjon&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Installer eller oppdater ZEN-partisjon&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Legg til oppstartslastar til ZEN-partisjon på nytt&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Ikkje bruk ZEN-partisjon&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Bruk ZEN-partisjon&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Tekstmodus&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Fastvaretest&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Viss du vil lasta drivaroppdateringar rett frå\n&quot;
++&quot;ein CD-ROM, kan du skriva inn filnamna (skilde\n&quot;
++&quot;med komma) her:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Kjelde&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Videmodus&quot;
++
++# 'driver' as in '(hardware) driver update'
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Drivaroppdatering&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Arkitektur&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Kjerneval&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Standard&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Trygt oppsett&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Ingen ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Ingen lokal APIC&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Reparer installert system&quot;
++
++# dialog title for ftp installation
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Kontroller installasjonsmedium&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Tastatur&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Last ned drivaroppdatering&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Skriv inn adressa til drivaroppdateringa\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Feil arkitektur&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;Dette er ei 32-bits maskin. Du kan derfor ikkje køyra eller installera 64-&quot;
++&quot;bits programvare på ho.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Åtvaring&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++&quot;Du er i ferd med å installera 32-bits programvare på ei 64-bits maskin.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;Set inn drivaroppdaterings-CD-en for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Set inn att CD-en for Mandriva Linux.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;Gjenopprett reservekopi frå draksnapshot&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Start Mandriva Linux 2010 – vårutgåve&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Installer Mandriva Linux 2010 – vårutgåve&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;Linux – trygt oppsett&quot;
++
++# Keep the newlines and spaces after ':'!
++#~ msgid &quot;&quot;
++#~ &quot;Enter your password: \n&quot;
++#~ &quot;\n&quot;
++#~ &quot;\n&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Skriv inn passordet ditt: \n&quot;
++#~ &quot;\n&quot;
++#~ &quot;\n&quot;
++
++# dialog title for ISO installation
++#~ msgid &quot;Installation from ISO file&quot;
++#~ msgstr &quot;Installering frå ISO-fil&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpopapo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/pa.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/pa.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/pa.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,496 @@
++# translation of bootloader.pa.po to Panjabi
++# translation of bootloader.po to Panjabi
++# LANGUAGE translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++# Amanpreet Singh Alam[ਆਲਮ] &lt;amanpreetalam@yahoo.com&gt;, 2005.
++# Amanpreet Singh Alam[ਆਲਮ] &lt;amanpreetalam@yahoo.com&gt;, 2005.
++# Amanpreet Singh Alam[ਆਲਮ] &lt;amanpreetalam@yahoo.com&gt;, 2005.
++# Amanpreet Singh Alam[ਆਲਮ] &lt;amanpreetalam@yahoo.com&gt;, 2005.
++# Amanpreet Singh Alam[ਆਲਮ] &lt;amanpreetalam@yahoo.com&gt;, 2005.
++# Amanpreet Singh Alam[ਆਲਮ] &lt;amanpreetalam@yahoo.com&gt;, 2005.
++# Amanpreet Singh Alam[ਆਲਮ] &lt;amanpreetalam@yahoo.com&gt;, 2005.
++# Amanpreet Singh Alam[ਆਲਮ] &lt;amanpreetalam@yahoo.com&gt;, 2005.
++# Amanpreet Singh Alam[ਆਲਮ] &lt;amanpreetalam@yahoo.com&gt;, 2005.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader.pa\n&quot;
++&quot;POT-Creation-Date: \n&quot;
++&quot;PO-Revision-Date: 2008-11-11 08:07+0530\n&quot;
++&quot;Last-Translator: KDB &lt;brar.kd@gmail.com&gt;\n&quot;
++&quot;Language-Team: Panjabi &lt;punjabi-l10n@list.sf.net&gt;\n&quot;
++&quot;Language: \n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=n != 1;\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;ਠੀਕ ਹੈ&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;ਰੱਦ ਕਰੋ&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;ਮੁੜ-ਚਾਲੂ&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;ਜਾਰੀ ਰੱਖੋ&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;ਇੰਸਟਾਲੇਸ਼ਨ&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;ਖੁਦ ਇੰਸਟਾਲੇਸ਼ਨ&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;ਇੰਸਟਾਲੇਸ਼ਨ--ACPI ਆਯੋਗ&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;ਇੰਸਟਾਲੇਸ਼ਨ--ਸੁਰੱਖਿਅਤ ਸੈਟਿੰਗ&quot;
++
++#. txt_safe_linux
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;ਹਾਰਡ ਡਿਸਕ ਤੋਂ ਬੂਟ&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;ਸੰਕਟਕਾਲੀਨ ਸਿਸਟਮ&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;ਮੈਮੋਰੀ ਟੈਸਟ&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;ਬੂਟ ਚੋਣਾਂ&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;ਬੰਦ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;ਤੁਸੀਂ ਗਰਾਫਿਕਲ ਬੂਟ ਮੇਨੂ ਛੱਡ ਕੇ ਟੈਕਸਟ ਢੰਗ ਨਾਲ ਇੰਟਰਫੇਸ ਸ਼ੁਰੂ\n&quot;
++&quot;ਕਰ ਰਹੇ ਹੋ।&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;ਮੱਦਦ&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;ਸ਼ੁਰੂ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;ਲੀਨਕਸ ਕਰਨਲ ਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;memtest86 ਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;ਬੂਟ ਲੋਡਰ&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;I/O ਗਲਤੀ&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;ਬੂਟ ਡਿਸਕ ਬਦਲੋ&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;ਬੂਟ ਡਿਸਕ %u ਪਾਓ&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;ਇਹ ਬੂਟ ਡਿਸਕ %u ਹੈ।\n&quot;
++&quot;ਬੂਟ ਡਿਸਕ %u ਪਾਓ।&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;ਇਹ &lt;product&gt; ਬੂਟ ਡਿਸਕ ਨਹੀਂ ਹੈ।\n&quot;
++&quot;ਬੂਟ ਡਿਸਕ %u ਪਾਓ ਜੀ।&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;ਪਾਸਵਰਡ&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;ਆਪਣੀ ਡਰਾਇਵਰ ਅੱਪਡੇਟ ਫਲਾਪੀ ਤਿਆਰ ਰੱਖੋ।&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD ਗਲਤੀ&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;ਇਹ ਦੋਹਰੀ ਪਰਤ DVD ਹੈ। ਤੁਹਾਨੂੰ ਦੂਜੇ ਪਾਸੇ ਤੋਂ ਬੂਟ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ।\n&quot;
++&quot;\n&quot;
++&quot;ਜਾਰੀ ਰੱਖਣ ਲਈ DVD ਨੂੰ ਪਲਟੋ।&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;ਬੰਦ ਕਰੋ&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;ਕੀ ਹੁਣੇ ਸਿਸਟਮ ਬੰਦ ਕਰਨਾ ਹੈ?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;ਹਾਰਡ ਡਿਸਕ&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;ਹਾਰਡ ਡਿਸਕ ਇੰਸਟਾਲੇਸ਼ਨ&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;ਡਿਸਕ ਜੰਤਰ (ਜੇਕਰ ਖਾਲੀ ਹੈ ਤਾਂ ਸਭ ਡਿਸਕਾਂ ਦੀ ਜਾਂਚ)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;ਡਾਇਰੈਕਟਰੀ\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP ਇੰਸਟਾਲੇਸ਼ਨ&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;ਸਰਵਰ\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;ਪਾਸਵਰਡ\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;ਯੂਜ਼ਰ (ਅਗਿਆਤ ਲਾਗਇਨ, ਜੇਕਰ ਖਾਲੀ ਹੈ ਤਾਂ)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS ਇੰਸਟਾਲੇਸ਼ਨ&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;ਯੂਜ਼ਰ (ਜੇਕਰ ਖਾਲੀ ਹੋਇਆ ਤਾਂ \&quot;guest\&quot; ਵਰਤੇਗਾ)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB (Windows ਸਾਂਝ) ਇੰਸਟਾਲੇਸ਼ਨ&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP ਇੰਸਟਾਲੇਸ਼ਨ&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;ਡਰਾਇਵਰ&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;ਡੋਮੇਨ\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;ਹੋਰ ਚੋਣਾਂ&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;ਭਾਸ਼ਾ&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;ਇੰਸਟਾਲੇਸ਼ਨ--IOAPIC ਯੋਗ ਹੈ&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;ਇੰਸਟਾਲੇਸ਼ਨ--IOAPIC ਆਯੋਗ ਹੈ&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;ਇੰਸਟਾਲੇਸ਼ਨ-ਲੋਕਲ APIC ਆਯੋਗ ਹੈ&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;ਹਾਂ&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;ਨਹੀਂ&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;ਫਾਇਲ&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;ਸਾਂਝ\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;ਆਟੋਮੈਟਿਕ ਮੋਡ&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;ਦਸਤੀ ਮੋਡ&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;ZEN ਪਾਰਟੀਸ਼ਨ ਉੱਤੇ ਪੈਰਾਮੀਟਰ ਸੰਰਚਨਾ&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;ZEN ਪਾਰਟੀਸ਼ਨ ਇੰਸਟਾਲ ਜਾਂ ਅੱਪਡੇਟ&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;ZEN ਪਾਰਟੀਸ਼ਨ ਬੂਟ ਲੋਡਰ ਮੁੜ-ਇੰਸਟਾਲ&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;ZEN ਪਾਰਟੀਸ਼ਨ ਆਯੋਗ&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;ZEN ਪਾਰਟੀਸ਼ਨ ਯੋਗ&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;ਟੈਕਸਟ ਮੋਡ&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;ਫਾਇਰਮਵੇਅਰ ਟੈਸਟ&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;CD-ROM ਤੋਂ ਡਰਾਇਵਰ ਅੱਪਡੇਟ ਸਿੱਧਾ ਲੋਡ ਕਰਨ ਲਈ,\n&quot;
++&quot;ਅੱਪਡੇਟ ਡਰਾਇਵਰ ਫਾਇਲ ਨਾਂ ਇੱਥੇ ਦਿਓ (',' ਨਾਲ ਵੱਖ\n&quot;
++&quot;ਕਰਕੇ):\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;ਸਰੋਤ&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;ਵੀਡਿਓ ਮੋਡ&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;ਡਰਾਇਵਰ ਅੱਪਡੇਟ&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;ਢਾਂਚਾ&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++#, fuzzy
++msgid &quot;Kernel Option&quot;
++msgstr &quot;ਹੋਰ ਚੋਣਾਂ&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;ਡਿਫਾਲਟ&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;ਸੁਰੱਖਿਅਤ ਸੈਟਿੰਗ&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;ACPI ਨਹੀਂ&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;ਲੋਕਲ APIC ਨਹੀਂ&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;ਇੰਸਟਾਲ ਹੋਇਆ ਸਿਸਟਮ ਰਿਪੇਅਰ&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;ਇੰਸਟਾਲੇਸ਼ਨ ਮੀਡਿਆ ਚੈੱਕ ਕਰੋ&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;ਕੀਬੋਰਡ&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;ਲੀਨਕਸ--ਸੁਰੱਖਿਅਤ ਸੈਟਿੰਗ&quot;
++
++#~ msgid &quot;Kernel&quot;
++#~ msgstr &quot;ਕਰਨਲ&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpoplpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/pl.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/pl.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/pl.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,495 @@
++# translation of bootloader.po to
++# translation of pl.po to
++# translation of pl.po to
++# LANGUAGE translations for boot loader
++# Copyright (C) 2004 SUSE LINUX AG
++#
++# Wojciech Kapusta &lt;wojciech@aviary.pl&gt;, 2006.
++# Amazis.net sp. z o.o. - Tomasz Bednarski &lt;tomasz.bednarski@amazis.pl&gt;, 2009.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader\n&quot;
++&quot;POT-Creation-Date: \n&quot;
++&quot;PO-Revision-Date: 2010-02-18 15:03+0100\n&quot;
++&quot;Last-Translator: Marek Walczak &lt;kubdat@poczta.fm&gt;\n&quot;
++&quot;Language-Team: &lt;pl@li.org&gt;\n&quot;
++&quot;Language: \n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;OK&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Anuluj&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Uruchom ponownie&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Kontynuuj&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Uruchom Microsoft Windows&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Program do detekcji sprzętu&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Jądro Linuksa %s&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Sprawdzenie płyty instalacyjnej&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Instalacja ręczna&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Instalacja (bez ACPI)&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Instalacja (bezpieczne ustawienia)&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Uruchom Mandriva Linux 2010 spring (tryb awaryjny)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Uruchomienie z dysku twardego&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;System ratunkowy&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Test pamięci&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Opcje uruchamiania&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Zamykanie...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Nastąpi zamknięcie graficznego menu rozruchowego\n&quot;
++&quot;i uruchomienie interfejsu tekstowego.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Pomoc&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Uruchamianie...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Wczytywanie jądra systemu Linux\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Wczytywanie memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Program rozruchowy&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;Błąd wejścia/wyjścia&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Zmiana dysku rozruchowego&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Proszę umieścić dysk startowy %u w napędzie.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;W napędzie znajduje się dysk startowy %u.\n&quot;
++&quot;Proszę włożyć dysk startowy %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;To nie jest dysk startowy systemu &lt;product&gt;.\n&quot;
++&quot;Proszę włożyć dysk startowy %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Hasło&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Proszę przygotować dyskietkę z uaktualnieniami sterowników.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;Błąd DVD&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;To jest dwustronna płyta DVD. System został uruchomiony\n&quot;
++&quot;z drugiej strony płyty.\n&quot;
++&quot;Proszę odwrócić płytę.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Wyłączanie&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Czy zatrzymać system?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Dysk twardy&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Instalacja na dysku twardym&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Dysk (skanuje wszystkie dyski, jeśli puste)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Katalog\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;Instalacja FTP&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Serwer\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Hasło\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Użytkownik (używa \&quot;anonymous\&quot; jeśli puste)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;Instalacja NFS&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Użytkownik (używa \&quot;guest\&quot;, jeśli puste)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;Instalacja SMB (udział dyskowy Windows)&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;Instalacja HTTP&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Sterownik&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Domena\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Inne opcje&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Język&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Instalacja (z IOAPIC)&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Instalacja (bez IOAPIC)&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Instalacja (bez lokalnego APIC)&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Tak&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Nie&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Plik&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Zasób\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Tryb automatyczny&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Tryb ręczny&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Konfiguruj parametry partycji ZEN&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Instaluj lub aktualizuj partycję ZEN&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Zainstaluj ponownie program rozruchowy z partycji ZEN&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Wyłącz partycję ZEN&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Włącz partycję ZEN&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Tryb tekstowy&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Test oprogramowania sprzętu&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Aby załadować aktualizacje sterowników \n&quot;
++&quot;bezpośrednio z CD, proszę podac nazwy plików\n&quot;
++&quot;z aktualizacjami (oddzielone przecinkami ','):\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Źródło&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Tryb graficzny&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Aktualizacja sterowników&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Arch&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Opcje jądra&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Domyślne&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Bezpieczne ustawienia&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Bez ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Bez lokalnego APIC&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Naprawa systemu&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Sprawdzenie płyty instalacyjnej&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Klawiatura&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Pobierz aktualizację sterownika&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Wprowadź adres URL aktualizacji sterownika\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Nieprawidłowa architektura&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;To jest komputer 32-bitowy. Nie możesz używać na nim oprogramowania 64-&quot;
++&quot;bitowego.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Ostrzeżenie&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++&quot;Zamierzasz instalować oprogramowanie 32-bitowe na komputerze 64-bitowym.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;Włóż płytę CD-ROM z aktualizacjami sterowników dla\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Włóż ponownie płytę Mandriva Linux.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;Przywróć kopię utworzoną przez draksnapshot&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Uruchom Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Zainstaluj Mandriva Linux 2010 Spring&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpoptpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/pt.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/pt.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/pt.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,500 @@
++# translation of pt.po to portuguese
++# LANGUAGE translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++# Antonio Cardoso Martins &lt;digiplan@netvisao.pt&gt;, 2005.
++# Elisio Andre Martins Catana &lt;eacatana@netvisao.pt&gt;, 2005.
++# Zé &lt;ze@mandriva.org&gt;, 2010.
++# Zé &lt;ze@mandriva.org&gt;, 2010.
++# Thanks to contributions made by Sérgio Marques &lt;smarquespt@gmail.com&gt;, 2010
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader.pt\n&quot;
++&quot;Report-Msgid-Bugs-To: https://qa.mandriva.com\n&quot;
++&quot;POT-Creation-Date: \n&quot;
++&quot;PO-Revision-Date: 2010-06-14 16:20+0100\n&quot;
++&quot;Last-Translator: Zé &lt;ze@mandriva.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: Lokalize 1.0\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;OK&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Cancelar&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Reiniciar&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Continuar&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Arrancar Microsoft Windows&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Ferramenta de Detecção de Material&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux com kernel %s&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Instalação&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Instalação Manual&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Instalação--ACPI Desactivado&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Instalação--Definições de Segurança&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Arrancar Mandriva Linux 2010 Spring (modo seguro)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Arrancar do Disco Rígido&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Sistema de Recuperação&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Teste de Memória&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Opções de Arranque&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;A sair...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Está a sair do menu de arranque gráfico\n&quot;
++&quot;e a iniciar o interface em modo texto.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Ajuda&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;A iniciar...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;A carregar Kernel do Linux\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;A carregar memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Carregador de Arranque&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;Erro de E/S&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Mudar Disco de Arranque&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Inserir disco de arranque %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Este é o disco de arranque %u.\n&quot;
++&quot;Insira o disco de arranque %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Este não é um disco de arranque &lt;product&gt;.\n&quot;
++&quot;Insira o disco de arranque %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Senha&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Tenha a sua disquete de actualização do controlador preparada.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;Erro no DVD&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Este é um DVD com informação nos dois lados. Arrancou pelo segundo lado.\n&quot;
++&quot;\n&quot;
++&quot;Vire o DVD e continue.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Desligar&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Desligar o sistema agora?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Disco Rígido&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Instalação do Disco Rígido&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Dispositivo do Disco (Analisar Todos os Discos, caso estejam vazios)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Directório\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;Instalação FTP&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Servidor\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Senha\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Utilizador (Autenticação Anónima Se Vazio)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;Instalação NFS&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Utilizador (Usar \&quot;guest\&quot; Se Vazio)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;Instalação SMB (Partilha Windows)&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;Instalação HTTP&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Controlador&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Domínio\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Outras Opções&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Língua&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Instalação--IOAPIC Activada&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Instalação--IOAPIC Desactivada&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Instalação--APIC Local Desactivada&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Sim&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Não&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Ficheiro&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Partilha\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Modo Automático&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Modo Manual&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Configurar Parâmetros na Partição ZEN&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Instalar ou Actualizar Partição ZEN&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Reinstalar Gestor de Arranque da Partição ZEN&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Desactivar Partição ZEN&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Activar Partição ZEN&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Modo Texto&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Testar Firmware&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Para carregar actualizações de controladores\n&quot;
++&quot;directamente do CD-ROM, indique aqui o nome dos\n&quot;
++&quot;ficheiros de actualização (separados por virgulas ','):\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Origem&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Modo Gráfico&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Actualização do Controlador&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Arquitectura&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Opção do Kernel&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Predefinido&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Definições de Segurança&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Sem ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Sem APIC Local&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Reparar Sistema Instalado&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Verificar Suporte de Instalação&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Teclado&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Transferir Actualização do Controlador&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Indique o URL de Actualização do Controlador\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Arquitectura errada&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;Este é um computador 32-bit. Não pode aqui usar ou instalar programas 64-bit.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Aviso&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;Está prestes a instalar programas 32-bit num computador 64-bit.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;Insira o CD-ROM de actualização do controlador para\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Coloque o CD-ROM Mandriva Linux novamente no dispositivo.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;Restaurar salvaguarda draksnapshot&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Arrancar Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Instalar Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;Linux--Definições de Segurança&quot;
++
++#~ msgid &quot;Kernel&quot;
++#~ msgstr &quot;Kernel&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpopt_BRpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/pt_BR.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/pt_BR.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/pt_BR.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,495 @@
++# translation of pt_BR.po to Brazilian portuguese
++# LANGUAGE translations for boot loader
++# Copyright (C) 2004 SUSE LINUX AG
++#
++# Sergio Rafael Lemke &lt;sergio@mandriva.com.br&gt;, 2009.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: pt_BR\n&quot;
++&quot;POT-Creation-Date: \n&quot;
++&quot;PO-Revision-Date: 2009-08-17 18:05-0300\n&quot;
++&quot;Last-Translator: \n&quot;
++&quot;Language-Team: Brazilian Portuguese &lt;kde-i18n-doc@kde.org&gt;\n&quot;
++&quot;Language: pt_BR\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=n&gt;1;\n&quot;
++&quot;X-Poedit-Language: Portuguese\n&quot;
++&quot;X-Poedit-Country: BRAZIL\n&quot;
++&quot;X-Poedit-SourceCharset: utf-8\n&quot;
++&quot;X-Generator: Lokalize 0.3\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;OK&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Cancelar&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Reiniciar&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Continuar&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Iniciar Microsoft Windows&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Ferramenta de Detecção de Hardware&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux com kernel %s&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Verificar a Mídia de Instalação&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Instalação Manual&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Instalação com ACPI Desabilitada&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Instalar Mandriva Linux em Modo de Segurança&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Iniciar Mandriva Linux 2010 Spring (modo seguro)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Inicializar do Disco Rígido&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Sistema de Recuperação&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Teste de Memória&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Opções de Inicialização&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Saindo...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Você está saindo do menu de inicialização gráfica\n&quot;
++&quot;e iniciando a interface em modo de texto.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Ajuda&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Iniciando...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Carregando kernel do Linux\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Carregando memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Carregador de Inicialização&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;Erro de E/S&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Alterar o Disco de Inicialização&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Inserir o Disco de Inicialização %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Este é o Disco de Inicialização %u.\n&quot;
++&quot;Insira o Disco de Inicialização %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Este não é um Disco de Inicialização do &lt;product&gt;.\n&quot;
++&quot;Insira o Disco de Inicialização %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Senha&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Tenha o Disquete de Atualização de Driver Pronto.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;Erro no DVD&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Este é um DVD de Dois Lados. Você fez a Inicialização pelo Segundo lado.\n&quot;
++&quot;\n&quot;
++&quot;Vire o DVD e Continue.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Desligar&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Desligar o Sistema Agora ?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Disco Rígido&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Instalação em Disco Rígido&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Dispositivo de Disco (Varre todos os Discos se Vazio)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Diretório\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;Instalação por FTP&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Servidor\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Senha\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Usuário (Efetua login anônimo se vazio)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;Instalação por NFS&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Usuário (utiliza \&quot;guest\&quot; se Vazio)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;Instalação por SMB (Compartilhamento Windows)&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;Instalação por HTTP&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Driver&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Domínio\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Outras Opções&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Idioma&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Instalação--IOAPIC Habilitada&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Instalação--IOAPIC Desabilitada&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Instalação--APIC Local Desabilitada&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Sim&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Não&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Arquivo&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Compartilhamento\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Modo Automático&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Modo Manual&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Configurar os Parâmetros na Partição ZEN&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Instalar ou Atualizar Partição ZEN&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Reinstalar o Carregador de Inicialização de Partições ZEN&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Desabilitar a Partição ZEN&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Habilitar a Partição ZEN&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Modo Texto&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Teste de Firmware&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Para Carregar Atualizações de Driver Diretamente do CD-ROM,\n&quot;
++&quot;Digite aqui os Nomes dos Arquivos de Atualização de Driver\n&quot;
++&quot;(Separado por Vírgulas ','):\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Fonte&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Modo de Vídeo&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Atualização de Driver&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Arquitetura&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Opção do Kernel&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Padrão&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Configurações Seguras&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Sem ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Sem APIC Local&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Reparar o Sistema Instalado&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Verificar a Mídia de Instalação&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Teclado&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Baixar Atualização do Driver&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Insira a URL com a Atualização do Driver\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Arquitetura Errada&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;Este é um computador de 32-bit. Você não pode usar ou instalar programas de &quot;
++&quot;64-bit nele.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Atenção&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;Você está prestes a instalar software 32-bit num computador de 64-bit&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;Insira o CD-ROM de atualização do drive\n&quot;
++&quot;para \&quot;%s\&quot;.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Recoloque o CD-ROM Mandriva Linux no drive.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;Restaurar Backup do Draksnapshot&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Iniciar Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Instalar Mandriva Linux 2010 Spring&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkporopo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/ro.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/ro.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/ro.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,529 @@
++# Copyright (c) 1999-2009 Mandriva
++#
++# Vă rugăm să nu actualizaţi fișierul, cu excepția cazului în care sînteți
++# sigur de calitatea traducerii dumneavoastră, de gramatică și de ortografie.
++# Acestea din urmă sînt de prea multe ori aproximative.
++# Corectarea lor ulterioară nu are nici un alt rezultat decît acela de
++# pierdere de timp pentru toata lumea.
++#
++# VĂ RUGĂM SĂ RESPECTAȚI SEMNELE DE PUNCTUAȚIE ALE LIMBII ROMÂNE!
++#
++# Nu suprimați spațiul care urmează unui semn de punctuație de sfîrșit de
++# frază; trebuie respectată versiunea originală. În acest caz, este foarte
++# probabil ca programul să afișeze un mesaj la sfîrșit. Suprimînd acel spațiu,
++# cele două cuvintele vor fi afișate legat.
++#
++# Traduceți de manieră INTELIGENTĂ (de ce nu și prin comparație cu alte
++# traduceri ale acestui fișier în alte limbi) și nu cuvînt cu cuvînt. Unele
++# astfel de traduceri nu au nici un sens în limba română.
++#
++# ATENȚIE LA FONTURILE UTILIZATE! Pentru a reda corect diacriticele folosiți
++# disponerea tastaturii românească standard, codarea de caractere UTF-8 și
++# asigurați-vă că fonturile utilizate sînt cu virgulițe, NU CU SEDILE!
++# Exemplu:
++# font incorect (cu sedile): şŞ ţŢ
++# font corect (cu virgule): șȘ țȚ
++#
++# Pentru a vă asigura că folosiți fonturile corecte, vizitați:
++# http://i18n.ro/Fonturi_romanesti/testare
++#
++# Vă mulțumim pentru înțelegere.
++# Echipa de traducători,
++# www.Mandrivausers.ro
++#
++# Traducători de-a lungul timpului:
++#
++#
++# Claudiu COSTIN &lt;claudiuc@kde.org&gt;, 2004.
++# Florin Cătălin RUSSEN &lt;cfrussen@yahoo.co.uk&gt;, 2009.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader\n&quot;
++&quot;Report-Msgid-Bugs-To: https://qa.mandriva.com\n&quot;
++&quot;POT-Creation-Date: \n&quot;
++&quot;PO-Revision-Date: 2010-05-10 22:45+0100\n&quot;
++&quot;Last-Translator: Florin Cătălin RUSSEN &lt;cfrussen@yahoo.co.uk&gt;\n&quot;
++&quot;Language-Team: Romanian &lt;cfrussen@yahoo.co.uk&gt;\n&quot;
++&quot;Language: ro\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=3;plural=(n==1?0:(((n%100&gt;19)||((n%100==0)&amp;&amp;(n!=0)))?&quot;
++&quot;2:1))\n&quot;
++&quot;X-Generator: Lokalize 0.3\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;OK&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Anulează&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Repornește&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Continuă&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Pornește Microsoft Windows&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Unealtă de detectat componentele materiale&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux cu nucleu %s&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Verifică mediul de instalare&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Instalare manuală&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Instalare--ACPI dezactivat&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Instalare--Opțiuni sigure&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Pornește Mandriva Linux 2010 Spring (mod degradat)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Pornește de pe discul dur&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Recuperează sistemul&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Test de memorie&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Opțiuni de pornire&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Ieșire...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Acum părăsiți modul grafic de pornire\n&quot;
++&quot;și intrați în interfața text.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Ajutor&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Pornire...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Se încarcă nucleul Linux\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Se încarcă memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Încărcător de sistem&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;Eroare I/O&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Schimbați discul de pornire&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Introduceți discul de pornire %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Aceasta este discul de pornire %u.\n&quot;
++&quot;Introduceți discul de pornire %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Acesta nu este un disc de pornire &lt;product&gt;.\n&quot;
++&quot;Introduceți discul %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Parolă&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Pregătiți discheta cu piloții actualizați.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;Eroare de DVD&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Acesta este un DVD cu două fețe. Ați pornit sistemul de pe a doua față.\n&quot;
++&quot;\n&quot;
++&quot; Întoarceți DVD-ul și apoi continuați.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Oprire&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Opriți sistemul acum?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Disc dur&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Instalare de pe discul dur&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Dispozitive disc (caută toate discurile dacă nu este specificat)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Director\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;Instalare prin FTP&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Server\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Parolă\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Utilizator (anonim, dacă nu este specificat)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;Instalare prin NFS&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Utilizator (se utilizează „guest” dacă nu este specificat)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;Instalare prin SMB (partaj Windows)&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;Instalare prin HTTP&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Pilot&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Domeniu\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Alte opțiuni&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Limbă&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Instalare--IOAPIC activat&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Instalare--IOAPIC dezactivat&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Instalare--APIC local dezactivat&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Da&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Nu&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Fișier&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Partaj\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Mod automat&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Mod manual&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Configurați parametrii partiției ZEN&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Instalați sau actualizați o partiție ZEN&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Reinstalați încărcătorul de sistem al partiției ZEN&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Dezactivează partiția ZEN&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Activează partiția ZEN&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Mod text&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Test de microcod&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Pentru a încărca actualizările piloților direct de pe CD-ROM,\n&quot;
++&quot;introduceți aici numele fișierelor cu actualizări (separate prin\n&quot;
++&quot;virgulă ','):\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Sursă&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Mod video&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Actualizare de pilot&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Arhitectură&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Opțiune nucleu&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Implicit&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Opțiuni sigure&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Fără ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Fără APIC local&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Repară sistemul instalat&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Verifică mediul de instalare&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Tastatură&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Descarcă actualizarea de pilot&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Introduceți URL de actualizare pilot\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Arhitectură greșită&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;Acesta este un calculator pe 32 de biți. Nu puteți utiliza pe el aplicații &quot;
++&quot;pe 64 de biți.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Avertisment&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++&quot;Sînteți pe cale să instalați programe pe 32 de biți pe un calculator pe 64 &quot;
++&quot;de biți.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;Introduceți CD-ul cu pilotul actualizat pentru\n&quot;
++&quot;„%s”.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Puneți discul optic cu Mandriva Linux înapoi în unitate.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;Restaurează salvgardarea draksnapshot&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Pornește Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Instalează Mandriva Linux 2010 Spring&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkporupo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/ru.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/ru.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/ru.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,499 @@
++# translation of ru.po to Russian
++# Translation of mandriva-gfxboot-theme messages to Russian
++# Copyright (C) 2004 SUSE LINUX AG
++# Copyright (C) 2004 Vdel CREC
++# Andrew Bogatov&lt;bert@bert2.crec.mipt.ru&gt;, 2004.
++# Aleksey Osipov &lt;aliks-os@yandex.ru&gt;, 2006.
++# Pavel Maryanov &lt;acid_jack@ukr.net&gt;, 2009.
++# akdengi &lt;kazancas@mandriva.ru&gt;, 2009.
++# Pavel Maryanov &lt;acid@jack.kiev.ua&gt;, 2010.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: ru\n&quot;
++&quot;POT-Creation-Date: 2008-09-26 18:04+0200\n&quot;
++&quot;PO-Revision-Date: 2010-05-12 12:52+0200\n&quot;
++&quot;Last-Translator: Pavel Maryanov &lt;acid@jack.kiev.ua&gt;\n&quot;
++&quot;Language-Team: Russian &lt;gnu@mx.ru&gt;\n&quot;
++&quot;Language: ru\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n!=1);\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;OK&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Отмена&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Перезагрузить&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Продолжить&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Microsoft Windows&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Определение оборудования&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux с ядром %s&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Проверка носителя установки&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Ручная установка&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Установка с выключенным ACPI&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Установка с безопасными параметрами&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Загрузка Mandriva Linux 2010 Spring (безопасный режим)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Загрузка с жёсткого диска&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Восстановление системы&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Проверка памяти&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Параметры загрузки&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Выход...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Вы вышли из графического меню загрузки и\n&quot;
++&quot;запустили интерфейс текстового режима.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Справка&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Запуск...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Загрузка ядра Linux\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Загрузка memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Загрузчик&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;Ошибка ввода/вывода&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Сменить загрузочный диск&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Вставьте загрузочный диск %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Это загрузочный диск %u.\n&quot;
++&quot;Вставьте загрузочный диск %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Это не загрузочный диск &lt;product&gt;.\n&quot;
++&quot;Вставьте загрузочный диск %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Пароль&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Подготовьте дискету с драйверами.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;Ошибка диска DVD&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Это двухсторонний диск DVD. Вы загрузились со второй стороны.\n&quot;
++&quot;\n&quot;
++&quot;Переверните диск DVD и продолжите.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Выключить питание&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Остановить систему?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Жёсткий диск&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Установка с жёсткого диска&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Дисковое устройство (проверить все диски, если не указано)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Каталог\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;Установка по FTP&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Сервер\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Пароль\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Пользователь (анонимный вход, если не указан)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;Установка по NFS&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Пользователь (использовать \&quot;guest\&quot;, если не указан)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;Установка по SMB (из общей\tпапки Windows)&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;Установка по HTTP&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Драйвер&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Домен\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Другие варианты&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Язык&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Установка -- IOAPIC включен&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Установка -- IOAPIC выключен&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Установка -- локальный APIC выключен&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Да&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Нет&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Файл&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Общая папка\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Автоматический режим&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Ручной режим&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Настройка параметров на разделе ZEN&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Установить или обновить раздел ZEN&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Переустановить загрузчик раздела ZEN&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Отключить раздел ZEN&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Включить раздел ZEN&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Текстовый режим&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Проверка микропрограммного обеспечения&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Чтобы напрямую загрузить обновления драйверов с компакт-диска,\n&quot;
++&quot;введите имена файлов обновления драйверов (разделенных\n&quot;
++&quot;запятыми ','):\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Источник&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Видеорежим&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Обновление драйверов&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Арх.&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Опция ядра&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;По умолчанию&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Безопасные параметры&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Без ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Без локального APIC&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Восстановление установленной системы&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Проверка носителя установки&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Клавиатура&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Загрузка обновления драйвера&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Адрес драйвера обновления\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Неверная архитектура&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;Это компьютер с 32-битным процессором. На нём нельзя использовать или &quot;
++&quot;устанавливать 64-битное программное обеспечение.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Предупреждение&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++&quot;Вы собираетесь установить 32-битное программное обеспечение на компьютер с &quot;
++&quot;64-битным процессором&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;Вставьте компакт-диск с драйвером для\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Вставьте в привод компакт-диск с Mandriva Linux.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;Восстановить резервную копию draksnapshot&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Загрузка Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Установка Mandriva Linux 2010 Spring&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkposkpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/sk.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/sk.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/sk.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,488 @@
++# translation of bootloader.po to
++# LANGUAGE translations for boot loader
++# Copyright (C) 2004 SUSE LINUX AG
++# , 2004.
++# , 2004.
++# Andrej Kacian &lt;andrej@kacian.sk&gt;, 2005.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader\n&quot;
++&quot;POT-Creation-Date: \n&quot;
++&quot;PO-Revision-Date: 2007-08-19 15:31+0100\n&quot;
++&quot;Last-Translator: Ladislav Michnovic &lt;lmichnovic@suse.cz&gt;\n&quot;
++&quot;Language-Team: Slovak &lt;sk-i18n@lists.linux.sk&gt;\n&quot;
++&quot;Language: sk\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.10\n&quot;
++&quot;Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n&gt;=2 &amp;&amp; n&lt;=4) ? 1 : 2;\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;OK&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Zrušiť&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Reštartovať&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Pokračovať&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Inštalácia&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Manuálna inštalácia&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Inštalácia - s vypnutým ACPI&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Inštalácia - s bezpečným nastavením&quot;
++
++#. txt_safe_linux
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Spustiť systém z pevného disku&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Záchranný systém&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Test pamäte&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Možnosti štartu&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Končím...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Opúšťate grafické menu štartu a spúšťate\n&quot;
++&quot;textové používateľské rozhranie.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Pomocník&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Spúšťam...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Načítavam linuxové jadro\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Načítavam memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Správca štartu&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;Chyba vstupu/výstupu&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Zmena štartovacej diskety&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Prosím, vložte štartovaciu disketu %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Toto je štartovacia disketa %u.\n&quot;
++&quot;Prosím, vložte štartovaciu disketu %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Toto nie je štartovacia disketa &lt;product&gt;.\n&quot;
++&quot;Prosím, vložte štartovaciu disketu %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Heslo&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Prosím, pripravte si disketu s aktualizovanými ovládačmi.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;Chyba DVD&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Toto je obojstranné DVD médium. Systém ste spustili z druhej strany.\n&quot;
++&quot;\n&quot;
++&quot;Prosím, otočte médium a potom pokračujte.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Vypnúť&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Chcete vypnúť počítač teraz?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Pevný disk&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Inštalácia na pevný disk&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Diskové zariadenie (prehľadá všetky disky, ak necháte prázdne)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Adresár\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP Inštalácia&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Server\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Heslo\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Používateľ (ak necháte prázdne, použije anonymné prihlásenie)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS Inštalácia&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Používateľ (ak necháte prázdne, použije \&quot;guest\&quot;)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB (Windows zdieľanie) Inštalácia&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP Inštalácia&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Ovládač&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Doména\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Ďalšie voľby&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Jazyk&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Inštalácia - so zapnutým IOAPIC&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Inštalácia - s vypnutým IOAPIC&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Inštalácia - s vypnutým lokálnym APIC&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Áno&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Nie&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Súbor&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Zdieľanie\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Automatický režim&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Ručný režim&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Nastaviť parametre pre ZENový diskový oddiel&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Inštalovať alebo obnoviť ZENový diskový oddiel&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Preinštalovať spúšťač systému pre ZENový oddiel&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Zakázať ZENový diskový oddiel&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Povoliť ZENový diskový oddiel&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Textový režim&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Test firmvéru&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Ak chcete nahrať aktualizované ovládače priamo z CD,\n&quot;
++&quot;napíšte mená súborov ovládačov oddelené čiarkami ','\n&quot;
++&quot;sem:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Zdroj&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Zobrazovací režim&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Aktualizácia ovládačov&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Arch&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Predvolené&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Záchranný režim&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Bez ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Bez Lokálneho APIC&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Opraviť nainštalovaný systém&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Kontrola integrity média&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Klávesnica&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;Linux - Bezpečné nastavenie&quot;
++
++#~ msgid &quot;Kernel&quot;
++#~ msgstr &quot;Jadro&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkposlpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/sl.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/sl.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/sl.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,499 @@
++# translation of sl.po to Slovenščina
++# translation of bootloader.sl_SI.po to Slovenscina
++# translation of sl_SI.po to Slovenscina
++# LANGUAGE translations for boot loader
++# Copyright (C) 2004 SUSE LINUX AG
++#
++# Janez Krek &lt;janez.krek@euroteh.si&gt;, 2004, 2005.
++# Jure Repinc &lt;jlp@holodeck1.com&gt;, 2009, 2010.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: sl\n&quot;
++&quot;PO-Revision-Date: 2010-05-09 16:36+0200\n&quot;
++&quot;Last-Translator: Jure Repinc &lt;jlp@holodeck1.com&gt;\n&quot;
++&quot;Language-Team: Slovenian &lt;lugos-slo@lugos.si&gt;\n&quot;
++&quot;Language: sl\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: Lokalize 1.0\n&quot;
++&quot;Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || &quot;
++&quot;n%100==4 ? 2 : 3);\n&quot;
++&quot;n%100==4 ? 2 : 3);\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;V redu&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Prekliči&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Znova zaženi&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Nadaljuj&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Zaženi Microsoft Windows&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Orodje za zaznavanje strojne opreme&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux z jedrom %s&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Namestitev&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Ročna namestitev&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Namestitev--onemogočen ACPI&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Namestitev--varne nastavitve&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Zaženi Mandriva Linux 2010 Spring (varni način)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Zaženi s trdega diska&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Sistem za reševanje&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Testiranje pomnilnika&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Možnosti zagona&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Zapuščanje ...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Zapustili boste grafični zagonski meni in\n&quot;
++&quot;nadaljevali v besedilnem načinu.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Pomoč&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Zaganjanje ...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Nalaganje jedra Linux\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Nalaganje memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Zagonski nalagalnik&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;V/I napaka&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Zamenjava zagonskega diska&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Vstavite zagonski disk %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;To je zagonski disk %u.\n&quot;
++&quot;Vstavite zagonski disk %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;To ni zagonski disk za &lt;product&gt;.\n&quot;
++&quot;Vstavite zagonski disk %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Geslo&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Pripravite disketo za posodobitev gonilnika.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;Napaka DVD-ja&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;DVD je dvo-stranski, sistem pa ste zagnali z druge strani.\n&quot;
++&quot;\n&quot;
++&quot;Obrnite DVD in nadaljujte.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Ugasnitev&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Ali želite sedaj zaustaviti sistem?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Trdi disk&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Namestitev s trdega diska&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Diskovna naprava (če je prazno, so pregledani vsi diski)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Mapa\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;Namestitev z FTP&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Strežnik\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Geslo\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Uporabnik (če je prazno, bo prijava anonimna)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;Namestitev z NFS&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Uporabnik (če je prazno, bo uporabnik »guest«)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;Namestitev z SMB (Windows mapa v souporabi)&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;Namestitev s HTTP&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Gonilnik&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Domena\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Druge možnosti&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Jezik&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Namestitev--omogočen IOAPIC&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Namestitev--onemogočen IOAPIC&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Namestitev--onemogočen krajevni APIC&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Da&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Ne&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Datoteka&quot;
++
++# input label: share as in &quot;Windows share&quot; (SMB)
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Mapa v souporabi\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Samodejni način&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Ročni način&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Nastavite parametre na razdelku ZEN&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Namesti ali posodobi razdelek ZEN&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Znova namesti zagonski nalagalnik razdelka ZEN&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Onemogoči razdelek ZEN&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Omogoči razdelek ZEN&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Besedilni način&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Preizkus strojne programske opreme&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Da naložite posodobitve gonilnika neposredno s\n&quot;
++&quot;CD-ROMa, vnesite imena datotek s posodobitvami\n&quot;
++&quot;(ločite jih z vejicami):\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Vir&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Video način&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Posodobitev gonilnika&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Arhit.&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Možnosti jedra&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Privzete&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Varne nastavitve&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Brez ACPI-ja&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Brez krajevnega APIC-a&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Popravi nameščen sistem&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Preveri namestitveni nosilec&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Tipkovnica&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Prenesi posodobitev gonilnika&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Vnesite lokacijo posodobitve gonilnika\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Napačna arhitektura&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;To je 32-biten računalnik. Na njem ne morete poganjati 64-bitnih programov.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Opozorilo&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;Na 64-biten računalnik boste namestili 32-bitno programsko opremo.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;Vstavite nosilec s posodobljenim gonilnikom za\n&quot;
++&quot;»%s«&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;V pogon vstavite nosilec z Mandriva Linuxom.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;Obnovi iz varnostne kopije&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Zaženi Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Namesti Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;Linux--varne nastavitve&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkposrpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/sr.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/sr.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/sr.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,483 @@
++# Serbian translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++# Copyright © 2005 Danilo Segan &lt;danilo@gnome.org&gt;
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader\n&quot;
++&quot;PO-Revision-Date: 2007-09-30 01:20+0200\n&quot;
++&quot;Last-Translator: Жарко Михајловић &lt;developer@beotel.net&gt;\n&quot;
++&quot;Language-Team: Serbian (Српски језик) &lt;sr@li.org&gt;\n&quot;
++&quot;Language: \n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;У реду&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Одустани&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Ресетуј&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Настави&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Инсталација&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Ручна инсталација&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Инсталација — ACPI искључен&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Инсталација — безбедна подешавања&quot;
++
++#. txt_safe_linux
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Покрени са тврдог диска&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Спасилачки систем&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Провера меморије&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Опције за покретање&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Завршавам...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Напуштате графички мени за покретање и\n&quot;
++&quot;покрећете текстуално сучеље.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Помоћ&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Покрећем...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Учитавам Линукс језгро\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Учитавам memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Покретач система&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;У/И грешка&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Промените диск за покретање&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Уметните диск за покретање %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Ово је диск за покретање %u.\n&quot;
++&quot;Уметните диск за покретање %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Ово није диск за покретање &lt;product&gt;.\n&quot;
++&quot;Уметните диск за покретање %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Лозинка&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Припремите вашу дискету са освежењем драјвера.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;ДВД грешка&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Ово је двострани ДВД. Покренули сте са друге стране.\n&quot;
++&quot;\n&quot;
++&quot;Окрените ДВД и затим наставите.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Угаси&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Сада угасити систем?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Тврди диск&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Инсталација на тврди диск&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Диск (прегледај све дискове ако је празно)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Директоријум\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP инсталација&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Сервер\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Лозинка\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Корсиник (анонимна пријава ако је празно)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS инсталација&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Корисник (користи „guest“ ако је празно)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB (дељени Windows диск) инсталација&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP инсталација&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Драјвер&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Домен\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Остале опције&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Језик&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Инсталација — IOAPIC укључен&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Инсталација — IOAPIC искључен&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Инсталација — APIC искључен&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Да&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Не&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Датотека&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Дељено\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Аутоматски режим&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Ручни режим&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Подеси параметре ZEN партиције&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Инсталирај или ажурирај ZEN партицију&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Реинсталирај ZEN Boot Loader&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Онемогући ZEN партицију&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Омогући ZEN партицију&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Текст режим&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Firmware тест&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Да учитате нове драјвере са CD-ROM-а,\n&quot;
++&quot;упишите имена нових фајлова (одвојена\n&quot;
++&quot;зарезима ',') овде:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Извор&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Видео режим&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Ажурирање драјвера&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Арх.&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Подразумевано&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Безбедна подешавања&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Без ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Без локалног APIC&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Поправи систем&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;Линукс — безбедна подешавања&quot;
++
++#~ msgid &quot;Kernel&quot;
++#~ msgstr &quot;Језгро&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkposrLatnpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/sr@Latn.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/sr@Latn.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/sr@Latn.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,530 @@
++# Serbian translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++# Copyright (C) 2005 Danilo Segan &lt;danilo@gnome.org&gt;
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader\n&quot;
++&quot;POT-Creation-Date: 2005-07-27 11:49+0200\n&quot;
++&quot;PO-Revision-Date: 2005-08-03 21:03+0200\n&quot;
++&quot;Last-Translator: Danilo Šegan_&lt;danilo@gnome.org&gt;\n&quot;
++&quot;Language-Team: Serbian &lt;novell@prevod.org&gt;\n&quot;
++&quot;Language: sr\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=3; plural=n%10==1 &amp;&amp; n%100!=11 ? 0 : n%10&gt;=2 &amp;&amp; n&quot;
++&quot;%10&lt;=4 &amp;&amp; (n%100&lt;10 || n%100&gt;=20) ? 1 : 2;\n&quot;
++
++# ok button label
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;U redu&quot;
++
++# cancel button label
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Odustani&quot;
++
++# reboot button label
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Resetuj&quot;
++
++# continue button label
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Nastavi&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;&quot;
++
++# dialog title for ftp installation
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;FTP instalacija&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Ručna instalacija&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Instalacija -- ACPI isključen&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Instalacija -- bezbedna podešavanja&quot;
++
++#. txt_safe_linux
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Pokreni sa tvrdog diska&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Spasilački sistem&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Provera memorije&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Opcije za pokretanje&quot;
++
++# window title for exit dialog
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Završavam...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Napuštate grafički meni za pokretanje i\n&quot;
++&quot;pokrećete tekstualno sučelje.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Pomoć&quot;
++
++# window title for kernel loading (see txt_load_kernel)
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Pokrećem...&quot;
++
++# Keep the three newlines!
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Učitavam Linux jezgro\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++# Keep the three newlines!
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Učitavam memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++# info box title
++#. info box title
++#. txt_info_title
++#, fuzzy
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Pokretač sistema&quot;
++
++# error box title
++#. error box title
++#. txt_error_title
++#, fuzzy
++msgid &quot;I/O Error&quot;
++msgstr &quot;U/I greška&quot;
++
++# boot disk change dialog title
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Promenite disk za pokretanje&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Umetnite disk za pokretanje %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Ovo je disk za pokretanje %u.\n&quot;
++&quot;Umetnite disk za pokretanje %u.&quot;
++
++# &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, fuzzy, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Ovo nije disk za pokretanje &lt;product&gt;.\n&quot;
++&quot;Umetnite disk za pokretanje %u.&quot;
++
++# password dialog title
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Lozinka&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Pripremite vašu disketu sa osveženjem drajvera.&quot;
++
++# dvd warning title
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD greška&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Ovo je dvostrani DVD. Pokrenuli ste sa druge strane.\n&quot;
++&quot;\n&quot;
++&quot;Okrenite DVD i zatim nastavite.&quot;
++
++# power off dialog title
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Ugasi&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Sada ugasiti sistem?&quot;
++
++# menu entry for hard disk installation
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Tvrdi disk&quot;
++
++# dialog title for hard disk installation
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Instalacija na tvrdi disk&quot;
++
++#. txt_hd_diskdevice
++#, fuzzy
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Disk (pregledaj sve diskove ako je prazno)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Direktorijum\n&quot;
++
++# dialog title for ftp installation
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP instalacija&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Server\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Lozinka\n&quot;
++
++# label for ftp user input
++#. label for ftp user input
++#. txt_user1
++#, fuzzy
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Korsinik (anonimna prijava ako je prazno)\n&quot;
++
++# dialog title for nfs installation
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS instalacija&quot;
++
++# label for smb user input
++#. label for smb user input
++#. txt_user2
++#, fuzzy
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Korisnik (koristi „guest” ako je prazno)\n&quot;
++
++# dialog title for smb installation
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB (deljeni Windows disk) instalacija&quot;
++
++# dialog title for http installation
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP instalacija&quot;
++
++# 'driver' as in '(hardware) driver update'
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Drajver&quot;
++
++# as in Windows Authentication Domain
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Domen\n&quot;
++
++# button label for other/more options
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Ostale opcije&quot;
++
++# label for language selection
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Jezik&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Instalacija -- IOAPIC isključen&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Da&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Ne&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Fajl&quot;
++
++# input label: share as in &quot;Windows share&quot; (SMB)
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;&quot;
++
++# 'driver' as in '(hardware) driver update'
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++#, fuzzy
++msgid &quot;Driver Update&quot;
++msgstr &quot;Drajver&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++#, fuzzy
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Instalacija -- bezbedna podešavanja&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++#, fuzzy
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Spasilački sistem&quot;
++
++# dialog title for ftp installation
++#. menu item
++#. txt_mediacheck
++#, fuzzy
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;FTP instalacija&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;&quot;
++
++# Keep the newlines and spaces after ':'!
++#~ msgid &quot;&quot;
++#~ &quot;Enter your password: \n&quot;
++#~ &quot;\n&quot;
++#~ &quot;\n&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Unesite svoju lozinku: \n&quot;
++#~ &quot;\n&quot;
++#~ &quot;\n&quot;
++
++#, fuzzy
++#~ msgid &quot;Installation from ISO file&quot;
++#~ msgstr &quot;Instalacija nije uspela&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkposvpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/sv.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/sv.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/sv.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,499 @@
++# Copyright (C) 2004 SUSE LINUX AG
++#
++# Thomas Backlund &lt;tmb@mandriva.org&gt;, 2009.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader\n&quot;
++&quot;POT-Creation-Date: \n&quot;
++&quot;PO-Revision-Date: 2009-10-20 01:43+0300\n&quot;
++&quot;Last-Translator: Thomas Backlund &lt;tmb@mandriva.org&gt;\n&quot;
++&quot;Language-Team: Swedish &lt;sv@li.org&gt;\n&quot;
++&quot;Language: sv\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: Lokalize 1.0\n&quot;
++&quot;X-Poedit-Language: Swedish\n&quot;
++&quot;X-Poedit-Country: SWEDEN\n&quot;
++&quot;X-Poedit-SourceCharset: utf-8\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;OK&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Avbryt&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Starta om&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Fortsätt&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Starta Microsoft Windows&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Verktyg för hårdvaru-detektering&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux med kärna %s&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Installation&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Manuell installation&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Installation - ACPI inaktiverat&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Installation - Säkra inställningar&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Starta Mandriva Linux 2010 Spring (felsäkert läge)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Starta från hårddisk&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Räddningssystem&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Minnestest&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Startalternativ&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Avslutar...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Du är på väg att lämna den grafiska startmenyn och\n&quot;
++&quot;starta textlägesgränssnittet.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Hjälp&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Startar...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Laddar Linuxkärnan\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Laddar memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Starthanterare&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;I/O-fel&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Ändra startdisk&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Sätt i startdisk %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Det här är startdisk %u.\n&quot;
++&quot;Sätt i startdisk %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Det här är inte en &lt;product&gt;-startdisk.\n&quot;
++&quot;Sätt i startdisk %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Lösenord&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Ha disketten för drivrutinsuppdatering redo.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD fel&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Det här är en dubbelsidig DVD. Du har startat från den andra sidan.\n&quot;
++&quot;\n&quot;
++&quot;Vänd på DVD-skivan och fortsätt sedan.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Stäng av&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Vill du stänga av systemet nu?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Hårddisk&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Hårddiskinstallation&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Diskenhet (söker av alla diskar om tom)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Katalog\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP-installation&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Server\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Lösenord\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Användare (anonym inloggning om tomt)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS-installation&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Användare (använder \&quot;guest\&quot; om tomt)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB (Windows-utdelning) installation&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP-installation&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Drivrutin&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Domän\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Fler alternativ&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Språk&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Installation - IOAPIC aktiverat&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Installation - IOAPIC inaktiverat&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Installation - Lokal APIC inaktiverat&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Ja&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Nej&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Fil&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Utdelning\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Automatiskt läge&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Manuellt läge&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Ställ in parametrar på ZEN-partition&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Installera eller uppdatera ZEN-partition&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Ominstallera starthanterare för ZEN-partition&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Inaktivera ZEN-partition&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Aktivera ZEN-partition&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Textläge&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Test av fast programvara&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;För att ladda drivrutinsuppdateringar direkt från cd-rom,\n&quot;
++&quot;ange drivrutinsuppdateringsfilnamn (åtskilda med kommatecken\n&quot;
++&quot;\&quot;,\&quot;) här:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Källa&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Videoläge&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Drivrutinsuppdatering&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Arkitektur&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Kärn-alternativ&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Standard&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Säkra inställningar&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Ingen ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Ingen lokal ACPI&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Reparera installerat system&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Kontrollera installationsmedia&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Tangentbord&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Ladda ner drivrutins-uppdateringar&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Ange sökväg till uppdaterad drivrutin\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Fel arkitektur&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;Detta är en 32-bitars dator. Du kan inte använda 64-bitars programvara på &quot;
++&quot;den.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Varning&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;Du håller på att installera 32-bitars program på en 64-bitars dator.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;Sätt i CD-ROM med uppdaterade drivrutiner för\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Sätt tillbaka Mandriva Linux CD/DVD i enheten.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;Återställ draksnapshot säkerhetskopia&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Starta Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Installera Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;Linux - Säkra inställningar&quot;
++
++#~ msgid &quot;Kernel&quot;
++#~ msgstr &quot;Kärna&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpotapo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/ta.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/ta.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/ta.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,482 @@
++# LANGUAGE translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: NetworkManager-vpnc\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2006-05-16 17:10+0200\n&quot;
++&quot;PO-Revision-Date: 2006-01-26 15:19+0100\n&quot;
++&quot;Last-Translator: Priyavert Sharma &lt;priyavert.sharma@agreeya.com&gt;\n&quot;
++&quot;Language-Team: AgreeYa Solutions &lt;www.agreeya.com&gt;\n&quot;
++&quot;Language: \n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n &gt; 1);\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;ஓ.கே.&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;ரத்து செய்&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;ரீபூட்&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;தொடரு&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;நிறுவுதல்&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;மேனுவல் நிறுவுதல்&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;நிறுவுதல்--ACPI டிஸ்ஏபிள்ட்&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;நிறுவுதல்--பாதுகாப்பான செட்டிங்குகள்&quot;
++
++#. txt_safe_linux
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;ஹார்டு டிஸ்கிலிருந்து பூட் செய்&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;மீட்பு ௮மைப்பு முறை&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;நினைவாற்றல் சோதனை&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;பூட் தெரிவுகள்&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;வெளியேறுகிறது...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;நீங்கள் கிராபிகல் பூட் மெனுவிலிருந்து வெளியேறுகிறீர்கள்\n&quot;
++&quot;மற்றும்ஸீ டெக்ஸ்ட் மோட் இன்டர்பேஸ்.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;உதவி&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;ஆரம்பிக்கிறது...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;லினுக்ஸ் கெர்னல் லோடு ஆகிறது\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;மெம்டெஸ்ட் 86 லோடு ஆகிறது\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;பூட் லோடர்&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;ஐ/ஓ தவறு&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;பூட் டிஸ்க்கை மாற்று&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;இன்சர்ட் பூட் டிஸ்க் %u&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;இதுதான் பூட் டிஸ்க் %u.\n&quot;
++&quot;இன்சர்ட் பூட் டிஸ்க் %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;இது &lt;ப்ராடக்ட்&gt; பூட் டிஸ்க் ௮ல்ல.\n&quot;
++&quot;தயவுசெய்து இன்சர்ட் பூட் டிஸ்க்%u&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;கடவுச்சொல்&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;உங்களுடைய டிரைவர் ௮ப்டேட் ப்ளாப்பியை தயார் செய்யவும்.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;டி.வி.டி. தவறு&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;இது இருபக்க டி.வி.டி. நீங்கள் இரண்டாவது பக்கத்திலிருந்து பூட் செய் துள்ளீர்கள்.\n&quot;
++&quot;\n&quot;
++&quot;டி.வி.டி.-யை மாற்றிப் போட்டு தொடரவும்.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;பவர் ஆஃப்&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;கணிப்பொறியை இப்போது நிறுத்தவும்?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;ஹார்டு டிஸ்க்&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;ஹார்டு டிஸ்க் நிறுவுதல்&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;டிஸ்க் சாதனம் (காலியாக இருந்தால் எல்லா டிஸ்க்குகளையும் ஸ்கேன் செய்யவும்)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;டைரக்டரி\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP நிறுவுதல்&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;சர்வர்\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;கடவுச்சொல்\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;பயன்படுத்துபவர் (காலியாக இருந்தால் பெயரின்றி லாக் இன்)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS நிறுவுதல்&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;பயன்படுத்துபவர் (காலியாக இருந்தால் \&quot;கெஸ்ட்\&quot; பயன்படுத்தவும்)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB (விண்டோஸ் ஷோ) நிறுவுதல்&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP நிறுவுதல்&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;டிரைவர்&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;டொமைன்\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;பிற தெரிவுகள்&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;மொழி&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;நிறுவுதல் --IOAPIC எனாபிள்ட்&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;நிறுவுதல்--IOAPIC டிஸ்ஏபிள்ட்&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;நிறுவுதல்--லோக்கல் APIC டிஸ்ஏபிள்ட்&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;ஆம்&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;இல்லை&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;கோப்பு&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;பகிர்ந்துகொள்\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;ஆட்டோமேடிக் மோட்&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;மேனுவல் மோட்&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;ZEN பிரிவினையில் ஒருங்கிணைக்கும் ௮ளவீடுகள்&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;ZEN பிரிவினையை நிறுவு/மேம்படுத்து&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;ZEN பிரிவினை பூட் லோடரை மறுநிறுவுதல் செய்&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;ZEN பிரிவினையை செயலிழக்கச் செய்&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;ZEN பிரிவினையை ஏதுவாக்கு&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;உரை மோட்&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;ஃபர்ம்வேர் சோதனை&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;சிடி-ரோமிலிருந்து நேரடியாக டிரைவர் புதுப்பித்தல்களை \n&quot;
++&quot;சேர்ப்பதற்கு, டிரைவர் புதுப்பித்தல் கோப்பு பெயர்களை \n&quot;
++&quot;(காற்புள்ளிகளால்(',') பிரித்து) இங்கு என்டர் செய்யவும்:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Arch&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++#, fuzzy
++msgid &quot;Kernel Option&quot;
++msgstr &quot;பிற தெரிவுகள்&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;தட்டச்சு பொறி&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;லினுக்ஸ்--பாதுகாப்பான செட்டிங்குகள்&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpothpo_disabled">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/th.po_disabled</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/th.po_disabled (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/th.po_disabled 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,421 @@
++# LANGUAGE translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: YaST (@memory@)\n&quot;
++&quot;Report-Msgid-Bugs-To: i18n@suse.de\n&quot;
++&quot;POT-Creation-Date: 2008-01-03 17:06+0100\n&quot;
++&quot;PO-Revision-Date: 2008-11-02 11:05+0700\n&quot;
++&quot;Last-Translator: Thanomsub Noppaburana &lt;donga.nb@gmail.com&gt;\n&quot;
++&quot;Language-Team: Thai &lt;thai-l10n@googlegroups.com&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=1; plural=0;\n&quot;
++&quot;X-Generator: Lokalize 0.2\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;ตกลง&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;ยกเลิก&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;บูตระบบใหม่&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;ทำต่อไป&quot;
++
++#. txt_install
++msgid &quot;Installation&quot;
++msgstr &quot;ทำการติดตั้ง&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;ทำการติดตั้งด้วยตนเอง&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;ทำการติดตั้ง--ปิดการใช้งาน ACPI&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;ทำการติดตั้ง--ตั้งค่าแบบปลอดภัย&quot;
++
++#. txt_safe_linux
++msgid &quot;Linux--Safe Settings&quot;
++msgstr &quot;ลินุกซ์--ตั้งค่าแบบปลอดภัย&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;บูตระบบจากฮาร์ดดิสก์&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;กู้ระบบ&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;ทดสอบหน่วยความจำ&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;ตัวเลือกการบูต&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;กำลังออก...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;คุณกำลังออกจากเมนูการบูตแบบกราฟิก\n&quot;
++&quot;
และเริ่มส่วนติดต่อในโหมดข้อความ&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;ช่วยเหลือ&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;กำลังเริ่ม...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;ทำการโหลดเคอร์เนลของลินุกซ์\n&quot;
++&quot;
\n&quot;
++&quot;
\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;ทำการโหลด memtest86\n&quot;
++&quot;
\n&quot;
++&quot;
\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;ตัวจัดการการบูต&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;I/O ผิดพลาด&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;เปลี่ยนดิสก์ที่จะใช้บูต&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;โปรดใส่ดิสก์ %u ที่จะใช้บูต&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;นี่คือดิสก์ %u สำหรับใช้บูต\n&quot;
++&quot;
โปรดใส่ดิสก์ %u เพื่อใช้บูต&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;นี่ไม่ใช่ดิสก์เพื่อใช้บูตของ &lt;product&gt;\n&quot;
++&quot;
โปรดใส่ดิกส์ %u เพื่อใช้บูต&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;รหัสผ่าน&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;พร้อมรับแผ่นฟลอปปีไดรเวอร์รุ่นใหม่&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;ดีวีดีผิดพลาด&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;นี่เป็นแผ่นดีวีดีแบบสองด้าน และคุณได้บูตจากด้านที่สอง\n&quot;
++&quot;
\n&quot;
++&quot;
โปรดพลิกด้านแล้วทำต่อไป&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;ปิดเครื่อง&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;จะปิดเครื่องเดี๋ยวนี้หรือไม่ ?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;ฮาร์ดดิสก์&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;ติดตั้งจากฮาร์ดดิสก์&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;อุปกรณ์ดิสก์ (หากว่างไว้จะค้นหาดิสก์ทั้งหมด)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;ไดเรกทอรี\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;ติดตั้งผ่านทาง FTP&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;เครื่องแม่ข่าย\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;รหัสผ่าน\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;ผู้ใช้ (หากว่างไว้จะใช้ผู้ใช้นิรนาม)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;ติดตั้งผ่านทาง NFS&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;ผู้ใช้ (หากว่างไว้จะใช้ \&quot;guest\&quot; แทน)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;ติดตั้งผ่านทาง SMB (แชร์ของระบบวินโดว์ส)&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;ติดตั้งผ่านทาง HTTP&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;ไดรเวอร์&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;โดเมน\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;ตัวเลือกอื่น&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;ภาษา&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;ทำการติดตั้ง--เปิดใช้งาน IOAPIC&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;ทำการติดตั้ง--ปิดการใช้งาน IOAPIC&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;ทำการติดตั้ง--ปิดการใช้งาน APIC ภายใน&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;ใช่&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;ไม่ใช่&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;แฟ้ม&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;แชร์\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;โหมดอัตโนมัติ&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;โหมดทำด้วยตนเอง&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;ปรับแต่งพารามิเตอร์บนพาร์ทิชัน ZEN&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;ติดตั้งหรืออัปเดตพาร์ทิชัน ZEN&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;ติดตั้งตัวจัดการการบูตของพาร์ทิชัน ZEN อีกครั้ง&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;ปิดการใช้พาร์ทิชัน ZEN&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;เปิดการใช้พาร์ทิชัน ZEN&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;โหมดข้อความ&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;ทดสอบเฟิร์มแวร์&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;เพื่อโหลดไดรเวอร์รุ่นใหม่โดยตรงจากแผ่นซีดีรอม\n&quot;
++&quot;
ป้อนชื่อแฟ้มของไดรเวอร์รุ่นใหม่ (แยกด้วยจุลภาค ',')\n&quot;
++&quot;
ได้ที่นี่:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;ต้นฉบับ&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;โหมดแสดงผล&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;อัปเดตไดรเวอร์&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;สถาปัตยกรรม&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel&quot;
++msgstr &quot;เคอร์เนล&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;ค่าปริยาย&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;ตั้งค่าแบบปลอดภัย&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;ไม่มี ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;ไม่มี APIC ภายใน&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;ซ่อมแซมระบบที่ติดตั้งไว้&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;ตรวจสอบสื่อการติดตั้ง&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;แป้นพิมพ์&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpotrpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/tr.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/tr.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/tr.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,497 @@
++# LANGUAGE translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++# Atilla ÖNTAŞ &lt;atilla_ontas@mandriva.org&gt;, 2009.
++# Atilla ÖNTAŞ &lt;atilla_ontas@mandriva.com&gt;, 2009.
++# Atilla ÖNTAŞ &lt;atilla_ontas@mandriva.org&gt;, 2009.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: YaST (@memory@)\n&quot;
++&quot;Report-Msgid-Bugs-To: translation@suse.de\n&quot;
++&quot;POT-Creation-Date: 2006-05-15 15:07+0200\n&quot;
++&quot;PO-Revision-Date: 2009-11-30 19:42+0200\n&quot;
++&quot;Last-Translator: Atilla ÖNTAŞ &lt;atilla_ontas@mandriva.org&gt;\n&quot;
++&quot;Language-Team: Turkish &lt;cooker-i18n@mandrivalinux.org&gt;\n&quot;
++&quot;Language: tr\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=1; plural=0;\n&quot;
++&quot;X-Generator: Lokalize 0.3\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;Tamam&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;İptal&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Yeniden başlat&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Devam et&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Microsoft Windows Sistemini Başlat&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Donanım Algılama Aracı&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux Çekirdek Sürümü %s&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Kurulum&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Elle kurulum yap&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Kurulum--ACPI Devredışı&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Kurulum--Güvenli Ayarlar&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Mandriva Linux 2010 Spring Sistemini Başlat (Güvenli Kip)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Sistemi Sabit Diskten Başlat&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Kurtarma Sistemi&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Bellek Sınama&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Açılış Seçenekleri&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Çıkılıyor...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Grafik arabirimini kullanan açılış menüsünden çıkıyor ve\n&quot;
++&quot;metin tabanlı arabirimi başlatıyorsunuz.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Yardım&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Başlatılıyor...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Linux Çekirdeği Yükleniyor\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;memtest86 Yükleniyor\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Açılış Önyükleyicisi&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;Girdi/Çıktı Hatası&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Açılış Diskini Değiştir&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;%u açılış diskini takın.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Bu açılış diski %u.\n&quot;
++&quot;%u açılış diskini takın.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Bu &lt;ürün&gt; açılış diski değil.\n&quot;
++&quot;%u açılış diskini takın.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Parola&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Sürücü güncelleme disketini hazır bulundurun.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD hatası&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Bu çift taraflı bir DVD'dir. İkinci tarafı kullanarak sistemi açtınız.\n&quot;
++&quot;\n&quot;
++&quot;DVD'yi çevirip devam edin.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Kapat&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Sistem şimdi kapatılsın mı?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Sabit Disk&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Sabit Disk Kurulumu&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Disk Aygıtı (Boş bırakılırsa tüm diskler taranacak)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Dizin\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP Kurulumu&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Sunucu\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Parola\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Kullanıcı (Boş bırakılırsa anonim olarak giriş yapılacak)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS kurulumu&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Kullanıcı (Boş bırakılırsa \&quot;guest\&quot; kullanılacak)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB (Windows paylaşımı) kurulumu&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP kurulumu&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Sürücü&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Alan\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Diğer Seçenekler&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Dil&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Kurulum--IOAPIC Etkin&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Kurulum--IOAPIC Devredışı&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Kurulum--Yerel APIC Devredışı&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Evet&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Hayır&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Dosya&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Paylaşım\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Otomatik Kip&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Elle Kullanma Kipi&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;ZEN Disk Bölümündeki Parametreleri Ayarla&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Bir ZEN Disk Bölümü Kur veya Güncelle&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;ZEN Bölümü Açılış Önyükleyicisini Yeniden Kur&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;ZEN Bölümünü Devredışı Bırak&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;ZEN Bölümünü Etkinleştir&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Metin Kipi&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Donanımsal Yazılım Sınama&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Sürücü güncellemelerini doğrudan CD-ROM'dan\n&quot;
++&quot;yüklemek için sürücü güncelleme dosya adlarını girin:\n&quot;
++&quot;(virgüllerle ',' ayırarak)\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Kaynak&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Görüntü Kipi&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Sürücü Güncelleme&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Mimari&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Çekirdek Seçeneği&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Öntanımlı&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Güvenli Ayarlar&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;ACPI Yok&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Yerel APIC Yok&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Kurulu Sistemi Onar&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Kurulum Kaynağını Denetle&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Klavye&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Sürücü Güncellemesini İndir&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Sürücü Güncelleme Adresini Gir\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Yanlış mimari&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;Bu bir 32 bit bilgisayar. Bu bilgisayarda 64 bit yazılım kuramaz veya &quot;
++&quot;kullanamazsınız.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Uyarı&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;64 bit bir bilgisayara 32 bit yazılım kurmak üzeresiniz.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;Şu aygıt için sürücü güncelleme CD_ROM' u takın:\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Mandriva Linux CD-ROM' unu sürücüye geri takın.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;Draksnapshot yedeklemesini geri yükle&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Mandriva Linux 2010 Spring Sistemini Başlat&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Mandriva Linux 2010 Spring Sistemini Kur&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;Linux--Güvenli Ayarlar&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpoukpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/uk.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/uk.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/uk.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,496 @@
++# translation of mandriva-gfxboot-theme.po to ukrainian
++# $Id: uk.po 266807 2010-03-14 13:38:08Z btr0001 $
++# Ukrainian translations for boot loader
++# Copyright (C) 2004 SUSE LINUX AG
++#
++# Ivan Petrouchtchak &lt;iip@telus.net&gt;, 2005.
++# Ivan Petrouchtchak &lt;ivanpetrouchtchak@yahoo.com&gt;, 2006.
++# Taras Boychuk &lt;btr0001@ukr.net&gt;, 2009, 2010.
++# Yuri Chornoivan &lt;yurchor@ukr.net&gt;, 2009.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: mandriva-gfxboot-theme\n&quot;
++&quot;PO-Revision-Date: 2010-03-12 07:34-0500\n&quot;
++&quot;Last-Translator: Taras Boychuk &lt;btr0001@ukr.net&gt;\n&quot;
++&quot;Language-Team: Ukrainian &lt;translation@linux.org.ua&gt;\n&quot;
++&quot;Language: uk\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: Lokalize 1.0\n&quot;
++&quot;Plural-Forms: nplurals=3; plural=(n%10==1 &amp;&amp; n%100!=11 ? 0 : n%10&gt;=2 &amp;&amp; n&quot;
++&quot;%10&lt;=4 &amp;&amp; (n%100&lt;10 || n%100&gt;=20) ? 1 : 2);\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;Гаразд&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Скасувати&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Перезавантажити комп'ютер&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Продовжити&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Завантажити Microsoft Windows&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Інструмент пошуку обладнання&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;Linux з ядром %s&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Перевірити носій для встановлення&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Ручне встановлення&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Встановлення -- ACPI вимкнено&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Встановлення -- безпечні параметри&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Завантажити Mandriva Linux 2010 Spring (безпечний режим)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Завантажити з твердого диска&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Порятунок системи&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Тест пам'яті&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Параметри завантаження&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Вихід...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Ви покидаєте графічне меню завантаження\n&quot;
++&quot;і запускаєте текстовий варіант інтерфейсу.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Довідка&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Запуск...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Завантаження ядра Linux\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Завантаження memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Завантажувач&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;Помилка вводу/виводу&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Змініть завантажувальний диск&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Вставте завантажувальний диск %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Це завантажувальний диск %u.\n&quot;
++&quot;Вставте завантажувальний диск %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Це не завантажувальний диск &lt;product&gt;.\n&quot;
++&quot;Вставте завантажувальний диск %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Пароль&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Підготуйте дискету з оновленнями драйверів.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;Помилка DVD&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Це двобічний DVD. Ви завантажили з другого боку.\n&quot;
++&quot;\n&quot;
++&quot;Переверніть DVD і продовжуйте.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Вимкнути живлення&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Хочете зараз вимкнути систему?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Твердий диск&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Встановлення з твердого диска&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Дисковий пристрій (переглядає всі диски, якщо порожнє)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Тека\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;Встановлення з FTP&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Сервер\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Пароль\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Користувач (анонімний вхід, якщо порожнє)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;Встановлення з NFS&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Користувач (використовує «guest», якщо порожнє)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;Встановлення з SMB (Windows Share)&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;Встановлення через HTTP&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Драйвер&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Домен\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Інші параметри&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Мова&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Встановлення -- IOAPIC увімкнено&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Встановлення -- IOAPIC вимкнено&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Встановлення -- локальне APIC вимкнено&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Так&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Ні&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Файл&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Ресурс\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Автоматичний режим&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Ручний режим&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Налаштувати параметри на розділі ZEN&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Встановити або оновити розділ ZEN&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Перевстановити завантажувач розділу ZEN&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Вимкнути розділ ZEN&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Увімкнути розділ ZEN&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Текстовий режим&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Тест мікропрограмного забезпечення&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Щоб завантажити оновлення драйверів з\n&quot;
++&quot;CD-ROM, введіть сюди назви файлів для\n&quot;
++&quot;оновлення драйвера (розділені комами \&quot;,\&quot;):\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Джерело&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Відеорежим&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Оновлення драйверів&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Арх.&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Параметри ядра&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Типове&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Безпечні параметри&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Без ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Без локального APIC&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Поремонтувати встановлену систему&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Перевірити носій для встановлення&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Клавіатура&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Звантажити поновлення драйвера&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Ввести URL до поновленого драйвера\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Неправильна архітектура&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;Це 32-розрядний комп’ютер. Ви не можете запускати або встановлювати на ньому &quot;
++&quot;64-бітні програми.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Попередження&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;Ви збираєтесь встановити 32-бітні програми на 64-бітний комп’ютер.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;Вставте КД з поновленням драйвера для\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Вставте Mandriva Linux CD-ROM назад в привід.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;Відновити копію draksnapshot&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Завантажити Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Встановити Mandriva Linux 2010 Spring&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpouzpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/uz.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/uz.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/uz.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,490 @@
++# uzbek cyrillic translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++# Nurali Abdurahmonov &lt;mavnur@gmail.com&gt;, 2009, 2010.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader\n&quot;
++&quot;PO-Revision-Date: 2010-01-12 13:40+0500\n&quot;
++&quot;Last-Translator: Nurali Abdurahmonov &lt;mavnur@gmail.com&gt;\n&quot;
++&quot;Language-Team: American English &lt;mavnur@gmail.com&gt;\n&quot;
++&quot;Language: \n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: Lokalize 1.0\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;OK&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Bekor qilish&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Oʻchirib-yoqish&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Davom etish&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Microsoft Windows'ni yuklash&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Uskunalarni aniqlash vositasi&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;%s kernelli Linux&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Oʻrnatish manbasini tekshirish&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Qoʻlbola oʻrnatish&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Oʻrnatish --ACPI oʻchirilgan&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Oʻrnatish --Safe moslamalari&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Mandriva Linux 2010 Spring'ni yuklash (xavfsiz usul)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Qattiq diskdan yuklash&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Tizimni tiklash&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Xotirani tekshirish&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Yuklash parametrlari&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Chiqish...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Siz grafik yuklash menyusidan chiqib\n&quot;
++&quot;matn usuliga oʻtmoqchimisiz.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Yordam&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Boshlash...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Linux kerneli yuklanmoqda\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;memtest86 yuklanmoqda\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Yuklovchi&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;I/O xatosi&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Yuklanadigan diskni oʻzgartirish&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;%u yuklash diskini kiriting.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Bu %u yuklash diski.\n&quot;
++&quot;%u yuklash diskini kiriting.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Bu &lt;product&gt; yuklash diski emas.\n&quot;
++&quot;%u yuklash diskini kiriting.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Maxfiy soʻz&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Drayverli disketani tayyorlang.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD disk xatosi&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Bu ikki tomonli DVD disk. Siz ikkinchi tomondan yukladingiz.\n&quot;
++&quot;\n&quot;
++&quot;DVD diskn oʻgiring va davom ettiring.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Oʻchirish&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Kompyuter oʻchirilsinmi?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Qattiq disk&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Qattiq diskdan oʻrnatish&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Disk uskunasi (agar boʻsh boʻlsa barcha disklar tekshiriladi)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Direktoriya\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP orqali oʻrnatish&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Server\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Maxfiy soʻz\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Foydalanuvchi (agar boʻsh boʻlsa anonim kiriladi)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS orqali oʻrnatish&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Foydalanuvchi (agar boʻsh boʻlsa \&quot;guest\&quot; dan foydalaniladi)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB (Windows Share) orqali oʻrnatish&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP orqali oʻrnatish&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Drayver&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Domen\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Boshqa variantlar&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Til&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Oʻrnatish --IOAPIC yoqilgan&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Oʻrnatish --IOAPIC oʻchirilgan&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Oʻrnatish --Local APIC oʻchirilgan&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Ha&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Yoʻq&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Fayl&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Umumiy jild\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Avtomatik usul&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Qoʻlbola usul&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;ZEN disk qismidagi parametrlarni moslash&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;ZEN disk qismidagi yangilash yoki oʻrnatish&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;ZEN disk qismi yuklovchisini qayta oʻrnatish&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;ZEN disk qismini oʻchirish&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;ZEN disk qismini yoqish&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Mant usuli&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Mikrodasturiy taʼminotni (firmware) tekshirish&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Drayver yangilanishlarni CD-ROM'dan yuklash uchun,\n&quot;
++&quot;yangilanish fayllari nomini (vergul ',' bilan ajratilgan)\n&quot;
++&quot;shu yerga kiriting:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Manba&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Video usuli&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Drayverni yangilash&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Arx.&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Kernel opsiyasi&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Andoza&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Xavfsiz parametrlar&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;ACPI'siz&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Lokal APIC'siz&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Oʻrnatilgan tizimni yangilash&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Oʻrnatish manbasini tekshirish&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Klaviatura&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Drayver yangilanishini yuklab olish&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Drayver yangilanish URL manzilini kiriting\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Xato arxitektura&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;Bu 32-bitli kompyuter. Ushbu kompyuterda 64-bitli dasturiy taʼminotni &quot;
++&quot;oʻrnata olmaysiz.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Diqqat&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;Siz 64-bitli kompyuterga 32-bitli dasturiy taʼminotni oʻrnatmoqchisiz.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;\&quot;%s\&quot; uchun drayver yangilash diskini \n&quot;
++&quot; qoʻying.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Mandriva Linux CD-ROM diskini uskunaga qoʻying.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;draksnapshot zahira nusxasini tiklash&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Mandriva Linux 2010 Spring'ni yuklash&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Mandriva Linux 2010 Spring tizimini oʻrnatish&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpouzcyrillicpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/uz@cyrillic.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/uz@cyrillic.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/uz@cyrillic.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,490 @@
++# uzbek cyrillic translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++# Nurali Abdurahmonov &lt;mavnur@gmail.com&gt;, 2009, 2010.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader\n&quot;
++&quot;PO-Revision-Date: 2010-01-12 13:40+0500\n&quot;
++&quot;Last-Translator: Nurali Abdurahmonov &lt;mavnur@gmail.com&gt;\n&quot;
++&quot;Language-Team: American English &lt;mavnur@gmail.com&gt;\n&quot;
++&quot;Language: \n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: Lokalize 1.0\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;OK&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Бекор қилиш&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Ўчириб-ёқиш&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Давом этиш&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;Microsoft Windows'ни юклаш&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;Ускуналарни аниқлаш воситаси&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;%s кернелли Linux&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Ўрнатиш манбасини текшириш&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Қўлбола ўрнатиш&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Ўрнатиш --ACPI ўчирилган&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Ўрнатиш --Safe мосламалари&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;Mandriva Linux 2010 Spring'ни юклаш (хавфсиз усул)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Қаттиқ дискдан юклаш&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Тизимни тиклаш&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Хотирани текшириш&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Юклаш параметрлари&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Чиқиш...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Сиз график юклаш менюсидан чиқиб\n&quot;
++&quot;матн усулига ўтмоқчимисиз.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Ёрдам&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Бошлаш...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Linux кернели юкланмоқда\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;memtest86 юкланмоқда\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Юкловчи&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;I/O хатоси&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Юкланадиган дискни ўзгартириш&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;%u юклаш дискини киритинг.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Бу %u юклаш диски.\n&quot;
++&quot;%u юклаш дискини киритинг.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Бу &lt;product&gt; юклаш диски эмас.\n&quot;
++&quot;%u юклаш дискини киритинг.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Махфий сўз&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Драйверли дискетани тайёрланг.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD диск хатоси&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Бу икки томонли DVD диск. Сиз иккинчи томондан юкладингиз.\n&quot;
++&quot;\n&quot;
++&quot;DVD дискн ўгиринг ва давом эттиринг.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Ўчириш&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Компьютер ўчирилсинми?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Қаттиқ диск&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Қаттиқ дискдан ўрнатиш&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Диск ускунаси (агар бўш бўлса барча дисклар текширилади)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Директория\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP орқали ўрнатиш&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Сервер\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Махфий сўз\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Фойдаланувчи (агар бўш бўлса аноним кирилади)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS орқали ўрнатиш&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Фойдаланувчи (агар бўш бўлса \&quot;guest\&quot; дан фойдаланилади)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB (Windows Share) орқали ўрнатиш&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP орқали ўрнатиш&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Драйвер&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Домен\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Бошқа вариантлар&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Тил&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Ўрнатиш --IOAPIC ёқилган&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Ўрнатиш --IOAPIC ўчирилган&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Ўрнатиш --Local APIC ўчирилган&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Ҳа&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Йўқ&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Файл&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Умумий жилд\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Автоматик усул&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Қўлбола усул&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;ZEN диск қисмидаги параметрларни мослаш&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;ZEN диск қисмидаги янгилаш ёки ўрнатиш&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;ZEN диск қисми юкловчисини қайта ўрнатиш&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;ZEN диск қисмини ўчириш&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;ZEN диск қисмини ёқиш&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Мант усули&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Микродастурий таъминотни (firmware) текшириш&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Драйвер янгиланишларни CD-ROM'дан юклаш учун,\n&quot;
++&quot;янгиланиш файллари номини (вергул ',' билан ажратилган)\n&quot;
++&quot;шу ерга киритинг:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Манба&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Видео усули&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Драйверни янгилаш&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Арх.&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Кернел опцияси&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Андоза&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Хавфсиз параметрлар&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;ACPI'сиз&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Локал APIC'сиз&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Ўрнатилган тизимни янгилаш&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Ўрнатиш манбасини текшириш&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Клавиатура&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;Драйвер янгиланишини юклаб олиш&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;Драйвер янгиланиш URL манзилини киритинг\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;Хато архитектура&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++&quot;Бу 32-битли компьютер. Ушбу компьютерда 64-битли дастурий таъминотни ўрната &quot;
++&quot;олмайсиз.&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;Диққат&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;Сиз 64-битли компьютерга 32-битли дастурий таъминотни ўрнатмоқчисиз.&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;\&quot;%s\&quot; учун драйвер янгилаш дискини \n&quot;
++&quot; қўйинг.&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;Mandriva Linux CD-ROM дискини ускунага қўйинг.&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;draksnapshot заҳира нусхасини тиклаш&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Mandriva Linux 2010 Spring'ни юклаш&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;Mandriva Linux 2010 Spring тизимини ўрнатиш&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpowapo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/wa.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/wa.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/wa.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,484 @@
++# LANGUAGE translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader.wa\n&quot;
++&quot;POT-Creation-Date: 2006-10-01 19:37+0200\n&quot;
++&quot;PO-Revision-Date: 2008-11-11 18:08+0100\n&quot;
++&quot;Last-Translator: \n&quot;
++&quot;Language-Team: American English &lt;kde-i18n-doc@lists.kde.org&gt;\n&quot;
++&quot;Language: \n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n &gt; 1);\n&quot;
++&quot;X-Generator: LoKalize 0.2\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;'l est Bon&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Rinoncî&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Renonder l' copiutrece&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Continouwer&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Astalaedje&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Astalaedje al mwin&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Astalaedje--ACPI dismetou&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Astalaedje--Tchuzes di såvrité&quot;
++
++#. txt_safe_linux
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Enonder a pårti del deure plake&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Sistinme di houplaedje&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Saye di memwere&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Tchuzes d' enondaedje&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Dji cwite...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Vos cwitez l' menu grafike d' enondaedje sistinme et\n&quot;
++&quot;enondez l' eterface e mode tecse.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Aidance&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Dj' enonde...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Dji tchedje li nawea Linux\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Dji tchedje memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Tcherdjeu d' enondaedje sistinme&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;Aroke d' I/R&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Candjî l' plake d' enondaedje&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Intrez l' diskete d' enondaedje %u&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Çouci est l' diskete d' enondaedje %u.\n&quot;
++&quot;Intrez l' diskete d' enondaedje %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Çouci n' est nén ene diskete d' enondaedje &lt;product&gt;.\n&quot;
++&quot;Intrez l' diskete d' enondaedje %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Sicret&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Preparez vosse diskete di metaedje a djoû di moenneu.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;Aroke DVD&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Çouci est on DVD a deus costés. Vos avoz enondé a pårti do deujhinme costé.\n&quot;
++&quot;\n&quot;
++&quot;Ritournez l' DVD et adon continouwez.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Distinde&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Arester l' sistinme asteure?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Deure plake&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Astalaedje del deure plake&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Éndjin plake (scane totes les plakes si vude)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Ridant\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;Astalaedje FTP&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Sierveu\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Sicret\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Uzeu (login racamuchyî si vude)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;Astalaedje NFS&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Uzeu (eploye \&quot;guest\&quot; si vude)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;Astalaedje SMB (pårtaedje avou Windows)&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;Astalaedje HTTP&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Mineu&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Dominne\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Ôtès tchuzes&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Lingaedje&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Astalaedje--IOAPIC en alaedje&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Astalaedje--IOACPI dismetou&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Astalaedje--Locå APIC en alaedje&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Oyi&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Nonna&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Fitchî&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Pårtaedje\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Môde otomatike&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Môde al mwin&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Apontyî les parametes sol pårticion ZEN&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Astaler ou mete a djoû les pårticion ZEN&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Rastaler l' tcherdjeu d' enondaedje del pårticion ZEN&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Dismete li pårticion ZEN&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Mete en alaedje le pårticion ZEN&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Môde tecse&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Saye firmware&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Po tcherdjî les metaedjes a djoû d' moenneu direk do\n&quot;
++&quot;CD-ROM, intrez les nos d' fitchî di metaedje a djoû\n&quot;
++&quot;(metous a pårt pa des comas ',') vaici:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Sourdant&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;Môde videyo&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;Metaedje a djoû do mineu&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Årtch&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Prémetou&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;Tchuzes såvrité&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;Nol ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;Nou locå ACPI&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;Remantchî on sistinme d' astalé&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;Verifyî media d' astalaedje&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Taprece&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;Linux--Tchuzes di såvrité&quot;
++
++#~ msgid &quot;Kernel&quot;
++#~ msgstr &quot;Nawea&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpoxhpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/xh.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/xh.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/xh.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,480 @@
++# LANGUAGE translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader\n&quot;
++&quot;PO-Revision-Date: 2005-07-27 11:49+0200\n&quot;
++&quot;Last-Translator: Novell Language &lt;language@novell.com&gt;\n&quot;
++&quot;Language-Team: Novell Language &lt;language@novell.com&gt;\n&quot;
++&quot;Language: \n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;KULUNGILE&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Rhoxisa&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Phinda umisele inkqubo&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Uyaqhuba?&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Ukuhlohla&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Ukuhlohla Ngokwenza Ngesandla&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Ukuhlohlwa kwe--ACPI Kususwe Isakhono&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Imimiselo Yokuhlohla -- Ikhuselekile&quot;
++
++#. txt_safe_linux
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Misela Inkqubo Kwiqokobhe Lekhompyutha&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Isixokelelwano Sokuhlangula&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Uvavanyo Lukavimba Wolwazi&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Izikhethwa Zomiselo Lwenkqubo&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Kuyaphunywa...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Ushiya imenyu yegrafu yokumisela inkqubo kwaye\n&quot;
++&quot;uqalisa ngesithuba somdibaniso wemo yokusebenza kwisiqendu.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Uncedo&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Kuyaqaliswa...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Kulayishwa i-Kernel ye-Linux\n&quot;
++&quot;\n&quot;
++&quot; \n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Kulayishwa uvavanyo lwe-mem86\n&quot;
++&quot;\n&quot;
++&quot; \n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;Umlayishi Womiselo Lwenkqubo&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;Imposiso ye-I/O &quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Guqula Idiski Yokumisela Inkqubo&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Faka idiski yokumisela inkqubo %u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Le yidiski yokumisela inkqubo ye-%u.\n&quot;
++&quot;Faka idiski yokumisela inkqubo ye-%u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Le asiyodiski yokumisela inkqubo ye-&lt;mveliso&gt;.\n&quot;
++&quot;Faka idiski yokumisela inkqubo ye-%u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Igama lokugqithisa&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Yenza i-floppy yohlaziyo lomqhubi lulunge.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;Imposiso ye-DVD&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Le yi-DVD yamacala amabini. Umisele inkqubo kwicala lesibini.\n&quot;
++&quot;\n&quot;
++&quot; Guqula i-DVD uze uqhube.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Umbane Ucimile&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Uyasizizilizisa isixokelelwano ngoku?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Okuseqokobheni Lekhompyutha&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Ukuhlohla Okuseqokobheni Lekhompyutha&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Isixhobo Sediski (Sifota ngokuskena Zonke Iidiski Xa Silikhamte)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;Uvimba weefayili\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;Ukuhlohlwa kwe-FTP&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Iseva\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Igama lokugqithisa\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Umsebenzisi (Ungena Ngokungalixeli Igama Ukuba likhamte)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;Ukuhlohlwa kwe-NFS&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Umsebenzisi (Usebenzisa\&quot;undwendwe\&quot; Ukuba likhamte)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;Ukuhlohlwa kwe-SMB (Ukwabelana ne-Windows)&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;Ukuhlohlwa kwe-HTTP&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;Umqhubi&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;Ummandla wolawulo\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Ezinye Izikhethwa&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Ulwimi&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Ukuhlohlwa kwe--IOAPIC Kunikwe Isakhono&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Ukuhlohlwa kwe--IOAPIC Kususwe Isakhono&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Ukuhlohlwa kwe--APIC Yalapho Kususwe Isakhono&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Ewe&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Hayi&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Ifayili&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Ukwabelana\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Imo Yokusebenza Ezenzekelayo&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Imo Yokusebenza Yokwenza Ngesandla&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Yenza Ubumbeko Lwemida Yenkcazelo Kwisahlulelo se-ZEN&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Hlohla okanye Hlaziya Isahlulelo se-ZEN&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Phinda Uhlohle Umlayishi Womiselo Lwenkqubo Yesahlulelo se-ZEN&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Susa Isakhono Kwisahlulelo se-ZEN&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Nika Isakhono Kwisahlulelo se-ZEN&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Imo Yokusebenza Ngesiqendu&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Uvavanyo lwe-Firmware&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Ukuze ulayishe iziganeko zohlaziyo lomqhubi ngokungqalileyo ukusuka kwi-CD-&quot;
++&quot;ROM,\n&quot;
++&quot;ngenisa amagama eefayili zokuhlaziya umqhubi (ezahlukaniswe\n&quot;
++&quot; ngeekoma ',') apha:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Uvimba&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;Ezokwakha.&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++#, fuzzy
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Ezinye Izikhethwa&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Ibhodi yamaqhosha&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;Imimiselo Ye-Linux -- Ikhuselekile&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpozh_CNpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/zh_CN.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/zh_CN.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/zh_CN.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,488 @@
++# LANGUAGE translations for boot loader
++# Copyright (C) 2004 SUSE LINUX AG
++# Thruth Wang &lt;lihaow@opera.com&gt;, 2008
++# Funda Wang &lt;fundawang@gmail.com&gt;, 2009
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader\n&quot;
++&quot;POT-Creation-Date: \n&quot;
++&quot;PO-Revision-Date: 2008-06-02 02:05+0800\n&quot;
++&quot;Last-Translator: Funda Wang &lt;fundawang@gmail.com&gt;\n&quot;
++&quot;Language-Team: Simplified Chinese\n&quot;
++&quot;Language: \n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;确定&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;取消&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;重启&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;继续&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;启动 Microsoft Windows&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;硬件检测工具&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;内核为 %s 的 Linux&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;检查安装介质&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;手动安装&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;安装 - 禁用 ACPI&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;安装 - 安全设置&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;启动 Mandriva Linux 2010 Spring (安全模式)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;从硬盘引导&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;挽救系统&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;内存测试&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;引导选项&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;正在退出...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;您将离开图形引导菜单\n&quot;
++&quot;并启动文本方式界面。&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;帮助&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;正在启动...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;正在装载 Linux 内核\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;正在装载 memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;引导装载程序&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;I/O 错误&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;更换引导盘&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;插入引导盘 %u。&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;这是引导盘 %u。\n&quot;
++&quot;插入引导盘 %u。&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;这不是 &lt;product&gt; 引导磁盘。\n&quot;
++&quot;请插入引导磁盘 %u。&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;口令&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;准备好驱动程序更新软盘。&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD 错误&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;这是双面 DVD。您是从第二面引导的。\n&quot;
++&quot;\n&quot;
++&quot;请将 DVD 翻转然后继续。&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;关闭电源&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;是否立即暂停系统?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;硬盘&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;硬盘安装&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;磁盘设备(如果为空,则扫描所有磁盘)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;目录\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP 安装&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;服务器\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;密码\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;用户(如果未填写,则以匿名身份登录)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS 安装&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;用户(如果为空,则使用“guest”)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB (Windows 共享)安装&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP 安装&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;驱动程序&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;域\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;其他选项&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;语言&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;安装 - 启用 IOAPIC&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;安装 - 禁用 IOAPIC&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;安装 - 禁用本地 APIC&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;是&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;否&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;文件&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;共享\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;自动方式&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;手动方式&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;在 ZEN 分区上配置参数&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;安装或更新 ZEN 分区&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;重新安装 ZEN 分区引导装载程序&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;禁用 ZEN 分区&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;启用 ZEN 分区&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;文本方式&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;固件测试&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;要直接从 CD-ROM 装入驱动程序更新,\n&quot;
++&quot;请在此处输入驱动程序更新文件名(以逗号“,”\n&quot;
++&quot;隔开):\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;源&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;视频模式&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;驱动程序更新&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;架构&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;内核选项&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;默认&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;安全设置&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;无 ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;无本地 ACPI&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;修复已安装系统&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;检查安装介质&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;键盘&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;下载驱动程序更新&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;输入驱动程序更新 URL\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;错误的架构&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;这是 32 位计算机。您不能使用 64 位软件。&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;警告&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;您即将在 64 位计算机上安装 32 位软件。&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++&quot;请插入驱动程序更新光盘\n&quot;
++&quot;“%s”。&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;请将 Mandriva Linux 的光盘放入驱动器。&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;恢复 DrakSnapshot 备份&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;启动 Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;安装 Mandriva Linux 2010 Spring&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpozh_TWpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/zh_TW.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/zh_TW.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/zh_TW.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,484 @@
++# LANGUAGE translations for boot loader
++# Copyright (C) 2004 SUSE LINUX AG
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader\n&quot;
++&quot;PO-Revision-Date: 2008-05-13 22:16+0800\n&quot;
++&quot;Last-Translator: swyear &lt;swyear@gmail.com&gt;\n&quot;
++&quot;Language-Team: Chinese Traditional &lt;zh@li.org&gt;\n&quot;
++&quot;Language: \n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;確定&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;取消&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;重新開機&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;繼續&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;啟動 Microsoft Windows&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;硬體偵測工具&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;核心 %s 的 Linux&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;檢查安裝媒體&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;手動安裝&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;安裝 -- 關閉 ACPI&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;安裝 -- 安全設定&quot;
++
++#. txt_safe_linux
++#, fuzzy
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;啟動 Mandriva Linux 2010 Spring (安全模式)&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;從硬碟開機&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;救援系統&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;記憶體測試&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;開機選項&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;正在離開...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;您將離開圖形開機功能表並\n&quot;
++&quot;啟動文字模式介面。&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;說明&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;正在啟動...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;載入 Linux 核心\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;載入 memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;開機載入器&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;I/O 錯誤&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;變更開機磁碟&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;插入開機磁碟 %u。&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;這是開機磁片 %u。\n&quot;
++&quot;插入開機磁片 %u。&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;這不是 &lt;product&gt; 開機磁片。\n&quot;
++&quot;插入開機磁片 %u。&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;密碼&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;備妥您的驅動程式更新磁片。&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;DVD 錯誤&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;這是雙面 DVD。您是從第二面開機。\n&quot;
++&quot;\n&quot;
++&quot;請將 DVD 翻面,然後繼續。&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;關閉電源&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;要立即終止系統嗎?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;硬碟&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;硬碟安裝&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;磁碟裝置 (如果為空白則掃描所有磁碟)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;目錄\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;FTP 安裝&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;伺服器\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;密碼\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;使用者 (如果是空的,將匿名登入)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;NFS 安裝&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;使用者 (如果空白則使用 \&quot;guest\&quot;)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;SMB (Windows 分享) 安裝&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;HTTP 安裝&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;驅動程式&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;領域\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;其他選項&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;語言&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;安裝 -- 開啟 IOAPIC&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;安裝 -- 關閉 IOAPIC&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;安裝 -- 關閉 Local APIC&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;是&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;否&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;檔案&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;共享\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;自動模式&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;手動模式&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;設定 ZEN 分割區參數&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;安裝或更新 ZEN 分割區&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;重新安裝 ZEN 分割區開機載入器&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;停用 ZEN 分割區&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;啟用 ZEN 分割區&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;文字模式&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;韌體測試&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;若要從 CD-ROM 直接載入驅動程式更新,\n&quot;
++&quot;請在此輸入驅動程式更新檔案名稱 \n&quot;
++&quot;(由逗號 ',' 分隔):\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;來源&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;視訊模式&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;驅動程式更新&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;架構&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++msgid &quot;Kernel Option&quot;
++msgstr &quot;核心選項&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;預設值&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;安全設定&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;關閉 ACPI&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;關閉本機 APIC&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;修復已安裝的系統&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;檢查安裝媒體&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;鍵盤&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;下載驅動程式更新&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;輸入驅動程式更新網址\n&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;錯誤的系統架構&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;這是一台 32 位元的電腦,您無法在其上使用或安裝 64 位元的軟體。&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;警告&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;您將要在 64 位元的電腦上安裝設計給 32 位元電腦執行的軟體&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;請插入 \&quot;%s\&quot; 的更新驅動程式的光碟片。&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++#, fuzzy
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;將 Mandriva Linux 的光碟重新放回光碟機&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;使用 draksnapshot 的備份回復&quot;
++
++#~ msgid &quot;Boot Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;啟動 Mandriva Linux 2010 Spring&quot;
++
++#~ msgid &quot;Install Mandriva Linux 2010 Spring&quot;
++#~ msgstr &quot;安裝 Mandriva Linux 2010 Spring&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunkpozupo">Added: theme/trunk/mageia-gfxboot-theme/trunk/po/zu.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/po/zu.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/po/zu.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,479 @@
++# LANGUAGE translations for boot loader
++# Copyright (C) 2005 SUSE Linux GmbH
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: bootloader\n&quot;
++&quot;PO-Revision-Date: 2005-07-27 11:49+0200\n&quot;
++&quot;Last-Translator: Novell Language &lt;language@novell.com&gt;\n&quot;
++&quot;Language-Team: Novell Language &lt;language@novell.com&gt;\n&quot;
++&quot;Language: \n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++
++#. ok button label
++#. txt_ok
++msgid &quot;OK&quot;
++msgstr &quot;OK&quot;
++
++#. cancel button label
++#. txt_cancel
++msgid &quot;Cancel&quot;
++msgstr &quot;Khansela&quot;
++
++#. reboot button label
++#. txt_reboot
++msgid &quot;Reboot&quot;
++msgstr &quot;Vula kabusha&quot;
++
++#. continue button label
++#. txt_continue
++msgid &quot;Continue&quot;
++msgstr &quot;Qhubeka&quot;
++
++#. txt_linux
++msgid &quot;Boot Mageia 1&quot;
++msgstr &quot;&quot;
++
++#. txt_windows
++msgid &quot;Boot Microsoft Windows&quot;
++msgstr &quot;&quot;
++
++#. txt_hdt
++msgid &quot;Hardware Detection Tool&quot;
++msgstr &quot;&quot;
++
++#. txt_linux_kernel_version
++#, c-format
++msgid &quot;Linux with kernel %s&quot;
++msgstr &quot;&quot;
++
++#. txt_install
++#, fuzzy
++msgid &quot;Install Mageia 1&quot;
++msgstr &quot;Ukufaka uhlelo&quot;
++
++#. txt_manual_install
++msgid &quot;Manual Installation&quot;
++msgstr &quot;Ukuzifakela Mathupha&quot;
++
++#. txt_noacpi_install
++msgid &quot;Installation--ACPI Disabled&quot;
++msgstr &quot;Ukufaka--I-ACPI Icishiwe&quot;
++
++#. txt_safe_install
++msgid &quot;Installation--Safe Settings&quot;
++msgstr &quot;Ukufaka Uhlelo--Amasethingi Aphephile&quot;
++
++#. txt_safe_linux
++msgid &quot;Boot Mageia 1 (safe mode)&quot;
++msgstr &quot;&quot;
++
++#. txt_boot_harddisk
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;Qalisa kuGalaza (Hard Disk)&quot;
++
++#. txt_rescue
++msgid &quot;Rescue System&quot;
++msgstr &quot;Hlenga Isistimu&quot;
++
++#. txt_memtest
++msgid &quot;Memory Test&quot;
++msgstr &quot;Ukuhlola Imemori&quot;
++
++#. txt_bootoptions
++msgid &quot;Boot Options&quot;
++msgstr &quot;Okukhethwa Kukho Kokuqalisa&quot;
++
++#. window title for exit dialog
++#. txt_exit_title (see txt_exit_dialog)
++msgid &quot;Exiting...&quot;
++msgstr &quot;Luyaphuma...&quot;
++
++#. txt_exit_dialog
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++&quot;Uyaphuma kwimenu yezithombe yokuqalisa futhi\n&quot;
++&quot;i-interface yemodi elandelayo.&quot;
++
++#. txt_help
++msgid &quot;Help&quot;
++msgstr &quot;Usizo&quot;
++
++#. window title for kernel loading (see txt_load_kernel)
++#. txt_load_kernel_title
++msgid &quot;Starting...&quot;
++msgstr &quot;Iyaqalisa...&quot;
++
++#. Keep the three newlines!
++#. txt_load_kernel
++msgid &quot;&quot;
++&quot;Loading Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Ifaka i-Linux Kernel\n&quot;
++&quot;\n&quot;
++&quot; \n&quot;
++
++#. Keep the three newlines!
++#. txt_load_memtest
++msgid &quot;&quot;
++&quot;Loading memtest86\n&quot;
++&quot;\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Ifaka i-memtes86\n&quot;
++&quot;\n&quot;
++&quot; \n&quot;
++
++#. info box title
++#. txt_info_title
++msgid &quot;Boot Loader&quot;
++msgstr &quot;I-Boot Loader&quot;
++
++#. error box title
++#. txt_error_title
++msgid &quot;I/O Error&quot;
++msgstr &quot;Iphutha le-I/O&quot;
++
++#. boot disk change dialog title
++#. txt_change_disk_title
++msgid &quot;Change Boot Disk&quot;
++msgstr &quot;Shintsha Idiski Yokuqalisa&quot;
++
++#. txt_insert_disk
++#, c-format
++msgid &quot;Insert boot disk %u.&quot;
++msgstr &quot;Faka idiski yokuqalisa%u.&quot;
++
++#. txt_insert_disk2
++#, c-format
++msgid &quot;&quot;
++&quot;This is boot disk %u.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Lena idiski yokuqalisa %u.\n&quot;
++&quot;Faka idiski yokuqalisa %u.&quot;
++
++#. &lt;product&gt; is e.g. SuSE Linux X.Y or Enterprise Server Z
++#. txt_insert_disk3
++#, c-format
++msgid &quot;&quot;
++&quot;This is not a &lt;product&gt; boot disk.\n&quot;
++&quot;Insert boot disk %u.&quot;
++msgstr &quot;&quot;
++&quot;Lena akuyona &lt;product&gt;idiski yokuqalisa.\n&quot;
++&quot;Faka idiski yokuqalisa %u.&quot;
++
++#. password dialog title
++#. txt_password_title
++msgid &quot;Password&quot;
++msgstr &quot;Iphasiwedi&quot;
++
++#. txt_dud_ready
++msgid &quot;Get your driver update floppy ready.&quot;
++msgstr &quot;Yenza ukuba iflophi yokuvuselela i-driver yakho ihlale ilungele.&quot;
++
++#. dvd warning title
++#. txt_dvd_warning_title
++msgid &quot;DVD Error&quot;
++msgstr &quot;Iphutha le-DVD&quot;
++
++#. txt_dvd_warning2
++msgid &quot;&quot;
++&quot;This is a two-sided DVD. You have booted from the second side.\n&quot;
++&quot;\n&quot;
++&quot;Turn the DVD over then continue.&quot;
++msgstr &quot;&quot;
++&quot;Lena yi-DVD enezinhlangothi ezimbili. Uqalise ohlangothini lwesibili.\n&quot;
++&quot;\n&quot;
++&quot; Phendula i-DVD ukuze uqhubeke.&quot;
++
++#. power off dialog title
++#. txt_power_off_title
++msgid &quot;Power Off&quot;
++msgstr &quot;Cisha&quot;
++
++#. txt_power_off
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;Misa isistimu manje?&quot;
++
++#. menu entry for hard disk installation
++#. txt_harddisk
++msgid &quot;Hard Disk&quot;
++msgstr &quot;Ugalaza (hard disk)&quot;
++
++#. dialog title for hard disk installation
++#. txt_harddisk_title
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;Ukufakwa Kukagalaza (hard disk)&quot;
++
++#. txt_hd_diskdevice
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;Idivayisi Yediski (Iskena Wonke Amadiski Uma Engenalutho)\n&quot;
++
++#. txt_directory
++msgid &quot;Directory\n&quot;
++msgstr &quot;I-directory\n&quot;
++
++#. dialog title for ftp installation
++#. txt_ftp_title
++msgid &quot;FTP Installation&quot;
++msgstr &quot;Ukufakwa Kwe-FTP&quot;
++
++#. txt_server
++msgid &quot;Server\n&quot;
++msgstr &quot;Isiphakelalwazi\n&quot;
++
++#. txt_password
++msgid &quot;Password\n&quot;
++msgstr &quot;Iphasiwedi\n&quot;
++
++#. label for ftp user input
++#. txt_user1
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;Umsebenzisi (Ukungena Kongaziwa Uma Kungenalutho)\n&quot;
++
++#. dialog title for nfs installation
++#. txt_nfs_title
++msgid &quot;NFS Installation&quot;
++msgstr &quot;Ukufakwa Kwe-NFS&quot;
++
++#. label for smb user input
++#. txt_user2
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;Umsebenzisi (Usebenzisa \&quot;isivakashi\&quot; Uma Kungenalutho)\n&quot;
++
++#. dialog title for smb installation
++#. txt_smb_title
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;Ukufakwa Kwe-SMB (I-Windows Share)&quot;
++
++#. dialog title for http installation
++#. txt_http_title
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;Ukufakwa Kwe-HTTP&quot;
++
++#. 'driver' as in '(hardware) driver update'
++#. txt_driver_update
++msgid &quot;Driver&quot;
++msgstr &quot;I-driver&quot;
++
++#. as in Windows Authentication Domain
++#. txt_domain
++msgid &quot;Domain\n&quot;
++msgstr &quot;I-domain\n&quot;
++
++#. button label for other/more options
++#. txt_other_options
++msgid &quot;Other Options&quot;
++msgstr &quot;Okunye Ongakhetha Kukho&quot;
++
++#. label for language selection
++#. txt_language
++msgid &quot;Language&quot;
++msgstr &quot;Ulimi&quot;
++
++#. txt_apic
++msgid &quot;Installation--IOAPIC Enabled&quot;
++msgstr &quot;Ukufaka Uhlelo--IOAPIC Ivuliwe&quot;
++
++#. txt_noapic_install
++msgid &quot;Installation--IOAPIC Disabled&quot;
++msgstr &quot;Ukufaka Uhlelo--IOAPIC Icishiwe&quot;
++
++#. txt_nolapic_install
++msgid &quot;Installation--Local APIC Disabled&quot;
++msgstr &quot;Ukufaka Uhlelo--I-APIC Eseduze Icishiwe&quot;
++
++#. txt_yes
++msgid &quot;Yes&quot;
++msgstr &quot;Yebo&quot;
++
++#. txt_no
++msgid &quot;No&quot;
++msgstr &quot;Cha&quot;
++
++#. menu item for selecting a file
++#. txt_file
++msgid &quot;File&quot;
++msgstr &quot;Ifayela&quot;
++
++#. input label: share as in &quot;Windows share&quot; (SMB)
++#. txt_share
++msgid &quot;Share\n&quot;
++msgstr &quot;Abelana\n&quot;
++
++#. txt_zenAuto
++msgid &quot;Automatic Mode&quot;
++msgstr &quot;Imodi Ezenzakalelayo&quot;
++
++#. txt_zenManual
++msgid &quot;Manual Mode&quot;
++msgstr &quot;Imodi Yokuzenzela Mathupha&quot;
++
++#. txt_zenConfig
++msgid &quot;Configure Parameters on ZEN Partition&quot;
++msgstr &quot;Hlela Amapharamitha Ekamelweni (partition) Le-ZEN&quot;
++
++#. txt_zenInstall
++msgid &quot;Install or Update ZEN Partition&quot;
++msgstr &quot;Faka noma Uvuselele Ikamelo Le-ZEN&quot;
++
++#. txt_zenLilo
++msgid &quot;Reinstall ZEN Partition Boot Loader&quot;
++msgstr &quot;Phinde Ufake I-Boot Loader Yekamelo Le-ZEN&quot;
++
++#. txt_zenDisable
++msgid &quot;Disable ZEN Partition&quot;
++msgstr &quot;Yenza Ikamelo Le-ZEN Lingasebenzi&quot;
++
++#. txt_zenEnable
++msgid &quot;Enable ZEN Partition&quot;
++msgstr &quot;Yenza Ikamelo Le-ZEN Lisebenze&quot;
++
++#. video mode menu item
++#. txt_text_mode
++msgid &quot;Text Mode&quot;
++msgstr &quot;Imodi Yombhalo&quot;
++
++#. menu item, like 'memory test'
++#. txt_firmware
++msgid &quot;Firmware Test&quot;
++msgstr &quot;Uvivinyo Lwe-Firmware&quot;
++
++#. txt_dud_file_msg
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++&quot;Ukuze ufake izivuseleli ze-driver ngokuqondile ukusuka kwi-CD-ROM,\n&quot;
++&quot;faka amagama efayela yezivuseleli ze-driver (ehlukaniswe\n&quot;
++&quot; ngokhefana',') lapha:\n&quot;
++
++#. install source menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_install_source
++msgid &quot;Source&quot;
++msgstr &quot;Umthombo&quot;
++
++#. video mode/display size menu title
++#. ** please keep it really short (comparable to the english text) **
++#. txt_video_mode
++msgid &quot;Video Mode&quot;
++msgstr &quot;&quot;
++
++#. driver update dialog title
++#. -&gt; txt_dud_file_msg
++#. txt_driver_update2
++msgid &quot;Driver Update&quot;
++msgstr &quot;&quot;
++
++#. menu label for selecting (cpu) architecture
++#. like i386, x86-64, ppc
++#. ** please keep it really short (comparable to the english text) **
++#. txt_arch
++msgid &quot;Arch&quot;
++msgstr &quot;I-Arch&quot;
++
++#. menu label for selecting some (linux) kernel variant
++#. ** please keep it really short (comparable to the english text) **
++#. txt_kernel
++#, fuzzy
++msgid &quot;Kernel Option&quot;
++msgstr &quot;Okunye Ongakhetha Kukho&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. txt_kernel_default
++msgid &quot;Default&quot;
++msgstr &quot;Okufike Nohlelo (default)&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; like in txt_safe_linux
++#. txt_kernel_safe
++msgid &quot;Safe Settings&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_noacpi_install
++#. txt_kernel_noacpi
++msgid &quot;No ACPI&quot;
++msgstr &quot;&quot;
++
++#. menu item for kernel variant (cf. txt_kernel)
++#. -&gt; similar to txt_nolapic_install
++#. txt_kernel_nolapic
++msgid &quot;No Local APIC&quot;
++msgstr &quot;&quot;
++
++#. main menu: start in system repair mode
++#. txt_repain_system
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;&quot;
++
++#. menu item
++#. txt_mediacheck
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;&quot;
++
++#. menu item for keyboard layout (please keep it short)
++#. txt_keyboard
++msgid &quot;Keyboard&quot;
++msgstr &quot;Ikhibhodi&quot;
++
++#. menu title
++#. txt_dud_download
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;&quot;
++
++#. input label
++#. txt_dud_enter_url
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 64bit CD on a 32bit machine
++#. txt_wrong_arch
++msgid &quot;Wrong architecture&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 64bit CD on a 32bit machine
++#. txt_64bit_popup
++msgid &quot;&quot;
++&quot;This is a 32-bit computer. You cannot use or install 64-bit software on it.&quot;
++msgstr &quot;&quot;
++
++#. title of warning box when running a 32bit CD on a 64bit machine
++#. txt_warning
++msgid &quot;Warning&quot;
++msgstr &quot;&quot;
++
++#. warning when running a 32bit CD on a 64bit machine
++#. txt_32bit_popup
++msgid &quot;You are about to install 32-bit software on a 64-bit computer.&quot;
++msgstr &quot;&quot;
++
++#. insert CDROM with drivers
++#. txt_insert_driver_cd
++#, c-format
++msgid &quot;&quot;
++&quot;Insert driver update CD-ROM for\n&quot;
++&quot;\&quot;%s\&quot;.&quot;
++msgstr &quot;&quot;
++
++#. insert Mageia CD back
++#. txt_insert_mdv_cd
++msgid &quot;Put the Mageia CD-ROM back into the drive.&quot;
++msgstr &quot;&quot;
++
++#. bootloader entry to restore draksnapshot backups
++#. txt_restore
++msgid &quot;Restore draksnapshot backup&quot;
++msgstr &quot;&quot;
++
++#~ msgid &quot;Linux--Safe Settings&quot;
++#~ msgstr &quot;I-Linux--Amasethingi Aphephile&quot;
+
+<a id="themetrunkmageiagfxbootthemetrunksrcMakefile">Added: theme/trunk/mageia-gfxboot-theme/trunk/src/Makefile</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/src/Makefile (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/src/Makefile 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,16 @@
++BINDIR := $(shell [ -x ../../../gfxboot-compile ] &amp;&amp; echo ../../../ )
++
++GFXBOOT_COMPILE = $(BINDIR)gfxboot-compile
++BFLAGS = -O -v -L ../..
++
++all: main.bin
++
++main.bin: main.bc *.inc ../po/.ready
++ $(GFXBOOT_COMPILE) $(BFLAGS) -l main.log -c main.bc $@
++
++../po/.ready:
++ make -C ../po
++
++clean:
++ rm -f main.bin *.log *~
++
+
+
+Property changes on: theme/trunk/mageia-gfxboot-theme/trunk/src/Makefile
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themetrunkmageiagfxbootthemetrunksrcbsplashinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/src/bsplash.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/src/bsplash.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/src/bsplash.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,291 @@
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% Boot loader splash code.
++%
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Some global vars.
++
++/.b_init 0 def
++/.b_done 1 def
++/.b_run 2 def
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Init splash.
++%
++% ( ) ==&gt; ( )
++%
++/bsplash.init {
++ /bsplash.list [
++ config.welcome 2 eq { [ /b1.init /b1.done /b1.run ] } if
++ [ /b2.init /b2.done /b2.run ]
++ ] def
++
++ bsplash.list { dup .b_init get exec } forall
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Free splash memory.
++%
++% ( ) ==&gt; ( )
++%
++/bsplash.free {
++ bsplash.list { dup .b_done get exec } forall
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Show boot loader splash.
++%
++% ( ) ==&gt; ( )
++%
++/bsplash.show {
++ currentimage
++
++ &quot;welcome.jpg&quot; findfile /splash.file over def setimage
++
++ 0 0 moveto 0 0 image.size image
++
++ bsplash.init
++
++ bsplash.skip not { 100000 usleep } if
++
++ bsplash.skip not {
++ {
++ 0 usleep
++ bsplash.skip { exit } if
++ bsplash.run { exit } if
++ } loop
++ } if
++
++ bsplash.free
++
++ setimage
++
++ /splash.file xfree
++
++} def
++
++
++% Run splash animations. Return 'true' when done.
++%
++% ( ) ==&gt; ( true|false )
++%
++/bsplash.run {
++ true
++
++ bsplash.list { dup .b_run get exec and } forall
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Just wait.
++%
++% ( ) ==&gt; ( )
++%
++/bsplash.done {
++ bsplash.skip not {
++ 1500000 usleep
++ } if
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Check if we should skip the intro.
++%
++% ( ) ==&gt; ( true|false )
++%
++/bsplash.skip {
++ % any key pressed?
++ getkey 0xffff and {
++ /bsplash.skip true def
++ true
++ } {
++ false
++ } ifelse
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Init.
++%
++% ( array ) ==&gt; ( )
++%
++/b1.init {
++ pop
++
++ /b1_ok false def
++
++ /b1_cd &quot;cd.jpg&quot; readimage def
++ /b1_cd_mask &quot;cd_a.jpg&quot; readimage def
++
++ b1_cd .undef eq b1_cd_mask .undef eq or { return } if
++
++ /b1_cd_tmp b1_cd imgsize 0 0 moveto savescreen def
++
++ 20 350 moveto
++ /b1_orig 300 150 savescreen def
++ /b1_buf 300 150 savescreen def
++
++ /b1_idx 0 def
++ /b1_steps 20 def
++
++ /b1_ok true def
++} def
++
++
++/b1_x [ 0 2 6 15 25 37 51 67 83 98 113 125 136 144 148 150 ] def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Cleanup.
++%
++% ( array ) ==&gt; ( )
++%
++/b1.done {
++ pop
++
++ b1_ok not { return } if
++
++ /b1_cd xfree
++ /b1_cd_mask xfree
++ /b1_cd_tmp xfree
++
++ /b1_orig xfree
++ /b1_buf xfree
++
++ /b1_ok false def
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Run animation.
++%
++% Return true when finished.
++%
++% ( array ) ==&gt; ( true|false )
++%
++/b1.run {
++ pop
++
++ b1_ok not { true return } if
++
++ /b1_idx inc
++
++ b1_idx b1_steps gt { true return } if
++
++ b1_buf b1_orig over length memcpy
++
++ b1_cd_tmp b1_cd_mask over length memcpy
++ 0 255 b1_idx 20 mul sub 0 max b1_cd_tmp blend
++
++ /b1_dx_cur b1_x b1_idx aget dup .undef eq { pop 150 } if def
++
++ 150 0 moveto
++ b1_cd b1_cd_tmp b1_buf blend
++
++ 150 b1_dx_cur 2 div sub 0 moveto
++ b1_cd b1_cd_tmp b1_buf blend
++
++ 150 b1_dx_cur sub 0 moveto
++ b1_cd b1_cd_tmp b1_buf blend
++
++
++ 20 350 moveto b1_buf restorescreen
++
++ false
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Init.
++%
++% ( array ) ==&gt; ( )
++%
++/b2.init {
++ pop
++
++ /b2_ok false def
++
++ /b2_text &quot;mageia.pcx&quot; readimage def
++ % /b2_spot &quot;spotlite.jpg&quot; readimage def
++
++ b2_text .undef eq { return } if
++
++ /b2_text_tmp b2_text imgsize 0 0 moveto savescreen def
++ % /b2_spot_tmp b2_spot imgsize 0 0 moveto savescreen def
++
++ 199 37 moveto
++ /b2_orig b2_text imgsize savescreen def
++ /b2_buf b2_text imgsize savescreen def
++
++ /b2_idx 0 def
++ /b2_start 10 def
++ /b2_steps 20 def
++
++ /b2_ok true def
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Cleanup.
++%
++% ( array ) ==&gt; ( )
++%
++/b2.done {
++ pop
++
++ b2_ok not { return } if
++
++ /b2_text xfree
++ /b2_text_tmp xfree
++
++ /b2_orig xfree
++ /b2_buf xfree
++
++ /b2_ok false def
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Run animation.
++%
++% Return true when finished.
++%
++% ( array ) ==&gt; ( true|false )
++%
++/b2.run {
++ pop
++
++ b2_ok not { true return } if
++
++ /b2_idx inc
++
++ b2_idx b2_start b2_steps add gt { true return } if
++
++ b2_idx b2_start lt { false return } if
++
++ b2_buf b2_orig over length memcpy
++
++ b2_text_tmp b2_text over length memcpy
++ 90 255 b2_idx b2_start sub 20 mul sub 90 max b2_text_tmp blend
++
++ % b2_spot_tmp b2_spot over length memcpy
++ % 0 255 b2_idx b2_start sub 20 mul sub 0 max b2_spot_tmp blend
++
++ % 0 0 moveto
++ % 0x80ff80 b2_spot_tmp b2_buf blend
++ 0 0 moveto
++ 0xffffff b2_text_tmp b2_buf blend
++
++ 199 37 moveto b2_buf restorescreen
++
++ false
++
++} def
++
++
+
+<a id="themetrunkmageiagfxbootthemetrunksrcbuttoninc">Added: theme/trunk/mageia-gfxboot-theme/trunk/src/button.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/src/button.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/src/button.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,116 @@
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% button handling
++%
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Button templates.
++%
++% [ x y width height label selected hotkey action ]
++%
++/button.ok { [ 0 0 90 25 txt_ok false 0 0 ] } def
++/button.cancel { [ 0 0 90 25 txt_cancel false keyEsc 0 ] } def
++/button.reboot { [ 0 0 90 25 txt_reboot false 0 0 ] } def
++/button.continue { [ 0 0 90 25 txt_continue false 0 0 ] } def
++% /button.eject { [ 0 0 90 25 &quot;Eject&quot; false 0 0 ] } def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Set default button.
++%
++% ( button ) =&gt; ( button )
++%
++/button.default {
++ dup 5 true put
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Make it _not_ the default button.
++%
++% ( button ) =&gt; ( button )
++%
++/button.notdefault {
++ dup 5 false put
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Set button position.
++%
++% ( button x y ) ==&gt; ( button )
++%
++/button.moveto {
++ rot dup 0 5 -1 roll put exch over 1 rot put
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Assign action to button.
++%
++% ( button action ) =&gt; ( button )
++%
++/button.setaction {
++ over 7 rot put
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Draw button.
++%
++% ( button ) ==&gt; ( )
++%
++/button.show {
++ /bt.x over 0 get def
++ /bt.y over 1 get def
++ /bt.width over 2 get def
++ /bt.height over 3 get def
++ /bt.text over 4 get def
++ /bt.default exch 5 get def
++
++ bt.text strsize
++ bt.height sub neg 2 div /bt.y.textofs exch def
++ bt.width sub neg 2 div /bt.x.textofs exch def
++
++ bt.x bt.y moveto
++ currentpoint currentpoint currentpoint
++
++ currentpoint bt.width bt.height window.current .color.bg get setcolor fillrect moveto
++
++ bt.default {
++ black black
++ } {
++ window.current .color.bg get dup
++ } ifelse
++ bt.width bt.height drawborder
++ moveto 1 1 rmoveto white black bt.width 2 sub bt.height 2 sub drawborder
++ moveto
++ % 2 2 rmoveto white black bt.width 4 sub bt.height 4 sub drawborder
++
++ window.current .color.fg get setcolor
++ moveto bt.x.textofs bt.y.textofs rmoveto bt.text show
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Press button.
++%
++% ( button ) ==&gt; ( )
++%
++/button.press {
++ /bt.x over 0 get def
++ /bt.y over 1 get def
++ /bt.width over 2 get def
++ /bt.height exch 3 get def
++
++ bt.x 3 add bt.y 3 add moveto
++ bt.width 7 sub bt.height 7 sub savescreen
++ 1 1 rmoveto dup restorescreen free
++
++ bt.x 1 add bt.y 1 add moveto black white bt.width 2 sub bt.height 2 sub drawborder
++ % bt.x 2 add bt.y 2 add moveto black white bt.width 4 sub bt.height 4 sub drawborder
++} def
++
++
+
+<a id="themetrunkmageiagfxbootthemetrunksrccommoninc">Added: theme/trunk/mageia-gfxboot-theme/trunk/src/common.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/src/common.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/src/common.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,1443 @@
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% Main part.
++%
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++
++% max command line length
++/cmdlinelength 512 def
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% Install source is 64bit?
++%
++% ( ) ==&gt; ( true|false )
++%
++/64bit_source {
++ % 64 bit dir exists and is != 32 bit dir
++ 64bit_boot_dir 32bit_boot_dir ne
++ 64bit_boot_dir .undef ne and
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% Are we a dvd?
++%
++% ( ) ==&gt; ( true|false )
++%
++/is_dvd {
++ % check only once
++ is_dvd.result .undef ne { is_dvd.result return } if
++
++ /is_dvd.result
++ mediatype m_cdrom eq {
++ 0x10 readsector
++ dup 0x50 add getdword exch free
++ 9 shr % iso size in MB
++ 720 gt % assume dvd if &gt; 720 MB
++ } {
++ false
++ } ifelse
++ def
++
++ is_dvd.result return
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% Install source is 32 &amp; 64bit?
++%
++% ( ) ==&gt; ( true|false )
++%
++/32+64bit_source {
++ 32bit_boot_dir .undef ne
++ % uncomment next line to automatically warn about 32bit software on 64bit machines, too
++ 64bit_boot_dir .undef ne and
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% Check if there are boot directories for 32 &amp; 64bit.
++%
++% Assumes 32bit to be in *i586* and 64bit in *x86_64*.
++%
++% ( ) ==&gt; ( )
++%
++/check_arch_boot_dir {
++ &quot;/i586/isolinux/isolinux.cfg&quot; filesize .undef ne {
++ /32bit_boot_dir &quot;/i586/isolinux/&quot; def
++ } if
++
++ &quot;/x86_64/isolinux/isolinux.cfg&quot; filesize .undef ne {
++ /64bit_boot_dir &quot;/x86_64/isolinux/&quot; def
++ } if
++
++ % font.normal setfont
++ % 0 400 moveto 32bit_boot_dir print
++ % 0 420 moveto 64bit_boot_dir print dtrace
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% input event handling
++%
++% ( key ) ==&gt; ( input_buffer menu_entry action )
++%
++% key
++% bit 0-7 ascii
++% bit 8-15 scan code
++% bit 16-32 status bits (ctrl, shift...)
++%
++% action
++% 0: ok, stay in input loop
++% 1: switch to text mode
++% &gt;=2: start linux
++%
++/KeyEvent {
++ % timeout
++
++ dup 0 eq { boot.ed.list buildcmdline 2 return } if
++
++ debug 4 ge {
++ % print keycode somewhere
++ -1 settransparentcolor
++ white setcolor
++ 500 0 moveto dup print &quot; &quot; print
++ } if
++
++ dup 0xff00 and 16 shl over 0xff and dup 0xe0 eq { pop 0 } if add /key exch def
++ 16 shr 0xffff and /keystat exch def
++
++ key 24 shr 0xff and dup 0xf0 ge exch 0xf4 le and { key serial.input return } if
++
++ key
++
++ config.keymap { mapkey } if
++
++ dup 0xffffff and dup { exch } if pop
++
++ debug 4 ge {
++ % print mapped key somewhere
++ -1 settransparentcolor
++ white setcolor
++ 500 20 moveto dup print &quot; &quot; print
++ } if
++
++ % some special keys
++ debug.input
++
++ % put key through normal input queue
++ window.input
++
++ pop
++
++ window.action actExit eq {
++ /window.action actNothing def
++ &quot;&quot; -1 1 return
++ } if
++
++ window.action actCloseInfo eq {
++ /window.action actNothing def
++ % cd change dialog
++ info.type 5 eq info.type 6 eq or {
++ % 'chdir' triggers fs metadata re-read
++ getcwd dup .undef ne { chdir } { pop } ifelse
++ } if
++
++ &quot;&quot; -1 3 return
++ } if
++
++ window.action actPassword eq {
++ /window.action actNothing def
++ password.dialog {
++ password.dialog .ed.buffer.list get 0 get
++ } { &quot;&quot; } ifelse
++ -1 3 return
++ } if
++
++ window.action actStart eq {
++ /window.action actNothing def
++ /load_error false def
++
++ syslinux {
++ menu.texts menu.entry 0 max menu.texts length 1 sub min get
++ dup &quot;mem.min[%s]&quot; mem.min sprintf
++ &quot;mem.msg[%s]&quot; mem.msg sprintf
++ } if
++
++ % some tricks to make it possible to review the complete command line
++ debug 3 ge xxx.cmdline .undef eq and {
++ /window.action actNothing def
++
++ boot.ed.list buildcmdline /xxx.menu exch def /xxx.cmdline exch def
++
++ /dia window.dialog def
++ dia .title &quot;Kernel command line&quot; put
++ dia .text &quot;&quot; put
++ % Must all be of same size!
++ dia .ed.list 1 array put
++ dia .ed.buffer.list [ xxx.cmdline ] put
++ dia .ed.text.list [ &quot;All options\n&quot; ] put
++
++ dia .ed.focus 0 put
++ dia .ed.width 600 put
++ dia .ed.font font.normal put
++ dia .buttons
++ [ button.ok button.default actStart button.setaction ]
++ put
++ dia window.init
++ dia window.show
++
++ &quot;&quot; -1 0
++ } {
++ sound.done
++
++ xxx.cmdline .undef ne {
++ xxx.cmdline xxx.menu
++ /xxx.cmdline .undef def
++ } {
++ boot.ed.list buildcmdline
++ } ifelse
++ 2 return
++ } ifelse
++ } if
++
++ window.action actRedraw eq {
++ /window.action actNothing def
++ main.redraw
++ } if
++
++ window.action actRedrawBootOptionsPanel eq {
++ /window.action actNothing def
++ menu.entry true MenuSelect
++ panel.show
++ } if
++
++ window.action actRedrawPanel eq {
++ /window.action actNothing def
++ panel.show
++ } if
++
++ window.action actInstallOK eq {
++ /window.action actNothing def
++ install.ok
++ } if
++
++ window.action actInstallCancel eq {
++ /window.action actNothing def
++ install.cancel
++ } if
++
++ &quot;&quot; -1 0
++} def
++
++
++/bc.cmd cmdlinelength string def
++/mem.min 128 string def
++/mem.msg 256 string def
++
++
++% ( edit_object_list ) ==&gt; ( cmdline menu_entry )
++%
++/buildcmdline {
++ menu.entry 0 lt menu.entry menu.texts length ge or { pop &quot;&quot; -1 return } if
++
++ [ over
++ {
++ dup .inp_show get {
++ build1cmdline strdup
++ } {
++ pop
++ } ifelse
++ } forall
++
++ % empty? -&gt; pass at least the first edit object
++ dup [ eq { over 0 get build1cmdline strdup } if
++
++ ]
++
++ dup boot.splitstr join bc.cmd over strcpy pop free
++ dup { free } forall free
++
++ pop bc.cmd
++
++ % we want the index of the entry that was selected in the list of *all*
++ % entries (including hidden ones)
++ menu.texts menu.entry get
++ 0 1 menu.texts.real length
++ {
++ dup menu.texts.real exch get
++ 2 index eq { exit } { pop } ifelse
++ } for
++ exch pop
++
++} def
++
++
++% ( edit_object ) ==&gt; ( cmdline )
++%
++% grub:
++% just return
++%
++% syslinux &amp; lilo:
++% add kernel name at start of command line
++%
++/build1cmdline {
++ syslinux {
++ % set new working directory
++ xmenu.bits .xm_current get 1 eq { 64bit_boot_dir } { 32bit_boot_dir } ifelse
++ dup .undef ne {
++ dup getcwd ne { chdir } { pop } ifelse
++ } {
++ pop
++ } ifelse
++ } if
++ % getcwd 0 300 moveto show
++
++ % lilo &amp; syslinux: prepend kernel/label name
++ grub {
++ bc.cmd 0 0 put
++ } {
++ menu.texts menu.entry get
++ bits.suffix xmenu.bits .xm_current get get dup {
++ exch &quot;%s%s &quot;
++ } {
++ pop &quot;%s &quot;
++ } ifelse
++ bc.cmd sprintf
++ } ifelse
++
++ xmenu.kernelopts {
++ kernelopts.options xmenu.kernelopts .xm_current get get dup &quot;&quot; ne {
++ &quot;%s &quot; bc.cmd dup length add sprintf
++ } { pop } ifelse
++ } if
++
++ /cmdline.hidden over dup length .inp_hidden ge { .inp_hidden get } { pop .undef } ifelse def
++
++ cmdline.hidden {
++ cmdline.hidden &quot;&quot; ne {
++ cmdline.hidden &quot;%s &quot; bc.cmd dup length add sprintf
++ } if
++ } if
++
++ syslinux {
++
++ config.lang {
++ config.lang &quot;en_US&quot; ne {
++ config.lang &quot;lang=%s &quot; bc.cmd dup length add sprintf
++ } if
++ } if
++
++ v_impaired 1 ge {
++ &quot;braille=1 &quot; bc.cmd dup length add sprintf
++ } if
++
++ v_impaired 2 ge {
++ &quot;linemode=1 &quot; bc.cmd dup length add sprintf
++ } if
++ } if
++
++ xmenu.dud {
++ dud.options xmenu.dud .xm_current get get dup &quot;&quot; ne {
++ &quot;%s &quot; bc.cmd dup length add sprintf
++ } { pop } ifelse
++ } if
++
++ xmenu.profile {
++ profile.options xmenu.profile .xm_current get get dup &quot;&quot; ne {
++ &quot;%s &quot; bc.cmd dup length add sprintf
++ } { pop } ifelse
++ } if
++
++ xmenu.install {
++ config.noinstallopt menu.texts menu.entry get iselement not {
++ install.option &quot;&quot; ne {
++ install.option &quot;%s &quot; bc.cmd dup length add sprintf
++ } if
++ } if
++ } if
++
++ % add user-supplied options
++
++ bc.cmd exch .inp_buf get strcat &quot; &quot; strcat pop
++
++ % remove all but last 'vga' &amp; 'initrd' options
++ [ &quot;vga&quot; &quot;initrd&quot; ] dup {
++ {
++ bc.cmd over bootopt.find2 .undef eq { pop exit } if
++ bc.cmd over bootopt.remove free
++ } loop
++ } forall free
++
++ syslinux {
++ % find out initrd sizes for kernel loading progress bar
++ bc.cmd &quot;initrd&quot; bootopt.find dup .undef ne {
++ &quot;initrd=&quot; length add
++ dup dup skipnonspaces
++ sub neg
++ string
++ exch strcpy
++ % it's a ',' separated list
++ dup ',' split exch free
++ dup
++ {
++ dup
++ % skip leading '+' or '-'
++ dup 0 get dup '+' eq exch '-' eq or { 1 add } if
++ filesize dup .undef ne {
++ sectorsize 1 sub add
++ sectorsize div /progress_extra exch progress_extra add def
++ } { pop } ifelse
++ free
++ } forall
++ free
++ } { pop } ifelse
++ } if
++
++ % remove final space
++ bc.cmd dropspaces
++
++ bc.cmd
++} def
++
++
++/iso.needscheck {
++ false
++
++ /i_tmp 0x10 readsector def
++ i_tmp {
++ i_tmp dup length 1 sub 0 put
++ /i_tmp2 i_tmp 0x373 add cvs def
++ i_tmp2 &quot;check=1&quot; strstr {
++ pop true
++ } if
++
++ i_tmp free
++ } if
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% get rid of some entries
++% the resulting arrrays are malloced
++% ( menu_entries_array cmdline_args_array ) == &gt; ( menu_entries_array cmdline_args_array )
++/filter_install_menu_items {
++ /tmp.args exch def
++ /tmp.texts exch def
++
++ /keep_it {
++ syslinux {
++ dup &quot;alt0&quot; eq
++ over &quot;alt1&quot; eq or
++ over &quot;vgalo&quot; eq or
++ over &quot;vgahi&quot; eq or
++ over &quot;text&quot; eq or
++ over &quot;noacpi&quot; eq or
++ over &quot;64&quot; strstr 0 gt or
++ } {
++ dup &quot;linux-nonfb&quot; eq
++ } ifelse
++ exch pop not
++ } def
++
++ 0
++ tmp.texts {
++ keep_it { 1 add } if
++ } forall
++ dup
++ array /menu.args exch def
++ array /menu.texts exch def
++
++ /tmp.i 0 def
++ /tmp.dest_i 0 def
++ tmp.texts {
++ keep_it {
++ menu.args tmp.dest_i tmp.args tmp.i get put
++ menu.texts tmp.dest_i tmp.texts tmp.i get put
++ /tmp.dest_i tmp.dest_i 1 add def
++ } if
++ /tmp.i tmp.i 1 add def
++ } forall
++
++ menu.texts menu.args
++} def
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% ( menu_entries_array cmdline_args_array defaultentry ) == &gt; ( )
++/MenuInit {
++ bsplash.done
++
++ colorbits 8 le {
++ 0 setcolor 0 0 moveto screen.size fillrect loadpalette
++ } if
++
++ init
++
++ /menu.entry -1 def
++
++ /menu.dentry exch def
++ /menu.args.real exch def
++ /menu.texts.real exch def
++
++ menu.texts.real menu.args.real filter_install_menu_items
++ /menu.args exch def
++ /menu.texts exch def
++
++ /mi_name &quot;mediacheck&quot; &quot;&quot; gfxconfig.set.str
++
++ mi_name {
++ /remove.mediachk false def
++ sectorsize 0x800 eq {
++ /remove.mediachk iso.needscheck not def
++ } if
++ } {
++ /remove.mediachk false def
++ } ifelse
++
++ remove.mediachk menu.dentry mi_name ne and {
++ /mi_tmp 0 def
++ menu.texts {
++ mi_name eq { exit } if
++ /mi_tmp inc
++ } forall
++
++ mi_tmp menu.texts length lt {
++ /mi_tmp2 0 def
++ /menu.texts
++ [
++ menu.texts { mi_tmp2 mi_tmp eq { pop } if /mi_tmp2 inc } forall
++ ]
++ def
++
++ /mi_tmp2 0 def
++ /menu.args
++ [
++ menu.args { mi_tmp2 mi_tmp eq { pop } if /mi_tmp2 inc } forall
++ ]
++ def
++ } if
++ } if
++
++ window.main
++ dup window.init
++ window.show
++
++ config.beep { 3000 50000 beep } if
++
++ config.talk {
++ load_talk_dialog
++ menu.texts menu.idx get menuitemmap speak
++ } if
++
++ syslinux {
++ 32+64bit_source not {
++ 64bit 64bit_source not or not {
++ notimeout 64bit_popup
++ } if
++
++ } if
++ } if
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% ( text errorcode ) ==&gt; ( )
++% errorcode:
++% 0 normal info
++% 1 fatal error
++% 2 missing file
++% 3 disk change
++% 4 disk change failed
++% 5 ask for cd change
++% 6 change cd back to original
++%
++
++/info.tmpmsg 256 string def
++
++/InfoBoxInit {
++ /info.type exch def
++ /info.msg exch def
++
++ window.dialog
++
++ info.type 1 eq {
++ dup .title.bg window.title.error.bg put
++ dup .title txt_error_title put
++ dup .buttons
++ [
++ button.reboot button.default actCloseInfo button.setaction
++ ] put
++ } {
++ dup .title txt_info_title put
++ dup .buttons
++ [
++ button.ok button.default actCloseInfo button.setaction
++% button.cancel button.notdefault actCloseInfo button.setaction
++ ] put
++ } ifelse
++
++ syslinux info.type 2 eq and {
++ dup .title &quot;I/O Error&quot; put
++ info.msg &quot;File not found: %s&quot; info.tmpmsg sprintf
++ /info.msg info.tmpmsg def
++ /load_error true def
++ } if
++
++ syslinux info.type 3 eq and {
++ dup .title txt_change_disk_title put
++ 0 getinfo 1 add txt_insert_disk info.tmpmsg sprintf
++ /info.msg info.tmpmsg def
++ } if
++
++ syslinux info.type 4 eq and {
++ dup .title txt_change_disk_title put
++ 1 getinfo 15 not and {
++ 0 getinfo 1 add
++ txt_insert_disk3 info.tmpmsg sprintf
++ } {
++ 0 getinfo 1 add 1 getinfo 1 add
++ txt_insert_disk2 info.tmpmsg sprintf
++ } ifelse
++ /info.msg info.tmpmsg def
++ } if
++
++ syslinux info.type 5 eq and {
++ dup .title txt_driver_update2 put
++ info.msg txt_insert_driver_cd info.tmpmsg sprintf
++ /info.msg info.tmpmsg def
++ } if
++
++ syslinux info.type 6 eq and {
++ dup .title txt_driver_update2 put
++ /info.msg txt_insert_mdv_cd def
++ } if
++
++ dup .text info.msg put
++
++ serial.line.status {
++ serial.infobox .undef eq {
++ /serial.infobox .xm_size array def
++ serial.infobox .xm_current 0 put
++ } if
++
++ serial.infobox .xm_title 2 index .title get put
++ serial.infobox .xm_text info.msg put
++ serial.infobox .xm_list [ info.type 1 eq { &quot;reboot&quot; } { &quot;ok&quot; } ifelse ] put
++
++ serial.infobox.setup
++ } if
++
++ dup window.init
++ window.show
++
++} def
++
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++
++% progress bar code
++
++
++% Show percentage of progress bar.
++%
++% ( percentage ) ==&gt; ( )
++%
++/progress.percent {
++ 0 max 100 min % so people don't ask silly questions...
++ &quot;100%&quot; strsize over neg progress.text.x add progress.text.y moveto
++ window.current .color.bg get setcolor
++ fillrect
++
++ &quot;%3u%%&quot; 8 string dup 4 1 roll sprintf
++
++ dup strsize pop neg progress.text.x add progress.text.y moveto
++ window.current .color.fg get setcolor
++
++ serial.line.status {
++ &quot;\x08\x08\x08\x08&quot; serial.show
++ dup serial.show
++ } if
++
++ dup show
++ free
++
++} def
++
++
++% Show n-th progress bar symbol.
++%
++% ( n ) ==&gt; ( )
++%
++/progress.sym.show {
++ /progress.sym.current exch def
++
++ progress.bar.x progress.bar.y moveto
++ progress.sym.width progress.sym.current 1 sub mul 1 add 1 rmoveto
++ progress.sym.width 2 sub
++ progress.bar.height 2 sub
++ progress.bar.color setcolor
++ fillrect
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% ( kernel_name ) ==&gt; ( )
++/ProgressInit {
++ /progress.kname exch def
++
++ boot.ed.list { edit.hidecursor } forall
++
++ /dia window.dialog def
++
++ dia .width.min 350 put
++ dia .position 10 put
++
++ dia .title txt_load_kernel_title put
++ dia .text
++ progress.kname &quot;memtest&quot; eq {
++ txt_load_memtest
++ } {
++ txt_load_kernel
++ } ifelse
++ put
++
++ dia window.init
++ dia window.show
++
++ % now add progress bar
++
++ dia .x get dia .y get moveto
++ dia .text.x get dia .text.y get 28 add rmoveto
++
++ /progress.bar.height 19 def
++ /progress.bar.width dia .width get 75 sub def
++
++ /progress.sym.width 10 def
++ /progress.bar.width
++ progress.bar.width progress.sym.width div
++ /progress.syms over def progress.sym.width mul
++ def
++
++ currentpoint over 1 sub over 2 sub moveto
++ black white progress.bar.width 2 add progress.bar.height 4 add drawborder
++
++ /progress.bar.y exch def
++ /progress.bar.x exch def
++
++ /progress.text.x progress.bar.x progress.bar.width 55 add add def
++ /progress.text.y progress.bar.y progress.bar.height fontheight sub 2 div add def
++
++ /progress.sym.current 0 def
++
++ 0 progress.percent
++
++ serial.line.status {
++ &quot;\n&quot; serial.show
++ dia .text get serial.show
++ &quot; 0%&quot; serial.show
++ } if
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% ( ) ==&gt; ( )
++/ProgressDone {
++ window.done
++
++ load_error {
++ /load_error false def
++ boot.ed.list boot.window .ed.focus get get edit.showcursor
++ } if
++
++ serial.line.status { &quot;\n\n&quot; serial.show } if
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% ( max current ) ==&gt; ( )
++%
++% Note: max is just kernel size (in sectors).
++%
++/ProgressUpdate {
++ exch progress_extra add exch
++
++ over over 100 mul exch 1 max div progress.percent
++
++ progress.syms mul progress.syms 2 div add exch 1 max div
++
++ 0 max progress.syms min
++
++ dup progress.sym.current gt {
++ progress.sym.current 1 add over 1 exch {
++ progress.sym.show
++ } for
++ } if
++ pop
++
++} def
++
++% initrd size (in sectors)
++/progress_extra 0 def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% ( time ) ==&gt; ( )
++% /Timer { pop } def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% ( label correct_password ) ==&gt; ( )
++%
++/PasswordInit {
++ /password.key exch def pop
++
++ /dia window.dialog def
++
++ /password.dialog dia def
++
++ dia .title txt_password_title put
++ dia .text &quot;&quot; put
++
++ % Must all be of same size!
++ dia .ed.list 1 array put
++ dia .ed.buffer.list [ 31 string ] put
++ dia .ed.text.list [ txt_password ] put
++
++ dia .ed.focus 0 put
++
++ dia .ed.width 200 put
++
++ dia .ed.font font.normal pwmode put
++
++ dia .buttons
++ [ button.ok button.default actPassword button.setaction ]
++ put
++
++ dia window.init
++ dia window.show
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% ( password ) ==&gt; ( error )
++%
++% error:
++% true password ok
++% false wrong password
++%
++% ****** FIXME: test result seems to be unused
++%
++/PasswordDone {
++
++ password.key eq
++} def
++
++
++/kernel_str 256 string def
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% ( text ) == &gt; ( new_text )
++/menuitemmap {
++ translate
++ config._2space {
++ /mmm.tmp xfree
++ strdup /mmm.tmp over def
++ dup length 0 gt {
++ 0 1 2 index length 1 sub {
++ over over get '_' eq { over exch ' ' put } { pop } ifelse
++ } for
++ } if
++ } if
++ dup &quot;memtest&quot; eq over &quot;memtest86&quot; eq or { pop txt_memtest return } if
++ dup &quot;firmware&quot; eq { pop txt_firmware return } if
++ syslinux {
++ dup &quot;live&quot; eq { pop txt_linux return } if
++ dup &quot;kde&quot; eq { pop &quot;LiveCD - KDE&quot; return } if
++ dup &quot;gnome&quot; eq { pop &quot;LiveCD - GNOME&quot; return } if
++ dup &quot;linux&quot; eq { pop txt_install return } if
++ dup &quot;failsafe&quot; eq { pop txt_safe_install return } if
++ dup &quot;noacpi&quot; eq { pop txt_noacpi_install return } if
++ dup &quot;noapic&quot; eq { pop txt_noapic_install return } if
++ dup &quot;nolapic&quot; eq { pop txt_nolapic_install return } if
++ dup &quot;apic&quot; eq { pop txt_apic return } if
++ dup &quot;manual&quot; eq { pop txt_manual_install return } if
++ dup &quot;repair&quot; eq { pop txt_repain_system return } if
++ dup &quot;rescue&quot; eq { pop txt_rescue return } if
++ dup &quot;hwcheck&quot; eq { pop &quot;Hardware Check&quot; return } if
++ dup &quot;harddisk&quot; eq { pop txt_boot_harddisk return } if
++ dup &quot;mediachk&quot; eq { pop txt_mediacheck return } if
++ dup &quot;mediacheck&quot; eq { pop txt_mediacheck return } if
++ dup &quot;restore&quot; eq { pop txt_restore return } if
++ dup &quot;hdt&quot; eq { pop txt_hdt return } if
++ } {
++ dup &quot;linux&quot; eq { pop txt_linux return } if
++ dup &quot;failsafe&quot; eq { pop txt_safe_linux return } if
++ dup &quot;windows&quot; eq { pop txt_windows return } if
++ dup &quot;2.6&quot; strstr 1 eq { txt_linux_kernel_version kernel_str sprintf
++ kernel_str return } if
++ } ifelse
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% ( color0 color1 width height ) ==&gt; ( )
++/drawborder {
++ currentpoint /db.y0 exch def /db.x0 exch def
++
++ /db.y1 exch 1 sub db.y0 add def
++ /db.x1 exch 1 sub db.x0 add def
++ /db.col1 exch def
++ /db.col0 exch def
++
++ db.x0 db.y1 moveto
++
++ db.col0 setcolor
++ db.x0 db.y0 lineto db.x1 db.y0 lineto
++
++ db.col1 setcolor
++ db.x1 db.y1 lineto db.x0 db.y1 lineto
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% ( color0 color1 color2 width height ) ==&gt; ( )
++% draw frame with shadow
++% color0: upper left, color1: lower right, color2: shadow
++/drawborder3 {
++ currentpoint /db.y0 exch def /db.x0 exch def
++
++ /db.y1 exch 1 sub db.y0 add def
++ /db.x1 exch 1 sub db.x0 add def
++ /db.col2 exch def
++ /db.col1 exch def
++ /db.col0 exch def
++
++ db.x0 db.y1 moveto
++
++ db.col0 setcolor
++ db.x0 db.y0 lineto db.x1 db.y0 lineto
++
++ db.col1 setcolor
++ db.x1 db.y1 lineto db.x0 db.y1 lineto
++
++ db.col2 -1 ne {
++ db.col2 setcolor
++ 1 1 rmoveto
++ db.x1 1 add db.y1 1 add lineto
++ db.x1 1 add db.y0 1 add lineto
++ } if
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% ( color0 color1 width height ) ==&gt; ( )
++/drawborder4 {
++ 3 index 4 1 roll rot dup 3 index 3 index
++ currentpoint 6 2 roll
++ 1 1 rmoveto drawborder
++ moveto drawborder
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% center text
++% ( text width height ) ==&gt; ( )
++/centertext {
++ 3 -1 roll strsize
++ 4 2 roll
++ 4 1 roll exch 4 1 roll sub 2 div neg 3 1 roll sub 2 div neg
++} def
++
++
++% ( img ) =&gt; ( width heigh )
++/imgsize {
++ dup .undef eq {
++ pop 0 0
++ } {
++ getdword dup
++ 0xffff and exch 16 shr
++ } ifelse
++} def
++
++
++% ( pic pic_a -- )
++/showlogo {
++ /tmp.sc over imgsize savescreen def
++
++ currentpoint 4 2 roll
++ 0 0 moveto tmp.sc blend
++ moveto tmp.sc restorescreen
++
++ tmp.sc free
++} def
++
++
++% ( file_name ) ==&gt; ( image )
++/readimage {
++ findfile dup .undef ne {
++ dup setimage 0 0 image.size unpackimage exch free
++ } if
++} def
++
++
++/init {
++ 0 0 moveto currentpoint clip.size image
++
++ % set default language
++ &quot;lang&quot; findfile dup {
++ /tmp over length 1 add 2 max string def
++ tmp exch {
++ dup ' ' eq over '\n' eq or { pop pop exit } if
++ over exch 0 exch put
++ 1 add
++ } forall
++ tmp dup setlang pop getkeymapfromlocale setkeymap
++ } {
++ pop
++ &quot;en_US&quot; dup setlang pop getkeymapfromlocale setkeymap
++ } ifelse
++
++ keymap.default &quot;&quot; ne { keymap.default setkeymap } if
++
++ font.large setfont
++
++ /menu.text.xofs 10 def
++ /menu.text.yofs 2 def
++ /menu.item.height fontheight dup ptheme { 3 } { 2 } ifelse div add def
++ /menu.bar.height fontheight menu.text.yofs dup add add def
++
++ font.normal setfont
++
++ /menu.bar.width menu.bar.min.width def
++
++ % false: no boot options line initially
++ /boot.show false def
++
++} def
++
++
++/chksum {
++ 0 exch
++ { add } forall
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Some special debug &amp; test keys.
++%
++% ( key_in ) ==&gt; ( key_out )
++%
++/debug.input {
++ dup keyShiftF4 eq debug 3 ge and {
++ currentcolor black setcolor
++ currentpoint 0 0 moveto
++ 64 string biosmem &quot;mem = %u &quot; 2 index sprintf dup show free
++ moveto setcolor
++ } if
++
++ dup keyShiftF3 eq syslinux and debug 3 ge and {
++ currentcolor black setcolor
++ currentpoint 0 0 moveto
++ &quot;eject &quot; print bootdrive eject print
++ moveto setcolor
++ } if
++
++ dup keyShiftF5 eq syslinux and debug 3 ge and {
++ currentcolor black setcolor
++ currentpoint 100 0 moveto
++ bootdrive print
++ moveto setcolor
++ } if
++
++ dup keyShiftF8 eq debug 3 ge and {
++ currentcolor debug 1 and { white } { black } ifelse setcolor
++
++ currentpoint 300 0 moveto
++ 0 memsize print &quot;/&quot; print print &quot; &quot; print
++ moveto
++
++ currentpoint 300 20 moveto
++ 1 memsize print &quot;/&quot; print print &quot; &quot; print
++ moveto
++
++ currentpoint 300 40 moveto
++ 2 memsize print &quot;/&quot; print print &quot; &quot; print
++ moveto
++
++ currentpoint 300 60 moveto
++ 3 memsize print &quot;/&quot; print print &quot; &quot; print
++ moveto
++
++ currentpoint 300 80 moveto
++ 4 memsize print &quot;/&quot; print print &quot; &quot; print
++ moveto
++
++ setcolor
++ } if
++
++ dup keyShiftF9 eq debug 3 ge and {
++ dumpmem
++ } if
++
++ dup keyShiftF10 eq {
++ /debug debug 1 add def
++ } if
++
++ dup keyShiftF4 eq {
++ % sound test XXXXXXXX
++
++ sound.done
++
++ } if
++
++ dup keyF11 eq debug 1 ge and {
++
++ /dit {
++ dup 0xff and rand 0xff and gt { 0xff add } if
++ 8 shr
++ } def
++
++ /c13.r rand 0x7f00 and def
++ /c02_13.r rand 0x7f00 and c13.r sub def
++ /c23.r rand 0x7f00 and def
++ /c01_23.r rand 0x7f00 and c23.r sub def
++ /c13.g rand 0x7f00 and def
++ /c02_13.g rand 0x7f00 and c13.g sub def
++ /c23.g rand 0x7f00 and def
++ /c01_23.g rand 0x7f00 and c23.g sub def
++ /c13.b rand 0x7f00 and def
++ /c02_13.b rand 0x7f00 and c13.b sub def
++ /c23.b rand 0x7f00 and def
++ /c01_23.b rand 0x7f00 and c23.b sub def
++
++ screen.size /h exch def /w exch def
++
++ 0 1 screen.size exch pop {
++ 0 1 screen.size pop {
++ over moveto
++
++ currentpoint c01_23.r mul h div exch c02_13.r mul w div add c13.r add c23.r add
++ dit 0 max 0xff min 16 shl
++ currentpoint c01_23.g mul h div exch c02_13.g mul w div add c13.g add c23.g add
++ dit 0 max 0xff min 8 shl
++ currentpoint c01_23.b mul h div exch c02_13.b mul w div add c13.b add c23.b add
++ dit 0 max 0xff min add add
++
++ setcolor putpixel
++ } for
++ pop
++ } for
++
++ pop 0
++ } if
++
++ dup keyF12 eq debug 3 ge and {
++ % mouse support testing
++
++ 1 keepmode
++
++ /mouse xxx def
++ 0xc00000 setcolor
++ mouse .undef eq {
++ 700 580 moveto &quot;no mouse&quot; show
++ } {
++ {
++ mouse getdword 16 shl 16 shr screen.size pop 2 div add
++ mouse getdword 16 shr neg screen.size exch pop 2 div add
++ moveto 4 4 fillrect
++
++ mouse 4 add getdword 7 and
++ dup 1 and { 0xc00000 setcolor } if
++ dup 2 and { 0x0000a0 setcolor } if
++ dup 4 and { 0x009000 setcolor } if
++
++ 3 and 3 eq { exit } if
++
++ } loop
++ } ifelse
++ pop 0
++ } if
++
++ dup keyShiftF12 eq {
++ /transp transp 0x10 add 0x100 min def
++ pop 0
++ } if
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Show exit popup.
++%
++% ( ) ==&gt; ( )
++%
++/exit_popup {
++ window.dialog
++
++ dup .title txt_exit_title put
++ dup .text txt_exit_dialog put
++ dup .buttons [
++ button.ok button.default actExit button.setaction
++ button.cancel button.notdefault actNothing button.setaction
++ config.rtl { exch } if
++ ] put
++ dup window.init
++ window.show
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Show help window.
++%
++% ( ) ==&gt; ( )
++%
++/show_help {
++ window.help
++
++ dup window.init
++ window.show
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Show dvd popup.
++%
++% ( ) ==&gt; ( )
++%
++/dvd_popup {
++ window.dialog
++
++ dup .title txt_dvd_warning_title put
++ dup .text txt_dvd_warning2 put
++ dup .buttons [
++% button.eject button.default actEject actNoClose or button.setaction
++ button.continue button.default actNothing button.setaction
++ ] put
++ dup window.init
++ window.show
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Warn that we are about to install 32bit software on a 64bit system.
++%
++% ( ) ==&gt; ( )
++%
++/32bit_popup {
++ window.dialog
++
++ dup .title txt_warning put
++ dup .text txt_32bit_popup put
++ dup .buttons [
++ button.continue button.default actNothing button.setaction
++ ] put
++ dup window.init
++ window.show
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Warn that we are about to install 64bit software on a 32bit system.
++%
++% ( ) ==&gt; ( )
++%
++/64bit_popup {
++ window.dialog
++
++ dup .title txt_wrong_arch put
++ dup .text txt_64bit_popup put
++ dup .buttons [
++ button.reboot button.default actReboot actNoClose or button.setaction
++ ] put
++ dup window.init
++ window.show
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Show &quot;power off&quot; popup.
++%
++% ( ) ==&gt; ( )
++%
++/power_off {
++ window.dialog
++
++ dup .title txt_power_off_title put
++ dup .text txt_power_off put
++ dup .buttons [
++ button.ok button.notdefault actPowerOff actNoClose or button.setaction
++ button.cancel button.default actNothing button.setaction
++ config.rtl { exch } if
++ ] put
++ dup window.init
++ window.show
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Set global config variables.
++%
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% For monitor tests: fake DDC info.
++%
++
++% &quot;ddc&quot; findfile test1
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% First, figure out video mode.
++%
++
++/config.screen.width /config.screen.height &quot;screen.size&quot; 800 600 gfxconfig.set.int2
++
++/screen.fallback false def
++
++config.screen.width config.screen.height 32 findmode setmode not {
++ config.screen.width config.screen.height 16 findmode setmode not {
++ /screen.fallback true def
++ 640 480 16 findmode setmode not {
++ 640 480 32 findmode setmode not {
++ false .end
++ } if
++ } if
++ } if
++} if
++
++% prepend fallback section to layout section list
++screen.fallback {
++ /gfxconfig.layout [ &quot;640x480&quot; gfxconfig.layout { } forall ] gfxconfig.layout free def
++} if
++
++
++/ptheme false def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Then, read the other config variables (might depend on video mode).
++%
++
++/config.welcome &quot;welcome&quot; 0 gfxconfig.set.int
++/config.beep &quot;beep&quot; false gfxconfig.set.bool
++/config.volume &quot;volume&quot; 70 gfxconfig.set.int
++/config.talk &quot;talk&quot; false gfxconfig.set.bool
++/config.livecd &quot;livecd&quot; false gfxconfig.set.bool
++/config._2space &quot;_2space&quot; false gfxconfig.set.bool
++/transp &quot;menu.transparency&quot; 0x20 gfxconfig.set.int
++/config.screen.width
++/config.screen.height &quot;screen.size&quot; 800 600 gfxconfig.set.int2
++/config.background &quot;background&quot; &quot;back.jpg&quot; gfxconfig.set.str
++/config.font.normal &quot;font.normal&quot; &quot;16x16.fnt&quot; gfxconfig.set.str
++/config.font.large &quot;font.large&quot; &quot;16x16.fnt&quot; gfxconfig.set.str
++/progress.bar.color &quot;progress.bar.color&quot; white gfxconfig.set.int
++/xmenu.normal.bg &quot;menu.normal.bg&quot; black gfxconfig.set.int
++/xmenu.normal.fg &quot;menu.normal.fg&quot; white gfxconfig.set.int
++/xmenu.selected.bg &quot;menu.selected.bg&quot; white gfxconfig.set.int
++/xmenu.selected.fg &quot;menu.selected.fg&quot; black gfxconfig.set.int
++/window.color.bg &quot;window.bg&quot; white gfxconfig.set.int
++/window.color.fg &quot;window.fg&quot; black gfxconfig.set.int
++/window.title.bg &quot;window.title.bg&quot; black gfxconfig.set.int
++/window.title.fg &quot;window.title.fg&quot; white gfxconfig.set.int
++/window.title.error.bg &quot;window.title.error.bg&quot; 0xc00000 gfxconfig.set.int
++/help.link.fg &quot;help.link.fg&quot; 0x0000a0 gfxconfig.set.int
++/help.link.selected.fg &quot;help.link.selected.fg&quot; white gfxconfig.set.int
++/help.link.selected.bg &quot;help.link.selected.bg&quot; 0x0000a0 gfxconfig.set.int
++/help.highlight.fg &quot;help.highlight.fg&quot; 0x009000 gfxconfig.set.int
++/menu.text.normal &quot;mainmenu.normal.fg&quot; white gfxconfig.set.int
++/menu.text.select &quot;mainmenu.selected.fg&quot; black gfxconfig.set.int
++/boot.text.options &quot;bootopt.label.fg&quot; white gfxconfig.set.int
++/boot.text.normal &quot;bootopt.text.fg&quot; white gfxconfig.set.int
++/menu.bar.color &quot;mainmenu.bar.color&quot; white gfxconfig.set.int
++/menu.bar.min.width &quot;mainmenu.bar.minwidth&quot; 300 gfxconfig.set.int
++/menu.bar.transparency &quot;mainmenu.bar.transparency&quot; 70 gfxconfig.set.int
++/menu.start.x
++/menu.start.y &quot;mainmenu.pos&quot; 253 170 gfxconfig.set.int2
++/menu.max.entries &quot;mainmenu.entries&quot; 8 gfxconfig.set.int
++/boot.pos.x
++/boot.pos.y &quot;bootopt.pos&quot; 263 480 gfxconfig.set.int2
++/panel.normal.fg &quot;panel.normal.fg&quot; white gfxconfig.set.int
++/panel.title.fg &quot;panel.title.fg&quot; white gfxconfig.set.int
++/panel.f-key.fg &quot;panel.f-key.fg&quot; black gfxconfig.set.int
++/keymap.submenu &quot;keymap.submenu&quot; false gfxconfig.set.bool
++/keymap.mainmenu &quot;keymap.mainmenu&quot; false gfxconfig.set.bool
++/keymap.default &quot;keymap&quot; &quot;&quot; gfxconfig.set.str
++
++/dud.default &quot;dud&quot; &quot;&quot; gfxconfig.set.str
++
++/serial.line0 &quot;serial.line0&quot; [ ] gfxconfig.set.array_str
++/serial.line1 &quot;serial.line1&quot; [ ] gfxconfig.set.array_str
++/serial.line2 &quot;serial.line2&quot; [ ] gfxconfig.set.array_str
++/serial.line3 &quot;serial.line3&quot; [ ] gfxconfig.set.array_str
++
++/serial.lines [
++ serial.line0 serial.line1 serial.line2 serial.line3
++] def
++
++% Array of menu entries with no boot option input field.
++/config.nobootoptions &quot;nobootoptions&quot; [ ] gfxconfig.set.array_str
++
++% Array of menu entries which should not get an 'install' option appended.
++/config.noinstallopt &quot;noinstallopt&quot; [ ] gfxconfig.set.array_str
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++
++% drawing area size
++/clip.size { screen.size } def
++
++% set background image
++config.background findfile setimage
++
++% get font(s)
++/font.normal config.font.normal findfile def
++/font.large
++ % don't load it twice
++ config.font.normal config.font.large eq {
++ font.normal
++ } {
++ config.font.large findfile
++ } ifelse
++def
++
++% default kroet direction (idle task)
++/kroete.dir 0 def
++
++% default debug level
++/debug 0 def
++
++% no specials for visual impaired people
++/v_impaired 0 def
++
++% show welcome animation?
++ptheme
++screen.fallback or
++CapsLock or
++config.welcome 0 eq or
++{
++ /bsplash.done { } def
++} {
++ bsplash.show
++} ifelse
++
++% check for bi-arch config
++check_arch_boot_dir
++
+
+<a id="themetrunkmageiagfxbootthemetrunksrcdia_aboutinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/src/dia_about.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/src/dia_about.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/src/dia_about.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,75 @@
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% Panel 'about' entry.
++%
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Show help window.
++%
++% ( ) =&gt; ( )
++%
++/panel.about {
++ panel 0 panel.entry.help put
++ about.popup
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Return width of 'about' entry.
++%
++% ( ) =&gt; ( width )
++%
++/panel.about.width {
++ &quot;About&quot; strsize pop
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Redraw panel entry.
++%
++% ( panel ) =&gt; ( )
++%
++/panel.about.update {
++ panel.text.moveto
++ &quot;About&quot; show
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Show 'about' box.
++%
++% ( ) ==&gt; ( )
++%
++/about.popup {
++ window.dialog
++
++ dup .title &quot;About&quot; put
++ dup .text about.msg put
++ dup .buttons [
++ button.ok button.default actRedraw button.setaction
++ ] put
++ dup window.init
++ window.show
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Return 'about' text, if any.
++%
++% ( -- obj1 )
++%
++% obj1: string with message or .undef
++%
++/about.msg {
++
++ /about.msg
++ &quot;about.txt&quot; findfile dup .undef ne {
++ dup length string dup cvp rot dup length memcpy
++ } if
++ def
++
++ about.msg
++
++} def
++
+
+<a id="themetrunkmageiagfxbootthemetrunksrcdia_bitsinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/src/dia_bits.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/src/dia_bits.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/src/dia_bits.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,96 @@
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% 32/64 bit install selection dialog.
++%
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Some global vars.
++%
++/bits.default 0 def
++
++/bits.suffix [
++ .undef
++ &quot;64&quot;
++] def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Build menu list.
++%
++% ( ) ==&gt; ( )
++%
++/bits.init {
++ /xmenu.bits .xm_size array def
++
++ /xmenu xmenu.bits def
++
++ xmenu .xm_list [ &quot;x86&quot; ] put
++
++ 32+64bit_source {
++ 64bit {
++ /bits.default 1 def
++ xmenu .xm_list [ &quot;x86&quot; &quot;x86-64&quot; ] put
++ } if
++ } {
++ bits.suffix 1 .undef put
++ } ifelse
++
++ xmenu .xm_current bits.default put
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Update bit selection menu.
++%
++% ( ) ==&gt; ( )
++%
++/bits.update {
++ /xmenu xmenu.bits def
++
++ /window.action actRedrawPanel def
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Show bit selection menu.
++%
++% ( ) =&gt; ( )
++%
++/panel.bits {
++ &quot;bits&quot; help.setcontext
++
++ window.xmenu
++ dup .xmenu xmenu.bits put
++ dup .xmenu.update /bits.update put
++ dup window.init
++ window.show
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Return width of panel entry.
++%
++% ( ) =&gt; ( width )
++%
++/panel.bits.width {
++ /xmenu xmenu.bits def
++
++ pmenu.width
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Redraw panel entry.
++%
++% ( panel ) =&gt; ( )
++%
++/panel.bits.update {
++ /xmenu xmenu.bits def
++
++ pmenu.panel.update
++} def
++
++
+
+<a id="themetrunkmageiagfxbootthemetrunksrcdia_dudinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/src/dia_dud.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/src/dia_dud.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/src/dia_dud.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,129 @@
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% Driver update dialog.
++%
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Some global vars.
++%
++/.dud_yes 0 def
++/.dud_no 1 def
++
++/dud.last .dud_no def
++
++/dud.options [
++ &quot;updatemodules&quot;
++ &quot;&quot;
++] def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Build driver update menu.
++%
++% ( ) ==&gt; ( )
++%
++/dud.init {
++ /xmenu.dud .xm_size array def
++
++ /xmenu xmenu.dud def
++
++ dud.read.config
++
++ xmenu .xm_current dud.last put
++ xmenu .xm_list [ /txt_yes /txt_no ] put
++
++ xmenu .xm_title /txt_driver_update put
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Update driver update mode.
++%
++% ( ) ==&gt; ( )
++%
++/dud.update {
++ /xmenu xmenu.dud def
++
++ /window.action actRedrawPanel def
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Show driver update menu.
++%
++% ( ) =&gt; ( )
++%
++/panel.dud {
++ &quot;driverupdate&quot; help.setcontext
++
++ window.xmenu
++ dup .xmenu xmenu.dud put
++ dup .xmenu.update /dud.update put
++ dup window.init
++ window.show
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Return width of panel entry.
++%
++% ( ) =&gt; ( width )
++%
++/panel.dud.width {
++ /xmenu xmenu.dud def
++
++ pmenu.width
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Redraw panel entry.
++%
++% ( panel ) =&gt; ( )
++%
++/panel.dud.update {
++ /xmenu xmenu.dud def
++
++ pmenu.panel.update
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++/dud.dialog {
++
++ /dia window.dialog def
++
++ dia .text &quot;&quot; put
++
++ xmenu .xm_current get
++
++ pop
++
++ dia .ed.focus 0 put
++ dia .ed.width 300 put
++
++ dia .buttons [
++ button.ok button.default actNothing button.setaction
++ button.cancel button.notdefault actNothing button.setaction
++ config.rtl { exch } if
++ ] put
++
++ dia window.init
++ dia window.show
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Read default values.
++%
++% ( -- )
++%
++/dud.read.config {
++ dud.default
++ dup &quot;yes&quot; eq { /dud.last .dud_yes def } if
++ dup &quot;no&quot; eq { /dud.last .dud_no def } if
++ pop
++} def
+
+<a id="themetrunkmageiagfxbootthemetrunksrcdia_helpinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/src/dia_help.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/src/dia_help.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/src/dia_help.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,46 @@
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% Panel help entry.
++%
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Show help window.
++%
++% ( ) =&gt; ( )
++%
++/panel.help {
++ help.context &quot;opt&quot; eq {
++ findbootoption
++ help.mapcontext
++ dup help.findpage
++ &quot;&quot; eq { pop } { help.setcontext } ifelse
++ } if
++ show_help
++
++ config.talk { txt_help speak } if
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Return width of help entry.
++%
++% ( ) =&gt; ( width )
++%
++/panel.help.width {
++ txt_help strsize pop
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Redraw panel entry.
++%
++% ( panel ) =&gt; ( )
++%
++/panel.help.update {
++ panel.text.moveto
++
++ txt_help show.rtl
++} def
++
++
+
+<a id="themetrunkmageiagfxbootthemetrunksrcdia_installinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/src/dia_install.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/src/dia_install.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/src/dia_install.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,137 @@
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% Install mode selection dialog.
++%
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Some global vars.
++%
++/install.option 255 string def
++
++% install types
++/.inst_cdrom 0 def
++/.inst_other 1 def
++
++/install.last .inst_cdrom def
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Build install mode list.
++%
++% ( ) ==&gt; ( )
++%
++/install.init {
++ /xmenu.install .xm_size array def
++
++ /xmenu xmenu.install def
++
++ xmenu .xm_current install.last put
++
++ % see install types (.inst_*)
++ xmenu .xm_list [ is_dvd { &quot;DVD&quot; } { &quot;CD-ROM&quot; } ifelse &quot;Other&quot; ] put
++
++ install.set.install.option
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Update install mode.
++%
++% ( ) ==&gt; ( )
++%
++/install.update {
++ /xmenu xmenu.install def
++
++ /install.last xmenu .xm_current get def
++
++ install.set.install.option
++
++ /window.action actRedrawPanel def
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Show install menu.
++%
++% ( ) =&gt; ( )
++%
++/panel.install {
++ &quot;install_src&quot; help.setcontext
++
++ window.xmenu
++ dup .xmenu xmenu.install put
++ dup .xmenu.update /install.update put
++ dup window.init
++ window.show
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Return width of panel entry.
++%
++% ( ) =&gt; ( width )
++%
++/panel.install.width {
++ /xmenu xmenu.install def
++
++ pmenu.width
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Redraw panel entry.
++%
++% ( panel ) =&gt; ( )
++%
++/panel.install.update {
++ /xmenu xmenu.install def
++
++ pmenu.panel.update
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++
++
++
++/install.ok {
++ /xmenu xmenu.install def
++
++ window.done
++
++ /install.last xmenu .xm_current get def
++
++ /window.action actRedrawPanel def
++
++ pmenu.update
++
++} def
++
++
++/install.cancel {
++ /xmenu xmenu.install def
++
++ xmenu .xm_current install.last put
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Set 'install=' boot option.
++%
++% ( -- )
++%
++/install.set.install.option {
++ xmenu .xm_current get
++
++ % default: .inst_other
++ install.option &quot;&quot; strcpy pop
++
++ dup .inst_cdrom eq {
++ install.option &quot;automatic=method:cdrom&quot; strcpy pop
++ } if
++
++ pop
++} def
+
+<a id="themetrunkmageiagfxbootthemetrunksrcdia_kerneloptsinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/src/dia_kernelopts.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/src/dia_kernelopts.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/src/dia_kernelopts.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,98 @@
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% Kernel options dialog.
++%
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Some global vars.
++%
++/kernelopts.default 0 def
++
++/kernelopts.options [
++ &quot;&quot;
++ &quot;apm=off acpi=off mce=off barrier=off ide=nodma idewait=50 i8042.nomux psmouse.proto=bare irqpoll pci=nommconf&quot;
++ &quot;acpi=off&quot;
++ &quot;nolapic&quot;
++] def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Build kernelopts list.
++%
++% ( ) ==&gt; ( )
++%
++/kernelopts.init {
++ /xmenu.kernelopts .xm_size array def
++
++ /xmenu xmenu.kernelopts def
++
++ xmenu .xm_current kernelopts.default put
++ xmenu .xm_list [
++ /txt_kernel_default
++ /txt_kernel_safe
++ /txt_kernel_noacpi
++ /txt_kernel_nolapic
++ ] put
++ xmenu .xm_title /txt_kernel put
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Update kernelopts mode.
++%
++% ( ) ==&gt; ( )
++%
++/kernelopts.update {
++ /xmenu xmenu.kernelopts def
++
++ /window.action actRedrawBootOptionsPanel def
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Show kernelopts menu.
++%
++% ( ) =&gt; ( )
++%
++/panel.kernelopts {
++ &quot;main&quot; help.setcontext
++
++ boot.show not {
++ /boot.show true def
++ } if
++
++ window.xmenu
++ dup .xmenu xmenu.kernelopts put
++ dup .xmenu.update /kernelopts.update put
++ dup window.init
++ window.show
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Return width of panel entry.
++%
++% ( ) =&gt; ( width )
++%
++/panel.kernelopts.width {
++ /xmenu xmenu.kernelopts def
++
++ pmenu.width
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Redraw panel entry.
++%
++% ( panel ) =&gt; ( )
++%
++/panel.kernelopts.update {
++ /xmenu xmenu.kernelopts def
++
++ pmenu.panel.update
++} def
++
++
+
+<a id="themetrunkmageiagfxbootthemetrunksrcdia_keymapinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/src/dia_keymap.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/src/dia_keymap.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/src/dia_keymap.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,105 @@
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% keyboard map selection dialog.
++%
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Some global vars.
++%
++
++/keymap.setdefault {
++ xmenu.keymap .xm_current
++
++ 0
++ keymaps {
++ .km.id get config.keymap.id eq { exit } if
++ 1 add
++ } forall
++
++ dup keymaps length ge { pop 0 } if
++
++ put
++
++} def
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Build menu list.
++%
++% ( ) ==&gt; ( )
++%
++/keymap.init {
++ /xmenu.keymap .xm_size array def
++
++ /xmenu xmenu.keymap def
++
++ xmenu .xm_list [
++ keymaps { .km.name get } forall
++ ] put
++
++ xmenu .xm_title &quot;Keyboard&quot; put
++
++ keymap.setdefault
++
++ % just once (see lang.init)
++ /keymap.init { } def
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Update keybaord selection menu.
++%
++% ( ) ==&gt; ( )
++%
++/keymap.update {
++ /xmenu xmenu.keymap def
++
++ keymaps xmenu .xm_current get get .km.id get setkeymap
++
++ /window.action actRedrawPanel def
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Show keymap selection menu.
++%
++% ( ) =&gt; ( )
++%
++/panel.keymap {
++ &quot;keymap&quot; help.setcontext
++
++ keymap.setdefault
++
++ window.xmenu
++ dup .xmenu xmenu.keymap put
++ dup .xmenu.update /keymap.update put
++ dup window.init
++ window.show
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Return width of panel entry.
++%
++% ( ) =&gt; ( width )
++%
++/panel.keymap.width {
++ /xmenu xmenu.keymap def
++
++ pmenu.width
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Redraw panel entry.
++%
++% ( panel ) =&gt; ( )
++%
++/panel.keymap.update {
++ /xmenu xmenu.keymap def
++
++ pmenu.panel.update
++} def
++
++
+
+<a id="themetrunkmageiagfxbootthemetrunksrcdia_langinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/src/dia_lang.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/src/dia_lang.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/src/dia_lang.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,311 @@
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% Language selection dialog.
++%
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Some global vars.
++%
++
++% fallback if there is no &quot;langs&quot;
++/lang.items [ &quot;en_US&quot; ] def
++/lang.names [ &quot;English (US)&quot; ] def
++
++/.la.locale 0 def
++/.la.keymap 1 def
++/.la.rtl 2 def
++/.la.name 3 def
++
++/lang.defaultnames [
++ [ &quot;af_ZA&quot; &quot;en_US&quot; false &quot;Afrikaans&quot; ] % Afrikaans
++% [ &quot;ar_EG&quot; &quot;en_US&quot; true &quot;\u064a\u0628\u0631\u0639&quot; ] % Arabic
++ [ &quot;ar_EG&quot; &quot;en_US&quot; true &quot;\ufef2\ufe91\ufeae\ufecb&quot; ] % Arabic
++ [ &quot;bg_BG&quot; &quot;en_US&quot; false &quot;Български&quot; ] % Bulgarian
++ [ &quot;bn_BD&quot; &quot;en_US&quot; false &quot;\u09ac\u09be\u0982\u09b2\u09be&quot; ] % Bengali
++ [ &quot;bs_BA&quot; &quot;en_US&quot; false &quot;Bosanski&quot; ] % Bosnian
++ [ &quot;ca_ES&quot; &quot;en_US&quot; false &quot;Català&quot; ] % Catalan
++ [ &quot;cs_CZ&quot; &quot;czech&quot; false &quot;Čeština&quot; ] % Czech
++ [ &quot;cy_GB&quot; &quot;en_US&quot; false &quot;Cymraeg&quot; ] % Welsh
++ [ &quot;da_DK&quot; &quot;danish&quot; false &quot;Dansk&quot; ] % Danish
++ [ &quot;de_DE&quot; &quot;german&quot; false &quot;Deutsch&quot; ] % German
++ [ &quot;el_GR&quot; &quot;greek&quot; false &quot;Ελληνικά&quot; ] % Greek
++ [ &quot;en_GB&quot; &quot;en_US&quot; false &quot;English (UK)&quot; ] % English
++ [ &quot;en_US&quot; &quot;en_US&quot; false &quot;English (US)&quot; ] % English
++ [ &quot;es_ES&quot; &quot;spanish&quot; false &quot;Español&quot; ] % Spanish
++ [ &quot;et_EE&quot; &quot;estonian&quot; false &quot;Eesti&quot; ] % Estonian
++ [ &quot;fa_IR&quot; &quot;en_US&quot; true &quot;\ufbfd\ufeb4\u0631\ufe8e\ufed3&quot; ] % Farsi
++ [ &quot;fi_FI&quot; &quot;en_US&quot; false &quot;Suomi&quot; ] % Finnish
++ [ &quot;fr_FR&quot; &quot;french&quot; false &quot;Français&quot; ] % French
++ [ &quot;gl_ES&quot; &quot;en_US&quot; false &quot;Galego&quot; ] % Galician
++ [ &quot;ka_GE&quot; &quot;en_US&quot; false &quot;ქართული&quot; ] % Kartuli
++ [ &quot;gu_IN&quot; &quot;en_US&quot; false &quot;\u0a97\u0ac1\u0a9c\u0ab0\u0abe\u0aa4\u0ac0&quot; ] % Gujarati
++ [ &quot;he_IL&quot; &quot;en_US&quot; false &quot;תירבע&quot; ] % Hebrew
++% [ &quot;hi_IN&quot; &quot;en_US&quot; false &quot;\u0939\u093f\u0928\u094d\u0926\u0940&quot; ] % Hindi
++ [ &quot;hi_IN&quot; &quot;en_US&quot; false &quot;\u0939\u093f\u0902\u0926\u0940&quot; ] % Hindi
++ [ &quot;hr_HR&quot; &quot;en_US&quot; false &quot;Hrvatski&quot; ] % Croatian
++ [ &quot;hu_HU&quot; &quot;hungarian&quot; false &quot;Magyar&quot; ] % Hungarian
++ [ &quot;id_ID&quot; &quot;en_US&quot; false &quot;Bahasa Indonesia&quot; ] % Indonesian
++ [ &quot;it_IT&quot; &quot;italian&quot; false &quot;Italiano&quot; ] % Italian
++ [ &quot;ja_JP&quot; &quot;japanese&quot; false &quot;日本語&quot; ] % Japanese
++ [ &quot;jv_ID&quot; &quot;en_US&quot; false &quot;Basa Jawa&quot; ] % Javanese
++% [ &quot;km_KH&quot; &quot;en_US&quot; false &quot;\u1781\u17d2\u1798\u17c2\u179a&quot; ] % Khmer
++ [ &quot;km_KH&quot; &quot;en_US&quot; false &quot;Khmer&quot; ] % Khmer
++ [ &quot;ko_KR&quot; &quot;en_US&quot; false &quot;한글&quot; ] % Korean
++ [ &quot;ky_KG&quot; &quot;en_US&quot; false &quot;Кыргызча&quot; ] % Kirghiz
++ [ &quot;lo_LA&quot; &quot;en_US&quot; false &quot;\u0e9e\u0eb2\u0eaa\u0eb2\u0ea5\u0eb2\u0ea7&quot; ] % Lao
++ [ &quot;lt_LT&quot; &quot;en_US&quot; false &quot;Lietuvių&quot; ] % Lithuanian
++ [ &quot;mk_MK&quot; &quot;en_US&quot; false &quot;Македонски&quot; ] % Macedonian
++ [ &quot;mr_IN&quot; &quot;en_US&quot; false &quot;\u092e\u0930\u093e\u0920\u0940&quot; ] % Marathi
++ [ &quot;nb_NO&quot; &quot;norwegian&quot; false &quot;Norsk (bokmål)&quot; ] % Norwegian
++ [ &quot;nn_NO&quot; &quot;norwegian&quot; false &quot;Norsk (nynorsk)&quot; ] % Norwegian
++ [ &quot;nl_NL&quot; &quot;en_US&quot; false &quot;Nederlands&quot; ] % Dutch
++ [ &quot;pa_IN&quot; &quot;en_US&quot; false &quot;\u0a2a\u0a70\u0a1c\u0a3e\u0a2c\u0a40&quot; ] % Punjabi
++ [ &quot;pl_PL&quot; &quot;polish&quot; false &quot;Polski&quot; ] % Polish
++ [ &quot;pt_PT&quot; &quot;portugese&quot; false &quot;Português&quot; ] % Portuguese
++ [ &quot;pt_BR&quot; &quot;portugese-br&quot; false &quot;Português (Brasil)&quot; ] % Portuguese (Brazilian)
++ [ &quot;ro_RO&quot; &quot;en_US&quot; false &quot;Română&quot; ] % Romanian
++ [ &quot;ru_RU&quot; &quot;russian&quot; false &quot;Русский&quot; ] % Russian
++ [ &quot;si_LK&quot; &quot;en_US&quot; false &quot;\u0dc3\u0dd2\u0d82\u0dc4\u0dbd&quot; ] % Sinhala
++ [ &quot;sk_SK&quot; &quot;slovak&quot; false &quot;Slovenčina&quot; ] % Slovak
++ [ &quot;sl_SI&quot; &quot;slovene&quot; false &quot;Slovenščina&quot; ] % Slovenian
++ [ &quot;sr_CS&quot; &quot;en_US&quot; false &quot;Srpski&quot; ] % Serbian
++ [ &quot;sv_SE&quot; &quot;swedish&quot; false &quot;Svenska&quot; ] % Swedish
++ [ &quot;ta_IN&quot; &quot;en_US&quot; false &quot;\u0ba4\u0bae\u0bbf\u0bb4\u0bcd&quot; ] % Tamil
++ [ &quot;th_TH&quot; &quot;en_US&quot; false &quot;\u0e20\u0e32\u0e29\u0e32\u0e44\u0e17\u0e22&quot; ] % Thai
++ [ &quot;tr_TR&quot; &quot;turkish&quot; false &quot;Türkçe&quot; ] % Turkish
++ [ &quot;uk_UA&quot; &quot;en_US&quot; false &quot;Українська&quot; ] % Ukrainian
++ [ &quot;vi_VN&quot; &quot;en_US&quot; false &quot;Tiếng Việt&quot; ] % Vietnamese
++ [ &quot;wa_BE&quot; &quot;en_US&quot; false &quot;Walon&quot; ] % Walloon
++ [ &quot;xh_ZA&quot; &quot;en_US&quot; false &quot;isiXhosa&quot; ] % Xhosa
++ [ &quot;zh_CN&quot; &quot;en_US&quot; false &quot;简体中文&quot; ] % Simplified Chinese
++ [ &quot;zh_TW&quot; &quot;en_US&quot; false &quot;繁體中文 (台灣)&quot; ] % Traditional Chinese
++ [ &quot;zu_ZA&quot; &quot;en_US&quot; false &quot;isiZulu&quot; ] % Zulu
++] def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Get language property.
++%
++% Returns .undef if not found.
++%
++% ( locale prop ) ==&gt; ( obj )
++%
++/lang.getprop {
++ lang.defaultnames {
++ dup .la.locale get 3 index eq { exch get exch pop return } { pop } ifelse
++ } forall
++
++ % try a loose match
++ lang.defaultnames {
++ dup .la.locale get 3 index locale.cmp { exch get exch pop return } { pop } ifelse
++ } forall
++
++ pop pop .undef
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Get language name.
++%
++% Returns locale if not found.
++%
++% ( locale ) ==&gt; ( name )
++%
++/lang.getdefname {
++ dup
++ .la.name lang.getprop
++ dup .undef ne { exch } if
++ pop
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Check for rtl.
++%
++% ( locale ) ==&gt; ( bool )
++%
++/lang.getrtl {
++ .la.rtl lang.getprop
++ dup .undef eq { pop false } if
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Parse &quot;langs&quot; file.
++%
++% ( ) ==&gt; ( )
++%
++/lang.parsedata {
++ /lang.default 0 def
++
++ &quot;langs&quot; findfile dup { /lang.data exch def } { pop return } ifelse
++
++ /la.tmp.datalen lang.data length def
++ /la.tmp.str lang.data cvs def
++
++ la.tmp.datalen 0 eq { return } if
++ la.tmp.str la.tmp.datalen 1 sub get '\n' ne { return } if
++
++ '\n' seteotchar
++
++ /lang.items [
++
++ /la.tmp.len 0 def
++ /la.tmp.cnt 0 def
++ {
++ la.tmp.str la.tmp.len add strdup
++ dup dup length 0 put
++ /la.tmp.len over length 1 add la.tmp.len add def
++
++ dup 0 get '*' eq { 1 add /lang.default la.tmp.cnt def } if
++
++ la.tmp.len la.tmp.datalen ge { exit } if
++
++ /la.tmp.cnt inc
++ } loop
++
++ ] def
++
++ ' ' seteotchar
++
++ /lang.names [
++
++ lang.items {
++
++ dup dup length add
++
++ dup 0 get {
++ dup 0 0 put 1 add
++ exch pop
++ } {
++ pop lang.getdefname
++ } ifelse
++
++ } forall
++
++ keymap.submenu {
++ /lang.submenu.keyboard
++ } if
++
++ ] def
++
++ /lang.submenu.idx keymap.submenu { lang.names length 1 sub } { -1 } ifelse def
++
++ 0 seteotchar
++
++} def
++
++
++/lang.submenu.keyboard.buf 64 string def
++/lang.submenu.keyboard {
++ /txt_keyboard exec &quot;\x09%s&quot; lang.submenu.keyboard.buf sprintf
++ lang.submenu.keyboard.buf
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Build language list.
++%
++% ( ) ==&gt; ( )
++%
++/lang.init {
++ /xmenu.lang .xm_size array def
++ /xmenu xmenu.lang def
++
++ lang.parsedata
++
++ xmenu .xm_current lang.default put
++ xmenu .xm_list lang.names put
++
++ xmenu .xm_title /txt_language put
++
++ % make menu smaller if there are more than 19 language entries
++ %lang.items length 19 gt {
++ % xmenu .xm_vspace 2 put
++ %} if
++
++ % start with current lang
++
++ /la.tmp.cnt 0 def
++ lang.items {
++ config.lang locale.cmp { xmenu .xm_current la.tmp.cnt put exit } if
++ /la.tmp.cnt inc
++ } forall
++
++ /la.tmp.cnt 0 def
++ lang.items {
++ config.lang eq { xmenu .xm_current la.tmp.cnt put exit } if
++ /la.tmp.cnt inc
++ } forall
++
++ % needed in case menu is only attached to lang menu
++ keymap.init
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Update language.
++%
++% ( ) ==&gt; ( )
++%
++/lang.update {
++ /xmenu xmenu.lang def
++
++ xmenu .xm_current get lang.submenu.idx eq {
++ xmenu .xm_current over .xm_last get put
++ panel.keymap
++ } {
++ lang.items xmenu .xm_current get get
++ dup
++ setlang { /window.action actRedraw def } if
++ getkeymapfromlocale setkeymap
++ keymap.setdefault
++ } ifelse
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Show language menu.
++%
++% ( ) =&gt; ( )
++%
++/panel.lang {
++ &quot;keytable&quot; help.setcontext
++
++ window.xmenu
++ dup .xmenu xmenu.lang put
++ dup .xmenu.update /lang.update put
++ dup window.init
++ window.show
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Return width of panel entry.
++%
++% ( ) =&gt; ( width )
++%
++/panel.lang.width {
++ /xmenu xmenu.lang def
++
++ pmenu.width
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Redraw panel entry.
++%
++% ( panel ) =&gt; ( )
++%
++/panel.lang.update {
++ /xmenu xmenu.lang def
++
++ pmenu.panel.update
++
++ xmenu.keymap .xm_panel_x xmenu.lang .xm_panel_x get put
++} def
++
++
+
+<a id="themetrunkmageiagfxbootthemetrunksrcdia_profileinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/src/dia_profile.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/src/dia_profile.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/src/dia_profile.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,137 @@
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% Profile selection dialog.
++%
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Some global vars.
++%
++
++% fallback if we can't parse &quot;profiles&quot;
++/profile.options [ &quot;&quot; ] def
++/profile.items [ &quot;Broken Profiles&quot; ] def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Parse &quot;profiles&quot; file.
++%
++% ( ) ==&gt; ( )
++%
++/profile.parsedata {
++ /pf.tmp.datalen profile.data length def
++ /pf.tmp.str profile.data cvs def
++
++ /profile.default 0 def
++
++ pf.tmp.datalen 0 eq { return } if
++ pf.tmp.str pf.tmp.datalen 1 sub get '\n' ne { return } if
++
++ '\n' seteotchar
++
++ /profile.items [
++
++ /pf.tmp.len 0 def
++ /pf.tmp.cnt 0 def
++ {
++ pf.tmp.str pf.tmp.len add strdup
++ dup dup length 0 put
++ /pf.tmp.len over length 1 add pf.tmp.len add def
++
++ dup 0 get '*' eq { 1 add /profile.default pf.tmp.cnt def } if
++
++ pf.tmp.len pf.tmp.datalen ge { exit } if
++
++ /pf.tmp.cnt inc
++ } loop
++
++ ] def
++
++ ' ' seteotchar
++
++ /profile.options [
++
++ profile.items {
++ dup length add
++ dup 0 0 put
++ 1 add
++ } forall
++
++ ] def
++
++ 0 seteotchar
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Build profile list.
++%
++% ( ) ==&gt; ( )
++%
++/profile.init {
++ /xmenu.profile .xm_size array def
++ /xmenu xmenu.profile def
++
++ profile.parsedata
++
++ xmenu .xm_title &quot;Profile&quot; put
++
++ xmenu .xm_current profile.default put
++ xmenu .xm_list profile.items put
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Update profile.
++%
++% ( ) ==&gt; ( )
++%
++/profile.update {
++ /xmenu xmenu.profile def
++
++ /window.action actRedrawPanel def
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Show profile menu.
++%
++% ( ) =&gt; ( )
++%
++/panel.profile {
++ &quot;profile&quot; help.setcontext
++
++ window.xmenu
++ dup .xmenu xmenu.profile put
++ dup .xmenu.update /profile.update put
++ dup window.init
++ window.show
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Return width of panel entry.
++%
++% ( ) =&gt; ( width )
++%
++/panel.profile.width {
++ /xmenu xmenu.profile def
++
++ pmenu.width
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Redraw panel entry.
++%
++% ( panel ) =&gt; ( )
++%
++/panel.profile.update {
++ /xmenu xmenu.profile def
++
++ pmenu.panel.update
++} def
++
++
+
+<a id="themetrunkmageiagfxbootthemetrunksrcdia_videoinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/src/dia_video.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/src/dia_video.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/src/dia_video.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,81 @@
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% Video mode selection dialog.
++%
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Some global vars.
++%
++% video mode array fields
++/video.default 2 def
++/video.modes.list [ 0 785 788 791 ] def
++/video.modes.text [ &quot;Text&quot; &quot;640 x 480&quot; &quot;800 x 600&quot; &quot;1024 x 768&quot; ] def
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Build video mode list.
++%
++% ( ) ==&gt; ( )
++%
++/video.init {
++ /xmenu.video .xm_size array def
++
++ /xmenu xmenu.video def
++
++ xmenu .xm_list video.modes.text put
++ xmenu .xm_title .undef put
++ xmenu .xm_current video.default put
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Update video mode.
++%
++% ( ) ==&gt; ( )
++%
++/video.update {
++ /xmenu xmenu.video def
++
++ /window.action actRedrawPanel def
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Show video menu.
++%
++% ( ) =&gt; ( )
++%
++/panel.video {
++ &quot;videomode&quot; help.setcontext
++
++ window.xmenu
++ dup .xmenu xmenu.video put
++ dup .xmenu.update /video.update put
++ dup window.init
++ window.show
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Return width of video entry.
++%
++% ( ) =&gt; ( width )
++%
++/panel.video.width {
++ /xmenu xmenu.video def
++
++ pmenu.width
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Redraw panel entry.
++%
++% ( panel ) =&gt; ( )
++%
++/panel.video.update {
++ /xmenu xmenu.video def
++
++ pmenu.panel.update
++} def
+
+<a id="themetrunkmageiagfxbootthemetrunksrchelpinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/src/help.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/src/help.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/src/help.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,684 @@
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% help system
++%
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++
++% global vars used by help system
++
++
++/help.context &quot;main&quot; def
++
++/help.light white def
++/help.dark black def
++/help.font font.normal def
++/help.normal.bg window.color.bg def
++/help.normal.fg window.color.fg def
++
++/help.x 80 def
++/help.y 50 def
++/help.width 480 def
++/help.height 322 def
++
++clip.size pop 800 eq {
++ /help.x 120 def
++ /help.y 90 def
++ /help.width 560 def
++ /help.height 359 def
++} if
++
++/help.text.x help.x 10 add def
++/help.text.y help.y 30 add def
++
++/help.text.width help.width 20 sub def
++/help.text.height help.height help.text.y sub help.y add 4 sub def
++/help.text.rightmargin help.text.x help.text.width add def
++
++/help.title.x help.x 10 add def
++/help.title.y help.y 3 add def
++/help.title.height 20 def
++/help.title.font font.normal def
++
++/help.hist.page 16 array def
++/help.hist.startrow help.hist.page length array def
++/help.hist.selectedlink help.hist.page length array def
++
++
++% for boot option lookup
++/bo.opt.max 32 def
++/bo.opt bo.opt.max 3 add string def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Map help context.
++%
++% ( context ) ==&gt; ( new_context )
++%
++% Note: obsolete.
++%
++/help.mapcontext {
++ % dup &quot;xxx&quot; eq { pop &quot;yyy&quot; } if
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Set help context.
++%
++% ( context ) ==&gt; ( )
++%
++/help.setcontext {
++ help.mapcontext /help.context exch def
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Find boot option the cursor is positioned at.
++%
++% ( ) ==&gt; ( option )
++%
++/findbootoption {
++ boot.window .ed.list get boot.window .ed.focus get get
++ /bo.buf over .inp_buf get def
++ /bo.len over .inp_buf_len get def
++ /bo.pos exch .inp_int get .inp_int_cur get def
++
++ {
++ bo.pos 0 eq { exit } if
++ bo.buf bo.pos 1 sub get ' ' le { exit } if
++ /bo.pos bo.pos 1 sub def
++ } loop
++
++ /bo.buf bo.buf bo.pos add def
++
++ bo.buf 0 get ' ' le { &quot;&quot; return } if
++
++ % &quot;o_&quot; + option name is the help text label
++ &quot;o_&quot; bo.opt sprintf
++
++ 0 1 bo.opt.max 1 sub {
++ dup
++ bo.buf exch get
++ dup ' ' le over '=' eq or { pop pop exit } if
++ over bo.opt 2 add exch rot put
++ bo.opt 3 add exch 0 put
++ } for
++
++ bo.opt
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Find help page.
++%
++% returns help page or empty string if no page was found
++%
++% ( label ) ==&gt; ( help_text )
++%
++% Shows first help page if label is not found.
++%
++/help.findpage {
++ dup length 3 add dup string
++ &quot;\x12%s\x14&quot;
++ 3 1 roll dup 5 1 roll snprintf
++ help.getmessages over strstr
++ dup { 2 sub } if 1 add
++ help.getmessages add
++ exch free
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Find help page.
++%
++% returns n-th help page or empty string if no page was found
++%
++% ( n ) ==&gt; ( help_text )
++%
++/help.findpagebyindex {
++ help.getmessages exch
++ {
++ dup &quot;\x04&quot; strstr
++ dup { add } { pop pop &quot;&quot; exit } ifelse
++ } repeat
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Init &amp; display help page.
++%
++% ( help_text start_row selected_link ) ==&gt; ( )
++%
++/help.initpage {
++ /help.selectedlink exch def
++ /help.startrow exch def
++
++ /help.currenttext over def
++
++ window.title.bg setcolor
++ help.x 1 add help.y 1 add moveto
++ help.width 2 sub help.title.height 1 sub fillrect
++
++ help.text.x help.text.y moveto
++ currentmaxrows 0 setmaxrows exch formattext setmaxrows
++
++ white setcolor
++ currenteotchar 16 seteotchar
++ help.title.x help.title.y moveto currenttitle
++ currentfont help.title.font setfont exch show setfont
++ seteotchar
++
++ getlinks { help.selectedlink setlink } if
++
++ help.updatepage
++
++ % 500 0 moveto gettextrows print
++ % 400 0 moveto getlinks print
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Redraw help page.
++%
++% ( ) ==&gt; ( )
++%
++/help.updatepage {
++ help.normal.bg setcolor
++ help.text.x help.text.y moveto
++ help.text.width help.text.height fillrect
++
++ help.normal.fg help.highlight.fg help.link.fg help.link.selected.fg settextcolors
++
++ help.startrow setstartrow
++
++ help.text.x help.text.y moveto
++ help.currenttext show
++
++ 0 setstartrow
++
++ true help.selectedlink help.redrawlink
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Used to iterate over all help pages (for debugging).
++%
++% get the n-th page starting from current pos
++%
++% ( n ) ==&gt; ( help_text )
++%
++/help.test {
++ help.test.cnt add
++ dup 1 lt { pop 1 } if
++ /help.test.cnt over def
++ help.findpagebyindex
++ dup &quot;&quot; eq {
++ % one page back
++ pop help.test.cnt 1 sub /help.test.cnt over def
++ help.findpagebyindex
++ } if
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Redraw link.
++%
++% selected: true or false.
++%
++% ( selected n ) ==&gt; ( )
++%
++%
++/help.redrawlink {
++ getlinks 0 eq { pop pop return } if
++ getlink
++ dup help.startrow lt
++ over help.startrow help.text.rows add ge or {
++ 5 { pop } repeat return
++ } if
++ help.startrow sub lineheight mul help.text.y add
++ moveto
++ rot
++
++ 16 seteotchar
++
++ {
++ currenttextcolors 4 1 roll pop pop pop
++ help.link.selected.bg
++ } {
++ currenttextcolors 4 2 roll pop pop pop
++ help.normal.bg
++ } ifelse
++
++ setcolor over currentpoint rot strsize fillrect moveto
++
++ setcolor show
++
++ 4 seteotchar
++
++ pop
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Select n-th link.
++%
++% ( n ) ==&gt; ( )
++%
++/help.selectlink {
++ help.selectedlink over eq {
++ pop
++ } {
++ % deselect old link
++ false help.selectedlink help.redrawlink
++
++ /help.selectedlink over dup setlink def
++
++ % select link
++ true exch help.redrawlink
++ } ifelse
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Select first visible link.
++%
++% No screen update if 'update' is false.
++%
++% ( update ) ==&gt; ( )
++%
++/help.sel.firstlink {
++ getlinks {
++ 0 1 getlinks 1 sub {
++ dup
++ getlink 4 1 roll pop pop pop
++ dup help.startrow help.text.rows add ge {
++ pop pop exit
++ } if
++ dup help.startrow ge {
++ pop
++ over { help.selectlink } { /help.selectedlink exch dup setlink def } ifelse
++ exit
++ } if
++ pop pop
++ } for
++ } if
++ pop
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Select last visible link.
++%
++% No screen update if 'update' is false.
++%
++% ( update ) ==&gt; ( )
++%
++/help.sel.lastlink {
++ getlinks {
++ getlinks 1 sub -1 0 {
++ dup
++ getlink 4 1 roll pop pop pop
++ dup help.startrow lt {
++ pop pop exit
++ } if
++ dup help.startrow help.text.rows add lt {
++ pop
++ over { help.selectlink } { /help.selectedlink exch dup setlink def } ifelse
++ exit
++ } if
++ pop pop
++ } for
++ } if
++ pop
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Push current help context to history.
++%
++% ( ) ==&gt; ( )
++%
++/help.add2history {
++ help.hist.index help.hist.page length lt {
++ help.hist.page help.hist.index help.currenttext put
++ help.hist.startrow help.hist.index help.startrow put
++ help.hist.selectedlink help.hist.index help.selectedlink put
++ /help.hist.index help.hist.index 1 add def
++ } if
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Follow currently selected link.
++%
++% ( ) ==&gt; ( )
++%
++/help.followlink {
++ getlinks {
++ help.selectedlink getlink pop pop pop
++ help.add2history
++ help.findpage
++ dup &quot;&quot; eq {
++ pop
++ } {
++ 0 0 help.initpage
++ } ifelse
++ } if
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Go back to previous page.
++%
++% ( ) ==&gt; ( )
++%
++/help.prevlink {
++ help.hist.index 0 gt {
++ /help.hist.index help.hist.index 1 sub def
++ help.hist.page help.hist.index get
++ help.hist.startrow help.hist.index get
++ help.hist.selectedlink help.hist.index get
++ help.initpage
++ } if
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Scroll a page down.
++%
++% ( ) ==&gt; ( )
++%
++/help.key.pagedown {
++ help.startrow
++ gettextrows help.text.rows gt {
++ pop
++ gettextrows help.text.rows sub
++ help.startrow help.text.rows add
++ min
++ } if
++
++ dup help.startrow eq {
++ pop
++ true help.sel.lastlink
++ } {
++ /help.startrow exch def
++ false help.sel.firstlink
++ help.updatepage
++ } ifelse
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Scroll a page up.
++%
++% ( ) ==&gt; ( )
++%
++/help.key.pageup {
++ help.startrow
++ gettextrows help.text.rows gt {
++ pop
++ 0
++ help.startrow help.text.rows sub
++ max
++ } if
++
++ dup help.startrow eq {
++ pop
++ true help.sel.firstlink
++ } {
++ /help.startrow exch def
++ false help.sel.firstlink
++ help.updatepage
++ } ifelse
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Go to page start.
++%
++% ( ) ==&gt; ( )
++%
++/help.key.home {
++ help.startrow 0 eq {
++ true help.sel.firstlink
++ } {
++ /help.startrow 0 def
++ false help.sel.firstlink
++ help.updatepage
++ } ifelse
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Go to page end.
++%
++% ( ) ==&gt; ( )
++%
++/help.key.end {
++ gettextrows help.text.rows sub 0 max
++ dup help.startrow eq {
++ pop
++ true help.sel.lastlink
++ } {
++ /help.startrow exch def
++ false help.sel.lastlink
++ help.updatepage
++ } ifelse
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Next link or scroll down.
++%
++% ( ) ==&gt; ( )
++%
++/help.key.down {
++ help.selectedlink getlinks 1 sub lt {
++ help.selectedlink 1 add getlink 4 1 roll pop pop pop
++ dup help.startrow help.text.rows add lt {
++ % link visible
++ pop help.selectedlink 1 add help.selectlink
++ return
++ } {
++ help.startrow help.text.rows add eq {
++ % link visible after scrolling down
++ /help.selectedlink help.selectedlink 1 add dup setlink def
++ } if
++ } ifelse
++ } if
++
++ % scroll down
++
++ help.startrow help.text.rows add gettextrows lt {
++ /help.startrow help.startrow 1 add def
++ help.updatepage
++ } if
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Previous link or scroll up.
++%
++% ( ) ==&gt; ( )
++%
++/help.key.up {
++ help.selectedlink 0 gt {
++ help.selectedlink 1 sub getlink 4 1 roll pop pop pop
++ % row
++ dup help.startrow ge {
++ % link visible
++ pop help.selectedlink 1 sub help.selectlink
++ return
++ } {
++ help.startrow 1 sub eq {
++ % link visible after scrolling up
++ /help.selectedlink help.selectedlink 1 sub dup setlink def
++ } if
++ } ifelse
++ } if
++
++ % scroll up
++
++ help.startrow 0 gt {
++ /help.startrow help.startrow 1 sub def
++ help.updatepage
++ } if
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Handle keyboard input.
++%
++% ( key_in ) ==&gt; ( key_out )
++%
++/help.input {
++ dup 0 eq { return } if
++
++ dup keyEsc eq { /window.action actNothing def window.done } if
++ dup keyCtrlDown eq { 1 help.test 0 0 help.initpage } if
++ dup keyCtrlUp eq { -1 help.test 0 0 help.initpage } if
++ dup keyDown eq { help.key.down } if
++ dup keyUp eq { help.key.up } if
++ dup keyPgDown eq { help.key.pagedown } if
++ dup keyPgUp eq { help.key.pageup } if
++ dup keyHome eq { help.key.home } if
++ dup keyEnd eq { help.key.end } if
++ dup keyRight eq { help.followlink } if
++ dup keyEnter eq { help.followlink } if
++ dup 0xff and ' ' eq { help.followlink } if
++ dup keyLeft eq { help.prevlink } if
++ dup 0xff and '\x08' eq { help.prevlink } if
++ dup keyF1 eq {
++ &quot;help&quot; help.findpage
++ dup help.currenttext eq {
++ pop
++ } {
++ help.add2history
++ 0 0 help.initpage
++ } ifelse
++ } if
++% dup keyF9 eq {
++% /help.font help.font 8 add 10 mod def help.reinit
++% help.currenttext help.startrow help.selectedlink help.initpage
++% } if
++ pop 0
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Recalculate some sizes and redraw help screen.
++%
++% ( ) ==&gt; ( )
++%
++/help.reinit {
++ help.normal.bg setcolor
++ help.x help.y moveto
++ help.width help.height fillrect
++
++ help.x 1 add help.y 1 add help.title.height add moveto
++ help.dark help.light
++ help.width 2 sub help.height 2 sub help.title.height sub
++ drawborder
++
++ help.font setfont
++
++ /help.text.rows help.text.height lineheight div def
++ help.text.rows setmaxrows
++
++ help.text.rightmargin settextwrap
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Initialize help window.
++%
++% ( window ) ==&gt; ( )
++%
++/help.init {
++ /help.tmp exch def
++
++ help.x 1 sub help.y 1 sub moveto
++ help.light help.dark
++ help.width 2 add help.height 2 add
++ over over
++ savescreen
++ help.tmp .saved rot put
++ drawborder
++
++ help.reinit
++
++ 4 seteotchar
++
++ /help.hist.index 0 def
++
++ /help.test.cnt 1 def
++
++ help.context help.findpage 0 0 help.initpage
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Draw help window.
++%
++% ( window ) ==&gt; ( )
++%
++/help.show {
++ window.push
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Close current help window.
++%
++% ( ) ==&gt; ( )
++%
++/help.done {
++ 0 settextwrap
++ 0 seteotchar
++ 0 setmaxrows
++} def
++
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Create new help window.
++%
++% ( ) ==&gt; ( window )
++%
++/window.help {
++ widget.size array
++ dup .type t_help put
++
++ dup .x help.x put
++ dup .y help.y put
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Find help texts.
++%
++% ( ) ==&gt; ( start_of_help_messages )
++%
++% Note: must always return something (fake a message if necessary).
++%
++/help.getmessages {
++
++ help.messages .undef eq {
++ % load help texts
++ /help.messages
++ config.lang &quot;%s.hlp&quot; locale.findfile
++ dup .undef eq { pop &quot;en_US&quot; &quot;%s.hlp&quot; locale.findfile } if
++ dup .undef eq { pop &quot;\x04\x12\x14No Help Texts\x10Sorry, no help texts found.&quot; } if
++ cvs
++ def
++ } if
++
++ help.messages
++
++} def
++
++
+
+<a id="themetrunkmageiagfxbootthemetrunksrckeytablesinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/src/keytables.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/src/keytables.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/src/keytables.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,62 @@
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% Keyboard mappings.
++%
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++
++
++% keymap layout (diff to us map):
++%
++% key_code, plain, shift, altgr
++%
++
++/.km.name 0 def
++/.km.locale 1 def
++/.km.id 2 def
++/.km.map 3 def
++
++%% include ../keymaps/keymap.cs_CZ.inc
++%% include ../keymaps/keymap.da_DK.inc
++%% include ../keymaps/keymap.de_DE.inc
++%% include ../keymaps/keymap.et_EE.inc
++%% include ../keymaps/keymap.el_GR.inc
++%% include ../keymaps/keymap.es_ES.inc
++%% include ../keymaps/keymap.fr_FR.inc
++%% include ../keymaps/keymap.hu_HU.inc
++%% include ../keymaps/keymap.it_IT.inc
++%% include ../keymaps/keymap.ja_JP.inc
++%% include ../keymaps/keymap.nb_NO.inc
++%% include ../keymaps/keymap.pl_PL.inc
++%% include ../keymaps/keymap.pt_BR.inc
++%% include ../keymaps/keymap.pt_PT.inc
++%% include ../keymaps/keymap.ru_RU.inc
++%% include ../keymaps/keymap.sk_SK.inc
++%% include ../keymaps/keymap.sl_SI.inc
++%% include ../keymaps/keymap.sv_SE.inc
++%% include ../keymaps/keymap.tr_TR.inc
++
++% array must not be empty
++/keymaps [
++ [ &quot;Czech&quot; &quot;cs_CZ&quot; &quot;czech&quot; keymap.cs_CZ ]
++ [ &quot;Danish&quot; &quot;da_DK&quot; &quot;danish&quot; keymap.da_DK ]
++ [ &quot;German&quot; &quot;de_DE&quot; &quot;german&quot; keymap.de_DE ]
++ [ &quot;Estonian&quot; &quot;et_EE&quot; &quot;estonian&quot; keymap.et_EE ]
++ [ &quot;English-US&quot; &quot;en_US&quot; &quot;english-us&quot; .undef ]
++ [ &quot;Greek&quot; &quot;el_GR&quot; &quot;greek&quot; keymap.el_GR ]
++ [ &quot;Spanish&quot; &quot;es_ES&quot; &quot;spanish&quot; keymap.es_ES ]
++ [ &quot;French&quot; &quot;fr_FR&quot; &quot;french&quot; keymap.fr_FR ]
++ [ &quot;Hungarian&quot; &quot;hu_HU&quot; &quot;hungarian&quot; keymap.hu_HU ]
++ [ &quot;Italian&quot; &quot;it_IT&quot; &quot;italian&quot; keymap.it_IT ]
++ [ &quot;Japanese&quot; &quot;ja_JP&quot; &quot;japanese&quot; keymap.ja_JP ]
++ [ &quot;Norwegian&quot; &quot;nb_NO&quot; &quot;norwegian&quot; keymap.nb_NO ]
++ [ &quot;Polish&quot; &quot;pl_PL&quot; &quot;polish&quot; keymap.pl_PL ]
++ [ &quot;Portuguese-BR&quot; &quot;pt_BR&quot; &quot;portuguese-br&quot; keymap.pt_BR ]
++ [ &quot;Portuguese&quot; &quot;pt_PT&quot; &quot;portuguese&quot; keymap.pt_PT ]
++ [ &quot;Russian&quot; &quot;ru_RU&quot; &quot;russian&quot; keymap.ru_RU ]
++ [ &quot;Slovak&quot; &quot;sk_SK&quot; &quot;slovak&quot; keymap.sk_SK ]
++ [ &quot;Slovene&quot; &quot;sl_SI&quot; &quot;slovene&quot; keymap.sl_SI ]
++ [ &quot;Swedish&quot; &quot;sv_SE&quot; &quot;swedish&quot; keymap.sv_SE ]
++ [ &quot;Turkish&quot; &quot;tr_TR&quot; &quot;turkish&quot; keymap.tr_TR ]
++] def
++
++
+
+<a id="themetrunkmageiagfxbootthemetrunksrclocaleinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/src/locale.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/src/locale.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/src/locale.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,267 @@
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% Handle translations.
++%
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Set language.
++%
++% ( locale ) ==&gt; ( true|false )
++%
++/setlang {
++ config.lang over eq { pop false return } if
++
++ /config.lang exch def
++
++ /config.rtl config.lang lang.getrtl def
++
++ % clear old help texts
++ /help.messages xfree
++
++ translation.texts {
++ translation.texts dup { free } forall free
++ /translation.texts .undef def
++ } if
++
++ findtexts
++
++ true
++} def
++
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Set keyboard map.
++%
++% ( locale|keymap ) ==&gt; ( )
++%
++/setkeymap {
++ config.keymap.name over eq { pop return } if
++ /config.keymap.name exch def
++
++ config.keymap.id config.keymap.name eq { return } if
++
++ /config.keymap .undef def
++ /config.keymap.id .undef def
++
++ keymaps {
++ dup .km.id get config.keymap.name eq
++ over .km.locale get config.keymap.name eq or {
++ dup .km.map get /config.keymap exch def
++ .km.id get /config.keymap.id exch def
++ } { pop } ifelse
++ } forall
++
++ config.keymap.id .undef eq {
++ keymaps {
++ dup .km.locale get config.keymap.name locale.cmp {
++ dup .km.map get /config.keymap exch def
++ .km.id get /config.keymap.id exch def
++ } { pop } ifelse
++ } forall
++ } if
++
++ config.keymap.id .undef eq {
++ /config.keymap.id &quot;en_US&quot; def
++ } if
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Look up keymap in languale locale list.
++%
++% ( locale ) ==&gt; ( keymap|locale )
++%
++/getkeymapfromlocale {
++ /kbd.tmp exch def
++ /kbd.tmp.locale .undef def
++
++ lang.defaultnames {
++ dup .la.locale get kbd.tmp eq { .la.keymap get /kbd.tmp.locale exch def exit } { pop } ifelse
++ } forall
++
++ kbd.tmp.locale .undef eq {
++ lang.defaultnames {
++ dup .la.locale get kbd.tmp locale.cmp { .la.keymap get /kbd.tmp.locale exch def exit } { pop } ifelse
++ } forall
++ } if
++
++ kbd.tmp.locale .undef ne { /kbd.tmp kbd.tmp.locale def } if
++
++ kbd.tmp
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Set texts for current language.
++%
++% ( ) ==&gt; ( )
++%
++/findtexts {
++ /locale.texts afree
++ /locale.texts config.lang &quot;%s.tr&quot; loadtexts def
++
++ 0 texts {
++ over locale.texts exch aget dup .undef eq { pop &quot;No Texts!&quot; } if def
++ 1 add
++ } forall
++ pop
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Load texts for current language.
++%
++% ( str1 str2 -- array1 )
++%
++% str1: locale
++% str2: file name template (like &quot;foo.%s&quot;)
++% array1: array with texts (empty if no file was found)
++%
++/loadtexts {
++ locale.findfile
++ dup .undef eq { pop &quot;en_US&quot; &quot;%s.tr&quot; locale.findfile } if
++ dup .undef eq { pop [ ] return } if
++
++ /ft.len over length def
++ /ft.str over cvs def
++ /ft.pos 0 def
++
++ [
++ {
++ ft.pos ft.str length add ft.len lt {
++ ft.str strdup
++ /ft.str ft.str dup length 1 add /ft.pos over ft.pos add def add def
++ } {
++ exit
++ } ifelse
++ } loop
++ ]
++
++ exch free
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Translate menu entry.
++%
++% ( text ) ==&gt; ( text )
++%
++/translate {
++ translations.init
++
++ translation.texts length 2 lt { return } if
++
++ 0 2 translation.texts length -2 and 1 sub {
++ translation.texts over get 2 index eq {
++ 1 add translation.texts exch get exch pop exit
++ } { pop } ifelse
++ } for
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Read menu translations.
++%
++% ( ) ==&gt; ( )
++%
++/translations.init {
++ translation.texts { return } if
++
++ /translation.texts [ ] def
++
++ config.lang .undef eq { return } if
++
++ config.lang &quot;translations.%s&quot; locale.findfile dup {
++
++ /la.tmp.datalen over length def
++ /la.tmp.str exch cvs def
++
++ la.tmp.datalen 0 eq { return } if
++ la.tmp.str la.tmp.datalen 1 sub get '\n' ne { return } if
++
++ '\n' seteotchar
++
++ /translation.texts [
++
++ /la.tmp.len 0 def
++
++ {
++ la.tmp.str la.tmp.len add strdup
++ dup dup length 0 put
++ /la.tmp.len over length 1 add la.tmp.len add def
++
++ la.tmp.len la.tmp.datalen ge { exit } if
++
++ } loop
++
++ ] def
++
++ 0 seteotchar
++ } { pop } ifelse
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Read locale-specific file.
++%
++% ( str1 str2 -- ptr1 )
++%
++% str1: locale
++% str2: file name template (like &quot;foo.%s&quot;)
++% ptr1: buffer with file data (or .undef)
++%
++/locale.findfile {
++ over length over length add string
++
++ rot strdup rot
++
++ over over 4 index sprintf 2 index findfile
++
++ dup .undef eq {
++ pop
++ exch
++ dup &quot;_&quot; strstr dup {
++ 1 sub
++ over exch 0 put
++ exch
++ over over 4 index sprintf 2 index findfile
++ } {
++ pop exch .undef
++ } ifelse
++ } if
++
++ exch pop exch free exch free
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Compare two locale names.
++%
++% ( str1 str2 -- int1 )
++%
++% str1: locale1
++% str2: locale2
++% int1: 0 = no match, 1 = loose match, 2 = identical
++%
++/locale.cmp {
++ over over eq { pop pop 2 return } if
++
++ currenteotchar '_' seteotchar
++
++ rot strdup rot strdup
++
++ over over eq rot free exch free
++
++ exch seteotchar
++
++ { 1 } { 0 } ifelse
++} def
++
++
+
+<a id="themetrunkmageiagfxbootthemetrunksrcmainbc">Added: theme/trunk/mageia-gfxboot-theme/trunk/src/main.bc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/src/main.bc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/src/main.bc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,27 @@
++%% include system.inc
++%% include bsplash.inc
++
++%% include timeout.inc
++%% include common.inc
++%% include serial.inc
++
++%% include ../po/text.inc
++%% include window.inc
++%% include button.inc
++%% include help.inc
++%% include menu.inc
++%% include xmenu.inc
++%% include dia_video.inc
++%% include dia_lang.inc
++%% include dia_dud.inc
++%% include dia_help.inc
++%% include dia_profile.inc
++%% include dia_install.inc
++%% include dia_bits.inc
++%% include dia_about.inc
++%% include dia_kernelopts.inc
++%% include dia_keymap.inc
++%% include panel.inc
++%% include keytables.inc
++%% include locale.inc
++%% include speech.inc
+
+<a id="themetrunkmageiagfxbootthemetrunksrcmenuinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/src/menu.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/src/menu.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/src/menu.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,496 @@
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% Main menu (boot entry + boot options + panel).
++%
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++
++% max number of boot option input fields
++/boot.ed.max 2 def
++
++% boot option input line separator
++/boot.splitchar 1 def
++/boot.splitstr 1 string dup 0 boot.splitchar put def
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Create new main window.
++%
++% ( ) ==&gt; ( window )
++%
++/window.main {
++ widget.size array
++ dup .type t_main put
++ dup .font font.normal put
++ dup .ed.font font.normal put
++ dup .color.fg boot.text.normal put
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Initialize main window.
++%
++% ( window ) ==&gt; ( )
++%
++/main.init {
++ pop
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Redraw main window.
++% (E.g. after selecting a new language.)
++%
++% ( window ) ==&gt; ( )
++%
++/main.redraw {
++
++ % boot.drawlabels
++
++ main.drawmenu
++ /keepbootoptions 1 def
++ menu.entry true MenuSelect
++ /keepbootoptions .undef def
++
++ panel.show
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Draw boot option input field labels.
++%
++% ( ) == &gt; ( )
++%
++/boot.drawlabels {
++ boot.show not { return } if
++
++ boot.text.options setcolor
++ window.current .font get setfont
++ boot.ed.list {
++ dup .inp_x get 10 sub over .inp_y get moveto
++ currentpoint
++ currentpoint 0 exch moveto
++ currentpoint rot 1 add fontheight image
++ moveto
++ dup .inp_show get {
++ .inp_label get exec showright
++ } { pop } ifelse
++ } forall
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Setup boot option input field.
++%
++% ( ) == &gt; ( )
++%
++/boot.input.setup {
++ % HACK: we do not need to do this function if not boot.show,
++ % and since we have some ugly overlap of bootoptions on the panel
++ % we really do not want to do it if not really useful
++ boot.show not { return } if
++
++ boot.ed.list {
++ dup .inp_x get over .inp_y get boot.ed.height add moveto
++
++ currentpoint boot.ed.width 2 image
++
++ currentcolor
++ currenttransparency
++
++ white setcolor
++ 0xe0 settransparency
++
++ 2 index .inp_show get {
++ boot.ed.width 2 fillrect
++ } if
++
++ settransparency
++ setcolor
++
++ pop
++
++ } forall
++} def
++
++
++/boot.input.preinit {
++
++ boot.ed.list { dup .inp_show false put .inp_buf get 0 0 put } forall
++
++ menu.args menu.entry get boot.splitchar split
++
++ 0 1 boot.ed.list length 1 sub {
++ over over aget dup .undef ne {
++ boot.ed.list rot get dup .inp_show true put .inp_buf get exch strcpy pop
++ } {
++ pop pop exit
++ } ifelse
++ } for
++
++ free
++
++ config.nobootoptions menu.texts menu.entry get iselement {
++ boot.ed.list 0 get .inp_show false put
++ } if
++
++ boot.ed.list { splitcmdline } forall
++
++} def
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Activate boot option input field.
++%
++% ( ) == &gt; ( )
++%
++/bootoptions.init {
++ window.current .color.fg get setcolor
++ window.current .ed.font get setfont
++
++ boot.ed.list boot.window .ed.focus get get edit.hidecursor
++
++ boot.window .ed.focus 0 put
++
++ boot.show {
++ boot.ed.list {
++ dup .inp_show get {
++ dup
++ dup dup .inp_buf get exch over edit.init
++ &quot;&quot; ne { ' ' edit.input } { pop } ifelse
++ edit.hidecursor
++ } {
++ edit.done
++ } ifelse
++ } forall
++ boot.ed.list boot.window .ed.focus get get dup .inp_show get {
++ edit.showcursor
++ % HACK: there is some ugly overlap of bootoptions on the panel
++ % so force to redraw the panel after displaying bootoptions
++ panel.show
++ } { pop } ifelse
++
++ boot.ed.list {
++ dup .inp_show get .inp_visible exch put
++ } forall
++
++ } if
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Redraw boot option input field.
++%
++% ( ) == &gt; ( )
++%
++/bootoptions.redraw {
++
++ % clear old options
++
++ boot.text.options setcolor
++ window.current .font get setfont
++ boot.ed.list {
++ dup .inp_x get 10 sub over .inp_y get moveto
++ currentpoint
++ currentpoint 0 exch moveto
++ currentpoint rot 1 add fontheight image
++ moveto
++ dup .inp_show get {
++ .inp_label get exec showright
++ } { pop } ifelse
++ } forall
++
++ boot.drawlabels
++ boot.input.setup
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Draw boot menu.
++%
++% No entry is marked as selected.
++%
++% ( ) == &gt; ( )
++%
++/main.drawmenu {
++ menu.text.normal setcolor
++
++ /x menu.start.x def
++ /y menu.start.y def
++
++ /menu.bar.width.old menu.bar.width def
++
++ /menu.bar.width
++ menu.bar.min.width
++ menu.texts { menuitemmap strsize pop menu.text.xofs 2 mul add 2 add max } forall
++ def
++
++ 0 1 menu.visible.entries 1 sub {
++ x y moveto currentpoint menu.bar.width.old menu.bar.height image
++ x config.rtl { menu.bar.width menu.text.xofs sub } { menu.text.xofs } ifelse add
++ y menu.text.yofs add moveto
++ menu.texts exch menu.shift add get menuitemmap
++ currentfont exch font.large setfont show.rtl setfont
++ /y y menu.item.height add def
++ } for
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Select/deselect menu entry.
++%
++% If an entry is selected (status = true), the boot options input field is
++% initialized.
++%
++% ( entry status ) ==&gt; ( )
++%
++% status:
++% false not selected
++% true selected
++%
++% Note: menu.bar.width must be valid even if status = false.
++%
++/MenuSelect {
++ /menu.status exch def
++
++ /menu.idx over def
++
++ menu.shift sub
++ menu.item.height mul menu.start.y add
++ menu.start.x exch
++ moveto
++
++ currentpoint
++ menu.status {
++ menu.bar.color setcolor
++ currenttransparency
++ menu.bar.transparency settransparency
++ menu.bar.width menu.bar.height
++ fillrect
++ settransparency
++ } {
++ currentpoint menu.bar.width menu.bar.height image
++ } ifelse
++ moveto
++
++ config.rtl { menu.bar.width menu.text.xofs sub } { menu.text.xofs } ifelse
++ menu.text.yofs rmoveto
++ menu.status {
++ menu.text.select
++ } {
++ menu.text.normal
++ } ifelse
++ setcolor
++ menu.texts menu.idx get menuitemmap
++ menu.status { config.talk { dup speak } if } if
++ currentfont exch font.large setfont show.rtl setfont
++
++ menu.status {
++ % init boot options
++ keepbootoptions .undef eq {
++
++ boot.input.preinit
++
++ false
++ boot.ed.list {
++ dup .inp_show get exch .inp_visible get xor or
++ } forall
++ {
++ boot.input.setup
++ boot.drawlabels
++ } if
++
++ bootoptions.init
++ } {
++ bootoptions.redraw
++ } ifelse
++
++ % set help context
++ &quot;main&quot; help.setcontext
++ menu.texts menu.idx get
++ dup help.findpage &quot;&quot; eq {
++ pop
++ } {
++ help.setcontext
++ } ifelse
++ } if
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Draw main window.
++%
++% ( window ) ==&gt; ( )
++%
++/main.show {
++ window.push
++
++ /menu.shift 0 def
++ /menu.visible.entries menu.texts length menu.max.entries min def
++
++ % get index of default entry
++ /menu.entry 0 def
++ 0 1 menu.texts length 1 sub {
++ dup menu.texts exch get menu.dentry eq { /menu.entry exch def exit } { pop } ifelse
++ } for
++
++ menu.entry menu.visible.entries sub 0 ge {
++ /menu.shift menu.entry menu.texts length menu.visible.entries sub min def
++ } if
++
++ boot.text.options setcolor
++
++ window.current .font get setfont
++
++ /boot.ed.width screen.size pop boot.pos.x boot.pos.y pop sub 20 sub def
++ /boot.ed.height fontheight 2 add def
++
++ /boot.window window.current def
++
++ /boot.ed.list [
++ 0 1 boot.ed.max 1 sub {
++ [
++ boot.pos.x boot.pos.y exch 10 add exch 1 sub 4 -1 roll boot.ed.height 5 add mul add
++ over over moveto boot.ed.width boot.ed.height savescreen
++ cmdlinelength string
++ cmdlinelength
++ .undef
++ cmdlinelength string
++ &quot;More Options&quot;
++ false
++ false
++ ]
++ } for
++ ] def
++
++ boot.ed.list 0 get .inp_label /txt_bootoptions put
++
++ boot.window .ed.list boot.ed.list put
++ boot.window .ed.focus 0 put
++
++ main.drawmenu
++
++ boot.drawlabels
++
++ menu.entry true MenuSelect
++
++ % find default splash mode
++ % 0 1 splash.options length 1 sub {
++ % splash.options over get menu.args menu.entry get exch strstr {
++ % /splash.default exch def
++ % } {
++ % pop
++ % } ifelse
++ % } for
++
++ panel.init
++
++ &quot;main&quot; help.setcontext
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Split command line into hidden and normal part.
++%
++% ( edit_object ) == &gt; ( )
++%
++/splitcmdline {
++ dup length .inp_hidden le { pop return } if
++ dup .inp_hidden get .undef eq { pop return } if
++
++ dup .inp_hidden get over .inp_buf get strcpy pop
++
++ dup .inp_hidden get &quot;showopts&quot; bootopt.find dup {
++ dup &quot;showopts&quot; length add skipspaces
++ 2 index .inp_buf get exch strcpy dropspaces
++ 0 0 put
++ .inp_hidden get dropspaces
++ } {
++ pop dup .inp_hidden get 0 0 put
++ .inp_buf get dropspaces
++ } ifelse
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Handle keyboard input.
++%
++% ( key_in ) ==&gt; ( key_out )
++%
++/main.input {
++ dup 0 eq { return } if
++
++ % handle panel entries
++ panel.input
++
++ dup keyF10 eq {
++ power_off
++ pop 0
++ } if
++
++ dup keyEsc eq { exit_popup pop 0 } if
++
++ dup keyEnter eq {
++ /window.action actStart def
++ pop 0
++ } if
++
++ dup keyUp eq {
++ menu.entry 0 gt {
++ menu.entry false MenuSelect
++ menu.entry menu.shift eq {
++ /menu.shift menu.shift 1 sub def main.drawmenu
++ } if
++ /menu.entry menu.entry 1 sub def
++ menu.entry true MenuSelect
++ } if
++ pop 0
++ } if
++
++ dup keyDown eq {
++ menu.entry menu.texts length 1 sub lt {
++ menu.entry false MenuSelect
++ menu.visible.entries menu.entry menu.shift sub sub 1 eq {
++ /menu.shift menu.shift 1 add def main.drawmenu
++ } if
++ /menu.entry menu.entry 1 add def
++ menu.entry true MenuSelect
++ } if
++ pop 0
++ } if
++
++ dup keyPgUp eq {
++ menu.entry 0 gt {
++ menu.entry false MenuSelect
++ /menu.entry 0 def
++ menu.shift 0 ne {
++ /menu.shift 0 def main.drawmenu
++ } if
++ menu.entry true MenuSelect
++ } if
++ pop 0
++ } if
++
++ dup keyPgDown eq {
++ menu.entry menu.texts length 1 sub lt {
++ menu.entry false MenuSelect
++ /menu.entry menu.texts length 1 sub def
++ menu.texts length menu.visible.entries sub dup menu.shift ne {
++ /menu.shift exch def main.drawmenu
++ } {
++ pop
++ } ifelse
++ menu.entry true MenuSelect
++ } if
++ pop 0
++ } if
++
++ dup 0 ne {
++ &quot;opt&quot; help.setcontext
++ } if
++
++} def
++
++
+
+<a id="themetrunkmageiagfxbootthemetrunksrcpanelinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/src/panel.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/src/panel.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/src/panel.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,200 @@
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% Panel handling.
++%
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Some global vars.
++%
++/panel.size { clip.size pop 24 } def
++/panel.y { clip.size exch pop panel.size exch pop sub 5 sub } def
++/panel.text.y { panel.y 5 add } def
++/panel.text.Fy 0 def
++/panel.font font.normal def
++
++/panel.expert false def
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Init panel.
++%
++% ( ) ==&gt; ( )
++%
++/panel.init {
++
++ /panel.back 0 panel.y moveto panel.size savescreen def
++
++ /panel.entry.help [ keyF1 0 &quot;F1&quot; /panel.help /panel.help.width /panel.help.update .undef ] def
++ /panel.entry.about [ keyF1 0 &quot;F1&quot; /panel.about /panel.about.width /panel.about.update .undef ] def
++
++ % define panel layout
++ /panel.full [
++
++ % [ key x label show_func width_func update_func init_func ]
++
++ about.msg {
++ panel.entry.about
++ } {
++ panel.entry.help
++ } ifelse
++
++ syslinux {
++
++ config.livecd {
++
++ [ keyF2 0 &quot;F2&quot; /panel.lang /panel.lang.width /panel.lang.update /lang.init ]
++ [ keyF3 0 &quot;F3&quot; /panel.video /panel.video.width /panel.video.update /video.init ]
++ [ keyF4 0 &quot;F4&quot; /panel.kernelopts /panel.kernelopts.width /panel.kernelopts.update /kernelopts.init ]
++
++ } {
++
++ [ keyF2 0 &quot;F2&quot; /panel.lang /panel.lang.width /panel.lang.update /lang.init ]
++ [ keyF3 0 &quot;F3&quot; /panel.video /panel.video.width /panel.video.update /video.init ]
++ [ keyF4 0 &quot;F4&quot; /panel.install /panel.install.width /panel.install.update /install.init ]
++ [ keyF5 0 &quot;F5&quot; /panel.dud /panel.dud.width /panel.dud.update /dud.init ]
++ [ keyF6 0 &quot;F6&quot; /panel.kernelopts /panel.kernelopts.width /panel.kernelopts.update /kernelopts.init ]
++
++ 32+64bit_source {
++ 64bit {
++ 32bit_boot_dir .undef ne
++ 64bit_boot_dir .undef ne
++ 32bit_boot_dir 64bit_boot_dir ne
++ and and {
++ [ keyF7 0 &quot;F7&quot; /panel.bits /panel.bits.width /panel.bits.update /bits.init ]
++ } if
++ } if
++ } if
++
++ keymap.mainmenu {
++ [ keyF8 0 &quot;F8&quot; /panel.keymap /panel.keymap.width /panel.keymap.update /keymap.init ]
++ } if
++
++ } ifelse
++
++ xmenu.bits .undef eq { bits.init } if
++
++ } {
++
++ [ keyF2 0 &quot;F2&quot; /panel.lang /panel.lang.width /panel.lang.update /lang.init ]
++ [ keyF3 0 &quot;F3&quot; /panel.kernelopts /panel.kernelopts.width /panel.kernelopts.update /kernelopts.init ]
++ &quot;profiles&quot; findfile dup {
++ /profile.data exch def
++ [ keyF3 0 &quot;F3&quot; /panel.profile /panel.profile.width /panel.profile.update /profile.init ]
++ } { pop } ifelse
++
++ keymap.mainmenu {
++ [ keyF4 0 &quot;F4&quot; /panel.keymap /panel.keymap.width /panel.keymap.update /keymap.init ]
++ } if
++
++ } ifelse
++
++ ] def
++
++ % initialize all
++ panel.full { 6 get dup .undef ne { exec } { pop } ifelse } forall
++
++ /panel panel.full def
++
++ panel.show
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Show panel.
++%
++% ( ) ==&gt; ( )
++%
++/panel.show {
++ panel.font setfont
++
++% panel.bg setcolor
++ 0 panel.y moveto
++% currentpoint
++ panel.back restorescreen
++% currenttransparency
++% 50 settransparency
++% panel.size fillrect
++% settransparency
++% moveto
++
++% panel.border.color setcolor
++% 0 -1 rmoveto
++% 0 1 clip.size pop 3 div { pop putpixel 3 0 rmoveto } for
++
++ % don't change xmenu
++ /xmenu xmenu
++
++ /panel.x config.rtl { clip.size pop } { 0 } ifelse def
++ panel { dup {
++ dup 1 panel.x put
++ dup 4 get exec over 2 get strsize pop add 20 add panel.x exch
++ config.rtl { sub } { add } ifelse
++ /panel.x exch def
++ dup 5 get exec
++ } { pop } ifelse } forall
++
++ def
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Handle keyboard input.
++%
++% ( key_in ) ==&gt; ( key_out )
++%
++/panel.input {
++ panel { dup {
++ dup 0 get 2 index eq { over panel.extra pop 3 get exec pop 0 exit } { pop } ifelse
++ } { pop } ifelse } forall
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Draw panel entry label and move to text field.
++%
++% ( panel ) =&gt; ( )
++%
++/panel.text.moveto {
++ /panel.tmp.x over 1 get 10 config.rtl { sub } { add } ifelse def
++ /panel.tmp.F exch 2 get def
++
++ panel.tmp.x panel.text.y panel.text.Fy add moveto
++ panel.f-key.fg setcolor panel.tmp.F show.rtl
++ panel.normal.fg setcolor
++
++ 6 config.rtl { neg } if panel.text.Fy neg rmoveto
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Do some extra things.
++%
++% ( key ) =&gt; ( key )
++%
++/panel.extra {
++ % move down one menu entry; but only once
++ % see keyDown in main::main.input
++
++ % only for install CDs
++ syslinux not { return } if
++
++ % not for F1
++ dup keyF1 eq { return } if
++
++ panel.extra.fkey .undef eq
++ menu.entry 0 eq
++ menu.entry menu.texts length 1 sub lt
++ and and {
++ /panel.extra.fkey 1 def
++ menu.entry false MenuSelect
++ menu.visible.entries menu.entry menu.shift sub sub 1 eq {
++ /menu.shift menu.shift 1 add def main.drawmenu
++ } if
++ /menu.entry menu.entry 1 add def
++ menu.entry true MenuSelect
++ } if
++} def
++
++
+
+<a id="themetrunkmageiagfxbootthemetrunksrcserialinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/src/serial.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/src/serial.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/src/serial.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,517 @@
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Some vars.
++
++/act.nop 0 def
++/act.boot 1 def
++
++/.sm.setup 0 def
++/.sm.ok 1 def
++
++/serial.action act.nop def
++
++/serial.setup /serial.setup.start def
++
++/serial.menu.index 0 def
++
++/serial.line.status 0 def
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% serial line input event handling
++%
++% ( key -- input_buffer menu_entry action )
++%
++% key
++% bit 0-7 ascii
++% bit 24-32 scan code (0xf0 + serial line number)
++%
++% action
++% 0: ok, stay in input loop
++% 1: switch to text mode
++% &gt;=2: start linux
++%
++/serial.input {
++ dup 24 shr 0x0f and 1 exch shl serial.line.status or /serial.line.status exch def
++
++ 0xffffff and
++
++ % ^? -&gt; ^H
++ dup 0x7f eq { pop 8 } if
++
++ serial.setup exec
++
++ serial.edit
++ dup 0 eq { pop &quot;&quot; -1 0 return } if
++
++ 1 eq { serial.menu.ok } { serial.menu.prev } ifelse
++
++ window.action actCloseInfo eq {
++ /window.action actNothing def
++ window.done
++ } if
++
++ serial.action act.boot eq {
++ % /serial.setup serial.menu.layout serial.menu.index get .sm.setup get def
++
++ serial.cmdline serial.menu_idx 2
++ return
++ } if
++
++ &quot;&quot; -1 0
++} def
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Write string to serial line.
++%
++% ( str1 -- )
++%
++/serial.show {
++ {
++ dup 0x0a eq { 0x0d serial.putc } if
++ serial.putc
++ } forall
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% ( str1 -- )
++%
++/serial.edit.init {
++ serial.edit.buf exch strcpy
++ &quot;&gt; &quot; serial.show serial.show
++} def
++
++/serial.edit.buf 1024 string def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% ( int1 -- int2 )
++%
++/serial.edit {
++ dup 0x0d eq {
++ &quot;\n\n&quot; serial.show
++ pop 1 return
++ } if
++
++ dup 0x1b eq {
++ &quot;\n\n&quot; serial.show
++ pop 2 return
++ } if
++
++ dup 0x08 eq {
++ serial.edit.buf length 0 gt {
++ serial.edit.buf dup length 1 sub 0 put
++ &quot;\x08 \x08&quot; serial.show
++ } if
++ pop 0 return
++ } if
++
++ dup 0x15 eq {
++ serial.edit.buf length 0 gt {
++ serial.edit.buf length {
++ &quot;\x08 \x08&quot; serial.show
++ } repeat
++ serial.edit.buf 0 0 put
++ } if
++ pop 0 return
++ } if
++
++ dup 0x20 ge over 0x7e le and {
++ serial.edit.buf cvp length serial.edit.buf length 1 add gt {
++ serial.edit.buf dup length add dup 1 0 put 0 2 index put
++
++ serial.putc 0 return
++ } if
++ } if
++
++ pop 0
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% ( -- )
++%
++/serial.smenu.init {
++ &quot;\n=== &quot; serial.show
++ smenu .xm_title get exec serial.show
++ &quot; ===\n\n&quot; serial.show
++ smenu .xm_text get exec serial.show
++ &quot;\n\n&quot; serial.show
++
++ /serial.smenu.cnt 0 def
++ /serial.smenu.tmp 256 string def
++
++ smenu .xm_list get {
++ exec
++ serial.smenu.cnt smenu .xm_current get eq { &quot; * &quot; } { &quot; &quot; } ifelse
++ /serial.smenu.cnt inc
++ serial.smenu.cnt
++ smenu .xm_list get length 10 ge { &quot;%2d)%s%s\n&quot; } { &quot;%d)%s%s\n&quot; } ifelse
++ serial.smenu.tmp sprintf
++ serial.smenu.tmp serial.show
++ } forall
++
++ /serial.smenu.tmp xfree
++
++ &quot;\n&quot; serial.show
++
++ &quot;&quot; serial.edit.init
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Draw main menu.
++%
++% ( int1 -- int2 )
++%
++% int1: key
++% int2: key
++%
++/serial.setup.start {
++ /serial.menu.layout [
++ [ /serial.main.setup /serial.main.ok ]
++ xmenu.bits .xm_list get length 1 gt { [ /serial.bits.setup /serial.bits.ok ] } if
++ xmenu.kernelopts .undef ne { [ /serial.kernel.setup /serial.kernel.ok ] } if
++ [ /serial.options.setup /serial.options.ok ]
++ [ /serial.infobox.setup /serial.infobox.ok ]
++ ] def
++
++ % go for text mode (or use 0?)
++ xmenu.video .xm_current 1 put
++
++ &quot;\nopenSUSE 11.1 installation\n\n&quot; serial.show
++
++ /serial.setup /serial.nop def
++
++ serial.menu.again
++
++ pop 0
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Setup main menu.
++%
++% ( -- )
++%
++/serial.main.setup {
++ smenu.main .undef eq {
++ /smenu.main .xm_size array def
++
++ smenu.main .xm_current menu.entry put
++ smenu.main .xm_title &quot;Main Menu&quot; put
++ smenu.main .xm_text &quot;Select a boot entry.&quot; put
++ smenu.main .xm_list [ menu.texts { menuitemmap } forall ] put
++ } if
++
++ /smenu smenu.main def
++
++ serial.smenu.init
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Leave main menu.
++%
++% ( -- )
++%
++/serial.main.ok {
++ serial.edit.buf to_number
++
++ menu.entry false MenuSelect
++
++ serial.smenu.select {
++ /menu.entry smenu .xm_current get def
++ serial.menu.next
++ } {
++ serial.menu.again
++ } ifelse
++
++ menu.entry true MenuSelect
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Setup kernel menu.
++%
++% ( -- )
++%
++/serial.kernel.setup {
++ xmenu.kernelopts .xm_text &quot;Select a predefined set of kernel options.&quot; put
++
++ /smenu xmenu.kernelopts def
++
++ serial.smenu.init
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Leave kernel menu.
++%
++% ( -- )
++%
++/serial.kernel.ok {
++ serial.edit.buf to_number
++ serial.smenu.select { serial.menu.next } { serial.menu.again } ifelse
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Setup arch menu.
++%
++% ( -- )
++%
++/serial.bits.setup {
++ xmenu.bits .xm_text &quot;32 or 64 bit?&quot; put
++
++ /smenu xmenu.bits def
++
++ serial.smenu.init
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Leave arch menu.
++%
++% ( -- )
++%
++/serial.bits.ok {
++ serial.edit.buf to_number
++ serial.smenu.select { serial.menu.next } { serial.menu.again } ifelse
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Setup lang menu.
++%
++% ( -- )
++%
++/serial.lang.setup {
++ /smenu xmenu.lang def
++
++ serial.smenu.init
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Leave lang menu.
++%
++% ( -- )
++%
++/serial.lang.ok {
++ serial.edit.buf to_number
++ serial.smenu.select { serial.menu.next } { serial.menu.again } ifelse
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Setup options menu.
++%
++% ( -- )
++%
++/serial.options.setup {
++ &quot;=== Boot Options ===\n&quot; serial.show
++
++&quot;
++Edit boot options.
++
++- lang=&lt;locale&gt; selects the default language
++- install=&lt;url&gt; sets the install repository
++- dud=&lt;url&gt; adds a driverupdate (option can be given more than once)
++
++&quot;
++ serial.show
++
++ boot.ed.list buildcmdline /serial.menu_idx exch def /serial.cmdline exch def
++
++ serial.console.option dup .undef ne {
++ &quot; %s&quot; serial.cmdline dup length add sprintf
++ } { pop } ifelse
++
++ serial.cmdline serial.edit.init
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Options -&gt; Boot.
++%
++% ( -- )
++%
++/serial.options.ok {
++ serial.cmdline serial.edit.buf strcpy pop
++
++ % point to infobox
++ /serial.menu.index inc
++
++ /serial.action act.boot def
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Setup infobox.
++%
++% ( -- )
++%
++/serial.infobox.setup {
++ /smenu serial.infobox def
++
++ serial.smenu.init
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Leave infobox.
++%
++% ( -- )
++%
++/serial.infobox.ok {
++ serial.edit.buf to_number
++ serial.smenu.select {
++ serial.menu.prev
++ /window.action actCloseInfo def
++ } {
++ serial.menu.again
++ } ifelse
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Do nothing.
++%
++% ( -- )
++%
++/serial.nop {
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Convert String to number.
++%
++% ( str1 -- int1 )
++%
++% Returns -1 if str1 is not a number.
++%
++/to_number {
++ dup cvn
++ dup 0 ne { exch pop return } if
++ pop
++ dup &quot;&quot; eq exch &quot;0&quot; eq or { 0 } { -1 } ifelse
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Ensure serial.menu.index has a valid value.
++%
++% ( -- )
++%
++/serial.menu.index.normalize {
++ serial.menu.index serial.menu.layout length gt { /serial.menu.index serial.menu.layout length def } if
++ serial.menu.index 0 lt { /serial.menu.index 0 def } if
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Reinit current menu.
++%
++% ( -- )
++%
++/serial.menu.again {
++ serial.menu.index.normalize
++ serial.menu.layout serial.menu.index get .sm.setup get exec
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Run 'ok' action for current menu.
++%
++% ( -- )
++%
++/serial.menu.ok {
++ serial.menu.index.normalize
++ serial.menu.layout serial.menu.index get .sm.ok get exec
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Go to next menu.
++%
++% ( -- )
++%
++/serial.menu.next {
++ /serial.menu.index inc
++ serial.menu.again
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Go to previous menu.
++%
++% ( -- )
++%
++/serial.menu.prev {
++ /serial.menu.index dec
++ serial.menu.again
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Select menu item (update smenu-&gt;.xm_current).
++%
++% ( int1 -- bool1 )
++%
++/serial.smenu.select {
++ smenu .xm_list get length over lt over 0 lt or {
++ pop
++
++ false
++ } {
++ dup 0 eq { pop smenu .xm_current get 1 add } if
++
++ 1 sub smenu .xm_current rot put
++
++ true
++ } ifelse
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Build 'console' option for kernel.
++%
++% ( -- str1 )
++%
++/serial.console.option {
++
++ /serial.tmp.bm 0 def
++ {
++ serial.line.status 1 serial.tmp.bm shl and { exit } if
++ /serial.tmp.bm inc
++ serial.tmp.bm 8 ge { /serial.tmp.bm .undef def exit } if
++ } loop
++
++ serial.tmp.bm .undef eq { .undef return } if
++ serial.lines length serial.tmp.bm le { .undef return } if
++
++ serial.lines serial.tmp.bm get 2 aget dup .undef ne {
++ serial.tmp.bm serial.getbaud exch
++ &quot;console=%s,%d&quot; serial.console.buf sprintf
++ serial.console.buf
++ } if
++
++} def
++
++/serial.console.buf 64 string def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Setup serial lines.
++%
++0 1 serial.lines length 1 sub {
++ serial.lines over get dup length 2 ge {
++ dup 0 get cvn exch 1 get cvn serial.setconfig
++ } {
++ pop pop
++ } ifelse
++} for
++
++serial.init
++
+
+<a id="themetrunkmageiagfxbootthemetrunksrcspeechinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/src/speech.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/src/speech.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/src/speech.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,121 @@
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% Speech related function.
++%
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++
++
++/.talk_text 0 def
++/.talk_sound 1 def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% ( text -- )
++%
++/speak {
++ % skip leading TAB
++ dup 0 get '\x09' eq { 1 add } if
++
++ /last.spoken xfree
++ /last.spoken over strdup def
++
++ dup _speak { pop return } if
++ dup retranslate dup rot ne { _speak } if pop
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Say text.
++%
++% ( str -- bool )
++%
++% str: text
++% bool: sound sample found
++%
++/_speak {
++ talk_array {
++ dup .talk_text get 2 index eq {
++ .talk_sound get wav.playlater
++ pop true return
++ } {
++ pop
++ } ifelse
++ } forall
++ pop
++ false
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Load sound samples.
++%
++% ( -- )
++%
++/load_talk {
++ /talk_file &quot;en.tlk&quot; findfile def
++
++ talk_file .undef eq { return } if
++
++ talk_file getdword 0x692741e8 ne { return } if
++
++ locale.texts.en .undef eq {
++ /locale.texts.en &quot;en_US&quot; &quot;%s.tr&quot; loadtexts def
++ } if
++
++ talk_array .undef ne {
++ talk_array { free } forall
++ } if
++
++ /talk_array xfree
++
++ /talk_array [
++ 0 1 talk_file 4 add getdword 1 sub {
++ [
++ exch 8 mul 8 add talk_file add
++ dup getdword talk_file add cvs
++ exch 4 add getdword talk_file add
++ ]
++ } for
++ ] def
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Load sound samples.
++%
++% ( -- )
++%
++/load_talk_dialog {
++ window.dialog
++ dup .title &quot;Just a second...&quot; put
++ dup .text &quot;Please wait while speech files are being loaded...&quot; put
++ dup window.init window.show
++
++ load_talk
++ config.volume sound.setvolume
++
++ window.done
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Get english text from translated text.
++%
++% ( str1 -- str2 )
++%
++% str1: text
++% str2: text in en_US
++%
++/retranslate {
++ 0 locale.texts {
++ 2 index eq {
++ locale.texts.en exch aget dup .undef eq { pop dup } if exch pop
++ return
++ } if
++ 1 add
++ } forall
++ pop
++} def
++
++
+
+<a id="themetrunkmageiagfxbootthemetrunksrcsysteminc">Added: theme/trunk/mageia-gfxboot-theme/trunk/src/system.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/src/system.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/src/system.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,1406 @@
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% Some basic definitions.
++%
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++
++
++% some key codes
++/keyEsc 0x0000001b def
++/keyEnter 0x0000000d def
++/keyTab 0x00000009 def
++/keyShiftTab 0x0f000000 def
++/keyF1 0x3b000000 def
++/keyF2 0x3c000000 def
++/keyF3 0x3d000000 def
++/keyF4 0x3e000000 def
++/keyF5 0x3f000000 def
++/keyF6 0x40000000 def
++/keyF7 0x41000000 def
++/keyF8 0x42000000 def
++/keyF9 0x43000000 def
++/keyF10 0x44000000 def
++/keyF11 0x85000000 def
++/keyF12 0x86000000 def
++/keyHome 0x47000000 def
++/keyUp 0x48000000 def
++/keyPgUp 0x49000000 def
++/keyLeft 0x4b000000 def
++/keyRight 0x4d000000 def
++/keyEnd 0x4f000000 def
++/keyDown 0x50000000 def
++/keyPgDown 0x51000000 def
++/keyIns 0x52000000 def
++/keyDel 0x53000000 def
++/keyShiftF1 0x54000000 def
++/keyShiftF2 0x55000000 def
++/keyShiftF3 0x56000000 def
++/keyShiftF4 0x57000000 def
++/keyShiftF5 0x58000000 def
++/keyShiftF6 0x59000000 def
++/keyShiftF7 0x5a000000 def
++/keyShiftF8 0x5b000000 def
++/keyShiftF9 0x5c000000 def
++/keyShiftF10 0x5d000000 def
++/keyShiftF11 0x87000000 def
++/keyShiftF12 0x88000000 def
++/keyCtrlF1 0x5e000000 def
++/keyCtrlF2 0x5f000000 def
++/keyCtrlF3 0x60000000 def
++/keyCtrlF4 0x61000000 def
++/keyCtrlF5 0x62000000 def
++/keyCtrlF6 0x63000000 def
++/keyCtrlF7 0x64000000 def
++/keyCtrlF8 0x65000000 def
++/keyCtrlF9 0x66000000 def
++/keyCtrlF10 0x67000000 def
++/keyAltF1 0x68000000 def
++/keyAltF2 0x69000000 def
++/keyAltF3 0x6a000000 def
++/keyAltF4 0x6b000000 def
++/keyAltF5 0x6c000000 def
++/keyAltF6 0x6d000000 def
++/keyAltF7 0x6e000000 def
++/keyAltF8 0x6f000000 def
++/keyAltF9 0x70000000 def
++/keyAltF10 0x71000000 def
++/keyCtrlLeft 0x73000000 def
++/keyCtrlRight 0x74000000 def
++/keyCtrlEnd 0x75000000 def
++/keyCtrlDown 0x76000000 def
++/keyCtrlHome 0x76000000 def
++/keyCtrlUp 0x84000000 def
++/keyStatus 0xff000000 def
++
++/statusAlt 0x0208 def
++/statusAltL 0x0200 def
++/statusAltR 0x0008 def
++/statusCtrl 0x0104 def
++/statusShift 0x0003 def
++
++/CapsLock { 0x417 cvp getbyte 0x40 and 0 ne } def
++
++/black 0 def
++/white 0xffffff def
++
++% input object fields
++/.inp_x 0 def % x pos
++/.inp_y 1 def % y pos
++/.inp_back 2 def % background pixmap
++/.inp_buf 3 def % input buffer
++/.inp_buf_len 4 def % input buffer length
++/.inp_int 5 def % internal state array, see below
++% optional fields
++/.inp_hidden 6 def % hidden buffer
++/.inp_label 7 def % input field label
++/.inp_visible 8 def % field is visible
++/.inp_show 9 def % field should be visible
++
++/.inp_int_cur 0 def % current edit char offset
++/.inp_int_cursor 1 def % cursor pos (pixel)
++/.inp_int_shift 2 def % input line shifted (pixel)
++/.inp_int_flags 3 def % bit 0: cursor visible
++/.inp_int_saved_cursor 4 def % saved cursor background
++
++% boot loader
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% bootloader - boot loader type
++%
++% group: system
++%
++% ( -- int1 )
++%
++% int1: boot loader type (0: lilo, 1:syslinux/isolinux, 2: grub)
++%
++/bootloader sysconfig getbyte def
++
++/lilo bootloader 0 eq def
++/syslinux bootloader 1 eq def
++/grub bootloader 2 eq def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% boot_failsafe - failsafe options the user selected (bitmask)
++%
++% group: system
++%
++% ( -- int1 )
++%
++% int1: option bitmask
++% bit 0: SHIFT pressed
++% bit 1: no graphics
++% bit 2: no monitor detection
++%
++/boot_failsafe sysconfig 3 add getbyte def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% bootdrive - drive the BIOS booted from
++%
++% group: system
++%
++% ( -- int1 )
++%
++% int1: BIOS drive id
++%
++/bootdrive sysconfig 5 add getbyte def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% mediatype - type of media we booted from
++%
++% group: system
++%
++% ( -- int1 )
++%
++% int1: media type (0 disk, 1 floppy, 2 cdrom)
++%
++/mediatype sysconfig 2 add getbyte def
++
++/m_disk 0 def
++/m_floppy 1 def
++/m_cdrom 2 def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% biosmem - BIOS reported memory size
++%
++% group: mem
++%
++% ( -- int1 )
++%
++% int1: total memory size according to BIOS
++%
++/biosmem sysconfig 20 add getdword def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% sectorsize - sector size
++%
++% group: mem system
++%
++% ( -- int1 )
++%
++% int1: sector size in bytes
++%
++/sectorsize
++ 1
++ sysconfig 1 add getbyte
++ 20 min % max. 1 MB
++ dup 0 eq { pop 9 } if
++ shl
++def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% getinfo - type of info box
++%
++% group: system
++%
++% ( int1 -- int2 )
++%
++% int1: type of info box we have to show
++% int2: some data
++%
++% Note: really weird, should be replaced by something more obvious.
++%
++/getinfo {
++ 2 shl
++ sysconfig 12 add exch add getdword
++} def
++
++
++% bool values
++/true 0 0 eq def
++/false 0 0 ne def
++
++% type values
++/t_none 0 def
++/t_int 1 def
++/t_unsigned 2 def
++/t_bool 3 def
++/t_string 4 def
++/t_code 5 def
++/t_ret 6 def
++/t_prim 7 def
++/t_sec 8 def
++/t_dict_idx 9 def
++/t_array 10 def
++/t_end 11 def
++/t_ptr 12 def
++
++/.value { t_int settype } def
++/.undef 0 t_none settype def
++/.end 0 t_end settype def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Print string (for debugging).
++%
++% ( string ) ==&gt; ( )
++%
++/string.print {
++ dup
++ currentpoint currentpoint 5 -1 roll strsize image moveto
++ show
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Print number (for debugging).
++%
++% ( number ) ==&gt; ( )
++%
++/number.print {
++ 32 string
++ exch over
++ &quot;%08x&quot; exch sprintf
++ dup string.print
++ free
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Print obj (for debugging).
++%
++% ( obj ) ==&gt; ( )
++%
++/obj.print {
++ 64 string
++ exch dup
++ .value exch gettype
++ &quot;%x:%08x&quot; 3 index sprintf
++ dup string.print
++ free
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Print (for debugging).
++%
++% ( obj ) ==&gt; ( )
++%
++/print {
++ dup gettype t_int eq { number.print return } if
++ dup gettype t_string eq { string.print return } if
++ obj.print
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Convert object to pointer.
++%
++% ( obj ) ==&gt; ( ptr )
++%
++/cvp { t_ptr settype } def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Convert object to string.
++%
++% ( obj ) ==&gt; ( string )
++%
++/cvs { t_string settype } def
++
++
++% base num char
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Convert object to number.
++%
++% ( obj ) ==&gt; ( int )
++%
++/cvn {
++ dup gettype t_string eq {
++ 1 % sign
++ exch dup 0 get '-' eq {
++ exch pop 1 add -1 exch
++ } if
++ 10 % initial base
++ 0 % value
++ rot
++ {
++ dup 'a' ge { 0x20 sub } if
++ dup 'X' eq { pop pop pop 16 0 '0' } if
++ '0' sub
++ dup 9 gt { 7 sub } if
++ dup 0 lt over 4 index ge or { pop exit } if
++ exch 2 index mul add
++ } forall
++ exch pop mul
++ } {
++ t_int settype
++ } ifelse
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Arguments like snprintf.
++%
++% ( obj_1 ... obj_n string_1 string_2 ) ==&gt; ( )
++%
++/sprintf {
++ dup cvp length exch snprintf
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Allocate new string.
++%
++% ( size ) ==&gt; ( string )
++/string {
++ 1 add malloc cvs
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Increment variable.
++%
++% ( dict_ref ) ==&gt; ( )
++%
++/inc {
++ dup exec 1 add def
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Decrement variable.
++%
++% ( dict_ref ) ==&gt; ( )
++%
++/dec {
++ dup exec 1 sub def
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Copy src to dst.
++%
++% Watch overlapping src &amp; dst!
++%
++% ( dst src ) ==&gt; ( dst )
++%
++/strcpy {
++ &quot;%s&quot; 2 index sprintf
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Duplicate string.
++%
++% ( string ) ==&gt; ( string )
++%
++/strdup {
++ dup length string exch strcpy
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Concatenate strings.
++%
++% ( string1 string2 ) ==&gt; ( string1 )
++%
++/strcat {
++ over dup length add exch strcpy pop
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Test for AltGr.
++%
++% ( ) ==&gt; ( bool )
++%
++/is_altGr {
++ keystat statusAltR and 0 ne keystat statusAltL and 0 eq and
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Keyboard mapping.
++%
++% ( key ) ==&gt; ( key )
++%
++/mapkey {
++ dup 24 shr 0xff and /key.code exch def
++ is_altGr {
++ % bios is too smart...
++ key.code 0x78 ge key.code 0x83 le and { /key.code key.code 0x76 sub def } if
++ } if
++ 0 1 config.keymap length 1 sub {
++ config.keymap exch get
++ dup 0 get key.code eq {
++ 1
++ keystat statusShift and { pop 2 } if
++ is_altGr { pop 3 } if
++ get
++ exch pop
++ } {
++ pop
++ } ifelse
++ } for
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Set password mode font property.
++%
++% ( font ) ==&gt; ( font )
++%
++/pwmode {
++ dup gettype t_ptr eq {
++ .value 0x80000000 or t_ptr settype
++ } if
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Test for password mode.
++%
++% ( font -- true|false )
++%
++/is.pwmode {
++ dup gettype t_ptr eq {
++ .value 0x80000000 and 0 ne
++ } {
++ false
++ } ifelse
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Show one-line string right aligned.
++%
++% ( string ) ==&gt; ( )
++%
++/showright1 {
++ dup strsize pop neg 0 rmoveto currentpoint rot show currentpoint exch pop exch pop moveto
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Show string right aligned.
++%
++% ( string ) ==&gt; ( )
++%
++/showright {
++ '\n' split
++ currentpoint pop
++ false 2 index
++
++ % array x not_first? array
++ {
++ % array x not_first? elem
++
++ over {
++ &quot;\n&quot; show
++ 2 index currentpoint exch pop moveto
++ } if
++
++ dup showright1 free
++
++ pop true
++ } forall
++ pop pop
++ free
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Show string right/left aligned.
++%
++% ( string ) ==&gt; ( )
++%
++/show.rtl {
++ config.rtl { showright } { show } ifelse
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Show string centered.
++%
++% ( string ) ==&gt; ( )
++%
++/showcenter {
++ dup strsize pop 2 div neg 0 rmoveto show
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Generate pseudo random number.
++% Good enough for boot loader splash screen.
++%
++% ( ) ==&gt; ( int )
++%
++/rand {
++ rand.start 59 mul 97 add 0x7fffffff and
++ /rand.start over def
++} def
++
++% start value
++/rand.start time def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% ( date ) ==&gt; ( weekday )
++%
++% (Monday: 0)
++%
++% d + [26*(m+1)/10] + j + [j/4] + [c/4] - 2 c - 2
++%
++/weekday {
++ dup day exch
++ dup year exch
++ month dup 2 le { 12 add exch 1 sub exch } if
++ 1 add 26 mul 10 div
++ exch dup
++ 100 mod dup 4 div add
++ exch 100 div dup 4 div exch 2 mul sub
++ add add add
++ 7 mod 12 add
++ 7 mod
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% ( date ) ==&gt; ( day )
++%
++/day {
++ 0xff and
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% ( date ) ==&gt; ( month )
++%
++/month {
++ 8 shr 0xff and
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% ( date ) ==&gt; ( year )
++%
++/year {
++ 16 shr
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% Read CMOS RAM.
++%
++% ( index ) ==&gt; ( value )
++%
++/nvram {
++ 0x70 exch outbyte
++ 0x71 inbyte
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% readsector - read sector
++%
++% group: system
++%
++% ( int1 -- ptr1 )
++%
++% int1: sector number
++% ptr1: buffer with sector data or .undef. Use @free to free the buffer.
++%
++% Note: does not return on error. Returns .undef if function is not implemented.
++%
++/readsector {
++ _readsector
++ dup .undef eq { return } if
++
++ sectorsize malloc dup rot over length memcpy
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% gfxconfig.data - return array with gfxboot config entries
++%
++% Reads and parses &quot;gfxboot.cfg&quot; when called first time.
++%
++% group: system
++%
++% ( -- array1 )
++%
++% array1: config values
++%
++% array1 may be empty but is never .undef.
++% Elements of array1 (if any) are arrays of three strings: [ section key value ].
++%
++/gfxconfig.data {
++
++ % read file and copy to temp string (we need the final 0)
++ &quot;gfxboot.cfg&quot; findfile dup .undef ne {
++ dup dup length dup string dup cvp 4 2 roll memcpy exch free
++ } {
++ pop &quot;&quot;
++ } ifelse
++
++ % free temp string and create temp array
++ /gfxconfig.data over '\n' split def free
++
++ % modifies gfxconfig.data
++ /gfxconfig.data [
++
++ &quot;base&quot; % default section
++
++ gfxconfig.data {
++
++ skipspaces
++
++ dup 0 get dup 0 eq over ';' eq or exch '#' eq or {
++ % empty or comment
++ pop
++ } {
++ dup 0 get '[' eq {
++ % [section]
++ 1 add
++ dup &quot;]&quot; strstr dup {
++ % put new section on stack
++ 1 sub over exch 0 put
++ exch free
++ } {
++ % wrong [section] entry
++ pop pop
++ } ifelse
++ } {
++ % key=value?
++ dup &quot;=&quot; strstr dup {
++ over over 1 sub over exch 0 put add
++ [ 3 index 4 2 roll ] exch
++ } {
++ % no &quot;=&quot;
++ pop pop
++ } ifelse
++ } ifelse
++ } ifelse
++ } forall
++
++ free
++ ]
++
++ % free temp array
++ gfxconfig.data free
++
++ def
++
++ gfxconfig.data
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% gfxconfig.layout - return array with config file sections
++%
++% group: system
++%
++% ( -- array1 )
++%
++% array1: section names
++%
++% array1 may be empty but is never .undef.
++%
++/gfxconfig.layout {
++
++ /gfxconfig.layout [ &quot;base&quot; ] def
++
++ &quot;layout&quot; gfxconfig.array_str
++ dup .undef ne {
++ gfxconfig.layout free
++ [ exch { } forall &quot;base&quot; ] /gfxconfig.layout exch def
++ } {
++ pop
++ } ifelse
++
++ gfxconfig.layout
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% gfxconfig.getentry_s - return gfxboot config file entry
++%
++% group: system
++%
++% ( str1 str2 -- str3 )
++%
++% str1: section
++% str2: config entry key
++% str3: config value (or .undef)
++%
++/gfxconfig.getentry_s {
++ .undef
++ gfxconfig.data {
++ 3 index over 0 get eq 3 index 2 index 1 get eq and {
++ 2 get exch pop exit
++ } {
++ pop
++ } ifelse
++ } forall
++
++ exch pop exch pop
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% gfxconfig.getentry - return raw gfxboot config file entry
++%
++% group: system
++%
++% ( str1 -- str2 )
++%
++% str1: config entry key
++% str2: config value (or .undef)
++%
++/gfxconfig.getentry {
++ .undef
++
++ gfxconfig.layout {
++ 2 index gfxconfig.getentry_s
++ dup .undef eq {
++ pop
++ } {
++ exch pop
++ exit
++ } ifelse
++ } forall
++
++ exch pop
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% gfxconfig.str - return gfxboot config file entry: string
++%
++% group: system
++%
++% ( str1 -- str2 )
++%
++% str1: config entry key
++% str2: config value (or .undef)
++%
++/gfxconfig.str {
++ gfxconfig.getentry dup .undef ne { strdup dup dropspaces } if
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% gfxconfig.int - return gfxboot config file entry: integer
++%
++% group: system
++%
++% ( str1 -- int1 )
++%
++% str1: config entry key
++% int1: config value (or .undef)
++%
++/gfxconfig.int {
++ gfxconfig.getentry dup .undef ne { cvn } if
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% gfxconfig.int2 - return gfxboot config file entry: two integers
++%
++% group: system
++%
++% ( str1 -- int1 int2 )
++%
++% str1: config entry key
++% int1: first config value (or .undef)
++% int2: second config value (or .undef)
++%
++/gfxconfig.int2 {
++ gfxconfig.array_int dup .undef eq { pop [ ] } if
++ dup 0 aget over 1 aget rot free
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% gfxconfig.array_str - return gfxboot config file entry: array of strings
++%
++% group: system
++%
++% ( str1 -- array1 )
++%
++% str1: config entry key
++% array1: config value (or .undef)
++%
++/gfxconfig.array_str {
++ gfxconfig.getentry dup .undef ne { ',' split } if
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% gfxconfig.array_int - return gfxboot config file entry: array of integers
++%
++% group: system
++%
++% ( str1 -- array1 )
++%
++% str1: config entry key
++% array1: config value (or .undef)
++%
++/gfxconfig.array_int {
++ gfxconfig.array_str dup .undef ne {
++ [ exch
++ { dup .undef ne { cvn } if } forall
++ ]
++ } if
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% gfxconfig.set.str - initialize variable with gfxboot config file entry
++%
++% group: system
++%
++% ( dict1 str1 str2 -- )
++%
++% dict1: variable to modify
++% str1: config entry key
++% str2: default value
++%
++/gfxconfig.set.str {
++ exch gfxconfig.str
++ dup .undef ne { exch } if pop def
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% gfxconfig.set.int - initialize variable with gfxboot config file entry
++%
++% group: system
++%
++% ( dict1 str1 int1 -- )
++%
++% dict1: variable to modify
++% str1: config entry key
++% int1: default value
++%
++/gfxconfig.set.int {
++ exch gfxconfig.int
++ dup .undef ne { exch } if pop def
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% gfxconfig.set.int2 - initialize two variables with gfxboot config file entry
++%
++% group: system
++%
++% ( dict1 dict2 str1 int1 int2 -- )
++%
++% dict1: first variable to modify
++% dict2: second variable to modify
++% str1: config entry key
++% int1: first default value
++% int2: second default value
++%
++/gfxconfig.set.int2 {
++ rot gfxconfig.int2
++ % dict1 dict2 def1 def2 val1 val2
++ exch 4 -1 roll exch
++ % dict1 dict2 def2 val2 def1 val1
++ dup .undef ne { exch } if pop
++ 5 -1 roll exch def
++ % dict2 def2 val2
++ dup .undef ne { exch } if pop def
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% gfxconfig.set.bool - initialize variable with gfxboot config file entry
++%
++% group: system
++%
++% ( dict1 str1 bool1 -- )
++%
++% dict1: variable to modify
++% str1: config entry key
++% bool1: default value
++%
++/gfxconfig.set.bool {
++ exch gfxconfig.int
++ dup .undef ne { 0 ne exch } if pop def
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% gfxconfig.set.array_str - initialize variable with gfxboot config file entry
++%
++% group: system
++%
++% ( dict1 str1 array1 -- )
++%
++% dict1: variable to modify
++% str1: config entry key
++% array1: default value
++%
++/gfxconfig.set.array_str {
++ exch gfxconfig.array_str
++ dup .undef ne { exch } if pop def
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% gfxconfig.set.array_int - initialize variable with gfxboot config file entry
++%
++% group: system
++%
++% ( dict1 str1 array1 -- )
++%
++% dict1: variable to modify
++% str1: config entry key
++% array1: default value
++%
++/gfxconfig.set.array_int {
++ exch gfxconfig.array_int
++ dup .undef ne { exch } if pop def
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% split - split string
++%
++% group:
++%
++% ( str1 int1 -- array1 )
++%
++% str1: string
++% int1: char
++% array1: array of strings
++%
++/split {
++
++ % split does not work if str1 is in a special memory region (where
++ % 'cvp length' does not work). So we dup it first.
++
++ exch strdup dup rot
++
++ currenteotchar exch seteotchar exch
++
++ [ exch
++
++ {
++ dup strdup exch
++ dup length add
++
++ dup cvp length 1 le { pop exit } if
++
++ 1 add
++
++ } loop
++
++ ]
++
++ exch seteotchar
++
++ exch free
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% join - join array of strings
++%
++% group:
++%
++% ( array1 str1 -- str2 )
++%
++% array1: array of strings
++% str1: separator
++% str2: complete string
++%
++/join {
++ over length 0 eq { pop pop 0 string return } if
++
++ over length 1 sub over length mul
++ 2 index { length add } forall
++ string
++
++ % note: last element is not followed by separator because it exceeds
++ % the destination string size
++ rot {
++ strcat over strcat
++ } forall
++
++ exch pop
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Skip leading non-spaces.
++%
++% ( string ) ==&gt; ( string )
++%
++/skipnonspaces {
++ { dup 0 get dup 0 ne exch ' ' ne and { 1 add } { exit } ifelse } loop
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Skip leading spaces.
++%
++% ( string ) ==&gt; ( string )
++%
++/skipspaces {
++ { dup 0 get ' ' eq { 1 add } { exit } ifelse } loop
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Drop spaces at string end.
++% Modifies string!
++%
++% ( string ) ==&gt; ( )
++%
++/dropspaces {
++ dup length
++ dup 0 eq {
++ pop pop
++ } {
++ 1 sub
++ -1 0 {
++ over over get ' ' eq { over exch 0 put } { pop exit } ifelse
++ } for
++ pop
++ } ifelse
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Test if string[ofs-1]/string[ofs] is a word boundary.
++%
++% ( string ofs ) ==&gt; ( true|false )
++%
++% boundary is either space/non-space or non-space/(space|'=')
++%
++/iswordboundary {
++ dup 0 eq { pop pop true return } if
++
++ add dup 1 sub 0 get exch 0 get
++
++ over ' ' eq over ' ' gt and { pop pop true return } if
++ over ' ' gt over dup ' ' eq exch dup '=' eq exch 0 eq or or and { pop pop true return } if
++
++ pop pop false
++} def
++
++
++%% findmode - find video mode number
++%
++% group: gfx.screen
++%
++% ( int1 int2 int3 -- int4 )
++%
++% int1, int2: width, height
++% int3: color bits
++% int4: mode number (or .undef)
++%
++% example
++% 1024 768 16 findmode setmode % 1024x768, 16-bit color mode
++%
++/findmode {
++ 0 1 videomodes {
++ videomodeinfo dup .undef eq {
++ pop pop pop pop
++ } {
++ % compare width, height, colors
++ 6 index 4 index eq 6 index 4 index eq and 5 index 3 index eq and {
++ 7 1 roll 6 { pop } repeat 0xbfff and return
++ } {
++ pop pop pop pop
++ } ifelse
++ } ifelse
++ } for
++
++ pop pop pop .undef
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% Replace substring. Returns newly allocated string.
++%
++% ( str key value ) ==&gt; ( new_str )
++%
++% Replaces first occurence of 'key' in str with 'value'.
++%
++/strreplace {
++ 2 index 2 index strstr dup 0 ne {
++ 1 sub
++ over length 3 index length sub 4 index length add string
++ dup cvp 5 index cvp 3 index memcpy
++ dup 6 1 roll over add exch 5 -1 roll exch add
++ 4 -1 roll length add 3 1 roll &quot;%s%s&quot; exch sprintf
++ } {
++ pop pop pop strdup
++ } ifelse
++
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Search for option in cmdline.
++% Returns .undef if not found.
++%
++% ( cmdline option_name ) ==&gt; ( option_start )
++%
++/bootopt.find {
++ /_bo.opt exch def
++ /_bo.cmdline exch def
++ /_bo.= _bo.opt dup length 1 sub get '=' eq def
++
++ {
++ _bo.cmdline _bo.opt strstr
++ dup {
++ dup 1 eq {
++ true
++ } {
++ dup 2 sub _bo.cmdline exch get ' ' eq
++ } ifelse
++
++ {
++ _bo.cmdline over _bo.opt length add 1 sub get
++ dup '=' eq
++ over ' ' eq or
++ exch 0 eq or
++ _bo.= or
++ } {
++ false
++ } ifelse
++
++ _bo.cmdline rot add exch
++
++ {
++ 1 sub exit
++ } {
++ /_bo.cmdline exch def
++ } ifelse
++ } {
++ pop
++ .undef exit
++ } ifelse
++ } loop
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Search for second occurence of option in cmdline.
++% Returns .undef if not found.
++%
++% ( cmdline option_name ) ==&gt; ( option_start )
++%
++/bootopt.find2 {
++ over over bootopt.find dup .undef eq {
++ pop pop pop .undef
++ } {
++ 1 add rot pop exch bootopt.find
++ } ifelse
++} def
++
++
++% Remove option from cmdline. Returns removed option or .undef.
++%
++% cmdline is modified, option_entry is allocated dynamicyll and must be
++% freed later.
++%
++% ( cmdline option_name -- option_entry )
++%
++/bootopt.remove {
++ bootopt.find dup .undef ne {
++ dup
++ skipnonspaces dup skipspaces 2 index sub rot rot over sub string over strcpy
++ rot rot
++ {
++ over over exch get
++ over over 0 exch put {
++ 1 add
++ } {
++ exit
++ } ifelse
++ } loop
++ pop pop
++ } if
++} def
++
++
++% Video memory in kb.
++%
++% ( -- int )
++%
++/video.memory {
++ /video.memory 0 sysinfo def
++ video.memory
++} def
++
++
++% Graphics card OEM info.
++%
++% ( -- string )
++%
++/video.oem {
++ /video.oem 1 sysinfo strdup def
++ video.oem
++} def
++
++
++% Graphics card vendor name.
++%
++% ( -- string )
++%
++/video.vendor {
++ /video.vendor 2 sysinfo strdup def
++ video.vendor
++} def
++
++
++% Graphics card product name.
++%
++% ( -- string )
++%
++/video.product {
++ /video.product 3 sysinfo strdup def
++ video.product
++} def
++
++
++% Graphics card revision.
++%
++% ( -- string )
++%
++/video.revision {
++ /video.revision 4 sysinfo strdup def
++ video.revision
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Free memory.
++%
++% Like free, but accepts dict entries, too.
++%
++% ( obj -- )
++%
++/xfree {
++ dup gettype
++ t_dict_idx eq {
++ dup exec exch .undef def
++ } if
++ free
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Free array and all its elements.
++%
++% If array is a dict entries, undefines it, too.
++%
++% ( array -- )
++%
++/afree {
++ dup .undef ne {
++ dup gettype t_dict_idx eq { dup exec exch .undef def } if
++ dup { free } forall
++ free
++ } {
++ pop
++ } ifelse
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Get array element.
++%
++% Like get, but returns .undef if index is outside array bounds.
++%
++% ( array index -- obj )
++%
++/aget {
++ over length over gt { get } { pop pop .undef } ifelse
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Search for array element.
++%
++% ( array key -- bool )
++%
++/iselement {
++ false rot {
++ 2 index eq { pop true exit } if
++ } forall
++ exch pop
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% pc speaker beep.
++%
++% ( freq duration -- )
++%
++% freq in Hz, duration in microseconds.
++%
++/beep {
++ exch
++ 0x61 inbyte
++ dup 3 or 0x61 exch outbyte
++ 0x43 0xb6 outbyte
++ exch 2386360 exch div
++
++ dup 0x42 exch outbyte
++ 8 shr 0x42 exch outbyte
++
++ exch usleep
++
++ 0x61 exch outbyte
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Play movie.
++%
++% ( str1 -- )
++%
++% Image filename template.
++%
++/play_movie {
++ 64 string
++
++ 0
++
++ {
++ 1 add
++ dup 3 index 3 index sprintf
++
++ over findfile dup .undef eq {
++ pop exit
++ } {
++ 10000 usleep
++ currentimage
++ over setimage 0 0 image.size image
++ setimage
++ free
++ } ifelse
++
++
++ } loop
++
++ pop free pop
++
++} def
++
++
+
+<a id="themetrunkmageiagfxbootthemetrunksrctimeoutinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/src/timeout.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/src/timeout.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/src/timeout.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,147 @@
++%
++% include before common.inc
++%
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Boot timeout counter.
++%
++% ( timeout time ) ==&gt; ( )
++%
++% timeout: total time in 18.2Hz steps, time: current value.
++%
++% The code below assumes we're showing seconds and some symbolic counter.
++%
++/Timeout {
++ % first time
++ timeout.current .undef eq { over timeout.init } if
++
++ % no counter
++ timeout.steps .undef eq { return } if
++
++ /timeout.s.last timeout.s.current def
++ /timeout.s.current over 10 mul 150 add 182 div def
++
++ /timeout.last timeout.current def
++ over sub neg timeout.steps mul exch div
++ /timeout.current exch def
++
++ timeout.current timeout.steps ge {
++ % last run
++ timeout.s.done
++ timeout.done
++ } {
++ % 0 270 moveto timeout.last print &quot;&lt;&quot; print timeout.current print &quot;&lt;&quot; print
++
++ timeout.s.last timeout.s.current ne { timeout.s.current timeout.s.update } if
++
++ timeout.last timeout.current ne {
++ timeout.last 1 add 1 timeout.current { timeout.update } for
++ } if
++
++ } ifelse
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Initialize timeout indicator.
++%
++% ( time ) ==&gt; ( )
++%
++/timeout.init {
++ &quot;timer_a.jpg&quot; findfile /timeout.file over def dup .undef ne {
++ currentimage exch setimage
++ 0 0 image.size unpackimage /timeout.image exch def
++ setimage
++
++ /timeout.steps timeout.image imgsize div def
++
++ /timeout.width timeout.image imgsize exch pop def
++
++ /timeout.x menu.start.x menu.bar.width add 24 sub def
++ /timeout.y menu.start.y 1 sub menu.entry menu.item.height mul add def
++
++ timeout.x timeout.y moveto
++ /timeout.bg timeout.width dup savescreen def
++ % just a few buffers
++ /timeout.img_buf timeout.width dup savescreen def
++ /timeout.alpha_buf timeout.width dup savescreen def
++
++ /timeout.current 0 def
++
++ timeout.current timeout.update
++ } { pop } ifelse
++
++ /timeout.s.buf 64 string def
++ /timeout.s.x 100 def
++ /timeout.s.y 250 def
++ /timeout.s.current -1 def
++
++ pop
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Update timeout indicator.
++%
++% ( index ) ==&gt; ( )
++%
++% index runs from 0 to timeout.steps - 1. It is guaranteed that index is
++% 1 larger than the last index. Never a step twice and no step is left out.
++%
++/timeout.update {
++ timeout.width mul 0 moveto
++ timeout.image 255 timeout.alpha_buf blend
++
++ timeout.img_buf timeout.bg dup length memcpy
++
++ 0 0 moveto
++ black timeout.alpha_buf timeout.img_buf blend
++
++ timeout.x timeout.y moveto
++ timeout.img_buf restorescreen
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Clear timeout indicator.
++%
++% ( ) ==&gt; ( )
++%
++/timeout.done {
++ timeout.x timeout.y moveto
++ timeout.bg restorescreen
++
++ /timeout.bg timeout.bg free .undef def
++ /timeout.img_buf timeout.img_buf free .undef def
++ /timeout.alpha_buf timeout.alpha_buf free .undef def
++ /timeout.image timeout.image free .undef def
++ /timeout.file timeout.file free .undef def
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Update seconds counter.
++%
++% ( time_in_s ) ==&gt; ( )
++%
++/timeout.s.update {
++% white setcolor
++% timeout.s.x timeout.s.y moveto -30 0 rmoveto
++% currentpoint 30 fontheight image
++% &quot;%ds&quot; timeout.s.buf sprintf
++% timeout.s.x timeout.s.y moveto timeout.s.buf showright
++ pop
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Clear seconds counter.
++%
++% ( ) ==&gt; ( )
++%
++/timeout.s.done {
++% timeout.s.x timeout.s.y moveto -30 0 rmoveto
++% currentpoint 30 fontheight image
++} def
++
++
+
+<a id="themetrunkmageiagfxbootthemetrunksrcwindowinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/src/window.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/src/window.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/src/window.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,712 @@
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% window code
++%
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++
++
++% public words:
++%
++% window.dialog ( ) ==&gt; ( window )
++% - create a new dialog
++%
++% window.init ( window ) ==&gt; ( )
++% - initialize window
++%
++% window.show ( window ) ==&gt; ( )
++% - draw window
++%
++% window.current ( ) ==&gt; ( window )
++% - the top level window
++%
++% window.action ( ) ==&gt; ( action )
++% - recent window action
++%
++% window.input ( key_in ) ==&gt; ( key_out )
++% - handle keyboard input
++%
++% window.done ( ) ==&gt; ( )
++% - close top level window
++%
++%
++% constants:
++% - window.action
++% actNothing - do nothing
++% actExit - leave boot menu
++% actCloseInfo - close info window
++% actPassword - password entered
++% actStart - boot kernel
++% actEject - eject CD
++% actPowerOff - turn computer off
++% actReboot - reboot computer
++% actRedraw - redraw everything
++% actNoClose - don't close dialog (it's a flag)
++%
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% window related global variables
++%
++
++% all open windows are stacked here
++/window.list 8 array def
++/window.list.index 0 def
++
++% the top level window
++% /window.current
++
++% action selected by closing window
++/window.action actNothing def
++
++% window field definitions
++/widget.size 0 def
++/newfield { widget.size def /widget.size widget.size 1 add def } def
++
++/.type newfield
++/.x newfield
++/.y newfield
++/.width newfield
++/.height newfield
++/.width.min newfield
++/.position newfield
++/.color.fg newfield
++/.color.bg newfield
++/.font newfield
++/.saved newfield
++/.saved.areas newfield
++/.title newfield
++/.title.fg newfield
++/.title.bg newfield
++/.title.height newfield
++/.text newfield
++/.text.x newfield
++/.text.y newfield
++/.buttons newfield
++/.button.y newfield
++/.ed newfield
++/.ed.font newfield
++/.ed.list newfield
++/.ed.buffer.list newfield
++/.ed.text.list newfield
++/.ed.width newfield
++/.ed.focus newfield
++/.ed.pw_field newfield
++/.xmenu newfield
++/.xmenu.update newfield
++
++% window types
++/t_dialog 100 def
++/t_help 101 def
++/t_main 102 def
++/t_xmenu 103 def
++
++% actions
++/actNothing 0 def
++/actExit 1 def
++/actCloseInfo 2 def
++/actPassword 3 def
++/actStart 4 def
++/actEject 5 def
++/actPowerOff 6 def
++/actRedraw 7 def
++/actRedrawPanel 8 def
++/actInstallOK 9 def
++/actInstallCancel 10 def
++/actReboot 11 def
++/actRedrawBootOptionsPanel 12 def
++/actNoClose 0x100 def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Create new dialog window.
++%
++% ( ) ==&gt; ( window )
++%
++/window.dialog {
++ widget.size array
++ dup .type t_dialog put
++ dup .position 8 put % centered at 8/10 of screen height
++ dup .x 0 put
++ dup .y 0 put
++ dup .width.min 0 put
++ dup .color.fg window.color.fg put
++ dup .color.bg window.color.bg put
++ dup .font font.normal put
++ dup .title.fg window.title.fg put
++ dup .title.bg window.title.bg put
++ dup .title.height help.title.height put
++ dup .text.x 12 put
++ dup .text.y help.title.height 10 add put
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Handle keyboard input.
++%
++% ( key_in ) ==&gt; ( key_out )
++%
++/window.input {
++ window.current .undef ne {
++ window.current .type get
++ dup t_dialog eq { exch dialog.input exch } if
++ dup t_help eq { exch help.input exch } if
++ dup t_main eq { exch main.input dialog.input exch } if
++ dup t_xmenu eq { exch xmenu.input exch } if
++ pop
++
++ % % maybe there is an editable input field
++ % dup 0 ne {
++ % window.current .ed get .undef ne {
++ % window.current .ed.font get setfont
++ % window.current .color.fg get setcolor
++ % window.current .ed get exch edit.input
++ % 0
++ % } if
++ % } if
++
++ % only top level window gets input
++ pop 0
++
++ } if
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Initialize window.
++%
++% ( window ) ==&gt; ( )
++%
++/window.init {
++ dup .type get
++ dup t_dialog eq { pop dialog.init return } if
++ dup t_help eq { pop help.init return } if
++ dup t_main eq { pop main.init return } if
++ dup t_xmenu eq { pop xmenu.init return } if
++ pop
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Show window.
++%
++% ( window ) ==&gt; ( )
++%
++/window.show {
++ dup .type get
++ dup t_dialog eq { pop dialog.show return } if
++ dup t_help eq { pop help.show return } if
++ dup t_main eq { pop main.show return } if
++ dup t_xmenu eq { pop xmenu.show return } if
++ pop
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Add window to list.
++%
++% ( window ) ==&gt; ( )
++%
++/window.push {
++ window.list.index window.list length ge { pop return } if
++ /window.current over def
++ window.list window.list.index rot put
++ /window.list.index window.list.index 1 add def
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Remove window from list.
++%
++% ( ) ==&gt; ( window )
++%
++/window.pop {
++ window.list.index 0 eq { .undef return } if
++ /window.list.index window.list.index 1 sub def
++ window.list window.list.index get
++ window.list window.list.index .undef put
++ /window.current
++ window.list.index 0 eq { .undef } { window.list window.list.index 1 sub get } ifelse
++ def
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Close top level window.
++%
++% ( ) ==&gt; ( )
++%
++/window.done {
++ window.current .undef ne {
++ window.current dup .type get
++ dup t_help eq { help.done } if
++ dup t_xmenu eq { xmenu.done } if
++ pop
++ % restore saved background and free bg image
++ dup .saved get .undef ne {
++ dup .x get 1 sub over .y get 1 sub moveto
++ dup .saved get dup restorescreen free
++ dup .saved .undef put
++ } if
++ % restore &amp; free saved background areas
++ dup .saved.areas get .undef ne {
++ % list of [ x y screen ]
++ dup .saved.areas get {
++ dup { } forall
++ 3 1 roll moveto dup restorescreen free
++ free
++ } forall
++ dup .saved.areas get free
++ dup .saved.areas .undef put
++ } if
++ % free input field memory
++ dup .ed get .undef ne {
++ dup .ed get 2 get free % background
++ dup .ed get free
++ dup .ed .undef put
++ } if
++ dup .ed.text.list get free
++ dup .ed.list get dup {
++ { dup 2 get free free } forall
++ } { pop } ifelse
++ dup .ed.list get free
++ pop
++ % remove it from window list
++ window.pop
++ % free buttons &amp; button list
++ dup .buttons get
++ dup .undef ne {
++ dup length 0 gt {
++ dup length 1 sub 0 1 rot {
++ over exch get free
++ } for
++ } if
++ } if
++ free
++ % free window
++ free
++ } if
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Handle keyboard input.
++%
++% ( key_in ) ==&gt; ( key_out )
++%
++/dialog.input {
++ dup 0 eq { return } if
++
++ /window.buttons window.current .buttons get def
++
++ /has_buttons window.buttons .undef ne { window.buttons length 0 gt } { false } ifelse def
++
++ dup keyEnter eq has_buttons and {
++ window.buttons window.findselected
++ over over get 7 get /window.action exch def get
++ dup button.press 100000 usleep
++ window.action actNoClose and {
++ window.action dialog.specialaction { button.show } if
++ } {
++ pop window.done
++ } ifelse
++ pop 0
++ } if
++
++ window.current .ed.list get {
++
++ window.current .ed.list get window.current .ed.focus get get .inp_show aget false ne {
++
++ dup keyDown eq over keyTab eq or {
++ window.current .ed.focus get
++ window.current .ed.list get over get edit.hidecursor
++
++ 1 add window.current .ed.list get length mod
++ window.current .ed.list get over get .inp_show aget false ne { } { pop 0 } ifelse
++ window.current .ed.focus 2 index put
++ window.current .ed.list get exch get edit.showcursor
++ dialog.say.label
++ pop 0
++ } if
++
++ dup keyUp eq over keyShiftTab eq or {
++ window.current .ed.focus get
++ window.current .ed.list get over get edit.hidecursor
++
++ 1 sub window.current .ed.list get length exch over add exch mod
++ {
++ dup 0 eq { exit } if
++ window.current .ed.list get over get .inp_show aget false ne { exit } { 1 sub } ifelse
++ } loop
++ window.current .ed.focus 2 index put
++ window.current .ed.list get exch get edit.showcursor
++ dialog.say.label
++ pop 0
++ } if
++
++ % dup keyTab eq {
++ % window.findselected 1 add window.buttons length mod
++ % window.selectbutton
++ % pop 0
++ % } if
++
++ } if
++
++ } {
++ has_buttons {
++ dup keyTab eq over keyRight eq or over keyDown eq or {
++ window.findselected 1 add window.buttons length mod
++ window.selectbutton
++ pop 0
++ } if
++
++ dup keyShiftTab eq over keyLeft eq or over keyUp eq or {
++ window.findselected window.buttons length 1 sub add window.buttons length mod
++ window.selectbutton
++ pop 0
++ } if
++ } if
++ } ifelse
++
++ has_buttons {
++ dup window.findkey dup 0 ge {
++ window.buttons exch
++ over over get 7 get /window.action exch def get
++ dup button.press 100000 usleep
++ window.action actNoClose and {
++ window.action dialog.specialaction { button.show } if
++ } {
++ pop window.done
++ } ifelse
++ pop 0
++ } {
++ pop
++ } ifelse
++ } if
++
++
++ % maybe there are input fields
++ dup 0 ne {
++ window.current .ed.list get dup {
++ window.current .ed.font get
++ window.current .ed.focus get window.current .ed.pw_field get eq { pwmode } if
++ setfont
++ window.current .color.fg get setcolor
++
++ window.current .ed.focus get get dup .inp_show aget false ne {
++ exch over over edit.input
++ % only if real key
++ 24 shr 0xff and 0xff ne config.talk and currentfont is.pwmode not and {
++ edit.getleft dup 'A' ge over 'Z' le and { 0x20 add } if
++ dialog.input.tmp1 0 rot put dialog.input.tmp1 speak
++ } {
++ pop
++ } ifelse
++ } {
++ pop pop
++ } ifelse
++ 0
++ } { pop } ifelse
++ } if
++
++} def
++
++/dialog.input.tmp1 1 string def
++
++/dialog.say.label {
++ config.talk { window.current .ed.text.list get window.current .ed.focus get get speak } if
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Find selected button.
++%
++% ( ) ==&gt; ( button_idx )
++%
++/window.findselected {
++ 0
++ 0 1 window.buttons length 1 sub {
++ dup
++ window.buttons exch get 5 get
++ {
++ exch pop exit
++ } {
++ pop
++ } ifelse
++ } for
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Find button for key.
++%
++% ( key ) ==&gt; ( button_idx )
++%
++% button_idx = -1 if not found
++%
++/window.findkey {
++ /window.key exch def
++ -1
++ window.key 0 eq { return } if
++ 0 1 window.buttons length 1 sub {
++ dup
++ window.buttons exch get 6 get window.key eq
++ {
++ exch pop exit
++ } {
++ pop
++ } ifelse
++ } for
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Select button.
++%
++% ( button_idx ) ==&gt; ( )
++%
++/window.selectbutton {
++ window.findselected
++ over over eq {
++ pop pop
++ } {
++ window.buttons exch get button.notdefault button.show
++ window.buttons exch get button.default button.show
++ } ifelse
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Initialize dialog window.
++%
++% ( window ) ==&gt; ( )
++%
++/dialog.init {
++ /dialog.tmp exch def
++
++ dialog.tmp .font get setfont
++
++ dialog.tmp .text get dup &quot;&quot; ne { strsize } { pop 0 0 } ifelse
++ /dialog.height exch dialog.tmp .text.y get 10 add add def
++ /dialog.width exch dialog.tmp .text.x get 1 add 2 mul add dialog.tmp .width.min get max def
++
++ /dialog.width dialog.tmp .title get strsize pop dialog.tmp .text.x get 1 add 2 mul add dialog.width max def
++
++ dialog.tmp .ed.text.list get dup {
++ /dialog.width
++ dialog.tmp .ed.width get dialog.tmp .text.x get 1 add 2 mul add 8 add dialog.width max
++ def
++ {
++ strsize
++ /dialog.height exch dialog.height add def
++ /dialog.width exch dialog.tmp .text.x get 1 add 2 mul add dialog.width max def
++ } forall
++ } { pop } ifelse
++
++ dialog.tmp .ed.buffer.list get dup {
++ length lineheight 20 add mul /dialog.height exch dialog.height add def
++ } { pop } ifelse
++
++ /window.buttons dialog.tmp .buttons get def
++
++ /dialog.button.y dialog.height 5 add def
++
++ window.buttons .undef ne { window.buttons length {
++ /dialog.height window.buttons 0 get 3 get dialog.button.y add 8 add def
++ } if } if
++
++ /dialog.y screen.size exch pop dialog.tmp .position get mul 10 div dialog.height sub 2 div 10 max def
++
++ window.buttons .undef ne { window.buttons length {
++ 10
++ 0 1 window.buttons length 1 sub {
++ window.buttons exch get
++ dup 1 dialog.button.y dialog.y add put
++ 2 get 10 add add
++ } for
++
++ dialog.width max /dialog.width exch def
++ } if } if
++
++ % adjust to window size
++ dialog.tmp .ed.width get .undef ne {
++ dialog.tmp .ed.width over over get dialog.width 30 sub max put
++ } if
++
++ /dialog.x screen.size pop dialog.width sub 2 div def
++
++ window.buttons .undef ne { window.buttons length {
++ % calculate button x positions
++ dialog.width 0
++ 0 1 window.buttons length 1 sub {
++ window.buttons exch get 2 get add
++ } for
++ sub window.buttons length 1 add div
++ dialog.x over add
++ 0 1 window.buttons length 1 sub {
++ window.buttons exch get
++ over over 0 rot put
++ 2 get add over add
++ } for
++ pop pop
++ } if } if
++
++ % store values
++
++ dialog.tmp
++ dup .x dialog.x put
++ dup .y dialog.y put
++ dup .width dialog.width put
++ dup .height dialog.height put
++ .button.y dialog.button.y put
++
++ /dialog.tmp .undef def
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Draw dialog window.
++%
++% ( window ) ==&gt; ( )
++%
++/dialog.show {
++ /dialog.tmp exch def
++
++ % put into list early, so drawing functions can access it there
++ dialog.tmp window.push
++
++ % now start drawing
++
++ dialog.tmp .x get 1 sub dialog.tmp .y get 1 sub moveto
++ white black
++ dialog.tmp .width get 2 add dialog.tmp .height get 2 add
++ over over
++ savescreen
++ dialog.tmp .saved rot put
++ drawborder
++
++ dialog.tmp .color.bg get setcolor
++ dialog.tmp .x get dialog.tmp .y get moveto
++ dialog.tmp .width get dialog.tmp .height get fillrect
++
++ dialog.tmp .title.bg get setcolor
++ dialog.tmp .x get 1 add dialog.tmp .y get 1 add moveto
++ dialog.tmp .width get 2 sub dialog.tmp .title.height get 1 sub fillrect
++
++ dialog.tmp .x get 10 add dialog.tmp .y get 3 add moveto
++ dialog.tmp .title.fg get setcolor
++ dialog.tmp .title get config.rtl { dialog.tmp .width get 20 sub 0 rmoveto } if show.rtl
++
++ dialog.tmp .color.fg get setcolor
++ dialog.tmp .x get dialog.tmp .y get moveto
++ dialog.tmp .text.x get dialog.tmp .text.y get rmoveto
++
++ config.talk { dialog.tmp .title get speak } if
++
++ /dialog.tmp.x currentpoint pop def
++
++ config.rtl { dialog.tmp .text.x get -2 mul dialog.tmp .width get add 0 rmoveto } if
++
++ dialog.tmp .text get config.talk { dup speak } if show.rtl
++
++ currentpoint exch pop dialog.tmp.x exch moveto
++
++ dialog.tmp .ed.text.list get dup {
++ /dialog.tmp.idx 0 def
++ {
++ % really '2 add'?
++ config.rtl { dialog.tmp .ed.width get 2 add 0 rmoveto } if show.rtl
++ currentpoint exch pop dialog.tmp.x exch moveto
++
++ dialog.tmp .ed.buffer.list get dialog.tmp.idx get
++
++ dup {
++
++ 3 7 rmoveto
++
++ /dialog.tmp.buf [
++ currentpoint
++ dialog.tmp .ed.width get fontheight 2 add savescreen
++ 0 0
++ .undef
++ ] def
++
++ dialog.tmp.buf 3 2 index put
++ dialog.tmp.buf 4 rot cvp length put
++
++ dialog.tmp .ed.list get dialog.tmp.idx dialog.tmp.buf put
++
++ currentcolor
++ currentpoint over 1 sub over 2 sub moveto
++ black white dialog.tmp .ed.width get 2 add fontheight 5 add drawborder
++ moveto -3 lineheight 20 add 7 sub rmoveto
++ setcolor
++
++ currentfont
++ % hide text in password fields
++ dialog.tmp.idx dialog.tmp .ed.pw_field get eq {
++ dialog.tmp .ed.font get pwmode setfont
++ } if
++ dialog.tmp.buf dup 3 get edit.init
++ setfont
++
++ dialog.tmp .ed.focus get dialog.tmp.idx ne {
++ dialog.tmp.buf edit.hidecursor
++ } {
++ config.talk { dialog.tmp .ed.text.list get dialog.tmp.idx get speak } if
++ } ifelse
++
++ } { pop } ifelse
++
++ /dialog.tmp.idx inc
++ } forall
++ } { pop } ifelse
++
++ dialog.tmp .buttons get .undef ne { dialog.tmp .buttons get length {
++ 0 1 dialog.tmp .buttons get length 1 sub {
++ dialog.tmp .buttons get exch get button.show
++ } for
++ } if } if
++
++ /dialog.tmp .undef def
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Do something without closing the window.
++%
++% ( action ) ==&gt; ( true|false )
++%
++% Returns whether the window still exists.
++%
++/dialog.specialaction {
++ actNoClose not and
++
++ true exch
++
++ dup actEject eq {
++ bootdrive eject pop
++ } if
++
++ dup actPowerOff eq {
++ poweroff
++ } if
++
++ dup actReboot eq {
++ reboot
++ } if
++
++ dup actInstallOK eq {
++ install.ok
++ exch not exch
++ } if
++
++% dup actInstallCancel eq {
++% install.cancel
++% exch not exch
++% } if
++
++ pop
++} def
++
++
+
+<a id="themetrunkmageiagfxbootthemetrunksrcxmenuinc">Added: theme/trunk/mageia-gfxboot-theme/trunk/src/xmenu.inc</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/src/xmenu.inc (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/src/xmenu.inc 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,410 @@
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++%
++% List dialog handling.
++%
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Some global vars.
++%
++/xmenu.vspace.default { xmenu .xm_list get length 15 ge { 2 } { 4 } ifelse } def
++/xmenu.hspace 12 def
++/xmenu.light white def
++/xmenu.dark black def
++/xmenu.font font.normal def
++
++% xmenu layout
++%
++% [ selected_entry string_list x y panel_x ]
++%
++/.xm_current 0 def % selected entry
++/.xm_list 1 def % string list
++/.xm_x 2 def % menu x pos
++/.xm_y 3 def % menu y pos
++/.xm_width 4 def % menu width
++/.xm_height 5 def % menu height
++/.xm_panel_x 6 def % panel entry x pos
++/.xm_vspace 7 def % vspace per menu
++/.xm_title 8 def % xmenu title
++/.xm_text 9 def % xmenu text
++/.xm_last 10 def % last selected entry
++/.xm_size 11 def % xmenu size
++
++
++% short hands
++/xmenu.x { xmenu .xm_x get } def
++/xmenu.y { xmenu .xm_y get } def
++/xmenu.width { xmenu .xm_width get } def
++/xmenu.height { xmenu .xm_height get } def
++
++/xmenu.vspace { xmenu .xm_vspace get dup .undef ne { } { pop xmenu.vspace.default } ifelse } def
++
++/xmenu.saved { xmenu.saved.areas xmenu.column get 2 get } def
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Create new xmenu.
++%
++% ( ) ==&gt; ( window )
++%
++/window.xmenu {
++ widget.size array
++ dup .type t_xmenu put
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Handle keyboad input.
++%
++% ( key_in ) ==&gt; ( key_out )
++%
++/xmenu.input {
++ dup 0 eq { return } if
++
++ dup keyEsc eq {
++ xmenu .xm_current over .xm_last get put
++ window.done
++ pop 0
++ } if
++
++ dup keyEnter eq {
++ window.current .xmenu.update get
++ window.done
++ exec
++ pop 0
++ } if
++
++ dup keyDown eq {
++ xmenu .xm_current get 1 add xmenu.select
++ pop 0
++ } if
++
++ dup keyUp eq {
++ xmenu .xm_current get 1 sub xmenu.select
++ pop 0
++ } if
++
++ dup keyPgDown eq {
++ xmenu .xm_current get 5 add
++ xmenu .xm_list get length 1 sub min xmenu.select
++ pop 0
++ } if
++
++ dup keyPgUp eq {
++ xmenu .xm_current get 5 sub
++ 0 max xmenu.select
++ pop 0
++ } if
++
++ dup keyHome eq {
++ 0 xmenu.select
++ pop 0
++ } if
++
++ dup keyEnd eq {
++ xmenu .xm_list get length 1 sub xmenu.select
++ pop 0
++ } if
++
++ dup config.rtl { keyLeft } { keyRight } ifelse eq {
++ xmenu .xm_current get
++ xmenu .xm_list get length over sub xmenu.maxlines lt v_impaired and {
++ pop
++ } {
++ dup xmenu.maxlines div 1 add xmenu.columns mod xmenu.maxlines mul
++ exch xmenu.maxlines mod add
++ xmenu .xm_list get length 1 sub min xmenu.select
++ } ifelse
++ pop 0
++ } if
++
++ dup config.rtl { keyRight } { keyLeft } ifelse eq {
++ xmenu .xm_current get
++ dup xmenu.maxlines lt v_impaired and {
++ pop
++ } {
++ dup xmenu.maxlines div xmenu.columns add 1 sub xmenu.columns mod xmenu.maxlines mul
++ exch xmenu.maxlines mod add
++ xmenu .xm_list get length 1 sub min xmenu.select
++ } ifelse
++ pop 0
++ } if
++
++ dup keyF1 eq {
++ show_help
++ pop 0
++ } if
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Calculate menu sizes.
++%
++% ( ) ==&gt; ( )
++%
++/xmenu.sizes {
++ /xmenu.lheight xmenu.font setfont fontheight xmenu.vspace dup add add def
++
++ /xmenu.maxlines
++ panel.text.y 2 sub xmenu.lheight div
++ def
++
++ /xmenu.columns xmenu .xm_list get length xmenu.maxlines add 1 sub xmenu.maxlines div def
++
++ /xmenu.lastheight
++ xmenu .xm_list get length xmenu.maxlines xmenu.columns 1 sub mul sub xmenu.lheight mul
++ def
++
++ xmenu .xm_height
++ xmenu .xm_list get length xmenu.maxlines min xmenu.lheight mul
++ put
++
++ xmenu .xm_width
++ 0 xmenu .xm_list get { exec strsize pop max } forall xmenu.hspace 2 mul add
++ put
++
++ xmenu .xm_y panel.text.y 1 sub xmenu.height sub put
++
++ xmenu .xm_x xmenu .xm_panel_x get config.rtl { xmenu .xm_width get sub } if put
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Init and show menu.
++%
++% ( window ) ==&gt; ( )
++%
++% xmenu: [ selected_entry [ text0 text1 ... ] x y ]
++%
++/xmenu.init {
++ /xmenu over .xmenu get def
++
++ xmenu.sizes
++
++ dup .saved.areas xmenu.columns array /xmenu.saved.areas over def put
++
++ 0 1 xmenu.columns 1 sub {
++ /xmenu.column exch def
++
++ dup .saved.areas get xmenu.column
++
++ [
++ xmenu.column xmenu.width 2 add mul config.rtl { neg } if xmenu.x add 1 sub xmenu.y 1 sub moveto
++ currentpoint
++
++ xmenu.light xmenu.dark
++ xmenu.width 2 add
++ xmenu.column 1 add xmenu.columns eq { xmenu.lastheight } { xmenu.height } ifelse 2 add
++ over over savescreen 5 1 roll
++ drawborder
++
++ ] put
++
++ } for
++
++ 0 1 xmenu .xm_list get length 1 sub { xmenu.viewentry } for
++
++ xmenu .xm_last over .xm_current get put
++
++ dup .x xmenu.x put
++ .y xmenu.y put
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Close menu.
++%
++% ( ) ==&gt; ( )
++%
++/xmenu.done {
++ /xmenu.tmpbuf xmenu.tmpbuf free .undef def
++ /xmenu.saved.normal xmenu.saved.normal free .undef def
++ /xmenu.saved.selected xmenu.saved.selected free .undef def
++ /xmenu.saved.areas .undef def
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Draw xmenu.
++%
++% ( window ) ==&gt; ( )
++%
++/xmenu.show {
++ window.push
++
++ config.talk {
++ xmenu .xm_title get dup .undef ne { exec speak } { pop } ifelse
++ xmenu .xm_list get xmenu .xm_current get get exec speak
++ } if
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Draw single entry.
++%
++% ( entry ) ==&gt; ( )
++%
++/xmenu.viewentry {
++ xmenu.font setfont
++
++ dup xmenu.maxlines mod xmenu.lheight mul xmenu.y add /xmenu.pos.y exch def
++
++ dup xmenu.maxlines div /xmenu.column over def
++ xmenu.width 2 add mul config.rtl { neg } if xmenu.x add /xmenu.pos.x exch def
++
++ xmenu.pos.x xmenu.pos.y moveto
++
++ dup xmenu .xm_current get eq { xmenu.saved.selected } { xmenu.saved.normal } ifelse
++
++ dup {
++ transp { pop } { restorescreen } ifelse
++ } {
++ pop
++
++ dup xmenu .xm_current get eq { xmenu.selected.bg } { xmenu.normal.bg } ifelse
++ setcolor xmenu.width xmenu.lheight fillrect
++
++ dup xmenu .xm_current get eq {
++ xmenu.pos.x xmenu.pos.y moveto
++ xmenu.dark xmenu.light xmenu.width xmenu.lheight drawborder
++ } if
++
++ dup xmenu .xm_current get eq { /xmenu.saved.selected } { /xmenu.saved.normal } ifelse
++ xmenu.pos.x xmenu.pos.y moveto
++ xmenu.width xmenu.lheight
++ savescreen
++ def
++ } ifelse
++
++
++ transp {
++ % copy entry to avoid reading the screen again
++ dup xmenu .xm_current get eq { xmenu.saved.selected } { xmenu.saved.normal } ifelse
++ xmenu.tmpbuf .undef eq {
++ dup length malloc /xmenu.tmpbuf exch def
++ } if
++ xmenu.tmpbuf exch dup length memcpy
++
++ 0 xmenu.pos.y xmenu.y sub moveto 1 1 rmoveto
++ xmenu.saved transp xmenu.tmpbuf blend
++
++ xmenu.pos.x xmenu.pos.y moveto xmenu.tmpbuf restorescreen
++ } if
++
++ dup xmenu .xm_current get eq { xmenu.selected.fg } { xmenu.normal.fg } ifelse setcolor
++
++ config.rtl {
++ xmenu.pos.x xmenu.width add xmenu.hspace sub xmenu.pos.y xmenu.vspace add moveto
++ } {
++ xmenu.pos.x xmenu.hspace add xmenu.pos.y xmenu.vspace add moveto
++ } ifelse
++
++ xmenu .xm_list get over get exec
++ dup 0 get '\x09' eq {
++ 1 add
++ currentpoint
++ currentcolor
++
++ xmenu.dark setcolor
++ xmenu.pos.x xmenu.pos.y moveto
++ xmenu.pos.x xmenu.width add xmenu.pos.y lineto
++ xmenu.light setcolor
++ xmenu.pos.x xmenu.pos.y 1 add moveto
++ xmenu.pos.x xmenu.width add xmenu.pos.y 1 add lineto
++
++ setcolor
++ moveto
++ show.rtl
++ config.rtl {
++ xmenu.pos.x 8 add xmenu.pos.y moveto &quot;\u25c0&quot; show
++ } {
++ xmenu.pos.x xmenu.width add 8 sub xmenu.pos.y moveto &quot;\u25b6&quot; showright1
++ } ifelse
++ } {
++ show.rtl
++ } ifelse
++
++ pop
++
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Select menu entry.
++%
++% ( new_entry ) ==&gt; ( )
++%
++/xmenu.select {
++ dup 0 lt { v_impaired { 1 } { xmenu .xm_list get length } ifelse add } if
++ dup xmenu .xm_list get length ge { v_impaired { 1 } { xmenu .xm_list get length } ifelse sub } if
++
++ xmenu .xm_current get over xmenu .xm_current rot put
++ xmenu.viewentry
++ xmenu.viewentry
++
++ config.talk {
++ xmenu .xm_list get xmenu .xm_current get get exec speak
++ } if
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Panel/xmenu helper function.
++%
++% ( ) =&gt; ( )
++%
++/pmenu.panel.update {
++ panel.text.moveto
++
++ xmenu .xm_panel_x currentpoint pop xmenu.hspace config.rtl { neg } if sub put
++
++ pmenu.update
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Panel/xmenu helper function.
++%
++% ( ) =&gt; ( width )
++%
++/pmenu.width {
++ 0
++
++ xmenu .xm_title get
++ dup .undef ne { exec strsize pop max } { pop
++
++ xmenu .xm_list get xmenu .xm_current get get
++ dup .undef ne { exec strsize pop max } { pop } ifelse
++ } ifelse
++} def
++
++
++% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++% Panel/xmenu helper function.
++%
++% ( ) =&gt; ( )
++%
++/pmenu.update {
++ % note: we're always redrawing the whole panel
++
++ panel.title.fg setcolor
++ panel.font setfont
++
++ xmenu .xm_panel_x get xmenu.hspace config.rtl { neg } if add
++ panel.text.y
++ moveto
++
++ xmenu .xm_title get
++ dup .undef eq {
++ pop
++ xmenu .xm_list get xmenu .xm_current get get
++ } if
++ dup .undef ne { exec show.rtl } { pop } ifelse
++
++} def
++
++
+
+<a id="themetrunkmageiagfxbootthemetrunktalkMakefile">Added: theme/trunk/mageia-gfxboot-theme/trunk/talk/Makefile</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/talk/Makefile (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/talk/Makefile 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,10 @@
++all: en.tlk
++
++en.tlk: talk.po sc
++ ./po2talk --compress $&lt; $@
++
++sc: sc.c
++ gcc -O2 -Wall -o $@ $&lt;
++
++clean:
++ rm -f sc *~
+
+
+Property changes on: theme/trunk/mageia-gfxboot-theme/trunk/talk/Makefile
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themetrunkmageiagfxbootthemetrunktalkentlk">Added: theme/trunk/mageia-gfxboot-theme/trunk/talk/en.tlk</a>
+===================================================================
+(Binary files differ)
+
+
+Property changes on: theme/trunk/mageia-gfxboot-theme/trunk/talk/en.tlk
+___________________________________________________________________
+Added: svn:mime-type
+ + application/octet-stream
+
+<a id="themetrunkmageiagfxbootthemetrunktalkpo2talk">Added: theme/trunk/mageia-gfxboot-theme/trunk/talk/po2talk</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/talk/po2talk (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/talk/po2talk 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,191 @@
++#! /usr/bin/perl
++
++use Getopt::Long;
++
++sub help;
++sub read_po;
++sub join_id;
++sub new_tmp_file;
++sub cleanup;
++
++GetOptions(
++ 'help' =&gt; \&amp;help,
++ 'compress' =&gt; \$opt_compress,
++);
++
++END { cleanup }
++$SIG{INT} = \&amp;cleanup;
++$SIG{TERM} = \&amp;cleanup;
++
++my @tmp_files;
++
++$espeak = &quot;espeak&quot;;
++
++$magic = 0x692741e8;
++
++help if @ARGV != 2;
++
++$po = read_po $ARGV[0];
++
++$tmp_txt = new_tmp_file;
++$tmp_wav = new_tmp_file;
++$tmp_snd = new_tmp_file;
++
++for $msg (@{$po}) {
++ $id = join_id $msg, 'id';
++ $str = join_id $msg, 'str';
++
++ next unless $id ne &quot;&quot;;
++
++ eval '$id = &quot;' . $id . '&quot;';
++ eval '$str = &quot;' . $str . '&quot;';
++
++ $str = $id if $str eq &quot;&quot;;
++
++ if(!$snd{$str}) {
++ open W, &quot;&gt;$tmp_txt&quot;;
++ print W $str;
++ close W;
++
++ $punc = length($id) == 1 ? &quot;--punc&quot; : &quot;&quot;;
++
++ system &quot;$espeak $punc -f $tmp_txt -w $tmp_wav&quot;;
++ system &quot;sox $tmp_wav -b -u -c 1 -r 16000 -t .wav $tmp_snd&quot;;
++ if($opt_compress) {
++ system &quot;./sc $tmp_snd $tmp_snd&quot;;
++ }
++
++ open F, $tmp_snd;
++ sysread F, $snd_buf, -s $tmp_snd;
++ close F;
++
++ $snd{$str} = $snd_buf;
++ }
++
++ $snd_id{$id} = $str;
++}
++
++$file_ofs = 0;
++@snds = sort keys %snd;
++@snd_ids = sort keys %snd_id;
++
++for $snd_id (@snd_ids) {
++ $txt_ofs{$snd_id} = $file_ofs;
++ $file_ofs += length($snd_id) + 1;
++}
++
++for $snd (@snds) {
++ $snd_ofs{$snd} = $file_ofs;
++ $file_ofs += length($snd{$snd});
++}
++
++$head_size = 8 + 8 * @snd_ids;
++
++open W, &quot;&gt;$ARGV[1]&quot;;
++
++print W pack(&quot;VV&quot;, $magic, scalar(@snd_ids));
++for $snd_id (@snd_ids) {
++ print W pack(&quot;VV&quot;, ($txt_ofs{$snd_id} + $head_size, $snd_ofs{$snd_id{$snd_id}} + $head_size));
++}
++for $snd_id (@snd_ids) {
++ print W $snd_id, &quot;\x00&quot;;
++}
++for $snd (@snds) {
++ print W $snd{$snd};
++}
++
++close W;
++
++
++sub help
++{
++ print STDERR
++ &quot;Usage: po2talk [options] po_file talk_file\n&quot; .
++ &quot;Run po file through espeak.\n&quot;;
++
++ exit 0;
++}
++
++
++sub read_po
++{
++ local $_;
++ my ($msg, $cnt, $id, $f);
++
++ $cnt = 0;
++
++ open F, $_[0];
++ while(&lt;F&gt;) {
++ s/^\s*|\s*$//g;
++ next if $_ eq &quot;&quot;;
++ if(/^#,/) {
++ s/^#,\s*//;
++ for $f (split /\s*,\s*/) {
++ ${$msg-&gt;[$cnt]{flags}{$f}} = 1 if $f ne &quot;&quot;;
++ }
++ next
++ }
++ if(/^#(\s|$)/) { push @{$msg-&gt;[$cnt]{u_comment}}, $_ ; next }
++ if(/^#/) { push @{$msg-&gt;[$cnt]{a_comment}}, $_; next }
++ if(s/^msg(id\b|id_plural\b|str(\[\d+\])?)\s*//) {
++ $id = $1;
++ if($id eq 'id') {
++ $msg-&gt;[$cnt]{line} = $. unless exists $msg-&gt;[$cnt]{$line};
++ $cnt++;
++ }
++ }
++ if($cnt &amp;&amp; /^&quot;(.*)&quot;$/) {
++ push @{$msg-&gt;[$cnt - 1]{$id}}, $1;
++ }
++ else {
++ print STDERR &quot;$_[0]:$.: invalid po format\n&quot;;
++ return undef;
++ }
++ }
++ close F;
++
++ # trailing comments
++ pop @$msg if @$msg &gt; 0 &amp;&amp; !$msg-&gt;[-1]{id};
++
++ return $msg;
++}
++
++
++sub join_id
++{
++ my ($msg, $id);
++
++ ($msg, $id) = @_;
++
++ return join '', @{$msg-&gt;{$id}};
++}
++
++
++# create new temporary file
++sub new_tmp_file
++{
++ local $_;
++
++ chomp ($_ = `mktemp /tmp/po2talk.XXXXXXXXXX`);
++ die &quot;error: mktemp failed\n&quot; if $?;
++
++ push @tmp_files, $_;
++
++ return $_;
++}
++
++
++# remove temporary files
++sub cleanup
++{
++ local $_;
++
++ for (@tmp_files) {
++ next unless defined $_;
++ unlink;
++ $_ = undef;
++ }
++
++ undef @tmp_files;
++}
++
+
+
+Property changes on: theme/trunk/mageia-gfxboot-theme/trunk/talk/po2talk
+___________________________________________________________________
+Added: svn:executable
+ + *
+
+<a id="themetrunkmageiagfxbootthemetrunktalkscc">Added: theme/trunk/mageia-gfxboot-theme/trunk/talk/sc.c</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/talk/sc.c (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/talk/sc.c 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,229 @@
++#define _GNU_SOURCE
++
++#include &lt;stdio.h&gt;
++#include &lt;stdlib.h&gt;
++#include &lt;unistd.h&gt;
++#include &lt;string.h&gt;
++#include &lt;inttypes.h&gt;
++
++#define MAGIC 0x7d53b605
++
++#define MIN_REF_LEN 5
++#define MAX_REF 127 + MIN_REF_LEN
++
++typedef struct {
++ unsigned size;
++ unsigned char *data;
++ unsigned real_size;
++} file_data_t;
++
++typedef struct __attribute ((packed)) {
++ uint32_t magic;
++ uint32_t size;
++ uint32_t unpacked_size;
++ uint32_t sample_rate;
++} snd_header_t;
++
++file_data_t *read_file(char *name);
++void add_data(file_data_t *d, void *buffer, unsigned size);
++void write_data(file_data_t *d, char *name);
++
++void compr(file_data_t *fd, file_data_t *fd_compr);
++unsigned find_longest(unsigned char *data, unsigned len, unsigned start, unsigned *ofs);
++
++
++int main(int argc, char **argv)
++{
++ file_data_t *fd, fd_compr = { }, fd_samples = { };
++ snd_header_t sh;
++ unsigned sample_rate;
++
++ if(argc != 3) return 1;
++
++ fd = read_file(argv[1]);
++
++ if(fd-&gt;size &lt;= 44) return 1;
++
++ if(
++ *((unsigned *) (fd-&gt;data + 0)) != 0x46464952 ||
++ *((unsigned *) (fd-&gt;data + 8)) != 0x45564157 ||
++ *((short *) (fd-&gt;data + 20)) != 1 ||
++ *((short *) (fd-&gt;data + 34)) != 8 ||
++ *((short *) (fd-&gt;data + 22)) != 1
++ ) {
++ fprintf(stderr, &quot;invalid data, expecting 8bit mono wav (ms pcm) file\n&quot;);
++ return 3;
++ }
++ sample_rate = *((unsigned *) (fd-&gt;data + 24));
++
++ printf(&quot;%s: %u Hz, %u samples\n&quot;, argv[1], sample_rate, fd-&gt;size - 44);
++
++ add_data(&amp;fd_samples, fd-&gt;data + 44, fd-&gt;size - 44);
++
++ sh.magic = MAGIC;
++ sh.unpacked_size = fd_samples.size;
++ sh.sample_rate = sample_rate;
++
++ add_data(&amp;fd_compr, &amp;sh, sizeof sh);
++
++ compr(&amp;fd_samples, &amp;fd_compr);
++
++ sh.size = fd_compr.size - sizeof (snd_header_t);
++
++ memcpy(fd_compr.data, &amp;sh, sizeof (snd_header_t));
++
++ write_data(&amp;fd_compr, argv[2]);
++
++ return 0;
++}
++
++
++file_data_t *read_file(char *name)
++{
++ file_data_t *fd;
++ FILE *f;
++
++ fd = calloc(1, sizeof *fd);
++
++ if(!name) return fd;
++
++ f = fopen(name, &quot;r&quot;);
++
++ if(!f) { perror(name); return fd; }
++
++ if(fseek(f, 0, SEEK_END)) {
++ perror(name);
++ exit(30);
++ }
++
++ fd-&gt;size = fd-&gt;real_size = ftell(f);
++
++ if(fseek(f, 0, SEEK_SET)) {
++ perror(name);
++ exit(30);
++ }
++
++ if(fd-&gt;size) {
++ fd-&gt;data = calloc(1, fd-&gt;size);
++ if(!fd-&gt;data) {
++ fprintf(stderr, &quot;malloc failed\n&quot;);
++ exit(30);
++ }
++ }
++
++ if(fread(fd-&gt;data, 1, fd-&gt;size, f) != fd-&gt;size) {
++ perror(name);
++ exit(30);
++ }
++
++ fclose(f);
++
++ return fd;
++}
++
++
++void add_data(file_data_t *d, void *buffer, unsigned size)
++{
++ if(!size || !d || !buffer) return;
++
++ if(d-&gt;size + size &gt; d-&gt;real_size) {
++ d-&gt;real_size = d-&gt;size + size + 0x1000;
++ d-&gt;data = realloc(d-&gt;data, d-&gt;real_size);
++ if(!d-&gt;data) d-&gt;real_size = 0;
++ }
++
++ if(d-&gt;size + size &lt;= d-&gt;real_size) {
++ memcpy(d-&gt;data + d-&gt;size, buffer, size);
++ d-&gt;size += size;
++ }
++ else {
++ fprintf(stderr, &quot;Oops, out of memory? Aborted.\n&quot;);
++ exit(10);
++ }
++}
++
++
++void write_data(file_data_t *d, char *name)
++{
++ FILE *f;
++
++ f = strcmp(name, &quot;-&quot;) ? fopen(name, &quot;w&quot;) : stdout;
++
++ if(!f) {
++ perror(name);
++ return;
++ }
++
++ if(fwrite(d-&gt;data, d-&gt;size, 1, f) != 1) {
++ perror(name);
++ exit(3);
++ }
++
++ fclose(f);
++}
++
++
++void compr(file_data_t *fd, file_data_t *fd_compr)
++{
++ unsigned u, v, l, ofs;
++ unsigned char uc;
++
++ if(!fd-&gt;size) return;
++
++ for(u = 0; u &lt; fd-&gt;size; u++) {
++ if(fd-&gt;data[u] == 0xff) fd-&gt;data[u] = 0xfe;
++ }
++
++ // printf(&quot;%5u: %02x\n&quot;, fd-&gt;size, fd-&gt;data[0]);
++ add_data(fd_compr, fd-&gt;data, 1);
++
++ for(u = 1; u &lt; fd-&gt;size; ) {
++ l = find_longest(fd-&gt;data, fd-&gt;size, u, &amp;ofs);
++ // printf(&quot;%u: %u bytes @ %u\n&quot;, u, l, ofs);
++ if(l &gt;= MIN_REF_LEN) {
++ // printf(&quot;%5u: %u bytes @ %u\n&quot;, fd-&gt;size, l, ofs);
++ v = (ofs &lt;&lt; 7) + l - MIN_REF_LEN;
++ uc = 0xff; add_data(fd_compr, &amp;uc, 1);
++ uc = v; add_data(fd_compr, &amp;uc, 1);
++ uc = v &gt;&gt; 8; add_data(fd_compr, &amp;uc, 1);
++ uc = v &gt;&gt; 16; add_data(fd_compr, &amp;uc, 1);
++ u += l;
++ }
++ else {
++ // printf(&quot;%5u: %02x\n&quot;, fd-&gt;size, fd-&gt;data[u]);
++ add_data(fd_compr, fd-&gt;data + u, 1);
++ u++;
++ }
++ }
++}
++
++
++unsigned find_longest(unsigned char *data, unsigned len, unsigned start, unsigned *ofs)
++{
++ unsigned l;
++ unsigned char *p, *p1;
++
++ p = data;
++ l = MIN_REF_LEN;
++
++ for(;;) {
++ p1 = memmem(p, data + start + l - 1 - p, data + start, l);
++ if(!p1) break;
++ p = p1;
++ l++;
++
++ if(l &gt; MAX_REF) break;
++ }
++
++ l--;
++
++ if(l &lt; MIN_REF_LEN) {
++ *ofs = 0;
++ return 0;
++ }
++
++ *ofs = p - data;
++ return l;
++}
++
++
+
+
+Property changes on: theme/trunk/mageia-gfxboot-theme/trunk/talk/sc.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themetrunkmageiagfxbootthemetrunktalktalkpo">Added: theme/trunk/mageia-gfxboot-theme/trunk/talk/talk.po</a>
+===================================================================
+--- theme/trunk/mageia-gfxboot-theme/trunk/talk/talk.po (rev 0)
++++ theme/trunk/mageia-gfxboot-theme/trunk/talk/talk.po 2011-02-07 08:15:44 UTC (rev 456)
+@@ -0,0 +1,687 @@
++# main menu
++
++msgid &quot;Boot from Hard Disk&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Installation&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Repair Installed System&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Rescue System&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Check Installation Media&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Firmware Test&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Memory Test&quot;
++msgstr &quot;&quot;
++
++msgid &quot;openSUSE-11.1&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Failsafe-openSUSE-11.1&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Hard-Disk&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Live-System-GNOME&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Live-System-KDE&quot;
++msgstr &quot;&quot;
++
++msgid &quot;openSUSE Live (GNOME)&quot;
++msgstr &quot;&quot;
++
++msgid &quot;openSUSE Live (KDE)&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Failsafe Settings&quot;
++msgstr &quot;&quot;
++
++
++# panel texts
++
++msgid &quot;Help&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Language&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Video Mode&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Source&quot;
++msgstr &quot;Installation Source&quot;
++
++msgid &quot;Kernel&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Driver&quot;
++msgstr &quot;Driver Update&quot;
++
++msgid &quot;Arch&quot;
++msgstr &quot;Architecture&quot;
++
++msgid &quot;Keyboard&quot;
++msgstr &quot;&quot;
++
++
++# language menu
++
++msgid &quot;Afrikaans&quot;
++msgstr &quot;Afrikaans&quot;
++
++msgid &quot;\xef\xbb\xb2\xef\xba\x91\xef\xba\xae\xef\xbb\x8b&quot;
++msgstr &quot;Arabic&quot;
++
++msgid &quot;Български&quot;
++msgstr &quot;Bulgarian&quot;
++
++msgid &quot;\xe0\xa6\xac\xe0\xa6\xbe\xe0\xa6\x82\xe0\xa6\xb2\xe0\xa6&quot;
++msgstr &quot;Bengali&quot;
++
++msgid &quot;Bosanski&quot;
++msgstr &quot;Bosnian&quot;
++
++msgid &quot;Català&quot;
++msgstr &quot;Catalan&quot;
++
++msgid &quot;Čeština&quot;
++msgstr &quot;Czech&quot;
++
++msgid &quot;Cymraeg&quot;
++msgstr &quot;Welsh&quot;
++
++msgid &quot;Dansk&quot;
++msgstr &quot;Danish&quot;
++
++msgid &quot;Deutsch&quot;
++msgstr &quot;German&quot;
++
++msgid &quot;Ελληνικά&quot;
++msgstr &quot;Greek&quot;
++
++msgid &quot;English (UK)&quot;
++msgstr &quot;English (UK)&quot;
++
++msgid &quot;English (US)&quot;
++msgstr &quot;English (US)&quot;
++
++msgid &quot;Español&quot;
++msgstr &quot;Spanish&quot;
++
++msgid &quot;Eesti&quot;
++msgstr &quot;Estonian&quot;
++
++msgid &quot;\xef\xaf\xbd\xef\xba\xb4\xd8\xb1\xef\xba\x8e\xef\xbb\x93&quot;
++msgstr &quot;Farsi&quot;
++
++msgid &quot;Suomi&quot;
++msgstr &quot;Finnish&quot;
++
++msgid &quot;Français&quot;
++msgstr &quot;French&quot;
++
++msgid &quot;Galego&quot;
++msgstr &quot;Galician&quot;
++
++msgid &quot;ქართული&quot;
++msgstr &quot;Kartuli&quot;
++
++msgid &quot;\xe0\xaa\x97\xe0\xab\x81\xe0\xaa\x9c\xe0\xaa\xb0\xe0\xaa\xbe\xe0\xaa\xa4\xe0\xab\x80&quot;
++msgstr &quot;Gujarati&quot;
++
++msgid &quot;תירבע&quot;
++msgstr &quot;Hebrew&quot;
++
++msgid &quot;\xe0\xa4\xb9\xe0\xa4\xbf\xe0\xa4\x82\xe0\xa4\xa6\xe0\xa5\x80&quot;
++msgstr &quot;Hindi&quot;
++
++msgid &quot;Hrvatski&quot;
++msgstr &quot;Croatian&quot;
++
++msgid &quot;Magyar&quot;
++msgstr &quot;Hungarian&quot;
++
++msgid &quot;Bahasa Indonesia&quot;
++msgstr &quot;Indonesian&quot;
++
++msgid &quot;Italiano&quot;
++msgstr &quot;Italian&quot;
++
++msgid &quot;日本語&quot;
++msgstr &quot;Japanese&quot;
++
++msgid &quot;Basa Jawa&quot;
++msgstr &quot;Javanese&quot;
++
++msgid &quot;Khmer&quot;
++msgstr &quot;Khmer&quot;
++
++msgid &quot;한글&quot;
++msgstr &quot;Korean&quot;
++
++msgid &quot;\xe0\xba\x9e\xe0\xba\xb2\xe0\xba\xaa\xe0\xba\xb2\xe0\xba\xa5\xe0\xba\xb2\xe0\xba\xa7&quot;
++msgstr &quot;Lao&quot;
++
++msgid &quot;Lietuvių&quot;
++msgstr &quot;Lithuanian&quot;
++
++msgid &quot;Македонски&quot;
++msgstr &quot;Macedonian&quot;
++
++msgid &quot;\xe0\xa4\xae\xe0\xa4\xb0\xe0\xa4\xbe\xe0\xa4\xa0\xe0\xa5\x80&quot;
++msgstr &quot;Marathi&quot;
++
++msgid &quot;Norsk&quot;
++msgstr &quot;Norwegian&quot;
++
++msgid &quot;Nederlands&quot;
++msgstr &quot;Dutch&quot;
++
++msgid &quot;\xe0\xa8\xaa\xe0\xa9\xb0\xe0\xa8\x9c\xe0\xa8\xbe\xe0\xa8\xac\xe0\xa9\x80&quot;
++msgstr &quot;Punjabi&quot;
++
++msgid &quot;Polski&quot;
++msgstr &quot;Polish&quot;
++
++msgid &quot;Português (Brasil)&quot;
++msgstr &quot;Portuguese (Brazilian)&quot;
++
++msgid &quot;Português&quot;
++msgstr &quot;Portuguese&quot;
++
++msgid &quot;Română&quot;
++msgstr &quot;Romanian&quot;
++
++msgid &quot;Русский&quot;
++msgstr &quot;Russian&quot;
++
++msgid &quot;\xe0\xb7\x83\xe0\xb7\x92\xe0\xb6\x82\xe0\xb7\x84\xe0\xb6\xbd&quot;
++msgstr &quot;Sinhala&quot;
++
++msgid &quot;Slovenčina&quot;
++msgstr &quot;Slovak&quot;
++
++msgid &quot;Slovenščina&quot;
++msgstr &quot;Slovenian&quot;
++
++msgid &quot;Srpski&quot;
++msgstr &quot;Serbian&quot;
++
++msgid &quot;Svenska&quot;
++msgstr &quot;Swedish&quot;
++
++msgid &quot;\xe0\xae\xa4\xe0\xae\xae\xe0\xae\xbf\xe0\xae\xb4\xe0\xaf\x8d&quot;
++msgstr &quot;Tamil&quot;
++
++msgid &quot;\xe0\xb8\xa0\xe0\xb8\xb2\xe0\xb8\xa9\xe0\xb8\xb2\xe0\xb9\x84\xe0\xb8\x97\xe0\xb8\xa2&quot;
++msgstr &quot;Thai&quot;
++
++msgid &quot;Türkçe&quot;
++msgstr &quot;Turkish&quot;
++
++msgid &quot;Українська&quot;
++msgstr &quot;Ukrainian&quot;
++
++msgid &quot;Tiếng Việt&quot;
++msgstr &quot;Vietnamese&quot;
++
++msgid &quot;Walon&quot;
++msgstr &quot;Walloon&quot;
++
++msgid &quot;isiXhosa&quot;
++msgstr &quot;Xhosa&quot;
++
++msgid &quot;简体中文&quot;
++msgstr &quot;Simplified Chinese&quot;
++
++msgid &quot;繁體中文 (台灣)&quot;
++msgstr &quot;Traditional Chinese&quot;
++
++msgid &quot;isiZulu&quot;
++msgstr &quot;Zulu&quot;
++
++# keymap menu
++
++msgid &quot;Czech&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Danish&quot;
++msgstr &quot;&quot;
++
++msgid &quot;German&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Estonian&quot;
++msgstr &quot;&quot;
++
++msgid &quot;English-US&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Greek&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Spanish&quot;
++msgstr &quot;&quot;
++
++msgid &quot;French&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Hungarian&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Italian&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Japanese&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Norwegian&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Polish&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Portuguese-BR&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Portuguese&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Russian&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Slovak&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Slovene&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Swedish&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Turkish&quot;
++msgstr &quot;&quot;
++
++
++# video menu
++
++msgid &quot;Text Mode&quot;
++msgstr &quot;&quot;
++
++msgid &quot;VESA&quot;
++msgstr &quot;&quot;
++
++msgid &quot;800 x 600&quot;
++msgstr &quot;800 times 600&quot;
++
++msgid &quot;1024 x 768&quot;
++msgstr &quot;1024 times 768&quot;
++
++msgid &quot;1280 x 1024&quot;
++msgstr &quot;1280 times 1024&quot;
++
++msgid &quot;1400 x 1050&quot;
++msgstr &quot;1400 times 1050&quot;
++
++msgid &quot;1600 x 1200&quot;
++msgstr &quot;1600 times 1200&quot;
++
++
++# source menu
++
++msgid &quot;CD-ROM&quot;
++msgstr &quot;&quot;
++
++msgid &quot;DVD&quot;
++msgstr &quot;&quot;
++
++msgid &quot;SLP&quot;
++msgstr &quot;&quot;
++
++msgid &quot;FTP&quot;
++msgstr &quot;&quot;
++
++msgid &quot;HTTP&quot;
++msgstr &quot;&quot;
++
++
++msgid &quot;NFS&quot;
++msgstr &quot;&quot;
++
++
++msgid &quot;SMB / CIFS&quot;
++msgstr &quot;&quot;
++
++
++msgid &quot;Hard Disk&quot;
++msgstr &quot;&quot;
++
++
++# kernel menu
++
++msgid &quot;Default&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Safe Settings&quot;
++msgstr &quot;&quot;
++
++msgid &quot;No ACPI&quot;
++msgstr &quot;&quot;
++
++msgid &quot;No Local APIC&quot;
++msgstr &quot;&quot;
++
++
++# driver menu
++
++msgid &quot;Yes&quot;
++msgstr &quot;&quot;
++
++msgid &quot;No&quot;
++msgstr &quot;&quot;
++
++msgid &quot;File&quot;
++msgstr &quot;&quot;
++
++msgid &quot;URL&quot;
++msgstr &quot;&quot;
++
++
++# arch menu
++
++msgid &quot;x86&quot;
++msgstr &quot;&quot;
++
++msgid &quot;x86-64&quot;
++msgstr &quot;&quot;
++
++
++# install sources
++
++msgid &quot;FTP Installation&quot;
++msgstr &quot;&quot;
++
++msgid &quot;NFS Installation&quot;
++msgstr &quot;&quot;
++
++msgid &quot;HTTP Installation&quot;
++msgstr &quot;&quot;
++
++msgid &quot;SMB (Windows Share) Installation&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Hard Disk Installation&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Server\n&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Directory\n&quot;
++msgstr &quot;&quot;
++
++msgid &quot;User (Anonymous Login If Empty)\n&quot;
++msgstr &quot;&quot;
++
++msgid &quot;User (Uses \&quot;guest\&quot; If Empty)\n&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Password\n&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Domain\n&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Share\n&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Disk Device (Scans All Disks If Empty)\n&quot;
++msgstr &quot;&quot;
++
++msgid &quot;&quot;
++&quot;To load driver updates directly from CD-ROM,\n&quot;
++&quot;enter the driver update file names (separated\n&quot;
++&quot;by commas ',') here:\n&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Driver Update&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Download Driver Update&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Enter Driver Update URL\n&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Exiting...&quot;
++msgstr &quot;&quot;
++
++msgid &quot;&quot;
++&quot;You are leaving the graphical boot menu and\n&quot;
++&quot;starting the text mode interface.&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Power Off&quot;
++msgstr &quot;&quot;
++
++msgid &quot;Halt the system now?&quot;
++msgstr &quot;&quot;
++
++
++# ascii
++
++msgid &quot; &quot;
++msgstr &quot;space&quot;
++
++msgid &quot;!&quot;
++msgstr &quot;&quot;
++
++msgid &quot;\&quot;&quot;
++msgstr &quot;&quot;
++
++msgid &quot;#&quot;
++msgstr &quot;&quot;
++
++msgid &quot;$&quot;
++msgstr &quot;&quot;
++
++msgid &quot;%&quot;
++msgstr &quot;&quot;
++
++msgid &quot;&amp;&quot;
++msgstr &quot;&quot;
++
++msgid &quot;'&quot;
++msgstr &quot;&quot;
++
++msgid &quot;(&quot;
++msgstr &quot;&quot;
++
++msgid &quot;)&quot;
++msgstr &quot;&quot;
++
++msgid &quot;*&quot;
++msgstr &quot;&quot;
++
++msgid &quot;+&quot;
++msgstr &quot;&quot;
++
++msgid &quot;,&quot;
++msgstr &quot;&quot;
++
++msgid &quot;-&quot;
++msgstr &quot;&quot;
++
++msgid &quot;.&quot;
++msgstr &quot;&quot;
++
++msgid &quot;/&quot;
++msgstr &quot;&quot;
++
++msgid &quot;0&quot;
++msgstr &quot;&quot;
++
++msgid &quot;1&quot;
++msgstr &quot;&quot;
++
++msgid &quot;2&quot;
++msgstr &quot;&quot;
++
++msgid &quot;3&quot;
++msgstr &quot;&quot;
++
++msgid &quot;4&quot;
++msgstr &quot;&quot;
++
++msgid &quot;5&quot;
++msgstr &quot;&quot;
++
++msgid &quot;6&quot;
++msgstr &quot;&quot;
++
++msgid &quot;7&quot;
++msgstr &quot;&quot;
++
++msgid &quot;8&quot;
++msgstr &quot;&quot;
++
++msgid &quot;9&quot;
++msgstr &quot;&quot;
++
++msgid &quot;:&quot;
++msgstr &quot;&quot;
++
++msgid &quot;;&quot;
++msgstr &quot;&quot;
++
++msgid &quot;&lt;&quot;
++msgstr &quot;&quot;
++
++msgid &quot;=&quot;
++msgstr &quot;&quot;
++
++msgid &quot;&gt;&quot;
++msgstr &quot;&quot;
++
++msgid &quot;?&quot;
++msgstr &quot;&quot;
++
++msgid &quot;@&quot;
++msgstr &quot;&quot;
++
++msgid &quot;[&quot;
++msgstr &quot;&quot;
++
++msgid &quot;\\&quot;
++msgstr &quot;&quot;
++
++msgid &quot;]&quot;
++msgstr &quot;&quot;
++
++msgid &quot;^&quot;
++msgstr &quot;&quot;
++
++msgid &quot;_&quot;
++msgstr &quot;&quot;
++
++msgid &quot;`&quot;
++msgstr &quot;&quot;
++
++msgid &quot;a&quot;
++msgstr &quot;&quot;
++
++msgid &quot;b&quot;
++msgstr &quot;&quot;
++
++msgid &quot;c&quot;
++msgstr &quot;&quot;
++
++msgid &quot;d&quot;
++msgstr &quot;&quot;
++
++msgid &quot;e&quot;
++msgstr &quot;&quot;
++
++msgid &quot;f&quot;
++msgstr &quot;&quot;
++
++msgid &quot;g&quot;
++msgstr &quot;&quot;
++
++msgid &quot;h&quot;
++msgstr &quot;&quot;
++
++msgid &quot;i&quot;
++msgstr &quot;&quot;
++
++msgid &quot;j&quot;
++msgstr &quot;&quot;
++
++msgid &quot;k&quot;
++msgstr &quot;&quot;
++
++msgid &quot;l&quot;
++msgstr &quot;&quot;
++
++msgid &quot;m&quot;
++msgstr &quot;&quot;
++
++msgid &quot;n&quot;
++msgstr &quot;&quot;
++
++msgid &quot;o&quot;
++msgstr &quot;&quot;
++
++msgid &quot;p&quot;
++msgstr &quot;&quot;
++
++msgid &quot;q&quot;
++msgstr &quot;&quot;
++
++msgid &quot;r&quot;
++msgstr &quot;&quot;
++
++msgid &quot;s&quot;
++msgstr &quot;&quot;
++
++msgid &quot;t&quot;
++msgstr &quot;&quot;
++
++msgid &quot;u&quot;
++msgstr &quot;&quot;
++
++msgid &quot;v&quot;
++msgstr &quot;&quot;
++
++msgid &quot;w&quot;
++msgstr &quot;&quot;
++
++msgid &quot;x&quot;
++msgstr &quot;&quot;
++
++msgid &quot;y&quot;
++msgstr &quot;&quot;
++
++msgid &quot;z&quot;
++msgstr &quot;&quot;
++
++msgid &quot;{&quot;
++msgstr &quot;&quot;
++
++msgid &quot;|&quot;
++msgstr &quot;&quot;
++
++msgid &quot;}&quot;
++msgstr &quot;&quot;
++
++msgid &quot;~&quot;
++msgstr &quot;&quot;
++
+
+</pre></div>
+
+</body>
+</html> \ No newline at end of file
diff --git a/zarb-ml/mageia-sysadm/attachments/20110207/5500fee0/attachment-0001.html b/zarb-ml/mageia-sysadm/attachments/20110207/5500fee0/attachment-0001.html
new file mode 100644
index 000000000..a90d9907c
--- /dev/null
+++ b/zarb-ml/mageia-sysadm/attachments/20110207/5500fee0/attachment-0001.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>[453] Readd $us</title>
+</head>
+<body>
+
+<style type="text/css"><!--
+#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
+#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
+#msg dt:after { content:':';}
+#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
+#msg dl a { font-weight: bold}
+#msg dl a:link { color:#fc3; }
+#msg dl a:active { color:#ff0; }
+#msg dl a:visited { color:#cc6; }
+h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
+#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
+#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
+#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
+#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
+#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
+#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
+#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
+#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
+#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
+#logmsg pre { background: #eee; padding: 1em; }
+#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
+#logmsg dl { margin: 0; }
+#logmsg dt { font-weight: bold; }
+#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
+#logmsg dd:before { content:'\00bb';}
+#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
+#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
+#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
+#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
+#logmsg table th.Corner { text-align: left; }
+#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
+#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
+#patch { width: 100%; }
+--></style>
+<div id="msg">
+<dl class="meta">
+<dt>Revision</dt> <dd>453</dd>
+<dt>Author</dt> <dd>dmorgan</dd>
+<dt>Date</dt> <dd>2011-02-07 01:18:20 +0100 (Mon, 07 Feb 2011)</dd>
+</dl>
+
+<h3>Log Message</h3>
+<pre>Readd $us</pre>
+
+<h3>Modified Paths</h3>
+<ul>
+<li><a href="#drakxtrunkperlinstallmessagespm">drakx/trunk/perl-install/messages.pm</a></li>
+</ul>
+
+</div>
+<div id="patch"><pre>
+<a id="drakxtrunkperlinstallmessagespm">Modified: drakx/trunk/perl-install/messages.pm</a>
+===================================================================
+--- drakx/trunk/perl-install/messages.pm 2011-02-07 00:06:49 UTC (rev 452)
++++ drakx/trunk/perl-install/messages.pm 2011-02-07 00:18:20 UTC (rev 453)
+@@ -6,6 +6,10 @@
+ use common;
+
+ sub main_license {
++
++ #TODO: Change the API to not use $google, which is unused now
++ my ($us, $google) = @_;
++
+ #-PO: keep the double empty lines between sections, this is formatted a la LaTeX
+ N(&quot;Introduction
+
+
+</pre></div>
+
+</body>
+</html> \ No newline at end of file
diff --git a/zarb-ml/mageia-sysadm/attachments/20110207/5500fee0/attachment.html b/zarb-ml/mageia-sysadm/attachments/20110207/5500fee0/attachment.html
new file mode 100644
index 000000000..a90d9907c
--- /dev/null
+++ b/zarb-ml/mageia-sysadm/attachments/20110207/5500fee0/attachment.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>[453] Readd $us</title>
+</head>
+<body>
+
+<style type="text/css"><!--
+#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
+#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
+#msg dt:after { content:':';}
+#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
+#msg dl a { font-weight: bold}
+#msg dl a:link { color:#fc3; }
+#msg dl a:active { color:#ff0; }
+#msg dl a:visited { color:#cc6; }
+h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
+#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
+#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
+#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
+#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
+#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
+#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
+#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
+#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
+#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
+#logmsg pre { background: #eee; padding: 1em; }
+#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
+#logmsg dl { margin: 0; }
+#logmsg dt { font-weight: bold; }
+#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
+#logmsg dd:before { content:'\00bb';}
+#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
+#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
+#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
+#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
+#logmsg table th.Corner { text-align: left; }
+#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
+#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
+#patch { width: 100%; }
+--></style>
+<div id="msg">
+<dl class="meta">
+<dt>Revision</dt> <dd>453</dd>
+<dt>Author</dt> <dd>dmorgan</dd>
+<dt>Date</dt> <dd>2011-02-07 01:18:20 +0100 (Mon, 07 Feb 2011)</dd>
+</dl>
+
+<h3>Log Message</h3>
+<pre>Readd $us</pre>
+
+<h3>Modified Paths</h3>
+<ul>
+<li><a href="#drakxtrunkperlinstallmessagespm">drakx/trunk/perl-install/messages.pm</a></li>
+</ul>
+
+</div>
+<div id="patch"><pre>
+<a id="drakxtrunkperlinstallmessagespm">Modified: drakx/trunk/perl-install/messages.pm</a>
+===================================================================
+--- drakx/trunk/perl-install/messages.pm 2011-02-07 00:06:49 UTC (rev 452)
++++ drakx/trunk/perl-install/messages.pm 2011-02-07 00:18:20 UTC (rev 453)
+@@ -6,6 +6,10 @@
+ use common;
+
+ sub main_license {
++
++ #TODO: Change the API to not use $google, which is unused now
++ my ($us, $google) = @_;
++
+ #-PO: keep the double empty lines between sections, this is formatted a la LaTeX
+ N(&quot;Introduction
+
+
+</pre></div>
+
+</body>
+</html> \ No newline at end of file
diff --git a/zarb-ml/mageia-sysadm/attachments/20110207/55e270af/attachment-0001.html b/zarb-ml/mageia-sysadm/attachments/20110207/55e270af/attachment-0001.html
new file mode 100644
index 000000000..7cea6437f
--- /dev/null
+++ b/zarb-ml/mageia-sysadm/attachments/20110207/55e270af/attachment-0001.html
@@ -0,0 +1,70266 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>[475] tag 1.13.3</title>
+</head>
+<body>
+
+<style type="text/css"><!--
+#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
+#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
+#msg dt:after { content:':';}
+#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
+#msg dl a { font-weight: bold}
+#msg dl a:link { color:#fc3; }
+#msg dl a:active { color:#ff0; }
+#msg dl a:visited { color:#cc6; }
+h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
+#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
+#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
+#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
+#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
+#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
+#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
+#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
+#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
+#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
+#logmsg pre { background: #eee; padding: 1em; }
+#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
+#logmsg dl { margin: 0; }
+#logmsg dt { font-weight: bold; }
+#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
+#logmsg dd:before { content:'\00bb';}
+#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
+#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
+#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
+#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
+#logmsg table th.Corner { text-align: left; }
+#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
+#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
+#patch { width: 100%; }
+--></style>
+<div id="msg">
+<dl class="meta">
+<dt>Revision</dt> <dd>475</dd>
+<dt>Author</dt> <dd>dmorgan</dd>
+<dt>Date</dt> <dd>2011-02-07 12:58:29 +0100 (Mon, 07 Feb 2011)</dd>
+</dl>
+
+<h3>Log Message</h3>
+<pre>tag 1.13.3</pre>
+
+<h3>Added Paths</h3>
+<ul>
+<li>userdrake2/tags/1.13.3/</li>
+<li><a href="#userdrake2tags1133perl_checker">userdrake2/tags/1.13.3/.perl_checker</a></li>
+<li><a href="#userdrake2tags1133AUTHORS">userdrake2/tags/1.13.3/AUTHORS</a></li>
+<li><a href="#userdrake2tags1133COPYING">userdrake2/tags/1.13.3/COPYING</a></li>
+<li><a href="#userdrake2tags1133ChangeLog">userdrake2/tags/1.13.3/ChangeLog</a></li>
+<li><a href="#userdrake2tags1133Makefile">userdrake2/tags/1.13.3/Makefile</a></li>
+<li><a href="#userdrake2tags1133NEWS">userdrake2/tags/1.13.3/NEWS</a></li>
+<li><a href="#userdrake2tags1133README">userdrake2/tags/1.13.3/README</a></li>
+<li><a href="#userdrake2tags1133RELEASE_NOTES">userdrake2/tags/1.13.3/RELEASE_NOTES</a></li>
+<li>userdrake2/tags/1.13.3/USER/</li>
+<li><a href="#userdrake2tags1133USERChanges">userdrake2/tags/1.13.3/USER/Changes</a></li>
+<li><a href="#userdrake2tags1133USERMakefilePL">userdrake2/tags/1.13.3/USER/Makefile.PL</a></li>
+<li><a href="#userdrake2tags1133USERREADME">userdrake2/tags/1.13.3/USER/README</a></li>
+<li><a href="#userdrake2tags1133USERUSERpm">userdrake2/tags/1.13.3/USER/USER.pm</a></li>
+<li><a href="#userdrake2tags1133USERUSERxs">userdrake2/tags/1.13.3/USER/USER.xs</a></li>
+<li><a href="#userdrake2tags1133USERppporth">userdrake2/tags/1.13.3/USER/ppport.h</a></li>
+<li><a href="#userdrake2tags1133USERtypemap">userdrake2/tags/1.13.3/USER/typemap</a></li>
+<li>userdrake2/tags/1.13.3/icons/</li>
+<li><a href="#userdrake2tags1133iconsselectedpng">userdrake2/tags/1.13.3/icons/selected.png</a></li>
+<li><a href="#userdrake2tags1133iconsunselectedpng">userdrake2/tags/1.13.3/icons/unselected.png</a></li>
+<li><a href="#userdrake2tags1133iconsuserdrake16png">userdrake2/tags/1.13.3/icons/userdrake16.png</a></li>
+<li><a href="#userdrake2tags1133iconsuserdrake32png">userdrake2/tags/1.13.3/icons/userdrake32.png</a></li>
+<li><a href="#userdrake2tags1133iconsuserdrake48png">userdrake2/tags/1.13.3/icons/userdrake48.png</a></li>
+<li><a href="#userdrake2tags1133perlobjectmap">userdrake2/tags/1.13.3/perlobject.map</a></li>
+<li>userdrake2/tags/1.13.3/pixmaps/</li>
+<li><a href="#userdrake2tags1133pixmapsgroup_addpng">userdrake2/tags/1.13.3/pixmaps/group_add.png</a></li>
+<li><a href="#userdrake2tags1133pixmapshelppng">userdrake2/tags/1.13.3/pixmaps/help.png</a></li>
+<li><a href="#userdrake2tags1133pixmapsredhatconfiguserspng">userdrake2/tags/1.13.3/pixmaps/redhat-config-users.png</a></li>
+<li><a href="#userdrake2tags1133pixmapsrefreshpng">userdrake2/tags/1.13.3/pixmaps/refresh.png</a></li>
+<li><a href="#userdrake2tags1133pixmapsuser_addpng">userdrake2/tags/1.13.3/pixmaps/user_add.png</a></li>
+<li><a href="#userdrake2tags1133pixmapsuser_confpng">userdrake2/tags/1.13.3/pixmaps/user_conf.png</a></li>
+<li><a href="#userdrake2tags1133pixmapsuser_delpng">userdrake2/tags/1.13.3/pixmaps/user_del.png</a></li>
+<li><a href="#userdrake2tags1133pixmapsuserdrakepng">userdrake2/tags/1.13.3/pixmaps/userdrake.png</a></li>
+<li>userdrake2/tags/1.13.3/po/</li>
+<li><a href="#userdrake2tags1133poMakefile">userdrake2/tags/1.13.3/po/Makefile</a></li>
+<li><a href="#userdrake2tags1133poPOTFILESin">userdrake2/tags/1.13.3/po/POTFILES.in</a></li>
+<li><a href="#userdrake2tags1133poafpo">userdrake2/tags/1.13.3/po/af.po</a></li>
+<li><a href="#userdrake2tags1133poampo">userdrake2/tags/1.13.3/po/am.po</a></li>
+<li><a href="#userdrake2tags1133poarpo">userdrake2/tags/1.13.3/po/ar.po</a></li>
+<li><a href="#userdrake2tags1133poastpo">userdrake2/tags/1.13.3/po/ast.po</a></li>
+<li><a href="#userdrake2tags1133poazpo">userdrake2/tags/1.13.3/po/az.po</a></li>
+<li><a href="#userdrake2tags1133pobepo">userdrake2/tags/1.13.3/po/be.po</a></li>
+<li><a href="#userdrake2tags1133pobgpo">userdrake2/tags/1.13.3/po/bg.po</a></li>
+<li><a href="#userdrake2tags1133pobnpo">userdrake2/tags/1.13.3/po/bn.po</a></li>
+<li><a href="#userdrake2tags1133pobrpo">userdrake2/tags/1.13.3/po/br.po</a></li>
+<li><a href="#userdrake2tags1133pobspo">userdrake2/tags/1.13.3/po/bs.po</a></li>
+<li><a href="#userdrake2tags1133pocapo">userdrake2/tags/1.13.3/po/ca.po</a></li>
+<li><a href="#userdrake2tags1133pocspo">userdrake2/tags/1.13.3/po/cs.po</a></li>
+<li><a href="#userdrake2tags1133pocypo">userdrake2/tags/1.13.3/po/cy.po</a></li>
+<li><a href="#userdrake2tags1133podapo">userdrake2/tags/1.13.3/po/da.po</a></li>
+<li><a href="#userdrake2tags1133podepo">userdrake2/tags/1.13.3/po/de.po</a></li>
+<li><a href="#userdrake2tags1133poelpo">userdrake2/tags/1.13.3/po/el.po</a></li>
+<li><a href="#userdrake2tags1133poeopo">userdrake2/tags/1.13.3/po/eo.po</a></li>
+<li><a href="#userdrake2tags1133poespo">userdrake2/tags/1.13.3/po/es.po</a></li>
+<li><a href="#userdrake2tags1133poetpo">userdrake2/tags/1.13.3/po/et.po</a></li>
+<li><a href="#userdrake2tags1133poeupo">userdrake2/tags/1.13.3/po/eu.po</a></li>
+<li><a href="#userdrake2tags1133pofapo">userdrake2/tags/1.13.3/po/fa.po</a></li>
+<li><a href="#userdrake2tags1133pofipo">userdrake2/tags/1.13.3/po/fi.po</a></li>
+<li><a href="#userdrake2tags1133pofrpo">userdrake2/tags/1.13.3/po/fr.po</a></li>
+<li><a href="#userdrake2tags1133pofurpo">userdrake2/tags/1.13.3/po/fur.po</a></li>
+<li><a href="#userdrake2tags1133pogapo">userdrake2/tags/1.13.3/po/ga.po</a></li>
+<li><a href="#userdrake2tags1133poglpo">userdrake2/tags/1.13.3/po/gl.po</a></li>
+<li><a href="#userdrake2tags1133pohepo">userdrake2/tags/1.13.3/po/he.po</a></li>
+<li><a href="#userdrake2tags1133pohipo">userdrake2/tags/1.13.3/po/hi.po</a></li>
+<li><a href="#userdrake2tags1133pohrpo">userdrake2/tags/1.13.3/po/hr.po</a></li>
+<li><a href="#userdrake2tags1133pohupo">userdrake2/tags/1.13.3/po/hu.po</a></li>
+<li><a href="#userdrake2tags1133pohypo">userdrake2/tags/1.13.3/po/hy.po</a></li>
+<li><a href="#userdrake2tags1133poidpo">userdrake2/tags/1.13.3/po/id.po</a></li>
+<li><a href="#userdrake2tags1133poispo">userdrake2/tags/1.13.3/po/is.po</a></li>
+<li><a href="#userdrake2tags1133poitpo">userdrake2/tags/1.13.3/po/it.po</a></li>
+<li><a href="#userdrake2tags1133pojapo">userdrake2/tags/1.13.3/po/ja.po</a></li>
+<li><a href="#userdrake2tags1133pokapo">userdrake2/tags/1.13.3/po/ka.po</a></li>
+<li><a href="#userdrake2tags1133pokopo">userdrake2/tags/1.13.3/po/ko.po</a></li>
+<li><a href="#userdrake2tags1133pokupo">userdrake2/tags/1.13.3/po/ku.po</a></li>
+<li><a href="#userdrake2tags1133pokypo">userdrake2/tags/1.13.3/po/ky.po</a></li>
+<li><a href="#userdrake2tags1133polopo">userdrake2/tags/1.13.3/po/lo.po</a></li>
+<li><a href="#userdrake2tags1133poltpo">userdrake2/tags/1.13.3/po/lt.po</a></li>
+<li><a href="#userdrake2tags1133poltgpo">userdrake2/tags/1.13.3/po/ltg.po</a></li>
+<li><a href="#userdrake2tags1133polvpo">userdrake2/tags/1.13.3/po/lv.po</a></li>
+<li><a href="#userdrake2tags1133pomkpo">userdrake2/tags/1.13.3/po/mk.po</a></li>
+<li><a href="#userdrake2tags1133pomnpo">userdrake2/tags/1.13.3/po/mn.po</a></li>
+<li><a href="#userdrake2tags1133pomspo">userdrake2/tags/1.13.3/po/ms.po</a></li>
+<li><a href="#userdrake2tags1133pomtpo">userdrake2/tags/1.13.3/po/mt.po</a></li>
+<li><a href="#userdrake2tags1133ponbpo">userdrake2/tags/1.13.3/po/nb.po</a></li>
+<li><a href="#userdrake2tags1133ponlpo">userdrake2/tags/1.13.3/po/nl.po</a></li>
+<li><a href="#userdrake2tags1133ponnpo">userdrake2/tags/1.13.3/po/nn.po</a></li>
+<li><a href="#userdrake2tags1133popa_INpo">userdrake2/tags/1.13.3/po/pa_IN.po</a></li>
+<li><a href="#userdrake2tags1133poplpo">userdrake2/tags/1.13.3/po/pl.po</a></li>
+<li><a href="#userdrake2tags1133poptpo">userdrake2/tags/1.13.3/po/pt.po</a></li>
+<li><a href="#userdrake2tags1133popt_BRpo">userdrake2/tags/1.13.3/po/pt_BR.po</a></li>
+<li><a href="#userdrake2tags1133poropo">userdrake2/tags/1.13.3/po/ro.po</a></li>
+<li><a href="#userdrake2tags1133porupo">userdrake2/tags/1.13.3/po/ru.po</a></li>
+<li><a href="#userdrake2tags1133poscpo">userdrake2/tags/1.13.3/po/sc.po</a></li>
+<li><a href="#userdrake2tags1133poskpo">userdrake2/tags/1.13.3/po/sk.po</a></li>
+<li><a href="#userdrake2tags1133poslpo">userdrake2/tags/1.13.3/po/sl.po</a></li>
+<li><a href="#userdrake2tags1133posqpo">userdrake2/tags/1.13.3/po/sq.po</a></li>
+<li><a href="#userdrake2tags1133posrpo">userdrake2/tags/1.13.3/po/sr.po</a></li>
+<li><a href="#userdrake2tags1133posrLatnpo">userdrake2/tags/1.13.3/po/sr@Latn.po</a></li>
+<li><a href="#userdrake2tags1133posvpo">userdrake2/tags/1.13.3/po/sv.po</a></li>
+<li><a href="#userdrake2tags1133potapo">userdrake2/tags/1.13.3/po/ta.po</a></li>
+<li><a href="#userdrake2tags1133potgpo">userdrake2/tags/1.13.3/po/tg.po</a></li>
+<li><a href="#userdrake2tags1133pothpo">userdrake2/tags/1.13.3/po/th.po</a></li>
+<li><a href="#userdrake2tags1133potlpo">userdrake2/tags/1.13.3/po/tl.po</a></li>
+<li><a href="#userdrake2tags1133potrpo">userdrake2/tags/1.13.3/po/tr.po</a></li>
+<li><a href="#userdrake2tags1133poukpo">userdrake2/tags/1.13.3/po/uk.po</a></li>
+<li><a href="#userdrake2tags1133pouserdrakepot">userdrake2/tags/1.13.3/po/userdrake.pot</a></li>
+<li><a href="#userdrake2tags1133pouzpo">userdrake2/tags/1.13.3/po/uz.po</a></li>
+<li><a href="#userdrake2tags1133pouzcyrillicpo">userdrake2/tags/1.13.3/po/uz@cyrillic.po</a></li>
+<li><a href="#userdrake2tags1133povipo">userdrake2/tags/1.13.3/po/vi.po</a></li>
+<li><a href="#userdrake2tags1133powapo">userdrake2/tags/1.13.3/po/wa.po</a></li>
+<li><a href="#userdrake2tags1133pozh_CNpo">userdrake2/tags/1.13.3/po/zh_CN.po</a></li>
+<li><a href="#userdrake2tags1133pozh_TWpo">userdrake2/tags/1.13.3/po/zh_TW.po</a></li>
+<li><a href="#userdrake2tags1133todo">userdrake2/tags/1.13.3/todo</a></li>
+<li><a href="#userdrake2tags1133userdrake">userdrake2/tags/1.13.3/userdrake</a></li>
+<li><a href="#userdrake2tags1133userdrakeprefs">userdrake2/tags/1.13.3/userdrake.prefs</a></li>
+</ul>
+
+</div>
+<div id="patch"><pre>
+<a id="userdrake2tags1133perl_checker">Added: userdrake2/tags/1.13.3/.perl_checker</a>
+===================================================================
+--- userdrake2/tags/1.13.3/.perl_checker (rev 0)
++++ userdrake2/tags/1.13.3/.perl_checker 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,13 @@
++AutoLoader
++Carp::Heavy
++constant
++Digest::base
++Encode
++File::FnMatch
++File::Path
++File::Sync
++Gtk2::Gdk::Keysyms
++IO::Handle
++Text::ParseWords
++XSLoader
++do_pkgs
+
+<a id="userdrake2tags1133AUTHORS">Added: userdrake2/tags/1.13.3/AUTHORS</a>
+===================================================================
+--- userdrake2/tags/1.13.3/AUTHORS (rev 0)
++++ userdrake2/tags/1.13.3/AUTHORS 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1 @@
++Daouda LO &lt;daouda@mandrakesoft.com&gt;
+\ No newline at end of file
+
+<a id="userdrake2tags1133COPYING">Added: userdrake2/tags/1.13.3/COPYING</a>
+===================================================================
+--- userdrake2/tags/1.13.3/COPYING (rev 0)
++++ userdrake2/tags/1.13.3/COPYING 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,340 @@
++ GNU GENERAL PUBLIC LICENSE
++ Version 2, June 1991
++
++ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
++ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ Everyone is permitted to copy and distribute verbatim copies
++ of this license document, but changing it is not allowed.
++
++ Preamble
++
++ The licenses for most software are designed to take away your
++freedom to share and change it. By contrast, the GNU General Public
++License is intended to guarantee your freedom to share and change free
++software--to make sure the software is free for all its users. This
++General Public License applies to most of the Free Software
++Foundation's software and to any other program whose authors commit to
++using it. (Some other Free Software Foundation software is covered by
++the GNU Library General Public License instead.) You can apply it to
++your programs, too.
++
++ When we speak of free software, we are referring to freedom, not
++price. Our General Public Licenses are designed to make sure that you
++have the freedom to distribute copies of free software (and charge for
++this service if you wish), that you receive source code or can get it
++if you want it, that you can change the software or use pieces of it
++in new free programs; and that you know you can do these things.
++
++ To protect your rights, we need to make restrictions that forbid
++anyone to deny you these rights or to ask you to surrender the rights.
++These restrictions translate to certain responsibilities for you if you
++distribute copies of the software, or if you modify it.
++
++ For example, if you distribute copies of such a program, whether
++gratis or for a fee, you must give the recipients all the rights that
++you have. You must make sure that they, too, receive or can get the
++source code. And you must show them these terms so they know their
++rights.
++
++ We protect your rights with two steps: (1) copyright the software, and
++(2) offer you this license which gives you legal permission to copy,
++distribute and/or modify the software.
++
++ Also, for each author's protection and ours, we want to make certain
++that everyone understands that there is no warranty for this free
++software. If the software is modified by someone else and passed on, we
++want its recipients to know that what they have is not the original, so
++that any problems introduced by others will not reflect on the original
++authors' reputations.
++
++ Finally, any free program is threatened constantly by software
++patents. We wish to avoid the danger that redistributors of a free
++program will individually obtain patent licenses, in effect making the
++program proprietary. To prevent this, we have made it clear that any
++patent must be licensed for everyone's free use or not licensed at all.
++
++ The precise terms and conditions for copying, distribution and
++modification follow.
++
++ GNU GENERAL PUBLIC LICENSE
++ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
++
++ 0. This License applies to any program or other work which contains
++a notice placed by the copyright holder saying it may be distributed
++under the terms of this General Public License. The &quot;Program&quot;, below,
++refers to any such program or work, and a &quot;work based on the Program&quot;
++means either the Program or any derivative work under copyright law:
++that is to say, a work containing the Program or a portion of it,
++either verbatim or with modifications and/or translated into another
++language. (Hereinafter, translation is included without limitation in
++the term &quot;modification&quot;.) Each licensee is addressed as &quot;you&quot;.
++
++Activities other than copying, distribution and modification are not
++covered by this License; they are outside its scope. The act of
++running the Program is not restricted, and the output from the Program
++is covered only if its contents constitute a work based on the
++Program (independent of having been made by running the Program).
++Whether that is true depends on what the Program does.
++
++ 1. You may copy and distribute verbatim copies of the Program's
++source code as you receive it, in any medium, provided that you
++conspicuously and appropriately publish on each copy an appropriate
++copyright notice and disclaimer of warranty; keep intact all the
++notices that refer to this License and to the absence of any warranty;
++and give any other recipients of the Program a copy of this License
++along with the Program.
++
++You may charge a fee for the physical act of transferring a copy, and
++you may at your option offer warranty protection in exchange for a fee.
++
++ 2. You may modify your copy or copies of the Program or any portion
++of it, thus forming a work based on the Program, and copy and
++distribute such modifications or work under the terms of Section 1
++above, provided that you also meet all of these conditions:
++
++ a) You must cause the modified files to carry prominent notices
++ stating that you changed the files and the date of any change.
++
++ b) You must cause any work that you distribute or publish, that in
++ whole or in part contains or is derived from the Program or any
++ part thereof, to be licensed as a whole at no charge to all third
++ parties under the terms of this License.
++
++ c) If the modified program normally reads commands interactively
++ when run, you must cause it, when started running for such
++ interactive use in the most ordinary way, to print or display an
++ announcement including an appropriate copyright notice and a
++ notice that there is no warranty (or else, saying that you provide
++ a warranty) and that users may redistribute the program under
++ these conditions, and telling the user how to view a copy of this
++ License. (Exception: if the Program itself is interactive but
++ does not normally print such an announcement, your work based on
++ the Program is not required to print an announcement.)
++
++These requirements apply to the modified work as a whole. If
++identifiable sections of that work are not derived from the Program,
++and can be reasonably considered independent and separate works in
++themselves, then this License, and its terms, do not apply to those
++sections when you distribute them as separate works. But when you
++distribute the same sections as part of a whole which is a work based
++on the Program, the distribution of the whole must be on the terms of
++this License, whose permissions for other licensees extend to the
++entire whole, and thus to each and every part regardless of who wrote it.
++
++Thus, it is not the intent of this section to claim rights or contest
++your rights to work written entirely by you; rather, the intent is to
++exercise the right to control the distribution of derivative or
++collective works based on the Program.
++
++In addition, mere aggregation of another work not based on the Program
++with the Program (or with a work based on the Program) on a volume of
++a storage or distribution medium does not bring the other work under
++the scope of this License.
++
++ 3. You may copy and distribute the Program (or a work based on it,
++under Section 2) in object code or executable form under the terms of
++Sections 1 and 2 above provided that you also do one of the following:
++
++ a) Accompany it with the complete corresponding machine-readable
++ source code, which must be distributed under the terms of Sections
++ 1 and 2 above on a medium customarily used for software interchange; or,
++
++ b) Accompany it with a written offer, valid for at least three
++ years, to give any third party, for a charge no more than your
++ cost of physically performing source distribution, a complete
++ machine-readable copy of the corresponding source code, to be
++ distributed under the terms of Sections 1 and 2 above on a medium
++ customarily used for software interchange; or,
++
++ c) Accompany it with the information you received as to the offer
++ to distribute corresponding source code. (This alternative is
++ allowed only for noncommercial distribution and only if you
++ received the program in object code or executable form with such
++ an offer, in accord with Subsection b above.)
++
++The source code for a work means the preferred form of the work for
++making modifications to it. For an executable work, complete source
++code means all the source code for all modules it contains, plus any
++associated interface definition files, plus the scripts used to
++control compilation and installation of the executable. However, as a
++special exception, the source code distributed need not include
++anything that is normally distributed (in either source or binary
++form) with the major components (compiler, kernel, and so on) of the
++operating system on which the executable runs, unless that component
++itself accompanies the executable.
++
++If distribution of executable or object code is made by offering
++access to copy from a designated place, then offering equivalent
++access to copy the source code from the same place counts as
++distribution of the source code, even though third parties are not
++compelled to copy the source along with the object code.
++
++ 4. You may not copy, modify, sublicense, or distribute the Program
++except as expressly provided under this License. Any attempt
++otherwise to copy, modify, sublicense or distribute the Program is
++void, and will automatically terminate your rights under this License.
++However, parties who have received copies, or rights, from you under
++this License will not have their licenses terminated so long as such
++parties remain in full compliance.
++
++ 5. You are not required to accept this License, since you have not
++signed it. However, nothing else grants you permission to modify or
++distribute the Program or its derivative works. These actions are
++prohibited by law if you do not accept this License. Therefore, by
++modifying or distributing the Program (or any work based on the
++Program), you indicate your acceptance of this License to do so, and
++all its terms and conditions for copying, distributing or modifying
++the Program or works based on it.
++
++ 6. Each time you redistribute the Program (or any work based on the
++Program), the recipient automatically receives a license from the
++original licensor to copy, distribute or modify the Program subject to
++these terms and conditions. You may not impose any further
++restrictions on the recipients' exercise of the rights granted herein.
++You are not responsible for enforcing compliance by third parties to
++this License.
++
++ 7. If, as a consequence of a court judgment or allegation of patent
++infringement or for any other reason (not limited to patent issues),
++conditions are imposed on you (whether by court order, agreement or
++otherwise) that contradict the conditions of this License, they do not
++excuse you from the conditions of this License. If you cannot
++distribute so as to satisfy simultaneously your obligations under this
++License and any other pertinent obligations, then as a consequence you
++may not distribute the Program at all. For example, if a patent
++license would not permit royalty-free redistribution of the Program by
++all those who receive copies directly or indirectly through you, then
++the only way you could satisfy both it and this License would be to
++refrain entirely from distribution of the Program.
++
++If any portion of this section is held invalid or unenforceable under
++any particular circumstance, the balance of the section is intended to
++apply and the section as a whole is intended to apply in other
++circumstances.
++
++It is not the purpose of this section to induce you to infringe any
++patents or other property right claims or to contest validity of any
++such claims; this section has the sole purpose of protecting the
++integrity of the free software distribution system, which is
++implemented by public license practices. Many people have made
++generous contributions to the wide range of software distributed
++through that system in reliance on consistent application of that
++system; it is up to the author/donor to decide if he or she is willing
++to distribute software through any other system and a licensee cannot
++impose that choice.
++
++This section is intended to make thoroughly clear what is believed to
++be a consequence of the rest of this License.
++
++ 8. If the distribution and/or use of the Program is restricted in
++certain countries either by patents or by copyrighted interfaces, the
++original copyright holder who places the Program under this License
++may add an explicit geographical distribution limitation excluding
++those countries, so that distribution is permitted only in or among
++countries not thus excluded. In such case, this License incorporates
++the limitation as if written in the body of this License.
++
++ 9. The Free Software Foundation may publish revised and/or new versions
++of the General Public License from time to time. Such new versions will
++be similar in spirit to the present version, but may differ in detail to
++address new problems or concerns.
++
++Each version is given a distinguishing version number. If the Program
++specifies a version number of this License which applies to it and &quot;any
++later version&quot;, you have the option of following the terms and conditions
++either of that version or of any later version published by the Free
++Software Foundation. If the Program does not specify a version number of
++this License, you may choose any version ever published by the Free Software
++Foundation.
++
++ 10. If you wish to incorporate parts of the Program into other free
++programs whose distribution conditions are different, write to the author
++to ask for permission. For software which is copyrighted by the Free
++Software Foundation, write to the Free Software Foundation; we sometimes
++make exceptions for this. Our decision will be guided by the two goals
++of preserving the free status of all derivatives of our free software and
++of promoting the sharing and reuse of software generally.
++
++ NO WARRANTY
++
++ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
++FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
++OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
++PROVIDE THE PROGRAM &quot;AS IS&quot; WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
++OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
++MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
++TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
++PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
++REPAIR OR CORRECTION.
++
++ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
++WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
++REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
++INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
++OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
++TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
++YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
++PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
++POSSIBILITY OF SUCH DAMAGES.
++
++ END OF TERMS AND CONDITIONS
++
++ How to Apply These Terms to Your New Programs
++
++ If you develop a new program, and you want it to be of the greatest
++possible use to the public, the best way to achieve this is to make it
++free software which everyone can redistribute and change under these terms.
++
++ To do so, attach the following notices to the program. It is safest
++to attach them to the start of each source file to most effectively
++convey the exclusion of warranty; and each file should have at least
++the &quot;copyright&quot; line and a pointer to where the full notice is found.
++
++ &lt;one line to give the program's name and a brief idea of what it does.&gt;
++ Copyright (C) &lt;year&gt; &lt;name of author&gt;
++
++ This program is free software; you can redistribute it and/or modify
++ it under the terms of the GNU General Public License as published by
++ the Free Software Foundation; either version 2 of the License, or
++ (at your option) any later version.
++
++ This program is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ GNU General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program; if not, write to the Free Software
++ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++
++
++Also add information on how to contact you by electronic and paper mail.
++
++If the program is interactive, make it output a short notice like this
++when it starts in an interactive mode:
++
++ Gnomovision version 69, Copyright (C) year name of author
++ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
++ This is free software, and you are welcome to redistribute it
++ under certain conditions; type `show c' for details.
++
++The hypothetical commands `show w' and `show c' should show the appropriate
++parts of the General Public License. Of course, the commands you use may
++be called something other than `show w' and `show c'; they could even be
++mouse-clicks or menu items--whatever suits your program.
++
++You should also get your employer (if you work as a programmer) or your
++school, if any, to sign a &quot;copyright disclaimer&quot; for the program, if
++necessary. Here is a sample; alter the names:
++
++ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
++ `Gnomovision' (which makes passes at compilers) written by James Hacker.
++
++ &lt;signature of Ty Coon&gt;, 1 April 1989
++ Ty Coon, President of Vice
++
++This General Public License does not permit incorporating your program into
++proprietary programs. If your program is a subroutine library, you may
++consider it more useful to permit linking proprietary applications with the
++library. If this is what you want to do, use the GNU Library General
++Public License instead of this License.
+
+<a id="userdrake2tags1133ChangeLog">Added: userdrake2/tags/1.13.3/ChangeLog</a>
+===================================================================
+--- userdrake2/tags/1.13.3/ChangeLog (rev 0)
++++ userdrake2/tags/1.13.3/ChangeLog 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,3762 @@
++2009-03-28 08:37 gustav
++
++ * po/bg.po: update translation for Bulgarian language
++
++2009-03-26 20:36 Andrea Celli &lt;andrea.celli at libero.it&gt;
++
++ * po/it.po: update translation for Italian
++
++2009-03-17 20:20 cfrussen
++
++ * po/ro.po: Completely updated &amp; revised Romanian translation
++
++2009-03-13 14:11 olorin
++
++ * po/nb.po: update for Norwegian Bokmål translation
++
++2009-03-12 18:47 Pjetur G. Hjaltason &lt;pjetur at pjetur.net&gt;
++
++ * po/is.po: Latest translations and updates
++
++2009-01-09 12:46 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * .perl_checker: update perl_checker blacklist
++
++2009-01-09 12:22 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: (CreateTree) make it more readable (needed for next
++ commit)
++
++2009-01-09 12:15 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * NEWS, userdrake: (GetFaceIcon) do not crash if some face images
++ are missing (#45024)
++
++2008-11-22 13:39 Ilyas Bakirov &lt;just_ilyas at yahoo.com&gt;
++
++ * po/ky.po: update translation for kirghiz language
++
++2008-09-22 20:33 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * Makefile: 1.8
++
++2008-09-22 20:33 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * Makefile: 1.8
++
++2008-09-16 15:10 Sharuzzaman Ahmat Raslan &lt;sharuzzaman at myrealbox.com&gt;
++
++ * po/ms.po: Updated Malay translation
++
++2008-06-10 10:29 Сергій Рибалченко (Sergey Ribalchenko) &lt;fisher at obu.ck.ua&gt;
++
++ * po/uk.po: uk translation update
++
++2008-04-20 12:00 nikos
++
++ * po/el.po: greek (el) translation update by Dimitris
++
++2008-04-03 07:40 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * Makefile: 1.7
++
++2008-03-30 21:28 Arpad Biro &lt;biro_arpad at yahoo.com&gt;
++
++ * po/hu.po: update
++
++2008-03-30 21:28 Arpad Biro &lt;biro_arpad at yahoo.com&gt;
++
++ * po/hu.po: update
++
++2008-03-30 16:09 unho
++
++ * po/gl.po: update translation for galician
++
++2008-03-29 19:05 unho
++
++ * po/gl.po: update translation for galician
++
++2008-03-29 15:58 Sharuzzaman Ahmat Raslan &lt;sharuzzaman at myrealbox.com&gt;
++
++ * po/ms.po: Updated Malay translation
++
++2008-03-29 00:45 unho
++
++ * po/gl.po: update translation for galician
++
++2008-03-28 19:33 kazancas
++
++ * po/ru.po: update translation on ru
++
++2008-03-25 22:01 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * Makefile: 1.6
++
++2008-03-25 22:01 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * ChangeLog: update
++
++2008-03-25 16:50 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/ro.po: update (Pîrîu Cristian Ionuţ)
++
++2008-03-25 16:50 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/ro.po: update (Pîrîu Cristian Ionuţ)
++
++2008-03-20 13:50 Karl Ove Hufthammer &lt;karl at huftis.org&gt;
++
++ * po/nn.po: Updated Norwegian Nynorsk translation.
++
++2008-03-14 10:35 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/de.po: update (Nicolas Bauer)
++
++2008-03-14 10:34 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/Makefile: (update_n_merge) split it out of (merge) ; now
++ (merge) only update po w/o updating main pot file
++
++2008-03-10 19:07 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * ChangeLog: update
++
++2008-03-10 19:07 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * Makefile: (tar) compress with lzma
++
++2008-03-10 19:07 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * Makefile: (tar) no big temporary file
++
++2008-03-10 19:07 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * Makefile: 1.5
++
++2008-03-07 14:40 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/eo.po: update (Wilhelm Luttermann)
++
++2008-03-07 14:40 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/eo.po: update (Wilhelm Luttermann)
++
++2008-02-27 18:54 thomas
++
++ * po/sv.po: update Swedish translation
++
++2008-02-02 08:55 Inigo Salvador Azurmendi &lt;xalba at euskalnet.net&gt;
++
++ * po/eu.po: Osatuta.
++
++2008-01-19 21:47 Pavel Maryanov &lt;acid_jack at ukr.net&gt;
++
++ * po/ru.po: updated translation
++
++2008-01-15 05:51 Sharuzzaman Ahmat Raslan &lt;sharuzzaman at myrealbox.com&gt;
++
++ * po/ms.po: Updated Malay translation
++
++2007-12-16 04:27 Keld Jørn Simonsen &lt;keld at dkuug.dk&gt;
++
++ * po/nb.po: updates
++
++2007-12-09 23:28 kmashrab
++
++ * po/uz.po, po/uz@Latn.po, po/uz@cyrillic.po: Renamed Uzbek
++ translations to follow the libc standard. Aproved by Pixel. For
++ details, see bug #35090.
++
++2007-10-30 21:24 Keld Jørn Simonsen &lt;keld at dkuug.dk&gt;
++
++ * po/da.po: updates
++
++2007-10-26 21:58 anssi
++
++ * po/fi.po: Update Finnish translation
++
++2007-10-03 21:39 Arpad Biro &lt;biro_arpad at yahoo.com&gt;
++
++ * po/ltg.po: update by Mario
++
++2007-10-03 15:53 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * ChangeLog, Makefile: 1.4
++
++2007-10-03 15:50 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/es.po: update (Fabián Mandelbaum)
++
++2007-10-03 15:50 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/es.po: update (Fabián Mandelbaum)
++
++2007-10-02 16:43 Karl Ove Hufthammer &lt;karl at huftis.org&gt;
++
++ * po/nn.po: Updated Norwegian Nynorsk translation.
++
++2007-10-02 13:27 Funda Wang &lt;fundawang at linux.net.cn&gt;
++
++ * po/zh_CN.po: Updated zh_CN translation
++
++2007-09-29 16:49 Karl Ove Hufthammer &lt;karl at huftis.org&gt;
++
++ * po/nn.po: Updated Norwegian Nynorsk translation.
++
++2007-09-28 12:35 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * Makefile: 1.3
++
++2007-09-27 08:50 Funda Wang &lt;fundawang at linux.net.cn&gt;
++
++ * po/zh_TW.po: Updated zh_TW translation
++
++2007-09-27 08:50 Funda Wang &lt;fundawang at linux.net.cn&gt;
++
++ * po/zh_TW.po: Updated zh_TW translation
++
++2007-09-26 13:19 guclu
++
++ * po/tr.po: update translation for Turkish
++
++2007-09-25 20:37 Reinout van Schouwen &lt;reinout at cs.vu.nl&gt;
++
++ * po/nl.po: newline fix
++
++2007-09-25 19:15 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/et.po: update (Marek Laane)
++
++2007-09-25 17:37 Michal Bukovjan &lt;bukovjan at mbox.dkm.cz&gt;
++
++ * po/cs.po: Updated Czech translation.
++
++2007-09-25 15:17 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/cy.po: update (Rhoslyn Prys)
++
++2007-09-25 06:57 Tomasz Bednarski &lt;tbednarski at mandrivalinux.pl&gt;
++
++ * po/pl.po: update
++
++2007-09-24 22:41 Reinout van Schouwen &lt;reinout at cs.vu.nl&gt;
++
++ * po/nl.po: * 2007-09-25 Reinout van Schouwen &lt;reinouts@gnome.org&gt;
++
++ - nl.po: Updated Dutch translation
++
++2007-09-24 20:46 jure
++
++ * po/sl.po: Updated Slovenian translation
++
++2007-09-24 19:43 guclu
++
++ * po/tr.po: update translation for Turkish
++
++2007-09-24 19:16 acelli
++
++ * po/it.po: update translation for Italian
++
++2007-09-24 18:55 kamberd
++
++ * po/he.po: update translation for Hebrew
++
++2007-09-24 18:45 mmodem
++
++ * po/pt.po: up
++
++2007-09-24 16:30 Arpad Biro &lt;biro_arpad at yahoo.com&gt;
++
++ * po/hu.po: update
++
++2007-09-24 15:25 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * ChangeLog: update
++
++2007-09-24 15:25 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * Makefile: 1.2.11
++
++2007-09-24 14:45 Wanderlei Antonio Cavassin &lt;cavassin at mandriva.com&gt;
++
++ * po/pt_BR.po: pt_BR fix
++
++2007-09-24 14:01 ybando
++
++ * po/ja.po: Japanese translation updated.
++
++2007-09-24 15:25 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * Makefile: 1.2.11
++
++2007-09-24 14:45 Wanderlei Antonio Cavassin &lt;cavassin at mandriva.com&gt;
++
++ * po/pt_BR.po: pt_BR fix
++
++2007-09-24 14:01 ybando
++
++ * po/ja.po: Japanese translation updated.
++
++2007-09-24 13:04 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/fr.po: update
++
++2007-09-24 13:03 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/cy.po, po/et.po, po/fr.po, po/he.po, po/hu.po, po/ja.po,
++ po/nl.po, po/pl.po, po/pt.po, po/pt_BR.po, po/sl.po, po/zh_CN.po,
++ po/zh_TW.po: merge in translations from transfugdrake
++
++2007-09-24 13:03 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/af.po, po/am.po, po/ar.po, po/az.po, po/be.po, po/bg.po,
++ po/bn.po, po/br.po, po/bs.po, po/ca.po, po/cs.po, po/cy.po,
++ po/da.po, po/de.po, po/el.po, po/eo.po, po/es.po, po/et.po,
++ po/eu.po, po/fa.po, po/fi.po, po/fr.po, po/fur.po, po/ga.po,
++ po/gl.po, po/he.po, po/hi.po, po/hr.po, po/hu.po, po/hy.po,
++ po/id.po, po/is.po, po/it.po, po/ja.po, po/ka.po, po/ko.po,
++ po/ku.po, po/ky.po, po/lo.po, po/lt.po, po/ltg.po, po/lv.po,
++ po/mk.po, po/mn.po, po/ms.po, po/mt.po, po/nb.po, po/nl.po,
++ po/nn.po, po/pa_IN.po, po/pl.po, po/pt.po, po/pt_BR.po, po/ro.po,
++ po/ru.po, po/sc.po, po/sk.po, po/sl.po, po/sq.po, po/sr.po,
++ po/sr@Latn.po, po/sv.po, po/ta.po, po/tg.po, po/th.po, po/tl.po,
++ po/tr.po, po/uk.po, po/userdrake.pot, po/uz.po, po/uz@Latn.po,
++ po/vi.po, po/wa.po, po/zh_CN.po, po/zh_TW.po: sync with code
++
++2007-09-24 13:01 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: enable to run migration assistant when adding a user
++
++2007-09-20 03:00 mmodem
++
++ * po/pt.po: up
++
++2007-09-03 14:43 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * Makefile: bump release (1.2.10)
++
++2007-08-20 18:56 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * USER/USER.xs: update copyright
++
++2007-08-17 12:16 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * USER/Makefile.PL: improve signal to noise ration by killing
++ warnings about declaration-after-statements
++
++2007-08-14 13:25 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * Makefile: use -rBASE for svn export in order to please blino by
++ making sure local changes do not got exported
++
++2007-07-20 17:41 Karl Ove Hufthammer &lt;karl at huftis.org&gt;
++
++ * po/nn.po: Updated Norwegian Nynorsk translation.
++
++2007-07-11 20:41 Karl Ove Hufthammer &lt;karl at huftis.org&gt;
++
++ * po/nn.po: Updated Norwegian Nynorsk translation.
++
++2007-07-04 16:03 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * Makefile: (changelog) typo fix
++
++2007-07-03 17:48 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * Makefile: (changelog) --strip-prefix is now uneeded with
++ svn2cl-0.9
++
++2006-10-11 10:45 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: 1.2.6-1mdv2007.1
++
++2006-10-09 12:22 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: (Edit) simplify
++
++2006-10-09 12:22 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: (BuildUui, Edit) HIG somewhat first tab of add &amp; edit
++ dialogs
++
++2006-10-09 12:21 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: (BuildUui) accept to pack an extra widget
++
++2006-10-09 12:20 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: (TimeOfArray) fix retrieval of expiration date (brown
++ paper bug #21662)
++
++2006-09-29 06:37 mmodem
++
++ * po/pt.po: *** empty log message ***
++
++2006-09-24 00:20 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ltg.po: updated po file
++
++2006-09-15 23:02 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: fix menu section
++
++2006-09-15 22:58 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: fix XDG cat
++
++2006-09-15 22:54 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: fix XDG menu entry filename
++
++2006-09-15 22:48 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: 1.2.5-1mdv2007.0
++
++2006-09-15 22:47 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: XDG menu
++
++2006-09-15 22:44 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * Makefile: (install) do not try to strip perl script
++
++2006-07-28 17:34 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/de.po: update (Nicolas Bauer)
++
++2006-06-08 13:51 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * ChangeLog: *** empty log message ***
++
++2006-06-08 13:50 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: 1.2.4-1mdv2007.0
++
++2006-06-08 12:46 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * USER/Makefile.PL: fix linking with libuser (littletux@zarb.org,
++ #22924)
++
++2006-06-01 16:29 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: 1.2.3-1mdv2007.0
++
++2006-06-01 16:28 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: use drakbug in order to report a bug (thus fixing
++ reporting a bug when BROWSER isn't set)
++
++2006-06-01 16:27 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: require run_program
++
++2006-06-01 16:26 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: (HelpSystem) use run_program instead of fork()
++
++2006-05-22 15:28 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: drop the requires on perl-Gtk2 since drakxtools
++ requires a more recent
++ one and since it's already auto required
++
++2006-05-22 15:27 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: bump the requires on drakxtools (because of
++ AboutDialog support in mygtk2.pm)
++
++2006-05-22 15:26 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: use standard about widget
++
++2006-04-06 17:37 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: (NewDialog) simplify boxing
++
++2006-03-22 10:55 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/af.po, po/am.po, po/ar.po, po/az.po, po/be.po, po/bg.po,
++ po/bn.po, po/bs.po, po/ca.po, po/cs.po, po/cy.po, po/da.po,
++ po/el.po, po/es.po, po/eu.po, po/fa.po, po/fi.po, po/fur.po,
++ po/gl.po, po/he.po, po/hi.po, po/hr.po, po/hu.po, po/hy.po,
++ po/is.po, po/it.po, po/ja.po, po/ka.po, po/ku.po, po/ky.po,
++ po/lo.po, po/lt.po, po/ltg.po, po/lv.po, po/mk.po, po/ms.po,
++ po/mt.po, po/nb.po, po/nl.po, po/pa_IN.po, po/pl.po, po/pt.po,
++ po/ro.po, po/ru.po, po/sc.po, po/sk.po, po/sl.po, po/sq.po,
++ po/sr.po, po/sr@Latn.po, po/sv.po, po/tg.po, po/th.po, po/tl.po,
++ po/tr.po, po/uk.po, po/uz.po, po/uz@Latn.po, po/vi.po, po/wa.po,
++ po/zh_CN.po: updated Welsh file; rescued a translation string
++
++2006-03-21 11:33 Willy Sudiarto Raharjo &lt;willysr at gmail.com&gt;
++
++ * po/id.po: Updated
++
++2006-03-18 11:06 Marek Laane &lt;bald at starman.ee&gt;
++
++ * po/et.po: Updated Estonian translation.
++
++2006-03-18 05:48 Shiva Huang &lt;blueshiva at giga.net.tw&gt;
++
++ * po/zh_TW.po: updated po file
++
++2006-03-17 16:44 Wanderlei Antonio Cavassin &lt;cavassin at mandriva.com&gt;
++
++ * po/pt_BR.po: Fixes pt_BR.
++
++2006-03-17 16:34 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: drop packager tag
++
++2006-03-17 16:08 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * ChangeLog: *** empty log message ***
++
++2006-03-17 16:06 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: pablo commit never made it in the uploaded
++ packages so add it to
++ 1.2.2-1mdk's changelog
++
++2006-03-17 16:03 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: daouda didn't commit 1.2.1-3mdk
++
++2006-03-17 16:00 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/br.po, po/fr.po: unfuzzy
++
++2006-03-17 15:59 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/af.po, po/am.po, po/ar.po, po/az.po, po/be.po, po/bg.po,
++ po/bn.po, po/br.po, po/bs.po, po/ca.po, po/cs.po, po/cy.po,
++ po/da.po, po/de.po, po/el.po, po/eo.po, po/es.po, po/et.po,
++ po/eu.po, po/fa.po, po/fi.po, po/fr.po, po/fur.po, po/ga.po,
++ po/gl.po, po/he.po, po/hi.po, po/hr.po, po/hu.po, po/hy.po,
++ po/id.po, po/is.po, po/it.po, po/ja.po, po/ka.po, po/ko.po,
++ po/ku.po, po/ky.po, po/lo.po, po/lt.po, po/ltg.po, po/lv.po,
++ po/mk.po, po/mn.po, po/ms.po, po/mt.po, po/nb.po, po/nl.po,
++ po/pa_IN.po, po/pl.po, po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po,
++ po/sc.po, po/sk.po, po/sl.po, po/sq.po, po/sr.po, po/sr@Latn.po,
++ po/sv.po, po/ta.po, po/tg.po, po/th.po, po/tl.po, po/tr.po,
++ po/uk.po, po/userdrake.pot, po/uz.po, po/uz@Latn.po, po/vi.po,
++ po/wa.po, po/zh_CN.po, po/zh_TW.po: sync with code
++
++2006-03-17 15:58 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: add a question mark at end of delete group
++ confirmation sentence
++
++2006-03-17 15:58 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: the &quot;warning&quot; string is already translated in DrakX
++
++2006-03-17 15:55 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: use a standard title for the deleting group
++ confirmation dialog
++
++2006-03-17 15:53 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: 1.2.2-1mdk
++
++2006-03-17 15:53 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: add myself to maintainer list
++
++2006-03-17 15:52 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: remove daouda email since it doesn't maintain anymore
++ userdrake
++
++2006-03-17 15:50 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: bump copyright year
++
++2006-03-17 15:48 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: fix %mkrel call
++
++2006-03-17 15:48 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: use %mkrel
++
++2006-03-17 15:40 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: perl_checker cleanup
++
++2006-03-17 15:38 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: (NewWindow) rename $w as $dialog
++
++2006-03-17 15:33 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: (NewWindow, NewDialog) simplify by using
++ _create_dialog()
++
++2006-03-17 15:08 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: (NewWindow) center subwindows on main one
++
++2006-03-17 15:07 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: (NewWindow) make subwindows transcient to the main one
++
++2006-03-17 15:07 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: (NewWindow) add a 5px border around the window (better
++ looking)
++
++2006-03-17 15:05 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: add some spaces between functions
++
++2006-03-17 14:58 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: perl_checker cleanups
++
++2006-03-17 14:52 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * .perl_checker: blacklist a few modules so that perl_checker can
++ parse userdrake
++
++2006-03-17 14:49 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: (NewWindow) second argument ('mode') is unused and
++ always set
++ to 1. Let's drop it.
++
++2006-03-17 14:46 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: (NewWindow) rename 'label' as 'title' since it's
++ really what it is
++
++2006-03-17 14:10 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/br.po: update
++
++2006-03-17 13:51 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: let's assume GECOS data is utf-8 encoded (#4296)
++
++2006-03-17 13:41 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: bump copyright
++
++2006-03-13 17:50 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/ga.po: update
++
++2006-01-31 21:44 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/hr.po: updated po file
++
++2005-11-09 17:07 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/lv.po: updated po file
++
++2005-10-24 00:46 Willy Sudiarto Raharjo &lt;willysr at gmail.com&gt;
++
++ * po/id.po: Updated Contact Info
++
++2005-10-12 07:26 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/hi.po, po/ku.po: updated po files
++
++2005-10-03 13:58 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ca.po: updated po file
++
++2005-09-27 05:01 mmodem
++
++ * po/pt.po: *** empty log message ***
++
++2005-09-19 05:04 Sharuzzaman Ahmat Raslan &lt;sharuzzaman at myrealbox.com&gt;
++
++ * po/ms.po: Updated Malay translation
++
++2005-09-15 13:19 Sharuzzaman Ahmat Raslan &lt;sharuzzaman at myrealbox.com&gt;
++
++ * po/ms.po: Updated Malay translation
++
++2005-09-03 17:37 Sharuzzaman Ahmat Raslan &lt;sharuzzaman at myrealbox.com&gt;
++
++ * po/ms.po: Updated Malay translation
++
++2005-08-31 16:27 Willy Sudiarto Raharjo &lt;willysr at gmail.com&gt;
++
++ * po/id.po: Updated plus added new Translator
++
++2005-08-28 13:16 Sharuzzaman Ahmat Raslan &lt;sharuzzaman at myrealbox.com&gt;
++
++ * po/ms.po: Updated Malay translation
++
++2005-08-14 07:36 Sharuzzaman Ahmat Raslan &lt;sharuzzaman at myrealbox.com&gt;
++
++ * po/ms.po: Updated Malay translation
++
++2005-08-12 08:10 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/lt.po: updated po file
++
++2005-08-07 00:06 Sharuzzaman Ahmat Raslan &lt;sharuzzaman at myrealbox.com&gt;
++
++ * po/ms.po: Updated Malay translation
++
++2005-08-04 02:25 Сергій Рибалченко (Sergey Ribalchenko) &lt;fisher at obu.ck.ua&gt;
++
++ * po/uk.po: header correction in uk.po
++
++2005-08-02 07:29 Сергій Рибалченко (Sergey Ribalchenko) &lt;fisher at obu.ck.ua&gt;
++
++ * po/uk.po: uk tr-ion update
++
++2005-07-30 08:37 Sharuzzaman Ahmat Raslan &lt;sharuzzaman at myrealbox.com&gt;
++
++ * po/ms.po: Updated Malay translation
++
++2005-07-29 08:08 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/ga.po: update
++
++2005-07-23 10:19 Sharuzzaman Ahmat Raslan &lt;sharuzzaman at myrealbox.com&gt;
++
++ * po/ms.po: Updated Malay translation
++
++2005-07-18 10:26 Olivier Blin &lt;oblin at mandriva.com&gt;
++
++ * userdrake: use eq
++
++2005-07-18 10:25 Olivier Blin &lt;oblin at mandriva.com&gt;
++
++ * userdrake: use common::md5file
++
++2005-07-12 22:41 Sharuzzaman Ahmat Raslan &lt;sharuzzaman at myrealbox.com&gt;
++
++ * po/ms.po: Updated Malay translation
++
++2005-07-03 01:06 Pjetur G. Hjaltason &lt;pjetur at pjetur.net&gt;
++
++ * po/is.po: Mostly syntax checking and msg consistency
++
++2005-07-01 23:27 Sharuzzaman Ahmat Raslan &lt;sharuzzaman at myrealbox.com&gt;
++
++ * po/ms.po: Updated Malay translation
++
++2005-06-14 01:31 Sharuzzaman Ahmat Raslan &lt;sharuzzaman at myrealbox.com&gt;
++
++ * po/ms.po: Updated Malay translation
++
++2005-05-28 00:00 Sharuzzaman Ahmat Raslan &lt;sharuzzaman at myrealbox.com&gt;
++
++ * po/ms.po: Updated Malay translation
++
++2005-04-25 07:36 Sharuzzaman Ahmat Raslan &lt;sharuzzaman at myrealbox.com&gt;
++
++ * po/ms.po: Updated Malay translation
++
++2005-04-19 14:13 Sharuzzaman Ahmat Raslan &lt;sharuzzaman at myrealbox.com&gt;
++
++ * po/ms.po: Updated Malay translation
++
++2005-04-18 17:02 Willy Sudiarto Raharjo &lt;willysr at gmail.com&gt;
++
++ * po/id.po: Updated
++
++2005-04-18 10:27 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/af.po, po/am.po, po/ar.po, po/az.po, po/be.po, po/bg.po,
++ po/bn.po, po/br.po, po/bs.po, po/ca.po, po/cs.po, po/cy.po,
++ po/da.po, po/de.po, po/el.po, po/eo.po, po/es.po, po/et.po,
++ po/eu.po, po/fa.po, po/fi.po, po/fr.po, po/fur.po, po/ga.po,
++ po/gl.po, po/he.po, po/hi.po, po/hr.po, po/hu.po, po/hy.po,
++ po/id.po, po/is.po, po/it.po, po/ja.po, po/ka.po, po/ko.po,
++ po/ku.po, po/ky.po, po/lo.po, po/lt.po, po/ltg.po, po/lv.po,
++ po/mk.po, po/mn.po, po/ms.po, po/mt.po, po/nb.po, po/nl.po,
++ po/pa_IN.po, po/pl.po, po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po,
++ po/sc.po, po/sk.po, po/sl.po, po/sq.po, po/sr.po, po/sr@Latn.po,
++ po/sv.po, po/ta.po, po/tg.po, po/th.po, po/tl.po, po/tr.po,
++ po/uk.po, po/userdrake.pot, po/uz.po, po/uz@Latn.po, po/vi.po,
++ po/wa.po, po/zh_CN.po, po/zh_TW.po, userdrake, userdrake.spec:
++ s/Mandrake/Mandriva/
++
++2005-04-14 14:41 Youcef Rabah Rahal &lt;rahal at arabeyes.org&gt;
++
++ * po/ar.po: sync'ed with Arabeyes CVS
++
++2005-04-02 15:29 Sharuzzaman Ahmat Raslan &lt;sharuzzaman at myrealbox.com&gt;
++
++ * po/ms.po: Updated Malay translation
++
++2005-03-30 13:53 Willy Sudiarto Raharjo &lt;willysr at gmail.com&gt;
++
++ * po/id.po: updated
++
++2005-03-29 20:58 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/af.po, po/am.po, po/ar.po, po/az.po, po/be.po, po/bg.po,
++ po/bn.po, po/br.po, po/bs.po, po/ca.po, po/cs.po, po/cy.po,
++ po/da.po, po/de.po, po/el.po, po/eo.po, po/es.po, po/et.po,
++ po/eu.po, po/fa.po, po/fi.po, po/fr.po, po/fur.po, po/ga.po,
++ po/gl.po, po/he.po, po/hi.po, po/hr.po, po/hu.po, po/hy.po,
++ po/id.po, po/is.po, po/it.po, po/ja.po, po/ka.po, po/ko.po,
++ po/ku.po, po/ky.po, po/lo.po, po/lt.po, po/ltg.po, po/lv.po,
++ po/mk.po, po/mn.po, po/ms.po, po/mt.po, po/nb.po, po/nl.po,
++ po/pa_IN.po, po/pl.po, po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po,
++ po/sc.po, po/sk.po, po/sl.po, po/sq.po, po/sr.po, po/sr@Latn.po,
++ po/sv.po, po/ta.po, po/tg.po, po/th.po, po/tl.po, po/tr.po,
++ po/uk.po, po/userdrake.pot, po/uz.po, po/uz@Latn.po, po/vi.po,
++ po/wa.po, po/zh_CN.po, po/zh_TW.po, userdrake: Removed spaces
++ before colons;
++ included colons in translatable strings (yes, they are
++ language-dependent,
++ even if most of them just us &quot;:&quot;, some use different things);
++ Added Punjabi file
++
++2005-03-13 16:13 Michal Bukovjan &lt;bukovjan at mbox.dkm.cz&gt;
++
++ * po/cs.po: Updates to Czech translations
++
++2005-03-10 15:20 Youcef Rabah Rahal &lt;rahal at arabeyes.org&gt;
++
++ * po/ar.po: Arabic QA
++
++2005-03-08 14:21 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - remove spurious comma
++
++2005-03-08 13:08 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - 1.2.1-2mdk
++
++2005-03-08 13:05 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - wrap an eval around sensitive home deletion
++ - home deletion option grayed when deletion might be dangerous
++
++2005-03-05 05:05 Shiva Huang &lt;blueshiva at giga.net.tw&gt;
++
++ * po/zh_TW.po: updated po files
++
++2005-03-04 17:13 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/af.po, po/am.po, po/ar.po, po/az.po, po/be.po, po/bg.po,
++ po/bn.po, po/br.po, po/bs.po, po/ca.po, po/cs.po, po/cy.po,
++ po/da.po, po/de.po, po/el.po, po/eo.po, po/es.po, po/et.po,
++ po/eu.po, po/fa.po, po/fi.po, po/fr.po, po/fur.po, po/ga.po,
++ po/gl.po, po/he.po, po/hi.po, po/hr.po, po/hu.po, po/hy.po,
++ po/id.po, po/is.po, po/it.po, po/ja.po, po/ka.po, po/ko.po,
++ po/ku.po, po/ky.po, po/lo.po, po/lt.po, po/ltg.po, po/lv.po,
++ po/mk.po, po/mn.po, po/ms.po, po/mt.po, po/nb.po, po/nl.po,
++ po/pl.po, po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po, po/sc.po,
++ po/sk.po, po/sl.po, po/sq.po, po/sr.po, po/sr@Latn.po, po/sv.po,
++ po/ta.po, po/tg.po, po/th.po, po/tl.po, po/tr.po, po/uk.po,
++ po/uz.po, po/uz@Latn.po, po/vi.po, po/wa.po, po/zh_CN.po,
++ po/zh_TW.po: fix phrasing
++
++2005-03-04 16:18 Olivier Blin &lt;oblin at mandriva.com&gt;
++
++ * userdrake: do not use absolute path to Mdk icons
++
++2005-03-02 14:27 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs: - fix mem leak due to extra safefree((char*)self);
++
++2005-02-28 23:07 Youcef Rabah Rahal &lt;rahal at arabeyes.org&gt;
++
++ * po/ar.po: Arabic QA
++
++2005-02-28 12:22 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * ChangeLog: *** empty log message ***
++
++2005-02-28 12:22 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * ChangeLog, userdrake: fix phrasing
++
++2005-02-28 12:21 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/br.po: update
++
++2005-02-28 07:51 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ja.po: updated po file
++
++2005-02-24 15:03 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/lt.po, po/ta.po: merge with kde-3.3 branch
++
++2005-02-23 18:46 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * ChangeLog: converted to UTF-8
++
++2005-02-21 18:23 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: use %makeinstall_std
++
++2005-02-21 18:22 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * ChangeLog: *** empty log message ***
++
++2005-02-21 18:22 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: 1.2.1-1mdk
++
++2005-02-20 23:51 Pjetur G. Hjaltason &lt;pjetur at pjetur.net&gt;
++
++ * po/is.po: End of days work
++
++2005-02-18 10:53 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/ga.po: update
++
++2005-02-16 13:04 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/be.po, po/ca.po, po/ga.po, po/is.po, po/ko.po, po/ku.po,
++ po/lt.po, po/lv.po, po/mn.po, po/ms.po, po/sr@Latn.po, po/ta.po,
++ po/uz@Latn.po: automerging
++
++2005-02-15 20:59 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/eo.po, po/is.po, po/sr.po, po/tr.po: update
++
++2005-02-15 17:20 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/be.po, po/ko.po, po/lt.po, po/mn.po, po/ms.po, po/ta.po,
++ po/uz.po: update
++
++2005-02-14 16:35 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/it.po: updated po file
++
++2005-02-13 01:49 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/am.po: Added Amharic file
++
++2005-02-09 12:34 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/af.po, po/ar.po, po/az.po, po/be.po, po/bg.po, po/bn.po,
++ po/br.po, po/bs.po, po/ca.po, po/cs.po, po/cy.po, po/da.po,
++ po/de.po, po/el.po, po/eo.po, po/es.po, po/et.po, po/eu.po,
++ po/fa.po, po/fi.po, po/fr.po, po/fur.po, po/ga.po, po/gl.po,
++ po/he.po, po/hi.po, po/hr.po, po/hu.po, po/hy.po, po/id.po,
++ po/is.po, po/it.po, po/ja.po, po/ka.po, po/ko.po, po/ku.po,
++ po/ky.po, po/lo.po, po/lt.po, po/ltg.po, po/lv.po, po/mk.po,
++ po/mn.po, po/ms.po, po/mt.po, po/nb.po, po/nl.po, po/pl.po,
++ po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po, po/sc.po, po/sk.po,
++ po/sl.po, po/sq.po, po/sr.po, po/sr@Latn.po, po/sv.po, po/ta.po,
++ po/tg.po, po/th.po, po/tl.po, po/tr.po, po/uk.po,
++ po/userdrake.pot, po/uz.po, po/uz@Latn.po, po/vi.po, po/wa.po,
++ po/zh_CN.po, po/zh_TW.po: updated pot file
++
++2005-02-04 05:02 Shiva Huang &lt;blueshiva at giga.net.tw&gt;
++
++ * po/zh_TW.po: updated po file
++
++2005-02-01 21:59 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/el.po: updated po file
++
++2005-02-01 13:04 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/ga.po: update
++
++2005-01-31 19:22 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/sc.po: updated po file
++
++2005-01-28 04:24 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/bg.po, po/id.po: updated po files
++
++2005-01-26 20:44 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake, userdrake.spec: - fix 'About' dialog crash
++ - cleanups
++
++2005-01-25 12:38 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/tl.po: updated po file
++
++2005-01-25 12:34 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/br.po: update
++
++2005-01-21 11:12 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - main loop fixed
++ - rebuild against new perl (XS)
++
++2005-01-21 10:50 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - fix main loop
++
++2005-01-18 12:37 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/lo.po: Added Laotian file
++
++2005-01-12 13:38 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: merge in lost changelog from cooker for 1.1-4mdk
++
++2005-01-12 12:44 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * ChangeLog: *** empty log message ***
++
++2005-01-12 12:44 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: 1.2-1mdk
++
++2005-01-12 12:44 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: - fix crash when embedded
++ - show banner when embedded
++
++2005-01-03 13:01 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/cy.po: updated po file
++
++2004-12-02 11:04 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/id.po: updated po file
++
++2004-11-23 13:41 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ku.po: Added Kurdish file
++
++2004-10-22 17:13 José JORGE &lt;jjorge at free.fr&gt;
++
++ * po/pt.po: melo
++
++2004-10-20 10:10 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/gl.po: updated po file
++
++2004-10-16 15:34 Alice Lafox &lt;alice at lafox.com.ua&gt;
++
++ * po/ru.po: updated
++
++2004-10-06 12:38 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/th.po: Added Thai file
++
++2004-10-04 08:28 Rafael Garcia-Suarez &lt;rgarciasuarez at mandriva.com&gt;
++
++ * userdrake.spec: 1.1-3mdk
++
++2004-10-04 01:39 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * userdrake.spec: built new rpm with latest translations
++
++2004-10-03 08:45 José JORGE &lt;jjorge at free.fr&gt;
++
++ * po/pt.po: melo
++
++2004-10-02 10:53 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/br.po: update
++
++2004-09-28 06:21 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ky.po: updated po file
++
++2004-09-27 10:18 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/br.po: update
++
++2004-09-27 09:06 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/hr.po: updated po file
++
++2004-09-27 04:37 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/fa.po, po/ka.po: updated po file
++
++2004-09-25 17:30 aiet
++
++ * po/ka.po: Translated new strings.
++
++2004-09-22 04:27 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/sc.po: updated po file
++
++2004-09-19 03:26 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/tg.po: updated po file
++
++2004-09-15 22:37 Youcef Rabah Rahal &lt;rahal at arabeyes.org&gt;
++
++ * po/ar.po: Arabic translation
++
++2004-09-14 12:02 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po: corrected &quot;&lt;control&gt;X&quot; string
++
++2004-09-14 06:59 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/eo.po, po/fr.po, po/gl.po, po/pt.po, po/wa.po: MandrakeSoft -&gt;
++ Mandrakesoft; Mandrake -&gt; Mandrakelinux
++
++2004-09-13 08:25 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/sk.po: updated po file
++
++2004-09-13 00:25 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/az.po: updated po file
++
++2004-09-12 06:16 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/uk.po: updated po file
++
++2004-09-09 03:52 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/bg.po: some Mandrake -&gt; Mandrakelinux and MandrakeSoft -&gt;
++ Mandrakesoft fixes
++
++2004-09-08 08:59 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ro.po: updated po file
++
++2004-09-08 04:25 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/mt.po: updated po file
++
++2004-09-07 09:17 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/fi.po, po/nl.po, po/sv.po: updated po file
++
++2004-09-05 15:11 Reinout van Schouwen &lt;reinout at cs.vu.nl&gt;
++
++ * po/nl.po: Updated Dutch (nl) translation
++ by Rob Teng &lt;mandrake.tips@free.fr&gt;
++
++2004-09-05 09:30 Thomas Backlund &lt;tmb at mandrake.org&gt;
++
++ * po/fi.po: Update translations to 100%
++
++2004-09-02 14:43 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/pt_BR.po: updated po file
++
++2004-08-31 14:29 Arkadiusz Lipiec &lt;alipiec at elka.pw.edu.pl&gt;
++
++ * po/pl.po: Updated
++
++2004-08-30 06:37 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/ja.po: update (BANDO Yukiko &lt;ybando@k6.dion.ne.jp&gt;)
++
++2004-08-30 05:10 Alice Lafox &lt;alice at lafox.com.ua&gt;
++
++ * po/ru.po: update
++
++2004-08-27 04:19 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/sl.po: updated po file
++
++2004-08-23 16:58 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/cy.po: updated po files
++
++2004-08-21 07:16 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/vi.po: updated po file
++
++2004-08-20 08:27 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/cs.po: updated po file
++
++2004-08-19 18:32 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/bg.po: fixed wrong cyrillic encoding chars
++
++2004-08-19 17:09 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/sr.po: fixed cyrillic encoding mess with Serbian translations
++
++2004-08-19 10:42 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/bs.po: updated po file
++
++2004-08-19 03:52 Youcef Rabah Rahal &lt;rahal at arabeyes.org&gt;
++
++ * po/ar.po: Sync with Arabeyes CVS
++
++2004-08-17 15:16 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/mk.po, po/nb.po: updated po files
++
++2004-08-15 14:17 Arpad Biro &lt;biro_arpad at yahoo.com&gt;
++
++ * po/hu.po: *** empty log message ***
++
++2004-08-15 13:36 Keld Jørn Simonsen &lt;keld at dkuug.dk&gt;
++
++ * po/da.po: updates
++ indexhtml/po/da.po soft/mdkhtmlbrowser/po/da.po
++ soft/mdkonline/po/da.po soft/menudrake/po/da.po
++ soft/rpmdrake/po/da.po soft/urpmi/po/da.po
++ soft/userdrake2/po/da.po soft/wizard_perl/po/da.po
++ gi/perl-install/share/po/da.po
++
++2004-08-14 10:07 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/af.po, po/ar.po, po/az.po, po/be.po, po/br.po, po/cy.po,
++ po/fa.po, po/fi.po, po/fur.po, po/ga.po, po/hi.po, po/hr.po,
++ po/hy.po, po/is.po, po/ja.po, po/ka.po, po/ko.po, po/ky.po,
++ po/ltg.po, po/lv.po, po/mk.po, po/mn.po, po/pl.po, po/pt_BR.po,
++ po/ro.po, po/ru.po, po/sc.po, po/sk.po, po/sv.po, po/ta.po,
++ po/tl.po, po/tr.po, po/uz.po, po/vi.po: merged translations
++
++2004-08-14 06:10 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/eu.po, po/is.po, po/sq.po, po/tg.po: fixed special &quot;&lt;control&gt;&quot;
++ entries
++
++2004-08-14 05:25 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/fr.po: updated po file
++
++2004-08-13 14:54 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/de.po: updated po file
++
++2004-08-11 13:53 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po: updated po file
++
++2004-08-11 11:15 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ca.po, po/eu.po: updated po file
++
++2004-08-09 10:19 Albert Astals Cid &lt;astals11 at terra.es&gt;
++
++ * po/ca.po: catalan updates
++
++2004-08-09 05:29 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/et.po: updated po file
++
++2004-08-08 14:47 Youcef Rabah Rahal &lt;rahal at arabeyes.org&gt;
++
++ * po/ar.po: Arabic translation
++
++2004-08-08 10:46 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po, po/he.po, po/hi.po: updated po file
++
++2004-08-08 08:47 Youcef Rabah Rahal &lt;rahal at arabeyes.org&gt;
++
++ * po/ar.po: Arabic translation
++
++2004-08-06 17:42 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/tg.po: updated po file
++
++2004-08-06 13:40 Youcef Rabah Rahal &lt;rahal at arabeyes.org&gt;
++
++ * po/ar.po: Arabeyes' Arabic translation
++
++2004-08-06 03:23 Dovix &lt;dovix2003 at yahoo.com&gt;
++
++ * po/he.po: *** empty log message ***
++
++2004-08-05 13:31 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/af.po, po/ar.po, po/az.po, po/be.po, po/bg.po, po/bn.po,
++ po/br.po, po/bs.po, po/ca.po, po/cs.po, po/cy.po, po/da.po,
++ po/de.po, po/el.po, po/eo.po, po/es.po, po/et.po, po/eu.po,
++ po/fa.po, po/fi.po, po/fr.po, po/fur.po, po/ga.po, po/gl.po,
++ po/he.po, po/hi.po, po/hr.po, po/hu.po, po/hy.po, po/id.po,
++ po/is.po, po/it.po, po/ja.po, po/ka.po, po/ko.po, po/ky.po,
++ po/lt.po, po/ltg.po, po/lv.po, po/mk.po, po/mn.po, po/ms.po,
++ po/mt.po, po/nb.po, po/nl.po, po/pl.po, po/pt.po, po/pt_BR.po,
++ po/ro.po, po/ru.po, po/sc.po, po/sk.po, po/sl.po, po/sq.po,
++ po/sr.po, po/sr@Latn.po, po/sv.po, po/ta.po, po/tg.po, po/tl.po,
++ po/tr.po, po/uk.po, po/userdrake.pot, po/uz.po, po/uz@Latn.po,
++ po/vi.po, po/wa.po, po/zh_CN.po, po/zh_TW.po: updated pot file
++
++2004-08-01 21:28 Funda Wang &lt;fundawang at linux.net.cn&gt;
++
++ * userdrake: s/Mandrake Linux/Mandrakelinux
++
++2004-08-01 02:57 Funda Wang &lt;fundawang at linux.net.cn&gt;
++
++ * po/zh_CN.po: Updated Simplified Chinese translation
++
++2004-07-30 08:51 Youcef Rabah Rahal &lt;rahal at arabeyes.org&gt;
++
++ * po/ar.po: Arabeyes.org's Arabic translation
++
++2004-07-28 11:46 Arpad Biro &lt;biro_arpad at yahoo.com&gt;
++
++ * po/hu.po: *** empty log message ***
++
++2004-07-28 00:15 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/bn.po, po/es.po, po/pt.po, po/uk.po, po/wa.po: updated po
++ files
++
++2004-07-27 13:48 José JORGE &lt;jjorge at free.fr&gt;
++
++ * po/pt.po: bunch of work
++
++2004-07-26 05:36 Fabian Mandelbaum &lt;fabman at mandriva.com&gt;
++
++ * po/es.po: Updated Spanish translations
++
++2004-07-23 09:18 Сергій Рибалченко (Sergey Ribalchenko) &lt;fisher at obu.ck.ua&gt;
++
++ * po/uk.po: Ukrainian translation update.
++
++2004-07-19 19:55 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/Makefile, po/af.po, po/ar.po, po/az.po, po/be.po, po/bg.po,
++ po/bn.po, po/br.po, po/bs.po, po/ca.po, po/cs.po, po/cy.po,
++ po/da.po, po/de.po, po/el.po, po/eo.po, po/es.po, po/et.po,
++ po/eu.po, po/fa.po, po/fi.po, po/fr.po, po/fur.po, po/ga.po,
++ po/gl.po, po/he.po, po/hi.po, po/hr.po, po/hu.po, po/hy.po,
++ po/id.po, po/is.po, po/it.po, po/ja.po, po/ka.po, po/ko.po,
++ po/ky.po, po/lt.po, po/ltg.po, po/lv.po, po/mk.po, po/mn.po,
++ po/ms.po, po/mt.po, po/nb.po, po/nl.po, po/pl.po, po/pt.po,
++ po/pt_BR.po, po/ro.po, po/ru.po, po/sc.po, po/sk.po, po/sl.po,
++ po/sq.po, po/sr.po, po/sr@Latn.po, po/sv.po, po/ta.po, po/tg.po,
++ po/tl.po, po/tr.po, po/uk.po, po/userdrake.pot, po/uz.po,
++ po/uz@Latn.po, po/vi.po, po/wa.po, po/zh_CN.po, po/zh_TW.po:
++ updated pot file; added Sardinian file
++
++2004-07-19 12:38 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * ChangeLog: *** empty log message ***
++
++2004-07-19 12:37 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: 1.1-1mdk
++
++2004-07-19 12:29 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: set window icon
++
++2004-07-19 12:20 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: fix button layout in dialogs
++
++2004-07-19 12:18 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: get rid of stock icons
++
++2004-07-16 02:46 Olivier Blin &lt;oblin at mandriva.com&gt;
++
++ * userdrake: restore mouse cursor in GimmeChoice (Daouda)
++
++2004-07-16 02:38 Olivier Blin &lt;oblin at mandriva.com&gt;
++
++ * userdrake: really handle the group choice made by the user (in
++ ChooseGroup, run
++ Gtk2 main to wait for user input, and destroy the dialog
++ properly)
++
++2004-07-15 12:13 Olivier Blin &lt;oblin at mandriva.com&gt;
++
++ * userdrake: fix GimmeChoice by using interactive (do not quit the
++ whole program on
++ success, wait the answer to really return the choice made by the
++ user)
++ (#10246)
++
++2004-07-15 11:42 Olivier Blin &lt;oblin at mandriva.com&gt;
++
++ * userdrake: don't do useless things or show useless dialog if an
++ error has been
++ raised in AddUser
++
++2004-07-15 11:14 Olivier Blin &lt;oblin at mandriva.com&gt;
++
++ * USER/USER.xs: do not die when removing a non existent directory,
++ just warn (#10241)
++
++2004-07-15 10:40 Olivier Blin &lt;oblin at mandriva.com&gt;
++
++ * userdrake: perl_checker compliance
++
++2004-07-15 10:30 Olivier Blin &lt;oblin at mandriva.com&gt;
++
++ * userdrake: do not crash in Delete when user is in non-existing
++ group (fix #10242)
++
++2004-06-07 20:26 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/af.po, po/ar.po, po/az.po, po/be.po, po/bg.po, po/bn.po,
++ po/br.po, po/bs.po, po/ca.po, po/cs.po, po/cy.po, po/da.po,
++ po/de.po, po/el.po, po/eo.po, po/es.po, po/et.po, po/eu.po,
++ po/fa.po, po/fi.po, po/fr.po, po/fur.po, po/ga.po, po/gl.po,
++ po/he.po, po/hi.po, po/hr.po, po/hu.po, po/hy.po, po/id.po,
++ po/is.po, po/it.po, po/ja.po, po/ka.po, po/ko.po, po/ky.po,
++ po/lt.po, po/ltg.po, po/lv.po, po/mk.po, po/mn.po, po/ms.po,
++ po/mt.po, po/nb.po, po/nl.po, po/pl.po, po/pt.po, po/pt_BR.po,
++ po/ro.po, po/ru.po, po/sk.po, po/sl.po, po/sq.po, po/sr.po,
++ po/sr@Latn.po, po/sv.po, po/ta.po, po/tg.po, po/tl.po, po/tr.po,
++ po/uk.po, po/userdrake.pot, po/uz.po, po/uz@Latn.po, po/vi.po,
++ po/wa.po, po/zh_CN.po, po/zh_TW.po: updated pot file
++
++2004-05-26 12:17 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - right mouse click on Treeview items to access
++ menu (Edit, Delete)
++
++2004-05-26 12:16 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - right mouse click on Treeview to access menu
++ (feature)
++ - don't allow more than 16 char to be consistent with groupadd
++ (tvignaud)
++
++2004-05-26 11:00 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - right mouse click on Treeview to access menu
++ (feature)
++ - don't allow more than 16 char to be consistent with groupadd
++ (tvignaud)
++
++2004-05-25 06:49 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: check user/group name length against right limit
++ (robert.vojta, #9831)
++
++2004-05-18 20:58 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ca.po, po/da.po, po/es.po, po/fr.po, po/it.po, po/nb.po,
++ po/pt.po, po/sq.po, po/tr.po, po/uk.po: converted to utf-8
++
++2004-05-18 20:11 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/fur.po: Added Furlan file
++
++2004-05-10 17:23 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - fix typo
++
++2004-05-10 17:17 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake, userdrake.spec: - use md5sum to find cuurent face icon
++ (Oliver Blin)
++
++2004-05-10 16:26 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/gl.po, po/userdrake.pot: updated po file
++
++2004-05-10 10:59 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake, userdrake.spec: - random icon display and icon
++ browsing fixes #8085 - #9653 (Olivier
++ Blin)
++
++2004-05-10 10:53 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - patch for random icon choice and icon forward
++ backward browsing
++
++2004-04-26 14:49 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/gl.po, po/ka.po: updated po file
++
++2004-04-23 13:06 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/hu.po: updated po file
++
++2004-04-19 19:58 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/bn.po: Added Bengali file
++
++2004-04-13 20:34 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/gl.po: updated Galician file
++
++2004-04-13 14:55 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - change simple quote 2 double quote
++
++2004-04-01 17:22 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/mn.po: updated Mongol files
++
++2004-03-29 06:44 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ky.po, po/sv.po: Added Kyrgyz file
++
++2004-03-17 20:03 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/af.po, po/az.po, po/ca.po, po/cs.po, po/cy.po, po/da.po,
++ po/de.po, po/el.po, po/es.po, po/et.po, po/eu.po, po/fa.po,
++ po/fi.po, po/fr.po, po/ga.po, po/gl.po, po/he.po, po/hi.po,
++ po/hr.po, po/hu.po, po/id.po, po/is.po, po/ja.po, po/ka.po,
++ po/ko.po, po/lt.po, po/ltg.po, po/lv.po, po/mk.po, po/mn.po,
++ po/ms.po, po/mt.po, po/nb.po, po/nl.po, po/pl.po, po/pt.po,
++ po/pt_BR.po, po/ro.po, po/ru.po, po/sk.po, po/sl.po, po/sq.po,
++ po/sr.po, po/sr@Latn.po, po/sv.po, po/ta.po, po/tr.po, po/uk.po,
++ po/uz.po, po/uz@Latn.po, po/vi.po, po/wa.po, po/zh_CN.po,
++ po/zh_TW.po: updated po files
++
++2004-03-17 19:15 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/be.po, po/bg.po, po/br.po, po/bs.po, po/eu.po, po/gl.po:
++ updated po files
++
++2004-03-17 19:02 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/zh_TW.po: converted to utf-8
++
++2004-03-17 18:22 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/el.po: converted to utf-8
++
++2004-03-17 17:56 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ga.po: updated po files
++
++2004-03-17 16:31 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ko.po: updated po files
++
++2004-03-17 15:39 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/hu.po, po/is.po, po/lt.po, po/ms.po, po/sr.po, po/ta.po:
++ updated po files
++
++2004-03-16 14:28 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/hy.po: updated po file
++
++2004-03-16 02:58 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/hy.po: updated po file
++
++2004-03-13 10:25 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/tg.po: updated po file
++
++2004-03-12 14:05 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/tl.po: Added Filipino file
++
++2004-03-07 13:59 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po: updated po file
++
++2004-03-07 04:56 Youcef Rabah Rahal &lt;rahal at arabeyes.org&gt;
++
++ * po/ar.po: Committing Arabeyes.org's Arabic translation of the
++ week...
++
++2004-03-01 10:14 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/it.po: updated po file
++
++2004-02-29 20:22 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po, po/eo.po, po/userdrake.pot: updated po file
++
++2004-02-29 13:23 Youcef Rabah Rahal &lt;rahal at arabeyes.org&gt;
++
++ * po/ar.po: Committing Arabeyes.org's Arabic translation for the
++ past week :-)
++
++2004-02-28 18:25 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/eo.po: updated po file
++
++2004-02-26 10:18 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - new pics
++ - po updates
++
++2004-02-26 10:16 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - new banners
++
++2004-02-26 10:08 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/sv.po: updated po file
++
++2004-02-26 10:03 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - change bootsplash
++
++2004-02-26 08:50 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * pixmaps/userdrake.png: - readded
++
++2004-02-26 08:49 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * pixmaps/about.png, pixmaps/userdrake.png: - change icons
++
++2004-02-24 19:01 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/tr.po: updated po file
++
++2004-02-24 16:45 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/lt.po, po/ltg.po, po/lv.po, po/uk.po: updated po files
++
++2004-02-24 15:30 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po, po/ja.po: updated po file
++
++2004-02-24 14:17 Youcef Rabah Rahal &lt;rahal at arabeyes.org&gt;
++
++ * po/ar.po: Committing Arabeyes.org's Arabic translation
++
++2004-02-23 09:23 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/af.po: updated po file
++
++2004-02-22 11:28 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po, po/ca.po, po/he.po: updated po files
++
++2004-02-15 13:25 Albert Astals Cid &lt;astals11 at terra.es&gt;
++
++ * po/ca.po: more updates
++
++2004-02-15 09:49 Youcef Rabah Rahal &lt;rahal at arabeyes.org&gt;
++
++ * po/ar.po: Committing Arabeyes.org's Arabic translation
++
++2004-02-11 22:01 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po, po/ca.po, po/cy.po: updated po file
++
++2004-02-10 17:28 Albert Astals Cid &lt;astals11 at terra.es&gt;
++
++ * po/ca.po: Updates, unfuzzying and spell checking
++
++2004-02-08 10:50 Youcef Rabah Rahal &lt;rahal at arabeyes.org&gt;
++
++ * po/ar.po: Committing Arabeyes.org Arabic translation
++
++2004-02-06 15:42 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/pt_BR.po: updated po file
++
++2004-02-05 20:56 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/sr.po, po/sr@Latn.po: updated po files
++
++2004-02-05 00:56 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/pt_BR.po: updated po file
++
++2004-02-02 17:28 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/af.po, po/ar.po, po/az.po, po/be.po, po/bg.po, po/br.po,
++ po/bs.po, po/ca.po, po/cs.po, po/cy.po, po/da.po, po/de.po,
++ po/el.po, po/eo.po, po/es.po, po/et.po, po/eu.po, po/fa.po,
++ po/fi.po, po/fr.po, po/ga.po, po/gl.po, po/he.po, po/hi.po,
++ po/hr.po, po/hu.po, po/id.po, po/is.po, po/it.po, po/ja.po,
++ po/ka.po, po/ko.po, po/lt.po, po/lv.po, po/mk.po, po/mn.po,
++ po/ms.po, po/mt.po, po/nb.po, po/nl.po, po/pl.po, po/pt.po,
++ po/pt_BR.po, po/ro.po, po/ru.po, po/sk.po, po/sl.po, po/sq.po,
++ po/sr.po, po/sr@Latn.po, po/sv.po, po/ta.po, po/tg.po, po/tr.po,
++ po/uk.po, po/userdrake.pot, po/uz.po, po/uz@Cyrl.po,
++ po/uz@Latn.po, po/vi.po, po/wa.po, po/zh_CN.po, po/zh_TW.po:
++ updated po files
++
++2004-02-02 16:15 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - sync with cooker spec
++
++2004-02-02 16:13 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - changes faces
++
++2004-02-02 16:11 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - release
++
++2004-02-02 12:22 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - titi sux
++
++2004-02-02 12:18 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - reorder full name and login
++
++2004-02-01 10:26 Youcef Rabah Rahal &lt;rahal at arabeyes.org&gt;
++
++ * po/ar.po: Committing Arabeyes.org's Arabic translation.
++
++2004-01-29 22:54 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/az.po, po/fa.po: updated po files
++
++2004-01-28 16:26 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/vi.po: updated po file
++
++2004-01-28 15:18 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/tr.po: updated po file
++
++2004-01-27 14:23 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po, po/cs.po, po/tr.po: updated po files
++
++2004-01-25 17:14 Youcef Rabah Rahal &lt;rahal at arabeyes.org&gt;
++
++ * po/ar.po: Committing Arabeyes.org translation.
++
++2004-01-23 02:54 (Hilbert) 廖唯鈞 &lt;h at mandrake.org&gt;
++
++ * po/zh_TW.po: Translation: lock -&gt; ����
++
++2004-01-22 23:46 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ca.po: updated po file
++
++2004-01-22 14:53 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - Replace Option Menu by Combo box to choose
++ shells manuall
++
++2004-01-22 14:48 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - Option Menu replaced by Combo Box to set shell
++ manually
++
++2004-01-21 13:45 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * Makefile: - drakuser symlink (fix typo)
++
++2004-01-21 13:43 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - rebuild for new POs
++ - add drakuser symlink
++
++2004-01-21 13:43 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * Makefile: - add drakuser symlink
++
++2004-01-21 10:50 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/he.po: updated po file
++
++2004-01-21 09:56 (Hilbert) 廖唯鈞 &lt;h at mandrake.org&gt;
++
++ * po/zh_TW.po: userdrake is completely done.
++
++2004-01-21 01:06 Tibor Pittich &lt;Tibor.Pittich at phuture.sk&gt;
++
++ * po/sk.po: updated slovak translation
++
++2004-01-19 22:45 Keld Jørn Simonsen &lt;keld at dkuug.dk&gt;
++
++ * po/da.po: Trying to get rid of &quot;Translated to da.po&quot; problem -
++ did not work:-(
++ soft/menu-messages/da.po soft/control-center/po/da.po
++ soft/drakcronat/po/da.po soft/ftw/po/da.po
++ soft/GtkMdkWidgets/po/da.po soft/kdebase-servicemenu/po/da.po
++ soft/krozat/po/da.po soft/mandrake-menu-directory/po/da.po
++ soft/mdkkdm/po/da.po soft/mdklaunchhelp/po/da.po
++ soft/menudrake/po/da.po soft/rpmdrake/po/da.po
++ soft/urpmi/po/da.po soft/userdrake2/po/da.po
++ soft/wizard_perl/po/da.po gi/perl-install/share/po/da.po
++ soft/galaxy/thememdk/mandrake_client/po/da.po
++
++2004-01-19 17:16 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/af.po, po/ar.po, po/az.po, po/be.po, po/bg.po, po/br.po,
++ po/bs.po, po/ca.po, po/cs.po, po/cy.po, po/da.po, po/de.po,
++ po/el.po, po/eo.po, po/es.po, po/et.po, po/eu.po, po/fa.po,
++ po/fi.po, po/fr.po, po/ga.po, po/gl.po, po/he.po, po/hi.po,
++ po/hr.po, po/hu.po, po/id.po, po/is.po, po/it.po, po/ja.po,
++ po/ka.po, po/ko.po, po/lt.po, po/lv.po, po/mk.po, po/mn.po,
++ po/ms.po, po/mt.po, po/nb.po, po/nl.po, po/pl.po, po/pt.po,
++ po/pt_BR.po, po/ro.po, po/ru.po, po/sk.po, po/sl.po, po/sq.po,
++ po/sr.po, po/sr@Latn.po, po/sv.po, po/ta.po, po/tg.po, po/tr.po,
++ po/uk.po, po/userdrake.pot, po/uz.po, po/uz@Cyrl.po, po/vi.po,
++ po/wa.po, po/zh_CN.po, po/zh_TW.po: updated pot file
++
++2004-01-19 11:14 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/br.po: initial import
++
++2004-01-17 21:08 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/fr.po: complete french translation
++
++2004-01-17 21:08 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: factorize translatable strings
++
++2004-01-17 10:51 Funda Wang &lt;fundawang at linux.net.cn&gt;
++
++ * po/zh_CN.po: updating.
++
++2004-01-06 13:43 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/zh_TW.po: updated po files
++
++2004-01-03 20:15 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/mn.po: updated po file
++
++2003-12-22 18:31 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * Makefile: fix broken Makefile
++
++2003-12-22 18:28 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: 0.92-26mdk
++
++2003-12-21 18:19 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/cy.po, po/hi.po, po/pt.po, po/sl.po: updated po files
++
++2003-12-19 16:58 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: push help menu at right
++
++2003-12-18 16:30 Keld Jørn Simonsen &lt;keld at dkuug.dk&gt;
++
++ * po/da.po: updates
++ soft/control-center/po/da.po soft/mdkkdm/po/da.po
++ soft/urpmi/po/da.po soft/userdrake2/po/da.po
++ soft/wizard_perl/po/da.po gi/perl-install/share/po/da.po
++
++2003-12-18 16:00 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * Makefile: - some build add-ons
++
++2003-12-10 20:49 Arkadiusz Lipiec &lt;alipiec at elka.pw.edu.pl&gt;
++
++ * po/pl.po: Updated
++
++2003-12-09 19:44 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/cy.po, po/fi.po: updated po files
++
++2003-12-07 11:57 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/de.po: updated po file
++
++2003-12-03 02:43 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/et.po, po/eu.po, po/nb.po, po/ro.po, po/ru.po: updated po
++ files
++
++2003-12-01 22:01 Fabian Mandelbaum &lt;fabman at mandriva.com&gt;
++
++ * po/es.po: Updated Spanish translations
++
++2003-12-01 16:08 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/af.po, po/ar.po, po/az.po, po/be.po, po/bg.po, po/bs.po,
++ po/ca.po, po/cs.po, po/cy.po, po/da.po, po/de.po, po/el.po,
++ po/eo.po, po/es.po, po/et.po, po/eu.po, po/fa.po, po/fi.po,
++ po/fr.po, po/ga.po, po/gl.po, po/he.po, po/hi.po, po/hr.po,
++ po/hu.po, po/id.po, po/is.po, po/it.po, po/ja.po, po/ka.po,
++ po/ko.po, po/lt.po, po/lv.po, po/mk.po, po/mn.po, po/ms.po,
++ po/mt.po, po/nb.po, po/nl.po, po/pl.po, po/pt.po, po/pt_BR.po,
++ po/ro.po, po/ru.po, po/sk.po, po/sl.po, po/sq.po, po/sr.po,
++ po/sr@Latn.po, po/sv.po, po/ta.po, po/tg.po, po/tr.po, po/uk.po,
++ po/userdrake.pot, po/uz.po, po/uz@Cyrl.po, po/vi.po, po/wa.po,
++ po/zh_CN.po, po/zh_TW.po: updated pot file
++
++2003-11-28 16:55 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - spec cleanup
++ - fix userdrake removehome hangs
++ - perl checker compliance
++ - BuildRequires (Stephan)
++
++2003-11-28 16:55 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - homedir hang
++
++2003-11-28 16:53 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs: - fix homedir removing gui dialog hanging
++
++2003-11-26 11:58 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/it.po: updated po file
++
++2003-11-17 16:20 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/uz.po, po/uz@Cyrl.po: updated po files
++
++2003-10-10 12:34 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/Makefile.PL: - remove debug info
++
++2003-10-10 10:20 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - perl checker compliance
++
++2003-10-09 13:46 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.pm: - Exporter not needed
++
++2003-10-02 19:12 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ca.po: updated po file
++
++2003-09-24 16:01 Tibor Pittich &lt;Tibor.Pittich at phuture.sk&gt;
++
++ * po/sk.po: updated slovak translation
++
++2003-09-21 22:49 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/it.po: updated po file
++
++2003-09-19 20:51 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/sk.po, po/sv.po: updated po files
++
++2003-09-18 19:18 Tibor Pittich &lt;Tibor.Pittich at phuture.sk&gt;
++
++ * po/sk.po: damn! userdrake is moved :(
++ updated slovak translation
++
++2003-09-17 10:14 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - fix crash when a user lost accidentally its
++ primary group (Titi)
++
++2003-09-17 10:05 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - fix crash when user groups removed accidentally
++ (titi)
++
++2003-09-16 17:10 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: po -updates
++
++2003-09-16 09:57 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - fix long translation in french (#5696)
++
++2003-09-16 09:54 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * po/fr.po: - fix widgets truncated in french
++
++2003-09-15 18:54 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/hi.po, po/is.po: Added Icelandic po file
++
++2003-09-15 06:30 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/pt_BR.po: updated po file
++
++2003-09-13 09:12 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/tg.po: updated po file
++
++2003-09-12 13:48 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/pt_BR.po: updated po file
++
++2003-09-12 09:46 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - gtkset_mousecursor_normal() when
++ adding/deleting user/group
++
++2003-09-12 09:45 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - add gtkset_mousecursor_normal() when finishing to
++ add user
++
++2003-09-12 09:34 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake, userdrake.spec: - fix duplicate semi-colons
++
++2003-09-12 01:12 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/mn.po: updated po file
++
++2003-09-12 00:02 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/tr.po: updated po file
++
++2003-09-11 14:30 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/pt_BR.po: upated po file
++
++2003-09-11 00:09 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/pt_BR.po: updated po file
++
++2003-09-10 09:32 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/mt.po: updated po file
++
++2003-09-09 11:17 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - fix help call
++
++2003-09-09 08:56 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - po updates
++ - drakhelp new schema
++
++2003-09-09 08:54 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - new help call
++
++2003-09-08 14:57 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/az.po: updated po file
++
++2003-09-08 12:59 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/fi.po: updated po file
++
++2003-09-06 23:17 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/cy.po, po/he.po, po/hu.po, po/ro.po: updated po files
++
++2003-09-04 23:59 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/el.po, po/fa.po: updated po files
++
++2003-09-04 18:21 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/sq.po, po/zh_CN.po: updated po files
++
++2003-09-04 13:24 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/uk.po: updated po file
++
++2003-09-04 13:16 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/sl.po, po/vi.po: updated po files
++
++2003-09-04 08:19 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/eu.po, po/pt.po: updated po files
++
++2003-09-03 19:56 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/cs.po, po/et.po, po/tr.po: updated po files
++
++2003-09-03 18:59 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/sl.po: updated po file
++
++2003-09-03 17:58 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/bs.po: updated po file
++
++2003-09-03 17:49 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/nl.po: updated po file
++
++2003-09-03 17:10 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/nb.po, po/ru.po: updated po files
++
++2003-09-03 12:12 Arkadiusz Lipiec &lt;alipiec at elka.pw.edu.pl&gt;
++
++ * po/pl.po: Updated
++
++2003-09-03 08:25 Keld Jørn Simonsen &lt;keld at dkuug.dk&gt;
++
++ * po/da.po: updates
++ soft/userdrake2/po/da.po soft/wizard_perl/po/da.po
++
++2003-09-02 22:24 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/cy.po, po/de.po, po/hu.po: updated po files
++
++2003-09-02 22:14 Stefan Siegel &lt;siegel at linux-mandrake.com&gt;
++
++ * po/de.po: updates
++
++2003-09-02 17:35 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/fr.po: complete french translation
++
++2003-09-02 16:25 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/af.po, po/ar.po, po/az.po, po/be.po, po/bg.po, po/bs.po,
++ po/ca.po, po/cs.po, po/cy.po, po/da.po, po/de.po, po/el.po,
++ po/eo.po, po/es.po, po/et.po, po/eu.po, po/fa.po, po/fi.po,
++ po/fr.po, po/ga.po, po/gl.po, po/he.po, po/hi.po, po/hr.po,
++ po/hu.po, po/id.po, po/it.po, po/ja.po, po/ka.po, po/ko.po,
++ po/lt.po, po/lv.po, po/mk.po, po/mn.po, po/ms.po, po/mt.po,
++ po/nb.po, po/nl.po, po/pl.po, po/pt.po, po/pt_BR.po, po/ro.po,
++ po/ru.po, po/sk.po, po/sl.po, po/sq.po, po/sr.po, po/sr@Latn.po,
++ po/sv.po, po/ta.po, po/tg.po, po/tr.po, po/uk.po,
++ po/userdrake.pot, po/uz.po, po/uz@Cyrl.po, po/vi.po, po/wa.po,
++ po/zh_CN.po, po/zh_TW.po: updated pot file
++
++2003-09-02 16:15 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/de.po, po/userdrake.pot: updated po file
++
++2003-09-02 12:29 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - fix typo in AddGroup title
++
++2003-09-02 12:28 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - fix typo when adding group (Arpad Biro)
++
++2003-09-02 02:36 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/hu.po: updated po file
++
++2003-09-01 22:30 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/bs.po: updated po file
++
++2003-09-01 13:15 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/az.po, po/uz.po, po/uz@Cyrl.po: updated po files
++
++2003-08-30 11:18 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/vi.po: updated po file
++
++2003-08-29 12:13 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/fr.po: updated po file
++
++2003-08-29 11:56 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/it.po: updated po file
++
++2003-08-28 13:19 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/az.po: updated po file
++
++2003-08-28 13:18 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - fix unpredictable deselection of primary group
++ when editing user
++
++2003-08-28 12:25 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - fix random error
++
++2003-08-28 10:18 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/bs.po: updated po file
++
++2003-08-28 04:09 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/pt_BR.po: updated po file
++
++2003-08-27 20:32 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/nb.po: updated po file
++
++2003-08-27 17:35 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - new drakhelp args
++
++2003-08-27 13:42 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/uk.po: updatedp po file
++
++2003-08-26 20:13 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/pt.po: updated po file
++
++2003-08-26 19:39 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/af.po, po/fi.po: Added Afrikaans file
++
++2003-08-26 13:56 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/et.po: updated po file
++
++2003-08-25 19:50 Arkadiusz Lipiec &lt;alipiec at elka.pw.edu.pl&gt;
++
++ * po/pl.po: Updated
++
++2003-08-25 15:24 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po, po/nl.po, po/sq.po: updated po files
++
++2003-08-25 10:30 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - fix explanation call titi
++
++2003-08-24 21:12 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: fix #4871: proplerly use explanations
++
++2003-08-24 11:31 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/eo.po: updated po file
++
++2003-08-23 10:21 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/az.po, po/zh_CN.po: updated po files
++
++2003-08-22 16:16 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/eu.po: updated po file
++
++2003-08-22 14:19 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/bg.po: updated po file
++
++2003-08-22 11:20 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - replace blurred icons
++
++2003-08-22 11:02 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/Makefile.PL: - use pkg-config
++
++2003-08-22 10:55 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * pixmaps/group_add.png, pixmaps/user_add.png: - readded icons
++
++2003-08-22 10:53 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * pixmaps/group_add.png, pixmaps/user_add.png: - replacing icons
++
++2003-08-22 10:17 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: space
++
++2003-08-22 10:16 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - made it lib64 aware
++ - replaced truncated icon
++
++2003-08-22 10:15 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * pixmaps/refresh.png: - refresh readded
++
++2003-08-22 10:14 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * pixmaps/refresh.png: - remove
++
++2003-08-21 20:51 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/fa.po, po/nb.po: updated po files
++
++2003-08-21 18:55 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/cs.po, po/es.po: updated po file
++
++2003-08-21 17:46 Fabian Mandelbaum &lt;fabman at mandriva.com&gt;
++
++ * po/es.po: Updated Spanish translations
++
++2003-08-21 11:16 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/hu.po, po/ru.po, po/sv.po: updated po files
++
++2003-08-21 08:58 Keld Jørn Simonsen &lt;keld at dkuug.dk&gt;
++
++ * po/da.po: updates
++ soft/GtkMdkWidgets/po/da.po soft/mdkkdm/po/da.po
++ soft/urpmi/po/da.po soft/userdrake2/po/da.po
++ gi/perl-install/share/po/da.po
++
++2003-08-20 19:53 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po, po/az.po, po/be.po, po/bg.po, po/bs.po, po/ca.po,
++ po/cs.po, po/cy.po, po/da.po, po/de.po, po/el.po, po/eo.po,
++ po/es.po, po/et.po, po/eu.po, po/fa.po, po/fi.po, po/fr.po,
++ po/ga.po, po/gl.po, po/he.po, po/hi.po, po/hr.po, po/hu.po,
++ po/id.po, po/it.po, po/ja.po, po/ka.po, po/ko.po, po/lt.po,
++ po/lv.po, po/mk.po, po/mn.po, po/ms.po, po/mt.po, po/nb.po,
++ po/nl.po, po/pl.po, po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po,
++ po/sk.po, po/sl.po, po/sq.po, po/sr.po, po/sr@Latn.po, po/sv.po,
++ po/ta.po, po/tg.po, po/tr.po, po/uk.po, po/userdrake.pot,
++ po/uz.po, po/uz@Cyrl.po, po/vi.po, po/wa.po, po/zh_CN.po,
++ po/zh_TW.po: updated pot file
++
++2003-08-20 17:59 Fabian Mandelbaum &lt;fabman at mandriva.com&gt;
++
++ * po/es.po: Updated Spanish translations
++
++2003-08-20 17:36 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - Explanations
++
++2003-08-20 17:33 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - added explanations
++
++2003-08-20 17:11 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - splash screen
++
++2003-08-20 16:28 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - splash screen
++
++2003-08-20 16:10 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * pixmaps/about.png: - add about.png
++
++2003-08-20 16:00 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * pixmaps/userdrake.png: - userdrake.png
++
++2003-08-20 15:56 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * pixmaps/userdrake.png: - remove userdrake.png
++
++2003-08-20 15:20 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - add splash screen when starting userdrake
++ - cosmetics (about dialog, borders )
++
++2003-08-20 15:15 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - splash screen for userdrake launching
++
++2003-08-20 05:15 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/tr.po: updated po file
++
++2003-08-19 21:05 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/Makefile, po/ar.po, po/az.po, po/be.po, po/bg.po, po/bs.po,
++ po/ca.po, po/cs.po, po/cy.po, po/da.po, po/de.po, po/el.po,
++ po/eo.po, po/es.po, po/et.po, po/eu.po, po/fa.po, po/fake_c.pl,
++ po/fi.po, po/fr.po, po/ga.po, po/gl.po, po/he.po, po/hi.po,
++ po/hr.po, po/hu.po, po/id.po, po/it.po, po/ja.po, po/ka.po,
++ po/ko.po, po/lt.po, po/lv.po, po/mk.po, po/mn.po, po/ms.po,
++ po/mt.po, po/nb.po, po/nl.po, po/pl.po, po/pt.po, po/pt_BR.po,
++ po/ro.po, po/ru.po, po/sk.po, po/sl.po, po/sq.po, po/sr.po,
++ po/sr@Latn.po, po/sv.po, po/ta.po, po/tg.po, po/tr.po, po/uk.po,
++ po/userdrake.pot, po/uz.po, po/uz@Cyrl.po, po/vi.po, po/wa.po,
++ po/zh_CN.po, po/zh_TW.po: updated pot file; changed the way the
++ pot is generated to use perl_checker
++
++2003-08-19 15:16 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * po/bg.po: - added missing \\n
++
++2003-08-19 15:13 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - add LN brand new icons
++ - add label to filter group widget (titi)
++
++2003-08-19 14:44 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * pixmaps/group_add.png, pixmaps/refresh.png, pixmaps/user_add.png,
++ pixmaps/user_conf.png, pixmaps/user_del.png: - readded png
++
++2003-08-19 14:42 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * pixmaps/group_add.png, pixmaps/refresh.png, pixmaps/user_add.png,
++ pixmaps/user_conf.png, pixmaps/user_del.png: - replace pngs
++
++2003-08-19 13:28 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: enhance filter area layout
++
++2003-08-19 13:24 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po, po/az.po, po/be.po, po/bg.po, po/bs.po, po/ca.po,
++ po/cs.po, po/cy.po, po/da.po, po/de.po, po/el.po, po/eo.po,
++ po/es.po, po/et.po, po/eu.po, po/fa.po, po/fi.po, po/fr.po,
++ po/ga.po, po/gl.po, po/he.po, po/hi.po, po/hr.po, po/hu.po,
++ po/id.po, po/it.po, po/ja.po, po/ka.po, po/ko.po, po/lt.po,
++ po/lv.po, po/mk.po, po/mn.po, po/ms.po, po/mt.po, po/nb.po,
++ po/nl.po, po/pl.po, po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po,
++ po/sk.po, po/sl.po, po/sq.po, po/sr.po, po/sr@Latn.po, po/sv.po,
++ po/ta.po, po/tg.po, po/tr.po, po/uk.po, po/userdrake.pot,
++ po/uz.po, po/uz@Cyrl.po, po/vi.po, po/wa.po, po/zh_CN.po,
++ po/zh_TW.po: updated pot file
++
++2003-08-19 13:02 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: do not add white space after toolbar
++
++2003-08-19 10:36 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - s/field/fields/
++
++2003-08-18 19:33 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/da.po, po/pt_BR.po: updated po files
++
++2003-08-18 18:16 Keld Jørn Simonsen &lt;keld at dkuug.dk&gt;
++
++ * po/da.po: Updates
++ soft/menu-messages/da.po soft/userdrake2/po/da.po
++ gi/perl-install/share/po/da.po
++
++2003-08-18 18:13 Arkadiusz Lipiec &lt;alipiec at elka.pw.edu.pl&gt;
++
++ * po/pl.po: Updated
++
++2003-08-18 14:45 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po, po/nl.po: updated po files
++
++2003-08-18 12:54 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - string fixes (Pablo and Co)
++
++2003-08-18 12:53 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - any.pm api changes
++
++2003-08-18 10:22 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/eu.po, po/nb.po, po/uz.po, po/uz@Cyrl.po: updated po files
++
++2003-08-17 23:06 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/sv.po: updated po file
++
++2003-08-17 16:36 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po, po/az.po, po/be.po, po/bg.po, po/bs.po, po/ca.po,
++ po/cs.po, po/cy.po, po/da.po, po/de.po, po/el.po, po/eo.po,
++ po/es.po, po/et.po, po/eu.po, po/fa.po, po/fi.po, po/fr.po,
++ po/ga.po, po/gl.po, po/he.po, po/hi.po, po/hr.po, po/hu.po,
++ po/id.po, po/it.po, po/ja.po, po/ka.po, po/ko.po, po/lt.po,
++ po/lv.po, po/mk.po, po/mn.po, po/ms.po, po/mt.po, po/nb.po,
++ po/nl.po, po/pl.po, po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po,
++ po/sk.po, po/sl.po, po/sq.po, po/sr.po, po/sr@Latn.po, po/sv.po,
++ po/ta.po, po/tg.po, po/tr.po, po/uk.po, po/userdrake.pot,
++ po/uz.po, po/uz@Cyrl.po, po/vi.po, po/wa.po, po/zh_CN.po,
++ po/zh_TW.po, userdrake: fixed English typo
++
++2003-08-17 13:25 Alice Lafox &lt;alice at lafox.com.ua&gt;
++
++ * po/ru.po: fixed typos and updated
++
++2003-08-17 12:00 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/et.po, po/hu.po: updated po files
++
++2003-08-17 11:12 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/he.po: updated po file
++
++2003-08-16 17:46 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po, po/az.po, po/be.po, po/bg.po, po/bs.po, po/ca.po,
++ po/cs.po, po/cy.po, po/da.po, po/de.po, po/el.po, po/eo.po,
++ po/es.po, po/et.po, po/eu.po, po/fa.po, po/fi.po, po/fr.po,
++ po/ga.po, po/gl.po, po/he.po, po/hi.po, po/hr.po, po/hu.po,
++ po/id.po, po/it.po, po/ja.po, po/ka.po, po/ko.po, po/lt.po,
++ po/lv.po, po/mk.po, po/mn.po, po/ms.po, po/mt.po, po/nb.po,
++ po/nl.po, po/pl.po, po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po,
++ po/sk.po, po/sl.po, po/sq.po, po/sr.po, po/sr@Latn.po, po/sv.po,
++ po/ta.po, po/tg.po, po/tr.po, po/uk.po, po/userdrake.pot,
++ po/uz.po, po/uz@Cyrl.po, po/vi.po, po/wa.po, po/zh_CN.po,
++ po/zh_TW.po: updated pot file
++
++2003-08-16 14:36 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - string fix
++
++2003-08-15 11:21 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/eu.po: updated po file
++
++2003-08-14 15:40 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/be.po: Added Belarussian file
++
++2003-08-13 23:28 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/hi.po, po/id.po, po/lv.po: updated po files
++
++2003-08-13 13:29 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/zh_CN.po: updated po file
++
++2003-08-11 19:39 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/bs.po: updated po file
++
++2003-08-11 14:02 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/hu.po: updated po file
++
++2003-08-11 10:44 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - small changes for any.pm api
++
++2003-08-11 10:43 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - respect new any api
++
++2003-08-10 22:08 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/cs.po: updated po file
++
++2003-08-09 15:07 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/da.po, po/fa.po: udated po files
++
++2003-08-08 21:46 Keld Jørn Simonsen &lt;keld at dkuug.dk&gt;
++
++ * po/da.po: Updates
++ soft/control-center/po/da.po soft/ftw/po/da.po
++ soft/mdkhtmlbrowser/po/da.po soft/rpmdrake/po/da.po
++ soft/urpmi/po/da.po soft/userdrake2/po/da.po
++ gi/perl-install/share/po/da.po
++
++2003-08-08 08:35 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/nl.po, po/sq.po, po/tr.po: updated po files
++
++2003-08-07 08:32 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/uk.po: updated po file
++
++2003-08-07 00:54 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/sv.po: updated po file
++
++2003-08-06 21:38 Fabian Mandelbaum &lt;fabman at mandriva.com&gt;
++
++ * po/es.po: Updated Spanish translations
++
++2003-08-06 21:24 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/pl.po: fixed error
++
++2003-08-06 21:17 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/az.po: updated po file
++
++2003-08-06 20:49 Arkadiusz Lipiec &lt;alipiec at elka.pw.edu.pl&gt;
++
++ * po/pl.po: Update
++
++2003-08-06 17:15 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/nb.po: updated po file
++
++2003-08-06 11:25 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/et.po: updated po file
++
++2003-08-05 23:39 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po, po/az.po, po/bg.po, po/bs.po, po/ca.po, po/cs.po,
++ po/cy.po, po/da.po, po/de.po, po/el.po, po/eo.po, po/es.po,
++ po/et.po, po/eu.po, po/fa.po, po/fi.po, po/fr.po, po/ga.po,
++ po/gl.po, po/he.po, po/hi.po, po/hr.po, po/hu.po, po/id.po,
++ po/it.po, po/ja.po, po/ka.po, po/ko.po, po/lt.po, po/lv.po,
++ po/mk.po, po/mn.po, po/ms.po, po/mt.po, po/nb.po, po/nl.po,
++ po/pl.po, po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po, po/sk.po,
++ po/sl.po, po/sq.po, po/sr.po, po/sr@Latn.po, po/sv.po, po/ta.po,
++ po/tg.po, po/tr.po, po/uk.po, po/userdrake.pot, po/uz.po,
++ po/uz@Cyrl.po, po/vi.po, po/wa.po, po/zh_CN.po, po/zh_TW.po:
++ updated pot file
++
++2003-08-05 11:09 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - center window
++
++2003-08-04 16:35 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - correct manpage location
++
++2003-08-04 16:33 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - spec cleanup
++
++2003-08-04 16:24 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - release for beta2
++
++2003-08-04 16:23 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: release for beta2
++
++2003-08-04 16:23 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - release for beta2
++
++2003-08-04 15:59 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - ask before removing group
++
++2003-08-04 15:36 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/he.po: updated po file
++
++2003-08-04 15:11 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - remove help from toolbar
++ - sort columns feature
++ - ask before removing group
++
++2003-08-04 11:57 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/uk.po: updated po file
++
++2003-08-04 09:28 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/fi.po: updated po file
++
++2003-08-03 10:28 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/fa.po, po/nl.po: updated po file
++
++2003-07-31 13:16 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po, po/az.po, po/bg.po, po/bs.po, po/ca.po, po/cs.po,
++ po/cy.po, po/da.po, po/de.po, po/el.po, po/eo.po, po/es.po,
++ po/et.po, po/eu.po, po/fi.po, po/fr.po, po/ga.po, po/gl.po,
++ po/he.po, po/hi.po, po/hr.po, po/hu.po, po/id.po, po/it.po,
++ po/ja.po, po/ka.po, po/ko.po, po/lt.po, po/lv.po, po/mk.po,
++ po/mn.po, po/ms.po, po/mt.po, po/nb.po, po/nl.po, po/pl.po,
++ po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po, po/sk.po, po/sl.po,
++ po/sq.po, po/sr.po, po/sr@Latn.po, po/sv.po, po/ta.po, po/tg.po,
++ po/tr.po, po/uk.po, po/userdrake.pot, po/uz.po, po/uz@Cyrl.po,
++ po/vi.po, po/wa.po, po/zh_CN.po, po/zh_TW.po, userdrake: changed
++ &quot;lower case letter&quot; to &quot;lower case latin letters&quot;; cyrillic,
++ greek,
++ etc can't be used for login names.
++
++2003-07-31 06:19 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/pt_BR.po: updated po file
++
++2003-07-30 15:01 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/cs.po, po/es.po: updated po file
++
++2003-07-30 11:18 Fabian Mandelbaum &lt;fabman at mandriva.com&gt;
++
++ * po/es.po: Updated Spanish translations
++
++2003-07-30 09:59 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/he.po, po/pt.po, po/sq.po: updated po files
++
++2003-07-29 12:41 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/bg.po, po/zh_CN.po: updated po files
++
++2003-07-29 10:11 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - remove help from toolbar
++ - sort columns feature
++
++2003-07-29 06:18 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/nb.po: updated po file
++
++2003-07-28 23:24 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/da.po, po/hu.po: updated po files
++
++2003-07-28 21:57 Keld Jørn Simonsen &lt;keld at dkuug.dk&gt;
++
++ * po/da.po: update
++ soft/urpmi/po/da.po soft/userdrake2/po/da.po
++
++2003-07-28 18:40 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/et.po: updated po file
++
++2003-07-28 16:43 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po, po/az.po, po/bg.po, po/bs.po, po/ca.po, po/cs.po,
++ po/cy.po, po/da.po, po/de.po, po/el.po, po/eo.po, po/es.po,
++ po/et.po, po/eu.po, po/fi.po, po/fr.po, po/ga.po, po/gl.po,
++ po/he.po, po/hi.po, po/hr.po, po/hu.po, po/id.po, po/it.po,
++ po/ja.po, po/ka.po, po/ko.po, po/lt.po, po/lv.po, po/mk.po,
++ po/mn.po, po/ms.po, po/mt.po, po/nb.po, po/nl.po, po/pl.po,
++ po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po, po/sk.po, po/sl.po,
++ po/sq.po, po/sr.po, po/sr@Latn.po, po/sv.po, po/ta.po, po/tg.po,
++ po/tr.po, po/uk.po, po/userdrake.pot, po/uz.po, po/uz@Cyrl.po,
++ po/vi.po, po/wa.po, po/zh_CN.po, po/zh_TW.po: updated pot file
++
++2003-07-28 16:00 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs: - split Clean entity to CleanHome and CleanSpool
++
++2003-07-28 15:38 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - cosmetics changes
++
++2003-07-28 14:53 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: Replace Combo boxes by Option Menu when Combo
++ should'nt be editable.
++
++2003-07-28 14:51 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - feature add-ons:
++ o ask before removing user. Choices to delete HomeDir and Spool
++ mail file
++ o Choose icon to be displayed in kdm/mdkkdm when adding user
++
++2003-07-28 14:49 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - We ask for removing user now before really deleting
++ it
++ Option are delete home dir to and delete spool mail.
++
++2003-07-28 11:15 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - add choice of icons when adding a user
++
++2003-07-28 10:58 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/uz.po, po/uz@Cyrl.po: Added Uzbek cyrillic file
++
++2003-07-28 09:20 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - replace Combo by OptionMenu
++
++2003-07-27 16:22 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/nb.po, po/nl.po: updated po files
++
++2003-07-26 19:56 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/eo.po, po/hu.po, po/ja.po, po/uk.po: updated po files
++
++2003-07-26 08:53 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po, po/az.po, po/bg.po, po/bs.po, po/ca.po, po/cs.po,
++ po/cy.po, po/de.po, po/el.po, po/eo.po, po/es.po, po/et.po,
++ po/eu.po, po/fi.po, po/fr.po, po/ga.po, po/gl.po, po/he.po,
++ po/hi.po, po/hr.po, po/id.po, po/it.po, po/ja.po, po/ka.po,
++ po/ko.po, po/lt.po, po/lv.po, po/mk.po, po/mn.po, po/ms.po,
++ po/mt.po, po/nb.po, po/nl.po, po/pl.po, po/pt.po, po/pt_BR.po,
++ po/ro.po, po/ru.po, po/sk.po, po/sl.po, po/sq.po, po/sr.po,
++ po/sr@Latn.po, po/sv.po, po/ta.po, po/tg.po, po/tr.po, po/uk.po,
++ po/uz.po, po/vi.po, po/wa.po, po/zh_CN.po, po/zh_TW.po: updated
++ pot file
++
++2003-07-26 08:50 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/da.po, po/hu.po, po/userdrake.pot: updated po files
++
++2003-07-25 15:18 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * todo: - addons (in french )
++
++2003-07-25 14:25 Keld Jørn Simonsen &lt;keld at dkuug.dk&gt;
++
++ * po/da.po: Update
++ soft/userdrake2/po/da.po
++
++2003-07-25 13:36 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake, userdrake.spec: - fix crash happening when selection
++ get lost (by refreshing list) and edit or
++ delete button is activated (found by David Baudens)
++
++2003-07-25 10:03 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/da.po, po/pt_BR.po, po/zh_CN.po: updated po files
++
++2003-07-25 03:20 Keld Jørn Simonsen &lt;keld at dkuug.dk&gt;
++
++ * po/da.po: soft/userdrake2/po/da.po
++
++2003-07-24 21:19 Arkadiusz Lipiec &lt;alipiec at elka.pw.edu.pl&gt;
++
++ * po/pl.po: One translation entry
++
++2003-07-24 12:59 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/sv.po: updated po file
++
++2003-07-24 07:12 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/eo.po: updated po file
++
++2003-07-23 23:14 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/sv.po: updated po file
++
++2003-07-23 13:37 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/es.po, po/ru.po: updated po file
++
++2003-07-22 17:26 Fabian Mandelbaum &lt;fabman at mandriva.com&gt;
++
++ * po/es.po: Updated Spanish translations
++
++2003-07-22 15:33 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/et.po: updated po file
++
++2003-07-21 20:47 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/bg.po, po/bs.po, po/hr.po, po/id.po, po/nl.po, po/pl.po,
++ po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po, po/sq.po, po/uk.po,
++ po/wa.po: fixed some ui problems
++
++2003-07-21 19:45 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po, po/az.po, po/bg.po, po/bs.po, po/ca.po, po/cs.po,
++ po/cy.po, po/da.po, po/de.po, po/el.po, po/eo.po, po/es.po,
++ po/et.po, po/eu.po, po/fi.po, po/fr.po, po/ga.po, po/gl.po,
++ po/he.po, po/hi.po, po/hr.po, po/hu.po, po/id.po, po/it.po,
++ po/ja.po, po/ka.po, po/ko.po, po/lt.po, po/lv.po, po/mk.po,
++ po/mn.po, po/ms.po, po/mt.po, po/nb.po, po/nl.po, po/pl.po,
++ po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po, po/sk.po, po/sl.po,
++ po/sq.po, po/sr.po, po/sr@Latn.po, po/sv.po, po/ta.po, po/tg.po,
++ po/tr.po, po/uk.po, po/userdrake.pot, po/uz.po, po/vi.po,
++ po/wa.po, po/zh_CN.po, po/zh_TW.po: updated pot file
++
++2003-07-20 09:06 Arkadiusz Lipiec &lt;alipiec at elka.pw.edu.pl&gt;
++
++ * po/pl.po: Update
++
++2003-07-17 16:51 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - no explicit require on libuser
++
++2003-07-17 15:24 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - misc fixes (locale fr)
++
++2003-07-17 15:24 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: fix a locale fr typo
++
++2003-07-17 15:14 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * po/fr.po: - fix for better toolbar fit
++
++2003-07-17 14:57 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * po/fr.po: - remove trailing &quot;
++
++2003-07-17 14:45 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: Cosmetic changes (stock icons everywhere)
++
++2003-07-17 14:44 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - Stocks icons for all menu entries (pretty nice)
++
++2003-07-17 14:21 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - Devel::Peek only for debugging
++
++2003-07-17 14:20 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - update
++
++2003-07-17 14:19 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - Use SpinButton to display date format (autoset
++ with current date)
++
++2003-07-17 14:18 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - spiin buttons cosmetics
++
++2003-07-17 13:59 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - spinbutton in place of entry
++
++2003-07-17 11:52 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * userdrake: added context information for translators
++
++2003-07-17 10:58 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - change date format (YYYY/MM/DD)
++
++2003-07-17 10:33 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po, po/az.po, po/bg.po, po/bs.po, po/ca.po, po/cs.po,
++ po/cy.po, po/da.po, po/de.po, po/el.po, po/eo.po, po/es.po,
++ po/et.po, po/eu.po, po/fi.po, po/fr.po, po/ga.po, po/gl.po,
++ po/he.po, po/hi.po, po/hr.po, po/hu.po, po/id.po, po/it.po,
++ po/ja.po, po/ka.po, po/ko.po, po/lt.po, po/lv.po, po/mk.po,
++ po/mn.po, po/ms.po, po/mt.po, po/nb.po, po/nl.po, po/pl.po,
++ po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po, po/sk.po, po/sl.po,
++ po/sq.po, po/sr.po, po/sr@Latn.po, po/sv.po, po/ta.po, po/tg.po,
++ po/tr.po, po/uk.po, po/userdrake.pot, po/uz.po, po/vi.po,
++ po/wa.po, po/zh_CN.po, po/zh_TW.po, userdrake: fixed English typo
++ (caracters -&gt; characters)
++
++2003-07-16 12:33 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: 0.92-12mdk
++
++2003-07-16 12:32 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: use stock icons in menus
++
++2003-07-15 17:43 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: 0.92-11mdk
++
++2003-07-14 20:01 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: sync with cooker
++
++2003-07-10 18:36 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: fix stock item
++
++2003-07-10 16:44 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po, po/az.po, po/bg.po, po/bs.po, po/ca.po, po/cs.po,
++ po/cy.po, po/da.po, po/de.po, po/el.po, po/eo.po, po/es.po,
++ po/et.po, po/eu.po, po/fi.po, po/fr.po, po/ga.po, po/gl.po,
++ po/he.po, po/hi.po, po/hr.po, po/hu.po, po/id.po, po/it.po,
++ po/ja.po, po/ka.po, po/ko.po, po/lt.po, po/lv.po, po/mk.po,
++ po/mn.po, po/ms.po, po/mt.po, po/nb.po, po/nl.po, po/pl.po,
++ po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po, po/sk.po, po/sl.po,
++ po/sq.po, po/sr.po, po/sr@Latn.po, po/sv.po, po/ta.po, po/tg.po,
++ po/tr.po, po/uk.po, po/userdrake.pot, po/uz.po, po/vi.po,
++ po/wa.po, po/zh_CN.po, po/zh_TW.po: updated pot file
++
++2003-07-10 16:16 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: 0.92-9mdk
++
++2003-07-10 16:15 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: use stock items
++
++2003-07-10 13:39 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: symbolic keys are back
++
++2003-07-10 13:00 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: 0.92-8mdk
++
++2003-07-10 12:59 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: fix tree filling
++
++2003-07-10 09:22 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: 0.92-7mdk
++
++2003-07-10 09:21 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: fix embedding
++
++2003-07-10 09:13 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: fix requires
++
++2003-07-10 09:13 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * Makefile: add srpm target
++
++2003-07-10 09:11 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: 0.92-6mdk
++
++2003-07-10 09:08 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: get rid of old equals
++
++2003-07-10 09:02 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: focus event handlers must return false else gdk louldy
++ complain
++
++2003-07-10 09:01 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: make dialogs be transcient to main window (they should
++ really be
++ Gtk2::Dialog)
++
++2003-07-10 08:52 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: fix entries filling
++
++2003-07-09 18:34 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: bump require on perl-Gtk2
++
++2003-07-09 18:32 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * icons/selected.png, icons/unselected.png: add the icons the
++ maintainer was too lazy or forget to commit in cvs
++
++2003-07-09 18:31 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * pixmaps/selected.png, pixmaps/unselected.png: *** empty log
++ message ***
++
++2003-07-09 18:28 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * pixmaps/selected.png, pixmaps/unselected.png: add the icons the
++ maintainer was too lazy or forget to commit in cvs
++
++2003-07-09 18:26 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: 0.92-5mdk
++
++2003-07-09 18:25 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: (ValidInt) kill obvious warnings
++
++2003-07-09 18:24 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: stop reinventing the wheel by duplicating it and reuse
++ existent
++ infrastructure
++
++2003-07-09 18:21 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: convert from gtk2-perl to gtk2-perl-xs
++
++2003-07-09 12:09 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/uk.po: updated po file
++
++2003-07-08 10:01 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/pt_BR.po: updated po file
++
++2003-07-08 09:00 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/es.po, po/ru.po, po/zh_CN.po: updated po files
++
++2003-07-05 17:48 Fabian Mandelbaum &lt;fabman at mandriva.com&gt;
++
++ * po/es.po: updated Spanish translations
++
++2003-07-04 14:17 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/et.po, po/userdrake.pot: updated po file
++
++2003-07-04 13:13 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * todo: - updates
++
++2003-07-04 13:10 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - Status of user account (Locked or Expired)
++ displayed in main window
++ - Keystroke features:
++ o Space bar and Enter key to select deselect user/group
++ o Enter Key to perform filtering
++ o Ctrl+Q to Quit (titi)
++ - sanity checks
++
++2003-07-04 13:06 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - keyval feature added
++
++2003-07-04 11:17 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - better solution to search with enter key
++
++2003-07-04 11:10 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - use entry to perform a search
++
++2003-07-04 10:45 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - comute Lock/Expire Time to set status
++
++2003-07-04 10:07 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - change date
++
++2003-07-03 20:56 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po, po/az.po, po/bg.po, po/bs.po, po/ca.po, po/cs.po,
++ po/cy.po, po/da.po, po/de.po, po/el.po, po/eo.po, po/es.po,
++ po/et.po, po/eu.po, po/fi.po, po/fr.po, po/ga.po, po/gl.po,
++ po/he.po, po/hi.po, po/hr.po, po/hu.po, po/id.po, po/it.po,
++ po/ja.po, po/ka.po, po/ko.po, po/lt.po, po/lv.po, po/mk.po,
++ po/mn.po, po/ms.po, po/mt.po, po/nb.po, po/nl.po, po/pl.po,
++ po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po, po/sk.po, po/sl.po,
++ po/sq.po, po/sr.po, po/sr@Latn.po, po/sv.po, po/ta.po, po/tg.po,
++ po/tr.po, po/uk.po, po/userdrake.pot, po/uz.po, po/vi.po,
++ po/wa.po, po/zh_CN.po, po/zh_TW.po: updated pot file
++
++2003-07-03 12:55 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - expired status imlementation
++
++2003-07-02 19:31 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po, po/az.po, po/bg.po, po/bs.po, po/ca.po, po/cs.po,
++ po/cy.po, po/da.po, po/de.po, po/el.po, po/eo.po, po/es.po,
++ po/et.po, po/eu.po, po/fi.po, po/fr.po, po/ga.po, po/gl.po,
++ po/he.po, po/hi.po, po/hr.po, po/hu.po, po/id.po, po/it.po,
++ po/ja.po, po/ka.po, po/ko.po, po/lt.po, po/lv.po, po/mk.po,
++ po/mn.po, po/ms.po, po/mt.po, po/nb.po, po/nl.po, po/pl.po,
++ po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po, po/sk.po, po/sl.po,
++ po/sq.po, po/sr.po, po/sr@Latn.po, po/sv.po, po/ta.po, po/tg.po,
++ po/tr.po, po/uk.po, po/userdrake.pot, po/uz.po, po/vi.po,
++ po/wa.po, po/zh_CN.po, po/zh_TW.po: updated pot file
++
++2003-07-02 14:50 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * todo: - update (some won't fix)
++
++2003-07-02 14:00 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * todo: - update
++
++2003-07-02 13:57 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - Status of user account (Locked or Expired)
++ displayed in main window
++
++2003-07-02 13:55 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: add std c-q shortcut
++
++2003-07-02 13:44 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - some features added:
++ Give the status of the account in main window
++
++2003-07-02 13:41 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * todo: - update
++
++2003-07-02 13:07 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - cosmetics fixes
++
++2003-07-01 15:24 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * todo: - add todo file
++
++2003-07-01 14:49 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - resync
++
++2003-07-01 14:29 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - 3mdk
++
++2003-07-01 14:28 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - put /usr/bin/userdrake in file
++
++2003-06-30 14:13 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - disable warnings when releasing (debug purpose)
++
++2003-06-29 22:52 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/fi.po, po/uk.po: updated po files
++
++2003-06-29 15:45 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/hi.po: updated po file
++
++2003-06-28 20:53 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/sq.po, po/userdrake.pot, po/userdrake2.pot: updated po file
++
++2003-06-28 15:05 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ja.po, po/nb.po, po/no.po, po/ro.po: updated po files
++
++2003-06-27 19:26 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/Makefile.PL: - cleanup
++
++2003-06-27 19:21 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - remove trailing string
++
++2003-06-27 19:18 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - need testing
++
++2003-06-27 19:03 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - fix prefix
++
++2003-06-27 19:02 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * po/Makefile: - fix
++
++2003-06-27 18:54 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * Makefile: - meuh
++
++2003-06-27 18:28 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * Makefile: - ln stuffs for normal users and drakconf
++
++2003-06-27 18:22 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - mv ln to Makefile
++
++2003-06-27 18:19 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - change position for ln
++
++2003-06-27 18:17 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - Check the context before enumerating users
++ (avoir die assertion in gtk)
++ - link %%_bindir/userdrake to %%_sbindir/userdrake (for normal
++ users and drakconf)
++
++2003-06-27 18:11 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - readded userdrake (ca me gonfle)
++
++2003-06-27 18:09 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - resync file
++
++2003-06-27 17:59 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - changes on po
++
++2003-06-27 17:58 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: *** empty log message ***
++
++2003-06-27 17:23 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - fix translation crash
++
++2003-06-27 17:05 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - no warnings when $ctx is about to be defined
++
++2003-06-27 12:53 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po, po/az.po, po/bg.po, po/bs.po, po/ca.po, po/cs.po,
++ po/cy.po, po/da.po, po/de.po, po/el.po, po/eo.po, po/es.po,
++ po/et.po, po/eu.po, po/fi.po, po/fr.po, po/ga.po, po/gl.po,
++ po/he.po, po/hi.po, po/hr.po, po/hu.po, po/id.po, po/it.po,
++ po/ja.po, po/ka.po, po/ko.po, po/lt.po, po/lv.po, po/mk.po,
++ po/mn.po, po/ms.po, po/mt.po, po/nl.po, po/no.po, po/pl.po,
++ po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po, po/sk.po, po/sl.po,
++ po/sq.po, po/sr.po, po/sr@Latn.po, po/sv.po, po/ta.po, po/tg.po,
++ po/tr.po, po/uk.po, po/userdrake2.pot, po/uz.po, po/vi.po,
++ po/wa.po, po/zh_CN.po, po/zh_TW.po: updated pot file
++
++2003-06-27 12:26 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * Makefile: - s/userdrake2/userdrake/
++
++2003-06-27 12:22 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * Makefile: - s/userdrake2/userdrake/
++
++2003-06-27 12:22 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * po/POTFILES.in: - s/userdrake/userdrake2/
++
++2003-06-27 11:22 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - userdrake superseeded userdake2
++
++2003-06-27 11:22 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake2: - remove userdrake2
++
++2003-06-27 07:16 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * Makefile, userdrake.spec, userdrake2: - sanity checks
++
++2003-06-26 20:48 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ja.po: updated po file
++
++2003-06-26 12:50 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po, po/az.po, po/bg.po, po/bs.po, po/ca.po, po/cs.po,
++ po/cy.po, po/da.po, po/de.po, po/el.po, po/eo.po, po/es.po,
++ po/et.po, po/eu.po, po/fi.po, po/fr.po, po/ga.po, po/gl.po,
++ po/he.po, po/hi.po, po/hr.po, po/hu.po, po/id.po, po/it.po,
++ po/ja.po, po/ka.po, po/ko.po, po/lt.po, po/lv.po, po/mk.po,
++ po/mn.po, po/ms.po, po/mt.po, po/nl.po, po/no.po, po/pl.po,
++ po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po, po/sk.po, po/sl.po,
++ po/sq.po, po/sr.po, po/sr@Latn.po, po/sv.po, po/ta.po, po/tg.po,
++ po/tr.po, po/uk.po, po/uz.po, po/vi.po, po/wa.po, po/zh_CN.po,
++ po/zh_TW.po: corrected url
++
++2003-06-26 12:37 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/bg.po, po/cs.po, po/eo.po, po/es.po, po/id.po: updated po
++ files
++
++2003-06-25 12:18 Fabian Mandelbaum &lt;fabman at mandriva.com&gt;
++
++ * po/es.po: Updated Spanish translations
++
++2003-06-25 11:37 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po, po/az.po, po/bg.po, po/bs.po, po/ca.po, po/cs.po,
++ po/cy.po, po/da.po, po/de.po, po/el.po, po/eo.po, po/es.po,
++ po/et.po, po/eu.po, po/fi.po, po/fr.po, po/ga.po, po/gl.po,
++ po/he.po, po/hi.po, po/hr.po, po/hu.po, po/id.po, po/it.po,
++ po/ja.po, po/ka.po, po/ko.po, po/lt.po, po/lv.po, po/mk.po,
++ po/mn.po, po/ms.po, po/mt.po, po/nl.po, po/no.po, po/pl.po,
++ po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po, po/sk.po, po/sl.po,
++ po/sq.po, po/sr.po, po/sr@Latn.po, po/sv.po, po/ta.po, po/tg.po,
++ po/tr.po, po/uk.po, po/uz.po, po/vi.po, po/wa.po, po/zh_CN.po,
++ po/zh_TW.po: aded info on web interface
++
++2003-06-25 11:00 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po, po/fr.po, po/pt.po, po/userdrake2.pot: updated po files
++
++2003-06-24 14:50 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - revert back to userdrake2
++
++2003-06-24 14:44 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * Makefile: - revert back to userdrake2
++
++2003-06-24 13:58 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * Makefile: s/userdrake2/userdrake
++
++2003-06-24 13:53 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - sanity checks
++
++2003-06-24 13:43 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake2: - check if group is empty before doing operation on
++ it
++
++2003-06-24 08:56 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - locale bug
++ - pos
++
++2003-06-24 08:54 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * po/fr.po: - correct conflicts in fr.po
++
++2003-06-24 08:51 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - add tranlations
++
++2003-06-24 08:07 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - remove trailing rm -rf buildroot
++
++2003-06-23 23:54 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po, po/az.po, po/bg.po, po/bs.po, po/ca.po, po/cs.po,
++ po/cy.po, po/da.po, po/de.po, po/el.po, po/eo.po, po/es.po,
++ po/et.po, po/eu.po, po/fi.po, po/fr.po, po/ga.po, po/gl.po,
++ po/he.po, po/hi.po, po/hr.po, po/hu.po, po/id.po, po/it.po,
++ po/ja.po, po/ka.po, po/ko.po, po/lt.po, po/lv.po, po/mk.po,
++ po/mn.po, po/ms.po, po/mt.po, po/nl.po, po/no.po, po/pl.po,
++ po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po, po/sk.po, po/sl.po,
++ po/sq.po, po/sr.po, po/sr@Latn.po, po/sv.po, po/ta.po, po/tg.po,
++ po/tr.po, po/uk.po, po/uz.po, po/vi.po, po/wa.po, po/zh_CN.po,
++ po/zh_TW.po: updated po files
++
++2003-06-23 18:50 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/wa.po: updated po file
++
++2003-06-23 16:56 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/userdrake2.pot: added pot file
++
++2003-06-23 16:54 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po, po/az.po, po/bg.po, po/bs.po, po/ca.po, po/cs.po,
++ po/cy.po, po/da.po, po/de.po, po/el.po, po/eo.po, po/es.po,
++ po/et.po, po/eu.po, po/fi.po, po/fr.po, po/ga.po, po/gl.po,
++ po/he.po, po/hi.po, po/hr.po, po/hu.po, po/id.po, po/it.po,
++ po/ja.po, po/ka.po, po/ko.po, po/lt.po, po/lv.po, po/mk.po,
++ po/mn.po, po/ms.po, po/mt.po, po/nl.po, po/no.po, po/pl.po,
++ po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po, po/sk.po, po/sl.po,
++ po/sq.po, po/sr.po, po/sr@Latn.po, po/sv.po, po/ta.po, po/tg.po,
++ po/tr.po, po/uk.po, po/uz.po, po/vi.po, po/wa.po, po/zh_CN.po,
++ po/zh_TW.po: Took translations from old userdrake
++
++2003-06-23 15:07 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake2: - shadow sanity checks
++
++2003-06-23 14:59 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake2: - use int to make SViOK succeded
++
++2003-06-23 14:47 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake2: - fix warning
++
++2003-06-23 14:37 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs, userdrake2: - Correct bug from converting NV to IV
++ (Warly)
++
++2003-06-23 11:51 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.pm, userdrake.spec: - bump version to 0.92
++
++2003-06-23 11:50 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake2: - change version to next release 0.92
++
++2003-06-23 11:47 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: s/userdrake2/userdrake/
++
++2003-06-23 11:29 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * Makefile: - rename userdrake to userdrake2
++
++2003-06-23 11:28 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * Makefile: - alias userdrake userdrake2
++
++2003-06-23 11:22 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake2: - password expiration sanity checks
++
++2003-06-23 11:10 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - correct typo
++
++2003-06-23 11:09 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - final release
++
++2003-06-23 10:59 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - Buildrequires libuser-devel
++
++2003-06-23 10:58 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - require libuser &gt; 0.51.7-2mdk
++
++2003-06-23 10:54 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake2: - release cleanup
++
++2003-06-23 10:51 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake2: - release version
++
++2003-06-23 10:51 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs: - disable debugging
++
++2003-06-23 10:48 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - add RELEASE_NOTES
++
++2003-06-23 10:47 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * RELEASE_NOTES: - update release notes
++
++2003-06-23 10:41 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs, userdrake2: - final release
++ - enable search
++
++2003-06-19 16:40 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake2: - Password aging
++
++2003-06-19 16:39 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs: - misc fixes
++
++2003-06-19 08:45 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs: - unlock , islocked and lock implementations
++
++2003-06-19 08:19 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * RELEASE_NOTES: - release notes
++
++2003-06-19 07:45 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake2: - Locking implementation
++
++2003-06-18 16:31 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake2: - expiration account
++
++2003-06-18 10:22 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake2: - Primary group should be set in combo first.
++ - Append selected group in combo and grow the list
++
++2003-06-18 10:21 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - date of release
++
++2003-06-17 13:36 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - Release is near
++
++2003-06-12 16:08 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake2: - clean up
++
++2003-06-12 16:04 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake2: - select at first click
++
++2003-06-11 17:46 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake2: - password aging
++ - add group to users
++ - use Pixbuf Cell instead of Toggle
++
++2003-06-10 09:58 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * Makefile: - add icons for selection groups and users
++
++2003-06-07 11:01 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * pixmaps/userdrake.png: - add png file (for about window)
++
++2003-06-06 17:16 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs: - ask to remove directory when removing user
++
++2003-06-06 17:16 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake2: - ask to remove home directory when removing user
++
++2003-06-05 17:18 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs, userdrake2: - delete group when deleting user
++
++2003-06-05 10:57 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake2: - cosmetic fixes
++
++2003-06-05 08:42 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake2: - add home directory and populate it.
++ - delete home when deleting user
++
++2003-06-05 08:41 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs: - add home directory on request and populate it
++ (/etc/skel)
++
++2003-06-02 17:03 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs: - same func for get and set
++ - (-65533) as an invalid number
++ - sanity checks
++
++2003-06-02 17:02 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake2: - same function to get or set attributes
++ - use -65533 as an invalid number
++ - more sanity checks
++
++2003-05-28 17:23 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs: - sanity checks
++
++2003-05-28 17:22 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake2: - sanity checks (password and regex username)
++
++2003-05-27 12:02 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs: - useradd sanity checks
++
++2003-05-27 12:02 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake2: - sanity checks for useradd
++
++2003-05-23 15:01 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake2: - s/get_user_shells/GetUserShells/
++
++2003-05-23 12:51 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs: - LookupById implementations (for lu_user and
++ lu_group)
++
++2003-05-23 12:50 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.prefs: - User preference default
++
++2003-05-23 12:49 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake2: - Life is sad (implement another way of filtering)
++
++2003-05-20 09:37 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - add sysconfig file (/etc/sysconfig/userdrake)
++
++2003-05-20 09:35 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs: - big updates
++
++2003-05-20 09:35 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake2: - Big Updates
++ o Filter Users
++ o Group members
++ o Refresh func
++
++2003-05-16 12:40 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs: - bless eachiindex of returned ent arrays
++
++2003-05-13 12:49 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs: - use lu_start to build the opaque admin object
++
++2003-05-13 12:27 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs: - call lu_start with &amp;error
++
++2003-05-12 12:52 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs: *** empty log message ***
++
++2003-05-12 12:01 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake2: *** empty log message ***
++
++2003-04-30 07:46 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs, userdrake2: *** empty log message ***
++
++2003-04-29 14:27 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake2: *** empty log message ***
++
++2003-04-29 09:13 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs: - hunting segfault
++
++2003-04-28 12:49 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs: - sanity check
++
++2003-04-28 09:58 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/Makefile.PL: - updates libs
++
++2003-04-25 15:47 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs: - update
++
++2003-04-25 07:13 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * AUTHORS: - add AUTHORS file
++
++2003-04-25 07:12 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * COPYING, README: - add README + COPYING
++
++2003-04-25 07:12 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * po/fake_c.pl, po/fr.po: - add po stuffs
++
++2003-04-24 17:00 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - update
++
++2003-04-24 16:55 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/Makefile.PL, USER/USER.xs: - libuser update
++
++2003-04-24 14:34 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.pm: - correct typo
++
++2003-04-24 13:25 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.pm: - fix typo
++
++2003-04-24 12:24 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: change prefix to _prefix
++
++2003-04-24 12:01 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: s/2//
++
++2003-04-24 09:55 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake2: - use USER
++
++2003-04-24 09:55 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - correct typo
++
++2003-04-24 09:33 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * po/POTFILES.in: - POTFILES
++
++2003-04-24 09:27 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * po, po/Makefile: - Makefile for po
++
++2003-04-24 09:13 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs: - get_user_shells
++
++2003-04-24 09:09 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - update
++ - include perl xs file
++
++2003-04-23 16:05 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/Makefile.PL: - s/libuser/luser/
++
++2003-04-23 16:04 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs: - compiling and testing
++
++2003-04-23 14:07 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/typemap: - use of O_OBJECT pointing on ref
++
++2003-04-23 14:06 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs: - update (broken)
++
++2003-04-04 15:32 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs: - update broken code
++
++2003-03-27 17:38 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs: - lu_start
++
++2003-03-27 10:46 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * Makefile, perlobject.map, userdrake.spec, userdrake2: - commit
++ important files
++
++2003-03-27 10:45 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER, USER/Changes, USER/Makefile.PL, USER/README, USER/USER.pm,
++ USER/USER.xs, USER/ppport.h, USER/typemap: - add library files
++
++2003-03-27 10:42 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * icons, icons/userdrake16.png, icons/userdrake32.png,
++ icons/userdrake48.png, pixmaps, pixmaps/group_add.png,
++ pixmaps/help.png, pixmaps/redhat-config-users.png,
++ pixmaps/refresh.png, pixmaps/user_add.png, pixmaps/user_conf.png,
++ pixmaps/user_del.png: - add png files
++
++2003-03-27 10:42
++
++ * soft/userdrake2/branches, soft/userdrake2/tags, .: New repository
++ initialized by cvs2svn.
++
+
+<a id="userdrake2tags1133Makefile">Added: userdrake2/tags/1.13.3/Makefile</a>
+===================================================================
+--- userdrake2/tags/1.13.3/Makefile (rev 0)
++++ userdrake2/tags/1.13.3/Makefile 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,51 @@
++
++VERSION = 1.13.3
++NAME = userdrake
++BINNAME = userdrake
++
++PREFIX = /
++DATADIR = $(PREFIX)/usr/share
++ICONSDIR = $(DATADIR)/icons
++SBINDIR = $(PREFIX)/usr/sbin
++BINDIR = $(PREFIX)/usr/bin
++SYSCONFDIR = $(PREFIX)/etc/sysconfig
++SBINREL = ../sbin
++
++SUBDIRS = po
++localedir = $(prefix)/usr/share/locale
++
++all: userdrake
++ for d in $(SUBDIRS); do ( cd $$d ; make $@ ) ; done
++
++clean:
++ $(MAKE) -C po $@
++ rm -f core .#*[0-9]
++ for d in $(SUBDIRS); do ( cd $$d ; make $@ ) ; done
++
++install: all
++ $(MAKE) -C po $@
++ install -d $(PREFIX)/{/etc/sysconfig,usr/{bin,sbin,share/$(NAME)/pixmaps,share/icons/{mini,large}}}
++ install -m755 $(NAME) $(SBINDIR)/
++ ln -sf $(SBINREL)/userdrake $(BINDIR)/userdrake
++ ln -sf $(SBINREL)/userdrake $(SBINDIR)/drakuser
++ install -d $(SYSCONFDIR)
++ install -m644 userdrake.prefs $(SYSCONFDIR)/userdrake
++ install -m644 pixmaps/*.png $(DATADIR)/$(NAME)/pixmaps
++ install -m644 icons/$(NAME)16.png $(ICONSDIR)/mini/$(NAME).png
++ install -m644 icons/$(NAME)32.png $(ICONSDIR)/$(NAME).png
++ install -m644 icons/$(NAME)48.png $(ICONSDIR)/large/$(NAME).png
++ install -m644 icons/*selec*.png $(DATADIR)/$(NAME)/pixmaps
++ for d in $(SUBDIRS); do ( cd $$d ; make $@ ) ; done
++
++dis: clean
++ rm -rf $(NAME)-$(VERSION) ../$(NAME)-$(VERSION).tar*
++ svn export -q -rBASE . $(NAME)-$(VERSION)
++ find $(NAME)-$(VERSION) -name .svnignore |xargs rm -rf
++ tar cfY ../$(NAME)-$(VERSION).tar.lzma $(NAME)-$(VERSION)
++ rm -rf $(NAME)-$(VERSION)
++
++.PHONY: ChangeLog
++ChangeLog:
++ svn2cl --accum --authors ../../soft/common/username.xml
++ rm -f *.bak
++ svn commit -m &quot;Generated by svn2cl the `LC_TIME=C date '+%d_%b'`&quot; ChangeLog
+
+
+Property changes on: userdrake2/tags/1.13.3/Makefile
+___________________________________________________________________
+<a id="svneolstyle">Added: svn:eol-style</a>
+ + native
+
+<a id="userdrake2tags1133NEWS">Added: userdrake2/tags/1.13.3/NEWS</a>
+===================================================================
+--- userdrake2/tags/1.13.3/NEWS (rev 0)
++++ userdrake2/tags/1.13.3/NEWS 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,34 @@
++Version 1.13.2 - 22 July 2010, Pascal Terjan
++
++- define PACKAGE_NAME, it is used by libuser definition of _
++
++Version 1.13.1 - 26 May 2010, Pascal Terjan
++
++- update translations
++
++Version 1.13 - 2 February 2010, Christophe Fergeau
++
++- do not crash when trying to rename a user to an already existing name
++- make libuser binding i18n aware
++- refactorization for readability (please test)
++- use libuser translations
++
++Version 1.12 - 21 October 2009, Christophe Fergeau
++
++- refresh user list when adding/removing xguest
++
++Version 1.11 - 8 September 2009, Aurelien Lefebvre
++
++- enable to install/uninstall xguest account from 'actions' menu (#54498)
++
++Version 1.10 - 8 September 2009, Aurelien Lefebvre
++
++- added password weakness check (require &gt;= drakx-12.49)
++
++Version 1.9.1 - 15 April 2009, Thierry Vignaud
++
++- translation updates
++
++Version 1.9 - 30 March 2009, Thierry Vignaud
++
++- do not crash if some face images are missing (#45024)
+
+<a id="userdrake2tags1133README">Added: userdrake2/tags/1.13.3/README</a>
+===================================================================
+--- userdrake2/tags/1.13.3/README (rev 0)
++++ userdrake2/tags/1.13.3/README 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,6 @@
++Userdrake version II
++
++Changes
++- Big rewritting
++- Port to perl-GTK2
++
+
+<a id="userdrake2tags1133RELEASE_NOTES">Added: userdrake2/tags/1.13.3/RELEASE_NOTES</a>
+===================================================================
+--- userdrake2/tags/1.13.3/RELEASE_NOTES (rev 0)
++++ userdrake2/tags/1.13.3/RELEASE_NOTES 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,25 @@
++A new version of userdrake is released. It is completly
++rewritten from C to Perl (More precisely Gui is now in perl-Gtk2
++and backend is in XS). the XS part relies on libuser.
++The new userdrake comes with many features and the Gui is now more
++consistent (isn't it?).
++Some of the features are:
++
++- Easy way to add/remove users in groups and vice versa
++- Dialog box for deleting user's home and user mail spool when removing user
++- libuser API (security when accessing users files)
++- Ability to put Uid and Gid manually when adding user/group
++- Change of the primary group of users
++- 2 filters for system and normal users (pattern matching)
++- Password aging
++- Ability to lock user's account
++- User's account expiration
++...
++
++Missing features:
++- LDAP configuration (coming up)
++
++userdrake2 requires libuser1-0.51.7-2mdk.i586.rpm or higher to work properly
++
++Please test and report bug.
++
+
+<a id="userdrake2tags1133USERChanges">Added: userdrake2/tags/1.13.3/USER/Changes</a>
+===================================================================
+--- userdrake2/tags/1.13.3/USER/Changes (rev 0)
++++ userdrake2/tags/1.13.3/USER/Changes 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,6 @@
++Revision history for Perl extension userdrake.
++
++0.01 Fri Feb 28 15:36:17 2003
++ - original version; created by h2xs 1.22 with options
++ -A -n userdrake
++
+
+<a id="userdrake2tags1133USERMakefilePL">Added: userdrake2/tags/1.13.3/USER/Makefile.PL</a>
+===================================================================
+--- userdrake2/tags/1.13.3/USER/Makefile.PL (rev 0)
++++ userdrake2/tags/1.13.3/USER/Makefile.PL 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,18 @@
++use ExtUtils::MakeMaker;
++$Verbose=1;
++# See lib/ExtUtils/MakeMaker.pm for details of how to influence
++# the contents of the Makefile that is written.
++my $libs = &quot;&quot; . `pkg-config --libs libuser`;
++chomp $libs;
++$libs .= &quot;-lpam_misc -lpam &quot;;
++WriteMakefile(
++ 'NAME' =&gt; 'USER',
++ 'OPTIMIZE' =&gt; '-Wno-declaration-after-statement',
++ 'VERSION_FROM' =&gt; 'USER.pm',
++ 'OBJECT' =&gt; 'USER.o', # link all the C files too
++ 'LIBS' =&gt; &quot;$libs&quot;, # e.g., '-lm'
++ 'DEFINE' =&gt; '-DPACKAGE_NAME=\&quot;userdrake\&quot;', # e.g., '-DHAVE_SOMETHING'
++ 'INC' =&gt; &quot;`pkg-config --cflags libuser`&quot;, # e.g., '-I. -I/usr/include/other'
++ 'XSPROTOARG' =&gt; '-noprototypes',
++ 'TYPEMAPS' =&gt; ['../perlobject.map' ],
++);
+
+<a id="userdrake2tags1133USERREADME">Added: userdrake2/tags/1.13.3/USER/README</a>
+===================================================================
+--- userdrake2/tags/1.13.3/USER/README (rev 0)
++++ userdrake2/tags/1.13.3/USER/README 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,38 @@
++userdrake version 0.01
++======================
++
++The README is used to introduce the module and provide instructions on
++how to install the module, any machine dependencies it may have (for
++example C compilers and installed libraries) and any other information
++that should be provided before the module is installed.
++
++A README file is required for CPAN modules since CPAN extracts the
++README file from a module distribution so that people browsing the
++archive can use it get an idea of the modules uses. It is usually a
++good idea to provide version information here so that people can
++decide whether fixes for the module are worth downloading.
++
++INSTALLATION
++
++To install this module type the following:
++
++ perl Makefile.PL
++ make
++ make test
++ make install
++
++DEPENDENCIES
++
++This module requires these other modules and libraries:
++
++ blah blah blah
++
++COPYRIGHT AND LICENCE
++
++Put the correct copyright and licence information here.
++
++Copyright (C) 2003 daouda
++
++This library is free software; you can redistribute it and/or modify
++it under the same terms as Perl itself.
++
+
+<a id="userdrake2tags1133USERUSERpm">Added: userdrake2/tags/1.13.3/USER/USER.pm</a>
+===================================================================
+--- userdrake2/tags/1.13.3/USER/USER.pm (rev 0)
++++ userdrake2/tags/1.13.3/USER/USER.pm 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,71 @@
++package USER;
++
++use strict;
++require DynaLoader;
++
++our @ISA = qw(DynaLoader);
++our $VERSION = '0.92';
++
++USER-&gt;bootstrap($VERSION);
++
++# Preloaded methods go here.
++
++package USER::ADMIN;
++our @ISA = qw();
++
++package USER::ENT;
++our @ISA = qw();
++
++1;
++__END__
++# Below is stub documentation for your module. You'd better edit it!
++
++=head1 NAME
++
++USER - Perl extension for libuser API
++
++=head1 SYNOPSIS
++
++ use USER;
++
++=head1 ABSTRACT
++
++ A user and group account administration library
++
++=head1 DESCRIPTION
++
++ The libuser library implements a standardized interface for manipulating
++ and administering user and group accounts. The library uses pluggable
++ back-ends to interface to its data sources.
++ This is the perl Extension for libuser. It is mostly used by userdrake
++ which is a GUI for user and groups administration
++
++=head2 EXPORT
++
++None by default.
++
++
++
++=head1 SEE ALSO
++
++Mention other useful documentation such as the documentation of
++related modules or operating system documentation (such as man pages
++in UNIX), or any relevant external documentation such as RFCs or
++standards.
++
++If you have a mailing list set up for your module, mention it here.
++
++If you have a web site set up for your module, mention it here.
++
++=head1 AUTHOR
++
++Daouda LO, E&lt;lt&gt;daouda@mandrakesoft.comE&lt;gt&gt;
++
++=head1 COPYRIGHT AND LICENSE
++
++Copyright 2003 by Mandrakesoft SA
++
++This library is free software; you can redistribute it and/or modify
++it under the same terms as Perl itself.
++
++=cut
+
+<a id="userdrake2tags1133USERUSERxs">Added: userdrake2/tags/1.13.3/USER/USER.xs</a>
+===================================================================
+--- userdrake2/tags/1.13.3/USER/USER.xs (rev 0)
++++ userdrake2/tags/1.13.3/USER/USER.xs 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,1385 @@
++/* Copyright (C) 2003-2005 Mandriva SA Daouda Lo (daouda)
++ * This program is free software; you can redistribute it and/or
++ * modify it under the same terms as Perl itself.
++ */
++
++#include &quot;EXTERN.h&quot;
++#include &quot;perl.h&quot;
++#include &quot;XSUB.h&quot;
++
++#include &quot;ppport.h&quot;
++
++#include &lt;grp.h&gt;
++#include &lt;pwd.h&gt;
++#include &lt;crypt.h&gt;
++#include &lt;ctype.h&gt;
++#include &lt;dirent.h&gt;
++#include &lt;fcntl.h&gt;
++#include &lt;locale.h&gt;
++#include &lt;limits.h&gt;
++#include &lt;sys/signal.h&gt;
++#include &lt;sys/stat.h&gt;
++#include &lt;sys/types.h&gt;
++#include &lt;sys/time.h&gt;
++#include &lt;stdio.h&gt;
++#include &lt;stdlib.h&gt;
++#include &lt;string.h&gt;
++#include &lt;unistd.h&gt;
++#include &lt;glib.h&gt;
++#include &lt;utime.h&gt;
++#include &lt;libuser/user.h&gt;
++#include &lt;libuser/user_private.h&gt;
++
++
++
++#define INVALID (-0x80000000)
++#ifndef _
++#define _(String) gettext(String)
++#endif
++#ifndef N_
++#define N_(String) (String)
++#endif
++
++typedef struct context USER__ADMIN;
++typedef struct lu_ent USER__ENT;
++typedef struct lu_error USER__ERR;
++
++static SV ** convert_value_array_list(register SV **sp, GValueArray *array) {
++ GValue *value;
++ int i;
++ long l;
++ const char *s;
++ for (i = 0; (array != NULL) &amp;&amp; (i &lt; array-&gt;n_values); i++) {
++ value = g_value_array_get_nth(array, i);
++ /* If the item is a G_TYPE_LONG, add it as a double. */
++ if (G_VALUE_HOLDS_LONG(value)) {
++ l = g_value_get_long(value);
++ XPUSHs(sv_2mortal(newSViv(l)));
++ } else if (G_VALUE_HOLDS_STRING(value)) {
++ s = g_value_get_string(value);
++ XPUSHs(sv_2mortal(newSVpv(s, 0)));
++ }
++ }
++ return sp;
++}
++
++/* Populate a user's home directory, copying data from a named skeleton
++ * directory, setting all ownerships as given, and setting the mode of
++ * the top-level directory as given. */
++int
++lu_homedir_populate(const char *skeleton, const char *directory,
++ uid_t owner, gid_t group, mode_t mode,
++ USER__ERR **error)
++{
++ struct dirent *ent;
++ DIR *dir;
++ struct stat st;
++ char skelpath[PATH_MAX], path[PATH_MAX], buf[PATH_MAX];
++ struct utimbuf timebuf;
++ int ifd = -1, ofd = -1, i;
++ off_t offset;
++ LU_ERROR_CHECK(error);
++ /* If the destination directory exists, return. */
++ dir = opendir(skeleton);
++ if (dir == NULL) {
++ lu_error_new(error, lu_error_generic,
++ _(&quot;Error reading `%s': %s&quot;), skeleton,
++ strerror(errno));
++ return 0;
++ }
++ /* Create the top-level directory. */
++ if ((mkdir(directory, mode) == -1) &amp;&amp; (errno != EEXIST)) {
++ lu_error_new(error, lu_error_generic,
++ _(&quot;Error creating `%s': %s&quot;), directory,
++ strerror(errno));
++ closedir(dir);
++ return 0;
++ }
++ /* Set the ownership on the top-level directory. */
++ chown(directory, owner, group);
++ while ((ent = readdir(dir)) != NULL) {
++ /* Iterate through each item in the directory. */
++ /* Skip over self and parent hard links. */
++ if (strcmp(ent-&gt;d_name, &quot;.&quot;) == 0) {
++ continue;
++ }
++ if (strcmp(ent-&gt;d_name, &quot;..&quot;) == 0) {
++ continue;
++ }
++ /* Build the path of the skeleton file or directory and
++ * its corresponding member in the new tree. */
++ snprintf(skelpath, sizeof(skelpath), &quot;%s/%s&quot;,
++ skeleton, ent-&gt;d_name);
++ snprintf(path, sizeof(path), &quot;%s/%s&quot;, directory,
++ ent-&gt;d_name);
++ /* What we do next depends on the type of entry we're
++ * looking at. */
++ if (lstat(skelpath, &amp;st) != -1) {
++ /* We always want to preserve atime/mtime. */
++ timebuf.actime = st.st_atime;
++ timebuf.modtime = st.st_mtime;
++ /* If it's a directory, descend into it. */
++ if (S_ISDIR(st.st_mode)) {
++ if (!lu_homedir_populate(skelpath,
++ path,
++ owner,
++ st.st_gid ?: group,
++ st.st_mode,
++ error)) {
++ /* Aargh! Fail up. */
++ closedir(dir);
++ return 0;
++ }
++ /* Set the date on the directory. */
++ utime(path, &amp;timebuf);
++ continue;
++ }
++ /* If it's a symlink, duplicate it. */
++ if (S_ISLNK(st.st_mode)) {
++ if (readlink(skelpath, buf,
++ sizeof(buf) - 1) != -1) {
++ buf[sizeof(buf) - 1] = '\0';
++ symlink(buf, path);
++ lchown(path, owner, st.st_gid ?: group);
++ utime(path, &amp;timebuf);
++ }
++ continue;
++ }
++ /* If it's a regular file, copy it. */
++ if (S_ISREG(st.st_mode)) {
++ /* Open both the input and output
++ * files. If we fail to do either,
++ * we have to give up. */
++ ifd = open(skelpath, O_RDONLY);
++ if (ifd != -1) {
++ ofd = open(path,
++ O_EXCL | O_CREAT | O_WRONLY,
++ st.st_mode);
++ }
++ if ((ifd == -1) || (ofd == -1)) {
++ /* Sorry, no can do. */
++ close (ifd);
++ close (ofd);
++ continue;
++ }
++ /* Now just copy the data. */
++ do {
++ i = read(ifd, &amp;buf, sizeof(buf));
++ if (i &gt; 0) {
++ write(ofd, buf, i);
++ }
++ } while (i &gt; 0);
++ /* Close the files. */
++ offset = lseek(ofd, 0, SEEK_CUR);
++ if (offset != ((off_t) -1)) {
++ ftruncate(ofd, offset);
++ }
++ close (ifd);
++ close (ofd);
++ /* Set the ownership and timestamp on
++ * the new file. */
++ chown(path, owner, st.st_gid ?: group);
++ utime(path, &amp;timebuf);
++ continue;
++ }
++ /* Note that we don't copy device specials. */
++ }
++ }
++ closedir(dir);
++ return 1;
++}
++
++/* Recursively remove a user's home (or really, any) directory. */
++int
++lu_homedir_remove(const char *directory, struct lu_error ** error)
++{
++ struct dirent *ent;
++ DIR *dir;
++ struct stat st;
++ char path[PATH_MAX];
++ LU_ERROR_CHECK(error);
++ /* Open the directory. This catches the case that it's already gone. */
++ dir = opendir(directory);
++ if (dir == NULL) {
++ lu_error_new(error, lu_error_stat,
++ _(&quot;Error removing `%s': %s&quot;), directory,
++ strerror(errno));
++ return 0;
++ }
++ /* Iterate over all of its contents. */
++ while ((ent = readdir(dir)) != NULL) {
++ /* Skip over the self and parent hard links. */
++ if (strcmp(ent-&gt;d_name, &quot;.&quot;) == 0) {
++ continue;
++ }
++ if (strcmp(ent-&gt;d_name, &quot;..&quot;) == 0) {
++ continue;
++ }
++ /* Generate the full path of the next victim. */
++ snprintf(path, sizeof(path), &quot;%s/%s&quot;, directory, ent-&gt;d_name);
++ /* What we do next depends on whether or not the next item to
++ * remove is a directory. */
++ if (lstat(path, &amp;st) != -1) {
++ if (S_ISDIR(st.st_mode)) {
++ /* We decend into subdirectories... */
++ if (lu_homedir_remove(path, error) == FALSE) {
++ closedir(dir);
++ return 0;
++ }
++ } else {
++ /* ... and unlink everything else. */
++ if (unlink(path) == -1) {
++ lu_error_new(error,
++ lu_error_generic,
++ _(&quot;Error removing &quot;
++ &quot;`%s': %s&quot;),
++ path,
++ strerror
++ (errno));
++ closedir(dir);
++ return 0;
++ }
++ }
++ }
++ }
++ closedir(dir);
++
++ /* As a final step, remove the directory itself. */
++ if (rmdir(directory) == -1) {
++ lu_error_new(error, lu_error_generic,
++ _(&quot;Error removing `%s': %s&quot;), directory,
++ strerror(errno));
++ return 0;
++ }
++
++ return 1;
++}
++/* Move a directory from one place to another. */
++int
++lu_homedir_move(const char *oldhome, const char *newhome,
++ USER__ERR ** error)
++{
++ struct stat st;
++ LU_ERROR_CHECK(error);
++ /* If the directory exists... */
++ if (stat(oldhome, &amp;st) != -1) {
++ /* ... and we can copy it ... */
++ if (lu_homedir_populate(oldhome, newhome,
++ st.st_uid, st.st_gid, st.st_mode,
++ error)) {
++ /* ... remove the old one. */
++ return lu_homedir_remove(oldhome, error);
++ }
++ }
++ return 0;
++}
++/* Concatenate a string onto another string on the heap. */
++char *
++lu_strconcat(char *existing, const char *appendee)
++{
++ char *tmp;
++ if (existing == NULL) {
++ existing = g_strdup(appendee);
++ } else {
++ tmp = g_strconcat(existing, appendee, NULL);
++ g_free(existing);
++ existing = tmp;
++ }
++ return existing;
++}
++/* Send nscd an arbitrary signal. */
++void
++lu_signal_nscd(int signum)
++{
++ FILE *fp;
++ char buf[LINE_MAX];
++ /* If it's running, then its PID is in this file. Open it. */
++ if ((fp = fopen(&quot;/var/run/nscd.pid&quot;, &quot;r&quot;)) != NULL) {
++ /* Read the PID. */
++ memset(buf, 0, sizeof(buf));
++ fgets(buf, sizeof(buf), fp);
++ /* If the PID is sane, send it a signal. */
++ if (strlen(buf) &gt; 0) {
++ pid_t pid = atol(buf);
++ if (pid != 0) {
++ kill(pid, signum);
++ }
++ }
++ fclose(fp);
++ }
++}
++
++/* Send nscd a SIGHUP. */
++void
++lu_hup_nscd()
++{
++ lu_signal_nscd(SIGHUP);
++}
++
++/* Create a mail spool for the user. */
++int
++lu_mailspool_create_remove(USER__ADMIN *ctx, USER__ENT *ent,
++ int action)
++{
++ GValueArray *array;
++ GValue *value;
++ const char *spooldir;
++ long uid, gid;
++ char *p, *username;
++ struct group grp, *err;
++ USER__ENT *groupEnt;
++ USER__ERR *error = NULL;
++ char buf[LINE_MAX * 4];
++ int fd;
++
++ /* Find the GID of the owner of the file. */
++ gid = INVALID;
++ groupEnt = lu_ent_new();
++ if (lu_group_lookup_name(ctx, &quot;mail&quot;, groupEnt, &amp;error)) {
++ array = lu_ent_get(groupEnt, LU_GIDNUMBER);
++ if (array != NULL) {
++ value = g_value_array_get_nth(array, 0);
++ if (G_VALUE_HOLDS_LONG(value)) {
++ gid = g_value_get_long(value);
++ } else
++ if (G_VALUE_HOLDS_STRING(value)) {
++ gid = strtol(g_value_get_string(value), &amp;p, 0);
++ if (*p != '\0') {
++ gid = INVALID;
++ }
++ } else {
++ g_assert_not_reached();
++ }
++ }
++ }
++ lu_ent_free(groupEnt);
++
++ /* Er, okay. Check with libc. */
++ if (gid == INVALID) {
++ if ((getgrnam_r(&quot;mail&quot;, &amp;grp, buf, sizeof(buf), &amp;err) == 0) &amp;&amp;
++ (err == &amp;grp)) {
++ gid = grp.gr_gid;
++ }
++ }
++
++ /* Aiieee. Use the user's group. */
++ if (gid == INVALID) {
++ array = lu_ent_get(ent, LU_GIDNUMBER);
++ if (array != NULL) {
++ value = g_value_array_get_nth(array, 0);
++ if (G_VALUE_HOLDS_LONG(value)) {
++ gid = g_value_get_long(value);
++ } else
++ if (G_VALUE_HOLDS_STRING(value)) {
++ gid = strtol(g_value_get_string(value), &amp;p, 0);
++ if (*p == '\0') {
++ gid = INVALID;
++ }
++ } else {
++ g_warning(&quot;Unable to determine user's GID.&quot;);
++ g_assert_not_reached();
++ }
++ }
++ }
++ g_return_val_if_fail(gid != INVALID, FALSE);
++
++ /* Now get the user's UID. */
++ array = lu_ent_get(ent, LU_UIDNUMBER);
++ if (array != NULL) {
++ value = g_value_array_get_nth(array, 0);
++ uid = INVALID;
++ if (G_VALUE_HOLDS_LONG(value)) {
++ uid = g_value_get_long(value);
++ } else
++ if (G_VALUE_HOLDS_STRING(value)) {
++ uid = strtol(g_value_get_string(value), &amp;p, 0);
++ if (*p != '\0') {
++ uid = INVALID;
++ }
++ } else {
++ g_warning(&quot;Unable to determine user's UID.&quot;);
++ g_assert_not_reached();
++ }
++ }
++ g_return_val_if_fail(uid != INVALID, FALSE);
++
++ /* Now get the user's login. */
++ username = NULL;
++ array = lu_ent_get(ent, LU_USERNAME);
++ if (array != NULL) {
++ value = g_value_array_get_nth(array, 0);
++ if (G_VALUE_HOLDS_LONG(value)) {
++ username = g_strdup_printf(&quot;%ld&quot;,
++ g_value_get_long(value));
++ } else
++ if (G_VALUE_HOLDS_STRING(value)) {
++ username = g_value_dup_string(value);
++ } else {
++ g_warning(&quot;Unable to determine user's name.&quot;);
++ g_assert_not_reached();
++ }
++ }
++ g_return_val_if_fail(username != NULL, FALSE);
++
++ /* Get the location of the spool directory. */
++ spooldir = lu_cfg_read_single(ctx, &quot;defaults/mailspooldir&quot;,
++ &quot;/var/mail&quot;);
++
++ /* That wasn't that hard. Now we just need to create the file. */
++ p = g_strdup_printf(&quot;%s/%s&quot;, spooldir, username);
++ g_free(username);
++ if (action) {
++ fd = open(p, O_WRONLY | O_CREAT, 0);
++ if (fd != -1) {
++ fchown(fd, uid, gid);
++ fchmod(fd, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP);
++ close(fd);
++ g_free(p);
++ return 1;
++ }
++ } else {
++ if (unlink(p) == 0) {
++ g_free(p);
++ return 1;
++ }
++ if (errno == ENOENT) {
++ g_free(p);
++ return 1;
++ }
++ }
++ g_free(p);
++
++ return 0;
++}
++
++MODULE = USER PACKAGE = USER::ADMIN PREFIX = Admin_
++
++USER::ADMIN *
++Admin_new(CLASS)
++ char *CLASS
++ CODE:
++ USER__ERR *error = NULL;
++ RETVAL = (USER__ADMIN *)lu_start(NULL, 0, NULL, NULL, lu_prompt_console_quiet, NULL, &amp;error);
++ if( RETVAL == NULL ){
++ warn(&quot;unable to malloc USER__ADMIN&quot;);
++ XSRETURN_UNDEF;
++ }
++ OUTPUT:
++ RETVAL
++
++void
++Admin_DESTROY(self)
++ USER::ADMIN *self
++ CODE:
++ if (self) lu_end(self);
++
++int
++Admin_UserAdd(self, ent, is_system, dont_create_home)
++ USER::ADMIN *self
++ USER::ENT *ent
++ int is_system
++ int dont_create_home
++ CODE:
++ USER__ERR *error = NULL;
++ long uidNumber, gidNumber;
++ char *skeleton = &quot;/etc/skel&quot;, *homeDirectory = NULL;
++ GValueArray *values;
++ GValue *value;
++ /* GMOT (Great Moment Of Truth) */
++ if (lu_user_add(self, ent, &amp;error) == FALSE) {
++ croak(_(&quot;Account creation failed: '%s'.\n&quot;), error ? error-&gt;string : &quot;Unknown error&quot;);
++ RETVAL = 0;
++ } else RETVAL = 1 ;
++ if (!dont_create_home) {
++ /* Read the user's UID. */
++ values = lu_ent_get(ent, LU_UIDNUMBER);
++ value = g_value_array_get_nth(values, 0);
++ if (G_VALUE_HOLDS_LONG(value)) {
++ uidNumber = g_value_get_long(value);
++ } else
++ if (G_VALUE_HOLDS_STRING(value)) {
++ uidNumber = atol(g_value_get_string(value));
++ } else {
++ warn(_(&quot;Cannot get Uid number&quot;));
++ }
++
++ /* Read the user's GID. */
++ values = lu_ent_get(ent, LU_GIDNUMBER);
++ value = g_value_array_get_nth(values, 0);
++ if (G_VALUE_HOLDS_LONG(value)) {
++ gidNumber = g_value_get_long(value);
++ } else
++ if (G_VALUE_HOLDS_STRING(value)) {
++ gidNumber = atol(g_value_get_string(value));
++ } else {
++ warn(_(&quot;Cannot retrieve value&quot;));
++ }
++
++ /* Read the user's home directory. */
++ values = lu_ent_get(ent, LU_HOMEDIRECTORY);
++ value = g_value_array_get_nth(values, 0);
++ homeDirectory = g_value_get_string(value);
++
++ if (lu_homedir_populate(skeleton, homeDirectory,
++ uidNumber, gidNumber, 0700,
++ &amp;error) == 0) {
++ warn(_(&quot;Error creating `%s': %s&quot;), homeDirectory, error ? error-&gt;string : &quot;unknown error&quot;);
++ RETVAL = 2;
++ }
++
++ /* Create a mail spool for the user. */
++ if (lu_mailspool_create_remove(self, ent, 1) != 1) {
++ warn(_(&quot;Error creating mail spool.\n&quot;));
++ RETVAL = 3;
++ }
++ }
++ OUTPUT:
++ RETVAL
++
++int
++Admin_IsLocked(self, ent)
++ USER::ADMIN *self
++ USER::ENT *ent
++ CODE:
++ USER__ERR *error = NULL;
++ if (lu_user_islocked(self, ent, &amp;error)) {
++ RETVAL = 1;
++ } else { RETVAL = 0; };
++ OUTPUT:
++ RETVAL
++
++int
++Admin_Lock(self, ent)
++ USER::ADMIN *self
++ USER::ENT *ent
++ CODE:
++ USER__ERR *error = NULL;
++ if (lu_user_lock(self, ent, &amp;error) == FALSE) {
++ RETVAL = 0;
++ } else { RETVAL = 1; };
++ OUTPUT:
++ RETVAL
++
++int
++Admin_UnLock(self, ent)
++ USER::ADMIN *self
++ USER::ENT *ent
++ CODE:
++ USER__ERR *error = NULL;
++ if (lu_user_unlock(self, ent, &amp;error) == FALSE) {
++ RETVAL = 0;
++ } else { RETVAL = 1; };
++ OUTPUT:
++ RETVAL
++
++void
++Admin_UserModify(self, ent)
++ USER::ADMIN *self
++ USER::ENT *ent
++ PPCODE:
++ USER__ERR *error = NULL;
++ if (lu_user_modify(self, ent, &amp;error) == FALSE) {
++ croak(_(&quot;User could not be modified: '%s'.\n&quot;), error ? error-&gt;string : &quot;Unknown error&quot;);
++ }
++
++int
++Admin_UserDel(self, ent)
++ USER::ADMIN *self
++ USER::ENT *ent
++ CODE:
++ USER__ERR *error = NULL;
++ if (lu_user_delete(self, ent, &amp;error) == FALSE) {
++ croak(_(&quot;User Could Not be deleted: '%s'.\n&quot;), error ? error-&gt;string : &quot;Unknown error&quot;);
++ RETVAL = 0;
++ } else RETVAL = 1 ;
++ OUTPUT:
++ RETVAL
++
++void
++Admin_InitUser(self, name, is_system)
++ USER::ADMIN *self
++ char *name
++ int is_system
++ PPCODE:
++ USER__ENT *ent;
++ ent = lu_ent_new();
++ lu_user_default(self, name, is_system, ent);
++ XPUSHs(sv_2mortal(sv_bless(newRV_noinc(newSViv(ent)), gv_stashpv(&quot;USER::ENT&quot;, 1))));
++
++void
++Admin_UserSetPass(self, ent, userPasswd)
++ USER::ADMIN *self
++ USER::ENT *ent
++ char *userPasswd
++ PPCODE:
++ USER__ERR *error = NULL;
++ gboolean crypted = FALSE;
++ if (lu_user_setpass(self, ent, userPasswd, crypted, &amp;error) == FALSE) {
++ croak(_(&quot;Failed to set password: '%s'.\n&quot;), error ? error-&gt;string : _(&quot;unknown error&quot;));
++ if (error) { lu_error_free(&amp;error); }
++ }
++
++void
++Admin_LookupUserByName(self, name)
++ USER::ADMIN *self
++ char *name
++ PPCODE:
++ USER__ENT *ent;
++ USER__ERR *error = NULL;
++ ent = lu_ent_new();
++ if (lu_user_lookup_name(self, name, ent, &amp;error)) {
++ XPUSHs(sv_2mortal(sv_bless(newRV_noinc(newSViv(ent)), gv_stashpv(&quot;USER::ENT&quot;, 1))));
++ } else {
++ lu_ent_free(ent);
++ }
++
++void
++Admin_LookupUserById(self, id)
++ USER::ADMIN *self
++ long id
++ PPCODE:
++ USER__ENT *ent;
++ USER__ERR *error = NULL;
++ ent = lu_ent_new();
++ if (lu_user_lookup_id(self, id, ent, &amp;error)) {
++ XPUSHs(sv_2mortal(sv_bless(newRV_noinc(newSViv(ent)), gv_stashpv(&quot;USER::ENT&quot;, 1))));
++ } else {
++ lu_ent_free(ent);
++ }
++
++void
++Admin_LookupGroupByName(self, name)
++ USER::ADMIN *self
++ char *name
++ PPCODE:
++ USER__ENT *ent;
++ USER__ERR *error = NULL;
++ ent = lu_ent_new();
++ if (lu_group_lookup_name(self, name, ent, &amp;error)) {
++ XPUSHs(sv_2mortal(sv_bless(newRV_noinc(newSViv(ent)), gv_stashpv(&quot;USER::ENT&quot;, 1))));
++ } else {
++ lu_ent_free(ent);
++ }
++
++void
++Admin_LookupGroupById(self, id)
++ USER::ADMIN *self
++ int id
++ PPCODE:
++ USER__ENT *ent;
++ USER__ERR *error = NULL;
++ ent = lu_ent_new();
++ if (lu_group_lookup_id(self, id, ent, &amp;error)) {
++ XPUSHs(sv_2mortal(sv_bless(newRV_noinc(newSViv(ent)), gv_stashpv(&quot;USER::ENT&quot;, 1))));
++ } else {
++ lu_ent_free(ent);
++ }
++
++void
++Admin_GroupAdd(self, ent)
++ USER::ADMIN *self
++ USER::ENT *ent
++ PPCODE:
++ USER__ERR *error = NULL;
++ if (lu_group_add(self, ent, &amp;error) == FALSE) {
++ warn(_(&quot;Group creation failed.\n&quot;));
++ }
++
++void
++Admin_GroupModify(self, ent)
++ USER::ADMIN *self
++ USER::ENT *ent
++ PPCODE:
++ USER__ERR *error = NULL;
++ if (lu_group_modify(self, ent, &amp;error) == FALSE) {
++ croak(_(&quot;Group could not be modified: '%s'.\n&quot;), error ? error-&gt;string : &quot;Unknown error&quot;);
++ }
++
++int
++Admin_GroupDel(self, ent)
++ USER::ADMIN *self
++ USER::ENT *ent
++ CODE:
++ USER__ERR *error = NULL;
++ if (lu_group_delete(self, ent, &amp;error) == FALSE) {
++ croak(_(&quot;Group could not be deleted: '%s'.\n&quot;), error ? error-&gt;string : &quot;Unknown error&quot;);
++ RETVAL = 0;
++ } else RETVAL = 1 ;
++ OUTPUT:
++ RETVAL
++
++void
++Admin_InitGroup(self, name, is_system)
++ USER::ADMIN *self
++ char *name
++ int is_system
++ PPCODE:
++ USER__ENT *ent;
++ ent = lu_ent_new();
++ lu_group_default(self, name, is_system, ent);
++ XPUSHs(sv_2mortal(sv_bless(newRV_noinc(newSViv(ent)), gv_stashpv(&quot;USER::ENT&quot;, 1))));
++
++AV *
++Admin_EnumerateUsersByGroup(self, name)
++ USER::ADMIN *self
++ char *name
++ CODE:
++ int c;
++ USER__ERR *error = NULL;
++ RETVAL = (AV*)sv_2mortal((SV*)newAV());
++ GValueArray *results;
++ results = lu_users_enumerate_by_group(self, name, &amp;error);
++ for (c = 0; (results != NULL) &amp;&amp; (c &lt; results-&gt;n_values); c++) {
++ if( av_store(RETVAL, c, newSVpv(g_value_get_string(g_value_array_get_nth(results, c)), 0)) == NULL ){
++ warn(&quot;XS_UsersEnumerateFull: failed to store elems&quot;);
++ }
++ }
++ g_value_array_free(results);
++ OUTPUT:
++ RETVAL
++
++AV *
++Admin_EnumerateGroupsByUser(self, name)
++ USER::ADMIN *self
++ char *name
++ CODE:
++ int c;
++ USER__ERR *error = NULL;
++ RETVAL = (AV*)sv_2mortal((SV*)newAV());
++ GValueArray *results;
++ results = lu_groups_enumerate_by_user(self, name, &amp;error);
++ for (c = 0; (results != NULL) &amp;&amp; (c &lt; results-&gt;n_values); c++) {
++ if( av_store(RETVAL, c, newSVpv(g_value_get_string(g_value_array_get_nth(results, c)), 0)) == NULL ){
++ warn(&quot;XS_UsersEnumerateFull: failed to store elems&quot;);
++ }
++ }
++ g_value_array_free(results);
++ OUTPUT:
++ RETVAL
++
++AV *
++Admin_UsersEnumerate(self)
++ USER::ADMIN *self
++ CODE:
++ int c;
++ USER__ERR *error = NULL;
++ const char *pattern = NULL;
++ RETVAL = (AV*)sv_2mortal((SV*)newAV());
++ GValueArray *users;
++ users = lu_users_enumerate(self, pattern, &amp;error);
++ for (c = 0; ( users != NULL) &amp;&amp; (c &lt; users-&gt;n_values); c++) {
++ if( av_store(RETVAL, c, newSVpv(g_value_get_string(g_value_array_get_nth(users, c)), 0)) == NULL ){
++ warn(&quot;XS_UserEnumerate: failed to store elements of array&quot;);
++ }
++ }
++ g_value_array_free(users);
++ OUTPUT:
++ RETVAL
++
++AV *
++Admin_GroupsEnumerate(self)
++ USER::ADMIN *self
++ CODE:
++ int c;
++ USER__ERR *error = NULL;
++ const char *pattern = NULL;
++ RETVAL = (AV*)sv_2mortal((SV*)newAV());
++ GValueArray *groups;
++ groups = lu_groups_enumerate(self, pattern, &amp;error);
++ for (c = 0; (groups != NULL) &amp;&amp; (c &lt; groups-&gt;n_values); c++) {
++ if( av_store(RETVAL, c, newSVpv(g_value_get_string(g_value_array_get_nth(groups, c)), 0)) == NULL ){
++ warn(&quot;XS_GroupEnumerate: failed to store elements of array&quot;);
++ }
++ }
++ g_value_array_free(groups);
++ OUTPUT:
++ RETVAL
++
++AV *
++Admin_UsersEnumerateFull(self)
++ USER::ADMIN *self
++ CODE:
++ int c;
++ USER__ERR *error = NULL;
++ const char *pattern = NULL;
++ RETVAL = (AV*)sv_2mortal((SV*)newAV());
++ GPtrArray *accounts;
++ accounts = lu_users_enumerate_full(self, pattern, &amp;error);
++ for (c = 0; (accounts != NULL) &amp;&amp; (c &lt; accounts-&gt;len); c++) {
++ if( av_store(RETVAL, c, sv_bless(newRV_noinc(newSViv(g_ptr_array_index(accounts, c))), gv_stashpv(&quot;USER::ENT&quot;, 1))) == NULL ){
++ warn(&quot;XS_UsersEnumerateFull: failed to store elems&quot;);
++ }
++ }
++ g_ptr_array_free(accounts, TRUE);
++ OUTPUT:
++ RETVAL
++
++AV *
++Admin_GroupsEnumerateFull(self)
++ USER::ADMIN *self
++ CODE:
++ int c;
++ USER__ERR *error = NULL;
++ const char *pattern = NULL;
++ RETVAL = (AV*)sv_2mortal((SV*)newAV());
++ GPtrArray *accounts;
++ accounts = lu_groups_enumerate_full(self, pattern, &amp;error);
++ for (c = 0; (accounts != NULL) &amp;&amp; (c &lt; accounts-&gt;len); c++) {
++ if( av_store(RETVAL, c, sv_bless(newRV_noinc(newSViv(g_ptr_array_index(accounts, c))), gv_stashpv(&quot;USER::ENT&quot;, 1))) == NULL ){
++ warn(&quot;XS_UsersEnumerateFull: failed to store elems&quot;);
++ }
++ }
++ g_ptr_array_free(accounts, TRUE);
++ OUTPUT:
++ RETVAL
++
++AV *
++Admin_GetUserShells(self)
++ USER::ADMIN *self
++ CODE:
++ int i = 0;
++ const char *shell;
++ RETVAL = (AV*)sv_2mortal((SV*)newAV());
++ setusershell();
++ while ((shell = getusershell()) != NULL) {
++ av_store(RETVAL, i, newSVpv(shell, 0));
++ i++;
++ }
++ endusershell();
++ OUTPUT:
++ RETVAL
++
++void
++Admin_CleanHome(self, ent)
++ USER::ADMIN *self
++ USER::ENT *ent
++ PPCODE:
++ USER__ERR *error = NULL;
++ GValueArray *values;
++ GValue *value;
++ const char *tmp = NULL;
++ values = lu_ent_get(ent, LU_HOMEDIRECTORY);
++ if ((values == NULL) || (values-&gt;n_values == 0)) {
++ warn(_(&quot;No home directory for the user.\n&quot;));
++ } else {
++ value = g_value_array_get_nth(values, 0);
++ tmp = g_value_get_string(value);
++ if (lu_homedir_remove(tmp, &amp;error) == FALSE) {
++ if (error-&gt;code == lu_error_stat)
++ warn(_(&quot;Home Directory Could Not be deleted: '%s'.\n&quot;), error ? error-&gt;string : &quot;Unknown error&quot;);
++ else
++ croak(_(&quot;Home Directory Could Not be deleted: '%s'.\n&quot;), error ? error-&gt;string : &quot;Unknown error&quot;);
++ }
++ }
++
++void
++Admin_CleanSpool(self, ent)
++ USER::ADMIN *self
++ USER::ENT *ent
++ PPCODE:
++ if (lu_mailspool_create_remove(self, ent, 0) != 1) {
++ warn(_(&quot;Error deleting mail spool.\n&quot;));
++ }
++
++MODULE = USER PACKAGE = USER::ENT PREFIX = Ent_
++
++USER::ENT *
++Ent_new (CLASS)
++ char *CLASS
++ CODE:
++ RETVAL = (USER__ENT *)lu_ent_new();
++ if( RETVAL == NULL ){
++ warn(&quot;unable to malloc USER__ENT&quot;);
++ XSRETURN_UNDEF;
++ }
++ OUTPUT:
++ RETVAL
++
++void
++Ent_DESTROY(self)
++ USER::ENT *self
++ CODE:
++ if (self) lu_ent_free(self);
++
++void
++Ent_EntType(self)
++ USER::ENT *self
++ PPCODE:
++ switch (self-&gt;type) {
++ case lu_invalid:
++ break;
++ case lu_user:
++ XPUSHs(sv_2mortal(newSVpv(&quot;user&quot;, 0)));
++ break;
++ case lu_group:
++ XPUSHs(sv_2mortal(newSVpv(&quot;group&quot;, 0)));
++ break;
++ default:
++ break;
++ }
++
++void
++Ent_UserName(self, ssv)
++ USER::ENT *self
++ SV * ssv
++ PPCODE:
++ GValueArray *values;
++ GValue *value, val;
++ if ( SvIOK(ssv) &amp;&amp; SvIV(ssv) == -65533) {
++ values = lu_ent_get(self, LU_USERNAME);
++ if (values != NULL) {
++ value = g_value_array_get_nth(values, 0);
++ if (G_VALUE_HOLDS_STRING(value)) {
++ XPUSHs(sv_2mortal(newSVpv(g_value_get_string(value), 0)));
++ } else if (G_VALUE_HOLDS_LONG(value)) {
++ XPUSHs(sv_2mortal(newSVpv(g_strdup_printf(&quot;%ld&quot;, g_value_get_long(value)), 0)));
++ }
++ }
++ } else if( SvPOK( ssv ) ) {
++ memset(&amp;val, 0, sizeof(val));
++ g_value_init(&amp;val, G_TYPE_STRING);
++ g_value_set_string(&amp;val, SvPV(ssv,PL_na));
++ lu_ent_clear(self, LU_USERNAME);
++ lu_ent_add(self, LU_USERNAME, &amp;val);
++ } else {
++ warn(&quot;XS_UserName: Cannot make operation on LU_USERNAME attribute&quot;);
++ }
++
++void
++Ent_GroupName(self, ssv)
++ USER::ENT *self
++ SV * ssv
++ PPCODE:
++ GValueArray *values;
++ GValue *value, val;
++ if ( SvIOK(ssv) &amp;&amp; SvIV(ssv) == -65533) {
++ values = lu_ent_get(self, LU_GROUPNAME);
++ if (values != NULL) {
++ value = g_value_array_get_nth(values, 0);
++ if (G_VALUE_HOLDS_STRING(value)) {
++ XPUSHs(sv_2mortal(newSVpv(g_value_get_string(value), 0)));
++ } else if (G_VALUE_HOLDS_LONG(value)) {
++ XPUSHs(sv_2mortal(newSVpv(g_strdup_printf(&quot;%ld&quot;, g_value_get_long(value)), 0)));
++ }
++ }
++ } else if( SvPOK( ssv ) ) {
++ memset(&amp;val, 0, sizeof(val));
++ g_value_init(&amp;val, G_TYPE_STRING);
++ g_value_set_string(&amp;val, SvPV(ssv,PL_na));
++ lu_ent_clear(self, LU_GROUPNAME);
++ lu_ent_add(self, LU_GROUPNAME, &amp;val);
++ } else {
++ warn(&quot;XS_GroupName: Cannot make operation on LU_GROUPNAME attribute&quot;);
++ }
++
++AV*
++Ent_MemberName(self, rv, AddOrDel)
++ USER::ENT *self
++ SV *rv
++ int AddOrDel
++ CODE:
++ GValueArray *members;
++ GValue *value, val;
++ RETVAL = (AV*)sv_2mortal((SV*)newAV());
++ char *member = NULL;
++ int c;
++ if ( SvIOK(rv) &amp;&amp; SvIV(rv) == 1) {
++ members = lu_ent_get(self, LU_MEMBERNAME);
++ for (c = 0; (members != NULL) &amp;&amp; (c &lt; members-&gt;n_values); c++) {
++ if( av_store(RETVAL, c, newSVpv(g_value_get_string(g_value_array_get_nth(members, c)), 0)) == NULL ){
++ warn(&quot;XS_MemberName: failed to store elements of array&quot;);
++ }
++ }
++ } else if ( SvPOK( rv ) ) {
++ memset(&amp;val, 0, sizeof(val));
++ g_value_init(&amp;val, G_TYPE_STRING);
++ member = SvPV(rv, PL_na);
++ g_value_set_string(&amp;val, member);
++ if (AddOrDel == 1) {
++ lu_ent_add(self, LU_MEMBERNAME, &amp;val);
++ } else if (AddOrDel == 2) {
++ lu_ent_del(self, LU_MEMBERNAME, &amp;val);
++ }
++ g_value_reset(&amp;val);
++ } else {
++ croak(&quot;XS_MemberName: Cannot make operation on LU_MEMBERNAME attribute&quot;);
++ };
++ OUTPUT:
++ RETVAL
++
++void
++Ent_Uid(self, ssv)
++ USER::ENT *self
++ SV *ssv;
++ PPCODE:
++ GValueArray *values;
++ GValue *value, val;
++ if ( SvIOK(ssv) ) {
++ if (SvIV(ssv) == -65533) {
++ values = lu_ent_get(self, LU_UIDNUMBER);
++ if (values != NULL) {
++ value = g_value_array_get_nth(values, 0);
++ if (G_VALUE_HOLDS_LONG(value)) {
++ XPUSHs(sv_2mortal(newSViv(g_value_get_long(value))));
++ } else if (G_VALUE_HOLDS_STRING(value)) {
++ XPUSHs(sv_2mortal(newSViv(atol(g_value_get_string(value)))));
++ }
++ }
++ } else {
++ memset(&amp;val, 0, sizeof(val));
++ g_value_init(&amp;val, G_TYPE_LONG);
++ g_value_set_long(&amp;val, (long)SvIV( ssv ));
++ lu_ent_clear(self, LU_UIDNUMBER);
++ lu_ent_add(self, LU_UIDNUMBER, &amp;val);
++ }
++ } else {
++ warn(&quot;XS_Uid: Cannot make operation on LU_UIDNUMBER attribute&quot;);
++ }
++
++void
++Ent_Gid(self, ssv)
++ USER::ENT *self
++ SV *ssv;
++ PPCODE:
++ GValueArray *values;
++ GValue *value, val;
++ if ( SvIOK(ssv) ) {
++ if (SvIV(ssv) == -65533) {
++ values = lu_ent_get(self, LU_GIDNUMBER);
++ if (values != NULL) {
++ value = g_value_array_get_nth(values, 0);
++ if (G_VALUE_HOLDS_LONG(value)) {
++ XPUSHs(sv_2mortal(newSViv(g_value_get_long(value))));
++ } else if (G_VALUE_HOLDS_STRING(value)) {
++ XPUSHs(sv_2mortal(newSViv(atol(g_value_get_string(value)))));
++ }
++ }
++ } else {
++ memset(&amp;val, 0, sizeof(val));
++ g_value_init(&amp;val, G_TYPE_LONG);
++ g_value_set_long(&amp;val, (long)SvIV( ssv ));
++ lu_ent_clear(self, LU_GIDNUMBER);
++ lu_ent_add(self, LU_GIDNUMBER, &amp;val);
++ }
++ } else {
++ warn(&quot;XS_Gid: Cannot make operation on LU_GIDNUMBER attribute&quot;);
++ }
++
++void
++Ent_Gecos(self, ssv)
++ USER::ENT *self
++ SV *ssv;
++ PPCODE:
++ GValueArray *values;
++ GValue *value, val;
++ if ( SvIOK(ssv) &amp;&amp; SvIV(ssv) == -65533) {
++ values = lu_ent_get(self, LU_GECOS);
++ if (values != NULL) {
++ value = g_value_array_get_nth(values, 0);
++ if (G_VALUE_HOLDS_STRING(value)) {
++ XPUSHs(sv_2mortal(newSVpv(g_value_get_string(value), 0)));
++ } else if (G_VALUE_HOLDS_LONG(value)) {
++ XPUSHs(sv_2mortal(newSVpv(g_strdup_printf(&quot;%ld&quot;, g_value_get_long(value)), 0)));
++ }
++ }
++ } else if( SvPOK( ssv ) ) {
++ memset(&amp;val, 0, sizeof(val));
++ g_value_init(&amp;val, G_TYPE_STRING);
++ g_value_set_string(&amp;val, SvGChar(ssv));
++ lu_ent_clear(self, LU_GECOS);
++ lu_ent_add(self, LU_GECOS, &amp;val);
++ } else {
++ warn(&quot;XS_Gecos: Cannot make operation on LU_GECOS attribute&quot;);
++ }
++
++void
++Ent_HomeDir(self, ssv)
++ USER::ENT *self
++ SV *ssv
++ PPCODE:
++ GValueArray *values;
++ GValue *value, val;
++ if ( SvIOK(ssv) &amp;&amp; SvIV(ssv) == -65533) {
++ values = lu_ent_get(self, LU_HOMEDIRECTORY);
++ if (values != NULL) {
++ value = g_value_array_get_nth(values, 0);
++ if (G_VALUE_HOLDS_STRING(value)) {
++ XPUSHs(sv_2mortal(newSVpv(g_value_get_string(value), 0)));
++ } else if (G_VALUE_HOLDS_LONG(value)) {
++ XPUSHs(sv_2mortal(newSVpv(g_strdup_printf(&quot;%ld&quot;, g_value_get_long(value)), 0)));
++ }
++ }
++ } else if( SvPOK( ssv ) ) {
++ memset(&amp;val, 0, sizeof(val));
++ g_value_init(&amp;val, G_TYPE_STRING);
++ g_value_set_string(&amp;val, SvPV(ssv,PL_na));
++ lu_ent_clear(self, LU_HOMEDIRECTORY);
++ lu_ent_add(self, LU_HOMEDIRECTORY, &amp;val);
++ } else {
++ warn(&quot;XS_HomeDir: Cannot make operation on LU_HOMEDIRECTORY attribute&quot;);
++ }
++
++void
++Ent_LoginShell(self, ssv)
++ USER::ENT *self
++ SV *ssv
++ PPCODE:
++ GValueArray *values;
++ GValue *value, val;
++ if ( SvIOK(ssv) &amp;&amp; SvIV(ssv) == -65533) {
++ values = lu_ent_get(self, LU_LOGINSHELL);
++ if (values != NULL) {
++ value = g_value_array_get_nth(values, 0);
++ if (G_VALUE_HOLDS_STRING(value)) {
++ XPUSHs(sv_2mortal(newSVpv(g_value_get_string(value), 0)));
++ } else if (G_VALUE_HOLDS_LONG(value)) {
++ XPUSHs(sv_2mortal(newSVpv(g_strdup_printf(&quot;%ld&quot;, g_value_get_long(value)), 0)));
++ }
++ }
++ } else if( SvPOK( ssv ) ) {
++ memset(&amp;val, 0, sizeof(val));
++ g_value_init(&amp;val, G_TYPE_STRING);
++ g_value_set_string(&amp;val, SvPV(ssv,PL_na));
++ lu_ent_clear(self, LU_LOGINSHELL);
++ lu_ent_add(self, LU_LOGINSHELL, &amp;val);
++ } else {
++ warn(&quot;XS_LoginShell: Cannot make operation on LU_LOGINSHELL attribute&quot;);
++ }
++
++void
++Ent_ShadowPass(self, ssv)
++ USER::ENT *self
++ SV *ssv
++ PPCODE:
++ GValueArray *values;
++ GValue *value, val;
++ if ( SvIOK(ssv) &amp;&amp; SvIV(ssv) == -65533) {
++ values = lu_ent_get(self, LU_SHADOWPASSWORD);
++ if (values != NULL) {
++ value = g_value_array_get_nth(values, 0);
++ if (G_VALUE_HOLDS_STRING(value)) {
++ XPUSHs(sv_2mortal(newSVpv(g_value_get_string(value), 0)));
++ } else if (G_VALUE_HOLDS_LONG(value)) {
++ XPUSHs(sv_2mortal(newSVpv(g_strdup_printf(&quot;%ld&quot;, g_value_get_long(value)), 0)));
++ }
++ }
++ } else if( SvPOK( ssv ) ) {
++ memset(&amp;val, 0, sizeof(val));
++ g_value_init(&amp;val, G_TYPE_STRING);
++ g_value_set_string(&amp;val, SvPV(ssv,PL_na));
++ lu_ent_clear(self, LU_SHADOWPASSWORD);
++ lu_ent_add(self, LU_SHADOWPASSWORD, &amp;val);
++ } else {
++ warn(&quot;XS_ShadowPass: Cannot make operation on LU_SHADOWPASSWORD attribute&quot;);
++ }
++
++void
++Ent_ShadowWarn(self, ssv)
++ USER::ENT *self
++ SV *ssv
++ PPCODE:
++ GValueArray *values;
++ GValue *value, val;
++ if ( SvIOK(ssv) ) {
++ if (SvIV(ssv) == -65533) {
++ values = lu_ent_get(self, LU_SHADOWWARNING);
++ if (values != NULL) {
++ value = g_value_array_get_nth(values, 0);
++ if (G_VALUE_HOLDS_LONG(value)) {
++ XPUSHs(sv_2mortal(newSViv(g_value_get_long(value))));
++ } else if (G_VALUE_HOLDS_STRING(value)) {
++ XPUSHs(sv_2mortal(newSViv(atol(g_value_get_string(value)))));
++ }
++ }
++ } else {
++ memset(&amp;val, 0, sizeof(val));
++ g_value_init(&amp;val, G_TYPE_LONG);
++ g_value_set_long(&amp;val, (long)SvIV( ssv ));
++ lu_ent_clear(self, LU_SHADOWWARNING);
++ lu_ent_add(self, LU_SHADOWWARNING, &amp;val);
++ }
++ } else {
++ warn(&quot;XS_ShadowWarn: Cannot make operation on LU_SHADOWWARNING attribute&quot;);
++ }
++
++void
++Ent_ShadowLastChange(self, ssv)
++ USER::ENT *self
++ SV *ssv
++ PPCODE:
++ GValueArray *values;
++ GValue *value, val;
++ if ( SvIOK(ssv) ) {
++ if (SvIV(ssv) == -65533) {
++ values = lu_ent_get(self, LU_SHADOWLASTCHANGE);
++ if (values != NULL) {
++ value = g_value_array_get_nth(values, 0);
++ if (G_VALUE_HOLDS_LONG(value)) {
++ XPUSHs(sv_2mortal(newSViv(g_value_get_long(value))));
++ } else if (G_VALUE_HOLDS_STRING(value)) {
++ XPUSHs(sv_2mortal(newSViv(atol(g_value_get_string(value)))));
++ }
++ }
++ } else {
++ memset(&amp;val, 0, sizeof(val));
++ g_value_init(&amp;val, G_TYPE_LONG);
++ g_value_set_long(&amp;val, (long)SvIV( ssv ));
++ lu_ent_clear(self, LU_SHADOWLASTCHANGE);
++ lu_ent_add(self, LU_SHADOWLASTCHANGE, &amp;val);
++ }
++ } else {
++ warn(&quot;XS_ShadowLastChange: Cannot make operation on LU_SHADOWLASTCHANGE attribute&quot;);
++ }
++
++void
++Ent_ShadowMin(self, ssv)
++ USER::ENT *self
++ SV *ssv
++ PPCODE:
++ GValueArray *values;
++ GValue *value, val;
++ if ( SvIOK(ssv) ) {
++ if (SvIV(ssv) == -65533) {
++ values = lu_ent_get(self, LU_SHADOWMIN);
++ if (values != NULL) {
++ value = g_value_array_get_nth(values, 0);
++ if (G_VALUE_HOLDS_LONG(value)) {
++ XPUSHs(sv_2mortal(newSViv(g_value_get_long(value))));
++ } else if (G_VALUE_HOLDS_STRING(value)) {
++ XPUSHs(sv_2mortal(newSViv(atol(g_value_get_string(value)))));
++ }
++ }
++ } else {
++ memset(&amp;val, 0, sizeof(val));
++ g_value_init(&amp;val, G_TYPE_LONG);
++ g_value_set_long(&amp;val, (long)SvIV( ssv ));
++ lu_ent_clear(self, LU_SHADOWMIN);
++ lu_ent_add(self, LU_SHADOWMIN, &amp;val);
++ }
++ } else {
++ warn(&quot;XS_ShadowMin: Cannot make operation on LU_SHADOWMIN attribute&quot;);
++ }
++
++void
++Ent_ShadowMax(self, ssv)
++ USER::ENT *self
++ SV *ssv
++ PPCODE:
++ GValueArray *values;
++ GValue *value, val;
++ if ( SvIOK(ssv) ) {
++ if (SvIV(ssv) == -65533) {
++ values = lu_ent_get(self, LU_SHADOWMAX);
++ if (values != NULL) {
++ value = g_value_array_get_nth(values, 0);
++ if (G_VALUE_HOLDS_LONG(value)) {
++ XPUSHs(sv_2mortal(newSViv(g_value_get_long(value))));
++ } else if (G_VALUE_HOLDS_STRING(value)) {
++ XPUSHs(sv_2mortal(newSViv(atol(g_value_get_string(value)))));
++ }
++ }
++ } else {
++ memset(&amp;val, 0, sizeof(val));
++ g_value_init(&amp;val, G_TYPE_LONG);
++ g_value_set_long(&amp;val, (long)SvIV( ssv ));
++ lu_ent_clear(self, LU_SHADOWMAX);
++ lu_ent_add(self, LU_SHADOWMAX, &amp;val);
++ }
++ } else {
++ warn(&quot;XS_ShadowMax: Cannot make operation on LU_SHADOWMAX attribute&quot;);
++ }
++
++void
++Ent_ShadowInact(self, ssv)
++ USER::ENT *self
++ SV *ssv
++ PPCODE:
++ GValueArray *values;
++ GValue *value, val;
++ if ( SvIOK(ssv) ) {
++ if (SvIV(ssv) == -65533) {
++ values = lu_ent_get(self, LU_SHADOWINACTIVE);
++ if (values != NULL) {
++ value = g_value_array_get_nth(values, 0);
++ if (G_VALUE_HOLDS_LONG(value)) {
++ XPUSHs(sv_2mortal(newSViv(g_value_get_long(value))));
++ } else if (G_VALUE_HOLDS_STRING(value)) {
++ XPUSHs(sv_2mortal(newSViv(atol(g_value_get_string(value)))));
++ }
++ }
++ } else {
++ memset(&amp;val, 0, sizeof(val));
++ g_value_init(&amp;val, G_TYPE_LONG);
++ g_value_set_long(&amp;val, (long)SvIV( ssv ));
++ lu_ent_clear(self, LU_SHADOWINACTIVE);
++ lu_ent_add(self, LU_SHADOWINACTIVE, &amp;val);
++ }
++ } else {
++ warn(&quot;XS_ShadowInact: Cannot make operation on LU_SHADOWINACTIVE attribute&quot;);
++ }
++
++void
++Ent_ShadowExpire(self, ssv)
++ USER::ENT *self
++ SV *ssv
++ PPCODE:
++ GValueArray *values;
++ GValue *value, val;
++ if ( SvIOK(ssv) ) {
++ if (SvIV(ssv) == -65533) {
++ values = lu_ent_get(self, LU_SHADOWEXPIRE);
++ if (values != NULL) {
++ value = g_value_array_get_nth(values, 0);
++ if (G_VALUE_HOLDS_LONG(value)) {
++ XPUSHs(sv_2mortal(newSViv(g_value_get_long(value))));
++ } else if (G_VALUE_HOLDS_STRING(value)) {
++ XPUSHs(sv_2mortal(newSViv(atol(g_value_get_string(value)))));
++ }
++ }
++ }
++ } else if (SvNOK(ssv)) {
++ memset(&amp;val, 0, sizeof(val));
++ g_value_init(&amp;val, G_TYPE_LONG);
++ g_value_set_long(&amp;val, (long)SvNV( ssv ));
++ lu_ent_clear(self, LU_SHADOWEXPIRE);
++ lu_ent_add(self, LU_SHADOWEXPIRE, &amp;val);
++ } else {
++ warn(&quot;XS_ShadowExpire: Cannot make operation on LU_SHADOWEXPIRE attribute&quot;);
++ }
++
++void
++Ent_ShadowFlag(self, ssv)
++ USER::ENT *self
++ SV *ssv
++ PPCODE:
++ GValueArray *values;
++ GValue *value, val;
++ if ( SvIOK(ssv) ) {
++ if ( SvIV(ssv) == -65533 ) {
++ values = lu_ent_get(self, LU_SHADOWFLAG);
++ if (values != NULL) {
++ value = g_value_array_get_nth(values, 0);
++ if (G_VALUE_HOLDS_LONG(value)) {
++ XPUSHs(sv_2mortal(newSViv(g_value_get_long(value))));
++ } else if (G_VALUE_HOLDS_STRING(value)) {
++ XPUSHs(sv_2mortal(newSViv(atol(g_value_get_string(value)))));
++ }
++ }
++ } else {
++ memset(&amp;val, 0, sizeof(val));
++ g_value_init(&amp;val, G_TYPE_LONG);
++ g_value_set_long(&amp;val, (long)SvIV( ssv ));
++ lu_ent_clear(self, LU_SHADOWFLAG);
++ lu_ent_add(self, LU_SHADOWFLAG, &amp;val);
++ }
++ } else {
++ warn(&quot;XS_ShadowExpire: Cannot make operation on LU_SHADOWEXPIRE attribute&quot;);
++ }
++
++MODULE = USER PACKAGE = USER PREFIX = User_
++
++void
++User_ReadConfigFiles()
++ CODE:
++ /*force read of /etc/sysconfig/userdrakefilter*/
++
+
+<a id="userdrake2tags1133USERppporth">Added: userdrake2/tags/1.13.3/USER/ppport.h</a>
+===================================================================
+--- userdrake2/tags/1.13.3/USER/ppport.h (rev 0)
++++ userdrake2/tags/1.13.3/USER/ppport.h 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,540 @@
++
++/* ppport.h -- Perl/Pollution/Portability Version 2.0002
++ *
++ * Automatically Created by Devel::PPPort on Fri Feb 28 15:36:17 2003
++ *
++ * Do NOT edit this file directly! -- Edit PPPort.pm instead.
++ *
++ * Version 2.x, Copyright (C) 2001, Paul Marquess.
++ * Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
++ * This code may be used and distributed under the same license as any
++ * version of Perl.
++ *
++ * This version of ppport.h is designed to support operation with Perl
++ * installations back to 5.004, and has been tested up to 5.8.0.
++ *
++ * If this version of ppport.h is failing during the compilation of this
++ * module, please check if a newer version of Devel::PPPort is available
++ * on CPAN before sending a bug report.
++ *
++ * If you are using the latest version of Devel::PPPort and it is failing
++ * during compilation of this module, please send a report to perlbug@perl.com
++ *
++ * Include all following information:
++ *
++ * 1. The complete output from running &quot;perl -V&quot;
++ *
++ * 2. This file.
++ *
++ * 3. The name &amp; version of the module you were trying to build.
++ *
++ * 4. A full log of the build that failed.
++ *
++ * 5. Any other information that you think could be relevant.
++ *
++ *
++ * For the latest version of this code, please retreive the Devel::PPPort
++ * module from CPAN.
++ *
++ */
++
++/*
++ * In order for a Perl extension module to be as portable as possible
++ * across differing versions of Perl itself, certain steps need to be taken.
++ * Including this header is the first major one, then using dTHR is all the
++ * appropriate places and using a PL_ prefix to refer to global Perl
++ * variables is the second.
++ *
++ */
++
++
++/* If you use one of a few functions that were not present in earlier
++ * versions of Perl, please add a define before the inclusion of ppport.h
++ * for a static include, or use the GLOBAL request in a single module to
++ * produce a global definition that can be referenced from the other
++ * modules.
++ *
++ * Function: Static define: Extern define:
++ * newCONSTSUB() NEED_newCONSTSUB NEED_newCONSTSUB_GLOBAL
++ *
++ */
++
++
++/* To verify whether ppport.h is needed for your module, and whether any
++ * special defines should be used, ppport.h can be run through Perl to check
++ * your source code. Simply say:
++ *
++ * perl -x ppport.h *.c *.h *.xs foo/bar*.c [etc]
++ *
++ * The result will be a list of patches suggesting changes that should at
++ * least be acceptable, if not necessarily the most efficient solution, or a
++ * fix for all possible problems. It won't catch where dTHR is needed, and
++ * doesn't attempt to account for global macro or function definitions,
++ * nested includes, typemaps, etc.
++ *
++ * In order to test for the need of dTHR, please try your module under a
++ * recent version of Perl that has threading compiled-in.
++ *
++ */
++
++
++/*
++#!/usr/bin/perl
++@ARGV = (&quot;*.xs&quot;) if !@ARGV;
++%badmacros = %funcs = %macros = (); $replace = 0;
++foreach (&lt;DATA&gt;) {
++ $funcs{$1} = 1 if /Provide:\s+(\S+)/;
++ $macros{$1} = 1 if /^#\s*define\s+([a-zA-Z0-9_]+)/;
++ $replace = $1 if /Replace:\s+(\d+)/;
++ $badmacros{$2}=$1 if $replace and /^#\s*define\s+([a-zA-Z0-9_]+).*?\s+([a-zA-Z0-9_]+)/;
++ $badmacros{$1}=$2 if /Replace (\S+) with (\S+)/;
++}
++foreach $filename (map(glob($_),@ARGV)) {
++ unless (open(IN, &quot;&lt;$filename&quot;)) {
++ warn &quot;Unable to read from $file: $!\n&quot;;
++ next;
++ }
++ print &quot;Scanning $filename...\n&quot;;
++ $c = &quot;&quot;; while (&lt;IN&gt;) { $c .= $_; } close(IN);
++ $need_include = 0; %add_func = (); $changes = 0;
++ $has_include = ($c =~ /#.*include.*ppport/m);
++
++ foreach $func (keys %funcs) {
++ if ($c =~ /#.*define.*\bNEED_$func(_GLOBAL)?\b/m) {
++ if ($c !~ /\b$func\b/m) {
++ print &quot;If $func isn't needed, you don't need to request it.\n&quot; if
++ $changes += ($c =~ s/^.*#.*define.*\bNEED_$func\b.*\n//m);
++ } else {
++ print &quot;Uses $func\n&quot;;
++ $need_include = 1;
++ }
++ } else {
++ if ($c =~ /\b$func\b/m) {
++ $add_func{$func} =1 ;
++ print &quot;Uses $func\n&quot;;
++ $need_include = 1;
++ }
++ }
++ }
++
++ if (not $need_include) {
++ foreach $macro (keys %macros) {
++ if ($c =~ /\b$macro\b/m) {
++ print &quot;Uses $macro\n&quot;;
++ $need_include = 1;
++ }
++ }
++ }
++
++ foreach $badmacro (keys %badmacros) {
++ if ($c =~ /\b$badmacro\b/m) {
++ $changes += ($c =~ s/\b$badmacro\b/$badmacros{$badmacro}/gm);
++ print &quot;Uses $badmacros{$badmacro} (instead of $badmacro)\n&quot;;
++ $need_include = 1;
++ }
++ }
++
++ if (scalar(keys %add_func) or $need_include != $has_include) {
++ if (!$has_include) {
++ $inc = join('',map(&quot;#define NEED_$_\n&quot;, sort keys %add_func)).
++ &quot;#include \&quot;ppport.h\&quot;\n&quot;;
++ $c = &quot;$inc$c&quot; unless $c =~ s/#.*include.*XSUB.*\n/$&amp;$inc/m;
++ } elsif (keys %add_func) {
++ $inc = join('',map(&quot;#define NEED_$_\n&quot;, sort keys %add_func));
++ $c = &quot;$inc$c&quot; unless $c =~ s/^.*#.*include.*ppport.*$/$inc$&amp;/m;
++ }
++ if (!$need_include) {
++ print &quot;Doesn't seem to need ppport.h.\n&quot;;
++ $c =~ s/^.*#.*include.*ppport.*\n//m;
++ }
++ $changes++;
++ }
++
++ if ($changes) {
++ open(OUT,&quot;&gt;/tmp/ppport.h.$$&quot;);
++ print OUT $c;
++ close(OUT);
++ open(DIFF, &quot;diff -u $filename /tmp/ppport.h.$$|&quot;);
++ while (&lt;DIFF&gt;) { s!/tmp/ppport\.h\.$$!$filename.patched!; print STDOUT; }
++ close(DIFF);
++ unlink(&quot;/tmp/ppport.h.$$&quot;);
++ } else {
++ print &quot;Looks OK\n&quot;;
++ }
++}
++__DATA__
++*/
++
++#ifndef _P_P_PORTABILITY_H_
++#define _P_P_PORTABILITY_H_
++
++#ifndef PERL_REVISION
++# ifndef __PATCHLEVEL_H_INCLUDED__
++# include &quot;patchlevel.h&quot;
++# endif
++# ifndef PERL_REVISION
++# define PERL_REVISION (5)
++ /* Replace: 1 */
++# define PERL_VERSION PATCHLEVEL
++# define PERL_SUBVERSION SUBVERSION
++ /* Replace PERL_PATCHLEVEL with PERL_VERSION */
++ /* Replace: 0 */
++# endif
++#endif
++
++#define PERL_BCDVERSION ((PERL_REVISION * 0x1000000L) + (PERL_VERSION * 0x1000L) + PERL_SUBVERSION)
++
++/* It is very unlikely that anyone will try to use this with Perl 6
++ (or greater), but who knows.
++ */
++#if PERL_REVISION != 5
++# error ppport.h only works with Perl version 5
++#endif /* PERL_REVISION != 5 */
++
++#ifndef ERRSV
++# define ERRSV perl_get_sv(&quot;@&quot;,FALSE)
++#endif
++
++#if (PERL_VERSION &lt; 4) || ((PERL_VERSION == 4) &amp;&amp; (PERL_SUBVERSION &lt;= 5))
++/* Replace: 1 */
++# define PL_Sv Sv
++# define PL_compiling compiling
++# define PL_copline copline
++# define PL_curcop curcop
++# define PL_curstash curstash
++# define PL_defgv defgv
++# define PL_dirty dirty
++# define PL_dowarn dowarn
++# define PL_hints hints
++# define PL_na na
++# define PL_perldb perldb
++# define PL_rsfp_filters rsfp_filters
++# define PL_rsfpv rsfp
++# define PL_stdingv stdingv
++# define PL_sv_no sv_no
++# define PL_sv_undef sv_undef
++# define PL_sv_yes sv_yes
++/* Replace: 0 */
++#endif
++
++#ifdef HASATTRIBUTE
++# if defined(__GNUC__) &amp;&amp; defined(__cplusplus)
++# define PERL_UNUSED_DECL
++# else
++# define PERL_UNUSED_DECL __attribute__((unused))
++# endif
++#else
++# define PERL_UNUSED_DECL
++#endif
++
++#ifndef dNOOP
++# define NOOP (void)0
++# define dNOOP extern int Perl___notused PERL_UNUSED_DECL
++#endif
++
++#ifndef dTHR
++# define dTHR dNOOP
++#endif
++
++#ifndef dTHX
++# define dTHX dNOOP
++# define dTHXa(x) dNOOP
++# define dTHXoa(x) dNOOP
++#endif
++
++#ifndef pTHX
++# define pTHX void
++# define pTHX_
++# define aTHX
++# define aTHX_
++#endif
++
++#ifndef UVSIZE
++# define UVSIZE IVSIZE
++#endif
++
++#ifndef NVTYPE
++# if defined(USE_LONG_DOUBLE) &amp;&amp; defined(HAS_LONG_DOUBLE)
++# define NVTYPE long double
++# else
++# define NVTYPE double
++# endif
++typedef NVTYPE NV;
++#endif
++
++#ifndef INT2PTR
++
++#if (IVSIZE == PTRSIZE) &amp;&amp; (UVSIZE == PTRSIZE)
++# define PTRV UV
++# define INT2PTR(any,d) (any)(d)
++#else
++# if PTRSIZE == LONGSIZE
++# define PTRV unsigned long
++# else
++# define PTRV unsigned
++# endif
++# define INT2PTR(any,d) (any)(PTRV)(d)
++#endif
++#define NUM2PTR(any,d) (any)(PTRV)(d)
++#define PTR2IV(p) INT2PTR(IV,p)
++#define PTR2UV(p) INT2PTR(UV,p)
++#define PTR2NV(p) NUM2PTR(NV,p)
++#if PTRSIZE == LONGSIZE
++# define PTR2ul(p) (unsigned long)(p)
++#else
++# define PTR2ul(p) INT2PTR(unsigned long,p)
++#endif
++
++#endif /* !INT2PTR */
++
++#ifndef boolSV
++# define boolSV(b) ((b) ? &amp;PL_sv_yes : &amp;PL_sv_no)
++#endif
++
++#ifndef gv_stashpvn
++# define gv_stashpvn(str,len,flags) gv_stashpv(str,flags)
++#endif
++
++#ifndef newSVpvn
++# define newSVpvn(data,len) ((len) ? newSVpv ((data), (len)) : newSVpv (&quot;&quot;, 0))
++#endif
++
++#ifndef newRV_inc
++/* Replace: 1 */
++# define newRV_inc(sv) newRV(sv)
++/* Replace: 0 */
++#endif
++
++/* DEFSV appears first in 5.004_56 */
++#ifndef DEFSV
++# define DEFSV GvSV(PL_defgv)
++#endif
++
++#ifndef SAVE_DEFSV
++# define SAVE_DEFSV SAVESPTR(GvSV(PL_defgv))
++#endif
++
++#ifndef newRV_noinc
++# ifdef __GNUC__
++# define newRV_noinc(sv) \
++ ({ \
++ SV *nsv = (SV*)newRV(sv); \
++ SvREFCNT_dec(sv); \
++ nsv; \
++ })
++# else
++# if defined(USE_THREADS)
++static SV * newRV_noinc (SV * sv)
++{
++ SV *nsv = (SV*)newRV(sv);
++ SvREFCNT_dec(sv);
++ return nsv;
++}
++# else
++# define newRV_noinc(sv) \
++ (PL_Sv=(SV*)newRV(sv), SvREFCNT_dec(sv), (SV*)PL_Sv)
++# endif
++# endif
++#endif
++
++/* Provide: newCONSTSUB */
++
++/* newCONSTSUB from IO.xs is in the core starting with 5.004_63 */
++#if (PERL_VERSION &lt; 4) || ((PERL_VERSION == 4) &amp;&amp; (PERL_SUBVERSION &lt; 63))
++
++#if defined(NEED_newCONSTSUB)
++static
++#else
++extern void newCONSTSUB(HV * stash, char * name, SV *sv);
++#endif
++
++#if defined(NEED_newCONSTSUB) || defined(NEED_newCONSTSUB_GLOBAL)
++void
++newCONSTSUB(stash,name,sv)
++HV *stash;
++char *name;
++SV *sv;
++{
++ U32 oldhints = PL_hints;
++ HV *old_cop_stash = PL_curcop-&gt;cop_stash;
++ HV *old_curstash = PL_curstash;
++ line_t oldline = PL_curcop-&gt;cop_line;
++ PL_curcop-&gt;cop_line = PL_copline;
++
++ PL_hints &amp;= ~HINT_BLOCK_SCOPE;
++ if (stash)
++ PL_curstash = PL_curcop-&gt;cop_stash = stash;
++
++ newSUB(
++
++#if (PERL_VERSION &lt; 3) || ((PERL_VERSION == 3) &amp;&amp; (PERL_SUBVERSION &lt; 22))
++ /* before 5.003_22 */
++ start_subparse(),
++#else
++# if (PERL_VERSION == 3) &amp;&amp; (PERL_SUBVERSION == 22)
++ /* 5.003_22 */
++ start_subparse(0),
++# else
++ /* 5.003_23 onwards */
++ start_subparse(FALSE, 0),
++# endif
++#endif
++
++ newSVOP(OP_CONST, 0, newSVpv(name,0)),
++ newSVOP(OP_CONST, 0, &amp;PL_sv_no), /* SvPV(&amp;PL_sv_no) == &quot;&quot; -- GMB */
++ newSTATEOP(0, Nullch, newSVOP(OP_CONST, 0, sv))
++ );
++
++ PL_hints = oldhints;
++ PL_curcop-&gt;cop_stash = old_cop_stash;
++ PL_curstash = old_curstash;
++ PL_curcop-&gt;cop_line = oldline;
++}
++#endif
++
++#endif /* newCONSTSUB */
++
++#ifndef START_MY_CXT
++
++/*
++ * Boilerplate macros for initializing and accessing interpreter-local
++ * data from C. All statics in extensions should be reworked to use
++ * this, if you want to make the extension thread-safe. See ext/re/re.xs
++ * for an example of the use of these macros.
++ *
++ * Code that uses these macros is responsible for the following:
++ * 1. #define MY_CXT_KEY to a unique string, e.g. &quot;DynaLoader_guts&quot;
++ * 2. Declare a typedef named my_cxt_t that is a structure that contains
++ * all the data that needs to be interpreter-local.
++ * 3. Use the START_MY_CXT macro after the declaration of my_cxt_t.
++ * 4. Use the MY_CXT_INIT macro such that it is called exactly once
++ * (typically put in the BOOT: section).
++ * 5. Use the members of the my_cxt_t structure everywhere as
++ * MY_CXT.member.
++ * 6. Use the dMY_CXT macro (a declaration) in all the functions that
++ * access MY_CXT.
++ */
++
++#if defined(MULTIPLICITY) || defined(PERL_OBJECT) || \
++ defined(PERL_CAPI) || defined(PERL_IMPLICIT_CONTEXT)
++
++/* This must appear in all extensions that define a my_cxt_t structure,
++ * right after the definition (i.e. at file scope). The non-threads
++ * case below uses it to declare the data as static. */
++#define START_MY_CXT
++
++#if (PERL_VERSION &lt; 4 || (PERL_VERSION == 4 &amp;&amp; PERL_SUBVERSION &lt; 68 ))
++/* Fetches the SV that keeps the per-interpreter data. */
++#define dMY_CXT_SV \
++ SV *my_cxt_sv = perl_get_sv(MY_CXT_KEY, FALSE)
++#else /* &gt;= perl5.004_68 */
++#define dMY_CXT_SV \
++ SV *my_cxt_sv = *hv_fetch(PL_modglobal, MY_CXT_KEY, \
++ sizeof(MY_CXT_KEY)-1, TRUE)
++#endif /* &lt; perl5.004_68 */
++
++/* This declaration should be used within all functions that use the
++ * interpreter-local data. */
++#define dMY_CXT \
++ dMY_CXT_SV; \
++ my_cxt_t *my_cxtp = INT2PTR(my_cxt_t*,SvUV(my_cxt_sv))
++
++/* Creates and zeroes the per-interpreter data.
++ * (We allocate my_cxtp in a Perl SV so that it will be released when
++ * the interpreter goes away.) */
++#define MY_CXT_INIT \
++ dMY_CXT_SV; \
++ /* newSV() allocates one more than needed */ \
++ my_cxt_t *my_cxtp = (my_cxt_t*)SvPVX(newSV(sizeof(my_cxt_t)-1));\
++ Zero(my_cxtp, 1, my_cxt_t); \
++ sv_setuv(my_cxt_sv, PTR2UV(my_cxtp))
++
++/* This macro must be used to access members of the my_cxt_t structure.
++ * e.g. MYCXT.some_data */
++#define MY_CXT (*my_cxtp)
++
++/* Judicious use of these macros can reduce the number of times dMY_CXT
++ * is used. Use is similar to pTHX, aTHX etc. */
++#define pMY_CXT my_cxt_t *my_cxtp
++#define pMY_CXT_ pMY_CXT,
++#define _pMY_CXT ,pMY_CXT
++#define aMY_CXT my_cxtp
++#define aMY_CXT_ aMY_CXT,
++#define _aMY_CXT ,aMY_CXT
++
++#else /* single interpreter */
++
++
++#define START_MY_CXT static my_cxt_t my_cxt;
++#define dMY_CXT_SV dNOOP
++#define dMY_CXT dNOOP
++#define MY_CXT_INIT NOOP
++#define MY_CXT my_cxt
++
++#define pMY_CXT void
++#define pMY_CXT_
++#define _pMY_CXT
++#define aMY_CXT
++#define aMY_CXT_
++#define _aMY_CXT
++
++#endif
++
++#endif /* START_MY_CXT */
++
++#ifndef IVdf
++# if IVSIZE == LONGSIZE
++# define IVdf &quot;ld&quot;
++# define UVuf &quot;lu&quot;
++# define UVof &quot;lo&quot;
++# define UVxf &quot;lx&quot;
++# define UVXf &quot;lX&quot;
++# else
++# if IVSIZE == INTSIZE
++# define IVdf &quot;d&quot;
++# define UVuf &quot;u&quot;
++# define UVof &quot;o&quot;
++# define UVxf &quot;x&quot;
++# define UVXf &quot;X&quot;
++# endif
++# endif
++#endif
++
++#ifndef NVef
++# if defined(USE_LONG_DOUBLE) &amp;&amp; defined(HAS_LONG_DOUBLE) &amp;&amp; \
++ defined(PERL_PRIfldbl) /* Not very likely, but let's try anyway. */
++# define NVef PERL_PRIeldbl
++# define NVff PERL_PRIfldbl
++# define NVgf PERL_PRIgldbl
++# else
++# define NVef &quot;e&quot;
++# define NVff &quot;f&quot;
++# define NVgf &quot;g&quot;
++# endif
++#endif
++
++#ifndef AvFILLp /* Older perls (&lt;=5.003) lack AvFILLp */
++# define AvFILLp AvFILL
++#endif
++
++#ifdef SvPVbyte
++# if PERL_REVISION == 5 &amp;&amp; PERL_VERSION &lt; 7
++ /* SvPVbyte does not work in perl-5.6.1, borrowed version for 5.7.3 */
++# undef SvPVbyte
++# define SvPVbyte(sv, lp) \
++ ((SvFLAGS(sv) &amp; (SVf_POK|SVf_UTF8)) == (SVf_POK) \
++ ? ((lp = SvCUR(sv)), SvPVX(sv)) : my_sv_2pvbyte(aTHX_ sv, &amp;lp))
++ static char *
++ my_sv_2pvbyte(pTHX_ register SV *sv, STRLEN *lp)
++ {
++ sv_utf8_downgrade(sv,0);
++ return SvPV(sv,*lp);
++ }
++# endif
++#else
++# define SvPVbyte SvPV
++#endif
++
++#endif /* _P_P_PORTABILITY_H_ */
++
++/* End of File ppport.h */
+
+
+Property changes on: userdrake2/tags/1.13.3/USER/ppport.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="userdrake2tags1133USERtypemap">Added: userdrake2/tags/1.13.3/USER/typemap</a>
+===================================================================
+--- userdrake2/tags/1.13.3/USER/typemap (rev 0)
++++ userdrake2/tags/1.13.3/USER/typemap 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,5 @@
++TYPEMAP
++
++USER::ADMIN * O_OBJECT
++USER::ENT * O_OBJECT
++USER__ERR * T_PTROBJ
+
+<a id="userdrake2tags1133iconsselectedpng">Added: userdrake2/tags/1.13.3/icons/selected.png</a>
+===================================================================
+(Binary files differ)
+
+
+Property changes on: userdrake2/tags/1.13.3/icons/selected.png
+___________________________________________________________________
+<a id="svnmimetype">Added: svn:mime-type</a>
+ + image/png
+
+<a id="userdrake2tags1133iconsunselectedpng">Added: userdrake2/tags/1.13.3/icons/unselected.png</a>
+===================================================================
+(Binary files differ)
+
+
+Property changes on: userdrake2/tags/1.13.3/icons/unselected.png
+___________________________________________________________________
+Added: svn:mime-type
+ + image/png
+
+<a id="userdrake2tags1133iconsuserdrake16png">Added: userdrake2/tags/1.13.3/icons/userdrake16.png</a>
+===================================================================
+(Binary files differ)
+
+
+Property changes on: userdrake2/tags/1.13.3/icons/userdrake16.png
+___________________________________________________________________
+Added: svn:mime-type
+ + image/png
+
+<a id="userdrake2tags1133iconsuserdrake32png">Added: userdrake2/tags/1.13.3/icons/userdrake32.png</a>
+===================================================================
+(Binary files differ)
+
+
+Property changes on: userdrake2/tags/1.13.3/icons/userdrake32.png
+___________________________________________________________________
+Added: svn:mime-type
+ + image/png
+
+<a id="userdrake2tags1133iconsuserdrake48png">Added: userdrake2/tags/1.13.3/icons/userdrake48.png</a>
+===================================================================
+(Binary files differ)
+
+
+Property changes on: userdrake2/tags/1.13.3/icons/userdrake48.png
+___________________________________________________________________
+Added: svn:mime-type
+ + image/png
+
+<a id="userdrake2tags1133perlobjectmap">Added: userdrake2/tags/1.13.3/perlobject.map</a>
+===================================================================
+--- userdrake2/tags/1.13.3/perlobject.map (rev 0)
++++ userdrake2/tags/1.13.3/perlobject.map 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,106 @@
++# &quot;perlobject.map&quot; Dean Roehrich, version 19960302
++#
++# TYPEMAPs
++#
++# HV * -&gt; unblessed Perl HV object.
++# AV * -&gt; unblessed Perl AV object.
++#
++# INPUT/OUTPUT maps
++#
++# O_* -&gt; opaque blessed objects
++# T_* -&gt; opaque blessed or unblessed objects
++#
++# O_OBJECT -&gt; link an opaque C or C++ object to a blessed Perl object.
++# T_OBJECT -&gt; link an opaque C or C++ object to an unblessed Perl object.
++# O_HvRV -&gt; a blessed Perl HV object.
++# T_HvRV -&gt; an unblessed Perl HV object.
++# O_AvRV -&gt; a blessed Perl AV object.
++# T_AvRV -&gt; an unblessed Perl AV object.
++
++TYPEMAP
++
++HV * T_HvRV
++AV * T_AvRV
++
++
++######################################################################
++OUTPUT
++
++# The Perl object is blessed into 'CLASS', which should be a
++# char* having the name of the package for the blessing.
++O_OBJECT
++ sv_setref_pv( $arg, CLASS, (void*)$var );
++
++T_OBJECT
++ sv_setref_pv( $arg, Nullch, (void*)$var );
++
++# Cannot use sv_setref_pv() because that will destroy
++# the HV-ness of the object. Remember that newRV() will increment
++# the refcount.
++O_HvRV
++ $arg = sv_bless( newRV((SV*)$var), gv_stashpv(CLASS,1) );
++
++T_HvRV
++ $arg = newRV((SV*)$var);
++
++# Cannot use sv_setref_pv() because that will destroy
++# the AV-ness of the object. Remember that newRV() will increment
++# the refcount.
++O_AvRV
++ $arg = sv_bless( newRV((SV*)$var), gv_stashpv(CLASS,1) );
++
++T_AvRV
++ $arg = newRV((SV*)$var);
++
++
++######################################################################
++INPUT
++
++O_OBJECT
++ if( sv_isobject($arg) &amp;&amp; (SvTYPE(SvRV($arg)) == SVt_PVMG) )
++ $var = ($type)SvIV((SV*)SvRV( $arg ));
++ else{
++ warn( \&quot;${Package}::$func_name() -- $var is not a blessed SV reference\&quot; );
++ XSRETURN_UNDEF;
++ }
++
++T_OBJECT
++ if( SvROK($arg) )
++ $var = ($type)SvIV((SV*)SvRV( $arg ));
++ else{
++ warn( \&quot;${Package}::$func_name() -- $var is not an SV reference\&quot; );
++ XSRETURN_UNDEF;
++ }
++
++O_HvRV
++ if( sv_isobject($arg) &amp;&amp; (SvTYPE(SvRV($arg)) == SVt_PVHV) )
++ $var = (HV*)SvRV( $arg );
++ else {
++ warn( \&quot;${Package}::$func_name() -- $var is not a blessed HV reference\&quot; );
++ XSRETURN_UNDEF;
++ }
++
++T_HvRV
++ if( SvROK($arg) &amp;&amp; (SvTYPE(SvRV($arg)) == SVt_PVHV) )
++ $var = (HV*)SvRV( $arg );
++ else {
++ warn( \&quot;${Package}::$func_name() -- $var is not an HV reference\&quot; );
++ XSRETURN_UNDEF;
++ }
++
++O_AvRV
++ if( sv_isobject($arg) &amp;&amp; (SvTYPE(SvRV($arg)) == SVt_PVAV) )
++ $var = (AV*)SvRV( $arg );
++ else {
++ warn( \&quot;${Package}::$func_name() -- $var is not a blessed AV reference\&quot; );
++ XSRETURN_UNDEF;
++ }
++
++T_AvRV
++ if( SvROK($arg) &amp;&amp; (SvTYPE(SvRV($arg)) == SVt_PVAV) )
++ $var = (AV*)SvRV( $arg );
++ else {
++ warn( \&quot;${Package}::$func_name() -- $var is not an AV reference\&quot; );
++ XSRETURN_UNDEF;
++ }
++
+
+<a id="userdrake2tags1133pixmapsgroup_addpng">Added: userdrake2/tags/1.13.3/pixmaps/group_add.png</a>
+===================================================================
+(Binary files differ)
+
+
+Property changes on: userdrake2/tags/1.13.3/pixmaps/group_add.png
+___________________________________________________________________
+Added: svn:mime-type
+ + image/png
+
+<a id="userdrake2tags1133pixmapshelppng">Added: userdrake2/tags/1.13.3/pixmaps/help.png</a>
+===================================================================
+(Binary files differ)
+
+
+Property changes on: userdrake2/tags/1.13.3/pixmaps/help.png
+___________________________________________________________________
+Added: svn:mime-type
+ + image/png
+
+<a id="userdrake2tags1133pixmapsredhatconfiguserspng">Added: userdrake2/tags/1.13.3/pixmaps/redhat-config-users.png</a>
+===================================================================
+(Binary files differ)
+
+
+Property changes on: userdrake2/tags/1.13.3/pixmaps/redhat-config-users.png
+___________________________________________________________________
+Added: svn:mime-type
+ + image/png
+
+<a id="userdrake2tags1133pixmapsrefreshpng">Added: userdrake2/tags/1.13.3/pixmaps/refresh.png</a>
+===================================================================
+(Binary files differ)
+
+
+Property changes on: userdrake2/tags/1.13.3/pixmaps/refresh.png
+___________________________________________________________________
+Added: svn:mime-type
+ + image/png
+
+<a id="userdrake2tags1133pixmapsuser_addpng">Added: userdrake2/tags/1.13.3/pixmaps/user_add.png</a>
+===================================================================
+(Binary files differ)
+
+
+Property changes on: userdrake2/tags/1.13.3/pixmaps/user_add.png
+___________________________________________________________________
+Added: svn:mime-type
+ + image/png
+
+<a id="userdrake2tags1133pixmapsuser_confpng">Added: userdrake2/tags/1.13.3/pixmaps/user_conf.png</a>
+===================================================================
+(Binary files differ)
+
+
+Property changes on: userdrake2/tags/1.13.3/pixmaps/user_conf.png
+___________________________________________________________________
+Added: svn:mime-type
+ + image/png
+
+<a id="userdrake2tags1133pixmapsuser_delpng">Added: userdrake2/tags/1.13.3/pixmaps/user_del.png</a>
+===================================================================
+(Binary files differ)
+
+
+Property changes on: userdrake2/tags/1.13.3/pixmaps/user_del.png
+___________________________________________________________________
+Added: svn:mime-type
+ + image/png
+
+<a id="userdrake2tags1133pixmapsuserdrakepng">Added: userdrake2/tags/1.13.3/pixmaps/userdrake.png</a>
+===================================================================
+(Binary files differ)
+
+
+Property changes on: userdrake2/tags/1.13.3/pixmaps/userdrake.png
+___________________________________________________________________
+Added: svn:mime-type
+ + image/png
+
+<a id="userdrake2tags1133poMakefile">Added: userdrake2/tags/1.13.3/po/Makefile</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/Makefile (rev 0)
++++ userdrake2/tags/1.13.3/po/Makefile 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,49 @@
++# Installation directories
++localedir = $(PREFIX)/usr/share/locale
++
++PGOAL = userdrake
++
++# perl files to search translatable strings in
++PL_FILES = $(shell cat POTFILES.in | sed 's,^,../,' )
++# C-like files to search translatable strings in
++CFILES = ../USER/USER.xs
++
++POFILES = $(shell ls *.po)
++MOFILES = $(POFILES:%.po=%.mo)
++LANGS = $(POFILES:%.po=%)
++
++GOALS = $(PGOAL).pot $(MOFILES)
++
++all: $(GOALS)
++
++install: all
++ for l in $(LANGS); do \
++ install -d $(localedir)/$$l/LC_MESSAGES; \
++ install -m 644 $$l.mo $(localedir)/$$l/LC_MESSAGES/$(PGOAL).mo; \
++ done
++
++clean:
++ rm -f *~ *.[oas] *.mo TAGS
++
++%.mo: %.po
++ msgfmt -o $@ $&lt;
++
++$(PGOAL).pot: POTFILES.in $(PL_FILES) $(CFILES)
++ xgettext -F -n --add-comments \
++ --keyword=_ --keyword=__ --keyword=N_ --keyword=N \
++ --keyword=gettext \
++ --language=C -o placeholder.pot $(CFILES)
++ #touch placeholder.pot
++ perl_checker -q --generate-pot $(PGOAL)_tmp.pot $(PL_FILES) || rm -f $(PGOAL)_tmp.pot
++ [ ! -e $(PGOAL)_tmp.pot ] || msgcat --use-first placeholder.pot $(PGOAL)_tmp.pot &gt; $@
++ rm -f placeholder.pot $(PGOAL)_tmp.pot
++
++update_n_merge: $(PGOAL).pot merge
++
++merge:
++ @for n in $(POFILES); do \
++ echo &quot;Merging $$n&quot;; \
++ msgmerge &quot;$$n&quot; $(PGOAL).pot &gt; &quot;$$n&quot;t; \
++ mv -f &quot;$$n&quot;t &quot;$$n&quot;; \
++ done
++
+
+
+Property changes on: userdrake2/tags/1.13.3/po/Makefile
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="userdrake2tags1133poPOTFILESin">Added: userdrake2/tags/1.13.3/po/POTFILES.in</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/POTFILES.in (rev 0)
++++ userdrake2/tags/1.13.3/po/POTFILES.in 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,2 @@
++userdrake
++USER/USER.pm
+
+<a id="userdrake2tags1133poafpo">Added: userdrake2/tags/1.13.3/po/af.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/af.po (rev 0)
++++ userdrake2/tags/1.13.3/po/af.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,757 @@
++# translation of userdrake-af.po to Afrikaans
++# translation of userdrake.po to
++# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
++# Dirk Konrad &lt;dirkvanderwalt@webmail.co.za&gt;, 2003.
++# Dirk van der Walt &lt;dirkvanderwalt@webmail.co.za&gt;, 2004.
++# Die uwe Ysbeer &lt;ysbeer@af.org.za&gt;, 2005.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-af\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2005-02-08 21:19+0000\n&quot;
++&quot;Last-Translator: Die uwe Ysbeer &lt;ysbeer@af.org.za&gt;\n&quot;
++&quot;Language-Team: Afrikaans &lt;i18n@af.org.za&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.9.1\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Fout met lees van %s: %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Fout met skep van %s: %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Fout met verwydering van %s: %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Kon nie spoellêer skep nie.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Kon nie spoellêer skep nie.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Kon nie spoellêer skep nie.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;onbekende fout&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Kon nie spoellêer skep nie.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Fout met uitvee van spoellêer.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Opsoek na Gerbruikers en Groepe .... Net 'n oomblik asb&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageia Users Management Tool&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Aksies&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Redigeer&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Skrap&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Opsies&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Filtreer 'system' gebruikers&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Lêer&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Herlaai&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Verlaat&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Voeg Gebruiker By&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Voeg _Groep by&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Help&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Raporteer 'n Fout&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Otrent&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Soek:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Pas filter toe&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Gebruikers&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Groepe&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Gebruikernaam&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Gebruiker ID&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Primere Groep&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Volle Naam&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Aanteken Dop&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Tuisgids&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Stand&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Groep Naam&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Groep ID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Group Lede&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Voeg Gebruiker By&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Voeg 'n gebruiker by die stelsel&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Voeg Groep By&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Voeg 'n groep by die stelsel&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Redigeer&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Redigeer gekose ry&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Verwyder&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Wis gekose ry&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Herlaai&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Herlaai die lys&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Gesluit&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Reeds Verval&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Kliek op die ikoon om dit te verander&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Skep Nuwe Gebruiker&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Skep Tuisgids&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Tuisgids: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Skep 'n unieke groep vir die gebruiker&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Spesifiseer gebruiker se ID self&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Gebruiker bestaan alreeds, kies asb. 'n ander gebruikernaam&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Ongepaarde Wagwoord&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Hierdie wagwoord is te eenvoudig. \n&quot;
++&quot;Behoorlike wagwoorde bevat meer as 6 karakters &quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Gebruiker UID is &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Die skep van 'n groep met 'n UID kleiner as 500 word nie aanbeveel nie.\n&quot;
++&quot;Wil u voort gaan?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Voeg %s by die 'users' groep&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Skep nuwe groep: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Voeg gebruiker: %s by.&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Kanselleer&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;OK&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Kies Groep&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Voeg by die bestaande groep&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Voeg by die 'users' groep&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;'n Groep met hierdie naam bestaan reeds. Wat wil u graag doen?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Skep Nuwe Groep&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Spesifiseer groep se ID self&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Groep bestaan alreeds, Gebruik asb. 'n ander Groepnaam&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;Groep GID is &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Die skep van 'n groep met 'n GID kleiner as 500 word nie aanbeveel nie.\n&quot;
++&quot;Moet ons voort gaan?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Voeg groep %s by&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Wis leêrs uit of nie?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Verwyder gebruiker %s\n&quot;
++&quot; Doen ook die volgende\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Verwyder Tuisgids: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Verwyder Posbus : /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Verwyder gebruiker: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Moet ons regtig groep %s verwyder?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s is 'n primere groep vir gebruiker %s\n&quot;
++&quot; Verwyder eers die gebruiker&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Verwyder groep: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Volle Naam:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Inteken:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Wagwoord:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Bevestig Wagwoord&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Aanteken Dop:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Groep Naam:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Kies asseblief ten minste een groep vir gebruiker&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Spesifiseer asseblief Jaar Maand en Dag \n&quot;
++&quot;waarop Rekening Verval &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;&quot;
++&quot;Voorsien asseblief al die verlangde inling rakende wagwoord veroudering\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;U kan nie gebruiker %s van hulle primere groep verwyder nie&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Tuis:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Gebruiker se Inligting&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Aktiveer verval van rekening&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Rekening verval (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Sluit Gebruiker se Rekening&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Rekening Inligting&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Gebruiker het laas sy/haar wagwoord verander op : &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Aktiveer Verval van Wagwoord&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Dae voor verandering toelaat :&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Aantal dae voor verandering verlang :&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Waarsku soveel dae voor verandering :&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Dae voor rekening de-aktiveer :&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Wagwoord Detail&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Kies die groepe waarvan die gebruiker 'n lid moet wees:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Groep Data&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Kies gebruikers vir hierdie groep :&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Groepeer Gebruikers&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Redigeer Groepe / Gebruikers&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;'n Fout het voorgekom&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Maak Toe&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Bestuur Gebruikers&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Dirk van der Walt &lt;dirkvanderwalt@webmail.co.za&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Naam spasie is leeg voorsien asseblief 'n naam&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;Die naam mag sleg alfabet letters, syfers, '-' en '_' bevat&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Naam is te lank&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Probleme&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;onbekende fout&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Fout met skep van %s: %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Programeerders: &quot;
+
+<a id="userdrake2tags1133poampo">Added: userdrake2/tags/1.13.3/po/am.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/am.po (rev 0)
++++ userdrake2/tags/1.13.3/po/am.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,743 @@
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/am.php3
++# Copyright (C) 2004 Free Software Foundation, Inc.
++# Alemayehu Gemeda &lt;alemayehu@gmx.at&gt;, 2004.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-am\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2005-02-13 02:21+0100\n&quot;
++&quot;Last-Translator: Alemayehu &lt;alemayehu@gmx.at&gt;\n&quot;
++&quot;Language-Team: Amharic &lt;am-translate@geez.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, fuzzy, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;ተጠቃሚ በማስወገድ ላይ: %s&quot;
++
++#: ../USER/USER.xs:490
++#, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:582
++#, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;ተጠቃሚዎችን አና ቡድኖችን በመጫን ላይ...እባክዎ ይጠብቁ&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;የMageia ተጠቃሚዎች ማስተዳደሪያ መሳሪያ&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_ተግባራት&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_አርም&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_አጥፋ&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_ምርጫዎች&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_የሲስተም ተጠቃሚዎችን አጣራ&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_ፋይል&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_በድጋሚ ጀምር&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_ውጣ&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;ኮንትሮል&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_ተጠቃሚ ጨምር&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/_ቡድን ጨምር&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_መረጃ&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_የስህተቱን ጉዳይ አመልክት&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_ስለ...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;ፈልግ:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;ማጣሪያ ተጠቀም&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;ተጠቃሚዎች&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;ቡድኖች&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;ተጠቃሚዎች እና ቡድኖች&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;የተጠቃሚ ስም&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;የተጠቃሚ መለያ ቁጥር&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;ቀዳሚ ብድን&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;ሙሉ ስም&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;የመግቢያ ሼል&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;የመጀመሪያ ዶሴ&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;ሁኔታ&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;የብድን ስም&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;የብድን መለያ ቁጥር&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;የብድን አባላት&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;ተጠቃሚ ጨምር&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;ወደ ሲስተሙ ተጠቃሚ ጨምር&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;ብድን ጨምር&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;ወደ ሲስተሙ ብዱን ጨምር&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;አርም&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;የተመረጠውን ረድፍ አርም&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;አጥፋ&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;የተመረጠውን ረድፍ አጥፋ&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;በድጋሚ አስጀምር&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;ዝርዝሩን በድጋሚ አስጀምር&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;ተቆልፏል&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;አልፎበታል&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;ምልክቱን ለመለወጥ ይጫኑት&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;አዲስ ተጠቃሚ ፍጠር&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;የመጀመሪያ ዶሴ ፍጠር&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;የመጀመሪያ ዶሴ: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;ለተጠቃሚው የግል ቡድን ፍጠር&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;ተጠቃሚው ቀደም ሲል ነበሩ፣ እባክዎ ሌላ የተጠቃሚ ስም ይምረጡ&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;ሚስጢራዊ ቃል አይመሳሰልም&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;ይህ ሚስጢራዊ ቃል በጣም ቀላል ነው። \n&quot;
++&quot; ጥሩ ሚስጢራዊ ቃላት ከ 6 የበለጠ አሃዞች ሊሆኑ ይገባል&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;%sን ወደ 'ተጠቃሚዎች' ብድን በስገባት ላይ&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;አዲስ ብድን በመፍጠር ላይ: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;ተጠቃሚ በመጨመር ላይ ፡ %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;ተወው&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;እሺ&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;ብድን ይምረጡ&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;ቀደም ሲል ወደ ነበረው ብድን ጨምር&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;ወደ ብድን 'ተጠቃሚዎች' ጨምር&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;በዚህ ስም የሚጠራ ብድን ቀደም ሲል አለ። ምን ማድረግ ይፈልጋሉ?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;አዲስ ብድን ፍጠር&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;ቡድኑ ቀደም ሲል ነበር፣ እባክዎ ሌላ የብድን ስም ይምረጡ&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;ብድን በመጨመር ላይ ፡ %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;ፋይሎቹ ይጥፉ ወይስ አይጥፉ?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;የመጀመሪያ ዶሴ አጥፋ: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;የፖስታ ሳጥን አጥፋ :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;ተጠቃሚ በማስወገድ ላይ: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;በርግጥ ይህንን ብድንን ማጥፋት ይፈልጋሉ?: %s&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;ብድን በማስወገድ ላይ: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;ሙሉ ስም:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;መግቢያ:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;ሚስጢራዊ ቃል:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;ሚስጢራዊ ቃሉን ያረጋግጡ:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;የመግቢያ ሼል:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;የብድን ስም:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;እባክዎ ለተጠቃሚው ቢያንስ አንድ ቡድን ይምረጡ&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;መጀመሪያ:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;የተጠቃሚ መረጃ&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;የመዝገብ ጊዜ ማለፍን አስችል&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;መዝገቡ ጊዜው የሚያልፍበት ቀን (አመት-ወር-ቀን):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;የተጠቃሚን መዝገብ ቆልፍ&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;የመዝገብ መረጃ&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;ተጠቃሚው ለመጨረሻ ጊዜ ሚስጢራዊ ቃሉን የቀየረው በ :&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;የሚስጢራዊ ቃል ጊዜ ማለፍን አስችል&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;ቀናት፣ ለውጥ ከመፈቀዱ በፊት :&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;ቀናት፣ ለውጥ ከማስፈለጉ በፊት :&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;ከለውጥ በፊት የቀናት ማስጠንቀቂያ :&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;የሚስጢራዊ ቃል መረጃ&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;ተጠቃሚው አባል የሚሆንባቸውን ብድኖች ይምረጡ:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;የብድን መረጃ&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;ወደዚህ ብድን የሚገቡትን ተጠቃሚዎች ይምረጡ :&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;የቡድን ተጠቃሚዎች&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;ቡድኖችን/ተጠቃሚዎችን አርም&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;ስህተት ተፈጥሯል&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;ዝጋ&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;የተጠቃሚዎች ማስተዳደሪያ&quot;
++
++#: ../userdrake:1282
++#, fuzzy, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mandriva Online&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Alemayehu &lt;alemayehu@gmx.at&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;የስሙ ቦታ ባዶ ነው፣ እባክዎ ስም ይስጡ&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;ስሙ በጣም ረጅም ነው&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;ስህተት&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;ተጠቃሚ በማስወገድ ላይ: %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;ደራሲዎች: &quot;
++
++#~ msgid &quot;Choice&quot;
++#~ msgstr &quot;ምርጫ&quot;
++
++#~ msgid &quot;No&quot;
++#~ msgstr &quot;አይ&quot;
++
++#~ msgid &quot;Yes&quot;
++#~ msgstr &quot;አዎ&quot;
+
+<a id="userdrake2tags1133poarpo">Added: userdrake2/tags/1.13.3/po/ar.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/ar.po (rev 0)
++++ userdrake2/tags/1.13.3/po/ar.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,799 @@
++# translation of userdrake.po to Arabic
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/ar.php3
++#
++# Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
++# Mohammed Gamal &lt;f2c2001@yahoo.com&gt;, 2001.
++# Munzir Taha Obeid &lt;munzirtaha@newhorizons.com.sa&gt;, 2004.
++# Youcef Rabah Rahal &lt;rahal@arabeyes.org&gt;, 2004.
++# Ossama M. Khayat &lt;okhayat@yahoo.com&gt;, 2005.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2005-02-28 23:22+0300\n&quot;
++&quot;Last-Translator: Ossama M. Khayat &lt;okhayat@yahoo.com&gt;\n&quot;
++&quot;Language-Team: Arabic &lt;support@arabeyes.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.9.1\n&quot;
++&quot;Plural-Forms: nplurals=4; plural=n==1 ? 0 : n==2 ? 1 : n&gt;=3 &amp;&amp; n&lt;=10 ? 2 : &quot;
++&quot;3\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;خطأ في قراءة `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;خطأ في إنشاء `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;خطأ في حذف `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;خطأ في إنشاء لفيفة البريد.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;خطأ في إنشاء لفيفة البريد.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;خطأ في إنشاء لفيفة البريد.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;خطأ مجهول&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;خطأ في إنشاء لفيفة البريد.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;خطأ في حذف لفيفة البريد.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;تحميل المستخدمين والمجموعات... الرجاء الانتظار&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;أداة ماندريبا لينكس لإدارة المستخدمين&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_أحداث&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_تحرير&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_حذف&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_خيارات&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/ت_صفية مستخدمي النظام&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_ملف&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/تح_ديث&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_خروج&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;خ&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_إضافة مستخدم&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/إضافة م_جموعة&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/مسا_عدة&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/إ_رسال تقرير بالعيوب&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_حول...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;بحث:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;تصفية&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;المستخدمون&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;المجموعات&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;المستخدمون والمجموعات&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;اسم المستخدم&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;هوية المستخدم&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;المجموعة الأساسية&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;الاسم الكامل&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;صدفة الدخول&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;الدليل الخاص&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;الحالة&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;اسم المجموعة&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;هوية المجموعة&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;أعضاء المجموعة&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;إضافة مستخدم&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;إضافة مستخدم إلى النظام&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;إضافة مجموعة&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;إضافة مجموعة الى النظام&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;تحرير&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;تحرير الصف المختار&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;حذف&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;حذف الصف المختار&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;تحديث&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;تحديث القائمة&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;تم إقفاله&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;انتهت صلاحيته&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;اضغط على الأيقونة لتغييرها&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;إنشاء مستخدم جديد&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;إنشاء دليل خاص&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;الدليل الخاص: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;إنشاء مجموعة خاصة بالمستخدم&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;تحديد هوية المستخدم يدوياً&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;المستخدم موجود مسبقاً، الرجاء اختيار اسم مستخدم آخر&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;كلمة المرور غير مطابقة&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;كلمة المرور هذه بسيطة جداً. \n&quot;
++&quot; كلمات المرور الجيدة يجب أن تكون &gt; 6 رموز&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;هوية المستخدم &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;لا يُنْصَح بإنشاء مستخدم بهوية &lt; 500 .\n&quot;
++&quot; هل أنت متأكد من أنك تريد فعل ذلك؟\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;إضافة %s إلى مجموعة المستخدمين 'users'&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;إنشاء المجموعة الجديدة: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;إضافة المستخدم: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;إلغاء&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;موافق&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;هوية المستخدم: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;اختيار مجموعة&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;إضافة إلى المجموعة الموجودة&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;إضافة إلى مجموعة 'المستخدمين'&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;توجد مجموعة بهذا الاسم مسبقاً. ماذا تريد أن تفعل؟&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;إنشاء مجموعة جديدة&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;تحديد هوية المجموعة يدوياً&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;هذه المجموعة موجودة مسبقاً، الرجاء اختيار اسم آخر للمجموعة&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; هوية المجموعة &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;لا يُنْصَح بإنشاء مجموعة بهوية أقل من 500.\n&quot;
++&quot; هل أنت متأكد من أنك تريد فعل ذلك؟\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;جاري إضافة المجموعة: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;هوية المجموعة: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;حذف الصف المختار؟&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;جاري حذف المستخدم %s\n&quot;
++&quot; قم كذلك بالمهام التالية\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;حذف الدليل الخاص: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;حذف صندوق البريد: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;جاري حذف المستخدم: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;هل تريد فعلاًُ حذف المجموعة %s؟&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s مجموعة أساسية للمستخدم %s\n&quot;
++&quot; احذف المستخدم أولاً&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;جاري حذف المجموعة: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;الاسم الكامل:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;اسم الدخول:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;كلمة المرور:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;تأكيد كلمة المرور:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;صدفة الدخول:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;اسم المجموعة:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;الرجاء اختيار مجموعة واحدة على الأقل للمستخدم&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;الرجاء تحديد السنة والشهر واليوم\n&quot;
++&quot; لانتهاء صلاحية الحساب &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;الرجاء ملء جميع حقول تقادم كلمة المرور\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;لا يمكنك حذف المستخدم '%s' من مجموعته الأساسية&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;الدليل الخاص:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;بيانات المستخدم&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;تمكين إنهاء صلاحية الحساب&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;تنتهي صلاحية الحساب (يوم/شهر/سنة):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;إقفال حساب المستخدم&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;معلومات الحساب&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;قام المستخدم بتغيير كلمة مروره عند: &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;تمكين إنهاء صلاحية كلمة المرور&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;عدد الأيام قبل السماح بالتغيير:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;عدد الأيام قبل المطالبة بالتغيير:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;عدد أيام التحذير قبل التغيير:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;عدد الأيام قبل إخماد الحساب:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;معلومات كلمة المرور&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;اختر المجموعات التي سيصبح المستخدم عضواً فيها: &quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;بيانات المجموعة&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;اختر المستخدمين الذين سيلتحقون بالمجموعة:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;مستخدمو المجموعة&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;تحرير المجموعات / المستخدمون&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;حدث خطأ&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;إغلاق&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;إدارة المستخدمين&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;ﻡﺎﻧﺩﺮﻴﺑﺍ ﻞﻴﻨﻜﺳ&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Arabeyes &lt;support@arabeyes.org&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;حقل الاسم فارغ فضلاً قم بتحديد اسم&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;يجب أن يحتوي الاسم فقط على حروف صغيرة، أرقام، `-' و `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;الاسم طويل جداً&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;خطأ&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;خطأ مجهول&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;خطأ في إنشاء `%s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;المؤلفون: &quot;
++
++#~ msgid &quot;Adding user : %s&quot;
++#~ msgstr &quot;إضافة المستخدم : %s&quot;
++
++#~ msgid &quot;Adding group : %s &quot;
++#~ msgstr &quot;جاري إضافة المجموعة: %s &quot;
++
++#~ msgid &quot;Delete Home Directory :%s&quot;
++#~ msgstr &quot;حذف الدليل الخاص: %s&quot;
++
++#~ msgid &quot;Delete Mailbox :/var/spool/mail/%s&quot;
++#~ msgstr &quot;حذف صندوق البريد :/var/spool/mail/%s&quot;
++
++#~ msgid &quot;Login&quot;
++#~ msgstr &quot;اسم الدخول&quot;
++
++#~ msgid &quot;Password&quot;
++#~ msgstr &quot;كلمة المرور&quot;
++
++#~ msgid &quot;Home&quot;
++#~ msgstr &quot;الدليل الخاص&quot;
++
++#~ msgid &quot;User last changed password on : &quot;
++#~ msgstr &quot;قام المستخدم بتغيير كلمة مروره عند : &quot;
++
++#~ msgid &quot;Days before change allowed :&quot;
++#~ msgstr &quot;عدد الأيام قبل السماح بالتغيير :&quot;
++
++#~ msgid &quot;Days before change required :&quot;
++#~ msgstr &quot;عدد الأيام قبل المطالبة بالتغيير :&quot;
++
++#~ msgid &quot;Days warning before change :&quot;
++#~ msgstr &quot;عدد أيام التحذير قبل التغيير :&quot;
++
++#~ msgid &quot;Days before account inactive :&quot;
++#~ msgstr &quot;عدد الأيام قبل إخماد الحساب :&quot;
++
++#~ msgid &quot;Select the users to join this group :&quot;
++#~ msgstr &quot;اختر المستخدمين الذين سيلتحقون بالمجموعة :&quot;
+
+<a id="userdrake2tags1133poastpo">Added: userdrake2/tags/1.13.3/po/ast.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/ast.po (rev 0)
++++ userdrake2/tags/1.13.3/po/ast.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,750 @@
++# Copyright (C) 2000,2003, 2004, 2007 Free Software Foundation, Inc.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: es\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2010-01-28 16:58+0100\n&quot;
++&quot;Last-Translator: marquinos &lt;marquinos@mandriva.org&gt;\n&quot;
++&quot;Language-Team: Asturian &lt;alministradores@softastur.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Fallu al lleer `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Fallu criando `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Fallu desaniciando `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Fallu al criar cola de corréu.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Fallu al criar cola de corréu.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Fallu al criar cola de corréu.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;fallu desconocíu&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Fallu al criar cola de corréu.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Fallu al desaniciar cola de corréu.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Cargando usuarios y grupos... Por favor, espera&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Ferramienta d'alministración d'usuarios de Mageia&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;/_Instalar cuenta d'invitáu&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;/_Desaniciar cuenta d'invitáu&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Aiciones&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Editar&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Desaniciar&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Opciones&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Peñerar usuarios del sistema&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Ficheru&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Refrescar&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Colar&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Amestar usuariu&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Amestar _Grupu&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/A_ida&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Informar bug&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Tocante a...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Guetar:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Aplicar peñera&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Usuarios&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Grupos&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Usuarios y grupos&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Nome d'usuariu&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ID d'usuariu&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Grupu primariu&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Nome completu&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Shell d'identificación&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Directoriu personal&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Estáu&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Nome del grupu&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ID de grupu&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Miembros del grupu&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Amestar usuariu&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Amestar un usuariu al sistema&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Amestar grupu&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Amestar un grupu al sistema&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Editar&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Editar filera seleicionada&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Desaniciar&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Desaniciar filera seleicionada&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Refrescar&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Refrescar la llista&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Bloquiáu&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Espiráu&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Calca sobro l'iconu pa camudalu&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Criar usuariu nuevu&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Criar direutoriu personal&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Directoriu personal: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Criar un grupu priváu pal usuariu&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Especificar ID d'usuariu manualmente&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;L'usuariu ya esiste nel sistema, por favor usa otru nome d'usuariu&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Nun concasa la contraseña&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Esta contraseña ye enforma simple. \n&quot;
++&quot; Les contraseñes bones deberíen tener más de 6 carauteres&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;L'UID del usuariu ye menor a 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Nun recomendao criar un usuariu con UID menor a 500.\n&quot;
++&quot;¿De xuro que quies face esto?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Poniendo %s nel grupu 'users'&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Criando grupu nuevu: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Amestando usuariu: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Asistente de migración&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;¿Quies executar l'asistente de migración pa importar los axustes y &quot;
++&quot;documentos de Windows® na distribución Mageia?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Encaboxar&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Aceutar&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Escoyer un grupu&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Amestar al grupu esistente&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Amestar al grupu 'users'&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Ya esiste un grupu con esti nome. ¿Qué quies facer?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Criar nuevu grupu&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Especificar ID de grupu manualmente&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;El grupu ya esiste, por favor usa otru nome de grupu&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;El GID del grupu ye menor a 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Nun recomendao criar un grupu con GID menor a 500.\n&quot;
++&quot;¿De xuro que quies facer esto?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Amestando grupu: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;¿Desaniciar ficheros o non?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Desaniciando usuariu %s\n&quot;
++&quot; Faciendo tamién les siguientes aiciones\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Desaniciar direutoriu personal: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Desaniciar buzón de corréu: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Desaniciando usuariu: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;¿De xuro que quies desaniciar el grupu %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s ye un grupu primariu pal usuariu %s\n&quot;
++&quot;Desanicia primero al usuariu&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Desaniciando grupu: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Nome completu:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Identificación:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Contraseña:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Confirmar contraseña:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Shell d'identificación:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Nome del grupu:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Por favor, escueyi al menos un grupu pal usuariu&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Por favor, especifica l'añu, mes y día\n&quot;
++&quot;pa la espiración de la cuenta&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Por favor, completa tolos campos na desactivación de la contraseña\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Nun puedes desaniciar al usuariu '%s' del so grupu primariu&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Directoriu personal:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Datos d'usuariu&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Activar espiración de cuenta&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;La cuenta espira (AAAA-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Bloquiar cuenta d'usuariu&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Información de la cuenta&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;L'usuariu camudó la contraseña por cabera vegada'l : &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Activar espiración de contraseña&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Díes enantes de permitir el cambéu:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Díes enantes de requerir el cambéu:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Díes d'avisu enantes del cambéu:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Díes enantes que la cuenta se desactive:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Información de contraseña&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Escueyi los grupos a los cuales pertenecerá l'usuariu:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Datos del grupu&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Escueyi los usuarios que formarán parte d'esti grupu:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Grupu d'usuarios&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Editar Grupos / Usuarios&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Hebo un fallu:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Zarrar&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Copyright (C) %s by Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Alministración d'usuarios&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Softastur &lt;alministradores@softastur.org&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;El campu de nome ta baleru, por favor pon un nome&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;El nome tien de caltener namái lletres minúscules, númberos, `-' y `_'&quot;
++
++#: ../userdrake:1300
++#, fuzzy, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;El nome ye perllargu&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Fallu&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;fallu desconocíu&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Fallu criando `%s': %s&quot;
+
+<a id="userdrake2tags1133poazpo">Added: userdrake2/tags/1.13.3/po/az.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/az.po (rev 0)
++++ userdrake2/tags/1.13.3/po/az.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,762 @@
++# translation of userdrake-az.po to Azerbaijani
++# translation of userdrake-az.po to Azerbaijani Turkish
++# userdrake-az.po faylının Azərbaycan dilinə tərcüməsi
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/az.php3
++#
++# Copyright (C) 2003, 2004 Free Software Foundation, Inc.
++# Vasif Ismailoglu &lt;azerb_linux@hotmail.com&gt;, 2000.
++# Mətin Əmirov &lt;metin@karegen.com&gt;, 2003, 2004.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-az\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2004-09-12 17:14+0300\n&quot;
++&quot;Last-Translator: Mətin Əmirov &lt;metin@karegen.com&gt;\n&quot;
++&quot;Language-Team: Azerbaijani &lt;translation-team-az@lists.sourceforge.net&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.3.1\n&quot;
++&quot;Plural-Forms: nplurals=1; plural=0;\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;`%s' oxuna bilmədi: %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;`%s' yaradıla bilmədi: %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;`%s' silinə bilmədi: %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Mail spool yaradıla bilmədi.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Mail spool yaradıla bilmədi.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Mail spool yaradıla bilmədi.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;naməlum xəta&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Mail spool yaradıla bilmədi.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Mail spool silinə bilmədi.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;İstifadəçilər və Qruplar Yüklənir... Xahiş edirik, gözləyin&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageia İstifadəçi İdarəsi Vasitəsi&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Gedişatlar&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Düzəlt&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Sil&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Seçimlər&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Sistem istifadəçilərini filtrlə&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Fayl&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Təzələ&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/Çı_x&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_İstifadəçi Əlavə Et&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/_Qrup Əlavə Et&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Yardım&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Xəta Raportu Göndər&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Haqqında...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Axtar:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Filtri tətbiq et&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;İstifadəçilər&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Qruplar&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;İstifadəçilər və qruplar&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;İstifadəçi Adı&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;İstifadəçi ID'si&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Əsas Qrup&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Tam Ad&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Giriş Qabığı&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Ev Cərgəsi&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Vəziyyət&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Qrup Adı&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Qrup ID'si&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Qrupun Üzvləri&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;İstifadəçi Əlavə Et&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Sistemə istifadəçi əlavə et&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Qrup Əlavə Et&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Sistemə qrup əlavə et&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Düzəlt&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Seçili sətiri düzəlt&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Sil&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Seçili sətiri sil&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Təzələ&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Siyahını təzələ&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Qıfıllı&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Vaxtı Bitib&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Dəyişdirmək üçün timsala tıqlayın&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Yeni İstifadəçi Yarat&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Ev Cərgəsi Yarat&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Ev Cərgəsi: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;İstifadəçi üçün xüsusi (private) qrup yarat&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;İstifadəçi ID'sini əllə müəyyən et&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;&quot;
++&quot;Bu istifadəçi onsuz da mövcuddur, xahiş edirik başqa İstifadəçi Adı seçin&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Şifrələr Uyğun Gəlmir&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Şifrə həddindən artıq qısadır. \n&quot;
++&quot;Məsləhət görülən şifrələrin 6 hərfdən böyük olmasıdır&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;İstifadəçi Uid'i &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;UID'i 500'dən az olan istifadəçi yaradmaq məsləhət edilmir.\n&quot;
++&quot; Bunu həqiqətən də etmək istəyirsiniz?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;%s 'users' qrupuna yerləşdirilir&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Yeni qrup yaradılır: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;İstifadəçi əlavə edilir: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Ləğv et&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Oldu&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Qrupu seç&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Mövcud qrupa əlavə et&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;'users' qrupuna əlavə et&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Bu adla onsuzda bir qrup mövcuddur. Nə etmək istəyirsiniz?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Yeni Qrup Yarat&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Qrup ID'sini əllə müəyyən et&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Bu qrup onsuz da mövcuddur, xahiş edirik başqa Qrup Adı seçin&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; Qrup Gid'i &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;GID'i 500'dən az olan qrup yaratmaq məsləhət edilmir.\n&quot;
++&quot; Bunu həqiqətən də etmək istəyirsiniz?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Qrup əlavə edilir: %s&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Fayllar silinsin?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;%s istifadəçisi silinir\n&quot;
++&quot; Həmçinin bunları da yerinə gətir\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Ev Cərgəsini Sil: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Poçt Qutusunu Sil :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;İstifadəçi silinir: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Həqiqətən də %s qrupunu silmək istəyirsiniz?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s, %s istifadəçisinin əsas qrupudur\n&quot;
++&quot; Əvvəlcə istifadəçini silin&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Qrup silinir: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Tam Ad:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Giriş:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Şifrə:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Şifrənin Təsdiqi:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Giriş Qabığı:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Qrup Adı:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Xahiş edirik, istifadəçi üçün ən az bir qrup seçin&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Xahiş edirik, hesabın vaxtının bitməsinin \n&quot;
++&quot; İl, Ay və Gününü tə'yin edin&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;&quot;
++&quot;Xahiş edirik, şifrə vaxtının bitməsi qurğularının bütün sahələrini doldurun\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;'%s' istifadəçisini onun əsas qrupundan çıxara bilməzsiniz&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Ev:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;İstifadəçi Mə'lumatı&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Hesabın vaxtının bitməsini fəallaşdır&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Hesabın vaxtının bitmə tarixi (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;İstifadəçi Hesabını Qıfılla&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Hesab Mə'lumatı&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;İstifadəçi şifrəsini ən son bu vaxtda dəyişib : &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Şifrə Vaxtının Bitməsini Fəallaşdır&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Dəyişdirmə icazəsi əvvəlindəki gün :&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Dəyişdirmə məcburiyyəti əvvəlindəki gün :&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Dəyişdirmədən xəbərdarlıq əvvəlindəki gün :&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Hesabın qeyri-fəal olması əvvəlindəki gün :&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Şifrə Mə'lumatı&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;İstifadəçinin üzv olacağı qrupları seçin:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Qrup Mə'lumatı&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Bu qrupa qoşulacaq istifadəçiləri seçin :&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Qrup İstifadəçiləri&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Qrupları/İstifadəçiləri Düzəlt&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Bir xəta oldu&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Bağla&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;İstifadəçi İdarəsi&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Mətin Əmirov &lt;metin@karegen.com&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Ad sahəsi boşdur, xahiş edirik bir ad tə'yin edin&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++&quot;Ad yalnız kiçik hərfləri, ədədləri, `-' və `_' hərfləri daxil edə bilər&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Ad çox uzundur&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Xəta&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;naməlum xəta&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;`%s' yaradıla bilmədi: %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Müəlliflər: &quot;
+
+<a id="userdrake2tags1133pobepo">Added: userdrake2/tags/1.13.3/po/be.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/be.po (rev 0)
++++ userdrake2/tags/1.13.3/po/be.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,761 @@
++# Belarussian translation of userdrake.pot
++# Copyright (C) 2003 Mandriva
++# This file is distributed under the same license as the Userdrake package.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: Userdrake\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2003-08-14 16:54+0300\n&quot;
++&quot;Last-Translator: Maxim Kuzmich &lt;max_kuzm@tut.by&gt;\n&quot;
++&quot;Language-Team: Belarusian\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 0.9.6\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:490
++#, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:582
++#, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;невядомая памылка&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Дастасаваньне для кіраваньня карыстальнікамі Mageia&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Дзеяньні&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Рэдагаваць&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Выдаліць&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Налады&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Фільтраваць сыстэмных карыстальнікаў&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Файл&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Аднавіць&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Выхад&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Дадаць карыстальніка&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Дадаць _групу&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Дапамога&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Паведаміць пра памылку&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Пра...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Шукаць:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Ужыць фільтар&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Карыстальнікі&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Групы&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Імя карыстальніка&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ID карыстальніка&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Асноўная група&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Поўнае імя&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Хатні каталёг&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Стан&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Імя групы&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ID групы&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Сябры групы&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Дадаць карыстальніка&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Дадаць карыстальніка ў сыстэму&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Дадаць групу&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Дадаць групу ў сыстэму&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Рэдагаваць&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Рэдагаваць вылучаны радок&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Выдаліць&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Выдаліць вылучаны радок&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Аднавіць&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Аднавіць сьпіс&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Блакіраваны&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Націсніце на піктаграму каб зьмяніць яе&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Стварыць новага карыстальніка&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Стварыць хатні каталёг&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Хатні каталёг: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Стварыць прыватную групу для карыстальніка&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Пазначыць карыстальніцкі ID&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Карыстальнік ўжо існуе, пазначце другое Імя&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Несупадзеньне пароляў&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Гэты пароль занадта просты. \n&quot;
++&quot; Добрыя паролі павінны быць большыя за 6 літараў&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Карыстальніцкі ID &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Стварэньне карыстальніка з UID меншым за 500 не рэкамэндавана.\n&quot;
++&quot; Ці вы ўпэўнены, што хочаце зрабіць гэта?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, fuzzy, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Дадаць у групу 'users'&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Адмена&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Так&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:510
++#, fuzzy, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Выберыце групу&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Дадаць у існуючую групу&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Дадаць у групу 'users'&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Група з такім імём ўжо існуе. Што будзем рабіць?&quot;
++
++#: ../userdrake:546
++#, fuzzy, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Стварыць новага карыстальніка&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Пазначыць ID групы&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Група ўжо існуе, пазначце другое імя для групы&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; ID групы меншы за 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Стварэньне групы з GID меншым за 500 не рэкамэндавана.\n&quot;
++&quot; Ці вы ўпэўненыя ў тым што робіце?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:636
++#, fuzzy, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Выдаліць вылучаны радок&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Выдаленьне карыстальніка %s\n&quot;
++&quot; Таксама выканаць наступныя дзеі\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Выдаліць хатні каталёг: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Выдаліць паштовую скрыню: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Ці жадаеце выдаліць групу %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s асноўная група для карыстальніка %s\n&quot;
++&quot; Спачатку выдаліце гэтага карыстальніка&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Поўнае імя:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Уваход:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Пароль:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Яшчэ раз пароль:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Імя групы:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Пазначце ня менш адной групы для карыстальніка&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Вы ня можаце выдаліць карыстальніка '%s' зь ягонай асноўнай групы&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Хата:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Карыстальніцкія дадзеныя&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Дазволіць тэрмін дзеяньня запісу&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Тэрмін дзеяньня выцякае (ГГГГ-ММ-ДД)&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Блакіраваць карыстальніцкі запіс&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Інфармацыя запісу&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Карыстальнік змяняў пароль апошні раз: &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Дазволіць тэрмін дзеяньня паролю&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Інфармацыя пра пароль&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Выберыце групы сябром якіх будзе карыстальнік:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Дадзеныя групы&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Пазначце карыстальнікаў каб аб'яднаць у гэтыю групу&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Карыстальнікі групы&quot;
++
++#: ../userdrake:1127
++#, fuzzy, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Карыстальнікі групы&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Адбылася памылка&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Зачыніць&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1280
++#, fuzzy, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Імя карыстальніка&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Поле \&quot;Імя\&quot; пустое. Пазначце яго&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++&quot;Імя павінна ўтрымліваць толькі маленькія лацінскія літары, лічбы, `-' ды `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Імя занадта доўгае&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Памылка&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;невядомая памылка&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Аўтары: &quot;
++
++#~ msgid &quot;Yes&quot;
++#~ msgstr &quot;Так&quot;
++
++#~ msgid &quot;No&quot;
++#~ msgstr &quot;Не&quot;
++
++#, fuzzy
++#~ msgid &quot;Delete files or not&quot;
++#~ msgstr &quot;Выдаліць вылучаны радок&quot;
++
++#~ msgid &quot;Warning : Deleting User&quot;
++#~ msgstr &quot;Папярэджаньне : Выдаленьне карыстальніка&quot;
++
++#~ msgid &quot;Warning : Deleting Group&quot;
++#~ msgstr &quot;Увага : Выдаленьне групы&quot;
+
+<a id="userdrake2tags1133pobgpo">Added: userdrake2/tags/1.13.3/po/bg.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/bg.po (rev 0)
++++ userdrake2/tags/1.13.3/po/bg.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,770 @@
++# translation of userdrake-bg.po to Bulgarian
++# translation of userdrake2-bg.po to Bulgarian
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/bg.php3
++#
++# translation of userdrake.po to Bulgarian
++# Tzenko Tcholakov &lt;tzenko@tchoko.net&gt;, 2000,2002.
++# Boyan Ivanov &lt;boyan17@bulgaria.com&gt;, 2003, 2004.
++# Dimitar Terziev &lt;mitak@unix-bg.org&gt;, 2005.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-bg\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2009-04-11 09:18+0200\n&quot;
++&quot;Last-Translator: Rossen Karpuzov &lt;gustav cointech net&gt;\n&quot;
++&quot;Language-Team: Mandriva User Group - Bulgaria &lt; mandriva-bg@googlegroups.&quot;
++&quot;com&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Language: bg\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++&quot;X-Generator: Pootle 1.2.1\n&quot;
++&quot;X-Poedit-Language: Bulgarian\n&quot;
++&quot;X-Poedit-Country: BULGARIA\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Грешка при четене `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Грешка при създаване на `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Грешка при изтриване: `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Грешка при създаване на mail spool.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Грешка при създаване на mail spool.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Грешка при създаване на mail spool.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;непозната грешка&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Грешка при създаване на mail spool.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Грешка при изтриване на главен spool.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Зареждам потребителите и групите... Моля изчакайте&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Мандрива линукс инструмент за работа с потребителски сметки&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Действия&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Промени&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Изтрий&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Настройки&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Филтрира системните потребители&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Файл&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Опресни&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Изход&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Добави потребител&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Добави _група&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/Помощ&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Уведоми за грешка&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Информация...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Търси:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Използва филтър&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Потребители&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Групи&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Потребители и групи&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Име на потребител&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Потребителски номер&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Основна група&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Пълно име&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Влизане в системата&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Домашна директория на потребител&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Статус&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Име на група&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Номер на група&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Членове на група&quot;
++
++# broken into two lines to avoid too large a button
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;&quot;
++&quot;Добави\n&quot;
++&quot;потребител&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Добавя потребител към системата&quot;
++
++# broken into two lines to avoid too large a button
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Добави група&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Добавя група към системата&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Промени&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Редактира избраната редица&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Изтрий&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Изтрива избраната редица&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Опресни&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Опресни списъка с потребителите&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Заключен&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Просрочен&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Щракнете на иконата,за да я промените&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Създава нов потребител&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Създава домашна директория&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Домашна директория:&quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Създава лична група за потребителя&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Ръчно задаване на потребителски номер&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Това име вече съществува в системата,моля изберете друго&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Паролите не съвпадат&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Паролата е твърде проста. \n&quot;
++&quot;Добри пароли са тези с поне 6 символа.&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Потребителският номер е по-малък от 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Създаване на потребител с номер по-малък от 500 не е препоръчително.\n&quot;
++&quot;Сигурни ли сте,че го желаете ?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Добавяне на %s в група \&quot;потребители\&quot;&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Създаване на нова група: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Добавяне на потребител: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Помощник за миграция&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;Искате ли да бъде стартиран помощника за миграция в задание давмъкне Windows &quot;
++&quot;документи и настройки във вашата Мандрива Линукс?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Отказ&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Добре&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Изберете група&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Добавя към съществуваща група&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Добавяне към група \&quot;потребители\&quot;&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot; Група с това име съществува. Какво желаете да направя?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Създаване на нова група&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Ръчно задаване на номер на група&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Групата вече съществува,моля изберете друго име&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;ГИД е по-малък от 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Създаване на група с GID &lt; 500 не е препоръчително\n&quot;
++&quot; Сигурен ли сте,че желаете да го направите ?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Добавяне на група: %s&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Изтриване на файлове ?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Изтриване на потребител %s\n&quot;
++&quot; Също изпълни следните действия:\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Изтриване на домашна директория: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Изтриване на пощенска кутия: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Изтриване на потребител: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Наистина ли желаете да изтриете група %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s е основната група на потребител %s\n&quot;
++&quot; Изтрийте първо потребителя.&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Изтриване на група: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Пълно име:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Влизане в с-мата:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Парола:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Потвърждение:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Влизане в системата:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Име на група:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Моля изберете поне една група за потребителя&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Моля въведете година,месец и ден, \n&quot;
++&quot; до които важи сметката&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Моля попълнете всички полета за \&quot;остаряване\&quot; на паролата\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Не можете да махнете потребител %s от основната му група&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Дом:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Потребителска информация&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Включва валидност на сметките&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Сметката е валидна до (ГГГГ-ММ-ДД):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Заключва потребителска сметка&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Информация за сметка&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Потребителят е сменил последно паролата си на : &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Включва валидност на паролите&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Дни преди да бъде разрешена смяна:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Дни преди да бъде наложена смяна:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Предупреждение (в дни) преди промяната:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Дни преди сметката да стане неактивна&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Информация за паролите&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Изберете към на кои групи ще бъде член потребителят:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Информация за групите&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Изберете потребители за тази група:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Потребители в групата&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Промяна на потребители/групати&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Появи се грешка&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Затвори&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Запазени права (C) %s от Мандрива&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Работа със сметки&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Boyan Ivanov &lt;boyan17@bulgaria.com&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Полето за име е празно,моля въведете нещо.&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++&quot;Името трябва да съдържа латински букви в долен регистър,цифри,`-' и `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Името е твърде дълго&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Грешка&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;непозната грешка&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Грешка при създаване на `%s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Автори:&quot;
+
+<a id="userdrake2tags1133pobnpo">Added: userdrake2/tags/1.13.3/po/bn.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/bn.po (rev 0)
++++ userdrake2/tags/1.13.3/po/bn.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,753 @@
++# Bangla Translation of userdrake.po.
++# Copyright (C) 2004 Free Software Foundation, Inc.
++# Runa Bhattacharjee &lt;runa@bengalinux.org&gt;, 2004.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: Userdrake VERSION\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2004-07-28 11:14+0600\n&quot;
++&quot;Last-Translator: Jamil Ahmed &lt;jamil@bengalinux.org&gt;\n&quot;
++&quot;Language-Team: Bangla &lt;mdk-translation@bengalinux.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;`%s' পড়ার সময় সমস্যা হয়েছে: %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;`%s' তৈরি করার সময় সমস্যা হয়েছে: %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;`%s' মুছে ফেলার সময় সমস্যা হয়েছে: %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;মেইল স্পুল তৈরি করার সময় সমস্যা হয়েছে।\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;মেইল স্পুল তৈরি করার সময় সমস্যা হয়েছে।\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;মেইল স্পুল তৈরি করার সময় সমস্যা হয়েছে।\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;অজানা সমস্যা&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;মেইল স্পুল তৈরি করার সময় সমস্যা হয়েছে।\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;মেইল স্পুল মুছার সময় সমস্যা হয়েছে।\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;ইউজারড্রেক&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;ব্যবহারকারী এবং দল লোড করা হচ্ছে... দয়া করে অপেক্ষা করুন&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;ম্যান্ড্রেক লিনাক্স ইউসারস ম্যানেজমেন্ট টুল&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/কার্যবলী (_ক)&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/সম্পাদনা (_প)&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/মুছে ফেলা (_ছ)&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/অপশন (_অ)&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/সিস্টেম ব্যবহারকারীদের ফিল্টার করো (_ব)&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/ফাইল (_ফ)&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/নতুন করে প্রদর্শন(_ন)&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/প্রস্থান (_হ)&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/ব্যবহারকারী যোগ করো (_য)&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/দল যোগ করো (_দ)&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/সহায়িকা (_স)&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/ত্রুটি পেশ (_ত)&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/সম্বন্ধে (_ম)...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;অনুসন্ধান:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;ফিল্টার ব্যবহার করো&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;ব্যবহারকারী&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;দল&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;ব্যবহারকারী এবং দল&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;ব্যবহারকারীর নাম&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ব্যবহারকারীর ID&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;প্রাথমিক দল&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;সম্পূর্ণ নাম&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;লগ - ইন শেল&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;হোম ডিরেক্টরি&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;অবস্থা&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;দলের নাম&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;দলের ID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;দলের সদস্যবৃন্দ&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;ব্যবহারকারী যোগ করো&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;সিস্টেমে একজন ব্যবহারকারী যোগ করুন&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;দল যোগ করো&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;সিস্টেমে একটি দল যোগ করুন&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;সম্পাদন করো&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;নির্বাচিত সারি সম্পাদন করো&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;মুছে ফেলো&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;নির্বাচিত সারি মুছে ফেলো&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;পুনরায় প্রদর্শন করো&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;তালিকা পুনরায় প্রদর্শন করো&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;লক করা হয়েছে&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;সময়সীমা পেরিয়ে গেছে&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;পরিবর্তন করতে হলে আইকনে ক্লিক করুন&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;নুতন ব্যবহারকারী যোগ করো&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;হোম ডিরেক্টরি তৈরি করো&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;হোম ডিরেক্টরি তৈরি করো: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;ব্যবহারকারীর জন্য একটি ব্যক্তিগত দল তৈরি করো&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;ব্যবহারকারীর ID ম্যানুয়েলি নির্ধারণ করো&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;এই নামের ব্যবহারকারী বর্তমানে উপস্থিত আছে, দয়া করে আরেকটি নাম নির্বাচন করুন&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;পাসওয়ার্ড মেলেনি&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;এই পাসওয়ার্ডটি বেশ সহজ। \n&quot;
++&quot; যে কোনো ভালো পাসওয়ার্ড অন্তত ৬ টি অক্ষরের বেশি হওয়া উচিত&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;আপনার Uid ৫০০ নিচে&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;৫০০-র নিচে কোনো সংখ্যা UID তে ব্যবহার করা বাঞ্ছনীয় নয়।\n&quot;
++&quot; আপনি কি এই কাজ করার বিষয়ে নিশ্চিত?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;%s কে 'users' দলে ঢোকানো হচ্ছে&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;নতুন দল তৈরি করা হচ্ছে: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;ব্যবহারকারী যোগ করা হচ্ছে: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;বাতিল&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;ঠিক আছে&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;দল নির্বাচন করুন&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;উপস্থিত দলে যোগ করো&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;'users' দলে যোগ করো&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;এই নামে একটি দল বর্তমানে উপস্থিত আছে। আপনি কী করতে ইচ্ছুক?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;নতুন দল তৈরি করো&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;দলের ID ম্যানুয়েলি নির্ধারণ করো&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;দল বর্তমানে উপস্থিত আছে, দয়া করে দলের জন্য আরেকটি নাম নির্বাচন করুন&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; দলের Gid ৫০০-র নিচে আছে&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;৫০০-র নিচে কোনো সংখ্যা GID তে ব্যবহার করা বাঞ্ছনিয় নয়।\n&quot;
++&quot; আপনি কি এই কাজ করার বিষয়ে নিশ্চিত?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;দল যোগ করা হচ্ছে: %s&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;ফাইল মুছে ফেলা হবে কি না?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;%s ব্যবহারকারীকে মুছে ফেলা হচ্ছে\n&quot;
++&quot; নিম্নোক্ত কার্যগুলিও সম্পন্ন করো\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;হোম ডিরেক্টরি মুছে ফেলো: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;মেইলবক্স মুছে ফেলো :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;ব্যবহারকারীকে মুছে ফেলা হচ্ছে: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;আপনি কি %s দলটিকে মুছে ফেলার বিষয়ে নিশ্চিত&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s দলটি %s ব্যবহারকারীর প্রাথমিক দল\n&quot;
++&quot; ব্যবহারকারীকে প্রথমে সরিয়ে ফেলো&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;দলটি সরিয়ে ফেলা হচ্ছে: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;সম্পূর্ণ নাম:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;লগ-ইন:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;পাসওয়ার্ড:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;পাসওয়ার্ড নিশ্চিত করুন:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;লগ - ইন শেল:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;দলের নাম:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;ব্যবহারকারীর জন্য অন্তত একটি দল নির্বাচন করুন&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;অ্যাকাউন্টের সময়সীমা পূরণের বত্‌সর, মাস এবং দিন \n&quot;
++&quot;দয়া করে নির্ধারণ করুন &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;পাসওয়ার্ড-এর সময়সীমা সম্বন্ধীয় সব ক্ষেত্রগুলিকে দয়া করে পূর্ণ করুন।\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;'%s' ব্যবহারকারীকে আপনি তাদের মূল দল থেকে সরিয়ে ফেলতে পারবেন না&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;হোম:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;ব্যবহারকারীর ডাটা&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;অ্যাকাউন্টের সময়সীমা কার্যকরী করো&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;অ্যাকাউন্টের সময়সীমা পার হবে এই তারিখে (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;ব্যবহারকারীর অ্যাকাউন্ট লক করো&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;অ্যাকাউন্ট সম্বন্ধিয় তথ্য&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;ব্যবহারকারী পাসওয়ার্ড সর্বশেষ পরিবর্তন করেছিলেন : &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;পাসওয়ার্ডের সময়সীমা কার্যকরী করো&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;কতদিন পর পরিবর্তন করা যাবে :&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;কত দিন পরে পরিবর্তন প্রয়োজন :&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;পরিবর্তন করার পূর্বে সতর্কবাণী দেওয়ার সময়সীমা (দিন) :&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;অ্যাকাউন্টের সময়সীমা পুর্ণ হওয়ার আগের অবশিষ্ট দিন :&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;পাসওয়ার্ড সম্বন্ধিয় তথ্য&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;এই ব্যবহারকারী যে দলগুলির সদস্য হবে তা নির্বাচন করুন:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;ডাটা দলবদ্ধ করো&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;এই দলে যে ব্যবহারকারীদের যোগ করা হবে তাদের নির্বাচন করুন :&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;ব্যবহারকারীদের দলবদ্ধ করো&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;দল / ব্যবহারকারী সম্পাদন করুন&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;একটি ত্রুটি সম্পাদিত হয়েছে&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;বন্ধ করো&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;ব্যবহারকারীদের নিয়ন্ত্রন করা&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;ম্যান্ড্রিব লিনাক্স (Mageia)&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Bangla team &lt;mdk-translation@bengalinux.org&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;নামের ক্ষেত্রটি ফঁাকা রয়েছে, দয়া করে একটি নাম লিখুন&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++&quot;নামের মধ্যে শুধুমাত্র lowercase-এর লাতিন অক্ষর, সংখ্যা, `-' এবং `_' লেখা যাবে&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;নামটি অতিরিক্ত লম্বা&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;সমস্যা&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;অজানা সমস্যা&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;`%s' তৈরি করার সময় সমস্যা হয়েছে: %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;লেখক: &quot;
+
+<a id="userdrake2tags1133pobrpo">Added: userdrake2/tags/1.13.3/po/br.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/br.po (rev 0)
++++ userdrake2/tags/1.13.3/po/br.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,740 @@
++# Breton translation of Mageia.
++# Copyright (C) 2004 Free Software Foundation, Inc.
++# Thierry Vignaud &lt;tvignaud@mandriva.com&gt;, 2004
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: rpmdrake\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2006-03-17 16:59+0100\n&quot;
++&quot;Last-Translator: Ja-Mai Drapier &lt;jan-mai.drapier@mail.dotcom.fr&gt;\n&quot;
++&quot;Language-Team: Brezhoneg &lt;ofisk.bzh@wanadoo.fr&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=1;plural=0\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Fazi en ur lenn `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Fazi en ur krouiñ `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Fazi en ur lemel `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Fazi en ur krouiñ al lostenn postel.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Fazi en ur krouiñ al lostenn postel.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Fazi en ur krouiñ al lostenn postel.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;fazi dianav&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Fazi en ur krouiñ al lostenn postel.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Fazi en ur lemel al lostenn postel.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;O kargañ arveriaded ha strolladoù ... Gortozit mar plij&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Ostil mereañ arveriaded Mageia&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Oberoù&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Aozañ&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Dilemel&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Dibarzhoù&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Restr&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Adtresañ&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Kuitaat&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/Ouzhpennañ un _arveriad&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Ouzhpennañ un _strollad&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Skoazell&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Reiñ da c'houzout ur gudenn&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_A-brepoz...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Klask :&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Arloañ ar sil&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Arveriadioù&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Strolladoù&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Tud ha strolladoù&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Anv arveriad&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ID an arveriad&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Strollad kentañ&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Anv klok&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Shell ereañ&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Renkell ar gêr&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Stad&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Anv ar strollad&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ID ar strollad&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Ezelioù ar strollad&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Ouzhpennañ un arveriad&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Ouzhpennañ un arveriad d'ar reizhiad&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Ouzhpennañ ur strollad&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Ouzhpennañ ur strollad d'ar reizhiad&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Kemmañ&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Aozañ al linenn diuzet&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Lemel&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Lemel al linenn diuzet&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Adtresañ&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Adtresañ ar roll&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Krouilhet&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Kabac'het&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Klikit ouzh an arlun evit kemmañ anezhi&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Krouiñ un arveriad nevez&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Krouiñ ar renkell er-gêr&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Renkell ar gêr : &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Krouiñ ur strollad prevez evit an arveriad&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Lakaat ID an arveriad gant an dorn&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Endeo eo an arveriad, dibabit un anv arveriad all mar plij&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;An tremegerioù ne glot ket&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Oc'h ouzhpennañ %s d'ar strollad « users »&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;O grouiñ ar strollad nevez : %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Oc'h ouzhpennañ un arveriad : %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Nullañ&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Ya&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID : &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Dibabit ur strollad&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Ouzhpennañ d'ar strollad a zo c'hoazh&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Ouzhpennañ d'ar strollad 'users'&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Ur strollad gant an anv-se a zo c'hoazh. Petra e fell deoc'h d'ober ?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Krouiñ ur strollad nevez&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Lakaat ID ar strollad gant an dorn&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Endeo eo ar strollad, dibabit un anv strollad all mar plij&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Oc'h ouzhpennañ un strollad : %s&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID :&quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Dilemel ar restroù ?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Dilemel renkell ar gêr : %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Dilemel ar voest-lizheroù : /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;O tilemel an arveriad : %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Ha fellout a ra deoc'h da vat lemel ar strollad %s ?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;O tilemel ar strollad : %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Anv klok :&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Ereañ :&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Tremenger :&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Tremenger (adarre) :&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Shell ereañ :&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Anv ar strollad :&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Dibabit ur strollad evit an arveriad d'an nebeutañ mar plij&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Ker :&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Roadoù arveriad&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Titouroù diwar ar gont&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Titouroù diwar an tremenger&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Roadoù strollad&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Arveriaded ar strollad&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Aozañ strolladoù hag arveriaded&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Ur fazi zo bet :&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Serriñ&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Copyright (C) %s gant Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Mereañ ar averiaded&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++&quot;Jañ-Mai Drapier &lt;jan-mai.drapier@mail.dotcom.fr&gt;\n&quot;
++&quot;Thierry Vignaud &lt;tvignaud@mandriva.com&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Goullo eo an tachenn « anv ». Reiñ un anv mar plij&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Re vras eo an anv&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Fazi&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;fazi dianav&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Fazi en ur krouiñ `%s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Obererour: &quot;
+
+<a id="userdrake2tags1133pobspo">Added: userdrake2/tags/1.13.3/po/bs.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/bs.po (rev 0)
++++ userdrake2/tags/1.13.3/po/bs.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,1115 @@
++# translation of userdrake-bs.po to Bosnian
++# translation of userdrake-bs.po to Bosanski
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/bs.php3
++#
++# Copyright (C) 2001,2003, 2004. Free Software Foundation, Inc.
++# Amila Akagić &lt;bono@lugbih.org&gt;, 2001.
++# Vedran Ljubović &lt;vljubovic@smartnet.ba&gt;, 2003.
++# Amila Akagić &lt;bono@linux.org.ba&gt;, 2004.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-bs\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2004-08-17 12:54+0200\n&quot;
++&quot;Last-Translator: Amila Akagić &lt;bono@linux.org.ba&gt;\n&quot;
++&quot;Language-Team: Bosnian &lt;lokal@lugbih.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.3\n&quot;
++&quot;Plural-Forms: nplurals=3; plural=(n%10==1 &amp;&amp; n%100!=11 ? 0 : n%10&gt;=2 &amp;&amp; n%&quot;
++&quot;10&lt;=4 &amp;&amp; (n%100&lt;10 || n%100&gt;=20) ? 1 : 2);\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Greška prilikom čitanja `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Greška prilikom kreiranja `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Greška prilikom uklonjanja `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Greška prilikom kreiranja 'mail spool'-a.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Greška prilikom kreiranja 'mail spool'-a.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Greška prilikom kreiranja 'mail spool'-a.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;nepoznata greška&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Greška prilikom kreiranja 'mail spool'-a.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Greška prilikom brisanja 'mail spool'-a.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Učitavam korisnike i grupe... Molim sačekajte&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Alat za menadžement korisnika na Mageiau&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Akcije&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Edituj&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Izbriši&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Opcije&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Filtriraj sistemske korisnike&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Datoteka&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Osvježi&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Kraj&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/Dodaj _korisnika&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Dodaj _grupu&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Pomoć&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Prijavi grešku&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_O programu...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Pretraga:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Primijeni filter&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Korisnici&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Grupe&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Korisnici i grupe&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Korisničko ime&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Korisnički ID&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Primarna grupa&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Ime i prezime&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Shell&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Početni direktorij&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Status&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Naziv grupe&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Grupni ID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Članovi grupe&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Dodaj korisnika&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Dodaj korisnika na sistem&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Dodaj grupu&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Dodaj grupu na sistem&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Izmijeni&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Izmijeni izabrani red&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Izbriši&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Izbriši izabrani red&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Osvježi&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Osvježi listu&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Zaključano&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Isteklo&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Kliknite na ikonu da je promijenite&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Napravi novog korisnika&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Napravi početni direktorij&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Početni direktorij: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Napravi privatnu grupu za korisnika&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Ručno definiši korisnički ID&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Korisnik već postoji na sistemu. Izaberite drugo korisničko ime&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Šifre nisu jednake&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Ova šifra je previše jednostavna.\n&quot;
++&quot; Dobre šifre trebaju biti veće od 6 karaktera&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Korisnički Uid je &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Ne preporučuje se kreiranje korisnika sa UID-om ispod 500.\n&quot;
++&quot; Da li ste sigurni da želite uraditi ovo?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Dodajem %s u grupu 'users'&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Pravim novu grupu: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Dodajem korisnika: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Odustani&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;U redu&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Izaberite grupu&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Dodaj u postojeću grupu&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Dodaj u grupu 'users'&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Grupa sa ovim nazivom već postoji. Šta želite uraditi?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Napravi novu grupu&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Ručno definiši ID grupe&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Grupa već postoji, izaberite drugi naziv grupe&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; Grupni Gid je &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Ne preporučuje se kreiranje grupe sa GID-om manjim od 500.\n&quot;
++&quot; Da li ste sigurni da želite ovo uraditi?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Dodajem grupu: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Izbriši datoteke ili ne?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Brišem korisnika %s\n&quot;
++&quot; Također slijedeće akcije će biti poduzete\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Izbriši početni direktorij: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Izbriši mailbox :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Uklonjam korisnika: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Da li zaista želite izbrisatti grupu %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s je primarna grupa za korisnika %s\n&quot;
++&quot; Prvo uklonite korisnika&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Uklonjam grupu: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Ime i prezime:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Korisničko ime:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Šifra:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Ponovo šifra:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Shell:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Naziv grupe:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Izaberite bar jednu grupu za korisnika&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Definišite dan, mjesec i godinu\n&quot;
++&quot;kada će račun isteći&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Popunite sva polja za starenje (aging) šifre\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Ne možete ukloniti korisnika '%s' iz njegove primarne grupe&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Početni direktorij:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Podaci korisnika&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Uključi istek računa&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Račun ističe (DD-MM-YYYY):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Zaključaj korisnički račun&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Podaci o računu&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Korisnik je zadnji put promijeni šifru:&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Uključi istek šifre&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Dana prije nego je dozvoljena promjena:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Dana prije nego je promjena zahtjevana:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Dana upozorenja prije promjene:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Dana prije nego račun bude isključen:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Podaci o šifri&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Izaberite grupe čiji će član korisnik biti&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Podaci o grupi&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Izaberite korisnike koji će se pridružiti grupi&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Korisnici grupe&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Promijeni grupe/korisnike&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Došlo je do greške&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Zatvori&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Copyright (C) %s Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Menadžment korisnika&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Vedran Ljubovic &lt;vljubovic@smartnet.ba&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Polje za ime je prazno. Unesite ime&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;Ime mora sadržavati samo mala latinična slova, brojeve '-' i '_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Ime je predugačko&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Greška&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;nepoznata greška&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Greška prilikom kreiranja `%s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Autori: &quot;
++
++#~ msgid &quot;Yes&quot;
++#~ msgstr &quot;Da&quot;
++
++#~ msgid &quot;No&quot;
++#~ msgstr &quot;Ne&quot;
++
++#~ msgid &quot;Warning : Deleting User&quot;
++#~ msgstr &quot;Upozorenje: Brišem korisnika&quot;
++
++#~ msgid &quot;Warning : Deleting Group&quot;
++#~ msgstr &quot;Upozorenje: Brišem grupu&quot;
++
++#~ msgid &quot;Help&quot;
++#~ msgstr &quot;Pomoć&quot;
++
++#~ msgid &quot;Reload&quot;
++#~ msgstr &quot;Ponovo učitaj&quot;
++
++#~ msgid &quot;Save&quot;
++#~ msgstr &quot;Snimi&quot;
++
++#~ msgid &quot;Exit&quot;
++#~ msgstr &quot;Izlaz&quot;
++
++#~ msgid &quot;Settings&quot;
++#~ msgstr &quot;Podešavanja&quot;
++
++#~ msgid &quot;Show tools bar&quot;
++#~ msgstr &quot;Prikaži traku sa alatima&quot;
++
++#~ msgid &quot;View users&quot;
++#~ msgstr &quot;Prikaži korisnike&quot;
++
++#~ msgid &quot;Preferences&quot;
++#~ msgstr &quot;Postavke&quot;
++
++#~ msgid &quot;Ldap Server&quot;
++#~ msgstr &quot;Ldap server&quot;
++
++#~ msgid &quot;Save change&quot;
++#~ msgstr &quot;Spasi promjene&quot;
++
++#~ msgid &quot;Add&quot;
++#~ msgstr &quot;Dodaj&quot;
++
++#~ msgid &quot;Edit user(s)&quot;
++#~ msgstr &quot;Edituj korisnike&quot;
++
++#~ msgid &quot;Remove&quot;
++#~ msgstr &quot;Ukloni&quot;
++
++#~ msgid &quot;Edit group(s)&quot;
++#~ msgstr &quot;Edituj grupu(e)&quot;
++
++#~ msgid &quot;User id&quot;
++#~ msgstr &quot;Korisnički broj&quot;
++
++#~ msgid &quot;Group id&quot;
++#~ msgstr &quot;Grupni broj&quot;
++
++#~ msgid &quot;Comments&quot;
++#~ msgstr &quot;Komentari&quot;
++
++#~ msgid &quot;Shell&quot;
++#~ msgstr &quot;Shell&quot;
++
++#~ msgid &quot;name&quot;
++#~ msgstr &quot;ime&quot;
++
++#~ msgid &quot;gid&quot;
++#~ msgstr &quot;gid&quot;
++
++#~ msgid &quot;passwd&quot;
++#~ msgstr &quot;šifra&quot;
++
++#~ msgid &quot;users&quot;
++#~ msgstr &quot;korisnici&quot;
++
++#~ msgid &quot;Parameters&quot;
++#~ msgstr &quot;Parametri&quot;
++
++#~ msgid &quot;General option&quot;
++#~ msgstr &quot;Općenite opcije&quot;
++
++#~ msgid &quot;Edit accounts on a LDAP directory&quot;
++#~ msgstr &quot;Uredi accounte na LDAP direktoriju&quot;
++
++#~ msgid &quot;Active autologin support&quot;
++#~ msgstr &quot;Akrtiviraj autologin podršku&quot;
++
++#~ msgid &quot;User creation&quot;
++#~ msgstr &quot;Kreiranje korisnika&quot;
++
++#~ msgid &quot;Default shell:&quot;
++#~ msgstr &quot;Uobičajeni shell:&quot;
++
++#~ msgid &quot;Default home dir:&quot;
++#~ msgstr &quot;Uobičajeni kućni dir:&quot;
++
++#~ msgid &quot;Default face:&quot;
++#~ msgstr &quot;Uobičajena sličica:&quot;
++
++#~ msgid &quot;Default group:&quot;
++#~ msgstr &quot;Uobičajena grupa:&quot;
++
++#~ msgid &quot;General&quot;
++#~ msgstr &quot;Općenito&quot;
++
++#~ msgid &quot;Don't show user with id less than 500&quot;
++#~ msgstr &quot;Ne prikazuj korisnika sa brojem ispod 500&quot;
++
++#~ msgid &quot;User identifier&quot;
++#~ msgstr &quot;Korisnička oznaka&quot;
++
++#~ msgid &quot;Default Group&quot;
++#~ msgstr &quot;Uobičajena grupa&quot;
++
++#~ msgid &quot;Groups list&quot;
++#~ msgstr &quot;Lista grupa&quot;
++
++#~ msgid &quot;Users View&quot;
++#~ msgstr &quot;Korisnički pregled&quot;
++
++#~ msgid &quot;Group identifier&quot;
++#~ msgstr &quot;Oznaku grupe&quot;
++
++#~ msgid &quot;Groups View&quot;
++#~ msgstr &quot;Grupni pregled&quot;
++
++#~ msgid &quot;/bin/bash&quot;
++#~ msgstr &quot;/bin/bash&quot;
++
++#~ msgid &quot;uid:&quot;
++#~ msgstr &quot;uid:&quot;
++
++#~ msgid &quot;Comment:&quot;
++#~ msgstr &quot;Komentar:&quot;
++
++#~ msgid &quot;Shell:&quot;
++#~ msgstr &quot;Shell:&quot;
++
++#~ msgid &quot;Home dir:&quot;
++#~ msgstr &quot;Kućni dir:&quot;
++
++#~ msgid &quot;passwd:&quot;
++#~ msgstr &quot;šifra:&quot;
++
++#~ msgid &quot;Retype passwd:&quot;
++#~ msgstr &quot;Ukucaj ponovo šifru:&quot;
++
++#~ msgid &quot;Identity&quot;
++#~ msgstr &quot;Identitet&quot;
++
++#~ msgid &quot;Available groups&quot;
++#~ msgstr &quot;Dostupne grupe&quot;
++
++#~ msgid &quot;Extended&quot;
++#~ msgstr &quot;Prošireno&quot;
++
++#~ msgid &quot;About UserDrake&quot;
++#~ msgstr &quot;O UserDrake&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;Userdrake is an application to add and\n&quot;
++#~ &quot;delete users on the Mageia\n&quot;
++#~ &quot;distribution.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;Userdrake now support ldap directory\n&quot;
++#~ &quot;support conformed to rfc2307bis.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;This application is under the GPL\n&quot;
++#~ &quot;license and is delived without\n&quot;
++#~ &quot;any warranty.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;You can get support at : \n&quot;
++#~ &quot;http://www.mandrakeexpert.com/&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Userdrake je aplikacija za dodavanje i\n&quot;
++#~ &quot;brisanje korisnika u Mageia\n&quot;
++#~ &quot;distribuciji.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;Userdrake sada ima podršku za ldap directory\n&quot;
++#~ &quot;support conformed to rfc2307bis.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;Ova aplikacija je pod GPL\n&quot;
++#~ &quot;licencom i distribuirana je bez\n&quot;
++#~ &quot;ikakve garancije.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;Podršku možete pronaći na \n&quot;
++#~ &quot;http://www.mandrakeexpert.com/&quot;
++
++#~ msgid &quot;Name:&quot;
++#~ msgstr &quot;Ime:&quot;
++
++#~ msgid &quot;gid:&quot;
++#~ msgstr &quot;gid:&quot;
++
++#~ msgid &quot;In group&quot;
++#~ msgstr &quot;U grupi&quot;
++
++#~ msgid &quot;Not in group&quot;
++#~ msgstr &quot;Nije u grupi&quot;
++
++#~ msgid &quot;Quit userdrake?&quot;
++#~ msgstr &quot;Izađi iz userdrake-a?&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;You have made changes\n&quot;
++#~ &quot;since the last save.\n&quot;
++#~ &quot;Do you really want to quit\n&quot;
++#~ &quot;userdrake?&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Napravili ste izvjesne promjene\n&quot;
++#~ &quot;od zadnjeg spremanja.\n&quot;
++#~ &quot;Zaista želite izađi iz \n&quot;
++#~ &quot;userdrake-a?&quot;
++
++#~ msgid &quot;Enter new passwd&quot;
++#~ msgstr &quot;Upišite novu šifru&quot;
++
++#~ msgid &quot;new passwd:&quot;
++#~ msgstr &quot;nova šifra:&quot;
++
++#~ msgid &quot;Change&quot;
++#~ msgstr &quot;Promijeni&quot;
++
++#~ msgid &quot;Change face&quot;
++#~ msgstr &quot;Promijeni izgled&quot;
++
++#~ msgid &quot;Set passwd&quot;
++#~ msgstr &quot;Podesi šifru&quot;
++
++#~ msgid &quot;User autologin&quot;
++#~ msgstr &quot;Korisnički autologin&quot;
++
++#~ msgid &quot;UserDrake - Error&quot;
++#~ msgstr &quot;Userdrake - Greška&quot;
++
++#~ msgid &quot;couldn't find blue color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;nisam mogao pronaći plavu boju u /usr/lib/X11/rgb.txt datoteci&quot;
++
++#~ msgid &quot;Select the image to use&quot;
++#~ msgstr &quot;Izaberite sliku za korištenje&quot;
++
++#~ msgid &quot;Custom...&quot;
++#~ msgstr &quot;Proizvoljno...&quot;
++
++#~ msgid &quot;couldn't find grey color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;nisam mogao pronaći sivu boju u /usr/lib/X11/rgb.txt datoteci&quot;
++
++#~ msgid &quot;couldn't find black color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;nisam mogao pronaći crnu boju u/usr/lib/X11/rgb.txt datoteci&quot;
++
++#~ msgid &quot;login empty&quot;
++#~ msgstr &quot;korisničko ime nije upisano&quot;
++
++#~ msgid &quot;This login already exists on the system&quot;
++#~ msgstr &quot;Ovo korisničko ime već postoji&quot;
++
++#~ msgid &quot;The login is similar to a name's group&quot;
++#~ msgstr &quot;Korisničko ime je slično imenu grupe&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;User id already in use&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;Korisnički broj je već u upotrebi&quot;
++
++#~ msgid &quot;User id already in use&quot;
++#~ msgstr &quot;Korisnički broj je već u upotrebi&quot;
++
++#~ msgid &quot;name empty&quot;
++#~ msgstr &quot;niste popunili polje sa imenom&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;Group id already in use&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;Broj grupe je već u upotrebi&quot;
++
++#~ msgid &quot;Group id already in use&quot;
++#~ msgstr &quot;Broj grupe je već u upotrebi&quot;
++
++#~ msgid &quot;Couldn't find pixmap file: %s&quot;
++#~ msgstr &quot;Nisam mogao pronaći pixmap datoteku: %s&quot;
++
++#~ msgid &quot;%s: the file %s is busy (%s present)\n&quot;
++#~ msgstr &quot;%s: datoteka %s je zauzeta (%s prisutan)\n&quot;
++
++#~ msgid &quot;%s: can't link %s: %s\n&quot;
++#~ msgstr &quot;%s: ne mogu povezati %s: %s\n&quot;
++
++#~ msgid &quot;%s: can't unlock %s: %s (your changes are still in %s)\n&quot;
++#~ msgstr &quot;%s: ne mogu otključati %s: %s (vaše promjene su još uvijek %s)\n&quot;
++
++#~ msgid &quot;Error in stat on tmp files when i try to unlock lib\n&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Greška na stat u tmp datotekama prilikom pokušaja otključavanja lib-a\n&quot;
++
++#~ msgid &quot;%s: no changes made\n&quot;
++#~ msgstr &quot;%s: promjene nisu napravljene\n&quot;
++
++#~ msgid &quot;Select LDAP Directory&quot;
++#~ msgstr &quot;Izaberi LDAP direktorij&quot;
++
++#~ msgid &quot;Server address:&quot;
++#~ msgstr &quot;Adresa servera:&quot;
++
++#~ msgid &quot;Search base:&quot;
++#~ msgstr &quot;Baza pretrage:&quot;
++
++#~ msgid &quot;Bind DN:&quot;
++#~ msgstr &quot;Bind DN:&quot;
++
++#~ msgid &quot;Connection Type :&quot;
++#~ msgstr &quot;Vrsta konekcije:&quot;
++
++#~ msgid &quot;ssl&quot;
++#~ msgstr &quot;ssl&quot;
++
++#~ msgid &quot;Validate&quot;
++#~ msgstr &quot;Validate&quot;
++
++#~ msgid &quot;Test&quot;
++#~ msgstr &quot;Test&quot;
++
++#~ msgid &quot;cannot change ldap version to 3: %s&quot;
++#~ msgstr &quot;ne mogu promijeniti ldap verziju na 3: %s&quot;
++
++#~ msgid &quot;cannot connect to the ldap server\n&quot;
++#~ msgstr &quot;ne mogu se spojiti na ldap server\n&quot;
++
++#~ msgid &quot;cannot bind to the ldap server, %d\n&quot;
++#~ msgstr &quot;ne mogu bind-ati na ldap server, %d\n&quot;
++
++#~ msgid &quot;Cannot bind to ldap server&quot;
++#~ msgstr &quot;Ne mogu bind-ati na ldap server&quot;
++
++#~ msgid &quot;cannot save because the cannot connect to the ldap server&quot;
++#~ msgstr &quot;ne mogu spasiti jer se ne mogu spojiti na ldap server&quot;
++
++#~ msgid &quot;cannot relock lib&quot;
++#~ msgstr &quot;ne mogu ponovo zaključati lib&quot;
++
++#~ msgid &quot;The passwords string aren't the same!&quot;
++#~ msgstr &quot;Šifre nisu jednake!&quot;
++
++#~ msgid &quot;cannot launch UserDrake&quot;
++#~ msgstr &quot;ne mogu pokrenuti UserDrake&quot;
++
++#~ msgid &quot;You must be root to use userdrake&quot;
++#~ msgstr &quot;Morate biti root kako bi koristili userdrake&quot;
+
+<a id="userdrake2tags1133pocapo">Added: userdrake2/tags/1.13.3/po/ca.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/ca.po (rev 0)
++++ userdrake2/tags/1.13.3/po/ca.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,764 @@
++# translation of userdrake-ca.po to
++# translation of ca.po to Catalan
++# translation of userdrake.po to Catalan
++# Copyright (C) 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
++# Celso Gonzalez Garcia &lt;celso@oficinalinux.org&gt;, 2000.
++# Albert Astals Cid &lt;astals11@terra.es&gt;, 2003, 2004, 2005.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-ca\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2005-10-02 11:44GMT\n&quot;
++&quot;Last-Translator: \n&quot;
++&quot;Language-Team: &lt;ca@li.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.9.1\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=n!=1;\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Error al llegir `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Error al crear `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Error al eliminar `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Error al crear cua de correu.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Error al crear cua de correu.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Error al crear cua de correu.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;error desconegut&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Error al crear cua de correu.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Error al esborrar cua de correu.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;S'està carregant els usuaris i els grups... Si us plau, espera&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Eina de gestió d'usuaris de Mageia&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/A_ccions&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/E_dita&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Esborra&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Opcions&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Filtra els usuaris de sistema&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Fitxer&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Refresca&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Surt&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Afegeix usuari&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Afegeix _grup&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Ajuda&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Informeu d'un error&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Quant a...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Cerca:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Aplica el filtre&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Usuaris&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Grups&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Usuaris i grups&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Nom d'usuari&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ID d'usuari&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Grup primari&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Nom complet&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Intèrpret de comandaments per al login&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Directori personal&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Estat&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Nom del grup&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ID de grup&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Membres del grup&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Afegir usuari&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Afegeix un usuari al sistema&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Afegeix grup&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Afegeix un grup al sistema&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Edita&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Edita la fila seleccionada&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Esborrar&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Elimina la fila seleccionada&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Refresca&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Actualitza la llista&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Bloquejat&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Expirada&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Clica l'icona per canviar-ho&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Crea nou usuari&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Crea el directori personal&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Directori personal: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Crea un grup privat per a l'usuari&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Especifica el ID d'usuari manualment&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;&quot;
++&quot;Aquest usuari ja existeix dins el sistema, si us plau escull-ne un altre&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;La contrasenya no coincideix&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Aquesta contrasenya és massa simple. \n&quot;
++&quot; Les bones contrasenyes tenen més de 6 caràcters&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Uid d'usuari és &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Crear un usuari amb UID menor que 500 no està recomanat.\n&quot;
++&quot; Estàs segur de voler fer això?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;S'està posant %s al grup 'users'&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;S'està creant el nou grup: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;S'està afegint l'usuari: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Cancel·la&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Bé&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Escull grup&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Afegeix a un grup existent&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Afegeix al grup 'users'&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Ja existeix un grup amb aquest nom. Que vols fer?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Crea un nou grup&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Especifica el ID de grup manualment&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;El grup ja existeix, si us plau escull un altre nom de grup&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; El Gid del grup és &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Crear un grup amb el GID menor que 500 no està recomanat.\n&quot;
++&quot;Esteu segur que voleu fer-ho?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;S'està afegint el grup: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Esborrar fitxers o no?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;S'està esborrant l'usuari %s\n&quot;
++&quot; Fes també les següents accions\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Esborra el directori personal: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Esborra el mailbox :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;S'està eliminant l'usuari: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Estàs segur de voler eliminar el grup %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s és un grup primari per l'usuari %s\n&quot;
++&quot; Elimina l'usuari abans&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;S'està eliminant el grup: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Nom complet:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Login:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Contrasenya:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Confirma la contrasenya:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Intèrpret de comandaments per al login:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Nom del grup:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Si us plau, escull com a mínim un grup per l'usuari&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Si us plau indica l'any, més i dia\n&quot;
++&quot;per a l'expiració del compte&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Si us plau empleneu tots els camps per l'envelliment de contrasenya\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;No pots eliminar '%s' del seu grup primari&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Home:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Dades de l'usuari&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Habilita l'expiració de comptes&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;El compte expira (AAAA-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Bloquejar Compte d'Usuari&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Informació del compte&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;L'usuari va canviar la contrasenya el: &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Habilita l'expiració de contrasenyes&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Dies abans que es permeti el canvi:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Dies abans que es requereixi el canvi:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Dies d'avís abans del canvi:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Dies abans de que el compte s'inactivi:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Informació de la contrasenya&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Escull els grups dels quals serà membre aquest usuari:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Dades del grup&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Escull els usuaris que s'uniran a aquest grup :&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Usuaris del grup&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Edita Grups / Usuaris&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;S'ha produït un error&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Tanca&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Gestió d'usuaris&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Albert Astals Cid &lt;astals11@terra.es&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;El camp del nom està buit, si us plau, dona un nom&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++&quot;El nom només pot contenir minúscules de lletres llatines, números, `-' i `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;El nom és massa llarg&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Error&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;error desconegut&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Error al crear `%s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Autors: &quot;
++
++#~ msgid &quot;Yes&quot;
++#~ msgstr &quot;Sí&quot;
++
++#~ msgid &quot;No&quot;
++#~ msgstr &quot;No&quot;
+
+<a id="userdrake2tags1133pocspo">Added: userdrake2/tags/1.13.3/po/cs.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/cs.po (rev 0)
++++ userdrake2/tags/1.13.3/po/cs.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,757 @@
++# Translation of cs.po to Czech
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/cs.php3
++#
++# Czech messages for userdrake.
++# Copyright (C) 2000,2003, 2004, 2005, 2007 Free Software Foundation, Inc.
++#
++# Radek Vybíral &lt;Radek.Vybiral@vsb.cz&gt;, 2000.
++# Michal Bukovjan &lt;bukm@centrum.cz&gt;, 2002, 2003, 2004, 2005, 2007, 2009, 2010.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: cs\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2010-05-11 23:36+0200\n&quot;
++&quot;Last-Translator: Michal Bukovjan &lt;bukm@centrum.cz&gt;\n&quot;
++&quot;Language-Team: Czech &lt;kde-i18n-doc@kde.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: Lokalize 1.0\n&quot;
++&quot;Plural-Forms: nplurals=3; plural=(n%10==1 &amp;&amp; n%100!=11 ? 0 : n%10&gt;=2 &amp;&amp; &quot;
++&quot;n%10&lt;=4 &amp;&amp; (n%100&lt;10 || n%100&gt;=20) ? 1 : 2);\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Chyba při čtení „%s”: %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Chyba při vytváření „%s”: %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Chyba při odstranění „%s”: %s&quot;
++
++#: ../USER/USER.xs:490
++#, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Chyba při vytváření účtu: „%s”.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;Nelze získat číslo UID&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;Nelze získat hodnotu&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Chyba při vytváření poštovní fronty.\n&quot;
++
++#: ../USER/USER.xs:582
++#, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Uživatele nebylo možné upravit: „%s”.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Uživatele nebylo možné smazat: „%s”.\n&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;Selhalo nastavení hesla: „%s”.\n&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;neznámá chyba&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Chyba při vytváření skupiny.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;Skupinu nebylo možné upravit: „%s”.\n&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;Skupinu nebylo možné smazat: „%s”.\n&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;Uživateli chybí domovský adresář.\n&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Domovský adresář nebylo možné smazat: „%s”.\n&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Chyba při odstraňování poštovní fronty.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Načítám uživatele a skupiny… čekejte prosím&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Nástroj Mageia pro správu uživatelů&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;/_Instalovat účet pro hosty&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;/_Odinstalovat účet pro hosty&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Akce&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/Ú_pravy&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/O_dstranit&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/V_olby&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Filtrovat systémové uživatele&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Soubor&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/O_bnovit&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Konec&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/Přid_at uživatele&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Přidat s_kupinu&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/Nápo_věda&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Nahlásit chybu&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/O _aplikaci…&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Hledat:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Použít filtr&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Uživatelé&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Skupiny&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Uživatelé a skupiny&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Jméno uživatele&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ID uživatele&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Primární skupina&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Celé jméno&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Přihlašovací shell&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Domovský adresář&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Stav&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Název skupiny&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ID skupiny&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Členové skupiny&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Přidat uživatele&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Přidat uživatele do systému&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Přidat skupinu&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Přidat skupinu do systému&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Změnit&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Upravit vybraný řádek&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Odstranit&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Odstranit vybraný řádek&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Obnovit&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Obnovit seznam&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Zamčený&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Vypršel&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Klepnutím na ikonu provedete změnu&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Vytvořit nového uživatele&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Vytvořit domovský adresář&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Domovský adresář: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Vytvořit pro uživatele samostatnou skupinu&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Zadat ID uživatele ručně&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Uživatel již existuje, vyberte prosím jiné uživatelské jméno&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Hesla se neshodují&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Toto heslo je příliš jednoduché.\n&quot;
++&quot; Správná hesla by měla být delší než 6 znaků&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;ID uživatele je menší než 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Vytváření uživatelů s UID menším než 500 se nedoporučuje.\n&quot;
++&quot;Jste si jisti, že to chcete udělat?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Přidávám %s do skupiny „users”&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Vytvářím novou skupinu: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Přidávám uživatele: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Průvodce migrací&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;Chcete spustit průvodce migrací a importovat dokumenty a nastavení z Windows &quot;
++&quot;do vaší distribuce Mageia?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Zrušit&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Budiž&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Vybrat skupinu&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Přidat k existující skupině&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Přidat ke skupině „users”&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Skupina s tímto názvem již existuje. Co chcete udělat?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Vytvořit novou skupinu&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Zadat ID skupiny ručně&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Skupina již existuje, vyberte prosím jiný název skupiny&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;GID skupiny je menší než 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Vytváření skupin s GID menším než 500 se nedoporučuje.\n&quot;
++&quot;Jste si jisti, že to chcete udělat?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Přidávám skupinu: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Odstranit soubory nebo ne?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Odstraňuji uživatele %s\n&quot;
++&quot; Provádějí se také následující akce\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Smazání domovského adresáře: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Smazání poštovní schránky: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Odebírám uživatele: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Opravdu chcete odstranit skupinu %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s je primární skupina pro uživatele %s\n&quot;
++&quot;Odstraňte nejprve tohoto uživatele&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Odebírám skupinu: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Celé jméno:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Přihlášení:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Heslo:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Potvrdit heslo:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Přihlašovací shell:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Název skupiny:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Vyberte prosím pro uživatele alespoň jednu skupinu&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Zadejte prosím Rok, Měsíc a Den\n&quot;
++&quot;vypršení účtu&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Pro vypršení hesla vyplňte prosím všechna pole\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Nelze odstranit uživatele '%s' z jeho primární skupiny&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Domovský adresář:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Údaje o uživateli&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Povolit vypršení účtu&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Účet vyprší (RRRR-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Zamknout účet uživatele&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Informace o účtu&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Uživatel naposledy změnil heslo dne: &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Povolit vypršení hesla&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Počet dní před povolením změny:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Počet dní před vyžadováním změny:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Varovat dní před změnou:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Počet dní před vypršením účtu:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Informace o heslu&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Vyberte skupiny, do kterých má uživatel patřit:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Údaje o skupině&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Vyberte uživatele, kteří mají být v této skupině:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Uživatelé skupiny&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Upravit skupiny / uživatele&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Nastala chyba:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Zavřít&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Copyright ©%s by Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Správa uživatelů&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Michal Bukovjan &lt;bukm@centrum.cz&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Pole se jménem je prázdné, zadejte prosím jméno&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;Jméno musí obsahovat pouze malá písmena, číslice a znaky „-” a „_”&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Jméno je příliš dlouhé&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Chyba&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;neznámá chyba&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Chyba při vytváření `%s': %s&quot;
+
+<a id="userdrake2tags1133pocypo">Added: userdrake2/tags/1.13.3/po/cy.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/cy.po (rev 0)
++++ userdrake2/tags/1.13.3/po/cy.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,760 @@
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/cy.php3
++#
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR Free Software Foundation, Inc.
++# Rhoslyn Prys &lt;rhoslyn.prys@ntlworld.com&gt;, 2002
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake2\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2007-09-24 19:02+0100\n&quot;
++&quot;Last-Translator: Rhoslyn Prys &lt;post@meddal.com&gt;\n&quot;
++&quot;Language-Team: Cymraeg/Welsh &lt;post@meddal.com&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=utf-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Poedit-Language: Welsh\n&quot;
++&quot;X-Poedit-Country: UK\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n == 2) ? 1 : 0;\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Gwall darllen `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Gwall greu `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Gwall tynnu `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Gwall creu sbŵl e-bost.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Gwall creu sbŵl e-bost.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Gwall creu sbŵl e-bost.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;gwall anhysbys&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Gwall creu sbŵl e-bost.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Gwall dileu'r sbŵl e-bost.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Llwytho Defnyddwyr a Grwpiau... Arhoswch&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Offeryn Rheoli Defnyddwyr Mageia&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Gweithredoedd&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/+Golygu&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Dileu&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Dewisiadau&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Hidlo defnyddwyr y system&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Ffeil&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Adnewyddu&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Gadael&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Ychwanegu Defnyddiwr&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Ychwanegu_Grŵp&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Cymorth&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Adroddiad Gwall&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Ynghylch&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Chwilio:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Gosod Hidl&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Defnyddwyr&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Grwpiau&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Defnyddwyr a grwpiau&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Enw Defnyddiwr&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Enw Defnyddiwr&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Grŵp Cynradd&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Enw Llawn&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Cragen Mewngofnod&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Cyfeiriadur Cartref&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Statws&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Enw Grŵp&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Enw Grŵp&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Aelodau Grŵp&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Ychwanegu Defnyddiwr&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Ychwanegu defnyddiwr i'r system&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Ychwanegu Grŵp&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Ychwanegu grŵp i'r system&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Golygu&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Golygu'r rhes yma&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Dileu&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Dileu rhes&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Adnewyddu&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Adnewyddu'r rhestr&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Clowyd&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Dod i Ben:&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Cliciwch ar yr eicon i'w newid&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Creu Defnyddiwr Newydd&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Creu Cyfeiriadur Cartref&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Cyfeiriadur Cartref:&quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Creu grŵp preifat ar gyfer y defnyddiwr&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Enwch enw'r defnyddiwr gyda llaw&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Mae'r defnyddiwr yn bodoli eisoes, dewiswch Enw Defnyddiwr arall&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Cyfrinair Anghywir&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Mae'r cyfrinair yn rhy syml.\n&quot;
++&quot;Mae cyfrineiriau effeithiol yn fwy na 6 nod&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;UID Defnyddiwr &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Nid yw creu defnyddiwr gydag UID llai na 500 yn cael ei argymell\n&quot;
++&quot;Ydych chi'n siŵr eich bod am wneud hyn?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Rhoi '%s' yn grŵp 'defnyddwyr'&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Creu grŵp newydd: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Ychwanegu defnyddiwr: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Dewin mudo&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;Hoffech chi redeg y dewin mudo er mwyn mewnforio eich holl dogfennau a'ch &quot;
++&quot;gosodiadau Windows i'ch dosbarthiad Mageia?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Dileu&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Iawn&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Dewis grŵp&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Ychwanegu at y grŵp presennol&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Ychwanegu at y grŵp 'defnyddwyr'.&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Mae grŵp gyda'r enw hwn yn bodoli eisoes. Beth hoffech ei wneud?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Creu Grŵp Newydd&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Enwch enw'r grŵp gyda llaw&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Mae'r grŵp yn bodoli eisoes, dewiswch Enw Grŵp arall&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; Gid Grŵp &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Nid y'n cael ei argymell creu grŵp gyda llai na 500.\n&quot;
++&quot;Ydych chi'n siwr eich bod am wneud hyn?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Ychwanegu grŵp: %s&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Dileu ffeil neu beidio?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Dileu defnyddiwr %s\n&quot;
++&quot; Hefyd cyflawni'r gweithredoedd canlynol\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Dileu Cyfeiriadur Cartref: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Dileu'r Blwch E-bost: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Tynnu defnyddiwr: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Ydych chi wir eisiau dileu grŵp %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s yw'r grŵp cynradd ar gyfer defnyddiwr %s\n&quot;
++&quot; Tynnwch y defnyddiwr yn gyntaf&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Tynnu grŵp: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Enw Llawn:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Mewngofnod:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Cyfrinair:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Cadarnhau Cyfrinair:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Cragen Mewngofnod:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Enw Grŵp:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Dewiswch o leiaf un grŵp ar gyfer y defnyddiwr&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Nodwch Flwyddyn, Mis a Diwrnod\n&quot;
++&quot;i'r Cyfrif Ddod i Ben&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Llanwch yr holl feysydd yn y cyfrinair eto\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Nid oes modd tynnu defnyddiwr '%s; o'u grŵp cynradd&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Cartref:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Data Defnyddiwr&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Galluogi trefnu'r cyfrif&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Cyfrif yn dod i ben: (BBBB-MMM-DD)&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Cloi Cyfrif Defnyddiwr&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Gwybodaeth Cyfrif&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Newidiodd y defnyddiwr gyfrinair ar:&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Galluogi Terfyn Amser i Gyfrinair&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Diwrnod cyn caniatáu newid&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Diwrnod cyn bo angen newid&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Dangos rhybudd cyn newid:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Diwrnod cyn i'r cyfrif ddod i ben:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Gwybodaeth am Gyfrinair&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Dewis y grwpiau y bydd yr a defnyddiwr yn aelod ohonynt:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Data Grŵp&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Dewis defnyddwyr i ymuno â'r grŵp&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Defnyddwyr Grwpiau&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Golygu Grwpiau / Defnyddwyr&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Digwyddodd gwall:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Cau&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Hawlfraint (C) %s Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Rheoli Defnyddwyr&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Rhoslyn Prys &lt;post@meddal.com&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Mae'r maes enw'n wag cynigwch enw&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++&quot;Rhaid i'r enw gynnwys dim ond llythrennau Lladinaidd bach, rhifau `-' a `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Mae'r enw'n rhy hir&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Gwall&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;gwall anhysbys&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Gwall greu `%s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Awduron:&quot;
+
+<a id="userdrake2tags1133podapo">Added: userdrake2/tags/1.13.3/po/da.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/da.po (rev 0)
++++ userdrake2/tags/1.13.3/po/da.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,750 @@
++# translation of da.po to dansk
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/da.php3
++#
++# Nikolaj Berg Amondsen &lt;mr_nba@get2net.dk&gt;, 2000.
++# Troels Liebe Bentsen &lt;tlb@iname.com&gt;, 2000.
++# Keld Simonsen &lt;keld@dkuug.dk&gt;, 2001-2002,2003, 2004, 2007, 2009.
++# Keld Simonsen &lt;keld@rap.dk&gt;, 2003.
++# Keld Simonsen &lt;keld@keldix.com&gt;, 2010.
++# Danish Userdrake
++# Copyright (C) 2003, 2004, 2007, 2009, 2010 Free Software Foundation, Inc.
++# reviewed: 2002-02-13 keld@dkuug.dk
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: da\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2010-02-14 03:37+0200\n&quot;
++&quot;Last-Translator: Keld Simonsen &lt;keld@keldix.com&gt;\n&quot;
++&quot;Language-Team: dansk &lt;dnask@dansk-gruppen.dk&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Fejl ved læsning af '%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Fejl ved oprettelse af '%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Fejl ved fjernelse af '%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Fejl ved oprettelse af konto: '%s'.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;Kan ikke få fat på Uid-nummer&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;Kan ikke hente værdi&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Fejl ved oprettelse af mellemlager for post\n&quot;
++
++#: ../USER/USER.xs:582
++#, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Bruger kunne ikke ændres: '%s'.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Bruger kunne ikke slettes: '%s'.\n&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;Kunne ikke sætte adgangskode: '%s'.\n&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;ukeldt fejl&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Fejl ved oprettelse af gruppe: '%s'.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;Gruppe kunne ikke ændres: '%s'.\n&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;Gruppe kunne ikke slettes: '%s'.\n&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;Intet hjemmekatalog for brugeren.\n&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Hjemmekatalog kunne ikke slettes: '%s'.\n&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Fejl ved sletning af mellemlager for post\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Indlæser brugere og grupper... Vent venligst&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageia' værktøj til brugeradministration&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;/_Installér gæstekonto&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;/_Afinstallér gæstekonto&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Handlinger&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Redigér&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Slet&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Valgmuligheder&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Filtrér systembrugere&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Filer&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Genopfrisk&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Afslut&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/Tilføj _bruger&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Tilføj _gruppe&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Hjælp&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Rapportér fejl&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Om...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Søg:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Udfør filter&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Brugere&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Grupper&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Brugere og grupper&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Brugernavn&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Bruger-id&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Primær gruppe&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Fulde navn&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Login skál&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Hjemmekatalog&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Status&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Gruppenavn&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Gruppe-id&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Gruppemedlemmer&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Tilføj bruger&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Tilføj en bruger til systemet&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Tilføj gruppe&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Tilføj en gruppe til systemet&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Redigér&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Redigér valgte række&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Slet&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Slet valgte række&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Genopfrisk&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Genopfrisk listen&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Låst&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Udløbet&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Klik på ikonen for at ændre den&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Opret ny bruger&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Opret hjemmekatalog&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Hjemmekatalog;: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Opret en privat gruppe for brugeren&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Angiv bruger-id manuelt&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Brugeren findes allerede, vælg venligst et andet brugernavn&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Adgangskode passer ikke&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Denne adgangskode er for simpel. \n&quot;
++&quot; Gode adgangskoder bør være på 7 tegn eller mere&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Brugernes UID er mindre end 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Oprettelse af en bruger med en UID under 500 er ikke anbefalet.\n&quot;
++&quot;Er du sikker på at du vil gøre dette?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Tilføjer %s til 'users'-gruppen&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Opretter ny gruppe: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Tilføjer bruger: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Migrationshjælper&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;Ønsker du at køre migrationshjælperen for at importere Windows-dokumenter og &quot;
++&quot;-opsætninger til din Mageia-distribution?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Annullér&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Ok&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Vælg gruppe&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Tilføj til eksisterende gruppe&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Tilføj til 'users'-gruppen&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;En gruppe med dette navn eksisterer allerede, Hvad ønsker du at gøre?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Opret ny gruppe&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Angiv gruppe-id manuelt&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Gruppe eksisterer allerede, vælg venligst et andet gruppenavn&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;Gruppe-GID er mindre end 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Oprettelse af en gruppe med en GID under 500 er ikke anbefalet.\n&quot;
++&quot; Er du sikker på at du ønsker at gøre dette?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Tilføjer gruppe: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Skal filer slettes eller ej?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Sletter bruger %s\n&quot;
++&quot; Udfør også de følgende de følgende handlinger\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Slet hjemmekatalog: %s &quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Slet postbakke :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Fjerner bruger: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Vil du virkelig slette gruppen %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s er en primær gruppe for bruger %s\n&quot;
++&quot; Fjern brugeren først&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Fjerner gruppe: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Fulde navn:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Login:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Adgangskode:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Bekræft adgangskode:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Login skál:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Gruppenavn:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Vælg venligst mindst en gruppe for brugeren&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Angiv venligst år, måned og dag\n&quot;
++&quot; for udløb af konto &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Angiv venligst alle felter for forældelse af adgangskoder\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Du kan ikke fjerne bruger '%s' fra deres primære gruppe&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Hjem:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Brugerdata&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Aktivér udløb for konti&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Kontoen udløber (ÅÅÅÅ-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Lås brugerkonto&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Konto-information&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Bruger ændrede sidst adgangskode den: &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Aktivér udløbtid for adgangskoder&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Dage før ændring er tilladt: &quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Dage før ændring er krævet: &quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Advarsel gives antal dage før ændring: &quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Dage før konto deaktiveres: &quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Info om adgangskode&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Vælg grupperne som brugeren vil være medlem af:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Gruppedata&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Vælg de brugere som skal tilføjes i denne gruppe&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Gruppebrugere&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Redigér grupper og brugere&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Der er opstået en fejl:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Luk&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Ophavsret © %s ved Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Administration af brugere&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Keld Simonsen &lt;keld@rap.dk&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Navnefelt er tomt, opgiv venligst et navn&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;Navnet må kun indeholde små bogstaver, cifre ,'-' og '_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Navnet er for langt&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Fejl&quot;
++
+
+<a id="userdrake2tags1133podepo">Added: userdrake2/tags/1.13.3/po/de.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/de.po (rev 0)
++++ userdrake2/tags/1.13.3/po/de.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,770 @@
++# translation of userdrake-de.po to German
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/de.php3
++#
++# German translation of UserDrake (2)
++# Copyright (C) 2000, 2001, 2002, 2003 Mandriva S.A.
++#
++# Dominik Bittl &lt;umount@web.de&gt;, 2001.
++# Stefan Siegel &lt;siegel@linux-mandrake.com&gt;, 2001, 2002, 2003.
++# Sebastian Deutscher &lt;sebastian_deutscher@web.de&gt;, 2003.
++# Gerhard Ortner &lt;gerhard.ortner@aon.at&gt;, 2003.
++# Frank Köster &lt;frank@dueppel13.de&gt;, 2004.
++# Oliver Burger &lt;oliver@mandrivauser.de&gt;, 2010.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-de\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2010-04-30 18:51+0200\n&quot;
++&quot;Last-Translator: Oliver Burger &lt;oliver@mandrivauser.de&gt;\n&quot;
++&quot;Language-Team: German &lt;cooker-i18n@mandrivalinux.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++&quot;X-Generator: Lokalize 1.0\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Fehler beim Lesen von `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Fehler beim Anlegen von `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Fehler beim Löschen von `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Fehler beim Anlegen des Benutzerkontos: '%s'.\n&quot;
++
++#: ../USER/USER.xs:503
++#, fuzzy
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;Kann die UID-Nummer nicht finden&quot;
++
++#: ../USER/USER.xs:515
++#, fuzzy
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;Kann den Wert nicht einlesen&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Fehler beim Anlegen der Mail Spool.\n&quot;
++
++#: ../USER/USER.xs:582
++#, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Der Benutzer konnte nicht verändert werden: '%s'.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Der Benutzer konnte nicht gelöscht werden: '%s'.\n&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;Konnte das Passwort nicht setzen: '%s'.\n&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;unbekannter Fehler&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Anlegen der Gruppe fehlgeschlagen.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;Die Gruppe konnte nicht verändert werden: '%s'.\n&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;Die Gruppe konnte nicht gelöscht werden: '%s'.\n&quot;
++
++#: ../USER/USER.xs:863
++#, fuzzy
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;Kein Home-Verzeichnis für den Benutzer angegeben.\n&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, fuzzy, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Das Home-Verzeichnis konnte nicht gelöscht werden: '%s'.\n&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Fehler beim Entfernen der Mail Spool.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;UserDrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Lade Benutzer und Gruppen...Bitte warten&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageia Benutzerverwaltung&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;/_Installiere ein Gast-Benutzerkonto&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;/_Deinstalliere das Gast-Benutzerkonto&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Bearbeiten&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Ändern&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Löschen&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Bearbeiten&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/Systemkennzeichen _filtern&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Datei&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Aktualisieren&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Beenden&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Benutzer hinzufügen&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/_Gruppe hinzufügen&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Hilfe&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Fehler melden&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Über...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Suche:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Filter anwenden&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Benutzer&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Gruppe(n)&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Benutzer und Gruppen&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Benutzername&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Benutzer ID&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Primärgruppe&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Vollständiger Name&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Login-Shell&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Persönliches Verzeichnis&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Status&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Gruppenname&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Gruppen ID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Gruppenmitglieder&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Benutzer hinzufügen&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Benutzer zum System hinzufügen&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Gruppe hinzufügen&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Gruppe hinzufügen&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Ändern&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Ausgewählte Zeile bearbeiten&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Löschen&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Ausgewählte Zeile löschen&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Aktualisieren&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Liste aktualisieren&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Gesperrt&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Abgelaufen&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Klicken Sie auf das Symbol, um es zu ändern.&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Neuen Benutzer erstellen&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Persönliches Verzeichnis erstellen&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Persönliches Verzeichnis:&quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Private Gruppe für den Benutzer erstellen&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Benutzer ID manuell angeben&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Benutzer existiert bereits. Bitte einen anderen Namen wählen.&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Passwort fehlerhaft&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Das Passwort ist zu einfach. \n&quot;
++&quot;Gute Passwörter sind länger als 6 Zeichen.&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Benutzer ID ist unter 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Das Erstellen von Benutzern mit ID kleiner 500 ist nicht empfehlenswert.\n&quot;
++&quot;Wollen Sie das wirklich machen?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Nehme %s in die Gruppe „users“ auf.&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Erstelle neue Gruppe: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Benutzer hinzufügen: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Migrations Wizard&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;Wollen Sie den Migrations Wizard für den Import von Windows Dokumenten und &quot;
++&quot;Einstellungen starten?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Abbrechen&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;OK&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Gruppe auswählen&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Zur existierenden Gruppe hinzufügen&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;In die Gruppe „users“ aufnehmen&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Eine Gruppe dieses Namens existiert bereits. Was wollen Sie tun?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Neue Gruppe erstellen&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Gruppen ID manuell angeben&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Gruppe existiert bereits. Bitte einen anderen Namen wählen.&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;Gruppen ID ist unter 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Das Erstellen von Gruppen mit ID kleiner 500 ist nicht empfehlenswert.\n&quot;
++&quot;Wollen Sie das wirklich machen?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Füge Gruppe hinzu %s&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Dateien löschen oder nicht?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Lösche Kennzeichen %s\n&quot;
++&quot; Und führe folgende Aktionen aus\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Lösche Persönliches Verzeichnis: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Lösche Mailbox :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Lösche Kennzeichen: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Wollen Sie wirklich die folgende Gruppe löschen: %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s ist die Hauptgruppe des Kennzeichens %s\n&quot;
++&quot;Entfernen Sie zuerst den Benutzer&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Lösche Gruppe: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Vollständiger Name:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Kennzeichen:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Passwort:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Passwort bestätigen:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Login-Shell:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Gruppenname:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Bitte wählen Sie mindestens eine Gruppe für den Benutzer&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Geben Sie Jahr, Monat und Tag \n&quot;
++&quot; des Ablaufens des Kennzeichens an. &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Bitte füllen Sie alle Felder zum Ablaufen des Passworts aus.\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Sie können den Benutzer „%s“ nicht aus seiner Hauptgruppe entfernen.&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Persönliches Verzeichnis:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Benutzerdaten&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Benutzerkonto soll ablaufen&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Konto läuft ab (JJJJ-MM-TT):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Benutzerkennzeichen sperren&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Info über Konto&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Passwort zuletzt geändert am:&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Passwort soll ablaufen&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Tage vor nächster erlaubter Änderung:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Tage vor nächster erzwungener Änderung:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Anzahl Tage vor Änderung ab denen gewarnt wir:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Tage bevor Kennzeichen gesperrt wird:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Passwort-Info&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Wählen Sie die Gruppen, denen der Benutzer angehören wird:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Gruppendaten&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Wählen Sie die Benutzer für diese Gruppe:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Benutzergruppen&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Benutzer / Gruppen bearbeiten&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Ein Fehler ist aufgetreten:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Schließen&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Copyright·(C)·%s·bei·Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Benutzerverwaltung&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++&quot;Nicolas Bauer &lt;rastafarii@mandrivauser.de&gt;\n&quot;
++&quot;Sebastian Deutscher &lt;sebastian.deutscher@web.de&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Es wurde kein Name angegeben. Bitte ändern.&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++&quot;Der Name darf nur Kleinbuchstaben ohne Umlaute, Zahlen, „-“ und „_“ &quot;
++&quot;enthalten.&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Der Name ist zu lang&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Fehler&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;unbekannter Fehler&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Fehler beim Anlegen von `%s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Autoren:&quot;
+
+<a id="userdrake2tags1133poelpo">Added: userdrake2/tags/1.13.3/po/el.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/el.po (rev 0)
++++ userdrake2/tags/1.13.3/po/el.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,1117 @@
++# translation of userdrake-el.po to Greek
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/el.php3
++#
++# Greek translation of userdrake
++# Copyright (C) 2003 Free Software Foundation, Inc.
++#
++#
++# 05Jul2001, niktarin, 114 messages, initial translation.
++# Nick Niktaris &lt;niktarin@yahoo.com&gt;, 2001.
++# Νίκος Νύκταρης (Nick Niktaris) &lt;niktarin@yahoo.com&gt;, 2003.
++# Glentadakis Dimitrios &lt;dglent@gmail.com&gt;, 2008, 2009, 2010.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-el\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2010-02-06 22:23+0100\n&quot;
++&quot;Last-Translator: Glentadakis Dimitrios\n&quot;
++&quot;Language-Team: Greek &lt;translators_team@mandrivalinux.gr&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: Lokalize 1.0\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++&quot;X-Poedit-Language: Greek\n&quot;
++&quot;X-Poedit-Country: GREECE\n&quot;
++&quot;X-Poedit-SourceCharset: utf-8\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Σφάλμα στην ανάγνωση του `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Σφάλμα στην δημιουργία του `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Σφάλμα στην αφαίρεση του `%s': %s&quot;
++
++#: ../USER/USER.xs:490, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Σφάλμα κατά την δημιουργία του λογαριασμού: «%s».\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;Αδύνατη η λήψη του αριθμού Uid&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;Αδύνατη η ανάκτηση της τιμής&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Σφάλμα στην δημιουργία του ταχυδρομικού νήματος.\n&quot;
++
++#: ../USER/USER.xs:582, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Ο χρήστης δεν μπορεί να τροποποιηθεί: «%s».\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Ο χρήστης δεν μπορεί να διαγραφεί: «%s».\n&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;Ο ορισμός κωδικού πρόσβασης απέτυχε: «%s».\n&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;άγνωστο σφάλμα&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Η δημιουργία της ομάδας απέτυχε.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;Η ομάδα δεν μπορεί να τροποποιηθεί: «%s».\n&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;Η ομάδα δεν μπορεί να διαγραφεί: «%s».\n&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;Κανένας προσωπικός κατάλογος για τον χρήστη.\n&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Ο προσωπικός κατάλογος δεν μπορεί να διαγραφεί: «%s».\n&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Σφάλμα στην διαγραφή του ταχυδρομικού νήματος.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Φορτώνονται οι Χρήστες και οι Ομάδες... Παρακαλώ περιμένετε&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Εργαλείο Διαχείρισης Χρηστών Mageia&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;/_Εγκατάσταση λογαριασμού guest&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;/_Απεγκατάσταση του λογαριασμού guest&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Ενέργειες&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Επεξεργασία&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Διαγραφή&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Επιλογές&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Φιλτράρισμα χρηστών συστήματος&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Αρχείο&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Ανανέωση&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Εξοδος&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Προσθήκη Χρήστη&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Προσθήκη _Ομάδας&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Βοήθεια&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Αναφορά Σφάλματος&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Περί...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Αναζήτηση:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Εφαρμογή φίλτρου&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Χρήστες&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Ομάδες&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Χρήστες και Ομάδες&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Όνομα Χρήστη&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ID Χρήστη&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Πρωτεύουσα Ομάδα&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Πλήρες Όνομα&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Κέλυφος Προσπέλασης&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Αρχικός Κατάλογος&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Κατάσταση&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Όνομα Ομάδας&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ID Ομάδας&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Μέλη Ομάδας&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Προσθήκη Χρήστη&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Προσθήκη ενός χρήστη στο σύστημα&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Προσθήκη Ομάδας&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Προσθήκη μιας ομάδας στο σύστημα&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Επεξεργασία&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Επεξεργασία επιλεγμένης γραμμής&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Διαγραφή&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Διαγραφή επιλεγμένης σειράς&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Ανανέωση&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Ανανέωση της λίστας&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Κλειδωμένος&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Έληξε&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Κάντε κλικ πάνω στο εικονίδιο για να το αλλάξετε&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Δημιουργία Νέου Χρήστη&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Δημιουργία Αρχικού Καταλόγου Χρήστη&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Αρχικός Κατάλογος: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Δημιουργία μιας προσωπικής ομάδας για τον χρήστη&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Χειροκίνητος ορισμός ID χρήστη&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Ο χρήστης υπάρχει ήδη, παρακαλώ επιλέξτε ένα άλλο Όνομα Χρήστη&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Ο κωδικός δεν συμπίπτει&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Αυτός ο κωδικός πρόσβασης είναι πολύ απλός. \n&quot;
++&quot; Ένας καλός κωδικός πρέπει να έχει &gt; 6 χαρακτήρες&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Το Uid χρήστη είναι &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Η δημιουργία χρήστη με UID μικρότερη από 500 δεν συνιστάται.\n&quot;
++&quot;Είστε βέβαιοι ότι θέλετε να συνεχίσετε;\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Τοποθέτηση %s στην ομάδας 'χρηστών'&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Δημιουργία νέας ομάδας: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Προσθήκη χρήστη: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Οδηγός εισαγωγής&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;Θέλετε να εκκινήσετε τον οδηγό εισαγωγής των εγγράφων και των ρυθμίσεων από &quot;
++&quot;τα Windows, προς την διανομή σας Mageia ;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Άκυρο&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Εντάξει&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Επιλέξτε Ομάδα&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Προσθήκη στην υπάρχουσα ομάδα&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Προσθήκη στην ομάδα 'χρηστών'&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Μια ομάδα με αυτό το όνομα υπάρχει ήδη. Τι θέλετε να κάνετε;&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Δημιουργία Νέας Ομάδας&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Χειροκίνητος ορισμός ID ομάδας&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Η ομάδα υπάρχει ήδη, παρακαλώ επιλέξτε ένα άλλο Όνομα Χρήστη&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;Το Gid της ομάδας είναι &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Η δημιουργία ομάδας με GID μικρότερη από 500 δεν συνιστάται.\n&quot;
++&quot;Είστε βέβαιοι ότι θέλετε να συνεχίσετε;\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Προστίθεται η ομάδα: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Σβήσιμο των αρχείων ή όχι;&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Διαγράφεται ο χρήστης %s\n&quot;
++&quot;Επίσης κάντε και τα παρακάτω\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Διαγραφή Αρχικού Καταλόγου: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Διαγραφή Γραμματοκιβωτίου :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Αφαίρεση χρήστη: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Είστε βέβαιοι για τη διαγραφή τις ομάδας %s;&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;Η %s είναι μια πρωτεύουσα ομάδα για τον χρήστη %s\n&quot;
++&quot; Αφαιρέστε πρώτα τον χρήστη&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Αφαίρεση ομάδας: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Πλήρες Όνομα:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Προσπέλαση:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Κωδικός πρόσβασης:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Επαλήθευση Κωδικού:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Κέλυφος Προσπέλασης:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Όνομα Ομάδας:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Παρακαλώ επιλέξτε τουλάχιστον μία ομάδα για τον χρήστη&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Παρακαλώ ορίστε την Ημέρα, Μήνα και \n&quot;
++&quot;Χρόνο Λήξης του Λογαριασμό &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Παρακαλώ συμπληρώστε όλα τα πεδία στη γήρανση κωδικού πρόσβασης\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Δεν μπορείτε να αφαιρέσετε τον χρήστη '%s' από την πρωτεύουσα ομάδα&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Αρχικός κατάλογος:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Δεδομένα Χρήστη&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Ενεργοποίηση λήξης λογαριασμού&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Λήξη λογαριασμού (ΧΧΧΧ-ΜΜ-ΗΗ):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Κλείδωμα του Λογαριασμού Χρήστη&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Πληροφορίες Λογαριασμού&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Ο χρήστης άλλαξε τελευταία τον κωδικό του στις : &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Ενεργοποίηση Λήξης Κωδικού Πρόσβασης&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Ημέρες πριν επιτραπεί η αλλαγή :&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Μέρες πριν από την υποχρεωτική αλλαγή :&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Ημέρες προειδοποίησης πριν από την αλλαγή :&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Μέρες πριν ο λογαριασμός γίνει ανενεργός :&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Πληροφορίες κωδικού&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Επιλέξτε τις ομάδες στις οποίες θα ανήκει αυτός ο χρήστης:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Δεδομένα Ομάδας&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Επιλέξτε τους χρήστες που θα προστεθούν σε αυτή την ομάδα :&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Ομάδα Χρηστών&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Επεξεργασία Ομάδων / Χρηστών&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Προκλήθηκε σφάλμα :&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Κλείσιμο&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Copyright (C)%s by mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Διαχείριση Χρηστών&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++&quot;Νίκος Νύκταρης &lt;niktarin@yahoo.com&gt;\n&quot;
++&quot;Glentadakis Dimitrios &lt;dglent@gmail.com&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Το πεδίο όνομα είναι κενό, παρακαλώ δώστε ·ένα όνομα&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++&quot;Το όνομα πρέπει να περιέχει μόνο μικρά λατινικά γράμματα, αριθμούς, `-' και &quot;
++&quot;`_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Το όνομα είναι πολύ μακρύ&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Σφάλμα&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;άγνωστο σφάλμα&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Σφάλμα στην δημιουργία του `%s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Δημιουργοί: &quot;
++
++#~ msgid &quot;Yes&quot;
++#~ msgstr &quot;Ναι&quot;
++
++#~ msgid &quot;No&quot;
++#~ msgstr &quot;Όχι&quot;
++
++#~ msgid &quot;Warning : Deleting User&quot;
++#~ msgstr &quot;Προσοχή : Διαγραφή Χρήστη&quot;
++
++#~ msgid &quot;Warning : Deleting Group&quot;
++#~ msgstr &quot;Προσοχή : Διαγραφή Ομάδας&quot;
++
++#~ msgid &quot;Help&quot;
++#~ msgstr &quot;Βοήθεια&quot;
++
++#~ msgid &quot;Reload&quot;
++#~ msgstr &quot;Ανανέωση&quot;
++
++#~ msgid &quot;Save&quot;
++#~ msgstr &quot;Αποθήκευση&quot;
++
++#~ msgid &quot;Exit&quot;
++#~ msgstr &quot;Έξοδος&quot;
++
++#~ msgid &quot;Settings&quot;
++#~ msgstr &quot;Ρυθμίσεις&quot;
++
++#~ msgid &quot;Show tools bar&quot;
++#~ msgstr &quot;Εμφάνιση μπάρας εργαλείων&quot;
++
++#~ msgid &quot;View users&quot;
++#~ msgstr &quot;Προβολή χρηστών&quot;
++
++#~ msgid &quot;Preferences&quot;
++#~ msgstr &quot;Προτιμήσεις&quot;
++
++#~ msgid &quot;Ldap Server&quot;
++#~ msgstr &quot;Διακομιστής Ldap&quot;
++
++#~ msgid &quot;Save change&quot;
++#~ msgstr &quot;Αποθήκευση αλλαγών&quot;
++
++#~ msgid &quot;Add&quot;
++#~ msgstr &quot;Προσθήκη&quot;
++
++#~ msgid &quot;Edit user(s)&quot;
++#~ msgstr &quot;Επεξεργασία χρήστη(ών)&quot;
++
++#~ msgid &quot;Remove&quot;
++#~ msgstr &quot;Αφαίρεση&quot;
++
++#~ msgid &quot;Edit group(s)&quot;
++#~ msgstr &quot;Επεξεργασία ομάδας(ων)&quot;
++
++#~ msgid &quot;User id&quot;
++#~ msgstr &quot;id χρήστη&quot;
++
++#~ msgid &quot;Group id&quot;
++#~ msgstr &quot;id ομάδας&quot;
++
++#~ msgid &quot;Comments&quot;
++#~ msgstr &quot;Σχόλια&quot;
++
++#~ msgid &quot;Shell&quot;
++#~ msgstr &quot;Κέλυφος&quot;
++
++#~ msgid &quot;name&quot;
++#~ msgstr &quot;όνομα&quot;
++
++#~ msgid &quot;gid&quot;
++#~ msgstr &quot;gid&quot;
++
++#~ msgid &quot;passwd&quot;
++#~ msgstr &quot;κωδικός&quot;
++
++#~ msgid &quot;users&quot;
++#~ msgstr &quot;χρήστες&quot;
++
++#~ msgid &quot;Parameters&quot;
++#~ msgstr &quot;Παράμετροι&quot;
++
++#~ msgid &quot;General option&quot;
++#~ msgstr &quot;Γενικές επιλογές&quot;
++
++#~ msgid &quot;Edit accounts on a LDAP directory&quot;
++#~ msgstr &quot;Επεξεργασία λογαριασμών σε κατάλογο LDAP&quot;
++
++#~ msgid &quot;Active autologin support&quot;
++#~ msgstr &quot;Ενεργή υποστήριξη αυτόματης προσπέλασης στο σύστημα&quot;
++
++#~ msgid &quot;User creation&quot;
++#~ msgstr &quot;Δημιουργία χρήστη&quot;
++
++#~ msgid &quot;Default shell:&quot;
++#~ msgstr &quot;Προεπιλεγμένο κέλυφος&quot;
++
++#~ msgid &quot;Default home dir:&quot;
++#~ msgstr &quot;Προεπιλεγμένος αρχικός κατάλογος&quot;
++
++#~ msgid &quot;Default face:&quot;
++#~ msgstr &quot;Προεπιλεγμένη όψη&quot;
++
++#~ msgid &quot;Default group:&quot;
++#~ msgstr &quot;Προεπιλεγμένη ομάδα:&quot;
++
++#~ msgid &quot;General&quot;
++#~ msgstr &quot;Γενικά&quot;
++
++#~ msgid &quot;Don't show user with id less than 500&quot;
++#~ msgstr &quot;Απόκρυψη χρηστών με ταυτότητα μικρότερη από 500&quot;
++
++#~ msgid &quot;User identifier&quot;
++#~ msgstr &quot;Αναγνωριστικό χρήστη&quot;
++
++#~ msgid &quot;Default Group&quot;
++#~ msgstr &quot;Προεπιλεγμένη ομάδα&quot;
++
++#~ msgid &quot;Groups list&quot;
++#~ msgstr &quot;Λίστα ομάδων&quot;
++
++#~ msgid &quot;Users View&quot;
++#~ msgstr &quot;Προβολή Χρηστών&quot;
++
++#~ msgid &quot;Group identifier&quot;
++#~ msgstr &quot;Αναγνωριστικό ομάδας&quot;
++
++#~ msgid &quot;Groups View&quot;
++#~ msgstr &quot;Προβολή Ομάδων&quot;
++
++#~ msgid &quot;/bin/bash&quot;
++#~ msgstr &quot;/bin/bash&quot;
++
++#~ msgid &quot;uid:&quot;
++#~ msgstr &quot;uid:&quot;
++
++#~ msgid &quot;Comment:&quot;
++#~ msgstr &quot;Σχόλιο:&quot;
++
++#~ msgid &quot;Shell:&quot;
++#~ msgstr &quot;Κέλυφος:&quot;
++
++#~ msgid &quot;Home dir:&quot;
++#~ msgstr &quot;Αρχικός φάκελος:&quot;
++
++#~ msgid &quot;passwd:&quot;
++#~ msgstr &quot;κωδικός:&quot;
++
++#~ msgid &quot;Retype passwd:&quot;
++#~ msgstr &quot;Ξανά ο κωδικός:&quot;
++
++#~ msgid &quot;Identity&quot;
++#~ msgstr &quot;Ταυτότητα&quot;
++
++#~ msgid &quot;Available groups&quot;
++#~ msgstr &quot;Διαθέσιμες ομάδες&quot;
++
++#~ msgid &quot;Extended&quot;
++#~ msgstr &quot;Εκτενές&quot;
++
++#~ msgid &quot;About UserDrake&quot;
++#~ msgstr &quot;Περί του UserDrake&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;Userdrake is an application to add and\n&quot;
++#~ &quot;delete users on the Mageia\n&quot;
++#~ &quot;distribution.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;Userdrake now support ldap directory\n&quot;
++#~ &quot;support conformed to rfc2307bis.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;This application is under the GPL\n&quot;
++#~ &quot;license and is delived without\n&quot;
++#~ &quot;any warranty.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;You can get support at : \n&quot;
++#~ &quot;http://www.mandrakeexpert.com/&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Το UserDrake είναι μια εφαρμογή για την\n&quot;
++#~ &quot;προσθήκη και αφαίρεση χρηστών στην διανομή\n&quot;
++#~ &quot;Mageia\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;Το Userdrake υποστηρίζει πλέον υποστήριξη για κατάλογο ldap \n&quot;
++#~ &quot;σύμφωνα με το rfc2307bis.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;Η εφαρμογή αυτή είναι κάτω από την άδεια\n&quot;
++#~ &quot;χρήσης GPL και διατίθεται χωρίς καμία \n&quot;
++#~ &quot;εγγύηση. \n&quot;
++#~ &quot;\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;Αναφέρετε προβλήματα στο:\n&quot;
++#~ &quot;http://www.mandrakeexpert.com/&quot;
++
++#~ msgid &quot;Name:&quot;
++#~ msgstr &quot;Όνομα:&quot;
++
++#~ msgid &quot;gid:&quot;
++#~ msgstr &quot;gid:&quot;
++
++#~ msgid &quot;In group&quot;
++#~ msgstr &quot;Στην ομάδα&quot;
++
++#~ msgid &quot;Not in group&quot;
++#~ msgstr &quot;Όχι στην ομάδα&quot;
++
++#~ msgid &quot;Quit userdrake?&quot;
++#~ msgstr &quot;Έξοδος από το userdrake;&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;You have made changes\n&quot;
++#~ &quot;since the last save.\n&quot;
++#~ &quot;Do you really want to quit\n&quot;
++#~ &quot;userdrake?&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Έχετε κάνει αλλαγές\n&quot;
++#~ &quot;από την τελευταία αποθήκευση.\n&quot;
++#~ &quot;Θέλετε πραγματικά να τερματίσετε\n&quot;
++#~ &quot;το userdrake;&quot;
++
++#~ msgid &quot;Enter new passwd&quot;
++#~ msgstr &quot;Εισάγετε τον νέο κωδικό&quot;
++
++#~ msgid &quot;new passwd:&quot;
++#~ msgstr &quot;νέος κωδικός:&quot;
++
++#~ msgid &quot;Change&quot;
++#~ msgstr &quot;Αλλαγή&quot;
++
++#~ msgid &quot;Change face&quot;
++#~ msgstr &quot;Αλλαγή όψης&quot;
++
++#~ msgid &quot;Set passwd&quot;
++#~ msgstr &quot;Βάλτε κωδικό&quot;
++
++#~ msgid &quot;User autologin&quot;
++#~ msgstr &quot;Αυτόματη προσπέλαση χρήστη με:&quot;
++
++#~ msgid &quot;UserDrake - Error&quot;
++#~ msgstr &quot;Userdrake - Σφάλμα&quot;
++
++#~ msgid &quot;couldn't find blue color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;δεν βρέθηκε το μπλε χρώμα στο αρχείο /usr/lib/X11/rgb.txt&quot;
++
++#~ msgid &quot;Select the image to use&quot;
++#~ msgstr &quot;Επιλέξτε την εικόνα προς χρήση&quot;
++
++#~ msgid &quot;Custom...&quot;
++#~ msgstr &quot;Προσαρμογή...&quot;
++
++#~ msgid &quot;couldn't find grey color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;δεν βρέθηκε το γκρι χρώμα στο αρχείο /usr/lib/X11/rgb.txt&quot;
++
++#~ msgid &quot;couldn't find black color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;δεν βρέθηκε το μαύρο χρώμα στο αρχείο /usr/lib/X11/rgb.txt&quot;
++
++#~ msgid &quot;login empty&quot;
++#~ msgstr &quot;κενή προσπέλαση&quot;
++
++#~ msgid &quot;This login already exists on the system&quot;
++#~ msgstr &quot;Αυτό το όνομα χρήστη υπάρχει ήδη στο σύστημα&quot;
++
++#~ msgid &quot;The login is similar to a name's group&quot;
++#~ msgstr &quot;Το όνομα χρήστη είναι παρόμοιο με το όνομα μιας ομάδας&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;User id already in use&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;Το id του χρήστη υπάρχει ήδη&quot;
++
++#~ msgid &quot;User id already in use&quot;
++#~ msgstr &quot;Ο χρήστης υπάρχει ήδη&quot;
++
++#~ msgid &quot;name empty&quot;
++#~ msgstr &quot;Το όνομα είναι άδειο&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;Group id already in use&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;Το id της ομάδας υπάρχεί ήδη&quot;
++
++#~ msgid &quot;Group id already in use&quot;
++#~ msgstr &quot;Η ομάδα υπάρχει ήδη&quot;
++
++#~ msgid &quot;Couldn't find pixmap file: %s&quot;
++#~ msgstr &quot;Δεν βρέθηκε το αρχείο pixmap: %s&quot;
++
++#~ msgid &quot;%s: the file %s is busy (%s present)\n&quot;
++#~ msgstr &quot;%s: το αρχείο %s είναι απασχολημένο (%s τοις εκατό)\n&quot;
++
++#~ msgid &quot;%s: can't unlock %s: %s (your changes are still in %s)\n&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;%s: δεν είναι δυνατή η απεμπλοκή του %s: %s (οι αλλαγές είναι ακόμη στο %&quot;
++#~ &quot;s)\n&quot;
++
++#~ msgid &quot;%s: no changes made\n&quot;
++#~ msgstr &quot;%s: δεν έγιναν αλλαγές\n&quot;
++
++#~ msgid &quot;Select LDAP Directory&quot;
++#~ msgstr &quot;Επιλέξτε Κατάλογο LDAP&quot;
++
++#~ msgid &quot;Server address:&quot;
++#~ msgstr &quot;Διεύθυνση Διακομιστή:&quot;
++
++#~ msgid &quot;Search base:&quot;
++#~ msgstr &quot;Βάση αναζήτησης:&quot;
++
++#~ msgid &quot;Connection Type :&quot;
++#~ msgstr &quot;Τύπος Σύνδεσης :&quot;
++
++#~ msgid &quot;ssl&quot;
++#~ msgstr &quot;ssl&quot;
++
++#~ msgid &quot;Validate&quot;
++#~ msgstr &quot;Επαλήθευση&quot;
++
++#~ msgid &quot;Test&quot;
++#~ msgstr &quot;Δοκιμή&quot;
++
++#~ msgid &quot;cannot change ldap version to 3: %s&quot;
++#~ msgstr &quot;δεν είναι δυνατή η αλλάγη του ldap στην έκδοση 3 : %s&quot;
++
++#~ msgid &quot;cannot connect to the ldap server\n&quot;
++#~ msgstr &quot;δεν είναι δυνατή η σύνδεση με τον διακομιστή ldap\n&quot;
++
++#~ msgid &quot;Cannot bind to ldap server&quot;
++#~ msgstr &quot;Αδύνατη η σύνδεση τον διακομιστή ldap&quot;
++
++#~ msgid &quot;cannot save because the cannot connect to the ldap server&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;αδύνατη η αποθήκευση λόγο αποτυχίας σύνδεσης με τον διακομιστής ldap&quot;
++
++#~ msgid &quot;The passwords string aren't the same!&quot;
++#~ msgstr &quot;Οι εισαγωγές τον κωδικών δεν είναι ίδιες!&quot;
++
++#~ msgid &quot;cannot launch UserDrake&quot;
++#~ msgstr &quot;Δεν μπορεί να εκτελεστεί το UserDrake&quot;
++
++#~ msgid &quot;You must be root to use userdrake&quot;
++#~ msgstr &quot;Πρέπει να είστε υπερχρήστης(root) για να εκτελέσετε το userdrake&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;Cannot lock user lib,\n&quot;
++#~ &quot;file /etc/ptmp or /etc/gtmp exist&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Δεν μπορεί να ξεκλειδωθεί η lib του χρήστη,\n&quot;
++#~ &quot;το αρχείο /etc/ptmp ή /etc/gtmp υπάρχει&quot;
+
+<a id="userdrake2tags1133poeopo">Added: userdrake2/tags/1.13.3/po/eo.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/eo.po (rev 0)
++++ userdrake2/tags/1.13.3/po/eo.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,756 @@
++# translation of eo.po to Esperanto
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/eo.php3
++#
++# USERDRAKE MESAĜOJ.
++# Copyright (C) 2000 Mandriva, Inc.
++#
++# D. Dale Gulledge &lt;dsplat@rochester.rr.com&gt;, 2000.
++# Vilhelmo Lutermano &lt;vlutermano@free.fr&gt;, 2003, 2008.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: eo\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2008-01-11 19:18+0100\n&quot;
++&quot;Last-Translator: Vilhelmo Lutermano &lt;vlutermano@free.fr&gt;\n&quot;
++&quot;Language-Team: Esperanto &lt;eo@li.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Eraro dum legado `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Eraro dum kreado `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Eraro dum forigado `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Error kreante retpoŝtan fon-eneligonl.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Error kreante retpoŝtan fon-eneligonl.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Error kreante retpoŝtan fon-eneligonl.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;nekonata eraro&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Error kreante retpoŝtan fon-eneligonl.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Eraro forigante retpoŝtan fon-eneligon.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Ŝargante Uzulojn kaj Grupojn... Bonvole atendi&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mastrumilo por Mageia Uzuloj&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Agoj&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Redaktu&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Forigu&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Opcioj&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Filtrilo uzuloj&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Dosiero&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Rekalkulu&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Finu&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Aldonu uzulon&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Aldonu _grupon&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Helpo&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Raportu cimon&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Pri...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Serĉu:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Apliku filtrilon&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Uzuloj&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Grupoj&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Uzuloj kaj grupoj&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Uzul-nomo&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Uzula ID&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Primara grupo&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Plena nomo&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Salutnoma kampo&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Hejma dosierujo&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Statuso&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Grupa nomo&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Grupa ID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Grupanoj&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Aldonu uzulon&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Aldonu uzulon al la sistemo&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Aldonu grupon&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Aldonu grupon al la sistemo&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Redaktu&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Redaktu selektitan linion&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Forigu&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Forigu selektitan linion&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Rekalkulu&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Rekalkulu la liston&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Ŝlosita&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Eksvalida&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Alklaku la piktogramon por ŝanĝi ĝin&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Kreu novan uzulon&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Kreu hejman dosierujon&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Hejma dosierujo&quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Kreu privatan grupon por la uzulo&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Mane difinu uzul-ID&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Ĉi tiu nomo jam ekzistas, bonvolu elekti alian uzulnomon&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Pasvorta konfuzo&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Tiu ĉi pasvorto estas tro simpla. \n&quot;
++&quot; Bonaj pasvortoj havu &gt; 6 signojn&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Uzula Uid estas &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Krei uzulon kun UID malpli ol 500 ne estas rekomendinda.\n&quot;
++&quot; Ĉu vi certas ke vi volas tion?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Aldonante %s al la grupo 'uzuloj'&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Kreante novan grupon: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Mi aldonas uzulon: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Migrad-helpilo&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;Ĉu vi deziras funkciigi la migrado-helpilon por importi Vindozajn &quot;
++&quot;dokumentojn kaj agordojn en vian Mandriva Linukso-eldonon?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Nuligu&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;JES&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Elektu grupon&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Aldonu al la ekzistanta grupo&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Aldonu al la grupo 'uzuloj' ('users')&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Grupo kun tiu nomo jam ekzistas. Kion vi ŝatus fari?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Kreu novan grupon&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Difinu grupan ID mane&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Grupo jam ekzistas, bonvolu elekti alian grupnomon&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;Gid de la grupo estas &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Krei grupon kun GID malpli ol 500 ne estas rekomendinda.\n&quot;
++&quot; Ĉu vi certas ke vi volas tion?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Mi aldonas grupon: %s&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Ĉu forigi la dosierojn aŭ ne?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Mi forigas la uzulon %s\n&quot;
++&quot; Faru ankaŭ la jenon\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Forigu hejman dosierujon: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Forigu la poŝtkeston: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Mi forigas uzulon: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Ĉu vi vere volas forigi la grupon %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s estas primara grupo por uzulo %s\n&quot;
++&quot; Unue forigu la uzulon&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Mi forigas grupon: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Plena nomo:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Salutnomo:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Pasvorto:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Konfirmu pasvorton:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Salutnoma kampo:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Grupa nomo:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Bonvolu selekti almenaŭ unu grupon por la uzulo&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Bonvolu difinu Jaron, Monaton kaj Tagon \n&quot;
++&quot; por kont-eksvalidiĝo &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Bonvolu difini la tutan kampon por pasvort-aĝiĝo\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Vi ne povas forigi la uzulon '%s' de ties primara grupo&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Hejmo:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Uzul-datumoj&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Enŝaltu kont-eksvalidiĝon&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Konto eksvalidiĝos (JJJJ-MM-TT):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Ŝlosu la uzul-konton&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Kont-informo&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Uzulo laste ŝanĝis pasvorton al: &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Enŝaltu pasvort-eksvalidiĝon&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Tagoj antaŭ ol ŝanĝo estas permesita:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Tagoj postulataj antaŭ ŝanĝo:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Tagoj da avertado antaŭ ŝanĝo:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Tagoj antaŭ malaktivigo de la konto:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Pasvort-informo&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Selektu la grupojn kies ano estu la uzulo:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Grupo-datumoj&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Selektu la uzulojn aniĝendajn al tiu grupo:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Grupo Uzuloj&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Redakti Grupojn/Uzulojn&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Eraro okazis&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Fermu&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Kopirajto (C) %s ĉe Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Uzul-mastrumado&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Vilhelmo Lutermano &lt;vlutermano@free.fr&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Nomo-kampo malplenas, bonvolu enmeti nomon&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;La nomo devas havi nur minusklajn literojn, ciferojn,`-' kaj `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Nomo tro longas&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Eraro&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;nekonata eraro&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Eraro dum kreado `%s': %s&quot;
+
+<a id="userdrake2tags1133poespo">Added: userdrake2/tags/1.13.3/po/es.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/es.po (rev 0)
++++ userdrake2/tags/1.13.3/po/es.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,784 @@
++# translation of es.po to Español
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/es.php3
++#
++# Spanish PO file for USERDRAKE.
++# Copyright (C) 2000,2003, 2004, 2007 Free Software Foundation, Inc.
++#
++# Celso Gonzalez Garcia &lt;CGG@sgb.es&gt;, 2000.
++# Juan Manuel García Molina &lt;juanma_gm@wanadoo.es&gt;, 2000-2002.
++# Fabian Mandelbaum &lt;fmandelbaum@hotmail.com&gt;, 2002,2003,2004.
++# Fabián Mandelbaum &lt;fmandelbaum@gmail.com&gt;, 2007.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: es\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2010-03-15 14:30-0300\n&quot;
++&quot;Last-Translator: Diego Bello &lt;dbello@gmail.com&gt;\n&quot;
++&quot;Language-Team: Español &lt;es@li.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Error al leer `%s': %s&quot;
++
++#: ../USER/USER.xs:93
++#: ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Error al crear `%s': %s&quot;
++
++#: ../USER/USER.xs:205
++#: ../USER/USER.xs:234
++#: ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Error al quitar `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Error en la creación de cuenta: '%s'.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;No se puede obtener el número Uid&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;No se puede recuperar el valor&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Error al crear cola de correo.\n&quot;
++
++#: ../USER/USER.xs:582
++#, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;No se pudo modificar el usuario: '%s'.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;El usuario no pudo ser eliminado: '%s'.\n&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;Error al establecer contraseña: '%s'.\n&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;error desconocido&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Error en la creación de grupo.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;No se pudo modificar el grupo: '%s'.\n&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;No se pudo eliminar el grupo: '%s'.\n&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;No existe directorio home para el usuario.\n&quot;
++
++#: ../USER/USER.xs:869
++#: ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;No se pudo eliminar el directorio home: '%s'.\n&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Error al eliminar cola de correo.\n&quot;
++
++#: ../userdrake:59
++#: ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Cargando usuarios y grupos... Por favor, espere&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Herramienta de administración de usuarios de Mageia&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;/_Instalar cuenta de invitado&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;/_Desinstalar cuenta de invitado&quot;
++
++#: ../userdrake:101
++#: ../userdrake:102
++#: ../userdrake:103
++#: ../userdrake:114
++#: ../userdrake:115
++#: ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Acciones&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Editar&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Borrar&quot;
++
++#: ../userdrake:104
++#: ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Opciones&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Filtrar usuarios del sistema&quot;
++
++#: ../userdrake:109
++#: ../userdrake:110
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Fichero&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Refrescar&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Salir&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;S&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Añadir usuario&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Añadir _Grupo&quot;
++
++#: ../userdrake:125
++#: ../userdrake:126
++#: ../userdrake:127
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/a_Yuda&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Reportar bug&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Acerca de...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Buscar:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Aplicar filtro&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Usuarios&quot;
++
++#: ../userdrake:162
++#: ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Grupos&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Usuarios y grupos&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Nombre de usuario&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ID de usuario&quot;
++
++#: ../userdrake:186
++#: ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Grupo primario&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Nombre completo&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Shell de login&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Directorio personal&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Estado&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Nombre del grupo&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ID de grupo&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Miembros del grupo&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Añadir usuario&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Añadir un usuario al sistema&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Añadir grupo&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Añadir un grupo al sistema&quot;
++
++#: ../userdrake:198
++#: ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Editar&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Editar fila seleccionada&quot;
++
++#: ../userdrake:199
++#: ../userdrake:674
++#: ../userdrake:707
++#: ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Borrar&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Borrar fila seleccionada&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Refrescar&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Refrescar la lista&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Trabado&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Expirado&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Haga clic sobre el icono para cambiarlo&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Crear usuario nuevo&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Crear directorio personal&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Directorio personal: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Crear un grupo privado para el usuario&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Especificar ID de usuario manualmente&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;El usuario ya existe en el sistema, por favor use otro nombre de usuario&quot;
++
++#: ../userdrake:419
++#: ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;No coincide la contraseña&quot;
++
++#: ../userdrake:422
++#: ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Esta contraseña es demasiado simple. \n&quot;
++&quot; Las contraseñas buenas deberían tener más de 6 caracteres&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;El UID del usuario es menor a 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;No se recomienda crear un usuario con UID menor a 500.\n&quot;
++&quot;¿Está seguro que desea hacer esto?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Poniendo %s en el grupo 'users'&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Creando grupo nuevo: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Añadiendo usuario: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Asistente de migración&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;¿Desea ejecutar el asistente de migración para importar los ajustes y &quot;
++&quot;documentos de Windows® en su sistema Mageia?&quot;
++
++#: ../userdrake:484
++#: ../userdrake:528
++#: ../userdrake:587
++#: ../userdrake:674
++#: ../userdrake:707
++#: ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Cancelar&quot;
++
++#: ../userdrake:484
++#: ../userdrake:521
++#: ../userdrake:587
++#: ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Aceptar&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Elegir un grupo&quot;
++
++#: ../userdrake:512
++#: ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Añadir al grupo existente&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Añadir al grupo 'users'&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Ya existe un grupo con este nombre. ¿Qué desearía hacer?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Crear nuevo grupo&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Especificar ID de grupo manualmente&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;El grupo ya existe, por favor use otro nombre de grupo&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;El GID del grupo es menor a 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;No se recomienda crear un grupo con GID menor a 500.\n&quot;
++&quot;¿Está seguro que desea hacer esto?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Añadiendo grupo: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;¿Borrar o no archivos?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Borrando usuario %s\n&quot;
++&quot; Realizando también lo siguiente\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Borrar directorio personal: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Borrar casilla de correo: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Quitando usuario: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;¿Realmente desea borrar el grupo %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s es un grupo primario para el usuario %s\n&quot;
++&quot;Quite primero al usuario&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Quitando grupo: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Nombre completo:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Login:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Contraseña:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Confirmar contraseña:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Shell de login:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Nombre del grupo:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Por favor, seleccione al menos un grupo para el usuario&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Por favor, especifique el año, mes y día\n&quot;
++&quot;para la expiración de la cuenta&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Por favor, complete todos los campos para la caducación de la contraseña\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;No puede quitar al usuario '%s' de su grupo primario&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Directorio personal:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Datos del usuario&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Habilitar expiración de cuenta&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;La cuenta expira (AAAA-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Trabar cuenta de usuario&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Información de la cuenta&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;El usuario cambió la contraseña por última vez el : &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Habilitar expiración de contraseña&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Días antes que se permita el cambio :&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Días antes que se requiera el cambio :&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Días de advertencia antes del cambio :&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Días antes que la cuenta se inactive :&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Información de contraseña&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Seleccione los grupos a los cuales pertenecerá el usuario:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Datos del grupo&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Seleccione los usuarios que formarán parte de este grupo:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Grupos de usuarios&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Editar Grupos/Usuarios&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Ocurrió un error:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Cerrar&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Copyright (C) %s por Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Administración de usuarios&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++&quot;José Manuel Pérez &lt;jmprodu@hotmail.com&gt;\n&quot;
++&quot;Pablo Saratxaga &lt;pablo@mandriva.com&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;El campo de nombre está vacío, por favor proporcione un nombre&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;El nombre debe contener sólo letras minúsculas, números, `-' y `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;El nombre es muy largo&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Error&quot;
++
+
+<a id="userdrake2tags1133poetpo">Added: userdrake2/tags/1.13.3/po/et.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/et.po (rev 0)
++++ userdrake2/tags/1.13.3/po/et.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,752 @@
++# Translation of userdrake.po to Estonian
++# Copyright (C) 2001, 2003 Free Software Foundation, Inc.
++# Riho Kurg &lt;rx@linux.ee&gt;, 2001.
++# Marek Laane &lt;bald@starman.ee&gt;, 2003-2007
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake 0.3\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2010-02-02 16:09+0300\n&quot;
++&quot;Last-Translator: Marek Laane &lt;bald@starman.ee&gt;\n&quot;
++&quot;Language-Team: Estonian &lt;et@li.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.0.2\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Viga '%s' lugemisel: %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Viga '%s' loomisel: %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Viga '%s' eemaldamisel: %s&quot;
++
++#: ../USER/USER.xs:490
++#, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Konto loomine nurjus: '%s'.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;UID numbri hankimine nurjus&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;Väärtuse hankimine nurjus&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Viga kirjade puhvri loomisel.\n&quot;
++
++#: ../USER/USER.xs:582
++#, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Kasutaja muutmine nurjus: '%s'.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Kasutaja kustutamine nurjus: '%s'.\n&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;Parooli määramine nurjus: '%s'.\n&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;tundmatu viga&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Grupi loomine nurjus.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;Grupi muutmine nurjus: '%s'.\n&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;Grupi kustutamine nurjus: '%s'.\n&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;Kasutajal puudub kodukataloog.\n&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Kodukataloogi kustutamine nurjus: '%s'.\n&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Viga kirjade puhvri kustutamisel.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Kasutajate ja gruppide laadimine... Palun oodake&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageiai kasutajate haldur&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;/Pa_igalda külalise (guest) konto&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;/_Eemalda külalise (guest) konto&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Toimingud&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Muuda&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Kustuta&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Seadistused&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Filtreeri süsteemsed kasutajad&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Fail&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/Vä_rskenda&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Välju&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/Lis_a kasutaja&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Lisa _grupp&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Abi&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Veateade&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Teave...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Otsing:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Rakenda filter&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Kasutajad&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Grupid&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Kasutajad ja grupid&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Kasutajanimi&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Kasutaja ID&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Esmane grupp&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Täisnimi&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Kasutatav shell&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Kodukataloog&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Staatus&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Grupi nimi&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Grupi ID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Grupi liikmed&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Lisa kasutaja&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Lisab süsteemi kasutaja&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Lisa grupp&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Lisab süsteemi grupi&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Muuda&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Muudab valitud rida&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Kustuta&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Kustutab valitud rea&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Värskenda&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Värskendab nimekirja&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Lukustatud&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Aegunud&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Ikooni muutmiseks klõpsake sellel&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Uue kasutaja loomine&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Kodukataloogi loomine&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Kodukataloog: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Kasutajale luuakse privaatgrupp&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Kasutaja ID määratakse käsitsi&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Selline kasutaja on juba olemas, palun valige muu nimi&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Paroolid ei lange kokku&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;See parool on liiga lihtne. \n&quot;
++&quot; Korralik parool peaks koosnema vähemalt 6 sümbolist&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Kasutaja UID on väiksem kui 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Kasutaja loomine, kelle UID on alla 500, ei ole soovitatav.\n&quot;
++&quot; Kas soovite seda kindlasti teha?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;%s lisatakse gruppi 'users'&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Uue grupi loomine: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Kasutaja lisamine: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Kolimisnõustaja&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;Kas soovite käivitada kolimisnõustaja, et importida Windowsi dokumendid ja &quot;
++&quot;seadistused ka oma Mageiai süsteemi?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Loobu&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Olgu&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Vali grupp&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Lisa olemasolevasse gruppi&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Lisa gruppi 'users'&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Sellise nimega grupp on juba olemas. Mida soovite ette võtta?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Uue grupi loomine&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Grupi ID määratakse käsitsi&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Selline grupp on juba olemas, palun valige muu nimi&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; Grupi GID on väiksem kui 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Grupi loomine, mille GID on alla 500, ei ole soovitatav.\n&quot;
++&quot; Kas soovite seda kindlasti teha?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Grupi lisamine: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Kas kustutada failid?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Kasutaja %s kustutamine\n&quot;
++&quot; Ühtlasi võetakse ette järgmised tegevused\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Kustutatakse kodukataloog: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Kustutatakse postkast: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Kasutaja eemaldamine: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Kas tõesti kustutada grupp %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s on kasutaja %s esmane grupp\n&quot;
++&quot; Eemaldage esmalt kasutaja&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Grupi eemaldamine: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Täisnimi:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Kasutajatunnus:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Parool:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Parool uuesti:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Kasutatav shell:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Grupi nimi:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Palun valige kasutajale vähemalt üks grupp&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Palun määrake konto aegumise \n&quot;
++&quot; aasta, kuu ja päev &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Palun täitke kõik parooli aegumise väljad\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Kasutajat '%s' ei saa eemaldada tema esmasest grupist&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Kodukataloog:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Kasutaja andmed&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Konto aegumise lubamine&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Konto aegub (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Kasutaja konto lukustamine&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Konto info&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Kasutaja muutis viimati parooli: &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Parooli aegumise lubamine&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Päevi enne muutmise lubamist:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Päevi enne muutmise nõudmist:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Päevi enne muutmise hoiatuse andmist:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Päevi enne konto tühistamist:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Parooli info&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Grupid, millesse see kasutaja kuulub:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Grupi andmed&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Kasutajad, kes sellesse gruppi kuuluvad:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Grupikasutajad&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Gruppide / kasutajate redigeerimine&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Tekkis viga:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Sulge&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Autoriõigus (C) %s: Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Kasutajate haldamine&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Marek Laane &lt;bald@starman.ee&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Nimeväli on tühi. Palun määrake nimi&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;Nimi tohib sisaldada ainult väiketähti, numbreid ning märke '-' ja '_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Nimi on liiga pikk&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Viga&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;tundmatu viga&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Viga '%s' loomisel: %s&quot;
+
+<a id="userdrake2tags1133poeupo">Added: userdrake2/tags/1.13.3/po/eu.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/eu.po (rev 0)
++++ userdrake2/tags/1.13.3/po/eu.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,755 @@
++# translation of userdrake.po to Euskara
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/eu.php3
++#
++# EUSKARA: Mageia itzulpena.
++# Copyright (C) 2001, 2003, 2004, 2008 Free Software Foundation, Inc.
++#
++# Josu Waliño &lt;josu@elhuyar.com&gt;, Elhuyar, 2002.
++# Iñigo Salvador Azurmendi &lt;xalba@euskalnet.net&gt;, 2001-2002, 2003, 2004, 2008, 2009, 2010.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2010-02-07 21:05+0100\n&quot;
++&quot;Last-Translator: Iñigo Salvador Azurmendi &lt;xalba@euskalnet.net&gt;\n&quot;
++&quot;Language-Team: Basque &lt;cooker-i18n@mandrivalinux.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: Lokalize 1.0\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Akatsa '%s' irakurtzerakoan: %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Akatsa '%s' sortzerakoan: %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Akatsa '%s' ezabatzerakoan: %s&quot;
++
++#: ../USER/USER.xs:490, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Kontuaren sorrerak huts egin du: '%s'.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;Ezin UID zenbakia eskuratu&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;Ezin balioa eskuratu&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Akatsa posta txirrita sortzerakoan.\n&quot;
++
++#: ../USER/USER.xs:582, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Ezin izan da erabiltzailea aldatu: '%s'.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Ezin izan da erabiltzailea ezabatu: '%s'.\n&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;Pasahitza ezartzeak huts egin du: '%s'.\n&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;akats ezezakuna&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Taldea sortzeak huts egin du.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;Ezin izan da taldea aldatu: '%s'.\n&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;Ezin izan da taldea ezabatu: '%s'.\n&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;Erabiltzailearentzako etxeko karpetarik ez.\n&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Ezin izan da etxeko karpeta ezabatu: '%s'.\n&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Akatsa posta txirrita ezabatzerakoan.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Erabiltzaile eta Taldeak zamatzen... mesedez itxoin&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageia Erabiltzaileen Kudeaketa Tresna&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;/_Instalatu gonbidatu kontua&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;/_Desinstalatu gonbidatu kontua&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Ekintzak&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Editatu&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Ezabatu&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Aukerak&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Iragazi sistemaren erabiltzaileak&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Fitxategia&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Berritu&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Irten&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;I&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Erabiltzailea gehitu&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/_Taldea gehitu&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Laguntza&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/Akatsa _txostendu&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Honi buruz...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Bilatu:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Iragazkia aplikatu&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Erabiltzaileak&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Taldeak&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Erabiltzaileak eta taldeak&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Erabiltzaile Izena&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Erabiltzaile ID&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Talde Primarioa&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Izen Osoa&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Erregistro Maskorra&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Atariko Direktorioa&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Egoera&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Talde Izena&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Talde ID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Taldeko Partadeak&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Erabiltzaileak Erantsi&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Sistemara erabiltzaile bat erantsi&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Taldea Erantsi&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Sistemara talde bat erantsi&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Editatu&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Editatu aukeratutako errenkada&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Ezabatu&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Ezabatu aukeratutako errenkada&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Berritu&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Zerrenda berritu&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Giltzatuta&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Balio Galduta&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Klikatu ikonoan berau aldatzeko&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Erabiltzaile berria sortu&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Sortu Atariko Direktorioa&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Atariko Direktorioa: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Erabiltzailearentzako talde pribatua sortu&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Zehaztu eskuz erabiltzaile ID&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Izen hori dagoeneko badago, aukeratu bestu erabiltzaile izen bat&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Pasahitza ez dator bat&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Pasahitza sinpleegia da.\n&quot;
++&quot;Pasahitz onak &gt; 6 karatere behar lituzke&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Erabiltzaile UID &lt; 500 da&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Ez da gomendagarria UID &lt; 500 duen erabiltzaile bat sortzea.\n&quot;
++&quot;Ziur zaude hau egin nahi duzula?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;'users' taldeari %s jartzen&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Talde berria sortzen: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Erabiltzailea eransten: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Migrazio morroia&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;Migrazio morroia exekutatu nahi duzu Windows dokumentu eta ezarpenak &quot;
++&quot;(documents and settings) zure Mageia banaketara inportatzeko?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Utzi&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Ados&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Aukeratu taldea&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Erantsi dagoen taldera&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Erantsi 'users' taldeari&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Izen hori duen taldea badago dagoeneko. Zer egin nahi zenuke?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Talde berria sortu&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Zehaztu eskuz talde ID&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Taldea dagoeneko badago, mesedez aukeratu beste talde izen bat&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;Talde GID &lt; 500 da&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Ez da gomendagarria GID &lt; 500 duen talde bat sortzea.\n&quot;
++&quot;Ziur zaude hau egin nahi duzula?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Taldea eransten: %s&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Fitxategiak ezabatu edo ez?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;%s erabiltzailea ezabatzen\n&quot;
++&quot; Burutu ondorengo ekintzak ere\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Ezabatu Atariko Direktorioa: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Ezabatu Postakutxa: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Erabiltzailea ezabatzen: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Benetan ezabatu nahi duzu %s taldea?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s, %s erabiltzailearentzako talde primarioa da\n&quot;
++&quot;Lehendabizi ezabatu erabiltzailea&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Taldea ezabatzen: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Izen Osoa:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Erregistroa:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Pasahitza:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Pasahitza berretsi:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Erregistro Maskorra:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Talde Izena:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Aukeratu talde bat gutxienez erabiltzailearentzako&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Zehaztu kontuak balioa galduko duen \n&quot;
++&quot;urtea, hilabetea eta eguna&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Mesedez, bete pasahitza galdu dadin eremu guztiak\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Ezin duzu '%s' erabiltzailea bere talde primariotik kendu&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Ataria:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Erabiltzailearen datuak&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Kontuaren balio-galtzea gaitu&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Kontuak balioa galtzen du (UUUU-HH-EE): &quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Blokeatu Erabiltzaile Kontua&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Kontuaren Info&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Erabiltzaileak pasahitza azkenekoz aldatu zuen: &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Pasahitzaren balio-galtzea gaitu&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Egunak aldaketa baimendu aurretik: &quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Egunak aldaketa eskatu aurretik: &quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Egunak ohartarazten aldaketa aurretik: &quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Egunak kontua ezgaitu aurretik: &quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Pasahitzaren Info&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Hautatu erabiltzailea partaide izango duten taldeak: &quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Talde datuak&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Aukeratu talde honetara batuko diren erabiltzaileak: &quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Talde erabiltzaileak&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Editatu Taldeak / Erabiltzaileak&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Akats bat gertatu da:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Itxi&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Copyright (C) %s Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Erabiltzaileen Kudeaketa&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Iñigo Salvador Azurmendi &lt;xalba@euskalnet.net&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Izen eremua hutsik dago, mesedez eman izen bat&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++&quot;Izenak soilik hizki latinoak txikiz, zenbakiak, `-' eta `_' izan behar ditu&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Izena luzeegia da&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Okerra&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;akats ezezakuna&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Akatsa '%s' sortzerakoan: %s&quot;
+
+<a id="userdrake2tags1133pofapo">Added: userdrake2/tags/1.13.3/po/fa.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/fa.po (rev 0)
++++ userdrake2/tags/1.13.3/po/fa.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,755 @@
++# translation of userdrake-fa.po to Persian
++# translation of userdrake.po to Persian
++# This file is distributed under the same license as the PACKAGE package.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
++# Abbas Izad &lt;abbasizad@hotmail.com&gt;, 2003, 2004.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-fa\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2004-09-26 14:46+0330\n&quot;
++&quot;Last-Translator: Abbas Izad &lt;abbasizad@hotmail.com&gt;\n&quot;
++&quot;Language-Team: Persian\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.3\n&quot;
++&quot;Plural-Forms: nplurals=1; plural=0;\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;خطا در خواندن `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;خطا در ایجاد کردن `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;خطا در برداشتن `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;خطا در ایجاد کردن چرخه‌ی پست.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;خطا در ایجاد کردن چرخه‌ی پست.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;خطا در ایجاد کردن چرخه‌ی پست.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;خطای ناشناخته&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;خطا در ایجاد کردن چرخه‌ی پست.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;خطا در حذف کردن چرخه‌ی پست.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;در حال بارگذاری کاربران و گروه‌ها... لطفاً صبر کنید&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;ابزار مدیریت اربران لینوکس ماندریبا&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_کنش‌ها&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_ویرایش&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_حذف&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_گزینه‌ها&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_فیلتر کردن کاربران سیستم&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_پرونده&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_نوسازی&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_ترک&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_افزودن کاربر&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/افزودن _گروه&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_راهنما&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_گزارش اشکال&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_درباره‌ی...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;جستجو:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;گذاردن فیلتر&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;کاربران&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;گروه‌ها&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;کاربرها و گروه‌ها&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;نام کاربر&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;شناسه‌ی کاربر&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;گروه اولیه&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;نام کامل&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;پوسته‌ی ثبت‌ورود&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;شاخه‌ی خانه&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;وضعیت&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;نام گروه&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;شناسه‌ی گروه&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;اعضای گروه&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;افزودن کاربر&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;افزودن یک کاربر به سیستم&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;افزودن گروه&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;افزودن یک گروه به سیستم&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;ویرایش&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;ویرایش ردیف انتخاب شده&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;حذف&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;حذف ردیف انتخاب شده&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;نوسازی&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;نوسازی لیست&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;قفل شده است&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;منقضی شده است&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;برای تغییر آن بر روی شمایل کلیک کنید&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;ایجاد کاربر جدید&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;ایجاد شاخه‌ی خانه&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;شاخه‌ی آغازه: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;ایجاد یک گروه خصوصی برای کاربر&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;مشخص کردن دستی شناسه‌ی کاربر&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;کاربر از قبل وجود دارد، لطفاً نام کاربری دیگری را انتخاب کنید&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;عدم تطابق گذرواژه&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;این گذرواژه خیلی ساده است. \n&quot;
++&quot;گذرواژه‌ی خوب باید بیشتر از ۶ نویسه داشته باشد&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;شناسه کاربر کوچکتر از ۵۰۰ است&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;ایجاد کردن یک کاربر با یک شناسه‌ی کوچکتر از ۵۰۰ پیشنهاد نمی‌شود. \n&quot;
++&quot;آیا مطمئن هستید که می‌خواهید این کار را انجام دهید؟\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;گذاشتن %s به گروه کاربران&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;ایجاد گروه جدید: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;افزودن کاربر: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;لغو&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;تایید&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;انتخاب کردن گروه&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;افزودن به گروه موجود&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;افزودن به گروه 'کاربران'&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;یک گروه با این نام از قبل وجود دارد. چکار دوست دارید بکنید؟&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;ایجاد گروه جدید&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;مشخص کردن دستی شناسه‌ی گروه&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;گروه از قبل وجود دارد، لطفاً نام دیگری برای گروه انتخاب کنید&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;شناسه گروه کوچکتر از ۵۰۰ است&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;ایجاد کردن یک گروه با یک شناسه‌ی کوچکتر از ۵۰۰ پیشنهاد نمی‌شود. \n&quot;
++&quot;آیا مطمئن هستید که می‌خواهید این کار را انجام دهید؟\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;افزودن گروه: %s&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;حذف پرونده‌ها یا نه؟&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;حذف کردن کاربر %s\n&quot;
++&quot; کنش‌های بدنبال آمده را نیز انجام دهید\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;حذف شاخه‌ی آغازه: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;حذف جعبه‌ی پست : /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;برداشتن کاربر: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;آیا واقعاً می‌خواهید گروه %s را حذف کنید؟&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s یک گروه مقدم برای کاربر %s می‌باشد\n&quot;
++&quot; نخست کاربر را بردارید&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;برداشتن گروه: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;نام کامل:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;ثبت‌ورود:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;گذرواژه:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;تصدیق گذرواژه:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;پوسته‌ی ثبت‌ورود:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;نام گروه:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;لطفاً حداقل یک گروه را برای کاربر انتخاب کنید&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;لطفاً سال، ماه و روز را برای انقضای \n&quot;
++&quot;حساب مشخص کنید &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;لطفاً تمام محوطه‌های در عمر گذرواژه را پُر کنید\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;شما نمی‌توانید کاربرهای '%s' را از گروه اولیه‌اشان بردارید&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;آغازه:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;اطلاعات کاربر&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;بکار انداختن انقضای حساب&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;پایان یافتن حساب (سال-ماه-روز):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;قفل کردن حساب کاربر&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;اطلاعات حساب&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;تغییر گذرواژه‌ی کاربر آخرین بار در :&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;بکار انداختن انقضای گذرواژه&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;تعداد روزها قبل از آنکه تغییر اجازه داده شود:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;تعداد روزها قبل از آنکه تغییر لازم بشود:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;روزهای هشدار قبل از تغییر: &quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;تعداد روزها قبل از آنکه حساب غیر فعال شود:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;اطلاعات گذرواژه&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;انتخاب گروهی که کاربر عضو آن خواهد شد:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;داده‌های گروه&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;انتخاب کاربران برای پیوستن به این گروه:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;کاربران گروه&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;ویرایش کاربرها / گروه‌ها&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;خطائی رخ داد&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;بستن&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;مدیریت کاربران&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;ماندریبا لینوکس&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Abbas Izad &lt;abbasizad@hotmail.com&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;محوطه‌ی نام خالی است لطفاً یک نام را عرضه کنید&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;نام باید فقط دارای حروف کوچک لاتین، اعداد، `-' و `_' باشد&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;نام خیلی طولانی است&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;خطا&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;خطای ناشناخته&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;خطا در ایجاد کردن `%s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;نگارندگان: &quot;
+
+<a id="userdrake2tags1133pofipo">Added: userdrake2/tags/1.13.3/po/fi.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/fi.po (rev 0)
++++ userdrake2/tags/1.13.3/po/fi.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,760 @@
++# userdrake-fi - Finnish Translation
++#
++# Copyright (C) 2002,2003, 2004 Free Software Foundation, Inc.
++#
++#
++# Matias Griese &lt;mahagr@utu.fi&gt;, 2001, 2002.
++# Taisto Kuikka &lt;69319@batman.jypoly.fi&gt;, 2003.
++# Thomas Backlund &lt;tmb@mandrake.org&gt;, 2002, 2003, 2004.
++# Anssi Hannula &lt;anssi@mandriva.org&gt;, 2007.
++# Thomas Backlund &lt;tmb@mandriva.org&gt;, 2009.
++# Jani Välimaa &lt;wally@mandriva.org&gt;, 2009, 2010.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2010-02-04 14:16+0200\n&quot;
++&quot;Last-Translator: Jani Välimaa &lt;wally@mandriva.org&gt;\n&quot;
++&quot;Language-Team: Finnish &lt;cooker-i18n@mandrivalinux.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: Lokalize 1.0\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Virhe luettaessa %s: %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Virhe luotaessa %s: %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Virhe poistettaessa %s: %s&quot;
++
++#: ../USER/USER.xs:490
++#, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Tilin luonti epäonnistui: %s.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;UID:ta ei voitu noutaa&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;Arvoa ei voitu noutaa&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Virhe luotaessa postilaatikkoa.\n&quot;
++
++#: ../USER/USER.xs:582
++#, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Käyttäjätunnuksen muokkaaminen epäonnistui: %s.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Käyttäjää ei voitu poistaa: %s.\n&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;Salasanan asettaminen epäonnistui: %s.\n&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;tuntematon virhe&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Ryhmän luonti epäonnistui.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;Ryhmän muokkaaminen epäonnistui: %s.\n&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;Ryhmää ei voitu poistaa: %s.\n&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;Käyttäjällä ei ole kotihakemistoa.\n&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Käyttäjän kotihakemistoa ei voitu poistaa: %s.\n&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Virhe poistettaessa postilaatikkoa.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Ladataan käyttäjät ja ryhmät... Odota hetki&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageiain käyttäjienhallintatyökalu&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;/Asenna _vierastili&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;/Poista _vierastili&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/T_oiminnot&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Muokkaa&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Poista&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Asetukset&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Piilota järjestelmäkäyttäjät&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Tiedosto&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Päivitä&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Lopeta&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;L&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/Lisää _käyttäjä&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Lisää _ryhmä&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/O_hje&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Ilmoita virheestä&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Tietoja&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Etsi:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Suodata&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Käyttäjät&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Ryhmät&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Käyttäjät ja ryhmät&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Käyttäjätunnus&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;UID&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Ensisijainen ryhmä&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Koko nimi&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Kirjautumistulkki&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Kotihakemisto&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Tila&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Nimi&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;GID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Jäsenet&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Lisää käyttäjä&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Lisää käyttäjä järjestelmään&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Lisää ryhmä&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Lisää ryhmä järjestelmään&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Muokkaa&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Muokkaa valittua riviä&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Poista&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Poista valittu rivi&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Päivitä&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Päivitä lista&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Lukittu&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Vanhentunut&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Vaihda kuvaketta napsauttamalla&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Luo uusi käyttäjä&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Luo kotihakemisto&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Kotihakemisto: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Luo käyttäjälle yksityinen ryhmä&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Määritä UID käsin&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Käyttäjätunnus on jo olemassa, valitse toinen käyttäjätunnus&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Salasana ei täsmää&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Salasana on liian yksinkertainen.\n&quot;
++&quot; Hyvä salasana on vähintään kuusi merkkiä pitkä.&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Käyttäjän UID on pienempi kuin 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Ei ole suositeltavaa luoda käyttäjää, jonka UID on pienempi kuin 500.\n&quot;
++&quot; Haluatko varmasti luoda käyttäjän?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Lisätään käyttäjä %s ryhmään \&quot;users\&quot;.&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Luodaan uusi ryhmä: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Lisätään käyttäjä: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Tietojen tuonti Windowsista&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;Haluatko tuoda Windowsin dokumentit ja asetukset Mageiaiin?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Peruuta&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Ok&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Valitse ryhmä&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Lisää olemassa olevaan ryhmään&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Lisää ryhmään \&quot;users\&quot;&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Tällä nimellä oleva ryhmä on jo olemassa. Mitä haluat tehdä?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Luo uusi ryhmä&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Määritä GID käsin&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Ryhmä on jo olemassa, valitse toinen nimi ryhmälle&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; Ryhmän GID on pienempi kuin 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Ei ole suositeltavaa luoda ryhmää, jonka GID on pienempi kuin 500.\n&quot;
++&quot; Haluatko varmasti luoda ryhmän?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Lisätään ryhmä: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Poistetaanko tiedostot?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Poistetaan käyttäjä %s.\n&quot;
++&quot; Suorita myös seuraavat tehtävät:\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Poista kotihakemisto: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Poista sähköpostilaatikko: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Poistetaan käyttäjä: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Haluatko varmasti poistaa ryhmän %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s on käyttäjän %s ensisijainen ryhmä\n&quot;
++&quot; Poista ensin käyttäjä&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Poistetaan ryhmä: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Koko nimi:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Käyttäjätunnus:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Salasana:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Varmista salasana:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Kirjautumistulkki:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Ryhmän nimi:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Valitse käyttäjälle vähintään yksi ryhmä&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Määrittele vuosi, kuukausi ja päivä\n&quot;
++&quot; jolloin käyttäjätili vanhenee &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Täytä kaikki kentät salasanan vanhenemiselle\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Käyttäjää %s ei voida poistaa hänen ensisijaisesta ryhmästään&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Kotihakemisto:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Käyttäjän tiedot&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Ota käyttöön käyttäjätilin vanheneminen&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Käyttäjätili vanhenee (VVVV-KK-PP):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Lukitse käyttäjätili&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Käyttäjätili&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Käyttäjä vaihtoi salasanaa viimeksi:&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Ota käyttöön salasanan vanheneminen&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Salasanan vaihtaminen sallitaan X päivän jälkeen:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Salasanan vaihtaminen vaaditaan X päivän jälkeen:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Varoita X päivää ennen vaihtamista:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Käyttäjätunnus merkitään käyttämättömäksi X päivän jälkeen:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Salasana&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Valitse ryhmät, joihin käyttäjä kuuluu:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Ryhmän tiedot&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Valitse ryhmään kuuluvat käyttäjät:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Ryhmän käyttäjät&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Muokkaa ryhmiä / käyttäjiä&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Virhe:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Sulje&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Copyright (C) %s, Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Käyttäjienhallinta&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++&quot;Thomas Backlund &lt;tmb@mandrake.org&gt;\n&quot;
++&quot;Jani Välimaa &lt;wally@mandriva.org&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Käyttäjätunnus on pakollinen tieto&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++&quot;Käyttäjätunnus voi muodostua vain pienistä kirjaimista, numeroista ja &quot;
++&quot;merkeistä \&quot;-\&quot; ja \&quot;_\&quot;&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Nimi on liian pitkä&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Virhe&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;tuntematon virhe&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Virhe luotaessa %s: %s&quot;
+
+<a id="userdrake2tags1133pofrpo">Added: userdrake2/tags/1.13.3/po/fr.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/fr.po (rev 0)
++++ userdrake2/tags/1.13.3/po/fr.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,772 @@
++# translation of userdrake-fr.po to francais
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/fr.php3
++#
++# Copyright (C) 2000 Mandriva
++# Vincent Saugey &lt;vince@mandriva.com&gt;, 2000.
++# Guy CLOTILDE &lt;guy.clotilde@wanadoo.fr&gt;, 2002.
++# Lecureuil Nicolas &lt;n1c0l4s.l3@wanadoo.fr&gt;, 2004.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-fr\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2010-02-17 13:40+0100\n&quot;
++&quot;Last-Translator: Christophe Berthelé &lt;berthy@mandriva.org&gt;\n&quot;
++&quot;Language-Team: francais &lt;fr@li.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.3.1\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n &gt; 1);\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Erreur lors de la lecture de `%s' : %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Erreur lors de la création de `%s' : %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Erreur lors de la suppression de `%s' : %s&quot;
++
++#: ../USER/USER.xs:490
++#, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Erreur lors de la création du compte : « %s ».\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;Impossible de récupérer l'Uid&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;Impossible de récupérer la valeur&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;&quot;
++&quot;Erreur lors de la création du répertoire de stockage du courrier &quot;
++&quot;électronique.\n&quot;
++
++#: ../USER/USER.xs:582
++#, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;L'utilisateur ne peut être modifé : « %s ».\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;L'utilisateur ne peut être effacé : « %s ».\n&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;Echec d'initialisation du mot de passe : « %s ».\n&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;Erreur inconnue&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Erreur lors de la création du groupe.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;Le groupe ne peut être modifé : « %s ».\n&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;Le groupe ne peut être effacé : « %s ».\n&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;Pas de répertoire home pour l'utilisateur.\n&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Le répertoire utilisateur ne peut être supprimé : « %s ».\n&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;&quot;
++&quot;Erreur lors de la suppression du répertoire de stockage du courrier &quot;
++&quot;électronique.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Chargement des Utilisateurs et des Groupes... Veuillez patienter&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Outil de gestion des utilisateurs de Mageia&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;/_Installer le compte invité&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;/_Désinstaller le compte invité&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Actions&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Éditer&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Effacer&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Options&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Filtrer les utilisateurs du système&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Fichier&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Rafraîchir&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Quitter&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Ajouter Utilisateur&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Ajouter _Groupe&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Aide&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Rapporter un bogue&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_A propos...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Chercher : &quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Appliquer le filtre&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Utilisateurs&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Groupes&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Utilisateurs et groupes&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Nom d'utilisateur&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ID utilisateur&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Groupe primaire&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Nom complet&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Shell de démarrage&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Dossier personnel&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Statut&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Nom du groupe&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ID Groupe&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Membres du groupe&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Ajouter utilisateur&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Ajouter un utilisateur au système&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Ajouter un groupe&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Ajouter un groupe au système&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Éditer&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Éditer la ligne sélectionnée&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Retirer&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Retirer la ligne sélectionnée&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Rafraîchir&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Rafraîchir la liste&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Verrouillé&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Expiré&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Cliquez sur l'icone afin de la modifier&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Créer un nouvel utilisateur&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Créer le dossier personnel&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Dossier personnel : &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Créer un groupe privé pour l'utilisateur&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Indiquer manuellement l'ID utilisateur&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;L'utilisateur existe déjà, veuillez choisir un autre nom&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Mot de passe incorrect&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Ce mot de passe est trop simple. \n&quot;
++&quot; Les bons mots de passe doivent \n&quot;
++&quot; comporter plus 6 caractères&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;L'identifiant utilisateur est inférieur à 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Créer un utilisateur avec un UID en-dessous de 500 est déconseillé.\n&quot;
++&quot; Êtes-vous sûr de vouloir le faire ?\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Ajouter %s au groupe « users »&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Création du nouveau groupe : %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Ajout de l'utilisateur : %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Assistant de migration&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;Voulez-vous lancer l'assistant de migration afin d'importer les documents et &quot;
++&quot;réglages de Windows dans votre distribution Mageia ?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Annuler&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Ok&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID : &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Choisir un groupe&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Ajouter au groupe existant&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Ajouter au groupe 'users'&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Un groupe avec ce nom existe déjà. Que voulez-vous faire ?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Créer un nouveau groupe&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Indiquer un ID de groupe manuellement&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Le groupe existe déjà, veuillez choisir un autre nom de groupe&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; L'identifiant de groupe est inférieur à 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Créer un groupe avec un GID en-dessous de 500 est déconseillé.\n&quot;
++&quot; Êtes-vous sûr de vouloir le faire ?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Ajout du groupe : %s&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID : &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Effacer les fichiers ou non ?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Destruction de l'utilisateur %s\n&quot;
++&quot; ainsi que la réalisation des actions suivantes\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Effacer le dossier personnel : %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Destruction de la boite de messages : /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Destruction de l'utilisateur : %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Voulez-vous réellement détruirer le groupe « %s » ?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s est un groupe primaire pour l'utilisateur %s\n&quot;
++&quot; Enlever l'utilisateur d'abord&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Destruction du groupe : %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Nom complet :&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Utilisateur :&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Mot de passe :&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Confirmation du mot de passe : &quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Shell de démarrage :&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Nom du groupe :&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Veuillez choisir au moins un groupe pour l'utilisateur&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Veuillez indiquer l'année, le mois et le jour \n&quot;
++&quot; pour l'expiration du compte &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Veuillez indiquer tous les champs pour l'expiration du mot de passe\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Vous ne pouvez pas supprimer l'utilisateur '%s' de son groupe primaire&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Dossier perso. :&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Données utilisateur&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Activer l'expiration du compte&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Date d'expiration du compte (AAAA-MM-JJ) : &quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Bloquer le compte utilisateur&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Info sur le compte&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;L'utilisateur a changé son mot de passe le : &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Activer l'expiration du mot de passe&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Nombre de jours avant qu'une modification soit permise : &quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Nombre de jours avant le changement : &quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Nombre de jours avant l'avertissement : &quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Nombre de jours avant de désactiver le compte : &quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Information sur le mot de passe&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Choisir les groupes dont l'utilisateur sera membre : &quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Données sur le groupe&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Choisir les utilisateurs de ce groupe : &quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Membres du groupe&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Éditer les Groupes / les Utilisateurs&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Une erreur est survenue :&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Fermer&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Copyright (C) %s par Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Gestion Utilisateurs&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++&quot;David Baudens\n&quot;
++&quot;David Odin\n&quot;
++&quot;Pablo Saratxaga &lt;pablo@mandriva.com&gt;\n&quot;
++&quot;KAtiOS &lt;katios@nolabel.net&gt;\n&quot;
++&quot;Guillaume Cottenceau\n&quot;
++&quot;Thierry Vignaud &lt;tvignaud@mandriva.com&gt;\n&quot;
++&quot;Christophe Combelles &lt;ccomb@free.fr&gt;\n&quot;
++&quot;Adrien Rezer &lt;monsieurdidi@free.fr&gt;\n&quot;
++&quot;Nicolas Richard &lt;richardnicolas22@yahoo.fr&gt;\n&quot;
++&quot;Lecureuil Nicolas &lt;n1c0l4s.l3@wanadoo.fr&gt;\n&quot;
++&quot;Teletchéa &lt;steletch@free.fr&gt;\n&quot;
++&quot;Christophe Berthelé\n&quot;
++&quot;Didier Hérisson &lt;didier.herisson@angstrom.uu.se&gt;\n&quot;
++&quot;Nicolas Lécureuil &lt;neoclust@mandriva.org&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Le champ nom est vide veuillez fournir un nom&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;Le nom ne peut contenir que lettres minuscules, nombres, `-' et `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Le nom est trop long&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Erreur&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Auteurs : &quot;
++
++#~ msgid &quot;Mandrake Linux Users Management Tool&quot;
++#~ msgstr &quot;Outil de gestion des utilisateurs de Mageia&quot;
+
+<a id="userdrake2tags1133pofurpo">Added: userdrake2/tags/1.13.3/po/fur.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/fur.po (rev 0)
++++ userdrake2/tags/1.13.3/po/fur.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,758 @@
++# translation of userdrake-fur.po to furlan
++# translation of userdrake.po to furlan
++# Copyright (C) 2004 Free Software Foundation, Inc.
++# Andrea Gracco &lt;graccoandrea@tin.it&gt;, 2004.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-fur\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2004-05-17 23:58+0200\n&quot;
++&quot;Last-Translator: Andrea Gracco &lt;graccoandrea@tin.it&gt;\n&quot;
++&quot;Language-Team: furlan &lt;gft@freelists.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.3\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, fuzzy, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Rimozion dal utent: %s&quot;
++
++#: ../USER/USER.xs:490
++#, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:582
++#, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Cjariant Utents e Grops... Par plasè, spiete&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Imprest par le gjestion dai utents di Mageia&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Azions&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Mude&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Scancele&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Opzions&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Filtre i utents dal sisteme&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_File&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Atualize&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Jessî&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Zonte Utent&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/_Zonte Grop&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Jutori&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Segnale un Bug&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Informazions su...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Cîr:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Apliche filtri&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Utents&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Grops&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Utents e grops&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Non utent&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ID Utent&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Grop Primari&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Non complet&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Shell di login&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Cartele home&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Stât&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Non Grop&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ID Grop&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Membris dal Grop&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Zonte Utent&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Zonte un utent al sisteme&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Zonte Grop&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Zonte un grop al sisteme&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Mude&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Mude rie selezionade&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Scancele&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Scancele rie selezionade&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Atualize&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Atualize le liste&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Blocât&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Scjadût&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Frache su le icone par cambiâle&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Cree un gnûf utent&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Cree le cartele Home&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Cartele Home: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Cree un grop privât par l'utent&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Specifiche manualmentri il ID dal utent&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;L'utent al esist dizà, par plasè scielç un altri Non Utent&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Le password no corispuint&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Cheste password e je masse semplice. \n&quot;
++&quot; Buinis password e an di sedi &gt; 6 letaris&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;UID dal utent inferiôr a 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;No l'è consigliât creâ un utent cun UID inferiôr a 500.\n&quot;
++&quot;Sêstu sigûr di volè fâlu?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Insedament di %s tal grop 'utents'&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Creazion di un gnûf grop: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Zonte utent: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Scancele&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Va ben&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Sielç grop&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Zonte al grop esistint&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Zonte al grop 'utents'&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Un grop cun chest non al esist dizà. Ce âstu voie di fâ?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Cree un gnûf grop&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Specificâ manualmentri un ID di grop&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Il grop al esist dizà, par plasè sielç un altri non di grop&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; GID dal grop inferiôr di 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Creâ un grop cunt'un GID inferôr a 500 no l'è racomandât.\n&quot;
++&quot; Setu sigûr di ve voe di falu? \n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Zonte dal grop: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Scancele i file o no?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Scancelant utent %s\n&quot;
++&quot; E vignaran fatis ancje les azions seguentis\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Scancele le cartele Home: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Scancele le Mailbox :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Rimozion dal utent: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Âstu veramentri voie di scancelâ il grop %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s al è il grop primari dal utent %s\n&quot;
++&quot; Tu âs prin di rimovi l'utent&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Rimozion dal grop: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Non complet:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Login:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Password:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Confirme Password:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Shell di login:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Non Grop:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Par plasè sielç almancul un grop par l'utent&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Par plasè specifiche An, Mês e Dî \n&quot;
++&quot;di scjadince dal account&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Par plasè jemple ducj i cjamps di scjadince de password\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;No tu puedis rimovi l'utent '%s' dal so grop primari&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Home:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Dâts Utent&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Abilite le scjadince dal account&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;L'Account al scjât il (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Bloche l'account dal utent&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Informazions account&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;L'utent al à mudât le password il : &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Abilite le scjadince de password&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Dìs prin che sedi permitude le modifiche :&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Dìs prin che sedi domandade le modifiche :&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Dìs di avertence prin de modifiche :&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Dìs prin che l'account al sedi inatîf :&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Informazions password&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Sielç i grops dai cuai l'utent al sarâ membri:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Dâts Grop&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Sielç i utents di zontâ a chest grop :&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Utents dal grop&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Mude Grops / Utents&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Al è intravignût un fal&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Siere&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Gjestion Utents&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Andrea Gracco &lt;graccoandrea@tin.it&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Il cjamp dal non al è vueit, tu âs di insedâ un non&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;Il non al à di vê dome letaris minusculis, numars, `-' e `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Il non al è masse lunc&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Fal&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Rimozion dal utent: %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Autôrs: &quot;
++
++#~ msgid &quot;Choice&quot;
++#~ msgstr &quot;Sielte&quot;
++
++#~ msgid &quot;Yes&quot;
++#~ msgstr &quot;Si&quot;
++
++#~ msgid &quot;No&quot;
++#~ msgstr &quot;No&quot;
+
+<a id="userdrake2tags1133pogapo">Added: userdrake2/tags/1.13.3/po/ga.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/ga.po (rev 0)
++++ userdrake2/tags/1.13.3/po/ga.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,826 @@
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/ga.php3
++#
++# Irish (Gaeilge) translations for userdrake.pot
++# Copyright (C) 2001 Free Software Foundation, Inc.
++# Alastair McKinstrty, &lt;mckinstry@computer.org&gt;, 2001.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake2\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2001-08-10 21:00+0000\n&quot;
++&quot;Last-Translator: Alastair McKinstry &lt;mckinstry@computer.org&gt;\n&quot;
++&quot;Language-Team: Irish &lt;ga@li.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8-bit\n&quot;
++
++#: ../USER/USER.xs:86
++#, fuzzy, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Teíp ag lódáil comhad pixmap: %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Teíp ag lódáil comhad pixmap: %s&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++#, fuzzy
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Teíp ag lódáil comhad pixmap: %s&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Teíp ag lódáil comhad pixmap: %s&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;earráid anaithnid&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Teíp ag lódáil comhad pixmap: %s&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++#, fuzzy
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Teíp ag lódáil comhad pixmap: %s&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Eagar&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Dealaigh&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Roghanna&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/C_omhad&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Ériggh&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;E&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/C_úidiú&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Tuairaisc Fabht&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Faoi...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Cuardaigh:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Úsáideoirí&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Grupaí&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Úsáideoirí agus grúpaí&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Ainm Úsáideora&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ID Úsáideoir&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Ainm Iomlán&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Blaosc Logála Isteach&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Comhadlann bhaile&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Stádas&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Ainm Grúpa&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ID Grupa&quot;
++
++#: ../userdrake:194
++#, fuzzy, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Grupaí&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Cuir Úsáideoir Leis&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Grúpa Nua&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Eagar&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Scríos&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Nuashonraigh&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Faoi Ghlas&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;As Dáta&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, fuzzy, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Pasfhocal&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Cealaigh&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Ceart go Leor&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Cruthaigh Grúpa Nua&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Ainm Iomlán:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Logann:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Pasfhocal:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Dearbhaigh an Focal Faire:&quot;
++
++#: ../userdrake:806
++#, fuzzy, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Logann:&quot;
++
++#: ../userdrake:820
++#, fuzzy, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;ID Grupa:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Baile:&quot;
++
++#: ../userdrake:988
++#, fuzzy, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;ID Úsáideoir&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1031
++#, fuzzy, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Pasfhocal&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1102
++#, fuzzy, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;ID Grupa&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1107
++#, fuzzy, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Grupaí&quot;
++
++#: ../userdrake:1127
++#, fuzzy, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Eagar úsáideoir(í)&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Tharla earráid&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Dún&quot;
++
++#: ../userdrake:1277
++#, fuzzy, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Coípcheart © 2003 Mandriva.&quot;
++
++#: ../userdrake:1280
++#, fuzzy, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Ainm Úsáideora&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Earráid&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;earráid anaithnid&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Teíp ag lódáil comhad pixmap: %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Údáir: &quot;
++
++#~ msgid &quot;Yes&quot;
++#~ msgstr &quot;Tá&quot;
++
++#~ msgid &quot;No&quot;
++#~ msgstr &quot;Níl&quot;
++
++#~ msgid &quot;Save&quot;
++#~ msgstr &quot;Sábháil&quot;
++
++#~ msgid &quot;Exit&quot;
++#~ msgstr &quot;Éalaigh&quot;
++
++#~ msgid &quot;Preferences&quot;
++#~ msgstr &quot;Cumasaí&quot;
++
++#~ msgid &quot;Add&quot;
++#~ msgstr &quot;Suim&quot;
++
++#~ msgid &quot;Remove&quot;
++#~ msgstr &quot;Scríos&quot;
++
++#~ msgid &quot;Comments&quot;
++#~ msgstr &quot;Notaí&quot;
++
++#~ msgid &quot;Shell&quot;
++#~ msgstr &quot;Blaosc&quot;
++
++#~ msgid &quot;name&quot;
++#~ msgstr &quot;ainm&quot;
++
++#~ msgid &quot;gid&quot;
++#~ msgstr &quot;gid&quot;
++
++#~ msgid &quot;passwd&quot;
++#~ msgstr &quot;passwd&quot;
++
++#~ msgid &quot;users&quot;
++#~ msgstr &quot;úsáideoirí&quot;
++
++#~ msgid &quot;Default shell:&quot;
++#~ msgstr &quot;Blaosc de gnáth:&quot;
++
++#~ msgid &quot;General&quot;
++#~ msgstr &quot;Gnáth&quot;
++
++#~ msgid &quot;/bin/bash&quot;
++#~ msgstr &quot;/bin/bash&quot;
++
++#~ msgid &quot;uid:&quot;
++#~ msgstr &quot;uid:&quot;
++
++#~ msgid &quot;Shell:&quot;
++#~ msgstr &quot;Blaosc:&quot;
++
++#~ msgid &quot;passwd:&quot;
++#~ msgstr &quot;Pasfhocal:&quot;
++
++#~ msgid &quot;About UserDrake&quot;
++#~ msgstr &quot;Faoi UserDrake&quot;
++
++#~ msgid &quot;Name:&quot;
++#~ msgstr &quot;Ainm:&quot;
++
++#~ msgid &quot;gid:&quot;
++#~ msgstr &quot;gid:&quot;
++
++#~ msgid &quot;Quit userdrake?&quot;
++#~ msgstr &quot;Ealaigh as userdraker?&quot;
++
++#~ msgid &quot;login empty&quot;
++#~ msgstr &quot;Is logann folamh&quot;
++
++#~ msgid &quot;name empty&quot;
++#~ msgstr &quot;Is ainm folamh&quot;
++
++#~ msgid &quot;/bin/ash&quot;
++#~ msgstr &quot;/bin/ash&quot;
++
++#~ msgid &quot;/bin/csh&quot;
++#~ msgstr &quot;/bin/csh&quot;
++
++#~ msgid &quot;/bin/zsh&quot;
++#~ msgstr &quot;/bin/zsh&quot;
+
+<a id="userdrake2tags1133poglpo">Added: userdrake2/tags/1.13.3/po/gl.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/gl.po (rev 0)
++++ userdrake2/tags/1.13.3/po/gl.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,762 @@
++# translation of userdrake to Galician
++# Copyright (C) 2001 Jesús Bravo Álvarez.
++# Copyright (C) 2001 Mandriva
++#
++# Jesús Bravo Álvarez &lt;jba@pobox.com&gt;, 2001
++# Leandro Regueiro &lt;leandro.regueiro@gmail.com&gt;, 2004, 2008.
++#
++# Proxecto Trasno http://trasno.net
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake.gl\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2008-03-30 18:08+0100\n&quot;
++&quot;Last-Translator: Leandro Regueiro &lt;leandro DOT regueiro AT gmail DOT com&gt;\n&quot;
++&quot;Language-Team: Galician &lt;proxecto@trasno.net&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.0.1\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Erro ó ler `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Erro ó crear `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Erro ó eliminar `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Erro ó crear a cola de correo.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Erro ó crear a cola de correo.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Erro ó crear a cola de correo.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;erro descoñecido&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Erro ó crear a cola de correo.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Erro ó eliminar a cola de correo.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Cargando Usuarios e Grupos... Por favor agarde&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Ferramenta de Xestión de Usuarios de Mageia&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Accións&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Editar&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Borrar&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Opcións&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Filtrar usuarios do sistema&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Ficheiro&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Recargar&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Sair&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Engadir Usuario&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Engadir _Grupo&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Axuda&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Comunicar Erro&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Acerca de...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Buscar:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Aplica-lo filtro&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Usuarios&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Grupos&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Usuarios e grupos&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Nome de Usuario&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ID de Usuario&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Grupo Principal&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Nome Completo&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Shell deLogin&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Directorio Persoal&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Estado&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Nome do Grupo&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ID do Grupo&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Membros do Grupo&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Engadir Usuario&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Engadir un usuario ó sistema&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Engadir Grupo&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Engadir un grupo ó sistema&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Editar&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Edita-la fila seleccionada&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Borrar&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Borra-la fila seleccionada&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Recargar&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Recarga-la lista&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Bloqueado&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Caducado&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Clique na icona para cambialo&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Crear Novo Usuario&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Crear Directorio Persoal&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Directorio Persoal: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Crear un grupo privado para o usuario&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Especificar manualmente a ID do usuario&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Este usuario xa existe, por favor escolla outro Nome de Usuario&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Os Contrasinais Non Coinciden&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Este contrasinal é demasiado sinxelo. \n&quot;
++&quot; Os bos contrasinais deben ter máis de 6 caracteres&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;A Uid do usuario é menor de 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Non é recomendable crear un usuario cunha UID menor de 500.\n&quot;
++&quot; ¿Está seguro de querer facer isto?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Engadindo %s ó grupo 'usuarios'&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Creando novo grupo: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Engadindo usuario: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Asistente de migración&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;Desexa executar o asistente de migración para poder importar o documents and &quot;
++&quot;settings de Windows á súa distribución Mageia?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Cancelar&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Aceptar&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Escolla un grupo&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Engadir ó grupo existente&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Engadir ó grupo 'usuarios'&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Xa existe un grupo con este nome. ¿Quere seguir?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Crear Novo Grupo&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Especificar manualmente a ID do grupo&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Este grupo xa existe, por favor escolle outro nome para o grupo&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; O Gid do grupo é menor de 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Non é recomendable crear grupos cun GID menor de 500.\n&quot;
++&quot; ¿Está seguro de querer facer isto?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Engadindo grupo: %s&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;¿Desexa elimina-los ficheiros?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Eliminando o usuario %s\n&quot;
++&quot; Realizar tamen esta accións\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Elimina-lo Directorio Persoal: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Elimina-la caixa do correo: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Eliminando o usuario: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Desexa elimina-lo grupo %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s é o grupo primario do usuario %s\n&quot;
++&quot; Borre o usuario primeiro&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Eliminando o grupo: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Nome Completo:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Login:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Contrasinal:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Confirme o Contrasinal:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Shell deLogin:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Nome do Grupo:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Por favor, seleccione como minimo un grupo para inclui-lo usuario nel&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Por favor, especifique o Dia, o Mes e o Ano \n&quot;
++&quot; para a Caducación da Conta &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Por favor complete tódolos campos da caducidade do contrasinal\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Non pode elimina-lo usuario '%s' do seu grupo principal&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Dir. Persoal:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Datos do Usuarios&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Habilita-la caducidade da conta&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;A conta caduca o (DD-MM-YYYY):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Bloquear Conta de Usuario&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Información da Conta&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Último troco de contrasinal do usuario:&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Habilita-la Caducidade do Contrasinal&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Dias que deben pasar antes de que se permita facer cambios: &quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Dias que deben pasar antes de que se requira facer cambios: &quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Dias de aviso antes do cambio: &quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Días antes de que a conta se desactive:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Información do Contrasinal&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Seleccione os grupos ós que vai pertencer o usuario:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Datos de Grupo&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Seleccione usuarios para unilos a este grupo: &quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Usuarios do Grupo&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Editar Grupos / Usuarios&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Ocorreu un erro:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Pechar&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Copyright (C) %s de Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Xestión de Usuarios&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++&quot;Jesús Bravo Álvarez &lt;jba@pobox.com&gt;\n&quot;
++&quot;Leandro Regueiro &lt;leandro.regueiro@gmail.com&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;O campo do nome está baleiro, por favor escriba un nome&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;O nome só pode conter letras minúsculas, números, '-' e '_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;O nome é moi longo&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Erro&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;erro descoñecido&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Erro ó crear `%s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Autores: &quot;
+
+<a id="userdrake2tags1133pohepo">Added: userdrake2/tags/1.13.3/po/he.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/he.po (rev 0)
++++ userdrake2/tags/1.13.3/po/he.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,771 @@
++# translation of he.po to Hebrew
++# translation of userdrake-he.po to Hebrew
++# translation of userdrake.po to Hebrew
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/he.php3
++#
++# translation of userdrake-he.po to hebrew
++# Copyright (C) 2003, 2004 Free Software Foundation, Inc.
++# This file is distributed under the GNU GPL license.
++# dovix &lt;dovix2003@yahoo.com&gt;, 2003, 2004.
++# el-cuco &lt;cuco3001@yahoo.com&gt;, 2003.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: he\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2007-09-24 20:54+0200\n&quot;
++&quot;Last-Translator: dovix &lt;dovix2003@yahoo.com&gt;\n&quot;
++&quot;Language-Team: Hebrew &lt;he@li.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;חלה שגיאה בעת קריאת `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;חלה תקלה ביצירת `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;חלה תקלה בעת הסרת `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;חלה תקלה בעת יצירת ספריית דואר.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;חלה תקלה בעת יצירת ספריית דואר.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;חלה תקלה בעת יצירת ספריית דואר.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;שגיאה לא ידועה&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;חלה תקלה בעת יצירת ספריית דואר.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;חלה תקלה בעת מחיקת ספריית הדואר.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;טוען משתמשים וקבוצות... נא להמתין&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;כלי ניהול משתמשים של Mageia&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_פעולות&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_עריכה&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_מחיקה&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/א_פשרויות&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/סינון משתמשי מערכת&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_קובץ&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_רענן&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_יציאה&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_הוספת משתמש&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/הוספת _קבוצה&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_עזרה&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_דווח על באג&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/אודות...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;חיפוש:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;החל מסנן&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;משתמשים&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;קבוצות&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;משתמשים וקבוצות&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;שם משתמש&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;קוד זיהוי משתמש&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;קבוצה ראשונית&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;שם מלא&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;מעטפת כניסה לחשבון&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;ספריית הבית&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;מצב&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;שם הקבוצה&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;קוד זיהוי קבוצה&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;חברים בקבוצה&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;הוספת משתמש&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;הוספת משתמש למערכת&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;הוספת קבוצה&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;הוספת קבוצה למערכת&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;עריכה&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;עריכת עמודה מסומנת&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;מחיקה&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;מחיקת שורה מסומנת&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;רענן&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;רענן רשימת משתמשים&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;נעול&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;פג&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;לחץ על הצלמית בכדי לערוך את זה&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;יצירת משתמש חדש&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;יצירת ספריית הבית של המשתמש&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;ספריית הבית של המשתמש: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;יצירת קבוצה פרטית עבור המשתמש&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;קבע את קוד זיהוי המשתמש באופן ידני&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;משתמש זה כבר קיים במערכת, נא לבחור שם משתמש אחר&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;סיסמאות לא תואמות&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;סיסמה זו פשוטה מדי\n&quot;
++&quot;סיסמה טובה צריכה להכיל יותר מ-6 תווים.&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;קוד זיהוי המשתמש קטן מ-500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;יצירת משתמש עם קוד זיהוי מתחת ל-500 לא מומלץ\n&quot;
++&quot;האם ברצונך לבצע פעולה זו?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;הוספת %s אל קבוצת 'משתמשים'&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;יצירת קבוצה חדשה: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;הוספת משתמש: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;אשף הגירה&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;האם להריץ את אשף ההגירה כדי לייבא מסמכי והגדרות וינדוז אל מערכת המנדריבה-&quot;
++&quot;לינוקס שלך?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;ביטול&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;אישור&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;קוד זיהוי המשתמש (UID): &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;יש לבחור קבוצה&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;הוסף לקבוצה קיימת&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;הוסף לקבוצת ה'משתמשים'&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;קבוצה עם השם הזה כבר קיימת. מה רצונך לעשות?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;יצירת קבוצה חדשה&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;קבע את קוד זיהוי הקבוצה באופן ידני&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;הקבוצה כבר קיימת, נא לבחור שם אחר לקבוצה&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;קוד זיהוי הקבוצה קטן מ-500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;יצירת קבוצה עם קוד זיהוי מתחת ל-500 לא מומלצת\n&quot;
++&quot;האם ברצונך לבצע פעולה זו?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;הוספת קבוצה: %s&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;קוד זיהוי הקבוצה (GID):&quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;האם למחוק את הקבצים או לא?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;מחיקת משתמש %s\n&quot;
++&quot; תגרום גם לפעולות הבאות:\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;מחיקת ספריית הבית של משתמש: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;מחיקת חשבון הדואר /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;הסרת משתמש: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;האם באמת למחוק את קבוצה %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s היא קבוצה ראשונית עבור משתמש %s\n&quot;
++&quot; נא למחוק את המשתמש קודם לכן&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;הסרת קבוצה: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;שם מלא:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;שם משתמש:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;סיסמה:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;יש לאשר את הסיסמה:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;מעטפת כניסה לחשבון:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;שם הקבוצה:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;נא לבחור לפחות קבוצה אחת לפחות עבור המשתמש&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;נא לקבוע שנה, חודש ויום\n&quot;
++&quot; עבור תפוגת החשבון &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;נא לספק את הסיסמה הישנה בכל השדות\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;אין אפשרות למחוק את המשתמש '%s' מהקבוצה הראשית שלו&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;ספריית הבית:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;נתוני משתמש&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;איפשור תפוגת חשבון&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;החשבון פג בתאריך (שנה-חודש-יום):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;נעל חשבון משתמש&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;מידע על החשבון&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;סיסמת החשבון שונתה לאחרונה בתאריך :&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;איפשור תפוגת סיסמה&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;מספר ימים לפני שניתן לשנות את הסיסמה:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;מספר ימים שלאחריהם יש לשנות סיסמה :&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;מספר ימים לפני אזהרה על תפוגת הסיסמה :&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;ימים לפני נעילת חשבון לא פעיל :&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;מידע על הסיסמה&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;יש לבחור את הקבוצות שהחשבון יהיה חבר בהן :&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;מידע על קבוצות&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;נא לבחור את המשתמשים שיצטרפו לקבוצה הזאת :&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;משתמשים בקבוצה&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;עריכת קבוצות / משתמשים&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;חלה שגיאה&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;סגור&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;זכויות היוצרים (C) %s שייכות למנדריבה&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;ניהול משתמשים&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;מנדריבה לינוקס&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Dotan Kamber &lt;kamberd@yahoo.com&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;שדה השם ריק, נא לספק שם&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;השם חייב להכיל רק אותיות לטיניות קטנות, מספרים, מקף וקו תחתי&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;השם ארוך מדי&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;שגיאה&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;שגיאה לא ידועה&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;חלה תקלה ביצירת `%s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;כותבים: &quot;
++
++#~ msgid &quot;Choice&quot;
++#~ msgstr &quot;בחירה&quot;
++
++#~ msgid &quot;Yes&quot;
++#~ msgstr &quot;כן&quot;
++
++#~ msgid &quot;No&quot;
++#~ msgstr &quot;לא&quot;
+
+<a id="userdrake2tags1133pohipo">Added: userdrake2/tags/1.13.3/po/hi.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/hi.po (rev 0)
++++ userdrake2/tags/1.13.3/po/hi.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,756 @@
++# translation of userdrake2-hi.po to Hindi, India
++# translation of userdrake-hi.po to Hindi, India
++# This file is distributed under the same license as the PACKAGE package.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
++# Dhananjaya Sharma, 2003, 2004.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-hi\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2004-08-08 18:46+0530\n&quot;
++&quot;Last-Translator: धनञ्जय शर्मा (Dhananjaya Sharma)\n&quot;
++&quot;Language-Team: हिन्दी, भारत (Hindi, India)\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.3\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n!=1);\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;'%s' को पढ़ने में त्रुटि: %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;`%s' का निर्माण करने में त्रुटि: %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;`%s' को हटाने में त्रुटि: %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;मेल स्पूल का निर्माण करने में त्रुटि।\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;मेल स्पूल का निर्माण करने में त्रुटि।\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;मेल स्पूल का निर्माण करने में त्रुटि।\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;अज्ञात त्रुटि&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;मेल स्पूल का निर्माण करने में त्रुटि।\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;मेल स्पूल का मिटाने में त्रुटि\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;यूज़र-ड्रैक&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;उपयोगकर्ताओं और समूहों को लाया जा रहा है... कृपया प्रतीक्षा करें&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;मैनड्रिव लिनक्स उपयोगकर्ता प्रबंधन टूल&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/कार्य-कलाप(_A)&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/सम्पादित करें(_E)&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/मिटायें(_D)&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/विकल्प(_O)&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/प्रणाली उपयोगकर्ताओं को अलग करें(_F)&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/संचिका (_F)&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/पुनः ताजा करें (_R)&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/निर्गम(_Q)&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/उपयोग-कर्ता जोड़े(_A)&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/समूह जोड़े(_G)&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/सहायता(_H)&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/दोष के बारे में बतायें(_R)&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/के बारे में(_A)...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;खोज:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;फ़िल्टर लगायें&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;उपयोग-कर्ता&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;समूह&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;उपयोगकर्ता और समूह&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;उपयोगकर्ता का नाम&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;उपयोग-कर्ता पहचान संख्या&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;प्रधान समूह&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;पूरा नाम&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;सत्र-आरंभ कोश&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;गृह स्थल निर्देशिका&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;स्थिति&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;समूह का नाम&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;समूह पहचान संख्या&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;समूह के सदस्य&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;उपयोग-कर्ता जोड़ना&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;एक उपयोग-कर्ता को प्रणाली में जोड़ना&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;समूह जोड़े&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;एक समूह को प्रणाली में जोड़ना&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;सम्पादन&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;चयन की हुई पंक्ति का संपादन&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;मिटाना&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;चयन की हुई पंक्ति को मिटाना&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;पुनः ताजा करना&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;उपयोग-कर्ता सूची को पुनः ताजा करना&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;ताला-बन्द&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;समाप्त हो चुका है&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;आइकॉन को परिवर्तित करने के लिए, इस पर क्लिक करें&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;नये उपयोगकर्ता का निर्माण&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;गृह स्थल निर्देशिका का निर्माण करें&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;गृह स्थल निर्देशिका: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;उपयोगकर्ता के लिए एक व्यक्तिगत समूह का निर्माण&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;उपयोगकर्ता पहचान संख्या को स्वमं निर्दिष्ट करना&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;उपयोगकर्ता पहिले से विद्यमान है, कृपया अन्य उपयोगकर्ता नाम चुनें।&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;कूट-शब्द बेमेल&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;यह कूट-शब्द अति सरल है।\n&quot;
++&quot;अच्छे कूट-शब्द ६ अक्षरों से अधिक के होते है&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;उपयोगकर्ता की उपयोगकर्ता-पहचान-संख्या ५०० से कम है&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;एक उपयोगकर्ता का निर्माण, जिसकी उपयोगकर्ता पहचान संख्या ५०० से कम हो, की सलाह नहीं &quot;
++&quot;दी जाती है\n&quot;
++&quot;क्या आप वास्तव में ऐसा करना चाहते है?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;'users' समूह में %s डाला जा रहा है&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;%s : नये समूह का निर्माण हो रहा है&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;%s : उपयोगकर्ता को जोड़ा जा रहा है&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;निरस्त&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;ओ०के०&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;उपयोगकर्ता पहचान संख्या: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;समूह का चयन करें&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;विद्यमान समूह में जोड़ना&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;'users' समूह में जोड़ना&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;इस नाम का एक समूह पहिले से विद्यमान है। आप क्या करना चाहेगें? &quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;नये समूह का निर्माण करें&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;समूह पहचान संख्या स्वमं निर्दिष्ट करें&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;समूह पहिले से विद्यमान है, कृपया अन्य समूह नाम का चयन करें&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; समूह की समूह पहचान संख्या ५०० से कम है&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;एक समूह निर्माण, जिसकी समूह पहचान संख्या ५०० से कम हो, की सलाह नहीं दी जाती है\n&quot;
++&quot;क्या आप वास्तव में ऐसा करना चाहते है?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;%s : समूह को जोड़ा जा रहा है&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;समूह पहचान संख्या: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;संचिकाओं को मिटाया जायें कि नहीं?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;%s उपयोगकर्ता को हटाया जा रहा है\n&quot;
++&quot;साथ ही, निम्नलिखित क्रियायें भी की जा रही है\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;गृह स्थल निर्देशिका को हटायें : %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;विपत्र-पेटी को हटायें :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;%s : उपयोगकर्ता को हटाया जा रहा है&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;क्या आप वास्तव में %s समूह को हटाना चाहते है&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s , उपयोगकर्ता %s के लिए, एक प्रधान समूह है\n&quot;
++&quot; उपयोगकर्ता को पहिले हटायें&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;%s : समूह को हटाया जा रहा है&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;पूरा नाम:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;सत्र-आरंभ:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;कूट-शब्द:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;कूट-शब्द की पुष्टि:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;सत्र-आरंभ कोश:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;समूह का नाम:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;कृपया इस उपयोगकर्ता के लिए कम-से-कम एक समूह का चयन करें&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;कृपया खाता समाप्ति के लिए \n&quot;
++&quot;वर्ष, माह और दिवस बतायें&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;कृपया कूट-शब्द जीवनकाल में सभी प्रविष्टियों को भरें\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;आप, '%s' उपयोगकर्ता को उसके प्रधान समूह से नहीं हटा सकते है&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;गॄह-स्थल:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;उपयोग-कर्ता जानकारी&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;खाता समाप्ति प्रक्रिया को सक्रिय करें&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;खाता समाप्ति की तिथि (वर्ष-ंमाह-दिवस) (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;उपयोगकर्ता खाते को लॉक करें&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;खाते के बारे में जानकारी&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;उपयोगकर्ता ने कूट शब्द को अंतिम बार इस तिथि को परिवर्तित किया था: &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;कूट शब्द समाप्ति प्रक्रिया को सक्रिय करें&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;दिन संख्या, जिसके पहिले परिवर्तन की अनुमति है :&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;दिन संख्या, जिसके पहिले परिवर्तन आवश्यक है :&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;दिन संख्या, जिसके पहिले परिवर्तन की चेतावनी मिलेगी :&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;दिन संख्या जिसके पहिले खाता निष्क्रिय होगा :&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;कूट-शब्द सूचना&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;उन समूहों का चयन करें जिनका यह उपयोगकर्ता एक सदस्य होगा:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;समूह जानकारी&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;एस समूह में शामिल होने के लिए उपयोगकर्ताओं का चयन करें&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;समूह उपयोगकर्ता&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;समूहों/उपयोगकर्ताओं का संपादन&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;एक त्रुटि हो गयी है&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;समाप्त&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;उपयोगकर्ता प्रबंधन&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;मैनड्रैकलिनक्स&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;धनञ्जय शर्मा (Dhananjaya Sharma)\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;नाम क्षेत्र खाली है, कृपया एक नाम प्रदान करें&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;नाम में सिर्फ़ लैटिन छोटे अक्षर, संख्याऐं, `-' और `_' शामिल होना चाहिए&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;नाम अत्याधिक लंबा है&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;त्रुटि&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;अज्ञात त्रुटि&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;`%s' का निर्माण करने में त्रुटि: %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;लेखकों के नाम: &quot;
+
+<a id="userdrake2tags1133pohrpo">Added: userdrake2/tags/1.13.3/po/hr.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/hr.po (rev 0)
++++ userdrake2/tags/1.13.3/po/hr.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,759 @@
++# translation of userdrake-hr.po to
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/hr.php3
++#
++# Croatian Translation for UserDrake.
++# Copyright (C) 2000, 2005 Free Software Foundation, Inc.
++# Vlatko Kosturjak &lt;kost@iname.com&gt;, 2000, 2005.
++# Matija Blagus &lt;Matija.Blagus@public.srce.hr&gt;, 2004.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-hr\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2005-08-23 11:37+0200\n&quot;
++&quot;Last-Translator: Vlatko Kosturjak\n&quot;
++&quot;Language-Team: &lt;en@li.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.9.1\n&quot;
++&quot;Plural-Forms: nplurals=3; plural=(n%10==1 &amp;&amp; n%100!=11 ? 0 : n%10&gt;=2 &amp;&amp; n%&quot;
++&quot;10&lt;=4 &amp;&amp; (n%100&lt;10 || n%100&gt;=20) ? 1 : 2);\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Ne mogu učitati `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Ne mogu napraviti `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Greška kod uklanjanja `%s': %s &quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Ne mogu učitati mail spool.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Ne mogu učitati mail spool.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Ne mogu učitati mail spool.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;Nepoznata greška&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Ne mogu učitati mail spool.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Greška kod brisanja sandučića za poštu.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Učitavam korisnike i grupe... Molimo pričekajte&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageia alat za upravljanje korisnicima&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Akcije&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Promjeni&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Ukloni&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Postavke&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Filter sistemskih korisnika&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Datoteka&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Osvježi&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Izlaz&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/Dodaj _korisnika&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Dodaj _grupu&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Pomoć&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Prijavi bug&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_O programu...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Traži:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Primjeni filter&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Korisnici&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Grupe&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Korisnici i grupe&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Korisničko ime&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Korisnički ID&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Primarna grupa&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Puno ime&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Login školjka&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Početni direktorij&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Stanje&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Ime grupe&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ID grupe&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Članovi grupe&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Dodaj korisnika&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Dodak korisnika u sistem&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Dodaj grupu&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Dodaj grupu u sistem&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Podesi&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Promjeni odabrani red&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Ukloni&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Obriši odabrani red&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Osvježi&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Osvježi listu korisnika&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Zaključano&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Isteklo&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Kliknite na ikonu da ju promjenite&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Napravi novog korisnika&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Napravi početni direktorij&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Početni direktorij:&quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Napravi privatnu grupu za korisnika&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Odredi korisnički ID ručno&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Ovaj korisnik već postoji, molimo odaberite drugo korisničko ime&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Lozinka se ne slaže&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Lozinka je previše jednostavna. \n&quot;
++&quot; Dobra lozinka mora imati &gt; 6 znakova&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Korisnički Uid je &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Stvaranje korisnika sa UIDom manjim od 500 nije preporučeno.\n&quot;
++&quot; Da li stvarno želite to učiniti?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Stavljam %s u 'korinsičku' grupu&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Stvaram novu grupu: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Dodajem korisnika: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Odustani&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;U redu&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Odaberi grupu&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Dodaj postojećoj grupi&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Dodaj 'korisničkoj' grupi&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Grupa sa tim imenom već postoji. Što želite učiniti?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Napravni novu grupu&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Odredi ID grupe ručno&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Grupa već postoji, molimo odaberite drugo ime grupe&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;Gid grupe je &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Stvaranje grupe sa GIDom manjim od 500 nije preporučeno.\n&quot;
++&quot; Da li stvarno to želite učiniti?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Dodajem grupu: %s&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Da obrišem datoteke?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Brišem korisnika %s\n&quot;
++&quot; Također izvodim slijedeće akcije\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Brišem početni direktorij: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Obriši Mailbox :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Uklanjam korisnika: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Da li stvarno želite izbrisate grupu %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s je primarna grupa za korisnika %s\n&quot;
++&quot; Prvo uklonite korisnika&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Uklonjam grupu: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Puno ime:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Korisnička oznaka:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Lozinka:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Potvrda lozinke:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Login školjka:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Ime grupe:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Molimo odaberite najmanje jednu grupu za ovog korisnika&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Molimo odaberite godinu, mjesec i dan \n&quot;
++&quot; za prestanak valjanosti računa &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Molimo popunite sva polja u lozinki ponovo\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Ne možete izbrisati korisnika '%s' iz njegove primarne grupe&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Početni direktorij:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Podaci o korisniku&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Uključi prestanak valjanosti računa&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Račun prestaje valjati (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Zaključaj korisnikov račun&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Informacije o računu&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Korisnik zadnji put promjenio lozinku:&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Uključi prestanak valjanosti lozinke&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Dani prije kada su promjene dozvoljene:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Dani prije potrebe promjena: &quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Dani upozorenja prije promjena:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Dani prije neaktivnosti računa:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Informacije o lozinki&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Odaberiter gurpe u kojima će korisnik biti član:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Podaci o grupama&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Odaberite korisnike koji se pridružuju ovoj grupi:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Članovi grupe&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Mijenjaj grupe / korisnike&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Pojavila se greška&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Zatvori&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Upravljanje korisnicima&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Croatian &lt;lokalizacija@linux.hr&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Polje imena je prazno, molimo upišite ime&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;Ime mora sadržavati samo mala latinska slova, brojeve, `-' i `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Ime je predugačko&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Greška&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;Nepoznata greška&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Ne mogu napraviti `%s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Autori: &quot;
+
+<a id="userdrake2tags1133pohupo">Added: userdrake2/tags/1.13.3/po/hu.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/hu.po (rev 0)
++++ userdrake2/tags/1.13.3/po/hu.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,784 @@
++# translation of userdrake to Hungarian
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/hu.php3
++#
++# Tamas Szanto &lt;tszanto@mol.hu&gt;, 2001.
++# Arpad Biro &lt;biro.arpad gmail&gt;, 2002,2003, 2004, 2007.
++# Gergely Lónyai &lt;aleph@mandriva.org&gt;, 2007, 2008, 2009, 2010.
++# Copyright (C) 2001,2003, 2004, 2007 Free Software Foundation, Inc.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake2-2010.1\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2010-04-19 11:20+0100\n&quot;
++&quot;Last-Translator: Gergely Lónyai &lt;aleph@mandriva.org&gt;\n&quot;
++&quot;Language-Team: Hungarian &lt;aleph@mandriva.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=utf-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n!=1);\n&quot;
++&quot;X-Poedit-Language: Hungarian\n&quot;
++&quot;X-Poedit-Country: HUNGARY\n&quot;
++&quot;X-Poedit-SourceCharset: utf-8\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Hiba `%s' olvasásakor: %s&quot;
++
++#: ../USER/USER.xs:93
++#: ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Hiba `%s' létrehozásakor: %s&quot;
++
++#: ../USER/USER.xs:205
++#: ../USER/USER.xs:234
++#: ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Hiba `%s' eltávolításakor: %s&quot;
++
++#: ../USER/USER.xs:490
++#, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Hiba a hozzáférés létrehozásakor: '%s'.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;Az UID szám beszerzése sikertelen&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;Az értéket nem lehet lekérdezni&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Hiba a levéltároló létrehozásakor.\n&quot;
++
++#: ../USER/USER.xs:582
++#, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;A felhasználót nem lehetett módosítani: '%s'.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Nem sikerült törölni a felhasználót: '%s'.\n&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;Nem sikerült beállítani a jelszót: '%s'\n&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;ismeretlen hiba&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Hiba a csoport létrehozásakor.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;Nem sikerült módosítani a csoportot: '%s'.\n&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;Nem sikerült törölni a csoportot: '%s'.\n&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;A felhasználónak nincs saját könyvtára.\n&quot;
++
++#: ../USER/USER.xs:869
++#: ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;A felhasználó könyvtára nem lett törölve: '%s'.\n&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Hiba a levéltároló törlésekor.\n&quot;
++
++#: ../userdrake:59
++#: ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;UserDrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Felhasználók és csoportok betöltése...&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageia felhasználókezelő eszköz&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;/A vendég (guest) felhasználó _telepítése&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;/A vendég (guest) felhasználó _eltávolítása&quot;
++
++#: ../userdrake:101
++#: ../userdrake:102
++#: ../userdrake:103
++#: ../userdrake:114
++#: ../userdrake:115
++#: ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/Mű_veletek&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/Mó_dosítás&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Törlés&quot;
++
++#: ../userdrake:104
++#: ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/Beá_llítások&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/A r_endszerfelhasználók kiszűrése&quot;
++
++#: ../userdrake:109
++#: ../userdrake:110
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Fájl&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/F_rissítés&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Kilépés&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/Új _felhasználó&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Új _csoport&quot;
++
++#: ../userdrake:125
++#: ../userdrake:126
++#: ../userdrake:127
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Segítség&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Hibabejelentés&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/Név_jegy...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Keresés:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Szűrő alkalmazása&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Felhasználók&quot;
++
++#: ../userdrake:162
++#: ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Csoportok&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Felhasználók és csoportok&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Felhasználónév&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Felh.-azonosító&quot;
++
++#: ../userdrake:186
++#: ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Elsődleges csoport&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Teljes név&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Parancsértelmező&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Saját könyvtár&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Állapot&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Csoportnév&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Csoportazonosító&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;A csoport tagjai&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Új felhasználó&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Új felhasználó létrehozása&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Új csoport&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Új csoport létrehozása&quot;
++
++#: ../userdrake:198
++#: ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Módosítás&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;A kijelölt sor szerkesztése&quot;
++
++#: ../userdrake:199
++#: ../userdrake:674
++#: ../userdrake:707
++#: ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Törlés&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;A kijelölt sor törlése&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Frissítés&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;A lista frissítése&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Zárolt&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Lejárt&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Kattintson az ikonra annak megváltoztatásához&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Új felhasználó létrehozása&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Saját könyvtár létrehozása&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;A saját könyvtár: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Privát csoport létrehozása a felhasználóhoz&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;A felhasználóazonosító megadása&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Már létezik ilyen nevű felhasználó, válasszon más nevet.&quot;
++
++#: ../userdrake:419
++#: ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;A jelszavak nem egyeznek meg&quot;
++
++#: ../userdrake:422
++#: ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;A megadott jelszó túlságosan egyszerű. \n&quot;
++&quot; Legalább 7 karakter hosszú jelszót érdemes választani.&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;A felhasználó azonosítója kisebb 500-nál&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;500-nál kisebb azonosítójú felhasználót nem ajánlott létrehozni.\n&quot;
++&quot; Biztosan ezt szeretné?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;%s hozzáadása a 'users' nevű csoporthoz&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Új csoport létrehozása: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;%s felhasználó felvétele&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Importálási varázsló&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;Do you want to run the migration wizard in order to import Windows documents and settings in your Mageia distribution?&quot;
++msgstr &quot;Szeretné elindítani az importálási varázslót, amellyel áthozhatja windowsos dokumentumait és beállításait a Mageia rendszerbe?&quot;
++
++#: ../userdrake:484
++#: ../userdrake:528
++#: ../userdrake:587
++#: ../userdrake:674
++#: ../userdrake:707
++#: ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Mégsem&quot;
++
++#: ../userdrake:484
++#: ../userdrake:521
++#: ../userdrake:587
++#: ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;OK&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;Felhasználóazonosító: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Válasszon csoportot&quot;
++
++#: ../userdrake:512
++#: ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Hozzáadás a már létező csoporthoz&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Hozzáadás a 'users' nevű csoporthoz&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Már létezik ilyen nevű csoport. Mit szeretne tenni?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Új csoport létrehozása&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;A csoportazonosító megadása&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Ilyen nevű csoport már létezik, válasszon más nevet.&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; A csoportazonosító kisebb 500-nál&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;500-nál kisebb azonosítójú csoportot nem ajánlott létrehozni.\n&quot;
++&quot; Biztosan ezt szeretné?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;%s csoport felvétele&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;Csoportazonosító: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Törlésre kerüljenek a fájlok?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;\&quot;%s\&quot; felhasználó törlése\n&quot;
++&quot;A következők is végre lesznek hajtva:\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Saját könyvtár törlése: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Postaláda törlése: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;%s felhasználó eltávolítása&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Valóban törölni kívánja a(z) %s csoportot?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;A(z) %s csoport a(z) %s felhasználó elsődleges csoportja.\n&quot;
++&quot; Először a felhasználót kell törölni&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;%s csoport eltávolítása&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Teljes név:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Bejelentkezési név:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Jelszó:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Jelszó (még egyszer):&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Parancsértelmező:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Csoportnév:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Legalább egy csoportot ki kell választani&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Adja meg a felhasználónév lejárásának dátumát\n&quot;
++&quot; (év, hónap, nap) &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;A lejárattal kapcsolatos összes mezőt ki kell tölteni\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;A(z) '%s' felhasználónév nem távolítható el az elsődleges csoportjából&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Saját könyvtár:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Felhasználói adatok&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;A felhasználónevek lejárásának bekapcsolása&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;A lejárás dátuma (ÉÉÉÉ-HH-NN):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;A felhasználónév zárolása&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;A felhasználó jellemzői&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;A legutóbbi jelszóváltoztatás dátuma: &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;A jelszó lejárásának bekapcsolása&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Jelszómódosítás legkorábban ennyi nap múlva:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Jelszómódosítás legkésőbb ennyi nap múlva:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Figyelmeztetés a jelszómódosításra ennyi nappal korábban:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;A felhasználónév letiltása ennyi nap elteltével:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;A jelszó jellemzői&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Válassza ki, hogy a felhasználó mely csoportokhoz tartozzon:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;A csoport adatai&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Válassza ki, mely felhasználókat szeretné a csoporthoz adni:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;A csoport felhasználói&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Csoportok / felhasználók szerkesztése&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Hiba lépett fel:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Bezárás&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Copyright (C) %s, Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Felhasználókezelés&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Arpad Biro &lt;biro.arpad gmail&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;A 'név' mező nem lehet üres&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;A névben csak angol kisbetűk, számjegyek, a '-' és az '_' karakterek szerepelhetnek&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;A megadott név túl hosszú&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Hiba történt&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;ismeretlen hiba&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Hiba \&quot;%s\&quot; létrehozásakor: %s&quot;
+
+<a id="userdrake2tags1133pohypo">Added: userdrake2/tags/1.13.3/po/hy.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/hy.po (rev 0)
++++ userdrake2/tags/1.13.3/po/hy.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,770 @@
++# Copyright (C) YEAR Free Software Foundation, Inc.
++# FIRST AUTHOR &lt;EMAIL@ADDRESS&gt;, YEAR.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: 1\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2004-03-16 02:28+0300\n&quot;
++&quot;Last-Translator: Artyom Abgaryan &lt;tyoma@freenet.am&gt;\n&quot;
++&quot;Language-Team: Arm &lt;tyoma@freenet.am&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=utf-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=n &gt; 1;\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, fuzzy, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Հեռացնում եմ %s օգտագործողին&quot;
++
++#: ../USER/USER.xs:490
++#, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:582
++#, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Բեռնավորում եմ Գործածողների և Խմբերի ցանկը... Սպասեք&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageia Գործածողների Կառավարման Գործիք&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Գործողություններ&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Խմբագրում&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Ջնջել&quot;
++
++# ԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾ
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Օպցիաներ&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Ֆիլտրել համակարգի օգտագործողներին&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Ֆայլ&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Թարմացնել&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Անջատել&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Ավելացնել Օգտագործող&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Ավելացնել _Խումբ&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Օգնություն&quot;
++
++# ԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾ
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Սխալի զեկուցում&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Ընդհանուր...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Փնտրել:&quot;
++
++# :)
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Կիրառել զտիչ&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Օգտագործողներ&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;խմբեր&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Օգտագործողի անուն&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Օգտագործողի ID&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Գլխավոր խումբ&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Անունը ամբողջությամբ&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Մուտքի միջավայր&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Տնային թղթապանակ&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Վիճակ&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Խմբի անուն&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Խմբի ID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Անդամների խումբ&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Ավելացնել օգտագործող&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Ավելացնել օգտագործողին համակարգին&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Ավելացնել խումբ&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Ավելացնել խումբը համակարգին&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Խմբագրել&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Խմբագրել ընտրված տողը&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Ջնջել&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Ջնջել ընտրված տողը&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Թարմացնել&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Թարմացնել ցուցակը&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Փակված է&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Ժամկերը լրացել է&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Սեղմեք նկարի վրա այն փոփոխելու համար&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Ստեղծել նոր օգտագոծող&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Ստեղծել տնային թղթապանակ&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Տնային թղթապանակ:&quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Ստեղծել առանձին խումբ օգտագործողի համար&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Նշել օգտագործողի ID-ն ձեռքով&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Օգտագործողը գոյություն ունի, ընտրեք մեկ այլ օգտագործողի անուն&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Գաղտնագրի անհամապատասխանություն&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Գաղտնագիրը շատ հասարակ է: \n&quot;
++&quot; Լավ գաղտնագիրը պետք է պարունակի ավելի քան վեց նիշ&quot;
++
++# ԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾ
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Օգտագործողի Uid-ը &lt; 500&quot;
++
++# ԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾ
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Օգտագործողի ստեղծում 500-ից պակաս UID-ով խորհուրդ չի տրվում:\n&quot;
++&quot;Դուք համոզվա՞ծ եք, որ ուզում եք անել այդ\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Տեղադրում եմ %s - ին 'օգտագործողներ' խմբում&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Ստեղծում եմ նոր խումբ: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Ավելագնում եմ %s օգտագործողին&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Հրաժարվել&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Լավ&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Ընտրեք խումբը&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Ավելագնել գոյություն ունեցող խմբին&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Ավելագնել 'օգտագործողներ' խմբին&quot;
++
++# ԾԾԾԾԾԾԾԾԾԾ
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Խումբ այդպիսի անունով գոյություն ունի: Ին՞չ եք ուզում անել&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Ստեղծել նոր խումբ&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Նշել խմբի ID ձեռքով&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Խումբը գոյություն ունի, ընտրեք խմբի մեկ այլ անուն&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;Խմբի GID-ը &lt; 500&quot;
++
++# Նոր ջան մի հատ նայի ես ինչ եմ արե :)
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Ստեղծել խմբեր 500-ից փոքր GID-ով խորհուրդ չի տրվում:\n&quot;
++&quot;Դուք համոզվա՞ծ եք, որ ուզում եք անել այդ\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Ավելացնում եմ %s խումբը&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Ջնջել ֆայլերը թե ոչ&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Ջնջում եմ %s օգտագործողին\n&quot;
++&quot; Նաև կատարվում եմ հետևյալ գործողությունները\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Ջնջել Տնային %s թղթապանակը&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Ջնջել փոստարկղը :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Հեռացնում եմ %s օգտագործողին&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Դուք իսկապես ուզում եք ջնջել %s խումբը&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s-ը գլխավոր խումբ է %s օտագորողի համար\n&quot;
++&quot; Սկզբից հեռացրեք օգտագործողին&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Հեռացնում եմ %s խումբը&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Անունը ամբողջությամբ:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Մուտքանուն:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Գաղտնագիր:&quot;
++
++# ԾԾԾԾԾԾԾԾԾԾԾԾԾԾ
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Գրեք կրկին գաղտնագիրը&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Մուտքի միջավայր:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Խմբի անուն:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Ընտրեք գոնե մեկ խումբ օգտագործողի համար&quot;
++
++# ԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾ
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Նշեք հաշիվը փակելու \n&quot;
++&quot;Տարին,Ամիսը և Օրը&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Լրացրեք բոլոր դաշտերը գաղտնագրի ժամկետի համար\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Դուք չեք կարող հեռացնել '%s' օգտագործողին նրա գլխավոր խմբից&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Տուն:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Օգտագործողի տվյալներ&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Միացնել հաշվի ժամկետի լրացումը&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Հաշվի ժանմկետը լրանում է (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Փակել օգտագործողի հաշիվը&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Հաշվի տվյալներ&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Օգտագործողը վերջին անգամ գաղտնաբառը փոխել է:&quot;
++
++# ԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾ
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Միացնել գաղտնագրի ժամկետի լրացումը&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Քանի օր հետո թույլատրել փոփոխությունները:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Քանի օր հետո պահանջել փոփոխություն:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;&quot;
++&quot;Քանի օրվա ընթացքում նախօրոք զգուշացնել\n&quot;
++&quot; փոփոխությունների համար :&quot;
++
++# ԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾ
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Օրերի քանակը մինչ հաշվի անջատումը:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Գաղտնաբառի Տվյալներ&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Ընտրեք խումբը, որի անդամ պետք է լինի օգտագործողը:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Խմբի Տվյալներ&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Ընտրեք օգտագործողներին, որոնք վայելելու են այս խումբը&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Խմբի օգտագործողներ&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Խմբագրել Խմերը/Օգտագործողներին&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Փակել&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Օգտագործողների կառավարում&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Անվան դաշտը դատարկ է, գրեք որևէ անուն&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++&quot;Անունը կարող է պարունակի միայն փոքրատառ լատիներեն տառեր, թվեր, `-' և `_' &quot;
++&quot;նշաններ&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Անունը շատ երկար է&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Սխալ&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Հեռացնում եմ %s օգտագործողին&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Հեղինակներ.&quot;
++
++#~ msgid &quot;Choice&quot;
++#~ msgstr &quot;Ընտրություն&quot;
++
++#~ msgid &quot;Yes&quot;
++#~ msgstr &quot;Այո&quot;
++
++#~ msgid &quot;No&quot;
++#~ msgstr &quot;Ոչ&quot;
+
+<a id="userdrake2tags1133poidpo">Added: userdrake2/tags/1.13.3/po/id.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/id.po (rev 0)
++++ userdrake2/tags/1.13.3/po/id.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,1168 @@
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/id.php3
++#
++# UserDrake Bahasa Indonesia
++# Copyright (C) 2001 Free Software Foundation, Inc.
++# Budi Rachmanto &lt;rac@linux-mandrake.com&gt;, 2001, 2002, 2003.
++# Willy Sudiarto Raharjo &lt;willysr@gmail.com&gt;, 2004 - 2005.
++# Erwien Samantha &lt;erwiensamantha@gmail.com&gt;, 2005.
++# Bayu Artanto &lt;bayuart@yahoo.com&gt;, 2005.
++# Ahmad Ramadhana &lt;ahmad_ramadhana@yahoo.com.sg&gt;, 2005.
++# Firdaus &lt;dausnux@gmail.com&gt;, 2005.
++# Sofian &lt;sofianhanafi@yahoo.com&gt;, 2005.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake2\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2006-03-21 18:36+0700\n&quot;
++&quot;Last-Translator: Willy Sudiarto Raharjo &lt;willysr@gmail.com&gt;\n&quot;
++&quot;Language-Team: Indonesia &lt;mdk-id@yahoogroups.com&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=utf-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=1; plural=0;\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Kesalahan membaca `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Kesalahan menciptakan `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Kesalahan menghapus `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Kesalahan membuat spool mail.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Kesalahan membuat spool mail.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Kesalahan membuat spool mail.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;kesalahan yang tidak diketahui&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Kesalahan membuat spool mail.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Kesalahan menghapus spool mail.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Memuat Pengguna dan Grup... Harap tunggu&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Perkakas Manajemen Pengguna Mageia&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Aksi&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Edit&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Hapus&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Opsi&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Saring pengguna sistem&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_File&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Penyegaran&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Keluar&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;K&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/T_ambah Pengguna&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Tambah _Grup&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Bantuan&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Laporkan Kesalahan&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Tentang...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Cari:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Terapkan filter&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Pengguna&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Grup&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Pengguna dan grup&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Nama Pengguna&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ID Pengguna&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Grup Utama&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Nama Lengkap&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Login Shell&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Direktori Rumah&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Status&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Nama Grup&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ID Grup&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Anggota Grup&quot;
++
++# broken into two lines to avoid too large a button
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;&quot;
++&quot;Tambah\n&quot;
++&quot;Pengguna&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Tambah pengguna ke sistem&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Tambah Grup&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Tambah grup ke sistem&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Edit&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Edit baris terpilih&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Hapus&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Hapus baris terpilih&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Pembaruan&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Pembaruan daftar&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Terkunci&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Kadaluarsa&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Klik ikon untuk mengubahnya&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Buat Pengguna Baru&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Buat Direktori Rumah&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Direktori Rumah:&quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Buat grup privat untuk pengguna&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Tentukan ID pengguna secara manual&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Nama ini sudah dipakai, pilihlah nama lain&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Katasandi Tidak Cocok&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Katasandi terlalu mudah.\n&quot;
++&quot; Katasandi yang baik harus lebih dari 6 karakter&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Uid pengguna &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Membuat pengguna dengan UID kurang dari 500 tidak disarankan.\n&quot;
++&quot; Apakah Anda yakin ingin melakukannya?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Menambahkan %s pada grup 'pengguna'&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Membuat grup baru: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Menambahkan pengguna: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Batal&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Ok&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Pilih Grup&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Tambahkan pada grup yang telah ada&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Tambahkan pada grup 'pengguna'&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Grup dengan nama ini sudah ada. Apa yang ingin Anda lakukan?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Buat Grup Baru&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Tentukan ID grup secara manual&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Grup sudah ada, pilihlah Nama Grup lain&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; Gid grup &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Membuat grup dengan GID kurang dari 500 tidak disarankan.\n&quot;
++&quot; Apakah Anda yakin ingin melakukannya?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Menambahkan grup: %s&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Hapus file atau tidak?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Menghapus pengguna %s\n&quot;
++&quot; Juga melakukan aksi berikut\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Hapus Direktori rumah: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Hapus Kotaksurat: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Menghapus pengguna: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Apakah Anda ingin menghapus grup %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s adalah grup utama pengguna %s\n&quot;
++&quot; Hapus dulu pengguna&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Menghapus grup: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Nama Lengkap:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Login:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Katasandi:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Konfirmasi Katasandi:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Login Shell:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Nama Grup:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Pilihlah setidaknya satu grup untuk pengguna&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Tentukan Tahun, Bulan dan Hari\n&quot;
++&quot; untuk Kadaluarsa Account&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Isi semua kolom pada umur katasandi\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Anda tidak dapat menghapus pengguna '%s' dari grup utama mereka&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Rumah:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Data Pengguna&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Aktifkan tanggal kadaluarsa account&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Account kadaluarsa (MM-DD-YYYY):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Kunci Account Pengguna&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Info Account&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Katasandi diubah terakhir pada : &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Aktifkan Kadaluarsa Katasandi&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Jumlah hari sebelum perubahan diizinkan:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Jumlah hari sebelum perubahan dibutuhkan:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Jumlah hari peringatan sebelum perubahan:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Jumlah hari sebelum account non-aktif:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Informasi Katasandi&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Pilihlah grup yang akan digunakan pengguna:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Grup Data&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Pilih pengguna untuk tergabung dengan grup ini :&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Grup Pengguna&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Edit Grup / Pengguna&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Terjadi kesalahan&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Tutup&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Hak cipta (C) %s oleh Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Manajemen Pengguna&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Willy Sudiarto Raharjo &lt;willysr@gmail.com&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Kolom nama kosong, silahkan tuliskan satu nama&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;Nama harus berisi hanya huruf kecil, angka, `-' dan `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Nama terlalu panjang&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Kesalahan&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;kesalahan yang tidak diketahui&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Kesalahan menciptakan `%s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Penulis: &quot;
++
++#~ msgid &quot;Yes&quot;
++#~ msgstr &quot;Ya&quot;
++
++#~ msgid &quot;No&quot;
++#~ msgstr &quot;Tidak&quot;
++
++#~ msgid &quot;Delete files or not&quot;
++#~ msgstr &quot;Hapus file atau tidak&quot;
++
++#~ msgid &quot;Warning : Deleting User&quot;
++#~ msgstr &quot;Peringatan : Menghapus Pengguna&quot;
++
++#~ msgid &quot;Warning : Deleting Group&quot;
++#~ msgstr &quot;Peringatan : Menghapus Grup&quot;
++
++#~ msgid &quot;Generic help on userdrake&quot;
++#~ msgstr &quot;Bantuan Generik pada userdrake&quot;
++
++#~ msgid &quot;Help&quot;
++#~ msgstr &quot;Bantuan&quot;
++
++#~ msgid &quot;Delete User&quot;
++#~ msgstr &quot;Hapus Pengguna&quot;
++
++#~ msgid &quot; Remove Home Directory&quot;
++#~ msgstr &quot; Hapus Direktori Rumah&quot;
++
++#~ msgid &quot;Do you want to delete the user's home directory and mail spool?&quot;
++#~ msgstr &quot;Anda ingin menghapus direktori rumah dan spool mail pengguna?&quot;
++
++#~ msgid &quot;/Filter system users&quot;
++#~ msgstr &quot;/Saring pengguna sistem&quot;
++
++#~ msgid &quot;/Options&quot;
++#~ msgstr &quot;/Opsi&quot;
++
++#~ msgid &quot;/Actions&quot;
++#~ msgstr &quot;/Aksi&quot;
++
++#~ msgid &quot;/Edit&quot;
++#~ msgstr &quot;/Edit&quot;
++
++#~ msgid &quot;/Delete&quot;
++#~ msgstr &quot;/Hapus&quot;
++
++#~ msgid &quot;Reload&quot;
++#~ msgstr &quot;Muat Ulang&quot;
++
++#~ msgid &quot;Save&quot;
++#~ msgstr &quot;Simpan&quot;
++
++#~ msgid &quot;Exit&quot;
++#~ msgstr &quot;Keluar&quot;
++
++#~ msgid &quot;Settings&quot;
++#~ msgstr &quot;Setting&quot;
++
++#~ msgid &quot;Show tools bar&quot;
++#~ msgstr &quot;Tampilkan tools bar&quot;
++
++#~ msgid &quot;View users&quot;
++#~ msgstr &quot;Lihat pengguna&quot;
++
++#~ msgid &quot;Preferences&quot;
++#~ msgstr &quot;Preferensi&quot;
++
++#~ msgid &quot;Ldap Server&quot;
++#~ msgstr &quot;Server LDAP&quot;
++
++#~ msgid &quot;Save change&quot;
++#~ msgstr &quot;Simpan perubahan&quot;
++
++#~ msgid &quot;Add&quot;
++#~ msgstr &quot;Tambah&quot;
++
++#~ msgid &quot;Edit user(s)&quot;
++#~ msgstr &quot;Edit pengguna&quot;
++
++#~ msgid &quot;Remove&quot;
++#~ msgstr &quot;Hapus&quot;
++
++#~ msgid &quot;Edit group(s)&quot;
++#~ msgstr &quot;Edit grup&quot;
++
++#~ msgid &quot;User id&quot;
++#~ msgstr &quot;ID pengguna&quot;
++
++#~ msgid &quot;Group id&quot;
++#~ msgstr &quot;ID grup&quot;
++
++#~ msgid &quot;Comments&quot;
++#~ msgstr &quot;Komentar&quot;
++
++#~ msgid &quot;Shell&quot;
++#~ msgstr &quot;Shell&quot;
++
++#~ msgid &quot;name&quot;
++#~ msgstr &quot;nama&quot;
++
++#~ msgid &quot;gid&quot;
++#~ msgstr &quot;gid&quot;
++
++#~ msgid &quot;passwd&quot;
++#~ msgstr &quot;passwd&quot;
++
++#~ msgid &quot;users&quot;
++#~ msgstr &quot;pengguna&quot;
++
++#~ msgid &quot;Parameters&quot;
++#~ msgstr &quot;Parameter&quot;
++
++#~ msgid &quot;General option&quot;
++#~ msgstr &quot;Opsi umum&quot;
++
++#~ msgid &quot;Edit accounts on a LDAP directory&quot;
++#~ msgstr &quot;Edit account pada direktori LDAP&quot;
++
++#~ msgid &quot;Active autologin support&quot;
++#~ msgstr &quot;Dukungan autologin aktif&quot;
++
++#~ msgid &quot;User creation&quot;
++#~ msgstr &quot;Pembuatan pengguna&quot;
++
++#~ msgid &quot;Default shell:&quot;
++#~ msgstr &quot;Shell standar:&quot;
++
++#~ msgid &quot;Default home dir:&quot;
++#~ msgstr &quot;Direktori rumah standar:&quot;
++
++#~ msgid &quot;Default face:&quot;
++#~ msgstr &quot;Muka standar:&quot;
++
++#~ msgid &quot;Default group:&quot;
++#~ msgstr &quot;Grup standar:&quot;
++
++#~ msgid &quot;General&quot;
++#~ msgstr &quot;Umum&quot;
++
++#~ msgid &quot;Don't show user with id less than 500&quot;
++#~ msgstr &quot;Jangan tampilkan pengguna dengan id kurang dari 500&quot;
++
++#~ msgid &quot;User identifier&quot;
++#~ msgstr &quot;Identitas pengguna&quot;
++
++#~ msgid &quot;Default Group&quot;
++#~ msgstr &quot;Grup standar&quot;
++
++#~ msgid &quot;Groups list&quot;
++#~ msgstr &quot;Daftar grup&quot;
++
++#~ msgid &quot;Users View&quot;
++#~ msgstr &quot;Lihat Pengguna&quot;
++
++#~ msgid &quot;Group identifier&quot;
++#~ msgstr &quot;Identitas grup&quot;
++
++#~ msgid &quot;Groups View&quot;
++#~ msgstr &quot;Lihat Grup&quot;
++
++#~ msgid &quot;/bin/bash&quot;
++#~ msgstr &quot;/bin/bash&quot;
++
++#~ msgid &quot;uid:&quot;
++#~ msgstr &quot;uid:&quot;
++
++#~ msgid &quot;Comment:&quot;
++#~ msgstr &quot;Komentar:&quot;
++
++#~ msgid &quot;Shell:&quot;
++#~ msgstr &quot;Shell:&quot;
++
++#~ msgid &quot;Home dir:&quot;
++#~ msgstr &quot;Direktori rumah:&quot;
++
++#~ msgid &quot;passwd:&quot;
++#~ msgstr &quot;katasandi:&quot;
++
++#~ msgid &quot;Retype passwd:&quot;
++#~ msgstr &quot;Tulis ulang katasandi:&quot;
++
++#~ msgid &quot;Identity&quot;
++#~ msgstr &quot;Identitas&quot;
++
++#~ msgid &quot;Available groups&quot;
++#~ msgstr &quot;Grup yang tersedia&quot;
++
++#~ msgid &quot;Extended&quot;
++#~ msgstr &quot;Perluasan&quot;
++
++#~ msgid &quot;About UserDrake&quot;
++#~ msgstr &quot;Tentang UserDrake&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;Userdrake is an application to add and\n&quot;
++#~ &quot;delete users on the Mageia\n&quot;
++#~ &quot;distribution.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;Userdrake now support ldap directory\n&quot;
++#~ &quot;support conformed to rfc2307bis.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;This application is under the GPL\n&quot;
++#~ &quot;license and is delived without\n&quot;
++#~ &quot;any warranty.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;You can get support at : \n&quot;
++#~ &quot;http://www.mandrakeexpert.com/&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Userdrake adalah aplikasi untuk menambah dan menghapus\n&quot;
++#~ &quot;pengguna pada distribusi Mageia.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;Userdrake kini mendukung direktori ldap\n&quot;
++#~ &quot;sesuai rfc2307bis.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;Aplikasi ini berlisensi GPL\n&quot;
++#~ &quot;dan disebarluaskan tanpa garansi apapun.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;Anda dapat memperoleh layanan pada : \n&quot;
++#~ &quot;http://www.mandrakeexpert.com/&quot;
++
++#~ msgid &quot;Name:&quot;
++#~ msgstr &quot;Nama:&quot;
++
++#~ msgid &quot;gid:&quot;
++#~ msgstr &quot;gid:&quot;
++
++#~ msgid &quot;In group&quot;
++#~ msgstr &quot;Pada grup&quot;
++
++#~ msgid &quot;Not in group&quot;
++#~ msgstr &quot;Tidak ada pada grup&quot;
++
++#~ msgid &quot;Quit userdrake?&quot;
++#~ msgstr &quot;Keluar userdrake?&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;You have made changes\n&quot;
++#~ &quot;since the last save.\n&quot;
++#~ &quot;Do you really want to quit\n&quot;
++#~ &quot;userdrake?&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Anda telah melakukan perubahan\n&quot;
++#~ &quot;sejak penyimpanan terakhir.\n&quot;
++#~ &quot;Apakah Anda ingin keluar\n&quot;
++#~ &quot;dari userdrake?&quot;
++
++#~ msgid &quot;Enter new passwd&quot;
++#~ msgstr &quot;Masukkan katasandi baru&quot;
++
++#~ msgid &quot;new passwd:&quot;
++#~ msgstr &quot;katasandi baru:&quot;
++
++#~ msgid &quot;Change&quot;
++#~ msgstr &quot;Ubah&quot;
++
++#~ msgid &quot;Change face&quot;
++#~ msgstr &quot;Ubah muka&quot;
++
++#~ msgid &quot;Set passwd&quot;
++#~ msgstr &quot;Tentukan katasandi&quot;
++
++#~ msgid &quot;User autologin&quot;
++#~ msgstr &quot;Autologin Pengguna&quot;
++
++#~ msgid &quot;UserDrake - Error&quot;
++#~ msgstr &quot;UserDrake - Kesalahan&quot;
++
++#~ msgid &quot;couldn't find blue color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;tidak bisa mencari warna biru pada file /usr/lib/X11/rgb.txt&quot;
++
++#~ msgid &quot;Select the image to use&quot;
++#~ msgstr &quot;Pilih citra yang akan digunakan&quot;
++
++#~ msgid &quot;Custom...&quot;
++#~ msgstr &quot;Custom...&quot;
++
++#~ msgid &quot;couldn't find grey color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;tidak bisa mencari warna abu-abu pada file /usr/lib/X11/rgb.txt&quot;
++
++#~ msgid &quot;couldn't find black color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;tidak bisa mencari warna hitam pada file /usr/lib/X11/rgb.txt&quot;
++
++#~ msgid &quot;login empty&quot;
++#~ msgstr &quot;login kosong&quot;
++
++#~ msgid &quot;This login already exists on the system&quot;
++#~ msgstr &quot;Login ini telah terpakai&quot;
++
++#~ msgid &quot;The login is similar to a name's group&quot;
++#~ msgstr &quot;Login serupa dengan grup nama lain&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;User id already in use&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;ID pengguna sudah terpakai&quot;
++
++#~ msgid &quot;User id already in use&quot;
++#~ msgstr &quot;ID pengguna sudah terpakai&quot;
++
++#~ msgid &quot;name empty&quot;
++#~ msgstr &quot;nama kosong&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;Group id already in use&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;ID grup telah terpakai&quot;
++
++#~ msgid &quot;Group id already in use&quot;
++#~ msgstr &quot;ID grup telah terpakai&quot;
++
++#~ msgid &quot;Couldn't find pixmap file: %s&quot;
++#~ msgstr &quot;Tidak bisa mencari file pixmap: %s&quot;
++
++#~ msgid &quot;%s: the file %s is busy (%s present)\n&quot;
++#~ msgstr &quot;%s: file %s sibuk (ada %s)\n&quot;
++
++#~ msgid &quot;%s: can't link %s: %s\n&quot;
++#~ msgstr &quot;%s: gagal membuat link %s: %s\n&quot;
++
++#~ msgid &quot;%s: can't unlock %s: %s (your changes are still in %s)\n&quot;
++#~ msgstr &quot;%s: tidak bisa membuka %s: %s (perubahan tetap pada %s)\n&quot;
++
++#~ msgid &quot;Error in stat on tmp files when i try to unlock lib\n&quot;
++#~ msgstr &quot;Kesalahan dalam status file temporer saat mencoba membuka pustaka\n&quot;
++
++#~ msgid &quot;%s: no changes made\n&quot;
++#~ msgstr &quot;%s: tidak ada perubahan\n&quot;
++
++#~ msgid &quot;Select LDAP Directory&quot;
++#~ msgstr &quot;Pilih Direktori LDAP&quot;
++
++#~ msgid &quot;Server address:&quot;
++#~ msgstr &quot;Alamat server:&quot;
++
++#~ msgid &quot;Search base:&quot;
++#~ msgstr &quot;Basis pencarian:&quot;
++
++#~ msgid &quot;Bind DN:&quot;
++#~ msgstr &quot;Sambung ke DN:&quot;
++
++#~ msgid &quot;Connection Type :&quot;
++#~ msgstr &quot;Tipe koneksi :&quot;
++
++#~ msgid &quot;ssl&quot;
++#~ msgstr &quot;ssl&quot;
++
++#~ msgid &quot;Validate&quot;
++#~ msgstr &quot;Validasi&quot;
++
++#~ msgid &quot;Test&quot;
++#~ msgstr &quot;Tes&quot;
++
++#~ msgid &quot;cannot change ldap version to 3: %s&quot;
++#~ msgstr &quot;tidak bisa merubah versi ldap ke 3: %s&quot;
++
++#~ msgid &quot;cannot connect to the ldap server\n&quot;
++#~ msgstr &quot;tidak bisa terhubung dengan server ldap\n&quot;
++
++#~ msgid &quot;cannot bind to the ldap server, %d\n&quot;
++#~ msgstr &quot;tidak bisa tersambung dengan server ldap, %d\n&quot;
++
++#~ msgid &quot;Cannot bind to ldap server&quot;
++#~ msgstr &quot;Tidak bisa tersambung dengan server ldap&quot;
++
++#~ msgid &quot;cannot save because the cannot connect to the ldap server&quot;
++#~ msgstr &quot;tidak dapat disimpan karena tidak bisa terhubung ke server ldap&quot;
++
++#~ msgid &quot;cannot relock lib&quot;
++#~ msgstr &quot;tidak dapat mengunci ulang pustaka&quot;
++
++#~ msgid &quot;The passwords string aren't the same!&quot;
++#~ msgstr &quot;katasandi tidak sama!&quot;
++
++#~ msgid &quot;cannot launch UserDrake&quot;
++#~ msgstr &quot;tidak bisa meluncurkan UserDrake&quot;
++
++#~ msgid &quot;You must be root to use userdrake&quot;
++#~ msgstr &quot;Anda harus menjadi root untuk menggunakan userdrake&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;Cannot lock user lib,\n&quot;
++#~ &quot;file /etc/ptmp or /etc/gtmp exist&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Tidak bisa mengunci pustaka pengguna,\n&quot;
++#~ &quot;terdapat file /etc/ptmp atau /etc/gtmp&quot;
++
++#~ msgid &quot;What do you want to show in user list?&quot;
++#~ msgstr &quot;Apa yang ingin Anda tampilkan pada daftar pengguna?&quot;
++
++#~ msgid &quot;What do you want to show in group list?&quot;
++#~ msgstr &quot;Apa yang ingin Anda tampilkan pada daftar grup?&quot;
++
++#~ msgid &quot;/bin/ash&quot;
++#~ msgstr &quot;/bin/ash&quot;
++
++#~ msgid &quot;/bin/csh&quot;
++#~ msgstr &quot;/bin/csh&quot;
++
++#~ msgid &quot;/bin/zsh&quot;
++#~ msgstr &quot;/bin/zsh&quot;
+
+<a id="userdrake2tags1133poispo">Added: userdrake2/tags/1.13.3/po/is.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/is.po (rev 0)
++++ userdrake2/tags/1.13.3/po/is.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,754 @@
++# Icelandic translation of userdrake2.po
++# translation of userdrake-is.po to Icelandic
++# translation of userdrake.po to Icelandic
++# Copyright (C) 2003, 2005, 2009 Free Software Foundation, Inc.
++#
++# Pjetur G. Hjaltason &lt;pjetur@pjetur.net&gt;, 2003, 2005, 2009.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake2\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2009-04-08 23:53+0000\n&quot;
++&quot;Last-Translator: Pjetur G. Hjaltason &lt;pjetur@pjetur.net&gt;\n&quot;
++&quot;Language-Team: Icelandic &lt;kde-isl@molar.is&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Villa við lestur `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Villa við að búa til `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Villa við að eyða `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Villa við að búa til pósthólf.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Villa við að búa til pósthólf.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Villa við að búa til pósthólf.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;óþekkt villa&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Villa við að búa til pósthólf.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Villa við að eyða pósthólfi.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Hleð inn notendum og hópum... Augnablik... &quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageia Notandastjórnun&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Aðgerðir&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Sýsl&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Eyða&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Valkostir&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Sía kerfisnotendur&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Skrá&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Endurnýja&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Hætta&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Bæta við notanda&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Bæta við _Hópi&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Hjálp&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Senda villutilkynningu&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Um...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Leita:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Beita síu&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Notendur&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Hópar&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Notendur og hópar&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Notandanafn&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Notanda-númer (UID)&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Aðalhópur&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Fullt nafn&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Skel&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Heimamappa&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Staða&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Nafn hóps&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Hópnúmer (GID)&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Meðlimir hóps&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Bæta við notanda&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Bæta notanda við kerfið&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Bæta við hópi&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Bæta við hópi í kerfið&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Sýsl&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Sýsla með valda línu&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Eyða&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Eyða valinni línu&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Endurnýja&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Uppfæra lista&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Læst&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Útrunninn&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Smelltu á táknmyndina til að breyta&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Búa til nýja notanda&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Búa til heimasvæði&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Heimamappa: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Búa til einkahóp fyrir notandann&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Ákvarða sjálfur númer notanda&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Notandi þegar til, veldu annað notandanafn&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Lykilorð eru ekki eins&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Þetta lykilorð er of einfalt. \n&quot;
++&quot; Góð lykilorð ættu að vera &gt; 6 bókstafir&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Notandanúmer &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Ekki er mælt með að búa til notanda með notandanúmer (UID) minna en 500.\n&quot;
++&quot;Ert þú viss um að þú viljir gera þetta?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Setja %s í 'notanda' hóp&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Búa til nýjan hóp: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Bæta við notanda: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Flutnings-ráðgjafi&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;Vilt þú keyra flutnings-ráðgjafann til að flytja inn Windows skrár og &quot;
++&quot;uppsetningar yfir í Mageia dreifinguna þína?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Hætta við&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Í lagi&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Veldu hóp&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Bæta við hóp sem er til&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Bæta í 'notanda' hópinn&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Hópur með þessu nafni er þegar til. Hvað vilt þú gera?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Búa til nýjan hóp&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Ákvarða sjálfur númer hóps&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Hópur er þegar til, veldu annað hópnafn&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; Hópnúmer er &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Ekki er mælt með því að búa til hóp með hópnúmeri (GID) minna en 500.\n&quot;
++&quot; Ert þú viss um að þú viljir gera þetta?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Bæta við hóp: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Eyða skrám eða ekki?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Eyði notanda %s\n&quot;
++&quot; Framkvæma einnig eftirfarandi aðgerðir\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Eyða heimasvæði: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Eyða Pósthólfi: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Fjarlægi notanda: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Viltu í alvöru eyða hópi %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s er aðalhópur fyrir notanda %s\n&quot;
++&quot; Fjarlægðu notanda fyrst&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Fjarlægi hóp: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Fullt nafn:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Notandi:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Lykilorð:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Staðfestu lykilorð:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Skel:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Nafn hóps:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Veldu a.m.k. einn hóp fyrir notandann&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Tilgreindu Ár, mánuð og dag \n&quot;
++&quot; fyrir úreldingu aðkennis &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Fylltu í öll svæðin fyrir úreldingu lykilorðs\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Þú getur ekki fjarlægt notanda '%s' úr sínum aðalhóp&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Heima:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Gögn notanda&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Virkja auðkennis-úreldingu&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Auðkenni úreldist (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Læsa auðkenni notanda&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Auðkennis-upplýsingar&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Notandi breytti lykilorði þann: &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Virkja lykilorðs-úreldingu&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Dagar þar til breyting leyfð:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Dagar þar til breytingar krafist:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Aðvara um breytingu dögum áður:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Dagar áður en auðkenni óvirkt:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Lykilorðs-upplýsingar&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Veldu hópa sem notandinn verður meðlimur í:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Hópupplýsingar&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Veljið notendur í þennan hóp:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Notendur í hóp&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Sýsla með Hópa / Notendur&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Villa kom upp:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Loka&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Höfundaréttur (C) %s Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Notandastjórnun&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Pjetur G. Hjaltason &lt;pjetur@pjetur.net&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Nafnsvæði er autt, gefðu upp nafn&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;Nafnið má aðeins innihalda litla bókstafi, tölur `-' og `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Nafn er of langt&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Villa&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;óþekkt villa&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Villa við að búa til `%s': %s&quot;
+
+<a id="userdrake2tags1133poitpo">Added: userdrake2/tags/1.13.3/po/it.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/it.po (rev 0)
++++ userdrake2/tags/1.13.3/po/it.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,763 @@
++# translation of it.po to Italian
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/it.php3
++#
++# Copyright (C) 2000,2003, 2004, 2007, 2009 Free Software Foundation, Inc.
++# 8.0 Tech/Lang proofreading by Roberto Rosselli Del Turco
++#
++# Daniele Pighin &lt;daniele@dcs.it&gt;, 2000.
++# Roberto Rosselli Del Turco &lt;rosselli@ling.unipi.it&gt;, 2000,2003, 2004.
++# Andrea Celli &lt;a.celli@caltanet.it&gt;, 2001.
++# &lt;rosselli@ling.unipi.it&gt;, 2001.
++# Simone Riccio &lt;s.riccio@aeb-informatica.it&gt;, 2002.
++# Marco De Vitis &lt;mdv@spin.it&gt;, 2003.
++# Andrea Celli &lt;andrea.celli@libero.it&gt;, 2007, 2009.
++# Moreno Manzini &lt;moreno.mg@gmail.com&gt;, 2010.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: it\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2010-03-08 10:20+0100\n&quot;
++&quot;Last-Translator: Moreno Manzini &lt;moreno.mg@gmail.com&gt;\n&quot;
++&quot;Language-Team: Italian &lt;timl@frelist.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++&quot;X-Generator: Lokalize 1.0\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Errore nel leggere \&quot;%s\&quot;: %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Errore nel creare \&quot;%s\&quot;: %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Errore nel rimuovere \&quot;%s\&quot;: %s&quot;
++
++#: ../USER/USER.xs:490
++#, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Errore nella creazione dell'account: '%s'.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;Impossibile ottenere il valore dello Uid&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;Impossibile recuperare il valore&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Errore nella creazione della coda (spool) della posta.\n&quot;
++
++#: ../USER/USER.xs:582
++#, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;L'utente non può essere modificato: '%s'.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;L'utente non può essere eliminato: '%s'.\n&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;Errore durante l'impostazione della password: '%s'.\n&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;errore sconosciuto&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Errore durante la creazione del gruppo.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;Il gruppo non può essere modificato: '%s'.\n&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;Il gruppo non può essere modificato: '%s'.\n&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;Manca la cartella home per l'utente.\n&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;La cartella home non può essere eliminata: '%s'.\n&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Errore nel cancellare la coda (spool) della posta.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Attendere, prego... si stanno caricando gli utenti e i gruppi&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Strumento per la gestione degli utenti di Mageia&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;/_Attiva l'account guest&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;/_Rimuovi l'account guest&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Azioni&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Modifica&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Elimina&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Opzioni&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Filtra gli utenti di sistema&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_File&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Aggiorna&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Esci&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Aggiungi utente&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Aggiungi _gruppo&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Aiuto&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Segnala bug&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Informazioni su...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Cerca:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Applica filtro&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Utenti&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Gruppi&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Utenti e gruppi&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Nome utente&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ID utente&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Gruppo primario&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Nome completo&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Shell di login&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Directory home&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Stato&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Nome gruppo&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ID gruppo&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Membri del gruppo&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Aggiungi utente&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Aggiungi un utente al sistema&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Aggiungi gruppo&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Aggiungi un gruppo al sistema&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Modifica&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Modifica la riga selezionata&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Elimina&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Cancella la riga selezionata&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Aggiorna&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Aggiorna la lista&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Bloccato&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Scaduto&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Clicca sull'icona per cambiarla&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Crea nuovo utente&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Crea la directory home&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Directory home: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Crea un gruppo privato per l'utente&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Specifica manualmente l'ID utente&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Questo utente è già presente, scegli un altro nome&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;La password non corrisponde&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Questa password è troppo semplice.\n&quot;
++&quot;Una buona password dovrebbe essere lunga più di 6 caratteri.&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;UID dell'utente inferiore a 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;È sconsigliato creare un utente con UID inferiore a 500.\n&quot;
++&quot;Sei sicuro di volerlo fare?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Inserimento di %s nel gruppo \&quot;users\&quot;&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Creazione di un nuovo gruppo: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Aggiunta utente: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Procedura per le migrazioni&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;Vuoi utilizzare la procedura guidata per trasferire i documenti e le &quot;
++&quot;impostazioni Windows sulla tua installazione Mageia?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Annulla&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Ok&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Scegli gruppo&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Aggiungi al gruppo esistente&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Aggiungi al gruppo \&quot;users\&quot;&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Esiste già un gruppo con questo nome. Cosa vuoi fare?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Crea nuovo gruppo&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Specifica manualmente group ID&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Questo gruppo è già presente, scegli un altro nome&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;GID del gruppo inferiore a 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;È sconsigliato creare un gruppo con GID inferiore a 500.\n&quot;
++&quot;Sei sicuro di volerlo fare?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Aggiunta del gruppo: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Cancellare i file o no?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Cancellazione dell'utente %s.\n&quot;
++&quot;Saranno eseguite anche le seguenti azioni:\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Cancella la directory home: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Cancella la mailbox: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Rimozione dell'utente: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Vuoi davvero cancellare il gruppo %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s è il gruppo primario dell'utente %s.\n&quot;
++&quot;Devi prima rimuovere l'utente.&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Rimozione del gruppo: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Nome completo:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Login:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Password:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Conferma password:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Shell di login:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Nome gruppo:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Devi selezionare almeno un gruppo per l'utente&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Devi indicare l'anno, il mese e il giorno\n&quot;
++&quot;di scadenza dell'account.&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Devi riempire tutti i campi relativi alla scadenza della password\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Non puoi rimuovere l'utente \&quot;%s\&quot; dal suo gruppo primario&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Home:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Dati utente&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Abilita la scadenza dell'account&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;L'account scade il (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Blocca l'account dell'utente&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Informazioni account&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;L'utente ha cambiato la password in data: &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Abilita la scadenza della password&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Giorni prima che sia permesso il cambio:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Giorni prima che sia richiesto il cambio:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Giorni di avvertimento prima del cambio:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Giorni prima che l'account diventi inattivo:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Informazioni password&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Seleziona i gruppi di cui sarà membro l'utente:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Dati gruppo&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Seleziona gli utenti da inserire in questo gruppo:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Utenti del gruppo&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Modifica gruppi / utenti&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Si è verificato un errore:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Chiudi&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Copyright (C) %s di Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Gestione utenti&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Andrea Celli &lt;a.celli@caltanet.it&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Il campo del login è vuoto, devi inserire un nome.&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++&quot;Il nome può contenere soltanto lettere minuscole, numeri, \&quot;-\&quot; e \&quot;_\&quot;&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Il nome è troppo lungo&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Errore&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;errore sconosciuto&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Errore nel creare \&quot;%s\&quot;: %s&quot;
+
+<a id="userdrake2tags1133pojapo">Added: userdrake2/tags/1.13.3/po/ja.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/ja.po (rev 0)
++++ userdrake2/tags/1.13.3/po/ja.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,762 @@
++# translation of userdrake-ja.po to Japanese
++#
++# Latest versions of po files are at http://www.mandrivalinux.com/l10n/ja.php3
++#
++# Japanese translation for userdrake
++# Copyright (C) 1999 Mandriva
++# YAMAGATA Hiroo &lt;hiyori13@alum.mit.edu&gt;, 2001.
++# Budi Rachmanto &lt;rac@mandrivalinux.org&gt;, 2001.
++# UTUMI Hirosi &lt;utuhiro78@yahoo.co.jp&gt;, 2003, 2004.
++# BANDO Yukiko &lt;ybando@k6.dion.ne.jp&gt;, 2004-2007.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-ja\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2007-09-24 23:00+0900\n&quot;
++&quot;Last-Translator: BANDO Yukiko &lt;ybando@k6.dion.ne.jp&gt;\n&quot;
++&quot;Language-Team: Japanese &lt;cooker-i18n@mandrivalinux.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.3\n&quot;
++&quot;Plural-Forms: nplurals=1; plural=0;\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;%s の読み込みエラー: %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;%s の作成エラー: %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;%s の削除エラー: %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;メールスプールの作成エラー\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;メールスプールの作成エラー\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;メールスプールの作成エラー\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;未知のエラー&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;メールスプールの作成エラー\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;メールスプールの削除エラー\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;ユーザとグループを読み込んでいます。お待ちください...&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageia ユーザ管理ツール&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/アクション(_A)&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/編集(_E)&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/削除(_D)&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/オプション(_O)&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/システムユーザをフィルタ(_F)&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/ファイル(_F)&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/更新(_R)&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/終了(_Q)&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/ユーザを追加(_A)&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/グループを追加(_G)&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/ヘルプ(_H)&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/バグを報告(_R)&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/情報(_A)&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;検索:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;フィルタを適用&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;ユーザ&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;グループ&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;ユーザとグループ&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;ユーザ名&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ユーザ ID&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;プライマリグループ&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;フルネーム&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;ログインシェル&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;ホームディレクトリ&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;状態&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;グループ名&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;グループ ID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;グループのメンバー&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;ユーザを追加&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;システムにユーザを追加&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;グループを追加&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;システムにグループを追加&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;編集&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;選択したユーザ/グループを編集&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;削除&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;選択したユーザ/グループを削除&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;更新&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;リストを更新&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;ロック中&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;期限切れ&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;変更するにはアイコンをクリック&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;新規ユーザを作成&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;ホームディレクトリを作成&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;ホームディレクトリ: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;ユーザのプライベートグループを作成&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;ユーザ ID を手動で指定&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;この名前は既に使われています。別のユーザ名を選んでください。&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;パスワードが合っていません&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;パスワードが短すぎます。 \n&quot;
++&quot;パスワードは 7 文字以上にしてください。&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;ユーザの UID が 500 未満です&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;UID が 500 未満のユーザを作成するのはお勧めできません。\n&quot;
++&quot;本当に作成しますか?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;%s をユーザグループに追加&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;新規グループを作成: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;ユーザを追加: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;移行ウィザード&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;移行ウィザードを使って Windows のドキュメントと設定を Mageia にイン&quot;
++&quot;ポートしますか?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;キャンセル&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Ok&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;グループを選択&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;既存のグループに追加&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;ユーザグループに追加&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;このグループ名は既に存在します。どうしますか?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;新規グループを作成&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;グループ ID を手動で指定&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;このグループは既に存在します。別のグループ名を選んでください。&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; グループの GID が 500 未満です&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;GID が 500 未満のグループを作成するのはお勧めできません。\n&quot;
++&quot; 本当に作成しますか?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;グループを追加: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;ファイルを削除しますか?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;ユーザ %s を削除\n&quot;
++&quot;さらに以下を実行\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;ホームディレクトリを削除: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;メールボックスを削除: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;ユーザを削除: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;グループ %s を削除しますか?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s はユーザ %s のプライマリグループです。\n&quot;
++&quot;まずユーザを削除してください。&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;グループを削除: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;フルネーム:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;ログイン:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;パスワード:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;パスワードを確認:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;ログインシェル:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;グループ名:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;ユーザ 1 人につき少なくとも 1 つのグループを選んでください&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;アカウントの期限に \n&quot;
++&quot;年・月・日を指定してください&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;パスワード期限のすべての欄を埋めてください\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;ユーザ %s をプライマリグループから削除することはできません&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;ホーム:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;ユーザのデータ&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;アカウントの有効期限を設定する&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;アカウントの期限 (年-月-日):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;ユーザのアカウントをロック&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;アカウントの情報&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;ユーザパスワードの最終変更日 : &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;パスワードの有効期限を設定する&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;変更を許可するまでの日数:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;変更を要求するまでの日数:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;変更を要求する何日前に警告するか:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;アカウントを無効にするまでの日数:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;パスワードの情報&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;ユーザが所属するグループを選んでください:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;グループのデータ&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;このグループに加えるユーザを選んでください :&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;グループユーザ&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;グループ/ユーザを編集&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;エラーが発生しました&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;閉じる&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Copyright (C) %s by Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;ユーザの管理&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++&quot;UTUMI Hirosi &lt;utuhiro78@yahoo.co.jp&gt;\n&quot;
++&quot;Yukiko BANDO &lt;ybando@k6.dion.ne.jp&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;名前が入力されていません。入力してください。&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++&quot;名前にはアルファベットの小文字、数字、ハイフン (-)、アンダースコア (_) 以外は&quot;
++&quot;使えません&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;名前が長すぎます&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;エラー&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;未知のエラー&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;%s の作成エラー: %s&quot;
+
+<a id="userdrake2tags1133pokapo">Added: userdrake2/tags/1.13.3/po/ka.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/ka.po (rev 0)
++++ userdrake2/tags/1.13.3/po/ka.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,757 @@
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/ka.php3
++#
++# Georgian translation of UserDrake
++# Copyright (C) 2000-2001 Mandriva S.A.
++# Aiet Kolkhi &lt;aiet@gmx.net&gt;, 2001.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake2\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2004-09-26 04:45+0400\n&quot;
++&quot;Last-Translator: Aiet Kolkhi &lt;aiet@qartuli.net&gt;\n&quot;
++&quot;Language-Team: Georgian &lt;aiet@qartuli.com&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=1; plural=0\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;შეცდომა `%s'-ის კითხვისას: %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;შეცდომა `%s'-ის შექმნისას: %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;შეცდომა `%s'-ის წაშლისას: %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;შეცდომა mail spool-ის შექმნისას.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;შეცდომა mail spool-ის შექმნისას.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;შეცდომა mail spool-ის შექმნისას.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;უცნობი შეცდომა&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;შეცდომა mail spool-ის შექმნისას.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;შეცდომა mail spool-ის შექმნისას.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;ვიძახებ მომხმარებლებს და ჯგუფებს... გთხოვთ მოითმინოთ&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageia-ის მენეჯმენტის ხელსაწყო&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_მოქმედებები&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_შეცვლა&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_წაშლა&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_თვისებები&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_გაფილტრე სისტემური მომხმარებლები&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_ფაილი&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_განახლება&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_დამთავრება&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_მომხმარებლის დამატება&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/ჯ_გუფის დამატება&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_დახმარება&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_ხარვეზის შეტყობინება&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_შესახებ...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;მოძებნა:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;ფილტრის გააქტიურება&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;მომხმარებლები&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;ჯგუფ(ებ)ი&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;მომხმარებლები და ჯგუფები&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;მომხმარებლის სახელი&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;მომხმარებლის ID&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;ძირითადი ჯგუფი&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;სრული სახელი&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;შესასვლელი გარსი&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;პირადი (Home) დირექტორია&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;სტატუსი&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;ჯგუფის სახელი&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ჯგუფის ID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;ჯგუფის წევრები&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;მომხმარებლის დამატება&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;მომხმარებლის სისტემაში დამატება&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;ჯგუფის დამატება&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;ჯგუფის სისტემაში დამატება&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;დამუშავება&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;ამორჩეული რიგის შეცვლა&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;წაშლა&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;ამორჩეული რიგის წაშლა&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;განახლება&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;სიის განახლება&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;ჩაკეტილია&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;ვადაგასულია&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;დააწკაპუნეტ სიმბოლოზე შესაცვლელად&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;ახალი მომხმარებლის შექმნა&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Home დირექტორიის შექმნა&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;პირადი (home) დირექტორია:&quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;შექმენი საკუთარი ჯგუფი მომხმარებელს&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;მომხმარებლის ID-ს ხელით მითითება&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;მომხმარებელი უკვე არსებობს, გთხოვთ ამოირჩიოთ სხვა მომხმარებლის სახელი&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;პაროლები არ ემთხვევა&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;პაროლი მეტად მარტივია. \n&quot;
++&quot; კარგი პაროლები სულ ცოტა 6 სიმბოლოსგან უნდა შედგებოდეს&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;მომხმარებლის Uid ნაკლებია 500-ზე&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;მომხმარებლის შექმნა, რომლის UID ნაკლებია 500 არ არის რეკომენდირებული.\n&quot;
++&quot; დარწმუნებული ხართ, რომ გნებავთ ეს?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;ვსვამ %s-ს „მომხმარებლების“ ჯგუფში&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;ახალი ჯგუფის შექმნა: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;ვამატებ მომხმარებელს: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;სტოპ!&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;ო-ქეი&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;ჯგუფის ამორჩევა&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;არსებულ ჯგუფში დამატება&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;«მომხმარებლების» ჯგუფში დამატება&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;ჯგუფი ამ სახელით უკვე არსებობს. რისი გაკეთება გსურთ?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;ახალი ჯგუფის შექმნა&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;ჯგუფის ID-ს ხელით მითითება&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;ჯგუფის სახელი უკვე არსებობს, გთხოვთ ამოირჩიოთ სხვა ჯგუფის სახელი&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; ჯგუფის Gid ნაკლებია 500-ზე&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;ჯგუფის შექმნა, რომლის GID ნაკლებია 500 არ არის რეკომენდირებული.\n&quot;
++&quot; დარწმუნებული ხართ, რომ გნებავთ ეს?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;ვამატებ ჯგუფს: %s&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;წავშალო ფაილები თუ არა?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;ვშლი მომხმარებელს %s\n&quot;
++&quot; ასევე შეასრულე შემდეგი მოქმედებები\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Home დირექტორიის წაშლა: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;საფოსტო ყუთის წაშლა :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;მომხმარებლის წაშლა: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;მართლა გნებავთ ჯგუფ „%s“-ის წაშლა?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s გახლავთ ძირითადი ჯგუფი %s მომხმარებლისათვის\n&quot;
++&quot; ჯერ მომხმარებელი უნდა მოაშოროთ&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;ვაგდებ ჯგუფს: „%s“&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;სრული სახელი:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;მომხმარებელი:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;პაროლი:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;გაიმეორეთ პაროლი:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;შესასვლელი გარსი:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;ჯგუფის სახელი:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;გთხოვთ მომხმარებლისათვის სულ ცოტა ერთი ჯგუფი მაინც ამოირჩიოთ&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;გთხოვთ მიუთითოთ წელი, თვე და რიცხვი \n&quot;
++&quot; ანგარიშის ვადის გასვლისათვის&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;გთხოვთ პაროლის ხანგრძლივობასთან დაკავშირებული ყველა ველი შეავსოთ\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;«%s» მომხმარებელს მათი ძირითადი ჯგუფიდან ვერ მოაშორებთ&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;პირადი უჯრა:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;მომხმარებლის მონაცემები&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;ანგარიშის იმპორტირება ა&amp;ნგარიშზე&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;ანგარიშს ვადა გაუვა (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;მომხმარებლის ანგარიშის ჩაკეტვა&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;ანგარიშის მონაცემები&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;მომხმარებელმა ბოლოს პაროლი შეცვალა:&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;დააწესე პაროლის მოქმედების ვადა&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;ნებადართულ ცვლილებამდე დარჩენილი დღეები :&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;აუცილებელ ცვლილებამდე დარჩენილი დღეები :&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;ცვლილებამდე გაფრთხილების დღეები :&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;დღეები, სანამ ანგარიში აქტიურობას დაკარგავს :&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;პაროლის მონაცემები&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;ამოირჩიეთ ჯგუფები, რომლის წევრიც მომხმარებელი იქნება:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;ჯგუფის მონაცემები&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;ამოირჩიეთ მომხმარებლები, რომლებიც ამ ჯგუფში გაწევრიანდებიან :&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;ჯგუფის მომხმარებლები&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;ჯგუფების / მომხმარებლების შეცვლა&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;დახურვა&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;მომხმარებელთა მენეჯმენტი&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;სახელი ველი თავისუფალია. გთხოვთ მიუთითოთ სახელი&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++&quot;სახელი შეიძლება შეიცავდეს მხოლოდ პარატა ლათინურ ასოებს, ციფრებს და, „-“-ს და &quot;
++&quot;„_“-ს&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;სახელი ძალიან გრძელია&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;შეცდომა&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;უცნობი შეცდომა&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;შეცდომა `%s'-ის შექმნისას: %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;ავტორები:&quot;
+
+<a id="userdrake2tags1133pokopo">Added: userdrake2/tags/1.13.3/po/ko.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/ko.po (rev 0)
++++ userdrake2/tags/1.13.3/po/ko.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,1080 @@
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/ko.php3
++#
++# Korean translation of userdrake.
++# Copyright (C) 2001 Free Software Foundation, Inc.
++# Jaegeum Choe &lt;baedaron@hananet.net&gt;, 2001.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake2\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2002-09-02 18:34+0900\n&quot;
++&quot;Last-Translator: Jaegeum Cze &lt;baedaron@hanafos.com&gt;\n&quot;
++&quot;Language-Team: Korean &lt;baedaron@hananet.net&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=1; plural=0;\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;'%s' 읽는 중 오류가 발생했습니다: %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, fuzzy, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;사용자 제거&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;픽스맵 파일 적재 중 오류: %s&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++#, fuzzy
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;픽스맵 파일 적재 중 오류: %s&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;픽스맵 파일 적재 중 오류: %s&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;알 수 없는 오류&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;픽스맵 파일 적재 중 오류: %s&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++#, fuzzy
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;픽스맵 파일 적재 중 오류: %s&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;사용자 드레이크&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/동작(_A)&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/편집(_E)&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/삭제(_D)&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/옵션(_O)&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/파일(_F)&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/새로 고침 (_R)&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/종료(_Q)&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/사용자 더하기(_A)&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/그룹 더하기(_A)&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/도움말(_H)&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/버그 보고(_R)&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/정보(_A)...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;검색:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;거르게 적용&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;사용자&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;그룹&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, fuzzy, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;소속된 그룹들&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;사용자 이름&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;사용자 ID&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;전체 이름&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;로그인명&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;홈 디렉토리&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;상태&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;그룹 이름&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;그룹 ID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;그룹 구성원&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;사용자 추가&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;그룹 추가&quot;
++
++#: ../userdrake:197
++#, fuzzy, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;그룹 추가&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;편집&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;삭제&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;새로 고침&quot;
++
++#: ../userdrake:200
++#, fuzzy, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;사용자 목록&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;막힘&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;새 사용자 생성&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;홈 디렉토리 생성&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;홈 디렉토리:&quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:414
++#, fuzzy, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;이미 존재하는 이름입니다.&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;암호가 일치하지 않습니다&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:457
++#, fuzzy, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;그룹 보기&quot;
++
++#: ../userdrake:466
++#, fuzzy, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;사용자 추가&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;취소&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;확인&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:510
++#, fuzzy, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;소속된 그룹들&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;새 그룹 생성&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:641
++#, fuzzy, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;사용자 홈 디렉토리&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:651
++#, fuzzy, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;사용자 제거&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:702
++#, fuzzy, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;그룹 제거&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;전체 이름:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;로그인명:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;암호:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;열쇠글 확인:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;로그인 쉘:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;그룹 이름:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;홈 디렉토리:&quot;
++
++#: ../userdrake:988
++#, fuzzy, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;사용자 목록&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1031
++#, fuzzy, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;암호&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1102
++#, fuzzy, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;그룹 목록&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1107
++#, fuzzy, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;그룹&quot;
++
++#: ../userdrake:1127
++#, fuzzy, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;그룹&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;오류 발생&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;닫기&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1280
++#, fuzzy, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;사용자 이름&quot;
++
++#: ../userdrake:1282
++#, fuzzy, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;맨드리바 온라인&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;오류&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;알 수 없는 오류&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;'%s' 읽는 중 오류가 발생했습니다: %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;저자:&quot;
++
++#~ msgid &quot;Yes&quot;
++#~ msgstr &quot;예&quot;
++
++#~ msgid &quot;No&quot;
++#~ msgstr &quot;아니오&quot;
++
++#~ msgid &quot;Help&quot;
++#~ msgstr &quot;도움말&quot;
++
++#~ msgid &quot;Reload&quot;
++#~ msgstr &quot;다시 읽기&quot;
++
++#~ msgid &quot;Save&quot;
++#~ msgstr &quot;저장&quot;
++
++#~ msgid &quot;Exit&quot;
++#~ msgstr &quot;종료&quot;
++
++#~ msgid &quot;Settings&quot;
++#~ msgstr &quot;설정&quot;
++
++#~ msgid &quot;Show tools bar&quot;
++#~ msgstr &quot;도구 막대 보이기&quot;
++
++#~ msgid &quot;View users&quot;
++#~ msgstr &quot;사용자 보기&quot;
++
++#~ msgid &quot;Preferences&quot;
++#~ msgstr &quot;사용자 정의&quot;
++
++#~ msgid &quot;Ldap Server&quot;
++#~ msgstr &quot;LDAP 서버&quot;
++
++#~ msgid &quot;Save change&quot;
++#~ msgstr &quot;변경사항 저장&quot;
++
++#~ msgid &quot;Add&quot;
++#~ msgstr &quot;추가&quot;
++
++#~ msgid &quot;Edit user(s)&quot;
++#~ msgstr &quot;사용자 편집&quot;
++
++#~ msgid &quot;Remove&quot;
++#~ msgstr &quot;제거&quot;
++
++#~ msgid &quot;Edit group(s)&quot;
++#~ msgstr &quot;그룹 편집&quot;
++
++#~ msgid &quot;User id&quot;
++#~ msgstr &quot;사용자 ID&quot;
++
++#~ msgid &quot;Group id&quot;
++#~ msgstr &quot;그룹 ID&quot;
++
++#~ msgid &quot;Comments&quot;
++#~ msgstr &quot;설명&quot;
++
++#~ msgid &quot;Shell&quot;
++#~ msgstr &quot;쉘&quot;
++
++#~ msgid &quot;name&quot;
++#~ msgstr &quot;이름&quot;
++
++#~ msgid &quot;gid&quot;
++#~ msgstr &quot;GID&quot;
++
++#~ msgid &quot;passwd&quot;
++#~ msgstr &quot;암호&quot;
++
++#~ msgid &quot;users&quot;
++#~ msgstr &quot;사용자&quot;
++
++#~ msgid &quot;Parameters&quot;
++#~ msgstr &quot;인자&quot;
++
++#~ msgid &quot;General option&quot;
++#~ msgstr &quot;일반 옵션&quot;
++
++#~ msgid &quot;Edit accounts on a LDAP directory&quot;
++#~ msgstr &quot;LDAP 디렉토리상의 계정 편집&quot;
++
++#~ msgid &quot;Active autologin support&quot;
++#~ msgstr &quot;자동 로그인 지원&quot;
++
++#~ msgid &quot;User creation&quot;
++#~ msgstr &quot;사용자 생성&quot;
++
++#~ msgid &quot;Default shell:&quot;
++#~ msgstr &quot;기본 쉘:&quot;
++
++#~ msgid &quot;Default home dir:&quot;
++#~ msgstr &quot;기본 홈 디렉토리:&quot;
++
++#~ msgid &quot;Default face:&quot;
++#~ msgstr &quot;기본 얼굴:&quot;
++
++#~ msgid &quot;Default group:&quot;
++#~ msgstr &quot;기본 그룹:&quot;
++
++#~ msgid &quot;General&quot;
++#~ msgstr &quot;일반&quot;
++
++#~ msgid &quot;Don't show user with id less than 500&quot;
++#~ msgstr &quot;500 이하 ID의 사용자 숨기기&quot;
++
++#~ msgid &quot;User identifier&quot;
++#~ msgstr &quot;사용자 ID&quot;
++
++#~ msgid &quot;Default Group&quot;
++#~ msgstr &quot;기본 그룹&quot;
++
++#~ msgid &quot;Groups list&quot;
++#~ msgstr &quot;그룹 목록&quot;
++
++#~ msgid &quot;Users View&quot;
++#~ msgstr &quot;사용자 보기&quot;
++
++#~ msgid &quot;Group identifier&quot;
++#~ msgstr &quot;그룹 ID&quot;
++
++#~ msgid &quot;Groups View&quot;
++#~ msgstr &quot;그룹 보기&quot;
++
++#~ msgid &quot;/bin/bash&quot;
++#~ msgstr &quot;/bin/bash&quot;
++
++#~ msgid &quot;uid:&quot;
++#~ msgstr &quot;사용자 ID&quot;
++
++#~ msgid &quot;Comment:&quot;
++#~ msgstr &quot;설명:&quot;
++
++#~ msgid &quot;Shell:&quot;
++#~ msgstr &quot;쉘:&quot;
++
++#~ msgid &quot;Home dir:&quot;
++#~ msgstr &quot;홈 디렉토리:&quot;
++
++#~ msgid &quot;passwd:&quot;
++#~ msgstr &quot;암호:&quot;
++
++#~ msgid &quot;Retype passwd:&quot;
++#~ msgstr &quot;암호 확인:&quot;
++
++#~ msgid &quot;Identity&quot;
++#~ msgstr &quot;신원&quot;
++
++#~ msgid &quot;Available groups&quot;
++#~ msgstr &quot;유효한 그룹들&quot;
++
++#~ msgid &quot;Extended&quot;
++#~ msgstr &quot;확장&quot;
++
++#~ msgid &quot;About UserDrake&quot;
++#~ msgstr &quot;사용자드레이크란...&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;Userdrake is an application to add and\n&quot;
++#~ &quot;delete users on the Mageia\n&quot;
++#~ &quot;distribution.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;Userdrake now support ldap directory\n&quot;
++#~ &quot;support conformed to rfc2307bis.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;This application is under the GPL\n&quot;
++#~ &quot;license and is delived without\n&quot;
++#~ &quot;any warranty.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;You can get support at : \n&quot;
++#~ &quot;http://www.mandrakeexpert.com/&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;사용자드레이크는 리눅스맨드레이크 \n&quot;
++#~ &quot;배포판상에서 사용자를 추가하고 \n&quot;
++#~ &quot;제거하는 프로그램입니다.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;사용자드레이크는 이제 LDAP 데릭토리를 지원하며,\n&quot;
++#~ &quot;RFC2307BIS를 따릅니다.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;이 프로그램은 GPL 사용자 계약서를 \n&quot;
++#~ &quot;따르며,어떠한 보증도 없이 \n&quot;
++#~ &quot;배포됩니다.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;http://www.mandrakeexpert.com으로 버그를 \n&quot;
++#~ &quot;보고할 수 있습니다.&quot;
++
++#~ msgid &quot;Name:&quot;
++#~ msgstr &quot;이름:&quot;
++
++#~ msgid &quot;gid:&quot;
++#~ msgstr &quot;GID:&quot;
++
++#~ msgid &quot;Not in group&quot;
++#~ msgstr &quot;소속되지 않은 그룹들&quot;
++
++#~ msgid &quot;Quit userdrake?&quot;
++#~ msgstr &quot;사용자드레이크를 종료합니까?&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;You have made changes\n&quot;
++#~ &quot;since the last save.\n&quot;
++#~ &quot;Do you really want to quit\n&quot;
++#~ &quot;userdrake?&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;마지막으로 저장한 이후,\n&quot;
++#~ &quot;새로운 변경사항이 있습니다.\n&quot;
++#~ &quot;정말로 사용자드레이크를 \n&quot;
++#~ &quot;종료하시겠습니까?&quot;
++
++#~ msgid &quot;Enter new passwd&quot;
++#~ msgstr &quot;새 암호 입력&quot;
++
++#~ msgid &quot;new passwd:&quot;
++#~ msgstr &quot;새 암호:&quot;
++
++#~ msgid &quot;Change&quot;
++#~ msgstr &quot;변경&quot;
++
++#~ msgid &quot;Change face&quot;
++#~ msgstr &quot;얼굴 변경&quot;
++
++#~ msgid &quot;Set passwd&quot;
++#~ msgstr &quot;암호 설정&quot;
++
++#~ msgid &quot;User autologin&quot;
++#~ msgstr &quot;사용자 자동로그인&quot;
++
++#~ msgid &quot;UserDrake - Error&quot;
++#~ msgstr &quot;사용자드레이크 - 오류&quot;
++
++#~ msgid &quot;couldn't find blue color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;/usr/lib/X11/rgb.txt 파일에서 파란색을 찾을 수 없습니다.&quot;
++
++#~ msgid &quot;Select the image to use&quot;
++#~ msgstr &quot;이미지를 선택하세요.&quot;
++
++#~ msgid &quot;Custom...&quot;
++#~ msgstr &quot;사용자 정의...&quot;
++
++#~ msgid &quot;couldn't find grey color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;/usr/lib/X11/rgb.txt 파일에서 회색을 찾을 수 없습니다.&quot;
++
++#~ msgid &quot;couldn't find black color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;/usr/lib/X11/rgb.txt 파일에서 검정색을 찾을 수 없습니다.&quot;
++
++#~ msgid &quot;login empty&quot;
++#~ msgstr &quot;로그인명이 비어 있습니다.&quot;
++
++#~ msgid &quot;This login already exists on the system&quot;
++#~ msgstr &quot;이 로그인명은 이미 시스템에 존재합니다.&quot;
++
++#~ msgid &quot;The login is similar to a name's group&quot;
++#~ msgstr &quot;로그인명이 이름 집합과 유사합니다.&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;User id already in use&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;이미 사용중인 사용자 ID&quot;
++
++#~ msgid &quot;User id already in use&quot;
++#~ msgstr &quot;이미 사용중인 사용자 ID&quot;
++
++#~ msgid &quot;name empty&quot;
++#~ msgstr &quot;이름이 비어 있습니다.&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;Group id already in use&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;%s:\n&quot;
++#~ &quot;이미 사용중인 그룹 ID&quot;
++
++#~ msgid &quot;Group id already in use&quot;
++#~ msgstr &quot;이미 존재하는 그룹 ID입니다.&quot;
++
++#~ msgid &quot;Couldn't find pixmap file: %s&quot;
++#~ msgstr &quot;픽스맵 파일을 찾을 수 없습니다: %s&quot;
++
++#~ msgid &quot;%s: the file %s is busy (%s present)\n&quot;
++#~ msgstr &quot;%s: %s 파일이 사용 중입니다(%s가 존재함)\n&quot;
++
++#~ msgid &quot;%s: can't link %s: %s\n&quot;
++#~ msgstr &quot;%s: %s를 링크할 수 없습니다: %s\n&quot;
++
++#~ msgid &quot;%s: can't unlock %s: %s (your changes are still in %s)\n&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;%s: %s를 잠금해제할 수 었습니다:%s (변경사항은 여전히 %s에 있습니다)\n&quot;
++
++#~ msgid &quot;Error in stat on tmp files when i try to unlock lib\n&quot;
++#~ msgstr &quot;lib 잠금 해제시 임시 파일 상태에 오류가 있었습니다.\n&quot;
++
++#~ msgid &quot;%s: no changes made\n&quot;
++#~ msgstr &quot;%s: 변경사항은 무시되었습니다\n&quot;
++
++#~ msgid &quot;Select LDAP Directory&quot;
++#~ msgstr &quot;LDAP 디렉토리 선택&quot;
++
++#~ msgid &quot;Server address:&quot;
++#~ msgstr &quot;서버 주소:&quot;
++
++#~ msgid &quot;Search base:&quot;
++#~ msgstr &quot;검색 기반:&quot;
++
++#~ msgid &quot;Bind DN:&quot;
++#~ msgstr &quot;DN 바인딩:&quot;
++
++#~ msgid &quot;Connection Type :&quot;
++#~ msgstr &quot;접속 유형:&quot;
++
++#~ msgid &quot;ssl&quot;
++#~ msgstr &quot;SSL&quot;
++
++#~ msgid &quot;Validate&quot;
++#~ msgstr &quot;유효화&quot;
++
++#~ msgid &quot;Test&quot;
++#~ msgstr &quot;테스트&quot;
++
++#~ msgid &quot;cannot change ldap version to 3: %s&quot;
++#~ msgstr &quot;LDAP 버전 3로 변경할 수 없습니다: %s&quot;
++
++#~ msgid &quot;cannot connect to the ldap server\n&quot;
++#~ msgstr &quot;LDAP 서버에 접속할 수 없습니다.\n&quot;
++
++#~ msgid &quot;cannot bind to the ldap server, %d\n&quot;
++#~ msgstr &quot;LDAP 서버에 바인딩할 수 없습니다, %d\n&quot;
++
++#~ msgid &quot;Cannot bind to ldap server&quot;
++#~ msgstr &quot;LDAP 서버에 바인딩할 수 없습니다.&quot;
++
++#~ msgid &quot;cannot save because the cannot connect to the ldap server&quot;
++#~ msgstr &quot;LDAP 서버에 접속할 수 없으므로 저장 할 수 없습니다.&quot;
++
++#~ msgid &quot;cannot relock lib&quot;
++#~ msgstr &quot;lib를 재잠금 할 수 없습니다.&quot;
+
+<a id="userdrake2tags1133pokupo">Added: userdrake2/tags/1.13.3/po/ku.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/ku.po (rev 0)
++++ userdrake2/tags/1.13.3/po/ku.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,757 @@
++# translation of userdrake-ku.po to Kurdish
++# This file is distributed under the same license as the PACKAGE package.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
++# Kadir Dilsi, 2004.
++# Erdal Ronahi &lt;erdal.ronahi@gmail.com&gt;, 2005.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-ku\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2005-10-09 01:23+0200\n&quot;
++&quot;Last-Translator: Erdal Ronahi &lt;erdal.ronahi@gmail.com&gt;\n&quot;
++&quot;Language-Team: Kurdish &lt;gnu-ku-wergerandin@lists.sourceforge.net&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Poedit-Language: Kurdî\n&quot;
++&quot;X-Poedit-Country: Kurdistan\n&quot;
++&quot;X-Poedit-SourceCharset: utf-8\n&quot;
++&quot;X-Generator: KBabel 1.10\n&quot;
++&quot;Plural-Forms: nplurals=2; plural= n != 1\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Çewte xwendine `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Çewte Afirandine `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Çewta Rêşkirin `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Çewta afirandina spool mail \n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Çewta afirandina spool mail \n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Çewta afirandina spool mail \n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;çewtek nezan&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Çewta afirandina spool mail \n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Çewta rêşkirina spool mail.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Dakişandina Bikarhener û Grup... Kerema xwe bisekinin&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageia Amurata Rêvebiriya Bikarhenerên&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Çalakî&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Biguherîne&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Pakijkirin&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Bijartin&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/Bikarhênerên sîstemê _fîltre bike&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Dosya&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Taze bike&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Derkeve&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Bikarhêner Zêde bike&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/_Kom Zêde bike&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Alîkarî&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Rapor kirina çewtîyan&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Derheq...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Bigere:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Fîltre Bixwaze&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Bikarhêner&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Kom&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Bikarhêner û kom&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Nave bikarhêner&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ID ya bikarhêner&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Koma Yekemîn&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Nav û paşnav&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Têketina Shell &quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Cîhe Malê&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Statu&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Nave kome&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ID ya kome&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Endamên Kom&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Bikarhêner qeyd bike&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Li sistema bikarhenerek biserve bike&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Kome qeyd bike&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Li sistema Kom biserve bike&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Biguhere&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Yên nîşandayî biguhere&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Pakij bike&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Yên nîşandayî pakij bike&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Rojanê bike&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Lîste rojanê bike&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Girtî&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Demborî bû&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Li îkonên bitikînin ji bo guhartina vî&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Bikarhênerêkî nû qeyd bike&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Cîhe Malê çebike&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Cîhe Malê&quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Ji bo bikarhenerên komek taybetî bafirinin&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Nasnameya bikarhener bi desti bikarbînin&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;&quot;
++&quot;Bikarhener bi rastî heye, kerema xwe re Nave Bikarhenera din hilbijerin&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Şîfre Nelihev e&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Ev şîfre pir hêsani ye\n&quot;
++&quot;Şîfreya rast dive ku bibe mezintire 6 karekter &quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Bikarhenera Uid &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Afirandina bikarhenerek bi UID bîçûktir e ji 500 ev bêpêşniyaz bû.\n&quot;
++&quot;Hûn bi rastî dixwazin ev bikin?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Cihkırına %s re koma 'bikarhener'&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Afirandina koma nû: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Biserkirina bikarhener: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Betal&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Dibe&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Kîjan kom?&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Li koma jêbûyî biserve bike&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Li koma 'bikarhener' biservebike&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Komek bi vî nav rastî jêbûyî ye. Hûn çi dixwazin çêbikin ?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Komeka nû çebike&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;ID ya kome bi xwe binivsînim&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Kom bi rastî jêbûyî ye, kerema xwe re Nave Kome din hilbijerin&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;Kom Gid &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Afirandina komek bi yek GID bîçûktir e ji 500 ev bêpêşniyaz bû.\n&quot;
++&quot;Hûn bi rastî dixwazin ev bikin?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Biservekirina kom %s&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Dosyan jî pakij bikin û nekin?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Paqijkirina bikarhener %s\n&quot;
++&quot;Jê cihê xebata tevgeran paşê hene\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Pakijkirina Mala: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Pakijkirina posteya e-maila :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Pakijkirina bikarhênere: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Hûn bi rastî dixwazin vê kome pakij bikin? : %s&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s ev komek yekemîn e ji bo bikarhenera %s\n&quot;
++&quot;Bikarhenera pêşîn paqij bike&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Pakijkirina koma: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Nav û paşnav:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Nave bikarhêner:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;şîfre:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;şîfre dîsa binivsînê&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Têketina Shell :&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Nave kome:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;Bikarhênerên kome&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Hûn nikarin bikarhêner '%s' pakij bikin ji koma yekemîn&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Mal:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Daneya Bikarhener&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Demboriya hesabe mumkin&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Demborî hesab (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Hesabê bikarhêner kîlît bike&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Agahderiya hesab&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Guherandina şîfreya bikarhênera dawî&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Dîroka xelasbûna şîfre&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Guherandin rojan berê bi ser ve bûn &quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Dixwazina guherandina rojan berê:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Agahiya Şîfre&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Daneya Kom&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Ji bo teva kirina bikarheneren re kom hilbijerin :&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Bikarheneren Kom&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Kom / Bikarhêner biguhêre&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Bigre&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Bikarhêner manajer&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;Nav dive ku tene hewandina jer harfen latini, numare, `-' û `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Nav pir dirêj e&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;çewt&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;çewtek nezan&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Çewte Afirandine `%s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Nîvîskar&quot;
+
+<a id="userdrake2tags1133pokypo">Added: userdrake2/tags/1.13.3/po/ky.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/ky.po (rev 0)
++++ userdrake2/tags/1.13.3/po/ky.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,756 @@
++# translation of userdrake-ky.po to Kirghiz
++# Copyright (C) 2004 Free Software Foundation, Inc.
++# Timur Jamakeev &lt;ztimur@mail.ru&gt;, 2004.
++# Ilyas Bakirov &lt;just_ilyas@yahoo.com&gt;, 2008, 2009
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-ky\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2009-12-25 23:18+0600\n&quot;
++&quot;Last-Translator: Ilyas Bakirov &lt;just_ilyas@yahoo.com&gt;\n&quot;
++&quot;Language-Team: Kyrgyz\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.3\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Окуу учурундагы ката `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Түзүү учурундагы ката `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Жоготуу учурундагы ката `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Почта түзүүдөгү ката.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Почта түзүүдөгү ката.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Почта түзүүдөгү ката.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;белгисиз ката&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Почта түзүүдөгү ката.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Почтаны жоготуудагы ката.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Колдонуучулар жана группалар жүктөлүүдө... Күтө туруңуз&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageia Колдонуучуларды башкаруу аспабы&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;/_Конок колдонуучуну орнотуу&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;/_Конок колдонуучуну алып салуу&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Аракеттер&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Оңдоо&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Өчүрүү&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Параметрлер&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Системалык колдонуучуларды иргөө&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Файл&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Жаңылоо&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Чыгуу&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/Колдонуучуну _кошуу&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/_Группаны кошуу&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Жардам&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Баг жөнүндө отчет&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Программа жөнүндө...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Издөө:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Иргөөнү колдонуу&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Колдонуучулар&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Группалар&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Колдонуучулар жана группалар&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Колдонуучунун аты&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Колдонуучунун IDси&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Негизги группа&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Толук аты&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Кирүү чөйрөсү&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Өздүк каталог&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Статусу&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Группанын аты&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Группанын IDси&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Группанын мүчөлөрү&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Колдонуучуну кошуу&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Системага жаңы колдонуучуну кошуу&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Группаны кошуу&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Системага группаны кошуу&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Оңдоо&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Тандалган сапты оңдоо&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Өчүрүү&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Тандалган сапты өчүрүү&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Жаңылоо&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Тизмени жаңылоо&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Бекитилген&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Иштөө мөөнөтүнүн аягы&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Муну өзгөртүү үчүн иконканы басыңыз&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Жаңы колдонуучуну жаратуу&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Өздүк каталогду түзүү&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Өздүк каталог:&quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Колдонуучу үчүн өздүк группа түзүү&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Колдонуучунун IDсин өзүңүз көрсөтүңүз&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Колдонуучу агдагачан бар, башка колдонуучу атын тандаңыз&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Пароль туура эмес&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Бул пароль өтө эле жөнөкөй. \n&quot;
++&quot; Жакшы пароль 6 символдон көп болот&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Колдонуучунун Uidи 500 дөн кичине&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;UIDи 500 дөн кичине болгон колдонуучуну түзүү сунуш кылынбайт.\n&quot;
++&quot; Ушундай кылууга макулсузбу?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;%s 'users' группасына кошулууда&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Жаңы группа жаратылууда: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Колдонуучу кошулууда: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Которуу устасы&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;Сиз которуу устасы менен Windows ырастоолоруңузду жана документтериңизди &quot;
++&quot;Mageia системасына которуу каалайсызбы?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Калтыруу&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Ok&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Группа тандаңыз&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Бар группага кошуу&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;'users' группасына кошуу&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Мындай аттуу группа алдагачан бар. Сиз эмне кылгыңыз келет?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Жаңы группа жаратуу&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Группанын IDсин өзүңүз көрсөтүңүз&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Группа алдгачан бар, башка группа атын тандаңыз&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; Группанын Gidи &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;GIDи 500дөн кем группа түзүү сунушталбайт.\n&quot;
++&quot; Ушундай кылууга макулсузбу?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Группа кошулууда: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Файлдарды өчүрөйүнбү же жокпу?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;%s колдонуучусу өчүрүлүүдө\n&quot;
++&quot; Жана да төмөнкүдөй аракеттер жасалууда\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Өздүк каталогду өчүрүү: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Почта ящигин өчүрүү :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Колдонуучу алып салынууда: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Чынында эле %s группасын өчүргүңүз келеби?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s, %s колдонуучусу үчүн негизги группа\n&quot;
++&quot; Адегенде колдонуучуну алып салыңыз&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Группа алынып салынууда: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Толук аты:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Логин:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Пароль:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Паролду тактоо:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Кирүү чөйрөсү:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Группанын аты:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Колдонуучу үчүн жок дегенде бир группа тандаңыз&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Эсеп жазмасынын аяктоо мөөнөтүнүн\n&quot;
++&quot; Жылын, Айын жана Күнүн көрсөтүңүз &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Паролдун жашы үчүн бардык талааларды толтуруңуз\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;'%s' колдонуучусу негизги группасынан алып салынбайт&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Өздүк каталог:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Колдонуучунун даректери&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Эсеп жазылмасынын аяктоочулук мөөнөтүн иштетүү&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Эсеп жазылмасынын аякталышы (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Колдонуучунун эсеп жазылмасын жабуу&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Эсеп жазылмасы жөнүндө информация&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Колдонуучу акыркы жолу паролун алмаштырганы : &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Паролдун мөөнөтү аяктоочулугун киргизүү&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Канча күндөн соң өзгөртүүгө уруксат : &quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Канча күндөн соң өзгөртүүнү талап кылуу : &quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Канча күн мурда өзгөртүүнү эскертүү :&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Эсеп жазмасын жабууга чейинки күн :&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Пароль жөнүндөгү информация&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Колдонуучу мүчө болуучу группаны тандаңыз:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Группанын даректери&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Бул группага бириктирүү үчүн колдонуучуну тандаңыз :&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Колдонуучулар группасы&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Гурппаларды / Колдонуучуларды оңдоо&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Жаңылыштык орун алды:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Жабуу&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Copyright (C) %s Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Колдонуучуларды башкаруу&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Нурлан Бөрүбаев &lt;nurlan@tamga.info&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Аты талаасы толтурулган эмес, ат бериңиз&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++&quot;Ат, жалаң гана кичине латын тамгалары, сандар, '-' жана '_' турушу керек&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Ат өтө эле узун&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Ката&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;белгисиз ката&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Түзүү учурундагы ката `%s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Авторлор: &quot;
+
+<a id="userdrake2tags1133polopo">Added: userdrake2/tags/1.13.3/po/lo.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/lo.po (rev 0)
++++ userdrake2/tags/1.13.3/po/lo.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,751 @@
++# translation of userdrake.pot to Lao
++# Copyright (C) 2004 Free Software Foundation, Inc.
++# Thinnaphavong SIPHACHANH &lt;laonuke@yahoo.com&gt;, 2001, 2004.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-lo\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2005-01-13 14:57+0700\n&quot;
++&quot;Last-Translator: Thinnaphavong SIPHACHANH &lt;laonuke@yahoo.com&gt;\n&quot;
++&quot;Language-Team: lo &lt;lo@li.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;ເກີດການຜິດພາດເວລາອ່ານ `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;ເກີດການຜິດພາດເວລາສ້າງ `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;ເກີດການຜິດພາດເວລາລຶບ `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;ເກີດການຜິດພາດເວລາສ້າງ mail spool.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;ເກີດການຜິດພາດເວລາສ້າງ mail spool.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;ເກີດການຜິດພາດເວລາສ້າງ mail spool.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;ເກີດການຜິດພາດແບບບໍ່ຮູ້ສາເຫດ&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;ເກີດການຜິດພາດເວລາສ້າງ mail spool.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;ເກີດການຜິດພາດເວລາລຶບ mail spool.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;ກຳລັງອ່ານຄ່າ ຜູ້ໃຊ້ ແລະ ກຸ່ມ... ກະລຸນາຖ້າ&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;ເຄື່ອງມືຈັດການຜູ້ໃຊ້ສຳລັບ Mageia&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_ແບບການເຮັດວຽກ&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_ແກ້ໄຂ&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_ລຶບ&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_ທາງເລືອກ&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_ຕອງລະບົບຜູ້ໃຊ້&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_ໄຟລ໌&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_ອ່ານຄ່າໃຫມ່&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_ອອກ&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_ຕື່ມຜູ້ໃຊ້&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/_ຕື່ມກຸ່ມ&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_ຊ່ວຍເຫລືອ&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_ລາຍງານຂໍ້ຜິດພາດ&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_ກ່ຽວກັບ...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;ຊອກຫາ:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;ໃຊ້ລະບົບຕອງ&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;ຜູ້ໃຊ້&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;ກຸ່ມ&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;ຊື່ຜູ້ໃຊ້&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ລະຫັດຜູ້ໃຊ້&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;ກຸ່ມທຳອິດ&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;ຊື່ແທ້&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;ລ໋ອກອິນແຊວ&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Home Directory&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;ສະຖານະ&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;ຊື່ກຸ່ມ&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ລະຫັດກຸ່ມ&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;ສະມາຊິກກຸ່ມ&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;ຕື່ມຜູ້ໃຊ້&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;ຕື່ມຜູ້ໃຊ້ເຂົ້າລະບົບ&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;ຕື່ມກຸ່ມ&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;ຕື່ມກຸ່ມເຂົ້າລະບບົ&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;ແກ້ໄຂ&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;ແກ້ໄຂແຖວທີ່ເລືອກ&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;ລຶບ&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;ລຶບແຖວທີ່ເລືອກ&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;ອ່ານຄ່າໃຫມ່&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;ອ່ານຄ່າລາຍການໃຫມ່&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;ລ໋ອກ&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;ຫມົດອາຍຸ&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;ກົດທີ່ຮູບເພື່ອປ່ຽນແປງ&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;ສ້າງຜູ້ໃຊ້ໃຫມ່&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;ສ້າງ Home Directory&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Home Directory: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;ສ້າງກຸ່ມສ່ວນໂຕສຳລັບຜູ້ໃຊ້&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;ໃສ່ລະຫັດຜຸ້ໃຊ້ເອົາເອງ&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;ຊື່ນີ້ມີແລ້ວ, ກະລຸນາໃຊ້ຊື່ອື່ນ&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;ລະຫັດຜ່ານບໍ່ຖືກຕ້ອງ&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;ລະຫັດຜ່ານນີ້ງ່າຍເກີນໄປ. \n&quot;
++&quot; ລະຫັດຜ່ານທີ່ດີຕ້ອງມີຫລາຍກວ່າ 6 ໂຕອັກສອນ&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;ລະຫັດຜູ້ໃຊ້ຫນ້ອຍກວ່າ 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;ບໍ່ແນະນຳໃຫ້ສ້າງຜູ້ໃຊ້ທີ່ລະຫັດຕ່ຳກວ່າ 500\n&quot;
++&quot;ເຈົ້າແນ່ໃຈບໍ່ວ່າເຈົ້າຕ້ອງການສ້າງ?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;ຕື່ມ %s ໃສ່ກຸ່ມ 'users' &quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;ສ້າງກຸ່ມໃຫມ່: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;ຕື່ມຜູ້ໃຊ້: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;ຍົກເລີກ&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;ຕົກລົງ&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;ລະຫັດ: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;ເລືອກກຸ່ມ&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;ຕື່ມເຂົ້າກຸ່ມທີ່ມີຢູ່ແລ້ວ&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;ຕື່ມໃສ່ກຸ່ມ 'users'&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;ຊື່ກຸ່ມນີ້ມີຢູ່ແລ້ວ. ເຈົ້າຈະເຮັດຈັ່ງໃດຕໍ່ໄປ?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;ສ້າງກຸ່ມໃຫມ່&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;ໃສ່ລະຫັດກຸ່ມເອົາເອງ&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;ຊື່ກຸ່ມນີ້ມີຢູ່ແລ້ວ, ກະລຸນາເລືອກຊື່ອື່ນ&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;ລະຫັດກຸ່ມຫນ້ອຍກວ່າ 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;ບໍ່ແນະນຳໃຫ້ສ້າງກຸ່ມຜູ້ໃຊ້ທີ່ມີລະຫັດຕ່ຳກວ່າ 500\n&quot;
++&quot;ເຈົ້າແນ່ໃຈບໍ່ວ່າເຈົ້າຕ້ອງການເຮັດແບບນັ້ນ?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;ຕື່ມກຸ່ມ: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;ລະຫັດກຸ່ມ: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;ລຶບໄຟລ໌ຫລືບໍ່?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;ກຳລັງລຶບຜູ້ໃຊ້ %s\n&quot;
++&quot; ແລະກຳລັງເຮັດສິ່ງຕໍ່ໄປນີ້\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;ລຶບ Home Directory: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;ລຶບ ຕູ້ຈົດຫມາຍ :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;ລຶບຜູ້ໃຊ້: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;ເຈົ້າຫມັ້ນໃຈບໍ່ວ່າຈະລຶບກຸ່ມ %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s ແມ່ນກຸ່ມທຳອິດຂອງ %s\n&quot;
++&quot; ລຶບຜູ້ໃຊ້ນີ້ກ່ອນ&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;ລຶບກຸ່ມ: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;ຊື່ແທ້:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;ລ໋ອກອິນ:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;ລະຫັດຜ່ານ:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;ຢືນຢັນລະຫັດຜ່ານ:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;ລ໋ອກອິນແຊວ:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;ຊື່ກຸ່ມ:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;ກະລຸນາເລືອກຢ່າງຫນ້ອຍຫນຶ່ງກຸ່ມສຳລັບຜູ້ໃຊ້&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;ກະລຸນາກຳນົດປີ, ເດືອນ ແລະ ມື້ \n&quot;
++&quot;ທີ່ບັນຊີຈະຫມົດອາຍຸ&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;ກະລຸນາຕື່ມໃສ່ທຸກຫ້ອງໃນອາຍຸຂອງລະຫັດລັບ\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;ເຈົ້າບໍ່ສາມາດລຶບຜຸ້ໃຊ້ '%s' ຈາກກຸ່ມທຳອິດຂອງເຂົາ&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;ເຮືອນ:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;ຂໍ້ມູນຜູ້ໃຊ້&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;ໃຊ້ການຈັບເວລາການຫມົດອາຍຸຂອງບັນຊີ&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;ບັນຊີຫມົດອາຍຸ (ປປປປ-ດດ-ທທ):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;ລ໋ອກບັນຊີຜູ້ໃຊ້&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;ຂໍ້ມູນບັນຊີ&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;ຜູ້ໃຊ້ປ່ຽນລະຫັດຜ່ານຄັ້ງຫລ້າສຸດຕອນ: &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;ໃຊ້ກຳນົດມື້ຫມົດອາຍຸຂອງລະຫັດຜ່ານ&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;ຈຳນວນມື້ກ່ອນທີ່ຈະປ່ຽນໄດ້:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;ຈຳນວນມື້ກ່ອນປ່ຽນທີ່ຕ້ອງການ:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;ຈຳນວນມື້ທີ່ຈະເຕືອນກ່ອນປ່ຽນ:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;ຈຳນວນມື້ກ່ອນທີ່ບັນຊີຈະບໍ່ເຮັດວຽກ&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;ຂໍ້ມູນລະຫັດຜ່ານ&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;ເລືອກກຸ່ມທີ່ຜູ້ໃຊ້ຈະເປັນສະມາຊິກ&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;ຂໍ້ມູນກຸ່ມ&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;ເລືອກຜູ້ໃຊ້ສຳລັບກຸ່ມນີ້:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;ກຸ່ມຜູ້ໃຊ້&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;ແກ້ໄຂກຸ່ມ / ຜູ້ໃຊ້&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;ອອກ&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;ການບໍລິຫານຜູ້ໃຊ້&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;ບໍ່ມີຊື່ ກະລຸນາໃສ່ຊື່ແນ່&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;ຊື່ຕ້ອງເປັນໂຕຫນັງສືລາຕິນແບບໂຕນ້ອຍ, ໂຕເລກ, `-' ແລະ `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;ຊື່ຍາວໂພດ&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;ເກີດການຜິດພາດ&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;ເກີດການຜິດພາດແບບບໍ່ຮູ້ສາເຫດ&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;ເກີດການຜິດພາດເວລາສ້າງ `%s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;ຜູ້ແຕ່ງ: &quot;
+
+<a id="userdrake2tags1133poltpo">Added: userdrake2/tags/1.13.3/po/lt.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/lt.po (rev 0)
++++ userdrake2/tags/1.13.3/po/lt.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,1034 @@
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/lt.php3
++#
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) 2001 Free Software Foundation, Inc.
++# Mykolas Norvaišas &lt;myka@centras.lt&gt;, 2001.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-lt\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2005-08-11 16:47+0200\n&quot;
++&quot;Last-Translator: Arvydas Svirka &lt;arvydas@arvis.lt&gt;\n&quot;
++&quot;Language-Team: \n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Poedit-Language: Lithuanian\n&quot;
++&quot;X-Poedit-Country: LITHUANIA\n&quot;
++&quot;Plural-Forms: nplurals=3; plural=(n%10==1 &amp;&amp; n%100!=11 ? 0 : n%10&gt;=2 &amp;&amp; (n%&quot;
++&quot;100&lt;10 || n%100&gt;=20) ? 1 : 2);\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Klaida skaitant `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Klaida sukuriant `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Klaida pašalinant `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Pašto sankaupos sukūrimo klaida.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Pašto sankaupos sukūrimo klaida.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Pašto sankaupos sukūrimo klaida.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;nežinoma klaida&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Pašto sankaupos sukūrimo klaida.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Pašto sankaupos ištrynimo klaida.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Įkraunami vartotojai ir grupės... Palaukite&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageia vartotojų valdymo įrankis&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Veiksmai&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Taisyti&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Pašalinti&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Pasirinktys&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Filtruoti sistemos vartotojus&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Byla&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Atnaujinti&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/I_šeiti&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/Pridėti _vartotoją&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Pridėti _grupę&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Pagalba&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Pranešti apie klaidą&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Apie...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Ieškoti:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Pritaikyti filtrą&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Vartotojai&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Grupės&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Vartotojai ir grupės&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Vartotojo vardas&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Vartotojo ID&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Pirminė grupė&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Vardas, pavardė&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Prisijungimo apvalkalas&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Pradinis katalogas&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Būsena&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Grupės pavadinimas&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Grupės ID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Grupės nariai&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Pridėti vartotoją&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Įtraukti sistemos vartotoją&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Pridėti grupę&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Į sistemą įtraukti grupę&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Taisyti&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Keisti išrinktą eilutę&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Ištrinti&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Ištrinti išrinktą eilutę&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Atnaujinti&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Atnaujinti sąrašą&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Užrakinta&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Pasibaigęs&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Pakeitimui spragtelėkite ant kriptogramos&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Sukurti naują vartotoją&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Sukurti pradinį katalogą&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Pradinis katalogas: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Vartotojui sukurti privačią grupę&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Vartotojo ID nurodyti rankiniu būdu&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Toks vartotojas jau yra, parinkite kitą vartotojo vardą&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Slaptažodžiai neatitinka&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Slaptažodis per daug paprastas. \n&quot;
++&quot; Tinkamas slaptažodis turėtų būti ne trumpesnis kaip 6 simbolių&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Vartotojo Uid yra &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Naujo vartotojo, kurio UID mažiau kaip 500, sukūrimas nerekomenduojamas.\n&quot;
++&quot; Ar tikrai norite tai padaryti?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;%s įkeliamas į grupę 'vartotojai'&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Sukuriama nauja grupė: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Įtraukiamas vartotojas: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Atšaukti&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Gerai&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Pasirinkite grupę&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Įtraukti į esančią grupę&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Įtraukti į grupę 'vartotojai'&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Grupė tokiu vardu jau yra. Ką norėtumėte daryti?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Sukurti naują grupę&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Grupės ID nurodyti rankiniu būdu&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Tokia grupė jau yra, pasirinkite kitą grupės vardą&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; Grupės Gid yra &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Naujo vartotojo, kurio GID mažiau kaip 500, sukūrimas nerekomenduojamas.\n&quot;
++&quot; Ar tikrai norite tai padaryti?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Įtraukiama grupė: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Ištrinti bylas ar ne?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Ištrinams vartotojas %s\n&quot;
++&quot; Taip pat įvykdyti sekančius veiksmus\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Ištrinti pradinį katalogą: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Ištrinti pašto dėžutę: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Pašalinamas vartotojas: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Ar tikrai norite ištrinti grupę %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s yra pirminė %s vartotojo grupė\n&quot;
++&quot; Pirmiausia pašalinkite vartotoją&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Pašalinama grupė: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Vardas, pavardė:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Pasijungimas:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Slaptažodis:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Patvirtinkite slaptažodį:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Prisijungimo apvalkalas:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Grupės pavadinimas:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Vartotojui parinkite nors vieną grupę&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Nurodykite metus, mėnesį ir dieną, \n&quot;
++&quot; kada baigsis abonento galiojimas&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Užpildykite visus slaptažodžio laiko laukelius\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Jūs negalite pašalinti vartotojo '%s' iš jo pirminės grupės&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Pradinis:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Vartotojo duomenys&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Įgalinti ribotą abonento galiojimo laiką&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Abonentas galioja iki (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Užrakinti vartotojo abonentą&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Abonento informacija&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Paskutinis vartotojo pakeistas slaptažodis čia: &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Įgalinti ribotą slaptažodžio galiojimo laiką&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Po kiek dienų leidžiami pakeitimai:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Po kiek dienų reikalaujama pakeitimų:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Prieš kiek dienų įspėjama iki pakeitimo:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Po keik dienų abonentas nebegalios:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Slaptažodžio informacija&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Parinkite grupę, kurios nariu bus vartotojas:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Grupės duomenys&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Išrinkite vartotojus šiai grupei:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Grupės vartoptojai&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Tvarkyti grupes / vartotojus&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Įvyko klaida&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Uždaryti&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Vartotojų valdymas&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Vardo laukelis yra tuščias, įrašykite vardą&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++&quot;Vardas turi būti sudarytas iš mažųjų lotyniškų raidžių, skaičių, `-' ir `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Vardas per ilgas&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Klaida&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;nežinoma klaida&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Klaida sukuriant `%s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Autoriai: &quot;
++
++#~ msgid &quot;Yes&quot;
++#~ msgstr &quot;Taip&quot;
++
++#~ msgid &quot;No&quot;
++#~ msgstr &quot;Ne&quot;
++
++#~ msgid &quot;Help&quot;
++#~ msgstr &quot;Pagalba&quot;
++
++#~ msgid &quot;Reload&quot;
++#~ msgstr &quot;Vėl įkelti&quot;
++
++#~ msgid &quot;Save&quot;
++#~ msgstr &quot;Išsaugoti&quot;
++
++#~ msgid &quot;Exit&quot;
++#~ msgstr &quot;Išeiti&quot;
++
++#~ msgid &quot;Settings&quot;
++#~ msgstr &quot;Nuostatos&quot;
++
++#~ msgid &quot;Show tools bar&quot;
++#~ msgstr &quot;Parodyti įrankių juostą&quot;
++
++#~ msgid &quot;View users&quot;
++#~ msgstr &quot;Rodyti vartotojus&quot;
++
++#~ msgid &quot;Preferences&quot;
++#~ msgstr &quot;Nustatymai&quot;
++
++#~ msgid &quot;Save change&quot;
++#~ msgstr &quot;Išsaugoti pakeitimą&quot;
++
++#~ msgid &quot;Add&quot;
++#~ msgstr &quot;Pridėti&quot;
++
++#~ msgid &quot;Edit user(s)&quot;
++#~ msgstr &quot;Redaguoti vartotoją(us)&quot;
++
++#~ msgid &quot;Remove&quot;
++#~ msgstr &quot;Pašalinti&quot;
++
++#~ msgid &quot;Edit group(s)&quot;
++#~ msgstr &quot;Redaguoti grupę(es)&quot;
++
++#~ msgid &quot;User id&quot;
++#~ msgstr &quot;Vartotojo id&quot;
++
++#~ msgid &quot;Group id&quot;
++#~ msgstr &quot;Grupės id&quot;
++
++#~ msgid &quot;Comments&quot;
++#~ msgstr &quot;Komentarai&quot;
++
++#~ msgid &quot;Shell&quot;
++#~ msgstr &quot;Aplinka&quot;
++
++#~ msgid &quot;name&quot;
++#~ msgstr &quot;vardas&quot;
++
++#~ msgid &quot;gid&quot;
++#~ msgstr &quot;gid&quot;
++
++#~ msgid &quot;passwd&quot;
++#~ msgstr &quot;slapt&quot;
++
++#~ msgid &quot;users&quot;
++#~ msgstr &quot;vartotojai&quot;
++
++#~ msgid &quot;Parameters&quot;
++#~ msgstr &quot;Parametrai&quot;
++
++#~ msgid &quot;Active autologin support&quot;
++#~ msgstr &quot;Aktyvus automatinio pasijungimo palaikymas&quot;
++
++#~ msgid &quot;Default shell:&quot;
++#~ msgstr &quot;Aplinka pagal nutylėjimą:&quot;
++
++#~ msgid &quot;Default home dir:&quot;
++#~ msgstr &quot;Namų katalogas pagal nutylėjimą:&quot;
++
++#~ msgid &quot;Default face:&quot;
++#~ msgstr &quot;Veidas pagal nutylėjimą:&quot;
++
++#~ msgid &quot;Default group:&quot;
++#~ msgstr &quot;Grupė pagal nutylėjimą:&quot;
++
++#~ msgid &quot;General&quot;
++#~ msgstr &quot;Bendras&quot;
++
++#~ msgid &quot;Don't show user with id less than 500&quot;
++#~ msgstr &quot;Nerodyti vartotojų kurių id mažesnė negu 500&quot;
++
++#~ msgid &quot;User identifier&quot;
++#~ msgstr &quot;Vartotojo indentifikatorius&quot;
++
++#~ msgid &quot;Default Group&quot;
++#~ msgstr &quot;Grupė pagal nutylėjimą&quot;
++
++#~ msgid &quot;Groups list&quot;
++#~ msgstr &quot;Grupių sąrašas&quot;
++
++#~ msgid &quot;Users View&quot;
++#~ msgstr &quot;Vartotojo vaizdas&quot;
++
++#~ msgid &quot;Group identifier&quot;
++#~ msgstr &quot;Grupės indentifikatorius&quot;
++
++#~ msgid &quot;Groups View&quot;
++#~ msgstr &quot;Grupių vaizdas&quot;
++
++#~ msgid &quot;/bin/bash&quot;
++#~ msgstr &quot;/bin/bash&quot;
++
++#~ msgid &quot;uid:&quot;
++#~ msgstr &quot;uid:&quot;
++
++#~ msgid &quot;Comment:&quot;
++#~ msgstr &quot;Komentaras:&quot;
++
++#~ msgid &quot;Shell:&quot;
++#~ msgstr &quot;Aplinka:&quot;
++
++#~ msgid &quot;Home dir:&quot;
++#~ msgstr &quot;Namų katalogas:&quot;
++
++#~ msgid &quot;passwd:&quot;
++#~ msgstr &quot;slapt&quot;
++
++#~ msgid &quot;Retype passwd:&quot;
++#~ msgstr &quot;Pakartoti slapt:&quot;
++
++#~ msgid &quot;Identity&quot;
++#~ msgstr &quot;Identifikacija&quot;
++
++#~ msgid &quot;Available groups&quot;
++#~ msgstr &quot;Galimos grupės&quot;
++
++#~ msgid &quot;Extended&quot;
++#~ msgstr &quot;Išplėstinis&quot;
++
++#~ msgid &quot;About UserDrake&quot;
++#~ msgstr &quot;Apie UserDrake&quot;
++
++#~ msgid &quot;Name:&quot;
++#~ msgstr &quot;Vardas:&quot;
++
++#~ msgid &quot;gid:&quot;
++#~ msgstr &quot;gid:&quot;
++
++#~ msgid &quot;Not in group&quot;
++#~ msgstr &quot;Ne grupėje&quot;
++
++#~ msgid &quot;Quit userdrake?&quot;
++#~ msgstr &quot;Išeiti iš userdrake?&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;You have made changes\n&quot;
++#~ &quot;since the last save.\n&quot;
++#~ &quot;Do you really want to quit\n&quot;
++#~ &quot;userdrake?&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Po paskutinio išsaugojimo\n&quot;
++#~ &quot;tu padarei pakeitimų.\n&quot;
++#~ &quot;Ar tikrai nori išeiti iš\n&quot;
++#~ &quot;userdrake?&quot;
++
++#~ msgid &quot;Enter new passwd&quot;
++#~ msgstr &quot;Įveskite naują slapt&quot;
++
++#~ msgid &quot;new passwd:&quot;
++#~ msgstr &quot;naujas slapt:&quot;
++
++#~ msgid &quot;Change&quot;
++#~ msgstr &quot;Pasikeitimas&quot;
++
++#~ msgid &quot;Change face&quot;
++#~ msgstr &quot;Pakeisti veidą&quot;
++
++#~ msgid &quot;Set passwd&quot;
++#~ msgstr &quot;Nustatyti slapt&quot;
++
++#~ msgid &quot;User autologin&quot;
++#~ msgstr &quot;Vartotojo autopasijungimas&quot;
++
++#~ msgid &quot;couldn't find blue color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;negaliu rasti mėlynos spalvos /usr/lib/X11/rgb.txt byloje&quot;
++
++#~ msgid &quot;couldn't find grey color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;negaliu rasti pilkos spalvos /usr/lib/X11/rgb.txt byloje&quot;
++
++#~ msgid &quot;couldn't find black color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;negaliu rasti juodos spalvos /usr/lib/X11/rgb.txt byloje&quot;
++
++#~ msgid &quot;login empty&quot;
++#~ msgstr &quot;tuščias pasijungimas&quot;
++
++#~ msgid &quot;This login already exists on the system&quot;
++#~ msgstr &quot;Šis pasijungimo vardas sistemoje jau yra&quot;
++
++#~ msgid &quot;The login is similar to a name's group&quot;
++#~ msgstr &quot;Pasijungimo vardas yra tokspats kaip grupės&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;User id already in use&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;Vartotojo id jau naudojamas&quot;
++
++#~ msgid &quot;User id already in use&quot;
++#~ msgstr &quot;Vartotojo id jau naudojamas&quot;
++
++#~ msgid &quot;name empty&quot;
++#~ msgstr &quot;tuščias vardas&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;Group id already in use&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;Grupės id jau naudojamas&quot;
++
++#~ msgid &quot;Group id already in use&quot;
++#~ msgstr &quot;Grupės id jau naudojamas&quot;
++
++#~ msgid &quot;Couldn't find pixmap file: %s&quot;
++#~ msgstr &quot;Negaliu rasti pixmap bylos: %s&quot;
++
++#~ msgid &quot;%s: the file %s is busy (%s present)\n&quot;
++#~ msgstr &quot;%s: byla %s yra užimta (%s egzistuoja)\n&quot;
++
++#~ msgid &quot;%s: can't link %s: %s\n&quot;
++#~ msgstr &quot;%s: negaliu sujungti %s: %s\n&quot;
++
++#~ msgid &quot;%s: can't unlock %s: %s (your changes are still in %s)\n&quot;
++#~ msgstr &quot;%s: negaliu atrakinti %s: %s (jūsų pakeitimai vis dar %s)\n&quot;
++
++#~ msgid &quot;Error in stat on tmp files when i try to unlock lib\n&quot;
++#~ msgstr &quot;Stat klaida tmp bylose, kai bandžiau atrakinti biblioteką\n&quot;
++
++#~ msgid &quot;%s: no changes made\n&quot;
++#~ msgstr &quot;%s: nepakeistas\n&quot;
++
++#~ msgid &quot;The passwords string aren't the same!&quot;
++#~ msgstr &quot;Slaptažodžiai yra skirtingi!&quot;
++
++#~ msgid &quot;cannot launch UserDrake&quot;
++#~ msgstr &quot;negaliu startuoti UserDrake&quot;
++
++#~ msgid &quot;You must be root to use userdrake&quot;
++#~ msgstr &quot;Jūs turite būti root norėdami naudoti userdrake&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;Cannot lock user lib,\n&quot;
++#~ &quot;file /etc/ptmp or /etc/gtmp exist&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Negaliu užrakinti vartotojo lib,\n&quot;
++#~ &quot;bylos /etc/ptmp arba /etc/gtmp jau egzistuoja&quot;
++
++#~ msgid &quot;What do you want to show in user list?&quot;
++#~ msgstr &quot;Ką jūs norite rodyti vartotojų sąraše?&quot;
++
++#~ msgid &quot;What do you want to show in group list?&quot;
++#~ msgstr &quot;Ką jūs norite rodyti grupių sąraše?&quot;
++
++#~ msgid &quot;/bin/ash&quot;
++#~ msgstr &quot;/bin/ash&quot;
++
++#~ msgid &quot;/bin/csh&quot;
++#~ msgstr &quot;/bin/csh&quot;
++
++#~ msgid &quot;/bin/zsh&quot;
++#~ msgstr &quot;/bin/zsh&quot;
+
+<a id="userdrake2tags1133poltgpo">Added: userdrake2/tags/1.13.3/po/ltg.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/ltg.po (rev 0)
++++ userdrake2/tags/1.13.3/po/ltg.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,764 @@
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/lv.php3
++#
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) 2000 Free Software Foundation, Inc.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake2\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2007-09-27 21:52+0200\n&quot;
++&quot;Last-Translator: Māris Laureckis &lt;marisl@e-no.lv&gt;\n&quot;
++&quot;Language-Team: Latgalian &lt;marisl@e-no.lv&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Kliuda nūlosūt `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Kliuda izveidojūt `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Kliuda dziešūt `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Kliuda izveidojūt posta spūli (buferi).\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Kliuda izveidojūt posta spūli (buferi).\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Kliuda izveidojūt posta spūli (buferi).\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;nazynoma kliuda&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Kliuda izveidojūt posta spūli (buferi).\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Kliuda dziešūt posta spūli (buferi).\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Īsaluodej lītuotuoji i grupys... Lyudzu pagaidit&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Maņdryva Linuks Lītuotuoju Puorvaļdeibys reiks&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Darbeibys&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Redigēt&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Dzēst&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Opcejis&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Filtrēt sistemys lītuotuojus&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Fails&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Atjaunynuot&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Izīt&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Davīnuot lītuotuoju&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Davīnuot _grupu&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Paleidzeiba&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Ziņuot par kliudu&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Par...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Meklēt:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Pīlītuot filtru&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Lītuotuoji&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Grupys&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Lītuotuoji i grupys&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Lītuotuojvuords&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Lītuotuoja ID&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Primaruo grupa&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Pylns vuords&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Dasasliegšonuos čaula&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Sātys katalogs&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Statuss&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Grupys nūsaukums&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Grupys ID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Grupys daleibnīki&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Davīnuot lītuotuoju&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Davīnuot lītuotuoju sistemai&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Davīnuot grupu&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Davīnuot grupu sistemai&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Redigēt&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Redigēt izvālātū ryndu&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Dzēst&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Dzēst izvālatū ryndu&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Atjaunuot&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Atjaunuot sarokstu&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Blokeits&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Nūvacuojs&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Uzklikškinojit iz ikonys, lai tū nūmaineitu&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Izveiduot jaunu lītuotuoju&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Izveiduot sātys katalogu&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Sātys katalogs:&quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Izveiduot lītuotuojam privātu grupu&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Manuali nūruodeit lītuotuoja ID&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Itaids lītuotuojs jau eksistej, izavielejit cytu lītuotuojvuordu&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Parolis nasakreit&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Itei parole ir puoruok vīnkuorša. \n&quot;
++&quot;Lobom parolem juobyun vairuok kai 6 simbolim&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Lītuotuoja Uid ir &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Izveiduot lītuotuoju, kura UID ir mozuoks par 500, nav īteicams.\n&quot;
++&quot;Voi teišom jius gribit tū dareit?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Pīvīnoj %s grupai 'users'&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Teik radeita jauna grupa: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Teik davīnuots lītuotuojs: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Migrācejis paleigs&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;Voi jius gribit palaist migrācejis paleigu, lai importēt Windows dokumentus &quot;
++&quot;i īstatiejumus jiusu Maņdryva Linuks disribucejā?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Atceļt&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Labi&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID:&quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Izavielejit grupu&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Davīnuot asūšai grupai&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Davīnuot grupai 'users'&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Grupa ar itaidu nūsaukumu jau eksistej. Kū jius gribit dareit?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Izveiduot jaunu grupu&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Manuali nūruodeit grupys ID&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Itaida grupa jau eksistej, izavielejit cytu grupys nūsaukumu&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;Grupys Gid ir &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Izveiduot grupu, kurys GID ir mazuoks par 500, nav īteicams.\n&quot;
++&quot;Voi tīšom gribit tū dareit?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Teik davīnuota grupa: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID:&quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Dzēst failus voi nā?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Dziešūt lītuotuoju %s\n&quot;
++&quot; tiks veiktys ari šaidys darbeibys\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Dzēst sātys katalogu: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Izdzēst postkasti: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Teik dzāsts lītuotuojs: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Voi teišom gribit dzēst grupu %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s ir lītuotuoja %s primaruo grupa\n&quot;
++&quot; Vyspyrms izdziesit lītuotuoju&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Teik nūdzāsta grupa: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Pylns vuords:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Slāgvuords:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Parole:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Apstyprynuot paroli:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Dasasliegšonuos čaula:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Grupys nūsaukums:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Izavielejit vysmoz vīnu grupu lītuotuojam&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Nūruodit godu, mienesi i dīnu \n&quot;
++&quot; konta nūvacuošonai&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Lyudzu aizpiļdit vysus laukumus deļ parolis vacuma\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Jius navarit izdzēst lītuotuoju '%s' nu juo primaruos grupys&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Sāta:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Lītuotuoja dati&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Īslēgt konta nūvacuošonu&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Konts nūvacoj (GGGG-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Blokēt lītuotuoja kontu&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Konta informaceja&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Lītuotuojs pādejū reizi mainēja paroli:&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Īslēgt parolis nūvacuošonu&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Pyrms cik dīnom teik atļauta nūmaiņa:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Pyrms cik dīnom teik pīpraseita nūmaiņa:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Pyrms cik dīnom teik breidynuots par nūmaini:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Dīnu skaits da konta atsliegšonai:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Parolis informaceja&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Izavielejit grupys, kurom pīderēs lītuotuojs:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Grupys dati&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Izavielejit lītuotuojus, kū davīnuot itai grupai:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Grupys lītuotuoji&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Redigēt Grupys / Lītuotuoji&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Atkluota kliuda&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Aizvērt&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Autortīseibys (C) %s Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Lītuotuoju Puorvaļdeiba&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Maņdryva Linuks&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Māris Laureckis &lt;marisl@e-no.lv&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Vuorda lauks ir tukšs, lyudzu īvodit vuordu&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;Vuordā var byut tikai mozī latiņu alfabeta burti, cipari, '-' i '_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Vuords ir puoruok garš&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Kliuda&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;nazynoma kliuda&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Kliuda izveidojūt `%s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Autori:&quot;
++
++#~ msgid &quot;Choice&quot;
++#~ msgstr &quot;Izviele&quot;
++
++#~ msgid &quot;Yes&quot;
++#~ msgstr &quot;Da&quot;
++
++#~ msgid &quot;No&quot;
++#~ msgstr &quot;Nā&quot;
+
+<a id="userdrake2tags1133polvpo">Added: userdrake2/tags/1.13.3/po/lv.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/lv.po (rev 0)
++++ userdrake2/tags/1.13.3/po/lv.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,773 @@
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/lv.php3
++#
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) 2000 Free Software Foundation, Inc.
++# Vitauts Stočka &lt;vit@dau.lv&gt;, 2003.
++# Viesturs Lacis &lt;viescha@gmail.com&gt;, 2005.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake2\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2005-11-09 16:59+0200\n&quot;
++&quot;Last-Translator: Viesturs Lacis &lt;viescha@gmail.com&gt;\n&quot;
++&quot;Language-Team: Latvian &lt;ll10nt@listes.murds.lv&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=3; plural=(n%10==1 &amp;&amp; n%100!=11 ? 0 : n != 0 ? 1 : &quot;
++&quot;2);\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Kļūda, nolasot `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Kļūda, izveidojot `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Kļūda, novācot `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Kļūda, izveidojot pasta buferi.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Kļūda, izveidojot pasta buferi.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Kļūda, izveidojot pasta buferi.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;nezināma kļūda&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Kļūda, izveidojot pasta buferi.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Kļūda, dzēšot pasta buferi,\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Ielādēju lietotājus un grupas... Lūdzu, uzgaidiet&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageia Lietotāju Pārvaldības Rīks&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Darbības&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Rediģēt&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Dzēst&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Opcijas&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Filtrēt sistēmas lietotājus&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Fails&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Atjaunot&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Iziet&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Pievienot lietotāju&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Pievienot _grupu&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Palīdzība&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Ziņot par kļūdu&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Par...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Meklēt:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Noteikt filtru&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Lietotāji&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Grupas&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Lietotājvārds&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Lietotāja ID&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Primārā grupa&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Pilns vārds&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Čaula&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Sākumkatalogs&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Statuss&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Grupas nosaukums&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Grupas ID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Grupas dalībnieki&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Pievienot lietotāju&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Pievienot sistēmai lietotāju&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Pievienot grupu&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Pievienot sistēmai grupu&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Rediģēt&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Rediģēt izvēlēto rindu&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Dzēst&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Dzēst izvēlēto rindu&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Atjaunot&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Atjaunot sarakstu&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Bloķēts&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Novecojis&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Uzklikšķiniet uz ikonas, lai to nomainītu&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Izveidot jaunu lietotāju&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Izveidot sākumkatalogu&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Sākumkatalogs:&quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Izveidot lietotājam privātu grupu&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Manuāli norādīt lietotāja ID&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Šāds lietotājs jau eksistē, izvēlieties citu lietotājvārdu&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Paroles nesakrīt&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Šī parole ir pārāk vienkārša. \n&quot;
++&quot;Labā parolē jābūt vairāk nekā 6 simboliem&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Lietotāja Uid &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Izveidot lietotāju, kura UID ir mazāks par 500, nav ieteicams.\n&quot;
++&quot;Vai tiešām jūs vēlaties to darīt?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Pievienoju %s grupai 'users'&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Izveidoju jaunu grupu: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Pievienoju lietotāju: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Atsaukt&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Labi&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID:&quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Izvēlieties grupu&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Pievienot eksistējošai grupai&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Pievienot grupai 'users'&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Grupa ar šādu nosaukumu jau eksistē. Ko jūs vēlaties darīt?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Izveidot Jaunu Grupu&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Manuāli norādīt grupas ID&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Šāda grupa jau eksistē, izvēlieties citu grupas nosaukumu&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;Grupas Gid ir &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Izveidot grupu, kuras GID ir mazāks par 500, nav ieteicams.\n&quot;
++&quot;Vai tiešām vēlaties to darīt?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Pievienoju grupu: %s&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID:&quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Dzēst failus vai nē?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Dzēšot lietotāju %s\n&quot;
++&quot;tiks veiktas arī šādas darbības\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Dzēst sākumkatalogu: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Dzēst pastkasti: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Novācu lietotāju: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Vai tiešām vēlaties dzēst grupu %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s ir lietotāja %s primārā grupa\n&quot;
++&quot;Vispirms izdzēsiet lietotāju&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Novācu grupu: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Pilns vārds:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Vārds:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Parole:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Apstiprināt paroli:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Čaula:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Grupas nosaukums:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Lūdzu, izvēlieties vismaz vienu grupu lietotājam&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Lūdzu norādiet gadu, mēnesi un dienu\n&quot;
++&quot;konta novecošanai&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Lūdzu, norādiet visus laukus paroles novecošanai\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Jūs nevarat izslēgt lietotāju '%s' no viņa primārās grupas&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Sākums:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Lietotāja dati&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Atļaut konta novecošanu&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Konts noveco (GGGG-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Bloķēt lietotāja kontu&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Konta informācija&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Lietotājs pēdējo reizi mainīja paroli:&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Atļaut paroles novecošanu&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Dienas, līdz tiek atļauta nomaiņa:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Dienas līdz nomaiņas pieprasīšanai:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Dienas, cik brīdināt pirms nomaiņas:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Dienas, pirms konts kļūst neaktīvs:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Paroles informācija&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Izvēlieties grupas, kurām piederēs lietotājs:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Grupas dati&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Izvēlieties lietotājus, ko pievienot šai grupai:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Grupas lietotāji&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Rediģēt grupas / lietotājus&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Atklāta kļūda&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Aizvērt&quot;
++
++#: ../userdrake:1277
++#, fuzzy, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Autortiesības © 2003 Mandriva.&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Lietotāju pārvaldība&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Vārda lauks ir tukšs, lūdzu ievadiet vārdu&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;Vārdā var būt tikai mazie latīņu alfabēta burti, cipari,`-' un `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Vārds ir pārāk garš&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Kļūda&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;nezināma kļūda&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Kļūda, izveidojot `%s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Autori:&quot;
++
++#~ msgid &quot;Yes&quot;
++#~ msgstr &quot;Jā&quot;
++
++#~ msgid &quot;No&quot;
++#~ msgstr &quot;Nē&quot;
++
++#, fuzzy
++#~ msgid &quot;Delete files or not&quot;
++#~ msgstr &quot;Dzēst izvēlēto rindu&quot;
++
++#~ msgid &quot;Warning : Deleting User&quot;
++#~ msgstr &quot;Brīdinājums: Lietotāja dzēšana&quot;
++
++#~ msgid &quot;Warning : Deleting Group&quot;
++#~ msgstr &quot;Brīdinājums: Grupas dzēšana&quot;
+
+<a id="userdrake2tags1133pomkpo">Added: userdrake2/tags/1.13.3/po/mk.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/mk.po (rev 0)
++++ userdrake2/tags/1.13.3/po/mk.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,758 @@
++# translation of userdrake-mk.po to Macedonian
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/mk.php3
++#
++# This file is distributed under the same license as the PACKAGE package.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
++# Danko Ilik &lt;danko@mindless.com&gt;, 2003.
++# Зоран Димовски &lt;decata@mt.net.mk&gt;, 2004.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-mk\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2004-08-11 16:38+0200\n&quot;
++&quot;Last-Translator: Зоран Димовски &lt;decata@mt.net.mk&gt;\n&quot;
++&quot;Language-Team: Macedonian &lt;ossm-members@hedona.on.net.mk&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.3\n&quot;
++&quot;Plural-Forms: nplurals=2; plural= n==1 || n%10==1 ? 0 : 1\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Грешка при вчитување на `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Грешка при создавање `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Грешка при отстранување `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Грешка при содавање spool на поштата.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Грешка при содавање spool на поштата.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Грешка при содавање spool на поштата.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;непозната грешка&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Грешка при содавање spool на поштата.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Грешка при бришење на spool на поштата.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Зе вчитуваат Корисниците и Групите... Ве молиме почекајте&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageia Алатка за раководење со корисници&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Акции&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Уреди&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Бриши&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Опции&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Филтрирај ги системските корисници&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Датотека&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Освежи&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Напушти&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Додади корисник&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Додади _група&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Помош&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Пријави грешка&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_За...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Барај:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Примени филтер&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Корисници&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Групи&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Корисници и групи&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Корисничко име&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Кориснички ID&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Основна група&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Цело име&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Школка за логирање&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Домашен директориум&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Статус&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Име на групата&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Групна ID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Членови на групата&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Додади корисник&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Додади корисник на системот&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Додади група&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Додади група на системот&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Уреди&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Уреди го избраниот ред&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Отстрани&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Отстрани го избраниот ред&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Освежи&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Освежи ја листата&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Заклучено&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Изминато&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Притиснете на иконата за да ја смените&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Создади нов корисник&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Создади домашен директориум&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Домашен директориум: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Созадади приватна група за корисникот&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Рачно специфицирајте кориснички ID&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Корисникот веќе постои, ве молиме изберете друго корисничко име&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Лозинките не се совпаѓаат&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Оваа лозинка е премногу едноставна. \n&quot;
++&quot; Добрите лозинки треба да се повеќе од 6 карактери&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Корисничкиот Uid е помал од 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Содавањето на корисник со UID помалку од 500 не е препорачано.\n&quot;
++&quot;Дали сигурно сакате да го сторите ова?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Сместувам %s во 'корисничка' група&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Создавам нова група: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Додавам корисник: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Откажи&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Во ред&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Избери група&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Додади на постоечката група&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Додади на 'корисничката' група&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Веќе постои група со ова име. Што сакате да направите?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Создади нова група&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Рачно специфицирај ја групната ID&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Групата веќе постои, ве молиме изберете друго име за групата&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; Групното Gid е помало од 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Создавањето на група со GID помала од 500 не е препорачано.\n&quot;
++&quot; Дали сигурно сакате да го сторите ова?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Додавам група: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Дали да се избришат датотеките?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Отстранувам корисник %s\n&quot;
++&quot; Истотака, изврши ги следниве акции\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Избриши го домашниот директориум: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Избриши го поштенското сандаче &gt;/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Отстранувам корисник: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Дали навистина сакате да ја избришете групата %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s е основна група за корисникот %s\n&quot;
++&quot; Најпрво отстранете го корисникот&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Ја отстранувам групата: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Цело име:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Логин:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Лозинка:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Потврди ја лозинката:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Школка за логирање:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Име на групата:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Ве молиме изберете најмалку една група за корисникот&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Ве молиме специфицирајте Година, месец и ден \n&quot;
++&quot; за истекување на сметката &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Ве молиме повторно пополнете ги сите полина во лозинката\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Не можете да го отстраните корисникот '%s' од неговата основна група&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Дома:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Кориснички податоци&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Овозможи истекување на сметката&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Сметката истекува (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Заклучи ја корисничката сметка&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Информации за сметката&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Корисникот последен пат ја сменил лозинката на : &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Овозможи истекување на лозинката&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Денови пред дозвола за изменување :&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Денови пред потреба за измена :&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Предупредувачки денови пред измена :&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Денови пред деактивирање на сметката :&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Информации за лозинката&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Изберете на кои групи корисникот ќе биде член:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Податоци за групата&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Изберете ѓи корисниците кои ќе се приклучат на групата:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Корисници на групата&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Уреди Групи / Корисници&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Се случи грешка&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Затвори&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Авторски права (C) %s од „Mandriva“&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Раководење со корисници&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Зоран Димовски - zoki.dimovski@gmail.com\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Полето за име е празно. Ве молиме внесете име&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;Името мора да содржи само мали латински букви, бројки, `-' и `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Името е предолго&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Грешка&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;непозната грешка&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Грешка при создавање `%s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Автори: &quot;
+
+<a id="userdrake2tags1133pomnpo">Added: userdrake2/tags/1.13.3/po/mn.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/mn.po (rev 0)
++++ userdrake2/tags/1.13.3/po/mn.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,1075 @@
++# translation of userdrake.po to Mongolian
++# This file is distributed under the same license as the userdrake package.
++# Copyright (C) 2003
++# Sanlig Badral &lt;badral@openmn.org&gt;, 2003
++# Khurelbaatar Lkhagavsuren &lt;hujii247@yahoo.com&gt;, 2003
++# &lt;badral@openmn.org&gt;, 2003.
++#
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2003-12-23 11:34+0100\n&quot;
++&quot;Last-Translator: Sanlig Badral &lt;badral@openmn.org&gt;\n&quot;
++&quot;Language-Team: Mongolian &lt;openmn-linux@lists.sf.net&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#: ../USER/USER.xs:86
++#, fuzzy, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;pixmap файлыг ачаалж байхад алдаа: %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, fuzzy, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Хэрэглэгч (дийг) устгах&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;pixmap файлыг ачаалж байхад алдаа: %s&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++#, fuzzy
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;pixmap файлыг ачаалж байхад алдаа: %s&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;pixmap файлыг ачаалж байхад алдаа: %s&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;тодорхойгүй алдаа&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;pixmap файлыг ачаалж байхад алдаа: %s&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++#, fuzzy
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;pixmap файлыг ачаалж байхад алдаа: %s&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Хэрэглэгчийн драке&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Үйлдлүүл&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Зарах&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Устгах&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Сонголтууд&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Файл&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/Сэргээх&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Гарах&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Хэрэглэгч нэмэх&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/_Бүлэг нэмэх&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Тусламж&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Гажигийг мэдээлэх&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/Т_ухай...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Хайлт:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Хэрэглэгчид&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Бүлгүүд&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, fuzzy, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Бүлгүүдэд&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Хэрэглэгчийн нэр&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Хэрэглэгчийн ID&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Бүтэн нэр&quot;
++
++#: ../userdrake:187
++#, fuzzy, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Нэвтрэх&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Гэр лавлах&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Төлөв&quot;
++
++#: ../userdrake:194
++#, fuzzy, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Бүлэг&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Группын ID&quot;
++
++#: ../userdrake:194
++#, fuzzy, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Бүлгүүд&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Хэрэглэгч нэмэх&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Бүлэг нэмэх&quot;
++
++#: ../userdrake:197
++#, fuzzy, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Шинэ бүлэг нэмэх&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Засах&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Устгах&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Сэргээх&quot;
++
++#: ../userdrake:200
++#, fuzzy, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Хэрэглэгчдийн жагсаалт&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Түгжээтэй санах ой&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Гэр лавлах үүсгэх&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Гэр лавлах: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:414
++#, fuzzy, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Энэ нэр хэдийн системд орсон байна&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Нууц үгс ижил биш байна&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:457
++#, fuzzy, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Бүлгүүдийг харах&quot;
++
++#: ../userdrake:466
++#, fuzzy, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Хэрэглэгч нэмэх&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Хүчингүй&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Ок&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:510
++#, fuzzy, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Бүлгүүдийг харах&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:546
++#, fuzzy, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Үндсэн бүлэг&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:581
++#, fuzzy, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Бүлэг нэмэх&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:641
++#, fuzzy, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Ldap хавтас сонгох&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:651
++#, fuzzy, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Хэрэглэгч (дийг) устгах&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:702
++#, fuzzy, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Бүлэг (үүд)-ийг устгах&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Бүтэн нэр:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Нэвтрэх нэр:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Нууц үг:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Нууц үгээ бататгах:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Нэвтрэх тушаалын мөр:&quot;
++
++#: ../userdrake:820
++#, fuzzy, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Бүлэг:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Эзний гэр:&quot;
++
++#: ../userdrake:988
++#, fuzzy, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Хэрэглэгчдийн жагсаалт&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1031
++#, fuzzy, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Нууц үг&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1102
++#, fuzzy, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Бүлгийн жагсаалт&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1107
++#, fuzzy, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Бүлгүүд&quot;
++
++#: ../userdrake:1127
++#, fuzzy, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Хэрэглэгч (дийг) засах&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Хаах&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1280
++#, fuzzy, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Хэрэглэгчийн нэр&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Мандрива Линукс&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Алдаа&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;тодорхойгүй алдаа&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;pixmap файлыг ачаалж байхад алдаа: %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Зохиогчид: &quot;
++
++#~ msgid &quot;Yes&quot;
++#~ msgstr &quot;Тийм&quot;
++
++#~ msgid &quot;No&quot;
++#~ msgstr &quot;Үгүй&quot;
++
++#~ msgid &quot;Reload&quot;
++#~ msgstr &quot;Дахин ачаалах&quot;
++
++#~ msgid &quot;Save&quot;
++#~ msgstr &quot;Хадгалах&quot;
++
++#~ msgid &quot;Exit&quot;
++#~ msgstr &quot;Гарах&quot;
++
++#~ msgid &quot;Settings&quot;
++#~ msgstr &quot;Тохируулгууд&quot;
++
++#~ msgid &quot;Show tools bar&quot;
++#~ msgstr &quot;Хэрэгсэлүүдийн хавтанг харуул&quot;
++
++#~ msgid &quot;View users&quot;
++#~ msgstr &quot;Хэрэглэгчидийг харах&quot;
++
++#~ msgid &quot;Preferences&quot;
++#~ msgstr &quot;Лавлахууд&quot;
++
++#~ msgid &quot;Ldap Server&quot;
++#~ msgstr &quot;Ldap сервер&quot;
++
++#~ msgid &quot;Save change&quot;
++#~ msgstr &quot;Өөрчлөлтийг хадгалах&quot;
++
++#~ msgid &quot;Add&quot;
++#~ msgstr &quot;Нэмэх&quot;
++
++#~ msgid &quot;Add a user&quot;
++#~ msgstr &quot;Шинэ хэрэглэгч нэмэх&quot;
++
++#~ msgid &quot;Remove&quot;
++#~ msgstr &quot;Устгах&quot;
++
++#~ msgid &quot;Edit group(s)&quot;
++#~ msgstr &quot;Бүлэг (үүд)-ийг засах&quot;
++
++#~ msgid &quot;User id&quot;
++#~ msgstr &quot;Хэрэглэгчийн ТТ&quot;
++
++#~ msgid &quot;Group id&quot;
++#~ msgstr &quot;Группийн ТТ&quot;
++
++#~ msgid &quot;Comments&quot;
++#~ msgstr &quot;Тайлбарууд&quot;
++
++#~ msgid &quot;Shell&quot;
++#~ msgstr &quot;Тушаалын мөр&quot;
++
++#~ msgid &quot;name&quot;
++#~ msgstr &quot;нэр&quot;
++
++#~ msgid &quot;gid&quot;
++#~ msgstr &quot;gid&quot;
++
++#~ msgid &quot;passwd&quot;
++#~ msgstr &quot;нууц үг&quot;
++
++#~ msgid &quot;users&quot;
++#~ msgstr &quot;хэрэглэгчид&quot;
++
++#~ msgid &quot;Parameters&quot;
++#~ msgstr &quot;Параметрүүд&quot;
++
++#~ msgid &quot;General option&quot;
++#~ msgstr &quot;Ерөнхий сонголт&quot;
++
++#~ msgid &quot;Edit accounts on a LDAP directory&quot;
++#~ msgstr &quot;LDAP лавлахад байгаа дансуудыг засах&quot;
++
++#~ msgid &quot;Active autologin support&quot;
++#~ msgstr &quot;Автоматаар нэвтрэхийг идэвхжүүлэх&quot;
++
++#~ msgid &quot;User creation&quot;
++#~ msgstr &quot;Хэрэглэгч үүсгэлт&quot;
++
++#~ msgid &quot;Default shell:&quot;
++#~ msgstr &quot;Үндсэн тушаалын мөр:&quot;
++
++#~ msgid &quot;Default home dir:&quot;
++#~ msgstr &quot;Эзний гэрийн үндсэн зам:&quot;
++
++#~ msgid &quot;Default face:&quot;
++#~ msgstr &quot;Үндсэн нүүр:&quot;
++
++#~ msgid &quot;Default group:&quot;
++#~ msgstr &quot;Үндсэн бүлэг:&quot;
++
++#~ msgid &quot;General&quot;
++#~ msgstr &quot;Ерөнхий&quot;
++
++#~ msgid &quot;Don't show user with id less than 500&quot;
++#~ msgstr &quot;500-аас бага ТТ бүхий хэрэглэгчийг битгий харуул&quot;
++
++#~ msgid &quot;User identifier&quot;
++#~ msgstr &quot;Хэрэглэгчийн тодорхойлогч&quot;
++
++#~ msgid &quot;Groups list&quot;
++#~ msgstr &quot;Бүлгүүддийн жагсаалт&quot;
++
++#~ msgid &quot;Users View&quot;
++#~ msgstr &quot;Хэрэглэгчдийн харагдац&quot;
++
++#~ msgid &quot;Group identifier&quot;
++#~ msgstr &quot;Бүлгийн тодорхойлогч&quot;
++
++#~ msgid &quot;Groups View&quot;
++#~ msgstr &quot;Бүлгүүдийн харагдац&quot;
++
++#~ msgid &quot;/bin/bash&quot;
++#~ msgstr &quot;/bin/bash&quot;
++
++#~ msgid &quot;uid:&quot;
++#~ msgstr &quot;uid:&quot;
++
++#~ msgid &quot;Comment:&quot;
++#~ msgstr &quot;Тайлбар:&quot;
++
++#~ msgid &quot;Shell:&quot;
++#~ msgstr &quot;Тушаалын мөр:&quot;
++
++#~ msgid &quot;Home dir:&quot;
++#~ msgstr &quot;Эзний гэрийн зам:&quot;
++
++#~ msgid &quot;passwd:&quot;
++#~ msgstr &quot;Нууц үг:&quot;
++
++#~ msgid &quot;Retype passwd:&quot;
++#~ msgstr &quot;Нууц үгээ дахин бич:&quot;
++
++#~ msgid &quot;Identity&quot;
++#~ msgstr &quot;Илэрхийлэгч&quot;
++
++#~ msgid &quot;Available groups&quot;
++#~ msgstr &quot;Боломжтой бүлгүүд&quot;
++
++#~ msgid &quot;Extended&quot;
++#~ msgstr &quot;Өргөтгөгдсөн&quot;
++
++#~ msgid &quot;About UserDrake&quot;
++#~ msgstr &quot;Хэрэглэгчийн драке-ийн тухай&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;Userdrake is an application to add and\n&quot;
++#~ &quot;delete users on the Mageia\n&quot;
++#~ &quot;distribution.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;Userdrake now support ldap directory\n&quot;
++#~ &quot;support conformed to rfc2307bis.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;This application is under the GPL\n&quot;
++#~ &quot;license and is delived without\n&quot;
++#~ &quot;any warranty.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;You can get support at : \n&quot;
++#~ &quot;http://www.mandrakeexpert.com/&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;\&quot;Хэрэглэгчийн драке\&quot; бол Мандраке \n&quot;
++#~ &quot;Линукс-д хэрэглэгч нэмэх болон устгахад \n&quot;
++#~ &quot;хэрэглэгддэг программ юм.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;\&quot;Хэрэглэгчийн драке\&quot; одоо ldap лавлахыг\n&quot;
++#~ &quot; rfc2307bis-ийн дагуу дэмждэг болсон. \n&quot;
++#~ &quot;Энэ программ нь GPL лицензтэй бөгөөд\n&quot;
++#~ &quot;энэ танд ямар нэгэн баталгаат үйлчилгээ\n&quot;
++#~ &quot;өгөхгүй.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;Та тусламж дэмжлэгийг \n&quot;
++#~ &quot;http://www.mandrakeexpert.com/\n&quot;
++#~ &quot;хаягаар авч болно.&quot;
++
++#~ msgid &quot;Name:&quot;
++#~ msgstr &quot;Нэр:&quot;
++
++#~ msgid &quot;gid:&quot;
++#~ msgstr &quot;gid:&quot;
++
++#~ msgid &quot;In group&quot;
++#~ msgstr &quot;Бүлгэд&quot;
++
++#~ msgid &quot;Not in group&quot;
++#~ msgstr &quot;Бүлгэд биш&quot;
++
++#~ msgid &quot;Quit userdrake?&quot;
++#~ msgstr &quot;Хэрэглэгчийн драке-ээс гарах уу?&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;You have made changes\n&quot;
++#~ &quot;since the last save.\n&quot;
++#~ &quot;Do you really want to quit\n&quot;
++#~ &quot;userdrake?&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Та хамгийн сүүлд хадгалсанаасаа\n&quot;
++#~ &quot;хойш өөрчлөлтүүд хийсэн байна. \n&quot;
++#~ &quot;Та үнэхээр \&quot;Хэрэглэгчийн драке\&quot;-аас\n&quot;
++#~ &quot;гарахыг хүсэж байна уу?&quot;
++
++#~ msgid &quot;Enter new passwd&quot;
++#~ msgstr &quot;Шинэ нууц үгээ оруул&quot;
++
++#~ msgid &quot;new passwd:&quot;
++#~ msgstr &quot;шинэ нууц үг&quot;
++
++#~ msgid &quot;Change&quot;
++#~ msgstr &quot;Өөрчлөх&quot;
++
++#~ msgid &quot;Change face&quot;
++#~ msgstr &quot;Нүүр өөрчлөх&quot;
++
++#~ msgid &quot;Set passwd&quot;
++#~ msgstr &quot;Нууц үг олгох&quot;
++
++#~ msgid &quot;User autologin&quot;
++#~ msgstr &quot;Хэрэглэгч автоматаар нэвтрэх&quot;
++
++#~ msgid &quot;UserDrake - Error&quot;
++#~ msgstr &quot;\&quot;Хэрэглэгчийн драке\&quot; - Алдаа&quot;
++
++#~ msgid &quot;couldn't find blue color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;/usr/lib/X11/rgb.txt файлд цэнхэр өнгө олж чадсангүй&quot;
++
++#~ msgid &quot;Select the image to use&quot;
++#~ msgstr &quot;Хэрэглэх зургаа сонго&quot;
++
++#~ msgid &quot;Custom...&quot;
++#~ msgstr &quot;Хэрэглэгчийн...&quot;
++
++#~ msgid &quot;couldn't find grey color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;/usr/lib/X11/rgb.txt файлд саарал өнгө олж чадсангүй&quot;
++
++#~ msgid &quot;couldn't find black color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;/usr/lib/X11/rgb.txt файлд хар өнгө олж чадсангүй&quot;
++
++#~ msgid &quot;login empty&quot;
++#~ msgstr &quot;нэвтрэц хоосон&quot;
++
++#~ msgid &quot;This login already exists on the system&quot;
++#~ msgstr &quot;Энэ нэвтрэц системд хэдийн орсон байна&quot;
++
++#~ msgid &quot;The login is similar to a name's group&quot;
++#~ msgstr &quot;Энэ нэвтрэц нэгэн бүлгийн нэртэй ижил байна&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;User id already in use&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;гэсэн хэрэглэгчийн ТТ хэдийн хэрэглэгдэж байна&quot;
++
++#~ msgid &quot;User id already in use&quot;
++#~ msgstr &quot;Хэрэглэгчийн ТТ хэдийн хэрэглэгдэж байна&quot;
++
++#~ msgid &quot;name empty&quot;
++#~ msgstr &quot;нэр хоосон&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;Group id already in use&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;гэсэн группийн ТТ хэдийн хэрэглэгдэж байна&quot;
++
++#~ msgid &quot;Group id already in use&quot;
++#~ msgstr &quot;Бүлгийн ТТ хэдийн хэрэглэгдэж байна&quot;
++
++#~ msgid &quot;Couldn't find pixmap file: %s&quot;
++#~ msgstr &quot;pixmap файлыг олж чадсангүй: %s&quot;
++
++#~ msgid &quot;%s: the file %s is busy (%s present)\n&quot;
++#~ msgstr &quot;%s: %s гэсэн файл завгүй байна (%s илэрхийлсэн)\n&quot;
++
++#~ msgid &quot;%s: can't link %s: %s\n&quot;
++#~ msgstr &quot;%s: %s-ийг холбож чадахгүй: %s\n&quot;
++
++#~ msgid &quot;%s: can't unlock %s: %s (your changes are still in %s)\n&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;%s: %s-ийн түгжээг гаргаж чадахгүй: %s (таны өөрчлөлтүүд одоо хүртэл %s-д &quot;
++#~ &quot;байна)\n&quot;
++
++#~ msgid &quot;Error in stat on tmp files when i try to unlock lib\n&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Error in stat on tmp files when i try to unlock lib-ийн түгжээг гаргахаар &quot;
++#~ &quot;оролдох үед tmp файлуудын төлөвд алдаа\n&quot;
++
++#~ msgid &quot;%s: no changes made\n&quot;
++#~ msgstr &quot;%s: ямар ч өөрчлөлт хийгдсэнгүй\n&quot;
++
++#~ msgid &quot;Server address:&quot;
++#~ msgstr &quot;Серверийн хаяг:&quot;
++
++#~ msgid &quot;Bind DN:&quot;
++#~ msgstr &quot;DN холбоос:&quot;
++
++#~ msgid &quot;Connection Type :&quot;
++#~ msgstr &quot;Холболтын төрөл:&quot;
++
++#~ msgid &quot;ssl&quot;
++#~ msgstr &quot;ssl&quot;
++
++#~ msgid &quot;Validate&quot;
++#~ msgstr &quot;Батлах&quot;
++
++#~ msgid &quot;Test&quot;
++#~ msgstr &quot;Тест&quot;
++
++#~ msgid &quot;cannot change ldap version to 3: %s&quot;
++#~ msgstr &quot;ldap-ийн хувилбарыг 3 болгож өөрчилж чадахгүй: %s&quot;
++
++#~ msgid &quot;cannot connect to the ldap server\n&quot;
++#~ msgstr &quot;ldap сервер лүү холбогдож чадахгүй\n&quot;
++
++#~ msgid &quot;cannot bind to the ldap server, %d\n&quot;
++#~ msgstr &quot;ldap сервер лүү нэгтгэж чадахгүй, %d\n&quot;
++
++#~ msgid &quot;Cannot bind to ldap server&quot;
++#~ msgstr &quot;ldap сервер лүү нэгтгэж чадахгүй&quot;
++
++#~ msgid &quot;cannot save because the cannot connect to the ldap server&quot;
++#~ msgstr &quot;хадгалж чадахгүй, учир нь ldap сервер лүү холбогдож чадахгүй байна&quot;
++
++#~ msgid &quot;cannot relock lib&quot;
++#~ msgstr &quot;lib-ийг дахин түгжиж чадахгүй&quot;
+
+<a id="userdrake2tags1133pomspo">Added: userdrake2/tags/1.13.3/po/ms.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/ms.po (rev 0)
++++ userdrake2/tags/1.13.3/po/ms.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,759 @@
++# ms Bahasa Melayu (Malay) (ms)
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/ms.php3
++#
++# UserDrake Bahasa Indonesia
++# Copyright (C) 2001, 2008 Free Software Foundation, Inc.
++#
++# Budi Rachmanto &lt;rac@linux-mandrake.com&gt;, 2001, 2002.
++# Yuzz &lt;yuzz@emasonline.com&gt;, 2002.
++# Sharuzzaman Ahmat Raslan &lt;sharuzzaman@myrealbox.com&gt;, 2008.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2008-09-16 23:09+0800\n&quot;
++&quot;Last-Translator: Sharuzzaman Ahmat Raslan &lt;sharuzzaman@myrealbox.com&gt;\n&quot;
++&quot;Language-Team: Malay &lt;translation-team-ms@lists.sourceforge.net&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=1;\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Ralat membaca `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Ralat mencipta `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Ralat membuang `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Ralat mencipta gulungan mel.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Ralat mencipta gulungan mel.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Ralat mencipta gulungan mel.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;ralat tidak diketahui&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Ralat mencipta gulungan mel.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Ralat memadam gulungan mel.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Memuatkan Pengguna dan Kumpulan... Sila tunggu&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Alatan Mengurus Pengguna Mageia&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Aksi&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Edit&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/Pa_dam&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Pilihan&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Tapis pengguna sistem&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Fail&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Baru&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Keluar&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Tambah user&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Tambah _kumpulan&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Bantuan&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Lapor Pepijat&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Keterangan&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Cari:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Terap tapisan&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;User&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Kumpulan&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Pengguna dan kumpulan&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Nama Pengguna&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ID Pengguna&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Kumpulan Utama&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Nama Penuh&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Shell Logmasuk&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Direktori rumah&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Status&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Nama Kumpulan&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ID kumpulan&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Ahli Kumpulan&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Tambah pengguna&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Tambah pengguna kepada sistem&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Tambah kumpulan&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Tambah kumpulan kepada sistem&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Edit&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Edit baris dipilih&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Hapus&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Padam baris dipilih&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Segarkan&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Segarkan senarai&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Terkunci&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Tamat tempoh&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Klik pada ikon untuk mengubahnya&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Cipta user baru&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Cipta direktori rumah&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Direktori rumah: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Cipta kumpulan peribadi bagi pengguna&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Nyatakan ID pengguna secara manual&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Pengguna telah wujud, sila pilih Nama Pengguna lain&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Katalaluan tidak sama&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Katalaluan ini terlalu mudah. \n&quot;
++&quot; Katalaluan yang baik seharusnya &gt; 6 aksara&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Uid pengguna adalah &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Mencipta pengguna dengan UID kurang dari 500 tidak disyorkan.\n&quot;
++&quot; Anda pasti anda mahu melakukannya?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Meletakkan %s ke kumpulan 'users'&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Mencipta kumpulan baru: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Menambah pengguna: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Wizard pemindahan&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;Adakah anda hendak melaksanakan wizard pemindahan untuk mengimport dokumen &quot;
++&quot;dan tetapan Windows dalam edaran Mageia anda?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Batal&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Ok&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Pilih kumpulan&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Tambah ke kumpulan yang ada&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Tambah ke kumpulan 'users'&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Kumpulan dengan nama itu sudah wujud. Adakah anda ingin melakukannya?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Cipta Kumpulan baru&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Nyatakan ID kumpulan secara manual&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Kumpulan telah wujud, sila pilih Nama Kumpulan lain&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; Gid kumpulan adalah &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Penciptaan kumpulan dengan GID kurang dari 500 tidak dicadangkan.\n&quot;
++&quot; Adakah anda pasti anda hendak melakukannya?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Menambah kumpulan: %s&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Padam fail atau tidak?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Memadam pengguna %s\n&quot;
++&quot; Juga melaksanakan tindkan berikut\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Padam direktori rumah: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Padam Kotakmel: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Membuang pengguna: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Adakah anda pasti untuk memadam kumpulan %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s adalah kumpulan utama untuk pengguna %s\n&quot;
++&quot; Buang pengguna dahulu&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Membuang kumpulan: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Nama Penuh:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Login:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Katalaluan:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Sahkan Katalaluan:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Shell Logmasuk:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Nama kumpulan:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Sila pilih sekurang-kurangnya satu kumpulan bagi pengguna&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Sila nyatakan Tahun, Bulan dan Hari \n&quot;
++&quot; untuk Tempoh Tamat Akaun&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Sila penuhkan semua medan dalam penuaan katalaluan\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Anda tidak boleh membuang pengguna '%s' dari kumpulan utamanya&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Rumah:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Data Pengguna&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Hidupkan peluputan akaun&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Akaun luput (TTTT-BB-HH):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Kunci Akaun Pengguna&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Maklumat Akaun&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Pengguna terakhir menukar katalaluan pada:&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Hidupkan Peluputan Katalaluan&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Hari sebelum perubahan diizinkan:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Hari sebelum penukaran diperlukan:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Hari amaran sebelum tukar:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Hari sebelum akaun tidak aktif:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Maklumat Katalaluan&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Pilih kumpulan dimana pengguna akan menjadi ahli:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Data Kumpulan&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Pilih pengguna untuk menyertai kumpulan ini:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Kumpul Pengguna&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Sunting Kumpulan / Pengguna&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Ralat telah berlaku&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Tutup&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Hakcipta (C) %s oleh Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Pengurusan Pengguna&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Sharuzzaman Ahmat Raslan &lt;sharuzzaman@myrealbox.com&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Medan nama kosong, sila nyatakan nama&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++&quot;Nama mesti mengandungi hanya aksara latin hufuf kecil, nombor, `-' dan `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Nama terlalu panjang&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Ralat&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;ralat tidak diketahui&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Ralat mencipta `%s': %s&quot;
+
+<a id="userdrake2tags1133pomtpo">Added: userdrake2/tags/1.13.3/po/mt.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/mt.po (rev 0)
++++ userdrake2/tags/1.13.3/po/mt.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,760 @@
++# translation of mt.po to Maltese
++# translation of userdrake-mt.po to
++# translation of userdrake-mt.po to
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/mt.php3
++#
++# Copyright (C) 2003, 2004 Free Software Foundation, Inc.
++# Ramon Casha &lt;ramon.casha@linux.org.mt&gt;, 2002, 2004.
++# Ramon Casha &lt;rcasha@waldonet.net.mt&gt;, 2003.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: mt\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2004-09-03 18:55+0200\n&quot;
++&quot;Last-Translator: Ramon Casha &lt;ramon.casha@linux.org.mt&gt;\n&quot;
++&quot;Language-Team: Maltese &lt;mt@li.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.3\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Problema fil-qari ta' \&quot;%s\&quot;: %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Problema biex jinħoloq \&quot;%s\&quot;: %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Problema biex jitħassar \&quot;%s\&quot;: %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Problema biex jinħoloq spool tal-imejl.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Problema biex jinħoloq spool tal-imejl.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Problema biex jinħoloq spool tal-imejl.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;problema mhux magħrufa&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Problema biex jinħoloq spool tal-imejl.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Problema biex jitħassar spool tal-imejl.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Qed jittellgħu utenti u gruppi... stenna ftit&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Għodda tal-Mageia għall-Immaniġġjar tal-Utenti&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Azzjonijiet&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Editja&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Ħassar&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/Għaż_liet&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/I_ffiltra l-utenti tas-sistema&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Fajl&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/E_rġa' tella'&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/O_ħroġ&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Żid utent&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Żid _Grupp&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Għajnuna&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/I_rrapporta problema&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Dwar...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Fittex:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Applika filtru&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Utenti&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Gruppi&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Utenti u gruppi&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Isem il-utent&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ID tal-utent&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Grupp ewlieni&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Isem sħiħ&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Shell tal-login&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Direttorju personali&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Status&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Isem il-grupp&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ID tal-Grupp&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Membri tal-grupp&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Żid utent&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Żid utent mas-sistema&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Żid grupp&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Żid grupp mas-sistema&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Ibdel&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Ibdel il-linja magħżula&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Ħassar&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Ħassar il-linja magħżula&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Erġa' tella'&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Erġa' tella' l-lista&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Imsakkar&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Skadut&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Klikkja fuq l-ikona biex tibdilha&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Oħloq utent ġdid&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Oħloq direttorju personali&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Direttorju personali:&quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Oħloq grupp privat għall-utent&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Speċifika ID tal-utent manwalment&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Dan l-isem diġà jeżisti; jekk jogħġbok agħżel ieħor&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Passwords ma jaqblux&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Dan il-password sempliċi wisq.\n&quot;
++&quot;Passwords tajbin iridu jkunu twal &gt;6 ittri.&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;ID tal-utent &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Li toħloq ID ta' utent inqas minn 500 mhux rakkomandat.\n&quot;
++&quot;Żgur li trid tagħmel dan?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Qed jiġi miżjud %s mal-grupp \&quot;users\&quot;&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Qed jinħoloq grupp: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Qed jiġi miżjud utent: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Ikkanċella&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Ok&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Agħżel grupp&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Żid ma' grupp eżistenti&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Żid mal-grupp \&quot;users\&quot;&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Diġà jeżisti grupp b'dan l-isem. X'tixtieq tagħmel?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Oħloq grupp ġdid&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Speċifika l-ID tal-grupp manwalment&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Dan l-isem ta' grupp diġà jeżisti. Jekk jogħġbok agħżel ieħor.&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;ID tal-grupp &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Li toħloq ID ta' grupp inqas minn 500 mhux rakkomandat.\n&quot;
++&quot;Żgur li trid tagħmel dan?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Qed jiġi miżjud grupp: %s&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Trid tħassar il-fajls jew le?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Qed jitħassar utent %s\n&quot;
++&quot; Agħmel ukoll dan li ġej\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Ħassar id-direttorju personali: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Ħassar il-kaxxa tal-ittri: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Qed jitneħħa utent: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Żgur trid tneħħi l-grupp %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s huwa l-grupp ewlieni tal-utent %s\n&quot;
++&quot; L-ewwel ħassar lill-utent&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Qed jitneħħa grupp: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Isem sħiħ:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Login:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Password:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Ikkonferma password:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Shell tal-login:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Isem il-grupp:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Agħżel ta' l-inqas grupp wieħed għall-utent&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Jekk jogħġbok speċifika s-sena, xahar u ġurnata\n&quot;
++&quot;meta jiskadi l-kont &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Jekk jogħġbok speċifika d-dettalji tal-iskadenza tal-password\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Ma tistax tneħħi l-utent \&quot;%s\&quot; mill-grupp ewlieni&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Direttorju personali:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Informazzjoni tal-utent&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Kont jiskadi&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Kont jiskadi (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Sakkar il-kont tal-utent&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Info. dwar Kont&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Il-utent l-aħħar li bidel il-password f':&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Password tiskadi&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Ġranet qabel tħalli tibdil :&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Ġranet qabel jiġi mġiegħel tibdil :&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Ġranet ta' twissija qabel jiskadi :&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Ġranet qabel jiġi inattivat il-kont :&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Info. Password&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Agħżel il-gruppi li l-utent huwa membru tagħhom:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Info. grupp&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Agħżel liema utenti se jkunu membri tal-grupp :&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Utenti tal-grupp&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Editja gruppi u utenti&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Inqalgħet problema&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Agħlaq&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Maniġġjar tal-utenti&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Ramon Casha &lt;ramon.casha@linux.org.mt&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;L-isem huwa vojt. Jekk jogħġbok ipprovdi isem&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++&quot;L-isem jista' jinkludi biss ittri żgħar bl-alfabett Infliż, numri, \&quot;-\&quot; u &quot;
++&quot;\&quot;_\&quot;&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Isem twil wisq&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Problema&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;problema mhux magħrufa&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Problema biex jinħoloq \&quot;%s\&quot;: %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Awturi: &quot;
+
+<a id="userdrake2tags1133ponbpo">Added: userdrake2/tags/1.13.3/po/nb.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/nb.po (rev 0)
++++ userdrake2/tags/1.13.3/po/nb.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,760 @@
++# translation of nb.po to Norwegian Bokmål
++# translation of nb.po to
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/no.php3
++#
++# UserDrake.
++# Copyright (C) 2000 Mandriva
++# Andreas Bergstrøm
++#
++# Terje Bjerkelia &lt;terje@bjerkelia.com&gt;, 2000,2002.
++# Per Øyvind Karlsen &lt;peroyvind@sintrax.net&gt;, 2003, 2004.
++# Keld Simonsen &lt;keld@dkuug.dk&gt;, 2007.
++# Olav Dahlum &lt;odahlum@gmail.com&gt;, 2009, 2010.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: nb\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2010-02-03 19:57+0100\n&quot;
++&quot;Last-Translator: Olav Dahlum &lt;odahlum@gmail.com&gt;\n&quot;
++&quot;Language-Team: Norwegian Bokmål &lt;cooker-i18n@mandrivalinux.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Feil under lesing av «%s»: %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Feil under opprettelse av «%s»: %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Feil ved fjerning av «%s»: %s&quot;
++
++#: ../USER/USER.xs:490
++#, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Opprettelse av konto mislyktes: «%s».\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;Kan ikke hente UID-nummer&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;Kan ikke hente verdi&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Feil under opprettelse av epostkø.\n&quot;
++
++#: ../USER/USER.xs:582
++#, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Brukeren kunne ikke endres: «%s».\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Brukeren kunne ikke bli slettet: «%s».\n&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;Kunne ikke sette passord: «%s».\n&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;ukjent feil&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Opprettelse av gruppa mislyktes.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;Gruppa kunne ikke endres: «%s».\n&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;Gruppa kunne ikke slettes: «%s».\n&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;Ingen hjemmemappe for brukeren.\n&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Hjemmemappa kunne ikke slettes: «%s».\n&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Feil ved sletting av epostboks\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Vent litt … laster brukere og grupper&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Brukeradministreringsverktøy for Mageia &quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;/_Sett opp gjestkonto&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;/_Fjern gjestkonto&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Handlinger&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Rediger&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Slett&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Valg&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Filtrer systembrukere&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Fil&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Oppdater&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Avslutt&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;A&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Legg til bruker&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Legg til _gruppe&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Hjelp&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Rapporter feil&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Om …&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Søk:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Legg til filter&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Brukere&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Grupper&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Brukere og grupper&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Brukernavn&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Bruker-ID&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Primærgruppe&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Fullt navn&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Innloggingsskall&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Hjemmeområde&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Status&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Gruppenavn&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Gruppe-ID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Gruppemedlemmer&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Legg til bruker&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Legg en bruker til systemet&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Legg til gruppe&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Legg en gruppe til systemet&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Rediger&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Rediger valgt rad&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Slett&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Slett valgt rad&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Oppdater&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Oppdater listen&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Stengt&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Utløpt&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Klikk på ikonet for å endre det&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Lag ny bruker&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Lag hjemmeområde&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Hjemmekatalog: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Opprett en privat gruppe for brukeren&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Angi bruker-ID manuelt&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Brukeren finnes allerede, vennligst velg et annet brukernavn&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Passordene er ulike&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Passordet er for enkelt. \n&quot;
++&quot;Gode passord bør være lengre enn seks tegn&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;BrukerID er lavere enn 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Å legge til en bruker med UID(brukerID) lavere enn 500 er ikke anbefalt.\n&quot;
++&quot; Er du sikker på at du vil gjøre dette?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Legger til %s i gruppa «users»&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Oppretter ny gruppe: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Legger til bruker: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Migrasjonsveiviser&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;Ønsker du å kjøre migrasjonsveiviseren for å importere dokumenter og oppsett &quot;
++&quot;fra Windows til Mageia?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Avbryt&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;OK&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Velg gruppe&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Legg til eksisterende gruppe&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Legg til i gruppa «users»&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;En gruppe med dette navnet finnes allerede. Hva vil du gjøre?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Lag ny gruppe&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Angi gruppe-ID manuelt&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Gruppene finnes allerede, vennligst velg et annet gruppenavn&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;GruppeID er lavere enn 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Å lage en gruppe med GID lavere enn 500 er ikke anbefalt.\n&quot;
++&quot; Er du sikker på at du vil dette?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Legger til gruppe: %s&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Slette filer?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Sletter bruker %s\n&quot;
++&quot; Utfør også følgende handlinger\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Slett hjemmekatalog: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Slett e-postboks: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Fjerner bruker: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Vil du virkelig slette gruppa %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s er en primær gruppe for bruker %s\n&quot;
++&quot; Fjern brukeren først&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Fjerner gruppe: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Fullt navn:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Brukernavn:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Passord:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Bekreft passord:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Innloggingsskall:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Gruppenavn:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Vennligst velg minst en gruppe for brukeren&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Vennligst angi dato, måned og dag \n&quot;
++&quot; for kontoens utløpsdato &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Vennligst fyll inn alle feltene for passordelding\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Du kan ikke fjerne bruker «%s» fra den primære gruppa&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Hjem:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Brukerdata&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Slå på utløpsdato for konto&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Konto utløper (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Lås brukerkonto&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Kontoinfo&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Bruker skiftet passord den :&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Slå på utløpsdato for passord&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Dager før skifte er tillatt :&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Dager før skifte kreves :&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Antall dager med varsel før skifte :&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Dager før konto blir stengt:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Passordinfo&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Velg gruppene som brukeren skal bli medlem av:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Gruppedata&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Velg brukere som skal være med i denne gruppa:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Gruppebrukere&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Rediger grupper/brukere&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;En feil oppstod:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Lukk&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Alle rettigheter (C) %s Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Håndtering av brukere&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++&quot;Olav Dahlum &lt;odahlum@gmail.com&gt;, 2009\n&quot;
++&quot;Per Øyvind Karlsen &lt;pkarlsen@mandriva.com&gt;, 2003-2006.\n&quot;
++&quot;Eskild Hustvedt &lt;eskild@mandriva.org&gt;, 2004-2005.\n&quot;
++&quot;Kenneth Rørvik &lt;kenneth@rorvik.net&gt;, 2003-2004.\n&quot;
++&quot;Olav Dahlum &lt;odahlum@gmail.com&gt;, 2006.\n&quot;
++&quot;Keld Simonsen &lt;keld@dkuug.dk&gt;, 2004.\n&quot;
++&quot;Terje Bjerkelia &lt;terje@bjerkelia.com&gt;, 1999-2000.\n&quot;
++&quot;Andreas Bergstrøm &lt;abergstr@halden.net&gt;, 2000.\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Feltet Navn er tomt, vennligst oppgi et navn&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;Navnet kan bare innholde små bokstaver, numre, «-» og «_»&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Navnet er for langt&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Feil&quot;
++
+
+<a id="userdrake2tags1133ponlpo">Added: userdrake2/tags/1.13.3/po/nl.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/nl.po (rev 0)
++++ userdrake2/tags/1.13.3/po/nl.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,773 @@
++# translation of userdrake-nl.po to Nederlands
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/nl.php3
++#
++# Copyright (C) 2000,2003,2004 Free Software Foundation, Inc.
++# GEERT POELS &lt;Geert.Poels@skynet.be&gt;, 2000.
++# Reinout van Schouwen &lt;reinouts@gnome.org&gt;, 2001-2007.
++# Peter Bosch &lt;peter.bosch@hccnet.nl&gt;, 2002.
++# Hendrik-Jan Heins &lt;hjh@passys.nl&gt;, 2003,2004.
++# Rob Teng &lt;mandrake.tips@free.fr&gt;, 2004.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-nl\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2007-09-25 00:36+0200\n&quot;
++&quot;Last-Translator: Reinout van Schouwen &lt;reinouts@gnome.org&gt;\n&quot;
++&quot;Language-Team: Nederlands\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Fout bij lezen `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Fout bij aanmaken `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Fout bij verwijderen `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Fout bij het aanmaken van de e-mail-wachtrij.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Fout bij het aanmaken van de e-mail-wachtrij.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Fout bij het aanmaken van de e-mail-wachtrij.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;Onbekende fout&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Fout bij het aanmaken van de e-mail-wachtrij.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Fout bij het verwijderen van de e-mail-wachtrij.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Laden van gebruikers en groepen... Even geduld&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageia gebruikersbeheer&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Acties&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/Be_werken&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Verwijderen&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Opties&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Systeemgebruikers weglaten&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Bestand&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Vernieuwen&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/A_fsluiten&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/Ge_bruiker toevoegen&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/_Groep toevoegen&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Hulp&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/P_rogrammafout rapporteren&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Info...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Zoeken:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Filter toepassen&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Gebruikers&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Groepen&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Gebruikers en groepen&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Gebruikersnaam&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Gebruikers-ID&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Primaire groep&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Volledige naam&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Aanmeldshell&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Persoonlijke map&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Status&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Groepsnaam&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Groep-ID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Groepsleden&quot;
++
++# broken into two lines to avoid too large a button
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;&quot;
++&quot;Gebruiker\n&quot;
++&quot;toevoegen&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Gebruiker toevoegen aan het systeem&quot;
++
++# broken into two lines to avoid too large a button
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;&quot;
++&quot;Groep\n&quot;
++&quot;toevoegen&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Groep toevoegen aan het systeem&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Bewerken&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Geselecteerde rij bewerken&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Verwijderen&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Geselecteerde rij verwijderen&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Verversen&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;De lijst verversen&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Afgesloten&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Verlopen&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Klik op het pictogram om het te veranderen&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Nieuwe gebruiker aanmaken&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Persoonlijke map aanmaken&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Persoonlijke map: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Privé-groep aanmaken voor de gebruiker&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Handmatig gebruikers-ID opgeven&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;De gebruiker bestaat al, kies een andere gebruikersnaam&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Wachtwoord komt niet overeen&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Dit wachtwoord is te eenvoudig. \n&quot;
++&quot;Een goed wachtwoord bevat tenminste 6 karakters&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Gebruikers UID is &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Een gebruiker aanmaken met een UID lager dan 500 wordt niet aangeraden.\n&quot;
++&quot; Weet u zeker dat u dit wilt doen?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Bezig met toevoegen %s aan de groep 'users'&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Bezig met aanmaken nieuwe groep: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Bezig met toevoegen gebruiker: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Migratiewizard&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;Wilt u de migratiewizard uitvoeren om uw Windows-documenten en -instellingen &quot;
++&quot;te importeren in uw Mageia-installatie?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Annuleren&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Ok&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Kies een groep&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Toevoegen aan de bestaande groep&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Toevoegen aan de groep 'users'&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Een groep met deze naam bestaat al. Wat wilt u nu doen?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Nieuwe groep aanmaken&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Handmatig groeps-ID opgeven&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;De groep bestaat al, kies een andere groepsnaam&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; De groep GID is &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Een groep aanmaken met een GID van lager dan 500 wordt niet aangeraden.\n&quot;
++&quot; Weet u zeker dat u dit wilt doen?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Bezig met toevoegen groep: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Bestanden verwijderen?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Verwijderen van gebruiker %s\n&quot;
++&quot; Voer ook de volgende acties uit\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Persoonlijke map verwijderen: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Verwijder Mailbox :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Bezig met verwijderen gebruiker: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Weet u zeker dat u de groep %s wilt verwijderen?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s is een primaire groep voor gebruiker %s\n&quot;
++&quot; Verwijder eerst de gebruiker&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Bezig met verwijderen groep: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Volledige naam:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Aanmeldnaam:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Wachtwoord:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Bevestig wachtwoord:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Aanmeldshell:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Groepsnaam:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Selecteer tenminste één groep voor de gebruiker&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Geef een jaar, maand en dag op \n&quot;
++&quot; waarop de account verloopt &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Vul alle velden in voor wachtwoord-verloop\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;U kunt gebruiker ‘%s’ niet verwijderen uit zijn primaire groep&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Persoonlijke map:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Gebruikersgegevens&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Verlopen van account inschakelen&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Account verloopt op (JJJJ-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Gebruikersaccount op slot zetten&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Account-informatie&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;De gebruiker heeft het wachtwoord voor het laatst veranderd op: &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Verlopen van wachtwoord inschakelen&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Dagen voor verandering wordt toegestaan: &quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Dagen voor verandering noodzakelijk is:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Dagen voordat veranderwaarschuwing wordt gegeven:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Dagen voordat de account wordt gedeactiveerd:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Wachtwoord-informatie&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Selecteer de groepen waar de gebruiker lid van moet zijn:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Groepsgegevens&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Selecteer de gebruikers die lid moeten zijn van deze groep:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Gebruikers groeperen&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Groepen / gebruikers bewerken&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Er is een fout opgetreden:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Sluiten&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Copyright © %s door Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Gebruikersbeheer&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++&quot;Reinout van Schouwen &lt;reinouts@gnome.org&gt;\n&quot;
++&quot;Rob Teng &lt;mandrake.tips@free.fr&gt;\n&quot;
++&quot;Geert Poels &lt;Geert.Poels@skynet.be&gt;\n&quot;
++&quot;Peter Bosch &lt;peter.bosch@hccnet.nl&gt;\n&quot;
++&quot;Hendrik-Jan Heins &lt;hjh@passys.nl&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Naam-veld is leeg, geef een naam op&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++&quot;De naam mag alleen bestaan uit kleine Latijnse letters, cijfers, `-' en `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;De naam is te lang&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Fout&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;Onbekende fout&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Fout bij aanmaken `%s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Auteurs: &quot;
+
+<a id="userdrake2tags1133ponnpo">Added: userdrake2/tags/1.13.3/po/nn.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/nn.po (rev 0)
++++ userdrake2/tags/1.13.3/po/nn.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,741 @@
++# Translation of userdrake2 to Norwegian Nynorsk
++#
++# Karl Ove Hufthammer &lt;karl@huftis.org&gt;, 2007, 2009, 2010.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake2\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2010-02-07 16:36+0100\n&quot;
++&quot;Last-Translator: Karl Ove Hufthammer &lt;karl@huftis.org&gt;\n&quot;
++&quot;Language-Team: Norwegian Nynorsk &lt;i18n-nn@lister.ping.uio.no&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: Lokalize 1.0\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Feil ved lesing av «%s»: %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Feil ved oppretting av «%s»: %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Feil ved fjerning av «%s»: %s&quot;
++
++#: ../USER/USER.xs:490
++#, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Klarte ikkje leggja til konto: «%s».\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;Klarte ikkje henta UID&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;Klarte ikkje henta verdi&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Feil ved oppretting av e-postkø.\n&quot;
++
++#: ../USER/USER.xs:582
++#, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Klarte ikkje endra brukaren: «%s».\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Klarte ikkje sletta brukaren: «%s».\n&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;Klarte ikkje velja passord: «%s».\n&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;Ukjend feil&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Klarte ikkje laga ny gruppe.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;Klarte ikkje endra gruppe: «%s».\n&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;Klarte ikkje sletta gruppe: «%s».\n&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;Brukaren manglar heimemappe.\n&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Klarte ikkje sletta heimemappa: «%s».\n&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Feil ved sletting av e-postkø.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Lastar brukarar og grupper … Vent litt&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Brukaradministrering for Mageia&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;/_Installer gjestekonto&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;/_Avinstaller gjestekonto&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Handlingar&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Rediger&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Slett&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Oppsett&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Gøym systembrukarar&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Fil&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Oppdater&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Avslutt&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Legg til brukar&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Legg til _gruppe&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Hjelp&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Meld frå om feil&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Om …&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Søk:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Bruk filter&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Brukarar&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Grupper&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Brukarar og grupper&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Brukarnamn&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Brukar-ID&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Hovudgruppe&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Fullt namn&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Innloggingsskal&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Heimemappe&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Status&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Gruppenamn&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Gruppe-ID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Gruppemedlemmar&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Legg til brukar&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Legg ein brukar til systemet.&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Legg til gruppe&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Legg ei gruppe til systemet.&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Rediger&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Rediger merkt rad.&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Slett&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Slett merkt rad.&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Oppdater&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Oppdater lista.&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Låst&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Utgått&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Trykk på ikonet for å endra det&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Lag ny brukar&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Lag heimemappe&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Heimemappe: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Lag ei privat gruppe for brukaren&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Vel gruppe-ID manuelt&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Brukaren finst alt. Vel eit anna brukarnamn.&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Passord er ikkje like&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Passordet er for enkelt.\n&quot;
++&quot;Eit godt passord på vera på minst 6 teikn.&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Brukar-ID-en er under 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Det er sterkt frårådd av laga ein brukar med UID lågare enn 500.\n&quot;
++&quot; Er du sikker på at du likevel vil gjera det?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Legg «%s» i «users»-gruppa&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Oppretter ny gruppe: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Legg til brukar: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Dataoverføringsvegvisar&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;Ønskjer du å køyra dataoverføringsvegvisaren, slik at du kan henta inn &quot;
++&quot;Windows-dokumenta og -innstillingane dine til Mageia?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Avbryt&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;OK&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Vel gruppe&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Legg til gammal gruppe&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Legg til «users»-gruppa&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Det finst alt ei gruppe med dette namnet. Kva ønskjer du å gjera?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Lag ny gruppe&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Vel gruppe-ID manuelt&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Gruppa finst alt. Vel eit anna gruppenamn.&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; Gruppe-ID-en er under 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Det er sterkt ådd av laga ei gruppe med GID lågare enn 500.\n&quot;
++&quot; Er du sikker på at du likevel vil gjera det?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Legg til gruppe: %s&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Vil du sletta filene?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Fjernar brukaren «%s»\n&quot;
++&quot; Utfør òg følgjande handlingar\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Slett heimemappe: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Slett e-postboks: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Fjern brukar: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Er du sikker på at du vil sletta gruppa «%s»?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;«%s» er ei hovudgruppe fro brukaren «%s».\n&quot;
++&quot; Fjern frukaren først.&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Fjernar gruppa: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Fullt namn:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Brukarnamn:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Passord:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Stadfest passord:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Innloggingsskal:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Gruppenamn:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Du må velja minst éi gruppe for brukaren&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;Vel år, månad og dag for kontoutløp.&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Fyll ut alle felta for passordutløp.\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Du kan ikkje fjerna brukaren «%s» frå hovudgruppa hans/hennar.&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Heime:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Brukardata&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Bruk utløpsdato for konto&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Kontoen går ut (ÅÅÅÅ-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Lås brukarkonto&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Kontoinformasjon&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Brukaren bytte seinast passord den: &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Bruk utløpsdato for passord&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Dagar før byte er lov:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Dagar før byte er påkravd:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Dagar med varsel før endring:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Dagar før kontoen vert inaktiv:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Passordinformasjon&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Vel gruppene som brukaren skal vera medlem av:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Gruppedata&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Vel brukaren som skal vera med i gruppa:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Gruppebrukarar&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Rediger grupper/brukarar&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Det oppstod ein feil:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Lukk&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Copyright © %s Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Brukaradministrering&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Karl Ove Hufthammer &lt;karl@huftis.org&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Namnefeltet er tomt. Skriv inn namnet på brukaren.&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++&quot;Brukarnamnet kan berre innehelda små bokstavar, tal, samt teikna «-» og «_».&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Namnet er for langt.&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Feil&quot;
+
+<a id="userdrake2tags1133popa_INpo">Added: userdrake2/tags/1.13.3/po/pa_IN.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/pa_IN.po (rev 0)
++++ userdrake2/tags/1.13.3/po/pa_IN.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,754 @@
++# translation of userdrake.po to Panjabi
++# This file is distributed under the same license as the PACKAGE package.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
++# Kanwaljeet Singh Brar &lt;kanwaljeetbrar@yahoo.co.in&gt;, 2005.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2005-03-25 13:55+0530\n&quot;
++&quot;Last-Translator: Kanwaljeet Singh Brar &lt;kanwaljeetbrar@yahoo.co.in&gt;\n&quot;
++&quot;Language-Team: Panjabi &lt;fedora-trans-pa@redhat.com&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.9.1\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1)\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;`%s' ਪੜਨ ਦੌਰਾਨ ਗਲਤੀ: %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;`%s' ਬਣਾਉਣ ਦੌਰਾਨ ਗਲਤੀ: %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;`%s' ਹਟਾਉਣ ਦੌਰਾਨ ਗਲਤੀ: %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;ਪੱਤਰ ਸਪੂਲ ਬਣਾਉਣ ਦੌਰਾਨ ਗਲਤੀ।\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;ਪੱਤਰ ਸਪੂਲ ਬਣਾਉਣ ਦੌਰਾਨ ਗਲਤੀ।\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;ਪੱਤਰ ਸਪੂਲ ਬਣਾਉਣ ਦੌਰਾਨ ਗਲਤੀ।\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;ਅਣਜਾਣੀ ਗਲਤੀ&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;ਪੱਤਰ ਸਪੂਲ ਬਣਾਉਣ ਦੌਰਾਨ ਗਲਤੀ।\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;ਪੱਤਰ ਸਪੂਲ ਹਟਾਉਣ ਦੌਰਾਨ ਗਲਤੀ\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;ਉਪਭੋਗੀ ਤੇ ਗਰੁੱਪ ਲੋਡ ਕੀਤੇ ਜਾਦੇ ਹਨ... ਕਿਰਪਾ ਕਰਕੇ ਉਡੀਕੋ&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;ਮੈਂਡਰਿਵ ਲੀਨਕਸ ਉਪਭੋਗੀ ਪ੍ਰਬੰਧਨ ਸੰਦ&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/ਕਾਰਵਾਈ(_A)&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/ਸੋਧ(_E)&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/ਹਟਾਓ(_D)&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/ਚੋਣ(_O)&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/ਸਿਸਟਮ ਉਪਭੋਗੀ ਫਿਲਟਰ(_F)&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/ਫਾਇਲ(_F)&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/ਤਾਜ਼ਾ(_R)&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/ਬਾਹਰ(_Q)&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/ਉਪਭੋਗੀ ਸ਼ਾਮਲ(_A)&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/ਗਰੁੱਪ ਸ਼ਾਮਲ(_G)&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/ਸਹਾਇਤਾ(_H)&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/ਬੱਗ ਰਿਪੋਰਟ(_R)&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/ਬਾਰੇ(_A)...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;ਖੋਜ:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;ਫਿਲਟਰ ਲਾਗੂ ਕਰੋ&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;ਉਪਭੋਗੀ&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;ਸਮੂਹ&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;ਉਪਭੋਗੀ ਅਤੇ ਸਮੂਹ&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;ਉਪਭੋਗੀ ਨਾਂ&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ਉਪਭੋਗੀ ID&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;ਮੁੱਢਲਾ ਗਰੁੱਪ&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;ਪੂਰਾ ਨਾਂ&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;ਲਾਗਿੰਨ ਸ਼ੈਲ&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;ਘਰ ਡਾਇਰੈਕਟਰੀ&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;ਸਥਿਤੀ&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;ਗਰੁੱਪ ਨਾਂ&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ਗਰੁੱਪ ID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;ਗਰੁੱਪ ਮੈਂਬਰ&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;ਉਪਭੋਗੀ ਸ਼ਾਮਲ&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;ਆਪਣੇ ਸਿਸਟਮ ਤੇ ਉਪਭੋਗੀ ਸ਼ਾਮਲ ਕਰੋ&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;ਗਰੁੱਪ ਸ਼ਾਮਲ&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;ਸਿਸਟਮ ਤੇ ਗਰੁੱਪ ਸ਼ਾਮਲ ਕਰੋ&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;ਸੋਧ&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;ਚੁਣੀ ਕਤਾਰ ਵਿੱਚ ਸੋਧ&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;ਹਟਾਓ&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;ਚੁਣੀ ਕਤਾਰ ਹਟਾਓ&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;ਤਾਜ਼ਾ&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;ਸੂਚੀ ਤਾਜ਼ਾ ਕਰੋ&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;ਤਾਲਾਬੰਦ&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;ਮਿਆਦ ਖਤਮ&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;ਆਈਕਾਨ ਨੂੰ ਤਬਦੀਲ ਕਰਨ ਲਈ ਦਬਾਓ&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;ਨਵਾਂ ਉਪਭੋਗੀ ਬਣਾਓ&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;ਘਰ ਡਾਇਰੈਕਟਰੀ ਬਣਾਓ&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;ਘਰ ਡਾਇਰੈਕਟਰੀ: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;ਉਪਭੋਗੀ ਲਈ ਨਿੱਜੀ ਗਰੁੱਪ ਬਣਾਓ&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;ਉਪਭੋਗੀ ਲਈ ID ਖੁਦ ਦਿਓ&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;ਉਪਭੋਗੀ ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਹੈ, ਕਿਰਪਾ ਕਰਕੇ ਵੱਖਰਾ ਨਾਂ ਦਿਓ&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;ਗੁਪਤ-ਕੋਡ ਮੇਲ ਨਹੀ ਖਾ ਰਿਹਾ&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;ਇਹ ਗੁਪਤ-ਕੋਡ ਬਹੁਤ ਸੌਖਾ ਹੈ।\n&quot;
++&quot; ਚੰਗ ਗੁਪਤ-ਕੋਡ &gt; 6 ਅੱਖਰ ਤੋਂ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;ਉਪਭੋਗੀ Uid &lt; 500 ਹੈ&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;UID 500 ਤੋਂ ਘੱਟ ਰੱਖ ਕੇ ਉਪਭੋਗੀ ਬਣਾਉਣਾ ਸਿਫਾਰਸ਼ੀ ਨਹੀਂ ਹੈ।\n&quot;
++&quot; ਕਿ ਤੁਸੀ ਇਹ ਕਰਨ ਲਈ ਸਹਿਮਤ ਹੋ?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;%s ਨੂੰ 'users' ਗਰੁੱਪ ਲਈ ਰੱਖਿਆ ਜਾਦਾ ਹੈ&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;ਨਵਾਂ ਗਰੁੱਪ ਬਣਾਇਆ ਜਾਦਾ ਹੈ: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;ਉਪਭੋਗੀ ਸ਼ਾਮਲ : %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;ਰੱਦ ਕਰੋ&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;ਠੀਕ ਹੈ&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;ਗਰੁੱਪ ਚੁਣੋ&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;ਮੌਜੂਦਾ ਗਰੁੱਪ ਵਿੱਚ ਸ਼ਾਮਲ&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;'users' ਗਰੁੱਪ ਵਿੱਚ ਸ਼ਾਮਲ&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;ਸਮੂਹ ਨਾਂ ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਹੈ। ਤੁਸੀਂ ਕੀ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;ਨਵਾਂ ਗਰੁੱਪ ਬਣਾਓ&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;ਗਰੁੱਪ ID ਖੁਦ ਦਿਓ&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;ਗਰੁੱਪ ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਹੈ, ਕਿਰਪਾ ਕਰਕੇ ਵੱਖਰਾ ਨਾਂ ਚੁਣੋ&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; ਗਰੁੱਪ Gid &lt; 500 ਹੈ&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;GID ਨੂੰ 500 ਤੋਂ ਘੱਟ ਰੱਖਣ ਕੇ ਗਰੁੱਪ ਬਣਾਉਣ ਦੀ ਸਿਫਾਰਸ਼ ਨਹੀਂ ਕੀਤੀ ਜਾਦੀ ਹੈ।\n&quot;
++&quot; ਕੀ ਤੁਸੀਂ ਏਦਾਂ ਕਰਨ ਲਈ ਸਹਿਮਤ ਹੋ?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;ਗਰੁੱਪ ਸ਼ਾਮਲ : %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;ਫਾਇਲਾਂ ਹਟਾਉਣੀਆਂ ਹਨ ਜਾਂ ਨਹੀਂ?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;ਉਪਭੋਗੀ %s ਹਟਾਉਣਾ\n&quot;
++&quot; ਹੇਠ ਦਿੱਤੀਆਂ ਕਾਰਵਾਈਆਂ ਕੀਤੀਆਂ ਜਾਣਗੀਆਂ\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;ਘਰ ਡਾਇਰੈਕਟਰੀ ਹਟਾਓ :%s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;ਪੱਤਰ ਬਕਸਾ ਹਟਾਓ :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;ਉਪਭੋਗੀ ਹਟਾਉਣਾ: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;ਕੀ ਤੁਸੀਂ ਗਰੁੱਪ %s ਨੂੰ ਹਟਾਉਣ ਦੀ ਪੁਸ਼ਟੀ ਕਰਦੇ ਹੋ&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s ਉਪਭੋਗੀ %s ਦਾ ਮੁੱਢਲਾ ਗਰੁੱਪ ਹੈ\n&quot;
++&quot; ਪਹਿਲਾਂ ਉਪਭੋਗੀ ਨੂੰ ਹਟਾਓ&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;ਗਰੁੱਪ ਹਟਾਇਆ: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;ਪੂਰਾ ਨਾਂ:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;ਲਾਗਆਨ:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;ਗੁਪਤ-ਕੋਡ:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;ਗੁਪਤ-ਕੋਡ ਪ੍ਰਮਾਣਿਕਤਾ:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;ਲਾਗਿੰਨ ਸ਼ੈਲ:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;ਗਰੁੱਪ ਨਾਂ:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;ਕਿਰਪਾ ਕਰਕੇ ਉਪਭੋਗੀ ਲਈ ਘੱਟੋ-ਘੱਟ ਇੱਕ ਗਰੁੱਪ ਚੁਣੋ&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;ਕਿਰਪਾ ਕਰਕੇ ਖਾਤਾ ਮਿਆਦ, ਸਾਲ, ਮਹੀਨਾ ਅਤੇ ਦਿਨ\n&quot;
++&quot; ਦੇ ਅਨੁਸਾਰ ਦਿਓ&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;ਕਿਰਪਾ ਕਰਕੇ ਗੁਪਤ-ਕੋਡ ਉਮਰ ਵਿੱਚ ਸਭ ਖੇਤਰ ਭਰੋ\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;ਤੁਸੀਂ ਉਪਭੋਗੀ '%s' ਨੂੰ ਇਸ ਦੇ ਮੁੱਢਲੇ ਗਰੁੱਪ ਤੋਂ ਨਹੀਂ ਹਟਾ ਸਕਦੇ ਹੋ&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;ਘਰ:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;ਉਪਭੋਗੀ ਡਾਟਾ&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;ਖਾਤਾ ਮਿਆਦ ਚਾਲੂ&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;ਖਾਤਾ ਮਿਆਦ (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;ਉਪਭੋਗੀ ਖਾਤਾ ਤਾਲਾਬੰਦ&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;ਖਾਤਾ ਜਾਣਕਾਰੀ&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;ਉਪਭੋਗੀ ਨੇ ਆਖਰੀ ਵਾਰ ਗੁਪਤ-ਕੋਡ ਬਦਲਿਆ : &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;ਗੁਪਤ-ਕੋਡ ਮਿਆਦ ਯੋਗ&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;ਤਬਦੀਲੀ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਸਵੀਕਾਰ ਦਿਨਾਂ ਦੀ ਗਿਣਤੀ : &quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;ਤਬਦੀਲੀ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਲੋੜੀਦੇ ਦਿਨ :&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;ਤਬਦੀਲੀ ਤੋਂ ਪਹਿਲਾਂ ਚੇਤਾਵਨੀ ਦਿਨ :&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;ਖਾਤਾ ਬੰਦ ਹੋਣ ਤੋਂ ਪਹਿਲਾਂ ਦਿਨ :&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;ਗੁਪਤ-ਕੋਡ ਜਾਣਕਾਰੀ&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;ਗਰੁੱਪ ਚੁਣੋ, ਜਿਸ ਦਾ ਉਪਭੋਗੀ ਮੈਂਬਰ ਹੈ :&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;ਗਰੁੱਪ ਡਾਟਾ&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;ਇਸ ਗਰੁੱਪ ਵਿੱਚ ਸ਼ਾਮਲ ਕਰਨ ਲਈ ਉਪਭੋਗੀ ਚੁਣੋ :&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;ਗਰੁੱਪ ਉਪਭੋਗੀ&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;ਗਰੁੱਪ / ਉਪਭੋਗੀ ਸੋਧ&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;ਇੱਕ ਗਲਤੀ ਆਈ ਹੈ&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;ਬੰਦ ਕਰੋ&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;ਉਪਭੋਗੀ ਪ੍ਰਬੰਧਕ&quot;
++
++#: ../userdrake:1282
++#, fuzzy, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;ਮੈਂਡਰਿਵ-ਆਨਲਾਈਨ&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;ਨਾਂ ਖੇਤਰ ਖਾਲੀ ਹੈ, ਕਿਰਪਾ ਕਰਕੇ ਨਾਂ ਦਿਓ&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;ਨਾਂ ਵਿੱਚ ਛੋਟੇ ਅੰਗਰੇਜ਼ੀ ਅੱਖਰ, ਅੰਕ, `-' ਅਤੇ `_' ਹੀ ਹੋ ਸਕਦੇ ਹਨ&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;ਨਾਂ ਲੰਮਾ ਹੈ&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;ਗਲਤੀ&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;ਅਣਜਾਣੀ ਗਲਤੀ&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;`%s' ਬਣਾਉਣ ਦੌਰਾਨ ਗਲਤੀ: %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;ਸੰਪਾਦਕ:&quot;
+
+<a id="userdrake2tags1133poplpo">Added: userdrake2/tags/1.13.3/po/pl.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/pl.po (rev 0)
++++ userdrake2/tags/1.13.3/po/pl.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,786 @@
++# translation of userdrake2.po to Polish
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/pl.php3
++#
++# Aplikacja służąca do zarządzania użytkownikami w Mageia.
++# Copyright (C) 2000, 2007 Free Software Foundation, Inc.
++#
++# Pawel Jablonski &lt;pj@mandrivalinux.org&gt;, 2002.
++# Arkadiusz Lipiec &lt;arkadiusz.lipiec@gazeta.pl&gt;, 2002, 2003.
++# Tomasz Bednarski - Amazis.net &lt;tomasz.bednarski@amazis.pl&gt;, 2007.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake2\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2010-02-17 12:54+0100\n&quot;
++&quot;Last-Translator: Marek Walczak &lt;kubdat@poczta.fm&gt;\n&quot;
++&quot;Language-Team: Polish &lt;pl@li.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10&gt;=2 &amp;&amp; n%10&lt;=4 &amp;&amp; (n%100&lt;10 || n%100&gt;=20) ? 1 : 2);\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Błąd przy czytaniu \&quot;%s\&quot;: %s&quot;
++
++#: ../USER/USER.xs:93
++#: ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Błąd przy tworzeniu \&quot;%s\&quot;: %s&quot;
++
++#: ../USER/USER.xs:205
++#: ../USER/USER.xs:234
++#: ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Błąd przy usuwaniu \&quot;%s\&quot;: %s&quot;
++
++#: ../USER/USER.xs:490
++#, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Utworzenie konta nie powiodło się: '%s'.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;Nie można pobrać numeru Uid&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;Nie można pobrać wartości&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Błąd przy tworzeniu kolejki poczty.\n&quot;
++
++#: ../USER/USER.xs:582
++#, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Użytkownika nie można zmodyfikować: '%s'.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Użytkownika nie można usunąć: '%s'.\n&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;Nie można ustawić hasła: '%s'.\n&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;nieznany błąd&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Utworzenie grupy nie powiodło się.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;Grupy nie można zmodyfikować: '%s'.\n&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;Grupy nie można usunąć: '%s'.\n&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;Brak katalogu domowego dla użytkownika.\n&quot;
++
++#: ../USER/USER.xs:869
++#: ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Katalogu domowego nie można usunąć: '%s'.\n&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Błąd przy usuwaniu kolejki poczty.\n&quot;
++
++#: ../userdrake:59
++#: ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Wczytywanie użytkowników i grup... proszę czekać&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Narzędzie do zarządzania użytkownikami dla Mandriva Linuksa&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;/_Instaluj konto gościa&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;/_Usuń konto gościa&quot;
++
++#: ../userdrake:101
++#: ../userdrake:102
++#: ../userdrake:103
++#: ../userdrake:114
++#: ../userdrake:115
++#: ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Czynności&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Edycja&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Usuń&quot;
++
++#: ../userdrake:104
++#: ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Opcje&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Filtruj użytkowników systemowych&quot;
++
++#: ../userdrake:109
++#: ../userdrake:110
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Plik&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/O_dśwież&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Zakończ&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Dodaj użytkownika&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Dodaj g_rupę&quot;
++
++#: ../userdrake:125
++#: ../userdrake:126
++#: ../userdrake:127
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Pomoc&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Zgłoś błąd&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_O programie&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Wyszukaj:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Zastosuj filtr&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Użytkownicy&quot;
++
++#: ../userdrake:162
++#: ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Grupy&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Użytkownicy i grupy&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Nazwa użytkownika&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ID użytkownika&quot;
++
++#: ../userdrake:186
++#: ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Podstawowa grupa&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Pełna nazwa&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Powłoka logowania&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Katalog domowy&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Stan&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Nazwa grupy&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ID grupy&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Członkowie grupy&quot;
++
++# broken into two lines to avoid too large a button
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;&quot;
++&quot;Dodaj\n&quot;
++&quot;użytkownika&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Dodaje użytkownika do systemu&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Dodaj grupę&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Dodaje grupę do systemu&quot;
++
++#: ../userdrake:198
++#: ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Edytuj&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Modyfikuje wybrany wiersz&quot;
++
++#: ../userdrake:199
++#: ../userdrake:674
++#: ../userdrake:707
++#: ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Usuń&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Usuwa wybrany wiersz&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Odśwież&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Odświeża listę&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Zablokowane&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Wygasło&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Kliknij na ikonę aby ją zmienić&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Utwórz nowego użytkownika&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Utwórz katalog domowy&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Katalog domowy: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Tworzy prywatną grupę dla użytkownika&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Określ ręcznie ID użytkownika&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Użytkownik już istnieje, wybierz inną nazwę użytkownika&quot;
++
++#: ../userdrake:419
++#: ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Hasła się nie zgadzają&quot;
++
++#: ../userdrake:422
++#: ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Hasło jest za proste.\n&quot;
++&quot; Dobre hasła powinny posiadać więcej niż 6 znaków&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;ID Użytkownika jest &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Tworzenie użytkownika z ID mniejszym niż 500 nie jest zalecane.\n&quot;
++&quot; Czy na pewno chcesz to zrobić?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Wrzucanie użytkownika %s do grupy \&quot;users\&quot;&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Tworzenie nowej grupy: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Dodawanie użytkownika: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Druid migracji&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;Do you want to run the migration wizard in order to import Windows documents and settings in your Mageia distribution?&quot;
++msgstr &quot;Czy chcesz uruchomić druida migracji, aby zaimportować z systemu Windows dokumenty i ustawienia do systemu Mageia?&quot;
++
++#: ../userdrake:484
++#: ../userdrake:528
++#: ../userdrake:587
++#: ../userdrake:674
++#: ../userdrake:707
++#: ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Anuluj&quot;
++
++#: ../userdrake:484
++#: ../userdrake:521
++#: ../userdrake:587
++#: ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Ok&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Wybierz grupę&quot;
++
++#: ../userdrake:512
++#: ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Dodaj do istniejącej grupy&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Dodaj do grupy \&quot;users\&quot;&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Grupa o tej nazwie już istnieje. Co chcesz uczynić?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Utwórz nową grupę&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Określ ręcznie ID grupy&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Grupa już istnieje, wybierz inną nazwę grupy&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; ID grupy jest &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Tworzenie grupy z GID mniejszym niż 500 nie jest zalecane.\n&quot;
++&quot; Czy naprawdę chcesz to zrobić?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Dodawanie grupy: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Usunąć pliki czy nie?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Usuwanie użytkownika %s\n&quot;
++&quot; uruchamia także poniższe operacje\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Usuń katalog domowy: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Usuń skrzynkę pocztową :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Usuwanie użytkownika: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Czy na pewno chcesz usunąć grupę %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s jest podstawową grupą dla użytkownika %s\n&quot;
++&quot; Usuń najpierw użytkownika&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Usuwanie grupy: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Pełna nazwa:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Użytkownik:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Hasło:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Potwierdź hasło:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Powłoka logowania:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Nazwa grupy:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Wybierz co najmniej jedną grupę dla użytkownika&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Podaj rok, miesiąc i dzień\n&quot;
++&quot; terminu ważności konta &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Wypełnij wszystkie pola związane z wiekiem hasła\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Nie można usunąć użytkownika \&quot;%s\&quot; z głównej grupy&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Katalog domowy:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Dane użytkownika&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Włączone wygasanie haseł&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Konto wygasa (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Zablokuj konto użytkownika&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Informacje o koncie&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Użytkownik ostatnio zmieniał hasło : &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Włącz wygasanie hasła&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Dni przed dozwoloną zmianą :&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Dni przed wymaganą zmianą :&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Dni ostrzeżenia przed zmianą :&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Dni przed wyłączeniem konta :&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Informacje o haśle&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Wybierz grupy, których użytkownik będzie członkiem:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Dane grupy&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Wybierz użytkownika dołączanego do grupy :&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Użytkownikcy grupowi&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Edycja grup / użytkowników&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Wystąpił błąd:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Zamknij&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Copyright (C) %s by Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Zarządzanie użytkownikami&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Pole nazwy jest puste, podaj inną nazwę&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;Nazwa musi zawierać tylko małe litery, liczby, \&quot;-\&quot; lub \&quot;_\&quot;&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Nazwa jest za długa&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Błąd&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;nieznany błąd&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Błąd przy tworzeniu \&quot;%s\&quot;: %s&quot;
+
+<a id="userdrake2tags1133poptpo">Added: userdrake2/tags/1.13.3/po/pt.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/pt.po (rev 0)
++++ userdrake2/tags/1.13.3/po/pt.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,762 @@
++# translation of pt.po to Português
++#
++# Copyright (C) 2001,2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
++# Copyright (c) 2001 Mandriva
++#
++# Jorge Costa &lt;Jorgercosta@netc.pt&gt;, 2001.
++# Jose Jorge &lt;jose.jorge@oreka.com&gt;, 2002, 2003.
++# Jose Jorge &lt;jjorge@free.fr&gt;, 2003, 2004.
++# José Melo &lt;mmodem00@netvisao.pt&gt;, 2004.
++# José Melo &lt;mmodme00@gmail.com&gt;, 2005.
++# Zé &lt;mmodem00@gmail.com&gt;, 2006, 2007, 2010.
++# Zé &lt;ze@mandriva.org&gt;, 2009, 2010.
++# Thanks to contributions made by Sérgio Marques &lt;smarquespt@gmail.com&gt;, 2010.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: pt\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2010-07-26 00:02+0100\n&quot;
++&quot;Last-Translator: Zé &lt;ze@mandriva.org&gt;\n&quot;
++&quot;Language-Team: Portuguese &lt;&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: Lokalize 1.1\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Erro ao ler `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Erro ao criar `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Erro ao remover `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Falha ao criar a conta: '%s'.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;Não é possível obter o número Uid&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;Não é possível obter o valor&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Erro ao criar a fila de correio.\n&quot;
++
++#: ../USER/USER.xs:582
++#, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;O utilizador não pode ser modificado: '%s'.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;O utilizador não pode ser apagado: '%s'.\n&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;Falha ao definir a senha: '%s'.\n&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;erro desconhecido&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Falha ao criar o grupo.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;O grupo não pode ser modificado: '%s'.\n&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;O grupo não pode ser apagado: '%s'.\n&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;Nenhuma pasta pessoal para o utilizador.\n&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;A pasta pessoal não pode ser apagada: '%s'.\n&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Erro ao apagar a fila de correio.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;A carregar Utilizadores e Grupos... Por favor aguarde&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Ferramenta de Gestão de Utilizadores Mageia&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;/_Instalar conta de convidado&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;/_Desinstalar conta de convidado&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Acções&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Editar&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Apagar&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Opções&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Filtrar utilizadores do sistema&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Ficheiro&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Refrescar&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Sair&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;S&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Adicionar Utilizador&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Adicionar _Grupo&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Ajuda&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Reportar Erro&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Acerca...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Procurar:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Aplicar filtro&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Utilizadores&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Grupos&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Utilizadores e grupos&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Nome de Utilizador&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ID de Utilizador&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Grupo Primário&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Nome Completo&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Interpretador de Comandos&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Directório Pessoal&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Estado&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Nome do Grupo&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ID do Grupo&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Membros do Grupo&quot;
++
++# broken into two lines to avoid too large a button
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Adicionar Utilizador&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Adiciona um utilizador ao sistema&quot;
++
++# broken into two lines to avoid too large a button
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Adicionar Grupo&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Adiciona um grupo ao sistema&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Editar&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Edita a linha seleccionada&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Apagar&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Apaga a linha seleccionada&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Refrescar&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Refresca a lista&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Trancado&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Expirado&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Clique no ícone para o alterar&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Criar Novo Utilizador&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Criar Directório Pessoal&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Directório Pessoal: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Criar grupo privado para o utilizador&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Indicar manualmente o ID de utilizador&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Este utilizador já existe, por favor escolha outro Nome de Utilizador&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Senhas Diferentes&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Esta senha é demasiado simples. \n&quot;
++&quot; As senhas boas devem ter mais de 6 caracteres&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;O Uid de utilizador é &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Não é recomendável criar um utilizador com um UID inferior a 500.\n&quot;
++&quot;Tem certeza que o deseja fazer?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;A colocar %s no grupo 'users'&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;A criar novo grupo: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;A adicionar utilizador: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Assistente de migração&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;Deseja correr o assistente de migração para importar documentos e definições &quot;
++&quot;Windows para a sua distribuição Mageia?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Cancelar&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Ok&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Escolher grupo&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Adicionar ao grupo existente&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Adicionar ao grupo 'users'&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Já existe um grupo com este nome. O que deseja fazer?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Criar Novo Grupo&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Indicar manualmente ID de grupo&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;O grupo já existe, por favor escolha outro Nome de Grupo&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; O Gid de Grupo é &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Não é recomendável criar um grupo com um GID inferior a 500.\n&quot;
++&quot;Tem certeza que o deseja criar?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;A adicionar o grupo: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Apagar ficheiros ou não?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;A apagar utilizador %s\n&quot;
++&quot; Executar também as seguintes acções\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Apagar Directório Pessoal: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Apagar Caixa de Correio: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;A remover o utilizador: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Deseja realmente apagar o grupo %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s é um grupo primário para o utilizador %s\n&quot;
++&quot; Remova o utilizador primeiro&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;A remover o grupo: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Nome Completo:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Utilizador:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Senha:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Confirmar Senha:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Interpretador de Comandos:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Nome do Grupo:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Por favor seleccione pelo menos um grupo para o utilizador&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Por favor indique o Ano, Mês e Dia\n&quot;
++&quot;para a Expiração da Conta &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Por favor preencha todas os campos de duração da senha\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Não pode remover o utilizador '%s' do seu grupo primário&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Pasta Pessoal:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Dados do Utilizador&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Activar expiração da conta&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;A conta expira em (AAAA-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Trancar Conta de Utilizador&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Informações da Conta&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;O utilizador mudou a senha pela última vez em: &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Activar Expiração da Senha&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Dias antes da mudança permitida:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Dias antes da mudança pedida:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Dias de aviso antes da mudança:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Dias antes da desactivação da conta:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Informação da Senha&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Seleccione os grupos de que o utilizador irá ser membro:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Dados do Grupo&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Seleccione os utilizadores a juntar a este grupo:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Utilizadores do Grupo&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Editar Grupos/Utilizadores&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Ocorreu um erro:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Fechar&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Direitos de Autor (C) %s Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Gestão de Utilizadores&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Zé &lt;ze@mandriva.org&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;O campo do nome está vazio, por favor indique um nome&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;O nome deve conter apenas letras minúsculas, números, '-' e '_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Nome demasiado comprido&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Erro&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;erro desconhecido&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Erro ao criar `%s': %s&quot;
+
+<a id="userdrake2tags1133popt_BRpo">Added: userdrake2/tags/1.13.3/po/pt_BR.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/pt_BR.po (rev 0)
++++ userdrake2/tags/1.13.3/po/pt_BR.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,770 @@
++# translation of userdrake-pt_BR.po to
++# translation of userdrake-pt_BR.po to Português do Brasil
++# translation of userdrake-pt_BR.po to Portugues Brasileiro
++# Copyright (C) 2000,2003, 2004 Free Software Foundation, Inc.
++#
++# ANDREI BOSCO BEZERRA TORRES &lt;ANDREIBT@UOL.COM.BR&gt;, 2000.
++# Bruno Dorfman Buys &lt;brunobuys@zipmail.com.br&gt;, 2002.
++# Carlos Roberto Mafra &lt;crmafra@mafra.eti.br&gt;, 2002.
++# Clovis Nogueira Jr &lt;linux_pt_BR@yahoogrupos.com.br&gt;, 2003.
++# Felipe Araújo Barros &lt;tenfelipe@brturbo.com&gt;, 2003.
++# Tiago Cruz &lt;tiagocruz@linuxdicas.com.br&gt;, 2003.
++# Ricardo de Castilho &lt;cast_brasil@ig.com.br&gt;, 2003.
++# Gustavo Sverzut Barbieri &lt;gustavo@linuxdicas.com.br&gt;, 2003.
++# Jeferson Lopes Zacco aka Wooky &lt;wooky_linuxer@ig.com.br&gt;, 2003.
++# Klaus Orian Vicaro &lt;kvicaro@gmx.net&gt;, 2004.
++# Wanderlei Antonio Cavassin &lt;cavasin@mandriva.com&gt;, 2006.
++# Sergio Rafael Lemke &lt;sergio@mandriva.com.br&gt;, 2009, 2010.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-pt_BR\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2010-02-03 17:48-0200\n&quot;
++&quot;Last-Translator: Sergio Rafael Lemke &lt;sergio@mandriva.com.br&gt;\n&quot;
++&quot;Language-Team: Brazilian Portuguese &lt;cooker-i18n@mandrivalinux.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: Lokalize 1.0\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n &gt; 1);\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Erro ao ler `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Erro ao criar `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Erro ao remover `%s': %s&quot;
++
++#: ../USER/USER.xs:490, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Criação da conta falhou: '%s'.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;Não foi possível obter número Uid&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;Não consigo pegar o valor&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Erro ao criar mail spool.\n&quot;
++
++#: ../USER/USER.xs:582, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Usuário não pôde ser modificado: '%s'.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Usuário não pôde ser excluído: ''%s'.\n&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;Falha ao definir senha: '%s'.\n&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;erro desconhecido&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;A criação do grupo falhou.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;Grupo não pôde ser modificado: '%s'.\n&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;Grupo não pôde ser excluído: '%s'.\n&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;Sem diretório home para o usuário.\n&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Diretório Home não pôde ser excluído: '/s'.\n&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Erro ao remover o mail spool.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Carregando Usuários e Grupos... Aguarde por favor&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Ferramenta Mageia de Gerenciamento de Usuários&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;/_Instalar conta para convidado&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;/_Remover conta para convidado&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Ações&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Editar&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Apagar&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Opções&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Filtrar usuários do sistema&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Arquivo&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Atualizar&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Encerrar&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Adicionar usuário&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/_Adicionar grupo&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Ajuda&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Relatório bugs&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Sobre...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Procurar:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Aplicar filtro&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Usuários&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Grupos&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Usuários e Grupos&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Nome do usuário&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ID do Usuário&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Grupo primário&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Nome completo&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Login&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Diretório do usuário&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Estado&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Nome do grupo&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ID do Grupo&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Membros do Grupo&quot;
++
++# broken into two lines to avoid too large a button
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Adicionar Usuário&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Adiciona um usuário ao sistema&quot;
++
++# broken into two lines to avoid too large a button
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Adicionar Grupo&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Adicionar um grupo ao sistema&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Editar&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Editar linha selecionada&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Apagar&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Apagar linha selecionada&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Atualizar&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Atualizar a lista de usuários&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Bloqueado&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Expirada&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Clique no ícone para mudá-lo&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Criar novo usuário&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Criar diretório principal do usuário&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Diretório principal&quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Criar grupo privado para este usuário&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Informe manualmente o ID deste usuário&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Esse usuário já existe. Por favor escolha outro nome.&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Senha diferente&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Esta senha é muito simples. \n&quot;
++&quot;Senhas seguras devem ter mais de 6 caracteres.&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;UID do usuário &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Criar um usuário com uma UID menor que 500 não é recomendado.\n&quot;
++&quot;Você tem certeza que quer isso?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Adicionando %s ao grupo 'users'&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Criando novo grupo: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Adicionando usuário: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Assistente de migração&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;Você deseja executar o assistente de migração para importar documentos e &quot;
++&quot;configurações do Windows para a sua distribuição Mageia?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Cancelar&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Ok&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID:&quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Escolha um grupo&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Adicione a um grupo existente&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Adicione usuário ao grupo&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Um grupo com este nome já existe. O que você quer fazer?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Criar Novo Grupo&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Informe manualmente o ID do grupo&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Este grupo já existe. Por favor, escolha outro nome&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;Identificação do Grupo é &lt; de 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Não é recomendado criar um grupo com identificação &lt; que 500.\n&quot;
++&quot;Você tem certeza que quer isso?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Adicionando grupo: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Apagar arquivos ou não&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Apagando usuário %s\n&quot;
++&quot;Fazendo também as seguintes ações\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Apagar Diretório principal do usuário: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Excluir Caixa de Correio: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Removendo usuário(s): %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Você deseja realmente excluir o grupo %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s é o grupo principal do usuário %s\n&quot;
++&quot;Primeiro apague o usuário&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Removendo grupo(s): %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Nome completo:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Login:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Senha:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Confirme a senha:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Login:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Nome do grupo:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Por favor, selecione ao menos um grupo para este usuário&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Favor informe Ano, Mês e Dia\n&quot;
++&quot;do vencimento desta conta&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Favor preencher todos os campos da senha\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Você não pode remover o usuário '%s' deste grupo primário&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Início:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Dados do usuário&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Permite vencimento da conta&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Conta expira em (AAA-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Bloquear a conta do usuário&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Informações da conta&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Última mudança de senha em: &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Permite vencimento da senha&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Dias antes do vencimento:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Dias depois do vencimento:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Dias para avisar antes do vencimento:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Dias antes de conta inativa:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Informações de Senha&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Selecione os grupos que este usuário será membro:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Lista de grupos&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Selecione os usuários para juntar-se a este grupo:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Grupo de Usuários&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Editar Grupos / Usuários&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Um erro ocorreu:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Fechar&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Copyright (C) %s por Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Gerenciamento de Usuários&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++&quot;Cristiano Otto Von Trompczynski &lt;cris@mandriva.com&gt;\n&quot;
++&quot;Arthur Renato Mello &lt;renato@conectiva.com.br&gt;\n&quot;
++&quot;Felipe Arruda &lt;felipemiguel@gmail.com&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;O campo do nome está vazio! Coloque um nome&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;O nome deve conter apenas caracteres minúsculos, números,'-' e '_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Nome muito grande&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Erro&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;erro desconhecido&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Erro ao criar `%s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Autores:&quot;
+
+<a id="userdrake2tags1133poropo">Added: userdrake2/tags/1.13.3/po/ro.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/ro.po (rev 0)
++++ userdrake2/tags/1.13.3/po/ro.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,802 @@
++# Translation of userdrake.po to Romanian
++# Copyright (c) 1999-2010 Mandriva
++#
++# Vă rugăm să nu actualizaţi fișierul, cu excepția cazului în care sînteți
++# sigur de calitatea traducerii dumneavoastră, de gramatică și de ortografie.
++# Acestea din urmă sînt de prea multe ori aproximative.
++# Corectarea lor ulterioară nu are nici un alt rezultat decît acela de
++# pierdere de timp pentru toata lumea.
++#
++# VĂ RUGĂM SĂ RESPECTAȚI SEMNELE DE PUNCTUAȚIE ALE LIMBII ROMÂNE!
++#
++# Nu suprimați spațiul care urmează unui semn de punctuație de sfîrșit de
++# frază; trebuie respectată versiunea originală. În acest caz, este foarte
++# probabil ca programul să afișeze un mesaj la sfîrșit. Suprimînd acel spațiu,
++# cele două cuvintele vor fi afișate legat.
++#
++# Traduceți de manieră INTELIGENTĂ (de ce nu și prin comparație cu alte
++# traduceri ale acestui fișier în alte limbi) și nu cuvînt cu cuvînt. Unele
++# astfel de traduceri nu au nici un sens în limba română.
++#
++# ATENȚIE LA FONTURILE UTILIZATE! Pentru a reda corect diacriticele folosiți
++# disponerea tastaturii românească standard, codarea de caractere UTF-8 și
++# asigurați-vă că fonturile utilizate sînt cu virgulițe, NU CU SEDILE!
++# Exemplu:
++# font incorect (cu sedile): şŞ ţŢ
++# font corect (cu virgule): șȘ țȚ
++#
++# Pentru a vă asigura că folosiți fonturile corecte, vizitați:
++# http://i18n.ro/Fonturi_romanesti/testare
++#
++# Vă mulțumim pentru înțelegere.
++# Echipa de traducători,
++# www.Mandrivausers.ro
++#
++# Traducători de-a lungul timpului:
++#
++#
++# Harald ERSCH &lt;hersch@romatsa.ro&gt;, 2002, 2003.
++# Ovidiu CONSTANTIN &lt;ovidiu.constantin@gmx.net&gt;, 2003.
++# Ovidiu CONSTANTIN &lt;ovidiusoft@gmail.com&gt;, 2004.
++# Cristian Ionuț PÎRÎU &lt;piriu.cristian@rdslink.ro&gt;, 2008.
++# Florin Cătălin RUSSEN &lt;cfrussen@yahoo.co.uk&gt;, 2009, 2010.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake\n&quot;
++&quot;Report-Msgid-Bugs-To: https://qa.mandriva.com\n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2010-05-30 14:07+0100\n&quot;
++&quot;Last-Translator: Cătălin Florin RUSSEN &lt;cfrussen@yahoo.co.uk&gt;\n&quot;
++&quot;Language-Team: Romanian &lt;cooker-i18n@mandrivalinux.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=3;plural=(n==1?0:(((n%100&gt;19)||((n%100==0)&amp;&amp;(n!=0)))?&quot;
++&quot;2:1))\n&quot;
++&quot;X-Generator: Lokalize 1.0\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Eroare la citirea „%s”: %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Eroare la crearea „%s”: %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Eroare la înlăturarea „%s”: %s&quot;
++
++#: ../USER/USER.xs:490
++#, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Crearea contului a eșuat: „%s”.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;Nu se poate obține numărul Uid&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;Nu se poate prelua valoarea&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Eroare la crearea cozii de mesaje.\n&quot;
++
++#: ../USER/USER.xs:582
++#, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Utilizatorul nu poate fi modificat: „%s”.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Utilizatorul nu poate fi șters: „%s”.\n&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;Configurarea parolei a eșuat: „%s”.\n&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;eroare necunoscută&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Crearea grupului a eșuat.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;Grupul nu poate fi modificat: „%s”.\n&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;Grupul nu poate fi șters: „%s”.\n&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;Utilizatorul nu are director personal.\n&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Directorul personal nu poate fi șters: „%s”.\n&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Eroare la ștergerea cozii de mesaje.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Se încarcă utilizatorii și grupurile... Aașteptați vă rog&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Unealta Mageia de gestionat utilizatori&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;/_Instalează contul invitat&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;/_Dezinstalează contul invitat&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Acțiuni&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Editează&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Șterge&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Opțiuni&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Filtrare utilizatori sistem&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Fișier&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Împrospătare&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Terminare&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Adaugă un utilizator&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Adaugă un _grup&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Ajutor&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Raportare eroare&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Despre...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Căutare: &quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Aplică filtru&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Utilizatori&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Grupuri&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Utilizatori și grupuri&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Nume utilizator&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ID utilizator&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Grup principal&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Nume complet&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Interpretor de comenzi&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Director personal&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Stare&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Nume grup&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ID Grup&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Membrii grupului&quot;
++
++# broken into two lines to avoid too large a button
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;&quot;
++&quot;Adaugă un\n&quot;
++&quot;utilizator&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Adăugați un utilizator în sistem&quot;
++
++# broken into two lines to avoid too large a button
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;&quot;
++&quot;Adaugă\n&quot;
++&quot;un grup&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Adăugați un grup în sistem&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Editează&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Editați rîndul selectat&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Șterge&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Ștergeți rîndul selectat&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Împrospătare&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Împrospătează lista&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Blocat&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Expirat&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Faceți clic pe pictogramă pentru a o schimba&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Creați un utilizator nou&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Creează directorul personal&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Director personal: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Creează un grup privat pentru utilizator&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Specificați manual ID utilizator&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Acest utilizator există deja, folosiți un alt nume de utilizator&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Nepotrivire de parolă&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Această parolă este prea simplă. \n&quot;
++&quot; Parolele bune ar trebui să fie &gt; de 6 caractere&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Identificatorul utilizatorului este &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Nu se recomandă crearea unui utilizator cu un identificator mai mic de 500.\n&quot;
++&quot; Chiar doriți acest lucru?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Se adaugă %s în grupul „users”&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Se creează un grup nou: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Se adaugă utilizatorul: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Asistent de migrare&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;Doriți să rulați asistentul de migrare pentru a prelua documentele și &quot;
++&quot;configurările din Windows în distribuția Mageia?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Anulează&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Ok&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Alegeți grupul&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Adaugă la grupul existent&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Adaugă la grupul „users”&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Un grup cu acest nume există deja. Ce doriți să faceți?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Creează un grup nou&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Specificați manual ID grup&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Grupul cu acest nume există deja, alegeți un alt nume pentru grup.&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; Identificatorul grupului este &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Nu se recomandă crearea unui grup cu un identificator mai mic de 500.\n&quot;
++&quot; Chiar doriți acest lucru?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Se adaugă grupul: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Ștergeți sau nu fișierele?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Se șterge utilizatorul %s\n&quot;
++&quot; Se mai efectuează și următoarele acțiuni\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Șterge directorul personal: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Șterge căsuța poștală: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Se șterge utilizatorul: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Sigur doriți să ștergeți grupul %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s este grupul principal pentru utilizatorul %s\n&quot;
++&quot; Ștergeți mai întîi utilizatorul&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Se înlătură grupul: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Nume complet: &quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Autentificare: &quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Parolă: &quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Confirmare parolă: &quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Interpretor de comenzi: &quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Nume grup: &quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Selectați cel putin un grup pentru utilizator&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Specificați anul, luna și ziua \n&quot;
++&quot; de expirare a contului &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Completați toate cîmpurile de expirare a parolei\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Nu se poate înlătura utilizatorul „%s” din grupul său principal&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Director personal: &quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Date despre utilizator&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Activează expirarea contului&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Contul expiră (YYYY-MM-DD): &quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Blochează contul utilizator&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Informații despre cont&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Utilizatorul a modificat parola ultima dată în: &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Activează expirarea parolei&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Numărul de zile înainte de a permite schimbarea: &quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Numărul de zile înaintea schimbării: &quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Numărul de zile înaintea avertizării: &quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Numărul de zile înaintea dezactivării contului: &quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Informații despre parolă&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Selectați grupurile cărora utilizatorul va aparține: &quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Date despre grup&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Selectați utilizatorii ce vor aparține acestui grup: &quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Membrii grupului&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Editare grupuri / utilizatori&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;S-a produs o eroare:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Închide&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Drepturi de autor (C) %s Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Gestionare utilizatori&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++&quot;_: Traducători &amp; @mail\n&quot;
++&quot;Harald ERSCH &lt;hersch@romatsa.ro&gt;, 2002, 2003\n&quot;
++&quot;Ovidiu CONSTANTIN &lt;ovidiu.constantin@gmx.net&gt;, 2003\n&quot;
++&quot;Ovidiu CONSTANTIN &lt;ovidiusoft@gmail.com&gt;, 2004\n&quot;
++&quot;Cristian Ionuț PÎRÎU &lt;piriu.cristian@rdslink.ro&gt;, 2008\n&quot;
++&quot;Florin Cătălin RUSSEN &lt;cfrussen@yahoo.co.uk&gt;, 2009, 2010.\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Cîmpul numelui nu poate fi gol, indicați un nume&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;Numele trebuie să conțină numai litere mici, numere, „-” și „_”&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Numele este prea lung&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Eroare&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;eroare necunoscută&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Eroare la crearea `%s': %s&quot;
+
+<a id="userdrake2tags1133porupo">Added: userdrake2/tags/1.13.3/po/ru.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/ru.po (rev 0)
++++ userdrake2/tags/1.13.3/po/ru.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,767 @@
++# translation of ru.po to Russian
++# Translation of userdrake messages to Russian
++# Copyright (C) 2001,2003, 2004, 2008, 2009 Free Software Foundation, Inc.
++# Copyright (c) 2001 Mandriva.
++#
++# Vladimir Choundalov &lt;choundalovvv@point.pwp.ru&gt;, 2001.
++# Pavel Maryanov &lt;acid_jack@ukr.net&gt;, 2002, 2004, 2008.
++# Alice Lafox &lt;alice@lafox.com.ua&gt;, 2003.
++# Alice Lafox &lt;alice@lafox.net&gt;, 2004.
++# akdengi &lt;kazancas@mandriva.ru&gt;, 2008, 2009.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: ru\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2009-10-18 11:15+0500\n&quot;
++&quot;Last-Translator: akdengi &lt;kazancas@mandriva.ru&gt;\n&quot;
++&quot;Language-Team: Russian &lt;gnu@mx.ru&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n!=1);\n&quot;
++&quot;\n&quot;
++&quot;X-Language: ru_RU\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Ошибка чтения `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Ошибка создания `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Ошибка удаления `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Ошибка создания аккаунта: '%s'.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;Невозможно получить номер Uid&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;Невозможно вернуть значение&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Ошибка создания почтового спула.\n&quot;
++
++#: ../USER/USER.xs:582
++#, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Пользователь не может быть изменен: : '%s'.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Пользователь не может быть удален: '%s'.\n&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;Сбой установки пароля: '%s'.\n&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;неизвестная ошибка&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Ошибка создания группы.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;Группа не может быть изменена: '%s'.\n&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;Группа не может быть удалена: '%s'.\n&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;Нет домашней директории для пользователя.\n&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Домашняя директория не может быть удалена: '%s'.\n&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Ошибка удаления почтового спула.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Загружаются пользователи и группы... Подождите, пожалуйста&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Утилита для управления пользователями Mageia&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;/_Установка гостевого доступа&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;/_Удаление гостевого доступа&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Действия&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Редактировать&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Удалить&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Опции&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Отфильтровать системных пользователей&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Файл&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Обновить&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Выход&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/Добавить _пользователя&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Добавить _группу&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Справка&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Сообщить об ошибке&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_О программе...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Поиск:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Применить фильтр&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Пользователи&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Группы&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Пользователи и группы&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Имя пользователя&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ID пользователя&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Главная группа&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Полное имя&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Оболочка входа&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Домашний каталог&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Статус&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Имя группы&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ID группы&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Члены группы&quot;
++
++# broken into two lines to avoid too large a button
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;&quot;
++&quot;Добавить\n&quot;
++&quot;пользователя&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Добавить пользователя в систему&quot;
++
++# broken into two lines to avoid too large a button
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;&quot;
++&quot;Добавить\n&quot;
++&quot;группу&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Добавить группу в систему&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Редактировать&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Редактировать выбранную строку&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Удалить&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Удалить выбранную строку&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Обновить&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Обновить список&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Заблокирован&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Срок действия истёк&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Щёлкните по значку, чтобы сменить его&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Создать нового пользователя&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Создать домашний каталог&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Домашний каталог:&quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Создать личную группу для пользователя&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Указать ID пользователя вручную&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Пользователь уже существует, выберите другое Имя пользователя&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Пароли не совпадают&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Этот пароль слишком прост. \n&quot;
++&quot;Хорошие пароли должны быть &gt; 6 символов&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;UID пользователя &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Создавать пользователей с UID меньше 500 не рекомендуется.\n&quot;
++&quot;Вы уверены, что хотите сделать это?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;%s добавляется в группу 'users'&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Создается новая группа: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Добавляется пользователь: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Мастер миграции&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;Запустить мастер миграции, чтобы импортировать документы и настройки Windows &quot;
++&quot;в данный дистрибутив Mageia?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Отмена&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Ок&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Выбрать группу&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Добавить в существующую группу&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Добавить в группу 'users'&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Группа с таким именем уже существует. Что вы хотите сделать?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Создать новую группу&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Указать ID группы вручную&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Группа уже существует, выберите другое Имя группы&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;GID группы &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Создавать группы с GID менее 500 не рекомендуется.\n&quot;
++&quot;Вы уверены, что хотите сделать это?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Добавляется группа: %s&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Удалить файлы или нет?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Удаляется пользователь %s\n&quot;
++&quot; Также выполняются следующие действия\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Удалить домашний каталог: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Удалить почтовый ящик :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Удаляется пользователь: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Удалить группу %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s является главной группой для пользователя %s\n&quot;
++&quot;Сначала удалите пользователя&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Удаляется группа: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Полное имя:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Логин:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Пароль:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Подтверждение пароля:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Оболочка входа:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Имя группы:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Пожалуйста, выберите для пользователя по крайней мере одну группу&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Укажите год, месяц и день\n&quot;
++&quot;окончания срока действия учётной записи&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Заполните все поля для возраста пароля\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Нельзя удалить пользователя '%s' из его главной группы&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Домашний каталог:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Данные пользователя&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Включить срок действия учётной записи&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Срок действия учётной записи истекает (ГГГГ-ММ-ДД):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Заблокировать учётную запись пользователя&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Информация об учётной записи&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Последний раз пользователь сменил пароль:&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Включить срок действия пароля&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Через сколько дней разрешить изменение:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Через сколько дней потребовать изменение:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;За сколько дней предупреждать об изменении:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Количество дней до отключения учётной записи:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Информация о пароле&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Выберите группы, членом которых будет пользователь:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Данные группы&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Выберите пользователей для присоединения к этой группе:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Группы пользователей&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Редактировать Группы / Пользователей&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Произошла ошибка:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Закрыть&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Copyright (C) %s Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Управление пользователями&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++&quot;Pavel Maryanov &lt;acid_jack@ukr.net&gt;, 2002, 2003, 2005, 2006, 2008.\n&quot;
++&quot;Alexander Kazancev &lt;kazancas@mandriva.org&gt; 2010\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Поле имени не заполнено. Укажите имя.&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++&quot;Имя должно содержать только латинские символы нижнего регистра, цифры, `-' и &quot;
++&quot;`_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Имя слишком длинное&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Ошибка&quot;
++
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;неизвестная ошибка&quot;
++
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Ошибка создания `%s': %s&quot;
+
+<a id="userdrake2tags1133poscpo">Added: userdrake2/tags/1.13.3/po/sc.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/sc.po (rev 0)
++++ userdrake2/tags/1.13.3/po/sc.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,756 @@
++# translation of userdrake-sc.po to Sardu
++# translation of userdrake to Sardu
++# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
++# Antonio Pistis &lt;antonio.pistis@virgilio.it&gt;, 2004.
++# Antoni Pistis &lt;antonio.pistis@virgilio.it&gt;, 2005.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-sc\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2005-01-29 12:56+0100\n&quot;
++&quot;Last-Translator: Antoni Pistis &lt;antonio.pistis@virgilio.it&gt;\n&quot;
++&quot;Language-Team: Sardu\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.3\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Faddina ligendi `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Faddina creendi `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Faddina srexinendi `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Faddina creendi coa de posta.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Faddina creendi coa de posta.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Faddina creendi coa de posta.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;faddina disconnota&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Faddina creendi coa de posta.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Faddina burrendi coa de posta.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Càrrigu Umperadoris e Grupus... Po praxeri, abeta&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Aina de maniju umperadoris Mageia&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/At_zionis&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Muda&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Burra&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/Sc_eras&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Cilira is umperadoris de su sistema&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_File&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/A_rrecasça&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Bessi&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Açungi umperadori&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Açungi _Grupu&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/A_judu&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/A_rrelata Farta&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/A_pitzus de...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Circa:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Àpriga ciliru&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Umperadoris&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Grupus&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Umperadoris e Grupus&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Nòmini umperadori&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ID umperadori&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Grupu Primàriu&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Nòmini prenu&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Shell de login&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Home Directory&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Stadu&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Nòmini Grupu&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;IP Grupu&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Membrus de su Grupu&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Açungi Umperadori&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Açungi unu umperadori a su sistema&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Açungi Grupu&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Açungi unu grupu a su sistema&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Muda&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Muda s'arraya sçoberada&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Burra&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Burra s'arraya sçoberada&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Arrecasça&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Arrecasça sa lista&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Arrocu&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Scadèssiu&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Craca me in sa màgini po da cambiai&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Crea Umperadori Nou&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Crea Home Directory&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Home Directory: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Crea unu grupu personali po s'umperadori&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Indita su ID umperadori a manu&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;S'umperadori esistit jai, sçobera un'atru Nòmini Umperadori&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Disacòrdiu de password&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Custa password est tropu simpli. \n&quot;
++&quot; Is passwords bonas iant a bolli &gt; 6 caràteris&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Sa Uid umperadori est &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Creai unu umperadori cun d-unu UID prus basçu de 500 no est cunsillau.\n&quot;
++&quot; Ses siguru ki du bolis fàiri?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Ponju %s in su grupu 'umperadoris'&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Creu su grupu nou: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Açungu umperadori: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Annudda&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Ok&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Sçobera grupu&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Açungi a grupu&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Açungi a su grupu 'umperadoris'&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Unu grupu cun custu nòmini esistit jai. Ita bolis fàiri?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Crea Grupu Nou&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Indita ID Grupu a manu&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Su Grupu esistit jai, po praxeri, sçobera un'atru nòmini grupu&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;Su Gid de su Grupu est &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Creai unu grupu cun d-unu GID prus basçu de 500 no est cunsillau.\n&quot;
++&quot; Ses siguru de du bolis fàiri?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Açungu Grupu: %s&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Burrai o no is file?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Burru umperadori %s\n&quot;
++&quot; Fatzu puru cantu sighit\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Burra sa Home Directory: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Burra sa Mailbox :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Srexinendi umperadori: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Diaderus bolis burrai su grupu %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s est unu grupu primàriu po s'umperadori %s\n&quot;
++&quot; Burra s'umperadori a innantis&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Srèxinu grupu: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Nòmini prenu:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Login:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Password:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Cunfirma sa Password:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Shell de login:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Nòmini Grupu:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Sçobera a su mancu unu grupu po s'umperadori&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Po praxeri, indita Annu, Mesi e Dì \n&quot;
++&quot; po sa Scadèssida de s'Account &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Preni totu is campus po sa scadèssida de sa password\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;No podis srexinai s'umperadori '%s' de su grupu suu primàriu&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Home:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Dadus Umperadori&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Abiva sa scadèssida de s'account&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;S'account scadessit (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Arroca s'account umperadori&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Account Info&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;S'umperadori at mudau a ùrtimu sa password :&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Abiva sa scadèssida de sa password&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Dìs antis de podi mudai:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Dìs antis de depi mudai :&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Dìs de avertimentu antis de sa muda :&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Dìs antis de disabivai s'account :&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Password Info&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Sçobera is grupu ki s'umperadori at a essi membru :&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Dadus Grupu&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Sçobera is umperadoris de uniri a custu grupu :&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Umperadoris de su Grupu&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Muda Grupus / Umperadoris&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Faddina&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Serra&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Maniju Umperadoris&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Antoni Pistis &lt;antonio.pistis@virgilio.it&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Su campu \&quot;nòmini\&quot; est sbuidu, po praxeri, intra unu nòmini&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++&quot;Su nòmini depit cuntenni feti lìteras latinas piticas, nùmerus, `-' e `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Su nòmini est tropu longu&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Faddina&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;faddina disconnota&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Faddina creendi `%s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Autoris: &quot;
+
+<a id="userdrake2tags1133poskpo">Added: userdrake2/tags/1.13.3/po/sk.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/sk.po (rev 0)
++++ userdrake2/tags/1.13.3/po/sk.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,753 @@
++# translation of userdrake-sk.po to
++# Pavol Cvengros &lt;orpheus@hq.alert.sk&gt;, 2000.
++# Tibor Pittich &lt;Tibor.Pittich@phuture.sk&gt;, 2003, 2004.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-sk\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2004-09-13 10:08+0200\n&quot;
++&quot;Last-Translator: \n&quot;
++&quot;Language-Team: &lt;sk@li.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.9\n&quot;
++&quot;Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n&gt;=2 &amp;&amp; n&lt;=4) ? 1 : 2;\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Chyba v čítaní `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Chyba vo vytváraní `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Chyba v odstraOovaní oužívateľa: `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Chyba vo vytváraní fronty e-mailov.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Chyba vo vytváraní fronty e-mailov.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Chyba vo vytváraní fronty e-mailov.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;neznáma chyba&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Chyba vo vytváraní fronty e-mailov.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Chyba pri vymazávaní fronty e-mailov.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Načítavajú sa používatelia a skupiny... Čakajte prosím&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageia nástroj pre správu používateľov&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Akcie&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Upraviť&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Vymazať&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Nastavenia&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Filtrovať systémových používateľov&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Súbor&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Obnoviť&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Koniec&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Pridať používateľa&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Pridať_skupinu&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Pomoc&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Oznámiť chybu&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_O ...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Hľadať:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Aplikovať filter&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Používatelia&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Skupiny&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Používatelia a skupiny&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Používateľské meno&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ID používateľa&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Primárna skupina&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Celé meno&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Prihlasovací shell&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Domovský adresár&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Stav&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Meno skupiny&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ID skupiny&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Členovia skupiny&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Pridať používateľa&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Pridať používateľa do systému&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Pridať skupinu&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Pridať skupinu do systému&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Upraviť&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Zmeniť označený riadok&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Zmazať&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Vymazať označený riadok&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Obnoviť&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Obnoviť zoznam&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Zablokované&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Expirácia&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Kliknite na ikonu pre zmenu&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Vytvoriť nového používateľa&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Vytvoriť domovský adresár&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Domovský adresár:&quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Vytvorenie privátnej skupiny pre používateľa&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Špecifikovať ID používateľa&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Používateľ už existuje, vyberte si iné používateľské meno&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Heslá nie sú zhodné&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Toto heslo je príliš jednoduché. \n&quot;
++&quot; Vhodné heslo by malo mať aspoň 6 znakov&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;ID používateľa je &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Vytvorenie používateľa s UID menším ako 500 nie je odporúčané.\n&quot;
++&quot; Naozaj si to želáte?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Priradenie %s do skupiny 'users'&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Vytvoriť novú skupinu: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Pridávanie používateľa: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Zrušiť&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Ok&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID:&quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Výber skupiny&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Pridať do existujúcej skupiny&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Pridať do skupiny 'users'&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Skupina s takýmto menom už existuje. Čo chcete teraz spraviť?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Vytvoriť novú skupinu&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Špecifikovať GID skupiny&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Skupina už existuje, zvoľte si prosím iné meno skupiny&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;Skupinové gid je &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Vytvorenie skupiny s GID menej ako 500 nie je odporučené.\n&quot;
++&quot; Ste si istí že to chcete?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Pridávanie skupiny: %s&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID:&quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Vymazať súbory?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Vymazenie používateľa %s\n&quot;
++&quot; Vykonajú sa aj nasledovné akcie\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Vymazať domovský adresár: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Vymazať mailbox :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Odstránenie používateľa: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Naozaj chcete vymazať skupinu %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s je primárna skupina pre používateľa %s\n&quot;
++&quot; Najprv odstráňte používateľa&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Odstránenie skupiny: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Celé meno:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Používateľské meno:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Heslo:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Potvrdiť heslo:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Prihlasovací shell:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Meno skupiny:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Vyberte prosím aspoň jednu skupinu pre používateľa&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Vyšpecifikujte prosím rok, mesiac a deň\n&quot;
++&quot; kedy má byť konto zneplatnené&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Vyplňte prosím všetky položky pri nastavovaní platnosti hesla\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Nie je možné odstrániť používateľa '%s' z jeho primárnej skupiny&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Domovský adresár:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Používateľské údaje&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Povoliť vypršanie platnosti účtov&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Vypršanie platnosti účtu (ROK-MES-DEN):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Zablokovať používateľský účet&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Informácie o účte&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Používateľ si naposledy zmenil heslo:&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Povoliť expiráciu hesiel&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Dní pre povolenou zmenou hesla :&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Dni pred vyžadovanou zmenou :&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Koľko dní varovať pred zmenou :&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Dní pred deaktivovaním konta :&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Informácie o hesle&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Označiť skupiny ktorých má byť používateľ členom:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Údaje skupiny&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Vybrať používateľov pre zaradenie do tejto skupiny :&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Skupina používateľov&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Upraviť Skupiny / Používateľov&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Vyskytla sa chyba&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Zatvoriť&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Manažovanie používateľov&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Tibor Pittich &lt;Tibor.Pittich@mandriva.org&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Položka s menom je prázdna, zadajte prosím meno&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;Meno musí obsahovať iba malé písmená, čísla, `-' a `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Meno je príliš dlhé&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Chyba&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;neznáma chyba&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Chyba vo vytváraní `%s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Autori:&quot;
+
+<a id="userdrake2tags1133poslpo">Added: userdrake2/tags/1.13.3/po/sl.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/sl.po (rev 0)
++++ userdrake2/tags/1.13.3/po/sl.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,759 @@
++# translation of sl.po to Slovenščina
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/sl.php3
++#
++# Copyright (C) 2003, 2004, 2007 Free Software Foundation, Inc.
++#
++# Gregor Pirnaver &lt;gregor.pirnaver@email.si&gt;, 2002.
++# Gregor Pirnaver &lt;gregor.pirnaver@siol.net&gt;, 2003.
++# Mitja Masten &lt;mitja.masten@email.si&gt;, 2003.
++# Gregor Pirnaver &lt;gregor.pirnaver@mandrakeprinas.org&gt;, 2004.
++# Jure Repinc &lt;jlp@holodeck1.com&gt;, 2007, 2009, 2010.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: sl\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2010-05-09 20:40+0200\n&quot;
++&quot;Last-Translator: Jure Repinc &lt;jlp@holodeck1.com&gt;\n&quot;
++&quot;Language-Team: Slovenian &lt;lugos-slo@lugos.si&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: Lokalize 1.0\n&quot;
++&quot;Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || &quot;
++&quot;n%100==4 ? 2 : 3);\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Napaka pri branju »%s«: %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Napaka pri ustvarjanju `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Napaka pri odstranjevanju `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Ustvarjanje računa ni uspelo: %s.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;Ni moč pridobiti številke uporabnika&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;Ni moč pridobiti vrednosti&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Napaka pri ustvarjanju poštnega navitka (mail spool).\n&quot;
++
++#: ../USER/USER.xs:582
++#, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Uporabnika ni bilo moč spremeniti: %s.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Uporabnika ni bilo moč izbrisati: %s.\n&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;Gesla ni bilo moč nastaviti: %s.\n&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;neznana napaka&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Ustvaritev skupine ni uspela.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;Skupine ni bilo moč spremeniti: %s.\n&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;Skupine ni bilo moč izbrisati: %s.\n&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;Za uporabnika ni domače mape.\n&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Domače mape ni bilo moč izbrisati: %s\n&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Napaka pri odstranjevanju poštnega navitka (mail spool).\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Nalaganje uporabnikov in skupin... Prosim počakajte&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageia orodje za upravljanje z uporabniki&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;/_Namesti račun za goste&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;/_Odstrani račun za goste&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Dejanja&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Uredi&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Zbriši&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Možnosti&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Filtriraj sistemske uporabnike&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Datoteka&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Osveži&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Končaj&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Dodaj uporabnika&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Dodaj _Skupino&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Pomoč&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Poročaj o hrošču&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_O...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Iskanje:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Uporabi filter&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Uporabniki&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Skupine&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Uporabniki in skupine&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Uporabniško ime&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ID uporabnika&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Primarna skupina&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Polno ime&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Prijavna lupina&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Domača mapa&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Stanje&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Ime skupine&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ID skupine&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Člani skupine&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Dodaj uporabnika&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Dodaj uporabnika v sistem&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Dodaj skupino&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Dodaj skupino v sistem&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Uredi&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Uredi izbrano vrstico&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Zbriši&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Zbriši izbrano vrstico&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Osveži&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Osveži spisek&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Zaklenjeno&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Potečeno&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Kliknite ikono, če jo želite spremeniti.&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Ustvari novega uporabnika&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Ustvari domačo mapo&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Domača mapa: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Ustvari zasebno skupino za uporabnika&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Ročno določi ID uporabnika:&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Uporabniško ime že obstaja, prosim izberite drugo uporabniško ime&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Neujemanje gesla&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Geslo je preenostavno. \n&quot;
++&quot; Dobro geslo je dolgo vsaj šest znakov&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Uporabnikov Uid je &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Ustvarjanje uporabnika z UID manjšim od 500 ni priporočeno.\n&quot;
++&quot;Ali ste prepričani, da želite narediti prav to?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Vstavljam %s v 'uporabniško' skupino&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Ustvarjanje nove skupine: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Dodajanje uporabnika: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Čarovnik za selitev&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;Ali želite zagnati čarovnika za selitev, ki vam pomaga uvoziti dokumente in &quot;
++&quot;nastavitve iz Windows v Mageia?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Prekliči&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Potrdi&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Izberi skupino&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Dodaj v obstoječo skupino&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Dodaj v uporabniško skupino&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Skupina s tem imenom že obstaja. Kaj bi želeli narediti?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Ustvari novo skupino&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Ročno določi ID skupine&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Skupina že obstaja, prosim izberite drugo ime skupine&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;Gid skupine je &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Ustvarjanje skupine z GID manjšim od 500 ni priporočeno.\n&quot;
++&quot;Ali ste prepričani, da želite narediti prav to?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Dodajanje skupine: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Zbrišem datoteke ali ne?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Brisanje uporabnika %s\n&quot;
++&quot; Prav tako izvrši naslednja dejanja\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Zbriši domačo mapo: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Zbriši poštni nabiralnik :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Odstranjevanje uporabnika: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Ali resnično želite izbrisati skupino %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s je primarna skupina za uporabnika %s\n&quot;
++&quot; Najprej odstranite uporabnika&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Odstranjevanje skupine: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Polno ime:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Uporabniško ime:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Geslo:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Potrdi geslo:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Prijavna lupina:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Ime skupine:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Prosim izberite vsaj eno skupino za uporabnika&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Prosim določite leto, mesec in dan,\n&quot;
++&quot;ko uporabniški račun poteče &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Prosim izpolnite vsa polja o staranju gesla\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Uporabnika ni mogoče odstraniti '%s' iz njegove primarne skupine&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Dom:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Podatki o uporabniku&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Omogoči, da račun poteče&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Uporabniški račun poteče (YYYY-MM-DD oz. leto-mesec-dan):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Zakleni uporabnikov račun&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Podatki o uporabniškem računu&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Uporabnik je nazadnje spremenil geslo: &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Omogoči, da geslo poteče&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Število dnevov preden je dovoljena sprememba:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Število dnevov pred zahtevano spremembo:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Število dnevov opozorila pred spremembo:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Število dnevov pred neaktivnostjo računa:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Podatki o geslu&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Izberite skupine katerih član bo uporabnik:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Podatki o skupini&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Izberite uporabnike za pridružitev tej skupini&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Skupinski uporabniki&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Uredi Skupine / Uporabnike&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Prišlo je do napake:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Zapri&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Avtorske pravice (C) %s Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Upravljanje z uporabniki&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia &quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;_: Imena in e-poštni naslovi prevajalcev\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Polje z imenom je prazno, prosim podajte ime&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;Ime lahko vsebuje le male črke, številke, `-' in `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Ime je predolgo&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Napaka&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;neznana napaka&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Napaka pri ustvarjanju `%s': %s&quot;
+
+<a id="userdrake2tags1133posqpo">Added: userdrake2/tags/1.13.3/po/sq.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/sq.po (rev 0)
++++ userdrake2/tags/1.13.3/po/sq.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,1136 @@
++#
++# Latest versions of po files are at http://www.mandrivalinux.com/l10n/sq.php3
++#
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR Free Software Foundation, Inc.
++# Naim Daka &lt;naim70@freesurf&gt;, 2002.
++#
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake2\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2002-11-12 23:30+0200\n&quot;
++&quot;Last-Translator: Naim Daka &lt;naim70@freesurf.ch&gt;\n&quot;
++&quot;Language-Team: Albanian &lt;LL@li.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8-bit\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#: ../USER/USER.xs:86
++#, fuzzy, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Gabim gjatë ngarkimit të skedares pixmap: %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, fuzzy, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Zhdukja përdoruesit: %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Gabim gjatë ngarkimit të skedares pixmap: %s&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++#, fuzzy
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Gabim gjatë ngarkimit të skedares pixmap: %s&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Gabim gjatë ngarkimit të skedares pixmap: %s&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Gabim gjatë ngarkimit të skedares pixmap: %s&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++#, fuzzy
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Gabim gjatë ngarkimit të skedares pixmap: %s&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Ngarkimi i Përdoruesve dhe i Grupeve... Një moment ju lutemi&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Vegël Qeverisëse për Përdoruesit Mageia&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Akcionet&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Boto&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Zhduke&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Opcionet&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Filter i sistemit të përdoruesve&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Skedare&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Rifreskoje&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Braktise&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Shtoje një përdorues&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Shtoje një grup&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Ndihmë&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Raport Bugi&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Në lidhje me...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Hulumto:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Aplikoje filterin&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Përdoruesitë&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Grupet&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, fuzzy, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Në grupet&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Emri i Përdoruesit&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ID i Përdoruesit&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Grupi Primar&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Emri i Plot&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Login Shell&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Repertori Home&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Statuti&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Emri i Grupit&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Grup ID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Anëtarët e Grupit&quot;
++
++# broken into two lines to avoid too large a button
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Shtoje një Përdorues&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Shtoje një përdorues në sistem&quot;
++
++# broken into two lines to avoid too large a button
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Shtoje një Grup&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Shtoje një grup në sistem&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Boto&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Botoje rreshtin e zgjedhur&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Zhduke&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Zhduke rreshtin e zgjedhur&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Rifreskoje&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Rifreskoje listën&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Mbyllur&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Skadon afati&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Kliko mbi ikonë për ta ndërruar&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Krijo një Përdorues të Ri&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Krijo Repertorin Home&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Repertori Home: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Kroji një grup privat për përdoruesin&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Specifikoje ID e përdoruesit manuelisht&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;&quot;
++&quot;Ky përdorues ekziston, ju lutemi zgjedheni një emër tjetër të Pëdoruesin&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Parulla nuk Përputhet&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Kjo parullë është tejet e thjeshtë. \n&quot;
++&quot; Një parullë e mirë duhet të jetë me &gt; 6 karaktere&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Uid i përdoruesit është &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Krijimi i një përdoruesi me UID, më të vogël se 500 nuk rekomandohet.\n&quot;
++&quot; A jeni i sigurt për këtë veprim?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Shtimi i %s në 'përdoruesit' e grupit&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Krijimi i një grupi të ri: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Shtimi i një përdoruesi: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Anulo&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Ok&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, fuzzy, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Zgjedhe Grupin&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Shtoje në grupin ekzistues&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Shtoi në 'përdoruesit' grup&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Një grup me këtë emër veçse ekziston. Çka dëshironi të bëni?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Krijo një Grup të Ri&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Specifoje grupin e ID manuelisht&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Grupi veçse ekziston, ju lutemi zgjedheni një Emër tjetër të Grupit&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; Grupi Gid është &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Krijimi i një përdoruesi me GID, më të vogël se 500 nuk rekomandohet.\n&quot;
++&quot; A jeni i sigurt për këtë veprim?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Shtimi i një grupi: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, fuzzy, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Zhduke rreshtin e zgjedhur&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Zhdukja e përdoruesit %s\n&quot;
++&quot; Njashtu parashefë akcionet vijuese\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Zhduke Repertorin Home: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Zhduke Mailbox :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Zhdukja përdoruesit: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;A me të vërtet dëshironi ta zhdukni grupin %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s është grup primar për përdoruesin %s\n&quot;
++&quot; Zhduke përdoruesin para se të vazhdosh&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Zhdukja e grupit: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Emri i Plot:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Login:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Parulla:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Konfirmoje Parullën:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Login Shell:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Emri i Grupit:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Ju lutemi zgjedheni më së paku një grup për përdoruesin&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Ju lutemi zgjedheni Vitin, Muajin dhe Ditën \n&quot;
++&quot; për Mbarimin e afatit të Kontos &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Ju lutemi mbushni të gjitha fushat e parullës përsëri\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Ju nuk mund ta zhdukni përdoruesin '%s' nga grupi i tij primar&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Repertori Home:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Të dhënat e përdoruesit&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Mundësoje konton e afatizuar&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Kontoja skadon (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Lidhe Konton e Përdoruesit&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Informcion mbi Konton&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Përdoruesi i fundit e ka ndrryshuar parullën më :&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Mundësoje Mbarimin Afatzgjatës të Parullës&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Ditët para se është mundësuar ndryshimi :&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Ditës para se është nevojitur ndryshimi :&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Ditër para se është ndryshuar vëmendja :&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Ditët para se të jetë dezaktivizuar kontoja :&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Informacion mbi Parullën&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Zgjedhi grupet për të cilat përdoruesi do të jetë anëtar i tyre:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Të dhëna të Grupit&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Zgjedhi përdoruesit të cilët do ti bashkangjiten grupit :&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Grup Përdoruesish&quot;
++
++#: ../userdrake:1127
++#, fuzzy, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Grup Përdoruesish&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Një gabim është paraqitur&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Mbylle&quot;
++
++#: ../userdrake:1277
++#, fuzzy, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;E drejtë autori © 2003 Mandriva SA&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Menagjer për Përdorues&quot;
++
++#: ../userdrake:1282
++#, fuzzy, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mandriva Online&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Emri i fushës është zbrazët ju lutemi furnizoni një emër&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;Emri duhet të përmbaj më së paku shkronja, numra, `-' dhe `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Emri është shumë i gjatë&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Gabim&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Gabim gjatë ngarkimit të skedares pixmap: %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Autorët: &quot;
++
++#~ msgid &quot;Yes&quot;
++#~ msgstr &quot;Po&quot;
++
++#~ msgid &quot;No&quot;
++#~ msgstr &quot;Jo&quot;
++
++#, fuzzy
++#~ msgid &quot;Delete files or not&quot;
++#~ msgstr &quot;Zhduke rreshtin e zgjedhur&quot;
++
++#~ msgid &quot;Warning : Deleting User&quot;
++#~ msgstr &quot;Kujdes : Zhdukja e Përdoruesit&quot;
++
++#~ msgid &quot;Warning : Deleting Group&quot;
++#~ msgstr &quot;Kujdes : Zhdukja e Grupit&quot;
++
++#~ msgid &quot;Generic help on userdrake&quot;
++#~ msgstr &quot;Ndihmë e përgjithshme në userdrake&quot;
++
++#~ msgid &quot;Help&quot;
++#~ msgstr &quot;Ndihmë&quot;
++
++#~ msgid &quot;Delete User&quot;
++#~ msgstr &quot;Zhduke Përdoruesin&quot;
++
++#~ msgid &quot; Remove Home Directory&quot;
++#~ msgstr &quot; Zhduke Repetorin Home&quot;
++
++#~ msgid &quot;Do you want to delete the user's home directory and mail spool?&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;A dëshironi ta zhdukni repertorin home të përdoruesve dhe mail spool?&quot;
++
++#~ msgid &quot;/Filter system users&quot;
++#~ msgstr &quot;/Filter i sistemit të përdoruesve&quot;
++
++#~ msgid &quot;/Options&quot;
++#~ msgstr &quot;/Opcionet&quot;
++
++#~ msgid &quot;/Actions&quot;
++#~ msgstr &quot;/Akcionet&quot;
++
++#~ msgid &quot;/Edit&quot;
++#~ msgstr &quot;/Boto&quot;
++
++#~ msgid &quot;/Delete&quot;
++#~ msgstr &quot;/Zhduke&quot;
++
++#~ msgid &quot;Reload&quot;
++#~ msgstr &quot;Ringarkoje&quot;
++
++#~ msgid &quot;Save&quot;
++#~ msgstr &quot;Shpëtoje&quot;
++
++#~ msgid &quot;Exit&quot;
++#~ msgstr &quot;Dil&quot;
++
++#~ msgid &quot;Settings&quot;
++#~ msgstr &quot;Rregullimet&quot;
++
++#~ msgid &quot;Show tools bar&quot;
++#~ msgstr &quot;Paraqite shufrën e veglave&quot;
++
++#~ msgid &quot;View users&quot;
++#~ msgstr &quot;Çfaqi përdoruesit&quot;
++
++#~ msgid &quot;Preferences&quot;
++#~ msgstr &quot;Përparësit&quot;
++
++#~ msgid &quot;Ldap Server&quot;
++#~ msgstr &quot;Server Ldap&quot;
++
++#~ msgid &quot;Save change&quot;
++#~ msgstr &quot;Shpëtoje ndryshimin&quot;
++
++#~ msgid &quot;Add&quot;
++#~ msgstr &quot;Shto&quot;
++
++#~ msgid &quot;Edit user(s)&quot;
++#~ msgstr &quot;Boto përdorues(it)&quot;
++
++#~ msgid &quot;Remove&quot;
++#~ msgstr &quot;Zhduke&quot;
++
++#~ msgid &quot;Edit group(s)&quot;
++#~ msgstr &quot;Boto grupin(et)&quot;
++
++#~ msgid &quot;User id&quot;
++#~ msgstr &quot;Identiteti i përdoruesit&quot;
++
++#~ msgid &quot;Group id&quot;
++#~ msgstr &quot;Identiteti i grupit&quot;
++
++#~ msgid &quot;Comments&quot;
++#~ msgstr &quot;Komentimet&quot;
++
++#~ msgid &quot;Shell&quot;
++#~ msgstr &quot;Shell&quot;
++
++#~ msgid &quot;name&quot;
++#~ msgstr &quot;emri&quot;
++
++#~ msgid &quot;gid&quot;
++#~ msgstr &quot;n° i grupit&quot;
++
++#~ msgid &quot;passwd&quot;
++#~ msgstr &quot;parulla&quot;
++
++#~ msgid &quot;users&quot;
++#~ msgstr &quot;përdoruesit&quot;
++
++#~ msgid &quot;Parameters&quot;
++#~ msgstr &quot;Parametrat&quot;
++
++#~ msgid &quot;General option&quot;
++#~ msgstr &quot;Opcioni gjeneral&quot;
++
++#~ msgid &quot;Edit accounts on a LDAP directory&quot;
++#~ msgstr &quot;Botoi llogaritë në repertorin LDAP&quot;
++
++#~ msgid &quot;Active autologin support&quot;
++#~ msgstr &quot;Aktivizoje lidhjen automatike&quot;
++
++#~ msgid &quot;User creation&quot;
++#~ msgstr &quot;Paramtra me merrëveshje&quot;
++
++#~ msgid &quot;Default shell:&quot;
++#~ msgstr &quot;Interpretues me marrëveshje:&quot;
++
++#~ msgid &quot;Default home dir:&quot;
++#~ msgstr &quot;dosja personale me marrëveshje:&quot;
++
++#~ msgid &quot;Default face:&quot;
++#~ msgstr &quot;Faqe me marrëveshje:&quot;
++
++#~ msgid &quot;Default group:&quot;
++#~ msgstr &quot;Grup me marrëveshje:&quot;
++
++#~ msgid &quot;General&quot;
++#~ msgstr &quot;Përgjithësish&quot;
++
++#~ msgid &quot;Don't show user with id less than 500&quot;
++#~ msgstr &quot;Mos i çfaqë përdoruesit me identitet më të vogël se 500&quot;
++
++#~ msgid &quot;User identifier&quot;
++#~ msgstr &quot;Identifikues i përdoruesve&quot;
++
++#~ msgid &quot;Default Group&quot;
++#~ msgstr &quot;Grup me merrëveshje&quot;
++
++#~ msgid &quot;Groups list&quot;
++#~ msgstr &quot;Lista e grupeve&quot;
++
++#~ msgid &quot;Users View&quot;
++#~ msgstr &quot;Çfaqës i Përdoruesve&quot;
++
++#~ msgid &quot;Group identifier&quot;
++#~ msgstr &quot;Identifikues i grupit&quot;
++
++#~ msgid &quot;Groups View&quot;
++#~ msgstr &quot;Çfaqës i Grupeve&quot;
++
++#~ msgid &quot;/bin/bash&quot;
++#~ msgstr &quot;/bin/bash&quot;
++
++#~ msgid &quot;uid:&quot;
++#~ msgstr &quot;n° identitetit&quot;
++
++#~ msgid &quot;Comment:&quot;
++#~ msgstr &quot;Koment:&quot;
++
++#~ msgid &quot;Shell:&quot;
++#~ msgstr &quot;Shell:&quot;
++
++#~ msgid &quot;Home dir:&quot;
++#~ msgstr &quot;Dosje personale:&quot;
++
++#~ msgid &quot;passwd:&quot;
++#~ msgstr &quot;parulla&quot;
++
++#~ msgid &quot;Retype passwd:&quot;
++#~ msgstr &quot;Rishtype parullën&quot;
++
++#~ msgid &quot;Identity&quot;
++#~ msgstr &quot;Identiteti&quot;
++
++#~ msgid &quot;Available groups&quot;
++#~ msgstr &quot;Grupet e aktivizuara&quot;
++
++#~ msgid &quot;Extended&quot;
++#~ msgstr &quot;Shtrirje&quot;
++
++#~ msgid &quot;About UserDrake&quot;
++#~ msgstr &quot;Në lidhje me UserDrake&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;Userdrake is an application to add and\n&quot;
++#~ &quot;delete users on the Mageia\n&quot;
++#~ &quot;distribution.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;Userdrake now support ldap directory\n&quot;
++#~ &quot;support conformed to rfc2307bis.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;This application is under the GPL\n&quot;
++#~ &quot;license and is delived without\n&quot;
++#~ &quot;any warranty.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;You can get support at : \n&quot;
++#~ &quot;http://www.mandrakeexpert.com/&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Userdrake është një aplikacion për ti shtuar dhe\n&quot;
++#~ &quot;zhdukur përdoruesit e shpërdare në Mageia.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;Userdrake ka përkrahje në repertorin ldap\n&quot;
++#~ &quot;me përkrahje konforme në rfc2307bis.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;Ky aplikacion është ndër licencën\n&quot;
++#~ &quot;GPL dhë është i shpërndare pa\n&quot;
++#~ &quot;kurrëfare garantie.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;Ju mundë ti dërgoni raportet e bug(it) në:\n&quot;
++#~ &quot;http://www.mandrakeexpert.com/&quot;
++
++#~ msgid &quot;Name:&quot;
++#~ msgstr &quot;Emri:&quot;
++
++#~ msgid &quot;gid:&quot;
++#~ msgstr &quot;n° i grupit:&quot;
++
++#~ msgid &quot;In group&quot;
++#~ msgstr &quot;Në grup&quot;
++
++#~ msgid &quot;Not in group&quot;
++#~ msgstr &quot;Jashtë grupit&quot;
++
++#~ msgid &quot;Quit userdrake?&quot;
++#~ msgstr &quot;Braktise userdrake?&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;You have made changes\n&quot;
++#~ &quot;since the last save.\n&quot;
++#~ &quot;Do you really want to quit\n&quot;
++#~ &quot;userdrake?&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Ju keni bërë ndryshime\n&quot;
++#~ &quot;që nga regjistrimi i fundit.\n&quot;
++#~ &quot;A dëshironi me të vërtet të\n&quot;
++#~ &quot;braktisni userdrake?&quot;
++
++#~ msgid &quot;Enter new passwd&quot;
++#~ msgstr &quot;Futne parullën e re&quot;
++
++#~ msgid &quot;new passwd:&quot;
++#~ msgstr &quot;parulla e re:&quot;
++
++#~ msgid &quot;Change&quot;
++#~ msgstr &quot;Ndërroje&quot;
++
++#~ msgid &quot;Change face&quot;
++#~ msgstr &quot;Ndryshim i imazhit&quot;
++
++#~ msgid &quot;Set passwd&quot;
++#~ msgstr &quot;Ndërroje parullën&quot;
++
++#~ msgid &quot;User autologin&quot;
++#~ msgstr &quot;Lidhje automatike e përdoruesit&quot;
++
++#~ msgid &quot;UserDrake - Error&quot;
++#~ msgstr &quot;UserDrake - Gabim&quot;
++
++#~ msgid &quot;couldn't find blue color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;nuk mund ta gjejë ngjyrën e kaltërt në skedaren /usr/lib/X11/rgb.txt&quot;
++
++#~ msgid &quot;Select the image to use&quot;
++#~ msgstr &quot;Zgjedheni imazhin që duhet të përdoret&quot;
++
++#~ msgid &quot;Custom...&quot;
++#~ msgstr &quot;Personalizim...&quot;
++
++#~ msgid &quot;couldn't find grey color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;nuk mund ta gjejë ngjyrën e përhimtë në skedaren /usr/lib/X11/rgb.txt&quot;
++
++#~ msgid &quot;couldn't find black color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;nuk mund ta gjejë ngjyrën e zezë në skedaren /usr/lib/X11/rgb.txt&quot;
++
++#~ msgid &quot;login empty&quot;
++#~ msgstr &quot;emër i zbrazët i përdoruesit&quot;
++
++#~ msgid &quot;This login already exists on the system&quot;
++#~ msgstr &quot;Ky emër i përdoruesit ekziston në sistem&quot;
++
++#~ msgid &quot;The login is similar to a name's group&quot;
++#~ msgstr &quot;Ky emër i përdoruesit është i njëjtë si emri i një grupi&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;User id already in use&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;Identiteti i përdoruesit është në përdorim e sipër&quot;
++
++#~ msgid &quot;User id already in use&quot;
++#~ msgstr &quot;Identiteti i përdoruesit është në përdorim e sipër&quot;
++
++#~ msgid &quot;name empty&quot;
++#~ msgstr &quot;emër i zbrazët&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;Group id already in use&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;Grupi është në përdorim e sipër&quot;
++
++#~ msgid &quot;Group id already in use&quot;
++#~ msgstr &quot;Identiteti i grupit është në përdorim sipër&quot;
++
++#~ msgid &quot;Couldn't find pixmap file: %s&quot;
++#~ msgstr &quot;E pa mundur gjetja e skedares pixmap: %s&quot;
++
++#~ msgid &quot;%s: the file %s is busy (%s present)\n&quot;
++#~ msgstr &quot;%s: skedarja %s është e nxënë (%s prezente)\n&quot;
++
++#~ msgid &quot;%s: can't link %s: %s\n&quot;
++#~ msgstr &quot;%s: nuk mundë ta lexojë %s: %s\n&quot;
++
++#~ msgid &quot;%s: can't unlock %s: %s (your changes are still in %s)\n&quot;
++#~ msgstr &quot;%s: nuk mund ta hapë %s: %s (ndryshimet tuaja janë ende në %s)\n&quot;
++
++#~ msgid &quot;Error in stat on tmp files when i try to unlock lib\n&quot;
++#~ msgstr &quot;Gabim në gjendjen e skedares tmp kur u mundova ta hapë lib\n&quot;
++
++#~ msgid &quot;%s: no changes made\n&quot;
++#~ msgstr &quot;%s: asnjë ndryshim i bërë\n&quot;
++
++#~ msgid &quot;Select LDAP Directory&quot;
++#~ msgstr &quot;Zgjedhe Repertorin LDAP&quot;
++
++#~ msgid &quot;Server address:&quot;
++#~ msgstr &quot;Adresa Server:&quot;
++
++#~ msgid &quot;Search base:&quot;
++#~ msgstr &quot;Hulumto në bazë:&quot;
++
++#~ msgid &quot;Bind DN:&quot;
++#~ msgstr &quot;Bind DN:&quot;
++
++#~ msgid &quot;Connection Type :&quot;
++#~ msgstr &quot;Tip i Lidhjes :&quot;
++
++#~ msgid &quot;ssl&quot;
++#~ msgstr &quot;ssl&quot;
++
++#~ msgid &quot;Validate&quot;
++#~ msgstr &quot;Vlerësoje&quot;
++
++#~ msgid &quot;Test&quot;
++#~ msgstr &quot;Testoje&quot;
++
++#~ msgid &quot;cannot change ldap version to 3: %s&quot;
++#~ msgstr &quot;nuk mundë ta ndërroj versionin ldap në 3: %s&quot;
++
++#~ msgid &quot;cannot connect to the ldap server\n&quot;
++#~ msgstr &quot;nuk mundë të lidhet në serverin ldap\n&quot;
++
++#~ msgid &quot;cannot bind to the ldap server, %d\n&quot;
++#~ msgstr &quot;nuk mundë të lidhet në serverin ldap, %d\n&quot;
++
++#~ msgid &quot;Cannot bind to ldap server&quot;
++#~ msgstr &quot;Nuk mundë të lidhet në serverin ldap&quot;
++
++#~ msgid &quot;cannot save because the cannot connect to the ldap server&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;nuk mundë ti regjistroj sepse lidhja në serverin ldap është e pa mundur&quot;
++
++#~ msgid &quot;cannot relock lib&quot;
++#~ msgstr &quot;nuk mundë ta rimbyllë lib&quot;
+
+<a id="userdrake2tags1133posrpo">Added: userdrake2/tags/1.13.3/po/sr.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/sr.po (rev 0)
++++ userdrake2/tags/1.13.3/po/sr.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,1115 @@
++# translation of userdrake-sr.po to serbian
++# translation of userdrake2-sr.po to serbian
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/sr.php3
++#
++# Translated userdrake.po (serbian)
++# Copyright (C) 1999,2000,2001 Mandriva
++# Tomislav Jankovic &lt;tomaja@net.yu&gt;, 2001.
++# Миодраг Живковић &lt;miodragz@linuxo.org&gt;, 2006
++#
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-sr\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2004-02-01 19:18+0100\n&quot;
++&quot;Last-Translator: Toma Jankovic &lt;webmaster@mandrake.co.yu&gt;\n&quot;
++&quot;Language-Team: serbian &lt;mdk@linux.rs.sr&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.0.2\n&quot;
++&quot;Plural-Forms: nplurals=3; plural=n%10==1 &amp;&amp; n%100!=11 ? 0 : n%10&gt;=2 &amp;&amp; n%&quot;
++&quot;10&lt;=4 &amp;&amp; (n%100&lt;10 || n%100&gt;=20) ? 1 : 2;\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Грешка при читању `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Прављење грешке %s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Уклањам грешку `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Грешка при прављењу мејл спула.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Грешка при прављењу мејл спула.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Грешка при прављењу мејл спула.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;непозната грешка&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Грешка при прављењу мејл спула.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Грешка при брисању маејл спула.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Учитавам Кориснике и Групе... Молим Вас сачекајте&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Мандрива Линукс алат за управљање корисницима&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Акције&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Измени&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Бриши&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Опције&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Филтрирај системске кориснике&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Фајл&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Освежи&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Крај&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Додај корисника&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Додај _Групу&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Помоћ&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Пријавите грешку&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_О...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Тражи:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Примени филтер&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Корисници&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Групе&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Корисници и групе&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Корисничко име&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Корисников ID&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Примарна група&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Пуно име&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Шкољка за логовање&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Home директоријум&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Статус&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Име групе&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Групни ID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Чланови групе&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Додај корисника&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Додај корисника у систем&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Додај Групу&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Додај групу у систем&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Измени&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Измени изабрани ред&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Бриши&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Избриши изабрани ред&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Освежи&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Освежи листу&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Закључано&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Истекло&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Кликните на икону да би је променили&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Креираљј новог корисника&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Креирај Home директоријум&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Home директоријум: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Крирај приватну групу за корисника&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Ручно одреди корисников ID&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;корисник већ постоји, изаберите друго Корисничко име&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Лозинкас се неодговара&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Ова лозинка је превише једноставна. \n&quot;
++&quot; Добра лозика има више од 6 карактера &quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;КОрисников Uid је &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Креирање корисника са UID мањим од 500 није препоручљиво.\n&quot;
++&quot; Да ли сте сигурни да жлите ово да урадите?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Постави %s у 'users' групу&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Креирам нову групу: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Додајем корисника: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Поништи&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;У реду&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Изабери групу&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Додај у постојећу групу&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Додај у корисникову групу&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Група са овим именом већ постоји. Шта желите да урадите?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Креирај нову групу&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Ручно одреди ID за групу&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Група већ постоји, изаберите друго име за Групу&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; Gid за Групу је &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Креирање групе са GID које је мањи од 500 is није препоручљиво.\n&quot;
++&quot; да ли сте сигурни да желите да урадите ово?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Додајем групу: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Бришем фајлове или не?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Бришем корисника %s\n&quot;
++&quot; Такође сроводим следеће акције\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Бриши Home Директоријум: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Бриши ailbox :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Уклањам корисника: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Да ли заиста желите да обришете групу %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s је примарна група за корисника %s\n&quot;
++&quot; Прво уклони корисникат&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Уклањам групу: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Пуно име:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Пријава:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Лозинка:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Потврди лозинку:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Login Shell:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Име групе:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Изаберите бар једну групу за корисника&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Одредите Годину, Месец и Дан \n&quot;
++&quot; за време истицања налога &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Поново попуните сва поља и лозинку\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Не можете да уклоните корисника %s' из његове примарне групе&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Home:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Корисникови подаци&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Омогући ограничење налога&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Налог истиче (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Закључај корисников налог&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Инфо о налогу&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Корисникова последња промењена лозинка на : &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Омогући ограничење трајања лозике&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Дана пре дозволе за промену :&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Дана пре захтеване промене :&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Дана упозорења пре пормене :&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Дана пре него налог постане неактиван :&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Инфо о лоозинци&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Изаберите групе у којима ће корисник бити члан:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Подаци о групи&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Изаберите кориснике који треба да приступе овој групи:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Корисници Групе&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Уреди Групе / Кориснике&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Хм,појавила се грешка&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Затвори&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Сва права (C) %s задржава Мандрива&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Управљање корисницима&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Toma Jankovic &lt;tomaja@net.yu&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Поље за име је празно, упишите име&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;Име може да садржи само мала слова, бројеве, `-' и `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Име је предугачко&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Грешка&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;непозната грешка&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Прављење грешке %s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Аутори&quot;
++
++#~ msgid &quot;Choice&quot;
++#~ msgstr &quot;Избор&quot;
++
++#~ msgid &quot;Yes&quot;
++#~ msgstr &quot;Да&quot;
++
++#~ msgid &quot;No&quot;
++#~ msgstr &quot;Не&quot;
++
++#~ msgid &quot;Generic help on userdrake&quot;
++#~ msgstr &quot;Генеричка помоћ за userdrake&quot;
++
++#~ msgid &quot;Help&quot;
++#~ msgstr &quot;Помоћ&quot;
++
++#~ msgid &quot;Create home Directory&quot;
++#~ msgstr &quot;Креирај home директоријум&quot;
++
++#~ msgid &quot; Remove Home Directory&quot;
++#~ msgstr &quot;Уклони home директоријум&quot;
++
++#~ msgid &quot;Do you want to delete the user's home directory and mail spool?&quot;
++#~ msgstr &quot;Да ли желите да иђбришете корисников home директоријум и пошту ?&quot;
++
++#~ msgid &quot;Reload&quot;
++#~ msgstr &quot;Поново учитај&quot;
++
++#~ msgid &quot;Save&quot;
++#~ msgstr &quot;Сачувај&quot;
++
++#~ msgid &quot;Exit&quot;
++#~ msgstr &quot;Излаз&quot;
++
++#~ msgid &quot;Settings&quot;
++#~ msgstr &quot;Опције&quot;
++
++#~ msgid &quot;Show tools bar&quot;
++#~ msgstr &quot;Прикажи tools bar&quot;
++
++#~ msgid &quot;View users&quot;
++#~ msgstr &quot;Преглед корисника&quot;
++
++#~ msgid &quot;Preferences&quot;
++#~ msgstr &quot;Карактеристике&quot;
++
++#~ msgid &quot;Ldap Server&quot;
++#~ msgstr &quot;Ldap Сервер&quot;
++
++#~ msgid &quot;Save change&quot;
++#~ msgstr &quot;Сачувај измене&quot;
++
++#~ msgid &quot;Add&quot;
++#~ msgstr &quot;Додај&quot;
++
++#~ msgid &quot;Edit user(s)&quot;
++#~ msgstr &quot;Измени корисника(е)&quot;
++
++#~ msgid &quot;Remove&quot;
++#~ msgstr &quot;Уклони&quot;
++
++#~ msgid &quot;Edit group(s)&quot;
++#~ msgstr &quot;Измени групу(е)&quot;
++
++#~ msgid &quot;User id&quot;
++#~ msgstr &quot;id корисника&quot;
++
++#~ msgid &quot;Group id&quot;
++#~ msgstr &quot;id групе&quot;
++
++#~ msgid &quot;Comments&quot;
++#~ msgstr &quot;Коментари&quot;
++
++#~ msgid &quot;Shell&quot;
++#~ msgstr &quot;Shell&quot;
++
++#~ msgid &quot;name&quot;
++#~ msgstr &quot;име&quot;
++
++#~ msgid &quot;gid&quot;
++#~ msgstr &quot;gid&quot;
++
++#~ msgid &quot;passwd&quot;
++#~ msgstr &quot;лозинка&quot;
++
++#~ msgid &quot;users&quot;
++#~ msgstr &quot;корисници&quot;
++
++#~ msgid &quot;Parameters&quot;
++#~ msgstr &quot;Параметри&quot;
++
++#~ msgid &quot;General option&quot;
++#~ msgstr &quot;Опште опције&quot;
++
++#~ msgid &quot;Edit accounts on a LDAP directory&quot;
++#~ msgstr &quot;Измени рачуне у LDAP директоријуму&quot;
++
++#~ msgid &quot;Active autologin support&quot;
++#~ msgstr &quot;Активирај подршку за аутопријаву&quot;
++
++#~ msgid &quot;User creation&quot;
++#~ msgstr &quot;Креирање корисника&quot;
++
++#~ msgid &quot;Default shell:&quot;
++#~ msgstr &quot;Default shell:&quot;
++
++#~ msgid &quot;Default home dir:&quot;
++#~ msgstr &quot;Default home директоријум:&quot;
++
++#~ msgid &quot;Default face:&quot;
++#~ msgstr &quot;Default изглед:&quot;
++
++#~ msgid &quot;Default group:&quot;
++#~ msgstr &quot;Default група:&quot;
++
++#~ msgid &quot;General&quot;
++#~ msgstr &quot;Опште&quot;
++
++#~ msgid &quot;Don't show user with id less than 500&quot;
++#~ msgstr &quot;Не приказуј кориснике са id-ом мањим од 500&quot;
++
++#~ msgid &quot;User identifier&quot;
++#~ msgstr &quot;Индетификатор корисника&quot;
++
++#~ msgid &quot;Default Group&quot;
++#~ msgstr &quot;Default група&quot;
++
++#~ msgid &quot;Groups list&quot;
++#~ msgstr &quot;Листа група&quot;
++
++#~ msgid &quot;Users View&quot;
++#~ msgstr &quot;Преглед корисника&quot;
++
++#~ msgid &quot;Group identifier&quot;
++#~ msgstr &quot;Индетификатор група&quot;
++
++#~ msgid &quot;Groups View&quot;
++#~ msgstr &quot;Преглед група&quot;
++
++#~ msgid &quot;/bin/bash&quot;
++#~ msgstr &quot;/bin/bash&quot;
++
++#~ msgid &quot;uid:&quot;
++#~ msgstr &quot;uid:&quot;
++
++#~ msgid &quot;Comment:&quot;
++#~ msgstr &quot;Коментар:&quot;
++
++#~ msgid &quot;Shell:&quot;
++#~ msgstr &quot;Shell:&quot;
++
++#~ msgid &quot;Home dir:&quot;
++#~ msgstr &quot;Home директоријум:&quot;
++
++#~ msgid &quot;passwd:&quot;
++#~ msgstr &quot;лозинка:&quot;
++
++#~ msgid &quot;Retype passwd:&quot;
++#~ msgstr &quot;Понови лозинку:&quot;
++
++#~ msgid &quot;Identity&quot;
++#~ msgstr &quot;Идентитет&quot;
++
++#~ msgid &quot;Available groups&quot;
++#~ msgstr &quot;Доступне групе&quot;
++
++#~ msgid &quot;Extended&quot;
++#~ msgstr &quot;Проширено&quot;
++
++#~ msgid &quot;About UserDrake&quot;
++#~ msgstr &quot;О UserDrake&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;Userdrake is an application to add and\n&quot;
++#~ &quot;delete users on the Mageia\n&quot;
++#~ &quot;distribution.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;Userdrake now support ldap directory\n&quot;
++#~ &quot;support conformed to rfc2307bis.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;This application is under the GPL\n&quot;
++#~ &quot;license and is delived without\n&quot;
++#~ &quot;any warranty.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;You can get support at : \n&quot;
++#~ &quot;http://www.mandrakeexpert.com/&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Userdrake је апликација којом се додају и укањају\n&quot;
++#~ &quot;корисници у Мандрива Линукс\n&quot;
++#~ &quot;дистрибуцији.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;Ова апликација сада подржава ldap директоријум\n&quot;
++#~ &quot;са потврдом са rfc2307bis.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;Ова апликација је под GPL\n&quot;
++#~ &quot;лиценцом и нема\n&quot;
++#~ &quot;никакву гаранцију.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;Извештај о баговима слати на адресу:\n&quot;
++#~ &quot;http://www.mandrakeexpert.com/&quot;
++
++#~ msgid &quot;Name:&quot;
++#~ msgstr &quot;Име:&quot;
++
++#~ msgid &quot;gid:&quot;
++#~ msgstr &quot;gid:&quot;
++
++#~ msgid &quot;In group&quot;
++#~ msgstr &quot;У групи&quot;
++
++#~ msgid &quot;Not in group&quot;
++#~ msgstr &quot;Није у групи&quot;
++
++#~ msgid &quot;Quit userdrake?&quot;
++#~ msgstr &quot;Напусти userdrake?&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;You have made changes\n&quot;
++#~ &quot;since the last save.\n&quot;
++#~ &quot;Do you really want to quit\n&quot;
++#~ &quot;userdrake?&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Направили сте измене\n&quot;
++#~ &quot;од последњег снимања стања опција.\n&quot;
++#~ &quot;Да ли стварно желите да изађете из\n&quot;
++#~ &quot;userdrake?&quot;
++
++#~ msgid &quot;Enter new passwd&quot;
++#~ msgstr &quot;Унесите нову лозинку&quot;
++
++#~ msgid &quot;new passwd:&quot;
++#~ msgstr &quot;нова лозинка:&quot;
++
++#~ msgid &quot;Change&quot;
++#~ msgstr &quot;Промени&quot;
++
++#~ msgid &quot;Change face&quot;
++#~ msgstr &quot;Промени изглед&quot;
++
++#~ msgid &quot;Set passwd&quot;
++#~ msgstr &quot;Подеси лозинку&quot;
++
++#~ msgid &quot;User autologin&quot;
++#~ msgstr &quot;Аутопријава корисника&quot;
++
++#~ msgid &quot;UserDrake - Error&quot;
++#~ msgstr &quot;Userdrake - Грешка&quot;
++
++#~ msgid &quot;couldn't find blue color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;не могу да пронађем плаву боју у /usr/lib/X11/rgb.txt фајлу&quot;
++
++#~ msgid &quot;Select the image to use&quot;
++#~ msgstr &quot;Изабери слику коју ћете користити&quot;
++
++#~ msgid &quot;Custom...&quot;
++#~ msgstr &quot;Custom...&quot;
++
++#~ msgid &quot;couldn't find grey color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;не могу да пронађем сиву боју у /usr/lib/X11/rgb.txt фајлу&quot;
++
++#~ msgid &quot;couldn't find black color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;не могу да пронађем црну боју у /usr/lib/X11/rgb.txt фајлу&quot;
++
++#~ msgid &quot;login empty&quot;
++#~ msgstr &quot;пријава празна&quot;
++
++#~ msgid &quot;This login already exists on the system&quot;
++#~ msgstr &quot;Ова пријава већ постоји у систему&quot;
++
++#~ msgid &quot;The login is similar to a name's group&quot;
++#~ msgstr &quot;Пријава је слична имену групе&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;User id already in use&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;Корисников id је већ у употреби&quot;
++
++#~ msgid &quot;User id already in use&quot;
++#~ msgstr &quot;Корисников id се већ користи&quot;
++
++#~ msgid &quot;name empty&quot;
++#~ msgstr &quot;Име празно&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;Group id already in use&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;id групе је већ у употреби&quot;
++
++#~ msgid &quot;Group id already in use&quot;
++#~ msgstr &quot;id групе се већ користи&quot;
++
++#~ msgid &quot;Couldn't find pixmap file: %s&quot;
++#~ msgstr &quot;Не могу да пронађем pixmap фајл: %s&quot;
++
++#~ msgid &quot;%s: the file %s is busy (%s present)\n&quot;
++#~ msgstr &quot;%s: фајл је %s већ стартован (%s присутан)\n&quot;
++
++#~ msgid &quot;%s: can't link %s: %s\n&quot;
++#~ msgstr &quot;%s: не може да линкује %s: %s\n&quot;
++
++#~ msgid &quot;%s: can't unlock %s: %s (your changes are still in %s)\n&quot;
++#~ msgstr &quot;%s: не може да ослободи %s: %s (ваше измене су још увек у %s)\n&quot;
++
++#~ msgid &quot;Error in stat on tmp files when i try to unlock lib\n&quot;
++#~ msgstr &quot;Грешка у статусу tmp фајлова при покушају деблокирања библиотеке\n&quot;
++
++#~ msgid &quot;%s: no changes made\n&quot;
++#~ msgstr &quot;%s: измене нису направљене\n&quot;
++
++#~ msgid &quot;Select LDAP Directory&quot;
++#~ msgstr &quot;Изаберите LDAP Директоријум&quot;
++
++#~ msgid &quot;Server address:&quot;
++#~ msgstr &quot;Адреса сервера:&quot;
++
++#~ msgid &quot;Search base:&quot;
++#~ msgstr &quot;Претражи базу:&quot;
++
++#~ msgid &quot;Bind DN:&quot;
++#~ msgstr &quot;Бинд DN:&quot;
++
++#~ msgid &quot;Connection Type :&quot;
++#~ msgstr &quot;Тип конекције :&quot;
++
++#~ msgid &quot;ssl&quot;
++#~ msgstr &quot;ssl&quot;
++
++#~ msgid &quot;Validate&quot;
++#~ msgstr &quot;Провери&quot;
++
++#~ msgid &quot;Test&quot;
++#~ msgstr &quot;Тестирај&quot;
++
++#~ msgid &quot;cannot change ldap version to 3: %s&quot;
++#~ msgstr &quot;не могу да променим ldap веризију у 3: %s&quot;
++
++#~ msgid &quot;cannot connect to the ldap server\n&quot;
++#~ msgstr &quot;не могу да се конектујем на ldap сервер\n&quot;
++
++#~ msgid &quot;cannot bind to the ldap server, %d\n&quot;
++#~ msgstr &quot;не могу да биндујем на ldap сервер, %d\n&quot;
++
++#~ msgid &quot;Cannot bind to ldap server&quot;
++#~ msgstr &quot;Не могу да биндујем на ldap сервер&quot;
++
++#~ msgid &quot;cannot save because the cannot connect to the ldap server&quot;
++#~ msgstr &quot;не могу да сачувам јер не могу да се конектујем на ldap сервер&quot;
++
++#~ msgid &quot;cannot relock lib&quot;
++#~ msgstr &quot;не могу да поново закључам lib&quot;
+
+<a id="userdrake2tags1133posrLatnpo">Added: userdrake2/tags/1.13.3/po/sr@Latn.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/sr@Latn.po (rev 0)
++++ userdrake2/tags/1.13.3/po/sr@Latn.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,1115 @@
++# translation of userdrake-sr.po to serbian
++# translation of userdrake2-sr.po to serbian
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/sr.php3
++#
++# Translated userdrake.po (serbian)
++# Copyright (C) 1999,2000,2001 Mandriva
++# Tomislav Jankovic &lt;tomaja@net.yu&gt;, 2001.
++# Miodrag Živković &lt;miodragz@linuxo.org&gt;, 2006
++#
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-sr\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2004-02-01 19:18+0100\n&quot;
++&quot;Last-Translator: Toma Jankovic &lt;webmaster@mandrake.co.yu&gt;\n&quot;
++&quot;Language-Team: serbian &lt;mdk@linux.rs.sr&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.0.2\n&quot;
++&quot;Plural-Forms: nplurals=3; plural=n%10==1 &amp;&amp; n%100!=11 ? 0 : n%10&gt;=2 &amp;&amp; n%&quot;
++&quot;10&lt;=4 &amp;&amp; (n%100&lt;10 || n%100&gt;=20) ? 1 : 2;\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Greška pri čitanju `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Pravljenje greške %s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Uklanjam grešku `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Greška pri pravljenju mejl spula.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Greška pri pravljenju mejl spula.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Greška pri pravljenju mejl spula.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;nepoznata greška&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Greška pri pravljenju mejl spula.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Greška pri brisanju maejl spula.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Učitavam Korisnike i Grupe... Molim Vas sačekajte&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageia alat za upravljanje korisnicima&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Akcije&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Izmeni&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Briši&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Opcije&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Filtriraj sistemske korisnike&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Fajl&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Osveži&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Kraj&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Dodaj korisnika&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Dodaj _Grupu&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Pomoć&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Prijavite grešku&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_O...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Traži:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Primeni filter&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Korisnici&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Grupe&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Korisnici i grupe&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Korisničko ime&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Korisnikov ID&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Primarna grupa&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Puno ime&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Školjka za logovanje&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Home direktorijum&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Status&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Ime grupe&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Grupni ID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Članovi grupe&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Dodaj korisnika&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Dodaj korisnika u sistem&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Dodaj Grupu&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Dodaj grupu u sistem&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Izmeni&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Izmeni izabrani red&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Briši&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Izbriši izabrani red&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Osveži&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Osveži listu&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Zaključano&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Isteklo&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Kliknite na ikonu da bi je promenili&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Kreiraljj novog korisnika&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Kreiraj Home direktorijum&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Home direktorijum: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Kriraj privatnu grupu za korisnika&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Ručno odredi korisnikov ID&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;korisnik već postoji, izaberite drugo Korisničko ime&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Lozinkas se neodgovara&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Ova lozinka je previše jednostavna. \n&quot;
++&quot; Dobra lozika ima više od 6 karaktera &quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;KOrisnikov Uid je &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Kreiranje korisnika sa UID manjim od 500 nije preporučljivo.\n&quot;
++&quot; Da li ste sigurni da žlite ovo da uradite?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Postavi %s u 'users' grupu&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Kreiram novu grupu: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Dodajem korisnika: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Poništi&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;U redu&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Izaberi grupu&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Dodaj u postojeću grupu&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Dodaj u korisnikovu grupu&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Grupa sa ovim imenom već postoji. Šta želite da uradite?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Kreiraj novu grupu&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Ručno odredi ID za grupu&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Grupa već postoji, izaberite drugo ime za Grupu&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; Gid za Grupu je &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Kreiranje grupe sa GID koje je manji od 500 is nije preporučljivo.\n&quot;
++&quot; da li ste sigurni da želite da uradite ovo?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Dodajem grupu: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Brišem fajlove ili ne?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Brišem korisnika %s\n&quot;
++&quot; Takođe srovodim sledeće akcije\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Briši Home Direktorijum: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Briši ailbox :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Uklanjam korisnika: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Da li zaista želite da obrišete grupu %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s je primarna grupa za korisnika %s\n&quot;
++&quot; Prvo ukloni korisnikat&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Uklanjam grupu: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Puno ime:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Prijava:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Lozinka:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Potvrdi lozinku:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Login Shell:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Ime grupe:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Izaberite bar jednu grupu za korisnika&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Odredite Godinu, Mesec i Dan \n&quot;
++&quot; za vreme isticanja naloga &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Ponovo popunite sva polja i lozinku\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Ne možete da uklonite korisnika %s' iz njegove primarne grupe&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Home:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Korisnikovi podaci&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Omogući ograničenje naloga&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Nalog ističe (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Zaključaj korisnikov nalog&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Info o nalogu&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Korisnikova poslednja promenjena lozinka na : &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Omogući ograničenje trajanja lozike&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Dana pre dozvole za promenu :&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Dana pre zahtevane promene :&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Dana upozorenja pre pormene :&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Dana pre nego nalog postane neaktivan :&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Info o loozinci&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Izaberite grupe u kojima će korisnik biti član:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Podaci o grupi&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Izaberite korisnike koji treba da pristupe ovoj grupi:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Korisnici Grupe&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Uredi Grupe / Korisnike&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Hm,pojavila se greška&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Zatvori&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Sva prava (C) %s zadržava Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Upravljanje korisnicima&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Toma Jankovic_&lt;tomaja@net.yu&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Polje za ime je prazno, upišite ime&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;Ime može da sadrži samo mala slova, brojeve, `-' i `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Ime je predugačko&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Greška&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;nepoznata greška&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Pravljenje greške %s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Autori&quot;
++
++#~ msgid &quot;Choice&quot;
++#~ msgstr &quot;Izbor&quot;
++
++#~ msgid &quot;Yes&quot;
++#~ msgstr &quot;Da&quot;
++
++#~ msgid &quot;No&quot;
++#~ msgstr &quot;Ne&quot;
++
++#~ msgid &quot;Generic help on userdrake&quot;
++#~ msgstr &quot;Generička pomoć za userdrake&quot;
++
++#~ msgid &quot;Help&quot;
++#~ msgstr &quot;Pomoć&quot;
++
++#~ msgid &quot;Create home Directory&quot;
++#~ msgstr &quot;Kreiraj home direktorijum&quot;
++
++#~ msgid &quot; Remove Home Directory&quot;
++#~ msgstr &quot;Ukloni home direktorijum&quot;
++
++#~ msgid &quot;Do you want to delete the user's home directory and mail spool?&quot;
++#~ msgstr &quot;Da li želite da iđbrišete korisnikov home direktorijum i poštu ?&quot;
++
++#~ msgid &quot;Reload&quot;
++#~ msgstr &quot;Ponovo učitaj&quot;
++
++#~ msgid &quot;Save&quot;
++#~ msgstr &quot;Sačuvaj&quot;
++
++#~ msgid &quot;Exit&quot;
++#~ msgstr &quot;Izlaz&quot;
++
++#~ msgid &quot;Settings&quot;
++#~ msgstr &quot;Opcije&quot;
++
++#~ msgid &quot;Show tools bar&quot;
++#~ msgstr &quot;Prikaži tools bar&quot;
++
++#~ msgid &quot;View users&quot;
++#~ msgstr &quot;Pregled korisnika&quot;
++
++#~ msgid &quot;Preferences&quot;
++#~ msgstr &quot;Karakteristike&quot;
++
++#~ msgid &quot;Ldap Server&quot;
++#~ msgstr &quot;Ldap Server&quot;
++
++#~ msgid &quot;Save change&quot;
++#~ msgstr &quot;Sačuvaj izmene&quot;
++
++#~ msgid &quot;Add&quot;
++#~ msgstr &quot;Dodaj&quot;
++
++#~ msgid &quot;Edit user(s)&quot;
++#~ msgstr &quot;Izmeni korisnika(e)&quot;
++
++#~ msgid &quot;Remove&quot;
++#~ msgstr &quot;Ukloni&quot;
++
++#~ msgid &quot;Edit group(s)&quot;
++#~ msgstr &quot;Izmeni grupu(e)&quot;
++
++#~ msgid &quot;User id&quot;
++#~ msgstr &quot;id korisnika&quot;
++
++#~ msgid &quot;Group id&quot;
++#~ msgstr &quot;id grupe&quot;
++
++#~ msgid &quot;Comments&quot;
++#~ msgstr &quot;Komentari&quot;
++
++#~ msgid &quot;Shell&quot;
++#~ msgstr &quot;Shell&quot;
++
++#~ msgid &quot;name&quot;
++#~ msgstr &quot;ime&quot;
++
++#~ msgid &quot;gid&quot;
++#~ msgstr &quot;gid&quot;
++
++#~ msgid &quot;passwd&quot;
++#~ msgstr &quot;lozinka&quot;
++
++#~ msgid &quot;users&quot;
++#~ msgstr &quot;korisnici&quot;
++
++#~ msgid &quot;Parameters&quot;
++#~ msgstr &quot;Parametri&quot;
++
++#~ msgid &quot;General option&quot;
++#~ msgstr &quot;Opšte opcije&quot;
++
++#~ msgid &quot;Edit accounts on a LDAP directory&quot;
++#~ msgstr &quot;Izmeni račune u LDAP direktorijumu&quot;
++
++#~ msgid &quot;Active autologin support&quot;
++#~ msgstr &quot;Aktiviraj podršku za autoprijavu&quot;
++
++#~ msgid &quot;User creation&quot;
++#~ msgstr &quot;Kreiranje korisnika&quot;
++
++#~ msgid &quot;Default shell:&quot;
++#~ msgstr &quot;Default shell:&quot;
++
++#~ msgid &quot;Default home dir:&quot;
++#~ msgstr &quot;Default home direktorijum:&quot;
++
++#~ msgid &quot;Default face:&quot;
++#~ msgstr &quot;Default izgled:&quot;
++
++#~ msgid &quot;Default group:&quot;
++#~ msgstr &quot;Default grupa:&quot;
++
++#~ msgid &quot;General&quot;
++#~ msgstr &quot;Opšte&quot;
++
++#~ msgid &quot;Don't show user with id less than 500&quot;
++#~ msgstr &quot;Ne prikazuj korisnike sa id-om manjim od 500&quot;
++
++#~ msgid &quot;User identifier&quot;
++#~ msgstr &quot;Indetifikator korisnika&quot;
++
++#~ msgid &quot;Default Group&quot;
++#~ msgstr &quot;Default grupa&quot;
++
++#~ msgid &quot;Groups list&quot;
++#~ msgstr &quot;Lista grupa&quot;
++
++#~ msgid &quot;Users View&quot;
++#~ msgstr &quot;Pregled korisnika&quot;
++
++#~ msgid &quot;Group identifier&quot;
++#~ msgstr &quot;Indetifikator grupa&quot;
++
++#~ msgid &quot;Groups View&quot;
++#~ msgstr &quot;Pregled grupa&quot;
++
++#~ msgid &quot;/bin/bash&quot;
++#~ msgstr &quot;/bin/bash&quot;
++
++#~ msgid &quot;uid:&quot;
++#~ msgstr &quot;uid:&quot;
++
++#~ msgid &quot;Comment:&quot;
++#~ msgstr &quot;Komentar:&quot;
++
++#~ msgid &quot;Shell:&quot;
++#~ msgstr &quot;Shell:&quot;
++
++#~ msgid &quot;Home dir:&quot;
++#~ msgstr &quot;Home direktorijum:&quot;
++
++#~ msgid &quot;passwd:&quot;
++#~ msgstr &quot;lozinka:&quot;
++
++#~ msgid &quot;Retype passwd:&quot;
++#~ msgstr &quot;Ponovi lozinku:&quot;
++
++#~ msgid &quot;Identity&quot;
++#~ msgstr &quot;Identitet&quot;
++
++#~ msgid &quot;Available groups&quot;
++#~ msgstr &quot;Dostupne grupe&quot;
++
++#~ msgid &quot;Extended&quot;
++#~ msgstr &quot;Prošireno&quot;
++
++#~ msgid &quot;About UserDrake&quot;
++#~ msgstr &quot;O UserDrake&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;Userdrake is an application to add and\n&quot;
++#~ &quot;delete users on the Mageia\n&quot;
++#~ &quot;distribution.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;Userdrake now support ldap directory\n&quot;
++#~ &quot;support conformed to rfc2307bis.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;This application is under the GPL\n&quot;
++#~ &quot;license and is delived without\n&quot;
++#~ &quot;any warranty.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;You can get support at : \n&quot;
++#~ &quot;http://www.mandrakeexpert.com/&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Userdrake je aplikacija kojom se dodaju i ukanjaju\n&quot;
++#~ &quot;korisnici u Mageia\n&quot;
++#~ &quot;distribuciji.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;Ova aplikacija sada podržava ldap direktorijum\n&quot;
++#~ &quot;sa potvrdom sa rfc2307bis.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;Ova aplikacija je pod GPL\n&quot;
++#~ &quot;licencom i nema\n&quot;
++#~ &quot;nikakvu garanciju.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;Izveštaj o bagovima slati na adresu:\n&quot;
++#~ &quot;http://www.mandrakeexpert.com/&quot;
++
++#~ msgid &quot;Name:&quot;
++#~ msgstr &quot;Ime:&quot;
++
++#~ msgid &quot;gid:&quot;
++#~ msgstr &quot;gid:&quot;
++
++#~ msgid &quot;In group&quot;
++#~ msgstr &quot;U grupi&quot;
++
++#~ msgid &quot;Not in group&quot;
++#~ msgstr &quot;Nije u grupi&quot;
++
++#~ msgid &quot;Quit userdrake?&quot;
++#~ msgstr &quot;Napusti userdrake?&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;You have made changes\n&quot;
++#~ &quot;since the last save.\n&quot;
++#~ &quot;Do you really want to quit\n&quot;
++#~ &quot;userdrake?&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Napravili ste izmene\n&quot;
++#~ &quot;od poslednjeg snimanja stanja opcija.\n&quot;
++#~ &quot;Da li stvarno želite da izađete iz\n&quot;
++#~ &quot;userdrake?&quot;
++
++#~ msgid &quot;Enter new passwd&quot;
++#~ msgstr &quot;Unesite novu lozinku&quot;
++
++#~ msgid &quot;new passwd:&quot;
++#~ msgstr &quot;nova lozinka:&quot;
++
++#~ msgid &quot;Change&quot;
++#~ msgstr &quot;Promeni&quot;
++
++#~ msgid &quot;Change face&quot;
++#~ msgstr &quot;Promeni izgled&quot;
++
++#~ msgid &quot;Set passwd&quot;
++#~ msgstr &quot;Podesi lozinku&quot;
++
++#~ msgid &quot;User autologin&quot;
++#~ msgstr &quot;Autoprijava korisnika&quot;
++
++#~ msgid &quot;UserDrake - Error&quot;
++#~ msgstr &quot;Userdrake - Greška&quot;
++
++#~ msgid &quot;couldn't find blue color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;ne mogu da pronađem plavu boju u /usr/lib/X11/rgb.txt fajlu&quot;
++
++#~ msgid &quot;Select the image to use&quot;
++#~ msgstr &quot;Izaberi sliku koju ćete koristiti&quot;
++
++#~ msgid &quot;Custom...&quot;
++#~ msgstr &quot;Custom...&quot;
++
++#~ msgid &quot;couldn't find grey color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;ne mogu da pronađem sivu boju u /usr/lib/X11/rgb.txt fajlu&quot;
++
++#~ msgid &quot;couldn't find black color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;ne mogu da pronađem crnu boju u /usr/lib/X11/rgb.txt fajlu&quot;
++
++#~ msgid &quot;login empty&quot;
++#~ msgstr &quot;prijava prazna&quot;
++
++#~ msgid &quot;This login already exists on the system&quot;
++#~ msgstr &quot;Ova prijava već postoji u sistemu&quot;
++
++#~ msgid &quot;The login is similar to a name's group&quot;
++#~ msgstr &quot;Prijava je slična imenu grupe&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;User id already in use&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;Korisnikov id je već u upotrebi&quot;
++
++#~ msgid &quot;User id already in use&quot;
++#~ msgstr &quot;Korisnikov id se već koristi&quot;
++
++#~ msgid &quot;name empty&quot;
++#~ msgstr &quot;Ime prazno&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;Group id already in use&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;id grupe je već u upotrebi&quot;
++
++#~ msgid &quot;Group id already in use&quot;
++#~ msgstr &quot;id grupe se već koristi&quot;
++
++#~ msgid &quot;Couldn't find pixmap file: %s&quot;
++#~ msgstr &quot;Ne mogu da pronađem pixmap fajl: %s&quot;
++
++#~ msgid &quot;%s: the file %s is busy (%s present)\n&quot;
++#~ msgstr &quot;%s: fajl je %s već startovan (%s prisutan)\n&quot;
++
++#~ msgid &quot;%s: can't link %s: %s\n&quot;
++#~ msgstr &quot;%s: ne može da linkuje %s: %s\n&quot;
++
++#~ msgid &quot;%s: can't unlock %s: %s (your changes are still in %s)\n&quot;
++#~ msgstr &quot;%s: ne može da oslobodi %s: %s (vaše izmene su još uvek u %s)\n&quot;
++
++#~ msgid &quot;Error in stat on tmp files when i try to unlock lib\n&quot;
++#~ msgstr &quot;Greška u statusu tmp fajlova pri pokušaju deblokiranja biblioteke\n&quot;
++
++#~ msgid &quot;%s: no changes made\n&quot;
++#~ msgstr &quot;%s: izmene nisu napravljene\n&quot;
++
++#~ msgid &quot;Select LDAP Directory&quot;
++#~ msgstr &quot;Izaberite LDAP Direktorijum&quot;
++
++#~ msgid &quot;Server address:&quot;
++#~ msgstr &quot;Adresa servera:&quot;
++
++#~ msgid &quot;Search base:&quot;
++#~ msgstr &quot;Pretraži bazu:&quot;
++
++#~ msgid &quot;Bind DN:&quot;
++#~ msgstr &quot;Bind DN:&quot;
++
++#~ msgid &quot;Connection Type :&quot;
++#~ msgstr &quot;Tip konekcije :&quot;
++
++#~ msgid &quot;ssl&quot;
++#~ msgstr &quot;ssl&quot;
++
++#~ msgid &quot;Validate&quot;
++#~ msgstr &quot;Proveri&quot;
++
++#~ msgid &quot;Test&quot;
++#~ msgstr &quot;Testiraj&quot;
++
++#~ msgid &quot;cannot change ldap version to 3: %s&quot;
++#~ msgstr &quot;ne mogu da promenim ldap veriziju u 3: %s&quot;
++
++#~ msgid &quot;cannot connect to the ldap server\n&quot;
++#~ msgstr &quot;ne mogu da se konektujem na ldap server\n&quot;
++
++#~ msgid &quot;cannot bind to the ldap server, %d\n&quot;
++#~ msgstr &quot;ne mogu da bindujem na ldap server, %d\n&quot;
++
++#~ msgid &quot;Cannot bind to ldap server&quot;
++#~ msgstr &quot;Ne mogu da bindujem na ldap server&quot;
++
++#~ msgid &quot;cannot save because the cannot connect to the ldap server&quot;
++#~ msgstr &quot;ne mogu da sačuvam jer ne mogu da se konektujem na ldap server&quot;
++
++#~ msgid &quot;cannot relock lib&quot;
++#~ msgstr &quot;ne mogu da ponovo zaključam lib&quot;
+
+<a id="userdrake2tags1133posvpo">Added: userdrake2/tags/1.13.3/po/sv.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/sv.po (rev 0)
++++ userdrake2/tags/1.13.3/po/sv.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,769 @@
++# translation of userdrake2-sv.po to Swedish
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/sv.php3
++#
++# Copyright (C) 2000,2003, 2004, 2008 Free Software Foundation, Inc.
++#
++# Joel Andersson &lt;joel@atari.org&gt;, 2000.
++# Mattias Newzella &lt;newzella@linux.nu&gt;, 2001, 2002,2003.
++# Henrik Borg &lt;hblinux@bredband.net&gt;, 2004.
++# Kenneth Krekula &lt;kenneth.krekula@kiruna.se&gt;, 2004.
++# Thomas Backlund &lt;tmb@mandriva.org&gt;, 2008, 2009, 2010.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake2-sv\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2010-05-30 16:52+0300\n&quot;
++&quot;Last-Translator: Thomas Backlund &lt;tmb@mandriva.org&gt;\n&quot;
++&quot;Language-Team: Swedish &lt;cooker-i18n@mandrivalinux.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: Lokalize 1.0\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Fel vid inläsning av `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Fel vid skapande av `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Fel vid borttagande av `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Fel vid skapande konto: '%s'.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;Kan inte hitta Uid nummer&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;Kan inte hämta värde&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Fel vid skapande av e-postkö.\n&quot;
++
++#: ../USER/USER.xs:582
++#, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Användaren kunde inte ändras: '%s'.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Användaren kunde inte raderas: '%s'.\n&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;Misslyckades ange lösenord: '%s'.\n&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;okänt fel&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Fel vid skapande av grupp.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;Gruppen kunde inte ändras: '%s'.\n&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;Gruppen kunde inte raderas: '%s'.\n&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;Ingen hemkatalog för användaren.\n&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Hemkatalogen kunde inte raderas: '%s'.\n&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Fel vid borttagande av e-postkö.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Laddar användare och grupper.... Vänta.&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageia-verktyg för användarhantering&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;/_Installera gästkonto&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;/_Avinstallera gästkonto&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Åtgärder&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/R_edigera&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Ta bort&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Alternativ&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Filtrera systemanvändare&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/Ark_iv&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/Uppdate_ra&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/Avsl_uta&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/L_ägg till användare&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Lägg till _grupp&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Hjälp&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Rapportera fel&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Om...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Sök:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Tillämpa filter&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Användare&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Grupper&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Användare och grupper&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Användarnamn&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Användar-id&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Primär grupp&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Fullständigt namn&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Inloggningsskal&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Hemkatalog&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Status&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Gruppnamn&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Grupp-id&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Gruppmedlemmar&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;&quot;
++&quot;Lägg till\n&quot;
++&quot;användare&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Lägg till en användare till systemet&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;&quot;
++&quot;Lägg till\n&quot;
++&quot;grupp&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Lägg till en grupp till systemet&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Redigera&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Redigera markerad rad&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Ta bort&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Ta bort vald rad&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Uppdatera&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Uppdatera listan&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Låst&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Utgången&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Klicka på ikonen för att ändra den&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Skapa ny användare&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Skapa hemkatalog&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Hemkatalog: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Skapa en privat grupp för användaren&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Ange användar-id manuellt&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Användaren finns redan, välj ett annat användarnamn&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Olika lösenord&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Det här lösenordet är för enkelt. \n&quot;
++&quot; Bra lösenord ska vara längre än sex tecken.&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Användar-id är &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Att skapa en användare med ett användar-id under 500 rekommenderas inte.\n&quot;
++&quot;Är du säker på att du vill göra detta?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Lägger till användare %s i gruppen \&quot;users\&quot;&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Skapar ny grupp: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Lägger till användare: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Migrationsguide&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;Vill du köra migreringsguiden för att importera Windows dokument och &quot;
++&quot;inställninar till din Mageia distribution?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Avbryt&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;OK&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Välj grupp&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Lägg till i den befintliga gruppen&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Lägg till i gruppen \&quot;users\&quot;&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;En grupp med detta namn finns redan. Vad vill du göra?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Skapa ny grupp&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Ange grupp-id manuellt&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Gruppen finns redan. Välj ett annat gruppnamn.&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; Grupp-id är &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Att skapa en grupp med ett grupp-id under 500 rekommenderas inte.\n&quot;
++&quot;Är du säker på att du vill göra detta?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Lägger till grupp: %s&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Ta bort filer eller inte?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Tar bort användare %s\n&quot;
++&quot; Utför också följande åtgärder\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Ta bort hemkatalog: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Ta bort brevlåda: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Tar bort användare: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Vill du verkligen ta bort gruppen %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s är en primär grupp för användaren %s.\n&quot;
++&quot; Ta bort användaren först&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Tar bort grupp: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Fullständigt namn:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Användarnamn:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Lösenord:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Bekräfta lösenord:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Inloggningsskal:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Gruppnamn:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Välj minst en grupp åt användaren.&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Ange år, månad och dag för \n&quot;
++&quot; tidsbegränsning av konto &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Fyll i alla fält för lösenordsåldrande\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Du kan inte ta bort användaren \&quot;%s\&quot; från dess huvudgrupp.&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Hem:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Användardata&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Aktivera tidsbegränsning av konto&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Kontot går ut den (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Lås användarkonto&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Kontoinformation&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Användaren ändrade lösenord: &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Aktivera tidsbegränsning av lösenord&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Dagar innan ändring tillåts: &quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Dagar före ändring krävs: &quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Förvarningstid i dagar innan ändring:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Dagar innan kontot blir inaktiverat:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Lösenordsinformation&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Välj de grupper som användaren ska vara medlem i:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Gruppdata&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Välj användarna som ska vara medlemmar i den här gruppen:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Gruppanvändare&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Ändra Grupper / Användare&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Ett fel inträffade:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Stäng&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Copyright (C) %s, Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Användarhantering&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++&quot;Thomas Backlund &lt;tmb@mandriva.org&gt;\n&quot;
++&quot;Lars Westergren &lt;lars.westergren@home.se&gt;\n&quot;
++&quot;Magnus Björklöf &lt;bjorklof@nic.fi&gt;\n&quot;
++&quot;Mattias Newzella &lt;newzella@linux.nu&gt;\n&quot;
++&quot;Mattias Dahlberg &lt;voz@home.se&gt;\n&quot;
++&quot;Fuad Sabanovic &lt;manijak@telia.com&gt;\n&quot;
++&quot;Kenneth Krekula\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Namnfältet är tomt. Ange ett namn.&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;Namnet måste bestå av endast små bokstäver, siffror, \&quot;-\&quot; och \&quot;_\&quot;&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Namnet är för långt&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Fel&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;okänt fel&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Fel vid skapande av `%s': %s&quot;
+
+<a id="userdrake2tags1133potapo">Added: userdrake2/tags/1.13.3/po/ta.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/ta.po (rev 0)
++++ userdrake2/tags/1.13.3/po/ta.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,1080 @@
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/ta.php3
++#
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR Free Software Foundation, Inc.
++# FIRST AUTHOR &lt;EMAIL@ADDRESS&gt;, YEAR.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake2\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2002-08-17 17:54-0400\n&quot;
++&quot;Last-Translator: prabu &lt;prabu_anand2000@yahoo.com&gt;\n&quot;
++&quot;Language-Team: &lt;en@li.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 0.9.6\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#: ../USER/USER.xs:86
++#, fuzzy, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot; %s என்ற குறும்படத்தை ஏற்றுவதில் பிழை நேர்ந்துள்ளது&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, fuzzy, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;பயனரைச் நீக்கு&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot; %s என்ற குறும்படத்தை ஏற்றுவதில் பிழை நேர்ந்துள்ளது&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++#, fuzzy
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot; %s என்ற குறும்படத்தை ஏற்றுவதில் பிழை நேர்ந்துள்ளது&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot; %s என்ற குறும்படத்தை ஏற்றுவதில் பிழை நேர்ந்துள்ளது&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;தெரியாத பிழை&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot; %s என்ற குறும்படத்தை ஏற்றுவதில் பிழை நேர்ந்துள்ளது&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++#, fuzzy
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot; %s என்ற குறும்படத்தை ஏற்றுவதில் பிழை நேர்ந்துள்ளது&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;டிரேக்பயனர்&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_செயல்கள்&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_தொகு&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_அழி&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_விருப்பத்தேர்வு&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_கோப்பு&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_புதிதாக்கு&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_வெளிச்செல்&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_பயனர சேர்&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/_குழுவை சேர்&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_உதவி&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_பிழைகளை அறிவிக்க&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_பற்றி&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;தேடு:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;பயனர்கள்&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;குழுக்கள்&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;பயனர்களும் குழுக்களும்&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;பயனர் பெயர்&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;உபயோகிப்பாளர் அடையாளம்&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;முழுப் பெயர்&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;புகுபதிகை ஸ்செல்&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;இல்ல அடைவு&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;நிலை&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;குழுப்பெயர்&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;குழு ID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;குழு நபர்கள்&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;பயனர சேர்&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;குழுவை சேர்&quot;
++
++#: ../userdrake:197
++#, fuzzy, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;குழுவைச் சேர்&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;மாற்றியமை&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;நீக்கு&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;மீளேற்று&quot;
++
++#: ../userdrake:200
++#, fuzzy, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;பயனரின் பட்டியல்&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;பூட்டப்பட்டது&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;காலாவதியாணது&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:391
++#, fuzzy, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;பயனரின் தொடக்க அடைவு&quot;
++
++#: ../userdrake:393
++#, fuzzy, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;பயனரின் தொடக்க அடைவு&quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:414
++#, fuzzy, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;இப்பெயர் ஏற்கனவே பயன்பாட்டில் உள்ளது&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, fuzzy, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;கடவுச்சொல்&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:457
++#, fuzzy, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;குழுக்களைக் காட்டு&quot;
++
++#: ../userdrake:466
++#, fuzzy, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;பயனரைச் சேர்&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;நீக்கு&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;சரி&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:510
++#, fuzzy, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;இடம்பெற்றுள்ள குழுக்கள்&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;புதிய குழுவை உருவாக்கு&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:641
++#, fuzzy, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;பயனரின் தொடக்க அடைவு&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:651
++#, fuzzy, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;பயனரைச் நீக்கு&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:702
++#, fuzzy, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;குழுவை நீக்கு&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;முழுப் பெயர்:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;தொடங்கல் :&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;கடவுச்சொல்:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;கடவுச்சொல்லை உறுதிச் செய்:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;புகுபதிகை ஸ்செல்:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;குழுப்பெயர்:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;ஆரம்பம்:&quot;
++
++#: ../userdrake:988
++#, fuzzy, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;பயனரின் பட்டியல்&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1031
++#, fuzzy, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;கடவுச்சொல்&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1102
++#, fuzzy, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;குழு பட்டியல்&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1107
++#, fuzzy, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;குழுக்கள்&quot;
++
++#: ../userdrake:1127
++#, fuzzy, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;குழுக்கள்&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;பிழை நேர்ந்துள்ளது மன்னிக்கவும்&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;மூடு&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1280
++#, fuzzy, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;பயனர் பெயர்&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;மான்ட்ரிவ லினக்ஸ்&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;பிழை&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;தெரியாத பிழை&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot; %s என்ற குறும்படத்தை ஏற்றுவதில் பிழை நேர்ந்துள்ளது&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;ஆசிரியர்கள்: &quot;
++
++#~ msgid &quot;Yes&quot;
++#~ msgstr &quot;ஆம்&quot;
++
++#~ msgid &quot;No&quot;
++#~ msgstr &quot;இல்லை&quot;
++
++#~ msgid &quot;Help&quot;
++#~ msgstr &quot;உதவி&quot;
++
++#~ msgid &quot;Reload&quot;
++#~ msgstr &quot;புதுக்கல்&quot;
++
++#~ msgid &quot;Save&quot;
++#~ msgstr &quot;சேமி&quot;
++
++#~ msgid &quot;Exit&quot;
++#~ msgstr &quot;வெளிச்செல்&quot;
++
++#~ msgid &quot;Settings&quot;
++#~ msgstr &quot;அமைப்புகள்&quot;
++
++#~ msgid &quot;Show tools bar&quot;
++#~ msgstr &quot;கருவிப்பட்டையைக் காட்டு&quot;
++
++#~ msgid &quot;View users&quot;
++#~ msgstr &quot;பயனர்களைக் காட்டு&quot;
++
++#~ msgid &quot;Preferences&quot;
++#~ msgstr &quot;விருப்பங்கள்&quot;
++
++#~ msgid &quot;Ldap Server&quot;
++#~ msgstr &quot;Ldap சேவையகம்&quot;
++
++#~ msgid &quot;Save change&quot;
++#~ msgstr &quot;மாற்றங்களைச் சேமி&quot;
++
++#~ msgid &quot;Add&quot;
++#~ msgstr &quot;சேர்&quot;
++
++#~ msgid &quot;Edit user(s)&quot;
++#~ msgstr &quot;பயனரைச் மாற்றியமை&quot;
++
++#~ msgid &quot;Remove&quot;
++#~ msgstr &quot;நீக்கு&quot;
++
++#~ msgid &quot;Edit group(s)&quot;
++#~ msgstr &quot;குழுவை மாற்றியமை&quot;
++
++#~ msgid &quot;User id&quot;
++#~ msgstr &quot;பயனரின் அடையாள எண்&quot;
++
++#~ msgid &quot;Group id&quot;
++#~ msgstr &quot;குழுவின் அடையாள எண்&quot;
++
++#~ msgid &quot;Comments&quot;
++#~ msgstr &quot;கருத்துக்கள்&quot;
++
++#~ msgid &quot;Shell&quot;
++#~ msgstr &quot;ஓடு&quot;
++
++#~ msgid &quot;name&quot;
++#~ msgstr &quot;பெயர்&quot;
++
++#~ msgid &quot;gid&quot;
++#~ msgstr &quot;அடையாள எண்&quot;
++
++#~ msgid &quot;passwd&quot;
++#~ msgstr &quot;கடவுச்சொல்&quot;
++
++#~ msgid &quot;users&quot;
++#~ msgstr &quot;பயனர்கள்&quot;
++
++#~ msgid &quot;Parameters&quot;
++#~ msgstr &quot;அளபுருக்கள்&quot;
++
++#~ msgid &quot;General option&quot;
++#~ msgstr &quot;பொது விருப்பங்கள்&quot;
++
++#~ msgid &quot;Edit accounts on a LDAP directory&quot;
++#~ msgstr &quot;LDAPல் உள்ள கணக்குகளை மாற்றியமை&quot;
++
++#~ msgid &quot;Active autologin support&quot;
++#~ msgstr &quot;தானாக தொடங்கிடும் வகையில் அமைத்திடுக&quot;
++
++#~ msgid &quot;User creation&quot;
++#~ msgstr &quot;பயனர் உருவாக்கம்&quot;
++
++#~ msgid &quot;Default shell:&quot;
++#~ msgstr &quot;கொடாநிலை ஒடு&quot;
++
++#~ msgid &quot;Default home dir:&quot;
++#~ msgstr &quot;கொடாநிலை தொடக்கம்&quot;
++
++#~ msgid &quot;Default face:&quot;
++#~ msgstr &quot;கொடாநிலை முகம்&quot;
++
++#~ msgid &quot;Default group:&quot;
++#~ msgstr &quot;கொடாநிலை குழு&quot;
++
++#~ msgid &quot;General&quot;
++#~ msgstr &quot;பொது&quot;
++
++#~ msgid &quot;Don't show user with id less than 500&quot;
++#~ msgstr &quot;அடையாள எண் 500க்கு குறைவான பயனரைக் காட்டாதே&quot;
++
++#~ msgid &quot;User identifier&quot;
++#~ msgstr &quot;பயனரின் அடையாளம்&quot;
++
++#~ msgid &quot;Default Group&quot;
++#~ msgstr &quot;கொடாநிலை குழு&quot;
++
++#~ msgid &quot;Groups list&quot;
++#~ msgstr &quot;குழுக்களின் பட்டியல்&quot;
++
++#~ msgid &quot;Users View&quot;
++#~ msgstr &quot;பயனரின் பார்வை&quot;
++
++#~ msgid &quot;Group identifier&quot;
++#~ msgstr &quot;குழுவின் அடையாள எண்&quot;
++
++#~ msgid &quot;Groups View&quot;
++#~ msgstr &quot;குழுக்களின் பார்வை&quot;
++
++#~ msgid &quot;/bin/bash&quot;
++#~ msgstr &quot;/bin/bash -ஒருவகை ஓடு&quot;
++
++#~ msgid &quot;uid:&quot;
++#~ msgstr &quot;பயனர்அடையாள எண்&quot;
++
++#~ msgid &quot;Comment:&quot;
++#~ msgstr &quot;குறிப்பு&quot;
++
++#~ msgid &quot;Shell:&quot;
++#~ msgstr &quot;ஓடுகள்&quot;
++
++#~ msgid &quot;Home dir:&quot;
++#~ msgstr &quot;தொடக்க அடைவு&quot;
++
++#~ msgid &quot;passwd:&quot;
++#~ msgstr &quot;கடவுச்சொல்&quot;
++
++#~ msgid &quot;Retype passwd:&quot;
++#~ msgstr &quot;மீண்டும் கடவுச்சொல்லை அடிக்கவும்&quot;
++
++#~ msgid &quot;Identity&quot;
++#~ msgstr &quot;அடையாளம்&quot;
++
++#~ msgid &quot;Available groups&quot;
++#~ msgstr &quot; தற்போதுள்ள குழுக்கள்&quot;
++
++#~ msgid &quot;Extended&quot;
++#~ msgstr &quot;நீட்டிக்கப்பட்ட&quot;
++
++#~ msgid &quot;About UserDrake&quot;
++#~ msgstr &quot;டிரேக்பயனர் பற்றி&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;Userdrake is an application to add and\n&quot;
++#~ &quot;delete users on the Mageia\n&quot;
++#~ &quot;distribution.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;Userdrake now support ldap directory\n&quot;
++#~ &quot;support conformed to rfc2307bis.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;This application is under the GPL\n&quot;
++#~ &quot;license and is delived without\n&quot;
++#~ &quot;any warranty.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;You can get support at : \n&quot;
++#~ &quot;http://www.mandrakeexpert.com/&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;டிரேக்பயனர் என்ற இந்த பயன்பாட்டின் மூலம்\n&quot;
++#~ &quot;நீங்கள் எளிதாக பயனர்களை சேர்க்கவும், நீக்கவும் முடியும்\n&quot;
++#~ &quot;தயவுசெய்து ஆங்கிலத்தில் மட்டுமே அடிக்கவும்.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;rfc2307bis க்கு இணங்கி டிரேக்பயனர் தற்போது ldap \n&quot;
++#~ &quot;அடைவுகளுக்கு துணை போகிறது.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;இந்த நிரல் GPL காப்புரிமையின் கீழ்\n&quot;
++#~ &quot;எவ்வித உத்தரவாதமும் இன்றி உங்களுக்கு\n&quot;
++#~ &quot;கிடைக்கிறது.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;உதவி தேவையென்றால் http://www.mandrakeexpert.com/: \n&quot;
++#~ &quot;செல்லவும்&quot;
++
++#~ msgid &quot;Name:&quot;
++#~ msgstr &quot;பெயர்&quot;
++
++#~ msgid &quot;gid:&quot;
++#~ msgstr &quot;குழுவின் அடையாள எண்&quot;
++
++#~ msgid &quot;Not in group&quot;
++#~ msgstr &quot;இடம்பெறாத குழுக்கள்&quot;
++
++#~ msgid &quot;Quit userdrake?&quot;
++#~ msgstr &quot;டிரேக்பயனரை விட்டு வெளிச்செல்&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;You have made changes\n&quot;
++#~ &quot;since the last save.\n&quot;
++#~ &quot;Do you really want to quit\n&quot;
++#~ &quot;userdrake?&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;நீங்கள் செய்த சில மாற்றங்கள்\n&quot;
++#~ &quot;இன்னும் சேமிக்கப்படவில்லை\n&quot;
++#~ &quot;நீங்கள் நிச்சயம் டிரேக்பயனரை விட்டு\n&quot;
++#~ &quot; வெளிச்செல்ல விரும்புகிறீர்களா&quot;
++
++#~ msgid &quot;Enter new passwd&quot;
++#~ msgstr &quot;புதிய கடவுச்சொல்லை அடிக்கவும்&quot;
++
++#~ msgid &quot;new passwd:&quot;
++#~ msgstr &quot;புதிய கடவுச்சொல்&quot;
++
++#~ msgid &quot;Change&quot;
++#~ msgstr &quot;மாற்று&quot;
++
++#~ msgid &quot;Change face&quot;
++#~ msgstr &quot;முகத்தை மாற்று&quot;
++
++#~ msgid &quot;Set passwd&quot;
++#~ msgstr &quot;கடவுச்சொல்லை அமைக்கவும்&quot;
++
++#~ msgid &quot;User autologin&quot;
++#~ msgstr &quot;பயனர் தானாக தொட்ங்கல்&quot;
++
++#~ msgid &quot;UserDrake - Error&quot;
++#~ msgstr &quot;டிரேக்பயனர் --பிழை&quot;
++
++#~ msgid &quot;couldn't find blue color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;/usr/lib/X11/rgb.txt என்ற கோப்பில் நீல வண்ணம் இல்லை&quot;
++
++#~ msgid &quot;Select the image to use&quot;
++#~ msgstr &quot;பயன்படுத்த வேண்டிய படத்தை தேர்வு செய்&quot;
++
++#~ msgid &quot;Custom...&quot;
++#~ msgstr &quot;தனிப்பயன்....&quot;
++
++#~ msgid &quot;couldn't find grey color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;/usr/lib/X11/rgb.txt என்ற கோப்பில் ஊதா வண்ணம் இல்லை&quot;
++
++#~ msgid &quot;couldn't find black color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;/usr/lib/X11/rgb.txt என்ற கோப்பில் கருப்பு வண்ணம் இல்லை&quot;
++
++#~ msgid &quot;login empty&quot;
++#~ msgstr &quot;தொடங்குபெயர் காலியாக உள்ளது&quot;
++
++#~ msgid &quot;This login already exists on the system&quot;
++#~ msgstr &quot;இந்த தொடங்குபெயர் ஏற்கனவே பயன்பாட்டில் உள்ளது&quot;
++
++#~ msgid &quot;The login is similar to a name's group&quot;
++#~ msgstr &quot;இந்த தொடங்குபெயர் ஏற்கனவே உள்ள குழுவின் பெயரை ஒத்து உள்ளது&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;User id already in use&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;பயனர் அடையாள எண் பயன்பாட்டில் உள்ளது&quot;
++
++#~ msgid &quot;User id already in use&quot;
++#~ msgstr &quot;பயனர் அடையாள எண் பயன்பாட்டில் உள்ளது&quot;
++
++#~ msgid &quot;name empty&quot;
++#~ msgstr &quot;பெயர் காலியாக உள்ளது&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;Group id already in use&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;குழு அடையாள எண் பயன்பாட்டில் உள்ளது&quot;
++
++#~ msgid &quot;Group id already in use&quot;
++#~ msgstr &quot;குழு அடையாள எண் பயன்பாட்டில் உள்ளது&quot;
++
++#~ msgid &quot;Couldn't find pixmap file: %s&quot;
++#~ msgstr &quot; %s என்ற குறும்படத்தை கானவில்லை&quot;
++
++#~ msgid &quot;%s: the file %s is busy (%s present)\n&quot;
++#~ msgstr &quot;%s: என்ற கோப்பு %s பயன்பாட்டில் உள்ளது(%s உள்ளது)\n&quot;
++
++#~ msgid &quot;%s: can't link %s: %s\n&quot;
++#~ msgstr &quot;%s: இணைக்க முடியாது %s: %s\n&quot;
++
++#~ msgid &quot;%s: can't unlock %s: %s (your changes are still in %s)\n&quot;
++#~ msgstr &quot;%s: பிரிக்க முடியாது%s: %s (உங்கள் மாற்றங்கள் %s ல் உள்ளது)\n&quot;
++
++#~ msgid &quot;Error in stat on tmp files when i try to unlock lib\n&quot;
++#~ msgstr &quot;நூலக நிரலை விட்டு விலகும்போது பிழை நேர்ந்துள்ளது\n&quot;
++
++#~ msgid &quot;%s: no changes made\n&quot;
++#~ msgstr &quot;%s: மாற்றம் ஏதுமில்லை\n&quot;
++
++#~ msgid &quot;Select LDAP Directory&quot;
++#~ msgstr &quot;LDAP அடைவைத் தேர்ந்தெடு&quot;
++
++#~ msgid &quot;Server address:&quot;
++#~ msgstr &quot;சேவையகத்தின் பெயர்&quot;
++
++#~ msgid &quot;Search base:&quot;
++#~ msgstr &quot;தேடு&quot;
++
++#~ msgid &quot;Bind DN:&quot;
++#~ msgstr &quot;இணையவேண்டிய DN:&quot;
++
++#~ msgid &quot;Connection Type :&quot;
++#~ msgstr &quot;இணைப்பின் பெயர்&quot;
++
++#~ msgid &quot;ssl&quot;
++#~ msgstr &quot;ssl&quot;
++
++#~ msgid &quot;Validate&quot;
++#~ msgstr &quot;சரிபார்த்தல்&quot;
++
++#~ msgid &quot;Test&quot;
++#~ msgstr &quot;சோதனை&quot;
++
++#~ msgid &quot;cannot change ldap version to 3: %s&quot;
++#~ msgstr &quot;ldap வெளியீட்டை 3:க்கு மாற்ற முடியவில்லை %s&quot;
++
++#~ msgid &quot;cannot connect to the ldap server\n&quot;
++#~ msgstr &quot;ldap சேவையகத்தொடு இணைய முடியவில்லை\n&quot;
++
++#~ msgid &quot;cannot bind to the ldap server, %d\n&quot;
++#~ msgstr &quot; %dldap சேவையகத்தொடு இணைய முடியவில்லை\n&quot;
++
++#~ msgid &quot;Cannot bind to ldap server&quot;
++#~ msgstr &quot;ldap சேவையகத்தொடு இணைய முடியவில்லை&quot;
++
++#~ msgid &quot;cannot save because the cannot connect to the ldap server&quot;
++#~ msgstr &quot; ldap சேவையகத்தொடு இணைய முடியாமையால் சேமிக்கவில்லை&quot;
++
++#~ msgid &quot;cannot relock lib&quot;
++#~ msgstr &quot;நூலக நிரலுடன் சேர முடியவில்லை&quot;
+
+<a id="userdrake2tags1133potgpo">Added: userdrake2/tags/1.13.3/po/tg.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/tg.po (rev 0)
++++ userdrake2/tags/1.13.3/po/tg.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,758 @@
++# translation of userdrake-tg.po to Tajik
++# translation of userdrake-tg.po to Тоҷикӣ
++# Copyright (C) 2001,2003,2004 Free Software Foundation, Inc.
++# Copyright (c) 2001 Mandriva.
++# Roger Kovacs &lt;rkovacs@khujand.org&gt;, 2002,2003
++# Dilshod Marupov &lt;kct_tj@khujand.org&gt;, 2003
++# Abrorova &lt;H_Abrorova@rambler.ru&gt;, 2004
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-tg\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2004-08-28 14:35+0000\n&quot;
++&quot;Last-Translator: Abrorova &lt;H_Abrorova@rambler.ru&gt;\n&quot;
++&quot;Language-Team: Tajik\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.0.1\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Хатогии хондани `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Хатогии офаридани `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Хатогии хориҷкунии `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Хатогии офаридани додаҳои пост.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Хатогии офаридани додаҳои пост.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Хатогии офаридани додаҳои пост.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;Хатогии номаълум&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Хатогии офаридани додаҳои пост.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Хатогии нобудкунии додаҳои пост.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Корвандҳо ва гурӯҳо ба кор андохта мешаванд... Лутфан, интизор шавед&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Асбоб барои Идора Намудани Корвандҳои Mageia&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Амалҳо&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Таҳрир&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Нобуд кардан&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Интихобҳо&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Корвандҳои системро ҷудо карда гирифтан&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Файл&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Нав намудан&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Баромадан&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Корвандро ҳамроҳ намоед&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Илова намоед _Гурӯҳ&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Ёрӣ&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Ҳисобот оиди хатогӣ&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Дар бораи...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Ҷустуҷӯ:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;филтрро истифода намудан&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Корвандҳо&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Гурӯҳҳо&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Корвандон ва гурӯҳҳо&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Номи корванд&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Корванди ID&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Гурӯҳи Асосӣ&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Номи Пурра&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Ҷилди номи дохилӣ&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Феҳристи хонагӣ&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Мақом&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Номи гурӯҳ&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Гурӯҳи ID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Аъзоёни гурӯҳ&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Иловаи корванд&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Корвандро ба систем ҳамроҳ намудан&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Гурӯҳро илова намоед&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Гурӯҳро ба систем илова намоед&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Таҳрир&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Сатри интихобшударо таҳрир намудан&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Нобуд кардан&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Сатри интихобшударо хориҷ намудан&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Нав намудан&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Рӯйхатро нав намоед&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Баста шудааст&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Мӯҳлати амалиёт гузаштааст&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Барои тағирдиҳӣ ба тасвир ангушт занед&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Корванди Навро ташкил намудан&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Феҳристи хонагиро тартиб диҳед&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Феҳристи хонагӣ&quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Гурӯҳи шахсиро барои корванд ташкил намудан&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Дастӣ ID корвандро нишон додан&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;&quot;
++&quot;Ин корванд аллакай вуҷуд дорад, лутфан номи корванди дигарро интихоб намоед&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Гузарвожа Mismatch&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Ин гузарвожа хеле содда аст. \n&quot;
++&quot;Гузарвожаҳои хуб бояд &gt; аз 6 рамз бошанд&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Uid-и корванд &lt; аз 500 мебошад&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Ташкили корванд бо UID на кам аз 500 тавсия намешавад.\n&quot;
++&quot;Шумо боварӣ доред, ки инро иҷро карданӣ ҳастед?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Гузоштани %s ба гурӯҳи 'users'&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Ташкили гурӯҳи нав: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Иловаи корванд: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Бекор кардан&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Ok&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Гурӯҳро интихоб кунед&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Ба гурӯҳи вуҷуддошта дохил намудан&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Ба гурӯҳи 'users' илова намудан&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Гурӯҳ бо ин ном аллакай вуҷуд дорад. Шумо чӣ кор каданӣ ҳастед?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Гурӯҳи навро ташкил намоед&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Дастӣ гурӯҳи ID-ро нишон диҳед&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Гурӯҳ аллакай вуҷуд дорад, лутфан Номи дигари Гурӯҳро интихоб намоед&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; Gid-и гурӯҳ &lt; аз 500 мебошад&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Ташкили гурӯҳо бо GID на кам аз 500 тавсия намешавад.\n&quot;
++&quot;Шумо боварӣ доред, ки инро иҷро карданӣ ҳастед?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Гурӯҳ илова шуда истодааст: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Файлҳоро нобуд кунам ё не?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Корванд хориҷ карда мешавад %s\n&quot;
++&quot; Инчунин амалиётҳои зерин иҷро мешаванд\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Феҳристи хонагиро тоза намоед: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Қуттии мактубҳоро хориҷ намудан :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Хориҷи корванд(ҳо): %s &quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Шумо дар ҳақиқат гурӯҳро хориҷ карданӣ ҳастед %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s гурӯҳи асосӣ барои корванд мебошад %s\n&quot;
++&quot;Сараввал корвандро хориҷ намоед&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Хориҷи гурӯҳ(ҳо): %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Номи Пурра:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Номи дохилӣ:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Гузарвожа:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Гузарвожаро тасдиқ намоед:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Ҷилди номи дохилӣ:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Номи гурӯҳ:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Лутфан, ақаллан як гурӯҳро барои корванд интихоб намоед&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Лутфан, сол, моҳ ва рӯзи \n&quot;
++&quot;тамом шудани мӯҳлати қайдро нишон диҳед &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Барои солгузории гузарвожа, лутфан ҳамаи майдонҳоро пур намоед\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Шумо корванди '%s' аз гурӯҳи асосии ӯ хориҷ карда наметавонед&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Хона (мавқеи аввала):&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Додаҳои корванд&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Мӯҳлати қайдро дохил намудан&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Мӯҳлати қайд мегузарад (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Қайди корвандро бастан&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Ахборот дар бораи суратҳисоб&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Дафъаи охирин корванд гузарвожаро иваз намуд : &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Мӯҳлати иҷроиши гузарвожаро дохил намудан&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Баъд аз чанд рӯз ба тағирот иҷозат дод :&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Баъд аз якчанд рӯз тағиротро талаб намуд:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Чанд рӯз дар бораи тағирот огоҳӣ намуд :&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Миқдори рӯзҳои то қатъи қайд :&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Ахборот дар бораи гузарвожа&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Гурӯҳҳоро интихоб намоед, ки аъзои онҳо корванд хоҳад шуд:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Додаҳои гурӯҳ&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Барои дохил шудан ба ин гурӯҳ корвандҳоро интихоб намоед :&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Гурӯҳҳои корванд&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Таҳрири Гурӯҳҳо/ Корвандон&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Хатогӣ рух дод&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Махкам намоед&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Идораи корвандҳо&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Victor Ibragimov &lt;youth_opportunities@tajikngo.org&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Майдони ном холӣ аст, лутфан номро пешниҳод намоед&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++&quot;Ном бояд танҳо рамзҳои лотинӣ қайди поён, рақамҳо, `-' ва `_' -ро дошта бошад&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Ном бениҳоят дароз аст&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Хатогӣ&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;Хатогии номаълум&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Хатогии офаридани `%s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Муаллифон: &quot;
+
+<a id="userdrake2tags1133pothpo">Added: userdrake2/tags/1.13.3/po/th.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/th.po (rev 0)
++++ userdrake2/tags/1.13.3/po/th.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,754 @@
++# translation of userdrake.po to Thai
++# This file is distributed under the same license as the PACKAGE package.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
++# Wachara Chinsettawong &lt;wachara@yahoo.com&gt;, 2004.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2004-10-07 01:00-0400\n&quot;
++&quot;Last-Translator: Wachara Chinsettawong &lt;wachara@yahoo.com&gt;\n&quot;
++&quot;Language-Team: Thai\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.3\n&quot;
++&quot;Plural-Forms: nplurals=1; plural=0;\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;เกิดการผิดพลาดเวลาอ่าน `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;เกิดการผิดพลาดเวลาสร้าง `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;เกิดการผิดพลาดเวลาลบ `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;เกิดการผิดพลาดเวลาสร้าง mail spool.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;เกิดการผิดพลาดเวลาสร้าง mail spool.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;เกิดการผิดพลาดเวลาสร้าง mail spool.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;เกิดการผิดพลาดแบบไม่ทราบสาเหตุ&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;เกิดการผิดพลาดเวลาสร้าง mail spool.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;เกิดการผิดพลาดเวลาลบ mail spool.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;กำลังอ่านค่าผู้ใช้และกลุ่ม กรรุณารอสักครู่&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;เครื่องมือจัดการผู้ใช้สำหรับ Mageia&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_แบบการทำงาน&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_ปรับแต่ง&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_ลบ&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_ทางเลือก&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_กรองผู้ใช้ระบบ&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_ไฟล์&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_อ่านค่าใหม่&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_เลิก&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_เพิ่มผู้ใช้&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/เพิ่มกลุ่ม&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_ช่วยเหลือ&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_แจ้งข้อผิดพลาด&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_เกี่ยวกับ&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;ค้นหา:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;ใช้ตัวกรอง&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;ผู้ใช้&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;กลุ่ม&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;ชื่อผู้ใช้&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;รหัสผู้ใช้&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;กลุ่มแรก&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;ชื่อเต็ม&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;ล็อกอินเชล&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Home Directory&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;สถานะ&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;ชื่อกลุ่ม&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;รหัสกลุ่ม&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;สมาชิกกลุ่ม&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;เพิ่มผู้ใช้&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;เพิ่มผู้ใช้เข้าระบบ&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;เพิ่มกลุ่ม&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;เพิ่มกลุ่มเข้าระบบ&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;ปรับแต่ง&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;ปรับแต่งบรรทัดที่เลือก&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;ลบ&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;ลบที่เลือก&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;อ่านค่าใหม่&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;อ่านค่ารายการใหม่&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;ล็อก&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;หมดอายุ&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;กดที่รูปเพื่อเปลี่ยนแปลง&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;สร้างผู้ใช้ใหม่&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;สร้าง Home Directory&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Home Directory: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;สร้างกลุ่มส่วนตัวสำหรับผู้ใช้&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;ระบุรหัสผู้ใช้เอง&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;ชื่อนี้มีแล้วกรุณาใช้ชื่ออื่น&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;รหัสลับไม่ถูกต้อง&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;รหัสลับนี้ง่ายเกินไป\n&quot;
++&quot;รหัสที่ดีต้องมีตัวหนังสือมากกว่า 6 &quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;รหัสผู้ใช้น้อยกว่า 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;ไม่แนะนำให้สร้างผู้ใช้ที่มีรหัสต่ำกว่า 500 \n&quot;
++&quot;คุณแน่ใจหรือที่จะสร้าง\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;ใส่ %s เข้าไปที่กลุ่ม 'user' &quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;สร้างกลุ่มใหม่ %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;เพิ่มผู้ใช้: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;ยกเลิก&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;ตกลง&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;รหัส: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;เลือกกลุ่ม&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;เพิ่มเข้ากลุ่มที่มีอยู่แล้ว&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;เพิ่มไปที่กลุ่ม 'users'&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;ชื่อกลุ่มนี้มีแล้ว คุณจะทำอย่างไรต่อ&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;สร้างกลุ่มใหม่&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;ระบุรหัสกลุ่มเอง&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;ชื่อกลุ่มนี้มีอยู่แล้ว กรุณาเลือกชื่ออื่น&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;รหัสกลุ่มน้อยกว่า 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;ไม่แนะนำให้สร้างกลุ่มผู้ใช้ที่มีรหัสต่ำกว่า 500 \n&quot;
++&quot;คุณแน่ใจหรือที่จะสร้าง\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;เพิ่มกลุ่ม: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;รหัสกลุ่ม:&quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;ลบไฟล์หรือไม่&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;กำลังลบผู้ใช้ %s\n&quot;
++&quot;และกำลังทำงานสิ่งต่อไปนี้\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;ลบ Home Directory: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;ลบ Mailbox :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;ลบผู้ใช้: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;คุณแน่ใจหรือที่จะลบกลุ่ม %s&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s คือกลุ่มแรกของ %s\n&quot;
++&quot; ลบผู้ใช้นี้ก่อน&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;ลบกลุ่ม: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;ชื่อเต็ม:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Login:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;รหัสลับ:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;ยืนยันรหัสลับ:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;ล็อกอินเชล:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;ชื่อกลุ่ม:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;กรุณาเลือกอย่างน้อยหนึ่งกลุ่มสำหรับผู้ใช้&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;กรุณาระบุ ปี เดือน และวัน\n&quot;
++&quot;ที่บัญชีจะหมดอายุ &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;กรุณากรอกทุกช่องในอายุของรหัสลับ\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;คุณไม่สามารถลบผู้ใช้ '%s' จากกลุ่มแรกของเขา&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Home:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;ข้อมูลผู้ใช้&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;ใช้งานการจับเวลาวันหมดอายุของบัญชี&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;บัญชีหมดอายุ (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;ล็อกบัญชีผู้ใช้&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;ข้อมูลบัญชี&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;ผู้ใช้เปลี่ยนรหัสลับครั้งสุดท้ายเมื่อ :&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;ใช้งานวันหมดอายุของรหัสลับ&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;จำนวนวันก่อนที่จะเปลี่ยนได้:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;จำนวนวันก่อนเปลี่ยนที่ต้องการ:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;จำนวนวันที่จะเตือนก่อนเปลี่ยน:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;:จำนวนวันก่อนบัญชีจะใช้งานไม่ได้&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;ข้อมูลรหัสลับ&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;เลือกกลุ่มที่ผู้ใช้จะเป็นสมาชิก&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;ข้อมูลกลุ่ม&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;เลือกผู้ใช้สำหรับกลุ่มนี้:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;กลุ่มผู้ใช้&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;แก้ใขกลุ่ม / ผู้ใช้&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;มีปัญหาเกิดขึ้น&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;ปิด&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;การบริหารผู้ใช้&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;ไม่มีชื่อ กรุณาใส่ชื่อด้วย&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;ชื่อต้องเป็นตัวหนังสือลาตินแบบตัวเล็ก ตัวเลข `-' และ `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;ชื่อยาวเกินไป&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;เกิดการผิดพลาด&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;เกิดการผิดพลาดแบบไม่ทราบสาเหตุ&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;เกิดการผิดพลาดเวลาสร้าง `%s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;ผู้แต่ง:&quot;
+
+<a id="userdrake2tags1133potlpo">Added: userdrake2/tags/1.13.3/po/tl.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/tl.po (rev 0)
++++ userdrake2/tags/1.13.3/po/tl.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,756 @@
++# translation of userdrake-tl.po to Filipino
++# translation of userdrake.po to Filipino
++# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
++# Arys P. Deloso &lt;arys@deloso.org&gt;, 2004, 2005.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-tl\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2005-01-25 08:11+0000\n&quot;
++&quot;Last-Translator: Arys P. Deloso &lt;arys@deloso.org&gt;\n&quot;
++&quot;Language-Team: Filipino &lt;salin@pandaypinoy.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.3.1\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Hindi mabasa ang `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Hindi magawa ang `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Hindi matanggal ang `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Hindi magawa ang mail spool.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Hindi magawa ang mail spool.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Hindi magawa ang mail spool.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;di-alam na kamalian&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Hindi magawa ang mail spool.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Hindi matanggal ang mail spool.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Nilo-load ang mga User at Grupo... Pakihintay&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageia Users Management Tool&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/Mga _Aksyon&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/I-_Edit&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Alisin&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/Mga _Option&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Salain ang mga system user&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_File&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Sariwain&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Labas&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;L&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Magdagdag ng User&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Magdagdag ng _Grupo&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Tulong&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/Mag-ulat ng _Bug&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/Tung_kol sa...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Hanapin:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;I-apply ang pangsala&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Mga user&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Mga grupo&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Mga gumagamit at grupo&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Pangalan ng User&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;User ID&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Pangunahing Grupo&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Buong Pangalan&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Login Shell&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Tahanang Directory&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Kalagayan&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Pangalan ng Grupo&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Group ID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Mga Kasapi sa Grupo&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Magdagdag ng User&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Magdagdag ng user sa sistema&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Magdagdag ng Grupo&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Magdagdag ng grupo sa sistema&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;I-edit&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;I-edit ang piniling hanay (row)&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Alisin&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Alisin ang piniling row&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Sariwain&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Sariwain ang talaan&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Naka-lock&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Wala ng bisa&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;I-click ang icon para baguhin ito&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Gumawa ng Bagong User&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Gumawa ng Tahanang Directory&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Tahanang Directory: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Gumawa ng pribadong grupo para sa user&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Mano-manong banggitin ang user ID&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Mayroon nang User, pakiusap, pumili ng ibang Pangalan ng User&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Password Di-tugma&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Itong password ay sobrang simple. \n&quot;
++&quot; Ang mga magandang password ay dapat &gt; 6 character&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;User Uid ay &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Hindi ipinapayo ang paggawa ng user na may UID na mas mababa sa 500.\n&quot;
++&quot; Sigurado ka bang gusto mong gawin ito?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Nilalagay ang %s sa 'users' na grupo&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Ginagawa ang bagong grupo: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Idinadagdag ang user: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Kanselahin&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Ok&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Pumili ng grupo&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Idagdag sa mayroon nang grupo&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Idagdag sa 'users' na grupo&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;&quot;
++&quot;Mayroon nang grupo na may ganitong pangalan. Ano ang gusto mong gawin?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Gumawa ng Bagong Grupo&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Mano-manong banggitin ang ID ng grupo&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Mayroon nang Grupo, pakiusap, pumili ng ibang Pangalan ng Grupo&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; Gid ng Grupo ay &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Hindi ipinapayo ang paggawa ng grupo na may GID na mas mababa sa 500.\n&quot;
++&quot; Sigurado ka bang gusto mong gawin ito?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Idinadagdag ang grupo: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Alisin ang mga file o hindi?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Inaalis ang user %s\n&quot;
++&quot; At saka gawin ang mga sumusunod na aksyon\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Alisin ang Tahanang Directory: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Alisin ang Mailbox :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Inaalis ang user: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Gusto ma ba talagang alisin ang grupo na %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s ay isang pangunahing grupo para sa user na %s\n&quot;
++&quot; Alisin muna ang user&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Inaalis ang grupo: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Buong Pangalan:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Login:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Password:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Ulitin ang Password:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Login Shell:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Pangalan ng Grupo:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Pakiusap, pumili ng isa man lang na grupo para sa user&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Pakibanggit ang Taon, Buwan at Araw \n&quot;
++&quot; para sa Pagkawala ng bisa ng Account &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Pakipuno lahat ng mga field sa pagtanda ng password\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Hindi mo maaalis ang user na '%s' mula sa kanilang pangunahing grupo&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Tahanan:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;User Data&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Paganahin ang pag-expire (walang bisa) ng account&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Mawawalang bisa (TTTT-BB-AA):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;I-lock ang Account ng User&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Inpormasyon sa Account&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Huling binago ng user ang password noong : &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Paganahin ang pag-expire (walang bisa) ng password&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Araw bago payagan pagbabago :&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Araw bago kailanganing baguhin :&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Araw ng pagbabala bago baguhin :&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Araw bago inactive ang account :&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Inpormasyon sa Password&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Piliin ang mga grupo na magiging kasapi ang user:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Group Data&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Piliin ang mga user na sasali sa grupong ito :&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Mga User ng Grupo&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;I-Edit ang mga Grupo / User&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;May \&quot;error\&quot; na nangyari&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Isara&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Pangangasiwa ng mga User&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Arys P. Deloso &lt;arys@deloso.org&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Ang field na Pangalan ay walang laman, magbigay ng pangalan&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++&quot;Ang pangalan ay dapat maglaman lamang ng maliliit na latin na titik, bilang, &quot;
++&quot;`-' at `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Sobrang haba ng pangalan&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Error&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;di-alam na kamalian&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Hindi magawa ang `%s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Mga Autor: &quot;
+
+<a id="userdrake2tags1133potrpo">Added: userdrake2/tags/1.13.3/po/tr.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/tr.po (rev 0)
++++ userdrake2/tags/1.13.3/po/tr.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,790 @@
++# translation of tr.po to Turkce
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/tr.php3
++#
++# Copyright (C) 2003, 2004, 2007 Free Software Foundation, Inc.
++# #############################################
++#
++#
++# #############################################
++#
++# Ömer Fadıl USTA &lt;omer_fad@hotmail.com&gt;, 2002-2003, 2004.
++# S. Alp ŞENYER &lt;ssenyer@linux-sevenler.org&gt;, 2004.
++# Taha Özket &lt;taha.ozket@obss.net&gt;, 2007.
++# Atilla ÖNTAŞ &lt;atilla_ontas@mandriva.ocm&gt;, 2009.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: tr\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2010-02-09 02:47+0200\n&quot;
++&quot;Last-Translator: Atilla ÖNTAŞ &lt;atilla_ontas@mandriva.org&gt;\n&quot;
++&quot;Language-Team: Turkish &lt;kde-i18n-doc@kde.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: Lokalize 1.0\n&quot;
++&quot;Plural-Forms: nplurals=1; plural=0;\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Okurken hata `%s': %s&quot;
++
++#: ../USER/USER.xs:93
++#: ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Yaratılırken hata `%s': %s&quot;
++
++#: ../USER/USER.xs:205
++#: ../USER/USER.xs:234
++#: ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Silerken hata `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Hesap oluşturma işlemi başarısız oldu: '%s'.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;Uid numarası alınamıyor&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;Değer alınamıyor&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Yeni posta kuyruğu yaratma hatası.\n&quot;
++
++#: ../USER/USER.xs:582
++#, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Kullanıcı düzenlenemez: '%s'.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Kullanıcı Silinemez: '%s'.\n&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;Parola ayarlanamadı: '%s'.\n&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;bilinmeyen hata&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Grup oluşturma işlemi başarısız oldu.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;Grup düzenlenemez: '%s'.\n&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;Grup silinemez: '%s'.\n&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;Kullanıcı için bir Ev dizini yok.\n&quot;
++
++#: ../USER/USER.xs:869
++#: ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Ev Dizini silinemez: '%s'.\n&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Posta kuyruğu silme hatası.\n&quot;
++
++#: ../userdrake:59
++#: ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Kullanıcı ve Gruplar Yükleniyor... Lütfen bekleyin&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageia Kullanıcı Yönetim Aracı&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;/_konuk hesabını kur&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;/_konuk hesabını sil&quot;
++
++#: ../userdrake:101
++#: ../userdrake:102
++#: ../userdrake:103
++#: ../userdrake:114
++#: ../userdrake:115
++#: ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/Eylemle_r&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/Dü_zenle&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Sil&quot;
++
++#: ../userdrake:104
++#: ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/S_eçenekler&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/Sistem kullanıcılarını _Filtrele&quot;
++
++#: ../userdrake:109
++#: ../userdrake:110
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Dosya&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Tazele&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/Çı_K&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/K_ullanıcı Ekle&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Gru_p Ekle&quot;
++
++#: ../userdrake:125
++#: ../userdrake:126
++#: ../userdrake:127
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Yardım&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/Hata _Bildir&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Hakkında...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Ara:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Filtreyi uygula&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Kullanıcılar&quot;
++
++#: ../userdrake:162
++#: ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Gruplar&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Kullanıcı ve gruplar&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Kullanıcı Adı&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Kullanıcı ID&quot;
++
++#: ../userdrake:186
++#: ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Birincil Grup&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Tam isim&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Giriş Kabuğu&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Ev Dizini&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Durum&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Grup Adı&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Grup ID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Grup Üyeleri&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Kullanıcı Ekle&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Sisteme bir kullanıcı ekler&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Grup Ekle&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Sisteme bir kullanıcı ekler&quot;
++
++#: ../userdrake:198
++#: ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Düzenle&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Seçili sırayı süzenler&quot;
++
++#: ../userdrake:199
++#: ../userdrake:674
++#: ../userdrake:707
++#: ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Sil&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Seçili sırayı siler&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Tazele&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Listeyi tazeler&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Kilitli&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Hükmünü yitirmiş&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Değiştirmek için simgesine tıklayın&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Yeni Kullanıcı Oluştur&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Ev Dizini Oluştur&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Ev Dizini: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Kullanıcılar için özel bir grup oluştur&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Kullanıcının ID'sini elle belirle&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Kullanıcı zaten mevcut, lütfen bir başka Kullanıcı Adı seçin&quot;
++
++#: ../userdrake:419
++#: ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Parolalar uyuşmuyor&quot;
++
++#: ../userdrake:422
++#: ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Bu parola çok basit. \n&quot;
++&quot; İyi bir parola en az 6 karakterden oluşturulmalıdır&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Kullanıcı adı 500 'den küçükj&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Kullanıcı ID'si 500 sayisindan küçük bir kullanıcı oluşturmak\n&quot;
++&quot;tavsiye edilmemektedir.\n&quot;
++&quot; Bunu yapmak istediğinize emin misiniz ?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;%s 'users' grubuna koyuluyor&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Oluşturulan yeni grup: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Eklenen kullanıcı: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Göç sihirbazı&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;Do you want to run the migration wizard in order to import Windows documents and settings in your Mageia distribution?&quot;
++msgstr &quot;Windows belge ve seçeneklerinizi Mageia dağıtımına aktarmak için göç sihirbazını çalıştırmak istiyor musunuz?&quot;
++
++#: ../userdrake:484
++#: ../userdrake:528
++#: ../userdrake:587
++#: ../userdrake:674
++#: ../userdrake:707
++#: ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Vazgeç&quot;
++
++#: ../userdrake:484
++#: ../userdrake:521
++#: ../userdrake:587
++#: ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Tamam&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Grup seçin&quot;
++
++#: ../userdrake:512
++#: ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Var olan bir gruba ekle&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;'users' grubuna ekle&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Bu isimde zaten bir grup mevcut . Ne yapmak istersiniz ?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Yeni Grup Oluştur&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Grup ID'sini elle belirle&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Grup zaten mevut, lütfen bir başka Grup ismi seçin&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; Grup Gid 500 'den küçük&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Grup ID'si 500 sayisindan küçük bir grup oluşturmak\n&quot;
++&quot;tavsiye edilmemektedir.\n&quot;
++&quot; Bunu yapmak istediğinize emin misiniz ?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Eklenen grup: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Dosyaları silinsin mi yoksa silinmesin mi?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;%s Kullanıcısı siliniyor\n&quot;
++&quot; Sonrasında şu eylemler gerçekleştirilecek\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Ev Dizinini Sil: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Posta Kutusunu Sil :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Kaldırılan kullanıcı: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;%s grubunu gerçekten silmek istiyor musunuz?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s grubu %s kullanıcısı için birincil gruptur\n&quot;
++&quot; Önce kullanıcıyı çıkartın&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Kaldırılan Grup: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Tam isim:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Giriş:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Parola:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Parolayı Tekrarla:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Giriş Kabuğu:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Grup Adı:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Lütfen kullanıcı için en az bir grup seçiniz&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Lütfen hesabın hükmünü yitireceği Yılı, \n&quot;
++&quot;Ayı ve Günü belirtin &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Lütfen şifre bölümündeki tüm bilgileri doldurunuz\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;'%s' kullanıcısını onların birincil grubundan çıkartamazsınız&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Ev:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Kullanıcı Verisi&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Hesabın hüküm yitirmesine imkan ver&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Hesabın sonlanması (YYYY-AA-GG):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Kullanıcı Hesabını Kilitle&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Hesap bilgisi&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Kullanıcı en son şu tarihte şifre değiştirdi : &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Parolanın hüküm yitirmesine imkan ver&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Değişikliğe kaç gün sonra izin verilecek&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Kaç gün sonra değiştirecek&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Değiştirmeden kaç gün önce uyarılacak :&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Hesap kaç gün sonra kapatılacak :&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Parola bilgisi&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Kullanıcının üyesi olacağı grupları seçiniz:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Grup Verisi&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Gruba eklenecek kullanıcıları seçin :&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Grup Kullanıcıları&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Grupları / Kullanıcıları Düzenle&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Bir hata oluştu:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Kapat&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Tüm Hakları Saklıdır (C) %s Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Kullanıcı Yönetimi&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Taha Özket &lt;taha.ozket@obss.net&gt; 2007\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;İsim alanı boş bırakılmış lütfen uygun şekilde doldurunuz&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;İsim sadece ufak latin harflerini , '-' ve '_' işaretlerini içerebilir&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;İsim çok uzun&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Hata&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;bilinmeyen hata&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Yaratılırken hata `%s': %s&quot;
++
+
+<a id="userdrake2tags1133poukpo">Added: userdrake2/tags/1.13.3/po/uk.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/uk.po (rev 0)
++++ userdrake2/tags/1.13.3/po/uk.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,763 @@
++# translation of userdrake2.po to ukrainian
++# $Id: uk.po 266811 2010-03-14 13:45:17Z btr0001 $
++# Copyright (C) 2003, 2004, 2005, 2008 Free Software Foundation, Inc.
++# Copyright (c) 2000 Mandriva
++# Gladky Dima &lt;gladimdim@inbox.ru&gt; (2002)
++#
++# Sergey A. Ribalchenko &lt;fisher@obu.ck.ua&gt;, 2000.
++# Taras Boychuk &lt;btr1@torba.com&gt;, 2003, 2004.
++# Taras Boychuk &lt;btr1@mail.ru&gt;, 2003.
++# Taras Boychuk &lt;btr1@ukrpost.net&gt;, 2004, 2005.
++# Taras Boychuk &lt;btr0001@ukr.net&gt;, 2008, 2010.
++# Yuri Chornoivan &lt;yurchor@ukr.net&gt;, 2009, 2010.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake2\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2010-03-10 17:01-0500\n&quot;
++&quot;Last-Translator: Taras Boychuk &lt;btr0001@ukr.net&gt;\n&quot;
++&quot;Language-Team: Ukrainian &lt;translation@linux.org.ua&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: Lokalize 1.0\n&quot;
++&quot;Plural-Forms: nplurals=3; plural=(n%10==1 &amp;&amp; n%100!=11 ? 0 : n%10&gt;=2 &amp;&amp; &quot;
++&quot;n%10&lt;=4 &amp;&amp; (n%100&lt;10 || n%100&gt;=20) ? 1 : 2);\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Помилка при читанні `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Помилка при створенні `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Помилка при видаленні `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Спроба створення облікового запису зазнала невдачі: «%s».\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;Не вдалося отримати номер Uid&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;Не вдалося отримати значення&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Помилка при створенні поштової низки.\n&quot;
++
++#: ../USER/USER.xs:582
++#, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Не вдалося змінити параметри запису користувача: «%s».\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Не вдалося вилучити запис користувача: «%s».\n&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;Не вдалося встановити пароль: «%s».\n&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;невідома помилка&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Помилка під час спроби створення групи.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;Не вдалося змінити параметри групи: «%s».\n&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;Не вдалося вилучити групу: «%s».\n&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;У цього користувача немає домашньої теки.\n&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Не вдалося вилучити домашню теку: «%s».\n&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Помилка при видаленні поштової низки.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Завантажуються Користувачі і групи... Зачекайте, будь ласка&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Інструмент керування користувачами Мандріва Лінакса&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;/_Встановити обліковий запис для гостей&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;/В_илучити обліковий запис для гостей&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Дії&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/Виправити&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/Видалити&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/Параметри&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/Фільтрувати системних користувачів&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/Файл&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/Поновити&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/Вийти&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/Додати користувача&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Додати групу&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/Довідка&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/Звіт про помилку&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/Про програму...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Пошук:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Застосувати фільтр&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Користувачі&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Групи&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Користувачі і групи&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Ім'я користувача&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Код користувача&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Первинна група&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Повна назва&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Командний рядок реєстрації&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Домівка користувача&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Статус&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Назва групи&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Код групи&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Члени групи&quot;
++
++# broken into two lines to avoid too large a button
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Додати користувача&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Додати користувача в систему&quot;
++
++# broken into two lines to avoid too large a button
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Додати групу&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Додати групу в систему&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Виправити&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Виправити вибраний рядок&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Видалити&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Видалити вибраний рядок&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Поновити&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Поновити список&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Заблоковано&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Термін закінчився&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Клацніть на іконці, щоб змінити&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Створити нового користувача&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Створити домівку користувача&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Домівка користувача: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Створити особисту групу для користувача&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Задати код користувача вручну&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Такий користувач вже є, будь ласка, задайте інше ім'я користувача&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Паролі не збігаються&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Цей пароль занадто простий. \n&quot;
++&quot; Хороший пароль повинен мати більше 6 символів&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Код користувача менший за 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Створювати користувачів з кодом, меншим за 500, не рекомендується.\n&quot;
++&quot; Ви впевнені, що хочете зробити саме так?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Додається %s в групу 'users'&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Створюється нова група: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Додається користувач: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Помічник переходу&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;Чи хочете запустити Помічника переходу, щоб імпортувати налаштування і &quot;
++&quot;документи Віндовс у Мандріва Лінакс?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Скасувати&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Гаразд&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;Код користувача: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Виберіть групу&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Додати в існуючу групу&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Додати в групу 'users'&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Група з такою назвою вже існує. Що хочете зробити?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Створити нову групу&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Задати код групи вручну&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Група вже існує, будь ласка, вкажіть іншу назву групи&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;Код групи менший за 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Створювати групи з кодом, меншим за 500 не рекомендується.\n&quot;
++&quot; Ви впевнені, що хочете зробити саме так?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Додається група: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;Код групи: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Видалити файли, чи ні?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Вилучається користувач %s\n&quot;
++&quot; Також виконуються наступні дії\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Видалити домівку користувача: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Видалити поштову скриньку :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Вилучається користувач: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Ви справді хочете видалити групу %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s є первинною групою для користувача %s\n&quot;
++&quot; Спочатку вилучіть користувача&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Вилучається група: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Повна назва:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Ім'я:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Пароль:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Підтвердіть пароль:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Командний рядок реєстрації:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Назва групи:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Будь ласка, виберіть хоч одну групу для користувача&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Будь ласка, задайте рік, місяць і день \n&quot;
++&quot; закінчення дії облікового запису &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Будь ласка, заповніть всі поля, щоб встановити термін дії пароля\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Ви не можете вилучити користувача '%s' з його первинної групи&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Домівка:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Дані користувача&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Увімкнути обмеження облікових записів&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Термін дії облікового запису закінчується (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Заблокувати облік користувачів&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Інформація про користувачів&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Остання зміна пароля користувачем: &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Увімкнути обмеження терміну дії пароля&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Дозволено днів перед зміною :&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Необхідно днів перед зміною :&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Днів попередження перед зміною :&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Днів до завершення дії облікового запису:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Інформація про пароль&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Виберіть групи, членом яких буде користувач:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Дані групи&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Виберіть користувачів, яких включити в цю групу :&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Згрупувати користувачів&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Редагувати Групи / Користувачів&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Сталася помилка:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Закрити&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Copyright (C) %s by Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Керування користувачами&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Taras Boychuk &lt;btr0001@ukr.net&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Поле з назвою порожнє, будь ласка, введіть назву.&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++&quot;Назва може складатися тільки з малих латинських літер, цифр, `-' та `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Назва занадто довга&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Помилка&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;невідома помилка&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Помилка при створенні `%s': %s&quot;
+
+<a id="userdrake2tags1133pouserdrakepot">Added: userdrake2/tags/1.13.3/po/userdrake.pot</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/userdrake.pot (rev 0)
++++ userdrake2/tags/1.13.3/po/userdrake.pot 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,733 @@
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
++# This file is distributed under the same license as the PACKAGE package.
++# FIRST AUTHOR &lt;EMAIL@ADDRESS&gt;, YEAR.
++#
++#, fuzzy
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: PACKAGE VERSION\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2011-02-06 22:15+0100\n&quot;
++&quot;PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n&quot;
++&quot;Last-Translator: FULL NAME &lt;EMAIL@ADDRESS&gt;\n&quot;
++&quot;Language-Team: LANGUAGE &lt;LL@li.org&gt;\n&quot;
++&quot;Language: \n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=CHARSET\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:490
++#, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:582
++#, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:59 ../userdrake:1276
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:419 ../userdrake:859
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:422 ../userdrake:862
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1167
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1167
++#: ../userdrake:1318
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:819
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:893
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:903
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:913
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1160
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1268
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1278
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1278
++#, c-format
++msgid &quot;Copyright (C) %s by Mageia&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1281
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1283
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1289
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1296
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1298
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1301
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1314
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;&quot;
+
+<a id="userdrake2tags1133pouzpo">Added: userdrake2/tags/1.13.3/po/uz.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/uz.po (rev 0)
++++ userdrake2/tags/1.13.3/po/uz.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,805 @@
++# translation of userdrake-uz@Cyrl.po to Uzbek
++# ###
++# ### Cyrilic version atuomatically built from the latin one;
++# ### Needs proofreading!
++# ###
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/uz@Cyrl.php3
++#
++# Suppor for Uzbek language in userdrake.
++# Copyright (C) 2003 Free Software Foundation, Inc.
++# Copyright (C) 2003 Mandriva.
++# Mashrab Kuvatov &lt;kmashrab@uni-bremen.de&gt;, 2003.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-uz\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2003-11-16 10:52+0100\n&quot;
++&quot;Last-Translator: Mashrab Kuvatov &lt;kmashrab@uni-bremen.de&gt;\n&quot;
++&quot;Language-Team: Uzbek &lt;uz-li@yahoogroups.com&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=1; plural=0;\n&quot;
++&quot;X-Generator: KBabel 1.0.2\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, fuzzy, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Foydalanuvchi olib tashlanmoqda: %s&quot;
++
++#: ../USER/USER.xs:490
++#, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:582
++#, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;noma'lum xato&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake - foydalanuvchilarni boshqarish&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Foydalanuvchi va guruhlar yuklanmoqda, iltimos kutib turing...&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageia uchun foydalanuvchilarni boshqarish vositasi&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Amallar&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Tuzatish&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_O'chirish&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Parametrlar&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Sistema foydalanuvchilarini filterlash&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Fayl&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Yangilash&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/Chi_qish&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Foydalanuvchini qo'shish&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/_Guruhni qo'shish&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Yordam&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Xato haqida xabar qilish&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Haqida&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Qidirish:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Filterni qo'llash&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Foydalanuvchilar&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Guruhlar&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Foydalanuvchi va guruhlar&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Foydalanuvchi&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Foydalanuvchining ID'si&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Asosiy guruh&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;To'liq ismi&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Kirish konsoli&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Uy direktoriyasi&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Holati&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Guruhning nomi&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Guruhning ID'si&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Guruh a'zolari&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Foydalanuvchini qo'shish&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Sistemaga foydalanuvchini qo'shish&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Guruhni qo'shish&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Sistemaga guruhni qo'shish&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Tuzatish&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Belgilangan qatorni tuzatish&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;O'chirish&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Belgilangan qatorni o'chirish&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Yangilash&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Ro'yxatni yangilash&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Qulflangan&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Muddati o'tgan&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Buni o'zgartirish uchun nishonchani bosing&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Yangi foydalanuvchini yaratish&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Uy direktoriyani yaratish&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Uy direktoriyasi: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Foydalanuvchi uchun shaxsiy guruhni yaratish&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;&quot;
++&quot;Foydalanuvchi allaqachon mavjud, iltimos boshqa foydalanuvchini tanlang&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Maxfiy so'z mos kelmadi&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Bu maxfiy so'z juda sodda. \n&quot;
++&quot;Yaxshi maxfiy so'z 6 belgidan ko'p bo'lishi kerak&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Foydalanuvchining UID'si 500 dan kam&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;UID'si 500 dan kam bo'lgan foydalanuvchini yaratish tavsiya qilinmaydi.\n&quot;
++&quot; Buni bajarishga ishonchingiz komilmi?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;%s \&quot;users\&quot; guruhiga qo'shilmoqda&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Yangi guruh yaratilmoqda: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Foydalanuvchi qo'shilmoqda: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Bekor qilish&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Ok&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, fuzzy, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Guruhni tanlang&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Mavjud bo'lgan guruhga qo'shish&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;\&quot;users\&quot; guruhiga qo'shish&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Bunday nomli guruh allaqachon mavjud. Siz nimani bajarishni istaysiz?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Yangi guruhni yaratish&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Guruh allaqachon mavjud, iltimos boshqa guruh nomini tanlang&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;Guruhning GID'si 500 dan kam&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;GID'si 500 dan kam bo'lgan guruhni yaratish tavsiya qilinmaydi.\n&quot;
++&quot; Buni bajarishga ishonchingiz komilmi?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Guruh qo'shilmoqda: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, fuzzy, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Belgilangan qatorni o'chirish&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Foydalanuvchi %s o'chirilmoqda\n&quot;
++&quot; Budan tashqari quyidagi amallarni bajarish\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Uy direktoriyasini o'chirish: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Pochta qutisini o'chirish :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Foydalanuvchi olib tashlanmoqda: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Rostdan \&quot;%s\&quot; guruhini o'chirmoqchimisiz?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;Guruh %s foydalanuvchi %s uchun asosiy\n&quot;
++&quot; Avvalo foydalanuvchini o'chiring&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Guruh olib tashlanmoqda: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;To'liq ismi:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Foydalanuvchi:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Maxfiy so'z:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Maxfiy so'zni tasdiqlang:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Kirish konsoli:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Guruhning nomi:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Iltimos foydalanuvchi uchun eng kamida bitta guruhni tanlang&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Iltimos hisob muddati o'tish\n&quot;
++&quot; yilni, oyni va kunni ko'rsating &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Foydalanuvchini \&quot;%s\&quot; asosiy guruhidan o'chirib bo'lmaydi&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Uy direktoriya:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Foydalanuvchining ma'lumotlari&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Hisob muddati o'tishini yoqish&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Hisobning muddati o'tadi (YYYY-OO-KK):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Foydalanuvchining hisobini qulflash&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Hisob haqida ma'lumot&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Foydalanuvchi oxirgi marta maxfiy so'zni o'zgartirgan sana : &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Maxfiy so'z muddati o'tishini yoqish&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Shuncha kundan so'ng o'zgartirish mumkin :&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Shuncha kundan so'ng o'zgartirish talab qilinadi :&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Shuncha kundan so'ng hisob qulflanadi :&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Maxfiy so'z haqida ma'lumot&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Foydalanuvchi a'zo bo'ladigan guruhni tanlang:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Guruhning ma'lumoti&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Bu guruhga a'zo bo'ladigan foydalanuvchilarni tanlang:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Guruh foydalanuvchilari&quot;
++
++#: ../userdrake:1127
++#, fuzzy, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Guruh foydalanuvchilari&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Xato roʻy berdi:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Yopish&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Copyright (C) %s by Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Foydalanuvchilar boshqaruvi&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Mashrab Quvatov &lt;kmashrab@uni-bremen.de&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Foydalanuvchi maydoni bo'sh. Iltimos foydalanuvchini kiriting.&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++&quot;Foydalanuvchi faqat kichik lotin harflar, sonlar. \&quot;-\&quot; va \&quot;_\&quot; &quot;
++&quot;belgilaridan iborat bo'lishi mumkin&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Foydalanuvchining ismi juda uzun&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Xato&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;noma'lum xato&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Foydalanuvchi olib tashlanmoqda: %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Mualliflar: &quot;
++
++#~ msgid &quot;Yes&quot;
++#~ msgstr &quot;Ha&quot;
++
++#~ msgid &quot;No&quot;
++#~ msgstr &quot;Yo'q&quot;
++
++#, fuzzy
++#~ msgid &quot;Delete files or not&quot;
++#~ msgstr &quot;Belgilangan qatorni o'chirish&quot;
++
++#~ msgid &quot;Warning : Deleting User&quot;
++#~ msgstr &quot;Diqqat: Foydalanuvchi o'chirilmoqda&quot;
++
++#~ msgid &quot;Warning : Deleting Group&quot;
++#~ msgstr &quot;Diqqat: Guruh o'chirilmoqda&quot;
++
++#~ msgid &quot;Generic help on userdrake&quot;
++#~ msgstr &quot;Userdrake bo'yicha umumiy yordam&quot;
++
++#~ msgid &quot;Help&quot;
++#~ msgstr &quot;Yordam&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;This password is too simple. \n&quot;
++#~ &quot; Good passwords should be &gt; 6 caracters&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Bu maxfiy so'z juda sodda. \n&quot;
++#~ &quot;Yaxshi maxfiy so'z 6 belgidan ko'p bo'lishi kerak&quot;
++
++#~ msgid &quot;Delete User&quot;
++#~ msgstr &quot;Foydalanuvchini o'chirish&quot;
++
++#~ msgid &quot;The name must contain only lower cased letters, numbers, `-' and `_'&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Foydalanuvchi faqat kichik harflar, sonlar. \&quot;-\&quot; va \&quot;_\&quot; belgilaridan &quot;
++#~ &quot;iborat bo'lishi mumkin&quot;
++
++#, fuzzy
++#~ msgid &quot; Remove Home Directory&quot;
++#~ msgstr &quot;Foydalanuvchining uy direktoriyasi&quot;
+
+<a id="userdrake2tags1133pouzcyrillicpo">Added: userdrake2/tags/1.13.3/po/uz@cyrillic.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/uz@cyrillic.po (rev 0)
++++ userdrake2/tags/1.13.3/po/uz@cyrillic.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,804 @@
++# translation of userdrake-uz@Cyrl.po to Uzbek
++# ###
++# ### Cyrilic version atuomatically built from the latin one;
++# ### Needs proofreading!
++# ###
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/uz@Cyrl.php3
++#
++# Suppor for Uzbek language in userdrake.
++# Copyright (C) 2003 Free Software Foundation, Inc.
++# Copyright (C) 2003 Mandriva.
++# Mashrab Kuvatov &lt;kmashrab@uni-bremen.de&gt;, 2003.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-uz\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2003-11-16 10:52+0100\n&quot;
++&quot;Last-Translator: Mashrab Kuvatov &lt;kmashrab@uni-bremen.de&gt;\n&quot;
++&quot;Language-Team: Uzbek &lt;uz-li@yahoogroups.com&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=1; plural=0;\n&quot;
++&quot;X-Generator: KBabel 1.0.2\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, fuzzy, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Фойдаланувчи олиб ташланмоқда: %s&quot;
++
++#: ../USER/USER.xs:490
++#, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:582
++#, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;номаълум хато&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake - фойдаланувчиларни бошқариш&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Фойдаланувчи ва гуруҳлар юкланмоқда, илтимос кутиб туринг...&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageia учун фойдаланувчиларни бошқариш воситаси&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Амаллар&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Тузатиш&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Ўчириш&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Параметрлар&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Система фойдаланувчиларини филтерлаш&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Файл&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Янгилаш&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/Чи_қиш&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Фойдаланувчини қўшиш&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/_Гуруҳни қўшиш&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Ёрдам&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Хато ҳақида хабар қилиш&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Ҳақида&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Қидириш:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Филтерни қўллаш&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Фойдаланувчилар&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Гуруҳлар&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Фойдаланувчи ва гуруҳлар&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Фойдаланувчи&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Фойдаланувчининг ID'си&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Асосий гуруҳ&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Тўлиқ исми&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Кириш консоли&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Уй директорияси&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Ҳолати&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Гуруҳнинг номи&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Гуруҳнинг ID'си&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Гуруҳ аъзолари&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Фойдаланувчини қўшиш&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Системага фойдаланувчини қўшиш&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Гуруҳни қўшиш&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Системага гуруҳни қўшиш&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Тузатиш&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Белгиланган қаторни тузатиш&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Ўчириш&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Белгиланган қаторни ўчириш&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Янгилаш&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Рўйхатни янгилаш&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Қулфланган&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Муддати ўтган&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Буни ўзгартириш учун нишончани босинг&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Янги фойдаланувчини яратиш&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Уй директорияни яратиш&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Уй директорияси: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Фойдаланувчи учун шахсий гуруҳни яратиш&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Фойдаланувчи аллақачон мавжуд, илтимос бошқа фойдаланувчини танланг&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Махфий сўз мос келмади&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Бу махфий сўз жуда содда. \n&quot;
++&quot;Яхши махфий сўз 6 белгидан кўп бўлиши керак&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Фойдаланувчининг UID'си 500 дан кам&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;UID'си 500 дан кам бўлган фойдаланувчини яратиш тавсия қилинмайди.\n&quot;
++&quot; Буни бажаришга ишончингиз комилми?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;%s \&quot;users\&quot; гуруҳига қўшилмоқда&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Янги гуруҳ яратилмоқда: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Фойдаланувчи қўшилмоқда: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Бекор қилиш&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Ок&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, fuzzy, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Гуруҳни танланг&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Мавжуд бўлган гуруҳга қўшиш&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;\&quot;users\&quot; гуруҳига қўшиш&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Бундай номли гуруҳ аллақачон мавжуд. Сиз нимани бажаришни истайсиз?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Янги гуруҳни яратиш&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Гуруҳ аллақачон мавжуд, илтимос бошқа гуруҳ номини танланг&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;Гуруҳнинг GID'си 500 дан кам&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;GID'си 500 дан кам бўлган гуруҳни яратиш тавсия қилинмайди.\n&quot;
++&quot; Буни бажаришга ишончингиз комилми?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Гуруҳ қўшилмоқда: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, fuzzy, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Белгиланган қаторни ўчириш&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Фойдаланувчи %s ўчирилмоқда\n&quot;
++&quot; Будан ташқари қуйидаги амалларни бажариш\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Уй директориясини ўчириш: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Почта қутисини ўчириш :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Фойдаланувчи олиб ташланмоқда: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Ростдан \&quot;%s\&quot; гуруҳини ўчирмоқчимисиз?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;Гуруҳ %s фойдаланувчи %s учун асосий\n&quot;
++&quot; Аввало фойдаланувчини ўчиринг&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Гуруҳ олиб ташланмоқда: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Тўлиқ исми:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Фойдаланувчи:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Махфий сўз:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Махфий сўзни тасдиқланг:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Кириш консоли:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Гуруҳнинг номи:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Илтимос фойдаланувчи учун энг камида битта гуруҳни танланг&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Илтимос ҳисоб муддати ўтиш\n&quot;
++&quot; йилни, ойни ва кунни кўрсатинг &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Фойдаланувчини \&quot;%s\&quot; асосий гуруҳидан ўчириб бўлмайди&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Уй директория:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Фойдаланувчининг маълумотлари&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Ҳисоб муддати ўтишини ёқиш&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Ҳисобнинг муддати ўтади (ЙЙЙЙ-ОО-КК):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Фойдаланувчининг ҳисобини қулфлаш&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Ҳисоб ҳақида маълумот&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Фойдаланувчи охирги марта махфий сўзни ўзгартирган сана : &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Махфий сўз муддати ўтишини ёқиш&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Шунча кундан сўнг ўзгартириш мумкин :&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Шунча кундан сўнг ўзгартириш талаб қилинади :&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Шунча кундан сўнг ҳисоб қулфланади :&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Махфий сўз ҳақида маълумот&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Фойдаланувчи аъзо бўладиган гуруҳни танланг:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Гуруҳнинг маълумоти&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Бу гуруҳга аъзо бўладиган фойдаланувчиларни танланг:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Гуруҳ фойдаланувчилари&quot;
++
++#: ../userdrake:1127
++#, fuzzy, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Гуруҳ фойдаланувчилари&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Хато рўй берди:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Ёпиш&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Copyright (C) %s by Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Фойдаланувчилар бошқаруви&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Машраб Қуватов &lt;kmashrab@uni-bremen.de&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Фойдаланувчи майдони бўш. Илтимос фойдаланувчини киритинг.&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++&quot;Фойдаланувчи фақат кичик лотин ҳарфлар, сонлар. \&quot;-\&quot; ва \&quot;_\&quot; белгиларидан &quot;
++&quot;иборат бўлиши мумкин&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Фойдаланувчининг исми жуда узун&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Хато&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;номаълум хато&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Фойдаланувчи олиб ташланмоқда: %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Муаллифлар: &quot;
++
++#~ msgid &quot;Yes&quot;
++#~ msgstr &quot;Ҳа&quot;
++
++#~ msgid &quot;No&quot;
++#~ msgstr &quot;Йўқ&quot;
++
++#, fuzzy
++#~ msgid &quot;Delete files or not&quot;
++#~ msgstr &quot;Белгиланган қаторни ўчириш&quot;
++
++#~ msgid &quot;Warning : Deleting User&quot;
++#~ msgstr &quot;Диққат: Фойдаланувчи ўчирилмоқда&quot;
++
++#~ msgid &quot;Warning : Deleting Group&quot;
++#~ msgstr &quot;Диққат: Гуруҳ ўчирилмоқда&quot;
++
++#~ msgid &quot;Generic help on userdrake&quot;
++#~ msgstr &quot;Userdrake бўйича умумий ёрдам&quot;
++
++#~ msgid &quot;Help&quot;
++#~ msgstr &quot;Ёрдам&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;This password is too simple. \n&quot;
++#~ &quot; Good passwords should be &gt; 6 caracters&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Бу махфий сўз жуда содда. \n&quot;
++#~ &quot;Яхши махфий сўз 6 белгидан кўп бўлиши керак&quot;
++
++#~ msgid &quot;Delete User&quot;
++#~ msgstr &quot;Фойдаланувчини ўчириш&quot;
++
++#~ msgid &quot;The name must contain only lower cased letters, numbers, `-' and `_'&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Фойдаланувчи фақат кичик ҳарфлар, сонлар. \&quot;-\&quot; ва \&quot;_\&quot; белгиларидан &quot;
++#~ &quot;иборат бўлиши мумкин&quot;
++
++#, fuzzy
++#~ msgid &quot; Remove Home Directory&quot;
++#~ msgstr &quot;Фойдаланувчининг уй директорияси&quot;
+
+<a id="userdrake2tags1133povipo">Added: userdrake2/tags/1.13.3/po/vi.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/vi.po (rev 0)
++++ userdrake2/tags/1.13.3/po/vi.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,752 @@
++# Vietnamese Translation For USERDRAKE.
++# Copyright (C) 2001, 2004 Free Software Foundation, Inc.
++# T.M.THANH &lt;tmthanh@yahoo.com&gt;, 2001-2004.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-vi\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2004-08-21 09:06+0700\n&quot;
++&quot;Last-Translator: Trinh Minh Thanh &lt;tmthanh@yahoo.com&gt;\n&quot;
++&quot;Language-Team: Vietnamese &lt;gnomevi-list@lists.sourceforge.net&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=1; plural=0;\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Lỗi đọc `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Lỗi tạo `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Lỗi gỡ bỏ `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Lỗi tạo mail spool.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Lỗi tạo mail spool.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Lỗi tạo mail spool.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;lỗi không xác định&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Lỗi tạo mail spool.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Lỗi xóa bỏ mail spool.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Đang nạp Nhóm và Người Dùng... Hãy đợi&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Công Cụ Quản Lý Người Dùng Mageia&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/Hành độn_g&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/Hiệu _Chỉnh&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Xóa&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/Tù_y chọn&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Lọc người dùng hệ thống&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Tệp&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Cập nhật&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/Th_oát&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/Thê_m người dùng&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Thêm _Nhóm&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/Trợ _Giúp&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Báo cáo lỗi&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/G_iới thiệu...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Tìm kiếm:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Áp dụng trình lọc&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Người dùng&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Nhóm&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Người Dùng và Nhóm&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Tên Người Dùng&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ID Người Dùng&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Nhóm chính&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Tên Đầy Đủ&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Shell Đăng nhập&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Thư mục home&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Trạng thái&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Tên Nhóm&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ID Nhóm&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Thành Viên Nhóm&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Thêm Người Dùng&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Thêm người dùng vào hệ thống&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Thêm Nhóm&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Thêm nhóm vào hệ thống&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Biên soạn&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Hiệu chỉnh hàng chọn&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Xóa&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Xóa hàng chọn&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Cập nhật&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Cập nhật lại Danh sách&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Bị khoá&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Hết hạn&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Nhấn chuột lên biểu tượng để thay đổi&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Tạo người dùng mới&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Tạo thư mục home&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Thư mục home:&quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Tạo nhóm riêng cho người dùng&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Tự định ra ID người dùng&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Người dùng này đã có rồi, hãy chọn tên người dùng khác&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Mật khẩu không khớp&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Mật khẩu quá đơn giản. \n&quot;
++&quot;Mật khẩu tốt phải có nhiều hơn 6 ký tự&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;UID người dùng là &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Tạo người dùng có ID nhỏ hơn 500 là không nên làm.\n&quot;
++&quot;Bạn có chắc là muốn làm vậy không?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Đặt %s vào nhóm 'users'&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Tạo nhóm mới: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Thêm người dùng: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Bỏ qua&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;OK&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Chọn nhóm&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Thêm vào nhóm đang tồn tại&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Thêm vào nhóm 'users'&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Đang có nhóm tồn tại với tên này. Bạn muốn làm gì?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Tạo Nhóm Mới&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Tự định ra ID nhóm&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Nhóm đang tồn tại rồi, hãy chọn một tên nhóm khác&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;GID nhóm là &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Tạo nhóm có GID nhỏ hơn 500 là không nên làm.\n&quot;
++&quot; Bạn có chắc là muốn làm như vậy?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Thêm nhóm: %s&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Xóa các tập tin hay không?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Xóa người dùng %s\n&quot;
++&quot;Cũng thực hiện cả hành động sau đây\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Xóa thư mục home: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Xóa hộp thư :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Xóa bỏ người dùng: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Bạn thật sự muốn xoá nhóm %s không?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s là nhóm chính cho người dùng %s\n&quot;
++&quot;Hãy xoá bỏ người dùng trước&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Xóa bỏ nhóm: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Tên Đầy Đủ:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Đăng nhập:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Mật khẩu:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Xác Nhận Mật Khẩu:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Shell Đăng nhập:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Tên Nhóm:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Hãy chọn ít nhất một nhóm cho người dùng&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Hãy chỉ ra Năm, Tháng, Ngày cho \n&quot;
++&quot;thời hạn của Tài Khoản&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Hãy điền đủ các trường trong thời hạn mật khẩu\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Bạn không thể xoá bỏ người dùng '%s' ra khỏi nhóm chính của nó&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Home:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Dữ Liệu Người Dùng&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Tính thời hạn của người dùng&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Hạn người dùng (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Khoá Tài Khoản Người Dùng&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Thông tin tài khoản&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Mật khẩu người dùng thay đổi lần cuối vào:&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Tính thời hạn của mật khẩu&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Số ngày trước khi cho phép đổi:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Số ngày trước khi yêu cầu đổi :&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Cảnh báo số ngày trước khi đổi :&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Ngày trước khi tài khoản không hoạt động:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Thông Tin Mật Khẩu&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Chọn nhóm để người dùng trở thành thành viên:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Dữ Liệu Nhóm&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Chọn người dùng tham gia vào nhóm này:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Người Dùng Nhóm&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Hiệu chỉnh Người Dùng / Nhóm&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Lỗi xảy ra&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Đóng&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Quản Lý Người Dùng&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Trường tên trống, hãy nhập một tên&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;Tên chỉ chứa chữ cái latin thường, số, `-' và `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Tên quá dài&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Lỗi&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;lỗi không xác định&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Lỗi tạo `%s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Tác giả:&quot;
+
+<a id="userdrake2tags1133powapo">Added: userdrake2/tags/1.13.3/po/wa.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/wa.po (rev 0)
++++ userdrake2/tags/1.13.3/po/wa.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,773 @@
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/wa.php3
++#
++# Translation into the walloon language.
++#
++# Si vos voloz donner on côp di spale pol ratournaedje di Gnome (ou des
++# ôtes libes programes) sicrijhoz mu a l' adresse emile
++# &lt;srtxg@chanae.alphanet.ch&gt;; nos avans co bråmint di l' ovraedje a fé.
++#
++# Copyright (C) 2000 Mandriva
++# Pablo Saratxaga &lt;srtxg@chanae.alphanet.ch&gt; 2000,2003
++# Lorint Hendschel &lt;LorintHendschel@skynet.be&gt;, 2002.
++# Pablo Saratxaga &lt;pablo@walon.org&gt;, 2004.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake2\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2004-08-05 21:54+0200\n&quot;
++&quot;Last-Translator: Pablo Saratxaga &lt;pablo@walon.org&gt;\n&quot;
++&quot;Language-Team: Walloon &lt;linux-wa@walon.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.0.2\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=n &gt; 1;\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Åk n' a nén stî tot lijhant «%s»: %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Åk n' a nén stî tot askepiant «%s»: %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Åk n' a nén stî tot oistant «%s»: %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Åk n' a nén stî tot askepiant l' cawêye d' emilaedje.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Åk n' a nén stî tot askepiant l' cawêye d' emilaedje.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Åk n' a nén stî tot askepiant l' cawêye d' emilaedje.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;aroke nén cnoxhowe&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Åk n' a nén stî tot askepiant l' cawêye d' emilaedje.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Åk n' a nén stî tot disfaçant l' cawêye d' emilaedje.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Dji tchedje les uzeus et les groupes... tårdjîz s' i vs plait&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Usteye di manaedjmint des uzeus di Mageia&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Accions&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Candjî&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Disfacer&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Tchuzes&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Passete po les uzeus sistinme&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Fitchî&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Rafrister&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/Moussî _foû&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Radjouter uzeu&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Radjouter _groupe&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Aidance&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Rapoirter bug&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/Å_d fwait...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Cweri:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Mete en alaedje li passete&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Uzeus&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Groupes&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Uzeus et groupes&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;No di l' uzeu&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ID di l' uzeu&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Prumioûle groupe&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;No en etir&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Shell d' elodjaedje&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Ridant måjhon&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Estat&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;No do groupe&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ID do groupe&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Mimbes do groupe&quot;
++
++# broken into two lines to avoid too large a button
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;&quot;
++&quot;Radjouter\n&quot;
++&quot;uzeu&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Radjouter èn uzeu å sistinme&quot;
++
++# broken into two lines to avoid too large a button
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;&quot;
++&quot;Radjouter\n&quot;
++&quot;groupe&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Radjouter on groupe å sistinme&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Candjî&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Candjî l' roye tchoezeye&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Disfacer&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Disfacer l' roye tchoezeye&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Rafrister&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Rafrister l' djivêye&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Bloké&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Espiré&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;clitchîz so l' imådjete pol candjî&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Ahiver on novea uzeu&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Ahiver l' ridant måjhon&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Ridant måjhon: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Ahiver on groupe privé po l' uzeu&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Diner al mwin l' idintifiant di l' uzeu&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Ci no egzistêye dedja el sistinme, tchoezixhoz è èn ôte s' i vs plait&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Les screts n' sont nén les minmes&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Li scret est pår trop simpe. \n&quot;
++&quot; On bon scret doet aveur pus di 6 caracteres&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;L' UID est &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Ahiver èn uzeu avou èn UID (idintifiant d' uzeu) pus ptit ki 500\n&quot;
++&quot;n' est nén ricmandé. Estoz seur del voleur fé?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Dji radjoute %s å groupe «users»&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Dj' ahive li novea groupe: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Dji radjoute l' uzeu: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Rinoncî&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;'l est bon&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Tchoezi groupe&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Radjouter å groupe k' egzistêye dedja&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Radjouter å groupe «users»&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;I gn a ddja on groupe di ç' no la. Cwè voloz vs fé?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Ahiver on novea groupe&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Diner al mwin l' idintifiant do groupe&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;&quot;
++&quot;Li groupe egzistêye dedja, tchoezixhoz èn ôte no d' groupe s' i vs plait&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; Li GID est &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Ahiver on groupe avou on GID (idintifiant do groupe) pus ptit ki 500\n&quot;
++&quot;n' est nén ricmandé. Estoz seur del voleur fé?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Dji radjoute li groupe: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Disfacer les fitchîs ou nén?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Dji disface l' uzeu %s\n&quot;
++&quot; Dji fwai eto les accions shuvantes\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Disfacer l' ridant måjhon: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Disfacer l' boesse ås emiles: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Dji oistêye l' uzeu: %s&quot;
++
++# c-format
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Voloz vs vormint disfacer l' groupe %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s est l' groupe prumioûle da l' uzeu %s\n&quot;
++&quot; I vs fåt d' aprume oister l' uzeu&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Dji oistêye li groupe: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;No en etir:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;No d' elodjaedje:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Sicret:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Acertinaedje do scret:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Shell d' elodjaedje:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;No do groupe:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Tchoezixhoz pol moens on groupe po l' uzeu s' i vs plait&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Dinez l' anêye, li moes eyet l' djoû \n&quot;
++&quot; ki l' conte doet espirer &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;I vs fåt rimpli tos les tchamps po l' espiraedje des screts\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Vos n' poloz nén bodjî l' uzeu «%s» foû di s' groupe prumioûle&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Måjhon:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Dinêyes di l' uzeu&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Mete en alaedje l' espiraedje des contes uzeu&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Li conte espire li (AAAA-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Bloker l' conte di l' uzeu&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Informåcion do conte&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;L' uzeu candja si scret pol dierin côp li:&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Mete en alaedje l' espiraedje des screts&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Djoûs dvant d' poleur candjî:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Djoûs dvant dveur candjî:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Djoûs d' adviertixhmint divant d' diveur candjî:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Djoûs dvant ki l' conte soeye djoké:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Informåcion sol sicret&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Tchoezixhoz les groupes ki l' uzeu ndè serè mimbe:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Dinêyes do groupe&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Tchoezixhoz les uzeus k' iront dins ç' groupe chal:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Uzeus do groupe&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Candjî groupes / uzeus&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Dj' aroke so ene sacwè&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Clôre&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Copyright © %s pa Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Manaedjmint des uzeus&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Pablo Saratxaga &lt;pablo@mandriva.com&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Li tchamp do no est vude, i vs fåt dner on no s' i vs plait&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++&quot;Li no n' pout aveur ki des ptitès latenès letes, des chifes, li loyeure («-») &quot;
++&quot;et li caractere sorlignî («_»).&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Li no est pår trop long&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Aroke&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;aroke nén cnoxhowe&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Åk n' a nén stî tot askepiant «%s»: %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Oteurs: &quot;
+
+<a id="userdrake2tags1133pozh_CNpo">Added: userdrake2/tags/1.13.3/po/zh_CN.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/zh_CN.po (rev 0)
++++ userdrake2/tags/1.13.3/po/zh_CN.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,771 @@
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/zh_CN.php3
++#
++# Chinese messages for userdrake
++# Copyright (C) 2000 Free Software Foundation, Inc.
++# Danny Zeng &lt;danny@zeng.com.cn&gt;, 2000
++# Shiyu Tang &lt;shiyutang@netscape.net&gt;, 2003
++# Funda Wang &lt;fundawang@linux.net.cn&gt;, 2003
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake2\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2004-01-17 18:50+0800\n&quot;
++&quot;Last-Translator: Funda Wang &lt;fundawang@linux.net.cn&gt;\n&quot;
++&quot;Language-Team: Chinese &lt;zh@li.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=1; plural=0;\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;读取“%s”出错:%s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;创建“%s”出错:%s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;删除“%s”出错:%s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;创建邮件持出错。\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;创建邮件持出错。\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;创建邮件持出错。\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;未知错误&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;创建邮件持出错。\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;删除邮件池出错。\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;正在装入用户和组... 请稍候&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageia 用户管理工具&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/操作(_A)&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/编辑(_E)&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/删除(_D)&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/选项(_O)&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/过滤系统用户(_F)&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/文件(_F)&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/刷新(_R)&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/退出(_Q)&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/添加用户(_A)&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/添加组(_G)&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/帮助(_H)&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/报告错误(_R)&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/关于(_A)...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;搜索:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;应用过滤器&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;用户&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;组&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;用户和组&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;用户名&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;用户 ID&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;主要的组&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;全名&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;登录 Shell&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;主目录&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;状态&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;组名&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;组 ID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;组成员&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;添加用户&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;向系统中添加一个用户&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;添加组&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;向系统中添加一个组&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;编辑&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;编辑所选的行&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;删除&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;删除所选的行&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;刷新&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;刷新列表&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;已锁定&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;已到期&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;单击图标进行更改&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;创建新用户&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;创建主目录&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;用户主目录: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;为该用户创建一个私有组&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;手动指定用户 ID&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;用户已经存在,请选择其他用户名&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;密码不匹配&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;这个密码太简单了。\n&quot;
++&quot;好的密码应该大于 6 个字符&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;用户的 UID 小于 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;不推荐创建一个 UID 小于 500 的用户。\n&quot;
++&quot;您确定您要这么做吗?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;将 %s 添加到“users”组&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;创建新组: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;添加用户: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;迁移向导&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;您是否想要运行迁移向导将 Windows 文档和设置导入到您的 Mageia 发行版&quot;
++&quot;中?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;取消&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;确定&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;选择组&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;添加到已有组&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;添加到“users”组&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;已经存在同名组。您想要怎么做?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;创建新组&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;手动指定组 ID&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;组已经存在,请使用其他组名&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;组的 GID 小于 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;不推荐创建一个 GID 小于 500 的组。\n&quot;
++&quot;您确定您要这么做吗?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;添加组: %s&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;删除文件吗?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;删除用户 %s\n&quot;
++&quot; 同时执行下列操作\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;删除主目录: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;删除邮箱: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;删除用户: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;您真的想要删除组 %s 吗?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s 是用户 %s 的主要组\n&quot;
++&quot;请先删除这个用户&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;删除组: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;全名:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;登录名:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;密码:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;确认密码:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;登录 Shell:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;组名:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;请为这个用户至少选择一个组&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;请指定账户过期的\n&quot;
++&quot;年月日&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;请填满密码时效的所有域\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;您不能从用户“%s”的主要组中删除该用户&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;主目录:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;用户数据&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;启用账户过期&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;账户过期到 (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;锁定用户账户&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;账户信息&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;用户最后一次修改密码的时间: &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;启用密码过期&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;允许修改前的天数:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;必须修改前的天数:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;更改前警告的天数:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;账户不被激活前的天数:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;密码信息&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;选择该用户将属于哪些组:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;组数据&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;选择要加入这个组的用户:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;组用户&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;编辑组/用户&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;发生了一个错误:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;关闭&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;版权 (C) %s Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;用户管理&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Funda Wang &lt;fundawang@gmail.com&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;名字栏是空的,请提供一个名字&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;名字只能小写的拉丁字母、数字、“-”和“_”&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;名字太长了&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;错误&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;未知错误&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;创建“%s”出错:%s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;作者: &quot;
++
++#~ msgid &quot;Choice&quot;
++#~ msgstr &quot;选择&quot;
++
++#~ msgid &quot;Yes&quot;
++#~ msgstr &quot;是&quot;
++
++#~ msgid &quot;No&quot;
++#~ msgstr &quot;否&quot;
++
++#~ msgid &quot;Delete files or not&quot;
++#~ msgstr &quot;是否删除文件&quot;
+
+<a id="userdrake2tags1133pozh_TWpo">Added: userdrake2/tags/1.13.3/po/zh_TW.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/zh_TW.po (rev 0)
++++ userdrake2/tags/1.13.3/po/zh_TW.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,756 @@
++# translation of zh_TW.po to Chinese Traditional
++# translation of userdrake-zh_TW.po to Chinese Traditional
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/zh_TW.php3
++#
++# userdrake message in Traditional Chinese
++# Copyright (C) 2000, 2004 Free Software Foundation, Inc.
++# Geoffrey Lee &lt;snailtalk@linux-mandrake.com&gt; 2001
++# Kenduest Lee &lt;kenduest@i18n.linux.org.tw&gt; 2002
++# Geoffrey Lee &lt;snailtalk@linux-mandrake.com&gt; 2002
++# Danny Zeng &lt;danny@zeng.com.cn&gt;, 2000.
++# Hilbert &lt;freehil@yahoo.com&gt;, 2004.
++# Hilbert &lt;h@mandrake.org&gt;, 2004.
++# Shiva Huang &lt;shivahuang@gmail.com&gt;, 2005.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: zh_TW\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2007-09-24 23:35+0800\n&quot;
++&quot;Last-Translator: You-Cheng Hsieh &lt;yochenhsieh@gmail.com&gt;\n&quot;
++&quot;Language-Team: Chinese Traditional &lt;zh@li.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=utf-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.0.2\n&quot;
++&quot;X-Poedit-Language: Chinese\n&quot;
++&quot;X-Poedit-Country: TAIWAN\n&quot;
++&quot;Plural-Forms: nplurals=1; plural=0;\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;讀取 `%s': %s 時發生錯誤&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;建立 `%s': %s 時發生錯誤&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;移除 `%s': %s 時發生錯誤&quot;
++
++#: ../USER/USER.xs:490
++#, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;帳號建立失敗:'%s'。\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;無法取得 UID 編號&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;無法取得數值&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;建立郵件夾時發生錯誤。\n&quot;
++
++#: ../USER/USER.xs:582
++#, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;使用者無法修改:'%s'。\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;使用者無法刪除:'%s'。\n&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;密碼設定失敗︰'%s'。\n&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;未知的錯誤&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;群組建立失敗。\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;群組無法修改:'%s'。\n&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;群組無法刪除:'%s'。\n&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;使用者沒有家目錄。\n&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;家目錄無法刪除:'%s'。\n&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;刪除郵件夾時發生錯誤。\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;正在載入使用者與群組... 請稍候&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageia 使用者管理工具&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;/安裝訪客帳號 (_I)&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;/移除訪客帳號 (_U)&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/動作 (_A)&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/編輯 (_E)&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/刪除 (_D)&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/選項 (_O)&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/過濾系統使用者 (_F)&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/檔案 (_F)&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/更新 (_R)&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/離開 (_Q)&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/新增使用者 (_A)&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/新增群組 (_G)&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/輔助說明 (_H)&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/回報臭蟲 (_R)&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/關於 (_A)...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;搜尋:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;套用過濾條件&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;使用者&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;群組&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;使用者與群組&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;使用者名稱&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;使用者 ID&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;主群組&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;全名&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;預設的 Shell&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;家目錄&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;狀態&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;群組名稱&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;群組 ID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;群組成員&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;新增使用者&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;新增一個使用者到系統&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;新增群組&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;新增一個群組到系統&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;編輯&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;編輯選擇的行&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;刪除&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;刪除選擇的行&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;更新&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;更新列表&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;被鎖住了&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;過期的&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;點選圖示以改變它&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;建立新的使用者&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;建立家目錄&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;家目錄:&quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;建立一個私有的群組給使用者&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;手動指定使用者 ID&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;這個使用者已經存在於系統中,請另外選取一個使用者名稱&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;密碼錯誤&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;這個密碼太簡單。 \n&quot;
++&quot; 好的密碼應該至少有 6 個字元&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;使用者 Uid &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;我們不建議您建立一個 UID 小於 500 的使用者。\n&quot;
++&quot; 您確定要這樣做嗎?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;放置 %s 到 'users' 群組&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;建立新的群組: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;新增使用者: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;檔案及設定轉移精靈&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;您想要執行精靈來轉移 Windows 中的檔案及設定到您的 Mageia 發行版嗎?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;取消&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;確定&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID:&quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;選取群組&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;新增到已經存在的群組&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;新增到 'users' 群組&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;一個同名的群組已經存在,您要怎麼處理呢?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;建立新的群組&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;手動指定群組 ID&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;群組已經存在,請另外選擇一個群組名稱&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; 群組 Gid &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;我們不建議您建立一個 GID 小於 500 的群組。\n&quot;
++&quot; 您確定要這樣做嗎?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;正在新增群組: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID:&quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;是否要刪除檔案?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;正在刪除使用者 %s\n&quot;
++&quot; 也執行下列動作\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;刪除家目錄: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;刪除郵件匝:/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;移除使用者: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;您真的要刪除群組 %s 嗎?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s 是使用者 %s 的主群組\n&quot;
++&quot; 請先移除使用者&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;移除群組: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;全名:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;登入:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;密碼:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;確認密碼:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;預設的 Shell:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;群組名稱:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;請選擇至少一個群組給此使用者&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;請指定年、月與日 \n&quot;
++&quot; 為帳號的使用期限&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;請再次填入全部密碼欄位\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;您不能從使用者 '%s' 的主群組移除他&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;家目錄:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;使用者資料&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;啟用帳號使用期限&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;帳號可使用至 (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;鎖住使用者帳號&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;帳號資訊&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;使用者最後改變密碼於 : &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;啟用密碼使用期限&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;允許改變之前的日數 :&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;需要改變之前的日數 :&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;改變之前的日數警告 :&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;帳號凍結之前的日數 :&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;密碼資訊&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;選擇使用者要加入的群組:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;群組數據&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;選擇要加入此群組的使用者:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;群組使用者&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;編輯群組/使用者&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;發生一個錯誤:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;關閉&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Copyright (C) %s by Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;使用者管理&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++&quot;Shiva Huang &lt;shivahuang@gmail.com&gt;\n&quot;
++&quot;You-Cheng Hsieh &lt;yochenhsieh@xuite.net&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;名稱欄位是空白的,請提供一個名稱&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;名稱中只能包含小寫的拉丁字母、數字、`-' 與 `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;名稱太長&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;錯誤&quot;
+
+<a id="userdrake2tags1133todo">Added: userdrake2/tags/1.13.3/todo</a>
+===================================================================
+--- userdrake2/tags/1.13.3/todo (rev 0)
++++ userdrake2/tags/1.13.3/todo 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,92 @@
++Features:
++- dynamic processing of filters (shrink list as typing)
++- Bind checkboxes (users , groups) to space key. (done)
++- Ldap server configuration
++- change User/Group Gid
++- tell us that the account is locked or expired ? (done)
++
++Bugs:
++- if primary group empty, gray ok button (won't fix)
++- check numeric/positive values in account and password expiration. (done)
++
++---------------------------------------------------------------------------
++For Interface team:
++Barre de menus
++ - Ic\xF4nes \xE0 enlever dans les menus. C'est interdit dans nos
++sp\xE9cifications. C'est le texte qui est important. L'ic\xF4ne ne fait que
++distraire l'utilisateur
++
++Barre d'outils :
++ - Bouton &quot;Help&quot; \xE0 supprimer. Il est redondant avec le menu &quot;Help&quot;.
++ - Bouton &quot;Refresh&quot; \xE0 supprimer. Les listes doivent \xEAtre dynamiques. Idem
++pour le File -&gt; Refresh
++
++Boutons :
++ - Ic\xF4nes \xE0 supprimer. C'est interdit dans nos sp\xE9cifications. C'est le
++texte qui est important. L'ic\xF4ne ne fait que distraire l'utilisateur
++
++Pop-up apparaissant lors d'un clic sur &quot;Add User&quot;
++ - Login shell : ne pas utliser une combo box \xE9ditable mais un combo box
++non \xE9ditable
++ - Home directory : \xE0 griser lorsque &quot;Create home directory&quot; n'est pas
++coch\xE9
++ - Create home directory : remplacer le h de home par un H ou supprimer la
++majuscule \xE0 Directory
++ - UID : \xE0 placer sous le S de Specify user ID manually
++
++Pop-up apparaissant lors d'un clic sur &quot;Delete&quot;
++ - demander \xE0 l'utilisateur s'il d\xE9sirer r\xE9ellement supprimer
++l'utilisateur. Ne pas supposer que l'utilisateur n'a pas fait d'erreur en
++s\xE9lectionnant le compte \xE0 supprimer. Rajouter une case \xE0 cocher dans la
++bo\xEEte de dialogue pour s'assurer que l'utilisateur d\xE9sire \xE9galement
++effacer le Home du compte supprim\xE9. Cette case \xE0 cocher doit \xEAtre d\xE9coch\xE9e
++par d\xE9faut
++ - ne pas faire supprimer \xE0 la main l'utilisateur quand on cherche \xE0
++supprimer un groupe et que l'utilisateur existe toujours. Demander si on
++veut \xE9galement supprimer l'utilisateur.
++
++Champ pr\xE9c\xE9dent le bouton &quot;Apply filter&quot;
++ - \xE0 aligner sur la gauche
++
++Pop-up apparaissant lors d'un clic sur &quot;Add Group&quot;
++ - GID : \xE0 placer sous le S de Specify user ID manually
++
++Propri\xE9t\xE9s de l'utilisateur :
++ - onglet &quot;User Data&quot;
++ * &quot;Login shell&quot; : ne pas utiliser de combox \xE9ditable mais une combo box
++non \xE9ditable
++ - onglet &quot;Account Info&quot;
++ * Remplacer &quot;YYYY-MM-DD&quot; par &quot;Year Month Day&quot;. C'est plus
++compr\xE9hensible pour l'utilisateur
++ * Expliquer ce que veut signifie &quot;Lock User Accounr&quot;
++ - onglet &quot;Password Info&quot;
++ * Remplacer les champs par des combo box \xE9ditables. Utiliser des
++&quot;Never&quot; au lieu de &quot;99999&quot;. Ceci n'est pas compr\xE9hensible par
++l'utilisateur
++ - onglet &quot;Groups&quot;
++ * cases \xE0 cocher. Utiliser les cases \xE0 cocher de GTK et non celles de
++Mandrake.
++ * menu d\xE9roulant &quot;Primary group&quot; : ne pas utiliser une combo box
++\xE9ditable mais une non \xE9ditable
++
++Options -&gt; Filter system users -&gt; select a system user -&gt; Options -&gt; Filter
++system users -&gt; Actions -&gt; Edit or Delete = Crash
++
++Select a user -&gt; Options -&gt; Filter system users = perte de l'utilisateur
++s\xE9lectionn\xE9
++
++Menu Actions -&gt; Edit : plantage si aucun utilisateur n'est s\xE9lectionn\xE9
++
++Tri sur header non autoris\xE9. C'est dommage.
++
++Help -&gt; Report bug = installation d'un paquetage. C'est interdit. Tous les
++paquetages n\xE9cessaires au bon fonctionnement de l'application doivent \xEAtre
++install\xE9s par d\xE9faut
++
++Help -&gt; Report bug = lance KDE Help Center. Pourquoi ?
++
++
++
++Toutes pop-up ou actions : ajouter des explications. Ne pas supposer que
++l'utilisateur sait ce qu'il doit faire.
++----------------------------------------------------------------------------
+\ No newline at end of file
+
+<a id="userdrake2tags1133userdrake">Added: userdrake2/tags/1.13.3/userdrake</a>
+===================================================================
+--- userdrake2/tags/1.13.3/userdrake (rev 0)
++++ userdrake2/tags/1.13.3/userdrake 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,1329 @@
++#!/usr/bin/perl
++################################################################################
++# #
++# #
++# Copyright (C) 2003-2009 Mandriva #
++# #
++# Daouda Lo #
++# Thierry Vignaud &lt;tvignaud@mandriva.com&gt; #
++# #
++# This program is free software; you can redistribute it and/or modify #
++# it under the terms of the GNU General Public License Version 2 as #
++# published by the Free Software Foundation. #
++# #
++# This program is distributed in the hope that it will be useful, #
++# but WITHOUT ANY WARRANTY; without even the implied warranty of #
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
++# GNU General Public License for more details. #
++# #
++# You should have received a copy of the GNU General Public License #
++# along with this program; if not, write to the Free Software #
++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #
++################################################################################
++
++use strict;
++use lib qw(/usr/lib/libDrakX);
++# i18n: IMPORTANT: to get correct namespace (userdrake instead of libDrakX)
++BEGIN { unshift @::textdomains, 'userdrake', 'libuser', 'drakconf' }
++use standalone;
++use transfugdrake;
++
++use common;
++use run_program;
++use any;
++use mygtk2 qw(gtknew); #- do not import gtkadd which conflicts with ugtk2 version
++use ugtk2 qw(:all);
++use interactive;
++use POSIX qw(mktime ceil);
++use USER;
++#Only for Debugging
++#use Devel::Peek;
++use Gtk2::Gdk::Keysyms;
++use utf8;
++use log;
++
++$ugtk2::wm_icon = &quot;userdrake&quot;;
++
++my $conffile = '/etc/sysconfig/userdrake';
++my $secfile = '/etc/sysconfig/msec';
++my $pixdir = '/usr/share/userdrake/pixmaps/';
++my @pix = ($pixdir . 'selected.png', $pixdir . 'unselected.png');
++
++my $in = interactive-&gt;vnew('su');
++
++my $us = {};
++$us-&gt;{VERSION} = '1.13.3';
++
++my $window_splash = Gtk2::Window-&gt;new('popup');
++$window_splash-&gt;signal_connect(delete_event =&gt; \&amp;QuitGlobal);
++$window_splash-&gt;set_title(N(&quot;Userdrake&quot;) . $us-&gt;{VERSION});
++$window_splash-&gt;set_position('center_always');
++$window_splash-&gt;add(gtkadd(gtkset_shadow_type(Gtk2::Frame-&gt;new, 'etched_out'),
++ gtkpack(Gtk2::VBox-&gt;new(0, 0),
++ gtkcreate_img(&quot;$pixdir/userdrake.png&quot;),
++ Gtk2::Label-&gt;new(N(&quot;Loading Users and Groups... Please wait&quot;))
++ )
++ )
++ );
++$window_splash-&gt;show_all;
++gtkflush();
++
++#my $wait = $in-&gt;wait_message(N(&quot;Please wait&quot;), N(&quot;Loading User and Groups&quot;));
++#gtkflush();
++
++my $error = 0;
++my $GetValue = -65533;
++my $stringsearch = '';
++my %prefs = getVarsFromSh($conffile);
++my %sec = getVarsFromSh($secfile);
++my $sysfilter = text2bool($prefs{FILTER});
++
++sub HelpSystem() { run_program::raw({ detach =&gt; 1 }, 'drakhelp', '--id', 'userdrake') }
++
++$us-&gt;{wnd} = ugtk2-&gt;new(N(&quot;Mageia Users Management Tool&quot;) . &quot; &quot; . $us-&gt;{VERSION});
++$::main_window = $us-&gt;{wnd}{real_window};
++gtkset_size_request($us-&gt;{wnd}{rwindow}, 660, 460);
++$us-&gt;{wnd}{rwindow}-&gt;set_position('center') if !$::isEmbedded;
++$us-&gt;{wnd}{window}-&gt;signal_connect(delete_event =&gt; \&amp;QuitGlobal);
++my $utree_model = Gtk2::ListStore-&gt;new(&quot;Glib::String&quot;, &quot;Glib::Int&quot;, &quot;Glib::String&quot;,
++ &quot;Glib::String&quot;, &quot;Glib::String&quot;, &quot;Glib::String&quot;, &quot;Glib::String&quot;);
++my $gtree_model = Gtk2::ListStore-&gt;new(&quot;Glib::String&quot;, &quot;Glib::Int&quot;, &quot;Glib::String&quot;);
++my ($usertree, $grouptree);
++$usertree = CreateTree($utree_model); $grouptree = CreateTree($gtree_model);
++# slightly verbatimed from control-center
++
++my %xguest_labels = (
++ to_install =&gt; N(&quot;/_Install guest account&quot;),
++ installed =&gt; N(&quot;/_Uninstall guest account&quot;),
++);
++
++my %options = (
++ 'edit' =&gt; [ N(&quot;/_Actions&quot;), N(&quot;/_Edit&quot;) ],
++ 'delete' =&gt; [ N(&quot;/_Actions&quot;), N(&quot;/_Delete&quot;) ],
++ 'xguest' =&gt; [ N(&quot;/_Actions&quot;), $xguest_labels{installed} ],
++ 'filter' =&gt; [ N(&quot;/_Options&quot;), N(&quot;/_Filter system users&quot;) ]
++ );
++my %buttorcheck;
++my ($menu, $factory) = create_factory_menu(
++ $::isEmbedded ? $::Plug : $us-&gt;{wnd}{rwindow},
++ ([ N(&quot;/_File&quot;), undef, undef, undef, '&lt;Branch&gt;' ],
++ [ N(&quot;/_File&quot;) . N(&quot;/_Refresh&quot;), undef,
++ sub { Refresh($sysfilter, $stringsearch) },
++ undef, '&lt;Item&gt;' ],
++ [ N(&quot;/_File&quot;) . N(&quot;/_Quit&quot;), N(&quot;&lt;control&gt;Q&quot;), \&amp;QuitGlobal, undef, '&lt;Item&gt;' ],
++ [ N(&quot;/_Actions&quot;), undef, undef, undef, '&lt;Branch&gt;' ],
++ [ N(&quot;/_Actions&quot;) . N(&quot;/_Add User&quot;), undef, \&amp;AddUser, undef, '&lt;Item&gt;' ],
++ [ N(&quot;/_Actions&quot;) . N(&quot;/Add _Group&quot;), undef, \&amp;AddGroup, undef, '&lt;Item&gt;' ],
++ [ join('', @{$options{edit}}), undef, \&amp;Edit, undef, '&lt;Item&gt;' ],
++ [ join('', @{$options{delete}}), undef, \&amp;Delete, undef, '&lt;Item&gt;' ],
++ [ join('', @{$options{xguest}}), undef, \&amp;Xguest, undef, '&lt;Item&gt;' ],
++ [ N(&quot;/_Options&quot;), undef, undef, undef, '&lt;Branch&gt;' ],
++ [ join('', @{$options{filter}}), undef, sub {
++ $sysfilter = $buttorcheck{filter}-&gt;get_active;
++ Refresh($sysfilter, $stringsearch);
++ }, undef, '&lt;CheckItem&gt;' ],
++ [ N(&quot;/_Help&quot;), undef, undef, undef, '&lt;Branch&gt;' ],
++ [ N(&quot;/_Help&quot;) . N(&quot;/_Help&quot;), undef, sub { HelpSystem() }, undef, '&lt;Item&gt;' ],
++ [ N(&quot;/_Help&quot;) . N(&quot;/_Report Bug&quot;), undef,
++ sub { run_program::raw({ detach =&gt; 1 }, 'drakbug', '--report', 'userdrake') },
++ undef, '&lt;Item&gt;' ],
++ [ N(&quot;/_Help&quot;) . N(&quot;/_About...&quot;), undef, \&amp;About, undef, '&lt;Item&gt;' ]
++ )
++);
++%buttorcheck = map {
++ $_ =&gt; $factory-&gt;get_widget(&quot;&lt;main&gt;&quot; . join '',
++ map { s/_//; $_ } @{$options{$_}}) }
++ ('edit', 'delete', 'filter', 'xguest');
++
++if (defined $buttorcheck{filter}) {
++ $buttorcheck{filter}-&gt;set_active($sysfilter);
++} else {
++ print STDERR &quot;BUG with LANGUAGE $ENV{LANGUAGE}\n&quot;;
++}
++
++my $toolb = Gtk2::Toolbar-&gt;new;
++my $filter;
++my $searchBox = gtkpack_(Gtk2::HBox-&gt;new(0,5),
++ 1, Gtk2::Label-&gt;new(&quot;&quot;),
++ 0, Gtk2::Label-&gt;new(N(&quot;Search:&quot;)),
++ 0, gtksignal_connect($filter = Gtk2::Entry-&gt;new,
++ key_press_event =&gt; sub {
++ $_[1]-&gt;keyval == $Gtk2::Gdk::Keysyms{Return}
++ and Refresh($sysfilter, $filter-&gt;get_text);
++ }),
++ 0, my $fbut = Gtk2::Button-&gt;new(N(&quot;Apply filter&quot;)),
++ );
++gtkappend_page(my $nb = Gtk2::Notebook-&gt;new,
++ gtkpack(create_scrolled_window($usertree)),
++ gtkshow(Gtk2::Label-&gt;new(N(&quot;Users&quot;))));
++#PO: list of users belonging to that group
++gtkappend_page($nb,
++ gtkpack(create_scrolled_window($grouptree)),
++ gtkshow(Gtk2::Label-&gt;new(N(&quot;Groups&quot;))));
++$nb-&gt;set_show_border(0);
++my @extra_widgets;
++if ($::isEmbedded) {
++ push @extra_widgets, 0, Gtk2::Banner-&gt;new(&quot;/usr/share/mcc/themes/default/user-mdk.png&quot;,
++ #-PO: do not translate, this is already translated in mcc
++ N(&quot;Users and groups&quot;));
++}
++$us-&gt;{wnd}{window}-&gt;add(gtkpack_(Gtk2::VBox-&gt;new(0, 0),
++ 0, $menu,
++ @extra_widgets,
++ 0, $toolb,
++ 0, $searchBox,
++ 0, Gtk2::HSeparator-&gt;new,
++ 1, $nb));
++my @ucolsize = (60, 45, 40, 120, 80, 120, 50, -1);
++my @gcolsize = (100, 80, 160, -1);
++each_index {
++ my $col = Gtk2::TreeViewColumn-&gt;new_with_attributes($_,
++ Gtk2::CellRendererText-&gt;new,
++ 'text' =&gt; $::i);
++ $col-&gt;set_sort_column_id($::i);
++ $col-&gt;set_min_width($ucolsize[$::i]);
++ $usertree-&gt;append_column($col);
++} (N(&quot;User Name&quot;), N(&quot;User ID&quot;), N(&quot;Primary Group&quot;),
++ N(&quot;Full Name&quot;), N(&quot;Login Shell&quot;), N(&quot;Home Directory&quot;), N(&quot;Status&quot;));
++
++each_index {
++ my $col = Gtk2::TreeViewColumn-&gt;new_with_attributes($_, Gtk2::CellRendererText-&gt;new, 'text' =&gt; $::i);
++ $col-&gt;set_sort_column_id($::i);
++ $col-&gt;set_min_width($gcolsize[$::i]);
++ $grouptree-&gt;append_column($col);
++} (N(&quot;Group Name&quot;), N(&quot;Group ID&quot;), N(&quot;Group Members&quot;));
++my @toolbwg;
++foreach ([ N(&quot;Add User&quot;), N(&quot;Add a user to the system&quot;), 'user_add', \&amp;AddUser ],
++ [ N(&quot;Add Group&quot;), N(&quot;Add a group to the system&quot;), 'group_add', \&amp;AddGroup ],
++ [ N(&quot;Edit&quot;), N(&quot;Edit selected row&quot;), 'user_conf', \&amp;Edit ],
++ [ N(&quot;Delete&quot;), N(&quot;Delete selected row&quot;), 'user_del', \&amp;Delete ],
++ [ N(&quot;Refresh&quot;), N(&quot;Refresh the list&quot;), 'refresh',
++ sub { Refresh($sysfilter, $stringsearch) } ]) {
++ my $t = $toolb-&gt;append_item($_-&gt;[0], $_-&gt;[1], $_-&gt;[2],
++ Gtk2::Image-&gt;new_from_file($pixdir . $_-&gt;[2] . '.png'),
++ $_-&gt;[3], $toolb);
++ push(@toolbwg, $t);
++ # $toolb-&gt;append_space;
++}
++
++my ($_tbuser, $_tbgroup, $tbedit, $tbdel, $_tbref) = @toolbwg;
++GrayDelEdit();
++RefreshXguest();
++
++my $ctx = USER::ADMIN-&gt;new;
++$fbut-&gt;signal_connect('clicked', sub {
++ $stringsearch = $filter-&gt;get_text;
++ Refresh($sysfilter, $stringsearch);
++ });
++Refresh($sysfilter, $stringsearch);
++$nb-&gt;signal_connect('switch-page' =&gt; sub { NotebookSwitch() });
++$us-&gt;{wnd}{rwindow}-&gt;show_all;
++#undef $wait;
++$window_splash-&gt;destroy;
++undef $window_splash;
++
++$us-&gt;{wnd}-&gt;main;
++ugtk2-&gt;exit(0);
++
++sub is_xguest_installed() {
++ -e '/etc/security/namespace.d/guest.conf';
++}
++
++sub GrayDelEdit() {
++ foreach ($tbedit, $tbdel, $buttorcheck{edit}, $buttorcheck{delete}) {
++ defined $_ and $_-&gt;set_sensitive(0);
++ }
++}
++
++sub RefreshXguest {
++ my ($o_is_already_refreshed) = @_;
++ my $label = $xguest_labels{is_xguest_installed() ? 'installed' : 'to_install'};
++ $label =~ s!^/!!;
++ $buttorcheck{xguest}-&gt;get_child-&gt;set_label($label);
++ Refresh($sysfilter, $stringsearch) if !$o_is_already_refreshed;
++}
++
++sub TreeUnselect {
++ my $treev = shift;
++ $treev-&gt;get_selection-&gt;unselect_all;
++ GrayDelEdit();
++ RefreshXguest();
++}
++
++sub NotebookSwitch() {
++ #my $page = $nb-&gt;get_current_page;
++ TreeUnselect($usertree); TreeUnselect($grouptree);
++}
++
++sub ComputeLockExpire {
++ my $l = shift;
++ my $ep = $l-&gt;ShadowExpire($GetValue);
++ my $tm = ceil(time()/(24*60*60));
++ $ep = -1 if int($tm) &lt;= $ep;
++ my $status = $ctx-&gt;IsLocked($l) ? N(&quot;Locked&quot;) : ($ep != -1 ? N(&quot;Expired&quot;) : '');
++ $status;
++}
++
++sub RefreshUsersFull {
++ my ($filterusers, $strfilt) = @_;
++ my ($users, $group, $groupnm, $expr);
++ defined $ctx and $users = $ctx-&gt;UsersEnumerateFull;
++ $utree_model-&gt;clear;
++ my @UserReal;
++ LOOP: foreach my $l (@$users) {
++ next LOOP if $filterusers &amp;&amp; $l-&gt;Uid($GetValue) &lt;= 499 || $l-&gt;Uid($GetValue) == 65534;
++ push @UserReal, $l if $l-&gt;UserName($GetValue) =~ /^\Q$strfilt/;
++ }
++ my $i;
++ foreach my $l (@UserReal) {
++ $i++;
++ my $uid = $l-&gt;Uid($GetValue);
++ if (!defined $uid) {
++ warn &quot;bogus user at line $i\n&quot;;
++ next;
++ }
++ my $a = $l-&gt;Gid($GetValue);
++ $group = $ctx-&gt;LookupGroupById($a);
++ $groupnm = '';
++ $expr = ComputeLockExpire($l);
++ $group and $groupnm = $group-&gt;GroupName($GetValue);
++ my $s = $l-&gt;Gecos($GetValue);
++ c::set_tagged_utf8($s);
++ $utree_model-&gt;append_set([ 0 =&gt; $l-&gt;UserName($GetValue),
++ 1 =&gt; $l-&gt;Uid($GetValue),
++ 2 =&gt; $groupnm,
++ 3 =&gt; $s,
++ 4 =&gt; $l-&gt;LoginShell($GetValue),
++ 5 =&gt; $l-&gt;HomeDir($GetValue),
++ 6 =&gt; $expr ]);
++ }
++}
++
++sub RefreshGroupsFull {
++ my ($filtergroups, $strfilt) = @_;
++ my $groups;
++ defined $ctx and $groups = $ctx-&gt;GroupsEnumerateFull;
++ $gtree_model-&gt;clear;
++ my @GroupReal;
++ LOOP: foreach my $g (@$groups) {
++ next LOOP if $filtergroups &amp;&amp; $g-&gt;Gid($GetValue) &lt;= 499 || $g-&gt;Gid($GetValue) == 65534;
++ push @GroupReal, $g if $g-&gt;GroupName($GetValue) =~ /^\Q$strfilt/;
++ }
++ foreach my $g (@GroupReal) {
++ my $a = $g-&gt;GroupName($GetValue);
++ #my $group = $ctx-&gt;LookupGroupById($a);
++ my $u_b_g = $a &amp;&amp; $ctx-&gt;EnumerateUsersByGroup($a);
++ my $listUbyG = join(',', @$u_b_g);
++ my $group_id = $g-&gt;Gid($GetValue);
++ $gtree_model-&gt;append_set([ 0 =&gt; $g-&gt;GroupName($GetValue),
++ if_($group_id, 1 =&gt; $group_id),
++ if_($listUbyG, 2 =&gt; $listUbyG) ]);
++ }
++}
++
++sub Refresh {
++ my ($filt, $strfilt) = @_;
++ RefreshUsersFull($filt, $strfilt);
++ RefreshGroupsFull($filt, $strfilt);
++ GrayDelEdit();
++ RefreshXguest(1);
++}
++
++sub GetFaceIcon {
++ my ($user) = @_;
++ my @icons = any::facesnames();
++ my $i;
++ my $current_icon;
++ my $user_icon = &quot;$::prefix/usr/share/faces/$user.png&quot;;
++ gtkpack_(my $hb = Gtk2::HBox-&gt;new(0, 2),
++ 0, Gtk2::Label-&gt;new(N(&quot;Click on the icon to change it&quot;) . ' '),
++ 0, my $bt = Gtk2::Button-&gt;new
++ );
++ my $set = sub {
++ my ($icon) = @_;
++ my $f = $icon =~ m,^/, ? $icon : any::face2png($icon);
++ $us-&gt;{o}{iconval} = $icon;
++ gtkdestroy($us-&gt;{o}{icon});
++ # so that we do display &quot;no icon&quot; if either file doesn't exist or it's corrupted:
++ undef $us-&gt;{o}{icon};
++ $us-&gt;{o}{icon} = eval { gtkcreate_img($f) } if -e $f;
++ $us-&gt;{o}{icon} ||= Gtk2::Label-&gt;new(&quot;No Icon&quot;);
++ $bt-&gt;add($us-&gt;{o}{icon});
++ $us-&gt;{o}{icon}-&gt;show;
++ };
++ if (-e $user_icon) {
++ my $current_md5 = common::md5file($user_icon);
++ eval { $i = find_index { common::md5file(any::face2png($_)) eq $current_md5 } @icons };
++ if (!$@) { #- current icon found in @icons, select it
++ $current_icon = $icons[$i];
++ } else { #- add and select current icon in @icons
++ push @icons, $user_icon;
++ $current_icon = $user_icon;
++ $i = @icons - 1;
++ }
++ } else {
++ #- no icon yet, select a random one
++ $current_icon = $icons[$i = rand(@icons)];
++ }
++ $set-&gt;($current_icon);
++ my $leave = 0;
++ $bt-&gt;signal_connect(enter =&gt; sub { $leave = 0 });
++ $bt-&gt;signal_connect(leave =&gt; sub { $leave = 1 });
++ $bt-&gt;signal_connect(button_release_event =&gt; sub {
++ return if $leave;
++ if ($_[1]-&gt;button == 1) {
++ $i = defined $icons[$i+1] ? $i+1 : 0;
++ } else {
++ $i = defined $icons[$i-1] ? $i-1 : @icons-1;
++ }
++ $set-&gt;($icons[$i]);
++ });
++ $hb;
++}
++
++sub AddUser() {
++ my $w = NewWindow(N(&quot;Create New User&quot;));
++ my $dontcreatehomedir = 0; my $is_system = 0;
++ my %u;
++ gtkpack_($w-&gt;vbox,
++ 0, BuildUui(),
++ 0, Gtk2::HSeparator-&gt;new,
++ 0, $us-&gt;{o}{createhomedir} = Gtk2::CheckButton-&gt;new(N(&quot;Create Home Directory&quot;)),
++ 0, gtkpack_(my $vv = Gtk2::HBox-&gt;new(0, 4),
++ 0, Gtk2::Label-&gt;new(N(&quot;Home Directory: &quot;)),
++ 0, $us-&gt;{o}{homedir} = Gtk2::Entry-&gt;new
++ ),
++ 0, $us-&gt;{o}{privategroup} = Gtk2::CheckButton-&gt;new(N(&quot;Create a private group for the user&quot;)),
++ 0, $us-&gt;{o}{userid} = Gtk2::CheckButton-&gt;new(N(&quot;Specify user ID manually&quot;)),
++ 0, gtkset_sensitive(my $h = Gtk2::HBox-&gt;new(0, 4), 0),
++ 0, Gtk2::HSeparator-&gt;new,
++ 0, GetFaceIcon()
++ );
++ gtkadd($w-&gt;action_area,
++ map {
++ my $r = $_-&gt;[1];
++ gtksignal_connect(
++ Gtk2::Button-&gt;new($_-&gt;[0]),
++ clicked =&gt; sub {
++ if (!$r) {
++ $u{username} = $us-&gt;{o}{login}-&gt;get_text; $error = 0;
++ $u{gecos} = $us-&gt;{o}{fullname}-&gt;get_text;
++ if (!valid_username($u{username})) { RaiseError($us-&gt;{error}) }
++ my $nm = !$error &amp;&amp; $ctx-&gt;LookupUserByName($u{username});
++ if ($nm) {
++ RaiseError(N(&quot;User already exists, please choose another User Name&quot;));
++ $us-&gt;{o}{login}-&gt;set_text('');
++ }
++ $u{passwd} = $us-&gt;{o}{passwd}-&gt;get_text;
++ if ($u{passwd} ne $us-&gt;{o}{confpasswd}-&gt;get_text) {
++ RaiseError(N(&quot;Password Mismatch&quot;));
++ }
++ if ($sec{SECURE_LEVEL} &gt; 3 &amp;&amp; length($u{passwd}) &lt; 6) {
++ RaiseError(N(&quot;This password is too simple. \n Good passwords should be &gt; 6 characters&quot;));
++ }
++ my $userEnt = !$error &amp;&amp; $ctx-&gt;InitUser($u{username}, $is_system);
++ if (!$error &amp;&amp; $us-&gt;{o}{createhomedir}-&gt;get_active) {
++ $dontcreatehomedir = 0;
++ $u{homedir} = $us-&gt;{o}{homedir}-&gt;get_text;
++ $userEnt and $userEnt-&gt;HomeDir($u{homedir});
++ } else {
++ $dontcreatehomedir = 1;
++ }
++ if (!$error &amp;&amp; $us-&gt;{o}{userid}-&gt;get_active) {
++ if (($u{uid} = $us-&gt;{o}{uid}-&gt;get_value) &lt; 500) {
++ my $uidchoice = GimmeChoice(N(&quot;User Uid is &lt; 500&quot;),
++ N(&quot;Creating a user with a UID less than 500 is not recommended.\n Are you sure you want to do this?\n\n&quot;));
++ $uidchoice and $userEnt-&gt;Uid($u{uid});
++ } else { $userEnt-&gt;Uid($u{uid}) }
++ }
++ if ($us-&gt;{o}{privategroup}-&gt;get_active) {
++ if (!$error) {
++ #Check if group exist
++ my $gr = $ctx-&gt;LookupGroupByName($u{username});
++ if ($gr) {
++ my $groupchoice = ChooseGroup();
++ if ($groupchoice == 0 &amp;&amp; !$error) {
++ #You choose to put it in the existing group
++ $u{gid} = $gr-&gt;Gid($GetValue);
++ } elsif ($groupchoice == 1) {
++ # Put it in 'users' group
++ log::explanations(N(&quot;Putting %s to 'users' group&quot;,
++ $u{username}));
++ $u{gid} = Add2UsersGroup($u{username});
++ }
++ } else {
++ #it's a new group: Add it
++ my $newgroup = $ctx-&gt;InitGroup($u{username},$is_system);
++ log::explanations(N(&quot;Creating new group: %s&quot;, $u{username}));
++ $u{gid} = $newgroup-&gt;Gid($GetValue);
++ $ctx-&gt;GroupAdd($newgroup);
++ }
++ }
++ } else {
++ !$error and $u{gid} = Add2UsersGroup($u{username});
++ }
++ if (!$error) {
++ log::explanations(N(&quot;Adding user: %s&quot;, $u{username}));
++ $u{loginshell} = $us-&gt;{o}{shells}-&gt;entry-&gt;get_text;
++ $userEnt-&gt;Gecos($u{gecos}); $userEnt-&gt;LoginShell($u{loginshell});
++ $userEnt-&gt;Gid($u{gid});
++ $userEnt-&gt;ShadowMin(-1); $userEnt-&gt;ShadowMax(99999);
++ $userEnt-&gt;ShadowWarn(-1); $userEnt-&gt;ShadowInact(-1);
++ $ctx-&gt;UserAdd($userEnt, $is_system, $dontcreatehomedir);
++ $ctx-&gt;UserSetPass($userEnt, $u{passwd});
++ defined $us-&gt;{o}{iconval} and
++ any::addKdmIcon($u{username}, $us-&gt;{o}{iconval});
++ Refresh($sysfilter, $stringsearch);
++ transfugdrake::get_windows_disk()
++ and $in-&gt;ask_yesorno(N(&quot;Migration wizard&quot;),
++ N(&quot;Do you want to run the migration wizard in order to import Windows documents and settings in your Mageia distribution?&quot;))
++ and run_program::raw({ detach =&gt; 1 }, 'transfugdrake');
++ }
++ }
++ !$error and $w-&gt;destroy; $error = 0 });
++ } ([ N(&quot;Cancel&quot;), 1 ], [ N(&quot;Ok&quot;), 0 ]),
++ );
++ foreach (qw(privategroup createhomedir)) { $us-&gt;{o}{$_}-&gt;set_active(1) }
++ GrayBox($us-&gt;{o}{createhomedir}, $vv, 1);
++ $us-&gt;{o}{login}-&gt;signal_connect(
++ 'focus_out_event' =&gt; sub {
++ my $fullname = $us-&gt;{o}{fullname}-&gt;get_text;
++ $us-&gt;{o}{homedir}-&gt;set_text(&quot;/home/&quot; . $us-&gt;{o}{login}-&gt;get_text);
++ $fullname or $us-&gt;{o}{fullname}-&gt;set_text($us-&gt;{o}{login}-&gt;get_text);
++ 0; # Gdk expect focus event handlers to return false
++ });
++ $us-&gt;{o}{uid} = Gtk2::SpinButton-&gt;new(Gtk2::Adjustment-&gt;new(500, 1, 65000, 1, 10, 10), 1, 0);
++ $h-&gt;pack_end($us-&gt;{o}{uid}, 0, 0, 4);
++ $h-&gt;pack_end(Gtk2::Label-&gt;new(N(&quot;UID: &quot;)), 0, 0, 4);
++ GrayBox($us-&gt;{o}{userid}, $h, 0);
++ $w-&gt;show_all;
++}
++
++sub Add2UsersGroup {
++ my $name = shift;
++ my $usersgroup = $ctx-&gt;LookupGroupByName('users');
++ $usersgroup-&gt;MemberName($name, 1);
++ return $usersgroup-&gt;Gid($GetValue);
++}
++
++sub ChooseGroup() {
++ my $w = NewWindow(N(&quot;Choose group&quot;));
++ my $choice;
++ my @radio = gtkradio(N(&quot;Add to the existing group&quot;),
++ (N(&quot;Add to the existing group&quot;),
++ N(&quot;Add to the 'users' group&quot;)));
++ gtkadd($w-&gt;vbox,
++ Gtk2::Label-&gt;new(N(&quot;A group with this name already exists. What would you like to do?&quot;)),
++ gtkpack(Gtk2::VBox-&gt;new(0,0), @radio),
++ );
++ gtkadd($w-&gt;action_area,
++ gtksignal_connect(
++ Gtk2::Button-&gt;new(N(&quot;Ok&quot;)),
++ clicked =&gt; sub {
++ each_index { $_-&gt;get_active and $choice = $::i } @radio;
++ $w-&gt;destroy;
++ Gtk2-&gt;main_quit;
++ }),
++ gtksignal_connect(
++ Gtk2::Button-&gt;new(N(&quot;Cancel&quot;)),
++ clicked =&gt; sub {
++ $error = 1;
++ $w-&gt;destroy;
++ Gtk2-&gt;main_quit;
++ }));
++ $w-&gt;show_all;
++ Gtk2-&gt;main;
++ $choice;
++}
++sub GimmeChoice {
++ my ($title, $text) = @_;
++ my $choice = $in-&gt;ask_yesorno($title, $text) or $error = 1;
++ gtkset_mousecursor_normal();
++ $choice;
++}
++
++sub AddGroup() {
++ my $w = NewWindow(N(&quot;Create New Group&quot;));
++ my $mode = 0; my %g; my $is_system = 0;
++ gtkpack_($w-&gt;vbox,
++ 0, BuildGui(),
++ 0, Gtk2::HSeparator-&gt;new,
++ 0, $us-&gt;{o}{groupid} = Gtk2::CheckButton-&gt;new(N(&quot;Specify group ID manually&quot;)),
++ 0, gtkset_sensitive(my $h = Gtk2::HBox-&gt;new(0, 4), 0),
++ );
++ gtkadd($w-&gt;action_area,
++ map {
++ my $r = $_-&gt;[1];
++ gtksignal_connect(
++ Gtk2::Button-&gt;new($_-&gt;[0]),
++ clicked =&gt; sub {
++ if (!$r) {
++ $g{groupname} = $us-&gt;{o}{groupname}-&gt;get_text; $error = 0;
++ if (!valid_groupname($g{groupname})) {
++ RaiseError($us-&gt;{error});
++ }
++ my $nm = $ctx-&gt;LookupGroupByName($g{groupname});
++ if ($nm) {
++ RaiseError(N(&quot;Group already exists, please choose another Group Name&quot;));
++ $us-&gt;{o}{groupname}-&gt;set_text('');
++ }
++ my $groupEnt = $ctx-&gt;InitGroup($g{groupname}, $is_system);
++ if ($us-&gt;{o}{groupid}-&gt;get_active) {
++ if (($g{gid} = $us-&gt;{o}{gid}-&gt;get_value) &lt; 500) {
++ my $gidchoice = GimmeChoice(N(&quot; Group Gid is &lt; 500&quot;),
++ N(&quot;Creating a group with a GID less than 500 is not recommended.\n Are you sure you want to do this?\n\n&quot;));
++ $gidchoice and $groupEnt-&gt;Gid($g{gid});
++ } else {
++ $groupEnt-&gt;Gid($g{gid});
++ }
++ }
++ if (!$error) {
++ log::explanations(N(&quot;Adding group: %s &quot;, $g{groupname}));
++ $ctx-&gt;GroupAdd($groupEnt);
++ Refresh($sysfilter, $stringsearch);
++ }
++ }
++ !$error and $w-&gt;destroy; $error = 0 });
++ } ([ N(&quot;Cancel&quot;), 1 ], [ N(&quot;Ok&quot;), 0 ])
++ );
++ $us-&gt;{o}{gid} = Gtk2::SpinButton-&gt;new(Gtk2::Adjustment-&gt;new(500, 1, 65000, 1, 10, 10), 1, 0);
++ $h-&gt;pack_end($us-&gt;{o}{gid}, 0, 0, 4);
++ $h-&gt;pack_end(Gtk2::Label-&gt;new(N(&quot;GID: &quot;)), 0, 0, 4);
++ $us-&gt;{o}{groupid}-&gt;signal_connect('clicked' =&gt; sub { $mode = !$mode; $h-&gt;set_sensitive($mode) });
++ $w-&gt;show_all;
++}
++
++sub UpdateOrDelUsersInGroup {
++ my ($name, $action) = @_;
++ my $groups = $ctx-&gt;GroupsEnumerateFull;
++ if ($action) {
++ foreach my $g (@$groups) {
++ my $members = $g-&gt;MemberName(1, 0);
++ if (InArray($name, $members)) {
++ eval { $g-&gt;MemberName($name, 2) };
++ eval { $ctx-&gt;GroupModify($g) };
++ }
++ }
++ }
++}
++
++sub GetNameEntFromIter {
++ my ($tree, $model, $rank) = @_;
++ my (undef, $iter) = $tree-&gt;get_selection-&gt;get_selected;
++ my $name = $model-&gt;get($iter, $rank);
++ $name;
++}
++
++sub FillUserInfo {
++ my $ent = shift;
++ my $s = $ent-&gt;Gecos($GetValue);
++ c::set_tagged_utf8($s);
++ $us-&gt;{o}{fullname}-&gt;set_text($s);
++ $us-&gt;{o}{passwd}-&gt;set_text(' ');
++ $us-&gt;{o}{confpasswd}-&gt;set_text(' ');
++ $us-&gt;{o}{shells}-&gt;entry-&gt;set_text($ent-&gt;LoginShell($GetValue));
++ $us-&gt;{o}{homedir}-&gt;set_text($ent-&gt;HomeDir($GetValue));
++}
++
++sub UserDelete() {
++ my ($checkhome, $checkspool);
++ my $username = GetNameEntFromIter($usertree, $utree_model, 0);
++ my $userEnt = $ctx-&gt;LookupUserByName($username);
++ # Old Delete version
++ #my $removehome = GimmeChoice(N(&quot; Remove Home Directory&quot;), N(&quot;Do you want to delete the user's home directory and mail spool?&quot;));
++ #$removehome and $ctx-&gt;Clean($userEnt);
++ # New version
++ my $w = NewWindow(N(&quot;Delete files or not?&quot;));
++ my $hd = $userEnt-&gt;HomeDir($GetValue);
++ gtkpack_($w-&gt;vbox,
++ 0, Gtk2::Label-&gt;new(N(&quot;Deleting user %s\n Also perform the following actions\n&quot;,
++ $username)),
++ 0, $checkhome = Gtk2::CheckButton-&gt;new(N(&quot;Delete Home Directory: %s&quot;, $hd)),
++ 0, $checkspool = Gtk2::CheckButton-&gt;new(N(&quot;Delete Mailbox: /var/spool/mail/%s&quot;,
++ $username)),
++ );
++ gtkadd($w-&gt;action_area,
++ map {
++ my $r = $_-&gt;[1];
++ gtksignal_connect(Gtk2::Button-&gt;new($_-&gt;[0]), clicked =&gt;
++ sub {
++ if (!$r) {
++ log::explanations(N(&quot;Removing user: %s&quot;, $username));
++ $ctx-&gt;UserDel($userEnt);
++ UpdateOrDelUsersInGroup($username, 1);
++ #Let's check out the user's primary group
++ my $usergid = $userEnt-&gt;Gid($GetValue);
++ my $groupEnt = $ctx-&gt;LookupGroupById($usergid);
++ if ($groupEnt) {
++ my $member = $groupEnt-&gt;MemberName(1, 0);
++ if (scalar(@$member) == 0 &amp;&amp; $groupEnt-&gt;Gid($GetValue) &gt; 499) {
++ $ctx-&gt;GroupDel($groupEnt);
++ }
++ }
++ if ($checkhome-&gt;get_active) {
++ eval { $ctx-&gt;CleanHome($userEnt) };
++ $@ and RaiseError($@);
++ }
++ if ($checkspool-&gt;get_active) {
++ eval { $ctx-&gt;CleanSpool($userEnt) };
++ $@ and RaiseError($@);
++ }
++ Refresh($sysfilter, $stringsearch);
++ }
++ !$error and $w-&gt;destroy; $error = 0 });
++ } ([ N(&quot;Cancel&quot;), 1 ], [ N(&quot;Delete&quot;), 0 ]),
++ );
++ if ($hd !~ m!(?:/home|/var/spool)!) { $checkhome-&gt;set_sensitive(0); $checkspool-&gt;set_sensitive(0) }
++ $w-&gt;show_all;
++}
++
++sub GroupDelete() {
++ my $groupname = GetNameEntFromIter($grouptree, $gtree_model, 0);
++ my $wg = NewWindow(translate(&quot;Warning&quot;));
++ gtkadd($wg-&gt;vbox,
++ Gtk2::Label-&gt;new(N(&quot;Do you really want to delete the group %s?&quot;, $groupname)),
++ );
++ gtkadd($wg-&gt;action_area,
++ map {
++ my $r = $_-&gt;[1];
++ gtksignal_connect(Gtk2::Button-&gt;new($_-&gt;[0]), clicked =&gt;
++ sub {
++ if (!$r) {
++ my $groupEnt = $ctx-&gt;LookupGroupByName($groupname);
++ my $members = $ctx-&gt;EnumerateUsersByGroup($groupname);
++ GLOOP: foreach my $username (@$members) {
++ my $userEnt = $ctx-&gt;LookupUserByName($username);
++ if ($userEnt &amp;&amp; $userEnt-&gt;Gid($GetValue) == $groupEnt-&gt;Gid($GetValue)) {
++ RaiseError(N(&quot;%s is a primary group for user %s\n Remove the user first&quot;, $groupname, $username));
++ last GLOOP;
++ }
++ }
++ if (!$error) {
++ log::explanations(N(&quot;Removing group: %s&quot;, $groupname));
++ eval { $ctx-&gt;GroupDel($groupEnt) }; Refresh($sysfilter, $stringsearch);
++ }
++ }
++ !$error and $wg-&gt;destroy; $error = 0 });
++ } ([ N(&quot;Cancel&quot;), 1 ], [ N(&quot;Delete&quot;), 0 ]),
++ );
++ $wg-&gt;show_all;
++}
++
++sub Delete() {
++ my $page = $nb-&gt;get_current_page;
++ $us-&gt;{wnd}{rwindow}-&gt;set_sensitive(0);
++ gtkset_mousecursor_wait(); $error = 0;
++ if ($page &lt;= 0) {
++ UserDelete();
++ } elsif ($page == 1) {
++ GroupDelete();
++ }
++ $us-&gt;{wnd}{rwindow}-&gt;set_sensitive(1);
++ gtkset_mousecursor_normal();
++}
++
++# Gtk Facilities
++sub CreateTree {
++ my ($tree_model) = @_;
++ my $tree = Gtk2::TreeView-&gt;new_with_model($tree_model);
++ $tree-&gt;get_selection-&gt;set_mode('browse');
++ $tree-&gt;set_headers_visible(1);
++ $tree-&gt;set_rules_hint(1);
++ $tree-&gt;get_selection-&gt;signal_connect(
++ 'changed' =&gt; sub {
++ foreach ($tbedit, $tbdel, $buttorcheck{edit}, $buttorcheck{delete}) {
++ $_-&gt;set_sensitive(1);
++ }
++ });
++ my $menu_treeview = Gtk2::Menu-&gt;new;
++ my @menu_treeview_actions = ([ 'edit', N(&quot;Edit&quot;) ], [ 'delete', N(&quot;Delete&quot;) ]);
++ foreach (@menu_treeview_actions) {
++ my ($action, $text) = @$_;
++ my %actions; %actions = (
++ edit =&gt; sub {
++ my (undef, $iter) = $tree-&gt;get_selection-&gt;get_selected;
++ $iter and Edit();
++ },
++ delete =&gt; sub {
++ my (undef, $iter) = $tree-&gt;get_selection-&gt;get_selected;
++ $iter and Delete();
++ }
++ );
++ $menu_treeview-&gt;append(
++ gtksignal_connect(
++ gtkshow(Gtk2::MenuItem-&gt;new_with_label($text)),
++ activate =&gt; sub { $actions{$action}-&gt;() }));
++ }
++ $tree-&gt;signal_connect(
++ button_press_event =&gt; sub {
++ my (undef, $event) = @_;
++ my (undef, $iter) = $tree-&gt;get_selection-&gt;get_selected;
++ return unless $iter;
++ foreach ($tbedit, $tbdel, $buttorcheck{edit}, $buttorcheck{delete}) {
++ $_-&gt;set_sensitive(1);
++ }
++ Edit() if $event-&gt;type eq '2button-press';
++ $_[1]-&gt;button == 3
++ and $menu_treeview-&gt;popup(undef, undef, undef, undef, $_[1]-&gt;button, $_[1]-&gt;time);
++ });
++ $tree-&gt;signal_connect(
++ key_press_event =&gt; sub {
++ my (undef, $event) = @_;
++ my (undef, $iter) = $tree-&gt;get_selection-&gt;get_selected;
++ return unless $iter;
++ Edit() if $event-&gt;keyval == $Gtk2::Gdk::Keysyms{Return};
++ });
++ $tree;
++}
++
++sub GtkEntryHidePass {
++ my ($o_text) = @_;
++ my $e = gtknew('WeaknessCheckEntry');
++ $o_text and $e-&gt;set_text($o_text);
++ $e-&gt;set_visibility(0);
++ $e;
++}
++
++sub GtkEntrySized {
++ my ($i, $spac) = @_;
++ my $e = Gtk2::Entry-&gt;new_with_max_length($i);
++ $e-&gt;set_size_request($spac, 20);
++ $e;
++}
++
++sub BuildUui {
++ my ($o_extra_widget) = @_;
++ gtkpack_(my $vbox = Gtk2::VBox-&gt;new(0, 2),
++ 1, create_packtable({ homogeneous =&gt; 1, col_spacings =&gt; 5, row_spacings =&gt; 5 },
++ [ gtknew('Label_Left', text =&gt; N(&quot;Full Name:&quot;)),
++ $us-&gt;{o}{fullname} = Gtk2::Entry-&gt;new ],
++ [ gtknew('Label_Left', text =&gt; N(&quot;Login:&quot;)),
++ $us-&gt;{o}{login} = Gtk2::Entry-&gt;new ],
++ [ gtknew('Label_Left', text =&gt; N(&quot;Password:&quot;)),
++ $us-&gt;{o}{passwd} = GtkEntryHidePass() ],
++ [ gtknew('Label_Left', text =&gt; N(&quot;Confirm Password:&quot;)),
++ $us-&gt;{o}{confpasswd} = GtkEntryHidePass() ],
++ [ gtknew('Label_Left', text =&gt; N(&quot;Login Shell:&quot;)),
++ $us-&gt;{o}{shells} = Gtk2::Combo-&gt;new ],
++ $o_extra_widget,
++ )
++ );
++ $us-&gt;{o}{shells}-&gt;set_popdown_strings(@{$ctx-&gt;GetUserShells});
++ $us-&gt;{o}{shells}-&gt;entry-&gt;set_text(&quot;/bin/bash&quot;);
++ $vbox;
++}
++
++sub BuildGui() {
++ gtkpack_(my $vbox = Gtk2::VBox-&gt;new(0, 2),
++ 1, create_packtable({ homogeneous =&gt; 1, col_spacings =&gt; 5, row_spacings =&gt;5 },
++ [ N(&quot;Group Name:&quot;), $us-&gt;{o}{groupname} = Gtk2::Entry-&gt;new ]
++ )
++ );
++ $vbox;
++}
++
++sub NewWindow {
++ my ($title) = @_;
++ my $dialog = gtkset_border_width(
++ _create_dialog($title, { transient_for =&gt; $us-&gt;{wnd}{real_window} }),
++ 5);
++ $dialog-&gt;signal_connect(delete_event =&gt; sub { $dialog-&gt;destroy });
++ my $prev_main_window = $::main_window;
++ $::main_window = $dialog;
++ $dialog-&gt;signal_connect(destroy =&gt; sub { $::main_window = $prev_main_window });
++ $dialog;
++}
++
++sub Xguest() {
++ if (is_xguest_installed()) {
++ run_program::run('rpm', '-e', 'xguest');
++ } else {
++ run_program::run('gurpmi2', 'xguest');
++ }
++ RefreshXguest();
++}
++
++sub UserEdit_valid {
++ my ($userEnt, $model, $primgid) = @_;
++ my ($Exp, $gEnt, $ugid);
++ my $error = 0;
++ my %u = (
++ username =&gt; $us-&gt;{o}{login}-&gt;get_text, gecos =&gt; $us-&gt;{o}{fullname}-&gt;get_text,
++ homedir =&gt; $us-&gt;{o}{homedir}-&gt;get_text, pw =&gt; $us-&gt;{o}{passwd}-&gt;get_text,
++ confm =&gt; $us-&gt;{o}{confpasswd}-&gt;get_text, shell =&gt; $us-&gt;{o}{shells}-&gt;entry-&gt;get_text
++ );
++ if (!valid_username($u{username})) {
++ RaiseError($us-&gt;{error});
++ }
++ if ($u{pw} ne $u{confm}) {
++ RaiseError(N(&quot;Password Mismatch&quot;));
++ } elsif ($u{pw} eq $u{confm} &amp;&amp; $u{pw} ne ' ') {
++ if ($sec{SECURE_LEVEL} &gt; 3 &amp;&amp; length($u{pw}) &lt; 6) {
++ RaiseError(N(&quot;This password is too simple. \n Good passwords should be &gt; 6 characters&quot;));
++ }
++ !$error and $ctx-&gt;UserSetPass($userEnt, $u{pw});
++ }
++ if (!$error) {
++ $userEnt-&gt;UserName($u{username});
++ $userEnt-&gt;Gecos($u{gecos});
++ $userEnt-&gt;HomeDir($u{homedir});
++ $userEnt-&gt;LoginShell($u{shell});
++ my $username = $userEnt-&gt;UserName($GetValue);
++ $model-&gt;foreach(sub {
++ my ($mod, $_path, $iter) = @_;
++ my $ch = $mod-&gt;get($iter, 2);
++ my $name = $mod-&gt;get($iter, 1);
++ $gEnt = $ctx-&gt;LookupGroupByName($name);
++ $ugid = $gEnt-&gt;Gid($GetValue);
++ my $m = $gEnt-&gt;MemberName(1,0);
++ if ($ch == 1) {
++ if (!InArray($username, $m) &amp;&amp; $primgid != $ugid) {
++ eval { $gEnt-&gt;MemberName($username, 1) };
++ $ctx-&gt;GroupModify($gEnt);
++ }
++ } else {
++ if (InArray($username, $m)) {
++ eval { $gEnt-&gt;MemberName($username, 2) };
++ $ctx-&gt;GroupModify($gEnt);
++ }
++ }
++ return 0;
++ }, undef);
++ if ($us-&gt;{o}{primgroup}-&gt;entry-&gt;get_text eq '') {
++ RaiseError(N(&quot;Please select at least one group for the user&quot;));
++ } elsif (!$error) {
++ my $ent = $ctx-&gt;LookupGroupByName($us-&gt;{o}{primgroup}-&gt;entry-&gt;get_text);
++ $ugid = $ent-&gt;Gid($GetValue);
++ $userEnt-&gt;Gid($ugid);
++ if ($us-&gt;{o}{acheckexpire}-&gt;get_active) {
++ my $yr = $us-&gt;{o}{expy}-&gt;get_value;
++ my $mo = $us-&gt;{o}{expm}-&gt;get_value;
++ my $dy = $us-&gt;{o}{expd}-&gt;get_value;
++ ValidInt($yr, $dy, $mo)
++ or RaiseError(N(&quot;Please specify Year, Month and Day \n for Account Expiration &quot;));
++ if (!$error) { $Exp = ConvTime($dy, $mo, $yr);
++ $userEnt-&gt;ShadowExpire($Exp) }
++ } else { $userEnt-&gt;ShadowExpire(ceil(-1)) }
++ if ($us-&gt;{o}{pcheckexpire}-&gt;get_active) {
++ my $allowed = int($us-&gt;{o}{dbca}-&gt;get_text);
++ my $required = int($us-&gt;{o}{dbcr}-&gt;get_text);
++ my $warning = int($us-&gt;{o}{bwbc}-&gt;get_text);
++ my $inactive = int($us-&gt;{o}{dbai}-&gt;get_text);
++ $allowed &amp;&amp; $required &amp;&amp; $warning &amp;&amp; $inactive
++ or RaiseError(N(&quot;Please fill up all fields in password aging\n&quot;));
++ if (!$error) {
++ $userEnt-&gt;ShadowMin($allowed);
++ $userEnt-&gt;ShadowMax($required);
++ $userEnt-&gt;ShadowWarn($warning);
++ $userEnt-&gt;ShadowInact($inactive);
++ }
++ } else {
++ $userEnt-&gt;ShadowMin(-1);
++ $userEnt-&gt;ShadowMax(99999);
++ $userEnt-&gt;ShadowWarn(-1);
++ $userEnt-&gt;ShadowInact(-1);
++ }
++ !$error and $ctx-&gt;UserModify($userEnt);
++ if ($us-&gt;{o}{lockuser}-&gt;get_active) {
++ !$ctx-&gt;IsLocked($userEnt) and $ctx-&gt;Lock($userEnt);
++ } else { $ctx-&gt;IsLocked($userEnt) and $ctx-&gt;UnLock($userEnt) }
++ defined $us-&gt;{o}{iconval} and any::addKdmIcon($u{username}, $us-&gt;{o}{iconval});
++ !$error and Refresh($sysfilter, $stringsearch);
++ }
++ }
++}
++
++sub GroupEdit_valid {
++ my ($groupEnt, $model, $groupname) = @_;
++ my %g;
++ my ($uEnt);
++ $g{groupname} = $us-&gt;{o}{groupname}-&gt;get_text; $error = 0;
++ if (!valid_groupname($g{groupname})) { RaiseError($us-&gt;{error}) }
++ if (!$error &amp;&amp; $groupname ne $g{groupname}) { $groupEnt-&gt;GroupName($g{groupname}) }
++ $groupname = $groupEnt-&gt;GroupName($GetValue);
++ my $members = $ctx-&gt;EnumerateUsersByGroup($groupname);
++ my $gid = $groupEnt-&gt;Gid($GetValue);
++ !$error and $model-&gt;foreach(
++ sub {
++ my ($mod, $_path, $iter) = @_;
++ my $ch = $mod-&gt;get($iter, 2);
++ my $name = $mod-&gt;get($iter, 1);
++ if ($ch == 1) {
++ if (!InArray($name, $members)) {
++ $uEnt = $ctx-&gt;LookupUserByName($name);
++ my $ugid = $uEnt-&gt;Gid($GetValue);
++ if ($ugid != $gid) {
++ eval { $groupEnt-&gt;MemberName($name,1) };
++ }
++ }
++ } else {
++ if (InArray($name, $members)) {
++ $uEnt = $ctx-&gt;LookupUserByName($name);
++ if ($uEnt-&gt;Gid($GetValue) == $groupEnt-&gt;Gid($GetValue)) {
++ $model-&gt;set($iter, 0 =&gt; gtkcreate_pixbuf($pix[0]));
++ $model-&gt;set($iter, 2 =&gt; 1);
++ RaiseError(N(&quot;You cannot remove user '%s' from their primary group&quot;, $name));
++ }
++ if (!$error) {
++ eval { $groupEnt-&gt;MemberName($name,2) };
++ }
++ }
++ }
++ return 0;
++ }, undef);
++ if (!$error) {
++ $ctx-&gt;GroupModify($groupEnt);
++ Refresh($sysfilter, $stringsearch);
++ }
++}
++
++sub UserEdit_widget {
++ my ($nbU, $tree, $model, $Gent) = @_;
++ my ($vald, $mo, $ye) = (localtime())[3, 4, 5];
++ my $valy = $ye+1900;
++ my $valm = $mo+1;
++ gtkappend_page($nbU,
++ BuildUui([ gtknew('Label_Left', text =&gt; N(&quot;Home:&quot;)),
++ $us-&gt;{o}{homedir} = Gtk2::Entry-&gt;new ]),
++ gtkshow(Gtk2::Label-&gt;new(N(&quot;User Data&quot;))));
++ gtkappend_page(
++ $nbU,
++ gtkpack_(Gtk2::VBox-&gt;new(0, 2),
++ 0, $us-&gt;{o}{acheckexpire} = Gtk2::CheckButton-&gt;new(N(&quot;Enable account expiration&quot;)),
++ 0, gtkpack__(my $h = Gtk2::HBox-&gt;new(0, 10),
++ Gtk2::Label-&gt;new(N(&quot;Account expires (YYYY-MM-DD):&quot;)),
++ map { my ($s, $value, $minv, $maxv) = @$_; #my $spc = $_-&gt;[4];
++ $us-&gt;{o}{$s} = Gtk2::SpinButton-&gt;new(Gtk2::Adjustment-&gt;new($value, $minv , $maxv, 1, 10, 10), 1, 0);
++ } (['expy', $valy, 1970, 10000],
++ ['expm', $valm, 1, 12],
++ ['expd', $vald, 1, 31]),
++ ),
++ 0, Gtk2::HSeparator-&gt;new,
++ 0, $us-&gt;{o}{lockuser} = Gtk2::CheckButton-&gt;new(N(&quot;Lock User Account&quot;)),
++ 0, Gtk2::HSeparator-&gt;new,
++ 0, GetFaceIcon(GetNameEntFromIter($usertree, $utree_model,0))
++ ), gtkshow(Gtk2::Label-&gt;new(N(&quot;Account Info&quot;))));
++ GrayBox($us-&gt;{o}{acheckexpire}, $h, 0);
++ gtkappend_page($nbU,
++ gtkpack_(Gtk2::VBox-&gt;new(0, 2),
++ 0, gtkpack_(Gtk2::HBox-&gt;new(0,5),
++ 0, Gtk2::Label-&gt;new(N(&quot;User last changed password on: &quot;)),
++ 0, my $dayStr = Gtk2::Label-&gt;new(&quot;&quot;),
++ 0, my $month = Gtk2::Label-&gt;new(&quot;&quot;),
++ 0, my $dayInt = Gtk2::Label-&gt;new(&quot;&quot;),
++ 0, my $year = Gtk2::Label-&gt;new(&quot;&quot;)
++ ),
++ 0, Gtk2::HSeparator-&gt;new,
++ 0, $us-&gt;{o}{pcheckexpire} = Gtk2::CheckButton-&gt;new(N(&quot;Enable Password Expiration&quot;)),
++ 1, gtkpack_(
++ my $v = Gtk2::VBox-&gt;new(0,1),
++ 1, create_packtable(
++ { homogeneous =&gt; 1, col_spacings =&gt; 5, row_spacings =&gt; 5 },
++ [ N(&quot;Days before change allowed:&quot;),
++ $us-&gt;{o}{dbca} = Gtk2::Entry-&gt;new_with_text(0) ],
++ [ N(&quot;Days before change required:&quot;),
++ $us-&gt;{o}{dbcr} = Gtk2::Entry-&gt;new_with_text(0) ],
++ [ N(&quot;Days warning before change:&quot;),
++ $us-&gt;{o}{bwbc} = Gtk2::Entry-&gt;new_with_text(0) ],
++ [ N(&quot;Days before account inactive:&quot;),
++ $us-&gt;{o}{dbai} = Gtk2::Entry-&gt;new_with_text(0) ]
++ )
++ )), gtkshow(Gtk2::Label-&gt;new(N(&quot;Password Info&quot;))));
++ GrayBox($us-&gt;{o}{pcheckexpire}, $v, 0);
++ gtkappend_page($nbU,
++ gtkpack_(Gtk2::VBox-&gt;new(0, 2),
++ 0, Gtk2::Label-&gt;new(N(&quot;Select the groups that the user will be a member of:&quot;)),
++ 1, create_scrolled_window($tree),
++ 0, gtkpack_(Gtk2::HBox-&gt;new(0, 1),
++ 0, Gtk2::Label-&gt;new(N(&quot;Primary Group&quot;)),
++ 1, $us-&gt;{o}{primgroup} = Gtk2::OptionMenu-&gt;new,
++ )
++ ), gtkshow(Gtk2::Label-&gt;new(N(&quot;Groups&quot;))));
++ my $username = GetNameEntFromIter($usertree, $utree_model,0);
++ $us-&gt;{o}{login}-&gt;set_text($username);
++ my $userEnt = $ctx-&gt;LookupUserByName($username); FillUserInfo($userEnt);
++ my $Uid = $userEnt-&gt;Uid($GetValue);
++ my $expire = $userEnt-&gt;ShadowExpire($GetValue);
++ if ($expire &amp;&amp; $expire != -1) {
++ $us-&gt;{o}{acheckexpire}-&gt;set_active(1);
++ $h-&gt;set_sensitive(1);
++ my $times = TimeOfArray($expire, 1);
++ $us-&gt;{o}{expd}-&gt;set_value($times-&gt;{dayint});
++ $us-&gt;{o}{expm}-&gt;set_value($times-&gt;{month});
++ $us-&gt;{o}{expy}-&gt;set_value($times-&gt;{year});
++ }
++ #root account should never be locked
++ !$Uid and $us-&gt;{o}{lockuser}-&gt;set_sensitive(0);
++ # Check if user account is locked
++ $ctx-&gt;IsLocked($userEnt) and $us-&gt;{o}{lockuser}-&gt;set_active(1);
++ my $lastchg = $userEnt-&gt;ShadowLastChange($GetValue);
++ if ($lastchg) {
++ my $times = TimeOfArray($lastchg, 0);
++ $dayStr-&gt;set_text($times-&gt;{daystr});
++ $month-&gt;set_text($times-&gt;{month});
++ $dayInt-&gt;set_text($times-&gt;{dayint});
++ $year-&gt;set_text($times-&gt;{year});
++ }
++ my $min = $userEnt-&gt;ShadowMin($GetValue);
++ my $max = $userEnt-&gt;ShadowMax($GetValue);
++ my $warn = $userEnt-&gt;ShadowWarn($GetValue);
++ my $inact = $userEnt-&gt;ShadowInact($GetValue);
++ if ($min &amp;&amp; $min != -1 || $max &amp;&amp; $max != 99999 || $warn &amp;&amp; $warn != 7 &amp;&amp; $warn != -1 || $inact &amp;&amp; $inact != -1) {
++ $us-&gt;{o}{pcheckexpire}-&gt;set_active(1);
++ $v-&gt;set_sensitive(1);
++ }
++ $min &amp;&amp; $min != -1 and $us-&gt;{o}{dbca}-&gt;set_text($min);
++ $max &amp;&amp; $max != -1 and $us-&gt;{o}{dbcr}-&gt;set_text($max);
++ $warn &amp;&amp; $warn != -1 and $us-&gt;{o}{bwbc}-&gt;set_text($warn);
++ $inact &amp;&amp; $inact != -1 and $us-&gt;{o}{dbai}-&gt;set_text($inact);
++ my $grps = $ctx-&gt;GroupsEnumerate;
++ my @sgroups = sort @$grps;
++ my $members = $ctx-&gt;EnumerateGroupsByUser($username);
++ my $primgid = $userEnt-&gt;Gid($GetValue);
++ $Gent = $ctx-&gt;LookupGroupById($primgid);
++ my @primgroup;
++ foreach my $group (@sgroups) {
++ if (member($group, @$members)) {
++ $model-&gt;append_set([ 0 =&gt; gtkcreate_pixbuf($pix[0]), 1 =&gt; $group, 2 =&gt; 1 ]);
++ push @primgroup, $group;
++ } else { $model-&gt;append_set([ 0 =&gt; gtkcreate_pixbuf($pix[1]), 1 =&gt; $group, 2 =&gt; 0 ]) }
++ }
++ $us-&gt;{o}{primgroup}-&gt;set_popdown_strings(@primgroup);
++ $Gent and $us-&gt;{o}{primgroup}-&gt;entry-&gt;set_text($Gent-&gt;GroupName($GetValue));
++ ($userEnt, $primgid, @primgroup);
++}
++
++sub GroupEdit_widget {
++ my ($nbG, $tree, $model, $groupname) = @_;
++ $nbG-&gt;set_size_request(300, 200);
++ gtkappend_page($nbG,
++ gtkpack_(Gtk2::VBox-&gt;new(0, 2),
++ 1, BuildGui()),
++ gtkshow(Gtk2::Label-&gt;new(N(&quot;Group Data&quot;))));
++ gtkappend_page($nbG,
++ gtkpack_(Gtk2::VBox-&gt;new(0, 1),
++ 0, Gtk2::Label-&gt;new(N(&quot;Select the users to join this group:&quot;)),
++ 1, create_scrolled_window($tree)),
++ gtkshow(Gtk2::Label-&gt;new(N(&quot;Group Users&quot;))));
++ $groupname = GetNameEntFromIter($grouptree, $gtree_model, 0);
++ $us-&gt;{o}{groupname}-&gt;set_text($groupname);
++ # Don't allow change on group name since there is a bug in lu_user_modify group
++ $us-&gt;{o}{groupname}-&gt;set_editable(0);
++ my $groupEnt = $ctx-&gt;LookupGroupByName($groupname);
++ my $users = $ctx-&gt;UsersEnumerate;
++ my @susers = sort(@$users);
++ my $members = $ctx-&gt;EnumerateUsersByGroup($groupname);
++ foreach my $user (@susers) {
++ if (member($user, @$members)) {
++ $model-&gt;append_set([ 0 =&gt; gtkcreate_pixbuf($pix[0]), 1 =&gt; $user, 2 =&gt; 1 ]);
++ } else {
++ $model-&gt;append_set([ 0 =&gt; gtkcreate_pixbuf($pix[1]), 1 =&gt; $user, 2 =&gt; 0 ]);
++ }
++ }
++ $groupEnt;
++}
++
++sub Edit() {
++ my $w = NewWindow(N(&quot;Edit Groups / Users&quot;));
++ my $model = Gtk2::ListStore-&gt;new(&quot;Gtk2::Gdk::Pixbuf&quot;, &quot;Glib::String&quot;, &quot;Glib::Int&quot;);
++ my $tree = Gtk2::TreeView-&gt;new_with_model($model);
++ my ($groupname, $groupEnt, $userEnt, $primgid, $Gent);
++ my @primgroup;
++ $tree-&gt;get_selection-&gt;set_mode('browse');
++ my $check = Gtk2::TreeViewColumn-&gt;new_with_attributes(undef, Gtk2::CellRendererPixbuf-&gt;new,
++ 'pixbuf' =&gt; 0);
++ $tree-&gt;append_column($check);
++ $check-&gt;{is_pixbuf_column} = 1;
++ $tree-&gt;append_column(Gtk2::TreeViewColumn-&gt;new_with_attributes(undef, Gtk2::CellRendererText-&gt;new,
++ 'text' =&gt; 1));
++ $tree-&gt;set_headers_visible(0);
++ my $p = $nb-&gt;get_current_page;
++ my $nbU = Gtk2::Notebook-&gt;new;
++ my $nbG = Gtk2::Notebook-&gt;new;
++ if ($p &lt;= 0) {
++ ($userEnt, $primgid, @primgroup) = UserEdit_widget($nbU, $tree, $model, $Gent);
++ } elsif ($p == 1) {
++ $groupEnt = GroupEdit_widget($nbG, $tree, $model, $groupname);
++ }
++ gtkpack_($w-&gt;vbox,
++ 1, !$p ? $nbU : $nbG);
++ gtkadd($w-&gt;action_area,
++ map {
++ my $retv = $_-&gt;[1];
++ gtksignal_connect(
++ Gtk2::Button-&gt;new($_-&gt;[0]), clicked =&gt; sub {
++ if (!$retv) {
++ if ($p &lt;= 0) {
++ eval { UserEdit_valid($userEnt, $model, $primgid) };
++ if (my $err = $@) {
++ c::set_tagged_utf8($err);
++ RaiseError(N(&quot;An error occurred:&quot;) . &quot;\n&quot; . $err);
++ }
++ } elsif ($p == 1) {
++ GroupEdit_valid($groupEnt, $model, $groupname);
++ }
++ }
++ !$error and $w-&gt;destroy; $error = 0 });
++ } ([ N(&quot;Cancel&quot;), 1 ], [ N(&quot;Ok&quot;), 0 ]),
++ );
++ $tree-&gt;show;
++ $w-&gt;show_all;
++ $tree-&gt;signal_connect(
++ button_press_event =&gt; sub {
++ my ($path, $column) = $tree-&gt;get_path_at_pos($_[1]-&gt;x, $_[1]-&gt;y);
++ if ($path &amp;&amp; $column) {
++ if ($column-&gt;{is_pixbuf_column}) {
++ my $iter = $model-&gt;get_iter($path);
++ if ($iter) {
++ my $cp = $model-&gt;get($iter, 2);
++ my $item = $model-&gt;get($iter, 1);
++ $model-&gt;set($iter, 0 =&gt; gtkcreate_pixbuf($pix[$cp]));
++ $model-&gt;set($iter, 2 =&gt; !$cp);
++ if ($p &lt;= 0) {
++ if (!$cp) {
++ !InArray($item, \@primgroup) and push(@primgroup, $item);
++ } else {
++ InArray($item, \@primgroup) and @primgroup = RemoveFromArray($item, \@primgroup);
++ }
++ $us-&gt;{o}{primgroup}-&gt;set_popdown_strings(@primgroup);
++ $Gent and $us-&gt;{o}{primgroup}-&gt;entry-&gt;set_text($Gent-&gt;GroupName($GetValue));
++ }
++ }
++ }
++ }
++ });
++ $tree-&gt;signal_connect(
++ key_press_event =&gt; sub {
++ my $c = chr($_[1]-&gt;keyval &amp; 0xff);
++ if ($_[1]-&gt;keyval &gt;= 0x100 ? $c eq &quot;\r&quot; || $c eq &quot;\x8d&quot; : $c eq ' ') {
++ my (undef, $iter) = $tree-&gt;get_selection-&gt;get_selected;
++ return unless $iter;
++ my $cp = $model-&gt;get($iter, 2);
++ my $item = $model-&gt;get($iter, 1);
++ $model-&gt;set($iter, 0 =&gt; gtkcreate_pixbuf($pix[$cp]));
++ $model-&gt;set($iter, 2 =&gt; !$cp);
++ if ($p &lt;= 0) {
++ if (!$cp) {
++ !InArray($item, \@primgroup) and push(@primgroup, $item);
++ } else {
++ InArray($item, \@primgroup) and @primgroup = RemoveFromArray($item, \@primgroup);
++ }
++ $us-&gt;{o}{primgroup}-&gt;set_popdown_strings(@primgroup);
++ $Gent and $us-&gt;{o}{primgroup}-&gt;entry-&gt;set_text($Gent-&gt;GroupName($GetValue));
++ }
++ }
++ 0;
++ });
++}
++
++sub ValidInt {
++ foreach my $i (@_) { $i =~ /\d+/ or return 0 }
++ return 1;
++}
++
++sub ConvTime {
++ my ($day, $month, $year) = @_;
++ my ($tm, $days, $mon, $yr);
++ $mon = $month - 1; $yr = $year - 1900;
++ $tm = POSIX::mktime(0, 0, 0, $day, $mon, $yr);
++ $days = ceil($tm / (24 * 60 * 60));
++ return $days;
++}
++
++sub TimeOfArray {
++ my ($reltime, $cm) = @_;
++ my $h; my %mth = (Jan =&gt; 1, Feb =&gt; 2, Mar =&gt; 3, Apr =&gt; 4, May =&gt; 5, Jun =&gt; 6, Jul =&gt; 7, Aug =&gt; 8, Sep =&gt; 9, Oct =&gt; 10, Nov =&gt; 11, Dec =&gt; 12);
++ my $_t = localtime($reltime * 24 * 60 * 60) =~ /(\S+)\s+(\S+)\s+(\d+)\s+(\S+)\s+(\d+)/;
++ $h-&gt;{daystr} = $1;
++ $h-&gt;{month} = $2;
++ $h-&gt;{dayint} = $3;
++ $h-&gt;{year} = $5;
++ $cm and $h-&gt;{month} = $mth{$2};
++ $h;
++}
++
++sub InArray {
++ my ($item, $arr) = @_;
++ return any { $item eq $_ } @$arr;
++}
++
++sub RemoveFromArray {
++ my ($item, $arr) = @_;
++ my ($t, $_s) = partition { $item ne $_ } @$arr;
++ return @$t;
++}
++
++sub GrayBox {
++ my ($o, $v, $m) = @_;
++ $v-&gt;set_sensitive($m);
++ $o-&gt;signal_connect('clicked' =&gt; sub { $m = !$m; $v-&gt;set_sensitive($m) });
++}
++
++sub NewDialog {
++ my ($title) = @_;
++ my $dialog = gtkset_border_width(
++ _create_dialog($title, { transient_for =&gt; $us-&gt;{wnd}{real_window} }),
++ 5);
++ $dialog-&gt;action_area-&gt;pack_start(
++ gtksignal_connect(Gtk2::Button-&gt;new(N(&quot;Close&quot;)), clicked =&gt; sub { $dialog-&gt;destroy }),
++ 0,0,0);
++ $dialog;
++}
++
++sub About() {
++ my $license = formatAlaTeX(translate($::license));
++ $license =~ s/\n/\n\n/sg; # nicer formatting
++ my $w = gtknew('AboutDialog', name =&gt; N(&quot;Userdrake&quot;),
++ version =&gt; $us-&gt;{VERSION},
++ copyright =&gt; N(&quot;Copyright (C) %s by Mandriva&quot;, '2001-2009') . &quot;\n&quot; . N(&quot;Copyright (C) %s by Mageia&quot;, '2011'),
++ if_(-r &quot;$pixdir/userdrake.png&quot;, logo =&gt; &quot;$pixdir/userdrake.png&quot;),
++ license =&gt; $license, wrap_license =&gt; 1,
++ comments =&gt; N(&quot;Users Management&quot;),
++ website =&gt; 'http://www.mageia.org',
++ website_label =&gt; N(&quot;Mageia&quot;),
++ authors =&gt; 'Daouda Lo
++Thierry Vignaud &lt;tvignaud@mandriva.com&gt;',
++ artists =&gt; 'Hélène Durosini &lt;ln@mandriva.com&gt;',
++ translator_credits =&gt;
++ #-PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++ N(&quot;_: Translator(s) name(s) &amp; email(s)\n&quot;),
++ );
++ $w-&gt;show_all;
++ $w-&gt;run;
++}
++
++sub valid {
++ $_[0] or $us-&gt;{error} = N(&quot;Name field is empty please provide a name&quot;), return 0;
++ $_[0] =~ /^[a-z]+?[a-z0-9_-]*?$/ or do {
++ $us-&gt;{error} = N(&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;);
++ return 0;
++ };
++ length($_[0]) &lt;= $_[1] or $us-&gt;{error} = N(&quot;Name is too long&quot;), return 0;
++ return 1;
++}
++
++sub valid_username {
++ return valid($_[0], 32);
++}
++
++sub valid_groupname {
++ return valid($_[0], 16);
++}
++
++sub RaiseError {
++ my $w = NewWindow(N(&quot;Error&quot;));
++ $error = 1;
++ gtkpack($w-&gt;vbox, Gtk2::Label-&gt;new($_[0]));
++ gtkadd($w-&gt;action_area,
++ gtksignal_connect(Gtk2::Button-&gt;new(N(&quot;Ok&quot;)),
++ clicked =&gt; sub { $w-&gt;destroy })
++ );
++ $w-&gt;show_all;
++}
++
++sub QuitGlobal() {
++ setVarsInSh($conffile, {
++ FILTER =&gt; bool2text($sysfilter),
++ });
++ Gtk2-&gt;main_quit;
++}
+
+
+Property changes on: userdrake2/tags/1.13.3/userdrake
+___________________________________________________________________
+<a id="svnexecutable">Added: svn:executable</a>
+ + *
+
+<a id="userdrake2tags1133userdrakeprefs">Added: userdrake2/tags/1.13.3/userdrake.prefs</a>
+===================================================================
+--- userdrake2/tags/1.13.3/userdrake.prefs (rev 0)
++++ userdrake2/tags/1.13.3/userdrake.prefs 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,5 @@
++#Configuration file for userdrake2
++#Copyright (c) 2003 MandrakeSoft SA. all rights reserved
++
++#Filter out sytem users by default
++FILTER=true
+\ No newline at end of file
+
+</pre></div>
+
+</body>
+</html> \ No newline at end of file
diff --git a/zarb-ml/mageia-sysadm/attachments/20110207/55e270af/attachment.html b/zarb-ml/mageia-sysadm/attachments/20110207/55e270af/attachment.html
new file mode 100644
index 000000000..7cea6437f
--- /dev/null
+++ b/zarb-ml/mageia-sysadm/attachments/20110207/55e270af/attachment.html
@@ -0,0 +1,70266 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>[475] tag 1.13.3</title>
+</head>
+<body>
+
+<style type="text/css"><!--
+#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
+#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
+#msg dt:after { content:':';}
+#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
+#msg dl a { font-weight: bold}
+#msg dl a:link { color:#fc3; }
+#msg dl a:active { color:#ff0; }
+#msg dl a:visited { color:#cc6; }
+h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
+#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
+#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
+#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
+#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
+#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
+#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
+#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
+#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
+#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
+#logmsg pre { background: #eee; padding: 1em; }
+#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
+#logmsg dl { margin: 0; }
+#logmsg dt { font-weight: bold; }
+#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
+#logmsg dd:before { content:'\00bb';}
+#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
+#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
+#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
+#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
+#logmsg table th.Corner { text-align: left; }
+#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
+#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
+#patch { width: 100%; }
+--></style>
+<div id="msg">
+<dl class="meta">
+<dt>Revision</dt> <dd>475</dd>
+<dt>Author</dt> <dd>dmorgan</dd>
+<dt>Date</dt> <dd>2011-02-07 12:58:29 +0100 (Mon, 07 Feb 2011)</dd>
+</dl>
+
+<h3>Log Message</h3>
+<pre>tag 1.13.3</pre>
+
+<h3>Added Paths</h3>
+<ul>
+<li>userdrake2/tags/1.13.3/</li>
+<li><a href="#userdrake2tags1133perl_checker">userdrake2/tags/1.13.3/.perl_checker</a></li>
+<li><a href="#userdrake2tags1133AUTHORS">userdrake2/tags/1.13.3/AUTHORS</a></li>
+<li><a href="#userdrake2tags1133COPYING">userdrake2/tags/1.13.3/COPYING</a></li>
+<li><a href="#userdrake2tags1133ChangeLog">userdrake2/tags/1.13.3/ChangeLog</a></li>
+<li><a href="#userdrake2tags1133Makefile">userdrake2/tags/1.13.3/Makefile</a></li>
+<li><a href="#userdrake2tags1133NEWS">userdrake2/tags/1.13.3/NEWS</a></li>
+<li><a href="#userdrake2tags1133README">userdrake2/tags/1.13.3/README</a></li>
+<li><a href="#userdrake2tags1133RELEASE_NOTES">userdrake2/tags/1.13.3/RELEASE_NOTES</a></li>
+<li>userdrake2/tags/1.13.3/USER/</li>
+<li><a href="#userdrake2tags1133USERChanges">userdrake2/tags/1.13.3/USER/Changes</a></li>
+<li><a href="#userdrake2tags1133USERMakefilePL">userdrake2/tags/1.13.3/USER/Makefile.PL</a></li>
+<li><a href="#userdrake2tags1133USERREADME">userdrake2/tags/1.13.3/USER/README</a></li>
+<li><a href="#userdrake2tags1133USERUSERpm">userdrake2/tags/1.13.3/USER/USER.pm</a></li>
+<li><a href="#userdrake2tags1133USERUSERxs">userdrake2/tags/1.13.3/USER/USER.xs</a></li>
+<li><a href="#userdrake2tags1133USERppporth">userdrake2/tags/1.13.3/USER/ppport.h</a></li>
+<li><a href="#userdrake2tags1133USERtypemap">userdrake2/tags/1.13.3/USER/typemap</a></li>
+<li>userdrake2/tags/1.13.3/icons/</li>
+<li><a href="#userdrake2tags1133iconsselectedpng">userdrake2/tags/1.13.3/icons/selected.png</a></li>
+<li><a href="#userdrake2tags1133iconsunselectedpng">userdrake2/tags/1.13.3/icons/unselected.png</a></li>
+<li><a href="#userdrake2tags1133iconsuserdrake16png">userdrake2/tags/1.13.3/icons/userdrake16.png</a></li>
+<li><a href="#userdrake2tags1133iconsuserdrake32png">userdrake2/tags/1.13.3/icons/userdrake32.png</a></li>
+<li><a href="#userdrake2tags1133iconsuserdrake48png">userdrake2/tags/1.13.3/icons/userdrake48.png</a></li>
+<li><a href="#userdrake2tags1133perlobjectmap">userdrake2/tags/1.13.3/perlobject.map</a></li>
+<li>userdrake2/tags/1.13.3/pixmaps/</li>
+<li><a href="#userdrake2tags1133pixmapsgroup_addpng">userdrake2/tags/1.13.3/pixmaps/group_add.png</a></li>
+<li><a href="#userdrake2tags1133pixmapshelppng">userdrake2/tags/1.13.3/pixmaps/help.png</a></li>
+<li><a href="#userdrake2tags1133pixmapsredhatconfiguserspng">userdrake2/tags/1.13.3/pixmaps/redhat-config-users.png</a></li>
+<li><a href="#userdrake2tags1133pixmapsrefreshpng">userdrake2/tags/1.13.3/pixmaps/refresh.png</a></li>
+<li><a href="#userdrake2tags1133pixmapsuser_addpng">userdrake2/tags/1.13.3/pixmaps/user_add.png</a></li>
+<li><a href="#userdrake2tags1133pixmapsuser_confpng">userdrake2/tags/1.13.3/pixmaps/user_conf.png</a></li>
+<li><a href="#userdrake2tags1133pixmapsuser_delpng">userdrake2/tags/1.13.3/pixmaps/user_del.png</a></li>
+<li><a href="#userdrake2tags1133pixmapsuserdrakepng">userdrake2/tags/1.13.3/pixmaps/userdrake.png</a></li>
+<li>userdrake2/tags/1.13.3/po/</li>
+<li><a href="#userdrake2tags1133poMakefile">userdrake2/tags/1.13.3/po/Makefile</a></li>
+<li><a href="#userdrake2tags1133poPOTFILESin">userdrake2/tags/1.13.3/po/POTFILES.in</a></li>
+<li><a href="#userdrake2tags1133poafpo">userdrake2/tags/1.13.3/po/af.po</a></li>
+<li><a href="#userdrake2tags1133poampo">userdrake2/tags/1.13.3/po/am.po</a></li>
+<li><a href="#userdrake2tags1133poarpo">userdrake2/tags/1.13.3/po/ar.po</a></li>
+<li><a href="#userdrake2tags1133poastpo">userdrake2/tags/1.13.3/po/ast.po</a></li>
+<li><a href="#userdrake2tags1133poazpo">userdrake2/tags/1.13.3/po/az.po</a></li>
+<li><a href="#userdrake2tags1133pobepo">userdrake2/tags/1.13.3/po/be.po</a></li>
+<li><a href="#userdrake2tags1133pobgpo">userdrake2/tags/1.13.3/po/bg.po</a></li>
+<li><a href="#userdrake2tags1133pobnpo">userdrake2/tags/1.13.3/po/bn.po</a></li>
+<li><a href="#userdrake2tags1133pobrpo">userdrake2/tags/1.13.3/po/br.po</a></li>
+<li><a href="#userdrake2tags1133pobspo">userdrake2/tags/1.13.3/po/bs.po</a></li>
+<li><a href="#userdrake2tags1133pocapo">userdrake2/tags/1.13.3/po/ca.po</a></li>
+<li><a href="#userdrake2tags1133pocspo">userdrake2/tags/1.13.3/po/cs.po</a></li>
+<li><a href="#userdrake2tags1133pocypo">userdrake2/tags/1.13.3/po/cy.po</a></li>
+<li><a href="#userdrake2tags1133podapo">userdrake2/tags/1.13.3/po/da.po</a></li>
+<li><a href="#userdrake2tags1133podepo">userdrake2/tags/1.13.3/po/de.po</a></li>
+<li><a href="#userdrake2tags1133poelpo">userdrake2/tags/1.13.3/po/el.po</a></li>
+<li><a href="#userdrake2tags1133poeopo">userdrake2/tags/1.13.3/po/eo.po</a></li>
+<li><a href="#userdrake2tags1133poespo">userdrake2/tags/1.13.3/po/es.po</a></li>
+<li><a href="#userdrake2tags1133poetpo">userdrake2/tags/1.13.3/po/et.po</a></li>
+<li><a href="#userdrake2tags1133poeupo">userdrake2/tags/1.13.3/po/eu.po</a></li>
+<li><a href="#userdrake2tags1133pofapo">userdrake2/tags/1.13.3/po/fa.po</a></li>
+<li><a href="#userdrake2tags1133pofipo">userdrake2/tags/1.13.3/po/fi.po</a></li>
+<li><a href="#userdrake2tags1133pofrpo">userdrake2/tags/1.13.3/po/fr.po</a></li>
+<li><a href="#userdrake2tags1133pofurpo">userdrake2/tags/1.13.3/po/fur.po</a></li>
+<li><a href="#userdrake2tags1133pogapo">userdrake2/tags/1.13.3/po/ga.po</a></li>
+<li><a href="#userdrake2tags1133poglpo">userdrake2/tags/1.13.3/po/gl.po</a></li>
+<li><a href="#userdrake2tags1133pohepo">userdrake2/tags/1.13.3/po/he.po</a></li>
+<li><a href="#userdrake2tags1133pohipo">userdrake2/tags/1.13.3/po/hi.po</a></li>
+<li><a href="#userdrake2tags1133pohrpo">userdrake2/tags/1.13.3/po/hr.po</a></li>
+<li><a href="#userdrake2tags1133pohupo">userdrake2/tags/1.13.3/po/hu.po</a></li>
+<li><a href="#userdrake2tags1133pohypo">userdrake2/tags/1.13.3/po/hy.po</a></li>
+<li><a href="#userdrake2tags1133poidpo">userdrake2/tags/1.13.3/po/id.po</a></li>
+<li><a href="#userdrake2tags1133poispo">userdrake2/tags/1.13.3/po/is.po</a></li>
+<li><a href="#userdrake2tags1133poitpo">userdrake2/tags/1.13.3/po/it.po</a></li>
+<li><a href="#userdrake2tags1133pojapo">userdrake2/tags/1.13.3/po/ja.po</a></li>
+<li><a href="#userdrake2tags1133pokapo">userdrake2/tags/1.13.3/po/ka.po</a></li>
+<li><a href="#userdrake2tags1133pokopo">userdrake2/tags/1.13.3/po/ko.po</a></li>
+<li><a href="#userdrake2tags1133pokupo">userdrake2/tags/1.13.3/po/ku.po</a></li>
+<li><a href="#userdrake2tags1133pokypo">userdrake2/tags/1.13.3/po/ky.po</a></li>
+<li><a href="#userdrake2tags1133polopo">userdrake2/tags/1.13.3/po/lo.po</a></li>
+<li><a href="#userdrake2tags1133poltpo">userdrake2/tags/1.13.3/po/lt.po</a></li>
+<li><a href="#userdrake2tags1133poltgpo">userdrake2/tags/1.13.3/po/ltg.po</a></li>
+<li><a href="#userdrake2tags1133polvpo">userdrake2/tags/1.13.3/po/lv.po</a></li>
+<li><a href="#userdrake2tags1133pomkpo">userdrake2/tags/1.13.3/po/mk.po</a></li>
+<li><a href="#userdrake2tags1133pomnpo">userdrake2/tags/1.13.3/po/mn.po</a></li>
+<li><a href="#userdrake2tags1133pomspo">userdrake2/tags/1.13.3/po/ms.po</a></li>
+<li><a href="#userdrake2tags1133pomtpo">userdrake2/tags/1.13.3/po/mt.po</a></li>
+<li><a href="#userdrake2tags1133ponbpo">userdrake2/tags/1.13.3/po/nb.po</a></li>
+<li><a href="#userdrake2tags1133ponlpo">userdrake2/tags/1.13.3/po/nl.po</a></li>
+<li><a href="#userdrake2tags1133ponnpo">userdrake2/tags/1.13.3/po/nn.po</a></li>
+<li><a href="#userdrake2tags1133popa_INpo">userdrake2/tags/1.13.3/po/pa_IN.po</a></li>
+<li><a href="#userdrake2tags1133poplpo">userdrake2/tags/1.13.3/po/pl.po</a></li>
+<li><a href="#userdrake2tags1133poptpo">userdrake2/tags/1.13.3/po/pt.po</a></li>
+<li><a href="#userdrake2tags1133popt_BRpo">userdrake2/tags/1.13.3/po/pt_BR.po</a></li>
+<li><a href="#userdrake2tags1133poropo">userdrake2/tags/1.13.3/po/ro.po</a></li>
+<li><a href="#userdrake2tags1133porupo">userdrake2/tags/1.13.3/po/ru.po</a></li>
+<li><a href="#userdrake2tags1133poscpo">userdrake2/tags/1.13.3/po/sc.po</a></li>
+<li><a href="#userdrake2tags1133poskpo">userdrake2/tags/1.13.3/po/sk.po</a></li>
+<li><a href="#userdrake2tags1133poslpo">userdrake2/tags/1.13.3/po/sl.po</a></li>
+<li><a href="#userdrake2tags1133posqpo">userdrake2/tags/1.13.3/po/sq.po</a></li>
+<li><a href="#userdrake2tags1133posrpo">userdrake2/tags/1.13.3/po/sr.po</a></li>
+<li><a href="#userdrake2tags1133posrLatnpo">userdrake2/tags/1.13.3/po/sr@Latn.po</a></li>
+<li><a href="#userdrake2tags1133posvpo">userdrake2/tags/1.13.3/po/sv.po</a></li>
+<li><a href="#userdrake2tags1133potapo">userdrake2/tags/1.13.3/po/ta.po</a></li>
+<li><a href="#userdrake2tags1133potgpo">userdrake2/tags/1.13.3/po/tg.po</a></li>
+<li><a href="#userdrake2tags1133pothpo">userdrake2/tags/1.13.3/po/th.po</a></li>
+<li><a href="#userdrake2tags1133potlpo">userdrake2/tags/1.13.3/po/tl.po</a></li>
+<li><a href="#userdrake2tags1133potrpo">userdrake2/tags/1.13.3/po/tr.po</a></li>
+<li><a href="#userdrake2tags1133poukpo">userdrake2/tags/1.13.3/po/uk.po</a></li>
+<li><a href="#userdrake2tags1133pouserdrakepot">userdrake2/tags/1.13.3/po/userdrake.pot</a></li>
+<li><a href="#userdrake2tags1133pouzpo">userdrake2/tags/1.13.3/po/uz.po</a></li>
+<li><a href="#userdrake2tags1133pouzcyrillicpo">userdrake2/tags/1.13.3/po/uz@cyrillic.po</a></li>
+<li><a href="#userdrake2tags1133povipo">userdrake2/tags/1.13.3/po/vi.po</a></li>
+<li><a href="#userdrake2tags1133powapo">userdrake2/tags/1.13.3/po/wa.po</a></li>
+<li><a href="#userdrake2tags1133pozh_CNpo">userdrake2/tags/1.13.3/po/zh_CN.po</a></li>
+<li><a href="#userdrake2tags1133pozh_TWpo">userdrake2/tags/1.13.3/po/zh_TW.po</a></li>
+<li><a href="#userdrake2tags1133todo">userdrake2/tags/1.13.3/todo</a></li>
+<li><a href="#userdrake2tags1133userdrake">userdrake2/tags/1.13.3/userdrake</a></li>
+<li><a href="#userdrake2tags1133userdrakeprefs">userdrake2/tags/1.13.3/userdrake.prefs</a></li>
+</ul>
+
+</div>
+<div id="patch"><pre>
+<a id="userdrake2tags1133perl_checker">Added: userdrake2/tags/1.13.3/.perl_checker</a>
+===================================================================
+--- userdrake2/tags/1.13.3/.perl_checker (rev 0)
++++ userdrake2/tags/1.13.3/.perl_checker 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,13 @@
++AutoLoader
++Carp::Heavy
++constant
++Digest::base
++Encode
++File::FnMatch
++File::Path
++File::Sync
++Gtk2::Gdk::Keysyms
++IO::Handle
++Text::ParseWords
++XSLoader
++do_pkgs
+
+<a id="userdrake2tags1133AUTHORS">Added: userdrake2/tags/1.13.3/AUTHORS</a>
+===================================================================
+--- userdrake2/tags/1.13.3/AUTHORS (rev 0)
++++ userdrake2/tags/1.13.3/AUTHORS 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1 @@
++Daouda LO &lt;daouda@mandrakesoft.com&gt;
+\ No newline at end of file
+
+<a id="userdrake2tags1133COPYING">Added: userdrake2/tags/1.13.3/COPYING</a>
+===================================================================
+--- userdrake2/tags/1.13.3/COPYING (rev 0)
++++ userdrake2/tags/1.13.3/COPYING 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,340 @@
++ GNU GENERAL PUBLIC LICENSE
++ Version 2, June 1991
++
++ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
++ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ Everyone is permitted to copy and distribute verbatim copies
++ of this license document, but changing it is not allowed.
++
++ Preamble
++
++ The licenses for most software are designed to take away your
++freedom to share and change it. By contrast, the GNU General Public
++License is intended to guarantee your freedom to share and change free
++software--to make sure the software is free for all its users. This
++General Public License applies to most of the Free Software
++Foundation's software and to any other program whose authors commit to
++using it. (Some other Free Software Foundation software is covered by
++the GNU Library General Public License instead.) You can apply it to
++your programs, too.
++
++ When we speak of free software, we are referring to freedom, not
++price. Our General Public Licenses are designed to make sure that you
++have the freedom to distribute copies of free software (and charge for
++this service if you wish), that you receive source code or can get it
++if you want it, that you can change the software or use pieces of it
++in new free programs; and that you know you can do these things.
++
++ To protect your rights, we need to make restrictions that forbid
++anyone to deny you these rights or to ask you to surrender the rights.
++These restrictions translate to certain responsibilities for you if you
++distribute copies of the software, or if you modify it.
++
++ For example, if you distribute copies of such a program, whether
++gratis or for a fee, you must give the recipients all the rights that
++you have. You must make sure that they, too, receive or can get the
++source code. And you must show them these terms so they know their
++rights.
++
++ We protect your rights with two steps: (1) copyright the software, and
++(2) offer you this license which gives you legal permission to copy,
++distribute and/or modify the software.
++
++ Also, for each author's protection and ours, we want to make certain
++that everyone understands that there is no warranty for this free
++software. If the software is modified by someone else and passed on, we
++want its recipients to know that what they have is not the original, so
++that any problems introduced by others will not reflect on the original
++authors' reputations.
++
++ Finally, any free program is threatened constantly by software
++patents. We wish to avoid the danger that redistributors of a free
++program will individually obtain patent licenses, in effect making the
++program proprietary. To prevent this, we have made it clear that any
++patent must be licensed for everyone's free use or not licensed at all.
++
++ The precise terms and conditions for copying, distribution and
++modification follow.
++
++ GNU GENERAL PUBLIC LICENSE
++ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
++
++ 0. This License applies to any program or other work which contains
++a notice placed by the copyright holder saying it may be distributed
++under the terms of this General Public License. The &quot;Program&quot;, below,
++refers to any such program or work, and a &quot;work based on the Program&quot;
++means either the Program or any derivative work under copyright law:
++that is to say, a work containing the Program or a portion of it,
++either verbatim or with modifications and/or translated into another
++language. (Hereinafter, translation is included without limitation in
++the term &quot;modification&quot;.) Each licensee is addressed as &quot;you&quot;.
++
++Activities other than copying, distribution and modification are not
++covered by this License; they are outside its scope. The act of
++running the Program is not restricted, and the output from the Program
++is covered only if its contents constitute a work based on the
++Program (independent of having been made by running the Program).
++Whether that is true depends on what the Program does.
++
++ 1. You may copy and distribute verbatim copies of the Program's
++source code as you receive it, in any medium, provided that you
++conspicuously and appropriately publish on each copy an appropriate
++copyright notice and disclaimer of warranty; keep intact all the
++notices that refer to this License and to the absence of any warranty;
++and give any other recipients of the Program a copy of this License
++along with the Program.
++
++You may charge a fee for the physical act of transferring a copy, and
++you may at your option offer warranty protection in exchange for a fee.
++
++ 2. You may modify your copy or copies of the Program or any portion
++of it, thus forming a work based on the Program, and copy and
++distribute such modifications or work under the terms of Section 1
++above, provided that you also meet all of these conditions:
++
++ a) You must cause the modified files to carry prominent notices
++ stating that you changed the files and the date of any change.
++
++ b) You must cause any work that you distribute or publish, that in
++ whole or in part contains or is derived from the Program or any
++ part thereof, to be licensed as a whole at no charge to all third
++ parties under the terms of this License.
++
++ c) If the modified program normally reads commands interactively
++ when run, you must cause it, when started running for such
++ interactive use in the most ordinary way, to print or display an
++ announcement including an appropriate copyright notice and a
++ notice that there is no warranty (or else, saying that you provide
++ a warranty) and that users may redistribute the program under
++ these conditions, and telling the user how to view a copy of this
++ License. (Exception: if the Program itself is interactive but
++ does not normally print such an announcement, your work based on
++ the Program is not required to print an announcement.)
++
++These requirements apply to the modified work as a whole. If
++identifiable sections of that work are not derived from the Program,
++and can be reasonably considered independent and separate works in
++themselves, then this License, and its terms, do not apply to those
++sections when you distribute them as separate works. But when you
++distribute the same sections as part of a whole which is a work based
++on the Program, the distribution of the whole must be on the terms of
++this License, whose permissions for other licensees extend to the
++entire whole, and thus to each and every part regardless of who wrote it.
++
++Thus, it is not the intent of this section to claim rights or contest
++your rights to work written entirely by you; rather, the intent is to
++exercise the right to control the distribution of derivative or
++collective works based on the Program.
++
++In addition, mere aggregation of another work not based on the Program
++with the Program (or with a work based on the Program) on a volume of
++a storage or distribution medium does not bring the other work under
++the scope of this License.
++
++ 3. You may copy and distribute the Program (or a work based on it,
++under Section 2) in object code or executable form under the terms of
++Sections 1 and 2 above provided that you also do one of the following:
++
++ a) Accompany it with the complete corresponding machine-readable
++ source code, which must be distributed under the terms of Sections
++ 1 and 2 above on a medium customarily used for software interchange; or,
++
++ b) Accompany it with a written offer, valid for at least three
++ years, to give any third party, for a charge no more than your
++ cost of physically performing source distribution, a complete
++ machine-readable copy of the corresponding source code, to be
++ distributed under the terms of Sections 1 and 2 above on a medium
++ customarily used for software interchange; or,
++
++ c) Accompany it with the information you received as to the offer
++ to distribute corresponding source code. (This alternative is
++ allowed only for noncommercial distribution and only if you
++ received the program in object code or executable form with such
++ an offer, in accord with Subsection b above.)
++
++The source code for a work means the preferred form of the work for
++making modifications to it. For an executable work, complete source
++code means all the source code for all modules it contains, plus any
++associated interface definition files, plus the scripts used to
++control compilation and installation of the executable. However, as a
++special exception, the source code distributed need not include
++anything that is normally distributed (in either source or binary
++form) with the major components (compiler, kernel, and so on) of the
++operating system on which the executable runs, unless that component
++itself accompanies the executable.
++
++If distribution of executable or object code is made by offering
++access to copy from a designated place, then offering equivalent
++access to copy the source code from the same place counts as
++distribution of the source code, even though third parties are not
++compelled to copy the source along with the object code.
++
++ 4. You may not copy, modify, sublicense, or distribute the Program
++except as expressly provided under this License. Any attempt
++otherwise to copy, modify, sublicense or distribute the Program is
++void, and will automatically terminate your rights under this License.
++However, parties who have received copies, or rights, from you under
++this License will not have their licenses terminated so long as such
++parties remain in full compliance.
++
++ 5. You are not required to accept this License, since you have not
++signed it. However, nothing else grants you permission to modify or
++distribute the Program or its derivative works. These actions are
++prohibited by law if you do not accept this License. Therefore, by
++modifying or distributing the Program (or any work based on the
++Program), you indicate your acceptance of this License to do so, and
++all its terms and conditions for copying, distributing or modifying
++the Program or works based on it.
++
++ 6. Each time you redistribute the Program (or any work based on the
++Program), the recipient automatically receives a license from the
++original licensor to copy, distribute or modify the Program subject to
++these terms and conditions. You may not impose any further
++restrictions on the recipients' exercise of the rights granted herein.
++You are not responsible for enforcing compliance by third parties to
++this License.
++
++ 7. If, as a consequence of a court judgment or allegation of patent
++infringement or for any other reason (not limited to patent issues),
++conditions are imposed on you (whether by court order, agreement or
++otherwise) that contradict the conditions of this License, they do not
++excuse you from the conditions of this License. If you cannot
++distribute so as to satisfy simultaneously your obligations under this
++License and any other pertinent obligations, then as a consequence you
++may not distribute the Program at all. For example, if a patent
++license would not permit royalty-free redistribution of the Program by
++all those who receive copies directly or indirectly through you, then
++the only way you could satisfy both it and this License would be to
++refrain entirely from distribution of the Program.
++
++If any portion of this section is held invalid or unenforceable under
++any particular circumstance, the balance of the section is intended to
++apply and the section as a whole is intended to apply in other
++circumstances.
++
++It is not the purpose of this section to induce you to infringe any
++patents or other property right claims or to contest validity of any
++such claims; this section has the sole purpose of protecting the
++integrity of the free software distribution system, which is
++implemented by public license practices. Many people have made
++generous contributions to the wide range of software distributed
++through that system in reliance on consistent application of that
++system; it is up to the author/donor to decide if he or she is willing
++to distribute software through any other system and a licensee cannot
++impose that choice.
++
++This section is intended to make thoroughly clear what is believed to
++be a consequence of the rest of this License.
++
++ 8. If the distribution and/or use of the Program is restricted in
++certain countries either by patents or by copyrighted interfaces, the
++original copyright holder who places the Program under this License
++may add an explicit geographical distribution limitation excluding
++those countries, so that distribution is permitted only in or among
++countries not thus excluded. In such case, this License incorporates
++the limitation as if written in the body of this License.
++
++ 9. The Free Software Foundation may publish revised and/or new versions
++of the General Public License from time to time. Such new versions will
++be similar in spirit to the present version, but may differ in detail to
++address new problems or concerns.
++
++Each version is given a distinguishing version number. If the Program
++specifies a version number of this License which applies to it and &quot;any
++later version&quot;, you have the option of following the terms and conditions
++either of that version or of any later version published by the Free
++Software Foundation. If the Program does not specify a version number of
++this License, you may choose any version ever published by the Free Software
++Foundation.
++
++ 10. If you wish to incorporate parts of the Program into other free
++programs whose distribution conditions are different, write to the author
++to ask for permission. For software which is copyrighted by the Free
++Software Foundation, write to the Free Software Foundation; we sometimes
++make exceptions for this. Our decision will be guided by the two goals
++of preserving the free status of all derivatives of our free software and
++of promoting the sharing and reuse of software generally.
++
++ NO WARRANTY
++
++ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
++FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
++OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
++PROVIDE THE PROGRAM &quot;AS IS&quot; WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
++OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
++MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
++TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
++PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
++REPAIR OR CORRECTION.
++
++ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
++WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
++REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
++INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
++OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
++TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
++YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
++PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
++POSSIBILITY OF SUCH DAMAGES.
++
++ END OF TERMS AND CONDITIONS
++
++ How to Apply These Terms to Your New Programs
++
++ If you develop a new program, and you want it to be of the greatest
++possible use to the public, the best way to achieve this is to make it
++free software which everyone can redistribute and change under these terms.
++
++ To do so, attach the following notices to the program. It is safest
++to attach them to the start of each source file to most effectively
++convey the exclusion of warranty; and each file should have at least
++the &quot;copyright&quot; line and a pointer to where the full notice is found.
++
++ &lt;one line to give the program's name and a brief idea of what it does.&gt;
++ Copyright (C) &lt;year&gt; &lt;name of author&gt;
++
++ This program is free software; you can redistribute it and/or modify
++ it under the terms of the GNU General Public License as published by
++ the Free Software Foundation; either version 2 of the License, or
++ (at your option) any later version.
++
++ This program is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ GNU General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program; if not, write to the Free Software
++ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++
++
++Also add information on how to contact you by electronic and paper mail.
++
++If the program is interactive, make it output a short notice like this
++when it starts in an interactive mode:
++
++ Gnomovision version 69, Copyright (C) year name of author
++ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
++ This is free software, and you are welcome to redistribute it
++ under certain conditions; type `show c' for details.
++
++The hypothetical commands `show w' and `show c' should show the appropriate
++parts of the General Public License. Of course, the commands you use may
++be called something other than `show w' and `show c'; they could even be
++mouse-clicks or menu items--whatever suits your program.
++
++You should also get your employer (if you work as a programmer) or your
++school, if any, to sign a &quot;copyright disclaimer&quot; for the program, if
++necessary. Here is a sample; alter the names:
++
++ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
++ `Gnomovision' (which makes passes at compilers) written by James Hacker.
++
++ &lt;signature of Ty Coon&gt;, 1 April 1989
++ Ty Coon, President of Vice
++
++This General Public License does not permit incorporating your program into
++proprietary programs. If your program is a subroutine library, you may
++consider it more useful to permit linking proprietary applications with the
++library. If this is what you want to do, use the GNU Library General
++Public License instead of this License.
+
+<a id="userdrake2tags1133ChangeLog">Added: userdrake2/tags/1.13.3/ChangeLog</a>
+===================================================================
+--- userdrake2/tags/1.13.3/ChangeLog (rev 0)
++++ userdrake2/tags/1.13.3/ChangeLog 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,3762 @@
++2009-03-28 08:37 gustav
++
++ * po/bg.po: update translation for Bulgarian language
++
++2009-03-26 20:36 Andrea Celli &lt;andrea.celli at libero.it&gt;
++
++ * po/it.po: update translation for Italian
++
++2009-03-17 20:20 cfrussen
++
++ * po/ro.po: Completely updated &amp; revised Romanian translation
++
++2009-03-13 14:11 olorin
++
++ * po/nb.po: update for Norwegian Bokmål translation
++
++2009-03-12 18:47 Pjetur G. Hjaltason &lt;pjetur at pjetur.net&gt;
++
++ * po/is.po: Latest translations and updates
++
++2009-01-09 12:46 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * .perl_checker: update perl_checker blacklist
++
++2009-01-09 12:22 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: (CreateTree) make it more readable (needed for next
++ commit)
++
++2009-01-09 12:15 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * NEWS, userdrake: (GetFaceIcon) do not crash if some face images
++ are missing (#45024)
++
++2008-11-22 13:39 Ilyas Bakirov &lt;just_ilyas at yahoo.com&gt;
++
++ * po/ky.po: update translation for kirghiz language
++
++2008-09-22 20:33 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * Makefile: 1.8
++
++2008-09-22 20:33 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * Makefile: 1.8
++
++2008-09-16 15:10 Sharuzzaman Ahmat Raslan &lt;sharuzzaman at myrealbox.com&gt;
++
++ * po/ms.po: Updated Malay translation
++
++2008-06-10 10:29 Сергій Рибалченко (Sergey Ribalchenko) &lt;fisher at obu.ck.ua&gt;
++
++ * po/uk.po: uk translation update
++
++2008-04-20 12:00 nikos
++
++ * po/el.po: greek (el) translation update by Dimitris
++
++2008-04-03 07:40 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * Makefile: 1.7
++
++2008-03-30 21:28 Arpad Biro &lt;biro_arpad at yahoo.com&gt;
++
++ * po/hu.po: update
++
++2008-03-30 21:28 Arpad Biro &lt;biro_arpad at yahoo.com&gt;
++
++ * po/hu.po: update
++
++2008-03-30 16:09 unho
++
++ * po/gl.po: update translation for galician
++
++2008-03-29 19:05 unho
++
++ * po/gl.po: update translation for galician
++
++2008-03-29 15:58 Sharuzzaman Ahmat Raslan &lt;sharuzzaman at myrealbox.com&gt;
++
++ * po/ms.po: Updated Malay translation
++
++2008-03-29 00:45 unho
++
++ * po/gl.po: update translation for galician
++
++2008-03-28 19:33 kazancas
++
++ * po/ru.po: update translation on ru
++
++2008-03-25 22:01 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * Makefile: 1.6
++
++2008-03-25 22:01 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * ChangeLog: update
++
++2008-03-25 16:50 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/ro.po: update (Pîrîu Cristian Ionuţ)
++
++2008-03-25 16:50 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/ro.po: update (Pîrîu Cristian Ionuţ)
++
++2008-03-20 13:50 Karl Ove Hufthammer &lt;karl at huftis.org&gt;
++
++ * po/nn.po: Updated Norwegian Nynorsk translation.
++
++2008-03-14 10:35 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/de.po: update (Nicolas Bauer)
++
++2008-03-14 10:34 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/Makefile: (update_n_merge) split it out of (merge) ; now
++ (merge) only update po w/o updating main pot file
++
++2008-03-10 19:07 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * ChangeLog: update
++
++2008-03-10 19:07 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * Makefile: (tar) compress with lzma
++
++2008-03-10 19:07 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * Makefile: (tar) no big temporary file
++
++2008-03-10 19:07 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * Makefile: 1.5
++
++2008-03-07 14:40 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/eo.po: update (Wilhelm Luttermann)
++
++2008-03-07 14:40 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/eo.po: update (Wilhelm Luttermann)
++
++2008-02-27 18:54 thomas
++
++ * po/sv.po: update Swedish translation
++
++2008-02-02 08:55 Inigo Salvador Azurmendi &lt;xalba at euskalnet.net&gt;
++
++ * po/eu.po: Osatuta.
++
++2008-01-19 21:47 Pavel Maryanov &lt;acid_jack at ukr.net&gt;
++
++ * po/ru.po: updated translation
++
++2008-01-15 05:51 Sharuzzaman Ahmat Raslan &lt;sharuzzaman at myrealbox.com&gt;
++
++ * po/ms.po: Updated Malay translation
++
++2007-12-16 04:27 Keld Jørn Simonsen &lt;keld at dkuug.dk&gt;
++
++ * po/nb.po: updates
++
++2007-12-09 23:28 kmashrab
++
++ * po/uz.po, po/uz@Latn.po, po/uz@cyrillic.po: Renamed Uzbek
++ translations to follow the libc standard. Aproved by Pixel. For
++ details, see bug #35090.
++
++2007-10-30 21:24 Keld Jørn Simonsen &lt;keld at dkuug.dk&gt;
++
++ * po/da.po: updates
++
++2007-10-26 21:58 anssi
++
++ * po/fi.po: Update Finnish translation
++
++2007-10-03 21:39 Arpad Biro &lt;biro_arpad at yahoo.com&gt;
++
++ * po/ltg.po: update by Mario
++
++2007-10-03 15:53 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * ChangeLog, Makefile: 1.4
++
++2007-10-03 15:50 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/es.po: update (Fabián Mandelbaum)
++
++2007-10-03 15:50 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/es.po: update (Fabián Mandelbaum)
++
++2007-10-02 16:43 Karl Ove Hufthammer &lt;karl at huftis.org&gt;
++
++ * po/nn.po: Updated Norwegian Nynorsk translation.
++
++2007-10-02 13:27 Funda Wang &lt;fundawang at linux.net.cn&gt;
++
++ * po/zh_CN.po: Updated zh_CN translation
++
++2007-09-29 16:49 Karl Ove Hufthammer &lt;karl at huftis.org&gt;
++
++ * po/nn.po: Updated Norwegian Nynorsk translation.
++
++2007-09-28 12:35 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * Makefile: 1.3
++
++2007-09-27 08:50 Funda Wang &lt;fundawang at linux.net.cn&gt;
++
++ * po/zh_TW.po: Updated zh_TW translation
++
++2007-09-27 08:50 Funda Wang &lt;fundawang at linux.net.cn&gt;
++
++ * po/zh_TW.po: Updated zh_TW translation
++
++2007-09-26 13:19 guclu
++
++ * po/tr.po: update translation for Turkish
++
++2007-09-25 20:37 Reinout van Schouwen &lt;reinout at cs.vu.nl&gt;
++
++ * po/nl.po: newline fix
++
++2007-09-25 19:15 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/et.po: update (Marek Laane)
++
++2007-09-25 17:37 Michal Bukovjan &lt;bukovjan at mbox.dkm.cz&gt;
++
++ * po/cs.po: Updated Czech translation.
++
++2007-09-25 15:17 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/cy.po: update (Rhoslyn Prys)
++
++2007-09-25 06:57 Tomasz Bednarski &lt;tbednarski at mandrivalinux.pl&gt;
++
++ * po/pl.po: update
++
++2007-09-24 22:41 Reinout van Schouwen &lt;reinout at cs.vu.nl&gt;
++
++ * po/nl.po: * 2007-09-25 Reinout van Schouwen &lt;reinouts@gnome.org&gt;
++
++ - nl.po: Updated Dutch translation
++
++2007-09-24 20:46 jure
++
++ * po/sl.po: Updated Slovenian translation
++
++2007-09-24 19:43 guclu
++
++ * po/tr.po: update translation for Turkish
++
++2007-09-24 19:16 acelli
++
++ * po/it.po: update translation for Italian
++
++2007-09-24 18:55 kamberd
++
++ * po/he.po: update translation for Hebrew
++
++2007-09-24 18:45 mmodem
++
++ * po/pt.po: up
++
++2007-09-24 16:30 Arpad Biro &lt;biro_arpad at yahoo.com&gt;
++
++ * po/hu.po: update
++
++2007-09-24 15:25 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * ChangeLog: update
++
++2007-09-24 15:25 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * Makefile: 1.2.11
++
++2007-09-24 14:45 Wanderlei Antonio Cavassin &lt;cavassin at mandriva.com&gt;
++
++ * po/pt_BR.po: pt_BR fix
++
++2007-09-24 14:01 ybando
++
++ * po/ja.po: Japanese translation updated.
++
++2007-09-24 15:25 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * Makefile: 1.2.11
++
++2007-09-24 14:45 Wanderlei Antonio Cavassin &lt;cavassin at mandriva.com&gt;
++
++ * po/pt_BR.po: pt_BR fix
++
++2007-09-24 14:01 ybando
++
++ * po/ja.po: Japanese translation updated.
++
++2007-09-24 13:04 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/fr.po: update
++
++2007-09-24 13:03 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/cy.po, po/et.po, po/fr.po, po/he.po, po/hu.po, po/ja.po,
++ po/nl.po, po/pl.po, po/pt.po, po/pt_BR.po, po/sl.po, po/zh_CN.po,
++ po/zh_TW.po: merge in translations from transfugdrake
++
++2007-09-24 13:03 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/af.po, po/am.po, po/ar.po, po/az.po, po/be.po, po/bg.po,
++ po/bn.po, po/br.po, po/bs.po, po/ca.po, po/cs.po, po/cy.po,
++ po/da.po, po/de.po, po/el.po, po/eo.po, po/es.po, po/et.po,
++ po/eu.po, po/fa.po, po/fi.po, po/fr.po, po/fur.po, po/ga.po,
++ po/gl.po, po/he.po, po/hi.po, po/hr.po, po/hu.po, po/hy.po,
++ po/id.po, po/is.po, po/it.po, po/ja.po, po/ka.po, po/ko.po,
++ po/ku.po, po/ky.po, po/lo.po, po/lt.po, po/ltg.po, po/lv.po,
++ po/mk.po, po/mn.po, po/ms.po, po/mt.po, po/nb.po, po/nl.po,
++ po/nn.po, po/pa_IN.po, po/pl.po, po/pt.po, po/pt_BR.po, po/ro.po,
++ po/ru.po, po/sc.po, po/sk.po, po/sl.po, po/sq.po, po/sr.po,
++ po/sr@Latn.po, po/sv.po, po/ta.po, po/tg.po, po/th.po, po/tl.po,
++ po/tr.po, po/uk.po, po/userdrake.pot, po/uz.po, po/uz@Latn.po,
++ po/vi.po, po/wa.po, po/zh_CN.po, po/zh_TW.po: sync with code
++
++2007-09-24 13:01 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: enable to run migration assistant when adding a user
++
++2007-09-20 03:00 mmodem
++
++ * po/pt.po: up
++
++2007-09-03 14:43 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * Makefile: bump release (1.2.10)
++
++2007-08-20 18:56 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * USER/USER.xs: update copyright
++
++2007-08-17 12:16 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * USER/Makefile.PL: improve signal to noise ration by killing
++ warnings about declaration-after-statements
++
++2007-08-14 13:25 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * Makefile: use -rBASE for svn export in order to please blino by
++ making sure local changes do not got exported
++
++2007-07-20 17:41 Karl Ove Hufthammer &lt;karl at huftis.org&gt;
++
++ * po/nn.po: Updated Norwegian Nynorsk translation.
++
++2007-07-11 20:41 Karl Ove Hufthammer &lt;karl at huftis.org&gt;
++
++ * po/nn.po: Updated Norwegian Nynorsk translation.
++
++2007-07-04 16:03 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * Makefile: (changelog) typo fix
++
++2007-07-03 17:48 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * Makefile: (changelog) --strip-prefix is now uneeded with
++ svn2cl-0.9
++
++2006-10-11 10:45 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: 1.2.6-1mdv2007.1
++
++2006-10-09 12:22 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: (Edit) simplify
++
++2006-10-09 12:22 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: (BuildUui, Edit) HIG somewhat first tab of add &amp; edit
++ dialogs
++
++2006-10-09 12:21 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: (BuildUui) accept to pack an extra widget
++
++2006-10-09 12:20 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: (TimeOfArray) fix retrieval of expiration date (brown
++ paper bug #21662)
++
++2006-09-29 06:37 mmodem
++
++ * po/pt.po: *** empty log message ***
++
++2006-09-24 00:20 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ltg.po: updated po file
++
++2006-09-15 23:02 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: fix menu section
++
++2006-09-15 22:58 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: fix XDG cat
++
++2006-09-15 22:54 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: fix XDG menu entry filename
++
++2006-09-15 22:48 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: 1.2.5-1mdv2007.0
++
++2006-09-15 22:47 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: XDG menu
++
++2006-09-15 22:44 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * Makefile: (install) do not try to strip perl script
++
++2006-07-28 17:34 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/de.po: update (Nicolas Bauer)
++
++2006-06-08 13:51 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * ChangeLog: *** empty log message ***
++
++2006-06-08 13:50 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: 1.2.4-1mdv2007.0
++
++2006-06-08 12:46 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * USER/Makefile.PL: fix linking with libuser (littletux@zarb.org,
++ #22924)
++
++2006-06-01 16:29 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: 1.2.3-1mdv2007.0
++
++2006-06-01 16:28 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: use drakbug in order to report a bug (thus fixing
++ reporting a bug when BROWSER isn't set)
++
++2006-06-01 16:27 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: require run_program
++
++2006-06-01 16:26 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: (HelpSystem) use run_program instead of fork()
++
++2006-05-22 15:28 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: drop the requires on perl-Gtk2 since drakxtools
++ requires a more recent
++ one and since it's already auto required
++
++2006-05-22 15:27 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: bump the requires on drakxtools (because of
++ AboutDialog support in mygtk2.pm)
++
++2006-05-22 15:26 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: use standard about widget
++
++2006-04-06 17:37 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: (NewDialog) simplify boxing
++
++2006-03-22 10:55 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/af.po, po/am.po, po/ar.po, po/az.po, po/be.po, po/bg.po,
++ po/bn.po, po/bs.po, po/ca.po, po/cs.po, po/cy.po, po/da.po,
++ po/el.po, po/es.po, po/eu.po, po/fa.po, po/fi.po, po/fur.po,
++ po/gl.po, po/he.po, po/hi.po, po/hr.po, po/hu.po, po/hy.po,
++ po/is.po, po/it.po, po/ja.po, po/ka.po, po/ku.po, po/ky.po,
++ po/lo.po, po/lt.po, po/ltg.po, po/lv.po, po/mk.po, po/ms.po,
++ po/mt.po, po/nb.po, po/nl.po, po/pa_IN.po, po/pl.po, po/pt.po,
++ po/ro.po, po/ru.po, po/sc.po, po/sk.po, po/sl.po, po/sq.po,
++ po/sr.po, po/sr@Latn.po, po/sv.po, po/tg.po, po/th.po, po/tl.po,
++ po/tr.po, po/uk.po, po/uz.po, po/uz@Latn.po, po/vi.po, po/wa.po,
++ po/zh_CN.po: updated Welsh file; rescued a translation string
++
++2006-03-21 11:33 Willy Sudiarto Raharjo &lt;willysr at gmail.com&gt;
++
++ * po/id.po: Updated
++
++2006-03-18 11:06 Marek Laane &lt;bald at starman.ee&gt;
++
++ * po/et.po: Updated Estonian translation.
++
++2006-03-18 05:48 Shiva Huang &lt;blueshiva at giga.net.tw&gt;
++
++ * po/zh_TW.po: updated po file
++
++2006-03-17 16:44 Wanderlei Antonio Cavassin &lt;cavassin at mandriva.com&gt;
++
++ * po/pt_BR.po: Fixes pt_BR.
++
++2006-03-17 16:34 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: drop packager tag
++
++2006-03-17 16:08 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * ChangeLog: *** empty log message ***
++
++2006-03-17 16:06 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: pablo commit never made it in the uploaded
++ packages so add it to
++ 1.2.2-1mdk's changelog
++
++2006-03-17 16:03 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: daouda didn't commit 1.2.1-3mdk
++
++2006-03-17 16:00 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/br.po, po/fr.po: unfuzzy
++
++2006-03-17 15:59 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/af.po, po/am.po, po/ar.po, po/az.po, po/be.po, po/bg.po,
++ po/bn.po, po/br.po, po/bs.po, po/ca.po, po/cs.po, po/cy.po,
++ po/da.po, po/de.po, po/el.po, po/eo.po, po/es.po, po/et.po,
++ po/eu.po, po/fa.po, po/fi.po, po/fr.po, po/fur.po, po/ga.po,
++ po/gl.po, po/he.po, po/hi.po, po/hr.po, po/hu.po, po/hy.po,
++ po/id.po, po/is.po, po/it.po, po/ja.po, po/ka.po, po/ko.po,
++ po/ku.po, po/ky.po, po/lo.po, po/lt.po, po/ltg.po, po/lv.po,
++ po/mk.po, po/mn.po, po/ms.po, po/mt.po, po/nb.po, po/nl.po,
++ po/pa_IN.po, po/pl.po, po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po,
++ po/sc.po, po/sk.po, po/sl.po, po/sq.po, po/sr.po, po/sr@Latn.po,
++ po/sv.po, po/ta.po, po/tg.po, po/th.po, po/tl.po, po/tr.po,
++ po/uk.po, po/userdrake.pot, po/uz.po, po/uz@Latn.po, po/vi.po,
++ po/wa.po, po/zh_CN.po, po/zh_TW.po: sync with code
++
++2006-03-17 15:58 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: add a question mark at end of delete group
++ confirmation sentence
++
++2006-03-17 15:58 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: the &quot;warning&quot; string is already translated in DrakX
++
++2006-03-17 15:55 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: use a standard title for the deleting group
++ confirmation dialog
++
++2006-03-17 15:53 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: 1.2.2-1mdk
++
++2006-03-17 15:53 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: add myself to maintainer list
++
++2006-03-17 15:52 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: remove daouda email since it doesn't maintain anymore
++ userdrake
++
++2006-03-17 15:50 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: bump copyright year
++
++2006-03-17 15:48 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: fix %mkrel call
++
++2006-03-17 15:48 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: use %mkrel
++
++2006-03-17 15:40 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: perl_checker cleanup
++
++2006-03-17 15:38 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: (NewWindow) rename $w as $dialog
++
++2006-03-17 15:33 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: (NewWindow, NewDialog) simplify by using
++ _create_dialog()
++
++2006-03-17 15:08 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: (NewWindow) center subwindows on main one
++
++2006-03-17 15:07 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: (NewWindow) make subwindows transcient to the main one
++
++2006-03-17 15:07 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: (NewWindow) add a 5px border around the window (better
++ looking)
++
++2006-03-17 15:05 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: add some spaces between functions
++
++2006-03-17 14:58 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: perl_checker cleanups
++
++2006-03-17 14:52 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * .perl_checker: blacklist a few modules so that perl_checker can
++ parse userdrake
++
++2006-03-17 14:49 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: (NewWindow) second argument ('mode') is unused and
++ always set
++ to 1. Let's drop it.
++
++2006-03-17 14:46 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: (NewWindow) rename 'label' as 'title' since it's
++ really what it is
++
++2006-03-17 14:10 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/br.po: update
++
++2006-03-17 13:51 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: let's assume GECOS data is utf-8 encoded (#4296)
++
++2006-03-17 13:41 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: bump copyright
++
++2006-03-13 17:50 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/ga.po: update
++
++2006-01-31 21:44 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/hr.po: updated po file
++
++2005-11-09 17:07 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/lv.po: updated po file
++
++2005-10-24 00:46 Willy Sudiarto Raharjo &lt;willysr at gmail.com&gt;
++
++ * po/id.po: Updated Contact Info
++
++2005-10-12 07:26 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/hi.po, po/ku.po: updated po files
++
++2005-10-03 13:58 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ca.po: updated po file
++
++2005-09-27 05:01 mmodem
++
++ * po/pt.po: *** empty log message ***
++
++2005-09-19 05:04 Sharuzzaman Ahmat Raslan &lt;sharuzzaman at myrealbox.com&gt;
++
++ * po/ms.po: Updated Malay translation
++
++2005-09-15 13:19 Sharuzzaman Ahmat Raslan &lt;sharuzzaman at myrealbox.com&gt;
++
++ * po/ms.po: Updated Malay translation
++
++2005-09-03 17:37 Sharuzzaman Ahmat Raslan &lt;sharuzzaman at myrealbox.com&gt;
++
++ * po/ms.po: Updated Malay translation
++
++2005-08-31 16:27 Willy Sudiarto Raharjo &lt;willysr at gmail.com&gt;
++
++ * po/id.po: Updated plus added new Translator
++
++2005-08-28 13:16 Sharuzzaman Ahmat Raslan &lt;sharuzzaman at myrealbox.com&gt;
++
++ * po/ms.po: Updated Malay translation
++
++2005-08-14 07:36 Sharuzzaman Ahmat Raslan &lt;sharuzzaman at myrealbox.com&gt;
++
++ * po/ms.po: Updated Malay translation
++
++2005-08-12 08:10 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/lt.po: updated po file
++
++2005-08-07 00:06 Sharuzzaman Ahmat Raslan &lt;sharuzzaman at myrealbox.com&gt;
++
++ * po/ms.po: Updated Malay translation
++
++2005-08-04 02:25 Сергій Рибалченко (Sergey Ribalchenko) &lt;fisher at obu.ck.ua&gt;
++
++ * po/uk.po: header correction in uk.po
++
++2005-08-02 07:29 Сергій Рибалченко (Sergey Ribalchenko) &lt;fisher at obu.ck.ua&gt;
++
++ * po/uk.po: uk tr-ion update
++
++2005-07-30 08:37 Sharuzzaman Ahmat Raslan &lt;sharuzzaman at myrealbox.com&gt;
++
++ * po/ms.po: Updated Malay translation
++
++2005-07-29 08:08 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/ga.po: update
++
++2005-07-23 10:19 Sharuzzaman Ahmat Raslan &lt;sharuzzaman at myrealbox.com&gt;
++
++ * po/ms.po: Updated Malay translation
++
++2005-07-18 10:26 Olivier Blin &lt;oblin at mandriva.com&gt;
++
++ * userdrake: use eq
++
++2005-07-18 10:25 Olivier Blin &lt;oblin at mandriva.com&gt;
++
++ * userdrake: use common::md5file
++
++2005-07-12 22:41 Sharuzzaman Ahmat Raslan &lt;sharuzzaman at myrealbox.com&gt;
++
++ * po/ms.po: Updated Malay translation
++
++2005-07-03 01:06 Pjetur G. Hjaltason &lt;pjetur at pjetur.net&gt;
++
++ * po/is.po: Mostly syntax checking and msg consistency
++
++2005-07-01 23:27 Sharuzzaman Ahmat Raslan &lt;sharuzzaman at myrealbox.com&gt;
++
++ * po/ms.po: Updated Malay translation
++
++2005-06-14 01:31 Sharuzzaman Ahmat Raslan &lt;sharuzzaman at myrealbox.com&gt;
++
++ * po/ms.po: Updated Malay translation
++
++2005-05-28 00:00 Sharuzzaman Ahmat Raslan &lt;sharuzzaman at myrealbox.com&gt;
++
++ * po/ms.po: Updated Malay translation
++
++2005-04-25 07:36 Sharuzzaman Ahmat Raslan &lt;sharuzzaman at myrealbox.com&gt;
++
++ * po/ms.po: Updated Malay translation
++
++2005-04-19 14:13 Sharuzzaman Ahmat Raslan &lt;sharuzzaman at myrealbox.com&gt;
++
++ * po/ms.po: Updated Malay translation
++
++2005-04-18 17:02 Willy Sudiarto Raharjo &lt;willysr at gmail.com&gt;
++
++ * po/id.po: Updated
++
++2005-04-18 10:27 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/af.po, po/am.po, po/ar.po, po/az.po, po/be.po, po/bg.po,
++ po/bn.po, po/br.po, po/bs.po, po/ca.po, po/cs.po, po/cy.po,
++ po/da.po, po/de.po, po/el.po, po/eo.po, po/es.po, po/et.po,
++ po/eu.po, po/fa.po, po/fi.po, po/fr.po, po/fur.po, po/ga.po,
++ po/gl.po, po/he.po, po/hi.po, po/hr.po, po/hu.po, po/hy.po,
++ po/id.po, po/is.po, po/it.po, po/ja.po, po/ka.po, po/ko.po,
++ po/ku.po, po/ky.po, po/lo.po, po/lt.po, po/ltg.po, po/lv.po,
++ po/mk.po, po/mn.po, po/ms.po, po/mt.po, po/nb.po, po/nl.po,
++ po/pa_IN.po, po/pl.po, po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po,
++ po/sc.po, po/sk.po, po/sl.po, po/sq.po, po/sr.po, po/sr@Latn.po,
++ po/sv.po, po/ta.po, po/tg.po, po/th.po, po/tl.po, po/tr.po,
++ po/uk.po, po/userdrake.pot, po/uz.po, po/uz@Latn.po, po/vi.po,
++ po/wa.po, po/zh_CN.po, po/zh_TW.po, userdrake, userdrake.spec:
++ s/Mandrake/Mandriva/
++
++2005-04-14 14:41 Youcef Rabah Rahal &lt;rahal at arabeyes.org&gt;
++
++ * po/ar.po: sync'ed with Arabeyes CVS
++
++2005-04-02 15:29 Sharuzzaman Ahmat Raslan &lt;sharuzzaman at myrealbox.com&gt;
++
++ * po/ms.po: Updated Malay translation
++
++2005-03-30 13:53 Willy Sudiarto Raharjo &lt;willysr at gmail.com&gt;
++
++ * po/id.po: updated
++
++2005-03-29 20:58 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/af.po, po/am.po, po/ar.po, po/az.po, po/be.po, po/bg.po,
++ po/bn.po, po/br.po, po/bs.po, po/ca.po, po/cs.po, po/cy.po,
++ po/da.po, po/de.po, po/el.po, po/eo.po, po/es.po, po/et.po,
++ po/eu.po, po/fa.po, po/fi.po, po/fr.po, po/fur.po, po/ga.po,
++ po/gl.po, po/he.po, po/hi.po, po/hr.po, po/hu.po, po/hy.po,
++ po/id.po, po/is.po, po/it.po, po/ja.po, po/ka.po, po/ko.po,
++ po/ku.po, po/ky.po, po/lo.po, po/lt.po, po/ltg.po, po/lv.po,
++ po/mk.po, po/mn.po, po/ms.po, po/mt.po, po/nb.po, po/nl.po,
++ po/pa_IN.po, po/pl.po, po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po,
++ po/sc.po, po/sk.po, po/sl.po, po/sq.po, po/sr.po, po/sr@Latn.po,
++ po/sv.po, po/ta.po, po/tg.po, po/th.po, po/tl.po, po/tr.po,
++ po/uk.po, po/userdrake.pot, po/uz.po, po/uz@Latn.po, po/vi.po,
++ po/wa.po, po/zh_CN.po, po/zh_TW.po, userdrake: Removed spaces
++ before colons;
++ included colons in translatable strings (yes, they are
++ language-dependent,
++ even if most of them just us &quot;:&quot;, some use different things);
++ Added Punjabi file
++
++2005-03-13 16:13 Michal Bukovjan &lt;bukovjan at mbox.dkm.cz&gt;
++
++ * po/cs.po: Updates to Czech translations
++
++2005-03-10 15:20 Youcef Rabah Rahal &lt;rahal at arabeyes.org&gt;
++
++ * po/ar.po: Arabic QA
++
++2005-03-08 14:21 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - remove spurious comma
++
++2005-03-08 13:08 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - 1.2.1-2mdk
++
++2005-03-08 13:05 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - wrap an eval around sensitive home deletion
++ - home deletion option grayed when deletion might be dangerous
++
++2005-03-05 05:05 Shiva Huang &lt;blueshiva at giga.net.tw&gt;
++
++ * po/zh_TW.po: updated po files
++
++2005-03-04 17:13 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/af.po, po/am.po, po/ar.po, po/az.po, po/be.po, po/bg.po,
++ po/bn.po, po/br.po, po/bs.po, po/ca.po, po/cs.po, po/cy.po,
++ po/da.po, po/de.po, po/el.po, po/eo.po, po/es.po, po/et.po,
++ po/eu.po, po/fa.po, po/fi.po, po/fr.po, po/fur.po, po/ga.po,
++ po/gl.po, po/he.po, po/hi.po, po/hr.po, po/hu.po, po/hy.po,
++ po/id.po, po/is.po, po/it.po, po/ja.po, po/ka.po, po/ko.po,
++ po/ku.po, po/ky.po, po/lo.po, po/lt.po, po/ltg.po, po/lv.po,
++ po/mk.po, po/mn.po, po/ms.po, po/mt.po, po/nb.po, po/nl.po,
++ po/pl.po, po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po, po/sc.po,
++ po/sk.po, po/sl.po, po/sq.po, po/sr.po, po/sr@Latn.po, po/sv.po,
++ po/ta.po, po/tg.po, po/th.po, po/tl.po, po/tr.po, po/uk.po,
++ po/uz.po, po/uz@Latn.po, po/vi.po, po/wa.po, po/zh_CN.po,
++ po/zh_TW.po: fix phrasing
++
++2005-03-04 16:18 Olivier Blin &lt;oblin at mandriva.com&gt;
++
++ * userdrake: do not use absolute path to Mdk icons
++
++2005-03-02 14:27 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs: - fix mem leak due to extra safefree((char*)self);
++
++2005-02-28 23:07 Youcef Rabah Rahal &lt;rahal at arabeyes.org&gt;
++
++ * po/ar.po: Arabic QA
++
++2005-02-28 12:22 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * ChangeLog: *** empty log message ***
++
++2005-02-28 12:22 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * ChangeLog, userdrake: fix phrasing
++
++2005-02-28 12:21 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/br.po: update
++
++2005-02-28 07:51 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ja.po: updated po file
++
++2005-02-24 15:03 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/lt.po, po/ta.po: merge with kde-3.3 branch
++
++2005-02-23 18:46 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * ChangeLog: converted to UTF-8
++
++2005-02-21 18:23 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: use %makeinstall_std
++
++2005-02-21 18:22 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * ChangeLog: *** empty log message ***
++
++2005-02-21 18:22 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: 1.2.1-1mdk
++
++2005-02-20 23:51 Pjetur G. Hjaltason &lt;pjetur at pjetur.net&gt;
++
++ * po/is.po: End of days work
++
++2005-02-18 10:53 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/ga.po: update
++
++2005-02-16 13:04 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/be.po, po/ca.po, po/ga.po, po/is.po, po/ko.po, po/ku.po,
++ po/lt.po, po/lv.po, po/mn.po, po/ms.po, po/sr@Latn.po, po/ta.po,
++ po/uz@Latn.po: automerging
++
++2005-02-15 20:59 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/eo.po, po/is.po, po/sr.po, po/tr.po: update
++
++2005-02-15 17:20 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/be.po, po/ko.po, po/lt.po, po/mn.po, po/ms.po, po/ta.po,
++ po/uz.po: update
++
++2005-02-14 16:35 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/it.po: updated po file
++
++2005-02-13 01:49 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/am.po: Added Amharic file
++
++2005-02-09 12:34 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/af.po, po/ar.po, po/az.po, po/be.po, po/bg.po, po/bn.po,
++ po/br.po, po/bs.po, po/ca.po, po/cs.po, po/cy.po, po/da.po,
++ po/de.po, po/el.po, po/eo.po, po/es.po, po/et.po, po/eu.po,
++ po/fa.po, po/fi.po, po/fr.po, po/fur.po, po/ga.po, po/gl.po,
++ po/he.po, po/hi.po, po/hr.po, po/hu.po, po/hy.po, po/id.po,
++ po/is.po, po/it.po, po/ja.po, po/ka.po, po/ko.po, po/ku.po,
++ po/ky.po, po/lo.po, po/lt.po, po/ltg.po, po/lv.po, po/mk.po,
++ po/mn.po, po/ms.po, po/mt.po, po/nb.po, po/nl.po, po/pl.po,
++ po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po, po/sc.po, po/sk.po,
++ po/sl.po, po/sq.po, po/sr.po, po/sr@Latn.po, po/sv.po, po/ta.po,
++ po/tg.po, po/th.po, po/tl.po, po/tr.po, po/uk.po,
++ po/userdrake.pot, po/uz.po, po/uz@Latn.po, po/vi.po, po/wa.po,
++ po/zh_CN.po, po/zh_TW.po: updated pot file
++
++2005-02-04 05:02 Shiva Huang &lt;blueshiva at giga.net.tw&gt;
++
++ * po/zh_TW.po: updated po file
++
++2005-02-01 21:59 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/el.po: updated po file
++
++2005-02-01 13:04 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/ga.po: update
++
++2005-01-31 19:22 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/sc.po: updated po file
++
++2005-01-28 04:24 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/bg.po, po/id.po: updated po files
++
++2005-01-26 20:44 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake, userdrake.spec: - fix 'About' dialog crash
++ - cleanups
++
++2005-01-25 12:38 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/tl.po: updated po file
++
++2005-01-25 12:34 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/br.po: update
++
++2005-01-21 11:12 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - main loop fixed
++ - rebuild against new perl (XS)
++
++2005-01-21 10:50 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - fix main loop
++
++2005-01-18 12:37 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/lo.po: Added Laotian file
++
++2005-01-12 13:38 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: merge in lost changelog from cooker for 1.1-4mdk
++
++2005-01-12 12:44 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * ChangeLog: *** empty log message ***
++
++2005-01-12 12:44 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: 1.2-1mdk
++
++2005-01-12 12:44 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: - fix crash when embedded
++ - show banner when embedded
++
++2005-01-03 13:01 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/cy.po: updated po file
++
++2004-12-02 11:04 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/id.po: updated po file
++
++2004-11-23 13:41 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ku.po: Added Kurdish file
++
++2004-10-22 17:13 José JORGE &lt;jjorge at free.fr&gt;
++
++ * po/pt.po: melo
++
++2004-10-20 10:10 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/gl.po: updated po file
++
++2004-10-16 15:34 Alice Lafox &lt;alice at lafox.com.ua&gt;
++
++ * po/ru.po: updated
++
++2004-10-06 12:38 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/th.po: Added Thai file
++
++2004-10-04 08:28 Rafael Garcia-Suarez &lt;rgarciasuarez at mandriva.com&gt;
++
++ * userdrake.spec: 1.1-3mdk
++
++2004-10-04 01:39 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * userdrake.spec: built new rpm with latest translations
++
++2004-10-03 08:45 José JORGE &lt;jjorge at free.fr&gt;
++
++ * po/pt.po: melo
++
++2004-10-02 10:53 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/br.po: update
++
++2004-09-28 06:21 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ky.po: updated po file
++
++2004-09-27 10:18 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/br.po: update
++
++2004-09-27 09:06 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/hr.po: updated po file
++
++2004-09-27 04:37 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/fa.po, po/ka.po: updated po file
++
++2004-09-25 17:30 aiet
++
++ * po/ka.po: Translated new strings.
++
++2004-09-22 04:27 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/sc.po: updated po file
++
++2004-09-19 03:26 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/tg.po: updated po file
++
++2004-09-15 22:37 Youcef Rabah Rahal &lt;rahal at arabeyes.org&gt;
++
++ * po/ar.po: Arabic translation
++
++2004-09-14 12:02 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po: corrected &quot;&lt;control&gt;X&quot; string
++
++2004-09-14 06:59 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/eo.po, po/fr.po, po/gl.po, po/pt.po, po/wa.po: MandrakeSoft -&gt;
++ Mandrakesoft; Mandrake -&gt; Mandrakelinux
++
++2004-09-13 08:25 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/sk.po: updated po file
++
++2004-09-13 00:25 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/az.po: updated po file
++
++2004-09-12 06:16 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/uk.po: updated po file
++
++2004-09-09 03:52 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/bg.po: some Mandrake -&gt; Mandrakelinux and MandrakeSoft -&gt;
++ Mandrakesoft fixes
++
++2004-09-08 08:59 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ro.po: updated po file
++
++2004-09-08 04:25 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/mt.po: updated po file
++
++2004-09-07 09:17 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/fi.po, po/nl.po, po/sv.po: updated po file
++
++2004-09-05 15:11 Reinout van Schouwen &lt;reinout at cs.vu.nl&gt;
++
++ * po/nl.po: Updated Dutch (nl) translation
++ by Rob Teng &lt;mandrake.tips@free.fr&gt;
++
++2004-09-05 09:30 Thomas Backlund &lt;tmb at mandrake.org&gt;
++
++ * po/fi.po: Update translations to 100%
++
++2004-09-02 14:43 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/pt_BR.po: updated po file
++
++2004-08-31 14:29 Arkadiusz Lipiec &lt;alipiec at elka.pw.edu.pl&gt;
++
++ * po/pl.po: Updated
++
++2004-08-30 06:37 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/ja.po: update (BANDO Yukiko &lt;ybando@k6.dion.ne.jp&gt;)
++
++2004-08-30 05:10 Alice Lafox &lt;alice at lafox.com.ua&gt;
++
++ * po/ru.po: update
++
++2004-08-27 04:19 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/sl.po: updated po file
++
++2004-08-23 16:58 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/cy.po: updated po files
++
++2004-08-21 07:16 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/vi.po: updated po file
++
++2004-08-20 08:27 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/cs.po: updated po file
++
++2004-08-19 18:32 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/bg.po: fixed wrong cyrillic encoding chars
++
++2004-08-19 17:09 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/sr.po: fixed cyrillic encoding mess with Serbian translations
++
++2004-08-19 10:42 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/bs.po: updated po file
++
++2004-08-19 03:52 Youcef Rabah Rahal &lt;rahal at arabeyes.org&gt;
++
++ * po/ar.po: Sync with Arabeyes CVS
++
++2004-08-17 15:16 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/mk.po, po/nb.po: updated po files
++
++2004-08-15 14:17 Arpad Biro &lt;biro_arpad at yahoo.com&gt;
++
++ * po/hu.po: *** empty log message ***
++
++2004-08-15 13:36 Keld Jørn Simonsen &lt;keld at dkuug.dk&gt;
++
++ * po/da.po: updates
++ indexhtml/po/da.po soft/mdkhtmlbrowser/po/da.po
++ soft/mdkonline/po/da.po soft/menudrake/po/da.po
++ soft/rpmdrake/po/da.po soft/urpmi/po/da.po
++ soft/userdrake2/po/da.po soft/wizard_perl/po/da.po
++ gi/perl-install/share/po/da.po
++
++2004-08-14 10:07 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/af.po, po/ar.po, po/az.po, po/be.po, po/br.po, po/cy.po,
++ po/fa.po, po/fi.po, po/fur.po, po/ga.po, po/hi.po, po/hr.po,
++ po/hy.po, po/is.po, po/ja.po, po/ka.po, po/ko.po, po/ky.po,
++ po/ltg.po, po/lv.po, po/mk.po, po/mn.po, po/pl.po, po/pt_BR.po,
++ po/ro.po, po/ru.po, po/sc.po, po/sk.po, po/sv.po, po/ta.po,
++ po/tl.po, po/tr.po, po/uz.po, po/vi.po: merged translations
++
++2004-08-14 06:10 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/eu.po, po/is.po, po/sq.po, po/tg.po: fixed special &quot;&lt;control&gt;&quot;
++ entries
++
++2004-08-14 05:25 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/fr.po: updated po file
++
++2004-08-13 14:54 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/de.po: updated po file
++
++2004-08-11 13:53 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po: updated po file
++
++2004-08-11 11:15 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ca.po, po/eu.po: updated po file
++
++2004-08-09 10:19 Albert Astals Cid &lt;astals11 at terra.es&gt;
++
++ * po/ca.po: catalan updates
++
++2004-08-09 05:29 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/et.po: updated po file
++
++2004-08-08 14:47 Youcef Rabah Rahal &lt;rahal at arabeyes.org&gt;
++
++ * po/ar.po: Arabic translation
++
++2004-08-08 10:46 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po, po/he.po, po/hi.po: updated po file
++
++2004-08-08 08:47 Youcef Rabah Rahal &lt;rahal at arabeyes.org&gt;
++
++ * po/ar.po: Arabic translation
++
++2004-08-06 17:42 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/tg.po: updated po file
++
++2004-08-06 13:40 Youcef Rabah Rahal &lt;rahal at arabeyes.org&gt;
++
++ * po/ar.po: Arabeyes' Arabic translation
++
++2004-08-06 03:23 Dovix &lt;dovix2003 at yahoo.com&gt;
++
++ * po/he.po: *** empty log message ***
++
++2004-08-05 13:31 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/af.po, po/ar.po, po/az.po, po/be.po, po/bg.po, po/bn.po,
++ po/br.po, po/bs.po, po/ca.po, po/cs.po, po/cy.po, po/da.po,
++ po/de.po, po/el.po, po/eo.po, po/es.po, po/et.po, po/eu.po,
++ po/fa.po, po/fi.po, po/fr.po, po/fur.po, po/ga.po, po/gl.po,
++ po/he.po, po/hi.po, po/hr.po, po/hu.po, po/hy.po, po/id.po,
++ po/is.po, po/it.po, po/ja.po, po/ka.po, po/ko.po, po/ky.po,
++ po/lt.po, po/ltg.po, po/lv.po, po/mk.po, po/mn.po, po/ms.po,
++ po/mt.po, po/nb.po, po/nl.po, po/pl.po, po/pt.po, po/pt_BR.po,
++ po/ro.po, po/ru.po, po/sc.po, po/sk.po, po/sl.po, po/sq.po,
++ po/sr.po, po/sr@Latn.po, po/sv.po, po/ta.po, po/tg.po, po/tl.po,
++ po/tr.po, po/uk.po, po/userdrake.pot, po/uz.po, po/uz@Latn.po,
++ po/vi.po, po/wa.po, po/zh_CN.po, po/zh_TW.po: updated pot file
++
++2004-08-01 21:28 Funda Wang &lt;fundawang at linux.net.cn&gt;
++
++ * userdrake: s/Mandrake Linux/Mandrakelinux
++
++2004-08-01 02:57 Funda Wang &lt;fundawang at linux.net.cn&gt;
++
++ * po/zh_CN.po: Updated Simplified Chinese translation
++
++2004-07-30 08:51 Youcef Rabah Rahal &lt;rahal at arabeyes.org&gt;
++
++ * po/ar.po: Arabeyes.org's Arabic translation
++
++2004-07-28 11:46 Arpad Biro &lt;biro_arpad at yahoo.com&gt;
++
++ * po/hu.po: *** empty log message ***
++
++2004-07-28 00:15 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/bn.po, po/es.po, po/pt.po, po/uk.po, po/wa.po: updated po
++ files
++
++2004-07-27 13:48 José JORGE &lt;jjorge at free.fr&gt;
++
++ * po/pt.po: bunch of work
++
++2004-07-26 05:36 Fabian Mandelbaum &lt;fabman at mandriva.com&gt;
++
++ * po/es.po: Updated Spanish translations
++
++2004-07-23 09:18 Сергій Рибалченко (Sergey Ribalchenko) &lt;fisher at obu.ck.ua&gt;
++
++ * po/uk.po: Ukrainian translation update.
++
++2004-07-19 19:55 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/Makefile, po/af.po, po/ar.po, po/az.po, po/be.po, po/bg.po,
++ po/bn.po, po/br.po, po/bs.po, po/ca.po, po/cs.po, po/cy.po,
++ po/da.po, po/de.po, po/el.po, po/eo.po, po/es.po, po/et.po,
++ po/eu.po, po/fa.po, po/fi.po, po/fr.po, po/fur.po, po/ga.po,
++ po/gl.po, po/he.po, po/hi.po, po/hr.po, po/hu.po, po/hy.po,
++ po/id.po, po/is.po, po/it.po, po/ja.po, po/ka.po, po/ko.po,
++ po/ky.po, po/lt.po, po/ltg.po, po/lv.po, po/mk.po, po/mn.po,
++ po/ms.po, po/mt.po, po/nb.po, po/nl.po, po/pl.po, po/pt.po,
++ po/pt_BR.po, po/ro.po, po/ru.po, po/sc.po, po/sk.po, po/sl.po,
++ po/sq.po, po/sr.po, po/sr@Latn.po, po/sv.po, po/ta.po, po/tg.po,
++ po/tl.po, po/tr.po, po/uk.po, po/userdrake.pot, po/uz.po,
++ po/uz@Latn.po, po/vi.po, po/wa.po, po/zh_CN.po, po/zh_TW.po:
++ updated pot file; added Sardinian file
++
++2004-07-19 12:38 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * ChangeLog: *** empty log message ***
++
++2004-07-19 12:37 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: 1.1-1mdk
++
++2004-07-19 12:29 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: set window icon
++
++2004-07-19 12:20 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: fix button layout in dialogs
++
++2004-07-19 12:18 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: get rid of stock icons
++
++2004-07-16 02:46 Olivier Blin &lt;oblin at mandriva.com&gt;
++
++ * userdrake: restore mouse cursor in GimmeChoice (Daouda)
++
++2004-07-16 02:38 Olivier Blin &lt;oblin at mandriva.com&gt;
++
++ * userdrake: really handle the group choice made by the user (in
++ ChooseGroup, run
++ Gtk2 main to wait for user input, and destroy the dialog
++ properly)
++
++2004-07-15 12:13 Olivier Blin &lt;oblin at mandriva.com&gt;
++
++ * userdrake: fix GimmeChoice by using interactive (do not quit the
++ whole program on
++ success, wait the answer to really return the choice made by the
++ user)
++ (#10246)
++
++2004-07-15 11:42 Olivier Blin &lt;oblin at mandriva.com&gt;
++
++ * userdrake: don't do useless things or show useless dialog if an
++ error has been
++ raised in AddUser
++
++2004-07-15 11:14 Olivier Blin &lt;oblin at mandriva.com&gt;
++
++ * USER/USER.xs: do not die when removing a non existent directory,
++ just warn (#10241)
++
++2004-07-15 10:40 Olivier Blin &lt;oblin at mandriva.com&gt;
++
++ * userdrake: perl_checker compliance
++
++2004-07-15 10:30 Olivier Blin &lt;oblin at mandriva.com&gt;
++
++ * userdrake: do not crash in Delete when user is in non-existing
++ group (fix #10242)
++
++2004-06-07 20:26 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/af.po, po/ar.po, po/az.po, po/be.po, po/bg.po, po/bn.po,
++ po/br.po, po/bs.po, po/ca.po, po/cs.po, po/cy.po, po/da.po,
++ po/de.po, po/el.po, po/eo.po, po/es.po, po/et.po, po/eu.po,
++ po/fa.po, po/fi.po, po/fr.po, po/fur.po, po/ga.po, po/gl.po,
++ po/he.po, po/hi.po, po/hr.po, po/hu.po, po/hy.po, po/id.po,
++ po/is.po, po/it.po, po/ja.po, po/ka.po, po/ko.po, po/ky.po,
++ po/lt.po, po/ltg.po, po/lv.po, po/mk.po, po/mn.po, po/ms.po,
++ po/mt.po, po/nb.po, po/nl.po, po/pl.po, po/pt.po, po/pt_BR.po,
++ po/ro.po, po/ru.po, po/sk.po, po/sl.po, po/sq.po, po/sr.po,
++ po/sr@Latn.po, po/sv.po, po/ta.po, po/tg.po, po/tl.po, po/tr.po,
++ po/uk.po, po/userdrake.pot, po/uz.po, po/uz@Latn.po, po/vi.po,
++ po/wa.po, po/zh_CN.po, po/zh_TW.po: updated pot file
++
++2004-05-26 12:17 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - right mouse click on Treeview items to access
++ menu (Edit, Delete)
++
++2004-05-26 12:16 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - right mouse click on Treeview to access menu
++ (feature)
++ - don't allow more than 16 char to be consistent with groupadd
++ (tvignaud)
++
++2004-05-26 11:00 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - right mouse click on Treeview to access menu
++ (feature)
++ - don't allow more than 16 char to be consistent with groupadd
++ (tvignaud)
++
++2004-05-25 06:49 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: check user/group name length against right limit
++ (robert.vojta, #9831)
++
++2004-05-18 20:58 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ca.po, po/da.po, po/es.po, po/fr.po, po/it.po, po/nb.po,
++ po/pt.po, po/sq.po, po/tr.po, po/uk.po: converted to utf-8
++
++2004-05-18 20:11 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/fur.po: Added Furlan file
++
++2004-05-10 17:23 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - fix typo
++
++2004-05-10 17:17 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake, userdrake.spec: - use md5sum to find cuurent face icon
++ (Oliver Blin)
++
++2004-05-10 16:26 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/gl.po, po/userdrake.pot: updated po file
++
++2004-05-10 10:59 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake, userdrake.spec: - random icon display and icon
++ browsing fixes #8085 - #9653 (Olivier
++ Blin)
++
++2004-05-10 10:53 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - patch for random icon choice and icon forward
++ backward browsing
++
++2004-04-26 14:49 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/gl.po, po/ka.po: updated po file
++
++2004-04-23 13:06 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/hu.po: updated po file
++
++2004-04-19 19:58 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/bn.po: Added Bengali file
++
++2004-04-13 20:34 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/gl.po: updated Galician file
++
++2004-04-13 14:55 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - change simple quote 2 double quote
++
++2004-04-01 17:22 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/mn.po: updated Mongol files
++
++2004-03-29 06:44 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ky.po, po/sv.po: Added Kyrgyz file
++
++2004-03-17 20:03 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/af.po, po/az.po, po/ca.po, po/cs.po, po/cy.po, po/da.po,
++ po/de.po, po/el.po, po/es.po, po/et.po, po/eu.po, po/fa.po,
++ po/fi.po, po/fr.po, po/ga.po, po/gl.po, po/he.po, po/hi.po,
++ po/hr.po, po/hu.po, po/id.po, po/is.po, po/ja.po, po/ka.po,
++ po/ko.po, po/lt.po, po/ltg.po, po/lv.po, po/mk.po, po/mn.po,
++ po/ms.po, po/mt.po, po/nb.po, po/nl.po, po/pl.po, po/pt.po,
++ po/pt_BR.po, po/ro.po, po/ru.po, po/sk.po, po/sl.po, po/sq.po,
++ po/sr.po, po/sr@Latn.po, po/sv.po, po/ta.po, po/tr.po, po/uk.po,
++ po/uz.po, po/uz@Latn.po, po/vi.po, po/wa.po, po/zh_CN.po,
++ po/zh_TW.po: updated po files
++
++2004-03-17 19:15 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/be.po, po/bg.po, po/br.po, po/bs.po, po/eu.po, po/gl.po:
++ updated po files
++
++2004-03-17 19:02 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/zh_TW.po: converted to utf-8
++
++2004-03-17 18:22 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/el.po: converted to utf-8
++
++2004-03-17 17:56 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ga.po: updated po files
++
++2004-03-17 16:31 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ko.po: updated po files
++
++2004-03-17 15:39 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/hu.po, po/is.po, po/lt.po, po/ms.po, po/sr.po, po/ta.po:
++ updated po files
++
++2004-03-16 14:28 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/hy.po: updated po file
++
++2004-03-16 02:58 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/hy.po: updated po file
++
++2004-03-13 10:25 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/tg.po: updated po file
++
++2004-03-12 14:05 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/tl.po: Added Filipino file
++
++2004-03-07 13:59 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po: updated po file
++
++2004-03-07 04:56 Youcef Rabah Rahal &lt;rahal at arabeyes.org&gt;
++
++ * po/ar.po: Committing Arabeyes.org's Arabic translation of the
++ week...
++
++2004-03-01 10:14 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/it.po: updated po file
++
++2004-02-29 20:22 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po, po/eo.po, po/userdrake.pot: updated po file
++
++2004-02-29 13:23 Youcef Rabah Rahal &lt;rahal at arabeyes.org&gt;
++
++ * po/ar.po: Committing Arabeyes.org's Arabic translation for the
++ past week :-)
++
++2004-02-28 18:25 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/eo.po: updated po file
++
++2004-02-26 10:18 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - new pics
++ - po updates
++
++2004-02-26 10:16 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - new banners
++
++2004-02-26 10:08 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/sv.po: updated po file
++
++2004-02-26 10:03 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - change bootsplash
++
++2004-02-26 08:50 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * pixmaps/userdrake.png: - readded
++
++2004-02-26 08:49 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * pixmaps/about.png, pixmaps/userdrake.png: - change icons
++
++2004-02-24 19:01 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/tr.po: updated po file
++
++2004-02-24 16:45 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/lt.po, po/ltg.po, po/lv.po, po/uk.po: updated po files
++
++2004-02-24 15:30 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po, po/ja.po: updated po file
++
++2004-02-24 14:17 Youcef Rabah Rahal &lt;rahal at arabeyes.org&gt;
++
++ * po/ar.po: Committing Arabeyes.org's Arabic translation
++
++2004-02-23 09:23 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/af.po: updated po file
++
++2004-02-22 11:28 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po, po/ca.po, po/he.po: updated po files
++
++2004-02-15 13:25 Albert Astals Cid &lt;astals11 at terra.es&gt;
++
++ * po/ca.po: more updates
++
++2004-02-15 09:49 Youcef Rabah Rahal &lt;rahal at arabeyes.org&gt;
++
++ * po/ar.po: Committing Arabeyes.org's Arabic translation
++
++2004-02-11 22:01 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po, po/ca.po, po/cy.po: updated po file
++
++2004-02-10 17:28 Albert Astals Cid &lt;astals11 at terra.es&gt;
++
++ * po/ca.po: Updates, unfuzzying and spell checking
++
++2004-02-08 10:50 Youcef Rabah Rahal &lt;rahal at arabeyes.org&gt;
++
++ * po/ar.po: Committing Arabeyes.org Arabic translation
++
++2004-02-06 15:42 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/pt_BR.po: updated po file
++
++2004-02-05 20:56 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/sr.po, po/sr@Latn.po: updated po files
++
++2004-02-05 00:56 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/pt_BR.po: updated po file
++
++2004-02-02 17:28 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/af.po, po/ar.po, po/az.po, po/be.po, po/bg.po, po/br.po,
++ po/bs.po, po/ca.po, po/cs.po, po/cy.po, po/da.po, po/de.po,
++ po/el.po, po/eo.po, po/es.po, po/et.po, po/eu.po, po/fa.po,
++ po/fi.po, po/fr.po, po/ga.po, po/gl.po, po/he.po, po/hi.po,
++ po/hr.po, po/hu.po, po/id.po, po/is.po, po/it.po, po/ja.po,
++ po/ka.po, po/ko.po, po/lt.po, po/lv.po, po/mk.po, po/mn.po,
++ po/ms.po, po/mt.po, po/nb.po, po/nl.po, po/pl.po, po/pt.po,
++ po/pt_BR.po, po/ro.po, po/ru.po, po/sk.po, po/sl.po, po/sq.po,
++ po/sr.po, po/sr@Latn.po, po/sv.po, po/ta.po, po/tg.po, po/tr.po,
++ po/uk.po, po/userdrake.pot, po/uz.po, po/uz@Cyrl.po,
++ po/uz@Latn.po, po/vi.po, po/wa.po, po/zh_CN.po, po/zh_TW.po:
++ updated po files
++
++2004-02-02 16:15 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - sync with cooker spec
++
++2004-02-02 16:13 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - changes faces
++
++2004-02-02 16:11 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - release
++
++2004-02-02 12:22 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - titi sux
++
++2004-02-02 12:18 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - reorder full name and login
++
++2004-02-01 10:26 Youcef Rabah Rahal &lt;rahal at arabeyes.org&gt;
++
++ * po/ar.po: Committing Arabeyes.org's Arabic translation.
++
++2004-01-29 22:54 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/az.po, po/fa.po: updated po files
++
++2004-01-28 16:26 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/vi.po: updated po file
++
++2004-01-28 15:18 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/tr.po: updated po file
++
++2004-01-27 14:23 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po, po/cs.po, po/tr.po: updated po files
++
++2004-01-25 17:14 Youcef Rabah Rahal &lt;rahal at arabeyes.org&gt;
++
++ * po/ar.po: Committing Arabeyes.org translation.
++
++2004-01-23 02:54 (Hilbert) 廖唯鈞 &lt;h at mandrake.org&gt;
++
++ * po/zh_TW.po: Translation: lock -&gt; ����
++
++2004-01-22 23:46 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ca.po: updated po file
++
++2004-01-22 14:53 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - Replace Option Menu by Combo box to choose
++ shells manuall
++
++2004-01-22 14:48 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - Option Menu replaced by Combo Box to set shell
++ manually
++
++2004-01-21 13:45 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * Makefile: - drakuser symlink (fix typo)
++
++2004-01-21 13:43 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - rebuild for new POs
++ - add drakuser symlink
++
++2004-01-21 13:43 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * Makefile: - add drakuser symlink
++
++2004-01-21 10:50 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/he.po: updated po file
++
++2004-01-21 09:56 (Hilbert) 廖唯鈞 &lt;h at mandrake.org&gt;
++
++ * po/zh_TW.po: userdrake is completely done.
++
++2004-01-21 01:06 Tibor Pittich &lt;Tibor.Pittich at phuture.sk&gt;
++
++ * po/sk.po: updated slovak translation
++
++2004-01-19 22:45 Keld Jørn Simonsen &lt;keld at dkuug.dk&gt;
++
++ * po/da.po: Trying to get rid of &quot;Translated to da.po&quot; problem -
++ did not work:-(
++ soft/menu-messages/da.po soft/control-center/po/da.po
++ soft/drakcronat/po/da.po soft/ftw/po/da.po
++ soft/GtkMdkWidgets/po/da.po soft/kdebase-servicemenu/po/da.po
++ soft/krozat/po/da.po soft/mandrake-menu-directory/po/da.po
++ soft/mdkkdm/po/da.po soft/mdklaunchhelp/po/da.po
++ soft/menudrake/po/da.po soft/rpmdrake/po/da.po
++ soft/urpmi/po/da.po soft/userdrake2/po/da.po
++ soft/wizard_perl/po/da.po gi/perl-install/share/po/da.po
++ soft/galaxy/thememdk/mandrake_client/po/da.po
++
++2004-01-19 17:16 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/af.po, po/ar.po, po/az.po, po/be.po, po/bg.po, po/br.po,
++ po/bs.po, po/ca.po, po/cs.po, po/cy.po, po/da.po, po/de.po,
++ po/el.po, po/eo.po, po/es.po, po/et.po, po/eu.po, po/fa.po,
++ po/fi.po, po/fr.po, po/ga.po, po/gl.po, po/he.po, po/hi.po,
++ po/hr.po, po/hu.po, po/id.po, po/is.po, po/it.po, po/ja.po,
++ po/ka.po, po/ko.po, po/lt.po, po/lv.po, po/mk.po, po/mn.po,
++ po/ms.po, po/mt.po, po/nb.po, po/nl.po, po/pl.po, po/pt.po,
++ po/pt_BR.po, po/ro.po, po/ru.po, po/sk.po, po/sl.po, po/sq.po,
++ po/sr.po, po/sr@Latn.po, po/sv.po, po/ta.po, po/tg.po, po/tr.po,
++ po/uk.po, po/userdrake.pot, po/uz.po, po/uz@Cyrl.po, po/vi.po,
++ po/wa.po, po/zh_CN.po, po/zh_TW.po: updated pot file
++
++2004-01-19 11:14 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/br.po: initial import
++
++2004-01-17 21:08 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/fr.po: complete french translation
++
++2004-01-17 21:08 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: factorize translatable strings
++
++2004-01-17 10:51 Funda Wang &lt;fundawang at linux.net.cn&gt;
++
++ * po/zh_CN.po: updating.
++
++2004-01-06 13:43 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/zh_TW.po: updated po files
++
++2004-01-03 20:15 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/mn.po: updated po file
++
++2003-12-22 18:31 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * Makefile: fix broken Makefile
++
++2003-12-22 18:28 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: 0.92-26mdk
++
++2003-12-21 18:19 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/cy.po, po/hi.po, po/pt.po, po/sl.po: updated po files
++
++2003-12-19 16:58 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: push help menu at right
++
++2003-12-18 16:30 Keld Jørn Simonsen &lt;keld at dkuug.dk&gt;
++
++ * po/da.po: updates
++ soft/control-center/po/da.po soft/mdkkdm/po/da.po
++ soft/urpmi/po/da.po soft/userdrake2/po/da.po
++ soft/wizard_perl/po/da.po gi/perl-install/share/po/da.po
++
++2003-12-18 16:00 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * Makefile: - some build add-ons
++
++2003-12-10 20:49 Arkadiusz Lipiec &lt;alipiec at elka.pw.edu.pl&gt;
++
++ * po/pl.po: Updated
++
++2003-12-09 19:44 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/cy.po, po/fi.po: updated po files
++
++2003-12-07 11:57 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/de.po: updated po file
++
++2003-12-03 02:43 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/et.po, po/eu.po, po/nb.po, po/ro.po, po/ru.po: updated po
++ files
++
++2003-12-01 22:01 Fabian Mandelbaum &lt;fabman at mandriva.com&gt;
++
++ * po/es.po: Updated Spanish translations
++
++2003-12-01 16:08 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/af.po, po/ar.po, po/az.po, po/be.po, po/bg.po, po/bs.po,
++ po/ca.po, po/cs.po, po/cy.po, po/da.po, po/de.po, po/el.po,
++ po/eo.po, po/es.po, po/et.po, po/eu.po, po/fa.po, po/fi.po,
++ po/fr.po, po/ga.po, po/gl.po, po/he.po, po/hi.po, po/hr.po,
++ po/hu.po, po/id.po, po/is.po, po/it.po, po/ja.po, po/ka.po,
++ po/ko.po, po/lt.po, po/lv.po, po/mk.po, po/mn.po, po/ms.po,
++ po/mt.po, po/nb.po, po/nl.po, po/pl.po, po/pt.po, po/pt_BR.po,
++ po/ro.po, po/ru.po, po/sk.po, po/sl.po, po/sq.po, po/sr.po,
++ po/sr@Latn.po, po/sv.po, po/ta.po, po/tg.po, po/tr.po, po/uk.po,
++ po/userdrake.pot, po/uz.po, po/uz@Cyrl.po, po/vi.po, po/wa.po,
++ po/zh_CN.po, po/zh_TW.po: updated pot file
++
++2003-11-28 16:55 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - spec cleanup
++ - fix userdrake removehome hangs
++ - perl checker compliance
++ - BuildRequires (Stephan)
++
++2003-11-28 16:55 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - homedir hang
++
++2003-11-28 16:53 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs: - fix homedir removing gui dialog hanging
++
++2003-11-26 11:58 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/it.po: updated po file
++
++2003-11-17 16:20 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/uz.po, po/uz@Cyrl.po: updated po files
++
++2003-10-10 12:34 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/Makefile.PL: - remove debug info
++
++2003-10-10 10:20 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - perl checker compliance
++
++2003-10-09 13:46 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.pm: - Exporter not needed
++
++2003-10-02 19:12 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ca.po: updated po file
++
++2003-09-24 16:01 Tibor Pittich &lt;Tibor.Pittich at phuture.sk&gt;
++
++ * po/sk.po: updated slovak translation
++
++2003-09-21 22:49 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/it.po: updated po file
++
++2003-09-19 20:51 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/sk.po, po/sv.po: updated po files
++
++2003-09-18 19:18 Tibor Pittich &lt;Tibor.Pittich at phuture.sk&gt;
++
++ * po/sk.po: damn! userdrake is moved :(
++ updated slovak translation
++
++2003-09-17 10:14 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - fix crash when a user lost accidentally its
++ primary group (Titi)
++
++2003-09-17 10:05 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - fix crash when user groups removed accidentally
++ (titi)
++
++2003-09-16 17:10 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: po -updates
++
++2003-09-16 09:57 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - fix long translation in french (#5696)
++
++2003-09-16 09:54 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * po/fr.po: - fix widgets truncated in french
++
++2003-09-15 18:54 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/hi.po, po/is.po: Added Icelandic po file
++
++2003-09-15 06:30 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/pt_BR.po: updated po file
++
++2003-09-13 09:12 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/tg.po: updated po file
++
++2003-09-12 13:48 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/pt_BR.po: updated po file
++
++2003-09-12 09:46 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - gtkset_mousecursor_normal() when
++ adding/deleting user/group
++
++2003-09-12 09:45 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - add gtkset_mousecursor_normal() when finishing to
++ add user
++
++2003-09-12 09:34 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake, userdrake.spec: - fix duplicate semi-colons
++
++2003-09-12 01:12 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/mn.po: updated po file
++
++2003-09-12 00:02 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/tr.po: updated po file
++
++2003-09-11 14:30 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/pt_BR.po: upated po file
++
++2003-09-11 00:09 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/pt_BR.po: updated po file
++
++2003-09-10 09:32 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/mt.po: updated po file
++
++2003-09-09 11:17 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - fix help call
++
++2003-09-09 08:56 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - po updates
++ - drakhelp new schema
++
++2003-09-09 08:54 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - new help call
++
++2003-09-08 14:57 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/az.po: updated po file
++
++2003-09-08 12:59 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/fi.po: updated po file
++
++2003-09-06 23:17 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/cy.po, po/he.po, po/hu.po, po/ro.po: updated po files
++
++2003-09-04 23:59 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/el.po, po/fa.po: updated po files
++
++2003-09-04 18:21 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/sq.po, po/zh_CN.po: updated po files
++
++2003-09-04 13:24 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/uk.po: updated po file
++
++2003-09-04 13:16 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/sl.po, po/vi.po: updated po files
++
++2003-09-04 08:19 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/eu.po, po/pt.po: updated po files
++
++2003-09-03 19:56 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/cs.po, po/et.po, po/tr.po: updated po files
++
++2003-09-03 18:59 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/sl.po: updated po file
++
++2003-09-03 17:58 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/bs.po: updated po file
++
++2003-09-03 17:49 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/nl.po: updated po file
++
++2003-09-03 17:10 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/nb.po, po/ru.po: updated po files
++
++2003-09-03 12:12 Arkadiusz Lipiec &lt;alipiec at elka.pw.edu.pl&gt;
++
++ * po/pl.po: Updated
++
++2003-09-03 08:25 Keld Jørn Simonsen &lt;keld at dkuug.dk&gt;
++
++ * po/da.po: updates
++ soft/userdrake2/po/da.po soft/wizard_perl/po/da.po
++
++2003-09-02 22:24 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/cy.po, po/de.po, po/hu.po: updated po files
++
++2003-09-02 22:14 Stefan Siegel &lt;siegel at linux-mandrake.com&gt;
++
++ * po/de.po: updates
++
++2003-09-02 17:35 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * po/fr.po: complete french translation
++
++2003-09-02 16:25 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/af.po, po/ar.po, po/az.po, po/be.po, po/bg.po, po/bs.po,
++ po/ca.po, po/cs.po, po/cy.po, po/da.po, po/de.po, po/el.po,
++ po/eo.po, po/es.po, po/et.po, po/eu.po, po/fa.po, po/fi.po,
++ po/fr.po, po/ga.po, po/gl.po, po/he.po, po/hi.po, po/hr.po,
++ po/hu.po, po/id.po, po/it.po, po/ja.po, po/ka.po, po/ko.po,
++ po/lt.po, po/lv.po, po/mk.po, po/mn.po, po/ms.po, po/mt.po,
++ po/nb.po, po/nl.po, po/pl.po, po/pt.po, po/pt_BR.po, po/ro.po,
++ po/ru.po, po/sk.po, po/sl.po, po/sq.po, po/sr.po, po/sr@Latn.po,
++ po/sv.po, po/ta.po, po/tg.po, po/tr.po, po/uk.po,
++ po/userdrake.pot, po/uz.po, po/uz@Cyrl.po, po/vi.po, po/wa.po,
++ po/zh_CN.po, po/zh_TW.po: updated pot file
++
++2003-09-02 16:15 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/de.po, po/userdrake.pot: updated po file
++
++2003-09-02 12:29 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - fix typo in AddGroup title
++
++2003-09-02 12:28 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - fix typo when adding group (Arpad Biro)
++
++2003-09-02 02:36 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/hu.po: updated po file
++
++2003-09-01 22:30 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/bs.po: updated po file
++
++2003-09-01 13:15 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/az.po, po/uz.po, po/uz@Cyrl.po: updated po files
++
++2003-08-30 11:18 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/vi.po: updated po file
++
++2003-08-29 12:13 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/fr.po: updated po file
++
++2003-08-29 11:56 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/it.po: updated po file
++
++2003-08-28 13:19 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/az.po: updated po file
++
++2003-08-28 13:18 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - fix unpredictable deselection of primary group
++ when editing user
++
++2003-08-28 12:25 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - fix random error
++
++2003-08-28 10:18 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/bs.po: updated po file
++
++2003-08-28 04:09 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/pt_BR.po: updated po file
++
++2003-08-27 20:32 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/nb.po: updated po file
++
++2003-08-27 17:35 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - new drakhelp args
++
++2003-08-27 13:42 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/uk.po: updatedp po file
++
++2003-08-26 20:13 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/pt.po: updated po file
++
++2003-08-26 19:39 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/af.po, po/fi.po: Added Afrikaans file
++
++2003-08-26 13:56 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/et.po: updated po file
++
++2003-08-25 19:50 Arkadiusz Lipiec &lt;alipiec at elka.pw.edu.pl&gt;
++
++ * po/pl.po: Updated
++
++2003-08-25 15:24 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po, po/nl.po, po/sq.po: updated po files
++
++2003-08-25 10:30 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - fix explanation call titi
++
++2003-08-24 21:12 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: fix #4871: proplerly use explanations
++
++2003-08-24 11:31 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/eo.po: updated po file
++
++2003-08-23 10:21 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/az.po, po/zh_CN.po: updated po files
++
++2003-08-22 16:16 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/eu.po: updated po file
++
++2003-08-22 14:19 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/bg.po: updated po file
++
++2003-08-22 11:20 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - replace blurred icons
++
++2003-08-22 11:02 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/Makefile.PL: - use pkg-config
++
++2003-08-22 10:55 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * pixmaps/group_add.png, pixmaps/user_add.png: - readded icons
++
++2003-08-22 10:53 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * pixmaps/group_add.png, pixmaps/user_add.png: - replacing icons
++
++2003-08-22 10:17 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: space
++
++2003-08-22 10:16 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - made it lib64 aware
++ - replaced truncated icon
++
++2003-08-22 10:15 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * pixmaps/refresh.png: - refresh readded
++
++2003-08-22 10:14 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * pixmaps/refresh.png: - remove
++
++2003-08-21 20:51 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/fa.po, po/nb.po: updated po files
++
++2003-08-21 18:55 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/cs.po, po/es.po: updated po file
++
++2003-08-21 17:46 Fabian Mandelbaum &lt;fabman at mandriva.com&gt;
++
++ * po/es.po: Updated Spanish translations
++
++2003-08-21 11:16 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/hu.po, po/ru.po, po/sv.po: updated po files
++
++2003-08-21 08:58 Keld Jørn Simonsen &lt;keld at dkuug.dk&gt;
++
++ * po/da.po: updates
++ soft/GtkMdkWidgets/po/da.po soft/mdkkdm/po/da.po
++ soft/urpmi/po/da.po soft/userdrake2/po/da.po
++ gi/perl-install/share/po/da.po
++
++2003-08-20 19:53 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po, po/az.po, po/be.po, po/bg.po, po/bs.po, po/ca.po,
++ po/cs.po, po/cy.po, po/da.po, po/de.po, po/el.po, po/eo.po,
++ po/es.po, po/et.po, po/eu.po, po/fa.po, po/fi.po, po/fr.po,
++ po/ga.po, po/gl.po, po/he.po, po/hi.po, po/hr.po, po/hu.po,
++ po/id.po, po/it.po, po/ja.po, po/ka.po, po/ko.po, po/lt.po,
++ po/lv.po, po/mk.po, po/mn.po, po/ms.po, po/mt.po, po/nb.po,
++ po/nl.po, po/pl.po, po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po,
++ po/sk.po, po/sl.po, po/sq.po, po/sr.po, po/sr@Latn.po, po/sv.po,
++ po/ta.po, po/tg.po, po/tr.po, po/uk.po, po/userdrake.pot,
++ po/uz.po, po/uz@Cyrl.po, po/vi.po, po/wa.po, po/zh_CN.po,
++ po/zh_TW.po: updated pot file
++
++2003-08-20 17:59 Fabian Mandelbaum &lt;fabman at mandriva.com&gt;
++
++ * po/es.po: Updated Spanish translations
++
++2003-08-20 17:36 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - Explanations
++
++2003-08-20 17:33 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - added explanations
++
++2003-08-20 17:11 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - splash screen
++
++2003-08-20 16:28 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - splash screen
++
++2003-08-20 16:10 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * pixmaps/about.png: - add about.png
++
++2003-08-20 16:00 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * pixmaps/userdrake.png: - userdrake.png
++
++2003-08-20 15:56 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * pixmaps/userdrake.png: - remove userdrake.png
++
++2003-08-20 15:20 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - add splash screen when starting userdrake
++ - cosmetics (about dialog, borders )
++
++2003-08-20 15:15 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - splash screen for userdrake launching
++
++2003-08-20 05:15 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/tr.po: updated po file
++
++2003-08-19 21:05 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/Makefile, po/ar.po, po/az.po, po/be.po, po/bg.po, po/bs.po,
++ po/ca.po, po/cs.po, po/cy.po, po/da.po, po/de.po, po/el.po,
++ po/eo.po, po/es.po, po/et.po, po/eu.po, po/fa.po, po/fake_c.pl,
++ po/fi.po, po/fr.po, po/ga.po, po/gl.po, po/he.po, po/hi.po,
++ po/hr.po, po/hu.po, po/id.po, po/it.po, po/ja.po, po/ka.po,
++ po/ko.po, po/lt.po, po/lv.po, po/mk.po, po/mn.po, po/ms.po,
++ po/mt.po, po/nb.po, po/nl.po, po/pl.po, po/pt.po, po/pt_BR.po,
++ po/ro.po, po/ru.po, po/sk.po, po/sl.po, po/sq.po, po/sr.po,
++ po/sr@Latn.po, po/sv.po, po/ta.po, po/tg.po, po/tr.po, po/uk.po,
++ po/userdrake.pot, po/uz.po, po/uz@Cyrl.po, po/vi.po, po/wa.po,
++ po/zh_CN.po, po/zh_TW.po: updated pot file; changed the way the
++ pot is generated to use perl_checker
++
++2003-08-19 15:16 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * po/bg.po: - added missing \\n
++
++2003-08-19 15:13 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - add LN brand new icons
++ - add label to filter group widget (titi)
++
++2003-08-19 14:44 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * pixmaps/group_add.png, pixmaps/refresh.png, pixmaps/user_add.png,
++ pixmaps/user_conf.png, pixmaps/user_del.png: - readded png
++
++2003-08-19 14:42 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * pixmaps/group_add.png, pixmaps/refresh.png, pixmaps/user_add.png,
++ pixmaps/user_conf.png, pixmaps/user_del.png: - replace pngs
++
++2003-08-19 13:28 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: enhance filter area layout
++
++2003-08-19 13:24 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po, po/az.po, po/be.po, po/bg.po, po/bs.po, po/ca.po,
++ po/cs.po, po/cy.po, po/da.po, po/de.po, po/el.po, po/eo.po,
++ po/es.po, po/et.po, po/eu.po, po/fa.po, po/fi.po, po/fr.po,
++ po/ga.po, po/gl.po, po/he.po, po/hi.po, po/hr.po, po/hu.po,
++ po/id.po, po/it.po, po/ja.po, po/ka.po, po/ko.po, po/lt.po,
++ po/lv.po, po/mk.po, po/mn.po, po/ms.po, po/mt.po, po/nb.po,
++ po/nl.po, po/pl.po, po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po,
++ po/sk.po, po/sl.po, po/sq.po, po/sr.po, po/sr@Latn.po, po/sv.po,
++ po/ta.po, po/tg.po, po/tr.po, po/uk.po, po/userdrake.pot,
++ po/uz.po, po/uz@Cyrl.po, po/vi.po, po/wa.po, po/zh_CN.po,
++ po/zh_TW.po: updated pot file
++
++2003-08-19 13:02 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: do not add white space after toolbar
++
++2003-08-19 10:36 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - s/field/fields/
++
++2003-08-18 19:33 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/da.po, po/pt_BR.po: updated po files
++
++2003-08-18 18:16 Keld Jørn Simonsen &lt;keld at dkuug.dk&gt;
++
++ * po/da.po: Updates
++ soft/menu-messages/da.po soft/userdrake2/po/da.po
++ gi/perl-install/share/po/da.po
++
++2003-08-18 18:13 Arkadiusz Lipiec &lt;alipiec at elka.pw.edu.pl&gt;
++
++ * po/pl.po: Updated
++
++2003-08-18 14:45 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po, po/nl.po: updated po files
++
++2003-08-18 12:54 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - string fixes (Pablo and Co)
++
++2003-08-18 12:53 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - any.pm api changes
++
++2003-08-18 10:22 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/eu.po, po/nb.po, po/uz.po, po/uz@Cyrl.po: updated po files
++
++2003-08-17 23:06 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/sv.po: updated po file
++
++2003-08-17 16:36 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po, po/az.po, po/be.po, po/bg.po, po/bs.po, po/ca.po,
++ po/cs.po, po/cy.po, po/da.po, po/de.po, po/el.po, po/eo.po,
++ po/es.po, po/et.po, po/eu.po, po/fa.po, po/fi.po, po/fr.po,
++ po/ga.po, po/gl.po, po/he.po, po/hi.po, po/hr.po, po/hu.po,
++ po/id.po, po/it.po, po/ja.po, po/ka.po, po/ko.po, po/lt.po,
++ po/lv.po, po/mk.po, po/mn.po, po/ms.po, po/mt.po, po/nb.po,
++ po/nl.po, po/pl.po, po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po,
++ po/sk.po, po/sl.po, po/sq.po, po/sr.po, po/sr@Latn.po, po/sv.po,
++ po/ta.po, po/tg.po, po/tr.po, po/uk.po, po/userdrake.pot,
++ po/uz.po, po/uz@Cyrl.po, po/vi.po, po/wa.po, po/zh_CN.po,
++ po/zh_TW.po, userdrake: fixed English typo
++
++2003-08-17 13:25 Alice Lafox &lt;alice at lafox.com.ua&gt;
++
++ * po/ru.po: fixed typos and updated
++
++2003-08-17 12:00 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/et.po, po/hu.po: updated po files
++
++2003-08-17 11:12 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/he.po: updated po file
++
++2003-08-16 17:46 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po, po/az.po, po/be.po, po/bg.po, po/bs.po, po/ca.po,
++ po/cs.po, po/cy.po, po/da.po, po/de.po, po/el.po, po/eo.po,
++ po/es.po, po/et.po, po/eu.po, po/fa.po, po/fi.po, po/fr.po,
++ po/ga.po, po/gl.po, po/he.po, po/hi.po, po/hr.po, po/hu.po,
++ po/id.po, po/it.po, po/ja.po, po/ka.po, po/ko.po, po/lt.po,
++ po/lv.po, po/mk.po, po/mn.po, po/ms.po, po/mt.po, po/nb.po,
++ po/nl.po, po/pl.po, po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po,
++ po/sk.po, po/sl.po, po/sq.po, po/sr.po, po/sr@Latn.po, po/sv.po,
++ po/ta.po, po/tg.po, po/tr.po, po/uk.po, po/userdrake.pot,
++ po/uz.po, po/uz@Cyrl.po, po/vi.po, po/wa.po, po/zh_CN.po,
++ po/zh_TW.po: updated pot file
++
++2003-08-16 14:36 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - string fix
++
++2003-08-15 11:21 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/eu.po: updated po file
++
++2003-08-14 15:40 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/be.po: Added Belarussian file
++
++2003-08-13 23:28 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/hi.po, po/id.po, po/lv.po: updated po files
++
++2003-08-13 13:29 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/zh_CN.po: updated po file
++
++2003-08-11 19:39 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/bs.po: updated po file
++
++2003-08-11 14:02 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/hu.po: updated po file
++
++2003-08-11 10:44 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - small changes for any.pm api
++
++2003-08-11 10:43 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - respect new any api
++
++2003-08-10 22:08 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/cs.po: updated po file
++
++2003-08-09 15:07 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/da.po, po/fa.po: udated po files
++
++2003-08-08 21:46 Keld Jørn Simonsen &lt;keld at dkuug.dk&gt;
++
++ * po/da.po: Updates
++ soft/control-center/po/da.po soft/ftw/po/da.po
++ soft/mdkhtmlbrowser/po/da.po soft/rpmdrake/po/da.po
++ soft/urpmi/po/da.po soft/userdrake2/po/da.po
++ gi/perl-install/share/po/da.po
++
++2003-08-08 08:35 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/nl.po, po/sq.po, po/tr.po: updated po files
++
++2003-08-07 08:32 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/uk.po: updated po file
++
++2003-08-07 00:54 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/sv.po: updated po file
++
++2003-08-06 21:38 Fabian Mandelbaum &lt;fabman at mandriva.com&gt;
++
++ * po/es.po: Updated Spanish translations
++
++2003-08-06 21:24 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/pl.po: fixed error
++
++2003-08-06 21:17 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/az.po: updated po file
++
++2003-08-06 20:49 Arkadiusz Lipiec &lt;alipiec at elka.pw.edu.pl&gt;
++
++ * po/pl.po: Update
++
++2003-08-06 17:15 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/nb.po: updated po file
++
++2003-08-06 11:25 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/et.po: updated po file
++
++2003-08-05 23:39 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po, po/az.po, po/bg.po, po/bs.po, po/ca.po, po/cs.po,
++ po/cy.po, po/da.po, po/de.po, po/el.po, po/eo.po, po/es.po,
++ po/et.po, po/eu.po, po/fa.po, po/fi.po, po/fr.po, po/ga.po,
++ po/gl.po, po/he.po, po/hi.po, po/hr.po, po/hu.po, po/id.po,
++ po/it.po, po/ja.po, po/ka.po, po/ko.po, po/lt.po, po/lv.po,
++ po/mk.po, po/mn.po, po/ms.po, po/mt.po, po/nb.po, po/nl.po,
++ po/pl.po, po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po, po/sk.po,
++ po/sl.po, po/sq.po, po/sr.po, po/sr@Latn.po, po/sv.po, po/ta.po,
++ po/tg.po, po/tr.po, po/uk.po, po/userdrake.pot, po/uz.po,
++ po/uz@Cyrl.po, po/vi.po, po/wa.po, po/zh_CN.po, po/zh_TW.po:
++ updated pot file
++
++2003-08-05 11:09 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - center window
++
++2003-08-04 16:35 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - correct manpage location
++
++2003-08-04 16:33 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - spec cleanup
++
++2003-08-04 16:24 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - release for beta2
++
++2003-08-04 16:23 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: release for beta2
++
++2003-08-04 16:23 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - release for beta2
++
++2003-08-04 15:59 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - ask before removing group
++
++2003-08-04 15:36 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/he.po: updated po file
++
++2003-08-04 15:11 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - remove help from toolbar
++ - sort columns feature
++ - ask before removing group
++
++2003-08-04 11:57 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/uk.po: updated po file
++
++2003-08-04 09:28 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/fi.po: updated po file
++
++2003-08-03 10:28 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/fa.po, po/nl.po: updated po file
++
++2003-07-31 13:16 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po, po/az.po, po/bg.po, po/bs.po, po/ca.po, po/cs.po,
++ po/cy.po, po/da.po, po/de.po, po/el.po, po/eo.po, po/es.po,
++ po/et.po, po/eu.po, po/fi.po, po/fr.po, po/ga.po, po/gl.po,
++ po/he.po, po/hi.po, po/hr.po, po/hu.po, po/id.po, po/it.po,
++ po/ja.po, po/ka.po, po/ko.po, po/lt.po, po/lv.po, po/mk.po,
++ po/mn.po, po/ms.po, po/mt.po, po/nb.po, po/nl.po, po/pl.po,
++ po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po, po/sk.po, po/sl.po,
++ po/sq.po, po/sr.po, po/sr@Latn.po, po/sv.po, po/ta.po, po/tg.po,
++ po/tr.po, po/uk.po, po/userdrake.pot, po/uz.po, po/uz@Cyrl.po,
++ po/vi.po, po/wa.po, po/zh_CN.po, po/zh_TW.po, userdrake: changed
++ &quot;lower case letter&quot; to &quot;lower case latin letters&quot;; cyrillic,
++ greek,
++ etc can't be used for login names.
++
++2003-07-31 06:19 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/pt_BR.po: updated po file
++
++2003-07-30 15:01 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/cs.po, po/es.po: updated po file
++
++2003-07-30 11:18 Fabian Mandelbaum &lt;fabman at mandriva.com&gt;
++
++ * po/es.po: Updated Spanish translations
++
++2003-07-30 09:59 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/he.po, po/pt.po, po/sq.po: updated po files
++
++2003-07-29 12:41 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/bg.po, po/zh_CN.po: updated po files
++
++2003-07-29 10:11 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - remove help from toolbar
++ - sort columns feature
++
++2003-07-29 06:18 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/nb.po: updated po file
++
++2003-07-28 23:24 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/da.po, po/hu.po: updated po files
++
++2003-07-28 21:57 Keld Jørn Simonsen &lt;keld at dkuug.dk&gt;
++
++ * po/da.po: update
++ soft/urpmi/po/da.po soft/userdrake2/po/da.po
++
++2003-07-28 18:40 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/et.po: updated po file
++
++2003-07-28 16:43 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po, po/az.po, po/bg.po, po/bs.po, po/ca.po, po/cs.po,
++ po/cy.po, po/da.po, po/de.po, po/el.po, po/eo.po, po/es.po,
++ po/et.po, po/eu.po, po/fi.po, po/fr.po, po/ga.po, po/gl.po,
++ po/he.po, po/hi.po, po/hr.po, po/hu.po, po/id.po, po/it.po,
++ po/ja.po, po/ka.po, po/ko.po, po/lt.po, po/lv.po, po/mk.po,
++ po/mn.po, po/ms.po, po/mt.po, po/nb.po, po/nl.po, po/pl.po,
++ po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po, po/sk.po, po/sl.po,
++ po/sq.po, po/sr.po, po/sr@Latn.po, po/sv.po, po/ta.po, po/tg.po,
++ po/tr.po, po/uk.po, po/userdrake.pot, po/uz.po, po/uz@Cyrl.po,
++ po/vi.po, po/wa.po, po/zh_CN.po, po/zh_TW.po: updated pot file
++
++2003-07-28 16:00 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs: - split Clean entity to CleanHome and CleanSpool
++
++2003-07-28 15:38 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - cosmetics changes
++
++2003-07-28 14:53 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: Replace Combo boxes by Option Menu when Combo
++ should'nt be editable.
++
++2003-07-28 14:51 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - feature add-ons:
++ o ask before removing user. Choices to delete HomeDir and Spool
++ mail file
++ o Choose icon to be displayed in kdm/mdkkdm when adding user
++
++2003-07-28 14:49 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - We ask for removing user now before really deleting
++ it
++ Option are delete home dir to and delete spool mail.
++
++2003-07-28 11:15 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - add choice of icons when adding a user
++
++2003-07-28 10:58 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/uz.po, po/uz@Cyrl.po: Added Uzbek cyrillic file
++
++2003-07-28 09:20 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - replace Combo by OptionMenu
++
++2003-07-27 16:22 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/nb.po, po/nl.po: updated po files
++
++2003-07-26 19:56 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/eo.po, po/hu.po, po/ja.po, po/uk.po: updated po files
++
++2003-07-26 08:53 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po, po/az.po, po/bg.po, po/bs.po, po/ca.po, po/cs.po,
++ po/cy.po, po/de.po, po/el.po, po/eo.po, po/es.po, po/et.po,
++ po/eu.po, po/fi.po, po/fr.po, po/ga.po, po/gl.po, po/he.po,
++ po/hi.po, po/hr.po, po/id.po, po/it.po, po/ja.po, po/ka.po,
++ po/ko.po, po/lt.po, po/lv.po, po/mk.po, po/mn.po, po/ms.po,
++ po/mt.po, po/nb.po, po/nl.po, po/pl.po, po/pt.po, po/pt_BR.po,
++ po/ro.po, po/ru.po, po/sk.po, po/sl.po, po/sq.po, po/sr.po,
++ po/sr@Latn.po, po/sv.po, po/ta.po, po/tg.po, po/tr.po, po/uk.po,
++ po/uz.po, po/vi.po, po/wa.po, po/zh_CN.po, po/zh_TW.po: updated
++ pot file
++
++2003-07-26 08:50 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/da.po, po/hu.po, po/userdrake.pot: updated po files
++
++2003-07-25 15:18 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * todo: - addons (in french )
++
++2003-07-25 14:25 Keld Jørn Simonsen &lt;keld at dkuug.dk&gt;
++
++ * po/da.po: Update
++ soft/userdrake2/po/da.po
++
++2003-07-25 13:36 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake, userdrake.spec: - fix crash happening when selection
++ get lost (by refreshing list) and edit or
++ delete button is activated (found by David Baudens)
++
++2003-07-25 10:03 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/da.po, po/pt_BR.po, po/zh_CN.po: updated po files
++
++2003-07-25 03:20 Keld Jørn Simonsen &lt;keld at dkuug.dk&gt;
++
++ * po/da.po: soft/userdrake2/po/da.po
++
++2003-07-24 21:19 Arkadiusz Lipiec &lt;alipiec at elka.pw.edu.pl&gt;
++
++ * po/pl.po: One translation entry
++
++2003-07-24 12:59 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/sv.po: updated po file
++
++2003-07-24 07:12 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/eo.po: updated po file
++
++2003-07-23 23:14 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/sv.po: updated po file
++
++2003-07-23 13:37 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/es.po, po/ru.po: updated po file
++
++2003-07-22 17:26 Fabian Mandelbaum &lt;fabman at mandriva.com&gt;
++
++ * po/es.po: Updated Spanish translations
++
++2003-07-22 15:33 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/et.po: updated po file
++
++2003-07-21 20:47 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/bg.po, po/bs.po, po/hr.po, po/id.po, po/nl.po, po/pl.po,
++ po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po, po/sq.po, po/uk.po,
++ po/wa.po: fixed some ui problems
++
++2003-07-21 19:45 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po, po/az.po, po/bg.po, po/bs.po, po/ca.po, po/cs.po,
++ po/cy.po, po/da.po, po/de.po, po/el.po, po/eo.po, po/es.po,
++ po/et.po, po/eu.po, po/fi.po, po/fr.po, po/ga.po, po/gl.po,
++ po/he.po, po/hi.po, po/hr.po, po/hu.po, po/id.po, po/it.po,
++ po/ja.po, po/ka.po, po/ko.po, po/lt.po, po/lv.po, po/mk.po,
++ po/mn.po, po/ms.po, po/mt.po, po/nb.po, po/nl.po, po/pl.po,
++ po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po, po/sk.po, po/sl.po,
++ po/sq.po, po/sr.po, po/sr@Latn.po, po/sv.po, po/ta.po, po/tg.po,
++ po/tr.po, po/uk.po, po/userdrake.pot, po/uz.po, po/vi.po,
++ po/wa.po, po/zh_CN.po, po/zh_TW.po: updated pot file
++
++2003-07-20 09:06 Arkadiusz Lipiec &lt;alipiec at elka.pw.edu.pl&gt;
++
++ * po/pl.po: Update
++
++2003-07-17 16:51 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - no explicit require on libuser
++
++2003-07-17 15:24 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - misc fixes (locale fr)
++
++2003-07-17 15:24 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: fix a locale fr typo
++
++2003-07-17 15:14 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * po/fr.po: - fix for better toolbar fit
++
++2003-07-17 14:57 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * po/fr.po: - remove trailing &quot;
++
++2003-07-17 14:45 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: Cosmetic changes (stock icons everywhere)
++
++2003-07-17 14:44 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - Stocks icons for all menu entries (pretty nice)
++
++2003-07-17 14:21 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - Devel::Peek only for debugging
++
++2003-07-17 14:20 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - update
++
++2003-07-17 14:19 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - Use SpinButton to display date format (autoset
++ with current date)
++
++2003-07-17 14:18 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - spiin buttons cosmetics
++
++2003-07-17 13:59 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - spinbutton in place of entry
++
++2003-07-17 11:52 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * userdrake: added context information for translators
++
++2003-07-17 10:58 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - change date format (YYYY/MM/DD)
++
++2003-07-17 10:33 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po, po/az.po, po/bg.po, po/bs.po, po/ca.po, po/cs.po,
++ po/cy.po, po/da.po, po/de.po, po/el.po, po/eo.po, po/es.po,
++ po/et.po, po/eu.po, po/fi.po, po/fr.po, po/ga.po, po/gl.po,
++ po/he.po, po/hi.po, po/hr.po, po/hu.po, po/id.po, po/it.po,
++ po/ja.po, po/ka.po, po/ko.po, po/lt.po, po/lv.po, po/mk.po,
++ po/mn.po, po/ms.po, po/mt.po, po/nb.po, po/nl.po, po/pl.po,
++ po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po, po/sk.po, po/sl.po,
++ po/sq.po, po/sr.po, po/sr@Latn.po, po/sv.po, po/ta.po, po/tg.po,
++ po/tr.po, po/uk.po, po/userdrake.pot, po/uz.po, po/vi.po,
++ po/wa.po, po/zh_CN.po, po/zh_TW.po, userdrake: fixed English typo
++ (caracters -&gt; characters)
++
++2003-07-16 12:33 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: 0.92-12mdk
++
++2003-07-16 12:32 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: use stock icons in menus
++
++2003-07-15 17:43 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: 0.92-11mdk
++
++2003-07-14 20:01 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: sync with cooker
++
++2003-07-10 18:36 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: fix stock item
++
++2003-07-10 16:44 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po, po/az.po, po/bg.po, po/bs.po, po/ca.po, po/cs.po,
++ po/cy.po, po/da.po, po/de.po, po/el.po, po/eo.po, po/es.po,
++ po/et.po, po/eu.po, po/fi.po, po/fr.po, po/ga.po, po/gl.po,
++ po/he.po, po/hi.po, po/hr.po, po/hu.po, po/id.po, po/it.po,
++ po/ja.po, po/ka.po, po/ko.po, po/lt.po, po/lv.po, po/mk.po,
++ po/mn.po, po/ms.po, po/mt.po, po/nb.po, po/nl.po, po/pl.po,
++ po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po, po/sk.po, po/sl.po,
++ po/sq.po, po/sr.po, po/sr@Latn.po, po/sv.po, po/ta.po, po/tg.po,
++ po/tr.po, po/uk.po, po/userdrake.pot, po/uz.po, po/vi.po,
++ po/wa.po, po/zh_CN.po, po/zh_TW.po: updated pot file
++
++2003-07-10 16:16 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: 0.92-9mdk
++
++2003-07-10 16:15 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: use stock items
++
++2003-07-10 13:39 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: symbolic keys are back
++
++2003-07-10 13:00 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: 0.92-8mdk
++
++2003-07-10 12:59 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: fix tree filling
++
++2003-07-10 09:22 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: 0.92-7mdk
++
++2003-07-10 09:21 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: fix embedding
++
++2003-07-10 09:13 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: fix requires
++
++2003-07-10 09:13 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * Makefile: add srpm target
++
++2003-07-10 09:11 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: 0.92-6mdk
++
++2003-07-10 09:08 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: get rid of old equals
++
++2003-07-10 09:02 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: focus event handlers must return false else gdk louldy
++ complain
++
++2003-07-10 09:01 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: make dialogs be transcient to main window (they should
++ really be
++ Gtk2::Dialog)
++
++2003-07-10 08:52 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: fix entries filling
++
++2003-07-09 18:34 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: bump require on perl-Gtk2
++
++2003-07-09 18:32 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * icons/selected.png, icons/unselected.png: add the icons the
++ maintainer was too lazy or forget to commit in cvs
++
++2003-07-09 18:31 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * pixmaps/selected.png, pixmaps/unselected.png: *** empty log
++ message ***
++
++2003-07-09 18:28 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * pixmaps/selected.png, pixmaps/unselected.png: add the icons the
++ maintainer was too lazy or forget to commit in cvs
++
++2003-07-09 18:26 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake.spec: 0.92-5mdk
++
++2003-07-09 18:25 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: (ValidInt) kill obvious warnings
++
++2003-07-09 18:24 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: stop reinventing the wheel by duplicating it and reuse
++ existent
++ infrastructure
++
++2003-07-09 18:21 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: convert from gtk2-perl to gtk2-perl-xs
++
++2003-07-09 12:09 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/uk.po: updated po file
++
++2003-07-08 10:01 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/pt_BR.po: updated po file
++
++2003-07-08 09:00 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/es.po, po/ru.po, po/zh_CN.po: updated po files
++
++2003-07-05 17:48 Fabian Mandelbaum &lt;fabman at mandriva.com&gt;
++
++ * po/es.po: updated Spanish translations
++
++2003-07-04 14:17 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/et.po, po/userdrake.pot: updated po file
++
++2003-07-04 13:13 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * todo: - updates
++
++2003-07-04 13:10 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - Status of user account (Locked or Expired)
++ displayed in main window
++ - Keystroke features:
++ o Space bar and Enter key to select deselect user/group
++ o Enter Key to perform filtering
++ o Ctrl+Q to Quit (titi)
++ - sanity checks
++
++2003-07-04 13:06 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - keyval feature added
++
++2003-07-04 11:17 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - better solution to search with enter key
++
++2003-07-04 11:10 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - use entry to perform a search
++
++2003-07-04 10:45 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - comute Lock/Expire Time to set status
++
++2003-07-04 10:07 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - change date
++
++2003-07-03 20:56 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po, po/az.po, po/bg.po, po/bs.po, po/ca.po, po/cs.po,
++ po/cy.po, po/da.po, po/de.po, po/el.po, po/eo.po, po/es.po,
++ po/et.po, po/eu.po, po/fi.po, po/fr.po, po/ga.po, po/gl.po,
++ po/he.po, po/hi.po, po/hr.po, po/hu.po, po/id.po, po/it.po,
++ po/ja.po, po/ka.po, po/ko.po, po/lt.po, po/lv.po, po/mk.po,
++ po/mn.po, po/ms.po, po/mt.po, po/nb.po, po/nl.po, po/pl.po,
++ po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po, po/sk.po, po/sl.po,
++ po/sq.po, po/sr.po, po/sr@Latn.po, po/sv.po, po/ta.po, po/tg.po,
++ po/tr.po, po/uk.po, po/userdrake.pot, po/uz.po, po/vi.po,
++ po/wa.po, po/zh_CN.po, po/zh_TW.po: updated pot file
++
++2003-07-03 12:55 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - expired status imlementation
++
++2003-07-02 19:31 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po, po/az.po, po/bg.po, po/bs.po, po/ca.po, po/cs.po,
++ po/cy.po, po/da.po, po/de.po, po/el.po, po/eo.po, po/es.po,
++ po/et.po, po/eu.po, po/fi.po, po/fr.po, po/ga.po, po/gl.po,
++ po/he.po, po/hi.po, po/hr.po, po/hu.po, po/id.po, po/it.po,
++ po/ja.po, po/ka.po, po/ko.po, po/lt.po, po/lv.po, po/mk.po,
++ po/mn.po, po/ms.po, po/mt.po, po/nb.po, po/nl.po, po/pl.po,
++ po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po, po/sk.po, po/sl.po,
++ po/sq.po, po/sr.po, po/sr@Latn.po, po/sv.po, po/ta.po, po/tg.po,
++ po/tr.po, po/uk.po, po/userdrake.pot, po/uz.po, po/vi.po,
++ po/wa.po, po/zh_CN.po, po/zh_TW.po: updated pot file
++
++2003-07-02 14:50 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * todo: - update (some won't fix)
++
++2003-07-02 14:00 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * todo: - update
++
++2003-07-02 13:57 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - Status of user account (Locked or Expired)
++ displayed in main window
++
++2003-07-02 13:55 Thierry Vignaud &lt;tvignaud at mandriva.com&gt;
++
++ * userdrake: add std c-q shortcut
++
++2003-07-02 13:44 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - some features added:
++ Give the status of the account in main window
++
++2003-07-02 13:41 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * todo: - update
++
++2003-07-02 13:07 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - cosmetics fixes
++
++2003-07-01 15:24 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * todo: - add todo file
++
++2003-07-01 14:49 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - resync
++
++2003-07-01 14:29 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - 3mdk
++
++2003-07-01 14:28 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - put /usr/bin/userdrake in file
++
++2003-06-30 14:13 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - disable warnings when releasing (debug purpose)
++
++2003-06-29 22:52 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/fi.po, po/uk.po: updated po files
++
++2003-06-29 15:45 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/hi.po: updated po file
++
++2003-06-28 20:53 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/sq.po, po/userdrake.pot, po/userdrake2.pot: updated po file
++
++2003-06-28 15:05 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ja.po, po/nb.po, po/no.po, po/ro.po: updated po files
++
++2003-06-27 19:26 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/Makefile.PL: - cleanup
++
++2003-06-27 19:21 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - remove trailing string
++
++2003-06-27 19:18 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - need testing
++
++2003-06-27 19:03 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - fix prefix
++
++2003-06-27 19:02 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * po/Makefile: - fix
++
++2003-06-27 18:54 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * Makefile: - meuh
++
++2003-06-27 18:28 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * Makefile: - ln stuffs for normal users and drakconf
++
++2003-06-27 18:22 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - mv ln to Makefile
++
++2003-06-27 18:19 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - change position for ln
++
++2003-06-27 18:17 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - Check the context before enumerating users
++ (avoir die assertion in gtk)
++ - link %%_bindir/userdrake to %%_sbindir/userdrake (for normal
++ users and drakconf)
++
++2003-06-27 18:11 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - readded userdrake (ca me gonfle)
++
++2003-06-27 18:09 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - resync file
++
++2003-06-27 17:59 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - changes on po
++
++2003-06-27 17:58 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: *** empty log message ***
++
++2003-06-27 17:23 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - fix translation crash
++
++2003-06-27 17:05 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - no warnings when $ctx is about to be defined
++
++2003-06-27 12:53 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po, po/az.po, po/bg.po, po/bs.po, po/ca.po, po/cs.po,
++ po/cy.po, po/da.po, po/de.po, po/el.po, po/eo.po, po/es.po,
++ po/et.po, po/eu.po, po/fi.po, po/fr.po, po/ga.po, po/gl.po,
++ po/he.po, po/hi.po, po/hr.po, po/hu.po, po/id.po, po/it.po,
++ po/ja.po, po/ka.po, po/ko.po, po/lt.po, po/lv.po, po/mk.po,
++ po/mn.po, po/ms.po, po/mt.po, po/nl.po, po/no.po, po/pl.po,
++ po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po, po/sk.po, po/sl.po,
++ po/sq.po, po/sr.po, po/sr@Latn.po, po/sv.po, po/ta.po, po/tg.po,
++ po/tr.po, po/uk.po, po/userdrake2.pot, po/uz.po, po/vi.po,
++ po/wa.po, po/zh_CN.po, po/zh_TW.po: updated pot file
++
++2003-06-27 12:26 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * Makefile: - s/userdrake2/userdrake/
++
++2003-06-27 12:22 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * Makefile: - s/userdrake2/userdrake/
++
++2003-06-27 12:22 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * po/POTFILES.in: - s/userdrake/userdrake2/
++
++2003-06-27 11:22 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake: - userdrake superseeded userdake2
++
++2003-06-27 11:22 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake2: - remove userdrake2
++
++2003-06-27 07:16 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * Makefile, userdrake.spec, userdrake2: - sanity checks
++
++2003-06-26 20:48 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ja.po: updated po file
++
++2003-06-26 12:50 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po, po/az.po, po/bg.po, po/bs.po, po/ca.po, po/cs.po,
++ po/cy.po, po/da.po, po/de.po, po/el.po, po/eo.po, po/es.po,
++ po/et.po, po/eu.po, po/fi.po, po/fr.po, po/ga.po, po/gl.po,
++ po/he.po, po/hi.po, po/hr.po, po/hu.po, po/id.po, po/it.po,
++ po/ja.po, po/ka.po, po/ko.po, po/lt.po, po/lv.po, po/mk.po,
++ po/mn.po, po/ms.po, po/mt.po, po/nl.po, po/no.po, po/pl.po,
++ po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po, po/sk.po, po/sl.po,
++ po/sq.po, po/sr.po, po/sr@Latn.po, po/sv.po, po/ta.po, po/tg.po,
++ po/tr.po, po/uk.po, po/uz.po, po/vi.po, po/wa.po, po/zh_CN.po,
++ po/zh_TW.po: corrected url
++
++2003-06-26 12:37 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/bg.po, po/cs.po, po/eo.po, po/es.po, po/id.po: updated po
++ files
++
++2003-06-25 12:18 Fabian Mandelbaum &lt;fabman at mandriva.com&gt;
++
++ * po/es.po: Updated Spanish translations
++
++2003-06-25 11:37 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po, po/az.po, po/bg.po, po/bs.po, po/ca.po, po/cs.po,
++ po/cy.po, po/da.po, po/de.po, po/el.po, po/eo.po, po/es.po,
++ po/et.po, po/eu.po, po/fi.po, po/fr.po, po/ga.po, po/gl.po,
++ po/he.po, po/hi.po, po/hr.po, po/hu.po, po/id.po, po/it.po,
++ po/ja.po, po/ka.po, po/ko.po, po/lt.po, po/lv.po, po/mk.po,
++ po/mn.po, po/ms.po, po/mt.po, po/nl.po, po/no.po, po/pl.po,
++ po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po, po/sk.po, po/sl.po,
++ po/sq.po, po/sr.po, po/sr@Latn.po, po/sv.po, po/ta.po, po/tg.po,
++ po/tr.po, po/uk.po, po/uz.po, po/vi.po, po/wa.po, po/zh_CN.po,
++ po/zh_TW.po: aded info on web interface
++
++2003-06-25 11:00 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po, po/fr.po, po/pt.po, po/userdrake2.pot: updated po files
++
++2003-06-24 14:50 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - revert back to userdrake2
++
++2003-06-24 14:44 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * Makefile: - revert back to userdrake2
++
++2003-06-24 13:58 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * Makefile: s/userdrake2/userdrake
++
++2003-06-24 13:53 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - sanity checks
++
++2003-06-24 13:43 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake2: - check if group is empty before doing operation on
++ it
++
++2003-06-24 08:56 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - locale bug
++ - pos
++
++2003-06-24 08:54 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * po/fr.po: - correct conflicts in fr.po
++
++2003-06-24 08:51 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - add tranlations
++
++2003-06-24 08:07 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - remove trailing rm -rf buildroot
++
++2003-06-23 23:54 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po, po/az.po, po/bg.po, po/bs.po, po/ca.po, po/cs.po,
++ po/cy.po, po/da.po, po/de.po, po/el.po, po/eo.po, po/es.po,
++ po/et.po, po/eu.po, po/fi.po, po/fr.po, po/ga.po, po/gl.po,
++ po/he.po, po/hi.po, po/hr.po, po/hu.po, po/id.po, po/it.po,
++ po/ja.po, po/ka.po, po/ko.po, po/lt.po, po/lv.po, po/mk.po,
++ po/mn.po, po/ms.po, po/mt.po, po/nl.po, po/no.po, po/pl.po,
++ po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po, po/sk.po, po/sl.po,
++ po/sq.po, po/sr.po, po/sr@Latn.po, po/sv.po, po/ta.po, po/tg.po,
++ po/tr.po, po/uk.po, po/uz.po, po/vi.po, po/wa.po, po/zh_CN.po,
++ po/zh_TW.po: updated po files
++
++2003-06-23 18:50 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/wa.po: updated po file
++
++2003-06-23 16:56 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/userdrake2.pot: added pot file
++
++2003-06-23 16:54 Pablo Saratxaga &lt;pablo at mandriva.com&gt;
++
++ * po/ar.po, po/az.po, po/bg.po, po/bs.po, po/ca.po, po/cs.po,
++ po/cy.po, po/da.po, po/de.po, po/el.po, po/eo.po, po/es.po,
++ po/et.po, po/eu.po, po/fi.po, po/fr.po, po/ga.po, po/gl.po,
++ po/he.po, po/hi.po, po/hr.po, po/hu.po, po/id.po, po/it.po,
++ po/ja.po, po/ka.po, po/ko.po, po/lt.po, po/lv.po, po/mk.po,
++ po/mn.po, po/ms.po, po/mt.po, po/nl.po, po/no.po, po/pl.po,
++ po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po, po/sk.po, po/sl.po,
++ po/sq.po, po/sr.po, po/sr@Latn.po, po/sv.po, po/ta.po, po/tg.po,
++ po/tr.po, po/uk.po, po/uz.po, po/vi.po, po/wa.po, po/zh_CN.po,
++ po/zh_TW.po: Took translations from old userdrake
++
++2003-06-23 15:07 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake2: - shadow sanity checks
++
++2003-06-23 14:59 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake2: - use int to make SViOK succeded
++
++2003-06-23 14:47 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake2: - fix warning
++
++2003-06-23 14:37 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs, userdrake2: - Correct bug from converting NV to IV
++ (Warly)
++
++2003-06-23 11:51 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.pm, userdrake.spec: - bump version to 0.92
++
++2003-06-23 11:50 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake2: - change version to next release 0.92
++
++2003-06-23 11:47 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: s/userdrake2/userdrake/
++
++2003-06-23 11:29 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * Makefile: - rename userdrake to userdrake2
++
++2003-06-23 11:28 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * Makefile: - alias userdrake userdrake2
++
++2003-06-23 11:22 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake2: - password expiration sanity checks
++
++2003-06-23 11:10 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - correct typo
++
++2003-06-23 11:09 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - final release
++
++2003-06-23 10:59 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - Buildrequires libuser-devel
++
++2003-06-23 10:58 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - require libuser &gt; 0.51.7-2mdk
++
++2003-06-23 10:54 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake2: - release cleanup
++
++2003-06-23 10:51 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake2: - release version
++
++2003-06-23 10:51 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs: - disable debugging
++
++2003-06-23 10:48 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - add RELEASE_NOTES
++
++2003-06-23 10:47 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * RELEASE_NOTES: - update release notes
++
++2003-06-23 10:41 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs, userdrake2: - final release
++ - enable search
++
++2003-06-19 16:40 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake2: - Password aging
++
++2003-06-19 16:39 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs: - misc fixes
++
++2003-06-19 08:45 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs: - unlock , islocked and lock implementations
++
++2003-06-19 08:19 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * RELEASE_NOTES: - release notes
++
++2003-06-19 07:45 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake2: - Locking implementation
++
++2003-06-18 16:31 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake2: - expiration account
++
++2003-06-18 10:22 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake2: - Primary group should be set in combo first.
++ - Append selected group in combo and grow the list
++
++2003-06-18 10:21 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - date of release
++
++2003-06-17 13:36 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - Release is near
++
++2003-06-12 16:08 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake2: - clean up
++
++2003-06-12 16:04 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake2: - select at first click
++
++2003-06-11 17:46 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake2: - password aging
++ - add group to users
++ - use Pixbuf Cell instead of Toggle
++
++2003-06-10 09:58 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * Makefile: - add icons for selection groups and users
++
++2003-06-07 11:01 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * pixmaps/userdrake.png: - add png file (for about window)
++
++2003-06-06 17:16 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs: - ask to remove directory when removing user
++
++2003-06-06 17:16 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake2: - ask to remove home directory when removing user
++
++2003-06-05 17:18 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs, userdrake2: - delete group when deleting user
++
++2003-06-05 10:57 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake2: - cosmetic fixes
++
++2003-06-05 08:42 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake2: - add home directory and populate it.
++ - delete home when deleting user
++
++2003-06-05 08:41 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs: - add home directory on request and populate it
++ (/etc/skel)
++
++2003-06-02 17:03 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs: - same func for get and set
++ - (-65533) as an invalid number
++ - sanity checks
++
++2003-06-02 17:02 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake2: - same function to get or set attributes
++ - use -65533 as an invalid number
++ - more sanity checks
++
++2003-05-28 17:23 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs: - sanity checks
++
++2003-05-28 17:22 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake2: - sanity checks (password and regex username)
++
++2003-05-27 12:02 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs: - useradd sanity checks
++
++2003-05-27 12:02 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake2: - sanity checks for useradd
++
++2003-05-23 15:01 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake2: - s/get_user_shells/GetUserShells/
++
++2003-05-23 12:51 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs: - LookupById implementations (for lu_user and
++ lu_group)
++
++2003-05-23 12:50 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.prefs: - User preference default
++
++2003-05-23 12:49 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake2: - Life is sad (implement another way of filtering)
++
++2003-05-20 09:37 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - add sysconfig file (/etc/sysconfig/userdrake)
++
++2003-05-20 09:35 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs: - big updates
++
++2003-05-20 09:35 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake2: - Big Updates
++ o Filter Users
++ o Group members
++ o Refresh func
++
++2003-05-16 12:40 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs: - bless eachiindex of returned ent arrays
++
++2003-05-13 12:49 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs: - use lu_start to build the opaque admin object
++
++2003-05-13 12:27 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs: - call lu_start with &amp;error
++
++2003-05-12 12:52 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs: *** empty log message ***
++
++2003-05-12 12:01 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake2: *** empty log message ***
++
++2003-04-30 07:46 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs, userdrake2: *** empty log message ***
++
++2003-04-29 14:27 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake2: *** empty log message ***
++
++2003-04-29 09:13 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs: - hunting segfault
++
++2003-04-28 12:49 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs: - sanity check
++
++2003-04-28 09:58 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/Makefile.PL: - updates libs
++
++2003-04-25 15:47 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs: - update
++
++2003-04-25 07:13 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * AUTHORS: - add AUTHORS file
++
++2003-04-25 07:12 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * COPYING, README: - add README + COPYING
++
++2003-04-25 07:12 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * po/fake_c.pl, po/fr.po: - add po stuffs
++
++2003-04-24 17:00 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - update
++
++2003-04-24 16:55 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/Makefile.PL, USER/USER.xs: - libuser update
++
++2003-04-24 14:34 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.pm: - correct typo
++
++2003-04-24 13:25 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.pm: - fix typo
++
++2003-04-24 12:24 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: change prefix to _prefix
++
++2003-04-24 12:01 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: s/2//
++
++2003-04-24 09:55 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake2: - use USER
++
++2003-04-24 09:55 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - correct typo
++
++2003-04-24 09:33 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * po/POTFILES.in: - POTFILES
++
++2003-04-24 09:27 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * po, po/Makefile: - Makefile for po
++
++2003-04-24 09:13 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs: - get_user_shells
++
++2003-04-24 09:09 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * userdrake.spec: - update
++ - include perl xs file
++
++2003-04-23 16:05 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/Makefile.PL: - s/libuser/luser/
++
++2003-04-23 16:04 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs: - compiling and testing
++
++2003-04-23 14:07 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/typemap: - use of O_OBJECT pointing on ref
++
++2003-04-23 14:06 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs: - update (broken)
++
++2003-04-04 15:32 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs: - update broken code
++
++2003-03-27 17:38 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER/USER.xs: - lu_start
++
++2003-03-27 10:46 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * Makefile, perlobject.map, userdrake.spec, userdrake2: - commit
++ important files
++
++2003-03-27 10:45 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * USER, USER/Changes, USER/Makefile.PL, USER/README, USER/USER.pm,
++ USER/USER.xs, USER/ppport.h, USER/typemap: - add library files
++
++2003-03-27 10:42 Daouda Lo &lt;daouda at mandriva.com&gt;
++
++ * icons, icons/userdrake16.png, icons/userdrake32.png,
++ icons/userdrake48.png, pixmaps, pixmaps/group_add.png,
++ pixmaps/help.png, pixmaps/redhat-config-users.png,
++ pixmaps/refresh.png, pixmaps/user_add.png, pixmaps/user_conf.png,
++ pixmaps/user_del.png: - add png files
++
++2003-03-27 10:42
++
++ * soft/userdrake2/branches, soft/userdrake2/tags, .: New repository
++ initialized by cvs2svn.
++
+
+<a id="userdrake2tags1133Makefile">Added: userdrake2/tags/1.13.3/Makefile</a>
+===================================================================
+--- userdrake2/tags/1.13.3/Makefile (rev 0)
++++ userdrake2/tags/1.13.3/Makefile 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,51 @@
++
++VERSION = 1.13.3
++NAME = userdrake
++BINNAME = userdrake
++
++PREFIX = /
++DATADIR = $(PREFIX)/usr/share
++ICONSDIR = $(DATADIR)/icons
++SBINDIR = $(PREFIX)/usr/sbin
++BINDIR = $(PREFIX)/usr/bin
++SYSCONFDIR = $(PREFIX)/etc/sysconfig
++SBINREL = ../sbin
++
++SUBDIRS = po
++localedir = $(prefix)/usr/share/locale
++
++all: userdrake
++ for d in $(SUBDIRS); do ( cd $$d ; make $@ ) ; done
++
++clean:
++ $(MAKE) -C po $@
++ rm -f core .#*[0-9]
++ for d in $(SUBDIRS); do ( cd $$d ; make $@ ) ; done
++
++install: all
++ $(MAKE) -C po $@
++ install -d $(PREFIX)/{/etc/sysconfig,usr/{bin,sbin,share/$(NAME)/pixmaps,share/icons/{mini,large}}}
++ install -m755 $(NAME) $(SBINDIR)/
++ ln -sf $(SBINREL)/userdrake $(BINDIR)/userdrake
++ ln -sf $(SBINREL)/userdrake $(SBINDIR)/drakuser
++ install -d $(SYSCONFDIR)
++ install -m644 userdrake.prefs $(SYSCONFDIR)/userdrake
++ install -m644 pixmaps/*.png $(DATADIR)/$(NAME)/pixmaps
++ install -m644 icons/$(NAME)16.png $(ICONSDIR)/mini/$(NAME).png
++ install -m644 icons/$(NAME)32.png $(ICONSDIR)/$(NAME).png
++ install -m644 icons/$(NAME)48.png $(ICONSDIR)/large/$(NAME).png
++ install -m644 icons/*selec*.png $(DATADIR)/$(NAME)/pixmaps
++ for d in $(SUBDIRS); do ( cd $$d ; make $@ ) ; done
++
++dis: clean
++ rm -rf $(NAME)-$(VERSION) ../$(NAME)-$(VERSION).tar*
++ svn export -q -rBASE . $(NAME)-$(VERSION)
++ find $(NAME)-$(VERSION) -name .svnignore |xargs rm -rf
++ tar cfY ../$(NAME)-$(VERSION).tar.lzma $(NAME)-$(VERSION)
++ rm -rf $(NAME)-$(VERSION)
++
++.PHONY: ChangeLog
++ChangeLog:
++ svn2cl --accum --authors ../../soft/common/username.xml
++ rm -f *.bak
++ svn commit -m &quot;Generated by svn2cl the `LC_TIME=C date '+%d_%b'`&quot; ChangeLog
+
+
+Property changes on: userdrake2/tags/1.13.3/Makefile
+___________________________________________________________________
+<a id="svneolstyle">Added: svn:eol-style</a>
+ + native
+
+<a id="userdrake2tags1133NEWS">Added: userdrake2/tags/1.13.3/NEWS</a>
+===================================================================
+--- userdrake2/tags/1.13.3/NEWS (rev 0)
++++ userdrake2/tags/1.13.3/NEWS 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,34 @@
++Version 1.13.2 - 22 July 2010, Pascal Terjan
++
++- define PACKAGE_NAME, it is used by libuser definition of _
++
++Version 1.13.1 - 26 May 2010, Pascal Terjan
++
++- update translations
++
++Version 1.13 - 2 February 2010, Christophe Fergeau
++
++- do not crash when trying to rename a user to an already existing name
++- make libuser binding i18n aware
++- refactorization for readability (please test)
++- use libuser translations
++
++Version 1.12 - 21 October 2009, Christophe Fergeau
++
++- refresh user list when adding/removing xguest
++
++Version 1.11 - 8 September 2009, Aurelien Lefebvre
++
++- enable to install/uninstall xguest account from 'actions' menu (#54498)
++
++Version 1.10 - 8 September 2009, Aurelien Lefebvre
++
++- added password weakness check (require &gt;= drakx-12.49)
++
++Version 1.9.1 - 15 April 2009, Thierry Vignaud
++
++- translation updates
++
++Version 1.9 - 30 March 2009, Thierry Vignaud
++
++- do not crash if some face images are missing (#45024)
+
+<a id="userdrake2tags1133README">Added: userdrake2/tags/1.13.3/README</a>
+===================================================================
+--- userdrake2/tags/1.13.3/README (rev 0)
++++ userdrake2/tags/1.13.3/README 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,6 @@
++Userdrake version II
++
++Changes
++- Big rewritting
++- Port to perl-GTK2
++
+
+<a id="userdrake2tags1133RELEASE_NOTES">Added: userdrake2/tags/1.13.3/RELEASE_NOTES</a>
+===================================================================
+--- userdrake2/tags/1.13.3/RELEASE_NOTES (rev 0)
++++ userdrake2/tags/1.13.3/RELEASE_NOTES 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,25 @@
++A new version of userdrake is released. It is completly
++rewritten from C to Perl (More precisely Gui is now in perl-Gtk2
++and backend is in XS). the XS part relies on libuser.
++The new userdrake comes with many features and the Gui is now more
++consistent (isn't it?).
++Some of the features are:
++
++- Easy way to add/remove users in groups and vice versa
++- Dialog box for deleting user's home and user mail spool when removing user
++- libuser API (security when accessing users files)
++- Ability to put Uid and Gid manually when adding user/group
++- Change of the primary group of users
++- 2 filters for system and normal users (pattern matching)
++- Password aging
++- Ability to lock user's account
++- User's account expiration
++...
++
++Missing features:
++- LDAP configuration (coming up)
++
++userdrake2 requires libuser1-0.51.7-2mdk.i586.rpm or higher to work properly
++
++Please test and report bug.
++
+
+<a id="userdrake2tags1133USERChanges">Added: userdrake2/tags/1.13.3/USER/Changes</a>
+===================================================================
+--- userdrake2/tags/1.13.3/USER/Changes (rev 0)
++++ userdrake2/tags/1.13.3/USER/Changes 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,6 @@
++Revision history for Perl extension userdrake.
++
++0.01 Fri Feb 28 15:36:17 2003
++ - original version; created by h2xs 1.22 with options
++ -A -n userdrake
++
+
+<a id="userdrake2tags1133USERMakefilePL">Added: userdrake2/tags/1.13.3/USER/Makefile.PL</a>
+===================================================================
+--- userdrake2/tags/1.13.3/USER/Makefile.PL (rev 0)
++++ userdrake2/tags/1.13.3/USER/Makefile.PL 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,18 @@
++use ExtUtils::MakeMaker;
++$Verbose=1;
++# See lib/ExtUtils/MakeMaker.pm for details of how to influence
++# the contents of the Makefile that is written.
++my $libs = &quot;&quot; . `pkg-config --libs libuser`;
++chomp $libs;
++$libs .= &quot;-lpam_misc -lpam &quot;;
++WriteMakefile(
++ 'NAME' =&gt; 'USER',
++ 'OPTIMIZE' =&gt; '-Wno-declaration-after-statement',
++ 'VERSION_FROM' =&gt; 'USER.pm',
++ 'OBJECT' =&gt; 'USER.o', # link all the C files too
++ 'LIBS' =&gt; &quot;$libs&quot;, # e.g., '-lm'
++ 'DEFINE' =&gt; '-DPACKAGE_NAME=\&quot;userdrake\&quot;', # e.g., '-DHAVE_SOMETHING'
++ 'INC' =&gt; &quot;`pkg-config --cflags libuser`&quot;, # e.g., '-I. -I/usr/include/other'
++ 'XSPROTOARG' =&gt; '-noprototypes',
++ 'TYPEMAPS' =&gt; ['../perlobject.map' ],
++);
+
+<a id="userdrake2tags1133USERREADME">Added: userdrake2/tags/1.13.3/USER/README</a>
+===================================================================
+--- userdrake2/tags/1.13.3/USER/README (rev 0)
++++ userdrake2/tags/1.13.3/USER/README 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,38 @@
++userdrake version 0.01
++======================
++
++The README is used to introduce the module and provide instructions on
++how to install the module, any machine dependencies it may have (for
++example C compilers and installed libraries) and any other information
++that should be provided before the module is installed.
++
++A README file is required for CPAN modules since CPAN extracts the
++README file from a module distribution so that people browsing the
++archive can use it get an idea of the modules uses. It is usually a
++good idea to provide version information here so that people can
++decide whether fixes for the module are worth downloading.
++
++INSTALLATION
++
++To install this module type the following:
++
++ perl Makefile.PL
++ make
++ make test
++ make install
++
++DEPENDENCIES
++
++This module requires these other modules and libraries:
++
++ blah blah blah
++
++COPYRIGHT AND LICENCE
++
++Put the correct copyright and licence information here.
++
++Copyright (C) 2003 daouda
++
++This library is free software; you can redistribute it and/or modify
++it under the same terms as Perl itself.
++
+
+<a id="userdrake2tags1133USERUSERpm">Added: userdrake2/tags/1.13.3/USER/USER.pm</a>
+===================================================================
+--- userdrake2/tags/1.13.3/USER/USER.pm (rev 0)
++++ userdrake2/tags/1.13.3/USER/USER.pm 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,71 @@
++package USER;
++
++use strict;
++require DynaLoader;
++
++our @ISA = qw(DynaLoader);
++our $VERSION = '0.92';
++
++USER-&gt;bootstrap($VERSION);
++
++# Preloaded methods go here.
++
++package USER::ADMIN;
++our @ISA = qw();
++
++package USER::ENT;
++our @ISA = qw();
++
++1;
++__END__
++# Below is stub documentation for your module. You'd better edit it!
++
++=head1 NAME
++
++USER - Perl extension for libuser API
++
++=head1 SYNOPSIS
++
++ use USER;
++
++=head1 ABSTRACT
++
++ A user and group account administration library
++
++=head1 DESCRIPTION
++
++ The libuser library implements a standardized interface for manipulating
++ and administering user and group accounts. The library uses pluggable
++ back-ends to interface to its data sources.
++ This is the perl Extension for libuser. It is mostly used by userdrake
++ which is a GUI for user and groups administration
++
++=head2 EXPORT
++
++None by default.
++
++
++
++=head1 SEE ALSO
++
++Mention other useful documentation such as the documentation of
++related modules or operating system documentation (such as man pages
++in UNIX), or any relevant external documentation such as RFCs or
++standards.
++
++If you have a mailing list set up for your module, mention it here.
++
++If you have a web site set up for your module, mention it here.
++
++=head1 AUTHOR
++
++Daouda LO, E&lt;lt&gt;daouda@mandrakesoft.comE&lt;gt&gt;
++
++=head1 COPYRIGHT AND LICENSE
++
++Copyright 2003 by Mandrakesoft SA
++
++This library is free software; you can redistribute it and/or modify
++it under the same terms as Perl itself.
++
++=cut
+
+<a id="userdrake2tags1133USERUSERxs">Added: userdrake2/tags/1.13.3/USER/USER.xs</a>
+===================================================================
+--- userdrake2/tags/1.13.3/USER/USER.xs (rev 0)
++++ userdrake2/tags/1.13.3/USER/USER.xs 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,1385 @@
++/* Copyright (C) 2003-2005 Mandriva SA Daouda Lo (daouda)
++ * This program is free software; you can redistribute it and/or
++ * modify it under the same terms as Perl itself.
++ */
++
++#include &quot;EXTERN.h&quot;
++#include &quot;perl.h&quot;
++#include &quot;XSUB.h&quot;
++
++#include &quot;ppport.h&quot;
++
++#include &lt;grp.h&gt;
++#include &lt;pwd.h&gt;
++#include &lt;crypt.h&gt;
++#include &lt;ctype.h&gt;
++#include &lt;dirent.h&gt;
++#include &lt;fcntl.h&gt;
++#include &lt;locale.h&gt;
++#include &lt;limits.h&gt;
++#include &lt;sys/signal.h&gt;
++#include &lt;sys/stat.h&gt;
++#include &lt;sys/types.h&gt;
++#include &lt;sys/time.h&gt;
++#include &lt;stdio.h&gt;
++#include &lt;stdlib.h&gt;
++#include &lt;string.h&gt;
++#include &lt;unistd.h&gt;
++#include &lt;glib.h&gt;
++#include &lt;utime.h&gt;
++#include &lt;libuser/user.h&gt;
++#include &lt;libuser/user_private.h&gt;
++
++
++
++#define INVALID (-0x80000000)
++#ifndef _
++#define _(String) gettext(String)
++#endif
++#ifndef N_
++#define N_(String) (String)
++#endif
++
++typedef struct context USER__ADMIN;
++typedef struct lu_ent USER__ENT;
++typedef struct lu_error USER__ERR;
++
++static SV ** convert_value_array_list(register SV **sp, GValueArray *array) {
++ GValue *value;
++ int i;
++ long l;
++ const char *s;
++ for (i = 0; (array != NULL) &amp;&amp; (i &lt; array-&gt;n_values); i++) {
++ value = g_value_array_get_nth(array, i);
++ /* If the item is a G_TYPE_LONG, add it as a double. */
++ if (G_VALUE_HOLDS_LONG(value)) {
++ l = g_value_get_long(value);
++ XPUSHs(sv_2mortal(newSViv(l)));
++ } else if (G_VALUE_HOLDS_STRING(value)) {
++ s = g_value_get_string(value);
++ XPUSHs(sv_2mortal(newSVpv(s, 0)));
++ }
++ }
++ return sp;
++}
++
++/* Populate a user's home directory, copying data from a named skeleton
++ * directory, setting all ownerships as given, and setting the mode of
++ * the top-level directory as given. */
++int
++lu_homedir_populate(const char *skeleton, const char *directory,
++ uid_t owner, gid_t group, mode_t mode,
++ USER__ERR **error)
++{
++ struct dirent *ent;
++ DIR *dir;
++ struct stat st;
++ char skelpath[PATH_MAX], path[PATH_MAX], buf[PATH_MAX];
++ struct utimbuf timebuf;
++ int ifd = -1, ofd = -1, i;
++ off_t offset;
++ LU_ERROR_CHECK(error);
++ /* If the destination directory exists, return. */
++ dir = opendir(skeleton);
++ if (dir == NULL) {
++ lu_error_new(error, lu_error_generic,
++ _(&quot;Error reading `%s': %s&quot;), skeleton,
++ strerror(errno));
++ return 0;
++ }
++ /* Create the top-level directory. */
++ if ((mkdir(directory, mode) == -1) &amp;&amp; (errno != EEXIST)) {
++ lu_error_new(error, lu_error_generic,
++ _(&quot;Error creating `%s': %s&quot;), directory,
++ strerror(errno));
++ closedir(dir);
++ return 0;
++ }
++ /* Set the ownership on the top-level directory. */
++ chown(directory, owner, group);
++ while ((ent = readdir(dir)) != NULL) {
++ /* Iterate through each item in the directory. */
++ /* Skip over self and parent hard links. */
++ if (strcmp(ent-&gt;d_name, &quot;.&quot;) == 0) {
++ continue;
++ }
++ if (strcmp(ent-&gt;d_name, &quot;..&quot;) == 0) {
++ continue;
++ }
++ /* Build the path of the skeleton file or directory and
++ * its corresponding member in the new tree. */
++ snprintf(skelpath, sizeof(skelpath), &quot;%s/%s&quot;,
++ skeleton, ent-&gt;d_name);
++ snprintf(path, sizeof(path), &quot;%s/%s&quot;, directory,
++ ent-&gt;d_name);
++ /* What we do next depends on the type of entry we're
++ * looking at. */
++ if (lstat(skelpath, &amp;st) != -1) {
++ /* We always want to preserve atime/mtime. */
++ timebuf.actime = st.st_atime;
++ timebuf.modtime = st.st_mtime;
++ /* If it's a directory, descend into it. */
++ if (S_ISDIR(st.st_mode)) {
++ if (!lu_homedir_populate(skelpath,
++ path,
++ owner,
++ st.st_gid ?: group,
++ st.st_mode,
++ error)) {
++ /* Aargh! Fail up. */
++ closedir(dir);
++ return 0;
++ }
++ /* Set the date on the directory. */
++ utime(path, &amp;timebuf);
++ continue;
++ }
++ /* If it's a symlink, duplicate it. */
++ if (S_ISLNK(st.st_mode)) {
++ if (readlink(skelpath, buf,
++ sizeof(buf) - 1) != -1) {
++ buf[sizeof(buf) - 1] = '\0';
++ symlink(buf, path);
++ lchown(path, owner, st.st_gid ?: group);
++ utime(path, &amp;timebuf);
++ }
++ continue;
++ }
++ /* If it's a regular file, copy it. */
++ if (S_ISREG(st.st_mode)) {
++ /* Open both the input and output
++ * files. If we fail to do either,
++ * we have to give up. */
++ ifd = open(skelpath, O_RDONLY);
++ if (ifd != -1) {
++ ofd = open(path,
++ O_EXCL | O_CREAT | O_WRONLY,
++ st.st_mode);
++ }
++ if ((ifd == -1) || (ofd == -1)) {
++ /* Sorry, no can do. */
++ close (ifd);
++ close (ofd);
++ continue;
++ }
++ /* Now just copy the data. */
++ do {
++ i = read(ifd, &amp;buf, sizeof(buf));
++ if (i &gt; 0) {
++ write(ofd, buf, i);
++ }
++ } while (i &gt; 0);
++ /* Close the files. */
++ offset = lseek(ofd, 0, SEEK_CUR);
++ if (offset != ((off_t) -1)) {
++ ftruncate(ofd, offset);
++ }
++ close (ifd);
++ close (ofd);
++ /* Set the ownership and timestamp on
++ * the new file. */
++ chown(path, owner, st.st_gid ?: group);
++ utime(path, &amp;timebuf);
++ continue;
++ }
++ /* Note that we don't copy device specials. */
++ }
++ }
++ closedir(dir);
++ return 1;
++}
++
++/* Recursively remove a user's home (or really, any) directory. */
++int
++lu_homedir_remove(const char *directory, struct lu_error ** error)
++{
++ struct dirent *ent;
++ DIR *dir;
++ struct stat st;
++ char path[PATH_MAX];
++ LU_ERROR_CHECK(error);
++ /* Open the directory. This catches the case that it's already gone. */
++ dir = opendir(directory);
++ if (dir == NULL) {
++ lu_error_new(error, lu_error_stat,
++ _(&quot;Error removing `%s': %s&quot;), directory,
++ strerror(errno));
++ return 0;
++ }
++ /* Iterate over all of its contents. */
++ while ((ent = readdir(dir)) != NULL) {
++ /* Skip over the self and parent hard links. */
++ if (strcmp(ent-&gt;d_name, &quot;.&quot;) == 0) {
++ continue;
++ }
++ if (strcmp(ent-&gt;d_name, &quot;..&quot;) == 0) {
++ continue;
++ }
++ /* Generate the full path of the next victim. */
++ snprintf(path, sizeof(path), &quot;%s/%s&quot;, directory, ent-&gt;d_name);
++ /* What we do next depends on whether or not the next item to
++ * remove is a directory. */
++ if (lstat(path, &amp;st) != -1) {
++ if (S_ISDIR(st.st_mode)) {
++ /* We decend into subdirectories... */
++ if (lu_homedir_remove(path, error) == FALSE) {
++ closedir(dir);
++ return 0;
++ }
++ } else {
++ /* ... and unlink everything else. */
++ if (unlink(path) == -1) {
++ lu_error_new(error,
++ lu_error_generic,
++ _(&quot;Error removing &quot;
++ &quot;`%s': %s&quot;),
++ path,
++ strerror
++ (errno));
++ closedir(dir);
++ return 0;
++ }
++ }
++ }
++ }
++ closedir(dir);
++
++ /* As a final step, remove the directory itself. */
++ if (rmdir(directory) == -1) {
++ lu_error_new(error, lu_error_generic,
++ _(&quot;Error removing `%s': %s&quot;), directory,
++ strerror(errno));
++ return 0;
++ }
++
++ return 1;
++}
++/* Move a directory from one place to another. */
++int
++lu_homedir_move(const char *oldhome, const char *newhome,
++ USER__ERR ** error)
++{
++ struct stat st;
++ LU_ERROR_CHECK(error);
++ /* If the directory exists... */
++ if (stat(oldhome, &amp;st) != -1) {
++ /* ... and we can copy it ... */
++ if (lu_homedir_populate(oldhome, newhome,
++ st.st_uid, st.st_gid, st.st_mode,
++ error)) {
++ /* ... remove the old one. */
++ return lu_homedir_remove(oldhome, error);
++ }
++ }
++ return 0;
++}
++/* Concatenate a string onto another string on the heap. */
++char *
++lu_strconcat(char *existing, const char *appendee)
++{
++ char *tmp;
++ if (existing == NULL) {
++ existing = g_strdup(appendee);
++ } else {
++ tmp = g_strconcat(existing, appendee, NULL);
++ g_free(existing);
++ existing = tmp;
++ }
++ return existing;
++}
++/* Send nscd an arbitrary signal. */
++void
++lu_signal_nscd(int signum)
++{
++ FILE *fp;
++ char buf[LINE_MAX];
++ /* If it's running, then its PID is in this file. Open it. */
++ if ((fp = fopen(&quot;/var/run/nscd.pid&quot;, &quot;r&quot;)) != NULL) {
++ /* Read the PID. */
++ memset(buf, 0, sizeof(buf));
++ fgets(buf, sizeof(buf), fp);
++ /* If the PID is sane, send it a signal. */
++ if (strlen(buf) &gt; 0) {
++ pid_t pid = atol(buf);
++ if (pid != 0) {
++ kill(pid, signum);
++ }
++ }
++ fclose(fp);
++ }
++}
++
++/* Send nscd a SIGHUP. */
++void
++lu_hup_nscd()
++{
++ lu_signal_nscd(SIGHUP);
++}
++
++/* Create a mail spool for the user. */
++int
++lu_mailspool_create_remove(USER__ADMIN *ctx, USER__ENT *ent,
++ int action)
++{
++ GValueArray *array;
++ GValue *value;
++ const char *spooldir;
++ long uid, gid;
++ char *p, *username;
++ struct group grp, *err;
++ USER__ENT *groupEnt;
++ USER__ERR *error = NULL;
++ char buf[LINE_MAX * 4];
++ int fd;
++
++ /* Find the GID of the owner of the file. */
++ gid = INVALID;
++ groupEnt = lu_ent_new();
++ if (lu_group_lookup_name(ctx, &quot;mail&quot;, groupEnt, &amp;error)) {
++ array = lu_ent_get(groupEnt, LU_GIDNUMBER);
++ if (array != NULL) {
++ value = g_value_array_get_nth(array, 0);
++ if (G_VALUE_HOLDS_LONG(value)) {
++ gid = g_value_get_long(value);
++ } else
++ if (G_VALUE_HOLDS_STRING(value)) {
++ gid = strtol(g_value_get_string(value), &amp;p, 0);
++ if (*p != '\0') {
++ gid = INVALID;
++ }
++ } else {
++ g_assert_not_reached();
++ }
++ }
++ }
++ lu_ent_free(groupEnt);
++
++ /* Er, okay. Check with libc. */
++ if (gid == INVALID) {
++ if ((getgrnam_r(&quot;mail&quot;, &amp;grp, buf, sizeof(buf), &amp;err) == 0) &amp;&amp;
++ (err == &amp;grp)) {
++ gid = grp.gr_gid;
++ }
++ }
++
++ /* Aiieee. Use the user's group. */
++ if (gid == INVALID) {
++ array = lu_ent_get(ent, LU_GIDNUMBER);
++ if (array != NULL) {
++ value = g_value_array_get_nth(array, 0);
++ if (G_VALUE_HOLDS_LONG(value)) {
++ gid = g_value_get_long(value);
++ } else
++ if (G_VALUE_HOLDS_STRING(value)) {
++ gid = strtol(g_value_get_string(value), &amp;p, 0);
++ if (*p == '\0') {
++ gid = INVALID;
++ }
++ } else {
++ g_warning(&quot;Unable to determine user's GID.&quot;);
++ g_assert_not_reached();
++ }
++ }
++ }
++ g_return_val_if_fail(gid != INVALID, FALSE);
++
++ /* Now get the user's UID. */
++ array = lu_ent_get(ent, LU_UIDNUMBER);
++ if (array != NULL) {
++ value = g_value_array_get_nth(array, 0);
++ uid = INVALID;
++ if (G_VALUE_HOLDS_LONG(value)) {
++ uid = g_value_get_long(value);
++ } else
++ if (G_VALUE_HOLDS_STRING(value)) {
++ uid = strtol(g_value_get_string(value), &amp;p, 0);
++ if (*p != '\0') {
++ uid = INVALID;
++ }
++ } else {
++ g_warning(&quot;Unable to determine user's UID.&quot;);
++ g_assert_not_reached();
++ }
++ }
++ g_return_val_if_fail(uid != INVALID, FALSE);
++
++ /* Now get the user's login. */
++ username = NULL;
++ array = lu_ent_get(ent, LU_USERNAME);
++ if (array != NULL) {
++ value = g_value_array_get_nth(array, 0);
++ if (G_VALUE_HOLDS_LONG(value)) {
++ username = g_strdup_printf(&quot;%ld&quot;,
++ g_value_get_long(value));
++ } else
++ if (G_VALUE_HOLDS_STRING(value)) {
++ username = g_value_dup_string(value);
++ } else {
++ g_warning(&quot;Unable to determine user's name.&quot;);
++ g_assert_not_reached();
++ }
++ }
++ g_return_val_if_fail(username != NULL, FALSE);
++
++ /* Get the location of the spool directory. */
++ spooldir = lu_cfg_read_single(ctx, &quot;defaults/mailspooldir&quot;,
++ &quot;/var/mail&quot;);
++
++ /* That wasn't that hard. Now we just need to create the file. */
++ p = g_strdup_printf(&quot;%s/%s&quot;, spooldir, username);
++ g_free(username);
++ if (action) {
++ fd = open(p, O_WRONLY | O_CREAT, 0);
++ if (fd != -1) {
++ fchown(fd, uid, gid);
++ fchmod(fd, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP);
++ close(fd);
++ g_free(p);
++ return 1;
++ }
++ } else {
++ if (unlink(p) == 0) {
++ g_free(p);
++ return 1;
++ }
++ if (errno == ENOENT) {
++ g_free(p);
++ return 1;
++ }
++ }
++ g_free(p);
++
++ return 0;
++}
++
++MODULE = USER PACKAGE = USER::ADMIN PREFIX = Admin_
++
++USER::ADMIN *
++Admin_new(CLASS)
++ char *CLASS
++ CODE:
++ USER__ERR *error = NULL;
++ RETVAL = (USER__ADMIN *)lu_start(NULL, 0, NULL, NULL, lu_prompt_console_quiet, NULL, &amp;error);
++ if( RETVAL == NULL ){
++ warn(&quot;unable to malloc USER__ADMIN&quot;);
++ XSRETURN_UNDEF;
++ }
++ OUTPUT:
++ RETVAL
++
++void
++Admin_DESTROY(self)
++ USER::ADMIN *self
++ CODE:
++ if (self) lu_end(self);
++
++int
++Admin_UserAdd(self, ent, is_system, dont_create_home)
++ USER::ADMIN *self
++ USER::ENT *ent
++ int is_system
++ int dont_create_home
++ CODE:
++ USER__ERR *error = NULL;
++ long uidNumber, gidNumber;
++ char *skeleton = &quot;/etc/skel&quot;, *homeDirectory = NULL;
++ GValueArray *values;
++ GValue *value;
++ /* GMOT (Great Moment Of Truth) */
++ if (lu_user_add(self, ent, &amp;error) == FALSE) {
++ croak(_(&quot;Account creation failed: '%s'.\n&quot;), error ? error-&gt;string : &quot;Unknown error&quot;);
++ RETVAL = 0;
++ } else RETVAL = 1 ;
++ if (!dont_create_home) {
++ /* Read the user's UID. */
++ values = lu_ent_get(ent, LU_UIDNUMBER);
++ value = g_value_array_get_nth(values, 0);
++ if (G_VALUE_HOLDS_LONG(value)) {
++ uidNumber = g_value_get_long(value);
++ } else
++ if (G_VALUE_HOLDS_STRING(value)) {
++ uidNumber = atol(g_value_get_string(value));
++ } else {
++ warn(_(&quot;Cannot get Uid number&quot;));
++ }
++
++ /* Read the user's GID. */
++ values = lu_ent_get(ent, LU_GIDNUMBER);
++ value = g_value_array_get_nth(values, 0);
++ if (G_VALUE_HOLDS_LONG(value)) {
++ gidNumber = g_value_get_long(value);
++ } else
++ if (G_VALUE_HOLDS_STRING(value)) {
++ gidNumber = atol(g_value_get_string(value));
++ } else {
++ warn(_(&quot;Cannot retrieve value&quot;));
++ }
++
++ /* Read the user's home directory. */
++ values = lu_ent_get(ent, LU_HOMEDIRECTORY);
++ value = g_value_array_get_nth(values, 0);
++ homeDirectory = g_value_get_string(value);
++
++ if (lu_homedir_populate(skeleton, homeDirectory,
++ uidNumber, gidNumber, 0700,
++ &amp;error) == 0) {
++ warn(_(&quot;Error creating `%s': %s&quot;), homeDirectory, error ? error-&gt;string : &quot;unknown error&quot;);
++ RETVAL = 2;
++ }
++
++ /* Create a mail spool for the user. */
++ if (lu_mailspool_create_remove(self, ent, 1) != 1) {
++ warn(_(&quot;Error creating mail spool.\n&quot;));
++ RETVAL = 3;
++ }
++ }
++ OUTPUT:
++ RETVAL
++
++int
++Admin_IsLocked(self, ent)
++ USER::ADMIN *self
++ USER::ENT *ent
++ CODE:
++ USER__ERR *error = NULL;
++ if (lu_user_islocked(self, ent, &amp;error)) {
++ RETVAL = 1;
++ } else { RETVAL = 0; };
++ OUTPUT:
++ RETVAL
++
++int
++Admin_Lock(self, ent)
++ USER::ADMIN *self
++ USER::ENT *ent
++ CODE:
++ USER__ERR *error = NULL;
++ if (lu_user_lock(self, ent, &amp;error) == FALSE) {
++ RETVAL = 0;
++ } else { RETVAL = 1; };
++ OUTPUT:
++ RETVAL
++
++int
++Admin_UnLock(self, ent)
++ USER::ADMIN *self
++ USER::ENT *ent
++ CODE:
++ USER__ERR *error = NULL;
++ if (lu_user_unlock(self, ent, &amp;error) == FALSE) {
++ RETVAL = 0;
++ } else { RETVAL = 1; };
++ OUTPUT:
++ RETVAL
++
++void
++Admin_UserModify(self, ent)
++ USER::ADMIN *self
++ USER::ENT *ent
++ PPCODE:
++ USER__ERR *error = NULL;
++ if (lu_user_modify(self, ent, &amp;error) == FALSE) {
++ croak(_(&quot;User could not be modified: '%s'.\n&quot;), error ? error-&gt;string : &quot;Unknown error&quot;);
++ }
++
++int
++Admin_UserDel(self, ent)
++ USER::ADMIN *self
++ USER::ENT *ent
++ CODE:
++ USER__ERR *error = NULL;
++ if (lu_user_delete(self, ent, &amp;error) == FALSE) {
++ croak(_(&quot;User Could Not be deleted: '%s'.\n&quot;), error ? error-&gt;string : &quot;Unknown error&quot;);
++ RETVAL = 0;
++ } else RETVAL = 1 ;
++ OUTPUT:
++ RETVAL
++
++void
++Admin_InitUser(self, name, is_system)
++ USER::ADMIN *self
++ char *name
++ int is_system
++ PPCODE:
++ USER__ENT *ent;
++ ent = lu_ent_new();
++ lu_user_default(self, name, is_system, ent);
++ XPUSHs(sv_2mortal(sv_bless(newRV_noinc(newSViv(ent)), gv_stashpv(&quot;USER::ENT&quot;, 1))));
++
++void
++Admin_UserSetPass(self, ent, userPasswd)
++ USER::ADMIN *self
++ USER::ENT *ent
++ char *userPasswd
++ PPCODE:
++ USER__ERR *error = NULL;
++ gboolean crypted = FALSE;
++ if (lu_user_setpass(self, ent, userPasswd, crypted, &amp;error) == FALSE) {
++ croak(_(&quot;Failed to set password: '%s'.\n&quot;), error ? error-&gt;string : _(&quot;unknown error&quot;));
++ if (error) { lu_error_free(&amp;error); }
++ }
++
++void
++Admin_LookupUserByName(self, name)
++ USER::ADMIN *self
++ char *name
++ PPCODE:
++ USER__ENT *ent;
++ USER__ERR *error = NULL;
++ ent = lu_ent_new();
++ if (lu_user_lookup_name(self, name, ent, &amp;error)) {
++ XPUSHs(sv_2mortal(sv_bless(newRV_noinc(newSViv(ent)), gv_stashpv(&quot;USER::ENT&quot;, 1))));
++ } else {
++ lu_ent_free(ent);
++ }
++
++void
++Admin_LookupUserById(self, id)
++ USER::ADMIN *self
++ long id
++ PPCODE:
++ USER__ENT *ent;
++ USER__ERR *error = NULL;
++ ent = lu_ent_new();
++ if (lu_user_lookup_id(self, id, ent, &amp;error)) {
++ XPUSHs(sv_2mortal(sv_bless(newRV_noinc(newSViv(ent)), gv_stashpv(&quot;USER::ENT&quot;, 1))));
++ } else {
++ lu_ent_free(ent);
++ }
++
++void
++Admin_LookupGroupByName(self, name)
++ USER::ADMIN *self
++ char *name
++ PPCODE:
++ USER__ENT *ent;
++ USER__ERR *error = NULL;
++ ent = lu_ent_new();
++ if (lu_group_lookup_name(self, name, ent, &amp;error)) {
++ XPUSHs(sv_2mortal(sv_bless(newRV_noinc(newSViv(ent)), gv_stashpv(&quot;USER::ENT&quot;, 1))));
++ } else {
++ lu_ent_free(ent);
++ }
++
++void
++Admin_LookupGroupById(self, id)
++ USER::ADMIN *self
++ int id
++ PPCODE:
++ USER__ENT *ent;
++ USER__ERR *error = NULL;
++ ent = lu_ent_new();
++ if (lu_group_lookup_id(self, id, ent, &amp;error)) {
++ XPUSHs(sv_2mortal(sv_bless(newRV_noinc(newSViv(ent)), gv_stashpv(&quot;USER::ENT&quot;, 1))));
++ } else {
++ lu_ent_free(ent);
++ }
++
++void
++Admin_GroupAdd(self, ent)
++ USER::ADMIN *self
++ USER::ENT *ent
++ PPCODE:
++ USER__ERR *error = NULL;
++ if (lu_group_add(self, ent, &amp;error) == FALSE) {
++ warn(_(&quot;Group creation failed.\n&quot;));
++ }
++
++void
++Admin_GroupModify(self, ent)
++ USER::ADMIN *self
++ USER::ENT *ent
++ PPCODE:
++ USER__ERR *error = NULL;
++ if (lu_group_modify(self, ent, &amp;error) == FALSE) {
++ croak(_(&quot;Group could not be modified: '%s'.\n&quot;), error ? error-&gt;string : &quot;Unknown error&quot;);
++ }
++
++int
++Admin_GroupDel(self, ent)
++ USER::ADMIN *self
++ USER::ENT *ent
++ CODE:
++ USER__ERR *error = NULL;
++ if (lu_group_delete(self, ent, &amp;error) == FALSE) {
++ croak(_(&quot;Group could not be deleted: '%s'.\n&quot;), error ? error-&gt;string : &quot;Unknown error&quot;);
++ RETVAL = 0;
++ } else RETVAL = 1 ;
++ OUTPUT:
++ RETVAL
++
++void
++Admin_InitGroup(self, name, is_system)
++ USER::ADMIN *self
++ char *name
++ int is_system
++ PPCODE:
++ USER__ENT *ent;
++ ent = lu_ent_new();
++ lu_group_default(self, name, is_system, ent);
++ XPUSHs(sv_2mortal(sv_bless(newRV_noinc(newSViv(ent)), gv_stashpv(&quot;USER::ENT&quot;, 1))));
++
++AV *
++Admin_EnumerateUsersByGroup(self, name)
++ USER::ADMIN *self
++ char *name
++ CODE:
++ int c;
++ USER__ERR *error = NULL;
++ RETVAL = (AV*)sv_2mortal((SV*)newAV());
++ GValueArray *results;
++ results = lu_users_enumerate_by_group(self, name, &amp;error);
++ for (c = 0; (results != NULL) &amp;&amp; (c &lt; results-&gt;n_values); c++) {
++ if( av_store(RETVAL, c, newSVpv(g_value_get_string(g_value_array_get_nth(results, c)), 0)) == NULL ){
++ warn(&quot;XS_UsersEnumerateFull: failed to store elems&quot;);
++ }
++ }
++ g_value_array_free(results);
++ OUTPUT:
++ RETVAL
++
++AV *
++Admin_EnumerateGroupsByUser(self, name)
++ USER::ADMIN *self
++ char *name
++ CODE:
++ int c;
++ USER__ERR *error = NULL;
++ RETVAL = (AV*)sv_2mortal((SV*)newAV());
++ GValueArray *results;
++ results = lu_groups_enumerate_by_user(self, name, &amp;error);
++ for (c = 0; (results != NULL) &amp;&amp; (c &lt; results-&gt;n_values); c++) {
++ if( av_store(RETVAL, c, newSVpv(g_value_get_string(g_value_array_get_nth(results, c)), 0)) == NULL ){
++ warn(&quot;XS_UsersEnumerateFull: failed to store elems&quot;);
++ }
++ }
++ g_value_array_free(results);
++ OUTPUT:
++ RETVAL
++
++AV *
++Admin_UsersEnumerate(self)
++ USER::ADMIN *self
++ CODE:
++ int c;
++ USER__ERR *error = NULL;
++ const char *pattern = NULL;
++ RETVAL = (AV*)sv_2mortal((SV*)newAV());
++ GValueArray *users;
++ users = lu_users_enumerate(self, pattern, &amp;error);
++ for (c = 0; ( users != NULL) &amp;&amp; (c &lt; users-&gt;n_values); c++) {
++ if( av_store(RETVAL, c, newSVpv(g_value_get_string(g_value_array_get_nth(users, c)), 0)) == NULL ){
++ warn(&quot;XS_UserEnumerate: failed to store elements of array&quot;);
++ }
++ }
++ g_value_array_free(users);
++ OUTPUT:
++ RETVAL
++
++AV *
++Admin_GroupsEnumerate(self)
++ USER::ADMIN *self
++ CODE:
++ int c;
++ USER__ERR *error = NULL;
++ const char *pattern = NULL;
++ RETVAL = (AV*)sv_2mortal((SV*)newAV());
++ GValueArray *groups;
++ groups = lu_groups_enumerate(self, pattern, &amp;error);
++ for (c = 0; (groups != NULL) &amp;&amp; (c &lt; groups-&gt;n_values); c++) {
++ if( av_store(RETVAL, c, newSVpv(g_value_get_string(g_value_array_get_nth(groups, c)), 0)) == NULL ){
++ warn(&quot;XS_GroupEnumerate: failed to store elements of array&quot;);
++ }
++ }
++ g_value_array_free(groups);
++ OUTPUT:
++ RETVAL
++
++AV *
++Admin_UsersEnumerateFull(self)
++ USER::ADMIN *self
++ CODE:
++ int c;
++ USER__ERR *error = NULL;
++ const char *pattern = NULL;
++ RETVAL = (AV*)sv_2mortal((SV*)newAV());
++ GPtrArray *accounts;
++ accounts = lu_users_enumerate_full(self, pattern, &amp;error);
++ for (c = 0; (accounts != NULL) &amp;&amp; (c &lt; accounts-&gt;len); c++) {
++ if( av_store(RETVAL, c, sv_bless(newRV_noinc(newSViv(g_ptr_array_index(accounts, c))), gv_stashpv(&quot;USER::ENT&quot;, 1))) == NULL ){
++ warn(&quot;XS_UsersEnumerateFull: failed to store elems&quot;);
++ }
++ }
++ g_ptr_array_free(accounts, TRUE);
++ OUTPUT:
++ RETVAL
++
++AV *
++Admin_GroupsEnumerateFull(self)
++ USER::ADMIN *self
++ CODE:
++ int c;
++ USER__ERR *error = NULL;
++ const char *pattern = NULL;
++ RETVAL = (AV*)sv_2mortal((SV*)newAV());
++ GPtrArray *accounts;
++ accounts = lu_groups_enumerate_full(self, pattern, &amp;error);
++ for (c = 0; (accounts != NULL) &amp;&amp; (c &lt; accounts-&gt;len); c++) {
++ if( av_store(RETVAL, c, sv_bless(newRV_noinc(newSViv(g_ptr_array_index(accounts, c))), gv_stashpv(&quot;USER::ENT&quot;, 1))) == NULL ){
++ warn(&quot;XS_UsersEnumerateFull: failed to store elems&quot;);
++ }
++ }
++ g_ptr_array_free(accounts, TRUE);
++ OUTPUT:
++ RETVAL
++
++AV *
++Admin_GetUserShells(self)
++ USER::ADMIN *self
++ CODE:
++ int i = 0;
++ const char *shell;
++ RETVAL = (AV*)sv_2mortal((SV*)newAV());
++ setusershell();
++ while ((shell = getusershell()) != NULL) {
++ av_store(RETVAL, i, newSVpv(shell, 0));
++ i++;
++ }
++ endusershell();
++ OUTPUT:
++ RETVAL
++
++void
++Admin_CleanHome(self, ent)
++ USER::ADMIN *self
++ USER::ENT *ent
++ PPCODE:
++ USER__ERR *error = NULL;
++ GValueArray *values;
++ GValue *value;
++ const char *tmp = NULL;
++ values = lu_ent_get(ent, LU_HOMEDIRECTORY);
++ if ((values == NULL) || (values-&gt;n_values == 0)) {
++ warn(_(&quot;No home directory for the user.\n&quot;));
++ } else {
++ value = g_value_array_get_nth(values, 0);
++ tmp = g_value_get_string(value);
++ if (lu_homedir_remove(tmp, &amp;error) == FALSE) {
++ if (error-&gt;code == lu_error_stat)
++ warn(_(&quot;Home Directory Could Not be deleted: '%s'.\n&quot;), error ? error-&gt;string : &quot;Unknown error&quot;);
++ else
++ croak(_(&quot;Home Directory Could Not be deleted: '%s'.\n&quot;), error ? error-&gt;string : &quot;Unknown error&quot;);
++ }
++ }
++
++void
++Admin_CleanSpool(self, ent)
++ USER::ADMIN *self
++ USER::ENT *ent
++ PPCODE:
++ if (lu_mailspool_create_remove(self, ent, 0) != 1) {
++ warn(_(&quot;Error deleting mail spool.\n&quot;));
++ }
++
++MODULE = USER PACKAGE = USER::ENT PREFIX = Ent_
++
++USER::ENT *
++Ent_new (CLASS)
++ char *CLASS
++ CODE:
++ RETVAL = (USER__ENT *)lu_ent_new();
++ if( RETVAL == NULL ){
++ warn(&quot;unable to malloc USER__ENT&quot;);
++ XSRETURN_UNDEF;
++ }
++ OUTPUT:
++ RETVAL
++
++void
++Ent_DESTROY(self)
++ USER::ENT *self
++ CODE:
++ if (self) lu_ent_free(self);
++
++void
++Ent_EntType(self)
++ USER::ENT *self
++ PPCODE:
++ switch (self-&gt;type) {
++ case lu_invalid:
++ break;
++ case lu_user:
++ XPUSHs(sv_2mortal(newSVpv(&quot;user&quot;, 0)));
++ break;
++ case lu_group:
++ XPUSHs(sv_2mortal(newSVpv(&quot;group&quot;, 0)));
++ break;
++ default:
++ break;
++ }
++
++void
++Ent_UserName(self, ssv)
++ USER::ENT *self
++ SV * ssv
++ PPCODE:
++ GValueArray *values;
++ GValue *value, val;
++ if ( SvIOK(ssv) &amp;&amp; SvIV(ssv) == -65533) {
++ values = lu_ent_get(self, LU_USERNAME);
++ if (values != NULL) {
++ value = g_value_array_get_nth(values, 0);
++ if (G_VALUE_HOLDS_STRING(value)) {
++ XPUSHs(sv_2mortal(newSVpv(g_value_get_string(value), 0)));
++ } else if (G_VALUE_HOLDS_LONG(value)) {
++ XPUSHs(sv_2mortal(newSVpv(g_strdup_printf(&quot;%ld&quot;, g_value_get_long(value)), 0)));
++ }
++ }
++ } else if( SvPOK( ssv ) ) {
++ memset(&amp;val, 0, sizeof(val));
++ g_value_init(&amp;val, G_TYPE_STRING);
++ g_value_set_string(&amp;val, SvPV(ssv,PL_na));
++ lu_ent_clear(self, LU_USERNAME);
++ lu_ent_add(self, LU_USERNAME, &amp;val);
++ } else {
++ warn(&quot;XS_UserName: Cannot make operation on LU_USERNAME attribute&quot;);
++ }
++
++void
++Ent_GroupName(self, ssv)
++ USER::ENT *self
++ SV * ssv
++ PPCODE:
++ GValueArray *values;
++ GValue *value, val;
++ if ( SvIOK(ssv) &amp;&amp; SvIV(ssv) == -65533) {
++ values = lu_ent_get(self, LU_GROUPNAME);
++ if (values != NULL) {
++ value = g_value_array_get_nth(values, 0);
++ if (G_VALUE_HOLDS_STRING(value)) {
++ XPUSHs(sv_2mortal(newSVpv(g_value_get_string(value), 0)));
++ } else if (G_VALUE_HOLDS_LONG(value)) {
++ XPUSHs(sv_2mortal(newSVpv(g_strdup_printf(&quot;%ld&quot;, g_value_get_long(value)), 0)));
++ }
++ }
++ } else if( SvPOK( ssv ) ) {
++ memset(&amp;val, 0, sizeof(val));
++ g_value_init(&amp;val, G_TYPE_STRING);
++ g_value_set_string(&amp;val, SvPV(ssv,PL_na));
++ lu_ent_clear(self, LU_GROUPNAME);
++ lu_ent_add(self, LU_GROUPNAME, &amp;val);
++ } else {
++ warn(&quot;XS_GroupName: Cannot make operation on LU_GROUPNAME attribute&quot;);
++ }
++
++AV*
++Ent_MemberName(self, rv, AddOrDel)
++ USER::ENT *self
++ SV *rv
++ int AddOrDel
++ CODE:
++ GValueArray *members;
++ GValue *value, val;
++ RETVAL = (AV*)sv_2mortal((SV*)newAV());
++ char *member = NULL;
++ int c;
++ if ( SvIOK(rv) &amp;&amp; SvIV(rv) == 1) {
++ members = lu_ent_get(self, LU_MEMBERNAME);
++ for (c = 0; (members != NULL) &amp;&amp; (c &lt; members-&gt;n_values); c++) {
++ if( av_store(RETVAL, c, newSVpv(g_value_get_string(g_value_array_get_nth(members, c)), 0)) == NULL ){
++ warn(&quot;XS_MemberName: failed to store elements of array&quot;);
++ }
++ }
++ } else if ( SvPOK( rv ) ) {
++ memset(&amp;val, 0, sizeof(val));
++ g_value_init(&amp;val, G_TYPE_STRING);
++ member = SvPV(rv, PL_na);
++ g_value_set_string(&amp;val, member);
++ if (AddOrDel == 1) {
++ lu_ent_add(self, LU_MEMBERNAME, &amp;val);
++ } else if (AddOrDel == 2) {
++ lu_ent_del(self, LU_MEMBERNAME, &amp;val);
++ }
++ g_value_reset(&amp;val);
++ } else {
++ croak(&quot;XS_MemberName: Cannot make operation on LU_MEMBERNAME attribute&quot;);
++ };
++ OUTPUT:
++ RETVAL
++
++void
++Ent_Uid(self, ssv)
++ USER::ENT *self
++ SV *ssv;
++ PPCODE:
++ GValueArray *values;
++ GValue *value, val;
++ if ( SvIOK(ssv) ) {
++ if (SvIV(ssv) == -65533) {
++ values = lu_ent_get(self, LU_UIDNUMBER);
++ if (values != NULL) {
++ value = g_value_array_get_nth(values, 0);
++ if (G_VALUE_HOLDS_LONG(value)) {
++ XPUSHs(sv_2mortal(newSViv(g_value_get_long(value))));
++ } else if (G_VALUE_HOLDS_STRING(value)) {
++ XPUSHs(sv_2mortal(newSViv(atol(g_value_get_string(value)))));
++ }
++ }
++ } else {
++ memset(&amp;val, 0, sizeof(val));
++ g_value_init(&amp;val, G_TYPE_LONG);
++ g_value_set_long(&amp;val, (long)SvIV( ssv ));
++ lu_ent_clear(self, LU_UIDNUMBER);
++ lu_ent_add(self, LU_UIDNUMBER, &amp;val);
++ }
++ } else {
++ warn(&quot;XS_Uid: Cannot make operation on LU_UIDNUMBER attribute&quot;);
++ }
++
++void
++Ent_Gid(self, ssv)
++ USER::ENT *self
++ SV *ssv;
++ PPCODE:
++ GValueArray *values;
++ GValue *value, val;
++ if ( SvIOK(ssv) ) {
++ if (SvIV(ssv) == -65533) {
++ values = lu_ent_get(self, LU_GIDNUMBER);
++ if (values != NULL) {
++ value = g_value_array_get_nth(values, 0);
++ if (G_VALUE_HOLDS_LONG(value)) {
++ XPUSHs(sv_2mortal(newSViv(g_value_get_long(value))));
++ } else if (G_VALUE_HOLDS_STRING(value)) {
++ XPUSHs(sv_2mortal(newSViv(atol(g_value_get_string(value)))));
++ }
++ }
++ } else {
++ memset(&amp;val, 0, sizeof(val));
++ g_value_init(&amp;val, G_TYPE_LONG);
++ g_value_set_long(&amp;val, (long)SvIV( ssv ));
++ lu_ent_clear(self, LU_GIDNUMBER);
++ lu_ent_add(self, LU_GIDNUMBER, &amp;val);
++ }
++ } else {
++ warn(&quot;XS_Gid: Cannot make operation on LU_GIDNUMBER attribute&quot;);
++ }
++
++void
++Ent_Gecos(self, ssv)
++ USER::ENT *self
++ SV *ssv;
++ PPCODE:
++ GValueArray *values;
++ GValue *value, val;
++ if ( SvIOK(ssv) &amp;&amp; SvIV(ssv) == -65533) {
++ values = lu_ent_get(self, LU_GECOS);
++ if (values != NULL) {
++ value = g_value_array_get_nth(values, 0);
++ if (G_VALUE_HOLDS_STRING(value)) {
++ XPUSHs(sv_2mortal(newSVpv(g_value_get_string(value), 0)));
++ } else if (G_VALUE_HOLDS_LONG(value)) {
++ XPUSHs(sv_2mortal(newSVpv(g_strdup_printf(&quot;%ld&quot;, g_value_get_long(value)), 0)));
++ }
++ }
++ } else if( SvPOK( ssv ) ) {
++ memset(&amp;val, 0, sizeof(val));
++ g_value_init(&amp;val, G_TYPE_STRING);
++ g_value_set_string(&amp;val, SvGChar(ssv));
++ lu_ent_clear(self, LU_GECOS);
++ lu_ent_add(self, LU_GECOS, &amp;val);
++ } else {
++ warn(&quot;XS_Gecos: Cannot make operation on LU_GECOS attribute&quot;);
++ }
++
++void
++Ent_HomeDir(self, ssv)
++ USER::ENT *self
++ SV *ssv
++ PPCODE:
++ GValueArray *values;
++ GValue *value, val;
++ if ( SvIOK(ssv) &amp;&amp; SvIV(ssv) == -65533) {
++ values = lu_ent_get(self, LU_HOMEDIRECTORY);
++ if (values != NULL) {
++ value = g_value_array_get_nth(values, 0);
++ if (G_VALUE_HOLDS_STRING(value)) {
++ XPUSHs(sv_2mortal(newSVpv(g_value_get_string(value), 0)));
++ } else if (G_VALUE_HOLDS_LONG(value)) {
++ XPUSHs(sv_2mortal(newSVpv(g_strdup_printf(&quot;%ld&quot;, g_value_get_long(value)), 0)));
++ }
++ }
++ } else if( SvPOK( ssv ) ) {
++ memset(&amp;val, 0, sizeof(val));
++ g_value_init(&amp;val, G_TYPE_STRING);
++ g_value_set_string(&amp;val, SvPV(ssv,PL_na));
++ lu_ent_clear(self, LU_HOMEDIRECTORY);
++ lu_ent_add(self, LU_HOMEDIRECTORY, &amp;val);
++ } else {
++ warn(&quot;XS_HomeDir: Cannot make operation on LU_HOMEDIRECTORY attribute&quot;);
++ }
++
++void
++Ent_LoginShell(self, ssv)
++ USER::ENT *self
++ SV *ssv
++ PPCODE:
++ GValueArray *values;
++ GValue *value, val;
++ if ( SvIOK(ssv) &amp;&amp; SvIV(ssv) == -65533) {
++ values = lu_ent_get(self, LU_LOGINSHELL);
++ if (values != NULL) {
++ value = g_value_array_get_nth(values, 0);
++ if (G_VALUE_HOLDS_STRING(value)) {
++ XPUSHs(sv_2mortal(newSVpv(g_value_get_string(value), 0)));
++ } else if (G_VALUE_HOLDS_LONG(value)) {
++ XPUSHs(sv_2mortal(newSVpv(g_strdup_printf(&quot;%ld&quot;, g_value_get_long(value)), 0)));
++ }
++ }
++ } else if( SvPOK( ssv ) ) {
++ memset(&amp;val, 0, sizeof(val));
++ g_value_init(&amp;val, G_TYPE_STRING);
++ g_value_set_string(&amp;val, SvPV(ssv,PL_na));
++ lu_ent_clear(self, LU_LOGINSHELL);
++ lu_ent_add(self, LU_LOGINSHELL, &amp;val);
++ } else {
++ warn(&quot;XS_LoginShell: Cannot make operation on LU_LOGINSHELL attribute&quot;);
++ }
++
++void
++Ent_ShadowPass(self, ssv)
++ USER::ENT *self
++ SV *ssv
++ PPCODE:
++ GValueArray *values;
++ GValue *value, val;
++ if ( SvIOK(ssv) &amp;&amp; SvIV(ssv) == -65533) {
++ values = lu_ent_get(self, LU_SHADOWPASSWORD);
++ if (values != NULL) {
++ value = g_value_array_get_nth(values, 0);
++ if (G_VALUE_HOLDS_STRING(value)) {
++ XPUSHs(sv_2mortal(newSVpv(g_value_get_string(value), 0)));
++ } else if (G_VALUE_HOLDS_LONG(value)) {
++ XPUSHs(sv_2mortal(newSVpv(g_strdup_printf(&quot;%ld&quot;, g_value_get_long(value)), 0)));
++ }
++ }
++ } else if( SvPOK( ssv ) ) {
++ memset(&amp;val, 0, sizeof(val));
++ g_value_init(&amp;val, G_TYPE_STRING);
++ g_value_set_string(&amp;val, SvPV(ssv,PL_na));
++ lu_ent_clear(self, LU_SHADOWPASSWORD);
++ lu_ent_add(self, LU_SHADOWPASSWORD, &amp;val);
++ } else {
++ warn(&quot;XS_ShadowPass: Cannot make operation on LU_SHADOWPASSWORD attribute&quot;);
++ }
++
++void
++Ent_ShadowWarn(self, ssv)
++ USER::ENT *self
++ SV *ssv
++ PPCODE:
++ GValueArray *values;
++ GValue *value, val;
++ if ( SvIOK(ssv) ) {
++ if (SvIV(ssv) == -65533) {
++ values = lu_ent_get(self, LU_SHADOWWARNING);
++ if (values != NULL) {
++ value = g_value_array_get_nth(values, 0);
++ if (G_VALUE_HOLDS_LONG(value)) {
++ XPUSHs(sv_2mortal(newSViv(g_value_get_long(value))));
++ } else if (G_VALUE_HOLDS_STRING(value)) {
++ XPUSHs(sv_2mortal(newSViv(atol(g_value_get_string(value)))));
++ }
++ }
++ } else {
++ memset(&amp;val, 0, sizeof(val));
++ g_value_init(&amp;val, G_TYPE_LONG);
++ g_value_set_long(&amp;val, (long)SvIV( ssv ));
++ lu_ent_clear(self, LU_SHADOWWARNING);
++ lu_ent_add(self, LU_SHADOWWARNING, &amp;val);
++ }
++ } else {
++ warn(&quot;XS_ShadowWarn: Cannot make operation on LU_SHADOWWARNING attribute&quot;);
++ }
++
++void
++Ent_ShadowLastChange(self, ssv)
++ USER::ENT *self
++ SV *ssv
++ PPCODE:
++ GValueArray *values;
++ GValue *value, val;
++ if ( SvIOK(ssv) ) {
++ if (SvIV(ssv) == -65533) {
++ values = lu_ent_get(self, LU_SHADOWLASTCHANGE);
++ if (values != NULL) {
++ value = g_value_array_get_nth(values, 0);
++ if (G_VALUE_HOLDS_LONG(value)) {
++ XPUSHs(sv_2mortal(newSViv(g_value_get_long(value))));
++ } else if (G_VALUE_HOLDS_STRING(value)) {
++ XPUSHs(sv_2mortal(newSViv(atol(g_value_get_string(value)))));
++ }
++ }
++ } else {
++ memset(&amp;val, 0, sizeof(val));
++ g_value_init(&amp;val, G_TYPE_LONG);
++ g_value_set_long(&amp;val, (long)SvIV( ssv ));
++ lu_ent_clear(self, LU_SHADOWLASTCHANGE);
++ lu_ent_add(self, LU_SHADOWLASTCHANGE, &amp;val);
++ }
++ } else {
++ warn(&quot;XS_ShadowLastChange: Cannot make operation on LU_SHADOWLASTCHANGE attribute&quot;);
++ }
++
++void
++Ent_ShadowMin(self, ssv)
++ USER::ENT *self
++ SV *ssv
++ PPCODE:
++ GValueArray *values;
++ GValue *value, val;
++ if ( SvIOK(ssv) ) {
++ if (SvIV(ssv) == -65533) {
++ values = lu_ent_get(self, LU_SHADOWMIN);
++ if (values != NULL) {
++ value = g_value_array_get_nth(values, 0);
++ if (G_VALUE_HOLDS_LONG(value)) {
++ XPUSHs(sv_2mortal(newSViv(g_value_get_long(value))));
++ } else if (G_VALUE_HOLDS_STRING(value)) {
++ XPUSHs(sv_2mortal(newSViv(atol(g_value_get_string(value)))));
++ }
++ }
++ } else {
++ memset(&amp;val, 0, sizeof(val));
++ g_value_init(&amp;val, G_TYPE_LONG);
++ g_value_set_long(&amp;val, (long)SvIV( ssv ));
++ lu_ent_clear(self, LU_SHADOWMIN);
++ lu_ent_add(self, LU_SHADOWMIN, &amp;val);
++ }
++ } else {
++ warn(&quot;XS_ShadowMin: Cannot make operation on LU_SHADOWMIN attribute&quot;);
++ }
++
++void
++Ent_ShadowMax(self, ssv)
++ USER::ENT *self
++ SV *ssv
++ PPCODE:
++ GValueArray *values;
++ GValue *value, val;
++ if ( SvIOK(ssv) ) {
++ if (SvIV(ssv) == -65533) {
++ values = lu_ent_get(self, LU_SHADOWMAX);
++ if (values != NULL) {
++ value = g_value_array_get_nth(values, 0);
++ if (G_VALUE_HOLDS_LONG(value)) {
++ XPUSHs(sv_2mortal(newSViv(g_value_get_long(value))));
++ } else if (G_VALUE_HOLDS_STRING(value)) {
++ XPUSHs(sv_2mortal(newSViv(atol(g_value_get_string(value)))));
++ }
++ }
++ } else {
++ memset(&amp;val, 0, sizeof(val));
++ g_value_init(&amp;val, G_TYPE_LONG);
++ g_value_set_long(&amp;val, (long)SvIV( ssv ));
++ lu_ent_clear(self, LU_SHADOWMAX);
++ lu_ent_add(self, LU_SHADOWMAX, &amp;val);
++ }
++ } else {
++ warn(&quot;XS_ShadowMax: Cannot make operation on LU_SHADOWMAX attribute&quot;);
++ }
++
++void
++Ent_ShadowInact(self, ssv)
++ USER::ENT *self
++ SV *ssv
++ PPCODE:
++ GValueArray *values;
++ GValue *value, val;
++ if ( SvIOK(ssv) ) {
++ if (SvIV(ssv) == -65533) {
++ values = lu_ent_get(self, LU_SHADOWINACTIVE);
++ if (values != NULL) {
++ value = g_value_array_get_nth(values, 0);
++ if (G_VALUE_HOLDS_LONG(value)) {
++ XPUSHs(sv_2mortal(newSViv(g_value_get_long(value))));
++ } else if (G_VALUE_HOLDS_STRING(value)) {
++ XPUSHs(sv_2mortal(newSViv(atol(g_value_get_string(value)))));
++ }
++ }
++ } else {
++ memset(&amp;val, 0, sizeof(val));
++ g_value_init(&amp;val, G_TYPE_LONG);
++ g_value_set_long(&amp;val, (long)SvIV( ssv ));
++ lu_ent_clear(self, LU_SHADOWINACTIVE);
++ lu_ent_add(self, LU_SHADOWINACTIVE, &amp;val);
++ }
++ } else {
++ warn(&quot;XS_ShadowInact: Cannot make operation on LU_SHADOWINACTIVE attribute&quot;);
++ }
++
++void
++Ent_ShadowExpire(self, ssv)
++ USER::ENT *self
++ SV *ssv
++ PPCODE:
++ GValueArray *values;
++ GValue *value, val;
++ if ( SvIOK(ssv) ) {
++ if (SvIV(ssv) == -65533) {
++ values = lu_ent_get(self, LU_SHADOWEXPIRE);
++ if (values != NULL) {
++ value = g_value_array_get_nth(values, 0);
++ if (G_VALUE_HOLDS_LONG(value)) {
++ XPUSHs(sv_2mortal(newSViv(g_value_get_long(value))));
++ } else if (G_VALUE_HOLDS_STRING(value)) {
++ XPUSHs(sv_2mortal(newSViv(atol(g_value_get_string(value)))));
++ }
++ }
++ }
++ } else if (SvNOK(ssv)) {
++ memset(&amp;val, 0, sizeof(val));
++ g_value_init(&amp;val, G_TYPE_LONG);
++ g_value_set_long(&amp;val, (long)SvNV( ssv ));
++ lu_ent_clear(self, LU_SHADOWEXPIRE);
++ lu_ent_add(self, LU_SHADOWEXPIRE, &amp;val);
++ } else {
++ warn(&quot;XS_ShadowExpire: Cannot make operation on LU_SHADOWEXPIRE attribute&quot;);
++ }
++
++void
++Ent_ShadowFlag(self, ssv)
++ USER::ENT *self
++ SV *ssv
++ PPCODE:
++ GValueArray *values;
++ GValue *value, val;
++ if ( SvIOK(ssv) ) {
++ if ( SvIV(ssv) == -65533 ) {
++ values = lu_ent_get(self, LU_SHADOWFLAG);
++ if (values != NULL) {
++ value = g_value_array_get_nth(values, 0);
++ if (G_VALUE_HOLDS_LONG(value)) {
++ XPUSHs(sv_2mortal(newSViv(g_value_get_long(value))));
++ } else if (G_VALUE_HOLDS_STRING(value)) {
++ XPUSHs(sv_2mortal(newSViv(atol(g_value_get_string(value)))));
++ }
++ }
++ } else {
++ memset(&amp;val, 0, sizeof(val));
++ g_value_init(&amp;val, G_TYPE_LONG);
++ g_value_set_long(&amp;val, (long)SvIV( ssv ));
++ lu_ent_clear(self, LU_SHADOWFLAG);
++ lu_ent_add(self, LU_SHADOWFLAG, &amp;val);
++ }
++ } else {
++ warn(&quot;XS_ShadowExpire: Cannot make operation on LU_SHADOWEXPIRE attribute&quot;);
++ }
++
++MODULE = USER PACKAGE = USER PREFIX = User_
++
++void
++User_ReadConfigFiles()
++ CODE:
++ /*force read of /etc/sysconfig/userdrakefilter*/
++
+
+<a id="userdrake2tags1133USERppporth">Added: userdrake2/tags/1.13.3/USER/ppport.h</a>
+===================================================================
+--- userdrake2/tags/1.13.3/USER/ppport.h (rev 0)
++++ userdrake2/tags/1.13.3/USER/ppport.h 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,540 @@
++
++/* ppport.h -- Perl/Pollution/Portability Version 2.0002
++ *
++ * Automatically Created by Devel::PPPort on Fri Feb 28 15:36:17 2003
++ *
++ * Do NOT edit this file directly! -- Edit PPPort.pm instead.
++ *
++ * Version 2.x, Copyright (C) 2001, Paul Marquess.
++ * Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
++ * This code may be used and distributed under the same license as any
++ * version of Perl.
++ *
++ * This version of ppport.h is designed to support operation with Perl
++ * installations back to 5.004, and has been tested up to 5.8.0.
++ *
++ * If this version of ppport.h is failing during the compilation of this
++ * module, please check if a newer version of Devel::PPPort is available
++ * on CPAN before sending a bug report.
++ *
++ * If you are using the latest version of Devel::PPPort and it is failing
++ * during compilation of this module, please send a report to perlbug@perl.com
++ *
++ * Include all following information:
++ *
++ * 1. The complete output from running &quot;perl -V&quot;
++ *
++ * 2. This file.
++ *
++ * 3. The name &amp; version of the module you were trying to build.
++ *
++ * 4. A full log of the build that failed.
++ *
++ * 5. Any other information that you think could be relevant.
++ *
++ *
++ * For the latest version of this code, please retreive the Devel::PPPort
++ * module from CPAN.
++ *
++ */
++
++/*
++ * In order for a Perl extension module to be as portable as possible
++ * across differing versions of Perl itself, certain steps need to be taken.
++ * Including this header is the first major one, then using dTHR is all the
++ * appropriate places and using a PL_ prefix to refer to global Perl
++ * variables is the second.
++ *
++ */
++
++
++/* If you use one of a few functions that were not present in earlier
++ * versions of Perl, please add a define before the inclusion of ppport.h
++ * for a static include, or use the GLOBAL request in a single module to
++ * produce a global definition that can be referenced from the other
++ * modules.
++ *
++ * Function: Static define: Extern define:
++ * newCONSTSUB() NEED_newCONSTSUB NEED_newCONSTSUB_GLOBAL
++ *
++ */
++
++
++/* To verify whether ppport.h is needed for your module, and whether any
++ * special defines should be used, ppport.h can be run through Perl to check
++ * your source code. Simply say:
++ *
++ * perl -x ppport.h *.c *.h *.xs foo/bar*.c [etc]
++ *
++ * The result will be a list of patches suggesting changes that should at
++ * least be acceptable, if not necessarily the most efficient solution, or a
++ * fix for all possible problems. It won't catch where dTHR is needed, and
++ * doesn't attempt to account for global macro or function definitions,
++ * nested includes, typemaps, etc.
++ *
++ * In order to test for the need of dTHR, please try your module under a
++ * recent version of Perl that has threading compiled-in.
++ *
++ */
++
++
++/*
++#!/usr/bin/perl
++@ARGV = (&quot;*.xs&quot;) if !@ARGV;
++%badmacros = %funcs = %macros = (); $replace = 0;
++foreach (&lt;DATA&gt;) {
++ $funcs{$1} = 1 if /Provide:\s+(\S+)/;
++ $macros{$1} = 1 if /^#\s*define\s+([a-zA-Z0-9_]+)/;
++ $replace = $1 if /Replace:\s+(\d+)/;
++ $badmacros{$2}=$1 if $replace and /^#\s*define\s+([a-zA-Z0-9_]+).*?\s+([a-zA-Z0-9_]+)/;
++ $badmacros{$1}=$2 if /Replace (\S+) with (\S+)/;
++}
++foreach $filename (map(glob($_),@ARGV)) {
++ unless (open(IN, &quot;&lt;$filename&quot;)) {
++ warn &quot;Unable to read from $file: $!\n&quot;;
++ next;
++ }
++ print &quot;Scanning $filename...\n&quot;;
++ $c = &quot;&quot;; while (&lt;IN&gt;) { $c .= $_; } close(IN);
++ $need_include = 0; %add_func = (); $changes = 0;
++ $has_include = ($c =~ /#.*include.*ppport/m);
++
++ foreach $func (keys %funcs) {
++ if ($c =~ /#.*define.*\bNEED_$func(_GLOBAL)?\b/m) {
++ if ($c !~ /\b$func\b/m) {
++ print &quot;If $func isn't needed, you don't need to request it.\n&quot; if
++ $changes += ($c =~ s/^.*#.*define.*\bNEED_$func\b.*\n//m);
++ } else {
++ print &quot;Uses $func\n&quot;;
++ $need_include = 1;
++ }
++ } else {
++ if ($c =~ /\b$func\b/m) {
++ $add_func{$func} =1 ;
++ print &quot;Uses $func\n&quot;;
++ $need_include = 1;
++ }
++ }
++ }
++
++ if (not $need_include) {
++ foreach $macro (keys %macros) {
++ if ($c =~ /\b$macro\b/m) {
++ print &quot;Uses $macro\n&quot;;
++ $need_include = 1;
++ }
++ }
++ }
++
++ foreach $badmacro (keys %badmacros) {
++ if ($c =~ /\b$badmacro\b/m) {
++ $changes += ($c =~ s/\b$badmacro\b/$badmacros{$badmacro}/gm);
++ print &quot;Uses $badmacros{$badmacro} (instead of $badmacro)\n&quot;;
++ $need_include = 1;
++ }
++ }
++
++ if (scalar(keys %add_func) or $need_include != $has_include) {
++ if (!$has_include) {
++ $inc = join('',map(&quot;#define NEED_$_\n&quot;, sort keys %add_func)).
++ &quot;#include \&quot;ppport.h\&quot;\n&quot;;
++ $c = &quot;$inc$c&quot; unless $c =~ s/#.*include.*XSUB.*\n/$&amp;$inc/m;
++ } elsif (keys %add_func) {
++ $inc = join('',map(&quot;#define NEED_$_\n&quot;, sort keys %add_func));
++ $c = &quot;$inc$c&quot; unless $c =~ s/^.*#.*include.*ppport.*$/$inc$&amp;/m;
++ }
++ if (!$need_include) {
++ print &quot;Doesn't seem to need ppport.h.\n&quot;;
++ $c =~ s/^.*#.*include.*ppport.*\n//m;
++ }
++ $changes++;
++ }
++
++ if ($changes) {
++ open(OUT,&quot;&gt;/tmp/ppport.h.$$&quot;);
++ print OUT $c;
++ close(OUT);
++ open(DIFF, &quot;diff -u $filename /tmp/ppport.h.$$|&quot;);
++ while (&lt;DIFF&gt;) { s!/tmp/ppport\.h\.$$!$filename.patched!; print STDOUT; }
++ close(DIFF);
++ unlink(&quot;/tmp/ppport.h.$$&quot;);
++ } else {
++ print &quot;Looks OK\n&quot;;
++ }
++}
++__DATA__
++*/
++
++#ifndef _P_P_PORTABILITY_H_
++#define _P_P_PORTABILITY_H_
++
++#ifndef PERL_REVISION
++# ifndef __PATCHLEVEL_H_INCLUDED__
++# include &quot;patchlevel.h&quot;
++# endif
++# ifndef PERL_REVISION
++# define PERL_REVISION (5)
++ /* Replace: 1 */
++# define PERL_VERSION PATCHLEVEL
++# define PERL_SUBVERSION SUBVERSION
++ /* Replace PERL_PATCHLEVEL with PERL_VERSION */
++ /* Replace: 0 */
++# endif
++#endif
++
++#define PERL_BCDVERSION ((PERL_REVISION * 0x1000000L) + (PERL_VERSION * 0x1000L) + PERL_SUBVERSION)
++
++/* It is very unlikely that anyone will try to use this with Perl 6
++ (or greater), but who knows.
++ */
++#if PERL_REVISION != 5
++# error ppport.h only works with Perl version 5
++#endif /* PERL_REVISION != 5 */
++
++#ifndef ERRSV
++# define ERRSV perl_get_sv(&quot;@&quot;,FALSE)
++#endif
++
++#if (PERL_VERSION &lt; 4) || ((PERL_VERSION == 4) &amp;&amp; (PERL_SUBVERSION &lt;= 5))
++/* Replace: 1 */
++# define PL_Sv Sv
++# define PL_compiling compiling
++# define PL_copline copline
++# define PL_curcop curcop
++# define PL_curstash curstash
++# define PL_defgv defgv
++# define PL_dirty dirty
++# define PL_dowarn dowarn
++# define PL_hints hints
++# define PL_na na
++# define PL_perldb perldb
++# define PL_rsfp_filters rsfp_filters
++# define PL_rsfpv rsfp
++# define PL_stdingv stdingv
++# define PL_sv_no sv_no
++# define PL_sv_undef sv_undef
++# define PL_sv_yes sv_yes
++/* Replace: 0 */
++#endif
++
++#ifdef HASATTRIBUTE
++# if defined(__GNUC__) &amp;&amp; defined(__cplusplus)
++# define PERL_UNUSED_DECL
++# else
++# define PERL_UNUSED_DECL __attribute__((unused))
++# endif
++#else
++# define PERL_UNUSED_DECL
++#endif
++
++#ifndef dNOOP
++# define NOOP (void)0
++# define dNOOP extern int Perl___notused PERL_UNUSED_DECL
++#endif
++
++#ifndef dTHR
++# define dTHR dNOOP
++#endif
++
++#ifndef dTHX
++# define dTHX dNOOP
++# define dTHXa(x) dNOOP
++# define dTHXoa(x) dNOOP
++#endif
++
++#ifndef pTHX
++# define pTHX void
++# define pTHX_
++# define aTHX
++# define aTHX_
++#endif
++
++#ifndef UVSIZE
++# define UVSIZE IVSIZE
++#endif
++
++#ifndef NVTYPE
++# if defined(USE_LONG_DOUBLE) &amp;&amp; defined(HAS_LONG_DOUBLE)
++# define NVTYPE long double
++# else
++# define NVTYPE double
++# endif
++typedef NVTYPE NV;
++#endif
++
++#ifndef INT2PTR
++
++#if (IVSIZE == PTRSIZE) &amp;&amp; (UVSIZE == PTRSIZE)
++# define PTRV UV
++# define INT2PTR(any,d) (any)(d)
++#else
++# if PTRSIZE == LONGSIZE
++# define PTRV unsigned long
++# else
++# define PTRV unsigned
++# endif
++# define INT2PTR(any,d) (any)(PTRV)(d)
++#endif
++#define NUM2PTR(any,d) (any)(PTRV)(d)
++#define PTR2IV(p) INT2PTR(IV,p)
++#define PTR2UV(p) INT2PTR(UV,p)
++#define PTR2NV(p) NUM2PTR(NV,p)
++#if PTRSIZE == LONGSIZE
++# define PTR2ul(p) (unsigned long)(p)
++#else
++# define PTR2ul(p) INT2PTR(unsigned long,p)
++#endif
++
++#endif /* !INT2PTR */
++
++#ifndef boolSV
++# define boolSV(b) ((b) ? &amp;PL_sv_yes : &amp;PL_sv_no)
++#endif
++
++#ifndef gv_stashpvn
++# define gv_stashpvn(str,len,flags) gv_stashpv(str,flags)
++#endif
++
++#ifndef newSVpvn
++# define newSVpvn(data,len) ((len) ? newSVpv ((data), (len)) : newSVpv (&quot;&quot;, 0))
++#endif
++
++#ifndef newRV_inc
++/* Replace: 1 */
++# define newRV_inc(sv) newRV(sv)
++/* Replace: 0 */
++#endif
++
++/* DEFSV appears first in 5.004_56 */
++#ifndef DEFSV
++# define DEFSV GvSV(PL_defgv)
++#endif
++
++#ifndef SAVE_DEFSV
++# define SAVE_DEFSV SAVESPTR(GvSV(PL_defgv))
++#endif
++
++#ifndef newRV_noinc
++# ifdef __GNUC__
++# define newRV_noinc(sv) \
++ ({ \
++ SV *nsv = (SV*)newRV(sv); \
++ SvREFCNT_dec(sv); \
++ nsv; \
++ })
++# else
++# if defined(USE_THREADS)
++static SV * newRV_noinc (SV * sv)
++{
++ SV *nsv = (SV*)newRV(sv);
++ SvREFCNT_dec(sv);
++ return nsv;
++}
++# else
++# define newRV_noinc(sv) \
++ (PL_Sv=(SV*)newRV(sv), SvREFCNT_dec(sv), (SV*)PL_Sv)
++# endif
++# endif
++#endif
++
++/* Provide: newCONSTSUB */
++
++/* newCONSTSUB from IO.xs is in the core starting with 5.004_63 */
++#if (PERL_VERSION &lt; 4) || ((PERL_VERSION == 4) &amp;&amp; (PERL_SUBVERSION &lt; 63))
++
++#if defined(NEED_newCONSTSUB)
++static
++#else
++extern void newCONSTSUB(HV * stash, char * name, SV *sv);
++#endif
++
++#if defined(NEED_newCONSTSUB) || defined(NEED_newCONSTSUB_GLOBAL)
++void
++newCONSTSUB(stash,name,sv)
++HV *stash;
++char *name;
++SV *sv;
++{
++ U32 oldhints = PL_hints;
++ HV *old_cop_stash = PL_curcop-&gt;cop_stash;
++ HV *old_curstash = PL_curstash;
++ line_t oldline = PL_curcop-&gt;cop_line;
++ PL_curcop-&gt;cop_line = PL_copline;
++
++ PL_hints &amp;= ~HINT_BLOCK_SCOPE;
++ if (stash)
++ PL_curstash = PL_curcop-&gt;cop_stash = stash;
++
++ newSUB(
++
++#if (PERL_VERSION &lt; 3) || ((PERL_VERSION == 3) &amp;&amp; (PERL_SUBVERSION &lt; 22))
++ /* before 5.003_22 */
++ start_subparse(),
++#else
++# if (PERL_VERSION == 3) &amp;&amp; (PERL_SUBVERSION == 22)
++ /* 5.003_22 */
++ start_subparse(0),
++# else
++ /* 5.003_23 onwards */
++ start_subparse(FALSE, 0),
++# endif
++#endif
++
++ newSVOP(OP_CONST, 0, newSVpv(name,0)),
++ newSVOP(OP_CONST, 0, &amp;PL_sv_no), /* SvPV(&amp;PL_sv_no) == &quot;&quot; -- GMB */
++ newSTATEOP(0, Nullch, newSVOP(OP_CONST, 0, sv))
++ );
++
++ PL_hints = oldhints;
++ PL_curcop-&gt;cop_stash = old_cop_stash;
++ PL_curstash = old_curstash;
++ PL_curcop-&gt;cop_line = oldline;
++}
++#endif
++
++#endif /* newCONSTSUB */
++
++#ifndef START_MY_CXT
++
++/*
++ * Boilerplate macros for initializing and accessing interpreter-local
++ * data from C. All statics in extensions should be reworked to use
++ * this, if you want to make the extension thread-safe. See ext/re/re.xs
++ * for an example of the use of these macros.
++ *
++ * Code that uses these macros is responsible for the following:
++ * 1. #define MY_CXT_KEY to a unique string, e.g. &quot;DynaLoader_guts&quot;
++ * 2. Declare a typedef named my_cxt_t that is a structure that contains
++ * all the data that needs to be interpreter-local.
++ * 3. Use the START_MY_CXT macro after the declaration of my_cxt_t.
++ * 4. Use the MY_CXT_INIT macro such that it is called exactly once
++ * (typically put in the BOOT: section).
++ * 5. Use the members of the my_cxt_t structure everywhere as
++ * MY_CXT.member.
++ * 6. Use the dMY_CXT macro (a declaration) in all the functions that
++ * access MY_CXT.
++ */
++
++#if defined(MULTIPLICITY) || defined(PERL_OBJECT) || \
++ defined(PERL_CAPI) || defined(PERL_IMPLICIT_CONTEXT)
++
++/* This must appear in all extensions that define a my_cxt_t structure,
++ * right after the definition (i.e. at file scope). The non-threads
++ * case below uses it to declare the data as static. */
++#define START_MY_CXT
++
++#if (PERL_VERSION &lt; 4 || (PERL_VERSION == 4 &amp;&amp; PERL_SUBVERSION &lt; 68 ))
++/* Fetches the SV that keeps the per-interpreter data. */
++#define dMY_CXT_SV \
++ SV *my_cxt_sv = perl_get_sv(MY_CXT_KEY, FALSE)
++#else /* &gt;= perl5.004_68 */
++#define dMY_CXT_SV \
++ SV *my_cxt_sv = *hv_fetch(PL_modglobal, MY_CXT_KEY, \
++ sizeof(MY_CXT_KEY)-1, TRUE)
++#endif /* &lt; perl5.004_68 */
++
++/* This declaration should be used within all functions that use the
++ * interpreter-local data. */
++#define dMY_CXT \
++ dMY_CXT_SV; \
++ my_cxt_t *my_cxtp = INT2PTR(my_cxt_t*,SvUV(my_cxt_sv))
++
++/* Creates and zeroes the per-interpreter data.
++ * (We allocate my_cxtp in a Perl SV so that it will be released when
++ * the interpreter goes away.) */
++#define MY_CXT_INIT \
++ dMY_CXT_SV; \
++ /* newSV() allocates one more than needed */ \
++ my_cxt_t *my_cxtp = (my_cxt_t*)SvPVX(newSV(sizeof(my_cxt_t)-1));\
++ Zero(my_cxtp, 1, my_cxt_t); \
++ sv_setuv(my_cxt_sv, PTR2UV(my_cxtp))
++
++/* This macro must be used to access members of the my_cxt_t structure.
++ * e.g. MYCXT.some_data */
++#define MY_CXT (*my_cxtp)
++
++/* Judicious use of these macros can reduce the number of times dMY_CXT
++ * is used. Use is similar to pTHX, aTHX etc. */
++#define pMY_CXT my_cxt_t *my_cxtp
++#define pMY_CXT_ pMY_CXT,
++#define _pMY_CXT ,pMY_CXT
++#define aMY_CXT my_cxtp
++#define aMY_CXT_ aMY_CXT,
++#define _aMY_CXT ,aMY_CXT
++
++#else /* single interpreter */
++
++
++#define START_MY_CXT static my_cxt_t my_cxt;
++#define dMY_CXT_SV dNOOP
++#define dMY_CXT dNOOP
++#define MY_CXT_INIT NOOP
++#define MY_CXT my_cxt
++
++#define pMY_CXT void
++#define pMY_CXT_
++#define _pMY_CXT
++#define aMY_CXT
++#define aMY_CXT_
++#define _aMY_CXT
++
++#endif
++
++#endif /* START_MY_CXT */
++
++#ifndef IVdf
++# if IVSIZE == LONGSIZE
++# define IVdf &quot;ld&quot;
++# define UVuf &quot;lu&quot;
++# define UVof &quot;lo&quot;
++# define UVxf &quot;lx&quot;
++# define UVXf &quot;lX&quot;
++# else
++# if IVSIZE == INTSIZE
++# define IVdf &quot;d&quot;
++# define UVuf &quot;u&quot;
++# define UVof &quot;o&quot;
++# define UVxf &quot;x&quot;
++# define UVXf &quot;X&quot;
++# endif
++# endif
++#endif
++
++#ifndef NVef
++# if defined(USE_LONG_DOUBLE) &amp;&amp; defined(HAS_LONG_DOUBLE) &amp;&amp; \
++ defined(PERL_PRIfldbl) /* Not very likely, but let's try anyway. */
++# define NVef PERL_PRIeldbl
++# define NVff PERL_PRIfldbl
++# define NVgf PERL_PRIgldbl
++# else
++# define NVef &quot;e&quot;
++# define NVff &quot;f&quot;
++# define NVgf &quot;g&quot;
++# endif
++#endif
++
++#ifndef AvFILLp /* Older perls (&lt;=5.003) lack AvFILLp */
++# define AvFILLp AvFILL
++#endif
++
++#ifdef SvPVbyte
++# if PERL_REVISION == 5 &amp;&amp; PERL_VERSION &lt; 7
++ /* SvPVbyte does not work in perl-5.6.1, borrowed version for 5.7.3 */
++# undef SvPVbyte
++# define SvPVbyte(sv, lp) \
++ ((SvFLAGS(sv) &amp; (SVf_POK|SVf_UTF8)) == (SVf_POK) \
++ ? ((lp = SvCUR(sv)), SvPVX(sv)) : my_sv_2pvbyte(aTHX_ sv, &amp;lp))
++ static char *
++ my_sv_2pvbyte(pTHX_ register SV *sv, STRLEN *lp)
++ {
++ sv_utf8_downgrade(sv,0);
++ return SvPV(sv,*lp);
++ }
++# endif
++#else
++# define SvPVbyte SvPV
++#endif
++
++#endif /* _P_P_PORTABILITY_H_ */
++
++/* End of File ppport.h */
+
+
+Property changes on: userdrake2/tags/1.13.3/USER/ppport.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="userdrake2tags1133USERtypemap">Added: userdrake2/tags/1.13.3/USER/typemap</a>
+===================================================================
+--- userdrake2/tags/1.13.3/USER/typemap (rev 0)
++++ userdrake2/tags/1.13.3/USER/typemap 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,5 @@
++TYPEMAP
++
++USER::ADMIN * O_OBJECT
++USER::ENT * O_OBJECT
++USER__ERR * T_PTROBJ
+
+<a id="userdrake2tags1133iconsselectedpng">Added: userdrake2/tags/1.13.3/icons/selected.png</a>
+===================================================================
+(Binary files differ)
+
+
+Property changes on: userdrake2/tags/1.13.3/icons/selected.png
+___________________________________________________________________
+<a id="svnmimetype">Added: svn:mime-type</a>
+ + image/png
+
+<a id="userdrake2tags1133iconsunselectedpng">Added: userdrake2/tags/1.13.3/icons/unselected.png</a>
+===================================================================
+(Binary files differ)
+
+
+Property changes on: userdrake2/tags/1.13.3/icons/unselected.png
+___________________________________________________________________
+Added: svn:mime-type
+ + image/png
+
+<a id="userdrake2tags1133iconsuserdrake16png">Added: userdrake2/tags/1.13.3/icons/userdrake16.png</a>
+===================================================================
+(Binary files differ)
+
+
+Property changes on: userdrake2/tags/1.13.3/icons/userdrake16.png
+___________________________________________________________________
+Added: svn:mime-type
+ + image/png
+
+<a id="userdrake2tags1133iconsuserdrake32png">Added: userdrake2/tags/1.13.3/icons/userdrake32.png</a>
+===================================================================
+(Binary files differ)
+
+
+Property changes on: userdrake2/tags/1.13.3/icons/userdrake32.png
+___________________________________________________________________
+Added: svn:mime-type
+ + image/png
+
+<a id="userdrake2tags1133iconsuserdrake48png">Added: userdrake2/tags/1.13.3/icons/userdrake48.png</a>
+===================================================================
+(Binary files differ)
+
+
+Property changes on: userdrake2/tags/1.13.3/icons/userdrake48.png
+___________________________________________________________________
+Added: svn:mime-type
+ + image/png
+
+<a id="userdrake2tags1133perlobjectmap">Added: userdrake2/tags/1.13.3/perlobject.map</a>
+===================================================================
+--- userdrake2/tags/1.13.3/perlobject.map (rev 0)
++++ userdrake2/tags/1.13.3/perlobject.map 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,106 @@
++# &quot;perlobject.map&quot; Dean Roehrich, version 19960302
++#
++# TYPEMAPs
++#
++# HV * -&gt; unblessed Perl HV object.
++# AV * -&gt; unblessed Perl AV object.
++#
++# INPUT/OUTPUT maps
++#
++# O_* -&gt; opaque blessed objects
++# T_* -&gt; opaque blessed or unblessed objects
++#
++# O_OBJECT -&gt; link an opaque C or C++ object to a blessed Perl object.
++# T_OBJECT -&gt; link an opaque C or C++ object to an unblessed Perl object.
++# O_HvRV -&gt; a blessed Perl HV object.
++# T_HvRV -&gt; an unblessed Perl HV object.
++# O_AvRV -&gt; a blessed Perl AV object.
++# T_AvRV -&gt; an unblessed Perl AV object.
++
++TYPEMAP
++
++HV * T_HvRV
++AV * T_AvRV
++
++
++######################################################################
++OUTPUT
++
++# The Perl object is blessed into 'CLASS', which should be a
++# char* having the name of the package for the blessing.
++O_OBJECT
++ sv_setref_pv( $arg, CLASS, (void*)$var );
++
++T_OBJECT
++ sv_setref_pv( $arg, Nullch, (void*)$var );
++
++# Cannot use sv_setref_pv() because that will destroy
++# the HV-ness of the object. Remember that newRV() will increment
++# the refcount.
++O_HvRV
++ $arg = sv_bless( newRV((SV*)$var), gv_stashpv(CLASS,1) );
++
++T_HvRV
++ $arg = newRV((SV*)$var);
++
++# Cannot use sv_setref_pv() because that will destroy
++# the AV-ness of the object. Remember that newRV() will increment
++# the refcount.
++O_AvRV
++ $arg = sv_bless( newRV((SV*)$var), gv_stashpv(CLASS,1) );
++
++T_AvRV
++ $arg = newRV((SV*)$var);
++
++
++######################################################################
++INPUT
++
++O_OBJECT
++ if( sv_isobject($arg) &amp;&amp; (SvTYPE(SvRV($arg)) == SVt_PVMG) )
++ $var = ($type)SvIV((SV*)SvRV( $arg ));
++ else{
++ warn( \&quot;${Package}::$func_name() -- $var is not a blessed SV reference\&quot; );
++ XSRETURN_UNDEF;
++ }
++
++T_OBJECT
++ if( SvROK($arg) )
++ $var = ($type)SvIV((SV*)SvRV( $arg ));
++ else{
++ warn( \&quot;${Package}::$func_name() -- $var is not an SV reference\&quot; );
++ XSRETURN_UNDEF;
++ }
++
++O_HvRV
++ if( sv_isobject($arg) &amp;&amp; (SvTYPE(SvRV($arg)) == SVt_PVHV) )
++ $var = (HV*)SvRV( $arg );
++ else {
++ warn( \&quot;${Package}::$func_name() -- $var is not a blessed HV reference\&quot; );
++ XSRETURN_UNDEF;
++ }
++
++T_HvRV
++ if( SvROK($arg) &amp;&amp; (SvTYPE(SvRV($arg)) == SVt_PVHV) )
++ $var = (HV*)SvRV( $arg );
++ else {
++ warn( \&quot;${Package}::$func_name() -- $var is not an HV reference\&quot; );
++ XSRETURN_UNDEF;
++ }
++
++O_AvRV
++ if( sv_isobject($arg) &amp;&amp; (SvTYPE(SvRV($arg)) == SVt_PVAV) )
++ $var = (AV*)SvRV( $arg );
++ else {
++ warn( \&quot;${Package}::$func_name() -- $var is not a blessed AV reference\&quot; );
++ XSRETURN_UNDEF;
++ }
++
++T_AvRV
++ if( SvROK($arg) &amp;&amp; (SvTYPE(SvRV($arg)) == SVt_PVAV) )
++ $var = (AV*)SvRV( $arg );
++ else {
++ warn( \&quot;${Package}::$func_name() -- $var is not an AV reference\&quot; );
++ XSRETURN_UNDEF;
++ }
++
+
+<a id="userdrake2tags1133pixmapsgroup_addpng">Added: userdrake2/tags/1.13.3/pixmaps/group_add.png</a>
+===================================================================
+(Binary files differ)
+
+
+Property changes on: userdrake2/tags/1.13.3/pixmaps/group_add.png
+___________________________________________________________________
+Added: svn:mime-type
+ + image/png
+
+<a id="userdrake2tags1133pixmapshelppng">Added: userdrake2/tags/1.13.3/pixmaps/help.png</a>
+===================================================================
+(Binary files differ)
+
+
+Property changes on: userdrake2/tags/1.13.3/pixmaps/help.png
+___________________________________________________________________
+Added: svn:mime-type
+ + image/png
+
+<a id="userdrake2tags1133pixmapsredhatconfiguserspng">Added: userdrake2/tags/1.13.3/pixmaps/redhat-config-users.png</a>
+===================================================================
+(Binary files differ)
+
+
+Property changes on: userdrake2/tags/1.13.3/pixmaps/redhat-config-users.png
+___________________________________________________________________
+Added: svn:mime-type
+ + image/png
+
+<a id="userdrake2tags1133pixmapsrefreshpng">Added: userdrake2/tags/1.13.3/pixmaps/refresh.png</a>
+===================================================================
+(Binary files differ)
+
+
+Property changes on: userdrake2/tags/1.13.3/pixmaps/refresh.png
+___________________________________________________________________
+Added: svn:mime-type
+ + image/png
+
+<a id="userdrake2tags1133pixmapsuser_addpng">Added: userdrake2/tags/1.13.3/pixmaps/user_add.png</a>
+===================================================================
+(Binary files differ)
+
+
+Property changes on: userdrake2/tags/1.13.3/pixmaps/user_add.png
+___________________________________________________________________
+Added: svn:mime-type
+ + image/png
+
+<a id="userdrake2tags1133pixmapsuser_confpng">Added: userdrake2/tags/1.13.3/pixmaps/user_conf.png</a>
+===================================================================
+(Binary files differ)
+
+
+Property changes on: userdrake2/tags/1.13.3/pixmaps/user_conf.png
+___________________________________________________________________
+Added: svn:mime-type
+ + image/png
+
+<a id="userdrake2tags1133pixmapsuser_delpng">Added: userdrake2/tags/1.13.3/pixmaps/user_del.png</a>
+===================================================================
+(Binary files differ)
+
+
+Property changes on: userdrake2/tags/1.13.3/pixmaps/user_del.png
+___________________________________________________________________
+Added: svn:mime-type
+ + image/png
+
+<a id="userdrake2tags1133pixmapsuserdrakepng">Added: userdrake2/tags/1.13.3/pixmaps/userdrake.png</a>
+===================================================================
+(Binary files differ)
+
+
+Property changes on: userdrake2/tags/1.13.3/pixmaps/userdrake.png
+___________________________________________________________________
+Added: svn:mime-type
+ + image/png
+
+<a id="userdrake2tags1133poMakefile">Added: userdrake2/tags/1.13.3/po/Makefile</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/Makefile (rev 0)
++++ userdrake2/tags/1.13.3/po/Makefile 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,49 @@
++# Installation directories
++localedir = $(PREFIX)/usr/share/locale
++
++PGOAL = userdrake
++
++# perl files to search translatable strings in
++PL_FILES = $(shell cat POTFILES.in | sed 's,^,../,' )
++# C-like files to search translatable strings in
++CFILES = ../USER/USER.xs
++
++POFILES = $(shell ls *.po)
++MOFILES = $(POFILES:%.po=%.mo)
++LANGS = $(POFILES:%.po=%)
++
++GOALS = $(PGOAL).pot $(MOFILES)
++
++all: $(GOALS)
++
++install: all
++ for l in $(LANGS); do \
++ install -d $(localedir)/$$l/LC_MESSAGES; \
++ install -m 644 $$l.mo $(localedir)/$$l/LC_MESSAGES/$(PGOAL).mo; \
++ done
++
++clean:
++ rm -f *~ *.[oas] *.mo TAGS
++
++%.mo: %.po
++ msgfmt -o $@ $&lt;
++
++$(PGOAL).pot: POTFILES.in $(PL_FILES) $(CFILES)
++ xgettext -F -n --add-comments \
++ --keyword=_ --keyword=__ --keyword=N_ --keyword=N \
++ --keyword=gettext \
++ --language=C -o placeholder.pot $(CFILES)
++ #touch placeholder.pot
++ perl_checker -q --generate-pot $(PGOAL)_tmp.pot $(PL_FILES) || rm -f $(PGOAL)_tmp.pot
++ [ ! -e $(PGOAL)_tmp.pot ] || msgcat --use-first placeholder.pot $(PGOAL)_tmp.pot &gt; $@
++ rm -f placeholder.pot $(PGOAL)_tmp.pot
++
++update_n_merge: $(PGOAL).pot merge
++
++merge:
++ @for n in $(POFILES); do \
++ echo &quot;Merging $$n&quot;; \
++ msgmerge &quot;$$n&quot; $(PGOAL).pot &gt; &quot;$$n&quot;t; \
++ mv -f &quot;$$n&quot;t &quot;$$n&quot;; \
++ done
++
+
+
+Property changes on: userdrake2/tags/1.13.3/po/Makefile
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="userdrake2tags1133poPOTFILESin">Added: userdrake2/tags/1.13.3/po/POTFILES.in</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/POTFILES.in (rev 0)
++++ userdrake2/tags/1.13.3/po/POTFILES.in 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,2 @@
++userdrake
++USER/USER.pm
+
+<a id="userdrake2tags1133poafpo">Added: userdrake2/tags/1.13.3/po/af.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/af.po (rev 0)
++++ userdrake2/tags/1.13.3/po/af.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,757 @@
++# translation of userdrake-af.po to Afrikaans
++# translation of userdrake.po to
++# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
++# Dirk Konrad &lt;dirkvanderwalt@webmail.co.za&gt;, 2003.
++# Dirk van der Walt &lt;dirkvanderwalt@webmail.co.za&gt;, 2004.
++# Die uwe Ysbeer &lt;ysbeer@af.org.za&gt;, 2005.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-af\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2005-02-08 21:19+0000\n&quot;
++&quot;Last-Translator: Die uwe Ysbeer &lt;ysbeer@af.org.za&gt;\n&quot;
++&quot;Language-Team: Afrikaans &lt;i18n@af.org.za&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.9.1\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Fout met lees van %s: %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Fout met skep van %s: %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Fout met verwydering van %s: %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Kon nie spoellêer skep nie.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Kon nie spoellêer skep nie.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Kon nie spoellêer skep nie.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;onbekende fout&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Kon nie spoellêer skep nie.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Fout met uitvee van spoellêer.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Opsoek na Gerbruikers en Groepe .... Net 'n oomblik asb&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageia Users Management Tool&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Aksies&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Redigeer&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Skrap&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Opsies&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Filtreer 'system' gebruikers&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Lêer&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Herlaai&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Verlaat&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Voeg Gebruiker By&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Voeg _Groep by&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Help&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Raporteer 'n Fout&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Otrent&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Soek:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Pas filter toe&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Gebruikers&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Groepe&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Gebruikernaam&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Gebruiker ID&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Primere Groep&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Volle Naam&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Aanteken Dop&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Tuisgids&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Stand&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Groep Naam&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Groep ID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Group Lede&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Voeg Gebruiker By&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Voeg 'n gebruiker by die stelsel&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Voeg Groep By&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Voeg 'n groep by die stelsel&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Redigeer&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Redigeer gekose ry&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Verwyder&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Wis gekose ry&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Herlaai&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Herlaai die lys&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Gesluit&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Reeds Verval&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Kliek op die ikoon om dit te verander&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Skep Nuwe Gebruiker&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Skep Tuisgids&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Tuisgids: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Skep 'n unieke groep vir die gebruiker&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Spesifiseer gebruiker se ID self&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Gebruiker bestaan alreeds, kies asb. 'n ander gebruikernaam&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Ongepaarde Wagwoord&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Hierdie wagwoord is te eenvoudig. \n&quot;
++&quot;Behoorlike wagwoorde bevat meer as 6 karakters &quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Gebruiker UID is &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Die skep van 'n groep met 'n UID kleiner as 500 word nie aanbeveel nie.\n&quot;
++&quot;Wil u voort gaan?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Voeg %s by die 'users' groep&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Skep nuwe groep: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Voeg gebruiker: %s by.&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Kanselleer&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;OK&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Kies Groep&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Voeg by die bestaande groep&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Voeg by die 'users' groep&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;'n Groep met hierdie naam bestaan reeds. Wat wil u graag doen?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Skep Nuwe Groep&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Spesifiseer groep se ID self&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Groep bestaan alreeds, Gebruik asb. 'n ander Groepnaam&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;Groep GID is &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Die skep van 'n groep met 'n GID kleiner as 500 word nie aanbeveel nie.\n&quot;
++&quot;Moet ons voort gaan?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Voeg groep %s by&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Wis leêrs uit of nie?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Verwyder gebruiker %s\n&quot;
++&quot; Doen ook die volgende\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Verwyder Tuisgids: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Verwyder Posbus : /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Verwyder gebruiker: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Moet ons regtig groep %s verwyder?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s is 'n primere groep vir gebruiker %s\n&quot;
++&quot; Verwyder eers die gebruiker&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Verwyder groep: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Volle Naam:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Inteken:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Wagwoord:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Bevestig Wagwoord&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Aanteken Dop:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Groep Naam:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Kies asseblief ten minste een groep vir gebruiker&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Spesifiseer asseblief Jaar Maand en Dag \n&quot;
++&quot;waarop Rekening Verval &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;&quot;
++&quot;Voorsien asseblief al die verlangde inling rakende wagwoord veroudering\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;U kan nie gebruiker %s van hulle primere groep verwyder nie&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Tuis:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Gebruiker se Inligting&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Aktiveer verval van rekening&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Rekening verval (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Sluit Gebruiker se Rekening&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Rekening Inligting&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Gebruiker het laas sy/haar wagwoord verander op : &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Aktiveer Verval van Wagwoord&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Dae voor verandering toelaat :&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Aantal dae voor verandering verlang :&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Waarsku soveel dae voor verandering :&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Dae voor rekening de-aktiveer :&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Wagwoord Detail&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Kies die groepe waarvan die gebruiker 'n lid moet wees:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Groep Data&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Kies gebruikers vir hierdie groep :&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Groepeer Gebruikers&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Redigeer Groepe / Gebruikers&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;'n Fout het voorgekom&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Maak Toe&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Bestuur Gebruikers&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Dirk van der Walt &lt;dirkvanderwalt@webmail.co.za&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Naam spasie is leeg voorsien asseblief 'n naam&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;Die naam mag sleg alfabet letters, syfers, '-' en '_' bevat&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Naam is te lank&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Probleme&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;onbekende fout&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Fout met skep van %s: %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Programeerders: &quot;
+
+<a id="userdrake2tags1133poampo">Added: userdrake2/tags/1.13.3/po/am.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/am.po (rev 0)
++++ userdrake2/tags/1.13.3/po/am.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,743 @@
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/am.php3
++# Copyright (C) 2004 Free Software Foundation, Inc.
++# Alemayehu Gemeda &lt;alemayehu@gmx.at&gt;, 2004.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-am\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2005-02-13 02:21+0100\n&quot;
++&quot;Last-Translator: Alemayehu &lt;alemayehu@gmx.at&gt;\n&quot;
++&quot;Language-Team: Amharic &lt;am-translate@geez.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, fuzzy, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;ተጠቃሚ በማስወገድ ላይ: %s&quot;
++
++#: ../USER/USER.xs:490
++#, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:582
++#, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;ተጠቃሚዎችን አና ቡድኖችን በመጫን ላይ...እባክዎ ይጠብቁ&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;የMageia ተጠቃሚዎች ማስተዳደሪያ መሳሪያ&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_ተግባራት&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_አርም&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_አጥፋ&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_ምርጫዎች&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_የሲስተም ተጠቃሚዎችን አጣራ&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_ፋይል&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_በድጋሚ ጀምር&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_ውጣ&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;ኮንትሮል&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_ተጠቃሚ ጨምር&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/_ቡድን ጨምር&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_መረጃ&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_የስህተቱን ጉዳይ አመልክት&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_ስለ...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;ፈልግ:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;ማጣሪያ ተጠቀም&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;ተጠቃሚዎች&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;ቡድኖች&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;ተጠቃሚዎች እና ቡድኖች&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;የተጠቃሚ ስም&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;የተጠቃሚ መለያ ቁጥር&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;ቀዳሚ ብድን&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;ሙሉ ስም&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;የመግቢያ ሼል&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;የመጀመሪያ ዶሴ&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;ሁኔታ&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;የብድን ስም&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;የብድን መለያ ቁጥር&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;የብድን አባላት&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;ተጠቃሚ ጨምር&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;ወደ ሲስተሙ ተጠቃሚ ጨምር&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;ብድን ጨምር&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;ወደ ሲስተሙ ብዱን ጨምር&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;አርም&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;የተመረጠውን ረድፍ አርም&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;አጥፋ&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;የተመረጠውን ረድፍ አጥፋ&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;በድጋሚ አስጀምር&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;ዝርዝሩን በድጋሚ አስጀምር&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;ተቆልፏል&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;አልፎበታል&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;ምልክቱን ለመለወጥ ይጫኑት&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;አዲስ ተጠቃሚ ፍጠር&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;የመጀመሪያ ዶሴ ፍጠር&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;የመጀመሪያ ዶሴ: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;ለተጠቃሚው የግል ቡድን ፍጠር&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;ተጠቃሚው ቀደም ሲል ነበሩ፣ እባክዎ ሌላ የተጠቃሚ ስም ይምረጡ&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;ሚስጢራዊ ቃል አይመሳሰልም&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;ይህ ሚስጢራዊ ቃል በጣም ቀላል ነው። \n&quot;
++&quot; ጥሩ ሚስጢራዊ ቃላት ከ 6 የበለጠ አሃዞች ሊሆኑ ይገባል&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;%sን ወደ 'ተጠቃሚዎች' ብድን በስገባት ላይ&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;አዲስ ብድን በመፍጠር ላይ: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;ተጠቃሚ በመጨመር ላይ ፡ %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;ተወው&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;እሺ&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;ብድን ይምረጡ&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;ቀደም ሲል ወደ ነበረው ብድን ጨምር&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;ወደ ብድን 'ተጠቃሚዎች' ጨምር&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;በዚህ ስም የሚጠራ ብድን ቀደም ሲል አለ። ምን ማድረግ ይፈልጋሉ?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;አዲስ ብድን ፍጠር&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;ቡድኑ ቀደም ሲል ነበር፣ እባክዎ ሌላ የብድን ስም ይምረጡ&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;ብድን በመጨመር ላይ ፡ %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;ፋይሎቹ ይጥፉ ወይስ አይጥፉ?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;የመጀመሪያ ዶሴ አጥፋ: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;የፖስታ ሳጥን አጥፋ :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;ተጠቃሚ በማስወገድ ላይ: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;በርግጥ ይህንን ብድንን ማጥፋት ይፈልጋሉ?: %s&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;ብድን በማስወገድ ላይ: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;ሙሉ ስም:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;መግቢያ:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;ሚስጢራዊ ቃል:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;ሚስጢራዊ ቃሉን ያረጋግጡ:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;የመግቢያ ሼል:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;የብድን ስም:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;እባክዎ ለተጠቃሚው ቢያንስ አንድ ቡድን ይምረጡ&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;መጀመሪያ:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;የተጠቃሚ መረጃ&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;የመዝገብ ጊዜ ማለፍን አስችል&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;መዝገቡ ጊዜው የሚያልፍበት ቀን (አመት-ወር-ቀን):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;የተጠቃሚን መዝገብ ቆልፍ&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;የመዝገብ መረጃ&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;ተጠቃሚው ለመጨረሻ ጊዜ ሚስጢራዊ ቃሉን የቀየረው በ :&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;የሚስጢራዊ ቃል ጊዜ ማለፍን አስችል&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;ቀናት፣ ለውጥ ከመፈቀዱ በፊት :&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;ቀናት፣ ለውጥ ከማስፈለጉ በፊት :&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;ከለውጥ በፊት የቀናት ማስጠንቀቂያ :&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;የሚስጢራዊ ቃል መረጃ&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;ተጠቃሚው አባል የሚሆንባቸውን ብድኖች ይምረጡ:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;የብድን መረጃ&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;ወደዚህ ብድን የሚገቡትን ተጠቃሚዎች ይምረጡ :&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;የቡድን ተጠቃሚዎች&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;ቡድኖችን/ተጠቃሚዎችን አርም&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;ስህተት ተፈጥሯል&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;ዝጋ&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;የተጠቃሚዎች ማስተዳደሪያ&quot;
++
++#: ../userdrake:1282
++#, fuzzy, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mandriva Online&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Alemayehu &lt;alemayehu@gmx.at&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;የስሙ ቦታ ባዶ ነው፣ እባክዎ ስም ይስጡ&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;ስሙ በጣም ረጅም ነው&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;ስህተት&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;ተጠቃሚ በማስወገድ ላይ: %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;ደራሲዎች: &quot;
++
++#~ msgid &quot;Choice&quot;
++#~ msgstr &quot;ምርጫ&quot;
++
++#~ msgid &quot;No&quot;
++#~ msgstr &quot;አይ&quot;
++
++#~ msgid &quot;Yes&quot;
++#~ msgstr &quot;አዎ&quot;
+
+<a id="userdrake2tags1133poarpo">Added: userdrake2/tags/1.13.3/po/ar.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/ar.po (rev 0)
++++ userdrake2/tags/1.13.3/po/ar.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,799 @@
++# translation of userdrake.po to Arabic
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/ar.php3
++#
++# Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
++# Mohammed Gamal &lt;f2c2001@yahoo.com&gt;, 2001.
++# Munzir Taha Obeid &lt;munzirtaha@newhorizons.com.sa&gt;, 2004.
++# Youcef Rabah Rahal &lt;rahal@arabeyes.org&gt;, 2004.
++# Ossama M. Khayat &lt;okhayat@yahoo.com&gt;, 2005.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2005-02-28 23:22+0300\n&quot;
++&quot;Last-Translator: Ossama M. Khayat &lt;okhayat@yahoo.com&gt;\n&quot;
++&quot;Language-Team: Arabic &lt;support@arabeyes.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.9.1\n&quot;
++&quot;Plural-Forms: nplurals=4; plural=n==1 ? 0 : n==2 ? 1 : n&gt;=3 &amp;&amp; n&lt;=10 ? 2 : &quot;
++&quot;3\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;خطأ في قراءة `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;خطأ في إنشاء `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;خطأ في حذف `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;خطأ في إنشاء لفيفة البريد.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;خطأ في إنشاء لفيفة البريد.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;خطأ في إنشاء لفيفة البريد.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;خطأ مجهول&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;خطأ في إنشاء لفيفة البريد.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;خطأ في حذف لفيفة البريد.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;تحميل المستخدمين والمجموعات... الرجاء الانتظار&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;أداة ماندريبا لينكس لإدارة المستخدمين&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_أحداث&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_تحرير&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_حذف&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_خيارات&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/ت_صفية مستخدمي النظام&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_ملف&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/تح_ديث&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_خروج&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;خ&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_إضافة مستخدم&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/إضافة م_جموعة&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/مسا_عدة&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/إ_رسال تقرير بالعيوب&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_حول...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;بحث:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;تصفية&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;المستخدمون&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;المجموعات&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;المستخدمون والمجموعات&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;اسم المستخدم&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;هوية المستخدم&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;المجموعة الأساسية&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;الاسم الكامل&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;صدفة الدخول&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;الدليل الخاص&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;الحالة&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;اسم المجموعة&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;هوية المجموعة&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;أعضاء المجموعة&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;إضافة مستخدم&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;إضافة مستخدم إلى النظام&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;إضافة مجموعة&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;إضافة مجموعة الى النظام&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;تحرير&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;تحرير الصف المختار&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;حذف&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;حذف الصف المختار&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;تحديث&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;تحديث القائمة&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;تم إقفاله&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;انتهت صلاحيته&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;اضغط على الأيقونة لتغييرها&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;إنشاء مستخدم جديد&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;إنشاء دليل خاص&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;الدليل الخاص: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;إنشاء مجموعة خاصة بالمستخدم&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;تحديد هوية المستخدم يدوياً&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;المستخدم موجود مسبقاً، الرجاء اختيار اسم مستخدم آخر&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;كلمة المرور غير مطابقة&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;كلمة المرور هذه بسيطة جداً. \n&quot;
++&quot; كلمات المرور الجيدة يجب أن تكون &gt; 6 رموز&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;هوية المستخدم &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;لا يُنْصَح بإنشاء مستخدم بهوية &lt; 500 .\n&quot;
++&quot; هل أنت متأكد من أنك تريد فعل ذلك؟\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;إضافة %s إلى مجموعة المستخدمين 'users'&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;إنشاء المجموعة الجديدة: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;إضافة المستخدم: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;إلغاء&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;موافق&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;هوية المستخدم: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;اختيار مجموعة&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;إضافة إلى المجموعة الموجودة&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;إضافة إلى مجموعة 'المستخدمين'&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;توجد مجموعة بهذا الاسم مسبقاً. ماذا تريد أن تفعل؟&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;إنشاء مجموعة جديدة&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;تحديد هوية المجموعة يدوياً&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;هذه المجموعة موجودة مسبقاً، الرجاء اختيار اسم آخر للمجموعة&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; هوية المجموعة &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;لا يُنْصَح بإنشاء مجموعة بهوية أقل من 500.\n&quot;
++&quot; هل أنت متأكد من أنك تريد فعل ذلك؟\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;جاري إضافة المجموعة: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;هوية المجموعة: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;حذف الصف المختار؟&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;جاري حذف المستخدم %s\n&quot;
++&quot; قم كذلك بالمهام التالية\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;حذف الدليل الخاص: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;حذف صندوق البريد: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;جاري حذف المستخدم: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;هل تريد فعلاًُ حذف المجموعة %s؟&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s مجموعة أساسية للمستخدم %s\n&quot;
++&quot; احذف المستخدم أولاً&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;جاري حذف المجموعة: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;الاسم الكامل:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;اسم الدخول:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;كلمة المرور:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;تأكيد كلمة المرور:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;صدفة الدخول:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;اسم المجموعة:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;الرجاء اختيار مجموعة واحدة على الأقل للمستخدم&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;الرجاء تحديد السنة والشهر واليوم\n&quot;
++&quot; لانتهاء صلاحية الحساب &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;الرجاء ملء جميع حقول تقادم كلمة المرور\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;لا يمكنك حذف المستخدم '%s' من مجموعته الأساسية&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;الدليل الخاص:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;بيانات المستخدم&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;تمكين إنهاء صلاحية الحساب&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;تنتهي صلاحية الحساب (يوم/شهر/سنة):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;إقفال حساب المستخدم&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;معلومات الحساب&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;قام المستخدم بتغيير كلمة مروره عند: &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;تمكين إنهاء صلاحية كلمة المرور&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;عدد الأيام قبل السماح بالتغيير:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;عدد الأيام قبل المطالبة بالتغيير:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;عدد أيام التحذير قبل التغيير:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;عدد الأيام قبل إخماد الحساب:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;معلومات كلمة المرور&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;اختر المجموعات التي سيصبح المستخدم عضواً فيها: &quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;بيانات المجموعة&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;اختر المستخدمين الذين سيلتحقون بالمجموعة:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;مستخدمو المجموعة&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;تحرير المجموعات / المستخدمون&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;حدث خطأ&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;إغلاق&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;إدارة المستخدمين&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;ﻡﺎﻧﺩﺮﻴﺑﺍ ﻞﻴﻨﻜﺳ&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Arabeyes &lt;support@arabeyes.org&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;حقل الاسم فارغ فضلاً قم بتحديد اسم&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;يجب أن يحتوي الاسم فقط على حروف صغيرة، أرقام، `-' و `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;الاسم طويل جداً&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;خطأ&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;خطأ مجهول&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;خطأ في إنشاء `%s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;المؤلفون: &quot;
++
++#~ msgid &quot;Adding user : %s&quot;
++#~ msgstr &quot;إضافة المستخدم : %s&quot;
++
++#~ msgid &quot;Adding group : %s &quot;
++#~ msgstr &quot;جاري إضافة المجموعة: %s &quot;
++
++#~ msgid &quot;Delete Home Directory :%s&quot;
++#~ msgstr &quot;حذف الدليل الخاص: %s&quot;
++
++#~ msgid &quot;Delete Mailbox :/var/spool/mail/%s&quot;
++#~ msgstr &quot;حذف صندوق البريد :/var/spool/mail/%s&quot;
++
++#~ msgid &quot;Login&quot;
++#~ msgstr &quot;اسم الدخول&quot;
++
++#~ msgid &quot;Password&quot;
++#~ msgstr &quot;كلمة المرور&quot;
++
++#~ msgid &quot;Home&quot;
++#~ msgstr &quot;الدليل الخاص&quot;
++
++#~ msgid &quot;User last changed password on : &quot;
++#~ msgstr &quot;قام المستخدم بتغيير كلمة مروره عند : &quot;
++
++#~ msgid &quot;Days before change allowed :&quot;
++#~ msgstr &quot;عدد الأيام قبل السماح بالتغيير :&quot;
++
++#~ msgid &quot;Days before change required :&quot;
++#~ msgstr &quot;عدد الأيام قبل المطالبة بالتغيير :&quot;
++
++#~ msgid &quot;Days warning before change :&quot;
++#~ msgstr &quot;عدد أيام التحذير قبل التغيير :&quot;
++
++#~ msgid &quot;Days before account inactive :&quot;
++#~ msgstr &quot;عدد الأيام قبل إخماد الحساب :&quot;
++
++#~ msgid &quot;Select the users to join this group :&quot;
++#~ msgstr &quot;اختر المستخدمين الذين سيلتحقون بالمجموعة :&quot;
+
+<a id="userdrake2tags1133poastpo">Added: userdrake2/tags/1.13.3/po/ast.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/ast.po (rev 0)
++++ userdrake2/tags/1.13.3/po/ast.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,750 @@
++# Copyright (C) 2000,2003, 2004, 2007 Free Software Foundation, Inc.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: es\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2010-01-28 16:58+0100\n&quot;
++&quot;Last-Translator: marquinos &lt;marquinos@mandriva.org&gt;\n&quot;
++&quot;Language-Team: Asturian &lt;alministradores@softastur.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Fallu al lleer `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Fallu criando `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Fallu desaniciando `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Fallu al criar cola de corréu.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Fallu al criar cola de corréu.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Fallu al criar cola de corréu.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;fallu desconocíu&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Fallu al criar cola de corréu.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Fallu al desaniciar cola de corréu.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Cargando usuarios y grupos... Por favor, espera&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Ferramienta d'alministración d'usuarios de Mageia&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;/_Instalar cuenta d'invitáu&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;/_Desaniciar cuenta d'invitáu&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Aiciones&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Editar&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Desaniciar&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Opciones&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Peñerar usuarios del sistema&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Ficheru&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Refrescar&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Colar&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Amestar usuariu&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Amestar _Grupu&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/A_ida&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Informar bug&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Tocante a...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Guetar:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Aplicar peñera&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Usuarios&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Grupos&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Usuarios y grupos&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Nome d'usuariu&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ID d'usuariu&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Grupu primariu&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Nome completu&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Shell d'identificación&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Directoriu personal&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Estáu&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Nome del grupu&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ID de grupu&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Miembros del grupu&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Amestar usuariu&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Amestar un usuariu al sistema&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Amestar grupu&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Amestar un grupu al sistema&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Editar&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Editar filera seleicionada&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Desaniciar&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Desaniciar filera seleicionada&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Refrescar&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Refrescar la llista&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Bloquiáu&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Espiráu&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Calca sobro l'iconu pa camudalu&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Criar usuariu nuevu&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Criar direutoriu personal&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Directoriu personal: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Criar un grupu priváu pal usuariu&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Especificar ID d'usuariu manualmente&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;L'usuariu ya esiste nel sistema, por favor usa otru nome d'usuariu&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Nun concasa la contraseña&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Esta contraseña ye enforma simple. \n&quot;
++&quot; Les contraseñes bones deberíen tener más de 6 carauteres&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;L'UID del usuariu ye menor a 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Nun recomendao criar un usuariu con UID menor a 500.\n&quot;
++&quot;¿De xuro que quies face esto?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Poniendo %s nel grupu 'users'&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Criando grupu nuevu: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Amestando usuariu: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Asistente de migración&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;¿Quies executar l'asistente de migración pa importar los axustes y &quot;
++&quot;documentos de Windows® na distribución Mageia?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Encaboxar&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Aceutar&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Escoyer un grupu&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Amestar al grupu esistente&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Amestar al grupu 'users'&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Ya esiste un grupu con esti nome. ¿Qué quies facer?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Criar nuevu grupu&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Especificar ID de grupu manualmente&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;El grupu ya esiste, por favor usa otru nome de grupu&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;El GID del grupu ye menor a 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Nun recomendao criar un grupu con GID menor a 500.\n&quot;
++&quot;¿De xuro que quies facer esto?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Amestando grupu: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;¿Desaniciar ficheros o non?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Desaniciando usuariu %s\n&quot;
++&quot; Faciendo tamién les siguientes aiciones\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Desaniciar direutoriu personal: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Desaniciar buzón de corréu: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Desaniciando usuariu: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;¿De xuro que quies desaniciar el grupu %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s ye un grupu primariu pal usuariu %s\n&quot;
++&quot;Desanicia primero al usuariu&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Desaniciando grupu: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Nome completu:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Identificación:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Contraseña:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Confirmar contraseña:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Shell d'identificación:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Nome del grupu:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Por favor, escueyi al menos un grupu pal usuariu&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Por favor, especifica l'añu, mes y día\n&quot;
++&quot;pa la espiración de la cuenta&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Por favor, completa tolos campos na desactivación de la contraseña\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Nun puedes desaniciar al usuariu '%s' del so grupu primariu&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Directoriu personal:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Datos d'usuariu&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Activar espiración de cuenta&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;La cuenta espira (AAAA-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Bloquiar cuenta d'usuariu&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Información de la cuenta&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;L'usuariu camudó la contraseña por cabera vegada'l : &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Activar espiración de contraseña&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Díes enantes de permitir el cambéu:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Díes enantes de requerir el cambéu:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Díes d'avisu enantes del cambéu:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Díes enantes que la cuenta se desactive:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Información de contraseña&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Escueyi los grupos a los cuales pertenecerá l'usuariu:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Datos del grupu&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Escueyi los usuarios que formarán parte d'esti grupu:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Grupu d'usuarios&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Editar Grupos / Usuarios&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Hebo un fallu:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Zarrar&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Copyright (C) %s by Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Alministración d'usuarios&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Softastur &lt;alministradores@softastur.org&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;El campu de nome ta baleru, por favor pon un nome&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;El nome tien de caltener namái lletres minúscules, númberos, `-' y `_'&quot;
++
++#: ../userdrake:1300
++#, fuzzy, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;El nome ye perllargu&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Fallu&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;fallu desconocíu&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Fallu criando `%s': %s&quot;
+
+<a id="userdrake2tags1133poazpo">Added: userdrake2/tags/1.13.3/po/az.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/az.po (rev 0)
++++ userdrake2/tags/1.13.3/po/az.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,762 @@
++# translation of userdrake-az.po to Azerbaijani
++# translation of userdrake-az.po to Azerbaijani Turkish
++# userdrake-az.po faylının Azərbaycan dilinə tərcüməsi
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/az.php3
++#
++# Copyright (C) 2003, 2004 Free Software Foundation, Inc.
++# Vasif Ismailoglu &lt;azerb_linux@hotmail.com&gt;, 2000.
++# Mətin Əmirov &lt;metin@karegen.com&gt;, 2003, 2004.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-az\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2004-09-12 17:14+0300\n&quot;
++&quot;Last-Translator: Mətin Əmirov &lt;metin@karegen.com&gt;\n&quot;
++&quot;Language-Team: Azerbaijani &lt;translation-team-az@lists.sourceforge.net&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.3.1\n&quot;
++&quot;Plural-Forms: nplurals=1; plural=0;\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;`%s' oxuna bilmədi: %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;`%s' yaradıla bilmədi: %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;`%s' silinə bilmədi: %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Mail spool yaradıla bilmədi.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Mail spool yaradıla bilmədi.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Mail spool yaradıla bilmədi.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;naməlum xəta&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Mail spool yaradıla bilmədi.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Mail spool silinə bilmədi.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;İstifadəçilər və Qruplar Yüklənir... Xahiş edirik, gözləyin&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageia İstifadəçi İdarəsi Vasitəsi&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Gedişatlar&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Düzəlt&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Sil&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Seçimlər&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Sistem istifadəçilərini filtrlə&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Fayl&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Təzələ&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/Çı_x&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_İstifadəçi Əlavə Et&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/_Qrup Əlavə Et&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Yardım&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Xəta Raportu Göndər&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Haqqında...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Axtar:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Filtri tətbiq et&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;İstifadəçilər&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Qruplar&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;İstifadəçilər və qruplar&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;İstifadəçi Adı&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;İstifadəçi ID'si&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Əsas Qrup&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Tam Ad&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Giriş Qabığı&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Ev Cərgəsi&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Vəziyyət&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Qrup Adı&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Qrup ID'si&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Qrupun Üzvləri&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;İstifadəçi Əlavə Et&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Sistemə istifadəçi əlavə et&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Qrup Əlavə Et&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Sistemə qrup əlavə et&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Düzəlt&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Seçili sətiri düzəlt&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Sil&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Seçili sətiri sil&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Təzələ&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Siyahını təzələ&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Qıfıllı&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Vaxtı Bitib&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Dəyişdirmək üçün timsala tıqlayın&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Yeni İstifadəçi Yarat&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Ev Cərgəsi Yarat&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Ev Cərgəsi: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;İstifadəçi üçün xüsusi (private) qrup yarat&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;İstifadəçi ID'sini əllə müəyyən et&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;&quot;
++&quot;Bu istifadəçi onsuz da mövcuddur, xahiş edirik başqa İstifadəçi Adı seçin&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Şifrələr Uyğun Gəlmir&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Şifrə həddindən artıq qısadır. \n&quot;
++&quot;Məsləhət görülən şifrələrin 6 hərfdən böyük olmasıdır&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;İstifadəçi Uid'i &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;UID'i 500'dən az olan istifadəçi yaradmaq məsləhət edilmir.\n&quot;
++&quot; Bunu həqiqətən də etmək istəyirsiniz?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;%s 'users' qrupuna yerləşdirilir&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Yeni qrup yaradılır: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;İstifadəçi əlavə edilir: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Ləğv et&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Oldu&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Qrupu seç&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Mövcud qrupa əlavə et&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;'users' qrupuna əlavə et&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Bu adla onsuzda bir qrup mövcuddur. Nə etmək istəyirsiniz?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Yeni Qrup Yarat&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Qrup ID'sini əllə müəyyən et&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Bu qrup onsuz da mövcuddur, xahiş edirik başqa Qrup Adı seçin&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; Qrup Gid'i &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;GID'i 500'dən az olan qrup yaratmaq məsləhət edilmir.\n&quot;
++&quot; Bunu həqiqətən də etmək istəyirsiniz?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Qrup əlavə edilir: %s&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Fayllar silinsin?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;%s istifadəçisi silinir\n&quot;
++&quot; Həmçinin bunları da yerinə gətir\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Ev Cərgəsini Sil: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Poçt Qutusunu Sil :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;İstifadəçi silinir: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Həqiqətən də %s qrupunu silmək istəyirsiniz?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s, %s istifadəçisinin əsas qrupudur\n&quot;
++&quot; Əvvəlcə istifadəçini silin&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Qrup silinir: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Tam Ad:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Giriş:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Şifrə:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Şifrənin Təsdiqi:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Giriş Qabığı:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Qrup Adı:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Xahiş edirik, istifadəçi üçün ən az bir qrup seçin&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Xahiş edirik, hesabın vaxtının bitməsinin \n&quot;
++&quot; İl, Ay və Gününü tə'yin edin&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;&quot;
++&quot;Xahiş edirik, şifrə vaxtının bitməsi qurğularının bütün sahələrini doldurun\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;'%s' istifadəçisini onun əsas qrupundan çıxara bilməzsiniz&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Ev:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;İstifadəçi Mə'lumatı&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Hesabın vaxtının bitməsini fəallaşdır&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Hesabın vaxtının bitmə tarixi (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;İstifadəçi Hesabını Qıfılla&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Hesab Mə'lumatı&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;İstifadəçi şifrəsini ən son bu vaxtda dəyişib : &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Şifrə Vaxtının Bitməsini Fəallaşdır&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Dəyişdirmə icazəsi əvvəlindəki gün :&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Dəyişdirmə məcburiyyəti əvvəlindəki gün :&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Dəyişdirmədən xəbərdarlıq əvvəlindəki gün :&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Hesabın qeyri-fəal olması əvvəlindəki gün :&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Şifrə Mə'lumatı&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;İstifadəçinin üzv olacağı qrupları seçin:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Qrup Mə'lumatı&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Bu qrupa qoşulacaq istifadəçiləri seçin :&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Qrup İstifadəçiləri&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Qrupları/İstifadəçiləri Düzəlt&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Bir xəta oldu&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Bağla&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;İstifadəçi İdarəsi&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Mətin Əmirov &lt;metin@karegen.com&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Ad sahəsi boşdur, xahiş edirik bir ad tə'yin edin&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++&quot;Ad yalnız kiçik hərfləri, ədədləri, `-' və `_' hərfləri daxil edə bilər&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Ad çox uzundur&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Xəta&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;naməlum xəta&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;`%s' yaradıla bilmədi: %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Müəlliflər: &quot;
+
+<a id="userdrake2tags1133pobepo">Added: userdrake2/tags/1.13.3/po/be.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/be.po (rev 0)
++++ userdrake2/tags/1.13.3/po/be.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,761 @@
++# Belarussian translation of userdrake.pot
++# Copyright (C) 2003 Mandriva
++# This file is distributed under the same license as the Userdrake package.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: Userdrake\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2003-08-14 16:54+0300\n&quot;
++&quot;Last-Translator: Maxim Kuzmich &lt;max_kuzm@tut.by&gt;\n&quot;
++&quot;Language-Team: Belarusian\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 0.9.6\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:490
++#, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:582
++#, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;невядомая памылка&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Дастасаваньне для кіраваньня карыстальнікамі Mageia&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Дзеяньні&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Рэдагаваць&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Выдаліць&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Налады&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Фільтраваць сыстэмных карыстальнікаў&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Файл&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Аднавіць&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Выхад&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Дадаць карыстальніка&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Дадаць _групу&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Дапамога&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Паведаміць пра памылку&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Пра...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Шукаць:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Ужыць фільтар&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Карыстальнікі&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Групы&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Імя карыстальніка&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ID карыстальніка&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Асноўная група&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Поўнае імя&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Хатні каталёг&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Стан&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Імя групы&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ID групы&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Сябры групы&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Дадаць карыстальніка&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Дадаць карыстальніка ў сыстэму&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Дадаць групу&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Дадаць групу ў сыстэму&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Рэдагаваць&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Рэдагаваць вылучаны радок&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Выдаліць&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Выдаліць вылучаны радок&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Аднавіць&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Аднавіць сьпіс&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Блакіраваны&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Націсніце на піктаграму каб зьмяніць яе&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Стварыць новага карыстальніка&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Стварыць хатні каталёг&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Хатні каталёг: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Стварыць прыватную групу для карыстальніка&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Пазначыць карыстальніцкі ID&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Карыстальнік ўжо існуе, пазначце другое Імя&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Несупадзеньне пароляў&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Гэты пароль занадта просты. \n&quot;
++&quot; Добрыя паролі павінны быць большыя за 6 літараў&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Карыстальніцкі ID &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Стварэньне карыстальніка з UID меншым за 500 не рэкамэндавана.\n&quot;
++&quot; Ці вы ўпэўнены, што хочаце зрабіць гэта?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, fuzzy, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Дадаць у групу 'users'&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Адмена&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Так&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:510
++#, fuzzy, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Выберыце групу&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Дадаць у існуючую групу&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Дадаць у групу 'users'&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Група з такім імём ўжо існуе. Што будзем рабіць?&quot;
++
++#: ../userdrake:546
++#, fuzzy, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Стварыць новага карыстальніка&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Пазначыць ID групы&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Група ўжо існуе, пазначце другое імя для групы&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; ID групы меншы за 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Стварэньне групы з GID меншым за 500 не рэкамэндавана.\n&quot;
++&quot; Ці вы ўпэўненыя ў тым што робіце?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:636
++#, fuzzy, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Выдаліць вылучаны радок&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Выдаленьне карыстальніка %s\n&quot;
++&quot; Таксама выканаць наступныя дзеі\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Выдаліць хатні каталёг: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Выдаліць паштовую скрыню: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Ці жадаеце выдаліць групу %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s асноўная група для карыстальніка %s\n&quot;
++&quot; Спачатку выдаліце гэтага карыстальніка&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Поўнае імя:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Уваход:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Пароль:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Яшчэ раз пароль:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Імя групы:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Пазначце ня менш адной групы для карыстальніка&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Вы ня можаце выдаліць карыстальніка '%s' зь ягонай асноўнай групы&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Хата:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Карыстальніцкія дадзеныя&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Дазволіць тэрмін дзеяньня запісу&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Тэрмін дзеяньня выцякае (ГГГГ-ММ-ДД)&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Блакіраваць карыстальніцкі запіс&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Інфармацыя запісу&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Карыстальнік змяняў пароль апошні раз: &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Дазволіць тэрмін дзеяньня паролю&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Інфармацыя пра пароль&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Выберыце групы сябром якіх будзе карыстальнік:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Дадзеныя групы&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Пазначце карыстальнікаў каб аб'яднаць у гэтыю групу&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Карыстальнікі групы&quot;
++
++#: ../userdrake:1127
++#, fuzzy, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Карыстальнікі групы&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Адбылася памылка&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Зачыніць&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1280
++#, fuzzy, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Імя карыстальніка&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Поле \&quot;Імя\&quot; пустое. Пазначце яго&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++&quot;Імя павінна ўтрымліваць толькі маленькія лацінскія літары, лічбы, `-' ды `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Імя занадта доўгае&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Памылка&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;невядомая памылка&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Аўтары: &quot;
++
++#~ msgid &quot;Yes&quot;
++#~ msgstr &quot;Так&quot;
++
++#~ msgid &quot;No&quot;
++#~ msgstr &quot;Не&quot;
++
++#, fuzzy
++#~ msgid &quot;Delete files or not&quot;
++#~ msgstr &quot;Выдаліць вылучаны радок&quot;
++
++#~ msgid &quot;Warning : Deleting User&quot;
++#~ msgstr &quot;Папярэджаньне : Выдаленьне карыстальніка&quot;
++
++#~ msgid &quot;Warning : Deleting Group&quot;
++#~ msgstr &quot;Увага : Выдаленьне групы&quot;
+
+<a id="userdrake2tags1133pobgpo">Added: userdrake2/tags/1.13.3/po/bg.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/bg.po (rev 0)
++++ userdrake2/tags/1.13.3/po/bg.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,770 @@
++# translation of userdrake-bg.po to Bulgarian
++# translation of userdrake2-bg.po to Bulgarian
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/bg.php3
++#
++# translation of userdrake.po to Bulgarian
++# Tzenko Tcholakov &lt;tzenko@tchoko.net&gt;, 2000,2002.
++# Boyan Ivanov &lt;boyan17@bulgaria.com&gt;, 2003, 2004.
++# Dimitar Terziev &lt;mitak@unix-bg.org&gt;, 2005.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-bg\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2009-04-11 09:18+0200\n&quot;
++&quot;Last-Translator: Rossen Karpuzov &lt;gustav cointech net&gt;\n&quot;
++&quot;Language-Team: Mandriva User Group - Bulgaria &lt; mandriva-bg@googlegroups.&quot;
++&quot;com&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Language: bg\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++&quot;X-Generator: Pootle 1.2.1\n&quot;
++&quot;X-Poedit-Language: Bulgarian\n&quot;
++&quot;X-Poedit-Country: BULGARIA\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Грешка при четене `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Грешка при създаване на `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Грешка при изтриване: `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Грешка при създаване на mail spool.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Грешка при създаване на mail spool.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Грешка при създаване на mail spool.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;непозната грешка&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Грешка при създаване на mail spool.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Грешка при изтриване на главен spool.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Зареждам потребителите и групите... Моля изчакайте&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Мандрива линукс инструмент за работа с потребителски сметки&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Действия&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Промени&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Изтрий&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Настройки&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Филтрира системните потребители&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Файл&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Опресни&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Изход&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Добави потребител&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Добави _група&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/Помощ&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Уведоми за грешка&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Информация...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Търси:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Използва филтър&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Потребители&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Групи&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Потребители и групи&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Име на потребител&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Потребителски номер&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Основна група&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Пълно име&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Влизане в системата&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Домашна директория на потребител&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Статус&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Име на група&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Номер на група&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Членове на група&quot;
++
++# broken into two lines to avoid too large a button
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;&quot;
++&quot;Добави\n&quot;
++&quot;потребител&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Добавя потребител към системата&quot;
++
++# broken into two lines to avoid too large a button
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Добави група&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Добавя група към системата&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Промени&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Редактира избраната редица&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Изтрий&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Изтрива избраната редица&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Опресни&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Опресни списъка с потребителите&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Заключен&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Просрочен&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Щракнете на иконата,за да я промените&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Създава нов потребител&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Създава домашна директория&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Домашна директория:&quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Създава лична група за потребителя&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Ръчно задаване на потребителски номер&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Това име вече съществува в системата,моля изберете друго&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Паролите не съвпадат&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Паролата е твърде проста. \n&quot;
++&quot;Добри пароли са тези с поне 6 символа.&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Потребителският номер е по-малък от 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Създаване на потребител с номер по-малък от 500 не е препоръчително.\n&quot;
++&quot;Сигурни ли сте,че го желаете ?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Добавяне на %s в група \&quot;потребители\&quot;&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Създаване на нова група: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Добавяне на потребител: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Помощник за миграция&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;Искате ли да бъде стартиран помощника за миграция в задание давмъкне Windows &quot;
++&quot;документи и настройки във вашата Мандрива Линукс?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Отказ&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Добре&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Изберете група&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Добавя към съществуваща група&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Добавяне към група \&quot;потребители\&quot;&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot; Група с това име съществува. Какво желаете да направя?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Създаване на нова група&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Ръчно задаване на номер на група&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Групата вече съществува,моля изберете друго име&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;ГИД е по-малък от 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Създаване на група с GID &lt; 500 не е препоръчително\n&quot;
++&quot; Сигурен ли сте,че желаете да го направите ?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Добавяне на група: %s&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Изтриване на файлове ?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Изтриване на потребител %s\n&quot;
++&quot; Също изпълни следните действия:\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Изтриване на домашна директория: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Изтриване на пощенска кутия: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Изтриване на потребител: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Наистина ли желаете да изтриете група %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s е основната група на потребител %s\n&quot;
++&quot; Изтрийте първо потребителя.&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Изтриване на група: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Пълно име:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Влизане в с-мата:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Парола:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Потвърждение:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Влизане в системата:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Име на група:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Моля изберете поне една група за потребителя&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Моля въведете година,месец и ден, \n&quot;
++&quot; до които важи сметката&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Моля попълнете всички полета за \&quot;остаряване\&quot; на паролата\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Не можете да махнете потребител %s от основната му група&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Дом:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Потребителска информация&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Включва валидност на сметките&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Сметката е валидна до (ГГГГ-ММ-ДД):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Заключва потребителска сметка&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Информация за сметка&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Потребителят е сменил последно паролата си на : &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Включва валидност на паролите&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Дни преди да бъде разрешена смяна:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Дни преди да бъде наложена смяна:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Предупреждение (в дни) преди промяната:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Дни преди сметката да стане неактивна&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Информация за паролите&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Изберете към на кои групи ще бъде член потребителят:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Информация за групите&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Изберете потребители за тази група:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Потребители в групата&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Промяна на потребители/групати&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Появи се грешка&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Затвори&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Запазени права (C) %s от Мандрива&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Работа със сметки&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Boyan Ivanov &lt;boyan17@bulgaria.com&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Полето за име е празно,моля въведете нещо.&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++&quot;Името трябва да съдържа латински букви в долен регистър,цифри,`-' и `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Името е твърде дълго&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Грешка&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;непозната грешка&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Грешка при създаване на `%s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Автори:&quot;
+
+<a id="userdrake2tags1133pobnpo">Added: userdrake2/tags/1.13.3/po/bn.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/bn.po (rev 0)
++++ userdrake2/tags/1.13.3/po/bn.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,753 @@
++# Bangla Translation of userdrake.po.
++# Copyright (C) 2004 Free Software Foundation, Inc.
++# Runa Bhattacharjee &lt;runa@bengalinux.org&gt;, 2004.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: Userdrake VERSION\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2004-07-28 11:14+0600\n&quot;
++&quot;Last-Translator: Jamil Ahmed &lt;jamil@bengalinux.org&gt;\n&quot;
++&quot;Language-Team: Bangla &lt;mdk-translation@bengalinux.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;`%s' পড়ার সময় সমস্যা হয়েছে: %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;`%s' তৈরি করার সময় সমস্যা হয়েছে: %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;`%s' মুছে ফেলার সময় সমস্যা হয়েছে: %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;মেইল স্পুল তৈরি করার সময় সমস্যা হয়েছে।\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;মেইল স্পুল তৈরি করার সময় সমস্যা হয়েছে।\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;মেইল স্পুল তৈরি করার সময় সমস্যা হয়েছে।\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;অজানা সমস্যা&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;মেইল স্পুল তৈরি করার সময় সমস্যা হয়েছে।\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;মেইল স্পুল মুছার সময় সমস্যা হয়েছে।\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;ইউজারড্রেক&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;ব্যবহারকারী এবং দল লোড করা হচ্ছে... দয়া করে অপেক্ষা করুন&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;ম্যান্ড্রেক লিনাক্স ইউসারস ম্যানেজমেন্ট টুল&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/কার্যবলী (_ক)&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/সম্পাদনা (_প)&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/মুছে ফেলা (_ছ)&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/অপশন (_অ)&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/সিস্টেম ব্যবহারকারীদের ফিল্টার করো (_ব)&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/ফাইল (_ফ)&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/নতুন করে প্রদর্শন(_ন)&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/প্রস্থান (_হ)&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/ব্যবহারকারী যোগ করো (_য)&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/দল যোগ করো (_দ)&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/সহায়িকা (_স)&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/ত্রুটি পেশ (_ত)&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/সম্বন্ধে (_ম)...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;অনুসন্ধান:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;ফিল্টার ব্যবহার করো&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;ব্যবহারকারী&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;দল&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;ব্যবহারকারী এবং দল&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;ব্যবহারকারীর নাম&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ব্যবহারকারীর ID&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;প্রাথমিক দল&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;সম্পূর্ণ নাম&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;লগ - ইন শেল&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;হোম ডিরেক্টরি&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;অবস্থা&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;দলের নাম&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;দলের ID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;দলের সদস্যবৃন্দ&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;ব্যবহারকারী যোগ করো&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;সিস্টেমে একজন ব্যবহারকারী যোগ করুন&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;দল যোগ করো&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;সিস্টেমে একটি দল যোগ করুন&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;সম্পাদন করো&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;নির্বাচিত সারি সম্পাদন করো&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;মুছে ফেলো&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;নির্বাচিত সারি মুছে ফেলো&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;পুনরায় প্রদর্শন করো&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;তালিকা পুনরায় প্রদর্শন করো&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;লক করা হয়েছে&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;সময়সীমা পেরিয়ে গেছে&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;পরিবর্তন করতে হলে আইকনে ক্লিক করুন&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;নুতন ব্যবহারকারী যোগ করো&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;হোম ডিরেক্টরি তৈরি করো&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;হোম ডিরেক্টরি তৈরি করো: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;ব্যবহারকারীর জন্য একটি ব্যক্তিগত দল তৈরি করো&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;ব্যবহারকারীর ID ম্যানুয়েলি নির্ধারণ করো&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;এই নামের ব্যবহারকারী বর্তমানে উপস্থিত আছে, দয়া করে আরেকটি নাম নির্বাচন করুন&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;পাসওয়ার্ড মেলেনি&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;এই পাসওয়ার্ডটি বেশ সহজ। \n&quot;
++&quot; যে কোনো ভালো পাসওয়ার্ড অন্তত ৬ টি অক্ষরের বেশি হওয়া উচিত&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;আপনার Uid ৫০০ নিচে&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;৫০০-র নিচে কোনো সংখ্যা UID তে ব্যবহার করা বাঞ্ছনীয় নয়।\n&quot;
++&quot; আপনি কি এই কাজ করার বিষয়ে নিশ্চিত?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;%s কে 'users' দলে ঢোকানো হচ্ছে&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;নতুন দল তৈরি করা হচ্ছে: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;ব্যবহারকারী যোগ করা হচ্ছে: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;বাতিল&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;ঠিক আছে&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;দল নির্বাচন করুন&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;উপস্থিত দলে যোগ করো&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;'users' দলে যোগ করো&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;এই নামে একটি দল বর্তমানে উপস্থিত আছে। আপনি কী করতে ইচ্ছুক?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;নতুন দল তৈরি করো&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;দলের ID ম্যানুয়েলি নির্ধারণ করো&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;দল বর্তমানে উপস্থিত আছে, দয়া করে দলের জন্য আরেকটি নাম নির্বাচন করুন&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; দলের Gid ৫০০-র নিচে আছে&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;৫০০-র নিচে কোনো সংখ্যা GID তে ব্যবহার করা বাঞ্ছনিয় নয়।\n&quot;
++&quot; আপনি কি এই কাজ করার বিষয়ে নিশ্চিত?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;দল যোগ করা হচ্ছে: %s&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;ফাইল মুছে ফেলা হবে কি না?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;%s ব্যবহারকারীকে মুছে ফেলা হচ্ছে\n&quot;
++&quot; নিম্নোক্ত কার্যগুলিও সম্পন্ন করো\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;হোম ডিরেক্টরি মুছে ফেলো: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;মেইলবক্স মুছে ফেলো :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;ব্যবহারকারীকে মুছে ফেলা হচ্ছে: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;আপনি কি %s দলটিকে মুছে ফেলার বিষয়ে নিশ্চিত&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s দলটি %s ব্যবহারকারীর প্রাথমিক দল\n&quot;
++&quot; ব্যবহারকারীকে প্রথমে সরিয়ে ফেলো&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;দলটি সরিয়ে ফেলা হচ্ছে: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;সম্পূর্ণ নাম:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;লগ-ইন:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;পাসওয়ার্ড:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;পাসওয়ার্ড নিশ্চিত করুন:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;লগ - ইন শেল:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;দলের নাম:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;ব্যবহারকারীর জন্য অন্তত একটি দল নির্বাচন করুন&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;অ্যাকাউন্টের সময়সীমা পূরণের বত্‌সর, মাস এবং দিন \n&quot;
++&quot;দয়া করে নির্ধারণ করুন &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;পাসওয়ার্ড-এর সময়সীমা সম্বন্ধীয় সব ক্ষেত্রগুলিকে দয়া করে পূর্ণ করুন।\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;'%s' ব্যবহারকারীকে আপনি তাদের মূল দল থেকে সরিয়ে ফেলতে পারবেন না&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;হোম:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;ব্যবহারকারীর ডাটা&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;অ্যাকাউন্টের সময়সীমা কার্যকরী করো&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;অ্যাকাউন্টের সময়সীমা পার হবে এই তারিখে (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;ব্যবহারকারীর অ্যাকাউন্ট লক করো&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;অ্যাকাউন্ট সম্বন্ধিয় তথ্য&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;ব্যবহারকারী পাসওয়ার্ড সর্বশেষ পরিবর্তন করেছিলেন : &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;পাসওয়ার্ডের সময়সীমা কার্যকরী করো&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;কতদিন পর পরিবর্তন করা যাবে :&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;কত দিন পরে পরিবর্তন প্রয়োজন :&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;পরিবর্তন করার পূর্বে সতর্কবাণী দেওয়ার সময়সীমা (দিন) :&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;অ্যাকাউন্টের সময়সীমা পুর্ণ হওয়ার আগের অবশিষ্ট দিন :&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;পাসওয়ার্ড সম্বন্ধিয় তথ্য&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;এই ব্যবহারকারী যে দলগুলির সদস্য হবে তা নির্বাচন করুন:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;ডাটা দলবদ্ধ করো&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;এই দলে যে ব্যবহারকারীদের যোগ করা হবে তাদের নির্বাচন করুন :&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;ব্যবহারকারীদের দলবদ্ধ করো&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;দল / ব্যবহারকারী সম্পাদন করুন&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;একটি ত্রুটি সম্পাদিত হয়েছে&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;বন্ধ করো&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;ব্যবহারকারীদের নিয়ন্ত্রন করা&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;ম্যান্ড্রিব লিনাক্স (Mageia)&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Bangla team &lt;mdk-translation@bengalinux.org&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;নামের ক্ষেত্রটি ফঁাকা রয়েছে, দয়া করে একটি নাম লিখুন&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++&quot;নামের মধ্যে শুধুমাত্র lowercase-এর লাতিন অক্ষর, সংখ্যা, `-' এবং `_' লেখা যাবে&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;নামটি অতিরিক্ত লম্বা&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;সমস্যা&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;অজানা সমস্যা&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;`%s' তৈরি করার সময় সমস্যা হয়েছে: %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;লেখক: &quot;
+
+<a id="userdrake2tags1133pobrpo">Added: userdrake2/tags/1.13.3/po/br.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/br.po (rev 0)
++++ userdrake2/tags/1.13.3/po/br.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,740 @@
++# Breton translation of Mageia.
++# Copyright (C) 2004 Free Software Foundation, Inc.
++# Thierry Vignaud &lt;tvignaud@mandriva.com&gt;, 2004
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: rpmdrake\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2006-03-17 16:59+0100\n&quot;
++&quot;Last-Translator: Ja-Mai Drapier &lt;jan-mai.drapier@mail.dotcom.fr&gt;\n&quot;
++&quot;Language-Team: Brezhoneg &lt;ofisk.bzh@wanadoo.fr&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=1;plural=0\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Fazi en ur lenn `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Fazi en ur krouiñ `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Fazi en ur lemel `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Fazi en ur krouiñ al lostenn postel.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Fazi en ur krouiñ al lostenn postel.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Fazi en ur krouiñ al lostenn postel.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;fazi dianav&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Fazi en ur krouiñ al lostenn postel.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Fazi en ur lemel al lostenn postel.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;O kargañ arveriaded ha strolladoù ... Gortozit mar plij&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Ostil mereañ arveriaded Mageia&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Oberoù&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Aozañ&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Dilemel&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Dibarzhoù&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Restr&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Adtresañ&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Kuitaat&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/Ouzhpennañ un _arveriad&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Ouzhpennañ un _strollad&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Skoazell&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Reiñ da c'houzout ur gudenn&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_A-brepoz...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Klask :&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Arloañ ar sil&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Arveriadioù&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Strolladoù&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Tud ha strolladoù&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Anv arveriad&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ID an arveriad&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Strollad kentañ&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Anv klok&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Shell ereañ&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Renkell ar gêr&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Stad&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Anv ar strollad&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ID ar strollad&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Ezelioù ar strollad&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Ouzhpennañ un arveriad&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Ouzhpennañ un arveriad d'ar reizhiad&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Ouzhpennañ ur strollad&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Ouzhpennañ ur strollad d'ar reizhiad&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Kemmañ&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Aozañ al linenn diuzet&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Lemel&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Lemel al linenn diuzet&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Adtresañ&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Adtresañ ar roll&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Krouilhet&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Kabac'het&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Klikit ouzh an arlun evit kemmañ anezhi&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Krouiñ un arveriad nevez&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Krouiñ ar renkell er-gêr&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Renkell ar gêr : &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Krouiñ ur strollad prevez evit an arveriad&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Lakaat ID an arveriad gant an dorn&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Endeo eo an arveriad, dibabit un anv arveriad all mar plij&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;An tremegerioù ne glot ket&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Oc'h ouzhpennañ %s d'ar strollad « users »&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;O grouiñ ar strollad nevez : %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Oc'h ouzhpennañ un arveriad : %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Nullañ&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Ya&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID : &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Dibabit ur strollad&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Ouzhpennañ d'ar strollad a zo c'hoazh&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Ouzhpennañ d'ar strollad 'users'&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Ur strollad gant an anv-se a zo c'hoazh. Petra e fell deoc'h d'ober ?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Krouiñ ur strollad nevez&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Lakaat ID ar strollad gant an dorn&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Endeo eo ar strollad, dibabit un anv strollad all mar plij&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Oc'h ouzhpennañ un strollad : %s&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID :&quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Dilemel ar restroù ?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Dilemel renkell ar gêr : %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Dilemel ar voest-lizheroù : /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;O tilemel an arveriad : %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Ha fellout a ra deoc'h da vat lemel ar strollad %s ?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;O tilemel ar strollad : %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Anv klok :&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Ereañ :&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Tremenger :&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Tremenger (adarre) :&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Shell ereañ :&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Anv ar strollad :&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Dibabit ur strollad evit an arveriad d'an nebeutañ mar plij&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Ker :&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Roadoù arveriad&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Titouroù diwar ar gont&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Titouroù diwar an tremenger&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Roadoù strollad&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Arveriaded ar strollad&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Aozañ strolladoù hag arveriaded&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Ur fazi zo bet :&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Serriñ&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Copyright (C) %s gant Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Mereañ ar averiaded&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++&quot;Jañ-Mai Drapier &lt;jan-mai.drapier@mail.dotcom.fr&gt;\n&quot;
++&quot;Thierry Vignaud &lt;tvignaud@mandriva.com&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Goullo eo an tachenn « anv ». Reiñ un anv mar plij&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Re vras eo an anv&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Fazi&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;fazi dianav&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Fazi en ur krouiñ `%s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Obererour: &quot;
+
+<a id="userdrake2tags1133pobspo">Added: userdrake2/tags/1.13.3/po/bs.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/bs.po (rev 0)
++++ userdrake2/tags/1.13.3/po/bs.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,1115 @@
++# translation of userdrake-bs.po to Bosnian
++# translation of userdrake-bs.po to Bosanski
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/bs.php3
++#
++# Copyright (C) 2001,2003, 2004. Free Software Foundation, Inc.
++# Amila Akagić &lt;bono@lugbih.org&gt;, 2001.
++# Vedran Ljubović &lt;vljubovic@smartnet.ba&gt;, 2003.
++# Amila Akagić &lt;bono@linux.org.ba&gt;, 2004.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-bs\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2004-08-17 12:54+0200\n&quot;
++&quot;Last-Translator: Amila Akagić &lt;bono@linux.org.ba&gt;\n&quot;
++&quot;Language-Team: Bosnian &lt;lokal@lugbih.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.3\n&quot;
++&quot;Plural-Forms: nplurals=3; plural=(n%10==1 &amp;&amp; n%100!=11 ? 0 : n%10&gt;=2 &amp;&amp; n%&quot;
++&quot;10&lt;=4 &amp;&amp; (n%100&lt;10 || n%100&gt;=20) ? 1 : 2);\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Greška prilikom čitanja `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Greška prilikom kreiranja `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Greška prilikom uklonjanja `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Greška prilikom kreiranja 'mail spool'-a.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Greška prilikom kreiranja 'mail spool'-a.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Greška prilikom kreiranja 'mail spool'-a.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;nepoznata greška&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Greška prilikom kreiranja 'mail spool'-a.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Greška prilikom brisanja 'mail spool'-a.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Učitavam korisnike i grupe... Molim sačekajte&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Alat za menadžement korisnika na Mageiau&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Akcije&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Edituj&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Izbriši&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Opcije&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Filtriraj sistemske korisnike&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Datoteka&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Osvježi&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Kraj&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/Dodaj _korisnika&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Dodaj _grupu&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Pomoć&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Prijavi grešku&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_O programu...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Pretraga:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Primijeni filter&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Korisnici&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Grupe&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Korisnici i grupe&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Korisničko ime&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Korisnički ID&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Primarna grupa&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Ime i prezime&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Shell&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Početni direktorij&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Status&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Naziv grupe&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Grupni ID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Članovi grupe&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Dodaj korisnika&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Dodaj korisnika na sistem&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Dodaj grupu&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Dodaj grupu na sistem&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Izmijeni&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Izmijeni izabrani red&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Izbriši&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Izbriši izabrani red&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Osvježi&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Osvježi listu&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Zaključano&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Isteklo&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Kliknite na ikonu da je promijenite&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Napravi novog korisnika&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Napravi početni direktorij&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Početni direktorij: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Napravi privatnu grupu za korisnika&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Ručno definiši korisnički ID&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Korisnik već postoji na sistemu. Izaberite drugo korisničko ime&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Šifre nisu jednake&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Ova šifra je previše jednostavna.\n&quot;
++&quot; Dobre šifre trebaju biti veće od 6 karaktera&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Korisnički Uid je &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Ne preporučuje se kreiranje korisnika sa UID-om ispod 500.\n&quot;
++&quot; Da li ste sigurni da želite uraditi ovo?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Dodajem %s u grupu 'users'&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Pravim novu grupu: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Dodajem korisnika: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Odustani&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;U redu&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Izaberite grupu&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Dodaj u postojeću grupu&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Dodaj u grupu 'users'&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Grupa sa ovim nazivom već postoji. Šta želite uraditi?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Napravi novu grupu&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Ručno definiši ID grupe&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Grupa već postoji, izaberite drugi naziv grupe&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; Grupni Gid je &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Ne preporučuje se kreiranje grupe sa GID-om manjim od 500.\n&quot;
++&quot; Da li ste sigurni da želite ovo uraditi?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Dodajem grupu: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Izbriši datoteke ili ne?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Brišem korisnika %s\n&quot;
++&quot; Također slijedeće akcije će biti poduzete\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Izbriši početni direktorij: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Izbriši mailbox :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Uklonjam korisnika: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Da li zaista želite izbrisatti grupu %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s je primarna grupa za korisnika %s\n&quot;
++&quot; Prvo uklonite korisnika&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Uklonjam grupu: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Ime i prezime:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Korisničko ime:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Šifra:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Ponovo šifra:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Shell:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Naziv grupe:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Izaberite bar jednu grupu za korisnika&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Definišite dan, mjesec i godinu\n&quot;
++&quot;kada će račun isteći&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Popunite sva polja za starenje (aging) šifre\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Ne možete ukloniti korisnika '%s' iz njegove primarne grupe&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Početni direktorij:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Podaci korisnika&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Uključi istek računa&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Račun ističe (DD-MM-YYYY):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Zaključaj korisnički račun&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Podaci o računu&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Korisnik je zadnji put promijeni šifru:&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Uključi istek šifre&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Dana prije nego je dozvoljena promjena:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Dana prije nego je promjena zahtjevana:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Dana upozorenja prije promjene:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Dana prije nego račun bude isključen:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Podaci o šifri&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Izaberite grupe čiji će član korisnik biti&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Podaci o grupi&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Izaberite korisnike koji će se pridružiti grupi&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Korisnici grupe&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Promijeni grupe/korisnike&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Došlo je do greške&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Zatvori&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Copyright (C) %s Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Menadžment korisnika&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Vedran Ljubovic &lt;vljubovic@smartnet.ba&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Polje za ime je prazno. Unesite ime&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;Ime mora sadržavati samo mala latinična slova, brojeve '-' i '_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Ime je predugačko&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Greška&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;nepoznata greška&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Greška prilikom kreiranja `%s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Autori: &quot;
++
++#~ msgid &quot;Yes&quot;
++#~ msgstr &quot;Da&quot;
++
++#~ msgid &quot;No&quot;
++#~ msgstr &quot;Ne&quot;
++
++#~ msgid &quot;Warning : Deleting User&quot;
++#~ msgstr &quot;Upozorenje: Brišem korisnika&quot;
++
++#~ msgid &quot;Warning : Deleting Group&quot;
++#~ msgstr &quot;Upozorenje: Brišem grupu&quot;
++
++#~ msgid &quot;Help&quot;
++#~ msgstr &quot;Pomoć&quot;
++
++#~ msgid &quot;Reload&quot;
++#~ msgstr &quot;Ponovo učitaj&quot;
++
++#~ msgid &quot;Save&quot;
++#~ msgstr &quot;Snimi&quot;
++
++#~ msgid &quot;Exit&quot;
++#~ msgstr &quot;Izlaz&quot;
++
++#~ msgid &quot;Settings&quot;
++#~ msgstr &quot;Podešavanja&quot;
++
++#~ msgid &quot;Show tools bar&quot;
++#~ msgstr &quot;Prikaži traku sa alatima&quot;
++
++#~ msgid &quot;View users&quot;
++#~ msgstr &quot;Prikaži korisnike&quot;
++
++#~ msgid &quot;Preferences&quot;
++#~ msgstr &quot;Postavke&quot;
++
++#~ msgid &quot;Ldap Server&quot;
++#~ msgstr &quot;Ldap server&quot;
++
++#~ msgid &quot;Save change&quot;
++#~ msgstr &quot;Spasi promjene&quot;
++
++#~ msgid &quot;Add&quot;
++#~ msgstr &quot;Dodaj&quot;
++
++#~ msgid &quot;Edit user(s)&quot;
++#~ msgstr &quot;Edituj korisnike&quot;
++
++#~ msgid &quot;Remove&quot;
++#~ msgstr &quot;Ukloni&quot;
++
++#~ msgid &quot;Edit group(s)&quot;
++#~ msgstr &quot;Edituj grupu(e)&quot;
++
++#~ msgid &quot;User id&quot;
++#~ msgstr &quot;Korisnički broj&quot;
++
++#~ msgid &quot;Group id&quot;
++#~ msgstr &quot;Grupni broj&quot;
++
++#~ msgid &quot;Comments&quot;
++#~ msgstr &quot;Komentari&quot;
++
++#~ msgid &quot;Shell&quot;
++#~ msgstr &quot;Shell&quot;
++
++#~ msgid &quot;name&quot;
++#~ msgstr &quot;ime&quot;
++
++#~ msgid &quot;gid&quot;
++#~ msgstr &quot;gid&quot;
++
++#~ msgid &quot;passwd&quot;
++#~ msgstr &quot;šifra&quot;
++
++#~ msgid &quot;users&quot;
++#~ msgstr &quot;korisnici&quot;
++
++#~ msgid &quot;Parameters&quot;
++#~ msgstr &quot;Parametri&quot;
++
++#~ msgid &quot;General option&quot;
++#~ msgstr &quot;Općenite opcije&quot;
++
++#~ msgid &quot;Edit accounts on a LDAP directory&quot;
++#~ msgstr &quot;Uredi accounte na LDAP direktoriju&quot;
++
++#~ msgid &quot;Active autologin support&quot;
++#~ msgstr &quot;Akrtiviraj autologin podršku&quot;
++
++#~ msgid &quot;User creation&quot;
++#~ msgstr &quot;Kreiranje korisnika&quot;
++
++#~ msgid &quot;Default shell:&quot;
++#~ msgstr &quot;Uobičajeni shell:&quot;
++
++#~ msgid &quot;Default home dir:&quot;
++#~ msgstr &quot;Uobičajeni kućni dir:&quot;
++
++#~ msgid &quot;Default face:&quot;
++#~ msgstr &quot;Uobičajena sličica:&quot;
++
++#~ msgid &quot;Default group:&quot;
++#~ msgstr &quot;Uobičajena grupa:&quot;
++
++#~ msgid &quot;General&quot;
++#~ msgstr &quot;Općenito&quot;
++
++#~ msgid &quot;Don't show user with id less than 500&quot;
++#~ msgstr &quot;Ne prikazuj korisnika sa brojem ispod 500&quot;
++
++#~ msgid &quot;User identifier&quot;
++#~ msgstr &quot;Korisnička oznaka&quot;
++
++#~ msgid &quot;Default Group&quot;
++#~ msgstr &quot;Uobičajena grupa&quot;
++
++#~ msgid &quot;Groups list&quot;
++#~ msgstr &quot;Lista grupa&quot;
++
++#~ msgid &quot;Users View&quot;
++#~ msgstr &quot;Korisnički pregled&quot;
++
++#~ msgid &quot;Group identifier&quot;
++#~ msgstr &quot;Oznaku grupe&quot;
++
++#~ msgid &quot;Groups View&quot;
++#~ msgstr &quot;Grupni pregled&quot;
++
++#~ msgid &quot;/bin/bash&quot;
++#~ msgstr &quot;/bin/bash&quot;
++
++#~ msgid &quot;uid:&quot;
++#~ msgstr &quot;uid:&quot;
++
++#~ msgid &quot;Comment:&quot;
++#~ msgstr &quot;Komentar:&quot;
++
++#~ msgid &quot;Shell:&quot;
++#~ msgstr &quot;Shell:&quot;
++
++#~ msgid &quot;Home dir:&quot;
++#~ msgstr &quot;Kućni dir:&quot;
++
++#~ msgid &quot;passwd:&quot;
++#~ msgstr &quot;šifra:&quot;
++
++#~ msgid &quot;Retype passwd:&quot;
++#~ msgstr &quot;Ukucaj ponovo šifru:&quot;
++
++#~ msgid &quot;Identity&quot;
++#~ msgstr &quot;Identitet&quot;
++
++#~ msgid &quot;Available groups&quot;
++#~ msgstr &quot;Dostupne grupe&quot;
++
++#~ msgid &quot;Extended&quot;
++#~ msgstr &quot;Prošireno&quot;
++
++#~ msgid &quot;About UserDrake&quot;
++#~ msgstr &quot;O UserDrake&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;Userdrake is an application to add and\n&quot;
++#~ &quot;delete users on the Mageia\n&quot;
++#~ &quot;distribution.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;Userdrake now support ldap directory\n&quot;
++#~ &quot;support conformed to rfc2307bis.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;This application is under the GPL\n&quot;
++#~ &quot;license and is delived without\n&quot;
++#~ &quot;any warranty.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;You can get support at : \n&quot;
++#~ &quot;http://www.mandrakeexpert.com/&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Userdrake je aplikacija za dodavanje i\n&quot;
++#~ &quot;brisanje korisnika u Mageia\n&quot;
++#~ &quot;distribuciji.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;Userdrake sada ima podršku za ldap directory\n&quot;
++#~ &quot;support conformed to rfc2307bis.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;Ova aplikacija je pod GPL\n&quot;
++#~ &quot;licencom i distribuirana je bez\n&quot;
++#~ &quot;ikakve garancije.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;Podršku možete pronaći na \n&quot;
++#~ &quot;http://www.mandrakeexpert.com/&quot;
++
++#~ msgid &quot;Name:&quot;
++#~ msgstr &quot;Ime:&quot;
++
++#~ msgid &quot;gid:&quot;
++#~ msgstr &quot;gid:&quot;
++
++#~ msgid &quot;In group&quot;
++#~ msgstr &quot;U grupi&quot;
++
++#~ msgid &quot;Not in group&quot;
++#~ msgstr &quot;Nije u grupi&quot;
++
++#~ msgid &quot;Quit userdrake?&quot;
++#~ msgstr &quot;Izađi iz userdrake-a?&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;You have made changes\n&quot;
++#~ &quot;since the last save.\n&quot;
++#~ &quot;Do you really want to quit\n&quot;
++#~ &quot;userdrake?&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Napravili ste izvjesne promjene\n&quot;
++#~ &quot;od zadnjeg spremanja.\n&quot;
++#~ &quot;Zaista želite izađi iz \n&quot;
++#~ &quot;userdrake-a?&quot;
++
++#~ msgid &quot;Enter new passwd&quot;
++#~ msgstr &quot;Upišite novu šifru&quot;
++
++#~ msgid &quot;new passwd:&quot;
++#~ msgstr &quot;nova šifra:&quot;
++
++#~ msgid &quot;Change&quot;
++#~ msgstr &quot;Promijeni&quot;
++
++#~ msgid &quot;Change face&quot;
++#~ msgstr &quot;Promijeni izgled&quot;
++
++#~ msgid &quot;Set passwd&quot;
++#~ msgstr &quot;Podesi šifru&quot;
++
++#~ msgid &quot;User autologin&quot;
++#~ msgstr &quot;Korisnički autologin&quot;
++
++#~ msgid &quot;UserDrake - Error&quot;
++#~ msgstr &quot;Userdrake - Greška&quot;
++
++#~ msgid &quot;couldn't find blue color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;nisam mogao pronaći plavu boju u /usr/lib/X11/rgb.txt datoteci&quot;
++
++#~ msgid &quot;Select the image to use&quot;
++#~ msgstr &quot;Izaberite sliku za korištenje&quot;
++
++#~ msgid &quot;Custom...&quot;
++#~ msgstr &quot;Proizvoljno...&quot;
++
++#~ msgid &quot;couldn't find grey color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;nisam mogao pronaći sivu boju u /usr/lib/X11/rgb.txt datoteci&quot;
++
++#~ msgid &quot;couldn't find black color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;nisam mogao pronaći crnu boju u/usr/lib/X11/rgb.txt datoteci&quot;
++
++#~ msgid &quot;login empty&quot;
++#~ msgstr &quot;korisničko ime nije upisano&quot;
++
++#~ msgid &quot;This login already exists on the system&quot;
++#~ msgstr &quot;Ovo korisničko ime već postoji&quot;
++
++#~ msgid &quot;The login is similar to a name's group&quot;
++#~ msgstr &quot;Korisničko ime je slično imenu grupe&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;User id already in use&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;Korisnički broj je već u upotrebi&quot;
++
++#~ msgid &quot;User id already in use&quot;
++#~ msgstr &quot;Korisnički broj je već u upotrebi&quot;
++
++#~ msgid &quot;name empty&quot;
++#~ msgstr &quot;niste popunili polje sa imenom&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;Group id already in use&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;Broj grupe je već u upotrebi&quot;
++
++#~ msgid &quot;Group id already in use&quot;
++#~ msgstr &quot;Broj grupe je već u upotrebi&quot;
++
++#~ msgid &quot;Couldn't find pixmap file: %s&quot;
++#~ msgstr &quot;Nisam mogao pronaći pixmap datoteku: %s&quot;
++
++#~ msgid &quot;%s: the file %s is busy (%s present)\n&quot;
++#~ msgstr &quot;%s: datoteka %s je zauzeta (%s prisutan)\n&quot;
++
++#~ msgid &quot;%s: can't link %s: %s\n&quot;
++#~ msgstr &quot;%s: ne mogu povezati %s: %s\n&quot;
++
++#~ msgid &quot;%s: can't unlock %s: %s (your changes are still in %s)\n&quot;
++#~ msgstr &quot;%s: ne mogu otključati %s: %s (vaše promjene su još uvijek %s)\n&quot;
++
++#~ msgid &quot;Error in stat on tmp files when i try to unlock lib\n&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Greška na stat u tmp datotekama prilikom pokušaja otključavanja lib-a\n&quot;
++
++#~ msgid &quot;%s: no changes made\n&quot;
++#~ msgstr &quot;%s: promjene nisu napravljene\n&quot;
++
++#~ msgid &quot;Select LDAP Directory&quot;
++#~ msgstr &quot;Izaberi LDAP direktorij&quot;
++
++#~ msgid &quot;Server address:&quot;
++#~ msgstr &quot;Adresa servera:&quot;
++
++#~ msgid &quot;Search base:&quot;
++#~ msgstr &quot;Baza pretrage:&quot;
++
++#~ msgid &quot;Bind DN:&quot;
++#~ msgstr &quot;Bind DN:&quot;
++
++#~ msgid &quot;Connection Type :&quot;
++#~ msgstr &quot;Vrsta konekcije:&quot;
++
++#~ msgid &quot;ssl&quot;
++#~ msgstr &quot;ssl&quot;
++
++#~ msgid &quot;Validate&quot;
++#~ msgstr &quot;Validate&quot;
++
++#~ msgid &quot;Test&quot;
++#~ msgstr &quot;Test&quot;
++
++#~ msgid &quot;cannot change ldap version to 3: %s&quot;
++#~ msgstr &quot;ne mogu promijeniti ldap verziju na 3: %s&quot;
++
++#~ msgid &quot;cannot connect to the ldap server\n&quot;
++#~ msgstr &quot;ne mogu se spojiti na ldap server\n&quot;
++
++#~ msgid &quot;cannot bind to the ldap server, %d\n&quot;
++#~ msgstr &quot;ne mogu bind-ati na ldap server, %d\n&quot;
++
++#~ msgid &quot;Cannot bind to ldap server&quot;
++#~ msgstr &quot;Ne mogu bind-ati na ldap server&quot;
++
++#~ msgid &quot;cannot save because the cannot connect to the ldap server&quot;
++#~ msgstr &quot;ne mogu spasiti jer se ne mogu spojiti na ldap server&quot;
++
++#~ msgid &quot;cannot relock lib&quot;
++#~ msgstr &quot;ne mogu ponovo zaključati lib&quot;
++
++#~ msgid &quot;The passwords string aren't the same!&quot;
++#~ msgstr &quot;Šifre nisu jednake!&quot;
++
++#~ msgid &quot;cannot launch UserDrake&quot;
++#~ msgstr &quot;ne mogu pokrenuti UserDrake&quot;
++
++#~ msgid &quot;You must be root to use userdrake&quot;
++#~ msgstr &quot;Morate biti root kako bi koristili userdrake&quot;
+
+<a id="userdrake2tags1133pocapo">Added: userdrake2/tags/1.13.3/po/ca.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/ca.po (rev 0)
++++ userdrake2/tags/1.13.3/po/ca.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,764 @@
++# translation of userdrake-ca.po to
++# translation of ca.po to Catalan
++# translation of userdrake.po to Catalan
++# Copyright (C) 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
++# Celso Gonzalez Garcia &lt;celso@oficinalinux.org&gt;, 2000.
++# Albert Astals Cid &lt;astals11@terra.es&gt;, 2003, 2004, 2005.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-ca\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2005-10-02 11:44GMT\n&quot;
++&quot;Last-Translator: \n&quot;
++&quot;Language-Team: &lt;ca@li.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.9.1\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=n!=1;\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Error al llegir `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Error al crear `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Error al eliminar `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Error al crear cua de correu.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Error al crear cua de correu.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Error al crear cua de correu.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;error desconegut&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Error al crear cua de correu.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Error al esborrar cua de correu.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;S'està carregant els usuaris i els grups... Si us plau, espera&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Eina de gestió d'usuaris de Mageia&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/A_ccions&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/E_dita&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Esborra&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Opcions&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Filtra els usuaris de sistema&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Fitxer&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Refresca&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Surt&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Afegeix usuari&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Afegeix _grup&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Ajuda&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Informeu d'un error&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Quant a...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Cerca:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Aplica el filtre&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Usuaris&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Grups&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Usuaris i grups&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Nom d'usuari&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ID d'usuari&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Grup primari&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Nom complet&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Intèrpret de comandaments per al login&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Directori personal&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Estat&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Nom del grup&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ID de grup&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Membres del grup&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Afegir usuari&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Afegeix un usuari al sistema&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Afegeix grup&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Afegeix un grup al sistema&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Edita&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Edita la fila seleccionada&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Esborrar&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Elimina la fila seleccionada&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Refresca&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Actualitza la llista&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Bloquejat&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Expirada&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Clica l'icona per canviar-ho&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Crea nou usuari&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Crea el directori personal&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Directori personal: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Crea un grup privat per a l'usuari&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Especifica el ID d'usuari manualment&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;&quot;
++&quot;Aquest usuari ja existeix dins el sistema, si us plau escull-ne un altre&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;La contrasenya no coincideix&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Aquesta contrasenya és massa simple. \n&quot;
++&quot; Les bones contrasenyes tenen més de 6 caràcters&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Uid d'usuari és &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Crear un usuari amb UID menor que 500 no està recomanat.\n&quot;
++&quot; Estàs segur de voler fer això?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;S'està posant %s al grup 'users'&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;S'està creant el nou grup: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;S'està afegint l'usuari: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Cancel·la&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Bé&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Escull grup&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Afegeix a un grup existent&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Afegeix al grup 'users'&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Ja existeix un grup amb aquest nom. Que vols fer?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Crea un nou grup&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Especifica el ID de grup manualment&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;El grup ja existeix, si us plau escull un altre nom de grup&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; El Gid del grup és &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Crear un grup amb el GID menor que 500 no està recomanat.\n&quot;
++&quot;Esteu segur que voleu fer-ho?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;S'està afegint el grup: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Esborrar fitxers o no?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;S'està esborrant l'usuari %s\n&quot;
++&quot; Fes també les següents accions\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Esborra el directori personal: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Esborra el mailbox :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;S'està eliminant l'usuari: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Estàs segur de voler eliminar el grup %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s és un grup primari per l'usuari %s\n&quot;
++&quot; Elimina l'usuari abans&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;S'està eliminant el grup: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Nom complet:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Login:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Contrasenya:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Confirma la contrasenya:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Intèrpret de comandaments per al login:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Nom del grup:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Si us plau, escull com a mínim un grup per l'usuari&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Si us plau indica l'any, més i dia\n&quot;
++&quot;per a l'expiració del compte&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Si us plau empleneu tots els camps per l'envelliment de contrasenya\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;No pots eliminar '%s' del seu grup primari&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Home:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Dades de l'usuari&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Habilita l'expiració de comptes&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;El compte expira (AAAA-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Bloquejar Compte d'Usuari&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Informació del compte&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;L'usuari va canviar la contrasenya el: &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Habilita l'expiració de contrasenyes&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Dies abans que es permeti el canvi:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Dies abans que es requereixi el canvi:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Dies d'avís abans del canvi:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Dies abans de que el compte s'inactivi:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Informació de la contrasenya&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Escull els grups dels quals serà membre aquest usuari:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Dades del grup&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Escull els usuaris que s'uniran a aquest grup :&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Usuaris del grup&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Edita Grups / Usuaris&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;S'ha produït un error&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Tanca&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Gestió d'usuaris&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Albert Astals Cid &lt;astals11@terra.es&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;El camp del nom està buit, si us plau, dona un nom&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++&quot;El nom només pot contenir minúscules de lletres llatines, números, `-' i `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;El nom és massa llarg&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Error&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;error desconegut&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Error al crear `%s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Autors: &quot;
++
++#~ msgid &quot;Yes&quot;
++#~ msgstr &quot;Sí&quot;
++
++#~ msgid &quot;No&quot;
++#~ msgstr &quot;No&quot;
+
+<a id="userdrake2tags1133pocspo">Added: userdrake2/tags/1.13.3/po/cs.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/cs.po (rev 0)
++++ userdrake2/tags/1.13.3/po/cs.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,757 @@
++# Translation of cs.po to Czech
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/cs.php3
++#
++# Czech messages for userdrake.
++# Copyright (C) 2000,2003, 2004, 2005, 2007 Free Software Foundation, Inc.
++#
++# Radek Vybíral &lt;Radek.Vybiral@vsb.cz&gt;, 2000.
++# Michal Bukovjan &lt;bukm@centrum.cz&gt;, 2002, 2003, 2004, 2005, 2007, 2009, 2010.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: cs\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2010-05-11 23:36+0200\n&quot;
++&quot;Last-Translator: Michal Bukovjan &lt;bukm@centrum.cz&gt;\n&quot;
++&quot;Language-Team: Czech &lt;kde-i18n-doc@kde.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: Lokalize 1.0\n&quot;
++&quot;Plural-Forms: nplurals=3; plural=(n%10==1 &amp;&amp; n%100!=11 ? 0 : n%10&gt;=2 &amp;&amp; &quot;
++&quot;n%10&lt;=4 &amp;&amp; (n%100&lt;10 || n%100&gt;=20) ? 1 : 2);\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Chyba při čtení „%s”: %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Chyba při vytváření „%s”: %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Chyba při odstranění „%s”: %s&quot;
++
++#: ../USER/USER.xs:490
++#, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Chyba při vytváření účtu: „%s”.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;Nelze získat číslo UID&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;Nelze získat hodnotu&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Chyba při vytváření poštovní fronty.\n&quot;
++
++#: ../USER/USER.xs:582
++#, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Uživatele nebylo možné upravit: „%s”.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Uživatele nebylo možné smazat: „%s”.\n&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;Selhalo nastavení hesla: „%s”.\n&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;neznámá chyba&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Chyba při vytváření skupiny.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;Skupinu nebylo možné upravit: „%s”.\n&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;Skupinu nebylo možné smazat: „%s”.\n&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;Uživateli chybí domovský adresář.\n&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Domovský adresář nebylo možné smazat: „%s”.\n&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Chyba při odstraňování poštovní fronty.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Načítám uživatele a skupiny… čekejte prosím&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Nástroj Mageia pro správu uživatelů&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;/_Instalovat účet pro hosty&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;/_Odinstalovat účet pro hosty&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Akce&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/Ú_pravy&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/O_dstranit&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/V_olby&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Filtrovat systémové uživatele&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Soubor&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/O_bnovit&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Konec&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/Přid_at uživatele&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Přidat s_kupinu&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/Nápo_věda&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Nahlásit chybu&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/O _aplikaci…&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Hledat:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Použít filtr&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Uživatelé&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Skupiny&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Uživatelé a skupiny&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Jméno uživatele&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ID uživatele&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Primární skupina&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Celé jméno&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Přihlašovací shell&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Domovský adresář&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Stav&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Název skupiny&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ID skupiny&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Členové skupiny&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Přidat uživatele&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Přidat uživatele do systému&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Přidat skupinu&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Přidat skupinu do systému&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Změnit&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Upravit vybraný řádek&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Odstranit&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Odstranit vybraný řádek&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Obnovit&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Obnovit seznam&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Zamčený&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Vypršel&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Klepnutím na ikonu provedete změnu&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Vytvořit nového uživatele&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Vytvořit domovský adresář&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Domovský adresář: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Vytvořit pro uživatele samostatnou skupinu&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Zadat ID uživatele ručně&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Uživatel již existuje, vyberte prosím jiné uživatelské jméno&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Hesla se neshodují&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Toto heslo je příliš jednoduché.\n&quot;
++&quot; Správná hesla by měla být delší než 6 znaků&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;ID uživatele je menší než 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Vytváření uživatelů s UID menším než 500 se nedoporučuje.\n&quot;
++&quot;Jste si jisti, že to chcete udělat?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Přidávám %s do skupiny „users”&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Vytvářím novou skupinu: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Přidávám uživatele: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Průvodce migrací&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;Chcete spustit průvodce migrací a importovat dokumenty a nastavení z Windows &quot;
++&quot;do vaší distribuce Mageia?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Zrušit&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Budiž&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Vybrat skupinu&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Přidat k existující skupině&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Přidat ke skupině „users”&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Skupina s tímto názvem již existuje. Co chcete udělat?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Vytvořit novou skupinu&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Zadat ID skupiny ručně&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Skupina již existuje, vyberte prosím jiný název skupiny&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;GID skupiny je menší než 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Vytváření skupin s GID menším než 500 se nedoporučuje.\n&quot;
++&quot;Jste si jisti, že to chcete udělat?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Přidávám skupinu: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Odstranit soubory nebo ne?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Odstraňuji uživatele %s\n&quot;
++&quot; Provádějí se také následující akce\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Smazání domovského adresáře: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Smazání poštovní schránky: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Odebírám uživatele: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Opravdu chcete odstranit skupinu %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s je primární skupina pro uživatele %s\n&quot;
++&quot;Odstraňte nejprve tohoto uživatele&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Odebírám skupinu: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Celé jméno:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Přihlášení:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Heslo:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Potvrdit heslo:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Přihlašovací shell:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Název skupiny:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Vyberte prosím pro uživatele alespoň jednu skupinu&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Zadejte prosím Rok, Měsíc a Den\n&quot;
++&quot;vypršení účtu&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Pro vypršení hesla vyplňte prosím všechna pole\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Nelze odstranit uživatele '%s' z jeho primární skupiny&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Domovský adresář:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Údaje o uživateli&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Povolit vypršení účtu&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Účet vyprší (RRRR-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Zamknout účet uživatele&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Informace o účtu&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Uživatel naposledy změnil heslo dne: &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Povolit vypršení hesla&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Počet dní před povolením změny:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Počet dní před vyžadováním změny:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Varovat dní před změnou:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Počet dní před vypršením účtu:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Informace o heslu&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Vyberte skupiny, do kterých má uživatel patřit:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Údaje o skupině&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Vyberte uživatele, kteří mají být v této skupině:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Uživatelé skupiny&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Upravit skupiny / uživatele&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Nastala chyba:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Zavřít&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Copyright ©%s by Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Správa uživatelů&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Michal Bukovjan &lt;bukm@centrum.cz&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Pole se jménem je prázdné, zadejte prosím jméno&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;Jméno musí obsahovat pouze malá písmena, číslice a znaky „-” a „_”&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Jméno je příliš dlouhé&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Chyba&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;neznámá chyba&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Chyba při vytváření `%s': %s&quot;
+
+<a id="userdrake2tags1133pocypo">Added: userdrake2/tags/1.13.3/po/cy.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/cy.po (rev 0)
++++ userdrake2/tags/1.13.3/po/cy.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,760 @@
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/cy.php3
++#
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR Free Software Foundation, Inc.
++# Rhoslyn Prys &lt;rhoslyn.prys@ntlworld.com&gt;, 2002
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake2\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2007-09-24 19:02+0100\n&quot;
++&quot;Last-Translator: Rhoslyn Prys &lt;post@meddal.com&gt;\n&quot;
++&quot;Language-Team: Cymraeg/Welsh &lt;post@meddal.com&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=utf-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Poedit-Language: Welsh\n&quot;
++&quot;X-Poedit-Country: UK\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n == 2) ? 1 : 0;\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Gwall darllen `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Gwall greu `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Gwall tynnu `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Gwall creu sbŵl e-bost.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Gwall creu sbŵl e-bost.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Gwall creu sbŵl e-bost.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;gwall anhysbys&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Gwall creu sbŵl e-bost.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Gwall dileu'r sbŵl e-bost.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Llwytho Defnyddwyr a Grwpiau... Arhoswch&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Offeryn Rheoli Defnyddwyr Mageia&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Gweithredoedd&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/+Golygu&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Dileu&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Dewisiadau&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Hidlo defnyddwyr y system&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Ffeil&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Adnewyddu&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Gadael&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Ychwanegu Defnyddiwr&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Ychwanegu_Grŵp&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Cymorth&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Adroddiad Gwall&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Ynghylch&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Chwilio:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Gosod Hidl&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Defnyddwyr&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Grwpiau&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Defnyddwyr a grwpiau&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Enw Defnyddiwr&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Enw Defnyddiwr&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Grŵp Cynradd&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Enw Llawn&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Cragen Mewngofnod&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Cyfeiriadur Cartref&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Statws&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Enw Grŵp&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Enw Grŵp&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Aelodau Grŵp&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Ychwanegu Defnyddiwr&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Ychwanegu defnyddiwr i'r system&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Ychwanegu Grŵp&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Ychwanegu grŵp i'r system&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Golygu&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Golygu'r rhes yma&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Dileu&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Dileu rhes&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Adnewyddu&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Adnewyddu'r rhestr&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Clowyd&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Dod i Ben:&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Cliciwch ar yr eicon i'w newid&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Creu Defnyddiwr Newydd&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Creu Cyfeiriadur Cartref&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Cyfeiriadur Cartref:&quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Creu grŵp preifat ar gyfer y defnyddiwr&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Enwch enw'r defnyddiwr gyda llaw&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Mae'r defnyddiwr yn bodoli eisoes, dewiswch Enw Defnyddiwr arall&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Cyfrinair Anghywir&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Mae'r cyfrinair yn rhy syml.\n&quot;
++&quot;Mae cyfrineiriau effeithiol yn fwy na 6 nod&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;UID Defnyddiwr &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Nid yw creu defnyddiwr gydag UID llai na 500 yn cael ei argymell\n&quot;
++&quot;Ydych chi'n siŵr eich bod am wneud hyn?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Rhoi '%s' yn grŵp 'defnyddwyr'&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Creu grŵp newydd: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Ychwanegu defnyddiwr: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Dewin mudo&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;Hoffech chi redeg y dewin mudo er mwyn mewnforio eich holl dogfennau a'ch &quot;
++&quot;gosodiadau Windows i'ch dosbarthiad Mageia?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Dileu&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Iawn&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Dewis grŵp&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Ychwanegu at y grŵp presennol&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Ychwanegu at y grŵp 'defnyddwyr'.&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Mae grŵp gyda'r enw hwn yn bodoli eisoes. Beth hoffech ei wneud?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Creu Grŵp Newydd&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Enwch enw'r grŵp gyda llaw&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Mae'r grŵp yn bodoli eisoes, dewiswch Enw Grŵp arall&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; Gid Grŵp &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Nid y'n cael ei argymell creu grŵp gyda llai na 500.\n&quot;
++&quot;Ydych chi'n siwr eich bod am wneud hyn?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Ychwanegu grŵp: %s&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Dileu ffeil neu beidio?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Dileu defnyddiwr %s\n&quot;
++&quot; Hefyd cyflawni'r gweithredoedd canlynol\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Dileu Cyfeiriadur Cartref: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Dileu'r Blwch E-bost: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Tynnu defnyddiwr: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Ydych chi wir eisiau dileu grŵp %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s yw'r grŵp cynradd ar gyfer defnyddiwr %s\n&quot;
++&quot; Tynnwch y defnyddiwr yn gyntaf&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Tynnu grŵp: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Enw Llawn:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Mewngofnod:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Cyfrinair:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Cadarnhau Cyfrinair:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Cragen Mewngofnod:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Enw Grŵp:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Dewiswch o leiaf un grŵp ar gyfer y defnyddiwr&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Nodwch Flwyddyn, Mis a Diwrnod\n&quot;
++&quot;i'r Cyfrif Ddod i Ben&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Llanwch yr holl feysydd yn y cyfrinair eto\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Nid oes modd tynnu defnyddiwr '%s; o'u grŵp cynradd&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Cartref:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Data Defnyddiwr&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Galluogi trefnu'r cyfrif&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Cyfrif yn dod i ben: (BBBB-MMM-DD)&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Cloi Cyfrif Defnyddiwr&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Gwybodaeth Cyfrif&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Newidiodd y defnyddiwr gyfrinair ar:&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Galluogi Terfyn Amser i Gyfrinair&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Diwrnod cyn caniatáu newid&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Diwrnod cyn bo angen newid&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Dangos rhybudd cyn newid:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Diwrnod cyn i'r cyfrif ddod i ben:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Gwybodaeth am Gyfrinair&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Dewis y grwpiau y bydd yr a defnyddiwr yn aelod ohonynt:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Data Grŵp&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Dewis defnyddwyr i ymuno â'r grŵp&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Defnyddwyr Grwpiau&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Golygu Grwpiau / Defnyddwyr&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Digwyddodd gwall:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Cau&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Hawlfraint (C) %s Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Rheoli Defnyddwyr&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Rhoslyn Prys &lt;post@meddal.com&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Mae'r maes enw'n wag cynigwch enw&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++&quot;Rhaid i'r enw gynnwys dim ond llythrennau Lladinaidd bach, rhifau `-' a `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Mae'r enw'n rhy hir&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Gwall&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;gwall anhysbys&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Gwall greu `%s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Awduron:&quot;
+
+<a id="userdrake2tags1133podapo">Added: userdrake2/tags/1.13.3/po/da.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/da.po (rev 0)
++++ userdrake2/tags/1.13.3/po/da.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,750 @@
++# translation of da.po to dansk
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/da.php3
++#
++# Nikolaj Berg Amondsen &lt;mr_nba@get2net.dk&gt;, 2000.
++# Troels Liebe Bentsen &lt;tlb@iname.com&gt;, 2000.
++# Keld Simonsen &lt;keld@dkuug.dk&gt;, 2001-2002,2003, 2004, 2007, 2009.
++# Keld Simonsen &lt;keld@rap.dk&gt;, 2003.
++# Keld Simonsen &lt;keld@keldix.com&gt;, 2010.
++# Danish Userdrake
++# Copyright (C) 2003, 2004, 2007, 2009, 2010 Free Software Foundation, Inc.
++# reviewed: 2002-02-13 keld@dkuug.dk
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: da\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2010-02-14 03:37+0200\n&quot;
++&quot;Last-Translator: Keld Simonsen &lt;keld@keldix.com&gt;\n&quot;
++&quot;Language-Team: dansk &lt;dnask@dansk-gruppen.dk&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Fejl ved læsning af '%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Fejl ved oprettelse af '%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Fejl ved fjernelse af '%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Fejl ved oprettelse af konto: '%s'.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;Kan ikke få fat på Uid-nummer&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;Kan ikke hente værdi&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Fejl ved oprettelse af mellemlager for post\n&quot;
++
++#: ../USER/USER.xs:582
++#, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Bruger kunne ikke ændres: '%s'.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Bruger kunne ikke slettes: '%s'.\n&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;Kunne ikke sætte adgangskode: '%s'.\n&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;ukeldt fejl&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Fejl ved oprettelse af gruppe: '%s'.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;Gruppe kunne ikke ændres: '%s'.\n&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;Gruppe kunne ikke slettes: '%s'.\n&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;Intet hjemmekatalog for brugeren.\n&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Hjemmekatalog kunne ikke slettes: '%s'.\n&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Fejl ved sletning af mellemlager for post\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Indlæser brugere og grupper... Vent venligst&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageia' værktøj til brugeradministration&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;/_Installér gæstekonto&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;/_Afinstallér gæstekonto&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Handlinger&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Redigér&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Slet&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Valgmuligheder&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Filtrér systembrugere&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Filer&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Genopfrisk&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Afslut&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/Tilføj _bruger&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Tilføj _gruppe&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Hjælp&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Rapportér fejl&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Om...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Søg:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Udfør filter&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Brugere&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Grupper&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Brugere og grupper&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Brugernavn&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Bruger-id&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Primær gruppe&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Fulde navn&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Login skál&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Hjemmekatalog&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Status&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Gruppenavn&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Gruppe-id&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Gruppemedlemmer&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Tilføj bruger&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Tilføj en bruger til systemet&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Tilføj gruppe&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Tilføj en gruppe til systemet&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Redigér&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Redigér valgte række&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Slet&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Slet valgte række&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Genopfrisk&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Genopfrisk listen&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Låst&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Udløbet&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Klik på ikonen for at ændre den&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Opret ny bruger&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Opret hjemmekatalog&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Hjemmekatalog;: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Opret en privat gruppe for brugeren&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Angiv bruger-id manuelt&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Brugeren findes allerede, vælg venligst et andet brugernavn&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Adgangskode passer ikke&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Denne adgangskode er for simpel. \n&quot;
++&quot; Gode adgangskoder bør være på 7 tegn eller mere&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Brugernes UID er mindre end 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Oprettelse af en bruger med en UID under 500 er ikke anbefalet.\n&quot;
++&quot;Er du sikker på at du vil gøre dette?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Tilføjer %s til 'users'-gruppen&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Opretter ny gruppe: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Tilføjer bruger: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Migrationshjælper&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;Ønsker du at køre migrationshjælperen for at importere Windows-dokumenter og &quot;
++&quot;-opsætninger til din Mageia-distribution?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Annullér&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Ok&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Vælg gruppe&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Tilføj til eksisterende gruppe&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Tilføj til 'users'-gruppen&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;En gruppe med dette navn eksisterer allerede, Hvad ønsker du at gøre?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Opret ny gruppe&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Angiv gruppe-id manuelt&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Gruppe eksisterer allerede, vælg venligst et andet gruppenavn&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;Gruppe-GID er mindre end 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Oprettelse af en gruppe med en GID under 500 er ikke anbefalet.\n&quot;
++&quot; Er du sikker på at du ønsker at gøre dette?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Tilføjer gruppe: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Skal filer slettes eller ej?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Sletter bruger %s\n&quot;
++&quot; Udfør også de følgende de følgende handlinger\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Slet hjemmekatalog: %s &quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Slet postbakke :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Fjerner bruger: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Vil du virkelig slette gruppen %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s er en primær gruppe for bruger %s\n&quot;
++&quot; Fjern brugeren først&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Fjerner gruppe: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Fulde navn:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Login:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Adgangskode:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Bekræft adgangskode:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Login skál:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Gruppenavn:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Vælg venligst mindst en gruppe for brugeren&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Angiv venligst år, måned og dag\n&quot;
++&quot; for udløb af konto &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Angiv venligst alle felter for forældelse af adgangskoder\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Du kan ikke fjerne bruger '%s' fra deres primære gruppe&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Hjem:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Brugerdata&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Aktivér udløb for konti&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Kontoen udløber (ÅÅÅÅ-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Lås brugerkonto&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Konto-information&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Bruger ændrede sidst adgangskode den: &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Aktivér udløbtid for adgangskoder&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Dage før ændring er tilladt: &quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Dage før ændring er krævet: &quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Advarsel gives antal dage før ændring: &quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Dage før konto deaktiveres: &quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Info om adgangskode&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Vælg grupperne som brugeren vil være medlem af:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Gruppedata&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Vælg de brugere som skal tilføjes i denne gruppe&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Gruppebrugere&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Redigér grupper og brugere&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Der er opstået en fejl:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Luk&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Ophavsret © %s ved Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Administration af brugere&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Keld Simonsen &lt;keld@rap.dk&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Navnefelt er tomt, opgiv venligst et navn&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;Navnet må kun indeholde små bogstaver, cifre ,'-' og '_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Navnet er for langt&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Fejl&quot;
++
+
+<a id="userdrake2tags1133podepo">Added: userdrake2/tags/1.13.3/po/de.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/de.po (rev 0)
++++ userdrake2/tags/1.13.3/po/de.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,770 @@
++# translation of userdrake-de.po to German
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/de.php3
++#
++# German translation of UserDrake (2)
++# Copyright (C) 2000, 2001, 2002, 2003 Mandriva S.A.
++#
++# Dominik Bittl &lt;umount@web.de&gt;, 2001.
++# Stefan Siegel &lt;siegel@linux-mandrake.com&gt;, 2001, 2002, 2003.
++# Sebastian Deutscher &lt;sebastian_deutscher@web.de&gt;, 2003.
++# Gerhard Ortner &lt;gerhard.ortner@aon.at&gt;, 2003.
++# Frank Köster &lt;frank@dueppel13.de&gt;, 2004.
++# Oliver Burger &lt;oliver@mandrivauser.de&gt;, 2010.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-de\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2010-04-30 18:51+0200\n&quot;
++&quot;Last-Translator: Oliver Burger &lt;oliver@mandrivauser.de&gt;\n&quot;
++&quot;Language-Team: German &lt;cooker-i18n@mandrivalinux.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++&quot;X-Generator: Lokalize 1.0\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Fehler beim Lesen von `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Fehler beim Anlegen von `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Fehler beim Löschen von `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Fehler beim Anlegen des Benutzerkontos: '%s'.\n&quot;
++
++#: ../USER/USER.xs:503
++#, fuzzy
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;Kann die UID-Nummer nicht finden&quot;
++
++#: ../USER/USER.xs:515
++#, fuzzy
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;Kann den Wert nicht einlesen&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Fehler beim Anlegen der Mail Spool.\n&quot;
++
++#: ../USER/USER.xs:582
++#, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Der Benutzer konnte nicht verändert werden: '%s'.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Der Benutzer konnte nicht gelöscht werden: '%s'.\n&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;Konnte das Passwort nicht setzen: '%s'.\n&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;unbekannter Fehler&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Anlegen der Gruppe fehlgeschlagen.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;Die Gruppe konnte nicht verändert werden: '%s'.\n&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;Die Gruppe konnte nicht gelöscht werden: '%s'.\n&quot;
++
++#: ../USER/USER.xs:863
++#, fuzzy
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;Kein Home-Verzeichnis für den Benutzer angegeben.\n&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, fuzzy, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Das Home-Verzeichnis konnte nicht gelöscht werden: '%s'.\n&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Fehler beim Entfernen der Mail Spool.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;UserDrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Lade Benutzer und Gruppen...Bitte warten&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageia Benutzerverwaltung&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;/_Installiere ein Gast-Benutzerkonto&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;/_Deinstalliere das Gast-Benutzerkonto&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Bearbeiten&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Ändern&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Löschen&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Bearbeiten&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/Systemkennzeichen _filtern&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Datei&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Aktualisieren&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Beenden&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Benutzer hinzufügen&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/_Gruppe hinzufügen&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Hilfe&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Fehler melden&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Über...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Suche:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Filter anwenden&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Benutzer&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Gruppe(n)&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Benutzer und Gruppen&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Benutzername&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Benutzer ID&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Primärgruppe&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Vollständiger Name&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Login-Shell&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Persönliches Verzeichnis&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Status&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Gruppenname&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Gruppen ID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Gruppenmitglieder&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Benutzer hinzufügen&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Benutzer zum System hinzufügen&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Gruppe hinzufügen&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Gruppe hinzufügen&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Ändern&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Ausgewählte Zeile bearbeiten&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Löschen&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Ausgewählte Zeile löschen&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Aktualisieren&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Liste aktualisieren&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Gesperrt&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Abgelaufen&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Klicken Sie auf das Symbol, um es zu ändern.&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Neuen Benutzer erstellen&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Persönliches Verzeichnis erstellen&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Persönliches Verzeichnis:&quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Private Gruppe für den Benutzer erstellen&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Benutzer ID manuell angeben&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Benutzer existiert bereits. Bitte einen anderen Namen wählen.&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Passwort fehlerhaft&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Das Passwort ist zu einfach. \n&quot;
++&quot;Gute Passwörter sind länger als 6 Zeichen.&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Benutzer ID ist unter 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Das Erstellen von Benutzern mit ID kleiner 500 ist nicht empfehlenswert.\n&quot;
++&quot;Wollen Sie das wirklich machen?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Nehme %s in die Gruppe „users“ auf.&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Erstelle neue Gruppe: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Benutzer hinzufügen: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Migrations Wizard&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;Wollen Sie den Migrations Wizard für den Import von Windows Dokumenten und &quot;
++&quot;Einstellungen starten?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Abbrechen&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;OK&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Gruppe auswählen&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Zur existierenden Gruppe hinzufügen&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;In die Gruppe „users“ aufnehmen&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Eine Gruppe dieses Namens existiert bereits. Was wollen Sie tun?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Neue Gruppe erstellen&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Gruppen ID manuell angeben&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Gruppe existiert bereits. Bitte einen anderen Namen wählen.&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;Gruppen ID ist unter 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Das Erstellen von Gruppen mit ID kleiner 500 ist nicht empfehlenswert.\n&quot;
++&quot;Wollen Sie das wirklich machen?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Füge Gruppe hinzu %s&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Dateien löschen oder nicht?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Lösche Kennzeichen %s\n&quot;
++&quot; Und führe folgende Aktionen aus\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Lösche Persönliches Verzeichnis: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Lösche Mailbox :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Lösche Kennzeichen: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Wollen Sie wirklich die folgende Gruppe löschen: %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s ist die Hauptgruppe des Kennzeichens %s\n&quot;
++&quot;Entfernen Sie zuerst den Benutzer&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Lösche Gruppe: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Vollständiger Name:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Kennzeichen:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Passwort:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Passwort bestätigen:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Login-Shell:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Gruppenname:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Bitte wählen Sie mindestens eine Gruppe für den Benutzer&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Geben Sie Jahr, Monat und Tag \n&quot;
++&quot; des Ablaufens des Kennzeichens an. &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Bitte füllen Sie alle Felder zum Ablaufen des Passworts aus.\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Sie können den Benutzer „%s“ nicht aus seiner Hauptgruppe entfernen.&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Persönliches Verzeichnis:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Benutzerdaten&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Benutzerkonto soll ablaufen&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Konto läuft ab (JJJJ-MM-TT):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Benutzerkennzeichen sperren&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Info über Konto&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Passwort zuletzt geändert am:&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Passwort soll ablaufen&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Tage vor nächster erlaubter Änderung:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Tage vor nächster erzwungener Änderung:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Anzahl Tage vor Änderung ab denen gewarnt wir:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Tage bevor Kennzeichen gesperrt wird:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Passwort-Info&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Wählen Sie die Gruppen, denen der Benutzer angehören wird:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Gruppendaten&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Wählen Sie die Benutzer für diese Gruppe:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Benutzergruppen&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Benutzer / Gruppen bearbeiten&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Ein Fehler ist aufgetreten:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Schließen&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Copyright·(C)·%s·bei·Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Benutzerverwaltung&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++&quot;Nicolas Bauer &lt;rastafarii@mandrivauser.de&gt;\n&quot;
++&quot;Sebastian Deutscher &lt;sebastian.deutscher@web.de&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Es wurde kein Name angegeben. Bitte ändern.&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++&quot;Der Name darf nur Kleinbuchstaben ohne Umlaute, Zahlen, „-“ und „_“ &quot;
++&quot;enthalten.&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Der Name ist zu lang&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Fehler&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;unbekannter Fehler&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Fehler beim Anlegen von `%s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Autoren:&quot;
+
+<a id="userdrake2tags1133poelpo">Added: userdrake2/tags/1.13.3/po/el.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/el.po (rev 0)
++++ userdrake2/tags/1.13.3/po/el.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,1117 @@
++# translation of userdrake-el.po to Greek
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/el.php3
++#
++# Greek translation of userdrake
++# Copyright (C) 2003 Free Software Foundation, Inc.
++#
++#
++# 05Jul2001, niktarin, 114 messages, initial translation.
++# Nick Niktaris &lt;niktarin@yahoo.com&gt;, 2001.
++# Νίκος Νύκταρης (Nick Niktaris) &lt;niktarin@yahoo.com&gt;, 2003.
++# Glentadakis Dimitrios &lt;dglent@gmail.com&gt;, 2008, 2009, 2010.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-el\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2010-02-06 22:23+0100\n&quot;
++&quot;Last-Translator: Glentadakis Dimitrios\n&quot;
++&quot;Language-Team: Greek &lt;translators_team@mandrivalinux.gr&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: Lokalize 1.0\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++&quot;X-Poedit-Language: Greek\n&quot;
++&quot;X-Poedit-Country: GREECE\n&quot;
++&quot;X-Poedit-SourceCharset: utf-8\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Σφάλμα στην ανάγνωση του `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Σφάλμα στην δημιουργία του `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Σφάλμα στην αφαίρεση του `%s': %s&quot;
++
++#: ../USER/USER.xs:490, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Σφάλμα κατά την δημιουργία του λογαριασμού: «%s».\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;Αδύνατη η λήψη του αριθμού Uid&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;Αδύνατη η ανάκτηση της τιμής&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Σφάλμα στην δημιουργία του ταχυδρομικού νήματος.\n&quot;
++
++#: ../USER/USER.xs:582, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Ο χρήστης δεν μπορεί να τροποποιηθεί: «%s».\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Ο χρήστης δεν μπορεί να διαγραφεί: «%s».\n&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;Ο ορισμός κωδικού πρόσβασης απέτυχε: «%s».\n&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;άγνωστο σφάλμα&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Η δημιουργία της ομάδας απέτυχε.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;Η ομάδα δεν μπορεί να τροποποιηθεί: «%s».\n&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;Η ομάδα δεν μπορεί να διαγραφεί: «%s».\n&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;Κανένας προσωπικός κατάλογος για τον χρήστη.\n&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Ο προσωπικός κατάλογος δεν μπορεί να διαγραφεί: «%s».\n&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Σφάλμα στην διαγραφή του ταχυδρομικού νήματος.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Φορτώνονται οι Χρήστες και οι Ομάδες... Παρακαλώ περιμένετε&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Εργαλείο Διαχείρισης Χρηστών Mageia&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;/_Εγκατάσταση λογαριασμού guest&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;/_Απεγκατάσταση του λογαριασμού guest&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Ενέργειες&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Επεξεργασία&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Διαγραφή&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Επιλογές&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Φιλτράρισμα χρηστών συστήματος&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Αρχείο&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Ανανέωση&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Εξοδος&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Προσθήκη Χρήστη&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Προσθήκη _Ομάδας&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Βοήθεια&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Αναφορά Σφάλματος&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Περί...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Αναζήτηση:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Εφαρμογή φίλτρου&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Χρήστες&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Ομάδες&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Χρήστες και Ομάδες&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Όνομα Χρήστη&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ID Χρήστη&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Πρωτεύουσα Ομάδα&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Πλήρες Όνομα&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Κέλυφος Προσπέλασης&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Αρχικός Κατάλογος&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Κατάσταση&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Όνομα Ομάδας&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ID Ομάδας&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Μέλη Ομάδας&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Προσθήκη Χρήστη&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Προσθήκη ενός χρήστη στο σύστημα&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Προσθήκη Ομάδας&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Προσθήκη μιας ομάδας στο σύστημα&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Επεξεργασία&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Επεξεργασία επιλεγμένης γραμμής&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Διαγραφή&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Διαγραφή επιλεγμένης σειράς&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Ανανέωση&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Ανανέωση της λίστας&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Κλειδωμένος&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Έληξε&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Κάντε κλικ πάνω στο εικονίδιο για να το αλλάξετε&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Δημιουργία Νέου Χρήστη&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Δημιουργία Αρχικού Καταλόγου Χρήστη&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Αρχικός Κατάλογος: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Δημιουργία μιας προσωπικής ομάδας για τον χρήστη&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Χειροκίνητος ορισμός ID χρήστη&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Ο χρήστης υπάρχει ήδη, παρακαλώ επιλέξτε ένα άλλο Όνομα Χρήστη&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Ο κωδικός δεν συμπίπτει&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Αυτός ο κωδικός πρόσβασης είναι πολύ απλός. \n&quot;
++&quot; Ένας καλός κωδικός πρέπει να έχει &gt; 6 χαρακτήρες&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Το Uid χρήστη είναι &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Η δημιουργία χρήστη με UID μικρότερη από 500 δεν συνιστάται.\n&quot;
++&quot;Είστε βέβαιοι ότι θέλετε να συνεχίσετε;\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Τοποθέτηση %s στην ομάδας 'χρηστών'&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Δημιουργία νέας ομάδας: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Προσθήκη χρήστη: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Οδηγός εισαγωγής&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;Θέλετε να εκκινήσετε τον οδηγό εισαγωγής των εγγράφων και των ρυθμίσεων από &quot;
++&quot;τα Windows, προς την διανομή σας Mageia ;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Άκυρο&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Εντάξει&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Επιλέξτε Ομάδα&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Προσθήκη στην υπάρχουσα ομάδα&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Προσθήκη στην ομάδα 'χρηστών'&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Μια ομάδα με αυτό το όνομα υπάρχει ήδη. Τι θέλετε να κάνετε;&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Δημιουργία Νέας Ομάδας&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Χειροκίνητος ορισμός ID ομάδας&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Η ομάδα υπάρχει ήδη, παρακαλώ επιλέξτε ένα άλλο Όνομα Χρήστη&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;Το Gid της ομάδας είναι &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Η δημιουργία ομάδας με GID μικρότερη από 500 δεν συνιστάται.\n&quot;
++&quot;Είστε βέβαιοι ότι θέλετε να συνεχίσετε;\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Προστίθεται η ομάδα: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Σβήσιμο των αρχείων ή όχι;&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Διαγράφεται ο χρήστης %s\n&quot;
++&quot;Επίσης κάντε και τα παρακάτω\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Διαγραφή Αρχικού Καταλόγου: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Διαγραφή Γραμματοκιβωτίου :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Αφαίρεση χρήστη: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Είστε βέβαιοι για τη διαγραφή τις ομάδας %s;&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;Η %s είναι μια πρωτεύουσα ομάδα για τον χρήστη %s\n&quot;
++&quot; Αφαιρέστε πρώτα τον χρήστη&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Αφαίρεση ομάδας: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Πλήρες Όνομα:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Προσπέλαση:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Κωδικός πρόσβασης:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Επαλήθευση Κωδικού:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Κέλυφος Προσπέλασης:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Όνομα Ομάδας:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Παρακαλώ επιλέξτε τουλάχιστον μία ομάδα για τον χρήστη&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Παρακαλώ ορίστε την Ημέρα, Μήνα και \n&quot;
++&quot;Χρόνο Λήξης του Λογαριασμό &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Παρακαλώ συμπληρώστε όλα τα πεδία στη γήρανση κωδικού πρόσβασης\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Δεν μπορείτε να αφαιρέσετε τον χρήστη '%s' από την πρωτεύουσα ομάδα&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Αρχικός κατάλογος:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Δεδομένα Χρήστη&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Ενεργοποίηση λήξης λογαριασμού&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Λήξη λογαριασμού (ΧΧΧΧ-ΜΜ-ΗΗ):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Κλείδωμα του Λογαριασμού Χρήστη&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Πληροφορίες Λογαριασμού&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Ο χρήστης άλλαξε τελευταία τον κωδικό του στις : &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Ενεργοποίηση Λήξης Κωδικού Πρόσβασης&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Ημέρες πριν επιτραπεί η αλλαγή :&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Μέρες πριν από την υποχρεωτική αλλαγή :&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Ημέρες προειδοποίησης πριν από την αλλαγή :&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Μέρες πριν ο λογαριασμός γίνει ανενεργός :&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Πληροφορίες κωδικού&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Επιλέξτε τις ομάδες στις οποίες θα ανήκει αυτός ο χρήστης:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Δεδομένα Ομάδας&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Επιλέξτε τους χρήστες που θα προστεθούν σε αυτή την ομάδα :&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Ομάδα Χρηστών&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Επεξεργασία Ομάδων / Χρηστών&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Προκλήθηκε σφάλμα :&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Κλείσιμο&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Copyright (C)%s by mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Διαχείριση Χρηστών&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++&quot;Νίκος Νύκταρης &lt;niktarin@yahoo.com&gt;\n&quot;
++&quot;Glentadakis Dimitrios &lt;dglent@gmail.com&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Το πεδίο όνομα είναι κενό, παρακαλώ δώστε ·ένα όνομα&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++&quot;Το όνομα πρέπει να περιέχει μόνο μικρά λατινικά γράμματα, αριθμούς, `-' και &quot;
++&quot;`_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Το όνομα είναι πολύ μακρύ&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Σφάλμα&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;άγνωστο σφάλμα&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Σφάλμα στην δημιουργία του `%s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Δημιουργοί: &quot;
++
++#~ msgid &quot;Yes&quot;
++#~ msgstr &quot;Ναι&quot;
++
++#~ msgid &quot;No&quot;
++#~ msgstr &quot;Όχι&quot;
++
++#~ msgid &quot;Warning : Deleting User&quot;
++#~ msgstr &quot;Προσοχή : Διαγραφή Χρήστη&quot;
++
++#~ msgid &quot;Warning : Deleting Group&quot;
++#~ msgstr &quot;Προσοχή : Διαγραφή Ομάδας&quot;
++
++#~ msgid &quot;Help&quot;
++#~ msgstr &quot;Βοήθεια&quot;
++
++#~ msgid &quot;Reload&quot;
++#~ msgstr &quot;Ανανέωση&quot;
++
++#~ msgid &quot;Save&quot;
++#~ msgstr &quot;Αποθήκευση&quot;
++
++#~ msgid &quot;Exit&quot;
++#~ msgstr &quot;Έξοδος&quot;
++
++#~ msgid &quot;Settings&quot;
++#~ msgstr &quot;Ρυθμίσεις&quot;
++
++#~ msgid &quot;Show tools bar&quot;
++#~ msgstr &quot;Εμφάνιση μπάρας εργαλείων&quot;
++
++#~ msgid &quot;View users&quot;
++#~ msgstr &quot;Προβολή χρηστών&quot;
++
++#~ msgid &quot;Preferences&quot;
++#~ msgstr &quot;Προτιμήσεις&quot;
++
++#~ msgid &quot;Ldap Server&quot;
++#~ msgstr &quot;Διακομιστής Ldap&quot;
++
++#~ msgid &quot;Save change&quot;
++#~ msgstr &quot;Αποθήκευση αλλαγών&quot;
++
++#~ msgid &quot;Add&quot;
++#~ msgstr &quot;Προσθήκη&quot;
++
++#~ msgid &quot;Edit user(s)&quot;
++#~ msgstr &quot;Επεξεργασία χρήστη(ών)&quot;
++
++#~ msgid &quot;Remove&quot;
++#~ msgstr &quot;Αφαίρεση&quot;
++
++#~ msgid &quot;Edit group(s)&quot;
++#~ msgstr &quot;Επεξεργασία ομάδας(ων)&quot;
++
++#~ msgid &quot;User id&quot;
++#~ msgstr &quot;id χρήστη&quot;
++
++#~ msgid &quot;Group id&quot;
++#~ msgstr &quot;id ομάδας&quot;
++
++#~ msgid &quot;Comments&quot;
++#~ msgstr &quot;Σχόλια&quot;
++
++#~ msgid &quot;Shell&quot;
++#~ msgstr &quot;Κέλυφος&quot;
++
++#~ msgid &quot;name&quot;
++#~ msgstr &quot;όνομα&quot;
++
++#~ msgid &quot;gid&quot;
++#~ msgstr &quot;gid&quot;
++
++#~ msgid &quot;passwd&quot;
++#~ msgstr &quot;κωδικός&quot;
++
++#~ msgid &quot;users&quot;
++#~ msgstr &quot;χρήστες&quot;
++
++#~ msgid &quot;Parameters&quot;
++#~ msgstr &quot;Παράμετροι&quot;
++
++#~ msgid &quot;General option&quot;
++#~ msgstr &quot;Γενικές επιλογές&quot;
++
++#~ msgid &quot;Edit accounts on a LDAP directory&quot;
++#~ msgstr &quot;Επεξεργασία λογαριασμών σε κατάλογο LDAP&quot;
++
++#~ msgid &quot;Active autologin support&quot;
++#~ msgstr &quot;Ενεργή υποστήριξη αυτόματης προσπέλασης στο σύστημα&quot;
++
++#~ msgid &quot;User creation&quot;
++#~ msgstr &quot;Δημιουργία χρήστη&quot;
++
++#~ msgid &quot;Default shell:&quot;
++#~ msgstr &quot;Προεπιλεγμένο κέλυφος&quot;
++
++#~ msgid &quot;Default home dir:&quot;
++#~ msgstr &quot;Προεπιλεγμένος αρχικός κατάλογος&quot;
++
++#~ msgid &quot;Default face:&quot;
++#~ msgstr &quot;Προεπιλεγμένη όψη&quot;
++
++#~ msgid &quot;Default group:&quot;
++#~ msgstr &quot;Προεπιλεγμένη ομάδα:&quot;
++
++#~ msgid &quot;General&quot;
++#~ msgstr &quot;Γενικά&quot;
++
++#~ msgid &quot;Don't show user with id less than 500&quot;
++#~ msgstr &quot;Απόκρυψη χρηστών με ταυτότητα μικρότερη από 500&quot;
++
++#~ msgid &quot;User identifier&quot;
++#~ msgstr &quot;Αναγνωριστικό χρήστη&quot;
++
++#~ msgid &quot;Default Group&quot;
++#~ msgstr &quot;Προεπιλεγμένη ομάδα&quot;
++
++#~ msgid &quot;Groups list&quot;
++#~ msgstr &quot;Λίστα ομάδων&quot;
++
++#~ msgid &quot;Users View&quot;
++#~ msgstr &quot;Προβολή Χρηστών&quot;
++
++#~ msgid &quot;Group identifier&quot;
++#~ msgstr &quot;Αναγνωριστικό ομάδας&quot;
++
++#~ msgid &quot;Groups View&quot;
++#~ msgstr &quot;Προβολή Ομάδων&quot;
++
++#~ msgid &quot;/bin/bash&quot;
++#~ msgstr &quot;/bin/bash&quot;
++
++#~ msgid &quot;uid:&quot;
++#~ msgstr &quot;uid:&quot;
++
++#~ msgid &quot;Comment:&quot;
++#~ msgstr &quot;Σχόλιο:&quot;
++
++#~ msgid &quot;Shell:&quot;
++#~ msgstr &quot;Κέλυφος:&quot;
++
++#~ msgid &quot;Home dir:&quot;
++#~ msgstr &quot;Αρχικός φάκελος:&quot;
++
++#~ msgid &quot;passwd:&quot;
++#~ msgstr &quot;κωδικός:&quot;
++
++#~ msgid &quot;Retype passwd:&quot;
++#~ msgstr &quot;Ξανά ο κωδικός:&quot;
++
++#~ msgid &quot;Identity&quot;
++#~ msgstr &quot;Ταυτότητα&quot;
++
++#~ msgid &quot;Available groups&quot;
++#~ msgstr &quot;Διαθέσιμες ομάδες&quot;
++
++#~ msgid &quot;Extended&quot;
++#~ msgstr &quot;Εκτενές&quot;
++
++#~ msgid &quot;About UserDrake&quot;
++#~ msgstr &quot;Περί του UserDrake&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;Userdrake is an application to add and\n&quot;
++#~ &quot;delete users on the Mageia\n&quot;
++#~ &quot;distribution.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;Userdrake now support ldap directory\n&quot;
++#~ &quot;support conformed to rfc2307bis.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;This application is under the GPL\n&quot;
++#~ &quot;license and is delived without\n&quot;
++#~ &quot;any warranty.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;You can get support at : \n&quot;
++#~ &quot;http://www.mandrakeexpert.com/&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Το UserDrake είναι μια εφαρμογή για την\n&quot;
++#~ &quot;προσθήκη και αφαίρεση χρηστών στην διανομή\n&quot;
++#~ &quot;Mageia\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;Το Userdrake υποστηρίζει πλέον υποστήριξη για κατάλογο ldap \n&quot;
++#~ &quot;σύμφωνα με το rfc2307bis.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;Η εφαρμογή αυτή είναι κάτω από την άδεια\n&quot;
++#~ &quot;χρήσης GPL και διατίθεται χωρίς καμία \n&quot;
++#~ &quot;εγγύηση. \n&quot;
++#~ &quot;\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;Αναφέρετε προβλήματα στο:\n&quot;
++#~ &quot;http://www.mandrakeexpert.com/&quot;
++
++#~ msgid &quot;Name:&quot;
++#~ msgstr &quot;Όνομα:&quot;
++
++#~ msgid &quot;gid:&quot;
++#~ msgstr &quot;gid:&quot;
++
++#~ msgid &quot;In group&quot;
++#~ msgstr &quot;Στην ομάδα&quot;
++
++#~ msgid &quot;Not in group&quot;
++#~ msgstr &quot;Όχι στην ομάδα&quot;
++
++#~ msgid &quot;Quit userdrake?&quot;
++#~ msgstr &quot;Έξοδος από το userdrake;&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;You have made changes\n&quot;
++#~ &quot;since the last save.\n&quot;
++#~ &quot;Do you really want to quit\n&quot;
++#~ &quot;userdrake?&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Έχετε κάνει αλλαγές\n&quot;
++#~ &quot;από την τελευταία αποθήκευση.\n&quot;
++#~ &quot;Θέλετε πραγματικά να τερματίσετε\n&quot;
++#~ &quot;το userdrake;&quot;
++
++#~ msgid &quot;Enter new passwd&quot;
++#~ msgstr &quot;Εισάγετε τον νέο κωδικό&quot;
++
++#~ msgid &quot;new passwd:&quot;
++#~ msgstr &quot;νέος κωδικός:&quot;
++
++#~ msgid &quot;Change&quot;
++#~ msgstr &quot;Αλλαγή&quot;
++
++#~ msgid &quot;Change face&quot;
++#~ msgstr &quot;Αλλαγή όψης&quot;
++
++#~ msgid &quot;Set passwd&quot;
++#~ msgstr &quot;Βάλτε κωδικό&quot;
++
++#~ msgid &quot;User autologin&quot;
++#~ msgstr &quot;Αυτόματη προσπέλαση χρήστη με:&quot;
++
++#~ msgid &quot;UserDrake - Error&quot;
++#~ msgstr &quot;Userdrake - Σφάλμα&quot;
++
++#~ msgid &quot;couldn't find blue color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;δεν βρέθηκε το μπλε χρώμα στο αρχείο /usr/lib/X11/rgb.txt&quot;
++
++#~ msgid &quot;Select the image to use&quot;
++#~ msgstr &quot;Επιλέξτε την εικόνα προς χρήση&quot;
++
++#~ msgid &quot;Custom...&quot;
++#~ msgstr &quot;Προσαρμογή...&quot;
++
++#~ msgid &quot;couldn't find grey color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;δεν βρέθηκε το γκρι χρώμα στο αρχείο /usr/lib/X11/rgb.txt&quot;
++
++#~ msgid &quot;couldn't find black color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;δεν βρέθηκε το μαύρο χρώμα στο αρχείο /usr/lib/X11/rgb.txt&quot;
++
++#~ msgid &quot;login empty&quot;
++#~ msgstr &quot;κενή προσπέλαση&quot;
++
++#~ msgid &quot;This login already exists on the system&quot;
++#~ msgstr &quot;Αυτό το όνομα χρήστη υπάρχει ήδη στο σύστημα&quot;
++
++#~ msgid &quot;The login is similar to a name's group&quot;
++#~ msgstr &quot;Το όνομα χρήστη είναι παρόμοιο με το όνομα μιας ομάδας&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;User id already in use&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;Το id του χρήστη υπάρχει ήδη&quot;
++
++#~ msgid &quot;User id already in use&quot;
++#~ msgstr &quot;Ο χρήστης υπάρχει ήδη&quot;
++
++#~ msgid &quot;name empty&quot;
++#~ msgstr &quot;Το όνομα είναι άδειο&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;Group id already in use&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;Το id της ομάδας υπάρχεί ήδη&quot;
++
++#~ msgid &quot;Group id already in use&quot;
++#~ msgstr &quot;Η ομάδα υπάρχει ήδη&quot;
++
++#~ msgid &quot;Couldn't find pixmap file: %s&quot;
++#~ msgstr &quot;Δεν βρέθηκε το αρχείο pixmap: %s&quot;
++
++#~ msgid &quot;%s: the file %s is busy (%s present)\n&quot;
++#~ msgstr &quot;%s: το αρχείο %s είναι απασχολημένο (%s τοις εκατό)\n&quot;
++
++#~ msgid &quot;%s: can't unlock %s: %s (your changes are still in %s)\n&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;%s: δεν είναι δυνατή η απεμπλοκή του %s: %s (οι αλλαγές είναι ακόμη στο %&quot;
++#~ &quot;s)\n&quot;
++
++#~ msgid &quot;%s: no changes made\n&quot;
++#~ msgstr &quot;%s: δεν έγιναν αλλαγές\n&quot;
++
++#~ msgid &quot;Select LDAP Directory&quot;
++#~ msgstr &quot;Επιλέξτε Κατάλογο LDAP&quot;
++
++#~ msgid &quot;Server address:&quot;
++#~ msgstr &quot;Διεύθυνση Διακομιστή:&quot;
++
++#~ msgid &quot;Search base:&quot;
++#~ msgstr &quot;Βάση αναζήτησης:&quot;
++
++#~ msgid &quot;Connection Type :&quot;
++#~ msgstr &quot;Τύπος Σύνδεσης :&quot;
++
++#~ msgid &quot;ssl&quot;
++#~ msgstr &quot;ssl&quot;
++
++#~ msgid &quot;Validate&quot;
++#~ msgstr &quot;Επαλήθευση&quot;
++
++#~ msgid &quot;Test&quot;
++#~ msgstr &quot;Δοκιμή&quot;
++
++#~ msgid &quot;cannot change ldap version to 3: %s&quot;
++#~ msgstr &quot;δεν είναι δυνατή η αλλάγη του ldap στην έκδοση 3 : %s&quot;
++
++#~ msgid &quot;cannot connect to the ldap server\n&quot;
++#~ msgstr &quot;δεν είναι δυνατή η σύνδεση με τον διακομιστή ldap\n&quot;
++
++#~ msgid &quot;Cannot bind to ldap server&quot;
++#~ msgstr &quot;Αδύνατη η σύνδεση τον διακομιστή ldap&quot;
++
++#~ msgid &quot;cannot save because the cannot connect to the ldap server&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;αδύνατη η αποθήκευση λόγο αποτυχίας σύνδεσης με τον διακομιστής ldap&quot;
++
++#~ msgid &quot;The passwords string aren't the same!&quot;
++#~ msgstr &quot;Οι εισαγωγές τον κωδικών δεν είναι ίδιες!&quot;
++
++#~ msgid &quot;cannot launch UserDrake&quot;
++#~ msgstr &quot;Δεν μπορεί να εκτελεστεί το UserDrake&quot;
++
++#~ msgid &quot;You must be root to use userdrake&quot;
++#~ msgstr &quot;Πρέπει να είστε υπερχρήστης(root) για να εκτελέσετε το userdrake&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;Cannot lock user lib,\n&quot;
++#~ &quot;file /etc/ptmp or /etc/gtmp exist&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Δεν μπορεί να ξεκλειδωθεί η lib του χρήστη,\n&quot;
++#~ &quot;το αρχείο /etc/ptmp ή /etc/gtmp υπάρχει&quot;
+
+<a id="userdrake2tags1133poeopo">Added: userdrake2/tags/1.13.3/po/eo.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/eo.po (rev 0)
++++ userdrake2/tags/1.13.3/po/eo.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,756 @@
++# translation of eo.po to Esperanto
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/eo.php3
++#
++# USERDRAKE MESAĜOJ.
++# Copyright (C) 2000 Mandriva, Inc.
++#
++# D. Dale Gulledge &lt;dsplat@rochester.rr.com&gt;, 2000.
++# Vilhelmo Lutermano &lt;vlutermano@free.fr&gt;, 2003, 2008.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: eo\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2008-01-11 19:18+0100\n&quot;
++&quot;Last-Translator: Vilhelmo Lutermano &lt;vlutermano@free.fr&gt;\n&quot;
++&quot;Language-Team: Esperanto &lt;eo@li.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Eraro dum legado `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Eraro dum kreado `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Eraro dum forigado `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Error kreante retpoŝtan fon-eneligonl.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Error kreante retpoŝtan fon-eneligonl.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Error kreante retpoŝtan fon-eneligonl.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;nekonata eraro&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Error kreante retpoŝtan fon-eneligonl.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Eraro forigante retpoŝtan fon-eneligon.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Ŝargante Uzulojn kaj Grupojn... Bonvole atendi&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mastrumilo por Mageia Uzuloj&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Agoj&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Redaktu&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Forigu&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Opcioj&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Filtrilo uzuloj&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Dosiero&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Rekalkulu&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Finu&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Aldonu uzulon&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Aldonu _grupon&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Helpo&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Raportu cimon&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Pri...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Serĉu:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Apliku filtrilon&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Uzuloj&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Grupoj&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Uzuloj kaj grupoj&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Uzul-nomo&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Uzula ID&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Primara grupo&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Plena nomo&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Salutnoma kampo&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Hejma dosierujo&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Statuso&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Grupa nomo&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Grupa ID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Grupanoj&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Aldonu uzulon&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Aldonu uzulon al la sistemo&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Aldonu grupon&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Aldonu grupon al la sistemo&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Redaktu&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Redaktu selektitan linion&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Forigu&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Forigu selektitan linion&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Rekalkulu&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Rekalkulu la liston&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Ŝlosita&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Eksvalida&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Alklaku la piktogramon por ŝanĝi ĝin&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Kreu novan uzulon&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Kreu hejman dosierujon&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Hejma dosierujo&quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Kreu privatan grupon por la uzulo&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Mane difinu uzul-ID&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Ĉi tiu nomo jam ekzistas, bonvolu elekti alian uzulnomon&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Pasvorta konfuzo&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Tiu ĉi pasvorto estas tro simpla. \n&quot;
++&quot; Bonaj pasvortoj havu &gt; 6 signojn&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Uzula Uid estas &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Krei uzulon kun UID malpli ol 500 ne estas rekomendinda.\n&quot;
++&quot; Ĉu vi certas ke vi volas tion?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Aldonante %s al la grupo 'uzuloj'&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Kreante novan grupon: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Mi aldonas uzulon: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Migrad-helpilo&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;Ĉu vi deziras funkciigi la migrado-helpilon por importi Vindozajn &quot;
++&quot;dokumentojn kaj agordojn en vian Mandriva Linukso-eldonon?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Nuligu&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;JES&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Elektu grupon&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Aldonu al la ekzistanta grupo&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Aldonu al la grupo 'uzuloj' ('users')&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Grupo kun tiu nomo jam ekzistas. Kion vi ŝatus fari?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Kreu novan grupon&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Difinu grupan ID mane&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Grupo jam ekzistas, bonvolu elekti alian grupnomon&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;Gid de la grupo estas &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Krei grupon kun GID malpli ol 500 ne estas rekomendinda.\n&quot;
++&quot; Ĉu vi certas ke vi volas tion?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Mi aldonas grupon: %s&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Ĉu forigi la dosierojn aŭ ne?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Mi forigas la uzulon %s\n&quot;
++&quot; Faru ankaŭ la jenon\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Forigu hejman dosierujon: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Forigu la poŝtkeston: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Mi forigas uzulon: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Ĉu vi vere volas forigi la grupon %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s estas primara grupo por uzulo %s\n&quot;
++&quot; Unue forigu la uzulon&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Mi forigas grupon: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Plena nomo:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Salutnomo:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Pasvorto:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Konfirmu pasvorton:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Salutnoma kampo:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Grupa nomo:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Bonvolu selekti almenaŭ unu grupon por la uzulo&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Bonvolu difinu Jaron, Monaton kaj Tagon \n&quot;
++&quot; por kont-eksvalidiĝo &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Bonvolu difini la tutan kampon por pasvort-aĝiĝo\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Vi ne povas forigi la uzulon '%s' de ties primara grupo&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Hejmo:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Uzul-datumoj&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Enŝaltu kont-eksvalidiĝon&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Konto eksvalidiĝos (JJJJ-MM-TT):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Ŝlosu la uzul-konton&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Kont-informo&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Uzulo laste ŝanĝis pasvorton al: &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Enŝaltu pasvort-eksvalidiĝon&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Tagoj antaŭ ol ŝanĝo estas permesita:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Tagoj postulataj antaŭ ŝanĝo:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Tagoj da avertado antaŭ ŝanĝo:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Tagoj antaŭ malaktivigo de la konto:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Pasvort-informo&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Selektu la grupojn kies ano estu la uzulo:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Grupo-datumoj&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Selektu la uzulojn aniĝendajn al tiu grupo:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Grupo Uzuloj&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Redakti Grupojn/Uzulojn&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Eraro okazis&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Fermu&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Kopirajto (C) %s ĉe Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Uzul-mastrumado&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Vilhelmo Lutermano &lt;vlutermano@free.fr&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Nomo-kampo malplenas, bonvolu enmeti nomon&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;La nomo devas havi nur minusklajn literojn, ciferojn,`-' kaj `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Nomo tro longas&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Eraro&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;nekonata eraro&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Eraro dum kreado `%s': %s&quot;
+
+<a id="userdrake2tags1133poespo">Added: userdrake2/tags/1.13.3/po/es.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/es.po (rev 0)
++++ userdrake2/tags/1.13.3/po/es.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,784 @@
++# translation of es.po to Español
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/es.php3
++#
++# Spanish PO file for USERDRAKE.
++# Copyright (C) 2000,2003, 2004, 2007 Free Software Foundation, Inc.
++#
++# Celso Gonzalez Garcia &lt;CGG@sgb.es&gt;, 2000.
++# Juan Manuel García Molina &lt;juanma_gm@wanadoo.es&gt;, 2000-2002.
++# Fabian Mandelbaum &lt;fmandelbaum@hotmail.com&gt;, 2002,2003,2004.
++# Fabián Mandelbaum &lt;fmandelbaum@gmail.com&gt;, 2007.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: es\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2010-03-15 14:30-0300\n&quot;
++&quot;Last-Translator: Diego Bello &lt;dbello@gmail.com&gt;\n&quot;
++&quot;Language-Team: Español &lt;es@li.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Error al leer `%s': %s&quot;
++
++#: ../USER/USER.xs:93
++#: ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Error al crear `%s': %s&quot;
++
++#: ../USER/USER.xs:205
++#: ../USER/USER.xs:234
++#: ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Error al quitar `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Error en la creación de cuenta: '%s'.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;No se puede obtener el número Uid&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;No se puede recuperar el valor&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Error al crear cola de correo.\n&quot;
++
++#: ../USER/USER.xs:582
++#, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;No se pudo modificar el usuario: '%s'.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;El usuario no pudo ser eliminado: '%s'.\n&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;Error al establecer contraseña: '%s'.\n&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;error desconocido&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Error en la creación de grupo.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;No se pudo modificar el grupo: '%s'.\n&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;No se pudo eliminar el grupo: '%s'.\n&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;No existe directorio home para el usuario.\n&quot;
++
++#: ../USER/USER.xs:869
++#: ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;No se pudo eliminar el directorio home: '%s'.\n&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Error al eliminar cola de correo.\n&quot;
++
++#: ../userdrake:59
++#: ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Cargando usuarios y grupos... Por favor, espere&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Herramienta de administración de usuarios de Mageia&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;/_Instalar cuenta de invitado&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;/_Desinstalar cuenta de invitado&quot;
++
++#: ../userdrake:101
++#: ../userdrake:102
++#: ../userdrake:103
++#: ../userdrake:114
++#: ../userdrake:115
++#: ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Acciones&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Editar&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Borrar&quot;
++
++#: ../userdrake:104
++#: ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Opciones&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Filtrar usuarios del sistema&quot;
++
++#: ../userdrake:109
++#: ../userdrake:110
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Fichero&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Refrescar&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Salir&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;S&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Añadir usuario&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Añadir _Grupo&quot;
++
++#: ../userdrake:125
++#: ../userdrake:126
++#: ../userdrake:127
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/a_Yuda&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Reportar bug&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Acerca de...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Buscar:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Aplicar filtro&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Usuarios&quot;
++
++#: ../userdrake:162
++#: ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Grupos&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Usuarios y grupos&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Nombre de usuario&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ID de usuario&quot;
++
++#: ../userdrake:186
++#: ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Grupo primario&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Nombre completo&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Shell de login&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Directorio personal&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Estado&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Nombre del grupo&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ID de grupo&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Miembros del grupo&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Añadir usuario&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Añadir un usuario al sistema&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Añadir grupo&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Añadir un grupo al sistema&quot;
++
++#: ../userdrake:198
++#: ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Editar&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Editar fila seleccionada&quot;
++
++#: ../userdrake:199
++#: ../userdrake:674
++#: ../userdrake:707
++#: ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Borrar&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Borrar fila seleccionada&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Refrescar&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Refrescar la lista&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Trabado&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Expirado&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Haga clic sobre el icono para cambiarlo&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Crear usuario nuevo&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Crear directorio personal&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Directorio personal: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Crear un grupo privado para el usuario&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Especificar ID de usuario manualmente&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;El usuario ya existe en el sistema, por favor use otro nombre de usuario&quot;
++
++#: ../userdrake:419
++#: ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;No coincide la contraseña&quot;
++
++#: ../userdrake:422
++#: ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Esta contraseña es demasiado simple. \n&quot;
++&quot; Las contraseñas buenas deberían tener más de 6 caracteres&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;El UID del usuario es menor a 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;No se recomienda crear un usuario con UID menor a 500.\n&quot;
++&quot;¿Está seguro que desea hacer esto?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Poniendo %s en el grupo 'users'&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Creando grupo nuevo: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Añadiendo usuario: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Asistente de migración&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;¿Desea ejecutar el asistente de migración para importar los ajustes y &quot;
++&quot;documentos de Windows® en su sistema Mageia?&quot;
++
++#: ../userdrake:484
++#: ../userdrake:528
++#: ../userdrake:587
++#: ../userdrake:674
++#: ../userdrake:707
++#: ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Cancelar&quot;
++
++#: ../userdrake:484
++#: ../userdrake:521
++#: ../userdrake:587
++#: ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Aceptar&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Elegir un grupo&quot;
++
++#: ../userdrake:512
++#: ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Añadir al grupo existente&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Añadir al grupo 'users'&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Ya existe un grupo con este nombre. ¿Qué desearía hacer?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Crear nuevo grupo&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Especificar ID de grupo manualmente&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;El grupo ya existe, por favor use otro nombre de grupo&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;El GID del grupo es menor a 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;No se recomienda crear un grupo con GID menor a 500.\n&quot;
++&quot;¿Está seguro que desea hacer esto?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Añadiendo grupo: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;¿Borrar o no archivos?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Borrando usuario %s\n&quot;
++&quot; Realizando también lo siguiente\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Borrar directorio personal: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Borrar casilla de correo: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Quitando usuario: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;¿Realmente desea borrar el grupo %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s es un grupo primario para el usuario %s\n&quot;
++&quot;Quite primero al usuario&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Quitando grupo: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Nombre completo:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Login:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Contraseña:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Confirmar contraseña:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Shell de login:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Nombre del grupo:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Por favor, seleccione al menos un grupo para el usuario&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Por favor, especifique el año, mes y día\n&quot;
++&quot;para la expiración de la cuenta&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Por favor, complete todos los campos para la caducación de la contraseña\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;No puede quitar al usuario '%s' de su grupo primario&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Directorio personal:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Datos del usuario&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Habilitar expiración de cuenta&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;La cuenta expira (AAAA-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Trabar cuenta de usuario&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Información de la cuenta&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;El usuario cambió la contraseña por última vez el : &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Habilitar expiración de contraseña&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Días antes que se permita el cambio :&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Días antes que se requiera el cambio :&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Días de advertencia antes del cambio :&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Días antes que la cuenta se inactive :&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Información de contraseña&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Seleccione los grupos a los cuales pertenecerá el usuario:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Datos del grupo&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Seleccione los usuarios que formarán parte de este grupo:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Grupos de usuarios&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Editar Grupos/Usuarios&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Ocurrió un error:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Cerrar&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Copyright (C) %s por Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Administración de usuarios&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++&quot;José Manuel Pérez &lt;jmprodu@hotmail.com&gt;\n&quot;
++&quot;Pablo Saratxaga &lt;pablo@mandriva.com&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;El campo de nombre está vacío, por favor proporcione un nombre&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;El nombre debe contener sólo letras minúsculas, números, `-' y `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;El nombre es muy largo&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Error&quot;
++
+
+<a id="userdrake2tags1133poetpo">Added: userdrake2/tags/1.13.3/po/et.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/et.po (rev 0)
++++ userdrake2/tags/1.13.3/po/et.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,752 @@
++# Translation of userdrake.po to Estonian
++# Copyright (C) 2001, 2003 Free Software Foundation, Inc.
++# Riho Kurg &lt;rx@linux.ee&gt;, 2001.
++# Marek Laane &lt;bald@starman.ee&gt;, 2003-2007
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake 0.3\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2010-02-02 16:09+0300\n&quot;
++&quot;Last-Translator: Marek Laane &lt;bald@starman.ee&gt;\n&quot;
++&quot;Language-Team: Estonian &lt;et@li.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.0.2\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Viga '%s' lugemisel: %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Viga '%s' loomisel: %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Viga '%s' eemaldamisel: %s&quot;
++
++#: ../USER/USER.xs:490
++#, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Konto loomine nurjus: '%s'.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;UID numbri hankimine nurjus&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;Väärtuse hankimine nurjus&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Viga kirjade puhvri loomisel.\n&quot;
++
++#: ../USER/USER.xs:582
++#, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Kasutaja muutmine nurjus: '%s'.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Kasutaja kustutamine nurjus: '%s'.\n&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;Parooli määramine nurjus: '%s'.\n&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;tundmatu viga&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Grupi loomine nurjus.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;Grupi muutmine nurjus: '%s'.\n&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;Grupi kustutamine nurjus: '%s'.\n&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;Kasutajal puudub kodukataloog.\n&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Kodukataloogi kustutamine nurjus: '%s'.\n&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Viga kirjade puhvri kustutamisel.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Kasutajate ja gruppide laadimine... Palun oodake&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageiai kasutajate haldur&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;/Pa_igalda külalise (guest) konto&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;/_Eemalda külalise (guest) konto&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Toimingud&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Muuda&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Kustuta&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Seadistused&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Filtreeri süsteemsed kasutajad&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Fail&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/Vä_rskenda&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Välju&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/Lis_a kasutaja&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Lisa _grupp&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Abi&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Veateade&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Teave...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Otsing:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Rakenda filter&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Kasutajad&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Grupid&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Kasutajad ja grupid&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Kasutajanimi&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Kasutaja ID&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Esmane grupp&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Täisnimi&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Kasutatav shell&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Kodukataloog&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Staatus&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Grupi nimi&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Grupi ID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Grupi liikmed&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Lisa kasutaja&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Lisab süsteemi kasutaja&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Lisa grupp&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Lisab süsteemi grupi&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Muuda&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Muudab valitud rida&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Kustuta&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Kustutab valitud rea&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Värskenda&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Värskendab nimekirja&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Lukustatud&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Aegunud&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Ikooni muutmiseks klõpsake sellel&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Uue kasutaja loomine&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Kodukataloogi loomine&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Kodukataloog: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Kasutajale luuakse privaatgrupp&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Kasutaja ID määratakse käsitsi&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Selline kasutaja on juba olemas, palun valige muu nimi&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Paroolid ei lange kokku&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;See parool on liiga lihtne. \n&quot;
++&quot; Korralik parool peaks koosnema vähemalt 6 sümbolist&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Kasutaja UID on väiksem kui 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Kasutaja loomine, kelle UID on alla 500, ei ole soovitatav.\n&quot;
++&quot; Kas soovite seda kindlasti teha?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;%s lisatakse gruppi 'users'&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Uue grupi loomine: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Kasutaja lisamine: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Kolimisnõustaja&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;Kas soovite käivitada kolimisnõustaja, et importida Windowsi dokumendid ja &quot;
++&quot;seadistused ka oma Mageiai süsteemi?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Loobu&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Olgu&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Vali grupp&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Lisa olemasolevasse gruppi&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Lisa gruppi 'users'&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Sellise nimega grupp on juba olemas. Mida soovite ette võtta?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Uue grupi loomine&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Grupi ID määratakse käsitsi&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Selline grupp on juba olemas, palun valige muu nimi&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; Grupi GID on väiksem kui 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Grupi loomine, mille GID on alla 500, ei ole soovitatav.\n&quot;
++&quot; Kas soovite seda kindlasti teha?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Grupi lisamine: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Kas kustutada failid?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Kasutaja %s kustutamine\n&quot;
++&quot; Ühtlasi võetakse ette järgmised tegevused\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Kustutatakse kodukataloog: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Kustutatakse postkast: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Kasutaja eemaldamine: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Kas tõesti kustutada grupp %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s on kasutaja %s esmane grupp\n&quot;
++&quot; Eemaldage esmalt kasutaja&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Grupi eemaldamine: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Täisnimi:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Kasutajatunnus:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Parool:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Parool uuesti:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Kasutatav shell:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Grupi nimi:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Palun valige kasutajale vähemalt üks grupp&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Palun määrake konto aegumise \n&quot;
++&quot; aasta, kuu ja päev &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Palun täitke kõik parooli aegumise väljad\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Kasutajat '%s' ei saa eemaldada tema esmasest grupist&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Kodukataloog:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Kasutaja andmed&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Konto aegumise lubamine&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Konto aegub (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Kasutaja konto lukustamine&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Konto info&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Kasutaja muutis viimati parooli: &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Parooli aegumise lubamine&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Päevi enne muutmise lubamist:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Päevi enne muutmise nõudmist:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Päevi enne muutmise hoiatuse andmist:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Päevi enne konto tühistamist:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Parooli info&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Grupid, millesse see kasutaja kuulub:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Grupi andmed&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Kasutajad, kes sellesse gruppi kuuluvad:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Grupikasutajad&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Gruppide / kasutajate redigeerimine&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Tekkis viga:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Sulge&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Autoriõigus (C) %s: Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Kasutajate haldamine&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Marek Laane &lt;bald@starman.ee&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Nimeväli on tühi. Palun määrake nimi&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;Nimi tohib sisaldada ainult väiketähti, numbreid ning märke '-' ja '_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Nimi on liiga pikk&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Viga&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;tundmatu viga&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Viga '%s' loomisel: %s&quot;
+
+<a id="userdrake2tags1133poeupo">Added: userdrake2/tags/1.13.3/po/eu.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/eu.po (rev 0)
++++ userdrake2/tags/1.13.3/po/eu.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,755 @@
++# translation of userdrake.po to Euskara
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/eu.php3
++#
++# EUSKARA: Mageia itzulpena.
++# Copyright (C) 2001, 2003, 2004, 2008 Free Software Foundation, Inc.
++#
++# Josu Waliño &lt;josu@elhuyar.com&gt;, Elhuyar, 2002.
++# Iñigo Salvador Azurmendi &lt;xalba@euskalnet.net&gt;, 2001-2002, 2003, 2004, 2008, 2009, 2010.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2010-02-07 21:05+0100\n&quot;
++&quot;Last-Translator: Iñigo Salvador Azurmendi &lt;xalba@euskalnet.net&gt;\n&quot;
++&quot;Language-Team: Basque &lt;cooker-i18n@mandrivalinux.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: Lokalize 1.0\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Akatsa '%s' irakurtzerakoan: %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Akatsa '%s' sortzerakoan: %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Akatsa '%s' ezabatzerakoan: %s&quot;
++
++#: ../USER/USER.xs:490, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Kontuaren sorrerak huts egin du: '%s'.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;Ezin UID zenbakia eskuratu&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;Ezin balioa eskuratu&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Akatsa posta txirrita sortzerakoan.\n&quot;
++
++#: ../USER/USER.xs:582, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Ezin izan da erabiltzailea aldatu: '%s'.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Ezin izan da erabiltzailea ezabatu: '%s'.\n&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;Pasahitza ezartzeak huts egin du: '%s'.\n&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;akats ezezakuna&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Taldea sortzeak huts egin du.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;Ezin izan da taldea aldatu: '%s'.\n&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;Ezin izan da taldea ezabatu: '%s'.\n&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;Erabiltzailearentzako etxeko karpetarik ez.\n&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Ezin izan da etxeko karpeta ezabatu: '%s'.\n&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Akatsa posta txirrita ezabatzerakoan.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Erabiltzaile eta Taldeak zamatzen... mesedez itxoin&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageia Erabiltzaileen Kudeaketa Tresna&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;/_Instalatu gonbidatu kontua&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;/_Desinstalatu gonbidatu kontua&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Ekintzak&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Editatu&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Ezabatu&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Aukerak&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Iragazi sistemaren erabiltzaileak&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Fitxategia&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Berritu&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Irten&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;I&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Erabiltzailea gehitu&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/_Taldea gehitu&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Laguntza&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/Akatsa _txostendu&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Honi buruz...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Bilatu:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Iragazkia aplikatu&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Erabiltzaileak&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Taldeak&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Erabiltzaileak eta taldeak&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Erabiltzaile Izena&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Erabiltzaile ID&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Talde Primarioa&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Izen Osoa&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Erregistro Maskorra&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Atariko Direktorioa&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Egoera&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Talde Izena&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Talde ID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Taldeko Partadeak&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Erabiltzaileak Erantsi&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Sistemara erabiltzaile bat erantsi&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Taldea Erantsi&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Sistemara talde bat erantsi&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Editatu&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Editatu aukeratutako errenkada&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Ezabatu&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Ezabatu aukeratutako errenkada&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Berritu&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Zerrenda berritu&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Giltzatuta&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Balio Galduta&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Klikatu ikonoan berau aldatzeko&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Erabiltzaile berria sortu&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Sortu Atariko Direktorioa&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Atariko Direktorioa: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Erabiltzailearentzako talde pribatua sortu&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Zehaztu eskuz erabiltzaile ID&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Izen hori dagoeneko badago, aukeratu bestu erabiltzaile izen bat&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Pasahitza ez dator bat&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Pasahitza sinpleegia da.\n&quot;
++&quot;Pasahitz onak &gt; 6 karatere behar lituzke&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Erabiltzaile UID &lt; 500 da&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Ez da gomendagarria UID &lt; 500 duen erabiltzaile bat sortzea.\n&quot;
++&quot;Ziur zaude hau egin nahi duzula?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;'users' taldeari %s jartzen&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Talde berria sortzen: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Erabiltzailea eransten: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Migrazio morroia&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;Migrazio morroia exekutatu nahi duzu Windows dokumentu eta ezarpenak &quot;
++&quot;(documents and settings) zure Mageia banaketara inportatzeko?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Utzi&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Ados&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Aukeratu taldea&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Erantsi dagoen taldera&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Erantsi 'users' taldeari&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Izen hori duen taldea badago dagoeneko. Zer egin nahi zenuke?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Talde berria sortu&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Zehaztu eskuz talde ID&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Taldea dagoeneko badago, mesedez aukeratu beste talde izen bat&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;Talde GID &lt; 500 da&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Ez da gomendagarria GID &lt; 500 duen talde bat sortzea.\n&quot;
++&quot;Ziur zaude hau egin nahi duzula?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Taldea eransten: %s&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Fitxategiak ezabatu edo ez?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;%s erabiltzailea ezabatzen\n&quot;
++&quot; Burutu ondorengo ekintzak ere\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Ezabatu Atariko Direktorioa: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Ezabatu Postakutxa: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Erabiltzailea ezabatzen: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Benetan ezabatu nahi duzu %s taldea?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s, %s erabiltzailearentzako talde primarioa da\n&quot;
++&quot;Lehendabizi ezabatu erabiltzailea&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Taldea ezabatzen: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Izen Osoa:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Erregistroa:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Pasahitza:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Pasahitza berretsi:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Erregistro Maskorra:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Talde Izena:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Aukeratu talde bat gutxienez erabiltzailearentzako&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Zehaztu kontuak balioa galduko duen \n&quot;
++&quot;urtea, hilabetea eta eguna&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Mesedez, bete pasahitza galdu dadin eremu guztiak\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Ezin duzu '%s' erabiltzailea bere talde primariotik kendu&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Ataria:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Erabiltzailearen datuak&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Kontuaren balio-galtzea gaitu&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Kontuak balioa galtzen du (UUUU-HH-EE): &quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Blokeatu Erabiltzaile Kontua&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Kontuaren Info&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Erabiltzaileak pasahitza azkenekoz aldatu zuen: &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Pasahitzaren balio-galtzea gaitu&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Egunak aldaketa baimendu aurretik: &quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Egunak aldaketa eskatu aurretik: &quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Egunak ohartarazten aldaketa aurretik: &quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Egunak kontua ezgaitu aurretik: &quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Pasahitzaren Info&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Hautatu erabiltzailea partaide izango duten taldeak: &quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Talde datuak&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Aukeratu talde honetara batuko diren erabiltzaileak: &quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Talde erabiltzaileak&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Editatu Taldeak / Erabiltzaileak&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Akats bat gertatu da:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Itxi&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Copyright (C) %s Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Erabiltzaileen Kudeaketa&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Iñigo Salvador Azurmendi &lt;xalba@euskalnet.net&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Izen eremua hutsik dago, mesedez eman izen bat&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++&quot;Izenak soilik hizki latinoak txikiz, zenbakiak, `-' eta `_' izan behar ditu&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Izena luzeegia da&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Okerra&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;akats ezezakuna&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Akatsa '%s' sortzerakoan: %s&quot;
+
+<a id="userdrake2tags1133pofapo">Added: userdrake2/tags/1.13.3/po/fa.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/fa.po (rev 0)
++++ userdrake2/tags/1.13.3/po/fa.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,755 @@
++# translation of userdrake-fa.po to Persian
++# translation of userdrake.po to Persian
++# This file is distributed under the same license as the PACKAGE package.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
++# Abbas Izad &lt;abbasizad@hotmail.com&gt;, 2003, 2004.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-fa\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2004-09-26 14:46+0330\n&quot;
++&quot;Last-Translator: Abbas Izad &lt;abbasizad@hotmail.com&gt;\n&quot;
++&quot;Language-Team: Persian\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.3\n&quot;
++&quot;Plural-Forms: nplurals=1; plural=0;\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;خطا در خواندن `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;خطا در ایجاد کردن `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;خطا در برداشتن `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;خطا در ایجاد کردن چرخه‌ی پست.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;خطا در ایجاد کردن چرخه‌ی پست.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;خطا در ایجاد کردن چرخه‌ی پست.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;خطای ناشناخته&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;خطا در ایجاد کردن چرخه‌ی پست.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;خطا در حذف کردن چرخه‌ی پست.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;در حال بارگذاری کاربران و گروه‌ها... لطفاً صبر کنید&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;ابزار مدیریت اربران لینوکس ماندریبا&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_کنش‌ها&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_ویرایش&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_حذف&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_گزینه‌ها&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_فیلتر کردن کاربران سیستم&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_پرونده&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_نوسازی&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_ترک&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_افزودن کاربر&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/افزودن _گروه&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_راهنما&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_گزارش اشکال&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_درباره‌ی...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;جستجو:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;گذاردن فیلتر&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;کاربران&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;گروه‌ها&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;کاربرها و گروه‌ها&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;نام کاربر&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;شناسه‌ی کاربر&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;گروه اولیه&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;نام کامل&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;پوسته‌ی ثبت‌ورود&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;شاخه‌ی خانه&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;وضعیت&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;نام گروه&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;شناسه‌ی گروه&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;اعضای گروه&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;افزودن کاربر&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;افزودن یک کاربر به سیستم&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;افزودن گروه&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;افزودن یک گروه به سیستم&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;ویرایش&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;ویرایش ردیف انتخاب شده&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;حذف&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;حذف ردیف انتخاب شده&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;نوسازی&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;نوسازی لیست&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;قفل شده است&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;منقضی شده است&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;برای تغییر آن بر روی شمایل کلیک کنید&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;ایجاد کاربر جدید&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;ایجاد شاخه‌ی خانه&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;شاخه‌ی آغازه: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;ایجاد یک گروه خصوصی برای کاربر&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;مشخص کردن دستی شناسه‌ی کاربر&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;کاربر از قبل وجود دارد، لطفاً نام کاربری دیگری را انتخاب کنید&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;عدم تطابق گذرواژه&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;این گذرواژه خیلی ساده است. \n&quot;
++&quot;گذرواژه‌ی خوب باید بیشتر از ۶ نویسه داشته باشد&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;شناسه کاربر کوچکتر از ۵۰۰ است&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;ایجاد کردن یک کاربر با یک شناسه‌ی کوچکتر از ۵۰۰ پیشنهاد نمی‌شود. \n&quot;
++&quot;آیا مطمئن هستید که می‌خواهید این کار را انجام دهید؟\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;گذاشتن %s به گروه کاربران&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;ایجاد گروه جدید: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;افزودن کاربر: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;لغو&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;تایید&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;انتخاب کردن گروه&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;افزودن به گروه موجود&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;افزودن به گروه 'کاربران'&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;یک گروه با این نام از قبل وجود دارد. چکار دوست دارید بکنید؟&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;ایجاد گروه جدید&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;مشخص کردن دستی شناسه‌ی گروه&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;گروه از قبل وجود دارد، لطفاً نام دیگری برای گروه انتخاب کنید&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;شناسه گروه کوچکتر از ۵۰۰ است&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;ایجاد کردن یک گروه با یک شناسه‌ی کوچکتر از ۵۰۰ پیشنهاد نمی‌شود. \n&quot;
++&quot;آیا مطمئن هستید که می‌خواهید این کار را انجام دهید؟\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;افزودن گروه: %s&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;حذف پرونده‌ها یا نه؟&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;حذف کردن کاربر %s\n&quot;
++&quot; کنش‌های بدنبال آمده را نیز انجام دهید\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;حذف شاخه‌ی آغازه: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;حذف جعبه‌ی پست : /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;برداشتن کاربر: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;آیا واقعاً می‌خواهید گروه %s را حذف کنید؟&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s یک گروه مقدم برای کاربر %s می‌باشد\n&quot;
++&quot; نخست کاربر را بردارید&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;برداشتن گروه: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;نام کامل:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;ثبت‌ورود:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;گذرواژه:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;تصدیق گذرواژه:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;پوسته‌ی ثبت‌ورود:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;نام گروه:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;لطفاً حداقل یک گروه را برای کاربر انتخاب کنید&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;لطفاً سال، ماه و روز را برای انقضای \n&quot;
++&quot;حساب مشخص کنید &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;لطفاً تمام محوطه‌های در عمر گذرواژه را پُر کنید\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;شما نمی‌توانید کاربرهای '%s' را از گروه اولیه‌اشان بردارید&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;آغازه:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;اطلاعات کاربر&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;بکار انداختن انقضای حساب&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;پایان یافتن حساب (سال-ماه-روز):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;قفل کردن حساب کاربر&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;اطلاعات حساب&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;تغییر گذرواژه‌ی کاربر آخرین بار در :&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;بکار انداختن انقضای گذرواژه&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;تعداد روزها قبل از آنکه تغییر اجازه داده شود:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;تعداد روزها قبل از آنکه تغییر لازم بشود:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;روزهای هشدار قبل از تغییر: &quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;تعداد روزها قبل از آنکه حساب غیر فعال شود:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;اطلاعات گذرواژه&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;انتخاب گروهی که کاربر عضو آن خواهد شد:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;داده‌های گروه&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;انتخاب کاربران برای پیوستن به این گروه:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;کاربران گروه&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;ویرایش کاربرها / گروه‌ها&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;خطائی رخ داد&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;بستن&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;مدیریت کاربران&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;ماندریبا لینوکس&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Abbas Izad &lt;abbasizad@hotmail.com&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;محوطه‌ی نام خالی است لطفاً یک نام را عرضه کنید&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;نام باید فقط دارای حروف کوچک لاتین، اعداد، `-' و `_' باشد&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;نام خیلی طولانی است&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;خطا&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;خطای ناشناخته&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;خطا در ایجاد کردن `%s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;نگارندگان: &quot;
+
+<a id="userdrake2tags1133pofipo">Added: userdrake2/tags/1.13.3/po/fi.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/fi.po (rev 0)
++++ userdrake2/tags/1.13.3/po/fi.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,760 @@
++# userdrake-fi - Finnish Translation
++#
++# Copyright (C) 2002,2003, 2004 Free Software Foundation, Inc.
++#
++#
++# Matias Griese &lt;mahagr@utu.fi&gt;, 2001, 2002.
++# Taisto Kuikka &lt;69319@batman.jypoly.fi&gt;, 2003.
++# Thomas Backlund &lt;tmb@mandrake.org&gt;, 2002, 2003, 2004.
++# Anssi Hannula &lt;anssi@mandriva.org&gt;, 2007.
++# Thomas Backlund &lt;tmb@mandriva.org&gt;, 2009.
++# Jani Välimaa &lt;wally@mandriva.org&gt;, 2009, 2010.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2010-02-04 14:16+0200\n&quot;
++&quot;Last-Translator: Jani Välimaa &lt;wally@mandriva.org&gt;\n&quot;
++&quot;Language-Team: Finnish &lt;cooker-i18n@mandrivalinux.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: Lokalize 1.0\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Virhe luettaessa %s: %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Virhe luotaessa %s: %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Virhe poistettaessa %s: %s&quot;
++
++#: ../USER/USER.xs:490
++#, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Tilin luonti epäonnistui: %s.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;UID:ta ei voitu noutaa&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;Arvoa ei voitu noutaa&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Virhe luotaessa postilaatikkoa.\n&quot;
++
++#: ../USER/USER.xs:582
++#, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Käyttäjätunnuksen muokkaaminen epäonnistui: %s.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Käyttäjää ei voitu poistaa: %s.\n&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;Salasanan asettaminen epäonnistui: %s.\n&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;tuntematon virhe&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Ryhmän luonti epäonnistui.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;Ryhmän muokkaaminen epäonnistui: %s.\n&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;Ryhmää ei voitu poistaa: %s.\n&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;Käyttäjällä ei ole kotihakemistoa.\n&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Käyttäjän kotihakemistoa ei voitu poistaa: %s.\n&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Virhe poistettaessa postilaatikkoa.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Ladataan käyttäjät ja ryhmät... Odota hetki&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageiain käyttäjienhallintatyökalu&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;/Asenna _vierastili&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;/Poista _vierastili&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/T_oiminnot&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Muokkaa&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Poista&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Asetukset&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Piilota järjestelmäkäyttäjät&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Tiedosto&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Päivitä&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Lopeta&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;L&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/Lisää _käyttäjä&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Lisää _ryhmä&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/O_hje&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Ilmoita virheestä&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Tietoja&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Etsi:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Suodata&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Käyttäjät&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Ryhmät&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Käyttäjät ja ryhmät&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Käyttäjätunnus&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;UID&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Ensisijainen ryhmä&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Koko nimi&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Kirjautumistulkki&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Kotihakemisto&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Tila&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Nimi&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;GID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Jäsenet&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Lisää käyttäjä&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Lisää käyttäjä järjestelmään&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Lisää ryhmä&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Lisää ryhmä järjestelmään&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Muokkaa&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Muokkaa valittua riviä&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Poista&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Poista valittu rivi&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Päivitä&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Päivitä lista&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Lukittu&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Vanhentunut&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Vaihda kuvaketta napsauttamalla&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Luo uusi käyttäjä&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Luo kotihakemisto&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Kotihakemisto: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Luo käyttäjälle yksityinen ryhmä&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Määritä UID käsin&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Käyttäjätunnus on jo olemassa, valitse toinen käyttäjätunnus&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Salasana ei täsmää&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Salasana on liian yksinkertainen.\n&quot;
++&quot; Hyvä salasana on vähintään kuusi merkkiä pitkä.&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Käyttäjän UID on pienempi kuin 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Ei ole suositeltavaa luoda käyttäjää, jonka UID on pienempi kuin 500.\n&quot;
++&quot; Haluatko varmasti luoda käyttäjän?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Lisätään käyttäjä %s ryhmään \&quot;users\&quot;.&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Luodaan uusi ryhmä: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Lisätään käyttäjä: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Tietojen tuonti Windowsista&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;Haluatko tuoda Windowsin dokumentit ja asetukset Mageiaiin?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Peruuta&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Ok&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Valitse ryhmä&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Lisää olemassa olevaan ryhmään&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Lisää ryhmään \&quot;users\&quot;&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Tällä nimellä oleva ryhmä on jo olemassa. Mitä haluat tehdä?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Luo uusi ryhmä&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Määritä GID käsin&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Ryhmä on jo olemassa, valitse toinen nimi ryhmälle&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; Ryhmän GID on pienempi kuin 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Ei ole suositeltavaa luoda ryhmää, jonka GID on pienempi kuin 500.\n&quot;
++&quot; Haluatko varmasti luoda ryhmän?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Lisätään ryhmä: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Poistetaanko tiedostot?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Poistetaan käyttäjä %s.\n&quot;
++&quot; Suorita myös seuraavat tehtävät:\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Poista kotihakemisto: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Poista sähköpostilaatikko: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Poistetaan käyttäjä: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Haluatko varmasti poistaa ryhmän %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s on käyttäjän %s ensisijainen ryhmä\n&quot;
++&quot; Poista ensin käyttäjä&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Poistetaan ryhmä: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Koko nimi:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Käyttäjätunnus:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Salasana:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Varmista salasana:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Kirjautumistulkki:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Ryhmän nimi:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Valitse käyttäjälle vähintään yksi ryhmä&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Määrittele vuosi, kuukausi ja päivä\n&quot;
++&quot; jolloin käyttäjätili vanhenee &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Täytä kaikki kentät salasanan vanhenemiselle\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Käyttäjää %s ei voida poistaa hänen ensisijaisesta ryhmästään&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Kotihakemisto:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Käyttäjän tiedot&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Ota käyttöön käyttäjätilin vanheneminen&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Käyttäjätili vanhenee (VVVV-KK-PP):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Lukitse käyttäjätili&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Käyttäjätili&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Käyttäjä vaihtoi salasanaa viimeksi:&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Ota käyttöön salasanan vanheneminen&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Salasanan vaihtaminen sallitaan X päivän jälkeen:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Salasanan vaihtaminen vaaditaan X päivän jälkeen:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Varoita X päivää ennen vaihtamista:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Käyttäjätunnus merkitään käyttämättömäksi X päivän jälkeen:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Salasana&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Valitse ryhmät, joihin käyttäjä kuuluu:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Ryhmän tiedot&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Valitse ryhmään kuuluvat käyttäjät:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Ryhmän käyttäjät&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Muokkaa ryhmiä / käyttäjiä&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Virhe:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Sulje&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Copyright (C) %s, Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Käyttäjienhallinta&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++&quot;Thomas Backlund &lt;tmb@mandrake.org&gt;\n&quot;
++&quot;Jani Välimaa &lt;wally@mandriva.org&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Käyttäjätunnus on pakollinen tieto&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++&quot;Käyttäjätunnus voi muodostua vain pienistä kirjaimista, numeroista ja &quot;
++&quot;merkeistä \&quot;-\&quot; ja \&quot;_\&quot;&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Nimi on liian pitkä&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Virhe&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;tuntematon virhe&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Virhe luotaessa %s: %s&quot;
+
+<a id="userdrake2tags1133pofrpo">Added: userdrake2/tags/1.13.3/po/fr.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/fr.po (rev 0)
++++ userdrake2/tags/1.13.3/po/fr.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,772 @@
++# translation of userdrake-fr.po to francais
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/fr.php3
++#
++# Copyright (C) 2000 Mandriva
++# Vincent Saugey &lt;vince@mandriva.com&gt;, 2000.
++# Guy CLOTILDE &lt;guy.clotilde@wanadoo.fr&gt;, 2002.
++# Lecureuil Nicolas &lt;n1c0l4s.l3@wanadoo.fr&gt;, 2004.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-fr\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2010-02-17 13:40+0100\n&quot;
++&quot;Last-Translator: Christophe Berthelé &lt;berthy@mandriva.org&gt;\n&quot;
++&quot;Language-Team: francais &lt;fr@li.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.3.1\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n &gt; 1);\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Erreur lors de la lecture de `%s' : %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Erreur lors de la création de `%s' : %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Erreur lors de la suppression de `%s' : %s&quot;
++
++#: ../USER/USER.xs:490
++#, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Erreur lors de la création du compte : « %s ».\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;Impossible de récupérer l'Uid&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;Impossible de récupérer la valeur&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;&quot;
++&quot;Erreur lors de la création du répertoire de stockage du courrier &quot;
++&quot;électronique.\n&quot;
++
++#: ../USER/USER.xs:582
++#, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;L'utilisateur ne peut être modifé : « %s ».\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;L'utilisateur ne peut être effacé : « %s ».\n&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;Echec d'initialisation du mot de passe : « %s ».\n&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;Erreur inconnue&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Erreur lors de la création du groupe.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;Le groupe ne peut être modifé : « %s ».\n&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;Le groupe ne peut être effacé : « %s ».\n&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;Pas de répertoire home pour l'utilisateur.\n&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Le répertoire utilisateur ne peut être supprimé : « %s ».\n&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;&quot;
++&quot;Erreur lors de la suppression du répertoire de stockage du courrier &quot;
++&quot;électronique.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Chargement des Utilisateurs et des Groupes... Veuillez patienter&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Outil de gestion des utilisateurs de Mageia&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;/_Installer le compte invité&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;/_Désinstaller le compte invité&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Actions&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Éditer&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Effacer&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Options&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Filtrer les utilisateurs du système&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Fichier&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Rafraîchir&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Quitter&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Ajouter Utilisateur&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Ajouter _Groupe&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Aide&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Rapporter un bogue&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_A propos...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Chercher : &quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Appliquer le filtre&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Utilisateurs&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Groupes&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Utilisateurs et groupes&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Nom d'utilisateur&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ID utilisateur&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Groupe primaire&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Nom complet&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Shell de démarrage&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Dossier personnel&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Statut&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Nom du groupe&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ID Groupe&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Membres du groupe&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Ajouter utilisateur&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Ajouter un utilisateur au système&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Ajouter un groupe&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Ajouter un groupe au système&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Éditer&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Éditer la ligne sélectionnée&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Retirer&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Retirer la ligne sélectionnée&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Rafraîchir&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Rafraîchir la liste&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Verrouillé&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Expiré&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Cliquez sur l'icone afin de la modifier&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Créer un nouvel utilisateur&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Créer le dossier personnel&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Dossier personnel : &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Créer un groupe privé pour l'utilisateur&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Indiquer manuellement l'ID utilisateur&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;L'utilisateur existe déjà, veuillez choisir un autre nom&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Mot de passe incorrect&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Ce mot de passe est trop simple. \n&quot;
++&quot; Les bons mots de passe doivent \n&quot;
++&quot; comporter plus 6 caractères&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;L'identifiant utilisateur est inférieur à 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Créer un utilisateur avec un UID en-dessous de 500 est déconseillé.\n&quot;
++&quot; Êtes-vous sûr de vouloir le faire ?\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Ajouter %s au groupe « users »&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Création du nouveau groupe : %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Ajout de l'utilisateur : %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Assistant de migration&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;Voulez-vous lancer l'assistant de migration afin d'importer les documents et &quot;
++&quot;réglages de Windows dans votre distribution Mageia ?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Annuler&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Ok&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID : &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Choisir un groupe&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Ajouter au groupe existant&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Ajouter au groupe 'users'&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Un groupe avec ce nom existe déjà. Que voulez-vous faire ?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Créer un nouveau groupe&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Indiquer un ID de groupe manuellement&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Le groupe existe déjà, veuillez choisir un autre nom de groupe&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; L'identifiant de groupe est inférieur à 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Créer un groupe avec un GID en-dessous de 500 est déconseillé.\n&quot;
++&quot; Êtes-vous sûr de vouloir le faire ?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Ajout du groupe : %s&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID : &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Effacer les fichiers ou non ?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Destruction de l'utilisateur %s\n&quot;
++&quot; ainsi que la réalisation des actions suivantes\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Effacer le dossier personnel : %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Destruction de la boite de messages : /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Destruction de l'utilisateur : %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Voulez-vous réellement détruirer le groupe « %s » ?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s est un groupe primaire pour l'utilisateur %s\n&quot;
++&quot; Enlever l'utilisateur d'abord&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Destruction du groupe : %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Nom complet :&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Utilisateur :&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Mot de passe :&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Confirmation du mot de passe : &quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Shell de démarrage :&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Nom du groupe :&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Veuillez choisir au moins un groupe pour l'utilisateur&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Veuillez indiquer l'année, le mois et le jour \n&quot;
++&quot; pour l'expiration du compte &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Veuillez indiquer tous les champs pour l'expiration du mot de passe\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Vous ne pouvez pas supprimer l'utilisateur '%s' de son groupe primaire&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Dossier perso. :&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Données utilisateur&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Activer l'expiration du compte&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Date d'expiration du compte (AAAA-MM-JJ) : &quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Bloquer le compte utilisateur&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Info sur le compte&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;L'utilisateur a changé son mot de passe le : &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Activer l'expiration du mot de passe&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Nombre de jours avant qu'une modification soit permise : &quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Nombre de jours avant le changement : &quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Nombre de jours avant l'avertissement : &quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Nombre de jours avant de désactiver le compte : &quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Information sur le mot de passe&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Choisir les groupes dont l'utilisateur sera membre : &quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Données sur le groupe&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Choisir les utilisateurs de ce groupe : &quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Membres du groupe&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Éditer les Groupes / les Utilisateurs&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Une erreur est survenue :&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Fermer&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Copyright (C) %s par Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Gestion Utilisateurs&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++&quot;David Baudens\n&quot;
++&quot;David Odin\n&quot;
++&quot;Pablo Saratxaga &lt;pablo@mandriva.com&gt;\n&quot;
++&quot;KAtiOS &lt;katios@nolabel.net&gt;\n&quot;
++&quot;Guillaume Cottenceau\n&quot;
++&quot;Thierry Vignaud &lt;tvignaud@mandriva.com&gt;\n&quot;
++&quot;Christophe Combelles &lt;ccomb@free.fr&gt;\n&quot;
++&quot;Adrien Rezer &lt;monsieurdidi@free.fr&gt;\n&quot;
++&quot;Nicolas Richard &lt;richardnicolas22@yahoo.fr&gt;\n&quot;
++&quot;Lecureuil Nicolas &lt;n1c0l4s.l3@wanadoo.fr&gt;\n&quot;
++&quot;Teletchéa &lt;steletch@free.fr&gt;\n&quot;
++&quot;Christophe Berthelé\n&quot;
++&quot;Didier Hérisson &lt;didier.herisson@angstrom.uu.se&gt;\n&quot;
++&quot;Nicolas Lécureuil &lt;neoclust@mandriva.org&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Le champ nom est vide veuillez fournir un nom&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;Le nom ne peut contenir que lettres minuscules, nombres, `-' et `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Le nom est trop long&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Erreur&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Auteurs : &quot;
++
++#~ msgid &quot;Mandrake Linux Users Management Tool&quot;
++#~ msgstr &quot;Outil de gestion des utilisateurs de Mageia&quot;
+
+<a id="userdrake2tags1133pofurpo">Added: userdrake2/tags/1.13.3/po/fur.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/fur.po (rev 0)
++++ userdrake2/tags/1.13.3/po/fur.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,758 @@
++# translation of userdrake-fur.po to furlan
++# translation of userdrake.po to furlan
++# Copyright (C) 2004 Free Software Foundation, Inc.
++# Andrea Gracco &lt;graccoandrea@tin.it&gt;, 2004.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-fur\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2004-05-17 23:58+0200\n&quot;
++&quot;Last-Translator: Andrea Gracco &lt;graccoandrea@tin.it&gt;\n&quot;
++&quot;Language-Team: furlan &lt;gft@freelists.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.3\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, fuzzy, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Rimozion dal utent: %s&quot;
++
++#: ../USER/USER.xs:490
++#, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:582
++#, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Cjariant Utents e Grops... Par plasè, spiete&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Imprest par le gjestion dai utents di Mageia&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Azions&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Mude&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Scancele&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Opzions&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Filtre i utents dal sisteme&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_File&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Atualize&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Jessî&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Zonte Utent&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/_Zonte Grop&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Jutori&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Segnale un Bug&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Informazions su...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Cîr:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Apliche filtri&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Utents&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Grops&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Utents e grops&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Non utent&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ID Utent&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Grop Primari&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Non complet&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Shell di login&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Cartele home&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Stât&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Non Grop&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ID Grop&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Membris dal Grop&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Zonte Utent&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Zonte un utent al sisteme&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Zonte Grop&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Zonte un grop al sisteme&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Mude&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Mude rie selezionade&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Scancele&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Scancele rie selezionade&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Atualize&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Atualize le liste&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Blocât&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Scjadût&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Frache su le icone par cambiâle&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Cree un gnûf utent&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Cree le cartele Home&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Cartele Home: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Cree un grop privât par l'utent&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Specifiche manualmentri il ID dal utent&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;L'utent al esist dizà, par plasè scielç un altri Non Utent&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Le password no corispuint&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Cheste password e je masse semplice. \n&quot;
++&quot; Buinis password e an di sedi &gt; 6 letaris&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;UID dal utent inferiôr a 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;No l'è consigliât creâ un utent cun UID inferiôr a 500.\n&quot;
++&quot;Sêstu sigûr di volè fâlu?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Insedament di %s tal grop 'utents'&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Creazion di un gnûf grop: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Zonte utent: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Scancele&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Va ben&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Sielç grop&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Zonte al grop esistint&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Zonte al grop 'utents'&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Un grop cun chest non al esist dizà. Ce âstu voie di fâ?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Cree un gnûf grop&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Specificâ manualmentri un ID di grop&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Il grop al esist dizà, par plasè sielç un altri non di grop&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; GID dal grop inferiôr di 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Creâ un grop cunt'un GID inferôr a 500 no l'è racomandât.\n&quot;
++&quot; Setu sigûr di ve voe di falu? \n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Zonte dal grop: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Scancele i file o no?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Scancelant utent %s\n&quot;
++&quot; E vignaran fatis ancje les azions seguentis\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Scancele le cartele Home: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Scancele le Mailbox :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Rimozion dal utent: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Âstu veramentri voie di scancelâ il grop %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s al è il grop primari dal utent %s\n&quot;
++&quot; Tu âs prin di rimovi l'utent&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Rimozion dal grop: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Non complet:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Login:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Password:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Confirme Password:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Shell di login:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Non Grop:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Par plasè sielç almancul un grop par l'utent&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Par plasè specifiche An, Mês e Dî \n&quot;
++&quot;di scjadince dal account&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Par plasè jemple ducj i cjamps di scjadince de password\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;No tu puedis rimovi l'utent '%s' dal so grop primari&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Home:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Dâts Utent&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Abilite le scjadince dal account&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;L'Account al scjât il (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Bloche l'account dal utent&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Informazions account&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;L'utent al à mudât le password il : &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Abilite le scjadince de password&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Dìs prin che sedi permitude le modifiche :&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Dìs prin che sedi domandade le modifiche :&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Dìs di avertence prin de modifiche :&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Dìs prin che l'account al sedi inatîf :&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Informazions password&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Sielç i grops dai cuai l'utent al sarâ membri:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Dâts Grop&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Sielç i utents di zontâ a chest grop :&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Utents dal grop&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Mude Grops / Utents&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Al è intravignût un fal&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Siere&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Gjestion Utents&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Andrea Gracco &lt;graccoandrea@tin.it&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Il cjamp dal non al è vueit, tu âs di insedâ un non&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;Il non al à di vê dome letaris minusculis, numars, `-' e `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Il non al è masse lunc&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Fal&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Rimozion dal utent: %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Autôrs: &quot;
++
++#~ msgid &quot;Choice&quot;
++#~ msgstr &quot;Sielte&quot;
++
++#~ msgid &quot;Yes&quot;
++#~ msgstr &quot;Si&quot;
++
++#~ msgid &quot;No&quot;
++#~ msgstr &quot;No&quot;
+
+<a id="userdrake2tags1133pogapo">Added: userdrake2/tags/1.13.3/po/ga.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/ga.po (rev 0)
++++ userdrake2/tags/1.13.3/po/ga.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,826 @@
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/ga.php3
++#
++# Irish (Gaeilge) translations for userdrake.pot
++# Copyright (C) 2001 Free Software Foundation, Inc.
++# Alastair McKinstrty, &lt;mckinstry@computer.org&gt;, 2001.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake2\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2001-08-10 21:00+0000\n&quot;
++&quot;Last-Translator: Alastair McKinstry &lt;mckinstry@computer.org&gt;\n&quot;
++&quot;Language-Team: Irish &lt;ga@li.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8-bit\n&quot;
++
++#: ../USER/USER.xs:86
++#, fuzzy, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Teíp ag lódáil comhad pixmap: %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Teíp ag lódáil comhad pixmap: %s&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++#, fuzzy
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Teíp ag lódáil comhad pixmap: %s&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Teíp ag lódáil comhad pixmap: %s&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;earráid anaithnid&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Teíp ag lódáil comhad pixmap: %s&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++#, fuzzy
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Teíp ag lódáil comhad pixmap: %s&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Eagar&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Dealaigh&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Roghanna&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/C_omhad&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Ériggh&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;E&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/C_úidiú&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Tuairaisc Fabht&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Faoi...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Cuardaigh:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Úsáideoirí&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Grupaí&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Úsáideoirí agus grúpaí&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Ainm Úsáideora&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ID Úsáideoir&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Ainm Iomlán&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Blaosc Logála Isteach&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Comhadlann bhaile&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Stádas&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Ainm Grúpa&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ID Grupa&quot;
++
++#: ../userdrake:194
++#, fuzzy, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Grupaí&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Cuir Úsáideoir Leis&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Grúpa Nua&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Eagar&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Scríos&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Nuashonraigh&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Faoi Ghlas&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;As Dáta&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, fuzzy, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Pasfhocal&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Cealaigh&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Ceart go Leor&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Cruthaigh Grúpa Nua&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Ainm Iomlán:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Logann:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Pasfhocal:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Dearbhaigh an Focal Faire:&quot;
++
++#: ../userdrake:806
++#, fuzzy, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Logann:&quot;
++
++#: ../userdrake:820
++#, fuzzy, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;ID Grupa:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Baile:&quot;
++
++#: ../userdrake:988
++#, fuzzy, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;ID Úsáideoir&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1031
++#, fuzzy, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Pasfhocal&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1102
++#, fuzzy, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;ID Grupa&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1107
++#, fuzzy, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Grupaí&quot;
++
++#: ../userdrake:1127
++#, fuzzy, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Eagar úsáideoir(í)&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Tharla earráid&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Dún&quot;
++
++#: ../userdrake:1277
++#, fuzzy, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Coípcheart © 2003 Mandriva.&quot;
++
++#: ../userdrake:1280
++#, fuzzy, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Ainm Úsáideora&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Earráid&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;earráid anaithnid&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Teíp ag lódáil comhad pixmap: %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Údáir: &quot;
++
++#~ msgid &quot;Yes&quot;
++#~ msgstr &quot;Tá&quot;
++
++#~ msgid &quot;No&quot;
++#~ msgstr &quot;Níl&quot;
++
++#~ msgid &quot;Save&quot;
++#~ msgstr &quot;Sábháil&quot;
++
++#~ msgid &quot;Exit&quot;
++#~ msgstr &quot;Éalaigh&quot;
++
++#~ msgid &quot;Preferences&quot;
++#~ msgstr &quot;Cumasaí&quot;
++
++#~ msgid &quot;Add&quot;
++#~ msgstr &quot;Suim&quot;
++
++#~ msgid &quot;Remove&quot;
++#~ msgstr &quot;Scríos&quot;
++
++#~ msgid &quot;Comments&quot;
++#~ msgstr &quot;Notaí&quot;
++
++#~ msgid &quot;Shell&quot;
++#~ msgstr &quot;Blaosc&quot;
++
++#~ msgid &quot;name&quot;
++#~ msgstr &quot;ainm&quot;
++
++#~ msgid &quot;gid&quot;
++#~ msgstr &quot;gid&quot;
++
++#~ msgid &quot;passwd&quot;
++#~ msgstr &quot;passwd&quot;
++
++#~ msgid &quot;users&quot;
++#~ msgstr &quot;úsáideoirí&quot;
++
++#~ msgid &quot;Default shell:&quot;
++#~ msgstr &quot;Blaosc de gnáth:&quot;
++
++#~ msgid &quot;General&quot;
++#~ msgstr &quot;Gnáth&quot;
++
++#~ msgid &quot;/bin/bash&quot;
++#~ msgstr &quot;/bin/bash&quot;
++
++#~ msgid &quot;uid:&quot;
++#~ msgstr &quot;uid:&quot;
++
++#~ msgid &quot;Shell:&quot;
++#~ msgstr &quot;Blaosc:&quot;
++
++#~ msgid &quot;passwd:&quot;
++#~ msgstr &quot;Pasfhocal:&quot;
++
++#~ msgid &quot;About UserDrake&quot;
++#~ msgstr &quot;Faoi UserDrake&quot;
++
++#~ msgid &quot;Name:&quot;
++#~ msgstr &quot;Ainm:&quot;
++
++#~ msgid &quot;gid:&quot;
++#~ msgstr &quot;gid:&quot;
++
++#~ msgid &quot;Quit userdrake?&quot;
++#~ msgstr &quot;Ealaigh as userdraker?&quot;
++
++#~ msgid &quot;login empty&quot;
++#~ msgstr &quot;Is logann folamh&quot;
++
++#~ msgid &quot;name empty&quot;
++#~ msgstr &quot;Is ainm folamh&quot;
++
++#~ msgid &quot;/bin/ash&quot;
++#~ msgstr &quot;/bin/ash&quot;
++
++#~ msgid &quot;/bin/csh&quot;
++#~ msgstr &quot;/bin/csh&quot;
++
++#~ msgid &quot;/bin/zsh&quot;
++#~ msgstr &quot;/bin/zsh&quot;
+
+<a id="userdrake2tags1133poglpo">Added: userdrake2/tags/1.13.3/po/gl.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/gl.po (rev 0)
++++ userdrake2/tags/1.13.3/po/gl.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,762 @@
++# translation of userdrake to Galician
++# Copyright (C) 2001 Jesús Bravo Álvarez.
++# Copyright (C) 2001 Mandriva
++#
++# Jesús Bravo Álvarez &lt;jba@pobox.com&gt;, 2001
++# Leandro Regueiro &lt;leandro.regueiro@gmail.com&gt;, 2004, 2008.
++#
++# Proxecto Trasno http://trasno.net
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake.gl\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2008-03-30 18:08+0100\n&quot;
++&quot;Last-Translator: Leandro Regueiro &lt;leandro DOT regueiro AT gmail DOT com&gt;\n&quot;
++&quot;Language-Team: Galician &lt;proxecto@trasno.net&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.0.1\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Erro ó ler `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Erro ó crear `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Erro ó eliminar `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Erro ó crear a cola de correo.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Erro ó crear a cola de correo.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Erro ó crear a cola de correo.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;erro descoñecido&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Erro ó crear a cola de correo.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Erro ó eliminar a cola de correo.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Cargando Usuarios e Grupos... Por favor agarde&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Ferramenta de Xestión de Usuarios de Mageia&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Accións&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Editar&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Borrar&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Opcións&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Filtrar usuarios do sistema&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Ficheiro&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Recargar&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Sair&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Engadir Usuario&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Engadir _Grupo&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Axuda&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Comunicar Erro&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Acerca de...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Buscar:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Aplica-lo filtro&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Usuarios&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Grupos&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Usuarios e grupos&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Nome de Usuario&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ID de Usuario&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Grupo Principal&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Nome Completo&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Shell deLogin&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Directorio Persoal&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Estado&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Nome do Grupo&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ID do Grupo&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Membros do Grupo&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Engadir Usuario&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Engadir un usuario ó sistema&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Engadir Grupo&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Engadir un grupo ó sistema&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Editar&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Edita-la fila seleccionada&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Borrar&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Borra-la fila seleccionada&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Recargar&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Recarga-la lista&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Bloqueado&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Caducado&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Clique na icona para cambialo&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Crear Novo Usuario&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Crear Directorio Persoal&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Directorio Persoal: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Crear un grupo privado para o usuario&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Especificar manualmente a ID do usuario&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Este usuario xa existe, por favor escolla outro Nome de Usuario&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Os Contrasinais Non Coinciden&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Este contrasinal é demasiado sinxelo. \n&quot;
++&quot; Os bos contrasinais deben ter máis de 6 caracteres&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;A Uid do usuario é menor de 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Non é recomendable crear un usuario cunha UID menor de 500.\n&quot;
++&quot; ¿Está seguro de querer facer isto?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Engadindo %s ó grupo 'usuarios'&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Creando novo grupo: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Engadindo usuario: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Asistente de migración&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;Desexa executar o asistente de migración para poder importar o documents and &quot;
++&quot;settings de Windows á súa distribución Mageia?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Cancelar&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Aceptar&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Escolla un grupo&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Engadir ó grupo existente&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Engadir ó grupo 'usuarios'&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Xa existe un grupo con este nome. ¿Quere seguir?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Crear Novo Grupo&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Especificar manualmente a ID do grupo&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Este grupo xa existe, por favor escolle outro nome para o grupo&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; O Gid do grupo é menor de 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Non é recomendable crear grupos cun GID menor de 500.\n&quot;
++&quot; ¿Está seguro de querer facer isto?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Engadindo grupo: %s&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;¿Desexa elimina-los ficheiros?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Eliminando o usuario %s\n&quot;
++&quot; Realizar tamen esta accións\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Elimina-lo Directorio Persoal: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Elimina-la caixa do correo: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Eliminando o usuario: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Desexa elimina-lo grupo %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s é o grupo primario do usuario %s\n&quot;
++&quot; Borre o usuario primeiro&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Eliminando o grupo: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Nome Completo:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Login:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Contrasinal:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Confirme o Contrasinal:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Shell deLogin:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Nome do Grupo:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Por favor, seleccione como minimo un grupo para inclui-lo usuario nel&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Por favor, especifique o Dia, o Mes e o Ano \n&quot;
++&quot; para a Caducación da Conta &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Por favor complete tódolos campos da caducidade do contrasinal\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Non pode elimina-lo usuario '%s' do seu grupo principal&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Dir. Persoal:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Datos do Usuarios&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Habilita-la caducidade da conta&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;A conta caduca o (DD-MM-YYYY):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Bloquear Conta de Usuario&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Información da Conta&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Último troco de contrasinal do usuario:&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Habilita-la Caducidade do Contrasinal&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Dias que deben pasar antes de que se permita facer cambios: &quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Dias que deben pasar antes de que se requira facer cambios: &quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Dias de aviso antes do cambio: &quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Días antes de que a conta se desactive:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Información do Contrasinal&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Seleccione os grupos ós que vai pertencer o usuario:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Datos de Grupo&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Seleccione usuarios para unilos a este grupo: &quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Usuarios do Grupo&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Editar Grupos / Usuarios&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Ocorreu un erro:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Pechar&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Copyright (C) %s de Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Xestión de Usuarios&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++&quot;Jesús Bravo Álvarez &lt;jba@pobox.com&gt;\n&quot;
++&quot;Leandro Regueiro &lt;leandro.regueiro@gmail.com&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;O campo do nome está baleiro, por favor escriba un nome&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;O nome só pode conter letras minúsculas, números, '-' e '_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;O nome é moi longo&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Erro&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;erro descoñecido&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Erro ó crear `%s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Autores: &quot;
+
+<a id="userdrake2tags1133pohepo">Added: userdrake2/tags/1.13.3/po/he.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/he.po (rev 0)
++++ userdrake2/tags/1.13.3/po/he.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,771 @@
++# translation of he.po to Hebrew
++# translation of userdrake-he.po to Hebrew
++# translation of userdrake.po to Hebrew
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/he.php3
++#
++# translation of userdrake-he.po to hebrew
++# Copyright (C) 2003, 2004 Free Software Foundation, Inc.
++# This file is distributed under the GNU GPL license.
++# dovix &lt;dovix2003@yahoo.com&gt;, 2003, 2004.
++# el-cuco &lt;cuco3001@yahoo.com&gt;, 2003.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: he\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2007-09-24 20:54+0200\n&quot;
++&quot;Last-Translator: dovix &lt;dovix2003@yahoo.com&gt;\n&quot;
++&quot;Language-Team: Hebrew &lt;he@li.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;חלה שגיאה בעת קריאת `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;חלה תקלה ביצירת `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;חלה תקלה בעת הסרת `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;חלה תקלה בעת יצירת ספריית דואר.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;חלה תקלה בעת יצירת ספריית דואר.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;חלה תקלה בעת יצירת ספריית דואר.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;שגיאה לא ידועה&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;חלה תקלה בעת יצירת ספריית דואר.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;חלה תקלה בעת מחיקת ספריית הדואר.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;טוען משתמשים וקבוצות... נא להמתין&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;כלי ניהול משתמשים של Mageia&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_פעולות&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_עריכה&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_מחיקה&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/א_פשרויות&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/סינון משתמשי מערכת&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_קובץ&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_רענן&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_יציאה&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_הוספת משתמש&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/הוספת _קבוצה&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_עזרה&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_דווח על באג&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/אודות...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;חיפוש:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;החל מסנן&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;משתמשים&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;קבוצות&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;משתמשים וקבוצות&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;שם משתמש&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;קוד זיהוי משתמש&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;קבוצה ראשונית&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;שם מלא&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;מעטפת כניסה לחשבון&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;ספריית הבית&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;מצב&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;שם הקבוצה&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;קוד זיהוי קבוצה&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;חברים בקבוצה&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;הוספת משתמש&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;הוספת משתמש למערכת&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;הוספת קבוצה&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;הוספת קבוצה למערכת&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;עריכה&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;עריכת עמודה מסומנת&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;מחיקה&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;מחיקת שורה מסומנת&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;רענן&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;רענן רשימת משתמשים&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;נעול&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;פג&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;לחץ על הצלמית בכדי לערוך את זה&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;יצירת משתמש חדש&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;יצירת ספריית הבית של המשתמש&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;ספריית הבית של המשתמש: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;יצירת קבוצה פרטית עבור המשתמש&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;קבע את קוד זיהוי המשתמש באופן ידני&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;משתמש זה כבר קיים במערכת, נא לבחור שם משתמש אחר&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;סיסמאות לא תואמות&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;סיסמה זו פשוטה מדי\n&quot;
++&quot;סיסמה טובה צריכה להכיל יותר מ-6 תווים.&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;קוד זיהוי המשתמש קטן מ-500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;יצירת משתמש עם קוד זיהוי מתחת ל-500 לא מומלץ\n&quot;
++&quot;האם ברצונך לבצע פעולה זו?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;הוספת %s אל קבוצת 'משתמשים'&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;יצירת קבוצה חדשה: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;הוספת משתמש: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;אשף הגירה&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;האם להריץ את אשף ההגירה כדי לייבא מסמכי והגדרות וינדוז אל מערכת המנדריבה-&quot;
++&quot;לינוקס שלך?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;ביטול&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;אישור&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;קוד זיהוי המשתמש (UID): &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;יש לבחור קבוצה&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;הוסף לקבוצה קיימת&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;הוסף לקבוצת ה'משתמשים'&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;קבוצה עם השם הזה כבר קיימת. מה רצונך לעשות?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;יצירת קבוצה חדשה&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;קבע את קוד זיהוי הקבוצה באופן ידני&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;הקבוצה כבר קיימת, נא לבחור שם אחר לקבוצה&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;קוד זיהוי הקבוצה קטן מ-500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;יצירת קבוצה עם קוד זיהוי מתחת ל-500 לא מומלצת\n&quot;
++&quot;האם ברצונך לבצע פעולה זו?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;הוספת קבוצה: %s&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;קוד זיהוי הקבוצה (GID):&quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;האם למחוק את הקבצים או לא?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;מחיקת משתמש %s\n&quot;
++&quot; תגרום גם לפעולות הבאות:\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;מחיקת ספריית הבית של משתמש: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;מחיקת חשבון הדואר /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;הסרת משתמש: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;האם באמת למחוק את קבוצה %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s היא קבוצה ראשונית עבור משתמש %s\n&quot;
++&quot; נא למחוק את המשתמש קודם לכן&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;הסרת קבוצה: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;שם מלא:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;שם משתמש:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;סיסמה:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;יש לאשר את הסיסמה:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;מעטפת כניסה לחשבון:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;שם הקבוצה:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;נא לבחור לפחות קבוצה אחת לפחות עבור המשתמש&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;נא לקבוע שנה, חודש ויום\n&quot;
++&quot; עבור תפוגת החשבון &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;נא לספק את הסיסמה הישנה בכל השדות\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;אין אפשרות למחוק את המשתמש '%s' מהקבוצה הראשית שלו&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;ספריית הבית:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;נתוני משתמש&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;איפשור תפוגת חשבון&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;החשבון פג בתאריך (שנה-חודש-יום):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;נעל חשבון משתמש&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;מידע על החשבון&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;סיסמת החשבון שונתה לאחרונה בתאריך :&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;איפשור תפוגת סיסמה&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;מספר ימים לפני שניתן לשנות את הסיסמה:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;מספר ימים שלאחריהם יש לשנות סיסמה :&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;מספר ימים לפני אזהרה על תפוגת הסיסמה :&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;ימים לפני נעילת חשבון לא פעיל :&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;מידע על הסיסמה&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;יש לבחור את הקבוצות שהחשבון יהיה חבר בהן :&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;מידע על קבוצות&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;נא לבחור את המשתמשים שיצטרפו לקבוצה הזאת :&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;משתמשים בקבוצה&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;עריכת קבוצות / משתמשים&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;חלה שגיאה&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;סגור&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;זכויות היוצרים (C) %s שייכות למנדריבה&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;ניהול משתמשים&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;מנדריבה לינוקס&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Dotan Kamber &lt;kamberd@yahoo.com&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;שדה השם ריק, נא לספק שם&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;השם חייב להכיל רק אותיות לטיניות קטנות, מספרים, מקף וקו תחתי&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;השם ארוך מדי&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;שגיאה&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;שגיאה לא ידועה&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;חלה תקלה ביצירת `%s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;כותבים: &quot;
++
++#~ msgid &quot;Choice&quot;
++#~ msgstr &quot;בחירה&quot;
++
++#~ msgid &quot;Yes&quot;
++#~ msgstr &quot;כן&quot;
++
++#~ msgid &quot;No&quot;
++#~ msgstr &quot;לא&quot;
+
+<a id="userdrake2tags1133pohipo">Added: userdrake2/tags/1.13.3/po/hi.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/hi.po (rev 0)
++++ userdrake2/tags/1.13.3/po/hi.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,756 @@
++# translation of userdrake2-hi.po to Hindi, India
++# translation of userdrake-hi.po to Hindi, India
++# This file is distributed under the same license as the PACKAGE package.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
++# Dhananjaya Sharma, 2003, 2004.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-hi\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2004-08-08 18:46+0530\n&quot;
++&quot;Last-Translator: धनञ्जय शर्मा (Dhananjaya Sharma)\n&quot;
++&quot;Language-Team: हिन्दी, भारत (Hindi, India)\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.3\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n!=1);\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;'%s' को पढ़ने में त्रुटि: %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;`%s' का निर्माण करने में त्रुटि: %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;`%s' को हटाने में त्रुटि: %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;मेल स्पूल का निर्माण करने में त्रुटि।\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;मेल स्पूल का निर्माण करने में त्रुटि।\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;मेल स्पूल का निर्माण करने में त्रुटि।\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;अज्ञात त्रुटि&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;मेल स्पूल का निर्माण करने में त्रुटि।\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;मेल स्पूल का मिटाने में त्रुटि\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;यूज़र-ड्रैक&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;उपयोगकर्ताओं और समूहों को लाया जा रहा है... कृपया प्रतीक्षा करें&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;मैनड्रिव लिनक्स उपयोगकर्ता प्रबंधन टूल&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/कार्य-कलाप(_A)&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/सम्पादित करें(_E)&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/मिटायें(_D)&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/विकल्प(_O)&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/प्रणाली उपयोगकर्ताओं को अलग करें(_F)&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/संचिका (_F)&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/पुनः ताजा करें (_R)&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/निर्गम(_Q)&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/उपयोग-कर्ता जोड़े(_A)&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/समूह जोड़े(_G)&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/सहायता(_H)&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/दोष के बारे में बतायें(_R)&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/के बारे में(_A)...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;खोज:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;फ़िल्टर लगायें&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;उपयोग-कर्ता&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;समूह&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;उपयोगकर्ता और समूह&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;उपयोगकर्ता का नाम&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;उपयोग-कर्ता पहचान संख्या&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;प्रधान समूह&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;पूरा नाम&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;सत्र-आरंभ कोश&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;गृह स्थल निर्देशिका&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;स्थिति&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;समूह का नाम&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;समूह पहचान संख्या&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;समूह के सदस्य&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;उपयोग-कर्ता जोड़ना&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;एक उपयोग-कर्ता को प्रणाली में जोड़ना&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;समूह जोड़े&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;एक समूह को प्रणाली में जोड़ना&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;सम्पादन&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;चयन की हुई पंक्ति का संपादन&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;मिटाना&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;चयन की हुई पंक्ति को मिटाना&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;पुनः ताजा करना&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;उपयोग-कर्ता सूची को पुनः ताजा करना&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;ताला-बन्द&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;समाप्त हो चुका है&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;आइकॉन को परिवर्तित करने के लिए, इस पर क्लिक करें&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;नये उपयोगकर्ता का निर्माण&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;गृह स्थल निर्देशिका का निर्माण करें&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;गृह स्थल निर्देशिका: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;उपयोगकर्ता के लिए एक व्यक्तिगत समूह का निर्माण&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;उपयोगकर्ता पहचान संख्या को स्वमं निर्दिष्ट करना&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;उपयोगकर्ता पहिले से विद्यमान है, कृपया अन्य उपयोगकर्ता नाम चुनें।&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;कूट-शब्द बेमेल&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;यह कूट-शब्द अति सरल है।\n&quot;
++&quot;अच्छे कूट-शब्द ६ अक्षरों से अधिक के होते है&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;उपयोगकर्ता की उपयोगकर्ता-पहचान-संख्या ५०० से कम है&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;एक उपयोगकर्ता का निर्माण, जिसकी उपयोगकर्ता पहचान संख्या ५०० से कम हो, की सलाह नहीं &quot;
++&quot;दी जाती है\n&quot;
++&quot;क्या आप वास्तव में ऐसा करना चाहते है?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;'users' समूह में %s डाला जा रहा है&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;%s : नये समूह का निर्माण हो रहा है&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;%s : उपयोगकर्ता को जोड़ा जा रहा है&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;निरस्त&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;ओ०के०&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;उपयोगकर्ता पहचान संख्या: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;समूह का चयन करें&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;विद्यमान समूह में जोड़ना&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;'users' समूह में जोड़ना&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;इस नाम का एक समूह पहिले से विद्यमान है। आप क्या करना चाहेगें? &quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;नये समूह का निर्माण करें&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;समूह पहचान संख्या स्वमं निर्दिष्ट करें&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;समूह पहिले से विद्यमान है, कृपया अन्य समूह नाम का चयन करें&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; समूह की समूह पहचान संख्या ५०० से कम है&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;एक समूह निर्माण, जिसकी समूह पहचान संख्या ५०० से कम हो, की सलाह नहीं दी जाती है\n&quot;
++&quot;क्या आप वास्तव में ऐसा करना चाहते है?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;%s : समूह को जोड़ा जा रहा है&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;समूह पहचान संख्या: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;संचिकाओं को मिटाया जायें कि नहीं?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;%s उपयोगकर्ता को हटाया जा रहा है\n&quot;
++&quot;साथ ही, निम्नलिखित क्रियायें भी की जा रही है\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;गृह स्थल निर्देशिका को हटायें : %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;विपत्र-पेटी को हटायें :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;%s : उपयोगकर्ता को हटाया जा रहा है&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;क्या आप वास्तव में %s समूह को हटाना चाहते है&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s , उपयोगकर्ता %s के लिए, एक प्रधान समूह है\n&quot;
++&quot; उपयोगकर्ता को पहिले हटायें&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;%s : समूह को हटाया जा रहा है&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;पूरा नाम:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;सत्र-आरंभ:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;कूट-शब्द:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;कूट-शब्द की पुष्टि:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;सत्र-आरंभ कोश:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;समूह का नाम:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;कृपया इस उपयोगकर्ता के लिए कम-से-कम एक समूह का चयन करें&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;कृपया खाता समाप्ति के लिए \n&quot;
++&quot;वर्ष, माह और दिवस बतायें&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;कृपया कूट-शब्द जीवनकाल में सभी प्रविष्टियों को भरें\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;आप, '%s' उपयोगकर्ता को उसके प्रधान समूह से नहीं हटा सकते है&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;गॄह-स्थल:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;उपयोग-कर्ता जानकारी&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;खाता समाप्ति प्रक्रिया को सक्रिय करें&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;खाता समाप्ति की तिथि (वर्ष-ंमाह-दिवस) (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;उपयोगकर्ता खाते को लॉक करें&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;खाते के बारे में जानकारी&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;उपयोगकर्ता ने कूट शब्द को अंतिम बार इस तिथि को परिवर्तित किया था: &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;कूट शब्द समाप्ति प्रक्रिया को सक्रिय करें&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;दिन संख्या, जिसके पहिले परिवर्तन की अनुमति है :&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;दिन संख्या, जिसके पहिले परिवर्तन आवश्यक है :&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;दिन संख्या, जिसके पहिले परिवर्तन की चेतावनी मिलेगी :&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;दिन संख्या जिसके पहिले खाता निष्क्रिय होगा :&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;कूट-शब्द सूचना&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;उन समूहों का चयन करें जिनका यह उपयोगकर्ता एक सदस्य होगा:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;समूह जानकारी&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;एस समूह में शामिल होने के लिए उपयोगकर्ताओं का चयन करें&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;समूह उपयोगकर्ता&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;समूहों/उपयोगकर्ताओं का संपादन&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;एक त्रुटि हो गयी है&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;समाप्त&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;उपयोगकर्ता प्रबंधन&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;मैनड्रैकलिनक्स&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;धनञ्जय शर्मा (Dhananjaya Sharma)\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;नाम क्षेत्र खाली है, कृपया एक नाम प्रदान करें&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;नाम में सिर्फ़ लैटिन छोटे अक्षर, संख्याऐं, `-' और `_' शामिल होना चाहिए&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;नाम अत्याधिक लंबा है&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;त्रुटि&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;अज्ञात त्रुटि&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;`%s' का निर्माण करने में त्रुटि: %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;लेखकों के नाम: &quot;
+
+<a id="userdrake2tags1133pohrpo">Added: userdrake2/tags/1.13.3/po/hr.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/hr.po (rev 0)
++++ userdrake2/tags/1.13.3/po/hr.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,759 @@
++# translation of userdrake-hr.po to
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/hr.php3
++#
++# Croatian Translation for UserDrake.
++# Copyright (C) 2000, 2005 Free Software Foundation, Inc.
++# Vlatko Kosturjak &lt;kost@iname.com&gt;, 2000, 2005.
++# Matija Blagus &lt;Matija.Blagus@public.srce.hr&gt;, 2004.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-hr\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2005-08-23 11:37+0200\n&quot;
++&quot;Last-Translator: Vlatko Kosturjak\n&quot;
++&quot;Language-Team: &lt;en@li.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.9.1\n&quot;
++&quot;Plural-Forms: nplurals=3; plural=(n%10==1 &amp;&amp; n%100!=11 ? 0 : n%10&gt;=2 &amp;&amp; n%&quot;
++&quot;10&lt;=4 &amp;&amp; (n%100&lt;10 || n%100&gt;=20) ? 1 : 2);\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Ne mogu učitati `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Ne mogu napraviti `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Greška kod uklanjanja `%s': %s &quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Ne mogu učitati mail spool.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Ne mogu učitati mail spool.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Ne mogu učitati mail spool.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;Nepoznata greška&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Ne mogu učitati mail spool.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Greška kod brisanja sandučića za poštu.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Učitavam korisnike i grupe... Molimo pričekajte&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageia alat za upravljanje korisnicima&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Akcije&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Promjeni&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Ukloni&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Postavke&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Filter sistemskih korisnika&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Datoteka&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Osvježi&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Izlaz&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/Dodaj _korisnika&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Dodaj _grupu&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Pomoć&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Prijavi bug&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_O programu...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Traži:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Primjeni filter&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Korisnici&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Grupe&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Korisnici i grupe&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Korisničko ime&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Korisnički ID&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Primarna grupa&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Puno ime&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Login školjka&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Početni direktorij&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Stanje&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Ime grupe&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ID grupe&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Članovi grupe&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Dodaj korisnika&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Dodak korisnika u sistem&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Dodaj grupu&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Dodaj grupu u sistem&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Podesi&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Promjeni odabrani red&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Ukloni&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Obriši odabrani red&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Osvježi&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Osvježi listu korisnika&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Zaključano&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Isteklo&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Kliknite na ikonu da ju promjenite&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Napravi novog korisnika&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Napravi početni direktorij&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Početni direktorij:&quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Napravi privatnu grupu za korisnika&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Odredi korisnički ID ručno&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Ovaj korisnik već postoji, molimo odaberite drugo korisničko ime&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Lozinka se ne slaže&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Lozinka je previše jednostavna. \n&quot;
++&quot; Dobra lozinka mora imati &gt; 6 znakova&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Korisnički Uid je &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Stvaranje korisnika sa UIDom manjim od 500 nije preporučeno.\n&quot;
++&quot; Da li stvarno želite to učiniti?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Stavljam %s u 'korinsičku' grupu&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Stvaram novu grupu: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Dodajem korisnika: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Odustani&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;U redu&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Odaberi grupu&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Dodaj postojećoj grupi&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Dodaj 'korisničkoj' grupi&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Grupa sa tim imenom već postoji. Što želite učiniti?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Napravni novu grupu&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Odredi ID grupe ručno&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Grupa već postoji, molimo odaberite drugo ime grupe&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;Gid grupe je &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Stvaranje grupe sa GIDom manjim od 500 nije preporučeno.\n&quot;
++&quot; Da li stvarno to želite učiniti?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Dodajem grupu: %s&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Da obrišem datoteke?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Brišem korisnika %s\n&quot;
++&quot; Također izvodim slijedeće akcije\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Brišem početni direktorij: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Obriši Mailbox :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Uklanjam korisnika: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Da li stvarno želite izbrisate grupu %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s je primarna grupa za korisnika %s\n&quot;
++&quot; Prvo uklonite korisnika&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Uklonjam grupu: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Puno ime:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Korisnička oznaka:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Lozinka:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Potvrda lozinke:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Login školjka:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Ime grupe:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Molimo odaberite najmanje jednu grupu za ovog korisnika&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Molimo odaberite godinu, mjesec i dan \n&quot;
++&quot; za prestanak valjanosti računa &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Molimo popunite sva polja u lozinki ponovo\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Ne možete izbrisati korisnika '%s' iz njegove primarne grupe&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Početni direktorij:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Podaci o korisniku&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Uključi prestanak valjanosti računa&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Račun prestaje valjati (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Zaključaj korisnikov račun&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Informacije o računu&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Korisnik zadnji put promjenio lozinku:&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Uključi prestanak valjanosti lozinke&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Dani prije kada su promjene dozvoljene:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Dani prije potrebe promjena: &quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Dani upozorenja prije promjena:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Dani prije neaktivnosti računa:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Informacije o lozinki&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Odaberiter gurpe u kojima će korisnik biti član:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Podaci o grupama&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Odaberite korisnike koji se pridružuju ovoj grupi:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Članovi grupe&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Mijenjaj grupe / korisnike&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Pojavila se greška&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Zatvori&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Upravljanje korisnicima&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Croatian &lt;lokalizacija@linux.hr&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Polje imena je prazno, molimo upišite ime&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;Ime mora sadržavati samo mala latinska slova, brojeve, `-' i `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Ime je predugačko&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Greška&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;Nepoznata greška&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Ne mogu napraviti `%s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Autori: &quot;
+
+<a id="userdrake2tags1133pohupo">Added: userdrake2/tags/1.13.3/po/hu.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/hu.po (rev 0)
++++ userdrake2/tags/1.13.3/po/hu.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,784 @@
++# translation of userdrake to Hungarian
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/hu.php3
++#
++# Tamas Szanto &lt;tszanto@mol.hu&gt;, 2001.
++# Arpad Biro &lt;biro.arpad gmail&gt;, 2002,2003, 2004, 2007.
++# Gergely Lónyai &lt;aleph@mandriva.org&gt;, 2007, 2008, 2009, 2010.
++# Copyright (C) 2001,2003, 2004, 2007 Free Software Foundation, Inc.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake2-2010.1\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2010-04-19 11:20+0100\n&quot;
++&quot;Last-Translator: Gergely Lónyai &lt;aleph@mandriva.org&gt;\n&quot;
++&quot;Language-Team: Hungarian &lt;aleph@mandriva.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=utf-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n!=1);\n&quot;
++&quot;X-Poedit-Language: Hungarian\n&quot;
++&quot;X-Poedit-Country: HUNGARY\n&quot;
++&quot;X-Poedit-SourceCharset: utf-8\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Hiba `%s' olvasásakor: %s&quot;
++
++#: ../USER/USER.xs:93
++#: ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Hiba `%s' létrehozásakor: %s&quot;
++
++#: ../USER/USER.xs:205
++#: ../USER/USER.xs:234
++#: ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Hiba `%s' eltávolításakor: %s&quot;
++
++#: ../USER/USER.xs:490
++#, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Hiba a hozzáférés létrehozásakor: '%s'.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;Az UID szám beszerzése sikertelen&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;Az értéket nem lehet lekérdezni&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Hiba a levéltároló létrehozásakor.\n&quot;
++
++#: ../USER/USER.xs:582
++#, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;A felhasználót nem lehetett módosítani: '%s'.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Nem sikerült törölni a felhasználót: '%s'.\n&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;Nem sikerült beállítani a jelszót: '%s'\n&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;ismeretlen hiba&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Hiba a csoport létrehozásakor.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;Nem sikerült módosítani a csoportot: '%s'.\n&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;Nem sikerült törölni a csoportot: '%s'.\n&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;A felhasználónak nincs saját könyvtára.\n&quot;
++
++#: ../USER/USER.xs:869
++#: ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;A felhasználó könyvtára nem lett törölve: '%s'.\n&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Hiba a levéltároló törlésekor.\n&quot;
++
++#: ../userdrake:59
++#: ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;UserDrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Felhasználók és csoportok betöltése...&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageia felhasználókezelő eszköz&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;/A vendég (guest) felhasználó _telepítése&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;/A vendég (guest) felhasználó _eltávolítása&quot;
++
++#: ../userdrake:101
++#: ../userdrake:102
++#: ../userdrake:103
++#: ../userdrake:114
++#: ../userdrake:115
++#: ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/Mű_veletek&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/Mó_dosítás&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Törlés&quot;
++
++#: ../userdrake:104
++#: ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/Beá_llítások&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/A r_endszerfelhasználók kiszűrése&quot;
++
++#: ../userdrake:109
++#: ../userdrake:110
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Fájl&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/F_rissítés&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Kilépés&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/Új _felhasználó&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Új _csoport&quot;
++
++#: ../userdrake:125
++#: ../userdrake:126
++#: ../userdrake:127
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Segítség&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Hibabejelentés&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/Név_jegy...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Keresés:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Szűrő alkalmazása&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Felhasználók&quot;
++
++#: ../userdrake:162
++#: ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Csoportok&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Felhasználók és csoportok&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Felhasználónév&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Felh.-azonosító&quot;
++
++#: ../userdrake:186
++#: ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Elsődleges csoport&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Teljes név&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Parancsértelmező&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Saját könyvtár&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Állapot&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Csoportnév&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Csoportazonosító&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;A csoport tagjai&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Új felhasználó&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Új felhasználó létrehozása&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Új csoport&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Új csoport létrehozása&quot;
++
++#: ../userdrake:198
++#: ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Módosítás&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;A kijelölt sor szerkesztése&quot;
++
++#: ../userdrake:199
++#: ../userdrake:674
++#: ../userdrake:707
++#: ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Törlés&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;A kijelölt sor törlése&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Frissítés&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;A lista frissítése&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Zárolt&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Lejárt&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Kattintson az ikonra annak megváltoztatásához&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Új felhasználó létrehozása&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Saját könyvtár létrehozása&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;A saját könyvtár: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Privát csoport létrehozása a felhasználóhoz&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;A felhasználóazonosító megadása&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Már létezik ilyen nevű felhasználó, válasszon más nevet.&quot;
++
++#: ../userdrake:419
++#: ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;A jelszavak nem egyeznek meg&quot;
++
++#: ../userdrake:422
++#: ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;A megadott jelszó túlságosan egyszerű. \n&quot;
++&quot; Legalább 7 karakter hosszú jelszót érdemes választani.&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;A felhasználó azonosítója kisebb 500-nál&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;500-nál kisebb azonosítójú felhasználót nem ajánlott létrehozni.\n&quot;
++&quot; Biztosan ezt szeretné?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;%s hozzáadása a 'users' nevű csoporthoz&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Új csoport létrehozása: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;%s felhasználó felvétele&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Importálási varázsló&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;Do you want to run the migration wizard in order to import Windows documents and settings in your Mageia distribution?&quot;
++msgstr &quot;Szeretné elindítani az importálási varázslót, amellyel áthozhatja windowsos dokumentumait és beállításait a Mageia rendszerbe?&quot;
++
++#: ../userdrake:484
++#: ../userdrake:528
++#: ../userdrake:587
++#: ../userdrake:674
++#: ../userdrake:707
++#: ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Mégsem&quot;
++
++#: ../userdrake:484
++#: ../userdrake:521
++#: ../userdrake:587
++#: ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;OK&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;Felhasználóazonosító: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Válasszon csoportot&quot;
++
++#: ../userdrake:512
++#: ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Hozzáadás a már létező csoporthoz&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Hozzáadás a 'users' nevű csoporthoz&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Már létezik ilyen nevű csoport. Mit szeretne tenni?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Új csoport létrehozása&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;A csoportazonosító megadása&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Ilyen nevű csoport már létezik, válasszon más nevet.&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; A csoportazonosító kisebb 500-nál&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;500-nál kisebb azonosítójú csoportot nem ajánlott létrehozni.\n&quot;
++&quot; Biztosan ezt szeretné?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;%s csoport felvétele&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;Csoportazonosító: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Törlésre kerüljenek a fájlok?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;\&quot;%s\&quot; felhasználó törlése\n&quot;
++&quot;A következők is végre lesznek hajtva:\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Saját könyvtár törlése: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Postaláda törlése: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;%s felhasználó eltávolítása&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Valóban törölni kívánja a(z) %s csoportot?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;A(z) %s csoport a(z) %s felhasználó elsődleges csoportja.\n&quot;
++&quot; Először a felhasználót kell törölni&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;%s csoport eltávolítása&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Teljes név:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Bejelentkezési név:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Jelszó:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Jelszó (még egyszer):&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Parancsértelmező:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Csoportnév:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Legalább egy csoportot ki kell választani&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Adja meg a felhasználónév lejárásának dátumát\n&quot;
++&quot; (év, hónap, nap) &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;A lejárattal kapcsolatos összes mezőt ki kell tölteni\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;A(z) '%s' felhasználónév nem távolítható el az elsődleges csoportjából&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Saját könyvtár:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Felhasználói adatok&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;A felhasználónevek lejárásának bekapcsolása&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;A lejárás dátuma (ÉÉÉÉ-HH-NN):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;A felhasználónév zárolása&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;A felhasználó jellemzői&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;A legutóbbi jelszóváltoztatás dátuma: &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;A jelszó lejárásának bekapcsolása&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Jelszómódosítás legkorábban ennyi nap múlva:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Jelszómódosítás legkésőbb ennyi nap múlva:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Figyelmeztetés a jelszómódosításra ennyi nappal korábban:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;A felhasználónév letiltása ennyi nap elteltével:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;A jelszó jellemzői&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Válassza ki, hogy a felhasználó mely csoportokhoz tartozzon:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;A csoport adatai&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Válassza ki, mely felhasználókat szeretné a csoporthoz adni:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;A csoport felhasználói&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Csoportok / felhasználók szerkesztése&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Hiba lépett fel:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Bezárás&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Copyright (C) %s, Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Felhasználókezelés&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Arpad Biro &lt;biro.arpad gmail&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;A 'név' mező nem lehet üres&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;A névben csak angol kisbetűk, számjegyek, a '-' és az '_' karakterek szerepelhetnek&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;A megadott név túl hosszú&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Hiba történt&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;ismeretlen hiba&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Hiba \&quot;%s\&quot; létrehozásakor: %s&quot;
+
+<a id="userdrake2tags1133pohypo">Added: userdrake2/tags/1.13.3/po/hy.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/hy.po (rev 0)
++++ userdrake2/tags/1.13.3/po/hy.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,770 @@
++# Copyright (C) YEAR Free Software Foundation, Inc.
++# FIRST AUTHOR &lt;EMAIL@ADDRESS&gt;, YEAR.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: 1\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2004-03-16 02:28+0300\n&quot;
++&quot;Last-Translator: Artyom Abgaryan &lt;tyoma@freenet.am&gt;\n&quot;
++&quot;Language-Team: Arm &lt;tyoma@freenet.am&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=utf-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=n &gt; 1;\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, fuzzy, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Հեռացնում եմ %s օգտագործողին&quot;
++
++#: ../USER/USER.xs:490
++#, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:582
++#, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Բեռնավորում եմ Գործածողների և Խմբերի ցանկը... Սպասեք&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageia Գործածողների Կառավարման Գործիք&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Գործողություններ&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Խմբագրում&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Ջնջել&quot;
++
++# ԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾ
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Օպցիաներ&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Ֆիլտրել համակարգի օգտագործողներին&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Ֆայլ&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Թարմացնել&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Անջատել&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Ավելացնել Օգտագործող&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Ավելացնել _Խումբ&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Օգնություն&quot;
++
++# ԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾ
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Սխալի զեկուցում&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Ընդհանուր...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Փնտրել:&quot;
++
++# :)
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Կիրառել զտիչ&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Օգտագործողներ&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;խմբեր&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Օգտագործողի անուն&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Օգտագործողի ID&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Գլխավոր խումբ&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Անունը ամբողջությամբ&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Մուտքի միջավայր&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Տնային թղթապանակ&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Վիճակ&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Խմբի անուն&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Խմբի ID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Անդամների խումբ&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Ավելացնել օգտագործող&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Ավելացնել օգտագործողին համակարգին&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Ավելացնել խումբ&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Ավելացնել խումբը համակարգին&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Խմբագրել&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Խմբագրել ընտրված տողը&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Ջնջել&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Ջնջել ընտրված տողը&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Թարմացնել&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Թարմացնել ցուցակը&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Փակված է&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Ժամկերը լրացել է&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Սեղմեք նկարի վրա այն փոփոխելու համար&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Ստեղծել նոր օգտագոծող&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Ստեղծել տնային թղթապանակ&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Տնային թղթապանակ:&quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Ստեղծել առանձին խումբ օգտագործողի համար&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Նշել օգտագործողի ID-ն ձեռքով&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Օգտագործողը գոյություն ունի, ընտրեք մեկ այլ օգտագործողի անուն&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Գաղտնագրի անհամապատասխանություն&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Գաղտնագիրը շատ հասարակ է: \n&quot;
++&quot; Լավ գաղտնագիրը պետք է պարունակի ավելի քան վեց նիշ&quot;
++
++# ԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾ
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Օգտագործողի Uid-ը &lt; 500&quot;
++
++# ԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾ
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Օգտագործողի ստեղծում 500-ից պակաս UID-ով խորհուրդ չի տրվում:\n&quot;
++&quot;Դուք համոզվա՞ծ եք, որ ուզում եք անել այդ\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Տեղադրում եմ %s - ին 'օգտագործողներ' խմբում&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Ստեղծում եմ նոր խումբ: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Ավելագնում եմ %s օգտագործողին&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Հրաժարվել&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Լավ&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Ընտրեք խումբը&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Ավելագնել գոյություն ունեցող խմբին&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Ավելագնել 'օգտագործողներ' խմբին&quot;
++
++# ԾԾԾԾԾԾԾԾԾԾ
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Խումբ այդպիսի անունով գոյություն ունի: Ին՞չ եք ուզում անել&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Ստեղծել նոր խումբ&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Նշել խմբի ID ձեռքով&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Խումբը գոյություն ունի, ընտրեք խմբի մեկ այլ անուն&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;Խմբի GID-ը &lt; 500&quot;
++
++# Նոր ջան մի հատ նայի ես ինչ եմ արե :)
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Ստեղծել խմբեր 500-ից փոքր GID-ով խորհուրդ չի տրվում:\n&quot;
++&quot;Դուք համոզվա՞ծ եք, որ ուզում եք անել այդ\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Ավելացնում եմ %s խումբը&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Ջնջել ֆայլերը թե ոչ&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Ջնջում եմ %s օգտագործողին\n&quot;
++&quot; Նաև կատարվում եմ հետևյալ գործողությունները\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Ջնջել Տնային %s թղթապանակը&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Ջնջել փոստարկղը :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Հեռացնում եմ %s օգտագործողին&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Դուք իսկապես ուզում եք ջնջել %s խումբը&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s-ը գլխավոր խումբ է %s օտագորողի համար\n&quot;
++&quot; Սկզբից հեռացրեք օգտագործողին&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Հեռացնում եմ %s խումբը&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Անունը ամբողջությամբ:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Մուտքանուն:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Գաղտնագիր:&quot;
++
++# ԾԾԾԾԾԾԾԾԾԾԾԾԾԾ
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Գրեք կրկին գաղտնագիրը&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Մուտքի միջավայր:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Խմբի անուն:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Ընտրեք գոնե մեկ խումբ օգտագործողի համար&quot;
++
++# ԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾ
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Նշեք հաշիվը փակելու \n&quot;
++&quot;Տարին,Ամիսը և Օրը&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Լրացրեք բոլոր դաշտերը գաղտնագրի ժամկետի համար\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Դուք չեք կարող հեռացնել '%s' օգտագործողին նրա գլխավոր խմբից&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Տուն:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Օգտագործողի տվյալներ&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Միացնել հաշվի ժամկետի լրացումը&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Հաշվի ժանմկետը լրանում է (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Փակել օգտագործողի հաշիվը&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Հաշվի տվյալներ&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Օգտագործողը վերջին անգամ գաղտնաբառը փոխել է:&quot;
++
++# ԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾ
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Միացնել գաղտնագրի ժամկետի լրացումը&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Քանի օր հետո թույլատրել փոփոխությունները:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Քանի օր հետո պահանջել փոփոխություն:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;&quot;
++&quot;Քանի օրվա ընթացքում նախօրոք զգուշացնել\n&quot;
++&quot; փոփոխությունների համար :&quot;
++
++# ԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾԾ
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Օրերի քանակը մինչ հաշվի անջատումը:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Գաղտնաբառի Տվյալներ&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Ընտրեք խումբը, որի անդամ պետք է լինի օգտագործողը:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Խմբի Տվյալներ&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Ընտրեք օգտագործողներին, որոնք վայելելու են այս խումբը&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Խմբի օգտագործողներ&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Խմբագրել Խմերը/Օգտագործողներին&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Փակել&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Օգտագործողների կառավարում&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Անվան դաշտը դատարկ է, գրեք որևէ անուն&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++&quot;Անունը կարող է պարունակի միայն փոքրատառ լատիներեն տառեր, թվեր, `-' և `_' &quot;
++&quot;նշաններ&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Անունը շատ երկար է&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Սխալ&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Հեռացնում եմ %s օգտագործողին&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Հեղինակներ.&quot;
++
++#~ msgid &quot;Choice&quot;
++#~ msgstr &quot;Ընտրություն&quot;
++
++#~ msgid &quot;Yes&quot;
++#~ msgstr &quot;Այո&quot;
++
++#~ msgid &quot;No&quot;
++#~ msgstr &quot;Ոչ&quot;
+
+<a id="userdrake2tags1133poidpo">Added: userdrake2/tags/1.13.3/po/id.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/id.po (rev 0)
++++ userdrake2/tags/1.13.3/po/id.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,1168 @@
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/id.php3
++#
++# UserDrake Bahasa Indonesia
++# Copyright (C) 2001 Free Software Foundation, Inc.
++# Budi Rachmanto &lt;rac@linux-mandrake.com&gt;, 2001, 2002, 2003.
++# Willy Sudiarto Raharjo &lt;willysr@gmail.com&gt;, 2004 - 2005.
++# Erwien Samantha &lt;erwiensamantha@gmail.com&gt;, 2005.
++# Bayu Artanto &lt;bayuart@yahoo.com&gt;, 2005.
++# Ahmad Ramadhana &lt;ahmad_ramadhana@yahoo.com.sg&gt;, 2005.
++# Firdaus &lt;dausnux@gmail.com&gt;, 2005.
++# Sofian &lt;sofianhanafi@yahoo.com&gt;, 2005.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake2\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2006-03-21 18:36+0700\n&quot;
++&quot;Last-Translator: Willy Sudiarto Raharjo &lt;willysr@gmail.com&gt;\n&quot;
++&quot;Language-Team: Indonesia &lt;mdk-id@yahoogroups.com&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=utf-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=1; plural=0;\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Kesalahan membaca `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Kesalahan menciptakan `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Kesalahan menghapus `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Kesalahan membuat spool mail.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Kesalahan membuat spool mail.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Kesalahan membuat spool mail.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;kesalahan yang tidak diketahui&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Kesalahan membuat spool mail.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Kesalahan menghapus spool mail.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Memuat Pengguna dan Grup... Harap tunggu&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Perkakas Manajemen Pengguna Mageia&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Aksi&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Edit&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Hapus&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Opsi&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Saring pengguna sistem&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_File&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Penyegaran&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Keluar&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;K&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/T_ambah Pengguna&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Tambah _Grup&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Bantuan&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Laporkan Kesalahan&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Tentang...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Cari:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Terapkan filter&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Pengguna&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Grup&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Pengguna dan grup&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Nama Pengguna&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ID Pengguna&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Grup Utama&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Nama Lengkap&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Login Shell&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Direktori Rumah&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Status&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Nama Grup&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ID Grup&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Anggota Grup&quot;
++
++# broken into two lines to avoid too large a button
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;&quot;
++&quot;Tambah\n&quot;
++&quot;Pengguna&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Tambah pengguna ke sistem&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Tambah Grup&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Tambah grup ke sistem&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Edit&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Edit baris terpilih&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Hapus&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Hapus baris terpilih&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Pembaruan&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Pembaruan daftar&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Terkunci&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Kadaluarsa&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Klik ikon untuk mengubahnya&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Buat Pengguna Baru&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Buat Direktori Rumah&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Direktori Rumah:&quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Buat grup privat untuk pengguna&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Tentukan ID pengguna secara manual&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Nama ini sudah dipakai, pilihlah nama lain&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Katasandi Tidak Cocok&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Katasandi terlalu mudah.\n&quot;
++&quot; Katasandi yang baik harus lebih dari 6 karakter&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Uid pengguna &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Membuat pengguna dengan UID kurang dari 500 tidak disarankan.\n&quot;
++&quot; Apakah Anda yakin ingin melakukannya?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Menambahkan %s pada grup 'pengguna'&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Membuat grup baru: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Menambahkan pengguna: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Batal&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Ok&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Pilih Grup&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Tambahkan pada grup yang telah ada&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Tambahkan pada grup 'pengguna'&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Grup dengan nama ini sudah ada. Apa yang ingin Anda lakukan?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Buat Grup Baru&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Tentukan ID grup secara manual&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Grup sudah ada, pilihlah Nama Grup lain&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; Gid grup &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Membuat grup dengan GID kurang dari 500 tidak disarankan.\n&quot;
++&quot; Apakah Anda yakin ingin melakukannya?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Menambahkan grup: %s&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Hapus file atau tidak?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Menghapus pengguna %s\n&quot;
++&quot; Juga melakukan aksi berikut\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Hapus Direktori rumah: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Hapus Kotaksurat: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Menghapus pengguna: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Apakah Anda ingin menghapus grup %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s adalah grup utama pengguna %s\n&quot;
++&quot; Hapus dulu pengguna&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Menghapus grup: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Nama Lengkap:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Login:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Katasandi:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Konfirmasi Katasandi:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Login Shell:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Nama Grup:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Pilihlah setidaknya satu grup untuk pengguna&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Tentukan Tahun, Bulan dan Hari\n&quot;
++&quot; untuk Kadaluarsa Account&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Isi semua kolom pada umur katasandi\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Anda tidak dapat menghapus pengguna '%s' dari grup utama mereka&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Rumah:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Data Pengguna&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Aktifkan tanggal kadaluarsa account&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Account kadaluarsa (MM-DD-YYYY):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Kunci Account Pengguna&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Info Account&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Katasandi diubah terakhir pada : &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Aktifkan Kadaluarsa Katasandi&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Jumlah hari sebelum perubahan diizinkan:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Jumlah hari sebelum perubahan dibutuhkan:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Jumlah hari peringatan sebelum perubahan:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Jumlah hari sebelum account non-aktif:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Informasi Katasandi&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Pilihlah grup yang akan digunakan pengguna:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Grup Data&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Pilih pengguna untuk tergabung dengan grup ini :&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Grup Pengguna&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Edit Grup / Pengguna&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Terjadi kesalahan&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Tutup&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Hak cipta (C) %s oleh Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Manajemen Pengguna&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Willy Sudiarto Raharjo &lt;willysr@gmail.com&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Kolom nama kosong, silahkan tuliskan satu nama&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;Nama harus berisi hanya huruf kecil, angka, `-' dan `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Nama terlalu panjang&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Kesalahan&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;kesalahan yang tidak diketahui&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Kesalahan menciptakan `%s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Penulis: &quot;
++
++#~ msgid &quot;Yes&quot;
++#~ msgstr &quot;Ya&quot;
++
++#~ msgid &quot;No&quot;
++#~ msgstr &quot;Tidak&quot;
++
++#~ msgid &quot;Delete files or not&quot;
++#~ msgstr &quot;Hapus file atau tidak&quot;
++
++#~ msgid &quot;Warning : Deleting User&quot;
++#~ msgstr &quot;Peringatan : Menghapus Pengguna&quot;
++
++#~ msgid &quot;Warning : Deleting Group&quot;
++#~ msgstr &quot;Peringatan : Menghapus Grup&quot;
++
++#~ msgid &quot;Generic help on userdrake&quot;
++#~ msgstr &quot;Bantuan Generik pada userdrake&quot;
++
++#~ msgid &quot;Help&quot;
++#~ msgstr &quot;Bantuan&quot;
++
++#~ msgid &quot;Delete User&quot;
++#~ msgstr &quot;Hapus Pengguna&quot;
++
++#~ msgid &quot; Remove Home Directory&quot;
++#~ msgstr &quot; Hapus Direktori Rumah&quot;
++
++#~ msgid &quot;Do you want to delete the user's home directory and mail spool?&quot;
++#~ msgstr &quot;Anda ingin menghapus direktori rumah dan spool mail pengguna?&quot;
++
++#~ msgid &quot;/Filter system users&quot;
++#~ msgstr &quot;/Saring pengguna sistem&quot;
++
++#~ msgid &quot;/Options&quot;
++#~ msgstr &quot;/Opsi&quot;
++
++#~ msgid &quot;/Actions&quot;
++#~ msgstr &quot;/Aksi&quot;
++
++#~ msgid &quot;/Edit&quot;
++#~ msgstr &quot;/Edit&quot;
++
++#~ msgid &quot;/Delete&quot;
++#~ msgstr &quot;/Hapus&quot;
++
++#~ msgid &quot;Reload&quot;
++#~ msgstr &quot;Muat Ulang&quot;
++
++#~ msgid &quot;Save&quot;
++#~ msgstr &quot;Simpan&quot;
++
++#~ msgid &quot;Exit&quot;
++#~ msgstr &quot;Keluar&quot;
++
++#~ msgid &quot;Settings&quot;
++#~ msgstr &quot;Setting&quot;
++
++#~ msgid &quot;Show tools bar&quot;
++#~ msgstr &quot;Tampilkan tools bar&quot;
++
++#~ msgid &quot;View users&quot;
++#~ msgstr &quot;Lihat pengguna&quot;
++
++#~ msgid &quot;Preferences&quot;
++#~ msgstr &quot;Preferensi&quot;
++
++#~ msgid &quot;Ldap Server&quot;
++#~ msgstr &quot;Server LDAP&quot;
++
++#~ msgid &quot;Save change&quot;
++#~ msgstr &quot;Simpan perubahan&quot;
++
++#~ msgid &quot;Add&quot;
++#~ msgstr &quot;Tambah&quot;
++
++#~ msgid &quot;Edit user(s)&quot;
++#~ msgstr &quot;Edit pengguna&quot;
++
++#~ msgid &quot;Remove&quot;
++#~ msgstr &quot;Hapus&quot;
++
++#~ msgid &quot;Edit group(s)&quot;
++#~ msgstr &quot;Edit grup&quot;
++
++#~ msgid &quot;User id&quot;
++#~ msgstr &quot;ID pengguna&quot;
++
++#~ msgid &quot;Group id&quot;
++#~ msgstr &quot;ID grup&quot;
++
++#~ msgid &quot;Comments&quot;
++#~ msgstr &quot;Komentar&quot;
++
++#~ msgid &quot;Shell&quot;
++#~ msgstr &quot;Shell&quot;
++
++#~ msgid &quot;name&quot;
++#~ msgstr &quot;nama&quot;
++
++#~ msgid &quot;gid&quot;
++#~ msgstr &quot;gid&quot;
++
++#~ msgid &quot;passwd&quot;
++#~ msgstr &quot;passwd&quot;
++
++#~ msgid &quot;users&quot;
++#~ msgstr &quot;pengguna&quot;
++
++#~ msgid &quot;Parameters&quot;
++#~ msgstr &quot;Parameter&quot;
++
++#~ msgid &quot;General option&quot;
++#~ msgstr &quot;Opsi umum&quot;
++
++#~ msgid &quot;Edit accounts on a LDAP directory&quot;
++#~ msgstr &quot;Edit account pada direktori LDAP&quot;
++
++#~ msgid &quot;Active autologin support&quot;
++#~ msgstr &quot;Dukungan autologin aktif&quot;
++
++#~ msgid &quot;User creation&quot;
++#~ msgstr &quot;Pembuatan pengguna&quot;
++
++#~ msgid &quot;Default shell:&quot;
++#~ msgstr &quot;Shell standar:&quot;
++
++#~ msgid &quot;Default home dir:&quot;
++#~ msgstr &quot;Direktori rumah standar:&quot;
++
++#~ msgid &quot;Default face:&quot;
++#~ msgstr &quot;Muka standar:&quot;
++
++#~ msgid &quot;Default group:&quot;
++#~ msgstr &quot;Grup standar:&quot;
++
++#~ msgid &quot;General&quot;
++#~ msgstr &quot;Umum&quot;
++
++#~ msgid &quot;Don't show user with id less than 500&quot;
++#~ msgstr &quot;Jangan tampilkan pengguna dengan id kurang dari 500&quot;
++
++#~ msgid &quot;User identifier&quot;
++#~ msgstr &quot;Identitas pengguna&quot;
++
++#~ msgid &quot;Default Group&quot;
++#~ msgstr &quot;Grup standar&quot;
++
++#~ msgid &quot;Groups list&quot;
++#~ msgstr &quot;Daftar grup&quot;
++
++#~ msgid &quot;Users View&quot;
++#~ msgstr &quot;Lihat Pengguna&quot;
++
++#~ msgid &quot;Group identifier&quot;
++#~ msgstr &quot;Identitas grup&quot;
++
++#~ msgid &quot;Groups View&quot;
++#~ msgstr &quot;Lihat Grup&quot;
++
++#~ msgid &quot;/bin/bash&quot;
++#~ msgstr &quot;/bin/bash&quot;
++
++#~ msgid &quot;uid:&quot;
++#~ msgstr &quot;uid:&quot;
++
++#~ msgid &quot;Comment:&quot;
++#~ msgstr &quot;Komentar:&quot;
++
++#~ msgid &quot;Shell:&quot;
++#~ msgstr &quot;Shell:&quot;
++
++#~ msgid &quot;Home dir:&quot;
++#~ msgstr &quot;Direktori rumah:&quot;
++
++#~ msgid &quot;passwd:&quot;
++#~ msgstr &quot;katasandi:&quot;
++
++#~ msgid &quot;Retype passwd:&quot;
++#~ msgstr &quot;Tulis ulang katasandi:&quot;
++
++#~ msgid &quot;Identity&quot;
++#~ msgstr &quot;Identitas&quot;
++
++#~ msgid &quot;Available groups&quot;
++#~ msgstr &quot;Grup yang tersedia&quot;
++
++#~ msgid &quot;Extended&quot;
++#~ msgstr &quot;Perluasan&quot;
++
++#~ msgid &quot;About UserDrake&quot;
++#~ msgstr &quot;Tentang UserDrake&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;Userdrake is an application to add and\n&quot;
++#~ &quot;delete users on the Mageia\n&quot;
++#~ &quot;distribution.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;Userdrake now support ldap directory\n&quot;
++#~ &quot;support conformed to rfc2307bis.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;This application is under the GPL\n&quot;
++#~ &quot;license and is delived without\n&quot;
++#~ &quot;any warranty.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;You can get support at : \n&quot;
++#~ &quot;http://www.mandrakeexpert.com/&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Userdrake adalah aplikasi untuk menambah dan menghapus\n&quot;
++#~ &quot;pengguna pada distribusi Mageia.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;Userdrake kini mendukung direktori ldap\n&quot;
++#~ &quot;sesuai rfc2307bis.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;Aplikasi ini berlisensi GPL\n&quot;
++#~ &quot;dan disebarluaskan tanpa garansi apapun.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;Anda dapat memperoleh layanan pada : \n&quot;
++#~ &quot;http://www.mandrakeexpert.com/&quot;
++
++#~ msgid &quot;Name:&quot;
++#~ msgstr &quot;Nama:&quot;
++
++#~ msgid &quot;gid:&quot;
++#~ msgstr &quot;gid:&quot;
++
++#~ msgid &quot;In group&quot;
++#~ msgstr &quot;Pada grup&quot;
++
++#~ msgid &quot;Not in group&quot;
++#~ msgstr &quot;Tidak ada pada grup&quot;
++
++#~ msgid &quot;Quit userdrake?&quot;
++#~ msgstr &quot;Keluar userdrake?&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;You have made changes\n&quot;
++#~ &quot;since the last save.\n&quot;
++#~ &quot;Do you really want to quit\n&quot;
++#~ &quot;userdrake?&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Anda telah melakukan perubahan\n&quot;
++#~ &quot;sejak penyimpanan terakhir.\n&quot;
++#~ &quot;Apakah Anda ingin keluar\n&quot;
++#~ &quot;dari userdrake?&quot;
++
++#~ msgid &quot;Enter new passwd&quot;
++#~ msgstr &quot;Masukkan katasandi baru&quot;
++
++#~ msgid &quot;new passwd:&quot;
++#~ msgstr &quot;katasandi baru:&quot;
++
++#~ msgid &quot;Change&quot;
++#~ msgstr &quot;Ubah&quot;
++
++#~ msgid &quot;Change face&quot;
++#~ msgstr &quot;Ubah muka&quot;
++
++#~ msgid &quot;Set passwd&quot;
++#~ msgstr &quot;Tentukan katasandi&quot;
++
++#~ msgid &quot;User autologin&quot;
++#~ msgstr &quot;Autologin Pengguna&quot;
++
++#~ msgid &quot;UserDrake - Error&quot;
++#~ msgstr &quot;UserDrake - Kesalahan&quot;
++
++#~ msgid &quot;couldn't find blue color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;tidak bisa mencari warna biru pada file /usr/lib/X11/rgb.txt&quot;
++
++#~ msgid &quot;Select the image to use&quot;
++#~ msgstr &quot;Pilih citra yang akan digunakan&quot;
++
++#~ msgid &quot;Custom...&quot;
++#~ msgstr &quot;Custom...&quot;
++
++#~ msgid &quot;couldn't find grey color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;tidak bisa mencari warna abu-abu pada file /usr/lib/X11/rgb.txt&quot;
++
++#~ msgid &quot;couldn't find black color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;tidak bisa mencari warna hitam pada file /usr/lib/X11/rgb.txt&quot;
++
++#~ msgid &quot;login empty&quot;
++#~ msgstr &quot;login kosong&quot;
++
++#~ msgid &quot;This login already exists on the system&quot;
++#~ msgstr &quot;Login ini telah terpakai&quot;
++
++#~ msgid &quot;The login is similar to a name's group&quot;
++#~ msgstr &quot;Login serupa dengan grup nama lain&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;User id already in use&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;ID pengguna sudah terpakai&quot;
++
++#~ msgid &quot;User id already in use&quot;
++#~ msgstr &quot;ID pengguna sudah terpakai&quot;
++
++#~ msgid &quot;name empty&quot;
++#~ msgstr &quot;nama kosong&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;Group id already in use&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;ID grup telah terpakai&quot;
++
++#~ msgid &quot;Group id already in use&quot;
++#~ msgstr &quot;ID grup telah terpakai&quot;
++
++#~ msgid &quot;Couldn't find pixmap file: %s&quot;
++#~ msgstr &quot;Tidak bisa mencari file pixmap: %s&quot;
++
++#~ msgid &quot;%s: the file %s is busy (%s present)\n&quot;
++#~ msgstr &quot;%s: file %s sibuk (ada %s)\n&quot;
++
++#~ msgid &quot;%s: can't link %s: %s\n&quot;
++#~ msgstr &quot;%s: gagal membuat link %s: %s\n&quot;
++
++#~ msgid &quot;%s: can't unlock %s: %s (your changes are still in %s)\n&quot;
++#~ msgstr &quot;%s: tidak bisa membuka %s: %s (perubahan tetap pada %s)\n&quot;
++
++#~ msgid &quot;Error in stat on tmp files when i try to unlock lib\n&quot;
++#~ msgstr &quot;Kesalahan dalam status file temporer saat mencoba membuka pustaka\n&quot;
++
++#~ msgid &quot;%s: no changes made\n&quot;
++#~ msgstr &quot;%s: tidak ada perubahan\n&quot;
++
++#~ msgid &quot;Select LDAP Directory&quot;
++#~ msgstr &quot;Pilih Direktori LDAP&quot;
++
++#~ msgid &quot;Server address:&quot;
++#~ msgstr &quot;Alamat server:&quot;
++
++#~ msgid &quot;Search base:&quot;
++#~ msgstr &quot;Basis pencarian:&quot;
++
++#~ msgid &quot;Bind DN:&quot;
++#~ msgstr &quot;Sambung ke DN:&quot;
++
++#~ msgid &quot;Connection Type :&quot;
++#~ msgstr &quot;Tipe koneksi :&quot;
++
++#~ msgid &quot;ssl&quot;
++#~ msgstr &quot;ssl&quot;
++
++#~ msgid &quot;Validate&quot;
++#~ msgstr &quot;Validasi&quot;
++
++#~ msgid &quot;Test&quot;
++#~ msgstr &quot;Tes&quot;
++
++#~ msgid &quot;cannot change ldap version to 3: %s&quot;
++#~ msgstr &quot;tidak bisa merubah versi ldap ke 3: %s&quot;
++
++#~ msgid &quot;cannot connect to the ldap server\n&quot;
++#~ msgstr &quot;tidak bisa terhubung dengan server ldap\n&quot;
++
++#~ msgid &quot;cannot bind to the ldap server, %d\n&quot;
++#~ msgstr &quot;tidak bisa tersambung dengan server ldap, %d\n&quot;
++
++#~ msgid &quot;Cannot bind to ldap server&quot;
++#~ msgstr &quot;Tidak bisa tersambung dengan server ldap&quot;
++
++#~ msgid &quot;cannot save because the cannot connect to the ldap server&quot;
++#~ msgstr &quot;tidak dapat disimpan karena tidak bisa terhubung ke server ldap&quot;
++
++#~ msgid &quot;cannot relock lib&quot;
++#~ msgstr &quot;tidak dapat mengunci ulang pustaka&quot;
++
++#~ msgid &quot;The passwords string aren't the same!&quot;
++#~ msgstr &quot;katasandi tidak sama!&quot;
++
++#~ msgid &quot;cannot launch UserDrake&quot;
++#~ msgstr &quot;tidak bisa meluncurkan UserDrake&quot;
++
++#~ msgid &quot;You must be root to use userdrake&quot;
++#~ msgstr &quot;Anda harus menjadi root untuk menggunakan userdrake&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;Cannot lock user lib,\n&quot;
++#~ &quot;file /etc/ptmp or /etc/gtmp exist&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Tidak bisa mengunci pustaka pengguna,\n&quot;
++#~ &quot;terdapat file /etc/ptmp atau /etc/gtmp&quot;
++
++#~ msgid &quot;What do you want to show in user list?&quot;
++#~ msgstr &quot;Apa yang ingin Anda tampilkan pada daftar pengguna?&quot;
++
++#~ msgid &quot;What do you want to show in group list?&quot;
++#~ msgstr &quot;Apa yang ingin Anda tampilkan pada daftar grup?&quot;
++
++#~ msgid &quot;/bin/ash&quot;
++#~ msgstr &quot;/bin/ash&quot;
++
++#~ msgid &quot;/bin/csh&quot;
++#~ msgstr &quot;/bin/csh&quot;
++
++#~ msgid &quot;/bin/zsh&quot;
++#~ msgstr &quot;/bin/zsh&quot;
+
+<a id="userdrake2tags1133poispo">Added: userdrake2/tags/1.13.3/po/is.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/is.po (rev 0)
++++ userdrake2/tags/1.13.3/po/is.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,754 @@
++# Icelandic translation of userdrake2.po
++# translation of userdrake-is.po to Icelandic
++# translation of userdrake.po to Icelandic
++# Copyright (C) 2003, 2005, 2009 Free Software Foundation, Inc.
++#
++# Pjetur G. Hjaltason &lt;pjetur@pjetur.net&gt;, 2003, 2005, 2009.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake2\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2009-04-08 23:53+0000\n&quot;
++&quot;Last-Translator: Pjetur G. Hjaltason &lt;pjetur@pjetur.net&gt;\n&quot;
++&quot;Language-Team: Icelandic &lt;kde-isl@molar.is&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Villa við lestur `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Villa við að búa til `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Villa við að eyða `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Villa við að búa til pósthólf.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Villa við að búa til pósthólf.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Villa við að búa til pósthólf.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;óþekkt villa&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Villa við að búa til pósthólf.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Villa við að eyða pósthólfi.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Hleð inn notendum og hópum... Augnablik... &quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageia Notandastjórnun&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Aðgerðir&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Sýsl&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Eyða&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Valkostir&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Sía kerfisnotendur&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Skrá&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Endurnýja&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Hætta&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Bæta við notanda&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Bæta við _Hópi&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Hjálp&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Senda villutilkynningu&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Um...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Leita:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Beita síu&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Notendur&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Hópar&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Notendur og hópar&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Notandanafn&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Notanda-númer (UID)&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Aðalhópur&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Fullt nafn&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Skel&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Heimamappa&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Staða&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Nafn hóps&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Hópnúmer (GID)&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Meðlimir hóps&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Bæta við notanda&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Bæta notanda við kerfið&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Bæta við hópi&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Bæta við hópi í kerfið&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Sýsl&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Sýsla með valda línu&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Eyða&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Eyða valinni línu&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Endurnýja&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Uppfæra lista&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Læst&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Útrunninn&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Smelltu á táknmyndina til að breyta&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Búa til nýja notanda&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Búa til heimasvæði&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Heimamappa: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Búa til einkahóp fyrir notandann&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Ákvarða sjálfur númer notanda&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Notandi þegar til, veldu annað notandanafn&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Lykilorð eru ekki eins&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Þetta lykilorð er of einfalt. \n&quot;
++&quot; Góð lykilorð ættu að vera &gt; 6 bókstafir&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Notandanúmer &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Ekki er mælt með að búa til notanda með notandanúmer (UID) minna en 500.\n&quot;
++&quot;Ert þú viss um að þú viljir gera þetta?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Setja %s í 'notanda' hóp&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Búa til nýjan hóp: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Bæta við notanda: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Flutnings-ráðgjafi&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;Vilt þú keyra flutnings-ráðgjafann til að flytja inn Windows skrár og &quot;
++&quot;uppsetningar yfir í Mageia dreifinguna þína?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Hætta við&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Í lagi&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Veldu hóp&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Bæta við hóp sem er til&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Bæta í 'notanda' hópinn&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Hópur með þessu nafni er þegar til. Hvað vilt þú gera?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Búa til nýjan hóp&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Ákvarða sjálfur númer hóps&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Hópur er þegar til, veldu annað hópnafn&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; Hópnúmer er &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Ekki er mælt með því að búa til hóp með hópnúmeri (GID) minna en 500.\n&quot;
++&quot; Ert þú viss um að þú viljir gera þetta?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Bæta við hóp: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Eyða skrám eða ekki?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Eyði notanda %s\n&quot;
++&quot; Framkvæma einnig eftirfarandi aðgerðir\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Eyða heimasvæði: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Eyða Pósthólfi: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Fjarlægi notanda: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Viltu í alvöru eyða hópi %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s er aðalhópur fyrir notanda %s\n&quot;
++&quot; Fjarlægðu notanda fyrst&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Fjarlægi hóp: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Fullt nafn:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Notandi:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Lykilorð:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Staðfestu lykilorð:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Skel:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Nafn hóps:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Veldu a.m.k. einn hóp fyrir notandann&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Tilgreindu Ár, mánuð og dag \n&quot;
++&quot; fyrir úreldingu aðkennis &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Fylltu í öll svæðin fyrir úreldingu lykilorðs\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Þú getur ekki fjarlægt notanda '%s' úr sínum aðalhóp&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Heima:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Gögn notanda&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Virkja auðkennis-úreldingu&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Auðkenni úreldist (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Læsa auðkenni notanda&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Auðkennis-upplýsingar&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Notandi breytti lykilorði þann: &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Virkja lykilorðs-úreldingu&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Dagar þar til breyting leyfð:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Dagar þar til breytingar krafist:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Aðvara um breytingu dögum áður:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Dagar áður en auðkenni óvirkt:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Lykilorðs-upplýsingar&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Veldu hópa sem notandinn verður meðlimur í:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Hópupplýsingar&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Veljið notendur í þennan hóp:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Notendur í hóp&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Sýsla með Hópa / Notendur&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Villa kom upp:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Loka&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Höfundaréttur (C) %s Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Notandastjórnun&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Pjetur G. Hjaltason &lt;pjetur@pjetur.net&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Nafnsvæði er autt, gefðu upp nafn&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;Nafnið má aðeins innihalda litla bókstafi, tölur `-' og `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Nafn er of langt&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Villa&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;óþekkt villa&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Villa við að búa til `%s': %s&quot;
+
+<a id="userdrake2tags1133poitpo">Added: userdrake2/tags/1.13.3/po/it.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/it.po (rev 0)
++++ userdrake2/tags/1.13.3/po/it.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,763 @@
++# translation of it.po to Italian
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/it.php3
++#
++# Copyright (C) 2000,2003, 2004, 2007, 2009 Free Software Foundation, Inc.
++# 8.0 Tech/Lang proofreading by Roberto Rosselli Del Turco
++#
++# Daniele Pighin &lt;daniele@dcs.it&gt;, 2000.
++# Roberto Rosselli Del Turco &lt;rosselli@ling.unipi.it&gt;, 2000,2003, 2004.
++# Andrea Celli &lt;a.celli@caltanet.it&gt;, 2001.
++# &lt;rosselli@ling.unipi.it&gt;, 2001.
++# Simone Riccio &lt;s.riccio@aeb-informatica.it&gt;, 2002.
++# Marco De Vitis &lt;mdv@spin.it&gt;, 2003.
++# Andrea Celli &lt;andrea.celli@libero.it&gt;, 2007, 2009.
++# Moreno Manzini &lt;moreno.mg@gmail.com&gt;, 2010.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: it\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2010-03-08 10:20+0100\n&quot;
++&quot;Last-Translator: Moreno Manzini &lt;moreno.mg@gmail.com&gt;\n&quot;
++&quot;Language-Team: Italian &lt;timl@frelist.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++&quot;X-Generator: Lokalize 1.0\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Errore nel leggere \&quot;%s\&quot;: %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Errore nel creare \&quot;%s\&quot;: %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Errore nel rimuovere \&quot;%s\&quot;: %s&quot;
++
++#: ../USER/USER.xs:490
++#, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Errore nella creazione dell'account: '%s'.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;Impossibile ottenere il valore dello Uid&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;Impossibile recuperare il valore&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Errore nella creazione della coda (spool) della posta.\n&quot;
++
++#: ../USER/USER.xs:582
++#, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;L'utente non può essere modificato: '%s'.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;L'utente non può essere eliminato: '%s'.\n&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;Errore durante l'impostazione della password: '%s'.\n&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;errore sconosciuto&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Errore durante la creazione del gruppo.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;Il gruppo non può essere modificato: '%s'.\n&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;Il gruppo non può essere modificato: '%s'.\n&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;Manca la cartella home per l'utente.\n&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;La cartella home non può essere eliminata: '%s'.\n&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Errore nel cancellare la coda (spool) della posta.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Attendere, prego... si stanno caricando gli utenti e i gruppi&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Strumento per la gestione degli utenti di Mageia&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;/_Attiva l'account guest&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;/_Rimuovi l'account guest&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Azioni&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Modifica&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Elimina&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Opzioni&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Filtra gli utenti di sistema&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_File&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Aggiorna&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Esci&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Aggiungi utente&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Aggiungi _gruppo&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Aiuto&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Segnala bug&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Informazioni su...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Cerca:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Applica filtro&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Utenti&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Gruppi&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Utenti e gruppi&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Nome utente&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ID utente&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Gruppo primario&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Nome completo&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Shell di login&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Directory home&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Stato&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Nome gruppo&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ID gruppo&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Membri del gruppo&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Aggiungi utente&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Aggiungi un utente al sistema&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Aggiungi gruppo&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Aggiungi un gruppo al sistema&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Modifica&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Modifica la riga selezionata&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Elimina&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Cancella la riga selezionata&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Aggiorna&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Aggiorna la lista&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Bloccato&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Scaduto&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Clicca sull'icona per cambiarla&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Crea nuovo utente&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Crea la directory home&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Directory home: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Crea un gruppo privato per l'utente&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Specifica manualmente l'ID utente&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Questo utente è già presente, scegli un altro nome&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;La password non corrisponde&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Questa password è troppo semplice.\n&quot;
++&quot;Una buona password dovrebbe essere lunga più di 6 caratteri.&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;UID dell'utente inferiore a 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;È sconsigliato creare un utente con UID inferiore a 500.\n&quot;
++&quot;Sei sicuro di volerlo fare?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Inserimento di %s nel gruppo \&quot;users\&quot;&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Creazione di un nuovo gruppo: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Aggiunta utente: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Procedura per le migrazioni&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;Vuoi utilizzare la procedura guidata per trasferire i documenti e le &quot;
++&quot;impostazioni Windows sulla tua installazione Mageia?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Annulla&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Ok&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Scegli gruppo&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Aggiungi al gruppo esistente&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Aggiungi al gruppo \&quot;users\&quot;&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Esiste già un gruppo con questo nome. Cosa vuoi fare?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Crea nuovo gruppo&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Specifica manualmente group ID&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Questo gruppo è già presente, scegli un altro nome&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;GID del gruppo inferiore a 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;È sconsigliato creare un gruppo con GID inferiore a 500.\n&quot;
++&quot;Sei sicuro di volerlo fare?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Aggiunta del gruppo: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Cancellare i file o no?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Cancellazione dell'utente %s.\n&quot;
++&quot;Saranno eseguite anche le seguenti azioni:\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Cancella la directory home: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Cancella la mailbox: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Rimozione dell'utente: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Vuoi davvero cancellare il gruppo %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s è il gruppo primario dell'utente %s.\n&quot;
++&quot;Devi prima rimuovere l'utente.&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Rimozione del gruppo: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Nome completo:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Login:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Password:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Conferma password:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Shell di login:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Nome gruppo:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Devi selezionare almeno un gruppo per l'utente&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Devi indicare l'anno, il mese e il giorno\n&quot;
++&quot;di scadenza dell'account.&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Devi riempire tutti i campi relativi alla scadenza della password\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Non puoi rimuovere l'utente \&quot;%s\&quot; dal suo gruppo primario&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Home:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Dati utente&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Abilita la scadenza dell'account&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;L'account scade il (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Blocca l'account dell'utente&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Informazioni account&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;L'utente ha cambiato la password in data: &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Abilita la scadenza della password&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Giorni prima che sia permesso il cambio:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Giorni prima che sia richiesto il cambio:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Giorni di avvertimento prima del cambio:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Giorni prima che l'account diventi inattivo:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Informazioni password&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Seleziona i gruppi di cui sarà membro l'utente:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Dati gruppo&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Seleziona gli utenti da inserire in questo gruppo:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Utenti del gruppo&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Modifica gruppi / utenti&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Si è verificato un errore:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Chiudi&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Copyright (C) %s di Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Gestione utenti&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Andrea Celli &lt;a.celli@caltanet.it&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Il campo del login è vuoto, devi inserire un nome.&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++&quot;Il nome può contenere soltanto lettere minuscole, numeri, \&quot;-\&quot; e \&quot;_\&quot;&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Il nome è troppo lungo&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Errore&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;errore sconosciuto&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Errore nel creare \&quot;%s\&quot;: %s&quot;
+
+<a id="userdrake2tags1133pojapo">Added: userdrake2/tags/1.13.3/po/ja.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/ja.po (rev 0)
++++ userdrake2/tags/1.13.3/po/ja.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,762 @@
++# translation of userdrake-ja.po to Japanese
++#
++# Latest versions of po files are at http://www.mandrivalinux.com/l10n/ja.php3
++#
++# Japanese translation for userdrake
++# Copyright (C) 1999 Mandriva
++# YAMAGATA Hiroo &lt;hiyori13@alum.mit.edu&gt;, 2001.
++# Budi Rachmanto &lt;rac@mandrivalinux.org&gt;, 2001.
++# UTUMI Hirosi &lt;utuhiro78@yahoo.co.jp&gt;, 2003, 2004.
++# BANDO Yukiko &lt;ybando@k6.dion.ne.jp&gt;, 2004-2007.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-ja\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2007-09-24 23:00+0900\n&quot;
++&quot;Last-Translator: BANDO Yukiko &lt;ybando@k6.dion.ne.jp&gt;\n&quot;
++&quot;Language-Team: Japanese &lt;cooker-i18n@mandrivalinux.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.3\n&quot;
++&quot;Plural-Forms: nplurals=1; plural=0;\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;%s の読み込みエラー: %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;%s の作成エラー: %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;%s の削除エラー: %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;メールスプールの作成エラー\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;メールスプールの作成エラー\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;メールスプールの作成エラー\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;未知のエラー&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;メールスプールの作成エラー\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;メールスプールの削除エラー\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;ユーザとグループを読み込んでいます。お待ちください...&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageia ユーザ管理ツール&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/アクション(_A)&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/編集(_E)&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/削除(_D)&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/オプション(_O)&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/システムユーザをフィルタ(_F)&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/ファイル(_F)&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/更新(_R)&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/終了(_Q)&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/ユーザを追加(_A)&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/グループを追加(_G)&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/ヘルプ(_H)&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/バグを報告(_R)&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/情報(_A)&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;検索:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;フィルタを適用&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;ユーザ&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;グループ&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;ユーザとグループ&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;ユーザ名&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ユーザ ID&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;プライマリグループ&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;フルネーム&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;ログインシェル&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;ホームディレクトリ&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;状態&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;グループ名&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;グループ ID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;グループのメンバー&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;ユーザを追加&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;システムにユーザを追加&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;グループを追加&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;システムにグループを追加&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;編集&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;選択したユーザ/グループを編集&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;削除&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;選択したユーザ/グループを削除&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;更新&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;リストを更新&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;ロック中&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;期限切れ&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;変更するにはアイコンをクリック&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;新規ユーザを作成&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;ホームディレクトリを作成&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;ホームディレクトリ: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;ユーザのプライベートグループを作成&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;ユーザ ID を手動で指定&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;この名前は既に使われています。別のユーザ名を選んでください。&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;パスワードが合っていません&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;パスワードが短すぎます。 \n&quot;
++&quot;パスワードは 7 文字以上にしてください。&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;ユーザの UID が 500 未満です&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;UID が 500 未満のユーザを作成するのはお勧めできません。\n&quot;
++&quot;本当に作成しますか?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;%s をユーザグループに追加&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;新規グループを作成: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;ユーザを追加: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;移行ウィザード&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;移行ウィザードを使って Windows のドキュメントと設定を Mageia にイン&quot;
++&quot;ポートしますか?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;キャンセル&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Ok&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;グループを選択&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;既存のグループに追加&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;ユーザグループに追加&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;このグループ名は既に存在します。どうしますか?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;新規グループを作成&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;グループ ID を手動で指定&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;このグループは既に存在します。別のグループ名を選んでください。&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; グループの GID が 500 未満です&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;GID が 500 未満のグループを作成するのはお勧めできません。\n&quot;
++&quot; 本当に作成しますか?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;グループを追加: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;ファイルを削除しますか?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;ユーザ %s を削除\n&quot;
++&quot;さらに以下を実行\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;ホームディレクトリを削除: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;メールボックスを削除: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;ユーザを削除: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;グループ %s を削除しますか?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s はユーザ %s のプライマリグループです。\n&quot;
++&quot;まずユーザを削除してください。&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;グループを削除: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;フルネーム:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;ログイン:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;パスワード:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;パスワードを確認:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;ログインシェル:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;グループ名:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;ユーザ 1 人につき少なくとも 1 つのグループを選んでください&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;アカウントの期限に \n&quot;
++&quot;年・月・日を指定してください&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;パスワード期限のすべての欄を埋めてください\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;ユーザ %s をプライマリグループから削除することはできません&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;ホーム:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;ユーザのデータ&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;アカウントの有効期限を設定する&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;アカウントの期限 (年-月-日):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;ユーザのアカウントをロック&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;アカウントの情報&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;ユーザパスワードの最終変更日 : &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;パスワードの有効期限を設定する&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;変更を許可するまでの日数:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;変更を要求するまでの日数:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;変更を要求する何日前に警告するか:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;アカウントを無効にするまでの日数:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;パスワードの情報&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;ユーザが所属するグループを選んでください:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;グループのデータ&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;このグループに加えるユーザを選んでください :&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;グループユーザ&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;グループ/ユーザを編集&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;エラーが発生しました&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;閉じる&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Copyright (C) %s by Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;ユーザの管理&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++&quot;UTUMI Hirosi &lt;utuhiro78@yahoo.co.jp&gt;\n&quot;
++&quot;Yukiko BANDO &lt;ybando@k6.dion.ne.jp&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;名前が入力されていません。入力してください。&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++&quot;名前にはアルファベットの小文字、数字、ハイフン (-)、アンダースコア (_) 以外は&quot;
++&quot;使えません&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;名前が長すぎます&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;エラー&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;未知のエラー&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;%s の作成エラー: %s&quot;
+
+<a id="userdrake2tags1133pokapo">Added: userdrake2/tags/1.13.3/po/ka.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/ka.po (rev 0)
++++ userdrake2/tags/1.13.3/po/ka.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,757 @@
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/ka.php3
++#
++# Georgian translation of UserDrake
++# Copyright (C) 2000-2001 Mandriva S.A.
++# Aiet Kolkhi &lt;aiet@gmx.net&gt;, 2001.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake2\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2004-09-26 04:45+0400\n&quot;
++&quot;Last-Translator: Aiet Kolkhi &lt;aiet@qartuli.net&gt;\n&quot;
++&quot;Language-Team: Georgian &lt;aiet@qartuli.com&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=1; plural=0\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;შეცდომა `%s'-ის კითხვისას: %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;შეცდომა `%s'-ის შექმნისას: %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;შეცდომა `%s'-ის წაშლისას: %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;შეცდომა mail spool-ის შექმნისას.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;შეცდომა mail spool-ის შექმნისას.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;შეცდომა mail spool-ის შექმნისას.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;უცნობი შეცდომა&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;შეცდომა mail spool-ის შექმნისას.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;შეცდომა mail spool-ის შექმნისას.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;ვიძახებ მომხმარებლებს და ჯგუფებს... გთხოვთ მოითმინოთ&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageia-ის მენეჯმენტის ხელსაწყო&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_მოქმედებები&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_შეცვლა&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_წაშლა&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_თვისებები&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_გაფილტრე სისტემური მომხმარებლები&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_ფაილი&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_განახლება&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_დამთავრება&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_მომხმარებლის დამატება&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/ჯ_გუფის დამატება&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_დახმარება&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_ხარვეზის შეტყობინება&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_შესახებ...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;მოძებნა:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;ფილტრის გააქტიურება&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;მომხმარებლები&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;ჯგუფ(ებ)ი&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;მომხმარებლები და ჯგუფები&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;მომხმარებლის სახელი&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;მომხმარებლის ID&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;ძირითადი ჯგუფი&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;სრული სახელი&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;შესასვლელი გარსი&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;პირადი (Home) დირექტორია&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;სტატუსი&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;ჯგუფის სახელი&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ჯგუფის ID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;ჯგუფის წევრები&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;მომხმარებლის დამატება&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;მომხმარებლის სისტემაში დამატება&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;ჯგუფის დამატება&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;ჯგუფის სისტემაში დამატება&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;დამუშავება&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;ამორჩეული რიგის შეცვლა&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;წაშლა&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;ამორჩეული რიგის წაშლა&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;განახლება&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;სიის განახლება&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;ჩაკეტილია&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;ვადაგასულია&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;დააწკაპუნეტ სიმბოლოზე შესაცვლელად&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;ახალი მომხმარებლის შექმნა&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Home დირექტორიის შექმნა&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;პირადი (home) დირექტორია:&quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;შექმენი საკუთარი ჯგუფი მომხმარებელს&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;მომხმარებლის ID-ს ხელით მითითება&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;მომხმარებელი უკვე არსებობს, გთხოვთ ამოირჩიოთ სხვა მომხმარებლის სახელი&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;პაროლები არ ემთხვევა&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;პაროლი მეტად მარტივია. \n&quot;
++&quot; კარგი პაროლები სულ ცოტა 6 სიმბოლოსგან უნდა შედგებოდეს&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;მომხმარებლის Uid ნაკლებია 500-ზე&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;მომხმარებლის შექმნა, რომლის UID ნაკლებია 500 არ არის რეკომენდირებული.\n&quot;
++&quot; დარწმუნებული ხართ, რომ გნებავთ ეს?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;ვსვამ %s-ს „მომხმარებლების“ ჯგუფში&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;ახალი ჯგუფის შექმნა: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;ვამატებ მომხმარებელს: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;სტოპ!&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;ო-ქეი&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;ჯგუფის ამორჩევა&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;არსებულ ჯგუფში დამატება&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;«მომხმარებლების» ჯგუფში დამატება&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;ჯგუფი ამ სახელით უკვე არსებობს. რისი გაკეთება გსურთ?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;ახალი ჯგუფის შექმნა&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;ჯგუფის ID-ს ხელით მითითება&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;ჯგუფის სახელი უკვე არსებობს, გთხოვთ ამოირჩიოთ სხვა ჯგუფის სახელი&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; ჯგუფის Gid ნაკლებია 500-ზე&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;ჯგუფის შექმნა, რომლის GID ნაკლებია 500 არ არის რეკომენდირებული.\n&quot;
++&quot; დარწმუნებული ხართ, რომ გნებავთ ეს?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;ვამატებ ჯგუფს: %s&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;წავშალო ფაილები თუ არა?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;ვშლი მომხმარებელს %s\n&quot;
++&quot; ასევე შეასრულე შემდეგი მოქმედებები\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Home დირექტორიის წაშლა: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;საფოსტო ყუთის წაშლა :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;მომხმარებლის წაშლა: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;მართლა გნებავთ ჯგუფ „%s“-ის წაშლა?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s გახლავთ ძირითადი ჯგუფი %s მომხმარებლისათვის\n&quot;
++&quot; ჯერ მომხმარებელი უნდა მოაშოროთ&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;ვაგდებ ჯგუფს: „%s“&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;სრული სახელი:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;მომხმარებელი:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;პაროლი:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;გაიმეორეთ პაროლი:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;შესასვლელი გარსი:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;ჯგუფის სახელი:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;გთხოვთ მომხმარებლისათვის სულ ცოტა ერთი ჯგუფი მაინც ამოირჩიოთ&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;გთხოვთ მიუთითოთ წელი, თვე და რიცხვი \n&quot;
++&quot; ანგარიშის ვადის გასვლისათვის&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;გთხოვთ პაროლის ხანგრძლივობასთან დაკავშირებული ყველა ველი შეავსოთ\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;«%s» მომხმარებელს მათი ძირითადი ჯგუფიდან ვერ მოაშორებთ&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;პირადი უჯრა:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;მომხმარებლის მონაცემები&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;ანგარიშის იმპორტირება ა&amp;ნგარიშზე&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;ანგარიშს ვადა გაუვა (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;მომხმარებლის ანგარიშის ჩაკეტვა&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;ანგარიშის მონაცემები&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;მომხმარებელმა ბოლოს პაროლი შეცვალა:&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;დააწესე პაროლის მოქმედების ვადა&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;ნებადართულ ცვლილებამდე დარჩენილი დღეები :&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;აუცილებელ ცვლილებამდე დარჩენილი დღეები :&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;ცვლილებამდე გაფრთხილების დღეები :&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;დღეები, სანამ ანგარიში აქტიურობას დაკარგავს :&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;პაროლის მონაცემები&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;ამოირჩიეთ ჯგუფები, რომლის წევრიც მომხმარებელი იქნება:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;ჯგუფის მონაცემები&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;ამოირჩიეთ მომხმარებლები, რომლებიც ამ ჯგუფში გაწევრიანდებიან :&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;ჯგუფის მომხმარებლები&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;ჯგუფების / მომხმარებლების შეცვლა&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;დახურვა&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;მომხმარებელთა მენეჯმენტი&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;სახელი ველი თავისუფალია. გთხოვთ მიუთითოთ სახელი&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++&quot;სახელი შეიძლება შეიცავდეს მხოლოდ პარატა ლათინურ ასოებს, ციფრებს და, „-“-ს და &quot;
++&quot;„_“-ს&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;სახელი ძალიან გრძელია&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;შეცდომა&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;უცნობი შეცდომა&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;შეცდომა `%s'-ის შექმნისას: %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;ავტორები:&quot;
+
+<a id="userdrake2tags1133pokopo">Added: userdrake2/tags/1.13.3/po/ko.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/ko.po (rev 0)
++++ userdrake2/tags/1.13.3/po/ko.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,1080 @@
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/ko.php3
++#
++# Korean translation of userdrake.
++# Copyright (C) 2001 Free Software Foundation, Inc.
++# Jaegeum Choe &lt;baedaron@hananet.net&gt;, 2001.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake2\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2002-09-02 18:34+0900\n&quot;
++&quot;Last-Translator: Jaegeum Cze &lt;baedaron@hanafos.com&gt;\n&quot;
++&quot;Language-Team: Korean &lt;baedaron@hananet.net&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=1; plural=0;\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;'%s' 읽는 중 오류가 발생했습니다: %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, fuzzy, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;사용자 제거&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;픽스맵 파일 적재 중 오류: %s&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++#, fuzzy
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;픽스맵 파일 적재 중 오류: %s&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;픽스맵 파일 적재 중 오류: %s&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;알 수 없는 오류&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;픽스맵 파일 적재 중 오류: %s&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++#, fuzzy
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;픽스맵 파일 적재 중 오류: %s&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;사용자 드레이크&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/동작(_A)&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/편집(_E)&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/삭제(_D)&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/옵션(_O)&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/파일(_F)&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/새로 고침 (_R)&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/종료(_Q)&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/사용자 더하기(_A)&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/그룹 더하기(_A)&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/도움말(_H)&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/버그 보고(_R)&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/정보(_A)...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;검색:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;거르게 적용&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;사용자&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;그룹&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, fuzzy, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;소속된 그룹들&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;사용자 이름&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;사용자 ID&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;전체 이름&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;로그인명&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;홈 디렉토리&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;상태&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;그룹 이름&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;그룹 ID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;그룹 구성원&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;사용자 추가&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;그룹 추가&quot;
++
++#: ../userdrake:197
++#, fuzzy, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;그룹 추가&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;편집&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;삭제&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;새로 고침&quot;
++
++#: ../userdrake:200
++#, fuzzy, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;사용자 목록&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;막힘&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;새 사용자 생성&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;홈 디렉토리 생성&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;홈 디렉토리:&quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:414
++#, fuzzy, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;이미 존재하는 이름입니다.&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;암호가 일치하지 않습니다&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:457
++#, fuzzy, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;그룹 보기&quot;
++
++#: ../userdrake:466
++#, fuzzy, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;사용자 추가&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;취소&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;확인&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:510
++#, fuzzy, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;소속된 그룹들&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;새 그룹 생성&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:641
++#, fuzzy, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;사용자 홈 디렉토리&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:651
++#, fuzzy, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;사용자 제거&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:702
++#, fuzzy, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;그룹 제거&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;전체 이름:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;로그인명:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;암호:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;열쇠글 확인:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;로그인 쉘:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;그룹 이름:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;홈 디렉토리:&quot;
++
++#: ../userdrake:988
++#, fuzzy, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;사용자 목록&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1031
++#, fuzzy, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;암호&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1102
++#, fuzzy, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;그룹 목록&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1107
++#, fuzzy, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;그룹&quot;
++
++#: ../userdrake:1127
++#, fuzzy, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;그룹&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;오류 발생&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;닫기&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1280
++#, fuzzy, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;사용자 이름&quot;
++
++#: ../userdrake:1282
++#, fuzzy, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;맨드리바 온라인&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;오류&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;알 수 없는 오류&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;'%s' 읽는 중 오류가 발생했습니다: %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;저자:&quot;
++
++#~ msgid &quot;Yes&quot;
++#~ msgstr &quot;예&quot;
++
++#~ msgid &quot;No&quot;
++#~ msgstr &quot;아니오&quot;
++
++#~ msgid &quot;Help&quot;
++#~ msgstr &quot;도움말&quot;
++
++#~ msgid &quot;Reload&quot;
++#~ msgstr &quot;다시 읽기&quot;
++
++#~ msgid &quot;Save&quot;
++#~ msgstr &quot;저장&quot;
++
++#~ msgid &quot;Exit&quot;
++#~ msgstr &quot;종료&quot;
++
++#~ msgid &quot;Settings&quot;
++#~ msgstr &quot;설정&quot;
++
++#~ msgid &quot;Show tools bar&quot;
++#~ msgstr &quot;도구 막대 보이기&quot;
++
++#~ msgid &quot;View users&quot;
++#~ msgstr &quot;사용자 보기&quot;
++
++#~ msgid &quot;Preferences&quot;
++#~ msgstr &quot;사용자 정의&quot;
++
++#~ msgid &quot;Ldap Server&quot;
++#~ msgstr &quot;LDAP 서버&quot;
++
++#~ msgid &quot;Save change&quot;
++#~ msgstr &quot;변경사항 저장&quot;
++
++#~ msgid &quot;Add&quot;
++#~ msgstr &quot;추가&quot;
++
++#~ msgid &quot;Edit user(s)&quot;
++#~ msgstr &quot;사용자 편집&quot;
++
++#~ msgid &quot;Remove&quot;
++#~ msgstr &quot;제거&quot;
++
++#~ msgid &quot;Edit group(s)&quot;
++#~ msgstr &quot;그룹 편집&quot;
++
++#~ msgid &quot;User id&quot;
++#~ msgstr &quot;사용자 ID&quot;
++
++#~ msgid &quot;Group id&quot;
++#~ msgstr &quot;그룹 ID&quot;
++
++#~ msgid &quot;Comments&quot;
++#~ msgstr &quot;설명&quot;
++
++#~ msgid &quot;Shell&quot;
++#~ msgstr &quot;쉘&quot;
++
++#~ msgid &quot;name&quot;
++#~ msgstr &quot;이름&quot;
++
++#~ msgid &quot;gid&quot;
++#~ msgstr &quot;GID&quot;
++
++#~ msgid &quot;passwd&quot;
++#~ msgstr &quot;암호&quot;
++
++#~ msgid &quot;users&quot;
++#~ msgstr &quot;사용자&quot;
++
++#~ msgid &quot;Parameters&quot;
++#~ msgstr &quot;인자&quot;
++
++#~ msgid &quot;General option&quot;
++#~ msgstr &quot;일반 옵션&quot;
++
++#~ msgid &quot;Edit accounts on a LDAP directory&quot;
++#~ msgstr &quot;LDAP 디렉토리상의 계정 편집&quot;
++
++#~ msgid &quot;Active autologin support&quot;
++#~ msgstr &quot;자동 로그인 지원&quot;
++
++#~ msgid &quot;User creation&quot;
++#~ msgstr &quot;사용자 생성&quot;
++
++#~ msgid &quot;Default shell:&quot;
++#~ msgstr &quot;기본 쉘:&quot;
++
++#~ msgid &quot;Default home dir:&quot;
++#~ msgstr &quot;기본 홈 디렉토리:&quot;
++
++#~ msgid &quot;Default face:&quot;
++#~ msgstr &quot;기본 얼굴:&quot;
++
++#~ msgid &quot;Default group:&quot;
++#~ msgstr &quot;기본 그룹:&quot;
++
++#~ msgid &quot;General&quot;
++#~ msgstr &quot;일반&quot;
++
++#~ msgid &quot;Don't show user with id less than 500&quot;
++#~ msgstr &quot;500 이하 ID의 사용자 숨기기&quot;
++
++#~ msgid &quot;User identifier&quot;
++#~ msgstr &quot;사용자 ID&quot;
++
++#~ msgid &quot;Default Group&quot;
++#~ msgstr &quot;기본 그룹&quot;
++
++#~ msgid &quot;Groups list&quot;
++#~ msgstr &quot;그룹 목록&quot;
++
++#~ msgid &quot;Users View&quot;
++#~ msgstr &quot;사용자 보기&quot;
++
++#~ msgid &quot;Group identifier&quot;
++#~ msgstr &quot;그룹 ID&quot;
++
++#~ msgid &quot;Groups View&quot;
++#~ msgstr &quot;그룹 보기&quot;
++
++#~ msgid &quot;/bin/bash&quot;
++#~ msgstr &quot;/bin/bash&quot;
++
++#~ msgid &quot;uid:&quot;
++#~ msgstr &quot;사용자 ID&quot;
++
++#~ msgid &quot;Comment:&quot;
++#~ msgstr &quot;설명:&quot;
++
++#~ msgid &quot;Shell:&quot;
++#~ msgstr &quot;쉘:&quot;
++
++#~ msgid &quot;Home dir:&quot;
++#~ msgstr &quot;홈 디렉토리:&quot;
++
++#~ msgid &quot;passwd:&quot;
++#~ msgstr &quot;암호:&quot;
++
++#~ msgid &quot;Retype passwd:&quot;
++#~ msgstr &quot;암호 확인:&quot;
++
++#~ msgid &quot;Identity&quot;
++#~ msgstr &quot;신원&quot;
++
++#~ msgid &quot;Available groups&quot;
++#~ msgstr &quot;유효한 그룹들&quot;
++
++#~ msgid &quot;Extended&quot;
++#~ msgstr &quot;확장&quot;
++
++#~ msgid &quot;About UserDrake&quot;
++#~ msgstr &quot;사용자드레이크란...&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;Userdrake is an application to add and\n&quot;
++#~ &quot;delete users on the Mageia\n&quot;
++#~ &quot;distribution.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;Userdrake now support ldap directory\n&quot;
++#~ &quot;support conformed to rfc2307bis.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;This application is under the GPL\n&quot;
++#~ &quot;license and is delived without\n&quot;
++#~ &quot;any warranty.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;You can get support at : \n&quot;
++#~ &quot;http://www.mandrakeexpert.com/&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;사용자드레이크는 리눅스맨드레이크 \n&quot;
++#~ &quot;배포판상에서 사용자를 추가하고 \n&quot;
++#~ &quot;제거하는 프로그램입니다.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;사용자드레이크는 이제 LDAP 데릭토리를 지원하며,\n&quot;
++#~ &quot;RFC2307BIS를 따릅니다.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;이 프로그램은 GPL 사용자 계약서를 \n&quot;
++#~ &quot;따르며,어떠한 보증도 없이 \n&quot;
++#~ &quot;배포됩니다.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;http://www.mandrakeexpert.com으로 버그를 \n&quot;
++#~ &quot;보고할 수 있습니다.&quot;
++
++#~ msgid &quot;Name:&quot;
++#~ msgstr &quot;이름:&quot;
++
++#~ msgid &quot;gid:&quot;
++#~ msgstr &quot;GID:&quot;
++
++#~ msgid &quot;Not in group&quot;
++#~ msgstr &quot;소속되지 않은 그룹들&quot;
++
++#~ msgid &quot;Quit userdrake?&quot;
++#~ msgstr &quot;사용자드레이크를 종료합니까?&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;You have made changes\n&quot;
++#~ &quot;since the last save.\n&quot;
++#~ &quot;Do you really want to quit\n&quot;
++#~ &quot;userdrake?&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;마지막으로 저장한 이후,\n&quot;
++#~ &quot;새로운 변경사항이 있습니다.\n&quot;
++#~ &quot;정말로 사용자드레이크를 \n&quot;
++#~ &quot;종료하시겠습니까?&quot;
++
++#~ msgid &quot;Enter new passwd&quot;
++#~ msgstr &quot;새 암호 입력&quot;
++
++#~ msgid &quot;new passwd:&quot;
++#~ msgstr &quot;새 암호:&quot;
++
++#~ msgid &quot;Change&quot;
++#~ msgstr &quot;변경&quot;
++
++#~ msgid &quot;Change face&quot;
++#~ msgstr &quot;얼굴 변경&quot;
++
++#~ msgid &quot;Set passwd&quot;
++#~ msgstr &quot;암호 설정&quot;
++
++#~ msgid &quot;User autologin&quot;
++#~ msgstr &quot;사용자 자동로그인&quot;
++
++#~ msgid &quot;UserDrake - Error&quot;
++#~ msgstr &quot;사용자드레이크 - 오류&quot;
++
++#~ msgid &quot;couldn't find blue color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;/usr/lib/X11/rgb.txt 파일에서 파란색을 찾을 수 없습니다.&quot;
++
++#~ msgid &quot;Select the image to use&quot;
++#~ msgstr &quot;이미지를 선택하세요.&quot;
++
++#~ msgid &quot;Custom...&quot;
++#~ msgstr &quot;사용자 정의...&quot;
++
++#~ msgid &quot;couldn't find grey color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;/usr/lib/X11/rgb.txt 파일에서 회색을 찾을 수 없습니다.&quot;
++
++#~ msgid &quot;couldn't find black color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;/usr/lib/X11/rgb.txt 파일에서 검정색을 찾을 수 없습니다.&quot;
++
++#~ msgid &quot;login empty&quot;
++#~ msgstr &quot;로그인명이 비어 있습니다.&quot;
++
++#~ msgid &quot;This login already exists on the system&quot;
++#~ msgstr &quot;이 로그인명은 이미 시스템에 존재합니다.&quot;
++
++#~ msgid &quot;The login is similar to a name's group&quot;
++#~ msgstr &quot;로그인명이 이름 집합과 유사합니다.&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;User id already in use&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;이미 사용중인 사용자 ID&quot;
++
++#~ msgid &quot;User id already in use&quot;
++#~ msgstr &quot;이미 사용중인 사용자 ID&quot;
++
++#~ msgid &quot;name empty&quot;
++#~ msgstr &quot;이름이 비어 있습니다.&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;Group id already in use&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;%s:\n&quot;
++#~ &quot;이미 사용중인 그룹 ID&quot;
++
++#~ msgid &quot;Group id already in use&quot;
++#~ msgstr &quot;이미 존재하는 그룹 ID입니다.&quot;
++
++#~ msgid &quot;Couldn't find pixmap file: %s&quot;
++#~ msgstr &quot;픽스맵 파일을 찾을 수 없습니다: %s&quot;
++
++#~ msgid &quot;%s: the file %s is busy (%s present)\n&quot;
++#~ msgstr &quot;%s: %s 파일이 사용 중입니다(%s가 존재함)\n&quot;
++
++#~ msgid &quot;%s: can't link %s: %s\n&quot;
++#~ msgstr &quot;%s: %s를 링크할 수 없습니다: %s\n&quot;
++
++#~ msgid &quot;%s: can't unlock %s: %s (your changes are still in %s)\n&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;%s: %s를 잠금해제할 수 었습니다:%s (변경사항은 여전히 %s에 있습니다)\n&quot;
++
++#~ msgid &quot;Error in stat on tmp files when i try to unlock lib\n&quot;
++#~ msgstr &quot;lib 잠금 해제시 임시 파일 상태에 오류가 있었습니다.\n&quot;
++
++#~ msgid &quot;%s: no changes made\n&quot;
++#~ msgstr &quot;%s: 변경사항은 무시되었습니다\n&quot;
++
++#~ msgid &quot;Select LDAP Directory&quot;
++#~ msgstr &quot;LDAP 디렉토리 선택&quot;
++
++#~ msgid &quot;Server address:&quot;
++#~ msgstr &quot;서버 주소:&quot;
++
++#~ msgid &quot;Search base:&quot;
++#~ msgstr &quot;검색 기반:&quot;
++
++#~ msgid &quot;Bind DN:&quot;
++#~ msgstr &quot;DN 바인딩:&quot;
++
++#~ msgid &quot;Connection Type :&quot;
++#~ msgstr &quot;접속 유형:&quot;
++
++#~ msgid &quot;ssl&quot;
++#~ msgstr &quot;SSL&quot;
++
++#~ msgid &quot;Validate&quot;
++#~ msgstr &quot;유효화&quot;
++
++#~ msgid &quot;Test&quot;
++#~ msgstr &quot;테스트&quot;
++
++#~ msgid &quot;cannot change ldap version to 3: %s&quot;
++#~ msgstr &quot;LDAP 버전 3로 변경할 수 없습니다: %s&quot;
++
++#~ msgid &quot;cannot connect to the ldap server\n&quot;
++#~ msgstr &quot;LDAP 서버에 접속할 수 없습니다.\n&quot;
++
++#~ msgid &quot;cannot bind to the ldap server, %d\n&quot;
++#~ msgstr &quot;LDAP 서버에 바인딩할 수 없습니다, %d\n&quot;
++
++#~ msgid &quot;Cannot bind to ldap server&quot;
++#~ msgstr &quot;LDAP 서버에 바인딩할 수 없습니다.&quot;
++
++#~ msgid &quot;cannot save because the cannot connect to the ldap server&quot;
++#~ msgstr &quot;LDAP 서버에 접속할 수 없으므로 저장 할 수 없습니다.&quot;
++
++#~ msgid &quot;cannot relock lib&quot;
++#~ msgstr &quot;lib를 재잠금 할 수 없습니다.&quot;
+
+<a id="userdrake2tags1133pokupo">Added: userdrake2/tags/1.13.3/po/ku.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/ku.po (rev 0)
++++ userdrake2/tags/1.13.3/po/ku.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,757 @@
++# translation of userdrake-ku.po to Kurdish
++# This file is distributed under the same license as the PACKAGE package.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
++# Kadir Dilsi, 2004.
++# Erdal Ronahi &lt;erdal.ronahi@gmail.com&gt;, 2005.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-ku\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2005-10-09 01:23+0200\n&quot;
++&quot;Last-Translator: Erdal Ronahi &lt;erdal.ronahi@gmail.com&gt;\n&quot;
++&quot;Language-Team: Kurdish &lt;gnu-ku-wergerandin@lists.sourceforge.net&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Poedit-Language: Kurdî\n&quot;
++&quot;X-Poedit-Country: Kurdistan\n&quot;
++&quot;X-Poedit-SourceCharset: utf-8\n&quot;
++&quot;X-Generator: KBabel 1.10\n&quot;
++&quot;Plural-Forms: nplurals=2; plural= n != 1\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Çewte xwendine `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Çewte Afirandine `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Çewta Rêşkirin `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Çewta afirandina spool mail \n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Çewta afirandina spool mail \n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Çewta afirandina spool mail \n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;çewtek nezan&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Çewta afirandina spool mail \n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Çewta rêşkirina spool mail.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Dakişandina Bikarhener û Grup... Kerema xwe bisekinin&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageia Amurata Rêvebiriya Bikarhenerên&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Çalakî&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Biguherîne&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Pakijkirin&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Bijartin&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/Bikarhênerên sîstemê _fîltre bike&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Dosya&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Taze bike&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Derkeve&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Bikarhêner Zêde bike&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/_Kom Zêde bike&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Alîkarî&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Rapor kirina çewtîyan&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Derheq...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Bigere:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Fîltre Bixwaze&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Bikarhêner&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Kom&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Bikarhêner û kom&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Nave bikarhêner&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ID ya bikarhêner&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Koma Yekemîn&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Nav û paşnav&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Têketina Shell &quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Cîhe Malê&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Statu&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Nave kome&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ID ya kome&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Endamên Kom&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Bikarhêner qeyd bike&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Li sistema bikarhenerek biserve bike&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Kome qeyd bike&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Li sistema Kom biserve bike&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Biguhere&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Yên nîşandayî biguhere&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Pakij bike&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Yên nîşandayî pakij bike&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Rojanê bike&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Lîste rojanê bike&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Girtî&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Demborî bû&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Li îkonên bitikînin ji bo guhartina vî&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Bikarhênerêkî nû qeyd bike&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Cîhe Malê çebike&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Cîhe Malê&quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Ji bo bikarhenerên komek taybetî bafirinin&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Nasnameya bikarhener bi desti bikarbînin&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;&quot;
++&quot;Bikarhener bi rastî heye, kerema xwe re Nave Bikarhenera din hilbijerin&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Şîfre Nelihev e&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Ev şîfre pir hêsani ye\n&quot;
++&quot;Şîfreya rast dive ku bibe mezintire 6 karekter &quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Bikarhenera Uid &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Afirandina bikarhenerek bi UID bîçûktir e ji 500 ev bêpêşniyaz bû.\n&quot;
++&quot;Hûn bi rastî dixwazin ev bikin?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Cihkırına %s re koma 'bikarhener'&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Afirandina koma nû: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Biserkirina bikarhener: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Betal&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Dibe&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Kîjan kom?&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Li koma jêbûyî biserve bike&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Li koma 'bikarhener' biservebike&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Komek bi vî nav rastî jêbûyî ye. Hûn çi dixwazin çêbikin ?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Komeka nû çebike&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;ID ya kome bi xwe binivsînim&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Kom bi rastî jêbûyî ye, kerema xwe re Nave Kome din hilbijerin&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;Kom Gid &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Afirandina komek bi yek GID bîçûktir e ji 500 ev bêpêşniyaz bû.\n&quot;
++&quot;Hûn bi rastî dixwazin ev bikin?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Biservekirina kom %s&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Dosyan jî pakij bikin û nekin?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Paqijkirina bikarhener %s\n&quot;
++&quot;Jê cihê xebata tevgeran paşê hene\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Pakijkirina Mala: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Pakijkirina posteya e-maila :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Pakijkirina bikarhênere: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Hûn bi rastî dixwazin vê kome pakij bikin? : %s&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s ev komek yekemîn e ji bo bikarhenera %s\n&quot;
++&quot;Bikarhenera pêşîn paqij bike&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Pakijkirina koma: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Nav û paşnav:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Nave bikarhêner:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;şîfre:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;şîfre dîsa binivsînê&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Têketina Shell :&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Nave kome:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;Bikarhênerên kome&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Hûn nikarin bikarhêner '%s' pakij bikin ji koma yekemîn&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Mal:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Daneya Bikarhener&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Demboriya hesabe mumkin&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Demborî hesab (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Hesabê bikarhêner kîlît bike&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Agahderiya hesab&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Guherandina şîfreya bikarhênera dawî&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Dîroka xelasbûna şîfre&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Guherandin rojan berê bi ser ve bûn &quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Dixwazina guherandina rojan berê:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Agahiya Şîfre&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Daneya Kom&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Ji bo teva kirina bikarheneren re kom hilbijerin :&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Bikarheneren Kom&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Kom / Bikarhêner biguhêre&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Bigre&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Bikarhêner manajer&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;Nav dive ku tene hewandina jer harfen latini, numare, `-' û `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Nav pir dirêj e&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;çewt&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;çewtek nezan&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Çewte Afirandine `%s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Nîvîskar&quot;
+
+<a id="userdrake2tags1133pokypo">Added: userdrake2/tags/1.13.3/po/ky.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/ky.po (rev 0)
++++ userdrake2/tags/1.13.3/po/ky.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,756 @@
++# translation of userdrake-ky.po to Kirghiz
++# Copyright (C) 2004 Free Software Foundation, Inc.
++# Timur Jamakeev &lt;ztimur@mail.ru&gt;, 2004.
++# Ilyas Bakirov &lt;just_ilyas@yahoo.com&gt;, 2008, 2009
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-ky\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2009-12-25 23:18+0600\n&quot;
++&quot;Last-Translator: Ilyas Bakirov &lt;just_ilyas@yahoo.com&gt;\n&quot;
++&quot;Language-Team: Kyrgyz\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.3\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Окуу учурундагы ката `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Түзүү учурундагы ката `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Жоготуу учурундагы ката `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Почта түзүүдөгү ката.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Почта түзүүдөгү ката.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Почта түзүүдөгү ката.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;белгисиз ката&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Почта түзүүдөгү ката.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Почтаны жоготуудагы ката.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Колдонуучулар жана группалар жүктөлүүдө... Күтө туруңуз&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageia Колдонуучуларды башкаруу аспабы&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;/_Конок колдонуучуну орнотуу&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;/_Конок колдонуучуну алып салуу&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Аракеттер&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Оңдоо&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Өчүрүү&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Параметрлер&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Системалык колдонуучуларды иргөө&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Файл&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Жаңылоо&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Чыгуу&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/Колдонуучуну _кошуу&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/_Группаны кошуу&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Жардам&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Баг жөнүндө отчет&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Программа жөнүндө...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Издөө:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Иргөөнү колдонуу&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Колдонуучулар&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Группалар&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Колдонуучулар жана группалар&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Колдонуучунун аты&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Колдонуучунун IDси&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Негизги группа&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Толук аты&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Кирүү чөйрөсү&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Өздүк каталог&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Статусу&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Группанын аты&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Группанын IDси&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Группанын мүчөлөрү&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Колдонуучуну кошуу&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Системага жаңы колдонуучуну кошуу&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Группаны кошуу&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Системага группаны кошуу&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Оңдоо&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Тандалган сапты оңдоо&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Өчүрүү&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Тандалган сапты өчүрүү&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Жаңылоо&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Тизмени жаңылоо&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Бекитилген&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Иштөө мөөнөтүнүн аягы&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Муну өзгөртүү үчүн иконканы басыңыз&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Жаңы колдонуучуну жаратуу&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Өздүк каталогду түзүү&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Өздүк каталог:&quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Колдонуучу үчүн өздүк группа түзүү&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Колдонуучунун IDсин өзүңүз көрсөтүңүз&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Колдонуучу агдагачан бар, башка колдонуучу атын тандаңыз&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Пароль туура эмес&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Бул пароль өтө эле жөнөкөй. \n&quot;
++&quot; Жакшы пароль 6 символдон көп болот&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Колдонуучунун Uidи 500 дөн кичине&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;UIDи 500 дөн кичине болгон колдонуучуну түзүү сунуш кылынбайт.\n&quot;
++&quot; Ушундай кылууга макулсузбу?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;%s 'users' группасына кошулууда&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Жаңы группа жаратылууда: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Колдонуучу кошулууда: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Которуу устасы&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;Сиз которуу устасы менен Windows ырастоолоруңузду жана документтериңизди &quot;
++&quot;Mageia системасына которуу каалайсызбы?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Калтыруу&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Ok&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Группа тандаңыз&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Бар группага кошуу&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;'users' группасына кошуу&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Мындай аттуу группа алдагачан бар. Сиз эмне кылгыңыз келет?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Жаңы группа жаратуу&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Группанын IDсин өзүңүз көрсөтүңүз&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Группа алдгачан бар, башка группа атын тандаңыз&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; Группанын Gidи &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;GIDи 500дөн кем группа түзүү сунушталбайт.\n&quot;
++&quot; Ушундай кылууга макулсузбу?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Группа кошулууда: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Файлдарды өчүрөйүнбү же жокпу?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;%s колдонуучусу өчүрүлүүдө\n&quot;
++&quot; Жана да төмөнкүдөй аракеттер жасалууда\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Өздүк каталогду өчүрүү: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Почта ящигин өчүрүү :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Колдонуучу алып салынууда: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Чынында эле %s группасын өчүргүңүз келеби?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s, %s колдонуучусу үчүн негизги группа\n&quot;
++&quot; Адегенде колдонуучуну алып салыңыз&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Группа алынып салынууда: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Толук аты:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Логин:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Пароль:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Паролду тактоо:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Кирүү чөйрөсү:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Группанын аты:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Колдонуучу үчүн жок дегенде бир группа тандаңыз&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Эсеп жазмасынын аяктоо мөөнөтүнүн\n&quot;
++&quot; Жылын, Айын жана Күнүн көрсөтүңүз &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Паролдун жашы үчүн бардык талааларды толтуруңуз\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;'%s' колдонуучусу негизги группасынан алып салынбайт&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Өздүк каталог:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Колдонуучунун даректери&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Эсеп жазылмасынын аяктоочулук мөөнөтүн иштетүү&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Эсеп жазылмасынын аякталышы (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Колдонуучунун эсеп жазылмасын жабуу&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Эсеп жазылмасы жөнүндө информация&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Колдонуучу акыркы жолу паролун алмаштырганы : &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Паролдун мөөнөтү аяктоочулугун киргизүү&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Канча күндөн соң өзгөртүүгө уруксат : &quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Канча күндөн соң өзгөртүүнү талап кылуу : &quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Канча күн мурда өзгөртүүнү эскертүү :&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Эсеп жазмасын жабууга чейинки күн :&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Пароль жөнүндөгү информация&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Колдонуучу мүчө болуучу группаны тандаңыз:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Группанын даректери&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Бул группага бириктирүү үчүн колдонуучуну тандаңыз :&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Колдонуучулар группасы&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Гурппаларды / Колдонуучуларды оңдоо&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Жаңылыштык орун алды:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Жабуу&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Copyright (C) %s Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Колдонуучуларды башкаруу&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Нурлан Бөрүбаев &lt;nurlan@tamga.info&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Аты талаасы толтурулган эмес, ат бериңиз&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++&quot;Ат, жалаң гана кичине латын тамгалары, сандар, '-' жана '_' турушу керек&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Ат өтө эле узун&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Ката&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;белгисиз ката&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Түзүү учурундагы ката `%s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Авторлор: &quot;
+
+<a id="userdrake2tags1133polopo">Added: userdrake2/tags/1.13.3/po/lo.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/lo.po (rev 0)
++++ userdrake2/tags/1.13.3/po/lo.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,751 @@
++# translation of userdrake.pot to Lao
++# Copyright (C) 2004 Free Software Foundation, Inc.
++# Thinnaphavong SIPHACHANH &lt;laonuke@yahoo.com&gt;, 2001, 2004.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-lo\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2005-01-13 14:57+0700\n&quot;
++&quot;Last-Translator: Thinnaphavong SIPHACHANH &lt;laonuke@yahoo.com&gt;\n&quot;
++&quot;Language-Team: lo &lt;lo@li.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;ເກີດການຜິດພາດເວລາອ່ານ `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;ເກີດການຜິດພາດເວລາສ້າງ `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;ເກີດການຜິດພາດເວລາລຶບ `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;ເກີດການຜິດພາດເວລາສ້າງ mail spool.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;ເກີດການຜິດພາດເວລາສ້າງ mail spool.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;ເກີດການຜິດພາດເວລາສ້າງ mail spool.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;ເກີດການຜິດພາດແບບບໍ່ຮູ້ສາເຫດ&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;ເກີດການຜິດພາດເວລາສ້າງ mail spool.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;ເກີດການຜິດພາດເວລາລຶບ mail spool.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;ກຳລັງອ່ານຄ່າ ຜູ້ໃຊ້ ແລະ ກຸ່ມ... ກະລຸນາຖ້າ&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;ເຄື່ອງມືຈັດການຜູ້ໃຊ້ສຳລັບ Mageia&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_ແບບການເຮັດວຽກ&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_ແກ້ໄຂ&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_ລຶບ&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_ທາງເລືອກ&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_ຕອງລະບົບຜູ້ໃຊ້&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_ໄຟລ໌&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_ອ່ານຄ່າໃຫມ່&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_ອອກ&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_ຕື່ມຜູ້ໃຊ້&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/_ຕື່ມກຸ່ມ&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_ຊ່ວຍເຫລືອ&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_ລາຍງານຂໍ້ຜິດພາດ&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_ກ່ຽວກັບ...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;ຊອກຫາ:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;ໃຊ້ລະບົບຕອງ&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;ຜູ້ໃຊ້&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;ກຸ່ມ&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;ຊື່ຜູ້ໃຊ້&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ລະຫັດຜູ້ໃຊ້&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;ກຸ່ມທຳອິດ&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;ຊື່ແທ້&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;ລ໋ອກອິນແຊວ&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Home Directory&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;ສະຖານະ&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;ຊື່ກຸ່ມ&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ລະຫັດກຸ່ມ&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;ສະມາຊິກກຸ່ມ&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;ຕື່ມຜູ້ໃຊ້&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;ຕື່ມຜູ້ໃຊ້ເຂົ້າລະບົບ&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;ຕື່ມກຸ່ມ&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;ຕື່ມກຸ່ມເຂົ້າລະບບົ&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;ແກ້ໄຂ&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;ແກ້ໄຂແຖວທີ່ເລືອກ&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;ລຶບ&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;ລຶບແຖວທີ່ເລືອກ&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;ອ່ານຄ່າໃຫມ່&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;ອ່ານຄ່າລາຍການໃຫມ່&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;ລ໋ອກ&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;ຫມົດອາຍຸ&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;ກົດທີ່ຮູບເພື່ອປ່ຽນແປງ&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;ສ້າງຜູ້ໃຊ້ໃຫມ່&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;ສ້າງ Home Directory&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Home Directory: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;ສ້າງກຸ່ມສ່ວນໂຕສຳລັບຜູ້ໃຊ້&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;ໃສ່ລະຫັດຜຸ້ໃຊ້ເອົາເອງ&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;ຊື່ນີ້ມີແລ້ວ, ກະລຸນາໃຊ້ຊື່ອື່ນ&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;ລະຫັດຜ່ານບໍ່ຖືກຕ້ອງ&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;ລະຫັດຜ່ານນີ້ງ່າຍເກີນໄປ. \n&quot;
++&quot; ລະຫັດຜ່ານທີ່ດີຕ້ອງມີຫລາຍກວ່າ 6 ໂຕອັກສອນ&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;ລະຫັດຜູ້ໃຊ້ຫນ້ອຍກວ່າ 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;ບໍ່ແນະນຳໃຫ້ສ້າງຜູ້ໃຊ້ທີ່ລະຫັດຕ່ຳກວ່າ 500\n&quot;
++&quot;ເຈົ້າແນ່ໃຈບໍ່ວ່າເຈົ້າຕ້ອງການສ້າງ?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;ຕື່ມ %s ໃສ່ກຸ່ມ 'users' &quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;ສ້າງກຸ່ມໃຫມ່: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;ຕື່ມຜູ້ໃຊ້: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;ຍົກເລີກ&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;ຕົກລົງ&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;ລະຫັດ: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;ເລືອກກຸ່ມ&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;ຕື່ມເຂົ້າກຸ່ມທີ່ມີຢູ່ແລ້ວ&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;ຕື່ມໃສ່ກຸ່ມ 'users'&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;ຊື່ກຸ່ມນີ້ມີຢູ່ແລ້ວ. ເຈົ້າຈະເຮັດຈັ່ງໃດຕໍ່ໄປ?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;ສ້າງກຸ່ມໃຫມ່&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;ໃສ່ລະຫັດກຸ່ມເອົາເອງ&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;ຊື່ກຸ່ມນີ້ມີຢູ່ແລ້ວ, ກະລຸນາເລືອກຊື່ອື່ນ&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;ລະຫັດກຸ່ມຫນ້ອຍກວ່າ 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;ບໍ່ແນະນຳໃຫ້ສ້າງກຸ່ມຜູ້ໃຊ້ທີ່ມີລະຫັດຕ່ຳກວ່າ 500\n&quot;
++&quot;ເຈົ້າແນ່ໃຈບໍ່ວ່າເຈົ້າຕ້ອງການເຮັດແບບນັ້ນ?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;ຕື່ມກຸ່ມ: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;ລະຫັດກຸ່ມ: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;ລຶບໄຟລ໌ຫລືບໍ່?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;ກຳລັງລຶບຜູ້ໃຊ້ %s\n&quot;
++&quot; ແລະກຳລັງເຮັດສິ່ງຕໍ່ໄປນີ້\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;ລຶບ Home Directory: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;ລຶບ ຕູ້ຈົດຫມາຍ :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;ລຶບຜູ້ໃຊ້: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;ເຈົ້າຫມັ້ນໃຈບໍ່ວ່າຈະລຶບກຸ່ມ %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s ແມ່ນກຸ່ມທຳອິດຂອງ %s\n&quot;
++&quot; ລຶບຜູ້ໃຊ້ນີ້ກ່ອນ&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;ລຶບກຸ່ມ: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;ຊື່ແທ້:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;ລ໋ອກອິນ:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;ລະຫັດຜ່ານ:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;ຢືນຢັນລະຫັດຜ່ານ:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;ລ໋ອກອິນແຊວ:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;ຊື່ກຸ່ມ:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;ກະລຸນາເລືອກຢ່າງຫນ້ອຍຫນຶ່ງກຸ່ມສຳລັບຜູ້ໃຊ້&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;ກະລຸນາກຳນົດປີ, ເດືອນ ແລະ ມື້ \n&quot;
++&quot;ທີ່ບັນຊີຈະຫມົດອາຍຸ&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;ກະລຸນາຕື່ມໃສ່ທຸກຫ້ອງໃນອາຍຸຂອງລະຫັດລັບ\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;ເຈົ້າບໍ່ສາມາດລຶບຜຸ້ໃຊ້ '%s' ຈາກກຸ່ມທຳອິດຂອງເຂົາ&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;ເຮືອນ:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;ຂໍ້ມູນຜູ້ໃຊ້&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;ໃຊ້ການຈັບເວລາການຫມົດອາຍຸຂອງບັນຊີ&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;ບັນຊີຫມົດອາຍຸ (ປປປປ-ດດ-ທທ):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;ລ໋ອກບັນຊີຜູ້ໃຊ້&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;ຂໍ້ມູນບັນຊີ&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;ຜູ້ໃຊ້ປ່ຽນລະຫັດຜ່ານຄັ້ງຫລ້າສຸດຕອນ: &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;ໃຊ້ກຳນົດມື້ຫມົດອາຍຸຂອງລະຫັດຜ່ານ&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;ຈຳນວນມື້ກ່ອນທີ່ຈະປ່ຽນໄດ້:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;ຈຳນວນມື້ກ່ອນປ່ຽນທີ່ຕ້ອງການ:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;ຈຳນວນມື້ທີ່ຈະເຕືອນກ່ອນປ່ຽນ:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;ຈຳນວນມື້ກ່ອນທີ່ບັນຊີຈະບໍ່ເຮັດວຽກ&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;ຂໍ້ມູນລະຫັດຜ່ານ&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;ເລືອກກຸ່ມທີ່ຜູ້ໃຊ້ຈະເປັນສະມາຊິກ&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;ຂໍ້ມູນກຸ່ມ&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;ເລືອກຜູ້ໃຊ້ສຳລັບກຸ່ມນີ້:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;ກຸ່ມຜູ້ໃຊ້&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;ແກ້ໄຂກຸ່ມ / ຜູ້ໃຊ້&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;ອອກ&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;ການບໍລິຫານຜູ້ໃຊ້&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;ບໍ່ມີຊື່ ກະລຸນາໃສ່ຊື່ແນ່&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;ຊື່ຕ້ອງເປັນໂຕຫນັງສືລາຕິນແບບໂຕນ້ອຍ, ໂຕເລກ, `-' ແລະ `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;ຊື່ຍາວໂພດ&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;ເກີດການຜິດພາດ&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;ເກີດການຜິດພາດແບບບໍ່ຮູ້ສາເຫດ&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;ເກີດການຜິດພາດເວລາສ້າງ `%s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;ຜູ້ແຕ່ງ: &quot;
+
+<a id="userdrake2tags1133poltpo">Added: userdrake2/tags/1.13.3/po/lt.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/lt.po (rev 0)
++++ userdrake2/tags/1.13.3/po/lt.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,1034 @@
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/lt.php3
++#
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) 2001 Free Software Foundation, Inc.
++# Mykolas Norvaišas &lt;myka@centras.lt&gt;, 2001.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-lt\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2005-08-11 16:47+0200\n&quot;
++&quot;Last-Translator: Arvydas Svirka &lt;arvydas@arvis.lt&gt;\n&quot;
++&quot;Language-Team: \n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Poedit-Language: Lithuanian\n&quot;
++&quot;X-Poedit-Country: LITHUANIA\n&quot;
++&quot;Plural-Forms: nplurals=3; plural=(n%10==1 &amp;&amp; n%100!=11 ? 0 : n%10&gt;=2 &amp;&amp; (n%&quot;
++&quot;100&lt;10 || n%100&gt;=20) ? 1 : 2);\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Klaida skaitant `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Klaida sukuriant `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Klaida pašalinant `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Pašto sankaupos sukūrimo klaida.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Pašto sankaupos sukūrimo klaida.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Pašto sankaupos sukūrimo klaida.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;nežinoma klaida&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Pašto sankaupos sukūrimo klaida.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Pašto sankaupos ištrynimo klaida.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Įkraunami vartotojai ir grupės... Palaukite&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageia vartotojų valdymo įrankis&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Veiksmai&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Taisyti&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Pašalinti&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Pasirinktys&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Filtruoti sistemos vartotojus&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Byla&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Atnaujinti&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/I_šeiti&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/Pridėti _vartotoją&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Pridėti _grupę&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Pagalba&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Pranešti apie klaidą&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Apie...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Ieškoti:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Pritaikyti filtrą&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Vartotojai&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Grupės&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Vartotojai ir grupės&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Vartotojo vardas&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Vartotojo ID&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Pirminė grupė&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Vardas, pavardė&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Prisijungimo apvalkalas&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Pradinis katalogas&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Būsena&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Grupės pavadinimas&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Grupės ID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Grupės nariai&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Pridėti vartotoją&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Įtraukti sistemos vartotoją&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Pridėti grupę&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Į sistemą įtraukti grupę&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Taisyti&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Keisti išrinktą eilutę&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Ištrinti&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Ištrinti išrinktą eilutę&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Atnaujinti&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Atnaujinti sąrašą&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Užrakinta&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Pasibaigęs&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Pakeitimui spragtelėkite ant kriptogramos&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Sukurti naują vartotoją&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Sukurti pradinį katalogą&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Pradinis katalogas: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Vartotojui sukurti privačią grupę&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Vartotojo ID nurodyti rankiniu būdu&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Toks vartotojas jau yra, parinkite kitą vartotojo vardą&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Slaptažodžiai neatitinka&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Slaptažodis per daug paprastas. \n&quot;
++&quot; Tinkamas slaptažodis turėtų būti ne trumpesnis kaip 6 simbolių&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Vartotojo Uid yra &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Naujo vartotojo, kurio UID mažiau kaip 500, sukūrimas nerekomenduojamas.\n&quot;
++&quot; Ar tikrai norite tai padaryti?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;%s įkeliamas į grupę 'vartotojai'&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Sukuriama nauja grupė: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Įtraukiamas vartotojas: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Atšaukti&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Gerai&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Pasirinkite grupę&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Įtraukti į esančią grupę&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Įtraukti į grupę 'vartotojai'&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Grupė tokiu vardu jau yra. Ką norėtumėte daryti?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Sukurti naują grupę&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Grupės ID nurodyti rankiniu būdu&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Tokia grupė jau yra, pasirinkite kitą grupės vardą&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; Grupės Gid yra &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Naujo vartotojo, kurio GID mažiau kaip 500, sukūrimas nerekomenduojamas.\n&quot;
++&quot; Ar tikrai norite tai padaryti?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Įtraukiama grupė: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Ištrinti bylas ar ne?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Ištrinams vartotojas %s\n&quot;
++&quot; Taip pat įvykdyti sekančius veiksmus\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Ištrinti pradinį katalogą: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Ištrinti pašto dėžutę: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Pašalinamas vartotojas: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Ar tikrai norite ištrinti grupę %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s yra pirminė %s vartotojo grupė\n&quot;
++&quot; Pirmiausia pašalinkite vartotoją&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Pašalinama grupė: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Vardas, pavardė:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Pasijungimas:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Slaptažodis:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Patvirtinkite slaptažodį:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Prisijungimo apvalkalas:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Grupės pavadinimas:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Vartotojui parinkite nors vieną grupę&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Nurodykite metus, mėnesį ir dieną, \n&quot;
++&quot; kada baigsis abonento galiojimas&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Užpildykite visus slaptažodžio laiko laukelius\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Jūs negalite pašalinti vartotojo '%s' iš jo pirminės grupės&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Pradinis:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Vartotojo duomenys&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Įgalinti ribotą abonento galiojimo laiką&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Abonentas galioja iki (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Užrakinti vartotojo abonentą&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Abonento informacija&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Paskutinis vartotojo pakeistas slaptažodis čia: &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Įgalinti ribotą slaptažodžio galiojimo laiką&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Po kiek dienų leidžiami pakeitimai:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Po kiek dienų reikalaujama pakeitimų:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Prieš kiek dienų įspėjama iki pakeitimo:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Po keik dienų abonentas nebegalios:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Slaptažodžio informacija&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Parinkite grupę, kurios nariu bus vartotojas:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Grupės duomenys&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Išrinkite vartotojus šiai grupei:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Grupės vartoptojai&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Tvarkyti grupes / vartotojus&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Įvyko klaida&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Uždaryti&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Vartotojų valdymas&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Vardo laukelis yra tuščias, įrašykite vardą&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++&quot;Vardas turi būti sudarytas iš mažųjų lotyniškų raidžių, skaičių, `-' ir `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Vardas per ilgas&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Klaida&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;nežinoma klaida&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Klaida sukuriant `%s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Autoriai: &quot;
++
++#~ msgid &quot;Yes&quot;
++#~ msgstr &quot;Taip&quot;
++
++#~ msgid &quot;No&quot;
++#~ msgstr &quot;Ne&quot;
++
++#~ msgid &quot;Help&quot;
++#~ msgstr &quot;Pagalba&quot;
++
++#~ msgid &quot;Reload&quot;
++#~ msgstr &quot;Vėl įkelti&quot;
++
++#~ msgid &quot;Save&quot;
++#~ msgstr &quot;Išsaugoti&quot;
++
++#~ msgid &quot;Exit&quot;
++#~ msgstr &quot;Išeiti&quot;
++
++#~ msgid &quot;Settings&quot;
++#~ msgstr &quot;Nuostatos&quot;
++
++#~ msgid &quot;Show tools bar&quot;
++#~ msgstr &quot;Parodyti įrankių juostą&quot;
++
++#~ msgid &quot;View users&quot;
++#~ msgstr &quot;Rodyti vartotojus&quot;
++
++#~ msgid &quot;Preferences&quot;
++#~ msgstr &quot;Nustatymai&quot;
++
++#~ msgid &quot;Save change&quot;
++#~ msgstr &quot;Išsaugoti pakeitimą&quot;
++
++#~ msgid &quot;Add&quot;
++#~ msgstr &quot;Pridėti&quot;
++
++#~ msgid &quot;Edit user(s)&quot;
++#~ msgstr &quot;Redaguoti vartotoją(us)&quot;
++
++#~ msgid &quot;Remove&quot;
++#~ msgstr &quot;Pašalinti&quot;
++
++#~ msgid &quot;Edit group(s)&quot;
++#~ msgstr &quot;Redaguoti grupę(es)&quot;
++
++#~ msgid &quot;User id&quot;
++#~ msgstr &quot;Vartotojo id&quot;
++
++#~ msgid &quot;Group id&quot;
++#~ msgstr &quot;Grupės id&quot;
++
++#~ msgid &quot;Comments&quot;
++#~ msgstr &quot;Komentarai&quot;
++
++#~ msgid &quot;Shell&quot;
++#~ msgstr &quot;Aplinka&quot;
++
++#~ msgid &quot;name&quot;
++#~ msgstr &quot;vardas&quot;
++
++#~ msgid &quot;gid&quot;
++#~ msgstr &quot;gid&quot;
++
++#~ msgid &quot;passwd&quot;
++#~ msgstr &quot;slapt&quot;
++
++#~ msgid &quot;users&quot;
++#~ msgstr &quot;vartotojai&quot;
++
++#~ msgid &quot;Parameters&quot;
++#~ msgstr &quot;Parametrai&quot;
++
++#~ msgid &quot;Active autologin support&quot;
++#~ msgstr &quot;Aktyvus automatinio pasijungimo palaikymas&quot;
++
++#~ msgid &quot;Default shell:&quot;
++#~ msgstr &quot;Aplinka pagal nutylėjimą:&quot;
++
++#~ msgid &quot;Default home dir:&quot;
++#~ msgstr &quot;Namų katalogas pagal nutylėjimą:&quot;
++
++#~ msgid &quot;Default face:&quot;
++#~ msgstr &quot;Veidas pagal nutylėjimą:&quot;
++
++#~ msgid &quot;Default group:&quot;
++#~ msgstr &quot;Grupė pagal nutylėjimą:&quot;
++
++#~ msgid &quot;General&quot;
++#~ msgstr &quot;Bendras&quot;
++
++#~ msgid &quot;Don't show user with id less than 500&quot;
++#~ msgstr &quot;Nerodyti vartotojų kurių id mažesnė negu 500&quot;
++
++#~ msgid &quot;User identifier&quot;
++#~ msgstr &quot;Vartotojo indentifikatorius&quot;
++
++#~ msgid &quot;Default Group&quot;
++#~ msgstr &quot;Grupė pagal nutylėjimą&quot;
++
++#~ msgid &quot;Groups list&quot;
++#~ msgstr &quot;Grupių sąrašas&quot;
++
++#~ msgid &quot;Users View&quot;
++#~ msgstr &quot;Vartotojo vaizdas&quot;
++
++#~ msgid &quot;Group identifier&quot;
++#~ msgstr &quot;Grupės indentifikatorius&quot;
++
++#~ msgid &quot;Groups View&quot;
++#~ msgstr &quot;Grupių vaizdas&quot;
++
++#~ msgid &quot;/bin/bash&quot;
++#~ msgstr &quot;/bin/bash&quot;
++
++#~ msgid &quot;uid:&quot;
++#~ msgstr &quot;uid:&quot;
++
++#~ msgid &quot;Comment:&quot;
++#~ msgstr &quot;Komentaras:&quot;
++
++#~ msgid &quot;Shell:&quot;
++#~ msgstr &quot;Aplinka:&quot;
++
++#~ msgid &quot;Home dir:&quot;
++#~ msgstr &quot;Namų katalogas:&quot;
++
++#~ msgid &quot;passwd:&quot;
++#~ msgstr &quot;slapt&quot;
++
++#~ msgid &quot;Retype passwd:&quot;
++#~ msgstr &quot;Pakartoti slapt:&quot;
++
++#~ msgid &quot;Identity&quot;
++#~ msgstr &quot;Identifikacija&quot;
++
++#~ msgid &quot;Available groups&quot;
++#~ msgstr &quot;Galimos grupės&quot;
++
++#~ msgid &quot;Extended&quot;
++#~ msgstr &quot;Išplėstinis&quot;
++
++#~ msgid &quot;About UserDrake&quot;
++#~ msgstr &quot;Apie UserDrake&quot;
++
++#~ msgid &quot;Name:&quot;
++#~ msgstr &quot;Vardas:&quot;
++
++#~ msgid &quot;gid:&quot;
++#~ msgstr &quot;gid:&quot;
++
++#~ msgid &quot;Not in group&quot;
++#~ msgstr &quot;Ne grupėje&quot;
++
++#~ msgid &quot;Quit userdrake?&quot;
++#~ msgstr &quot;Išeiti iš userdrake?&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;You have made changes\n&quot;
++#~ &quot;since the last save.\n&quot;
++#~ &quot;Do you really want to quit\n&quot;
++#~ &quot;userdrake?&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Po paskutinio išsaugojimo\n&quot;
++#~ &quot;tu padarei pakeitimų.\n&quot;
++#~ &quot;Ar tikrai nori išeiti iš\n&quot;
++#~ &quot;userdrake?&quot;
++
++#~ msgid &quot;Enter new passwd&quot;
++#~ msgstr &quot;Įveskite naują slapt&quot;
++
++#~ msgid &quot;new passwd:&quot;
++#~ msgstr &quot;naujas slapt:&quot;
++
++#~ msgid &quot;Change&quot;
++#~ msgstr &quot;Pasikeitimas&quot;
++
++#~ msgid &quot;Change face&quot;
++#~ msgstr &quot;Pakeisti veidą&quot;
++
++#~ msgid &quot;Set passwd&quot;
++#~ msgstr &quot;Nustatyti slapt&quot;
++
++#~ msgid &quot;User autologin&quot;
++#~ msgstr &quot;Vartotojo autopasijungimas&quot;
++
++#~ msgid &quot;couldn't find blue color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;negaliu rasti mėlynos spalvos /usr/lib/X11/rgb.txt byloje&quot;
++
++#~ msgid &quot;couldn't find grey color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;negaliu rasti pilkos spalvos /usr/lib/X11/rgb.txt byloje&quot;
++
++#~ msgid &quot;couldn't find black color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;negaliu rasti juodos spalvos /usr/lib/X11/rgb.txt byloje&quot;
++
++#~ msgid &quot;login empty&quot;
++#~ msgstr &quot;tuščias pasijungimas&quot;
++
++#~ msgid &quot;This login already exists on the system&quot;
++#~ msgstr &quot;Šis pasijungimo vardas sistemoje jau yra&quot;
++
++#~ msgid &quot;The login is similar to a name's group&quot;
++#~ msgstr &quot;Pasijungimo vardas yra tokspats kaip grupės&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;User id already in use&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;Vartotojo id jau naudojamas&quot;
++
++#~ msgid &quot;User id already in use&quot;
++#~ msgstr &quot;Vartotojo id jau naudojamas&quot;
++
++#~ msgid &quot;name empty&quot;
++#~ msgstr &quot;tuščias vardas&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;Group id already in use&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;Grupės id jau naudojamas&quot;
++
++#~ msgid &quot;Group id already in use&quot;
++#~ msgstr &quot;Grupės id jau naudojamas&quot;
++
++#~ msgid &quot;Couldn't find pixmap file: %s&quot;
++#~ msgstr &quot;Negaliu rasti pixmap bylos: %s&quot;
++
++#~ msgid &quot;%s: the file %s is busy (%s present)\n&quot;
++#~ msgstr &quot;%s: byla %s yra užimta (%s egzistuoja)\n&quot;
++
++#~ msgid &quot;%s: can't link %s: %s\n&quot;
++#~ msgstr &quot;%s: negaliu sujungti %s: %s\n&quot;
++
++#~ msgid &quot;%s: can't unlock %s: %s (your changes are still in %s)\n&quot;
++#~ msgstr &quot;%s: negaliu atrakinti %s: %s (jūsų pakeitimai vis dar %s)\n&quot;
++
++#~ msgid &quot;Error in stat on tmp files when i try to unlock lib\n&quot;
++#~ msgstr &quot;Stat klaida tmp bylose, kai bandžiau atrakinti biblioteką\n&quot;
++
++#~ msgid &quot;%s: no changes made\n&quot;
++#~ msgstr &quot;%s: nepakeistas\n&quot;
++
++#~ msgid &quot;The passwords string aren't the same!&quot;
++#~ msgstr &quot;Slaptažodžiai yra skirtingi!&quot;
++
++#~ msgid &quot;cannot launch UserDrake&quot;
++#~ msgstr &quot;negaliu startuoti UserDrake&quot;
++
++#~ msgid &quot;You must be root to use userdrake&quot;
++#~ msgstr &quot;Jūs turite būti root norėdami naudoti userdrake&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;Cannot lock user lib,\n&quot;
++#~ &quot;file /etc/ptmp or /etc/gtmp exist&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Negaliu užrakinti vartotojo lib,\n&quot;
++#~ &quot;bylos /etc/ptmp arba /etc/gtmp jau egzistuoja&quot;
++
++#~ msgid &quot;What do you want to show in user list?&quot;
++#~ msgstr &quot;Ką jūs norite rodyti vartotojų sąraše?&quot;
++
++#~ msgid &quot;What do you want to show in group list?&quot;
++#~ msgstr &quot;Ką jūs norite rodyti grupių sąraše?&quot;
++
++#~ msgid &quot;/bin/ash&quot;
++#~ msgstr &quot;/bin/ash&quot;
++
++#~ msgid &quot;/bin/csh&quot;
++#~ msgstr &quot;/bin/csh&quot;
++
++#~ msgid &quot;/bin/zsh&quot;
++#~ msgstr &quot;/bin/zsh&quot;
+
+<a id="userdrake2tags1133poltgpo">Added: userdrake2/tags/1.13.3/po/ltg.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/ltg.po (rev 0)
++++ userdrake2/tags/1.13.3/po/ltg.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,764 @@
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/lv.php3
++#
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) 2000 Free Software Foundation, Inc.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake2\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2007-09-27 21:52+0200\n&quot;
++&quot;Last-Translator: Māris Laureckis &lt;marisl@e-no.lv&gt;\n&quot;
++&quot;Language-Team: Latgalian &lt;marisl@e-no.lv&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Kliuda nūlosūt `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Kliuda izveidojūt `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Kliuda dziešūt `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Kliuda izveidojūt posta spūli (buferi).\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Kliuda izveidojūt posta spūli (buferi).\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Kliuda izveidojūt posta spūli (buferi).\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;nazynoma kliuda&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Kliuda izveidojūt posta spūli (buferi).\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Kliuda dziešūt posta spūli (buferi).\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Īsaluodej lītuotuoji i grupys... Lyudzu pagaidit&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Maņdryva Linuks Lītuotuoju Puorvaļdeibys reiks&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Darbeibys&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Redigēt&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Dzēst&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Opcejis&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Filtrēt sistemys lītuotuojus&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Fails&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Atjaunynuot&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Izīt&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Davīnuot lītuotuoju&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Davīnuot _grupu&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Paleidzeiba&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Ziņuot par kliudu&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Par...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Meklēt:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Pīlītuot filtru&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Lītuotuoji&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Grupys&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Lītuotuoji i grupys&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Lītuotuojvuords&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Lītuotuoja ID&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Primaruo grupa&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Pylns vuords&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Dasasliegšonuos čaula&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Sātys katalogs&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Statuss&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Grupys nūsaukums&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Grupys ID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Grupys daleibnīki&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Davīnuot lītuotuoju&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Davīnuot lītuotuoju sistemai&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Davīnuot grupu&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Davīnuot grupu sistemai&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Redigēt&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Redigēt izvālātū ryndu&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Dzēst&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Dzēst izvālatū ryndu&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Atjaunuot&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Atjaunuot sarokstu&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Blokeits&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Nūvacuojs&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Uzklikškinojit iz ikonys, lai tū nūmaineitu&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Izveiduot jaunu lītuotuoju&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Izveiduot sātys katalogu&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Sātys katalogs:&quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Izveiduot lītuotuojam privātu grupu&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Manuali nūruodeit lītuotuoja ID&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Itaids lītuotuojs jau eksistej, izavielejit cytu lītuotuojvuordu&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Parolis nasakreit&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Itei parole ir puoruok vīnkuorša. \n&quot;
++&quot;Lobom parolem juobyun vairuok kai 6 simbolim&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Lītuotuoja Uid ir &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Izveiduot lītuotuoju, kura UID ir mozuoks par 500, nav īteicams.\n&quot;
++&quot;Voi teišom jius gribit tū dareit?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Pīvīnoj %s grupai 'users'&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Teik radeita jauna grupa: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Teik davīnuots lītuotuojs: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Migrācejis paleigs&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;Voi jius gribit palaist migrācejis paleigu, lai importēt Windows dokumentus &quot;
++&quot;i īstatiejumus jiusu Maņdryva Linuks disribucejā?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Atceļt&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Labi&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID:&quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Izavielejit grupu&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Davīnuot asūšai grupai&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Davīnuot grupai 'users'&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Grupa ar itaidu nūsaukumu jau eksistej. Kū jius gribit dareit?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Izveiduot jaunu grupu&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Manuali nūruodeit grupys ID&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Itaida grupa jau eksistej, izavielejit cytu grupys nūsaukumu&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;Grupys Gid ir &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Izveiduot grupu, kurys GID ir mazuoks par 500, nav īteicams.\n&quot;
++&quot;Voi tīšom gribit tū dareit?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Teik davīnuota grupa: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID:&quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Dzēst failus voi nā?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Dziešūt lītuotuoju %s\n&quot;
++&quot; tiks veiktys ari šaidys darbeibys\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Dzēst sātys katalogu: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Izdzēst postkasti: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Teik dzāsts lītuotuojs: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Voi teišom gribit dzēst grupu %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s ir lītuotuoja %s primaruo grupa\n&quot;
++&quot; Vyspyrms izdziesit lītuotuoju&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Teik nūdzāsta grupa: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Pylns vuords:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Slāgvuords:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Parole:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Apstyprynuot paroli:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Dasasliegšonuos čaula:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Grupys nūsaukums:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Izavielejit vysmoz vīnu grupu lītuotuojam&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Nūruodit godu, mienesi i dīnu \n&quot;
++&quot; konta nūvacuošonai&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Lyudzu aizpiļdit vysus laukumus deļ parolis vacuma\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Jius navarit izdzēst lītuotuoju '%s' nu juo primaruos grupys&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Sāta:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Lītuotuoja dati&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Īslēgt konta nūvacuošonu&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Konts nūvacoj (GGGG-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Blokēt lītuotuoja kontu&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Konta informaceja&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Lītuotuojs pādejū reizi mainēja paroli:&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Īslēgt parolis nūvacuošonu&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Pyrms cik dīnom teik atļauta nūmaiņa:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Pyrms cik dīnom teik pīpraseita nūmaiņa:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Pyrms cik dīnom teik breidynuots par nūmaini:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Dīnu skaits da konta atsliegšonai:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Parolis informaceja&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Izavielejit grupys, kurom pīderēs lītuotuojs:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Grupys dati&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Izavielejit lītuotuojus, kū davīnuot itai grupai:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Grupys lītuotuoji&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Redigēt Grupys / Lītuotuoji&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Atkluota kliuda&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Aizvērt&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Autortīseibys (C) %s Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Lītuotuoju Puorvaļdeiba&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Maņdryva Linuks&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Māris Laureckis &lt;marisl@e-no.lv&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Vuorda lauks ir tukšs, lyudzu īvodit vuordu&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;Vuordā var byut tikai mozī latiņu alfabeta burti, cipari, '-' i '_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Vuords ir puoruok garš&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Kliuda&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;nazynoma kliuda&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Kliuda izveidojūt `%s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Autori:&quot;
++
++#~ msgid &quot;Choice&quot;
++#~ msgstr &quot;Izviele&quot;
++
++#~ msgid &quot;Yes&quot;
++#~ msgstr &quot;Da&quot;
++
++#~ msgid &quot;No&quot;
++#~ msgstr &quot;Nā&quot;
+
+<a id="userdrake2tags1133polvpo">Added: userdrake2/tags/1.13.3/po/lv.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/lv.po (rev 0)
++++ userdrake2/tags/1.13.3/po/lv.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,773 @@
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/lv.php3
++#
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) 2000 Free Software Foundation, Inc.
++# Vitauts Stočka &lt;vit@dau.lv&gt;, 2003.
++# Viesturs Lacis &lt;viescha@gmail.com&gt;, 2005.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake2\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2005-11-09 16:59+0200\n&quot;
++&quot;Last-Translator: Viesturs Lacis &lt;viescha@gmail.com&gt;\n&quot;
++&quot;Language-Team: Latvian &lt;ll10nt@listes.murds.lv&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=3; plural=(n%10==1 &amp;&amp; n%100!=11 ? 0 : n != 0 ? 1 : &quot;
++&quot;2);\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Kļūda, nolasot `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Kļūda, izveidojot `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Kļūda, novācot `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Kļūda, izveidojot pasta buferi.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Kļūda, izveidojot pasta buferi.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Kļūda, izveidojot pasta buferi.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;nezināma kļūda&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Kļūda, izveidojot pasta buferi.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Kļūda, dzēšot pasta buferi,\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Ielādēju lietotājus un grupas... Lūdzu, uzgaidiet&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageia Lietotāju Pārvaldības Rīks&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Darbības&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Rediģēt&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Dzēst&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Opcijas&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Filtrēt sistēmas lietotājus&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Fails&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Atjaunot&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Iziet&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Pievienot lietotāju&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Pievienot _grupu&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Palīdzība&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Ziņot par kļūdu&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Par...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Meklēt:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Noteikt filtru&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Lietotāji&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Grupas&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Lietotājvārds&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Lietotāja ID&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Primārā grupa&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Pilns vārds&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Čaula&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Sākumkatalogs&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Statuss&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Grupas nosaukums&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Grupas ID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Grupas dalībnieki&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Pievienot lietotāju&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Pievienot sistēmai lietotāju&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Pievienot grupu&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Pievienot sistēmai grupu&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Rediģēt&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Rediģēt izvēlēto rindu&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Dzēst&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Dzēst izvēlēto rindu&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Atjaunot&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Atjaunot sarakstu&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Bloķēts&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Novecojis&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Uzklikšķiniet uz ikonas, lai to nomainītu&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Izveidot jaunu lietotāju&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Izveidot sākumkatalogu&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Sākumkatalogs:&quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Izveidot lietotājam privātu grupu&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Manuāli norādīt lietotāja ID&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Šāds lietotājs jau eksistē, izvēlieties citu lietotājvārdu&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Paroles nesakrīt&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Šī parole ir pārāk vienkārša. \n&quot;
++&quot;Labā parolē jābūt vairāk nekā 6 simboliem&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Lietotāja Uid &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Izveidot lietotāju, kura UID ir mazāks par 500, nav ieteicams.\n&quot;
++&quot;Vai tiešām jūs vēlaties to darīt?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Pievienoju %s grupai 'users'&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Izveidoju jaunu grupu: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Pievienoju lietotāju: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Atsaukt&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Labi&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID:&quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Izvēlieties grupu&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Pievienot eksistējošai grupai&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Pievienot grupai 'users'&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Grupa ar šādu nosaukumu jau eksistē. Ko jūs vēlaties darīt?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Izveidot Jaunu Grupu&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Manuāli norādīt grupas ID&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Šāda grupa jau eksistē, izvēlieties citu grupas nosaukumu&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;Grupas Gid ir &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Izveidot grupu, kuras GID ir mazāks par 500, nav ieteicams.\n&quot;
++&quot;Vai tiešām vēlaties to darīt?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Pievienoju grupu: %s&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID:&quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Dzēst failus vai nē?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Dzēšot lietotāju %s\n&quot;
++&quot;tiks veiktas arī šādas darbības\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Dzēst sākumkatalogu: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Dzēst pastkasti: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Novācu lietotāju: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Vai tiešām vēlaties dzēst grupu %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s ir lietotāja %s primārā grupa\n&quot;
++&quot;Vispirms izdzēsiet lietotāju&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Novācu grupu: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Pilns vārds:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Vārds:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Parole:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Apstiprināt paroli:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Čaula:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Grupas nosaukums:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Lūdzu, izvēlieties vismaz vienu grupu lietotājam&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Lūdzu norādiet gadu, mēnesi un dienu\n&quot;
++&quot;konta novecošanai&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Lūdzu, norādiet visus laukus paroles novecošanai\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Jūs nevarat izslēgt lietotāju '%s' no viņa primārās grupas&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Sākums:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Lietotāja dati&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Atļaut konta novecošanu&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Konts noveco (GGGG-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Bloķēt lietotāja kontu&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Konta informācija&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Lietotājs pēdējo reizi mainīja paroli:&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Atļaut paroles novecošanu&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Dienas, līdz tiek atļauta nomaiņa:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Dienas līdz nomaiņas pieprasīšanai:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Dienas, cik brīdināt pirms nomaiņas:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Dienas, pirms konts kļūst neaktīvs:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Paroles informācija&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Izvēlieties grupas, kurām piederēs lietotājs:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Grupas dati&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Izvēlieties lietotājus, ko pievienot šai grupai:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Grupas lietotāji&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Rediģēt grupas / lietotājus&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Atklāta kļūda&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Aizvērt&quot;
++
++#: ../userdrake:1277
++#, fuzzy, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Autortiesības © 2003 Mandriva.&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Lietotāju pārvaldība&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Vārda lauks ir tukšs, lūdzu ievadiet vārdu&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;Vārdā var būt tikai mazie latīņu alfabēta burti, cipari,`-' un `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Vārds ir pārāk garš&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Kļūda&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;nezināma kļūda&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Kļūda, izveidojot `%s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Autori:&quot;
++
++#~ msgid &quot;Yes&quot;
++#~ msgstr &quot;Jā&quot;
++
++#~ msgid &quot;No&quot;
++#~ msgstr &quot;Nē&quot;
++
++#, fuzzy
++#~ msgid &quot;Delete files or not&quot;
++#~ msgstr &quot;Dzēst izvēlēto rindu&quot;
++
++#~ msgid &quot;Warning : Deleting User&quot;
++#~ msgstr &quot;Brīdinājums: Lietotāja dzēšana&quot;
++
++#~ msgid &quot;Warning : Deleting Group&quot;
++#~ msgstr &quot;Brīdinājums: Grupas dzēšana&quot;
+
+<a id="userdrake2tags1133pomkpo">Added: userdrake2/tags/1.13.3/po/mk.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/mk.po (rev 0)
++++ userdrake2/tags/1.13.3/po/mk.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,758 @@
++# translation of userdrake-mk.po to Macedonian
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/mk.php3
++#
++# This file is distributed under the same license as the PACKAGE package.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
++# Danko Ilik &lt;danko@mindless.com&gt;, 2003.
++# Зоран Димовски &lt;decata@mt.net.mk&gt;, 2004.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-mk\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2004-08-11 16:38+0200\n&quot;
++&quot;Last-Translator: Зоран Димовски &lt;decata@mt.net.mk&gt;\n&quot;
++&quot;Language-Team: Macedonian &lt;ossm-members@hedona.on.net.mk&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.3\n&quot;
++&quot;Plural-Forms: nplurals=2; plural= n==1 || n%10==1 ? 0 : 1\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Грешка при вчитување на `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Грешка при создавање `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Грешка при отстранување `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Грешка при содавање spool на поштата.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Грешка при содавање spool на поштата.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Грешка при содавање spool на поштата.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;непозната грешка&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Грешка при содавање spool на поштата.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Грешка при бришење на spool на поштата.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Зе вчитуваат Корисниците и Групите... Ве молиме почекајте&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageia Алатка за раководење со корисници&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Акции&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Уреди&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Бриши&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Опции&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Филтрирај ги системските корисници&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Датотека&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Освежи&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Напушти&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Додади корисник&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Додади _група&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Помош&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Пријави грешка&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_За...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Барај:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Примени филтер&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Корисници&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Групи&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Корисници и групи&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Корисничко име&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Кориснички ID&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Основна група&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Цело име&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Школка за логирање&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Домашен директориум&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Статус&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Име на групата&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Групна ID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Членови на групата&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Додади корисник&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Додади корисник на системот&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Додади група&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Додади група на системот&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Уреди&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Уреди го избраниот ред&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Отстрани&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Отстрани го избраниот ред&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Освежи&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Освежи ја листата&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Заклучено&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Изминато&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Притиснете на иконата за да ја смените&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Создади нов корисник&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Создади домашен директориум&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Домашен директориум: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Созадади приватна група за корисникот&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Рачно специфицирајте кориснички ID&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Корисникот веќе постои, ве молиме изберете друго корисничко име&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Лозинките не се совпаѓаат&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Оваа лозинка е премногу едноставна. \n&quot;
++&quot; Добрите лозинки треба да се повеќе од 6 карактери&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Корисничкиот Uid е помал од 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Содавањето на корисник со UID помалку од 500 не е препорачано.\n&quot;
++&quot;Дали сигурно сакате да го сторите ова?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Сместувам %s во 'корисничка' група&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Создавам нова група: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Додавам корисник: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Откажи&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Во ред&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Избери група&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Додади на постоечката група&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Додади на 'корисничката' група&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Веќе постои група со ова име. Што сакате да направите?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Создади нова група&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Рачно специфицирај ја групната ID&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Групата веќе постои, ве молиме изберете друго име за групата&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; Групното Gid е помало од 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Создавањето на група со GID помала од 500 не е препорачано.\n&quot;
++&quot; Дали сигурно сакате да го сторите ова?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Додавам група: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Дали да се избришат датотеките?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Отстранувам корисник %s\n&quot;
++&quot; Истотака, изврши ги следниве акции\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Избриши го домашниот директориум: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Избриши го поштенското сандаче &gt;/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Отстранувам корисник: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Дали навистина сакате да ја избришете групата %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s е основна група за корисникот %s\n&quot;
++&quot; Најпрво отстранете го корисникот&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Ја отстранувам групата: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Цело име:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Логин:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Лозинка:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Потврди ја лозинката:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Школка за логирање:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Име на групата:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Ве молиме изберете најмалку една група за корисникот&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Ве молиме специфицирајте Година, месец и ден \n&quot;
++&quot; за истекување на сметката &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Ве молиме повторно пополнете ги сите полина во лозинката\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Не можете да го отстраните корисникот '%s' од неговата основна група&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Дома:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Кориснички податоци&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Овозможи истекување на сметката&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Сметката истекува (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Заклучи ја корисничката сметка&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Информации за сметката&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Корисникот последен пат ја сменил лозинката на : &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Овозможи истекување на лозинката&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Денови пред дозвола за изменување :&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Денови пред потреба за измена :&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Предупредувачки денови пред измена :&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Денови пред деактивирање на сметката :&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Информации за лозинката&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Изберете на кои групи корисникот ќе биде член:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Податоци за групата&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Изберете ѓи корисниците кои ќе се приклучат на групата:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Корисници на групата&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Уреди Групи / Корисници&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Се случи грешка&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Затвори&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Авторски права (C) %s од „Mandriva“&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Раководење со корисници&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Зоран Димовски - zoki.dimovski@gmail.com\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Полето за име е празно. Ве молиме внесете име&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;Името мора да содржи само мали латински букви, бројки, `-' и `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Името е предолго&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Грешка&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;непозната грешка&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Грешка при создавање `%s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Автори: &quot;
+
+<a id="userdrake2tags1133pomnpo">Added: userdrake2/tags/1.13.3/po/mn.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/mn.po (rev 0)
++++ userdrake2/tags/1.13.3/po/mn.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,1075 @@
++# translation of userdrake.po to Mongolian
++# This file is distributed under the same license as the userdrake package.
++# Copyright (C) 2003
++# Sanlig Badral &lt;badral@openmn.org&gt;, 2003
++# Khurelbaatar Lkhagavsuren &lt;hujii247@yahoo.com&gt;, 2003
++# &lt;badral@openmn.org&gt;, 2003.
++#
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2003-12-23 11:34+0100\n&quot;
++&quot;Last-Translator: Sanlig Badral &lt;badral@openmn.org&gt;\n&quot;
++&quot;Language-Team: Mongolian &lt;openmn-linux@lists.sf.net&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#: ../USER/USER.xs:86
++#, fuzzy, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;pixmap файлыг ачаалж байхад алдаа: %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, fuzzy, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Хэрэглэгч (дийг) устгах&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;pixmap файлыг ачаалж байхад алдаа: %s&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++#, fuzzy
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;pixmap файлыг ачаалж байхад алдаа: %s&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;pixmap файлыг ачаалж байхад алдаа: %s&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;тодорхойгүй алдаа&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;pixmap файлыг ачаалж байхад алдаа: %s&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++#, fuzzy
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;pixmap файлыг ачаалж байхад алдаа: %s&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Хэрэглэгчийн драке&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Үйлдлүүл&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Зарах&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Устгах&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Сонголтууд&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Файл&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/Сэргээх&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Гарах&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Хэрэглэгч нэмэх&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/_Бүлэг нэмэх&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Тусламж&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Гажигийг мэдээлэх&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/Т_ухай...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Хайлт:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Хэрэглэгчид&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Бүлгүүд&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, fuzzy, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Бүлгүүдэд&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Хэрэглэгчийн нэр&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Хэрэглэгчийн ID&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Бүтэн нэр&quot;
++
++#: ../userdrake:187
++#, fuzzy, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Нэвтрэх&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Гэр лавлах&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Төлөв&quot;
++
++#: ../userdrake:194
++#, fuzzy, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Бүлэг&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Группын ID&quot;
++
++#: ../userdrake:194
++#, fuzzy, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Бүлгүүд&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Хэрэглэгч нэмэх&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Бүлэг нэмэх&quot;
++
++#: ../userdrake:197
++#, fuzzy, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Шинэ бүлэг нэмэх&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Засах&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Устгах&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Сэргээх&quot;
++
++#: ../userdrake:200
++#, fuzzy, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Хэрэглэгчдийн жагсаалт&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Түгжээтэй санах ой&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Гэр лавлах үүсгэх&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Гэр лавлах: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:414
++#, fuzzy, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Энэ нэр хэдийн системд орсон байна&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Нууц үгс ижил биш байна&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:457
++#, fuzzy, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Бүлгүүдийг харах&quot;
++
++#: ../userdrake:466
++#, fuzzy, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Хэрэглэгч нэмэх&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Хүчингүй&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Ок&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:510
++#, fuzzy, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Бүлгүүдийг харах&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:546
++#, fuzzy, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Үндсэн бүлэг&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:581
++#, fuzzy, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Бүлэг нэмэх&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:641
++#, fuzzy, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Ldap хавтас сонгох&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:651
++#, fuzzy, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Хэрэглэгч (дийг) устгах&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:702
++#, fuzzy, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Бүлэг (үүд)-ийг устгах&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Бүтэн нэр:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Нэвтрэх нэр:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Нууц үг:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Нууц үгээ бататгах:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Нэвтрэх тушаалын мөр:&quot;
++
++#: ../userdrake:820
++#, fuzzy, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Бүлэг:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Эзний гэр:&quot;
++
++#: ../userdrake:988
++#, fuzzy, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Хэрэглэгчдийн жагсаалт&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1031
++#, fuzzy, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Нууц үг&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1102
++#, fuzzy, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Бүлгийн жагсаалт&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1107
++#, fuzzy, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Бүлгүүд&quot;
++
++#: ../userdrake:1127
++#, fuzzy, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Хэрэглэгч (дийг) засах&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Хаах&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1280
++#, fuzzy, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Хэрэглэгчийн нэр&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Мандрива Линукс&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Алдаа&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;тодорхойгүй алдаа&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;pixmap файлыг ачаалж байхад алдаа: %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Зохиогчид: &quot;
++
++#~ msgid &quot;Yes&quot;
++#~ msgstr &quot;Тийм&quot;
++
++#~ msgid &quot;No&quot;
++#~ msgstr &quot;Үгүй&quot;
++
++#~ msgid &quot;Reload&quot;
++#~ msgstr &quot;Дахин ачаалах&quot;
++
++#~ msgid &quot;Save&quot;
++#~ msgstr &quot;Хадгалах&quot;
++
++#~ msgid &quot;Exit&quot;
++#~ msgstr &quot;Гарах&quot;
++
++#~ msgid &quot;Settings&quot;
++#~ msgstr &quot;Тохируулгууд&quot;
++
++#~ msgid &quot;Show tools bar&quot;
++#~ msgstr &quot;Хэрэгсэлүүдийн хавтанг харуул&quot;
++
++#~ msgid &quot;View users&quot;
++#~ msgstr &quot;Хэрэглэгчидийг харах&quot;
++
++#~ msgid &quot;Preferences&quot;
++#~ msgstr &quot;Лавлахууд&quot;
++
++#~ msgid &quot;Ldap Server&quot;
++#~ msgstr &quot;Ldap сервер&quot;
++
++#~ msgid &quot;Save change&quot;
++#~ msgstr &quot;Өөрчлөлтийг хадгалах&quot;
++
++#~ msgid &quot;Add&quot;
++#~ msgstr &quot;Нэмэх&quot;
++
++#~ msgid &quot;Add a user&quot;
++#~ msgstr &quot;Шинэ хэрэглэгч нэмэх&quot;
++
++#~ msgid &quot;Remove&quot;
++#~ msgstr &quot;Устгах&quot;
++
++#~ msgid &quot;Edit group(s)&quot;
++#~ msgstr &quot;Бүлэг (үүд)-ийг засах&quot;
++
++#~ msgid &quot;User id&quot;
++#~ msgstr &quot;Хэрэглэгчийн ТТ&quot;
++
++#~ msgid &quot;Group id&quot;
++#~ msgstr &quot;Группийн ТТ&quot;
++
++#~ msgid &quot;Comments&quot;
++#~ msgstr &quot;Тайлбарууд&quot;
++
++#~ msgid &quot;Shell&quot;
++#~ msgstr &quot;Тушаалын мөр&quot;
++
++#~ msgid &quot;name&quot;
++#~ msgstr &quot;нэр&quot;
++
++#~ msgid &quot;gid&quot;
++#~ msgstr &quot;gid&quot;
++
++#~ msgid &quot;passwd&quot;
++#~ msgstr &quot;нууц үг&quot;
++
++#~ msgid &quot;users&quot;
++#~ msgstr &quot;хэрэглэгчид&quot;
++
++#~ msgid &quot;Parameters&quot;
++#~ msgstr &quot;Параметрүүд&quot;
++
++#~ msgid &quot;General option&quot;
++#~ msgstr &quot;Ерөнхий сонголт&quot;
++
++#~ msgid &quot;Edit accounts on a LDAP directory&quot;
++#~ msgstr &quot;LDAP лавлахад байгаа дансуудыг засах&quot;
++
++#~ msgid &quot;Active autologin support&quot;
++#~ msgstr &quot;Автоматаар нэвтрэхийг идэвхжүүлэх&quot;
++
++#~ msgid &quot;User creation&quot;
++#~ msgstr &quot;Хэрэглэгч үүсгэлт&quot;
++
++#~ msgid &quot;Default shell:&quot;
++#~ msgstr &quot;Үндсэн тушаалын мөр:&quot;
++
++#~ msgid &quot;Default home dir:&quot;
++#~ msgstr &quot;Эзний гэрийн үндсэн зам:&quot;
++
++#~ msgid &quot;Default face:&quot;
++#~ msgstr &quot;Үндсэн нүүр:&quot;
++
++#~ msgid &quot;Default group:&quot;
++#~ msgstr &quot;Үндсэн бүлэг:&quot;
++
++#~ msgid &quot;General&quot;
++#~ msgstr &quot;Ерөнхий&quot;
++
++#~ msgid &quot;Don't show user with id less than 500&quot;
++#~ msgstr &quot;500-аас бага ТТ бүхий хэрэглэгчийг битгий харуул&quot;
++
++#~ msgid &quot;User identifier&quot;
++#~ msgstr &quot;Хэрэглэгчийн тодорхойлогч&quot;
++
++#~ msgid &quot;Groups list&quot;
++#~ msgstr &quot;Бүлгүүддийн жагсаалт&quot;
++
++#~ msgid &quot;Users View&quot;
++#~ msgstr &quot;Хэрэглэгчдийн харагдац&quot;
++
++#~ msgid &quot;Group identifier&quot;
++#~ msgstr &quot;Бүлгийн тодорхойлогч&quot;
++
++#~ msgid &quot;Groups View&quot;
++#~ msgstr &quot;Бүлгүүдийн харагдац&quot;
++
++#~ msgid &quot;/bin/bash&quot;
++#~ msgstr &quot;/bin/bash&quot;
++
++#~ msgid &quot;uid:&quot;
++#~ msgstr &quot;uid:&quot;
++
++#~ msgid &quot;Comment:&quot;
++#~ msgstr &quot;Тайлбар:&quot;
++
++#~ msgid &quot;Shell:&quot;
++#~ msgstr &quot;Тушаалын мөр:&quot;
++
++#~ msgid &quot;Home dir:&quot;
++#~ msgstr &quot;Эзний гэрийн зам:&quot;
++
++#~ msgid &quot;passwd:&quot;
++#~ msgstr &quot;Нууц үг:&quot;
++
++#~ msgid &quot;Retype passwd:&quot;
++#~ msgstr &quot;Нууц үгээ дахин бич:&quot;
++
++#~ msgid &quot;Identity&quot;
++#~ msgstr &quot;Илэрхийлэгч&quot;
++
++#~ msgid &quot;Available groups&quot;
++#~ msgstr &quot;Боломжтой бүлгүүд&quot;
++
++#~ msgid &quot;Extended&quot;
++#~ msgstr &quot;Өргөтгөгдсөн&quot;
++
++#~ msgid &quot;About UserDrake&quot;
++#~ msgstr &quot;Хэрэглэгчийн драке-ийн тухай&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;Userdrake is an application to add and\n&quot;
++#~ &quot;delete users on the Mageia\n&quot;
++#~ &quot;distribution.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;Userdrake now support ldap directory\n&quot;
++#~ &quot;support conformed to rfc2307bis.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;This application is under the GPL\n&quot;
++#~ &quot;license and is delived without\n&quot;
++#~ &quot;any warranty.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;You can get support at : \n&quot;
++#~ &quot;http://www.mandrakeexpert.com/&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;\&quot;Хэрэглэгчийн драке\&quot; бол Мандраке \n&quot;
++#~ &quot;Линукс-д хэрэглэгч нэмэх болон устгахад \n&quot;
++#~ &quot;хэрэглэгддэг программ юм.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;\&quot;Хэрэглэгчийн драке\&quot; одоо ldap лавлахыг\n&quot;
++#~ &quot; rfc2307bis-ийн дагуу дэмждэг болсон. \n&quot;
++#~ &quot;Энэ программ нь GPL лицензтэй бөгөөд\n&quot;
++#~ &quot;энэ танд ямар нэгэн баталгаат үйлчилгээ\n&quot;
++#~ &quot;өгөхгүй.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;Та тусламж дэмжлэгийг \n&quot;
++#~ &quot;http://www.mandrakeexpert.com/\n&quot;
++#~ &quot;хаягаар авч болно.&quot;
++
++#~ msgid &quot;Name:&quot;
++#~ msgstr &quot;Нэр:&quot;
++
++#~ msgid &quot;gid:&quot;
++#~ msgstr &quot;gid:&quot;
++
++#~ msgid &quot;In group&quot;
++#~ msgstr &quot;Бүлгэд&quot;
++
++#~ msgid &quot;Not in group&quot;
++#~ msgstr &quot;Бүлгэд биш&quot;
++
++#~ msgid &quot;Quit userdrake?&quot;
++#~ msgstr &quot;Хэрэглэгчийн драке-ээс гарах уу?&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;You have made changes\n&quot;
++#~ &quot;since the last save.\n&quot;
++#~ &quot;Do you really want to quit\n&quot;
++#~ &quot;userdrake?&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Та хамгийн сүүлд хадгалсанаасаа\n&quot;
++#~ &quot;хойш өөрчлөлтүүд хийсэн байна. \n&quot;
++#~ &quot;Та үнэхээр \&quot;Хэрэглэгчийн драке\&quot;-аас\n&quot;
++#~ &quot;гарахыг хүсэж байна уу?&quot;
++
++#~ msgid &quot;Enter new passwd&quot;
++#~ msgstr &quot;Шинэ нууц үгээ оруул&quot;
++
++#~ msgid &quot;new passwd:&quot;
++#~ msgstr &quot;шинэ нууц үг&quot;
++
++#~ msgid &quot;Change&quot;
++#~ msgstr &quot;Өөрчлөх&quot;
++
++#~ msgid &quot;Change face&quot;
++#~ msgstr &quot;Нүүр өөрчлөх&quot;
++
++#~ msgid &quot;Set passwd&quot;
++#~ msgstr &quot;Нууц үг олгох&quot;
++
++#~ msgid &quot;User autologin&quot;
++#~ msgstr &quot;Хэрэглэгч автоматаар нэвтрэх&quot;
++
++#~ msgid &quot;UserDrake - Error&quot;
++#~ msgstr &quot;\&quot;Хэрэглэгчийн драке\&quot; - Алдаа&quot;
++
++#~ msgid &quot;couldn't find blue color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;/usr/lib/X11/rgb.txt файлд цэнхэр өнгө олж чадсангүй&quot;
++
++#~ msgid &quot;Select the image to use&quot;
++#~ msgstr &quot;Хэрэглэх зургаа сонго&quot;
++
++#~ msgid &quot;Custom...&quot;
++#~ msgstr &quot;Хэрэглэгчийн...&quot;
++
++#~ msgid &quot;couldn't find grey color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;/usr/lib/X11/rgb.txt файлд саарал өнгө олж чадсангүй&quot;
++
++#~ msgid &quot;couldn't find black color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;/usr/lib/X11/rgb.txt файлд хар өнгө олж чадсангүй&quot;
++
++#~ msgid &quot;login empty&quot;
++#~ msgstr &quot;нэвтрэц хоосон&quot;
++
++#~ msgid &quot;This login already exists on the system&quot;
++#~ msgstr &quot;Энэ нэвтрэц системд хэдийн орсон байна&quot;
++
++#~ msgid &quot;The login is similar to a name's group&quot;
++#~ msgstr &quot;Энэ нэвтрэц нэгэн бүлгийн нэртэй ижил байна&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;User id already in use&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;гэсэн хэрэглэгчийн ТТ хэдийн хэрэглэгдэж байна&quot;
++
++#~ msgid &quot;User id already in use&quot;
++#~ msgstr &quot;Хэрэглэгчийн ТТ хэдийн хэрэглэгдэж байна&quot;
++
++#~ msgid &quot;name empty&quot;
++#~ msgstr &quot;нэр хоосон&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;Group id already in use&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;гэсэн группийн ТТ хэдийн хэрэглэгдэж байна&quot;
++
++#~ msgid &quot;Group id already in use&quot;
++#~ msgstr &quot;Бүлгийн ТТ хэдийн хэрэглэгдэж байна&quot;
++
++#~ msgid &quot;Couldn't find pixmap file: %s&quot;
++#~ msgstr &quot;pixmap файлыг олж чадсангүй: %s&quot;
++
++#~ msgid &quot;%s: the file %s is busy (%s present)\n&quot;
++#~ msgstr &quot;%s: %s гэсэн файл завгүй байна (%s илэрхийлсэн)\n&quot;
++
++#~ msgid &quot;%s: can't link %s: %s\n&quot;
++#~ msgstr &quot;%s: %s-ийг холбож чадахгүй: %s\n&quot;
++
++#~ msgid &quot;%s: can't unlock %s: %s (your changes are still in %s)\n&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;%s: %s-ийн түгжээг гаргаж чадахгүй: %s (таны өөрчлөлтүүд одоо хүртэл %s-д &quot;
++#~ &quot;байна)\n&quot;
++
++#~ msgid &quot;Error in stat on tmp files when i try to unlock lib\n&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Error in stat on tmp files when i try to unlock lib-ийн түгжээг гаргахаар &quot;
++#~ &quot;оролдох үед tmp файлуудын төлөвд алдаа\n&quot;
++
++#~ msgid &quot;%s: no changes made\n&quot;
++#~ msgstr &quot;%s: ямар ч өөрчлөлт хийгдсэнгүй\n&quot;
++
++#~ msgid &quot;Server address:&quot;
++#~ msgstr &quot;Серверийн хаяг:&quot;
++
++#~ msgid &quot;Bind DN:&quot;
++#~ msgstr &quot;DN холбоос:&quot;
++
++#~ msgid &quot;Connection Type :&quot;
++#~ msgstr &quot;Холболтын төрөл:&quot;
++
++#~ msgid &quot;ssl&quot;
++#~ msgstr &quot;ssl&quot;
++
++#~ msgid &quot;Validate&quot;
++#~ msgstr &quot;Батлах&quot;
++
++#~ msgid &quot;Test&quot;
++#~ msgstr &quot;Тест&quot;
++
++#~ msgid &quot;cannot change ldap version to 3: %s&quot;
++#~ msgstr &quot;ldap-ийн хувилбарыг 3 болгож өөрчилж чадахгүй: %s&quot;
++
++#~ msgid &quot;cannot connect to the ldap server\n&quot;
++#~ msgstr &quot;ldap сервер лүү холбогдож чадахгүй\n&quot;
++
++#~ msgid &quot;cannot bind to the ldap server, %d\n&quot;
++#~ msgstr &quot;ldap сервер лүү нэгтгэж чадахгүй, %d\n&quot;
++
++#~ msgid &quot;Cannot bind to ldap server&quot;
++#~ msgstr &quot;ldap сервер лүү нэгтгэж чадахгүй&quot;
++
++#~ msgid &quot;cannot save because the cannot connect to the ldap server&quot;
++#~ msgstr &quot;хадгалж чадахгүй, учир нь ldap сервер лүү холбогдож чадахгүй байна&quot;
++
++#~ msgid &quot;cannot relock lib&quot;
++#~ msgstr &quot;lib-ийг дахин түгжиж чадахгүй&quot;
+
+<a id="userdrake2tags1133pomspo">Added: userdrake2/tags/1.13.3/po/ms.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/ms.po (rev 0)
++++ userdrake2/tags/1.13.3/po/ms.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,759 @@
++# ms Bahasa Melayu (Malay) (ms)
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/ms.php3
++#
++# UserDrake Bahasa Indonesia
++# Copyright (C) 2001, 2008 Free Software Foundation, Inc.
++#
++# Budi Rachmanto &lt;rac@linux-mandrake.com&gt;, 2001, 2002.
++# Yuzz &lt;yuzz@emasonline.com&gt;, 2002.
++# Sharuzzaman Ahmat Raslan &lt;sharuzzaman@myrealbox.com&gt;, 2008.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2008-09-16 23:09+0800\n&quot;
++&quot;Last-Translator: Sharuzzaman Ahmat Raslan &lt;sharuzzaman@myrealbox.com&gt;\n&quot;
++&quot;Language-Team: Malay &lt;translation-team-ms@lists.sourceforge.net&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=1;\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Ralat membaca `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Ralat mencipta `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Ralat membuang `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Ralat mencipta gulungan mel.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Ralat mencipta gulungan mel.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Ralat mencipta gulungan mel.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;ralat tidak diketahui&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Ralat mencipta gulungan mel.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Ralat memadam gulungan mel.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Memuatkan Pengguna dan Kumpulan... Sila tunggu&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Alatan Mengurus Pengguna Mageia&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Aksi&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Edit&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/Pa_dam&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Pilihan&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Tapis pengguna sistem&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Fail&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Baru&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Keluar&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Tambah user&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Tambah _kumpulan&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Bantuan&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Lapor Pepijat&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Keterangan&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Cari:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Terap tapisan&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;User&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Kumpulan&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Pengguna dan kumpulan&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Nama Pengguna&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ID Pengguna&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Kumpulan Utama&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Nama Penuh&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Shell Logmasuk&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Direktori rumah&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Status&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Nama Kumpulan&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ID kumpulan&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Ahli Kumpulan&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Tambah pengguna&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Tambah pengguna kepada sistem&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Tambah kumpulan&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Tambah kumpulan kepada sistem&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Edit&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Edit baris dipilih&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Hapus&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Padam baris dipilih&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Segarkan&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Segarkan senarai&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Terkunci&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Tamat tempoh&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Klik pada ikon untuk mengubahnya&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Cipta user baru&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Cipta direktori rumah&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Direktori rumah: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Cipta kumpulan peribadi bagi pengguna&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Nyatakan ID pengguna secara manual&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Pengguna telah wujud, sila pilih Nama Pengguna lain&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Katalaluan tidak sama&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Katalaluan ini terlalu mudah. \n&quot;
++&quot; Katalaluan yang baik seharusnya &gt; 6 aksara&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Uid pengguna adalah &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Mencipta pengguna dengan UID kurang dari 500 tidak disyorkan.\n&quot;
++&quot; Anda pasti anda mahu melakukannya?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Meletakkan %s ke kumpulan 'users'&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Mencipta kumpulan baru: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Menambah pengguna: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Wizard pemindahan&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;Adakah anda hendak melaksanakan wizard pemindahan untuk mengimport dokumen &quot;
++&quot;dan tetapan Windows dalam edaran Mageia anda?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Batal&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Ok&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Pilih kumpulan&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Tambah ke kumpulan yang ada&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Tambah ke kumpulan 'users'&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Kumpulan dengan nama itu sudah wujud. Adakah anda ingin melakukannya?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Cipta Kumpulan baru&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Nyatakan ID kumpulan secara manual&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Kumpulan telah wujud, sila pilih Nama Kumpulan lain&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; Gid kumpulan adalah &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Penciptaan kumpulan dengan GID kurang dari 500 tidak dicadangkan.\n&quot;
++&quot; Adakah anda pasti anda hendak melakukannya?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Menambah kumpulan: %s&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Padam fail atau tidak?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Memadam pengguna %s\n&quot;
++&quot; Juga melaksanakan tindkan berikut\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Padam direktori rumah: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Padam Kotakmel: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Membuang pengguna: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Adakah anda pasti untuk memadam kumpulan %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s adalah kumpulan utama untuk pengguna %s\n&quot;
++&quot; Buang pengguna dahulu&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Membuang kumpulan: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Nama Penuh:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Login:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Katalaluan:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Sahkan Katalaluan:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Shell Logmasuk:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Nama kumpulan:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Sila pilih sekurang-kurangnya satu kumpulan bagi pengguna&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Sila nyatakan Tahun, Bulan dan Hari \n&quot;
++&quot; untuk Tempoh Tamat Akaun&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Sila penuhkan semua medan dalam penuaan katalaluan\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Anda tidak boleh membuang pengguna '%s' dari kumpulan utamanya&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Rumah:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Data Pengguna&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Hidupkan peluputan akaun&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Akaun luput (TTTT-BB-HH):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Kunci Akaun Pengguna&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Maklumat Akaun&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Pengguna terakhir menukar katalaluan pada:&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Hidupkan Peluputan Katalaluan&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Hari sebelum perubahan diizinkan:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Hari sebelum penukaran diperlukan:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Hari amaran sebelum tukar:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Hari sebelum akaun tidak aktif:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Maklumat Katalaluan&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Pilih kumpulan dimana pengguna akan menjadi ahli:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Data Kumpulan&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Pilih pengguna untuk menyertai kumpulan ini:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Kumpul Pengguna&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Sunting Kumpulan / Pengguna&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Ralat telah berlaku&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Tutup&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Hakcipta (C) %s oleh Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Pengurusan Pengguna&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Sharuzzaman Ahmat Raslan &lt;sharuzzaman@myrealbox.com&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Medan nama kosong, sila nyatakan nama&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++&quot;Nama mesti mengandungi hanya aksara latin hufuf kecil, nombor, `-' dan `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Nama terlalu panjang&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Ralat&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;ralat tidak diketahui&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Ralat mencipta `%s': %s&quot;
+
+<a id="userdrake2tags1133pomtpo">Added: userdrake2/tags/1.13.3/po/mt.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/mt.po (rev 0)
++++ userdrake2/tags/1.13.3/po/mt.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,760 @@
++# translation of mt.po to Maltese
++# translation of userdrake-mt.po to
++# translation of userdrake-mt.po to
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/mt.php3
++#
++# Copyright (C) 2003, 2004 Free Software Foundation, Inc.
++# Ramon Casha &lt;ramon.casha@linux.org.mt&gt;, 2002, 2004.
++# Ramon Casha &lt;rcasha@waldonet.net.mt&gt;, 2003.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: mt\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2004-09-03 18:55+0200\n&quot;
++&quot;Last-Translator: Ramon Casha &lt;ramon.casha@linux.org.mt&gt;\n&quot;
++&quot;Language-Team: Maltese &lt;mt@li.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.3\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Problema fil-qari ta' \&quot;%s\&quot;: %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Problema biex jinħoloq \&quot;%s\&quot;: %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Problema biex jitħassar \&quot;%s\&quot;: %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Problema biex jinħoloq spool tal-imejl.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Problema biex jinħoloq spool tal-imejl.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Problema biex jinħoloq spool tal-imejl.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;problema mhux magħrufa&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Problema biex jinħoloq spool tal-imejl.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Problema biex jitħassar spool tal-imejl.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Qed jittellgħu utenti u gruppi... stenna ftit&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Għodda tal-Mageia għall-Immaniġġjar tal-Utenti&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Azzjonijiet&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Editja&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Ħassar&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/Għaż_liet&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/I_ffiltra l-utenti tas-sistema&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Fajl&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/E_rġa' tella'&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/O_ħroġ&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Żid utent&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Żid _Grupp&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Għajnuna&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/I_rrapporta problema&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Dwar...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Fittex:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Applika filtru&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Utenti&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Gruppi&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Utenti u gruppi&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Isem il-utent&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ID tal-utent&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Grupp ewlieni&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Isem sħiħ&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Shell tal-login&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Direttorju personali&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Status&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Isem il-grupp&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ID tal-Grupp&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Membri tal-grupp&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Żid utent&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Żid utent mas-sistema&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Żid grupp&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Żid grupp mas-sistema&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Ibdel&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Ibdel il-linja magħżula&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Ħassar&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Ħassar il-linja magħżula&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Erġa' tella'&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Erġa' tella' l-lista&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Imsakkar&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Skadut&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Klikkja fuq l-ikona biex tibdilha&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Oħloq utent ġdid&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Oħloq direttorju personali&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Direttorju personali:&quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Oħloq grupp privat għall-utent&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Speċifika ID tal-utent manwalment&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Dan l-isem diġà jeżisti; jekk jogħġbok agħżel ieħor&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Passwords ma jaqblux&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Dan il-password sempliċi wisq.\n&quot;
++&quot;Passwords tajbin iridu jkunu twal &gt;6 ittri.&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;ID tal-utent &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Li toħloq ID ta' utent inqas minn 500 mhux rakkomandat.\n&quot;
++&quot;Żgur li trid tagħmel dan?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Qed jiġi miżjud %s mal-grupp \&quot;users\&quot;&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Qed jinħoloq grupp: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Qed jiġi miżjud utent: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Ikkanċella&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Ok&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Agħżel grupp&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Żid ma' grupp eżistenti&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Żid mal-grupp \&quot;users\&quot;&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Diġà jeżisti grupp b'dan l-isem. X'tixtieq tagħmel?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Oħloq grupp ġdid&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Speċifika l-ID tal-grupp manwalment&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Dan l-isem ta' grupp diġà jeżisti. Jekk jogħġbok agħżel ieħor.&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;ID tal-grupp &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Li toħloq ID ta' grupp inqas minn 500 mhux rakkomandat.\n&quot;
++&quot;Żgur li trid tagħmel dan?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Qed jiġi miżjud grupp: %s&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Trid tħassar il-fajls jew le?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Qed jitħassar utent %s\n&quot;
++&quot; Agħmel ukoll dan li ġej\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Ħassar id-direttorju personali: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Ħassar il-kaxxa tal-ittri: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Qed jitneħħa utent: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Żgur trid tneħħi l-grupp %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s huwa l-grupp ewlieni tal-utent %s\n&quot;
++&quot; L-ewwel ħassar lill-utent&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Qed jitneħħa grupp: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Isem sħiħ:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Login:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Password:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Ikkonferma password:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Shell tal-login:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Isem il-grupp:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Agħżel ta' l-inqas grupp wieħed għall-utent&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Jekk jogħġbok speċifika s-sena, xahar u ġurnata\n&quot;
++&quot;meta jiskadi l-kont &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Jekk jogħġbok speċifika d-dettalji tal-iskadenza tal-password\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Ma tistax tneħħi l-utent \&quot;%s\&quot; mill-grupp ewlieni&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Direttorju personali:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Informazzjoni tal-utent&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Kont jiskadi&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Kont jiskadi (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Sakkar il-kont tal-utent&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Info. dwar Kont&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Il-utent l-aħħar li bidel il-password f':&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Password tiskadi&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Ġranet qabel tħalli tibdil :&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Ġranet qabel jiġi mġiegħel tibdil :&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Ġranet ta' twissija qabel jiskadi :&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Ġranet qabel jiġi inattivat il-kont :&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Info. Password&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Agħżel il-gruppi li l-utent huwa membru tagħhom:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Info. grupp&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Agħżel liema utenti se jkunu membri tal-grupp :&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Utenti tal-grupp&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Editja gruppi u utenti&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Inqalgħet problema&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Agħlaq&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Maniġġjar tal-utenti&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Ramon Casha &lt;ramon.casha@linux.org.mt&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;L-isem huwa vojt. Jekk jogħġbok ipprovdi isem&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++&quot;L-isem jista' jinkludi biss ittri żgħar bl-alfabett Infliż, numri, \&quot;-\&quot; u &quot;
++&quot;\&quot;_\&quot;&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Isem twil wisq&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Problema&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;problema mhux magħrufa&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Problema biex jinħoloq \&quot;%s\&quot;: %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Awturi: &quot;
+
+<a id="userdrake2tags1133ponbpo">Added: userdrake2/tags/1.13.3/po/nb.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/nb.po (rev 0)
++++ userdrake2/tags/1.13.3/po/nb.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,760 @@
++# translation of nb.po to Norwegian Bokmål
++# translation of nb.po to
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/no.php3
++#
++# UserDrake.
++# Copyright (C) 2000 Mandriva
++# Andreas Bergstrøm
++#
++# Terje Bjerkelia &lt;terje@bjerkelia.com&gt;, 2000,2002.
++# Per Øyvind Karlsen &lt;peroyvind@sintrax.net&gt;, 2003, 2004.
++# Keld Simonsen &lt;keld@dkuug.dk&gt;, 2007.
++# Olav Dahlum &lt;odahlum@gmail.com&gt;, 2009, 2010.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: nb\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2010-02-03 19:57+0100\n&quot;
++&quot;Last-Translator: Olav Dahlum &lt;odahlum@gmail.com&gt;\n&quot;
++&quot;Language-Team: Norwegian Bokmål &lt;cooker-i18n@mandrivalinux.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Feil under lesing av «%s»: %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Feil under opprettelse av «%s»: %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Feil ved fjerning av «%s»: %s&quot;
++
++#: ../USER/USER.xs:490
++#, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Opprettelse av konto mislyktes: «%s».\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;Kan ikke hente UID-nummer&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;Kan ikke hente verdi&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Feil under opprettelse av epostkø.\n&quot;
++
++#: ../USER/USER.xs:582
++#, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Brukeren kunne ikke endres: «%s».\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Brukeren kunne ikke bli slettet: «%s».\n&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;Kunne ikke sette passord: «%s».\n&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;ukjent feil&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Opprettelse av gruppa mislyktes.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;Gruppa kunne ikke endres: «%s».\n&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;Gruppa kunne ikke slettes: «%s».\n&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;Ingen hjemmemappe for brukeren.\n&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Hjemmemappa kunne ikke slettes: «%s».\n&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Feil ved sletting av epostboks\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Vent litt … laster brukere og grupper&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Brukeradministreringsverktøy for Mageia &quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;/_Sett opp gjestkonto&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;/_Fjern gjestkonto&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Handlinger&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Rediger&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Slett&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Valg&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Filtrer systembrukere&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Fil&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Oppdater&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Avslutt&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;A&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Legg til bruker&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Legg til _gruppe&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Hjelp&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Rapporter feil&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Om …&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Søk:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Legg til filter&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Brukere&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Grupper&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Brukere og grupper&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Brukernavn&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Bruker-ID&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Primærgruppe&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Fullt navn&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Innloggingsskall&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Hjemmeområde&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Status&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Gruppenavn&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Gruppe-ID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Gruppemedlemmer&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Legg til bruker&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Legg en bruker til systemet&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Legg til gruppe&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Legg en gruppe til systemet&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Rediger&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Rediger valgt rad&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Slett&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Slett valgt rad&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Oppdater&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Oppdater listen&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Stengt&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Utløpt&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Klikk på ikonet for å endre det&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Lag ny bruker&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Lag hjemmeområde&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Hjemmekatalog: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Opprett en privat gruppe for brukeren&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Angi bruker-ID manuelt&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Brukeren finnes allerede, vennligst velg et annet brukernavn&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Passordene er ulike&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Passordet er for enkelt. \n&quot;
++&quot;Gode passord bør være lengre enn seks tegn&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;BrukerID er lavere enn 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Å legge til en bruker med UID(brukerID) lavere enn 500 er ikke anbefalt.\n&quot;
++&quot; Er du sikker på at du vil gjøre dette?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Legger til %s i gruppa «users»&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Oppretter ny gruppe: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Legger til bruker: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Migrasjonsveiviser&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;Ønsker du å kjøre migrasjonsveiviseren for å importere dokumenter og oppsett &quot;
++&quot;fra Windows til Mageia?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Avbryt&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;OK&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Velg gruppe&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Legg til eksisterende gruppe&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Legg til i gruppa «users»&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;En gruppe med dette navnet finnes allerede. Hva vil du gjøre?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Lag ny gruppe&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Angi gruppe-ID manuelt&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Gruppene finnes allerede, vennligst velg et annet gruppenavn&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;GruppeID er lavere enn 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Å lage en gruppe med GID lavere enn 500 er ikke anbefalt.\n&quot;
++&quot; Er du sikker på at du vil dette?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Legger til gruppe: %s&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Slette filer?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Sletter bruker %s\n&quot;
++&quot; Utfør også følgende handlinger\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Slett hjemmekatalog: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Slett e-postboks: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Fjerner bruker: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Vil du virkelig slette gruppa %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s er en primær gruppe for bruker %s\n&quot;
++&quot; Fjern brukeren først&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Fjerner gruppe: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Fullt navn:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Brukernavn:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Passord:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Bekreft passord:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Innloggingsskall:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Gruppenavn:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Vennligst velg minst en gruppe for brukeren&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Vennligst angi dato, måned og dag \n&quot;
++&quot; for kontoens utløpsdato &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Vennligst fyll inn alle feltene for passordelding\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Du kan ikke fjerne bruker «%s» fra den primære gruppa&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Hjem:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Brukerdata&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Slå på utløpsdato for konto&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Konto utløper (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Lås brukerkonto&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Kontoinfo&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Bruker skiftet passord den :&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Slå på utløpsdato for passord&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Dager før skifte er tillatt :&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Dager før skifte kreves :&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Antall dager med varsel før skifte :&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Dager før konto blir stengt:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Passordinfo&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Velg gruppene som brukeren skal bli medlem av:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Gruppedata&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Velg brukere som skal være med i denne gruppa:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Gruppebrukere&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Rediger grupper/brukere&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;En feil oppstod:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Lukk&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Alle rettigheter (C) %s Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Håndtering av brukere&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++&quot;Olav Dahlum &lt;odahlum@gmail.com&gt;, 2009\n&quot;
++&quot;Per Øyvind Karlsen &lt;pkarlsen@mandriva.com&gt;, 2003-2006.\n&quot;
++&quot;Eskild Hustvedt &lt;eskild@mandriva.org&gt;, 2004-2005.\n&quot;
++&quot;Kenneth Rørvik &lt;kenneth@rorvik.net&gt;, 2003-2004.\n&quot;
++&quot;Olav Dahlum &lt;odahlum@gmail.com&gt;, 2006.\n&quot;
++&quot;Keld Simonsen &lt;keld@dkuug.dk&gt;, 2004.\n&quot;
++&quot;Terje Bjerkelia &lt;terje@bjerkelia.com&gt;, 1999-2000.\n&quot;
++&quot;Andreas Bergstrøm &lt;abergstr@halden.net&gt;, 2000.\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Feltet Navn er tomt, vennligst oppgi et navn&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;Navnet kan bare innholde små bokstaver, numre, «-» og «_»&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Navnet er for langt&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Feil&quot;
++
+
+<a id="userdrake2tags1133ponlpo">Added: userdrake2/tags/1.13.3/po/nl.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/nl.po (rev 0)
++++ userdrake2/tags/1.13.3/po/nl.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,773 @@
++# translation of userdrake-nl.po to Nederlands
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/nl.php3
++#
++# Copyright (C) 2000,2003,2004 Free Software Foundation, Inc.
++# GEERT POELS &lt;Geert.Poels@skynet.be&gt;, 2000.
++# Reinout van Schouwen &lt;reinouts@gnome.org&gt;, 2001-2007.
++# Peter Bosch &lt;peter.bosch@hccnet.nl&gt;, 2002.
++# Hendrik-Jan Heins &lt;hjh@passys.nl&gt;, 2003,2004.
++# Rob Teng &lt;mandrake.tips@free.fr&gt;, 2004.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-nl\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2007-09-25 00:36+0200\n&quot;
++&quot;Last-Translator: Reinout van Schouwen &lt;reinouts@gnome.org&gt;\n&quot;
++&quot;Language-Team: Nederlands\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Fout bij lezen `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Fout bij aanmaken `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Fout bij verwijderen `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Fout bij het aanmaken van de e-mail-wachtrij.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Fout bij het aanmaken van de e-mail-wachtrij.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Fout bij het aanmaken van de e-mail-wachtrij.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;Onbekende fout&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Fout bij het aanmaken van de e-mail-wachtrij.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Fout bij het verwijderen van de e-mail-wachtrij.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Laden van gebruikers en groepen... Even geduld&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageia gebruikersbeheer&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Acties&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/Be_werken&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Verwijderen&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Opties&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Systeemgebruikers weglaten&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Bestand&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Vernieuwen&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/A_fsluiten&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/Ge_bruiker toevoegen&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/_Groep toevoegen&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Hulp&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/P_rogrammafout rapporteren&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Info...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Zoeken:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Filter toepassen&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Gebruikers&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Groepen&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Gebruikers en groepen&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Gebruikersnaam&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Gebruikers-ID&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Primaire groep&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Volledige naam&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Aanmeldshell&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Persoonlijke map&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Status&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Groepsnaam&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Groep-ID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Groepsleden&quot;
++
++# broken into two lines to avoid too large a button
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;&quot;
++&quot;Gebruiker\n&quot;
++&quot;toevoegen&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Gebruiker toevoegen aan het systeem&quot;
++
++# broken into two lines to avoid too large a button
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;&quot;
++&quot;Groep\n&quot;
++&quot;toevoegen&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Groep toevoegen aan het systeem&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Bewerken&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Geselecteerde rij bewerken&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Verwijderen&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Geselecteerde rij verwijderen&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Verversen&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;De lijst verversen&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Afgesloten&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Verlopen&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Klik op het pictogram om het te veranderen&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Nieuwe gebruiker aanmaken&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Persoonlijke map aanmaken&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Persoonlijke map: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Privé-groep aanmaken voor de gebruiker&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Handmatig gebruikers-ID opgeven&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;De gebruiker bestaat al, kies een andere gebruikersnaam&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Wachtwoord komt niet overeen&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Dit wachtwoord is te eenvoudig. \n&quot;
++&quot;Een goed wachtwoord bevat tenminste 6 karakters&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Gebruikers UID is &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Een gebruiker aanmaken met een UID lager dan 500 wordt niet aangeraden.\n&quot;
++&quot; Weet u zeker dat u dit wilt doen?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Bezig met toevoegen %s aan de groep 'users'&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Bezig met aanmaken nieuwe groep: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Bezig met toevoegen gebruiker: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Migratiewizard&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;Wilt u de migratiewizard uitvoeren om uw Windows-documenten en -instellingen &quot;
++&quot;te importeren in uw Mageia-installatie?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Annuleren&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Ok&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Kies een groep&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Toevoegen aan de bestaande groep&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Toevoegen aan de groep 'users'&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Een groep met deze naam bestaat al. Wat wilt u nu doen?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Nieuwe groep aanmaken&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Handmatig groeps-ID opgeven&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;De groep bestaat al, kies een andere groepsnaam&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; De groep GID is &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Een groep aanmaken met een GID van lager dan 500 wordt niet aangeraden.\n&quot;
++&quot; Weet u zeker dat u dit wilt doen?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Bezig met toevoegen groep: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Bestanden verwijderen?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Verwijderen van gebruiker %s\n&quot;
++&quot; Voer ook de volgende acties uit\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Persoonlijke map verwijderen: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Verwijder Mailbox :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Bezig met verwijderen gebruiker: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Weet u zeker dat u de groep %s wilt verwijderen?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s is een primaire groep voor gebruiker %s\n&quot;
++&quot; Verwijder eerst de gebruiker&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Bezig met verwijderen groep: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Volledige naam:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Aanmeldnaam:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Wachtwoord:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Bevestig wachtwoord:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Aanmeldshell:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Groepsnaam:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Selecteer tenminste één groep voor de gebruiker&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Geef een jaar, maand en dag op \n&quot;
++&quot; waarop de account verloopt &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Vul alle velden in voor wachtwoord-verloop\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;U kunt gebruiker ‘%s’ niet verwijderen uit zijn primaire groep&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Persoonlijke map:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Gebruikersgegevens&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Verlopen van account inschakelen&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Account verloopt op (JJJJ-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Gebruikersaccount op slot zetten&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Account-informatie&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;De gebruiker heeft het wachtwoord voor het laatst veranderd op: &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Verlopen van wachtwoord inschakelen&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Dagen voor verandering wordt toegestaan: &quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Dagen voor verandering noodzakelijk is:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Dagen voordat veranderwaarschuwing wordt gegeven:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Dagen voordat de account wordt gedeactiveerd:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Wachtwoord-informatie&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Selecteer de groepen waar de gebruiker lid van moet zijn:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Groepsgegevens&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Selecteer de gebruikers die lid moeten zijn van deze groep:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Gebruikers groeperen&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Groepen / gebruikers bewerken&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Er is een fout opgetreden:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Sluiten&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Copyright © %s door Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Gebruikersbeheer&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++&quot;Reinout van Schouwen &lt;reinouts@gnome.org&gt;\n&quot;
++&quot;Rob Teng &lt;mandrake.tips@free.fr&gt;\n&quot;
++&quot;Geert Poels &lt;Geert.Poels@skynet.be&gt;\n&quot;
++&quot;Peter Bosch &lt;peter.bosch@hccnet.nl&gt;\n&quot;
++&quot;Hendrik-Jan Heins &lt;hjh@passys.nl&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Naam-veld is leeg, geef een naam op&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++&quot;De naam mag alleen bestaan uit kleine Latijnse letters, cijfers, `-' en `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;De naam is te lang&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Fout&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;Onbekende fout&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Fout bij aanmaken `%s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Auteurs: &quot;
+
+<a id="userdrake2tags1133ponnpo">Added: userdrake2/tags/1.13.3/po/nn.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/nn.po (rev 0)
++++ userdrake2/tags/1.13.3/po/nn.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,741 @@
++# Translation of userdrake2 to Norwegian Nynorsk
++#
++# Karl Ove Hufthammer &lt;karl@huftis.org&gt;, 2007, 2009, 2010.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake2\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2010-02-07 16:36+0100\n&quot;
++&quot;Last-Translator: Karl Ove Hufthammer &lt;karl@huftis.org&gt;\n&quot;
++&quot;Language-Team: Norwegian Nynorsk &lt;i18n-nn@lister.ping.uio.no&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: Lokalize 1.0\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Feil ved lesing av «%s»: %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Feil ved oppretting av «%s»: %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Feil ved fjerning av «%s»: %s&quot;
++
++#: ../USER/USER.xs:490
++#, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Klarte ikkje leggja til konto: «%s».\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;Klarte ikkje henta UID&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;Klarte ikkje henta verdi&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Feil ved oppretting av e-postkø.\n&quot;
++
++#: ../USER/USER.xs:582
++#, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Klarte ikkje endra brukaren: «%s».\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Klarte ikkje sletta brukaren: «%s».\n&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;Klarte ikkje velja passord: «%s».\n&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;Ukjend feil&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Klarte ikkje laga ny gruppe.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;Klarte ikkje endra gruppe: «%s».\n&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;Klarte ikkje sletta gruppe: «%s».\n&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;Brukaren manglar heimemappe.\n&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Klarte ikkje sletta heimemappa: «%s».\n&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Feil ved sletting av e-postkø.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Lastar brukarar og grupper … Vent litt&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Brukaradministrering for Mageia&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;/_Installer gjestekonto&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;/_Avinstaller gjestekonto&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Handlingar&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Rediger&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Slett&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Oppsett&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Gøym systembrukarar&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Fil&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Oppdater&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Avslutt&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Legg til brukar&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Legg til _gruppe&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Hjelp&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Meld frå om feil&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Om …&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Søk:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Bruk filter&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Brukarar&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Grupper&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Brukarar og grupper&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Brukarnamn&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Brukar-ID&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Hovudgruppe&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Fullt namn&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Innloggingsskal&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Heimemappe&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Status&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Gruppenamn&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Gruppe-ID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Gruppemedlemmar&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Legg til brukar&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Legg ein brukar til systemet.&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Legg til gruppe&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Legg ei gruppe til systemet.&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Rediger&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Rediger merkt rad.&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Slett&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Slett merkt rad.&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Oppdater&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Oppdater lista.&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Låst&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Utgått&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Trykk på ikonet for å endra det&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Lag ny brukar&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Lag heimemappe&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Heimemappe: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Lag ei privat gruppe for brukaren&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Vel gruppe-ID manuelt&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Brukaren finst alt. Vel eit anna brukarnamn.&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Passord er ikkje like&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Passordet er for enkelt.\n&quot;
++&quot;Eit godt passord på vera på minst 6 teikn.&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Brukar-ID-en er under 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Det er sterkt frårådd av laga ein brukar med UID lågare enn 500.\n&quot;
++&quot; Er du sikker på at du likevel vil gjera det?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Legg «%s» i «users»-gruppa&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Oppretter ny gruppe: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Legg til brukar: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Dataoverføringsvegvisar&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;Ønskjer du å køyra dataoverføringsvegvisaren, slik at du kan henta inn &quot;
++&quot;Windows-dokumenta og -innstillingane dine til Mageia?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Avbryt&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;OK&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Vel gruppe&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Legg til gammal gruppe&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Legg til «users»-gruppa&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Det finst alt ei gruppe med dette namnet. Kva ønskjer du å gjera?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Lag ny gruppe&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Vel gruppe-ID manuelt&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Gruppa finst alt. Vel eit anna gruppenamn.&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; Gruppe-ID-en er under 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Det er sterkt ådd av laga ei gruppe med GID lågare enn 500.\n&quot;
++&quot; Er du sikker på at du likevel vil gjera det?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Legg til gruppe: %s&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Vil du sletta filene?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Fjernar brukaren «%s»\n&quot;
++&quot; Utfør òg følgjande handlingar\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Slett heimemappe: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Slett e-postboks: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Fjern brukar: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Er du sikker på at du vil sletta gruppa «%s»?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;«%s» er ei hovudgruppe fro brukaren «%s».\n&quot;
++&quot; Fjern frukaren først.&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Fjernar gruppa: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Fullt namn:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Brukarnamn:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Passord:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Stadfest passord:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Innloggingsskal:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Gruppenamn:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Du må velja minst éi gruppe for brukaren&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;Vel år, månad og dag for kontoutløp.&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Fyll ut alle felta for passordutløp.\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Du kan ikkje fjerna brukaren «%s» frå hovudgruppa hans/hennar.&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Heime:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Brukardata&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Bruk utløpsdato for konto&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Kontoen går ut (ÅÅÅÅ-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Lås brukarkonto&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Kontoinformasjon&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Brukaren bytte seinast passord den: &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Bruk utløpsdato for passord&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Dagar før byte er lov:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Dagar før byte er påkravd:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Dagar med varsel før endring:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Dagar før kontoen vert inaktiv:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Passordinformasjon&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Vel gruppene som brukaren skal vera medlem av:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Gruppedata&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Vel brukaren som skal vera med i gruppa:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Gruppebrukarar&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Rediger grupper/brukarar&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Det oppstod ein feil:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Lukk&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Copyright © %s Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Brukaradministrering&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Karl Ove Hufthammer &lt;karl@huftis.org&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Namnefeltet er tomt. Skriv inn namnet på brukaren.&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++&quot;Brukarnamnet kan berre innehelda små bokstavar, tal, samt teikna «-» og «_».&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Namnet er for langt.&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Feil&quot;
+
+<a id="userdrake2tags1133popa_INpo">Added: userdrake2/tags/1.13.3/po/pa_IN.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/pa_IN.po (rev 0)
++++ userdrake2/tags/1.13.3/po/pa_IN.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,754 @@
++# translation of userdrake.po to Panjabi
++# This file is distributed under the same license as the PACKAGE package.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
++# Kanwaljeet Singh Brar &lt;kanwaljeetbrar@yahoo.co.in&gt;, 2005.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2005-03-25 13:55+0530\n&quot;
++&quot;Last-Translator: Kanwaljeet Singh Brar &lt;kanwaljeetbrar@yahoo.co.in&gt;\n&quot;
++&quot;Language-Team: Panjabi &lt;fedora-trans-pa@redhat.com&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.9.1\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1)\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;`%s' ਪੜਨ ਦੌਰਾਨ ਗਲਤੀ: %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;`%s' ਬਣਾਉਣ ਦੌਰਾਨ ਗਲਤੀ: %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;`%s' ਹਟਾਉਣ ਦੌਰਾਨ ਗਲਤੀ: %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;ਪੱਤਰ ਸਪੂਲ ਬਣਾਉਣ ਦੌਰਾਨ ਗਲਤੀ।\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;ਪੱਤਰ ਸਪੂਲ ਬਣਾਉਣ ਦੌਰਾਨ ਗਲਤੀ।\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;ਪੱਤਰ ਸਪੂਲ ਬਣਾਉਣ ਦੌਰਾਨ ਗਲਤੀ।\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;ਅਣਜਾਣੀ ਗਲਤੀ&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;ਪੱਤਰ ਸਪੂਲ ਬਣਾਉਣ ਦੌਰਾਨ ਗਲਤੀ।\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;ਪੱਤਰ ਸਪੂਲ ਹਟਾਉਣ ਦੌਰਾਨ ਗਲਤੀ\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;ਉਪਭੋਗੀ ਤੇ ਗਰੁੱਪ ਲੋਡ ਕੀਤੇ ਜਾਦੇ ਹਨ... ਕਿਰਪਾ ਕਰਕੇ ਉਡੀਕੋ&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;ਮੈਂਡਰਿਵ ਲੀਨਕਸ ਉਪਭੋਗੀ ਪ੍ਰਬੰਧਨ ਸੰਦ&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/ਕਾਰਵਾਈ(_A)&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/ਸੋਧ(_E)&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/ਹਟਾਓ(_D)&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/ਚੋਣ(_O)&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/ਸਿਸਟਮ ਉਪਭੋਗੀ ਫਿਲਟਰ(_F)&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/ਫਾਇਲ(_F)&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/ਤਾਜ਼ਾ(_R)&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/ਬਾਹਰ(_Q)&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/ਉਪਭੋਗੀ ਸ਼ਾਮਲ(_A)&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/ਗਰੁੱਪ ਸ਼ਾਮਲ(_G)&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/ਸਹਾਇਤਾ(_H)&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/ਬੱਗ ਰਿਪੋਰਟ(_R)&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/ਬਾਰੇ(_A)...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;ਖੋਜ:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;ਫਿਲਟਰ ਲਾਗੂ ਕਰੋ&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;ਉਪਭੋਗੀ&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;ਸਮੂਹ&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;ਉਪਭੋਗੀ ਅਤੇ ਸਮੂਹ&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;ਉਪਭੋਗੀ ਨਾਂ&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ਉਪਭੋਗੀ ID&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;ਮੁੱਢਲਾ ਗਰੁੱਪ&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;ਪੂਰਾ ਨਾਂ&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;ਲਾਗਿੰਨ ਸ਼ੈਲ&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;ਘਰ ਡਾਇਰੈਕਟਰੀ&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;ਸਥਿਤੀ&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;ਗਰੁੱਪ ਨਾਂ&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ਗਰੁੱਪ ID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;ਗਰੁੱਪ ਮੈਂਬਰ&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;ਉਪਭੋਗੀ ਸ਼ਾਮਲ&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;ਆਪਣੇ ਸਿਸਟਮ ਤੇ ਉਪਭੋਗੀ ਸ਼ਾਮਲ ਕਰੋ&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;ਗਰੁੱਪ ਸ਼ਾਮਲ&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;ਸਿਸਟਮ ਤੇ ਗਰੁੱਪ ਸ਼ਾਮਲ ਕਰੋ&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;ਸੋਧ&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;ਚੁਣੀ ਕਤਾਰ ਵਿੱਚ ਸੋਧ&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;ਹਟਾਓ&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;ਚੁਣੀ ਕਤਾਰ ਹਟਾਓ&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;ਤਾਜ਼ਾ&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;ਸੂਚੀ ਤਾਜ਼ਾ ਕਰੋ&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;ਤਾਲਾਬੰਦ&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;ਮਿਆਦ ਖਤਮ&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;ਆਈਕਾਨ ਨੂੰ ਤਬਦੀਲ ਕਰਨ ਲਈ ਦਬਾਓ&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;ਨਵਾਂ ਉਪਭੋਗੀ ਬਣਾਓ&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;ਘਰ ਡਾਇਰੈਕਟਰੀ ਬਣਾਓ&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;ਘਰ ਡਾਇਰੈਕਟਰੀ: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;ਉਪਭੋਗੀ ਲਈ ਨਿੱਜੀ ਗਰੁੱਪ ਬਣਾਓ&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;ਉਪਭੋਗੀ ਲਈ ID ਖੁਦ ਦਿਓ&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;ਉਪਭੋਗੀ ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਹੈ, ਕਿਰਪਾ ਕਰਕੇ ਵੱਖਰਾ ਨਾਂ ਦਿਓ&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;ਗੁਪਤ-ਕੋਡ ਮੇਲ ਨਹੀ ਖਾ ਰਿਹਾ&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;ਇਹ ਗੁਪਤ-ਕੋਡ ਬਹੁਤ ਸੌਖਾ ਹੈ।\n&quot;
++&quot; ਚੰਗ ਗੁਪਤ-ਕੋਡ &gt; 6 ਅੱਖਰ ਤੋਂ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;ਉਪਭੋਗੀ Uid &lt; 500 ਹੈ&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;UID 500 ਤੋਂ ਘੱਟ ਰੱਖ ਕੇ ਉਪਭੋਗੀ ਬਣਾਉਣਾ ਸਿਫਾਰਸ਼ੀ ਨਹੀਂ ਹੈ।\n&quot;
++&quot; ਕਿ ਤੁਸੀ ਇਹ ਕਰਨ ਲਈ ਸਹਿਮਤ ਹੋ?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;%s ਨੂੰ 'users' ਗਰੁੱਪ ਲਈ ਰੱਖਿਆ ਜਾਦਾ ਹੈ&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;ਨਵਾਂ ਗਰੁੱਪ ਬਣਾਇਆ ਜਾਦਾ ਹੈ: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;ਉਪਭੋਗੀ ਸ਼ਾਮਲ : %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;ਰੱਦ ਕਰੋ&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;ਠੀਕ ਹੈ&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;ਗਰੁੱਪ ਚੁਣੋ&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;ਮੌਜੂਦਾ ਗਰੁੱਪ ਵਿੱਚ ਸ਼ਾਮਲ&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;'users' ਗਰੁੱਪ ਵਿੱਚ ਸ਼ਾਮਲ&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;ਸਮੂਹ ਨਾਂ ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਹੈ। ਤੁਸੀਂ ਕੀ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;ਨਵਾਂ ਗਰੁੱਪ ਬਣਾਓ&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;ਗਰੁੱਪ ID ਖੁਦ ਦਿਓ&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;ਗਰੁੱਪ ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਹੈ, ਕਿਰਪਾ ਕਰਕੇ ਵੱਖਰਾ ਨਾਂ ਚੁਣੋ&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; ਗਰੁੱਪ Gid &lt; 500 ਹੈ&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;GID ਨੂੰ 500 ਤੋਂ ਘੱਟ ਰੱਖਣ ਕੇ ਗਰੁੱਪ ਬਣਾਉਣ ਦੀ ਸਿਫਾਰਸ਼ ਨਹੀਂ ਕੀਤੀ ਜਾਦੀ ਹੈ।\n&quot;
++&quot; ਕੀ ਤੁਸੀਂ ਏਦਾਂ ਕਰਨ ਲਈ ਸਹਿਮਤ ਹੋ?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;ਗਰੁੱਪ ਸ਼ਾਮਲ : %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;ਫਾਇਲਾਂ ਹਟਾਉਣੀਆਂ ਹਨ ਜਾਂ ਨਹੀਂ?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;ਉਪਭੋਗੀ %s ਹਟਾਉਣਾ\n&quot;
++&quot; ਹੇਠ ਦਿੱਤੀਆਂ ਕਾਰਵਾਈਆਂ ਕੀਤੀਆਂ ਜਾਣਗੀਆਂ\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;ਘਰ ਡਾਇਰੈਕਟਰੀ ਹਟਾਓ :%s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;ਪੱਤਰ ਬਕਸਾ ਹਟਾਓ :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;ਉਪਭੋਗੀ ਹਟਾਉਣਾ: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;ਕੀ ਤੁਸੀਂ ਗਰੁੱਪ %s ਨੂੰ ਹਟਾਉਣ ਦੀ ਪੁਸ਼ਟੀ ਕਰਦੇ ਹੋ&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s ਉਪਭੋਗੀ %s ਦਾ ਮੁੱਢਲਾ ਗਰੁੱਪ ਹੈ\n&quot;
++&quot; ਪਹਿਲਾਂ ਉਪਭੋਗੀ ਨੂੰ ਹਟਾਓ&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;ਗਰੁੱਪ ਹਟਾਇਆ: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;ਪੂਰਾ ਨਾਂ:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;ਲਾਗਆਨ:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;ਗੁਪਤ-ਕੋਡ:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;ਗੁਪਤ-ਕੋਡ ਪ੍ਰਮਾਣਿਕਤਾ:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;ਲਾਗਿੰਨ ਸ਼ੈਲ:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;ਗਰੁੱਪ ਨਾਂ:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;ਕਿਰਪਾ ਕਰਕੇ ਉਪਭੋਗੀ ਲਈ ਘੱਟੋ-ਘੱਟ ਇੱਕ ਗਰੁੱਪ ਚੁਣੋ&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;ਕਿਰਪਾ ਕਰਕੇ ਖਾਤਾ ਮਿਆਦ, ਸਾਲ, ਮਹੀਨਾ ਅਤੇ ਦਿਨ\n&quot;
++&quot; ਦੇ ਅਨੁਸਾਰ ਦਿਓ&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;ਕਿਰਪਾ ਕਰਕੇ ਗੁਪਤ-ਕੋਡ ਉਮਰ ਵਿੱਚ ਸਭ ਖੇਤਰ ਭਰੋ\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;ਤੁਸੀਂ ਉਪਭੋਗੀ '%s' ਨੂੰ ਇਸ ਦੇ ਮੁੱਢਲੇ ਗਰੁੱਪ ਤੋਂ ਨਹੀਂ ਹਟਾ ਸਕਦੇ ਹੋ&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;ਘਰ:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;ਉਪਭੋਗੀ ਡਾਟਾ&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;ਖਾਤਾ ਮਿਆਦ ਚਾਲੂ&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;ਖਾਤਾ ਮਿਆਦ (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;ਉਪਭੋਗੀ ਖਾਤਾ ਤਾਲਾਬੰਦ&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;ਖਾਤਾ ਜਾਣਕਾਰੀ&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;ਉਪਭੋਗੀ ਨੇ ਆਖਰੀ ਵਾਰ ਗੁਪਤ-ਕੋਡ ਬਦਲਿਆ : &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;ਗੁਪਤ-ਕੋਡ ਮਿਆਦ ਯੋਗ&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;ਤਬਦੀਲੀ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਸਵੀਕਾਰ ਦਿਨਾਂ ਦੀ ਗਿਣਤੀ : &quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;ਤਬਦੀਲੀ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਲੋੜੀਦੇ ਦਿਨ :&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;ਤਬਦੀਲੀ ਤੋਂ ਪਹਿਲਾਂ ਚੇਤਾਵਨੀ ਦਿਨ :&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;ਖਾਤਾ ਬੰਦ ਹੋਣ ਤੋਂ ਪਹਿਲਾਂ ਦਿਨ :&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;ਗੁਪਤ-ਕੋਡ ਜਾਣਕਾਰੀ&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;ਗਰੁੱਪ ਚੁਣੋ, ਜਿਸ ਦਾ ਉਪਭੋਗੀ ਮੈਂਬਰ ਹੈ :&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;ਗਰੁੱਪ ਡਾਟਾ&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;ਇਸ ਗਰੁੱਪ ਵਿੱਚ ਸ਼ਾਮਲ ਕਰਨ ਲਈ ਉਪਭੋਗੀ ਚੁਣੋ :&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;ਗਰੁੱਪ ਉਪਭੋਗੀ&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;ਗਰੁੱਪ / ਉਪਭੋਗੀ ਸੋਧ&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;ਇੱਕ ਗਲਤੀ ਆਈ ਹੈ&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;ਬੰਦ ਕਰੋ&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;ਉਪਭੋਗੀ ਪ੍ਰਬੰਧਕ&quot;
++
++#: ../userdrake:1282
++#, fuzzy, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;ਮੈਂਡਰਿਵ-ਆਨਲਾਈਨ&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;ਨਾਂ ਖੇਤਰ ਖਾਲੀ ਹੈ, ਕਿਰਪਾ ਕਰਕੇ ਨਾਂ ਦਿਓ&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;ਨਾਂ ਵਿੱਚ ਛੋਟੇ ਅੰਗਰੇਜ਼ੀ ਅੱਖਰ, ਅੰਕ, `-' ਅਤੇ `_' ਹੀ ਹੋ ਸਕਦੇ ਹਨ&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;ਨਾਂ ਲੰਮਾ ਹੈ&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;ਗਲਤੀ&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;ਅਣਜਾਣੀ ਗਲਤੀ&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;`%s' ਬਣਾਉਣ ਦੌਰਾਨ ਗਲਤੀ: %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;ਸੰਪਾਦਕ:&quot;
+
+<a id="userdrake2tags1133poplpo">Added: userdrake2/tags/1.13.3/po/pl.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/pl.po (rev 0)
++++ userdrake2/tags/1.13.3/po/pl.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,786 @@
++# translation of userdrake2.po to Polish
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/pl.php3
++#
++# Aplikacja służąca do zarządzania użytkownikami w Mageia.
++# Copyright (C) 2000, 2007 Free Software Foundation, Inc.
++#
++# Pawel Jablonski &lt;pj@mandrivalinux.org&gt;, 2002.
++# Arkadiusz Lipiec &lt;arkadiusz.lipiec@gazeta.pl&gt;, 2002, 2003.
++# Tomasz Bednarski - Amazis.net &lt;tomasz.bednarski@amazis.pl&gt;, 2007.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake2\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2010-02-17 12:54+0100\n&quot;
++&quot;Last-Translator: Marek Walczak &lt;kubdat@poczta.fm&gt;\n&quot;
++&quot;Language-Team: Polish &lt;pl@li.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10&gt;=2 &amp;&amp; n%10&lt;=4 &amp;&amp; (n%100&lt;10 || n%100&gt;=20) ? 1 : 2);\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Błąd przy czytaniu \&quot;%s\&quot;: %s&quot;
++
++#: ../USER/USER.xs:93
++#: ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Błąd przy tworzeniu \&quot;%s\&quot;: %s&quot;
++
++#: ../USER/USER.xs:205
++#: ../USER/USER.xs:234
++#: ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Błąd przy usuwaniu \&quot;%s\&quot;: %s&quot;
++
++#: ../USER/USER.xs:490
++#, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Utworzenie konta nie powiodło się: '%s'.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;Nie można pobrać numeru Uid&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;Nie można pobrać wartości&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Błąd przy tworzeniu kolejki poczty.\n&quot;
++
++#: ../USER/USER.xs:582
++#, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Użytkownika nie można zmodyfikować: '%s'.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Użytkownika nie można usunąć: '%s'.\n&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;Nie można ustawić hasła: '%s'.\n&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;nieznany błąd&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Utworzenie grupy nie powiodło się.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;Grupy nie można zmodyfikować: '%s'.\n&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;Grupy nie można usunąć: '%s'.\n&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;Brak katalogu domowego dla użytkownika.\n&quot;
++
++#: ../USER/USER.xs:869
++#: ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Katalogu domowego nie można usunąć: '%s'.\n&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Błąd przy usuwaniu kolejki poczty.\n&quot;
++
++#: ../userdrake:59
++#: ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Wczytywanie użytkowników i grup... proszę czekać&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Narzędzie do zarządzania użytkownikami dla Mandriva Linuksa&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;/_Instaluj konto gościa&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;/_Usuń konto gościa&quot;
++
++#: ../userdrake:101
++#: ../userdrake:102
++#: ../userdrake:103
++#: ../userdrake:114
++#: ../userdrake:115
++#: ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Czynności&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Edycja&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Usuń&quot;
++
++#: ../userdrake:104
++#: ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Opcje&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Filtruj użytkowników systemowych&quot;
++
++#: ../userdrake:109
++#: ../userdrake:110
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Plik&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/O_dśwież&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Zakończ&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Dodaj użytkownika&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Dodaj g_rupę&quot;
++
++#: ../userdrake:125
++#: ../userdrake:126
++#: ../userdrake:127
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Pomoc&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Zgłoś błąd&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_O programie&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Wyszukaj:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Zastosuj filtr&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Użytkownicy&quot;
++
++#: ../userdrake:162
++#: ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Grupy&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Użytkownicy i grupy&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Nazwa użytkownika&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ID użytkownika&quot;
++
++#: ../userdrake:186
++#: ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Podstawowa grupa&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Pełna nazwa&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Powłoka logowania&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Katalog domowy&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Stan&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Nazwa grupy&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ID grupy&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Członkowie grupy&quot;
++
++# broken into two lines to avoid too large a button
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;&quot;
++&quot;Dodaj\n&quot;
++&quot;użytkownika&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Dodaje użytkownika do systemu&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Dodaj grupę&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Dodaje grupę do systemu&quot;
++
++#: ../userdrake:198
++#: ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Edytuj&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Modyfikuje wybrany wiersz&quot;
++
++#: ../userdrake:199
++#: ../userdrake:674
++#: ../userdrake:707
++#: ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Usuń&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Usuwa wybrany wiersz&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Odśwież&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Odświeża listę&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Zablokowane&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Wygasło&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Kliknij na ikonę aby ją zmienić&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Utwórz nowego użytkownika&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Utwórz katalog domowy&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Katalog domowy: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Tworzy prywatną grupę dla użytkownika&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Określ ręcznie ID użytkownika&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Użytkownik już istnieje, wybierz inną nazwę użytkownika&quot;
++
++#: ../userdrake:419
++#: ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Hasła się nie zgadzają&quot;
++
++#: ../userdrake:422
++#: ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Hasło jest za proste.\n&quot;
++&quot; Dobre hasła powinny posiadać więcej niż 6 znaków&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;ID Użytkownika jest &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Tworzenie użytkownika z ID mniejszym niż 500 nie jest zalecane.\n&quot;
++&quot; Czy na pewno chcesz to zrobić?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Wrzucanie użytkownika %s do grupy \&quot;users\&quot;&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Tworzenie nowej grupy: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Dodawanie użytkownika: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Druid migracji&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;Do you want to run the migration wizard in order to import Windows documents and settings in your Mageia distribution?&quot;
++msgstr &quot;Czy chcesz uruchomić druida migracji, aby zaimportować z systemu Windows dokumenty i ustawienia do systemu Mageia?&quot;
++
++#: ../userdrake:484
++#: ../userdrake:528
++#: ../userdrake:587
++#: ../userdrake:674
++#: ../userdrake:707
++#: ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Anuluj&quot;
++
++#: ../userdrake:484
++#: ../userdrake:521
++#: ../userdrake:587
++#: ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Ok&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Wybierz grupę&quot;
++
++#: ../userdrake:512
++#: ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Dodaj do istniejącej grupy&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Dodaj do grupy \&quot;users\&quot;&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Grupa o tej nazwie już istnieje. Co chcesz uczynić?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Utwórz nową grupę&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Określ ręcznie ID grupy&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Grupa już istnieje, wybierz inną nazwę grupy&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; ID grupy jest &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Tworzenie grupy z GID mniejszym niż 500 nie jest zalecane.\n&quot;
++&quot; Czy naprawdę chcesz to zrobić?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Dodawanie grupy: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Usunąć pliki czy nie?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Usuwanie użytkownika %s\n&quot;
++&quot; uruchamia także poniższe operacje\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Usuń katalog domowy: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Usuń skrzynkę pocztową :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Usuwanie użytkownika: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Czy na pewno chcesz usunąć grupę %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s jest podstawową grupą dla użytkownika %s\n&quot;
++&quot; Usuń najpierw użytkownika&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Usuwanie grupy: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Pełna nazwa:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Użytkownik:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Hasło:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Potwierdź hasło:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Powłoka logowania:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Nazwa grupy:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Wybierz co najmniej jedną grupę dla użytkownika&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Podaj rok, miesiąc i dzień\n&quot;
++&quot; terminu ważności konta &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Wypełnij wszystkie pola związane z wiekiem hasła\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Nie można usunąć użytkownika \&quot;%s\&quot; z głównej grupy&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Katalog domowy:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Dane użytkownika&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Włączone wygasanie haseł&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Konto wygasa (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Zablokuj konto użytkownika&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Informacje o koncie&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Użytkownik ostatnio zmieniał hasło : &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Włącz wygasanie hasła&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Dni przed dozwoloną zmianą :&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Dni przed wymaganą zmianą :&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Dni ostrzeżenia przed zmianą :&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Dni przed wyłączeniem konta :&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Informacje o haśle&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Wybierz grupy, których użytkownik będzie członkiem:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Dane grupy&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Wybierz użytkownika dołączanego do grupy :&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Użytkownikcy grupowi&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Edycja grup / użytkowników&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Wystąpił błąd:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Zamknij&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Copyright (C) %s by Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Zarządzanie użytkownikami&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Pole nazwy jest puste, podaj inną nazwę&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;Nazwa musi zawierać tylko małe litery, liczby, \&quot;-\&quot; lub \&quot;_\&quot;&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Nazwa jest za długa&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Błąd&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;nieznany błąd&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Błąd przy tworzeniu \&quot;%s\&quot;: %s&quot;
+
+<a id="userdrake2tags1133poptpo">Added: userdrake2/tags/1.13.3/po/pt.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/pt.po (rev 0)
++++ userdrake2/tags/1.13.3/po/pt.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,762 @@
++# translation of pt.po to Português
++#
++# Copyright (C) 2001,2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
++# Copyright (c) 2001 Mandriva
++#
++# Jorge Costa &lt;Jorgercosta@netc.pt&gt;, 2001.
++# Jose Jorge &lt;jose.jorge@oreka.com&gt;, 2002, 2003.
++# Jose Jorge &lt;jjorge@free.fr&gt;, 2003, 2004.
++# José Melo &lt;mmodem00@netvisao.pt&gt;, 2004.
++# José Melo &lt;mmodme00@gmail.com&gt;, 2005.
++# Zé &lt;mmodem00@gmail.com&gt;, 2006, 2007, 2010.
++# Zé &lt;ze@mandriva.org&gt;, 2009, 2010.
++# Thanks to contributions made by Sérgio Marques &lt;smarquespt@gmail.com&gt;, 2010.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: pt\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2010-07-26 00:02+0100\n&quot;
++&quot;Last-Translator: Zé &lt;ze@mandriva.org&gt;\n&quot;
++&quot;Language-Team: Portuguese &lt;&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: Lokalize 1.1\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Erro ao ler `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Erro ao criar `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Erro ao remover `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Falha ao criar a conta: '%s'.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;Não é possível obter o número Uid&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;Não é possível obter o valor&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Erro ao criar a fila de correio.\n&quot;
++
++#: ../USER/USER.xs:582
++#, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;O utilizador não pode ser modificado: '%s'.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;O utilizador não pode ser apagado: '%s'.\n&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;Falha ao definir a senha: '%s'.\n&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;erro desconhecido&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Falha ao criar o grupo.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;O grupo não pode ser modificado: '%s'.\n&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;O grupo não pode ser apagado: '%s'.\n&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;Nenhuma pasta pessoal para o utilizador.\n&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;A pasta pessoal não pode ser apagada: '%s'.\n&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Erro ao apagar a fila de correio.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;A carregar Utilizadores e Grupos... Por favor aguarde&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Ferramenta de Gestão de Utilizadores Mageia&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;/_Instalar conta de convidado&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;/_Desinstalar conta de convidado&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Acções&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Editar&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Apagar&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Opções&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Filtrar utilizadores do sistema&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Ficheiro&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Refrescar&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Sair&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;S&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Adicionar Utilizador&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Adicionar _Grupo&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Ajuda&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Reportar Erro&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Acerca...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Procurar:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Aplicar filtro&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Utilizadores&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Grupos&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Utilizadores e grupos&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Nome de Utilizador&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ID de Utilizador&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Grupo Primário&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Nome Completo&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Interpretador de Comandos&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Directório Pessoal&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Estado&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Nome do Grupo&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ID do Grupo&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Membros do Grupo&quot;
++
++# broken into two lines to avoid too large a button
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Adicionar Utilizador&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Adiciona um utilizador ao sistema&quot;
++
++# broken into two lines to avoid too large a button
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Adicionar Grupo&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Adiciona um grupo ao sistema&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Editar&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Edita a linha seleccionada&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Apagar&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Apaga a linha seleccionada&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Refrescar&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Refresca a lista&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Trancado&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Expirado&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Clique no ícone para o alterar&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Criar Novo Utilizador&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Criar Directório Pessoal&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Directório Pessoal: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Criar grupo privado para o utilizador&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Indicar manualmente o ID de utilizador&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Este utilizador já existe, por favor escolha outro Nome de Utilizador&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Senhas Diferentes&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Esta senha é demasiado simples. \n&quot;
++&quot; As senhas boas devem ter mais de 6 caracteres&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;O Uid de utilizador é &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Não é recomendável criar um utilizador com um UID inferior a 500.\n&quot;
++&quot;Tem certeza que o deseja fazer?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;A colocar %s no grupo 'users'&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;A criar novo grupo: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;A adicionar utilizador: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Assistente de migração&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;Deseja correr o assistente de migração para importar documentos e definições &quot;
++&quot;Windows para a sua distribuição Mageia?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Cancelar&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Ok&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Escolher grupo&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Adicionar ao grupo existente&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Adicionar ao grupo 'users'&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Já existe um grupo com este nome. O que deseja fazer?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Criar Novo Grupo&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Indicar manualmente ID de grupo&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;O grupo já existe, por favor escolha outro Nome de Grupo&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; O Gid de Grupo é &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Não é recomendável criar um grupo com um GID inferior a 500.\n&quot;
++&quot;Tem certeza que o deseja criar?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;A adicionar o grupo: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Apagar ficheiros ou não?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;A apagar utilizador %s\n&quot;
++&quot; Executar também as seguintes acções\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Apagar Directório Pessoal: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Apagar Caixa de Correio: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;A remover o utilizador: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Deseja realmente apagar o grupo %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s é um grupo primário para o utilizador %s\n&quot;
++&quot; Remova o utilizador primeiro&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;A remover o grupo: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Nome Completo:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Utilizador:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Senha:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Confirmar Senha:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Interpretador de Comandos:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Nome do Grupo:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Por favor seleccione pelo menos um grupo para o utilizador&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Por favor indique o Ano, Mês e Dia\n&quot;
++&quot;para a Expiração da Conta &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Por favor preencha todas os campos de duração da senha\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Não pode remover o utilizador '%s' do seu grupo primário&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Pasta Pessoal:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Dados do Utilizador&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Activar expiração da conta&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;A conta expira em (AAAA-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Trancar Conta de Utilizador&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Informações da Conta&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;O utilizador mudou a senha pela última vez em: &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Activar Expiração da Senha&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Dias antes da mudança permitida:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Dias antes da mudança pedida:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Dias de aviso antes da mudança:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Dias antes da desactivação da conta:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Informação da Senha&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Seleccione os grupos de que o utilizador irá ser membro:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Dados do Grupo&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Seleccione os utilizadores a juntar a este grupo:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Utilizadores do Grupo&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Editar Grupos/Utilizadores&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Ocorreu um erro:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Fechar&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Direitos de Autor (C) %s Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Gestão de Utilizadores&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Zé &lt;ze@mandriva.org&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;O campo do nome está vazio, por favor indique um nome&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;O nome deve conter apenas letras minúsculas, números, '-' e '_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Nome demasiado comprido&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Erro&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;erro desconhecido&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Erro ao criar `%s': %s&quot;
+
+<a id="userdrake2tags1133popt_BRpo">Added: userdrake2/tags/1.13.3/po/pt_BR.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/pt_BR.po (rev 0)
++++ userdrake2/tags/1.13.3/po/pt_BR.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,770 @@
++# translation of userdrake-pt_BR.po to
++# translation of userdrake-pt_BR.po to Português do Brasil
++# translation of userdrake-pt_BR.po to Portugues Brasileiro
++# Copyright (C) 2000,2003, 2004 Free Software Foundation, Inc.
++#
++# ANDREI BOSCO BEZERRA TORRES &lt;ANDREIBT@UOL.COM.BR&gt;, 2000.
++# Bruno Dorfman Buys &lt;brunobuys@zipmail.com.br&gt;, 2002.
++# Carlos Roberto Mafra &lt;crmafra@mafra.eti.br&gt;, 2002.
++# Clovis Nogueira Jr &lt;linux_pt_BR@yahoogrupos.com.br&gt;, 2003.
++# Felipe Araújo Barros &lt;tenfelipe@brturbo.com&gt;, 2003.
++# Tiago Cruz &lt;tiagocruz@linuxdicas.com.br&gt;, 2003.
++# Ricardo de Castilho &lt;cast_brasil@ig.com.br&gt;, 2003.
++# Gustavo Sverzut Barbieri &lt;gustavo@linuxdicas.com.br&gt;, 2003.
++# Jeferson Lopes Zacco aka Wooky &lt;wooky_linuxer@ig.com.br&gt;, 2003.
++# Klaus Orian Vicaro &lt;kvicaro@gmx.net&gt;, 2004.
++# Wanderlei Antonio Cavassin &lt;cavasin@mandriva.com&gt;, 2006.
++# Sergio Rafael Lemke &lt;sergio@mandriva.com.br&gt;, 2009, 2010.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-pt_BR\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2010-02-03 17:48-0200\n&quot;
++&quot;Last-Translator: Sergio Rafael Lemke &lt;sergio@mandriva.com.br&gt;\n&quot;
++&quot;Language-Team: Brazilian Portuguese &lt;cooker-i18n@mandrivalinux.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: Lokalize 1.0\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n &gt; 1);\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Erro ao ler `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Erro ao criar `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Erro ao remover `%s': %s&quot;
++
++#: ../USER/USER.xs:490, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Criação da conta falhou: '%s'.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;Não foi possível obter número Uid&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;Não consigo pegar o valor&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Erro ao criar mail spool.\n&quot;
++
++#: ../USER/USER.xs:582, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Usuário não pôde ser modificado: '%s'.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Usuário não pôde ser excluído: ''%s'.\n&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;Falha ao definir senha: '%s'.\n&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;erro desconhecido&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;A criação do grupo falhou.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;Grupo não pôde ser modificado: '%s'.\n&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;Grupo não pôde ser excluído: '%s'.\n&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;Sem diretório home para o usuário.\n&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Diretório Home não pôde ser excluído: '/s'.\n&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Erro ao remover o mail spool.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Carregando Usuários e Grupos... Aguarde por favor&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Ferramenta Mageia de Gerenciamento de Usuários&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;/_Instalar conta para convidado&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;/_Remover conta para convidado&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Ações&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Editar&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Apagar&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Opções&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Filtrar usuários do sistema&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Arquivo&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Atualizar&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Encerrar&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Adicionar usuário&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/_Adicionar grupo&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Ajuda&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Relatório bugs&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Sobre...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Procurar:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Aplicar filtro&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Usuários&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Grupos&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Usuários e Grupos&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Nome do usuário&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ID do Usuário&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Grupo primário&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Nome completo&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Login&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Diretório do usuário&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Estado&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Nome do grupo&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ID do Grupo&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Membros do Grupo&quot;
++
++# broken into two lines to avoid too large a button
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Adicionar Usuário&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Adiciona um usuário ao sistema&quot;
++
++# broken into two lines to avoid too large a button
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Adicionar Grupo&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Adicionar um grupo ao sistema&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Editar&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Editar linha selecionada&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Apagar&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Apagar linha selecionada&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Atualizar&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Atualizar a lista de usuários&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Bloqueado&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Expirada&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Clique no ícone para mudá-lo&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Criar novo usuário&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Criar diretório principal do usuário&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Diretório principal&quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Criar grupo privado para este usuário&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Informe manualmente o ID deste usuário&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Esse usuário já existe. Por favor escolha outro nome.&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Senha diferente&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Esta senha é muito simples. \n&quot;
++&quot;Senhas seguras devem ter mais de 6 caracteres.&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;UID do usuário &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Criar um usuário com uma UID menor que 500 não é recomendado.\n&quot;
++&quot;Você tem certeza que quer isso?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Adicionando %s ao grupo 'users'&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Criando novo grupo: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Adicionando usuário: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Assistente de migração&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;Você deseja executar o assistente de migração para importar documentos e &quot;
++&quot;configurações do Windows para a sua distribuição Mageia?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Cancelar&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Ok&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID:&quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Escolha um grupo&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Adicione a um grupo existente&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Adicione usuário ao grupo&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Um grupo com este nome já existe. O que você quer fazer?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Criar Novo Grupo&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Informe manualmente o ID do grupo&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Este grupo já existe. Por favor, escolha outro nome&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;Identificação do Grupo é &lt; de 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Não é recomendado criar um grupo com identificação &lt; que 500.\n&quot;
++&quot;Você tem certeza que quer isso?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Adicionando grupo: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Apagar arquivos ou não&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Apagando usuário %s\n&quot;
++&quot;Fazendo também as seguintes ações\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Apagar Diretório principal do usuário: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Excluir Caixa de Correio: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Removendo usuário(s): %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Você deseja realmente excluir o grupo %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s é o grupo principal do usuário %s\n&quot;
++&quot;Primeiro apague o usuário&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Removendo grupo(s): %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Nome completo:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Login:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Senha:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Confirme a senha:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Login:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Nome do grupo:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Por favor, selecione ao menos um grupo para este usuário&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Favor informe Ano, Mês e Dia\n&quot;
++&quot;do vencimento desta conta&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Favor preencher todos os campos da senha\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Você não pode remover o usuário '%s' deste grupo primário&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Início:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Dados do usuário&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Permite vencimento da conta&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Conta expira em (AAA-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Bloquear a conta do usuário&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Informações da conta&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Última mudança de senha em: &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Permite vencimento da senha&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Dias antes do vencimento:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Dias depois do vencimento:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Dias para avisar antes do vencimento:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Dias antes de conta inativa:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Informações de Senha&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Selecione os grupos que este usuário será membro:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Lista de grupos&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Selecione os usuários para juntar-se a este grupo:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Grupo de Usuários&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Editar Grupos / Usuários&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Um erro ocorreu:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Fechar&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Copyright (C) %s por Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Gerenciamento de Usuários&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++&quot;Cristiano Otto Von Trompczynski &lt;cris@mandriva.com&gt;\n&quot;
++&quot;Arthur Renato Mello &lt;renato@conectiva.com.br&gt;\n&quot;
++&quot;Felipe Arruda &lt;felipemiguel@gmail.com&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;O campo do nome está vazio! Coloque um nome&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;O nome deve conter apenas caracteres minúsculos, números,'-' e '_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Nome muito grande&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Erro&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;erro desconhecido&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Erro ao criar `%s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Autores:&quot;
+
+<a id="userdrake2tags1133poropo">Added: userdrake2/tags/1.13.3/po/ro.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/ro.po (rev 0)
++++ userdrake2/tags/1.13.3/po/ro.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,802 @@
++# Translation of userdrake.po to Romanian
++# Copyright (c) 1999-2010 Mandriva
++#
++# Vă rugăm să nu actualizaţi fișierul, cu excepția cazului în care sînteți
++# sigur de calitatea traducerii dumneavoastră, de gramatică și de ortografie.
++# Acestea din urmă sînt de prea multe ori aproximative.
++# Corectarea lor ulterioară nu are nici un alt rezultat decît acela de
++# pierdere de timp pentru toata lumea.
++#
++# VĂ RUGĂM SĂ RESPECTAȚI SEMNELE DE PUNCTUAȚIE ALE LIMBII ROMÂNE!
++#
++# Nu suprimați spațiul care urmează unui semn de punctuație de sfîrșit de
++# frază; trebuie respectată versiunea originală. În acest caz, este foarte
++# probabil ca programul să afișeze un mesaj la sfîrșit. Suprimînd acel spațiu,
++# cele două cuvintele vor fi afișate legat.
++#
++# Traduceți de manieră INTELIGENTĂ (de ce nu și prin comparație cu alte
++# traduceri ale acestui fișier în alte limbi) și nu cuvînt cu cuvînt. Unele
++# astfel de traduceri nu au nici un sens în limba română.
++#
++# ATENȚIE LA FONTURILE UTILIZATE! Pentru a reda corect diacriticele folosiți
++# disponerea tastaturii românească standard, codarea de caractere UTF-8 și
++# asigurați-vă că fonturile utilizate sînt cu virgulițe, NU CU SEDILE!
++# Exemplu:
++# font incorect (cu sedile): şŞ ţŢ
++# font corect (cu virgule): șȘ țȚ
++#
++# Pentru a vă asigura că folosiți fonturile corecte, vizitați:
++# http://i18n.ro/Fonturi_romanesti/testare
++#
++# Vă mulțumim pentru înțelegere.
++# Echipa de traducători,
++# www.Mandrivausers.ro
++#
++# Traducători de-a lungul timpului:
++#
++#
++# Harald ERSCH &lt;hersch@romatsa.ro&gt;, 2002, 2003.
++# Ovidiu CONSTANTIN &lt;ovidiu.constantin@gmx.net&gt;, 2003.
++# Ovidiu CONSTANTIN &lt;ovidiusoft@gmail.com&gt;, 2004.
++# Cristian Ionuț PÎRÎU &lt;piriu.cristian@rdslink.ro&gt;, 2008.
++# Florin Cătălin RUSSEN &lt;cfrussen@yahoo.co.uk&gt;, 2009, 2010.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake\n&quot;
++&quot;Report-Msgid-Bugs-To: https://qa.mandriva.com\n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2010-05-30 14:07+0100\n&quot;
++&quot;Last-Translator: Cătălin Florin RUSSEN &lt;cfrussen@yahoo.co.uk&gt;\n&quot;
++&quot;Language-Team: Romanian &lt;cooker-i18n@mandrivalinux.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=3;plural=(n==1?0:(((n%100&gt;19)||((n%100==0)&amp;&amp;(n!=0)))?&quot;
++&quot;2:1))\n&quot;
++&quot;X-Generator: Lokalize 1.0\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Eroare la citirea „%s”: %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Eroare la crearea „%s”: %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Eroare la înlăturarea „%s”: %s&quot;
++
++#: ../USER/USER.xs:490
++#, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Crearea contului a eșuat: „%s”.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;Nu se poate obține numărul Uid&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;Nu se poate prelua valoarea&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Eroare la crearea cozii de mesaje.\n&quot;
++
++#: ../USER/USER.xs:582
++#, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Utilizatorul nu poate fi modificat: „%s”.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Utilizatorul nu poate fi șters: „%s”.\n&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;Configurarea parolei a eșuat: „%s”.\n&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;eroare necunoscută&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Crearea grupului a eșuat.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;Grupul nu poate fi modificat: „%s”.\n&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;Grupul nu poate fi șters: „%s”.\n&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;Utilizatorul nu are director personal.\n&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Directorul personal nu poate fi șters: „%s”.\n&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Eroare la ștergerea cozii de mesaje.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Se încarcă utilizatorii și grupurile... Aașteptați vă rog&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Unealta Mageia de gestionat utilizatori&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;/_Instalează contul invitat&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;/_Dezinstalează contul invitat&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Acțiuni&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Editează&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Șterge&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Opțiuni&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Filtrare utilizatori sistem&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Fișier&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Împrospătare&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Terminare&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Adaugă un utilizator&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Adaugă un _grup&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Ajutor&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Raportare eroare&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Despre...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Căutare: &quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Aplică filtru&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Utilizatori&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Grupuri&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Utilizatori și grupuri&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Nume utilizator&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ID utilizator&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Grup principal&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Nume complet&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Interpretor de comenzi&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Director personal&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Stare&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Nume grup&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ID Grup&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Membrii grupului&quot;
++
++# broken into two lines to avoid too large a button
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;&quot;
++&quot;Adaugă un\n&quot;
++&quot;utilizator&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Adăugați un utilizator în sistem&quot;
++
++# broken into two lines to avoid too large a button
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;&quot;
++&quot;Adaugă\n&quot;
++&quot;un grup&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Adăugați un grup în sistem&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Editează&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Editați rîndul selectat&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Șterge&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Ștergeți rîndul selectat&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Împrospătare&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Împrospătează lista&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Blocat&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Expirat&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Faceți clic pe pictogramă pentru a o schimba&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Creați un utilizator nou&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Creează directorul personal&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Director personal: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Creează un grup privat pentru utilizator&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Specificați manual ID utilizator&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Acest utilizator există deja, folosiți un alt nume de utilizator&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Nepotrivire de parolă&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Această parolă este prea simplă. \n&quot;
++&quot; Parolele bune ar trebui să fie &gt; de 6 caractere&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Identificatorul utilizatorului este &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Nu se recomandă crearea unui utilizator cu un identificator mai mic de 500.\n&quot;
++&quot; Chiar doriți acest lucru?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Se adaugă %s în grupul „users”&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Se creează un grup nou: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Se adaugă utilizatorul: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Asistent de migrare&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;Doriți să rulați asistentul de migrare pentru a prelua documentele și &quot;
++&quot;configurările din Windows în distribuția Mageia?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Anulează&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Ok&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Alegeți grupul&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Adaugă la grupul existent&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Adaugă la grupul „users”&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Un grup cu acest nume există deja. Ce doriți să faceți?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Creează un grup nou&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Specificați manual ID grup&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Grupul cu acest nume există deja, alegeți un alt nume pentru grup.&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; Identificatorul grupului este &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Nu se recomandă crearea unui grup cu un identificator mai mic de 500.\n&quot;
++&quot; Chiar doriți acest lucru?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Se adaugă grupul: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Ștergeți sau nu fișierele?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Se șterge utilizatorul %s\n&quot;
++&quot; Se mai efectuează și următoarele acțiuni\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Șterge directorul personal: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Șterge căsuța poștală: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Se șterge utilizatorul: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Sigur doriți să ștergeți grupul %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s este grupul principal pentru utilizatorul %s\n&quot;
++&quot; Ștergeți mai întîi utilizatorul&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Se înlătură grupul: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Nume complet: &quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Autentificare: &quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Parolă: &quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Confirmare parolă: &quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Interpretor de comenzi: &quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Nume grup: &quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Selectați cel putin un grup pentru utilizator&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Specificați anul, luna și ziua \n&quot;
++&quot; de expirare a contului &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Completați toate cîmpurile de expirare a parolei\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Nu se poate înlătura utilizatorul „%s” din grupul său principal&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Director personal: &quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Date despre utilizator&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Activează expirarea contului&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Contul expiră (YYYY-MM-DD): &quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Blochează contul utilizator&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Informații despre cont&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Utilizatorul a modificat parola ultima dată în: &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Activează expirarea parolei&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Numărul de zile înainte de a permite schimbarea: &quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Numărul de zile înaintea schimbării: &quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Numărul de zile înaintea avertizării: &quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Numărul de zile înaintea dezactivării contului: &quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Informații despre parolă&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Selectați grupurile cărora utilizatorul va aparține: &quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Date despre grup&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Selectați utilizatorii ce vor aparține acestui grup: &quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Membrii grupului&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Editare grupuri / utilizatori&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;S-a produs o eroare:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Închide&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Drepturi de autor (C) %s Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Gestionare utilizatori&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++&quot;_: Traducători &amp; @mail\n&quot;
++&quot;Harald ERSCH &lt;hersch@romatsa.ro&gt;, 2002, 2003\n&quot;
++&quot;Ovidiu CONSTANTIN &lt;ovidiu.constantin@gmx.net&gt;, 2003\n&quot;
++&quot;Ovidiu CONSTANTIN &lt;ovidiusoft@gmail.com&gt;, 2004\n&quot;
++&quot;Cristian Ionuț PÎRÎU &lt;piriu.cristian@rdslink.ro&gt;, 2008\n&quot;
++&quot;Florin Cătălin RUSSEN &lt;cfrussen@yahoo.co.uk&gt;, 2009, 2010.\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Cîmpul numelui nu poate fi gol, indicați un nume&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;Numele trebuie să conțină numai litere mici, numere, „-” și „_”&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Numele este prea lung&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Eroare&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;eroare necunoscută&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Eroare la crearea `%s': %s&quot;
+
+<a id="userdrake2tags1133porupo">Added: userdrake2/tags/1.13.3/po/ru.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/ru.po (rev 0)
++++ userdrake2/tags/1.13.3/po/ru.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,767 @@
++# translation of ru.po to Russian
++# Translation of userdrake messages to Russian
++# Copyright (C) 2001,2003, 2004, 2008, 2009 Free Software Foundation, Inc.
++# Copyright (c) 2001 Mandriva.
++#
++# Vladimir Choundalov &lt;choundalovvv@point.pwp.ru&gt;, 2001.
++# Pavel Maryanov &lt;acid_jack@ukr.net&gt;, 2002, 2004, 2008.
++# Alice Lafox &lt;alice@lafox.com.ua&gt;, 2003.
++# Alice Lafox &lt;alice@lafox.net&gt;, 2004.
++# akdengi &lt;kazancas@mandriva.ru&gt;, 2008, 2009.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: ru\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2009-10-18 11:15+0500\n&quot;
++&quot;Last-Translator: akdengi &lt;kazancas@mandriva.ru&gt;\n&quot;
++&quot;Language-Team: Russian &lt;gnu@mx.ru&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.11.4\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n!=1);\n&quot;
++&quot;\n&quot;
++&quot;X-Language: ru_RU\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Ошибка чтения `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Ошибка создания `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Ошибка удаления `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Ошибка создания аккаунта: '%s'.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;Невозможно получить номер Uid&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;Невозможно вернуть значение&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Ошибка создания почтового спула.\n&quot;
++
++#: ../USER/USER.xs:582
++#, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Пользователь не может быть изменен: : '%s'.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Пользователь не может быть удален: '%s'.\n&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;Сбой установки пароля: '%s'.\n&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;неизвестная ошибка&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Ошибка создания группы.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;Группа не может быть изменена: '%s'.\n&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;Группа не может быть удалена: '%s'.\n&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;Нет домашней директории для пользователя.\n&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Домашняя директория не может быть удалена: '%s'.\n&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Ошибка удаления почтового спула.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Загружаются пользователи и группы... Подождите, пожалуйста&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Утилита для управления пользователями Mageia&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;/_Установка гостевого доступа&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;/_Удаление гостевого доступа&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Действия&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Редактировать&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Удалить&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Опции&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Отфильтровать системных пользователей&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Файл&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Обновить&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Выход&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/Добавить _пользователя&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Добавить _группу&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Справка&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Сообщить об ошибке&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_О программе...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Поиск:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Применить фильтр&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Пользователи&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Группы&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Пользователи и группы&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Имя пользователя&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ID пользователя&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Главная группа&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Полное имя&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Оболочка входа&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Домашний каталог&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Статус&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Имя группы&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ID группы&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Члены группы&quot;
++
++# broken into two lines to avoid too large a button
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;&quot;
++&quot;Добавить\n&quot;
++&quot;пользователя&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Добавить пользователя в систему&quot;
++
++# broken into two lines to avoid too large a button
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;&quot;
++&quot;Добавить\n&quot;
++&quot;группу&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Добавить группу в систему&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Редактировать&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Редактировать выбранную строку&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Удалить&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Удалить выбранную строку&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Обновить&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Обновить список&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Заблокирован&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Срок действия истёк&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Щёлкните по значку, чтобы сменить его&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Создать нового пользователя&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Создать домашний каталог&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Домашний каталог:&quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Создать личную группу для пользователя&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Указать ID пользователя вручную&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Пользователь уже существует, выберите другое Имя пользователя&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Пароли не совпадают&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Этот пароль слишком прост. \n&quot;
++&quot;Хорошие пароли должны быть &gt; 6 символов&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;UID пользователя &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Создавать пользователей с UID меньше 500 не рекомендуется.\n&quot;
++&quot;Вы уверены, что хотите сделать это?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;%s добавляется в группу 'users'&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Создается новая группа: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Добавляется пользователь: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Мастер миграции&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;Запустить мастер миграции, чтобы импортировать документы и настройки Windows &quot;
++&quot;в данный дистрибутив Mageia?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Отмена&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Ок&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Выбрать группу&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Добавить в существующую группу&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Добавить в группу 'users'&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Группа с таким именем уже существует. Что вы хотите сделать?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Создать новую группу&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Указать ID группы вручную&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Группа уже существует, выберите другое Имя группы&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;GID группы &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Создавать группы с GID менее 500 не рекомендуется.\n&quot;
++&quot;Вы уверены, что хотите сделать это?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Добавляется группа: %s&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Удалить файлы или нет?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Удаляется пользователь %s\n&quot;
++&quot; Также выполняются следующие действия\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Удалить домашний каталог: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Удалить почтовый ящик :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Удаляется пользователь: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Удалить группу %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s является главной группой для пользователя %s\n&quot;
++&quot;Сначала удалите пользователя&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Удаляется группа: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Полное имя:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Логин:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Пароль:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Подтверждение пароля:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Оболочка входа:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Имя группы:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Пожалуйста, выберите для пользователя по крайней мере одну группу&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Укажите год, месяц и день\n&quot;
++&quot;окончания срока действия учётной записи&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Заполните все поля для возраста пароля\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Нельзя удалить пользователя '%s' из его главной группы&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Домашний каталог:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Данные пользователя&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Включить срок действия учётной записи&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Срок действия учётной записи истекает (ГГГГ-ММ-ДД):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Заблокировать учётную запись пользователя&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Информация об учётной записи&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Последний раз пользователь сменил пароль:&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Включить срок действия пароля&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Через сколько дней разрешить изменение:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Через сколько дней потребовать изменение:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;За сколько дней предупреждать об изменении:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Количество дней до отключения учётной записи:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Информация о пароле&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Выберите группы, членом которых будет пользователь:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Данные группы&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Выберите пользователей для присоединения к этой группе:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Группы пользователей&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Редактировать Группы / Пользователей&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Произошла ошибка:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Закрыть&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Copyright (C) %s Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Управление пользователями&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++&quot;Pavel Maryanov &lt;acid_jack@ukr.net&gt;, 2002, 2003, 2005, 2006, 2008.\n&quot;
++&quot;Alexander Kazancev &lt;kazancas@mandriva.org&gt; 2010\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Поле имени не заполнено. Укажите имя.&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++&quot;Имя должно содержать только латинские символы нижнего регистра, цифры, `-' и &quot;
++&quot;`_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Имя слишком длинное&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Ошибка&quot;
++
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;неизвестная ошибка&quot;
++
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Ошибка создания `%s': %s&quot;
+
+<a id="userdrake2tags1133poscpo">Added: userdrake2/tags/1.13.3/po/sc.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/sc.po (rev 0)
++++ userdrake2/tags/1.13.3/po/sc.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,756 @@
++# translation of userdrake-sc.po to Sardu
++# translation of userdrake to Sardu
++# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
++# Antonio Pistis &lt;antonio.pistis@virgilio.it&gt;, 2004.
++# Antoni Pistis &lt;antonio.pistis@virgilio.it&gt;, 2005.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-sc\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2005-01-29 12:56+0100\n&quot;
++&quot;Last-Translator: Antoni Pistis &lt;antonio.pistis@virgilio.it&gt;\n&quot;
++&quot;Language-Team: Sardu\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.3\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Faddina ligendi `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Faddina creendi `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Faddina srexinendi `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Faddina creendi coa de posta.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Faddina creendi coa de posta.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Faddina creendi coa de posta.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;faddina disconnota&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Faddina creendi coa de posta.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Faddina burrendi coa de posta.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Càrrigu Umperadoris e Grupus... Po praxeri, abeta&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Aina de maniju umperadoris Mageia&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/At_zionis&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Muda&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Burra&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/Sc_eras&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Cilira is umperadoris de su sistema&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_File&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/A_rrecasça&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Bessi&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Açungi umperadori&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Açungi _Grupu&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/A_judu&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/A_rrelata Farta&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/A_pitzus de...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Circa:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Àpriga ciliru&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Umperadoris&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Grupus&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Umperadoris e Grupus&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Nòmini umperadori&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ID umperadori&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Grupu Primàriu&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Nòmini prenu&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Shell de login&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Home Directory&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Stadu&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Nòmini Grupu&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;IP Grupu&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Membrus de su Grupu&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Açungi Umperadori&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Açungi unu umperadori a su sistema&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Açungi Grupu&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Açungi unu grupu a su sistema&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Muda&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Muda s'arraya sçoberada&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Burra&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Burra s'arraya sçoberada&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Arrecasça&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Arrecasça sa lista&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Arrocu&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Scadèssiu&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Craca me in sa màgini po da cambiai&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Crea Umperadori Nou&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Crea Home Directory&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Home Directory: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Crea unu grupu personali po s'umperadori&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Indita su ID umperadori a manu&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;S'umperadori esistit jai, sçobera un'atru Nòmini Umperadori&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Disacòrdiu de password&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Custa password est tropu simpli. \n&quot;
++&quot; Is passwords bonas iant a bolli &gt; 6 caràteris&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Sa Uid umperadori est &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Creai unu umperadori cun d-unu UID prus basçu de 500 no est cunsillau.\n&quot;
++&quot; Ses siguru ki du bolis fàiri?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Ponju %s in su grupu 'umperadoris'&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Creu su grupu nou: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Açungu umperadori: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Annudda&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Ok&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Sçobera grupu&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Açungi a grupu&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Açungi a su grupu 'umperadoris'&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Unu grupu cun custu nòmini esistit jai. Ita bolis fàiri?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Crea Grupu Nou&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Indita ID Grupu a manu&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Su Grupu esistit jai, po praxeri, sçobera un'atru nòmini grupu&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;Su Gid de su Grupu est &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Creai unu grupu cun d-unu GID prus basçu de 500 no est cunsillau.\n&quot;
++&quot; Ses siguru de du bolis fàiri?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Açungu Grupu: %s&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Burrai o no is file?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Burru umperadori %s\n&quot;
++&quot; Fatzu puru cantu sighit\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Burra sa Home Directory: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Burra sa Mailbox :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Srexinendi umperadori: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Diaderus bolis burrai su grupu %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s est unu grupu primàriu po s'umperadori %s\n&quot;
++&quot; Burra s'umperadori a innantis&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Srèxinu grupu: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Nòmini prenu:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Login:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Password:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Cunfirma sa Password:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Shell de login:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Nòmini Grupu:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Sçobera a su mancu unu grupu po s'umperadori&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Po praxeri, indita Annu, Mesi e Dì \n&quot;
++&quot; po sa Scadèssida de s'Account &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Preni totu is campus po sa scadèssida de sa password\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;No podis srexinai s'umperadori '%s' de su grupu suu primàriu&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Home:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Dadus Umperadori&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Abiva sa scadèssida de s'account&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;S'account scadessit (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Arroca s'account umperadori&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Account Info&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;S'umperadori at mudau a ùrtimu sa password :&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Abiva sa scadèssida de sa password&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Dìs antis de podi mudai:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Dìs antis de depi mudai :&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Dìs de avertimentu antis de sa muda :&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Dìs antis de disabivai s'account :&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Password Info&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Sçobera is grupu ki s'umperadori at a essi membru :&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Dadus Grupu&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Sçobera is umperadoris de uniri a custu grupu :&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Umperadoris de su Grupu&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Muda Grupus / Umperadoris&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Faddina&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Serra&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Maniju Umperadoris&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Antoni Pistis &lt;antonio.pistis@virgilio.it&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Su campu \&quot;nòmini\&quot; est sbuidu, po praxeri, intra unu nòmini&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++&quot;Su nòmini depit cuntenni feti lìteras latinas piticas, nùmerus, `-' e `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Su nòmini est tropu longu&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Faddina&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;faddina disconnota&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Faddina creendi `%s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Autoris: &quot;
+
+<a id="userdrake2tags1133poskpo">Added: userdrake2/tags/1.13.3/po/sk.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/sk.po (rev 0)
++++ userdrake2/tags/1.13.3/po/sk.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,753 @@
++# translation of userdrake-sk.po to
++# Pavol Cvengros &lt;orpheus@hq.alert.sk&gt;, 2000.
++# Tibor Pittich &lt;Tibor.Pittich@phuture.sk&gt;, 2003, 2004.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-sk\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2004-09-13 10:08+0200\n&quot;
++&quot;Last-Translator: \n&quot;
++&quot;Language-Team: &lt;sk@li.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.9\n&quot;
++&quot;Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n&gt;=2 &amp;&amp; n&lt;=4) ? 1 : 2;\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Chyba v čítaní `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Chyba vo vytváraní `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Chyba v odstraOovaní oužívateľa: `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Chyba vo vytváraní fronty e-mailov.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Chyba vo vytváraní fronty e-mailov.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Chyba vo vytváraní fronty e-mailov.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;neznáma chyba&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Chyba vo vytváraní fronty e-mailov.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Chyba pri vymazávaní fronty e-mailov.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Načítavajú sa používatelia a skupiny... Čakajte prosím&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageia nástroj pre správu používateľov&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Akcie&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Upraviť&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Vymazať&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Nastavenia&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Filtrovať systémových používateľov&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Súbor&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Obnoviť&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Koniec&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Pridať používateľa&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Pridať_skupinu&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Pomoc&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Oznámiť chybu&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_O ...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Hľadať:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Aplikovať filter&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Používatelia&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Skupiny&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Používatelia a skupiny&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Používateľské meno&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ID používateľa&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Primárna skupina&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Celé meno&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Prihlasovací shell&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Domovský adresár&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Stav&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Meno skupiny&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ID skupiny&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Členovia skupiny&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Pridať používateľa&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Pridať používateľa do systému&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Pridať skupinu&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Pridať skupinu do systému&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Upraviť&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Zmeniť označený riadok&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Zmazať&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Vymazať označený riadok&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Obnoviť&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Obnoviť zoznam&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Zablokované&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Expirácia&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Kliknite na ikonu pre zmenu&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Vytvoriť nového používateľa&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Vytvoriť domovský adresár&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Domovský adresár:&quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Vytvorenie privátnej skupiny pre používateľa&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Špecifikovať ID používateľa&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Používateľ už existuje, vyberte si iné používateľské meno&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Heslá nie sú zhodné&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Toto heslo je príliš jednoduché. \n&quot;
++&quot; Vhodné heslo by malo mať aspoň 6 znakov&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;ID používateľa je &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Vytvorenie používateľa s UID menším ako 500 nie je odporúčané.\n&quot;
++&quot; Naozaj si to želáte?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Priradenie %s do skupiny 'users'&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Vytvoriť novú skupinu: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Pridávanie používateľa: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Zrušiť&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Ok&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID:&quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Výber skupiny&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Pridať do existujúcej skupiny&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Pridať do skupiny 'users'&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Skupina s takýmto menom už existuje. Čo chcete teraz spraviť?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Vytvoriť novú skupinu&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Špecifikovať GID skupiny&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Skupina už existuje, zvoľte si prosím iné meno skupiny&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;Skupinové gid je &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Vytvorenie skupiny s GID menej ako 500 nie je odporučené.\n&quot;
++&quot; Ste si istí že to chcete?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Pridávanie skupiny: %s&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID:&quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Vymazať súbory?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Vymazenie používateľa %s\n&quot;
++&quot; Vykonajú sa aj nasledovné akcie\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Vymazať domovský adresár: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Vymazať mailbox :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Odstránenie používateľa: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Naozaj chcete vymazať skupinu %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s je primárna skupina pre používateľa %s\n&quot;
++&quot; Najprv odstráňte používateľa&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Odstránenie skupiny: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Celé meno:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Používateľské meno:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Heslo:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Potvrdiť heslo:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Prihlasovací shell:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Meno skupiny:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Vyberte prosím aspoň jednu skupinu pre používateľa&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Vyšpecifikujte prosím rok, mesiac a deň\n&quot;
++&quot; kedy má byť konto zneplatnené&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Vyplňte prosím všetky položky pri nastavovaní platnosti hesla\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Nie je možné odstrániť používateľa '%s' z jeho primárnej skupiny&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Domovský adresár:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Používateľské údaje&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Povoliť vypršanie platnosti účtov&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Vypršanie platnosti účtu (ROK-MES-DEN):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Zablokovať používateľský účet&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Informácie o účte&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Používateľ si naposledy zmenil heslo:&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Povoliť expiráciu hesiel&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Dní pre povolenou zmenou hesla :&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Dni pred vyžadovanou zmenou :&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Koľko dní varovať pred zmenou :&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Dní pred deaktivovaním konta :&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Informácie o hesle&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Označiť skupiny ktorých má byť používateľ členom:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Údaje skupiny&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Vybrať používateľov pre zaradenie do tejto skupiny :&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Skupina používateľov&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Upraviť Skupiny / Používateľov&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Vyskytla sa chyba&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Zatvoriť&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Manažovanie používateľov&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Tibor Pittich &lt;Tibor.Pittich@mandriva.org&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Položka s menom je prázdna, zadajte prosím meno&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;Meno musí obsahovať iba malé písmená, čísla, `-' a `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Meno je príliš dlhé&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Chyba&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;neznáma chyba&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Chyba vo vytváraní `%s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Autori:&quot;
+
+<a id="userdrake2tags1133poslpo">Added: userdrake2/tags/1.13.3/po/sl.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/sl.po (rev 0)
++++ userdrake2/tags/1.13.3/po/sl.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,759 @@
++# translation of sl.po to Slovenščina
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/sl.php3
++#
++# Copyright (C) 2003, 2004, 2007 Free Software Foundation, Inc.
++#
++# Gregor Pirnaver &lt;gregor.pirnaver@email.si&gt;, 2002.
++# Gregor Pirnaver &lt;gregor.pirnaver@siol.net&gt;, 2003.
++# Mitja Masten &lt;mitja.masten@email.si&gt;, 2003.
++# Gregor Pirnaver &lt;gregor.pirnaver@mandrakeprinas.org&gt;, 2004.
++# Jure Repinc &lt;jlp@holodeck1.com&gt;, 2007, 2009, 2010.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: sl\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2010-05-09 20:40+0200\n&quot;
++&quot;Last-Translator: Jure Repinc &lt;jlp@holodeck1.com&gt;\n&quot;
++&quot;Language-Team: Slovenian &lt;lugos-slo@lugos.si&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: Lokalize 1.0\n&quot;
++&quot;Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || &quot;
++&quot;n%100==4 ? 2 : 3);\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Napaka pri branju »%s«: %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Napaka pri ustvarjanju `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Napaka pri odstranjevanju `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Ustvarjanje računa ni uspelo: %s.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;Ni moč pridobiti številke uporabnika&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;Ni moč pridobiti vrednosti&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Napaka pri ustvarjanju poštnega navitka (mail spool).\n&quot;
++
++#: ../USER/USER.xs:582
++#, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Uporabnika ni bilo moč spremeniti: %s.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Uporabnika ni bilo moč izbrisati: %s.\n&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;Gesla ni bilo moč nastaviti: %s.\n&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;neznana napaka&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Ustvaritev skupine ni uspela.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;Skupine ni bilo moč spremeniti: %s.\n&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;Skupine ni bilo moč izbrisati: %s.\n&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;Za uporabnika ni domače mape.\n&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Domače mape ni bilo moč izbrisati: %s\n&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Napaka pri odstranjevanju poštnega navitka (mail spool).\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Nalaganje uporabnikov in skupin... Prosim počakajte&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageia orodje za upravljanje z uporabniki&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;/_Namesti račun za goste&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;/_Odstrani račun za goste&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Dejanja&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Uredi&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Zbriši&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Možnosti&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Filtriraj sistemske uporabnike&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Datoteka&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Osveži&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Končaj&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Dodaj uporabnika&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Dodaj _Skupino&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Pomoč&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Poročaj o hrošču&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_O...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Iskanje:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Uporabi filter&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Uporabniki&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Skupine&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Uporabniki in skupine&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Uporabniško ime&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ID uporabnika&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Primarna skupina&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Polno ime&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Prijavna lupina&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Domača mapa&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Stanje&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Ime skupine&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ID skupine&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Člani skupine&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Dodaj uporabnika&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Dodaj uporabnika v sistem&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Dodaj skupino&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Dodaj skupino v sistem&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Uredi&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Uredi izbrano vrstico&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Zbriši&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Zbriši izbrano vrstico&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Osveži&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Osveži spisek&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Zaklenjeno&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Potečeno&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Kliknite ikono, če jo želite spremeniti.&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Ustvari novega uporabnika&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Ustvari domačo mapo&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Domača mapa: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Ustvari zasebno skupino za uporabnika&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Ročno določi ID uporabnika:&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Uporabniško ime že obstaja, prosim izberite drugo uporabniško ime&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Neujemanje gesla&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Geslo je preenostavno. \n&quot;
++&quot; Dobro geslo je dolgo vsaj šest znakov&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Uporabnikov Uid je &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Ustvarjanje uporabnika z UID manjšim od 500 ni priporočeno.\n&quot;
++&quot;Ali ste prepričani, da želite narediti prav to?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Vstavljam %s v 'uporabniško' skupino&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Ustvarjanje nove skupine: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Dodajanje uporabnika: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Čarovnik za selitev&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;Ali želite zagnati čarovnika za selitev, ki vam pomaga uvoziti dokumente in &quot;
++&quot;nastavitve iz Windows v Mageia?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Prekliči&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Potrdi&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Izberi skupino&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Dodaj v obstoječo skupino&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Dodaj v uporabniško skupino&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Skupina s tem imenom že obstaja. Kaj bi želeli narediti?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Ustvari novo skupino&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Ročno določi ID skupine&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Skupina že obstaja, prosim izberite drugo ime skupine&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;Gid skupine je &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Ustvarjanje skupine z GID manjšim od 500 ni priporočeno.\n&quot;
++&quot;Ali ste prepričani, da želite narediti prav to?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Dodajanje skupine: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Zbrišem datoteke ali ne?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Brisanje uporabnika %s\n&quot;
++&quot; Prav tako izvrši naslednja dejanja\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Zbriši domačo mapo: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Zbriši poštni nabiralnik :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Odstranjevanje uporabnika: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Ali resnično želite izbrisati skupino %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s je primarna skupina za uporabnika %s\n&quot;
++&quot; Najprej odstranite uporabnika&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Odstranjevanje skupine: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Polno ime:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Uporabniško ime:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Geslo:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Potrdi geslo:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Prijavna lupina:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Ime skupine:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Prosim izberite vsaj eno skupino za uporabnika&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Prosim določite leto, mesec in dan,\n&quot;
++&quot;ko uporabniški račun poteče &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Prosim izpolnite vsa polja o staranju gesla\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Uporabnika ni mogoče odstraniti '%s' iz njegove primarne skupine&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Dom:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Podatki o uporabniku&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Omogoči, da račun poteče&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Uporabniški račun poteče (YYYY-MM-DD oz. leto-mesec-dan):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Zakleni uporabnikov račun&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Podatki o uporabniškem računu&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Uporabnik je nazadnje spremenil geslo: &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Omogoči, da geslo poteče&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Število dnevov preden je dovoljena sprememba:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Število dnevov pred zahtevano spremembo:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Število dnevov opozorila pred spremembo:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Število dnevov pred neaktivnostjo računa:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Podatki o geslu&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Izberite skupine katerih član bo uporabnik:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Podatki o skupini&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Izberite uporabnike za pridružitev tej skupini&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Skupinski uporabniki&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Uredi Skupine / Uporabnike&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Prišlo je do napake:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Zapri&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Avtorske pravice (C) %s Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Upravljanje z uporabniki&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia &quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;_: Imena in e-poštni naslovi prevajalcev\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Polje z imenom je prazno, prosim podajte ime&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;Ime lahko vsebuje le male črke, številke, `-' in `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Ime je predolgo&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Napaka&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;neznana napaka&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Napaka pri ustvarjanju `%s': %s&quot;
+
+<a id="userdrake2tags1133posqpo">Added: userdrake2/tags/1.13.3/po/sq.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/sq.po (rev 0)
++++ userdrake2/tags/1.13.3/po/sq.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,1136 @@
++#
++# Latest versions of po files are at http://www.mandrivalinux.com/l10n/sq.php3
++#
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR Free Software Foundation, Inc.
++# Naim Daka &lt;naim70@freesurf&gt;, 2002.
++#
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake2\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2002-11-12 23:30+0200\n&quot;
++&quot;Last-Translator: Naim Daka &lt;naim70@freesurf.ch&gt;\n&quot;
++&quot;Language-Team: Albanian &lt;LL@li.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8-bit\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#: ../USER/USER.xs:86
++#, fuzzy, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Gabim gjatë ngarkimit të skedares pixmap: %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, fuzzy, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Zhdukja përdoruesit: %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Gabim gjatë ngarkimit të skedares pixmap: %s&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++#, fuzzy
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Gabim gjatë ngarkimit të skedares pixmap: %s&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Gabim gjatë ngarkimit të skedares pixmap: %s&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Gabim gjatë ngarkimit të skedares pixmap: %s&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++#, fuzzy
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Gabim gjatë ngarkimit të skedares pixmap: %s&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Ngarkimi i Përdoruesve dhe i Grupeve... Një moment ju lutemi&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Vegël Qeverisëse për Përdoruesit Mageia&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Akcionet&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Boto&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Zhduke&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Opcionet&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Filter i sistemit të përdoruesve&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Skedare&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Rifreskoje&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Braktise&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Shtoje një përdorues&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Shtoje një grup&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Ndihmë&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Raport Bugi&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Në lidhje me...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Hulumto:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Aplikoje filterin&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Përdoruesitë&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Grupet&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, fuzzy, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Në grupet&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Emri i Përdoruesit&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ID i Përdoruesit&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Grupi Primar&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Emri i Plot&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Login Shell&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Repertori Home&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Statuti&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Emri i Grupit&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Grup ID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Anëtarët e Grupit&quot;
++
++# broken into two lines to avoid too large a button
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Shtoje një Përdorues&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Shtoje një përdorues në sistem&quot;
++
++# broken into two lines to avoid too large a button
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Shtoje një Grup&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Shtoje një grup në sistem&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Boto&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Botoje rreshtin e zgjedhur&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Zhduke&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Zhduke rreshtin e zgjedhur&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Rifreskoje&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Rifreskoje listën&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Mbyllur&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Skadon afati&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Kliko mbi ikonë për ta ndërruar&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Krijo një Përdorues të Ri&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Krijo Repertorin Home&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Repertori Home: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Kroji një grup privat për përdoruesin&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Specifikoje ID e përdoruesit manuelisht&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;&quot;
++&quot;Ky përdorues ekziston, ju lutemi zgjedheni një emër tjetër të Pëdoruesin&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Parulla nuk Përputhet&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Kjo parullë është tejet e thjeshtë. \n&quot;
++&quot; Një parullë e mirë duhet të jetë me &gt; 6 karaktere&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Uid i përdoruesit është &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Krijimi i një përdoruesi me UID, më të vogël se 500 nuk rekomandohet.\n&quot;
++&quot; A jeni i sigurt për këtë veprim?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Shtimi i %s në 'përdoruesit' e grupit&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Krijimi i një grupi të ri: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Shtimi i një përdoruesi: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Anulo&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Ok&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, fuzzy, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Zgjedhe Grupin&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Shtoje në grupin ekzistues&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Shtoi në 'përdoruesit' grup&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Një grup me këtë emër veçse ekziston. Çka dëshironi të bëni?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Krijo një Grup të Ri&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Specifoje grupin e ID manuelisht&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Grupi veçse ekziston, ju lutemi zgjedheni një Emër tjetër të Grupit&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; Grupi Gid është &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Krijimi i një përdoruesi me GID, më të vogël se 500 nuk rekomandohet.\n&quot;
++&quot; A jeni i sigurt për këtë veprim?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Shtimi i një grupi: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, fuzzy, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Zhduke rreshtin e zgjedhur&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Zhdukja e përdoruesit %s\n&quot;
++&quot; Njashtu parashefë akcionet vijuese\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Zhduke Repertorin Home: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Zhduke Mailbox :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Zhdukja përdoruesit: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;A me të vërtet dëshironi ta zhdukni grupin %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s është grup primar për përdoruesin %s\n&quot;
++&quot; Zhduke përdoruesin para se të vazhdosh&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Zhdukja e grupit: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Emri i Plot:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Login:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Parulla:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Konfirmoje Parullën:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Login Shell:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Emri i Grupit:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Ju lutemi zgjedheni më së paku një grup për përdoruesin&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Ju lutemi zgjedheni Vitin, Muajin dhe Ditën \n&quot;
++&quot; për Mbarimin e afatit të Kontos &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Ju lutemi mbushni të gjitha fushat e parullës përsëri\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Ju nuk mund ta zhdukni përdoruesin '%s' nga grupi i tij primar&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Repertori Home:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Të dhënat e përdoruesit&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Mundësoje konton e afatizuar&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Kontoja skadon (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Lidhe Konton e Përdoruesit&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Informcion mbi Konton&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Përdoruesi i fundit e ka ndrryshuar parullën më :&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Mundësoje Mbarimin Afatzgjatës të Parullës&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Ditët para se është mundësuar ndryshimi :&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Ditës para se është nevojitur ndryshimi :&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Ditër para se është ndryshuar vëmendja :&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Ditët para se të jetë dezaktivizuar kontoja :&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Informacion mbi Parullën&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Zgjedhi grupet për të cilat përdoruesi do të jetë anëtar i tyre:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Të dhëna të Grupit&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Zgjedhi përdoruesit të cilët do ti bashkangjiten grupit :&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Grup Përdoruesish&quot;
++
++#: ../userdrake:1127
++#, fuzzy, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Grup Përdoruesish&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Një gabim është paraqitur&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Mbylle&quot;
++
++#: ../userdrake:1277
++#, fuzzy, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;E drejtë autori © 2003 Mandriva SA&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Menagjer për Përdorues&quot;
++
++#: ../userdrake:1282
++#, fuzzy, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mandriva Online&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Emri i fushës është zbrazët ju lutemi furnizoni një emër&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;Emri duhet të përmbaj më së paku shkronja, numra, `-' dhe `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Emri është shumë i gjatë&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Gabim&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Gabim gjatë ngarkimit të skedares pixmap: %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Autorët: &quot;
++
++#~ msgid &quot;Yes&quot;
++#~ msgstr &quot;Po&quot;
++
++#~ msgid &quot;No&quot;
++#~ msgstr &quot;Jo&quot;
++
++#, fuzzy
++#~ msgid &quot;Delete files or not&quot;
++#~ msgstr &quot;Zhduke rreshtin e zgjedhur&quot;
++
++#~ msgid &quot;Warning : Deleting User&quot;
++#~ msgstr &quot;Kujdes : Zhdukja e Përdoruesit&quot;
++
++#~ msgid &quot;Warning : Deleting Group&quot;
++#~ msgstr &quot;Kujdes : Zhdukja e Grupit&quot;
++
++#~ msgid &quot;Generic help on userdrake&quot;
++#~ msgstr &quot;Ndihmë e përgjithshme në userdrake&quot;
++
++#~ msgid &quot;Help&quot;
++#~ msgstr &quot;Ndihmë&quot;
++
++#~ msgid &quot;Delete User&quot;
++#~ msgstr &quot;Zhduke Përdoruesin&quot;
++
++#~ msgid &quot; Remove Home Directory&quot;
++#~ msgstr &quot; Zhduke Repetorin Home&quot;
++
++#~ msgid &quot;Do you want to delete the user's home directory and mail spool?&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;A dëshironi ta zhdukni repertorin home të përdoruesve dhe mail spool?&quot;
++
++#~ msgid &quot;/Filter system users&quot;
++#~ msgstr &quot;/Filter i sistemit të përdoruesve&quot;
++
++#~ msgid &quot;/Options&quot;
++#~ msgstr &quot;/Opcionet&quot;
++
++#~ msgid &quot;/Actions&quot;
++#~ msgstr &quot;/Akcionet&quot;
++
++#~ msgid &quot;/Edit&quot;
++#~ msgstr &quot;/Boto&quot;
++
++#~ msgid &quot;/Delete&quot;
++#~ msgstr &quot;/Zhduke&quot;
++
++#~ msgid &quot;Reload&quot;
++#~ msgstr &quot;Ringarkoje&quot;
++
++#~ msgid &quot;Save&quot;
++#~ msgstr &quot;Shpëtoje&quot;
++
++#~ msgid &quot;Exit&quot;
++#~ msgstr &quot;Dil&quot;
++
++#~ msgid &quot;Settings&quot;
++#~ msgstr &quot;Rregullimet&quot;
++
++#~ msgid &quot;Show tools bar&quot;
++#~ msgstr &quot;Paraqite shufrën e veglave&quot;
++
++#~ msgid &quot;View users&quot;
++#~ msgstr &quot;Çfaqi përdoruesit&quot;
++
++#~ msgid &quot;Preferences&quot;
++#~ msgstr &quot;Përparësit&quot;
++
++#~ msgid &quot;Ldap Server&quot;
++#~ msgstr &quot;Server Ldap&quot;
++
++#~ msgid &quot;Save change&quot;
++#~ msgstr &quot;Shpëtoje ndryshimin&quot;
++
++#~ msgid &quot;Add&quot;
++#~ msgstr &quot;Shto&quot;
++
++#~ msgid &quot;Edit user(s)&quot;
++#~ msgstr &quot;Boto përdorues(it)&quot;
++
++#~ msgid &quot;Remove&quot;
++#~ msgstr &quot;Zhduke&quot;
++
++#~ msgid &quot;Edit group(s)&quot;
++#~ msgstr &quot;Boto grupin(et)&quot;
++
++#~ msgid &quot;User id&quot;
++#~ msgstr &quot;Identiteti i përdoruesit&quot;
++
++#~ msgid &quot;Group id&quot;
++#~ msgstr &quot;Identiteti i grupit&quot;
++
++#~ msgid &quot;Comments&quot;
++#~ msgstr &quot;Komentimet&quot;
++
++#~ msgid &quot;Shell&quot;
++#~ msgstr &quot;Shell&quot;
++
++#~ msgid &quot;name&quot;
++#~ msgstr &quot;emri&quot;
++
++#~ msgid &quot;gid&quot;
++#~ msgstr &quot;n° i grupit&quot;
++
++#~ msgid &quot;passwd&quot;
++#~ msgstr &quot;parulla&quot;
++
++#~ msgid &quot;users&quot;
++#~ msgstr &quot;përdoruesit&quot;
++
++#~ msgid &quot;Parameters&quot;
++#~ msgstr &quot;Parametrat&quot;
++
++#~ msgid &quot;General option&quot;
++#~ msgstr &quot;Opcioni gjeneral&quot;
++
++#~ msgid &quot;Edit accounts on a LDAP directory&quot;
++#~ msgstr &quot;Botoi llogaritë në repertorin LDAP&quot;
++
++#~ msgid &quot;Active autologin support&quot;
++#~ msgstr &quot;Aktivizoje lidhjen automatike&quot;
++
++#~ msgid &quot;User creation&quot;
++#~ msgstr &quot;Paramtra me merrëveshje&quot;
++
++#~ msgid &quot;Default shell:&quot;
++#~ msgstr &quot;Interpretues me marrëveshje:&quot;
++
++#~ msgid &quot;Default home dir:&quot;
++#~ msgstr &quot;dosja personale me marrëveshje:&quot;
++
++#~ msgid &quot;Default face:&quot;
++#~ msgstr &quot;Faqe me marrëveshje:&quot;
++
++#~ msgid &quot;Default group:&quot;
++#~ msgstr &quot;Grup me marrëveshje:&quot;
++
++#~ msgid &quot;General&quot;
++#~ msgstr &quot;Përgjithësish&quot;
++
++#~ msgid &quot;Don't show user with id less than 500&quot;
++#~ msgstr &quot;Mos i çfaqë përdoruesit me identitet më të vogël se 500&quot;
++
++#~ msgid &quot;User identifier&quot;
++#~ msgstr &quot;Identifikues i përdoruesve&quot;
++
++#~ msgid &quot;Default Group&quot;
++#~ msgstr &quot;Grup me merrëveshje&quot;
++
++#~ msgid &quot;Groups list&quot;
++#~ msgstr &quot;Lista e grupeve&quot;
++
++#~ msgid &quot;Users View&quot;
++#~ msgstr &quot;Çfaqës i Përdoruesve&quot;
++
++#~ msgid &quot;Group identifier&quot;
++#~ msgstr &quot;Identifikues i grupit&quot;
++
++#~ msgid &quot;Groups View&quot;
++#~ msgstr &quot;Çfaqës i Grupeve&quot;
++
++#~ msgid &quot;/bin/bash&quot;
++#~ msgstr &quot;/bin/bash&quot;
++
++#~ msgid &quot;uid:&quot;
++#~ msgstr &quot;n° identitetit&quot;
++
++#~ msgid &quot;Comment:&quot;
++#~ msgstr &quot;Koment:&quot;
++
++#~ msgid &quot;Shell:&quot;
++#~ msgstr &quot;Shell:&quot;
++
++#~ msgid &quot;Home dir:&quot;
++#~ msgstr &quot;Dosje personale:&quot;
++
++#~ msgid &quot;passwd:&quot;
++#~ msgstr &quot;parulla&quot;
++
++#~ msgid &quot;Retype passwd:&quot;
++#~ msgstr &quot;Rishtype parullën&quot;
++
++#~ msgid &quot;Identity&quot;
++#~ msgstr &quot;Identiteti&quot;
++
++#~ msgid &quot;Available groups&quot;
++#~ msgstr &quot;Grupet e aktivizuara&quot;
++
++#~ msgid &quot;Extended&quot;
++#~ msgstr &quot;Shtrirje&quot;
++
++#~ msgid &quot;About UserDrake&quot;
++#~ msgstr &quot;Në lidhje me UserDrake&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;Userdrake is an application to add and\n&quot;
++#~ &quot;delete users on the Mageia\n&quot;
++#~ &quot;distribution.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;Userdrake now support ldap directory\n&quot;
++#~ &quot;support conformed to rfc2307bis.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;This application is under the GPL\n&quot;
++#~ &quot;license and is delived without\n&quot;
++#~ &quot;any warranty.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;You can get support at : \n&quot;
++#~ &quot;http://www.mandrakeexpert.com/&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Userdrake është një aplikacion për ti shtuar dhe\n&quot;
++#~ &quot;zhdukur përdoruesit e shpërdare në Mageia.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;Userdrake ka përkrahje në repertorin ldap\n&quot;
++#~ &quot;me përkrahje konforme në rfc2307bis.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;Ky aplikacion është ndër licencën\n&quot;
++#~ &quot;GPL dhë është i shpërndare pa\n&quot;
++#~ &quot;kurrëfare garantie.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;Ju mundë ti dërgoni raportet e bug(it) në:\n&quot;
++#~ &quot;http://www.mandrakeexpert.com/&quot;
++
++#~ msgid &quot;Name:&quot;
++#~ msgstr &quot;Emri:&quot;
++
++#~ msgid &quot;gid:&quot;
++#~ msgstr &quot;n° i grupit:&quot;
++
++#~ msgid &quot;In group&quot;
++#~ msgstr &quot;Në grup&quot;
++
++#~ msgid &quot;Not in group&quot;
++#~ msgstr &quot;Jashtë grupit&quot;
++
++#~ msgid &quot;Quit userdrake?&quot;
++#~ msgstr &quot;Braktise userdrake?&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;You have made changes\n&quot;
++#~ &quot;since the last save.\n&quot;
++#~ &quot;Do you really want to quit\n&quot;
++#~ &quot;userdrake?&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Ju keni bërë ndryshime\n&quot;
++#~ &quot;që nga regjistrimi i fundit.\n&quot;
++#~ &quot;A dëshironi me të vërtet të\n&quot;
++#~ &quot;braktisni userdrake?&quot;
++
++#~ msgid &quot;Enter new passwd&quot;
++#~ msgstr &quot;Futne parullën e re&quot;
++
++#~ msgid &quot;new passwd:&quot;
++#~ msgstr &quot;parulla e re:&quot;
++
++#~ msgid &quot;Change&quot;
++#~ msgstr &quot;Ndërroje&quot;
++
++#~ msgid &quot;Change face&quot;
++#~ msgstr &quot;Ndryshim i imazhit&quot;
++
++#~ msgid &quot;Set passwd&quot;
++#~ msgstr &quot;Ndërroje parullën&quot;
++
++#~ msgid &quot;User autologin&quot;
++#~ msgstr &quot;Lidhje automatike e përdoruesit&quot;
++
++#~ msgid &quot;UserDrake - Error&quot;
++#~ msgstr &quot;UserDrake - Gabim&quot;
++
++#~ msgid &quot;couldn't find blue color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;nuk mund ta gjejë ngjyrën e kaltërt në skedaren /usr/lib/X11/rgb.txt&quot;
++
++#~ msgid &quot;Select the image to use&quot;
++#~ msgstr &quot;Zgjedheni imazhin që duhet të përdoret&quot;
++
++#~ msgid &quot;Custom...&quot;
++#~ msgstr &quot;Personalizim...&quot;
++
++#~ msgid &quot;couldn't find grey color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;nuk mund ta gjejë ngjyrën e përhimtë në skedaren /usr/lib/X11/rgb.txt&quot;
++
++#~ msgid &quot;couldn't find black color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;nuk mund ta gjejë ngjyrën e zezë në skedaren /usr/lib/X11/rgb.txt&quot;
++
++#~ msgid &quot;login empty&quot;
++#~ msgstr &quot;emër i zbrazët i përdoruesit&quot;
++
++#~ msgid &quot;This login already exists on the system&quot;
++#~ msgstr &quot;Ky emër i përdoruesit ekziston në sistem&quot;
++
++#~ msgid &quot;The login is similar to a name's group&quot;
++#~ msgstr &quot;Ky emër i përdoruesit është i njëjtë si emri i një grupi&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;User id already in use&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;Identiteti i përdoruesit është në përdorim e sipër&quot;
++
++#~ msgid &quot;User id already in use&quot;
++#~ msgstr &quot;Identiteti i përdoruesit është në përdorim e sipër&quot;
++
++#~ msgid &quot;name empty&quot;
++#~ msgstr &quot;emër i zbrazët&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;Group id already in use&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;Grupi është në përdorim e sipër&quot;
++
++#~ msgid &quot;Group id already in use&quot;
++#~ msgstr &quot;Identiteti i grupit është në përdorim sipër&quot;
++
++#~ msgid &quot;Couldn't find pixmap file: %s&quot;
++#~ msgstr &quot;E pa mundur gjetja e skedares pixmap: %s&quot;
++
++#~ msgid &quot;%s: the file %s is busy (%s present)\n&quot;
++#~ msgstr &quot;%s: skedarja %s është e nxënë (%s prezente)\n&quot;
++
++#~ msgid &quot;%s: can't link %s: %s\n&quot;
++#~ msgstr &quot;%s: nuk mundë ta lexojë %s: %s\n&quot;
++
++#~ msgid &quot;%s: can't unlock %s: %s (your changes are still in %s)\n&quot;
++#~ msgstr &quot;%s: nuk mund ta hapë %s: %s (ndryshimet tuaja janë ende në %s)\n&quot;
++
++#~ msgid &quot;Error in stat on tmp files when i try to unlock lib\n&quot;
++#~ msgstr &quot;Gabim në gjendjen e skedares tmp kur u mundova ta hapë lib\n&quot;
++
++#~ msgid &quot;%s: no changes made\n&quot;
++#~ msgstr &quot;%s: asnjë ndryshim i bërë\n&quot;
++
++#~ msgid &quot;Select LDAP Directory&quot;
++#~ msgstr &quot;Zgjedhe Repertorin LDAP&quot;
++
++#~ msgid &quot;Server address:&quot;
++#~ msgstr &quot;Adresa Server:&quot;
++
++#~ msgid &quot;Search base:&quot;
++#~ msgstr &quot;Hulumto në bazë:&quot;
++
++#~ msgid &quot;Bind DN:&quot;
++#~ msgstr &quot;Bind DN:&quot;
++
++#~ msgid &quot;Connection Type :&quot;
++#~ msgstr &quot;Tip i Lidhjes :&quot;
++
++#~ msgid &quot;ssl&quot;
++#~ msgstr &quot;ssl&quot;
++
++#~ msgid &quot;Validate&quot;
++#~ msgstr &quot;Vlerësoje&quot;
++
++#~ msgid &quot;Test&quot;
++#~ msgstr &quot;Testoje&quot;
++
++#~ msgid &quot;cannot change ldap version to 3: %s&quot;
++#~ msgstr &quot;nuk mundë ta ndërroj versionin ldap në 3: %s&quot;
++
++#~ msgid &quot;cannot connect to the ldap server\n&quot;
++#~ msgstr &quot;nuk mundë të lidhet në serverin ldap\n&quot;
++
++#~ msgid &quot;cannot bind to the ldap server, %d\n&quot;
++#~ msgstr &quot;nuk mundë të lidhet në serverin ldap, %d\n&quot;
++
++#~ msgid &quot;Cannot bind to ldap server&quot;
++#~ msgstr &quot;Nuk mundë të lidhet në serverin ldap&quot;
++
++#~ msgid &quot;cannot save because the cannot connect to the ldap server&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;nuk mundë ti regjistroj sepse lidhja në serverin ldap është e pa mundur&quot;
++
++#~ msgid &quot;cannot relock lib&quot;
++#~ msgstr &quot;nuk mundë ta rimbyllë lib&quot;
+
+<a id="userdrake2tags1133posrpo">Added: userdrake2/tags/1.13.3/po/sr.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/sr.po (rev 0)
++++ userdrake2/tags/1.13.3/po/sr.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,1115 @@
++# translation of userdrake-sr.po to serbian
++# translation of userdrake2-sr.po to serbian
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/sr.php3
++#
++# Translated userdrake.po (serbian)
++# Copyright (C) 1999,2000,2001 Mandriva
++# Tomislav Jankovic &lt;tomaja@net.yu&gt;, 2001.
++# Миодраг Живковић &lt;miodragz@linuxo.org&gt;, 2006
++#
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-sr\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2004-02-01 19:18+0100\n&quot;
++&quot;Last-Translator: Toma Jankovic &lt;webmaster@mandrake.co.yu&gt;\n&quot;
++&quot;Language-Team: serbian &lt;mdk@linux.rs.sr&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.0.2\n&quot;
++&quot;Plural-Forms: nplurals=3; plural=n%10==1 &amp;&amp; n%100!=11 ? 0 : n%10&gt;=2 &amp;&amp; n%&quot;
++&quot;10&lt;=4 &amp;&amp; (n%100&lt;10 || n%100&gt;=20) ? 1 : 2;\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Грешка при читању `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Прављење грешке %s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Уклањам грешку `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Грешка при прављењу мејл спула.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Грешка при прављењу мејл спула.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Грешка при прављењу мејл спула.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;непозната грешка&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Грешка при прављењу мејл спула.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Грешка при брисању маејл спула.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Учитавам Кориснике и Групе... Молим Вас сачекајте&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Мандрива Линукс алат за управљање корисницима&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Акције&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Измени&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Бриши&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Опције&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Филтрирај системске кориснике&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Фајл&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Освежи&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Крај&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Додај корисника&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Додај _Групу&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Помоћ&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Пријавите грешку&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_О...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Тражи:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Примени филтер&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Корисници&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Групе&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Корисници и групе&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Корисничко име&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Корисников ID&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Примарна група&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Пуно име&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Шкољка за логовање&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Home директоријум&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Статус&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Име групе&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Групни ID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Чланови групе&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Додај корисника&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Додај корисника у систем&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Додај Групу&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Додај групу у систем&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Измени&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Измени изабрани ред&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Бриши&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Избриши изабрани ред&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Освежи&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Освежи листу&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Закључано&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Истекло&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Кликните на икону да би је променили&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Креираљј новог корисника&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Креирај Home директоријум&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Home директоријум: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Крирај приватну групу за корисника&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Ручно одреди корисников ID&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;корисник већ постоји, изаберите друго Корисничко име&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Лозинкас се неодговара&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Ова лозинка је превише једноставна. \n&quot;
++&quot; Добра лозика има више од 6 карактера &quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;КОрисников Uid је &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Креирање корисника са UID мањим од 500 није препоручљиво.\n&quot;
++&quot; Да ли сте сигурни да жлите ово да урадите?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Постави %s у 'users' групу&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Креирам нову групу: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Додајем корисника: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Поништи&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;У реду&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Изабери групу&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Додај у постојећу групу&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Додај у корисникову групу&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Група са овим именом већ постоји. Шта желите да урадите?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Креирај нову групу&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Ручно одреди ID за групу&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Група већ постоји, изаберите друго име за Групу&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; Gid за Групу је &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Креирање групе са GID које је мањи од 500 is није препоручљиво.\n&quot;
++&quot; да ли сте сигурни да желите да урадите ово?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Додајем групу: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Бришем фајлове или не?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Бришем корисника %s\n&quot;
++&quot; Такође сроводим следеће акције\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Бриши Home Директоријум: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Бриши ailbox :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Уклањам корисника: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Да ли заиста желите да обришете групу %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s је примарна група за корисника %s\n&quot;
++&quot; Прво уклони корисникат&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Уклањам групу: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Пуно име:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Пријава:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Лозинка:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Потврди лозинку:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Login Shell:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Име групе:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Изаберите бар једну групу за корисника&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Одредите Годину, Месец и Дан \n&quot;
++&quot; за време истицања налога &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Поново попуните сва поља и лозинку\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Не можете да уклоните корисника %s' из његове примарне групе&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Home:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Корисникови подаци&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Омогући ограничење налога&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Налог истиче (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Закључај корисников налог&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Инфо о налогу&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Корисникова последња промењена лозинка на : &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Омогући ограничење трајања лозике&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Дана пре дозволе за промену :&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Дана пре захтеване промене :&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Дана упозорења пре пормене :&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Дана пре него налог постане неактиван :&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Инфо о лоозинци&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Изаберите групе у којима ће корисник бити члан:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Подаци о групи&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Изаберите кориснике који треба да приступе овој групи:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Корисници Групе&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Уреди Групе / Кориснике&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Хм,појавила се грешка&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Затвори&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Сва права (C) %s задржава Мандрива&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Управљање корисницима&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Toma Jankovic &lt;tomaja@net.yu&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Поље за име је празно, упишите име&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;Име може да садржи само мала слова, бројеве, `-' и `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Име је предугачко&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Грешка&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;непозната грешка&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Прављење грешке %s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Аутори&quot;
++
++#~ msgid &quot;Choice&quot;
++#~ msgstr &quot;Избор&quot;
++
++#~ msgid &quot;Yes&quot;
++#~ msgstr &quot;Да&quot;
++
++#~ msgid &quot;No&quot;
++#~ msgstr &quot;Не&quot;
++
++#~ msgid &quot;Generic help on userdrake&quot;
++#~ msgstr &quot;Генеричка помоћ за userdrake&quot;
++
++#~ msgid &quot;Help&quot;
++#~ msgstr &quot;Помоћ&quot;
++
++#~ msgid &quot;Create home Directory&quot;
++#~ msgstr &quot;Креирај home директоријум&quot;
++
++#~ msgid &quot; Remove Home Directory&quot;
++#~ msgstr &quot;Уклони home директоријум&quot;
++
++#~ msgid &quot;Do you want to delete the user's home directory and mail spool?&quot;
++#~ msgstr &quot;Да ли желите да иђбришете корисников home директоријум и пошту ?&quot;
++
++#~ msgid &quot;Reload&quot;
++#~ msgstr &quot;Поново учитај&quot;
++
++#~ msgid &quot;Save&quot;
++#~ msgstr &quot;Сачувај&quot;
++
++#~ msgid &quot;Exit&quot;
++#~ msgstr &quot;Излаз&quot;
++
++#~ msgid &quot;Settings&quot;
++#~ msgstr &quot;Опције&quot;
++
++#~ msgid &quot;Show tools bar&quot;
++#~ msgstr &quot;Прикажи tools bar&quot;
++
++#~ msgid &quot;View users&quot;
++#~ msgstr &quot;Преглед корисника&quot;
++
++#~ msgid &quot;Preferences&quot;
++#~ msgstr &quot;Карактеристике&quot;
++
++#~ msgid &quot;Ldap Server&quot;
++#~ msgstr &quot;Ldap Сервер&quot;
++
++#~ msgid &quot;Save change&quot;
++#~ msgstr &quot;Сачувај измене&quot;
++
++#~ msgid &quot;Add&quot;
++#~ msgstr &quot;Додај&quot;
++
++#~ msgid &quot;Edit user(s)&quot;
++#~ msgstr &quot;Измени корисника(е)&quot;
++
++#~ msgid &quot;Remove&quot;
++#~ msgstr &quot;Уклони&quot;
++
++#~ msgid &quot;Edit group(s)&quot;
++#~ msgstr &quot;Измени групу(е)&quot;
++
++#~ msgid &quot;User id&quot;
++#~ msgstr &quot;id корисника&quot;
++
++#~ msgid &quot;Group id&quot;
++#~ msgstr &quot;id групе&quot;
++
++#~ msgid &quot;Comments&quot;
++#~ msgstr &quot;Коментари&quot;
++
++#~ msgid &quot;Shell&quot;
++#~ msgstr &quot;Shell&quot;
++
++#~ msgid &quot;name&quot;
++#~ msgstr &quot;име&quot;
++
++#~ msgid &quot;gid&quot;
++#~ msgstr &quot;gid&quot;
++
++#~ msgid &quot;passwd&quot;
++#~ msgstr &quot;лозинка&quot;
++
++#~ msgid &quot;users&quot;
++#~ msgstr &quot;корисници&quot;
++
++#~ msgid &quot;Parameters&quot;
++#~ msgstr &quot;Параметри&quot;
++
++#~ msgid &quot;General option&quot;
++#~ msgstr &quot;Опште опције&quot;
++
++#~ msgid &quot;Edit accounts on a LDAP directory&quot;
++#~ msgstr &quot;Измени рачуне у LDAP директоријуму&quot;
++
++#~ msgid &quot;Active autologin support&quot;
++#~ msgstr &quot;Активирај подршку за аутопријаву&quot;
++
++#~ msgid &quot;User creation&quot;
++#~ msgstr &quot;Креирање корисника&quot;
++
++#~ msgid &quot;Default shell:&quot;
++#~ msgstr &quot;Default shell:&quot;
++
++#~ msgid &quot;Default home dir:&quot;
++#~ msgstr &quot;Default home директоријум:&quot;
++
++#~ msgid &quot;Default face:&quot;
++#~ msgstr &quot;Default изглед:&quot;
++
++#~ msgid &quot;Default group:&quot;
++#~ msgstr &quot;Default група:&quot;
++
++#~ msgid &quot;General&quot;
++#~ msgstr &quot;Опште&quot;
++
++#~ msgid &quot;Don't show user with id less than 500&quot;
++#~ msgstr &quot;Не приказуј кориснике са id-ом мањим од 500&quot;
++
++#~ msgid &quot;User identifier&quot;
++#~ msgstr &quot;Индетификатор корисника&quot;
++
++#~ msgid &quot;Default Group&quot;
++#~ msgstr &quot;Default група&quot;
++
++#~ msgid &quot;Groups list&quot;
++#~ msgstr &quot;Листа група&quot;
++
++#~ msgid &quot;Users View&quot;
++#~ msgstr &quot;Преглед корисника&quot;
++
++#~ msgid &quot;Group identifier&quot;
++#~ msgstr &quot;Индетификатор група&quot;
++
++#~ msgid &quot;Groups View&quot;
++#~ msgstr &quot;Преглед група&quot;
++
++#~ msgid &quot;/bin/bash&quot;
++#~ msgstr &quot;/bin/bash&quot;
++
++#~ msgid &quot;uid:&quot;
++#~ msgstr &quot;uid:&quot;
++
++#~ msgid &quot;Comment:&quot;
++#~ msgstr &quot;Коментар:&quot;
++
++#~ msgid &quot;Shell:&quot;
++#~ msgstr &quot;Shell:&quot;
++
++#~ msgid &quot;Home dir:&quot;
++#~ msgstr &quot;Home директоријум:&quot;
++
++#~ msgid &quot;passwd:&quot;
++#~ msgstr &quot;лозинка:&quot;
++
++#~ msgid &quot;Retype passwd:&quot;
++#~ msgstr &quot;Понови лозинку:&quot;
++
++#~ msgid &quot;Identity&quot;
++#~ msgstr &quot;Идентитет&quot;
++
++#~ msgid &quot;Available groups&quot;
++#~ msgstr &quot;Доступне групе&quot;
++
++#~ msgid &quot;Extended&quot;
++#~ msgstr &quot;Проширено&quot;
++
++#~ msgid &quot;About UserDrake&quot;
++#~ msgstr &quot;О UserDrake&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;Userdrake is an application to add and\n&quot;
++#~ &quot;delete users on the Mageia\n&quot;
++#~ &quot;distribution.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;Userdrake now support ldap directory\n&quot;
++#~ &quot;support conformed to rfc2307bis.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;This application is under the GPL\n&quot;
++#~ &quot;license and is delived without\n&quot;
++#~ &quot;any warranty.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;You can get support at : \n&quot;
++#~ &quot;http://www.mandrakeexpert.com/&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Userdrake је апликација којом се додају и укањају\n&quot;
++#~ &quot;корисници у Мандрива Линукс\n&quot;
++#~ &quot;дистрибуцији.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;Ова апликација сада подржава ldap директоријум\n&quot;
++#~ &quot;са потврдом са rfc2307bis.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;Ова апликација је под GPL\n&quot;
++#~ &quot;лиценцом и нема\n&quot;
++#~ &quot;никакву гаранцију.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;Извештај о баговима слати на адресу:\n&quot;
++#~ &quot;http://www.mandrakeexpert.com/&quot;
++
++#~ msgid &quot;Name:&quot;
++#~ msgstr &quot;Име:&quot;
++
++#~ msgid &quot;gid:&quot;
++#~ msgstr &quot;gid:&quot;
++
++#~ msgid &quot;In group&quot;
++#~ msgstr &quot;У групи&quot;
++
++#~ msgid &quot;Not in group&quot;
++#~ msgstr &quot;Није у групи&quot;
++
++#~ msgid &quot;Quit userdrake?&quot;
++#~ msgstr &quot;Напусти userdrake?&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;You have made changes\n&quot;
++#~ &quot;since the last save.\n&quot;
++#~ &quot;Do you really want to quit\n&quot;
++#~ &quot;userdrake?&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Направили сте измене\n&quot;
++#~ &quot;од последњег снимања стања опција.\n&quot;
++#~ &quot;Да ли стварно желите да изађете из\n&quot;
++#~ &quot;userdrake?&quot;
++
++#~ msgid &quot;Enter new passwd&quot;
++#~ msgstr &quot;Унесите нову лозинку&quot;
++
++#~ msgid &quot;new passwd:&quot;
++#~ msgstr &quot;нова лозинка:&quot;
++
++#~ msgid &quot;Change&quot;
++#~ msgstr &quot;Промени&quot;
++
++#~ msgid &quot;Change face&quot;
++#~ msgstr &quot;Промени изглед&quot;
++
++#~ msgid &quot;Set passwd&quot;
++#~ msgstr &quot;Подеси лозинку&quot;
++
++#~ msgid &quot;User autologin&quot;
++#~ msgstr &quot;Аутопријава корисника&quot;
++
++#~ msgid &quot;UserDrake - Error&quot;
++#~ msgstr &quot;Userdrake - Грешка&quot;
++
++#~ msgid &quot;couldn't find blue color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;не могу да пронађем плаву боју у /usr/lib/X11/rgb.txt фајлу&quot;
++
++#~ msgid &quot;Select the image to use&quot;
++#~ msgstr &quot;Изабери слику коју ћете користити&quot;
++
++#~ msgid &quot;Custom...&quot;
++#~ msgstr &quot;Custom...&quot;
++
++#~ msgid &quot;couldn't find grey color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;не могу да пронађем сиву боју у /usr/lib/X11/rgb.txt фајлу&quot;
++
++#~ msgid &quot;couldn't find black color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;не могу да пронађем црну боју у /usr/lib/X11/rgb.txt фајлу&quot;
++
++#~ msgid &quot;login empty&quot;
++#~ msgstr &quot;пријава празна&quot;
++
++#~ msgid &quot;This login already exists on the system&quot;
++#~ msgstr &quot;Ова пријава већ постоји у систему&quot;
++
++#~ msgid &quot;The login is similar to a name's group&quot;
++#~ msgstr &quot;Пријава је слична имену групе&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;User id already in use&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;Корисников id је већ у употреби&quot;
++
++#~ msgid &quot;User id already in use&quot;
++#~ msgstr &quot;Корисников id се већ користи&quot;
++
++#~ msgid &quot;name empty&quot;
++#~ msgstr &quot;Име празно&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;Group id already in use&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;id групе је већ у употреби&quot;
++
++#~ msgid &quot;Group id already in use&quot;
++#~ msgstr &quot;id групе се већ користи&quot;
++
++#~ msgid &quot;Couldn't find pixmap file: %s&quot;
++#~ msgstr &quot;Не могу да пронађем pixmap фајл: %s&quot;
++
++#~ msgid &quot;%s: the file %s is busy (%s present)\n&quot;
++#~ msgstr &quot;%s: фајл је %s већ стартован (%s присутан)\n&quot;
++
++#~ msgid &quot;%s: can't link %s: %s\n&quot;
++#~ msgstr &quot;%s: не може да линкује %s: %s\n&quot;
++
++#~ msgid &quot;%s: can't unlock %s: %s (your changes are still in %s)\n&quot;
++#~ msgstr &quot;%s: не може да ослободи %s: %s (ваше измене су још увек у %s)\n&quot;
++
++#~ msgid &quot;Error in stat on tmp files when i try to unlock lib\n&quot;
++#~ msgstr &quot;Грешка у статусу tmp фајлова при покушају деблокирања библиотеке\n&quot;
++
++#~ msgid &quot;%s: no changes made\n&quot;
++#~ msgstr &quot;%s: измене нису направљене\n&quot;
++
++#~ msgid &quot;Select LDAP Directory&quot;
++#~ msgstr &quot;Изаберите LDAP Директоријум&quot;
++
++#~ msgid &quot;Server address:&quot;
++#~ msgstr &quot;Адреса сервера:&quot;
++
++#~ msgid &quot;Search base:&quot;
++#~ msgstr &quot;Претражи базу:&quot;
++
++#~ msgid &quot;Bind DN:&quot;
++#~ msgstr &quot;Бинд DN:&quot;
++
++#~ msgid &quot;Connection Type :&quot;
++#~ msgstr &quot;Тип конекције :&quot;
++
++#~ msgid &quot;ssl&quot;
++#~ msgstr &quot;ssl&quot;
++
++#~ msgid &quot;Validate&quot;
++#~ msgstr &quot;Провери&quot;
++
++#~ msgid &quot;Test&quot;
++#~ msgstr &quot;Тестирај&quot;
++
++#~ msgid &quot;cannot change ldap version to 3: %s&quot;
++#~ msgstr &quot;не могу да променим ldap веризију у 3: %s&quot;
++
++#~ msgid &quot;cannot connect to the ldap server\n&quot;
++#~ msgstr &quot;не могу да се конектујем на ldap сервер\n&quot;
++
++#~ msgid &quot;cannot bind to the ldap server, %d\n&quot;
++#~ msgstr &quot;не могу да биндујем на ldap сервер, %d\n&quot;
++
++#~ msgid &quot;Cannot bind to ldap server&quot;
++#~ msgstr &quot;Не могу да биндујем на ldap сервер&quot;
++
++#~ msgid &quot;cannot save because the cannot connect to the ldap server&quot;
++#~ msgstr &quot;не могу да сачувам јер не могу да се конектујем на ldap сервер&quot;
++
++#~ msgid &quot;cannot relock lib&quot;
++#~ msgstr &quot;не могу да поново закључам lib&quot;
+
+<a id="userdrake2tags1133posrLatnpo">Added: userdrake2/tags/1.13.3/po/sr@Latn.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/sr@Latn.po (rev 0)
++++ userdrake2/tags/1.13.3/po/sr@Latn.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,1115 @@
++# translation of userdrake-sr.po to serbian
++# translation of userdrake2-sr.po to serbian
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/sr.php3
++#
++# Translated userdrake.po (serbian)
++# Copyright (C) 1999,2000,2001 Mandriva
++# Tomislav Jankovic &lt;tomaja@net.yu&gt;, 2001.
++# Miodrag Živković &lt;miodragz@linuxo.org&gt;, 2006
++#
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-sr\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2004-02-01 19:18+0100\n&quot;
++&quot;Last-Translator: Toma Jankovic &lt;webmaster@mandrake.co.yu&gt;\n&quot;
++&quot;Language-Team: serbian &lt;mdk@linux.rs.sr&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.0.2\n&quot;
++&quot;Plural-Forms: nplurals=3; plural=n%10==1 &amp;&amp; n%100!=11 ? 0 : n%10&gt;=2 &amp;&amp; n%&quot;
++&quot;10&lt;=4 &amp;&amp; (n%100&lt;10 || n%100&gt;=20) ? 1 : 2;\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Greška pri čitanju `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Pravljenje greške %s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Uklanjam grešku `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Greška pri pravljenju mejl spula.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Greška pri pravljenju mejl spula.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Greška pri pravljenju mejl spula.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;nepoznata greška&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Greška pri pravljenju mejl spula.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Greška pri brisanju maejl spula.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Učitavam Korisnike i Grupe... Molim Vas sačekajte&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageia alat za upravljanje korisnicima&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Akcije&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Izmeni&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Briši&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Opcije&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Filtriraj sistemske korisnike&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Fajl&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Osveži&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Kraj&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Dodaj korisnika&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Dodaj _Grupu&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Pomoć&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Prijavite grešku&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_O...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Traži:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Primeni filter&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Korisnici&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Grupe&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Korisnici i grupe&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Korisničko ime&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Korisnikov ID&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Primarna grupa&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Puno ime&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Školjka za logovanje&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Home direktorijum&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Status&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Ime grupe&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Grupni ID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Članovi grupe&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Dodaj korisnika&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Dodaj korisnika u sistem&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Dodaj Grupu&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Dodaj grupu u sistem&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Izmeni&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Izmeni izabrani red&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Briši&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Izbriši izabrani red&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Osveži&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Osveži listu&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Zaključano&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Isteklo&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Kliknite na ikonu da bi je promenili&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Kreiraljj novog korisnika&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Kreiraj Home direktorijum&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Home direktorijum: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Kriraj privatnu grupu za korisnika&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Ručno odredi korisnikov ID&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;korisnik već postoji, izaberite drugo Korisničko ime&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Lozinkas se neodgovara&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Ova lozinka je previše jednostavna. \n&quot;
++&quot; Dobra lozika ima više od 6 karaktera &quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;KOrisnikov Uid je &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Kreiranje korisnika sa UID manjim od 500 nije preporučljivo.\n&quot;
++&quot; Da li ste sigurni da žlite ovo da uradite?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Postavi %s u 'users' grupu&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Kreiram novu grupu: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Dodajem korisnika: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Poništi&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;U redu&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Izaberi grupu&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Dodaj u postojeću grupu&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Dodaj u korisnikovu grupu&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Grupa sa ovim imenom već postoji. Šta želite da uradite?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Kreiraj novu grupu&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Ručno odredi ID za grupu&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Grupa već postoji, izaberite drugo ime za Grupu&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; Gid za Grupu je &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Kreiranje grupe sa GID koje je manji od 500 is nije preporučljivo.\n&quot;
++&quot; da li ste sigurni da želite da uradite ovo?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Dodajem grupu: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Brišem fajlove ili ne?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Brišem korisnika %s\n&quot;
++&quot; Takođe srovodim sledeće akcije\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Briši Home Direktorijum: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Briši ailbox :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Uklanjam korisnika: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Da li zaista želite da obrišete grupu %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s je primarna grupa za korisnika %s\n&quot;
++&quot; Prvo ukloni korisnikat&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Uklanjam grupu: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Puno ime:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Prijava:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Lozinka:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Potvrdi lozinku:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Login Shell:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Ime grupe:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Izaberite bar jednu grupu za korisnika&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Odredite Godinu, Mesec i Dan \n&quot;
++&quot; za vreme isticanja naloga &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Ponovo popunite sva polja i lozinku\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Ne možete da uklonite korisnika %s' iz njegove primarne grupe&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Home:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Korisnikovi podaci&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Omogući ograničenje naloga&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Nalog ističe (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Zaključaj korisnikov nalog&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Info o nalogu&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Korisnikova poslednja promenjena lozinka na : &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Omogući ograničenje trajanja lozike&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Dana pre dozvole za promenu :&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Dana pre zahtevane promene :&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Dana upozorenja pre pormene :&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Dana pre nego nalog postane neaktivan :&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Info o loozinci&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Izaberite grupe u kojima će korisnik biti član:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Podaci o grupi&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Izaberite korisnike koji treba da pristupe ovoj grupi:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Korisnici Grupe&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Uredi Grupe / Korisnike&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Hm,pojavila se greška&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Zatvori&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Sva prava (C) %s zadržava Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Upravljanje korisnicima&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Toma Jankovic_&lt;tomaja@net.yu&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Polje za ime je prazno, upišite ime&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;Ime može da sadrži samo mala slova, brojeve, `-' i `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Ime je predugačko&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Greška&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;nepoznata greška&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Pravljenje greške %s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Autori&quot;
++
++#~ msgid &quot;Choice&quot;
++#~ msgstr &quot;Izbor&quot;
++
++#~ msgid &quot;Yes&quot;
++#~ msgstr &quot;Da&quot;
++
++#~ msgid &quot;No&quot;
++#~ msgstr &quot;Ne&quot;
++
++#~ msgid &quot;Generic help on userdrake&quot;
++#~ msgstr &quot;Generička pomoć za userdrake&quot;
++
++#~ msgid &quot;Help&quot;
++#~ msgstr &quot;Pomoć&quot;
++
++#~ msgid &quot;Create home Directory&quot;
++#~ msgstr &quot;Kreiraj home direktorijum&quot;
++
++#~ msgid &quot; Remove Home Directory&quot;
++#~ msgstr &quot;Ukloni home direktorijum&quot;
++
++#~ msgid &quot;Do you want to delete the user's home directory and mail spool?&quot;
++#~ msgstr &quot;Da li želite da iđbrišete korisnikov home direktorijum i poštu ?&quot;
++
++#~ msgid &quot;Reload&quot;
++#~ msgstr &quot;Ponovo učitaj&quot;
++
++#~ msgid &quot;Save&quot;
++#~ msgstr &quot;Sačuvaj&quot;
++
++#~ msgid &quot;Exit&quot;
++#~ msgstr &quot;Izlaz&quot;
++
++#~ msgid &quot;Settings&quot;
++#~ msgstr &quot;Opcije&quot;
++
++#~ msgid &quot;Show tools bar&quot;
++#~ msgstr &quot;Prikaži tools bar&quot;
++
++#~ msgid &quot;View users&quot;
++#~ msgstr &quot;Pregled korisnika&quot;
++
++#~ msgid &quot;Preferences&quot;
++#~ msgstr &quot;Karakteristike&quot;
++
++#~ msgid &quot;Ldap Server&quot;
++#~ msgstr &quot;Ldap Server&quot;
++
++#~ msgid &quot;Save change&quot;
++#~ msgstr &quot;Sačuvaj izmene&quot;
++
++#~ msgid &quot;Add&quot;
++#~ msgstr &quot;Dodaj&quot;
++
++#~ msgid &quot;Edit user(s)&quot;
++#~ msgstr &quot;Izmeni korisnika(e)&quot;
++
++#~ msgid &quot;Remove&quot;
++#~ msgstr &quot;Ukloni&quot;
++
++#~ msgid &quot;Edit group(s)&quot;
++#~ msgstr &quot;Izmeni grupu(e)&quot;
++
++#~ msgid &quot;User id&quot;
++#~ msgstr &quot;id korisnika&quot;
++
++#~ msgid &quot;Group id&quot;
++#~ msgstr &quot;id grupe&quot;
++
++#~ msgid &quot;Comments&quot;
++#~ msgstr &quot;Komentari&quot;
++
++#~ msgid &quot;Shell&quot;
++#~ msgstr &quot;Shell&quot;
++
++#~ msgid &quot;name&quot;
++#~ msgstr &quot;ime&quot;
++
++#~ msgid &quot;gid&quot;
++#~ msgstr &quot;gid&quot;
++
++#~ msgid &quot;passwd&quot;
++#~ msgstr &quot;lozinka&quot;
++
++#~ msgid &quot;users&quot;
++#~ msgstr &quot;korisnici&quot;
++
++#~ msgid &quot;Parameters&quot;
++#~ msgstr &quot;Parametri&quot;
++
++#~ msgid &quot;General option&quot;
++#~ msgstr &quot;Opšte opcije&quot;
++
++#~ msgid &quot;Edit accounts on a LDAP directory&quot;
++#~ msgstr &quot;Izmeni račune u LDAP direktorijumu&quot;
++
++#~ msgid &quot;Active autologin support&quot;
++#~ msgstr &quot;Aktiviraj podršku za autoprijavu&quot;
++
++#~ msgid &quot;User creation&quot;
++#~ msgstr &quot;Kreiranje korisnika&quot;
++
++#~ msgid &quot;Default shell:&quot;
++#~ msgstr &quot;Default shell:&quot;
++
++#~ msgid &quot;Default home dir:&quot;
++#~ msgstr &quot;Default home direktorijum:&quot;
++
++#~ msgid &quot;Default face:&quot;
++#~ msgstr &quot;Default izgled:&quot;
++
++#~ msgid &quot;Default group:&quot;
++#~ msgstr &quot;Default grupa:&quot;
++
++#~ msgid &quot;General&quot;
++#~ msgstr &quot;Opšte&quot;
++
++#~ msgid &quot;Don't show user with id less than 500&quot;
++#~ msgstr &quot;Ne prikazuj korisnike sa id-om manjim od 500&quot;
++
++#~ msgid &quot;User identifier&quot;
++#~ msgstr &quot;Indetifikator korisnika&quot;
++
++#~ msgid &quot;Default Group&quot;
++#~ msgstr &quot;Default grupa&quot;
++
++#~ msgid &quot;Groups list&quot;
++#~ msgstr &quot;Lista grupa&quot;
++
++#~ msgid &quot;Users View&quot;
++#~ msgstr &quot;Pregled korisnika&quot;
++
++#~ msgid &quot;Group identifier&quot;
++#~ msgstr &quot;Indetifikator grupa&quot;
++
++#~ msgid &quot;Groups View&quot;
++#~ msgstr &quot;Pregled grupa&quot;
++
++#~ msgid &quot;/bin/bash&quot;
++#~ msgstr &quot;/bin/bash&quot;
++
++#~ msgid &quot;uid:&quot;
++#~ msgstr &quot;uid:&quot;
++
++#~ msgid &quot;Comment:&quot;
++#~ msgstr &quot;Komentar:&quot;
++
++#~ msgid &quot;Shell:&quot;
++#~ msgstr &quot;Shell:&quot;
++
++#~ msgid &quot;Home dir:&quot;
++#~ msgstr &quot;Home direktorijum:&quot;
++
++#~ msgid &quot;passwd:&quot;
++#~ msgstr &quot;lozinka:&quot;
++
++#~ msgid &quot;Retype passwd:&quot;
++#~ msgstr &quot;Ponovi lozinku:&quot;
++
++#~ msgid &quot;Identity&quot;
++#~ msgstr &quot;Identitet&quot;
++
++#~ msgid &quot;Available groups&quot;
++#~ msgstr &quot;Dostupne grupe&quot;
++
++#~ msgid &quot;Extended&quot;
++#~ msgstr &quot;Prošireno&quot;
++
++#~ msgid &quot;About UserDrake&quot;
++#~ msgstr &quot;O UserDrake&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;Userdrake is an application to add and\n&quot;
++#~ &quot;delete users on the Mageia\n&quot;
++#~ &quot;distribution.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;Userdrake now support ldap directory\n&quot;
++#~ &quot;support conformed to rfc2307bis.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;This application is under the GPL\n&quot;
++#~ &quot;license and is delived without\n&quot;
++#~ &quot;any warranty.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;You can get support at : \n&quot;
++#~ &quot;http://www.mandrakeexpert.com/&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Userdrake je aplikacija kojom se dodaju i ukanjaju\n&quot;
++#~ &quot;korisnici u Mageia\n&quot;
++#~ &quot;distribuciji.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;Ova aplikacija sada podržava ldap direktorijum\n&quot;
++#~ &quot;sa potvrdom sa rfc2307bis.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;Ova aplikacija je pod GPL\n&quot;
++#~ &quot;licencom i nema\n&quot;
++#~ &quot;nikakvu garanciju.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;Izveštaj o bagovima slati na adresu:\n&quot;
++#~ &quot;http://www.mandrakeexpert.com/&quot;
++
++#~ msgid &quot;Name:&quot;
++#~ msgstr &quot;Ime:&quot;
++
++#~ msgid &quot;gid:&quot;
++#~ msgstr &quot;gid:&quot;
++
++#~ msgid &quot;In group&quot;
++#~ msgstr &quot;U grupi&quot;
++
++#~ msgid &quot;Not in group&quot;
++#~ msgstr &quot;Nije u grupi&quot;
++
++#~ msgid &quot;Quit userdrake?&quot;
++#~ msgstr &quot;Napusti userdrake?&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;You have made changes\n&quot;
++#~ &quot;since the last save.\n&quot;
++#~ &quot;Do you really want to quit\n&quot;
++#~ &quot;userdrake?&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Napravili ste izmene\n&quot;
++#~ &quot;od poslednjeg snimanja stanja opcija.\n&quot;
++#~ &quot;Da li stvarno želite da izađete iz\n&quot;
++#~ &quot;userdrake?&quot;
++
++#~ msgid &quot;Enter new passwd&quot;
++#~ msgstr &quot;Unesite novu lozinku&quot;
++
++#~ msgid &quot;new passwd:&quot;
++#~ msgstr &quot;nova lozinka:&quot;
++
++#~ msgid &quot;Change&quot;
++#~ msgstr &quot;Promeni&quot;
++
++#~ msgid &quot;Change face&quot;
++#~ msgstr &quot;Promeni izgled&quot;
++
++#~ msgid &quot;Set passwd&quot;
++#~ msgstr &quot;Podesi lozinku&quot;
++
++#~ msgid &quot;User autologin&quot;
++#~ msgstr &quot;Autoprijava korisnika&quot;
++
++#~ msgid &quot;UserDrake - Error&quot;
++#~ msgstr &quot;Userdrake - Greška&quot;
++
++#~ msgid &quot;couldn't find blue color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;ne mogu da pronađem plavu boju u /usr/lib/X11/rgb.txt fajlu&quot;
++
++#~ msgid &quot;Select the image to use&quot;
++#~ msgstr &quot;Izaberi sliku koju ćete koristiti&quot;
++
++#~ msgid &quot;Custom...&quot;
++#~ msgstr &quot;Custom...&quot;
++
++#~ msgid &quot;couldn't find grey color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;ne mogu da pronađem sivu boju u /usr/lib/X11/rgb.txt fajlu&quot;
++
++#~ msgid &quot;couldn't find black color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;ne mogu da pronađem crnu boju u /usr/lib/X11/rgb.txt fajlu&quot;
++
++#~ msgid &quot;login empty&quot;
++#~ msgstr &quot;prijava prazna&quot;
++
++#~ msgid &quot;This login already exists on the system&quot;
++#~ msgstr &quot;Ova prijava već postoji u sistemu&quot;
++
++#~ msgid &quot;The login is similar to a name's group&quot;
++#~ msgstr &quot;Prijava je slična imenu grupe&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;User id already in use&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;Korisnikov id je već u upotrebi&quot;
++
++#~ msgid &quot;User id already in use&quot;
++#~ msgstr &quot;Korisnikov id se već koristi&quot;
++
++#~ msgid &quot;name empty&quot;
++#~ msgstr &quot;Ime prazno&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;Group id already in use&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;id grupe je već u upotrebi&quot;
++
++#~ msgid &quot;Group id already in use&quot;
++#~ msgstr &quot;id grupe se već koristi&quot;
++
++#~ msgid &quot;Couldn't find pixmap file: %s&quot;
++#~ msgstr &quot;Ne mogu da pronađem pixmap fajl: %s&quot;
++
++#~ msgid &quot;%s: the file %s is busy (%s present)\n&quot;
++#~ msgstr &quot;%s: fajl je %s već startovan (%s prisutan)\n&quot;
++
++#~ msgid &quot;%s: can't link %s: %s\n&quot;
++#~ msgstr &quot;%s: ne može da linkuje %s: %s\n&quot;
++
++#~ msgid &quot;%s: can't unlock %s: %s (your changes are still in %s)\n&quot;
++#~ msgstr &quot;%s: ne može da oslobodi %s: %s (vaše izmene su još uvek u %s)\n&quot;
++
++#~ msgid &quot;Error in stat on tmp files when i try to unlock lib\n&quot;
++#~ msgstr &quot;Greška u statusu tmp fajlova pri pokušaju deblokiranja biblioteke\n&quot;
++
++#~ msgid &quot;%s: no changes made\n&quot;
++#~ msgstr &quot;%s: izmene nisu napravljene\n&quot;
++
++#~ msgid &quot;Select LDAP Directory&quot;
++#~ msgstr &quot;Izaberite LDAP Direktorijum&quot;
++
++#~ msgid &quot;Server address:&quot;
++#~ msgstr &quot;Adresa servera:&quot;
++
++#~ msgid &quot;Search base:&quot;
++#~ msgstr &quot;Pretraži bazu:&quot;
++
++#~ msgid &quot;Bind DN:&quot;
++#~ msgstr &quot;Bind DN:&quot;
++
++#~ msgid &quot;Connection Type :&quot;
++#~ msgstr &quot;Tip konekcije :&quot;
++
++#~ msgid &quot;ssl&quot;
++#~ msgstr &quot;ssl&quot;
++
++#~ msgid &quot;Validate&quot;
++#~ msgstr &quot;Proveri&quot;
++
++#~ msgid &quot;Test&quot;
++#~ msgstr &quot;Testiraj&quot;
++
++#~ msgid &quot;cannot change ldap version to 3: %s&quot;
++#~ msgstr &quot;ne mogu da promenim ldap veriziju u 3: %s&quot;
++
++#~ msgid &quot;cannot connect to the ldap server\n&quot;
++#~ msgstr &quot;ne mogu da se konektujem na ldap server\n&quot;
++
++#~ msgid &quot;cannot bind to the ldap server, %d\n&quot;
++#~ msgstr &quot;ne mogu da bindujem na ldap server, %d\n&quot;
++
++#~ msgid &quot;Cannot bind to ldap server&quot;
++#~ msgstr &quot;Ne mogu da bindujem na ldap server&quot;
++
++#~ msgid &quot;cannot save because the cannot connect to the ldap server&quot;
++#~ msgstr &quot;ne mogu da sačuvam jer ne mogu da se konektujem na ldap server&quot;
++
++#~ msgid &quot;cannot relock lib&quot;
++#~ msgstr &quot;ne mogu da ponovo zaključam lib&quot;
+
+<a id="userdrake2tags1133posvpo">Added: userdrake2/tags/1.13.3/po/sv.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/sv.po (rev 0)
++++ userdrake2/tags/1.13.3/po/sv.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,769 @@
++# translation of userdrake2-sv.po to Swedish
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/sv.php3
++#
++# Copyright (C) 2000,2003, 2004, 2008 Free Software Foundation, Inc.
++#
++# Joel Andersson &lt;joel@atari.org&gt;, 2000.
++# Mattias Newzella &lt;newzella@linux.nu&gt;, 2001, 2002,2003.
++# Henrik Borg &lt;hblinux@bredband.net&gt;, 2004.
++# Kenneth Krekula &lt;kenneth.krekula@kiruna.se&gt;, 2004.
++# Thomas Backlund &lt;tmb@mandriva.org&gt;, 2008, 2009, 2010.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake2-sv\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2010-05-30 16:52+0300\n&quot;
++&quot;Last-Translator: Thomas Backlund &lt;tmb@mandriva.org&gt;\n&quot;
++&quot;Language-Team: Swedish &lt;cooker-i18n@mandrivalinux.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: Lokalize 1.0\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Fel vid inläsning av `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Fel vid skapande av `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Fel vid borttagande av `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Fel vid skapande konto: '%s'.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;Kan inte hitta Uid nummer&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;Kan inte hämta värde&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Fel vid skapande av e-postkö.\n&quot;
++
++#: ../USER/USER.xs:582
++#, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Användaren kunde inte ändras: '%s'.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Användaren kunde inte raderas: '%s'.\n&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;Misslyckades ange lösenord: '%s'.\n&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;okänt fel&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Fel vid skapande av grupp.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;Gruppen kunde inte ändras: '%s'.\n&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;Gruppen kunde inte raderas: '%s'.\n&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;Ingen hemkatalog för användaren.\n&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Hemkatalogen kunde inte raderas: '%s'.\n&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Fel vid borttagande av e-postkö.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Laddar användare och grupper.... Vänta.&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageia-verktyg för användarhantering&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;/_Installera gästkonto&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;/_Avinstallera gästkonto&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Åtgärder&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/R_edigera&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Ta bort&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Alternativ&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Filtrera systemanvändare&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/Ark_iv&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/Uppdate_ra&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/Avsl_uta&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/L_ägg till användare&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Lägg till _grupp&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Hjälp&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Rapportera fel&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Om...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Sök:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Tillämpa filter&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Användare&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Grupper&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Användare och grupper&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Användarnamn&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Användar-id&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Primär grupp&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Fullständigt namn&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Inloggningsskal&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Hemkatalog&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Status&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Gruppnamn&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Grupp-id&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Gruppmedlemmar&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;&quot;
++&quot;Lägg till\n&quot;
++&quot;användare&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Lägg till en användare till systemet&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;&quot;
++&quot;Lägg till\n&quot;
++&quot;grupp&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Lägg till en grupp till systemet&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Redigera&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Redigera markerad rad&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Ta bort&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Ta bort vald rad&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Uppdatera&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Uppdatera listan&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Låst&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Utgången&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Klicka på ikonen för att ändra den&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Skapa ny användare&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Skapa hemkatalog&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Hemkatalog: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Skapa en privat grupp för användaren&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Ange användar-id manuellt&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Användaren finns redan, välj ett annat användarnamn&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Olika lösenord&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Det här lösenordet är för enkelt. \n&quot;
++&quot; Bra lösenord ska vara längre än sex tecken.&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Användar-id är &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Att skapa en användare med ett användar-id under 500 rekommenderas inte.\n&quot;
++&quot;Är du säker på att du vill göra detta?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Lägger till användare %s i gruppen \&quot;users\&quot;&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Skapar ny grupp: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Lägger till användare: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Migrationsguide&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;Vill du köra migreringsguiden för att importera Windows dokument och &quot;
++&quot;inställninar till din Mageia distribution?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Avbryt&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;OK&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Välj grupp&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Lägg till i den befintliga gruppen&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Lägg till i gruppen \&quot;users\&quot;&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;En grupp med detta namn finns redan. Vad vill du göra?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Skapa ny grupp&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Ange grupp-id manuellt&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Gruppen finns redan. Välj ett annat gruppnamn.&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; Grupp-id är &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Att skapa en grupp med ett grupp-id under 500 rekommenderas inte.\n&quot;
++&quot;Är du säker på att du vill göra detta?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Lägger till grupp: %s&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Ta bort filer eller inte?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Tar bort användare %s\n&quot;
++&quot; Utför också följande åtgärder\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Ta bort hemkatalog: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Ta bort brevlåda: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Tar bort användare: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Vill du verkligen ta bort gruppen %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s är en primär grupp för användaren %s.\n&quot;
++&quot; Ta bort användaren först&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Tar bort grupp: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Fullständigt namn:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Användarnamn:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Lösenord:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Bekräfta lösenord:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Inloggningsskal:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Gruppnamn:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Välj minst en grupp åt användaren.&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Ange år, månad och dag för \n&quot;
++&quot; tidsbegränsning av konto &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Fyll i alla fält för lösenordsåldrande\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Du kan inte ta bort användaren \&quot;%s\&quot; från dess huvudgrupp.&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Hem:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Användardata&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Aktivera tidsbegränsning av konto&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Kontot går ut den (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Lås användarkonto&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Kontoinformation&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Användaren ändrade lösenord: &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Aktivera tidsbegränsning av lösenord&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Dagar innan ändring tillåts: &quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Dagar före ändring krävs: &quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Förvarningstid i dagar innan ändring:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Dagar innan kontot blir inaktiverat:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Lösenordsinformation&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Välj de grupper som användaren ska vara medlem i:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Gruppdata&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Välj användarna som ska vara medlemmar i den här gruppen:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Gruppanvändare&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Ändra Grupper / Användare&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Ett fel inträffade:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Stäng&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Copyright (C) %s, Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Användarhantering&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++&quot;Thomas Backlund &lt;tmb@mandriva.org&gt;\n&quot;
++&quot;Lars Westergren &lt;lars.westergren@home.se&gt;\n&quot;
++&quot;Magnus Björklöf &lt;bjorklof@nic.fi&gt;\n&quot;
++&quot;Mattias Newzella &lt;newzella@linux.nu&gt;\n&quot;
++&quot;Mattias Dahlberg &lt;voz@home.se&gt;\n&quot;
++&quot;Fuad Sabanovic &lt;manijak@telia.com&gt;\n&quot;
++&quot;Kenneth Krekula\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Namnfältet är tomt. Ange ett namn.&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;Namnet måste bestå av endast små bokstäver, siffror, \&quot;-\&quot; och \&quot;_\&quot;&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Namnet är för långt&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Fel&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;okänt fel&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Fel vid skapande av `%s': %s&quot;
+
+<a id="userdrake2tags1133potapo">Added: userdrake2/tags/1.13.3/po/ta.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/ta.po (rev 0)
++++ userdrake2/tags/1.13.3/po/ta.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,1080 @@
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/ta.php3
++#
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR Free Software Foundation, Inc.
++# FIRST AUTHOR &lt;EMAIL@ADDRESS&gt;, YEAR.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake2\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2002-08-17 17:54-0400\n&quot;
++&quot;Last-Translator: prabu &lt;prabu_anand2000@yahoo.com&gt;\n&quot;
++&quot;Language-Team: &lt;en@li.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 0.9.6\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&quot;
++
++#: ../USER/USER.xs:86
++#, fuzzy, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot; %s என்ற குறும்படத்தை ஏற்றுவதில் பிழை நேர்ந்துள்ளது&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, fuzzy, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;பயனரைச் நீக்கு&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot; %s என்ற குறும்படத்தை ஏற்றுவதில் பிழை நேர்ந்துள்ளது&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++#, fuzzy
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot; %s என்ற குறும்படத்தை ஏற்றுவதில் பிழை நேர்ந்துள்ளது&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot; %s என்ற குறும்படத்தை ஏற்றுவதில் பிழை நேர்ந்துள்ளது&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;தெரியாத பிழை&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot; %s என்ற குறும்படத்தை ஏற்றுவதில் பிழை நேர்ந்துள்ளது&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++#, fuzzy
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot; %s என்ற குறும்படத்தை ஏற்றுவதில் பிழை நேர்ந்துள்ளது&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;டிரேக்பயனர்&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_செயல்கள்&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_தொகு&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_அழி&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_விருப்பத்தேர்வு&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_கோப்பு&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_புதிதாக்கு&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_வெளிச்செல்&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_பயனர சேர்&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/_குழுவை சேர்&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_உதவி&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_பிழைகளை அறிவிக்க&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_பற்றி&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;தேடு:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;பயனர்கள்&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;குழுக்கள்&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;பயனர்களும் குழுக்களும்&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;பயனர் பெயர்&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;உபயோகிப்பாளர் அடையாளம்&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;முழுப் பெயர்&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;புகுபதிகை ஸ்செல்&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;இல்ல அடைவு&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;நிலை&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;குழுப்பெயர்&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;குழு ID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;குழு நபர்கள்&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;பயனர சேர்&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;குழுவை சேர்&quot;
++
++#: ../userdrake:197
++#, fuzzy, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;குழுவைச் சேர்&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;மாற்றியமை&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;நீக்கு&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;மீளேற்று&quot;
++
++#: ../userdrake:200
++#, fuzzy, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;பயனரின் பட்டியல்&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;பூட்டப்பட்டது&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;காலாவதியாணது&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:391
++#, fuzzy, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;பயனரின் தொடக்க அடைவு&quot;
++
++#: ../userdrake:393
++#, fuzzy, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;பயனரின் தொடக்க அடைவு&quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:414
++#, fuzzy, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;இப்பெயர் ஏற்கனவே பயன்பாட்டில் உள்ளது&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, fuzzy, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;கடவுச்சொல்&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:457
++#, fuzzy, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;குழுக்களைக் காட்டு&quot;
++
++#: ../userdrake:466
++#, fuzzy, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;பயனரைச் சேர்&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;நீக்கு&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;சரி&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:510
++#, fuzzy, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;இடம்பெற்றுள்ள குழுக்கள்&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;புதிய குழுவை உருவாக்கு&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:641
++#, fuzzy, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;பயனரின் தொடக்க அடைவு&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:651
++#, fuzzy, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;பயனரைச் நீக்கு&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:702
++#, fuzzy, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;குழுவை நீக்கு&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;முழுப் பெயர்:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;தொடங்கல் :&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;கடவுச்சொல்:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;கடவுச்சொல்லை உறுதிச் செய்:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;புகுபதிகை ஸ்செல்:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;குழுப்பெயர்:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;ஆரம்பம்:&quot;
++
++#: ../userdrake:988
++#, fuzzy, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;பயனரின் பட்டியல்&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1031
++#, fuzzy, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;கடவுச்சொல்&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1102
++#, fuzzy, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;குழு பட்டியல்&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1107
++#, fuzzy, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;குழுக்கள்&quot;
++
++#: ../userdrake:1127
++#, fuzzy, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;குழுக்கள்&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;பிழை நேர்ந்துள்ளது மன்னிக்கவும்&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;மூடு&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1280
++#, fuzzy, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;பயனர் பெயர்&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;மான்ட்ரிவ லினக்ஸ்&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;பிழை&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;தெரியாத பிழை&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot; %s என்ற குறும்படத்தை ஏற்றுவதில் பிழை நேர்ந்துள்ளது&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;ஆசிரியர்கள்: &quot;
++
++#~ msgid &quot;Yes&quot;
++#~ msgstr &quot;ஆம்&quot;
++
++#~ msgid &quot;No&quot;
++#~ msgstr &quot;இல்லை&quot;
++
++#~ msgid &quot;Help&quot;
++#~ msgstr &quot;உதவி&quot;
++
++#~ msgid &quot;Reload&quot;
++#~ msgstr &quot;புதுக்கல்&quot;
++
++#~ msgid &quot;Save&quot;
++#~ msgstr &quot;சேமி&quot;
++
++#~ msgid &quot;Exit&quot;
++#~ msgstr &quot;வெளிச்செல்&quot;
++
++#~ msgid &quot;Settings&quot;
++#~ msgstr &quot;அமைப்புகள்&quot;
++
++#~ msgid &quot;Show tools bar&quot;
++#~ msgstr &quot;கருவிப்பட்டையைக் காட்டு&quot;
++
++#~ msgid &quot;View users&quot;
++#~ msgstr &quot;பயனர்களைக் காட்டு&quot;
++
++#~ msgid &quot;Preferences&quot;
++#~ msgstr &quot;விருப்பங்கள்&quot;
++
++#~ msgid &quot;Ldap Server&quot;
++#~ msgstr &quot;Ldap சேவையகம்&quot;
++
++#~ msgid &quot;Save change&quot;
++#~ msgstr &quot;மாற்றங்களைச் சேமி&quot;
++
++#~ msgid &quot;Add&quot;
++#~ msgstr &quot;சேர்&quot;
++
++#~ msgid &quot;Edit user(s)&quot;
++#~ msgstr &quot;பயனரைச் மாற்றியமை&quot;
++
++#~ msgid &quot;Remove&quot;
++#~ msgstr &quot;நீக்கு&quot;
++
++#~ msgid &quot;Edit group(s)&quot;
++#~ msgstr &quot;குழுவை மாற்றியமை&quot;
++
++#~ msgid &quot;User id&quot;
++#~ msgstr &quot;பயனரின் அடையாள எண்&quot;
++
++#~ msgid &quot;Group id&quot;
++#~ msgstr &quot;குழுவின் அடையாள எண்&quot;
++
++#~ msgid &quot;Comments&quot;
++#~ msgstr &quot;கருத்துக்கள்&quot;
++
++#~ msgid &quot;Shell&quot;
++#~ msgstr &quot;ஓடு&quot;
++
++#~ msgid &quot;name&quot;
++#~ msgstr &quot;பெயர்&quot;
++
++#~ msgid &quot;gid&quot;
++#~ msgstr &quot;அடையாள எண்&quot;
++
++#~ msgid &quot;passwd&quot;
++#~ msgstr &quot;கடவுச்சொல்&quot;
++
++#~ msgid &quot;users&quot;
++#~ msgstr &quot;பயனர்கள்&quot;
++
++#~ msgid &quot;Parameters&quot;
++#~ msgstr &quot;அளபுருக்கள்&quot;
++
++#~ msgid &quot;General option&quot;
++#~ msgstr &quot;பொது விருப்பங்கள்&quot;
++
++#~ msgid &quot;Edit accounts on a LDAP directory&quot;
++#~ msgstr &quot;LDAPல் உள்ள கணக்குகளை மாற்றியமை&quot;
++
++#~ msgid &quot;Active autologin support&quot;
++#~ msgstr &quot;தானாக தொடங்கிடும் வகையில் அமைத்திடுக&quot;
++
++#~ msgid &quot;User creation&quot;
++#~ msgstr &quot;பயனர் உருவாக்கம்&quot;
++
++#~ msgid &quot;Default shell:&quot;
++#~ msgstr &quot;கொடாநிலை ஒடு&quot;
++
++#~ msgid &quot;Default home dir:&quot;
++#~ msgstr &quot;கொடாநிலை தொடக்கம்&quot;
++
++#~ msgid &quot;Default face:&quot;
++#~ msgstr &quot;கொடாநிலை முகம்&quot;
++
++#~ msgid &quot;Default group:&quot;
++#~ msgstr &quot;கொடாநிலை குழு&quot;
++
++#~ msgid &quot;General&quot;
++#~ msgstr &quot;பொது&quot;
++
++#~ msgid &quot;Don't show user with id less than 500&quot;
++#~ msgstr &quot;அடையாள எண் 500க்கு குறைவான பயனரைக் காட்டாதே&quot;
++
++#~ msgid &quot;User identifier&quot;
++#~ msgstr &quot;பயனரின் அடையாளம்&quot;
++
++#~ msgid &quot;Default Group&quot;
++#~ msgstr &quot;கொடாநிலை குழு&quot;
++
++#~ msgid &quot;Groups list&quot;
++#~ msgstr &quot;குழுக்களின் பட்டியல்&quot;
++
++#~ msgid &quot;Users View&quot;
++#~ msgstr &quot;பயனரின் பார்வை&quot;
++
++#~ msgid &quot;Group identifier&quot;
++#~ msgstr &quot;குழுவின் அடையாள எண்&quot;
++
++#~ msgid &quot;Groups View&quot;
++#~ msgstr &quot;குழுக்களின் பார்வை&quot;
++
++#~ msgid &quot;/bin/bash&quot;
++#~ msgstr &quot;/bin/bash -ஒருவகை ஓடு&quot;
++
++#~ msgid &quot;uid:&quot;
++#~ msgstr &quot;பயனர்அடையாள எண்&quot;
++
++#~ msgid &quot;Comment:&quot;
++#~ msgstr &quot;குறிப்பு&quot;
++
++#~ msgid &quot;Shell:&quot;
++#~ msgstr &quot;ஓடுகள்&quot;
++
++#~ msgid &quot;Home dir:&quot;
++#~ msgstr &quot;தொடக்க அடைவு&quot;
++
++#~ msgid &quot;passwd:&quot;
++#~ msgstr &quot;கடவுச்சொல்&quot;
++
++#~ msgid &quot;Retype passwd:&quot;
++#~ msgstr &quot;மீண்டும் கடவுச்சொல்லை அடிக்கவும்&quot;
++
++#~ msgid &quot;Identity&quot;
++#~ msgstr &quot;அடையாளம்&quot;
++
++#~ msgid &quot;Available groups&quot;
++#~ msgstr &quot; தற்போதுள்ள குழுக்கள்&quot;
++
++#~ msgid &quot;Extended&quot;
++#~ msgstr &quot;நீட்டிக்கப்பட்ட&quot;
++
++#~ msgid &quot;About UserDrake&quot;
++#~ msgstr &quot;டிரேக்பயனர் பற்றி&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;Userdrake is an application to add and\n&quot;
++#~ &quot;delete users on the Mageia\n&quot;
++#~ &quot;distribution.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;Userdrake now support ldap directory\n&quot;
++#~ &quot;support conformed to rfc2307bis.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;This application is under the GPL\n&quot;
++#~ &quot;license and is delived without\n&quot;
++#~ &quot;any warranty.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;You can get support at : \n&quot;
++#~ &quot;http://www.mandrakeexpert.com/&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;டிரேக்பயனர் என்ற இந்த பயன்பாட்டின் மூலம்\n&quot;
++#~ &quot;நீங்கள் எளிதாக பயனர்களை சேர்க்கவும், நீக்கவும் முடியும்\n&quot;
++#~ &quot;தயவுசெய்து ஆங்கிலத்தில் மட்டுமே அடிக்கவும்.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;rfc2307bis க்கு இணங்கி டிரேக்பயனர் தற்போது ldap \n&quot;
++#~ &quot;அடைவுகளுக்கு துணை போகிறது.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;இந்த நிரல் GPL காப்புரிமையின் கீழ்\n&quot;
++#~ &quot;எவ்வித உத்தரவாதமும் இன்றி உங்களுக்கு\n&quot;
++#~ &quot;கிடைக்கிறது.\n&quot;
++#~ &quot;\n&quot;
++#~ &quot;உதவி தேவையென்றால் http://www.mandrakeexpert.com/: \n&quot;
++#~ &quot;செல்லவும்&quot;
++
++#~ msgid &quot;Name:&quot;
++#~ msgstr &quot;பெயர்&quot;
++
++#~ msgid &quot;gid:&quot;
++#~ msgstr &quot;குழுவின் அடையாள எண்&quot;
++
++#~ msgid &quot;Not in group&quot;
++#~ msgstr &quot;இடம்பெறாத குழுக்கள்&quot;
++
++#~ msgid &quot;Quit userdrake?&quot;
++#~ msgstr &quot;டிரேக்பயனரை விட்டு வெளிச்செல்&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;You have made changes\n&quot;
++#~ &quot;since the last save.\n&quot;
++#~ &quot;Do you really want to quit\n&quot;
++#~ &quot;userdrake?&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;நீங்கள் செய்த சில மாற்றங்கள்\n&quot;
++#~ &quot;இன்னும் சேமிக்கப்படவில்லை\n&quot;
++#~ &quot;நீங்கள் நிச்சயம் டிரேக்பயனரை விட்டு\n&quot;
++#~ &quot; வெளிச்செல்ல விரும்புகிறீர்களா&quot;
++
++#~ msgid &quot;Enter new passwd&quot;
++#~ msgstr &quot;புதிய கடவுச்சொல்லை அடிக்கவும்&quot;
++
++#~ msgid &quot;new passwd:&quot;
++#~ msgstr &quot;புதிய கடவுச்சொல்&quot;
++
++#~ msgid &quot;Change&quot;
++#~ msgstr &quot;மாற்று&quot;
++
++#~ msgid &quot;Change face&quot;
++#~ msgstr &quot;முகத்தை மாற்று&quot;
++
++#~ msgid &quot;Set passwd&quot;
++#~ msgstr &quot;கடவுச்சொல்லை அமைக்கவும்&quot;
++
++#~ msgid &quot;User autologin&quot;
++#~ msgstr &quot;பயனர் தானாக தொட்ங்கல்&quot;
++
++#~ msgid &quot;UserDrake - Error&quot;
++#~ msgstr &quot;டிரேக்பயனர் --பிழை&quot;
++
++#~ msgid &quot;couldn't find blue color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;/usr/lib/X11/rgb.txt என்ற கோப்பில் நீல வண்ணம் இல்லை&quot;
++
++#~ msgid &quot;Select the image to use&quot;
++#~ msgstr &quot;பயன்படுத்த வேண்டிய படத்தை தேர்வு செய்&quot;
++
++#~ msgid &quot;Custom...&quot;
++#~ msgstr &quot;தனிப்பயன்....&quot;
++
++#~ msgid &quot;couldn't find grey color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;/usr/lib/X11/rgb.txt என்ற கோப்பில் ஊதா வண்ணம் இல்லை&quot;
++
++#~ msgid &quot;couldn't find black color in /usr/lib/X11/rgb.txt file&quot;
++#~ msgstr &quot;/usr/lib/X11/rgb.txt என்ற கோப்பில் கருப்பு வண்ணம் இல்லை&quot;
++
++#~ msgid &quot;login empty&quot;
++#~ msgstr &quot;தொடங்குபெயர் காலியாக உள்ளது&quot;
++
++#~ msgid &quot;This login already exists on the system&quot;
++#~ msgstr &quot;இந்த தொடங்குபெயர் ஏற்கனவே பயன்பாட்டில் உள்ளது&quot;
++
++#~ msgid &quot;The login is similar to a name's group&quot;
++#~ msgstr &quot;இந்த தொடங்குபெயர் ஏற்கனவே உள்ள குழுவின் பெயரை ஒத்து உள்ளது&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;User id already in use&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;பயனர் அடையாள எண் பயன்பாட்டில் உள்ளது&quot;
++
++#~ msgid &quot;User id already in use&quot;
++#~ msgstr &quot;பயனர் அடையாள எண் பயன்பாட்டில் உள்ளது&quot;
++
++#~ msgid &quot;name empty&quot;
++#~ msgstr &quot;பெயர் காலியாக உள்ளது&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;Group id already in use&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;%s\n&quot;
++#~ &quot;குழு அடையாள எண் பயன்பாட்டில் உள்ளது&quot;
++
++#~ msgid &quot;Group id already in use&quot;
++#~ msgstr &quot;குழு அடையாள எண் பயன்பாட்டில் உள்ளது&quot;
++
++#~ msgid &quot;Couldn't find pixmap file: %s&quot;
++#~ msgstr &quot; %s என்ற குறும்படத்தை கானவில்லை&quot;
++
++#~ msgid &quot;%s: the file %s is busy (%s present)\n&quot;
++#~ msgstr &quot;%s: என்ற கோப்பு %s பயன்பாட்டில் உள்ளது(%s உள்ளது)\n&quot;
++
++#~ msgid &quot;%s: can't link %s: %s\n&quot;
++#~ msgstr &quot;%s: இணைக்க முடியாது %s: %s\n&quot;
++
++#~ msgid &quot;%s: can't unlock %s: %s (your changes are still in %s)\n&quot;
++#~ msgstr &quot;%s: பிரிக்க முடியாது%s: %s (உங்கள் மாற்றங்கள் %s ல் உள்ளது)\n&quot;
++
++#~ msgid &quot;Error in stat on tmp files when i try to unlock lib\n&quot;
++#~ msgstr &quot;நூலக நிரலை விட்டு விலகும்போது பிழை நேர்ந்துள்ளது\n&quot;
++
++#~ msgid &quot;%s: no changes made\n&quot;
++#~ msgstr &quot;%s: மாற்றம் ஏதுமில்லை\n&quot;
++
++#~ msgid &quot;Select LDAP Directory&quot;
++#~ msgstr &quot;LDAP அடைவைத் தேர்ந்தெடு&quot;
++
++#~ msgid &quot;Server address:&quot;
++#~ msgstr &quot;சேவையகத்தின் பெயர்&quot;
++
++#~ msgid &quot;Search base:&quot;
++#~ msgstr &quot;தேடு&quot;
++
++#~ msgid &quot;Bind DN:&quot;
++#~ msgstr &quot;இணையவேண்டிய DN:&quot;
++
++#~ msgid &quot;Connection Type :&quot;
++#~ msgstr &quot;இணைப்பின் பெயர்&quot;
++
++#~ msgid &quot;ssl&quot;
++#~ msgstr &quot;ssl&quot;
++
++#~ msgid &quot;Validate&quot;
++#~ msgstr &quot;சரிபார்த்தல்&quot;
++
++#~ msgid &quot;Test&quot;
++#~ msgstr &quot;சோதனை&quot;
++
++#~ msgid &quot;cannot change ldap version to 3: %s&quot;
++#~ msgstr &quot;ldap வெளியீட்டை 3:க்கு மாற்ற முடியவில்லை %s&quot;
++
++#~ msgid &quot;cannot connect to the ldap server\n&quot;
++#~ msgstr &quot;ldap சேவையகத்தொடு இணைய முடியவில்லை\n&quot;
++
++#~ msgid &quot;cannot bind to the ldap server, %d\n&quot;
++#~ msgstr &quot; %dldap சேவையகத்தொடு இணைய முடியவில்லை\n&quot;
++
++#~ msgid &quot;Cannot bind to ldap server&quot;
++#~ msgstr &quot;ldap சேவையகத்தொடு இணைய முடியவில்லை&quot;
++
++#~ msgid &quot;cannot save because the cannot connect to the ldap server&quot;
++#~ msgstr &quot; ldap சேவையகத்தொடு இணைய முடியாமையால் சேமிக்கவில்லை&quot;
++
++#~ msgid &quot;cannot relock lib&quot;
++#~ msgstr &quot;நூலக நிரலுடன் சேர முடியவில்லை&quot;
+
+<a id="userdrake2tags1133potgpo">Added: userdrake2/tags/1.13.3/po/tg.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/tg.po (rev 0)
++++ userdrake2/tags/1.13.3/po/tg.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,758 @@
++# translation of userdrake-tg.po to Tajik
++# translation of userdrake-tg.po to Тоҷикӣ
++# Copyright (C) 2001,2003,2004 Free Software Foundation, Inc.
++# Copyright (c) 2001 Mandriva.
++# Roger Kovacs &lt;rkovacs@khujand.org&gt;, 2002,2003
++# Dilshod Marupov &lt;kct_tj@khujand.org&gt;, 2003
++# Abrorova &lt;H_Abrorova@rambler.ru&gt;, 2004
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-tg\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2004-08-28 14:35+0000\n&quot;
++&quot;Last-Translator: Abrorova &lt;H_Abrorova@rambler.ru&gt;\n&quot;
++&quot;Language-Team: Tajik\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.0.1\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Хатогии хондани `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Хатогии офаридани `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Хатогии хориҷкунии `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Хатогии офаридани додаҳои пост.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Хатогии офаридани додаҳои пост.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Хатогии офаридани додаҳои пост.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;Хатогии номаълум&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Хатогии офаридани додаҳои пост.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Хатогии нобудкунии додаҳои пост.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Корвандҳо ва гурӯҳо ба кор андохта мешаванд... Лутфан, интизор шавед&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Асбоб барои Идора Намудани Корвандҳои Mageia&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Амалҳо&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Таҳрир&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Нобуд кардан&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Интихобҳо&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Корвандҳои системро ҷудо карда гирифтан&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Файл&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Нав намудан&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Баромадан&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Корвандро ҳамроҳ намоед&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Илова намоед _Гурӯҳ&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Ёрӣ&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Ҳисобот оиди хатогӣ&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Дар бораи...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Ҷустуҷӯ:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;филтрро истифода намудан&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Корвандҳо&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Гурӯҳҳо&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Корвандон ва гурӯҳҳо&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Номи корванд&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Корванди ID&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Гурӯҳи Асосӣ&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Номи Пурра&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Ҷилди номи дохилӣ&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Феҳристи хонагӣ&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Мақом&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Номи гурӯҳ&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Гурӯҳи ID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Аъзоёни гурӯҳ&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Иловаи корванд&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Корвандро ба систем ҳамроҳ намудан&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Гурӯҳро илова намоед&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Гурӯҳро ба систем илова намоед&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Таҳрир&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Сатри интихобшударо таҳрир намудан&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Нобуд кардан&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Сатри интихобшударо хориҷ намудан&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Нав намудан&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Рӯйхатро нав намоед&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Баста шудааст&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Мӯҳлати амалиёт гузаштааст&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Барои тағирдиҳӣ ба тасвир ангушт занед&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Корванди Навро ташкил намудан&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Феҳристи хонагиро тартиб диҳед&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Феҳристи хонагӣ&quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Гурӯҳи шахсиро барои корванд ташкил намудан&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Дастӣ ID корвандро нишон додан&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;&quot;
++&quot;Ин корванд аллакай вуҷуд дорад, лутфан номи корванди дигарро интихоб намоед&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Гузарвожа Mismatch&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Ин гузарвожа хеле содда аст. \n&quot;
++&quot;Гузарвожаҳои хуб бояд &gt; аз 6 рамз бошанд&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Uid-и корванд &lt; аз 500 мебошад&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Ташкили корванд бо UID на кам аз 500 тавсия намешавад.\n&quot;
++&quot;Шумо боварӣ доред, ки инро иҷро карданӣ ҳастед?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Гузоштани %s ба гурӯҳи 'users'&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Ташкили гурӯҳи нав: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Иловаи корванд: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Бекор кардан&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Ok&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Гурӯҳро интихоб кунед&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Ба гурӯҳи вуҷуддошта дохил намудан&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Ба гурӯҳи 'users' илова намудан&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Гурӯҳ бо ин ном аллакай вуҷуд дорад. Шумо чӣ кор каданӣ ҳастед?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Гурӯҳи навро ташкил намоед&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Дастӣ гурӯҳи ID-ро нишон диҳед&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Гурӯҳ аллакай вуҷуд дорад, лутфан Номи дигари Гурӯҳро интихоб намоед&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; Gid-и гурӯҳ &lt; аз 500 мебошад&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Ташкили гурӯҳо бо GID на кам аз 500 тавсия намешавад.\n&quot;
++&quot;Шумо боварӣ доред, ки инро иҷро карданӣ ҳастед?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Гурӯҳ илова шуда истодааст: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Файлҳоро нобуд кунам ё не?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Корванд хориҷ карда мешавад %s\n&quot;
++&quot; Инчунин амалиётҳои зерин иҷро мешаванд\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Феҳристи хонагиро тоза намоед: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Қуттии мактубҳоро хориҷ намудан :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Хориҷи корванд(ҳо): %s &quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Шумо дар ҳақиқат гурӯҳро хориҷ карданӣ ҳастед %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s гурӯҳи асосӣ барои корванд мебошад %s\n&quot;
++&quot;Сараввал корвандро хориҷ намоед&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Хориҷи гурӯҳ(ҳо): %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Номи Пурра:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Номи дохилӣ:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Гузарвожа:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Гузарвожаро тасдиқ намоед:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Ҷилди номи дохилӣ:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Номи гурӯҳ:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Лутфан, ақаллан як гурӯҳро барои корванд интихоб намоед&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Лутфан, сол, моҳ ва рӯзи \n&quot;
++&quot;тамом шудани мӯҳлати қайдро нишон диҳед &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Барои солгузории гузарвожа, лутфан ҳамаи майдонҳоро пур намоед\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Шумо корванди '%s' аз гурӯҳи асосии ӯ хориҷ карда наметавонед&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Хона (мавқеи аввала):&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Додаҳои корванд&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Мӯҳлати қайдро дохил намудан&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Мӯҳлати қайд мегузарад (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Қайди корвандро бастан&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Ахборот дар бораи суратҳисоб&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Дафъаи охирин корванд гузарвожаро иваз намуд : &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Мӯҳлати иҷроиши гузарвожаро дохил намудан&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Баъд аз чанд рӯз ба тағирот иҷозат дод :&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Баъд аз якчанд рӯз тағиротро талаб намуд:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Чанд рӯз дар бораи тағирот огоҳӣ намуд :&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Миқдори рӯзҳои то қатъи қайд :&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Ахборот дар бораи гузарвожа&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Гурӯҳҳоро интихоб намоед, ки аъзои онҳо корванд хоҳад шуд:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Додаҳои гурӯҳ&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Барои дохил шудан ба ин гурӯҳ корвандҳоро интихоб намоед :&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Гурӯҳҳои корванд&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Таҳрири Гурӯҳҳо/ Корвандон&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Хатогӣ рух дод&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Махкам намоед&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Идораи корвандҳо&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Victor Ibragimov &lt;youth_opportunities@tajikngo.org&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Майдони ном холӣ аст, лутфан номро пешниҳод намоед&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++&quot;Ном бояд танҳо рамзҳои лотинӣ қайди поён, рақамҳо, `-' ва `_' -ро дошта бошад&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Ном бениҳоят дароз аст&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Хатогӣ&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;Хатогии номаълум&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Хатогии офаридани `%s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Муаллифон: &quot;
+
+<a id="userdrake2tags1133pothpo">Added: userdrake2/tags/1.13.3/po/th.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/th.po (rev 0)
++++ userdrake2/tags/1.13.3/po/th.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,754 @@
++# translation of userdrake.po to Thai
++# This file is distributed under the same license as the PACKAGE package.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
++# Wachara Chinsettawong &lt;wachara@yahoo.com&gt;, 2004.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2004-10-07 01:00-0400\n&quot;
++&quot;Last-Translator: Wachara Chinsettawong &lt;wachara@yahoo.com&gt;\n&quot;
++&quot;Language-Team: Thai\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.3\n&quot;
++&quot;Plural-Forms: nplurals=1; plural=0;\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;เกิดการผิดพลาดเวลาอ่าน `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;เกิดการผิดพลาดเวลาสร้าง `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;เกิดการผิดพลาดเวลาลบ `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;เกิดการผิดพลาดเวลาสร้าง mail spool.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;เกิดการผิดพลาดเวลาสร้าง mail spool.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;เกิดการผิดพลาดเวลาสร้าง mail spool.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;เกิดการผิดพลาดแบบไม่ทราบสาเหตุ&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;เกิดการผิดพลาดเวลาสร้าง mail spool.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;เกิดการผิดพลาดเวลาลบ mail spool.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;กำลังอ่านค่าผู้ใช้และกลุ่ม กรรุณารอสักครู่&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;เครื่องมือจัดการผู้ใช้สำหรับ Mageia&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_แบบการทำงาน&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_ปรับแต่ง&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_ลบ&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_ทางเลือก&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_กรองผู้ใช้ระบบ&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_ไฟล์&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_อ่านค่าใหม่&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_เลิก&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_เพิ่มผู้ใช้&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/เพิ่มกลุ่ม&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_ช่วยเหลือ&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_แจ้งข้อผิดพลาด&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_เกี่ยวกับ&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;ค้นหา:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;ใช้ตัวกรอง&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;ผู้ใช้&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;กลุ่ม&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;ชื่อผู้ใช้&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;รหัสผู้ใช้&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;กลุ่มแรก&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;ชื่อเต็ม&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;ล็อกอินเชล&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Home Directory&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;สถานะ&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;ชื่อกลุ่ม&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;รหัสกลุ่ม&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;สมาชิกกลุ่ม&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;เพิ่มผู้ใช้&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;เพิ่มผู้ใช้เข้าระบบ&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;เพิ่มกลุ่ม&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;เพิ่มกลุ่มเข้าระบบ&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;ปรับแต่ง&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;ปรับแต่งบรรทัดที่เลือก&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;ลบ&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;ลบที่เลือก&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;อ่านค่าใหม่&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;อ่านค่ารายการใหม่&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;ล็อก&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;หมดอายุ&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;กดที่รูปเพื่อเปลี่ยนแปลง&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;สร้างผู้ใช้ใหม่&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;สร้าง Home Directory&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Home Directory: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;สร้างกลุ่มส่วนตัวสำหรับผู้ใช้&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;ระบุรหัสผู้ใช้เอง&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;ชื่อนี้มีแล้วกรุณาใช้ชื่ออื่น&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;รหัสลับไม่ถูกต้อง&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;รหัสลับนี้ง่ายเกินไป\n&quot;
++&quot;รหัสที่ดีต้องมีตัวหนังสือมากกว่า 6 &quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;รหัสผู้ใช้น้อยกว่า 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;ไม่แนะนำให้สร้างผู้ใช้ที่มีรหัสต่ำกว่า 500 \n&quot;
++&quot;คุณแน่ใจหรือที่จะสร้าง\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;ใส่ %s เข้าไปที่กลุ่ม 'user' &quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;สร้างกลุ่มใหม่ %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;เพิ่มผู้ใช้: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;ยกเลิก&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;ตกลง&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;รหัส: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;เลือกกลุ่ม&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;เพิ่มเข้ากลุ่มที่มีอยู่แล้ว&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;เพิ่มไปที่กลุ่ม 'users'&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;ชื่อกลุ่มนี้มีแล้ว คุณจะทำอย่างไรต่อ&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;สร้างกลุ่มใหม่&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;ระบุรหัสกลุ่มเอง&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;ชื่อกลุ่มนี้มีอยู่แล้ว กรุณาเลือกชื่ออื่น&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;รหัสกลุ่มน้อยกว่า 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;ไม่แนะนำให้สร้างกลุ่มผู้ใช้ที่มีรหัสต่ำกว่า 500 \n&quot;
++&quot;คุณแน่ใจหรือที่จะสร้าง\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;เพิ่มกลุ่ม: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;รหัสกลุ่ม:&quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;ลบไฟล์หรือไม่&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;กำลังลบผู้ใช้ %s\n&quot;
++&quot;และกำลังทำงานสิ่งต่อไปนี้\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;ลบ Home Directory: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;ลบ Mailbox :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;ลบผู้ใช้: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;คุณแน่ใจหรือที่จะลบกลุ่ม %s&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s คือกลุ่มแรกของ %s\n&quot;
++&quot; ลบผู้ใช้นี้ก่อน&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;ลบกลุ่ม: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;ชื่อเต็ม:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Login:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;รหัสลับ:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;ยืนยันรหัสลับ:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;ล็อกอินเชล:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;ชื่อกลุ่ม:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;กรุณาเลือกอย่างน้อยหนึ่งกลุ่มสำหรับผู้ใช้&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;กรุณาระบุ ปี เดือน และวัน\n&quot;
++&quot;ที่บัญชีจะหมดอายุ &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;กรุณากรอกทุกช่องในอายุของรหัสลับ\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;คุณไม่สามารถลบผู้ใช้ '%s' จากกลุ่มแรกของเขา&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Home:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;ข้อมูลผู้ใช้&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;ใช้งานการจับเวลาวันหมดอายุของบัญชี&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;บัญชีหมดอายุ (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;ล็อกบัญชีผู้ใช้&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;ข้อมูลบัญชี&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;ผู้ใช้เปลี่ยนรหัสลับครั้งสุดท้ายเมื่อ :&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;ใช้งานวันหมดอายุของรหัสลับ&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;จำนวนวันก่อนที่จะเปลี่ยนได้:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;จำนวนวันก่อนเปลี่ยนที่ต้องการ:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;จำนวนวันที่จะเตือนก่อนเปลี่ยน:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;:จำนวนวันก่อนบัญชีจะใช้งานไม่ได้&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;ข้อมูลรหัสลับ&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;เลือกกลุ่มที่ผู้ใช้จะเป็นสมาชิก&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;ข้อมูลกลุ่ม&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;เลือกผู้ใช้สำหรับกลุ่มนี้:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;กลุ่มผู้ใช้&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;แก้ใขกลุ่ม / ผู้ใช้&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;มีปัญหาเกิดขึ้น&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;ปิด&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;การบริหารผู้ใช้&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;ไม่มีชื่อ กรุณาใส่ชื่อด้วย&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;ชื่อต้องเป็นตัวหนังสือลาตินแบบตัวเล็ก ตัวเลข `-' และ `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;ชื่อยาวเกินไป&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;เกิดการผิดพลาด&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;เกิดการผิดพลาดแบบไม่ทราบสาเหตุ&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;เกิดการผิดพลาดเวลาสร้าง `%s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;ผู้แต่ง:&quot;
+
+<a id="userdrake2tags1133potlpo">Added: userdrake2/tags/1.13.3/po/tl.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/tl.po (rev 0)
++++ userdrake2/tags/1.13.3/po/tl.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,756 @@
++# translation of userdrake-tl.po to Filipino
++# translation of userdrake.po to Filipino
++# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
++# Arys P. Deloso &lt;arys@deloso.org&gt;, 2004, 2005.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-tl\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2005-01-25 08:11+0000\n&quot;
++&quot;Last-Translator: Arys P. Deloso &lt;arys@deloso.org&gt;\n&quot;
++&quot;Language-Team: Filipino &lt;salin@pandaypinoy.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.3.1\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Hindi mabasa ang `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Hindi magawa ang `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Hindi matanggal ang `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Hindi magawa ang mail spool.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Hindi magawa ang mail spool.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Hindi magawa ang mail spool.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;di-alam na kamalian&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Hindi magawa ang mail spool.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Hindi matanggal ang mail spool.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Nilo-load ang mga User at Grupo... Pakihintay&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageia Users Management Tool&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/Mga _Aksyon&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/I-_Edit&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Alisin&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/Mga _Option&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Salain ang mga system user&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_File&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Sariwain&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/_Labas&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;L&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Magdagdag ng User&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Magdagdag ng _Grupo&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Tulong&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/Mag-ulat ng _Bug&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/Tung_kol sa...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Hanapin:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;I-apply ang pangsala&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Mga user&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Mga grupo&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Mga gumagamit at grupo&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Pangalan ng User&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;User ID&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Pangunahing Grupo&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Buong Pangalan&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Login Shell&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Tahanang Directory&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Kalagayan&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Pangalan ng Grupo&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Group ID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Mga Kasapi sa Grupo&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Magdagdag ng User&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Magdagdag ng user sa sistema&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Magdagdag ng Grupo&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Magdagdag ng grupo sa sistema&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;I-edit&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;I-edit ang piniling hanay (row)&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Alisin&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Alisin ang piniling row&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Sariwain&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Sariwain ang talaan&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Naka-lock&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Wala ng bisa&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;I-click ang icon para baguhin ito&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Gumawa ng Bagong User&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Gumawa ng Tahanang Directory&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Tahanang Directory: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Gumawa ng pribadong grupo para sa user&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Mano-manong banggitin ang user ID&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Mayroon nang User, pakiusap, pumili ng ibang Pangalan ng User&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Password Di-tugma&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Itong password ay sobrang simple. \n&quot;
++&quot; Ang mga magandang password ay dapat &gt; 6 character&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;User Uid ay &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Hindi ipinapayo ang paggawa ng user na may UID na mas mababa sa 500.\n&quot;
++&quot; Sigurado ka bang gusto mong gawin ito?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Nilalagay ang %s sa 'users' na grupo&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Ginagawa ang bagong grupo: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Idinadagdag ang user: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Kanselahin&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Ok&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Pumili ng grupo&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Idagdag sa mayroon nang grupo&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Idagdag sa 'users' na grupo&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;&quot;
++&quot;Mayroon nang grupo na may ganitong pangalan. Ano ang gusto mong gawin?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Gumawa ng Bagong Grupo&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Mano-manong banggitin ang ID ng grupo&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Mayroon nang Grupo, pakiusap, pumili ng ibang Pangalan ng Grupo&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; Gid ng Grupo ay &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Hindi ipinapayo ang paggawa ng grupo na may GID na mas mababa sa 500.\n&quot;
++&quot; Sigurado ka bang gusto mong gawin ito?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Idinadagdag ang grupo: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Alisin ang mga file o hindi?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Inaalis ang user %s\n&quot;
++&quot; At saka gawin ang mga sumusunod na aksyon\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Alisin ang Tahanang Directory: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Alisin ang Mailbox :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Inaalis ang user: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Gusto ma ba talagang alisin ang grupo na %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s ay isang pangunahing grupo para sa user na %s\n&quot;
++&quot; Alisin muna ang user&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Inaalis ang grupo: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Buong Pangalan:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Login:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Password:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Ulitin ang Password:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Login Shell:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Pangalan ng Grupo:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Pakiusap, pumili ng isa man lang na grupo para sa user&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Pakibanggit ang Taon, Buwan at Araw \n&quot;
++&quot; para sa Pagkawala ng bisa ng Account &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Pakipuno lahat ng mga field sa pagtanda ng password\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Hindi mo maaalis ang user na '%s' mula sa kanilang pangunahing grupo&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Tahanan:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;User Data&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Paganahin ang pag-expire (walang bisa) ng account&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Mawawalang bisa (TTTT-BB-AA):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;I-lock ang Account ng User&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Inpormasyon sa Account&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Huling binago ng user ang password noong : &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Paganahin ang pag-expire (walang bisa) ng password&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Araw bago payagan pagbabago :&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Araw bago kailanganing baguhin :&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Araw ng pagbabala bago baguhin :&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Araw bago inactive ang account :&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Inpormasyon sa Password&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Piliin ang mga grupo na magiging kasapi ang user:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Group Data&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Piliin ang mga user na sasali sa grupong ito :&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Mga User ng Grupo&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;I-Edit ang mga Grupo / User&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;May \&quot;error\&quot; na nangyari&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Isara&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Pangangasiwa ng mga User&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Arys P. Deloso &lt;arys@deloso.org&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Ang field na Pangalan ay walang laman, magbigay ng pangalan&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++&quot;Ang pangalan ay dapat maglaman lamang ng maliliit na latin na titik, bilang, &quot;
++&quot;`-' at `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Sobrang haba ng pangalan&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Error&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;di-alam na kamalian&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Hindi magawa ang `%s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Mga Autor: &quot;
+
+<a id="userdrake2tags1133potrpo">Added: userdrake2/tags/1.13.3/po/tr.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/tr.po (rev 0)
++++ userdrake2/tags/1.13.3/po/tr.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,790 @@
++# translation of tr.po to Turkce
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/tr.php3
++#
++# Copyright (C) 2003, 2004, 2007 Free Software Foundation, Inc.
++# #############################################
++#
++#
++# #############################################
++#
++# Ömer Fadıl USTA &lt;omer_fad@hotmail.com&gt;, 2002-2003, 2004.
++# S. Alp ŞENYER &lt;ssenyer@linux-sevenler.org&gt;, 2004.
++# Taha Özket &lt;taha.ozket@obss.net&gt;, 2007.
++# Atilla ÖNTAŞ &lt;atilla_ontas@mandriva.ocm&gt;, 2009.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: tr\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2010-02-09 02:47+0200\n&quot;
++&quot;Last-Translator: Atilla ÖNTAŞ &lt;atilla_ontas@mandriva.org&gt;\n&quot;
++&quot;Language-Team: Turkish &lt;kde-i18n-doc@kde.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: Lokalize 1.0\n&quot;
++&quot;Plural-Forms: nplurals=1; plural=0;\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Okurken hata `%s': %s&quot;
++
++#: ../USER/USER.xs:93
++#: ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Yaratılırken hata `%s': %s&quot;
++
++#: ../USER/USER.xs:205
++#: ../USER/USER.xs:234
++#: ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Silerken hata `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Hesap oluşturma işlemi başarısız oldu: '%s'.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;Uid numarası alınamıyor&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;Değer alınamıyor&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Yeni posta kuyruğu yaratma hatası.\n&quot;
++
++#: ../USER/USER.xs:582
++#, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Kullanıcı düzenlenemez: '%s'.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Kullanıcı Silinemez: '%s'.\n&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;Parola ayarlanamadı: '%s'.\n&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;bilinmeyen hata&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Grup oluşturma işlemi başarısız oldu.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;Grup düzenlenemez: '%s'.\n&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;Grup silinemez: '%s'.\n&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;Kullanıcı için bir Ev dizini yok.\n&quot;
++
++#: ../USER/USER.xs:869
++#: ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Ev Dizini silinemez: '%s'.\n&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Posta kuyruğu silme hatası.\n&quot;
++
++#: ../userdrake:59
++#: ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Kullanıcı ve Gruplar Yükleniyor... Lütfen bekleyin&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageia Kullanıcı Yönetim Aracı&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;/_konuk hesabını kur&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;/_konuk hesabını sil&quot;
++
++#: ../userdrake:101
++#: ../userdrake:102
++#: ../userdrake:103
++#: ../userdrake:114
++#: ../userdrake:115
++#: ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/Eylemle_r&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/Dü_zenle&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Sil&quot;
++
++#: ../userdrake:104
++#: ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/S_eçenekler&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/Sistem kullanıcılarını _Filtrele&quot;
++
++#: ../userdrake:109
++#: ../userdrake:110
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Dosya&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Tazele&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/Çı_K&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/K_ullanıcı Ekle&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Gru_p Ekle&quot;
++
++#: ../userdrake:125
++#: ../userdrake:126
++#: ../userdrake:127
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Yardım&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/Hata _Bildir&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Hakkında...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Ara:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Filtreyi uygula&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Kullanıcılar&quot;
++
++#: ../userdrake:162
++#: ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Gruplar&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Kullanıcı ve gruplar&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Kullanıcı Adı&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Kullanıcı ID&quot;
++
++#: ../userdrake:186
++#: ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Birincil Grup&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Tam isim&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Giriş Kabuğu&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Ev Dizini&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Durum&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Grup Adı&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Grup ID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Grup Üyeleri&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Kullanıcı Ekle&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Sisteme bir kullanıcı ekler&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Grup Ekle&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Sisteme bir kullanıcı ekler&quot;
++
++#: ../userdrake:198
++#: ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Düzenle&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Seçili sırayı süzenler&quot;
++
++#: ../userdrake:199
++#: ../userdrake:674
++#: ../userdrake:707
++#: ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Sil&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Seçili sırayı siler&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Tazele&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Listeyi tazeler&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Kilitli&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Hükmünü yitirmiş&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Değiştirmek için simgesine tıklayın&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Yeni Kullanıcı Oluştur&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Ev Dizini Oluştur&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Ev Dizini: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Kullanıcılar için özel bir grup oluştur&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Kullanıcının ID'sini elle belirle&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Kullanıcı zaten mevcut, lütfen bir başka Kullanıcı Adı seçin&quot;
++
++#: ../userdrake:419
++#: ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Parolalar uyuşmuyor&quot;
++
++#: ../userdrake:422
++#: ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Bu parola çok basit. \n&quot;
++&quot; İyi bir parola en az 6 karakterden oluşturulmalıdır&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Kullanıcı adı 500 'den küçükj&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Kullanıcı ID'si 500 sayisindan küçük bir kullanıcı oluşturmak\n&quot;
++&quot;tavsiye edilmemektedir.\n&quot;
++&quot; Bunu yapmak istediğinize emin misiniz ?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;%s 'users' grubuna koyuluyor&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Oluşturulan yeni grup: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Eklenen kullanıcı: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Göç sihirbazı&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;Do you want to run the migration wizard in order to import Windows documents and settings in your Mageia distribution?&quot;
++msgstr &quot;Windows belge ve seçeneklerinizi Mageia dağıtımına aktarmak için göç sihirbazını çalıştırmak istiyor musunuz?&quot;
++
++#: ../userdrake:484
++#: ../userdrake:528
++#: ../userdrake:587
++#: ../userdrake:674
++#: ../userdrake:707
++#: ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Vazgeç&quot;
++
++#: ../userdrake:484
++#: ../userdrake:521
++#: ../userdrake:587
++#: ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Tamam&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Grup seçin&quot;
++
++#: ../userdrake:512
++#: ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Var olan bir gruba ekle&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;'users' grubuna ekle&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Bu isimde zaten bir grup mevcut . Ne yapmak istersiniz ?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Yeni Grup Oluştur&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Grup ID'sini elle belirle&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Grup zaten mevut, lütfen bir başka Grup ismi seçin&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; Grup Gid 500 'den küçük&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Grup ID'si 500 sayisindan küçük bir grup oluşturmak\n&quot;
++&quot;tavsiye edilmemektedir.\n&quot;
++&quot; Bunu yapmak istediğinize emin misiniz ?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Eklenen grup: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Dosyaları silinsin mi yoksa silinmesin mi?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;%s Kullanıcısı siliniyor\n&quot;
++&quot; Sonrasında şu eylemler gerçekleştirilecek\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Ev Dizinini Sil: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Posta Kutusunu Sil :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Kaldırılan kullanıcı: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;%s grubunu gerçekten silmek istiyor musunuz?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s grubu %s kullanıcısı için birincil gruptur\n&quot;
++&quot; Önce kullanıcıyı çıkartın&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Kaldırılan Grup: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Tam isim:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Giriş:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Parola:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Parolayı Tekrarla:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Giriş Kabuğu:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Grup Adı:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Lütfen kullanıcı için en az bir grup seçiniz&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Lütfen hesabın hükmünü yitireceği Yılı, \n&quot;
++&quot;Ayı ve Günü belirtin &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Lütfen şifre bölümündeki tüm bilgileri doldurunuz\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;'%s' kullanıcısını onların birincil grubundan çıkartamazsınız&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Ev:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Kullanıcı Verisi&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Hesabın hüküm yitirmesine imkan ver&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Hesabın sonlanması (YYYY-AA-GG):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Kullanıcı Hesabını Kilitle&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Hesap bilgisi&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Kullanıcı en son şu tarihte şifre değiştirdi : &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Parolanın hüküm yitirmesine imkan ver&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Değişikliğe kaç gün sonra izin verilecek&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Kaç gün sonra değiştirecek&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Değiştirmeden kaç gün önce uyarılacak :&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Hesap kaç gün sonra kapatılacak :&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Parola bilgisi&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Kullanıcının üyesi olacağı grupları seçiniz:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Grup Verisi&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Gruba eklenecek kullanıcıları seçin :&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Grup Kullanıcıları&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Grupları / Kullanıcıları Düzenle&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Bir hata oluştu:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Kapat&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Tüm Hakları Saklıdır (C) %s Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Kullanıcı Yönetimi&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Taha Özket &lt;taha.ozket@obss.net&gt; 2007\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;İsim alanı boş bırakılmış lütfen uygun şekilde doldurunuz&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;İsim sadece ufak latin harflerini , '-' ve '_' işaretlerini içerebilir&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;İsim çok uzun&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Hata&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;bilinmeyen hata&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Yaratılırken hata `%s': %s&quot;
++
+
+<a id="userdrake2tags1133poukpo">Added: userdrake2/tags/1.13.3/po/uk.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/uk.po (rev 0)
++++ userdrake2/tags/1.13.3/po/uk.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,763 @@
++# translation of userdrake2.po to ukrainian
++# $Id: uk.po 266811 2010-03-14 13:45:17Z btr0001 $
++# Copyright (C) 2003, 2004, 2005, 2008 Free Software Foundation, Inc.
++# Copyright (c) 2000 Mandriva
++# Gladky Dima &lt;gladimdim@inbox.ru&gt; (2002)
++#
++# Sergey A. Ribalchenko &lt;fisher@obu.ck.ua&gt;, 2000.
++# Taras Boychuk &lt;btr1@torba.com&gt;, 2003, 2004.
++# Taras Boychuk &lt;btr1@mail.ru&gt;, 2003.
++# Taras Boychuk &lt;btr1@ukrpost.net&gt;, 2004, 2005.
++# Taras Boychuk &lt;btr0001@ukr.net&gt;, 2008, 2010.
++# Yuri Chornoivan &lt;yurchor@ukr.net&gt;, 2009, 2010.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake2\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2010-03-10 17:01-0500\n&quot;
++&quot;Last-Translator: Taras Boychuk &lt;btr0001@ukr.net&gt;\n&quot;
++&quot;Language-Team: Ukrainian &lt;translation@linux.org.ua&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: Lokalize 1.0\n&quot;
++&quot;Plural-Forms: nplurals=3; plural=(n%10==1 &amp;&amp; n%100!=11 ? 0 : n%10&gt;=2 &amp;&amp; &quot;
++&quot;n%10&lt;=4 &amp;&amp; (n%100&lt;10 || n%100&gt;=20) ? 1 : 2);\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Помилка при читанні `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Помилка при створенні `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Помилка при видаленні `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Спроба створення облікового запису зазнала невдачі: «%s».\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;Не вдалося отримати номер Uid&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;Не вдалося отримати значення&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Помилка при створенні поштової низки.\n&quot;
++
++#: ../USER/USER.xs:582
++#, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Не вдалося змінити параметри запису користувача: «%s».\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Не вдалося вилучити запис користувача: «%s».\n&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;Не вдалося встановити пароль: «%s».\n&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;невідома помилка&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Помилка під час спроби створення групи.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;Не вдалося змінити параметри групи: «%s».\n&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;Не вдалося вилучити групу: «%s».\n&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;У цього користувача немає домашньої теки.\n&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;Не вдалося вилучити домашню теку: «%s».\n&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Помилка при видаленні поштової низки.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Завантажуються Користувачі і групи... Зачекайте, будь ласка&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Інструмент керування користувачами Мандріва Лінакса&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;/_Встановити обліковий запис для гостей&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;/В_илучити обліковий запис для гостей&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Дії&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/Виправити&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/Видалити&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/Параметри&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/Фільтрувати системних користувачів&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/Файл&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/Поновити&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/Вийти&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/Додати користувача&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Додати групу&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/Довідка&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/Звіт про помилку&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/Про програму...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Пошук:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Застосувати фільтр&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Користувачі&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Групи&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Користувачі і групи&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Ім'я користувача&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Код користувача&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Первинна група&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Повна назва&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Командний рядок реєстрації&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Домівка користувача&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Статус&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Назва групи&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Код групи&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Члени групи&quot;
++
++# broken into two lines to avoid too large a button
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Додати користувача&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Додати користувача в систему&quot;
++
++# broken into two lines to avoid too large a button
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Додати групу&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Додати групу в систему&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Виправити&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Виправити вибраний рядок&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Видалити&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Видалити вибраний рядок&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Поновити&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Поновити список&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Заблоковано&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Термін закінчився&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Клацніть на іконці, щоб змінити&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Створити нового користувача&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Створити домівку користувача&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Домівка користувача: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Створити особисту групу для користувача&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Задати код користувача вручну&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Такий користувач вже є, будь ласка, задайте інше ім'я користувача&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Паролі не збігаються&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Цей пароль занадто простий. \n&quot;
++&quot; Хороший пароль повинен мати більше 6 символів&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Код користувача менший за 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Створювати користувачів з кодом, меншим за 500, не рекомендується.\n&quot;
++&quot; Ви впевнені, що хочете зробити саме так?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Додається %s в групу 'users'&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Створюється нова група: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Додається користувач: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;Помічник переходу&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;Чи хочете запустити Помічника переходу, щоб імпортувати налаштування і &quot;
++&quot;документи Віндовс у Мандріва Лінакс?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Скасувати&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Гаразд&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;Код користувача: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Виберіть групу&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Додати в існуючу групу&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Додати в групу 'users'&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Група з такою назвою вже існує. Що хочете зробити?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Створити нову групу&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Задати код групи вручну&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Група вже існує, будь ласка, вкажіть іншу назву групи&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;Код групи менший за 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Створювати групи з кодом, меншим за 500 не рекомендується.\n&quot;
++&quot; Ви впевнені, що хочете зробити саме так?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Додається група: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;Код групи: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Видалити файли, чи ні?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Вилучається користувач %s\n&quot;
++&quot; Також виконуються наступні дії\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Видалити домівку користувача: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Видалити поштову скриньку :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Вилучається користувач: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Ви справді хочете видалити групу %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s є первинною групою для користувача %s\n&quot;
++&quot; Спочатку вилучіть користувача&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Вилучається група: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Повна назва:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Ім'я:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Пароль:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Підтвердіть пароль:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Командний рядок реєстрації:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Назва групи:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Будь ласка, виберіть хоч одну групу для користувача&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Будь ласка, задайте рік, місяць і день \n&quot;
++&quot; закінчення дії облікового запису &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Будь ласка, заповніть всі поля, щоб встановити термін дії пароля\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Ви не можете вилучити користувача '%s' з його первинної групи&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Домівка:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Дані користувача&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Увімкнути обмеження облікових записів&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Термін дії облікового запису закінчується (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Заблокувати облік користувачів&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Інформація про користувачів&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Остання зміна пароля користувачем: &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Увімкнути обмеження терміну дії пароля&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Дозволено днів перед зміною :&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Необхідно днів перед зміною :&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Днів попередження перед зміною :&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Днів до завершення дії облікового запису:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Інформація про пароль&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Виберіть групи, членом яких буде користувач:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Дані групи&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Виберіть користувачів, яких включити в цю групу :&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Згрупувати користувачів&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Редагувати Групи / Користувачів&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Сталася помилка:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Закрити&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Copyright (C) %s by Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Керування користувачами&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Taras Boychuk &lt;btr0001@ukr.net&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Поле з назвою порожнє, будь ласка, введіть назву.&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++&quot;Назва може складатися тільки з малих латинських літер, цифр, `-' та `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Назва занадто довга&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Помилка&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;невідома помилка&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Помилка при створенні `%s': %s&quot;
+
+<a id="userdrake2tags1133pouserdrakepot">Added: userdrake2/tags/1.13.3/po/userdrake.pot</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/userdrake.pot (rev 0)
++++ userdrake2/tags/1.13.3/po/userdrake.pot 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,733 @@
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
++# This file is distributed under the same license as the PACKAGE package.
++# FIRST AUTHOR &lt;EMAIL@ADDRESS&gt;, YEAR.
++#
++#, fuzzy
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: PACKAGE VERSION\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2011-02-06 22:15+0100\n&quot;
++&quot;PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n&quot;
++&quot;Last-Translator: FULL NAME &lt;EMAIL@ADDRESS&gt;\n&quot;
++&quot;Language-Team: LANGUAGE &lt;LL@li.org&gt;\n&quot;
++&quot;Language: \n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=CHARSET\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:490
++#, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:582
++#, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:59 ../userdrake:1276
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:419 ../userdrake:859
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:422 ../userdrake:862
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1167
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1167
++#: ../userdrake:1318
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:819
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:893
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:903
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:913
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1160
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1268
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1278
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1278
++#, c-format
++msgid &quot;Copyright (C) %s by Mageia&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1281
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1283
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1289
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1296
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1298
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1301
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1314
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;&quot;
+
+<a id="userdrake2tags1133pouzpo">Added: userdrake2/tags/1.13.3/po/uz.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/uz.po (rev 0)
++++ userdrake2/tags/1.13.3/po/uz.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,805 @@
++# translation of userdrake-uz@Cyrl.po to Uzbek
++# ###
++# ### Cyrilic version atuomatically built from the latin one;
++# ### Needs proofreading!
++# ###
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/uz@Cyrl.php3
++#
++# Suppor for Uzbek language in userdrake.
++# Copyright (C) 2003 Free Software Foundation, Inc.
++# Copyright (C) 2003 Mandriva.
++# Mashrab Kuvatov &lt;kmashrab@uni-bremen.de&gt;, 2003.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-uz\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2003-11-16 10:52+0100\n&quot;
++&quot;Last-Translator: Mashrab Kuvatov &lt;kmashrab@uni-bremen.de&gt;\n&quot;
++&quot;Language-Team: Uzbek &lt;uz-li@yahoogroups.com&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=1; plural=0;\n&quot;
++&quot;X-Generator: KBabel 1.0.2\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, fuzzy, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Foydalanuvchi olib tashlanmoqda: %s&quot;
++
++#: ../USER/USER.xs:490
++#, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:582
++#, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;noma'lum xato&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake - foydalanuvchilarni boshqarish&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Foydalanuvchi va guruhlar yuklanmoqda, iltimos kutib turing...&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageia uchun foydalanuvchilarni boshqarish vositasi&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Amallar&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Tuzatish&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_O'chirish&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Parametrlar&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Sistema foydalanuvchilarini filterlash&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Fayl&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Yangilash&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/Chi_qish&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Foydalanuvchini qo'shish&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/_Guruhni qo'shish&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Yordam&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Xato haqida xabar qilish&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Haqida&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Qidirish:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Filterni qo'llash&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Foydalanuvchilar&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Guruhlar&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Foydalanuvchi va guruhlar&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Foydalanuvchi&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Foydalanuvchining ID'si&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Asosiy guruh&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;To'liq ismi&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Kirish konsoli&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Uy direktoriyasi&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Holati&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Guruhning nomi&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Guruhning ID'si&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Guruh a'zolari&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Foydalanuvchini qo'shish&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Sistemaga foydalanuvchini qo'shish&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Guruhni qo'shish&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Sistemaga guruhni qo'shish&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Tuzatish&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Belgilangan qatorni tuzatish&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;O'chirish&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Belgilangan qatorni o'chirish&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Yangilash&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Ro'yxatni yangilash&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Qulflangan&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Muddati o'tgan&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Buni o'zgartirish uchun nishonchani bosing&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Yangi foydalanuvchini yaratish&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Uy direktoriyani yaratish&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Uy direktoriyasi: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Foydalanuvchi uchun shaxsiy guruhni yaratish&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;&quot;
++&quot;Foydalanuvchi allaqachon mavjud, iltimos boshqa foydalanuvchini tanlang&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Maxfiy so'z mos kelmadi&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Bu maxfiy so'z juda sodda. \n&quot;
++&quot;Yaxshi maxfiy so'z 6 belgidan ko'p bo'lishi kerak&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Foydalanuvchining UID'si 500 dan kam&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;UID'si 500 dan kam bo'lgan foydalanuvchini yaratish tavsiya qilinmaydi.\n&quot;
++&quot; Buni bajarishga ishonchingiz komilmi?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;%s \&quot;users\&quot; guruhiga qo'shilmoqda&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Yangi guruh yaratilmoqda: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Foydalanuvchi qo'shilmoqda: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Bekor qilish&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Ok&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, fuzzy, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Guruhni tanlang&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Mavjud bo'lgan guruhga qo'shish&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;\&quot;users\&quot; guruhiga qo'shish&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Bunday nomli guruh allaqachon mavjud. Siz nimani bajarishni istaysiz?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Yangi guruhni yaratish&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Guruh allaqachon mavjud, iltimos boshqa guruh nomini tanlang&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;Guruhning GID'si 500 dan kam&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;GID'si 500 dan kam bo'lgan guruhni yaratish tavsiya qilinmaydi.\n&quot;
++&quot; Buni bajarishga ishonchingiz komilmi?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Guruh qo'shilmoqda: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, fuzzy, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Belgilangan qatorni o'chirish&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Foydalanuvchi %s o'chirilmoqda\n&quot;
++&quot; Budan tashqari quyidagi amallarni bajarish\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Uy direktoriyasini o'chirish: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Pochta qutisini o'chirish :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Foydalanuvchi olib tashlanmoqda: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Rostdan \&quot;%s\&quot; guruhini o'chirmoqchimisiz?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;Guruh %s foydalanuvchi %s uchun asosiy\n&quot;
++&quot; Avvalo foydalanuvchini o'chiring&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Guruh olib tashlanmoqda: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;To'liq ismi:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Foydalanuvchi:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Maxfiy so'z:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Maxfiy so'zni tasdiqlang:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Kirish konsoli:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Guruhning nomi:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Iltimos foydalanuvchi uchun eng kamida bitta guruhni tanlang&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Iltimos hisob muddati o'tish\n&quot;
++&quot; yilni, oyni va kunni ko'rsating &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Foydalanuvchini \&quot;%s\&quot; asosiy guruhidan o'chirib bo'lmaydi&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Uy direktoriya:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Foydalanuvchining ma'lumotlari&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Hisob muddati o'tishini yoqish&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Hisobning muddati o'tadi (YYYY-OO-KK):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Foydalanuvchining hisobini qulflash&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Hisob haqida ma'lumot&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Foydalanuvchi oxirgi marta maxfiy so'zni o'zgartirgan sana : &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Maxfiy so'z muddati o'tishini yoqish&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Shuncha kundan so'ng o'zgartirish mumkin :&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Shuncha kundan so'ng o'zgartirish talab qilinadi :&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Shuncha kundan so'ng hisob qulflanadi :&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Maxfiy so'z haqida ma'lumot&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Foydalanuvchi a'zo bo'ladigan guruhni tanlang:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Guruhning ma'lumoti&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Bu guruhga a'zo bo'ladigan foydalanuvchilarni tanlang:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Guruh foydalanuvchilari&quot;
++
++#: ../userdrake:1127
++#, fuzzy, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Guruh foydalanuvchilari&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Xato roʻy berdi:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Yopish&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Copyright (C) %s by Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Foydalanuvchilar boshqaruvi&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Mashrab Quvatov &lt;kmashrab@uni-bremen.de&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Foydalanuvchi maydoni bo'sh. Iltimos foydalanuvchini kiriting.&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++&quot;Foydalanuvchi faqat kichik lotin harflar, sonlar. \&quot;-\&quot; va \&quot;_\&quot; &quot;
++&quot;belgilaridan iborat bo'lishi mumkin&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Foydalanuvchining ismi juda uzun&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Xato&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;noma'lum xato&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Foydalanuvchi olib tashlanmoqda: %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Mualliflar: &quot;
++
++#~ msgid &quot;Yes&quot;
++#~ msgstr &quot;Ha&quot;
++
++#~ msgid &quot;No&quot;
++#~ msgstr &quot;Yo'q&quot;
++
++#, fuzzy
++#~ msgid &quot;Delete files or not&quot;
++#~ msgstr &quot;Belgilangan qatorni o'chirish&quot;
++
++#~ msgid &quot;Warning : Deleting User&quot;
++#~ msgstr &quot;Diqqat: Foydalanuvchi o'chirilmoqda&quot;
++
++#~ msgid &quot;Warning : Deleting Group&quot;
++#~ msgstr &quot;Diqqat: Guruh o'chirilmoqda&quot;
++
++#~ msgid &quot;Generic help on userdrake&quot;
++#~ msgstr &quot;Userdrake bo'yicha umumiy yordam&quot;
++
++#~ msgid &quot;Help&quot;
++#~ msgstr &quot;Yordam&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;This password is too simple. \n&quot;
++#~ &quot; Good passwords should be &gt; 6 caracters&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Bu maxfiy so'z juda sodda. \n&quot;
++#~ &quot;Yaxshi maxfiy so'z 6 belgidan ko'p bo'lishi kerak&quot;
++
++#~ msgid &quot;Delete User&quot;
++#~ msgstr &quot;Foydalanuvchini o'chirish&quot;
++
++#~ msgid &quot;The name must contain only lower cased letters, numbers, `-' and `_'&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Foydalanuvchi faqat kichik harflar, sonlar. \&quot;-\&quot; va \&quot;_\&quot; belgilaridan &quot;
++#~ &quot;iborat bo'lishi mumkin&quot;
++
++#, fuzzy
++#~ msgid &quot; Remove Home Directory&quot;
++#~ msgstr &quot;Foydalanuvchining uy direktoriyasi&quot;
+
+<a id="userdrake2tags1133pouzcyrillicpo">Added: userdrake2/tags/1.13.3/po/uz@cyrillic.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/uz@cyrillic.po (rev 0)
++++ userdrake2/tags/1.13.3/po/uz@cyrillic.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,804 @@
++# translation of userdrake-uz@Cyrl.po to Uzbek
++# ###
++# ### Cyrilic version atuomatically built from the latin one;
++# ### Needs proofreading!
++# ###
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/uz@Cyrl.php3
++#
++# Suppor for Uzbek language in userdrake.
++# Copyright (C) 2003 Free Software Foundation, Inc.
++# Copyright (C) 2003 Mandriva.
++# Mashrab Kuvatov &lt;kmashrab@uni-bremen.de&gt;, 2003.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-uz\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2003-11-16 10:52+0100\n&quot;
++&quot;Last-Translator: Mashrab Kuvatov &lt;kmashrab@uni-bremen.de&gt;\n&quot;
++&quot;Language-Team: Uzbek &lt;uz-li@yahoogroups.com&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=1; plural=0;\n&quot;
++&quot;X-Generator: KBabel 1.0.2\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, fuzzy, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Фойдаланувчи олиб ташланмоқда: %s&quot;
++
++#: ../USER/USER.xs:490
++#, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:582
++#, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;номаълум хато&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake - фойдаланувчиларни бошқариш&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Фойдаланувчи ва гуруҳлар юкланмоқда, илтимос кутиб туринг...&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageia учун фойдаланувчиларни бошқариш воситаси&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Амаллар&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Тузатиш&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Ўчириш&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Параметрлар&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Система фойдаланувчиларини филтерлаш&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Файл&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Янгилаш&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/Чи_қиш&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Фойдаланувчини қўшиш&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/_Гуруҳни қўшиш&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Ёрдам&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Хато ҳақида хабар қилиш&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/_Ҳақида&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Қидириш:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Филтерни қўллаш&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Фойдаланувчилар&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Гуруҳлар&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Фойдаланувчи ва гуруҳлар&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Фойдаланувчи&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;Фойдаланувчининг ID'си&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Асосий гуруҳ&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Тўлиқ исми&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Кириш консоли&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Уй директорияси&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Ҳолати&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Гуруҳнинг номи&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;Гуруҳнинг ID'си&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Гуруҳ аъзолари&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Фойдаланувчини қўшиш&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Системага фойдаланувчини қўшиш&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Гуруҳни қўшиш&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Системага гуруҳни қўшиш&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Тузатиш&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Белгиланган қаторни тузатиш&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Ўчириш&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Белгиланган қаторни ўчириш&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Янгилаш&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Рўйхатни янгилаш&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Қулфланган&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Муддати ўтган&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Буни ўзгартириш учун нишончани босинг&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Янги фойдаланувчини яратиш&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Уй директорияни яратиш&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Уй директорияси: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Фойдаланувчи учун шахсий гуруҳни яратиш&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Фойдаланувчи аллақачон мавжуд, илтимос бошқа фойдаланувчини танланг&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Махфий сўз мос келмади&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Бу махфий сўз жуда содда. \n&quot;
++&quot;Яхши махфий сўз 6 белгидан кўп бўлиши керак&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;Фойдаланувчининг UID'си 500 дан кам&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;UID'си 500 дан кам бўлган фойдаланувчини яратиш тавсия қилинмайди.\n&quot;
++&quot; Буни бажаришга ишончингиз комилми?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;%s \&quot;users\&quot; гуруҳига қўшилмоқда&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Янги гуруҳ яратилмоқда: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Фойдаланувчи қўшилмоқда: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Бекор қилиш&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;Ок&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, fuzzy, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Гуруҳни танланг&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Мавжуд бўлган гуруҳга қўшиш&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;\&quot;users\&quot; гуруҳига қўшиш&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Бундай номли гуруҳ аллақачон мавжуд. Сиз нимани бажаришни истайсиз?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Янги гуруҳни яратиш&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Гуруҳ аллақачон мавжуд, илтимос бошқа гуруҳ номини танланг&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;Гуруҳнинг GID'си 500 дан кам&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;GID'си 500 дан кам бўлган гуруҳни яратиш тавсия қилинмайди.\n&quot;
++&quot; Буни бажаришга ишончингиз комилми?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Гуруҳ қўшилмоқда: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, fuzzy, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Белгиланган қаторни ўчириш&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Фойдаланувчи %s ўчирилмоқда\n&quot;
++&quot; Будан ташқари қуйидаги амалларни бажариш\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Уй директориясини ўчириш: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Почта қутисини ўчириш :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Фойдаланувчи олиб ташланмоқда: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Ростдан \&quot;%s\&quot; гуруҳини ўчирмоқчимисиз?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;Гуруҳ %s фойдаланувчи %s учун асосий\n&quot;
++&quot; Аввало фойдаланувчини ўчиринг&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Гуруҳ олиб ташланмоқда: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Тўлиқ исми:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Фойдаланувчи:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Махфий сўз:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Махфий сўзни тасдиқланг:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Кириш консоли:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Гуруҳнинг номи:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Илтимос фойдаланувчи учун энг камида битта гуруҳни танланг&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Илтимос ҳисоб муддати ўтиш\n&quot;
++&quot; йилни, ойни ва кунни кўрсатинг &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Фойдаланувчини \&quot;%s\&quot; асосий гуруҳидан ўчириб бўлмайди&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Уй директория:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Фойдаланувчининг маълумотлари&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Ҳисоб муддати ўтишини ёқиш&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Ҳисобнинг муддати ўтади (ЙЙЙЙ-ОО-КК):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Фойдаланувчининг ҳисобини қулфлаш&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Ҳисоб ҳақида маълумот&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Фойдаланувчи охирги марта махфий сўзни ўзгартирган сана : &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Махфий сўз муддати ўтишини ёқиш&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Шунча кундан сўнг ўзгартириш мумкин :&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Шунча кундан сўнг ўзгартириш талаб қилинади :&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Шунча кундан сўнг ҳисоб қулфланади :&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Махфий сўз ҳақида маълумот&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Фойдаланувчи аъзо бўладиган гуруҳни танланг:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Гуруҳнинг маълумоти&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Бу гуруҳга аъзо бўладиган фойдаланувчиларни танланг:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Гуруҳ фойдаланувчилари&quot;
++
++#: ../userdrake:1127
++#, fuzzy, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Гуруҳ фойдаланувчилари&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Хато рўй берди:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Ёпиш&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Copyright (C) %s by Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Фойдаланувчилар бошқаруви&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Машраб Қуватов &lt;kmashrab@uni-bremen.de&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Фойдаланувчи майдони бўш. Илтимос фойдаланувчини киритинг.&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++&quot;Фойдаланувчи фақат кичик лотин ҳарфлар, сонлар. \&quot;-\&quot; ва \&quot;_\&quot; белгиларидан &quot;
++&quot;иборат бўлиши мумкин&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Фойдаланувчининг исми жуда узун&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Хато&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;номаълум хато&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Фойдаланувчи олиб ташланмоқда: %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Муаллифлар: &quot;
++
++#~ msgid &quot;Yes&quot;
++#~ msgstr &quot;Ҳа&quot;
++
++#~ msgid &quot;No&quot;
++#~ msgstr &quot;Йўқ&quot;
++
++#, fuzzy
++#~ msgid &quot;Delete files or not&quot;
++#~ msgstr &quot;Белгиланган қаторни ўчириш&quot;
++
++#~ msgid &quot;Warning : Deleting User&quot;
++#~ msgstr &quot;Диққат: Фойдаланувчи ўчирилмоқда&quot;
++
++#~ msgid &quot;Warning : Deleting Group&quot;
++#~ msgstr &quot;Диққат: Гуруҳ ўчирилмоқда&quot;
++
++#~ msgid &quot;Generic help on userdrake&quot;
++#~ msgstr &quot;Userdrake бўйича умумий ёрдам&quot;
++
++#~ msgid &quot;Help&quot;
++#~ msgstr &quot;Ёрдам&quot;
++
++#~ msgid &quot;&quot;
++#~ &quot;This password is too simple. \n&quot;
++#~ &quot; Good passwords should be &gt; 6 caracters&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Бу махфий сўз жуда содда. \n&quot;
++#~ &quot;Яхши махфий сўз 6 белгидан кўп бўлиши керак&quot;
++
++#~ msgid &quot;Delete User&quot;
++#~ msgstr &quot;Фойдаланувчини ўчириш&quot;
++
++#~ msgid &quot;The name must contain only lower cased letters, numbers, `-' and `_'&quot;
++#~ msgstr &quot;&quot;
++#~ &quot;Фойдаланувчи фақат кичик ҳарфлар, сонлар. \&quot;-\&quot; ва \&quot;_\&quot; белгиларидан &quot;
++#~ &quot;иборат бўлиши мумкин&quot;
++
++#, fuzzy
++#~ msgid &quot; Remove Home Directory&quot;
++#~ msgstr &quot;Фойдаланувчининг уй директорияси&quot;
+
+<a id="userdrake2tags1133povipo">Added: userdrake2/tags/1.13.3/po/vi.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/vi.po (rev 0)
++++ userdrake2/tags/1.13.3/po/vi.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,752 @@
++# Vietnamese Translation For USERDRAKE.
++# Copyright (C) 2001, 2004 Free Software Foundation, Inc.
++# T.M.THANH &lt;tmthanh@yahoo.com&gt;, 2001-2004.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake-vi\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2004-08-21 09:06+0700\n&quot;
++&quot;Last-Translator: Trinh Minh Thanh &lt;tmthanh@yahoo.com&gt;\n&quot;
++&quot;Language-Team: Vietnamese &lt;gnomevi-list@lists.sourceforge.net&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=1; plural=0;\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Lỗi đọc `%s': %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Lỗi tạo `%s': %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Lỗi gỡ bỏ `%s': %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Lỗi tạo mail spool.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Lỗi tạo mail spool.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Lỗi tạo mail spool.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;lỗi không xác định&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Lỗi tạo mail spool.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Lỗi xóa bỏ mail spool.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Đang nạp Nhóm và Người Dùng... Hãy đợi&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Công Cụ Quản Lý Người Dùng Mageia&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/Hành độn_g&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/Hiệu _Chỉnh&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Xóa&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/Tù_y chọn&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Lọc người dùng hệ thống&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Tệp&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Cập nhật&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/Th_oát&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/Thê_m người dùng&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Thêm _Nhóm&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/Trợ _Giúp&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Báo cáo lỗi&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/G_iới thiệu...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Tìm kiếm:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Áp dụng trình lọc&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Người dùng&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Nhóm&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Người Dùng và Nhóm&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;Tên Người Dùng&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ID Người Dùng&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Nhóm chính&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;Tên Đầy Đủ&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Shell Đăng nhập&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Thư mục home&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Trạng thái&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;Tên Nhóm&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ID Nhóm&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Thành Viên Nhóm&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;Thêm Người Dùng&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Thêm người dùng vào hệ thống&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;Thêm Nhóm&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Thêm nhóm vào hệ thống&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Biên soạn&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Hiệu chỉnh hàng chọn&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Xóa&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Xóa hàng chọn&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Cập nhật&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Cập nhật lại Danh sách&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Bị khoá&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Hết hạn&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;Nhấn chuột lên biểu tượng để thay đổi&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Tạo người dùng mới&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Tạo thư mục home&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Thư mục home:&quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Tạo nhóm riêng cho người dùng&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Tự định ra ID người dùng&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Người dùng này đã có rồi, hãy chọn tên người dùng khác&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Mật khẩu không khớp&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Mật khẩu quá đơn giản. \n&quot;
++&quot;Mật khẩu tốt phải có nhiều hơn 6 ký tự&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;UID người dùng là &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Tạo người dùng có ID nhỏ hơn 500 là không nên làm.\n&quot;
++&quot;Bạn có chắc là muốn làm vậy không?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Đặt %s vào nhóm 'users'&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Tạo nhóm mới: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Thêm người dùng: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Bỏ qua&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;OK&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Chọn nhóm&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Thêm vào nhóm đang tồn tại&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Thêm vào nhóm 'users'&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;Đang có nhóm tồn tại với tên này. Bạn muốn làm gì?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Tạo Nhóm Mới&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Tự định ra ID nhóm&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;Nhóm đang tồn tại rồi, hãy chọn một tên nhóm khác&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;GID nhóm là &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Tạo nhóm có GID nhỏ hơn 500 là không nên làm.\n&quot;
++&quot; Bạn có chắc là muốn làm như vậy?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Thêm nhóm: %s&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Xóa các tập tin hay không?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Xóa người dùng %s\n&quot;
++&quot;Cũng thực hiện cả hành động sau đây\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Xóa thư mục home: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Xóa hộp thư :/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Xóa bỏ người dùng: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Bạn thật sự muốn xoá nhóm %s không?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s là nhóm chính cho người dùng %s\n&quot;
++&quot;Hãy xoá bỏ người dùng trước&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Xóa bỏ nhóm: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;Tên Đầy Đủ:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;Đăng nhập:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Mật khẩu:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Xác Nhận Mật Khẩu:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Shell Đăng nhập:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;Tên Nhóm:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Hãy chọn ít nhất một nhóm cho người dùng&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Hãy chỉ ra Năm, Tháng, Ngày cho \n&quot;
++&quot;thời hạn của Tài Khoản&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;Hãy điền đủ các trường trong thời hạn mật khẩu\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Bạn không thể xoá bỏ người dùng '%s' ra khỏi nhóm chính của nó&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Home:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Dữ Liệu Người Dùng&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Tính thời hạn của người dùng&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Hạn người dùng (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Khoá Tài Khoản Người Dùng&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Thông tin tài khoản&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;Mật khẩu người dùng thay đổi lần cuối vào:&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Tính thời hạn của mật khẩu&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Số ngày trước khi cho phép đổi:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Số ngày trước khi yêu cầu đổi :&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Cảnh báo số ngày trước khi đổi :&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Ngày trước khi tài khoản không hoạt động:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Thông Tin Mật Khẩu&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Chọn nhóm để người dùng trở thành thành viên:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Dữ Liệu Nhóm&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Chọn người dùng tham gia vào nhóm này:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Người Dùng Nhóm&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Hiệu chỉnh Người Dùng / Nhóm&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Lỗi xảy ra&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Đóng&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Quản Lý Người Dùng&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Trường tên trống, hãy nhập một tên&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;Tên chỉ chứa chữ cái latin thường, số, `-' và `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Tên quá dài&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Lỗi&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;lỗi không xác định&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Lỗi tạo `%s': %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Tác giả:&quot;
+
+<a id="userdrake2tags1133powapo">Added: userdrake2/tags/1.13.3/po/wa.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/wa.po (rev 0)
++++ userdrake2/tags/1.13.3/po/wa.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,773 @@
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/wa.php3
++#
++# Translation into the walloon language.
++#
++# Si vos voloz donner on côp di spale pol ratournaedje di Gnome (ou des
++# ôtes libes programes) sicrijhoz mu a l' adresse emile
++# &lt;srtxg@chanae.alphanet.ch&gt;; nos avans co bråmint di l' ovraedje a fé.
++#
++# Copyright (C) 2000 Mandriva
++# Pablo Saratxaga &lt;srtxg@chanae.alphanet.ch&gt; 2000,2003
++# Lorint Hendschel &lt;LorintHendschel@skynet.be&gt;, 2002.
++# Pablo Saratxaga &lt;pablo@walon.org&gt;, 2004.
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake2\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2004-08-05 21:54+0200\n&quot;
++&quot;Last-Translator: Pablo Saratxaga &lt;pablo@walon.org&gt;\n&quot;
++&quot;Language-Team: Walloon &lt;linux-wa@walon.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.0.2\n&quot;
++&quot;Plural-Forms: nplurals=2; plural=n &gt; 1;\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;Åk n' a nén stî tot lijhant «%s»: %s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;Åk n' a nén stî tot askepiant «%s»: %s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;Åk n' a nén stî tot oistant «%s»: %s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;Åk n' a nén stî tot askepiant l' cawêye d' emilaedje.\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;Åk n' a nén stî tot askepiant l' cawêye d' emilaedje.\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;Åk n' a nén stî tot askepiant l' cawêye d' emilaedje.\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;aroke nén cnoxhowe&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;Åk n' a nén stî tot askepiant l' cawêye d' emilaedje.\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;Åk n' a nén stî tot disfaçant l' cawêye d' emilaedje.\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;Dji tchedje les uzeus et les groupes... tårdjîz s' i vs plait&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Usteye di manaedjmint des uzeus di Mageia&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/_Accions&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/_Candjî&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/_Disfacer&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/_Tchuzes&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/_Passete po les uzeus sistinme&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/_Fitchî&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/_Rafrister&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/Moussî _foû&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/_Radjouter uzeu&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/Radjouter _groupe&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/_Aidance&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/_Rapoirter bug&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/Å_d fwait...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;Cweri:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;Mete en alaedje li passete&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;Uzeus&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;Groupes&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;Uzeus et groupes&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;No di l' uzeu&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;ID di l' uzeu&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;Prumioûle groupe&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;No en etir&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;Shell d' elodjaedje&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;Ridant måjhon&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;Estat&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;No do groupe&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;ID do groupe&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;Mimbes do groupe&quot;
++
++# broken into two lines to avoid too large a button
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;&quot;
++&quot;Radjouter\n&quot;
++&quot;uzeu&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;Radjouter èn uzeu å sistinme&quot;
++
++# broken into two lines to avoid too large a button
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;&quot;
++&quot;Radjouter\n&quot;
++&quot;groupe&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;Radjouter on groupe å sistinme&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;Candjî&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;Candjî l' roye tchoezeye&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;Disfacer&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;Disfacer l' roye tchoezeye&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;Rafrister&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;Rafrister l' djivêye&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;Bloké&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;Espiré&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;clitchîz so l' imådjete pol candjî&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;Ahiver on novea uzeu&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;Ahiver l' ridant måjhon&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;Ridant måjhon: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;Ahiver on groupe privé po l' uzeu&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;Diner al mwin l' idintifiant di l' uzeu&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;Ci no egzistêye dedja el sistinme, tchoezixhoz è èn ôte s' i vs plait&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;Les screts n' sont nén les minmes&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;Li scret est pår trop simpe. \n&quot;
++&quot; On bon scret doet aveur pus di 6 caracteres&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;L' UID est &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Ahiver èn uzeu avou èn UID (idintifiant d' uzeu) pus ptit ki 500\n&quot;
++&quot;n' est nén ricmandé. Estoz seur del voleur fé?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;Dji radjoute %s å groupe «users»&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;Dj' ahive li novea groupe: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;Dji radjoute l' uzeu: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;Rinoncî&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;'l est bon&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;Tchoezi groupe&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;Radjouter å groupe k' egzistêye dedja&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;Radjouter å groupe «users»&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;I gn a ddja on groupe di ç' no la. Cwè voloz vs fé?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;Ahiver on novea groupe&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;Diner al mwin l' idintifiant do groupe&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;&quot;
++&quot;Li groupe egzistêye dedja, tchoezixhoz èn ôte no d' groupe s' i vs plait&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; Li GID est &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;Ahiver on groupe avou on GID (idintifiant do groupe) pus ptit ki 500\n&quot;
++&quot;n' est nén ricmandé. Estoz seur del voleur fé?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;Dji radjoute li groupe: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;Disfacer les fitchîs ou nén?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;Dji disface l' uzeu %s\n&quot;
++&quot; Dji fwai eto les accions shuvantes\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;Disfacer l' ridant måjhon: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;Disfacer l' boesse ås emiles: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;Dji oistêye l' uzeu: %s&quot;
++
++# c-format
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;Voloz vs vormint disfacer l' groupe %s?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s est l' groupe prumioûle da l' uzeu %s\n&quot;
++&quot; I vs fåt d' aprume oister l' uzeu&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;Dji oistêye li groupe: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;No en etir:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;No d' elodjaedje:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;Sicret:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;Acertinaedje do scret:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;Shell d' elodjaedje:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;No do groupe:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;Tchoezixhoz pol moens on groupe po l' uzeu s' i vs plait&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;Dinez l' anêye, li moes eyet l' djoû \n&quot;
++&quot; ki l' conte doet espirer &quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;I vs fåt rimpli tos les tchamps po l' espiraedje des screts\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;Vos n' poloz nén bodjî l' uzeu «%s» foû di s' groupe prumioûle&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;Måjhon:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;Dinêyes di l' uzeu&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;Mete en alaedje l' espiraedje des contes uzeu&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;Li conte espire li (AAAA-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;Bloker l' conte di l' uzeu&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;Informåcion do conte&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;L' uzeu candja si scret pol dierin côp li:&quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;Mete en alaedje l' espiraedje des screts&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;Djoûs dvant d' poleur candjî:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;Djoûs dvant dveur candjî:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;Djoûs d' adviertixhmint divant d' diveur candjî:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;Djoûs dvant ki l' conte soeye djoké:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;Informåcion sol sicret&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;Tchoezixhoz les groupes ki l' uzeu ndè serè mimbe:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;Dinêyes do groupe&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;Tchoezixhoz les uzeus k' iront dins ç' groupe chal:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;Uzeus do groupe&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;Candjî groupes / uzeus&quot;
++
++#: ../userdrake:1159
++#, fuzzy, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;Dj' aroke so ene sacwè&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;Clôre&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Copyright © %s pa Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;Manaedjmint des uzeus&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Pablo Saratxaga &lt;pablo@mandriva.com&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;Li tchamp do no est vude, i vs fåt dner on no s' i vs plait&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;&quot;
++&quot;Li no n' pout aveur ki des ptitès latenès letes, des chifes, li loyeure («-») &quot;
++&quot;et li caractere sorlignî («_»).&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;Li no est pår trop long&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;Aroke&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;aroke nén cnoxhowe&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;Åk n' a nén stî tot askepiant «%s»: %s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;Oteurs: &quot;
+
+<a id="userdrake2tags1133pozh_CNpo">Added: userdrake2/tags/1.13.3/po/zh_CN.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/zh_CN.po (rev 0)
++++ userdrake2/tags/1.13.3/po/zh_CN.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,771 @@
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/zh_CN.php3
++#
++# Chinese messages for userdrake
++# Copyright (C) 2000 Free Software Foundation, Inc.
++# Danny Zeng &lt;danny@zeng.com.cn&gt;, 2000
++# Shiyu Tang &lt;shiyutang@netscape.net&gt;, 2003
++# Funda Wang &lt;fundawang@linux.net.cn&gt;, 2003
++#
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: userdrake2\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2004-01-17 18:50+0800\n&quot;
++&quot;Last-Translator: Funda Wang &lt;fundawang@linux.net.cn&gt;\n&quot;
++&quot;Language-Team: Chinese &lt;zh@li.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;Plural-Forms: nplurals=1; plural=0;\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;读取“%s”出错:%s&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;创建“%s”出错:%s&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;删除“%s”出错:%s&quot;
++
++#: ../USER/USER.xs:490
++#, fuzzy, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;创建邮件持出错。\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;创建邮件持出错。\n&quot;
++
++#: ../USER/USER.xs:582
++#, fuzzy, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;创建邮件持出错。\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;未知错误&quot;
++
++#: ../USER/USER.xs:685
++#, fuzzy
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;创建邮件持出错。\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;删除邮件池出错。\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;正在装入用户和组... 请稍候&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageia 用户管理工具&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/操作(_A)&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/编辑(_E)&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/删除(_D)&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/选项(_O)&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/过滤系统用户(_F)&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/文件(_F)&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/刷新(_R)&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/退出(_Q)&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/添加用户(_A)&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/添加组(_G)&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/帮助(_H)&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/报告错误(_R)&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/关于(_A)...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;搜索:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;应用过滤器&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;用户&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;组&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;用户和组&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;用户名&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;用户 ID&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;主要的组&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;全名&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;登录 Shell&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;主目录&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;状态&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;组名&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;组 ID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;组成员&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;添加用户&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;向系统中添加一个用户&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;添加组&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;向系统中添加一个组&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;编辑&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;编辑所选的行&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;删除&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;删除所选的行&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;刷新&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;刷新列表&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;已锁定&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;已到期&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;单击图标进行更改&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;创建新用户&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;创建主目录&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;用户主目录: &quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;为该用户创建一个私有组&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;手动指定用户 ID&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;用户已经存在,请选择其他用户名&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;密码不匹配&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;这个密码太简单了。\n&quot;
++&quot;好的密码应该大于 6 个字符&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;用户的 UID 小于 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;不推荐创建一个 UID 小于 500 的用户。\n&quot;
++&quot;您确定您要这么做吗?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;将 %s 添加到“users”组&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;创建新组: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;添加用户: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;迁移向导&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;您是否想要运行迁移向导将 Windows 文档和设置导入到您的 Mageia 发行版&quot;
++&quot;中?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;取消&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;确定&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID: &quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;选择组&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;添加到已有组&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;添加到“users”组&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;已经存在同名组。您想要怎么做?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;创建新组&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;手动指定组 ID&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;组已经存在,请使用其他组名&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot;组的 GID 小于 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;不推荐创建一个 GID 小于 500 的组。\n&quot;
++&quot;您确定您要这么做吗?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;添加组: %s&quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID: &quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;删除文件吗?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;删除用户 %s\n&quot;
++&quot; 同时执行下列操作\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;删除主目录: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;删除邮箱: /var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;删除用户: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;您真的想要删除组 %s 吗?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s 是用户 %s 的主要组\n&quot;
++&quot;请先删除这个用户&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;删除组: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;全名:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;登录名:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;密码:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;确认密码:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;登录 Shell:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;组名:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;请为这个用户至少选择一个组&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;请指定账户过期的\n&quot;
++&quot;年月日&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;请填满密码时效的所有域\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;您不能从用户“%s”的主要组中删除该用户&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;主目录:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;用户数据&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;启用账户过期&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;账户过期到 (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;锁定用户账户&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;账户信息&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;用户最后一次修改密码的时间: &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;启用密码过期&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;允许修改前的天数:&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;必须修改前的天数:&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;更改前警告的天数:&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;账户不被激活前的天数:&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;密码信息&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;选择该用户将属于哪些组:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;组数据&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;选择要加入这个组的用户:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;组用户&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;编辑组/用户&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;发生了一个错误:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;关闭&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;版权 (C) %s Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;用户管理&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;Funda Wang &lt;fundawang@gmail.com&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;名字栏是空的,请提供一个名字&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;名字只能小写的拉丁字母、数字、“-”和“_”&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;名字太长了&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;错误&quot;
++
++#, fuzzy
++#~ msgid &quot;Unknown error&quot;
++#~ msgstr &quot;未知错误&quot;
++
++#, fuzzy
++#~ msgid &quot;Error creating %s: %s.\n&quot;
++#~ msgstr &quot;创建“%s”出错:%s&quot;
++
++#~ msgid &quot;Authors: &quot;
++#~ msgstr &quot;作者: &quot;
++
++#~ msgid &quot;Choice&quot;
++#~ msgstr &quot;选择&quot;
++
++#~ msgid &quot;Yes&quot;
++#~ msgstr &quot;是&quot;
++
++#~ msgid &quot;No&quot;
++#~ msgstr &quot;否&quot;
++
++#~ msgid &quot;Delete files or not&quot;
++#~ msgstr &quot;是否删除文件&quot;
+
+<a id="userdrake2tags1133pozh_TWpo">Added: userdrake2/tags/1.13.3/po/zh_TW.po</a>
+===================================================================
+--- userdrake2/tags/1.13.3/po/zh_TW.po (rev 0)
++++ userdrake2/tags/1.13.3/po/zh_TW.po 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,756 @@
++# translation of zh_TW.po to Chinese Traditional
++# translation of userdrake-zh_TW.po to Chinese Traditional
++#
++# Latest versions of po files are at http://www.mandrivalinux.org/l10n/zh_TW.php3
++#
++# userdrake message in Traditional Chinese
++# Copyright (C) 2000, 2004 Free Software Foundation, Inc.
++# Geoffrey Lee &lt;snailtalk@linux-mandrake.com&gt; 2001
++# Kenduest Lee &lt;kenduest@i18n.linux.org.tw&gt; 2002
++# Geoffrey Lee &lt;snailtalk@linux-mandrake.com&gt; 2002
++# Danny Zeng &lt;danny@zeng.com.cn&gt;, 2000.
++# Hilbert &lt;freehil@yahoo.com&gt;, 2004.
++# Hilbert &lt;h@mandrake.org&gt;, 2004.
++# Shiva Huang &lt;shivahuang@gmail.com&gt;, 2005.
++msgid &quot;&quot;
++msgstr &quot;&quot;
++&quot;Project-Id-Version: zh_TW\n&quot;
++&quot;Report-Msgid-Bugs-To: \n&quot;
++&quot;POT-Creation-Date: 2010-02-02 03:03+0100\n&quot;
++&quot;PO-Revision-Date: 2007-09-24 23:35+0800\n&quot;
++&quot;Last-Translator: You-Cheng Hsieh &lt;yochenhsieh@gmail.com&gt;\n&quot;
++&quot;Language-Team: Chinese Traditional &lt;zh@li.org&gt;\n&quot;
++&quot;MIME-Version: 1.0\n&quot;
++&quot;Content-Type: text/plain; charset=utf-8\n&quot;
++&quot;Content-Transfer-Encoding: 8bit\n&quot;
++&quot;X-Generator: KBabel 1.0.2\n&quot;
++&quot;X-Poedit-Language: Chinese\n&quot;
++&quot;X-Poedit-Country: TAIWAN\n&quot;
++&quot;Plural-Forms: nplurals=1; plural=0;\n&quot;
++
++#: ../USER/USER.xs:86
++#, c-format
++msgid &quot;Error reading `%s': %s&quot;
++msgstr &quot;讀取 `%s': %s 時發生錯誤&quot;
++
++#: ../USER/USER.xs:93 ../USER/USER.xs:526
++#, c-format
++msgid &quot;Error creating `%s': %s&quot;
++msgstr &quot;建立 `%s': %s 時發生錯誤&quot;
++
++#: ../USER/USER.xs:205 ../USER/USER.xs:234 ../USER/USER.xs:250
++#, c-format
++msgid &quot;Error removing `%s': %s&quot;
++msgstr &quot;移除 `%s': %s 時發生錯誤&quot;
++
++#: ../USER/USER.xs:490
++#, c-format
++msgid &quot;Account creation failed: '%s'.\n&quot;
++msgstr &quot;帳號建立失敗:'%s'。\n&quot;
++
++#: ../USER/USER.xs:503
++msgid &quot;Cannot get Uid number&quot;
++msgstr &quot;無法取得 UID 編號&quot;
++
++#: ../USER/USER.xs:515
++msgid &quot;Cannot retrieve value&quot;
++msgstr &quot;無法取得數值&quot;
++
++#: ../USER/USER.xs:532
++msgid &quot;Error creating mail spool.\n&quot;
++msgstr &quot;建立郵件夾時發生錯誤。\n&quot;
++
++#: ../USER/USER.xs:582
++#, c-format
++msgid &quot;User could not be modified: '%s'.\n&quot;
++msgstr &quot;使用者無法修改:'%s'。\n&quot;
++
++#: ../USER/USER.xs:592
++#, c-format
++msgid &quot;User Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;使用者無法刪除:'%s'。\n&quot;
++
++#: ../USER/USER.xs:618
++#, c-format
++msgid &quot;Failed to set password: '%s'.\n&quot;
++msgstr &quot;密碼設定失敗︰'%s'。\n&quot;
++
++#: ../USER/USER.xs:618
++msgid &quot;unknown error&quot;
++msgstr &quot;未知的錯誤&quot;
++
++#: ../USER/USER.xs:685
++msgid &quot;Group creation failed.\n&quot;
++msgstr &quot;群組建立失敗。\n&quot;
++
++#: ../USER/USER.xs:695
++#, c-format
++msgid &quot;Group could not be modified: '%s'.\n&quot;
++msgstr &quot;群組無法修改:'%s'。\n&quot;
++
++#: ../USER/USER.xs:705
++#, c-format
++msgid &quot;Group could not be deleted: '%s'.\n&quot;
++msgstr &quot;群組無法刪除:'%s'。\n&quot;
++
++#: ../USER/USER.xs:863
++msgid &quot;No home directory for the user.\n&quot;
++msgstr &quot;使用者沒有家目錄。\n&quot;
++
++#: ../USER/USER.xs:869 ../USER/USER.xs:871
++#, c-format
++msgid &quot;Home Directory Could Not be deleted: '%s'.\n&quot;
++msgstr &quot;家目錄無法刪除:'%s'。\n&quot;
++
++#: ../USER/USER.xs:881
++msgid &quot;Error deleting mail spool.\n&quot;
++msgstr &quot;刪除郵件夾時發生錯誤。\n&quot;
++
++#: ../userdrake:59 ../userdrake:1275
++#, c-format
++msgid &quot;Userdrake&quot;
++msgstr &quot;Userdrake&quot;
++
++#: ../userdrake:64
++#, c-format
++msgid &quot;Loading Users and Groups... Please wait&quot;
++msgstr &quot;正在載入使用者與群組... 請稍候&quot;
++
++#: ../userdrake:83
++#, c-format
++msgid &quot;Mageia Users Management Tool&quot;
++msgstr &quot;Mageia 使用者管理工具&quot;
++
++#: ../userdrake:96
++#, c-format
++msgid &quot;/_Install guest account&quot;
++msgstr &quot;/安裝訪客帳號 (_I)&quot;
++
++#: ../userdrake:97
++#, c-format
++msgid &quot;/_Uninstall guest account&quot;
++msgstr &quot;/移除訪客帳號 (_U)&quot;
++
++#: ../userdrake:101 ../userdrake:102 ../userdrake:103 ../userdrake:114
++#: ../userdrake:115 ../userdrake:116
++#, c-format
++msgid &quot;/_Actions&quot;
++msgstr &quot;/動作 (_A)&quot;
++
++#: ../userdrake:101
++#, c-format
++msgid &quot;/_Edit&quot;
++msgstr &quot;/編輯 (_E)&quot;
++
++#: ../userdrake:102
++#, c-format
++msgid &quot;/_Delete&quot;
++msgstr &quot;/刪除 (_D)&quot;
++
++#: ../userdrake:104 ../userdrake:120
++#, c-format
++msgid &quot;/_Options&quot;
++msgstr &quot;/選項 (_O)&quot;
++
++#: ../userdrake:104
++#, c-format
++msgid &quot;/_Filter system users&quot;
++msgstr &quot;/過濾系統使用者 (_F)&quot;
++
++#: ../userdrake:109 ../userdrake:110 ../userdrake:113
++#, c-format
++msgid &quot;/_File&quot;
++msgstr &quot;/檔案 (_F)&quot;
++
++#: ../userdrake:110
++#, c-format
++msgid &quot;/_Refresh&quot;
++msgstr &quot;/更新 (_R)&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;/_Quit&quot;
++msgstr &quot;/離開 (_Q)&quot;
++
++#: ../userdrake:113
++#, c-format
++msgid &quot;&lt;control&gt;Q&quot;
++msgstr &quot;&lt;control&gt;Q&quot;
++
++#: ../userdrake:115
++#, c-format
++msgid &quot;/_Add User&quot;
++msgstr &quot;/新增使用者 (_A)&quot;
++
++#: ../userdrake:116
++#, c-format
++msgid &quot;/Add _Group&quot;
++msgstr &quot;/新增群組 (_G)&quot;
++
++#: ../userdrake:125 ../userdrake:126 ../userdrake:127 ../userdrake:130
++#, c-format
++msgid &quot;/_Help&quot;
++msgstr &quot;/輔助說明 (_H)&quot;
++
++#: ../userdrake:127
++#, c-format
++msgid &quot;/_Report Bug&quot;
++msgstr &quot;/回報臭蟲 (_R)&quot;
++
++#: ../userdrake:130
++#, c-format
++msgid &quot;/_About...&quot;
++msgstr &quot;/關於 (_A)...&quot;
++
++#: ../userdrake:148
++#, c-format
++msgid &quot;Search:&quot;
++msgstr &quot;搜尋:&quot;
++
++#: ../userdrake:154
++#, c-format
++msgid &quot;Apply filter&quot;
++msgstr &quot;套用過濾條件&quot;
++
++#: ../userdrake:158
++#, c-format
++msgid &quot;Users&quot;
++msgstr &quot;使用者&quot;
++
++#: ../userdrake:162 ../userdrake:1041
++#, c-format
++msgid &quot;Groups&quot;
++msgstr &quot;群組&quot;
++
++#. -PO: do not translate, this is already translated in mcc
++#: ../userdrake:168
++#, c-format
++msgid &quot;Users and groups&quot;
++msgstr &quot;使用者與群組&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User Name&quot;
++msgstr &quot;使用者名稱&quot;
++
++#: ../userdrake:186
++#, c-format
++msgid &quot;User ID&quot;
++msgstr &quot;使用者 ID&quot;
++
++#: ../userdrake:186 ../userdrake:1038
++#, c-format
++msgid &quot;Primary Group&quot;
++msgstr &quot;主群組&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Full Name&quot;
++msgstr &quot;全名&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Login Shell&quot;
++msgstr &quot;預設的 Shell&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Home Directory&quot;
++msgstr &quot;家目錄&quot;
++
++#: ../userdrake:187
++#, c-format
++msgid &quot;Status&quot;
++msgstr &quot;狀態&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Name&quot;
++msgstr &quot;群組名稱&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group ID&quot;
++msgstr &quot;群組 ID&quot;
++
++#: ../userdrake:194
++#, c-format
++msgid &quot;Group Members&quot;
++msgstr &quot;群組成員&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add User&quot;
++msgstr &quot;新增使用者&quot;
++
++#: ../userdrake:196
++#, c-format
++msgid &quot;Add a user to the system&quot;
++msgstr &quot;新增一個使用者到系統&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add Group&quot;
++msgstr &quot;新增群組&quot;
++
++#: ../userdrake:197
++#, c-format
++msgid &quot;Add a group to the system&quot;
++msgstr &quot;新增一個群組到系統&quot;
++
++#: ../userdrake:198 ../userdrake:739
++#, c-format
++msgid &quot;Edit&quot;
++msgstr &quot;編輯&quot;
++
++#: ../userdrake:198
++#, c-format
++msgid &quot;Edit selected row&quot;
++msgstr &quot;編輯選擇的行&quot;
++
++#: ../userdrake:199 ../userdrake:674 ../userdrake:707 ../userdrake:739
++#, c-format
++msgid &quot;Delete&quot;
++msgstr &quot;刪除&quot;
++
++#: ../userdrake:199
++#, c-format
++msgid &quot;Delete selected row&quot;
++msgstr &quot;刪除選擇的行&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh&quot;
++msgstr &quot;更新&quot;
++
++#: ../userdrake:200
++#, c-format
++msgid &quot;Refresh the list&quot;
++msgstr &quot;更新列表&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Locked&quot;
++msgstr &quot;被鎖住了&quot;
++
++#: ../userdrake:263
++#, c-format
++msgid &quot;Expired&quot;
++msgstr &quot;過期的&quot;
++
++#: ../userdrake:339
++#, c-format
++msgid &quot;Click on the icon to change it&quot;
++msgstr &quot;點選圖示以改變它&quot;
++
++#: ../userdrake:385
++#, c-format
++msgid &quot;Create New User&quot;
++msgstr &quot;建立新的使用者&quot;
++
++#: ../userdrake:391
++#, c-format
++msgid &quot;Create Home Directory&quot;
++msgstr &quot;建立家目錄&quot;
++
++#: ../userdrake:393
++#, c-format
++msgid &quot;Home Directory: &quot;
++msgstr &quot;家目錄:&quot;
++
++#: ../userdrake:396
++#, c-format
++msgid &quot;Create a private group for the user&quot;
++msgstr &quot;建立一個私有的群組給使用者&quot;
++
++#: ../userdrake:397
++#, c-format
++msgid &quot;Specify user ID manually&quot;
++msgstr &quot;手動指定使用者 ID&quot;
++
++#: ../userdrake:414
++#, c-format
++msgid &quot;User already exists, please choose another User Name&quot;
++msgstr &quot;這個使用者已經存在於系統中,請另外選取一個使用者名稱&quot;
++
++#: ../userdrake:419 ../userdrake:860
++#, c-format
++msgid &quot;Password Mismatch&quot;
++msgstr &quot;密碼錯誤&quot;
++
++#: ../userdrake:422 ../userdrake:863
++#, c-format
++msgid &quot;&quot;
++&quot;This password is too simple. \n&quot;
++&quot; Good passwords should be &gt; 6 characters&quot;
++msgstr &quot;&quot;
++&quot;這個密碼太簡單。 \n&quot;
++&quot; 好的密碼應該至少有 6 個字元&quot;
++
++#: ../userdrake:434
++#, c-format
++msgid &quot;User Uid is &lt; 500&quot;
++msgstr &quot;使用者 Uid &lt; 500&quot;
++
++#: ../userdrake:435
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a user with a UID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;我們不建議您建立一個 UID 小於 500 的使用者。\n&quot;
++&quot; 您確定要這樣做嗎?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:450
++#, c-format
++msgid &quot;Putting %s to 'users' group&quot;
++msgstr &quot;放置 %s 到 'users' 群組&quot;
++
++#: ../userdrake:457
++#, c-format
++msgid &quot;Creating new group: %s&quot;
++msgstr &quot;建立新的群組: %s&quot;
++
++#: ../userdrake:466
++#, c-format
++msgid &quot;Adding user: %s&quot;
++msgstr &quot;新增使用者: %s&quot;
++
++#: ../userdrake:478
++#, c-format
++msgid &quot;Migration wizard&quot;
++msgstr &quot;檔案及設定轉移精靈&quot;
++
++#: ../userdrake:479
++#, c-format
++msgid &quot;&quot;
++&quot;Do you want to run the migration wizard in order to import Windows documents &quot;
++&quot;and settings in your Mageia distribution?&quot;
++msgstr &quot;&quot;
++&quot;您想要執行精靈來轉移 Windows 中的檔案及設定到您的 Mageia 發行版嗎?&quot;
++
++#: ../userdrake:484 ../userdrake:528 ../userdrake:587 ../userdrake:674
++#: ../userdrake:707 ../userdrake:1166
++#, c-format
++msgid &quot;Cancel&quot;
++msgstr &quot;取消&quot;
++
++#: ../userdrake:484 ../userdrake:521 ../userdrake:587 ../userdrake:1166
++#: ../userdrake:1317
++#, c-format
++msgid &quot;Ok&quot;
++msgstr &quot;確定&quot;
++
++#: ../userdrake:497
++#, c-format
++msgid &quot;UID: &quot;
++msgstr &quot;UID:&quot;
++
++#: ../userdrake:510
++#, c-format
++msgid &quot;Choose group&quot;
++msgstr &quot;選取群組&quot;
++
++#: ../userdrake:512 ../userdrake:513
++#, c-format
++msgid &quot;Add to the existing group&quot;
++msgstr &quot;新增到已經存在的群組&quot;
++
++#: ../userdrake:514
++#, c-format
++msgid &quot;Add to the 'users' group&quot;
++msgstr &quot;新增到 'users' 群組&quot;
++
++#: ../userdrake:516
++#, c-format
++msgid &quot;A group with this name already exists. What would you like to do?&quot;
++msgstr &quot;一個同名的群組已經存在,您要怎麼處理呢?&quot;
++
++#: ../userdrake:546
++#, c-format
++msgid &quot;Create New Group&quot;
++msgstr &quot;建立新的群組&quot;
++
++#: ../userdrake:551
++#, c-format
++msgid &quot;Specify group ID manually&quot;
++msgstr &quot;手動指定群組 ID&quot;
++
++#: ../userdrake:567
++#, c-format
++msgid &quot;Group already exists, please choose another Group Name&quot;
++msgstr &quot;群組已經存在,請另外選擇一個群組名稱&quot;
++
++#: ../userdrake:573
++#, c-format
++msgid &quot; Group Gid is &lt; 500&quot;
++msgstr &quot; 群組 Gid &lt; 500&quot;
++
++#: ../userdrake:574
++#, c-format
++msgid &quot;&quot;
++&quot;Creating a group with a GID less than 500 is not recommended.\n&quot;
++&quot; Are you sure you want to do this?\n&quot;
++&quot;\n&quot;
++msgstr &quot;&quot;
++&quot;我們不建議您建立一個 GID 小於 500 的群組。\n&quot;
++&quot; 您確定要這樣做嗎?\n&quot;
++&quot;\n&quot;
++
++#: ../userdrake:581
++#, c-format
++msgid &quot;Adding group: %s &quot;
++msgstr &quot;正在新增群組: %s &quot;
++
++#: ../userdrake:591
++#, c-format
++msgid &quot;GID: &quot;
++msgstr &quot;GID:&quot;
++
++#: ../userdrake:636
++#, c-format
++msgid &quot;Delete files or not?&quot;
++msgstr &quot;是否要刪除檔案?&quot;
++
++#: ../userdrake:639
++#, c-format
++msgid &quot;&quot;
++&quot;Deleting user %s\n&quot;
++&quot; Also perform the following actions\n&quot;
++msgstr &quot;&quot;
++&quot;正在刪除使用者 %s\n&quot;
++&quot; 也執行下列動作\n&quot;
++
++#: ../userdrake:641
++#, c-format
++msgid &quot;Delete Home Directory: %s&quot;
++msgstr &quot;刪除家目錄: %s&quot;
++
++#: ../userdrake:642
++#, c-format
++msgid &quot;Delete Mailbox: /var/spool/mail/%s&quot;
++msgstr &quot;刪除郵件匝:/var/spool/mail/%s&quot;
++
++#: ../userdrake:651
++#, c-format
++msgid &quot;Removing user: %s&quot;
++msgstr &quot;移除使用者: %s&quot;
++
++#: ../userdrake:684
++#, c-format
++msgid &quot;Do you really want to delete the group %s?&quot;
++msgstr &quot;您真的要刪除群組 %s 嗎?&quot;
++
++#: ../userdrake:697
++#, c-format
++msgid &quot;&quot;
++&quot;%s is a primary group for user %s\n&quot;
++&quot; Remove the user first&quot;
++msgstr &quot;&quot;
++&quot;%s 是使用者 %s 的主群組\n&quot;
++&quot; 請先移除使用者&quot;
++
++#: ../userdrake:702
++#, c-format
++msgid &quot;Removing group: %s&quot;
++msgstr &quot;移除群組: %s&quot;
++
++#: ../userdrake:798
++#, c-format
++msgid &quot;Full Name:&quot;
++msgstr &quot;全名:&quot;
++
++#: ../userdrake:800
++#, c-format
++msgid &quot;Login:&quot;
++msgstr &quot;登入:&quot;
++
++#: ../userdrake:802
++#, c-format
++msgid &quot;Password:&quot;
++msgstr &quot;密碼:&quot;
++
++#: ../userdrake:804
++#, c-format
++msgid &quot;Confirm Password:&quot;
++msgstr &quot;確認密碼:&quot;
++
++#: ../userdrake:806
++#, c-format
++msgid &quot;Login Shell:&quot;
++msgstr &quot;預設的 Shell:&quot;
++
++#: ../userdrake:820
++#, c-format
++msgid &quot;Group Name:&quot;
++msgstr &quot;群組名稱:&quot;
++
++#: ../userdrake:894
++#, c-format
++msgid &quot;Please select at least one group for the user&quot;
++msgstr &quot;請選擇至少一個群組給此使用者&quot;
++
++#: ../userdrake:904
++#, c-format
++msgid &quot;&quot;
++&quot;Please specify Year, Month and Day \n&quot;
++&quot; for Account Expiration &quot;
++msgstr &quot;&quot;
++&quot;請指定年、月與日 \n&quot;
++&quot; 為帳號的使用期限&quot;
++
++#: ../userdrake:914
++#, c-format
++msgid &quot;Please fill up all fields in password aging\n&quot;
++msgstr &quot;請再次填入全部密碼欄位\n&quot;
++
++#: ../userdrake:965
++#, c-format
++msgid &quot;You cannot remove user '%s' from their primary group&quot;
++msgstr &quot;您不能從使用者 '%s' 的主群組移除他&quot;
++
++#: ../userdrake:986
++#, c-format
++msgid &quot;Home:&quot;
++msgstr &quot;家目錄:&quot;
++
++#: ../userdrake:988
++#, c-format
++msgid &quot;User Data&quot;
++msgstr &quot;使用者資料&quot;
++
++#: ../userdrake:992
++#, c-format
++msgid &quot;Enable account expiration&quot;
++msgstr &quot;啟用帳號使用期限&quot;
++
++#: ../userdrake:994
++#, c-format
++msgid &quot;Account expires (YYYY-MM-DD):&quot;
++msgstr &quot;帳號可使用至 (YYYY-MM-DD):&quot;
++
++#: ../userdrake:1002
++#, c-format
++msgid &quot;Lock User Account&quot;
++msgstr &quot;鎖住使用者帳號&quot;
++
++#: ../userdrake:1005
++#, c-format
++msgid &quot;Account Info&quot;
++msgstr &quot;帳號資訊&quot;
++
++#: ../userdrake:1010
++#, c-format
++msgid &quot;User last changed password on: &quot;
++msgstr &quot;使用者最後改變密碼於 : &quot;
++
++#: ../userdrake:1017
++#, c-format
++msgid &quot;Enable Password Expiration&quot;
++msgstr &quot;啟用密碼使用期限&quot;
++
++#: ../userdrake:1022
++#, c-format
++msgid &quot;Days before change allowed:&quot;
++msgstr &quot;允許改變之前的日數 :&quot;
++
++#: ../userdrake:1024
++#, c-format
++msgid &quot;Days before change required:&quot;
++msgstr &quot;需要改變之前的日數 :&quot;
++
++#: ../userdrake:1026
++#, c-format
++msgid &quot;Days warning before change:&quot;
++msgstr &quot;改變之前的日數警告 :&quot;
++
++#: ../userdrake:1028
++#, c-format
++msgid &quot;Days before account inactive:&quot;
++msgstr &quot;帳號凍結之前的日數 :&quot;
++
++#: ../userdrake:1031
++#, c-format
++msgid &quot;Password Info&quot;
++msgstr &quot;密碼資訊&quot;
++
++#: ../userdrake:1035
++#, c-format
++msgid &quot;Select the groups that the user will be a member of:&quot;
++msgstr &quot;選擇使用者要加入的群組:&quot;
++
++#: ../userdrake:1102
++#, c-format
++msgid &quot;Group Data&quot;
++msgstr &quot;群組數據&quot;
++
++#: ../userdrake:1105
++#, c-format
++msgid &quot;Select the users to join this group:&quot;
++msgstr &quot;選擇要加入此群組的使用者:&quot;
++
++#: ../userdrake:1107
++#, c-format
++msgid &quot;Group Users&quot;
++msgstr &quot;群組使用者&quot;
++
++#: ../userdrake:1127
++#, c-format
++msgid &quot;Edit Groups / Users&quot;
++msgstr &quot;編輯群組/使用者&quot;
++
++#: ../userdrake:1159
++#, c-format
++msgid &quot;An error occurred:&quot;
++msgstr &quot;發生一個錯誤:&quot;
++
++#: ../userdrake:1267
++#, c-format
++msgid &quot;Close&quot;
++msgstr &quot;關閉&quot;
++
++#: ../userdrake:1277
++#, c-format
++msgid &quot;Copyright (C) %s by Mandriva&quot;
++msgstr &quot;Copyright (C) %s by Mandriva&quot;
++
++#: ../userdrake:1280
++#, c-format
++msgid &quot;Users Management&quot;
++msgstr &quot;使用者管理&quot;
++
++#: ../userdrake:1282
++#, c-format
++msgid &quot;Mageia&quot;
++msgstr &quot;Mageia&quot;
++
++#. -PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++#: ../userdrake:1288
++#, c-format
++msgid &quot;_: Translator(s) name(s) &amp; email(s)\n&quot;
++msgstr &quot;&quot;
++&quot;Shiva Huang &lt;shivahuang@gmail.com&gt;\n&quot;
++&quot;You-Cheng Hsieh &lt;yochenhsieh@xuite.net&gt;\n&quot;
++
++#: ../userdrake:1295
++#, c-format
++msgid &quot;Name field is empty please provide a name&quot;
++msgstr &quot;名稱欄位是空白的,請提供一個名稱&quot;
++
++#: ../userdrake:1297
++#, c-format
++msgid &quot;&quot;
++&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;
++msgstr &quot;名稱中只能包含小寫的拉丁字母、數字、`-' 與 `_'&quot;
++
++#: ../userdrake:1300
++#, c-format
++msgid &quot;Name is too long&quot;
++msgstr &quot;名稱太長&quot;
++
++#: ../userdrake:1313
++#, c-format
++msgid &quot;Error&quot;
++msgstr &quot;錯誤&quot;
+
+<a id="userdrake2tags1133todo">Added: userdrake2/tags/1.13.3/todo</a>
+===================================================================
+--- userdrake2/tags/1.13.3/todo (rev 0)
++++ userdrake2/tags/1.13.3/todo 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,92 @@
++Features:
++- dynamic processing of filters (shrink list as typing)
++- Bind checkboxes (users , groups) to space key. (done)
++- Ldap server configuration
++- change User/Group Gid
++- tell us that the account is locked or expired ? (done)
++
++Bugs:
++- if primary group empty, gray ok button (won't fix)
++- check numeric/positive values in account and password expiration. (done)
++
++---------------------------------------------------------------------------
++For Interface team:
++Barre de menus
++ - Ic\xF4nes \xE0 enlever dans les menus. C'est interdit dans nos
++sp\xE9cifications. C'est le texte qui est important. L'ic\xF4ne ne fait que
++distraire l'utilisateur
++
++Barre d'outils :
++ - Bouton &quot;Help&quot; \xE0 supprimer. Il est redondant avec le menu &quot;Help&quot;.
++ - Bouton &quot;Refresh&quot; \xE0 supprimer. Les listes doivent \xEAtre dynamiques. Idem
++pour le File -&gt; Refresh
++
++Boutons :
++ - Ic\xF4nes \xE0 supprimer. C'est interdit dans nos sp\xE9cifications. C'est le
++texte qui est important. L'ic\xF4ne ne fait que distraire l'utilisateur
++
++Pop-up apparaissant lors d'un clic sur &quot;Add User&quot;
++ - Login shell : ne pas utliser une combo box \xE9ditable mais un combo box
++non \xE9ditable
++ - Home directory : \xE0 griser lorsque &quot;Create home directory&quot; n'est pas
++coch\xE9
++ - Create home directory : remplacer le h de home par un H ou supprimer la
++majuscule \xE0 Directory
++ - UID : \xE0 placer sous le S de Specify user ID manually
++
++Pop-up apparaissant lors d'un clic sur &quot;Delete&quot;
++ - demander \xE0 l'utilisateur s'il d\xE9sirer r\xE9ellement supprimer
++l'utilisateur. Ne pas supposer que l'utilisateur n'a pas fait d'erreur en
++s\xE9lectionnant le compte \xE0 supprimer. Rajouter une case \xE0 cocher dans la
++bo\xEEte de dialogue pour s'assurer que l'utilisateur d\xE9sire \xE9galement
++effacer le Home du compte supprim\xE9. Cette case \xE0 cocher doit \xEAtre d\xE9coch\xE9e
++par d\xE9faut
++ - ne pas faire supprimer \xE0 la main l'utilisateur quand on cherche \xE0
++supprimer un groupe et que l'utilisateur existe toujours. Demander si on
++veut \xE9galement supprimer l'utilisateur.
++
++Champ pr\xE9c\xE9dent le bouton &quot;Apply filter&quot;
++ - \xE0 aligner sur la gauche
++
++Pop-up apparaissant lors d'un clic sur &quot;Add Group&quot;
++ - GID : \xE0 placer sous le S de Specify user ID manually
++
++Propri\xE9t\xE9s de l'utilisateur :
++ - onglet &quot;User Data&quot;
++ * &quot;Login shell&quot; : ne pas utiliser de combox \xE9ditable mais une combo box
++non \xE9ditable
++ - onglet &quot;Account Info&quot;
++ * Remplacer &quot;YYYY-MM-DD&quot; par &quot;Year Month Day&quot;. C'est plus
++compr\xE9hensible pour l'utilisateur
++ * Expliquer ce que veut signifie &quot;Lock User Accounr&quot;
++ - onglet &quot;Password Info&quot;
++ * Remplacer les champs par des combo box \xE9ditables. Utiliser des
++&quot;Never&quot; au lieu de &quot;99999&quot;. Ceci n'est pas compr\xE9hensible par
++l'utilisateur
++ - onglet &quot;Groups&quot;
++ * cases \xE0 cocher. Utiliser les cases \xE0 cocher de GTK et non celles de
++Mandrake.
++ * menu d\xE9roulant &quot;Primary group&quot; : ne pas utiliser une combo box
++\xE9ditable mais une non \xE9ditable
++
++Options -&gt; Filter system users -&gt; select a system user -&gt; Options -&gt; Filter
++system users -&gt; Actions -&gt; Edit or Delete = Crash
++
++Select a user -&gt; Options -&gt; Filter system users = perte de l'utilisateur
++s\xE9lectionn\xE9
++
++Menu Actions -&gt; Edit : plantage si aucun utilisateur n'est s\xE9lectionn\xE9
++
++Tri sur header non autoris\xE9. C'est dommage.
++
++Help -&gt; Report bug = installation d'un paquetage. C'est interdit. Tous les
++paquetages n\xE9cessaires au bon fonctionnement de l'application doivent \xEAtre
++install\xE9s par d\xE9faut
++
++Help -&gt; Report bug = lance KDE Help Center. Pourquoi ?
++
++
++
++Toutes pop-up ou actions : ajouter des explications. Ne pas supposer que
++l'utilisateur sait ce qu'il doit faire.
++----------------------------------------------------------------------------
+\ No newline at end of file
+
+<a id="userdrake2tags1133userdrake">Added: userdrake2/tags/1.13.3/userdrake</a>
+===================================================================
+--- userdrake2/tags/1.13.3/userdrake (rev 0)
++++ userdrake2/tags/1.13.3/userdrake 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,1329 @@
++#!/usr/bin/perl
++################################################################################
++# #
++# #
++# Copyright (C) 2003-2009 Mandriva #
++# #
++# Daouda Lo #
++# Thierry Vignaud &lt;tvignaud@mandriva.com&gt; #
++# #
++# This program is free software; you can redistribute it and/or modify #
++# it under the terms of the GNU General Public License Version 2 as #
++# published by the Free Software Foundation. #
++# #
++# This program is distributed in the hope that it will be useful, #
++# but WITHOUT ANY WARRANTY; without even the implied warranty of #
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
++# GNU General Public License for more details. #
++# #
++# You should have received a copy of the GNU General Public License #
++# along with this program; if not, write to the Free Software #
++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #
++################################################################################
++
++use strict;
++use lib qw(/usr/lib/libDrakX);
++# i18n: IMPORTANT: to get correct namespace (userdrake instead of libDrakX)
++BEGIN { unshift @::textdomains, 'userdrake', 'libuser', 'drakconf' }
++use standalone;
++use transfugdrake;
++
++use common;
++use run_program;
++use any;
++use mygtk2 qw(gtknew); #- do not import gtkadd which conflicts with ugtk2 version
++use ugtk2 qw(:all);
++use interactive;
++use POSIX qw(mktime ceil);
++use USER;
++#Only for Debugging
++#use Devel::Peek;
++use Gtk2::Gdk::Keysyms;
++use utf8;
++use log;
++
++$ugtk2::wm_icon = &quot;userdrake&quot;;
++
++my $conffile = '/etc/sysconfig/userdrake';
++my $secfile = '/etc/sysconfig/msec';
++my $pixdir = '/usr/share/userdrake/pixmaps/';
++my @pix = ($pixdir . 'selected.png', $pixdir . 'unselected.png');
++
++my $in = interactive-&gt;vnew('su');
++
++my $us = {};
++$us-&gt;{VERSION} = '1.13.3';
++
++my $window_splash = Gtk2::Window-&gt;new('popup');
++$window_splash-&gt;signal_connect(delete_event =&gt; \&amp;QuitGlobal);
++$window_splash-&gt;set_title(N(&quot;Userdrake&quot;) . $us-&gt;{VERSION});
++$window_splash-&gt;set_position('center_always');
++$window_splash-&gt;add(gtkadd(gtkset_shadow_type(Gtk2::Frame-&gt;new, 'etched_out'),
++ gtkpack(Gtk2::VBox-&gt;new(0, 0),
++ gtkcreate_img(&quot;$pixdir/userdrake.png&quot;),
++ Gtk2::Label-&gt;new(N(&quot;Loading Users and Groups... Please wait&quot;))
++ )
++ )
++ );
++$window_splash-&gt;show_all;
++gtkflush();
++
++#my $wait = $in-&gt;wait_message(N(&quot;Please wait&quot;), N(&quot;Loading User and Groups&quot;));
++#gtkflush();
++
++my $error = 0;
++my $GetValue = -65533;
++my $stringsearch = '';
++my %prefs = getVarsFromSh($conffile);
++my %sec = getVarsFromSh($secfile);
++my $sysfilter = text2bool($prefs{FILTER});
++
++sub HelpSystem() { run_program::raw({ detach =&gt; 1 }, 'drakhelp', '--id', 'userdrake') }
++
++$us-&gt;{wnd} = ugtk2-&gt;new(N(&quot;Mageia Users Management Tool&quot;) . &quot; &quot; . $us-&gt;{VERSION});
++$::main_window = $us-&gt;{wnd}{real_window};
++gtkset_size_request($us-&gt;{wnd}{rwindow}, 660, 460);
++$us-&gt;{wnd}{rwindow}-&gt;set_position('center') if !$::isEmbedded;
++$us-&gt;{wnd}{window}-&gt;signal_connect(delete_event =&gt; \&amp;QuitGlobal);
++my $utree_model = Gtk2::ListStore-&gt;new(&quot;Glib::String&quot;, &quot;Glib::Int&quot;, &quot;Glib::String&quot;,
++ &quot;Glib::String&quot;, &quot;Glib::String&quot;, &quot;Glib::String&quot;, &quot;Glib::String&quot;);
++my $gtree_model = Gtk2::ListStore-&gt;new(&quot;Glib::String&quot;, &quot;Glib::Int&quot;, &quot;Glib::String&quot;);
++my ($usertree, $grouptree);
++$usertree = CreateTree($utree_model); $grouptree = CreateTree($gtree_model);
++# slightly verbatimed from control-center
++
++my %xguest_labels = (
++ to_install =&gt; N(&quot;/_Install guest account&quot;),
++ installed =&gt; N(&quot;/_Uninstall guest account&quot;),
++);
++
++my %options = (
++ 'edit' =&gt; [ N(&quot;/_Actions&quot;), N(&quot;/_Edit&quot;) ],
++ 'delete' =&gt; [ N(&quot;/_Actions&quot;), N(&quot;/_Delete&quot;) ],
++ 'xguest' =&gt; [ N(&quot;/_Actions&quot;), $xguest_labels{installed} ],
++ 'filter' =&gt; [ N(&quot;/_Options&quot;), N(&quot;/_Filter system users&quot;) ]
++ );
++my %buttorcheck;
++my ($menu, $factory) = create_factory_menu(
++ $::isEmbedded ? $::Plug : $us-&gt;{wnd}{rwindow},
++ ([ N(&quot;/_File&quot;), undef, undef, undef, '&lt;Branch&gt;' ],
++ [ N(&quot;/_File&quot;) . N(&quot;/_Refresh&quot;), undef,
++ sub { Refresh($sysfilter, $stringsearch) },
++ undef, '&lt;Item&gt;' ],
++ [ N(&quot;/_File&quot;) . N(&quot;/_Quit&quot;), N(&quot;&lt;control&gt;Q&quot;), \&amp;QuitGlobal, undef, '&lt;Item&gt;' ],
++ [ N(&quot;/_Actions&quot;), undef, undef, undef, '&lt;Branch&gt;' ],
++ [ N(&quot;/_Actions&quot;) . N(&quot;/_Add User&quot;), undef, \&amp;AddUser, undef, '&lt;Item&gt;' ],
++ [ N(&quot;/_Actions&quot;) . N(&quot;/Add _Group&quot;), undef, \&amp;AddGroup, undef, '&lt;Item&gt;' ],
++ [ join('', @{$options{edit}}), undef, \&amp;Edit, undef, '&lt;Item&gt;' ],
++ [ join('', @{$options{delete}}), undef, \&amp;Delete, undef, '&lt;Item&gt;' ],
++ [ join('', @{$options{xguest}}), undef, \&amp;Xguest, undef, '&lt;Item&gt;' ],
++ [ N(&quot;/_Options&quot;), undef, undef, undef, '&lt;Branch&gt;' ],
++ [ join('', @{$options{filter}}), undef, sub {
++ $sysfilter = $buttorcheck{filter}-&gt;get_active;
++ Refresh($sysfilter, $stringsearch);
++ }, undef, '&lt;CheckItem&gt;' ],
++ [ N(&quot;/_Help&quot;), undef, undef, undef, '&lt;Branch&gt;' ],
++ [ N(&quot;/_Help&quot;) . N(&quot;/_Help&quot;), undef, sub { HelpSystem() }, undef, '&lt;Item&gt;' ],
++ [ N(&quot;/_Help&quot;) . N(&quot;/_Report Bug&quot;), undef,
++ sub { run_program::raw({ detach =&gt; 1 }, 'drakbug', '--report', 'userdrake') },
++ undef, '&lt;Item&gt;' ],
++ [ N(&quot;/_Help&quot;) . N(&quot;/_About...&quot;), undef, \&amp;About, undef, '&lt;Item&gt;' ]
++ )
++);
++%buttorcheck = map {
++ $_ =&gt; $factory-&gt;get_widget(&quot;&lt;main&gt;&quot; . join '',
++ map { s/_//; $_ } @{$options{$_}}) }
++ ('edit', 'delete', 'filter', 'xguest');
++
++if (defined $buttorcheck{filter}) {
++ $buttorcheck{filter}-&gt;set_active($sysfilter);
++} else {
++ print STDERR &quot;BUG with LANGUAGE $ENV{LANGUAGE}\n&quot;;
++}
++
++my $toolb = Gtk2::Toolbar-&gt;new;
++my $filter;
++my $searchBox = gtkpack_(Gtk2::HBox-&gt;new(0,5),
++ 1, Gtk2::Label-&gt;new(&quot;&quot;),
++ 0, Gtk2::Label-&gt;new(N(&quot;Search:&quot;)),
++ 0, gtksignal_connect($filter = Gtk2::Entry-&gt;new,
++ key_press_event =&gt; sub {
++ $_[1]-&gt;keyval == $Gtk2::Gdk::Keysyms{Return}
++ and Refresh($sysfilter, $filter-&gt;get_text);
++ }),
++ 0, my $fbut = Gtk2::Button-&gt;new(N(&quot;Apply filter&quot;)),
++ );
++gtkappend_page(my $nb = Gtk2::Notebook-&gt;new,
++ gtkpack(create_scrolled_window($usertree)),
++ gtkshow(Gtk2::Label-&gt;new(N(&quot;Users&quot;))));
++#PO: list of users belonging to that group
++gtkappend_page($nb,
++ gtkpack(create_scrolled_window($grouptree)),
++ gtkshow(Gtk2::Label-&gt;new(N(&quot;Groups&quot;))));
++$nb-&gt;set_show_border(0);
++my @extra_widgets;
++if ($::isEmbedded) {
++ push @extra_widgets, 0, Gtk2::Banner-&gt;new(&quot;/usr/share/mcc/themes/default/user-mdk.png&quot;,
++ #-PO: do not translate, this is already translated in mcc
++ N(&quot;Users and groups&quot;));
++}
++$us-&gt;{wnd}{window}-&gt;add(gtkpack_(Gtk2::VBox-&gt;new(0, 0),
++ 0, $menu,
++ @extra_widgets,
++ 0, $toolb,
++ 0, $searchBox,
++ 0, Gtk2::HSeparator-&gt;new,
++ 1, $nb));
++my @ucolsize = (60, 45, 40, 120, 80, 120, 50, -1);
++my @gcolsize = (100, 80, 160, -1);
++each_index {
++ my $col = Gtk2::TreeViewColumn-&gt;new_with_attributes($_,
++ Gtk2::CellRendererText-&gt;new,
++ 'text' =&gt; $::i);
++ $col-&gt;set_sort_column_id($::i);
++ $col-&gt;set_min_width($ucolsize[$::i]);
++ $usertree-&gt;append_column($col);
++} (N(&quot;User Name&quot;), N(&quot;User ID&quot;), N(&quot;Primary Group&quot;),
++ N(&quot;Full Name&quot;), N(&quot;Login Shell&quot;), N(&quot;Home Directory&quot;), N(&quot;Status&quot;));
++
++each_index {
++ my $col = Gtk2::TreeViewColumn-&gt;new_with_attributes($_, Gtk2::CellRendererText-&gt;new, 'text' =&gt; $::i);
++ $col-&gt;set_sort_column_id($::i);
++ $col-&gt;set_min_width($gcolsize[$::i]);
++ $grouptree-&gt;append_column($col);
++} (N(&quot;Group Name&quot;), N(&quot;Group ID&quot;), N(&quot;Group Members&quot;));
++my @toolbwg;
++foreach ([ N(&quot;Add User&quot;), N(&quot;Add a user to the system&quot;), 'user_add', \&amp;AddUser ],
++ [ N(&quot;Add Group&quot;), N(&quot;Add a group to the system&quot;), 'group_add', \&amp;AddGroup ],
++ [ N(&quot;Edit&quot;), N(&quot;Edit selected row&quot;), 'user_conf', \&amp;Edit ],
++ [ N(&quot;Delete&quot;), N(&quot;Delete selected row&quot;), 'user_del', \&amp;Delete ],
++ [ N(&quot;Refresh&quot;), N(&quot;Refresh the list&quot;), 'refresh',
++ sub { Refresh($sysfilter, $stringsearch) } ]) {
++ my $t = $toolb-&gt;append_item($_-&gt;[0], $_-&gt;[1], $_-&gt;[2],
++ Gtk2::Image-&gt;new_from_file($pixdir . $_-&gt;[2] . '.png'),
++ $_-&gt;[3], $toolb);
++ push(@toolbwg, $t);
++ # $toolb-&gt;append_space;
++}
++
++my ($_tbuser, $_tbgroup, $tbedit, $tbdel, $_tbref) = @toolbwg;
++GrayDelEdit();
++RefreshXguest();
++
++my $ctx = USER::ADMIN-&gt;new;
++$fbut-&gt;signal_connect('clicked', sub {
++ $stringsearch = $filter-&gt;get_text;
++ Refresh($sysfilter, $stringsearch);
++ });
++Refresh($sysfilter, $stringsearch);
++$nb-&gt;signal_connect('switch-page' =&gt; sub { NotebookSwitch() });
++$us-&gt;{wnd}{rwindow}-&gt;show_all;
++#undef $wait;
++$window_splash-&gt;destroy;
++undef $window_splash;
++
++$us-&gt;{wnd}-&gt;main;
++ugtk2-&gt;exit(0);
++
++sub is_xguest_installed() {
++ -e '/etc/security/namespace.d/guest.conf';
++}
++
++sub GrayDelEdit() {
++ foreach ($tbedit, $tbdel, $buttorcheck{edit}, $buttorcheck{delete}) {
++ defined $_ and $_-&gt;set_sensitive(0);
++ }
++}
++
++sub RefreshXguest {
++ my ($o_is_already_refreshed) = @_;
++ my $label = $xguest_labels{is_xguest_installed() ? 'installed' : 'to_install'};
++ $label =~ s!^/!!;
++ $buttorcheck{xguest}-&gt;get_child-&gt;set_label($label);
++ Refresh($sysfilter, $stringsearch) if !$o_is_already_refreshed;
++}
++
++sub TreeUnselect {
++ my $treev = shift;
++ $treev-&gt;get_selection-&gt;unselect_all;
++ GrayDelEdit();
++ RefreshXguest();
++}
++
++sub NotebookSwitch() {
++ #my $page = $nb-&gt;get_current_page;
++ TreeUnselect($usertree); TreeUnselect($grouptree);
++}
++
++sub ComputeLockExpire {
++ my $l = shift;
++ my $ep = $l-&gt;ShadowExpire($GetValue);
++ my $tm = ceil(time()/(24*60*60));
++ $ep = -1 if int($tm) &lt;= $ep;
++ my $status = $ctx-&gt;IsLocked($l) ? N(&quot;Locked&quot;) : ($ep != -1 ? N(&quot;Expired&quot;) : '');
++ $status;
++}
++
++sub RefreshUsersFull {
++ my ($filterusers, $strfilt) = @_;
++ my ($users, $group, $groupnm, $expr);
++ defined $ctx and $users = $ctx-&gt;UsersEnumerateFull;
++ $utree_model-&gt;clear;
++ my @UserReal;
++ LOOP: foreach my $l (@$users) {
++ next LOOP if $filterusers &amp;&amp; $l-&gt;Uid($GetValue) &lt;= 499 || $l-&gt;Uid($GetValue) == 65534;
++ push @UserReal, $l if $l-&gt;UserName($GetValue) =~ /^\Q$strfilt/;
++ }
++ my $i;
++ foreach my $l (@UserReal) {
++ $i++;
++ my $uid = $l-&gt;Uid($GetValue);
++ if (!defined $uid) {
++ warn &quot;bogus user at line $i\n&quot;;
++ next;
++ }
++ my $a = $l-&gt;Gid($GetValue);
++ $group = $ctx-&gt;LookupGroupById($a);
++ $groupnm = '';
++ $expr = ComputeLockExpire($l);
++ $group and $groupnm = $group-&gt;GroupName($GetValue);
++ my $s = $l-&gt;Gecos($GetValue);
++ c::set_tagged_utf8($s);
++ $utree_model-&gt;append_set([ 0 =&gt; $l-&gt;UserName($GetValue),
++ 1 =&gt; $l-&gt;Uid($GetValue),
++ 2 =&gt; $groupnm,
++ 3 =&gt; $s,
++ 4 =&gt; $l-&gt;LoginShell($GetValue),
++ 5 =&gt; $l-&gt;HomeDir($GetValue),
++ 6 =&gt; $expr ]);
++ }
++}
++
++sub RefreshGroupsFull {
++ my ($filtergroups, $strfilt) = @_;
++ my $groups;
++ defined $ctx and $groups = $ctx-&gt;GroupsEnumerateFull;
++ $gtree_model-&gt;clear;
++ my @GroupReal;
++ LOOP: foreach my $g (@$groups) {
++ next LOOP if $filtergroups &amp;&amp; $g-&gt;Gid($GetValue) &lt;= 499 || $g-&gt;Gid($GetValue) == 65534;
++ push @GroupReal, $g if $g-&gt;GroupName($GetValue) =~ /^\Q$strfilt/;
++ }
++ foreach my $g (@GroupReal) {
++ my $a = $g-&gt;GroupName($GetValue);
++ #my $group = $ctx-&gt;LookupGroupById($a);
++ my $u_b_g = $a &amp;&amp; $ctx-&gt;EnumerateUsersByGroup($a);
++ my $listUbyG = join(',', @$u_b_g);
++ my $group_id = $g-&gt;Gid($GetValue);
++ $gtree_model-&gt;append_set([ 0 =&gt; $g-&gt;GroupName($GetValue),
++ if_($group_id, 1 =&gt; $group_id),
++ if_($listUbyG, 2 =&gt; $listUbyG) ]);
++ }
++}
++
++sub Refresh {
++ my ($filt, $strfilt) = @_;
++ RefreshUsersFull($filt, $strfilt);
++ RefreshGroupsFull($filt, $strfilt);
++ GrayDelEdit();
++ RefreshXguest(1);
++}
++
++sub GetFaceIcon {
++ my ($user) = @_;
++ my @icons = any::facesnames();
++ my $i;
++ my $current_icon;
++ my $user_icon = &quot;$::prefix/usr/share/faces/$user.png&quot;;
++ gtkpack_(my $hb = Gtk2::HBox-&gt;new(0, 2),
++ 0, Gtk2::Label-&gt;new(N(&quot;Click on the icon to change it&quot;) . ' '),
++ 0, my $bt = Gtk2::Button-&gt;new
++ );
++ my $set = sub {
++ my ($icon) = @_;
++ my $f = $icon =~ m,^/, ? $icon : any::face2png($icon);
++ $us-&gt;{o}{iconval} = $icon;
++ gtkdestroy($us-&gt;{o}{icon});
++ # so that we do display &quot;no icon&quot; if either file doesn't exist or it's corrupted:
++ undef $us-&gt;{o}{icon};
++ $us-&gt;{o}{icon} = eval { gtkcreate_img($f) } if -e $f;
++ $us-&gt;{o}{icon} ||= Gtk2::Label-&gt;new(&quot;No Icon&quot;);
++ $bt-&gt;add($us-&gt;{o}{icon});
++ $us-&gt;{o}{icon}-&gt;show;
++ };
++ if (-e $user_icon) {
++ my $current_md5 = common::md5file($user_icon);
++ eval { $i = find_index { common::md5file(any::face2png($_)) eq $current_md5 } @icons };
++ if (!$@) { #- current icon found in @icons, select it
++ $current_icon = $icons[$i];
++ } else { #- add and select current icon in @icons
++ push @icons, $user_icon;
++ $current_icon = $user_icon;
++ $i = @icons - 1;
++ }
++ } else {
++ #- no icon yet, select a random one
++ $current_icon = $icons[$i = rand(@icons)];
++ }
++ $set-&gt;($current_icon);
++ my $leave = 0;
++ $bt-&gt;signal_connect(enter =&gt; sub { $leave = 0 });
++ $bt-&gt;signal_connect(leave =&gt; sub { $leave = 1 });
++ $bt-&gt;signal_connect(button_release_event =&gt; sub {
++ return if $leave;
++ if ($_[1]-&gt;button == 1) {
++ $i = defined $icons[$i+1] ? $i+1 : 0;
++ } else {
++ $i = defined $icons[$i-1] ? $i-1 : @icons-1;
++ }
++ $set-&gt;($icons[$i]);
++ });
++ $hb;
++}
++
++sub AddUser() {
++ my $w = NewWindow(N(&quot;Create New User&quot;));
++ my $dontcreatehomedir = 0; my $is_system = 0;
++ my %u;
++ gtkpack_($w-&gt;vbox,
++ 0, BuildUui(),
++ 0, Gtk2::HSeparator-&gt;new,
++ 0, $us-&gt;{o}{createhomedir} = Gtk2::CheckButton-&gt;new(N(&quot;Create Home Directory&quot;)),
++ 0, gtkpack_(my $vv = Gtk2::HBox-&gt;new(0, 4),
++ 0, Gtk2::Label-&gt;new(N(&quot;Home Directory: &quot;)),
++ 0, $us-&gt;{o}{homedir} = Gtk2::Entry-&gt;new
++ ),
++ 0, $us-&gt;{o}{privategroup} = Gtk2::CheckButton-&gt;new(N(&quot;Create a private group for the user&quot;)),
++ 0, $us-&gt;{o}{userid} = Gtk2::CheckButton-&gt;new(N(&quot;Specify user ID manually&quot;)),
++ 0, gtkset_sensitive(my $h = Gtk2::HBox-&gt;new(0, 4), 0),
++ 0, Gtk2::HSeparator-&gt;new,
++ 0, GetFaceIcon()
++ );
++ gtkadd($w-&gt;action_area,
++ map {
++ my $r = $_-&gt;[1];
++ gtksignal_connect(
++ Gtk2::Button-&gt;new($_-&gt;[0]),
++ clicked =&gt; sub {
++ if (!$r) {
++ $u{username} = $us-&gt;{o}{login}-&gt;get_text; $error = 0;
++ $u{gecos} = $us-&gt;{o}{fullname}-&gt;get_text;
++ if (!valid_username($u{username})) { RaiseError($us-&gt;{error}) }
++ my $nm = !$error &amp;&amp; $ctx-&gt;LookupUserByName($u{username});
++ if ($nm) {
++ RaiseError(N(&quot;User already exists, please choose another User Name&quot;));
++ $us-&gt;{o}{login}-&gt;set_text('');
++ }
++ $u{passwd} = $us-&gt;{o}{passwd}-&gt;get_text;
++ if ($u{passwd} ne $us-&gt;{o}{confpasswd}-&gt;get_text) {
++ RaiseError(N(&quot;Password Mismatch&quot;));
++ }
++ if ($sec{SECURE_LEVEL} &gt; 3 &amp;&amp; length($u{passwd}) &lt; 6) {
++ RaiseError(N(&quot;This password is too simple. \n Good passwords should be &gt; 6 characters&quot;));
++ }
++ my $userEnt = !$error &amp;&amp; $ctx-&gt;InitUser($u{username}, $is_system);
++ if (!$error &amp;&amp; $us-&gt;{o}{createhomedir}-&gt;get_active) {
++ $dontcreatehomedir = 0;
++ $u{homedir} = $us-&gt;{o}{homedir}-&gt;get_text;
++ $userEnt and $userEnt-&gt;HomeDir($u{homedir});
++ } else {
++ $dontcreatehomedir = 1;
++ }
++ if (!$error &amp;&amp; $us-&gt;{o}{userid}-&gt;get_active) {
++ if (($u{uid} = $us-&gt;{o}{uid}-&gt;get_value) &lt; 500) {
++ my $uidchoice = GimmeChoice(N(&quot;User Uid is &lt; 500&quot;),
++ N(&quot;Creating a user with a UID less than 500 is not recommended.\n Are you sure you want to do this?\n\n&quot;));
++ $uidchoice and $userEnt-&gt;Uid($u{uid});
++ } else { $userEnt-&gt;Uid($u{uid}) }
++ }
++ if ($us-&gt;{o}{privategroup}-&gt;get_active) {
++ if (!$error) {
++ #Check if group exist
++ my $gr = $ctx-&gt;LookupGroupByName($u{username});
++ if ($gr) {
++ my $groupchoice = ChooseGroup();
++ if ($groupchoice == 0 &amp;&amp; !$error) {
++ #You choose to put it in the existing group
++ $u{gid} = $gr-&gt;Gid($GetValue);
++ } elsif ($groupchoice == 1) {
++ # Put it in 'users' group
++ log::explanations(N(&quot;Putting %s to 'users' group&quot;,
++ $u{username}));
++ $u{gid} = Add2UsersGroup($u{username});
++ }
++ } else {
++ #it's a new group: Add it
++ my $newgroup = $ctx-&gt;InitGroup($u{username},$is_system);
++ log::explanations(N(&quot;Creating new group: %s&quot;, $u{username}));
++ $u{gid} = $newgroup-&gt;Gid($GetValue);
++ $ctx-&gt;GroupAdd($newgroup);
++ }
++ }
++ } else {
++ !$error and $u{gid} = Add2UsersGroup($u{username});
++ }
++ if (!$error) {
++ log::explanations(N(&quot;Adding user: %s&quot;, $u{username}));
++ $u{loginshell} = $us-&gt;{o}{shells}-&gt;entry-&gt;get_text;
++ $userEnt-&gt;Gecos($u{gecos}); $userEnt-&gt;LoginShell($u{loginshell});
++ $userEnt-&gt;Gid($u{gid});
++ $userEnt-&gt;ShadowMin(-1); $userEnt-&gt;ShadowMax(99999);
++ $userEnt-&gt;ShadowWarn(-1); $userEnt-&gt;ShadowInact(-1);
++ $ctx-&gt;UserAdd($userEnt, $is_system, $dontcreatehomedir);
++ $ctx-&gt;UserSetPass($userEnt, $u{passwd});
++ defined $us-&gt;{o}{iconval} and
++ any::addKdmIcon($u{username}, $us-&gt;{o}{iconval});
++ Refresh($sysfilter, $stringsearch);
++ transfugdrake::get_windows_disk()
++ and $in-&gt;ask_yesorno(N(&quot;Migration wizard&quot;),
++ N(&quot;Do you want to run the migration wizard in order to import Windows documents and settings in your Mageia distribution?&quot;))
++ and run_program::raw({ detach =&gt; 1 }, 'transfugdrake');
++ }
++ }
++ !$error and $w-&gt;destroy; $error = 0 });
++ } ([ N(&quot;Cancel&quot;), 1 ], [ N(&quot;Ok&quot;), 0 ]),
++ );
++ foreach (qw(privategroup createhomedir)) { $us-&gt;{o}{$_}-&gt;set_active(1) }
++ GrayBox($us-&gt;{o}{createhomedir}, $vv, 1);
++ $us-&gt;{o}{login}-&gt;signal_connect(
++ 'focus_out_event' =&gt; sub {
++ my $fullname = $us-&gt;{o}{fullname}-&gt;get_text;
++ $us-&gt;{o}{homedir}-&gt;set_text(&quot;/home/&quot; . $us-&gt;{o}{login}-&gt;get_text);
++ $fullname or $us-&gt;{o}{fullname}-&gt;set_text($us-&gt;{o}{login}-&gt;get_text);
++ 0; # Gdk expect focus event handlers to return false
++ });
++ $us-&gt;{o}{uid} = Gtk2::SpinButton-&gt;new(Gtk2::Adjustment-&gt;new(500, 1, 65000, 1, 10, 10), 1, 0);
++ $h-&gt;pack_end($us-&gt;{o}{uid}, 0, 0, 4);
++ $h-&gt;pack_end(Gtk2::Label-&gt;new(N(&quot;UID: &quot;)), 0, 0, 4);
++ GrayBox($us-&gt;{o}{userid}, $h, 0);
++ $w-&gt;show_all;
++}
++
++sub Add2UsersGroup {
++ my $name = shift;
++ my $usersgroup = $ctx-&gt;LookupGroupByName('users');
++ $usersgroup-&gt;MemberName($name, 1);
++ return $usersgroup-&gt;Gid($GetValue);
++}
++
++sub ChooseGroup() {
++ my $w = NewWindow(N(&quot;Choose group&quot;));
++ my $choice;
++ my @radio = gtkradio(N(&quot;Add to the existing group&quot;),
++ (N(&quot;Add to the existing group&quot;),
++ N(&quot;Add to the 'users' group&quot;)));
++ gtkadd($w-&gt;vbox,
++ Gtk2::Label-&gt;new(N(&quot;A group with this name already exists. What would you like to do?&quot;)),
++ gtkpack(Gtk2::VBox-&gt;new(0,0), @radio),
++ );
++ gtkadd($w-&gt;action_area,
++ gtksignal_connect(
++ Gtk2::Button-&gt;new(N(&quot;Ok&quot;)),
++ clicked =&gt; sub {
++ each_index { $_-&gt;get_active and $choice = $::i } @radio;
++ $w-&gt;destroy;
++ Gtk2-&gt;main_quit;
++ }),
++ gtksignal_connect(
++ Gtk2::Button-&gt;new(N(&quot;Cancel&quot;)),
++ clicked =&gt; sub {
++ $error = 1;
++ $w-&gt;destroy;
++ Gtk2-&gt;main_quit;
++ }));
++ $w-&gt;show_all;
++ Gtk2-&gt;main;
++ $choice;
++}
++sub GimmeChoice {
++ my ($title, $text) = @_;
++ my $choice = $in-&gt;ask_yesorno($title, $text) or $error = 1;
++ gtkset_mousecursor_normal();
++ $choice;
++}
++
++sub AddGroup() {
++ my $w = NewWindow(N(&quot;Create New Group&quot;));
++ my $mode = 0; my %g; my $is_system = 0;
++ gtkpack_($w-&gt;vbox,
++ 0, BuildGui(),
++ 0, Gtk2::HSeparator-&gt;new,
++ 0, $us-&gt;{o}{groupid} = Gtk2::CheckButton-&gt;new(N(&quot;Specify group ID manually&quot;)),
++ 0, gtkset_sensitive(my $h = Gtk2::HBox-&gt;new(0, 4), 0),
++ );
++ gtkadd($w-&gt;action_area,
++ map {
++ my $r = $_-&gt;[1];
++ gtksignal_connect(
++ Gtk2::Button-&gt;new($_-&gt;[0]),
++ clicked =&gt; sub {
++ if (!$r) {
++ $g{groupname} = $us-&gt;{o}{groupname}-&gt;get_text; $error = 0;
++ if (!valid_groupname($g{groupname})) {
++ RaiseError($us-&gt;{error});
++ }
++ my $nm = $ctx-&gt;LookupGroupByName($g{groupname});
++ if ($nm) {
++ RaiseError(N(&quot;Group already exists, please choose another Group Name&quot;));
++ $us-&gt;{o}{groupname}-&gt;set_text('');
++ }
++ my $groupEnt = $ctx-&gt;InitGroup($g{groupname}, $is_system);
++ if ($us-&gt;{o}{groupid}-&gt;get_active) {
++ if (($g{gid} = $us-&gt;{o}{gid}-&gt;get_value) &lt; 500) {
++ my $gidchoice = GimmeChoice(N(&quot; Group Gid is &lt; 500&quot;),
++ N(&quot;Creating a group with a GID less than 500 is not recommended.\n Are you sure you want to do this?\n\n&quot;));
++ $gidchoice and $groupEnt-&gt;Gid($g{gid});
++ } else {
++ $groupEnt-&gt;Gid($g{gid});
++ }
++ }
++ if (!$error) {
++ log::explanations(N(&quot;Adding group: %s &quot;, $g{groupname}));
++ $ctx-&gt;GroupAdd($groupEnt);
++ Refresh($sysfilter, $stringsearch);
++ }
++ }
++ !$error and $w-&gt;destroy; $error = 0 });
++ } ([ N(&quot;Cancel&quot;), 1 ], [ N(&quot;Ok&quot;), 0 ])
++ );
++ $us-&gt;{o}{gid} = Gtk2::SpinButton-&gt;new(Gtk2::Adjustment-&gt;new(500, 1, 65000, 1, 10, 10), 1, 0);
++ $h-&gt;pack_end($us-&gt;{o}{gid}, 0, 0, 4);
++ $h-&gt;pack_end(Gtk2::Label-&gt;new(N(&quot;GID: &quot;)), 0, 0, 4);
++ $us-&gt;{o}{groupid}-&gt;signal_connect('clicked' =&gt; sub { $mode = !$mode; $h-&gt;set_sensitive($mode) });
++ $w-&gt;show_all;
++}
++
++sub UpdateOrDelUsersInGroup {
++ my ($name, $action) = @_;
++ my $groups = $ctx-&gt;GroupsEnumerateFull;
++ if ($action) {
++ foreach my $g (@$groups) {
++ my $members = $g-&gt;MemberName(1, 0);
++ if (InArray($name, $members)) {
++ eval { $g-&gt;MemberName($name, 2) };
++ eval { $ctx-&gt;GroupModify($g) };
++ }
++ }
++ }
++}
++
++sub GetNameEntFromIter {
++ my ($tree, $model, $rank) = @_;
++ my (undef, $iter) = $tree-&gt;get_selection-&gt;get_selected;
++ my $name = $model-&gt;get($iter, $rank);
++ $name;
++}
++
++sub FillUserInfo {
++ my $ent = shift;
++ my $s = $ent-&gt;Gecos($GetValue);
++ c::set_tagged_utf8($s);
++ $us-&gt;{o}{fullname}-&gt;set_text($s);
++ $us-&gt;{o}{passwd}-&gt;set_text(' ');
++ $us-&gt;{o}{confpasswd}-&gt;set_text(' ');
++ $us-&gt;{o}{shells}-&gt;entry-&gt;set_text($ent-&gt;LoginShell($GetValue));
++ $us-&gt;{o}{homedir}-&gt;set_text($ent-&gt;HomeDir($GetValue));
++}
++
++sub UserDelete() {
++ my ($checkhome, $checkspool);
++ my $username = GetNameEntFromIter($usertree, $utree_model, 0);
++ my $userEnt = $ctx-&gt;LookupUserByName($username);
++ # Old Delete version
++ #my $removehome = GimmeChoice(N(&quot; Remove Home Directory&quot;), N(&quot;Do you want to delete the user's home directory and mail spool?&quot;));
++ #$removehome and $ctx-&gt;Clean($userEnt);
++ # New version
++ my $w = NewWindow(N(&quot;Delete files or not?&quot;));
++ my $hd = $userEnt-&gt;HomeDir($GetValue);
++ gtkpack_($w-&gt;vbox,
++ 0, Gtk2::Label-&gt;new(N(&quot;Deleting user %s\n Also perform the following actions\n&quot;,
++ $username)),
++ 0, $checkhome = Gtk2::CheckButton-&gt;new(N(&quot;Delete Home Directory: %s&quot;, $hd)),
++ 0, $checkspool = Gtk2::CheckButton-&gt;new(N(&quot;Delete Mailbox: /var/spool/mail/%s&quot;,
++ $username)),
++ );
++ gtkadd($w-&gt;action_area,
++ map {
++ my $r = $_-&gt;[1];
++ gtksignal_connect(Gtk2::Button-&gt;new($_-&gt;[0]), clicked =&gt;
++ sub {
++ if (!$r) {
++ log::explanations(N(&quot;Removing user: %s&quot;, $username));
++ $ctx-&gt;UserDel($userEnt);
++ UpdateOrDelUsersInGroup($username, 1);
++ #Let's check out the user's primary group
++ my $usergid = $userEnt-&gt;Gid($GetValue);
++ my $groupEnt = $ctx-&gt;LookupGroupById($usergid);
++ if ($groupEnt) {
++ my $member = $groupEnt-&gt;MemberName(1, 0);
++ if (scalar(@$member) == 0 &amp;&amp; $groupEnt-&gt;Gid($GetValue) &gt; 499) {
++ $ctx-&gt;GroupDel($groupEnt);
++ }
++ }
++ if ($checkhome-&gt;get_active) {
++ eval { $ctx-&gt;CleanHome($userEnt) };
++ $@ and RaiseError($@);
++ }
++ if ($checkspool-&gt;get_active) {
++ eval { $ctx-&gt;CleanSpool($userEnt) };
++ $@ and RaiseError($@);
++ }
++ Refresh($sysfilter, $stringsearch);
++ }
++ !$error and $w-&gt;destroy; $error = 0 });
++ } ([ N(&quot;Cancel&quot;), 1 ], [ N(&quot;Delete&quot;), 0 ]),
++ );
++ if ($hd !~ m!(?:/home|/var/spool)!) { $checkhome-&gt;set_sensitive(0); $checkspool-&gt;set_sensitive(0) }
++ $w-&gt;show_all;
++}
++
++sub GroupDelete() {
++ my $groupname = GetNameEntFromIter($grouptree, $gtree_model, 0);
++ my $wg = NewWindow(translate(&quot;Warning&quot;));
++ gtkadd($wg-&gt;vbox,
++ Gtk2::Label-&gt;new(N(&quot;Do you really want to delete the group %s?&quot;, $groupname)),
++ );
++ gtkadd($wg-&gt;action_area,
++ map {
++ my $r = $_-&gt;[1];
++ gtksignal_connect(Gtk2::Button-&gt;new($_-&gt;[0]), clicked =&gt;
++ sub {
++ if (!$r) {
++ my $groupEnt = $ctx-&gt;LookupGroupByName($groupname);
++ my $members = $ctx-&gt;EnumerateUsersByGroup($groupname);
++ GLOOP: foreach my $username (@$members) {
++ my $userEnt = $ctx-&gt;LookupUserByName($username);
++ if ($userEnt &amp;&amp; $userEnt-&gt;Gid($GetValue) == $groupEnt-&gt;Gid($GetValue)) {
++ RaiseError(N(&quot;%s is a primary group for user %s\n Remove the user first&quot;, $groupname, $username));
++ last GLOOP;
++ }
++ }
++ if (!$error) {
++ log::explanations(N(&quot;Removing group: %s&quot;, $groupname));
++ eval { $ctx-&gt;GroupDel($groupEnt) }; Refresh($sysfilter, $stringsearch);
++ }
++ }
++ !$error and $wg-&gt;destroy; $error = 0 });
++ } ([ N(&quot;Cancel&quot;), 1 ], [ N(&quot;Delete&quot;), 0 ]),
++ );
++ $wg-&gt;show_all;
++}
++
++sub Delete() {
++ my $page = $nb-&gt;get_current_page;
++ $us-&gt;{wnd}{rwindow}-&gt;set_sensitive(0);
++ gtkset_mousecursor_wait(); $error = 0;
++ if ($page &lt;= 0) {
++ UserDelete();
++ } elsif ($page == 1) {
++ GroupDelete();
++ }
++ $us-&gt;{wnd}{rwindow}-&gt;set_sensitive(1);
++ gtkset_mousecursor_normal();
++}
++
++# Gtk Facilities
++sub CreateTree {
++ my ($tree_model) = @_;
++ my $tree = Gtk2::TreeView-&gt;new_with_model($tree_model);
++ $tree-&gt;get_selection-&gt;set_mode('browse');
++ $tree-&gt;set_headers_visible(1);
++ $tree-&gt;set_rules_hint(1);
++ $tree-&gt;get_selection-&gt;signal_connect(
++ 'changed' =&gt; sub {
++ foreach ($tbedit, $tbdel, $buttorcheck{edit}, $buttorcheck{delete}) {
++ $_-&gt;set_sensitive(1);
++ }
++ });
++ my $menu_treeview = Gtk2::Menu-&gt;new;
++ my @menu_treeview_actions = ([ 'edit', N(&quot;Edit&quot;) ], [ 'delete', N(&quot;Delete&quot;) ]);
++ foreach (@menu_treeview_actions) {
++ my ($action, $text) = @$_;
++ my %actions; %actions = (
++ edit =&gt; sub {
++ my (undef, $iter) = $tree-&gt;get_selection-&gt;get_selected;
++ $iter and Edit();
++ },
++ delete =&gt; sub {
++ my (undef, $iter) = $tree-&gt;get_selection-&gt;get_selected;
++ $iter and Delete();
++ }
++ );
++ $menu_treeview-&gt;append(
++ gtksignal_connect(
++ gtkshow(Gtk2::MenuItem-&gt;new_with_label($text)),
++ activate =&gt; sub { $actions{$action}-&gt;() }));
++ }
++ $tree-&gt;signal_connect(
++ button_press_event =&gt; sub {
++ my (undef, $event) = @_;
++ my (undef, $iter) = $tree-&gt;get_selection-&gt;get_selected;
++ return unless $iter;
++ foreach ($tbedit, $tbdel, $buttorcheck{edit}, $buttorcheck{delete}) {
++ $_-&gt;set_sensitive(1);
++ }
++ Edit() if $event-&gt;type eq '2button-press';
++ $_[1]-&gt;button == 3
++ and $menu_treeview-&gt;popup(undef, undef, undef, undef, $_[1]-&gt;button, $_[1]-&gt;time);
++ });
++ $tree-&gt;signal_connect(
++ key_press_event =&gt; sub {
++ my (undef, $event) = @_;
++ my (undef, $iter) = $tree-&gt;get_selection-&gt;get_selected;
++ return unless $iter;
++ Edit() if $event-&gt;keyval == $Gtk2::Gdk::Keysyms{Return};
++ });
++ $tree;
++}
++
++sub GtkEntryHidePass {
++ my ($o_text) = @_;
++ my $e = gtknew('WeaknessCheckEntry');
++ $o_text and $e-&gt;set_text($o_text);
++ $e-&gt;set_visibility(0);
++ $e;
++}
++
++sub GtkEntrySized {
++ my ($i, $spac) = @_;
++ my $e = Gtk2::Entry-&gt;new_with_max_length($i);
++ $e-&gt;set_size_request($spac, 20);
++ $e;
++}
++
++sub BuildUui {
++ my ($o_extra_widget) = @_;
++ gtkpack_(my $vbox = Gtk2::VBox-&gt;new(0, 2),
++ 1, create_packtable({ homogeneous =&gt; 1, col_spacings =&gt; 5, row_spacings =&gt; 5 },
++ [ gtknew('Label_Left', text =&gt; N(&quot;Full Name:&quot;)),
++ $us-&gt;{o}{fullname} = Gtk2::Entry-&gt;new ],
++ [ gtknew('Label_Left', text =&gt; N(&quot;Login:&quot;)),
++ $us-&gt;{o}{login} = Gtk2::Entry-&gt;new ],
++ [ gtknew('Label_Left', text =&gt; N(&quot;Password:&quot;)),
++ $us-&gt;{o}{passwd} = GtkEntryHidePass() ],
++ [ gtknew('Label_Left', text =&gt; N(&quot;Confirm Password:&quot;)),
++ $us-&gt;{o}{confpasswd} = GtkEntryHidePass() ],
++ [ gtknew('Label_Left', text =&gt; N(&quot;Login Shell:&quot;)),
++ $us-&gt;{o}{shells} = Gtk2::Combo-&gt;new ],
++ $o_extra_widget,
++ )
++ );
++ $us-&gt;{o}{shells}-&gt;set_popdown_strings(@{$ctx-&gt;GetUserShells});
++ $us-&gt;{o}{shells}-&gt;entry-&gt;set_text(&quot;/bin/bash&quot;);
++ $vbox;
++}
++
++sub BuildGui() {
++ gtkpack_(my $vbox = Gtk2::VBox-&gt;new(0, 2),
++ 1, create_packtable({ homogeneous =&gt; 1, col_spacings =&gt; 5, row_spacings =&gt;5 },
++ [ N(&quot;Group Name:&quot;), $us-&gt;{o}{groupname} = Gtk2::Entry-&gt;new ]
++ )
++ );
++ $vbox;
++}
++
++sub NewWindow {
++ my ($title) = @_;
++ my $dialog = gtkset_border_width(
++ _create_dialog($title, { transient_for =&gt; $us-&gt;{wnd}{real_window} }),
++ 5);
++ $dialog-&gt;signal_connect(delete_event =&gt; sub { $dialog-&gt;destroy });
++ my $prev_main_window = $::main_window;
++ $::main_window = $dialog;
++ $dialog-&gt;signal_connect(destroy =&gt; sub { $::main_window = $prev_main_window });
++ $dialog;
++}
++
++sub Xguest() {
++ if (is_xguest_installed()) {
++ run_program::run('rpm', '-e', 'xguest');
++ } else {
++ run_program::run('gurpmi2', 'xguest');
++ }
++ RefreshXguest();
++}
++
++sub UserEdit_valid {
++ my ($userEnt, $model, $primgid) = @_;
++ my ($Exp, $gEnt, $ugid);
++ my $error = 0;
++ my %u = (
++ username =&gt; $us-&gt;{o}{login}-&gt;get_text, gecos =&gt; $us-&gt;{o}{fullname}-&gt;get_text,
++ homedir =&gt; $us-&gt;{o}{homedir}-&gt;get_text, pw =&gt; $us-&gt;{o}{passwd}-&gt;get_text,
++ confm =&gt; $us-&gt;{o}{confpasswd}-&gt;get_text, shell =&gt; $us-&gt;{o}{shells}-&gt;entry-&gt;get_text
++ );
++ if (!valid_username($u{username})) {
++ RaiseError($us-&gt;{error});
++ }
++ if ($u{pw} ne $u{confm}) {
++ RaiseError(N(&quot;Password Mismatch&quot;));
++ } elsif ($u{pw} eq $u{confm} &amp;&amp; $u{pw} ne ' ') {
++ if ($sec{SECURE_LEVEL} &gt; 3 &amp;&amp; length($u{pw}) &lt; 6) {
++ RaiseError(N(&quot;This password is too simple. \n Good passwords should be &gt; 6 characters&quot;));
++ }
++ !$error and $ctx-&gt;UserSetPass($userEnt, $u{pw});
++ }
++ if (!$error) {
++ $userEnt-&gt;UserName($u{username});
++ $userEnt-&gt;Gecos($u{gecos});
++ $userEnt-&gt;HomeDir($u{homedir});
++ $userEnt-&gt;LoginShell($u{shell});
++ my $username = $userEnt-&gt;UserName($GetValue);
++ $model-&gt;foreach(sub {
++ my ($mod, $_path, $iter) = @_;
++ my $ch = $mod-&gt;get($iter, 2);
++ my $name = $mod-&gt;get($iter, 1);
++ $gEnt = $ctx-&gt;LookupGroupByName($name);
++ $ugid = $gEnt-&gt;Gid($GetValue);
++ my $m = $gEnt-&gt;MemberName(1,0);
++ if ($ch == 1) {
++ if (!InArray($username, $m) &amp;&amp; $primgid != $ugid) {
++ eval { $gEnt-&gt;MemberName($username, 1) };
++ $ctx-&gt;GroupModify($gEnt);
++ }
++ } else {
++ if (InArray($username, $m)) {
++ eval { $gEnt-&gt;MemberName($username, 2) };
++ $ctx-&gt;GroupModify($gEnt);
++ }
++ }
++ return 0;
++ }, undef);
++ if ($us-&gt;{o}{primgroup}-&gt;entry-&gt;get_text eq '') {
++ RaiseError(N(&quot;Please select at least one group for the user&quot;));
++ } elsif (!$error) {
++ my $ent = $ctx-&gt;LookupGroupByName($us-&gt;{o}{primgroup}-&gt;entry-&gt;get_text);
++ $ugid = $ent-&gt;Gid($GetValue);
++ $userEnt-&gt;Gid($ugid);
++ if ($us-&gt;{o}{acheckexpire}-&gt;get_active) {
++ my $yr = $us-&gt;{o}{expy}-&gt;get_value;
++ my $mo = $us-&gt;{o}{expm}-&gt;get_value;
++ my $dy = $us-&gt;{o}{expd}-&gt;get_value;
++ ValidInt($yr, $dy, $mo)
++ or RaiseError(N(&quot;Please specify Year, Month and Day \n for Account Expiration &quot;));
++ if (!$error) { $Exp = ConvTime($dy, $mo, $yr);
++ $userEnt-&gt;ShadowExpire($Exp) }
++ } else { $userEnt-&gt;ShadowExpire(ceil(-1)) }
++ if ($us-&gt;{o}{pcheckexpire}-&gt;get_active) {
++ my $allowed = int($us-&gt;{o}{dbca}-&gt;get_text);
++ my $required = int($us-&gt;{o}{dbcr}-&gt;get_text);
++ my $warning = int($us-&gt;{o}{bwbc}-&gt;get_text);
++ my $inactive = int($us-&gt;{o}{dbai}-&gt;get_text);
++ $allowed &amp;&amp; $required &amp;&amp; $warning &amp;&amp; $inactive
++ or RaiseError(N(&quot;Please fill up all fields in password aging\n&quot;));
++ if (!$error) {
++ $userEnt-&gt;ShadowMin($allowed);
++ $userEnt-&gt;ShadowMax($required);
++ $userEnt-&gt;ShadowWarn($warning);
++ $userEnt-&gt;ShadowInact($inactive);
++ }
++ } else {
++ $userEnt-&gt;ShadowMin(-1);
++ $userEnt-&gt;ShadowMax(99999);
++ $userEnt-&gt;ShadowWarn(-1);
++ $userEnt-&gt;ShadowInact(-1);
++ }
++ !$error and $ctx-&gt;UserModify($userEnt);
++ if ($us-&gt;{o}{lockuser}-&gt;get_active) {
++ !$ctx-&gt;IsLocked($userEnt) and $ctx-&gt;Lock($userEnt);
++ } else { $ctx-&gt;IsLocked($userEnt) and $ctx-&gt;UnLock($userEnt) }
++ defined $us-&gt;{o}{iconval} and any::addKdmIcon($u{username}, $us-&gt;{o}{iconval});
++ !$error and Refresh($sysfilter, $stringsearch);
++ }
++ }
++}
++
++sub GroupEdit_valid {
++ my ($groupEnt, $model, $groupname) = @_;
++ my %g;
++ my ($uEnt);
++ $g{groupname} = $us-&gt;{o}{groupname}-&gt;get_text; $error = 0;
++ if (!valid_groupname($g{groupname})) { RaiseError($us-&gt;{error}) }
++ if (!$error &amp;&amp; $groupname ne $g{groupname}) { $groupEnt-&gt;GroupName($g{groupname}) }
++ $groupname = $groupEnt-&gt;GroupName($GetValue);
++ my $members = $ctx-&gt;EnumerateUsersByGroup($groupname);
++ my $gid = $groupEnt-&gt;Gid($GetValue);
++ !$error and $model-&gt;foreach(
++ sub {
++ my ($mod, $_path, $iter) = @_;
++ my $ch = $mod-&gt;get($iter, 2);
++ my $name = $mod-&gt;get($iter, 1);
++ if ($ch == 1) {
++ if (!InArray($name, $members)) {
++ $uEnt = $ctx-&gt;LookupUserByName($name);
++ my $ugid = $uEnt-&gt;Gid($GetValue);
++ if ($ugid != $gid) {
++ eval { $groupEnt-&gt;MemberName($name,1) };
++ }
++ }
++ } else {
++ if (InArray($name, $members)) {
++ $uEnt = $ctx-&gt;LookupUserByName($name);
++ if ($uEnt-&gt;Gid($GetValue) == $groupEnt-&gt;Gid($GetValue)) {
++ $model-&gt;set($iter, 0 =&gt; gtkcreate_pixbuf($pix[0]));
++ $model-&gt;set($iter, 2 =&gt; 1);
++ RaiseError(N(&quot;You cannot remove user '%s' from their primary group&quot;, $name));
++ }
++ if (!$error) {
++ eval { $groupEnt-&gt;MemberName($name,2) };
++ }
++ }
++ }
++ return 0;
++ }, undef);
++ if (!$error) {
++ $ctx-&gt;GroupModify($groupEnt);
++ Refresh($sysfilter, $stringsearch);
++ }
++}
++
++sub UserEdit_widget {
++ my ($nbU, $tree, $model, $Gent) = @_;
++ my ($vald, $mo, $ye) = (localtime())[3, 4, 5];
++ my $valy = $ye+1900;
++ my $valm = $mo+1;
++ gtkappend_page($nbU,
++ BuildUui([ gtknew('Label_Left', text =&gt; N(&quot;Home:&quot;)),
++ $us-&gt;{o}{homedir} = Gtk2::Entry-&gt;new ]),
++ gtkshow(Gtk2::Label-&gt;new(N(&quot;User Data&quot;))));
++ gtkappend_page(
++ $nbU,
++ gtkpack_(Gtk2::VBox-&gt;new(0, 2),
++ 0, $us-&gt;{o}{acheckexpire} = Gtk2::CheckButton-&gt;new(N(&quot;Enable account expiration&quot;)),
++ 0, gtkpack__(my $h = Gtk2::HBox-&gt;new(0, 10),
++ Gtk2::Label-&gt;new(N(&quot;Account expires (YYYY-MM-DD):&quot;)),
++ map { my ($s, $value, $minv, $maxv) = @$_; #my $spc = $_-&gt;[4];
++ $us-&gt;{o}{$s} = Gtk2::SpinButton-&gt;new(Gtk2::Adjustment-&gt;new($value, $minv , $maxv, 1, 10, 10), 1, 0);
++ } (['expy', $valy, 1970, 10000],
++ ['expm', $valm, 1, 12],
++ ['expd', $vald, 1, 31]),
++ ),
++ 0, Gtk2::HSeparator-&gt;new,
++ 0, $us-&gt;{o}{lockuser} = Gtk2::CheckButton-&gt;new(N(&quot;Lock User Account&quot;)),
++ 0, Gtk2::HSeparator-&gt;new,
++ 0, GetFaceIcon(GetNameEntFromIter($usertree, $utree_model,0))
++ ), gtkshow(Gtk2::Label-&gt;new(N(&quot;Account Info&quot;))));
++ GrayBox($us-&gt;{o}{acheckexpire}, $h, 0);
++ gtkappend_page($nbU,
++ gtkpack_(Gtk2::VBox-&gt;new(0, 2),
++ 0, gtkpack_(Gtk2::HBox-&gt;new(0,5),
++ 0, Gtk2::Label-&gt;new(N(&quot;User last changed password on: &quot;)),
++ 0, my $dayStr = Gtk2::Label-&gt;new(&quot;&quot;),
++ 0, my $month = Gtk2::Label-&gt;new(&quot;&quot;),
++ 0, my $dayInt = Gtk2::Label-&gt;new(&quot;&quot;),
++ 0, my $year = Gtk2::Label-&gt;new(&quot;&quot;)
++ ),
++ 0, Gtk2::HSeparator-&gt;new,
++ 0, $us-&gt;{o}{pcheckexpire} = Gtk2::CheckButton-&gt;new(N(&quot;Enable Password Expiration&quot;)),
++ 1, gtkpack_(
++ my $v = Gtk2::VBox-&gt;new(0,1),
++ 1, create_packtable(
++ { homogeneous =&gt; 1, col_spacings =&gt; 5, row_spacings =&gt; 5 },
++ [ N(&quot;Days before change allowed:&quot;),
++ $us-&gt;{o}{dbca} = Gtk2::Entry-&gt;new_with_text(0) ],
++ [ N(&quot;Days before change required:&quot;),
++ $us-&gt;{o}{dbcr} = Gtk2::Entry-&gt;new_with_text(0) ],
++ [ N(&quot;Days warning before change:&quot;),
++ $us-&gt;{o}{bwbc} = Gtk2::Entry-&gt;new_with_text(0) ],
++ [ N(&quot;Days before account inactive:&quot;),
++ $us-&gt;{o}{dbai} = Gtk2::Entry-&gt;new_with_text(0) ]
++ )
++ )), gtkshow(Gtk2::Label-&gt;new(N(&quot;Password Info&quot;))));
++ GrayBox($us-&gt;{o}{pcheckexpire}, $v, 0);
++ gtkappend_page($nbU,
++ gtkpack_(Gtk2::VBox-&gt;new(0, 2),
++ 0, Gtk2::Label-&gt;new(N(&quot;Select the groups that the user will be a member of:&quot;)),
++ 1, create_scrolled_window($tree),
++ 0, gtkpack_(Gtk2::HBox-&gt;new(0, 1),
++ 0, Gtk2::Label-&gt;new(N(&quot;Primary Group&quot;)),
++ 1, $us-&gt;{o}{primgroup} = Gtk2::OptionMenu-&gt;new,
++ )
++ ), gtkshow(Gtk2::Label-&gt;new(N(&quot;Groups&quot;))));
++ my $username = GetNameEntFromIter($usertree, $utree_model,0);
++ $us-&gt;{o}{login}-&gt;set_text($username);
++ my $userEnt = $ctx-&gt;LookupUserByName($username); FillUserInfo($userEnt);
++ my $Uid = $userEnt-&gt;Uid($GetValue);
++ my $expire = $userEnt-&gt;ShadowExpire($GetValue);
++ if ($expire &amp;&amp; $expire != -1) {
++ $us-&gt;{o}{acheckexpire}-&gt;set_active(1);
++ $h-&gt;set_sensitive(1);
++ my $times = TimeOfArray($expire, 1);
++ $us-&gt;{o}{expd}-&gt;set_value($times-&gt;{dayint});
++ $us-&gt;{o}{expm}-&gt;set_value($times-&gt;{month});
++ $us-&gt;{o}{expy}-&gt;set_value($times-&gt;{year});
++ }
++ #root account should never be locked
++ !$Uid and $us-&gt;{o}{lockuser}-&gt;set_sensitive(0);
++ # Check if user account is locked
++ $ctx-&gt;IsLocked($userEnt) and $us-&gt;{o}{lockuser}-&gt;set_active(1);
++ my $lastchg = $userEnt-&gt;ShadowLastChange($GetValue);
++ if ($lastchg) {
++ my $times = TimeOfArray($lastchg, 0);
++ $dayStr-&gt;set_text($times-&gt;{daystr});
++ $month-&gt;set_text($times-&gt;{month});
++ $dayInt-&gt;set_text($times-&gt;{dayint});
++ $year-&gt;set_text($times-&gt;{year});
++ }
++ my $min = $userEnt-&gt;ShadowMin($GetValue);
++ my $max = $userEnt-&gt;ShadowMax($GetValue);
++ my $warn = $userEnt-&gt;ShadowWarn($GetValue);
++ my $inact = $userEnt-&gt;ShadowInact($GetValue);
++ if ($min &amp;&amp; $min != -1 || $max &amp;&amp; $max != 99999 || $warn &amp;&amp; $warn != 7 &amp;&amp; $warn != -1 || $inact &amp;&amp; $inact != -1) {
++ $us-&gt;{o}{pcheckexpire}-&gt;set_active(1);
++ $v-&gt;set_sensitive(1);
++ }
++ $min &amp;&amp; $min != -1 and $us-&gt;{o}{dbca}-&gt;set_text($min);
++ $max &amp;&amp; $max != -1 and $us-&gt;{o}{dbcr}-&gt;set_text($max);
++ $warn &amp;&amp; $warn != -1 and $us-&gt;{o}{bwbc}-&gt;set_text($warn);
++ $inact &amp;&amp; $inact != -1 and $us-&gt;{o}{dbai}-&gt;set_text($inact);
++ my $grps = $ctx-&gt;GroupsEnumerate;
++ my @sgroups = sort @$grps;
++ my $members = $ctx-&gt;EnumerateGroupsByUser($username);
++ my $primgid = $userEnt-&gt;Gid($GetValue);
++ $Gent = $ctx-&gt;LookupGroupById($primgid);
++ my @primgroup;
++ foreach my $group (@sgroups) {
++ if (member($group, @$members)) {
++ $model-&gt;append_set([ 0 =&gt; gtkcreate_pixbuf($pix[0]), 1 =&gt; $group, 2 =&gt; 1 ]);
++ push @primgroup, $group;
++ } else { $model-&gt;append_set([ 0 =&gt; gtkcreate_pixbuf($pix[1]), 1 =&gt; $group, 2 =&gt; 0 ]) }
++ }
++ $us-&gt;{o}{primgroup}-&gt;set_popdown_strings(@primgroup);
++ $Gent and $us-&gt;{o}{primgroup}-&gt;entry-&gt;set_text($Gent-&gt;GroupName($GetValue));
++ ($userEnt, $primgid, @primgroup);
++}
++
++sub GroupEdit_widget {
++ my ($nbG, $tree, $model, $groupname) = @_;
++ $nbG-&gt;set_size_request(300, 200);
++ gtkappend_page($nbG,
++ gtkpack_(Gtk2::VBox-&gt;new(0, 2),
++ 1, BuildGui()),
++ gtkshow(Gtk2::Label-&gt;new(N(&quot;Group Data&quot;))));
++ gtkappend_page($nbG,
++ gtkpack_(Gtk2::VBox-&gt;new(0, 1),
++ 0, Gtk2::Label-&gt;new(N(&quot;Select the users to join this group:&quot;)),
++ 1, create_scrolled_window($tree)),
++ gtkshow(Gtk2::Label-&gt;new(N(&quot;Group Users&quot;))));
++ $groupname = GetNameEntFromIter($grouptree, $gtree_model, 0);
++ $us-&gt;{o}{groupname}-&gt;set_text($groupname);
++ # Don't allow change on group name since there is a bug in lu_user_modify group
++ $us-&gt;{o}{groupname}-&gt;set_editable(0);
++ my $groupEnt = $ctx-&gt;LookupGroupByName($groupname);
++ my $users = $ctx-&gt;UsersEnumerate;
++ my @susers = sort(@$users);
++ my $members = $ctx-&gt;EnumerateUsersByGroup($groupname);
++ foreach my $user (@susers) {
++ if (member($user, @$members)) {
++ $model-&gt;append_set([ 0 =&gt; gtkcreate_pixbuf($pix[0]), 1 =&gt; $user, 2 =&gt; 1 ]);
++ } else {
++ $model-&gt;append_set([ 0 =&gt; gtkcreate_pixbuf($pix[1]), 1 =&gt; $user, 2 =&gt; 0 ]);
++ }
++ }
++ $groupEnt;
++}
++
++sub Edit() {
++ my $w = NewWindow(N(&quot;Edit Groups / Users&quot;));
++ my $model = Gtk2::ListStore-&gt;new(&quot;Gtk2::Gdk::Pixbuf&quot;, &quot;Glib::String&quot;, &quot;Glib::Int&quot;);
++ my $tree = Gtk2::TreeView-&gt;new_with_model($model);
++ my ($groupname, $groupEnt, $userEnt, $primgid, $Gent);
++ my @primgroup;
++ $tree-&gt;get_selection-&gt;set_mode('browse');
++ my $check = Gtk2::TreeViewColumn-&gt;new_with_attributes(undef, Gtk2::CellRendererPixbuf-&gt;new,
++ 'pixbuf' =&gt; 0);
++ $tree-&gt;append_column($check);
++ $check-&gt;{is_pixbuf_column} = 1;
++ $tree-&gt;append_column(Gtk2::TreeViewColumn-&gt;new_with_attributes(undef, Gtk2::CellRendererText-&gt;new,
++ 'text' =&gt; 1));
++ $tree-&gt;set_headers_visible(0);
++ my $p = $nb-&gt;get_current_page;
++ my $nbU = Gtk2::Notebook-&gt;new;
++ my $nbG = Gtk2::Notebook-&gt;new;
++ if ($p &lt;= 0) {
++ ($userEnt, $primgid, @primgroup) = UserEdit_widget($nbU, $tree, $model, $Gent);
++ } elsif ($p == 1) {
++ $groupEnt = GroupEdit_widget($nbG, $tree, $model, $groupname);
++ }
++ gtkpack_($w-&gt;vbox,
++ 1, !$p ? $nbU : $nbG);
++ gtkadd($w-&gt;action_area,
++ map {
++ my $retv = $_-&gt;[1];
++ gtksignal_connect(
++ Gtk2::Button-&gt;new($_-&gt;[0]), clicked =&gt; sub {
++ if (!$retv) {
++ if ($p &lt;= 0) {
++ eval { UserEdit_valid($userEnt, $model, $primgid) };
++ if (my $err = $@) {
++ c::set_tagged_utf8($err);
++ RaiseError(N(&quot;An error occurred:&quot;) . &quot;\n&quot; . $err);
++ }
++ } elsif ($p == 1) {
++ GroupEdit_valid($groupEnt, $model, $groupname);
++ }
++ }
++ !$error and $w-&gt;destroy; $error = 0 });
++ } ([ N(&quot;Cancel&quot;), 1 ], [ N(&quot;Ok&quot;), 0 ]),
++ );
++ $tree-&gt;show;
++ $w-&gt;show_all;
++ $tree-&gt;signal_connect(
++ button_press_event =&gt; sub {
++ my ($path, $column) = $tree-&gt;get_path_at_pos($_[1]-&gt;x, $_[1]-&gt;y);
++ if ($path &amp;&amp; $column) {
++ if ($column-&gt;{is_pixbuf_column}) {
++ my $iter = $model-&gt;get_iter($path);
++ if ($iter) {
++ my $cp = $model-&gt;get($iter, 2);
++ my $item = $model-&gt;get($iter, 1);
++ $model-&gt;set($iter, 0 =&gt; gtkcreate_pixbuf($pix[$cp]));
++ $model-&gt;set($iter, 2 =&gt; !$cp);
++ if ($p &lt;= 0) {
++ if (!$cp) {
++ !InArray($item, \@primgroup) and push(@primgroup, $item);
++ } else {
++ InArray($item, \@primgroup) and @primgroup = RemoveFromArray($item, \@primgroup);
++ }
++ $us-&gt;{o}{primgroup}-&gt;set_popdown_strings(@primgroup);
++ $Gent and $us-&gt;{o}{primgroup}-&gt;entry-&gt;set_text($Gent-&gt;GroupName($GetValue));
++ }
++ }
++ }
++ }
++ });
++ $tree-&gt;signal_connect(
++ key_press_event =&gt; sub {
++ my $c = chr($_[1]-&gt;keyval &amp; 0xff);
++ if ($_[1]-&gt;keyval &gt;= 0x100 ? $c eq &quot;\r&quot; || $c eq &quot;\x8d&quot; : $c eq ' ') {
++ my (undef, $iter) = $tree-&gt;get_selection-&gt;get_selected;
++ return unless $iter;
++ my $cp = $model-&gt;get($iter, 2);
++ my $item = $model-&gt;get($iter, 1);
++ $model-&gt;set($iter, 0 =&gt; gtkcreate_pixbuf($pix[$cp]));
++ $model-&gt;set($iter, 2 =&gt; !$cp);
++ if ($p &lt;= 0) {
++ if (!$cp) {
++ !InArray($item, \@primgroup) and push(@primgroup, $item);
++ } else {
++ InArray($item, \@primgroup) and @primgroup = RemoveFromArray($item, \@primgroup);
++ }
++ $us-&gt;{o}{primgroup}-&gt;set_popdown_strings(@primgroup);
++ $Gent and $us-&gt;{o}{primgroup}-&gt;entry-&gt;set_text($Gent-&gt;GroupName($GetValue));
++ }
++ }
++ 0;
++ });
++}
++
++sub ValidInt {
++ foreach my $i (@_) { $i =~ /\d+/ or return 0 }
++ return 1;
++}
++
++sub ConvTime {
++ my ($day, $month, $year) = @_;
++ my ($tm, $days, $mon, $yr);
++ $mon = $month - 1; $yr = $year - 1900;
++ $tm = POSIX::mktime(0, 0, 0, $day, $mon, $yr);
++ $days = ceil($tm / (24 * 60 * 60));
++ return $days;
++}
++
++sub TimeOfArray {
++ my ($reltime, $cm) = @_;
++ my $h; my %mth = (Jan =&gt; 1, Feb =&gt; 2, Mar =&gt; 3, Apr =&gt; 4, May =&gt; 5, Jun =&gt; 6, Jul =&gt; 7, Aug =&gt; 8, Sep =&gt; 9, Oct =&gt; 10, Nov =&gt; 11, Dec =&gt; 12);
++ my $_t = localtime($reltime * 24 * 60 * 60) =~ /(\S+)\s+(\S+)\s+(\d+)\s+(\S+)\s+(\d+)/;
++ $h-&gt;{daystr} = $1;
++ $h-&gt;{month} = $2;
++ $h-&gt;{dayint} = $3;
++ $h-&gt;{year} = $5;
++ $cm and $h-&gt;{month} = $mth{$2};
++ $h;
++}
++
++sub InArray {
++ my ($item, $arr) = @_;
++ return any { $item eq $_ } @$arr;
++}
++
++sub RemoveFromArray {
++ my ($item, $arr) = @_;
++ my ($t, $_s) = partition { $item ne $_ } @$arr;
++ return @$t;
++}
++
++sub GrayBox {
++ my ($o, $v, $m) = @_;
++ $v-&gt;set_sensitive($m);
++ $o-&gt;signal_connect('clicked' =&gt; sub { $m = !$m; $v-&gt;set_sensitive($m) });
++}
++
++sub NewDialog {
++ my ($title) = @_;
++ my $dialog = gtkset_border_width(
++ _create_dialog($title, { transient_for =&gt; $us-&gt;{wnd}{real_window} }),
++ 5);
++ $dialog-&gt;action_area-&gt;pack_start(
++ gtksignal_connect(Gtk2::Button-&gt;new(N(&quot;Close&quot;)), clicked =&gt; sub { $dialog-&gt;destroy }),
++ 0,0,0);
++ $dialog;
++}
++
++sub About() {
++ my $license = formatAlaTeX(translate($::license));
++ $license =~ s/\n/\n\n/sg; # nicer formatting
++ my $w = gtknew('AboutDialog', name =&gt; N(&quot;Userdrake&quot;),
++ version =&gt; $us-&gt;{VERSION},
++ copyright =&gt; N(&quot;Copyright (C) %s by Mandriva&quot;, '2001-2009') . &quot;\n&quot; . N(&quot;Copyright (C) %s by Mageia&quot;, '2011'),
++ if_(-r &quot;$pixdir/userdrake.png&quot;, logo =&gt; &quot;$pixdir/userdrake.png&quot;),
++ license =&gt; $license, wrap_license =&gt; 1,
++ comments =&gt; N(&quot;Users Management&quot;),
++ website =&gt; 'http://www.mageia.org',
++ website_label =&gt; N(&quot;Mageia&quot;),
++ authors =&gt; 'Daouda Lo
++Thierry Vignaud &lt;tvignaud@mandriva.com&gt;',
++ artists =&gt; 'Hélène Durosini &lt;ln@mandriva.com&gt;',
++ translator_credits =&gt;
++ #-PO: put here name(s) and email(s) of translator(s) (eg: &quot;John Smith &lt;jsmith@nowhere.com&gt;&quot;)
++ N(&quot;_: Translator(s) name(s) &amp; email(s)\n&quot;),
++ );
++ $w-&gt;show_all;
++ $w-&gt;run;
++}
++
++sub valid {
++ $_[0] or $us-&gt;{error} = N(&quot;Name field is empty please provide a name&quot;), return 0;
++ $_[0] =~ /^[a-z]+?[a-z0-9_-]*?$/ or do {
++ $us-&gt;{error} = N(&quot;The name must contain only lower cased latin letters, numbers, `-' and `_'&quot;);
++ return 0;
++ };
++ length($_[0]) &lt;= $_[1] or $us-&gt;{error} = N(&quot;Name is too long&quot;), return 0;
++ return 1;
++}
++
++sub valid_username {
++ return valid($_[0], 32);
++}
++
++sub valid_groupname {
++ return valid($_[0], 16);
++}
++
++sub RaiseError {
++ my $w = NewWindow(N(&quot;Error&quot;));
++ $error = 1;
++ gtkpack($w-&gt;vbox, Gtk2::Label-&gt;new($_[0]));
++ gtkadd($w-&gt;action_area,
++ gtksignal_connect(Gtk2::Button-&gt;new(N(&quot;Ok&quot;)),
++ clicked =&gt; sub { $w-&gt;destroy })
++ );
++ $w-&gt;show_all;
++}
++
++sub QuitGlobal() {
++ setVarsInSh($conffile, {
++ FILTER =&gt; bool2text($sysfilter),
++ });
++ Gtk2-&gt;main_quit;
++}
+
+
+Property changes on: userdrake2/tags/1.13.3/userdrake
+___________________________________________________________________
+<a id="svnexecutable">Added: svn:executable</a>
+ + *
+
+<a id="userdrake2tags1133userdrakeprefs">Added: userdrake2/tags/1.13.3/userdrake.prefs</a>
+===================================================================
+--- userdrake2/tags/1.13.3/userdrake.prefs (rev 0)
++++ userdrake2/tags/1.13.3/userdrake.prefs 2011-02-07 11:58:29 UTC (rev 475)
+@@ -0,0 +1,5 @@
++#Configuration file for userdrake2
++#Copyright (c) 2003 MandrakeSoft SA. all rights reserved
++
++#Filter out sytem users by default
++FILTER=true
+\ No newline at end of file
+
+</pre></div>
+
+</body>
+</html> \ No newline at end of file
diff --git a/zarb-ml/mageia-sysadm/attachments/20110207/5f16c035/attachment-0001.html b/zarb-ml/mageia-sysadm/attachments/20110207/5f16c035/attachment-0001.html
new file mode 100644
index 000000000..99683303f
--- /dev/null
+++ b/zarb-ml/mageia-sysadm/attachments/20110207/5f16c035/attachment-0001.html
@@ -0,0 +1,1340 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>[473] Import images</title>
+</head>
+<body>
+
+<style type="text/css"><!--
+#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
+#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
+#msg dt:after { content:':';}
+#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
+#msg dl a { font-weight: bold}
+#msg dl a:link { color:#fc3; }
+#msg dl a:active { color:#ff0; }
+#msg dl a:visited { color:#cc6; }
+h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
+#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
+#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
+#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
+#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
+#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
+#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
+#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
+#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
+#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
+#logmsg pre { background: #eee; padding: 1em; }
+#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
+#logmsg dl { margin: 0; }
+#logmsg dt { font-weight: bold; }
+#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
+#logmsg dd:before { content:'\00bb';}
+#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
+#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
+#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
+#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
+#logmsg table th.Corner { text-align: left; }
+#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
+#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
+#patch { width: 100%; }
+--></style>
+<div id="msg">
+<dl class="meta">
+<dt>Revision</dt> <dd>473</dd>
+<dt>Author</dt> <dd>dmorgan</dd>
+<dt>Date</dt> <dd>2011-02-07 12:20:50 +0100 (Mon, 07 Feb 2011)</dd>
+</dl>
+
+<h3>Log Message</h3>
+<pre>Import images</pre>
+
+<h3>Added Paths</h3>
+<ul>
+<li>drakx/trunk/images/</li>
+<li><a href="#drakxtrunkimagesperl_checker">drakx/trunk/images/.perl_checker</a></li>
+<li><a href="#drakxtrunkimagesMakefile">drakx/trunk/images/Makefile</a></li>
+<li><a href="#drakxtrunkimagesNEWS">drakx/trunk/images/NEWS</a></li>
+<li><a href="#drakxtrunkimagesadvancedmsgxml">drakx/trunk/images/advanced.msg.xml</a></li>
+<li><a href="#drakxtrunkimageshelpmsgxml">drakx/trunk/images/help.msg.xml</a></li>
+<li><a href="#drakxtrunkimagesmake_boot_img">drakx/trunk/images/make_boot_img</a></li>
+<li><a href="#drakxtrunkimagesupdate_kernel">drakx/trunk/images/update_kernel</a></li>
+</ul>
+
+</div>
+<div id="patch"><pre>
+<a id="drakxtrunkimagesperl_checker">Added: drakx/trunk/images/.perl_checker</a>
+===================================================================
+--- drakx/trunk/images/.perl_checker (rev 0)
++++ drakx/trunk/images/.perl_checker 2011-02-07 11:20:50 UTC (rev 473)
+@@ -0,0 +1 @@
++XML::Parser
+
+<a id="drakxtrunkimagesMakefile">Added: drakx/trunk/images/Makefile</a>
+===================================================================
+--- drakx/trunk/images/Makefile (rev 0)
++++ drakx/trunk/images/Makefile 2011-02-07 11:20:50 UTC (rev 473)
+@@ -0,0 +1,57 @@
++include ../Makefile.config
++
++VERSION=1.50
++PRODUCT=drakx-installer-images
++KERNELS=$(shell rpm -qf /lib/modules/2.*)
++
++IMAGES_DEST = $(ROOTDEST)/install/images
++
++all: images
++
++images: all.kernels
++ DISTRIB_DESCR=$(DISTRIB_DESCR) ./make_boot_img
++ rm -rf images/alternatives
++ if [ `ls images/*.img-* 2&gt;/dev/null | wc -l` -gt 0 ]; then \
++ mkdir images/alternatives; cd images/alternatives; mv ../*.img-* .; md5sum *.img-* &gt; MD5SUM; \
++ fi
++ cd images ; md5sum *.{img,iso}* &gt; MD5SUM
++
++all.kernels: update_kernel ../kernel/list_modules.pm
++ ./update_kernel $(KERNELS)
++
++dist: tar
++tar:
++ @rm -rf $(PRODUCT)*.tar* $(PRODUCT)-$(VERSION)
++ @if [ -e &quot;.svn&quot; ]; then \
++ $(MAKE) dist-svn; \
++ elif [ -e &quot;../.git&quot; ]; then \
++ $(MAKE) dist-git; \
++ else \
++ echo &quot;Unknown SCM (not SVN nor GIT)&quot;;\
++ exit 1; \
++ fi;
++ $(info $(PRODUCT)-$(VERSION).tar.bz2 is ready)
++
++dist-svn:
++ mkdir -p $(PRODUCT)-$(VERSION)
++ svn export -q -rBASE . $(PRODUCT)-$(VERSION)/images
++ svn export -q -rBASE ../kernel $(PRODUCT)-$(VERSION)/kernel
++ cp ../Makefile.config $(PRODUCT)-$(VERSION)/
++ tar cfj $(PRODUCT)-$(VERSION).tar.bz2 $(PRODUCT)-$(VERSION)
++ rm -rf $(PRODUCT)-$(VERSION)
++
++dist-git:
++ @cd ..; git archive --prefix=$(PRODUCT)-$(VERSION)/ HEAD images kernel Makefile.config | bzip2 &gt;images/$(PRODUCT)-$(VERSION).tar.bz2;
++
++clean:
++ rm -rf images isolinux all.kernels modules.description
++ find . -name &quot;*~&quot; -o -name &quot;.#*&quot; | xargs rm -f
++
++install:
++ install -d $(IMAGES_DEST)
++ rm -rf $(IMAGES_DEST)/alternatives
++ cp -r images/* $(IMAGES_DEST)
++ ifneq (,$(findstring $(ARCH), i386 x86_64))
++ rm -rf $(ROOTDEST)/isolinux
++ cp -af isolinux $(ROOTDEST)
++ endif
+
+
+Property changes on: drakx/trunk/images/Makefile
+___________________________________________________________________
+<a id="svneolstyle">Added: svn:eol-style</a>
+ + native
+
+<a id="drakxtrunkimagesNEWS">Added: drakx/trunk/images/NEWS</a>
+===================================================================
+--- drakx/trunk/images/NEWS (rev 0)
++++ drakx/trunk/images/NEWS 2011-02-07 11:20:50 UTC (rev 473)
+@@ -0,0 +1,208 @@
++Version 1.50 - 13 Oct 2010, by Thierry Vignaud
++
++- 2011.0 build
++
++Version 1.49 - 27 May 2010, by Olivier Blin
++
++- disable restore option
++
++Version 1.48 - 28 February 2010, by Thierry Vignaud
++
++- handle new SCSI driver: mpt2sas (#57833)
++
++Version 1.47 - 4 January 2010, by Pascal Terjan
++
++- use /bin/busybox.static
++
++Version 1.46 - 12 October 2009, by Olivier Blin
++
++- properly fix FileHandle issue
++
++Version 1.45 - 12 October 2009, by Thierry Vignaud
++
++- fix firmware again (#53220)
++
++Version 1.44 - 6 October 2009, by Thierry Vignaud
++
++- do not do anything anymore with bootsplash.cfg
++
++Version 1.43 - 22 September 2009, by Olivier Blin
++
++- fix firmware loading (#49195)
++- revert squashfs-lzma and sqlzma inclusion (this breaks install)
++- list asix module in network/usb group
++
++Version 1.42 - 9 September 2009, by Pascal Terjan
++
++- include squashfs-lzma and sqlzma kernel modules in all.rdz
++- add /dev/ptmx (for screen to work)
++- drop duplicated code including busybox, ka version is better than
++ the one of DEBUGSTAGE1
++- embed all firmwares that are needed by the modules we embed
++
++Version 1.40 - 14 April 2009, by Pascal Terjan
++
++- handle firmware loading in stage2 too
++
++Version 1.39 - 6 April 2009, by Pascal Terjan
++
++- fix firmware helper generation
++
++Version 1.38 - 3 April 2009, by Thierry Vignaud
++
++- include firmwares for most common network cards (#49195)
++- pass restore instead of --restore option
++- add a userspace helper to load firmwares
++
++Version 1.37 - 3 April 2009, by Pascal Terjan
++
++- fix crypto module names when arch is not i586 (#46814)
++
++Version 1.36 - 9 March 2009, by Thierry Vignaud
++
++- add /dev/random and /dev/urandom (for curl)
++
++Version 1.35 - 18 February 2009, by Thierry Vignaud
++
++- pass --restore instead of restore option
++
++Version 1.34 - 10 February 2009, by Thierry Vignaud
++
++- enable to select restore option
++
++Version 1.33 - 23 January 2009, by Christophe Fergeau
++
++- adjust to new syslinux 3.72 gfxboot COM32 module
++
++Version 1.32 - 15 January 2008, by Thierry Vignaud
++
++- include:
++ o network drivers: enic, et131x, qlge, smsc95xx, sxg &amp; w35und
++ o IDE driver: tx4939ide
++- ext4dev was renamed as ext4 in 2.6.29-rc1 (keep ext4dev for older kernels)
++
++Version 1.31 - 19 September 2008, by Pascal &quot;pixel&quot; Rigaux
++
++- add modules &quot;sha256_generic cbc amd768_rng&quot; for crypsetup/LUKS
++
++Version 1.30 - 12 June 2008, by Olivier &quot;blino&quot; Blin
++
++- handle ide-cd being renamed as ide-cd_mod
++
++Version 1.29 - 2 April 2008, by Olivier &quot;blino&quot; Blin
++
++- use &quot;Mdv Boot ISO&quot; as label for boot.iso
++
++Version 1.28 - 12 February 2008, by Olivier &quot;blino&quot; Blin
++
++- restore full modules.alias (depmod keeps only available modules in
++ modules.alias, but we want them all)
++
++Version 1.27 - 12 February 2008, by Olivier &quot;blino&quot; Blin
++
++- add modules in /modules/`uname -r` and use depmod to build
++ modules.dep and modules.alias
++- remove symlinks in toplevel /modules
++- fix custom bootsplash theme support
++
++Version 1.26 - 21 December 2007, by Olivier &quot;blino&quot; Blin
++
++- rebuild with list_modules to handle atl2 ethernet driver
++- fix live stage2 support
++
++Version 1.25 - 12 December 2007, by Pascal &quot;Pixel&quot; Rigaux
++
++- rebuild for new list_modules
++
++Version 1.24 - 15 October 2007, by Olivier &quot;blino&quot; Blin
++
++- rebuild for new list_modules (to include ipw3945)
++
++Version 1.23 - 17 September 2007, by Pascal &quot;Pixel&quot; Rigaux
++
++- add dm-zero for dmraid
++
++Version 1.22 - 11 September 2007, by Olivier &quot;blino&quot; Blin
++
++- add /lib/module-init-tools/ldetect-lst-modules.alias
++
++Version 1.21 - 7 September 2007, by Olivier &quot;blino&quot; Blin
++
++- add jmicron driver
++- provide /usr/share/ldetect-lst/*-modules.alias in installer images
++
++Version 1.20 - 31 August 2007, by Pascal &quot;Pixel&quot; Rigaux
++
++- dynamically determine the size of all.img
++
++Version 1.19 - 27 August 2007, by Olivier &quot;blino&quot; Blin
++
++- add raid456 module
++
++Version 1.18 - 21 August 2007, by Olivier &quot;blino&quot; Blin
++
++- release with latest scripts from drakx/kernel
++
++Version 1.17 - 21 August 2007, by Olivier &quot;blino&quot; Blin
++
++- keep modules without dependencies in modules.dep
++
++Version 1.16 - 21 August 2007, by Olivier &quot;blino&quot; Blin
++
++- build with new list_modules
++
++Version 1.15 - 15 August 2007, by Olivier &quot;blino&quot; Blin
++
++- add pcitable, usbtable and pci.ids
++- fix typos affecting mtab and /var/run creation
++- add a /lib/modules symlink
++
++Version 1.14 - 9 August 2007, by Pascal &quot;Pixel&quot; Rigaux
++
++- update_kernel: now require install rpms or rpm files as arguments
++ (this allow specifying precisely which installed kernels are used)
++
++Version 1.13 - 8 August 2007, by Pascal &quot;Pixel&quot; Rigaux
++
++- add modules.alias in /modules/&lt;version&gt; as required by stage2 with new libldetect
++- add unionfs module
++- revert isolinux starting install by default instead of booting on harddrive (#32040)
++
++Version 1.12 - 17 July 2007, by Olivier &quot;blino&quot; Blin
++
++- add ide-disk module
++
++Version 1.11 - 29 June 2007, by Pascal &quot;Pixel&quot; Rigaux
++
++- increase all.img size to 10.5MB
++- default to theme Mandriva-Free, and allow setting another one through THEME
++ environment variable
++
++Version 1.9 - 3 April 2007, by Pascal &quot;Pixel&quot; Rigaux
++
++- include mmc_block for card readers
++
++Version 1.8 - 23 March 2007, by Pascal &quot;Pixel&quot; Rigaux
++
++- restore F1 &amp; F2 in boot.iso (#29766)
++
++Version 1.6 - 14 March 2007, by Olivier Blin
++
++- add tifm modules (Titi)
++
++Version 1.5 - 9 March 2007, by Pascal &quot;Pixel&quot; Rigaux
++
++- copy isolinux images for x86_64 as well
++
++Version 1.4 - 8 March 2007, by Pascal &quot;Pixel&quot; Rigaux
++
++- restore vga= and automatic= default options.
++ also restore noacpi, alt0, vgalo, vgahi, text entries
++ (all this is needed when gfxboot is not working or not there)
++
++Version 1.3 - 16 February 2007, by Pascal &quot;Pixel&quot; Rigaux
++
++- rely on gfxboot for options (vga=, automatic=...)
++- really use memtest instead of memtest.bin
++ (with file name &quot;memtest.bin&quot; it fails with error 8000, with &quot;memtest&quot; it works)
++ (it seems to be an ancient bug as far as google says)
+
+<a id="drakxtrunkimagesadvancedmsgxml">Added: drakx/trunk/images/advanced.msg.xml</a>
+===================================================================
+--- drakx/trunk/images/advanced.msg.xml (rev 0)
++++ drakx/trunk/images/advanced.msg.xml 2011-02-07 11:20:50 UTC (rev 473)
+@@ -0,0 +1,17 @@
++&lt;document&gt;
++The following install types may be used instead of previously notified :
++ o &lt;white&gt;vgahi&lt;/white&gt; for high resolution graphical installation.
++ o &lt;white&gt;vga16&lt;/white&gt; for 640x480 in 16 colors graphical installation.
++
++The following options may be added on the command line :
++ o &lt;white&gt;readonly=1&lt;/white&gt; to disable editing disk partitions.
++ o &lt;white&gt;display=ackbar:0&lt;/white&gt; to export display to &lt;blue&gt;ackbar&lt;/blue&gt; machine screen 0 during
++ installation (only for network installations).
++ o &lt;white&gt;noauto&lt;/white&gt; to disable automatic detection.
++ o &lt;white&gt;nodmraid&lt;/white&gt; to disable BIOS software RAID.
++ o &lt;white&gt;updatemodules&lt;/white&gt; to use the special update floppy containing modules updates.
++ o &lt;white&gt;patch&lt;/white&gt; to use a patch from the floppy (file named &lt;blue&gt;patch.pl&lt;/blue&gt;).
++ o &lt;white&gt;auto_install=floppy&lt;/white&gt; to enable auto_install using &lt;blue&gt;auto_inst.cfg&lt;/blue&gt; file on the
++ floppy.
++ o &lt;white&gt;memtest&lt;/white&gt; to test your computer RAM for faulty memory modules.
++&lt;/document&gt;
+
+<a id="drakxtrunkimageshelpmsgxml">Added: drakx/trunk/images/help.msg.xml</a>
+===================================================================
+--- drakx/trunk/images/help.msg.xml (rev 0)
++++ drakx/trunk/images/help.msg.xml 2011-02-07 11:20:50 UTC (rev 473)
+@@ -0,0 +1,21 @@
++&lt;document&gt;
++ &lt;green&gt;Welcome to &lt;blue&gt;Mageia&lt;/blue&gt; install help&lt;/green&gt;
++
++In most cases, the best way to get started is to simply press the &lt;yellow&gt;&amp;lt;Enter&amp;gt;&lt;/yellow&gt; key.
++If you experience problems with standard install, try one of the following
++install types (type the highlighted text and press &lt;yellow&gt;&amp;lt;Enter&amp;gt;&lt;/yellow&gt;):
++
++ o &lt;white&gt;text&lt;/white&gt; for text installation instead of the graphical one.
++ o &lt;white&gt;linux&lt;/white&gt; for standard graphical installation at normal resolution.
++ o &lt;white&gt;linux vga=785&lt;/white&gt; for low resolution graphical installation.
++
++
++To repair an already installed system type &lt;white&gt;rescue&lt;/white&gt; followed
++by &lt;yellow&gt;&amp;lt;Enter&amp;gt;&lt;/yellow&gt;.
++
++You can also pass some &lt;white&gt;&amp;lt;specific kernel options&amp;gt;&lt;/white&gt; to the Linux kernel.
++For example, try &lt;white&gt;linux noapic&lt;/white&gt; if your system has trouble operating
++your network adapter correctly.
++&lt;red&gt;NOTE&lt;/red&gt;: You cannot pass options to modules (SCSI, ethernet card) or devices
++such as CD-ROM drives in this way. If you need to do so, use noauto mode.
++&lt;/document&gt;
+
+<a id="drakxtrunkimagesmake_boot_img">Added: drakx/trunk/images/make_boot_img</a>
+===================================================================
+--- drakx/trunk/images/make_boot_img (rev 0)
++++ drakx/trunk/images/make_boot_img 2011-02-07 11:20:50 UTC (rev 473)
+@@ -0,0 +1,826 @@
++#!/usr/bin/perl
++
++use Config;
++use FileHandle;
++use MDK::Common;
++Config-&gt;import;
++my ($arch) = $Config{archname} =~ /(.*?)-/;
++
++my $default_append = '';
++my $default_acpi = '';
++my $default_vga = &quot;vga=788 splash=silent&quot;;
++my $timeout = 150;
++my $isolinux_bin = $arch eq 'x86_64' ? '/usr/lib/syslinux/isolinux-x86_64.bin' : '/usr/lib/syslinux/isolinux-i586.bin';
++my $lib = $arch eq 'x86_64' ? 'lib64' : 'lib';
++
++my $tmp_mnt = '/tmp/drakx_mnt';
++my $tmp_initrd = '/tmp/drakx_initrd';
++
++my $sudo;
++if ($&gt;) {
++ $sudo = &quot;sudo&quot;;
++ $ENV{PATH} = &quot;/sbin:/usr/sbin:$ENV{PATH}&quot;;
++}
++
++sub __ { print @_, &quot;\n&quot;; system(@_) }
++sub _ { __ @_; $? and die }
++sub mke2fs {
++ my ($f) = @_;
++ _ &quot;/sbin/mke2fs -q -m 0 -F -s 1 $f&quot;;
++ _ &quot;/sbin/tune2fs -c 0 -U clear -T 1970010101 $f&quot;;
++}
++
++_ &quot;mkdir -p $tmp_mnt&quot;;
++mkdir &quot;images&quot;;
++
++my @kernels = chomp_(cat_('all.kernels/.list'));
++
++my @all_images = (
++ if_($arch =~ /i.86/, 'isolinux', 'boot.iso', 'all.img', 'hd_grub.img'),
++ if_($arch =~ /x86_64/, 'isolinux', 'boot.iso', 'all.img', 'hd_grub.img'),
++ if_($arch =~ /ia64/, 'all.img'),
++ if_($arch =~ /ppc/, 'all.img'),
++ );
++
++my @images = @ARGV ? @ARGV : map { &quot;images/$_&quot; } @all_images;
++
++foreach my $img (@images) {
++ my ($type, $I, $extension) = $img =~ m!([^/]*)(64)?\.([^.]*)$!;
++
++ if ($img =~ /hd_grub/) {
++ hd_grub($img);
++ } elsif ($img =~ /isolinux/) {
++ isolinux(\@kernels);
++
++ if (my ($tftpboot) = grep { -e $_ } qw(/tftpboot /var/lib/tftpboot)) {
++ system(&quot;/bin/cp -f isolinux/alt0/* $tftpboot&quot;);
++ }
++ } elsif ($img =~ /boot.iso/) {
++ boot_iso($img, \@kernels);
++ } elsif ($extension eq 'rdz') {
++ initrd($type, $I, &quot;$img-$_&quot;) foreach @kernels;
++ } elsif ($extension eq 'img') {
++ print STDERR &quot;calling boot_img_$arch for $img\n&quot;;
++ $::{&quot;boot_img_$arch&quot;}-&gt;($type, $I, &quot;$img-$_&quot;, &quot;all.kernels/$_/vmlinuz&quot;) foreach @kernels;
++ rename(&quot;$img-$kernels[0]&quot;, $img);
++ } else {
++ die &quot;unknown image $img&quot;;
++ }
++}
++
++sub syslinux_color {
++ &quot;0&quot; . {
++ default =&gt; '7',
++ blue =&gt; '9',
++ green =&gt; 'a',
++ red =&gt; 'c',
++ yellow =&gt; 'e',
++ white =&gt; 'f',
++ }-&gt;{$_[0]} || die &quot;unknown color $_[0]\n&quot;;
++}
++
++sub syslinux_msg {
++ my ($msg_xml_file, @more_text) = @_;
++
++ require XML::Parser;
++
++ sub xml_tree2syslinux {
++ my ($current_color, $tree) = @_;
++ my (undef, @l) = @$tree;
++ join('', map {
++ my ($type, $val) = @$_;
++ if ($type eq '0') {
++ $val;
++ } else {
++ syslinux_color($type) . xml_tree2syslinux($type, $val) . syslinux_color($current_color);
++ }
++ } group_by2(@l));
++ }
++
++ print &quot;parsing $msg_xml_file\n&quot;;
++ my $tree = XML::Parser-&gt;new(Style =&gt; 'Tree')-&gt;parsefile($msg_xml_file);
++ $tree-&gt;[0] eq 'document' or die &quot;bad file $msg_xml_file\n&quot;;
++ my $text = xml_tree2syslinux('default', $tree-&gt;[1]);
++
++ pack(&quot;C*&quot;, 0x0E, 0x80, 0x03, 0x00) . &quot; &quot;
++ . $text . join('', @more_text)
++ . &quot;\n&quot; . syslinux_color('red') . &quot;[F1-Help] [F2-Advanced Help]&quot; . syslinux_color('default') . &quot;\n&quot;;
++}
++
++sub syslinux_cfg {
++ my ($entries, $b_gfxboot) = @_;
++ my $default = 'linux';
++
++ my $header = &lt;&lt;EOF;
++default $default
++prompt 1
++timeout $timeout
++display help.msg
++implicit 1
++EOF
++ my $header_gfxboot = &lt;&lt;EOF;
++ui gfxboot.com bootlogo
++label harddisk
++ localboot 0x80
++EOF
++ my $header_non_gfxboot = &lt;&lt;EOF;
++F1 help.msg
++F2 advanced.msg
++F3 boot.msg
++EOF
++
++ my @l = map {
++ $_-&gt;{append} =~ s/\s+/ /g;
++ &quot;label $_-&gt;{label}\n&quot; .
++ &quot; kernel $_-&gt;{kernel}\n&quot; .
++ ($_-&gt;{initrd} ? &quot; append initrd=$_-&gt;{initrd} $_-&gt;{append}\n&quot; : '');
++ } @$entries;
++
++ $header . ($b_gfxboot ? $header_gfxboot : $header_non_gfxboot) . join('', @l);
++}
++
++sub initrd {
++ my ($type, $I, $img) = @_;
++ my $stage1_root = $ENV{DEBUGSTAGE1} ? &quot;../mdk-stage1&quot; : &quot;/usr/$lib/drakx-installer-binaries&quot;;
++ my ($ext) = $img =~ /rdz-(.*)/ or die &quot;bad initrd name ($img)&quot;;
++
++ _ &quot;rm -rf $tmp_initrd&quot;;
++ mkdir_p(&quot;$tmp_initrd$_&quot;) foreach qw(/etc /firmware /lib /modules /sbin /tmp /var);
++ symlink &quot;../modules&quot;, &quot;$tmp_initrd/lib/modules&quot;;
++ symlink &quot;../firmware&quot;, &quot;$tmp_initrd/lib/firmware&quot;;
++
++ symlink &quot;/proc/mounts&quot;, &quot;$tmp_initrd/etc/mtab&quot;;
++ symlink &quot;../tmp&quot;, &quot;$tmp_initrd/var/run&quot;;
++ _ &quot;install -D /usr/share/terminfo/l/linux $tmp_initrd/usr/share/terminfo/l/linux&quot;;
++ foreach ('pcitable', 'usbtable') {
++ _ &quot;install -D /usr/share/ldetect-lst/$_.gz $tmp_initrd/usr/share/ldetect-lst/$_.gz&quot;;
++ }
++ _ &quot;install -D /usr/share/pci.ids $tmp_initrd/usr/share/pci.ids&quot;;
++ foreach (&quot;/usr/share/ldetect-lst/fallback-modules.alias&quot;, &quot;/lib/module-init-tools/ldetect-lst-modules.alias&quot;) {
++ _ &quot;install -D $_ $tmp_initrd$_&quot;;
++ }
++ foreach my $firm (glob_(&quot;all.kernels$I/$ext/firmware/*&quot;)) {
++ my $dest=$firm;
++ $dest =~ s|all.kernels$I/$ext/||;
++ _ &quot;cp -a $firm $tmp_initrd/$dest&quot;;
++ };
++
++ output(&quot;$tmp_initrd/hotplug&quot;, q{#!/bin/sh -e
++if [ &quot;$SUBSYSTEM&quot; = firmware ] &amp;&amp; [ &quot;$ACTION&quot; = add ] &amp;&amp; [ -n &quot;$FIRMWARE&quot; ] ; then
++ if [ ! -e /sys$DEVPATH/loading ]; then
++ exit 1
++ fi
++ if [ -e &quot;/lib/firmware/$FIRMWARE&quot; ]; then
++ echo 1 &gt; /sys$DEVPATH/loading
++ cat &quot;/lib/firmware/$FIRMWARE&quot; &gt; /sys$DEVPATH/data
++ echo 0 &gt; /sys$DEVPATH/loading
++ exit 0
++ fi
++ echo -1 &gt; /sys$DEVPATH/loading
++ exit 1
++fi
++});
++ _ &quot;chmod 755 $tmp_initrd/hotplug&quot;;
++ symlink &quot;../hotplug&quot;, &quot;$tmp_initrd/sbin/hotplug&quot;;
++ _ &quot;install $stage1_root/init $tmp_initrd/&quot;;
++ foreach ('stage1', 'pppd', 'pppoe') {
++ _ &quot;install $stage1_root/$_ $tmp_initrd/sbin/&quot;;
++ }
++
++ if ($arch !~ /ppc|ia64/) {
++ mkdir_p(&quot;$tmp_initrd/etc/pcmcia&quot;);
++ _ &quot;cp -a /etc/pcmcia/config.opts $tmp_initrd/etc/pcmcia&quot;;
++ }
++ {
++ my $modz = &quot;all.kernels$I/$ext&quot;;
++ mkdir_p(&quot;$tmp_initrd/modules/$ext&quot;);
++ __ &quot;tar xC $tmp_initrd/modules/$ext -f $modz/${type}_modules.tar&quot;;
++ _ &quot;depmod -b $tmp_initrd $ext&quot;;
++ # depmod keeps only available modules in modules.alias, but we want them all
++ _ &quot;cp -f $modz/modules.alias $modz/modules.description $tmp_initrd/modules/$ext&quot;;
++ }
++ # ka deploy need some files in all.rdz
++ {
++ mkdir_p(&quot;$tmp_initrd/$_&quot;) foreach qw(dev ka proc var/tmp tmp/stage2);
++ symlink(&quot;/sbin&quot;, &quot;$tmp_initrd/bin&quot;);
++ cp_af(&quot;/usr/bin/ka-d-client&quot;, &quot;$tmp_initrd/ka/ka-d-client&quot;);
++ cp_af(&quot;/bin/busybox.static&quot;, &quot;$tmp_initrd/sbin/busybox&quot;);
++ my @funct = map { /functions:/ .. /^$/ ? do { s/\s//g; split /,/ } : () } `busybox.static`;
++ shift @funct;
++ symlink('busybox', $tmp_initrd . &quot;/sbin/$_&quot;) foreach @funct;
++ }
++
++ my $devs = sprintf &quot;ls /dev/{%s}&quot;, join(',', qw(console fb0 fd0 loop3 mem null ppp ptmx ptyp0 ram3 random tty[0-7] ttyp0 ttyS0 urandom));
++
++ _ &quot;(cd $tmp_initrd; (find . ; $devs) | cpio -o -c --quiet) | gzip -9 &gt; $img&quot;;
++ _ &quot;rm -rf $tmp_initrd&quot;;
++}
++
++sub entries_append {
++ my ($type) = @_;
++
++ my $automatic = $type =~ /cdrom/ ? 'automatic=method:cdrom ' : '';
++ $automatic .= 'changedisk ' if $type =~ /changedisk/;
++
++ my @simple_entries = (
++ linux =&gt; $default_vga,
++ vgalo =&gt; &quot;vga=785&quot;,
++ vgahi =&gt; &quot;vga=791&quot;,
++ text =&gt; &quot;text&quot;,
++# patch =&gt; &quot;patch $default_vga&quot;,
++ rescue =&gt; &quot;rescue&quot;,
++ );
++ my @entries = (
++ (map { $_-&gt;[0] =&gt; &quot;$automatic$default_acpi $_-&gt;[1]&quot; } group_by2(@simple_entries)),
++ noacpi =&gt; &quot;$automatic$default_vga acpi=off&quot;,
++# restore =&gt; &quot;$automatic$default_vga restore&quot;,
++ );
++
++ map { { label =&gt; $_-&gt;[0], append =&gt; join(' ', grep { $_ } $default_append, $_-&gt;[1]) } }
++ group_by2(@entries);
++}
++
++sub syslinux_cfg_all {
++ my ($type, $b_gfxboot) = @_;
++
++ syslinux_cfg([
++ (map {
++ { kernel =&gt; 'alt0/vmlinuz', initrd =&gt; 'alt0/all.rdz', %$_ };
++ } entries_append($type)),
++ (map_index {
++ { label =&gt; &quot;alt$::i&quot;, kernel =&gt; &quot;alt$::i/vmlinuz&quot;, initrd =&gt; &quot;alt$::i/all.rdz&quot;,
++ append =&gt; join(' ', grep { $_ } $default_append, $default_acpi, $default_vga) };
++ } @kernels),
++ { label =&gt; 'memtest', kernel =&gt; 'memtest' },
++ ], $b_gfxboot);
++}
++sub remove_ending_zero {
++ my ($img) = @_;
++ _(q(perl -0777 -pi -e 's/\0+$//' ) . $img);
++}
++
++sub boot_img_i386 {
++ my ($type, $I, $img, $kernel) = @_;
++
++ _ &quot;rm -rf $tmp_mnt&quot;; mkdir $tmp_mnt;
++ _ &quot;cat $kernel &gt; $tmp_mnt/vmlinuz&quot;;
++
++ output(&quot;$tmp_mnt/help.msg&quot;, syslinux_msg('help.msg.xml'));
++ output(&quot;$tmp_mnt/advanced.msg&quot;, syslinux_msg('advanced.msg.xml'));
++
++ (my $rdz = $img) =~ s/\.img/.rdz/;
++ (my $initrd_type = $type) =~ s/-changedisk//;
++ initrd($initrd_type, $I, $rdz);
++ my $short_type = substr($type, 0, 8);
++
++ output(&quot;$tmp_mnt/syslinux.cfg&quot;,
++ syslinux_cfg([ map {
++ { kernel =&gt; 'vmlinuz', initrd =&gt; &quot;$short_type.rdz&quot;, %$_ };
++ } entries_append($type) ]));
++
++ _ &quot;cp -f $rdz $tmp_mnt/$short_type.rdz&quot;;
++ unlink $rdz;
++
++ my $size = max(chomp_(`du -s -k $tmp_mnt`) + 50, 1440);
++ _ &quot;dd if=/dev/zero of=$img bs=1k count=$size&quot;;
++
++ _ &quot;mkdosfs-with-dir $tmp_mnt $img&quot;;
++ _ &quot;syslinux $img&quot;;
++ _ &quot;rm -rf $tmp_mnt&quot;;
++}
++
++# alias to x86 variant, slightly bigger with images though
++sub boot_img_x86_64 { &amp;boot_img_i386 }
++
++sub boot_img_alpha {
++ my ($type, $I, $img) = @_;
++
++ __ &quot;$sudo umount $tmp_mnt 2&gt;/dev/null&quot;;
++ _ &quot;dd if=/dev/zero of=$img bs=1k count=1440&quot;;
++ mke2fs($img);
++ _ &quot;/sbin/e2writeboot $img /boot/bootlx&quot;;
++ _ &quot;$sudo mount -t ext2 $img $tmp_mnt -o loop&quot;;
++ _ &quot;cp -f vmlinux.gz $tmp_mnt&quot;;
++ -f &quot;$type.rdz&quot; ? _ &quot;cp -f $type.rdz $tmp_mnt&quot; : initrd($type, $I, &quot;$tmp_mnt/$type.rdz&quot;);
++
++ mkdir &quot;$tmp_mnt/etc&quot;, 0777;
++ output(&quot;$tmp_mnt/etc/aboot.conf&quot;,
++&quot;0:vmlinux.gz initrd=$type.rdz rw $default_append $type
++1:vmlinux.gz initrd=$type.rdz rw $default_append text $type
++&quot;);
++ _ &quot;sync&quot;;
++ _ &quot;df $tmp_mnt&quot;;
++}
++
++sub boot_img_ia64 {
++ my ($type, $_I, $img, $kernel) = @_;
++ my $rdz = $img; $rdz =~ s/\.img/.rdz/;
++
++ __ &quot;$sudo umount $tmp_mnt 2&gt;/dev/null&quot;;
++ _ &quot;dd if=/dev/zero of=$img bs=1k count=16384&quot;;
++ _ &quot;mkdosfs $img&quot;;
++ _ &quot;$sudo mount -t vfat $img $tmp_mnt -o loop,umask=000&quot;;
++ _ &quot;$sudo cp -f $kernel $tmp_mnt/vmlinux&quot;;
++ _ &quot;cp -f $rdz $tmp_mnt/$type.rdz&quot;;
++ _ &quot;$sudo cp -f tools/ia64/elilo.efi $tmp_mnt&quot;;
++ output(&quot;$tmp_mnt/elilo.conf&quot;, qq(
++prompt
++timeout=50
++
++image=vmlinux
++ label=linux
++ initrd=$type.rdz
++ append=&quot; ramdisk_size=120000&quot;
++ read-only
++
++image=vmlinux
++ label=rescue
++ initrd=$type.rdz
++ append=&quot; rescue ramdisk_size=120000&quot;
++&quot;));
++ _ &quot;sync&quot;;
++ _ &quot;df $tmp_mnt&quot;;
++
++}
++
++sub boot_img_sparc {
++ my ($type, $I, $_img) = @_;
++ if ($type =~ /^live(.*)/) {
++ #- hack to produce directly into /export the needed file for cdrom boot.
++ my $dir = &quot;/export&quot;;
++ my $boot = &quot;boot&quot;; #- non-absolute pathname only!
++
++ _ &quot;mkdir -p $dir/$boot&quot;;
++ _ &quot;cp -f /boot/cd.b /boot/second.b $dir/$boot&quot;;
++ _ &quot;cp -f vmlinux$1 $dir/$boot/vmlinux$1&quot;;
++ -f &quot;live$1.rdz&quot; ? _ &quot;cp -f live$1.rdz $dir/$boot&quot; : initrd($type, $I, &quot;$dir/$boot/live$1.rdz&quot;);
++
++ output(&quot;$dir/$boot/silo.conf&quot;, qq(
++partition=1
++default=linux
++timeout=100
++read-write
++message=/$boot/boot.msg
++image=&quot;cat /$boot/boot.msg&quot;
++ label=1
++ single-key
++image=&quot;cat /$boot/general.msg&quot;
++ label=2
++ single-key
++image=&quot;cat /$boot/expert.msg&quot;
++ label=3
++ single-key
++image=&quot;cat /$boot/rescue.msg&quot;
++ label=4
++ single-key
++image=&quot;cat /$boot/kickit.msg&quot;
++ label=5
++ single-key
++image=&quot;cat /$boot/param.msg&quot;
++ label=6
++ single-key
++image[sun4c,sun4d,sun4m]=/$boot/vmlinux
++ label=linux
++ alias=install
++ initrd=/$boot/live.rdz
++ append=&quot;ramdisk_size=128000&quot;
++image[sun4c,sun4d,sun4m]=/$boot/vmlinux
++ label=text
++ initrd=/$boot/live.rdz
++ append=&quot;ramdisk_size=128000 text&quot;
++image[sun4c,sun4d,sun4m]=/$boot/vmlinux
++ label=expert
++ initrd=/$boot/live.rdz
++ append=&quot;ramdisk_size=128000 expert&quot;
++image[sun4c,sun4d,sun4m]=/$boot/vmlinux
++ label=ks
++ initrd=/$boot/live.rdz
++ append=&quot;ramdisk_size=128000 ks&quot;
++image[sun4c,sun4d,sun4m]=/$boot/vmlinux
++ label=rescue
++ initrd=/$boot/live.rdz
++ append=&quot;ramdisk_size=128000 rescue&quot;
++image[sun4u]=/$boot/vmlinux64
++ label=linux
++ alias=install
++ initrd=/$boot/live64.rdz
++ append=&quot;ramdisk_size=128000&quot;
++image[sun4u]=/$boot/vmlinux64
++ label=text
++ initrd=/$boot/live64.rdz
++ append=&quot;ramdisk_size=128000 text&quot;
++image[sun4u]=/$boot/vmlinux64
++ label=expert
++ initrd=/$boot/live64.rdz
++ append=&quot;ramdisk_size=128000 expert&quot;
++image[sun4u]=/$boot/vmlinux64
++ label=ks
++ initrd=/$boot/live64.rdz
++ append=&quot;ramdisk_size=128000 ks&quot;
++image[sun4u]=/$boot/vmlinux64
++ label=rescue
++ initrd=/$boot/live64.rdz
++ append=&quot;ramdisk_size=128000 rescue&quot;
++&quot;));
++
++ output(&quot;$dir/$boot/README&quot;, &quot;
++To Build a Bootable CD-ROM, try:
++ genisoimage -R -o t.iso -s /$boot/silo.conf /export
++&quot;);
++ } elsif ($type =~ /^tftprd(.*)/) {
++ my $dir = &quot;/export&quot;;
++ my $boot = &quot;images&quot;;
++ my $setarch = $1 ? &quot;sparc64&quot; : &quot;sparc32&quot;;
++
++ _ &quot;mkdir -p $dir/$boot&quot;;
++ -f &quot;$type.rdz&quot; or initrd($type, $I, &quot;$type.rdz&quot;);
++ _ &quot;cp -f vmlinux$1.aout $dir/$boot/$type.img&quot;;
++ _ &quot;$setarch kernel$1/src/arch/sparc$1/boot/piggyback $dir/$boot/$type.img kernel$1/boot/System.map $type.rdz&quot;;
++ } elsif ($type =~ /^tftp(.*)/) {
++ my $dir = &quot;/export&quot;;
++ my $boot = &quot;images&quot;;
++
++ _ &quot;mkdir -p $dir/$boot&quot;;
++ _ &quot;cp -f vmlinux$1.aout $dir/$boot/$type.img&quot;;
++ } else {
++ my $dir = &quot;floppy&quot;;
++ __ &quot;$sudo umount $tmp_mnt 2&gt;/dev/null&quot;;
++ _ &quot;rm -rf $dir&quot;;
++ _ &quot;mkdir -p $dir&quot;;
++ _ &quot;cp -f /boot/fd.b /boot/second.b $dir&quot;;
++ _ &quot;cp -f vmlinuz$I $dir/vmlinux$I.gz&quot;;
++ -f &quot;$type.rdz&quot; ? _ &quot;cp -f $type.rdz $dir&quot; : initrd($type, $I, &quot;$dir/$type.rdz&quot;);
++
++ output(&quot;$dir/boot.msg&quot;, &quot;
++Welcome to Mageia 1
++
++Press &lt;Enter&gt; to install or upgrade a system 7mMageia7m
++&quot;);
++
++ output(&quot;$dir/silo.conf&quot;, qq(
++partition=1
++default=linux
++timeout=100
++read-write
++message=/boot.msg
++image=/vmlinux$I.gz
++ label=linux
++ initrd=/$type.rdz
++ append=&quot;ramdisk_size=128000 $type&quot;
++&quot;));
++ _ &quot;genromfs -d $dir -f /dev/ram -A 2048,/.. -a 512 -V 'DrakX boot disk'&quot;;
++ _ &quot;$sudo mount -t romfs /dev/ram $tmp_mnt&quot;;
++ _ &quot;silo -r $tmp_mnt -F -i /fd.b -b /second.b -C /silo.conf&quot;;
++ _ &quot;$sudo umount $tmp_mnt&quot;;
++ _ &quot;dd if=/dev/ram of=$type.img bs=1440k count=1&quot;;
++ _ &quot;sync&quot;;
++ _ &quot;$sudo mount -t romfs /dev/ram $tmp_mnt&quot;;
++ _ &quot;df $tmp_mnt&quot;;
++ }
++}
++
++sub boot_img_ppc {
++ my ($_type, $I, $_img, $_kernel) = @_;
++ foreach (glob(&quot;all.kernels/*&quot;)) {
++ my $ext = basename($_);
++ if ($ext =~ /legacy/) {
++ initrd(&quot;all&quot;, $I, &quot;images/all.rdz-$ext&quot;);
++ _ &quot;mv images/all.rdz-$ext images/all.rdz-legacy&quot;;
++ _ &quot;cp $_/vmlinuz images/vmlinux-legacy&quot;;
++ }
++ elsif ($ext =~ /2.6/) {
++ initrd(&quot;all&quot;, $I, &quot;images/all.rdz-$ext&quot;);
++ _ &quot;mv images/all.rdz-$ext images/all.rdz&quot;;
++ _ &quot;cp $_/vmlinuz images/vmlinux&quot;;
++ }
++ }
++ _ &quot;cp -f /usr/lib/yaboot/yaboot images/yaboot&quot;;
++
++ output(&quot;images/ofboot.b&quot;, '&lt;CHRP-BOOT&gt;
++&lt;COMPATIBLE&gt;
++MacRISC
++&lt;/COMPATIBLE&gt;
++&lt;DESCRIPTION&gt;
++Mageia PPC bootloader
++&lt;/DESCRIPTION&gt;
++&lt;BOOT-SCRIPT&gt;
++&quot; screen&quot; output
++load-base release-load-area
++dev screen
++&quot; &quot;(0000000000aa00aa0000aaaaaa0000aa00aaaa5500aaaaaa)&quot; drop 0 8 set-colors
++&quot; &quot;(5555555555ff55ff5555ffffff5555ff55ffffff55ffffff)&quot; drop 8 8 set-colors
++device-end
++3 to foreground-color
++0 to background-color
++&quot; &quot;(0C)&quot; fb8-write drop
++&quot; Booting Mageia PPC...&quot; fb8-write drop 100 ms
++boot cd:,\boot\yaboot
++&lt;/BOOT-SCRIPT&gt;
++&lt;OS-BADGE-ICONS&gt;
++1010
++000000000000F8FEACF6000000000000
++0000000000F5FFFFFEFEF50000000000
++00000000002BFAFEFAFCF70000000000
++0000000000F65D5857812B0000000000
++0000000000F5350B2F88560000000000
++0000000000F6335708F8FE0000000000
++00000000005600F600F5FD8100000000
++00000000F9F8000000F5FAFFF8000000
++000000008100F5F50000F6FEFE000000
++000000F8F700F500F50000FCFFF70000
++00000088F70000F50000F5FCFF2B0000
++0000002F582A00F5000008ADE02C0000
++00090B0A35A62B0000002D3B350A0000
++000A0A0B0B3BF60000505E0B0A0B0A00
++002E350B0B2F87FAFCF45F0B2E090000
++00000007335FF82BF72B575907000000
++000000000000ACFFFF81000000000000
++000000000081FFFFFFFF810000000000
++0000000000FBFFFFFFFFAC0000000000
++000000000081DFDFDFFFFB0000000000
++000000000081DD5F83FFFD0000000000
++000000000081DDDF5EACFF0000000000
++0000000000FDF981F981FFFF00000000
++00000000FFACF9F9F981FFFFAC000000
++00000000FFF98181F9F981FFFF000000
++000000ACACF981F981F9F9FFFFAC0000
++000000FFACF9F981F9F981FFFFFB0000
++00000083DFFBF981F9F95EFFFFFC0000
++005F5F5FDDFFFBF9F9F983DDDD5F0000
++005F5F5F5FDD81F9F9E7DF5F5F5F5F00
++0083DD5F5F83FFFFFFFFDF5F835F0000
++000000FBDDDFACFBACFBDFDFFB000000
++000000000000FFFFFFFF000000000000
++0000000000FFFFFFFFFFFF0000000000
++0000000000FFFFFFFFFFFF0000000000
++0000000000FFFFFFFFFFFF0000000000
++0000000000FFFFFFFFFFFF0000000000
++0000000000FFFFFFFFFFFF0000000000
++0000000000FFFFFFFFFFFFFF00000000
++00000000FFFFFFFFFFFFFFFFFF000000
++00000000FFFFFFFFFFFFFFFFFF000000
++000000FFFFFFFFFFFFFFFFFFFFFF0000
++000000FFFFFFFFFFFFFFFFFFFFFF0000
++000000FFFFFFFFFFFFFFFFFFFFFF0000
++00FFFFFFFFFFFFFFFFFFFFFFFFFF0000
++00FFFFFFFFFFFFFFFFFFFFFFFFFFFF00
++00FFFFFFFFFFFFFFFFFFFFFFFFFF0000
++000000FFFFFFFFFFFFFFFFFFFF000000
++&lt;/OS-BADGE-ICONS&gt;
++&lt;/CHRP-BOOT&gt;
++');
++
++ output(&quot;images/yaboot.conf&quot;, '
++init-message = &quot;\nWelcome to Mageia PPC!\nHit &lt;TAB&gt; for boot options.\n\n&quot;
++timeout = 150
++device=cd:
++default = install-gui
++message=/boot/yaboot.msg
++
++image = /boot/vmlinux
++ label = install-gui
++ initrd = /boot/all.gz
++ initrd-size = 34000
++ append = &quot; ramdisk_size=128000&quot;
++
++image = /boot/vmlinux-power4
++ label = install-gui-power4
++ initrd = /boot/all-power4.gz
++ initrd-size = 34000
++ append = &quot; ramdisk_size=128000&quot;
++
++image = /boot/vmlinux
++ label = install-text
++ initrd = /boot/all.gz
++ initrd-size = 34000
++ append = &quot; text ramdisk_size=128000&quot;
++
++image = /boot/vmlinux-power4
++ label = install-text-power4
++ initrd = /boot/all-power4.gz
++ initrd-size = 34000
++ append = &quot; text ramdisk_size=128000&quot;
++
++image = /boot/vmlinux
++ label = install-gui-old
++ initrd = /boot/all.gz
++ initrd-size = 34000
++ append = &quot; gui-old ramdisk_size=128000&quot;
++
++image = /boot/vmlinux-power4
++ label = install-gui-old-power4
++ initrd = /boot/all-power4.gz
++ initrd-size = 34000
++ append = &quot; gui-old ramdisk_size=128000&quot;
++
++image = enet:0,vmlinux
++ label = install-net
++ initrd = enet:0,all.gz
++ initrd-size = 34000
++ append = &quot; ramdisk_size=128000&quot;
++
++image = enet:0,vmlinux-power4
++ label = install-net-power4
++ initrd = enet:0,all-power4.gz
++ initrd-size = 34000
++ append = &quot; ramdisk_size=128000&quot;
++
++image = enet:0,vmlinux
++ label = install-net-text
++ initrd = enet:0,all.gz
++ initrd-size = 34000
++ append = &quot; text ramdisk_size=128000&quot;
++
++image = enet:0,vmlinux-power4
++ label = install-net-text-power4
++ initrd = enet:0,all-power4.gz
++ initrd-size = 34000
++ append = &quot; text ramdisk_size=128000&quot;
++
++image = /boot/vmlinux
++ label = rescue
++ initrd = /boot/all.gz
++ initrd-size = 34000
++ append = &quot; rescue ramdisk_size=128000&quot;
++
++image = /boot/vmlinux-power4
++ label = rescue-power4
++ initrd = /boot/all-power4.gz
++ initrd-size = 34000
++ append = &quot; rescue ramdisk_size=128000&quot;
++
++image = enet:0,vmlinux
++ label = rescue-net
++ initrd = enet:0,all.gz
++ initrd-size = 34000
++ append = &quot; rescue ramdisk_size=128000&quot;
++
++image = enet:0,vmlinux-power4
++ label = rescue-net-power4
++ initrd = enet:0,all-power4.gz
++ initrd-size = 34000
++ append = &quot; rescue ramdisk_size=128000&quot;
++');
++
++ output(&quot;images/yaboot.msg&quot;, '
++Thanks for choosing Mageia PPC. The following is a short
++explanation of the various options for booting the install CD.
++
++All options ending with &quot;-power4&quot; use the BOOT kernel for ppc 9xx and POWER4.
++The default syntax with no suffix uses the BOOT kernel for ppc 6xx 7xx and 7xxx.
++The default if you just hit enter is &quot;install-gui&quot;.
++
++install-gui: uses Xorg fbdev mode
++install-text: text based install
++install-net: allows you to use a minimal boot CD,
++ pulling the rest of the install from
++ a network server
++install-net-text: text mode network install
++rescue: boots the rescue image
++rescue-net: boots the rescue image from a network server
++
++');
++
++}
++
++sub VERSION {
++ my ($kernels) = @_;
++
++ map { &quot;$_\n&quot; }
++ $ENV{DISTRIB_DESCR},
++ scalar gmtime(),
++ '', @$kernels;
++}
++
++sub syslinux_all_files {
++ my ($dir, $kernels) = @_;
++
++ eval { rm_rf($dir) }; mkdir_p($dir);
++
++ @$kernels or die &quot;syslinux_all_files: no kernel\n&quot;;
++
++ $default_vga =~ /788/ or die 'we rely on vga=788 for bootsplash';
++ my $theme = $ENV{THEME} || 'Mageia-Free';
++
++ each_index {
++ mkdir &quot;$dir/alt$::i&quot;, 0777;
++ _ &quot;cp all.kernels/$_/vmlinuz $dir/alt$::i&quot;;
++ initrd('all', '', &quot;images/all.rdz-$_&quot;);
++ rename(&quot;images/all.rdz-$_&quot;, &quot;$dir/alt$::i/all.rdz&quot;);
++ } @$kernels;
++
++ _ &quot;install -m 644 -D /boot/memtest* $dir/memtest&quot;;
++
++ output(&quot;$dir/help.msg&quot;, syslinux_msg('help.msg.xml'));
++ output(&quot;$dir/advanced.msg&quot;, syslinux_msg('advanced.msg.xml',
++ &quot;\nYou can choose the following kernels :\n&quot;,
++ map_index { &quot; o &quot; . syslinux_color('white') . &quot;alt$::i&quot; . syslinux_color('default') . &quot; is kernel $_\n&quot; } @$kernels));
++}
++
++sub isolinux {
++ my ($kernels) = @_;
++
++ syslinux_all_files('isolinux', $kernels);
++
++ _ &quot;cp $isolinux_bin isolinux/isolinux.bin&quot;;
++ _ &quot;cp /usr/lib/syslinux/gfxboot.com isolinux/gfxboot.com&quot;;
++ output(&quot;isolinux/isolinux.cfg&quot;, syslinux_cfg_all('cdrom', 1));
++
++ xbox_stage1() if arch() =~ /i.86/;
++}
++
++sub xbox_stage1() {
++ my $xbox_kernel = find { /xbox/ } all('all.kernels') or return;
++
++ my $dir = 'isolinux/xbox';
++ eval { rm_rf($dir) }; mkdir_p($dir);
++
++ _ &quot;cp all.kernels/$xbox_kernel/vmlinuz $dir&quot;;
++ initrd('all', '', &quot;images/all.rdz-$xbox_kernel&quot;);
++ rename(&quot;images/all.rdz-$xbox_kernel&quot;, &quot;$dir/initrd&quot;);
++
++ _ &quot;cp /usr/share/cromwell/xromwell-installer.xbe $dir/default.xbe&quot;;
++ output(&quot;$dir/linuxboot.cfg&quot;, &lt;&lt;EOF);
++kernel $dir/vmlinuz
++initrd $dir/initrd
++append root=/dev/ram3 ramdisk_size=36000 automatic=method:cdrom
++EOF
++}
++
++sub boot_iso {
++ my ($iso, $kernels) = @_;
++
++ syslinux_all_files('.boot_iso/isolinux', $kernels);
++
++ output('.boot_iso/VERSION', VERSION($kernels));
++
++ # for the boot iso, use standard isolinux
++ _ &quot;cp /usr/lib/syslinux/isolinux.bin .boot_iso/isolinux/isolinux.bin&quot;;
++
++ my $with_gfxboot = 0;
++ _ &quot;cp /usr/share/gfxboot/themes/Mageia/install/* .boot_iso/isolinux&quot; if $with_gfxboot;
++# _ &quot;cp /home/pixel/cooker/soft/theme/mandriva-gfxboot-theme/inst/* .boot_iso/isolinux&quot; if $with_gfxboot;
++ #_ &quot;cp /home/teuf/mdv/src/mandriva-gfxboot-theme/inst/* .boot_iso/isolinux&quot; if $with_gfxboot;
++ _ &quot;cp /usr/lib/syslinux/gfxboot.com .boot_iso/isolinux/gfxboot.com&quot; if $with_gfxboot;
++
++ output('.boot_iso/isolinux/isolinux.cfg', syslinux_cfg_all('', $with_gfxboot));
++
++ _ &quot;genisoimage -r -f -J -cache-inodes -V 'Mga Boot ISO' -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o $iso .boot_iso&quot;;
++ rm_rf('.boot_iso');
++}
++
++sub hd_grub {
++ my ($img) = @_;
++ my $mapfile = '/tmp/device.map.tmp';
++
++ my ($grub_dir) = glob(&quot;/lib/grub/*-*&quot;);
++ my @grub_files = map { &quot;$grub_dir/$_&quot; } qw(stage1 stage2);
++ my $size = 40_000 + sum(map { -s $_ } @grub_files);
++
++ _ &quot;dd if=/dev/zero of=$img bs=1 count=$size&quot;;
++
++ _ &quot;rm -rf $tmp_mnt&quot;; mkdir $tmp_mnt;
++ _ &quot;cp @grub_files $tmp_mnt&quot;;
++
++ output(&quot;$tmp_mnt/menu.lst&quot;, &lt;&lt;EOF);
++timeout 10
++default 0
++fallback 1
++
++title Mageia Install
++
++root (hd0,0)
++kernel /cooker/isolinux/alt0/vmlinuz $default_append $default_acpi $default_vga automatic=method:disk
++initrd /cooker/isolinux/alt0/all.rdz
++
++title Help
++
++pause To display the help, press &lt;space&gt; until you reach &quot;HELP END&quot;
++pause .
++pause Please see http://qa.mandriva.com/hd_grub.cgi for a friendlier solution
++pause .
++pause To specify the location where Mageia is copied,
++pause choose &quot;Mageia Install&quot;, and press &quot;e&quot;.
++pause Then change &quot;root (hd0,0)&quot;. FYI:
++pause - (hd0,0) is the first partition on first bios hard drive (usually hda1)
++pause - (hd0,4) is the first extended partition (usually hda5)
++pause - (hd1,0) is the first partition on second bios hard drive
++pause Replace /cauldron to suit the directory containing Mageia
++pause .
++pause HELP END
++EOF
++
++ _ &quot;mkdosfs-with-dir $tmp_mnt $img&quot;;
++ _ &quot;rm -rf $tmp_mnt&quot;;
++
++ output($mapfile, &quot;(fd0) $img\n&quot;);
++
++ open(my $G, &quot;| grub --device-map=$mapfile --batch&quot;);
++ print $G &lt;&lt;EOF;
++root (fd0)
++install /stage1 d (fd0) /stage2 p /menu.lst
++quit
++EOF
++ close $G;
++ unlink $mapfile;
++}
+
+
+Property changes on: drakx/trunk/images/make_boot_img
+___________________________________________________________________
+<a id="svnexecutable">Added: svn:executable</a>
+ + *
+
+<a id="drakxtrunkimagesupdate_kernel">Added: drakx/trunk/images/update_kernel</a>
+===================================================================
+--- drakx/trunk/images/update_kernel (rev 0)
++++ drakx/trunk/images/update_kernel 2011-02-07 11:20:50 UTC (rev 473)
+@@ -0,0 +1,80 @@
++#!/usr/bin/perl
++
++# this script takes command kernel rpms (either installed rpms or rpm files)
++# and create various files in all_kernels/:
++# all.kernels/VER/all_modules.tar (used for all.rdz)
++# all.kernels/VER/modules.dep
++# all.kernels/VER/modules.alias
++# all.kernels/VER/vmlinuz
++
++use lib '../kernel';
++use MDK::Common;
++use list_modules;
++
++(my $karch = arch()) =~ s/^i.86$/i586/;
++my $rpm = 'rpm --nosignature';
++
++
++@ARGV or die &quot;usage: ./update_kernel [--move] (&lt;kernel rpm&gt; ... | &lt;installed kernel name&gt; ...)\n&quot;;
++
++eval { rm_rf('all.kernels') }; #- remove old things
++mkdir 'all.kernels';
++
++my @kernels = map {
++ my $kern_ver = rpm2version($_);
++ if (/\.rpm$/) {
++ extract_kernel($_, $kern_ver);
++ } else {
++ extract_installed_rpm('', $kern_ver);
++ }
++ $kern_ver;
++} @ARGV;
++
++output('all.kernels/.list', map { &quot;$_\n&quot; } @kernels);
++
++sub system_verbose { print join(' ', @_), &quot;\n&quot;; system(@_) }
++sub sys { &amp;system_verbose; $? and die }
++
++sub rpm2version {
++ my ($kernel_rpm) = @_;
++ my $opt = -e $kernel_rpm ? '-qpl' : '-ql';
++ `$rpm $opt $kernel_rpm` =~ m!/boot/vmlinuz-(.*)! &amp;&amp; $1 or die &quot;can't find vmlinuz in $kernel_rpm (is it installed?)\n&quot;;
++}
++
++sub extract_kernel {
++ my ($kernel_rpm, $kern_ver) = @_;
++
++ my $dir = &quot;all.kernels/$kern_ver&quot;;
++
++ warn &quot;Extracting kernel $kern_ver\n&quot;;
++
++ eval { rm_rf($dir) };
++ mkdir_p(&quot;$dir/modules&quot;);
++ sys(&quot;rpm2cpio $kernel_rpm | (cd $dir ; cpio -id)&quot;);
++
++ extract_installed_rpm($dir, $kern_ver);
++
++ eval { rm_rf(&quot;$dir$_&quot;) } foreach qw(/boot /lib /usr);
++}
++
++sub extract_installed_rpm {
++ my ($installed_dir, $kern_ver) = @_;
++ my $local_dir = &quot;all.kernels/$kern_ver&quot;;
++ mkdir_p(&quot;$local_dir/modules&quot;);
++
++ sys('cp', &quot;$installed_dir/boot/vmlinuz-$kern_ver&quot;, &quot;$local_dir/vmlinuz&quot;);
++ sys(&quot;cp $installed_dir/lib/modules/$kern_ver/modules.* $local_dir&quot;);
++
++ open(my $F, &quot;find $installed_dir/lib/modules/$kern_ver -name '*.ko.gz' |&quot;);
++ my $file; while ($file = &lt;$F&gt;) {
++ chomp($file);
++ system('cp', $file, &quot;$local_dir/modules/&quot; . basename($file)) == 0
++ or warn &quot;conflict for $file\n&quot;;
++ }
++
++ sys('perl', '../kernel/modules.pl', 'remove_unneeded_modules', $kern_ver);
++ sys('perl', '../kernel/modules.pl', 'get_firmwares', $kern_ver);
++ sys('perl', '../kernel/modules.pl', 'make_modules_per_image', $kern_ver);
++
++ rm_rf(&quot;$local_dir/modules&quot;);
++}
+
+
+Property changes on: drakx/trunk/images/update_kernel
+___________________________________________________________________
+Added: svn:executable
+ + *
+
+</pre></div>
+
+</body>
+</html> \ No newline at end of file
diff --git a/zarb-ml/mageia-sysadm/attachments/20110207/5f16c035/attachment.html b/zarb-ml/mageia-sysadm/attachments/20110207/5f16c035/attachment.html
new file mode 100644
index 000000000..99683303f
--- /dev/null
+++ b/zarb-ml/mageia-sysadm/attachments/20110207/5f16c035/attachment.html
@@ -0,0 +1,1340 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>[473] Import images</title>
+</head>
+<body>
+
+<style type="text/css"><!--
+#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
+#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
+#msg dt:after { content:':';}
+#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
+#msg dl a { font-weight: bold}
+#msg dl a:link { color:#fc3; }
+#msg dl a:active { color:#ff0; }
+#msg dl a:visited { color:#cc6; }
+h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
+#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
+#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
+#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
+#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
+#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
+#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
+#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
+#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
+#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
+#logmsg pre { background: #eee; padding: 1em; }
+#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
+#logmsg dl { margin: 0; }
+#logmsg dt { font-weight: bold; }
+#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
+#logmsg dd:before { content:'\00bb';}
+#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
+#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
+#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
+#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
+#logmsg table th.Corner { text-align: left; }
+#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
+#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
+#patch { width: 100%; }
+--></style>
+<div id="msg">
+<dl class="meta">
+<dt>Revision</dt> <dd>473</dd>
+<dt>Author</dt> <dd>dmorgan</dd>
+<dt>Date</dt> <dd>2011-02-07 12:20:50 +0100 (Mon, 07 Feb 2011)</dd>
+</dl>
+
+<h3>Log Message</h3>
+<pre>Import images</pre>
+
+<h3>Added Paths</h3>
+<ul>
+<li>drakx/trunk/images/</li>
+<li><a href="#drakxtrunkimagesperl_checker">drakx/trunk/images/.perl_checker</a></li>
+<li><a href="#drakxtrunkimagesMakefile">drakx/trunk/images/Makefile</a></li>
+<li><a href="#drakxtrunkimagesNEWS">drakx/trunk/images/NEWS</a></li>
+<li><a href="#drakxtrunkimagesadvancedmsgxml">drakx/trunk/images/advanced.msg.xml</a></li>
+<li><a href="#drakxtrunkimageshelpmsgxml">drakx/trunk/images/help.msg.xml</a></li>
+<li><a href="#drakxtrunkimagesmake_boot_img">drakx/trunk/images/make_boot_img</a></li>
+<li><a href="#drakxtrunkimagesupdate_kernel">drakx/trunk/images/update_kernel</a></li>
+</ul>
+
+</div>
+<div id="patch"><pre>
+<a id="drakxtrunkimagesperl_checker">Added: drakx/trunk/images/.perl_checker</a>
+===================================================================
+--- drakx/trunk/images/.perl_checker (rev 0)
++++ drakx/trunk/images/.perl_checker 2011-02-07 11:20:50 UTC (rev 473)
+@@ -0,0 +1 @@
++XML::Parser
+
+<a id="drakxtrunkimagesMakefile">Added: drakx/trunk/images/Makefile</a>
+===================================================================
+--- drakx/trunk/images/Makefile (rev 0)
++++ drakx/trunk/images/Makefile 2011-02-07 11:20:50 UTC (rev 473)
+@@ -0,0 +1,57 @@
++include ../Makefile.config
++
++VERSION=1.50
++PRODUCT=drakx-installer-images
++KERNELS=$(shell rpm -qf /lib/modules/2.*)
++
++IMAGES_DEST = $(ROOTDEST)/install/images
++
++all: images
++
++images: all.kernels
++ DISTRIB_DESCR=$(DISTRIB_DESCR) ./make_boot_img
++ rm -rf images/alternatives
++ if [ `ls images/*.img-* 2&gt;/dev/null | wc -l` -gt 0 ]; then \
++ mkdir images/alternatives; cd images/alternatives; mv ../*.img-* .; md5sum *.img-* &gt; MD5SUM; \
++ fi
++ cd images ; md5sum *.{img,iso}* &gt; MD5SUM
++
++all.kernels: update_kernel ../kernel/list_modules.pm
++ ./update_kernel $(KERNELS)
++
++dist: tar
++tar:
++ @rm -rf $(PRODUCT)*.tar* $(PRODUCT)-$(VERSION)
++ @if [ -e &quot;.svn&quot; ]; then \
++ $(MAKE) dist-svn; \
++ elif [ -e &quot;../.git&quot; ]; then \
++ $(MAKE) dist-git; \
++ else \
++ echo &quot;Unknown SCM (not SVN nor GIT)&quot;;\
++ exit 1; \
++ fi;
++ $(info $(PRODUCT)-$(VERSION).tar.bz2 is ready)
++
++dist-svn:
++ mkdir -p $(PRODUCT)-$(VERSION)
++ svn export -q -rBASE . $(PRODUCT)-$(VERSION)/images
++ svn export -q -rBASE ../kernel $(PRODUCT)-$(VERSION)/kernel
++ cp ../Makefile.config $(PRODUCT)-$(VERSION)/
++ tar cfj $(PRODUCT)-$(VERSION).tar.bz2 $(PRODUCT)-$(VERSION)
++ rm -rf $(PRODUCT)-$(VERSION)
++
++dist-git:
++ @cd ..; git archive --prefix=$(PRODUCT)-$(VERSION)/ HEAD images kernel Makefile.config | bzip2 &gt;images/$(PRODUCT)-$(VERSION).tar.bz2;
++
++clean:
++ rm -rf images isolinux all.kernels modules.description
++ find . -name &quot;*~&quot; -o -name &quot;.#*&quot; | xargs rm -f
++
++install:
++ install -d $(IMAGES_DEST)
++ rm -rf $(IMAGES_DEST)/alternatives
++ cp -r images/* $(IMAGES_DEST)
++ ifneq (,$(findstring $(ARCH), i386 x86_64))
++ rm -rf $(ROOTDEST)/isolinux
++ cp -af isolinux $(ROOTDEST)
++ endif
+
+
+Property changes on: drakx/trunk/images/Makefile
+___________________________________________________________________
+<a id="svneolstyle">Added: svn:eol-style</a>
+ + native
+
+<a id="drakxtrunkimagesNEWS">Added: drakx/trunk/images/NEWS</a>
+===================================================================
+--- drakx/trunk/images/NEWS (rev 0)
++++ drakx/trunk/images/NEWS 2011-02-07 11:20:50 UTC (rev 473)
+@@ -0,0 +1,208 @@
++Version 1.50 - 13 Oct 2010, by Thierry Vignaud
++
++- 2011.0 build
++
++Version 1.49 - 27 May 2010, by Olivier Blin
++
++- disable restore option
++
++Version 1.48 - 28 February 2010, by Thierry Vignaud
++
++- handle new SCSI driver: mpt2sas (#57833)
++
++Version 1.47 - 4 January 2010, by Pascal Terjan
++
++- use /bin/busybox.static
++
++Version 1.46 - 12 October 2009, by Olivier Blin
++
++- properly fix FileHandle issue
++
++Version 1.45 - 12 October 2009, by Thierry Vignaud
++
++- fix firmware again (#53220)
++
++Version 1.44 - 6 October 2009, by Thierry Vignaud
++
++- do not do anything anymore with bootsplash.cfg
++
++Version 1.43 - 22 September 2009, by Olivier Blin
++
++- fix firmware loading (#49195)
++- revert squashfs-lzma and sqlzma inclusion (this breaks install)
++- list asix module in network/usb group
++
++Version 1.42 - 9 September 2009, by Pascal Terjan
++
++- include squashfs-lzma and sqlzma kernel modules in all.rdz
++- add /dev/ptmx (for screen to work)
++- drop duplicated code including busybox, ka version is better than
++ the one of DEBUGSTAGE1
++- embed all firmwares that are needed by the modules we embed
++
++Version 1.40 - 14 April 2009, by Pascal Terjan
++
++- handle firmware loading in stage2 too
++
++Version 1.39 - 6 April 2009, by Pascal Terjan
++
++- fix firmware helper generation
++
++Version 1.38 - 3 April 2009, by Thierry Vignaud
++
++- include firmwares for most common network cards (#49195)
++- pass restore instead of --restore option
++- add a userspace helper to load firmwares
++
++Version 1.37 - 3 April 2009, by Pascal Terjan
++
++- fix crypto module names when arch is not i586 (#46814)
++
++Version 1.36 - 9 March 2009, by Thierry Vignaud
++
++- add /dev/random and /dev/urandom (for curl)
++
++Version 1.35 - 18 February 2009, by Thierry Vignaud
++
++- pass --restore instead of restore option
++
++Version 1.34 - 10 February 2009, by Thierry Vignaud
++
++- enable to select restore option
++
++Version 1.33 - 23 January 2009, by Christophe Fergeau
++
++- adjust to new syslinux 3.72 gfxboot COM32 module
++
++Version 1.32 - 15 January 2008, by Thierry Vignaud
++
++- include:
++ o network drivers: enic, et131x, qlge, smsc95xx, sxg &amp; w35und
++ o IDE driver: tx4939ide
++- ext4dev was renamed as ext4 in 2.6.29-rc1 (keep ext4dev for older kernels)
++
++Version 1.31 - 19 September 2008, by Pascal &quot;pixel&quot; Rigaux
++
++- add modules &quot;sha256_generic cbc amd768_rng&quot; for crypsetup/LUKS
++
++Version 1.30 - 12 June 2008, by Olivier &quot;blino&quot; Blin
++
++- handle ide-cd being renamed as ide-cd_mod
++
++Version 1.29 - 2 April 2008, by Olivier &quot;blino&quot; Blin
++
++- use &quot;Mdv Boot ISO&quot; as label for boot.iso
++
++Version 1.28 - 12 February 2008, by Olivier &quot;blino&quot; Blin
++
++- restore full modules.alias (depmod keeps only available modules in
++ modules.alias, but we want them all)
++
++Version 1.27 - 12 February 2008, by Olivier &quot;blino&quot; Blin
++
++- add modules in /modules/`uname -r` and use depmod to build
++ modules.dep and modules.alias
++- remove symlinks in toplevel /modules
++- fix custom bootsplash theme support
++
++Version 1.26 - 21 December 2007, by Olivier &quot;blino&quot; Blin
++
++- rebuild with list_modules to handle atl2 ethernet driver
++- fix live stage2 support
++
++Version 1.25 - 12 December 2007, by Pascal &quot;Pixel&quot; Rigaux
++
++- rebuild for new list_modules
++
++Version 1.24 - 15 October 2007, by Olivier &quot;blino&quot; Blin
++
++- rebuild for new list_modules (to include ipw3945)
++
++Version 1.23 - 17 September 2007, by Pascal &quot;Pixel&quot; Rigaux
++
++- add dm-zero for dmraid
++
++Version 1.22 - 11 September 2007, by Olivier &quot;blino&quot; Blin
++
++- add /lib/module-init-tools/ldetect-lst-modules.alias
++
++Version 1.21 - 7 September 2007, by Olivier &quot;blino&quot; Blin
++
++- add jmicron driver
++- provide /usr/share/ldetect-lst/*-modules.alias in installer images
++
++Version 1.20 - 31 August 2007, by Pascal &quot;Pixel&quot; Rigaux
++
++- dynamically determine the size of all.img
++
++Version 1.19 - 27 August 2007, by Olivier &quot;blino&quot; Blin
++
++- add raid456 module
++
++Version 1.18 - 21 August 2007, by Olivier &quot;blino&quot; Blin
++
++- release with latest scripts from drakx/kernel
++
++Version 1.17 - 21 August 2007, by Olivier &quot;blino&quot; Blin
++
++- keep modules without dependencies in modules.dep
++
++Version 1.16 - 21 August 2007, by Olivier &quot;blino&quot; Blin
++
++- build with new list_modules
++
++Version 1.15 - 15 August 2007, by Olivier &quot;blino&quot; Blin
++
++- add pcitable, usbtable and pci.ids
++- fix typos affecting mtab and /var/run creation
++- add a /lib/modules symlink
++
++Version 1.14 - 9 August 2007, by Pascal &quot;Pixel&quot; Rigaux
++
++- update_kernel: now require install rpms or rpm files as arguments
++ (this allow specifying precisely which installed kernels are used)
++
++Version 1.13 - 8 August 2007, by Pascal &quot;Pixel&quot; Rigaux
++
++- add modules.alias in /modules/&lt;version&gt; as required by stage2 with new libldetect
++- add unionfs module
++- revert isolinux starting install by default instead of booting on harddrive (#32040)
++
++Version 1.12 - 17 July 2007, by Olivier &quot;blino&quot; Blin
++
++- add ide-disk module
++
++Version 1.11 - 29 June 2007, by Pascal &quot;Pixel&quot; Rigaux
++
++- increase all.img size to 10.5MB
++- default to theme Mandriva-Free, and allow setting another one through THEME
++ environment variable
++
++Version 1.9 - 3 April 2007, by Pascal &quot;Pixel&quot; Rigaux
++
++- include mmc_block for card readers
++
++Version 1.8 - 23 March 2007, by Pascal &quot;Pixel&quot; Rigaux
++
++- restore F1 &amp; F2 in boot.iso (#29766)
++
++Version 1.6 - 14 March 2007, by Olivier Blin
++
++- add tifm modules (Titi)
++
++Version 1.5 - 9 March 2007, by Pascal &quot;Pixel&quot; Rigaux
++
++- copy isolinux images for x86_64 as well
++
++Version 1.4 - 8 March 2007, by Pascal &quot;Pixel&quot; Rigaux
++
++- restore vga= and automatic= default options.
++ also restore noacpi, alt0, vgalo, vgahi, text entries
++ (all this is needed when gfxboot is not working or not there)
++
++Version 1.3 - 16 February 2007, by Pascal &quot;Pixel&quot; Rigaux
++
++- rely on gfxboot for options (vga=, automatic=...)
++- really use memtest instead of memtest.bin
++ (with file name &quot;memtest.bin&quot; it fails with error 8000, with &quot;memtest&quot; it works)
++ (it seems to be an ancient bug as far as google says)
+
+<a id="drakxtrunkimagesadvancedmsgxml">Added: drakx/trunk/images/advanced.msg.xml</a>
+===================================================================
+--- drakx/trunk/images/advanced.msg.xml (rev 0)
++++ drakx/trunk/images/advanced.msg.xml 2011-02-07 11:20:50 UTC (rev 473)
+@@ -0,0 +1,17 @@
++&lt;document&gt;
++The following install types may be used instead of previously notified :
++ o &lt;white&gt;vgahi&lt;/white&gt; for high resolution graphical installation.
++ o &lt;white&gt;vga16&lt;/white&gt; for 640x480 in 16 colors graphical installation.
++
++The following options may be added on the command line :
++ o &lt;white&gt;readonly=1&lt;/white&gt; to disable editing disk partitions.
++ o &lt;white&gt;display=ackbar:0&lt;/white&gt; to export display to &lt;blue&gt;ackbar&lt;/blue&gt; machine screen 0 during
++ installation (only for network installations).
++ o &lt;white&gt;noauto&lt;/white&gt; to disable automatic detection.
++ o &lt;white&gt;nodmraid&lt;/white&gt; to disable BIOS software RAID.
++ o &lt;white&gt;updatemodules&lt;/white&gt; to use the special update floppy containing modules updates.
++ o &lt;white&gt;patch&lt;/white&gt; to use a patch from the floppy (file named &lt;blue&gt;patch.pl&lt;/blue&gt;).
++ o &lt;white&gt;auto_install=floppy&lt;/white&gt; to enable auto_install using &lt;blue&gt;auto_inst.cfg&lt;/blue&gt; file on the
++ floppy.
++ o &lt;white&gt;memtest&lt;/white&gt; to test your computer RAM for faulty memory modules.
++&lt;/document&gt;
+
+<a id="drakxtrunkimageshelpmsgxml">Added: drakx/trunk/images/help.msg.xml</a>
+===================================================================
+--- drakx/trunk/images/help.msg.xml (rev 0)
++++ drakx/trunk/images/help.msg.xml 2011-02-07 11:20:50 UTC (rev 473)
+@@ -0,0 +1,21 @@
++&lt;document&gt;
++ &lt;green&gt;Welcome to &lt;blue&gt;Mageia&lt;/blue&gt; install help&lt;/green&gt;
++
++In most cases, the best way to get started is to simply press the &lt;yellow&gt;&amp;lt;Enter&amp;gt;&lt;/yellow&gt; key.
++If you experience problems with standard install, try one of the following
++install types (type the highlighted text and press &lt;yellow&gt;&amp;lt;Enter&amp;gt;&lt;/yellow&gt;):
++
++ o &lt;white&gt;text&lt;/white&gt; for text installation instead of the graphical one.
++ o &lt;white&gt;linux&lt;/white&gt; for standard graphical installation at normal resolution.
++ o &lt;white&gt;linux vga=785&lt;/white&gt; for low resolution graphical installation.
++
++
++To repair an already installed system type &lt;white&gt;rescue&lt;/white&gt; followed
++by &lt;yellow&gt;&amp;lt;Enter&amp;gt;&lt;/yellow&gt;.
++
++You can also pass some &lt;white&gt;&amp;lt;specific kernel options&amp;gt;&lt;/white&gt; to the Linux kernel.
++For example, try &lt;white&gt;linux noapic&lt;/white&gt; if your system has trouble operating
++your network adapter correctly.
++&lt;red&gt;NOTE&lt;/red&gt;: You cannot pass options to modules (SCSI, ethernet card) or devices
++such as CD-ROM drives in this way. If you need to do so, use noauto mode.
++&lt;/document&gt;
+
+<a id="drakxtrunkimagesmake_boot_img">Added: drakx/trunk/images/make_boot_img</a>
+===================================================================
+--- drakx/trunk/images/make_boot_img (rev 0)
++++ drakx/trunk/images/make_boot_img 2011-02-07 11:20:50 UTC (rev 473)
+@@ -0,0 +1,826 @@
++#!/usr/bin/perl
++
++use Config;
++use FileHandle;
++use MDK::Common;
++Config-&gt;import;
++my ($arch) = $Config{archname} =~ /(.*?)-/;
++
++my $default_append = '';
++my $default_acpi = '';
++my $default_vga = &quot;vga=788 splash=silent&quot;;
++my $timeout = 150;
++my $isolinux_bin = $arch eq 'x86_64' ? '/usr/lib/syslinux/isolinux-x86_64.bin' : '/usr/lib/syslinux/isolinux-i586.bin';
++my $lib = $arch eq 'x86_64' ? 'lib64' : 'lib';
++
++my $tmp_mnt = '/tmp/drakx_mnt';
++my $tmp_initrd = '/tmp/drakx_initrd';
++
++my $sudo;
++if ($&gt;) {
++ $sudo = &quot;sudo&quot;;
++ $ENV{PATH} = &quot;/sbin:/usr/sbin:$ENV{PATH}&quot;;
++}
++
++sub __ { print @_, &quot;\n&quot;; system(@_) }
++sub _ { __ @_; $? and die }
++sub mke2fs {
++ my ($f) = @_;
++ _ &quot;/sbin/mke2fs -q -m 0 -F -s 1 $f&quot;;
++ _ &quot;/sbin/tune2fs -c 0 -U clear -T 1970010101 $f&quot;;
++}
++
++_ &quot;mkdir -p $tmp_mnt&quot;;
++mkdir &quot;images&quot;;
++
++my @kernels = chomp_(cat_('all.kernels/.list'));
++
++my @all_images = (
++ if_($arch =~ /i.86/, 'isolinux', 'boot.iso', 'all.img', 'hd_grub.img'),
++ if_($arch =~ /x86_64/, 'isolinux', 'boot.iso', 'all.img', 'hd_grub.img'),
++ if_($arch =~ /ia64/, 'all.img'),
++ if_($arch =~ /ppc/, 'all.img'),
++ );
++
++my @images = @ARGV ? @ARGV : map { &quot;images/$_&quot; } @all_images;
++
++foreach my $img (@images) {
++ my ($type, $I, $extension) = $img =~ m!([^/]*)(64)?\.([^.]*)$!;
++
++ if ($img =~ /hd_grub/) {
++ hd_grub($img);
++ } elsif ($img =~ /isolinux/) {
++ isolinux(\@kernels);
++
++ if (my ($tftpboot) = grep { -e $_ } qw(/tftpboot /var/lib/tftpboot)) {
++ system(&quot;/bin/cp -f isolinux/alt0/* $tftpboot&quot;);
++ }
++ } elsif ($img =~ /boot.iso/) {
++ boot_iso($img, \@kernels);
++ } elsif ($extension eq 'rdz') {
++ initrd($type, $I, &quot;$img-$_&quot;) foreach @kernels;
++ } elsif ($extension eq 'img') {
++ print STDERR &quot;calling boot_img_$arch for $img\n&quot;;
++ $::{&quot;boot_img_$arch&quot;}-&gt;($type, $I, &quot;$img-$_&quot;, &quot;all.kernels/$_/vmlinuz&quot;) foreach @kernels;
++ rename(&quot;$img-$kernels[0]&quot;, $img);
++ } else {
++ die &quot;unknown image $img&quot;;
++ }
++}
++
++sub syslinux_color {
++ &quot;0&quot; . {
++ default =&gt; '7',
++ blue =&gt; '9',
++ green =&gt; 'a',
++ red =&gt; 'c',
++ yellow =&gt; 'e',
++ white =&gt; 'f',
++ }-&gt;{$_[0]} || die &quot;unknown color $_[0]\n&quot;;
++}
++
++sub syslinux_msg {
++ my ($msg_xml_file, @more_text) = @_;
++
++ require XML::Parser;
++
++ sub xml_tree2syslinux {
++ my ($current_color, $tree) = @_;
++ my (undef, @l) = @$tree;
++ join('', map {
++ my ($type, $val) = @$_;
++ if ($type eq '0') {
++ $val;
++ } else {
++ syslinux_color($type) . xml_tree2syslinux($type, $val) . syslinux_color($current_color);
++ }
++ } group_by2(@l));
++ }
++
++ print &quot;parsing $msg_xml_file\n&quot;;
++ my $tree = XML::Parser-&gt;new(Style =&gt; 'Tree')-&gt;parsefile($msg_xml_file);
++ $tree-&gt;[0] eq 'document' or die &quot;bad file $msg_xml_file\n&quot;;
++ my $text = xml_tree2syslinux('default', $tree-&gt;[1]);
++
++ pack(&quot;C*&quot;, 0x0E, 0x80, 0x03, 0x00) . &quot; &quot;
++ . $text . join('', @more_text)
++ . &quot;\n&quot; . syslinux_color('red') . &quot;[F1-Help] [F2-Advanced Help]&quot; . syslinux_color('default') . &quot;\n&quot;;
++}
++
++sub syslinux_cfg {
++ my ($entries, $b_gfxboot) = @_;
++ my $default = 'linux';
++
++ my $header = &lt;&lt;EOF;
++default $default
++prompt 1
++timeout $timeout
++display help.msg
++implicit 1
++EOF
++ my $header_gfxboot = &lt;&lt;EOF;
++ui gfxboot.com bootlogo
++label harddisk
++ localboot 0x80
++EOF
++ my $header_non_gfxboot = &lt;&lt;EOF;
++F1 help.msg
++F2 advanced.msg
++F3 boot.msg
++EOF
++
++ my @l = map {
++ $_-&gt;{append} =~ s/\s+/ /g;
++ &quot;label $_-&gt;{label}\n&quot; .
++ &quot; kernel $_-&gt;{kernel}\n&quot; .
++ ($_-&gt;{initrd} ? &quot; append initrd=$_-&gt;{initrd} $_-&gt;{append}\n&quot; : '');
++ } @$entries;
++
++ $header . ($b_gfxboot ? $header_gfxboot : $header_non_gfxboot) . join('', @l);
++}
++
++sub initrd {
++ my ($type, $I, $img) = @_;
++ my $stage1_root = $ENV{DEBUGSTAGE1} ? &quot;../mdk-stage1&quot; : &quot;/usr/$lib/drakx-installer-binaries&quot;;
++ my ($ext) = $img =~ /rdz-(.*)/ or die &quot;bad initrd name ($img)&quot;;
++
++ _ &quot;rm -rf $tmp_initrd&quot;;
++ mkdir_p(&quot;$tmp_initrd$_&quot;) foreach qw(/etc /firmware /lib /modules /sbin /tmp /var);
++ symlink &quot;../modules&quot;, &quot;$tmp_initrd/lib/modules&quot;;
++ symlink &quot;../firmware&quot;, &quot;$tmp_initrd/lib/firmware&quot;;
++
++ symlink &quot;/proc/mounts&quot;, &quot;$tmp_initrd/etc/mtab&quot;;
++ symlink &quot;../tmp&quot;, &quot;$tmp_initrd/var/run&quot;;
++ _ &quot;install -D /usr/share/terminfo/l/linux $tmp_initrd/usr/share/terminfo/l/linux&quot;;
++ foreach ('pcitable', 'usbtable') {
++ _ &quot;install -D /usr/share/ldetect-lst/$_.gz $tmp_initrd/usr/share/ldetect-lst/$_.gz&quot;;
++ }
++ _ &quot;install -D /usr/share/pci.ids $tmp_initrd/usr/share/pci.ids&quot;;
++ foreach (&quot;/usr/share/ldetect-lst/fallback-modules.alias&quot;, &quot;/lib/module-init-tools/ldetect-lst-modules.alias&quot;) {
++ _ &quot;install -D $_ $tmp_initrd$_&quot;;
++ }
++ foreach my $firm (glob_(&quot;all.kernels$I/$ext/firmware/*&quot;)) {
++ my $dest=$firm;
++ $dest =~ s|all.kernels$I/$ext/||;
++ _ &quot;cp -a $firm $tmp_initrd/$dest&quot;;
++ };
++
++ output(&quot;$tmp_initrd/hotplug&quot;, q{#!/bin/sh -e
++if [ &quot;$SUBSYSTEM&quot; = firmware ] &amp;&amp; [ &quot;$ACTION&quot; = add ] &amp;&amp; [ -n &quot;$FIRMWARE&quot; ] ; then
++ if [ ! -e /sys$DEVPATH/loading ]; then
++ exit 1
++ fi
++ if [ -e &quot;/lib/firmware/$FIRMWARE&quot; ]; then
++ echo 1 &gt; /sys$DEVPATH/loading
++ cat &quot;/lib/firmware/$FIRMWARE&quot; &gt; /sys$DEVPATH/data
++ echo 0 &gt; /sys$DEVPATH/loading
++ exit 0
++ fi
++ echo -1 &gt; /sys$DEVPATH/loading
++ exit 1
++fi
++});
++ _ &quot;chmod 755 $tmp_initrd/hotplug&quot;;
++ symlink &quot;../hotplug&quot;, &quot;$tmp_initrd/sbin/hotplug&quot;;
++ _ &quot;install $stage1_root/init $tmp_initrd/&quot;;
++ foreach ('stage1', 'pppd', 'pppoe') {
++ _ &quot;install $stage1_root/$_ $tmp_initrd/sbin/&quot;;
++ }
++
++ if ($arch !~ /ppc|ia64/) {
++ mkdir_p(&quot;$tmp_initrd/etc/pcmcia&quot;);
++ _ &quot;cp -a /etc/pcmcia/config.opts $tmp_initrd/etc/pcmcia&quot;;
++ }
++ {
++ my $modz = &quot;all.kernels$I/$ext&quot;;
++ mkdir_p(&quot;$tmp_initrd/modules/$ext&quot;);
++ __ &quot;tar xC $tmp_initrd/modules/$ext -f $modz/${type}_modules.tar&quot;;
++ _ &quot;depmod -b $tmp_initrd $ext&quot;;
++ # depmod keeps only available modules in modules.alias, but we want them all
++ _ &quot;cp -f $modz/modules.alias $modz/modules.description $tmp_initrd/modules/$ext&quot;;
++ }
++ # ka deploy need some files in all.rdz
++ {
++ mkdir_p(&quot;$tmp_initrd/$_&quot;) foreach qw(dev ka proc var/tmp tmp/stage2);
++ symlink(&quot;/sbin&quot;, &quot;$tmp_initrd/bin&quot;);
++ cp_af(&quot;/usr/bin/ka-d-client&quot;, &quot;$tmp_initrd/ka/ka-d-client&quot;);
++ cp_af(&quot;/bin/busybox.static&quot;, &quot;$tmp_initrd/sbin/busybox&quot;);
++ my @funct = map { /functions:/ .. /^$/ ? do { s/\s//g; split /,/ } : () } `busybox.static`;
++ shift @funct;
++ symlink('busybox', $tmp_initrd . &quot;/sbin/$_&quot;) foreach @funct;
++ }
++
++ my $devs = sprintf &quot;ls /dev/{%s}&quot;, join(',', qw(console fb0 fd0 loop3 mem null ppp ptmx ptyp0 ram3 random tty[0-7] ttyp0 ttyS0 urandom));
++
++ _ &quot;(cd $tmp_initrd; (find . ; $devs) | cpio -o -c --quiet) | gzip -9 &gt; $img&quot;;
++ _ &quot;rm -rf $tmp_initrd&quot;;
++}
++
++sub entries_append {
++ my ($type) = @_;
++
++ my $automatic = $type =~ /cdrom/ ? 'automatic=method:cdrom ' : '';
++ $automatic .= 'changedisk ' if $type =~ /changedisk/;
++
++ my @simple_entries = (
++ linux =&gt; $default_vga,
++ vgalo =&gt; &quot;vga=785&quot;,
++ vgahi =&gt; &quot;vga=791&quot;,
++ text =&gt; &quot;text&quot;,
++# patch =&gt; &quot;patch $default_vga&quot;,
++ rescue =&gt; &quot;rescue&quot;,
++ );
++ my @entries = (
++ (map { $_-&gt;[0] =&gt; &quot;$automatic$default_acpi $_-&gt;[1]&quot; } group_by2(@simple_entries)),
++ noacpi =&gt; &quot;$automatic$default_vga acpi=off&quot;,
++# restore =&gt; &quot;$automatic$default_vga restore&quot;,
++ );
++
++ map { { label =&gt; $_-&gt;[0], append =&gt; join(' ', grep { $_ } $default_append, $_-&gt;[1]) } }
++ group_by2(@entries);
++}
++
++sub syslinux_cfg_all {
++ my ($type, $b_gfxboot) = @_;
++
++ syslinux_cfg([
++ (map {
++ { kernel =&gt; 'alt0/vmlinuz', initrd =&gt; 'alt0/all.rdz', %$_ };
++ } entries_append($type)),
++ (map_index {
++ { label =&gt; &quot;alt$::i&quot;, kernel =&gt; &quot;alt$::i/vmlinuz&quot;, initrd =&gt; &quot;alt$::i/all.rdz&quot;,
++ append =&gt; join(' ', grep { $_ } $default_append, $default_acpi, $default_vga) };
++ } @kernels),
++ { label =&gt; 'memtest', kernel =&gt; 'memtest' },
++ ], $b_gfxboot);
++}
++sub remove_ending_zero {
++ my ($img) = @_;
++ _(q(perl -0777 -pi -e 's/\0+$//' ) . $img);
++}
++
++sub boot_img_i386 {
++ my ($type, $I, $img, $kernel) = @_;
++
++ _ &quot;rm -rf $tmp_mnt&quot;; mkdir $tmp_mnt;
++ _ &quot;cat $kernel &gt; $tmp_mnt/vmlinuz&quot;;
++
++ output(&quot;$tmp_mnt/help.msg&quot;, syslinux_msg('help.msg.xml'));
++ output(&quot;$tmp_mnt/advanced.msg&quot;, syslinux_msg('advanced.msg.xml'));
++
++ (my $rdz = $img) =~ s/\.img/.rdz/;
++ (my $initrd_type = $type) =~ s/-changedisk//;
++ initrd($initrd_type, $I, $rdz);
++ my $short_type = substr($type, 0, 8);
++
++ output(&quot;$tmp_mnt/syslinux.cfg&quot;,
++ syslinux_cfg([ map {
++ { kernel =&gt; 'vmlinuz', initrd =&gt; &quot;$short_type.rdz&quot;, %$_ };
++ } entries_append($type) ]));
++
++ _ &quot;cp -f $rdz $tmp_mnt/$short_type.rdz&quot;;
++ unlink $rdz;
++
++ my $size = max(chomp_(`du -s -k $tmp_mnt`) + 50, 1440);
++ _ &quot;dd if=/dev/zero of=$img bs=1k count=$size&quot;;
++
++ _ &quot;mkdosfs-with-dir $tmp_mnt $img&quot;;
++ _ &quot;syslinux $img&quot;;
++ _ &quot;rm -rf $tmp_mnt&quot;;
++}
++
++# alias to x86 variant, slightly bigger with images though
++sub boot_img_x86_64 { &amp;boot_img_i386 }
++
++sub boot_img_alpha {
++ my ($type, $I, $img) = @_;
++
++ __ &quot;$sudo umount $tmp_mnt 2&gt;/dev/null&quot;;
++ _ &quot;dd if=/dev/zero of=$img bs=1k count=1440&quot;;
++ mke2fs($img);
++ _ &quot;/sbin/e2writeboot $img /boot/bootlx&quot;;
++ _ &quot;$sudo mount -t ext2 $img $tmp_mnt -o loop&quot;;
++ _ &quot;cp -f vmlinux.gz $tmp_mnt&quot;;
++ -f &quot;$type.rdz&quot; ? _ &quot;cp -f $type.rdz $tmp_mnt&quot; : initrd($type, $I, &quot;$tmp_mnt/$type.rdz&quot;);
++
++ mkdir &quot;$tmp_mnt/etc&quot;, 0777;
++ output(&quot;$tmp_mnt/etc/aboot.conf&quot;,
++&quot;0:vmlinux.gz initrd=$type.rdz rw $default_append $type
++1:vmlinux.gz initrd=$type.rdz rw $default_append text $type
++&quot;);
++ _ &quot;sync&quot;;
++ _ &quot;df $tmp_mnt&quot;;
++}
++
++sub boot_img_ia64 {
++ my ($type, $_I, $img, $kernel) = @_;
++ my $rdz = $img; $rdz =~ s/\.img/.rdz/;
++
++ __ &quot;$sudo umount $tmp_mnt 2&gt;/dev/null&quot;;
++ _ &quot;dd if=/dev/zero of=$img bs=1k count=16384&quot;;
++ _ &quot;mkdosfs $img&quot;;
++ _ &quot;$sudo mount -t vfat $img $tmp_mnt -o loop,umask=000&quot;;
++ _ &quot;$sudo cp -f $kernel $tmp_mnt/vmlinux&quot;;
++ _ &quot;cp -f $rdz $tmp_mnt/$type.rdz&quot;;
++ _ &quot;$sudo cp -f tools/ia64/elilo.efi $tmp_mnt&quot;;
++ output(&quot;$tmp_mnt/elilo.conf&quot;, qq(
++prompt
++timeout=50
++
++image=vmlinux
++ label=linux
++ initrd=$type.rdz
++ append=&quot; ramdisk_size=120000&quot;
++ read-only
++
++image=vmlinux
++ label=rescue
++ initrd=$type.rdz
++ append=&quot; rescue ramdisk_size=120000&quot;
++&quot;));
++ _ &quot;sync&quot;;
++ _ &quot;df $tmp_mnt&quot;;
++
++}
++
++sub boot_img_sparc {
++ my ($type, $I, $_img) = @_;
++ if ($type =~ /^live(.*)/) {
++ #- hack to produce directly into /export the needed file for cdrom boot.
++ my $dir = &quot;/export&quot;;
++ my $boot = &quot;boot&quot;; #- non-absolute pathname only!
++
++ _ &quot;mkdir -p $dir/$boot&quot;;
++ _ &quot;cp -f /boot/cd.b /boot/second.b $dir/$boot&quot;;
++ _ &quot;cp -f vmlinux$1 $dir/$boot/vmlinux$1&quot;;
++ -f &quot;live$1.rdz&quot; ? _ &quot;cp -f live$1.rdz $dir/$boot&quot; : initrd($type, $I, &quot;$dir/$boot/live$1.rdz&quot;);
++
++ output(&quot;$dir/$boot/silo.conf&quot;, qq(
++partition=1
++default=linux
++timeout=100
++read-write
++message=/$boot/boot.msg
++image=&quot;cat /$boot/boot.msg&quot;
++ label=1
++ single-key
++image=&quot;cat /$boot/general.msg&quot;
++ label=2
++ single-key
++image=&quot;cat /$boot/expert.msg&quot;
++ label=3
++ single-key
++image=&quot;cat /$boot/rescue.msg&quot;
++ label=4
++ single-key
++image=&quot;cat /$boot/kickit.msg&quot;
++ label=5
++ single-key
++image=&quot;cat /$boot/param.msg&quot;
++ label=6
++ single-key
++image[sun4c,sun4d,sun4m]=/$boot/vmlinux
++ label=linux
++ alias=install
++ initrd=/$boot/live.rdz
++ append=&quot;ramdisk_size=128000&quot;
++image[sun4c,sun4d,sun4m]=/$boot/vmlinux
++ label=text
++ initrd=/$boot/live.rdz
++ append=&quot;ramdisk_size=128000 text&quot;
++image[sun4c,sun4d,sun4m]=/$boot/vmlinux
++ label=expert
++ initrd=/$boot/live.rdz
++ append=&quot;ramdisk_size=128000 expert&quot;
++image[sun4c,sun4d,sun4m]=/$boot/vmlinux
++ label=ks
++ initrd=/$boot/live.rdz
++ append=&quot;ramdisk_size=128000 ks&quot;
++image[sun4c,sun4d,sun4m]=/$boot/vmlinux
++ label=rescue
++ initrd=/$boot/live.rdz
++ append=&quot;ramdisk_size=128000 rescue&quot;
++image[sun4u]=/$boot/vmlinux64
++ label=linux
++ alias=install
++ initrd=/$boot/live64.rdz
++ append=&quot;ramdisk_size=128000&quot;
++image[sun4u]=/$boot/vmlinux64
++ label=text
++ initrd=/$boot/live64.rdz
++ append=&quot;ramdisk_size=128000 text&quot;
++image[sun4u]=/$boot/vmlinux64
++ label=expert
++ initrd=/$boot/live64.rdz
++ append=&quot;ramdisk_size=128000 expert&quot;
++image[sun4u]=/$boot/vmlinux64
++ label=ks
++ initrd=/$boot/live64.rdz
++ append=&quot;ramdisk_size=128000 ks&quot;
++image[sun4u]=/$boot/vmlinux64
++ label=rescue
++ initrd=/$boot/live64.rdz
++ append=&quot;ramdisk_size=128000 rescue&quot;
++&quot;));
++
++ output(&quot;$dir/$boot/README&quot;, &quot;
++To Build a Bootable CD-ROM, try:
++ genisoimage -R -o t.iso -s /$boot/silo.conf /export
++&quot;);
++ } elsif ($type =~ /^tftprd(.*)/) {
++ my $dir = &quot;/export&quot;;
++ my $boot = &quot;images&quot;;
++ my $setarch = $1 ? &quot;sparc64&quot; : &quot;sparc32&quot;;
++
++ _ &quot;mkdir -p $dir/$boot&quot;;
++ -f &quot;$type.rdz&quot; or initrd($type, $I, &quot;$type.rdz&quot;);
++ _ &quot;cp -f vmlinux$1.aout $dir/$boot/$type.img&quot;;
++ _ &quot;$setarch kernel$1/src/arch/sparc$1/boot/piggyback $dir/$boot/$type.img kernel$1/boot/System.map $type.rdz&quot;;
++ } elsif ($type =~ /^tftp(.*)/) {
++ my $dir = &quot;/export&quot;;
++ my $boot = &quot;images&quot;;
++
++ _ &quot;mkdir -p $dir/$boot&quot;;
++ _ &quot;cp -f vmlinux$1.aout $dir/$boot/$type.img&quot;;
++ } else {
++ my $dir = &quot;floppy&quot;;
++ __ &quot;$sudo umount $tmp_mnt 2&gt;/dev/null&quot;;
++ _ &quot;rm -rf $dir&quot;;
++ _ &quot;mkdir -p $dir&quot;;
++ _ &quot;cp -f /boot/fd.b /boot/second.b $dir&quot;;
++ _ &quot;cp -f vmlinuz$I $dir/vmlinux$I.gz&quot;;
++ -f &quot;$type.rdz&quot; ? _ &quot;cp -f $type.rdz $dir&quot; : initrd($type, $I, &quot;$dir/$type.rdz&quot;);
++
++ output(&quot;$dir/boot.msg&quot;, &quot;
++Welcome to Mageia 1
++
++Press &lt;Enter&gt; to install or upgrade a system 7mMageia7m
++&quot;);
++
++ output(&quot;$dir/silo.conf&quot;, qq(
++partition=1
++default=linux
++timeout=100
++read-write
++message=/boot.msg
++image=/vmlinux$I.gz
++ label=linux
++ initrd=/$type.rdz
++ append=&quot;ramdisk_size=128000 $type&quot;
++&quot;));
++ _ &quot;genromfs -d $dir -f /dev/ram -A 2048,/.. -a 512 -V 'DrakX boot disk'&quot;;
++ _ &quot;$sudo mount -t romfs /dev/ram $tmp_mnt&quot;;
++ _ &quot;silo -r $tmp_mnt -F -i /fd.b -b /second.b -C /silo.conf&quot;;
++ _ &quot;$sudo umount $tmp_mnt&quot;;
++ _ &quot;dd if=/dev/ram of=$type.img bs=1440k count=1&quot;;
++ _ &quot;sync&quot;;
++ _ &quot;$sudo mount -t romfs /dev/ram $tmp_mnt&quot;;
++ _ &quot;df $tmp_mnt&quot;;
++ }
++}
++
++sub boot_img_ppc {
++ my ($_type, $I, $_img, $_kernel) = @_;
++ foreach (glob(&quot;all.kernels/*&quot;)) {
++ my $ext = basename($_);
++ if ($ext =~ /legacy/) {
++ initrd(&quot;all&quot;, $I, &quot;images/all.rdz-$ext&quot;);
++ _ &quot;mv images/all.rdz-$ext images/all.rdz-legacy&quot;;
++ _ &quot;cp $_/vmlinuz images/vmlinux-legacy&quot;;
++ }
++ elsif ($ext =~ /2.6/) {
++ initrd(&quot;all&quot;, $I, &quot;images/all.rdz-$ext&quot;);
++ _ &quot;mv images/all.rdz-$ext images/all.rdz&quot;;
++ _ &quot;cp $_/vmlinuz images/vmlinux&quot;;
++ }
++ }
++ _ &quot;cp -f /usr/lib/yaboot/yaboot images/yaboot&quot;;
++
++ output(&quot;images/ofboot.b&quot;, '&lt;CHRP-BOOT&gt;
++&lt;COMPATIBLE&gt;
++MacRISC
++&lt;/COMPATIBLE&gt;
++&lt;DESCRIPTION&gt;
++Mageia PPC bootloader
++&lt;/DESCRIPTION&gt;
++&lt;BOOT-SCRIPT&gt;
++&quot; screen&quot; output
++load-base release-load-area
++dev screen
++&quot; &quot;(0000000000aa00aa0000aaaaaa0000aa00aaaa5500aaaaaa)&quot; drop 0 8 set-colors
++&quot; &quot;(5555555555ff55ff5555ffffff5555ff55ffffff55ffffff)&quot; drop 8 8 set-colors
++device-end
++3 to foreground-color
++0 to background-color
++&quot; &quot;(0C)&quot; fb8-write drop
++&quot; Booting Mageia PPC...&quot; fb8-write drop 100 ms
++boot cd:,\boot\yaboot
++&lt;/BOOT-SCRIPT&gt;
++&lt;OS-BADGE-ICONS&gt;
++1010
++000000000000F8FEACF6000000000000
++0000000000F5FFFFFEFEF50000000000
++00000000002BFAFEFAFCF70000000000
++0000000000F65D5857812B0000000000
++0000000000F5350B2F88560000000000
++0000000000F6335708F8FE0000000000
++00000000005600F600F5FD8100000000
++00000000F9F8000000F5FAFFF8000000
++000000008100F5F50000F6FEFE000000
++000000F8F700F500F50000FCFFF70000
++00000088F70000F50000F5FCFF2B0000
++0000002F582A00F5000008ADE02C0000
++00090B0A35A62B0000002D3B350A0000
++000A0A0B0B3BF60000505E0B0A0B0A00
++002E350B0B2F87FAFCF45F0B2E090000
++00000007335FF82BF72B575907000000
++000000000000ACFFFF81000000000000
++000000000081FFFFFFFF810000000000
++0000000000FBFFFFFFFFAC0000000000
++000000000081DFDFDFFFFB0000000000
++000000000081DD5F83FFFD0000000000
++000000000081DDDF5EACFF0000000000
++0000000000FDF981F981FFFF00000000
++00000000FFACF9F9F981FFFFAC000000
++00000000FFF98181F9F981FFFF000000
++000000ACACF981F981F9F9FFFFAC0000
++000000FFACF9F981F9F981FFFFFB0000
++00000083DFFBF981F9F95EFFFFFC0000
++005F5F5FDDFFFBF9F9F983DDDD5F0000
++005F5F5F5FDD81F9F9E7DF5F5F5F5F00
++0083DD5F5F83FFFFFFFFDF5F835F0000
++000000FBDDDFACFBACFBDFDFFB000000
++000000000000FFFFFFFF000000000000
++0000000000FFFFFFFFFFFF0000000000
++0000000000FFFFFFFFFFFF0000000000
++0000000000FFFFFFFFFFFF0000000000
++0000000000FFFFFFFFFFFF0000000000
++0000000000FFFFFFFFFFFF0000000000
++0000000000FFFFFFFFFFFFFF00000000
++00000000FFFFFFFFFFFFFFFFFF000000
++00000000FFFFFFFFFFFFFFFFFF000000
++000000FFFFFFFFFFFFFFFFFFFFFF0000
++000000FFFFFFFFFFFFFFFFFFFFFF0000
++000000FFFFFFFFFFFFFFFFFFFFFF0000
++00FFFFFFFFFFFFFFFFFFFFFFFFFF0000
++00FFFFFFFFFFFFFFFFFFFFFFFFFFFF00
++00FFFFFFFFFFFFFFFFFFFFFFFFFF0000
++000000FFFFFFFFFFFFFFFFFFFF000000
++&lt;/OS-BADGE-ICONS&gt;
++&lt;/CHRP-BOOT&gt;
++');
++
++ output(&quot;images/yaboot.conf&quot;, '
++init-message = &quot;\nWelcome to Mageia PPC!\nHit &lt;TAB&gt; for boot options.\n\n&quot;
++timeout = 150
++device=cd:
++default = install-gui
++message=/boot/yaboot.msg
++
++image = /boot/vmlinux
++ label = install-gui
++ initrd = /boot/all.gz
++ initrd-size = 34000
++ append = &quot; ramdisk_size=128000&quot;
++
++image = /boot/vmlinux-power4
++ label = install-gui-power4
++ initrd = /boot/all-power4.gz
++ initrd-size = 34000
++ append = &quot; ramdisk_size=128000&quot;
++
++image = /boot/vmlinux
++ label = install-text
++ initrd = /boot/all.gz
++ initrd-size = 34000
++ append = &quot; text ramdisk_size=128000&quot;
++
++image = /boot/vmlinux-power4
++ label = install-text-power4
++ initrd = /boot/all-power4.gz
++ initrd-size = 34000
++ append = &quot; text ramdisk_size=128000&quot;
++
++image = /boot/vmlinux
++ label = install-gui-old
++ initrd = /boot/all.gz
++ initrd-size = 34000
++ append = &quot; gui-old ramdisk_size=128000&quot;
++
++image = /boot/vmlinux-power4
++ label = install-gui-old-power4
++ initrd = /boot/all-power4.gz
++ initrd-size = 34000
++ append = &quot; gui-old ramdisk_size=128000&quot;
++
++image = enet:0,vmlinux
++ label = install-net
++ initrd = enet:0,all.gz
++ initrd-size = 34000
++ append = &quot; ramdisk_size=128000&quot;
++
++image = enet:0,vmlinux-power4
++ label = install-net-power4
++ initrd = enet:0,all-power4.gz
++ initrd-size = 34000
++ append = &quot; ramdisk_size=128000&quot;
++
++image = enet:0,vmlinux
++ label = install-net-text
++ initrd = enet:0,all.gz
++ initrd-size = 34000
++ append = &quot; text ramdisk_size=128000&quot;
++
++image = enet:0,vmlinux-power4
++ label = install-net-text-power4
++ initrd = enet:0,all-power4.gz
++ initrd-size = 34000
++ append = &quot; text ramdisk_size=128000&quot;
++
++image = /boot/vmlinux
++ label = rescue
++ initrd = /boot/all.gz
++ initrd-size = 34000
++ append = &quot; rescue ramdisk_size=128000&quot;
++
++image = /boot/vmlinux-power4
++ label = rescue-power4
++ initrd = /boot/all-power4.gz
++ initrd-size = 34000
++ append = &quot; rescue ramdisk_size=128000&quot;
++
++image = enet:0,vmlinux
++ label = rescue-net
++ initrd = enet:0,all.gz
++ initrd-size = 34000
++ append = &quot; rescue ramdisk_size=128000&quot;
++
++image = enet:0,vmlinux-power4
++ label = rescue-net-power4
++ initrd = enet:0,all-power4.gz
++ initrd-size = 34000
++ append = &quot; rescue ramdisk_size=128000&quot;
++');
++
++ output(&quot;images/yaboot.msg&quot;, '
++Thanks for choosing Mageia PPC. The following is a short
++explanation of the various options for booting the install CD.
++
++All options ending with &quot;-power4&quot; use the BOOT kernel for ppc 9xx and POWER4.
++The default syntax with no suffix uses the BOOT kernel for ppc 6xx 7xx and 7xxx.
++The default if you just hit enter is &quot;install-gui&quot;.
++
++install-gui: uses Xorg fbdev mode
++install-text: text based install
++install-net: allows you to use a minimal boot CD,
++ pulling the rest of the install from
++ a network server
++install-net-text: text mode network install
++rescue: boots the rescue image
++rescue-net: boots the rescue image from a network server
++
++');
++
++}
++
++sub VERSION {
++ my ($kernels) = @_;
++
++ map { &quot;$_\n&quot; }
++ $ENV{DISTRIB_DESCR},
++ scalar gmtime(),
++ '', @$kernels;
++}
++
++sub syslinux_all_files {
++ my ($dir, $kernels) = @_;
++
++ eval { rm_rf($dir) }; mkdir_p($dir);
++
++ @$kernels or die &quot;syslinux_all_files: no kernel\n&quot;;
++
++ $default_vga =~ /788/ or die 'we rely on vga=788 for bootsplash';
++ my $theme = $ENV{THEME} || 'Mageia-Free';
++
++ each_index {
++ mkdir &quot;$dir/alt$::i&quot;, 0777;
++ _ &quot;cp all.kernels/$_/vmlinuz $dir/alt$::i&quot;;
++ initrd('all', '', &quot;images/all.rdz-$_&quot;);
++ rename(&quot;images/all.rdz-$_&quot;, &quot;$dir/alt$::i/all.rdz&quot;);
++ } @$kernels;
++
++ _ &quot;install -m 644 -D /boot/memtest* $dir/memtest&quot;;
++
++ output(&quot;$dir/help.msg&quot;, syslinux_msg('help.msg.xml'));
++ output(&quot;$dir/advanced.msg&quot;, syslinux_msg('advanced.msg.xml',
++ &quot;\nYou can choose the following kernels :\n&quot;,
++ map_index { &quot; o &quot; . syslinux_color('white') . &quot;alt$::i&quot; . syslinux_color('default') . &quot; is kernel $_\n&quot; } @$kernels));
++}
++
++sub isolinux {
++ my ($kernels) = @_;
++
++ syslinux_all_files('isolinux', $kernels);
++
++ _ &quot;cp $isolinux_bin isolinux/isolinux.bin&quot;;
++ _ &quot;cp /usr/lib/syslinux/gfxboot.com isolinux/gfxboot.com&quot;;
++ output(&quot;isolinux/isolinux.cfg&quot;, syslinux_cfg_all('cdrom', 1));
++
++ xbox_stage1() if arch() =~ /i.86/;
++}
++
++sub xbox_stage1() {
++ my $xbox_kernel = find { /xbox/ } all('all.kernels') or return;
++
++ my $dir = 'isolinux/xbox';
++ eval { rm_rf($dir) }; mkdir_p($dir);
++
++ _ &quot;cp all.kernels/$xbox_kernel/vmlinuz $dir&quot;;
++ initrd('all', '', &quot;images/all.rdz-$xbox_kernel&quot;);
++ rename(&quot;images/all.rdz-$xbox_kernel&quot;, &quot;$dir/initrd&quot;);
++
++ _ &quot;cp /usr/share/cromwell/xromwell-installer.xbe $dir/default.xbe&quot;;
++ output(&quot;$dir/linuxboot.cfg&quot;, &lt;&lt;EOF);
++kernel $dir/vmlinuz
++initrd $dir/initrd
++append root=/dev/ram3 ramdisk_size=36000 automatic=method:cdrom
++EOF
++}
++
++sub boot_iso {
++ my ($iso, $kernels) = @_;
++
++ syslinux_all_files('.boot_iso/isolinux', $kernels);
++
++ output('.boot_iso/VERSION', VERSION($kernels));
++
++ # for the boot iso, use standard isolinux
++ _ &quot;cp /usr/lib/syslinux/isolinux.bin .boot_iso/isolinux/isolinux.bin&quot;;
++
++ my $with_gfxboot = 0;
++ _ &quot;cp /usr/share/gfxboot/themes/Mageia/install/* .boot_iso/isolinux&quot; if $with_gfxboot;
++# _ &quot;cp /home/pixel/cooker/soft/theme/mandriva-gfxboot-theme/inst/* .boot_iso/isolinux&quot; if $with_gfxboot;
++ #_ &quot;cp /home/teuf/mdv/src/mandriva-gfxboot-theme/inst/* .boot_iso/isolinux&quot; if $with_gfxboot;
++ _ &quot;cp /usr/lib/syslinux/gfxboot.com .boot_iso/isolinux/gfxboot.com&quot; if $with_gfxboot;
++
++ output('.boot_iso/isolinux/isolinux.cfg', syslinux_cfg_all('', $with_gfxboot));
++
++ _ &quot;genisoimage -r -f -J -cache-inodes -V 'Mga Boot ISO' -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o $iso .boot_iso&quot;;
++ rm_rf('.boot_iso');
++}
++
++sub hd_grub {
++ my ($img) = @_;
++ my $mapfile = '/tmp/device.map.tmp';
++
++ my ($grub_dir) = glob(&quot;/lib/grub/*-*&quot;);
++ my @grub_files = map { &quot;$grub_dir/$_&quot; } qw(stage1 stage2);
++ my $size = 40_000 + sum(map { -s $_ } @grub_files);
++
++ _ &quot;dd if=/dev/zero of=$img bs=1 count=$size&quot;;
++
++ _ &quot;rm -rf $tmp_mnt&quot;; mkdir $tmp_mnt;
++ _ &quot;cp @grub_files $tmp_mnt&quot;;
++
++ output(&quot;$tmp_mnt/menu.lst&quot;, &lt;&lt;EOF);
++timeout 10
++default 0
++fallback 1
++
++title Mageia Install
++
++root (hd0,0)
++kernel /cooker/isolinux/alt0/vmlinuz $default_append $default_acpi $default_vga automatic=method:disk
++initrd /cooker/isolinux/alt0/all.rdz
++
++title Help
++
++pause To display the help, press &lt;space&gt; until you reach &quot;HELP END&quot;
++pause .
++pause Please see http://qa.mandriva.com/hd_grub.cgi for a friendlier solution
++pause .
++pause To specify the location where Mageia is copied,
++pause choose &quot;Mageia Install&quot;, and press &quot;e&quot;.
++pause Then change &quot;root (hd0,0)&quot;. FYI:
++pause - (hd0,0) is the first partition on first bios hard drive (usually hda1)
++pause - (hd0,4) is the first extended partition (usually hda5)
++pause - (hd1,0) is the first partition on second bios hard drive
++pause Replace /cauldron to suit the directory containing Mageia
++pause .
++pause HELP END
++EOF
++
++ _ &quot;mkdosfs-with-dir $tmp_mnt $img&quot;;
++ _ &quot;rm -rf $tmp_mnt&quot;;
++
++ output($mapfile, &quot;(fd0) $img\n&quot;);
++
++ open(my $G, &quot;| grub --device-map=$mapfile --batch&quot;);
++ print $G &lt;&lt;EOF;
++root (fd0)
++install /stage1 d (fd0) /stage2 p /menu.lst
++quit
++EOF
++ close $G;
++ unlink $mapfile;
++}
+
+
+Property changes on: drakx/trunk/images/make_boot_img
+___________________________________________________________________
+<a id="svnexecutable">Added: svn:executable</a>
+ + *
+
+<a id="drakxtrunkimagesupdate_kernel">Added: drakx/trunk/images/update_kernel</a>
+===================================================================
+--- drakx/trunk/images/update_kernel (rev 0)
++++ drakx/trunk/images/update_kernel 2011-02-07 11:20:50 UTC (rev 473)
+@@ -0,0 +1,80 @@
++#!/usr/bin/perl
++
++# this script takes command kernel rpms (either installed rpms or rpm files)
++# and create various files in all_kernels/:
++# all.kernels/VER/all_modules.tar (used for all.rdz)
++# all.kernels/VER/modules.dep
++# all.kernels/VER/modules.alias
++# all.kernels/VER/vmlinuz
++
++use lib '../kernel';
++use MDK::Common;
++use list_modules;
++
++(my $karch = arch()) =~ s/^i.86$/i586/;
++my $rpm = 'rpm --nosignature';
++
++
++@ARGV or die &quot;usage: ./update_kernel [--move] (&lt;kernel rpm&gt; ... | &lt;installed kernel name&gt; ...)\n&quot;;
++
++eval { rm_rf('all.kernels') }; #- remove old things
++mkdir 'all.kernels';
++
++my @kernels = map {
++ my $kern_ver = rpm2version($_);
++ if (/\.rpm$/) {
++ extract_kernel($_, $kern_ver);
++ } else {
++ extract_installed_rpm('', $kern_ver);
++ }
++ $kern_ver;
++} @ARGV;
++
++output('all.kernels/.list', map { &quot;$_\n&quot; } @kernels);
++
++sub system_verbose { print join(' ', @_), &quot;\n&quot;; system(@_) }
++sub sys { &amp;system_verbose; $? and die }
++
++sub rpm2version {
++ my ($kernel_rpm) = @_;
++ my $opt = -e $kernel_rpm ? '-qpl' : '-ql';
++ `$rpm $opt $kernel_rpm` =~ m!/boot/vmlinuz-(.*)! &amp;&amp; $1 or die &quot;can't find vmlinuz in $kernel_rpm (is it installed?)\n&quot;;
++}
++
++sub extract_kernel {
++ my ($kernel_rpm, $kern_ver) = @_;
++
++ my $dir = &quot;all.kernels/$kern_ver&quot;;
++
++ warn &quot;Extracting kernel $kern_ver\n&quot;;
++
++ eval { rm_rf($dir) };
++ mkdir_p(&quot;$dir/modules&quot;);
++ sys(&quot;rpm2cpio $kernel_rpm | (cd $dir ; cpio -id)&quot;);
++
++ extract_installed_rpm($dir, $kern_ver);
++
++ eval { rm_rf(&quot;$dir$_&quot;) } foreach qw(/boot /lib /usr);
++}
++
++sub extract_installed_rpm {
++ my ($installed_dir, $kern_ver) = @_;
++ my $local_dir = &quot;all.kernels/$kern_ver&quot;;
++ mkdir_p(&quot;$local_dir/modules&quot;);
++
++ sys('cp', &quot;$installed_dir/boot/vmlinuz-$kern_ver&quot;, &quot;$local_dir/vmlinuz&quot;);
++ sys(&quot;cp $installed_dir/lib/modules/$kern_ver/modules.* $local_dir&quot;);
++
++ open(my $F, &quot;find $installed_dir/lib/modules/$kern_ver -name '*.ko.gz' |&quot;);
++ my $file; while ($file = &lt;$F&gt;) {
++ chomp($file);
++ system('cp', $file, &quot;$local_dir/modules/&quot; . basename($file)) == 0
++ or warn &quot;conflict for $file\n&quot;;
++ }
++
++ sys('perl', '../kernel/modules.pl', 'remove_unneeded_modules', $kern_ver);
++ sys('perl', '../kernel/modules.pl', 'get_firmwares', $kern_ver);
++ sys('perl', '../kernel/modules.pl', 'make_modules_per_image', $kern_ver);
++
++ rm_rf(&quot;$local_dir/modules&quot;);
++}
+
+
+Property changes on: drakx/trunk/images/update_kernel
+___________________________________________________________________
+Added: svn:executable
+ + *
+
+</pre></div>
+
+</body>
+</html> \ No newline at end of file
diff --git a/zarb-ml/mageia-sysadm/attachments/20110207/6536bb19/attachment-0001.html b/zarb-ml/mageia-sysadm/attachments/20110207/6536bb19/attachment-0001.html
new file mode 100644
index 000000000..a922b30c1
--- /dev/null
+++ b/zarb-ml/mageia-sysadm/attachments/20110207/6536bb19/attachment-0001.html
@@ -0,0 +1,90 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>[471] New version 1.13.3</title>
+</head>
+<body>
+
+<style type="text/css"><!--
+#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
+#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
+#msg dt:after { content:':';}
+#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
+#msg dl a { font-weight: bold}
+#msg dl a:link { color:#fc3; }
+#msg dl a:active { color:#ff0; }
+#msg dl a:visited { color:#cc6; }
+h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
+#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
+#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
+#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
+#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
+#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
+#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
+#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
+#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
+#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
+#logmsg pre { background: #eee; padding: 1em; }
+#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
+#logmsg dl { margin: 0; }
+#logmsg dt { font-weight: bold; }
+#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
+#logmsg dd:before { content:'\00bb';}
+#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
+#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
+#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
+#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
+#logmsg table th.Corner { text-align: left; }
+#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
+#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
+#patch { width: 100%; }
+--></style>
+<div id="msg">
+<dl class="meta">
+<dt>Revision</dt> <dd>471</dd>
+<dt>Author</dt> <dd>dmorgan</dd>
+<dt>Date</dt> <dd>2011-02-07 11:32:15 +0100 (Mon, 07 Feb 2011)</dd>
+</dl>
+
+<h3>Log Message</h3>
+<pre>New version 1.13.3</pre>
+
+<h3>Modified Paths</h3>
+<ul>
+<li><a href="#userdrake2trunkMakefile">userdrake2/trunk/Makefile</a></li>
+<li><a href="#userdrake2trunkuserdrake">userdrake2/trunk/userdrake</a></li>
+</ul>
+
+</div>
+<div id="patch"><pre>
+<a id="userdrake2trunkMakefile">Modified: userdrake2/trunk/Makefile</a>
+===================================================================
+--- userdrake2/trunk/Makefile 2011-02-07 10:17:44 UTC (rev 470)
++++ userdrake2/trunk/Makefile 2011-02-07 10:32:15 UTC (rev 471)
+@@ -1,5 +1,5 @@
+
+-VERSION = 1.13.2
++VERSION = 1.13.3
+ NAME = userdrake
+ BINNAME = userdrake
+
+
+<a id="userdrake2trunkuserdrake">Modified: userdrake2/trunk/userdrake</a>
+===================================================================
+--- userdrake2/trunk/userdrake 2011-02-07 10:17:44 UTC (rev 470)
++++ userdrake2/trunk/userdrake 2011-02-07 10:32:15 UTC (rev 471)
+@@ -52,7 +52,7 @@
+ my $in = interactive-&gt;vnew('su');
+
+ my $us = {};
+-$us-&gt;{VERSION} = '0.92';
++$us-&gt;{VERSION} = '1.13.3';
+
+ my $window_splash = Gtk2::Window-&gt;new('popup');
+ $window_splash-&gt;signal_connect(delete_event =&gt; \&amp;QuitGlobal);
+
+</pre></div>
+
+</body>
+</html> \ No newline at end of file
diff --git a/zarb-ml/mageia-sysadm/attachments/20110207/6536bb19/attachment.html b/zarb-ml/mageia-sysadm/attachments/20110207/6536bb19/attachment.html
new file mode 100644
index 000000000..a922b30c1
--- /dev/null
+++ b/zarb-ml/mageia-sysadm/attachments/20110207/6536bb19/attachment.html
@@ -0,0 +1,90 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>[471] New version 1.13.3</title>
+</head>
+<body>
+
+<style type="text/css"><!--
+#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
+#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
+#msg dt:after { content:':';}
+#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
+#msg dl a { font-weight: bold}
+#msg dl a:link { color:#fc3; }
+#msg dl a:active { color:#ff0; }
+#msg dl a:visited { color:#cc6; }
+h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
+#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
+#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
+#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
+#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
+#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
+#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
+#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
+#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
+#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
+#logmsg pre { background: #eee; padding: 1em; }
+#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
+#logmsg dl { margin: 0; }
+#logmsg dt { font-weight: bold; }
+#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
+#logmsg dd:before { content:'\00bb';}
+#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
+#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
+#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
+#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
+#logmsg table th.Corner { text-align: left; }
+#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
+#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
+#patch { width: 100%; }
+--></style>
+<div id="msg">
+<dl class="meta">
+<dt>Revision</dt> <dd>471</dd>
+<dt>Author</dt> <dd>dmorgan</dd>
+<dt>Date</dt> <dd>2011-02-07 11:32:15 +0100 (Mon, 07 Feb 2011)</dd>
+</dl>
+
+<h3>Log Message</h3>
+<pre>New version 1.13.3</pre>
+
+<h3>Modified Paths</h3>
+<ul>
+<li><a href="#userdrake2trunkMakefile">userdrake2/trunk/Makefile</a></li>
+<li><a href="#userdrake2trunkuserdrake">userdrake2/trunk/userdrake</a></li>
+</ul>
+
+</div>
+<div id="patch"><pre>
+<a id="userdrake2trunkMakefile">Modified: userdrake2/trunk/Makefile</a>
+===================================================================
+--- userdrake2/trunk/Makefile 2011-02-07 10:17:44 UTC (rev 470)
++++ userdrake2/trunk/Makefile 2011-02-07 10:32:15 UTC (rev 471)
+@@ -1,5 +1,5 @@
+
+-VERSION = 1.13.2
++VERSION = 1.13.3
+ NAME = userdrake
+ BINNAME = userdrake
+
+
+<a id="userdrake2trunkuserdrake">Modified: userdrake2/trunk/userdrake</a>
+===================================================================
+--- userdrake2/trunk/userdrake 2011-02-07 10:17:44 UTC (rev 470)
++++ userdrake2/trunk/userdrake 2011-02-07 10:32:15 UTC (rev 471)
+@@ -52,7 +52,7 @@
+ my $in = interactive-&gt;vnew('su');
+
+ my $us = {};
+-$us-&gt;{VERSION} = '0.92';
++$us-&gt;{VERSION} = '1.13.3';
+
+ my $window_splash = Gtk2::Window-&gt;new('popup');
+ $window_splash-&gt;signal_connect(delete_event =&gt; \&amp;QuitGlobal);
+
+</pre></div>
+
+</body>
+</html> \ No newline at end of file
diff --git a/zarb-ml/mageia-sysadm/attachments/20110207/67d1f0e8/attachment-0001.html b/zarb-ml/mageia-sysadm/attachments/20110207/67d1f0e8/attachment-0001.html
new file mode 100644
index 000000000..1cb4d363f
--- /dev/null
+++ b/zarb-ml/mageia-sysadm/attachments/20110207/67d1f0e8/attachment-0001.html
@@ -0,0 +1,11030 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>[459] Import cleaned ia ora kde4</title>
+</head>
+<body>
+
+<style type="text/css"><!--
+#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
+#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
+#msg dt:after { content:':';}
+#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
+#msg dl a { font-weight: bold}
+#msg dl a:link { color:#fc3; }
+#msg dl a:active { color:#ff0; }
+#msg dl a:visited { color:#cc6; }
+h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
+#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
+#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
+#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
+#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
+#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
+#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
+#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
+#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
+#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
+#logmsg pre { background: #eee; padding: 1em; }
+#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
+#logmsg dl { margin: 0; }
+#logmsg dt { font-weight: bold; }
+#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
+#logmsg dd:before { content:'\00bb';}
+#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
+#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
+#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
+#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
+#logmsg table th.Corner { text-align: left; }
+#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
+#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
+#patch { width: 100%; }
+--></style>
+<div id="msg">
+<dl class="meta">
+<dt>Revision</dt> <dd>459</dd>
+<dt>Author</dt> <dd>dmorgan</dd>
+<dt>Date</dt> <dd>2011-02-07 10:04:25 +0100 (Mon, 07 Feb 2011)</dd>
+</dl>
+
+<h3>Log Message</h3>
+<pre>Import cleaned ia ora kde4</pre>
+
+<h3>Added Paths</h3>
+<ul>
+<li>theme/ia_ora-kde4/</li>
+<li><a href="#themeia_orakde4AUTHORS">theme/ia_ora-kde4/AUTHORS</a></li>
+<li><a href="#themeia_orakde4BUGS">theme/ia_ora-kde4/BUGS</a></li>
+<li><a href="#themeia_orakde4CMakeListstxt">theme/ia_ora-kde4/CMakeLists.txt</a></li>
+<li><a href="#themeia_orakde4INSTALL">theme/ia_ora-kde4/INSTALL</a></li>
+<li><a href="#themeia_orakde4LICENSE">theme/ia_ora-kde4/LICENSE</a></li>
+<li><a href="#themeia_orakde4NEWS">theme/ia_ora-kde4/NEWS</a></li>
+<li><a href="#themeia_orakde4VERSION">theme/ia_ora-kde4/VERSION</a></li>
+<li>theme/ia_ora-kde4/color-schemes/</li>
+<li><a href="#themeia_orakde4colorschemesCMakeListstxt">theme/ia_ora-kde4/color-schemes/CMakeLists.txt</a></li>
+<li><a href="#themeia_orakde4colorschemesIaOraArcticcolors">theme/ia_ora-kde4/color-schemes/IaOraArctic.colors</a></li>
+<li><a href="#themeia_orakde4colorschemesIaOraBluecolors">theme/ia_ora-kde4/color-schemes/IaOraBlue.colors</a></li>
+<li><a href="#themeia_orakde4colorschemesIaOraGraycolors">theme/ia_ora-kde4/color-schemes/IaOraGray.colors</a></li>
+<li><a href="#themeia_orakde4colorschemesIaOraNightcolors">theme/ia_ora-kde4/color-schemes/IaOraNight.colors</a></li>
+<li><a href="#themeia_orakde4colorschemesIaOraOrangecolors">theme/ia_ora-kde4/color-schemes/IaOraOrange.colors</a></li>
+<li><a href="#themeia_orakde4colorschemesIaOraSmoothcolors">theme/ia_ora-kde4/color-schemes/IaOraSmooth.colors</a></li>
+<li><a href="#themeia_orakde4colorschemesIaOraSteelcolors">theme/ia_ora-kde4/color-schemes/IaOraSteel.colors</a></li>
+<li><a href="#themeia_orakde4configure">theme/ia_ora-kde4/configure</a></li>
+<li><a href="#themeia_orakde4installsh">theme/ia_ora-kde4/install.sh</a></li>
+<li>theme/ia_ora-kde4/kwin-client/</li>
+<li><a href="#themeia_orakde4kwinclientCMakeListstxt">theme/ia_ora-kde4/kwin-client/CMakeLists.txt</a></li>
+<li>theme/ia_ora-kde4/kwin-client/config/</li>
+<li><a href="#themeia_orakde4kwinclientconfigCMakeListstxt">theme/ia_ora-kde4/kwin-client/config/CMakeLists.txt</a></li>
+<li><a href="#themeia_orakde4kwinclientconfigiaora_configcpp">theme/ia_ora-kde4/kwin-client/config/iaora_config.cpp</a></li>
+<li><a href="#themeia_orakde4kwinclientconfigiaora_configh">theme/ia_ora-kde4/kwin-client/config/iaora_config.h</a></li>
+<li><a href="#themeia_orakde4kwinclientconfigiaora_configui">theme/ia_ora-kde4/kwin-client/config/iaora_config.ui</a></li>
+<li><a href="#themeia_orakde4kwinclientiaoradesktop">theme/ia_ora-kde4/kwin-client/iaora.desktop</a></li>
+<li><a href="#themeia_orakde4kwinclientkwin_iaoracpp">theme/ia_ora-kde4/kwin-client/kwin_iaora.cpp</a></li>
+<li><a href="#themeia_orakde4kwinclientkwin_iaorah">theme/ia_ora-kde4/kwin-client/kwin_iaora.h</a></li>
+<li>theme/ia_ora-kde4/src/</li>
+<li><a href="#themeia_orakde4srcdirectory">theme/ia_ora-kde4/src/.directory</a></li>
+<li><a href="#themeia_orakde4srcCMakeListstxt">theme/ia_ora-kde4/src/CMakeLists.txt</a></li>
+<li>theme/ia_ora-kde4/src/config/</li>
+<li><a href="#themeia_orakde4srcconfigCMakeListstxt">theme/ia_ora-kde4/src/config/CMakeLists.txt</a></li>
+<li>theme/ia_ora-kde4/src/config/images/</li>
+<li><a href="#themeia_orakde4srcconfigimagesREADME">theme/ia_ora-kde4/src/config/images/README</a></li>
+<li><a href="#themeia_orakde4srcconfigsk_configcpp">theme/ia_ora-kde4/src/config/sk_config.cpp</a></li>
+<li><a href="#themeia_orakde4srcconfigsk_configh">theme/ia_ora-kde4/src/config/sk_config.h</a></li>
+<li><a href="#themeia_orakde4srcconfigsk_dialogui">theme/ia_ora-kde4/src/config/sk_dialog.ui</a></li>
+<li><a href="#themeia_orakde4srcconfigsk_preview1ui">theme/ia_ora-kde4/src/config/sk_preview1.ui</a></li>
+<li><a href="#themeia_orakde4srcconfigsk_preview2qrc">theme/ia_ora-kde4/src/config/sk_preview2.qrc</a></li>
+<li><a href="#themeia_orakde4srcconfigsk_preview2ui">theme/ia_ora-kde4/src/config/sk_preview2.ui</a></li>
+<li><a href="#themeia_orakde4srciaorakdecpp">theme/ia_ora-kde4/src/iaora-kde.cpp</a></li>
+<li><a href="#themeia_orakde4srciaorakdeh">theme/ia_ora-kde4/src/iaora-kde.h</a></li>
+<li><a href="#themeia_orakde4srciaorakdethemerc">theme/ia_ora-kde4/src/iaora-kde.themerc</a></li>
+<li><a href="#themeia_orakde4srciaoraqtcpp">theme/ia_ora-kde4/src/iaora-qt.cpp</a></li>
+<li><a href="#themeia_orakde4srciaoraqth">theme/ia_ora-kde4/src/iaora-qt.h</a></li>
+<li><a href="#themeia_orakde4srciaoracolors">theme/ia_ora-kde4/src/iaoracolors</a></li>
+<li><a href="#themeia_orakde4srciaorastylecpp">theme/ia_ora-kde4/src/iaorastyle.cpp</a></li>
+<li><a href="#themeia_orakde4srciaorastyleh">theme/ia_ora-kde4/src/iaorastyle.h</a></li>
+<li><a href="#themeia_orakde4srciaorastyle_buttoncpp">theme/ia_ora-kde4/src/iaorastyle_button.cpp</a></li>
+<li><a href="#themeia_orakde4srciaorastyle_comboboxcpp">theme/ia_ora-kde4/src/iaorastyle_combobox.cpp</a></li>
+<li><a href="#themeia_orakde4srciaorastyle_dialcpp">theme/ia_ora-kde4/src/iaorastyle_dial.cpp</a></li>
+<li><a href="#themeia_orakde4srciaorastyle_framecpp">theme/ia_ora-kde4/src/iaorastyle_frame.cpp</a></li>
+<li><a href="#themeia_orakde4srciaorastyle_iconscpp">theme/ia_ora-kde4/src/iaorastyle_icons.cpp</a></li>
+<li><a href="#themeia_orakde4srciaorastyle_menucpp">theme/ia_ora-kde4/src/iaorastyle_menu.cpp</a></li>
+<li><a href="#themeia_orakde4srciaorastyle_progressbarcpp">theme/ia_ora-kde4/src/iaorastyle_progressbar.cpp</a></li>
+<li><a href="#themeia_orakde4srciaorastyle_q3listviewcpp">theme/ia_ora-kde4/src/iaorastyle_q3listview.cpp</a></li>
+<li><a href="#themeia_orakde4srciaorastyle_scrollbarcpp">theme/ia_ora-kde4/src/iaorastyle_scrollbar.cpp</a></li>
+<li><a href="#themeia_orakde4srciaorastyle_slidercpp">theme/ia_ora-kde4/src/iaorastyle_slider.cpp</a></li>
+<li><a href="#themeia_orakde4srciaorastyle_spinboxcpp">theme/ia_ora-kde4/src/iaorastyle_spinbox.cpp</a></li>
+<li><a href="#themeia_orakde4srciaorastyle_symbolscpp">theme/ia_ora-kde4/src/iaorastyle_symbols.cpp</a></li>
+<li><a href="#themeia_orakde4srciaorastyle_tabbarcpp">theme/ia_ora-kde4/src/iaorastyle_tabbar.cpp</a></li>
+<li><a href="#themeia_orakde4srciaorastyle_toolbuttoncpp">theme/ia_ora-kde4/src/iaorastyle_toolbutton.cpp</a></li>
+<li><a href="#themeia_orakde4srciaorastyle_windowcpp">theme/ia_ora-kde4/src/iaorastyle_window.cpp</a></li>
+<li>theme/ia_ora-kde4/test/</li>
+<li><a href="#themeia_orakde4testCMakeListstxt">theme/ia_ora-kde4/test/CMakeLists.txt</a></li>
+<li><a href="#themeia_orakde4testmainwindowui">theme/ia_ora-kde4/test/mainwindow.ui</a></li>
+<li><a href="#themeia_orakde4testmywindowcpp">theme/ia_ora-kde4/test/mywindow.cpp</a></li>
+<li><a href="#themeia_orakde4testmywindowh">theme/ia_ora-kde4/test/mywindow.h</a></li>
+<li><a href="#themeia_orakde4testqttestcpp">theme/ia_ora-kde4/test/qttest.cpp</a></li>
+<li><a href="#themeia_orakde4uninstallsh">theme/ia_ora-kde4/uninstall.sh</a></li>
+</ul>
+
+</div>
+<div id="patch"><pre>
+<a id="themeia_orakde4AUTHORS">Added: theme/ia_ora-kde4/AUTHORS</a>
+===================================================================
+--- theme/ia_ora-kde4/AUTHORS (rev 0)
++++ theme/ia_ora-kde4/AUTHORS 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,4 @@
++Gustavo Pichorim Boiko &lt;boiko@mandriva.com&gt;
++Christoph Feck &lt;christoph@maxiom.de&gt; (original Skulpture author)
++Rodrigo Gonçalves de Oliveira &lt;rodrigo@mandriva.com&gt;
++Nicolas Lécureuil &lt;nlecureuil@mandriva.com&gt;
+
+<a id="themeia_orakde4BUGS">Added: theme/ia_ora-kde4/BUGS</a>
+===================================================================
+--- theme/ia_ora-kde4/BUGS (rev 0)
++++ theme/ia_ora-kde4/BUGS 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1 @@
++
+
+<a id="themeia_orakde4CMakeListstxt">Added: theme/ia_ora-kde4/CMakeLists.txt</a>
+===================================================================
+--- theme/ia_ora-kde4/CMakeLists.txt (rev 0)
++++ theme/ia_ora-kde4/CMakeLists.txt 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,26 @@
++project (iaora)
++cmake_minimum_required (VERSION 2.4)
++
++find_package (KDE4)
++
++if (KDE4_FOUND)
++ include (KDE4Defaults)
++ include (MacroLibrary)
++ add_definitions (${QT_DEFINITIONS} ${KDE4_DEFINITIONS} )
++ include_directories (${KDE4_INCLUDES})
++else (KDE4_FOUND)
++ message (STATUS &quot;WARNING: *** KDE4 not found, building a Qt-only version of IaOra ***&quot;)
++ set (QT_MIN_VERSION &quot;4.3.0&quot;)
++ find_package (Qt4 REQUIRED)
++ include (UseQt4)
++ set (CMAKE_INCLUDE_CURRENT_DIR ON)
++endif (KDE4_FOUND)
++
++add_subdirectory (src)
++add_subdirectory (color-schemes)
++add_subdirectory (test)
++
++if (KDE4_FOUND)
++ add_subdirectory (kwin-client)
++endif (KDE4_FOUND)
++
+
+
+Property changes on: theme/ia_ora-kde4/CMakeLists.txt
+___________________________________________________________________
+<a id="svneolstyle">Added: svn:eol-style</a>
+ + native
+
+<a id="themeia_orakde4INSTALL">Added: theme/ia_ora-kde4/INSTALL</a>
+===================================================================
+--- theme/ia_ora-kde4/INSTALL (rev 0)
++++ theme/ia_ora-kde4/INSTALL 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,20 @@
++=== Installing IaOra ===
++
++*** Installation ***
++
++Installation from source requires CMake. To install, type the following at
++the shell prompt within the package directory.
++Note that you are prompted for the root password during installation.
++
++ sh install.sh
++
++
++*** Deinstallation ***
++
++To uninstall, type the following at the shell prompt within the directory
++from which you installed. If you deleted that directory, just install it
++again. Again, you are prompted for the root password.
++
++ sh uninstall.sh
++
++
+
+<a id="themeia_orakde4LICENSE">Added: theme/ia_ora-kde4/LICENSE</a>
+===================================================================
+--- theme/ia_ora-kde4/LICENSE (rev 0)
++++ theme/ia_ora-kde4/LICENSE 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,676 @@
++
++ GNU GENERAL PUBLIC LICENSE
++ Version 3, 29 June 2007
++
++ Copyright (C) 2007 Free Software Foundation, Inc. &lt;http://fsf.org/&gt;
++ Everyone is permitted to copy and distribute verbatim copies
++ of this license document, but changing it is not allowed.
++
++ Preamble
++
++ The GNU General Public License is a free, copyleft license for
++software and other kinds of works.
++
++ The licenses for most software and other practical works are designed
++to take away your freedom to share and change the works. By contrast,
++the GNU General Public License is intended to guarantee your freedom to
++share and change all versions of a program--to make sure it remains free
++software for all its users. We, the Free Software Foundation, use the
++GNU General Public License for most of our software; it applies also to
++any other work released this way by its authors. You can apply it to
++your programs, too.
++
++ When we speak of free software, we are referring to freedom, not
++price. Our General Public Licenses are designed to make sure that you
++have the freedom to distribute copies of free software (and charge for
++them if you wish), that you receive source code or can get it if you
++want it, that you can change the software or use pieces of it in new
++free programs, and that you know you can do these things.
++
++ To protect your rights, we need to prevent others from denying you
++these rights or asking you to surrender the rights. Therefore, you have
++certain responsibilities if you distribute copies of the software, or if
++you modify it: responsibilities to respect the freedom of others.
++
++ For example, if you distribute copies of such a program, whether
++gratis or for a fee, you must pass on to the recipients the same
++freedoms that you received. You must make sure that they, too, receive
++or can get the source code. And you must show them these terms so they
++know their rights.
++
++ Developers that use the GNU GPL protect your rights with two steps:
++(1) assert copyright on the software, and (2) offer you this License
++giving you legal permission to copy, distribute and/or modify it.
++
++ For the developers' and authors' protection, the GPL clearly explains
++that there is no warranty for this free software. For both users' and
++authors' sake, the GPL requires that modified versions be marked as
++changed, so that their problems will not be attributed erroneously to
++authors of previous versions.
++
++ Some devices are designed to deny users access to install or run
++modified versions of the software inside them, although the manufacturer
++can do so. This is fundamentally incompatible with the aim of
++protecting users' freedom to change the software. The systematic
++pattern of such abuse occurs in the area of products for individuals to
++use, which is precisely where it is most unacceptable. Therefore, we
++have designed this version of the GPL to prohibit the practice for those
++products. If such problems arise substantially in other domains, we
++stand ready to extend this provision to those domains in future versions
++of the GPL, as needed to protect the freedom of users.
++
++ Finally, every program is threatened constantly by software patents.
++States should not allow patents to restrict development and use of
++software on general-purpose computers, but in those that do, we wish to
++avoid the special danger that patents applied to a free program could
++make it effectively proprietary. To prevent this, the GPL assures that
++patents cannot be used to render the program non-free.
++
++ The precise terms and conditions for copying, distribution and
++modification follow.
++
++ TERMS AND CONDITIONS
++
++ 0. Definitions.
++
++ &quot;This License&quot; refers to version 3 of the GNU General Public License.
++
++ &quot;Copyright&quot; also means copyright-like laws that apply to other kinds of
++works, such as semiconductor masks.
++
++ &quot;The Program&quot; refers to any copyrightable work licensed under this
++License. Each licensee is addressed as &quot;you&quot;. &quot;Licensees&quot; and
++&quot;recipients&quot; may be individuals or organizations.
++
++ To &quot;modify&quot; a work means to copy from or adapt all or part of the work
++in a fashion requiring copyright permission, other than the making of an
++exact copy. The resulting work is called a &quot;modified version&quot; of the
++earlier work or a work &quot;based on&quot; the earlier work.
++
++ A &quot;covered work&quot; means either the unmodified Program or a work based
++on the Program.
++
++ To &quot;propagate&quot; a work means to do anything with it that, without
++permission, would make you directly or secondarily liable for
++infringement under applicable copyright law, except executing it on a
++computer or modifying a private copy. Propagation includes copying,
++distribution (with or without modification), making available to the
++public, and in some countries other activities as well.
++
++ To &quot;convey&quot; a work means any kind of propagation that enables other
++parties to make or receive copies. Mere interaction with a user through
++a computer network, with no transfer of a copy, is not conveying.
++
++ An interactive user interface displays &quot;Appropriate Legal Notices&quot;
++to the extent that it includes a convenient and prominently visible
++feature that (1) displays an appropriate copyright notice, and (2)
++tells the user that there is no warranty for the work (except to the
++extent that warranties are provided), that licensees may convey the
++work under this License, and how to view a copy of this License. If
++the interface presents a list of user commands or options, such as a
++menu, a prominent item in the list meets this criterion.
++
++ 1. Source Code.
++
++ The &quot;source code&quot; for a work means the preferred form of the work
++for making modifications to it. &quot;Object code&quot; means any non-source
++form of a work.
++
++ A &quot;Standard Interface&quot; means an interface that either is an official
++standard defined by a recognized standards body, or, in the case of
++interfaces specified for a particular programming language, one that
++is widely used among developers working in that language.
++
++ The &quot;System Libraries&quot; of an executable work include anything, other
++than the work as a whole, that (a) is included in the normal form of
++packaging a Major Component, but which is not part of that Major
++Component, and (b) serves only to enable use of the work with that
++Major Component, or to implement a Standard Interface for which an
++implementation is available to the public in source code form. A
++&quot;Major Component&quot;, in this context, means a major essential component
++(kernel, window system, and so on) of the specific operating system
++(if any) on which the executable work runs, or a compiler used to
++produce the work, or an object code interpreter used to run it.
++
++ The &quot;Corresponding Source&quot; for a work in object code form means all
++the source code needed to generate, install, and (for an executable
++work) run the object code and to modify the work, including scripts to
++control those activities. However, it does not include the work's
++System Libraries, or general-purpose tools or generally available free
++programs which are used unmodified in performing those activities but
++which are not part of the work. For example, Corresponding Source
++includes interface definition files associated with source files for
++the work, and the source code for shared libraries and dynamically
++linked subprograms that the work is specifically designed to require,
++such as by intimate data communication or control flow between those
++subprograms and other parts of the work.
++
++ The Corresponding Source need not include anything that users
++can regenerate automatically from other parts of the Corresponding
++Source.
++
++ The Corresponding Source for a work in source code form is that
++same work.
++
++ 2. Basic Permissions.
++
++ All rights granted under this License are granted for the term of
++copyright on the Program, and are irrevocable provided the stated
++conditions are met. This License explicitly affirms your unlimited
++permission to run the unmodified Program. The output from running a
++covered work is covered by this License only if the output, given its
++content, constitutes a covered work. This License acknowledges your
++rights of fair use or other equivalent, as provided by copyright law.
++
++ You may make, run and propagate covered works that you do not
++convey, without conditions so long as your license otherwise remains
++in force. You may convey covered works to others for the sole purpose
++of having them make modifications exclusively for you, or provide you
++with facilities for running those works, provided that you comply with
++the terms of this License in conveying all material for which you do
++not control copyright. Those thus making or running the covered works
++for you must do so exclusively on your behalf, under your direction
++and control, on terms that prohibit them from making any copies of
++your copyrighted material outside their relationship with you.
++
++ Conveying under any other circumstances is permitted solely under
++the conditions stated below. Sublicensing is not allowed; section 10
++makes it unnecessary.
++
++ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
++
++ No covered work shall be deemed part of an effective technological
++measure under any applicable law fulfilling obligations under article
++11 of the WIPO copyright treaty adopted on 20 December 1996, or
++similar laws prohibiting or restricting circumvention of such
++measures.
++
++ When you convey a covered work, you waive any legal power to forbid
++circumvention of technological measures to the extent such circumvention
++is effected by exercising rights under this License with respect to
++the covered work, and you disclaim any intention to limit operation or
++modification of the work as a means of enforcing, against the work's
++users, your or third parties' legal rights to forbid circumvention of
++technological measures.
++
++ 4. Conveying Verbatim Copies.
++
++ You may convey verbatim copies of the Program's source code as you
++receive it, in any medium, provided that you conspicuously and
++appropriately publish on each copy an appropriate copyright notice;
++keep intact all notices stating that this License and any
++non-permissive terms added in accord with section 7 apply to the code;
++keep intact all notices of the absence of any warranty; and give all
++recipients a copy of this License along with the Program.
++
++ You may charge any price or no price for each copy that you convey,
++and you may offer support or warranty protection for a fee.
++
++ 5. Conveying Modified Source Versions.
++
++ You may convey a work based on the Program, or the modifications to
++produce it from the Program, in the form of source code under the
++terms of section 4, provided that you also meet all of these conditions:
++
++ a) The work must carry prominent notices stating that you modified
++ it, and giving a relevant date.
++
++ b) The work must carry prominent notices stating that it is
++ released under this License and any conditions added under section
++ 7. This requirement modifies the requirement in section 4 to
++ &quot;keep intact all notices&quot;.
++
++ c) You must license the entire work, as a whole, under this
++ License to anyone who comes into possession of a copy. This
++ License will therefore apply, along with any applicable section 7
++ additional terms, to the whole of the work, and all its parts,
++ regardless of how they are packaged. This License gives no
++ permission to license the work in any other way, but it does not
++ invalidate such permission if you have separately received it.
++
++ d) If the work has interactive user interfaces, each must display
++ Appropriate Legal Notices; however, if the Program has interactive
++ interfaces that do not display Appropriate Legal Notices, your
++ work need not make them do so.
++
++ A compilation of a covered work with other separate and independent
++works, which are not by their nature extensions of the covered work,
++and which are not combined with it such as to form a larger program,
++in or on a volume of a storage or distribution medium, is called an
++&quot;aggregate&quot; if the compilation and its resulting copyright are not
++used to limit the access or legal rights of the compilation's users
++beyond what the individual works permit. Inclusion of a covered work
++in an aggregate does not cause this License to apply to the other
++parts of the aggregate.
++
++ 6. Conveying Non-Source Forms.
++
++ You may convey a covered work in object code form under the terms
++of sections 4 and 5, provided that you also convey the
++machine-readable Corresponding Source under the terms of this License,
++in one of these ways:
++
++ a) Convey the object code in, or embodied in, a physical product
++ (including a physical distribution medium), accompanied by the
++ Corresponding Source fixed on a durable physical medium
++ customarily used for software interchange.
++
++ b) Convey the object code in, or embodied in, a physical product
++ (including a physical distribution medium), accompanied by a
++ written offer, valid for at least three years and valid for as
++ long as you offer spare parts or customer support for that product
++ model, to give anyone who possesses the object code either (1) a
++ copy of the Corresponding Source for all the software in the
++ product that is covered by this License, on a durable physical
++ medium customarily used for software interchange, for a price no
++ more than your reasonable cost of physically performing this
++ conveying of source, or (2) access to copy the
++ Corresponding Source from a network server at no charge.
++
++ c) Convey individual copies of the object code with a copy of the
++ written offer to provide the Corresponding Source. This
++ alternative is allowed only occasionally and noncommercially, and
++ only if you received the object code with such an offer, in accord
++ with subsection 6b.
++
++ d) Convey the object code by offering access from a designated
++ place (gratis or for a charge), and offer equivalent access to the
++ Corresponding Source in the same way through the same place at no
++ further charge. You need not require recipients to copy the
++ Corresponding Source along with the object code. If the place to
++ copy the object code is a network server, the Corresponding Source
++ may be on a different server (operated by you or a third party)
++ that supports equivalent copying facilities, provided you maintain
++ clear directions next to the object code saying where to find the
++ Corresponding Source. Regardless of what server hosts the
++ Corresponding Source, you remain obligated to ensure that it is
++ available for as long as needed to satisfy these requirements.
++
++ e) Convey the object code using peer-to-peer transmission, provided
++ you inform other peers where the object code and Corresponding
++ Source of the work are being offered to the general public at no
++ charge under subsection 6d.
++
++ A separable portion of the object code, whose source code is excluded
++from the Corresponding Source as a System Library, need not be
++included in conveying the object code work.
++
++ A &quot;User Product&quot; is either (1) a &quot;consumer product&quot;, which means any
++tangible personal property which is normally used for personal, family,
++or household purposes, or (2) anything designed or sold for incorporation
++into a dwelling. In determining whether a product is a consumer product,
++doubtful cases shall be resolved in favor of coverage. For a particular
++product received by a particular user, &quot;normally used&quot; refers to a
++typical or common use of that class of product, regardless of the status
++of the particular user or of the way in which the particular user
++actually uses, or expects or is expected to use, the product. A product
++is a consumer product regardless of whether the product has substantial
++commercial, industrial or non-consumer uses, unless such uses represent
++the only significant mode of use of the product.
++
++ &quot;Installation Information&quot; for a User Product means any methods,
++procedures, authorization keys, or other information required to install
++and execute modified versions of a covered work in that User Product from
++a modified version of its Corresponding Source. The information must
++suffice to ensure that the continued functioning of the modified object
++code is in no case prevented or interfered with solely because
++modification has been made.
++
++ If you convey an object code work under this section in, or with, or
++specifically for use in, a User Product, and the conveying occurs as
++part of a transaction in which the right of possession and use of the
++User Product is transferred to the recipient in perpetuity or for a
++fixed term (regardless of how the transaction is characterized), the
++Corresponding Source conveyed under this section must be accompanied
++by the Installation Information. But this requirement does not apply
++if neither you nor any third party retains the ability to install
++modified object code on the User Product (for example, the work has
++been installed in ROM).
++
++ The requirement to provide Installation Information does not include a
++requirement to continue to provide support service, warranty, or updates
++for a work that has been modified or installed by the recipient, or for
++the User Product in which it has been modified or installed. Access to a
++network may be denied when the modification itself materially and
++adversely affects the operation of the network or violates the rules and
++protocols for communication across the network.
++
++ Corresponding Source conveyed, and Installation Information provided,
++in accord with this section must be in a format that is publicly
++documented (and with an implementation available to the public in
++source code form), and must require no special password or key for
++unpacking, reading or copying.
++
++ 7. Additional Terms.
++
++ &quot;Additional permissions&quot; are terms that supplement the terms of this
++License by making exceptions from one or more of its conditions.
++Additional permissions that are applicable to the entire Program shall
++be treated as though they were included in this License, to the extent
++that they are valid under applicable law. If additional permissions
++apply only to part of the Program, that part may be used separately
++under those permissions, but the entire Program remains governed by
++this License without regard to the additional permissions.
++
++ When you convey a copy of a covered work, you may at your option
++remove any additional permissions from that copy, or from any part of
++it. (Additional permissions may be written to require their own
++removal in certain cases when you modify the work.) You may place
++additional permissions on material, added by you to a covered work,
++for which you have or can give appropriate copyright permission.
++
++ Notwithstanding any other provision of this License, for material you
++add to a covered work, you may (if authorized by the copyright holders of
++that material) supplement the terms of this License with terms:
++
++ a) Disclaiming warranty or limiting liability differently from the
++ terms of sections 15 and 16 of this License; or
++
++ b) Requiring preservation of specified reasonable legal notices or
++ author attributions in that material or in the Appropriate Legal
++ Notices displayed by works containing it; or
++
++ c) Prohibiting misrepresentation of the origin of that material, or
++ requiring that modified versions of such material be marked in
++ reasonable ways as different from the original version; or
++
++ d) Limiting the use for publicity purposes of names of licensors or
++ authors of the material; or
++
++ e) Declining to grant rights under trademark law for use of some
++ trade names, trademarks, or service marks; or
++
++ f) Requiring indemnification of licensors and authors of that
++ material by anyone who conveys the material (or modified versions of
++ it) with contractual assumptions of liability to the recipient, for
++ any liability that these contractual assumptions directly impose on
++ those licensors and authors.
++
++ All other non-permissive additional terms are considered &quot;further
++restrictions&quot; within the meaning of section 10. If the Program as you
++received it, or any part of it, contains a notice stating that it is
++governed by this License along with a term that is a further
++restriction, you may remove that term. If a license document contains
++a further restriction but permits relicensing or conveying under this
++License, you may add to a covered work material governed by the terms
++of that license document, provided that the further restriction does
++not survive such relicensing or conveying.
++
++ If you add terms to a covered work in accord with this section, you
++must place, in the relevant source files, a statement of the
++additional terms that apply to those files, or a notice indicating
++where to find the applicable terms.
++
++ Additional terms, permissive or non-permissive, may be stated in the
++form of a separately written license, or stated as exceptions;
++the above requirements apply either way.
++
++ 8. Termination.
++
++ You may not propagate or modify a covered work except as expressly
++provided under this License. Any attempt otherwise to propagate or
++modify it is void, and will automatically terminate your rights under
++this License (including any patent licenses granted under the third
++paragraph of section 11).
++
++ However, if you cease all violation of this License, then your
++license from a particular copyright holder is reinstated (a)
++provisionally, unless and until the copyright holder explicitly and
++finally terminates your license, and (b) permanently, if the copyright
++holder fails to notify you of the violation by some reasonable means
++prior to 60 days after the cessation.
++
++ Moreover, your license from a particular copyright holder is
++reinstated permanently if the copyright holder notifies you of the
++violation by some reasonable means, this is the first time you have
++received notice of violation of this License (for any work) from that
++copyright holder, and you cure the violation prior to 30 days after
++your receipt of the notice.
++
++ Termination of your rights under this section does not terminate the
++licenses of parties who have received copies or rights from you under
++this License. If your rights have been terminated and not permanently
++reinstated, you do not qualify to receive new licenses for the same
++material under section 10.
++
++ 9. Acceptance Not Required for Having Copies.
++
++ You are not required to accept this License in order to receive or
++run a copy of the Program. Ancillary propagation of a covered work
++occurring solely as a consequence of using peer-to-peer transmission
++to receive a copy likewise does not require acceptance. However,
++nothing other than this License grants you permission to propagate or
++modify any covered work. These actions infringe copyright if you do
++not accept this License. Therefore, by modifying or propagating a
++covered work, you indicate your acceptance of this License to do so.
++
++ 10. Automatic Licensing of Downstream Recipients.
++
++ Each time you convey a covered work, the recipient automatically
++receives a license from the original licensors, to run, modify and
++propagate that work, subject to this License. You are not responsible
++for enforcing compliance by third parties with this License.
++
++ An &quot;entity transaction&quot; is a transaction transferring control of an
++organization, or substantially all assets of one, or subdividing an
++organization, or merging organizations. If propagation of a covered
++work results from an entity transaction, each party to that
++transaction who receives a copy of the work also receives whatever
++licenses to the work the party's predecessor in interest had or could
++give under the previous paragraph, plus a right to possession of the
++Corresponding Source of the work from the predecessor in interest, if
++the predecessor has it or can get it with reasonable efforts.
++
++ You may not impose any further restrictions on the exercise of the
++rights granted or affirmed under this License. For example, you may
++not impose a license fee, royalty, or other charge for exercise of
++rights granted under this License, and you may not initiate litigation
++(including a cross-claim or counterclaim in a lawsuit) alleging that
++any patent claim is infringed by making, using, selling, offering for
++sale, or importing the Program or any portion of it.
++
++ 11. Patents.
++
++ A &quot;contributor&quot; is a copyright holder who authorizes use under this
++License of the Program or a work on which the Program is based. The
++work thus licensed is called the contributor's &quot;contributor version&quot;.
++
++ A contributor's &quot;essential patent claims&quot; are all patent claims
++owned or controlled by the contributor, whether already acquired or
++hereafter acquired, that would be infringed by some manner, permitted
++by this License, of making, using, or selling its contributor version,
++but do not include claims that would be infringed only as a
++consequence of further modification of the contributor version. For
++purposes of this definition, &quot;control&quot; includes the right to grant
++patent sublicenses in a manner consistent with the requirements of
++this License.
++
++ Each contributor grants you a non-exclusive, worldwide, royalty-free
++patent license under the contributor's essential patent claims, to
++make, use, sell, offer for sale, import and otherwise run, modify and
++propagate the contents of its contributor version.
++
++ In the following three paragraphs, a &quot;patent license&quot; is any express
++agreement or commitment, however denominated, not to enforce a patent
++(such as an express permission to practice a patent or covenant not to
++sue for patent infringement). To &quot;grant&quot; such a patent license to a
++party means to make such an agreement or commitment not to enforce a
++patent against the party.
++
++ If you convey a covered work, knowingly relying on a patent license,
++and the Corresponding Source of the work is not available for anyone
++to copy, free of charge and under the terms of this License, through a
++publicly available network server or other readily accessible means,
++then you must either (1) cause the Corresponding Source to be so
++available, or (2) arrange to deprive yourself of the benefit of the
++patent license for this particular work, or (3) arrange, in a manner
++consistent with the requirements of this License, to extend the patent
++license to downstream recipients. &quot;Knowingly relying&quot; means you have
++actual knowledge that, but for the patent license, your conveying the
++covered work in a country, or your recipient's use of the covered work
++in a country, would infringe one or more identifiable patents in that
++country that you have reason to believe are valid.
++
++ If, pursuant to or in connection with a single transaction or
++arrangement, you convey, or propagate by procuring conveyance of, a
++covered work, and grant a patent license to some of the parties
++receiving the covered work authorizing them to use, propagate, modify
++or convey a specific copy of the covered work, then the patent license
++you grant is automatically extended to all recipients of the covered
++work and works based on it.
++
++ A patent license is &quot;discriminatory&quot; if it does not include within
++the scope of its coverage, prohibits the exercise of, or is
++conditioned on the non-exercise of one or more of the rights that are
++specifically granted under this License. You may not convey a covered
++work if you are a party to an arrangement with a third party that is
++in the business of distributing software, under which you make payment
++to the third party based on the extent of your activity of conveying
++the work, and under which the third party grants, to any of the
++parties who would receive the covered work from you, a discriminatory
++patent license (a) in connection with copies of the covered work
++conveyed by you (or copies made from those copies), or (b) primarily
++for and in connection with specific products or compilations that
++contain the covered work, unless you entered into that arrangement,
++or that patent license was granted, prior to 28 March 2007.
++
++ Nothing in this License shall be construed as excluding or limiting
++any implied license or other defenses to infringement that may
++otherwise be available to you under applicable patent law.
++
++ 12. No Surrender of Others' Freedom.
++
++ If conditions are imposed on you (whether by court order, agreement or
++otherwise) that contradict the conditions of this License, they do not
++excuse you from the conditions of this License. If you cannot convey a
++covered work so as to satisfy simultaneously your obligations under this
++License and any other pertinent obligations, then as a consequence you may
++not convey it at all. For example, if you agree to terms that obligate you
++to collect a royalty for further conveying from those to whom you convey
++the Program, the only way you could satisfy both those terms and this
++License would be to refrain entirely from conveying the Program.
++
++ 13. Use with the GNU Affero General Public License.
++
++ Notwithstanding any other provision of this License, you have
++permission to link or combine any covered work with a work licensed
++under version 3 of the GNU Affero General Public License into a single
++combined work, and to convey the resulting work. The terms of this
++License will continue to apply to the part which is the covered work,
++but the special requirements of the GNU Affero General Public License,
++section 13, concerning interaction through a network will apply to the
++combination as such.
++
++ 14. Revised Versions of this License.
++
++ The Free Software Foundation may publish revised and/or new versions of
++the GNU General Public License from time to time. Such new versions will
++be similar in spirit to the present version, but may differ in detail to
++address new problems or concerns.
++
++ Each version is given a distinguishing version number. If the
++Program specifies that a certain numbered version of the GNU General
++Public License &quot;or any later version&quot; applies to it, you have the
++option of following the terms and conditions either of that numbered
++version or of any later version published by the Free Software
++Foundation. If the Program does not specify a version number of the
++GNU General Public License, you may choose any version ever published
++by the Free Software Foundation.
++
++ If the Program specifies that a proxy can decide which future
++versions of the GNU General Public License can be used, that proxy's
++public statement of acceptance of a version permanently authorizes you
++to choose that version for the Program.
++
++ Later license versions may give you additional or different
++permissions. However, no additional obligations are imposed on any
++author or copyright holder as a result of your choosing to follow a
++later version.
++
++ 15. Disclaimer of Warranty.
++
++ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
++APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
++HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM &quot;AS IS&quot; WITHOUT WARRANTY
++OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
++THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
++PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
++IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
++ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
++
++ 16. Limitation of Liability.
++
++ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
++WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
++THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
++GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
++USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
++DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
++PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
++EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
++SUCH DAMAGES.
++
++ 17. Interpretation of Sections 15 and 16.
++
++ If the disclaimer of warranty and limitation of liability provided
++above cannot be given local legal effect according to their terms,
++reviewing courts shall apply local law that most closely approximates
++an absolute waiver of all civil liability in connection with the
++Program, unless a warranty or assumption of liability accompanies a
++copy of the Program in return for a fee.
++
++ END OF TERMS AND CONDITIONS
++
++ How to Apply These Terms to Your New Programs
++
++ If you develop a new program, and you want it to be of the greatest
++possible use to the public, the best way to achieve this is to make it
++free software which everyone can redistribute and change under these terms.
++
++ To do so, attach the following notices to the program. It is safest
++to attach them to the start of each source file to most effectively
++state the exclusion of warranty; and each file should have at least
++the &quot;copyright&quot; line and a pointer to where the full notice is found.
++
++ &lt;one line to give the program's name and a brief idea of what it does.&gt;
++ Copyright (C) &lt;year&gt; &lt;name of author&gt;
++
++ This program is free software: you can redistribute it and/or modify
++ it under the terms of the GNU General Public License as published by
++ the Free Software Foundation, either version 3 of the License, or
++ (at your option) any later version.
++
++ This program is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ GNU General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.
++
++Also add information on how to contact you by electronic and paper mail.
++
++ If the program does terminal interaction, make it output a short
++notice like this when it starts in an interactive mode:
++
++ &lt;program&gt; Copyright (C) &lt;year&gt; &lt;name of author&gt;
++ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
++ This is free software, and you are welcome to redistribute it
++ under certain conditions; type `show c' for details.
++
++The hypothetical commands `show w' and `show c' should show the appropriate
++parts of the General Public License. Of course, your program's commands
++might be different; for a GUI interface, you would use an &quot;about box&quot;.
++
++ You should also get your employer (if you work as a programmer) or school,
++if any, to sign a &quot;copyright disclaimer&quot; for the program, if necessary.
++For more information on this, and how to apply and follow the GNU GPL, see
++&lt;http://www.gnu.org/licenses/&gt;.
++
++ The GNU General Public License does not permit incorporating your program
++into proprietary programs. If your program is a subroutine library, you
++may consider it more useful to permit linking proprietary applications with
++the library. If this is what you want to do, use the GNU Lesser General
++Public License instead of this License. But first, please read
++&lt;http://www.gnu.org/philosophy/why-not-lgpl.html&gt;.
++
+
+<a id="themeia_orakde4NEWS">Added: theme/ia_ora-kde4/NEWS</a>
+===================================================================
+--- theme/ia_ora-kde4/NEWS (rev 0)
++++ theme/ia_ora-kde4/NEWS 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,109 @@
++01-06-2010 - Rodrigo
++- Changed alternate color to gray0 (according IaOra specs)
++
++27-05-2010 - Rodrigo
++- Removed border from a ScrollBar on a maximized window (#52903)
++- Fixed ProgressBar issue on Quassel (thanks ahmad78!)
++
++18-05-2010 - Rodrigo
++- Added division marks on the progress bar (#59284)
++- Removed left/right borders when in maximized mode
++
++15-04-2010 - Rodrigo
++- Wrong background colors on lists (#56883 and #57079)
++- Fix combobox width on kontact (#55699)
++- Drawing elided text on dockwidget titlebars
++
++** 12-04-2010 0.3.0 **
++09-04-2010 - Rodrigo
++- Fix TitleBar font size problem (#58582)
++- Added borders to comboboxes (#57664)
++- Properly aligned TitleBar buttons (#57784)
++- Rewritten the BorderSize configuration (this closes #47685 too)
++
++07-04-2010 - Rodrigo
++- Added window grouping function to IaOra (tabbing support)
++
++02-03-2010 - Rodrigo
++- Added a patch that fix OpenOffice problem (thanks to Rafael Cabral)
++
++12-02-2010 - Rodrigo
++- Rewritten IaOra Kwin configuration
++- Added option to change TitleBar text alignment (bug #57056)
++- Added option to enable window grouping (not enabled until finished)
++
++** 12 02 2010 0.2.5.6
++
++09-02-2010 - Rodrigo
++- Some components now are left colored when the window lost the focus
++
++** 05 02 2010 0.2.5.5
++
++04-02-2010 - Rodrigo
++- Now, the arrows look like real arrows
++- Added partial contributor patch (according bug #57263)
++- Disabled buttons now have the same color scheme as the enabled ones
++- Fixed separator size on combobox
++
++04-02-2010 - Boiko
++- Fix crash in drawComplexControl ( Bug #57400 )
++
++02-02-2010 - Rodrigo
++- Allow to resize the window from the top
++- TitleBar text now is painted in a bigger font with bold effect
++- Let the scrollbars colored when no focus
++
++13-01-2010 - Rodrigo
++- Fix the color painting on PanelItemViewRow (Bug # 56883)
++
++** 01 09 2009 0.2.5.4
++08-01-2010 - Rodrigo
++- Fix the highligh problem with ItemViewItems (Bug # 56883)
++- Now, the application name on the titlebar is centered
++
++** 01 05 2009 0.2.5.3
++01-05-2009 Nlecureuil
++- Fix crash in Quassel (Bug # 55641) ( the previous fix was only in iaora-kde )
++
++** 01-01-2010 2009 0.2.5.2**
++
++18-12-2009 - Nlecureuil
++- Fix minimum size for the scrollbar slider
++
++** ??? ?? 2009 0.2.5.1**
++
++07-12-2009 - Nlecureuil
++- Install iaoracolors in /etc
++
++04-12-2009 - Rodrigo
++- Change the way titlebar colors are handled
++TODO: choose where to install the config file
++
++23-11-2009 - Nlecureuil
++- Fix crash in Quassel (Bug # 55641)
++
++19-11-2009 - Rodrigo
++- Fixed title bar text alignment
++- Removed unused code
++
++17-11-2009 - Nlecureuil
++- Fix SymbolPlus and SymbolMinus in trees
++
++16-11-2009 - Rodrigo
++- Changed from gradient to flat colors on an ItemViewItem
++- Added code to handle an ItemViewRow
++
++27-10-2009 Rodrigo
++- Fixed IaOra color schemes
++- Added IaOraSteel color scheme
++- Added IaOraNight color scheme
++- Fixed kwin border
++- Fixed inactive TitleBar drawing
++- Fixed TitleBar buttons
++
++26-10-2009 Rodrigo
++- Fixed kwin border
++- Fixed submenu arrow drawing when mouse over
++- Fixed EditLine drawing on Amarok
++- Fixed text color on TabBars
++
+
+<a id="themeia_orakde4VERSION">Added: theme/ia_ora-kde4/VERSION</a>
+===================================================================
+--- theme/ia_ora-kde4/VERSION (rev 0)
++++ theme/ia_ora-kde4/VERSION 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1 @@
++0.2.0
+
+<a id="themeia_orakde4colorschemesCMakeListstxt">Added: theme/ia_ora-kde4/color-schemes/CMakeLists.txt</a>
+===================================================================
+--- theme/ia_ora-kde4/color-schemes/CMakeLists.txt (rev 0)
++++ theme/ia_ora-kde4/color-schemes/CMakeLists.txt 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,3 @@
++file (GLOB iaora_COLORSCHEMES *.colors)
++install (FILES ${iaora_COLORSCHEMES} DESTINATION ${DATA_INSTALL_DIR}/color-schemes)
++
+
+
+Property changes on: theme/ia_ora-kde4/color-schemes/CMakeLists.txt
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4colorschemesIaOraArcticcolors">Added: theme/ia_ora-kde4/color-schemes/IaOraArctic.colors</a>
+===================================================================
+--- theme/ia_ora-kde4/color-schemes/IaOraArctic.colors (rev 0)
++++ theme/ia_ora-kde4/color-schemes/IaOraArctic.colors 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,102 @@
++[ColorEffects:Disabled]
++Color=56,56,56
++ColorAmount=0
++ColorEffect=0
++ContrastAmount=0.65
++ContrastEffect=1
++IntensityAmount=0.1
++IntensityEffect=2
++
++[ColorEffects:Inactive]
++ChangeSelectionColor=true
++Color=112,111,110
++ColorAmount=0.025
++ColorEffect=2
++ContrastAmount=0.1
++ContrastEffect=2
++Enable=true
++IntensityAmount=0
++IntensityEffect=0
++
++[Colors:Button]
++BackgroundAlternate=223,231,239
++BackgroundNormal=223,231,239
++DecorationFocus=43,116,199
++DecorationHover=119,183,255
++ForegroundActive=0,0,0
++ForegroundInactive=208,215,223
++ForegroundLink=0,0,192
++ForegroundNegative=191,3,3
++ForegroundNeutral=176,128,0
++ForegroundNormal=0,0,0
++ForegroundPositive=0,110,40
++ForegroundVisited=128,0,128
++
++[Colors:Selection]
++BackgroundAlternate=142,199,255
++BackgroundNormal=142,199,255
++DecorationFocus=43,116,199
++DecorationHover=119,183,255
++ForegroundActive=0,0,0
++ForegroundInactive=0,0,0
++ForegroundLink=0,0,192
++ForegroundNegative=156,14,14
++ForegroundNeutral=255,221,0
++ForegroundNormal=0,0,0
++ForegroundPositive=128,255,128
++ForegroundVisited=128,0,128
++
++[Colors:Tooltip]
++BackgroundAlternate=255,255,148
++BackgroundNormal=255,255,148
++DecorationFocus=43,116,199
++DecorationHover=119,183,255
++ForegroundActive=0,0,0
++ForegroundInactive=0,0,0
++ForegroundLink=0,0,192
++ForegroundNegative=191,3,3
++ForegroundNeutral=176,128,0
++ForegroundNormal=0,0,0
++ForegroundPositive=0,110,40
++ForegroundVisited=128,0,128
++
++[Colors:View]
++BackgroundAlternate=239,242,247
++BackgroundNormal=255,255,255
++DecorationFocus=43,116,199
++DecorationHover=119,183,255
++ForegroundActive=0,0,0
++ForegroundInactive=136,135,134
++ForegroundLink=0,0,192
++ForegroundNegative=191,3,3
++ForegroundNeutral=176,128,0
++ForegroundNormal=0,0,0
++ForegroundPositive=0,110,40
++ForegroundVisited=128,0,128
++
++[Colors:Window]
++BackgroundAlternate=239,243,247
++BackgroundNormal=239,243,247
++DecorationFocus=43,116,199
++DecorationHover=119,183,255
++ForegroundActive=0,0,0
++ForegroundInactive=136,135,134
++ForegroundLink=0,0,192
++ForegroundNegative=191,3,3
++ForegroundNeutral=176,128,0
++ForegroundNormal=0,0,0
++ForegroundPositive=0,110,40
++ForegroundVisited=128,0,128
++
++[General]
++Name=Ia Ora Arctic
++shadeSortColumn=true
++
++[KDE]
++contrast=7
++
++[WM]
++activeBackground=142,199,255
++activeForeground=255,255,255
++inactiveBackground=207,217,228
++inactiveForeground=255,255,255
+
+<a id="themeia_orakde4colorschemesIaOraBluecolors">Added: theme/ia_ora-kde4/color-schemes/IaOraBlue.colors</a>
+===================================================================
+--- theme/ia_ora-kde4/color-schemes/IaOraBlue.colors (rev 0)
++++ theme/ia_ora-kde4/color-schemes/IaOraBlue.colors 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,102 @@
++[ColorEffects:Disabled]
++Color=56,56,56
++ColorAmount=0
++ColorEffect=0
++ContrastAmount=0.65
++ContrastEffect=1
++IntensityAmount=0.1
++IntensityEffect=2
++
++[ColorEffects:Inactive]
++ChangeSelectionColor=true
++Color=112,111,110
++ColorAmount=0.025
++ColorEffect=2
++ContrastAmount=0.1
++ContrastEffect=2
++Enable=true
++IntensityAmount=0
++IntensityEffect=0
++
++[Colors:Button]
++BackgroundAlternate=223,231,239
++BackgroundNormal=223,231,239
++DecorationFocus=43,116,199
++DecorationHover=119,183,255
++ForegroundActive=0,0,0
++ForegroundInactive=208,215,223
++ForegroundLink=0,0,192
++ForegroundNegative=191,3,3
++ForegroundNeutral=176,128,0
++ForegroundNormal=0,0,0
++ForegroundPositive=0,110,40
++ForegroundVisited=128,0,128
++
++[Colors:Selection]
++BackgroundAlternate=73,101,174
++BackgroundNormal=73,101,174
++DecorationFocus=43,116,199
++DecorationHover=119,183,255
++ForegroundActive=255,255,255
++ForegroundInactive=255,255,255
++ForegroundLink=0,0,192
++ForegroundNegative=156,14,14
++ForegroundNeutral=255,221,0
++ForegroundNormal=255,255,255
++ForegroundPositive=128,255,128
++ForegroundVisited=128,0,128
++
++[Colors:Tooltip]
++BackgroundAlternate=255,255,148
++BackgroundNormal=255,255,148
++DecorationFocus=43,116,199
++DecorationHover=119,183,255
++ForegroundActive=0,0,0
++ForegroundInactive=0,0,0
++ForegroundLink=0,0,192
++ForegroundNegative=191,3,3
++ForegroundNeutral=176,128,0
++ForegroundNormal=0,0,0
++ForegroundPositive=0,110,40
++ForegroundVisited=128,0,128
++
++[Colors:View]
++BackgroundAlternate=239,242,247
++BackgroundNormal=255,255,255
++DecorationFocus=43,116,199
++DecorationHover=119,183,255
++ForegroundActive=0,0,0
++ForegroundInactive=136,135,134
++ForegroundLink=0,0,192
++ForegroundNegative=191,3,3
++ForegroundNeutral=176,128,0
++ForegroundNormal=0,0,0
++ForegroundPositive=0,110,40
++ForegroundVisited=128,0,128
++
++[Colors:Window]
++BackgroundAlternate=239,243,247
++BackgroundNormal=239,243,247
++DecorationFocus=43,116,199
++DecorationHover=119,183,255
++ForegroundActive=0,0,0
++ForegroundInactive=136,135,134
++ForegroundLink=0,0,192
++ForegroundNegative=191,3,3
++ForegroundNeutral=176,128,0
++ForegroundNormal=0,0,0
++ForegroundPositive=0,110,40
++ForegroundVisited=128,0,128
++
++[General]
++Name=Ia Ora Blue
++shadeSortColumn=true
++
++[KDE]
++contrast=7
++
++[WM]
++activeBackground=73,102,174
++activeForeground=255,255,255
++inactiveBackground=207,217,228
++inactiveForeground=255,255,255
+
+<a id="themeia_orakde4colorschemesIaOraGraycolors">Added: theme/ia_ora-kde4/color-schemes/IaOraGray.colors</a>
+===================================================================
+--- theme/ia_ora-kde4/color-schemes/IaOraGray.colors (rev 0)
++++ theme/ia_ora-kde4/color-schemes/IaOraGray.colors 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,102 @@
++[ColorEffects:Disabled]
++Color=56,56,56
++ColorAmount=0
++ColorEffect=0
++ContrastAmount=0.65
++ContrastEffect=1
++IntensityAmount=0.1
++IntensityEffect=2
++
++[ColorEffects:Inactive]
++ChangeSelectionColor=true
++Color=112,111,110
++ColorAmount=0.025
++ColorEffect=2
++ContrastAmount=0.1
++ContrastEffect=2
++Enable=true
++IntensityAmount=0
++IntensityEffect=0
++
++[Colors:Button]
++BackgroundAlternate=223,231,239
++BackgroundNormal=223,231,239
++DecorationFocus=43,116,199
++DecorationHover=119,183,255
++ForegroundActive=0,0,0
++ForegroundInactive=208,215,223
++ForegroundLink=0,0,192
++ForegroundNegative=191,3,3
++ForegroundNeutral=176,128,0
++ForegroundNormal=0,0,0
++ForegroundPositive=0,110,40
++ForegroundVisited=128,0,128
++
++[Colors:Selection]
++BackgroundAlternate=62,138,204
++BackgroundNormal=207,215,223
++DecorationFocus=43,116,199
++DecorationHover=119,183,255
++ForegroundActive=0,0,0
++ForegroundInactive=0,0,0
++ForegroundLink=0,0,192
++ForegroundNegative=156,14,14
++ForegroundNeutral=255,221,0
++ForegroundNormal=0,0,0
++ForegroundPositive=128,255,128
++ForegroundVisited=128,0,128
++
++[Colors:Tooltip]
++BackgroundAlternate=255,255,148
++BackgroundNormal=255,255,148
++DecorationFocus=43,116,199
++DecorationHover=119,183,255
++ForegroundActive=0,0,0
++ForegroundInactive=0,0,0
++ForegroundLink=0,0,192
++ForegroundNegative=191,3,3
++ForegroundNeutral=176,128,0
++ForegroundNormal=0,0,0
++ForegroundPositive=0,110,40
++ForegroundVisited=128,0,128
++
++[Colors:View]
++BackgroundAlternate=239,242,247
++BackgroundNormal=255,255,255
++DecorationFocus=43,116,199
++DecorationHover=119,183,255
++ForegroundActive=0,0,0
++ForegroundInactive=0,0,0
++ForegroundLink=0,0,192
++ForegroundNegative=191,3,3
++ForegroundNeutral=176,128,0
++ForegroundNormal=0,0,0
++ForegroundPositive=0,110,40
++ForegroundVisited=128,0,128
++
++[Colors:Window]
++BackgroundAlternate=239,243,247
++BackgroundNormal=239,243,247
++DecorationFocus=43,116,199
++DecorationHover=119,183,255
++ForegroundActive=0,0,0
++ForegroundInactive=0,0,0
++ForegroundLink=0,0,192
++ForegroundNegative=191,3,3
++ForegroundNeutral=176,128,0
++ForegroundNormal=0,0,0
++ForegroundPositive=0,110,40
++ForegroundVisited=128,0,128
++
++[General]
++Name=Ia Ora Gray
++shadeSortColumn=true
++
++[KDE]
++contrast=7
++
++[WM]
++activeBackground=207,215,223
++activeForeground=255,255,255
++inactiveBackground=207,217,228
++inactiveForeground=255,255,255
+
+<a id="themeia_orakde4colorschemesIaOraNightcolors">Added: theme/ia_ora-kde4/color-schemes/IaOraNight.colors</a>
+===================================================================
+--- theme/ia_ora-kde4/color-schemes/IaOraNight.colors (rev 0)
++++ theme/ia_ora-kde4/color-schemes/IaOraNight.colors 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,102 @@
++[ColorEffects:Disabled]
++Color=56,56,56
++ColorAmount=0
++ColorEffect=0
++ContrastAmount=0.65
++ContrastEffect=1
++IntensityAmount=0.1
++IntensityEffect=2
++
++[ColorEffects:Inactive]
++ChangeSelectionColor=true
++Color=112,111,110
++ColorAmount=0.025
++ColorEffect=2
++ContrastAmount=0.1
++ContrastEffect=2
++Enable=true
++IntensityAmount=0
++IntensityEffect=0
++
++[Colors:Button]
++BackgroundAlternate=223,231,239
++BackgroundNormal=223,231,239
++DecorationFocus=128,142,198
++DecorationHover=173,186,234
++ForegroundActive=1,1,1
++ForegroundInactive=208,215,223
++ForegroundLink=0,0,192
++ForegroundNegative=191,3,3
++ForegroundNeutral=176,128,0
++ForegroundNormal=1,1,1
++ForegroundPositive=0,110,40
++ForegroundVisited=128,0,128
++
++[Colors:Selection]
++BackgroundAlternate=9,52,83
++BackgroundNormal=93,101,142
++DecorationFocus=128,142,198
++DecorationHover=173,186,234
++ForegroundActive=255,255,255
++ForegroundInactive=255,255,255
++ForegroundLink=0,0,192
++ForegroundNegative=156,14,14
++ForegroundNeutral=255,221,0
++ForegroundNormal=255,255,255
++ForegroundPositive=128,255,128
++ForegroundVisited=128,0,128
++
++[Colors:Tooltip]
++BackgroundAlternate=255,255,148
++BackgroundNormal=255,255,148
++DecorationFocus=128,142,198
++DecorationHover=173,186,234
++ForegroundActive=1,1,1
++ForegroundInactive=1,1,1
++ForegroundLink=0,0,192
++ForegroundNegative=191,3,3
++ForegroundNeutral=176,128,0
++ForegroundNormal=1,1,1
++ForegroundPositive=0,110,40
++ForegroundVisited=128,0,128
++
++[Colors:View]
++BackgroundAlternate=239,242,247
++BackgroundNormal=255,255,255
++DecorationFocus=128,142,198
++DecorationHover=173,186,234
++ForegroundActive=1,1,1
++ForegroundInactive=136,135,134
++ForegroundLink=0,0,192
++ForegroundNegative=191,3,3
++ForegroundNeutral=176,128,0
++ForegroundNormal=1,1,1
++ForegroundPositive=0,110,40
++ForegroundVisited=128,0,128
++
++[Colors:Window]
++BackgroundAlternate=239,243,247
++BackgroundNormal=239,243,247
++DecorationFocus=128,142,198
++DecorationHover=173,186,234
++ForegroundActive=1,1,1
++ForegroundInactive=136,135,134
++ForegroundLink=0,0,192
++ForegroundNegative=191,3,3
++ForegroundNeutral=176,128,0
++ForegroundNormal=1,1,1
++ForegroundPositive=0,110,40
++ForegroundVisited=128,0,128
++
++[General]
++Name=Ia Ora Night
++shadeSortColumn=true
++
++[KDE]
++contrast=7
++
++[WM]
++activeBackground=61,68,103
++activeForeground=255,255,255
++inactiveBackground=207,217,228
++inactiveForeground=255,255,255
+
+<a id="themeia_orakde4colorschemesIaOraOrangecolors">Added: theme/ia_ora-kde4/color-schemes/IaOraOrange.colors</a>
+===================================================================
+--- theme/ia_ora-kde4/color-schemes/IaOraOrange.colors (rev 0)
++++ theme/ia_ora-kde4/color-schemes/IaOraOrange.colors 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,102 @@
++[ColorEffects:Disabled]
++Color=56,56,56
++ColorAmount=0
++ColorEffect=0
++ContrastAmount=0.65
++ContrastEffect=1
++IntensityAmount=0.1
++IntensityEffect=2
++
++[ColorEffects:Inactive]
++ChangeSelectionColor=true
++Color=112,111,110
++ColorAmount=0.025
++ColorEffect=2
++ContrastAmount=0.1
++ContrastEffect=2
++Enable=true
++IntensityAmount=0
++IntensityEffect=0
++
++[Colors:Button]
++BackgroundAlternate=223,231,239
++BackgroundNormal=223,231,239
++DecorationFocus=43,116,199
++DecorationHover=119,183,255
++ForegroundActive=0,0,0
++ForegroundInactive=208,215,223
++ForegroundLink=0,0,192
++ForegroundNegative=191,3,3
++ForegroundNeutral=176,128,0
++ForegroundNormal=0,0,0
++ForegroundPositive=0,110,40
++ForegroundVisited=128,0,128
++
++[Colors:Selection]
++BackgroundAlternate=62,138,204
++BackgroundNormal=247,182,16
++DecorationFocus=43,116,199
++DecorationHover=119,183,255
++ForegroundActive=0,0,0
++ForegroundInactive=0,0,0
++ForegroundLink=0,0,192
++ForegroundNegative=156,14,14
++ForegroundNeutral=255,221,0
++ForegroundNormal=0,0,0
++ForegroundPositive=128,255,128
++ForegroundVisited=128,0,128
++
++[Colors:Tooltip]
++BackgroundAlternate=255,255,148
++BackgroundNormal=255,255,148
++DecorationFocus=43,116,199
++DecorationHover=119,183,255
++ForegroundActive=0,0,0
++ForegroundInactive=0,0,0
++ForegroundLink=0,0,192
++ForegroundNegative=191,3,3
++ForegroundNeutral=176,128,0
++ForegroundNormal=0,0,0
++ForegroundPositive=0,110,40
++ForegroundVisited=128,0,128
++
++[Colors:View]
++BackgroundAlternate=239,242,247
++BackgroundNormal=255,255,255
++DecorationFocus=43,116,199
++DecorationHover=119,183,255
++ForegroundActive=0,0,0
++ForegroundInactive=0,0,0
++ForegroundLink=0,0,192
++ForegroundNegative=191,3,3
++ForegroundNeutral=176,128,0
++ForegroundNormal=0,0,0
++ForegroundPositive=0,110,40
++ForegroundVisited=128,0,128
++
++[Colors:Window]
++BackgroundAlternate=239,243,247
++BackgroundNormal=239,243,247
++DecorationFocus=43,116,199
++DecorationHover=119,183,255
++ForegroundActive=0,0,0
++ForegroundInactive=136,135,134
++ForegroundLink=0,0,192
++ForegroundNegative=191,3,3
++ForegroundNeutral=176,128,0
++ForegroundNormal=0,0,0
++ForegroundPositive=0,110,40
++ForegroundVisited=128,0,128
++
++[General]
++Name=Ia Ora Orange
++shadeSortColumn=true
++
++[KDE]
++contrast=7
++
++[WM]
++activeBackground=247,182,16
++activeForeground=255,255,255
++inactiveBackground=207,217,228
++inactiveForeground=255,255,255
+
+<a id="themeia_orakde4colorschemesIaOraSmoothcolors">Added: theme/ia_ora-kde4/color-schemes/IaOraSmooth.colors</a>
+===================================================================
+--- theme/ia_ora-kde4/color-schemes/IaOraSmooth.colors (rev 0)
++++ theme/ia_ora-kde4/color-schemes/IaOraSmooth.colors 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,102 @@
++[ColorEffects:Disabled]
++Color=56,56,56
++ColorAmount=0
++ColorEffect=0
++ContrastAmount=0.65
++ContrastEffect=1
++IntensityAmount=0.1
++IntensityEffect=2
++
++[ColorEffects:Inactive]
++ChangeSelectionColor=true
++Color=112,111,110
++ColorAmount=0.025
++ColorEffect=2
++ContrastAmount=0.1
++ContrastEffect=2
++Enable=true
++IntensityAmount=0
++IntensityEffect=0
++
++[Colors:Button]
++BackgroundAlternate=223,231,239
++BackgroundNormal=223,231,239
++DecorationFocus=43,116,199
++DecorationHover=119,183,255
++ForegroundActive=0,0,0
++ForegroundInactive=0,0,0
++ForegroundLink=0,0,192
++ForegroundNegative=191,3,3
++ForegroundNeutral=176,128,0
++ForegroundNormal=0,0,0
++ForegroundPositive=0,110,40
++ForegroundVisited=128,0,128
++
++[Colors:Selection]
++BackgroundAlternate=123,170,231
++BackgroundNormal=123,170,231
++DecorationFocus=43,116,199
++DecorationHover=119,183,255
++ForegroundActive=255,255,255
++ForegroundInactive=255,255,255
++ForegroundLink=0,0,192
++ForegroundNegative=156,14,14
++ForegroundNeutral=255,221,0
++ForegroundNormal=255,255,255
++ForegroundPositive=128,255,128
++ForegroundVisited=128,0,128
++
++[Colors:Tooltip]
++BackgroundAlternate=255,255,148
++BackgroundNormal=255,255,148
++DecorationFocus=43,116,199
++DecorationHover=119,183,255
++ForegroundActive=0,0,0
++ForegroundInactive=0,0,0
++ForegroundLink=0,0,192
++ForegroundNegative=191,3,3
++ForegroundNeutral=176,128,0
++ForegroundNormal=0,0,0
++ForegroundPositive=0,110,40
++ForegroundVisited=128,0,128
++
++[Colors:View]
++BackgroundAlternate=239,242,247
++BackgroundNormal=255,255,255
++DecorationFocus=43,116,199
++DecorationHover=119,183,255
++ForegroundActive=0,0,0
++ForegroundInactive=136,135,134
++ForegroundLink=0,0,192
++ForegroundNegative=191,3,3
++ForegroundNeutral=176,128,0
++ForegroundNormal=0,0,0
++ForegroundPositive=0,110,40
++ForegroundVisited=128,0,128
++
++[Colors:Window]
++BackgroundAlternate=239,243,247
++BackgroundNormal=239,243,247
++DecorationFocus=43,116,199
++DecorationHover=119,183,255
++ForegroundActive=0,0,0
++ForegroundInactive=136,135,134
++ForegroundLink=0,0,192
++ForegroundNegative=191,3,3
++ForegroundNeutral=176,128,0
++ForegroundNormal=0,0,0
++ForegroundPositive=0,110,40
++ForegroundVisited=128,0,128
++
++[General]
++Name=Ia Ora Smooth
++shadeSortColumn=true
++
++[KDE]
++contrast=7
++
++[WM]
++activeBackground=123,170,231
++activeForeground=255,255,255
++inactiveBackground=207,217,228
++inactiveForeground=255,255,255
+
+<a id="themeia_orakde4colorschemesIaOraSteelcolors">Added: theme/ia_ora-kde4/color-schemes/IaOraSteel.colors</a>
+===================================================================
+--- theme/ia_ora-kde4/color-schemes/IaOraSteel.colors (rev 0)
++++ theme/ia_ora-kde4/color-schemes/IaOraSteel.colors 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,102 @@
++[ColorEffects:Disabled]
++Color=56,56,56
++ColorAmount=0
++ColorEffect=0
++ContrastAmount=0.65
++ContrastEffect=1
++IntensityAmount=0.1
++IntensityEffect=2
++
++[ColorEffects:Inactive]
++ChangeSelectionColor=true
++Color=112,111,110
++ColorAmount=0.025
++ColorEffect=2
++ContrastAmount=0.1
++ContrastEffect=2
++Enable=true
++IntensityAmount=0
++IntensityEffect=0
++
++[Colors:Button]
++BackgroundAlternate=223,231,239
++BackgroundNormal=223,231,239
++DecorationFocus=58,192,207
++DecorationHover=162,220,227
++ForegroundActive=35,31,32
++ForegroundInactive=208,215,223
++ForegroundLink=0,0,192
++ForegroundNegative=191,3,3
++ForegroundNeutral=176,128,0
++ForegroundNormal=35,31,32
++ForegroundPositive=0,110,40
++ForegroundVisited=128,0,128
++
++[Colors:Selection]
++BackgroundAlternate=9,52,83
++BackgroundNormal=20,141,205
++DecorationFocus=58,192,207
++DecorationHover=162,220,227
++ForegroundActive=255,255,255
++ForegroundInactive=255,255,255
++ForegroundLink=0,0,192
++ForegroundNegative=156,14,14
++ForegroundNeutral=255,221,0
++ForegroundNormal=255,255,255
++ForegroundPositive=128,255,128
++ForegroundVisited=128,0,128
++
++[Colors:Tooltip]
++BackgroundAlternate=255,255,148
++BackgroundNormal=255,255,148
++DecorationFocus=58,192,207
++DecorationHover=162,220,227
++ForegroundActive=35,31,32
++ForegroundInactive=35,31,32
++ForegroundLink=0,0,192
++ForegroundNegative=191,3,3
++ForegroundNeutral=176,128,0
++ForegroundNormal=35,31,32
++ForegroundPositive=0,110,40
++ForegroundVisited=128,0,128
++
++[Colors:View]
++BackgroundAlternate=239,242,247
++BackgroundNormal=255,255,255
++DecorationFocus=58,192,207
++DecorationHover=162,220,227
++ForegroundActive=35,31,32
++ForegroundInactive=136,135,134
++ForegroundLink=0,0,192
++ForegroundNegative=191,3,3
++ForegroundNeutral=176,128,0
++ForegroundNormal=35,31,32
++ForegroundPositive=0,110,40
++ForegroundVisited=128,0,128
++
++[Colors:Window]
++BackgroundAlternate=239,243,247
++BackgroundNormal=239,243,247
++DecorationFocus=58,192,207
++DecorationHover=162,220,227
++ForegroundActive=35,31,32
++ForegroundInactive=136,135,134
++ForegroundLink=0,0,192
++ForegroundNegative=191,3,3
++ForegroundNeutral=176,128,0
++ForegroundNormal=35,31,32
++ForegroundPositive=0,110,40
++ForegroundVisited=128,0,128
++
++[General]
++Name=Ia Ora Steel
++shadeSortColumn=true
++
++[KDE]
++contrast=7
++
++[WM]
++activeBackground=20,141,205
++activeForeground=255,255,255
++inactiveBackground=207,217,228
++inactiveForeground=255,255,255
+
+<a id="themeia_orakde4configure">Added: theme/ia_ora-kde4/configure</a>
+===================================================================
+--- theme/ia_ora-kde4/configure (rev 0)
++++ theme/ia_ora-kde4/configure 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,3 @@
++#! /bin/sh
++
++cmake -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix` -DCMAKE_BUILD_TYPE=Release .
+
+<a id="themeia_orakde4installsh">Added: theme/ia_ora-kde4/install.sh</a>
+===================================================================
+--- theme/ia_ora-kde4/install.sh (rev 0)
++++ theme/ia_ora-kde4/install.sh 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,3 @@
++#! /bin/sh
++
++cmake -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix` -DCMAKE_BUILD_TYPE=Release . &amp;&amp; make &amp;&amp; sudo make install
+
+
+Property changes on: theme/ia_ora-kde4/install.sh
+___________________________________________________________________
+<a id="svnexecutable">Added: svn:executable</a>
+ + *
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4kwinclientCMakeListstxt">Added: theme/ia_ora-kde4/kwin-client/CMakeLists.txt</a>
+===================================================================
+--- theme/ia_ora-kde4/kwin-client/CMakeLists.txt (rev 0)
++++ theme/ia_ora-kde4/kwin-client/CMakeLists.txt 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,10 @@
++project (kwin-iaora)
++
++set (kwin_iaora_SOURCES kwin_iaora.cpp)
++kde4_add_plugin (kwin3_iaora ${kwin_iaora_SOURCES})
++target_link_libraries (kwin3_iaora ${KDE4_KDEUI_LIBS} kdecorations)
++install (TARGETS kwin3_iaora DESTINATION ${PLUGIN_INSTALL_DIR})
++install (FILES iaora.desktop DESTINATION ${DATA_INSTALL_DIR}/kwin)
++
++add_subdirectory (config)
++
+
+
+Property changes on: theme/ia_ora-kde4/kwin-client/CMakeLists.txt
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4kwinclientconfigCMakeListstxt">Added: theme/ia_ora-kde4/kwin-client/config/CMakeLists.txt</a>
+===================================================================
+--- theme/ia_ora-kde4/kwin-client/config/CMakeLists.txt (rev 0)
++++ theme/ia_ora-kde4/kwin-client/config/CMakeLists.txt 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,7 @@
++set (kwin_iaora_config_SOURCES iaora_config.cpp)
++kde4_add_ui_files(kwin_iaora_config_SOURCES iaora_config.ui)
++
++kde4_add_plugin (kwin_iaora_config ${kwin_iaora_config_SOURCES})
++
++target_link_libraries (kwin_iaora_config ${KDE4_KDEUI_LIBS})
++install (TARGETS kwin_iaora_config DESTINATION ${PLUGIN_INSTALL_DIR})
+
+
+Property changes on: theme/ia_ora-kde4/kwin-client/config/CMakeLists.txt
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4kwinclientconfigiaora_configcpp">Added: theme/ia_ora-kde4/kwin-client/config/iaora_config.cpp</a>
+===================================================================
+--- theme/ia_ora-kde4/kwin-client/config/iaora_config.cpp (rev 0)
++++ theme/ia_ora-kde4/kwin-client/config/iaora_config.cpp 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,106 @@
++/*
++ * Copyright 2008 Gustavo Pichorim Boiko &lt;boiko@mandriva.com&gt;
++ * Copyright 2008-2010 Rodrigo Gonçalves de Oliveira &lt;rodrigo@mandriva.com&gt;
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 3 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ */
++
++#include &lt;KDE/KVBox&gt;
++#include &lt;KDE/KGlobal&gt;
++#include &lt;KDE/KLocale&gt;
++#include &lt;KDE/KConfigGroup&gt;
++
++#include &quot;iaora_config.h&quot;
++
++extern &quot;C&quot; KDE_EXPORT QObject *allocate_config(KConfig *conf, QWidget *parent)
++{
++ return new IaOraConfig(conf, parent);
++}
++
++IaOraConfig::IaOraConfig(KConfig *conf, QWidget *parent) : QObject(parent)
++{
++ Q_UNUSED(conf);
++
++ KGlobal::locale()-&gt;insertCatalog(&quot;kwin_clients&quot;);
++
++ iaoraConfig = new KConfig(&quot;iaorarc&quot;);
++ KConfigGroup configGroup(iaoraConfig, &quot;Windeco&quot;);
++
++ m_ui = new IaOraConfigUI(parent);
++ connect(m_ui-&gt;cmbBorderSize, SIGNAL(currentIndexChanged(int)), SIGNAL(changed()));
++ connect(m_ui-&gt;cmbAlign, SIGNAL(currentIndexChanged(int)), SIGNAL(changed()));
++ connect(m_ui-&gt;chkGroup, SIGNAL(clicked()), SIGNAL(changed()));
++ connect(m_ui-&gt;chkCloseButtons, SIGNAL(clicked()), SIGNAL(changed()));
++
++ load(configGroup);
++ m_ui-&gt;show();
++}
++
++IaOraConfig::~IaOraConfig()
++{
++ delete m_ui;
++ delete iaoraConfig;
++}
++
++// loads the configuration
++void IaOraConfig::load(const KConfigGroup&amp;)
++{
++ KConfigGroup configGroup(iaoraConfig, &quot;Windeco&quot;);
++
++ int alignment;
++ int borderSize;
++ bool windowGrouping; // TABS
++ bool closeButtonsOnTabs; // TABS
++
++ // 1 is normal (0 = Tiny; 2 = Large; 3 = Very Large; 4 = Huge; 5 = Very Huge; 6 = Oversized)
++ borderSize = configGroup.readEntry(&quot;BorderSize&quot;, 1);
++ m_ui-&gt;cmbBorderSize-&gt;setCurrentIndex(borderSize);
++
++ // 1 is centered (0 = left; 2 = right)
++ alignment = configGroup.readEntry(&quot;TitleBarTextAlignment&quot;, 1);
++ m_ui-&gt;cmbAlign-&gt;setCurrentIndex(alignment);
++
++ // TABS
++ windowGrouping = configGroup.readEntry(&quot;UseWindowGrouping&quot;, false);
++ m_ui-&gt;chkGroup-&gt;setChecked(windowGrouping);
++ closeButtonsOnTabs = configGroup.readEntry(&quot;CloseButtonsOnTabs&quot;, true);
++ m_ui-&gt;chkCloseButtons-&gt;setChecked(closeButtonsOnTabs);
++}
++
++// we need to save the configurations
++void IaOraConfig::save(KConfigGroup&amp;)
++{
++ KConfigGroup configGroup(iaoraConfig, &quot;Windeco&quot;);
++
++ configGroup.writeEntry(&quot;BorderSize&quot;, m_ui-&gt;cmbBorderSize-&gt;currentIndex());
++ configGroup.writeEntry(&quot;TitleBarTextAlignment&quot;, m_ui-&gt;cmbAlign-&gt;currentIndex());
++ configGroup.writeEntry(&quot;UseWindowGrouping&quot;, m_ui-&gt;chkGroup-&gt;isChecked());
++ configGroup.writeEntry(&quot;CloseButtonsOnTabs&quot;, m_ui-&gt;chkCloseButtons-&gt;isChecked());
++
++ iaoraConfig-&gt;sync();
++}
++
++// simple the default configuration
++void IaOraConfig::defaults()
++{
++ m_ui-&gt;cmbBorderSize-&gt;setCurrentIndex(1);
++ m_ui-&gt;cmbAlign-&gt;setCurrentIndex(1);
++ m_ui-&gt;chkGroup-&gt;setChecked(false);
++ m_ui-&gt;chkCloseButtons-&gt;setChecked(true);
++}
++
++#include &quot;iaora_config.moc&quot;
++
+
+
+Property changes on: theme/ia_ora-kde4/kwin-client/config/iaora_config.cpp
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4kwinclientconfigiaora_configh">Added: theme/ia_ora-kde4/kwin-client/config/iaora_config.h</a>
+===================================================================
+--- theme/ia_ora-kde4/kwin-client/config/iaora_config.h (rev 0)
++++ theme/ia_ora-kde4/kwin-client/config/iaora_config.h 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,63 @@
++/*
++ * Copyright 2008 Gustavo Pichorim Boiko &lt;boiko@mandriva.com&gt;
++ * Copyright 2008-2010 Rodrigo Gonçalves de Oliveira &lt;rodrigo@mandriva.com&gt;
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 3 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ */
++
++#ifndef IAORA_CONFIG_H
++#define IAORA_CONFIG_H
++
++#include &lt;KConfig&gt;
++#include &lt;QtCore/QObject&gt;
++
++#include &quot;ui_iaora_config.h&quot;
++
++class QWidget;
++class KConfig;
++class KConfigGroup;
++
++class IaOraConfigUI : public QWidget, public Ui_IaOraConfigDialog
++{
++ public:
++ IaOraConfigUI(QWidget *parent) : QWidget(parent){
++ setupUi(this);
++ }
++};
++
++class IaOraConfig : public QObject
++{
++ Q_OBJECT
++
++ public:
++ IaOraConfig(KConfig *conf, QWidget *parent);
++ virtual ~IaOraConfig();
++
++ signals:
++ void changed();
++
++ public slots:
++ void load(const KConfigGroup&amp;);
++ void save(KConfigGroup&amp;);
++ void defaults();
++
++ private:
++ IaOraConfigUI *m_ui;
++ KConfig *iaoraConfig;
++};
++
++#endif
++
+
+
+Property changes on: theme/ia_ora-kde4/kwin-client/config/iaora_config.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4kwinclientconfigiaora_configui">Added: theme/ia_ora-kde4/kwin-client/config/iaora_config.ui</a>
+===================================================================
+--- theme/ia_ora-kde4/kwin-client/config/iaora_config.ui (rev 0)
++++ theme/ia_ora-kde4/kwin-client/config/iaora_config.ui 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,141 @@
++&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
++&lt;ui version=&quot;4.0&quot;&gt;
++ &lt;class&gt;IaOraConfigDialog&lt;/class&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;IaOraConfigDialog&quot;&gt;
++ &lt;property name=&quot;geometry&quot;&gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;0&lt;/y&gt;
++ &lt;width&gt;385&lt;/width&gt;
++ &lt;height&gt;108&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;windowTitle&quot;&gt;
++ &lt;string/&gt;
++ &lt;/property&gt;
++ &lt;layout class=&quot;QGridLayout&quot; name=&quot;gridLayout&quot;&gt;
++ &lt;item row=&quot;0&quot; column=&quot;0&quot;&gt;
++ &lt;layout class=&quot;QHBoxLayout&quot; name=&quot;horizontalLayout&quot;&gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QLabel&quot; name=&quot;label_2&quot;&gt;
++ &lt;property name=&quot;text&quot;&gt;
++ &lt;string&gt;Border size:&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QComboBox&quot; name=&quot;cmbBorderSize&quot;&gt;
++ &lt;item&gt;
++ &lt;property name=&quot;text&quot;&gt;
++ &lt;string&gt;Tiny&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;property name=&quot;text&quot;&gt;
++ &lt;string&gt;Normal&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;property name=&quot;text&quot;&gt;
++ &lt;string&gt;Large&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;property name=&quot;text&quot;&gt;
++ &lt;string&gt;Very Large&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;property name=&quot;text&quot;&gt;
++ &lt;string&gt;Huge&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;property name=&quot;text&quot;&gt;
++ &lt;string&gt;Very Huge&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;property name=&quot;text&quot;&gt;
++ &lt;string&gt;Oversized&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/item&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/item&gt;
++ &lt;item row=&quot;1&quot; column=&quot;0&quot;&gt;
++ &lt;layout class=&quot;QHBoxLayout&quot; name=&quot;horizontalLayout_2&quot;&gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QLabel&quot; name=&quot;label&quot;&gt;
++ &lt;property name=&quot;text&quot;&gt;
++ &lt;string&gt;TitleBar text alignment:&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QComboBox&quot; name=&quot;cmbAlign&quot;&gt;
++ &lt;item&gt;
++ &lt;property name=&quot;text&quot;&gt;
++ &lt;string&gt;Left&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;property name=&quot;text&quot;&gt;
++ &lt;string&gt;Center&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;property name=&quot;text&quot;&gt;
++ &lt;string&gt;Right&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/item&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/item&gt;
++ &lt;item row=&quot;2&quot; column=&quot;0&quot;&gt;
++ &lt;widget class=&quot;QCheckBox&quot; name=&quot;chkGroup&quot;&gt;
++ &lt;property name=&quot;enabled&quot;&gt;
++ &lt;bool&gt;true&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;text&quot;&gt;
++ &lt;string&gt;Enable window grouping&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item row=&quot;3&quot; column=&quot;0&quot;&gt;
++ &lt;widget class=&quot;QCheckBox&quot; name=&quot;chkCloseButtons&quot;&gt;
++ &lt;property name=&quot;enabled&quot;&gt;
++ &lt;bool&gt;false&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;text&quot;&gt;
++ &lt;string&gt;Show close button on each tab&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;checked&quot;&gt;
++ &lt;bool&gt;true&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/widget&gt;
++ &lt;resources/&gt;
++ &lt;connections&gt;
++ &lt;connection&gt;
++ &lt;sender&gt;chkGroup&lt;/sender&gt;
++ &lt;signal&gt;toggled(bool)&lt;/signal&gt;
++ &lt;receiver&gt;chkCloseButtons&lt;/receiver&gt;
++ &lt;slot&gt;setEnabled(bool)&lt;/slot&gt;
++ &lt;hints&gt;
++ &lt;hint type=&quot;sourcelabel&quot;&gt;
++ &lt;x&gt;192&lt;/x&gt;
++ &lt;y&gt;41&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;hint type=&quot;destinationlabel&quot;&gt;
++ &lt;x&gt;192&lt;/x&gt;
++ &lt;y&gt;62&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;/hints&gt;
++ &lt;/connection&gt;
++ &lt;/connections&gt;
++&lt;/ui&gt;
+
+<a id="themeia_orakde4kwinclientiaoradesktop">Added: theme/ia_ora-kde4/kwin-client/iaora.desktop</a>
+===================================================================
+--- theme/ia_ora-kde4/kwin-client/iaora.desktop (rev 0)
++++ theme/ia_ora-kde4/kwin-client/iaora.desktop 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,3 @@
++[Desktop Entry]
++Name=IaOra
++X-KDE-Library=kwin3_iaora
+
+<a id="themeia_orakde4kwinclientkwin_iaoracpp">Added: theme/ia_ora-kde4/kwin-client/kwin_iaora.cpp</a>
+===================================================================
+--- theme/ia_ora-kde4/kwin-client/kwin_iaora.cpp (rev 0)
++++ theme/ia_ora-kde4/kwin-client/kwin_iaora.cpp 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,1248 @@
++/*
++ * kwin_iaora.cpp - IaOra window decoration for KDE
++ * based on the Skulpture window decoration
++ *
++ * Copyright 2008 Gustavo Pichorim Boiko &lt;boiko@mandriva.com&gt;
++ * Skulpture Copyright 2008 Christoph Feck
++ * Copyright 2008-2010 Rodrigo Gonçalves de Oliveira &lt;rodrigo@mandriva.com&gt;
++ *
++ ** Window tabbing feature based on the original code from Tabstrip KWin window decoration
++ ** Copyright (C) 2009 Jorge Mata &lt;matamax123@gmail.com&gt;
++ ** Copyright (C) 2009 Lucas Murray &lt;lmurray@undefinedfire.com&gt;
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 3 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ */
++
++#include &quot;kwin_iaora.h&quot;
++#include &lt;KDE/KLocale&gt;
++#include &lt;KDE/KConfig&gt;
++#include &lt;KDE/KConfigGroup&gt;
++#include &lt;QtGui/QStylePainter&gt;
++#include &lt;QtGui/QStyle&gt;
++#include &lt;QtGui/QStyleFactory&gt;
++#include &lt;QtGui/QStyleOption&gt;
++#include &lt;QtGui/QBitmap&gt;
++#include &lt;QtCore/QLibrary&gt;
++#include &lt;QtCore/QPluginLoader&gt;
++#include &lt;QtGui/QStylePlugin&gt;
++#include &lt;QSettings&gt;
++#include &lt;QPixmapCache&gt;
++
++#include &lt;QtCore/QCoreApplication&gt;
++#include &lt;QtCore/QDebug&gt;
++#include &lt;cstdio&gt;
++
++
++/*-----------------------------------------------------------------------*/
++/**
++ * The IaOra window decoration for KDE actually is a wrapper.
++ * It uses Qt's MDI window decoration. As such, it is very lightweight.
++ *
++ */
++
++extern &quot;C&quot; KDE_EXPORT KDecorationFactory *create_factory()
++{
++ return new IaOraDecorationFactory();
++}
++
++inline QString hashPalette(const QPalette &amp;pal)
++{
++ QString hash = pal.color(QPalette::Window).name();
++ hash += pal.color(QPalette::Highlight).name();
++ return hash;
++}
++
++ColorData *IaOraDecoration::lookupData(const QPalette &amp;pal)
++{
++ QString hash = hashPalette(pal);
++
++ // if already cached, just return
++ //if (m_data.contains(hash))
++ // return m_data[hash];
++
++ ColorData *data = new ColorData();
++ QColor background = pal.color(QPalette::Window);
++ QColor highlight = pal.color(QPalette::Highlight);
++
++ //TODO: check whether black and white should not be black and white
++ data-&gt;black = Qt::black;
++ data-&gt;white = Qt::white;
++
++ QSettings conf(&quot;/etc/iaoracolors&quot;, QSettings::NativeFormat); // TODO: define where this file must go
++
++ if (background.name() == &quot;#eff3f7&quot;)
++ {
++ conf.beginGroup(&quot;Default&quot;);
++ data-&gt;gray[0] = (conf.value(&quot;gray0&quot;, background)).value&lt;QColor&gt;();
++ data-&gt;gray[1] = (conf.value(&quot;gray1&quot;, background.dark(107))).value&lt;QColor&gt;();
++ data-&gt;gray[2] = (conf.value(&quot;gray2&quot;, background.dark(115))).value&lt;QColor&gt;();
++ data-&gt;gray[3] = (conf.value(&quot;gray3&quot;, background.dark(117))).value&lt;QColor&gt;();
++ data-&gt;gray[4] = (conf.value(&quot;gray4&quot;, background.dark(131))).value&lt;QColor&gt;();
++ data-&gt;gray[5] = (conf.value(&quot;gray5&quot;, background.dark(144))).value&lt;QColor&gt;();
++ data-&gt;gray[6] = (conf.value(&quot;gray6&quot;, background.dark(178))).value&lt;QColor&gt;();
++ conf.endGroup();
++ } else
++ {
++ data-&gt;gray[0] = background;
++ data-&gt;gray[1] = background.dark(107);
++ data-&gt;gray[2] = background.dark(115);
++ data-&gt;gray[3] = background.dark(117);
++ data-&gt;gray[4] = background.dark(131);
++ data-&gt;gray[5] = background.dark(144);
++ data-&gt;gray[6] = background.dark(178);
++ }
++
++ QString group = &quot;&quot;;
++
++ if (highlight.name() == &quot;#8ec7ff&quot;) group = &quot;Arctic&quot;;
++ else if (highlight.name() == &quot;#4965ae&quot;) group = &quot;Blue&quot;;
++ else if (highlight.name() == &quot;#cfd7df&quot;) group = &quot;Gray&quot;;
++ else if (highlight.name() == &quot;#5d658e&quot;) group = &quot;Night&quot;;
++ else if (highlight.name() == &quot;#f7b610&quot;) group = &quot;Orange&quot;;
++ else if (highlight.name() == &quot;#7baae7&quot;) group = &quot;Smooth&quot;;
++ else if (highlight.name() == &quot;#148dcd&quot;) group = &quot;Steel&quot;;
++
++ if (!group.isEmpty())
++ {
++ conf.beginGroup(group);
++ data-&gt;color[0] = (conf.value(&quot;color0&quot;, highlight.light(150))).value&lt;QColor&gt;();
++ data-&gt;color[1] = (conf.value(&quot;color1&quot;, highlight.light(137))).value&lt;QColor&gt;();
++ data-&gt;color[2] = (conf.value(&quot;color2&quot;, highlight)).value&lt;QColor&gt;();
++ data-&gt;color[3] = (conf.value(&quot;color3&quot;, highlight.light(112))).value&lt;QColor&gt;();
++ data-&gt;color[4] = (conf.value(&quot;color4&quot;, highlight.light(130))).value&lt;QColor&gt;();
++ conf.endGroup();
++ } else
++ {
++ data-&gt;color[0] = highlight.light(150);
++ data-&gt;color[1] = highlight.light(137);
++ data-&gt;color[2] = highlight;
++ data-&gt;color[3] = highlight.dark(112);
++ data-&gt;color[4] = highlight.dark(130);
++ }
++
++ //m_data[hash] = data;
++ return data;
++}
++
++/*-----------------------------------------------------------------------*/
++/*
++ * When KWin is already running, it doesn't notice that
++ * a new style has been installed, and QStyleFactory will
++ * not find the new style.
++ *
++ * This function works around this Qt problem by manually
++ * loading the style.
++ *
++ */
++
++static void setIaOraStyle(QWidget *widget)
++{
++ static QStyle *iaoraStyle = 0;
++ QStyle *style = 0;
++
++ if (!style &amp;&amp; iaoraStyle) {
++ style = iaoraStyle;
++ }
++ if (!style) {
++ bool loaded = false;
++ QStringList paths = QCoreApplication::libraryPaths();
++ QLibrary library;
++ foreach (QString path, paths) {
++ library.setFileName(path + QString::fromUtf8(&quot;/styles/iaora-qt&quot;));
++ if (library.load()) {
++ loaded = true;
++ break;
++ }
++ }
++ if (loaded) {
++ QString libName = library.fileName();
++ library.unload();
++
++ QPluginLoader plugin(libName);
++ QObject *instance = plugin.instance();
++ if (instance) {
++ QStyleFactoryInterface *factory = qobject_cast&lt;QStyleFactoryInterface*&gt;(instance);
++ if (factory) {
++ style = factory-&gt;create(QString::fromUtf8(&quot;iaora-qt&quot;));
++ if (style) {
++ iaoraStyle = style;
++ }
++ }
++ }
++ }
++ }
++ if (style) {
++ widget-&gt;setStyle(style);
++ }
++}
++
++
++/*-----------------------------------------------------------------------*/
++
++IaOraDecorationButton::IaOraDecorationButton(ButtonType type, KCommonDecoration *parent)
++ : KCommonDecorationButton(type, parent)
++{
++ init();
++}
++
++
++void IaOraDecorationButton::init()
++{
++ setAttribute(Qt::WA_PaintOnScreen, false);
++ setAttribute(Qt::WA_NoSystemBackground, true);
++ setAutoFillBackground(false);
++ setFocusPolicy(Qt::NoFocus);
++ setAttribute(Qt::WA_OpaquePaintEvent, false);
++ setAttribute(Qt::WA_Hover, true);
++ setIaOraStyle(this);
++ m_isHover = false;
++}
++
++
++IaOraDecorationButton::~IaOraDecorationButton()
++{
++ /* */
++}
++
++
++void IaOraDecorationButton::reset(unsigned long /*changed*/)
++{
++ /* NOTE: must be implemented, because it is declared pure */
++}
++
++
++void IaOraDecorationButton::initStyleOption(QStyleOptionButton &amp;opt)
++{
++ opt.init(this);
++ if (isDown()) {
++ opt.state |= QStyle::State_Selected;
++ } else {
++ opt.state &amp;= ~QStyle::State_Selected;
++ }
++ if (decoration()-&gt;isActive()) {
++ opt.state |= QStyle::State_Active;
++ } else {
++ opt.state &amp;= ~QStyle::State_Active;
++ }
++}
++
++
++void IaOraDecorationButton::paintEvent(QPaintEvent */* event */)
++{
++// TODO: must clear the cache when we change the color scheme (how???)
++ const KCommonDecoration *deco = decoration();
++ QPainter painter(this);
++ QStyleOptionButton opt;
++ initStyleOption(opt);
++
++ QStyle::StandardPixmap sp;
++ switch (type()) {
++ case OnAllDesktopsButton:
++ sp = QStyle::StandardPixmap(QStyle::SP_CustomBase + (deco-&gt;isOnAllDesktops() ? 2 : 1));
++ break;
++ case MenuButton:
++ sp = QStyle::StandardPixmap(QStyle::SP_CustomBase + 3);
++ break;
++ case AboveButton:
++ sp = QStyle::StandardPixmap(QStyle::SP_CustomBase + (deco-&gt;keepAbove() ? 6 : 4));
++ break;
++ case BelowButton:
++ sp = QStyle::StandardPixmap(QStyle::SP_CustomBase + (deco-&gt;keepBelow() ? 7 : 5));
++ break;
++ case HelpButton:
++ sp = QStyle::SP_TitleBarContextHelpButton;
++ break;
++ case MinButton:
++ sp = QStyle::SP_TitleBarMinButton;
++ break;
++ case MaxButton:
++ sp = deco-&gt;maximizeMode() == KDecoration::MaximizeFull ? QStyle::SP_TitleBarNormalButton : QStyle::SP_TitleBarMaxButton;
++ break;
++ case ShadeButton:
++ sp = deco-&gt;isShade() ? QStyle::SP_TitleBarUnshadeButton : QStyle::SP_TitleBarShadeButton;
++ break;
++ case ItemCloseButton:
++ case CloseButton:
++ sp = QStyle::SP_TitleBarCloseButton;
++ break;
++ default:
++ sp = QStyle::SP_CustomBase;
++ break;
++ }
++
++ QIcon icon;
++ int shift;
++
++ // paint shape
++ opt.rect = rect().adjusted(-1, 0, 0, 0);
++
++ opt.palette.setColor(QPalette::Text, deco-&gt;options()-&gt;color(KCommonDecoration::ColorFont, opt.state &amp; QStyle::State_Active));
++
++ icon = sp == QStyle::SP_CustomBase + 3 ? deco-&gt;icon().pixmap(16, 16) : style()-&gt;standardIcon(sp, &amp;opt, this);
++
++ if (type() == ItemCloseButton){ // special case for a tab close button
++ QPixmap pix;
++ QString key = QString(&quot;iaora_standard_pixmap_tab_%1_%2_%3&quot;).arg(QString::number(sp))
++ .arg(16)
++ .arg(16);
++ if (QPixmapCache::find(key, pix)){
++ icon = QIcon(pix);
++ } else{
++ pix = QPixmap(16, 16);
++ pix.fill(Qt::transparent);
++
++ QImage image(pix.size(), QImage::Format_ARGB32_Premultiplied);
++ image.fill(opt.palette.color(QPalette::WindowText).rgb());
++
++ QPainter p2(&amp;pix);
++ p2.setCompositionMode(QPainter::CompositionMode_Source);
++ p2.fillRect(pix.rect(), Qt::transparent);
++ p2.setCompositionMode(QPainter::CompositionMode_SourceOver);
++ p2.drawPixmap(0, 0, icon.pixmap(16, 16));
++
++ p2.setCompositionMode(QPainter::CompositionMode_SourceIn);
++ p2.drawImage(0, 0, image);
++ p2.end();
++
++ QPixmapCache::insert(key, pix);
++ icon = QIcon(pix);
++ }
++ }
++
++ shift = opt.state &amp; QStyle::State_Selected ? 1 : 0;
++
++ // when mouse is over, we apply a darker effect
++ QPixmap pix;
++ if (m_isHover){
++ pix = icon.pixmap(opt.rect.size());
++ QPainter p;
++ QPixmap temp(pix.size());
++
++ temp.fill(Qt::transparent);
++ p.begin(&amp;temp);
++
++ QRect r(pix.rect());
++ p.drawPixmap(r, pix);
++
++ p.setCompositionMode(QPainter::CompositionMode_DestinationIn);
++
++ QColor color;
++ color.setAlpha(0.7 * 255);
++ p.fillRect(pix.rect(), color);
++
++ p.end();
++ pix = temp;
++ } else
++ pix = icon.pixmap(opt.rect.size());
++
++ painter.setRenderHint(QPainter::Antialiasing, false);
++ painter.drawPixmap(opt.rect.topLeft() + QPoint(shift, shift) + QPoint(0, (opt.rect.height() / 2) - (pix.height() / 2)), pix);
++ //painter.drawPixmap(opt.rect.topLeft() + QPoint(shift, shift), pix);
++ qDebug(&quot;Rect: %d %d %dx%d&quot;, rect().left(), rect().top(), rect().width(), rect().height());
++}
++
++void IaOraDecorationButton::enterEvent(QEvent *e)
++{
++ Q_UNUSED(e);
++
++ m_isHover = true;
++ update();
++}
++
++void IaOraDecorationButton::leaveEvent(QEvent *e)
++{
++ Q_UNUSED(e);
++
++ m_isHover = false;
++ update();
++}
++
++/*-----------------------------------------------------------------------*/
++
++IaOraDecoration::IaOraDecoration(KDecorationBridge *bridge, KDecorationFactory *factory)
++ : KCommonDecorationUnstable(bridge, factory) // TABS
++ //: KCommonDecoration(bridge, factory)
++{
++ /* */
++ clicking = dragging = false;
++ pressedButton = Qt::NoButton;
++
++ loadConfig();
++}
++
++
++IaOraDecoration::~IaOraDecoration()
++{
++ /* */
++}
++
++
++QString IaOraDecoration::visibleName() const
++{
++ return i18n(&quot;IaOra&quot;);
++}
++
++
++void IaOraDecoration::initStyleOption(QStyleOption &amp;opt)
++{
++ opt.init(widget());
++ opt.fontMetrics = QFontMetrics(options()-&gt;font(isActive()));
++ if (isActive()) {
++ opt.state |= QStyle::State_Active;
++ } else {
++ opt.state &amp;= ~QStyle::State_Active;
++ }
++}
++
++// Loads the configuration from theme settings
++void IaOraDecoration::loadConfig()
++{
++ KConfig *conf = new KConfig(&quot;iaorarc&quot;);
++ KConfigGroup configGroup(conf, &quot;Windeco&quot;);
++
++ useWindowGrouping = configGroup.readEntry(&quot;UseWindowGrouping&quot;, false); // TABS
++ closeButtonsOnTabs = configGroup.readEntry(&quot;CloseButtonsOnTabs&quot;, true); // TABS
++
++ borderSize = configGroup.readEntry(&quot;BorderSize&quot;, 1);
++
++ int alignFlag = configGroup.readEntry(&quot;TitleBarTextAlignment&quot;, 1);
++
++ switch(alignFlag){
++ case 0:
++ titleBarTextAlign = Qt::AlignLeft | Qt::AlignVCenter;
++ break;
++ default:
++ case 1:
++ titleBarTextAlign = Qt::AlignCenter; // the default one
++ break;
++ case 2:
++ titleBarTextAlign = Qt::AlignRight | Qt::AlignVCenter;
++ break;
++ }
++
++ delete conf;
++}
++
++bool IaOraDecoration::decorationBehaviour(DecorationBehaviour behaviour) const
++{
++ switch (behaviour) {
++ case DB_MenuClose:
++ case DB_WindowMask:
++ case DB_ButtonHide:
++ return true;
++ default:
++ return KCommonDecoration::decorationBehaviour(behaviour);
++ }
++}
++
++
++void IaOraDecoration::updateWindowShape()
++{
++ QStyleOptionTitleBar option;
++ initStyleOption(option);
++ QStyleHintReturnMask mask;
++
++ if ((widget()-&gt;style())-&gt;styleHint(QStyle::SH_WindowFrame_Mask, &amp;option, widget(), &amp;mask)) {
++ setMask(mask.region);
++ } else if (maximizeMode() == MaximizeFull){ // we don't want mask when maximized
++ QRegion mask2(0, 0, widget()-&gt;width()+1, widget()-&gt;height()+1);
++ setMask(mask2);
++ } else {
++ int w = widget()-&gt;width();
++ int h = widget()-&gt;height();
++
++ QRegion mask2(1, 0, w-2, h);
++ mask2 += QRegion(0, 1, 1, h-2);
++ mask2 += QRegion(w-1, 1, 1, h-2);
++
++ setMask(mask2);
++ }
++}
++
++
++int IaOraDecoration::layoutMetric(LayoutMetric lm, bool respectWindowState, const KCommonDecorationButton *button) const
++{
++ bool border = !(maximizeMode()==MaximizeFull &amp;&amp; !options()-&gt;moveResizeMaximizedWindows());
++
++ if (border) {
++ switch (lm) {
++ case LM_BorderLeft:
++ case LM_BorderRight:
++ case LM_BorderBottom:
++ return borderWidth;
++ case LM_TitleBorderLeft:
++ case LM_TitleBorderRight:
++ return 4;
++ case LM_TitleEdgeLeft:
++ case LM_TitleEdgeRight:
++ return 8;
++ case LM_TitleEdgeTop:
++ return borderWidth;
++ case LM_ButtonHeight:
++ return titleHeight;
++ default:
++ break;
++ }
++ } else {
++ switch (lm) {
++ case LM_BorderLeft:
++ case LM_BorderRight:
++ return 0;
++ case LM_BorderBottom:
++ case LM_TitleBorderLeft:
++ case LM_TitleBorderRight:
++ case LM_TitleEdgeLeft:
++ return 2;
++ case LM_TitleEdgeRight:
++ case LM_TitleEdgeTop:
++ return 0;
++ case LM_ButtonHeight:
++ return titleHeight;
++ default:
++ break;
++ }
++ }
++ switch (lm) {
++ case LM_TitleEdgeBottom:
++ return 1;
++ case LM_TitleHeight:
++ return titleHeight + 2;
++ case LM_ButtonWidth:
++ return titleHeight;
++ case LM_ButtonSpacing:
++ return 0;
++ case LM_ExplicitButtonSpacer:
++ return 2;
++ case LM_ButtonMarginTop:
++ return 0;
++ default:
++ return KCommonDecoration::layoutMetric(lm, respectWindowState, button);
++ }
++}
++
++
++KCommonDecorationButton *IaOraDecoration::createButton(ButtonType type)
++{
++ return new IaOraDecorationButton(type, this);
++}
++
++
++void IaOraDecoration::init()
++{
++ QWidget wid;
++ setIaOraStyle(&amp;wid);
++ if (wid.style()) {
++ QStyleOptionTitleBar option;
++ option.init(&amp;wid);
++ option.fontMetrics = QFontMetrics(options()-&gt;font(true));
++ borderWidth = wid.style()-&gt;pixelMetric(QStyle::PM_MdiSubWindowFrameWidth, &amp;option, 0);
++ titleHeight = wid.style()-&gt;pixelMetric(QStyle::PM_TitleBarHeight, &amp;option, 0);
++ noBorder = wid.style()-&gt;styleHint(QStyle::SH_TitleBar_NoBorder, &amp;option, 0);
++ autoRaise = wid.style()-&gt;styleHint(QStyle::SH_TitleBar_AutoRaise, &amp;option, 0);
++ } else {
++ borderWidth = 4;
++ titleHeight = 16;
++ noBorder = false;
++ autoRaise = false;
++ }
++ KConfig configFile(QString::fromAscii(&quot;kwiniaorarc&quot;));
++ KConfigGroup conf(&amp;configFile, &quot;General&quot;);
++ coloredFrame = conf.readEntry(&quot;UseTitleBarBorderColors&quot;, false);
++ contrastFrame = conf.readEntry(&quot;UseExtraContrastBorder&quot;, false);
++
++
++ switch (borderSize) {
++ case 0: borderWidth = 2; break; // Tiny
++ default:
++ case 1: borderWidth = 3; break; // Normal
++ case 2: borderWidth = 4; break; // Large
++ case 3: borderWidth = 5; break; // VeryLarge
++ case 4: borderWidth = titleHeight / 2; break; // Huge
++ case 5: borderWidth = titleHeight * 3 / 4; break; // VeryHuge
++ case 6: borderWidth = titleHeight; break; // Oversized
++ }
++ /*switch (options()-&gt;preferredBorderSize(factory())) {
++ case BorderTiny: borderWidth = 2; break;
++ default:
++ case BorderNormal: borderWidth = 3; break;
++ case BorderLarge: borderWidth = 4; break;
++ case BorderVeryLarge: borderWidth = 5; break;
++ case BorderHuge: borderWidth = titleHeight / 2; break;
++ case BorderVeryHuge: borderWidth = titleHeight * 3 / 4; break;
++ case BorderOversized: borderWidth = titleHeight; break;
++ }*/
++ if (contrastFrame) {
++ borderWidth += 1;
++ }
++ KCommonDecoration::init();
++ if (wid.style()) widget()-&gt;setStyle(wid.style());
++ widget()-&gt;setAutoFillBackground(false);
++ widget()-&gt;setAttribute(Qt::WA_NoSystemBackground, true);
++ widget()-&gt;setAttribute(Qt::WA_OpaquePaintEvent, true);
++
++ if (useWindowGrouping)
++ widget()-&gt;setAcceptDrops(true); // TABS
++
++ if (static_cast&lt;const KDecorationUnstable *&gt;(decoration())-&gt;compositingActive())
++ widget()-&gt;setAttribute(Qt::WA_PaintOnScreen, false); // Kwin problem with composite
++}
++
++
++static inline QColor blend_color(const QColor &amp;c0, const QColor &amp;c1, qreal blend)
++{
++ int b = int(0.5 + 256.0 * blend);
++ b = qMin(256, qMax(0, b));
++ QRgb rgba0 = c0.rgba();
++ QRgb rgba1 = c1.rgba();
++ return QColor(
++ qRed(rgba0) + (((qRed(rgba1) - qRed(rgba0)) * b) &gt;&gt; 8),
++ qGreen(rgba0) + (((qGreen(rgba1) - qGreen(rgba0)) * b) &gt;&gt; 8),
++ qBlue(rgba0) + (((qBlue(rgba1) - qBlue(rgba0)) * b) &gt;&gt; 8),
++ qAlpha(rgba0) + (((qAlpha(rgba1) - qAlpha(rgba0)) * b) &gt;&gt; 8)
++ );
++}
++
++// Helper function to draw a tab on the TitleBar
++void IaOraDecoration::drawTab(QPainter &amp;painter, const QRect &amp;rect, ClientGroupItem &amp;item, bool border, bool active, bool dragging)
++{ // TABS
++ QStyleOptionTab tab;
++ initStyleOption(tab);
++
++ if (dragging)
++ tab.rect = rect.adjusted(0, 0, 2, 0);
++ else
++ tab.rect = rect.adjusted(0, 2, 0, 0);
++
++ QPalette pal = tab.palette;
++ pal.setCurrentColorGroup(active ? QPalette::Active : QPalette::Inactive);
++
++ ColorData *data = lookupData(pal);
++
++ int top = tab.rect.top(), bottom = tab.rect.bottom(), left = tab.rect.left(), right = tab.rect.right();
++
++ if (active){
++ QRect contents = tab.rect;
++ QLine borders[3];
++ QLine lightBlue[2];
++ QLine darkBlue[2];
++
++ // Tab decoration
++ borders[0] = QLine(left, top + 4, left, bottom);
++ if (dragging){
++ borders[1] = QLine(right - 2, top + 4, right - 2, bottom);
++ borders[2] = QLine(left, bottom, right - 2, bottom);
++ } else
++ borders[1] = QLine(right - 1, top + 4, right - 1, bottom);
++
++ lightBlue[0] = QLine(left + 2, top, right - 3,top);
++ lightBlue[1] = QLine(left + 1, top + 1, right - 2 , top + 1);
++
++ darkBlue[0] = QLine(left, top + 2, right - 1, top + 2);
++ darkBlue[1] = QLine(left, top + 3, right - 1, top + 3);
++
++ // fill the contents
++ if (dragging){
++ painter.fillRect(contents, data-&gt;gray[0]);
++
++ } else
++ painter.fillRect(contents.adjusted(0, 4, -1, 0), data-&gt;gray[0]);
++
++ // draw the gray borders
++ painter.setPen(data-&gt;gray[4]);
++ if (dragging){
++ painter.drawLines(borders, 3);
++
++ QPoint points[2];
++
++ points[0] = QPoint(left + 1, bottom - 1);
++ points[1] = QPoint(right - 3, bottom - 1);
++ painter.drawPoints(points, 2);
++ } else
++ painter.drawLines(borders, 2);
++
++ // the blue lines
++ painter.setPen(data-&gt;color[2]);
++ painter.drawLines(lightBlue, 2);
++ painter.setPen(data-&gt;color[4]);
++ painter.drawLines(darkBlue, 2);
++ }
++ else // inactive tab
++ {
++ QRect contents = tab.rect;
++
++ QPoint points[2];
++ QLine lines[4];
++
++ // Tab decoration
++ if (!dragging)
++ top += 3;
++
++ contents.setTop(top + 1);
++ lines[0] = QLine(left + 2, top, right - 3, top); // top
++ lines[1] = QLine(left, top + 2, left, bottom); // left
++ lines[2] = QLine(right - 1, top + 2, right - 1, bottom); // right
++ points[0] = QPoint(left + 1, top + 1);
++ points[1] = QPoint(right - 2, top + 1);
++
++ // draw the contents
++ painter.setPen(Qt::NoPen);
++ painter.setBrush(data-&gt;gray[1]);
++ painter.drawRect(contents.adjusted(1, 1, -1, 0));
++ painter.drawRect(contents.adjusted(2, 0, -2, 0));
++
++ // draw the lines
++ painter.setPen(data-&gt;gray[5]);
++ painter.drawLines(lines, 4);
++ painter.drawPoints(points, 2);
++ }
++
++ //--------------------------------------------------------
++
++ // text part
++ painter.save();
++ int borderSpace = borderWidth;
++
++ QRect labelRect(rect.adjusted(0, 4, 0, 0));
++ if (titleBarTextAlign &amp; Qt::AlignLeft)
++ labelRect.adjust(3, 0, 0, 0);
++ else if (titleBarTextAlign &amp; Qt::AlignRight)
++ labelRect.adjust(0, 0, -3, 0);
++
++ if (closeButtonsOnTabs)
++ labelRect.adjust(0, 0, -18, 0);
++
++ QFontMetrics metrics(painter.font());
++ QString string = metrics.elidedText(item.title(), Qt::ElideRight, labelRect.width());
++
++ painter.setPen(tab.palette.color(QPalette::WindowText));
++ painter.drawText(labelRect, titleBarTextAlign | Qt::TextSingleLine, string);
++ painter.restore();
++}
++
++void IaOraDecoration::paintEvent(QPaintEvent */*event */)
++{
++ bool border = !(maximizeMode()==MaximizeFull &amp;&amp; !options()-&gt;moveResizeMaximizedWindows());
++ QStylePainter painter(widget());
++
++ // draw the title bar
++ QStyleOptionTitleBar option;
++ initStyleOption(option);
++ option.titleBarState = option.state;
++ option.subControls = QStyle::SC_TitleBarLabel;
++
++ QList&lt;ClientGroupItem&gt; tabList = clientGroupItems(); // TABS
++ int tabCount = tabList.count(); // TABS
++
++ int borderSpace = borderWidth;
++
++ if (noBorder) {
++ option.rect.setHeight(titleHeight);
++ } else {
++ option.rect.adjust(4, 4, -4, -4);
++ option.rect.setHeight(titleHeight);
++ }
++ if (!border) {
++ option.rect.adjust(-6, 0, 6, 0);
++ borderSpace = 0;
++ }
++
++ option.text = QString();
++ option.titleBarFlags = 0;
++ option.rect.adjust(0, 0, 0, borderSpace);
++
++ if (coloredFrame &amp;&amp; border) {
++ painter.fillRect(widget()-&gt;rect(), options()-&gt;color(ColorTitleBar, isActive()));
++#if 0
++ QColor color0 = option.palette.color(QPalette::Window);
++ QColor color1 = options()-&gt;color(ColorTitleBar, isActive());
++ QRect r = widget()-&gt;rect();
++ for (int i = 0; i &lt; borderWidth; ++i) {
++ painter.setPen(blend_color(color1, color0, i / (borderWidth - 1.0)));
++ painter.drawRect(r.adjusted(0, 0, -1, -1));
++ r.adjust(1, 1, -1, -1);
++ }
++#endif
++ } else {
++ painter.fillRect(widget()-&gt;rect(), option.palette.color(QPalette::Window));
++
++ painter.save();
++ painter.setPen(Qt::white);
++ painter.drawLine(widget()-&gt;rect().topLeft() + QPoint(0, titleHeight + borderSpace + 2), widget()-&gt;rect().topRight() + QPoint(0, titleHeight + borderSpace + 2));
++
++ painter.setPen(option.palette.color(QPalette::Window));
++ painter.drawLine(widget()-&gt;rect().topLeft() + QPoint(2, 0), widget()-&gt;rect().bottomLeft() + QPoint(2, 0));
++ painter.drawLine(widget()-&gt;rect().topRight() - QPoint(2, 0), widget()-&gt;rect().bottomRight() - QPoint(2, 0));
++ painter.drawLine(widget()-&gt;rect().bottomLeft() - QPoint(0, 2), widget()-&gt;rect().bottomRight() - QPoint(0, 2));
++
++ // inner lines
++ // #DFE7EF
++ painter.setPen(QColor(223, 231, 239));
++ painter.drawLine(widget()-&gt;rect().topLeft() + QPoint(1, 0), widget()-&gt;rect().bottomLeft() + QPoint(1, 0));
++ painter.drawLine(widget()-&gt;rect().topRight() - QPoint(1, 0), widget()-&gt;rect().bottomRight() - QPoint(1, 0));
++ painter.drawLine(widget()-&gt;rect().bottomLeft() - QPoint(0, 1), widget()-&gt;rect().bottomRight() - QPoint(0, 1));
++
++ // outer lines
++ // #CFD7DF
++ painter.setPen(QColor(207, 215, 223));
++ painter.drawLine(widget()-&gt;rect().topLeft() + QPoint(0, titleHeight + borderSpace + 1), widget()-&gt;rect().topRight() + QPoint(0, titleHeight + borderSpace + 1));
++ painter.drawLine(widget()-&gt;rect().topLeft(), widget()-&gt;rect().bottomLeft());
++ painter.drawLine(widget()-&gt;rect().topRight(), widget()-&gt;rect().bottomRight());
++ painter.drawLine(widget()-&gt;rect().bottomLeft(), widget()-&gt;rect().bottomRight());
++ painter.restore();
++ }
++
++ QFont font = options()-&gt;font(isActive());
++ // Maybe we can add a checkbox for config to use fixed window title text size
++ //font.setPointSize(10);
++ font.setBold(true);
++ painter.setFont(font);
++
++ //if (tabCount &lt;= 1){
++ if (isActive()){
++ option.palette.setColor(QPalette::Highlight, options()-&gt;color(ColorTitleBar, true));
++ option.palette.setColor(QPalette::HighlightedText, options()-&gt;color(ColorFont, true));
++ option.palette.setColor(QPalette::Window, options()-&gt;color(ColorTitleBar, false));
++ option.palette.setColor(QPalette::WindowText, options()-&gt;color(ColorFont, false));
++ } else{
++ option.palette.setColor(QPalette::Inactive, QPalette::Highlight, options()-&gt;color(ColorTitleBar, false));
++ option.palette.setColor(QPalette::Inactive, QPalette::HighlightedText, options()-&gt;color(ColorFont, false));
++ option.palette.setColor(QPalette::Inactive, QPalette::Window, options()-&gt;color(ColorTitleBar, false));
++ option.palette.setColor(QPalette::Inactive, QPalette::WindowText, options()-&gt;color(ColorFont, false));
++ }
++ painter.drawComplexControl(QStyle::CC_TitleBar, option);
++ //}
++
++ int captionWidth = width() - buttonsLeftWidth() - buttonsRightWidth() - (border ? 16 : 4);
++ option.text = option.fontMetrics.elidedText(caption(), Qt::ElideMiddle, captionWidth);
++ QRect labelRect = QRect((border ? 8 : 2) + buttonsLeftWidth(), 0, captionWidth, titleHeight + borderSpace + 4);
++
++ labelRect.adjust(0, -2, 0, -2);
++ if (titleBarTextAlign &amp; Qt::AlignLeft)
++ labelRect.adjust(3, 0, 0, 0);
++ else if (titleBarTextAlign &amp; Qt::AlignRight)
++ labelRect.adjust(0, 0, -3, 0);
++
++ QFontMetrics metrics(font);
++ QString string = metrics.elidedText(option.text, Qt::ElideRight, labelRect.width());
++
++ // deleting unneeded close buttons
++ while ((tabCount &lt; closeButtonsList.size()) || ((tabCount == 1) &amp;&amp; (closeButtonsList.size() &gt; 0))){
++ IaOraDecorationButton *button = closeButtonsList.takeFirst();
++
++ button-&gt;hide();
++ button-&gt;deleteLater();
++ }
++
++ if (tabCount &gt; 1){ // TABS
++ //painter.fillRect(option.rect.adjusted(0, 0, 0, 2), option.palette.color(QPalette::Window));
++
++ QRect tabRect(labelRect);
++ tabRect.setWidth(tabRect.width() / tabCount + 1);
++ int i;
++
++ for (i = 0; i &lt; tabCount; ++i){
++ if (i == tabCount - 1)
++ tabRect.adjust(0, 0, -3, 0);
++
++ drawTab(painter, tabRect, tabList[i], border, isActive() &amp;&amp; visibleClientGroupItem() == i);
++ // create new close buttons
++ if (closeButtonsOnTabs){
++ if (i &gt;= closeButtonsList.size())
++ closeButtonsList.append(new IaOraDecorationButton(ItemCloseButton, this));
++ //closeButtonsList.append(new IaOraDecorationButton(CloseButton, this));
++
++ //closeButtonsList[i]-&gt;setActive(isActive() &amp;&amp; visibleClientGroupItm() == i);
++ closeButtonsList[i]-&gt;resize(16, 16);
++ closeButtonsList[i]-&gt;move(tabRect.right() - 18, tabRect.top() + (tabRect.height() / 2) - 5);
++ closeButtonsList[i]-&gt;installEventFilter(this);
++ closeButtonsList[i]-&gt;show();
++ }
++
++ tabRect.translate(tabRect.width() - 1, 0);
++ }
++ } else{ // NO TABBED WINDOW
++ // draw the title caption
++ // TODO use MDI code
++ painter.save();
++ qreal opacity = painter.opacity();
++
++ if (option.state &amp; QStyle::State_Active){
++ painter.setOpacity(opacity * 0.9);
++ painter.setPen(Qt::black);
++ painter.drawText(labelRect.adjusted(1, 1, 1, 1), titleBarTextAlign | Qt::TextSingleLine, string);
++ painter.setOpacity(opacity);
++ }
++
++ painter.setPen(options()-&gt;color(ColorFont, isActive()));
++
++ painter.drawText(labelRect, titleBarTextAlign | Qt::TextSingleLine, string);
++ painter.restore();
++ }
++}
++
++bool IaOraDecoration::eventFilter(QObject *object, QEvent *event) // TABS
++{
++ if (!useWindowGrouping)
++ return KCommonDecorationUnstable::eventFilter(object, event);
++
++ // this 'if' is for the tab close buttons
++ if (IaOraDecorationButton *button = dynamic_cast&lt;IaOraDecorationButton *&gt;(object)){
++ if (event-&gt;type() == QEvent::MouseButtonPress)
++ return true;
++ else if (event-&gt;type() == QEvent::MouseButtonRelease){
++ const QMouseEvent *mouseEvent = static_cast&lt;QMouseEvent *&gt;(event);
++
++ if ((mouseEvent-&gt;button() == Qt::LeftButton) &amp;&amp; (button-&gt;rect().contains(mouseEvent-&gt;pos())))
++ closeClientGroupItem(closeButtonsList.indexOf(button));
++ }
++ }
++
++ bool state = false;
++ if (event-&gt;type() == QEvent::MouseButtonPress)
++ state = mouseButtonPressEvent(static_cast&lt;QMouseEvent*&gt;(event));
++ else if (event-&gt;type() == QEvent::MouseButtonRelease &amp;&amp; widget() == object)
++ state = mouseButtonReleaseEvent( static_cast&lt;QMouseEvent*&gt;(event));
++ else if (event-&gt;type() == QEvent::MouseMove)
++ state = mouseMoveEvent(static_cast&lt;QMouseEvent*&gt;(event));
++ else if (event-&gt;type() == QEvent::DragEnter &amp;&amp; widget() == object)
++ state = dragEnterEvent(static_cast&lt;QDragEnterEvent*&gt;(event));
++ else if (event-&gt;type() == QEvent::DragMove &amp;&amp; widget() == object)
++ state = dragMoveEvent(static_cast&lt;QDragMoveEvent*&gt;(event));
++ else if (event-&gt;type() == QEvent::DragLeave &amp;&amp; widget() == object)
++ state = dragLeaveEvent(static_cast&lt;QDragLeaveEvent*&gt;(event));
++ else if (event-&gt;type() == QEvent::Drop &amp;&amp; widget() == object)
++ state = dropEvent(static_cast&lt;QDropEvent*&gt;(event));
++
++ return state || KCommonDecorationUnstable::eventFilter(object, event);
++}
++
++int IaOraDecoration::itemClicked(const QPoint &amp;point, bool between) // TABS
++{
++ QRect frame = widget()-&gt;frameGeometry();
++ QList&lt;ClientGroupItem&gt; list = clientGroupItems();
++ int tabs = list.count();
++ int t_x = titleRect().x();
++ int t_y = frame.y();
++ int t_w = titleRect().width();
++ int t_h = layoutMetric(LM_TitleEdgeTop) + layoutMetric(LM_TitleHeight) + layoutMetric(LM_TitleEdgeBottom);
++ int tabWidth = t_w / tabs;
++
++ if (between) // inserting a new tab between two existing ones
++ t_x -= tabWidth / 2;
++
++ int rem = t_w % tabs;
++ int tab_x = t_x;
++
++ int i;
++ for (i = 0; i &lt; tabs; ++i){
++ QRect tabRect(tab_x, t_y, (i &lt; rem) ? tabWidth + 1 : tabWidth, t_h);
++
++ if (tabRect.contains(point))
++ return i;
++
++ tab_x += tabRect.width();
++ }
++
++ return -1;
++}
++
++bool IaOraDecoration::mouseButtonPressEvent(QMouseEvent *event) // TABS
++{
++ clickPos = widget()-&gt;mapToParent(event-&gt;pos());
++
++ int item = itemClicked(clickPos);
++
++ if (buttonToWindowOperation(event-&gt;button()) == OperationsOp){
++ displayClientMenu(item, widget()-&gt;mapToGlobal(clickPos));
++
++ return true;
++ }
++
++ if (item &gt;= 0){
++ clicking = true;
++ pressedButton = event-&gt;button();
++
++ return true;
++ }
++
++ clicking = false;
++ return false;
++}
++
++bool IaOraDecoration::mouseButtonReleaseEvent(QMouseEvent *event) // TABS
++{
++ releasePos = event-&gt;pos();
++
++ int item = itemClicked(releasePos);
++
++ if ((clicking) &amp;&amp; (item &gt;= 0)){
++ clicking = false;
++ setVisibleClientGroupItem(item);
++
++ return true;
++ }
++
++ clicking = false;
++ return false;
++}
++
++bool IaOraDecoration::mouseMoveEvent(QMouseEvent *event) // TABS
++{
++ QPoint point = event-&gt;pos();
++ int item = itemClicked(point);
++
++ if ((item &gt;= 0) &amp;&amp; (clicking) &amp;&amp;
++ (buttonToWindowOperation(pressedButton) == ClientGroupDragOp) &amp;&amp;
++ ((point - clickPos).manhattanLength()) &gt;= 4){
++ clicking = false;
++ dragging = true;
++
++ QDrag *drag = new QDrag(widget());
++ QMimeData *groupData = new QMimeData();
++
++ groupData-&gt;setData(clientGroupItemDragMimeType(), QString().setNum(itemId(item)).toAscii());
++ drag-&gt;setMimeData(groupData);
++
++ // Create draggable tab pixmap
++ QList&lt;ClientGroupItem&gt; tabList = clientGroupItems();
++ const int tabCount = tabList.count();
++ QRect frame(QPoint(0, 0), widget()-&gt;frameGeometry().size());
++ QRect titlebar(frame.topLeft(),
++ QSize(frame.width(), layoutMetric(LM_TitleEdgeTop) +
++ layoutMetric(LM_TitleHeight) +
++ layoutMetric(LM_TitleEdgeBottom) - 1));
++ QRect geom = titleRect().adjusted(-1, -layoutMetric(LM_TitleEdgeTop), 1, 0);
++
++ geom.setWidth((geom.width() / tabCount) + 1); // Split titlebar evenly
++ geom.translate((geom.width() * item) - item, 0);
++
++ QPixmap pix(geom.size());
++ QPainter painter(&amp;pix);
++
++ drawTab(painter, QRect(QPoint(0, 0), geom.size()), tabList[item], true, isActive() &amp;&amp; visibleClientGroupItem() == item, true);
++ painter.end();
++
++ QPixmap pix2(geom.size());
++ QPainter painter2(&amp;pix2);
++
++ pix2.fill(Qt::transparent);
++ painter2.setPen(Qt::red);
++
++ int x = 0, y = 0, w = geom.width(), h = geom.height();
++ // top-left
++ painter2.drawLine(x, y, x + 1, y);
++ painter2.drawLine(x, y, x, y + 1);
++ // top-right
++ painter2.drawLine(w - 2, y, w, y);
++ painter2.drawLine(w - 1, y, w - 1, y + 1);
++ // bottom-left
++ painter2.drawLine(x, h - 2, x, h - 1);
++ painter2.drawLine(x, h - 1, x + 1, h - 1);
++ // bottom-right
++ painter2.drawLine(w - 2, h - 1, w, h - 1);
++ painter2.drawLine(w - 1, h - 2, w - 1, h - 1);
++
++ pix.setMask(pix2.createMaskFromColor(Qt::red));
++
++ drag-&gt;setPixmap(pix);
++
++ drag-&gt;setHotSpot(QPoint(point.x() - geom.x(), -1));
++
++ drag-&gt;exec(Qt::MoveAction);
++ dragging = false;
++
++ if ((drag-&gt;target() == 0) &amp;&amp; (tabList.count() &gt; 1)){
++ QPoint pos = QCursor::pos();
++
++ frame.moveTo(pos.x() - point.x(), pos.y() - point.y());
++ removeFromClientGroup(itemClicked(clickPos), frame);
++ }
++
++ return true;
++ }
++
++ return false;
++}
++
++bool IaOraDecoration::dragEnterEvent(QDragEnterEvent *event) // TABS
++{
++ if ((event-&gt;source() != 0) &amp;&amp; (event-&gt;source()-&gt;objectName() == &quot;decoration widget&quot;)){
++ dragging = true;
++ event-&gt;acceptProposedAction();
++
++ QPoint point = widget()-&gt;mapToParent(event-&gt;pos());
++ targetTab = itemClicked(point);
++ widget()-&gt;update();
++
++ return true;
++ }
++
++ return false;
++}
++
++bool IaOraDecoration::dragMoveEvent(QDragMoveEvent *event) // TABS
++{
++ Q_UNUSED(event)
++
++ return false;
++}
++
++bool IaOraDecoration::dragLeaveEvent(QDragLeaveEvent *event) // TABS
++{
++ Q_UNUSED(event)
++
++ return false;
++}
++
++bool IaOraDecoration::dropEvent(QDropEvent *event) // TABS
++{
++ QPoint point = widget()-&gt;mapToParent(event-&gt;pos());
++ dragging = false;
++ int tabClick = itemClicked(point);
++
++ if (tabClick &gt;= 0){
++ const QMimeData *groupData = event-&gt;mimeData();
++
++ if (groupData-&gt;hasFormat(clientGroupItemDragMimeType())){
++ if (widget() == event-&gt;source()){
++ int from = itemClicked(clickPos);
++
++ moveItemInClientGroup(from, itemClicked(point, true));
++ } else{
++ long source = QString(groupData-&gt;data(clientGroupItemDragMimeType())).toLong();
++
++ moveItemToClientGroup(source, itemClicked(point, true));
++ }
++
++ return true;
++ }
++ }
++
++ return false;
++}
++
++/*-----------------------------------------------------------------------*/
++
++IaOraDecorationFactory::IaOraDecorationFactory()
++{
++ loadConfig();
++}
++
++
++IaOraDecorationFactory::~IaOraDecorationFactory()
++{
++ /* */
++}
++
++bool IaOraDecorationFactory::loadConfig()
++{
++ bool changed = false; // if no changes, just return false
++ bool wGrouping, cboTabs;
++ int alignment, brdrSize;
++
++ KConfig *conf = new KConfig(&quot;iaorarc&quot;);
++ KConfigGroup configGroup(conf, &quot;Windeco&quot;);
++
++ brdrSize = configGroup.readEntry(&quot;BorderSize&quot;, 1);
++ alignment = configGroup.readEntry(&quot;TitleBarTextAlignment&quot;, 1);
++ wGrouping = configGroup.readEntry(&quot;UseWindowGrouping&quot;, false); // TABS
++ cboTabs = configGroup.readEntry(&quot;CloseButtonsOnTabs&quot;, true); // TABS
++
++ if (brdrSize != borderSize){
++ borderSize = brdrSize;
++ changed = true;
++ }
++ if (alignment != alignFlag){
++ alignFlag = alignment;
++ changed = true;
++ }
++ if (wGrouping != useWindowGrouping){
++ useWindowGrouping = wGrouping;
++ changed = true;
++ }
++ if (cboTabs != closeButtonsOnTabs){
++ closeButtonsOnTabs = cboTabs;
++ changed = true;
++ }
++
++ delete conf;
++
++ return changed;
++}
++
++KDecoration *IaOraDecorationFactory::createDecoration(KDecorationBridge *bridge)
++{
++ return (new IaOraDecoration(bridge, this))-&gt;decoration();
++}
++
++
++bool IaOraDecorationFactory::reset(unsigned long changed)
++{
++ if (loadConfig())
++ return true;
++ else{
++ resetDecorations(changed);
++ return false;
++ }
++}
++
++
++/*QList&lt;IaOraDecorationFactory::BorderSize&gt; IaOraDecorationFactory::borderSizes() const
++{
++ return QList&lt;BorderSize&gt;()
++ &lt;&lt; BorderTiny
++ &lt;&lt; BorderNormal
++ &lt;&lt; BorderLarge
++ &lt;&lt; BorderVeryLarge
++ &lt;&lt; BorderHuge
++ &lt;&lt; BorderVeryHuge
++ &lt;&lt; BorderOversized;
++}*/
++
++
++bool IaOraDecorationFactory::supports(Ability ability) const
++{
++ switch (ability)
++ {
++ case AbilityAnnounceButtons:
++ case AbilityButtonMenu:
++ case AbilityButtonHelp:
++ case AbilityButtonShade:
++ case AbilityButtonMinimize:
++ case AbilityButtonMaximize:
++ case AbilityButtonClose:
++ case AbilityButtonSpacer:
++ case AbilityButtonOnAllDesktops:
++ case AbilityButtonAboveOthers:
++ case AbilityButtonBelowOthers:
++ return true;
++ case AbilityAnnounceColors:
++ case AbilityColorTitleBack:
++ case AbilityColorTitleFore:
++ return true;
++ case AbilityClientGrouping: // TABS
++ return useWindowGrouping;
++ default:
++ return false;
++ }
++}
++
++
++/*-----------------------------------------------------------------------*/
++
++#include &quot;kwin_iaora.moc&quot;
++
++
+
+
+Property changes on: theme/ia_ora-kde4/kwin-client/kwin_iaora.cpp
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4kwinclientkwin_iaorah">Added: theme/ia_ora-kde4/kwin-client/kwin_iaora.h</a>
+===================================================================
+--- theme/ia_ora-kde4/kwin-client/kwin_iaora.h (rev 0)
++++ theme/ia_ora-kde4/kwin-client/kwin_iaora.h 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,174 @@
++/*
++ * kwin_iaora.h
++ *
++ * Copyright 2008 Gustavo Pichorim Boiko &lt;boiko@mandriva.com&gt;
++ * Skulpture Copyright 2008 Christoph Feck
++ * Copyright 2008-2010 Rodrigo Gonçalves de Oliveira &lt;rodrigo@mandriva.com&gt;
++ *
++ ** Window tabbing feature based on the original code from Tabstrip KWin window decoration
++ ** Copyright (C) 2009 Jorge Mata &lt;matamax123@gmail.com&gt;
++ ** Copyright (C) 2009 Lucas Murray &lt;lmurray@undefinedfire.com&gt;
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 3 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ */
++
++#ifndef KWIN_IAORA_H
++#define KWIN_IAORA_H 1
++
++#include &lt;QColor&gt;
++
++typedef struct
++{
++ QColor gray[7];
++ QColor color[5];
++ QColor black;
++ QColor white;
++} ColorData;
++
++/*-----------------------------------------------------------------------*/
++
++#include &lt;kcommondecoration.h&gt;
++class QStyleOptionButton;
++
++class IaOraDecorationButton : public KCommonDecorationButton
++{
++ Q_OBJECT
++
++ public:
++ IaOraDecorationButton(ButtonType type, KCommonDecoration *parent);
++ virtual ~IaOraDecorationButton();
++ virtual void reset(unsigned long changed);
++
++ protected:
++ virtual void paintEvent(QPaintEvent *event);
++
++ protected:
++ void initStyleOption(QStyleOptionButton &amp;opt);
++
++ private:
++ void enterEvent(QEvent *e);
++ void leaveEvent(QEvent *e);
++ void init();
++ bool m_isHover;
++};
++
++
++/*-----------------------------------------------------------------------*/
++
++class QStyleOption;
++
++class IaOraDecoration : public KCommonDecorationUnstable // TABS
++//class IaOraDecoration : public KCommonDecoration
++{
++ Q_OBJECT
++
++ public:
++ IaOraDecoration(KDecorationBridge *bridge, KDecorationFactory *factory);
++ virtual ~IaOraDecoration();
++
++ public:
++ virtual QString visibleName() const;
++ virtual bool decorationBehaviour(DecorationBehaviour behaviour) const;
++ virtual int layoutMetric(LayoutMetric lm, bool respectWindowState = true, const KCommonDecorationButton *button = 0) const;
++ virtual void updateWindowShape();
++
++ virtual void init();
++ virtual KCommonDecorationButton *createButton(ButtonType type);
++
++ virtual void paintEvent(QPaintEvent *event);
++
++ // tabbing related
++ virtual bool eventFilter(QObject *object, QEvent *event);
++ int itemClicked(const QPoint &amp;point, bool between = false);
++ bool mouseButtonPressEvent(QMouseEvent *event);
++ bool mouseButtonReleaseEvent(QMouseEvent *event);
++ bool mouseMoveEvent(QMouseEvent *event);
++ bool dragEnterEvent(QDragEnterEvent *event);
++ bool dragMoveEvent(QDragMoveEvent *event);
++ bool dragLeaveEvent(QDragLeaveEvent *event);
++ bool dropEvent(QDropEvent *event);
++ //
++
++ protected:
++ void initStyleOption(QStyleOption &amp;opt);
++
++ private:
++ static ColorData *lookupData(const QPalette &amp;pal);
++
++ // load the configuration
++ void loadConfig();
++
++ // draw a tab for some application
++ void drawTab(QPainter &amp;painter, const QRect &amp;rect, ClientGroupItem &amp;item, bool border, bool active, bool dragging = false); // TABS
++
++ // use tabbing feature?
++ bool useWindowGrouping; // TABS
++ bool closeButtonsOnTabs; // TABS
++ // what kind of border we're using
++ int borderSize;
++ // just the titlebar text alignment
++ int titleBarTextAlign;
++
++ /* cached style hints and pixel metrics */
++ bool coloredFrame;
++ bool contrastFrame;
++ bool noBorder;
++ bool autoRaise;
++ int titleHeight;
++ int borderWidth;
++
++ // tabbing related
++ QPoint clickPos, releasePos;
++ Qt::MouseButton pressedButton;
++ QList&lt;IaOraDecorationButton*&gt; closeButtonsList;
++ bool clicking, dragging;
++ int targetTab;
++ //
++};
++
++
++/*-----------------------------------------------------------------------*/
++
++#include &lt;kdecorationfactory.h&gt;
++
++class IaOraDecorationFactory : public KDecorationFactoryUnstable // TABS
++//class IaOraDecorationFactory : public KDecorationFactory
++{
++ public:
++ IaOraDecorationFactory();
++ virtual ~IaOraDecorationFactory();
++
++ public:
++ bool loadConfig();
++ virtual KDecoration *createDecoration(KDecorationBridge *bridge);
++ virtual bool reset(unsigned long changed);
++ //virtual QList&lt;BorderSize&gt; borderSizes() const;
++ virtual bool supports(Ability ability) const;
++
++ private:
++ int borderSize;
++ int alignFlag;
++ bool useWindowGrouping; // TABS
++ bool closeButtonsOnTabs; // TABS
++
++};
++
++
++/*-----------------------------------------------------------------------*/
++
++#endif
++
++
+
+
+Property changes on: theme/ia_ora-kde4/kwin-client/kwin_iaora.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4srcdirectory">Added: theme/ia_ora-kde4/src/.directory</a>
+===================================================================
+--- theme/ia_ora-kde4/src/.directory (rev 0)
++++ theme/ia_ora-kde4/src/.directory 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,2 @@
++[Dolphin]
++Timestamp=2008,3,30,17,28,53
+
+<a id="themeia_orakde4srcCMakeListstxt">Added: theme/ia_ora-kde4/src/CMakeLists.txt</a>
+===================================================================
+--- theme/ia_ora-kde4/src/CMakeLists.txt (rev 0)
++++ theme/ia_ora-kde4/src/CMakeLists.txt 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,41 @@
++project (kstyle-iaora)
++
++set (STYLE_SOURCES iaorastyle.cpp
++ iaorastyle_button.cpp
++ iaorastyle_icons.cpp
++ iaorastyle_scrollbar.cpp
++ iaorastyle_tabbar.cpp
++ iaorastyle_dial.cpp
++ iaorastyle_menu.cpp
++ iaorastyle_slider.cpp
++ iaorastyle_window.cpp
++ iaorastyle_frame.cpp
++ iaorastyle_progressbar.cpp
++ iaorastyle_symbols.cpp
++ iaorastyle_combobox.cpp
++ iaorastyle_spinbox.cpp
++ iaorastyle_q3listview.cpp
++ iaorastyle_toolbutton.cpp )
++
++set (iaora-kde_SOURCES iaora-kde.cpp ${STYLE_SOURCES})
++set (iaora-qt_SOURCES iaora-qt.cpp ${STYLE_SOURCES})
++
++if (KDE4_FOUND)
++ kde4_add_plugin (iaora-kde ${iaora-kde_SOURCES})
++ target_link_libraries (iaora-kde ${KDE4_KDEUI_LIBS})
++ install (TARGETS iaora-kde DESTINATION ${PLUGIN_INSTALL_DIR}/plugins/styles)
++endif (KDE4_FOUND)
++
++ qt4_automoc (${iaora-qt_SOURCES})
++ add_library (iaora-qt SHARED ${iaora-qt_SOURCES})
++ target_link_libraries (iaora-qt ${QT_QTCORE_LIBRARY} ${QT_QTGUI_LIBRARY})
++ install (TARGETS iaora-qt LIBRARY DESTINATION ${QT_PLUGINS_DIR}/styles)
++ #install (FILES qtiaorarc DESTINATION ${KCFG_INSTALL_DIR})
++ install (FILES iaoracolors DESTINATION /etc )
++
++if (KDE4_FOUND)
++ install (FILES iaora-kde.themerc DESTINATION ${DATA_INSTALL_DIR}/kstyle/themes)
++ #install (FILES qtiaorarc DESTINATION ${KCFG_INSTALL_DIR})
++ #add_subdirectory (config)
++endif (KDE4_FOUND)
++
+
+
+Property changes on: theme/ia_ora-kde4/src/CMakeLists.txt
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4srcconfigCMakeListstxt">Added: theme/ia_ora-kde4/src/config/CMakeLists.txt</a>
+===================================================================
+--- theme/ia_ora-kde4/src/config/CMakeLists.txt (rev 0)
++++ theme/ia_ora-kde4/src/config/CMakeLists.txt 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,8 @@
++set (kstyle_skulpture_config_SOURCES sk_config.cpp)
++qt4_add_resources (kstyle_skulpture_config_SOURCES sk_preview2.qrc)
++kde4_add_ui_files (kstyle_skulpture_config_SOURCES sk_dialog.ui sk_preview1.ui sk_preview2.ui)
++
++kde4_add_plugin (kstyle_skulpture_config ${kstyle_skulpture_config_SOURCES})
++target_link_libraries (kstyle_skulpture_config ${KDE4_KDEUI_LIBS})
++install (TARGETS kstyle_skulpture_config DESTINATION ${PLUGIN_INSTALL_DIR})
++
+
+
+Property changes on: theme/ia_ora-kde4/src/config/CMakeLists.txt
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4srcconfigimagesREADME">Added: theme/ia_ora-kde4/src/config/images/README</a>
+===================================================================
+--- theme/ia_ora-kde4/src/config/images/README (rev 0)
++++ theme/ia_ora-kde4/src/config/images/README 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1 @@
++Images courtesy of Oxygen project
+
+<a id="themeia_orakde4srcconfigsk_configcpp">Added: theme/ia_ora-kde4/src/config/sk_config.cpp</a>
+===================================================================
+--- theme/ia_ora-kde4/src/config/sk_config.cpp (rev 0)
++++ theme/ia_ora-kde4/src/config/sk_config.cpp 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,320 @@
++/*
++ * sk_config.cpp
++ *
++ */
++
++#include &quot;sk_config.h&quot;
++#include &lt;QtCore/QSettings&gt;
++#include &lt;QtCore/QDir&gt;
++#include &lt;QtCore/QUuid&gt;
++#include &lt;QtGui/QMdiSubWindow&gt;
++#include &lt;QtGui/QCloseEvent&gt;
++#include &lt;QtGui/QStyleFactory&gt;
++#include &lt;QtGui/QApplication&gt;
++#include &lt;QtGui/QDialog&gt;
++#include &lt;QtCore/QDebug&gt;
++#include &lt;KDE/KGlobal&gt;
++#include &lt;cstdio&gt;
++
++
++/*-----------------------------------------------------------------------*/
++
++extern &quot;C&quot; KDE_EXPORT QWidget* allocate_kstyle_config(QWidget* parent)
++{
++ return new SkulptureStyleConfig(parent);
++}
++
++
++/*-----------------------------------------------------------------------*/
++
++#include &quot;ui_sk_preview1.h&quot;
++
++class Preview1Window : public QDialog, private Ui::SkulpturePreview1
++{
++ public:
++ explicit Preview1Window(QWidget *parent = 0);
++
++ public:
++ virtual void closeEvent(QCloseEvent *e);
++
++ private:
++ void init();
++};
++
++
++Preview1Window::Preview1Window(QWidget *parent)
++ : QDialog(parent)
++{
++ init();
++}
++
++
++void Preview1Window::closeEvent(QCloseEvent *e)
++{
++ e-&gt;ignore();
++}
++
++
++void Preview1Window::init()
++{
++ setWindowFlags(Qt::Widget);
++ setupUi(this);
++}
++
++
++/*-----------------------------------------------------------------------*/
++
++#include &quot;ui_sk_preview2.h&quot;
++
++class Preview2Window : public QMainWindow, private Ui::SkulpturePreview2
++{
++ public:
++ explicit Preview2Window(QWidget *parent = 0);
++
++ public:
++ virtual void closeEvent(QCloseEvent *e);
++
++ private:
++ void init();
++};
++
++
++Preview2Window::Preview2Window(QWidget *parent)
++ : QMainWindow(parent)
++{
++ init();
++}
++
++
++void Preview2Window::closeEvent(QCloseEvent *e)
++{
++ e-&gt;ignore();
++}
++
++
++void Preview2Window::init()
++{
++ setWindowFlags(Qt::Widget);
++ setupUi(this);
++}
++
++
++/*-----------------------------------------------------------------------*/
++
++class KThemePreview::Private
++{
++ public:
++ QWidget *q;
++ QMdiArea *area;
++
++ public:
++ void init();
++};
++
++
++KThemePreview::KThemePreview(QWidget *parent)
++ : QWidget(parent), d(new Private)
++{
++ d-&gt;q = this;
++}
++
++
++KThemePreview::~KThemePreview()
++{
++ delete d;
++}
++
++
++/*-----------------------------------------------------------------------*/
++
++void SkulptureStyleConfig::subWindowActivated(QMdiSubWindow *window)
++{
++ if (window) {
++ QWidget *parent = window-&gt;parentWidget();
++ if (parent) {
++ const QList&lt;QObject *&gt; children = parent-&gt;children();
++ foreach (QObject *child, children) {
++ QWidget *widget = qobject_cast&lt;QWidget *&gt;(child);
++ if (widget) {
++ widget-&gt;setWindowTitle(QString::fromUtf8(child == window ? &quot;Active Window&quot; : &quot;Inactive Window&quot;));
++ }
++ }
++ }
++ }
++}
++
++
++void SkulptureStyleConfig::updatePreview()
++{
++ QStyle *style = QStyleFactory::create(QString::fromUtf8(&quot;skulpture&quot;));
++ if (style) {
++ int index = style-&gt;metaObject()-&gt;indexOfMethod(&quot;skulpturePrivateMethod(SkulpturePrivateMethod,void*)&quot;);
++ if (index &gt;= 0) {
++ QUuid uuid = QUuid::createUuid();
++ QDir tempDir = QDir::temp();
++ // ### we may add a way to avoid the file completely.
++ QString fileName = QString::fromUtf8(&quot;skulpture-temp-settings-&quot;) + uuid.toString() + QString::fromUtf8(&quot;.ini&quot;);
++ QString absFileName = tempDir.absoluteFilePath(fileName);
++ {
++ QSettings s(absFileName, QSettings::IniFormat);
++ saveSettings(s);
++ // make visible in other process
++ s.sync();
++ }
++ SkMethodDataSetSettingsFileName data;
++ data.version = 1;
++ data.fileName = absFileName;
++
++ int result;
++ int id = SkulptureStyle::SPM_SetSettingsFileName;
++ void *dat = &amp;data;
++ void *param[] = {&amp;result, &amp;id, &amp;dat};
++ style-&gt;qt_metacall(QMetaObject::InvokeMetaMethod, index, param);
++
++ tempDir.remove(fileName);
++
++ QList&lt;QMdiSubWindow *&gt; windows = mdiArea-&gt;findChildren&lt;QMdiSubWindow *&gt;();
++ foreach (QMdiSubWindow *window, windows) {
++ window-&gt;setFocusPolicy(Qt::ClickFocus);
++ QList&lt;QWidget *&gt; widgets = window-&gt;widget()-&gt;findChildren&lt;QWidget *&gt;();
++ foreach (QWidget *widget, widgets) {
++ // TODO: only update widgets that have changes in settings
++ widget-&gt;setStyle(style);
++ widget-&gt;setFocusPolicy(Qt::ClickFocus);
++ }
++ }
++ }
++ }
++};
++
++
++/*-----------------------------------------------------------------------*/
++
++SkulptureStyleConfig::SkulptureStyleConfig(QWidget *parent)
++ : QWidget(parent)
++{
++ init();
++}
++
++
++void SkulptureStyleConfig::init()
++{
++ KGlobal::locale()-&gt;insertCatalog(QString::fromAscii(&quot;kstyle_skulpture_config&quot;));
++ setupUi(this);
++ mdiArea-&gt;setMinimumSize(QSize(500, 290));
++ mdiArea-&gt;setBackground(QColor(120, 120, 150));
++ load();
++// KConfig wm(QString::fromAscii(&quot;kwinskulpturerc&quot;), KConfig::FullConfig);
++// KConfigGroup group = wm.group(&quot;WM&quot;);
++// QColor activeBackground;
++// QString c = group.readEntry(&quot;activeBackground&quot;);
++// qDebug() &lt;&lt; &quot;activeBackground = &quot; &lt;&lt; c;
++ connect(this, SIGNAL(changed(bool)), this, SLOT(updatePreview()));
++ connect(mdiArea, SIGNAL(subWindowActivated(QMdiSubWindow *)), this, SLOT(subWindowActivated(QMdiSubWindow *)));
++ connect(cbAnimateProgressBars, SIGNAL(toggled(bool)), this, SLOT(updateChanged()));
++ connect(cbAllowScrollBarSliderToCoverArrows, SIGNAL(toggled(bool)), this, SLOT(updateChanged()));
++ connect(cbHideShortcutUnderlines, SIGNAL(toggled(bool)), this, SLOT(updateChanged()));
++#if 1
++#if 1
++ QMdiSubWindow *previewwindow2 = new QMdiSubWindow(mdiArea);
++// previewwindow2-&gt;setObjectName(QString::fromAscii(&quot;SkulpturePreviewWindow&quot;));
++// previewwindow2-&gt;setProperty(&quot;sk_kwin_activeBackground&quot;,
++ previewwindow2-&gt;setStyle(QStyleFactory::create(QString::fromUtf8(&quot;skulpture&quot;)));
++ previewwindow2-&gt;setWidget(new Preview2Window(previewwindow2));
++ previewwindow2-&gt;setGeometry(107, 7, 450, 245);
++#endif
++#if 1
++ QMdiSubWindow *previewwindow1 = new QMdiSubWindow(mdiArea);
++// previewwindow1-&gt;setObjectName(QString::fromAscii(&quot;SkulpturePreviewWindow&quot;));
++ previewwindow1-&gt;setStyle(QStyleFactory::create(QString::fromUtf8(&quot;skulpture&quot;)));
++ previewwindow1-&gt;setWidget(new Preview1Window(previewwindow1));
++ previewwindow1-&gt;setGeometry(7, 35, 450, 245);
++#endif
++ updatePreview();
++#else
++ mdiArea-&gt;hide();
++#endif
++}
++
++
++QSize SkulptureStyleConfig::sizeHint() const
++{
++ return QSize(570, 0);
++}
++
++
++SkulptureStyleConfig::~SkulptureStyleConfig()
++{
++ KGlobal::locale()-&gt;removeCatalog(QString::fromAscii(&quot;kstyle_skulpture_config&quot;));
++}
++
++
++/*-----------------------------------------------------------------------*/
++
++void SkulptureStyleConfig::loadSettings(QSettings &amp;s)
++{
++ savedAnimateProgressBars = s.value(QString::fromAscii(&quot;ProgressBar/AnimateProgressBars&quot;), true).toBool();
++ savedAllowScrollBarSliderToCoverArrows = s.value(QString::fromAscii(&quot;ScrollBar/AllowScrollBarSliderToCoverArrows&quot;), true).toBool();
++ savedHideShortcutUnderlines = s.value(QString::fromAscii(&quot;General/HideShortcutUnderlines&quot;), true).toBool();
++ apply();
++}
++
++
++void SkulptureStyleConfig::saveSettings(QSettings &amp;s)
++{
++ s.setValue(QString::fromAscii(&quot;ProgressBar/AnimateProgressBars&quot;), cbAnimateProgressBars-&gt;isChecked());
++ s.setValue(QString::fromAscii(&quot;ScrollBar/AllowScrollBarSliderToCoverArrows&quot;), cbAllowScrollBarSliderToCoverArrows-&gt;isChecked());
++ s.setValue(QString::fromAscii(&quot;General/HideShortcutUnderlines&quot;), cbHideShortcutUnderlines-&gt;isChecked());
++}
++
++
++void SkulptureStyleConfig::load()
++{
++ QSettings s(QSettings::IniFormat, QSettings::UserScope, QString::fromUtf8(&quot;SkulptureStyle&quot;), QString::fromUtf8(&quot;&quot;));
++ loadSettings(s);
++}
++
++
++void SkulptureStyleConfig::save()
++{
++ QSettings s(QSettings::IniFormat, QSettings::UserScope, QString::fromUtf8(&quot;SkulptureStyle&quot;), QString::fromUtf8(&quot;&quot;));
++ saveSettings(s);
++}
++
++
++void SkulptureStyleConfig::defaults()
++{
++ cbAnimateProgressBars-&gt;setChecked(true);
++ cbAllowScrollBarSliderToCoverArrows-&gt;setChecked(true);
++ cbHideShortcutUnderlines-&gt;setChecked(true);
++}
++
++
++/*-----------------------------------------------------------------------*/
++
++void SkulptureStyleConfig::apply()
++{
++ cbAnimateProgressBars-&gt;setChecked(savedAnimateProgressBars);
++ cbAllowScrollBarSliderToCoverArrows-&gt;setChecked(savedAllowScrollBarSliderToCoverArrows);
++ cbHideShortcutUnderlines-&gt;setChecked(savedHideShortcutUnderlines);
++}
++
++
++void SkulptureStyleConfig::updateChanged()
++{
++ if (cbAnimateProgressBars-&gt;isChecked() == savedAnimateProgressBars
++ &amp;&amp; cbAllowScrollBarSliderToCoverArrows-&gt;isChecked() == savedAllowScrollBarSliderToCoverArrows
++ &amp;&amp; cbHideShortcutUnderlines-&gt;isChecked() == savedHideShortcutUnderlines
++ ) {
++ emit changed(false);
++ } else {
++ emit changed(true);
++ }
++}
++
++
++/*-----------------------------------------------------------------------*/
++
++#include &quot;sk_config.moc&quot;
++
++
+
+
+Property changes on: theme/ia_ora-kde4/src/config/sk_config.cpp
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4srcconfigsk_configh">Added: theme/ia_ora-kde4/src/config/sk_config.h</a>
+===================================================================
+--- theme/ia_ora-kde4/src/config/sk_config.h (rev 0)
++++ theme/ia_ora-kde4/src/config/sk_config.h 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,155 @@
++/*
++ * sk_config.h
++ *
++ */
++
++#ifndef SKULPTURE_CONFIG_H
++#define SKULPTURE_CONFIG_H 1
++
++
++/*-----------------------------------------------------------------------*/
++
++#include &lt;QtGui/QWidget&gt;
++#include &quot;ui_sk_dialog.h&quot;
++class QSettings;
++class QMdiSubWindow;
++
++class SkulptureStyleConfig : public QWidget, private Ui::SkulptureStyleDialog
++{
++ Q_OBJECT
++
++ public:
++ explicit SkulptureStyleConfig(QWidget* parent = 0);
++ virtual ~SkulptureStyleConfig();
++
++ virtual QSize sizeHint() const;
++
++ Q_SIGNALS:
++ void changed(bool);
++
++ public Q_SLOTS:
++ void save();
++ void defaults();
++
++ protected:
++ void load();
++ void apply();
++ void saveSettings(QSettings &amp;settings);
++ void loadSettings(QSettings &amp;settings);
++
++ protected Q_SLOTS:
++ void updateChanged();
++ void updatePreview();
++
++ private Q_SLOTS:
++ void subWindowActivated(QMdiSubWindow *window);
++
++ private:
++ void init();
++
++ private:
++ bool savedAnimateProgressBars;
++ bool savedAllowScrollBarSliderToCoverArrows;
++ bool savedHideShortcutUnderlines;
++};
++
++
++/*-----------------------------------------------------------------------*/
++
++enum ThemeCategory {
++ Colors,
++ Fonts, // text attributes
++ Frames, // style of layout
++ Layout, // sizing, spacing
++ Decorations, // grips etc.
++ Gradients,
++ Accessibility,
++ Icons,
++ Effects, // animations, fading, light
++ Cursors,
++ Sounds,
++};
++
++
++/*-----------------------------------------------------------------------*/
++
++class KThemePreview : public QWidget
++{
++ Q_OBJECT
++
++ public:
++ enum ThemeRole { General, Fixed, Small, Toolbar, MainToolbar, Menu, Window, TaskBar, Desktop };
++
++ public:
++ explicit KThemePreview(QWidget *parent = 0);
++ virtual ~KThemePreview();
++
++ public:
++ using QWidget::setFont;
++ void setFont(ThemeRole role, const QFont &amp;font);
++ // TODO font settings, such as antialiasing and hinting
++
++ void setIconSize(ThemeRole role, const QSize &amp;size);
++ void setIconTheme(const QString &amp;iconTheme);
++ // TODO icon effects, icon animation, double size
++
++ void setWindowDecoration(const QString &amp;windowDecoration);
++ // TODO window buttons, window theme settings
++
++ // setStyle(QStyle *);
++ void setSkulpturePrivateSettings(QSettings &amp;s);
++ // TODO style effects, toolbar options
++
++ protected:
++ void addWindow(QWidget *window);
++ void addPage(QWidget *widget);
++
++ void removeWindow(QWidget *window);
++ void removePage(QWidget *page);
++
++ private:
++ class Private;
++ Private * const d;
++};
++
++
++/*-----------------------------------------------------------------------*/
++
++#include &lt;QtGui/QStyle&gt;
++
++struct SkMethodData
++{
++ int version;
++};
++
++
++struct SkMethodDataSetSettingsFileName : public SkMethodData
++{
++ // in version 1
++ QString fileName;
++};
++
++
++class SkulptureStyle : public QStyle
++{
++ Q_OBJECT
++
++ public:
++ // internal, reserved for future use
++ enum SkulpturePrivateMethod {
++ SPM_SupportedMethods = 0,
++ SPM_SetSettingsFileName = 1,
++ };
++
++ public Q_SLOTS:
++ int skulpturePrivateMethod(SkulpturePrivateMethod /*id*/, void */*data*/ = 0) {
++ return 0;
++ }
++};
++
++
++/*-----------------------------------------------------------------------*/
++
++#endif
++
++
+
+
+Property changes on: theme/ia_ora-kde4/src/config/sk_config.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4srcconfigsk_dialogui">Added: theme/ia_ora-kde4/src/config/sk_dialog.ui</a>
+===================================================================
+--- theme/ia_ora-kde4/src/config/sk_dialog.ui (rev 0)
++++ theme/ia_ora-kde4/src/config/sk_dialog.ui 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,90 @@
++&lt;ui version=&quot;4.0&quot; &gt;
++ &lt;class&gt;SkulptureStyleDialog&lt;/class&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;SkulptureStyleDialog&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;0&lt;/y&gt;
++ &lt;width&gt;357&lt;/width&gt;
++ &lt;height&gt;386&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;layout class=&quot;QVBoxLayout&quot; name=&quot;verticalLayout&quot; &gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QMdiArea&quot; name=&quot;mdiArea&quot; &gt;
++ &lt;property name=&quot;frameShape&quot; &gt;
++ &lt;enum&gt;QFrame::StyledPanel&lt;/enum&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;frameShadow&quot; &gt;
++ &lt;enum&gt;QFrame::Sunken&lt;/enum&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QGroupBox&quot; name=&quot;groupBox&quot; &gt;
++ &lt;property name=&quot;title&quot; &gt;
++ &lt;string&gt;General&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;layout class=&quot;QVBoxLayout&quot; &gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QCheckBox&quot; name=&quot;cbAnimateProgressBars&quot; &gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Animate Progress Bars&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QCheckBox&quot; name=&quot;cbAllowScrollBarSliderToCoverArrows&quot; &gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Allow Scroll Bar Handle to Cover Arrows&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QCheckBox&quot; name=&quot;cbHideShortcutUnderlines&quot; &gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Hide Shortcut Underlines&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;spacer&gt;
++ &lt;property name=&quot;orientation&quot; &gt;
++ &lt;enum&gt;Qt::Vertical&lt;/enum&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;sizeHint&quot; stdset=&quot;0&quot; &gt;
++ &lt;size&gt;
++ &lt;width&gt;20&lt;/width&gt;
++ &lt;height&gt;0&lt;/height&gt;
++ &lt;/size&gt;
++ &lt;/property&gt;
++ &lt;/spacer&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;zorder&gt;groupBox&lt;/zorder&gt;
++ &lt;zorder&gt;mdiArea&lt;/zorder&gt;
++ &lt;zorder&gt;cbAnimateProgressBars&lt;/zorder&gt;
++ &lt;/widget&gt;
++ &lt;resources/&gt;
++ &lt;connections/&gt;
++ &lt;designerdata&gt;
++ &lt;property name=&quot;gridDeltaX&quot; &gt;
++ &lt;number&gt;10&lt;/number&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;gridDeltaY&quot; &gt;
++ &lt;number&gt;10&lt;/number&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;gridSnapX&quot; &gt;
++ &lt;bool&gt;true&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;gridSnapY&quot; &gt;
++ &lt;bool&gt;true&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;gridVisible&quot; &gt;
++ &lt;bool&gt;false&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;/designerdata&gt;
++&lt;/ui&gt;
+
+<a id="themeia_orakde4srcconfigsk_preview1ui">Added: theme/ia_ora-kde4/src/config/sk_preview1.ui</a>
+===================================================================
+--- theme/ia_ora-kde4/src/config/sk_preview1.ui (rev 0)
++++ theme/ia_ora-kde4/src/config/sk_preview1.ui 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,671 @@
++&lt;ui version=&quot;4.0&quot; &gt;
++ &lt;class&gt;SkulpturePreview1&lt;/class&gt;
++ &lt;widget class=&quot;QDialog&quot; name=&quot;SkulpturePreview1&quot; &gt;
++ &lt;layout class=&quot;QVBoxLayout&quot; name=&quot;verticalLayout_9&quot; &gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QSplitter&quot; name=&quot;splitter&quot; &gt;
++ &lt;property name=&quot;orientation&quot; &gt;
++ &lt;enum&gt;Qt::Horizontal&lt;/enum&gt;
++ &lt;/property&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;layoutWidget&quot; &gt;
++ &lt;layout class=&quot;QVBoxLayout&quot; name=&quot;verticalLayout_7&quot; &gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QPushButton&quot; name=&quot;pushButton_2&quot; &gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Show Disabled&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;checkable&quot; &gt;
++ &lt;bool&gt;true&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;checked&quot; &gt;
++ &lt;bool&gt;false&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;layout class=&quot;QVBoxLayout&quot; name=&quot;verticalLayout_4&quot; &gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QGroupBox&quot; name=&quot;groupBox&quot; &gt;
++ &lt;property name=&quot;title&quot; &gt;
++ &lt;string&gt;Group&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;layout class=&quot;QVBoxLayout&quot; name=&quot;verticalLayout&quot; &gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QCheckBox&quot; name=&quot;checkBox&quot; &gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Check Box&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;checked&quot; &gt;
++ &lt;bool&gt;true&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QRadioButton&quot; name=&quot;radioButton_2&quot; &gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Radio Button&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;checked&quot; &gt;
++ &lt;bool&gt;true&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QRadioButton&quot; name=&quot;radioButton&quot; &gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Radio Button&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;spacer name=&quot;verticalSpacer&quot; &gt;
++ &lt;property name=&quot;orientation&quot; &gt;
++ &lt;enum&gt;Qt::Vertical&lt;/enum&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;sizeType&quot; &gt;
++ &lt;enum&gt;QSizePolicy::MinimumExpanding&lt;/enum&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;sizeHint&quot; stdset=&quot;0&quot; &gt;
++ &lt;size&gt;
++ &lt;width&gt;20&lt;/width&gt;
++ &lt;height&gt;0&lt;/height&gt;
++ &lt;/size&gt;
++ &lt;/property&gt;
++ &lt;/spacer&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QPushButton&quot; name=&quot;pushButton&quot; &gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Push Button&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QTabWidget&quot; name=&quot;Text&quot; &gt;
++ &lt;property name=&quot;currentIndex&quot; &gt;
++ &lt;number&gt;0&lt;/number&gt;
++ &lt;/property&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;tab&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;0&lt;/y&gt;
++ &lt;width&gt;272&lt;/width&gt;
++ &lt;height&gt;210&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;title&quot; &gt;
++ &lt;string&gt;Widgets&lt;/string&gt;
++ &lt;/attribute&gt;
++ &lt;layout class=&quot;QVBoxLayout&quot; name=&quot;verticalLayout_6&quot; &gt;
++ &lt;item&gt;
++ &lt;layout class=&quot;QHBoxLayout&quot; name=&quot;horizontalLayout_3&quot; &gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;KLineEdit&quot; name=&quot;klineedit&quot; &gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Text Line Edit&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;clickMessage&quot; &gt;
++ &lt;string&gt;LineEdit (empty)&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;showClearButton&quot; stdset=&quot;0&quot; &gt;
++ &lt;bool&gt;true&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QComboBox&quot; name=&quot;comboBox&quot; &gt;
++ &lt;item&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Combo Box&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Element&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/item&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;layout class=&quot;QHBoxLayout&quot; name=&quot;horizontalLayout_2&quot; &gt;
++ &lt;item&gt;
++ &lt;layout class=&quot;QVBoxLayout&quot; name=&quot;verticalLayout_5&quot; &gt;
++ &lt;item&gt;
++ &lt;layout class=&quot;QHBoxLayout&quot; name=&quot;horizontalLayout&quot; &gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QSpinBox&quot; name=&quot;spinBox&quot; &gt;
++ &lt;property name=&quot;maximum&quot; &gt;
++ &lt;number&gt;100&lt;/number&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;value&quot; &gt;
++ &lt;number&gt;70&lt;/number&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QLCDNumber&quot; name=&quot;lcdNumber&quot; &gt;
++ &lt;property name=&quot;intValue&quot; stdset=&quot;0&quot; &gt;
++ &lt;number&gt;70&lt;/number&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QSlider&quot; name=&quot;horizontalSlider&quot; &gt;
++ &lt;property name=&quot;maximum&quot; &gt;
++ &lt;number&gt;100&lt;/number&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;value&quot; &gt;
++ &lt;number&gt;70&lt;/number&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;orientation&quot; &gt;
++ &lt;enum&gt;Qt::Horizontal&lt;/enum&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QDial&quot; name=&quot;dial&quot; &gt;
++ &lt;property name=&quot;sizePolicy&quot; &gt;
++ &lt;sizepolicy vsizetype=&quot;Fixed&quot; hsizetype=&quot;Fixed&quot; &gt;
++ &lt;horstretch&gt;0&lt;/horstretch&gt;
++ &lt;verstretch&gt;0&lt;/verstretch&gt;
++ &lt;/sizepolicy&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;minimumSize&quot; &gt;
++ &lt;size&gt;
++ &lt;width&gt;50&lt;/width&gt;
++ &lt;height&gt;50&lt;/height&gt;
++ &lt;/size&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;maximumSize&quot; &gt;
++ &lt;size&gt;
++ &lt;width&gt;50&lt;/width&gt;
++ &lt;height&gt;50&lt;/height&gt;
++ &lt;/size&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;maximum&quot; &gt;
++ &lt;number&gt;100&lt;/number&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;value&quot; &gt;
++ &lt;number&gt;70&lt;/number&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;notchesVisible&quot; &gt;
++ &lt;bool&gt;true&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;spacer name=&quot;verticalSpacer_2&quot; &gt;
++ &lt;property name=&quot;orientation&quot; &gt;
++ &lt;enum&gt;Qt::Vertical&lt;/enum&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;sizeType&quot; &gt;
++ &lt;enum&gt;QSizePolicy::MinimumExpanding&lt;/enum&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;sizeHint&quot; stdset=&quot;0&quot; &gt;
++ &lt;size&gt;
++ &lt;width&gt;20&lt;/width&gt;
++ &lt;height&gt;0&lt;/height&gt;
++ &lt;/size&gt;
++ &lt;/property&gt;
++ &lt;/spacer&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;Line&quot; name=&quot;line&quot; &gt;
++ &lt;property name=&quot;orientation&quot; &gt;
++ &lt;enum&gt;Qt::Horizontal&lt;/enum&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QProgressBar&quot; name=&quot;progressBar&quot; &gt;
++ &lt;property name=&quot;value&quot; &gt;
++ &lt;number&gt;70&lt;/number&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;Seite_2&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;0&lt;/y&gt;
++ &lt;width&gt;272&lt;/width&gt;
++ &lt;height&gt;210&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;title&quot; &gt;
++ &lt;string&gt;Text&lt;/string&gt;
++ &lt;/attribute&gt;
++ &lt;layout class=&quot;QVBoxLayout&quot; name=&quot;verticalLayout_8&quot; &gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;KTextEdit&quot; name=&quot;ktextedit&quot; &gt;
++ &lt;property name=&quot;html&quot; &gt;
++ &lt;string&gt;&amp;lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
++&amp;lt;html&gt;&amp;lt;head&gt;&amp;lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&amp;lt;style type=&quot;text/css&quot;&gt;
++p, li { white-space: pre-wrap; }
++&amp;lt;/style&gt;&amp;lt;/head&gt;&amp;lt;body style=&quot; font-family:'Sans Serif'; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
++&amp;lt;table border=&quot;0&quot; style=&quot;-qt-table-type: root; margin-top:4px; margin-bottom:4px; margin-left:4px; margin-right:4px;&quot;&gt;
++&amp;lt;tr&gt;
++&amp;lt;td style=&quot;border: none;&quot;&gt;
++&amp;lt;p align=&quot;center&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&amp;lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;Skulpture&amp;lt;/span&gt;&amp;lt;/p&gt;
++&amp;lt;p align=&quot;center&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;&quot;&gt;&amp;lt;span style=&quot; font-weight:400;&quot;&gt;Version 0.1.2&amp;lt;/span&gt;&amp;lt;/p&gt;
++&amp;lt;p align=&quot;center&quot; style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&amp;lt;/p&gt;
++&amp;lt;p align=&quot;center&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&amp;lt;a href=&quot;http://skulpture.maxiom.de/&quot;&gt;&amp;lt;span style=&quot; text-decoration: underline; color:#0057ae;&quot;&gt;http://skulpture.maxiom.de/&amp;lt;/span&gt;&amp;lt;/a&gt;&amp;lt;/p&gt;
++&amp;lt;p align=&quot;center&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&amp;lt;span style=&quot; font-size:8pt;&quot;&gt;Copyright © 2007, 2008 Christoph Feck&amp;lt;/span&gt;&amp;lt;/p&gt;
++&amp;lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&amp;lt;/p&gt;&amp;lt;/td&gt;&amp;lt;/tr&gt;&amp;lt;/table&gt;&amp;lt;/body&gt;&amp;lt;/html&gt;&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;tab_2&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;0&lt;/y&gt;
++ &lt;width&gt;272&lt;/width&gt;
++ &lt;height&gt;210&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;title&quot; &gt;
++ &lt;string&gt;Tree&lt;/string&gt;
++ &lt;/attribute&gt;
++ &lt;layout class=&quot;QVBoxLayout&quot; name=&quot;verticalLayout_3&quot; &gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QTreeWidget&quot; name=&quot;treeWidget&quot; &gt;
++ &lt;column&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Column 1&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/column&gt;
++ &lt;column&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Column 2&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/column&gt;
++ &lt;item&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Element&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;(expandable)&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;item&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Element&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Line 1&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Element&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Line 2&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Element&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Line 3&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/item&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Element&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;(not expandable)&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/item&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;Seite&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;0&lt;/y&gt;
++ &lt;width&gt;272&lt;/width&gt;
++ &lt;height&gt;210&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;title&quot; &gt;
++ &lt;string&gt;Table&lt;/string&gt;
++ &lt;/attribute&gt;
++ &lt;layout class=&quot;QVBoxLayout&quot; name=&quot;verticalLayout_2&quot; &gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QTableWidget&quot; name=&quot;tableWidget&quot; &gt;
++ &lt;row/&gt;
++ &lt;row/&gt;
++ &lt;row/&gt;
++ &lt;row/&gt;
++ &lt;row/&gt;
++ &lt;row/&gt;
++ &lt;row/&gt;
++ &lt;row/&gt;
++ &lt;row/&gt;
++ &lt;row/&gt;
++ &lt;column&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Column 1&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/column&gt;
++ &lt;column&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Column 2&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/column&gt;
++ &lt;column&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Column 3&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/column&gt;
++ &lt;column&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Column 4&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/column&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/widget&gt;
++ &lt;/widget&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/widget&gt;
++ &lt;customwidgets&gt;
++ &lt;customwidget&gt;
++ &lt;class&gt;KLineEdit&lt;/class&gt;
++ &lt;extends&gt;QLineEdit&lt;/extends&gt;
++ &lt;header&gt;klineedit.h&lt;/header&gt;
++ &lt;/customwidget&gt;
++ &lt;customwidget&gt;
++ &lt;class&gt;KTextEdit&lt;/class&gt;
++ &lt;extends&gt;QTextEdit&lt;/extends&gt;
++ &lt;header&gt;ktextedit.h&lt;/header&gt;
++ &lt;/customwidget&gt;
++ &lt;/customwidgets&gt;
++ &lt;resources/&gt;
++ &lt;connections&gt;
++ &lt;connection&gt;
++ &lt;sender&gt;dial&lt;/sender&gt;
++ &lt;signal&gt;valueChanged(int)&lt;/signal&gt;
++ &lt;receiver&gt;progressBar&lt;/receiver&gt;
++ &lt;slot&gt;setValue(int)&lt;/slot&gt;
++ &lt;hints&gt;
++ &lt;hint type=&quot;sourcelabel&quot; &gt;
++ &lt;x&gt;375&lt;/x&gt;
++ &lt;y&gt;126&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;hint type=&quot;destinationlabel&quot; &gt;
++ &lt;x&gt;337&lt;/x&gt;
++ &lt;y&gt;219&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;/hints&gt;
++ &lt;/connection&gt;
++ &lt;connection&gt;
++ &lt;sender&gt;dial&lt;/sender&gt;
++ &lt;signal&gt;valueChanged(int)&lt;/signal&gt;
++ &lt;receiver&gt;lcdNumber&lt;/receiver&gt;
++ &lt;slot&gt;display(int)&lt;/slot&gt;
++ &lt;hints&gt;
++ &lt;hint type=&quot;sourcelabel&quot; &gt;
++ &lt;x&gt;374&lt;/x&gt;
++ &lt;y&gt;131&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;hint type=&quot;destinationlabel&quot; &gt;
++ &lt;x&gt;287&lt;/x&gt;
++ &lt;y&gt;133&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;/hints&gt;
++ &lt;/connection&gt;
++ &lt;connection&gt;
++ &lt;sender&gt;dial&lt;/sender&gt;
++ &lt;signal&gt;valueChanged(int)&lt;/signal&gt;
++ &lt;receiver&gt;spinBox&lt;/receiver&gt;
++ &lt;slot&gt;setValue(int)&lt;/slot&gt;
++ &lt;hints&gt;
++ &lt;hint type=&quot;sourcelabel&quot; &gt;
++ &lt;x&gt;375&lt;/x&gt;
++ &lt;y&gt;111&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;hint type=&quot;destinationlabel&quot; &gt;
++ &lt;x&gt;302&lt;/x&gt;
++ &lt;y&gt;106&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;/hints&gt;
++ &lt;/connection&gt;
++ &lt;connection&gt;
++ &lt;sender&gt;spinBox&lt;/sender&gt;
++ &lt;signal&gt;valueChanged(int)&lt;/signal&gt;
++ &lt;receiver&gt;progressBar&lt;/receiver&gt;
++ &lt;slot&gt;setValue(int)&lt;/slot&gt;
++ &lt;hints&gt;
++ &lt;hint type=&quot;sourcelabel&quot; &gt;
++ &lt;x&gt;245&lt;/x&gt;
++ &lt;y&gt;110&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;hint type=&quot;destinationlabel&quot; &gt;
++ &lt;x&gt;308&lt;/x&gt;
++ &lt;y&gt;220&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;/hints&gt;
++ &lt;/connection&gt;
++ &lt;connection&gt;
++ &lt;sender&gt;spinBox&lt;/sender&gt;
++ &lt;signal&gt;valueChanged(int)&lt;/signal&gt;
++ &lt;receiver&gt;lcdNumber&lt;/receiver&gt;
++ &lt;slot&gt;display(int)&lt;/slot&gt;
++ &lt;hints&gt;
++ &lt;hint type=&quot;sourcelabel&quot; &gt;
++ &lt;x&gt;339&lt;/x&gt;
++ &lt;y&gt;121&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;hint type=&quot;destinationlabel&quot; &gt;
++ &lt;x&gt;339&lt;/x&gt;
++ &lt;y&gt;139&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;/hints&gt;
++ &lt;/connection&gt;
++ &lt;connection&gt;
++ &lt;sender&gt;spinBox&lt;/sender&gt;
++ &lt;signal&gt;valueChanged(int)&lt;/signal&gt;
++ &lt;receiver&gt;dial&lt;/receiver&gt;
++ &lt;slot&gt;setValue(int)&lt;/slot&gt;
++ &lt;hints&gt;
++ &lt;hint type=&quot;sourcelabel&quot; &gt;
++ &lt;x&gt;236&lt;/x&gt;
++ &lt;y&gt;108&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;hint type=&quot;destinationlabel&quot; &gt;
++ &lt;x&gt;379&lt;/x&gt;
++ &lt;y&gt;122&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;/hints&gt;
++ &lt;/connection&gt;
++ &lt;connection&gt;
++ &lt;sender&gt;horizontalSlider&lt;/sender&gt;
++ &lt;signal&gt;valueChanged(int)&lt;/signal&gt;
++ &lt;receiver&gt;progressBar&lt;/receiver&gt;
++ &lt;slot&gt;setValue(int)&lt;/slot&gt;
++ &lt;hints&gt;
++ &lt;hint type=&quot;sourcelabel&quot; &gt;
++ &lt;x&gt;323&lt;/x&gt;
++ &lt;y&gt;79&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;hint type=&quot;destinationlabel&quot; &gt;
++ &lt;x&gt;380&lt;/x&gt;
++ &lt;y&gt;223&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;/hints&gt;
++ &lt;/connection&gt;
++ &lt;connection&gt;
++ &lt;sender&gt;horizontalSlider&lt;/sender&gt;
++ &lt;signal&gt;valueChanged(int)&lt;/signal&gt;
++ &lt;receiver&gt;lcdNumber&lt;/receiver&gt;
++ &lt;slot&gt;display(int)&lt;/slot&gt;
++ &lt;hints&gt;
++ &lt;hint type=&quot;sourcelabel&quot; &gt;
++ &lt;x&gt;359&lt;/x&gt;
++ &lt;y&gt;82&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;hint type=&quot;destinationlabel&quot; &gt;
++ &lt;x&gt;256&lt;/x&gt;
++ &lt;y&gt;136&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;/hints&gt;
++ &lt;/connection&gt;
++ &lt;connection&gt;
++ &lt;sender&gt;horizontalSlider&lt;/sender&gt;
++ &lt;signal&gt;valueChanged(int)&lt;/signal&gt;
++ &lt;receiver&gt;spinBox&lt;/receiver&gt;
++ &lt;slot&gt;setValue(int)&lt;/slot&gt;
++ &lt;hints&gt;
++ &lt;hint type=&quot;sourcelabel&quot; &gt;
++ &lt;x&gt;285&lt;/x&gt;
++ &lt;y&gt;78&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;hint type=&quot;destinationlabel&quot; &gt;
++ &lt;x&gt;260&lt;/x&gt;
++ &lt;y&gt;107&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;/hints&gt;
++ &lt;/connection&gt;
++ &lt;connection&gt;
++ &lt;sender&gt;horizontalSlider&lt;/sender&gt;
++ &lt;signal&gt;valueChanged(int)&lt;/signal&gt;
++ &lt;receiver&gt;dial&lt;/receiver&gt;
++ &lt;slot&gt;setValue(int)&lt;/slot&gt;
++ &lt;hints&gt;
++ &lt;hint type=&quot;sourcelabel&quot; &gt;
++ &lt;x&gt;300&lt;/x&gt;
++ &lt;y&gt;80&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;hint type=&quot;destinationlabel&quot; &gt;
++ &lt;x&gt;380&lt;/x&gt;
++ &lt;y&gt;123&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;/hints&gt;
++ &lt;/connection&gt;
++ &lt;connection&gt;
++ &lt;sender&gt;pushButton_2&lt;/sender&gt;
++ &lt;signal&gt;toggled(bool)&lt;/signal&gt;
++ &lt;receiver&gt;groupBox&lt;/receiver&gt;
++ &lt;slot&gt;setDisabled(bool)&lt;/slot&gt;
++ &lt;hints&gt;
++ &lt;hint type=&quot;sourcelabel&quot; &gt;
++ &lt;x&gt;106&lt;/x&gt;
++ &lt;y&gt;24&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;hint type=&quot;destinationlabel&quot; &gt;
++ &lt;x&gt;104&lt;/x&gt;
++ &lt;y&gt;43&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;/hints&gt;
++ &lt;/connection&gt;
++ &lt;connection&gt;
++ &lt;sender&gt;pushButton_2&lt;/sender&gt;
++ &lt;signal&gt;toggled(bool)&lt;/signal&gt;
++ &lt;receiver&gt;Text&lt;/receiver&gt;
++ &lt;slot&gt;setDisabled(bool)&lt;/slot&gt;
++ &lt;hints&gt;
++ &lt;hint type=&quot;sourcelabel&quot; &gt;
++ &lt;x&gt;117&lt;/x&gt;
++ &lt;y&gt;26&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;hint type=&quot;destinationlabel&quot; &gt;
++ &lt;x&gt;137&lt;/x&gt;
++ &lt;y&gt;40&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;/hints&gt;
++ &lt;/connection&gt;
++ &lt;connection&gt;
++ &lt;sender&gt;pushButton_2&lt;/sender&gt;
++ &lt;signal&gt;toggled(bool)&lt;/signal&gt;
++ &lt;receiver&gt;comboBox&lt;/receiver&gt;
++ &lt;slot&gt;setDisabled(bool)&lt;/slot&gt;
++ &lt;hints&gt;
++ &lt;hint type=&quot;sourcelabel&quot; &gt;
++ &lt;x&gt;83&lt;/x&gt;
++ &lt;y&gt;25&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;hint type=&quot;destinationlabel&quot; &gt;
++ &lt;x&gt;93&lt;/x&gt;
++ &lt;y&gt;191&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;/hints&gt;
++ &lt;/connection&gt;
++ &lt;connection&gt;
++ &lt;sender&gt;pushButton_2&lt;/sender&gt;
++ &lt;signal&gt;toggled(bool)&lt;/signal&gt;
++ &lt;receiver&gt;pushButton&lt;/receiver&gt;
++ &lt;slot&gt;setDisabled(bool)&lt;/slot&gt;
++ &lt;hints&gt;
++ &lt;hint type=&quot;sourcelabel&quot; &gt;
++ &lt;x&gt;66&lt;/x&gt;
++ &lt;y&gt;23&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;hint type=&quot;destinationlabel&quot; &gt;
++ &lt;x&gt;80&lt;/x&gt;
++ &lt;y&gt;225&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;/hints&gt;
++ &lt;/connection&gt;
++ &lt;connection&gt;
++ &lt;sender&gt;dial&lt;/sender&gt;
++ &lt;signal&gt;valueChanged(int)&lt;/signal&gt;
++ &lt;receiver&gt;horizontalSlider&lt;/receiver&gt;
++ &lt;slot&gt;setValue(int)&lt;/slot&gt;
++ &lt;hints&gt;
++ &lt;hint type=&quot;sourcelabel&quot; &gt;
++ &lt;x&gt;376&lt;/x&gt;
++ &lt;y&gt;135&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;hint type=&quot;destinationlabel&quot; &gt;
++ &lt;x&gt;374&lt;/x&gt;
++ &lt;y&gt;83&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;/hints&gt;
++ &lt;/connection&gt;
++ &lt;connection&gt;
++ &lt;sender&gt;spinBox&lt;/sender&gt;
++ &lt;signal&gt;valueChanged(int)&lt;/signal&gt;
++ &lt;receiver&gt;horizontalSlider&lt;/receiver&gt;
++ &lt;slot&gt;setValue(int)&lt;/slot&gt;
++ &lt;hints&gt;
++ &lt;hint type=&quot;sourcelabel&quot; &gt;
++ &lt;x&gt;216&lt;/x&gt;
++ &lt;y&gt;108&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;hint type=&quot;destinationlabel&quot; &gt;
++ &lt;x&gt;225&lt;/x&gt;
++ &lt;y&gt;83&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;/hints&gt;
++ &lt;/connection&gt;
++ &lt;/connections&gt;
++&lt;/ui&gt;
+
+<a id="themeia_orakde4srcconfigsk_preview2qrc">Added: theme/ia_ora-kde4/src/config/sk_preview2.qrc</a>
+===================================================================
+--- theme/ia_ora-kde4/src/config/sk_preview2.qrc (rev 0)
++++ theme/ia_ora-kde4/src/config/sk_preview2.qrc 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,12 @@
++&lt;RCC&gt;
++ &lt;qresource prefix=&quot;skpreview2&quot; &gt;
++ &lt;file&gt;images/view-refresh.png&lt;/file&gt;
++ &lt;file&gt;images/go-previous.png&lt;/file&gt;
++ &lt;file&gt;images/go-next.png&lt;/file&gt;
++ &lt;file&gt;images/document-new.png&lt;/file&gt;
++ &lt;file&gt;images/document-open.png&lt;/file&gt;
++ &lt;file&gt;images/edit-copy.png&lt;/file&gt;
++ &lt;file&gt;images/edit-cut.png&lt;/file&gt;
++ &lt;file&gt;images/edit-paste.png&lt;/file&gt;
++ &lt;/qresource&gt;
++&lt;/RCC&gt;
+
+<a id="themeia_orakde4srcconfigsk_preview2ui">Added: theme/ia_ora-kde4/src/config/sk_preview2.ui</a>
+===================================================================
+--- theme/ia_ora-kde4/src/config/sk_preview2.ui (rev 0)
++++ theme/ia_ora-kde4/src/config/sk_preview2.ui 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,274 @@
++&lt;ui version=&quot;4.0&quot; &gt;
++ &lt;class&gt;SkulpturePreview2&lt;/class&gt;
++ &lt;widget class=&quot;QMainWindow&quot; name=&quot;SkulpturePreview2&quot; &gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;centralwidget&quot; &gt;
++ &lt;layout class=&quot;QVBoxLayout&quot; name=&quot;verticalLayout&quot; &gt;
++ &lt;property name=&quot;margin&quot; &gt;
++ &lt;number&gt;0&lt;/number&gt;
++ &lt;/property&gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QTextBrowser&quot; name=&quot;textBrowser&quot; &gt;
++ &lt;property name=&quot;html&quot; &gt;
++ &lt;string&gt;&amp;lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
++&amp;lt;html&gt;&amp;lt;head&gt;&amp;lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&amp;lt;style type=&quot;text/css&quot;&gt;
++p, li { white-space: pre-wrap; }
++&amp;lt;/style&gt;&amp;lt;/head&gt;&amp;lt;body style=&quot; font-family:'Sans Serif'; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
++&amp;lt;table border=&quot;0&quot; style=&quot;-qt-table-type: root; margin-top:16px; margin-bottom:16px; margin-left:16px; margin-right:16px;&quot;&gt;
++&amp;lt;tr&gt;
++&amp;lt;td style=&quot;border: none;&quot;&gt;
++&amp;lt;p align=&quot;center&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&amp;lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;Skulpture&amp;lt;/span&gt;&amp;lt;/p&gt;
++&amp;lt;p align=&quot;center&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;&quot;&gt;&amp;lt;span style=&quot; font-weight:400;&quot;&gt;Version 0.1.2&amp;lt;/span&gt;&amp;lt;/p&gt;
++&amp;lt;p align=&quot;center&quot; style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&amp;lt;/p&gt;
++&amp;lt;p align=&quot;center&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&amp;lt;a href=&quot;http://skulpture.maxiom.de/&quot;&gt;&amp;lt;span style=&quot; text-decoration: underline; color:#0057ae;&quot;&gt;http://skulpture.maxiom.de/&amp;lt;/span&gt;&amp;lt;/a&gt;&amp;lt;/p&gt;
++&amp;lt;p align=&quot;center&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&amp;lt;span style=&quot; font-size:8pt;&quot;&gt;Copyright © 2007, 2008 Christoph Feck&amp;lt;/span&gt;&amp;lt;/p&gt;
++&amp;lt;p align=&quot;center&quot; style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;&quot;&gt;&amp;lt;/p&gt;
++&amp;lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;&quot;&gt;&amp;lt;span style=&quot; font-size:10pt;&quot;&gt;This is a demonstration window only&amp;lt;/span&gt;&amp;lt;/p&gt;
++&amp;lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&amp;lt;/p&gt;
++&amp;lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Lorem ipsum dolor sit amet, consectetuer sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata
+ sanctus est Lorem ipsum dolor sit amet.&amp;lt;/p&gt;
++&amp;lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&amp;lt;/p&gt;
++&amp;lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.&amp;lt;/p&gt;
++&amp;lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&amp;lt;/p&gt;
++&amp;lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.&amp;lt;/p&gt;
++&amp;lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&amp;lt;/p&gt;&amp;lt;/td&gt;&amp;lt;/tr&gt;&amp;lt;/table&gt;&amp;lt;/body&gt;&amp;lt;/html&gt;&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;openExternalLinks&quot; &gt;
++ &lt;bool&gt;true&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QMenuBar&quot; name=&quot;menubar&quot; &gt;
++ &lt;widget class=&quot;QMenu&quot; name=&quot;menu_File&quot; &gt;
++ &lt;property name=&quot;title&quot; &gt;
++ &lt;string&gt;&amp;amp;File&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;addaction name=&quot;action_New&quot; /&gt;
++ &lt;addaction name=&quot;action_Open&quot; /&gt;
++ &lt;addaction name=&quot;separator&quot; /&gt;
++ &lt;addaction name=&quot;action_Reload&quot; /&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QMenu&quot; name=&quot;menu_Edit&quot; &gt;
++ &lt;property name=&quot;title&quot; &gt;
++ &lt;string&gt;&amp;amp;Edit&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;addaction name=&quot;action_Cut&quot; /&gt;
++ &lt;addaction name=&quot;action_Copy&quot; /&gt;
++ &lt;addaction name=&quot;action_Paste&quot; /&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QMenu&quot; name=&quot;menu_Settings&quot; &gt;
++ &lt;property name=&quot;title&quot; &gt;
++ &lt;string&gt;&amp;amp;Settings&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;addaction name=&quot;actionConfigure&quot; /&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QMenu&quot; name=&quot;menu_Help&quot; &gt;
++ &lt;property name=&quot;title&quot; &gt;
++ &lt;string&gt;&amp;amp;Help&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;addaction name=&quot;actionHelp_Contents&quot; /&gt;
++ &lt;/widget&gt;
++ &lt;addaction name=&quot;menu_File&quot; /&gt;
++ &lt;addaction name=&quot;menu_Edit&quot; /&gt;
++ &lt;addaction name=&quot;menu_Settings&quot; /&gt;
++ &lt;addaction name=&quot;menu_Help&quot; /&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QStatusBar&quot; name=&quot;statusbar&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;242&lt;/y&gt;
++ &lt;width&gt;256&lt;/width&gt;
++ &lt;height&gt;21&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QToolBar&quot; name=&quot;toolBar&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;23&lt;/y&gt;
++ &lt;width&gt;146&lt;/width&gt;
++ &lt;height&gt;27&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;windowTitle&quot; &gt;
++ &lt;string&gt;toolBar&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;toolBarArea&quot; &gt;
++ &lt;enum&gt;TopToolBarArea&lt;/enum&gt;
++ &lt;/attribute&gt;
++ &lt;attribute name=&quot;toolBarBreak&quot; &gt;
++ &lt;bool&gt;false&lt;/bool&gt;
++ &lt;/attribute&gt;
++ &lt;addaction name=&quot;actionNew&quot; /&gt;
++ &lt;addaction name=&quot;actionOpen&quot; /&gt;
++ &lt;addaction name=&quot;separator&quot; /&gt;
++ &lt;addaction name=&quot;actionCut&quot; /&gt;
++ &lt;addaction name=&quot;actionCopy&quot; /&gt;
++ &lt;addaction name=&quot;actionPaste&quot; /&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QToolBar&quot; name=&quot;toolBar_2&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;146&lt;/x&gt;
++ &lt;y&gt;23&lt;/y&gt;
++ &lt;width&gt;110&lt;/width&gt;
++ &lt;height&gt;27&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;windowTitle&quot; &gt;
++ &lt;string&gt;toolBar_2&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;toolBarArea&quot; &gt;
++ &lt;enum&gt;TopToolBarArea&lt;/enum&gt;
++ &lt;/attribute&gt;
++ &lt;attribute name=&quot;toolBarBreak&quot; &gt;
++ &lt;bool&gt;false&lt;/bool&gt;
++ &lt;/attribute&gt;
++ &lt;addaction name=&quot;actionPrevious&quot; /&gt;
++ &lt;addaction name=&quot;actionNext&quot; /&gt;
++ &lt;addaction name=&quot;actionReload&quot; /&gt;
++ &lt;/widget&gt;
++ &lt;action name=&quot;actionNew&quot; &gt;
++ &lt;property name=&quot;icon&quot; &gt;
++ &lt;iconset resource=&quot;sk_preview2.qrc&quot; &gt;
++ &lt;normaloff&gt;:/skpreview2/images/document-new.png&lt;/normaloff&gt;:/skpreview2/images/document-new.png&lt;/iconset&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;New&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/action&gt;
++ &lt;action name=&quot;actionOpen&quot; &gt;
++ &lt;property name=&quot;icon&quot; &gt;
++ &lt;iconset resource=&quot;sk_preview2.qrc&quot; &gt;
++ &lt;normaloff&gt;:/skpreview2/images/document-open.png&lt;/normaloff&gt;:/skpreview2/images/document-open.png&lt;/iconset&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Open&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/action&gt;
++ &lt;action name=&quot;actionCut&quot; &gt;
++ &lt;property name=&quot;icon&quot; &gt;
++ &lt;iconset resource=&quot;sk_preview2.qrc&quot; &gt;
++ &lt;normaloff&gt;:/skpreview2/images/edit-cut.png&lt;/normaloff&gt;:/skpreview2/images/edit-cut.png&lt;/iconset&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Cut&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/action&gt;
++ &lt;action name=&quot;actionCopy&quot; &gt;
++ &lt;property name=&quot;icon&quot; &gt;
++ &lt;iconset resource=&quot;sk_preview2.qrc&quot; &gt;
++ &lt;normaloff&gt;:/skpreview2/images/edit-copy.png&lt;/normaloff&gt;:/skpreview2/images/edit-copy.png&lt;/iconset&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Copy&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/action&gt;
++ &lt;action name=&quot;actionPaste&quot; &gt;
++ &lt;property name=&quot;icon&quot; &gt;
++ &lt;iconset resource=&quot;sk_preview2.qrc&quot; &gt;
++ &lt;normaloff&gt;:/skpreview2/images/edit-paste.png&lt;/normaloff&gt;:/skpreview2/images/edit-paste.png&lt;/iconset&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Paste&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/action&gt;
++ &lt;action name=&quot;actionPrevious&quot; &gt;
++ &lt;property name=&quot;icon&quot; &gt;
++ &lt;iconset resource=&quot;sk_preview2.qrc&quot; &gt;
++ &lt;normaloff&gt;:/skpreview2/images/go-previous.png&lt;/normaloff&gt;:/skpreview2/images/go-previous.png&lt;/iconset&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Previous&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/action&gt;
++ &lt;action name=&quot;actionNext&quot; &gt;
++ &lt;property name=&quot;icon&quot; &gt;
++ &lt;iconset resource=&quot;sk_preview2.qrc&quot; &gt;
++ &lt;normaloff&gt;:/skpreview2/images/go-next.png&lt;/normaloff&gt;:/skpreview2/images/go-next.png&lt;/iconset&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Next&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/action&gt;
++ &lt;action name=&quot;actionReload&quot; &gt;
++ &lt;property name=&quot;icon&quot; &gt;
++ &lt;iconset resource=&quot;sk_preview2.qrc&quot; &gt;
++ &lt;normaloff&gt;:/skpreview2/images/view-refresh.png&lt;/normaloff&gt;:/skpreview2/images/view-refresh.png&lt;/iconset&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Reload&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/action&gt;
++ &lt;action name=&quot;action_New&quot; &gt;
++ &lt;property name=&quot;icon&quot; &gt;
++ &lt;iconset resource=&quot;sk_preview2.qrc&quot; &gt;
++ &lt;normaloff&gt;:/skpreview2/images/document-new.png&lt;/normaloff&gt;:/skpreview2/images/document-new.png&lt;/iconset&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;&amp;amp;New&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/action&gt;
++ &lt;action name=&quot;action_Open&quot; &gt;
++ &lt;property name=&quot;icon&quot; &gt;
++ &lt;iconset resource=&quot;sk_preview2.qrc&quot; &gt;
++ &lt;normaloff&gt;:/skpreview2/images/document-open.png&lt;/normaloff&gt;:/skpreview2/images/document-open.png&lt;/iconset&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;&amp;amp;Open&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/action&gt;
++ &lt;action name=&quot;action_Reload&quot; &gt;
++ &lt;property name=&quot;icon&quot; &gt;
++ &lt;iconset resource=&quot;sk_preview2.qrc&quot; &gt;
++ &lt;normaloff&gt;:/skpreview2/images/view-refresh.png&lt;/normaloff&gt;:/skpreview2/images/view-refresh.png&lt;/iconset&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;&amp;amp;Reload&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/action&gt;
++ &lt;action name=&quot;action_Cut&quot; &gt;
++ &lt;property name=&quot;icon&quot; &gt;
++ &lt;iconset resource=&quot;sk_preview2.qrc&quot; &gt;
++ &lt;normaloff&gt;:/skpreview2/images/edit-cut.png&lt;/normaloff&gt;:/skpreview2/images/edit-cut.png&lt;/iconset&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;&amp;amp;Cut&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/action&gt;
++ &lt;action name=&quot;action_Copy&quot; &gt;
++ &lt;property name=&quot;icon&quot; &gt;
++ &lt;iconset resource=&quot;sk_preview2.qrc&quot; &gt;
++ &lt;normaloff&gt;:/skpreview2/images/edit-copy.png&lt;/normaloff&gt;:/skpreview2/images/edit-copy.png&lt;/iconset&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;&amp;amp;Copy&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/action&gt;
++ &lt;action name=&quot;action_Paste&quot; &gt;
++ &lt;property name=&quot;icon&quot; &gt;
++ &lt;iconset resource=&quot;sk_preview2.qrc&quot; &gt;
++ &lt;normaloff&gt;:/skpreview2/images/edit-paste.png&lt;/normaloff&gt;:/skpreview2/images/edit-paste.png&lt;/iconset&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;&amp;amp;Paste&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/action&gt;
++ &lt;action name=&quot;actionConfigure&quot; &gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Configure...&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/action&gt;
++ &lt;action name=&quot;actionHelp_Contents&quot; &gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Help Contents&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/action&gt;
++ &lt;/widget&gt;
++ &lt;resources&gt;
++ &lt;include location=&quot;sk_preview2.qrc&quot; /&gt;
++ &lt;/resources&gt;
++ &lt;connections/&gt;
++&lt;/ui&gt;
+
+<a id="themeia_orakde4srciaorakdecpp">Added: theme/ia_ora-kde4/src/iaora-kde.cpp</a>
+===================================================================
+--- theme/ia_ora-kde4/src/iaora-kde.cpp (rev 0)
++++ theme/ia_ora-kde4/src/iaora-kde.cpp 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,515 @@
++/*
++ * Copyright 2008 Gustavo Pichorim Boiko &lt;boiko@mandriva.com&gt;
++ * Copyright 2008-2009 Rodrigo Gonçalves de Oliveira &lt;rodrigo@mandriva.com&gt;
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 3 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ */
++
++#include &quot;iaora-kde.h&quot;
++#include &quot;iaorastyle.h&quot;
++
++#include &lt;QStyleOption&gt;
++#include &lt;QStyleOptionSpinBox&gt;
++#include &lt;QPainter&gt;
++#include &lt;QComboBox&gt;
++#include &lt;QAbstractSpinBox&gt;
++#include &lt;QToolButton&gt;
++#include &lt;QDockWidget&gt;
++#include &lt;QDebug&gt;
++#include &lt;QToolBar&gt;
++
++K_EXPORT_STYLE(&quot;IaOraKde&quot;, IaOraKde)
++
++IaOraKde::IaOraKde()
++{
++ // not use 2 buttons on ScrollBar bottom
++ setWidgetLayoutProp(WT_ScrollBar, ScrollBar::DoubleBotButton, 0);
++ // We set the minimum size to 21 for the scrollbar slider like in the GTK ia ora
++ setWidgetLayoutProp(WT_ScrollBar, ScrollBar::MinimumSliderHeight, 21);
++
++ // correct the CheckBox and RadioButton sizes, according IaOraQt
++ setWidgetLayoutProp(WT_CheckBox, CheckBox::Size, 12);
++ setWidgetLayoutProp(WT_RadioButton, RadioButton::Size, 12);
++
++ m_style = new IaOraStyle(this);
++}
++
++IaOraKde::~IaOraKde()
++{
++ delete m_style;
++}
++
++void IaOraKde::polish(QWidget *widget){
++ // here we change the appearence of some widget
++ if (qobject_cast&lt;QToolButton *&gt;(widget)){
++ widget-&gt;setAttribute(Qt::WA_Hover, true); // forcing the mouse enter and leave event
++ }
++}
++void IaOraKde::unpolish(QWidget *widget){
++ if (qobject_cast&lt;QToolButton *&gt;(widget)){
++ widget-&gt;setAttribute(Qt::WA_Hover, false);
++ }
++}
++
++void IaOraKde::drawPrimitive(PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget) const
++{
++ switch (element)
++ {
++ case QStyle::PE_FrameFocusRect:
++ m_style-&gt;drawFrame(option, painter, IaOraStyle::FrameFocus);
++ break;
++ case QStyle::PE_Frame:
++ QComboBox *cmb;
++
++ if (widget)
++ cmb = qobject_cast&lt;QComboBox *&gt;(widget-&gt;parentWidget());
++
++ m_style-&gt;drawFrame(option, painter, (cmb) ? IaOraStyle::FrameComboBox : IaOraStyle::FrameFrame);
++
++ break;
++ case QStyle::PE_FrameWindow:
++ m_style-&gt;drawFrame(option, painter);
++ break;
++ case QStyle::PE_FrameMenu:
++ m_style-&gt;drawFrame(option, painter, IaOraStyle::FrameMenu);
++ break;
++ case QStyle::PE_FrameTabWidget:
++ m_style-&gt;drawFrame(option, painter, IaOraStyle::FrameTabBar);
++ break;
++ case QStyle::PE_PanelLineEdit:
++ {
++ if (widget &amp;&amp; widget-&gt;parentWidget() &amp;&amp; !qstrcmp(widget-&gt;parentWidget()-&gt;metaObject()-&gt;className(), &quot;KHBox&quot;)){
++ QRect r(option-&gt;rect.adjusted(0, 0, 0, -2));
++ m_style-&gt;drawFrame(option, painter, IaOraStyle::FrameLineEdit, r);
++ } else
++ m_style-&gt;drawFrame(option, painter, IaOraStyle::FrameLineEdit);
++ }
++ break;
++ case QStyle::PE_PanelToolBar:
++ m_style-&gt;drawFrame(option, painter, IaOraStyle::FrameToolBar);
++ break;
++ case QStyle::PE_PanelMenuBar:
++ m_style-&gt;drawFrame(option, painter, IaOraStyle::FrameMenuBar);
++ break;
++ case QStyle::PE_FrameGroupBox:
++ m_style-&gt;drawFrame(option, painter, IaOraStyle::FrameGroupBox);
++ break;
++ case QStyle::PE_IndicatorToolBarSeparator:
++ m_style-&gt;drawSeparator(option, painter);
++ break;
++ case QStyle::PE_IndicatorToolBarHandle:
++ m_style-&gt;drawHandle(option, painter);
++ break;
++ case QStyle::PE_PanelButtonCommand:
++ m_style-&gt;drawButton(option, painter);
++ break;
++ case QStyle::PE_FrameDefaultButton:
++ m_style-&gt;drawButtonDefaultBorder(option, painter);
++ break;
++ case QStyle::PE_PanelButtonTool:
++ if (widget &amp;&amp; !qstrcmp(widget-&gt;metaObject()-&gt;className(), &quot;QDockWidgetTitleButton&quot;))
++ break;
++ m_style-&gt;drawButton(option, painter);
++ break;
++ case QStyle::PE_IndicatorCheckBox:
++ m_style-&gt;drawCheckBox(option, painter);
++ break;
++ case QStyle::PE_IndicatorRadioButton:
++ m_style-&gt;drawRadioButton(option, painter);
++ break;
++ case QStyle::PE_PanelButtonBevel:
++ m_style-&gt;drawButton(option, painter, true /*simplified*/);
++ break;
++ case QStyle::PE_IndicatorArrowUp:
++ case QStyle::PE_IndicatorSpinUp:
++ m_style-&gt;drawSymbol(option, painter, IaOraStyle::SymbolArrowUp);
++ break;
++ case QStyle::PE_IndicatorArrowDown:
++ case QStyle::PE_IndicatorSpinDown:
++ m_style-&gt;drawSymbol(option, painter, IaOraStyle::SymbolArrowDown);
++ break;
++ case QStyle::PE_IndicatorArrowLeft:
++ m_style-&gt;drawSymbol(option, painter, IaOraStyle::SymbolArrowLeft);
++ break;
++ case QStyle::PE_IndicatorArrowRight:
++ m_style-&gt;drawSymbol(option, painter, IaOraStyle::SymbolArrowRight);
++ break;
++ case QStyle::PE_IndicatorSpinPlus:
++ m_style-&gt;drawSymbol(option, painter, IaOraStyle::SymbolPlus);
++ break;
++ case QStyle::PE_IndicatorSpinMinus:
++ m_style-&gt;drawSymbol(option, painter, IaOraStyle::SymbolMinus);
++ break;
++ case QStyle::PE_IndicatorBranch:
++ m_style-&gt;drawBranch(option, painter);
++ break;
++ case QStyle::PE_PanelItemViewItem:
++ m_style-&gt;drawPanelItemViewItem(option, painter);
++ break;
++ case QStyle::PE_IndicatorDockWidgetResizeHandle:
++ {
++ // the horizontal / vertical flags are inverted
++ QStyleOption copy = *option;
++ if (copy.state &amp; QStyle::State_Horizontal)
++ copy.state &amp;= ~QStyle::State_Horizontal;
++ else
++ copy.state |= QStyle::State_Horizontal;
++ m_style-&gt;drawHandle(&amp;copy, painter);
++ break;
++ }
++ case QStyle::PE_IndicatorButtonDropDown:
++ //m_style-&gt;drawButton(option, painter);
++ break;
++ case QStyle::PE_PanelItemViewRow:
++ m_style-&gt;drawPanelItemViewRow(option, painter);
++ break;
++ default:
++ qDebug(&quot;Element: %d&quot;, element);
++ KStyle::drawPrimitive(element, option, painter, widget);
++ }
++}
++
++void IaOraKde::drawControl(ControlElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget) const
++{
++ switch (element)
++ {
++ case QStyle::CE_ToolBar:
++ m_style-&gt;drawFrame(option, painter, IaOraStyle::FrameMenuBar);
++ break;
++ case QStyle::CE_MenuBarEmptyArea:
++ m_style-&gt;drawFrame(option, painter, IaOraStyle::FrameMenuBar);
++ break;
++ case QStyle::CE_ProgressBarGroove:
++ m_style-&gt;drawFrame(option, painter, IaOraStyle::FrameProgressBar);
++ break;
++ case QStyle::CE_ProgressBarContents:
++ m_style-&gt;drawProgressBarContents(option, painter, true);
++ break;
++ case QStyle::CE_ScrollBarSubLine:
++ case QStyle::CE_ScrollBarAddLine:
++ {
++ const QStyleOptionSlider* scr = qstyleoption_cast&lt;const QStyleOptionSlider*&gt;(option);
++ bool vertical = (scr-&gt;orientation == Qt::Vertical);
++ bool addLine = (element == QStyle::CE_ScrollBarAddLine) ? true : false;
++ QRect scrRect = scr-&gt;rect;
++ QRect r;
++
++ if (addLine){
++ if (vertical)
++ r = QRect(0, scrRect.bottom() - 15, scrRect.width(), 16);
++ else
++ r = QRect(scrRect.right() - 15, scrRect.top(), 16, scrRect.height());
++ } else{
++ if (vertical)
++ r = QRect(scrRect.left(), scrRect.top(), scrRect.width(), 16);
++ else
++ r = QRect(0, scrRect.top(), 16, scrRect.height());
++ }
++
++ const_cast&lt;QStyleOption*&gt;(option)-&gt;rect = r;
++
++ m_style-&gt;drawScrollBarButton(option, painter, (addLine) ? IaOraStyle::SymbolArrowRight : IaOraStyle::SymbolArrowLeft);
++ }
++ break;
++ case QStyle::CE_ScrollBarAddPage:
++ case QStyle::CE_ScrollBarSubPage:
++ m_style-&gt;drawScrollBarEmptySpace(option, painter);
++ break;
++ case QStyle::CE_ScrollBarFirst:
++ painter-&gt;fillRect(option-&gt;rect, Qt::gray);
++ break;
++ case QStyle::CE_ScrollBarLast:
++ painter-&gt;fillRect(option-&gt;rect, Qt::gray);
++ break;
++ case QStyle::CE_ScrollBarSlider:
++ m_style-&gt;drawScrollBarHandle(option, painter);
++ break;
++ case QStyle::CE_HeaderSection:
++ case QStyle::CE_HeaderEmptyArea:
++ m_style-&gt;drawFrame(option, painter, IaOraStyle::FrameHeader);
++ break;
++ case QStyle::CE_MenuEmptyArea:
++ break;
++ case QStyle::CE_MenuBarItem:
++ m_style-&gt;drawMenuItem(option, painter, false);
++ break;
++ case QStyle::CE_MenuItem:
++ m_style-&gt;drawMenuItem(option, painter);
++ break;
++ case QStyle::CE_Splitter:
++ m_style-&gt;drawHandle(option, painter);
++ break;
++ case QStyle::CE_DockWidgetTitle:
++ m_style-&gt;drawDockWindowTitle(option, painter);
++ break;
++ case QStyle::CE_TabBarTab:
++ m_style-&gt;drawTabBarTab(option, painter);
++ break;
++ case QStyle::CE_ComboBoxLabel:
++ m_style-&gt;drawComboBoxLabel(option, painter);
++ break;
++ case QStyle::CE_ItemViewItem:
++ m_style-&gt;drawPanelItemViewItem(option, painter, true);
++ break;
++ default:
++ qDebug(&quot;ControlElement: %d&quot;, element);
++ KStyle::drawControl(element, option, painter, widget);
++ }
++}
++
++int IaOraKde::pixelMetric(PixelMetric metric, const QStyleOption *option, const QWidget *widget) const
++{
++ switch (metric)
++ {
++ case QStyle::PM_ButtonDefaultIndicator:
++ return 1;
++ break;
++ case QStyle::PM_ButtonShiftHorizontal:
++ case QStyle::PM_ButtonShiftVertical:
++ return 0;
++ case QStyle::PM_DefaultFrameWidth:
++ case QStyle::PM_ComboBoxFrameWidth:
++ return 1;
++ case QStyle::PM_SliderControlThickness:
++ return 8;
++ case QStyle::PM_SliderLength:
++ return 26;
++ case QStyle::PM_SliderTickmarkOffset:
++ return 5;
++ case QStyle::PM_SplitterWidth:
++ return 8;
++ case QStyle::PM_DockWidgetTitleBarButtonMargin:
++ case QStyle::PM_DockWidgetTitleMargin:
++ return 0;
++ case QStyle::PM_ToolBarIconSize:
++ return 24;
++ case QStyle::PM_MenuBarItemSpacing:
++ return 5;
++ case QStyle::PM_SliderSpaceAvailable:
++ if (const QStyleOptionSlider *slider = qstyleoption_cast&lt;const QStyleOptionSlider *&gt;(option))
++ {
++ int size = 15;
++ if (slider-&gt;tickPosition &amp; QSlider::TicksBelow)
++ ++size;
++ if (slider-&gt;tickPosition &amp; QSlider::TicksAbove)
++ ++size;
++ return size;
++ }
++ case QStyle::PM_ScrollView_ScrollBarSpacing:
++ return -1;
++ // very strange issue
++ /*case QStyle::PM_ScrollBarSliderMin:
++ return 31;*/
++ default:
++ //qDebug(); // do not remove this for now (horrible hack)
++ return KStyle::pixelMetric(metric, option, widget);
++ }
++}
++
++int IaOraKde::styleHint(QStyle::StyleHint hint, const QStyleOption *option, const QWidget *widget, QStyleHintReturn *returnData) const
++{
++ switch (hint)
++ {
++ case QStyle::SH_TitleBar_NoBorder:
++ return true;
++ case SH_MenuBar_MouseTracking:
++ case SH_Menu_MouseTracking:
++ return true;
++ case SH_ScrollBar_MiddleClickAbsolutePosition:
++ return true;
++ case SH_ScrollView_FrameOnlyAroundContents:
++ return true;
++ default:
++ return KStyle::styleHint(hint, option, widget, returnData);
++ }
++}
++
++QSize IaOraKde::sizeFromContents (ContentsType type, const QStyleOption * option, const QSize &amp; contentsSize, const QWidget *widget) const
++{
++ switch (type)
++ {
++ case QStyle::CT_MenuBarItem:
++ return contentsSize + QSize(8,4);
++ case CT_MenuItem:
++ {
++ const QStyleOptionMenuItem *menuOpt = qstyleoption_cast&lt;const QStyleOptionMenuItem *&gt;(option);
++ if (menuOpt)
++ return contentsSize + QSize(46, 4);
++ }
++ break;
++ case CT_ComboBox:
++ return contentsSize + QSize(32, 0);
++ default:
++ return KStyle::sizeFromContents(type, option, contentsSize, widget);
++ }
++ // just for the war
++}
++
++void IaOraKde::drawItemText(QPainter *painter, const QRect &amp;rect, int alignment, const QPalette &amp;pal,
++ bool enabled, const QString&amp; text, QPalette::ColorRole textRole) const
++{
++ m_style-&gt;drawItemText(painter, rect, alignment, pal, enabled, text, textRole);
++}
++
++void IaOraKde::drawComplexControl(ComplexControl control, const QStyleOptionComplex *option, QPainter *painter, const QWidget *widget) const
++{
++ QRect r = option-&gt;rect;
++ switch(control)
++ {
++ case QStyle::CC_SpinBox:
++ {
++ m_style-&gt;drawSpinBox(option, painter);
++ break;
++ }
++ case CC_ComboBox:
++ {
++ m_style-&gt;drawComboBox(option, painter);
++ break;
++ }
++ case CC_Slider:
++ {
++ QRect grooveRegion = subControlRect(CC_Slider, option, SC_SliderGroove, widget);
++ QRect handle = subControlRect(CC_Slider, option, SC_SliderHandle, widget);
++ QRect ticks = subControlRect(CC_Slider, option, SC_SliderTickmarks, widget);
++
++ m_style-&gt;drawSlider(option, painter, grooveRegion, handle, ticks);
++ break;
++ }
++ case CC_Dial:
++ {
++ m_style-&gt;drawDial(option, painter);
++ break;
++ }
++ case CC_TitleBar:
++ {
++ m_style-&gt;drawTitleBar(option, painter, widget);
++ break;
++ }
++ case CC_Q3ListView:
++ {
++ m_style-&gt;drawQ3ListView(option, painter, widget);
++ break;
++ }
++ //case CC_ScrollBar: // this will not be drawed here
++ case CC_ToolButton:
++ {
++ QDockWidget *dockWidget;
++ QTabBar *tabBar;
++ if (widget)
++ {
++ dockWidget = qobject_cast&lt;QDockWidget *&gt;(widget-&gt;parentWidget());
++ tabBar = qobject_cast&lt;QTabBar *&gt;(widget-&gt;parentWidget());
++ }
++
++ if (dockWidget){ // the QDockWidget icons
++ const QStyleOptionToolButton *opt = qstyleoption_cast &lt;const QStyleOptionToolButton *&gt;(option);
++ bool sunken = (opt-&gt;state &amp; QStyle::State_Sunken);
++ bool hover = (opt-&gt;state &amp; QStyle::State_MouseOver);
++
++ QIcon::Mode mode = (opt-&gt;state &amp; QStyle::State_Enabled) ? QIcon::Normal : QIcon::Disabled;
++ if (hover){
++ mode = QIcon::Selected;
++ }
++
++ int shift = 0;
++ if (sunken) shift = 2;
++
++ QPixmap pix = opt-&gt;icon.pixmap(opt-&gt;iconSize, mode);
++ QRect iconRect(r);
++
++ iconRect = alignedRect(opt-&gt;direction, Qt::AlignCenter, iconRect.size(), r);
++ iconRect.setTopLeft(iconRect.topLeft() + QPoint(shift, shift));
++
++ drawItemPixmap(painter, iconRect, Qt::AlignCenter, pix);
++ } else if (tabBar){ // we have tab arrows indicators?
++ const QStyleOptionToolButton *opt = qstyleoption_cast &lt;const QStyleOptionToolButton *&gt;(option);
++ QRect toolButtonRect = opt-&gt;rect;
++
++ bool vertical = false;
++ if (opt-&gt;features &amp;&amp; QStyleOptionToolButton::Arrow)
++ if ((opt-&gt;arrowType == Qt::LeftArrow) || (opt-&gt;arrowType == Qt::RightArrow)) vertical = true;
++
++ painter-&gt;save();
++ painter-&gt;setClipRect(toolButtonRect);
++ painter-&gt;fillRect(toolButtonRect, option-&gt;palette.brush(QPalette::Window));
++
++ m_style-&gt;drawToolButton(option, painter);
++ painter-&gt;restore();
++
++ if (vertical)
++ m_style-&gt;drawSymbol(option, painter, (opt-&gt;arrowType == Qt::LeftArrow) ? IaOraStyle::SymbolArrowLeft : IaOraStyle::SymbolArrowRight);
++ else
++ m_style-&gt;drawSymbol(option, painter, (opt-&gt;arrowType == Qt::UpArrow) ? IaOraStyle::SymbolArrowUp : IaOraStyle::SymbolArrowDown);
++ } else // if not...
++ m_style-&gt;drawToolButton(option, painter);
++ break;
++ }
++ default:
++ KStyle::drawComplexControl(control, option, painter, widget);
++ }
++}
++
++QIcon IaOraKde::standardIconImplementation(QStyle::StandardPixmap standardIcon, const QStyleOption *option, const QWidget *widget) const
++{
++ if (m_style-&gt;hasIcon(standardIcon))
++ return m_style-&gt;standardIcon(standardIcon, option, widget);
++
++ return KStyle::standardIconImplementation(standardIcon, option, widget);
++}
++
++QRect IaOraKde::subControlRect(ComplexControl control, const QStyleOptionComplex *option, SubControl subControl, const QWidget *widget) const
++{
++ QRect r = KStyle::subControlRect(control, option, subControl, widget);
++
++ switch (control)
++ {
++ case QStyle::CC_SpinBox:
++ if (subControl == QStyle::SC_SpinBoxEditField)
++ r.adjust(-1,-1,1,1);
++ break;
++ case QStyle::CC_ComboBox:
++ if (subControl == QStyle::SC_ComboBoxEditField)
++ r.adjust(-1,-1,0,0);
++ break;
++ default:
++ break;
++ }
++
++ return r;
++}
++
++QRect IaOraKde::subElementRect(SubElement element, const QStyleOption *option, const QWidget *widget) const
++{
++ QRect r = KStyle::subElementRect(element, option, widget);
++
++ switch (element)
++ {
++ case SE_LineEditContents:
++ if (widget-&gt;parentWidget()){
++ if (!qstrcmp(widget-&gt;parentWidget()-&gt;metaObject()-&gt;className(), &quot;KHBox&quot;))
++ r.adjust(0,-1,0,0);
++ else
++ r.adjust(3,1,-1,0);
++ }
++ break;
++ default:
++ break;
++ }
++
++ return r;
++}
++
++#include &quot;iaora-kde.moc&quot;
+
+
+Property changes on: theme/ia_ora-kde4/src/iaora-kde.cpp
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4srciaorakdeh">Added: theme/ia_ora-kde4/src/iaora-kde.h</a>
+===================================================================
+--- theme/ia_ora-kde4/src/iaora-kde.h (rev 0)
++++ theme/ia_ora-kde4/src/iaora-kde.h 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,59 @@
++/*
++ * Copyright 2008 Gustavo Pichorim Boiko &lt;boiko@mandriva.com&gt;
++ * Copyright 2008-2009 Rodrigo Gonçalves de Oliveira &lt;rodrigo@mandriva.com&gt;
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 3 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ */
++
++#ifndef IAORA_KDE_H
++#define IAORA_KDE_H
++
++#include &lt;KStyle&gt;
++
++class IaOraStyle;
++
++class IaOraKde : public KStyle
++{
++ Q_OBJECT
++public:
++ IaOraKde();
++ ~IaOraKde();
++
++ void drawPrimitive(PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = 0) const;
++ void drawControl(ControlElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = 0) const;
++
++ virtual int pixelMetric(PixelMetric metric, const QStyleOption *option = 0, const QWidget *widget = 0 ) const;
++
++ virtual void drawItemText(QPainter *painter, const QRect &amp;rect, int alignment, const QPalette &amp;pal,
++ bool enabled, const QString&amp; text, QPalette::ColorRole textRole) const;
++ virtual void drawComplexControl(ComplexControl control, const QStyleOptionComplex *option, QPainter *painter, const QWidget *widget = 0) const;
++ virtual int styleHint(StyleHint hint, const QStyleOption *option = 0, const QWidget *widget = 0, QStyleHintReturn *returnData = 0 ) const;
++ virtual QSize sizeFromContents(ContentsType type, const QStyleOption *option, const QSize &amp;contentsSize, const QWidget *widget = 0) const;
++
++ virtual QRect subControlRect(ComplexControl control, const QStyleOptionComplex *option, SubControl subControl, const QWidget *widget = 0) const;
++ virtual QRect subElementRect(SubElement element, const QStyleOption *option, const QWidget *widget) const;
++
++ void polish(QWidget *widget);
++ void unpolish(QWidget *widget);
++
++protected slots:
++ QIcon standardIconImplementation(StandardPixmap standardIcon, const QStyleOption *option, const QWidget *widget) const;
++
++private:
++ IaOraStyle *m_style;
++};
++
++#endif
+
+
+Property changes on: theme/ia_ora-kde4/src/iaora-kde.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4srciaorakdethemerc">Added: theme/ia_ora-kde4/src/iaora-kde.themerc</a>
+===================================================================
+--- theme/ia_ora-kde4/src/iaora-kde.themerc (rev 0)
++++ theme/ia_ora-kde4/src/iaora-kde.themerc 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,7 @@
++[Misc]
++Name=IaOra-Kde
++Comment=IaOra Kde style
++#ConfigPage=kstyle_iaora_config
++
++[KDE]
++WidgetStyle=IaOraKde
+
+<a id="themeia_orakde4srciaoraqtcpp">Added: theme/ia_ora-kde4/src/iaora-qt.cpp</a>
+===================================================================
+--- theme/ia_ora-kde4/src/iaora-qt.cpp (rev 0)
++++ theme/ia_ora-kde4/src/iaora-qt.cpp 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,512 @@
++/*
++ * Copyright 2008 Gustavo Pichorim Boiko &lt;boiko@mandriva.com&gt;
++ * Copyright 2008-2009 Rodrigo Gonçalves de Oliveira &lt;rodrigo@mandriva.com&gt;
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 3 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ */
++
++#include &quot;iaora-qt.h&quot;
++#include &quot;iaorastyle.h&quot;
++#include &lt;QDebug&gt;
++
++#include &lt;QStyleOption&gt;
++#include &lt;QStyleOptionSpinBox&gt;
++#include &lt;QPainter&gt;
++#include &lt;QComboBox&gt;
++#include &lt;QAbstractSpinBox&gt;
++#include &lt;QToolButton&gt;
++#include &lt;QDockWidget&gt;
++
++/*-----------------------------------------------------------------------*/
++
++#include &lt;QtGui/QStylePlugin&gt;
++
++class IaOraStylePlugin : public QStylePlugin
++{
++public:
++ QStringList keys() const
++ {
++ return QString::fromUtf8(&quot;IaOra-Qt&quot;).split(QChar(',', 0));
++ }
++
++ QStyle *create(const QString &amp;key)
++ {
++ if (key.toLower() == QString::fromUtf8(&quot;iaora-qt&quot;))
++ {
++ return new IaOraQt;
++ }
++ return 0;
++ }
++};
++
++
++Q_EXPORT_PLUGIN2(iaora-qt, IaOraStylePlugin)
++
++/*-----------------------------------------------------------------------*/
++
++IaOraQt::IaOraQt()
++{
++ m_style = new IaOraStyle(this);
++}
++
++IaOraQt::~IaOraQt()
++{
++ delete m_style;
++}
++
++void IaOraQt::polish(QWidget *widget){
++ // here we change the appearence of some widget
++ if (qobject_cast&lt;QToolButton *&gt;(widget)){
++ widget-&gt;setAttribute(Qt::WA_Hover, true); // forcing the mouse enter and leave event
++ }
++}
++void IaOraQt::unpolish(QWidget *widget){
++ if (qobject_cast&lt;QToolButton *&gt;(widget)){
++ widget-&gt;setAttribute(Qt::WA_Hover, false);
++ }
++}
++
++void IaOraQt::drawPrimitive(PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget) const
++{
++ switch (element)
++ {
++ case QStyle::PE_FrameFocusRect:
++ m_style-&gt;drawFrame(option, painter, IaOraStyle::FrameFocus);
++ break;
++ case QStyle::PE_Frame:
++ QComboBox *cmb;
++
++ if (widget)
++ cmb = qobject_cast&lt;QComboBox *&gt;(widget-&gt;parentWidget());
++
++ m_style-&gt;drawFrame(option, painter, (cmb) ? IaOraStyle::FrameComboBox : IaOraStyle::FrameFrame);
++
++ break;
++ case QStyle::PE_FrameWindow:
++ m_style-&gt;drawFrame(option, painter);
++ break;
++ case QStyle::PE_FrameMenu:
++ m_style-&gt;drawFrame(option, painter, IaOraStyle::FrameMenu);
++ break;
++ case QStyle::PE_FrameTabWidget:
++ m_style-&gt;drawFrame(option, painter, IaOraStyle::FrameTabBar);
++ break;
++ case QStyle::PE_PanelLineEdit:
++ {
++ if (widget &amp;&amp; widget-&gt;parentWidget() &amp;&amp; !qstrcmp(widget-&gt;parentWidget()-&gt;metaObject()-&gt;className(), &quot;KHBox&quot;)){
++ QRect r(option-&gt;rect.adjusted(0, 0, 0, -2));
++ m_style-&gt;drawFrame(option, painter, IaOraStyle::FrameLineEdit, r);
++ } else
++ m_style-&gt;drawFrame(option, painter, IaOraStyle::FrameLineEdit);
++ }
++ break;
++ case QStyle::PE_PanelToolBar:
++ m_style-&gt;drawFrame(option, painter, IaOraStyle::FrameToolBar);
++ break;
++ case QStyle::PE_PanelMenuBar:
++ m_style-&gt;drawFrame(option, painter, IaOraStyle::FrameMenuBar);
++ break;
++ case QStyle::PE_FrameGroupBox:
++ m_style-&gt;drawFrame(option, painter, IaOraStyle::FrameGroupBox);
++ break;
++ case QStyle::PE_IndicatorToolBarSeparator:
++ m_style-&gt;drawSeparator(option, painter);
++ break;
++ case QStyle::PE_IndicatorToolBarHandle:
++ m_style-&gt;drawHandle(option, painter);
++ break;
++ case QStyle::PE_PanelButtonCommand:
++ m_style-&gt;drawButton(option, painter);
++ break;
++ case QStyle::PE_FrameDefaultButton:
++ m_style-&gt;drawButtonDefaultBorder(option, painter);
++ break;
++ case QStyle::PE_PanelButtonTool:
++ if (widget &amp;&amp; !qstrcmp(widget-&gt;metaObject()-&gt;className(), &quot;QDockWidgetTitleButton&quot;))
++ break;
++ m_style-&gt;drawButton(option, painter);
++ break;
++ case QStyle::PE_IndicatorCheckBox:
++ m_style-&gt;drawCheckBox(option, painter);
++ break;
++ case QStyle::PE_IndicatorRadioButton:
++ m_style-&gt;drawRadioButton(option, painter);
++ break;
++ case QStyle::PE_PanelButtonBevel:
++ m_style-&gt;drawButton(option, painter, true /*simplified*/);
++ break;
++ case QStyle::PE_IndicatorArrowUp:
++ case QStyle::PE_IndicatorSpinUp:
++ m_style-&gt;drawSymbol(option, painter, IaOraStyle::SymbolArrowUp);
++ break;
++ case QStyle::PE_IndicatorArrowDown:
++ case QStyle::PE_IndicatorSpinDown:
++ m_style-&gt;drawSymbol(option, painter, IaOraStyle::SymbolArrowDown);
++ break;
++ case QStyle::PE_IndicatorArrowLeft:
++ m_style-&gt;drawSymbol(option, painter, IaOraStyle::SymbolArrowLeft);
++ break;
++ case QStyle::PE_IndicatorArrowRight:
++ m_style-&gt;drawSymbol(option, painter, IaOraStyle::SymbolArrowRight);
++ break;
++ case QStyle::PE_IndicatorSpinPlus:
++ m_style-&gt;drawSymbol(option, painter, IaOraStyle::SymbolPlus);
++ break;
++ case QStyle::PE_IndicatorSpinMinus:
++ m_style-&gt;drawSymbol(option, painter, IaOraStyle::SymbolMinus);
++ break;
++ case QStyle::PE_IndicatorBranch:
++ m_style-&gt;drawBranch(option, painter);
++ break;
++ case QStyle::PE_PanelItemViewItem:
++ m_style-&gt;drawPanelItemViewItem(option, painter);
++ break;
++ // case QStyle::PE_PanelItemViewRow: // Do not use it, or setBackground() will not work on a QGrid
++ case QStyle::PE_IndicatorDockWidgetResizeHandle:
++ {
++ // the horizontal / vertical flags are inverted
++ QStyleOption copy = *option;
++ if (copy.state &amp; QStyle::State_Horizontal)
++ copy.state &amp;= ~QStyle::State_Horizontal;
++ else
++ copy.state |= QStyle::State_Horizontal;
++ m_style-&gt;drawHandle(&amp;copy, painter);
++ break;
++ }
++ case QStyle::PE_IndicatorButtonDropDown:
++ //m_style-&gt;drawButton(option, painter);
++ break;
++ case QStyle::PE_PanelItemViewRow:
++ m_style-&gt;drawPanelItemViewRow(option, painter);
++ break;
++ default:
++ qDebug(&quot;Element: %d&quot;, element);
++ QCommonStyle::drawPrimitive(element, option, painter, widget);
++ }
++}
++
++void IaOraQt::drawControl(ControlElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget) const
++{
++ switch (element)
++ {
++ case QStyle::CE_ToolBar:
++ m_style-&gt;drawFrame(option, painter, IaOraStyle::FrameMenuBar);
++ break;
++ case QStyle::CE_MenuBarEmptyArea:
++ m_style-&gt;drawFrame(option, painter, IaOraStyle::FrameMenuBar);
++ break;
++ case QStyle::CE_ProgressBarGroove:
++ m_style-&gt;drawFrame(option, painter, IaOraStyle::FrameProgressBar);
++ break;
++ case QStyle::CE_ProgressBarContents:
++ m_style-&gt;drawProgressBarContents(option, painter);
++ break;
++ case QStyle::CE_ScrollBarSubLine:
++ m_style-&gt;drawScrollBarButton(option, painter, IaOraStyle::SymbolArrowLeft);
++ break;
++ case QStyle::CE_ScrollBarAddLine:
++ m_style-&gt;drawScrollBarButton(option, painter, IaOraStyle::SymbolArrowRight);
++ break;
++ case QStyle::CE_ScrollBarAddPage:
++ case QStyle::CE_ScrollBarSubPage:
++ m_style-&gt;drawScrollBarEmptySpace(option, painter);
++ break;
++ case QStyle::CE_ScrollBarFirst:
++ painter-&gt;fillRect(option-&gt;rect, Qt::gray);
++ break;
++ case QStyle::CE_ScrollBarLast:
++ painter-&gt;fillRect(option-&gt;rect, Qt::gray);
++ break;
++ case QStyle::CE_ScrollBarSlider:
++ m_style-&gt;drawScrollBarHandle(option, painter);
++ break;
++ case QStyle::CE_HeaderSection:
++ case QStyle::CE_HeaderEmptyArea:
++ m_style-&gt;drawFrame(option, painter, IaOraStyle::FrameHeader);
++ break;
++ case QStyle::CE_MenuEmptyArea:
++ break;
++ case QStyle::CE_MenuBarItem:
++ m_style-&gt;drawMenuItem(option, painter, false);
++ break;
++ case QStyle::CE_MenuItem:
++ m_style-&gt;drawMenuItem(option, painter);
++ break;
++ case QStyle::CE_Splitter:
++ m_style-&gt;drawHandle(option, painter);
++ break;
++ case QStyle::CE_DockWidgetTitle:
++ m_style-&gt;drawDockWindowTitle(option, painter);
++ break;
++ case QStyle::CE_TabBarTab:
++ m_style-&gt;drawTabBarTab(option, painter);
++ break;
++ case QStyle::CE_ComboBoxLabel:
++ m_style-&gt;drawComboBoxLabel(option, painter);
++ break;
++ case QStyle::CE_ItemViewItem:
++ m_style-&gt;drawPanelItemViewItem(option, painter, true);
++ break;
++ default:
++ qDebug(&quot;ControlElement: %d&quot;, element);
++ QCommonStyle::drawControl(element, option, painter, widget);
++ }
++}
++
++int IaOraQt::pixelMetric(PixelMetric metric, const QStyleOption *option, const QWidget *widget) const
++{
++ switch (metric)
++ {
++ case QStyle::PM_ButtonDefaultIndicator:
++ return 1;
++ break;
++ case QStyle::PM_ButtonShiftHorizontal:
++ case QStyle::PM_ButtonShiftVertical:
++ return 0;
++ case QStyle::PM_DefaultFrameWidth:
++ case QStyle::PM_ComboBoxFrameWidth:
++ return 1;
++ case QStyle::PM_SliderControlThickness:
++ return 8;
++ case QStyle::PM_SliderLength:
++ return 26;
++ case QStyle::PM_SliderTickmarkOffset:
++ return 5;
++ case QStyle::PM_SplitterWidth:
++ return 8;
++ case QStyle::PM_DockWidgetTitleBarButtonMargin:
++ case QStyle::PM_DockWidgetTitleMargin:
++ return 0;
++ case QStyle::PM_ToolBarIconSize:
++ return 24;
++ case QStyle::PM_MenuBarItemSpacing:
++ return 5;
++ case QStyle::PM_SliderSpaceAvailable:
++ if (const QStyleOptionSlider *slider = qstyleoption_cast&lt;const QStyleOptionSlider *&gt;(option))
++ {
++ int size = 15;
++ if (slider-&gt;tickPosition &amp; QSlider::TicksBelow)
++ ++size;
++ if (slider-&gt;tickPosition &amp; QSlider::TicksAbove)
++ ++size;
++ return size;
++ }
++ break;
++ case QStyle::PM_ScrollView_ScrollBarSpacing:
++ return -1;
++ // very strange issue // HERE
++ /*case QStyle::PM_ScrollBarSliderMin: // HERE
++ break;*/ // HERE
++ default:
++ //qDebug(); // do not remove this for now (horrible hack) // HERE
++ return QCommonStyle::pixelMetric(metric, option, widget);
++ }
++}
++
++int IaOraQt::styleHint(QStyle::StyleHint hint, const QStyleOption *option, const QWidget *widget, QStyleHintReturn *returnData) const
++{
++ switch (hint)
++ {
++ case QStyle::SH_TitleBar_NoBorder:
++ return true;
++ case SH_MenuBar_MouseTracking:
++ case SH_Menu_MouseTracking:
++ return true;
++ case SH_ScrollBar_MiddleClickAbsolutePosition:
++ return true;
++ case SH_ScrollView_FrameOnlyAroundContents:
++ return true;
++ default:
++ return QCommonStyle::styleHint(hint, option, widget, returnData);
++ }
++}
++
++QSize IaOraQt::sizeFromContents (ContentsType type, const QStyleOption * option, const QSize &amp; contentsSize, const QWidget *widget) const
++{
++ switch (type)
++ {
++ case QStyle::CT_MenuBarItem:
++ return contentsSize + QSize(8,4);
++ case CT_MenuItem:
++ {
++ const QStyleOptionMenuItem *menuOpt = qstyleoption_cast&lt;const QStyleOptionMenuItem *&gt;(option);
++ if (menuOpt)
++ return contentsSize + QSize(46, 4);
++ }
++ //break; // HERE
++ default:
++ return QCommonStyle::sizeFromContents(type, option, contentsSize, widget);
++ }
++ // just for the war
++}
++
++void IaOraQt::drawItemText(QPainter *painter, const QRect &amp;rect, int alignment, const QPalette &amp;pal,
++ bool enabled, const QString&amp; text, QPalette::ColorRole textRole) const
++{
++ m_style-&gt;drawItemText(painter, rect, alignment, pal, enabled, text, textRole);
++}
++
++void IaOraQt::drawComplexControl(ComplexControl control, const QStyleOptionComplex *option, QPainter *painter, const QWidget *widget) const
++{
++ QRect r = option-&gt;rect;
++ switch(control)
++ {
++ case QStyle::CC_SpinBox:
++ {
++ m_style-&gt;drawSpinBox(option, painter);
++ break;
++ }
++ case CC_ComboBox:
++ {
++ m_style-&gt;drawComboBox(option, painter);
++ break;
++ }
++ case CC_Slider:
++ {
++ QRect grooveRegion = subControlRect(CC_Slider, option, SC_SliderGroove, widget);
++ QRect handle = subControlRect(CC_Slider, option, SC_SliderHandle, widget);
++ QRect ticks = subControlRect(CC_Slider, option, SC_SliderTickmarks, widget);
++
++ m_style-&gt;drawSlider(option, painter, grooveRegion, handle, ticks);
++ break;
++ }
++ case CC_Dial:
++ {
++ m_style-&gt;drawDial(option, painter);
++ break;
++ }
++ case CC_TitleBar:
++ {
++ m_style-&gt;drawTitleBar(option, painter, widget);
++ break;
++ }
++ case CC_Q3ListView:
++ {
++ m_style-&gt;drawQ3ListView(option, painter, widget);
++ break;
++ }
++ //case CC_ScrollBar: // this will not be drawed here
++ case CC_ToolButton:
++ {
++ QDockWidget *dockWidget;
++ QTabBar *tabBar;
++ if (widget)
++ {
++ dockWidget = qobject_cast&lt;QDockWidget *&gt;(widget-&gt;parentWidget());
++ tabBar = qobject_cast&lt;QTabBar *&gt;(widget-&gt;parentWidget());
++ }
++
++ if (dockWidget){ // the QDockWidget icons
++ const QStyleOptionToolButton *opt = qstyleoption_cast &lt;const QStyleOptionToolButton *&gt;(option);
++ bool sunken = (opt-&gt;state &amp; QStyle::State_Sunken);
++ bool hover = (opt-&gt;state &amp; QStyle::State_MouseOver);
++
++ QIcon::Mode mode = (opt-&gt;state &amp; QStyle::State_Enabled) ? QIcon::Normal : QIcon::Disabled;
++ if (hover){
++ mode = QIcon::Selected;
++ }
++
++ int shift = 0;
++ if (sunken) shift = 2;
++
++ QPixmap pix = opt-&gt;icon.pixmap(opt-&gt;iconSize, mode);
++ QRect iconRect(r);
++
++ iconRect = alignedRect(opt-&gt;direction, Qt::AlignCenter, iconRect.size(), r);
++ iconRect.setTopLeft(iconRect.topLeft() + QPoint(shift, shift));
++
++ drawItemPixmap(painter, iconRect, Qt::AlignCenter, pix);
++ } else if (tabBar){ // we have tab arrows indicators?
++ const QStyleOptionToolButton *opt = qstyleoption_cast &lt;const QStyleOptionToolButton *&gt;(option);
++ QRect toolButtonRect = opt-&gt;rect;
++
++ bool vertical = false;
++ if (opt-&gt;features &amp;&amp; QStyleOptionToolButton::Arrow)
++ if ((opt-&gt;arrowType == Qt::LeftArrow) || (opt-&gt;arrowType == Qt::RightArrow)) vertical = true;
++
++ painter-&gt;save();
++ painter-&gt;setClipRect(toolButtonRect);
++ painter-&gt;fillRect(toolButtonRect, option-&gt;palette.brush(QPalette::Window));
++
++ m_style-&gt;drawToolButton(option, painter);
++ painter-&gt;restore();
++
++ if (vertical)
++ m_style-&gt;drawSymbol(option, painter, (opt-&gt;arrowType == Qt::LeftArrow) ? IaOraStyle::SymbolArrowLeft : IaOraStyle::SymbolArrowRight);
++ else
++ m_style-&gt;drawSymbol(option, painter, (opt-&gt;arrowType == Qt::UpArrow) ? IaOraStyle::SymbolArrowUp : IaOraStyle::SymbolArrowDown);
++ } else // if not...
++ m_style-&gt;drawToolButton(option, painter);
++ break;
++ }
++ default:
++ QCommonStyle::drawComplexControl(control, option, painter, widget);
++ }
++}
++
++QIcon IaOraQt::standardIconImplementation(QStyle::StandardPixmap standardIcon, const QStyleOption *option, const QWidget *widget) const
++{
++ if (m_style-&gt;hasIcon(standardIcon))
++ return m_style-&gt;standardIcon(standardIcon, option, widget);
++
++ return QCommonStyle::standardIconImplementation(standardIcon, option, widget);
++}
++
++QRect IaOraQt::subControlRect(ComplexControl control, const QStyleOptionComplex *option, SubControl subControl, const QWidget *widget) const
++{
++ QRect r = QCommonStyle::subControlRect(control, option, subControl, widget);
++
++ switch (control)
++ {
++ case QStyle::CC_SpinBox:
++ if (subControl == QStyle::SC_SpinBoxEditField)
++ r.adjust(-1,-1,1,1);
++ break;
++ case QStyle::CC_ComboBox:
++ if (subControl == QStyle::SC_ComboBoxEditField)
++ r.adjust(-3,-3,1,2);
++ else if (subControl == QStyle::SC_ComboBoxArrow)
++ r.adjust(0,-1,1,1);
++ break;
++ default:
++ break;
++ }
++
++ return r;
++}
++
++QRect IaOraQt::subElementRect(SubElement element, const QStyleOption *option, const QWidget *widget) const
++{
++ QRect r = QCommonStyle::subElementRect(element, option, widget);
++
++ switch (element)
++ {
++ case SE_LineEditContents:
++ if (widget-&gt;parentWidget()){
++ if (!qstrcmp(widget-&gt;parentWidget()-&gt;metaObject()-&gt;className(), &quot;KHBox&quot;))
++ r.adjust(0,-1,0,0);
++ else
++ r.adjust(3,1,-1,0);
++ }
++ break;
++ default:
++ break;
++ }
++
++ return r;
++}
++
++#include &quot;iaora-qt.moc&quot;
+
+
+Property changes on: theme/ia_ora-kde4/src/iaora-qt.cpp
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4srciaoraqth">Added: theme/ia_ora-kde4/src/iaora-qt.h</a>
+===================================================================
+--- theme/ia_ora-kde4/src/iaora-qt.h (rev 0)
++++ theme/ia_ora-kde4/src/iaora-qt.h 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,59 @@
++/*
++ * Copyright 2008 Gustavo Pichorim Boiko &lt;boiko@mandriva.com&gt;
++ * Copyright 2008-2009 Rodrigo Gonçalves de Oliveira &lt;rodrigo@mandriva.com&gt;
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 3 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ */
++
++#ifndef IAORA_QT_H
++#define IAORA_QT_H
++
++#include &lt;QCommonStyle&gt;
++
++class IaOraStyle;
++
++class Q_DECL_EXPORT IaOraQt : public QCommonStyle
++{
++ Q_OBJECT
++public:
++ IaOraQt();
++ ~IaOraQt();
++
++ void drawPrimitive(PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = 0) const;
++ void drawControl(ControlElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = 0) const;
++
++ virtual int pixelMetric(PixelMetric metric, const QStyleOption *option = 0, const QWidget *widget = 0 ) const;
++
++ virtual void drawItemText(QPainter *painter, const QRect &amp;rect, int alignment, const QPalette &amp;pal,
++ bool enabled, const QString&amp; text, QPalette::ColorRole textRole) const;
++ virtual void drawComplexControl(ComplexControl control, const QStyleOptionComplex *option, QPainter *painter, const QWidget *widget = 0) const;
++ virtual int styleHint(StyleHint hint, const QStyleOption *option = 0, const QWidget *widget = 0, QStyleHintReturn *returnData = 0 ) const;
++ virtual QSize sizeFromContents(ContentsType type, const QStyleOption *option, const QSize &amp;contentsSize, const QWidget *widget = 0) const;
++
++ virtual QRect subControlRect(ComplexControl control, const QStyleOptionComplex *option, SubControl subControl, const QWidget *widget = 0) const;
++ virtual QRect subElementRect(SubElement element, const QStyleOption *option, const QWidget *widget) const;
++
++ void polish(QWidget *widget);
++ void unpolish(QWidget *widget);
++
++protected slots:
++ QIcon standardIconImplementation(StandardPixmap standardIcon, const QStyleOption *option, const QWidget *widget) const;
++
++private:
++ IaOraStyle *m_style;
++};
++
++#endif
+
+
+Property changes on: theme/ia_ora-kde4/src/iaora-qt.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4srciaoracolors">Added: theme/ia_ora-kde4/src/iaoracolors</a>
+===================================================================
+--- theme/ia_ora-kde4/src/iaoracolors (rev 0)
++++ theme/ia_ora-kde4/src/iaoracolors 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,58 @@
++[Default]
++gray0=#EFF3F7
++gray1=#DFE7EF
++gray2=#CFD7DF
++gray3=#C7D3DF
++gray4=#B6C3CF
++gray5=#A6B2C7
++gray6=#8692A6
++
++[Arctic]
++color0=#EFF7FF
++color1=#C7DFFF
++color2=#8EC7FF
++color3=#79BEFF
++color4=#69B6FF
++
++[Blue]
++color0=#A6B6E7
++color1=#8EA2CF
++color2=#4965AE
++color3=#415DA6
++color4=#21459C
++
++[Gray]
++color0=#DFE7EF
++color1=#CFD7DF
++color2=#C7D3DF
++color3=#B6C3CF
++color4=#A6B2C7
++
++[Night]
++color0=#ACB9EA
++color1=#808DC6
++color2=#5D658E
++color3=#3D4467
++color4=#272F4F
++
++[Orange]
++color0=#FFDF10
++color1=#FFCB10
++color2=#F7B610
++color3=#FFA208
++color4=#F79600
++
++[Smooth]
++color0=#CEE3FF
++color1=#ADCFFF
++color2=#7BAAE7
++color3=#5A8AD6
++color4=#427DC6
++
++[Steel]
++color0=#A2DBE3
++color1=#3BBECF
++color2=#158CCD
++color3=#056EA3
++color4=#0A3453
++
+
+<a id="themeia_orakde4srciaorastylecpp">Added: theme/ia_ora-kde4/src/iaorastyle.cpp</a>
+===================================================================
+--- theme/ia_ora-kde4/src/iaorastyle.cpp (rev 0)
++++ theme/ia_ora-kde4/src/iaorastyle.cpp 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,328 @@
++/*
++ * Copyright 2008 Gustavo Pichorim Boiko &lt;boiko@mandriva.com&gt;
++ * Copyright 2008-2009 Rodrigo Gonçalves de Oliveira &lt;rodrigo@mandriva.com&gt;
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 3 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ */
++
++#include &quot;iaorastyle.h&quot;
++
++#include &lt;QSettings&gt;
++#include &lt;QDebug&gt;
++
++QHash&lt;QString, ColorData*&gt; IaOraStyle::m_data;
++
++IaOraStyle::IaOraStyle(QStyle *parent)
++{
++ m_parent = parent;
++}
++
++IaOraStyle::~IaOraStyle()
++{
++}
++
++// helper function to create the hash
++inline QString hashPalette(const QPalette &amp;pal)
++{
++ QString hash = pal.color(QPalette::Window).name();
++ hash += pal.color(QPalette::Highlight).name();
++ return hash;
++}
++
++ColorData *IaOraStyle::lookupData(const QPalette &amp;pal)
++{
++ QString hash = hashPalette(pal);
++
++ // if already cached, just return
++ if (m_data.contains(hash))
++ return m_data[hash];
++
++ ColorData *data = new ColorData();
++ QColor background = pal.color(QPalette::Window);
++ QColor highlight = pal.color(QPalette::Highlight);
++
++ //TODO: check whether black and white should not be black and white
++ data-&gt;black = Qt::black;
++ data-&gt;white = Qt::white;
++
++ QSettings conf(&quot;/etc/iaoracolors&quot;, QSettings::NativeFormat); // TODO: define where this file must go
++
++ if (background.name() == &quot;#eff3f7&quot;)
++ {
++ conf.beginGroup(&quot;Default&quot;);
++ data-&gt;gray[0] = (conf.value(&quot;gray0&quot;, background)).value&lt;QColor&gt;();
++ data-&gt;gray[1] = (conf.value(&quot;gray1&quot;, background.dark(107))).value&lt;QColor&gt;();
++ data-&gt;gray[2] = (conf.value(&quot;gray2&quot;, background.dark(115))).value&lt;QColor&gt;();
++ data-&gt;gray[3] = (conf.value(&quot;gray3&quot;, background.dark(117))).value&lt;QColor&gt;();
++ data-&gt;gray[4] = (conf.value(&quot;gray4&quot;, background.dark(131))).value&lt;QColor&gt;();
++ data-&gt;gray[5] = (conf.value(&quot;gray5&quot;, background.dark(144))).value&lt;QColor&gt;();
++ data-&gt;gray[6] = (conf.value(&quot;gray6&quot;, background.dark(178))).value&lt;QColor&gt;();
++ conf.endGroup();
++ } else
++ {
++ data-&gt;gray[0] = background;
++ data-&gt;gray[1] = background.dark(107);
++ data-&gt;gray[2] = background.dark(115);
++ data-&gt;gray[3] = background.dark(117);
++ data-&gt;gray[4] = background.dark(131);
++ data-&gt;gray[5] = background.dark(144);
++ data-&gt;gray[6] = background.dark(178);
++ }
++
++ QString group = &quot;&quot;;
++
++ if (highlight.name() == &quot;#8ec7ff&quot;) group = &quot;Arctic&quot;;
++ else if (highlight.name() == &quot;#4965ae&quot;) group = &quot;Blue&quot;;
++ else if (highlight.name() == &quot;#cfd7df&quot;) group = &quot;Gray&quot;;
++ else if (highlight.name() == &quot;#5d658e&quot;) group = &quot;Night&quot;;
++ else if (highlight.name() == &quot;#f7b610&quot;) group = &quot;Orange&quot;;
++ else if (highlight.name() == &quot;#7baae7&quot;) group = &quot;Smooth&quot;;
++ else if (highlight.name() == &quot;#148dcd&quot;) group = &quot;Steel&quot;;
++
++ if (!group.isEmpty())
++ {
++ conf.beginGroup(group);
++ data-&gt;color[0] = (conf.value(&quot;color0&quot;, highlight.light(150))).value&lt;QColor&gt;();
++ data-&gt;color[1] = (conf.value(&quot;color1&quot;, highlight.light(137))).value&lt;QColor&gt;();
++ data-&gt;color[2] = (conf.value(&quot;color2&quot;, highlight)).value&lt;QColor&gt;();
++ data-&gt;color[3] = (conf.value(&quot;color3&quot;, highlight.light(112))).value&lt;QColor&gt;();
++ data-&gt;color[4] = (conf.value(&quot;color4&quot;, highlight.light(130))).value&lt;QColor&gt;();
++ conf.endGroup();
++ } else
++ {
++ data-&gt;color[0] = highlight.light(150);
++ data-&gt;color[1] = highlight.light(137);
++ data-&gt;color[2] = highlight;
++ data-&gt;color[3] = highlight.dark(112);
++ data-&gt;color[4] = highlight.dark(130);
++ }
++
++ m_data[hash] = data;
++ return data;
++}
++
++void IaOraStyle::drawItemText(QPainter *painter, const QRect &amp;rect, int alignment, const QPalette &amp;pal,
++ bool enabled, const QString&amp; text, QPalette::ColorRole textRole) const
++{
++ ColorData *data = lookupData(pal);
++ QPen oldPen = painter-&gt;pen();
++
++ QPen pen = oldPen;
++
++ if (!enabled)
++ pen.setColor(data-&gt;gray[4]);
++ else if (textRole != QPalette::NoRole)
++ pen.setColor(pal.color(textRole));
++
++ painter-&gt;setPen(pen);
++ painter-&gt;drawText(rect, alignment, text);
++
++ painter-&gt;setPen(oldPen);
++}
++
++void IaOraStyle::drawBranch(const QStyleOption *option, QPainter *painter)
++{
++ ColorData *data = lookupData(option-&gt;palette);
++ painter-&gt;save();
++ QPointF center = option-&gt;rect.center();
++ QColor lineColor = option-&gt;palette.color(QPalette::Text);
++ QPen pen = painter-&gt;pen();
++ pen.setStyle(Qt::DotLine);
++ pen.setColor(lineColor);
++ painter-&gt;setPen(pen);
++
++ if (option-&gt;state &amp; (QStyle::State_Item | QStyle::State_Sibling))
++ {
++ if (option-&gt;state &amp; QStyle::State_Sibling)
++ {
++ painter-&gt;drawLine(center.x(), center.y(), center.x(), option-&gt;rect.bottom());
++ painter-&gt;drawLine(center.x(), option-&gt;rect.y() + 1, center.x(), center.y());
++ }
++ else
++ painter-&gt;drawLine(center.x(), option-&gt;rect.y(), center.x(), center.y());
++
++ if (option-&gt;state &amp; QStyle::State_Item){
++ if (option-&gt;direction == Qt::LeftToRight)
++ painter-&gt;drawLine(m_parent-&gt;visualPos(option-&gt;direction, option-&gt;rect, QPoint(center.x() + 1, center.y())),
++ m_parent-&gt;visualPos(option-&gt;direction, option-&gt;rect, QPoint(option-&gt;rect.right(), center.y())));
++ else{
++ painter-&gt;drawLine(center.x(), center.y(), center.x() + 1, center.y());
++ painter-&gt;drawLine(center.x(), center.y(), option-&gt;rect.left(), center.y());
++ }
++ }
++ }
++ if (option-&gt;state &amp; QStyle::State_Children)
++ {
++ painter-&gt;setBrush(data-&gt;white);
++ painter-&gt;setPen(Qt::NoPen);
++ QRect r(0,0,9,9);
++ r.moveCenter(option-&gt;rect.center());
++ painter-&gt;drawRect(r.adjusted(1,1,-1,-1));
++ drawFrameCuttingOne(painter, r, lineColor);
++ drawSymbol(option, painter, (option-&gt;state &amp; QStyle::State_Open) ? SymbolMinus : SymbolPlus);
++ }
++ painter-&gt;restore();
++}
++
++void IaOraStyle::drawPanelItemViewItem(const QStyleOption *opt, QPainter *p, bool itemViewItem)
++{
++ const QStyleOptionViewItemV4 *pvi = qstyleoption_cast&lt;const QStyleOptionViewItemV4 *&gt;(opt);
++ if (!pvi)
++ return;
++ else
++ p-&gt;fillRect(opt-&gt;rect, pvi-&gt;backgroundBrush);
++
++ ColorData *data = lookupData(opt-&gt;palette);
++
++ p-&gt;save();
++ p-&gt;setRenderHint(QPainter::Antialiasing);
++ QRect r = pvi-&gt;rect;
++
++ //if (pvi-&gt;state &amp; QStyle::State_HasFocus)
++ // in case of the need to use the HasFocus state, remove the commented lines and commend the above line
++ /*if (( pvi-&gt;state &amp; QStyle::State_HasFocus ) || ( pvi-&gt;state &amp; QStyle::State_Selected))
++ {
++ p-&gt;setBrush(data-&gt;color[2]);
++ p-&gt;setPen(Qt::NoPen);
++ p-&gt;drawRoundedRect(r, 3.0, 3.0);
++ }*/
++ /*else*/ if (pvi-&gt;state &amp; QStyle::State_Selected)
++ {
++ p-&gt;setBrush(data-&gt;color[2]);
++ p-&gt;setPen(Qt::NoPen);
++ p-&gt;drawRoundedRect(r, 3.0, 3.0);
++ }/**/
++ p-&gt;restore();
++
++ if (itemViewItem){
++ QRect checkRect;
++ QRect iconRect;
++ QSize iconSize = pvi-&gt;decorationSize;
++ bool hasCheck = pvi-&gt;features &amp; QStyleOptionViewItemV2::HasCheckIndicator;
++ bool hasIcon = pvi-&gt;features &amp; QStyleOptionViewItemV2::HasDecoration;
++ bool hasText = pvi-&gt;features &amp; QStyleOptionViewItemV2::HasDisplay;
++ bool leftToRight = (pvi-&gt;direction == Qt::LeftToRight) ? true : false;
++
++ // the checkbox on the item
++ if (hasCheck){
++ QStyleOptionButton button;
++
++
++ checkRect = QRect(r.left(), r.center().y() - 6, 13, 13);
++ if (!hasText) checkRect.adjust(6, 0, 6, 0); // TEMPORARY HACK
++ //if (!hasText) checkRect.moveCenter(r.center());
++
++ checkRect = QStyle::visualRect(pvi-&gt;direction, pvi-&gt;rect, checkRect);
++
++ button.rect = checkRect;
++ button.state = pvi-&gt;state;
++
++ switch (pvi-&gt;checkState){
++ case Qt::Unchecked:
++ button.state |= QStyle::State_Off;
++
++ break;
++ case Qt::PartiallyChecked:
++ button.state |= QStyle::State_NoChange;
++
++ break;
++ case Qt::Checked:
++ button.state |= QStyle::State_On;
++
++ break;
++ }
++
++ drawCheckBox(&amp;button, p);
++ }
++
++ int shiftx = 0, shifty = 0, shiftw = 0;
++
++ // some icon
++ if (hasIcon){
++ switch (pvi-&gt;decorationPosition){
++ case QStyleOptionViewItem::Left:
++ if (hasCheck)
++ iconRect = QRect(r.topLeft() + QPoint(checkRect.width() + 2, 0), iconSize);
++ else
++ iconRect = QRect(r.topLeft(), iconSize);
++
++ if (leftToRight) shiftx = 3 + iconSize.width();
++ else shiftw = -(3 + iconSize.width());
++
++ break;
++ case QStyleOptionViewItem::Right:
++ iconRect = QRect(r.topRight() - QPoint(iconSize.width(), 0), iconSize);
++ shiftw = -(3 + iconSize.width());
++
++ break;
++ case QStyleOptionViewItem::Top:
++ iconRect = QRect(r.left(), r.top(), r.width(), iconSize.height());
++ shifty = iconRect.height();
++
++ break;
++ case QStyleOptionViewItem::Bottom:
++ iconRect = QRect(r.left(), r.bottom() - iconSize.height(), r.width(), r.bottom());
++
++ break;
++ }
++
++ iconRect = QStyle::visualRect(pvi-&gt;direction, pvi-&gt;rect, iconRect);
++
++ QIcon::Mode mode = pvi-&gt;state &amp; QStyle::State_Enabled ? QIcon::Normal : QIcon::Disabled;
++ QPixmap pix = pvi-&gt;icon.pixmap(iconSize, mode);
++
++ m_parent-&gt;drawItemPixmap(p, iconRect, pvi-&gt;displayAlignment, pix);
++ } else shiftx = 3;
++
++ // and the text
++ p-&gt;save();
++ QFont font = pvi-&gt;font;
++ if (font.bold()) p-&gt;setFont(font);
++
++ if (hasCheck){
++ if (leftToRight) shiftx += iconSize.width();
++ else shiftw -= iconSize.width();
++ }
++
++ drawItemText(p, r.adjusted(shiftx, shifty, shiftw, 0), pvi-&gt;displayAlignment, pvi-&gt;palette, true,
++ pvi-&gt;text, (pvi-&gt;state &amp; QStyle::State_Selected) ? QPalette::HighlightedText : QPalette::Text);
++ p-&gt;restore();
++ }
++}
++
++void IaOraStyle::drawPanelItemViewRow(const QStyleOption *opt, QPainter *p){
++ const QStyleOptionViewItemV4 *row = qstyleoption_cast&lt;const QStyleOptionViewItemV4 *&gt;(opt);
++
++ if (!row)
++ return;
++
++ ColorData *data = lookupData(opt-&gt;palette);
++ bool alternateColor = row-&gt;features &amp; QStyleOptionViewItemV2::Alternate;
++
++ p-&gt;save();
++ p-&gt;setRenderHint(QPainter::Antialiasing);
++
++ QPalette::ColorGroup colorGroup(opt-&gt;state &amp; QStyle::State_Enabled
++ ? opt-&gt;state &amp; QStyle::State_Active
++ ? QPalette::Normal
++ : QPalette::Inactive
++ : QPalette::Disabled);
++ if (alternateColor)
++ p-&gt;fillRect(opt-&gt;rect, opt-&gt;palette.brush(colorGroup, QPalette::AlternateBase));
++
++ p-&gt;restore();
++}
++
+
+
+Property changes on: theme/ia_ora-kde4/src/iaorastyle.cpp
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4srciaorastyleh">Added: theme/ia_ora-kde4/src/iaorastyle.h</a>
+===================================================================
+--- theme/ia_ora-kde4/src/iaorastyle.h (rev 0)
++++ theme/ia_ora-kde4/src/iaorastyle.h 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,145 @@
++/*
++ * Copyright 2008 Gustavo Pichorim Boiko &lt;boiko@mandriva.com&gt;
++ * Copyright 2008-2009 Rodrigo Gonçalves de Oliveira &lt;rodrigo@mandriva.com&gt;
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 3 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ */
++
++#ifndef IAORASTYLE_H
++#define IAORASTYLE_H
++
++#include &lt;QColor&gt;
++#include &lt;QRect&gt;
++#include &lt;QPalette&gt;
++#include &lt;QIcon&gt;
++#include &lt;QStyle&gt;
++#include &lt;QPainter&gt;
++#include &lt;QStyleOption&gt;
++#include &lt;QStyle&gt;
++#include &lt;QHash&gt;
++
++typedef struct
++{
++ QColor gray[7];
++ QColor color[5];
++ QColor black;
++ QColor white;
++} ColorData;
++
++class IaOraStyle
++{
++public:
++ enum FrameType
++ {
++ FrameFocus,
++ FrameGeneric,
++ FrameMenuBar,
++ FrameToolBar,
++ FrameProgressBar,
++ FrameLineEdit,
++ FrameHeader,
++ FrameComboBox,
++ FrameMenu,
++ FrameTabBar,
++ FrameGroupBox,
++ FrameFrame
++ };
++ enum Border
++ {
++ BorderNone = 0,
++ BorderTop = 1,
++ BorderLeft = 2,
++ BorderBottom = 4,
++ BorderRight = 8,
++ BorderAll = 15
++ };
++
++ enum Symbol
++ {
++ SymbolArrowLeft,
++ SymbolArrowRight,
++ SymbolArrowUp,
++ SymbolArrowDown,
++ SymbolPlus,
++ SymbolMinus
++ };
++ IaOraStyle(QStyle *parent);
++ ~IaOraStyle();
++
++ void drawFrame(const QStyleOption *opt, QPainter *p, FrameType f = FrameGeneric, QRect optRect = QRect());
++ //void drawFrame(const QStyleOption *opt, QPainter *p, FrameType f = FrameGeneric);
++ void drawBorder(QPainter *painter, const QStyleOption *opt, const QRect &amp;rect, bool active, int border = BorderAll);
++ void drawSeparator(const QStyleOption *opt, QPainter *p, int margin = 5);
++ void drawHandle(const QStyleOption *opt, QPainter *p);
++ void drawButton(const QStyleOption *opt, QPainter *p, bool simplified = false, bool vertical = false);
++ void drawButtonDefaultBorder(const QStyleOption *opt, QPainter *p);
++ void drawToolButton(const QStyleOption *opt, QPainter *p/*, bool simplified = false, bool vertical = false*/);
++ void drawItemText(QPainter *painter, const QRect &amp;rect, int alignment, const QPalette &amp;pal,
++ bool enabled, const QString&amp; text, QPalette::ColorRole textRole) const;
++ void drawProgressBarContents(const QStyleOption *opt, QPainter *p, bool kde = false);
++ void drawCheckBox(const QStyleOption *opt, QPainter *p);
++ void drawRadioButton(const QStyleOption *opt, QPainter *p);
++ void drawSymbol(const QStyleOption *opt, QPainter *p, Symbol s);
++ void drawScrollBarEmptySpace(const QStyleOption *opt, QPainter *p);
++ void drawScrollBarButton(const QStyleOption *opt, QPainter *p, Symbol s);
++ void drawScrollBarHandle(const QStyleOption *opt, QPainter *p);
++ void drawSlider(const QStyleOption *opt, QPainter *p,
++ const QRect &amp;grooveRegion, const QRect &amp;handle, const QRect &amp;ticks);
++ void drawComboBox(const QStyleOptionComplex *opt, QPainter *p);
++ void drawComboBoxLabel(const QStyleOption *opt, QPainter *p);
++ void drawSpinBox(const QStyleOptionComplex *opt, QPainter *p);
++ void drawDial(const QStyleOption *opt, QPainter *p);
++ void drawQ3ListView(const QStyleOption *opt, QPainter *p, const QWidget *w);
++ void drawMenuItem(const QStyleOption *opt, QPainter *p, bool saveSpaceForIcon = true);
++ void drawDockWindowTitle(const QStyleOption *opt, QPainter *p);
++ void drawTabBarTab(const QStyleOption *opt, QPainter *p);
++ void drawTitleBarButton(const QStyleOptionComplex *opt, QPainter *p, const QWidget *w, QStyle::SubControl control, QStyle::StandardPixmap icon);
++ void drawTitleBar(const QStyleOptionComplex *opt, QPainter *p, const QWidget *w = 0);
++ void drawBranch(const QStyleOption *opt, QPainter *p);
++ void drawPanelItemViewItem(const QStyleOption *opt, QPainter *p, bool itemText = false);
++ void drawPanelItemViewRow(const QStyleOption *opt, QPainter *p);
++ QIcon standardIcon(QStyle::StandardPixmap icon, const QStyleOption *option, const QWidget *widget);
++
++ bool hasIcon(QStyle::StandardPixmap icon);
++protected:
++ static ColorData *lookupData(const QPalette &amp;pal);
++
++private:
++ static QHash&lt;QString, ColorData*&gt; m_data;
++ QStyle *m_parent;
++};
++
++inline void drawFrameCuttingOne(QPainter *p, const QRect &amp;r, const QColor &amp;c)
++{
++ int top = r.top(), left = r.left(), bottom = r.bottom(), right = r.right();
++ p-&gt;setPen(QPen(c,1));
++ p-&gt;drawLine(left+1, top, right-1, top); //top
++ p-&gt;drawLine(left, top+1, left, bottom-1); //left
++ p-&gt;drawLine(left+1, bottom, right-1, bottom); //bottom
++ p-&gt;drawLine(right, top+1, right, bottom-1); // right*/
++}
++
++inline void fillRectCuttingOne(QPainter *p, const QRect &amp;r, const QBrush &amp;b)
++{
++ p-&gt;fillRect(r.adjusted(1,0,-1,0), b);
++ p-&gt;setPen(QPen(b, 1));
++
++ int top = r.top(), bottom = r.bottom(), left = r.left(), right = r.right();
++ p-&gt;drawLine(left, top+1, left, bottom-1);
++ p-&gt;drawLine(right, top+1, right, bottom-1);
++}
++
++#endif
+
+
+Property changes on: theme/ia_ora-kde4/src/iaorastyle.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4srciaorastyle_buttoncpp">Added: theme/ia_ora-kde4/src/iaorastyle_button.cpp</a>
+===================================================================
+--- theme/ia_ora-kde4/src/iaorastyle_button.cpp (rev 0)
++++ theme/ia_ora-kde4/src/iaorastyle_button.cpp 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,144 @@
++/*
++ * Copyright 2008 Gustavo Pichorim Boiko &lt;boiko@mandriva.com&gt;
++ * Copyright 2008-2009 Rodrigo Gonçalves de Oliveira &lt;rodrigo@mandriva.com&gt;
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 3 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ */
++
++#include &quot;iaorastyle.h&quot;
++
++void IaOraStyle::drawButton(const QStyleOption *opt, QPainter *p, bool simplified, bool vertical)
++{
++ bool enabled = (opt-&gt;state &amp; QStyle::State_Enabled);
++
++ QPalette pal = opt-&gt;palette;
++ if (!enabled)
++ pal.setCurrentColorGroup(QPalette::Active); // when the button is disabled, use the same palette as if enabled
++
++ ColorData *data = lookupData(pal);
++
++ // TODO: cache the gradients so that it is more efficient
++ bool sunken = (opt-&gt;state &amp; QStyle::State_Sunken);
++ bool on = (opt-&gt;state &amp; QStyle::State_On);
++ QRect r = opt-&gt;rect;
++ int top = r.top(), left = r.left(), bottom = r.bottom(), right = r.right();
++
++ QPen oldPen = p-&gt;pen();
++
++ QLinearGradient g;
++ if (vertical)
++ {
++ g.setStart(left, 0);
++ g.setFinalStop(right, 0);
++ }
++ else
++ {
++ g.setStart(0, top);
++ g.setFinalStop(0, bottom);
++ }
++
++ if (sunken || on)
++ { g.setColorAt(0., data-&gt;gray[2]);
++ g.setColorAt(1., data-&gt;gray[1]);
++ }
++ else
++ {
++ g.setColorAt(0., data-&gt;gray[0]);
++ g.setColorAt(1., data-&gt;gray[2]);
++ }
++
++ QRect contents = r;
++ if (!simplified)
++ contents.adjust(2,2,-2,-2);
++ p-&gt;fillRect(contents, g);
++
++ if (!simplified)
++ {
++ //draw the lines around
++ if (!sunken &amp;&amp; !on)
++ p-&gt;setPen(data-&gt;white);
++ else
++ p-&gt;setPen(enabled ? data-&gt;gray[1] : data-&gt;gray[2]);
++ p-&gt;drawLine(left + 2, top + 1, right - 2, top + 1);
++ p-&gt;drawLine(left + 1, top + 2, left + 1, bottom - 2);
++
++ if (enabled)
++ p-&gt;setPen(data-&gt;gray[1]);
++ else
++ p-&gt;setPen((sunken || on) ? data-&gt;white : data-&gt;gray[1]);
++ p-&gt;drawLine(left + 2, bottom - 1, right - 2, bottom - 1);
++ p-&gt;drawLine(right - 1, top + 2, right - 1, bottom - 2);
++
++ // the outter line
++ if (enabled)
++ p-&gt;setPen(data-&gt;gray[5]);
++ else
++ p-&gt;setPen(data-&gt;gray[4]);
++ p-&gt;drawLine(left + 2, top, right - 2, top); // top
++ p-&gt;drawLine(left, top + 2, left, bottom - 2); // left
++ p-&gt;setPen(data-&gt;gray[4]);
++ p-&gt;drawLine(left + 2, bottom, right - 2, bottom); // bottom
++ p-&gt;drawLine(right, top + 2, right, bottom - 2); // right
++
++ // and finally the four points
++ QPoint points[4];
++ points[0] = QPoint(left + 1, top + 1);
++ points[1] = QPoint(right - 1, top + 1);
++ points[2] = QPoint(right - 1, bottom - 1);
++ points[3] = QPoint(left + 1, bottom - 1);
++ p-&gt;drawPoints(points, 4);
++
++ // if selected, draw the selection frame
++ if (opt-&gt;state &amp; QStyle::State_HasFocus)
++ {
++ QStyleOption copy = *opt;
++ copy.rect = r.adjusted(2, 2, -2, -2);
++ drawFrame(&amp;copy, p, FrameFocus);
++ }
++ }
++
++ p-&gt;setPen(oldPen);
++}
++
++void IaOraStyle::drawButtonDefaultBorder(const QStyleOption *opt, QPainter *p)
++{
++ ColorData *data = lookupData(opt-&gt;palette);
++ QRect r = opt-&gt;rect;
++ int top = r.top(), left = r.left(), bottom = r.bottom(), right = r.right();
++
++ QPen oldPen = p-&gt;pen();
++
++ p-&gt;setPen(data-&gt;color[4]);
++ p-&gt;drawLine(left+3, top, right-3, top); //top
++ p-&gt;drawLine(left+3, bottom, right-3, bottom); //bottom
++ p-&gt;drawLine(left, top+3, left, bottom-3); //left
++ p-&gt;drawLine(right, top+3, right, bottom-3); //right
++
++ //the points
++ QPoint points[8];
++ points[0] = QPoint(left+1,top+2);
++ points[1] = QPoint(left+2,top+1);
++ points[2] = QPoint(right-1,top+2);
++ points[3] = QPoint(right-2,top+1);
++ points[4] = QPoint(left+1,bottom-2);
++ points[5] = QPoint(left+2,bottom-1);
++ points[6] = QPoint(right-1,bottom-2);
++ points[7] = QPoint(right-2,bottom-1);
++ p-&gt;drawPoints(points, 8);
++
++ p-&gt;setPen(oldPen);
++}
++
+
+
+Property changes on: theme/ia_ora-kde4/src/iaorastyle_button.cpp
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4srciaorastyle_comboboxcpp">Added: theme/ia_ora-kde4/src/iaorastyle_combobox.cpp</a>
+===================================================================
+--- theme/ia_ora-kde4/src/iaorastyle_combobox.cpp (rev 0)
++++ theme/ia_ora-kde4/src/iaorastyle_combobox.cpp 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,110 @@
++/*
++ * Copyright 2008 Gustavo Pichorim Boiko &lt;boiko@mandriva.com&gt;
++ * Copyright 2008-2009 Rodrigo Gonçalves de Oliveira &lt;rodrigo@mandriva.com&gt;
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 3 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ */
++
++#include &quot;iaorastyle.h&quot;
++
++void IaOraStyle::drawComboBox(const QStyleOptionComplex *opt, QPainter *p)
++{
++ /* TODO: check why Qt is not respecting PM_ComboBoxFrame */
++ const QStyleOptionComboBox *cmb = qstyleoption_cast&lt;const QStyleOptionComboBox *&gt;(opt);
++ bool sunken = cmb-&gt;state &amp; QStyle::State_On; // play dead if combobox has no items
++ QRect r = opt-&gt;rect;
++
++ QStyleOptionComboBox copy = *cmb;
++ if (!cmb)
++ return;
++
++ if (!cmb-&gt;editable)
++ {
++ QStyleOptionButton buttonOption;
++ buttonOption.QStyleOption::operator=(*cmb);
++ if (!sunken)
++ buttonOption.state &amp;= ~QStyle::State_Sunken;
++
++ m_parent-&gt;drawPrimitive(QStyle::PE_PanelButtonCommand, &amp;buttonOption, p);
++ }
++ else
++ {
++ if (cmb-&gt;frame &amp;&amp; (cmb-&gt;subControls &amp; QStyle::SC_ComboBoxFrame))
++ {
++ QRect r = m_parent-&gt;subControlRect(QStyle::CC_ComboBox, cmb, QStyle::SC_ComboBoxFrame);
++
++ copy.rect = r;
++ drawFrame(&amp;copy, p);
++ }
++ }
++
++ if (cmb-&gt;subControls &amp; QStyle::SC_ComboBoxArrow)
++ {
++ copy.rect = m_parent-&gt;subControlRect(QStyle::CC_ComboBox, opt, QStyle::SC_ComboBoxArrow);
++
++ if (cmb-&gt;editable)
++ {
++ // draw the button background
++ drawButton(&amp;copy, p, true);
++ drawBorder(p, opt, copy.rect, (cmb-&gt;state &amp; QStyle::State_Enabled), BorderLeft);
++
++ }
++ copy.rect.adjust(2,1,0,0);
++ drawSymbol(&amp;copy, p, IaOraStyle::SymbolArrowDown);
++ if (!cmb-&gt;editable)
++ {
++ // draw also the separator
++ copy.rect = QRect(copy.rect.left() - 2, r.top() + 4, 2, r.height() - 8);
++ copy.state = QStyle::State_Horizontal;
++ drawSeparator(&amp;copy, p, 4);
++ }
++ }
++}
++
++void IaOraStyle::drawComboBoxLabel(const QStyleOption *opt, QPainter *p)
++{
++ const QStyleOptionComboBox *cb = qstyleoption_cast&lt;const QStyleOptionComboBox*&gt;(opt);
++ if (!cb)
++ return;
++
++ QRect r = m_parent-&gt;subControlRect(QStyle::CC_ComboBox, cb, QStyle::SC_ComboBoxEditField);
++ r.adjust(3,1,-1,0);
++
++ if (!cb-&gt;currentIcon.isNull())
++ {
++ QIcon::Mode mode = cb-&gt;state &amp; QStyle::State_Enabled ? QIcon::Normal : QIcon::Disabled;
++ QPixmap pix = cb-&gt;currentIcon.pixmap(cb-&gt;iconSize, mode);
++ QRect iconRect(r);
++ iconRect.setWidth(cb-&gt;iconSize.width() + 4);
++ iconRect = m_parent-&gt;alignedRect(cb-&gt;direction, Qt::AlignLeft | Qt::AlignVCenter, iconRect.size(), r);
++
++ if (cb-&gt;editable)
++ p-&gt;fillRect(iconRect, opt-&gt;palette.brush(QPalette::Base));
++ m_parent-&gt;drawItemPixmap(p, iconRect, Qt::AlignCenter, pix);
++
++ if (cb-&gt;direction == Qt::RightToLeft)
++ r.translate(-4 - cb-&gt;iconSize.width(), 0);
++ else
++ r.translate(cb-&gt;iconSize.width() + 4, 0);
++ }
++
++ if (!cb-&gt;currentText.isEmpty() &amp;&amp; !cb-&gt;editable)
++ {
++ m_parent-&gt;drawItemText(p, r.adjusted(1, 0, -1, 0),
++ m_parent-&gt;visualAlignment(cb-&gt;direction, Qt::AlignLeft | Qt::AlignVCenter),
++ cb-&gt;palette, cb-&gt;state &amp; QStyle::State_Enabled, cb-&gt;currentText);
++ }
++}
+
+
+Property changes on: theme/ia_ora-kde4/src/iaorastyle_combobox.cpp
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4srciaorastyle_dialcpp">Added: theme/ia_ora-kde4/src/iaorastyle_dial.cpp</a>
+===================================================================
+--- theme/ia_ora-kde4/src/iaorastyle_dial.cpp (rev 0)
++++ theme/ia_ora-kde4/src/iaorastyle_dial.cpp 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,96 @@
++/*
++ * Copyright 2008 Gustavo Pichorim Boiko &lt;boiko@mandriva.com&gt;
++ * Copyright 2008-2010 Rodrigo Gonçalves de Oliveira &lt;rodrigo@mandriva.com&gt;
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 3 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ */
++
++#include &quot;iaorastyle.h&quot;
++
++#include &lt;cmath&gt;
++
++void IaOraStyle::drawDial(const QStyleOption *opt, QPainter *p)
++{
++ QPalette pal = opt-&gt;palette;
++ pal.setCurrentColorGroup(QPalette::Active);
++ ColorData *data = lookupData(pal);
++
++ const QStyleOptionSlider *dial = qstyleoption_cast&lt;const QStyleOptionSlider *&gt;(opt);
++ if (!dial)
++ return;
++
++ // use a square
++ QRect r = QRect(0,0, qMin(opt-&gt;rect.width(), opt-&gt;rect.height()), qMin(opt-&gt;rect.width(), opt-&gt;rect.height()));
++ r.moveCenter(opt-&gt;rect.center());
++ r.adjust(3,3,-3,-3);
++
++ QPen oldPen = p-&gt;pen();
++ QBrush oldBrush = p-&gt;brush();
++ bool aa = p-&gt;renderHints() &amp; QPainter::Antialiasing;
++
++ QLinearGradient g1(r.bottomLeft(), r.topLeft());
++ g1.setColorAt(0., data-&gt;gray[0]);
++ g1.setColorAt(1., data-&gt;gray[2]);
++
++ QLinearGradient g2(r.topLeft(), r.bottomRight());
++ g2.setColorAt(0., data-&gt;white);
++ g2.setColorAt(0.5, data-&gt;gray[4]);
++ g2.setColorAt(1., data-&gt;gray[5]);
++
++ p-&gt;setBrush(g1);
++ p-&gt;setPen(QPen(g2, 2));
++ p-&gt;setRenderHint(QPainter::Antialiasing, true);
++ p-&gt;drawEllipse(r);
++
++ // draw the indicator
++ int gripSize = opt-&gt;fontMetrics.height() * 0.5;
++
++ QRect grip(0,0,gripSize,gripSize);
++ grip.moveCenter(r.center());
++
++ // angle calculation from qcommonstyle.cpp (c) Trolltech 1992-2007, ASA.
++ qreal angle;
++ int sliderPosition = dial-&gt;upsideDown ? dial-&gt;sliderPosition : (dial-&gt;maximum - dial-&gt;sliderPosition);
++ int range = dial-&gt;maximum - dial-&gt;minimum;
++ if (!range)
++ {
++ angle = M_PI / 2;
++ }
++ else if (dial-&gt;dialWrapping)
++ {
++ angle = M_PI * 1.5 - (sliderPosition - dial-&gt;minimum) * 2 * M_PI / range;
++ }
++ else
++ {
++ angle = (M_PI * 8 - (sliderPosition - dial-&gt;minimum) * 10 * M_PI / range) / 6;
++ }
++ int d = r.width() - 10;
++ qreal rr = d / 2.0 - gripSize - 2;
++ grip.translate(int(0.5 + rr * cos(angle)), int(0.5 - rr * sin(angle)));
++
++ QRadialGradient g3(grip.left() + (grip.width() * 0.7), grip.top() + (grip.height() * 0.7), grip.height());
++ g3.setColorAt(0., data-&gt;color[1]);
++ g3.setColorAt(0.3, data-&gt;color[2]);
++ g3.setColorAt(1., data-&gt;color[4]);
++ p-&gt;setPen(Qt::NoPen);
++ p-&gt;setBrush(g3);
++ p-&gt;drawEllipse(grip);
++
++ p-&gt;setPen(oldPen);
++ p-&gt;setBrush(oldBrush);
++ p-&gt;setRenderHint(QPainter::Antialiasing, aa);
++}
++
+
+
+Property changes on: theme/ia_ora-kde4/src/iaorastyle_dial.cpp
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4srciaorastyle_framecpp">Added: theme/ia_ora-kde4/src/iaorastyle_frame.cpp</a>
+===================================================================
+--- theme/ia_ora-kde4/src/iaorastyle_frame.cpp (rev 0)
++++ theme/ia_ora-kde4/src/iaorastyle_frame.cpp 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,391 @@
++/*
++ * Copyright 2008 Gustavo Pichorim Boiko &lt;boiko@mandriva.com&gt;
++ * Copyright 2008-2010 Rodrigo Gonçalves de Oliveira &lt;rodrigo@mandriva.com&gt;
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 3 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ */
++
++#include &quot;iaorastyle.h&quot;
++
++void IaOraStyle::drawFrame(const QStyleOption *option, QPainter *p, FrameType type, QRect optRect)
++//void IaOraStyle::drawFrame(const QStyleOption *option, QPainter *p, FrameType type)
++{
++ ColorData *data = lookupData(option-&gt;palette);
++
++ bool enabled = (option-&gt;state &amp; QStyle::State_Enabled);
++
++ QRect r;
++ if (optRect.isValid())
++ r = optRect;
++ else
++ r = option-&gt;rect;
++ //QRect r = option-&gt;rect;
++
++ int top = r.top(), left = r.left(), bottom = r.bottom(), right = r.right();
++ QPen oldPen = p-&gt;pen();
++ QBrush oldBrush = p-&gt;brush();
++
++ switch(type)
++ {
++ case FrameFocus:
++ {
++ QPen pen = p-&gt;pen();
++ pen.setStyle(Qt::DotLine);
++ pen.setColor(option-&gt;palette.color(QPalette::ButtonText));
++ p-&gt;setPen(pen);
++ p-&gt;setBrush(Qt::NoBrush);
++ p-&gt;drawRect(option-&gt;rect.adjusted(1,1,-1,-1));
++ break;
++ }
++ case FrameToolBar:
++ case FrameMenuBar:
++ {
++ // fill the rect using the specified graytone
++ QColor c;
++ if (type == FrameToolBar)
++ c = data-&gt;gray[1];
++ else if (type == FrameMenuBar)
++ c = data-&gt;gray[0];
++ else
++ c = data-&gt;gray[0];
++
++ p-&gt;fillRect(r, c);
++
++ // now the lines around
++ p-&gt;setPen(data-&gt;gray[2]);
++
++ // we assume that the top was already drawn, or that the toolbar is the topmost
++ // widget from the window, and in this case it does not need the top line
++ p-&gt;drawLine(left, bottom-1, right, bottom-1);
++ p-&gt;setPen(data-&gt;white);
++ p-&gt;drawLine(left, bottom, right, bottom);
++ break;
++ }
++ case FrameProgressBar:
++ {
++ // fill the internal rect
++ QRect contents = r.adjusted(1,1,-1,-1);
++ p-&gt;fillRect(contents, data-&gt;gray[0]);
++
++ // draw the round frame
++ drawFrameCuttingOne(p, r, data-&gt;gray[5]);
++ break;
++ }
++ case FrameLineEdit:
++ {
++ const QStyleOptionFrame *panel = qstyleoption_cast&lt;const QStyleOptionFrame *&gt;(option);
++ QRect contents = r;
++ contents.adjust(1,1,-1,-1);
++
++ if (panel &amp;&amp; panel-&gt;lineWidth &gt; 0)
++ {
++ drawFrameCuttingOne(p, r, data-&gt;gray[4]);
++ }
++
++ p-&gt;fillRect(contents, (option-&gt;state &amp; QStyle::State_Enabled) ? panel-&gt;palette.base().color(): data-&gt;gray[0]);
++
++ if (option-&gt;state &amp; QStyle::State_HasFocus)
++ {
++ p-&gt;setPen(data-&gt;color[3]);
++ p-&gt;setBrush(Qt::NoBrush);
++ p-&gt;drawRect(contents);
++ }
++ break;
++ }
++ case FrameComboBox:
++ {
++ p-&gt;save();
++
++ QRect tabRect = r.adjusted(0,0,-1,-1);
++ p-&gt;setPen(data-&gt;gray[2]);
++ p-&gt;setBrush(data-&gt;gray[0]);
++
++ p-&gt;drawLine(left, top + 1, left, bottom - 1);
++ p-&gt;drawLine(right, top + 1, right, bottom - 1);
++ p-&gt;drawLine(left + 1, top, right - 1, top);
++ p-&gt;drawLine(left + 1, bottom, right - 1, bottom);
++
++ p-&gt;restore();
++ break;
++ }
++ case FrameHeader:
++ {
++ const QStyleOptionHeader *header = qstyleoption_cast&lt;const QStyleOptionHeader *&gt;(option);
++
++ // draw the button appearance
++ drawButton(option, p, true);
++
++ if (!header)
++ break;
++
++ bool vertical = (header-&gt;orientation == Qt::Vertical);
++ QRect r = option-&gt;rect;
++
++ QLine outterLine, innerLine, previousLine, nextLine;
++ if (vertical)
++ {
++ outterLine = QLine(r.topLeft(), r.bottomLeft());
++ innerLine = QLine(r.topRight(), r.bottomRight());
++ previousLine = QLine(r.topLeft(), r.topRight());
++ nextLine = QLine(r.bottomLeft(), r.bottomRight());
++ }
++ else
++ {
++ outterLine = QLine(r.topLeft(), r.topRight());
++ innerLine = QLine(r.bottomLeft(), r.bottomRight());
++ previousLine = QLine(r.topLeft(), r.bottomLeft());
++ nextLine = QLine(r.topRight(), r.bottomRight());
++ }
++
++ p-&gt;setPen(data-&gt;gray[5]);
++ p-&gt;drawLine(innerLine);
++
++ if (header-&gt;position != QStyleOptionHeader::Beginning)
++ {
++ p-&gt;setPen(Qt::white);
++ p-&gt;drawLine(previousLine);
++ }
++ p-&gt;setPen(data-&gt;gray[2]);
++ p-&gt;drawLine(nextLine);
++
++ break;
++ }
++ case FrameMenu:
++ {
++ drawFrameCuttingOne(p, r, enabled ? data-&gt;gray[5] : data-&gt;gray[4]);
++ break;
++ }
++ case FrameTabBar:
++ {
++ p-&gt;save();
++
++ QRect tabRect = r.adjusted(0,0,-1,-1);
++ p-&gt;setPen(data-&gt;gray[4]);
++ p-&gt;setBrush(data-&gt;gray[0]);
++ p-&gt;drawRect(tabRect);
++
++ p-&gt;restore();
++ break;
++ }
++ case FrameGroupBox:
++ case FrameFrame:
++ {
++ p-&gt;save();
++
++ const QStyleOptionFrame *frame = qstyleoption_cast&lt;const QStyleOptionFrame *&gt;(option);
++ const QStyleOptionFrameV2 *frame2 = qstyleoption_cast&lt;const QStyleOptionFrameV2 *&gt;(option);
++
++ if (!frame)
++ return;
++
++ bool flat = false;
++ if (frame2)
++ flat = (frame2-&gt;features &amp; QStyleOptionFrameV2::Flat);
++
++ bool sunken = (frame-&gt;state &amp; QStyle::State_Sunken);
++ bool raised = (frame-&gt;state &amp; QStyle::State_Raised);
++
++ if (flat &amp;&amp; type == FrameGroupBox)
++ {
++ QRect rect(left, top, r.width(), 4);
++ QStyleOption option;
++ option.state &amp;= ~QStyle::State_Horizontal;
++ option.rect = rect;
++ drawSeparator(&amp;option, p, 0);
++ }
++ else
++ {
++ if (sunken || raised)
++ {
++ drawFrameCuttingOne(p, r, data-&gt;gray[2]);
++
++ QLine lines[2];
++ lines[0] = QLine(left+1,top+1,right-1,top+1);
++ lines[1] = QLine(left+1,top+1,left+1,bottom-2);
++ p-&gt;setPen(sunken ? data-&gt;gray[1] : data-&gt;white);
++ p-&gt;drawLines(lines, 2);
++
++ lines[0] = QLine(right-1,top+1,right-1,bottom-1);
++ lines[1] = QLine(left+1,bottom-1,right-1,bottom-1);
++ p-&gt;setPen(sunken ? data-&gt;white : data-&gt;gray[1]);
++ p-&gt;drawLines(lines, 2);
++ }
++ else
++ {
++ QLine lines[4];
++ // the white lines
++ lines[0] = QLine(left+1,top+1,right,top+1); // top
++ lines[1] = QLine(right,top+1,right,bottom-1); // right
++ lines[2] = QLine(left+1,bottom,right-1,bottom); // bottom
++ lines[3] = QLine(left+1,top+1,left+1,bottom); // left
++ p-&gt;setPen(data-&gt;white);
++ p-&gt;drawLines(lines, 4);
++
++ lines[0] = QLine(left+1,top,right-1,top); // top
++ lines[1] = QLine(right-1,top+1,right-1,bottom-1); // right
++ lines[2] = QLine(left,bottom-1,right-1,bottom-1); // bottom
++ lines[3] = QLine(left,top+1,left,bottom-1); // left
++ p-&gt;setPen(data-&gt;gray[3]);
++ p-&gt;drawLines(lines, 4);
++ }
++ }
++ p-&gt;restore();
++ break;
++ }
++ case FrameGeneric:
++ default:
++ drawFrameCuttingOne(p, r, enabled ? data-&gt;gray[5] : data-&gt;gray[4]);
++ }
++
++ p-&gt;setPen(oldPen);
++ p-&gt;setBrush(oldBrush);
++}
++
++void IaOraStyle::drawBorder(QPainter *painter, const QStyleOption *opt, const QRect &amp;r, bool active, int border)
++{
++ QPen oldPen = painter-&gt;pen();
++ ColorData *data = lookupData(opt-&gt;palette);
++
++ int top = r.top(), left = r.left(), bottom = r.bottom(), right = r.right();
++ painter-&gt;setPen(active ? data-&gt;gray[5] : data-&gt;gray[4]);
++ if (border &amp; BorderTop)
++ painter-&gt;drawLine(left,top,right,top);
++ if (border &amp; BorderLeft)
++ painter-&gt;drawLine(left,top,left,bottom);
++ if (border &amp; BorderBottom)
++ painter-&gt;drawLine(left,bottom,right,bottom);
++ if (border &amp; BorderRight)
++ painter-&gt;drawLine(right,top,right,bottom);
++
++ painter-&gt;setPen(oldPen);
++}
++
++void IaOraStyle::drawSeparator(const QStyleOption *opt, QPainter *p, int margin)
++{
++ ColorData *data = lookupData(opt-&gt;palette);
++ bool toolBarHorizontal = (opt-&gt;state &amp; QStyle::State_Horizontal);
++ QRect r = opt-&gt;rect;
++ QLine line1, line2;
++
++ QPen oldPen = p-&gt;pen();
++ QBrush oldBrush = p-&gt;brush();
++
++ if (toolBarHorizontal)
++ {
++ int middle = (r.left() + r.right()) / 2;
++ line1 = QLine(middle, r.top(), middle, r.bottom());
++ if (r.height() &gt;= 20)
++ {
++ line1.setP1(QPoint(line1.x1(), line1.y1() + margin));
++ line1.setP2(QPoint(line1.x2(), line1.y2() - margin));
++ }
++ line2 = line1.translated(1,0);
++ }
++ else
++ {
++ int middle = (r.top() + r.bottom()) / 2;
++ line1 = QLine(r.left(), middle, r.right(), middle);
++ // remove some points from the edges
++ if (r.width() &gt;= 20)
++ {
++ line1.setP1(QPoint(line1.x1()+margin, line1.y1()));
++ line1.setP2(QPoint(line1.x2()-margin, line1.y1()));
++ }
++ line2 = line1.translated(0,1);
++ }
++
++ p-&gt;setPen(data-&gt;gray[2]);
++ p-&gt;drawLine(line1);
++ p-&gt;setPen(data-&gt;white);
++ p-&gt;drawLine(line2);
++
++ p-&gt;setPen(oldPen);
++}
++
++void IaOraStyle::drawHandle(const QStyleOption *opt, QPainter *p)
++{
++ QPalette pal = opt-&gt;palette;
++ pal.setCurrentColorGroup(QPalette::Active);
++ ColorData *data = lookupData(pal);
++
++ bool toolBarHorizontal = (opt-&gt;state &amp; QStyle::State_Horizontal);
++ QRect r = opt-&gt;rect;
++ QList&lt;QPoint&gt; dots;
++
++ QPen oldPen = p-&gt;pen();
++
++ // assume the space between the dots is of 4 pixels (TODO: check if it is not more)
++ // each dot has height of 4 (*3 = 12)
++ // the space is assumed to be 4 (*2 = 8)
++ // --&gt; the total height is then 20
++ if (toolBarHorizontal)
++ {
++ if (r.height() &gt; 30)
++ {
++ int start = (r.top() + r.bottom()) / 2 - 10; // 10 is half the size of the dot block
++ int middle = (r.left() + r.right()) / 2 - 2;
++
++ for (int i = 0; i&lt; 3; ++i)
++ {
++ dots.append(QPoint(middle, start));
++ start += 8; // 4 from the size and 4 from the spacing
++ }
++ }
++ else // only a single dot in the middle
++ dots.append(QPoint((r.left() + r.right()) / 2 - 2, (r.top() + r.bottom()) / 2 - 2));
++ }
++ else
++ {
++ if (r.width() &gt; 30)
++ {
++ int start = (r.left() + r.right()) / 2 - 10; // 10 is half the size of the dot block
++ int middle = (r.top() + r.bottom()) / 2 - 2;
++
++ for (int i = 0; i&lt; 3; ++i)
++ {
++ dots.append(QPoint(start, middle));
++ start += 8; // 4 from the size and 4 from the spacing
++ }
++ }
++ else // only a single dot in the middle
++ dots.append(QPoint((r.left() + r.right()) / 2 - 2, (r.top() + r.bottom()) / 2 - 2));
++ }
++
++ // draw all dots
++ foreach(QPoint dot, dots)
++ {
++ int x = dot.x(), y = dot.y();
++
++ // draw the first color
++ p-&gt;setPen(data-&gt;color[4]);
++ p-&gt;drawLine(x+1, y, x+2, y);
++ p-&gt;drawLine(x, y+1, x+3, y+1);
++
++ // the second color
++ p-&gt;setPen(data-&gt;color[2]);
++ p-&gt;drawLine(x, y+2, x+1, y+2);
++ p-&gt;drawPoint(x+1, y+3);
++
++ // the third color
++ p-&gt;setPen(data-&gt;color[1]);
++ p-&gt;drawLine(x+2, y+2, x+3, y+2);
++ p-&gt;drawPoint(x+2, y+3);
++ }
++
++ // restore pen
++ p-&gt;setPen(oldPen);
++}
++
+
+
+Property changes on: theme/ia_ora-kde4/src/iaorastyle_frame.cpp
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4srciaorastyle_iconscpp">Added: theme/ia_ora-kde4/src/iaorastyle_icons.cpp</a>
+===================================================================
+--- theme/ia_ora-kde4/src/iaorastyle_icons.cpp (rev 0)
++++ theme/ia_ora-kde4/src/iaorastyle_icons.cpp 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,192 @@
++/*
++ * Copyright 2008 Gustavo Pichorim Boiko &lt;boiko@mandriva.com&gt;
++ * Copyright 2008-2009 Rodrigo Gonçalves de Oliveira &lt;rodrigo@mandriva.com&gt;
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 3 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ */
++
++#include &quot;iaorastyle.h&quot;
++#include &lt;QPixmapCache&gt;
++#include &lt;QApplication&gt;
++
++bool IaOraStyle::hasIcon(QStyle::StandardPixmap icon)
++{
++ switch (icon)
++ {
++ case QStyle::SP_DockWidgetCloseButton:
++ case QStyle::SP_TitleBarCloseButton:
++ case QStyle::SP_TitleBarMaxButton:
++ case QStyle::SP_TitleBarMinButton:
++ case QStyle::SP_TitleBarContextHelpButton:
++ case QStyle::SP_TitleBarNormalButton:
++ case QStyle::SP_TitleBarShadeButton:
++ case QStyle::SP_TitleBarUnshadeButton:
++ case QStyle::SP_TitleBarMenuButton:
++ return true;
++ default:
++ return false;
++ }
++}
++
++QIcon IaOraStyle::standardIcon(QStyle::StandardPixmap icon, const QStyleOption *option, const QWidget *widget)
++{
++ // do some caching
++ QPixmap pix;
++ QImage img;
++ QSize s(64,64);
++ QPalette pal = QApplication::palette();
++ if (option)
++ {
++ pal = option-&gt;palette;
++ s = option-&gt;rect.size();
++
++ // handling the TitleBar icons
++ switch (icon){
++ case QStyle::SP_TitleBarMinButton:
++ case QStyle::SP_TitleBarMenuButton:
++ case QStyle::SP_TitleBarMaxButton:
++ case QStyle::SP_TitleBarCloseButton:
++ case QStyle::SP_TitleBarNormalButton:
++ case QStyle::SP_TitleBarShadeButton:
++ case QStyle::SP_TitleBarUnshadeButton:
++ case QStyle::SP_TitleBarContextHelpButton:
++ s.scale(16, 16, Qt::IgnoreAspectRatio);
++ break;
++ default:
++ (s.width() &gt; s.height()) ? s.setHeight(s.width()) : s.setWidth(s.height()); // the icon was getting the wrong size of subtitles
++ }
++ }
++ QString key = QString(&quot;iaora_standard_pixmap_%1_%2_%3&quot;).arg(QString::number(icon))
++ .arg(QString::number(s.width()))
++ .arg(QString::number(s.height()));
++ if (QPixmapCache::find(key, pix))
++ return pix;
++
++ ColorData *data = lookupData(pal);
++
++ int margin = s.height() * 0.20;
++
++ qDebug(&quot;Returning a pixmap of size %dx%d&quot;, s.width(), s.height());
++ img = QImage(s, QImage::Format_ARGB32_Premultiplied);
++ img.fill(Qt::black); // it removes the blue ghost behind the icon
++ //img.fill(Qt::transparent);
++ QPainter p(&amp;img);
++ QRect r = img.rect();
++ r.adjust(margin,margin,-margin,-margin);
++ int top = r.top(), bottom = r.bottom(), left = r.left(), right = r.right(), centerY = r.center().y();
++ int width = r.width(), height = r.height();
++
++ p.setRenderHint(QPainter::Antialiasing, true);
++
++ QLinearGradient g(left, top, left, bottom);
++ g.setColorAt(0., data-&gt;white);
++ g.setColorAt(0.3, data-&gt;white);
++ g.setColorAt(0.7, data-&gt;gray[2]);
++ g.setColorAt(1., data-&gt;gray[2]);
++ QBrush b(g);
++ QPen pen(b, 2);
++ pen.setCapStyle(Qt::RoundCap);
++ p.setPen(pen);
++
++ switch (icon)
++ {
++ case QStyle::SP_DockWidgetCloseButton:
++ case QStyle::SP_TitleBarCloseButton:
++ {
++ p.drawLine(left,top+1,right,bottom); /* \ */
++ p.drawLine(right,top+1,left,bottom); /* / */
++ break;
++ }
++
++ case QStyle::SP_TitleBarMaxButton:
++ {
++ p.setRenderHint(QPainter::Antialiasing, false);
++ p.setPen(QPen(b, 1));
++ p.setBrush(Qt::NoBrush);
++ p.drawRect(r);
++
++ // draw one more line in the top
++ p.drawLine(left, top+1,right,top+1);
++ break;
++ }
++ case QStyle::SP_TitleBarMinButton:
++ {
++ pen.setWidth(3);
++ p.setPen(pen);
++ p.drawLine(left,centerY+1,right,centerY+1);
++ break;
++ }
++ case QStyle::SP_TitleBarNormalButton:
++ {
++ pen.setWidth(1);
++ p.setPen(pen);
++
++ // for the Normal button, use a bit bigger rect
++ r.adjust(-2,-2,2,2);
++ QRect firstSquare(left + width * 0.35, top, width * 0.7, height * 0.6);
++ QRect secondSquare(left, top + height * 0.35, width * 0.7, height * 0.6);
++
++ p.setBrush(Qt::NoBrush);
++ p.setRenderHint(QPainter::Antialiasing, false);
++ p.setBackground(Qt::transparent);
++
++ p.drawRect(firstSquare);
++
++ // TODO: this is a hack, please use a better method for drawing the button
++ QPainter::CompositionMode mode = p.compositionMode();
++ p.setCompositionMode(QPainter::CompositionMode_Clear);
++ p.fillRect(secondSquare, data-&gt;white);
++ p.setCompositionMode(mode);
++
++
++ p.drawRect(secondSquare);
++
++ // and some extra-lines
++ p.drawLine(firstSquare.topLeft() + QPoint(0,1), firstSquare.topRight() + QPoint(0,1));
++ p.drawLine(secondSquare.topLeft() + QPoint(0,1), secondSquare.topRight() +QPoint(0,1));
++ break;
++ }
++ case QStyle::SP_TitleBarContextHelpButton:
++ {
++ // just to identify cases where it appears
++ QFont f = p.font();
++ f.setPixelSize(r.height());
++ p.setFont(f);
++ p.drawText(r, Qt::AlignCenter, &quot;?&quot;);
++ break;
++ }
++ case QStyle::SP_TitleBarMenuButton:
++ {
++ p.drawLine(left, top + (height * .45), centerY, bottom);
++ p.drawLine(centerY, bottom, right, top + (height * 0.3));
++ break;
++ }
++ case QStyle::SP_TitleBarShadeButton:
++ case QStyle::SP_TitleBarUnshadeButton:
++ {
++ // just to identify cases where it appears
++ p.fillRect(r, Qt::magenta);
++ break;
++ }
++ default:
++ break;
++
++ }
++ pix = QPixmap::fromImage(img);
++ QPixmapCache::insert(key, pix);
++ return QIcon(pix);
++}
++
+
+
+Property changes on: theme/ia_ora-kde4/src/iaorastyle_icons.cpp
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4srciaorastyle_menucpp">Added: theme/ia_ora-kde4/src/iaorastyle_menu.cpp</a>
+===================================================================
+--- theme/ia_ora-kde4/src/iaorastyle_menu.cpp (rev 0)
++++ theme/ia_ora-kde4/src/iaorastyle_menu.cpp 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,204 @@
++/*
++ * Copyright 2008 Gustavo Pichorim Boiko &lt;boiko@mandriva.com&gt;
++ * Copyright 2008-2009 Rodrigo Gonçalves de Oliveira &lt;rodrigo@mandriva.com&gt;
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 3 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ */
++
++#include &quot;iaorastyle.h&quot;
++
++void IaOraStyle::drawMenuItem(const QStyleOption *opt, QPainter *p, bool saveSpaceForIcon)
++{
++ const QStyleOptionMenuItem *menuItem = qstyleoption_cast&lt;const QStyleOptionMenuItem *&gt;(opt);
++
++ if (!menuItem)
++ return;
++
++ ColorData *data = lookupData(opt-&gt;palette);
++ QRect r = opt-&gt;rect;
++ bool selected = menuItem-&gt;state &amp; QStyle::State_Selected;
++ bool checkable = menuItem-&gt;checkType != QStyleOptionMenuItem::NotCheckable;
++ bool checked = menuItem-&gt;checked;
++ bool enabled = menuItem-&gt;state &amp; QStyle::State_Enabled;
++
++
++ p-&gt;save();
++ QBrush textBrush;
++ if (opt-&gt;palette.resolve() &amp; (1 &lt;&lt; QPalette::ButtonText))
++ textBrush = opt-&gt;palette.buttonText();
++ else
++ textBrush = opt-&gt;palette.windowText(); // KDE uses windowText rather than buttonText for menus
++
++ switch(menuItem-&gt;menuItemType)
++ {
++ case QStyleOptionMenuItem::Separator:
++ {
++ drawSeparator(opt, p, 10);
++ break;
++ }
++ case QStyleOptionMenuItem::TearOff:
++ {
++ drawHandle(opt, p);
++ break;
++ }
++
++ case QStyleOptionMenuItem::Normal:
++ case QStyleOptionMenuItem::DefaultItem:
++ case QStyleOptionMenuItem::SubMenu:
++ {
++ if (selected &amp;&amp; enabled)
++ {
++ QLinearGradient g(r.topLeft(), r.bottomLeft());
++ g.setColorAt(0., data-&gt;color[1]);
++ g.setColorAt(0.5, data-&gt;color[3]);
++ g.setColorAt(0.51, data-&gt;color[4]);
++ g.setColorAt(1., data-&gt;color[2]);
++ fillRectCuttingOne(p, r.adjusted(0, 0, -1, 0), g);
++ }
++
++ /* from QPlastiqueStyle */
++ //TODO: add CopyRight
++ QRect checkRect(r.left() + 7, r.center().y() - 6, 13, 13);
++ checkRect = QStyle::visualRect(menuItem-&gt;direction, menuItem-&gt;rect, checkRect);
++ if (checkable)
++ {
++ if ((menuItem-&gt;checkType &amp; QStyleOptionMenuItem::Exclusive) &amp;&amp; menuItem-&gt;icon.isNull())
++ {
++ QStyleOptionButton button;
++ button.rect = checkRect;
++ button.state = menuItem-&gt;state;
++ if (checked)
++ button.state |= QStyle::State_On;
++ button.palette = menuItem-&gt;palette;
++ drawRadioButton(&amp;button, p);
++ }
++ else
++ {
++ QStyleOptionButton button;
++ button.rect = checkRect;
++ button.state = menuItem-&gt;state;
++ if (checked)
++ button.state |= QStyle::State_On;
++ button.palette = menuItem-&gt;palette;
++
++ if (menuItem-&gt;icon.isNull())
++ drawCheckBox(&amp;button, p);
++ else if (checked)
++ {
++ int size = r.height() - 4;
++ QRect buttonRect(0, 0, size, size);
++ buttonRect.moveCenter(checkRect.center());
++ button.rect = buttonRect;
++ drawButton(&amp;button, p);
++ }
++ }
++ }
++
++ if (!menuItem-&gt;icon.isNull() &amp;&amp; saveSpaceForIcon)
++ {
++ QIcon::Mode mode = !enabled ? QIcon::Disabled : QIcon::Normal;
++ if (selected &amp;&amp; enabled)
++ mode = QIcon::Active;
++ QPixmap pixmap;
++ if (checked)
++ pixmap = menuItem-&gt;icon.pixmap(m_parent-&gt;pixelMetric(QStyle::PM_SmallIconSize, opt), mode, QIcon::On);
++ else
++ pixmap = menuItem-&gt;icon.pixmap(m_parent-&gt;pixelMetric(QStyle::PM_SmallIconSize, opt), mode);
++
++ QRect pmr = pixmap.rect();
++ pmr.moveCenter(checkRect.center());
++ p-&gt;setPen(textBrush.color());
++ p-&gt;drawPixmap(pmr.topLeft(), pixmap);
++ }
++
++ // Text
++ bool leftToRight = (menuItem-&gt;direction == Qt::LeftToRight) ? true : false;
++ int text_flags = Qt::AlignVCenter | Qt::TextShowMnemonic | Qt::TextDontClip | Qt::TextSingleLine | Qt::AlignLeft;
++
++ if (!m_parent-&gt;styleHint(QStyle::SH_UnderlineShortcut, menuItem))
++ text_flags |= Qt::TextHideMnemonic;
++
++ QRect subMenuRect(r.right()-10,r.top(),10,r.height());
++ if (!menuItem-&gt;text.isEmpty())
++ {
++ QRect textRect;
++ int tab = menuItem-&gt;tabWidth;
++ if (saveSpaceForIcon &amp;&amp; leftToRight)
++ textRect.setLeft(checkRect.right() + 8);
++ else if (!leftToRight)
++ textRect.setLeft(tab);
++ else
++ textRect.setLeft(r.left() + 4);
++
++ textRect.setTop(r.top() + 4);
++
++ if (leftToRight) textRect.setRight(r.right() - 4 - tab);
++ else{
++ if (saveSpaceForIcon) textRect.setRight(checkRect.left() - 8);
++ else textRect.setRight(r.right() - 4);
++ }
++
++ textRect.setBottom(r.bottom() - 4);
++
++ if (menuItem-&gt;menuItemType == QStyleOptionMenuItem::SubMenu)
++ textRect.adjust(0,0,-subMenuRect.width(),0);
++ else if (menuItem-&gt;menuItemType == QStyleOptionMenuItem::DefaultItem)
++ {
++ QFont f = p-&gt;font();
++ f.setBold(true);
++ p-&gt;setFont(f);
++ }
++
++ QStringList textList = menuItem-&gt;text.split(QRegExp(&quot;\t&quot;));
++
++ // draw the shortcut
++ if (textList.first() != textList.last()){
++ QRect shortcutRect(textRect);
++
++ if (leftToRight)
++ shortcutRect.setLeft(textRect.right());
++ else
++ shortcutRect.setRight(textRect.left() + 4);
++
++ drawItemText(p, shortcutRect, text_flags, menuItem-&gt;palette, enabled, textList.last(), selected ? QPalette::HighlightedText : QPalette::Text);
++ }
++
++ // and the text
++ drawItemText(p, textRect, text_flags, menuItem-&gt;palette, enabled, textList.first(), selected ? QPalette::HighlightedText : QPalette::Text);
++ }
++
++ if (menuItem-&gt;menuItemType == QStyleOptionMenuItem::SubMenu)
++ {
++ QStyleOption copy = *opt;
++ copy.rect = subMenuRect;
++
++ if (leftToRight)
++ drawSymbol(&amp;copy, p, SymbolArrowRight);
++ else{
++ copy.rect = QStyle::visualRect(menuItem-&gt;direction, menuItem-&gt;rect, copy.rect);
++ drawSymbol(&amp;copy, p, SymbolArrowLeft);
++ }
++ }
++ break;
++ }
++ case QStyleOptionMenuItem::Scroller:
++ default:
++ break;
++ }
++
++ p-&gt;restore();
++}
++
+
+
+Property changes on: theme/ia_ora-kde4/src/iaorastyle_menu.cpp
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4srciaorastyle_progressbarcpp">Added: theme/ia_ora-kde4/src/iaorastyle_progressbar.cpp</a>
+===================================================================
+--- theme/ia_ora-kde4/src/iaorastyle_progressbar.cpp (rev 0)
++++ theme/ia_ora-kde4/src/iaorastyle_progressbar.cpp 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,145 @@
++/*
++ * Copyright 2008 Gustavo Pichorim Boiko &lt;boiko@mandriva.com&gt;
++ * Copyright 2008-2010 Rodrigo Gonçalves de Oliveira &lt;rodrigo@mandriva.com&gt;
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 3 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ */
++
++#include &lt;QVarLengthArray&gt;
++#include &lt;QDebug&gt;
++
++#include &quot;iaorastyle.h&quot;
++
++void IaOraStyle::drawProgressBarContents(const QStyleOption *opt, QPainter *p, bool kde)
++{
++ const QStyleOptionProgressBar *pb = qstyleoption_cast&lt;const QStyleOptionProgressBar *&gt;(opt);
++ if (!pb)
++ return;
++
++ QPalette pal = opt-&gt;palette;
++ pal.setCurrentColorGroup(QPalette::Active);
++ ColorData *data = lookupData(pal);
++
++ p-&gt;save();
++ QRect r = pb-&gt;rect;
++ bool vertical = false;
++ bool inverted = false;
++ qint64 minimum = qint64(pb-&gt;minimum);
++ qint64 maximum = qint64(pb-&gt;maximum);
++ qint64 progress = qint64(pb-&gt;progress);
++ qint64 range = maximum - minimum;
++ if (range &lt; 0)
++ return;
++
++ if (maximum == minimum || progress &lt;= minimum) // indeterminate state
++ return;
++
++ // Get extra style options if version 2
++ const QStyleOptionProgressBarV2 *pb2 = qstyleoption_cast&lt;const QStyleOptionProgressBarV2 *&gt;(opt);
++ if (pb2)
++ {
++ vertical = (pb2-&gt;orientation == Qt::Vertical);
++ inverted = pb2-&gt;invertedAppearance;
++ }
++
++ // If the orientation is vertical, we use a transform to rotate
++ // the progress bar 90 degrees clockwise. This way we can use the
++ // same rendering code for both orientations.
++ if (vertical)
++ {
++ if (kde)
++ r = QRect(r.left() + 2, r.top() - 4, r.height(), r.width()); // flip width and height
++ else
++ r = QRect(r.left(), r.top(), r.height(), r.width()); // flip width and height
++ QTransform m;
++ m.translate(r.height(), 0);
++ m.rotate(90.0);
++ p-&gt;setTransform(m);
++ }
++
++ QRect progressRect;
++ if (kde)
++ progressRect = r.adjusted(-1, -1, 1, 1);
++ else
++ progressRect = r.adjusted(1,1,-1,-1);
++
++ QLinearGradient g(0, progressRect.top(), 0, progressRect.bottom());
++ g.setColorAt(0., data-&gt;color[1]);
++ g.setColorAt(0.5, data-&gt;color[3]);
++ g.setColorAt(0.51, data-&gt;color[4]);
++ g.setColorAt(1., data-&gt;color[2]);
++
++ if (progress == maximum)
++ {
++ p-&gt;fillRect(progressRect, g);
++ }
++ else
++ {
++ progress -= minimum;
++ progressRect.setWidth((progressRect.width() * progress) / range - 1);
++ QRect endRect = QRect(progressRect.right() + 1, progressRect.top()+1, 1, progressRect.height()-2);
++
++ bool reverse = (!vertical &amp;&amp; (pb-&gt;direction == Qt::RightToLeft)) || vertical;
++ if (inverted)
++ reverse = !reverse;
++
++ if (reverse)
++ {
++ progressRect.moveRight(r.right()-1);
++ endRect.moveLeft(progressRect.left()-1);
++ }
++ p-&gt;fillRect(progressRect, g);
++ p-&gt;fillRect(endRect, g);
++ }
++
++ // draw the division lines
++ QVarLengthArray&lt;QLine, 32&gt; lines1;
++ QVarLengthArray&lt;QLine, 32&gt; lines2;
++
++ int interval = maximum / 8;
++ int pos = 0;
++ int maxSize = r.width() + (kde ? 3 : -1);
++ progress = progressRect.width();
++ int spacer = (kde) ? -1 : 1;
++
++ if (interval != 0)
++ do{
++ pos += interval;
++
++ if (pos &gt;= maxSize) break;
++
++ if (!vertical){
++ if (pos &lt;= progress)
++ lines1.append(QLine(progressRect.left() + pos, r.top() + spacer, progressRect.left() + pos, r.bottom() - spacer));
++ else
++ lines2.append(QLine(progressRect.left() + pos, r.top() + spacer, progressRect.left() + pos, r.bottom() - spacer));
++ } else{
++ if (pos &lt;= progress)
++ lines2.append(QLine(progressRect.left() + pos, r.top() + spacer + 1, progressRect.left() + pos, r.bottom() + (kde ? 2 : 0)));
++ else
++ lines1.append(QLine(progressRect.left() + pos, r.top() + spacer + 1, progressRect.left() + pos, r.bottom() + (kde ? 2 : 0)));
++ }
++ } while (pos &lt; maxSize);
++
++ p-&gt;setPen(data-&gt;color[2]);
++ p-&gt;drawLines(lines1.constData(), lines1.size());
++ p-&gt;setPen(data-&gt;gray[1]);
++ p-&gt;drawLines(lines2.constData(), lines2.size());
++ //
++
++ p-&gt;restore();
++}
++
+
+
+Property changes on: theme/ia_ora-kde4/src/iaorastyle_progressbar.cpp
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4srciaorastyle_q3listviewcpp">Added: theme/ia_ora-kde4/src/iaorastyle_q3listview.cpp</a>
+===================================================================
+--- theme/ia_ora-kde4/src/iaorastyle_q3listview.cpp (rev 0)
++++ theme/ia_ora-kde4/src/iaorastyle_q3listview.cpp 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,150 @@
++/*
++ * Copyright 2008 Gustavo Pichorim Boiko &lt;boiko@mandriva.com&gt;
++ * Copyright 2008-2009 Rodrigo Gonçalves de Oliveira &lt;rodrigo@mandriva.com&gt;
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 3 of the License, or
++ * (at your opt) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ ** Q3ListView code based on KStyle for KDE4
++ * Copyright (C) 2004-2005 Maksim Orlovich &lt;maksim@kde.org&gt;
++ * Copyright (C) 2005,2006 Sandro Giessl &lt;giessl@kde.org&gt;
++ *
++ * Based in part on the following software:
++ * KStyle for KDE3
++ * Copyright (C) 2001-2002 Karol Szwed &lt;gallium@kde.org&gt;
++ * Portions (C) 1998-2000 TrollTech AS
++ * Keramik for KDE3,
++ * Copyright (C) 2002 Malte Starostik &lt;malte@kde.org&gt;
++ * (C) 2002-2003 Maksim Orlovich &lt;maksim@kde.org&gt;
++ * Portions (C) 2001-2002 Karol Szwed &lt;gallium@kde.org&gt;
++ * (C) 2001-2002 Fredrik Höglund &lt;fredrik@kde.org&gt;
++ * (C) 2000 Daniel M. Duley &lt;mosfet@kde.org&gt;
++ * (C) 2000 Dirk Mueller &lt;mueller@kde.org&gt;
++ * (C) 2001 Martijn Klingens &lt;klingens@kde.org&gt;
++ * (C) 2003 Sandro Giessl &lt;sandro@giessl.com&gt;
++ *
++ */
++
++#include &quot;iaorastyle.h&quot;
++#include &lt;QPainter&gt;
++#include &lt;QStyle&gt;
++
++void IaOraStyle::drawQ3ListView(const QStyleOption *opt, QPainter *p, const QWidget *w)
++{
++ QRect r = opt-&gt;rect;
++ // This code is based on the implementation of KStyle for KDE4;
++ // check the copyright on the top of this file
++ const QStyleOptionQ3ListView* lvOpt = qstyleoption_cast&lt;const QStyleOptionQ3ListView*&gt;(opt);
++
++ if (!lvOpt)
++ return;
++
++ // If we have a branch or are expanded...
++ if (lvOpt-&gt;subControls &amp; (QStyle::SC_Q3ListViewBranch | QStyle::SC_Q3ListViewExpand))
++ {
++ QStyleOptionQ3ListViewItem item = lvOpt-&gt;items.at(0);
++
++ int y = r.y();
++
++ QStyleOption opt; //For painting
++ opt.palette = lvOpt-&gt;palette;
++ opt.direction = Qt::LeftToRight;
++
++ //Remap the p so (0,0) corresponds to the origin
++ //of the w, to help out the line align code.
++ //Extract the paint offset. Here be dragons
++ //(and not the cute green Patron of the project, either)
++ int cX = w ? w-&gt;property(&quot;contentsX&quot;).toInt() : 0;
++ int cY = w ? w-&gt;property(&quot;contentsY&quot;).toInt() : 0;
++
++ QPoint adjustCoords = p-&gt;matrix().map(QPoint(0,0)) + QPoint(cX, cY);
++ p-&gt;translate(-adjustCoords);
++
++ if (lvOpt-&gt;activeSubControls &amp; QStyle::SC_All &amp;&amp; (lvOpt-&gt;subControls &amp; QStyle::SC_Q3ListViewExpand))
++ {
++ //### CHECKME: this is from KStyle3, and needs to be re-checked/tested
++ // We only need to draw a vertical line
++ //Route through the Qt4 style-call.
++ QStyleOption opt;
++ opt.rect = QRect(r.topLeft() + adjustCoords, r.size());
++ opt.state = QStyle::State_Sibling;
++ drawBranch(&amp;opt, p);
++ }
++ else
++ {
++ int childPos = 1;
++
++ // Draw all the expand/close boxes, and nearby branches
++ while (childPos &lt; lvOpt-&gt;items.size() &amp;&amp; y &lt; r.height())
++ {
++ const QStyleOptionQ3ListViewItem&amp; child = lvOpt-&gt;items.at(childPos);
++
++ if (!(child.features &amp; QStyleOptionQ3ListViewItem::Visible))
++ {
++ childPos++;
++ continue;
++ }
++
++ //Route through the Qt4 style-call.
++ opt.rect = QRect(r.x() + adjustCoords.x(), y + adjustCoords.y(),
++ r.width(), child.height);
++ opt.state = QStyle::State_Item;
++
++ if (child.features &amp; QStyleOptionQ3ListViewItem::Expandable
++ || child.childCount)
++ {
++ opt.state |= QStyle::State_Children;
++ opt.state |= (child.state &amp; QStyle::State_Open);
++ opt.state |= (child.state &amp; QStyle::State_Enabled);
++ }
++
++ //See if we have a visible sibling
++ int siblingPos = 0;
++ for (siblingPos = childPos + 1; siblingPos &lt; lvOpt-&gt;items.size();
++ ++siblingPos)
++ {
++ if (lvOpt-&gt;items.at(siblingPos).features
++ &amp; QStyleOptionQ3ListViewItem::Visible)
++ {
++ opt.state |= QStyle::State_Sibling;
++ break;
++ }
++ }
++
++ //If on screen, paint it
++ if (y + child.height &gt; 0)
++ drawBranch(&amp;opt, p);
++
++ if (!siblingPos)
++ break;
++
++ //If we have a sibling, and an expander, also have to draw
++ //a line for below the immediate area
++ if ((opt.state &amp; QStyle::State_Children) &amp;&amp; (opt.state &amp; QStyle::State_Sibling))
++ {
++ opt.state = QStyle::State_Sibling;
++ opt.rect = QRect(r.x() + adjustCoords.x(),
++ y + adjustCoords.y() + child.height,
++ r.width(), child.totalHeight - child.height);
++ if (opt.rect.height())
++ drawBranch(&amp;opt, p);
++ }
++
++ y += child.totalHeight;
++ childPos = siblingPos;
++ } //loop through items
++ } //complex case
++ }
++}
++
+
+
+Property changes on: theme/ia_ora-kde4/src/iaorastyle_q3listview.cpp
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4srciaorastyle_scrollbarcpp">Added: theme/ia_ora-kde4/src/iaorastyle_scrollbar.cpp</a>
+===================================================================
+--- theme/ia_ora-kde4/src/iaorastyle_scrollbar.cpp (rev 0)
++++ theme/ia_ora-kde4/src/iaorastyle_scrollbar.cpp 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,139 @@
++/*
++ * Copyright 2008 Gustavo Pichorim Boiko &lt;boiko@mandriva.com&gt;
++ * Copyright 2008-2010 Rodrigo Gonçalves de Oliveira &lt;rodrigo@mandriva.com&gt;
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 3 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ */
++
++#include &quot;iaorastyle.h&quot;
++
++void IaOraStyle::drawScrollBarEmptySpace(const QStyleOption *opt, QPainter *p)
++{
++ const QStyleOptionSlider *scr = qstyleoption_cast&lt;const QStyleOptionSlider *&gt;(opt);
++ if (!scr)
++ return;
++
++ ColorData *data = lookupData(opt-&gt;palette);
++ QRect r = opt-&gt;rect;
++ p-&gt;fillRect(r, data-&gt;gray[0]);
++ int border;
++ if (scr-&gt;orientation == Qt::Horizontal)
++ border = (BorderTop | BorderBottom);
++ else
++ border = (BorderLeft | BorderRight);
++ drawBorder(p, opt, r, (opt-&gt;state &amp; QStyle::State_Enabled), border);
++}
++
++void IaOraStyle::drawScrollBarButton(const QStyleOption *opt, QPainter *p, Symbol s)
++{
++ const QStyleOptionSlider *scr = qstyleoption_cast&lt;const QStyleOptionSlider *&gt;(opt);
++ if (!scr)
++ return;
++
++ ColorData *data = lookupData(opt-&gt;palette);
++
++ bool vertical = (scr-&gt;orientation == Qt::Vertical);
++ bool active = (opt-&gt;state &amp; QStyle::State_Enabled);
++ QRect r = opt-&gt;rect;
++ QStyleOption copy = *opt;
++
++ p-&gt;save();
++
++ /* FIXME: figure out why the scrollbar area is being filled as white at the very beginning */
++ p-&gt;fillRect(r, opt-&gt;palette.brush(QPalette::Window));
++
++ QRect arrowRect = r;
++
++ drawFrameCuttingOne(p, r, active ? data-&gt;gray[5] : data-&gt;gray[4]);
++ if (vertical)
++ {
++ arrowRect.adjust(1,2,0,0);
++ drawBorder(p, opt, r, active, (s == SymbolArrowRight) ? BorderTop : BorderBottom);
++ }
++ else
++ {
++ arrowRect.adjust(2,1,0,0);
++ drawBorder(p, opt, r, active, (s == SymbolArrowRight) ? BorderLeft : BorderRight);
++ }
++
++ copy.rect = r.adjusted(1,1,-1,-1);
++ drawButton(&amp;copy, p, true, true);
++
++ // only set the right arrows in vertical mode
++ if (vertical)
++ s = (s == SymbolArrowRight) ? SymbolArrowDown : SymbolArrowUp;
++ else if (scr-&gt;direction == Qt::RightToLeft) // if direction != Qt::LeftToRight, we change the symbol orientation
++ s = (s == SymbolArrowRight) ? SymbolArrowLeft : SymbolArrowRight;
++ copy.rect = arrowRect;
++ drawSymbol(&amp;copy, p, s);
++
++ p-&gt;restore();
++}
++
++void IaOraStyle::drawScrollBarHandle(const QStyleOption *opt, QPainter *p)
++{
++ const QStyleOptionSlider *scr = qstyleoption_cast&lt;const QStyleOptionSlider *&gt;(opt);
++ if (!scr)
++ return;
++
++ QPalette pal = opt-&gt;palette;
++ pal.setCurrentColorGroup(QPalette::Active); // let the scrollbars colored when no focus
++ ColorData *data = lookupData(pal);
++
++ QPen oldPen = p-&gt;pen();
++
++ bool vertical = (scr-&gt;orientation == Qt::Vertical);
++ bool max = (scr-&gt;sliderValue == scr-&gt;maximum), min = (scr-&gt;sliderValue == scr-&gt;minimum);
++ QRect r = opt-&gt;rect;
++ QLine maxLine, minLine;
++
++ // fill the empty spaces and the border
++ drawScrollBarEmptySpace(opt, p);
++
++
++ QRect handleRect = r;
++
++ QLinearGradient g;
++ if (vertical)
++ {
++ handleRect.adjust(1, min ? 0 : 1, -1, max ? 0 : -1);
++ g = QLinearGradient(handleRect.left(), 0, handleRect.right(), 0);
++ minLine = QLine(handleRect.left()+1, r.top(), handleRect.right()-1, r.top());
++ maxLine = QLine(handleRect.left()+1, r.bottom(), handleRect.right()-1, r.bottom());
++ }
++ else
++ {
++ handleRect.adjust(min ? 0 : 1, 1, max ? 0 : -1, -1);
++ g = QLinearGradient(0, handleRect.top(), 0, handleRect.bottom());
++ minLine = QLine(r.left(), handleRect.top()+1, r.left(), handleRect.bottom()-1);
++ maxLine = QLine(r.right(), handleRect.top()+1, r.right(), handleRect.bottom()-1);
++ }
++ g.setColorAt(0., data-&gt;color[1]);
++ g.setColorAt(0.5, data-&gt;color[3]);
++ g.setColorAt(0.51, data-&gt;color[4]);
++ g.setColorAt(1., data-&gt;color[2]);
++
++ p-&gt;fillRect(handleRect, g);
++
++ p-&gt;setPen(QPen(QBrush(g), 1));
++ if (!min)
++ p-&gt;drawLine(minLine);
++ if (!max)
++ p-&gt;drawLine(maxLine);
++
++ p-&gt;setPen(oldPen);
++}
++
+
+
+Property changes on: theme/ia_ora-kde4/src/iaorastyle_scrollbar.cpp
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4srciaorastyle_slidercpp">Added: theme/ia_ora-kde4/src/iaorastyle_slider.cpp</a>
+===================================================================
+--- theme/ia_ora-kde4/src/iaorastyle_slider.cpp (rev 0)
++++ theme/ia_ora-kde4/src/iaorastyle_slider.cpp 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,143 @@
++/*
++ * Copyright 2008 Gustavo Pichorim Boiko &lt;boiko@mandriva.com&gt;
++ * Copyright 2008-2010 Rodrigo Gonçalves de Oliveira &lt;rodrigo@mandriva.com&gt;
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 3 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ ** SC_SliderTickmarks code based on QtCurve style fom KDE4
++ * Copyright C( 2007-2008 Craig Drummond &lt;Craig.Drummond@lycos.co.uk&gt;
++ *
++ */
++
++#include &lt;QVarLengthArray&gt;
++#include &quot;iaorastyle.h&quot;
++
++void IaOraStyle::drawSlider(const QStyleOption *opt, QPainter *p,
++ const QRect &amp;grooveRegion, const QRect &amp;handle, const QRect &amp;ticks)
++{
++ const QStyleOptionSlider *slider = qstyleoption_cast&lt;const QStyleOptionSlider *&gt;(opt);
++ if (!slider)
++ return;
++
++ QPalette pal = opt-&gt;palette;
++ pal.setCurrentColorGroup(QPalette::Active);
++ ColorData *data = lookupData(pal);
++
++ QPen oldPen = p-&gt;pen();
++
++ bool active = (opt-&gt;state &amp; QStyle::State_Enabled);
++ bool vertical = slider-&gt;orientation == Qt::Vertical;
++
++ if (slider-&gt;subControls &amp; QStyle::SC_SliderGroove)
++ {
++ QRect filled = grooveRegion.adjusted(1, 1, -1, -1);
++ p-&gt;fillRect(filled, data-&gt;gray[0]);
++
++ if (slider-&gt;orientation == Qt::Horizontal){
++ if (slider-&gt;upsideDown) filled.setLeft(handle.right() - 2);
++ else filled.setRight(handle.left() + 2);
++ } else{
++ if (slider-&gt;upsideDown) filled.setTop(handle.bottom() - 2);
++ else filled.setBottom(handle.top() + 2);
++ }
++
++ p-&gt;fillRect(filled, data-&gt;gray[3]);
++
++ drawFrameCuttingOne(p, grooveRegion, active ? data-&gt;gray[5] : data-&gt;gray[4]);
++ }
++
++ // The code for SC_SliderTickmarks is based on the implementation of QtCurve style for KDE4;
++ // check the copyright on the top of this file
++ if (slider-&gt;subControls &amp; QStyle::SC_SliderTickmarks){
++ QVarLengthArray&lt;QLine, 32&gt; lines;
++
++ int sliderLen = m_parent-&gt;pixelMetric(QStyle::PM_SliderLength, opt);
++ int tickSize = m_parent-&gt;pixelMetric(QStyle::PM_SliderTickmarkOffset, opt);
++ int availableSpace = m_parent-&gt;pixelMetric(QStyle::PM_SliderSpaceAvailable, opt);
++
++ int value = slider-&gt;minimum;
++ int tickInterval = slider-&gt;tickInterval;
++ int pos = 0;
++
++ if (tickInterval &lt;= 0){
++ tickInterval = slider-&gt;singleStep;
++ if (QStyle::sliderPositionFromValue(slider-&gt;minimum, slider-&gt;maximum,
++ tickInterval, availableSpace) -
++ QStyle::sliderPositionFromValue(slider-&gt;minimum,
++ slider-&gt;maximum, 0, availableSpace) &lt; 3)
++ tickInterval = slider-&gt;pageStep;
++ }
++ if (tickInterval &lt;= 0) tickInterval = 1;
++
++ while (value &lt;= slider-&gt;maximum){
++ if (slider-&gt;orientation == Qt::Horizontal){
++ pos = QStyle::sliderPositionFromValue(slider-&gt;minimum,
++ slider-&gt;maximum, value, slider-&gt;rect.width() + sliderLen,
++ slider-&gt;upsideDown) + 12;
++
++ lines.append(QLine(pos, slider-&gt;rect.top() + 11, pos,
++ slider-&gt;rect.top() + tickSize + 1));
++ } else{
++ pos = QStyle::sliderPositionFromValue(slider-&gt;minimum,
++ slider-&gt;maximum, value, slider-&gt;rect.height() - sliderLen,
++ slider-&gt;upsideDown) + 4;
++
++ lines.append(QLine(slider-&gt;rect.left() + 11, pos,
++ slider-&gt;rect.left() + tickSize + 1, pos));
++ }
++
++ if (value + tickInterval &lt; value) break;
++ value = value + tickInterval;
++ }
++
++ p-&gt;setPen(data-&gt;gray[1]);
++ p-&gt;drawLines(lines.constData(), lines.size());
++ }
++
++ if (slider-&gt;subControls &amp; QStyle::SC_SliderHandle)
++ {
++ QRect circle(0,0,4,4);
++ QRect handleCpy;
++ circle.moveCenter(handle.center());
++ QLinearGradient g1, g2;
++ if (vertical)
++ {
++ handleCpy = handle.adjusted(-1, 0, 1, 0);
++ g1 = QLinearGradient(handleCpy.left(), 0, handleCpy.right(), 0);
++ g2 = QLinearGradient(circle.left(), 0, circle.right(), 0);
++ }
++ else
++ {
++ handleCpy = handle.adjusted(0, -1, 0, 1);
++ g1 = QLinearGradient(0, handleCpy.top(), 0, handleCpy.bottom());
++ g2 = QLinearGradient(0, circle.top(), 0, circle.bottom());
++ }
++
++ g1.setColorAt(0., data-&gt;color[2]);
++ g1.setColorAt(1., data-&gt;color[4]);
++ g2.setColorAt(0., data-&gt;color[4]);
++ g2.setColorAt(1., data-&gt;color[2]);
++
++ fillRectCuttingOne(p, handleCpy, g1);
++
++ p-&gt;setPen(Qt::NoPen);
++ p-&gt;setBrush(g2);
++ p-&gt;drawEllipse(circle);
++
++ }
++
++ p-&gt;setPen(oldPen);
++}
++
+
+
+Property changes on: theme/ia_ora-kde4/src/iaorastyle_slider.cpp
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4srciaorastyle_spinboxcpp">Added: theme/ia_ora-kde4/src/iaorastyle_spinbox.cpp</a>
+===================================================================
+--- theme/ia_ora-kde4/src/iaorastyle_spinbox.cpp (rev 0)
++++ theme/ia_ora-kde4/src/iaorastyle_spinbox.cpp 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,108 @@
++/*
++ * Copyright 2008 Gustavo Pichorim Boiko &lt;boiko@mandriva.com&gt;
++ * Copyright 2008-2009 Rodrigo Gonçalves de Oliveira &lt;rodrigo@mandriva.com&gt;
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 3 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ */
++
++#include &quot;iaorastyle.h&quot;
++
++void IaOraStyle::drawSpinBox(const QStyleOptionComplex *opt, QPainter *p)
++{
++ const QStyleOptionSpinBox *sb = qstyleoption_cast&lt;const QStyleOptionSpinBox *&gt;(opt);
++ QStyleOptionSpinBox copy = *sb;
++ QRect r = opt-&gt;rect;
++
++ if (!sb)
++ return;
++
++ QStyle::PrimitiveElement pe;
++
++ if (sb-&gt;frame &amp;&amp; (sb-&gt;subControls &amp; QStyle::SC_SpinBoxFrame))
++ {
++ QRect r = m_parent-&gt;subControlRect(QStyle::CC_SpinBox, sb, QStyle::SC_SpinBoxFrame);
++
++ copy.rect = r;
++ drawFrame(&amp;copy, p);
++ }
++
++ /* SPIN-UP */
++ if (sb-&gt;subControls &amp; QStyle::SC_SpinBoxUp)
++ {
++ copy.subControls = QStyle::SC_SpinBoxUp;
++ QPalette pal2 = sb-&gt;palette;
++ if (!(sb-&gt;stepEnabled &amp; QAbstractSpinBox::StepUpEnabled))
++ {
++ pal2.setCurrentColorGroup(QPalette::Disabled);
++ copy.state &amp;= ~QStyle::State_Enabled;
++ }
++
++ copy.palette = pal2;
++
++ if (sb-&gt;activeSubControls == QStyle::SC_SpinBoxUp &amp;&amp; (sb-&gt;state &amp; QStyle::State_Sunken))
++ {
++ copy.state |= QStyle::State_On;
++ copy.state |= QStyle::State_Sunken;
++ }
++ else
++ {
++ copy.state |= QStyle::State_Raised;
++ copy.state &amp;= ~QStyle::State_Sunken;
++ }
++ pe = (sb-&gt;buttonSymbols == QAbstractSpinBox::PlusMinus ? QStyle::PE_IndicatorSpinPlus : QStyle::PE_IndicatorSpinUp);
++ copy.rect = m_parent-&gt;subControlRect(QStyle::CC_SpinBox, sb, QStyle::SC_SpinBoxUp);
++ m_parent-&gt;drawPrimitive(QStyle::PE_PanelButtonBevel, &amp;copy, p);
++ drawBorder(p, opt, copy.rect, sb-&gt;state &amp; QStyle::State_Enabled, IaOraStyle::BorderLeft);
++ /* FIXME: don't really know why the rect is not right at this point, but anyway... */
++ copy.rect.adjust(1, 2, 0, 0);
++ m_parent-&gt;drawPrimitive(pe, &amp;copy, p);
++
++ }
++ /* SPIN-DOWN */
++ if (sb-&gt;subControls &amp; QStyle::SC_SpinBoxDown)
++ {
++ copy.subControls = QStyle::SC_SpinBoxDown;
++ copy.state = sb-&gt;state;
++ QPalette pal2 = sb-&gt;palette;
++ if (!(sb-&gt;stepEnabled &amp; QAbstractSpinBox::StepDownEnabled))
++ {
++ pal2.setCurrentColorGroup(QPalette::Disabled);
++ copy.state &amp;= ~QStyle::State_Enabled;
++ }
++
++ copy.palette = pal2;
++
++ if (sb-&gt;activeSubControls == QStyle::SC_SpinBoxDown &amp;&amp; (sb-&gt;state &amp; QStyle::State_Sunken))
++ {
++ copy.state |= QStyle::State_On;
++ copy.state |= QStyle::State_Sunken;
++ }
++ else
++ {
++ copy.state |= QStyle::State_Raised;
++ copy.state &amp;= ~QStyle::State_Sunken;
++ }
++ pe = (sb-&gt;buttonSymbols == QAbstractSpinBox::PlusMinus ? QStyle::PE_IndicatorSpinMinus : QStyle::PE_IndicatorSpinDown);
++ copy.rect = m_parent-&gt;subControlRect(QStyle::CC_SpinBox, sb, QStyle::SC_SpinBoxDown);
++ m_parent-&gt;drawPrimitive(QStyle::PE_PanelButtonBevel, &amp;copy, p);
++ drawBorder(p, opt, copy.rect, sb-&gt;state &amp; QStyle::State_Enabled, IaOraStyle::BorderLeft | IaOraStyle::BorderTop);
++ /* FIXME: don't really know why the rect is not right at this point, but anyway... */
++ copy.rect.adjust(1, 2, 0, 0);
++ m_parent-&gt;drawPrimitive(pe, &amp;copy, p);
++
++ }
++}
++
+
+
+Property changes on: theme/ia_ora-kde4/src/iaorastyle_spinbox.cpp
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4srciaorastyle_symbolscpp">Added: theme/ia_ora-kde4/src/iaorastyle_symbols.cpp</a>
+===================================================================
+--- theme/ia_ora-kde4/src/iaorastyle_symbols.cpp (rev 0)
++++ theme/ia_ora-kde4/src/iaorastyle_symbols.cpp 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,196 @@
++/*
++ * Copyright 2008 Gustavo Pichorim Boiko &lt;boiko@mandriva.com&gt;
++ * Copyright 2008-2010 Rodrigo Gonçalves de Oliveira &lt;rodrigo@mandriva.com&gt;
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 3 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ */
++
++#include &quot;iaorastyle.h&quot;
++
++void IaOraStyle::drawCheckBox(const QStyleOption *opt, QPainter *p)
++{
++ QPen oldPen = p-&gt;pen();
++ bool enabled = (opt-&gt;state &amp; QStyle::State_Enabled);
++
++ QPalette pal = opt-&gt;palette;
++ pal.setCurrentColorGroup(QPalette::Active);
++ ColorData *data = lookupData(pal);
++
++ QRect r = opt-&gt;rect;
++ QRect contents = r.adjusted(1,1,-1,-1);
++ p-&gt;fillRect(contents, enabled ? data-&gt;white : data-&gt;gray[0]);
++ drawFrameCuttingOne(p, r, enabled ? data-&gt;gray[5] : data-&gt;gray[4]);
++
++ if (opt-&gt;state &amp; QStyle::State_NoChange) // tristate
++ {
++ QRect linesRect = QRect(contents.left() + 2, 0, contents.width() - 4, 3);
++ linesRect.moveCenter(contents.center());
++ int top = linesRect.top(), left = linesRect.left(), bottom = linesRect.bottom(), right = linesRect.right();
++ p-&gt;setPen(enabled ? data-&gt;color[2] : data-&gt;gray[3]);
++ p-&gt;drawLine(left+1,top,right-1,top);
++ p-&gt;drawLine(left,top+1,right,top+1);
++ p-&gt;setPen(enabled ? data-&gt;color[4] : data-&gt;gray[5]);
++ p-&gt;drawLine(left+1,bottom,right-1,bottom);
++ }
++ else if (opt-&gt;state &amp; QStyle::State_On)
++ {
++ contents.adjust(1,1,-1,-1);
++ QLinearGradient g(contents.topLeft(), contents.bottomLeft());
++ g.setColorAt(0., enabled ? data-&gt;color[2] : data-&gt;gray[3]);
++ g.setColorAt(1., enabled ? data-&gt;color[4] : data-&gt;gray[5]);
++ QPen pen(QBrush(g), 2);
++ pen.setCapStyle(Qt::RoundCap);
++ p-&gt;setPen(pen);
++ p-&gt;drawLine(contents.topLeft(), contents.bottomRight());
++ p-&gt;drawLine(contents.bottomLeft(), contents.topRight());
++ }
++
++ p-&gt;setPen(oldPen);
++}
++
++void IaOraStyle::drawRadioButton(const QStyleOption *opt, QPainter *p)
++{
++ QPalette pal = opt-&gt;palette;
++ pal.setCurrentColorGroup(QPalette::Active);
++ ColorData *data = lookupData(pal);
++
++ QPen oldPen = p-&gt;pen();
++ QBrush oldBrush = p-&gt;brush();
++ bool aa = (p-&gt;renderHints() &amp; QPainter::Antialiasing);
++ bool enabled = (opt-&gt;state &amp; QStyle::State_Enabled);
++
++ QRect r = opt-&gt;rect;
++
++ p-&gt;setRenderHint(QPainter::Antialiasing, true);
++ p-&gt;setPen(data-&gt;gray[4]);
++ p-&gt;setBrush(enabled ? Qt::white : data-&gt;gray[0]);
++ p-&gt;drawEllipse(r);
++
++ if (opt-&gt;state &amp; (QStyle::State_Sunken | QStyle::State_On))
++ {
++ QRect contents = r.adjusted(3,3,-3,-3);
++ QLinearGradient g(contents.topLeft(), contents.bottomLeft());
++ g.setColorAt(0., enabled ? data-&gt;color[2] : data-&gt;gray[3]);
++ g.setColorAt(1., enabled ? data-&gt;color[4] : data-&gt;gray[5]);
++ p-&gt;setPen(Qt::NoPen);
++ p-&gt;setBrush(g);
++ p-&gt;drawEllipse(contents);
++ }
++
++ p-&gt;setPen(oldPen);
++ p-&gt;setBrush(oldBrush);
++ p-&gt;setRenderHint(QPainter::Antialiasing, aa);
++}
++
++
++void IaOraStyle::drawSymbol(const QStyleOption *opt, QPainter *p, Symbol s)
++{
++ QRect r = opt-&gt;rect;
++
++ QPoint center = r.center();
++ bool enabled = (opt-&gt;state &amp; QStyle::State_Enabled);
++ ColorData *data = lookupData(opt-&gt;palette);
++ bool selected = (opt-&gt;state &amp; QStyle::State_Selected);
++ QColor c;
++ if (enabled){
++ if (selected &amp;&amp; ( opt-&gt;palette.highlightedText().color() != Qt::white ) )
++ c = opt-&gt;palette.highlightedText().color();
++ else
++ c = opt-&gt;palette.text().color();
++ } else
++ c = data-&gt;gray[4];
++ //QColor c = enabled ? data-&gt;black : data-&gt;gray[4];
++
++ bool aa = (p-&gt;renderHints() &amp; QPainter::Antialiasing);
++ QPen oldPen = p-&gt;pen();
++ QBrush oldBrush = p-&gt;brush();
++
++ //p-&gt;setRenderHint(QPainter::Antialiasing, true); // with antialiasing, the arrows doesn't look like arrow :S
++ switch(s)
++ {
++ case SymbolArrowUp:
++ {
++ QPoint points[3];
++ points[0] = center + QPoint(0, -3);
++ points[1] = points[0] + QPoint(-4, 5);
++ points[2] = points[0] + QPoint(4, 4);
++
++ p-&gt;setPen(Qt::NoPen);
++ p-&gt;setBrush(c);
++ p-&gt;drawConvexPolygon(points, 3);
++ break;
++ }
++ case SymbolArrowDown:
++ {
++ QPoint points[3];
++ points[0] = center + QPoint(0, 3);
++ points[1] = points[0] + QPoint(-3, -4);
++ points[2] = points[0] + QPoint(4, -4);
++
++ p-&gt;setPen(Qt::NoPen);
++ p-&gt;setBrush(c);
++ p-&gt;drawConvexPolygon(points, 3);
++ break;
++ }
++ case SymbolArrowLeft:
++ {
++ QPoint points[3];
++ points[0] = center + QPoint(-3, 0);
++ points[1] = points[0] + QPoint(4, -4);
++ points[2] = points[0] + QPoint(4, 4);
++
++ p-&gt;setPen(Qt::NoPen);
++ p-&gt;setBrush(c);
++ p-&gt;drawConvexPolygon(points, 3);
++ break;
++ }
++ case SymbolArrowRight:
++ {
++ QPoint center = r.center();
++ QPoint points[3];
++ points[0] = center + QPoint(3, 0);
++ points[1] = points[0] + QPoint(-4, -4);
++ points[2] = points[0] + QPoint(-4, 4);
++
++ p-&gt;setPen(Qt::NoPen);
++ p-&gt;setBrush(c);
++ p-&gt;drawConvexPolygon(points, 3);
++ break;
++ }
++ case SymbolPlus:
++ {
++ QPoint center = r.center();
++ p-&gt;setPen(c);
++ p-&gt;setRenderHint(QPainter::Antialiasing, false);
++ p-&gt;drawLine(center - QPoint(2,0), center + QPoint(2,0));
++ p-&gt;drawLine(center - QPoint(0,2), center + QPoint(0,2));
++ break;
++ }
++ case SymbolMinus:
++ {
++ QPoint center = r.center();
++ p-&gt;setPen(c);
++ p-&gt;setRenderHint(QPainter::Antialiasing, false);
++ p-&gt;drawLine(center - QPoint(2,0), center + QPoint(2,0));
++ break;
++ }
++ }
++
++ p-&gt;setRenderHint(QPainter::Antialiasing, aa);
++ p-&gt;setPen(oldPen);
++ p-&gt;setBrush(oldBrush);
++}
++
+
+
+Property changes on: theme/ia_ora-kde4/src/iaorastyle_symbols.cpp
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4srciaorastyle_tabbarcpp">Added: theme/ia_ora-kde4/src/iaorastyle_tabbar.cpp</a>
+===================================================================
+--- theme/ia_ora-kde4/src/iaorastyle_tabbar.cpp (rev 0)
++++ theme/ia_ora-kde4/src/iaorastyle_tabbar.cpp 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,239 @@
++/*
++ * Copyright 2008 Gustavo Pichorim Boiko &lt;boiko@mandriva.com&gt;
++ * Copyright 2008-2010 Rodrigo Gonçalves de Oliveira &lt;rodrigo@mandriva.com&gt;
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 3 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ ** ** QTabBarLabel code based on QCommonStyle
++ * Copyright (C) 1992-2008 Trolltech ASA. All rights reserved.
++ */
++
++#include &quot;iaorastyle.h&quot;
++
++void IaOraStyle::drawTabBarTab(const QStyleOption *opt, QPainter *p)
++{
++ const QStyleOptionTab *tab = qstyleoption_cast&lt;const QStyleOptionTab *&gt;(opt);
++ QRect r = opt-&gt;rect;
++
++ if (!tab)
++ return;
++
++ QPalette pal = opt-&gt;palette;
++ pal.setCurrentColorGroup(QPalette::Active);
++ ColorData *data = lookupData(pal);
++
++ bool selected = (tab-&gt;state &amp; QStyle::State_Selected);
++ int top = r.top(), bottom = r.bottom(), left = r.left(), right = r.right();
++
++ p-&gt;save();
++
++ if (selected) // active tab
++ {
++ QRect contents = opt-&gt;rect.adjusted(1,1,-1,-1);
++ QLine borders[2];
++ QLine lightBlue[2];
++ QLine darkBlue[2];
++
++ if (tab-&gt;shape == QTabBar::RoundedNorth || tab-&gt;shape == QTabBar::TriangularNorth)
++ {
++ contents.adjust(0,3,0,1);
++ borders[0] = QLine(left, top+4, left, bottom);
++ borders[1] = QLine(right, top+4, right, bottom);
++ lightBlue[0] = QLine(left+2,top,right-2,top);
++ lightBlue[1] = QLine(left+1,top+1,right-1,top+1);
++ darkBlue[0] = QLine(left,top+2,right,top+2);
++ darkBlue[1] = QLine(left,top+3,right,top+3);
++ }
++ else if (tab-&gt;shape == QTabBar::RoundedSouth || tab-&gt;shape == QTabBar::TriangularSouth)
++ {
++ contents.adjust(0,-1,0,-3);
++ borders[0] = QLine(left,top,left,bottom-4);
++ borders[1] = QLine(right,top,right,bottom-4);
++ lightBlue[0] = QLine(left, bottom-3, right, bottom-3);
++ lightBlue[1] = QLine(left, bottom-2, right, bottom-2);
++ darkBlue[0] = QLine(left+1, bottom-1, right-1, bottom-1);
++ darkBlue[1] = QLine(left+2, bottom, right-2, bottom);
++ }
++ else if (tab-&gt;shape == QTabBar::RoundedEast || tab-&gt;shape == QTabBar::TriangularEast) // right
++ {
++ contents.adjust(-1,0,-3,0);
++ borders[0] = QLine(left, top, right-4, top);
++ borders[1] = QLine(left, bottom, right-4, bottom);
++ lightBlue[0] = QLine(right-3, top, right-3, bottom);
++ lightBlue[1] = QLine(right-2, top, right-2, bottom);
++ darkBlue[0] = QLine(right-1, top+1, right-1, bottom-1);
++ darkBlue[1] = QLine(right, top+2, right, bottom-2);
++ }
++ else // left
++ {
++ contents.adjust(3,0,1,0);
++ borders[0] = QLine(left+4, top, right, top);
++ borders[1] = QLine(left+4, bottom, right, bottom);
++ lightBlue[0] = QLine(left, top+2, left, bottom-2);
++ lightBlue[1] = QLine(left+1, top+1, left+1, bottom-1);
++ darkBlue[0] = QLine(left+2, top, left+2, bottom);
++ darkBlue[1] = QLine(left+3, top, left+3, bottom);
++ }
++
++ // fill the contents
++ p-&gt;fillRect(contents, data-&gt;gray[0]);
++
++ // draw the gray borders
++ p-&gt;setPen(data-&gt;gray[4]);
++ p-&gt;drawLines(borders, 2);
++
++ // the blue lines
++ p-&gt;setPen(data-&gt;color[2]);
++ p-&gt;drawLines(lightBlue, 2);
++ p-&gt;setPen(data-&gt;color[4]);
++ p-&gt;drawLines(darkBlue, 2);
++ }
++ else // inactive tab
++ {
++ QRect contents = opt-&gt;rect.adjusted(1,1,-1,-1);
++
++ QPoint points[2];
++ QLine lines[4];
++ if (tab-&gt;shape == QTabBar::RoundedNorth || tab-&gt;shape == QTabBar::TriangularNorth)
++ {
++ top+=3;
++ contents.setTop(top+1);
++ lines[0] = QLine(left+2,top,right-2,top); // top
++ lines[1] = QLine(left, top+2, left, bottom); // left
++ lines[2] = QLine(right, top+2, right, bottom); // right
++ lines[3] = QLine(left, bottom, right, bottom); // bottom
++ points[0] = QPoint(left+1, top+1);
++ points[1] = QPoint(right-1, top+1);
++ }
++ else if (tab-&gt;shape == QTabBar::RoundedSouth || tab-&gt;shape == QTabBar::TriangularSouth)
++ {
++ bottom-=3;
++ contents.setBottom(bottom-1);
++ lines[0] = QLine(left,top,right,top); // top
++ lines[1] = QLine(left, top, left, bottom-2); // left
++ lines[2] = QLine(right, top, right, bottom-2); // right
++ lines[3] = QLine(left+2, bottom, right-2, bottom); // bottom
++ points[0] = QPoint(left+1, bottom-1);
++ points[1] = QPoint(right-1, bottom-1);
++ }
++ else if (tab-&gt;shape == QTabBar::RoundedEast || tab-&gt;shape == QTabBar::TriangularEast) // right
++ {
++ right-=3;
++ contents.setRight(right-1);
++ lines[0] = QLine(left,top,right-2,top); // top
++ lines[1] = QLine(left,top,left,bottom); // left
++ lines[2] = QLine(right,top+2,right,bottom-2); // right
++ lines[3] = QLine(left,bottom,right-2,bottom); // bottom
++ points[0] = QPoint(right-1,top+1);
++ points[1] = QPoint(right-1,bottom-1);
++ }
++ else // left
++ {
++ left+=3;
++ contents.setLeft(left+1);
++ lines[0] = QLine(left+2,top,right,top); // top
++ lines[1] = QLine(left,top+1,left,bottom-2); // left
++ lines[2] = QLine(right,top,right,bottom); // right
++ lines[3] = QLine(left+2,bottom,right,bottom); // bottom
++ points[0] = QPoint(left+1,top+1);
++ points[1] = QPoint(left+1,bottom-1);
++ }
++
++ // draw the contents
++ p-&gt;setPen(Qt::NoPen);
++ p-&gt;setBrush(data-&gt;gray[1]);
++ p-&gt;drawRect(contents);
++
++ // draw the lines
++ p-&gt;setPen(data-&gt;gray[5]);
++ p-&gt;drawLines(lines, 4);
++ p-&gt;drawPoints(points, 2);
++ }
++
++ p-&gt;restore();
++
++ // The code below is based on the implementation of QCommonStyle;
++ // check the copyright on the top of this file
++ QStyleOptionTabV2 tabV2(*tab);
++ QRect tabRect = tabV2.rect;
++
++ // we have the vertical tab text
++ bool verticalTabs = tabV2.shape == QTabBar::RoundedEast
++ || tabV2.shape == QTabBar::RoundedWest
++ || tabV2.shape == QTabBar::TriangularEast
++ || tabV2.shape == QTabBar::TriangularWest;
++ if (verticalTabs) {
++ p-&gt;save();
++
++ int newX, newY, newRot;
++ if (tabV2.shape == QTabBar::RoundedEast || tabV2.shape == QTabBar::TriangularEast){
++ newX = tabRect.width();
++ newY = tabRect.y();
++ newRot = 90;
++ }else {
++ newX = 0;
++ newY = tabRect.y() + tabRect.height();
++ newRot = -90;
++ }
++ tabRect.setRect(0, 0, tabRect.height(), tabRect.width());
++
++ QTransform trans;
++
++ trans.translate(newX, newY);
++ trans.rotate(newRot);
++ p-&gt;setTransform(trans, true);
++ }
++
++ // and the icon
++ QSize iconSize = tabV2.iconSize;
++
++ if (!tabV2.icon.isNull()){
++ if (!iconSize.isValid()) {
++ int iconExtent = m_parent-&gt;pixelMetric(QStyle::PM_SmallIconSize);
++ iconSize = QSize(iconExtent, iconExtent);
++ }
++
++ QPixmap tabIcon = tabV2.icon.pixmap(iconSize, (tabV2.state &amp; QStyle::State_Enabled) ? QIcon::Normal : QIcon::Disabled);
++
++ QRect iconRect = QRect(tabRect.left() + 6, tabRect.center().y() - tabIcon.height() / 2, iconSize.width(), iconSize.height());
++
++ if (tabV2.direction != Qt::LeftToRight){
++ iconRect = QStyle::visualRect(tabV2.direction, tabV2.rect, iconRect);
++ tabRect.setRight(tabRect.right() - iconSize.width() - 4);
++ } else
++ tabRect.setLeft(tabRect.left() + iconSize.width() + 4);
++
++ p-&gt;drawPixmap(iconRect, tabIcon);
++ }
++
++ // finally draw the text
++ QRect textRect = tabRect;
++ QFontMetrics fontMetrics = tabV2.fontMetrics;
++
++ QSize textSize = fontMetrics.size(Qt::TextSingleLine, tab-&gt;text);
++
++ // we must adjust the textRect if we have a close button on the tabbar
++ if ((!tabV2.icon.isNull()) &amp;&amp; (tabRect.width() - (textSize.width() + iconSize.width()) &gt; 8)){
++ if (tabV2.direction == Qt::LeftToRight)
++ textRect.adjust(-10, 0, -10, 0);
++ else
++ textRect.adjust(+10, 0, +10, 0);
++ }
++
++ drawItemText(p, textRect, Qt::AlignCenter | Qt::TextShowMnemonic, tab-&gt;palette, true, tab-&gt;text, QPalette::WindowText);
++ //drawItemText(p, textRect, Qt::AlignCenter | Qt::TextShowMnemonic, tab-&gt;palette, true, tab-&gt;text, QPalette::Text);
++ if (verticalTabs) p-&gt;restore();
++}
++
+
+
+Property changes on: theme/ia_ora-kde4/src/iaorastyle_tabbar.cpp
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4srciaorastyle_toolbuttoncpp">Added: theme/ia_ora-kde4/src/iaorastyle_toolbutton.cpp</a>
+===================================================================
+--- theme/ia_ora-kde4/src/iaorastyle_toolbutton.cpp (rev 0)
++++ theme/ia_ora-kde4/src/iaorastyle_toolbutton.cpp 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,134 @@
++/*
++ * Copyright 2008 Gustavo Pichorim Boiko &lt;boiko@mandriva.com&gt;
++ * Copyright 2008-2009 Rodrigo Gonçalves de Oliveira &lt;rodrigo@mandriva.com&gt;
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 3 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ */
++
++#include &quot;iaorastyle.h&quot;
++
++void IaOraStyle::drawToolButton(const QStyleOption *opt, QPainter *p)
++{
++ const QStyleOptionToolButton *tlBtn = qstyleoption_cast &lt;const QStyleOptionToolButton *&gt;(opt);
++
++ if (!tlBtn)
++ return;
++
++ QStyleOptionToolButton copy = *tlBtn;
++ // TODO: cache the gradients so that it is more efficient
++ bool sunken = (opt-&gt;state &amp; QStyle::State_Sunken);
++ bool enabled = (opt-&gt;state &amp; QStyle::State_Enabled);
++ bool hover = (opt-&gt;state &amp; QStyle::State_MouseOver);
++ bool selected = (opt-&gt;state &amp; QStyle::State_On);
++
++ QRect r = opt-&gt;rect;
++ QPen oldPen = p-&gt;pen();
++
++ if (sunken || selected)
++ drawButton(&amp;copy, p, false);
++ else if (hover &amp;&amp; enabled)
++ {
++ copy.state |= QStyle::State_Enabled;
++ drawButton(&amp;copy, p, false);
++ }
++
++ // Here we draw the icon (if exists)...
++ if (tlBtn-&gt;toolButtonStyle != Qt::ToolButtonTextOnly)
++ {
++ QIcon::Mode mode = (tlBtn-&gt;state &amp; QStyle::State_Enabled) ? QIcon::Normal : QIcon::Disabled;
++ if (hover &amp;&amp; enabled)
++ mode = QIcon::Active;
++
++ QRect iconRect(r);
++ QSize s;
++
++ if (tlBtn-&gt;iconSize.width() &gt; r.width()) s = QSize(r.width(), r.width());
++ else if (tlBtn-&gt;iconSize.height() &gt; r.height()) s = QSize(r.height(), r.height());
++ else s = tlBtn-&gt;iconSize;
++
++ QPixmap pix = tlBtn-&gt;icon.pixmap(s, mode);
++
++ int align = 0 ;
++ if (tlBtn-&gt;toolButtonStyle == Qt::ToolButtonTextBesideIcon)
++ {
++ align |= Qt::AlignLeft;
++ iconRect.adjust(-8, 0, -(r.width() - s.width()), 0);
++ }
++ else if (tlBtn-&gt;toolButtonStyle == Qt::ToolButtonTextUnderIcon)
++ {
++ align |= Qt::AlignHCenter;
++ iconRect.adjust(0, 12, 0, 0);
++ }
++ else if (tlBtn-&gt;toolButtonStyle == Qt::ToolButtonIconOnly)
++ align |= Qt::AlignHCenter;
++
++ iconRect = m_parent-&gt;alignedRect(tlBtn-&gt;direction, Qt::Alignment(align), iconRect.size(), r);
++ m_parent-&gt;drawItemPixmap(p, iconRect, Qt::AlignCenter, pix);
++ }
++
++ // ... and here the text (if exists too)
++ if (tlBtn-&gt;toolButtonStyle != Qt::ToolButtonIconOnly)
++ {
++ int text_flags = m_parent-&gt;visualAlignment(tlBtn-&gt;direction, Qt::AlignVCenter | Qt::AlignCenter) | Qt::TextShowMnemonic;
++
++ QRect textRect = r;
++ if (tlBtn-&gt;toolButtonStyle == Qt::ToolButtonTextBesideIcon)
++ {
++ if (tlBtn-&gt;direction == Qt::LeftToRight)
++ textRect.adjust(tlBtn-&gt;iconSize.height() + 4, 0, 0, 0);
++ else
++ textRect.adjust(0, 0, -(tlBtn-&gt;iconSize.height() + 0), 0);
++ }
++ else if (tlBtn-&gt;toolButtonStyle == Qt::ToolButtonTextUnderIcon)
++ textRect.adjust(0, tlBtn-&gt;iconSize.width() + 8, 0, 0);
++
++
++ drawItemText(p, textRect, text_flags, tlBtn-&gt;palette, enabled, tlBtn-&gt;text, QPalette::Text);
++ }
++
++ // it has a menu?
++ if (tlBtn-&gt;features &amp; QStyleOptionToolButton::HasMenu)
++ {
++ copy.rect = m_parent-&gt;subControlRect(QStyle::CC_ToolButton, tlBtn, QStyle::SC_ToolButtonMenu);
++
++ copy.state = QStyle::State_Horizontal;
++
++ if (enabled)
++ copy.state |= QStyle::State_Enabled;
++ if (sunken)
++ copy.state |= QStyle::State_Sunken;
++
++ if (copy.rect != opt-&gt;rect){
++ copy.rect.adjust(2, 1, 0, 0);
++ drawSymbol(&amp;copy, p, IaOraStyle::SymbolArrowDown);
++
++ if (hover &amp;&amp; enabled){
++ copy.rect = QRect(copy.rect.left() - 2, r.top(), 2, r.height());
++ drawSeparator(&amp;copy, p, 4);
++ }
++ }
++ else // I don't know why some toolbuttons don't have a correct place to their arrows...
++ {
++ copy.rect = QRect(0, 0, 8, 8);
++ copy.rect.moveLeft(r.right() - 8);
++ copy.rect.moveBottom(r.bottom());
++ drawSymbol(&amp;copy, p, IaOraStyle::SymbolArrowDown);
++ }
++ }
++
++ p-&gt;setPen(oldPen);
++}
++
+
+
+Property changes on: theme/ia_ora-kde4/src/iaorastyle_toolbutton.cpp
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4srciaorastyle_windowcpp">Added: theme/ia_ora-kde4/src/iaorastyle_window.cpp</a>
+===================================================================
+--- theme/ia_ora-kde4/src/iaorastyle_window.cpp (rev 0)
++++ theme/ia_ora-kde4/src/iaorastyle_window.cpp 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,142 @@
++/*
++ * Copyright 2008 Gustavo Pichorim Boiko &lt;boiko@mandriva.com&gt;
++ * Copyright 2008-2010 Rodrigo Gonçalves de Oliveira &lt;rodrigo@mandriva.com&gt;
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 3 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ */
++
++#include &quot;iaorastyle.h&quot;
++
++void IaOraStyle::drawDockWindowTitle(const QStyleOption *opt, QPainter *p)
++{
++ const QStyleOptionDockWidget *dock = qstyleoption_cast&lt;const QStyleOptionDockWidget *&gt;(opt);
++
++ if (!dock)
++ return;
++
++ QPalette pal = opt-&gt;palette;
++ pal.setCurrentColorGroup(QPalette::Active);
++ ColorData *data = lookupData(pal);
++
++ p-&gt;save();
++
++ QLinearGradient g(opt-&gt;rect.topLeft(), opt-&gt;rect.bottomLeft());
++ g.setColorAt(0., data-&gt;color[1]);
++ g.setColorAt(0.4, data-&gt;color[3]);
++ g.setColorAt(0.41, data-&gt;color[4]);
++ g.setColorAt(1., data-&gt;color[2]);
++ p-&gt;fillRect(opt-&gt;rect, g);
++
++ int text_flags = Qt::AlignCenter | Qt::TextShowMnemonic | Qt::TextDontClip | Qt::TextSingleLine;
++
++ QFont font = p-&gt;font();
++ font.setBold(true);
++ font.setPointSizeF(font.pointSizeF() / 1.19);
++ p-&gt;setFont(font);
++ p-&gt;setPen(data-&gt;white);
++
++ int icons_width = 30; // for the close and float buttons
++
++ QString text = dock-&gt;fontMetrics.elidedText(dock-&gt;title, Qt::ElideRight, dock-&gt;rect.width() - icons_width);
++ p-&gt;drawText(dock-&gt;rect.adjusted(-icons_width, 0, 0, 0), text_flags, text);
++ //p-&gt;drawText(dock-&gt;rect, text_flags, dock-&gt;title);
++
++ p-&gt;restore();
++}
++
++void IaOraStyle::drawTitleBarButton(const QStyleOptionComplex *opt, QPainter *p, const QWidget *w, QStyle::SubControl control, QStyle::StandardPixmap icon)
++{
++ QRect buttonRect = m_parent-&gt;subControlRect(QStyle::CC_TitleBar, opt, control);
++ QPixmap pm = m_parent-&gt;standardIcon(icon, opt, w).pixmap(14, 14);
++
++ QRect pixRect = pm.rect();
++ pixRect.moveCenter(buttonRect.center());
++ p-&gt;drawPixmap(pixRect, pm);
++}
++
++void IaOraStyle::drawTitleBar(const QStyleOptionComplex *opt, QPainter *p, const QWidget *w)
++{
++ const QStyleOptionTitleBar *title = qstyleoption_cast&lt;const QStyleOptionTitleBar *&gt;(opt);
++ if (!title)
++ return;
++
++ //QPalette pal = opt-&gt;palette;
++ //pal.setCurrentColorGroup(QPalette::Active);
++ //ColorData *data = lookupData(pal);
++ ColorData *data = lookupData(opt-&gt;palette); // REGRESSION
++
++ p-&gt;save();
++
++ // dunno why the right border needs to be adjusted, but anyway...
++ QRect contents = opt-&gt;rect.adjusted(0,0,-1,0);
++ p-&gt;setPen(data-&gt;color[2]);
++ p-&gt;setBrush(Qt::NoBrush);
++ p-&gt;drawRect(contents);
++
++ contents.adjust(1,1,0,0);
++ QLinearGradient g(opt-&gt;rect.topLeft(), opt-&gt;rect.bottomLeft());
++ g.setColorAt(0., data-&gt;color[1]);
++ g.setColorAt(0.5, data-&gt;color[3]);
++ g.setColorAt(0.51, data-&gt;color[4]);
++ g.setColorAt(1., data-&gt;color[2]);
++
++ p-&gt;fillRect(contents, g);
++
++ // do we have a label?
++ if (title-&gt;subControls &amp; QStyle::SC_TitleBarLabel)
++ {
++ QRect labelRect = m_parent-&gt;subControlRect(QStyle::CC_TitleBar, opt, QStyle::SC_TitleBarLabel);
++ int text_flags = Qt::AlignVCenter | Qt::TextShowMnemonic | Qt::TextDontClip | Qt::TextSingleLine | Qt::AlignLeft;
++ QFont font = p-&gt;font();
++ font.setBold(true);
++ font.setPointSizeF(font.pointSizeF() / 1.19);
++ p-&gt;setFont(font);
++ p-&gt;setPen(data-&gt;white);
++ p-&gt;drawText(labelRect, text_flags, title-&gt;text);
++ }
++
++ // the buttons
++ if (title-&gt;subControls &amp; QStyle::SC_TitleBarMaxButton
++ &amp;&amp; (title-&gt;titleBarFlags &amp; Qt::WindowMaximizeButtonHint)
++ &amp;&amp; !(title-&gt;titleBarState &amp; Qt::WindowMaximized))
++ drawTitleBarButton(opt, p, w, QStyle::SC_TitleBarMaxButton, QStyle::SP_TitleBarMaxButton);
++ if (title-&gt;subControls &amp; QStyle::SC_TitleBarMinButton
++ &amp;&amp; (title-&gt;titleBarFlags &amp; Qt::WindowMinimizeButtonHint)
++ &amp;&amp; !(title-&gt;titleBarState &amp; Qt::WindowMinimized))
++ drawTitleBarButton(opt, p, w, QStyle::SC_TitleBarMinButton, QStyle::SP_TitleBarMinButton);
++ if (title-&gt;subControls &amp; QStyle::SC_TitleBarNormalButton &amp;&amp;
++ (((title-&gt;titleBarFlags &amp; Qt::WindowMinimizeButtonHint) &amp;&amp;
++ (title-&gt;titleBarState &amp; Qt::WindowMinimized)) ||
++ ((title-&gt;titleBarFlags &amp; Qt::WindowMaximizeButtonHint) &amp;&amp;
++ (title-&gt;titleBarState &amp; Qt::WindowMaximized))))
++ drawTitleBarButton(opt, p, w, QStyle::SC_TitleBarNormalButton, QStyle::SP_TitleBarNormalButton);
++ if (title-&gt;subControls &amp; QStyle::SC_TitleBarShadeButton
++ &amp;&amp; title-&gt;titleBarFlags &amp; Qt::WindowShadeButtonHint)
++ drawTitleBarButton(opt, p, w, QStyle::SC_TitleBarShadeButton, QStyle::SP_TitleBarShadeButton);
++ if (title-&gt;subControls &amp; QStyle::SC_TitleBarSysMenu)
++ drawTitleBarButton(opt, p, w, QStyle::SC_TitleBarSysMenu, QStyle::SP_TitleBarMenuButton);
++ if (title-&gt;subControls &amp; QStyle::SC_TitleBarUnshadeButton
++ &amp;&amp; title-&gt;titleBarFlags &amp; Qt::WindowShadeButtonHint)
++ drawTitleBarButton(opt, p, w, QStyle::SC_TitleBarUnshadeButton, QStyle::SP_TitleBarUnshadeButton);
++ if (title-&gt;subControls &amp; QStyle::SC_TitleBarCloseButton)
++ drawTitleBarButton(opt, p, w, QStyle::SC_TitleBarCloseButton, QStyle::SP_TitleBarCloseButton);
++ if (title-&gt;subControls &amp; QStyle::SC_TitleBarContextHelpButton
++ &amp;&amp; (title-&gt;titleBarFlags &amp; Qt::WindowContextHelpButtonHint))
++ drawTitleBarButton(opt, p, w, QStyle::SC_TitleBarContextHelpButton, QStyle::SP_TitleBarContextHelpButton);
++
++ p-&gt;restore();
++}
++
+
+
+Property changes on: theme/ia_ora-kde4/src/iaorastyle_window.cpp
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4testCMakeListstxt">Added: theme/ia_ora-kde4/test/CMakeLists.txt</a>
+===================================================================
+--- theme/ia_ora-kde4/test/CMakeLists.txt (rev 0)
++++ theme/ia_ora-kde4/test/CMakeLists.txt 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,9 @@
++set( EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR} )
++include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/../src/ ${KDE4_INCLUDES} )
++
++set( qttest_SRCS
++ qttest.cpp
++ mywindow.cpp )
++kde4_add_ui_files(qttest_SRCS mainwindow.ui)
++kde4_add_executable(qttest ${qttest_SRCS})
++target_link_libraries(qttest iaora-qt ${QT_QTGUI_LIBRARY} ${KDE4_KDECORE_LIBRARY} ${KDE4_KDEUI_LIBRARY})
+
+
+Property changes on: theme/ia_ora-kde4/test/CMakeLists.txt
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4testmainwindowui">Added: theme/ia_ora-kde4/test/mainwindow.ui</a>
+===================================================================
+--- theme/ia_ora-kde4/test/mainwindow.ui (rev 0)
++++ theme/ia_ora-kde4/test/mainwindow.ui 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,917 @@
++&lt;ui version=&quot;4.0&quot; &gt;
++ &lt;class&gt;MainWindow&lt;/class&gt;
++ &lt;widget class=&quot;QMainWindow&quot; name=&quot;MainWindow&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;0&lt;/y&gt;
++ &lt;width&gt;785&lt;/width&gt;
++ &lt;height&gt;823&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;windowTitle&quot; &gt;
++ &lt;string&gt;MainWindow&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;centralwidget&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;365&lt;/x&gt;
++ &lt;y&gt;35&lt;/y&gt;
++ &lt;width&gt;278&lt;/width&gt;
++ &lt;height&gt;766&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;layout class=&quot;QVBoxLayout&quot; name=&quot;verticalLayout_4&quot; &gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QComboBox&quot; name=&quot;stylesCombo&quot; /&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QMdiArea&quot; name=&quot;mdiArea&quot; &gt;
++ &lt;property name=&quot;contextMenuPolicy&quot; &gt;
++ &lt;enum&gt;Qt::DefaultContextMenu&lt;/enum&gt;
++ &lt;/property&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;subwindow&quot; &gt;
++ &lt;property name=&quot;windowTitle&quot; &gt;
++ &lt;string&gt;Subwindow&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;layout class=&quot;QGridLayout&quot; name=&quot;gridLayout_5&quot; &gt;
++ &lt;item row=&quot;0&quot; column=&quot;0&quot; &gt;
++ &lt;widget class=&quot;QSplitter&quot; name=&quot;splitter&quot; &gt;
++ &lt;property name=&quot;orientation&quot; &gt;
++ &lt;enum&gt;Qt::Vertical&lt;/enum&gt;
++ &lt;/property&gt;
++ &lt;widget class=&quot;QGroupBox&quot; name=&quot;groupBox&quot; &gt;
++ &lt;property name=&quot;title&quot; &gt;
++ &lt;string&gt;GroupBox&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;flat&quot; &gt;
++ &lt;bool&gt;false&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;checkable&quot; &gt;
++ &lt;bool&gt;true&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;layout class=&quot;QGridLayout&quot; name=&quot;gridLayout_3&quot; &gt;
++ &lt;item row=&quot;0&quot; column=&quot;0&quot; &gt;
++ &lt;widget class=&quot;QPushButton&quot; name=&quot;pushButton_4&quot; &gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;PushButton&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item row=&quot;1&quot; column=&quot;0&quot; &gt;
++ &lt;widget class=&quot;QRadioButton&quot; name=&quot;radioButton_5&quot; &gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;RadioButton&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item row=&quot;2&quot; column=&quot;0&quot; &gt;
++ &lt;widget class=&quot;QCheckBox&quot; name=&quot;checkBox_3&quot; &gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;CheckBox&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QTabWidget&quot; name=&quot;tabWidget&quot; &gt;
++ &lt;property name=&quot;currentIndex&quot; &gt;
++ &lt;number&gt;0&lt;/number&gt;
++ &lt;/property&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;tab&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;0&lt;/y&gt;
++ &lt;width&gt;294&lt;/width&gt;
++ &lt;height&gt;220&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;title&quot; &gt;
++ &lt;string&gt;Tab 1&lt;/string&gt;
++ &lt;/attribute&gt;
++ &lt;layout class=&quot;QGridLayout&quot; name=&quot;gridLayout_4&quot; &gt;
++ &lt;item row=&quot;0&quot; column=&quot;0&quot; &gt;
++ &lt;widget class=&quot;QTreeWidget&quot; name=&quot;treeWidget&quot; &gt;
++ &lt;column&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;FIrst Column&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/column&gt;
++ &lt;item&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Foo&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;item&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Bar&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/item&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Another item&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;item&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;SubItem&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;item&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;SubSubItem&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/item&gt;
++ &lt;/item&gt;
++ &lt;/item&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;tab_13&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;0&lt;/y&gt;
++ &lt;width&gt;294&lt;/width&gt;
++ &lt;height&gt;220&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;title&quot; &gt;
++ &lt;string&gt;Page&lt;/string&gt;
++ &lt;/attribute&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;tab_14&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;0&lt;/y&gt;
++ &lt;width&gt;294&lt;/width&gt;
++ &lt;height&gt;220&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;title&quot; &gt;
++ &lt;string&gt;Page&lt;/string&gt;
++ &lt;/attribute&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;tab_2&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;0&lt;/y&gt;
++ &lt;width&gt;294&lt;/width&gt;
++ &lt;height&gt;220&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;title&quot; &gt;
++ &lt;string&gt;Tab 2&lt;/string&gt;
++ &lt;/attribute&gt;
++ &lt;/widget&gt;
++ &lt;/widget&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/widget&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QMenuBar&quot; name=&quot;menubar&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;0&lt;/y&gt;
++ &lt;width&gt;785&lt;/width&gt;
++ &lt;height&gt;22&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;widget class=&quot;QMenu&quot; name=&quot;menuOne_Menu&quot; &gt;
++ &lt;property name=&quot;title&quot; &gt;
++ &lt;string&gt;One Menu&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;addaction name=&quot;actionOne_Entry&quot; /&gt;
++ &lt;addaction name=&quot;separator&quot; /&gt;
++ &lt;addaction name=&quot;actionAnother_Entry&quot; /&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QMenu&quot; name=&quot;menuOne_More_Menu&quot; &gt;
++ &lt;property name=&quot;title&quot; &gt;
++ &lt;string&gt;One More Menu&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;addaction name=&quot;actionFoobar&quot; /&gt;
++ &lt;/widget&gt;
++ &lt;addaction name=&quot;menuOne_Menu&quot; /&gt;
++ &lt;addaction name=&quot;menuOne_More_Menu&quot; /&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QStatusBar&quot; name=&quot;statusbar&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;801&lt;/y&gt;
++ &lt;width&gt;785&lt;/width&gt;
++ &lt;height&gt;22&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QToolBar&quot; name=&quot;toolBar&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;22&lt;/y&gt;
++ &lt;width&gt;785&lt;/width&gt;
++ &lt;height&gt;13&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;windowTitle&quot; &gt;
++ &lt;string&gt;toolBar&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;toolBarArea&quot; &gt;
++ &lt;enum&gt;TopToolBarArea&lt;/enum&gt;
++ &lt;/attribute&gt;
++ &lt;attribute name=&quot;toolBarBreak&quot; &gt;
++ &lt;bool&gt;false&lt;/bool&gt;
++ &lt;/attribute&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QToolBar&quot; name=&quot;smallToolBar&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;35&lt;/y&gt;
++ &lt;width&gt;13&lt;/width&gt;
++ &lt;height&gt;766&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;windowTitle&quot; &gt;
++ &lt;string&gt;toolBar_2&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;toolBarArea&quot; &gt;
++ &lt;enum&gt;LeftToolBarArea&lt;/enum&gt;
++ &lt;/attribute&gt;
++ &lt;attribute name=&quot;toolBarBreak&quot; &gt;
++ &lt;bool&gt;false&lt;/bool&gt;
++ &lt;/attribute&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QDockWidget&quot; name=&quot;dockWidget_2&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;649&lt;/x&gt;
++ &lt;y&gt;35&lt;/y&gt;
++ &lt;width&gt;136&lt;/width&gt;
++ &lt;height&gt;399&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;windowTitle&quot; &gt;
++ &lt;string&gt;Boxes and Horizontal Sliders&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;dockWidgetArea&quot; &gt;
++ &lt;number&gt;2&lt;/number&gt;
++ &lt;/attribute&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;dockWidgetContents_2&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;26&lt;/y&gt;
++ &lt;width&gt;136&lt;/width&gt;
++ &lt;height&gt;373&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;layout class=&quot;QVBoxLayout&quot; name=&quot;verticalLayout_6&quot; &gt;
++ &lt;item&gt;
++ &lt;layout class=&quot;QVBoxLayout&quot; name=&quot;verticalLayout_2&quot; &gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QLineEdit&quot; name=&quot;lineEdit&quot; /&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QComboBox&quot; name=&quot;comboBox&quot; &gt;
++ &lt;property name=&quot;editable&quot; &gt;
++ &lt;bool&gt;true&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QComboBox&quot; name=&quot;notEditableCombo&quot; /&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QSpinBox&quot; name=&quot;spinBox&quot; /&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;layout class=&quot;QVBoxLayout&quot; name=&quot;verticalLayout&quot; &gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QScrollBar&quot; name=&quot;horizontalScrollBar&quot; &gt;
++ &lt;property name=&quot;orientation&quot; &gt;
++ &lt;enum&gt;Qt::Horizontal&lt;/enum&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QSlider&quot; name=&quot;horizontalSlider&quot; &gt;
++ &lt;property name=&quot;value&quot; &gt;
++ &lt;number&gt;30&lt;/number&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;orientation&quot; &gt;
++ &lt;enum&gt;Qt::Horizontal&lt;/enum&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;tickPosition&quot; &gt;
++ &lt;enum&gt;QSlider::TicksBothSides&lt;/enum&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QProgressBar&quot; name=&quot;progressBar&quot; &gt;
++ &lt;property name=&quot;value&quot; &gt;
++ &lt;number&gt;50&lt;/number&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;alignment&quot; &gt;
++ &lt;set&gt;Qt::AlignCenter&lt;/set&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;textVisible&quot; &gt;
++ &lt;bool&gt;true&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;invertedAppearance&quot; &gt;
++ &lt;bool&gt;false&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/widget&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QDockWidget&quot; name=&quot;dockWidget_3&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;649&lt;/x&gt;
++ &lt;y&gt;440&lt;/y&gt;
++ &lt;width&gt;136&lt;/width&gt;
++ &lt;height&gt;361&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;floating&quot; &gt;
++ &lt;bool&gt;false&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;windowTitle&quot; &gt;
++ &lt;string&gt;Grid View&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;dockWidgetArea&quot; &gt;
++ &lt;number&gt;2&lt;/number&gt;
++ &lt;/attribute&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;dockWidgetContents_3&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;26&lt;/y&gt;
++ &lt;width&gt;136&lt;/width&gt;
++ &lt;height&gt;335&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;layout class=&quot;QHBoxLayout&quot; name=&quot;horizontalLayout_3&quot; &gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QTableWidget&quot; name=&quot;tableWidget&quot; &gt;
++ &lt;property name=&quot;rowCount&quot; &gt;
++ &lt;number&gt;5&lt;/number&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;columnCount&quot; &gt;
++ &lt;number&gt;3&lt;/number&gt;
++ &lt;/property&gt;
++ &lt;row/&gt;
++ &lt;row/&gt;
++ &lt;row/&gt;
++ &lt;row/&gt;
++ &lt;row/&gt;
++ &lt;column/&gt;
++ &lt;column/&gt;
++ &lt;column/&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/widget&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QDockWidget&quot; name=&quot;dockWidget&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;13&lt;/x&gt;
++ &lt;y&gt;35&lt;/y&gt;
++ &lt;width&gt;346&lt;/width&gt;
++ &lt;height&gt;198&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;focusPolicy&quot; &gt;
++ &lt;enum&gt;Qt::TabFocus&lt;/enum&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;floating&quot; &gt;
++ &lt;bool&gt;false&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;windowTitle&quot; &gt;
++ &lt;string&gt;Radio &amp;amp;&amp;amp; Checks&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;dockWidgetArea&quot; &gt;
++ &lt;number&gt;1&lt;/number&gt;
++ &lt;/attribute&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;dockWidgetContents&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;26&lt;/y&gt;
++ &lt;width&gt;346&lt;/width&gt;
++ &lt;height&gt;172&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;layout class=&quot;QHBoxLayout&quot; name=&quot;horizontalLayout_7&quot; &gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QTabWidget&quot; name=&quot;tabWidget_4&quot; &gt;
++ &lt;property name=&quot;tabPosition&quot; &gt;
++ &lt;enum&gt;QTabWidget::South&lt;/enum&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;tabShape&quot; &gt;
++ &lt;enum&gt;QTabWidget::Rounded&lt;/enum&gt;
++ &lt;/property&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;tab_7&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;0&lt;/y&gt;
++ &lt;width&gt;316&lt;/width&gt;
++ &lt;height&gt;119&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;title&quot; &gt;
++ &lt;string&gt;Tab 1&lt;/string&gt;
++ &lt;/attribute&gt;
++ &lt;layout class=&quot;QHBoxLayout&quot; name=&quot;horizontalLayout_6&quot; &gt;
++ &lt;item&gt;
++ &lt;layout class=&quot;QGridLayout&quot; name=&quot;gridLayout_2&quot; &gt;
++ &lt;item row=&quot;0&quot; column=&quot;0&quot; &gt;
++ &lt;widget class=&quot;QRadioButton&quot; name=&quot;radioButton&quot; &gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Enabled&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;checked&quot; &gt;
++ &lt;bool&gt;true&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;autoExclusive&quot; &gt;
++ &lt;bool&gt;false&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item row=&quot;0&quot; column=&quot;1&quot; &gt;
++ &lt;widget class=&quot;QCheckBox&quot; name=&quot;checkBox&quot; &gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Enabled&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;checked&quot; &gt;
++ &lt;bool&gt;true&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;tristate&quot; &gt;
++ &lt;bool&gt;false&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item row=&quot;1&quot; column=&quot;0&quot; &gt;
++ &lt;widget class=&quot;QRadioButton&quot; name=&quot;radioButton_2&quot; &gt;
++ &lt;property name=&quot;enabled&quot; &gt;
++ &lt;bool&gt;false&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Disabled&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;checked&quot; &gt;
++ &lt;bool&gt;true&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;autoExclusive&quot; &gt;
++ &lt;bool&gt;false&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item row=&quot;1&quot; column=&quot;1&quot; &gt;
++ &lt;widget class=&quot;QCheckBox&quot; name=&quot;checkBox_2&quot; &gt;
++ &lt;property name=&quot;enabled&quot; &gt;
++ &lt;bool&gt;false&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Disabled&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;checked&quot; &gt;
++ &lt;bool&gt;true&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item row=&quot;2&quot; column=&quot;0&quot; &gt;
++ &lt;widget class=&quot;QRadioButton&quot; name=&quot;radioButton_3&quot; &gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Enabled&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;autoExclusive&quot; &gt;
++ &lt;bool&gt;false&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item row=&quot;2&quot; column=&quot;1&quot; &gt;
++ &lt;widget class=&quot;QCheckBox&quot; name=&quot;tristateCheck&quot; &gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Tristate&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;checked&quot; &gt;
++ &lt;bool&gt;false&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;tristate&quot; &gt;
++ &lt;bool&gt;true&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item row=&quot;3&quot; column=&quot;0&quot; &gt;
++ &lt;widget class=&quot;QRadioButton&quot; name=&quot;radioButton_4&quot; &gt;
++ &lt;property name=&quot;enabled&quot; &gt;
++ &lt;bool&gt;false&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Disabled&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;autoExclusive&quot; &gt;
++ &lt;bool&gt;false&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item row=&quot;3&quot; column=&quot;1&quot; &gt;
++ &lt;widget class=&quot;QCheckBox&quot; name=&quot;tristateDisable&quot; &gt;
++ &lt;property name=&quot;enabled&quot; &gt;
++ &lt;bool&gt;false&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Tristate Disabled&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;tristate&quot; &gt;
++ &lt;bool&gt;true&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;tab_11&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;0&lt;/y&gt;
++ &lt;width&gt;316&lt;/width&gt;
++ &lt;height&gt;119&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;title&quot; &gt;
++ &lt;string&gt;Page&lt;/string&gt;
++ &lt;/attribute&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;tab_12&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;0&lt;/y&gt;
++ &lt;width&gt;316&lt;/width&gt;
++ &lt;height&gt;119&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;title&quot; &gt;
++ &lt;string&gt;Page&lt;/string&gt;
++ &lt;/attribute&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;tab_8&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;0&lt;/y&gt;
++ &lt;width&gt;316&lt;/width&gt;
++ &lt;height&gt;119&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;title&quot; &gt;
++ &lt;string&gt;Tab 2&lt;/string&gt;
++ &lt;/attribute&gt;
++ &lt;/widget&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/widget&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QDockWidget&quot; name=&quot;dockWidget_5&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;13&lt;/x&gt;
++ &lt;y&gt;239&lt;/y&gt;
++ &lt;width&gt;346&lt;/width&gt;
++ &lt;height&gt;278&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;windowTitle&quot; &gt;
++ &lt;string&gt;Vertical Sliders&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;dockWidgetArea&quot; &gt;
++ &lt;number&gt;1&lt;/number&gt;
++ &lt;/attribute&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;dockWidgetContents_5&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;26&lt;/y&gt;
++ &lt;width&gt;346&lt;/width&gt;
++ &lt;height&gt;252&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;layout class=&quot;QVBoxLayout&quot; name=&quot;verticalLayout_3&quot; &gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QTabWidget&quot; name=&quot;tabWidget_2&quot; &gt;
++ &lt;property name=&quot;tabPosition&quot; &gt;
++ &lt;enum&gt;QTabWidget::West&lt;/enum&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;tabShape&quot; &gt;
++ &lt;enum&gt;QTabWidget::Rounded&lt;/enum&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;currentIndex&quot; &gt;
++ &lt;number&gt;0&lt;/number&gt;
++ &lt;/property&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;tab_3&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;0&lt;/y&gt;
++ &lt;width&gt;293&lt;/width&gt;
++ &lt;height&gt;222&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;title&quot; &gt;
++ &lt;string&gt;Tab 1&lt;/string&gt;
++ &lt;/attribute&gt;
++ &lt;layout class=&quot;QHBoxLayout&quot; name=&quot;horizontalLayout_2&quot; &gt;
++ &lt;item&gt;
++ &lt;layout class=&quot;QHBoxLayout&quot; name=&quot;horizontalLayout&quot; &gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QFrame&quot; name=&quot;frame&quot; &gt;
++ &lt;property name=&quot;frameShape&quot; &gt;
++ &lt;enum&gt;QFrame::StyledPanel&lt;/enum&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;frameShadow&quot; &gt;
++ &lt;enum&gt;QFrame::Raised&lt;/enum&gt;
++ &lt;/property&gt;
++ &lt;layout class=&quot;QHBoxLayout&quot; name=&quot;horizontalLayout_8&quot; &gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QDial&quot; name=&quot;dial&quot; /&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QScrollBar&quot; name=&quot;verticalScrollBar&quot; &gt;
++ &lt;property name=&quot;orientation&quot; &gt;
++ &lt;enum&gt;Qt::Vertical&lt;/enum&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QSlider&quot; name=&quot;verticalSlider&quot; &gt;
++ &lt;property name=&quot;value&quot; &gt;
++ &lt;number&gt;50&lt;/number&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;orientation&quot; &gt;
++ &lt;enum&gt;Qt::Vertical&lt;/enum&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;tickPosition&quot; &gt;
++ &lt;enum&gt;QSlider::TicksAbove&lt;/enum&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QProgressBar&quot; name=&quot;progressBar_2&quot; &gt;
++ &lt;property name=&quot;value&quot; &gt;
++ &lt;number&gt;50&lt;/number&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;orientation&quot; &gt;
++ &lt;enum&gt;Qt::Vertical&lt;/enum&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;zorder&gt;&lt;/zorder&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;tab_10&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;0&lt;/y&gt;
++ &lt;width&gt;293&lt;/width&gt;
++ &lt;height&gt;222&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;title&quot; &gt;
++ &lt;string&gt;Page&lt;/string&gt;
++ &lt;/attribute&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;tab_9&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;0&lt;/y&gt;
++ &lt;width&gt;293&lt;/width&gt;
++ &lt;height&gt;222&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;title&quot; &gt;
++ &lt;string&gt;Page&lt;/string&gt;
++ &lt;/attribute&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;tab_4&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;0&lt;/y&gt;
++ &lt;width&gt;293&lt;/width&gt;
++ &lt;height&gt;222&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;title&quot; &gt;
++ &lt;string&gt;Tab 2&lt;/string&gt;
++ &lt;/attribute&gt;
++ &lt;/widget&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/widget&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QDockWidget&quot; name=&quot;dockWidget_4&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;13&lt;/x&gt;
++ &lt;y&gt;523&lt;/y&gt;
++ &lt;width&gt;346&lt;/width&gt;
++ &lt;height&gt;278&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;windowTitle&quot; &gt;
++ &lt;string&gt;Buttons&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;dockWidgetArea&quot; &gt;
++ &lt;number&gt;1&lt;/number&gt;
++ &lt;/attribute&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;dockWidgetContents_4&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;26&lt;/y&gt;
++ &lt;width&gt;346&lt;/width&gt;
++ &lt;height&gt;252&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;layout class=&quot;QHBoxLayout&quot; name=&quot;horizontalLayout_5&quot; &gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QTabWidget&quot; name=&quot;tabWidget_3&quot; &gt;
++ &lt;property name=&quot;tabPosition&quot; &gt;
++ &lt;enum&gt;QTabWidget::East&lt;/enum&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;currentIndex&quot; &gt;
++ &lt;number&gt;3&lt;/number&gt;
++ &lt;/property&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;tab_5&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;0&lt;/y&gt;
++ &lt;width&gt;293&lt;/width&gt;
++ &lt;height&gt;222&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;title&quot; &gt;
++ &lt;string&gt;Tab 1&lt;/string&gt;
++ &lt;/attribute&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;tab_15&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;0&lt;/y&gt;
++ &lt;width&gt;293&lt;/width&gt;
++ &lt;height&gt;222&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;title&quot; &gt;
++ &lt;string&gt;Page&lt;/string&gt;
++ &lt;/attribute&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;tab_16&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;0&lt;/y&gt;
++ &lt;width&gt;293&lt;/width&gt;
++ &lt;height&gt;222&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;title&quot; &gt;
++ &lt;string&gt;Page&lt;/string&gt;
++ &lt;/attribute&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;tab_6&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;0&lt;/y&gt;
++ &lt;width&gt;293&lt;/width&gt;
++ &lt;height&gt;222&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;title&quot; &gt;
++ &lt;string&gt;Tab 2&lt;/string&gt;
++ &lt;/attribute&gt;
++ &lt;layout class=&quot;QHBoxLayout&quot; name=&quot;horizontalLayout_4&quot; &gt;
++ &lt;item&gt;
++ &lt;layout class=&quot;QGridLayout&quot; name=&quot;gridLayout&quot; &gt;
++ &lt;item row=&quot;0&quot; column=&quot;0&quot; &gt;
++ &lt;widget class=&quot;QPushButton&quot; name=&quot;pushButton&quot; &gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;PushButton&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item row=&quot;0&quot; column=&quot;1&quot; &gt;
++ &lt;widget class=&quot;QPushButton&quot; name=&quot;pushButton_2&quot; &gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Toggle&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;checkable&quot; &gt;
++ &lt;bool&gt;true&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;checked&quot; &gt;
++ &lt;bool&gt;true&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item row=&quot;1&quot; column=&quot;0&quot; &gt;
++ &lt;widget class=&quot;QPushButton&quot; name=&quot;disabledPushButton&quot; &gt;
++ &lt;property name=&quot;enabled&quot; &gt;
++ &lt;bool&gt;false&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Disabled&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item row=&quot;1&quot; column=&quot;1&quot; &gt;
++ &lt;widget class=&quot;QPushButton&quot; name=&quot;pushButton_3&quot; &gt;
++ &lt;property name=&quot;enabled&quot; &gt;
++ &lt;bool&gt;false&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Toggle Disabled&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;checkable&quot; &gt;
++ &lt;bool&gt;true&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;checked&quot; &gt;
++ &lt;bool&gt;true&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item row=&quot;2&quot; column=&quot;0&quot; &gt;
++ &lt;widget class=&quot;QPushButton&quot; name=&quot;defaultPushButton&quot; &gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Default&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;default&quot; &gt;
++ &lt;bool&gt;true&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item row=&quot;2&quot; column=&quot;1&quot; &gt;
++ &lt;widget class=&quot;QToolButton&quot; name=&quot;toolButton&quot; &gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;ToolButton&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/widget&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/widget&gt;
++ &lt;/widget&gt;
++ &lt;action name=&quot;actionOne_Entry&quot; &gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;One Entry&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/action&gt;
++ &lt;action name=&quot;actionAnother_Entry&quot; &gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Another Entry&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/action&gt;
++ &lt;action name=&quot;actionFoobar&quot; &gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Foobar&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/action&gt;
++ &lt;/widget&gt;
++ &lt;resources/&gt;
++ &lt;connections/&gt;
++&lt;/ui&gt;
+
+<a id="themeia_orakde4testmywindowcpp">Added: theme/ia_ora-kde4/test/mywindow.cpp</a>
+===================================================================
+--- theme/ia_ora-kde4/test/mywindow.cpp (rev 0)
++++ theme/ia_ora-kde4/test/mywindow.cpp 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,83 @@
++#include &quot;mywindow.h&quot;
++#include &quot;iaora-qt.h&quot;
++#include &lt;KApplication&gt;
++#include &lt;QStyleFactory&gt;
++#include &lt;QMenu&gt;
++#include &lt;KIcon&gt;
++
++MyWindow::MyWindow()
++: QMainWindow()
++{
++ setContextMenuPolicy(Qt::CustomContextMenu);
++ connect( this, SIGNAL(customContextMenuRequested(const QPoint &amp;)),
++ this, SLOT(slotContextMenu(const QPoint&amp;)));
++}
++
++MyWindow::~MyWindow()
++{
++ // do nothing for now
++}
++
++void MyWindow::slotSetStyle(const QString &amp;style)
++{
++ if (style == &quot;IaOraQt&quot;)
++ KApplication::setStyle(new IaOraQt());
++ else
++ KApplication::setStyle(QStyleFactory::create(style));
++ update();
++}
++
++void MyWindow::slotContextMenu(const QPoint &amp;pos)
++{
++ QMenu *menu = new QMenu(this);
++ QAction *action;
++ menu-&gt;setTearOffEnabled(true);
++
++ menu-&gt;addAction(KIcon(&quot;digikam&quot;), &quot;Take snapshot&quot;);
++ action = menu-&gt;addAction(KIcon(&quot;kde&quot;), &quot;Make KDE4 work&quot;);
++ action-&gt;setEnabled(false);
++ menu-&gt;addSeparator();
++
++ action = new QAction(KIcon(&quot;kchart&quot;), &quot;Checked icon item&quot;, this);
++ action-&gt;setCheckable(true);
++ action-&gt;setChecked(true);
++ menu-&gt;addAction(action);
++
++ action = new QAction(KIcon(&quot;ktip&quot;), &quot;Unchecked icon item&quot;, this);
++ action-&gt;setCheckable(true);
++ menu-&gt;addAction(action);
++
++ action = new QAction(&quot;Checked item&quot;, this);
++ action-&gt;setCheckable(true);
++ action-&gt;setChecked(true);
++ menu-&gt;addAction(action);
++
++ action = new QAction(&quot;Unchecked item&quot;, this);
++ action-&gt;setCheckable(true);
++ menu-&gt;addAction(action);
++
++ QActionGroup group(this);
++ group.setExclusive(true);
++ action = new QAction(&quot;Unique checked item&quot;, this);
++ action-&gt;setCheckable(true);
++ action-&gt;setChecked(true);
++ group.addAction(action);
++ menu-&gt;addAction(action);
++
++ action = new QAction(&quot;Unique unchecked item&quot;, this);
++ action-&gt;setCheckable(true);
++ group.addAction(action);
++ menu-&gt;addAction(action);
++
++ menu-&gt;addSeparator();
++ action = new QAction(KIcon(&quot;kbugbuster&quot;), &quot;Kill some bugs&quot;, this);
++ menu-&gt;addAction(action);
++ menu-&gt;setDefaultAction(action);
++
++ QMenu *subMenu = new QMenu(&quot;A SubMenu&quot;, this);
++ subMenu-&gt;setIcon(KIcon(&quot;konqueror&quot;));
++ subMenu-&gt;addAction(new QAction(KIcon(&quot;dolphin&quot;), &quot;A SubItem&quot;, this));
++ menu-&gt;addMenu(subMenu);
++ menu-&gt;exec(QCursor::pos());
++ delete menu;
++}
+
+
+Property changes on: theme/ia_ora-kde4/test/mywindow.cpp
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4testmywindowh">Added: theme/ia_ora-kde4/test/mywindow.h</a>
+===================================================================
+--- theme/ia_ora-kde4/test/mywindow.h (rev 0)
++++ theme/ia_ora-kde4/test/mywindow.h 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,18 @@
++#ifndef MYWINDOW_H
++#define MYWINDOW_H
++
++#include &lt;QMainWindow&gt;
++
++class MyWindow : public QMainWindow
++{
++ Q_OBJECT
++public:
++ MyWindow();
++ ~MyWindow();
++
++public slots:
++ void slotSetStyle(const QString &amp;style);
++ void slotContextMenu(const QPoint &amp;pos);
++};
++
++#endif
+
+
+Property changes on: theme/ia_ora-kde4/test/mywindow.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4testqttestcpp">Added: theme/ia_ora-kde4/test/qttest.cpp</a>
+===================================================================
+--- theme/ia_ora-kde4/test/qttest.cpp (rev 0)
++++ theme/ia_ora-kde4/test/qttest.cpp 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,134 @@
++#include &lt;KApplication&gt;
++#include &lt;KAboutData&gt;
++#include &lt;KCmdLineArgs&gt;
++
++#include &lt;QAction&gt;
++#include &lt;QString&gt;
++#include &lt;QToolBar&gt;
++#include &lt;QStyleFactory&gt;
++
++#include &lt;KIcon&gt;
++#include &quot;mywindow.h&quot;
++#include &quot;ui_mainwindow.h&quot;
++
++int main(int argc, char **argv)
++{
++ KAboutData aboutData(
++ // The program name used internally.
++ &quot;qttest&quot;,
++ // The message catalog name
++ // If null, program name is used instead.
++ 0,
++ // A displayable program name string.
++ ki18n(&quot;Qt Style Test&quot;),
++ // The program version string.
++ &quot;1.0&quot;,
++ // Short description of what the app does.
++ ki18n(&quot;A testbed for trying out Qt styles&quot;),
++ // The license this code is released under
++ KAboutData::License_GPL,
++ // Copyright Statement
++ ki18n(&quot;(c) 2007&quot;),
++ // Optional text shown in the About box.
++ // Can contain any information desired.
++ ki18n(&quot;Some text...&quot;),
++ // The program homepage string.
++ &quot;http://tutorial.com/&quot;,
++ // The bug report email address
++ &quot;submit@bugs.kde.org&quot;);
++
++ KCmdLineArgs::init( argc, argv, &amp;aboutData );
++ KApplication app;
++
++ MyWindow win;
++ Ui::MainWindow win_ui;
++
++ win_ui.setupUi(&amp;win);
++
++ // the styles toolbar
++ win_ui.stylesCombo-&gt;addItem(&quot;IaOraQt&quot;);
++ win_ui.stylesCombo-&gt;addItems(QStyleFactory::keys());
++ QObject::connect(win_ui.stylesCombo, SIGNAL(activated(const QString &amp;)),
++ &amp;win, SLOT(slotSetStyle(const QString &amp;)));
++
++ // the big toolbar
++ win_ui.toolBar-&gt;addAction(KIcon(&quot;akonadi&quot;), &quot;Foobar&quot;);
++ win_ui.toolBar-&gt;addSeparator();
++ win_ui.toolBar-&gt;addAction(KIcon(&quot;konqueror&quot;), &quot;Web Browser&quot;);
++ win_ui.toolBar-&gt;setIconSize(QSize(32,32));
++
++ win_ui.notEditableCombo-&gt;addItem(&quot;Foobar&quot;);
++ win_ui.notEditableCombo-&gt;addItem(&quot;Foobar2&quot;);
++ win_ui.notEditableCombo-&gt;addItem(&quot;Foobar3&quot;);
++ win_ui.notEditableCombo-&gt;addItem(&quot;Foobar4&quot;);
++ win_ui.notEditableCombo-&gt;addItem(&quot;Foobar5&quot;);
++
++ win_ui.comboBox-&gt;addItem(&quot;Foobar&quot;);
++ win_ui.comboBox-&gt;addItem(&quot;Foobar2&quot;);
++ win_ui.comboBox-&gt;addItem(&quot;Foobar3&quot;);
++ win_ui.comboBox-&gt;addItem(&quot;Foobar4&quot;);
++ win_ui.comboBox-&gt;addItem(&quot;Foobar5&quot;);
++
++ win_ui.tristateCheck-&gt;setCheckState(Qt::PartiallyChecked);
++ win_ui.tristateDisable-&gt;setCheckState(Qt::PartiallyChecked);
++
++ //the small toolbar
++ win_ui.smallToolBar-&gt;addAction(KIcon(&quot;plasma&quot;), &quot;Desktop&quot;);
++ win_ui.smallToolBar-&gt;addSeparator();
++ win_ui.smallToolBar-&gt;addAction(KIcon(&quot;kopete&quot;), &quot;Instant Message&quot;);
++ win.slotSetStyle(&quot;IaOraQt&quot;);
++ win.show();
++
++ QMenuBar *menubar = new QMenuBar(win_ui.subwindow);
++ QMenu *menu = new QMenu(win_ui.subwindow);
++ QAction *action;
++ menu-&gt;setTearOffEnabled(true);
++
++ menu-&gt;addAction(KIcon(&quot;digikam&quot;), &quot;Take snapshot&quot;);
++ action = menu-&gt;addAction(KIcon(&quot;kde&quot;), &quot;Make KDE4 work&quot;);
++ action-&gt;setEnabled(false);
++ menu-&gt;addSeparator();
++
++ action = new QAction(KIcon(&quot;kchart&quot;), &quot;Checked icon item&quot;, win_ui.subwindow);
++ action-&gt;setCheckable(true);
++ action-&gt;setChecked(true);
++ menu-&gt;addAction(action);
++
++ action = new QAction(KIcon(&quot;ktip&quot;), &quot;Unchecked icon item&quot;, win_ui.subwindow);
++ action-&gt;setCheckable(true);
++ menu-&gt;addAction(action);
++
++ action = new QAction(&quot;Checked item&quot;, win_ui.subwindow);
++ action-&gt;setCheckable(true);
++ action-&gt;setChecked(true);
++ menu-&gt;addAction(action);
++
++ action = new QAction(&quot;Unchecked item&quot;, win_ui.subwindow);
++ action-&gt;setCheckable(true);
++ menu-&gt;addAction(action);
++
++ QActionGroup group(win_ui.subwindow);
++ group.setExclusive(true);
++ action = new QAction(&quot;Unique checked item&quot;, win_ui.subwindow);
++ action-&gt;setCheckable(true);
++ action-&gt;setChecked(true);
++ group.addAction(action);
++ menu-&gt;addAction(action);
++
++ action = new QAction(&quot;Unique unchecked item&quot;, win_ui.subwindow);
++ action-&gt;setCheckable(true);
++ group.addAction(action);
++ menu-&gt;addAction(action);
++
++ menu-&gt;addSeparator();
++ menu-&gt;addAction(KIcon(&quot;kbugbuster&quot;), &quot;Kill some bugs&quot;);
++ menu-&gt;setTitle(&quot;A menu&quot;);
++ menubar-&gt;addMenu(menu);
++ menubar-&gt;addMenu(KIcon(&quot;kde&quot;), &quot;Foobar&quot;);
++ menubar-&gt;addSeparator();
++ menubar-&gt;addMenu(&quot;Another menu&quot;);
++
++ menubar-&gt;show();
++ win_ui.subwindow-&gt;layout()-&gt;addWidget(menubar);
++ return app.exec();
++}
+
+
+Property changes on: theme/ia_ora-kde4/test/qttest.cpp
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4uninstallsh">Added: theme/ia_ora-kde4/uninstall.sh</a>
+===================================================================
+--- theme/ia_ora-kde4/uninstall.sh (rev 0)
++++ theme/ia_ora-kde4/uninstall.sh 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,10 @@
++#! /bin/sh
++
++if [ -f install_manifest.txt ] ; then
++ echo &quot;The following files will be removed:&quot;
++ cat install_manifest.txt
++ echo &quot;Press RETURN to abort, or enter root's password to remove them.&quot;
++ su -c &quot;xargs rm -v &lt; install_manifest.txt&quot; &amp;&amp; rm -f install_manifest.txt
++else
++ echo &quot;Cannot find install_manifest.txt, maybe not yet installed?&quot;
++fi
+
+
+Property changes on: theme/ia_ora-kde4/uninstall.sh
+___________________________________________________________________
+Added: svn:executable
+ + *
+Added: svn:eol-style
+ + native
+
+</pre></div>
+
+</body>
+</html> \ No newline at end of file
diff --git a/zarb-ml/mageia-sysadm/attachments/20110207/67d1f0e8/attachment.html b/zarb-ml/mageia-sysadm/attachments/20110207/67d1f0e8/attachment.html
new file mode 100644
index 000000000..1cb4d363f
--- /dev/null
+++ b/zarb-ml/mageia-sysadm/attachments/20110207/67d1f0e8/attachment.html
@@ -0,0 +1,11030 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>[459] Import cleaned ia ora kde4</title>
+</head>
+<body>
+
+<style type="text/css"><!--
+#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
+#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
+#msg dt:after { content:':';}
+#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
+#msg dl a { font-weight: bold}
+#msg dl a:link { color:#fc3; }
+#msg dl a:active { color:#ff0; }
+#msg dl a:visited { color:#cc6; }
+h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
+#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
+#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
+#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
+#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
+#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
+#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
+#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
+#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
+#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
+#logmsg pre { background: #eee; padding: 1em; }
+#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
+#logmsg dl { margin: 0; }
+#logmsg dt { font-weight: bold; }
+#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
+#logmsg dd:before { content:'\00bb';}
+#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
+#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
+#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
+#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
+#logmsg table th.Corner { text-align: left; }
+#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
+#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
+#patch { width: 100%; }
+--></style>
+<div id="msg">
+<dl class="meta">
+<dt>Revision</dt> <dd>459</dd>
+<dt>Author</dt> <dd>dmorgan</dd>
+<dt>Date</dt> <dd>2011-02-07 10:04:25 +0100 (Mon, 07 Feb 2011)</dd>
+</dl>
+
+<h3>Log Message</h3>
+<pre>Import cleaned ia ora kde4</pre>
+
+<h3>Added Paths</h3>
+<ul>
+<li>theme/ia_ora-kde4/</li>
+<li><a href="#themeia_orakde4AUTHORS">theme/ia_ora-kde4/AUTHORS</a></li>
+<li><a href="#themeia_orakde4BUGS">theme/ia_ora-kde4/BUGS</a></li>
+<li><a href="#themeia_orakde4CMakeListstxt">theme/ia_ora-kde4/CMakeLists.txt</a></li>
+<li><a href="#themeia_orakde4INSTALL">theme/ia_ora-kde4/INSTALL</a></li>
+<li><a href="#themeia_orakde4LICENSE">theme/ia_ora-kde4/LICENSE</a></li>
+<li><a href="#themeia_orakde4NEWS">theme/ia_ora-kde4/NEWS</a></li>
+<li><a href="#themeia_orakde4VERSION">theme/ia_ora-kde4/VERSION</a></li>
+<li>theme/ia_ora-kde4/color-schemes/</li>
+<li><a href="#themeia_orakde4colorschemesCMakeListstxt">theme/ia_ora-kde4/color-schemes/CMakeLists.txt</a></li>
+<li><a href="#themeia_orakde4colorschemesIaOraArcticcolors">theme/ia_ora-kde4/color-schemes/IaOraArctic.colors</a></li>
+<li><a href="#themeia_orakde4colorschemesIaOraBluecolors">theme/ia_ora-kde4/color-schemes/IaOraBlue.colors</a></li>
+<li><a href="#themeia_orakde4colorschemesIaOraGraycolors">theme/ia_ora-kde4/color-schemes/IaOraGray.colors</a></li>
+<li><a href="#themeia_orakde4colorschemesIaOraNightcolors">theme/ia_ora-kde4/color-schemes/IaOraNight.colors</a></li>
+<li><a href="#themeia_orakde4colorschemesIaOraOrangecolors">theme/ia_ora-kde4/color-schemes/IaOraOrange.colors</a></li>
+<li><a href="#themeia_orakde4colorschemesIaOraSmoothcolors">theme/ia_ora-kde4/color-schemes/IaOraSmooth.colors</a></li>
+<li><a href="#themeia_orakde4colorschemesIaOraSteelcolors">theme/ia_ora-kde4/color-schemes/IaOraSteel.colors</a></li>
+<li><a href="#themeia_orakde4configure">theme/ia_ora-kde4/configure</a></li>
+<li><a href="#themeia_orakde4installsh">theme/ia_ora-kde4/install.sh</a></li>
+<li>theme/ia_ora-kde4/kwin-client/</li>
+<li><a href="#themeia_orakde4kwinclientCMakeListstxt">theme/ia_ora-kde4/kwin-client/CMakeLists.txt</a></li>
+<li>theme/ia_ora-kde4/kwin-client/config/</li>
+<li><a href="#themeia_orakde4kwinclientconfigCMakeListstxt">theme/ia_ora-kde4/kwin-client/config/CMakeLists.txt</a></li>
+<li><a href="#themeia_orakde4kwinclientconfigiaora_configcpp">theme/ia_ora-kde4/kwin-client/config/iaora_config.cpp</a></li>
+<li><a href="#themeia_orakde4kwinclientconfigiaora_configh">theme/ia_ora-kde4/kwin-client/config/iaora_config.h</a></li>
+<li><a href="#themeia_orakde4kwinclientconfigiaora_configui">theme/ia_ora-kde4/kwin-client/config/iaora_config.ui</a></li>
+<li><a href="#themeia_orakde4kwinclientiaoradesktop">theme/ia_ora-kde4/kwin-client/iaora.desktop</a></li>
+<li><a href="#themeia_orakde4kwinclientkwin_iaoracpp">theme/ia_ora-kde4/kwin-client/kwin_iaora.cpp</a></li>
+<li><a href="#themeia_orakde4kwinclientkwin_iaorah">theme/ia_ora-kde4/kwin-client/kwin_iaora.h</a></li>
+<li>theme/ia_ora-kde4/src/</li>
+<li><a href="#themeia_orakde4srcdirectory">theme/ia_ora-kde4/src/.directory</a></li>
+<li><a href="#themeia_orakde4srcCMakeListstxt">theme/ia_ora-kde4/src/CMakeLists.txt</a></li>
+<li>theme/ia_ora-kde4/src/config/</li>
+<li><a href="#themeia_orakde4srcconfigCMakeListstxt">theme/ia_ora-kde4/src/config/CMakeLists.txt</a></li>
+<li>theme/ia_ora-kde4/src/config/images/</li>
+<li><a href="#themeia_orakde4srcconfigimagesREADME">theme/ia_ora-kde4/src/config/images/README</a></li>
+<li><a href="#themeia_orakde4srcconfigsk_configcpp">theme/ia_ora-kde4/src/config/sk_config.cpp</a></li>
+<li><a href="#themeia_orakde4srcconfigsk_configh">theme/ia_ora-kde4/src/config/sk_config.h</a></li>
+<li><a href="#themeia_orakde4srcconfigsk_dialogui">theme/ia_ora-kde4/src/config/sk_dialog.ui</a></li>
+<li><a href="#themeia_orakde4srcconfigsk_preview1ui">theme/ia_ora-kde4/src/config/sk_preview1.ui</a></li>
+<li><a href="#themeia_orakde4srcconfigsk_preview2qrc">theme/ia_ora-kde4/src/config/sk_preview2.qrc</a></li>
+<li><a href="#themeia_orakde4srcconfigsk_preview2ui">theme/ia_ora-kde4/src/config/sk_preview2.ui</a></li>
+<li><a href="#themeia_orakde4srciaorakdecpp">theme/ia_ora-kde4/src/iaora-kde.cpp</a></li>
+<li><a href="#themeia_orakde4srciaorakdeh">theme/ia_ora-kde4/src/iaora-kde.h</a></li>
+<li><a href="#themeia_orakde4srciaorakdethemerc">theme/ia_ora-kde4/src/iaora-kde.themerc</a></li>
+<li><a href="#themeia_orakde4srciaoraqtcpp">theme/ia_ora-kde4/src/iaora-qt.cpp</a></li>
+<li><a href="#themeia_orakde4srciaoraqth">theme/ia_ora-kde4/src/iaora-qt.h</a></li>
+<li><a href="#themeia_orakde4srciaoracolors">theme/ia_ora-kde4/src/iaoracolors</a></li>
+<li><a href="#themeia_orakde4srciaorastylecpp">theme/ia_ora-kde4/src/iaorastyle.cpp</a></li>
+<li><a href="#themeia_orakde4srciaorastyleh">theme/ia_ora-kde4/src/iaorastyle.h</a></li>
+<li><a href="#themeia_orakde4srciaorastyle_buttoncpp">theme/ia_ora-kde4/src/iaorastyle_button.cpp</a></li>
+<li><a href="#themeia_orakde4srciaorastyle_comboboxcpp">theme/ia_ora-kde4/src/iaorastyle_combobox.cpp</a></li>
+<li><a href="#themeia_orakde4srciaorastyle_dialcpp">theme/ia_ora-kde4/src/iaorastyle_dial.cpp</a></li>
+<li><a href="#themeia_orakde4srciaorastyle_framecpp">theme/ia_ora-kde4/src/iaorastyle_frame.cpp</a></li>
+<li><a href="#themeia_orakde4srciaorastyle_iconscpp">theme/ia_ora-kde4/src/iaorastyle_icons.cpp</a></li>
+<li><a href="#themeia_orakde4srciaorastyle_menucpp">theme/ia_ora-kde4/src/iaorastyle_menu.cpp</a></li>
+<li><a href="#themeia_orakde4srciaorastyle_progressbarcpp">theme/ia_ora-kde4/src/iaorastyle_progressbar.cpp</a></li>
+<li><a href="#themeia_orakde4srciaorastyle_q3listviewcpp">theme/ia_ora-kde4/src/iaorastyle_q3listview.cpp</a></li>
+<li><a href="#themeia_orakde4srciaorastyle_scrollbarcpp">theme/ia_ora-kde4/src/iaorastyle_scrollbar.cpp</a></li>
+<li><a href="#themeia_orakde4srciaorastyle_slidercpp">theme/ia_ora-kde4/src/iaorastyle_slider.cpp</a></li>
+<li><a href="#themeia_orakde4srciaorastyle_spinboxcpp">theme/ia_ora-kde4/src/iaorastyle_spinbox.cpp</a></li>
+<li><a href="#themeia_orakde4srciaorastyle_symbolscpp">theme/ia_ora-kde4/src/iaorastyle_symbols.cpp</a></li>
+<li><a href="#themeia_orakde4srciaorastyle_tabbarcpp">theme/ia_ora-kde4/src/iaorastyle_tabbar.cpp</a></li>
+<li><a href="#themeia_orakde4srciaorastyle_toolbuttoncpp">theme/ia_ora-kde4/src/iaorastyle_toolbutton.cpp</a></li>
+<li><a href="#themeia_orakde4srciaorastyle_windowcpp">theme/ia_ora-kde4/src/iaorastyle_window.cpp</a></li>
+<li>theme/ia_ora-kde4/test/</li>
+<li><a href="#themeia_orakde4testCMakeListstxt">theme/ia_ora-kde4/test/CMakeLists.txt</a></li>
+<li><a href="#themeia_orakde4testmainwindowui">theme/ia_ora-kde4/test/mainwindow.ui</a></li>
+<li><a href="#themeia_orakde4testmywindowcpp">theme/ia_ora-kde4/test/mywindow.cpp</a></li>
+<li><a href="#themeia_orakde4testmywindowh">theme/ia_ora-kde4/test/mywindow.h</a></li>
+<li><a href="#themeia_orakde4testqttestcpp">theme/ia_ora-kde4/test/qttest.cpp</a></li>
+<li><a href="#themeia_orakde4uninstallsh">theme/ia_ora-kde4/uninstall.sh</a></li>
+</ul>
+
+</div>
+<div id="patch"><pre>
+<a id="themeia_orakde4AUTHORS">Added: theme/ia_ora-kde4/AUTHORS</a>
+===================================================================
+--- theme/ia_ora-kde4/AUTHORS (rev 0)
++++ theme/ia_ora-kde4/AUTHORS 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,4 @@
++Gustavo Pichorim Boiko &lt;boiko@mandriva.com&gt;
++Christoph Feck &lt;christoph@maxiom.de&gt; (original Skulpture author)
++Rodrigo Gonçalves de Oliveira &lt;rodrigo@mandriva.com&gt;
++Nicolas Lécureuil &lt;nlecureuil@mandriva.com&gt;
+
+<a id="themeia_orakde4BUGS">Added: theme/ia_ora-kde4/BUGS</a>
+===================================================================
+--- theme/ia_ora-kde4/BUGS (rev 0)
++++ theme/ia_ora-kde4/BUGS 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1 @@
++
+
+<a id="themeia_orakde4CMakeListstxt">Added: theme/ia_ora-kde4/CMakeLists.txt</a>
+===================================================================
+--- theme/ia_ora-kde4/CMakeLists.txt (rev 0)
++++ theme/ia_ora-kde4/CMakeLists.txt 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,26 @@
++project (iaora)
++cmake_minimum_required (VERSION 2.4)
++
++find_package (KDE4)
++
++if (KDE4_FOUND)
++ include (KDE4Defaults)
++ include (MacroLibrary)
++ add_definitions (${QT_DEFINITIONS} ${KDE4_DEFINITIONS} )
++ include_directories (${KDE4_INCLUDES})
++else (KDE4_FOUND)
++ message (STATUS &quot;WARNING: *** KDE4 not found, building a Qt-only version of IaOra ***&quot;)
++ set (QT_MIN_VERSION &quot;4.3.0&quot;)
++ find_package (Qt4 REQUIRED)
++ include (UseQt4)
++ set (CMAKE_INCLUDE_CURRENT_DIR ON)
++endif (KDE4_FOUND)
++
++add_subdirectory (src)
++add_subdirectory (color-schemes)
++add_subdirectory (test)
++
++if (KDE4_FOUND)
++ add_subdirectory (kwin-client)
++endif (KDE4_FOUND)
++
+
+
+Property changes on: theme/ia_ora-kde4/CMakeLists.txt
+___________________________________________________________________
+<a id="svneolstyle">Added: svn:eol-style</a>
+ + native
+
+<a id="themeia_orakde4INSTALL">Added: theme/ia_ora-kde4/INSTALL</a>
+===================================================================
+--- theme/ia_ora-kde4/INSTALL (rev 0)
++++ theme/ia_ora-kde4/INSTALL 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,20 @@
++=== Installing IaOra ===
++
++*** Installation ***
++
++Installation from source requires CMake. To install, type the following at
++the shell prompt within the package directory.
++Note that you are prompted for the root password during installation.
++
++ sh install.sh
++
++
++*** Deinstallation ***
++
++To uninstall, type the following at the shell prompt within the directory
++from which you installed. If you deleted that directory, just install it
++again. Again, you are prompted for the root password.
++
++ sh uninstall.sh
++
++
+
+<a id="themeia_orakde4LICENSE">Added: theme/ia_ora-kde4/LICENSE</a>
+===================================================================
+--- theme/ia_ora-kde4/LICENSE (rev 0)
++++ theme/ia_ora-kde4/LICENSE 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,676 @@
++
++ GNU GENERAL PUBLIC LICENSE
++ Version 3, 29 June 2007
++
++ Copyright (C) 2007 Free Software Foundation, Inc. &lt;http://fsf.org/&gt;
++ Everyone is permitted to copy and distribute verbatim copies
++ of this license document, but changing it is not allowed.
++
++ Preamble
++
++ The GNU General Public License is a free, copyleft license for
++software and other kinds of works.
++
++ The licenses for most software and other practical works are designed
++to take away your freedom to share and change the works. By contrast,
++the GNU General Public License is intended to guarantee your freedom to
++share and change all versions of a program--to make sure it remains free
++software for all its users. We, the Free Software Foundation, use the
++GNU General Public License for most of our software; it applies also to
++any other work released this way by its authors. You can apply it to
++your programs, too.
++
++ When we speak of free software, we are referring to freedom, not
++price. Our General Public Licenses are designed to make sure that you
++have the freedom to distribute copies of free software (and charge for
++them if you wish), that you receive source code or can get it if you
++want it, that you can change the software or use pieces of it in new
++free programs, and that you know you can do these things.
++
++ To protect your rights, we need to prevent others from denying you
++these rights or asking you to surrender the rights. Therefore, you have
++certain responsibilities if you distribute copies of the software, or if
++you modify it: responsibilities to respect the freedom of others.
++
++ For example, if you distribute copies of such a program, whether
++gratis or for a fee, you must pass on to the recipients the same
++freedoms that you received. You must make sure that they, too, receive
++or can get the source code. And you must show them these terms so they
++know their rights.
++
++ Developers that use the GNU GPL protect your rights with two steps:
++(1) assert copyright on the software, and (2) offer you this License
++giving you legal permission to copy, distribute and/or modify it.
++
++ For the developers' and authors' protection, the GPL clearly explains
++that there is no warranty for this free software. For both users' and
++authors' sake, the GPL requires that modified versions be marked as
++changed, so that their problems will not be attributed erroneously to
++authors of previous versions.
++
++ Some devices are designed to deny users access to install or run
++modified versions of the software inside them, although the manufacturer
++can do so. This is fundamentally incompatible with the aim of
++protecting users' freedom to change the software. The systematic
++pattern of such abuse occurs in the area of products for individuals to
++use, which is precisely where it is most unacceptable. Therefore, we
++have designed this version of the GPL to prohibit the practice for those
++products. If such problems arise substantially in other domains, we
++stand ready to extend this provision to those domains in future versions
++of the GPL, as needed to protect the freedom of users.
++
++ Finally, every program is threatened constantly by software patents.
++States should not allow patents to restrict development and use of
++software on general-purpose computers, but in those that do, we wish to
++avoid the special danger that patents applied to a free program could
++make it effectively proprietary. To prevent this, the GPL assures that
++patents cannot be used to render the program non-free.
++
++ The precise terms and conditions for copying, distribution and
++modification follow.
++
++ TERMS AND CONDITIONS
++
++ 0. Definitions.
++
++ &quot;This License&quot; refers to version 3 of the GNU General Public License.
++
++ &quot;Copyright&quot; also means copyright-like laws that apply to other kinds of
++works, such as semiconductor masks.
++
++ &quot;The Program&quot; refers to any copyrightable work licensed under this
++License. Each licensee is addressed as &quot;you&quot;. &quot;Licensees&quot; and
++&quot;recipients&quot; may be individuals or organizations.
++
++ To &quot;modify&quot; a work means to copy from or adapt all or part of the work
++in a fashion requiring copyright permission, other than the making of an
++exact copy. The resulting work is called a &quot;modified version&quot; of the
++earlier work or a work &quot;based on&quot; the earlier work.
++
++ A &quot;covered work&quot; means either the unmodified Program or a work based
++on the Program.
++
++ To &quot;propagate&quot; a work means to do anything with it that, without
++permission, would make you directly or secondarily liable for
++infringement under applicable copyright law, except executing it on a
++computer or modifying a private copy. Propagation includes copying,
++distribution (with or without modification), making available to the
++public, and in some countries other activities as well.
++
++ To &quot;convey&quot; a work means any kind of propagation that enables other
++parties to make or receive copies. Mere interaction with a user through
++a computer network, with no transfer of a copy, is not conveying.
++
++ An interactive user interface displays &quot;Appropriate Legal Notices&quot;
++to the extent that it includes a convenient and prominently visible
++feature that (1) displays an appropriate copyright notice, and (2)
++tells the user that there is no warranty for the work (except to the
++extent that warranties are provided), that licensees may convey the
++work under this License, and how to view a copy of this License. If
++the interface presents a list of user commands or options, such as a
++menu, a prominent item in the list meets this criterion.
++
++ 1. Source Code.
++
++ The &quot;source code&quot; for a work means the preferred form of the work
++for making modifications to it. &quot;Object code&quot; means any non-source
++form of a work.
++
++ A &quot;Standard Interface&quot; means an interface that either is an official
++standard defined by a recognized standards body, or, in the case of
++interfaces specified for a particular programming language, one that
++is widely used among developers working in that language.
++
++ The &quot;System Libraries&quot; of an executable work include anything, other
++than the work as a whole, that (a) is included in the normal form of
++packaging a Major Component, but which is not part of that Major
++Component, and (b) serves only to enable use of the work with that
++Major Component, or to implement a Standard Interface for which an
++implementation is available to the public in source code form. A
++&quot;Major Component&quot;, in this context, means a major essential component
++(kernel, window system, and so on) of the specific operating system
++(if any) on which the executable work runs, or a compiler used to
++produce the work, or an object code interpreter used to run it.
++
++ The &quot;Corresponding Source&quot; for a work in object code form means all
++the source code needed to generate, install, and (for an executable
++work) run the object code and to modify the work, including scripts to
++control those activities. However, it does not include the work's
++System Libraries, or general-purpose tools or generally available free
++programs which are used unmodified in performing those activities but
++which are not part of the work. For example, Corresponding Source
++includes interface definition files associated with source files for
++the work, and the source code for shared libraries and dynamically
++linked subprograms that the work is specifically designed to require,
++such as by intimate data communication or control flow between those
++subprograms and other parts of the work.
++
++ The Corresponding Source need not include anything that users
++can regenerate automatically from other parts of the Corresponding
++Source.
++
++ The Corresponding Source for a work in source code form is that
++same work.
++
++ 2. Basic Permissions.
++
++ All rights granted under this License are granted for the term of
++copyright on the Program, and are irrevocable provided the stated
++conditions are met. This License explicitly affirms your unlimited
++permission to run the unmodified Program. The output from running a
++covered work is covered by this License only if the output, given its
++content, constitutes a covered work. This License acknowledges your
++rights of fair use or other equivalent, as provided by copyright law.
++
++ You may make, run and propagate covered works that you do not
++convey, without conditions so long as your license otherwise remains
++in force. You may convey covered works to others for the sole purpose
++of having them make modifications exclusively for you, or provide you
++with facilities for running those works, provided that you comply with
++the terms of this License in conveying all material for which you do
++not control copyright. Those thus making or running the covered works
++for you must do so exclusively on your behalf, under your direction
++and control, on terms that prohibit them from making any copies of
++your copyrighted material outside their relationship with you.
++
++ Conveying under any other circumstances is permitted solely under
++the conditions stated below. Sublicensing is not allowed; section 10
++makes it unnecessary.
++
++ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
++
++ No covered work shall be deemed part of an effective technological
++measure under any applicable law fulfilling obligations under article
++11 of the WIPO copyright treaty adopted on 20 December 1996, or
++similar laws prohibiting or restricting circumvention of such
++measures.
++
++ When you convey a covered work, you waive any legal power to forbid
++circumvention of technological measures to the extent such circumvention
++is effected by exercising rights under this License with respect to
++the covered work, and you disclaim any intention to limit operation or
++modification of the work as a means of enforcing, against the work's
++users, your or third parties' legal rights to forbid circumvention of
++technological measures.
++
++ 4. Conveying Verbatim Copies.
++
++ You may convey verbatim copies of the Program's source code as you
++receive it, in any medium, provided that you conspicuously and
++appropriately publish on each copy an appropriate copyright notice;
++keep intact all notices stating that this License and any
++non-permissive terms added in accord with section 7 apply to the code;
++keep intact all notices of the absence of any warranty; and give all
++recipients a copy of this License along with the Program.
++
++ You may charge any price or no price for each copy that you convey,
++and you may offer support or warranty protection for a fee.
++
++ 5. Conveying Modified Source Versions.
++
++ You may convey a work based on the Program, or the modifications to
++produce it from the Program, in the form of source code under the
++terms of section 4, provided that you also meet all of these conditions:
++
++ a) The work must carry prominent notices stating that you modified
++ it, and giving a relevant date.
++
++ b) The work must carry prominent notices stating that it is
++ released under this License and any conditions added under section
++ 7. This requirement modifies the requirement in section 4 to
++ &quot;keep intact all notices&quot;.
++
++ c) You must license the entire work, as a whole, under this
++ License to anyone who comes into possession of a copy. This
++ License will therefore apply, along with any applicable section 7
++ additional terms, to the whole of the work, and all its parts,
++ regardless of how they are packaged. This License gives no
++ permission to license the work in any other way, but it does not
++ invalidate such permission if you have separately received it.
++
++ d) If the work has interactive user interfaces, each must display
++ Appropriate Legal Notices; however, if the Program has interactive
++ interfaces that do not display Appropriate Legal Notices, your
++ work need not make them do so.
++
++ A compilation of a covered work with other separate and independent
++works, which are not by their nature extensions of the covered work,
++and which are not combined with it such as to form a larger program,
++in or on a volume of a storage or distribution medium, is called an
++&quot;aggregate&quot; if the compilation and its resulting copyright are not
++used to limit the access or legal rights of the compilation's users
++beyond what the individual works permit. Inclusion of a covered work
++in an aggregate does not cause this License to apply to the other
++parts of the aggregate.
++
++ 6. Conveying Non-Source Forms.
++
++ You may convey a covered work in object code form under the terms
++of sections 4 and 5, provided that you also convey the
++machine-readable Corresponding Source under the terms of this License,
++in one of these ways:
++
++ a) Convey the object code in, or embodied in, a physical product
++ (including a physical distribution medium), accompanied by the
++ Corresponding Source fixed on a durable physical medium
++ customarily used for software interchange.
++
++ b) Convey the object code in, or embodied in, a physical product
++ (including a physical distribution medium), accompanied by a
++ written offer, valid for at least three years and valid for as
++ long as you offer spare parts or customer support for that product
++ model, to give anyone who possesses the object code either (1) a
++ copy of the Corresponding Source for all the software in the
++ product that is covered by this License, on a durable physical
++ medium customarily used for software interchange, for a price no
++ more than your reasonable cost of physically performing this
++ conveying of source, or (2) access to copy the
++ Corresponding Source from a network server at no charge.
++
++ c) Convey individual copies of the object code with a copy of the
++ written offer to provide the Corresponding Source. This
++ alternative is allowed only occasionally and noncommercially, and
++ only if you received the object code with such an offer, in accord
++ with subsection 6b.
++
++ d) Convey the object code by offering access from a designated
++ place (gratis or for a charge), and offer equivalent access to the
++ Corresponding Source in the same way through the same place at no
++ further charge. You need not require recipients to copy the
++ Corresponding Source along with the object code. If the place to
++ copy the object code is a network server, the Corresponding Source
++ may be on a different server (operated by you or a third party)
++ that supports equivalent copying facilities, provided you maintain
++ clear directions next to the object code saying where to find the
++ Corresponding Source. Regardless of what server hosts the
++ Corresponding Source, you remain obligated to ensure that it is
++ available for as long as needed to satisfy these requirements.
++
++ e) Convey the object code using peer-to-peer transmission, provided
++ you inform other peers where the object code and Corresponding
++ Source of the work are being offered to the general public at no
++ charge under subsection 6d.
++
++ A separable portion of the object code, whose source code is excluded
++from the Corresponding Source as a System Library, need not be
++included in conveying the object code work.
++
++ A &quot;User Product&quot; is either (1) a &quot;consumer product&quot;, which means any
++tangible personal property which is normally used for personal, family,
++or household purposes, or (2) anything designed or sold for incorporation
++into a dwelling. In determining whether a product is a consumer product,
++doubtful cases shall be resolved in favor of coverage. For a particular
++product received by a particular user, &quot;normally used&quot; refers to a
++typical or common use of that class of product, regardless of the status
++of the particular user or of the way in which the particular user
++actually uses, or expects or is expected to use, the product. A product
++is a consumer product regardless of whether the product has substantial
++commercial, industrial or non-consumer uses, unless such uses represent
++the only significant mode of use of the product.
++
++ &quot;Installation Information&quot; for a User Product means any methods,
++procedures, authorization keys, or other information required to install
++and execute modified versions of a covered work in that User Product from
++a modified version of its Corresponding Source. The information must
++suffice to ensure that the continued functioning of the modified object
++code is in no case prevented or interfered with solely because
++modification has been made.
++
++ If you convey an object code work under this section in, or with, or
++specifically for use in, a User Product, and the conveying occurs as
++part of a transaction in which the right of possession and use of the
++User Product is transferred to the recipient in perpetuity or for a
++fixed term (regardless of how the transaction is characterized), the
++Corresponding Source conveyed under this section must be accompanied
++by the Installation Information. But this requirement does not apply
++if neither you nor any third party retains the ability to install
++modified object code on the User Product (for example, the work has
++been installed in ROM).
++
++ The requirement to provide Installation Information does not include a
++requirement to continue to provide support service, warranty, or updates
++for a work that has been modified or installed by the recipient, or for
++the User Product in which it has been modified or installed. Access to a
++network may be denied when the modification itself materially and
++adversely affects the operation of the network or violates the rules and
++protocols for communication across the network.
++
++ Corresponding Source conveyed, and Installation Information provided,
++in accord with this section must be in a format that is publicly
++documented (and with an implementation available to the public in
++source code form), and must require no special password or key for
++unpacking, reading or copying.
++
++ 7. Additional Terms.
++
++ &quot;Additional permissions&quot; are terms that supplement the terms of this
++License by making exceptions from one or more of its conditions.
++Additional permissions that are applicable to the entire Program shall
++be treated as though they were included in this License, to the extent
++that they are valid under applicable law. If additional permissions
++apply only to part of the Program, that part may be used separately
++under those permissions, but the entire Program remains governed by
++this License without regard to the additional permissions.
++
++ When you convey a copy of a covered work, you may at your option
++remove any additional permissions from that copy, or from any part of
++it. (Additional permissions may be written to require their own
++removal in certain cases when you modify the work.) You may place
++additional permissions on material, added by you to a covered work,
++for which you have or can give appropriate copyright permission.
++
++ Notwithstanding any other provision of this License, for material you
++add to a covered work, you may (if authorized by the copyright holders of
++that material) supplement the terms of this License with terms:
++
++ a) Disclaiming warranty or limiting liability differently from the
++ terms of sections 15 and 16 of this License; or
++
++ b) Requiring preservation of specified reasonable legal notices or
++ author attributions in that material or in the Appropriate Legal
++ Notices displayed by works containing it; or
++
++ c) Prohibiting misrepresentation of the origin of that material, or
++ requiring that modified versions of such material be marked in
++ reasonable ways as different from the original version; or
++
++ d) Limiting the use for publicity purposes of names of licensors or
++ authors of the material; or
++
++ e) Declining to grant rights under trademark law for use of some
++ trade names, trademarks, or service marks; or
++
++ f) Requiring indemnification of licensors and authors of that
++ material by anyone who conveys the material (or modified versions of
++ it) with contractual assumptions of liability to the recipient, for
++ any liability that these contractual assumptions directly impose on
++ those licensors and authors.
++
++ All other non-permissive additional terms are considered &quot;further
++restrictions&quot; within the meaning of section 10. If the Program as you
++received it, or any part of it, contains a notice stating that it is
++governed by this License along with a term that is a further
++restriction, you may remove that term. If a license document contains
++a further restriction but permits relicensing or conveying under this
++License, you may add to a covered work material governed by the terms
++of that license document, provided that the further restriction does
++not survive such relicensing or conveying.
++
++ If you add terms to a covered work in accord with this section, you
++must place, in the relevant source files, a statement of the
++additional terms that apply to those files, or a notice indicating
++where to find the applicable terms.
++
++ Additional terms, permissive or non-permissive, may be stated in the
++form of a separately written license, or stated as exceptions;
++the above requirements apply either way.
++
++ 8. Termination.
++
++ You may not propagate or modify a covered work except as expressly
++provided under this License. Any attempt otherwise to propagate or
++modify it is void, and will automatically terminate your rights under
++this License (including any patent licenses granted under the third
++paragraph of section 11).
++
++ However, if you cease all violation of this License, then your
++license from a particular copyright holder is reinstated (a)
++provisionally, unless and until the copyright holder explicitly and
++finally terminates your license, and (b) permanently, if the copyright
++holder fails to notify you of the violation by some reasonable means
++prior to 60 days after the cessation.
++
++ Moreover, your license from a particular copyright holder is
++reinstated permanently if the copyright holder notifies you of the
++violation by some reasonable means, this is the first time you have
++received notice of violation of this License (for any work) from that
++copyright holder, and you cure the violation prior to 30 days after
++your receipt of the notice.
++
++ Termination of your rights under this section does not terminate the
++licenses of parties who have received copies or rights from you under
++this License. If your rights have been terminated and not permanently
++reinstated, you do not qualify to receive new licenses for the same
++material under section 10.
++
++ 9. Acceptance Not Required for Having Copies.
++
++ You are not required to accept this License in order to receive or
++run a copy of the Program. Ancillary propagation of a covered work
++occurring solely as a consequence of using peer-to-peer transmission
++to receive a copy likewise does not require acceptance. However,
++nothing other than this License grants you permission to propagate or
++modify any covered work. These actions infringe copyright if you do
++not accept this License. Therefore, by modifying or propagating a
++covered work, you indicate your acceptance of this License to do so.
++
++ 10. Automatic Licensing of Downstream Recipients.
++
++ Each time you convey a covered work, the recipient automatically
++receives a license from the original licensors, to run, modify and
++propagate that work, subject to this License. You are not responsible
++for enforcing compliance by third parties with this License.
++
++ An &quot;entity transaction&quot; is a transaction transferring control of an
++organization, or substantially all assets of one, or subdividing an
++organization, or merging organizations. If propagation of a covered
++work results from an entity transaction, each party to that
++transaction who receives a copy of the work also receives whatever
++licenses to the work the party's predecessor in interest had or could
++give under the previous paragraph, plus a right to possession of the
++Corresponding Source of the work from the predecessor in interest, if
++the predecessor has it or can get it with reasonable efforts.
++
++ You may not impose any further restrictions on the exercise of the
++rights granted or affirmed under this License. For example, you may
++not impose a license fee, royalty, or other charge for exercise of
++rights granted under this License, and you may not initiate litigation
++(including a cross-claim or counterclaim in a lawsuit) alleging that
++any patent claim is infringed by making, using, selling, offering for
++sale, or importing the Program or any portion of it.
++
++ 11. Patents.
++
++ A &quot;contributor&quot; is a copyright holder who authorizes use under this
++License of the Program or a work on which the Program is based. The
++work thus licensed is called the contributor's &quot;contributor version&quot;.
++
++ A contributor's &quot;essential patent claims&quot; are all patent claims
++owned or controlled by the contributor, whether already acquired or
++hereafter acquired, that would be infringed by some manner, permitted
++by this License, of making, using, or selling its contributor version,
++but do not include claims that would be infringed only as a
++consequence of further modification of the contributor version. For
++purposes of this definition, &quot;control&quot; includes the right to grant
++patent sublicenses in a manner consistent with the requirements of
++this License.
++
++ Each contributor grants you a non-exclusive, worldwide, royalty-free
++patent license under the contributor's essential patent claims, to
++make, use, sell, offer for sale, import and otherwise run, modify and
++propagate the contents of its contributor version.
++
++ In the following three paragraphs, a &quot;patent license&quot; is any express
++agreement or commitment, however denominated, not to enforce a patent
++(such as an express permission to practice a patent or covenant not to
++sue for patent infringement). To &quot;grant&quot; such a patent license to a
++party means to make such an agreement or commitment not to enforce a
++patent against the party.
++
++ If you convey a covered work, knowingly relying on a patent license,
++and the Corresponding Source of the work is not available for anyone
++to copy, free of charge and under the terms of this License, through a
++publicly available network server or other readily accessible means,
++then you must either (1) cause the Corresponding Source to be so
++available, or (2) arrange to deprive yourself of the benefit of the
++patent license for this particular work, or (3) arrange, in a manner
++consistent with the requirements of this License, to extend the patent
++license to downstream recipients. &quot;Knowingly relying&quot; means you have
++actual knowledge that, but for the patent license, your conveying the
++covered work in a country, or your recipient's use of the covered work
++in a country, would infringe one or more identifiable patents in that
++country that you have reason to believe are valid.
++
++ If, pursuant to or in connection with a single transaction or
++arrangement, you convey, or propagate by procuring conveyance of, a
++covered work, and grant a patent license to some of the parties
++receiving the covered work authorizing them to use, propagate, modify
++or convey a specific copy of the covered work, then the patent license
++you grant is automatically extended to all recipients of the covered
++work and works based on it.
++
++ A patent license is &quot;discriminatory&quot; if it does not include within
++the scope of its coverage, prohibits the exercise of, or is
++conditioned on the non-exercise of one or more of the rights that are
++specifically granted under this License. You may not convey a covered
++work if you are a party to an arrangement with a third party that is
++in the business of distributing software, under which you make payment
++to the third party based on the extent of your activity of conveying
++the work, and under which the third party grants, to any of the
++parties who would receive the covered work from you, a discriminatory
++patent license (a) in connection with copies of the covered work
++conveyed by you (or copies made from those copies), or (b) primarily
++for and in connection with specific products or compilations that
++contain the covered work, unless you entered into that arrangement,
++or that patent license was granted, prior to 28 March 2007.
++
++ Nothing in this License shall be construed as excluding or limiting
++any implied license or other defenses to infringement that may
++otherwise be available to you under applicable patent law.
++
++ 12. No Surrender of Others' Freedom.
++
++ If conditions are imposed on you (whether by court order, agreement or
++otherwise) that contradict the conditions of this License, they do not
++excuse you from the conditions of this License. If you cannot convey a
++covered work so as to satisfy simultaneously your obligations under this
++License and any other pertinent obligations, then as a consequence you may
++not convey it at all. For example, if you agree to terms that obligate you
++to collect a royalty for further conveying from those to whom you convey
++the Program, the only way you could satisfy both those terms and this
++License would be to refrain entirely from conveying the Program.
++
++ 13. Use with the GNU Affero General Public License.
++
++ Notwithstanding any other provision of this License, you have
++permission to link or combine any covered work with a work licensed
++under version 3 of the GNU Affero General Public License into a single
++combined work, and to convey the resulting work. The terms of this
++License will continue to apply to the part which is the covered work,
++but the special requirements of the GNU Affero General Public License,
++section 13, concerning interaction through a network will apply to the
++combination as such.
++
++ 14. Revised Versions of this License.
++
++ The Free Software Foundation may publish revised and/or new versions of
++the GNU General Public License from time to time. Such new versions will
++be similar in spirit to the present version, but may differ in detail to
++address new problems or concerns.
++
++ Each version is given a distinguishing version number. If the
++Program specifies that a certain numbered version of the GNU General
++Public License &quot;or any later version&quot; applies to it, you have the
++option of following the terms and conditions either of that numbered
++version or of any later version published by the Free Software
++Foundation. If the Program does not specify a version number of the
++GNU General Public License, you may choose any version ever published
++by the Free Software Foundation.
++
++ If the Program specifies that a proxy can decide which future
++versions of the GNU General Public License can be used, that proxy's
++public statement of acceptance of a version permanently authorizes you
++to choose that version for the Program.
++
++ Later license versions may give you additional or different
++permissions. However, no additional obligations are imposed on any
++author or copyright holder as a result of your choosing to follow a
++later version.
++
++ 15. Disclaimer of Warranty.
++
++ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
++APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
++HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM &quot;AS IS&quot; WITHOUT WARRANTY
++OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
++THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
++PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
++IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
++ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
++
++ 16. Limitation of Liability.
++
++ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
++WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
++THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
++GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
++USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
++DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
++PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
++EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
++SUCH DAMAGES.
++
++ 17. Interpretation of Sections 15 and 16.
++
++ If the disclaimer of warranty and limitation of liability provided
++above cannot be given local legal effect according to their terms,
++reviewing courts shall apply local law that most closely approximates
++an absolute waiver of all civil liability in connection with the
++Program, unless a warranty or assumption of liability accompanies a
++copy of the Program in return for a fee.
++
++ END OF TERMS AND CONDITIONS
++
++ How to Apply These Terms to Your New Programs
++
++ If you develop a new program, and you want it to be of the greatest
++possible use to the public, the best way to achieve this is to make it
++free software which everyone can redistribute and change under these terms.
++
++ To do so, attach the following notices to the program. It is safest
++to attach them to the start of each source file to most effectively
++state the exclusion of warranty; and each file should have at least
++the &quot;copyright&quot; line and a pointer to where the full notice is found.
++
++ &lt;one line to give the program's name and a brief idea of what it does.&gt;
++ Copyright (C) &lt;year&gt; &lt;name of author&gt;
++
++ This program is free software: you can redistribute it and/or modify
++ it under the terms of the GNU General Public License as published by
++ the Free Software Foundation, either version 3 of the License, or
++ (at your option) any later version.
++
++ This program is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ GNU General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.
++
++Also add information on how to contact you by electronic and paper mail.
++
++ If the program does terminal interaction, make it output a short
++notice like this when it starts in an interactive mode:
++
++ &lt;program&gt; Copyright (C) &lt;year&gt; &lt;name of author&gt;
++ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
++ This is free software, and you are welcome to redistribute it
++ under certain conditions; type `show c' for details.
++
++The hypothetical commands `show w' and `show c' should show the appropriate
++parts of the General Public License. Of course, your program's commands
++might be different; for a GUI interface, you would use an &quot;about box&quot;.
++
++ You should also get your employer (if you work as a programmer) or school,
++if any, to sign a &quot;copyright disclaimer&quot; for the program, if necessary.
++For more information on this, and how to apply and follow the GNU GPL, see
++&lt;http://www.gnu.org/licenses/&gt;.
++
++ The GNU General Public License does not permit incorporating your program
++into proprietary programs. If your program is a subroutine library, you
++may consider it more useful to permit linking proprietary applications with
++the library. If this is what you want to do, use the GNU Lesser General
++Public License instead of this License. But first, please read
++&lt;http://www.gnu.org/philosophy/why-not-lgpl.html&gt;.
++
+
+<a id="themeia_orakde4NEWS">Added: theme/ia_ora-kde4/NEWS</a>
+===================================================================
+--- theme/ia_ora-kde4/NEWS (rev 0)
++++ theme/ia_ora-kde4/NEWS 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,109 @@
++01-06-2010 - Rodrigo
++- Changed alternate color to gray0 (according IaOra specs)
++
++27-05-2010 - Rodrigo
++- Removed border from a ScrollBar on a maximized window (#52903)
++- Fixed ProgressBar issue on Quassel (thanks ahmad78!)
++
++18-05-2010 - Rodrigo
++- Added division marks on the progress bar (#59284)
++- Removed left/right borders when in maximized mode
++
++15-04-2010 - Rodrigo
++- Wrong background colors on lists (#56883 and #57079)
++- Fix combobox width on kontact (#55699)
++- Drawing elided text on dockwidget titlebars
++
++** 12-04-2010 0.3.0 **
++09-04-2010 - Rodrigo
++- Fix TitleBar font size problem (#58582)
++- Added borders to comboboxes (#57664)
++- Properly aligned TitleBar buttons (#57784)
++- Rewritten the BorderSize configuration (this closes #47685 too)
++
++07-04-2010 - Rodrigo
++- Added window grouping function to IaOra (tabbing support)
++
++02-03-2010 - Rodrigo
++- Added a patch that fix OpenOffice problem (thanks to Rafael Cabral)
++
++12-02-2010 - Rodrigo
++- Rewritten IaOra Kwin configuration
++- Added option to change TitleBar text alignment (bug #57056)
++- Added option to enable window grouping (not enabled until finished)
++
++** 12 02 2010 0.2.5.6
++
++09-02-2010 - Rodrigo
++- Some components now are left colored when the window lost the focus
++
++** 05 02 2010 0.2.5.5
++
++04-02-2010 - Rodrigo
++- Now, the arrows look like real arrows
++- Added partial contributor patch (according bug #57263)
++- Disabled buttons now have the same color scheme as the enabled ones
++- Fixed separator size on combobox
++
++04-02-2010 - Boiko
++- Fix crash in drawComplexControl ( Bug #57400 )
++
++02-02-2010 - Rodrigo
++- Allow to resize the window from the top
++- TitleBar text now is painted in a bigger font with bold effect
++- Let the scrollbars colored when no focus
++
++13-01-2010 - Rodrigo
++- Fix the color painting on PanelItemViewRow (Bug # 56883)
++
++** 01 09 2009 0.2.5.4
++08-01-2010 - Rodrigo
++- Fix the highligh problem with ItemViewItems (Bug # 56883)
++- Now, the application name on the titlebar is centered
++
++** 01 05 2009 0.2.5.3
++01-05-2009 Nlecureuil
++- Fix crash in Quassel (Bug # 55641) ( the previous fix was only in iaora-kde )
++
++** 01-01-2010 2009 0.2.5.2**
++
++18-12-2009 - Nlecureuil
++- Fix minimum size for the scrollbar slider
++
++** ??? ?? 2009 0.2.5.1**
++
++07-12-2009 - Nlecureuil
++- Install iaoracolors in /etc
++
++04-12-2009 - Rodrigo
++- Change the way titlebar colors are handled
++TODO: choose where to install the config file
++
++23-11-2009 - Nlecureuil
++- Fix crash in Quassel (Bug # 55641)
++
++19-11-2009 - Rodrigo
++- Fixed title bar text alignment
++- Removed unused code
++
++17-11-2009 - Nlecureuil
++- Fix SymbolPlus and SymbolMinus in trees
++
++16-11-2009 - Rodrigo
++- Changed from gradient to flat colors on an ItemViewItem
++- Added code to handle an ItemViewRow
++
++27-10-2009 Rodrigo
++- Fixed IaOra color schemes
++- Added IaOraSteel color scheme
++- Added IaOraNight color scheme
++- Fixed kwin border
++- Fixed inactive TitleBar drawing
++- Fixed TitleBar buttons
++
++26-10-2009 Rodrigo
++- Fixed kwin border
++- Fixed submenu arrow drawing when mouse over
++- Fixed EditLine drawing on Amarok
++- Fixed text color on TabBars
++
+
+<a id="themeia_orakde4VERSION">Added: theme/ia_ora-kde4/VERSION</a>
+===================================================================
+--- theme/ia_ora-kde4/VERSION (rev 0)
++++ theme/ia_ora-kde4/VERSION 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1 @@
++0.2.0
+
+<a id="themeia_orakde4colorschemesCMakeListstxt">Added: theme/ia_ora-kde4/color-schemes/CMakeLists.txt</a>
+===================================================================
+--- theme/ia_ora-kde4/color-schemes/CMakeLists.txt (rev 0)
++++ theme/ia_ora-kde4/color-schemes/CMakeLists.txt 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,3 @@
++file (GLOB iaora_COLORSCHEMES *.colors)
++install (FILES ${iaora_COLORSCHEMES} DESTINATION ${DATA_INSTALL_DIR}/color-schemes)
++
+
+
+Property changes on: theme/ia_ora-kde4/color-schemes/CMakeLists.txt
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4colorschemesIaOraArcticcolors">Added: theme/ia_ora-kde4/color-schemes/IaOraArctic.colors</a>
+===================================================================
+--- theme/ia_ora-kde4/color-schemes/IaOraArctic.colors (rev 0)
++++ theme/ia_ora-kde4/color-schemes/IaOraArctic.colors 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,102 @@
++[ColorEffects:Disabled]
++Color=56,56,56
++ColorAmount=0
++ColorEffect=0
++ContrastAmount=0.65
++ContrastEffect=1
++IntensityAmount=0.1
++IntensityEffect=2
++
++[ColorEffects:Inactive]
++ChangeSelectionColor=true
++Color=112,111,110
++ColorAmount=0.025
++ColorEffect=2
++ContrastAmount=0.1
++ContrastEffect=2
++Enable=true
++IntensityAmount=0
++IntensityEffect=0
++
++[Colors:Button]
++BackgroundAlternate=223,231,239
++BackgroundNormal=223,231,239
++DecorationFocus=43,116,199
++DecorationHover=119,183,255
++ForegroundActive=0,0,0
++ForegroundInactive=208,215,223
++ForegroundLink=0,0,192
++ForegroundNegative=191,3,3
++ForegroundNeutral=176,128,0
++ForegroundNormal=0,0,0
++ForegroundPositive=0,110,40
++ForegroundVisited=128,0,128
++
++[Colors:Selection]
++BackgroundAlternate=142,199,255
++BackgroundNormal=142,199,255
++DecorationFocus=43,116,199
++DecorationHover=119,183,255
++ForegroundActive=0,0,0
++ForegroundInactive=0,0,0
++ForegroundLink=0,0,192
++ForegroundNegative=156,14,14
++ForegroundNeutral=255,221,0
++ForegroundNormal=0,0,0
++ForegroundPositive=128,255,128
++ForegroundVisited=128,0,128
++
++[Colors:Tooltip]
++BackgroundAlternate=255,255,148
++BackgroundNormal=255,255,148
++DecorationFocus=43,116,199
++DecorationHover=119,183,255
++ForegroundActive=0,0,0
++ForegroundInactive=0,0,0
++ForegroundLink=0,0,192
++ForegroundNegative=191,3,3
++ForegroundNeutral=176,128,0
++ForegroundNormal=0,0,0
++ForegroundPositive=0,110,40
++ForegroundVisited=128,0,128
++
++[Colors:View]
++BackgroundAlternate=239,242,247
++BackgroundNormal=255,255,255
++DecorationFocus=43,116,199
++DecorationHover=119,183,255
++ForegroundActive=0,0,0
++ForegroundInactive=136,135,134
++ForegroundLink=0,0,192
++ForegroundNegative=191,3,3
++ForegroundNeutral=176,128,0
++ForegroundNormal=0,0,0
++ForegroundPositive=0,110,40
++ForegroundVisited=128,0,128
++
++[Colors:Window]
++BackgroundAlternate=239,243,247
++BackgroundNormal=239,243,247
++DecorationFocus=43,116,199
++DecorationHover=119,183,255
++ForegroundActive=0,0,0
++ForegroundInactive=136,135,134
++ForegroundLink=0,0,192
++ForegroundNegative=191,3,3
++ForegroundNeutral=176,128,0
++ForegroundNormal=0,0,0
++ForegroundPositive=0,110,40
++ForegroundVisited=128,0,128
++
++[General]
++Name=Ia Ora Arctic
++shadeSortColumn=true
++
++[KDE]
++contrast=7
++
++[WM]
++activeBackground=142,199,255
++activeForeground=255,255,255
++inactiveBackground=207,217,228
++inactiveForeground=255,255,255
+
+<a id="themeia_orakde4colorschemesIaOraBluecolors">Added: theme/ia_ora-kde4/color-schemes/IaOraBlue.colors</a>
+===================================================================
+--- theme/ia_ora-kde4/color-schemes/IaOraBlue.colors (rev 0)
++++ theme/ia_ora-kde4/color-schemes/IaOraBlue.colors 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,102 @@
++[ColorEffects:Disabled]
++Color=56,56,56
++ColorAmount=0
++ColorEffect=0
++ContrastAmount=0.65
++ContrastEffect=1
++IntensityAmount=0.1
++IntensityEffect=2
++
++[ColorEffects:Inactive]
++ChangeSelectionColor=true
++Color=112,111,110
++ColorAmount=0.025
++ColorEffect=2
++ContrastAmount=0.1
++ContrastEffect=2
++Enable=true
++IntensityAmount=0
++IntensityEffect=0
++
++[Colors:Button]
++BackgroundAlternate=223,231,239
++BackgroundNormal=223,231,239
++DecorationFocus=43,116,199
++DecorationHover=119,183,255
++ForegroundActive=0,0,0
++ForegroundInactive=208,215,223
++ForegroundLink=0,0,192
++ForegroundNegative=191,3,3
++ForegroundNeutral=176,128,0
++ForegroundNormal=0,0,0
++ForegroundPositive=0,110,40
++ForegroundVisited=128,0,128
++
++[Colors:Selection]
++BackgroundAlternate=73,101,174
++BackgroundNormal=73,101,174
++DecorationFocus=43,116,199
++DecorationHover=119,183,255
++ForegroundActive=255,255,255
++ForegroundInactive=255,255,255
++ForegroundLink=0,0,192
++ForegroundNegative=156,14,14
++ForegroundNeutral=255,221,0
++ForegroundNormal=255,255,255
++ForegroundPositive=128,255,128
++ForegroundVisited=128,0,128
++
++[Colors:Tooltip]
++BackgroundAlternate=255,255,148
++BackgroundNormal=255,255,148
++DecorationFocus=43,116,199
++DecorationHover=119,183,255
++ForegroundActive=0,0,0
++ForegroundInactive=0,0,0
++ForegroundLink=0,0,192
++ForegroundNegative=191,3,3
++ForegroundNeutral=176,128,0
++ForegroundNormal=0,0,0
++ForegroundPositive=0,110,40
++ForegroundVisited=128,0,128
++
++[Colors:View]
++BackgroundAlternate=239,242,247
++BackgroundNormal=255,255,255
++DecorationFocus=43,116,199
++DecorationHover=119,183,255
++ForegroundActive=0,0,0
++ForegroundInactive=136,135,134
++ForegroundLink=0,0,192
++ForegroundNegative=191,3,3
++ForegroundNeutral=176,128,0
++ForegroundNormal=0,0,0
++ForegroundPositive=0,110,40
++ForegroundVisited=128,0,128
++
++[Colors:Window]
++BackgroundAlternate=239,243,247
++BackgroundNormal=239,243,247
++DecorationFocus=43,116,199
++DecorationHover=119,183,255
++ForegroundActive=0,0,0
++ForegroundInactive=136,135,134
++ForegroundLink=0,0,192
++ForegroundNegative=191,3,3
++ForegroundNeutral=176,128,0
++ForegroundNormal=0,0,0
++ForegroundPositive=0,110,40
++ForegroundVisited=128,0,128
++
++[General]
++Name=Ia Ora Blue
++shadeSortColumn=true
++
++[KDE]
++contrast=7
++
++[WM]
++activeBackground=73,102,174
++activeForeground=255,255,255
++inactiveBackground=207,217,228
++inactiveForeground=255,255,255
+
+<a id="themeia_orakde4colorschemesIaOraGraycolors">Added: theme/ia_ora-kde4/color-schemes/IaOraGray.colors</a>
+===================================================================
+--- theme/ia_ora-kde4/color-schemes/IaOraGray.colors (rev 0)
++++ theme/ia_ora-kde4/color-schemes/IaOraGray.colors 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,102 @@
++[ColorEffects:Disabled]
++Color=56,56,56
++ColorAmount=0
++ColorEffect=0
++ContrastAmount=0.65
++ContrastEffect=1
++IntensityAmount=0.1
++IntensityEffect=2
++
++[ColorEffects:Inactive]
++ChangeSelectionColor=true
++Color=112,111,110
++ColorAmount=0.025
++ColorEffect=2
++ContrastAmount=0.1
++ContrastEffect=2
++Enable=true
++IntensityAmount=0
++IntensityEffect=0
++
++[Colors:Button]
++BackgroundAlternate=223,231,239
++BackgroundNormal=223,231,239
++DecorationFocus=43,116,199
++DecorationHover=119,183,255
++ForegroundActive=0,0,0
++ForegroundInactive=208,215,223
++ForegroundLink=0,0,192
++ForegroundNegative=191,3,3
++ForegroundNeutral=176,128,0
++ForegroundNormal=0,0,0
++ForegroundPositive=0,110,40
++ForegroundVisited=128,0,128
++
++[Colors:Selection]
++BackgroundAlternate=62,138,204
++BackgroundNormal=207,215,223
++DecorationFocus=43,116,199
++DecorationHover=119,183,255
++ForegroundActive=0,0,0
++ForegroundInactive=0,0,0
++ForegroundLink=0,0,192
++ForegroundNegative=156,14,14
++ForegroundNeutral=255,221,0
++ForegroundNormal=0,0,0
++ForegroundPositive=128,255,128
++ForegroundVisited=128,0,128
++
++[Colors:Tooltip]
++BackgroundAlternate=255,255,148
++BackgroundNormal=255,255,148
++DecorationFocus=43,116,199
++DecorationHover=119,183,255
++ForegroundActive=0,0,0
++ForegroundInactive=0,0,0
++ForegroundLink=0,0,192
++ForegroundNegative=191,3,3
++ForegroundNeutral=176,128,0
++ForegroundNormal=0,0,0
++ForegroundPositive=0,110,40
++ForegroundVisited=128,0,128
++
++[Colors:View]
++BackgroundAlternate=239,242,247
++BackgroundNormal=255,255,255
++DecorationFocus=43,116,199
++DecorationHover=119,183,255
++ForegroundActive=0,0,0
++ForegroundInactive=0,0,0
++ForegroundLink=0,0,192
++ForegroundNegative=191,3,3
++ForegroundNeutral=176,128,0
++ForegroundNormal=0,0,0
++ForegroundPositive=0,110,40
++ForegroundVisited=128,0,128
++
++[Colors:Window]
++BackgroundAlternate=239,243,247
++BackgroundNormal=239,243,247
++DecorationFocus=43,116,199
++DecorationHover=119,183,255
++ForegroundActive=0,0,0
++ForegroundInactive=0,0,0
++ForegroundLink=0,0,192
++ForegroundNegative=191,3,3
++ForegroundNeutral=176,128,0
++ForegroundNormal=0,0,0
++ForegroundPositive=0,110,40
++ForegroundVisited=128,0,128
++
++[General]
++Name=Ia Ora Gray
++shadeSortColumn=true
++
++[KDE]
++contrast=7
++
++[WM]
++activeBackground=207,215,223
++activeForeground=255,255,255
++inactiveBackground=207,217,228
++inactiveForeground=255,255,255
+
+<a id="themeia_orakde4colorschemesIaOraNightcolors">Added: theme/ia_ora-kde4/color-schemes/IaOraNight.colors</a>
+===================================================================
+--- theme/ia_ora-kde4/color-schemes/IaOraNight.colors (rev 0)
++++ theme/ia_ora-kde4/color-schemes/IaOraNight.colors 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,102 @@
++[ColorEffects:Disabled]
++Color=56,56,56
++ColorAmount=0
++ColorEffect=0
++ContrastAmount=0.65
++ContrastEffect=1
++IntensityAmount=0.1
++IntensityEffect=2
++
++[ColorEffects:Inactive]
++ChangeSelectionColor=true
++Color=112,111,110
++ColorAmount=0.025
++ColorEffect=2
++ContrastAmount=0.1
++ContrastEffect=2
++Enable=true
++IntensityAmount=0
++IntensityEffect=0
++
++[Colors:Button]
++BackgroundAlternate=223,231,239
++BackgroundNormal=223,231,239
++DecorationFocus=128,142,198
++DecorationHover=173,186,234
++ForegroundActive=1,1,1
++ForegroundInactive=208,215,223
++ForegroundLink=0,0,192
++ForegroundNegative=191,3,3
++ForegroundNeutral=176,128,0
++ForegroundNormal=1,1,1
++ForegroundPositive=0,110,40
++ForegroundVisited=128,0,128
++
++[Colors:Selection]
++BackgroundAlternate=9,52,83
++BackgroundNormal=93,101,142
++DecorationFocus=128,142,198
++DecorationHover=173,186,234
++ForegroundActive=255,255,255
++ForegroundInactive=255,255,255
++ForegroundLink=0,0,192
++ForegroundNegative=156,14,14
++ForegroundNeutral=255,221,0
++ForegroundNormal=255,255,255
++ForegroundPositive=128,255,128
++ForegroundVisited=128,0,128
++
++[Colors:Tooltip]
++BackgroundAlternate=255,255,148
++BackgroundNormal=255,255,148
++DecorationFocus=128,142,198
++DecorationHover=173,186,234
++ForegroundActive=1,1,1
++ForegroundInactive=1,1,1
++ForegroundLink=0,0,192
++ForegroundNegative=191,3,3
++ForegroundNeutral=176,128,0
++ForegroundNormal=1,1,1
++ForegroundPositive=0,110,40
++ForegroundVisited=128,0,128
++
++[Colors:View]
++BackgroundAlternate=239,242,247
++BackgroundNormal=255,255,255
++DecorationFocus=128,142,198
++DecorationHover=173,186,234
++ForegroundActive=1,1,1
++ForegroundInactive=136,135,134
++ForegroundLink=0,0,192
++ForegroundNegative=191,3,3
++ForegroundNeutral=176,128,0
++ForegroundNormal=1,1,1
++ForegroundPositive=0,110,40
++ForegroundVisited=128,0,128
++
++[Colors:Window]
++BackgroundAlternate=239,243,247
++BackgroundNormal=239,243,247
++DecorationFocus=128,142,198
++DecorationHover=173,186,234
++ForegroundActive=1,1,1
++ForegroundInactive=136,135,134
++ForegroundLink=0,0,192
++ForegroundNegative=191,3,3
++ForegroundNeutral=176,128,0
++ForegroundNormal=1,1,1
++ForegroundPositive=0,110,40
++ForegroundVisited=128,0,128
++
++[General]
++Name=Ia Ora Night
++shadeSortColumn=true
++
++[KDE]
++contrast=7
++
++[WM]
++activeBackground=61,68,103
++activeForeground=255,255,255
++inactiveBackground=207,217,228
++inactiveForeground=255,255,255
+
+<a id="themeia_orakde4colorschemesIaOraOrangecolors">Added: theme/ia_ora-kde4/color-schemes/IaOraOrange.colors</a>
+===================================================================
+--- theme/ia_ora-kde4/color-schemes/IaOraOrange.colors (rev 0)
++++ theme/ia_ora-kde4/color-schemes/IaOraOrange.colors 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,102 @@
++[ColorEffects:Disabled]
++Color=56,56,56
++ColorAmount=0
++ColorEffect=0
++ContrastAmount=0.65
++ContrastEffect=1
++IntensityAmount=0.1
++IntensityEffect=2
++
++[ColorEffects:Inactive]
++ChangeSelectionColor=true
++Color=112,111,110
++ColorAmount=0.025
++ColorEffect=2
++ContrastAmount=0.1
++ContrastEffect=2
++Enable=true
++IntensityAmount=0
++IntensityEffect=0
++
++[Colors:Button]
++BackgroundAlternate=223,231,239
++BackgroundNormal=223,231,239
++DecorationFocus=43,116,199
++DecorationHover=119,183,255
++ForegroundActive=0,0,0
++ForegroundInactive=208,215,223
++ForegroundLink=0,0,192
++ForegroundNegative=191,3,3
++ForegroundNeutral=176,128,0
++ForegroundNormal=0,0,0
++ForegroundPositive=0,110,40
++ForegroundVisited=128,0,128
++
++[Colors:Selection]
++BackgroundAlternate=62,138,204
++BackgroundNormal=247,182,16
++DecorationFocus=43,116,199
++DecorationHover=119,183,255
++ForegroundActive=0,0,0
++ForegroundInactive=0,0,0
++ForegroundLink=0,0,192
++ForegroundNegative=156,14,14
++ForegroundNeutral=255,221,0
++ForegroundNormal=0,0,0
++ForegroundPositive=128,255,128
++ForegroundVisited=128,0,128
++
++[Colors:Tooltip]
++BackgroundAlternate=255,255,148
++BackgroundNormal=255,255,148
++DecorationFocus=43,116,199
++DecorationHover=119,183,255
++ForegroundActive=0,0,0
++ForegroundInactive=0,0,0
++ForegroundLink=0,0,192
++ForegroundNegative=191,3,3
++ForegroundNeutral=176,128,0
++ForegroundNormal=0,0,0
++ForegroundPositive=0,110,40
++ForegroundVisited=128,0,128
++
++[Colors:View]
++BackgroundAlternate=239,242,247
++BackgroundNormal=255,255,255
++DecorationFocus=43,116,199
++DecorationHover=119,183,255
++ForegroundActive=0,0,0
++ForegroundInactive=0,0,0
++ForegroundLink=0,0,192
++ForegroundNegative=191,3,3
++ForegroundNeutral=176,128,0
++ForegroundNormal=0,0,0
++ForegroundPositive=0,110,40
++ForegroundVisited=128,0,128
++
++[Colors:Window]
++BackgroundAlternate=239,243,247
++BackgroundNormal=239,243,247
++DecorationFocus=43,116,199
++DecorationHover=119,183,255
++ForegroundActive=0,0,0
++ForegroundInactive=136,135,134
++ForegroundLink=0,0,192
++ForegroundNegative=191,3,3
++ForegroundNeutral=176,128,0
++ForegroundNormal=0,0,0
++ForegroundPositive=0,110,40
++ForegroundVisited=128,0,128
++
++[General]
++Name=Ia Ora Orange
++shadeSortColumn=true
++
++[KDE]
++contrast=7
++
++[WM]
++activeBackground=247,182,16
++activeForeground=255,255,255
++inactiveBackground=207,217,228
++inactiveForeground=255,255,255
+
+<a id="themeia_orakde4colorschemesIaOraSmoothcolors">Added: theme/ia_ora-kde4/color-schemes/IaOraSmooth.colors</a>
+===================================================================
+--- theme/ia_ora-kde4/color-schemes/IaOraSmooth.colors (rev 0)
++++ theme/ia_ora-kde4/color-schemes/IaOraSmooth.colors 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,102 @@
++[ColorEffects:Disabled]
++Color=56,56,56
++ColorAmount=0
++ColorEffect=0
++ContrastAmount=0.65
++ContrastEffect=1
++IntensityAmount=0.1
++IntensityEffect=2
++
++[ColorEffects:Inactive]
++ChangeSelectionColor=true
++Color=112,111,110
++ColorAmount=0.025
++ColorEffect=2
++ContrastAmount=0.1
++ContrastEffect=2
++Enable=true
++IntensityAmount=0
++IntensityEffect=0
++
++[Colors:Button]
++BackgroundAlternate=223,231,239
++BackgroundNormal=223,231,239
++DecorationFocus=43,116,199
++DecorationHover=119,183,255
++ForegroundActive=0,0,0
++ForegroundInactive=0,0,0
++ForegroundLink=0,0,192
++ForegroundNegative=191,3,3
++ForegroundNeutral=176,128,0
++ForegroundNormal=0,0,0
++ForegroundPositive=0,110,40
++ForegroundVisited=128,0,128
++
++[Colors:Selection]
++BackgroundAlternate=123,170,231
++BackgroundNormal=123,170,231
++DecorationFocus=43,116,199
++DecorationHover=119,183,255
++ForegroundActive=255,255,255
++ForegroundInactive=255,255,255
++ForegroundLink=0,0,192
++ForegroundNegative=156,14,14
++ForegroundNeutral=255,221,0
++ForegroundNormal=255,255,255
++ForegroundPositive=128,255,128
++ForegroundVisited=128,0,128
++
++[Colors:Tooltip]
++BackgroundAlternate=255,255,148
++BackgroundNormal=255,255,148
++DecorationFocus=43,116,199
++DecorationHover=119,183,255
++ForegroundActive=0,0,0
++ForegroundInactive=0,0,0
++ForegroundLink=0,0,192
++ForegroundNegative=191,3,3
++ForegroundNeutral=176,128,0
++ForegroundNormal=0,0,0
++ForegroundPositive=0,110,40
++ForegroundVisited=128,0,128
++
++[Colors:View]
++BackgroundAlternate=239,242,247
++BackgroundNormal=255,255,255
++DecorationFocus=43,116,199
++DecorationHover=119,183,255
++ForegroundActive=0,0,0
++ForegroundInactive=136,135,134
++ForegroundLink=0,0,192
++ForegroundNegative=191,3,3
++ForegroundNeutral=176,128,0
++ForegroundNormal=0,0,0
++ForegroundPositive=0,110,40
++ForegroundVisited=128,0,128
++
++[Colors:Window]
++BackgroundAlternate=239,243,247
++BackgroundNormal=239,243,247
++DecorationFocus=43,116,199
++DecorationHover=119,183,255
++ForegroundActive=0,0,0
++ForegroundInactive=136,135,134
++ForegroundLink=0,0,192
++ForegroundNegative=191,3,3
++ForegroundNeutral=176,128,0
++ForegroundNormal=0,0,0
++ForegroundPositive=0,110,40
++ForegroundVisited=128,0,128
++
++[General]
++Name=Ia Ora Smooth
++shadeSortColumn=true
++
++[KDE]
++contrast=7
++
++[WM]
++activeBackground=123,170,231
++activeForeground=255,255,255
++inactiveBackground=207,217,228
++inactiveForeground=255,255,255
+
+<a id="themeia_orakde4colorschemesIaOraSteelcolors">Added: theme/ia_ora-kde4/color-schemes/IaOraSteel.colors</a>
+===================================================================
+--- theme/ia_ora-kde4/color-schemes/IaOraSteel.colors (rev 0)
++++ theme/ia_ora-kde4/color-schemes/IaOraSteel.colors 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,102 @@
++[ColorEffects:Disabled]
++Color=56,56,56
++ColorAmount=0
++ColorEffect=0
++ContrastAmount=0.65
++ContrastEffect=1
++IntensityAmount=0.1
++IntensityEffect=2
++
++[ColorEffects:Inactive]
++ChangeSelectionColor=true
++Color=112,111,110
++ColorAmount=0.025
++ColorEffect=2
++ContrastAmount=0.1
++ContrastEffect=2
++Enable=true
++IntensityAmount=0
++IntensityEffect=0
++
++[Colors:Button]
++BackgroundAlternate=223,231,239
++BackgroundNormal=223,231,239
++DecorationFocus=58,192,207
++DecorationHover=162,220,227
++ForegroundActive=35,31,32
++ForegroundInactive=208,215,223
++ForegroundLink=0,0,192
++ForegroundNegative=191,3,3
++ForegroundNeutral=176,128,0
++ForegroundNormal=35,31,32
++ForegroundPositive=0,110,40
++ForegroundVisited=128,0,128
++
++[Colors:Selection]
++BackgroundAlternate=9,52,83
++BackgroundNormal=20,141,205
++DecorationFocus=58,192,207
++DecorationHover=162,220,227
++ForegroundActive=255,255,255
++ForegroundInactive=255,255,255
++ForegroundLink=0,0,192
++ForegroundNegative=156,14,14
++ForegroundNeutral=255,221,0
++ForegroundNormal=255,255,255
++ForegroundPositive=128,255,128
++ForegroundVisited=128,0,128
++
++[Colors:Tooltip]
++BackgroundAlternate=255,255,148
++BackgroundNormal=255,255,148
++DecorationFocus=58,192,207
++DecorationHover=162,220,227
++ForegroundActive=35,31,32
++ForegroundInactive=35,31,32
++ForegroundLink=0,0,192
++ForegroundNegative=191,3,3
++ForegroundNeutral=176,128,0
++ForegroundNormal=35,31,32
++ForegroundPositive=0,110,40
++ForegroundVisited=128,0,128
++
++[Colors:View]
++BackgroundAlternate=239,242,247
++BackgroundNormal=255,255,255
++DecorationFocus=58,192,207
++DecorationHover=162,220,227
++ForegroundActive=35,31,32
++ForegroundInactive=136,135,134
++ForegroundLink=0,0,192
++ForegroundNegative=191,3,3
++ForegroundNeutral=176,128,0
++ForegroundNormal=35,31,32
++ForegroundPositive=0,110,40
++ForegroundVisited=128,0,128
++
++[Colors:Window]
++BackgroundAlternate=239,243,247
++BackgroundNormal=239,243,247
++DecorationFocus=58,192,207
++DecorationHover=162,220,227
++ForegroundActive=35,31,32
++ForegroundInactive=136,135,134
++ForegroundLink=0,0,192
++ForegroundNegative=191,3,3
++ForegroundNeutral=176,128,0
++ForegroundNormal=35,31,32
++ForegroundPositive=0,110,40
++ForegroundVisited=128,0,128
++
++[General]
++Name=Ia Ora Steel
++shadeSortColumn=true
++
++[KDE]
++contrast=7
++
++[WM]
++activeBackground=20,141,205
++activeForeground=255,255,255
++inactiveBackground=207,217,228
++inactiveForeground=255,255,255
+
+<a id="themeia_orakde4configure">Added: theme/ia_ora-kde4/configure</a>
+===================================================================
+--- theme/ia_ora-kde4/configure (rev 0)
++++ theme/ia_ora-kde4/configure 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,3 @@
++#! /bin/sh
++
++cmake -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix` -DCMAKE_BUILD_TYPE=Release .
+
+<a id="themeia_orakde4installsh">Added: theme/ia_ora-kde4/install.sh</a>
+===================================================================
+--- theme/ia_ora-kde4/install.sh (rev 0)
++++ theme/ia_ora-kde4/install.sh 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,3 @@
++#! /bin/sh
++
++cmake -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix` -DCMAKE_BUILD_TYPE=Release . &amp;&amp; make &amp;&amp; sudo make install
+
+
+Property changes on: theme/ia_ora-kde4/install.sh
+___________________________________________________________________
+<a id="svnexecutable">Added: svn:executable</a>
+ + *
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4kwinclientCMakeListstxt">Added: theme/ia_ora-kde4/kwin-client/CMakeLists.txt</a>
+===================================================================
+--- theme/ia_ora-kde4/kwin-client/CMakeLists.txt (rev 0)
++++ theme/ia_ora-kde4/kwin-client/CMakeLists.txt 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,10 @@
++project (kwin-iaora)
++
++set (kwin_iaora_SOURCES kwin_iaora.cpp)
++kde4_add_plugin (kwin3_iaora ${kwin_iaora_SOURCES})
++target_link_libraries (kwin3_iaora ${KDE4_KDEUI_LIBS} kdecorations)
++install (TARGETS kwin3_iaora DESTINATION ${PLUGIN_INSTALL_DIR})
++install (FILES iaora.desktop DESTINATION ${DATA_INSTALL_DIR}/kwin)
++
++add_subdirectory (config)
++
+
+
+Property changes on: theme/ia_ora-kde4/kwin-client/CMakeLists.txt
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4kwinclientconfigCMakeListstxt">Added: theme/ia_ora-kde4/kwin-client/config/CMakeLists.txt</a>
+===================================================================
+--- theme/ia_ora-kde4/kwin-client/config/CMakeLists.txt (rev 0)
++++ theme/ia_ora-kde4/kwin-client/config/CMakeLists.txt 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,7 @@
++set (kwin_iaora_config_SOURCES iaora_config.cpp)
++kde4_add_ui_files(kwin_iaora_config_SOURCES iaora_config.ui)
++
++kde4_add_plugin (kwin_iaora_config ${kwin_iaora_config_SOURCES})
++
++target_link_libraries (kwin_iaora_config ${KDE4_KDEUI_LIBS})
++install (TARGETS kwin_iaora_config DESTINATION ${PLUGIN_INSTALL_DIR})
+
+
+Property changes on: theme/ia_ora-kde4/kwin-client/config/CMakeLists.txt
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4kwinclientconfigiaora_configcpp">Added: theme/ia_ora-kde4/kwin-client/config/iaora_config.cpp</a>
+===================================================================
+--- theme/ia_ora-kde4/kwin-client/config/iaora_config.cpp (rev 0)
++++ theme/ia_ora-kde4/kwin-client/config/iaora_config.cpp 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,106 @@
++/*
++ * Copyright 2008 Gustavo Pichorim Boiko &lt;boiko@mandriva.com&gt;
++ * Copyright 2008-2010 Rodrigo Gonçalves de Oliveira &lt;rodrigo@mandriva.com&gt;
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 3 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ */
++
++#include &lt;KDE/KVBox&gt;
++#include &lt;KDE/KGlobal&gt;
++#include &lt;KDE/KLocale&gt;
++#include &lt;KDE/KConfigGroup&gt;
++
++#include &quot;iaora_config.h&quot;
++
++extern &quot;C&quot; KDE_EXPORT QObject *allocate_config(KConfig *conf, QWidget *parent)
++{
++ return new IaOraConfig(conf, parent);
++}
++
++IaOraConfig::IaOraConfig(KConfig *conf, QWidget *parent) : QObject(parent)
++{
++ Q_UNUSED(conf);
++
++ KGlobal::locale()-&gt;insertCatalog(&quot;kwin_clients&quot;);
++
++ iaoraConfig = new KConfig(&quot;iaorarc&quot;);
++ KConfigGroup configGroup(iaoraConfig, &quot;Windeco&quot;);
++
++ m_ui = new IaOraConfigUI(parent);
++ connect(m_ui-&gt;cmbBorderSize, SIGNAL(currentIndexChanged(int)), SIGNAL(changed()));
++ connect(m_ui-&gt;cmbAlign, SIGNAL(currentIndexChanged(int)), SIGNAL(changed()));
++ connect(m_ui-&gt;chkGroup, SIGNAL(clicked()), SIGNAL(changed()));
++ connect(m_ui-&gt;chkCloseButtons, SIGNAL(clicked()), SIGNAL(changed()));
++
++ load(configGroup);
++ m_ui-&gt;show();
++}
++
++IaOraConfig::~IaOraConfig()
++{
++ delete m_ui;
++ delete iaoraConfig;
++}
++
++// loads the configuration
++void IaOraConfig::load(const KConfigGroup&amp;)
++{
++ KConfigGroup configGroup(iaoraConfig, &quot;Windeco&quot;);
++
++ int alignment;
++ int borderSize;
++ bool windowGrouping; // TABS
++ bool closeButtonsOnTabs; // TABS
++
++ // 1 is normal (0 = Tiny; 2 = Large; 3 = Very Large; 4 = Huge; 5 = Very Huge; 6 = Oversized)
++ borderSize = configGroup.readEntry(&quot;BorderSize&quot;, 1);
++ m_ui-&gt;cmbBorderSize-&gt;setCurrentIndex(borderSize);
++
++ // 1 is centered (0 = left; 2 = right)
++ alignment = configGroup.readEntry(&quot;TitleBarTextAlignment&quot;, 1);
++ m_ui-&gt;cmbAlign-&gt;setCurrentIndex(alignment);
++
++ // TABS
++ windowGrouping = configGroup.readEntry(&quot;UseWindowGrouping&quot;, false);
++ m_ui-&gt;chkGroup-&gt;setChecked(windowGrouping);
++ closeButtonsOnTabs = configGroup.readEntry(&quot;CloseButtonsOnTabs&quot;, true);
++ m_ui-&gt;chkCloseButtons-&gt;setChecked(closeButtonsOnTabs);
++}
++
++// we need to save the configurations
++void IaOraConfig::save(KConfigGroup&amp;)
++{
++ KConfigGroup configGroup(iaoraConfig, &quot;Windeco&quot;);
++
++ configGroup.writeEntry(&quot;BorderSize&quot;, m_ui-&gt;cmbBorderSize-&gt;currentIndex());
++ configGroup.writeEntry(&quot;TitleBarTextAlignment&quot;, m_ui-&gt;cmbAlign-&gt;currentIndex());
++ configGroup.writeEntry(&quot;UseWindowGrouping&quot;, m_ui-&gt;chkGroup-&gt;isChecked());
++ configGroup.writeEntry(&quot;CloseButtonsOnTabs&quot;, m_ui-&gt;chkCloseButtons-&gt;isChecked());
++
++ iaoraConfig-&gt;sync();
++}
++
++// simple the default configuration
++void IaOraConfig::defaults()
++{
++ m_ui-&gt;cmbBorderSize-&gt;setCurrentIndex(1);
++ m_ui-&gt;cmbAlign-&gt;setCurrentIndex(1);
++ m_ui-&gt;chkGroup-&gt;setChecked(false);
++ m_ui-&gt;chkCloseButtons-&gt;setChecked(true);
++}
++
++#include &quot;iaora_config.moc&quot;
++
+
+
+Property changes on: theme/ia_ora-kde4/kwin-client/config/iaora_config.cpp
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4kwinclientconfigiaora_configh">Added: theme/ia_ora-kde4/kwin-client/config/iaora_config.h</a>
+===================================================================
+--- theme/ia_ora-kde4/kwin-client/config/iaora_config.h (rev 0)
++++ theme/ia_ora-kde4/kwin-client/config/iaora_config.h 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,63 @@
++/*
++ * Copyright 2008 Gustavo Pichorim Boiko &lt;boiko@mandriva.com&gt;
++ * Copyright 2008-2010 Rodrigo Gonçalves de Oliveira &lt;rodrigo@mandriva.com&gt;
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 3 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ */
++
++#ifndef IAORA_CONFIG_H
++#define IAORA_CONFIG_H
++
++#include &lt;KConfig&gt;
++#include &lt;QtCore/QObject&gt;
++
++#include &quot;ui_iaora_config.h&quot;
++
++class QWidget;
++class KConfig;
++class KConfigGroup;
++
++class IaOraConfigUI : public QWidget, public Ui_IaOraConfigDialog
++{
++ public:
++ IaOraConfigUI(QWidget *parent) : QWidget(parent){
++ setupUi(this);
++ }
++};
++
++class IaOraConfig : public QObject
++{
++ Q_OBJECT
++
++ public:
++ IaOraConfig(KConfig *conf, QWidget *parent);
++ virtual ~IaOraConfig();
++
++ signals:
++ void changed();
++
++ public slots:
++ void load(const KConfigGroup&amp;);
++ void save(KConfigGroup&amp;);
++ void defaults();
++
++ private:
++ IaOraConfigUI *m_ui;
++ KConfig *iaoraConfig;
++};
++
++#endif
++
+
+
+Property changes on: theme/ia_ora-kde4/kwin-client/config/iaora_config.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4kwinclientconfigiaora_configui">Added: theme/ia_ora-kde4/kwin-client/config/iaora_config.ui</a>
+===================================================================
+--- theme/ia_ora-kde4/kwin-client/config/iaora_config.ui (rev 0)
++++ theme/ia_ora-kde4/kwin-client/config/iaora_config.ui 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,141 @@
++&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
++&lt;ui version=&quot;4.0&quot;&gt;
++ &lt;class&gt;IaOraConfigDialog&lt;/class&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;IaOraConfigDialog&quot;&gt;
++ &lt;property name=&quot;geometry&quot;&gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;0&lt;/y&gt;
++ &lt;width&gt;385&lt;/width&gt;
++ &lt;height&gt;108&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;windowTitle&quot;&gt;
++ &lt;string/&gt;
++ &lt;/property&gt;
++ &lt;layout class=&quot;QGridLayout&quot; name=&quot;gridLayout&quot;&gt;
++ &lt;item row=&quot;0&quot; column=&quot;0&quot;&gt;
++ &lt;layout class=&quot;QHBoxLayout&quot; name=&quot;horizontalLayout&quot;&gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QLabel&quot; name=&quot;label_2&quot;&gt;
++ &lt;property name=&quot;text&quot;&gt;
++ &lt;string&gt;Border size:&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QComboBox&quot; name=&quot;cmbBorderSize&quot;&gt;
++ &lt;item&gt;
++ &lt;property name=&quot;text&quot;&gt;
++ &lt;string&gt;Tiny&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;property name=&quot;text&quot;&gt;
++ &lt;string&gt;Normal&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;property name=&quot;text&quot;&gt;
++ &lt;string&gt;Large&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;property name=&quot;text&quot;&gt;
++ &lt;string&gt;Very Large&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;property name=&quot;text&quot;&gt;
++ &lt;string&gt;Huge&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;property name=&quot;text&quot;&gt;
++ &lt;string&gt;Very Huge&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;property name=&quot;text&quot;&gt;
++ &lt;string&gt;Oversized&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/item&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/item&gt;
++ &lt;item row=&quot;1&quot; column=&quot;0&quot;&gt;
++ &lt;layout class=&quot;QHBoxLayout&quot; name=&quot;horizontalLayout_2&quot;&gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QLabel&quot; name=&quot;label&quot;&gt;
++ &lt;property name=&quot;text&quot;&gt;
++ &lt;string&gt;TitleBar text alignment:&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QComboBox&quot; name=&quot;cmbAlign&quot;&gt;
++ &lt;item&gt;
++ &lt;property name=&quot;text&quot;&gt;
++ &lt;string&gt;Left&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;property name=&quot;text&quot;&gt;
++ &lt;string&gt;Center&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;property name=&quot;text&quot;&gt;
++ &lt;string&gt;Right&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/item&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/item&gt;
++ &lt;item row=&quot;2&quot; column=&quot;0&quot;&gt;
++ &lt;widget class=&quot;QCheckBox&quot; name=&quot;chkGroup&quot;&gt;
++ &lt;property name=&quot;enabled&quot;&gt;
++ &lt;bool&gt;true&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;text&quot;&gt;
++ &lt;string&gt;Enable window grouping&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item row=&quot;3&quot; column=&quot;0&quot;&gt;
++ &lt;widget class=&quot;QCheckBox&quot; name=&quot;chkCloseButtons&quot;&gt;
++ &lt;property name=&quot;enabled&quot;&gt;
++ &lt;bool&gt;false&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;text&quot;&gt;
++ &lt;string&gt;Show close button on each tab&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;checked&quot;&gt;
++ &lt;bool&gt;true&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/widget&gt;
++ &lt;resources/&gt;
++ &lt;connections&gt;
++ &lt;connection&gt;
++ &lt;sender&gt;chkGroup&lt;/sender&gt;
++ &lt;signal&gt;toggled(bool)&lt;/signal&gt;
++ &lt;receiver&gt;chkCloseButtons&lt;/receiver&gt;
++ &lt;slot&gt;setEnabled(bool)&lt;/slot&gt;
++ &lt;hints&gt;
++ &lt;hint type=&quot;sourcelabel&quot;&gt;
++ &lt;x&gt;192&lt;/x&gt;
++ &lt;y&gt;41&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;hint type=&quot;destinationlabel&quot;&gt;
++ &lt;x&gt;192&lt;/x&gt;
++ &lt;y&gt;62&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;/hints&gt;
++ &lt;/connection&gt;
++ &lt;/connections&gt;
++&lt;/ui&gt;
+
+<a id="themeia_orakde4kwinclientiaoradesktop">Added: theme/ia_ora-kde4/kwin-client/iaora.desktop</a>
+===================================================================
+--- theme/ia_ora-kde4/kwin-client/iaora.desktop (rev 0)
++++ theme/ia_ora-kde4/kwin-client/iaora.desktop 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,3 @@
++[Desktop Entry]
++Name=IaOra
++X-KDE-Library=kwin3_iaora
+
+<a id="themeia_orakde4kwinclientkwin_iaoracpp">Added: theme/ia_ora-kde4/kwin-client/kwin_iaora.cpp</a>
+===================================================================
+--- theme/ia_ora-kde4/kwin-client/kwin_iaora.cpp (rev 0)
++++ theme/ia_ora-kde4/kwin-client/kwin_iaora.cpp 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,1248 @@
++/*
++ * kwin_iaora.cpp - IaOra window decoration for KDE
++ * based on the Skulpture window decoration
++ *
++ * Copyright 2008 Gustavo Pichorim Boiko &lt;boiko@mandriva.com&gt;
++ * Skulpture Copyright 2008 Christoph Feck
++ * Copyright 2008-2010 Rodrigo Gonçalves de Oliveira &lt;rodrigo@mandriva.com&gt;
++ *
++ ** Window tabbing feature based on the original code from Tabstrip KWin window decoration
++ ** Copyright (C) 2009 Jorge Mata &lt;matamax123@gmail.com&gt;
++ ** Copyright (C) 2009 Lucas Murray &lt;lmurray@undefinedfire.com&gt;
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 3 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ */
++
++#include &quot;kwin_iaora.h&quot;
++#include &lt;KDE/KLocale&gt;
++#include &lt;KDE/KConfig&gt;
++#include &lt;KDE/KConfigGroup&gt;
++#include &lt;QtGui/QStylePainter&gt;
++#include &lt;QtGui/QStyle&gt;
++#include &lt;QtGui/QStyleFactory&gt;
++#include &lt;QtGui/QStyleOption&gt;
++#include &lt;QtGui/QBitmap&gt;
++#include &lt;QtCore/QLibrary&gt;
++#include &lt;QtCore/QPluginLoader&gt;
++#include &lt;QtGui/QStylePlugin&gt;
++#include &lt;QSettings&gt;
++#include &lt;QPixmapCache&gt;
++
++#include &lt;QtCore/QCoreApplication&gt;
++#include &lt;QtCore/QDebug&gt;
++#include &lt;cstdio&gt;
++
++
++/*-----------------------------------------------------------------------*/
++/**
++ * The IaOra window decoration for KDE actually is a wrapper.
++ * It uses Qt's MDI window decoration. As such, it is very lightweight.
++ *
++ */
++
++extern &quot;C&quot; KDE_EXPORT KDecorationFactory *create_factory()
++{
++ return new IaOraDecorationFactory();
++}
++
++inline QString hashPalette(const QPalette &amp;pal)
++{
++ QString hash = pal.color(QPalette::Window).name();
++ hash += pal.color(QPalette::Highlight).name();
++ return hash;
++}
++
++ColorData *IaOraDecoration::lookupData(const QPalette &amp;pal)
++{
++ QString hash = hashPalette(pal);
++
++ // if already cached, just return
++ //if (m_data.contains(hash))
++ // return m_data[hash];
++
++ ColorData *data = new ColorData();
++ QColor background = pal.color(QPalette::Window);
++ QColor highlight = pal.color(QPalette::Highlight);
++
++ //TODO: check whether black and white should not be black and white
++ data-&gt;black = Qt::black;
++ data-&gt;white = Qt::white;
++
++ QSettings conf(&quot;/etc/iaoracolors&quot;, QSettings::NativeFormat); // TODO: define where this file must go
++
++ if (background.name() == &quot;#eff3f7&quot;)
++ {
++ conf.beginGroup(&quot;Default&quot;);
++ data-&gt;gray[0] = (conf.value(&quot;gray0&quot;, background)).value&lt;QColor&gt;();
++ data-&gt;gray[1] = (conf.value(&quot;gray1&quot;, background.dark(107))).value&lt;QColor&gt;();
++ data-&gt;gray[2] = (conf.value(&quot;gray2&quot;, background.dark(115))).value&lt;QColor&gt;();
++ data-&gt;gray[3] = (conf.value(&quot;gray3&quot;, background.dark(117))).value&lt;QColor&gt;();
++ data-&gt;gray[4] = (conf.value(&quot;gray4&quot;, background.dark(131))).value&lt;QColor&gt;();
++ data-&gt;gray[5] = (conf.value(&quot;gray5&quot;, background.dark(144))).value&lt;QColor&gt;();
++ data-&gt;gray[6] = (conf.value(&quot;gray6&quot;, background.dark(178))).value&lt;QColor&gt;();
++ conf.endGroup();
++ } else
++ {
++ data-&gt;gray[0] = background;
++ data-&gt;gray[1] = background.dark(107);
++ data-&gt;gray[2] = background.dark(115);
++ data-&gt;gray[3] = background.dark(117);
++ data-&gt;gray[4] = background.dark(131);
++ data-&gt;gray[5] = background.dark(144);
++ data-&gt;gray[6] = background.dark(178);
++ }
++
++ QString group = &quot;&quot;;
++
++ if (highlight.name() == &quot;#8ec7ff&quot;) group = &quot;Arctic&quot;;
++ else if (highlight.name() == &quot;#4965ae&quot;) group = &quot;Blue&quot;;
++ else if (highlight.name() == &quot;#cfd7df&quot;) group = &quot;Gray&quot;;
++ else if (highlight.name() == &quot;#5d658e&quot;) group = &quot;Night&quot;;
++ else if (highlight.name() == &quot;#f7b610&quot;) group = &quot;Orange&quot;;
++ else if (highlight.name() == &quot;#7baae7&quot;) group = &quot;Smooth&quot;;
++ else if (highlight.name() == &quot;#148dcd&quot;) group = &quot;Steel&quot;;
++
++ if (!group.isEmpty())
++ {
++ conf.beginGroup(group);
++ data-&gt;color[0] = (conf.value(&quot;color0&quot;, highlight.light(150))).value&lt;QColor&gt;();
++ data-&gt;color[1] = (conf.value(&quot;color1&quot;, highlight.light(137))).value&lt;QColor&gt;();
++ data-&gt;color[2] = (conf.value(&quot;color2&quot;, highlight)).value&lt;QColor&gt;();
++ data-&gt;color[3] = (conf.value(&quot;color3&quot;, highlight.light(112))).value&lt;QColor&gt;();
++ data-&gt;color[4] = (conf.value(&quot;color4&quot;, highlight.light(130))).value&lt;QColor&gt;();
++ conf.endGroup();
++ } else
++ {
++ data-&gt;color[0] = highlight.light(150);
++ data-&gt;color[1] = highlight.light(137);
++ data-&gt;color[2] = highlight;
++ data-&gt;color[3] = highlight.dark(112);
++ data-&gt;color[4] = highlight.dark(130);
++ }
++
++ //m_data[hash] = data;
++ return data;
++}
++
++/*-----------------------------------------------------------------------*/
++/*
++ * When KWin is already running, it doesn't notice that
++ * a new style has been installed, and QStyleFactory will
++ * not find the new style.
++ *
++ * This function works around this Qt problem by manually
++ * loading the style.
++ *
++ */
++
++static void setIaOraStyle(QWidget *widget)
++{
++ static QStyle *iaoraStyle = 0;
++ QStyle *style = 0;
++
++ if (!style &amp;&amp; iaoraStyle) {
++ style = iaoraStyle;
++ }
++ if (!style) {
++ bool loaded = false;
++ QStringList paths = QCoreApplication::libraryPaths();
++ QLibrary library;
++ foreach (QString path, paths) {
++ library.setFileName(path + QString::fromUtf8(&quot;/styles/iaora-qt&quot;));
++ if (library.load()) {
++ loaded = true;
++ break;
++ }
++ }
++ if (loaded) {
++ QString libName = library.fileName();
++ library.unload();
++
++ QPluginLoader plugin(libName);
++ QObject *instance = plugin.instance();
++ if (instance) {
++ QStyleFactoryInterface *factory = qobject_cast&lt;QStyleFactoryInterface*&gt;(instance);
++ if (factory) {
++ style = factory-&gt;create(QString::fromUtf8(&quot;iaora-qt&quot;));
++ if (style) {
++ iaoraStyle = style;
++ }
++ }
++ }
++ }
++ }
++ if (style) {
++ widget-&gt;setStyle(style);
++ }
++}
++
++
++/*-----------------------------------------------------------------------*/
++
++IaOraDecorationButton::IaOraDecorationButton(ButtonType type, KCommonDecoration *parent)
++ : KCommonDecorationButton(type, parent)
++{
++ init();
++}
++
++
++void IaOraDecorationButton::init()
++{
++ setAttribute(Qt::WA_PaintOnScreen, false);
++ setAttribute(Qt::WA_NoSystemBackground, true);
++ setAutoFillBackground(false);
++ setFocusPolicy(Qt::NoFocus);
++ setAttribute(Qt::WA_OpaquePaintEvent, false);
++ setAttribute(Qt::WA_Hover, true);
++ setIaOraStyle(this);
++ m_isHover = false;
++}
++
++
++IaOraDecorationButton::~IaOraDecorationButton()
++{
++ /* */
++}
++
++
++void IaOraDecorationButton::reset(unsigned long /*changed*/)
++{
++ /* NOTE: must be implemented, because it is declared pure */
++}
++
++
++void IaOraDecorationButton::initStyleOption(QStyleOptionButton &amp;opt)
++{
++ opt.init(this);
++ if (isDown()) {
++ opt.state |= QStyle::State_Selected;
++ } else {
++ opt.state &amp;= ~QStyle::State_Selected;
++ }
++ if (decoration()-&gt;isActive()) {
++ opt.state |= QStyle::State_Active;
++ } else {
++ opt.state &amp;= ~QStyle::State_Active;
++ }
++}
++
++
++void IaOraDecorationButton::paintEvent(QPaintEvent */* event */)
++{
++// TODO: must clear the cache when we change the color scheme (how???)
++ const KCommonDecoration *deco = decoration();
++ QPainter painter(this);
++ QStyleOptionButton opt;
++ initStyleOption(opt);
++
++ QStyle::StandardPixmap sp;
++ switch (type()) {
++ case OnAllDesktopsButton:
++ sp = QStyle::StandardPixmap(QStyle::SP_CustomBase + (deco-&gt;isOnAllDesktops() ? 2 : 1));
++ break;
++ case MenuButton:
++ sp = QStyle::StandardPixmap(QStyle::SP_CustomBase + 3);
++ break;
++ case AboveButton:
++ sp = QStyle::StandardPixmap(QStyle::SP_CustomBase + (deco-&gt;keepAbove() ? 6 : 4));
++ break;
++ case BelowButton:
++ sp = QStyle::StandardPixmap(QStyle::SP_CustomBase + (deco-&gt;keepBelow() ? 7 : 5));
++ break;
++ case HelpButton:
++ sp = QStyle::SP_TitleBarContextHelpButton;
++ break;
++ case MinButton:
++ sp = QStyle::SP_TitleBarMinButton;
++ break;
++ case MaxButton:
++ sp = deco-&gt;maximizeMode() == KDecoration::MaximizeFull ? QStyle::SP_TitleBarNormalButton : QStyle::SP_TitleBarMaxButton;
++ break;
++ case ShadeButton:
++ sp = deco-&gt;isShade() ? QStyle::SP_TitleBarUnshadeButton : QStyle::SP_TitleBarShadeButton;
++ break;
++ case ItemCloseButton:
++ case CloseButton:
++ sp = QStyle::SP_TitleBarCloseButton;
++ break;
++ default:
++ sp = QStyle::SP_CustomBase;
++ break;
++ }
++
++ QIcon icon;
++ int shift;
++
++ // paint shape
++ opt.rect = rect().adjusted(-1, 0, 0, 0);
++
++ opt.palette.setColor(QPalette::Text, deco-&gt;options()-&gt;color(KCommonDecoration::ColorFont, opt.state &amp; QStyle::State_Active));
++
++ icon = sp == QStyle::SP_CustomBase + 3 ? deco-&gt;icon().pixmap(16, 16) : style()-&gt;standardIcon(sp, &amp;opt, this);
++
++ if (type() == ItemCloseButton){ // special case for a tab close button
++ QPixmap pix;
++ QString key = QString(&quot;iaora_standard_pixmap_tab_%1_%2_%3&quot;).arg(QString::number(sp))
++ .arg(16)
++ .arg(16);
++ if (QPixmapCache::find(key, pix)){
++ icon = QIcon(pix);
++ } else{
++ pix = QPixmap(16, 16);
++ pix.fill(Qt::transparent);
++
++ QImage image(pix.size(), QImage::Format_ARGB32_Premultiplied);
++ image.fill(opt.palette.color(QPalette::WindowText).rgb());
++
++ QPainter p2(&amp;pix);
++ p2.setCompositionMode(QPainter::CompositionMode_Source);
++ p2.fillRect(pix.rect(), Qt::transparent);
++ p2.setCompositionMode(QPainter::CompositionMode_SourceOver);
++ p2.drawPixmap(0, 0, icon.pixmap(16, 16));
++
++ p2.setCompositionMode(QPainter::CompositionMode_SourceIn);
++ p2.drawImage(0, 0, image);
++ p2.end();
++
++ QPixmapCache::insert(key, pix);
++ icon = QIcon(pix);
++ }
++ }
++
++ shift = opt.state &amp; QStyle::State_Selected ? 1 : 0;
++
++ // when mouse is over, we apply a darker effect
++ QPixmap pix;
++ if (m_isHover){
++ pix = icon.pixmap(opt.rect.size());
++ QPainter p;
++ QPixmap temp(pix.size());
++
++ temp.fill(Qt::transparent);
++ p.begin(&amp;temp);
++
++ QRect r(pix.rect());
++ p.drawPixmap(r, pix);
++
++ p.setCompositionMode(QPainter::CompositionMode_DestinationIn);
++
++ QColor color;
++ color.setAlpha(0.7 * 255);
++ p.fillRect(pix.rect(), color);
++
++ p.end();
++ pix = temp;
++ } else
++ pix = icon.pixmap(opt.rect.size());
++
++ painter.setRenderHint(QPainter::Antialiasing, false);
++ painter.drawPixmap(opt.rect.topLeft() + QPoint(shift, shift) + QPoint(0, (opt.rect.height() / 2) - (pix.height() / 2)), pix);
++ //painter.drawPixmap(opt.rect.topLeft() + QPoint(shift, shift), pix);
++ qDebug(&quot;Rect: %d %d %dx%d&quot;, rect().left(), rect().top(), rect().width(), rect().height());
++}
++
++void IaOraDecorationButton::enterEvent(QEvent *e)
++{
++ Q_UNUSED(e);
++
++ m_isHover = true;
++ update();
++}
++
++void IaOraDecorationButton::leaveEvent(QEvent *e)
++{
++ Q_UNUSED(e);
++
++ m_isHover = false;
++ update();
++}
++
++/*-----------------------------------------------------------------------*/
++
++IaOraDecoration::IaOraDecoration(KDecorationBridge *bridge, KDecorationFactory *factory)
++ : KCommonDecorationUnstable(bridge, factory) // TABS
++ //: KCommonDecoration(bridge, factory)
++{
++ /* */
++ clicking = dragging = false;
++ pressedButton = Qt::NoButton;
++
++ loadConfig();
++}
++
++
++IaOraDecoration::~IaOraDecoration()
++{
++ /* */
++}
++
++
++QString IaOraDecoration::visibleName() const
++{
++ return i18n(&quot;IaOra&quot;);
++}
++
++
++void IaOraDecoration::initStyleOption(QStyleOption &amp;opt)
++{
++ opt.init(widget());
++ opt.fontMetrics = QFontMetrics(options()-&gt;font(isActive()));
++ if (isActive()) {
++ opt.state |= QStyle::State_Active;
++ } else {
++ opt.state &amp;= ~QStyle::State_Active;
++ }
++}
++
++// Loads the configuration from theme settings
++void IaOraDecoration::loadConfig()
++{
++ KConfig *conf = new KConfig(&quot;iaorarc&quot;);
++ KConfigGroup configGroup(conf, &quot;Windeco&quot;);
++
++ useWindowGrouping = configGroup.readEntry(&quot;UseWindowGrouping&quot;, false); // TABS
++ closeButtonsOnTabs = configGroup.readEntry(&quot;CloseButtonsOnTabs&quot;, true); // TABS
++
++ borderSize = configGroup.readEntry(&quot;BorderSize&quot;, 1);
++
++ int alignFlag = configGroup.readEntry(&quot;TitleBarTextAlignment&quot;, 1);
++
++ switch(alignFlag){
++ case 0:
++ titleBarTextAlign = Qt::AlignLeft | Qt::AlignVCenter;
++ break;
++ default:
++ case 1:
++ titleBarTextAlign = Qt::AlignCenter; // the default one
++ break;
++ case 2:
++ titleBarTextAlign = Qt::AlignRight | Qt::AlignVCenter;
++ break;
++ }
++
++ delete conf;
++}
++
++bool IaOraDecoration::decorationBehaviour(DecorationBehaviour behaviour) const
++{
++ switch (behaviour) {
++ case DB_MenuClose:
++ case DB_WindowMask:
++ case DB_ButtonHide:
++ return true;
++ default:
++ return KCommonDecoration::decorationBehaviour(behaviour);
++ }
++}
++
++
++void IaOraDecoration::updateWindowShape()
++{
++ QStyleOptionTitleBar option;
++ initStyleOption(option);
++ QStyleHintReturnMask mask;
++
++ if ((widget()-&gt;style())-&gt;styleHint(QStyle::SH_WindowFrame_Mask, &amp;option, widget(), &amp;mask)) {
++ setMask(mask.region);
++ } else if (maximizeMode() == MaximizeFull){ // we don't want mask when maximized
++ QRegion mask2(0, 0, widget()-&gt;width()+1, widget()-&gt;height()+1);
++ setMask(mask2);
++ } else {
++ int w = widget()-&gt;width();
++ int h = widget()-&gt;height();
++
++ QRegion mask2(1, 0, w-2, h);
++ mask2 += QRegion(0, 1, 1, h-2);
++ mask2 += QRegion(w-1, 1, 1, h-2);
++
++ setMask(mask2);
++ }
++}
++
++
++int IaOraDecoration::layoutMetric(LayoutMetric lm, bool respectWindowState, const KCommonDecorationButton *button) const
++{
++ bool border = !(maximizeMode()==MaximizeFull &amp;&amp; !options()-&gt;moveResizeMaximizedWindows());
++
++ if (border) {
++ switch (lm) {
++ case LM_BorderLeft:
++ case LM_BorderRight:
++ case LM_BorderBottom:
++ return borderWidth;
++ case LM_TitleBorderLeft:
++ case LM_TitleBorderRight:
++ return 4;
++ case LM_TitleEdgeLeft:
++ case LM_TitleEdgeRight:
++ return 8;
++ case LM_TitleEdgeTop:
++ return borderWidth;
++ case LM_ButtonHeight:
++ return titleHeight;
++ default:
++ break;
++ }
++ } else {
++ switch (lm) {
++ case LM_BorderLeft:
++ case LM_BorderRight:
++ return 0;
++ case LM_BorderBottom:
++ case LM_TitleBorderLeft:
++ case LM_TitleBorderRight:
++ case LM_TitleEdgeLeft:
++ return 2;
++ case LM_TitleEdgeRight:
++ case LM_TitleEdgeTop:
++ return 0;
++ case LM_ButtonHeight:
++ return titleHeight;
++ default:
++ break;
++ }
++ }
++ switch (lm) {
++ case LM_TitleEdgeBottom:
++ return 1;
++ case LM_TitleHeight:
++ return titleHeight + 2;
++ case LM_ButtonWidth:
++ return titleHeight;
++ case LM_ButtonSpacing:
++ return 0;
++ case LM_ExplicitButtonSpacer:
++ return 2;
++ case LM_ButtonMarginTop:
++ return 0;
++ default:
++ return KCommonDecoration::layoutMetric(lm, respectWindowState, button);
++ }
++}
++
++
++KCommonDecorationButton *IaOraDecoration::createButton(ButtonType type)
++{
++ return new IaOraDecorationButton(type, this);
++}
++
++
++void IaOraDecoration::init()
++{
++ QWidget wid;
++ setIaOraStyle(&amp;wid);
++ if (wid.style()) {
++ QStyleOptionTitleBar option;
++ option.init(&amp;wid);
++ option.fontMetrics = QFontMetrics(options()-&gt;font(true));
++ borderWidth = wid.style()-&gt;pixelMetric(QStyle::PM_MdiSubWindowFrameWidth, &amp;option, 0);
++ titleHeight = wid.style()-&gt;pixelMetric(QStyle::PM_TitleBarHeight, &amp;option, 0);
++ noBorder = wid.style()-&gt;styleHint(QStyle::SH_TitleBar_NoBorder, &amp;option, 0);
++ autoRaise = wid.style()-&gt;styleHint(QStyle::SH_TitleBar_AutoRaise, &amp;option, 0);
++ } else {
++ borderWidth = 4;
++ titleHeight = 16;
++ noBorder = false;
++ autoRaise = false;
++ }
++ KConfig configFile(QString::fromAscii(&quot;kwiniaorarc&quot;));
++ KConfigGroup conf(&amp;configFile, &quot;General&quot;);
++ coloredFrame = conf.readEntry(&quot;UseTitleBarBorderColors&quot;, false);
++ contrastFrame = conf.readEntry(&quot;UseExtraContrastBorder&quot;, false);
++
++
++ switch (borderSize) {
++ case 0: borderWidth = 2; break; // Tiny
++ default:
++ case 1: borderWidth = 3; break; // Normal
++ case 2: borderWidth = 4; break; // Large
++ case 3: borderWidth = 5; break; // VeryLarge
++ case 4: borderWidth = titleHeight / 2; break; // Huge
++ case 5: borderWidth = titleHeight * 3 / 4; break; // VeryHuge
++ case 6: borderWidth = titleHeight; break; // Oversized
++ }
++ /*switch (options()-&gt;preferredBorderSize(factory())) {
++ case BorderTiny: borderWidth = 2; break;
++ default:
++ case BorderNormal: borderWidth = 3; break;
++ case BorderLarge: borderWidth = 4; break;
++ case BorderVeryLarge: borderWidth = 5; break;
++ case BorderHuge: borderWidth = titleHeight / 2; break;
++ case BorderVeryHuge: borderWidth = titleHeight * 3 / 4; break;
++ case BorderOversized: borderWidth = titleHeight; break;
++ }*/
++ if (contrastFrame) {
++ borderWidth += 1;
++ }
++ KCommonDecoration::init();
++ if (wid.style()) widget()-&gt;setStyle(wid.style());
++ widget()-&gt;setAutoFillBackground(false);
++ widget()-&gt;setAttribute(Qt::WA_NoSystemBackground, true);
++ widget()-&gt;setAttribute(Qt::WA_OpaquePaintEvent, true);
++
++ if (useWindowGrouping)
++ widget()-&gt;setAcceptDrops(true); // TABS
++
++ if (static_cast&lt;const KDecorationUnstable *&gt;(decoration())-&gt;compositingActive())
++ widget()-&gt;setAttribute(Qt::WA_PaintOnScreen, false); // Kwin problem with composite
++}
++
++
++static inline QColor blend_color(const QColor &amp;c0, const QColor &amp;c1, qreal blend)
++{
++ int b = int(0.5 + 256.0 * blend);
++ b = qMin(256, qMax(0, b));
++ QRgb rgba0 = c0.rgba();
++ QRgb rgba1 = c1.rgba();
++ return QColor(
++ qRed(rgba0) + (((qRed(rgba1) - qRed(rgba0)) * b) &gt;&gt; 8),
++ qGreen(rgba0) + (((qGreen(rgba1) - qGreen(rgba0)) * b) &gt;&gt; 8),
++ qBlue(rgba0) + (((qBlue(rgba1) - qBlue(rgba0)) * b) &gt;&gt; 8),
++ qAlpha(rgba0) + (((qAlpha(rgba1) - qAlpha(rgba0)) * b) &gt;&gt; 8)
++ );
++}
++
++// Helper function to draw a tab on the TitleBar
++void IaOraDecoration::drawTab(QPainter &amp;painter, const QRect &amp;rect, ClientGroupItem &amp;item, bool border, bool active, bool dragging)
++{ // TABS
++ QStyleOptionTab tab;
++ initStyleOption(tab);
++
++ if (dragging)
++ tab.rect = rect.adjusted(0, 0, 2, 0);
++ else
++ tab.rect = rect.adjusted(0, 2, 0, 0);
++
++ QPalette pal = tab.palette;
++ pal.setCurrentColorGroup(active ? QPalette::Active : QPalette::Inactive);
++
++ ColorData *data = lookupData(pal);
++
++ int top = tab.rect.top(), bottom = tab.rect.bottom(), left = tab.rect.left(), right = tab.rect.right();
++
++ if (active){
++ QRect contents = tab.rect;
++ QLine borders[3];
++ QLine lightBlue[2];
++ QLine darkBlue[2];
++
++ // Tab decoration
++ borders[0] = QLine(left, top + 4, left, bottom);
++ if (dragging){
++ borders[1] = QLine(right - 2, top + 4, right - 2, bottom);
++ borders[2] = QLine(left, bottom, right - 2, bottom);
++ } else
++ borders[1] = QLine(right - 1, top + 4, right - 1, bottom);
++
++ lightBlue[0] = QLine(left + 2, top, right - 3,top);
++ lightBlue[1] = QLine(left + 1, top + 1, right - 2 , top + 1);
++
++ darkBlue[0] = QLine(left, top + 2, right - 1, top + 2);
++ darkBlue[1] = QLine(left, top + 3, right - 1, top + 3);
++
++ // fill the contents
++ if (dragging){
++ painter.fillRect(contents, data-&gt;gray[0]);
++
++ } else
++ painter.fillRect(contents.adjusted(0, 4, -1, 0), data-&gt;gray[0]);
++
++ // draw the gray borders
++ painter.setPen(data-&gt;gray[4]);
++ if (dragging){
++ painter.drawLines(borders, 3);
++
++ QPoint points[2];
++
++ points[0] = QPoint(left + 1, bottom - 1);
++ points[1] = QPoint(right - 3, bottom - 1);
++ painter.drawPoints(points, 2);
++ } else
++ painter.drawLines(borders, 2);
++
++ // the blue lines
++ painter.setPen(data-&gt;color[2]);
++ painter.drawLines(lightBlue, 2);
++ painter.setPen(data-&gt;color[4]);
++ painter.drawLines(darkBlue, 2);
++ }
++ else // inactive tab
++ {
++ QRect contents = tab.rect;
++
++ QPoint points[2];
++ QLine lines[4];
++
++ // Tab decoration
++ if (!dragging)
++ top += 3;
++
++ contents.setTop(top + 1);
++ lines[0] = QLine(left + 2, top, right - 3, top); // top
++ lines[1] = QLine(left, top + 2, left, bottom); // left
++ lines[2] = QLine(right - 1, top + 2, right - 1, bottom); // right
++ points[0] = QPoint(left + 1, top + 1);
++ points[1] = QPoint(right - 2, top + 1);
++
++ // draw the contents
++ painter.setPen(Qt::NoPen);
++ painter.setBrush(data-&gt;gray[1]);
++ painter.drawRect(contents.adjusted(1, 1, -1, 0));
++ painter.drawRect(contents.adjusted(2, 0, -2, 0));
++
++ // draw the lines
++ painter.setPen(data-&gt;gray[5]);
++ painter.drawLines(lines, 4);
++ painter.drawPoints(points, 2);
++ }
++
++ //--------------------------------------------------------
++
++ // text part
++ painter.save();
++ int borderSpace = borderWidth;
++
++ QRect labelRect(rect.adjusted(0, 4, 0, 0));
++ if (titleBarTextAlign &amp; Qt::AlignLeft)
++ labelRect.adjust(3, 0, 0, 0);
++ else if (titleBarTextAlign &amp; Qt::AlignRight)
++ labelRect.adjust(0, 0, -3, 0);
++
++ if (closeButtonsOnTabs)
++ labelRect.adjust(0, 0, -18, 0);
++
++ QFontMetrics metrics(painter.font());
++ QString string = metrics.elidedText(item.title(), Qt::ElideRight, labelRect.width());
++
++ painter.setPen(tab.palette.color(QPalette::WindowText));
++ painter.drawText(labelRect, titleBarTextAlign | Qt::TextSingleLine, string);
++ painter.restore();
++}
++
++void IaOraDecoration::paintEvent(QPaintEvent */*event */)
++{
++ bool border = !(maximizeMode()==MaximizeFull &amp;&amp; !options()-&gt;moveResizeMaximizedWindows());
++ QStylePainter painter(widget());
++
++ // draw the title bar
++ QStyleOptionTitleBar option;
++ initStyleOption(option);
++ option.titleBarState = option.state;
++ option.subControls = QStyle::SC_TitleBarLabel;
++
++ QList&lt;ClientGroupItem&gt; tabList = clientGroupItems(); // TABS
++ int tabCount = tabList.count(); // TABS
++
++ int borderSpace = borderWidth;
++
++ if (noBorder) {
++ option.rect.setHeight(titleHeight);
++ } else {
++ option.rect.adjust(4, 4, -4, -4);
++ option.rect.setHeight(titleHeight);
++ }
++ if (!border) {
++ option.rect.adjust(-6, 0, 6, 0);
++ borderSpace = 0;
++ }
++
++ option.text = QString();
++ option.titleBarFlags = 0;
++ option.rect.adjust(0, 0, 0, borderSpace);
++
++ if (coloredFrame &amp;&amp; border) {
++ painter.fillRect(widget()-&gt;rect(), options()-&gt;color(ColorTitleBar, isActive()));
++#if 0
++ QColor color0 = option.palette.color(QPalette::Window);
++ QColor color1 = options()-&gt;color(ColorTitleBar, isActive());
++ QRect r = widget()-&gt;rect();
++ for (int i = 0; i &lt; borderWidth; ++i) {
++ painter.setPen(blend_color(color1, color0, i / (borderWidth - 1.0)));
++ painter.drawRect(r.adjusted(0, 0, -1, -1));
++ r.adjust(1, 1, -1, -1);
++ }
++#endif
++ } else {
++ painter.fillRect(widget()-&gt;rect(), option.palette.color(QPalette::Window));
++
++ painter.save();
++ painter.setPen(Qt::white);
++ painter.drawLine(widget()-&gt;rect().topLeft() + QPoint(0, titleHeight + borderSpace + 2), widget()-&gt;rect().topRight() + QPoint(0, titleHeight + borderSpace + 2));
++
++ painter.setPen(option.palette.color(QPalette::Window));
++ painter.drawLine(widget()-&gt;rect().topLeft() + QPoint(2, 0), widget()-&gt;rect().bottomLeft() + QPoint(2, 0));
++ painter.drawLine(widget()-&gt;rect().topRight() - QPoint(2, 0), widget()-&gt;rect().bottomRight() - QPoint(2, 0));
++ painter.drawLine(widget()-&gt;rect().bottomLeft() - QPoint(0, 2), widget()-&gt;rect().bottomRight() - QPoint(0, 2));
++
++ // inner lines
++ // #DFE7EF
++ painter.setPen(QColor(223, 231, 239));
++ painter.drawLine(widget()-&gt;rect().topLeft() + QPoint(1, 0), widget()-&gt;rect().bottomLeft() + QPoint(1, 0));
++ painter.drawLine(widget()-&gt;rect().topRight() - QPoint(1, 0), widget()-&gt;rect().bottomRight() - QPoint(1, 0));
++ painter.drawLine(widget()-&gt;rect().bottomLeft() - QPoint(0, 1), widget()-&gt;rect().bottomRight() - QPoint(0, 1));
++
++ // outer lines
++ // #CFD7DF
++ painter.setPen(QColor(207, 215, 223));
++ painter.drawLine(widget()-&gt;rect().topLeft() + QPoint(0, titleHeight + borderSpace + 1), widget()-&gt;rect().topRight() + QPoint(0, titleHeight + borderSpace + 1));
++ painter.drawLine(widget()-&gt;rect().topLeft(), widget()-&gt;rect().bottomLeft());
++ painter.drawLine(widget()-&gt;rect().topRight(), widget()-&gt;rect().bottomRight());
++ painter.drawLine(widget()-&gt;rect().bottomLeft(), widget()-&gt;rect().bottomRight());
++ painter.restore();
++ }
++
++ QFont font = options()-&gt;font(isActive());
++ // Maybe we can add a checkbox for config to use fixed window title text size
++ //font.setPointSize(10);
++ font.setBold(true);
++ painter.setFont(font);
++
++ //if (tabCount &lt;= 1){
++ if (isActive()){
++ option.palette.setColor(QPalette::Highlight, options()-&gt;color(ColorTitleBar, true));
++ option.palette.setColor(QPalette::HighlightedText, options()-&gt;color(ColorFont, true));
++ option.palette.setColor(QPalette::Window, options()-&gt;color(ColorTitleBar, false));
++ option.palette.setColor(QPalette::WindowText, options()-&gt;color(ColorFont, false));
++ } else{
++ option.palette.setColor(QPalette::Inactive, QPalette::Highlight, options()-&gt;color(ColorTitleBar, false));
++ option.palette.setColor(QPalette::Inactive, QPalette::HighlightedText, options()-&gt;color(ColorFont, false));
++ option.palette.setColor(QPalette::Inactive, QPalette::Window, options()-&gt;color(ColorTitleBar, false));
++ option.palette.setColor(QPalette::Inactive, QPalette::WindowText, options()-&gt;color(ColorFont, false));
++ }
++ painter.drawComplexControl(QStyle::CC_TitleBar, option);
++ //}
++
++ int captionWidth = width() - buttonsLeftWidth() - buttonsRightWidth() - (border ? 16 : 4);
++ option.text = option.fontMetrics.elidedText(caption(), Qt::ElideMiddle, captionWidth);
++ QRect labelRect = QRect((border ? 8 : 2) + buttonsLeftWidth(), 0, captionWidth, titleHeight + borderSpace + 4);
++
++ labelRect.adjust(0, -2, 0, -2);
++ if (titleBarTextAlign &amp; Qt::AlignLeft)
++ labelRect.adjust(3, 0, 0, 0);
++ else if (titleBarTextAlign &amp; Qt::AlignRight)
++ labelRect.adjust(0, 0, -3, 0);
++
++ QFontMetrics metrics(font);
++ QString string = metrics.elidedText(option.text, Qt::ElideRight, labelRect.width());
++
++ // deleting unneeded close buttons
++ while ((tabCount &lt; closeButtonsList.size()) || ((tabCount == 1) &amp;&amp; (closeButtonsList.size() &gt; 0))){
++ IaOraDecorationButton *button = closeButtonsList.takeFirst();
++
++ button-&gt;hide();
++ button-&gt;deleteLater();
++ }
++
++ if (tabCount &gt; 1){ // TABS
++ //painter.fillRect(option.rect.adjusted(0, 0, 0, 2), option.palette.color(QPalette::Window));
++
++ QRect tabRect(labelRect);
++ tabRect.setWidth(tabRect.width() / tabCount + 1);
++ int i;
++
++ for (i = 0; i &lt; tabCount; ++i){
++ if (i == tabCount - 1)
++ tabRect.adjust(0, 0, -3, 0);
++
++ drawTab(painter, tabRect, tabList[i], border, isActive() &amp;&amp; visibleClientGroupItem() == i);
++ // create new close buttons
++ if (closeButtonsOnTabs){
++ if (i &gt;= closeButtonsList.size())
++ closeButtonsList.append(new IaOraDecorationButton(ItemCloseButton, this));
++ //closeButtonsList.append(new IaOraDecorationButton(CloseButton, this));
++
++ //closeButtonsList[i]-&gt;setActive(isActive() &amp;&amp; visibleClientGroupItm() == i);
++ closeButtonsList[i]-&gt;resize(16, 16);
++ closeButtonsList[i]-&gt;move(tabRect.right() - 18, tabRect.top() + (tabRect.height() / 2) - 5);
++ closeButtonsList[i]-&gt;installEventFilter(this);
++ closeButtonsList[i]-&gt;show();
++ }
++
++ tabRect.translate(tabRect.width() - 1, 0);
++ }
++ } else{ // NO TABBED WINDOW
++ // draw the title caption
++ // TODO use MDI code
++ painter.save();
++ qreal opacity = painter.opacity();
++
++ if (option.state &amp; QStyle::State_Active){
++ painter.setOpacity(opacity * 0.9);
++ painter.setPen(Qt::black);
++ painter.drawText(labelRect.adjusted(1, 1, 1, 1), titleBarTextAlign | Qt::TextSingleLine, string);
++ painter.setOpacity(opacity);
++ }
++
++ painter.setPen(options()-&gt;color(ColorFont, isActive()));
++
++ painter.drawText(labelRect, titleBarTextAlign | Qt::TextSingleLine, string);
++ painter.restore();
++ }
++}
++
++bool IaOraDecoration::eventFilter(QObject *object, QEvent *event) // TABS
++{
++ if (!useWindowGrouping)
++ return KCommonDecorationUnstable::eventFilter(object, event);
++
++ // this 'if' is for the tab close buttons
++ if (IaOraDecorationButton *button = dynamic_cast&lt;IaOraDecorationButton *&gt;(object)){
++ if (event-&gt;type() == QEvent::MouseButtonPress)
++ return true;
++ else if (event-&gt;type() == QEvent::MouseButtonRelease){
++ const QMouseEvent *mouseEvent = static_cast&lt;QMouseEvent *&gt;(event);
++
++ if ((mouseEvent-&gt;button() == Qt::LeftButton) &amp;&amp; (button-&gt;rect().contains(mouseEvent-&gt;pos())))
++ closeClientGroupItem(closeButtonsList.indexOf(button));
++ }
++ }
++
++ bool state = false;
++ if (event-&gt;type() == QEvent::MouseButtonPress)
++ state = mouseButtonPressEvent(static_cast&lt;QMouseEvent*&gt;(event));
++ else if (event-&gt;type() == QEvent::MouseButtonRelease &amp;&amp; widget() == object)
++ state = mouseButtonReleaseEvent( static_cast&lt;QMouseEvent*&gt;(event));
++ else if (event-&gt;type() == QEvent::MouseMove)
++ state = mouseMoveEvent(static_cast&lt;QMouseEvent*&gt;(event));
++ else if (event-&gt;type() == QEvent::DragEnter &amp;&amp; widget() == object)
++ state = dragEnterEvent(static_cast&lt;QDragEnterEvent*&gt;(event));
++ else if (event-&gt;type() == QEvent::DragMove &amp;&amp; widget() == object)
++ state = dragMoveEvent(static_cast&lt;QDragMoveEvent*&gt;(event));
++ else if (event-&gt;type() == QEvent::DragLeave &amp;&amp; widget() == object)
++ state = dragLeaveEvent(static_cast&lt;QDragLeaveEvent*&gt;(event));
++ else if (event-&gt;type() == QEvent::Drop &amp;&amp; widget() == object)
++ state = dropEvent(static_cast&lt;QDropEvent*&gt;(event));
++
++ return state || KCommonDecorationUnstable::eventFilter(object, event);
++}
++
++int IaOraDecoration::itemClicked(const QPoint &amp;point, bool between) // TABS
++{
++ QRect frame = widget()-&gt;frameGeometry();
++ QList&lt;ClientGroupItem&gt; list = clientGroupItems();
++ int tabs = list.count();
++ int t_x = titleRect().x();
++ int t_y = frame.y();
++ int t_w = titleRect().width();
++ int t_h = layoutMetric(LM_TitleEdgeTop) + layoutMetric(LM_TitleHeight) + layoutMetric(LM_TitleEdgeBottom);
++ int tabWidth = t_w / tabs;
++
++ if (between) // inserting a new tab between two existing ones
++ t_x -= tabWidth / 2;
++
++ int rem = t_w % tabs;
++ int tab_x = t_x;
++
++ int i;
++ for (i = 0; i &lt; tabs; ++i){
++ QRect tabRect(tab_x, t_y, (i &lt; rem) ? tabWidth + 1 : tabWidth, t_h);
++
++ if (tabRect.contains(point))
++ return i;
++
++ tab_x += tabRect.width();
++ }
++
++ return -1;
++}
++
++bool IaOraDecoration::mouseButtonPressEvent(QMouseEvent *event) // TABS
++{
++ clickPos = widget()-&gt;mapToParent(event-&gt;pos());
++
++ int item = itemClicked(clickPos);
++
++ if (buttonToWindowOperation(event-&gt;button()) == OperationsOp){
++ displayClientMenu(item, widget()-&gt;mapToGlobal(clickPos));
++
++ return true;
++ }
++
++ if (item &gt;= 0){
++ clicking = true;
++ pressedButton = event-&gt;button();
++
++ return true;
++ }
++
++ clicking = false;
++ return false;
++}
++
++bool IaOraDecoration::mouseButtonReleaseEvent(QMouseEvent *event) // TABS
++{
++ releasePos = event-&gt;pos();
++
++ int item = itemClicked(releasePos);
++
++ if ((clicking) &amp;&amp; (item &gt;= 0)){
++ clicking = false;
++ setVisibleClientGroupItem(item);
++
++ return true;
++ }
++
++ clicking = false;
++ return false;
++}
++
++bool IaOraDecoration::mouseMoveEvent(QMouseEvent *event) // TABS
++{
++ QPoint point = event-&gt;pos();
++ int item = itemClicked(point);
++
++ if ((item &gt;= 0) &amp;&amp; (clicking) &amp;&amp;
++ (buttonToWindowOperation(pressedButton) == ClientGroupDragOp) &amp;&amp;
++ ((point - clickPos).manhattanLength()) &gt;= 4){
++ clicking = false;
++ dragging = true;
++
++ QDrag *drag = new QDrag(widget());
++ QMimeData *groupData = new QMimeData();
++
++ groupData-&gt;setData(clientGroupItemDragMimeType(), QString().setNum(itemId(item)).toAscii());
++ drag-&gt;setMimeData(groupData);
++
++ // Create draggable tab pixmap
++ QList&lt;ClientGroupItem&gt; tabList = clientGroupItems();
++ const int tabCount = tabList.count();
++ QRect frame(QPoint(0, 0), widget()-&gt;frameGeometry().size());
++ QRect titlebar(frame.topLeft(),
++ QSize(frame.width(), layoutMetric(LM_TitleEdgeTop) +
++ layoutMetric(LM_TitleHeight) +
++ layoutMetric(LM_TitleEdgeBottom) - 1));
++ QRect geom = titleRect().adjusted(-1, -layoutMetric(LM_TitleEdgeTop), 1, 0);
++
++ geom.setWidth((geom.width() / tabCount) + 1); // Split titlebar evenly
++ geom.translate((geom.width() * item) - item, 0);
++
++ QPixmap pix(geom.size());
++ QPainter painter(&amp;pix);
++
++ drawTab(painter, QRect(QPoint(0, 0), geom.size()), tabList[item], true, isActive() &amp;&amp; visibleClientGroupItem() == item, true);
++ painter.end();
++
++ QPixmap pix2(geom.size());
++ QPainter painter2(&amp;pix2);
++
++ pix2.fill(Qt::transparent);
++ painter2.setPen(Qt::red);
++
++ int x = 0, y = 0, w = geom.width(), h = geom.height();
++ // top-left
++ painter2.drawLine(x, y, x + 1, y);
++ painter2.drawLine(x, y, x, y + 1);
++ // top-right
++ painter2.drawLine(w - 2, y, w, y);
++ painter2.drawLine(w - 1, y, w - 1, y + 1);
++ // bottom-left
++ painter2.drawLine(x, h - 2, x, h - 1);
++ painter2.drawLine(x, h - 1, x + 1, h - 1);
++ // bottom-right
++ painter2.drawLine(w - 2, h - 1, w, h - 1);
++ painter2.drawLine(w - 1, h - 2, w - 1, h - 1);
++
++ pix.setMask(pix2.createMaskFromColor(Qt::red));
++
++ drag-&gt;setPixmap(pix);
++
++ drag-&gt;setHotSpot(QPoint(point.x() - geom.x(), -1));
++
++ drag-&gt;exec(Qt::MoveAction);
++ dragging = false;
++
++ if ((drag-&gt;target() == 0) &amp;&amp; (tabList.count() &gt; 1)){
++ QPoint pos = QCursor::pos();
++
++ frame.moveTo(pos.x() - point.x(), pos.y() - point.y());
++ removeFromClientGroup(itemClicked(clickPos), frame);
++ }
++
++ return true;
++ }
++
++ return false;
++}
++
++bool IaOraDecoration::dragEnterEvent(QDragEnterEvent *event) // TABS
++{
++ if ((event-&gt;source() != 0) &amp;&amp; (event-&gt;source()-&gt;objectName() == &quot;decoration widget&quot;)){
++ dragging = true;
++ event-&gt;acceptProposedAction();
++
++ QPoint point = widget()-&gt;mapToParent(event-&gt;pos());
++ targetTab = itemClicked(point);
++ widget()-&gt;update();
++
++ return true;
++ }
++
++ return false;
++}
++
++bool IaOraDecoration::dragMoveEvent(QDragMoveEvent *event) // TABS
++{
++ Q_UNUSED(event)
++
++ return false;
++}
++
++bool IaOraDecoration::dragLeaveEvent(QDragLeaveEvent *event) // TABS
++{
++ Q_UNUSED(event)
++
++ return false;
++}
++
++bool IaOraDecoration::dropEvent(QDropEvent *event) // TABS
++{
++ QPoint point = widget()-&gt;mapToParent(event-&gt;pos());
++ dragging = false;
++ int tabClick = itemClicked(point);
++
++ if (tabClick &gt;= 0){
++ const QMimeData *groupData = event-&gt;mimeData();
++
++ if (groupData-&gt;hasFormat(clientGroupItemDragMimeType())){
++ if (widget() == event-&gt;source()){
++ int from = itemClicked(clickPos);
++
++ moveItemInClientGroup(from, itemClicked(point, true));
++ } else{
++ long source = QString(groupData-&gt;data(clientGroupItemDragMimeType())).toLong();
++
++ moveItemToClientGroup(source, itemClicked(point, true));
++ }
++
++ return true;
++ }
++ }
++
++ return false;
++}
++
++/*-----------------------------------------------------------------------*/
++
++IaOraDecorationFactory::IaOraDecorationFactory()
++{
++ loadConfig();
++}
++
++
++IaOraDecorationFactory::~IaOraDecorationFactory()
++{
++ /* */
++}
++
++bool IaOraDecorationFactory::loadConfig()
++{
++ bool changed = false; // if no changes, just return false
++ bool wGrouping, cboTabs;
++ int alignment, brdrSize;
++
++ KConfig *conf = new KConfig(&quot;iaorarc&quot;);
++ KConfigGroup configGroup(conf, &quot;Windeco&quot;);
++
++ brdrSize = configGroup.readEntry(&quot;BorderSize&quot;, 1);
++ alignment = configGroup.readEntry(&quot;TitleBarTextAlignment&quot;, 1);
++ wGrouping = configGroup.readEntry(&quot;UseWindowGrouping&quot;, false); // TABS
++ cboTabs = configGroup.readEntry(&quot;CloseButtonsOnTabs&quot;, true); // TABS
++
++ if (brdrSize != borderSize){
++ borderSize = brdrSize;
++ changed = true;
++ }
++ if (alignment != alignFlag){
++ alignFlag = alignment;
++ changed = true;
++ }
++ if (wGrouping != useWindowGrouping){
++ useWindowGrouping = wGrouping;
++ changed = true;
++ }
++ if (cboTabs != closeButtonsOnTabs){
++ closeButtonsOnTabs = cboTabs;
++ changed = true;
++ }
++
++ delete conf;
++
++ return changed;
++}
++
++KDecoration *IaOraDecorationFactory::createDecoration(KDecorationBridge *bridge)
++{
++ return (new IaOraDecoration(bridge, this))-&gt;decoration();
++}
++
++
++bool IaOraDecorationFactory::reset(unsigned long changed)
++{
++ if (loadConfig())
++ return true;
++ else{
++ resetDecorations(changed);
++ return false;
++ }
++}
++
++
++/*QList&lt;IaOraDecorationFactory::BorderSize&gt; IaOraDecorationFactory::borderSizes() const
++{
++ return QList&lt;BorderSize&gt;()
++ &lt;&lt; BorderTiny
++ &lt;&lt; BorderNormal
++ &lt;&lt; BorderLarge
++ &lt;&lt; BorderVeryLarge
++ &lt;&lt; BorderHuge
++ &lt;&lt; BorderVeryHuge
++ &lt;&lt; BorderOversized;
++}*/
++
++
++bool IaOraDecorationFactory::supports(Ability ability) const
++{
++ switch (ability)
++ {
++ case AbilityAnnounceButtons:
++ case AbilityButtonMenu:
++ case AbilityButtonHelp:
++ case AbilityButtonShade:
++ case AbilityButtonMinimize:
++ case AbilityButtonMaximize:
++ case AbilityButtonClose:
++ case AbilityButtonSpacer:
++ case AbilityButtonOnAllDesktops:
++ case AbilityButtonAboveOthers:
++ case AbilityButtonBelowOthers:
++ return true;
++ case AbilityAnnounceColors:
++ case AbilityColorTitleBack:
++ case AbilityColorTitleFore:
++ return true;
++ case AbilityClientGrouping: // TABS
++ return useWindowGrouping;
++ default:
++ return false;
++ }
++}
++
++
++/*-----------------------------------------------------------------------*/
++
++#include &quot;kwin_iaora.moc&quot;
++
++
+
+
+Property changes on: theme/ia_ora-kde4/kwin-client/kwin_iaora.cpp
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4kwinclientkwin_iaorah">Added: theme/ia_ora-kde4/kwin-client/kwin_iaora.h</a>
+===================================================================
+--- theme/ia_ora-kde4/kwin-client/kwin_iaora.h (rev 0)
++++ theme/ia_ora-kde4/kwin-client/kwin_iaora.h 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,174 @@
++/*
++ * kwin_iaora.h
++ *
++ * Copyright 2008 Gustavo Pichorim Boiko &lt;boiko@mandriva.com&gt;
++ * Skulpture Copyright 2008 Christoph Feck
++ * Copyright 2008-2010 Rodrigo Gonçalves de Oliveira &lt;rodrigo@mandriva.com&gt;
++ *
++ ** Window tabbing feature based on the original code from Tabstrip KWin window decoration
++ ** Copyright (C) 2009 Jorge Mata &lt;matamax123@gmail.com&gt;
++ ** Copyright (C) 2009 Lucas Murray &lt;lmurray@undefinedfire.com&gt;
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 3 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ */
++
++#ifndef KWIN_IAORA_H
++#define KWIN_IAORA_H 1
++
++#include &lt;QColor&gt;
++
++typedef struct
++{
++ QColor gray[7];
++ QColor color[5];
++ QColor black;
++ QColor white;
++} ColorData;
++
++/*-----------------------------------------------------------------------*/
++
++#include &lt;kcommondecoration.h&gt;
++class QStyleOptionButton;
++
++class IaOraDecorationButton : public KCommonDecorationButton
++{
++ Q_OBJECT
++
++ public:
++ IaOraDecorationButton(ButtonType type, KCommonDecoration *parent);
++ virtual ~IaOraDecorationButton();
++ virtual void reset(unsigned long changed);
++
++ protected:
++ virtual void paintEvent(QPaintEvent *event);
++
++ protected:
++ void initStyleOption(QStyleOptionButton &amp;opt);
++
++ private:
++ void enterEvent(QEvent *e);
++ void leaveEvent(QEvent *e);
++ void init();
++ bool m_isHover;
++};
++
++
++/*-----------------------------------------------------------------------*/
++
++class QStyleOption;
++
++class IaOraDecoration : public KCommonDecorationUnstable // TABS
++//class IaOraDecoration : public KCommonDecoration
++{
++ Q_OBJECT
++
++ public:
++ IaOraDecoration(KDecorationBridge *bridge, KDecorationFactory *factory);
++ virtual ~IaOraDecoration();
++
++ public:
++ virtual QString visibleName() const;
++ virtual bool decorationBehaviour(DecorationBehaviour behaviour) const;
++ virtual int layoutMetric(LayoutMetric lm, bool respectWindowState = true, const KCommonDecorationButton *button = 0) const;
++ virtual void updateWindowShape();
++
++ virtual void init();
++ virtual KCommonDecorationButton *createButton(ButtonType type);
++
++ virtual void paintEvent(QPaintEvent *event);
++
++ // tabbing related
++ virtual bool eventFilter(QObject *object, QEvent *event);
++ int itemClicked(const QPoint &amp;point, bool between = false);
++ bool mouseButtonPressEvent(QMouseEvent *event);
++ bool mouseButtonReleaseEvent(QMouseEvent *event);
++ bool mouseMoveEvent(QMouseEvent *event);
++ bool dragEnterEvent(QDragEnterEvent *event);
++ bool dragMoveEvent(QDragMoveEvent *event);
++ bool dragLeaveEvent(QDragLeaveEvent *event);
++ bool dropEvent(QDropEvent *event);
++ //
++
++ protected:
++ void initStyleOption(QStyleOption &amp;opt);
++
++ private:
++ static ColorData *lookupData(const QPalette &amp;pal);
++
++ // load the configuration
++ void loadConfig();
++
++ // draw a tab for some application
++ void drawTab(QPainter &amp;painter, const QRect &amp;rect, ClientGroupItem &amp;item, bool border, bool active, bool dragging = false); // TABS
++
++ // use tabbing feature?
++ bool useWindowGrouping; // TABS
++ bool closeButtonsOnTabs; // TABS
++ // what kind of border we're using
++ int borderSize;
++ // just the titlebar text alignment
++ int titleBarTextAlign;
++
++ /* cached style hints and pixel metrics */
++ bool coloredFrame;
++ bool contrastFrame;
++ bool noBorder;
++ bool autoRaise;
++ int titleHeight;
++ int borderWidth;
++
++ // tabbing related
++ QPoint clickPos, releasePos;
++ Qt::MouseButton pressedButton;
++ QList&lt;IaOraDecorationButton*&gt; closeButtonsList;
++ bool clicking, dragging;
++ int targetTab;
++ //
++};
++
++
++/*-----------------------------------------------------------------------*/
++
++#include &lt;kdecorationfactory.h&gt;
++
++class IaOraDecorationFactory : public KDecorationFactoryUnstable // TABS
++//class IaOraDecorationFactory : public KDecorationFactory
++{
++ public:
++ IaOraDecorationFactory();
++ virtual ~IaOraDecorationFactory();
++
++ public:
++ bool loadConfig();
++ virtual KDecoration *createDecoration(KDecorationBridge *bridge);
++ virtual bool reset(unsigned long changed);
++ //virtual QList&lt;BorderSize&gt; borderSizes() const;
++ virtual bool supports(Ability ability) const;
++
++ private:
++ int borderSize;
++ int alignFlag;
++ bool useWindowGrouping; // TABS
++ bool closeButtonsOnTabs; // TABS
++
++};
++
++
++/*-----------------------------------------------------------------------*/
++
++#endif
++
++
+
+
+Property changes on: theme/ia_ora-kde4/kwin-client/kwin_iaora.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4srcdirectory">Added: theme/ia_ora-kde4/src/.directory</a>
+===================================================================
+--- theme/ia_ora-kde4/src/.directory (rev 0)
++++ theme/ia_ora-kde4/src/.directory 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,2 @@
++[Dolphin]
++Timestamp=2008,3,30,17,28,53
+
+<a id="themeia_orakde4srcCMakeListstxt">Added: theme/ia_ora-kde4/src/CMakeLists.txt</a>
+===================================================================
+--- theme/ia_ora-kde4/src/CMakeLists.txt (rev 0)
++++ theme/ia_ora-kde4/src/CMakeLists.txt 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,41 @@
++project (kstyle-iaora)
++
++set (STYLE_SOURCES iaorastyle.cpp
++ iaorastyle_button.cpp
++ iaorastyle_icons.cpp
++ iaorastyle_scrollbar.cpp
++ iaorastyle_tabbar.cpp
++ iaorastyle_dial.cpp
++ iaorastyle_menu.cpp
++ iaorastyle_slider.cpp
++ iaorastyle_window.cpp
++ iaorastyle_frame.cpp
++ iaorastyle_progressbar.cpp
++ iaorastyle_symbols.cpp
++ iaorastyle_combobox.cpp
++ iaorastyle_spinbox.cpp
++ iaorastyle_q3listview.cpp
++ iaorastyle_toolbutton.cpp )
++
++set (iaora-kde_SOURCES iaora-kde.cpp ${STYLE_SOURCES})
++set (iaora-qt_SOURCES iaora-qt.cpp ${STYLE_SOURCES})
++
++if (KDE4_FOUND)
++ kde4_add_plugin (iaora-kde ${iaora-kde_SOURCES})
++ target_link_libraries (iaora-kde ${KDE4_KDEUI_LIBS})
++ install (TARGETS iaora-kde DESTINATION ${PLUGIN_INSTALL_DIR}/plugins/styles)
++endif (KDE4_FOUND)
++
++ qt4_automoc (${iaora-qt_SOURCES})
++ add_library (iaora-qt SHARED ${iaora-qt_SOURCES})
++ target_link_libraries (iaora-qt ${QT_QTCORE_LIBRARY} ${QT_QTGUI_LIBRARY})
++ install (TARGETS iaora-qt LIBRARY DESTINATION ${QT_PLUGINS_DIR}/styles)
++ #install (FILES qtiaorarc DESTINATION ${KCFG_INSTALL_DIR})
++ install (FILES iaoracolors DESTINATION /etc )
++
++if (KDE4_FOUND)
++ install (FILES iaora-kde.themerc DESTINATION ${DATA_INSTALL_DIR}/kstyle/themes)
++ #install (FILES qtiaorarc DESTINATION ${KCFG_INSTALL_DIR})
++ #add_subdirectory (config)
++endif (KDE4_FOUND)
++
+
+
+Property changes on: theme/ia_ora-kde4/src/CMakeLists.txt
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4srcconfigCMakeListstxt">Added: theme/ia_ora-kde4/src/config/CMakeLists.txt</a>
+===================================================================
+--- theme/ia_ora-kde4/src/config/CMakeLists.txt (rev 0)
++++ theme/ia_ora-kde4/src/config/CMakeLists.txt 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,8 @@
++set (kstyle_skulpture_config_SOURCES sk_config.cpp)
++qt4_add_resources (kstyle_skulpture_config_SOURCES sk_preview2.qrc)
++kde4_add_ui_files (kstyle_skulpture_config_SOURCES sk_dialog.ui sk_preview1.ui sk_preview2.ui)
++
++kde4_add_plugin (kstyle_skulpture_config ${kstyle_skulpture_config_SOURCES})
++target_link_libraries (kstyle_skulpture_config ${KDE4_KDEUI_LIBS})
++install (TARGETS kstyle_skulpture_config DESTINATION ${PLUGIN_INSTALL_DIR})
++
+
+
+Property changes on: theme/ia_ora-kde4/src/config/CMakeLists.txt
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4srcconfigimagesREADME">Added: theme/ia_ora-kde4/src/config/images/README</a>
+===================================================================
+--- theme/ia_ora-kde4/src/config/images/README (rev 0)
++++ theme/ia_ora-kde4/src/config/images/README 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1 @@
++Images courtesy of Oxygen project
+
+<a id="themeia_orakde4srcconfigsk_configcpp">Added: theme/ia_ora-kde4/src/config/sk_config.cpp</a>
+===================================================================
+--- theme/ia_ora-kde4/src/config/sk_config.cpp (rev 0)
++++ theme/ia_ora-kde4/src/config/sk_config.cpp 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,320 @@
++/*
++ * sk_config.cpp
++ *
++ */
++
++#include &quot;sk_config.h&quot;
++#include &lt;QtCore/QSettings&gt;
++#include &lt;QtCore/QDir&gt;
++#include &lt;QtCore/QUuid&gt;
++#include &lt;QtGui/QMdiSubWindow&gt;
++#include &lt;QtGui/QCloseEvent&gt;
++#include &lt;QtGui/QStyleFactory&gt;
++#include &lt;QtGui/QApplication&gt;
++#include &lt;QtGui/QDialog&gt;
++#include &lt;QtCore/QDebug&gt;
++#include &lt;KDE/KGlobal&gt;
++#include &lt;cstdio&gt;
++
++
++/*-----------------------------------------------------------------------*/
++
++extern &quot;C&quot; KDE_EXPORT QWidget* allocate_kstyle_config(QWidget* parent)
++{
++ return new SkulptureStyleConfig(parent);
++}
++
++
++/*-----------------------------------------------------------------------*/
++
++#include &quot;ui_sk_preview1.h&quot;
++
++class Preview1Window : public QDialog, private Ui::SkulpturePreview1
++{
++ public:
++ explicit Preview1Window(QWidget *parent = 0);
++
++ public:
++ virtual void closeEvent(QCloseEvent *e);
++
++ private:
++ void init();
++};
++
++
++Preview1Window::Preview1Window(QWidget *parent)
++ : QDialog(parent)
++{
++ init();
++}
++
++
++void Preview1Window::closeEvent(QCloseEvent *e)
++{
++ e-&gt;ignore();
++}
++
++
++void Preview1Window::init()
++{
++ setWindowFlags(Qt::Widget);
++ setupUi(this);
++}
++
++
++/*-----------------------------------------------------------------------*/
++
++#include &quot;ui_sk_preview2.h&quot;
++
++class Preview2Window : public QMainWindow, private Ui::SkulpturePreview2
++{
++ public:
++ explicit Preview2Window(QWidget *parent = 0);
++
++ public:
++ virtual void closeEvent(QCloseEvent *e);
++
++ private:
++ void init();
++};
++
++
++Preview2Window::Preview2Window(QWidget *parent)
++ : QMainWindow(parent)
++{
++ init();
++}
++
++
++void Preview2Window::closeEvent(QCloseEvent *e)
++{
++ e-&gt;ignore();
++}
++
++
++void Preview2Window::init()
++{
++ setWindowFlags(Qt::Widget);
++ setupUi(this);
++}
++
++
++/*-----------------------------------------------------------------------*/
++
++class KThemePreview::Private
++{
++ public:
++ QWidget *q;
++ QMdiArea *area;
++
++ public:
++ void init();
++};
++
++
++KThemePreview::KThemePreview(QWidget *parent)
++ : QWidget(parent), d(new Private)
++{
++ d-&gt;q = this;
++}
++
++
++KThemePreview::~KThemePreview()
++{
++ delete d;
++}
++
++
++/*-----------------------------------------------------------------------*/
++
++void SkulptureStyleConfig::subWindowActivated(QMdiSubWindow *window)
++{
++ if (window) {
++ QWidget *parent = window-&gt;parentWidget();
++ if (parent) {
++ const QList&lt;QObject *&gt; children = parent-&gt;children();
++ foreach (QObject *child, children) {
++ QWidget *widget = qobject_cast&lt;QWidget *&gt;(child);
++ if (widget) {
++ widget-&gt;setWindowTitle(QString::fromUtf8(child == window ? &quot;Active Window&quot; : &quot;Inactive Window&quot;));
++ }
++ }
++ }
++ }
++}
++
++
++void SkulptureStyleConfig::updatePreview()
++{
++ QStyle *style = QStyleFactory::create(QString::fromUtf8(&quot;skulpture&quot;));
++ if (style) {
++ int index = style-&gt;metaObject()-&gt;indexOfMethod(&quot;skulpturePrivateMethod(SkulpturePrivateMethod,void*)&quot;);
++ if (index &gt;= 0) {
++ QUuid uuid = QUuid::createUuid();
++ QDir tempDir = QDir::temp();
++ // ### we may add a way to avoid the file completely.
++ QString fileName = QString::fromUtf8(&quot;skulpture-temp-settings-&quot;) + uuid.toString() + QString::fromUtf8(&quot;.ini&quot;);
++ QString absFileName = tempDir.absoluteFilePath(fileName);
++ {
++ QSettings s(absFileName, QSettings::IniFormat);
++ saveSettings(s);
++ // make visible in other process
++ s.sync();
++ }
++ SkMethodDataSetSettingsFileName data;
++ data.version = 1;
++ data.fileName = absFileName;
++
++ int result;
++ int id = SkulptureStyle::SPM_SetSettingsFileName;
++ void *dat = &amp;data;
++ void *param[] = {&amp;result, &amp;id, &amp;dat};
++ style-&gt;qt_metacall(QMetaObject::InvokeMetaMethod, index, param);
++
++ tempDir.remove(fileName);
++
++ QList&lt;QMdiSubWindow *&gt; windows = mdiArea-&gt;findChildren&lt;QMdiSubWindow *&gt;();
++ foreach (QMdiSubWindow *window, windows) {
++ window-&gt;setFocusPolicy(Qt::ClickFocus);
++ QList&lt;QWidget *&gt; widgets = window-&gt;widget()-&gt;findChildren&lt;QWidget *&gt;();
++ foreach (QWidget *widget, widgets) {
++ // TODO: only update widgets that have changes in settings
++ widget-&gt;setStyle(style);
++ widget-&gt;setFocusPolicy(Qt::ClickFocus);
++ }
++ }
++ }
++ }
++};
++
++
++/*-----------------------------------------------------------------------*/
++
++SkulptureStyleConfig::SkulptureStyleConfig(QWidget *parent)
++ : QWidget(parent)
++{
++ init();
++}
++
++
++void SkulptureStyleConfig::init()
++{
++ KGlobal::locale()-&gt;insertCatalog(QString::fromAscii(&quot;kstyle_skulpture_config&quot;));
++ setupUi(this);
++ mdiArea-&gt;setMinimumSize(QSize(500, 290));
++ mdiArea-&gt;setBackground(QColor(120, 120, 150));
++ load();
++// KConfig wm(QString::fromAscii(&quot;kwinskulpturerc&quot;), KConfig::FullConfig);
++// KConfigGroup group = wm.group(&quot;WM&quot;);
++// QColor activeBackground;
++// QString c = group.readEntry(&quot;activeBackground&quot;);
++// qDebug() &lt;&lt; &quot;activeBackground = &quot; &lt;&lt; c;
++ connect(this, SIGNAL(changed(bool)), this, SLOT(updatePreview()));
++ connect(mdiArea, SIGNAL(subWindowActivated(QMdiSubWindow *)), this, SLOT(subWindowActivated(QMdiSubWindow *)));
++ connect(cbAnimateProgressBars, SIGNAL(toggled(bool)), this, SLOT(updateChanged()));
++ connect(cbAllowScrollBarSliderToCoverArrows, SIGNAL(toggled(bool)), this, SLOT(updateChanged()));
++ connect(cbHideShortcutUnderlines, SIGNAL(toggled(bool)), this, SLOT(updateChanged()));
++#if 1
++#if 1
++ QMdiSubWindow *previewwindow2 = new QMdiSubWindow(mdiArea);
++// previewwindow2-&gt;setObjectName(QString::fromAscii(&quot;SkulpturePreviewWindow&quot;));
++// previewwindow2-&gt;setProperty(&quot;sk_kwin_activeBackground&quot;,
++ previewwindow2-&gt;setStyle(QStyleFactory::create(QString::fromUtf8(&quot;skulpture&quot;)));
++ previewwindow2-&gt;setWidget(new Preview2Window(previewwindow2));
++ previewwindow2-&gt;setGeometry(107, 7, 450, 245);
++#endif
++#if 1
++ QMdiSubWindow *previewwindow1 = new QMdiSubWindow(mdiArea);
++// previewwindow1-&gt;setObjectName(QString::fromAscii(&quot;SkulpturePreviewWindow&quot;));
++ previewwindow1-&gt;setStyle(QStyleFactory::create(QString::fromUtf8(&quot;skulpture&quot;)));
++ previewwindow1-&gt;setWidget(new Preview1Window(previewwindow1));
++ previewwindow1-&gt;setGeometry(7, 35, 450, 245);
++#endif
++ updatePreview();
++#else
++ mdiArea-&gt;hide();
++#endif
++}
++
++
++QSize SkulptureStyleConfig::sizeHint() const
++{
++ return QSize(570, 0);
++}
++
++
++SkulptureStyleConfig::~SkulptureStyleConfig()
++{
++ KGlobal::locale()-&gt;removeCatalog(QString::fromAscii(&quot;kstyle_skulpture_config&quot;));
++}
++
++
++/*-----------------------------------------------------------------------*/
++
++void SkulptureStyleConfig::loadSettings(QSettings &amp;s)
++{
++ savedAnimateProgressBars = s.value(QString::fromAscii(&quot;ProgressBar/AnimateProgressBars&quot;), true).toBool();
++ savedAllowScrollBarSliderToCoverArrows = s.value(QString::fromAscii(&quot;ScrollBar/AllowScrollBarSliderToCoverArrows&quot;), true).toBool();
++ savedHideShortcutUnderlines = s.value(QString::fromAscii(&quot;General/HideShortcutUnderlines&quot;), true).toBool();
++ apply();
++}
++
++
++void SkulptureStyleConfig::saveSettings(QSettings &amp;s)
++{
++ s.setValue(QString::fromAscii(&quot;ProgressBar/AnimateProgressBars&quot;), cbAnimateProgressBars-&gt;isChecked());
++ s.setValue(QString::fromAscii(&quot;ScrollBar/AllowScrollBarSliderToCoverArrows&quot;), cbAllowScrollBarSliderToCoverArrows-&gt;isChecked());
++ s.setValue(QString::fromAscii(&quot;General/HideShortcutUnderlines&quot;), cbHideShortcutUnderlines-&gt;isChecked());
++}
++
++
++void SkulptureStyleConfig::load()
++{
++ QSettings s(QSettings::IniFormat, QSettings::UserScope, QString::fromUtf8(&quot;SkulptureStyle&quot;), QString::fromUtf8(&quot;&quot;));
++ loadSettings(s);
++}
++
++
++void SkulptureStyleConfig::save()
++{
++ QSettings s(QSettings::IniFormat, QSettings::UserScope, QString::fromUtf8(&quot;SkulptureStyle&quot;), QString::fromUtf8(&quot;&quot;));
++ saveSettings(s);
++}
++
++
++void SkulptureStyleConfig::defaults()
++{
++ cbAnimateProgressBars-&gt;setChecked(true);
++ cbAllowScrollBarSliderToCoverArrows-&gt;setChecked(true);
++ cbHideShortcutUnderlines-&gt;setChecked(true);
++}
++
++
++/*-----------------------------------------------------------------------*/
++
++void SkulptureStyleConfig::apply()
++{
++ cbAnimateProgressBars-&gt;setChecked(savedAnimateProgressBars);
++ cbAllowScrollBarSliderToCoverArrows-&gt;setChecked(savedAllowScrollBarSliderToCoverArrows);
++ cbHideShortcutUnderlines-&gt;setChecked(savedHideShortcutUnderlines);
++}
++
++
++void SkulptureStyleConfig::updateChanged()
++{
++ if (cbAnimateProgressBars-&gt;isChecked() == savedAnimateProgressBars
++ &amp;&amp; cbAllowScrollBarSliderToCoverArrows-&gt;isChecked() == savedAllowScrollBarSliderToCoverArrows
++ &amp;&amp; cbHideShortcutUnderlines-&gt;isChecked() == savedHideShortcutUnderlines
++ ) {
++ emit changed(false);
++ } else {
++ emit changed(true);
++ }
++}
++
++
++/*-----------------------------------------------------------------------*/
++
++#include &quot;sk_config.moc&quot;
++
++
+
+
+Property changes on: theme/ia_ora-kde4/src/config/sk_config.cpp
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4srcconfigsk_configh">Added: theme/ia_ora-kde4/src/config/sk_config.h</a>
+===================================================================
+--- theme/ia_ora-kde4/src/config/sk_config.h (rev 0)
++++ theme/ia_ora-kde4/src/config/sk_config.h 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,155 @@
++/*
++ * sk_config.h
++ *
++ */
++
++#ifndef SKULPTURE_CONFIG_H
++#define SKULPTURE_CONFIG_H 1
++
++
++/*-----------------------------------------------------------------------*/
++
++#include &lt;QtGui/QWidget&gt;
++#include &quot;ui_sk_dialog.h&quot;
++class QSettings;
++class QMdiSubWindow;
++
++class SkulptureStyleConfig : public QWidget, private Ui::SkulptureStyleDialog
++{
++ Q_OBJECT
++
++ public:
++ explicit SkulptureStyleConfig(QWidget* parent = 0);
++ virtual ~SkulptureStyleConfig();
++
++ virtual QSize sizeHint() const;
++
++ Q_SIGNALS:
++ void changed(bool);
++
++ public Q_SLOTS:
++ void save();
++ void defaults();
++
++ protected:
++ void load();
++ void apply();
++ void saveSettings(QSettings &amp;settings);
++ void loadSettings(QSettings &amp;settings);
++
++ protected Q_SLOTS:
++ void updateChanged();
++ void updatePreview();
++
++ private Q_SLOTS:
++ void subWindowActivated(QMdiSubWindow *window);
++
++ private:
++ void init();
++
++ private:
++ bool savedAnimateProgressBars;
++ bool savedAllowScrollBarSliderToCoverArrows;
++ bool savedHideShortcutUnderlines;
++};
++
++
++/*-----------------------------------------------------------------------*/
++
++enum ThemeCategory {
++ Colors,
++ Fonts, // text attributes
++ Frames, // style of layout
++ Layout, // sizing, spacing
++ Decorations, // grips etc.
++ Gradients,
++ Accessibility,
++ Icons,
++ Effects, // animations, fading, light
++ Cursors,
++ Sounds,
++};
++
++
++/*-----------------------------------------------------------------------*/
++
++class KThemePreview : public QWidget
++{
++ Q_OBJECT
++
++ public:
++ enum ThemeRole { General, Fixed, Small, Toolbar, MainToolbar, Menu, Window, TaskBar, Desktop };
++
++ public:
++ explicit KThemePreview(QWidget *parent = 0);
++ virtual ~KThemePreview();
++
++ public:
++ using QWidget::setFont;
++ void setFont(ThemeRole role, const QFont &amp;font);
++ // TODO font settings, such as antialiasing and hinting
++
++ void setIconSize(ThemeRole role, const QSize &amp;size);
++ void setIconTheme(const QString &amp;iconTheme);
++ // TODO icon effects, icon animation, double size
++
++ void setWindowDecoration(const QString &amp;windowDecoration);
++ // TODO window buttons, window theme settings
++
++ // setStyle(QStyle *);
++ void setSkulpturePrivateSettings(QSettings &amp;s);
++ // TODO style effects, toolbar options
++
++ protected:
++ void addWindow(QWidget *window);
++ void addPage(QWidget *widget);
++
++ void removeWindow(QWidget *window);
++ void removePage(QWidget *page);
++
++ private:
++ class Private;
++ Private * const d;
++};
++
++
++/*-----------------------------------------------------------------------*/
++
++#include &lt;QtGui/QStyle&gt;
++
++struct SkMethodData
++{
++ int version;
++};
++
++
++struct SkMethodDataSetSettingsFileName : public SkMethodData
++{
++ // in version 1
++ QString fileName;
++};
++
++
++class SkulptureStyle : public QStyle
++{
++ Q_OBJECT
++
++ public:
++ // internal, reserved for future use
++ enum SkulpturePrivateMethod {
++ SPM_SupportedMethods = 0,
++ SPM_SetSettingsFileName = 1,
++ };
++
++ public Q_SLOTS:
++ int skulpturePrivateMethod(SkulpturePrivateMethod /*id*/, void */*data*/ = 0) {
++ return 0;
++ }
++};
++
++
++/*-----------------------------------------------------------------------*/
++
++#endif
++
++
+
+
+Property changes on: theme/ia_ora-kde4/src/config/sk_config.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4srcconfigsk_dialogui">Added: theme/ia_ora-kde4/src/config/sk_dialog.ui</a>
+===================================================================
+--- theme/ia_ora-kde4/src/config/sk_dialog.ui (rev 0)
++++ theme/ia_ora-kde4/src/config/sk_dialog.ui 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,90 @@
++&lt;ui version=&quot;4.0&quot; &gt;
++ &lt;class&gt;SkulptureStyleDialog&lt;/class&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;SkulptureStyleDialog&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;0&lt;/y&gt;
++ &lt;width&gt;357&lt;/width&gt;
++ &lt;height&gt;386&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;layout class=&quot;QVBoxLayout&quot; name=&quot;verticalLayout&quot; &gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QMdiArea&quot; name=&quot;mdiArea&quot; &gt;
++ &lt;property name=&quot;frameShape&quot; &gt;
++ &lt;enum&gt;QFrame::StyledPanel&lt;/enum&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;frameShadow&quot; &gt;
++ &lt;enum&gt;QFrame::Sunken&lt;/enum&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QGroupBox&quot; name=&quot;groupBox&quot; &gt;
++ &lt;property name=&quot;title&quot; &gt;
++ &lt;string&gt;General&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;layout class=&quot;QVBoxLayout&quot; &gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QCheckBox&quot; name=&quot;cbAnimateProgressBars&quot; &gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Animate Progress Bars&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QCheckBox&quot; name=&quot;cbAllowScrollBarSliderToCoverArrows&quot; &gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Allow Scroll Bar Handle to Cover Arrows&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QCheckBox&quot; name=&quot;cbHideShortcutUnderlines&quot; &gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Hide Shortcut Underlines&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;spacer&gt;
++ &lt;property name=&quot;orientation&quot; &gt;
++ &lt;enum&gt;Qt::Vertical&lt;/enum&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;sizeHint&quot; stdset=&quot;0&quot; &gt;
++ &lt;size&gt;
++ &lt;width&gt;20&lt;/width&gt;
++ &lt;height&gt;0&lt;/height&gt;
++ &lt;/size&gt;
++ &lt;/property&gt;
++ &lt;/spacer&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;zorder&gt;groupBox&lt;/zorder&gt;
++ &lt;zorder&gt;mdiArea&lt;/zorder&gt;
++ &lt;zorder&gt;cbAnimateProgressBars&lt;/zorder&gt;
++ &lt;/widget&gt;
++ &lt;resources/&gt;
++ &lt;connections/&gt;
++ &lt;designerdata&gt;
++ &lt;property name=&quot;gridDeltaX&quot; &gt;
++ &lt;number&gt;10&lt;/number&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;gridDeltaY&quot; &gt;
++ &lt;number&gt;10&lt;/number&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;gridSnapX&quot; &gt;
++ &lt;bool&gt;true&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;gridSnapY&quot; &gt;
++ &lt;bool&gt;true&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;gridVisible&quot; &gt;
++ &lt;bool&gt;false&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;/designerdata&gt;
++&lt;/ui&gt;
+
+<a id="themeia_orakde4srcconfigsk_preview1ui">Added: theme/ia_ora-kde4/src/config/sk_preview1.ui</a>
+===================================================================
+--- theme/ia_ora-kde4/src/config/sk_preview1.ui (rev 0)
++++ theme/ia_ora-kde4/src/config/sk_preview1.ui 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,671 @@
++&lt;ui version=&quot;4.0&quot; &gt;
++ &lt;class&gt;SkulpturePreview1&lt;/class&gt;
++ &lt;widget class=&quot;QDialog&quot; name=&quot;SkulpturePreview1&quot; &gt;
++ &lt;layout class=&quot;QVBoxLayout&quot; name=&quot;verticalLayout_9&quot; &gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QSplitter&quot; name=&quot;splitter&quot; &gt;
++ &lt;property name=&quot;orientation&quot; &gt;
++ &lt;enum&gt;Qt::Horizontal&lt;/enum&gt;
++ &lt;/property&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;layoutWidget&quot; &gt;
++ &lt;layout class=&quot;QVBoxLayout&quot; name=&quot;verticalLayout_7&quot; &gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QPushButton&quot; name=&quot;pushButton_2&quot; &gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Show Disabled&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;checkable&quot; &gt;
++ &lt;bool&gt;true&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;checked&quot; &gt;
++ &lt;bool&gt;false&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;layout class=&quot;QVBoxLayout&quot; name=&quot;verticalLayout_4&quot; &gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QGroupBox&quot; name=&quot;groupBox&quot; &gt;
++ &lt;property name=&quot;title&quot; &gt;
++ &lt;string&gt;Group&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;layout class=&quot;QVBoxLayout&quot; name=&quot;verticalLayout&quot; &gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QCheckBox&quot; name=&quot;checkBox&quot; &gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Check Box&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;checked&quot; &gt;
++ &lt;bool&gt;true&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QRadioButton&quot; name=&quot;radioButton_2&quot; &gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Radio Button&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;checked&quot; &gt;
++ &lt;bool&gt;true&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QRadioButton&quot; name=&quot;radioButton&quot; &gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Radio Button&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;spacer name=&quot;verticalSpacer&quot; &gt;
++ &lt;property name=&quot;orientation&quot; &gt;
++ &lt;enum&gt;Qt::Vertical&lt;/enum&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;sizeType&quot; &gt;
++ &lt;enum&gt;QSizePolicy::MinimumExpanding&lt;/enum&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;sizeHint&quot; stdset=&quot;0&quot; &gt;
++ &lt;size&gt;
++ &lt;width&gt;20&lt;/width&gt;
++ &lt;height&gt;0&lt;/height&gt;
++ &lt;/size&gt;
++ &lt;/property&gt;
++ &lt;/spacer&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QPushButton&quot; name=&quot;pushButton&quot; &gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Push Button&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QTabWidget&quot; name=&quot;Text&quot; &gt;
++ &lt;property name=&quot;currentIndex&quot; &gt;
++ &lt;number&gt;0&lt;/number&gt;
++ &lt;/property&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;tab&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;0&lt;/y&gt;
++ &lt;width&gt;272&lt;/width&gt;
++ &lt;height&gt;210&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;title&quot; &gt;
++ &lt;string&gt;Widgets&lt;/string&gt;
++ &lt;/attribute&gt;
++ &lt;layout class=&quot;QVBoxLayout&quot; name=&quot;verticalLayout_6&quot; &gt;
++ &lt;item&gt;
++ &lt;layout class=&quot;QHBoxLayout&quot; name=&quot;horizontalLayout_3&quot; &gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;KLineEdit&quot; name=&quot;klineedit&quot; &gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Text Line Edit&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;clickMessage&quot; &gt;
++ &lt;string&gt;LineEdit (empty)&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;showClearButton&quot; stdset=&quot;0&quot; &gt;
++ &lt;bool&gt;true&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QComboBox&quot; name=&quot;comboBox&quot; &gt;
++ &lt;item&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Combo Box&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Element&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/item&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;layout class=&quot;QHBoxLayout&quot; name=&quot;horizontalLayout_2&quot; &gt;
++ &lt;item&gt;
++ &lt;layout class=&quot;QVBoxLayout&quot; name=&quot;verticalLayout_5&quot; &gt;
++ &lt;item&gt;
++ &lt;layout class=&quot;QHBoxLayout&quot; name=&quot;horizontalLayout&quot; &gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QSpinBox&quot; name=&quot;spinBox&quot; &gt;
++ &lt;property name=&quot;maximum&quot; &gt;
++ &lt;number&gt;100&lt;/number&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;value&quot; &gt;
++ &lt;number&gt;70&lt;/number&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QLCDNumber&quot; name=&quot;lcdNumber&quot; &gt;
++ &lt;property name=&quot;intValue&quot; stdset=&quot;0&quot; &gt;
++ &lt;number&gt;70&lt;/number&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QSlider&quot; name=&quot;horizontalSlider&quot; &gt;
++ &lt;property name=&quot;maximum&quot; &gt;
++ &lt;number&gt;100&lt;/number&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;value&quot; &gt;
++ &lt;number&gt;70&lt;/number&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;orientation&quot; &gt;
++ &lt;enum&gt;Qt::Horizontal&lt;/enum&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QDial&quot; name=&quot;dial&quot; &gt;
++ &lt;property name=&quot;sizePolicy&quot; &gt;
++ &lt;sizepolicy vsizetype=&quot;Fixed&quot; hsizetype=&quot;Fixed&quot; &gt;
++ &lt;horstretch&gt;0&lt;/horstretch&gt;
++ &lt;verstretch&gt;0&lt;/verstretch&gt;
++ &lt;/sizepolicy&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;minimumSize&quot; &gt;
++ &lt;size&gt;
++ &lt;width&gt;50&lt;/width&gt;
++ &lt;height&gt;50&lt;/height&gt;
++ &lt;/size&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;maximumSize&quot; &gt;
++ &lt;size&gt;
++ &lt;width&gt;50&lt;/width&gt;
++ &lt;height&gt;50&lt;/height&gt;
++ &lt;/size&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;maximum&quot; &gt;
++ &lt;number&gt;100&lt;/number&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;value&quot; &gt;
++ &lt;number&gt;70&lt;/number&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;notchesVisible&quot; &gt;
++ &lt;bool&gt;true&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;spacer name=&quot;verticalSpacer_2&quot; &gt;
++ &lt;property name=&quot;orientation&quot; &gt;
++ &lt;enum&gt;Qt::Vertical&lt;/enum&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;sizeType&quot; &gt;
++ &lt;enum&gt;QSizePolicy::MinimumExpanding&lt;/enum&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;sizeHint&quot; stdset=&quot;0&quot; &gt;
++ &lt;size&gt;
++ &lt;width&gt;20&lt;/width&gt;
++ &lt;height&gt;0&lt;/height&gt;
++ &lt;/size&gt;
++ &lt;/property&gt;
++ &lt;/spacer&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;Line&quot; name=&quot;line&quot; &gt;
++ &lt;property name=&quot;orientation&quot; &gt;
++ &lt;enum&gt;Qt::Horizontal&lt;/enum&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QProgressBar&quot; name=&quot;progressBar&quot; &gt;
++ &lt;property name=&quot;value&quot; &gt;
++ &lt;number&gt;70&lt;/number&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;Seite_2&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;0&lt;/y&gt;
++ &lt;width&gt;272&lt;/width&gt;
++ &lt;height&gt;210&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;title&quot; &gt;
++ &lt;string&gt;Text&lt;/string&gt;
++ &lt;/attribute&gt;
++ &lt;layout class=&quot;QVBoxLayout&quot; name=&quot;verticalLayout_8&quot; &gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;KTextEdit&quot; name=&quot;ktextedit&quot; &gt;
++ &lt;property name=&quot;html&quot; &gt;
++ &lt;string&gt;&amp;lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
++&amp;lt;html&gt;&amp;lt;head&gt;&amp;lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&amp;lt;style type=&quot;text/css&quot;&gt;
++p, li { white-space: pre-wrap; }
++&amp;lt;/style&gt;&amp;lt;/head&gt;&amp;lt;body style=&quot; font-family:'Sans Serif'; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
++&amp;lt;table border=&quot;0&quot; style=&quot;-qt-table-type: root; margin-top:4px; margin-bottom:4px; margin-left:4px; margin-right:4px;&quot;&gt;
++&amp;lt;tr&gt;
++&amp;lt;td style=&quot;border: none;&quot;&gt;
++&amp;lt;p align=&quot;center&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&amp;lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;Skulpture&amp;lt;/span&gt;&amp;lt;/p&gt;
++&amp;lt;p align=&quot;center&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;&quot;&gt;&amp;lt;span style=&quot; font-weight:400;&quot;&gt;Version 0.1.2&amp;lt;/span&gt;&amp;lt;/p&gt;
++&amp;lt;p align=&quot;center&quot; style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&amp;lt;/p&gt;
++&amp;lt;p align=&quot;center&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&amp;lt;a href=&quot;http://skulpture.maxiom.de/&quot;&gt;&amp;lt;span style=&quot; text-decoration: underline; color:#0057ae;&quot;&gt;http://skulpture.maxiom.de/&amp;lt;/span&gt;&amp;lt;/a&gt;&amp;lt;/p&gt;
++&amp;lt;p align=&quot;center&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&amp;lt;span style=&quot; font-size:8pt;&quot;&gt;Copyright © 2007, 2008 Christoph Feck&amp;lt;/span&gt;&amp;lt;/p&gt;
++&amp;lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&amp;lt;/p&gt;&amp;lt;/td&gt;&amp;lt;/tr&gt;&amp;lt;/table&gt;&amp;lt;/body&gt;&amp;lt;/html&gt;&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;tab_2&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;0&lt;/y&gt;
++ &lt;width&gt;272&lt;/width&gt;
++ &lt;height&gt;210&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;title&quot; &gt;
++ &lt;string&gt;Tree&lt;/string&gt;
++ &lt;/attribute&gt;
++ &lt;layout class=&quot;QVBoxLayout&quot; name=&quot;verticalLayout_3&quot; &gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QTreeWidget&quot; name=&quot;treeWidget&quot; &gt;
++ &lt;column&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Column 1&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/column&gt;
++ &lt;column&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Column 2&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/column&gt;
++ &lt;item&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Element&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;(expandable)&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;item&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Element&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Line 1&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Element&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Line 2&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Element&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Line 3&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/item&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Element&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;(not expandable)&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/item&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;Seite&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;0&lt;/y&gt;
++ &lt;width&gt;272&lt;/width&gt;
++ &lt;height&gt;210&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;title&quot; &gt;
++ &lt;string&gt;Table&lt;/string&gt;
++ &lt;/attribute&gt;
++ &lt;layout class=&quot;QVBoxLayout&quot; name=&quot;verticalLayout_2&quot; &gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QTableWidget&quot; name=&quot;tableWidget&quot; &gt;
++ &lt;row/&gt;
++ &lt;row/&gt;
++ &lt;row/&gt;
++ &lt;row/&gt;
++ &lt;row/&gt;
++ &lt;row/&gt;
++ &lt;row/&gt;
++ &lt;row/&gt;
++ &lt;row/&gt;
++ &lt;row/&gt;
++ &lt;column&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Column 1&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/column&gt;
++ &lt;column&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Column 2&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/column&gt;
++ &lt;column&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Column 3&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/column&gt;
++ &lt;column&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Column 4&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/column&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/widget&gt;
++ &lt;/widget&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/widget&gt;
++ &lt;customwidgets&gt;
++ &lt;customwidget&gt;
++ &lt;class&gt;KLineEdit&lt;/class&gt;
++ &lt;extends&gt;QLineEdit&lt;/extends&gt;
++ &lt;header&gt;klineedit.h&lt;/header&gt;
++ &lt;/customwidget&gt;
++ &lt;customwidget&gt;
++ &lt;class&gt;KTextEdit&lt;/class&gt;
++ &lt;extends&gt;QTextEdit&lt;/extends&gt;
++ &lt;header&gt;ktextedit.h&lt;/header&gt;
++ &lt;/customwidget&gt;
++ &lt;/customwidgets&gt;
++ &lt;resources/&gt;
++ &lt;connections&gt;
++ &lt;connection&gt;
++ &lt;sender&gt;dial&lt;/sender&gt;
++ &lt;signal&gt;valueChanged(int)&lt;/signal&gt;
++ &lt;receiver&gt;progressBar&lt;/receiver&gt;
++ &lt;slot&gt;setValue(int)&lt;/slot&gt;
++ &lt;hints&gt;
++ &lt;hint type=&quot;sourcelabel&quot; &gt;
++ &lt;x&gt;375&lt;/x&gt;
++ &lt;y&gt;126&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;hint type=&quot;destinationlabel&quot; &gt;
++ &lt;x&gt;337&lt;/x&gt;
++ &lt;y&gt;219&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;/hints&gt;
++ &lt;/connection&gt;
++ &lt;connection&gt;
++ &lt;sender&gt;dial&lt;/sender&gt;
++ &lt;signal&gt;valueChanged(int)&lt;/signal&gt;
++ &lt;receiver&gt;lcdNumber&lt;/receiver&gt;
++ &lt;slot&gt;display(int)&lt;/slot&gt;
++ &lt;hints&gt;
++ &lt;hint type=&quot;sourcelabel&quot; &gt;
++ &lt;x&gt;374&lt;/x&gt;
++ &lt;y&gt;131&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;hint type=&quot;destinationlabel&quot; &gt;
++ &lt;x&gt;287&lt;/x&gt;
++ &lt;y&gt;133&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;/hints&gt;
++ &lt;/connection&gt;
++ &lt;connection&gt;
++ &lt;sender&gt;dial&lt;/sender&gt;
++ &lt;signal&gt;valueChanged(int)&lt;/signal&gt;
++ &lt;receiver&gt;spinBox&lt;/receiver&gt;
++ &lt;slot&gt;setValue(int)&lt;/slot&gt;
++ &lt;hints&gt;
++ &lt;hint type=&quot;sourcelabel&quot; &gt;
++ &lt;x&gt;375&lt;/x&gt;
++ &lt;y&gt;111&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;hint type=&quot;destinationlabel&quot; &gt;
++ &lt;x&gt;302&lt;/x&gt;
++ &lt;y&gt;106&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;/hints&gt;
++ &lt;/connection&gt;
++ &lt;connection&gt;
++ &lt;sender&gt;spinBox&lt;/sender&gt;
++ &lt;signal&gt;valueChanged(int)&lt;/signal&gt;
++ &lt;receiver&gt;progressBar&lt;/receiver&gt;
++ &lt;slot&gt;setValue(int)&lt;/slot&gt;
++ &lt;hints&gt;
++ &lt;hint type=&quot;sourcelabel&quot; &gt;
++ &lt;x&gt;245&lt;/x&gt;
++ &lt;y&gt;110&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;hint type=&quot;destinationlabel&quot; &gt;
++ &lt;x&gt;308&lt;/x&gt;
++ &lt;y&gt;220&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;/hints&gt;
++ &lt;/connection&gt;
++ &lt;connection&gt;
++ &lt;sender&gt;spinBox&lt;/sender&gt;
++ &lt;signal&gt;valueChanged(int)&lt;/signal&gt;
++ &lt;receiver&gt;lcdNumber&lt;/receiver&gt;
++ &lt;slot&gt;display(int)&lt;/slot&gt;
++ &lt;hints&gt;
++ &lt;hint type=&quot;sourcelabel&quot; &gt;
++ &lt;x&gt;339&lt;/x&gt;
++ &lt;y&gt;121&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;hint type=&quot;destinationlabel&quot; &gt;
++ &lt;x&gt;339&lt;/x&gt;
++ &lt;y&gt;139&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;/hints&gt;
++ &lt;/connection&gt;
++ &lt;connection&gt;
++ &lt;sender&gt;spinBox&lt;/sender&gt;
++ &lt;signal&gt;valueChanged(int)&lt;/signal&gt;
++ &lt;receiver&gt;dial&lt;/receiver&gt;
++ &lt;slot&gt;setValue(int)&lt;/slot&gt;
++ &lt;hints&gt;
++ &lt;hint type=&quot;sourcelabel&quot; &gt;
++ &lt;x&gt;236&lt;/x&gt;
++ &lt;y&gt;108&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;hint type=&quot;destinationlabel&quot; &gt;
++ &lt;x&gt;379&lt;/x&gt;
++ &lt;y&gt;122&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;/hints&gt;
++ &lt;/connection&gt;
++ &lt;connection&gt;
++ &lt;sender&gt;horizontalSlider&lt;/sender&gt;
++ &lt;signal&gt;valueChanged(int)&lt;/signal&gt;
++ &lt;receiver&gt;progressBar&lt;/receiver&gt;
++ &lt;slot&gt;setValue(int)&lt;/slot&gt;
++ &lt;hints&gt;
++ &lt;hint type=&quot;sourcelabel&quot; &gt;
++ &lt;x&gt;323&lt;/x&gt;
++ &lt;y&gt;79&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;hint type=&quot;destinationlabel&quot; &gt;
++ &lt;x&gt;380&lt;/x&gt;
++ &lt;y&gt;223&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;/hints&gt;
++ &lt;/connection&gt;
++ &lt;connection&gt;
++ &lt;sender&gt;horizontalSlider&lt;/sender&gt;
++ &lt;signal&gt;valueChanged(int)&lt;/signal&gt;
++ &lt;receiver&gt;lcdNumber&lt;/receiver&gt;
++ &lt;slot&gt;display(int)&lt;/slot&gt;
++ &lt;hints&gt;
++ &lt;hint type=&quot;sourcelabel&quot; &gt;
++ &lt;x&gt;359&lt;/x&gt;
++ &lt;y&gt;82&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;hint type=&quot;destinationlabel&quot; &gt;
++ &lt;x&gt;256&lt;/x&gt;
++ &lt;y&gt;136&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;/hints&gt;
++ &lt;/connection&gt;
++ &lt;connection&gt;
++ &lt;sender&gt;horizontalSlider&lt;/sender&gt;
++ &lt;signal&gt;valueChanged(int)&lt;/signal&gt;
++ &lt;receiver&gt;spinBox&lt;/receiver&gt;
++ &lt;slot&gt;setValue(int)&lt;/slot&gt;
++ &lt;hints&gt;
++ &lt;hint type=&quot;sourcelabel&quot; &gt;
++ &lt;x&gt;285&lt;/x&gt;
++ &lt;y&gt;78&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;hint type=&quot;destinationlabel&quot; &gt;
++ &lt;x&gt;260&lt;/x&gt;
++ &lt;y&gt;107&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;/hints&gt;
++ &lt;/connection&gt;
++ &lt;connection&gt;
++ &lt;sender&gt;horizontalSlider&lt;/sender&gt;
++ &lt;signal&gt;valueChanged(int)&lt;/signal&gt;
++ &lt;receiver&gt;dial&lt;/receiver&gt;
++ &lt;slot&gt;setValue(int)&lt;/slot&gt;
++ &lt;hints&gt;
++ &lt;hint type=&quot;sourcelabel&quot; &gt;
++ &lt;x&gt;300&lt;/x&gt;
++ &lt;y&gt;80&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;hint type=&quot;destinationlabel&quot; &gt;
++ &lt;x&gt;380&lt;/x&gt;
++ &lt;y&gt;123&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;/hints&gt;
++ &lt;/connection&gt;
++ &lt;connection&gt;
++ &lt;sender&gt;pushButton_2&lt;/sender&gt;
++ &lt;signal&gt;toggled(bool)&lt;/signal&gt;
++ &lt;receiver&gt;groupBox&lt;/receiver&gt;
++ &lt;slot&gt;setDisabled(bool)&lt;/slot&gt;
++ &lt;hints&gt;
++ &lt;hint type=&quot;sourcelabel&quot; &gt;
++ &lt;x&gt;106&lt;/x&gt;
++ &lt;y&gt;24&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;hint type=&quot;destinationlabel&quot; &gt;
++ &lt;x&gt;104&lt;/x&gt;
++ &lt;y&gt;43&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;/hints&gt;
++ &lt;/connection&gt;
++ &lt;connection&gt;
++ &lt;sender&gt;pushButton_2&lt;/sender&gt;
++ &lt;signal&gt;toggled(bool)&lt;/signal&gt;
++ &lt;receiver&gt;Text&lt;/receiver&gt;
++ &lt;slot&gt;setDisabled(bool)&lt;/slot&gt;
++ &lt;hints&gt;
++ &lt;hint type=&quot;sourcelabel&quot; &gt;
++ &lt;x&gt;117&lt;/x&gt;
++ &lt;y&gt;26&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;hint type=&quot;destinationlabel&quot; &gt;
++ &lt;x&gt;137&lt;/x&gt;
++ &lt;y&gt;40&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;/hints&gt;
++ &lt;/connection&gt;
++ &lt;connection&gt;
++ &lt;sender&gt;pushButton_2&lt;/sender&gt;
++ &lt;signal&gt;toggled(bool)&lt;/signal&gt;
++ &lt;receiver&gt;comboBox&lt;/receiver&gt;
++ &lt;slot&gt;setDisabled(bool)&lt;/slot&gt;
++ &lt;hints&gt;
++ &lt;hint type=&quot;sourcelabel&quot; &gt;
++ &lt;x&gt;83&lt;/x&gt;
++ &lt;y&gt;25&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;hint type=&quot;destinationlabel&quot; &gt;
++ &lt;x&gt;93&lt;/x&gt;
++ &lt;y&gt;191&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;/hints&gt;
++ &lt;/connection&gt;
++ &lt;connection&gt;
++ &lt;sender&gt;pushButton_2&lt;/sender&gt;
++ &lt;signal&gt;toggled(bool)&lt;/signal&gt;
++ &lt;receiver&gt;pushButton&lt;/receiver&gt;
++ &lt;slot&gt;setDisabled(bool)&lt;/slot&gt;
++ &lt;hints&gt;
++ &lt;hint type=&quot;sourcelabel&quot; &gt;
++ &lt;x&gt;66&lt;/x&gt;
++ &lt;y&gt;23&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;hint type=&quot;destinationlabel&quot; &gt;
++ &lt;x&gt;80&lt;/x&gt;
++ &lt;y&gt;225&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;/hints&gt;
++ &lt;/connection&gt;
++ &lt;connection&gt;
++ &lt;sender&gt;dial&lt;/sender&gt;
++ &lt;signal&gt;valueChanged(int)&lt;/signal&gt;
++ &lt;receiver&gt;horizontalSlider&lt;/receiver&gt;
++ &lt;slot&gt;setValue(int)&lt;/slot&gt;
++ &lt;hints&gt;
++ &lt;hint type=&quot;sourcelabel&quot; &gt;
++ &lt;x&gt;376&lt;/x&gt;
++ &lt;y&gt;135&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;hint type=&quot;destinationlabel&quot; &gt;
++ &lt;x&gt;374&lt;/x&gt;
++ &lt;y&gt;83&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;/hints&gt;
++ &lt;/connection&gt;
++ &lt;connection&gt;
++ &lt;sender&gt;spinBox&lt;/sender&gt;
++ &lt;signal&gt;valueChanged(int)&lt;/signal&gt;
++ &lt;receiver&gt;horizontalSlider&lt;/receiver&gt;
++ &lt;slot&gt;setValue(int)&lt;/slot&gt;
++ &lt;hints&gt;
++ &lt;hint type=&quot;sourcelabel&quot; &gt;
++ &lt;x&gt;216&lt;/x&gt;
++ &lt;y&gt;108&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;hint type=&quot;destinationlabel&quot; &gt;
++ &lt;x&gt;225&lt;/x&gt;
++ &lt;y&gt;83&lt;/y&gt;
++ &lt;/hint&gt;
++ &lt;/hints&gt;
++ &lt;/connection&gt;
++ &lt;/connections&gt;
++&lt;/ui&gt;
+
+<a id="themeia_orakde4srcconfigsk_preview2qrc">Added: theme/ia_ora-kde4/src/config/sk_preview2.qrc</a>
+===================================================================
+--- theme/ia_ora-kde4/src/config/sk_preview2.qrc (rev 0)
++++ theme/ia_ora-kde4/src/config/sk_preview2.qrc 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,12 @@
++&lt;RCC&gt;
++ &lt;qresource prefix=&quot;skpreview2&quot; &gt;
++ &lt;file&gt;images/view-refresh.png&lt;/file&gt;
++ &lt;file&gt;images/go-previous.png&lt;/file&gt;
++ &lt;file&gt;images/go-next.png&lt;/file&gt;
++ &lt;file&gt;images/document-new.png&lt;/file&gt;
++ &lt;file&gt;images/document-open.png&lt;/file&gt;
++ &lt;file&gt;images/edit-copy.png&lt;/file&gt;
++ &lt;file&gt;images/edit-cut.png&lt;/file&gt;
++ &lt;file&gt;images/edit-paste.png&lt;/file&gt;
++ &lt;/qresource&gt;
++&lt;/RCC&gt;
+
+<a id="themeia_orakde4srcconfigsk_preview2ui">Added: theme/ia_ora-kde4/src/config/sk_preview2.ui</a>
+===================================================================
+--- theme/ia_ora-kde4/src/config/sk_preview2.ui (rev 0)
++++ theme/ia_ora-kde4/src/config/sk_preview2.ui 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,274 @@
++&lt;ui version=&quot;4.0&quot; &gt;
++ &lt;class&gt;SkulpturePreview2&lt;/class&gt;
++ &lt;widget class=&quot;QMainWindow&quot; name=&quot;SkulpturePreview2&quot; &gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;centralwidget&quot; &gt;
++ &lt;layout class=&quot;QVBoxLayout&quot; name=&quot;verticalLayout&quot; &gt;
++ &lt;property name=&quot;margin&quot; &gt;
++ &lt;number&gt;0&lt;/number&gt;
++ &lt;/property&gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QTextBrowser&quot; name=&quot;textBrowser&quot; &gt;
++ &lt;property name=&quot;html&quot; &gt;
++ &lt;string&gt;&amp;lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
++&amp;lt;html&gt;&amp;lt;head&gt;&amp;lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&amp;lt;style type=&quot;text/css&quot;&gt;
++p, li { white-space: pre-wrap; }
++&amp;lt;/style&gt;&amp;lt;/head&gt;&amp;lt;body style=&quot; font-family:'Sans Serif'; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
++&amp;lt;table border=&quot;0&quot; style=&quot;-qt-table-type: root; margin-top:16px; margin-bottom:16px; margin-left:16px; margin-right:16px;&quot;&gt;
++&amp;lt;tr&gt;
++&amp;lt;td style=&quot;border: none;&quot;&gt;
++&amp;lt;p align=&quot;center&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&amp;lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;Skulpture&amp;lt;/span&gt;&amp;lt;/p&gt;
++&amp;lt;p align=&quot;center&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;&quot;&gt;&amp;lt;span style=&quot; font-weight:400;&quot;&gt;Version 0.1.2&amp;lt;/span&gt;&amp;lt;/p&gt;
++&amp;lt;p align=&quot;center&quot; style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&amp;lt;/p&gt;
++&amp;lt;p align=&quot;center&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&amp;lt;a href=&quot;http://skulpture.maxiom.de/&quot;&gt;&amp;lt;span style=&quot; text-decoration: underline; color:#0057ae;&quot;&gt;http://skulpture.maxiom.de/&amp;lt;/span&gt;&amp;lt;/a&gt;&amp;lt;/p&gt;
++&amp;lt;p align=&quot;center&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&amp;lt;span style=&quot; font-size:8pt;&quot;&gt;Copyright © 2007, 2008 Christoph Feck&amp;lt;/span&gt;&amp;lt;/p&gt;
++&amp;lt;p align=&quot;center&quot; style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;&quot;&gt;&amp;lt;/p&gt;
++&amp;lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;&quot;&gt;&amp;lt;span style=&quot; font-size:10pt;&quot;&gt;This is a demonstration window only&amp;lt;/span&gt;&amp;lt;/p&gt;
++&amp;lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&amp;lt;/p&gt;
++&amp;lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Lorem ipsum dolor sit amet, consectetuer sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata
+ sanctus est Lorem ipsum dolor sit amet.&amp;lt;/p&gt;
++&amp;lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&amp;lt;/p&gt;
++&amp;lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.&amp;lt;/p&gt;
++&amp;lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&amp;lt;/p&gt;
++&amp;lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.&amp;lt;/p&gt;
++&amp;lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&amp;lt;/p&gt;&amp;lt;/td&gt;&amp;lt;/tr&gt;&amp;lt;/table&gt;&amp;lt;/body&gt;&amp;lt;/html&gt;&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;openExternalLinks&quot; &gt;
++ &lt;bool&gt;true&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QMenuBar&quot; name=&quot;menubar&quot; &gt;
++ &lt;widget class=&quot;QMenu&quot; name=&quot;menu_File&quot; &gt;
++ &lt;property name=&quot;title&quot; &gt;
++ &lt;string&gt;&amp;amp;File&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;addaction name=&quot;action_New&quot; /&gt;
++ &lt;addaction name=&quot;action_Open&quot; /&gt;
++ &lt;addaction name=&quot;separator&quot; /&gt;
++ &lt;addaction name=&quot;action_Reload&quot; /&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QMenu&quot; name=&quot;menu_Edit&quot; &gt;
++ &lt;property name=&quot;title&quot; &gt;
++ &lt;string&gt;&amp;amp;Edit&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;addaction name=&quot;action_Cut&quot; /&gt;
++ &lt;addaction name=&quot;action_Copy&quot; /&gt;
++ &lt;addaction name=&quot;action_Paste&quot; /&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QMenu&quot; name=&quot;menu_Settings&quot; &gt;
++ &lt;property name=&quot;title&quot; &gt;
++ &lt;string&gt;&amp;amp;Settings&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;addaction name=&quot;actionConfigure&quot; /&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QMenu&quot; name=&quot;menu_Help&quot; &gt;
++ &lt;property name=&quot;title&quot; &gt;
++ &lt;string&gt;&amp;amp;Help&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;addaction name=&quot;actionHelp_Contents&quot; /&gt;
++ &lt;/widget&gt;
++ &lt;addaction name=&quot;menu_File&quot; /&gt;
++ &lt;addaction name=&quot;menu_Edit&quot; /&gt;
++ &lt;addaction name=&quot;menu_Settings&quot; /&gt;
++ &lt;addaction name=&quot;menu_Help&quot; /&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QStatusBar&quot; name=&quot;statusbar&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;242&lt;/y&gt;
++ &lt;width&gt;256&lt;/width&gt;
++ &lt;height&gt;21&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QToolBar&quot; name=&quot;toolBar&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;23&lt;/y&gt;
++ &lt;width&gt;146&lt;/width&gt;
++ &lt;height&gt;27&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;windowTitle&quot; &gt;
++ &lt;string&gt;toolBar&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;toolBarArea&quot; &gt;
++ &lt;enum&gt;TopToolBarArea&lt;/enum&gt;
++ &lt;/attribute&gt;
++ &lt;attribute name=&quot;toolBarBreak&quot; &gt;
++ &lt;bool&gt;false&lt;/bool&gt;
++ &lt;/attribute&gt;
++ &lt;addaction name=&quot;actionNew&quot; /&gt;
++ &lt;addaction name=&quot;actionOpen&quot; /&gt;
++ &lt;addaction name=&quot;separator&quot; /&gt;
++ &lt;addaction name=&quot;actionCut&quot; /&gt;
++ &lt;addaction name=&quot;actionCopy&quot; /&gt;
++ &lt;addaction name=&quot;actionPaste&quot; /&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QToolBar&quot; name=&quot;toolBar_2&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;146&lt;/x&gt;
++ &lt;y&gt;23&lt;/y&gt;
++ &lt;width&gt;110&lt;/width&gt;
++ &lt;height&gt;27&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;windowTitle&quot; &gt;
++ &lt;string&gt;toolBar_2&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;toolBarArea&quot; &gt;
++ &lt;enum&gt;TopToolBarArea&lt;/enum&gt;
++ &lt;/attribute&gt;
++ &lt;attribute name=&quot;toolBarBreak&quot; &gt;
++ &lt;bool&gt;false&lt;/bool&gt;
++ &lt;/attribute&gt;
++ &lt;addaction name=&quot;actionPrevious&quot; /&gt;
++ &lt;addaction name=&quot;actionNext&quot; /&gt;
++ &lt;addaction name=&quot;actionReload&quot; /&gt;
++ &lt;/widget&gt;
++ &lt;action name=&quot;actionNew&quot; &gt;
++ &lt;property name=&quot;icon&quot; &gt;
++ &lt;iconset resource=&quot;sk_preview2.qrc&quot; &gt;
++ &lt;normaloff&gt;:/skpreview2/images/document-new.png&lt;/normaloff&gt;:/skpreview2/images/document-new.png&lt;/iconset&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;New&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/action&gt;
++ &lt;action name=&quot;actionOpen&quot; &gt;
++ &lt;property name=&quot;icon&quot; &gt;
++ &lt;iconset resource=&quot;sk_preview2.qrc&quot; &gt;
++ &lt;normaloff&gt;:/skpreview2/images/document-open.png&lt;/normaloff&gt;:/skpreview2/images/document-open.png&lt;/iconset&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Open&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/action&gt;
++ &lt;action name=&quot;actionCut&quot; &gt;
++ &lt;property name=&quot;icon&quot; &gt;
++ &lt;iconset resource=&quot;sk_preview2.qrc&quot; &gt;
++ &lt;normaloff&gt;:/skpreview2/images/edit-cut.png&lt;/normaloff&gt;:/skpreview2/images/edit-cut.png&lt;/iconset&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Cut&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/action&gt;
++ &lt;action name=&quot;actionCopy&quot; &gt;
++ &lt;property name=&quot;icon&quot; &gt;
++ &lt;iconset resource=&quot;sk_preview2.qrc&quot; &gt;
++ &lt;normaloff&gt;:/skpreview2/images/edit-copy.png&lt;/normaloff&gt;:/skpreview2/images/edit-copy.png&lt;/iconset&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Copy&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/action&gt;
++ &lt;action name=&quot;actionPaste&quot; &gt;
++ &lt;property name=&quot;icon&quot; &gt;
++ &lt;iconset resource=&quot;sk_preview2.qrc&quot; &gt;
++ &lt;normaloff&gt;:/skpreview2/images/edit-paste.png&lt;/normaloff&gt;:/skpreview2/images/edit-paste.png&lt;/iconset&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Paste&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/action&gt;
++ &lt;action name=&quot;actionPrevious&quot; &gt;
++ &lt;property name=&quot;icon&quot; &gt;
++ &lt;iconset resource=&quot;sk_preview2.qrc&quot; &gt;
++ &lt;normaloff&gt;:/skpreview2/images/go-previous.png&lt;/normaloff&gt;:/skpreview2/images/go-previous.png&lt;/iconset&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Previous&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/action&gt;
++ &lt;action name=&quot;actionNext&quot; &gt;
++ &lt;property name=&quot;icon&quot; &gt;
++ &lt;iconset resource=&quot;sk_preview2.qrc&quot; &gt;
++ &lt;normaloff&gt;:/skpreview2/images/go-next.png&lt;/normaloff&gt;:/skpreview2/images/go-next.png&lt;/iconset&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Next&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/action&gt;
++ &lt;action name=&quot;actionReload&quot; &gt;
++ &lt;property name=&quot;icon&quot; &gt;
++ &lt;iconset resource=&quot;sk_preview2.qrc&quot; &gt;
++ &lt;normaloff&gt;:/skpreview2/images/view-refresh.png&lt;/normaloff&gt;:/skpreview2/images/view-refresh.png&lt;/iconset&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Reload&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/action&gt;
++ &lt;action name=&quot;action_New&quot; &gt;
++ &lt;property name=&quot;icon&quot; &gt;
++ &lt;iconset resource=&quot;sk_preview2.qrc&quot; &gt;
++ &lt;normaloff&gt;:/skpreview2/images/document-new.png&lt;/normaloff&gt;:/skpreview2/images/document-new.png&lt;/iconset&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;&amp;amp;New&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/action&gt;
++ &lt;action name=&quot;action_Open&quot; &gt;
++ &lt;property name=&quot;icon&quot; &gt;
++ &lt;iconset resource=&quot;sk_preview2.qrc&quot; &gt;
++ &lt;normaloff&gt;:/skpreview2/images/document-open.png&lt;/normaloff&gt;:/skpreview2/images/document-open.png&lt;/iconset&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;&amp;amp;Open&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/action&gt;
++ &lt;action name=&quot;action_Reload&quot; &gt;
++ &lt;property name=&quot;icon&quot; &gt;
++ &lt;iconset resource=&quot;sk_preview2.qrc&quot; &gt;
++ &lt;normaloff&gt;:/skpreview2/images/view-refresh.png&lt;/normaloff&gt;:/skpreview2/images/view-refresh.png&lt;/iconset&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;&amp;amp;Reload&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/action&gt;
++ &lt;action name=&quot;action_Cut&quot; &gt;
++ &lt;property name=&quot;icon&quot; &gt;
++ &lt;iconset resource=&quot;sk_preview2.qrc&quot; &gt;
++ &lt;normaloff&gt;:/skpreview2/images/edit-cut.png&lt;/normaloff&gt;:/skpreview2/images/edit-cut.png&lt;/iconset&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;&amp;amp;Cut&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/action&gt;
++ &lt;action name=&quot;action_Copy&quot; &gt;
++ &lt;property name=&quot;icon&quot; &gt;
++ &lt;iconset resource=&quot;sk_preview2.qrc&quot; &gt;
++ &lt;normaloff&gt;:/skpreview2/images/edit-copy.png&lt;/normaloff&gt;:/skpreview2/images/edit-copy.png&lt;/iconset&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;&amp;amp;Copy&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/action&gt;
++ &lt;action name=&quot;action_Paste&quot; &gt;
++ &lt;property name=&quot;icon&quot; &gt;
++ &lt;iconset resource=&quot;sk_preview2.qrc&quot; &gt;
++ &lt;normaloff&gt;:/skpreview2/images/edit-paste.png&lt;/normaloff&gt;:/skpreview2/images/edit-paste.png&lt;/iconset&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;&amp;amp;Paste&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/action&gt;
++ &lt;action name=&quot;actionConfigure&quot; &gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Configure...&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/action&gt;
++ &lt;action name=&quot;actionHelp_Contents&quot; &gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Help Contents&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/action&gt;
++ &lt;/widget&gt;
++ &lt;resources&gt;
++ &lt;include location=&quot;sk_preview2.qrc&quot; /&gt;
++ &lt;/resources&gt;
++ &lt;connections/&gt;
++&lt;/ui&gt;
+
+<a id="themeia_orakde4srciaorakdecpp">Added: theme/ia_ora-kde4/src/iaora-kde.cpp</a>
+===================================================================
+--- theme/ia_ora-kde4/src/iaora-kde.cpp (rev 0)
++++ theme/ia_ora-kde4/src/iaora-kde.cpp 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,515 @@
++/*
++ * Copyright 2008 Gustavo Pichorim Boiko &lt;boiko@mandriva.com&gt;
++ * Copyright 2008-2009 Rodrigo Gonçalves de Oliveira &lt;rodrigo@mandriva.com&gt;
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 3 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ */
++
++#include &quot;iaora-kde.h&quot;
++#include &quot;iaorastyle.h&quot;
++
++#include &lt;QStyleOption&gt;
++#include &lt;QStyleOptionSpinBox&gt;
++#include &lt;QPainter&gt;
++#include &lt;QComboBox&gt;
++#include &lt;QAbstractSpinBox&gt;
++#include &lt;QToolButton&gt;
++#include &lt;QDockWidget&gt;
++#include &lt;QDebug&gt;
++#include &lt;QToolBar&gt;
++
++K_EXPORT_STYLE(&quot;IaOraKde&quot;, IaOraKde)
++
++IaOraKde::IaOraKde()
++{
++ // not use 2 buttons on ScrollBar bottom
++ setWidgetLayoutProp(WT_ScrollBar, ScrollBar::DoubleBotButton, 0);
++ // We set the minimum size to 21 for the scrollbar slider like in the GTK ia ora
++ setWidgetLayoutProp(WT_ScrollBar, ScrollBar::MinimumSliderHeight, 21);
++
++ // correct the CheckBox and RadioButton sizes, according IaOraQt
++ setWidgetLayoutProp(WT_CheckBox, CheckBox::Size, 12);
++ setWidgetLayoutProp(WT_RadioButton, RadioButton::Size, 12);
++
++ m_style = new IaOraStyle(this);
++}
++
++IaOraKde::~IaOraKde()
++{
++ delete m_style;
++}
++
++void IaOraKde::polish(QWidget *widget){
++ // here we change the appearence of some widget
++ if (qobject_cast&lt;QToolButton *&gt;(widget)){
++ widget-&gt;setAttribute(Qt::WA_Hover, true); // forcing the mouse enter and leave event
++ }
++}
++void IaOraKde::unpolish(QWidget *widget){
++ if (qobject_cast&lt;QToolButton *&gt;(widget)){
++ widget-&gt;setAttribute(Qt::WA_Hover, false);
++ }
++}
++
++void IaOraKde::drawPrimitive(PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget) const
++{
++ switch (element)
++ {
++ case QStyle::PE_FrameFocusRect:
++ m_style-&gt;drawFrame(option, painter, IaOraStyle::FrameFocus);
++ break;
++ case QStyle::PE_Frame:
++ QComboBox *cmb;
++
++ if (widget)
++ cmb = qobject_cast&lt;QComboBox *&gt;(widget-&gt;parentWidget());
++
++ m_style-&gt;drawFrame(option, painter, (cmb) ? IaOraStyle::FrameComboBox : IaOraStyle::FrameFrame);
++
++ break;
++ case QStyle::PE_FrameWindow:
++ m_style-&gt;drawFrame(option, painter);
++ break;
++ case QStyle::PE_FrameMenu:
++ m_style-&gt;drawFrame(option, painter, IaOraStyle::FrameMenu);
++ break;
++ case QStyle::PE_FrameTabWidget:
++ m_style-&gt;drawFrame(option, painter, IaOraStyle::FrameTabBar);
++ break;
++ case QStyle::PE_PanelLineEdit:
++ {
++ if (widget &amp;&amp; widget-&gt;parentWidget() &amp;&amp; !qstrcmp(widget-&gt;parentWidget()-&gt;metaObject()-&gt;className(), &quot;KHBox&quot;)){
++ QRect r(option-&gt;rect.adjusted(0, 0, 0, -2));
++ m_style-&gt;drawFrame(option, painter, IaOraStyle::FrameLineEdit, r);
++ } else
++ m_style-&gt;drawFrame(option, painter, IaOraStyle::FrameLineEdit);
++ }
++ break;
++ case QStyle::PE_PanelToolBar:
++ m_style-&gt;drawFrame(option, painter, IaOraStyle::FrameToolBar);
++ break;
++ case QStyle::PE_PanelMenuBar:
++ m_style-&gt;drawFrame(option, painter, IaOraStyle::FrameMenuBar);
++ break;
++ case QStyle::PE_FrameGroupBox:
++ m_style-&gt;drawFrame(option, painter, IaOraStyle::FrameGroupBox);
++ break;
++ case QStyle::PE_IndicatorToolBarSeparator:
++ m_style-&gt;drawSeparator(option, painter);
++ break;
++ case QStyle::PE_IndicatorToolBarHandle:
++ m_style-&gt;drawHandle(option, painter);
++ break;
++ case QStyle::PE_PanelButtonCommand:
++ m_style-&gt;drawButton(option, painter);
++ break;
++ case QStyle::PE_FrameDefaultButton:
++ m_style-&gt;drawButtonDefaultBorder(option, painter);
++ break;
++ case QStyle::PE_PanelButtonTool:
++ if (widget &amp;&amp; !qstrcmp(widget-&gt;metaObject()-&gt;className(), &quot;QDockWidgetTitleButton&quot;))
++ break;
++ m_style-&gt;drawButton(option, painter);
++ break;
++ case QStyle::PE_IndicatorCheckBox:
++ m_style-&gt;drawCheckBox(option, painter);
++ break;
++ case QStyle::PE_IndicatorRadioButton:
++ m_style-&gt;drawRadioButton(option, painter);
++ break;
++ case QStyle::PE_PanelButtonBevel:
++ m_style-&gt;drawButton(option, painter, true /*simplified*/);
++ break;
++ case QStyle::PE_IndicatorArrowUp:
++ case QStyle::PE_IndicatorSpinUp:
++ m_style-&gt;drawSymbol(option, painter, IaOraStyle::SymbolArrowUp);
++ break;
++ case QStyle::PE_IndicatorArrowDown:
++ case QStyle::PE_IndicatorSpinDown:
++ m_style-&gt;drawSymbol(option, painter, IaOraStyle::SymbolArrowDown);
++ break;
++ case QStyle::PE_IndicatorArrowLeft:
++ m_style-&gt;drawSymbol(option, painter, IaOraStyle::SymbolArrowLeft);
++ break;
++ case QStyle::PE_IndicatorArrowRight:
++ m_style-&gt;drawSymbol(option, painter, IaOraStyle::SymbolArrowRight);
++ break;
++ case QStyle::PE_IndicatorSpinPlus:
++ m_style-&gt;drawSymbol(option, painter, IaOraStyle::SymbolPlus);
++ break;
++ case QStyle::PE_IndicatorSpinMinus:
++ m_style-&gt;drawSymbol(option, painter, IaOraStyle::SymbolMinus);
++ break;
++ case QStyle::PE_IndicatorBranch:
++ m_style-&gt;drawBranch(option, painter);
++ break;
++ case QStyle::PE_PanelItemViewItem:
++ m_style-&gt;drawPanelItemViewItem(option, painter);
++ break;
++ case QStyle::PE_IndicatorDockWidgetResizeHandle:
++ {
++ // the horizontal / vertical flags are inverted
++ QStyleOption copy = *option;
++ if (copy.state &amp; QStyle::State_Horizontal)
++ copy.state &amp;= ~QStyle::State_Horizontal;
++ else
++ copy.state |= QStyle::State_Horizontal;
++ m_style-&gt;drawHandle(&amp;copy, painter);
++ break;
++ }
++ case QStyle::PE_IndicatorButtonDropDown:
++ //m_style-&gt;drawButton(option, painter);
++ break;
++ case QStyle::PE_PanelItemViewRow:
++ m_style-&gt;drawPanelItemViewRow(option, painter);
++ break;
++ default:
++ qDebug(&quot;Element: %d&quot;, element);
++ KStyle::drawPrimitive(element, option, painter, widget);
++ }
++}
++
++void IaOraKde::drawControl(ControlElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget) const
++{
++ switch (element)
++ {
++ case QStyle::CE_ToolBar:
++ m_style-&gt;drawFrame(option, painter, IaOraStyle::FrameMenuBar);
++ break;
++ case QStyle::CE_MenuBarEmptyArea:
++ m_style-&gt;drawFrame(option, painter, IaOraStyle::FrameMenuBar);
++ break;
++ case QStyle::CE_ProgressBarGroove:
++ m_style-&gt;drawFrame(option, painter, IaOraStyle::FrameProgressBar);
++ break;
++ case QStyle::CE_ProgressBarContents:
++ m_style-&gt;drawProgressBarContents(option, painter, true);
++ break;
++ case QStyle::CE_ScrollBarSubLine:
++ case QStyle::CE_ScrollBarAddLine:
++ {
++ const QStyleOptionSlider* scr = qstyleoption_cast&lt;const QStyleOptionSlider*&gt;(option);
++ bool vertical = (scr-&gt;orientation == Qt::Vertical);
++ bool addLine = (element == QStyle::CE_ScrollBarAddLine) ? true : false;
++ QRect scrRect = scr-&gt;rect;
++ QRect r;
++
++ if (addLine){
++ if (vertical)
++ r = QRect(0, scrRect.bottom() - 15, scrRect.width(), 16);
++ else
++ r = QRect(scrRect.right() - 15, scrRect.top(), 16, scrRect.height());
++ } else{
++ if (vertical)
++ r = QRect(scrRect.left(), scrRect.top(), scrRect.width(), 16);
++ else
++ r = QRect(0, scrRect.top(), 16, scrRect.height());
++ }
++
++ const_cast&lt;QStyleOption*&gt;(option)-&gt;rect = r;
++
++ m_style-&gt;drawScrollBarButton(option, painter, (addLine) ? IaOraStyle::SymbolArrowRight : IaOraStyle::SymbolArrowLeft);
++ }
++ break;
++ case QStyle::CE_ScrollBarAddPage:
++ case QStyle::CE_ScrollBarSubPage:
++ m_style-&gt;drawScrollBarEmptySpace(option, painter);
++ break;
++ case QStyle::CE_ScrollBarFirst:
++ painter-&gt;fillRect(option-&gt;rect, Qt::gray);
++ break;
++ case QStyle::CE_ScrollBarLast:
++ painter-&gt;fillRect(option-&gt;rect, Qt::gray);
++ break;
++ case QStyle::CE_ScrollBarSlider:
++ m_style-&gt;drawScrollBarHandle(option, painter);
++ break;
++ case QStyle::CE_HeaderSection:
++ case QStyle::CE_HeaderEmptyArea:
++ m_style-&gt;drawFrame(option, painter, IaOraStyle::FrameHeader);
++ break;
++ case QStyle::CE_MenuEmptyArea:
++ break;
++ case QStyle::CE_MenuBarItem:
++ m_style-&gt;drawMenuItem(option, painter, false);
++ break;
++ case QStyle::CE_MenuItem:
++ m_style-&gt;drawMenuItem(option, painter);
++ break;
++ case QStyle::CE_Splitter:
++ m_style-&gt;drawHandle(option, painter);
++ break;
++ case QStyle::CE_DockWidgetTitle:
++ m_style-&gt;drawDockWindowTitle(option, painter);
++ break;
++ case QStyle::CE_TabBarTab:
++ m_style-&gt;drawTabBarTab(option, painter);
++ break;
++ case QStyle::CE_ComboBoxLabel:
++ m_style-&gt;drawComboBoxLabel(option, painter);
++ break;
++ case QStyle::CE_ItemViewItem:
++ m_style-&gt;drawPanelItemViewItem(option, painter, true);
++ break;
++ default:
++ qDebug(&quot;ControlElement: %d&quot;, element);
++ KStyle::drawControl(element, option, painter, widget);
++ }
++}
++
++int IaOraKde::pixelMetric(PixelMetric metric, const QStyleOption *option, const QWidget *widget) const
++{
++ switch (metric)
++ {
++ case QStyle::PM_ButtonDefaultIndicator:
++ return 1;
++ break;
++ case QStyle::PM_ButtonShiftHorizontal:
++ case QStyle::PM_ButtonShiftVertical:
++ return 0;
++ case QStyle::PM_DefaultFrameWidth:
++ case QStyle::PM_ComboBoxFrameWidth:
++ return 1;
++ case QStyle::PM_SliderControlThickness:
++ return 8;
++ case QStyle::PM_SliderLength:
++ return 26;
++ case QStyle::PM_SliderTickmarkOffset:
++ return 5;
++ case QStyle::PM_SplitterWidth:
++ return 8;
++ case QStyle::PM_DockWidgetTitleBarButtonMargin:
++ case QStyle::PM_DockWidgetTitleMargin:
++ return 0;
++ case QStyle::PM_ToolBarIconSize:
++ return 24;
++ case QStyle::PM_MenuBarItemSpacing:
++ return 5;
++ case QStyle::PM_SliderSpaceAvailable:
++ if (const QStyleOptionSlider *slider = qstyleoption_cast&lt;const QStyleOptionSlider *&gt;(option))
++ {
++ int size = 15;
++ if (slider-&gt;tickPosition &amp; QSlider::TicksBelow)
++ ++size;
++ if (slider-&gt;tickPosition &amp; QSlider::TicksAbove)
++ ++size;
++ return size;
++ }
++ case QStyle::PM_ScrollView_ScrollBarSpacing:
++ return -1;
++ // very strange issue
++ /*case QStyle::PM_ScrollBarSliderMin:
++ return 31;*/
++ default:
++ //qDebug(); // do not remove this for now (horrible hack)
++ return KStyle::pixelMetric(metric, option, widget);
++ }
++}
++
++int IaOraKde::styleHint(QStyle::StyleHint hint, const QStyleOption *option, const QWidget *widget, QStyleHintReturn *returnData) const
++{
++ switch (hint)
++ {
++ case QStyle::SH_TitleBar_NoBorder:
++ return true;
++ case SH_MenuBar_MouseTracking:
++ case SH_Menu_MouseTracking:
++ return true;
++ case SH_ScrollBar_MiddleClickAbsolutePosition:
++ return true;
++ case SH_ScrollView_FrameOnlyAroundContents:
++ return true;
++ default:
++ return KStyle::styleHint(hint, option, widget, returnData);
++ }
++}
++
++QSize IaOraKde::sizeFromContents (ContentsType type, const QStyleOption * option, const QSize &amp; contentsSize, const QWidget *widget) const
++{
++ switch (type)
++ {
++ case QStyle::CT_MenuBarItem:
++ return contentsSize + QSize(8,4);
++ case CT_MenuItem:
++ {
++ const QStyleOptionMenuItem *menuOpt = qstyleoption_cast&lt;const QStyleOptionMenuItem *&gt;(option);
++ if (menuOpt)
++ return contentsSize + QSize(46, 4);
++ }
++ break;
++ case CT_ComboBox:
++ return contentsSize + QSize(32, 0);
++ default:
++ return KStyle::sizeFromContents(type, option, contentsSize, widget);
++ }
++ // just for the war
++}
++
++void IaOraKde::drawItemText(QPainter *painter, const QRect &amp;rect, int alignment, const QPalette &amp;pal,
++ bool enabled, const QString&amp; text, QPalette::ColorRole textRole) const
++{
++ m_style-&gt;drawItemText(painter, rect, alignment, pal, enabled, text, textRole);
++}
++
++void IaOraKde::drawComplexControl(ComplexControl control, const QStyleOptionComplex *option, QPainter *painter, const QWidget *widget) const
++{
++ QRect r = option-&gt;rect;
++ switch(control)
++ {
++ case QStyle::CC_SpinBox:
++ {
++ m_style-&gt;drawSpinBox(option, painter);
++ break;
++ }
++ case CC_ComboBox:
++ {
++ m_style-&gt;drawComboBox(option, painter);
++ break;
++ }
++ case CC_Slider:
++ {
++ QRect grooveRegion = subControlRect(CC_Slider, option, SC_SliderGroove, widget);
++ QRect handle = subControlRect(CC_Slider, option, SC_SliderHandle, widget);
++ QRect ticks = subControlRect(CC_Slider, option, SC_SliderTickmarks, widget);
++
++ m_style-&gt;drawSlider(option, painter, grooveRegion, handle, ticks);
++ break;
++ }
++ case CC_Dial:
++ {
++ m_style-&gt;drawDial(option, painter);
++ break;
++ }
++ case CC_TitleBar:
++ {
++ m_style-&gt;drawTitleBar(option, painter, widget);
++ break;
++ }
++ case CC_Q3ListView:
++ {
++ m_style-&gt;drawQ3ListView(option, painter, widget);
++ break;
++ }
++ //case CC_ScrollBar: // this will not be drawed here
++ case CC_ToolButton:
++ {
++ QDockWidget *dockWidget;
++ QTabBar *tabBar;
++ if (widget)
++ {
++ dockWidget = qobject_cast&lt;QDockWidget *&gt;(widget-&gt;parentWidget());
++ tabBar = qobject_cast&lt;QTabBar *&gt;(widget-&gt;parentWidget());
++ }
++
++ if (dockWidget){ // the QDockWidget icons
++ const QStyleOptionToolButton *opt = qstyleoption_cast &lt;const QStyleOptionToolButton *&gt;(option);
++ bool sunken = (opt-&gt;state &amp; QStyle::State_Sunken);
++ bool hover = (opt-&gt;state &amp; QStyle::State_MouseOver);
++
++ QIcon::Mode mode = (opt-&gt;state &amp; QStyle::State_Enabled) ? QIcon::Normal : QIcon::Disabled;
++ if (hover){
++ mode = QIcon::Selected;
++ }
++
++ int shift = 0;
++ if (sunken) shift = 2;
++
++ QPixmap pix = opt-&gt;icon.pixmap(opt-&gt;iconSize, mode);
++ QRect iconRect(r);
++
++ iconRect = alignedRect(opt-&gt;direction, Qt::AlignCenter, iconRect.size(), r);
++ iconRect.setTopLeft(iconRect.topLeft() + QPoint(shift, shift));
++
++ drawItemPixmap(painter, iconRect, Qt::AlignCenter, pix);
++ } else if (tabBar){ // we have tab arrows indicators?
++ const QStyleOptionToolButton *opt = qstyleoption_cast &lt;const QStyleOptionToolButton *&gt;(option);
++ QRect toolButtonRect = opt-&gt;rect;
++
++ bool vertical = false;
++ if (opt-&gt;features &amp;&amp; QStyleOptionToolButton::Arrow)
++ if ((opt-&gt;arrowType == Qt::LeftArrow) || (opt-&gt;arrowType == Qt::RightArrow)) vertical = true;
++
++ painter-&gt;save();
++ painter-&gt;setClipRect(toolButtonRect);
++ painter-&gt;fillRect(toolButtonRect, option-&gt;palette.brush(QPalette::Window));
++
++ m_style-&gt;drawToolButton(option, painter);
++ painter-&gt;restore();
++
++ if (vertical)
++ m_style-&gt;drawSymbol(option, painter, (opt-&gt;arrowType == Qt::LeftArrow) ? IaOraStyle::SymbolArrowLeft : IaOraStyle::SymbolArrowRight);
++ else
++ m_style-&gt;drawSymbol(option, painter, (opt-&gt;arrowType == Qt::UpArrow) ? IaOraStyle::SymbolArrowUp : IaOraStyle::SymbolArrowDown);
++ } else // if not...
++ m_style-&gt;drawToolButton(option, painter);
++ break;
++ }
++ default:
++ KStyle::drawComplexControl(control, option, painter, widget);
++ }
++}
++
++QIcon IaOraKde::standardIconImplementation(QStyle::StandardPixmap standardIcon, const QStyleOption *option, const QWidget *widget) const
++{
++ if (m_style-&gt;hasIcon(standardIcon))
++ return m_style-&gt;standardIcon(standardIcon, option, widget);
++
++ return KStyle::standardIconImplementation(standardIcon, option, widget);
++}
++
++QRect IaOraKde::subControlRect(ComplexControl control, const QStyleOptionComplex *option, SubControl subControl, const QWidget *widget) const
++{
++ QRect r = KStyle::subControlRect(control, option, subControl, widget);
++
++ switch (control)
++ {
++ case QStyle::CC_SpinBox:
++ if (subControl == QStyle::SC_SpinBoxEditField)
++ r.adjust(-1,-1,1,1);
++ break;
++ case QStyle::CC_ComboBox:
++ if (subControl == QStyle::SC_ComboBoxEditField)
++ r.adjust(-1,-1,0,0);
++ break;
++ default:
++ break;
++ }
++
++ return r;
++}
++
++QRect IaOraKde::subElementRect(SubElement element, const QStyleOption *option, const QWidget *widget) const
++{
++ QRect r = KStyle::subElementRect(element, option, widget);
++
++ switch (element)
++ {
++ case SE_LineEditContents:
++ if (widget-&gt;parentWidget()){
++ if (!qstrcmp(widget-&gt;parentWidget()-&gt;metaObject()-&gt;className(), &quot;KHBox&quot;))
++ r.adjust(0,-1,0,0);
++ else
++ r.adjust(3,1,-1,0);
++ }
++ break;
++ default:
++ break;
++ }
++
++ return r;
++}
++
++#include &quot;iaora-kde.moc&quot;
+
+
+Property changes on: theme/ia_ora-kde4/src/iaora-kde.cpp
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4srciaorakdeh">Added: theme/ia_ora-kde4/src/iaora-kde.h</a>
+===================================================================
+--- theme/ia_ora-kde4/src/iaora-kde.h (rev 0)
++++ theme/ia_ora-kde4/src/iaora-kde.h 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,59 @@
++/*
++ * Copyright 2008 Gustavo Pichorim Boiko &lt;boiko@mandriva.com&gt;
++ * Copyright 2008-2009 Rodrigo Gonçalves de Oliveira &lt;rodrigo@mandriva.com&gt;
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 3 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ */
++
++#ifndef IAORA_KDE_H
++#define IAORA_KDE_H
++
++#include &lt;KStyle&gt;
++
++class IaOraStyle;
++
++class IaOraKde : public KStyle
++{
++ Q_OBJECT
++public:
++ IaOraKde();
++ ~IaOraKde();
++
++ void drawPrimitive(PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = 0) const;
++ void drawControl(ControlElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = 0) const;
++
++ virtual int pixelMetric(PixelMetric metric, const QStyleOption *option = 0, const QWidget *widget = 0 ) const;
++
++ virtual void drawItemText(QPainter *painter, const QRect &amp;rect, int alignment, const QPalette &amp;pal,
++ bool enabled, const QString&amp; text, QPalette::ColorRole textRole) const;
++ virtual void drawComplexControl(ComplexControl control, const QStyleOptionComplex *option, QPainter *painter, const QWidget *widget = 0) const;
++ virtual int styleHint(StyleHint hint, const QStyleOption *option = 0, const QWidget *widget = 0, QStyleHintReturn *returnData = 0 ) const;
++ virtual QSize sizeFromContents(ContentsType type, const QStyleOption *option, const QSize &amp;contentsSize, const QWidget *widget = 0) const;
++
++ virtual QRect subControlRect(ComplexControl control, const QStyleOptionComplex *option, SubControl subControl, const QWidget *widget = 0) const;
++ virtual QRect subElementRect(SubElement element, const QStyleOption *option, const QWidget *widget) const;
++
++ void polish(QWidget *widget);
++ void unpolish(QWidget *widget);
++
++protected slots:
++ QIcon standardIconImplementation(StandardPixmap standardIcon, const QStyleOption *option, const QWidget *widget) const;
++
++private:
++ IaOraStyle *m_style;
++};
++
++#endif
+
+
+Property changes on: theme/ia_ora-kde4/src/iaora-kde.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4srciaorakdethemerc">Added: theme/ia_ora-kde4/src/iaora-kde.themerc</a>
+===================================================================
+--- theme/ia_ora-kde4/src/iaora-kde.themerc (rev 0)
++++ theme/ia_ora-kde4/src/iaora-kde.themerc 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,7 @@
++[Misc]
++Name=IaOra-Kde
++Comment=IaOra Kde style
++#ConfigPage=kstyle_iaora_config
++
++[KDE]
++WidgetStyle=IaOraKde
+
+<a id="themeia_orakde4srciaoraqtcpp">Added: theme/ia_ora-kde4/src/iaora-qt.cpp</a>
+===================================================================
+--- theme/ia_ora-kde4/src/iaora-qt.cpp (rev 0)
++++ theme/ia_ora-kde4/src/iaora-qt.cpp 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,512 @@
++/*
++ * Copyright 2008 Gustavo Pichorim Boiko &lt;boiko@mandriva.com&gt;
++ * Copyright 2008-2009 Rodrigo Gonçalves de Oliveira &lt;rodrigo@mandriva.com&gt;
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 3 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ */
++
++#include &quot;iaora-qt.h&quot;
++#include &quot;iaorastyle.h&quot;
++#include &lt;QDebug&gt;
++
++#include &lt;QStyleOption&gt;
++#include &lt;QStyleOptionSpinBox&gt;
++#include &lt;QPainter&gt;
++#include &lt;QComboBox&gt;
++#include &lt;QAbstractSpinBox&gt;
++#include &lt;QToolButton&gt;
++#include &lt;QDockWidget&gt;
++
++/*-----------------------------------------------------------------------*/
++
++#include &lt;QtGui/QStylePlugin&gt;
++
++class IaOraStylePlugin : public QStylePlugin
++{
++public:
++ QStringList keys() const
++ {
++ return QString::fromUtf8(&quot;IaOra-Qt&quot;).split(QChar(',', 0));
++ }
++
++ QStyle *create(const QString &amp;key)
++ {
++ if (key.toLower() == QString::fromUtf8(&quot;iaora-qt&quot;))
++ {
++ return new IaOraQt;
++ }
++ return 0;
++ }
++};
++
++
++Q_EXPORT_PLUGIN2(iaora-qt, IaOraStylePlugin)
++
++/*-----------------------------------------------------------------------*/
++
++IaOraQt::IaOraQt()
++{
++ m_style = new IaOraStyle(this);
++}
++
++IaOraQt::~IaOraQt()
++{
++ delete m_style;
++}
++
++void IaOraQt::polish(QWidget *widget){
++ // here we change the appearence of some widget
++ if (qobject_cast&lt;QToolButton *&gt;(widget)){
++ widget-&gt;setAttribute(Qt::WA_Hover, true); // forcing the mouse enter and leave event
++ }
++}
++void IaOraQt::unpolish(QWidget *widget){
++ if (qobject_cast&lt;QToolButton *&gt;(widget)){
++ widget-&gt;setAttribute(Qt::WA_Hover, false);
++ }
++}
++
++void IaOraQt::drawPrimitive(PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget) const
++{
++ switch (element)
++ {
++ case QStyle::PE_FrameFocusRect:
++ m_style-&gt;drawFrame(option, painter, IaOraStyle::FrameFocus);
++ break;
++ case QStyle::PE_Frame:
++ QComboBox *cmb;
++
++ if (widget)
++ cmb = qobject_cast&lt;QComboBox *&gt;(widget-&gt;parentWidget());
++
++ m_style-&gt;drawFrame(option, painter, (cmb) ? IaOraStyle::FrameComboBox : IaOraStyle::FrameFrame);
++
++ break;
++ case QStyle::PE_FrameWindow:
++ m_style-&gt;drawFrame(option, painter);
++ break;
++ case QStyle::PE_FrameMenu:
++ m_style-&gt;drawFrame(option, painter, IaOraStyle::FrameMenu);
++ break;
++ case QStyle::PE_FrameTabWidget:
++ m_style-&gt;drawFrame(option, painter, IaOraStyle::FrameTabBar);
++ break;
++ case QStyle::PE_PanelLineEdit:
++ {
++ if (widget &amp;&amp; widget-&gt;parentWidget() &amp;&amp; !qstrcmp(widget-&gt;parentWidget()-&gt;metaObject()-&gt;className(), &quot;KHBox&quot;)){
++ QRect r(option-&gt;rect.adjusted(0, 0, 0, -2));
++ m_style-&gt;drawFrame(option, painter, IaOraStyle::FrameLineEdit, r);
++ } else
++ m_style-&gt;drawFrame(option, painter, IaOraStyle::FrameLineEdit);
++ }
++ break;
++ case QStyle::PE_PanelToolBar:
++ m_style-&gt;drawFrame(option, painter, IaOraStyle::FrameToolBar);
++ break;
++ case QStyle::PE_PanelMenuBar:
++ m_style-&gt;drawFrame(option, painter, IaOraStyle::FrameMenuBar);
++ break;
++ case QStyle::PE_FrameGroupBox:
++ m_style-&gt;drawFrame(option, painter, IaOraStyle::FrameGroupBox);
++ break;
++ case QStyle::PE_IndicatorToolBarSeparator:
++ m_style-&gt;drawSeparator(option, painter);
++ break;
++ case QStyle::PE_IndicatorToolBarHandle:
++ m_style-&gt;drawHandle(option, painter);
++ break;
++ case QStyle::PE_PanelButtonCommand:
++ m_style-&gt;drawButton(option, painter);
++ break;
++ case QStyle::PE_FrameDefaultButton:
++ m_style-&gt;drawButtonDefaultBorder(option, painter);
++ break;
++ case QStyle::PE_PanelButtonTool:
++ if (widget &amp;&amp; !qstrcmp(widget-&gt;metaObject()-&gt;className(), &quot;QDockWidgetTitleButton&quot;))
++ break;
++ m_style-&gt;drawButton(option, painter);
++ break;
++ case QStyle::PE_IndicatorCheckBox:
++ m_style-&gt;drawCheckBox(option, painter);
++ break;
++ case QStyle::PE_IndicatorRadioButton:
++ m_style-&gt;drawRadioButton(option, painter);
++ break;
++ case QStyle::PE_PanelButtonBevel:
++ m_style-&gt;drawButton(option, painter, true /*simplified*/);
++ break;
++ case QStyle::PE_IndicatorArrowUp:
++ case QStyle::PE_IndicatorSpinUp:
++ m_style-&gt;drawSymbol(option, painter, IaOraStyle::SymbolArrowUp);
++ break;
++ case QStyle::PE_IndicatorArrowDown:
++ case QStyle::PE_IndicatorSpinDown:
++ m_style-&gt;drawSymbol(option, painter, IaOraStyle::SymbolArrowDown);
++ break;
++ case QStyle::PE_IndicatorArrowLeft:
++ m_style-&gt;drawSymbol(option, painter, IaOraStyle::SymbolArrowLeft);
++ break;
++ case QStyle::PE_IndicatorArrowRight:
++ m_style-&gt;drawSymbol(option, painter, IaOraStyle::SymbolArrowRight);
++ break;
++ case QStyle::PE_IndicatorSpinPlus:
++ m_style-&gt;drawSymbol(option, painter, IaOraStyle::SymbolPlus);
++ break;
++ case QStyle::PE_IndicatorSpinMinus:
++ m_style-&gt;drawSymbol(option, painter, IaOraStyle::SymbolMinus);
++ break;
++ case QStyle::PE_IndicatorBranch:
++ m_style-&gt;drawBranch(option, painter);
++ break;
++ case QStyle::PE_PanelItemViewItem:
++ m_style-&gt;drawPanelItemViewItem(option, painter);
++ break;
++ // case QStyle::PE_PanelItemViewRow: // Do not use it, or setBackground() will not work on a QGrid
++ case QStyle::PE_IndicatorDockWidgetResizeHandle:
++ {
++ // the horizontal / vertical flags are inverted
++ QStyleOption copy = *option;
++ if (copy.state &amp; QStyle::State_Horizontal)
++ copy.state &amp;= ~QStyle::State_Horizontal;
++ else
++ copy.state |= QStyle::State_Horizontal;
++ m_style-&gt;drawHandle(&amp;copy, painter);
++ break;
++ }
++ case QStyle::PE_IndicatorButtonDropDown:
++ //m_style-&gt;drawButton(option, painter);
++ break;
++ case QStyle::PE_PanelItemViewRow:
++ m_style-&gt;drawPanelItemViewRow(option, painter);
++ break;
++ default:
++ qDebug(&quot;Element: %d&quot;, element);
++ QCommonStyle::drawPrimitive(element, option, painter, widget);
++ }
++}
++
++void IaOraQt::drawControl(ControlElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget) const
++{
++ switch (element)
++ {
++ case QStyle::CE_ToolBar:
++ m_style-&gt;drawFrame(option, painter, IaOraStyle::FrameMenuBar);
++ break;
++ case QStyle::CE_MenuBarEmptyArea:
++ m_style-&gt;drawFrame(option, painter, IaOraStyle::FrameMenuBar);
++ break;
++ case QStyle::CE_ProgressBarGroove:
++ m_style-&gt;drawFrame(option, painter, IaOraStyle::FrameProgressBar);
++ break;
++ case QStyle::CE_ProgressBarContents:
++ m_style-&gt;drawProgressBarContents(option, painter);
++ break;
++ case QStyle::CE_ScrollBarSubLine:
++ m_style-&gt;drawScrollBarButton(option, painter, IaOraStyle::SymbolArrowLeft);
++ break;
++ case QStyle::CE_ScrollBarAddLine:
++ m_style-&gt;drawScrollBarButton(option, painter, IaOraStyle::SymbolArrowRight);
++ break;
++ case QStyle::CE_ScrollBarAddPage:
++ case QStyle::CE_ScrollBarSubPage:
++ m_style-&gt;drawScrollBarEmptySpace(option, painter);
++ break;
++ case QStyle::CE_ScrollBarFirst:
++ painter-&gt;fillRect(option-&gt;rect, Qt::gray);
++ break;
++ case QStyle::CE_ScrollBarLast:
++ painter-&gt;fillRect(option-&gt;rect, Qt::gray);
++ break;
++ case QStyle::CE_ScrollBarSlider:
++ m_style-&gt;drawScrollBarHandle(option, painter);
++ break;
++ case QStyle::CE_HeaderSection:
++ case QStyle::CE_HeaderEmptyArea:
++ m_style-&gt;drawFrame(option, painter, IaOraStyle::FrameHeader);
++ break;
++ case QStyle::CE_MenuEmptyArea:
++ break;
++ case QStyle::CE_MenuBarItem:
++ m_style-&gt;drawMenuItem(option, painter, false);
++ break;
++ case QStyle::CE_MenuItem:
++ m_style-&gt;drawMenuItem(option, painter);
++ break;
++ case QStyle::CE_Splitter:
++ m_style-&gt;drawHandle(option, painter);
++ break;
++ case QStyle::CE_DockWidgetTitle:
++ m_style-&gt;drawDockWindowTitle(option, painter);
++ break;
++ case QStyle::CE_TabBarTab:
++ m_style-&gt;drawTabBarTab(option, painter);
++ break;
++ case QStyle::CE_ComboBoxLabel:
++ m_style-&gt;drawComboBoxLabel(option, painter);
++ break;
++ case QStyle::CE_ItemViewItem:
++ m_style-&gt;drawPanelItemViewItem(option, painter, true);
++ break;
++ default:
++ qDebug(&quot;ControlElement: %d&quot;, element);
++ QCommonStyle::drawControl(element, option, painter, widget);
++ }
++}
++
++int IaOraQt::pixelMetric(PixelMetric metric, const QStyleOption *option, const QWidget *widget) const
++{
++ switch (metric)
++ {
++ case QStyle::PM_ButtonDefaultIndicator:
++ return 1;
++ break;
++ case QStyle::PM_ButtonShiftHorizontal:
++ case QStyle::PM_ButtonShiftVertical:
++ return 0;
++ case QStyle::PM_DefaultFrameWidth:
++ case QStyle::PM_ComboBoxFrameWidth:
++ return 1;
++ case QStyle::PM_SliderControlThickness:
++ return 8;
++ case QStyle::PM_SliderLength:
++ return 26;
++ case QStyle::PM_SliderTickmarkOffset:
++ return 5;
++ case QStyle::PM_SplitterWidth:
++ return 8;
++ case QStyle::PM_DockWidgetTitleBarButtonMargin:
++ case QStyle::PM_DockWidgetTitleMargin:
++ return 0;
++ case QStyle::PM_ToolBarIconSize:
++ return 24;
++ case QStyle::PM_MenuBarItemSpacing:
++ return 5;
++ case QStyle::PM_SliderSpaceAvailable:
++ if (const QStyleOptionSlider *slider = qstyleoption_cast&lt;const QStyleOptionSlider *&gt;(option))
++ {
++ int size = 15;
++ if (slider-&gt;tickPosition &amp; QSlider::TicksBelow)
++ ++size;
++ if (slider-&gt;tickPosition &amp; QSlider::TicksAbove)
++ ++size;
++ return size;
++ }
++ break;
++ case QStyle::PM_ScrollView_ScrollBarSpacing:
++ return -1;
++ // very strange issue // HERE
++ /*case QStyle::PM_ScrollBarSliderMin: // HERE
++ break;*/ // HERE
++ default:
++ //qDebug(); // do not remove this for now (horrible hack) // HERE
++ return QCommonStyle::pixelMetric(metric, option, widget);
++ }
++}
++
++int IaOraQt::styleHint(QStyle::StyleHint hint, const QStyleOption *option, const QWidget *widget, QStyleHintReturn *returnData) const
++{
++ switch (hint)
++ {
++ case QStyle::SH_TitleBar_NoBorder:
++ return true;
++ case SH_MenuBar_MouseTracking:
++ case SH_Menu_MouseTracking:
++ return true;
++ case SH_ScrollBar_MiddleClickAbsolutePosition:
++ return true;
++ case SH_ScrollView_FrameOnlyAroundContents:
++ return true;
++ default:
++ return QCommonStyle::styleHint(hint, option, widget, returnData);
++ }
++}
++
++QSize IaOraQt::sizeFromContents (ContentsType type, const QStyleOption * option, const QSize &amp; contentsSize, const QWidget *widget) const
++{
++ switch (type)
++ {
++ case QStyle::CT_MenuBarItem:
++ return contentsSize + QSize(8,4);
++ case CT_MenuItem:
++ {
++ const QStyleOptionMenuItem *menuOpt = qstyleoption_cast&lt;const QStyleOptionMenuItem *&gt;(option);
++ if (menuOpt)
++ return contentsSize + QSize(46, 4);
++ }
++ //break; // HERE
++ default:
++ return QCommonStyle::sizeFromContents(type, option, contentsSize, widget);
++ }
++ // just for the war
++}
++
++void IaOraQt::drawItemText(QPainter *painter, const QRect &amp;rect, int alignment, const QPalette &amp;pal,
++ bool enabled, const QString&amp; text, QPalette::ColorRole textRole) const
++{
++ m_style-&gt;drawItemText(painter, rect, alignment, pal, enabled, text, textRole);
++}
++
++void IaOraQt::drawComplexControl(ComplexControl control, const QStyleOptionComplex *option, QPainter *painter, const QWidget *widget) const
++{
++ QRect r = option-&gt;rect;
++ switch(control)
++ {
++ case QStyle::CC_SpinBox:
++ {
++ m_style-&gt;drawSpinBox(option, painter);
++ break;
++ }
++ case CC_ComboBox:
++ {
++ m_style-&gt;drawComboBox(option, painter);
++ break;
++ }
++ case CC_Slider:
++ {
++ QRect grooveRegion = subControlRect(CC_Slider, option, SC_SliderGroove, widget);
++ QRect handle = subControlRect(CC_Slider, option, SC_SliderHandle, widget);
++ QRect ticks = subControlRect(CC_Slider, option, SC_SliderTickmarks, widget);
++
++ m_style-&gt;drawSlider(option, painter, grooveRegion, handle, ticks);
++ break;
++ }
++ case CC_Dial:
++ {
++ m_style-&gt;drawDial(option, painter);
++ break;
++ }
++ case CC_TitleBar:
++ {
++ m_style-&gt;drawTitleBar(option, painter, widget);
++ break;
++ }
++ case CC_Q3ListView:
++ {
++ m_style-&gt;drawQ3ListView(option, painter, widget);
++ break;
++ }
++ //case CC_ScrollBar: // this will not be drawed here
++ case CC_ToolButton:
++ {
++ QDockWidget *dockWidget;
++ QTabBar *tabBar;
++ if (widget)
++ {
++ dockWidget = qobject_cast&lt;QDockWidget *&gt;(widget-&gt;parentWidget());
++ tabBar = qobject_cast&lt;QTabBar *&gt;(widget-&gt;parentWidget());
++ }
++
++ if (dockWidget){ // the QDockWidget icons
++ const QStyleOptionToolButton *opt = qstyleoption_cast &lt;const QStyleOptionToolButton *&gt;(option);
++ bool sunken = (opt-&gt;state &amp; QStyle::State_Sunken);
++ bool hover = (opt-&gt;state &amp; QStyle::State_MouseOver);
++
++ QIcon::Mode mode = (opt-&gt;state &amp; QStyle::State_Enabled) ? QIcon::Normal : QIcon::Disabled;
++ if (hover){
++ mode = QIcon::Selected;
++ }
++
++ int shift = 0;
++ if (sunken) shift = 2;
++
++ QPixmap pix = opt-&gt;icon.pixmap(opt-&gt;iconSize, mode);
++ QRect iconRect(r);
++
++ iconRect = alignedRect(opt-&gt;direction, Qt::AlignCenter, iconRect.size(), r);
++ iconRect.setTopLeft(iconRect.topLeft() + QPoint(shift, shift));
++
++ drawItemPixmap(painter, iconRect, Qt::AlignCenter, pix);
++ } else if (tabBar){ // we have tab arrows indicators?
++ const QStyleOptionToolButton *opt = qstyleoption_cast &lt;const QStyleOptionToolButton *&gt;(option);
++ QRect toolButtonRect = opt-&gt;rect;
++
++ bool vertical = false;
++ if (opt-&gt;features &amp;&amp; QStyleOptionToolButton::Arrow)
++ if ((opt-&gt;arrowType == Qt::LeftArrow) || (opt-&gt;arrowType == Qt::RightArrow)) vertical = true;
++
++ painter-&gt;save();
++ painter-&gt;setClipRect(toolButtonRect);
++ painter-&gt;fillRect(toolButtonRect, option-&gt;palette.brush(QPalette::Window));
++
++ m_style-&gt;drawToolButton(option, painter);
++ painter-&gt;restore();
++
++ if (vertical)
++ m_style-&gt;drawSymbol(option, painter, (opt-&gt;arrowType == Qt::LeftArrow) ? IaOraStyle::SymbolArrowLeft : IaOraStyle::SymbolArrowRight);
++ else
++ m_style-&gt;drawSymbol(option, painter, (opt-&gt;arrowType == Qt::UpArrow) ? IaOraStyle::SymbolArrowUp : IaOraStyle::SymbolArrowDown);
++ } else // if not...
++ m_style-&gt;drawToolButton(option, painter);
++ break;
++ }
++ default:
++ QCommonStyle::drawComplexControl(control, option, painter, widget);
++ }
++}
++
++QIcon IaOraQt::standardIconImplementation(QStyle::StandardPixmap standardIcon, const QStyleOption *option, const QWidget *widget) const
++{
++ if (m_style-&gt;hasIcon(standardIcon))
++ return m_style-&gt;standardIcon(standardIcon, option, widget);
++
++ return QCommonStyle::standardIconImplementation(standardIcon, option, widget);
++}
++
++QRect IaOraQt::subControlRect(ComplexControl control, const QStyleOptionComplex *option, SubControl subControl, const QWidget *widget) const
++{
++ QRect r = QCommonStyle::subControlRect(control, option, subControl, widget);
++
++ switch (control)
++ {
++ case QStyle::CC_SpinBox:
++ if (subControl == QStyle::SC_SpinBoxEditField)
++ r.adjust(-1,-1,1,1);
++ break;
++ case QStyle::CC_ComboBox:
++ if (subControl == QStyle::SC_ComboBoxEditField)
++ r.adjust(-3,-3,1,2);
++ else if (subControl == QStyle::SC_ComboBoxArrow)
++ r.adjust(0,-1,1,1);
++ break;
++ default:
++ break;
++ }
++
++ return r;
++}
++
++QRect IaOraQt::subElementRect(SubElement element, const QStyleOption *option, const QWidget *widget) const
++{
++ QRect r = QCommonStyle::subElementRect(element, option, widget);
++
++ switch (element)
++ {
++ case SE_LineEditContents:
++ if (widget-&gt;parentWidget()){
++ if (!qstrcmp(widget-&gt;parentWidget()-&gt;metaObject()-&gt;className(), &quot;KHBox&quot;))
++ r.adjust(0,-1,0,0);
++ else
++ r.adjust(3,1,-1,0);
++ }
++ break;
++ default:
++ break;
++ }
++
++ return r;
++}
++
++#include &quot;iaora-qt.moc&quot;
+
+
+Property changes on: theme/ia_ora-kde4/src/iaora-qt.cpp
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4srciaoraqth">Added: theme/ia_ora-kde4/src/iaora-qt.h</a>
+===================================================================
+--- theme/ia_ora-kde4/src/iaora-qt.h (rev 0)
++++ theme/ia_ora-kde4/src/iaora-qt.h 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,59 @@
++/*
++ * Copyright 2008 Gustavo Pichorim Boiko &lt;boiko@mandriva.com&gt;
++ * Copyright 2008-2009 Rodrigo Gonçalves de Oliveira &lt;rodrigo@mandriva.com&gt;
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 3 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ */
++
++#ifndef IAORA_QT_H
++#define IAORA_QT_H
++
++#include &lt;QCommonStyle&gt;
++
++class IaOraStyle;
++
++class Q_DECL_EXPORT IaOraQt : public QCommonStyle
++{
++ Q_OBJECT
++public:
++ IaOraQt();
++ ~IaOraQt();
++
++ void drawPrimitive(PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = 0) const;
++ void drawControl(ControlElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = 0) const;
++
++ virtual int pixelMetric(PixelMetric metric, const QStyleOption *option = 0, const QWidget *widget = 0 ) const;
++
++ virtual void drawItemText(QPainter *painter, const QRect &amp;rect, int alignment, const QPalette &amp;pal,
++ bool enabled, const QString&amp; text, QPalette::ColorRole textRole) const;
++ virtual void drawComplexControl(ComplexControl control, const QStyleOptionComplex *option, QPainter *painter, const QWidget *widget = 0) const;
++ virtual int styleHint(StyleHint hint, const QStyleOption *option = 0, const QWidget *widget = 0, QStyleHintReturn *returnData = 0 ) const;
++ virtual QSize sizeFromContents(ContentsType type, const QStyleOption *option, const QSize &amp;contentsSize, const QWidget *widget = 0) const;
++
++ virtual QRect subControlRect(ComplexControl control, const QStyleOptionComplex *option, SubControl subControl, const QWidget *widget = 0) const;
++ virtual QRect subElementRect(SubElement element, const QStyleOption *option, const QWidget *widget) const;
++
++ void polish(QWidget *widget);
++ void unpolish(QWidget *widget);
++
++protected slots:
++ QIcon standardIconImplementation(StandardPixmap standardIcon, const QStyleOption *option, const QWidget *widget) const;
++
++private:
++ IaOraStyle *m_style;
++};
++
++#endif
+
+
+Property changes on: theme/ia_ora-kde4/src/iaora-qt.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4srciaoracolors">Added: theme/ia_ora-kde4/src/iaoracolors</a>
+===================================================================
+--- theme/ia_ora-kde4/src/iaoracolors (rev 0)
++++ theme/ia_ora-kde4/src/iaoracolors 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,58 @@
++[Default]
++gray0=#EFF3F7
++gray1=#DFE7EF
++gray2=#CFD7DF
++gray3=#C7D3DF
++gray4=#B6C3CF
++gray5=#A6B2C7
++gray6=#8692A6
++
++[Arctic]
++color0=#EFF7FF
++color1=#C7DFFF
++color2=#8EC7FF
++color3=#79BEFF
++color4=#69B6FF
++
++[Blue]
++color0=#A6B6E7
++color1=#8EA2CF
++color2=#4965AE
++color3=#415DA6
++color4=#21459C
++
++[Gray]
++color0=#DFE7EF
++color1=#CFD7DF
++color2=#C7D3DF
++color3=#B6C3CF
++color4=#A6B2C7
++
++[Night]
++color0=#ACB9EA
++color1=#808DC6
++color2=#5D658E
++color3=#3D4467
++color4=#272F4F
++
++[Orange]
++color0=#FFDF10
++color1=#FFCB10
++color2=#F7B610
++color3=#FFA208
++color4=#F79600
++
++[Smooth]
++color0=#CEE3FF
++color1=#ADCFFF
++color2=#7BAAE7
++color3=#5A8AD6
++color4=#427DC6
++
++[Steel]
++color0=#A2DBE3
++color1=#3BBECF
++color2=#158CCD
++color3=#056EA3
++color4=#0A3453
++
+
+<a id="themeia_orakde4srciaorastylecpp">Added: theme/ia_ora-kde4/src/iaorastyle.cpp</a>
+===================================================================
+--- theme/ia_ora-kde4/src/iaorastyle.cpp (rev 0)
++++ theme/ia_ora-kde4/src/iaorastyle.cpp 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,328 @@
++/*
++ * Copyright 2008 Gustavo Pichorim Boiko &lt;boiko@mandriva.com&gt;
++ * Copyright 2008-2009 Rodrigo Gonçalves de Oliveira &lt;rodrigo@mandriva.com&gt;
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 3 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ */
++
++#include &quot;iaorastyle.h&quot;
++
++#include &lt;QSettings&gt;
++#include &lt;QDebug&gt;
++
++QHash&lt;QString, ColorData*&gt; IaOraStyle::m_data;
++
++IaOraStyle::IaOraStyle(QStyle *parent)
++{
++ m_parent = parent;
++}
++
++IaOraStyle::~IaOraStyle()
++{
++}
++
++// helper function to create the hash
++inline QString hashPalette(const QPalette &amp;pal)
++{
++ QString hash = pal.color(QPalette::Window).name();
++ hash += pal.color(QPalette::Highlight).name();
++ return hash;
++}
++
++ColorData *IaOraStyle::lookupData(const QPalette &amp;pal)
++{
++ QString hash = hashPalette(pal);
++
++ // if already cached, just return
++ if (m_data.contains(hash))
++ return m_data[hash];
++
++ ColorData *data = new ColorData();
++ QColor background = pal.color(QPalette::Window);
++ QColor highlight = pal.color(QPalette::Highlight);
++
++ //TODO: check whether black and white should not be black and white
++ data-&gt;black = Qt::black;
++ data-&gt;white = Qt::white;
++
++ QSettings conf(&quot;/etc/iaoracolors&quot;, QSettings::NativeFormat); // TODO: define where this file must go
++
++ if (background.name() == &quot;#eff3f7&quot;)
++ {
++ conf.beginGroup(&quot;Default&quot;);
++ data-&gt;gray[0] = (conf.value(&quot;gray0&quot;, background)).value&lt;QColor&gt;();
++ data-&gt;gray[1] = (conf.value(&quot;gray1&quot;, background.dark(107))).value&lt;QColor&gt;();
++ data-&gt;gray[2] = (conf.value(&quot;gray2&quot;, background.dark(115))).value&lt;QColor&gt;();
++ data-&gt;gray[3] = (conf.value(&quot;gray3&quot;, background.dark(117))).value&lt;QColor&gt;();
++ data-&gt;gray[4] = (conf.value(&quot;gray4&quot;, background.dark(131))).value&lt;QColor&gt;();
++ data-&gt;gray[5] = (conf.value(&quot;gray5&quot;, background.dark(144))).value&lt;QColor&gt;();
++ data-&gt;gray[6] = (conf.value(&quot;gray6&quot;, background.dark(178))).value&lt;QColor&gt;();
++ conf.endGroup();
++ } else
++ {
++ data-&gt;gray[0] = background;
++ data-&gt;gray[1] = background.dark(107);
++ data-&gt;gray[2] = background.dark(115);
++ data-&gt;gray[3] = background.dark(117);
++ data-&gt;gray[4] = background.dark(131);
++ data-&gt;gray[5] = background.dark(144);
++ data-&gt;gray[6] = background.dark(178);
++ }
++
++ QString group = &quot;&quot;;
++
++ if (highlight.name() == &quot;#8ec7ff&quot;) group = &quot;Arctic&quot;;
++ else if (highlight.name() == &quot;#4965ae&quot;) group = &quot;Blue&quot;;
++ else if (highlight.name() == &quot;#cfd7df&quot;) group = &quot;Gray&quot;;
++ else if (highlight.name() == &quot;#5d658e&quot;) group = &quot;Night&quot;;
++ else if (highlight.name() == &quot;#f7b610&quot;) group = &quot;Orange&quot;;
++ else if (highlight.name() == &quot;#7baae7&quot;) group = &quot;Smooth&quot;;
++ else if (highlight.name() == &quot;#148dcd&quot;) group = &quot;Steel&quot;;
++
++ if (!group.isEmpty())
++ {
++ conf.beginGroup(group);
++ data-&gt;color[0] = (conf.value(&quot;color0&quot;, highlight.light(150))).value&lt;QColor&gt;();
++ data-&gt;color[1] = (conf.value(&quot;color1&quot;, highlight.light(137))).value&lt;QColor&gt;();
++ data-&gt;color[2] = (conf.value(&quot;color2&quot;, highlight)).value&lt;QColor&gt;();
++ data-&gt;color[3] = (conf.value(&quot;color3&quot;, highlight.light(112))).value&lt;QColor&gt;();
++ data-&gt;color[4] = (conf.value(&quot;color4&quot;, highlight.light(130))).value&lt;QColor&gt;();
++ conf.endGroup();
++ } else
++ {
++ data-&gt;color[0] = highlight.light(150);
++ data-&gt;color[1] = highlight.light(137);
++ data-&gt;color[2] = highlight;
++ data-&gt;color[3] = highlight.dark(112);
++ data-&gt;color[4] = highlight.dark(130);
++ }
++
++ m_data[hash] = data;
++ return data;
++}
++
++void IaOraStyle::drawItemText(QPainter *painter, const QRect &amp;rect, int alignment, const QPalette &amp;pal,
++ bool enabled, const QString&amp; text, QPalette::ColorRole textRole) const
++{
++ ColorData *data = lookupData(pal);
++ QPen oldPen = painter-&gt;pen();
++
++ QPen pen = oldPen;
++
++ if (!enabled)
++ pen.setColor(data-&gt;gray[4]);
++ else if (textRole != QPalette::NoRole)
++ pen.setColor(pal.color(textRole));
++
++ painter-&gt;setPen(pen);
++ painter-&gt;drawText(rect, alignment, text);
++
++ painter-&gt;setPen(oldPen);
++}
++
++void IaOraStyle::drawBranch(const QStyleOption *option, QPainter *painter)
++{
++ ColorData *data = lookupData(option-&gt;palette);
++ painter-&gt;save();
++ QPointF center = option-&gt;rect.center();
++ QColor lineColor = option-&gt;palette.color(QPalette::Text);
++ QPen pen = painter-&gt;pen();
++ pen.setStyle(Qt::DotLine);
++ pen.setColor(lineColor);
++ painter-&gt;setPen(pen);
++
++ if (option-&gt;state &amp; (QStyle::State_Item | QStyle::State_Sibling))
++ {
++ if (option-&gt;state &amp; QStyle::State_Sibling)
++ {
++ painter-&gt;drawLine(center.x(), center.y(), center.x(), option-&gt;rect.bottom());
++ painter-&gt;drawLine(center.x(), option-&gt;rect.y() + 1, center.x(), center.y());
++ }
++ else
++ painter-&gt;drawLine(center.x(), option-&gt;rect.y(), center.x(), center.y());
++
++ if (option-&gt;state &amp; QStyle::State_Item){
++ if (option-&gt;direction == Qt::LeftToRight)
++ painter-&gt;drawLine(m_parent-&gt;visualPos(option-&gt;direction, option-&gt;rect, QPoint(center.x() + 1, center.y())),
++ m_parent-&gt;visualPos(option-&gt;direction, option-&gt;rect, QPoint(option-&gt;rect.right(), center.y())));
++ else{
++ painter-&gt;drawLine(center.x(), center.y(), center.x() + 1, center.y());
++ painter-&gt;drawLine(center.x(), center.y(), option-&gt;rect.left(), center.y());
++ }
++ }
++ }
++ if (option-&gt;state &amp; QStyle::State_Children)
++ {
++ painter-&gt;setBrush(data-&gt;white);
++ painter-&gt;setPen(Qt::NoPen);
++ QRect r(0,0,9,9);
++ r.moveCenter(option-&gt;rect.center());
++ painter-&gt;drawRect(r.adjusted(1,1,-1,-1));
++ drawFrameCuttingOne(painter, r, lineColor);
++ drawSymbol(option, painter, (option-&gt;state &amp; QStyle::State_Open) ? SymbolMinus : SymbolPlus);
++ }
++ painter-&gt;restore();
++}
++
++void IaOraStyle::drawPanelItemViewItem(const QStyleOption *opt, QPainter *p, bool itemViewItem)
++{
++ const QStyleOptionViewItemV4 *pvi = qstyleoption_cast&lt;const QStyleOptionViewItemV4 *&gt;(opt);
++ if (!pvi)
++ return;
++ else
++ p-&gt;fillRect(opt-&gt;rect, pvi-&gt;backgroundBrush);
++
++ ColorData *data = lookupData(opt-&gt;palette);
++
++ p-&gt;save();
++ p-&gt;setRenderHint(QPainter::Antialiasing);
++ QRect r = pvi-&gt;rect;
++
++ //if (pvi-&gt;state &amp; QStyle::State_HasFocus)
++ // in case of the need to use the HasFocus state, remove the commented lines and commend the above line
++ /*if (( pvi-&gt;state &amp; QStyle::State_HasFocus ) || ( pvi-&gt;state &amp; QStyle::State_Selected))
++ {
++ p-&gt;setBrush(data-&gt;color[2]);
++ p-&gt;setPen(Qt::NoPen);
++ p-&gt;drawRoundedRect(r, 3.0, 3.0);
++ }*/
++ /*else*/ if (pvi-&gt;state &amp; QStyle::State_Selected)
++ {
++ p-&gt;setBrush(data-&gt;color[2]);
++ p-&gt;setPen(Qt::NoPen);
++ p-&gt;drawRoundedRect(r, 3.0, 3.0);
++ }/**/
++ p-&gt;restore();
++
++ if (itemViewItem){
++ QRect checkRect;
++ QRect iconRect;
++ QSize iconSize = pvi-&gt;decorationSize;
++ bool hasCheck = pvi-&gt;features &amp; QStyleOptionViewItemV2::HasCheckIndicator;
++ bool hasIcon = pvi-&gt;features &amp; QStyleOptionViewItemV2::HasDecoration;
++ bool hasText = pvi-&gt;features &amp; QStyleOptionViewItemV2::HasDisplay;
++ bool leftToRight = (pvi-&gt;direction == Qt::LeftToRight) ? true : false;
++
++ // the checkbox on the item
++ if (hasCheck){
++ QStyleOptionButton button;
++
++
++ checkRect = QRect(r.left(), r.center().y() - 6, 13, 13);
++ if (!hasText) checkRect.adjust(6, 0, 6, 0); // TEMPORARY HACK
++ //if (!hasText) checkRect.moveCenter(r.center());
++
++ checkRect = QStyle::visualRect(pvi-&gt;direction, pvi-&gt;rect, checkRect);
++
++ button.rect = checkRect;
++ button.state = pvi-&gt;state;
++
++ switch (pvi-&gt;checkState){
++ case Qt::Unchecked:
++ button.state |= QStyle::State_Off;
++
++ break;
++ case Qt::PartiallyChecked:
++ button.state |= QStyle::State_NoChange;
++
++ break;
++ case Qt::Checked:
++ button.state |= QStyle::State_On;
++
++ break;
++ }
++
++ drawCheckBox(&amp;button, p);
++ }
++
++ int shiftx = 0, shifty = 0, shiftw = 0;
++
++ // some icon
++ if (hasIcon){
++ switch (pvi-&gt;decorationPosition){
++ case QStyleOptionViewItem::Left:
++ if (hasCheck)
++ iconRect = QRect(r.topLeft() + QPoint(checkRect.width() + 2, 0), iconSize);
++ else
++ iconRect = QRect(r.topLeft(), iconSize);
++
++ if (leftToRight) shiftx = 3 + iconSize.width();
++ else shiftw = -(3 + iconSize.width());
++
++ break;
++ case QStyleOptionViewItem::Right:
++ iconRect = QRect(r.topRight() - QPoint(iconSize.width(), 0), iconSize);
++ shiftw = -(3 + iconSize.width());
++
++ break;
++ case QStyleOptionViewItem::Top:
++ iconRect = QRect(r.left(), r.top(), r.width(), iconSize.height());
++ shifty = iconRect.height();
++
++ break;
++ case QStyleOptionViewItem::Bottom:
++ iconRect = QRect(r.left(), r.bottom() - iconSize.height(), r.width(), r.bottom());
++
++ break;
++ }
++
++ iconRect = QStyle::visualRect(pvi-&gt;direction, pvi-&gt;rect, iconRect);
++
++ QIcon::Mode mode = pvi-&gt;state &amp; QStyle::State_Enabled ? QIcon::Normal : QIcon::Disabled;
++ QPixmap pix = pvi-&gt;icon.pixmap(iconSize, mode);
++
++ m_parent-&gt;drawItemPixmap(p, iconRect, pvi-&gt;displayAlignment, pix);
++ } else shiftx = 3;
++
++ // and the text
++ p-&gt;save();
++ QFont font = pvi-&gt;font;
++ if (font.bold()) p-&gt;setFont(font);
++
++ if (hasCheck){
++ if (leftToRight) shiftx += iconSize.width();
++ else shiftw -= iconSize.width();
++ }
++
++ drawItemText(p, r.adjusted(shiftx, shifty, shiftw, 0), pvi-&gt;displayAlignment, pvi-&gt;palette, true,
++ pvi-&gt;text, (pvi-&gt;state &amp; QStyle::State_Selected) ? QPalette::HighlightedText : QPalette::Text);
++ p-&gt;restore();
++ }
++}
++
++void IaOraStyle::drawPanelItemViewRow(const QStyleOption *opt, QPainter *p){
++ const QStyleOptionViewItemV4 *row = qstyleoption_cast&lt;const QStyleOptionViewItemV4 *&gt;(opt);
++
++ if (!row)
++ return;
++
++ ColorData *data = lookupData(opt-&gt;palette);
++ bool alternateColor = row-&gt;features &amp; QStyleOptionViewItemV2::Alternate;
++
++ p-&gt;save();
++ p-&gt;setRenderHint(QPainter::Antialiasing);
++
++ QPalette::ColorGroup colorGroup(opt-&gt;state &amp; QStyle::State_Enabled
++ ? opt-&gt;state &amp; QStyle::State_Active
++ ? QPalette::Normal
++ : QPalette::Inactive
++ : QPalette::Disabled);
++ if (alternateColor)
++ p-&gt;fillRect(opt-&gt;rect, opt-&gt;palette.brush(colorGroup, QPalette::AlternateBase));
++
++ p-&gt;restore();
++}
++
+
+
+Property changes on: theme/ia_ora-kde4/src/iaorastyle.cpp
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4srciaorastyleh">Added: theme/ia_ora-kde4/src/iaorastyle.h</a>
+===================================================================
+--- theme/ia_ora-kde4/src/iaorastyle.h (rev 0)
++++ theme/ia_ora-kde4/src/iaorastyle.h 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,145 @@
++/*
++ * Copyright 2008 Gustavo Pichorim Boiko &lt;boiko@mandriva.com&gt;
++ * Copyright 2008-2009 Rodrigo Gonçalves de Oliveira &lt;rodrigo@mandriva.com&gt;
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 3 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ */
++
++#ifndef IAORASTYLE_H
++#define IAORASTYLE_H
++
++#include &lt;QColor&gt;
++#include &lt;QRect&gt;
++#include &lt;QPalette&gt;
++#include &lt;QIcon&gt;
++#include &lt;QStyle&gt;
++#include &lt;QPainter&gt;
++#include &lt;QStyleOption&gt;
++#include &lt;QStyle&gt;
++#include &lt;QHash&gt;
++
++typedef struct
++{
++ QColor gray[7];
++ QColor color[5];
++ QColor black;
++ QColor white;
++} ColorData;
++
++class IaOraStyle
++{
++public:
++ enum FrameType
++ {
++ FrameFocus,
++ FrameGeneric,
++ FrameMenuBar,
++ FrameToolBar,
++ FrameProgressBar,
++ FrameLineEdit,
++ FrameHeader,
++ FrameComboBox,
++ FrameMenu,
++ FrameTabBar,
++ FrameGroupBox,
++ FrameFrame
++ };
++ enum Border
++ {
++ BorderNone = 0,
++ BorderTop = 1,
++ BorderLeft = 2,
++ BorderBottom = 4,
++ BorderRight = 8,
++ BorderAll = 15
++ };
++
++ enum Symbol
++ {
++ SymbolArrowLeft,
++ SymbolArrowRight,
++ SymbolArrowUp,
++ SymbolArrowDown,
++ SymbolPlus,
++ SymbolMinus
++ };
++ IaOraStyle(QStyle *parent);
++ ~IaOraStyle();
++
++ void drawFrame(const QStyleOption *opt, QPainter *p, FrameType f = FrameGeneric, QRect optRect = QRect());
++ //void drawFrame(const QStyleOption *opt, QPainter *p, FrameType f = FrameGeneric);
++ void drawBorder(QPainter *painter, const QStyleOption *opt, const QRect &amp;rect, bool active, int border = BorderAll);
++ void drawSeparator(const QStyleOption *opt, QPainter *p, int margin = 5);
++ void drawHandle(const QStyleOption *opt, QPainter *p);
++ void drawButton(const QStyleOption *opt, QPainter *p, bool simplified = false, bool vertical = false);
++ void drawButtonDefaultBorder(const QStyleOption *opt, QPainter *p);
++ void drawToolButton(const QStyleOption *opt, QPainter *p/*, bool simplified = false, bool vertical = false*/);
++ void drawItemText(QPainter *painter, const QRect &amp;rect, int alignment, const QPalette &amp;pal,
++ bool enabled, const QString&amp; text, QPalette::ColorRole textRole) const;
++ void drawProgressBarContents(const QStyleOption *opt, QPainter *p, bool kde = false);
++ void drawCheckBox(const QStyleOption *opt, QPainter *p);
++ void drawRadioButton(const QStyleOption *opt, QPainter *p);
++ void drawSymbol(const QStyleOption *opt, QPainter *p, Symbol s);
++ void drawScrollBarEmptySpace(const QStyleOption *opt, QPainter *p);
++ void drawScrollBarButton(const QStyleOption *opt, QPainter *p, Symbol s);
++ void drawScrollBarHandle(const QStyleOption *opt, QPainter *p);
++ void drawSlider(const QStyleOption *opt, QPainter *p,
++ const QRect &amp;grooveRegion, const QRect &amp;handle, const QRect &amp;ticks);
++ void drawComboBox(const QStyleOptionComplex *opt, QPainter *p);
++ void drawComboBoxLabel(const QStyleOption *opt, QPainter *p);
++ void drawSpinBox(const QStyleOptionComplex *opt, QPainter *p);
++ void drawDial(const QStyleOption *opt, QPainter *p);
++ void drawQ3ListView(const QStyleOption *opt, QPainter *p, const QWidget *w);
++ void drawMenuItem(const QStyleOption *opt, QPainter *p, bool saveSpaceForIcon = true);
++ void drawDockWindowTitle(const QStyleOption *opt, QPainter *p);
++ void drawTabBarTab(const QStyleOption *opt, QPainter *p);
++ void drawTitleBarButton(const QStyleOptionComplex *opt, QPainter *p, const QWidget *w, QStyle::SubControl control, QStyle::StandardPixmap icon);
++ void drawTitleBar(const QStyleOptionComplex *opt, QPainter *p, const QWidget *w = 0);
++ void drawBranch(const QStyleOption *opt, QPainter *p);
++ void drawPanelItemViewItem(const QStyleOption *opt, QPainter *p, bool itemText = false);
++ void drawPanelItemViewRow(const QStyleOption *opt, QPainter *p);
++ QIcon standardIcon(QStyle::StandardPixmap icon, const QStyleOption *option, const QWidget *widget);
++
++ bool hasIcon(QStyle::StandardPixmap icon);
++protected:
++ static ColorData *lookupData(const QPalette &amp;pal);
++
++private:
++ static QHash&lt;QString, ColorData*&gt; m_data;
++ QStyle *m_parent;
++};
++
++inline void drawFrameCuttingOne(QPainter *p, const QRect &amp;r, const QColor &amp;c)
++{
++ int top = r.top(), left = r.left(), bottom = r.bottom(), right = r.right();
++ p-&gt;setPen(QPen(c,1));
++ p-&gt;drawLine(left+1, top, right-1, top); //top
++ p-&gt;drawLine(left, top+1, left, bottom-1); //left
++ p-&gt;drawLine(left+1, bottom, right-1, bottom); //bottom
++ p-&gt;drawLine(right, top+1, right, bottom-1); // right*/
++}
++
++inline void fillRectCuttingOne(QPainter *p, const QRect &amp;r, const QBrush &amp;b)
++{
++ p-&gt;fillRect(r.adjusted(1,0,-1,0), b);
++ p-&gt;setPen(QPen(b, 1));
++
++ int top = r.top(), bottom = r.bottom(), left = r.left(), right = r.right();
++ p-&gt;drawLine(left, top+1, left, bottom-1);
++ p-&gt;drawLine(right, top+1, right, bottom-1);
++}
++
++#endif
+
+
+Property changes on: theme/ia_ora-kde4/src/iaorastyle.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4srciaorastyle_buttoncpp">Added: theme/ia_ora-kde4/src/iaorastyle_button.cpp</a>
+===================================================================
+--- theme/ia_ora-kde4/src/iaorastyle_button.cpp (rev 0)
++++ theme/ia_ora-kde4/src/iaorastyle_button.cpp 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,144 @@
++/*
++ * Copyright 2008 Gustavo Pichorim Boiko &lt;boiko@mandriva.com&gt;
++ * Copyright 2008-2009 Rodrigo Gonçalves de Oliveira &lt;rodrigo@mandriva.com&gt;
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 3 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ */
++
++#include &quot;iaorastyle.h&quot;
++
++void IaOraStyle::drawButton(const QStyleOption *opt, QPainter *p, bool simplified, bool vertical)
++{
++ bool enabled = (opt-&gt;state &amp; QStyle::State_Enabled);
++
++ QPalette pal = opt-&gt;palette;
++ if (!enabled)
++ pal.setCurrentColorGroup(QPalette::Active); // when the button is disabled, use the same palette as if enabled
++
++ ColorData *data = lookupData(pal);
++
++ // TODO: cache the gradients so that it is more efficient
++ bool sunken = (opt-&gt;state &amp; QStyle::State_Sunken);
++ bool on = (opt-&gt;state &amp; QStyle::State_On);
++ QRect r = opt-&gt;rect;
++ int top = r.top(), left = r.left(), bottom = r.bottom(), right = r.right();
++
++ QPen oldPen = p-&gt;pen();
++
++ QLinearGradient g;
++ if (vertical)
++ {
++ g.setStart(left, 0);
++ g.setFinalStop(right, 0);
++ }
++ else
++ {
++ g.setStart(0, top);
++ g.setFinalStop(0, bottom);
++ }
++
++ if (sunken || on)
++ { g.setColorAt(0., data-&gt;gray[2]);
++ g.setColorAt(1., data-&gt;gray[1]);
++ }
++ else
++ {
++ g.setColorAt(0., data-&gt;gray[0]);
++ g.setColorAt(1., data-&gt;gray[2]);
++ }
++
++ QRect contents = r;
++ if (!simplified)
++ contents.adjust(2,2,-2,-2);
++ p-&gt;fillRect(contents, g);
++
++ if (!simplified)
++ {
++ //draw the lines around
++ if (!sunken &amp;&amp; !on)
++ p-&gt;setPen(data-&gt;white);
++ else
++ p-&gt;setPen(enabled ? data-&gt;gray[1] : data-&gt;gray[2]);
++ p-&gt;drawLine(left + 2, top + 1, right - 2, top + 1);
++ p-&gt;drawLine(left + 1, top + 2, left + 1, bottom - 2);
++
++ if (enabled)
++ p-&gt;setPen(data-&gt;gray[1]);
++ else
++ p-&gt;setPen((sunken || on) ? data-&gt;white : data-&gt;gray[1]);
++ p-&gt;drawLine(left + 2, bottom - 1, right - 2, bottom - 1);
++ p-&gt;drawLine(right - 1, top + 2, right - 1, bottom - 2);
++
++ // the outter line
++ if (enabled)
++ p-&gt;setPen(data-&gt;gray[5]);
++ else
++ p-&gt;setPen(data-&gt;gray[4]);
++ p-&gt;drawLine(left + 2, top, right - 2, top); // top
++ p-&gt;drawLine(left, top + 2, left, bottom - 2); // left
++ p-&gt;setPen(data-&gt;gray[4]);
++ p-&gt;drawLine(left + 2, bottom, right - 2, bottom); // bottom
++ p-&gt;drawLine(right, top + 2, right, bottom - 2); // right
++
++ // and finally the four points
++ QPoint points[4];
++ points[0] = QPoint(left + 1, top + 1);
++ points[1] = QPoint(right - 1, top + 1);
++ points[2] = QPoint(right - 1, bottom - 1);
++ points[3] = QPoint(left + 1, bottom - 1);
++ p-&gt;drawPoints(points, 4);
++
++ // if selected, draw the selection frame
++ if (opt-&gt;state &amp; QStyle::State_HasFocus)
++ {
++ QStyleOption copy = *opt;
++ copy.rect = r.adjusted(2, 2, -2, -2);
++ drawFrame(&amp;copy, p, FrameFocus);
++ }
++ }
++
++ p-&gt;setPen(oldPen);
++}
++
++void IaOraStyle::drawButtonDefaultBorder(const QStyleOption *opt, QPainter *p)
++{
++ ColorData *data = lookupData(opt-&gt;palette);
++ QRect r = opt-&gt;rect;
++ int top = r.top(), left = r.left(), bottom = r.bottom(), right = r.right();
++
++ QPen oldPen = p-&gt;pen();
++
++ p-&gt;setPen(data-&gt;color[4]);
++ p-&gt;drawLine(left+3, top, right-3, top); //top
++ p-&gt;drawLine(left+3, bottom, right-3, bottom); //bottom
++ p-&gt;drawLine(left, top+3, left, bottom-3); //left
++ p-&gt;drawLine(right, top+3, right, bottom-3); //right
++
++ //the points
++ QPoint points[8];
++ points[0] = QPoint(left+1,top+2);
++ points[1] = QPoint(left+2,top+1);
++ points[2] = QPoint(right-1,top+2);
++ points[3] = QPoint(right-2,top+1);
++ points[4] = QPoint(left+1,bottom-2);
++ points[5] = QPoint(left+2,bottom-1);
++ points[6] = QPoint(right-1,bottom-2);
++ points[7] = QPoint(right-2,bottom-1);
++ p-&gt;drawPoints(points, 8);
++
++ p-&gt;setPen(oldPen);
++}
++
+
+
+Property changes on: theme/ia_ora-kde4/src/iaorastyle_button.cpp
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4srciaorastyle_comboboxcpp">Added: theme/ia_ora-kde4/src/iaorastyle_combobox.cpp</a>
+===================================================================
+--- theme/ia_ora-kde4/src/iaorastyle_combobox.cpp (rev 0)
++++ theme/ia_ora-kde4/src/iaorastyle_combobox.cpp 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,110 @@
++/*
++ * Copyright 2008 Gustavo Pichorim Boiko &lt;boiko@mandriva.com&gt;
++ * Copyright 2008-2009 Rodrigo Gonçalves de Oliveira &lt;rodrigo@mandriva.com&gt;
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 3 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ */
++
++#include &quot;iaorastyle.h&quot;
++
++void IaOraStyle::drawComboBox(const QStyleOptionComplex *opt, QPainter *p)
++{
++ /* TODO: check why Qt is not respecting PM_ComboBoxFrame */
++ const QStyleOptionComboBox *cmb = qstyleoption_cast&lt;const QStyleOptionComboBox *&gt;(opt);
++ bool sunken = cmb-&gt;state &amp; QStyle::State_On; // play dead if combobox has no items
++ QRect r = opt-&gt;rect;
++
++ QStyleOptionComboBox copy = *cmb;
++ if (!cmb)
++ return;
++
++ if (!cmb-&gt;editable)
++ {
++ QStyleOptionButton buttonOption;
++ buttonOption.QStyleOption::operator=(*cmb);
++ if (!sunken)
++ buttonOption.state &amp;= ~QStyle::State_Sunken;
++
++ m_parent-&gt;drawPrimitive(QStyle::PE_PanelButtonCommand, &amp;buttonOption, p);
++ }
++ else
++ {
++ if (cmb-&gt;frame &amp;&amp; (cmb-&gt;subControls &amp; QStyle::SC_ComboBoxFrame))
++ {
++ QRect r = m_parent-&gt;subControlRect(QStyle::CC_ComboBox, cmb, QStyle::SC_ComboBoxFrame);
++
++ copy.rect = r;
++ drawFrame(&amp;copy, p);
++ }
++ }
++
++ if (cmb-&gt;subControls &amp; QStyle::SC_ComboBoxArrow)
++ {
++ copy.rect = m_parent-&gt;subControlRect(QStyle::CC_ComboBox, opt, QStyle::SC_ComboBoxArrow);
++
++ if (cmb-&gt;editable)
++ {
++ // draw the button background
++ drawButton(&amp;copy, p, true);
++ drawBorder(p, opt, copy.rect, (cmb-&gt;state &amp; QStyle::State_Enabled), BorderLeft);
++
++ }
++ copy.rect.adjust(2,1,0,0);
++ drawSymbol(&amp;copy, p, IaOraStyle::SymbolArrowDown);
++ if (!cmb-&gt;editable)
++ {
++ // draw also the separator
++ copy.rect = QRect(copy.rect.left() - 2, r.top() + 4, 2, r.height() - 8);
++ copy.state = QStyle::State_Horizontal;
++ drawSeparator(&amp;copy, p, 4);
++ }
++ }
++}
++
++void IaOraStyle::drawComboBoxLabel(const QStyleOption *opt, QPainter *p)
++{
++ const QStyleOptionComboBox *cb = qstyleoption_cast&lt;const QStyleOptionComboBox*&gt;(opt);
++ if (!cb)
++ return;
++
++ QRect r = m_parent-&gt;subControlRect(QStyle::CC_ComboBox, cb, QStyle::SC_ComboBoxEditField);
++ r.adjust(3,1,-1,0);
++
++ if (!cb-&gt;currentIcon.isNull())
++ {
++ QIcon::Mode mode = cb-&gt;state &amp; QStyle::State_Enabled ? QIcon::Normal : QIcon::Disabled;
++ QPixmap pix = cb-&gt;currentIcon.pixmap(cb-&gt;iconSize, mode);
++ QRect iconRect(r);
++ iconRect.setWidth(cb-&gt;iconSize.width() + 4);
++ iconRect = m_parent-&gt;alignedRect(cb-&gt;direction, Qt::AlignLeft | Qt::AlignVCenter, iconRect.size(), r);
++
++ if (cb-&gt;editable)
++ p-&gt;fillRect(iconRect, opt-&gt;palette.brush(QPalette::Base));
++ m_parent-&gt;drawItemPixmap(p, iconRect, Qt::AlignCenter, pix);
++
++ if (cb-&gt;direction == Qt::RightToLeft)
++ r.translate(-4 - cb-&gt;iconSize.width(), 0);
++ else
++ r.translate(cb-&gt;iconSize.width() + 4, 0);
++ }
++
++ if (!cb-&gt;currentText.isEmpty() &amp;&amp; !cb-&gt;editable)
++ {
++ m_parent-&gt;drawItemText(p, r.adjusted(1, 0, -1, 0),
++ m_parent-&gt;visualAlignment(cb-&gt;direction, Qt::AlignLeft | Qt::AlignVCenter),
++ cb-&gt;palette, cb-&gt;state &amp; QStyle::State_Enabled, cb-&gt;currentText);
++ }
++}
+
+
+Property changes on: theme/ia_ora-kde4/src/iaorastyle_combobox.cpp
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4srciaorastyle_dialcpp">Added: theme/ia_ora-kde4/src/iaorastyle_dial.cpp</a>
+===================================================================
+--- theme/ia_ora-kde4/src/iaorastyle_dial.cpp (rev 0)
++++ theme/ia_ora-kde4/src/iaorastyle_dial.cpp 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,96 @@
++/*
++ * Copyright 2008 Gustavo Pichorim Boiko &lt;boiko@mandriva.com&gt;
++ * Copyright 2008-2010 Rodrigo Gonçalves de Oliveira &lt;rodrigo@mandriva.com&gt;
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 3 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ */
++
++#include &quot;iaorastyle.h&quot;
++
++#include &lt;cmath&gt;
++
++void IaOraStyle::drawDial(const QStyleOption *opt, QPainter *p)
++{
++ QPalette pal = opt-&gt;palette;
++ pal.setCurrentColorGroup(QPalette::Active);
++ ColorData *data = lookupData(pal);
++
++ const QStyleOptionSlider *dial = qstyleoption_cast&lt;const QStyleOptionSlider *&gt;(opt);
++ if (!dial)
++ return;
++
++ // use a square
++ QRect r = QRect(0,0, qMin(opt-&gt;rect.width(), opt-&gt;rect.height()), qMin(opt-&gt;rect.width(), opt-&gt;rect.height()));
++ r.moveCenter(opt-&gt;rect.center());
++ r.adjust(3,3,-3,-3);
++
++ QPen oldPen = p-&gt;pen();
++ QBrush oldBrush = p-&gt;brush();
++ bool aa = p-&gt;renderHints() &amp; QPainter::Antialiasing;
++
++ QLinearGradient g1(r.bottomLeft(), r.topLeft());
++ g1.setColorAt(0., data-&gt;gray[0]);
++ g1.setColorAt(1., data-&gt;gray[2]);
++
++ QLinearGradient g2(r.topLeft(), r.bottomRight());
++ g2.setColorAt(0., data-&gt;white);
++ g2.setColorAt(0.5, data-&gt;gray[4]);
++ g2.setColorAt(1., data-&gt;gray[5]);
++
++ p-&gt;setBrush(g1);
++ p-&gt;setPen(QPen(g2, 2));
++ p-&gt;setRenderHint(QPainter::Antialiasing, true);
++ p-&gt;drawEllipse(r);
++
++ // draw the indicator
++ int gripSize = opt-&gt;fontMetrics.height() * 0.5;
++
++ QRect grip(0,0,gripSize,gripSize);
++ grip.moveCenter(r.center());
++
++ // angle calculation from qcommonstyle.cpp (c) Trolltech 1992-2007, ASA.
++ qreal angle;
++ int sliderPosition = dial-&gt;upsideDown ? dial-&gt;sliderPosition : (dial-&gt;maximum - dial-&gt;sliderPosition);
++ int range = dial-&gt;maximum - dial-&gt;minimum;
++ if (!range)
++ {
++ angle = M_PI / 2;
++ }
++ else if (dial-&gt;dialWrapping)
++ {
++ angle = M_PI * 1.5 - (sliderPosition - dial-&gt;minimum) * 2 * M_PI / range;
++ }
++ else
++ {
++ angle = (M_PI * 8 - (sliderPosition - dial-&gt;minimum) * 10 * M_PI / range) / 6;
++ }
++ int d = r.width() - 10;
++ qreal rr = d / 2.0 - gripSize - 2;
++ grip.translate(int(0.5 + rr * cos(angle)), int(0.5 - rr * sin(angle)));
++
++ QRadialGradient g3(grip.left() + (grip.width() * 0.7), grip.top() + (grip.height() * 0.7), grip.height());
++ g3.setColorAt(0., data-&gt;color[1]);
++ g3.setColorAt(0.3, data-&gt;color[2]);
++ g3.setColorAt(1., data-&gt;color[4]);
++ p-&gt;setPen(Qt::NoPen);
++ p-&gt;setBrush(g3);
++ p-&gt;drawEllipse(grip);
++
++ p-&gt;setPen(oldPen);
++ p-&gt;setBrush(oldBrush);
++ p-&gt;setRenderHint(QPainter::Antialiasing, aa);
++}
++
+
+
+Property changes on: theme/ia_ora-kde4/src/iaorastyle_dial.cpp
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4srciaorastyle_framecpp">Added: theme/ia_ora-kde4/src/iaorastyle_frame.cpp</a>
+===================================================================
+--- theme/ia_ora-kde4/src/iaorastyle_frame.cpp (rev 0)
++++ theme/ia_ora-kde4/src/iaorastyle_frame.cpp 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,391 @@
++/*
++ * Copyright 2008 Gustavo Pichorim Boiko &lt;boiko@mandriva.com&gt;
++ * Copyright 2008-2010 Rodrigo Gonçalves de Oliveira &lt;rodrigo@mandriva.com&gt;
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 3 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ */
++
++#include &quot;iaorastyle.h&quot;
++
++void IaOraStyle::drawFrame(const QStyleOption *option, QPainter *p, FrameType type, QRect optRect)
++//void IaOraStyle::drawFrame(const QStyleOption *option, QPainter *p, FrameType type)
++{
++ ColorData *data = lookupData(option-&gt;palette);
++
++ bool enabled = (option-&gt;state &amp; QStyle::State_Enabled);
++
++ QRect r;
++ if (optRect.isValid())
++ r = optRect;
++ else
++ r = option-&gt;rect;
++ //QRect r = option-&gt;rect;
++
++ int top = r.top(), left = r.left(), bottom = r.bottom(), right = r.right();
++ QPen oldPen = p-&gt;pen();
++ QBrush oldBrush = p-&gt;brush();
++
++ switch(type)
++ {
++ case FrameFocus:
++ {
++ QPen pen = p-&gt;pen();
++ pen.setStyle(Qt::DotLine);
++ pen.setColor(option-&gt;palette.color(QPalette::ButtonText));
++ p-&gt;setPen(pen);
++ p-&gt;setBrush(Qt::NoBrush);
++ p-&gt;drawRect(option-&gt;rect.adjusted(1,1,-1,-1));
++ break;
++ }
++ case FrameToolBar:
++ case FrameMenuBar:
++ {
++ // fill the rect using the specified graytone
++ QColor c;
++ if (type == FrameToolBar)
++ c = data-&gt;gray[1];
++ else if (type == FrameMenuBar)
++ c = data-&gt;gray[0];
++ else
++ c = data-&gt;gray[0];
++
++ p-&gt;fillRect(r, c);
++
++ // now the lines around
++ p-&gt;setPen(data-&gt;gray[2]);
++
++ // we assume that the top was already drawn, or that the toolbar is the topmost
++ // widget from the window, and in this case it does not need the top line
++ p-&gt;drawLine(left, bottom-1, right, bottom-1);
++ p-&gt;setPen(data-&gt;white);
++ p-&gt;drawLine(left, bottom, right, bottom);
++ break;
++ }
++ case FrameProgressBar:
++ {
++ // fill the internal rect
++ QRect contents = r.adjusted(1,1,-1,-1);
++ p-&gt;fillRect(contents, data-&gt;gray[0]);
++
++ // draw the round frame
++ drawFrameCuttingOne(p, r, data-&gt;gray[5]);
++ break;
++ }
++ case FrameLineEdit:
++ {
++ const QStyleOptionFrame *panel = qstyleoption_cast&lt;const QStyleOptionFrame *&gt;(option);
++ QRect contents = r;
++ contents.adjust(1,1,-1,-1);
++
++ if (panel &amp;&amp; panel-&gt;lineWidth &gt; 0)
++ {
++ drawFrameCuttingOne(p, r, data-&gt;gray[4]);
++ }
++
++ p-&gt;fillRect(contents, (option-&gt;state &amp; QStyle::State_Enabled) ? panel-&gt;palette.base().color(): data-&gt;gray[0]);
++
++ if (option-&gt;state &amp; QStyle::State_HasFocus)
++ {
++ p-&gt;setPen(data-&gt;color[3]);
++ p-&gt;setBrush(Qt::NoBrush);
++ p-&gt;drawRect(contents);
++ }
++ break;
++ }
++ case FrameComboBox:
++ {
++ p-&gt;save();
++
++ QRect tabRect = r.adjusted(0,0,-1,-1);
++ p-&gt;setPen(data-&gt;gray[2]);
++ p-&gt;setBrush(data-&gt;gray[0]);
++
++ p-&gt;drawLine(left, top + 1, left, bottom - 1);
++ p-&gt;drawLine(right, top + 1, right, bottom - 1);
++ p-&gt;drawLine(left + 1, top, right - 1, top);
++ p-&gt;drawLine(left + 1, bottom, right - 1, bottom);
++
++ p-&gt;restore();
++ break;
++ }
++ case FrameHeader:
++ {
++ const QStyleOptionHeader *header = qstyleoption_cast&lt;const QStyleOptionHeader *&gt;(option);
++
++ // draw the button appearance
++ drawButton(option, p, true);
++
++ if (!header)
++ break;
++
++ bool vertical = (header-&gt;orientation == Qt::Vertical);
++ QRect r = option-&gt;rect;
++
++ QLine outterLine, innerLine, previousLine, nextLine;
++ if (vertical)
++ {
++ outterLine = QLine(r.topLeft(), r.bottomLeft());
++ innerLine = QLine(r.topRight(), r.bottomRight());
++ previousLine = QLine(r.topLeft(), r.topRight());
++ nextLine = QLine(r.bottomLeft(), r.bottomRight());
++ }
++ else
++ {
++ outterLine = QLine(r.topLeft(), r.topRight());
++ innerLine = QLine(r.bottomLeft(), r.bottomRight());
++ previousLine = QLine(r.topLeft(), r.bottomLeft());
++ nextLine = QLine(r.topRight(), r.bottomRight());
++ }
++
++ p-&gt;setPen(data-&gt;gray[5]);
++ p-&gt;drawLine(innerLine);
++
++ if (header-&gt;position != QStyleOptionHeader::Beginning)
++ {
++ p-&gt;setPen(Qt::white);
++ p-&gt;drawLine(previousLine);
++ }
++ p-&gt;setPen(data-&gt;gray[2]);
++ p-&gt;drawLine(nextLine);
++
++ break;
++ }
++ case FrameMenu:
++ {
++ drawFrameCuttingOne(p, r, enabled ? data-&gt;gray[5] : data-&gt;gray[4]);
++ break;
++ }
++ case FrameTabBar:
++ {
++ p-&gt;save();
++
++ QRect tabRect = r.adjusted(0,0,-1,-1);
++ p-&gt;setPen(data-&gt;gray[4]);
++ p-&gt;setBrush(data-&gt;gray[0]);
++ p-&gt;drawRect(tabRect);
++
++ p-&gt;restore();
++ break;
++ }
++ case FrameGroupBox:
++ case FrameFrame:
++ {
++ p-&gt;save();
++
++ const QStyleOptionFrame *frame = qstyleoption_cast&lt;const QStyleOptionFrame *&gt;(option);
++ const QStyleOptionFrameV2 *frame2 = qstyleoption_cast&lt;const QStyleOptionFrameV2 *&gt;(option);
++
++ if (!frame)
++ return;
++
++ bool flat = false;
++ if (frame2)
++ flat = (frame2-&gt;features &amp; QStyleOptionFrameV2::Flat);
++
++ bool sunken = (frame-&gt;state &amp; QStyle::State_Sunken);
++ bool raised = (frame-&gt;state &amp; QStyle::State_Raised);
++
++ if (flat &amp;&amp; type == FrameGroupBox)
++ {
++ QRect rect(left, top, r.width(), 4);
++ QStyleOption option;
++ option.state &amp;= ~QStyle::State_Horizontal;
++ option.rect = rect;
++ drawSeparator(&amp;option, p, 0);
++ }
++ else
++ {
++ if (sunken || raised)
++ {
++ drawFrameCuttingOne(p, r, data-&gt;gray[2]);
++
++ QLine lines[2];
++ lines[0] = QLine(left+1,top+1,right-1,top+1);
++ lines[1] = QLine(left+1,top+1,left+1,bottom-2);
++ p-&gt;setPen(sunken ? data-&gt;gray[1] : data-&gt;white);
++ p-&gt;drawLines(lines, 2);
++
++ lines[0] = QLine(right-1,top+1,right-1,bottom-1);
++ lines[1] = QLine(left+1,bottom-1,right-1,bottom-1);
++ p-&gt;setPen(sunken ? data-&gt;white : data-&gt;gray[1]);
++ p-&gt;drawLines(lines, 2);
++ }
++ else
++ {
++ QLine lines[4];
++ // the white lines
++ lines[0] = QLine(left+1,top+1,right,top+1); // top
++ lines[1] = QLine(right,top+1,right,bottom-1); // right
++ lines[2] = QLine(left+1,bottom,right-1,bottom); // bottom
++ lines[3] = QLine(left+1,top+1,left+1,bottom); // left
++ p-&gt;setPen(data-&gt;white);
++ p-&gt;drawLines(lines, 4);
++
++ lines[0] = QLine(left+1,top,right-1,top); // top
++ lines[1] = QLine(right-1,top+1,right-1,bottom-1); // right
++ lines[2] = QLine(left,bottom-1,right-1,bottom-1); // bottom
++ lines[3] = QLine(left,top+1,left,bottom-1); // left
++ p-&gt;setPen(data-&gt;gray[3]);
++ p-&gt;drawLines(lines, 4);
++ }
++ }
++ p-&gt;restore();
++ break;
++ }
++ case FrameGeneric:
++ default:
++ drawFrameCuttingOne(p, r, enabled ? data-&gt;gray[5] : data-&gt;gray[4]);
++ }
++
++ p-&gt;setPen(oldPen);
++ p-&gt;setBrush(oldBrush);
++}
++
++void IaOraStyle::drawBorder(QPainter *painter, const QStyleOption *opt, const QRect &amp;r, bool active, int border)
++{
++ QPen oldPen = painter-&gt;pen();
++ ColorData *data = lookupData(opt-&gt;palette);
++
++ int top = r.top(), left = r.left(), bottom = r.bottom(), right = r.right();
++ painter-&gt;setPen(active ? data-&gt;gray[5] : data-&gt;gray[4]);
++ if (border &amp; BorderTop)
++ painter-&gt;drawLine(left,top,right,top);
++ if (border &amp; BorderLeft)
++ painter-&gt;drawLine(left,top,left,bottom);
++ if (border &amp; BorderBottom)
++ painter-&gt;drawLine(left,bottom,right,bottom);
++ if (border &amp; BorderRight)
++ painter-&gt;drawLine(right,top,right,bottom);
++
++ painter-&gt;setPen(oldPen);
++}
++
++void IaOraStyle::drawSeparator(const QStyleOption *opt, QPainter *p, int margin)
++{
++ ColorData *data = lookupData(opt-&gt;palette);
++ bool toolBarHorizontal = (opt-&gt;state &amp; QStyle::State_Horizontal);
++ QRect r = opt-&gt;rect;
++ QLine line1, line2;
++
++ QPen oldPen = p-&gt;pen();
++ QBrush oldBrush = p-&gt;brush();
++
++ if (toolBarHorizontal)
++ {
++ int middle = (r.left() + r.right()) / 2;
++ line1 = QLine(middle, r.top(), middle, r.bottom());
++ if (r.height() &gt;= 20)
++ {
++ line1.setP1(QPoint(line1.x1(), line1.y1() + margin));
++ line1.setP2(QPoint(line1.x2(), line1.y2() - margin));
++ }
++ line2 = line1.translated(1,0);
++ }
++ else
++ {
++ int middle = (r.top() + r.bottom()) / 2;
++ line1 = QLine(r.left(), middle, r.right(), middle);
++ // remove some points from the edges
++ if (r.width() &gt;= 20)
++ {
++ line1.setP1(QPoint(line1.x1()+margin, line1.y1()));
++ line1.setP2(QPoint(line1.x2()-margin, line1.y1()));
++ }
++ line2 = line1.translated(0,1);
++ }
++
++ p-&gt;setPen(data-&gt;gray[2]);
++ p-&gt;drawLine(line1);
++ p-&gt;setPen(data-&gt;white);
++ p-&gt;drawLine(line2);
++
++ p-&gt;setPen(oldPen);
++}
++
++void IaOraStyle::drawHandle(const QStyleOption *opt, QPainter *p)
++{
++ QPalette pal = opt-&gt;palette;
++ pal.setCurrentColorGroup(QPalette::Active);
++ ColorData *data = lookupData(pal);
++
++ bool toolBarHorizontal = (opt-&gt;state &amp; QStyle::State_Horizontal);
++ QRect r = opt-&gt;rect;
++ QList&lt;QPoint&gt; dots;
++
++ QPen oldPen = p-&gt;pen();
++
++ // assume the space between the dots is of 4 pixels (TODO: check if it is not more)
++ // each dot has height of 4 (*3 = 12)
++ // the space is assumed to be 4 (*2 = 8)
++ // --&gt; the total height is then 20
++ if (toolBarHorizontal)
++ {
++ if (r.height() &gt; 30)
++ {
++ int start = (r.top() + r.bottom()) / 2 - 10; // 10 is half the size of the dot block
++ int middle = (r.left() + r.right()) / 2 - 2;
++
++ for (int i = 0; i&lt; 3; ++i)
++ {
++ dots.append(QPoint(middle, start));
++ start += 8; // 4 from the size and 4 from the spacing
++ }
++ }
++ else // only a single dot in the middle
++ dots.append(QPoint((r.left() + r.right()) / 2 - 2, (r.top() + r.bottom()) / 2 - 2));
++ }
++ else
++ {
++ if (r.width() &gt; 30)
++ {
++ int start = (r.left() + r.right()) / 2 - 10; // 10 is half the size of the dot block
++ int middle = (r.top() + r.bottom()) / 2 - 2;
++
++ for (int i = 0; i&lt; 3; ++i)
++ {
++ dots.append(QPoint(start, middle));
++ start += 8; // 4 from the size and 4 from the spacing
++ }
++ }
++ else // only a single dot in the middle
++ dots.append(QPoint((r.left() + r.right()) / 2 - 2, (r.top() + r.bottom()) / 2 - 2));
++ }
++
++ // draw all dots
++ foreach(QPoint dot, dots)
++ {
++ int x = dot.x(), y = dot.y();
++
++ // draw the first color
++ p-&gt;setPen(data-&gt;color[4]);
++ p-&gt;drawLine(x+1, y, x+2, y);
++ p-&gt;drawLine(x, y+1, x+3, y+1);
++
++ // the second color
++ p-&gt;setPen(data-&gt;color[2]);
++ p-&gt;drawLine(x, y+2, x+1, y+2);
++ p-&gt;drawPoint(x+1, y+3);
++
++ // the third color
++ p-&gt;setPen(data-&gt;color[1]);
++ p-&gt;drawLine(x+2, y+2, x+3, y+2);
++ p-&gt;drawPoint(x+2, y+3);
++ }
++
++ // restore pen
++ p-&gt;setPen(oldPen);
++}
++
+
+
+Property changes on: theme/ia_ora-kde4/src/iaorastyle_frame.cpp
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4srciaorastyle_iconscpp">Added: theme/ia_ora-kde4/src/iaorastyle_icons.cpp</a>
+===================================================================
+--- theme/ia_ora-kde4/src/iaorastyle_icons.cpp (rev 0)
++++ theme/ia_ora-kde4/src/iaorastyle_icons.cpp 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,192 @@
++/*
++ * Copyright 2008 Gustavo Pichorim Boiko &lt;boiko@mandriva.com&gt;
++ * Copyright 2008-2009 Rodrigo Gonçalves de Oliveira &lt;rodrigo@mandriva.com&gt;
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 3 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ */
++
++#include &quot;iaorastyle.h&quot;
++#include &lt;QPixmapCache&gt;
++#include &lt;QApplication&gt;
++
++bool IaOraStyle::hasIcon(QStyle::StandardPixmap icon)
++{
++ switch (icon)
++ {
++ case QStyle::SP_DockWidgetCloseButton:
++ case QStyle::SP_TitleBarCloseButton:
++ case QStyle::SP_TitleBarMaxButton:
++ case QStyle::SP_TitleBarMinButton:
++ case QStyle::SP_TitleBarContextHelpButton:
++ case QStyle::SP_TitleBarNormalButton:
++ case QStyle::SP_TitleBarShadeButton:
++ case QStyle::SP_TitleBarUnshadeButton:
++ case QStyle::SP_TitleBarMenuButton:
++ return true;
++ default:
++ return false;
++ }
++}
++
++QIcon IaOraStyle::standardIcon(QStyle::StandardPixmap icon, const QStyleOption *option, const QWidget *widget)
++{
++ // do some caching
++ QPixmap pix;
++ QImage img;
++ QSize s(64,64);
++ QPalette pal = QApplication::palette();
++ if (option)
++ {
++ pal = option-&gt;palette;
++ s = option-&gt;rect.size();
++
++ // handling the TitleBar icons
++ switch (icon){
++ case QStyle::SP_TitleBarMinButton:
++ case QStyle::SP_TitleBarMenuButton:
++ case QStyle::SP_TitleBarMaxButton:
++ case QStyle::SP_TitleBarCloseButton:
++ case QStyle::SP_TitleBarNormalButton:
++ case QStyle::SP_TitleBarShadeButton:
++ case QStyle::SP_TitleBarUnshadeButton:
++ case QStyle::SP_TitleBarContextHelpButton:
++ s.scale(16, 16, Qt::IgnoreAspectRatio);
++ break;
++ default:
++ (s.width() &gt; s.height()) ? s.setHeight(s.width()) : s.setWidth(s.height()); // the icon was getting the wrong size of subtitles
++ }
++ }
++ QString key = QString(&quot;iaora_standard_pixmap_%1_%2_%3&quot;).arg(QString::number(icon))
++ .arg(QString::number(s.width()))
++ .arg(QString::number(s.height()));
++ if (QPixmapCache::find(key, pix))
++ return pix;
++
++ ColorData *data = lookupData(pal);
++
++ int margin = s.height() * 0.20;
++
++ qDebug(&quot;Returning a pixmap of size %dx%d&quot;, s.width(), s.height());
++ img = QImage(s, QImage::Format_ARGB32_Premultiplied);
++ img.fill(Qt::black); // it removes the blue ghost behind the icon
++ //img.fill(Qt::transparent);
++ QPainter p(&amp;img);
++ QRect r = img.rect();
++ r.adjust(margin,margin,-margin,-margin);
++ int top = r.top(), bottom = r.bottom(), left = r.left(), right = r.right(), centerY = r.center().y();
++ int width = r.width(), height = r.height();
++
++ p.setRenderHint(QPainter::Antialiasing, true);
++
++ QLinearGradient g(left, top, left, bottom);
++ g.setColorAt(0., data-&gt;white);
++ g.setColorAt(0.3, data-&gt;white);
++ g.setColorAt(0.7, data-&gt;gray[2]);
++ g.setColorAt(1., data-&gt;gray[2]);
++ QBrush b(g);
++ QPen pen(b, 2);
++ pen.setCapStyle(Qt::RoundCap);
++ p.setPen(pen);
++
++ switch (icon)
++ {
++ case QStyle::SP_DockWidgetCloseButton:
++ case QStyle::SP_TitleBarCloseButton:
++ {
++ p.drawLine(left,top+1,right,bottom); /* \ */
++ p.drawLine(right,top+1,left,bottom); /* / */
++ break;
++ }
++
++ case QStyle::SP_TitleBarMaxButton:
++ {
++ p.setRenderHint(QPainter::Antialiasing, false);
++ p.setPen(QPen(b, 1));
++ p.setBrush(Qt::NoBrush);
++ p.drawRect(r);
++
++ // draw one more line in the top
++ p.drawLine(left, top+1,right,top+1);
++ break;
++ }
++ case QStyle::SP_TitleBarMinButton:
++ {
++ pen.setWidth(3);
++ p.setPen(pen);
++ p.drawLine(left,centerY+1,right,centerY+1);
++ break;
++ }
++ case QStyle::SP_TitleBarNormalButton:
++ {
++ pen.setWidth(1);
++ p.setPen(pen);
++
++ // for the Normal button, use a bit bigger rect
++ r.adjust(-2,-2,2,2);
++ QRect firstSquare(left + width * 0.35, top, width * 0.7, height * 0.6);
++ QRect secondSquare(left, top + height * 0.35, width * 0.7, height * 0.6);
++
++ p.setBrush(Qt::NoBrush);
++ p.setRenderHint(QPainter::Antialiasing, false);
++ p.setBackground(Qt::transparent);
++
++ p.drawRect(firstSquare);
++
++ // TODO: this is a hack, please use a better method for drawing the button
++ QPainter::CompositionMode mode = p.compositionMode();
++ p.setCompositionMode(QPainter::CompositionMode_Clear);
++ p.fillRect(secondSquare, data-&gt;white);
++ p.setCompositionMode(mode);
++
++
++ p.drawRect(secondSquare);
++
++ // and some extra-lines
++ p.drawLine(firstSquare.topLeft() + QPoint(0,1), firstSquare.topRight() + QPoint(0,1));
++ p.drawLine(secondSquare.topLeft() + QPoint(0,1), secondSquare.topRight() +QPoint(0,1));
++ break;
++ }
++ case QStyle::SP_TitleBarContextHelpButton:
++ {
++ // just to identify cases where it appears
++ QFont f = p.font();
++ f.setPixelSize(r.height());
++ p.setFont(f);
++ p.drawText(r, Qt::AlignCenter, &quot;?&quot;);
++ break;
++ }
++ case QStyle::SP_TitleBarMenuButton:
++ {
++ p.drawLine(left, top + (height * .45), centerY, bottom);
++ p.drawLine(centerY, bottom, right, top + (height * 0.3));
++ break;
++ }
++ case QStyle::SP_TitleBarShadeButton:
++ case QStyle::SP_TitleBarUnshadeButton:
++ {
++ // just to identify cases where it appears
++ p.fillRect(r, Qt::magenta);
++ break;
++ }
++ default:
++ break;
++
++ }
++ pix = QPixmap::fromImage(img);
++ QPixmapCache::insert(key, pix);
++ return QIcon(pix);
++}
++
+
+
+Property changes on: theme/ia_ora-kde4/src/iaorastyle_icons.cpp
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4srciaorastyle_menucpp">Added: theme/ia_ora-kde4/src/iaorastyle_menu.cpp</a>
+===================================================================
+--- theme/ia_ora-kde4/src/iaorastyle_menu.cpp (rev 0)
++++ theme/ia_ora-kde4/src/iaorastyle_menu.cpp 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,204 @@
++/*
++ * Copyright 2008 Gustavo Pichorim Boiko &lt;boiko@mandriva.com&gt;
++ * Copyright 2008-2009 Rodrigo Gonçalves de Oliveira &lt;rodrigo@mandriva.com&gt;
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 3 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ */
++
++#include &quot;iaorastyle.h&quot;
++
++void IaOraStyle::drawMenuItem(const QStyleOption *opt, QPainter *p, bool saveSpaceForIcon)
++{
++ const QStyleOptionMenuItem *menuItem = qstyleoption_cast&lt;const QStyleOptionMenuItem *&gt;(opt);
++
++ if (!menuItem)
++ return;
++
++ ColorData *data = lookupData(opt-&gt;palette);
++ QRect r = opt-&gt;rect;
++ bool selected = menuItem-&gt;state &amp; QStyle::State_Selected;
++ bool checkable = menuItem-&gt;checkType != QStyleOptionMenuItem::NotCheckable;
++ bool checked = menuItem-&gt;checked;
++ bool enabled = menuItem-&gt;state &amp; QStyle::State_Enabled;
++
++
++ p-&gt;save();
++ QBrush textBrush;
++ if (opt-&gt;palette.resolve() &amp; (1 &lt;&lt; QPalette::ButtonText))
++ textBrush = opt-&gt;palette.buttonText();
++ else
++ textBrush = opt-&gt;palette.windowText(); // KDE uses windowText rather than buttonText for menus
++
++ switch(menuItem-&gt;menuItemType)
++ {
++ case QStyleOptionMenuItem::Separator:
++ {
++ drawSeparator(opt, p, 10);
++ break;
++ }
++ case QStyleOptionMenuItem::TearOff:
++ {
++ drawHandle(opt, p);
++ break;
++ }
++
++ case QStyleOptionMenuItem::Normal:
++ case QStyleOptionMenuItem::DefaultItem:
++ case QStyleOptionMenuItem::SubMenu:
++ {
++ if (selected &amp;&amp; enabled)
++ {
++ QLinearGradient g(r.topLeft(), r.bottomLeft());
++ g.setColorAt(0., data-&gt;color[1]);
++ g.setColorAt(0.5, data-&gt;color[3]);
++ g.setColorAt(0.51, data-&gt;color[4]);
++ g.setColorAt(1., data-&gt;color[2]);
++ fillRectCuttingOne(p, r.adjusted(0, 0, -1, 0), g);
++ }
++
++ /* from QPlastiqueStyle */
++ //TODO: add CopyRight
++ QRect checkRect(r.left() + 7, r.center().y() - 6, 13, 13);
++ checkRect = QStyle::visualRect(menuItem-&gt;direction, menuItem-&gt;rect, checkRect);
++ if (checkable)
++ {
++ if ((menuItem-&gt;checkType &amp; QStyleOptionMenuItem::Exclusive) &amp;&amp; menuItem-&gt;icon.isNull())
++ {
++ QStyleOptionButton button;
++ button.rect = checkRect;
++ button.state = menuItem-&gt;state;
++ if (checked)
++ button.state |= QStyle::State_On;
++ button.palette = menuItem-&gt;palette;
++ drawRadioButton(&amp;button, p);
++ }
++ else
++ {
++ QStyleOptionButton button;
++ button.rect = checkRect;
++ button.state = menuItem-&gt;state;
++ if (checked)
++ button.state |= QStyle::State_On;
++ button.palette = menuItem-&gt;palette;
++
++ if (menuItem-&gt;icon.isNull())
++ drawCheckBox(&amp;button, p);
++ else if (checked)
++ {
++ int size = r.height() - 4;
++ QRect buttonRect(0, 0, size, size);
++ buttonRect.moveCenter(checkRect.center());
++ button.rect = buttonRect;
++ drawButton(&amp;button, p);
++ }
++ }
++ }
++
++ if (!menuItem-&gt;icon.isNull() &amp;&amp; saveSpaceForIcon)
++ {
++ QIcon::Mode mode = !enabled ? QIcon::Disabled : QIcon::Normal;
++ if (selected &amp;&amp; enabled)
++ mode = QIcon::Active;
++ QPixmap pixmap;
++ if (checked)
++ pixmap = menuItem-&gt;icon.pixmap(m_parent-&gt;pixelMetric(QStyle::PM_SmallIconSize, opt), mode, QIcon::On);
++ else
++ pixmap = menuItem-&gt;icon.pixmap(m_parent-&gt;pixelMetric(QStyle::PM_SmallIconSize, opt), mode);
++
++ QRect pmr = pixmap.rect();
++ pmr.moveCenter(checkRect.center());
++ p-&gt;setPen(textBrush.color());
++ p-&gt;drawPixmap(pmr.topLeft(), pixmap);
++ }
++
++ // Text
++ bool leftToRight = (menuItem-&gt;direction == Qt::LeftToRight) ? true : false;
++ int text_flags = Qt::AlignVCenter | Qt::TextShowMnemonic | Qt::TextDontClip | Qt::TextSingleLine | Qt::AlignLeft;
++
++ if (!m_parent-&gt;styleHint(QStyle::SH_UnderlineShortcut, menuItem))
++ text_flags |= Qt::TextHideMnemonic;
++
++ QRect subMenuRect(r.right()-10,r.top(),10,r.height());
++ if (!menuItem-&gt;text.isEmpty())
++ {
++ QRect textRect;
++ int tab = menuItem-&gt;tabWidth;
++ if (saveSpaceForIcon &amp;&amp; leftToRight)
++ textRect.setLeft(checkRect.right() + 8);
++ else if (!leftToRight)
++ textRect.setLeft(tab);
++ else
++ textRect.setLeft(r.left() + 4);
++
++ textRect.setTop(r.top() + 4);
++
++ if (leftToRight) textRect.setRight(r.right() - 4 - tab);
++ else{
++ if (saveSpaceForIcon) textRect.setRight(checkRect.left() - 8);
++ else textRect.setRight(r.right() - 4);
++ }
++
++ textRect.setBottom(r.bottom() - 4);
++
++ if (menuItem-&gt;menuItemType == QStyleOptionMenuItem::SubMenu)
++ textRect.adjust(0,0,-subMenuRect.width(),0);
++ else if (menuItem-&gt;menuItemType == QStyleOptionMenuItem::DefaultItem)
++ {
++ QFont f = p-&gt;font();
++ f.setBold(true);
++ p-&gt;setFont(f);
++ }
++
++ QStringList textList = menuItem-&gt;text.split(QRegExp(&quot;\t&quot;));
++
++ // draw the shortcut
++ if (textList.first() != textList.last()){
++ QRect shortcutRect(textRect);
++
++ if (leftToRight)
++ shortcutRect.setLeft(textRect.right());
++ else
++ shortcutRect.setRight(textRect.left() + 4);
++
++ drawItemText(p, shortcutRect, text_flags, menuItem-&gt;palette, enabled, textList.last(), selected ? QPalette::HighlightedText : QPalette::Text);
++ }
++
++ // and the text
++ drawItemText(p, textRect, text_flags, menuItem-&gt;palette, enabled, textList.first(), selected ? QPalette::HighlightedText : QPalette::Text);
++ }
++
++ if (menuItem-&gt;menuItemType == QStyleOptionMenuItem::SubMenu)
++ {
++ QStyleOption copy = *opt;
++ copy.rect = subMenuRect;
++
++ if (leftToRight)
++ drawSymbol(&amp;copy, p, SymbolArrowRight);
++ else{
++ copy.rect = QStyle::visualRect(menuItem-&gt;direction, menuItem-&gt;rect, copy.rect);
++ drawSymbol(&amp;copy, p, SymbolArrowLeft);
++ }
++ }
++ break;
++ }
++ case QStyleOptionMenuItem::Scroller:
++ default:
++ break;
++ }
++
++ p-&gt;restore();
++}
++
+
+
+Property changes on: theme/ia_ora-kde4/src/iaorastyle_menu.cpp
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4srciaorastyle_progressbarcpp">Added: theme/ia_ora-kde4/src/iaorastyle_progressbar.cpp</a>
+===================================================================
+--- theme/ia_ora-kde4/src/iaorastyle_progressbar.cpp (rev 0)
++++ theme/ia_ora-kde4/src/iaorastyle_progressbar.cpp 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,145 @@
++/*
++ * Copyright 2008 Gustavo Pichorim Boiko &lt;boiko@mandriva.com&gt;
++ * Copyright 2008-2010 Rodrigo Gonçalves de Oliveira &lt;rodrigo@mandriva.com&gt;
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 3 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ */
++
++#include &lt;QVarLengthArray&gt;
++#include &lt;QDebug&gt;
++
++#include &quot;iaorastyle.h&quot;
++
++void IaOraStyle::drawProgressBarContents(const QStyleOption *opt, QPainter *p, bool kde)
++{
++ const QStyleOptionProgressBar *pb = qstyleoption_cast&lt;const QStyleOptionProgressBar *&gt;(opt);
++ if (!pb)
++ return;
++
++ QPalette pal = opt-&gt;palette;
++ pal.setCurrentColorGroup(QPalette::Active);
++ ColorData *data = lookupData(pal);
++
++ p-&gt;save();
++ QRect r = pb-&gt;rect;
++ bool vertical = false;
++ bool inverted = false;
++ qint64 minimum = qint64(pb-&gt;minimum);
++ qint64 maximum = qint64(pb-&gt;maximum);
++ qint64 progress = qint64(pb-&gt;progress);
++ qint64 range = maximum - minimum;
++ if (range &lt; 0)
++ return;
++
++ if (maximum == minimum || progress &lt;= minimum) // indeterminate state
++ return;
++
++ // Get extra style options if version 2
++ const QStyleOptionProgressBarV2 *pb2 = qstyleoption_cast&lt;const QStyleOptionProgressBarV2 *&gt;(opt);
++ if (pb2)
++ {
++ vertical = (pb2-&gt;orientation == Qt::Vertical);
++ inverted = pb2-&gt;invertedAppearance;
++ }
++
++ // If the orientation is vertical, we use a transform to rotate
++ // the progress bar 90 degrees clockwise. This way we can use the
++ // same rendering code for both orientations.
++ if (vertical)
++ {
++ if (kde)
++ r = QRect(r.left() + 2, r.top() - 4, r.height(), r.width()); // flip width and height
++ else
++ r = QRect(r.left(), r.top(), r.height(), r.width()); // flip width and height
++ QTransform m;
++ m.translate(r.height(), 0);
++ m.rotate(90.0);
++ p-&gt;setTransform(m);
++ }
++
++ QRect progressRect;
++ if (kde)
++ progressRect = r.adjusted(-1, -1, 1, 1);
++ else
++ progressRect = r.adjusted(1,1,-1,-1);
++
++ QLinearGradient g(0, progressRect.top(), 0, progressRect.bottom());
++ g.setColorAt(0., data-&gt;color[1]);
++ g.setColorAt(0.5, data-&gt;color[3]);
++ g.setColorAt(0.51, data-&gt;color[4]);
++ g.setColorAt(1., data-&gt;color[2]);
++
++ if (progress == maximum)
++ {
++ p-&gt;fillRect(progressRect, g);
++ }
++ else
++ {
++ progress -= minimum;
++ progressRect.setWidth((progressRect.width() * progress) / range - 1);
++ QRect endRect = QRect(progressRect.right() + 1, progressRect.top()+1, 1, progressRect.height()-2);
++
++ bool reverse = (!vertical &amp;&amp; (pb-&gt;direction == Qt::RightToLeft)) || vertical;
++ if (inverted)
++ reverse = !reverse;
++
++ if (reverse)
++ {
++ progressRect.moveRight(r.right()-1);
++ endRect.moveLeft(progressRect.left()-1);
++ }
++ p-&gt;fillRect(progressRect, g);
++ p-&gt;fillRect(endRect, g);
++ }
++
++ // draw the division lines
++ QVarLengthArray&lt;QLine, 32&gt; lines1;
++ QVarLengthArray&lt;QLine, 32&gt; lines2;
++
++ int interval = maximum / 8;
++ int pos = 0;
++ int maxSize = r.width() + (kde ? 3 : -1);
++ progress = progressRect.width();
++ int spacer = (kde) ? -1 : 1;
++
++ if (interval != 0)
++ do{
++ pos += interval;
++
++ if (pos &gt;= maxSize) break;
++
++ if (!vertical){
++ if (pos &lt;= progress)
++ lines1.append(QLine(progressRect.left() + pos, r.top() + spacer, progressRect.left() + pos, r.bottom() - spacer));
++ else
++ lines2.append(QLine(progressRect.left() + pos, r.top() + spacer, progressRect.left() + pos, r.bottom() - spacer));
++ } else{
++ if (pos &lt;= progress)
++ lines2.append(QLine(progressRect.left() + pos, r.top() + spacer + 1, progressRect.left() + pos, r.bottom() + (kde ? 2 : 0)));
++ else
++ lines1.append(QLine(progressRect.left() + pos, r.top() + spacer + 1, progressRect.left() + pos, r.bottom() + (kde ? 2 : 0)));
++ }
++ } while (pos &lt; maxSize);
++
++ p-&gt;setPen(data-&gt;color[2]);
++ p-&gt;drawLines(lines1.constData(), lines1.size());
++ p-&gt;setPen(data-&gt;gray[1]);
++ p-&gt;drawLines(lines2.constData(), lines2.size());
++ //
++
++ p-&gt;restore();
++}
++
+
+
+Property changes on: theme/ia_ora-kde4/src/iaorastyle_progressbar.cpp
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4srciaorastyle_q3listviewcpp">Added: theme/ia_ora-kde4/src/iaorastyle_q3listview.cpp</a>
+===================================================================
+--- theme/ia_ora-kde4/src/iaorastyle_q3listview.cpp (rev 0)
++++ theme/ia_ora-kde4/src/iaorastyle_q3listview.cpp 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,150 @@
++/*
++ * Copyright 2008 Gustavo Pichorim Boiko &lt;boiko@mandriva.com&gt;
++ * Copyright 2008-2009 Rodrigo Gonçalves de Oliveira &lt;rodrigo@mandriva.com&gt;
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 3 of the License, or
++ * (at your opt) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ ** Q3ListView code based on KStyle for KDE4
++ * Copyright (C) 2004-2005 Maksim Orlovich &lt;maksim@kde.org&gt;
++ * Copyright (C) 2005,2006 Sandro Giessl &lt;giessl@kde.org&gt;
++ *
++ * Based in part on the following software:
++ * KStyle for KDE3
++ * Copyright (C) 2001-2002 Karol Szwed &lt;gallium@kde.org&gt;
++ * Portions (C) 1998-2000 TrollTech AS
++ * Keramik for KDE3,
++ * Copyright (C) 2002 Malte Starostik &lt;malte@kde.org&gt;
++ * (C) 2002-2003 Maksim Orlovich &lt;maksim@kde.org&gt;
++ * Portions (C) 2001-2002 Karol Szwed &lt;gallium@kde.org&gt;
++ * (C) 2001-2002 Fredrik Höglund &lt;fredrik@kde.org&gt;
++ * (C) 2000 Daniel M. Duley &lt;mosfet@kde.org&gt;
++ * (C) 2000 Dirk Mueller &lt;mueller@kde.org&gt;
++ * (C) 2001 Martijn Klingens &lt;klingens@kde.org&gt;
++ * (C) 2003 Sandro Giessl &lt;sandro@giessl.com&gt;
++ *
++ */
++
++#include &quot;iaorastyle.h&quot;
++#include &lt;QPainter&gt;
++#include &lt;QStyle&gt;
++
++void IaOraStyle::drawQ3ListView(const QStyleOption *opt, QPainter *p, const QWidget *w)
++{
++ QRect r = opt-&gt;rect;
++ // This code is based on the implementation of KStyle for KDE4;
++ // check the copyright on the top of this file
++ const QStyleOptionQ3ListView* lvOpt = qstyleoption_cast&lt;const QStyleOptionQ3ListView*&gt;(opt);
++
++ if (!lvOpt)
++ return;
++
++ // If we have a branch or are expanded...
++ if (lvOpt-&gt;subControls &amp; (QStyle::SC_Q3ListViewBranch | QStyle::SC_Q3ListViewExpand))
++ {
++ QStyleOptionQ3ListViewItem item = lvOpt-&gt;items.at(0);
++
++ int y = r.y();
++
++ QStyleOption opt; //For painting
++ opt.palette = lvOpt-&gt;palette;
++ opt.direction = Qt::LeftToRight;
++
++ //Remap the p so (0,0) corresponds to the origin
++ //of the w, to help out the line align code.
++ //Extract the paint offset. Here be dragons
++ //(and not the cute green Patron of the project, either)
++ int cX = w ? w-&gt;property(&quot;contentsX&quot;).toInt() : 0;
++ int cY = w ? w-&gt;property(&quot;contentsY&quot;).toInt() : 0;
++
++ QPoint adjustCoords = p-&gt;matrix().map(QPoint(0,0)) + QPoint(cX, cY);
++ p-&gt;translate(-adjustCoords);
++
++ if (lvOpt-&gt;activeSubControls &amp; QStyle::SC_All &amp;&amp; (lvOpt-&gt;subControls &amp; QStyle::SC_Q3ListViewExpand))
++ {
++ //### CHECKME: this is from KStyle3, and needs to be re-checked/tested
++ // We only need to draw a vertical line
++ //Route through the Qt4 style-call.
++ QStyleOption opt;
++ opt.rect = QRect(r.topLeft() + adjustCoords, r.size());
++ opt.state = QStyle::State_Sibling;
++ drawBranch(&amp;opt, p);
++ }
++ else
++ {
++ int childPos = 1;
++
++ // Draw all the expand/close boxes, and nearby branches
++ while (childPos &lt; lvOpt-&gt;items.size() &amp;&amp; y &lt; r.height())
++ {
++ const QStyleOptionQ3ListViewItem&amp; child = lvOpt-&gt;items.at(childPos);
++
++ if (!(child.features &amp; QStyleOptionQ3ListViewItem::Visible))
++ {
++ childPos++;
++ continue;
++ }
++
++ //Route through the Qt4 style-call.
++ opt.rect = QRect(r.x() + adjustCoords.x(), y + adjustCoords.y(),
++ r.width(), child.height);
++ opt.state = QStyle::State_Item;
++
++ if (child.features &amp; QStyleOptionQ3ListViewItem::Expandable
++ || child.childCount)
++ {
++ opt.state |= QStyle::State_Children;
++ opt.state |= (child.state &amp; QStyle::State_Open);
++ opt.state |= (child.state &amp; QStyle::State_Enabled);
++ }
++
++ //See if we have a visible sibling
++ int siblingPos = 0;
++ for (siblingPos = childPos + 1; siblingPos &lt; lvOpt-&gt;items.size();
++ ++siblingPos)
++ {
++ if (lvOpt-&gt;items.at(siblingPos).features
++ &amp; QStyleOptionQ3ListViewItem::Visible)
++ {
++ opt.state |= QStyle::State_Sibling;
++ break;
++ }
++ }
++
++ //If on screen, paint it
++ if (y + child.height &gt; 0)
++ drawBranch(&amp;opt, p);
++
++ if (!siblingPos)
++ break;
++
++ //If we have a sibling, and an expander, also have to draw
++ //a line for below the immediate area
++ if ((opt.state &amp; QStyle::State_Children) &amp;&amp; (opt.state &amp; QStyle::State_Sibling))
++ {
++ opt.state = QStyle::State_Sibling;
++ opt.rect = QRect(r.x() + adjustCoords.x(),
++ y + adjustCoords.y() + child.height,
++ r.width(), child.totalHeight - child.height);
++ if (opt.rect.height())
++ drawBranch(&amp;opt, p);
++ }
++
++ y += child.totalHeight;
++ childPos = siblingPos;
++ } //loop through items
++ } //complex case
++ }
++}
++
+
+
+Property changes on: theme/ia_ora-kde4/src/iaorastyle_q3listview.cpp
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4srciaorastyle_scrollbarcpp">Added: theme/ia_ora-kde4/src/iaorastyle_scrollbar.cpp</a>
+===================================================================
+--- theme/ia_ora-kde4/src/iaorastyle_scrollbar.cpp (rev 0)
++++ theme/ia_ora-kde4/src/iaorastyle_scrollbar.cpp 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,139 @@
++/*
++ * Copyright 2008 Gustavo Pichorim Boiko &lt;boiko@mandriva.com&gt;
++ * Copyright 2008-2010 Rodrigo Gonçalves de Oliveira &lt;rodrigo@mandriva.com&gt;
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 3 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ */
++
++#include &quot;iaorastyle.h&quot;
++
++void IaOraStyle::drawScrollBarEmptySpace(const QStyleOption *opt, QPainter *p)
++{
++ const QStyleOptionSlider *scr = qstyleoption_cast&lt;const QStyleOptionSlider *&gt;(opt);
++ if (!scr)
++ return;
++
++ ColorData *data = lookupData(opt-&gt;palette);
++ QRect r = opt-&gt;rect;
++ p-&gt;fillRect(r, data-&gt;gray[0]);
++ int border;
++ if (scr-&gt;orientation == Qt::Horizontal)
++ border = (BorderTop | BorderBottom);
++ else
++ border = (BorderLeft | BorderRight);
++ drawBorder(p, opt, r, (opt-&gt;state &amp; QStyle::State_Enabled), border);
++}
++
++void IaOraStyle::drawScrollBarButton(const QStyleOption *opt, QPainter *p, Symbol s)
++{
++ const QStyleOptionSlider *scr = qstyleoption_cast&lt;const QStyleOptionSlider *&gt;(opt);
++ if (!scr)
++ return;
++
++ ColorData *data = lookupData(opt-&gt;palette);
++
++ bool vertical = (scr-&gt;orientation == Qt::Vertical);
++ bool active = (opt-&gt;state &amp; QStyle::State_Enabled);
++ QRect r = opt-&gt;rect;
++ QStyleOption copy = *opt;
++
++ p-&gt;save();
++
++ /* FIXME: figure out why the scrollbar area is being filled as white at the very beginning */
++ p-&gt;fillRect(r, opt-&gt;palette.brush(QPalette::Window));
++
++ QRect arrowRect = r;
++
++ drawFrameCuttingOne(p, r, active ? data-&gt;gray[5] : data-&gt;gray[4]);
++ if (vertical)
++ {
++ arrowRect.adjust(1,2,0,0);
++ drawBorder(p, opt, r, active, (s == SymbolArrowRight) ? BorderTop : BorderBottom);
++ }
++ else
++ {
++ arrowRect.adjust(2,1,0,0);
++ drawBorder(p, opt, r, active, (s == SymbolArrowRight) ? BorderLeft : BorderRight);
++ }
++
++ copy.rect = r.adjusted(1,1,-1,-1);
++ drawButton(&amp;copy, p, true, true);
++
++ // only set the right arrows in vertical mode
++ if (vertical)
++ s = (s == SymbolArrowRight) ? SymbolArrowDown : SymbolArrowUp;
++ else if (scr-&gt;direction == Qt::RightToLeft) // if direction != Qt::LeftToRight, we change the symbol orientation
++ s = (s == SymbolArrowRight) ? SymbolArrowLeft : SymbolArrowRight;
++ copy.rect = arrowRect;
++ drawSymbol(&amp;copy, p, s);
++
++ p-&gt;restore();
++}
++
++void IaOraStyle::drawScrollBarHandle(const QStyleOption *opt, QPainter *p)
++{
++ const QStyleOptionSlider *scr = qstyleoption_cast&lt;const QStyleOptionSlider *&gt;(opt);
++ if (!scr)
++ return;
++
++ QPalette pal = opt-&gt;palette;
++ pal.setCurrentColorGroup(QPalette::Active); // let the scrollbars colored when no focus
++ ColorData *data = lookupData(pal);
++
++ QPen oldPen = p-&gt;pen();
++
++ bool vertical = (scr-&gt;orientation == Qt::Vertical);
++ bool max = (scr-&gt;sliderValue == scr-&gt;maximum), min = (scr-&gt;sliderValue == scr-&gt;minimum);
++ QRect r = opt-&gt;rect;
++ QLine maxLine, minLine;
++
++ // fill the empty spaces and the border
++ drawScrollBarEmptySpace(opt, p);
++
++
++ QRect handleRect = r;
++
++ QLinearGradient g;
++ if (vertical)
++ {
++ handleRect.adjust(1, min ? 0 : 1, -1, max ? 0 : -1);
++ g = QLinearGradient(handleRect.left(), 0, handleRect.right(), 0);
++ minLine = QLine(handleRect.left()+1, r.top(), handleRect.right()-1, r.top());
++ maxLine = QLine(handleRect.left()+1, r.bottom(), handleRect.right()-1, r.bottom());
++ }
++ else
++ {
++ handleRect.adjust(min ? 0 : 1, 1, max ? 0 : -1, -1);
++ g = QLinearGradient(0, handleRect.top(), 0, handleRect.bottom());
++ minLine = QLine(r.left(), handleRect.top()+1, r.left(), handleRect.bottom()-1);
++ maxLine = QLine(r.right(), handleRect.top()+1, r.right(), handleRect.bottom()-1);
++ }
++ g.setColorAt(0., data-&gt;color[1]);
++ g.setColorAt(0.5, data-&gt;color[3]);
++ g.setColorAt(0.51, data-&gt;color[4]);
++ g.setColorAt(1., data-&gt;color[2]);
++
++ p-&gt;fillRect(handleRect, g);
++
++ p-&gt;setPen(QPen(QBrush(g), 1));
++ if (!min)
++ p-&gt;drawLine(minLine);
++ if (!max)
++ p-&gt;drawLine(maxLine);
++
++ p-&gt;setPen(oldPen);
++}
++
+
+
+Property changes on: theme/ia_ora-kde4/src/iaorastyle_scrollbar.cpp
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4srciaorastyle_slidercpp">Added: theme/ia_ora-kde4/src/iaorastyle_slider.cpp</a>
+===================================================================
+--- theme/ia_ora-kde4/src/iaorastyle_slider.cpp (rev 0)
++++ theme/ia_ora-kde4/src/iaorastyle_slider.cpp 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,143 @@
++/*
++ * Copyright 2008 Gustavo Pichorim Boiko &lt;boiko@mandriva.com&gt;
++ * Copyright 2008-2010 Rodrigo Gonçalves de Oliveira &lt;rodrigo@mandriva.com&gt;
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 3 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ ** SC_SliderTickmarks code based on QtCurve style fom KDE4
++ * Copyright C( 2007-2008 Craig Drummond &lt;Craig.Drummond@lycos.co.uk&gt;
++ *
++ */
++
++#include &lt;QVarLengthArray&gt;
++#include &quot;iaorastyle.h&quot;
++
++void IaOraStyle::drawSlider(const QStyleOption *opt, QPainter *p,
++ const QRect &amp;grooveRegion, const QRect &amp;handle, const QRect &amp;ticks)
++{
++ const QStyleOptionSlider *slider = qstyleoption_cast&lt;const QStyleOptionSlider *&gt;(opt);
++ if (!slider)
++ return;
++
++ QPalette pal = opt-&gt;palette;
++ pal.setCurrentColorGroup(QPalette::Active);
++ ColorData *data = lookupData(pal);
++
++ QPen oldPen = p-&gt;pen();
++
++ bool active = (opt-&gt;state &amp; QStyle::State_Enabled);
++ bool vertical = slider-&gt;orientation == Qt::Vertical;
++
++ if (slider-&gt;subControls &amp; QStyle::SC_SliderGroove)
++ {
++ QRect filled = grooveRegion.adjusted(1, 1, -1, -1);
++ p-&gt;fillRect(filled, data-&gt;gray[0]);
++
++ if (slider-&gt;orientation == Qt::Horizontal){
++ if (slider-&gt;upsideDown) filled.setLeft(handle.right() - 2);
++ else filled.setRight(handle.left() + 2);
++ } else{
++ if (slider-&gt;upsideDown) filled.setTop(handle.bottom() - 2);
++ else filled.setBottom(handle.top() + 2);
++ }
++
++ p-&gt;fillRect(filled, data-&gt;gray[3]);
++
++ drawFrameCuttingOne(p, grooveRegion, active ? data-&gt;gray[5] : data-&gt;gray[4]);
++ }
++
++ // The code for SC_SliderTickmarks is based on the implementation of QtCurve style for KDE4;
++ // check the copyright on the top of this file
++ if (slider-&gt;subControls &amp; QStyle::SC_SliderTickmarks){
++ QVarLengthArray&lt;QLine, 32&gt; lines;
++
++ int sliderLen = m_parent-&gt;pixelMetric(QStyle::PM_SliderLength, opt);
++ int tickSize = m_parent-&gt;pixelMetric(QStyle::PM_SliderTickmarkOffset, opt);
++ int availableSpace = m_parent-&gt;pixelMetric(QStyle::PM_SliderSpaceAvailable, opt);
++
++ int value = slider-&gt;minimum;
++ int tickInterval = slider-&gt;tickInterval;
++ int pos = 0;
++
++ if (tickInterval &lt;= 0){
++ tickInterval = slider-&gt;singleStep;
++ if (QStyle::sliderPositionFromValue(slider-&gt;minimum, slider-&gt;maximum,
++ tickInterval, availableSpace) -
++ QStyle::sliderPositionFromValue(slider-&gt;minimum,
++ slider-&gt;maximum, 0, availableSpace) &lt; 3)
++ tickInterval = slider-&gt;pageStep;
++ }
++ if (tickInterval &lt;= 0) tickInterval = 1;
++
++ while (value &lt;= slider-&gt;maximum){
++ if (slider-&gt;orientation == Qt::Horizontal){
++ pos = QStyle::sliderPositionFromValue(slider-&gt;minimum,
++ slider-&gt;maximum, value, slider-&gt;rect.width() + sliderLen,
++ slider-&gt;upsideDown) + 12;
++
++ lines.append(QLine(pos, slider-&gt;rect.top() + 11, pos,
++ slider-&gt;rect.top() + tickSize + 1));
++ } else{
++ pos = QStyle::sliderPositionFromValue(slider-&gt;minimum,
++ slider-&gt;maximum, value, slider-&gt;rect.height() - sliderLen,
++ slider-&gt;upsideDown) + 4;
++
++ lines.append(QLine(slider-&gt;rect.left() + 11, pos,
++ slider-&gt;rect.left() + tickSize + 1, pos));
++ }
++
++ if (value + tickInterval &lt; value) break;
++ value = value + tickInterval;
++ }
++
++ p-&gt;setPen(data-&gt;gray[1]);
++ p-&gt;drawLines(lines.constData(), lines.size());
++ }
++
++ if (slider-&gt;subControls &amp; QStyle::SC_SliderHandle)
++ {
++ QRect circle(0,0,4,4);
++ QRect handleCpy;
++ circle.moveCenter(handle.center());
++ QLinearGradient g1, g2;
++ if (vertical)
++ {
++ handleCpy = handle.adjusted(-1, 0, 1, 0);
++ g1 = QLinearGradient(handleCpy.left(), 0, handleCpy.right(), 0);
++ g2 = QLinearGradient(circle.left(), 0, circle.right(), 0);
++ }
++ else
++ {
++ handleCpy = handle.adjusted(0, -1, 0, 1);
++ g1 = QLinearGradient(0, handleCpy.top(), 0, handleCpy.bottom());
++ g2 = QLinearGradient(0, circle.top(), 0, circle.bottom());
++ }
++
++ g1.setColorAt(0., data-&gt;color[2]);
++ g1.setColorAt(1., data-&gt;color[4]);
++ g2.setColorAt(0., data-&gt;color[4]);
++ g2.setColorAt(1., data-&gt;color[2]);
++
++ fillRectCuttingOne(p, handleCpy, g1);
++
++ p-&gt;setPen(Qt::NoPen);
++ p-&gt;setBrush(g2);
++ p-&gt;drawEllipse(circle);
++
++ }
++
++ p-&gt;setPen(oldPen);
++}
++
+
+
+Property changes on: theme/ia_ora-kde4/src/iaorastyle_slider.cpp
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4srciaorastyle_spinboxcpp">Added: theme/ia_ora-kde4/src/iaorastyle_spinbox.cpp</a>
+===================================================================
+--- theme/ia_ora-kde4/src/iaorastyle_spinbox.cpp (rev 0)
++++ theme/ia_ora-kde4/src/iaorastyle_spinbox.cpp 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,108 @@
++/*
++ * Copyright 2008 Gustavo Pichorim Boiko &lt;boiko@mandriva.com&gt;
++ * Copyright 2008-2009 Rodrigo Gonçalves de Oliveira &lt;rodrigo@mandriva.com&gt;
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 3 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ */
++
++#include &quot;iaorastyle.h&quot;
++
++void IaOraStyle::drawSpinBox(const QStyleOptionComplex *opt, QPainter *p)
++{
++ const QStyleOptionSpinBox *sb = qstyleoption_cast&lt;const QStyleOptionSpinBox *&gt;(opt);
++ QStyleOptionSpinBox copy = *sb;
++ QRect r = opt-&gt;rect;
++
++ if (!sb)
++ return;
++
++ QStyle::PrimitiveElement pe;
++
++ if (sb-&gt;frame &amp;&amp; (sb-&gt;subControls &amp; QStyle::SC_SpinBoxFrame))
++ {
++ QRect r = m_parent-&gt;subControlRect(QStyle::CC_SpinBox, sb, QStyle::SC_SpinBoxFrame);
++
++ copy.rect = r;
++ drawFrame(&amp;copy, p);
++ }
++
++ /* SPIN-UP */
++ if (sb-&gt;subControls &amp; QStyle::SC_SpinBoxUp)
++ {
++ copy.subControls = QStyle::SC_SpinBoxUp;
++ QPalette pal2 = sb-&gt;palette;
++ if (!(sb-&gt;stepEnabled &amp; QAbstractSpinBox::StepUpEnabled))
++ {
++ pal2.setCurrentColorGroup(QPalette::Disabled);
++ copy.state &amp;= ~QStyle::State_Enabled;
++ }
++
++ copy.palette = pal2;
++
++ if (sb-&gt;activeSubControls == QStyle::SC_SpinBoxUp &amp;&amp; (sb-&gt;state &amp; QStyle::State_Sunken))
++ {
++ copy.state |= QStyle::State_On;
++ copy.state |= QStyle::State_Sunken;
++ }
++ else
++ {
++ copy.state |= QStyle::State_Raised;
++ copy.state &amp;= ~QStyle::State_Sunken;
++ }
++ pe = (sb-&gt;buttonSymbols == QAbstractSpinBox::PlusMinus ? QStyle::PE_IndicatorSpinPlus : QStyle::PE_IndicatorSpinUp);
++ copy.rect = m_parent-&gt;subControlRect(QStyle::CC_SpinBox, sb, QStyle::SC_SpinBoxUp);
++ m_parent-&gt;drawPrimitive(QStyle::PE_PanelButtonBevel, &amp;copy, p);
++ drawBorder(p, opt, copy.rect, sb-&gt;state &amp; QStyle::State_Enabled, IaOraStyle::BorderLeft);
++ /* FIXME: don't really know why the rect is not right at this point, but anyway... */
++ copy.rect.adjust(1, 2, 0, 0);
++ m_parent-&gt;drawPrimitive(pe, &amp;copy, p);
++
++ }
++ /* SPIN-DOWN */
++ if (sb-&gt;subControls &amp; QStyle::SC_SpinBoxDown)
++ {
++ copy.subControls = QStyle::SC_SpinBoxDown;
++ copy.state = sb-&gt;state;
++ QPalette pal2 = sb-&gt;palette;
++ if (!(sb-&gt;stepEnabled &amp; QAbstractSpinBox::StepDownEnabled))
++ {
++ pal2.setCurrentColorGroup(QPalette::Disabled);
++ copy.state &amp;= ~QStyle::State_Enabled;
++ }
++
++ copy.palette = pal2;
++
++ if (sb-&gt;activeSubControls == QStyle::SC_SpinBoxDown &amp;&amp; (sb-&gt;state &amp; QStyle::State_Sunken))
++ {
++ copy.state |= QStyle::State_On;
++ copy.state |= QStyle::State_Sunken;
++ }
++ else
++ {
++ copy.state |= QStyle::State_Raised;
++ copy.state &amp;= ~QStyle::State_Sunken;
++ }
++ pe = (sb-&gt;buttonSymbols == QAbstractSpinBox::PlusMinus ? QStyle::PE_IndicatorSpinMinus : QStyle::PE_IndicatorSpinDown);
++ copy.rect = m_parent-&gt;subControlRect(QStyle::CC_SpinBox, sb, QStyle::SC_SpinBoxDown);
++ m_parent-&gt;drawPrimitive(QStyle::PE_PanelButtonBevel, &amp;copy, p);
++ drawBorder(p, opt, copy.rect, sb-&gt;state &amp; QStyle::State_Enabled, IaOraStyle::BorderLeft | IaOraStyle::BorderTop);
++ /* FIXME: don't really know why the rect is not right at this point, but anyway... */
++ copy.rect.adjust(1, 2, 0, 0);
++ m_parent-&gt;drawPrimitive(pe, &amp;copy, p);
++
++ }
++}
++
+
+
+Property changes on: theme/ia_ora-kde4/src/iaorastyle_spinbox.cpp
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4srciaorastyle_symbolscpp">Added: theme/ia_ora-kde4/src/iaorastyle_symbols.cpp</a>
+===================================================================
+--- theme/ia_ora-kde4/src/iaorastyle_symbols.cpp (rev 0)
++++ theme/ia_ora-kde4/src/iaorastyle_symbols.cpp 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,196 @@
++/*
++ * Copyright 2008 Gustavo Pichorim Boiko &lt;boiko@mandriva.com&gt;
++ * Copyright 2008-2010 Rodrigo Gonçalves de Oliveira &lt;rodrigo@mandriva.com&gt;
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 3 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ */
++
++#include &quot;iaorastyle.h&quot;
++
++void IaOraStyle::drawCheckBox(const QStyleOption *opt, QPainter *p)
++{
++ QPen oldPen = p-&gt;pen();
++ bool enabled = (opt-&gt;state &amp; QStyle::State_Enabled);
++
++ QPalette pal = opt-&gt;palette;
++ pal.setCurrentColorGroup(QPalette::Active);
++ ColorData *data = lookupData(pal);
++
++ QRect r = opt-&gt;rect;
++ QRect contents = r.adjusted(1,1,-1,-1);
++ p-&gt;fillRect(contents, enabled ? data-&gt;white : data-&gt;gray[0]);
++ drawFrameCuttingOne(p, r, enabled ? data-&gt;gray[5] : data-&gt;gray[4]);
++
++ if (opt-&gt;state &amp; QStyle::State_NoChange) // tristate
++ {
++ QRect linesRect = QRect(contents.left() + 2, 0, contents.width() - 4, 3);
++ linesRect.moveCenter(contents.center());
++ int top = linesRect.top(), left = linesRect.left(), bottom = linesRect.bottom(), right = linesRect.right();
++ p-&gt;setPen(enabled ? data-&gt;color[2] : data-&gt;gray[3]);
++ p-&gt;drawLine(left+1,top,right-1,top);
++ p-&gt;drawLine(left,top+1,right,top+1);
++ p-&gt;setPen(enabled ? data-&gt;color[4] : data-&gt;gray[5]);
++ p-&gt;drawLine(left+1,bottom,right-1,bottom);
++ }
++ else if (opt-&gt;state &amp; QStyle::State_On)
++ {
++ contents.adjust(1,1,-1,-1);
++ QLinearGradient g(contents.topLeft(), contents.bottomLeft());
++ g.setColorAt(0., enabled ? data-&gt;color[2] : data-&gt;gray[3]);
++ g.setColorAt(1., enabled ? data-&gt;color[4] : data-&gt;gray[5]);
++ QPen pen(QBrush(g), 2);
++ pen.setCapStyle(Qt::RoundCap);
++ p-&gt;setPen(pen);
++ p-&gt;drawLine(contents.topLeft(), contents.bottomRight());
++ p-&gt;drawLine(contents.bottomLeft(), contents.topRight());
++ }
++
++ p-&gt;setPen(oldPen);
++}
++
++void IaOraStyle::drawRadioButton(const QStyleOption *opt, QPainter *p)
++{
++ QPalette pal = opt-&gt;palette;
++ pal.setCurrentColorGroup(QPalette::Active);
++ ColorData *data = lookupData(pal);
++
++ QPen oldPen = p-&gt;pen();
++ QBrush oldBrush = p-&gt;brush();
++ bool aa = (p-&gt;renderHints() &amp; QPainter::Antialiasing);
++ bool enabled = (opt-&gt;state &amp; QStyle::State_Enabled);
++
++ QRect r = opt-&gt;rect;
++
++ p-&gt;setRenderHint(QPainter::Antialiasing, true);
++ p-&gt;setPen(data-&gt;gray[4]);
++ p-&gt;setBrush(enabled ? Qt::white : data-&gt;gray[0]);
++ p-&gt;drawEllipse(r);
++
++ if (opt-&gt;state &amp; (QStyle::State_Sunken | QStyle::State_On))
++ {
++ QRect contents = r.adjusted(3,3,-3,-3);
++ QLinearGradient g(contents.topLeft(), contents.bottomLeft());
++ g.setColorAt(0., enabled ? data-&gt;color[2] : data-&gt;gray[3]);
++ g.setColorAt(1., enabled ? data-&gt;color[4] : data-&gt;gray[5]);
++ p-&gt;setPen(Qt::NoPen);
++ p-&gt;setBrush(g);
++ p-&gt;drawEllipse(contents);
++ }
++
++ p-&gt;setPen(oldPen);
++ p-&gt;setBrush(oldBrush);
++ p-&gt;setRenderHint(QPainter::Antialiasing, aa);
++}
++
++
++void IaOraStyle::drawSymbol(const QStyleOption *opt, QPainter *p, Symbol s)
++{
++ QRect r = opt-&gt;rect;
++
++ QPoint center = r.center();
++ bool enabled = (opt-&gt;state &amp; QStyle::State_Enabled);
++ ColorData *data = lookupData(opt-&gt;palette);
++ bool selected = (opt-&gt;state &amp; QStyle::State_Selected);
++ QColor c;
++ if (enabled){
++ if (selected &amp;&amp; ( opt-&gt;palette.highlightedText().color() != Qt::white ) )
++ c = opt-&gt;palette.highlightedText().color();
++ else
++ c = opt-&gt;palette.text().color();
++ } else
++ c = data-&gt;gray[4];
++ //QColor c = enabled ? data-&gt;black : data-&gt;gray[4];
++
++ bool aa = (p-&gt;renderHints() &amp; QPainter::Antialiasing);
++ QPen oldPen = p-&gt;pen();
++ QBrush oldBrush = p-&gt;brush();
++
++ //p-&gt;setRenderHint(QPainter::Antialiasing, true); // with antialiasing, the arrows doesn't look like arrow :S
++ switch(s)
++ {
++ case SymbolArrowUp:
++ {
++ QPoint points[3];
++ points[0] = center + QPoint(0, -3);
++ points[1] = points[0] + QPoint(-4, 5);
++ points[2] = points[0] + QPoint(4, 4);
++
++ p-&gt;setPen(Qt::NoPen);
++ p-&gt;setBrush(c);
++ p-&gt;drawConvexPolygon(points, 3);
++ break;
++ }
++ case SymbolArrowDown:
++ {
++ QPoint points[3];
++ points[0] = center + QPoint(0, 3);
++ points[1] = points[0] + QPoint(-3, -4);
++ points[2] = points[0] + QPoint(4, -4);
++
++ p-&gt;setPen(Qt::NoPen);
++ p-&gt;setBrush(c);
++ p-&gt;drawConvexPolygon(points, 3);
++ break;
++ }
++ case SymbolArrowLeft:
++ {
++ QPoint points[3];
++ points[0] = center + QPoint(-3, 0);
++ points[1] = points[0] + QPoint(4, -4);
++ points[2] = points[0] + QPoint(4, 4);
++
++ p-&gt;setPen(Qt::NoPen);
++ p-&gt;setBrush(c);
++ p-&gt;drawConvexPolygon(points, 3);
++ break;
++ }
++ case SymbolArrowRight:
++ {
++ QPoint center = r.center();
++ QPoint points[3];
++ points[0] = center + QPoint(3, 0);
++ points[1] = points[0] + QPoint(-4, -4);
++ points[2] = points[0] + QPoint(-4, 4);
++
++ p-&gt;setPen(Qt::NoPen);
++ p-&gt;setBrush(c);
++ p-&gt;drawConvexPolygon(points, 3);
++ break;
++ }
++ case SymbolPlus:
++ {
++ QPoint center = r.center();
++ p-&gt;setPen(c);
++ p-&gt;setRenderHint(QPainter::Antialiasing, false);
++ p-&gt;drawLine(center - QPoint(2,0), center + QPoint(2,0));
++ p-&gt;drawLine(center - QPoint(0,2), center + QPoint(0,2));
++ break;
++ }
++ case SymbolMinus:
++ {
++ QPoint center = r.center();
++ p-&gt;setPen(c);
++ p-&gt;setRenderHint(QPainter::Antialiasing, false);
++ p-&gt;drawLine(center - QPoint(2,0), center + QPoint(2,0));
++ break;
++ }
++ }
++
++ p-&gt;setRenderHint(QPainter::Antialiasing, aa);
++ p-&gt;setPen(oldPen);
++ p-&gt;setBrush(oldBrush);
++}
++
+
+
+Property changes on: theme/ia_ora-kde4/src/iaorastyle_symbols.cpp
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4srciaorastyle_tabbarcpp">Added: theme/ia_ora-kde4/src/iaorastyle_tabbar.cpp</a>
+===================================================================
+--- theme/ia_ora-kde4/src/iaorastyle_tabbar.cpp (rev 0)
++++ theme/ia_ora-kde4/src/iaorastyle_tabbar.cpp 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,239 @@
++/*
++ * Copyright 2008 Gustavo Pichorim Boiko &lt;boiko@mandriva.com&gt;
++ * Copyright 2008-2010 Rodrigo Gonçalves de Oliveira &lt;rodrigo@mandriva.com&gt;
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 3 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ ** ** QTabBarLabel code based on QCommonStyle
++ * Copyright (C) 1992-2008 Trolltech ASA. All rights reserved.
++ */
++
++#include &quot;iaorastyle.h&quot;
++
++void IaOraStyle::drawTabBarTab(const QStyleOption *opt, QPainter *p)
++{
++ const QStyleOptionTab *tab = qstyleoption_cast&lt;const QStyleOptionTab *&gt;(opt);
++ QRect r = opt-&gt;rect;
++
++ if (!tab)
++ return;
++
++ QPalette pal = opt-&gt;palette;
++ pal.setCurrentColorGroup(QPalette::Active);
++ ColorData *data = lookupData(pal);
++
++ bool selected = (tab-&gt;state &amp; QStyle::State_Selected);
++ int top = r.top(), bottom = r.bottom(), left = r.left(), right = r.right();
++
++ p-&gt;save();
++
++ if (selected) // active tab
++ {
++ QRect contents = opt-&gt;rect.adjusted(1,1,-1,-1);
++ QLine borders[2];
++ QLine lightBlue[2];
++ QLine darkBlue[2];
++
++ if (tab-&gt;shape == QTabBar::RoundedNorth || tab-&gt;shape == QTabBar::TriangularNorth)
++ {
++ contents.adjust(0,3,0,1);
++ borders[0] = QLine(left, top+4, left, bottom);
++ borders[1] = QLine(right, top+4, right, bottom);
++ lightBlue[0] = QLine(left+2,top,right-2,top);
++ lightBlue[1] = QLine(left+1,top+1,right-1,top+1);
++ darkBlue[0] = QLine(left,top+2,right,top+2);
++ darkBlue[1] = QLine(left,top+3,right,top+3);
++ }
++ else if (tab-&gt;shape == QTabBar::RoundedSouth || tab-&gt;shape == QTabBar::TriangularSouth)
++ {
++ contents.adjust(0,-1,0,-3);
++ borders[0] = QLine(left,top,left,bottom-4);
++ borders[1] = QLine(right,top,right,bottom-4);
++ lightBlue[0] = QLine(left, bottom-3, right, bottom-3);
++ lightBlue[1] = QLine(left, bottom-2, right, bottom-2);
++ darkBlue[0] = QLine(left+1, bottom-1, right-1, bottom-1);
++ darkBlue[1] = QLine(left+2, bottom, right-2, bottom);
++ }
++ else if (tab-&gt;shape == QTabBar::RoundedEast || tab-&gt;shape == QTabBar::TriangularEast) // right
++ {
++ contents.adjust(-1,0,-3,0);
++ borders[0] = QLine(left, top, right-4, top);
++ borders[1] = QLine(left, bottom, right-4, bottom);
++ lightBlue[0] = QLine(right-3, top, right-3, bottom);
++ lightBlue[1] = QLine(right-2, top, right-2, bottom);
++ darkBlue[0] = QLine(right-1, top+1, right-1, bottom-1);
++ darkBlue[1] = QLine(right, top+2, right, bottom-2);
++ }
++ else // left
++ {
++ contents.adjust(3,0,1,0);
++ borders[0] = QLine(left+4, top, right, top);
++ borders[1] = QLine(left+4, bottom, right, bottom);
++ lightBlue[0] = QLine(left, top+2, left, bottom-2);
++ lightBlue[1] = QLine(left+1, top+1, left+1, bottom-1);
++ darkBlue[0] = QLine(left+2, top, left+2, bottom);
++ darkBlue[1] = QLine(left+3, top, left+3, bottom);
++ }
++
++ // fill the contents
++ p-&gt;fillRect(contents, data-&gt;gray[0]);
++
++ // draw the gray borders
++ p-&gt;setPen(data-&gt;gray[4]);
++ p-&gt;drawLines(borders, 2);
++
++ // the blue lines
++ p-&gt;setPen(data-&gt;color[2]);
++ p-&gt;drawLines(lightBlue, 2);
++ p-&gt;setPen(data-&gt;color[4]);
++ p-&gt;drawLines(darkBlue, 2);
++ }
++ else // inactive tab
++ {
++ QRect contents = opt-&gt;rect.adjusted(1,1,-1,-1);
++
++ QPoint points[2];
++ QLine lines[4];
++ if (tab-&gt;shape == QTabBar::RoundedNorth || tab-&gt;shape == QTabBar::TriangularNorth)
++ {
++ top+=3;
++ contents.setTop(top+1);
++ lines[0] = QLine(left+2,top,right-2,top); // top
++ lines[1] = QLine(left, top+2, left, bottom); // left
++ lines[2] = QLine(right, top+2, right, bottom); // right
++ lines[3] = QLine(left, bottom, right, bottom); // bottom
++ points[0] = QPoint(left+1, top+1);
++ points[1] = QPoint(right-1, top+1);
++ }
++ else if (tab-&gt;shape == QTabBar::RoundedSouth || tab-&gt;shape == QTabBar::TriangularSouth)
++ {
++ bottom-=3;
++ contents.setBottom(bottom-1);
++ lines[0] = QLine(left,top,right,top); // top
++ lines[1] = QLine(left, top, left, bottom-2); // left
++ lines[2] = QLine(right, top, right, bottom-2); // right
++ lines[3] = QLine(left+2, bottom, right-2, bottom); // bottom
++ points[0] = QPoint(left+1, bottom-1);
++ points[1] = QPoint(right-1, bottom-1);
++ }
++ else if (tab-&gt;shape == QTabBar::RoundedEast || tab-&gt;shape == QTabBar::TriangularEast) // right
++ {
++ right-=3;
++ contents.setRight(right-1);
++ lines[0] = QLine(left,top,right-2,top); // top
++ lines[1] = QLine(left,top,left,bottom); // left
++ lines[2] = QLine(right,top+2,right,bottom-2); // right
++ lines[3] = QLine(left,bottom,right-2,bottom); // bottom
++ points[0] = QPoint(right-1,top+1);
++ points[1] = QPoint(right-1,bottom-1);
++ }
++ else // left
++ {
++ left+=3;
++ contents.setLeft(left+1);
++ lines[0] = QLine(left+2,top,right,top); // top
++ lines[1] = QLine(left,top+1,left,bottom-2); // left
++ lines[2] = QLine(right,top,right,bottom); // right
++ lines[3] = QLine(left+2,bottom,right,bottom); // bottom
++ points[0] = QPoint(left+1,top+1);
++ points[1] = QPoint(left+1,bottom-1);
++ }
++
++ // draw the contents
++ p-&gt;setPen(Qt::NoPen);
++ p-&gt;setBrush(data-&gt;gray[1]);
++ p-&gt;drawRect(contents);
++
++ // draw the lines
++ p-&gt;setPen(data-&gt;gray[5]);
++ p-&gt;drawLines(lines, 4);
++ p-&gt;drawPoints(points, 2);
++ }
++
++ p-&gt;restore();
++
++ // The code below is based on the implementation of QCommonStyle;
++ // check the copyright on the top of this file
++ QStyleOptionTabV2 tabV2(*tab);
++ QRect tabRect = tabV2.rect;
++
++ // we have the vertical tab text
++ bool verticalTabs = tabV2.shape == QTabBar::RoundedEast
++ || tabV2.shape == QTabBar::RoundedWest
++ || tabV2.shape == QTabBar::TriangularEast
++ || tabV2.shape == QTabBar::TriangularWest;
++ if (verticalTabs) {
++ p-&gt;save();
++
++ int newX, newY, newRot;
++ if (tabV2.shape == QTabBar::RoundedEast || tabV2.shape == QTabBar::TriangularEast){
++ newX = tabRect.width();
++ newY = tabRect.y();
++ newRot = 90;
++ }else {
++ newX = 0;
++ newY = tabRect.y() + tabRect.height();
++ newRot = -90;
++ }
++ tabRect.setRect(0, 0, tabRect.height(), tabRect.width());
++
++ QTransform trans;
++
++ trans.translate(newX, newY);
++ trans.rotate(newRot);
++ p-&gt;setTransform(trans, true);
++ }
++
++ // and the icon
++ QSize iconSize = tabV2.iconSize;
++
++ if (!tabV2.icon.isNull()){
++ if (!iconSize.isValid()) {
++ int iconExtent = m_parent-&gt;pixelMetric(QStyle::PM_SmallIconSize);
++ iconSize = QSize(iconExtent, iconExtent);
++ }
++
++ QPixmap tabIcon = tabV2.icon.pixmap(iconSize, (tabV2.state &amp; QStyle::State_Enabled) ? QIcon::Normal : QIcon::Disabled);
++
++ QRect iconRect = QRect(tabRect.left() + 6, tabRect.center().y() - tabIcon.height() / 2, iconSize.width(), iconSize.height());
++
++ if (tabV2.direction != Qt::LeftToRight){
++ iconRect = QStyle::visualRect(tabV2.direction, tabV2.rect, iconRect);
++ tabRect.setRight(tabRect.right() - iconSize.width() - 4);
++ } else
++ tabRect.setLeft(tabRect.left() + iconSize.width() + 4);
++
++ p-&gt;drawPixmap(iconRect, tabIcon);
++ }
++
++ // finally draw the text
++ QRect textRect = tabRect;
++ QFontMetrics fontMetrics = tabV2.fontMetrics;
++
++ QSize textSize = fontMetrics.size(Qt::TextSingleLine, tab-&gt;text);
++
++ // we must adjust the textRect if we have a close button on the tabbar
++ if ((!tabV2.icon.isNull()) &amp;&amp; (tabRect.width() - (textSize.width() + iconSize.width()) &gt; 8)){
++ if (tabV2.direction == Qt::LeftToRight)
++ textRect.adjust(-10, 0, -10, 0);
++ else
++ textRect.adjust(+10, 0, +10, 0);
++ }
++
++ drawItemText(p, textRect, Qt::AlignCenter | Qt::TextShowMnemonic, tab-&gt;palette, true, tab-&gt;text, QPalette::WindowText);
++ //drawItemText(p, textRect, Qt::AlignCenter | Qt::TextShowMnemonic, tab-&gt;palette, true, tab-&gt;text, QPalette::Text);
++ if (verticalTabs) p-&gt;restore();
++}
++
+
+
+Property changes on: theme/ia_ora-kde4/src/iaorastyle_tabbar.cpp
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4srciaorastyle_toolbuttoncpp">Added: theme/ia_ora-kde4/src/iaorastyle_toolbutton.cpp</a>
+===================================================================
+--- theme/ia_ora-kde4/src/iaorastyle_toolbutton.cpp (rev 0)
++++ theme/ia_ora-kde4/src/iaorastyle_toolbutton.cpp 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,134 @@
++/*
++ * Copyright 2008 Gustavo Pichorim Boiko &lt;boiko@mandriva.com&gt;
++ * Copyright 2008-2009 Rodrigo Gonçalves de Oliveira &lt;rodrigo@mandriva.com&gt;
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 3 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ */
++
++#include &quot;iaorastyle.h&quot;
++
++void IaOraStyle::drawToolButton(const QStyleOption *opt, QPainter *p)
++{
++ const QStyleOptionToolButton *tlBtn = qstyleoption_cast &lt;const QStyleOptionToolButton *&gt;(opt);
++
++ if (!tlBtn)
++ return;
++
++ QStyleOptionToolButton copy = *tlBtn;
++ // TODO: cache the gradients so that it is more efficient
++ bool sunken = (opt-&gt;state &amp; QStyle::State_Sunken);
++ bool enabled = (opt-&gt;state &amp; QStyle::State_Enabled);
++ bool hover = (opt-&gt;state &amp; QStyle::State_MouseOver);
++ bool selected = (opt-&gt;state &amp; QStyle::State_On);
++
++ QRect r = opt-&gt;rect;
++ QPen oldPen = p-&gt;pen();
++
++ if (sunken || selected)
++ drawButton(&amp;copy, p, false);
++ else if (hover &amp;&amp; enabled)
++ {
++ copy.state |= QStyle::State_Enabled;
++ drawButton(&amp;copy, p, false);
++ }
++
++ // Here we draw the icon (if exists)...
++ if (tlBtn-&gt;toolButtonStyle != Qt::ToolButtonTextOnly)
++ {
++ QIcon::Mode mode = (tlBtn-&gt;state &amp; QStyle::State_Enabled) ? QIcon::Normal : QIcon::Disabled;
++ if (hover &amp;&amp; enabled)
++ mode = QIcon::Active;
++
++ QRect iconRect(r);
++ QSize s;
++
++ if (tlBtn-&gt;iconSize.width() &gt; r.width()) s = QSize(r.width(), r.width());
++ else if (tlBtn-&gt;iconSize.height() &gt; r.height()) s = QSize(r.height(), r.height());
++ else s = tlBtn-&gt;iconSize;
++
++ QPixmap pix = tlBtn-&gt;icon.pixmap(s, mode);
++
++ int align = 0 ;
++ if (tlBtn-&gt;toolButtonStyle == Qt::ToolButtonTextBesideIcon)
++ {
++ align |= Qt::AlignLeft;
++ iconRect.adjust(-8, 0, -(r.width() - s.width()), 0);
++ }
++ else if (tlBtn-&gt;toolButtonStyle == Qt::ToolButtonTextUnderIcon)
++ {
++ align |= Qt::AlignHCenter;
++ iconRect.adjust(0, 12, 0, 0);
++ }
++ else if (tlBtn-&gt;toolButtonStyle == Qt::ToolButtonIconOnly)
++ align |= Qt::AlignHCenter;
++
++ iconRect = m_parent-&gt;alignedRect(tlBtn-&gt;direction, Qt::Alignment(align), iconRect.size(), r);
++ m_parent-&gt;drawItemPixmap(p, iconRect, Qt::AlignCenter, pix);
++ }
++
++ // ... and here the text (if exists too)
++ if (tlBtn-&gt;toolButtonStyle != Qt::ToolButtonIconOnly)
++ {
++ int text_flags = m_parent-&gt;visualAlignment(tlBtn-&gt;direction, Qt::AlignVCenter | Qt::AlignCenter) | Qt::TextShowMnemonic;
++
++ QRect textRect = r;
++ if (tlBtn-&gt;toolButtonStyle == Qt::ToolButtonTextBesideIcon)
++ {
++ if (tlBtn-&gt;direction == Qt::LeftToRight)
++ textRect.adjust(tlBtn-&gt;iconSize.height() + 4, 0, 0, 0);
++ else
++ textRect.adjust(0, 0, -(tlBtn-&gt;iconSize.height() + 0), 0);
++ }
++ else if (tlBtn-&gt;toolButtonStyle == Qt::ToolButtonTextUnderIcon)
++ textRect.adjust(0, tlBtn-&gt;iconSize.width() + 8, 0, 0);
++
++
++ drawItemText(p, textRect, text_flags, tlBtn-&gt;palette, enabled, tlBtn-&gt;text, QPalette::Text);
++ }
++
++ // it has a menu?
++ if (tlBtn-&gt;features &amp; QStyleOptionToolButton::HasMenu)
++ {
++ copy.rect = m_parent-&gt;subControlRect(QStyle::CC_ToolButton, tlBtn, QStyle::SC_ToolButtonMenu);
++
++ copy.state = QStyle::State_Horizontal;
++
++ if (enabled)
++ copy.state |= QStyle::State_Enabled;
++ if (sunken)
++ copy.state |= QStyle::State_Sunken;
++
++ if (copy.rect != opt-&gt;rect){
++ copy.rect.adjust(2, 1, 0, 0);
++ drawSymbol(&amp;copy, p, IaOraStyle::SymbolArrowDown);
++
++ if (hover &amp;&amp; enabled){
++ copy.rect = QRect(copy.rect.left() - 2, r.top(), 2, r.height());
++ drawSeparator(&amp;copy, p, 4);
++ }
++ }
++ else // I don't know why some toolbuttons don't have a correct place to their arrows...
++ {
++ copy.rect = QRect(0, 0, 8, 8);
++ copy.rect.moveLeft(r.right() - 8);
++ copy.rect.moveBottom(r.bottom());
++ drawSymbol(&amp;copy, p, IaOraStyle::SymbolArrowDown);
++ }
++ }
++
++ p-&gt;setPen(oldPen);
++}
++
+
+
+Property changes on: theme/ia_ora-kde4/src/iaorastyle_toolbutton.cpp
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4srciaorastyle_windowcpp">Added: theme/ia_ora-kde4/src/iaorastyle_window.cpp</a>
+===================================================================
+--- theme/ia_ora-kde4/src/iaorastyle_window.cpp (rev 0)
++++ theme/ia_ora-kde4/src/iaorastyle_window.cpp 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,142 @@
++/*
++ * Copyright 2008 Gustavo Pichorim Boiko &lt;boiko@mandriva.com&gt;
++ * Copyright 2008-2010 Rodrigo Gonçalves de Oliveira &lt;rodrigo@mandriva.com&gt;
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 3 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ */
++
++#include &quot;iaorastyle.h&quot;
++
++void IaOraStyle::drawDockWindowTitle(const QStyleOption *opt, QPainter *p)
++{
++ const QStyleOptionDockWidget *dock = qstyleoption_cast&lt;const QStyleOptionDockWidget *&gt;(opt);
++
++ if (!dock)
++ return;
++
++ QPalette pal = opt-&gt;palette;
++ pal.setCurrentColorGroup(QPalette::Active);
++ ColorData *data = lookupData(pal);
++
++ p-&gt;save();
++
++ QLinearGradient g(opt-&gt;rect.topLeft(), opt-&gt;rect.bottomLeft());
++ g.setColorAt(0., data-&gt;color[1]);
++ g.setColorAt(0.4, data-&gt;color[3]);
++ g.setColorAt(0.41, data-&gt;color[4]);
++ g.setColorAt(1., data-&gt;color[2]);
++ p-&gt;fillRect(opt-&gt;rect, g);
++
++ int text_flags = Qt::AlignCenter | Qt::TextShowMnemonic | Qt::TextDontClip | Qt::TextSingleLine;
++
++ QFont font = p-&gt;font();
++ font.setBold(true);
++ font.setPointSizeF(font.pointSizeF() / 1.19);
++ p-&gt;setFont(font);
++ p-&gt;setPen(data-&gt;white);
++
++ int icons_width = 30; // for the close and float buttons
++
++ QString text = dock-&gt;fontMetrics.elidedText(dock-&gt;title, Qt::ElideRight, dock-&gt;rect.width() - icons_width);
++ p-&gt;drawText(dock-&gt;rect.adjusted(-icons_width, 0, 0, 0), text_flags, text);
++ //p-&gt;drawText(dock-&gt;rect, text_flags, dock-&gt;title);
++
++ p-&gt;restore();
++}
++
++void IaOraStyle::drawTitleBarButton(const QStyleOptionComplex *opt, QPainter *p, const QWidget *w, QStyle::SubControl control, QStyle::StandardPixmap icon)
++{
++ QRect buttonRect = m_parent-&gt;subControlRect(QStyle::CC_TitleBar, opt, control);
++ QPixmap pm = m_parent-&gt;standardIcon(icon, opt, w).pixmap(14, 14);
++
++ QRect pixRect = pm.rect();
++ pixRect.moveCenter(buttonRect.center());
++ p-&gt;drawPixmap(pixRect, pm);
++}
++
++void IaOraStyle::drawTitleBar(const QStyleOptionComplex *opt, QPainter *p, const QWidget *w)
++{
++ const QStyleOptionTitleBar *title = qstyleoption_cast&lt;const QStyleOptionTitleBar *&gt;(opt);
++ if (!title)
++ return;
++
++ //QPalette pal = opt-&gt;palette;
++ //pal.setCurrentColorGroup(QPalette::Active);
++ //ColorData *data = lookupData(pal);
++ ColorData *data = lookupData(opt-&gt;palette); // REGRESSION
++
++ p-&gt;save();
++
++ // dunno why the right border needs to be adjusted, but anyway...
++ QRect contents = opt-&gt;rect.adjusted(0,0,-1,0);
++ p-&gt;setPen(data-&gt;color[2]);
++ p-&gt;setBrush(Qt::NoBrush);
++ p-&gt;drawRect(contents);
++
++ contents.adjust(1,1,0,0);
++ QLinearGradient g(opt-&gt;rect.topLeft(), opt-&gt;rect.bottomLeft());
++ g.setColorAt(0., data-&gt;color[1]);
++ g.setColorAt(0.5, data-&gt;color[3]);
++ g.setColorAt(0.51, data-&gt;color[4]);
++ g.setColorAt(1., data-&gt;color[2]);
++
++ p-&gt;fillRect(contents, g);
++
++ // do we have a label?
++ if (title-&gt;subControls &amp; QStyle::SC_TitleBarLabel)
++ {
++ QRect labelRect = m_parent-&gt;subControlRect(QStyle::CC_TitleBar, opt, QStyle::SC_TitleBarLabel);
++ int text_flags = Qt::AlignVCenter | Qt::TextShowMnemonic | Qt::TextDontClip | Qt::TextSingleLine | Qt::AlignLeft;
++ QFont font = p-&gt;font();
++ font.setBold(true);
++ font.setPointSizeF(font.pointSizeF() / 1.19);
++ p-&gt;setFont(font);
++ p-&gt;setPen(data-&gt;white);
++ p-&gt;drawText(labelRect, text_flags, title-&gt;text);
++ }
++
++ // the buttons
++ if (title-&gt;subControls &amp; QStyle::SC_TitleBarMaxButton
++ &amp;&amp; (title-&gt;titleBarFlags &amp; Qt::WindowMaximizeButtonHint)
++ &amp;&amp; !(title-&gt;titleBarState &amp; Qt::WindowMaximized))
++ drawTitleBarButton(opt, p, w, QStyle::SC_TitleBarMaxButton, QStyle::SP_TitleBarMaxButton);
++ if (title-&gt;subControls &amp; QStyle::SC_TitleBarMinButton
++ &amp;&amp; (title-&gt;titleBarFlags &amp; Qt::WindowMinimizeButtonHint)
++ &amp;&amp; !(title-&gt;titleBarState &amp; Qt::WindowMinimized))
++ drawTitleBarButton(opt, p, w, QStyle::SC_TitleBarMinButton, QStyle::SP_TitleBarMinButton);
++ if (title-&gt;subControls &amp; QStyle::SC_TitleBarNormalButton &amp;&amp;
++ (((title-&gt;titleBarFlags &amp; Qt::WindowMinimizeButtonHint) &amp;&amp;
++ (title-&gt;titleBarState &amp; Qt::WindowMinimized)) ||
++ ((title-&gt;titleBarFlags &amp; Qt::WindowMaximizeButtonHint) &amp;&amp;
++ (title-&gt;titleBarState &amp; Qt::WindowMaximized))))
++ drawTitleBarButton(opt, p, w, QStyle::SC_TitleBarNormalButton, QStyle::SP_TitleBarNormalButton);
++ if (title-&gt;subControls &amp; QStyle::SC_TitleBarShadeButton
++ &amp;&amp; title-&gt;titleBarFlags &amp; Qt::WindowShadeButtonHint)
++ drawTitleBarButton(opt, p, w, QStyle::SC_TitleBarShadeButton, QStyle::SP_TitleBarShadeButton);
++ if (title-&gt;subControls &amp; QStyle::SC_TitleBarSysMenu)
++ drawTitleBarButton(opt, p, w, QStyle::SC_TitleBarSysMenu, QStyle::SP_TitleBarMenuButton);
++ if (title-&gt;subControls &amp; QStyle::SC_TitleBarUnshadeButton
++ &amp;&amp; title-&gt;titleBarFlags &amp; Qt::WindowShadeButtonHint)
++ drawTitleBarButton(opt, p, w, QStyle::SC_TitleBarUnshadeButton, QStyle::SP_TitleBarUnshadeButton);
++ if (title-&gt;subControls &amp; QStyle::SC_TitleBarCloseButton)
++ drawTitleBarButton(opt, p, w, QStyle::SC_TitleBarCloseButton, QStyle::SP_TitleBarCloseButton);
++ if (title-&gt;subControls &amp; QStyle::SC_TitleBarContextHelpButton
++ &amp;&amp; (title-&gt;titleBarFlags &amp; Qt::WindowContextHelpButtonHint))
++ drawTitleBarButton(opt, p, w, QStyle::SC_TitleBarContextHelpButton, QStyle::SP_TitleBarContextHelpButton);
++
++ p-&gt;restore();
++}
++
+
+
+Property changes on: theme/ia_ora-kde4/src/iaorastyle_window.cpp
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4testCMakeListstxt">Added: theme/ia_ora-kde4/test/CMakeLists.txt</a>
+===================================================================
+--- theme/ia_ora-kde4/test/CMakeLists.txt (rev 0)
++++ theme/ia_ora-kde4/test/CMakeLists.txt 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,9 @@
++set( EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR} )
++include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/../src/ ${KDE4_INCLUDES} )
++
++set( qttest_SRCS
++ qttest.cpp
++ mywindow.cpp )
++kde4_add_ui_files(qttest_SRCS mainwindow.ui)
++kde4_add_executable(qttest ${qttest_SRCS})
++target_link_libraries(qttest iaora-qt ${QT_QTGUI_LIBRARY} ${KDE4_KDECORE_LIBRARY} ${KDE4_KDEUI_LIBRARY})
+
+
+Property changes on: theme/ia_ora-kde4/test/CMakeLists.txt
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4testmainwindowui">Added: theme/ia_ora-kde4/test/mainwindow.ui</a>
+===================================================================
+--- theme/ia_ora-kde4/test/mainwindow.ui (rev 0)
++++ theme/ia_ora-kde4/test/mainwindow.ui 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,917 @@
++&lt;ui version=&quot;4.0&quot; &gt;
++ &lt;class&gt;MainWindow&lt;/class&gt;
++ &lt;widget class=&quot;QMainWindow&quot; name=&quot;MainWindow&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;0&lt;/y&gt;
++ &lt;width&gt;785&lt;/width&gt;
++ &lt;height&gt;823&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;windowTitle&quot; &gt;
++ &lt;string&gt;MainWindow&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;centralwidget&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;365&lt;/x&gt;
++ &lt;y&gt;35&lt;/y&gt;
++ &lt;width&gt;278&lt;/width&gt;
++ &lt;height&gt;766&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;layout class=&quot;QVBoxLayout&quot; name=&quot;verticalLayout_4&quot; &gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QComboBox&quot; name=&quot;stylesCombo&quot; /&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QMdiArea&quot; name=&quot;mdiArea&quot; &gt;
++ &lt;property name=&quot;contextMenuPolicy&quot; &gt;
++ &lt;enum&gt;Qt::DefaultContextMenu&lt;/enum&gt;
++ &lt;/property&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;subwindow&quot; &gt;
++ &lt;property name=&quot;windowTitle&quot; &gt;
++ &lt;string&gt;Subwindow&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;layout class=&quot;QGridLayout&quot; name=&quot;gridLayout_5&quot; &gt;
++ &lt;item row=&quot;0&quot; column=&quot;0&quot; &gt;
++ &lt;widget class=&quot;QSplitter&quot; name=&quot;splitter&quot; &gt;
++ &lt;property name=&quot;orientation&quot; &gt;
++ &lt;enum&gt;Qt::Vertical&lt;/enum&gt;
++ &lt;/property&gt;
++ &lt;widget class=&quot;QGroupBox&quot; name=&quot;groupBox&quot; &gt;
++ &lt;property name=&quot;title&quot; &gt;
++ &lt;string&gt;GroupBox&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;flat&quot; &gt;
++ &lt;bool&gt;false&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;checkable&quot; &gt;
++ &lt;bool&gt;true&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;layout class=&quot;QGridLayout&quot; name=&quot;gridLayout_3&quot; &gt;
++ &lt;item row=&quot;0&quot; column=&quot;0&quot; &gt;
++ &lt;widget class=&quot;QPushButton&quot; name=&quot;pushButton_4&quot; &gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;PushButton&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item row=&quot;1&quot; column=&quot;0&quot; &gt;
++ &lt;widget class=&quot;QRadioButton&quot; name=&quot;radioButton_5&quot; &gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;RadioButton&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item row=&quot;2&quot; column=&quot;0&quot; &gt;
++ &lt;widget class=&quot;QCheckBox&quot; name=&quot;checkBox_3&quot; &gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;CheckBox&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QTabWidget&quot; name=&quot;tabWidget&quot; &gt;
++ &lt;property name=&quot;currentIndex&quot; &gt;
++ &lt;number&gt;0&lt;/number&gt;
++ &lt;/property&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;tab&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;0&lt;/y&gt;
++ &lt;width&gt;294&lt;/width&gt;
++ &lt;height&gt;220&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;title&quot; &gt;
++ &lt;string&gt;Tab 1&lt;/string&gt;
++ &lt;/attribute&gt;
++ &lt;layout class=&quot;QGridLayout&quot; name=&quot;gridLayout_4&quot; &gt;
++ &lt;item row=&quot;0&quot; column=&quot;0&quot; &gt;
++ &lt;widget class=&quot;QTreeWidget&quot; name=&quot;treeWidget&quot; &gt;
++ &lt;column&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;FIrst Column&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/column&gt;
++ &lt;item&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Foo&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;item&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Bar&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/item&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Another item&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;item&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;SubItem&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;item&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;SubSubItem&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/item&gt;
++ &lt;/item&gt;
++ &lt;/item&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;tab_13&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;0&lt;/y&gt;
++ &lt;width&gt;294&lt;/width&gt;
++ &lt;height&gt;220&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;title&quot; &gt;
++ &lt;string&gt;Page&lt;/string&gt;
++ &lt;/attribute&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;tab_14&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;0&lt;/y&gt;
++ &lt;width&gt;294&lt;/width&gt;
++ &lt;height&gt;220&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;title&quot; &gt;
++ &lt;string&gt;Page&lt;/string&gt;
++ &lt;/attribute&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;tab_2&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;0&lt;/y&gt;
++ &lt;width&gt;294&lt;/width&gt;
++ &lt;height&gt;220&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;title&quot; &gt;
++ &lt;string&gt;Tab 2&lt;/string&gt;
++ &lt;/attribute&gt;
++ &lt;/widget&gt;
++ &lt;/widget&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/widget&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QMenuBar&quot; name=&quot;menubar&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;0&lt;/y&gt;
++ &lt;width&gt;785&lt;/width&gt;
++ &lt;height&gt;22&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;widget class=&quot;QMenu&quot; name=&quot;menuOne_Menu&quot; &gt;
++ &lt;property name=&quot;title&quot; &gt;
++ &lt;string&gt;One Menu&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;addaction name=&quot;actionOne_Entry&quot; /&gt;
++ &lt;addaction name=&quot;separator&quot; /&gt;
++ &lt;addaction name=&quot;actionAnother_Entry&quot; /&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QMenu&quot; name=&quot;menuOne_More_Menu&quot; &gt;
++ &lt;property name=&quot;title&quot; &gt;
++ &lt;string&gt;One More Menu&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;addaction name=&quot;actionFoobar&quot; /&gt;
++ &lt;/widget&gt;
++ &lt;addaction name=&quot;menuOne_Menu&quot; /&gt;
++ &lt;addaction name=&quot;menuOne_More_Menu&quot; /&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QStatusBar&quot; name=&quot;statusbar&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;801&lt;/y&gt;
++ &lt;width&gt;785&lt;/width&gt;
++ &lt;height&gt;22&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QToolBar&quot; name=&quot;toolBar&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;22&lt;/y&gt;
++ &lt;width&gt;785&lt;/width&gt;
++ &lt;height&gt;13&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;windowTitle&quot; &gt;
++ &lt;string&gt;toolBar&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;toolBarArea&quot; &gt;
++ &lt;enum&gt;TopToolBarArea&lt;/enum&gt;
++ &lt;/attribute&gt;
++ &lt;attribute name=&quot;toolBarBreak&quot; &gt;
++ &lt;bool&gt;false&lt;/bool&gt;
++ &lt;/attribute&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QToolBar&quot; name=&quot;smallToolBar&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;35&lt;/y&gt;
++ &lt;width&gt;13&lt;/width&gt;
++ &lt;height&gt;766&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;windowTitle&quot; &gt;
++ &lt;string&gt;toolBar_2&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;toolBarArea&quot; &gt;
++ &lt;enum&gt;LeftToolBarArea&lt;/enum&gt;
++ &lt;/attribute&gt;
++ &lt;attribute name=&quot;toolBarBreak&quot; &gt;
++ &lt;bool&gt;false&lt;/bool&gt;
++ &lt;/attribute&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QDockWidget&quot; name=&quot;dockWidget_2&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;649&lt;/x&gt;
++ &lt;y&gt;35&lt;/y&gt;
++ &lt;width&gt;136&lt;/width&gt;
++ &lt;height&gt;399&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;windowTitle&quot; &gt;
++ &lt;string&gt;Boxes and Horizontal Sliders&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;dockWidgetArea&quot; &gt;
++ &lt;number&gt;2&lt;/number&gt;
++ &lt;/attribute&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;dockWidgetContents_2&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;26&lt;/y&gt;
++ &lt;width&gt;136&lt;/width&gt;
++ &lt;height&gt;373&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;layout class=&quot;QVBoxLayout&quot; name=&quot;verticalLayout_6&quot; &gt;
++ &lt;item&gt;
++ &lt;layout class=&quot;QVBoxLayout&quot; name=&quot;verticalLayout_2&quot; &gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QLineEdit&quot; name=&quot;lineEdit&quot; /&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QComboBox&quot; name=&quot;comboBox&quot; &gt;
++ &lt;property name=&quot;editable&quot; &gt;
++ &lt;bool&gt;true&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QComboBox&quot; name=&quot;notEditableCombo&quot; /&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QSpinBox&quot; name=&quot;spinBox&quot; /&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;layout class=&quot;QVBoxLayout&quot; name=&quot;verticalLayout&quot; &gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QScrollBar&quot; name=&quot;horizontalScrollBar&quot; &gt;
++ &lt;property name=&quot;orientation&quot; &gt;
++ &lt;enum&gt;Qt::Horizontal&lt;/enum&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QSlider&quot; name=&quot;horizontalSlider&quot; &gt;
++ &lt;property name=&quot;value&quot; &gt;
++ &lt;number&gt;30&lt;/number&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;orientation&quot; &gt;
++ &lt;enum&gt;Qt::Horizontal&lt;/enum&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;tickPosition&quot; &gt;
++ &lt;enum&gt;QSlider::TicksBothSides&lt;/enum&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QProgressBar&quot; name=&quot;progressBar&quot; &gt;
++ &lt;property name=&quot;value&quot; &gt;
++ &lt;number&gt;50&lt;/number&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;alignment&quot; &gt;
++ &lt;set&gt;Qt::AlignCenter&lt;/set&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;textVisible&quot; &gt;
++ &lt;bool&gt;true&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;invertedAppearance&quot; &gt;
++ &lt;bool&gt;false&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/widget&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QDockWidget&quot; name=&quot;dockWidget_3&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;649&lt;/x&gt;
++ &lt;y&gt;440&lt;/y&gt;
++ &lt;width&gt;136&lt;/width&gt;
++ &lt;height&gt;361&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;floating&quot; &gt;
++ &lt;bool&gt;false&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;windowTitle&quot; &gt;
++ &lt;string&gt;Grid View&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;dockWidgetArea&quot; &gt;
++ &lt;number&gt;2&lt;/number&gt;
++ &lt;/attribute&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;dockWidgetContents_3&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;26&lt;/y&gt;
++ &lt;width&gt;136&lt;/width&gt;
++ &lt;height&gt;335&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;layout class=&quot;QHBoxLayout&quot; name=&quot;horizontalLayout_3&quot; &gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QTableWidget&quot; name=&quot;tableWidget&quot; &gt;
++ &lt;property name=&quot;rowCount&quot; &gt;
++ &lt;number&gt;5&lt;/number&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;columnCount&quot; &gt;
++ &lt;number&gt;3&lt;/number&gt;
++ &lt;/property&gt;
++ &lt;row/&gt;
++ &lt;row/&gt;
++ &lt;row/&gt;
++ &lt;row/&gt;
++ &lt;row/&gt;
++ &lt;column/&gt;
++ &lt;column/&gt;
++ &lt;column/&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/widget&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QDockWidget&quot; name=&quot;dockWidget&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;13&lt;/x&gt;
++ &lt;y&gt;35&lt;/y&gt;
++ &lt;width&gt;346&lt;/width&gt;
++ &lt;height&gt;198&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;focusPolicy&quot; &gt;
++ &lt;enum&gt;Qt::TabFocus&lt;/enum&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;floating&quot; &gt;
++ &lt;bool&gt;false&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;windowTitle&quot; &gt;
++ &lt;string&gt;Radio &amp;amp;&amp;amp; Checks&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;dockWidgetArea&quot; &gt;
++ &lt;number&gt;1&lt;/number&gt;
++ &lt;/attribute&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;dockWidgetContents&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;26&lt;/y&gt;
++ &lt;width&gt;346&lt;/width&gt;
++ &lt;height&gt;172&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;layout class=&quot;QHBoxLayout&quot; name=&quot;horizontalLayout_7&quot; &gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QTabWidget&quot; name=&quot;tabWidget_4&quot; &gt;
++ &lt;property name=&quot;tabPosition&quot; &gt;
++ &lt;enum&gt;QTabWidget::South&lt;/enum&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;tabShape&quot; &gt;
++ &lt;enum&gt;QTabWidget::Rounded&lt;/enum&gt;
++ &lt;/property&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;tab_7&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;0&lt;/y&gt;
++ &lt;width&gt;316&lt;/width&gt;
++ &lt;height&gt;119&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;title&quot; &gt;
++ &lt;string&gt;Tab 1&lt;/string&gt;
++ &lt;/attribute&gt;
++ &lt;layout class=&quot;QHBoxLayout&quot; name=&quot;horizontalLayout_6&quot; &gt;
++ &lt;item&gt;
++ &lt;layout class=&quot;QGridLayout&quot; name=&quot;gridLayout_2&quot; &gt;
++ &lt;item row=&quot;0&quot; column=&quot;0&quot; &gt;
++ &lt;widget class=&quot;QRadioButton&quot; name=&quot;radioButton&quot; &gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Enabled&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;checked&quot; &gt;
++ &lt;bool&gt;true&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;autoExclusive&quot; &gt;
++ &lt;bool&gt;false&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item row=&quot;0&quot; column=&quot;1&quot; &gt;
++ &lt;widget class=&quot;QCheckBox&quot; name=&quot;checkBox&quot; &gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Enabled&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;checked&quot; &gt;
++ &lt;bool&gt;true&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;tristate&quot; &gt;
++ &lt;bool&gt;false&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item row=&quot;1&quot; column=&quot;0&quot; &gt;
++ &lt;widget class=&quot;QRadioButton&quot; name=&quot;radioButton_2&quot; &gt;
++ &lt;property name=&quot;enabled&quot; &gt;
++ &lt;bool&gt;false&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Disabled&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;checked&quot; &gt;
++ &lt;bool&gt;true&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;autoExclusive&quot; &gt;
++ &lt;bool&gt;false&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item row=&quot;1&quot; column=&quot;1&quot; &gt;
++ &lt;widget class=&quot;QCheckBox&quot; name=&quot;checkBox_2&quot; &gt;
++ &lt;property name=&quot;enabled&quot; &gt;
++ &lt;bool&gt;false&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Disabled&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;checked&quot; &gt;
++ &lt;bool&gt;true&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item row=&quot;2&quot; column=&quot;0&quot; &gt;
++ &lt;widget class=&quot;QRadioButton&quot; name=&quot;radioButton_3&quot; &gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Enabled&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;autoExclusive&quot; &gt;
++ &lt;bool&gt;false&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item row=&quot;2&quot; column=&quot;1&quot; &gt;
++ &lt;widget class=&quot;QCheckBox&quot; name=&quot;tristateCheck&quot; &gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Tristate&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;checked&quot; &gt;
++ &lt;bool&gt;false&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;tristate&quot; &gt;
++ &lt;bool&gt;true&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item row=&quot;3&quot; column=&quot;0&quot; &gt;
++ &lt;widget class=&quot;QRadioButton&quot; name=&quot;radioButton_4&quot; &gt;
++ &lt;property name=&quot;enabled&quot; &gt;
++ &lt;bool&gt;false&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Disabled&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;autoExclusive&quot; &gt;
++ &lt;bool&gt;false&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item row=&quot;3&quot; column=&quot;1&quot; &gt;
++ &lt;widget class=&quot;QCheckBox&quot; name=&quot;tristateDisable&quot; &gt;
++ &lt;property name=&quot;enabled&quot; &gt;
++ &lt;bool&gt;false&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Tristate Disabled&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;tristate&quot; &gt;
++ &lt;bool&gt;true&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;tab_11&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;0&lt;/y&gt;
++ &lt;width&gt;316&lt;/width&gt;
++ &lt;height&gt;119&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;title&quot; &gt;
++ &lt;string&gt;Page&lt;/string&gt;
++ &lt;/attribute&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;tab_12&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;0&lt;/y&gt;
++ &lt;width&gt;316&lt;/width&gt;
++ &lt;height&gt;119&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;title&quot; &gt;
++ &lt;string&gt;Page&lt;/string&gt;
++ &lt;/attribute&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;tab_8&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;0&lt;/y&gt;
++ &lt;width&gt;316&lt;/width&gt;
++ &lt;height&gt;119&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;title&quot; &gt;
++ &lt;string&gt;Tab 2&lt;/string&gt;
++ &lt;/attribute&gt;
++ &lt;/widget&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/widget&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QDockWidget&quot; name=&quot;dockWidget_5&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;13&lt;/x&gt;
++ &lt;y&gt;239&lt;/y&gt;
++ &lt;width&gt;346&lt;/width&gt;
++ &lt;height&gt;278&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;windowTitle&quot; &gt;
++ &lt;string&gt;Vertical Sliders&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;dockWidgetArea&quot; &gt;
++ &lt;number&gt;1&lt;/number&gt;
++ &lt;/attribute&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;dockWidgetContents_5&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;26&lt;/y&gt;
++ &lt;width&gt;346&lt;/width&gt;
++ &lt;height&gt;252&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;layout class=&quot;QVBoxLayout&quot; name=&quot;verticalLayout_3&quot; &gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QTabWidget&quot; name=&quot;tabWidget_2&quot; &gt;
++ &lt;property name=&quot;tabPosition&quot; &gt;
++ &lt;enum&gt;QTabWidget::West&lt;/enum&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;tabShape&quot; &gt;
++ &lt;enum&gt;QTabWidget::Rounded&lt;/enum&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;currentIndex&quot; &gt;
++ &lt;number&gt;0&lt;/number&gt;
++ &lt;/property&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;tab_3&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;0&lt;/y&gt;
++ &lt;width&gt;293&lt;/width&gt;
++ &lt;height&gt;222&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;title&quot; &gt;
++ &lt;string&gt;Tab 1&lt;/string&gt;
++ &lt;/attribute&gt;
++ &lt;layout class=&quot;QHBoxLayout&quot; name=&quot;horizontalLayout_2&quot; &gt;
++ &lt;item&gt;
++ &lt;layout class=&quot;QHBoxLayout&quot; name=&quot;horizontalLayout&quot; &gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QFrame&quot; name=&quot;frame&quot; &gt;
++ &lt;property name=&quot;frameShape&quot; &gt;
++ &lt;enum&gt;QFrame::StyledPanel&lt;/enum&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;frameShadow&quot; &gt;
++ &lt;enum&gt;QFrame::Raised&lt;/enum&gt;
++ &lt;/property&gt;
++ &lt;layout class=&quot;QHBoxLayout&quot; name=&quot;horizontalLayout_8&quot; &gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QDial&quot; name=&quot;dial&quot; /&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QScrollBar&quot; name=&quot;verticalScrollBar&quot; &gt;
++ &lt;property name=&quot;orientation&quot; &gt;
++ &lt;enum&gt;Qt::Vertical&lt;/enum&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QSlider&quot; name=&quot;verticalSlider&quot; &gt;
++ &lt;property name=&quot;value&quot; &gt;
++ &lt;number&gt;50&lt;/number&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;orientation&quot; &gt;
++ &lt;enum&gt;Qt::Vertical&lt;/enum&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;tickPosition&quot; &gt;
++ &lt;enum&gt;QSlider::TicksAbove&lt;/enum&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QProgressBar&quot; name=&quot;progressBar_2&quot; &gt;
++ &lt;property name=&quot;value&quot; &gt;
++ &lt;number&gt;50&lt;/number&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;orientation&quot; &gt;
++ &lt;enum&gt;Qt::Vertical&lt;/enum&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;zorder&gt;&lt;/zorder&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;tab_10&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;0&lt;/y&gt;
++ &lt;width&gt;293&lt;/width&gt;
++ &lt;height&gt;222&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;title&quot; &gt;
++ &lt;string&gt;Page&lt;/string&gt;
++ &lt;/attribute&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;tab_9&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;0&lt;/y&gt;
++ &lt;width&gt;293&lt;/width&gt;
++ &lt;height&gt;222&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;title&quot; &gt;
++ &lt;string&gt;Page&lt;/string&gt;
++ &lt;/attribute&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;tab_4&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;0&lt;/y&gt;
++ &lt;width&gt;293&lt;/width&gt;
++ &lt;height&gt;222&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;title&quot; &gt;
++ &lt;string&gt;Tab 2&lt;/string&gt;
++ &lt;/attribute&gt;
++ &lt;/widget&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/widget&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QDockWidget&quot; name=&quot;dockWidget_4&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;13&lt;/x&gt;
++ &lt;y&gt;523&lt;/y&gt;
++ &lt;width&gt;346&lt;/width&gt;
++ &lt;height&gt;278&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;windowTitle&quot; &gt;
++ &lt;string&gt;Buttons&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;dockWidgetArea&quot; &gt;
++ &lt;number&gt;1&lt;/number&gt;
++ &lt;/attribute&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;dockWidgetContents_4&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;26&lt;/y&gt;
++ &lt;width&gt;346&lt;/width&gt;
++ &lt;height&gt;252&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;layout class=&quot;QHBoxLayout&quot; name=&quot;horizontalLayout_5&quot; &gt;
++ &lt;item&gt;
++ &lt;widget class=&quot;QTabWidget&quot; name=&quot;tabWidget_3&quot; &gt;
++ &lt;property name=&quot;tabPosition&quot; &gt;
++ &lt;enum&gt;QTabWidget::East&lt;/enum&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;currentIndex&quot; &gt;
++ &lt;number&gt;3&lt;/number&gt;
++ &lt;/property&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;tab_5&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;0&lt;/y&gt;
++ &lt;width&gt;293&lt;/width&gt;
++ &lt;height&gt;222&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;title&quot; &gt;
++ &lt;string&gt;Tab 1&lt;/string&gt;
++ &lt;/attribute&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;tab_15&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;0&lt;/y&gt;
++ &lt;width&gt;293&lt;/width&gt;
++ &lt;height&gt;222&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;title&quot; &gt;
++ &lt;string&gt;Page&lt;/string&gt;
++ &lt;/attribute&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;tab_16&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;0&lt;/y&gt;
++ &lt;width&gt;293&lt;/width&gt;
++ &lt;height&gt;222&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;title&quot; &gt;
++ &lt;string&gt;Page&lt;/string&gt;
++ &lt;/attribute&gt;
++ &lt;/widget&gt;
++ &lt;widget class=&quot;QWidget&quot; name=&quot;tab_6&quot; &gt;
++ &lt;property name=&quot;geometry&quot; &gt;
++ &lt;rect&gt;
++ &lt;x&gt;0&lt;/x&gt;
++ &lt;y&gt;0&lt;/y&gt;
++ &lt;width&gt;293&lt;/width&gt;
++ &lt;height&gt;222&lt;/height&gt;
++ &lt;/rect&gt;
++ &lt;/property&gt;
++ &lt;attribute name=&quot;title&quot; &gt;
++ &lt;string&gt;Tab 2&lt;/string&gt;
++ &lt;/attribute&gt;
++ &lt;layout class=&quot;QHBoxLayout&quot; name=&quot;horizontalLayout_4&quot; &gt;
++ &lt;item&gt;
++ &lt;layout class=&quot;QGridLayout&quot; name=&quot;gridLayout&quot; &gt;
++ &lt;item row=&quot;0&quot; column=&quot;0&quot; &gt;
++ &lt;widget class=&quot;QPushButton&quot; name=&quot;pushButton&quot; &gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;PushButton&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item row=&quot;0&quot; column=&quot;1&quot; &gt;
++ &lt;widget class=&quot;QPushButton&quot; name=&quot;pushButton_2&quot; &gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Toggle&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;checkable&quot; &gt;
++ &lt;bool&gt;true&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;checked&quot; &gt;
++ &lt;bool&gt;true&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item row=&quot;1&quot; column=&quot;0&quot; &gt;
++ &lt;widget class=&quot;QPushButton&quot; name=&quot;disabledPushButton&quot; &gt;
++ &lt;property name=&quot;enabled&quot; &gt;
++ &lt;bool&gt;false&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Disabled&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item row=&quot;1&quot; column=&quot;1&quot; &gt;
++ &lt;widget class=&quot;QPushButton&quot; name=&quot;pushButton_3&quot; &gt;
++ &lt;property name=&quot;enabled&quot; &gt;
++ &lt;bool&gt;false&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Toggle Disabled&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;checkable&quot; &gt;
++ &lt;bool&gt;true&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;checked&quot; &gt;
++ &lt;bool&gt;true&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item row=&quot;2&quot; column=&quot;0&quot; &gt;
++ &lt;widget class=&quot;QPushButton&quot; name=&quot;defaultPushButton&quot; &gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Default&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;property name=&quot;default&quot; &gt;
++ &lt;bool&gt;true&lt;/bool&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;item row=&quot;2&quot; column=&quot;1&quot; &gt;
++ &lt;widget class=&quot;QToolButton&quot; name=&quot;toolButton&quot; &gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;ToolButton&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/widget&gt;
++ &lt;/widget&gt;
++ &lt;/item&gt;
++ &lt;/layout&gt;
++ &lt;/widget&gt;
++ &lt;/widget&gt;
++ &lt;action name=&quot;actionOne_Entry&quot; &gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;One Entry&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/action&gt;
++ &lt;action name=&quot;actionAnother_Entry&quot; &gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Another Entry&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/action&gt;
++ &lt;action name=&quot;actionFoobar&quot; &gt;
++ &lt;property name=&quot;text&quot; &gt;
++ &lt;string&gt;Foobar&lt;/string&gt;
++ &lt;/property&gt;
++ &lt;/action&gt;
++ &lt;/widget&gt;
++ &lt;resources/&gt;
++ &lt;connections/&gt;
++&lt;/ui&gt;
+
+<a id="themeia_orakde4testmywindowcpp">Added: theme/ia_ora-kde4/test/mywindow.cpp</a>
+===================================================================
+--- theme/ia_ora-kde4/test/mywindow.cpp (rev 0)
++++ theme/ia_ora-kde4/test/mywindow.cpp 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,83 @@
++#include &quot;mywindow.h&quot;
++#include &quot;iaora-qt.h&quot;
++#include &lt;KApplication&gt;
++#include &lt;QStyleFactory&gt;
++#include &lt;QMenu&gt;
++#include &lt;KIcon&gt;
++
++MyWindow::MyWindow()
++: QMainWindow()
++{
++ setContextMenuPolicy(Qt::CustomContextMenu);
++ connect( this, SIGNAL(customContextMenuRequested(const QPoint &amp;)),
++ this, SLOT(slotContextMenu(const QPoint&amp;)));
++}
++
++MyWindow::~MyWindow()
++{
++ // do nothing for now
++}
++
++void MyWindow::slotSetStyle(const QString &amp;style)
++{
++ if (style == &quot;IaOraQt&quot;)
++ KApplication::setStyle(new IaOraQt());
++ else
++ KApplication::setStyle(QStyleFactory::create(style));
++ update();
++}
++
++void MyWindow::slotContextMenu(const QPoint &amp;pos)
++{
++ QMenu *menu = new QMenu(this);
++ QAction *action;
++ menu-&gt;setTearOffEnabled(true);
++
++ menu-&gt;addAction(KIcon(&quot;digikam&quot;), &quot;Take snapshot&quot;);
++ action = menu-&gt;addAction(KIcon(&quot;kde&quot;), &quot;Make KDE4 work&quot;);
++ action-&gt;setEnabled(false);
++ menu-&gt;addSeparator();
++
++ action = new QAction(KIcon(&quot;kchart&quot;), &quot;Checked icon item&quot;, this);
++ action-&gt;setCheckable(true);
++ action-&gt;setChecked(true);
++ menu-&gt;addAction(action);
++
++ action = new QAction(KIcon(&quot;ktip&quot;), &quot;Unchecked icon item&quot;, this);
++ action-&gt;setCheckable(true);
++ menu-&gt;addAction(action);
++
++ action = new QAction(&quot;Checked item&quot;, this);
++ action-&gt;setCheckable(true);
++ action-&gt;setChecked(true);
++ menu-&gt;addAction(action);
++
++ action = new QAction(&quot;Unchecked item&quot;, this);
++ action-&gt;setCheckable(true);
++ menu-&gt;addAction(action);
++
++ QActionGroup group(this);
++ group.setExclusive(true);
++ action = new QAction(&quot;Unique checked item&quot;, this);
++ action-&gt;setCheckable(true);
++ action-&gt;setChecked(true);
++ group.addAction(action);
++ menu-&gt;addAction(action);
++
++ action = new QAction(&quot;Unique unchecked item&quot;, this);
++ action-&gt;setCheckable(true);
++ group.addAction(action);
++ menu-&gt;addAction(action);
++
++ menu-&gt;addSeparator();
++ action = new QAction(KIcon(&quot;kbugbuster&quot;), &quot;Kill some bugs&quot;, this);
++ menu-&gt;addAction(action);
++ menu-&gt;setDefaultAction(action);
++
++ QMenu *subMenu = new QMenu(&quot;A SubMenu&quot;, this);
++ subMenu-&gt;setIcon(KIcon(&quot;konqueror&quot;));
++ subMenu-&gt;addAction(new QAction(KIcon(&quot;dolphin&quot;), &quot;A SubItem&quot;, this));
++ menu-&gt;addMenu(subMenu);
++ menu-&gt;exec(QCursor::pos());
++ delete menu;
++}
+
+
+Property changes on: theme/ia_ora-kde4/test/mywindow.cpp
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4testmywindowh">Added: theme/ia_ora-kde4/test/mywindow.h</a>
+===================================================================
+--- theme/ia_ora-kde4/test/mywindow.h (rev 0)
++++ theme/ia_ora-kde4/test/mywindow.h 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,18 @@
++#ifndef MYWINDOW_H
++#define MYWINDOW_H
++
++#include &lt;QMainWindow&gt;
++
++class MyWindow : public QMainWindow
++{
++ Q_OBJECT
++public:
++ MyWindow();
++ ~MyWindow();
++
++public slots:
++ void slotSetStyle(const QString &amp;style);
++ void slotContextMenu(const QPoint &amp;pos);
++};
++
++#endif
+
+
+Property changes on: theme/ia_ora-kde4/test/mywindow.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4testqttestcpp">Added: theme/ia_ora-kde4/test/qttest.cpp</a>
+===================================================================
+--- theme/ia_ora-kde4/test/qttest.cpp (rev 0)
++++ theme/ia_ora-kde4/test/qttest.cpp 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,134 @@
++#include &lt;KApplication&gt;
++#include &lt;KAboutData&gt;
++#include &lt;KCmdLineArgs&gt;
++
++#include &lt;QAction&gt;
++#include &lt;QString&gt;
++#include &lt;QToolBar&gt;
++#include &lt;QStyleFactory&gt;
++
++#include &lt;KIcon&gt;
++#include &quot;mywindow.h&quot;
++#include &quot;ui_mainwindow.h&quot;
++
++int main(int argc, char **argv)
++{
++ KAboutData aboutData(
++ // The program name used internally.
++ &quot;qttest&quot;,
++ // The message catalog name
++ // If null, program name is used instead.
++ 0,
++ // A displayable program name string.
++ ki18n(&quot;Qt Style Test&quot;),
++ // The program version string.
++ &quot;1.0&quot;,
++ // Short description of what the app does.
++ ki18n(&quot;A testbed for trying out Qt styles&quot;),
++ // The license this code is released under
++ KAboutData::License_GPL,
++ // Copyright Statement
++ ki18n(&quot;(c) 2007&quot;),
++ // Optional text shown in the About box.
++ // Can contain any information desired.
++ ki18n(&quot;Some text...&quot;),
++ // The program homepage string.
++ &quot;http://tutorial.com/&quot;,
++ // The bug report email address
++ &quot;submit@bugs.kde.org&quot;);
++
++ KCmdLineArgs::init( argc, argv, &amp;aboutData );
++ KApplication app;
++
++ MyWindow win;
++ Ui::MainWindow win_ui;
++
++ win_ui.setupUi(&amp;win);
++
++ // the styles toolbar
++ win_ui.stylesCombo-&gt;addItem(&quot;IaOraQt&quot;);
++ win_ui.stylesCombo-&gt;addItems(QStyleFactory::keys());
++ QObject::connect(win_ui.stylesCombo, SIGNAL(activated(const QString &amp;)),
++ &amp;win, SLOT(slotSetStyle(const QString &amp;)));
++
++ // the big toolbar
++ win_ui.toolBar-&gt;addAction(KIcon(&quot;akonadi&quot;), &quot;Foobar&quot;);
++ win_ui.toolBar-&gt;addSeparator();
++ win_ui.toolBar-&gt;addAction(KIcon(&quot;konqueror&quot;), &quot;Web Browser&quot;);
++ win_ui.toolBar-&gt;setIconSize(QSize(32,32));
++
++ win_ui.notEditableCombo-&gt;addItem(&quot;Foobar&quot;);
++ win_ui.notEditableCombo-&gt;addItem(&quot;Foobar2&quot;);
++ win_ui.notEditableCombo-&gt;addItem(&quot;Foobar3&quot;);
++ win_ui.notEditableCombo-&gt;addItem(&quot;Foobar4&quot;);
++ win_ui.notEditableCombo-&gt;addItem(&quot;Foobar5&quot;);
++
++ win_ui.comboBox-&gt;addItem(&quot;Foobar&quot;);
++ win_ui.comboBox-&gt;addItem(&quot;Foobar2&quot;);
++ win_ui.comboBox-&gt;addItem(&quot;Foobar3&quot;);
++ win_ui.comboBox-&gt;addItem(&quot;Foobar4&quot;);
++ win_ui.comboBox-&gt;addItem(&quot;Foobar5&quot;);
++
++ win_ui.tristateCheck-&gt;setCheckState(Qt::PartiallyChecked);
++ win_ui.tristateDisable-&gt;setCheckState(Qt::PartiallyChecked);
++
++ //the small toolbar
++ win_ui.smallToolBar-&gt;addAction(KIcon(&quot;plasma&quot;), &quot;Desktop&quot;);
++ win_ui.smallToolBar-&gt;addSeparator();
++ win_ui.smallToolBar-&gt;addAction(KIcon(&quot;kopete&quot;), &quot;Instant Message&quot;);
++ win.slotSetStyle(&quot;IaOraQt&quot;);
++ win.show();
++
++ QMenuBar *menubar = new QMenuBar(win_ui.subwindow);
++ QMenu *menu = new QMenu(win_ui.subwindow);
++ QAction *action;
++ menu-&gt;setTearOffEnabled(true);
++
++ menu-&gt;addAction(KIcon(&quot;digikam&quot;), &quot;Take snapshot&quot;);
++ action = menu-&gt;addAction(KIcon(&quot;kde&quot;), &quot;Make KDE4 work&quot;);
++ action-&gt;setEnabled(false);
++ menu-&gt;addSeparator();
++
++ action = new QAction(KIcon(&quot;kchart&quot;), &quot;Checked icon item&quot;, win_ui.subwindow);
++ action-&gt;setCheckable(true);
++ action-&gt;setChecked(true);
++ menu-&gt;addAction(action);
++
++ action = new QAction(KIcon(&quot;ktip&quot;), &quot;Unchecked icon item&quot;, win_ui.subwindow);
++ action-&gt;setCheckable(true);
++ menu-&gt;addAction(action);
++
++ action = new QAction(&quot;Checked item&quot;, win_ui.subwindow);
++ action-&gt;setCheckable(true);
++ action-&gt;setChecked(true);
++ menu-&gt;addAction(action);
++
++ action = new QAction(&quot;Unchecked item&quot;, win_ui.subwindow);
++ action-&gt;setCheckable(true);
++ menu-&gt;addAction(action);
++
++ QActionGroup group(win_ui.subwindow);
++ group.setExclusive(true);
++ action = new QAction(&quot;Unique checked item&quot;, win_ui.subwindow);
++ action-&gt;setCheckable(true);
++ action-&gt;setChecked(true);
++ group.addAction(action);
++ menu-&gt;addAction(action);
++
++ action = new QAction(&quot;Unique unchecked item&quot;, win_ui.subwindow);
++ action-&gt;setCheckable(true);
++ group.addAction(action);
++ menu-&gt;addAction(action);
++
++ menu-&gt;addSeparator();
++ menu-&gt;addAction(KIcon(&quot;kbugbuster&quot;), &quot;Kill some bugs&quot;);
++ menu-&gt;setTitle(&quot;A menu&quot;);
++ menubar-&gt;addMenu(menu);
++ menubar-&gt;addMenu(KIcon(&quot;kde&quot;), &quot;Foobar&quot;);
++ menubar-&gt;addSeparator();
++ menubar-&gt;addMenu(&quot;Another menu&quot;);
++
++ menubar-&gt;show();
++ win_ui.subwindow-&gt;layout()-&gt;addWidget(menubar);
++ return app.exec();
++}
+
+
+Property changes on: theme/ia_ora-kde4/test/qttest.cpp
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="themeia_orakde4uninstallsh">Added: theme/ia_ora-kde4/uninstall.sh</a>
+===================================================================
+--- theme/ia_ora-kde4/uninstall.sh (rev 0)
++++ theme/ia_ora-kde4/uninstall.sh 2011-02-07 09:04:25 UTC (rev 459)
+@@ -0,0 +1,10 @@
++#! /bin/sh
++
++if [ -f install_manifest.txt ] ; then
++ echo &quot;The following files will be removed:&quot;
++ cat install_manifest.txt
++ echo &quot;Press RETURN to abort, or enter root's password to remove them.&quot;
++ su -c &quot;xargs rm -v &lt; install_manifest.txt&quot; &amp;&amp; rm -f install_manifest.txt
++else
++ echo &quot;Cannot find install_manifest.txt, maybe not yet installed?&quot;
++fi
+
+
+Property changes on: theme/ia_ora-kde4/uninstall.sh
+___________________________________________________________________
+Added: svn:executable
+ + *
+Added: svn:eol-style
+ + native
+
+</pre></div>
+
+</body>
+</html> \ No newline at end of file
diff --git a/zarb-ml/mageia-sysadm/attachments/20110207/69cc9ba4/attachment-0001.html b/zarb-ml/mageia-sysadm/attachments/20110207/69cc9ba4/attachment-0001.html
new file mode 100644
index 000000000..abc995788
--- /dev/null
+++ b/zarb-ml/mageia-sysadm/attachments/20110207/69cc9ba4/attachment-0001.html
@@ -0,0 +1,84 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>[463] Update Changelog</title>
+</head>
+<body>
+
+<style type="text/css"><!--
+#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
+#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
+#msg dt:after { content:':';}
+#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
+#msg dl a { font-weight: bold}
+#msg dl a:link { color:#fc3; }
+#msg dl a:active { color:#ff0; }
+#msg dl a:visited { color:#cc6; }
+h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
+#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
+#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
+#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
+#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
+#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
+#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
+#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
+#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
+#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
+#logmsg pre { background: #eee; padding: 1em; }
+#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
+#logmsg dl { margin: 0; }
+#logmsg dt { font-weight: bold; }
+#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
+#logmsg dd:before { content:'\00bb';}
+#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
+#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
+#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
+#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
+#logmsg table th.Corner { text-align: left; }
+#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
+#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
+#patch { width: 100%; }
+--></style>
+<div id="msg">
+<dl class="meta">
+<dt>Revision</dt> <dd>463</dd>
+<dt>Author</dt> <dd>dmorgan</dd>
+<dt>Date</dt> <dd>2011-02-07 10:44:50 +0100 (Mon, 07 Feb 2011)</dd>
+</dl>
+
+<h3>Log Message</h3>
+<pre>Update Changelog</pre>
+
+<h3>Modified Paths</h3>
+<ul>
+<li><a href="#themexsettingskdetrunkChangeLog">theme/xsettings-kde/trunk/ChangeLog</a></li>
+</ul>
+
+</div>
+<div id="patch"><pre>
+<a id="themexsettingskdetrunkChangeLog">Modified: theme/xsettings-kde/trunk/ChangeLog</a>
+===================================================================
+--- theme/xsettings-kde/trunk/ChangeLog 2011-02-07 09:41:38 UTC (rev 462)
++++ theme/xsettings-kde/trunk/ChangeLog 2011-02-07 09:44:50 UTC (rev 463)
+@@ -1,3 +1,15 @@
++2011-02-07 09:41 dmorgan
++
++ * xsettings-kde.c: Add fedora patch
++ * make GTK+ apps display menu images in KDE
++
++2011-02-07 09:11 dmorgan
++
++ * ., .cvsignore, .gitignore, COPYING, ChangeLog, Makefile, README,
++ xsettings-common.c, xsettings-common.h, xsettings-kde.c,
++ xsettings-manager.c, xsettings-manager.h: Import cleaned
++ xsettings-kde
++
+ 2009-08-19 10:01 Frederic Crozat &lt;fcrozat at mandriva.com&gt;
+
+ * Makefile: Release 0.11
+
+</pre></div>
+
+</body>
+</html> \ No newline at end of file
diff --git a/zarb-ml/mageia-sysadm/attachments/20110207/69cc9ba4/attachment.html b/zarb-ml/mageia-sysadm/attachments/20110207/69cc9ba4/attachment.html
new file mode 100644
index 000000000..abc995788
--- /dev/null
+++ b/zarb-ml/mageia-sysadm/attachments/20110207/69cc9ba4/attachment.html
@@ -0,0 +1,84 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>[463] Update Changelog</title>
+</head>
+<body>
+
+<style type="text/css"><!--
+#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
+#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
+#msg dt:after { content:':';}
+#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
+#msg dl a { font-weight: bold}
+#msg dl a:link { color:#fc3; }
+#msg dl a:active { color:#ff0; }
+#msg dl a:visited { color:#cc6; }
+h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
+#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
+#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
+#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
+#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
+#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
+#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
+#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
+#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
+#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
+#logmsg pre { background: #eee; padding: 1em; }
+#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
+#logmsg dl { margin: 0; }
+#logmsg dt { font-weight: bold; }
+#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
+#logmsg dd:before { content:'\00bb';}
+#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
+#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
+#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
+#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
+#logmsg table th.Corner { text-align: left; }
+#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
+#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
+#patch { width: 100%; }
+--></style>
+<div id="msg">
+<dl class="meta">
+<dt>Revision</dt> <dd>463</dd>
+<dt>Author</dt> <dd>dmorgan</dd>
+<dt>Date</dt> <dd>2011-02-07 10:44:50 +0100 (Mon, 07 Feb 2011)</dd>
+</dl>
+
+<h3>Log Message</h3>
+<pre>Update Changelog</pre>
+
+<h3>Modified Paths</h3>
+<ul>
+<li><a href="#themexsettingskdetrunkChangeLog">theme/xsettings-kde/trunk/ChangeLog</a></li>
+</ul>
+
+</div>
+<div id="patch"><pre>
+<a id="themexsettingskdetrunkChangeLog">Modified: theme/xsettings-kde/trunk/ChangeLog</a>
+===================================================================
+--- theme/xsettings-kde/trunk/ChangeLog 2011-02-07 09:41:38 UTC (rev 462)
++++ theme/xsettings-kde/trunk/ChangeLog 2011-02-07 09:44:50 UTC (rev 463)
+@@ -1,3 +1,15 @@
++2011-02-07 09:41 dmorgan
++
++ * xsettings-kde.c: Add fedora patch
++ * make GTK+ apps display menu images in KDE
++
++2011-02-07 09:11 dmorgan
++
++ * ., .cvsignore, .gitignore, COPYING, ChangeLog, Makefile, README,
++ xsettings-common.c, xsettings-common.h, xsettings-kde.c,
++ xsettings-manager.c, xsettings-manager.h: Import cleaned
++ xsettings-kde
++
+ 2009-08-19 10:01 Frederic Crozat &lt;fcrozat at mandriva.com&gt;
+
+ * Makefile: Release 0.11
+
+</pre></div>
+
+</body>
+</html> \ No newline at end of file
diff --git a/zarb-ml/mageia-sysadm/attachments/20110207/6feaa886/attachment-0001.html b/zarb-ml/mageia-sysadm/attachments/20110207/6feaa886/attachment-0001.html
new file mode 100644
index 000000000..799d86d67
--- /dev/null
+++ b/zarb-ml/mageia-sysadm/attachments/20110207/6feaa886/attachment-0001.html
@@ -0,0 +1,166819 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>[451] Import stage1</title>
+</head>
+<body>
+
+<style type="text/css"><!--
+#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
+#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
+#msg dt:after { content:':';}
+#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
+#msg dl a { font-weight: bold}
+#msg dl a:link { color:#fc3; }
+#msg dl a:active { color:#ff0; }
+#msg dl a:visited { color:#cc6; }
+h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
+#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
+#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
+#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
+#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
+#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
+#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
+#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
+#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
+#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
+#logmsg pre { background: #eee; padding: 1em; }
+#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
+#logmsg dl { margin: 0; }
+#logmsg dt { font-weight: bold; }
+#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
+#logmsg dd:before { content:'\00bb';}
+#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
+#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
+#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
+#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
+#logmsg table th.Corner { text-align: left; }
+#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
+#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
+#patch { width: 100%; }
+--></style>
+<div id="msg">
+<dl class="meta">
+<dt>Revision</dt> <dd>451</dd>
+<dt>Author</dt> <dd>dmorgan</dd>
+<dt>Date</dt> <dd>2011-02-07 01:01:56 +0100 (Mon, 07 Feb 2011)</dd>
+</dl>
+
+<h3>Log Message</h3>
+<pre>Import stage1</pre>
+
+<h3>Added Paths</h3>
+<ul>
+<li>drakx/trunk/mdk-stage1/</li>
+<li><a href="#drakxtrunkmdkstage1Makefile">drakx/trunk/mdk-stage1/Makefile</a></li>
+<li><a href="#drakxtrunkmdkstage1Makefilecommon">drakx/trunk/mdk-stage1/Makefile.common</a></li>
+<li><a href="#drakxtrunkmdkstage1NEWS">drakx/trunk/mdk-stage1/NEWS</a></li>
+<li><a href="#drakxtrunkmdkstage1adslc">drakx/trunk/mdk-stage1/adsl.c</a></li>
+<li><a href="#drakxtrunkmdkstage1adslh">drakx/trunk/mdk-stage1/adsl.h</a></li>
+<li><a href="#drakxtrunkmdkstage1automaticc">drakx/trunk/mdk-stage1/automatic.c</a></li>
+<li><a href="#drakxtrunkmdkstage1automatich">drakx/trunk/mdk-stage1/automatic.h</a></li>
+<li><a href="#drakxtrunkmdkstage1bootsplashc">drakx/trunk/mdk-stage1/bootsplash.c</a></li>
+<li><a href="#drakxtrunkmdkstage1bootsplashh">drakx/trunk/mdk-stage1/bootsplash.h</a></li>
+<li><a href="#drakxtrunkmdkstage1cdromc">drakx/trunk/mdk-stage1/cdrom.c</a></li>
+<li><a href="#drakxtrunkmdkstage1cdromh">drakx/trunk/mdk-stage1/cdrom.h</a></li>
+<li><a href="#drakxtrunkmdkstage1configstage1h">drakx/trunk/mdk-stage1/config-stage1.h</a></li>
+<li><a href="#drakxtrunkmdkstage1dhcpc">drakx/trunk/mdk-stage1/dhcp.c</a></li>
+<li><a href="#drakxtrunkmdkstage1dhcph">drakx/trunk/mdk-stage1/dhcp.h</a></li>
+<li><a href="#drakxtrunkmdkstage1directoryc">drakx/trunk/mdk-stage1/directory.c</a></li>
+<li><a href="#drakxtrunkmdkstage1directoryh">drakx/trunk/mdk-stage1/directory.h</a></li>
+<li><a href="#drakxtrunkmdkstage1diskc">drakx/trunk/mdk-stage1/disk.c</a></li>
+<li><a href="#drakxtrunkmdkstage1diskh">drakx/trunk/mdk-stage1/disk.h</a></li>
+<li><a href="#drakxtrunkmdkstage1dnsc">drakx/trunk/mdk-stage1/dns.c</a></li>
+<li><a href="#drakxtrunkmdkstage1dnsh">drakx/trunk/mdk-stage1/dns.h</a></li>
+<li>drakx/trunk/mdk-stage1/doc/</li>
+<li><a href="#drakxtrunkmdkstage1docHACKING">drakx/trunk/mdk-stage1/doc/HACKING</a></li>
+<li><a href="#drakxtrunkmdkstage1docREADME">drakx/trunk/mdk-stage1/doc/README</a></li>
+<li><a href="#drakxtrunkmdkstage1docTECHINFOS">drakx/trunk/mdk-stage1/doc/TECH-INFOS</a></li>
+<li><a href="#drakxtrunkmdkstage1docUPDATEMODULES">drakx/trunk/mdk-stage1/doc/UPDATEMODULES</a></li>
+<li><a href="#drakxtrunkmdkstage1docWHYDIETLIBC">drakx/trunk/mdk-stage1/doc/WHY-DIETLIBC</a></li>
+<li><a href="#drakxtrunkmdkstage1docdocumentedfrontendh">drakx/trunk/mdk-stage1/doc/documented..frontend.h</a></li>
+<li><a href="#drakxtrunkmdkstage1frontendcommonc">drakx/trunk/mdk-stage1/frontend-common.c</a></li>
+<li><a href="#drakxtrunkmdkstage1frontendh">drakx/trunk/mdk-stage1/frontend.h</a></li>
+<li><a href="#drakxtrunkmdkstage1initc">drakx/trunk/mdk-stage1/init.c</a></li>
+<li><a href="#drakxtrunkmdkstage1kac">drakx/trunk/mdk-stage1/ka.c</a></li>
+<li><a href="#drakxtrunkmdkstage1kah">drakx/trunk/mdk-stage1/ka.h</a></li>
+<li><a href="#drakxtrunkmdkstage1logc">drakx/trunk/mdk-stage1/log.c</a></li>
+<li><a href="#drakxtrunkmdkstage1logh">drakx/trunk/mdk-stage1/log.h</a></li>
+<li><a href="#drakxtrunkmdkstage1lomountc">drakx/trunk/mdk-stage1/lomount.c</a></li>
+<li><a href="#drakxtrunkmdkstage1lomounth">drakx/trunk/mdk-stage1/lomount.h</a></li>
+<li><a href="#drakxtrunkmdkstage1modulesc">drakx/trunk/mdk-stage1/modules.c</a></li>
+<li><a href="#drakxtrunkmdkstage1modulesh">drakx/trunk/mdk-stage1/modules.h</a></li>
+<li><a href="#drakxtrunkmdkstage1mountc">drakx/trunk/mdk-stage1/mount.c</a></li>
+<li><a href="#drakxtrunkmdkstage1mounth">drakx/trunk/mdk-stage1/mount.h</a></li>
+<li><a href="#drakxtrunkmdkstage1mount_rpcgenh">drakx/trunk/mdk-stage1/mount_rpcgen.h</a></li>
+<li><a href="#drakxtrunkmdkstage1networkc">drakx/trunk/mdk-stage1/network.c</a></li>
+<li><a href="#drakxtrunkmdkstage1networkh">drakx/trunk/mdk-stage1/network.h</a></li>
+<li>drakx/trunk/mdk-stage1/newt/</li>
+<li><a href="#drakxtrunkmdkstage1newtMakefile">drakx/trunk/mdk-stage1/newt/Makefile</a></li>
+<li><a href="#drakxtrunkmdkstage1newtbuttonc">drakx/trunk/mdk-stage1/newt/button.c</a></li>
+<li><a href="#drakxtrunkmdkstage1newtbuttonbarc">drakx/trunk/mdk-stage1/newt/buttonbar.c</a></li>
+<li><a href="#drakxtrunkmdkstage1newtcheckboxc">drakx/trunk/mdk-stage1/newt/checkbox.c</a></li>
+<li><a href="#drakxtrunkmdkstage1newtcheckboxtreec">drakx/trunk/mdk-stage1/newt/checkboxtree.c</a></li>
+<li><a href="#drakxtrunkmdkstage1newtentryc">drakx/trunk/mdk-stage1/newt/entry.c</a></li>
+<li><a href="#drakxtrunkmdkstage1newtformc">drakx/trunk/mdk-stage1/newt/form.c</a></li>
+<li><a href="#drakxtrunkmdkstage1newtgridc">drakx/trunk/mdk-stage1/newt/grid.c</a></li>
+<li><a href="#drakxtrunkmdkstage1newtlabelc">drakx/trunk/mdk-stage1/newt/label.c</a></li>
+<li><a href="#drakxtrunkmdkstage1newtlistboxc">drakx/trunk/mdk-stage1/newt/listbox.c</a></li>
+<li><a href="#drakxtrunkmdkstage1newtnewtc">drakx/trunk/mdk-stage1/newt/newt.c</a></li>
+<li><a href="#drakxtrunkmdkstage1newtnewth">drakx/trunk/mdk-stage1/newt/newt.h</a></li>
+<li><a href="#drakxtrunkmdkstage1newtnewt_prh">drakx/trunk/mdk-stage1/newt/newt_pr.h</a></li>
+<li><a href="#drakxtrunkmdkstage1newtscalec">drakx/trunk/mdk-stage1/newt/scale.c</a></li>
+<li><a href="#drakxtrunkmdkstage1newtscrollbarc">drakx/trunk/mdk-stage1/newt/scrollbar.c</a></li>
+<li><a href="#drakxtrunkmdkstage1newttextboxc">drakx/trunk/mdk-stage1/newt/textbox.c</a></li>
+<li><a href="#drakxtrunkmdkstage1newtwindowsc">drakx/trunk/mdk-stage1/newt/windows.c</a></li>
+<li><a href="#drakxtrunkmdkstage1newtfrontendc">drakx/trunk/mdk-stage1/newt-frontend.c</a></li>
+<li><a href="#drakxtrunkmdkstage1nfs_mount4h">drakx/trunk/mdk-stage1/nfs_mount4.h</a></li>
+<li><a href="#drakxtrunkmdkstage1nfsmountc">drakx/trunk/mdk-stage1/nfsmount.c</a></li>
+<li><a href="#drakxtrunkmdkstage1nfsmounth">drakx/trunk/mdk-stage1/nfsmount.h</a></li>
+<li><a href="#drakxtrunkmdkstage1paramsc">drakx/trunk/mdk-stage1/params.c</a></li>
+<li><a href="#drakxtrunkmdkstage1paramsh">drakx/trunk/mdk-stage1/params.h</a></li>
+<li><a href="#drakxtrunkmdkstage1partitionc">drakx/trunk/mdk-stage1/partition.c</a></li>
+<li><a href="#drakxtrunkmdkstage1partitionh">drakx/trunk/mdk-stage1/partition.h</a></li>
+<li>drakx/trunk/mdk-stage1/pci-resource/</li>
+<li><a href="#drakxtrunkmdkstage1pciresourceMakefile">drakx/trunk/mdk-stage1/pci-resource/Makefile</a></li>
+<li><a href="#drakxtrunkmdkstage1pciresourceupdatepciidspl">drakx/trunk/mdk-stage1/pci-resource/update-pci-ids.pl</a></li>
+<li>drakx/trunk/mdk-stage1/pcmcia/</li>
+<li><a href="#drakxtrunkmdkstage1pcmciaMakefile">drakx/trunk/mdk-stage1/pcmcia/Makefile</a></li>
+<li><a href="#drakxtrunkmdkstage1pcmciabulkmemh">drakx/trunk/mdk-stage1/pcmcia/bulkmem.h</a></li>
+<li><a href="#drakxtrunkmdkstage1pcmciacirrush">drakx/trunk/mdk-stage1/pcmcia/cirrus.h</a></li>
+<li><a href="#drakxtrunkmdkstage1pcmciacistplh">drakx/trunk/mdk-stage1/pcmcia/cistpl.h</a></li>
+<li><a href="#drakxtrunkmdkstage1pcmciacsh">drakx/trunk/mdk-stage1/pcmcia/cs.h</a></li>
+<li><a href="#drakxtrunkmdkstage1pcmciacs_typesh">drakx/trunk/mdk-stage1/pcmcia/cs_types.h</a></li>
+<li><a href="#drakxtrunkmdkstage1pcmciadriver_opsh">drakx/trunk/mdk-stage1/pcmcia/driver_ops.h</a></li>
+<li><a href="#drakxtrunkmdkstage1pcmciadsh">drakx/trunk/mdk-stage1/pcmcia/ds.h</a></li>
+<li><a href="#drakxtrunkmdkstage1pcmciai82365h">drakx/trunk/mdk-stage1/pcmcia/i82365.h</a></li>
+<li><a href="#drakxtrunkmdkstage1pcmcialex_configl">drakx/trunk/mdk-stage1/pcmcia/lex_config.l</a></li>
+<li><a href="#drakxtrunkmdkstage1pcmciamerge_from_pcitable">drakx/trunk/mdk-stage1/pcmcia/merge_from_pcitable</a></li>
+<li><a href="#drakxtrunkmdkstage1pcmciapcmciah">drakx/trunk/mdk-stage1/pcmcia/pcmcia.h</a></li>
+<li><a href="#drakxtrunkmdkstage1pcmciaprobec">drakx/trunk/mdk-stage1/pcmcia/probe.c</a></li>
+<li><a href="#drakxtrunkmdkstage1pcmciastartupc">drakx/trunk/mdk-stage1/pcmcia/startup.c</a></li>
+<li><a href="#drakxtrunkmdkstage1pcmciastartuph">drakx/trunk/mdk-stage1/pcmcia/startup.h</a></li>
+<li><a href="#drakxtrunkmdkstage1pcmciatcich">drakx/trunk/mdk-stage1/pcmcia/tcic.h</a></li>
+<li><a href="#drakxtrunkmdkstage1pcmciaversionh">drakx/trunk/mdk-stage1/pcmcia/version.h</a></li>
+<li><a href="#drakxtrunkmdkstage1pcmciavg468h">drakx/trunk/mdk-stage1/pcmcia/vg468.h</a></li>
+<li><a href="#drakxtrunkmdkstage1pcmciayacc_configy">drakx/trunk/mdk-stage1/pcmcia/yacc_config.y</a></li>
+<li>drakx/trunk/mdk-stage1/pcmcia-resource/</li>
+<li><a href="#drakxtrunkmdkstage1pcmciaresourceMakefile">drakx/trunk/mdk-stage1/pcmcia-resource/Makefile</a></li>
+<li><a href="#drakxtrunkmdkstage1pcmciaresourceupdatepcmciaidspl">drakx/trunk/mdk-stage1/pcmcia-resource/update-pcmcia-ids.pl</a></li>
+<li>drakx/trunk/mdk-stage1/ppp/</li>
+<li><a href="#drakxtrunkmdkstage1pppChanges23">drakx/trunk/mdk-stage1/ppp/Changes-2.3</a></li>
+<li><a href="#drakxtrunkmdkstage1pppFAQ">drakx/trunk/mdk-stage1/ppp/FAQ</a></li>
+<li><a href="#drakxtrunkmdkstage1pppPLUGINS">drakx/trunk/mdk-stage1/ppp/PLUGINS</a></li>
+<li><a href="#drakxtrunkmdkstage1pppREADME">drakx/trunk/mdk-stage1/ppp/README</a></li>
+<li><a href="#drakxtrunkmdkstage1pppREADMEMSCHAP80">drakx/trunk/mdk-stage1/ppp/README.MSCHAP80</a></li>
+<li><a href="#drakxtrunkmdkstage1pppREADMEcbcp">drakx/trunk/mdk-stage1/ppp/README.cbcp</a></li>
+<li><a href="#drakxtrunkmdkstage1pppREADMElinux">drakx/trunk/mdk-stage1/ppp/README.linux</a></li>
+<li><a href="#drakxtrunkmdkstage1pppREADMEsol2">drakx/trunk/mdk-stage1/ppp/README.sol2</a></li>
+<li><a href="#drakxtrunkmdkstage1pppREADMEsunos4">drakx/trunk/mdk-stage1/ppp/README.sunos4</a></li>
+<li><a href="#drakxtrunkmdkstage1pppSETUP">drakx/trunk/mdk-stage1/ppp/SETUP</a></li>
+<li>drakx/trunk/mdk-stage1/ppp/chat/</li>
+<li><a href="#drakxtrunkmdkstage1pppchatMakefilelinux">drakx/trunk/mdk-stage1/ppp/chat/Makefile.linux</a></li>
+<li><a href="#drakxtrunkmdkstage1pppchatMakefilelinuxmakeopt">drakx/trunk/mdk-stage1/ppp/chat/Makefile.linux.makeopt</a></li>
+<li><a href="#drakxtrunkmdkstage1pppchatMakefilesol2">drakx/trunk/mdk-stage1/ppp/chat/Makefile.sol2</a></li>
+<li><a href="#drakxtrunkmdkstage1pppchatMakefilesunos4">drakx/trunk/mdk-stage1/ppp/chat/Makefile.sunos4</a></li>
+<li><a href="#drakxtrunkmdkstage1pppchatchat8">drakx/trunk/mdk-stage1/ppp/chat/chat.8</a></li>
+<li><a href="#drakxtrunkmdkstage1pppchatchatc">drakx/trunk/mdk-stage1/ppp/chat/chat.c</a></li>
+<li>drakx/trunk/mdk-stage1/ppp/common/</li>
+<li><a href="#drakxtrunkmdkstage1pppcommonzlibc">drakx/trunk/mdk-stage1/ppp/common/zlib.c</a></li>
+<li><a href="#drakxtrunkmdkstage1pppcommonzlibh">drakx/trunk/mdk-stage1/ppp/common/zlib.h</a></li>
+<li><a href="#drakxtrunkmdkstage1pppconfigure">drakx/trunk/mdk-stage1/ppp/configure</a></li>
+<li>drakx/trunk/mdk-stage1/ppp/contrib/</li>
+<li>drakx/trunk/mdk-stage1/ppp/contrib/pppgetpass/</li>
+<li><a href="#drakxtrunkmdkstage1pppcontribpppgetpassMakefilelinux">drakx/trunk/mdk-stage1/ppp/contrib/pppgetpass/Makefile.linux</a></li>
+<li><a href="#drakxtrunkmdkstage1pppcontribpppgetpasspppgetpass8">drakx/trunk/mdk-stage1/ppp/contrib/pppgetpass/pppgetpass.8</a></li>
+<li><a href="#drakxtrunkmdkstage1pppcontribpppgetpasspppgetpassgtkc">drakx/trunk/mdk-stage1/ppp/contrib/pppgetpass/pppgetpass.gtk.c</a></li>
+<li><a href="#drakxtrunkmdkstage1pppcontribpppgetpasspppgetpasssh">drakx/trunk/mdk-stage1/ppp/contrib/pppgetpass/pppgetpass.sh</a></li>
+<li><a href="#drakxtrunkmdkstage1pppcontribpppgetpasspppgetpassvtc">drakx/trunk/mdk-stage1/ppp/contrib/pppgetpass/pppgetpass.vt.c</a></li>
+<li>drakx/trunk/mdk-stage1/ppp/etc.ppp/</li>
+<li><a href="#drakxtrunkmdkstage1pppetcpppchapsecrets">drakx/trunk/mdk-stage1/ppp/etc.ppp/chap-secrets</a></li>
+<li><a href="#drakxtrunkmdkstage1pppetcpppoptions">drakx/trunk/mdk-stage1/ppp/etc.ppp/options</a></li>
+<li><a href="#drakxtrunkmdkstage1pppetcpppoptionsoptions">drakx/trunk/mdk-stage1/ppp/etc.ppp/options.options</a></li>
+<li><a href="#drakxtrunkmdkstage1pppetcppppapsecrets">drakx/trunk/mdk-stage1/ppp/etc.ppp/pap-secrets</a></li>
+<li>drakx/trunk/mdk-stage1/ppp/include/</li>
+<li>drakx/trunk/mdk-stage1/ppp/include/linux/</li>
+<li><a href="#drakxtrunkmdkstage1pppincludelinuxif_ppph">drakx/trunk/mdk-stage1/ppp/include/linux/if_ppp.h</a></li>
+<li><a href="#drakxtrunkmdkstage1pppincludelinuxif_pppvarh">drakx/trunk/mdk-stage1/ppp/include/linux/if_pppvar.h</a></li>
+<li><a href="#drakxtrunkmdkstage1pppincludelinuxpppcomph">drakx/trunk/mdk-stage1/ppp/include/linux/ppp-comp.h</a></li>
+<li><a href="#drakxtrunkmdkstage1pppincludelinuxppp_defsh">drakx/trunk/mdk-stage1/ppp/include/linux/ppp_defs.h</a></li>
+<li>drakx/trunk/mdk-stage1/ppp/include/net/</li>
+<li><a href="#drakxtrunkmdkstage1pppincludenetif_ppph">drakx/trunk/mdk-stage1/ppp/include/net/if_ppp.h</a></li>
+<li><a href="#drakxtrunkmdkstage1pppincludenetpppcomph">drakx/trunk/mdk-stage1/ppp/include/net/ppp-comp.h</a></li>
+<li><a href="#drakxtrunkmdkstage1pppincludenetppp_defsh">drakx/trunk/mdk-stage1/ppp/include/net/ppp_defs.h</a></li>
+<li><a href="#drakxtrunkmdkstage1pppincludenetpppioh">drakx/trunk/mdk-stage1/ppp/include/net/pppio.h</a></li>
+<li><a href="#drakxtrunkmdkstage1pppincludenetslcompressh">drakx/trunk/mdk-stage1/ppp/include/net/slcompress.h</a></li>
+<li><a href="#drakxtrunkmdkstage1pppincludenetvjcompressh">drakx/trunk/mdk-stage1/ppp/include/net/vjcompress.h</a></li>
+<li><a href="#drakxtrunkmdkstage1pppincludepcapinth">drakx/trunk/mdk-stage1/ppp/include/pcap-int.h</a></li>
+<li>drakx/trunk/mdk-stage1/ppp/linux/</li>
+<li><a href="#drakxtrunkmdkstage1ppplinuxMakefiletop">drakx/trunk/mdk-stage1/ppp/linux/Makefile.top</a></li>
+<li>drakx/trunk/mdk-stage1/ppp/modules/</li>
+<li><a href="#drakxtrunkmdkstage1pppmodulesbsdcompc">drakx/trunk/mdk-stage1/ppp/modules/bsd-comp.c</a></li>
+<li><a href="#drakxtrunkmdkstage1pppmodulesdeflatec">drakx/trunk/mdk-stage1/ppp/modules/deflate.c</a></li>
+<li><a href="#drakxtrunkmdkstage1pppmodulesif_pppc">drakx/trunk/mdk-stage1/ppp/modules/if_ppp.c</a></li>
+<li><a href="#drakxtrunkmdkstage1pppmodulespppc">drakx/trunk/mdk-stage1/ppp/modules/ppp.c</a></li>
+<li><a href="#drakxtrunkmdkstage1pppmodulesppp_ahdlcc">drakx/trunk/mdk-stage1/ppp/modules/ppp_ahdlc.c</a></li>
+<li><a href="#drakxtrunkmdkstage1pppmodulesppp_compc">drakx/trunk/mdk-stage1/ppp/modules/ppp_comp.c</a></li>
+<li><a href="#drakxtrunkmdkstage1pppmodulesppp_modh">drakx/trunk/mdk-stage1/ppp/modules/ppp_mod.h</a></li>
+<li><a href="#drakxtrunkmdkstage1pppmodulesvjcompressc">drakx/trunk/mdk-stage1/ppp/modules/vjcompress.c</a></li>
+<li>drakx/trunk/mdk-stage1/ppp/pppd/</li>
+<li><a href="#drakxtrunkmdkstage1ppppppdMakefile">drakx/trunk/mdk-stage1/ppp/pppd/Makefile</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdMakefilelinux">drakx/trunk/mdk-stage1/ppp/pppd/Makefile.linux</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdMakefilelinuxmake">drakx/trunk/mdk-stage1/ppp/pppd/Makefile.linux.make</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdMakefilelinuxmakeopt">drakx/trunk/mdk-stage1/ppp/pppd/Makefile.linux.makeopt</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdMakefilesol2">drakx/trunk/mdk-stage1/ppp/pppd/Makefile.sol2</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdMakefilesunos4">drakx/trunk/mdk-stage1/ppp/pppd/Makefile.sunos4</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdauthc">drakx/trunk/mdk-stage1/ppp/pppd/auth.c</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdcbcpc">drakx/trunk/mdk-stage1/ppp/pppd/cbcp.c</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdcbcph">drakx/trunk/mdk-stage1/ppp/pppd/cbcp.h</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdccpc">drakx/trunk/mdk-stage1/ppp/pppd/ccp.c</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdccph">drakx/trunk/mdk-stage1/ppp/pppd/ccp.h</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdchapc">drakx/trunk/mdk-stage1/ppp/pppd/chap.c</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdchaph">drakx/trunk/mdk-stage1/ppp/pppd/chap.h</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdchap_msc">drakx/trunk/mdk-stage1/ppp/pppd/chap_ms.c</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdchap_msh">drakx/trunk/mdk-stage1/ppp/pppd/chap_ms.h</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppddemandc">drakx/trunk/mdk-stage1/ppp/pppd/demand.c</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdeui64c">drakx/trunk/mdk-stage1/ppp/pppd/eui64.c</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdeui64h">drakx/trunk/mdk-stage1/ppp/pppd/eui64.h</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdfsmc">drakx/trunk/mdk-stage1/ppp/pppd/fsm.c</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdfsmh">drakx/trunk/mdk-stage1/ppp/pppd/fsm.h</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdipcpc">drakx/trunk/mdk-stage1/ppp/pppd/ipcp.c</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdipcph">drakx/trunk/mdk-stage1/ppp/pppd/ipcp.h</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdipv6cpc">drakx/trunk/mdk-stage1/ppp/pppd/ipv6cp.c</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdipv6cph">drakx/trunk/mdk-stage1/ppp/pppd/ipv6cp.h</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdipxcpc">drakx/trunk/mdk-stage1/ppp/pppd/ipxcp.c</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdipxcph">drakx/trunk/mdk-stage1/ppp/pppd/ipxcp.h</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdlcpc">drakx/trunk/mdk-stage1/ppp/pppd/lcp.c</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdlcph">drakx/trunk/mdk-stage1/ppp/pppd/lcp.h</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdmagicc">drakx/trunk/mdk-stage1/ppp/pppd/magic.c</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdmagich">drakx/trunk/mdk-stage1/ppp/pppd/magic.h</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdmainc">drakx/trunk/mdk-stage1/ppp/pppd/main.c</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdmd4c">drakx/trunk/mdk-stage1/ppp/pppd/md4.c</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdmd4h">drakx/trunk/mdk-stage1/ppp/pppd/md4.h</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdmd5c">drakx/trunk/mdk-stage1/ppp/pppd/md5.c</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdmd5h">drakx/trunk/mdk-stage1/ppp/pppd/md5.h</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdmultilinkc">drakx/trunk/mdk-stage1/ppp/pppd/multilink.c</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdoptionsc">drakx/trunk/mdk-stage1/ppp/pppd/options.c</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdpatchlevelh">drakx/trunk/mdk-stage1/ppp/pppd/patchlevel.h</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdpathnamesh">drakx/trunk/mdk-stage1/ppp/pppd/pathnames.h</a></li>
+<li>drakx/trunk/mdk-stage1/ppp/pppd/plugins/</li>
+<li><a href="#drakxtrunkmdkstage1ppppppdpluginsMakefilelinux">drakx/trunk/mdk-stage1/ppp/pppd/plugins/Makefile.linux</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdpluginsMakefilesol2">drakx/trunk/mdk-stage1/ppp/pppd/plugins/Makefile.sol2</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdpluginsminconnc">drakx/trunk/mdk-stage1/ppp/pppd/plugins/minconn.c</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdpluginspasspromptc">drakx/trunk/mdk-stage1/ppp/pppd/plugins/passprompt.c</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdppppam">drakx/trunk/mdk-stage1/ppp/pppd/ppp.pam</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdpppd8">drakx/trunk/mdk-stage1/ppp/pppd/pppd.8</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdpppdh">drakx/trunk/mdk-stage1/ppp/pppd/pppd.h</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdpppdhwtmp">drakx/trunk/mdk-stage1/ppp/pppd/pppd.h.wtmp</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdsyslinuxc">drakx/trunk/mdk-stage1/ppp/pppd/sys-linux.c</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdsyslinuxcwtmp">drakx/trunk/mdk-stage1/ppp/pppd/sys-linux.c.wtmp</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdsyssolarisc">drakx/trunk/mdk-stage1/ppp/pppd/sys-solaris.c</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdsyssunos4c">drakx/trunk/mdk-stage1/ppp/pppd/sys-sunos4.c</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdtdbc">drakx/trunk/mdk-stage1/ppp/pppd/tdb.c</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdtdbh">drakx/trunk/mdk-stage1/ppp/pppd/tdb.h</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdttyc">drakx/trunk/mdk-stage1/ppp/pppd/tty.c</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdupapc">drakx/trunk/mdk-stage1/ppp/pppd/upap.c</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdupaph">drakx/trunk/mdk-stage1/ppp/pppd/upap.h</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdutilsc">drakx/trunk/mdk-stage1/ppp/pppd/utils.c</a></li>
+<li>drakx/trunk/mdk-stage1/ppp/pppdump/</li>
+<li><a href="#drakxtrunkmdkstage1ppppppdumpMakefilelinux">drakx/trunk/mdk-stage1/ppp/pppdump/Makefile.linux</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdumpMakefilelinuxmakeopt">drakx/trunk/mdk-stage1/ppp/pppdump/Makefile.linux.makeopt</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdumpMakefilelinuxpppdumpMakefile">drakx/trunk/mdk-stage1/ppp/pppdump/Makefile.linux.pppdump-Makefile</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdumpMakefilesol2">drakx/trunk/mdk-stage1/ppp/pppdump/Makefile.sol2</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdumpMakefilesunos4">drakx/trunk/mdk-stage1/ppp/pppdump/Makefile.sunos4</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdumpbsdcompc">drakx/trunk/mdk-stage1/ppp/pppdump/bsd-comp.c</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdumpdeflatec">drakx/trunk/mdk-stage1/ppp/pppdump/deflate.c</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdumppppcomph">drakx/trunk/mdk-stage1/ppp/pppdump/ppp-comp.h</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdumppppdump8">drakx/trunk/mdk-stage1/ppp/pppdump/pppdump.8</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdumppppdumpc">drakx/trunk/mdk-stage1/ppp/pppdump/pppdump.c</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdumpzlibc">drakx/trunk/mdk-stage1/ppp/pppdump/zlib.c</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppdumpzlibh">drakx/trunk/mdk-stage1/ppp/pppdump/zlib.h</a></li>
+<li>drakx/trunk/mdk-stage1/ppp/pppstats/</li>
+<li><a href="#drakxtrunkmdkstage1ppppppstatsMakefilelinux">drakx/trunk/mdk-stage1/ppp/pppstats/Makefile.linux</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppstatsMakefilesol2">drakx/trunk/mdk-stage1/ppp/pppstats/Makefile.sol2</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppstatsMakefilesunos4">drakx/trunk/mdk-stage1/ppp/pppstats/Makefile.sunos4</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppstatspppstats8">drakx/trunk/mdk-stage1/ppp/pppstats/pppstats.8</a></li>
+<li><a href="#drakxtrunkmdkstage1ppppppstatspppstatsc">drakx/trunk/mdk-stage1/ppp/pppstats/pppstats.c</a></li>
+<li>drakx/trunk/mdk-stage1/ppp/sample/</li>
+<li><a href="#drakxtrunkmdkstage1pppsampleauthdown">drakx/trunk/mdk-stage1/ppp/sample/auth-down</a></li>
+<li><a href="#drakxtrunkmdkstage1pppsampleauthup">drakx/trunk/mdk-stage1/ppp/sample/auth-up</a></li>
+<li><a href="#drakxtrunkmdkstage1pppsampleipdown">drakx/trunk/mdk-stage1/ppp/sample/ip-down</a></li>
+<li><a href="#drakxtrunkmdkstage1pppsampleipup">drakx/trunk/mdk-stage1/ppp/sample/ip-up</a></li>
+<li><a href="#drakxtrunkmdkstage1pppsampleoptions">drakx/trunk/mdk-stage1/ppp/sample/options</a></li>
+<li><a href="#drakxtrunkmdkstage1pppsampleoptionsttyXX">drakx/trunk/mdk-stage1/ppp/sample/options.ttyXX</a></li>
+<li><a href="#drakxtrunkmdkstage1pppsamplepapsecrets">drakx/trunk/mdk-stage1/ppp/sample/pap-secrets</a></li>
+<li>drakx/trunk/mdk-stage1/ppp/scripts/</li>
+<li><a href="#drakxtrunkmdkstage1pppscriptsREADME">drakx/trunk/mdk-stage1/ppp/scripts/README</a></li>
+<li><a href="#drakxtrunkmdkstage1pppscriptscallback">drakx/trunk/mdk-stage1/ppp/scripts/callback</a></li>
+<li><a href="#drakxtrunkmdkstage1pppscriptschatcallback">drakx/trunk/mdk-stage1/ppp/scripts/chat-callback</a></li>
+<li>drakx/trunk/mdk-stage1/ppp/scripts/chatchat/</li>
+<li><a href="#drakxtrunkmdkstage1pppscriptschatchatREADME">drakx/trunk/mdk-stage1/ppp/scripts/chatchat/README</a></li>
+<li><a href="#drakxtrunkmdkstage1pppscriptschatchatchatchatc">drakx/trunk/mdk-stage1/ppp/scripts/chatchat/chatchat.c</a></li>
+<li><a href="#drakxtrunkmdkstage1pppscriptsipdownlocaladd">drakx/trunk/mdk-stage1/ppp/scripts/ip-down.local.add</a></li>
+<li><a href="#drakxtrunkmdkstage1pppscriptsipuplocaladd">drakx/trunk/mdk-stage1/ppp/scripts/ip-up.local.add</a></li>
+<li><a href="#drakxtrunkmdkstage1pppscriptsoptionsrshloc">drakx/trunk/mdk-stage1/ppp/scripts/options-rsh-loc</a></li>
+<li><a href="#drakxtrunkmdkstage1pppscriptsoptionsrshrem">drakx/trunk/mdk-stage1/ppp/scripts/options-rsh-rem</a></li>
+<li><a href="#drakxtrunkmdkstage1pppscriptsoptionssshloc">drakx/trunk/mdk-stage1/ppp/scripts/options-ssh-loc</a></li>
+<li><a href="#drakxtrunkmdkstage1pppscriptsoptionssshrem">drakx/trunk/mdk-stage1/ppp/scripts/options-ssh-rem</a></li>
+<li><a href="#drakxtrunkmdkstage1pppscriptspppoff">drakx/trunk/mdk-stage1/ppp/scripts/ppp-off</a></li>
+<li><a href="#drakxtrunkmdkstage1pppscriptspppon">drakx/trunk/mdk-stage1/ppp/scripts/ppp-on</a></li>
+<li><a href="#drakxtrunkmdkstage1pppscriptspppondialer">drakx/trunk/mdk-stage1/ppp/scripts/ppp-on-dialer</a></li>
+<li><a href="#drakxtrunkmdkstage1pppscriptsppponrsh">drakx/trunk/mdk-stage1/ppp/scripts/ppp-on-rsh</a></li>
+<li><a href="#drakxtrunkmdkstage1pppscriptsppponssh">drakx/trunk/mdk-stage1/ppp/scripts/ppp-on-ssh</a></li>
+<li><a href="#drakxtrunkmdkstage1pppscriptsredialer">drakx/trunk/mdk-stage1/ppp/scripts/redialer</a></li>
+<li><a href="#drakxtrunkmdkstage1pppscriptssecurecard">drakx/trunk/mdk-stage1/ppp/scripts/secure-card</a></li>
+<li>drakx/trunk/mdk-stage1/ppp/solaris/</li>
+<li><a href="#drakxtrunkmdkstage1pppsolarisMakedefs">drakx/trunk/mdk-stage1/ppp/solaris/Makedefs</a></li>
+<li><a href="#drakxtrunkmdkstage1pppsolarisMakedefssol2">drakx/trunk/mdk-stage1/ppp/solaris/Makedefs.sol2</a></li>
+<li><a href="#drakxtrunkmdkstage1pppsolarisMakefilesol2">drakx/trunk/mdk-stage1/ppp/solaris/Makefile.sol2</a></li>
+<li><a href="#drakxtrunkmdkstage1pppsolarisMakefilesol264">drakx/trunk/mdk-stage1/ppp/solaris/Makefile.sol2-64</a></li>
+<li><a href="#drakxtrunkmdkstage1pppsolarisMakefiletop">drakx/trunk/mdk-stage1/ppp/solaris/Makefile.top</a></li>
+<li><a href="#drakxtrunkmdkstage1pppsolarispppc">drakx/trunk/mdk-stage1/ppp/solaris/ppp.c</a></li>
+<li><a href="#drakxtrunkmdkstage1pppsolarispppconf">drakx/trunk/mdk-stage1/ppp/solaris/ppp.conf</a></li>
+<li><a href="#drakxtrunkmdkstage1pppsolarisppp_ahdlcc">drakx/trunk/mdk-stage1/ppp/solaris/ppp_ahdlc.c</a></li>
+<li><a href="#drakxtrunkmdkstage1pppsolarisppp_ahdlc_modc">drakx/trunk/mdk-stage1/ppp/solaris/ppp_ahdlc_mod.c</a></li>
+<li><a href="#drakxtrunkmdkstage1pppsolarisppp_compc">drakx/trunk/mdk-stage1/ppp/solaris/ppp_comp.c</a></li>
+<li><a href="#drakxtrunkmdkstage1pppsolarisppp_comp_modc">drakx/trunk/mdk-stage1/ppp/solaris/ppp_comp_mod.c</a></li>
+<li><a href="#drakxtrunkmdkstage1pppsolarisppp_modc">drakx/trunk/mdk-stage1/ppp/solaris/ppp_mod.c</a></li>
+<li><a href="#drakxtrunkmdkstage1pppsolarisppp_modh">drakx/trunk/mdk-stage1/ppp/solaris/ppp_mod.h</a></li>
+<li>drakx/trunk/mdk-stage1/ppp/sunos4/</li>
+<li><a href="#drakxtrunkmdkstage1pppsunos4Makedefs">drakx/trunk/mdk-stage1/ppp/sunos4/Makedefs</a></li>
+<li><a href="#drakxtrunkmdkstage1pppsunos4Makefile">drakx/trunk/mdk-stage1/ppp/sunos4/Makefile</a></li>
+<li><a href="#drakxtrunkmdkstage1pppsunos4Makefiletop">drakx/trunk/mdk-stage1/ppp/sunos4/Makefile.top</a></li>
+<li><a href="#drakxtrunkmdkstage1pppsunos4if_ppp_vdcmdc">drakx/trunk/mdk-stage1/ppp/sunos4/if_ppp_vdcmd.c</a></li>
+<li><a href="#drakxtrunkmdkstage1pppsunos4pppINSTALL">drakx/trunk/mdk-stage1/ppp/sunos4/ppp.INSTALL</a></li>
+<li><a href="#drakxtrunkmdkstage1pppsunos4ppp_ahdlc_vdcmdc">drakx/trunk/mdk-stage1/ppp/sunos4/ppp_ahdlc_vdcmd.c</a></li>
+<li><a href="#drakxtrunkmdkstage1pppsunos4ppp_comp_vdcmdc">drakx/trunk/mdk-stage1/ppp/sunos4/ppp_comp_vdcmd.c</a></li>
+<li><a href="#drakxtrunkmdkstage1pppsunos4ppp_vdcmdc">drakx/trunk/mdk-stage1/ppp/sunos4/ppp_vdcmd.c</a></li>
+<li>drakx/trunk/mdk-stage1/ppp/svr4/</li>
+<li><a href="#drakxtrunkmdkstage1pppsvr4Makedefs">drakx/trunk/mdk-stage1/ppp/svr4/Makedefs</a></li>
+<li><a href="#drakxtrunkmdkstage1pppsvr4Makedefssol2">drakx/trunk/mdk-stage1/ppp/svr4/Makedefs.sol2</a></li>
+<li><a href="#drakxtrunkmdkstage1pppsvr4Makefilesol2">drakx/trunk/mdk-stage1/ppp/svr4/Makefile.sol2</a></li>
+<li><a href="#drakxtrunkmdkstage1pppsvr4Makefilesol264">drakx/trunk/mdk-stage1/ppp/svr4/Makefile.sol2-64</a></li>
+<li><a href="#drakxtrunkmdkstage1pppsvr4Makefilesvr4">drakx/trunk/mdk-stage1/ppp/svr4/Makefile.svr4</a></li>
+<li><a href="#drakxtrunkmdkstage1pppsvr4Makefiletop">drakx/trunk/mdk-stage1/ppp/svr4/Makefile.top</a></li>
+<li><a href="#drakxtrunkmdkstage1pppsvr4pppMaster">drakx/trunk/mdk-stage1/ppp/svr4/ppp.Master</a></li>
+<li><a href="#drakxtrunkmdkstage1pppsvr4pppNode">drakx/trunk/mdk-stage1/ppp/svr4/ppp.Node</a></li>
+<li><a href="#drakxtrunkmdkstage1pppsvr4pppSystem">drakx/trunk/mdk-stage1/ppp/svr4/ppp.System</a></li>
+<li><a href="#drakxtrunkmdkstage1pppsvr4pppconf">drakx/trunk/mdk-stage1/ppp/svr4/ppp.conf</a></li>
+<li><a href="#drakxtrunkmdkstage1pppsvr4ppp_ahdlMaster">drakx/trunk/mdk-stage1/ppp/svr4/ppp_ahdl.Master</a></li>
+<li><a href="#drakxtrunkmdkstage1pppsvr4ppp_ahdlSystem">drakx/trunk/mdk-stage1/ppp/svr4/ppp_ahdl.System</a></li>
+<li><a href="#drakxtrunkmdkstage1pppsvr4ppp_ahdlc_modc">drakx/trunk/mdk-stage1/ppp/svr4/ppp_ahdlc_mod.c</a></li>
+<li><a href="#drakxtrunkmdkstage1pppsvr4ppp_compMaster">drakx/trunk/mdk-stage1/ppp/svr4/ppp_comp.Master</a></li>
+<li><a href="#drakxtrunkmdkstage1pppsvr4ppp_compSystem">drakx/trunk/mdk-stage1/ppp/svr4/ppp_comp.System</a></li>
+<li><a href="#drakxtrunkmdkstage1pppsvr4ppp_comp_modc">drakx/trunk/mdk-stage1/ppp/svr4/ppp_comp_mod.c</a></li>
+<li><a href="#drakxtrunkmdkstage1pppsvr4ppp_modc">drakx/trunk/mdk-stage1/ppp/svr4/ppp_mod.c</a></li>
+<li><a href="#drakxtrunkmdkstage1probemodulesc">drakx/trunk/mdk-stage1/probe-modules.c</a></li>
+<li><a href="#drakxtrunkmdkstage1probingc">drakx/trunk/mdk-stage1/probing.c</a></li>
+<li><a href="#drakxtrunkmdkstage1probingh">drakx/trunk/mdk-stage1/probing.h</a></li>
+<li><a href="#drakxtrunkmdkstage1rescueguic">drakx/trunk/mdk-stage1/rescue-gui.c</a></li>
+<li>drakx/trunk/mdk-stage1/rp-pppoe/</li>
+<li><a href="#drakxtrunkmdkstage1rppppoeREADME">drakx/trunk/mdk-stage1/rp-pppoe/README</a></li>
+<li>drakx/trunk/mdk-stage1/rp-pppoe/configs/</li>
+<li><a href="#drakxtrunkmdkstage1rppppoeconfigsfirewallmasq">drakx/trunk/mdk-stage1/rp-pppoe/configs/firewall-masq</a></li>
+<li><a href="#drakxtrunkmdkstage1rppppoeconfigsfirewallstandalone">drakx/trunk/mdk-stage1/rp-pppoe/configs/firewall-standalone</a></li>
+<li><a href="#drakxtrunkmdkstage1rppppoeconfigspapsecrets">drakx/trunk/mdk-stage1/rp-pppoe/configs/pap-secrets</a></li>
+<li><a href="#drakxtrunkmdkstage1rppppoeconfigspppoeserveroptions">drakx/trunk/mdk-stage1/rp-pppoe/configs/pppoe-server-options</a></li>
+<li><a href="#drakxtrunkmdkstage1rppppoeconfigspppoeconf">drakx/trunk/mdk-stage1/rp-pppoe/configs/pppoe.conf</a></li>
+<li>drakx/trunk/mdk-stage1/rp-pppoe/doc/</li>
+<li><a href="#drakxtrunkmdkstage1rppppoedocCHANGES">drakx/trunk/mdk-stage1/rp-pppoe/doc/CHANGES</a></li>
+<li><a href="#drakxtrunkmdkstage1rppppoedocHOWTOCONNECT">drakx/trunk/mdk-stage1/rp-pppoe/doc/HOW-TO-CONNECT</a></li>
+<li><a href="#drakxtrunkmdkstage1rppppoedocKERNELMODEPPPOE">drakx/trunk/mdk-stage1/rp-pppoe/doc/KERNEL-MODE-PPPOE</a></li>
+<li><a href="#drakxtrunkmdkstage1rppppoedocLICENSE">drakx/trunk/mdk-stage1/rp-pppoe/doc/LICENSE</a></li>
+<li><a href="#drakxtrunkmdkstage1rppppoedocPROBLEMS">drakx/trunk/mdk-stage1/rp-pppoe/doc/PROBLEMS</a></li>
+<li><a href="#drakxtrunkmdkstage1rppppoego">drakx/trunk/mdk-stage1/rp-pppoe/go</a></li>
+<li><a href="#drakxtrunkmdkstage1rppppoegogui">drakx/trunk/mdk-stage1/rp-pppoe/go-gui</a></li>
+<li>drakx/trunk/mdk-stage1/rp-pppoe/gui/</li>
+<li><a href="#drakxtrunkmdkstage1rppppoeguiMakefilein">drakx/trunk/mdk-stage1/rp-pppoe/gui/Makefile.in</a></li>
+<li>drakx/trunk/mdk-stage1/rp-pppoe/gui/html/</li>
+<li><a href="#drakxtrunkmdkstage1rppppoeguihtmltkpppoehtml">drakx/trunk/mdk-stage1/rp-pppoe/gui/html/tkpppoe.html</a></li>
+<li><a href="#drakxtrunkmdkstage1rppppoeguipppoewrapper1">drakx/trunk/mdk-stage1/rp-pppoe/gui/pppoe-wrapper.1</a></li>
+<li><a href="#drakxtrunkmdkstage1rppppoeguitkpppoe1">drakx/trunk/mdk-stage1/rp-pppoe/gui/tkpppoe.1</a></li>
+<li><a href="#drakxtrunkmdkstage1rppppoeguitkpppoein">drakx/trunk/mdk-stage1/rp-pppoe/gui/tkpppoe.in</a></li>
+<li><a href="#drakxtrunkmdkstage1rppppoeguiwrapperc">drakx/trunk/mdk-stage1/rp-pppoe/gui/wrapper.c</a></li>
+<li>drakx/trunk/mdk-stage1/rp-pppoe/man/</li>
+<li><a href="#drakxtrunkmdkstage1rppppoemanadslconnect8">drakx/trunk/mdk-stage1/rp-pppoe/man/adsl-connect.8</a></li>
+<li><a href="#drakxtrunkmdkstage1rppppoemanadslsetup8">drakx/trunk/mdk-stage1/rp-pppoe/man/adsl-setup.8</a></li>
+<li><a href="#drakxtrunkmdkstage1rppppoemanadslstart8">drakx/trunk/mdk-stage1/rp-pppoe/man/adsl-start.8</a></li>
+<li><a href="#drakxtrunkmdkstage1rppppoemanadslstatus8">drakx/trunk/mdk-stage1/rp-pppoe/man/adsl-status.8</a></li>
+<li><a href="#drakxtrunkmdkstage1rppppoemanadslstop8">drakx/trunk/mdk-stage1/rp-pppoe/man/adsl-stop.8</a></li>
+<li><a href="#drakxtrunkmdkstage1rppppoemanpppoerelay8">drakx/trunk/mdk-stage1/rp-pppoe/man/pppoe-relay.8</a></li>
+<li><a href="#drakxtrunkmdkstage1rppppoemanpppoeserver8">drakx/trunk/mdk-stage1/rp-pppoe/man/pppoe-server.8</a></li>
+<li><a href="#drakxtrunkmdkstage1rppppoemanpppoesniff8">drakx/trunk/mdk-stage1/rp-pppoe/man/pppoe-sniff.8</a></li>
+<li><a href="#drakxtrunkmdkstage1rppppoemanpppoe8">drakx/trunk/mdk-stage1/rp-pppoe/man/pppoe.8</a></li>
+<li><a href="#drakxtrunkmdkstage1rppppoemanpppoeconf5">drakx/trunk/mdk-stage1/rp-pppoe/man/pppoe.conf.5</a></li>
+<li><a href="#drakxtrunkmdkstage1rppppoerppppoeguispec">drakx/trunk/mdk-stage1/rp-pppoe/rp-pppoe-gui.spec</a></li>
+<li><a href="#drakxtrunkmdkstage1rppppoerppppoespec">drakx/trunk/mdk-stage1/rp-pppoe/rp-pppoe.spec</a></li>
+<li>drakx/trunk/mdk-stage1/rp-pppoe/scripts/</li>
+<li><a href="#drakxtrunkmdkstage1rppppoescriptsadslconnectin">drakx/trunk/mdk-stage1/rp-pppoe/scripts/adsl-connect.in</a></li>
+<li><a href="#drakxtrunkmdkstage1rppppoescriptsadslinitsusein">drakx/trunk/mdk-stage1/rp-pppoe/scripts/adsl-init-suse.in</a></li>
+<li><a href="#drakxtrunkmdkstage1rppppoescriptsadslinitturbolinuxin">drakx/trunk/mdk-stage1/rp-pppoe/scripts/adsl-init-turbolinux.in</a></li>
+<li><a href="#drakxtrunkmdkstage1rppppoescriptsadslinitin">drakx/trunk/mdk-stage1/rp-pppoe/scripts/adsl-init.in</a></li>
+<li><a href="#drakxtrunkmdkstage1rppppoescriptsadslsetupin">drakx/trunk/mdk-stage1/rp-pppoe/scripts/adsl-setup.in</a></li>
+<li><a href="#drakxtrunkmdkstage1rppppoescriptsadslstartin">drakx/trunk/mdk-stage1/rp-pppoe/scripts/adsl-start.in</a></li>
+<li><a href="#drakxtrunkmdkstage1rppppoescriptsadslstatus">drakx/trunk/mdk-stage1/rp-pppoe/scripts/adsl-status</a></li>
+<li><a href="#drakxtrunkmdkstage1rppppoescriptsadslstopin">drakx/trunk/mdk-stage1/rp-pppoe/scripts/adsl-stop.in</a></li>
+<li>drakx/trunk/mdk-stage1/rp-pppoe/src/</li>
+<li><a href="#drakxtrunkmdkstage1rppppoesrcMakefile">drakx/trunk/mdk-stage1/rp-pppoe/src/Makefile</a></li>
+<li><a href="#drakxtrunkmdkstage1rppppoesrcMakefilein">drakx/trunk/mdk-stage1/rp-pppoe/src/Makefile.in</a></li>
+<li><a href="#drakxtrunkmdkstage1rppppoesrccommonc">drakx/trunk/mdk-stage1/rp-pppoe/src/common.c</a></li>
+<li><a href="#drakxtrunkmdkstage1rppppoesrcconfigh">drakx/trunk/mdk-stage1/rp-pppoe/src/config.h</a></li>
+<li><a href="#drakxtrunkmdkstage1rppppoesrcconfighin">drakx/trunk/mdk-stage1/rp-pppoe/src/config.h.in</a></li>
+<li><a href="#drakxtrunkmdkstage1rppppoesrcconfigure">drakx/trunk/mdk-stage1/rp-pppoe/src/configure</a></li>
+<li><a href="#drakxtrunkmdkstage1rppppoesrcconfigurein">drakx/trunk/mdk-stage1/rp-pppoe/src/configure.in</a></li>
+<li><a href="#drakxtrunkmdkstage1rppppoesrcdebugc">drakx/trunk/mdk-stage1/rp-pppoe/src/debug.c</a></li>
+<li><a href="#drakxtrunkmdkstage1rppppoesrcdiscoveryc">drakx/trunk/mdk-stage1/rp-pppoe/src/discovery.c</a></li>
+<li><a href="#drakxtrunkmdkstage1rppppoesrcifc">drakx/trunk/mdk-stage1/rp-pppoe/src/if.c</a></li>
+<li><a href="#drakxtrunkmdkstage1rppppoesrcinstallsh">drakx/trunk/mdk-stage1/rp-pppoe/src/install-sh</a></li>
+<li><a href="#drakxtrunkmdkstage1rppppoesrcmd5c">drakx/trunk/mdk-stage1/rp-pppoe/src/md5.c</a></li>
+<li><a href="#drakxtrunkmdkstage1rppppoesrcmd5h">drakx/trunk/mdk-stage1/rp-pppoe/src/md5.h</a></li>
+<li><a href="#drakxtrunkmdkstage1rppppoesrcpluginc">drakx/trunk/mdk-stage1/rp-pppoe/src/plugin.c</a></li>
+<li><a href="#drakxtrunkmdkstage1rppppoesrcpppc">drakx/trunk/mdk-stage1/rp-pppoe/src/ppp.c</a></li>
+<li><a href="#drakxtrunkmdkstage1rppppoesrcpppoeserverc">drakx/trunk/mdk-stage1/rp-pppoe/src/pppoe-server.c</a></li>
+<li><a href="#drakxtrunkmdkstage1rppppoesrcpppoesniffc">drakx/trunk/mdk-stage1/rp-pppoe/src/pppoe-sniff.c</a></li>
+<li><a href="#drakxtrunkmdkstage1rppppoesrcpppoec">drakx/trunk/mdk-stage1/rp-pppoe/src/pppoe.c</a></li>
+<li><a href="#drakxtrunkmdkstage1rppppoesrcpppoeh">drakx/trunk/mdk-stage1/rp-pppoe/src/pppoe.h</a></li>
+<li><a href="#drakxtrunkmdkstage1rppppoesrcrelayc">drakx/trunk/mdk-stage1/rp-pppoe/src/relay.c</a></li>
+<li><a href="#drakxtrunkmdkstage1rppppoesrcrelayh">drakx/trunk/mdk-stage1/rp-pppoe/src/relay.h</a></li>
+<li>drakx/trunk/mdk-stage1/slang/</li>
+<li><a href="#drakxtrunkmdkstage1slangMakefile">drakx/trunk/mdk-stage1/slang/Makefile</a></li>
+<li><a href="#drakxtrunkmdkstage1slang_slangh">drakx/trunk/mdk-stage1/slang/_slang.h</a></li>
+<li><a href="#drakxtrunkmdkstage1slangconfigh">drakx/trunk/mdk-stage1/slang/config.h</a></li>
+<li><a href="#drakxtrunkmdkstage1slangjdmacrosh">drakx/trunk/mdk-stage1/slang/jdmacros.h</a></li>
+<li><a href="#drakxtrunkmdkstage1slangkeywhashc">drakx/trunk/mdk-stage1/slang/keywhash.c</a></li>
+<li><a href="#drakxtrunkmdkstage1slangslfeath">drakx/trunk/mdk-stage1/slang/sl-feat.h</a></li>
+<li><a href="#drakxtrunkmdkstage1slangslangc">drakx/trunk/mdk-stage1/slang/slang.c</a></li>
+<li><a href="#drakxtrunkmdkstage1slangslangh">drakx/trunk/mdk-stage1/slang/slang.h</a></li>
+<li><a href="#drakxtrunkmdkstage1slangslarithc">drakx/trunk/mdk-stage1/slang/slarith.c</a></li>
+<li><a href="#drakxtrunkmdkstage1slangslarithinc">drakx/trunk/mdk-stage1/slang/slarith.inc</a></li>
+<li><a href="#drakxtrunkmdkstage1slangslarrayc">drakx/trunk/mdk-stage1/slang/slarray.c</a></li>
+<li><a href="#drakxtrunkmdkstage1slangslarrfunc">drakx/trunk/mdk-stage1/slang/slarrfun.c</a></li>
+<li><a href="#drakxtrunkmdkstage1slangslarrfuninc">drakx/trunk/mdk-stage1/slang/slarrfun.inc</a></li>
+<li><a href="#drakxtrunkmdkstage1slangslarrmisc">drakx/trunk/mdk-stage1/slang/slarrmis.c</a></li>
+<li><a href="#drakxtrunkmdkstage1slangslassocc">drakx/trunk/mdk-stage1/slang/slassoc.c</a></li>
+<li><a href="#drakxtrunkmdkstage1slangslbstrc">drakx/trunk/mdk-stage1/slang/slbstr.c</a></li>
+<li><a href="#drakxtrunkmdkstage1slangslclassc">drakx/trunk/mdk-stage1/slang/slclass.c</a></li>
+<li><a href="#drakxtrunkmdkstage1slangslcmdc">drakx/trunk/mdk-stage1/slang/slcmd.c</a></li>
+<li><a href="#drakxtrunkmdkstage1slangslcmplexc">drakx/trunk/mdk-stage1/slang/slcmplex.c</a></li>
+<li><a href="#drakxtrunkmdkstage1slangslcompatc">drakx/trunk/mdk-stage1/slang/slcompat.c</a></li>
+<li><a href="#drakxtrunkmdkstage1slangslcursesc">drakx/trunk/mdk-stage1/slang/slcurses.c</a></li>
+<li><a href="#drakxtrunkmdkstage1slangslcursesh">drakx/trunk/mdk-stage1/slang/slcurses.h</a></li>
+<li><a href="#drakxtrunkmdkstage1slangsldisplyc">drakx/trunk/mdk-stage1/slang/sldisply.c</a></li>
+<li><a href="#drakxtrunkmdkstage1slangslerrc">drakx/trunk/mdk-stage1/slang/slerr.c</a></li>
+<li><a href="#drakxtrunkmdkstage1slangslerrnoc">drakx/trunk/mdk-stage1/slang/slerrno.c</a></li>
+<li><a href="#drakxtrunkmdkstage1slangslgetkeyc">drakx/trunk/mdk-stage1/slang/slgetkey.c</a></li>
+<li><a href="#drakxtrunkmdkstage1slangslimportc">drakx/trunk/mdk-stage1/slang/slimport.c</a></li>
+<li><a href="#drakxtrunkmdkstage1slangslincludh">drakx/trunk/mdk-stage1/slang/slinclud.h</a></li>
+<li><a href="#drakxtrunkmdkstage1slangslintallc">drakx/trunk/mdk-stage1/slang/slintall.c</a></li>
+<li><a href="#drakxtrunkmdkstage1slangslistrucc">drakx/trunk/mdk-stage1/slang/slistruc.c</a></li>
+<li><a href="#drakxtrunkmdkstage1slangslkeymapc">drakx/trunk/mdk-stage1/slang/slkeymap.c</a></li>
+<li><a href="#drakxtrunkmdkstage1slangslkeypadc">drakx/trunk/mdk-stage1/slang/slkeypad.c</a></li>
+<li><a href="#drakxtrunkmdkstage1slangsllimitsh">drakx/trunk/mdk-stage1/slang/sllimits.h</a></li>
+<li><a href="#drakxtrunkmdkstage1slangslmallocc">drakx/trunk/mdk-stage1/slang/slmalloc.c</a></li>
+<li><a href="#drakxtrunkmdkstage1slangslmathc">drakx/trunk/mdk-stage1/slang/slmath.c</a></li>
+<li><a href="#drakxtrunkmdkstage1slangslmemchrc">drakx/trunk/mdk-stage1/slang/slmemchr.c</a></li>
+<li><a href="#drakxtrunkmdkstage1slangslmemcmpc">drakx/trunk/mdk-stage1/slang/slmemcmp.c</a></li>
+<li><a href="#drakxtrunkmdkstage1slangslmemcpyc">drakx/trunk/mdk-stage1/slang/slmemcpy.c</a></li>
+<li><a href="#drakxtrunkmdkstage1slangslmemsetc">drakx/trunk/mdk-stage1/slang/slmemset.c</a></li>
+<li><a href="#drakxtrunkmdkstage1slangslmiscc">drakx/trunk/mdk-stage1/slang/slmisc.c</a></li>
+<li><a href="#drakxtrunkmdkstage1slangslnspacec">drakx/trunk/mdk-stage1/slang/slnspace.c</a></li>
+<li><a href="#drakxtrunkmdkstage1slangslospathc">drakx/trunk/mdk-stage1/slang/slospath.c</a></li>
+<li><a href="#drakxtrunkmdkstage1slangslpackc">drakx/trunk/mdk-stage1/slang/slpack.c</a></li>
+<li><a href="#drakxtrunkmdkstage1slangslparsec">drakx/trunk/mdk-stage1/slang/slparse.c</a></li>
+<li><a href="#drakxtrunkmdkstage1slangslpathc">drakx/trunk/mdk-stage1/slang/slpath.c</a></li>
+<li><a href="#drakxtrunkmdkstage1slangslposdirc">drakx/trunk/mdk-stage1/slang/slposdir.c</a></li>
+<li><a href="#drakxtrunkmdkstage1slangslposioc">drakx/trunk/mdk-stage1/slang/slposio.c</a></li>
+<li><a href="#drakxtrunkmdkstage1slangslpreprc">drakx/trunk/mdk-stage1/slang/slprepr.c</a></li>
+<li><a href="#drakxtrunkmdkstage1slangslprocc">drakx/trunk/mdk-stage1/slang/slproc.c</a></li>
+<li><a href="#drakxtrunkmdkstage1slangslregexpc">drakx/trunk/mdk-stage1/slang/slregexp.c</a></li>
+<li><a href="#drakxtrunkmdkstage1slangslrlinec">drakx/trunk/mdk-stage1/slang/slrline.c</a></li>
+<li><a href="#drakxtrunkmdkstage1slangslscanfc">drakx/trunk/mdk-stage1/slang/slscanf.c</a></li>
+<li><a href="#drakxtrunkmdkstage1slangslscrollc">drakx/trunk/mdk-stage1/slang/slscroll.c</a></li>
+<li><a href="#drakxtrunkmdkstage1slangslsearchc">drakx/trunk/mdk-stage1/slang/slsearch.c</a></li>
+<li><a href="#drakxtrunkmdkstage1slangslsignalc">drakx/trunk/mdk-stage1/slang/slsignal.c</a></li>
+<li><a href="#drakxtrunkmdkstage1slangslsmgc">drakx/trunk/mdk-stage1/slang/slsmg.c</a></li>
+<li><a href="#drakxtrunkmdkstage1slangslstdc">drakx/trunk/mdk-stage1/slang/slstd.c</a></li>
+<li><a href="#drakxtrunkmdkstage1slangslstdioc">drakx/trunk/mdk-stage1/slang/slstdio.c</a></li>
+<li><a href="#drakxtrunkmdkstage1slangslstringc">drakx/trunk/mdk-stage1/slang/slstring.c</a></li>
+<li><a href="#drakxtrunkmdkstage1slangslstropsc">drakx/trunk/mdk-stage1/slang/slstrops.c</a></li>
+<li><a href="#drakxtrunkmdkstage1slangslstructc">drakx/trunk/mdk-stage1/slang/slstruct.c</a></li>
+<li><a href="#drakxtrunkmdkstage1slangslterminc">drakx/trunk/mdk-stage1/slang/sltermin.c</a></li>
+<li><a href="#drakxtrunkmdkstage1slangsltimec">drakx/trunk/mdk-stage1/slang/sltime.c</a></li>
+<li><a href="#drakxtrunkmdkstage1slangsltokenc">drakx/trunk/mdk-stage1/slang/sltoken.c</a></li>
+<li><a href="#drakxtrunkmdkstage1slangsltypesc">drakx/trunk/mdk-stage1/slang/sltypes.c</a></li>
+<li><a href="#drakxtrunkmdkstage1slangsluttyc">drakx/trunk/mdk-stage1/slang/slutty.c</a></li>
+<li><a href="#drakxtrunkmdkstage1slangslxstrngc">drakx/trunk/mdk-stage1/slang/slxstrng.c</a></li>
+<li><a href="#drakxtrunkmdkstage1stage1c">drakx/trunk/mdk-stage1/stage1.c</a></li>
+<li><a href="#drakxtrunkmdkstage1stage1h">drakx/trunk/mdk-stage1/stage1.h</a></li>
+<li><a href="#drakxtrunkmdkstage1stdiofrontendc">drakx/trunk/mdk-stage1/stdio-frontend.c</a></li>
+<li>drakx/trunk/mdk-stage1/sysfs/</li>
+<li><a href="#drakxtrunkmdkstage1sysfsMakefile">drakx/trunk/mdk-stage1/sysfs/Makefile</a></li>
+<li><a href="#drakxtrunkmdkstage1sysfslibsysfsh">drakx/trunk/mdk-stage1/sysfs/libsysfs.h</a></li>
+<li><a href="#drakxtrunkmdkstage1sysfssysfsh">drakx/trunk/mdk-stage1/sysfs/sysfs.h</a></li>
+<li><a href="#drakxtrunkmdkstage1sysfssysfs_attrc">drakx/trunk/mdk-stage1/sysfs/sysfs_attr.c</a></li>
+<li><a href="#drakxtrunkmdkstage1sysfssysfs_utilsc">drakx/trunk/mdk-stage1/sysfs/sysfs_utils.c</a></li>
+<li><a href="#drakxtrunkmdkstage1thirdpartyc">drakx/trunk/mdk-stage1/thirdparty.c</a></li>
+<li><a href="#drakxtrunkmdkstage1thirdpartyh">drakx/trunk/mdk-stage1/thirdparty.h</a></li>
+<li><a href="#drakxtrunkmdkstage1toolsc">drakx/trunk/mdk-stage1/tools.c</a></li>
+<li><a href="#drakxtrunkmdkstage1toolsh">drakx/trunk/mdk-stage1/tools.h</a></li>
+<li><a href="#drakxtrunkmdkstage1urlc">drakx/trunk/mdk-stage1/url.c</a></li>
+<li><a href="#drakxtrunkmdkstage1urlh">drakx/trunk/mdk-stage1/url.h</a></li>
+<li>drakx/trunk/mdk-stage1/usb-resource/</li>
+<li><a href="#drakxtrunkmdkstage1usbresourceMakefile">drakx/trunk/mdk-stage1/usb-resource/Makefile</a></li>
+<li><a href="#drakxtrunkmdkstage1usbresourceupdateusbidspl">drakx/trunk/mdk-stage1/usb-resource/update-usb-ids.pl</a></li>
+<li><a href="#drakxtrunkmdkstage1utilsc">drakx/trunk/mdk-stage1/utils.c</a></li>
+<li><a href="#drakxtrunkmdkstage1utilsh">drakx/trunk/mdk-stage1/utils.h</a></li>
+<li><a href="#drakxtrunkmdkstage1wirelessc">drakx/trunk/mdk-stage1/wireless.c</a></li>
+<li><a href="#drakxtrunkmdkstage1wirelessh">drakx/trunk/mdk-stage1/wireless.h</a></li>
+<li><a href="#drakxtrunkmdkstage1zlibsupportc">drakx/trunk/mdk-stage1/zlibsupport.c</a></li>
+<li><a href="#drakxtrunkmdkstage1zlibsupporth">drakx/trunk/mdk-stage1/zlibsupport.h</a></li>
+</ul>
+
+</div>
+<div id="patch"><pre>
+<a id="drakxtrunkmdkstage1Makefile">Added: drakx/trunk/mdk-stage1/Makefile</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/Makefile (rev 0)
++++ drakx/trunk/mdk-stage1/Makefile 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,238 @@
++ #******************************************************************************
++ #
++ # mdk-stage1 - the program that will load second-stage install
++ #
++ # $Id: Makefile 271082 2010-10-13 18:55:00Z tv $
++ #
++ # Pixel (pixel@mandriva.com) (mostly done by Guillaume Cottenceau)
++ #
++ # Copyright 2000-2004 Mandriva
++ #
++ # This software may be freely redistributed under the terms of the GNU
++ # public license.
++ #
++ # You should have received a copy of the GNU General Public License
++ # along with this program; if not, write to the Free Software
++ # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++
++VERSION=1.47
++PRODUCT=drakx-installer-binaries
++
++ #
++ # Portions from Erik Troan (ewt@redhat.com) Copyright 1996 Red Hat Software
++ #
++ #*****************************************************************************
++ #
++ # Currently:
++ #
++ # ix86
++ # init with dietlibc
++ # stage1 with dietlibc
++ #
++ # ppc
++ # init with dietlibc
++ # stage1 with glibc
++ #
++ # ia64
++ # init with glibc
++ # stage1 with glibc
++ #
++ # x86-64
++ # init with dietlibc
++ # stage1 with dietlibc
++ #
++ #*****************************************************************************
++
++
++top_dir = .
++
++include $(top_dir)/Makefile.common
++include $(top_dir)/../Makefile.config
++ARCHDIR=$(ARCH)
++ifeq (i386, $(ARCH))
++ARCHDIR=i586
++endif
++
++DEFS = -DDISTRIB_NAME=\&quot;$(DISTRIB_NAME)\&quot; -DDISTRIB_VERSION=\&quot;$(DISTRIB_VERSION)\&quot; -DDISTRIB_TYPE=\&quot;$(DISTRIB_TYPE)\&quot; -DDISTRIB_DESCR=\&quot;$(DISTRIB_DESCR)\&quot; $(ADDITIONAL_DEFS) -D_FILE_OFFSET_BITS=64 -DARCH=\&quot;$(ARCHDIR)\&quot; -DCONFIG_USE_ZLIB
++
++COMPILE = $(CC) $(DEFS) $(CFLAGS)
++
++INIT_DEFS =
++INITSRC = init.c
++ifneq (DIETLIBC, $(L))
++INIT_DEFS += $(GLIBC_INCLUDES)
++endif
++
++INITOBJS = $(subst .c,.o,$(INITSRC))
++
++
++ #- frontends
++NEWT_FRONTEND_SRC = newt-frontend.c
++NEWT_FRONTEND_LIBS = newt/libnewt.a slang/libslang.a
++
++STDIO_FRONTEND_SRC = stdio-frontend.c
++STDIO_FRONTEND_LIBS =
++STDIO_FRONTEND_LIBS =
++
++
++FRONTEND_OBJS = $(subst .c,.o,$($(F)_FRONTEND_SRC))
++
++FRONTEND_LINK = $(FRONTEND_OBJS) $($(F)_FRONTEND_LIBS)
++
++STAGE1_STATIC_LIBS = libmodprobe.a
++STAGE1_STATIC_USR_LIBS = libz.a libldetect.a libpci.a
++STAGE1_OWN_LIBS =
++ifeq (DIETLIBC, $(L))
++STAGE1_OWN_LIBS = $(patsubst %,/usr/lib/dietlibc/lib-$(ARCH)/%,$(STAGE1_STATIC_USR_LIBS) $(STAGE1_STATIC_LIBS))
++else
++STAGE1_OWN_LIBS = $(patsubst %,/usr/$(LIB)/%,$(STAGE1_STATIC_USR_LIBS)) $(patsubst %,/$(LIB)/%,$(STAGE1_STATIC_LIBS))
++endif
++
++
++ifeq (DIETLIBC, $(L))
++STAGE1_NETWORK_LIBS = /usr/lib/dietlibc/lib-$(ARCH)/librpc.a
++else
++STAGE1_NETWORK_LIBS = /usr/$(LIB)/libresolv.a
++endif
++
++ #- stage1 itself
++STAGE1SRC = stage1.c log.c utils.c params.c tools.c modules.c probing.c mount.c automatic.c frontend-common.c lomount.c thirdparty.c zlibsupport.c
++CDROMSRC = cdrom.c
++DISKSRC = disk.c directory.c partition.c
++NETWORKSRC = network.c nfsmount.c dhcp.c url.c dns.c adsl.c directory.c wireless.c
++KASRC = ka.c
++
++# use sort to remove duplicates
++STAGE1_ALLSRC = $(sort $(STAGE1SRC) $(CDROMSRC) $(DISKSRC) $(NETWORKSRC) $(KASRC))
++ALLSRC = $(INITSRC) $(STAGE1_ALLSRC)
++
++
++
++CDROM_DEFS = -DSPAWN_SHELL -DDISABLE_DISK -DDISABLE_NETWORK
++
++
++STAGE1OBJS-NETWORK = $(subst .c,-NETWORK.o,$(STAGE1SRC) $(NETWORKSRC))
++
++NETWORK_DEFS = -DSPAWN_SHELL -DDISABLE_CDROM -DDISABLE_DISK -DDISABLE_KA
++
++
++STAGE1OBJS-NETWORK-STANDALONE = $(subst .c,-NETWORK-STANDALONE.o,$(STAGE1SRC) $(NETWORKSRC))
++
++NETWORK_STANDALONE_DEFS = -DDISABLE_CDROM -DDISABLE_DISK -DENABLE_NETWORK_STANDALONE -DDISABLE_KA
++
++
++STAGE1OBJS-FULL = $(subst .c,-FULL.o,$(STAGE1_ALLSRC))
++
++BINS = init stage1 dhcp-client rescue-gui probe-modules
++
++DIRS += pci-resource usb-resource slang newt ppp/pppd rp-pppoe/src
++ifeq (i386, $(ARCH))
++DIRS += pcmcia pcmcia-resource sysfs
++endif
++ifeq (x86_64, $(ARCH))
++DIRS += pcmcia pcmcia-resource sysfs
++endif
++
++
++ifeq (i386,$(ARCH))
++PCMCIA_LIB = pcmcia/libpcmcia.a sysfs/libsysfs.a
++PCMCIA_DEFS = -DENABLE_PCMCIA
++endif
++ifeq (x86_64,$(ARCH))
++PCMCIA_LIB = pcmcia/libpcmcia.a sysfs/libsysfs.a
++PCMCIA_DEFS = -DENABLE_PCMCIA
++endif
++
++
++USB_DEFS_GEN = -DENABLE_USB
++USB_DEFS = -DENABLE_USB -DDISABLE_PCIADAPTERS
++
++all: dirs $(BINS)
++
++dirs:
++ @for n in . $(DIRS); do \
++ [ &quot;$$n&quot; = &quot;.&quot; ] || make -C $$n || exit 1 ;\
++ done
++
++init: $(INITOBJS) $(STAGE1_LIBC)
++ $(DIET) $(CC) $(LDFLAGS) -o $@ $^
++ $(STRIPCMD) $@
++
++stage1: $(STAGE1OBJS-FULL) $(STAGE1_OWN_LIBS) $(STAGE1_NETWORK_LIBS) $(FRONTEND_LINK) bootsplash.o $(PCMCIA_LIB) $(STAGE1_LIBC)
++ $(DIET) $(CC) $(LDFLAGS) -o $@ $^
++ $(STRIPCMD) $@
++
++dhcp-client: $(STAGE1OBJS-NETWORK-STANDALONE) $(STAGE1_OWN_LIBS) $(STAGE1_NETWORK_LIBS) $(FRONTEND_LINK) $(STAGE1_LIBC)
++ $(DIET) $(CC) $(LDFLAGS) -o $@ $^
++ $(STRIPCMD) $@
++
++
++$(INITOBJS): %.o: %.c
++ $(COMPILE) $(INIT_DEFS) -c $&lt;
++
++$(STAGE1OBJS-NETWORK): %-NETWORK.o: %.c
++ $(DIET) $(COMPILE) $(INCLUDES) $(NETWORK_DEFS) $(PCMCIA_DEFS) $(USB_DEFS_GEN) -DENABLE_ADDITIONAL_MODULES -c $&lt; -o $@
++
++$(STAGE1OBJS-NETWORK-STANDALONE): %-NETWORK-STANDALONE.o: %.c
++ $(DIET) $(COMPILE) $(INCLUDES) $(NETWORK_STANDALONE_DEFS) $(USB_DEFS_GEN) -c $&lt; -o $@
++
++$(STAGE1OBJS-FULL): %-FULL.o: %.c
++ $(DIET) $(COMPILE) $(INCLUDES) -DSPAWN_SHELL $(USB_DEFS_GEN) $(PCMCIA_DEFS) -DENABLE_BOOTSPLASH -c $&lt; -o $@
++
++.c.o:
++ $(DIET) $(COMPILE) $(INCLUDES) -DENABLE_BOOTSPLASH -c $&lt;
++
++
++clean: localclean
++ @for n in $(DIRS); do \
++ (cd $$n; make clean) \
++ done
++
++localclean:
++ rm -f *.o .depend *.rdz *.img $(BINS)
++
++
++rescue-gui: rescue-gui.o frontend-common.o params.o utils.o log.o automatic.o $(FRONTEND_LINK) $(STAGE1_LIBC)
++ $(DIET) $(CC) $(LDFLAGS) -o $@ $^
++ $(STRIPCMD) $@
++
++probe-modules: probe-modules.o probing-FULL.o modules-FULL.o params-FULL.o utils-FULL.o log-FULL.o automatic-FULL.o frontend-common-FULL.o stdio-frontend.o zlibsupport-FULL.o $(STAGE1_OWN_LIBS) $(PCMCIA_LIB) $(STAGE1_LIBC)
++ $(DIET) $(CC) $(LDFLAGS) -o $@ $^
++ $(STRIPCMD) $@
++
++dist: tar
++tar:
++ rm -rf $(PRODUCT)*.tar* $(PRODUCT)-$(VERSION)
++ @if [ -e &quot;.svn&quot; ]; then \
++ $(MAKE) dist-svn; \
++ elif [ -e &quot;../.git&quot; ]; then \
++ $(MAKE) dist-git; \
++ else \
++ echo &quot;Unknown SCM (not SVN nor GIT)&quot;;\
++ exit 1; \
++ fi;
++ $(info $(NAME)-$(VERSION).tar.bz2 is ready)
++
++dist-svn:
++ mkdir -p $(PRODUCT)-$(VERSION)
++ svn export -q -rBASE . $(PRODUCT)-$(VERSION)/mdk-stage1
++ svn export -q -rBASE ../kernel $(PRODUCT)-$(VERSION)/kernel
++ cp ../Makefile.config $(PRODUCT)-$(VERSION)/
++ tar cfj $(PRODUCT)-$(VERSION).tar.bz2 $(PRODUCT)-$(VERSION)
++ rm -rf $(PRODUCT)-$(VERSION)
++
++dist-git:
++ @cd ..; git archive --prefix=$(PRODUCT)-$(VERSION)/ HEAD mdk-stage1 kernel Makefile.config | bzip2 &gt;mdk-stage1/$(PRODUCT)-$(VERSION).tar.bz2;
++
++.depend:
++ $(CPP) $(CFLAGS) -M $(ALLSRC) &gt; .depend
++
++ifeq (.depend,$(wildcard .depend))
++include .depend
++endif
++
++
++*-NETWORK.o: %-NETWORK.o: %.o
++
++*-FULL.o: %-FULL.o: %.o
++
+
+
+Property changes on: drakx/trunk/mdk-stage1/Makefile
+___________________________________________________________________
+<a id="svneolstyle">Added: svn:eol-style</a>
+ + native
+
+<a id="drakxtrunkmdkstage1Makefilecommon">Added: drakx/trunk/mdk-stage1/Makefile.common</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/Makefile.common (rev 0)
++++ drakx/trunk/mdk-stage1/Makefile.common 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,68 @@
++ # -*- makefile -*-
++ #******************************************************************************
++ #
++ # Guillaume Cottenceau (gc@mandriva.com)
++ #
++ # Copyright 2000 Mandriva
++ #
++ # This software may be freely redistributed under the terms of the GNU
++ # public license.
++ #
++ # You should have received a copy of the GNU General Public License
++ # along with this program; if not, write to the Free Software
++ # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ #
++ #*****************************************************************************
++
++ARCH := $(patsubst i%86,i386,$(shell uname -m))
++ARCH := $(patsubst sparc%,sparc,$(ARCH))
++
++# DEBUG = 1
++
++ #- default frontend is newt (honoured by main Makefile whenever possible)
++ifdef DEBUG
++F = STDIO
++else
++F = NEWT
++endif
++
++DIET = $(shell test -x /usr/bin/diet &amp;&amp; echo diet)
++
++ifeq ($(DIET), diet)
++ #- default lib is dietlibc (honoured by main Makefile whenever possible)
++L = DIETLIBC
++else
++L = GLIBC
++endif
++
++ifdef DEBUG
++OPTFLAGS = -g
++else
++OPTFLAGS = -Os
++endif
++
++#- flags used by all stuff
++CFLAGS = $(OPTFLAGS) -pipe -Wall -fomit-frame-pointer -fno-strict-aliasing
++
++ifneq (ppc, $(ARCH))
++ifneq (sparc, $(ARCH))
++CFLAGS += -Werror
++endif
++endif
++
++DIETLIBC_INCLUDES = -I/usr/lib/dietlibc/include -I.
++DIETLIBC_LIBC = /usr/lib/dietlibc/lib-$(ARCH)/libcompat.a
++GLIBC_INCLUDES = -I.
++INCLUDES = $($(L)_INCLUDES)
++
++GLIBC_LDFLAGS = -static
++LDFLAGS = $($(L)_LDFLAGS)
++
++STAGE1_LIBC = $($(L)_LIBC)
++
++ifdef DEBUG
++STRIPCMD = echo not stripping
++else
++STRIPCMD = strip -R .note -R .comment
++endif
++
+
+<a id="drakxtrunkmdkstage1NEWS">Added: drakx/trunk/mdk-stage1/NEWS</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/NEWS (rev 0)
++++ drakx/trunk/mdk-stage1/NEWS 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,173 @@
++1.47:
++- 2011.0 build
++
++1.46:
++- create device listed in /proc/partitions with correct major/minor (#57032)
++
++1.45:
++- do not list /dev/fd0 when no floppy is found (#58390)
++
++1.44:
++- rebuild with latest list_modules.pm (might fix #57833)
++
++1.43:
++- bump version (#57466)
++
++1.42:
++- list asix module in network/usb group
++- virtio: fix device probing: use PCI subdevices
++- fix format string bug from 1.41
++
++1.41:
++- load needed modules for known virtio devices, fixes #51804
++
++1.39:
++- set uevent helper which will load firmware and do not set firmware
++ timeout to 1 second (it will fail if firmware is not there)
++
++1.38:
++- handle hybrid ISOs (ISO images dumped to USB keys)
++
++1.37:
++- enumerate hid bus and load hid quirk modules, fixes #47167
++
++1.36:
++- load appropriate modules before trying to mount ext4/reiser4
++
++1.35:
++- allow installing from ext3/ext4/reiser4
++
++1.34:
++- adapt to new modules.dep format (prefix modules with directory path)
++- try to use arch-prefixed location for automatic disk installs
++
++1.33:
++- build fix for glibc 2.8
++- sort modules in the interface
++- try to load squashfs_lzma too
++
++1.32:
++- automatically find compressed stage2 with automatic=method:disk
++
++1.31:
++- usbkbd is dead, using usbhid instead
++
++1.30:
++- add back &quot;ide-generic&quot; support (incorrectly removed in 1.17), the
++ module that we want to avoid is &quot;ide-pci-generic&quot; (previously &quot;generic&quot;),
++ and this is handled by ldetect-lst preferred modules list
++- handle ide-cd being renamed as ide-cd_mod
++
++1.29:
++- allow to pass module options to probe-modules
++- build fixes for gcc 4.3
++
++1.28:
++- fix segfault with empty device description (can happen for USB devices)
++
++1.27.1:
++- fix build
++
++1.27:
++- do not set firmware timeout to 1 second in probe-modules helper for
++ Mandriva One (#39216)
++
++1.26:
++- load bus/firewire controllers (#31356)
++- really ask dhcp domain if not guessed
++
++1.25:
++- do not allow to choose outdated cooker mirror list (#37278)
++
++1.24:
++- load disk/ide before disk/scsi (#38451, to prevent sata deps from
++ overriding non-libata pata modules, like in stage2)
++- fix asking modules when no controller is detected
++
++1.23:
++- probe usb-storage/sbp2 only when probing USB/SCSI buses
++ (to make automatic boot faster on IDE)
++- make dhcp the first choice (instead of static) in the network type menu
++- clear tty2 after shell is killed
++- log &quot;killed shell&quot; message on tty3
++- add a space in front of top line (like help message)
++- space-pad top line with spaces to the right (like help message)
++
++1.22:
++- fix automatic IDE media detection (was broken with multiple CD drives, #36161)
++- fix bootsplash in automatic CD-Rom mode (as a result of IDE media detection fix)
++- wait only 1 second for firmware upload (not to hang boot with iwl3945, #37279)
++
++1.21:
++- load nls_cp437 and nls_iso8859_1 when loading vfat
++ (used to be in custom modules.dep)
++
++1.20:
++- probe-modules:
++ o handle the &quot;--usb&quot; option instead of &quot;usb&quot;
++ o load module passed as argument (if any), instead of probing bus
++- switch to modules from /lib/modules/`uname -r`, modules.dep containing full filename
++
++1.19:
++- rebuild with list_modules to handle atl2 ethernet driver
++
++1.18:
++- add probe-modules helper
++
++1.17:
++- use modules from disk/ide category (#33043)
++- do not explicitely try to load ide-generic, ldetect will fallback to
++ ide-generic when appropriate (#33043)
++
++1.16:
++- if you give nfs directory xxx, try to use xxx/ARCH
++- handle cdroms with and without ARCH at the root
++
++1.15:
++- ask loading modules from /modules if needed
++- read modules description from /modules/modules.description
++
++1.14:
++- fix segfault in USB detection code (when no module match, #32624)
++
++1.13:
++- use module names instead of filenames
++- convert module name to filename before loading it
++ (using modules.dep to get filename)
++- keep module in dependencies list even if it has no dependencies
++ (to keep track of its filename)
++- use '_' in module names when explicitely loading modules (cosmetics)
++
++1.12:
++- adapt to new list_modules
++
++1.11:
++- use ldetect/libmodprobe/libpci instead of custom pci/usb probe
++- rename rescue &quot;GUI&quot; as rescue &quot;menu&quot;
++
++1.10.1:
++- link init with dietlibc instead of minilibc on ix86/x86-64
++- add missing includes for wireless
++- fix build of pppoe by using dietlibc termios header
++
++1.10:
++- add ide-disk module
++- load ide-disk when detecting disks (ide is now modularized...)
++
++1.9:
++- ide is now modularized
++
++1.8:
++- build pcmcia header only on i386/x86_64 (#30668)
++- use api.mandriva.com to retrieve mirror list (#29346)
++
++1.7:
++- don't kill our init/klogd when running stage2
++ (bug introduced when switching to initramfs)
++
++1.6:
++- write DNS settings in temporary ifcfg file
++ (fixes resolv.conf post install)
++
++1.5:
++- fix infinite loop in wired interface mode
+
+<a id="drakxtrunkmdkstage1adslc">Added: drakx/trunk/mdk-stage1/adsl.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/adsl.c (rev 0)
++++ drakx/trunk/mdk-stage1/adsl.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,183 @@
++/*
++ * Guillaume Cottenceau (gc@mandriva.com)
++ *
++ * Copyright 2000 Mandriva
++ *
++ * This software may be freely redistributed under the terms of the GNU
++ * public license.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++#include &lt;stdlib.h&gt;
++#include &lt;unistd.h&gt;
++#include &lt;sys/types.h&gt;
++#include &lt;sys/stat.h&gt;
++#include &lt;fcntl.h&gt;
++#include &lt;string.h&gt;
++#include &lt;sys/socket.h&gt;
++#include &lt;netinet/in.h&gt;
++#include &lt;arpa/inet.h&gt;
++#include &lt;sys/ioctl.h&gt;
++#include &lt;errno.h&gt;
++#include &lt;stdio.h&gt;
++#include &lt;resolv.h&gt;
++#include &lt;signal.h&gt;
++
++#include &quot;stage1.h&quot;
++#include &quot;log.h&quot;
++#include &quot;network.h&quot;
++#include &quot;modules.h&quot;
++#include &quot;utils.h&quot;
++#include &quot;frontend.h&quot;
++#include &quot;automatic.h&quot;
++
++#include &quot;adsl.h&quot;
++
++
++static enum return_type adsl_connect(struct interface_info * intf, char * username, char * password, char * acname)
++{
++ char pppoe_call[500];
++ char * pppd_launch[] = { &quot;/sbin/pppd&quot;, &quot;pty&quot;, pppoe_call, &quot;noipdefault&quot;, &quot;noauth&quot;, &quot;default-asyncmap&quot;, &quot;defaultroute&quot;,
++ &quot;hide-password&quot;, &quot;nodetach&quot;, &quot;usepeerdns&quot;, &quot;local&quot;, &quot;mtu&quot;, &quot;1492&quot;, &quot;mru&quot;, &quot;1492&quot;, &quot;noaccomp&quot;,
++ &quot;noccp&quot;, &quot;nobsdcomp&quot;, &quot;nodeflate&quot;, &quot;nopcomp&quot;, &quot;novj&quot;, &quot;novjccomp&quot;, &quot;user&quot;, username,
++ &quot;password&quot;, password, &quot;lcp-echo-interval&quot;, &quot;20&quot;, &quot;lcp-echo-failure&quot;, &quot;3&quot;, &quot;lock&quot;, &quot;persist&quot;, NULL };
++ int fd;
++ int retries = 10;
++ char * tty_adsl = &quot;/dev/tty6&quot;;
++ enum return_type status = RETURN_ERROR;
++ pid_t ppp_pid;
++
++ snprintf(pppoe_call, sizeof(pppoe_call), &quot;/sbin/pppoe -p /var/run/pppoe.conf-adsl.pid.pppoe -I %s -T 80 -U -m 1412&quot;, intf-&gt;device);
++
++ if (!streq(acname, &quot;&quot;)) {
++ strcat(pppoe_call, &quot;-C &quot;);
++ strcat(pppoe_call, acname);
++ }
++
++ fd = open(tty_adsl, O_RDWR);
++ if (fd == -1) {
++ log_message(&quot;cannot open tty -- no pppd&quot;);
++ return RETURN_ERROR;
++ }
++ else if (access(pppd_launch[0], X_OK)) {
++ log_message(&quot;cannot open pppd - %s doesn't exist&quot;, pppd_launch[0]);
++ return RETURN_ERROR;
++ }
++
++ if (!(ppp_pid = fork())) {
++ dup2(fd, 0);
++ dup2(fd, 1);
++ dup2(fd, 2);
++
++ close(fd);
++ setsid();
++ if (ioctl(0, TIOCSCTTY, NULL))
++ log_perror(&quot;could not set new controlling tty&quot;);
++
++ printf(&quot;\t(exec of pppd)\n&quot;);
++ execv(pppd_launch[0], pppd_launch);
++ log_message(&quot;execve of %s failed: %s&quot;, pppd_launch[0], strerror(errno));
++ exit(-1);
++ }
++ close(fd);
++ while (retries &gt; 0 &amp;&amp; kill(ppp_pid, 0) == 0) {
++ FILE * f;
++ if ((f = fopen(&quot;/var/run/pppd.tdb&quot;, &quot;rb&quot;))) {
++ while (1) {
++ char buf[500];
++ char *p;
++ if (!fgets(buf, sizeof(buf), f))
++ break;
++ p = strstr(buf, &quot;IPLOCAL=&quot;);
++ if (p) {
++ struct sockaddr_in addr;
++ if (inet_aton(p + 8, &amp;addr.sin_addr))
++ intf-&gt;ip = addr.sin_addr;
++ status = RETURN_OK;
++ }
++ }
++ fclose(f);
++ if (status == RETURN_OK) {
++ log_message(&quot;PPP: connected!&quot;);
++ break;
++ }
++ }
++ retries--;
++ log_message(&quot;PPP: &lt;sleep&gt;&quot;);
++ sleep(2);
++ }
++
++ if (status != RETURN_OK) {
++ log_message(&quot;PPP: could not connect&quot;);
++ kill(ppp_pid, SIGTERM);
++ sleep(1);
++ kill(ppp_pid, SIGKILL);
++ sleep(1);
++ }
++ return status;
++}
++
++
++enum return_type perform_adsl(struct interface_info * intf)
++{
++ struct in_addr addr;
++ char * questions[] = { &quot;Username&quot;, &quot;Password&quot;, &quot;AC Name&quot;, NULL };
++ char * questions_auto[] = { &quot;adsluser&quot;, &quot;adslpass&quot;, &quot;adslacname&quot;, NULL };
++ static char ** answers = NULL;
++ enum return_type results;
++
++ inet_aton(&quot;10.0.0.10&quot;, &amp;addr);
++ memcpy(&amp;intf-&gt;ip, &amp;addr, sizeof(addr));
++
++ inet_aton(&quot;255.255.255.0&quot;, &amp;addr);
++ memcpy(&amp;intf-&gt;netmask, &amp;addr, sizeof(addr));
++
++ *((uint32_t *) &amp;intf-&gt;broadcast) = (*((uint32_t *) &amp;intf-&gt;ip) &amp;
++ *((uint32_t *) &amp;intf-&gt;netmask)) | ~(*((uint32_t *) &amp;intf-&gt;netmask));
++
++ intf-&gt;is_ptp = 0;
++
++ if (configure_net_device(intf)) {
++ stg1_error_message(&quot;Could not configure..&quot;);
++ return RETURN_ERROR;
++ }
++
++ results = ask_from_entries_auto(&quot;Please enter the username and password for your ADSL account.\n&quot;
++ &quot;Leave blank the AC Name field if you don't know what it means.\n&quot;
++ &quot;(Warning! only PPPoE protocol is supported)&quot;,
++ questions, &amp;answers, 40, questions_auto, NULL);
++ if (results != RETURN_OK)
++ return results;
++
++ intf-&gt;boot_proto = BOOTPROTO_ADSL_PPPOE;
++
++ wait_message(&quot;Waiting for ADSL connection to show up...&quot;);
++ my_insmod(&quot;ppp_generic&quot;, ANY_DRIVER_TYPE, NULL, 1);
++ my_insmod(&quot;ppp_async&quot;, ANY_DRIVER_TYPE, NULL, 1);
++ results = adsl_connect(intf, answers[0], answers[1], answers[2]);
++ remove_wait_message();
++
++ if (results != RETURN_OK) {
++ wait_message(&quot;Retrying the ADSL connection...&quot;);
++ results = adsl_connect(intf, answers[0], answers[1], answers[2]);
++ remove_wait_message();
++ } else {
++ intf-&gt;user = strdup(answers[0]);
++ intf-&gt;pass = strdup(answers[1]);
++ intf-&gt;acname = strdup(answers[2]);
++ }
++
++ if (results != RETURN_OK) {
++ stg1_error_message(&quot;I could not connect to the ADSL network.&quot;);
++ return perform_adsl(intf);
++ }
++
++ sleep(1);
++ res_init(); /* reinit the resolver, pppd modified /etc/resolv.conf */
++
++ return RETURN_OK;
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/adsl.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1adslh">Added: drakx/trunk/mdk-stage1/adsl.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/adsl.h (rev 0)
++++ drakx/trunk/mdk-stage1/adsl.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,34 @@
++/*
++ * Guillaume Cottenceau (gc@mandriva.com)
++ *
++ * Copyright 2000 Mandriva
++ *
++ * View the homepage: http://us.mandriva.com/~gc/html/stage1.html
++ *
++ *
++ * This software may be freely redistributed under the terms of the GNU
++ * public license.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++/*
++ * Portions from GRUB -- GRand Unified Bootloader
++ * Copyright (C) 2000 Free Software Foundation, Inc.
++ *
++ * Itself based on etherboot-4.6.4 by Martin Renters.
++ *
++ */
++
++#ifndef _ADSL_H_
++#define _ADSL_H_
++
++#include &quot;stage1.h&quot;
++#include &quot;network.h&quot;
++
++enum return_type perform_adsl(struct interface_info * intf);
++
++#endif
+
+
+Property changes on: drakx/trunk/mdk-stage1/adsl.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1automaticc">Added: drakx/trunk/mdk-stage1/automatic.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/automatic.c (rev 0)
++++ drakx/trunk/mdk-stage1/automatic.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,166 @@
++/*
++ * Guillaume Cottenceau (gc@mandriva.com)
++ *
++ * Copyright 2000 Mandriva
++ *
++ * This software may be freely redistributed under the terms of the GNU
++ * public license.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++/*
++ * This is supposed to replace the redhat &quot;kickstart&quot;, by name but
++ * also by design (less code pollution).
++ *
++ */
++
++
++#include &lt;unistd.h&gt;
++#include &lt;stdlib.h&gt;
++#include &lt;string.h&gt;
++#include &quot;tools.h&quot;
++#include &quot;utils.h&quot;
++#include &quot;stage1.h&quot;
++#include &quot;frontend.h&quot;
++#include &quot;log.h&quot;
++
++#include &quot;automatic.h&quot;
++
++
++static struct param_elem * automatic_params;
++static char * value_not_bound = &quot;&quot;;
++
++void grab_automatic_params(char * line)
++{
++ int i, p;
++ struct param_elem tmp_params[50];
++
++ i = 0; p = 0;
++ while (line[i] != '\0') {
++ char *name, *value;
++ int k;
++ int j = i;
++ while (line[i] != ':' &amp;&amp; line[i] != '\0')
++ i++;
++ name = memdup(&amp;line[j], i-j + 1);
++ name[i-j] = 0;
++
++ k = i+1;
++ i++;
++ while (line[i] != ',' &amp;&amp; line[i] != '\0')
++ i++;
++ value = memdup(&amp;line[k], i-k + 1);
++ value[i-k] = 0;
++
++ tmp_params[p].name = name;
++ tmp_params[p].value = value;
++ p++;
++ if (line[i] == '\0')
++ break;
++ i++;
++ }
++
++ tmp_params[p++].name = NULL;
++ automatic_params = memdup(tmp_params, sizeof(struct param_elem) * p);
++
++ log_message(&quot;AUTOMATIC MODE: got %d params&quot;, p-1);
++}
++
++
++char * get_auto_value(char * auto_param)
++{
++ struct param_elem * ptr = automatic_params;
++
++ struct param_elem short_aliases[] =
++ { { &quot;method&quot;, &quot;met&quot; }, { &quot;network&quot;, &quot;netw&quot; }, { &quot;interface&quot;, &quot;int&quot; }, { &quot;gateway&quot;, &quot;gat&quot; },
++ { &quot;netmask&quot;, &quot;netm&quot; }, { &quot;adsluser&quot;, &quot;adslu&quot; }, { &quot;adslpass&quot;, &quot;adslp&quot; }, { &quot;hostname&quot;, &quot;hos&quot; },
++ { &quot;domain&quot;, &quot;dom&quot; }, { &quot;server&quot;, &quot;ser&quot; }, { &quot;directory&quot;, &quot;dir&quot; }, { &quot;user&quot;, &quot;use&quot; },
++ { &quot;pass&quot;, &quot;pas&quot; }, { &quot;disk&quot;, &quot;dis&quot; }, { &quot;partition&quot;, &quot;par&quot; }, { &quot;proxy_host&quot;, &quot;proxh&quot; },
++ { &quot;proxy_port&quot;, &quot;proxp&quot; }, { NULL, NULL } };
++ struct param_elem * ptr_alias = short_aliases;
++ while (ptr_alias-&gt;name) {
++ if (streq(auto_param, ptr_alias-&gt;name))
++ break;
++ ptr_alias++;
++ }
++
++ while (ptr-&gt;name) {
++ if (streq(ptr-&gt;name, auto_param)
++ || (ptr_alias-&gt;name &amp;&amp; streq(ptr_alias-&gt;value, ptr-&gt;name)))
++ return ptr-&gt;value;
++ ptr++;
++ }
++
++ return value_not_bound;
++}
++
++
++enum return_type ask_from_list_auto(char *msg, char ** elems, char ** choice, char * auto_param, char ** elems_auto)
++{
++ if (!IS_AUTOMATIC) {
++ exit_bootsplash();
++ return ask_from_list(msg, elems, choice);
++ } else {
++ char ** sav_elems = elems;
++ char * tmp = get_auto_value(auto_param);
++ while (elems &amp;&amp; *elems) {
++ if (!strcmp(tmp, *elems_auto)) {
++ *choice = *elems;
++ log_message(&quot;AUTOMATIC: parameter %s for %s means returning %s&quot;, tmp, auto_param, *elems);
++ return RETURN_OK;
++ }
++ elems++;
++ elems_auto++;
++ }
++ unset_automatic(); /* we are in a fallback mode */
++ return ask_from_list(msg, sav_elems, choice);
++ }
++}
++
++enum return_type ask_from_list_comments_auto(char *msg, char ** elems, char ** elems_comments, char ** choice, char * auto_param, char ** elems_auto)
++{
++ if (!IS_AUTOMATIC) {
++ exit_bootsplash();
++ return ask_from_list_comments(msg, elems, elems_comments, choice);
++ } else {
++ char ** sav_elems = elems;
++ char * tmp = get_auto_value(auto_param);
++ while (elems &amp;&amp; *elems) {
++ if (!strcmp(tmp, *elems_auto)) {
++ *choice = *elems;
++ log_message(&quot;AUTOMATIC: parameter %s for %s means returning %s&quot;, tmp, auto_param, *elems);
++ return RETURN_OK;
++ }
++ elems++;
++ elems_auto++;
++ }
++ unset_automatic(); /* we are in a fallback mode */
++ return ask_from_list_comments(msg, sav_elems, elems_comments, choice);
++ }
++}
++
++
++enum return_type ask_from_entries_auto(char *msg, char ** questions, char *** answers, int entry_size, char ** questions_auto, void (*callback_func)(char ** strings))
++{
++ if (!IS_AUTOMATIC) {
++ exit_bootsplash();
++ return ask_from_entries(msg, questions, answers, entry_size, callback_func);
++ } else {
++ char * tmp_answers[50];
++ int i = 0;
++ while (questions &amp;&amp; *questions) {
++ tmp_answers[i] = get_auto_value(*questions_auto);
++ log_message(&quot;AUTOMATIC: question %s answers %s because of param %s&quot;, *questions, tmp_answers[i], *questions_auto);
++ i++;
++ questions++;
++ questions_auto++;
++
++ }
++ *answers = memdup(tmp_answers, sizeof(char *) * i);
++ return RETURN_OK;
++ }
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/automatic.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1automatich">Added: drakx/trunk/mdk-stage1/automatic.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/automatic.h (rev 0)
++++ drakx/trunk/mdk-stage1/automatic.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,33 @@
++/*
++ * Guillaume Cottenceau (gc@mandriva.com)
++ *
++ * Copyright 2000 Mandriva
++ *
++ * This software may be freely redistributed under the terms of the GNU
++ * public license.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++/*
++ * This is supposed to replace the redhat &quot;kickstart&quot;, by name but
++ * also by design (no code pollution).
++ *
++ */
++
++#ifndef _AUTOMATIC_H_
++#define _AUTOMATIC_H_
++
++#include &quot;stage1.h&quot;
++
++void grab_automatic_params(char * line);
++char * get_auto_value(char * auto_param);
++
++enum return_type ask_from_list_auto(char *msg, char ** elems, char ** choice, char * auto_param, char ** elems_auto);
++enum return_type ask_from_list_comments_auto(char *msg, char ** elems, char ** elems_comments, char ** choice, char * auto_param, char ** elems_auto);
++enum return_type ask_from_entries_auto(char *msg, char ** questions, char *** answers, int entry_size, char ** questions_auto, void (*callback_func)(char ** strings));
++
++#endif
+
+
+Property changes on: drakx/trunk/mdk-stage1/automatic.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1bootsplashc">Added: drakx/trunk/mdk-stage1/bootsplash.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/bootsplash.c (rev 0)
++++ drakx/trunk/mdk-stage1/bootsplash.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,70 @@
++/*
++ * Pixel (pixel@mandriva.com)
++ *
++ * Copyright 2004 Mandriva
++ *
++ * This software may be freely redistributed under the terms of the GNU
++ * public license.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++#include &lt;stdio.h&gt;
++#include &quot;bootsplash.h&quot;
++#include &quot;frontend.h&quot;
++#include &quot;log.h&quot;
++
++static int total_size;
++static float previous;
++static FILE* splash = NULL;
++
++static void update_progression_only(int current_size)
++{
++ if (splash &amp;&amp; total_size) {
++ float ratio = (float) (current_size + 1) / total_size;
++ if (ratio &gt; previous + 0.01) {
++ fprintf(splash, &quot;show %d\n&quot;, (int) (ratio * 65534));
++ fflush(splash);
++ previous = ratio;
++ }
++ }
++}
++
++static void open_bootsplash(void)
++{
++ if (!splash) splash = fopen(&quot;/proc/splash&quot;, &quot;w&quot;);
++ if (!splash) log_message(&quot;opening /proc/splash failed&quot;);
++}
++
++void exit_bootsplash(void)
++{
++ log_message(&quot;exiting bootsplash&quot;);
++ open_bootsplash();
++ if (splash) {
++ fprintf(splash, &quot;verbose\n&quot;);
++ fflush(splash);
++ }
++}
++
++
++void init_progression(char *msg, int size)
++{
++ previous = 0; total_size = size;
++ open_bootsplash();
++ update_progression_only(0);
++ init_progression_raw(msg, size);
++}
++
++void update_progression(int current_size)
++{
++ update_progression_only(current_size);
++ update_progression_raw(current_size);
++}
++
++void end_progression(void)
++{
++ end_progression_raw();
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/bootsplash.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1bootsplashh">Added: drakx/trunk/mdk-stage1/bootsplash.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/bootsplash.h (rev 0)
++++ drakx/trunk/mdk-stage1/bootsplash.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,25 @@
++/*
++ * Pixel (pixel@mandriva.com)
++ *
++ * Copyright 2004 Mandriva
++ *
++ * This software may be freely redistributed under the terms of the GNU
++ * public license.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++#ifndef _BOOTSPLASH_H_
++#define _BOOTSPLASH_H_
++
++#ifdef ENABLE_BOOTSPLASH
++void exit_bootsplash(void);
++void tell_bootsplash(char *cmd);
++#else
++#define exit_bootsplash()
++#endif
++
++#endif
+
+
+Property changes on: drakx/trunk/mdk-stage1/bootsplash.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1cdromc">Added: drakx/trunk/mdk-stage1/cdrom.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/cdrom.c (rev 0)
++++ drakx/trunk/mdk-stage1/cdrom.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,226 @@
++/*
++ * Guillaume Cottenceau (gc@mandriva.com)
++ *
++ * Copyright 2000 Mandriva
++ *
++ * This software may be freely redistributed under the terms of the GNU
++ * public license.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++/*
++ * Portions from Erik Troan (ewt@redhat.com)
++ *
++ * Copyright 1996 Red Hat Software
++ *
++ */
++
++#include &lt;stdlib.h&gt;
++#include &lt;unistd.h&gt;
++#include &lt;string.h&gt;
++#include &lt;stdio.h&gt;
++#include &lt;sys/mount.h&gt;
++#include &quot;stage1.h&quot;
++#include &quot;frontend.h&quot;
++#include &quot;modules.h&quot;
++#include &quot;probing.h&quot;
++#include &quot;log.h&quot;
++#include &quot;mount.h&quot;
++#include &quot;tools.h&quot;
++#include &quot;utils.h&quot;
++
++#include &quot;cdrom.h&quot;
++
++
++static int mount_that_cd_device(char * dev_name)
++{
++ char device_fullname[50];
++ int mount_result;
++
++ snprintf(device_fullname, sizeof(device_fullname), &quot;/dev/%s&quot;, dev_name);
++
++ mount_result = my_mount(device_fullname, MEDIA_LOCATION, &quot;iso9660&quot;, 0);
++
++ create_IMAGE_LOCATION(MEDIA_LOCATION);
++
++ return mount_result;
++}
++
++
++static enum return_type try_with_device(char * dev_name, char * dev_model);
++
++static enum return_type do_with_device(char * dev_name, char * dev_model)
++{
++ if (!image_has_stage2()) {
++ enum return_type results;
++ umount(MEDIA_LOCATION);
++ results = ask_yes_no(&quot;That CDROM disc does not seem to be a &quot; DISTRIB_NAME &quot; Installation CDROM.\nRetry with another disc?&quot;);
++ if (results == RETURN_OK)
++ return try_with_device(dev_name, dev_model);
++ return results;
++ }
++
++ log_message(&quot;found a &quot; DISTRIB_NAME &quot; CDROM, good news!&quot;);
++
++ may_load_compressed_image();
++
++ if (!KEEP_MOUNTED)
++ /* in rescue mode, we don't need the media anymore */
++ umount(MEDIA_LOCATION);
++
++ add_to_env(&quot;METHOD&quot;, &quot;cdrom&quot;);
++ return RETURN_OK;
++}
++
++static enum return_type try_with_device(char * dev_name, char * dev_model)
++{
++ wait_message(&quot;Trying to access a CDROM disc (drive %s)&quot;, dev_model);
++
++ if (mount_that_cd_device(dev_name) == -1) {
++ enum return_type results;
++ char msg[500];
++ unset_automatic(); /* we are in a fallback mode */
++ remove_wait_message();
++
++ snprintf(msg, sizeof(msg), &quot;I can't access a &quot; DISTRIB_NAME &quot; Installation disc in your CDROM drive (%s).\nRetry?&quot;, dev_model);
++ results = ask_yes_no(msg);
++ if (results == RETURN_OK)
++ return try_with_device(dev_name, dev_model);
++ return results;
++ }
++ remove_wait_message();
++
++ return do_with_device(dev_name, dev_model);
++}
++
++int try_automatic(char ** medias, char ** medias_models)
++{
++ static char * already_tried[50] = { NULL };
++ char ** model = medias_models;
++ char ** ptr = medias;
++ int i = 0;
++ while (ptr &amp;&amp; *ptr) {
++ char ** p;
++ for (p = already_tried; p &amp;&amp; *p; p++)
++ if (streq(*p, *ptr))
++ goto try_automatic_already_tried;
++ *p = strdup(*ptr);
++ *(p+1) = NULL;
++
++ wait_message(&quot;Trying to access &quot; DISTRIB_NAME &quot; CDROM disc (drive %s)&quot;, *model);
++ if (mount_that_cd_device(*ptr) != -1) {
++ if (image_has_stage2()) {
++ remove_wait_message();
++ return i;
++ }
++ else
++ umount(MEDIA_LOCATION);
++ }
++ remove_wait_message();
++
++ try_automatic_already_tried:
++ ptr++;
++ model++;
++ i++;
++ }
++ return -1;
++}
++
++enum return_type cdrom_prepare(void)
++{
++ char ** medias, ** ptr, ** medias_models;
++ char * choice;
++ int i, count = 0;
++ enum return_type results;
++ static int already_probed_ide_generic = 0;
++
++ my_insmod(&quot;ide_cd_mod&quot;, ANY_DRIVER_TYPE, NULL, 0);
++
++ if (IS_AUTOMATIC) {
++ get_medias(CDROM, &amp;medias, &amp;medias_models, BUS_IDE);
++ if ((i = try_automatic(medias, medias_models)) != -1)
++ return do_with_device(medias[i], medias_models[i]);
++
++ get_medias(CDROM, &amp;medias, &amp;medias_models, BUS_PCMCIA);
++ if ((i = try_automatic(medias, medias_models)) != -1)
++ return do_with_device(medias[i], medias_models[i]);
++
++ my_insmod(&quot;sr_mod&quot;, ANY_DRIVER_TYPE, NULL, 0);
++ get_medias(CDROM, &amp;medias, &amp;medias_models, BUS_SCSI);
++ if ((i = try_automatic(medias, medias_models)) != -1)
++ return do_with_device(medias[i], medias_models[i]);
++
++ get_medias(CDROM, &amp;medias, &amp;medias_models, BUS_USB);
++ if ((i = try_automatic(medias, medias_models)) != -1)
++ return do_with_device(medias[i], medias_models[i]);
++
++ /* detect hybrid isos (isos dumped to an USB stick) */
++ my_insmod(&quot;sd_mod&quot;, ANY_DRIVER_TYPE, NULL, 0);
++ get_medias(DISK, &amp;medias, &amp;medias_models, BUS_USB);
++ if ((i = try_automatic(medias, medias_models)) != -1) {
++ return do_with_device(medias[i], medias_models[i]);
++ }
++
++ unset_automatic();
++ } else
++ my_insmod(&quot;sr_mod&quot;, ANY_DRIVER_TYPE, NULL, 0);
++
++
++ get_medias(CDROM, &amp;medias, &amp;medias_models, BUS_ANY);
++ ptr = medias;
++ while (ptr &amp;&amp; *ptr) {
++ count++;
++ ptr++;
++ }
++
++ if (count == 0) {
++ if (!already_probed_ide_generic) {
++ already_probed_ide_generic = 1;
++ my_insmod(&quot;ide_generic&quot;, ANY_DRIVER_TYPE, NULL, 0);
++ return cdrom_prepare();
++ }
++ stg1_error_message(&quot;No CDROM device found.&quot;);
++ i = ask_insmod(MEDIA_ADAPTERS);
++ if (i == RETURN_BACK)
++ return RETURN_BACK;
++ return cdrom_prepare();
++ }
++
++ if (count == 1) {
++ results = try_with_device(*medias, *medias_models);
++ if (results == RETURN_OK)
++ return RETURN_OK;
++ i = ask_insmod(MEDIA_ADAPTERS);
++ if (i == RETURN_BACK)
++ return RETURN_BACK;
++ return cdrom_prepare();
++ }
++
++ results = ask_from_list_comments(&quot;Please choose the CDROM drive to use for the installation.&quot;, medias, medias_models, &amp;choice);
++ if (results == RETURN_OK) {
++ char ** model = medias_models;
++ ptr = medias;
++ while (ptr &amp;&amp; *ptr &amp;&amp; model &amp;&amp; *model) {
++ if (!strcmp(*ptr, choice))
++ break;
++ ptr++;
++ model++;
++ }
++ results = try_with_device(choice, *model);
++ } else
++ return results;
++
++ if (results == RETURN_OK)
++ return RETURN_OK;
++ if (results == RETURN_BACK)
++ return cdrom_prepare();
++
++ i = ask_insmod(MEDIA_ADAPTERS);
++ if (i == RETURN_BACK)
++ return RETURN_BACK;
++ return cdrom_prepare();
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/cdrom.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1cdromh">Added: drakx/trunk/mdk-stage1/cdrom.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/cdrom.h (rev 0)
++++ drakx/trunk/mdk-stage1/cdrom.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,29 @@
++/*
++ * Guillaume Cottenceau (gc@mandriva.com)
++ *
++ * Copyright 2000 Mandriva
++ *
++ * This software may be freely redistributed under the terms of the GNU
++ * public license.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++/*
++ * Portions from Erik Troan (ewt@redhat.com)
++ *
++ * Copyright 1996 Red Hat Software
++ *
++ */
++
++#ifndef _CDROM_H_
++#define _CDROM_H_
++
++#include &quot;stage1.h&quot;
++
++enum return_type cdrom_prepare(void);
++
++#endif
+
+
+Property changes on: drakx/trunk/mdk-stage1/cdrom.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1configstage1h">Added: drakx/trunk/mdk-stage1/config-stage1.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/config-stage1.h (rev 0)
++++ drakx/trunk/mdk-stage1/config-stage1.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,82 @@
++/*
++ * Guillaume Cottenceau (gc@mandriva.com)
++ *
++ * Copyright 2000 Mandriva
++ *
++ * This software may be freely redistributed under the terms of the GNU
++ * public license.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++#ifndef _CONFIG_STAGE1_H_
++#define _CONFIG_STAGE1_H_
++
++#ifdef _GNU_SOURCE
++# undef _GNU_SOURCE
++#endif
++#define _GNU_SOURCE 1
++
++
++/* If we have more than that amount of memory (in Mbytes), we assume we can load the second stage as a ramdisk */
++#define MEM_LIMIT_DRAKX 68
++/* If we have more than that amount of memory (in Mbytes), we preload the second stage as a ramdisk */
++#define MEM_LIMIT_DRAKX_PRELOAD 100
++
++/* If we have more than that amount of memory (in Mbytes), we assume we can load the rescue as a ramdisk */
++#define MEM_LIMIT_RESCUE 40
++/* If we have more than that amount of memory (in Mbytes), we preload the rescue as a ramdisk */
++#define MEM_LIMIT_RESCUE_PRELOAD 100
++
++#define KA_MAX_RETRY 5
++
++#define LIVE_LOCATION_REL &quot;install/stage2/live/&quot;
++#define COMPRESSED_LOCATION_REL &quot;install/stage2/&quot;
++#define COMPRESSED_STAGE2_NAME &quot;mdkinst.sqfs&quot;
++#define COMPRESSED_RESCUE_NAME &quot;rescue.sqfs&quot;
++#define COMPRESSED_NAME(prefix) (IS_RESCUE ? prefix COMPRESSED_RESCUE_NAME : prefix COMPRESSED_STAGE2_NAME)
++#define COMPRESSED_FILE_REL(prefix) COMPRESSED_NAME(prefix COMPRESSED_LOCATION_REL)
++
++/* the remote media is mounted in MEDIA_LOCATION, and
++ - IMAGE_LOCATION is a symlink image -&gt; image/mdk/mirror/dir
++ - IMAGE_LOCATION is a symlink image -&gt; loop/i586 and iso file is loopback mounted in LOOP_LOCATION
++ */
++#define MEDIA_LOCATION_REL &quot;media&quot;
++#define MEDIA_LOCATION IMAGE_LOCATION_DIR MEDIA_LOCATION_REL
++
++#define LOOP_LOCATION_REL &quot;loop&quot;
++#define LOOP_LOCATION IMAGE_LOCATION_DIR LOOP_LOCATION_REL
++
++#define IMAGE_LOCATION_REL &quot;image&quot;
++#define IMAGE_LOCATION_DIR &quot;/tmp/&quot;
++#define IMAGE_LOCATION IMAGE_LOCATION_DIR IMAGE_LOCATION_REL
++
++#define COMPRESSED_LOCATION IMAGE_LOCATION &quot;/&quot; COMPRESSED_LOCATION_REL
++
++/* - if we use a compressed image : STAGE2_LOCATION is a the mount point
++ - if we use the live: STAGE2_LOCATION is a relative symlink to image/install/stage2/live
++*/
++#define STAGE2_LOCATION &quot;/tmp/stage2&quot;
++
++
++/* user-definable (in Makefile): DISABLE_NETWORK, DISABLE_DISK, DISABLE_CDROM, DISABLE_PCMCIA */
++
++
++/* some factorizing for disabling more features */
++
++#ifdef DISABLE_DISK
++#ifdef DISABLE_CDROM
++#define DISABLE_MEDIAS
++#endif
++#endif
++
++/* path to mirror list for net install */
++#ifndef DISABLE_NETWORK
++#define MIRRORLIST_HOST &quot;api.mandriva.com&quot;
++#define MIRRORLIST_PATH &quot;/mirrors&quot;
++#endif
++
++#endif
+
+
+Property changes on: drakx/trunk/mdk-stage1/config-stage1.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1dhcpc">Added: drakx/trunk/mdk-stage1/dhcp.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/dhcp.c (rev 0)
++++ drakx/trunk/mdk-stage1/dhcp.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,678 @@
++/*
++ * Guillaume Cottenceau (gc@mandriva.com)
++ *
++ * Copyright 2000 Mandriva
++ *
++ * This software may be freely redistributed under the terms of the GNU
++ * public license.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++/*
++ * Portions from Erik Troan (ewt@redhat.com)
++ *
++ * Copyright 1996 Red Hat Software
++ *
++ */
++
++/*
++ * Portions from GRUB -- GRand Unified Bootloader
++ * Copyright (C) 2000 Free Software Foundation, Inc.
++ */
++
++
++#include &lt;stdlib.h&gt;
++#include &lt;unistd.h&gt;
++#include &lt;stdio.h&gt;
++#include &lt;string.h&gt;
++#include &lt;sys/socket.h&gt;
++#include &lt;sys/ioctl.h&gt;
++#include &lt;net/if.h&gt;
++#include &lt;arpa/inet.h&gt;
++#include &lt;net/route.h&gt;
++#include &lt;errno.h&gt;
++#include &lt;net/ethernet.h&gt;
++#include &lt;netinet/ip.h&gt;
++#include &lt;netinet/udp.h&gt;
++#include &lt;sys/time.h&gt;
++#include &lt;time.h&gt;
++#include &lt;fcntl.h&gt;
++#include &lt;sys/poll.h&gt;
++
++#include &quot;stage1.h&quot;
++#include &quot;log.h&quot;
++#include &quot;tools.h&quot;
++#include &quot;utils.h&quot;
++#include &quot;network.h&quot;
++#include &quot;frontend.h&quot;
++#include &quot;automatic.h&quot;
++
++#include &quot;dhcp.h&quot;
++
++
++typedef int bp_int32;
++typedef short bp_int16;
++
++#define BOOTP_OPTION_NETMASK 1
++#define BOOTP_OPTION_GATEWAY 3
++#define BOOTP_OPTION_DNS 6
++#define BOOTP_OPTION_HOSTNAME 12
++#define BOOTP_OPTION_DOMAIN 15
++#define BOOTP_OPTION_BROADCAST 28
++
++#define DHCP_OPTION_REQADDR 50
++#define DHCP_OPTION_LEASE 51
++#define DHCP_OPTION_TYPE 53
++#define DHCP_OPTION_SERVER 54
++#define DHCP_OPTION_OPTIONREQ 55
++#define DHCP_OPTION_MAXSIZE 57
++
++#define DHCP_OPTION_CLIENT_IDENTIFIER 61
++
++#define BOOTP_CLIENT_PORT 68
++#define BOOTP_SERVER_PORT 67
++
++#define BOOTP_OPCODE_REQUEST 1
++#define BOOTP_OPCODE_REPLY 2
++
++#define DHCP_TYPE_DISCOVER 1
++#define DHCP_TYPE_OFFER 2
++#define DHCP_TYPE_REQUEST 3
++#define DHCP_TYPE_ACK 5
++#define DHCP_TYPE_RELEASE 7
++
++#define BOOTP_VENDOR_LENGTH 64
++#define DHCP_VENDOR_LENGTH 340
++
++struct bootp_request {
++ char opcode;
++ char hw;
++ char hwlength;
++ char hopcount;
++ bp_int32 id;
++ bp_int16 secs;
++ bp_int16 flags;
++ bp_int32 ciaddr, yiaddr, server_ip, bootp_gw_ip;
++ char hwaddr[16];
++ char servername[64];
++ char bootfile[128];
++ char vendor[DHCP_VENDOR_LENGTH];
++} ;
++
++static const char vendor_cookie[] = { 99, 130, 83, 99, 255 };
++
++
++static unsigned int verify_checksum(void * buf2, int length2)
++{
++ unsigned int csum = 0;
++ unsigned short * sp;
++
++ for (sp = (unsigned short *) buf2; length2 &gt; 0; (length2 -= 2), sp++)
++ csum += *sp;
++
++ while (csum &gt;&gt; 16)
++ csum = (csum &amp; 0xffff) + (csum &gt;&gt; 16);
++
++ return (csum == 0xffff);
++}
++
++
++static int initial_setup_interface(char * device, int s) {
++ struct sockaddr_in * addrp;
++ struct ifreq req;
++ struct rtentry route;
++ int true = 1;
++
++ addrp = (struct sockaddr_in *) &amp;req.ifr_addr;
++
++ strcpy(req.ifr_name, device);
++ addrp-&gt;sin_family = AF_INET;
++ addrp-&gt;sin_port = 0;
++ memset(&amp;addrp-&gt;sin_addr, 0, sizeof(addrp-&gt;sin_addr));
++
++ req.ifr_flags = 0; /* take it down */
++ if (ioctl(s, SIOCSIFFLAGS, &amp;req)) {
++ log_perror(&quot;SIOCSIFFLAGS (downing)&quot;);
++ return -1;
++ }
++
++ addrp-&gt;sin_family = AF_INET;
++ addrp-&gt;sin_addr.s_addr = htonl(0);
++ if (ioctl(s, SIOCSIFADDR, &amp;req)) {
++ log_perror(&quot;SIOCSIFADDR&quot;);
++ return -1;
++ }
++
++ req.ifr_flags = IFF_UP | IFF_BROADCAST | IFF_RUNNING;
++ if (ioctl(s, SIOCSIFFLAGS, &amp;req)) {
++ log_perror(&quot;SIOCSIFFLAGS (upping)&quot;);
++ return -1;
++ }
++
++ memset(&amp;route, 0, sizeof(route));
++ memcpy(&amp;route.rt_gateway, addrp, sizeof(*addrp));
++
++ addrp-&gt;sin_family = AF_INET;
++ addrp-&gt;sin_port = 0;
++ addrp-&gt;sin_addr.s_addr = INADDR_ANY;
++ memcpy(&amp;route.rt_dst, addrp, sizeof(*addrp));
++ memcpy(&amp;route.rt_genmask, addrp, sizeof(*addrp));
++
++ route.rt_dev = device;
++ route.rt_flags = RTF_UP;
++ route.rt_metric = 0;
++
++ if (ioctl(s, SIOCADDRT, &amp;route)) {
++ if (errno != EEXIST) {
++ close(s);
++ log_perror(&quot;SIOCADDRT&quot;);
++ return -1;
++ }
++ }
++
++ if (setsockopt(s, SOL_SOCKET, SO_BROADCAST, &amp;true, sizeof(true))) {
++ close(s);
++ log_perror(&quot;setsockopt&quot;);
++ return -1;
++ }
++
++ /* I need to sleep a bit in order for kernel to finish init of the
++ network device; this would allow to not send further multiple
++ dhcp requests when only one is needed. */
++ wait_message(&quot;Bringing up networking...&quot;);
++ sleep(2);
++ remove_wait_message();
++
++ return 0;
++}
++
++
++void set_missing_ip_info(struct interface_info * intf)
++{
++ bp_int32 ipNum = *((bp_int32 *) &amp;intf-&gt;ip);
++ bp_int32 nmNum;
++
++ if (intf-&gt;netmask.s_addr == 0)
++ inet_aton(guess_netmask(inet_ntoa(intf-&gt;ip)), &amp;intf-&gt;netmask);
++
++ nmNum = *((bp_int32 *) &amp;intf-&gt;netmask);
++
++ if (intf-&gt;broadcast.s_addr == 0)
++ *((bp_int32 *) &amp;intf-&gt;broadcast) = (ipNum &amp; nmNum) | ~(nmNum);
++
++ if (intf-&gt;network.s_addr == 0)
++ *((bp_int32 *) &amp;intf-&gt;network) = ipNum &amp; nmNum;
++}
++
++static void parse_reply(struct bootp_request * breq, struct interface_info * intf)
++{
++ unsigned char * chptr;
++ unsigned char option, length;
++
++ if (breq-&gt;bootfile &amp;&amp; strlen(breq-&gt;bootfile) &gt; 0) {
++ if (IS_NETAUTO)
++ add_to_env(&quot;KICKSTART&quot;, breq-&gt;bootfile);
++ else
++ log_message(&quot;warning: ignoring `bootfile' DHCP server parameter, since `netauto' boot parameter was not given; reboot with `linux netauto' (and anymore useful boot parameters) if you want `bootfile' to be used as a `auto_inst.cfg.pl' stage2 configuration file&quot;);
++ }
++
++ memcpy(&amp;intf-&gt;ip, &amp;breq-&gt;yiaddr, 4);
++
++ chptr = (unsigned char *) breq-&gt;vendor;
++ chptr += 4;
++ while (*chptr != 0xFF &amp;&amp; (void *) chptr &lt; (void *) breq-&gt;vendor + DHCP_VENDOR_LENGTH) {
++ char tmp_str[500];
++ option = *chptr++;
++ if (!option)
++ continue;
++ length = *chptr++;
++
++ switch (option) {
++ case BOOTP_OPTION_DNS:
++ memcpy(&amp;dns_server, chptr, sizeof(dns_server));
++ log_message(&quot;got dns %s&quot;, inet_ntoa(dns_server));
++ if (length &gt;= sizeof(dns_server)*2) {
++ memcpy(&amp;dns_server2, chptr+sizeof(dns_server), sizeof(dns_server2));
++ log_message(&quot;got dns2 %s&quot;, inet_ntoa(dns_server2));
++ }
++ break;
++
++ case BOOTP_OPTION_NETMASK:
++ memcpy(&amp;intf-&gt;netmask, chptr, sizeof(intf-&gt;netmask));
++ log_message(&quot;got netmask %s&quot;, inet_ntoa(intf-&gt;netmask));
++ break;
++
++ case BOOTP_OPTION_DOMAIN:
++ memcpy(tmp_str, chptr, length);
++ tmp_str[length] = '\0';
++ domain = strdup(tmp_str);
++ log_message(&quot;got domain %s&quot;, domain);
++ break;
++
++ case BOOTP_OPTION_BROADCAST:
++ memcpy(&amp;intf-&gt;broadcast, chptr, sizeof(intf-&gt;broadcast));
++ log_message(&quot;got broadcast %s&quot;, inet_ntoa(intf-&gt;broadcast));
++ break;
++
++ case BOOTP_OPTION_GATEWAY:
++ memcpy(&amp;gateway, chptr, sizeof(gateway));
++ log_message(&quot;got gateway %s&quot;, inet_ntoa(gateway));
++ break;
++
++ }
++
++ chptr += length;
++ }
++
++ set_missing_ip_info(intf);
++}
++
++
++static void init_vendor_codes(struct bootp_request * breq) {
++ memcpy(breq-&gt;vendor, vendor_cookie, sizeof(vendor_cookie));
++}
++
++static char gen_hwaddr[16];
++
++static int prepare_request(struct bootp_request * breq, int sock, char * device)
++{
++ struct ifreq req;
++
++ memset(breq, 0, sizeof(*breq));
++
++ breq-&gt;opcode = BOOTP_OPCODE_REQUEST;
++
++ strcpy(req.ifr_name, device);
++ if (ioctl(sock, SIOCGIFHWADDR, &amp;req)) {
++ log_perror(&quot;SIOCSIFHWADDR&quot;);
++ return -1;
++ }
++
++ breq-&gt;hw = req.ifr_hwaddr.sa_family;
++ breq-&gt;hwlength = IFHWADDRLEN;
++ memcpy(breq-&gt;hwaddr, req.ifr_hwaddr.sa_data, IFHWADDRLEN);
++ memcpy(gen_hwaddr, req.ifr_hwaddr.sa_data, IFHWADDRLEN);
++
++ breq-&gt;hopcount = 0;
++
++ init_vendor_codes(breq);
++
++ return 0;
++}
++
++static int get_vendor_code(struct bootp_request * bresp, unsigned char option, void * data)
++{
++ unsigned char * chptr;
++ unsigned int length, theOption;
++
++ chptr = (unsigned char*) bresp-&gt;vendor + 4;
++ while (*chptr != 0xFF &amp;&amp; *chptr != option) {
++ theOption = *chptr++;
++ if (!theOption)
++ continue;
++ length = *chptr++;
++ chptr += length;
++ }
++
++ if (*chptr++ == 0xff)
++ return 1;
++
++ length = *chptr++;
++ memcpy(data, chptr, length);
++
++ return 0;
++}
++
++
++static unsigned long currticks(void)
++{
++ struct timeval tv;
++ unsigned long csecs;
++ unsigned long ticks_per_csec, ticks_per_usec;
++
++ /* Note: 18.2 ticks/sec. */
++
++ gettimeofday (&amp;tv, 0);
++ csecs = tv.tv_sec / 10;
++ ticks_per_csec = csecs * 182;
++ ticks_per_usec = (((tv.tv_sec - csecs * 10) * 1000000 + tv.tv_usec) * 182 / 10000000);
++ return ticks_per_csec + ticks_per_usec;
++}
++
++
++#define BACKOFF_LIMIT 7
++#define TICKS_PER_SEC 18
++#define MAX_ARP_RETRIES 7
++
++static void rfc951_sleep(int exp)
++{
++ static long seed = 0;
++ long q;
++ unsigned long tmo;
++
++ if (exp &gt; BACKOFF_LIMIT)
++ exp = BACKOFF_LIMIT;
++
++ if (!seed)
++ /* Initialize linear congruential generator. */
++ seed = (currticks () + *(long *) &amp;gen_hwaddr + ((short *) gen_hwaddr)[2]);
++
++ /* Simplified version of the LCG given in Bruce Scheier's
++ &quot;Applied Cryptography&quot;. */
++ q = seed / 53668;
++ if ((seed = 40014 * (seed - 53668 * q) - 12211 * q) &lt; 0)
++ seed += 2147483563l;
++
++ /* Compute mask. */
++ for (tmo = 63; tmo &lt;= 60 * TICKS_PER_SEC &amp;&amp; --exp &gt; 0; tmo = 2 * tmo + 1)
++ ;
++
++ /* Sleep. */
++ log_message(&quot;&lt;sleep&gt;&quot;);
++
++ for (tmo = (tmo &amp; seed) + currticks (); currticks () &lt; tmo;);
++}
++
++
++static int handle_transaction(int s, struct bootp_request * breq, struct bootp_request * bresp,
++ struct sockaddr_in * server_addr, int dhcp_type)
++{
++ struct pollfd polls;
++ int i, j;
++ int retry = 1;
++ int sin;
++ char eth_packet[ETH_FRAME_LEN];
++ struct iphdr * ip_hdr;
++ struct udphdr * udp_hdr;
++ unsigned char type;
++ unsigned long starttime;
++ int timeout = 1;
++
++ breq-&gt;id = starttime = currticks();
++ breq-&gt;secs = 0;
++
++ sin = socket(AF_PACKET, SOCK_DGRAM, ntohs(ETH_P_IP));
++ if (sin &lt; 0) {
++ log_perror(&quot;af_packet socket&quot;);
++ return -1;
++ }
++
++ while (retry &lt;= MAX_ARP_RETRIES) {
++ i = sizeof(*breq);
++
++ if (sendto(s, breq, i, 0, (struct sockaddr *) server_addr, sizeof(*server_addr)) != i) {
++ close(s);
++ log_perror(&quot;sendto&quot;);
++ return -1;
++ }
++
++ polls.fd = sin;
++ polls.events = POLLIN;
++
++ while (poll(&amp;polls, 1, timeout*1000) == 1) {
++
++ if ((j = recv(sin, eth_packet, sizeof(eth_packet), 0)) == -1) {
++ log_perror(&quot;recv&quot;);
++ continue;
++ }
++
++ /* We need to do some basic sanity checking of the header */
++ if (j &lt; (signed)(sizeof(*ip_hdr) + sizeof(*udp_hdr)))
++ continue;
++
++ ip_hdr = (void *) eth_packet;
++ if (!verify_checksum(ip_hdr, sizeof(*ip_hdr)))
++ continue;
++
++ if (ntohs(ip_hdr-&gt;tot_len) &gt; j)
++ continue;
++
++ j = ntohs(ip_hdr-&gt;tot_len);
++
++ if (ip_hdr-&gt;protocol != IPPROTO_UDP)
++ continue;
++
++ udp_hdr = (void *) (eth_packet + sizeof(*ip_hdr));
++
++ if (ntohs(udp_hdr-&gt;source) != BOOTP_SERVER_PORT)
++ continue;
++
++ if (ntohs(udp_hdr-&gt;dest) != BOOTP_CLIENT_PORT)
++ continue;
++ /* Go on with this packet; it looks sane */
++
++ /* Originally copied sizeof (*bresp) - this is a security
++ problem due to a potential underflow of the source
++ buffer. Also, it trusted that the packet was properly
++ 0xFF terminated, which is not true in the case of the
++ DHCP server on Cisco 800 series ISDN router. */
++
++ memset (bresp, 0xFF, sizeof (*bresp));
++ memcpy (bresp, (char *) udp_hdr + sizeof (*udp_hdr), j - sizeof (*ip_hdr) - sizeof (*udp_hdr));
++
++ /* sanity checks */
++ if (bresp-&gt;id != breq-&gt;id)
++ continue;
++ if (bresp-&gt;opcode != BOOTP_OPCODE_REPLY)
++ continue;
++ if (bresp-&gt;hwlength != breq-&gt;hwlength)
++ continue;
++ if (memcmp(bresp-&gt;hwaddr, breq-&gt;hwaddr, bresp-&gt;hwlength))
++ continue;
++ if (get_vendor_code(bresp, DHCP_OPTION_TYPE, &amp;type) || type != dhcp_type)
++ continue;
++ if (memcmp(bresp-&gt;vendor, vendor_cookie, 4))
++ continue;
++ return 0;
++ }
++ rfc951_sleep(retry);
++ breq-&gt;secs = htons ((currticks () - starttime) / 20);
++ retry++;
++ timeout *= 2;
++ if (timeout &gt; 5)
++ timeout = 5;
++ }
++
++ return -1;
++}
++
++static void add_vendor_code(struct bootp_request * breq, unsigned char option, unsigned char length, void * data)
++{
++ unsigned char * chptr;
++ int theOption, theLength;
++
++ chptr = (unsigned char*) breq-&gt;vendor;
++ chptr += 4;
++ while (*chptr != 0xFF &amp;&amp; *chptr != option) {
++ theOption = *chptr++;
++ if (!theOption) continue;
++ theLength = *chptr++;
++ chptr += theLength;
++ }
++
++ *chptr++ = option;
++ *chptr++ = length;
++ memcpy(chptr, data, length);
++ chptr[length] = 0xff;
++}
++
++
++char * dhcp_hostname = NULL;
++char * dhcp_domain = NULL;
++
++enum return_type perform_dhcp(struct interface_info * intf)
++{
++ int s, i;
++ struct sockaddr_in server_addr;
++ struct sockaddr_in client_addr;
++ struct sockaddr_in broadcast_addr;
++ struct bootp_request breq, bresp;
++ unsigned char messageType;
++ unsigned int lease;
++ short aShort;
++ int num_options;
++ char requested_options[50];
++ char * client_id_str, * client_id_hwaddr;
++
++ s = socket(AF_INET, SOCK_DGRAM, 0);
++ if (s &lt; 0) {
++ log_perror(&quot;socket&quot;);
++ return RETURN_ERROR;
++ }
++
++ {
++ enum return_type results;
++ char * questions[] = { &quot;Host name&quot;, &quot;Domain name&quot;, NULL };
++ char * questions_auto[] = { &quot;hostname&quot;, &quot;domain&quot; };
++ static char ** answers = NULL;
++ char * boulet;
++
++ client_id_str = client_id_hwaddr = NULL;
++
++ results = ask_from_entries_auto(&quot;If the DHCP server needs to know you by name; please fill in this information. &quot;
++ &quot;Valid answers are for example: `mybox' for hostname and `mynetwork.com' for &quot;
++ &quot;domain name, for a machine called `mybox.mynetwork.com' on the Internet.&quot;,
++ questions, &amp;answers, 32, questions_auto, NULL);
++ if (results == RETURN_OK)
++ {
++ dhcp_hostname = answers[0];
++ if ((boulet = strchr(dhcp_hostname, '.')) != NULL)
++ boulet[0] = '\0';
++ dhcp_domain = answers[1];
++
++ if (*dhcp_hostname &amp;&amp; *dhcp_domain) {
++ /* if we have both, then create client id from them */
++ client_id_str = malloc(1 + strlen(dhcp_hostname) + 1 + strlen(dhcp_domain) + 1);
++ client_id_str[0] = '\0';
++ sprintf(client_id_str+1, &quot;%s.%s&quot;, dhcp_hostname, dhcp_domain);
++ }
++ }
++ }
++
++ if (initial_setup_interface(intf-&gt;device, s) != 0) {
++ close(s);
++ return RETURN_ERROR;
++ }
++
++ if (prepare_request(&amp;breq, s, intf-&gt;device) != 0) {
++ close(s);
++ return RETURN_ERROR;
++ }
++
++ messageType = DHCP_TYPE_DISCOVER;
++ add_vendor_code(&amp;breq, DHCP_OPTION_TYPE, 1, &amp;messageType);
++
++ /* add pieces needed to have DDNS/DHCP IP selection based on requested name */
++ if (dhcp_hostname &amp;&amp; *dhcp_hostname) { /* pick client id form based on absence or presence of domain name */
++ if (*dhcp_domain) /* alternate style &lt;hostname&gt;.&lt;domainname&gt; */
++ add_vendor_code(&amp;breq, DHCP_OPTION_CLIENT_IDENTIFIER, strlen(client_id_str+1)+1, client_id_str);
++ else { /* usual style (aka windows / dhcpcd) */
++ /* but put MAC in form required for client identifier first */
++ client_id_hwaddr = malloc(IFHWADDRLEN+2);
++ /* (from pump-0.8.22/dhcp.c)
++ * Microsoft uses a client identifier field of the 802.3 address with a
++ * pre-byte of a &quot;1&quot;. In order to re-use the DHCP address that they set
++ * for this interface, we have to mimic their identifier.
++ */
++ client_id_hwaddr[0] = 1; /* set flag for ethernet */
++ memcpy(client_id_hwaddr+1, gen_hwaddr, IFHWADDRLEN);
++ add_vendor_code(&amp;breq, DHCP_OPTION_CLIENT_IDENTIFIER, IFHWADDRLEN+1, client_id_hwaddr);
++ }
++ /* this is the one that the dhcp server really wants for DDNS updates */
++ add_vendor_code(&amp;breq, BOOTP_OPTION_HOSTNAME, strlen(dhcp_hostname), dhcp_hostname);
++ log_message(&quot;DHCP: telling server to use name = %s&quot;, dhcp_hostname);
++ }
++
++ memset(&amp;client_addr.sin_addr, 0, sizeof(&amp;client_addr.sin_addr));
++ client_addr.sin_family = AF_INET;
++ client_addr.sin_port = htons(BOOTP_CLIENT_PORT); /* bootp client */
++
++ if (bind(s, (struct sockaddr *) &amp;client_addr, sizeof(client_addr))) {
++ log_perror(&quot;bind&quot;);
++ return RETURN_ERROR;
++ }
++
++ broadcast_addr.sin_family = AF_INET;
++ broadcast_addr.sin_port = htons(BOOTP_SERVER_PORT); /* bootp server */
++ memset(&amp;broadcast_addr.sin_addr, 0xff, sizeof(broadcast_addr.sin_addr)); /* broadcast */
++
++ log_message(&quot;DHCP: sending DISCOVER&quot;);
++
++ wait_message(&quot;Sending DHCP request...&quot;);
++ i = handle_transaction(s, &amp;breq, &amp;bresp, &amp;broadcast_addr, DHCP_TYPE_OFFER);
++ remove_wait_message();
++
++ if (i != 0) {
++ stg1_error_message(&quot;No DHCP reply received.&quot;);
++ close(s);
++ return RETURN_ERROR;
++ }
++
++ server_addr.sin_family = AF_INET;
++ server_addr.sin_port = htons(BOOTP_SERVER_PORT); /* bootp server */
++ if (get_vendor_code(&amp;bresp, DHCP_OPTION_SERVER, &amp;server_addr.sin_addr)) {
++ close(s);
++ log_message(&quot;DHCPOFFER didn't include server address&quot;);
++ return RETURN_ERROR;
++ }
++
++ init_vendor_codes(&amp;breq);
++ messageType = DHCP_TYPE_REQUEST;
++ add_vendor_code(&amp;breq, DHCP_OPTION_TYPE, 1, &amp;messageType);
++ add_vendor_code(&amp;breq, DHCP_OPTION_SERVER, 4, &amp;server_addr.sin_addr);
++ add_vendor_code(&amp;breq, DHCP_OPTION_REQADDR, 4, &amp;bresp.yiaddr);
++
++ /* if used the first time, then have to use it again */
++ if (dhcp_hostname &amp;&amp; *dhcp_hostname) { /* add pieces needed to have DDNS/DHCP IP selection based on requested name */
++ if (dhcp_domain &amp;&amp; *dhcp_domain) /* alternate style */
++ add_vendor_code(&amp;breq, DHCP_OPTION_CLIENT_IDENTIFIER, strlen(client_id_str+1)+1, client_id_str);
++ else /* usual style (aka windows / dhcpcd) */
++ add_vendor_code(&amp;breq, DHCP_OPTION_CLIENT_IDENTIFIER, IFHWADDRLEN+1, client_id_hwaddr);
++ /* this is the one that the dhcp server really wants for DDNS updates */
++ add_vendor_code(&amp;breq, BOOTP_OPTION_HOSTNAME, strlen(dhcp_hostname), dhcp_hostname);
++ }
++
++ aShort = ntohs(sizeof(struct bootp_request));
++ add_vendor_code(&amp;breq, DHCP_OPTION_MAXSIZE, 2, &amp;aShort);
++
++ num_options = 0;
++ requested_options[num_options++] = BOOTP_OPTION_NETMASK;
++ requested_options[num_options++] = BOOTP_OPTION_GATEWAY;
++ requested_options[num_options++] = BOOTP_OPTION_DNS;
++ requested_options[num_options++] = BOOTP_OPTION_DOMAIN;
++ requested_options[num_options++] = BOOTP_OPTION_BROADCAST;
++ add_vendor_code(&amp;breq, DHCP_OPTION_OPTIONREQ, num_options, requested_options);
++
++ /* request a lease of 1 hour */
++ i = htonl(60 * 60);
++ add_vendor_code(&amp;breq, DHCP_OPTION_LEASE, 4, &amp;i);
++
++ log_message(&quot;DHCP: sending REQUEST&quot;);
++
++ i = handle_transaction(s, &amp;breq, &amp;bresp, &amp;broadcast_addr, DHCP_TYPE_ACK);
++
++ if (i != 0) {
++ close(s);
++ return RETURN_ERROR;
++ }
++
++ if (get_vendor_code(&amp;bresp, DHCP_OPTION_LEASE, &amp;lease)) {
++ log_message(&quot;failed to get lease time\n&quot;);
++ return RETURN_ERROR;
++ }
++ lease = ntohl(lease);
++
++ close(s);
++
++ intf-&gt;netmask.s_addr = 0;
++ intf-&gt;broadcast.s_addr = 0;
++ intf-&gt;network.s_addr = 0;
++
++ parse_reply(&amp;bresp, intf);
++
++ return RETURN_OK;
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/dhcp.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1dhcph">Added: drakx/trunk/mdk-stage1/dhcp.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/dhcp.h (rev 0)
++++ drakx/trunk/mdk-stage1/dhcp.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,37 @@
++/*
++ * Guillaume Cottenceau (gc@mandriva.com)
++ *
++ * Copyright 2000 Mandriva
++ *
++ * View the homepage: http://us.mandriva.com/~gc/html/stage1.html
++ *
++ *
++ * This software may be freely redistributed under the terms of the GNU
++ * public license.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++/*
++ * Portions from GRUB -- GRand Unified Bootloader
++ * Copyright (C) 2000 Free Software Foundation, Inc.
++ *
++ * Itself based on etherboot-4.6.4 by Martin Renters.
++ *
++ */
++
++#ifndef _DHCP_H_
++#define _DHCP_H_
++
++#include &quot;stage1.h&quot;
++#include &quot;network.h&quot;
++
++enum return_type perform_dhcp(struct interface_info * intf);
++
++extern char * dhcp_hostname;
++extern char * dhcp_domain;
++
++#endif
+
+
+Property changes on: drakx/trunk/mdk-stage1/dhcp.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1directoryc">Added: drakx/trunk/mdk-stage1/directory.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/directory.c (rev 0)
++++ drakx/trunk/mdk-stage1/directory.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,169 @@
++/*
++ * Guillaume Cottenceau (gc@mandriva.com)
++ * Olivier Blin (oblin@mandriva.com)
++ *
++ * Copyright 2000 Mandriva
++ *
++ * This software may be freely redistributed under the terms of the GNU
++ * public license.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++/*
++ * Portions from Erik Troan (ewt@redhat.com)
++ *
++ * Copyright 1996 Red Hat Software
++ *
++ */
++
++#include &lt;unistd.h&gt;
++#include &lt;sys/mount.h&gt;
++#include &lt;sys/stat.h&gt;
++#include &lt;string.h&gt;
++#include &lt;libgen.h&gt;
++#include &quot;stage1.h&quot;
++#include &quot;frontend.h&quot;
++#include &quot;log.h&quot;
++#include &quot;tools.h&quot;
++#include &quot;utils.h&quot;
++#include &quot;lomount.h&quot;
++
++char * extract_list_directory(char * direct)
++{
++ char ** full = list_directory(direct);
++ char tmp[20000] = &quot;&quot;;
++ int i;
++ for (i=0; i&lt;50 ; i++) {
++ if (!full || !*full)
++ break;
++ strcat(tmp, *full);
++ strcat(tmp, &quot;\n&quot;);
++ full++;
++ }
++ return strdup(tmp);
++}
++
++static void choose_iso_in_directory(char *directory, char *location_full)
++{
++ char **file;
++ char *stage2_isos[100] = { &quot;Use directory as a mirror tree&quot;, &quot;-----&quot; };
++ int stage2_iso_number = 2;
++
++ log_message(&quot;\&quot;%s\&quot; exists and is a directory, looking for iso files&quot;, directory);
++
++ for (file = list_directory(directory); *file; file++) {
++ char isofile[500];
++ char * loopdev = NULL;
++
++ if (strstr(*file, &quot;.iso&quot;) != *file + strlen(*file) - 4)
++ /* file doesn't end in .iso, skipping */
++ continue;
++
++ strcpy(isofile, directory);
++ strcat(isofile, &quot;/&quot;);
++ strcat(isofile, *file);
++
++ if (lomount(isofile, LOOP_LOCATION, &amp;loopdev, 0)) {
++ log_message(&quot;unable to mount iso file \&quot;%s\&quot;, skipping&quot;, isofile);
++ continue;
++ }
++ symlink(LOOP_LOCATION_REL &quot;/&quot; ARCH, IMAGE_LOCATION);
++
++ if (image_has_stage2()) {
++ log_message(&quot;stage2 installer found in ISO image \&quot;%s\&quot;&quot;, isofile);
++ stage2_isos[stage2_iso_number++] = strdup(*file);
++ } else {
++ log_message(&quot;ISO image \&quot;%s\&quot; doesn't contain stage2 installer&quot;, isofile);
++ }
++
++ unlink(IMAGE_LOCATION);
++ umount(LOOP_LOCATION);
++ del_loop(loopdev);
++ }
++
++ stage2_isos[stage2_iso_number] = NULL;
++
++ if (stage2_iso_number &gt; 2) {
++ enum return_type results;
++ do {
++ results = ask_from_list(&quot;Please choose the ISO image to be used to install the &quot;
++ DISTRIB_NAME &quot; Distribution.&quot;,
++ stage2_isos, file);
++ if (results == RETURN_BACK) {
++ return;
++ } else if (results == RETURN_OK) {
++ if (!strcmp(*file, stage2_isos[0])) {
++ /* use directory as a mirror tree */
++ continue;
++ } else if (!strcmp(*file, stage2_isos[1])) {
++ /* the separator has been selected */
++ results = RETURN_ERROR;
++ continue;
++ } else {
++ /* use selected ISO image */
++ strcat(location_full, &quot;/&quot;);
++ strcat(location_full, *file);
++ log_message(&quot;installer will use ISO image \&quot;%s\&quot;&quot;, location_full);
++ }
++ }
++ } while (results == RETURN_ERROR);
++ } else {
++ log_message(&quot;no ISO image found in \&quot;%s\&quot; directory&quot;, location_full);
++ }
++}
++
++
++enum return_type try_with_directory(char *directory, char *method_live, char *method_iso) {
++ char location_full[500];
++ char * loopdev = NULL;
++ struct stat statbuf;
++ enum return_type ret = RETURN_OK;
++
++ unlink(IMAGE_LOCATION);
++ strcpy(location_full, directory);
++
++ if (!stat(directory, &amp;statbuf) &amp;&amp; S_ISDIR(statbuf.st_mode)) {
++ choose_iso_in_directory(directory, location_full);
++ }
++
++ loopdev = NULL;
++ if (!stat(location_full, &amp;statbuf) &amp;&amp; !S_ISDIR(statbuf.st_mode)) {
++ log_message(&quot;%s exists and is not a directory, assuming this is an ISO image&quot;, location_full);
++ if (lomount(location_full, LOOP_LOCATION, &amp;loopdev, 0)) {
++ stg1_error_message(&quot;Could not mount file %s as an ISO image of the &quot; DISTRIB_NAME &quot; Distribution.&quot;, location_full);
++ return RETURN_ERROR;
++ }
++ symlink(LOOP_LOCATION_REL &quot;/&quot; ARCH, IMAGE_LOCATION);
++ add_to_env(&quot;ISOPATH&quot;, location_full);
++ add_to_env(&quot;METHOD&quot;, method_iso);
++ } else {
++ create_IMAGE_LOCATION(location_full);
++ add_to_env(&quot;METHOD&quot;, method_live);
++ }
++
++ if (access(IMAGE_LOCATION &quot;/&quot; COMPRESSED_LOCATION_REL, R_OK)) {
++ stg1_error_message(&quot;I can't find the &quot; DISTRIB_NAME &quot; Distribution in the specified directory. &quot;
++ &quot;(I need the subdirectory &quot; COMPRESSED_LOCATION_REL &quot;)\n&quot;
++ &quot;Here's a short extract of the files in the directory:\n&quot;
++ &quot;%s&quot;, extract_list_directory(IMAGE_LOCATION));
++ ret = RETURN_BACK;
++ } else if (may_load_compressed_image() != RETURN_OK) {
++ stg1_error_message(&quot;Could not load program into memory.&quot;);
++ ret = RETURN_ERROR;
++ }
++
++ if (ret == RETURN_OK)
++ log_message(&quot;found the &quot; DISTRIB_NAME &quot; Installation, good news!&quot;);
++
++ if (!KEEP_MOUNTED || ret != RETURN_OK) {
++ /* in rescue mode, we don't need the media anymore */
++ umount(LOOP_LOCATION);
++ del_loop(loopdev);
++ }
++
++ return ret;
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/directory.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1directoryh">Added: drakx/trunk/mdk-stage1/directory.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/directory.h (rev 0)
++++ drakx/trunk/mdk-stage1/directory.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,29 @@
++/*
++ * Guillaume Cottenceau (gc@mandriva.com)
++ * Olivier Blin (oblin@mandriva.com)
++ *
++ * Copyright 2000 Mandriva
++ *
++ * This software may be freely redistributed under the terms of the GNU
++ * public license.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++/*
++ * Portions from Erik Troan (ewt@redhat.com)
++ *
++ * Copyright 1996 Red Hat Software
++ *
++ */
++
++#ifndef _DIRECTORY_H_
++#define _DIRECTORY_H_
++
++char * extract_list_directory(char * direct);
++enum return_type try_with_directory(char *location_full, char *method_live, char *method_iso);
++
++#endif
+
+
+Property changes on: drakx/trunk/mdk-stage1/directory.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1diskc">Added: drakx/trunk/mdk-stage1/disk.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/disk.c (rev 0)
++++ drakx/trunk/mdk-stage1/disk.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,228 @@
++/*
++ * Guillaume Cottenceau (gc@mandriva.com)
++ *
++ * Copyright 2000 Mandriva
++ *
++ * This software may be freely redistributed under the terms of the GNU
++ * public license.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++/*
++ * Portions from Erik Troan (ewt@redhat.com)
++ *
++ * Copyright 1996 Red Hat Software
++ *
++ */
++
++#include &lt;stdlib.h&gt;
++#include &lt;unistd.h&gt;
++#include &lt;stdio.h&gt;
++#include &lt;string.h&gt;
++#include &lt;sys/mount.h&gt;
++#include &lt;sys/stat.h&gt;
++#include &lt;fcntl.h&gt;
++#include &lt;string.h&gt;
++#include &lt;libgen.h&gt;
++#include &quot;stage1.h&quot;
++#include &quot;frontend.h&quot;
++#include &quot;modules.h&quot;
++#include &quot;probing.h&quot;
++#include &quot;log.h&quot;
++#include &quot;tools.h&quot;
++#include &quot;utils.h&quot;
++#include &quot;mount.h&quot;
++#include &quot;automatic.h&quot;
++#include &quot;directory.h&quot;
++#include &quot;partition.h&quot;
++
++#include &quot;disk.h&quot;
++
++static enum return_type try_automatic_with_partition(char *dev) {
++ enum return_type results;
++ int mounted;
++ wait_message(&quot;Trying to access &quot; DISTRIB_NAME &quot; disk (partition %s)&quot;, dev);
++ mounted = !try_mount(dev, MEDIA_LOCATION);
++ remove_wait_message();
++ if (mounted) {
++ create_IMAGE_LOCATION(MEDIA_LOCATION);
++ if (image_has_stage2()) {
++ results = try_with_directory(MEDIA_LOCATION, &quot;disk&quot;, &quot;disk-iso&quot;);
++ if (results == RETURN_OK) {
++ if (!KEEP_MOUNTED)
++ umount(MEDIA_LOCATION);
++ return RETURN_OK;
++ }
++ }
++ }
++ if (mounted)
++ umount(MEDIA_LOCATION);
++ return RETURN_ERROR;
++}
++
++static enum return_type try_automatic_with_disk(char *disk, char *model) {
++ char * parts[50];
++ char * parts_comments[50];
++ enum return_type results;
++ char **dev;
++ wait_message(&quot;Trying to access &quot; DISTRIB_NAME &quot; disk (drive %s)&quot;, model);
++ if (list_partitions(disk, parts, parts_comments)) {
++ stg1_error_message(&quot;Could not read partitions information.&quot;);
++ return RETURN_ERROR;
++ }
++ remove_wait_message();
++ dev = parts;
++ while (dev &amp;&amp; *dev) {
++ results = try_automatic_with_partition(*dev);
++ if (results == RETURN_OK) {
++ return RETURN_OK;
++ }
++ dev++;
++ }
++ return RETURN_ERROR;
++}
++
++static enum return_type try_automatic(char ** medias, char ** medias_models)
++{
++ char ** model = medias_models;
++ char ** ptr = medias;
++ while (ptr &amp;&amp; *ptr) {
++ enum return_type results;
++ results = try_automatic_with_disk(*ptr, *model);
++ if (results == RETURN_OK)
++ return RETURN_OK;
++ ptr++;
++ model++;
++ }
++ return RETURN_ERROR;
++}
++
++static enum return_type try_with_device(char *dev_name)
++{
++ char * questions_location[] = { &quot;Directory or ISO images directory or ISO image&quot;, NULL };
++ char * questions_location_auto[] = { &quot;directory&quot;, NULL };
++ static char ** answers_location = NULL;
++ char location_full[500];
++
++ char * parts[50];
++ char * parts_comments[50];
++ enum return_type results;
++ char * choice;
++
++ if (list_partitions(dev_name, parts, parts_comments)) {
++ stg1_error_message(&quot;Could not read partitions information.&quot;);
++ return RETURN_ERROR;
++ }
++
++ /* uglyness to allow auto starting with devfs */
++ if (!IS_AUTOMATIC || streq((choice = get_auto_value(&quot;partition&quot;)), &quot;&quot;)) {
++ if (parts[0] == NULL) {
++ stg1_error_message(&quot;No partition found.&quot;);
++ return RETURN_ERROR;
++ }
++
++ results = ask_from_list_comments_auto(&quot;Please select the partition containing the copy of the &quot;
++ DISTRIB_NAME &quot; Distribution install source.&quot;,
++ parts, parts_comments, &amp;choice, &quot;partition&quot;, parts);
++ if (results != RETURN_OK)
++ return results;
++ }
++
++ /* in testing mode, assume the partition is already mounted on MEDIA_LOCATION */
++ if (!IS_TESTING &amp;&amp; try_mount(choice, MEDIA_LOCATION)) {
++ stg1_error_message(&quot;I can't find a valid filesystem (tried: ext2, vfat, ntfs, reiserfs). &quot;
++ &quot;Make sure the partition has been cleanly unmounted.&quot;);
++ return try_with_device(dev_name);
++ }
++
++ ask_dir:
++ if (ask_from_entries_auto(&quot;Please enter the directory (or ISO image file) containing the &quot;
++ DISTRIB_NAME &quot; Distribution install source.&quot;,
++ questions_location, &amp;answers_location, 24, questions_location_auto, NULL) != RETURN_OK) {
++ umount(MEDIA_LOCATION);
++ return try_with_device(dev_name);
++ }
++
++ strcpy(location_full, MEDIA_LOCATION);
++ strcat(location_full, &quot;/&quot;);
++ strcat(location_full, answers_location[0]);
++
++ if (access(location_full, R_OK)) {
++ char * path = strdup(answers_location[0]);
++ stg1_error_message(&quot;Directory or ISO image file could not be found on partition.\n&quot;
++ &quot;Here's a short extract of the files in the directory %s:\n&quot;
++ &quot;%s&quot;, dirname(path), extract_list_directory(dirname(location_full)));
++ free(path);
++ goto ask_dir;
++ }
++
++ results = try_with_directory(location_full, &quot;disk&quot;, &quot;disk-iso&quot;);
++ if (results != RETURN_OK) {
++ goto ask_dir;
++ }
++
++ if (!KEEP_MOUNTED)
++ umount(MEDIA_LOCATION);
++
++ return RETURN_OK;
++}
++
++enum return_type disk_prepare(void)
++{
++ char ** medias, ** medias_models;
++ char * choice;
++ int i;
++ enum return_type results;
++ static int already_probed_ide_generic = 0;
++
++ int count = get_disks(&amp;medias, &amp;medias_models);
++
++ if (IS_AUTOMATIC) {
++ results = try_automatic(medias, medias_models);
++ if (results != RETURN_ERROR)
++ return results;
++ unset_automatic();
++ }
++
++ if (count == 0) {
++ if (!already_probed_ide_generic) {
++ already_probed_ide_generic = 1;
++ my_insmod(&quot;ide_generic&quot;, ANY_DRIVER_TYPE, NULL, 0);
++ return disk_prepare();
++ }
++ stg1_error_message(&quot;No DISK drive found.&quot;);
++ i = ask_insmod(MEDIA_ADAPTERS);
++ if (i == RETURN_BACK)
++ return RETURN_BACK;
++ return disk_prepare();
++ }
++
++ if (count == 1) {
++ results = try_with_device(*medias);
++ if (results != RETURN_ERROR)
++ return results;
++ i = ask_insmod(MEDIA_ADAPTERS);
++ if (i == RETURN_BACK)
++ return RETURN_BACK;
++ return disk_prepare();
++ }
++
++ results = ask_from_list_comments_auto(&quot;Please select the disk containing the copy of the &quot;
++ DISTRIB_NAME &quot; Distribution install source.&quot;,
++ medias, medias_models, &amp;choice, &quot;disk&quot;, medias);
++
++ if (results != RETURN_OK)
++ return results;
++
++ results = try_with_device(choice);
++ if (results != RETURN_ERROR)
++ return results;
++ i = ask_insmod(MEDIA_ADAPTERS);
++ if (i == RETURN_BACK)
++ return RETURN_BACK;
++ return disk_prepare();
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/disk.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1diskh">Added: drakx/trunk/mdk-stage1/disk.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/disk.h (rev 0)
++++ drakx/trunk/mdk-stage1/disk.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,27 @@
++/*
++ * Guillaume Cottenceau (gc@mandriva.com)
++ *
++ * Copyright 2000 Mandriva
++ *
++ * This software may be freely redistributed under the terms of the GNU
++ * public license.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++/*
++ * Portions from Erik Troan (ewt@redhat.com)
++ *
++ * Copyright 1996 Red Hat Software
++ *
++ */
++
++#ifndef _DISK_H_
++#define _DISK_H_
++
++enum return_type disk_prepare(void);
++
++#endif
+
+
+Property changes on: drakx/trunk/mdk-stage1/disk.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1dnsc">Added: drakx/trunk/mdk-stage1/dns.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/dns.c (rev 0)
++++ drakx/trunk/mdk-stage1/dns.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,224 @@
++/*
++ * Guillaume Cottenceau (gc@mandriva.com)
++ *
++ * Copyright 2000 Mandriva
++ *
++ * This software may be freely redistributed under the terms of the GNU
++ * public license.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++/*
++ * Portions from Erik Troan (ewt@redhat.com)
++ *
++ * Copyright 1996 Red Hat Software
++ *
++ */
++
++#include &lt;stdlib.h&gt;
++
++// dietlibc can do hostname lookup, whereas glibc can't when linked statically :-(
++
++#if defined(__dietlibc__)
++
++#include &lt;unistd.h&gt;
++#include &lt;string.h&gt;
++#include &lt;stdio.h&gt;
++#include &lt;netdb.h&gt;
++#include &lt;sys/socket.h&gt;
++#include &lt;resolv.h&gt;
++
++#include &quot;network.h&quot;
++#include &quot;log.h&quot;
++
++#include &quot;dns.h&quot;
++
++int mygethostbyname(char * name, struct in_addr * addr)
++{
++ struct hostent * h;
++
++ /* prevent from timeouts */
++ if (_res.nscount == 0)
++ return -1;
++
++ h = gethostbyname(name);
++
++ if (!h &amp;&amp; domain) {
++ // gethostbyname from dietlibc doesn't support domain handling
++ char fully_qualified[500];
++ sprintf(fully_qualified, &quot;%s.%s&quot;, name, domain);
++ h = gethostbyname(fully_qualified);
++ }
++
++ if (h &amp;&amp; h-&gt;h_addr_list &amp;&amp; (h-&gt;h_addr_list)[0]) {
++ memcpy(addr, (h-&gt;h_addr_list)[0], sizeof(*addr));
++ log_message(&quot;is-at: %s&quot;, inet_ntoa(*addr));
++ return 0;
++ }
++
++ log_message(&quot;unknown host %s&quot;, name);
++ return -1;
++}
++
++char * mygethostbyaddr(char * ipnum)
++{
++ struct in_addr in;
++ struct hostent * host;
++
++ /* prevent from timeouts */
++ if (_res.nscount == 0)
++ return NULL;
++
++ if (!inet_aton(ipnum, &amp;in))
++ return NULL;
++ host = gethostbyaddr(&amp;(in.s_addr), sizeof(in.s_addr) /* INADDRSZ */, AF_INET);
++ if (host &amp;&amp; host-&gt;h_name)
++ return host-&gt;h_name;
++ return NULL;
++}
++
++#elif defined(__GLIBC__)
++
++#include &lt;alloca.h&gt;
++#include &lt;sys/socket.h&gt;
++#include &lt;netinet/in.h&gt;
++#include &lt;resolv.h&gt;
++#include &lt;arpa/nameser.h&gt;
++#include &lt;arpa/inet.h&gt;
++#include &lt;stdlib.h&gt;
++#include &lt;string.h&gt;
++
++#include &quot;log.h&quot;
++
++#include &quot;dns.h&quot;
++
++/* This is dumb, but glibc doesn't like to do hostname lookups w/o libc.so */
++
++union dns_response {
++ HEADER hdr;
++ u_char buf[PACKETSZ];
++} ;
++
++static int do_query(char * query, int queryType, char ** domainName, struct in_addr * ipNum)
++{
++ int len, ancount, type;
++ u_char * data, * end;
++ char name[MAXDNAME];
++ union dns_response response;
++
++#ifdef __sparc__
++ /* from jj: */
++ /* We have to wait till ethernet negotiation is done */
++ _res.retry = 3;
++#else
++ _res.retry = 2;
++#endif
++
++
++ len = res_search(query, C_IN, queryType, (void *) &amp;response, sizeof(response));
++ if (len &lt;= 0)
++ return -1;
++
++ if (ntohs(response.hdr.rcode) != NOERROR)
++ return -1;
++
++ ancount = ntohs(response.hdr.ancount);
++ if (ancount &lt; 1)
++ return -1;
++
++ data = response.buf + sizeof(HEADER);
++ end = response.buf + len;
++
++ /* skip the question */
++ data += dn_skipname(data, end) + QFIXEDSZ;
++
++ /* parse the answer(s) */
++ while (--ancount &gt;= 0 &amp;&amp; data &lt; end) {
++
++ /* skip the domain name portion of the RR record */
++ data += dn_skipname(data, end);
++
++ /* get RR information */
++ GETSHORT(type, data);
++ data += INT16SZ; /* skipp class */
++ data += INT32SZ; /* skipp TTL */
++ GETSHORT(len, data);
++
++ if (type == T_PTR) {
++ /* we got a pointer */
++ len = dn_expand(response.buf, end, data, name, sizeof(name));
++ if (len &lt;= 0) return -1;
++ if (queryType == T_PTR &amp;&amp; domainName) {
++ /* we wanted a pointer */
++ *domainName = malloc(strlen(name) + 1);
++ strcpy(*domainName, name);
++ return 0;
++ }
++ } else if (type == T_A) {
++ /* we got an address */
++ if (queryType == T_A &amp;&amp; ipNum) {
++ /* we wanted an address */
++ memcpy(ipNum, data, sizeof(*ipNum));
++ return 0;
++ }
++ }
++
++ /* move ahead to next RR */
++ data += len;
++ }
++
++ return -1;
++}
++
++char * mygethostbyaddr(char * ipnum) {
++ int rc;
++ char * result;
++ char * strbuf;
++ char * chptr;
++ char * splits[4];
++ int i;
++
++ _res.retry = 1;
++
++ strbuf = alloca(strlen(ipnum) + 1);
++ strcpy(strbuf, ipnum);
++
++ ipnum = alloca(strlen(strbuf) + 20);
++
++ for (i = 0; i &lt; 4; i++) {
++ chptr = strbuf;
++ while (*chptr &amp;&amp; *chptr != '.')
++ chptr++;
++ *chptr = '\0';
++
++ if (chptr - strbuf &gt; 3) return NULL;
++ splits[i] = strbuf;
++ strbuf = chptr + 1;
++ }
++
++ sprintf(ipnum, &quot;%s.%s.%s.%s.in-addr.arpa&quot;, splits[3], splits[2], splits[1], splits[0]);
++
++ rc = do_query(ipnum, T_PTR, &amp;result, NULL);
++
++ if (rc)
++ return NULL;
++ else
++ return result;
++}
++
++int mygethostbyname(char * name, struct in_addr * addr) {
++ int rc = do_query(name, T_A, NULL, addr);
++ if (!rc)
++ log_message(&quot;is-at %s&quot;, inet_ntoa(*addr));
++ return rc;
++}
++
++#else
++
++#error &quot;Unsupported C library&quot;
++
++#endif
+
+
+Property changes on: drakx/trunk/mdk-stage1/dns.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1dnsh">Added: drakx/trunk/mdk-stage1/dns.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/dns.h (rev 0)
++++ drakx/trunk/mdk-stage1/dns.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,30 @@
++/*
++ * Guillaume Cottenceau (gc@mandriva.com)
++ *
++ * Copyright 2000 Mandriva
++ *
++ * This software may be freely redistributed under the terms of the GNU
++ * public license.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++/*
++ * Portions from Erik Troan (ewt@redhat.com)
++ *
++ * Copyright 1996 Red Hat Software
++ *
++ */
++
++#ifndef H_DNS
++#define H_DNS
++
++#include &lt;netinet/in.h&gt;
++
++int mygethostbyname(char * name, struct in_addr * addr);
++char * mygethostbyaddr(char * ipnum);
++
++#endif
+
+
+Property changes on: drakx/trunk/mdk-stage1/dns.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1docHACKING">Added: drakx/trunk/mdk-stage1/doc/HACKING</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/doc/HACKING (rev 0)
++++ drakx/trunk/mdk-stage1/doc/HACKING 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,31 @@
++If you have to boot pretty often, you'll appreciate to speed the things up
++a little.
++
++Here's what we use: the GRUB feature to boot from the network using the
++DHCP protocol and the TFTP protocol.
++
++Here's the &quot;menu.lst&quot; to do that:
++
++-=-=--
++
++timeout 0
++
++title linux
++dhcp
++tftpserver 192.168.1.17
++kernel (nd)/tftpboot/gc/vmlinuz ramdisk=32000 vga=788
++initrd (nd)/tftpboot/gc/network.rdz
++
++-=-=--
++
++
++The option &quot;tftpserver&quot; is used to override the tftpserver address given
++as an answer by the DHCP server. That way, you'll not need to bother your
++system administrator to modify his dhcp server configuration.
++
++The directory /tftpboot seems to be the only one defaultly accepted by the
++server, and its subdirs.
++
++
++Of course, your GRUB needs to be compiled with the specific code for your
++network card; use ./configure --help in the GRUB build dir for more infos.
+
+<a id="drakxtrunkmdkstage1docREADME">Added: drakx/trunk/mdk-stage1/doc/README</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/doc/README (rev 0)
++++ drakx/trunk/mdk-stage1/doc/README 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,185 @@
++-------------------------------------------------------
++* Stage1 of the Mandriva Linux installation program *
++-------------------------------------------------------
++
++
++[ Author ]
++
++ Guillaume Cottenceau (gc at mandriva.com)
++
++
++[ Copyright ]
++
++ Copyright 2000, 2001, 2002 Mandriva
++
++ Partially inspired by Redhat stuff (install from 5.x and 7.x) copyright
++ Red Hat Software, and Debian stuff (boot-floppies) copyright by their
++ respective holders.
++
++
++[ Licence ]
++
++ This program is free software; you can redistribute it and/or modify
++ it under the terms of the GNU General Public License as published by
++ the Free Software Foundation; either version 2 of the License, or
++ (at your option) any later version.
++
++ This program is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ GNU General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program; if not, write to the Free Software
++ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++
++
++ *** WARNING! ***
++
++ This General Public License does not permit incorporating any part
++ of this program as a library into proprietary programs.
++
++
++[ Online ]
++
++ http://people.mandriva.com/~gc/html/stage1.html
++
++
++[ Purpose ]
++
++ This code will take the control of the computer after that Linux
++ kernel booted properly, and will try to run the main installer
++ (also known as &quot;stage 2&quot;) from a series of different media
++ including harddrive, cdrom, and network.
++
++ Use the source, Luke.
++
++
++
++
++ -=-=-- Okay, now, more details --=-=-
++
++
++ [ Installing Mandriva Linux ]
++
++Per default, just insert your Mandriva Linux Installation CD into your
++CDROM tray, be sure your system BIOS is configured to boot on your CDROM,
++and that's all.
++
++If you have multiple CDROM drives and the installer can't autodetect in
++which CDROM drive is the disc, it may ask you to choose the correct drive,
++between your CDROM drives.
++
++Also, if you want to install from an SCSI CDROM, the installer should
++detect your SCSI adapter; if it fails you may have to select the right
++driver and/or supply additional parameters.
++
++
++ [ Position of the problem ]
++
++The need for alternate installation methods come with more specific
++hardware configuration and/or need for frequent updates of the Installer
++software.
++
++All of these methods will require to use a special boot disk. The method
++is to download it and then to copy it &quot;physically&quot; to a floppy with the
++command:
++
++# dd if=&lt;boot-disk&gt; of=/dev/fd0
++
++Our boot disks are called &quot;cdrom.img&quot;, &quot;network.img&quot;, etc.
++
++
++ [ Installation from CDROM ]
++
++The first situation you may encounter is an old BIOS which does not permit
++you to boot from your CDROM drive.
++
++In that case, you'll need to use the &quot;cdrom.img&quot; image file. The steps are
++the same as with CDROM boot, and everything should be automatic.
++
++
++ [ Installation from DISK ]
++
++If you like trying occasionnally our development version, the Cooker, one
++of the easiest way is to grab a local copy of the Distribution on one of
++your local hard drives, and to install from that location.
++
++At present time, you can install from IDE or SCSI drives, from Linux
++(ext2), Windows (vfat) or Reiserfs partition.
++
++In that case, you'll need to use the &quot;hd.img&quot; image file. The dialogs will
++ask you to choose the DISK drive to use to install from, then the
++partition on which you copied the Distribution, then the location
++(directory) in which you copied the Distribution.
++
++
++ [ Installation from NETWORK ]
++
++For convenience, you can also install from a NFS volume, from a FTP
++server, or from a HTTP server. NFS installs are maybe the fastest
++and most convenient possible, so if you need to do frequent and/or
++multiple installs, you may like this option.
++
++In that case, you'll need to use the &quot;network.img&quot; image file. If you have
++PCI network card(s), you'll probably have to only setup your network
++options. If not, you'll have to choose the appropriate driver(s) and/or
++optional parameters. Supported network configurations include static IP
++allocation and DHCP automatic configuration.
++
++
++ [ Installation from PCMCIA ]
++
++If you want to perform an installation on your laptop that is not based on
++local IDE CDROM or DISK, nor on built-in network card, but on PCMCIA
++extension (probably a network adapter or CDROM drive), you'll need the
++&quot;pcmcia.img&quot; image file.
++
++PCMCIA services should automatically start and be transparent to you.
++Then, you'll follow the instructions according to your preferred
++installation method.
++
++
++ [ Monitoring a stage1 session ]
++
++Linux supports virtual consoles. You can switch between them by issueing
++Ctrl+Alt+Fx key, in which 'x' is the number of the console. Here's console
++occupancy during stage1.
++
++(#1) The user-interface of the stage1 is on the first console. In case of
++newt interaction, it's provided with a neat blue and black color scheme,
++and nice widgets. In case of stdio interaction (cdrom and disk installs),
++it's more basic but still usable :-).
++
++(#2) A shell is provided on second console in some cases (you need to
++compile it with -DSPAWN_SHELL and you need to provide a valid shell in the
++initrd) and of course it's not in, in image files of Mandriva Linux
++releases because it's too much diskspace.
++
++(#3) The log is printed out on the third console. This is the location
++where you can find most valuable information, prefixed by a '*'. See
++&quot;log.h&quot; for calls that print things out to the log.
++
++(#4) The kernel messages are printed on the fourth console. There is a
++process forked very early in the init (the program before the stage1)
++which monitors /proc/kmsg for new kernel messages. Also, syslog stuff (the
++logs commited by the programs) should appear on the /dev/log Unix socket,
++this is also printed on this console.
++
++(#5) Former place for the stderr of insmod calls. It's not used anymore.
++
++(#6) Place where a trivial interactive communication with the stage1 is
++set up if the parameter -DSPAWN_INTERACTIVE is compiled in. Basically, you
++can set switches such as &quot;expert&quot; and &quot;rescue&quot; on the fly with this
++feature. It's implemented with a fork and a Unix pipe.
++
++
++ [ Rescueing a system ]
++
++Since Mandriva Linux 7.1, we provide a rescue system through each of the
++previously described methods. You don't need a special &quot;rescue.img&quot; file.
++Just hit &quot;F1&quot; at boot time, type in &quot;rescue&quot;, and follow the first steps
++of the installation according to the method you chose (choose
++disks/partitions for disk method, network parameters for network method,
++etc). Then, you'll end up with a workable system, very useful to rescue a
++damaged system, or do other basic actions.
+
+<a id="drakxtrunkmdkstage1docTECHINFOS">Added: drakx/trunk/mdk-stage1/doc/TECH-INFOS</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/doc/TECH-INFOS (rev 0)
++++ drakx/trunk/mdk-stage1/doc/TECH-INFOS 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,106 @@
++
++| (*) Automatic install
++\----------------------
++
++This feature is used to replace redhat kickstart. It uses the kernel
++parameter &quot;automatic&quot; with keywords separated with commas and colons, on
++the following genres:
++
++ automatic=method:nfs,network:static,ip:192.168.1.24,server:192.168.1.7,directory:/stable/i586
++
++ automatic=method:ftp,network:dhcp,server:ftp.ciril.fr,directory:/pub/linux/mandriva-devel/cooker
++
++ automatic=method:ftp,network:dhcp,server:companyserver,directory:/mdkinst,user:XXX,pass:XXX
++
++ automatic=method:ftp,interface:eth1,network:dhcp,...
++
++ automatic=method:ftp,network:adsl,adsluser:XXX,adslpass:XXX,...
++
++ automatic=method:cdrom
++
++ automatic=method:disk,disk:hdb,partition:hdb7,directory:/cooker
++
++
++The keywords correspond to each &quot;virtual&quot; question answered automatically,
++either from a list or from a free field.
++
++
++Keywords are:
++
++
++`method' &lt;- (nfs,ftp,http,cdrom,disk)
++
++if nfs/ftp/http:
++
++ `network' &lt;- (static,dhcp,adsl)
++
++ if multiple interfaces detected:
++
++ `interface' &lt;- (list-of-detected-interfaces)
++ if &quot;auto&quot;:
++ use the first interface with a link beat
++ if &quot;wired&quot;:
++ use the first wired interface with a link beat
++ or the first wired interface if none has a link beat
++
++ fi
++
++ if static:
++
++ `ip', `dns', `gateway', `netmask' (free fields)
++
++ elsif adsl:
++
++ `adsluser', `adslpass' (free field)
++
++ fi
++
++ if resolving fails:
++
++ `hostname', `domain' (free fields)
++
++ fi
++
++ `server', `directory' (free fields)
++
++ if ftp:
++
++ `user', `pass' (free fields)
++
++ fi
++
++fi
++
++if disk:
++
++ `disk' &lt;- (list-of-detected-disks)
++
++ `partition' &lt;- (list-of-detected-partitions)
++
++ `directory' (free fields)
++
++fi
++
++
++
++You may use shorter versions of keywords (it helps reducing size of
++commandline), please find each keyword short-alias counterpart in file
++../automatic.c under the identifier named &quot;short_aliases&quot;.
++
++This gives for example for:
++
++ automatic=method:nfs,network:static,ip:192.168.1.24,server:192.168.1.7,directory:/stable/i586
++==&gt;
++ automatic=met:nfs,net:static,ip:192.168.1.24,ser:192.168.1.7,dir:/stable/i586
++
++
++
++You may specify a stage2 auto-install file, different from the
++default `auto_inst.cfg.pl' in install/, by filling the
++`bootfile' parameter of your DHCP server response.
++
++Note that if the name ends with `-IP' or `-IP.pl', IP will be
++replaced by the IP address given to the host, normalized to
++hexadecimal (that is, `192.168.100.57' would give 'C0A86439').
++
++
+
+<a id="drakxtrunkmdkstage1docUPDATEMODULES">Added: drakx/trunk/mdk-stage1/doc/UPDATEMODULES</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/doc/UPDATEMODULES (rev 0)
++++ drakx/trunk/mdk-stage1/doc/UPDATEMODULES 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,96 @@
++This is the documentation for the &quot;Update Modules&quot; (Update Drivers)
++feature.
++
++This feature aims to propose new modules or replacement modules for the
++install and afterwards. This is useful when there is a firmware update for a
++given driver, an additional driver needed for something, etc.
++
++
++You must use a floppy disk with e2fs filesystem (NOT vfat/windows
++formatted). Use &quot;mke2fs /dev/fd0&quot; on your own box to format a floppy with
++e2fs filesystem.
++
++This disk may contain a number of kernel modules; some of them
++may replace existing modules, some of them may be added.
++
++Create a directory per kernel version, named from the version, for example
++2.6.27-desktop586-0.rc8.2mnb. In this directory put the modules and a special
++file, named &quot;to_load&quot;. This file will contain a series of module names, with
++optional module options; the program will try to load all these modules one
++after another, using file on the floppy if present, else using file within
++standard module repository. It can contain comments, these are strictly defined
++by the presence of a hash (#) character on column 0 of any line.
++
++This disk may also contain some update or new modules for installed kernels.
++Those modules must be placed in directory &lt;kernel-version&gt;. They must be
++gzipped if the installed kernel modules are gzipped.
++
++You may need to specify the &quot;category&quot; so that new modules are used correctly.
++For example, a scsi module should be put in category disk/scsi so that it is
++put in scsi_hostadapter and initrd.
++
++
++Here's a typical scenario:
++
++
++1. Boot the floppy (or cdrom) with the option &quot;updatemodules&quot;
++
++ (you may do that by pressing F1 then entering &quot;linux updatemodules&quot;)
++
++
++2. At the very beginning of the User Interface, you are asked to insert
++ the Update Modules disk. Insert the Update Modules disk and press
++ Enter.
++
++--=----=----=----=----=----=----=----=----=--
++Our example disk contains:
++
++[root@obiwan mnt]# ll floppy/*
++2.6.27-desktop586-0.rc8.2mnb/:
++total 541
++drwxrwxr-x 3 a a 1024 2009-03-09 12:09 kernel/
++-rw-rw-r-- 1 a a 547480 2009-03-09 12:04 msdos.ko
++-rw-rw-r-- 1 a a 54748 2009-03-09 12:04 ppa.ko
++-rw-rw-r-- 1 a a 79 2009-03-09 12:08 to_load
++[root@obiwan mnt]# cat floppy/*/to_load
++# Update Drivers description file
++3c59x
++# fat is a dep for msdos
++fat
++# updated msdos (handling of 9+4 filenames)
++msdos
++ppa
++# ISA network card needing options
++ne io=0x300 irq=7
++# New module [list_modules: disk/scsi]
++a320raid
++[root@obiwan mnt]# (cd floppy/2.6.27-desktop586-0.rc8.2mnb ; find -type f)
++./msdos.ko
++./ppa.ko
++./to_load
++./kernel/fs/msdos/msdos.ko.gz
++./kernel/drivers/scsi/ppa.ko.gz
++./kernel/drivers/usb/host/uhci-hcd.ko.gz
++./kernel/drivers/usb/input/wacom.ko.gz
++[root@obiwan mnt]#
++--=----=----=----=----=----=----=----=----=--
++
++
++3. The program reads the special file &quot;to_load&quot; and processes the files.
++
++ a- 3c59x loaded from the marfile on the boot floppy
++ b- fat loaded from the marfile on the boot floppy
++ c- msdos loaded from the update modules floppy
++ d- ppa loaded from the update modules floppy
++ e- ne loaded from the marfile on the boot floppy
++
++
++
++!!! Beware !!!, the dependencies are not handled automatically in
++the case of load from the update modules floppy, that's why on
++our example we need to load &quot;fat&quot; from the standard modules
++before &quot;msdos&quot; from the update floppy.
++
++
++4. When system is installed, update floppy is asked again so that update
++modules for the installed kernels can be copied. Then depmod is called.
+
+<a id="drakxtrunkmdkstage1docWHYDIETLIBC">Added: drakx/trunk/mdk-stage1/doc/WHY-DIETLIBC</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/doc/WHY-DIETLIBC (rev 0)
++++ drakx/trunk/mdk-stage1/doc/WHY-DIETLIBC 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,50 @@
++(the dietlibc is a replacement for the glibc, which aim is to produce
++smaller statically linked binaries)
++
++
++The use for dietlibc in the stage1 was clear because currently used
++install process on x86 is from a 1.44 Mbytes floppy. On this floppy we
++need to fit the kernel, modules (scsi and network access), and the code to
++do the basic things to load the stage2. The only part on which we could
++progress was the code.
++
++As always, figures demonstrate evidences. Here are the size of the
++binaries used for the cdrom, disk, network and full floppy installs, using
++newt as the UI library:
++
++ - with glibc
++
++-rwxr-xr-x 1 gc gc 569448 May 15 15:29 stage1-cdrom
++-rwxr-xr-x 1 gc gc 572264 May 15 15:29 stage1-disk
++-rwxr-xr-x 1 gc gc 624712 May 15 15:30 stage1-network
++-rwxr-xr-x 1 gc gc 720360 May 15 15:29 stage1-full
++
++ - with dietlibc
++
++-rwxr-xr-x 1 gc gc 169332 May 15 14:26 stage1-cdrom
++-rwxr-xr-x 1 gc gc 172180 May 15 14:26 stage1-disk
++-rwxr-xr-x 1 gc gc 198612 May 15 14:26 stage1-network
++-rwxr-xr-x 1 gc gc 251764 May 15 14:26 stage1-full
++
++
++The `stage1-full' binary has code for many things, most notably: data
++decrunching (bzlib), archive extraction (in-house format), module loading
++(insmod from busybox), PCI detection, ide and scsi handling,
++cdrom/disk/loopback mounting, DHCP client negociation (redhat+grub), NFS
++mounting (util-linux), FTP and HTTP transmission (redhat), pcmcia
++initializing (pcmcia-cs), UI interaction (slang/newt); with use of the
++dietlibc, the binary is only 250 kbytes!
++
++
++Due to the modular coding, it is also possible to choose to not use
++slang/newt as the UI, but a stdio-only UI. In that case, the binaries get
++even smaller:
++
++-rwxr-xr-x 1 gc gc 104500 May 15 15:46 stage1-cdrom*
++-rwxr-xr-x 1 gc gc 107348 May 15 15:46 stage1-disk*
++-rwxr-xr-x 1 gc gc 133972 May 15 15:47 stage1-network*
++-rwxr-xr-x 1 gc gc 187348 May 15 15:46 stage1-full*
++
++
++
++gc [Tue May 15 15:58:34 2001]
+\ No newline at end of file
+
+<a id="drakxtrunkmdkstage1docdocumentedfrontendh">Added: drakx/trunk/mdk-stage1/doc/documented..frontend.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/doc/documented..frontend.h (rev 0)
++++ drakx/trunk/mdk-stage1/doc/documented..frontend.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,69 @@
++/*
++ * Guillaume Cottenceau (gc@mandriva.com)
++ *
++ * Copyright 2000 Mandriva
++ *
++ * This software may be freely redistributed under the terms of the GNU
++ * public license.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++/*
++ * Using high-level UI.
++ *
++ * These functions are frontend-independant: your program won't know each
++ * `frontend' (e.g. each way to grab user input) will be used.
++ *
++ * Then you may link your binary against any `frontend' that implement all
++ * these functions (and possibly necessary libraries).
++ */
++
++
++#ifndef _FRONTEND_H_
++#define _FRONTEND_H_
++
++/* this must be called before anything else */
++void init_frontend(void);
++
++/* this must be called before exit of program */
++void finish_frontend(void);
++
++
++void info_message(char *msg, ...) __attribute__ ((format (printf, 1, 2))); /* (blocks program) */
++
++void error_message(char *msg, ...) __attribute__ ((format (printf, 1, 2))); /* (blocks program) */
++
++/* (doesn't block program)
++ * (this is not necessarily stackable, e.g. only one wait_message at a time) */
++void wait_message(char *msg, ...) __attribute__ ((format (printf, 1, 2)));
++
++/* call this to finish the wait on wait_message */
++void remove_wait_message(void);
++
++/* monitor progression of something (downloading a file, etc)
++ * if size of progression is unknown, use `0' */
++void init_progression(char *msg, int size);
++void update_progression(int current_size);
++void end_progression(void);
++
++enum frontend_return { RETURN_OK, RETURN_BACK, RETURN_ERROR };
++
++/* Yes == RETURN_OK No == RETURN_ERROR Back == RETURN_BACK */
++enum frontend_return ask_yes_no(char *msg);
++
++/* [elems] NULL terminated array of char*
++ * [choice] address of a (unitialized) char* */
++enum frontend_return ask_from_list(char *msg, char ** elems, char ** choice);
++
++enum frontend_return ask_from_list_comments(char *msg, char ** elems, char ** elems_comments, char ** choice);
++
++/* [questions] NULL terminated array of char*
++ * [answers] address of a (unitialized) char**, will contain a non-NULL terminated array of char*
++ * [callback_func] function called at most when the answers change; it can examine the array of char* and assign some new char* */
++enum frontend_return ask_from_entries(char *msg, char ** questions, char *** answers, int entry_size, void (*callback_func)(char ** strings));
++
++#endif
+
+
+Property changes on: drakx/trunk/mdk-stage1/doc/documented..frontend.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1frontendcommonc">Added: drakx/trunk/mdk-stage1/frontend-common.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/frontend-common.c (rev 0)
++++ drakx/trunk/mdk-stage1/frontend-common.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,64 @@
++/*
++ * Guillaume Cottenceau (gc@mandriva.com)
++ *
++ * Copyright 2000 Mandriva
++ *
++ * This software may be freely redistributed under the terms of the GNU
++ * public license.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++#include &lt;stdlib.h&gt;
++#include &lt;stdarg.h&gt;
++#include &lt;string.h&gt;
++
++#include &lt;probing.h&gt;
++
++#include &quot;frontend.h&quot;
++
++
++void info_message(char *msg, ...)
++{
++ va_list args;
++ va_start(args, msg);
++ vinfo_message(msg, args);
++ va_end(args);
++}
++
++void wait_message(char *msg, ...)
++{
++ va_list args;
++ va_start(args, msg);
++ vwait_message(msg, args);
++ va_end(args);
++}
++
++void error_message(char *msg, ...)
++{
++ va_list args;
++ va_start(args, msg);
++ verror_message(msg, args);
++ va_end(args);
++}
++
++enum return_type ask_from_list_comments(char *msg, char ** elems, char ** elems_comments, char ** choice)
++{
++ int answer = 0;
++ enum return_type results;
++
++ results = ask_from_list_index(msg, elems, elems_comments, &amp;answer);
++
++ if (results == RETURN_OK)
++ *choice = strdup(elems[answer]);
++
++ return results;
++}
++
++enum return_type ask_from_list(char *msg, char ** elems, char ** choice)
++{
++ return ask_from_list_comments(msg, elems, NULL, choice);
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/frontend-common.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1frontendh">Added: drakx/trunk/mdk-stage1/frontend.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/frontend.h (rev 0)
++++ drakx/trunk/mdk-stage1/frontend.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,68 @@
++/*
++ * Guillaume Cottenceau (gc@mandriva.com)
++ *
++ * Copyright 2000 Mandriva
++ *
++ * This software may be freely redistributed under the terms of the GNU
++ * public license.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++/*
++ * For doc please read doc/documented..frontend.h
++ */
++
++#ifndef _FRONTEND_H_
++#define _FRONTEND_H_
++
++#include &lt;stdarg.h&gt;
++
++/* 'unused' atttribute, gcc specific and just to turn down some warnings. */
++#if defined __GNUC__
++#define UNUSED __attribute__((unused))
++#else
++#define UNUSED
++#endif
++
++enum return_type { RETURN_OK, RETURN_BACK, RETURN_ERROR };
++
++void init_frontend(char * welcome_msg);
++void finish_frontend(void);
++
++void error_message(char *msg, ...) __attribute__ ((format (printf, 1, 2))); /* blocking */
++void info_message(char *msg, ...) __attribute__ ((format (printf, 1, 2))); /* blocking */
++void wait_message(char *msg, ...) __attribute__ ((format (printf, 1, 2))); /* non-blocking */
++void remove_wait_message(void);
++
++void init_progression_raw(char *msg, int size);
++void update_progression_raw(int current_size);
++void end_progression_raw(void);
++
++#ifdef ENABLE_BOOTSPLASH
++void init_progression(char *msg, int size);
++void update_progression(int current_size);
++void end_progression(void);
++#else
++#define init_progression init_progression_raw
++#define update_progression update_progression_raw
++#define end_progression end_progression_raw
++#endif
++
++enum return_type ask_yes_no(char *msg);
++enum return_type ask_from_list_index(char *msg, char ** elems, char ** elems_comments, int *answer);
++enum return_type ask_from_list(char *msg, char ** elems, char ** choice);
++enum return_type ask_from_list_comments(char *msg, char ** elems, char ** elems_comments, char ** choice);
++enum return_type ask_from_entries(char *msg, char ** questions, char *** answers, int entry_size, void (*callback_func)(char ** strings));
++
++void suspend_to_console(void);
++void resume_from_suspend(void);
++
++void verror_message(char *msg, va_list ap);
++void vinfo_message(char *msg, va_list ap);
++void vwait_message(char *msg, va_list ap);
++
++#endif
+
+
+Property changes on: drakx/trunk/mdk-stage1/frontend.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1initc">Added: drakx/trunk/mdk-stage1/init.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/init.c (rev 0)
++++ drakx/trunk/mdk-stage1/init.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,546 @@
++/*
++ * Guillaume Cottenceau (gc@mandriva.com)
++ *
++ * Copyright 2000 Mandriva
++ *
++ * This software may be freely redistributed under the terms of the GNU
++ * public license.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++/*
++ * Portions from Erik Troan (ewt@redhat.com)
++ *
++ * Copyright 1996 Red Hat Software
++ *
++ */
++
++#include &lt;stdlib.h&gt;
++#include &lt;unistd.h&gt;
++#include &lt;stdio.h&gt;
++#include &lt;string.h&gt;
++#include &lt;sys/types.h&gt;
++#include &lt;sys/socket.h&gt;
++#include &lt;sys/stat.h&gt;
++#include &lt;fcntl.h&gt;
++#include &lt;sys/mount.h&gt;
++#include &lt;linux/un.h&gt;
++#include &lt;errno.h&gt;
++#include &lt;signal.h&gt;
++#include &lt;sys/resource.h&gt;
++#include &lt;sys/wait.h&gt;
++#include &lt;linux/unistd.h&gt;
++#include &lt;sys/select.h&gt;
++#include &lt;sys/ioctl.h&gt;
++
++#include &lt;sys/syscall.h&gt;
++#define syslog(...) syscall(__NR_syslog, __VA_ARGS__)
++#define reboot(...) syscall(__NR_reboot, __VA_ARGS__)
++
++#include &quot;config-stage1.h&quot;
++#include &lt;linux/cdrom.h&gt;
++
++#if defined(__powerpc__)
++#define TIOCSCTTY 0x540E
++#endif
++
++
++#define BINARY &quot;/sbin/stage1&quot;
++#define BINARY_STAGE2 &quot;/usr/bin/runinstall2&quot;
++
++
++char * env[] = {
++ &quot;PATH=/usr/bin:/bin:/sbin:/usr/sbin:/mnt/sbin:/mnt/usr/sbin:/mnt/bin:/mnt/usr/bin&quot;,
++ &quot;LD_LIBRARY_PATH=/lib:/usr/lib:/mnt/lib:/mnt/usr/lib:/usr/X11R6/lib:/mnt/usr/X11R6/lib&quot;
++#if defined(__x86_64__) || defined(__ppc64__)
++ &quot;:/lib64:/usr/lib64:/usr/X11R6/lib64:/mnt/lib64:/mnt/usr/lib64:/mnt/usr/X11R6/lib64&quot;
++#endif
++ ,
++ &quot;HOME=/&quot;,
++ &quot;TERM=linux&quot;,
++ &quot;TERMINFO=/etc/terminfo&quot;,
++ NULL
++};
++
++
++/*
++ * this needs to handle the following cases:
++ *
++ * 1) run from a CD root filesystem
++ * 2) run from a read only nfs rooted filesystem
++ * 3) run from a floppy
++ * 4) run from a floppy that's been loaded into a ramdisk
++ *
++ */
++
++int testing = 0;
++int klog_pid;
++
++
++void fatal_error(char *msg)
++{
++ printf(&quot;FATAL ERROR IN INIT: %s\n\nI can't recover from this, please reboot manually and send bugreport.\n&quot;, msg);
++ select(0, NULL, NULL, NULL, NULL);
++}
++
++void print_error(char *msg)
++{
++ printf(&quot;E: %s\n&quot;, msg);
++}
++
++void print_warning(char *msg)
++{
++ printf(&quot;W: %s\n&quot;, msg);
++}
++
++void print_int_init(int fd, int i)
++{
++ char buf[10];
++ char * chptr = buf + 9;
++ int j = 0;
++
++ if (i &lt; 0)
++ {
++ write(1, &quot;-&quot;, 1);
++ i = -1 * i;
++ }
++
++ while (i)
++ {
++ *chptr-- = '0' + (i % 10);
++ j++;
++ i = i / 10;
++ }
++
++ write(fd, chptr + 1, j);
++}
++
++void print_str_init(int fd, char * string)
++{
++ write(fd, string, strlen(string));
++}
++
++/* fork to:
++ * (1) watch /proc/kmsg and copy the stuff to /dev/tty4
++ * (2) listens to /dev/log and copy also this stuff (log from programs)
++ */
++void doklog()
++{
++ fd_set readset, unixs;
++ int in, out, i;
++ int log;
++ socklen_t s;
++ int sock = -1;
++ struct sockaddr_un sockaddr;
++ char buf[1024];
++ int readfd;
++
++ /* open kernel message logger */
++ in = open(&quot;/proc/kmsg&quot;, O_RDONLY,0);
++ if (in &lt; 0) {
++ print_error(&quot;could not open /proc/kmsg&quot;);
++ return;
++ }
++
++ mkdir(&quot;/tmp&quot;, 0755);
++ if ((log = open(&quot;/tmp/syslog&quot;, O_WRONLY | O_CREAT | O_APPEND, 0644)) &lt; 0) {
++ print_error(&quot;error opening /tmp/syslog&quot;);
++ sleep(5);
++ return;
++ }
++
++ if ((klog_pid = fork())) {
++ close(in);
++ close(log);
++ return;
++ } else {
++ close(0);
++ close(1);
++ close(2);
++ }
++
++ out = open(&quot;/dev/tty4&quot;, O_WRONLY, 0);
++ if (out &lt; 0)
++ print_warning(&quot;couldn't open tty for syslog -- still using /tmp/syslog\n&quot;);
++
++ /* now open the syslog socket */
++// ############# LINUX 2.4 /dev/log IS BUGGED! --&gt; apparently the syslogs can't reach me, and it's full up after a while
++// sockaddr.sun_family = AF_UNIX;
++// strncpy(sockaddr.sun_path, &quot;/dev/log&quot;, UNIX_PATH_MAX);
++// sock = socket(AF_UNIX, SOCK_STREAM, 0);
++// if (sock &lt; 0) {
++// printf(&quot;error creating socket: %d\n&quot;, errno);
++// sleep(5);
++// }
++//
++// print_str_init(log, &quot;] got socket\n&quot;);
++// if (bind(sock, (struct sockaddr *) &amp;sockaddr, sizeof(sockaddr.sun_family) + strlen(sockaddr.sun_path))) {
++// print_str_init(log, &quot;] bind error: &quot;);
++// print_int_init(log, errno);
++// print_str_init(log, &quot;\n&quot;);
++// sleep(// }
++//
++// print_str_init(log, &quot;] bound socket\n&quot;);
++// chmod(&quot;/dev/log&quot;, 0666);
++// if (listen(sock, 5)) {
++// print_str_init(log, &quot;] listen error: &quot;);
++// print_int_init(log, errno);
++// print_str_init(log, &quot;\n&quot;);
++// sleep(5);
++// }
++
++ /* disable on-console syslog output */
++ syslog(8, NULL, 1);
++
++ print_str_init(log, &quot;] kernel/system logger ok\n&quot;);
++ FD_ZERO(&amp;unixs);
++ while (1) {
++ memcpy(&amp;readset, &amp;unixs, sizeof(unixs));
++
++ if (sock &gt;= 0)
++ FD_SET(sock, &amp;readset);
++ FD_SET(in, &amp;readset);
++
++ i = select(20, &amp;readset, NULL, NULL, NULL);
++ if (i &lt;= 0)
++ continue;
++
++ /* has /proc/kmsg things to tell us? */
++ if (FD_ISSET(in, &amp;readset)) {
++ i = read(in, buf, sizeof(buf));
++ if (i &gt; 0) {
++ if (out &gt;= 0)
++ write(out, buf, i);
++ write(log, buf, i);
++ }
++ }
++
++ /* the socket has moved, new stuff to do */
++ if (sock &gt;= 0 &amp;&amp; FD_ISSET(sock, &amp;readset)) {
++ s = sizeof(sockaddr);
++ readfd = accept(sock, (struct sockaddr *) &amp;sockaddr, &amp;s);
++ if (readfd &lt; 0) {
++ char * msg_error = &quot;] error in accept\n&quot;;
++ if (out &gt;= 0)
++ write(out, msg_error, strlen(msg_error));
++ write(log, msg_error, strlen(msg_error));
++ close(sock);
++ sock = -1;
++ }
++ else
++ FD_SET(readfd, &amp;unixs);
++ }
++ }
++}
++
++
++#define LOOP_CLR_FD 0x4C01
++
++void del_loops(void)
++{
++ char loopdev[] = &quot;/dev/loop0&quot;;
++ char chloopdev[] = &quot;/dev/chloop0&quot;;
++ int i;
++ for (i=0; i&lt;8; i++) {
++ int fd;
++ loopdev[9] = '0' + i;
++ fd = open(loopdev, O_RDONLY, 0);
++ if (fd &gt; 0) {
++ if (!ioctl(fd, LOOP_CLR_FD, 0))
++ printf(&quot;\t%s\n&quot;, loopdev);
++ close(fd);
++ }
++ chloopdev[11] = '0' + i;
++ fd = open(chloopdev, O_RDONLY, 0);
++ if (fd &gt; 0) {
++ if (!ioctl(fd, LOOP_CLR_FD, 0))
++ printf(&quot;\t%s\n&quot;, chloopdev);
++ close(fd);
++ }
++ }
++}
++
++struct filesystem
++{
++ char * dev;
++ char * name;
++ char * fs;
++ int mounted;
++};
++
++char* strcat(register char* s,register const char* t)
++{
++ char *dest=s;
++ s+=strlen(s);
++ for (;;) {
++ if (!(*s = *t)) break; ++s; ++t;
++ }
++ return dest;
++}
++
++/* attempt to unmount all filesystems in /proc/mounts */
++void unmount_filesystems(void)
++{
++ int fd, size;
++ char buf[65535]; /* this should be big enough */
++ char *p;
++ struct filesystem fs[500];
++ int numfs = 0;
++ int i, nb;
++ int disallow_eject = 0;
++
++ printf(&quot;unmounting filesystems...\n&quot;);
++
++ fd = open(&quot;/proc/mounts&quot;, O_RDONLY, 0);
++ if (fd &lt; 1) {
++ print_error(&quot;failed to open /proc/mounts&quot;);
++ sleep(2);
++ return;
++ }
++
++ size = read(fd, buf, sizeof(buf) - 1);
++ buf[size] = '\0';
++
++ close(fd);
++
++ p = buf;
++ while (*p) {
++ fs[numfs].mounted = 1;
++ fs[numfs].dev = p;
++ while (*p != ' ') p++;
++ *p++ = '\0';
++ fs[numfs].name = p;
++ while (*p != ' ') p++;
++ *p++ = '\0';
++ fs[numfs].fs = p;
++ while (*p != ' ') p++;
++ *p++ = '\0';
++ while (*p != '\n') p++;
++ p++;
++ if (!strcmp(fs[numfs].fs, &quot;nfs&quot;))
++ disallow_eject = 1;
++ if (strcmp(fs[numfs].name, &quot;/&quot;)
++ &amp;&amp; !strstr(fs[numfs].dev, &quot;ram&quot;)
++ &amp;&amp; strcmp(fs[numfs].name, &quot;/dev&quot;)
++ &amp;&amp; strcmp(fs[numfs].name, &quot;/sys&quot;)
++ &amp;&amp; strncmp(fs[numfs].name, &quot;/proc&quot;, 5))
++ numfs++;
++ }
++
++ /* Pixel's ultra-optimized sorting algorithm:
++ multiple passes trying to umount everything until nothing moves
++ anymore (a.k.a holy shotgun method) */
++ do {
++ nb = 0;
++ for (i = 0; i &lt; numfs; i++) {
++ /*printf(&quot;trying with %s\n&quot;, fs[i].name);*/
++ del_loops();
++ if (fs[i].mounted &amp;&amp; umount(fs[i].name) == 0) {
++ printf(&quot;\t%s\n&quot;, fs[i].name);
++ fs[i].mounted = 0;
++ nb++;
++ }
++ }
++ } while (nb);
++
++ for (i = nb = 0; i &lt; numfs; i++)
++ if (fs[i].mounted) {
++ printf(&quot;\tumount failed: %s\n&quot;, fs[i].name);
++ if (strcmp(fs[i].fs, &quot;ext3&quot;) == 0) nb++; /* don't count not-ext3 umount failed */
++ }
++
++
++ if (nb) {
++ printf(&quot;failed to umount some filesystems\n&quot;);
++ select(0, NULL, NULL, NULL, NULL);
++ }
++}
++
++#define BMAGIC_HARD 0x89ABCDEF
++#define BMAGIC_SOFT 0
++#define BMAGIC_REBOOT 0x01234567
++#define BMAGIC_HALT 0xCDEF0123
++#define BMAGIC_POWEROFF 0x4321FEDC
++int reboot_magic = BMAGIC_REBOOT;
++
++int in_reboot(void)
++{
++ int fd;
++ if ((fd = open(&quot;/var/run/rebootctl&quot;, O_RDONLY, 0)) &gt; 0) {
++ char buf[100];
++ int i = read(fd, buf, sizeof(buf));
++ close(fd);
++ if (strstr(buf, &quot;halt&quot;))
++ reboot_magic = BMAGIC_POWEROFF;
++ return i &gt; 0;
++ }
++ return 0;
++}
++
++int exit_value_proceed = 66;
++int exit_value_restart = 0x35;
++
++int main(int argc, char **argv)
++{
++ pid_t installpid, childpid;
++ int wait_status;
++ int fd;
++ int counter = 0;
++ int abnormal_termination = 0;
++
++ if (argc &gt; 1 &amp;&amp; argv[1][0] &gt;= '0' &amp;&amp; argv[1][0] &lt;= '9') {
++ printf(&quot;This is no normal init, sorry.\n&quot;
++ &quot;Call `reboot' or `halt' directly.\n&quot;);
++ return 0;
++ }
++
++ if (!testing) {
++ /* turn off screen blanking */
++ printf(&quot;\033[9;0]&quot;);
++ printf(&quot;\033[8]&quot;);
++ }
++ else
++ printf(&quot;*** TESTING MODE *** (pid is %d)\n&quot;, getpid());
++
++
++ if (!testing) {
++ mkdir(&quot;/proc&quot;, 0755);
++ if (mount(&quot;/proc&quot;, &quot;/proc&quot;, &quot;proc&quot;, 0, NULL))
++ fatal_error(&quot;Unable to mount proc filesystem&quot;);
++ mkdir(&quot;/sys&quot;, 0755);
++ if (mount(&quot;none&quot;, &quot;/sys&quot;, &quot;sysfs&quot;, 0, NULL))
++ fatal_error(&quot;Unable to mount sysfs filesystem&quot;);
++ }
++
++
++ /* ignore Control-C and keyboard stop signals */
++ signal(SIGINT, SIG_IGN);
++ signal(SIGTSTP, SIG_IGN);
++
++ if (!testing) {
++ fd = open(&quot;/dev/console&quot;, O_RDWR, 0);
++ if (fd &lt; 0)
++ fatal_error(&quot;failed to open /dev/console&quot;);
++
++ dup2(fd, 0);
++ dup2(fd, 1);
++ dup2(fd, 2);
++ close(fd);
++ }
++
++
++ /* I set me up as session leader (probably not necessary?) */
++ setsid();
++// if (ioctl(0, TIOCSCTTY, NULL))
++// print_error(&quot;could not set new controlling tty&quot;);
++
++ if (!testing) {
++ char my_hostname[] = &quot;localhost&quot;;
++ sethostname(my_hostname, sizeof(my_hostname));
++ /* the default domainname (as of 2.0.35) is &quot;(none)&quot;, which confuses
++ glibc */
++ setdomainname(&quot;&quot;, 0);
++ }
++
++ if (!testing)
++ doklog();
++
++ /* Go into normal init mode - keep going, and then do a orderly shutdown
++ when:
++
++ 1) install exits
++ 2) we receive a SIGHUP
++ */
++
++ do {
++ if (counter == 1) {
++ printf(&quot;proceeding, please wait...\n&quot;);
++ }
++
++ if (!(installpid = fork())) {
++ /* child */
++ char * child_argv[2];
++ child_argv[0] = counter == 0 ? BINARY : BINARY_STAGE2;
++ child_argv[1] = NULL;
++
++ execve(child_argv[0], child_argv, env);
++ printf(&quot;error in exec of %s :-( [%d]\n&quot;, child_argv[0], errno);
++ return 0;
++ }
++
++ do {
++ childpid = wait4(-1, &amp;wait_status, 0, NULL);
++ } while (childpid != installpid);
++
++ counter++;
++ } while (WIFEXITED(wait_status) &amp;&amp; WEXITSTATUS(wait_status) == exit_value_restart);
++
++ /* allow Ctrl Alt Del to reboot */
++ reboot(0xfee1dead, 672274793, BMAGIC_HARD);
++
++ if (in_reboot()) {
++ // any exitcode is valid if we're in_reboot
++ } else if (WIFEXITED(wait_status) &amp;&amp; WEXITSTATUS(wait_status) == exit_value_proceed) {
++ kill(klog_pid, 9);
++ printf(&quot;proceeding, please wait...\n&quot;);
++
++ {
++ char * child_argv[2] = { &quot;/sbin/init&quot;, NULL };
++ execve(child_argv[0], child_argv, env);
++ }
++ fatal_error(&quot;failed to exec /sbin/init&quot;);
++ } else if (!WIFEXITED(wait_status) || WEXITSTATUS(wait_status) != 0) {
++ printf(&quot;exited abnormally :-( &quot;);
++ if (WIFSIGNALED(wait_status))
++ printf(&quot;-- received signal %d&quot;, WTERMSIG(wait_status));
++ printf(&quot;\n&quot;);
++ abnormal_termination = 1;
++ }
++
++ if (!abnormal_termination) {
++ int i;
++ for (i=0; i&lt;50; i++)
++ printf(&quot;\n&quot;); /* cleanup startkde messages */
++ }
++
++ if (testing)
++ return 0;
++
++ sync(); sync();
++ sleep(2);
++
++ printf(&quot;sending termination signals...&quot;);
++ kill(-1, 15);
++ sleep(2);
++ printf(&quot;done\n&quot;);
++
++ printf(&quot;sending kill signals...&quot;);
++ kill(-1, 9);
++ sleep(2);
++ printf(&quot;done\n&quot;);
++
++ unmount_filesystems();
++
++ sync(); sync();
++
++ if (!abnormal_termination) {
++ if (reboot_magic == BMAGIC_REBOOT) {
++#ifdef DEBUG
++ printf(&quot;automatic reboot in 10 seconds\n&quot;);
++ sleep(10);
++#endif
++ reboot(0xfee1dead, 672274793, reboot_magic);
++ } else {
++ printf(&quot;you may safely poweroff your computer now\n&quot;);
++ }
++ } else {
++ printf(&quot;you may safely reboot or halt your system\n&quot;);
++ }
++
++ select(0, NULL, NULL, NULL, NULL);
++ return 0;
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/init.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1kac">Added: drakx/trunk/mdk-stage1/ka.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ka.c (rev 0)
++++ drakx/trunk/mdk-stage1/ka.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,198 @@
++/*
++ * Copyright 2005 Mandriva
++ *
++ * This software may be freely redistributed under the terms of the GNU
++ * public license.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++#include &quot;ka.h&quot;
++#include &lt;sys/mount.h&gt;
++#include &quot;mount.h&quot;
++#include &lt;sys/wait.h&gt;
++#include &lt;dirent.h&gt;
++#include &lt;errno.h&gt;
++#include &lt;sys/socket.h&gt;
++#include &lt;netinet/in.h&gt;
++#include &lt;arpa/inet.h&gt;
++#include &lt;unistd.h&gt;
++
++#include &quot;config-stage1.h&quot;
++#include &quot;frontend.h&quot;
++#include &quot;log.h&quot;
++#include &quot;tools.h&quot;
++
++struct in_addr next_server = { 0 };
++
++#if 0
++static void save_stuff_for_rescue(void)
++{
++ copy_file(&quot;/etc/resolv.conf&quot;, STAGE2_LOCATION &quot;/etc/resolv.conf&quot;, NULL);
++}
++#endif
++
++static void my_pause(void) {
++ unsigned char t;
++ fflush(stdout);
++ read(0, &amp;t, 1);
++}
++
++static enum return_type ka_wait_for_stage2(int count)
++{
++ char * ramdisk = &quot;/dev/ram3&quot;; /* warning, verify that this file exists in the initrd*/
++ char * ka_launch[] = { &quot;/ka/ka-d-client&quot;, &quot;-w&quot;,&quot;-s&quot;,&quot;getstage2&quot;,&quot;-e&quot;,&quot;(cd /tmp/stage2; tar -x -f - )&quot;, NULL }; /* The command line for ka_launch */
++ char * mkfs_launch[] = { &quot;/sbin/mke2fs&quot;, &quot;-m&quot;, &quot;0&quot;, ramdisk, NULL}; /* The mkfs command for formating the ramdisk */
++
++ log_message(&quot;KA: Preparing to receive stage 2....&quot;);
++ wait_message(&quot;Preparing to receive stage 2&quot;);
++
++ int pida, wait_status;
++
++ if (!(pida = fork())) { /* Forking current process for running mkfs */
++ //close(1);
++ close(2);
++ execv(mkfs_launch[0], mkfs_launch); /* Formating the ramdisk */
++ printf(&quot;KA: Can't execute %s\n&lt;press Enter&gt;\n&quot;, mkfs_launch[0]);
++ my_pause();
++ return KAERR_CANTFORK;
++ }
++ while (wait4(-1, &amp;wait_status, 0, NULL) != pida) {}; /* Waiting the end of mkfs */
++ remove_wait_message();
++
++ wait_message(&quot;Mounting /dev/ram3 at %s&quot;, STAGE2_LOCATION);
++ if (my_mount(ramdisk, STAGE2_LOCATION, &quot;ext2&quot;, 1)) {/* Trying to mount the ramdisk */
++ return RETURN_ERROR;
++ }
++ remove_wait_message();
++
++ log_message(&quot;KA: Waiting for stage 2....&quot;);
++ wait_message(&quot;Waiting for rescue from KA server (Try %d/%d)&quot;, count, KA_MAX_RETRY);
++ pid_t pid; /* Process ID of the child process */
++ pid_t wpid; /* Process ID from wait() */
++ int status; /* Exit status from wait() */
++
++ pid = fork();
++ if ( pid == -1 ) {
++ fprintf(stderr, &quot;%s: Failed to fork()\n&quot;, strerror(errno));
++ exit(13);
++ } else if ( pid == 0 ) {
++ // close(2);
++ execv(ka_launch[0], ka_launch);
++ } else {
++ // wpid = wait(&amp;status); /* Child's exit status */
++ wpid = wait4(-1, &amp;status, 0, NULL);
++ if ( wpid == -1 ) {
++ fprintf(stderr,&quot;%s: wait()\n&quot;, strerror(errno));
++ return RETURN_ERROR;
++ } else if ( wpid != pid )
++ abort();
++ else {
++ if ( WIFEXITED(status) ) {
++ printf(&quot;Exited: $? = %d\n&quot;, WEXITSTATUS(status));
++ } else if ( WIFSIGNALED(status) ) {
++ printf(&quot;Signal: %d%s\n&quot;, WTERMSIG(status), WCOREDUMP(status) ? &quot; with core file.&quot; : &quot;&quot;);
++ }
++ }
++ }
++
++ remove_wait_message();
++ return RETURN_OK;
++ // if (!(pid = fork())) { /* Froking current process for running ka-deploy (client side) */
++ // close(1); /* Closing stdout */
++ // close(2); /* Closing stderr */
++ // execve(ka_launch[0], ka_launch,grab_env()); /* Running ka-deploy (client side) */
++ // printf(&quot;KA: Can't execute %s\n&lt;press Enter&gt;\n&quot;, ka_launch[0]);
++ // log_message(&quot;KA: Can't execute %s\n&lt;press Enter&gt;\n&quot;, ka_launch[0]);
++ // my_pause();
++ // return KAERR_CANTFORK;
++ //}
++
++ //while (wait4(-1, &amp;wait_status, 0, NULL) != pid) {}; /* Waiting the end of duplication */
++ // log_message(&quot;kalaunch ret %d\n&quot;, WIFEXITED(wait_status));
++ // remove_wait_message();
++ //sleep(100000);
++ // return RETURN_OK;
++}
++
++enum return_type perform_ka(void) {
++ enum return_type results;
++ int server_failure = 1; /* Number of time we've failed to find a ka server */
++ FILE *f = fopen (&quot;/ka/tftpserver&quot;,&quot;w&quot;);
++
++ if (f != NULL) {
++ /* Writing the NEXT_SERVER value of the DHCP Request in the /ka/tftpserver file */
++ fprintf(f,&quot;%s\n&quot;,inet_ntoa(next_server));
++ fclose(f);
++ }
++
++ log_message(&quot;KA: Trying to retrieve stage2 from server&quot;);
++ log_message(&quot;KA: ka_wait_for_stage2&quot;);
++ do {
++ /* We are trying to get a valid stage 2 (rescue) */
++ results=ka_wait_for_stage2(server_failure);
++ if (results != RETURN_OK) {
++ return results;
++ } else {
++ /* Trying to open STAGE2_LOCATION/ka directory */
++ char dir[255] = STAGE2_LOCATION;
++ strcat(dir,&quot;/ka&quot;);
++ DIR *dp = opendir(dir);
++
++ /* Does the STAGE2_LOCATION/ka directory exists ? = Does the rescue with ka well downloaded ?*/
++ if (!dp) {
++ log_message(&quot;KA: Server not found !&quot;);
++ /* Be sure that the STAGE2_LOCATION isn't mounted after receiving a wrong rescue */
++ if (umount (STAGE2_LOCATION)) {
++ log_perror(&quot;KA: Unable to umount STAGE2&quot;);
++ }
++ int cpt;
++
++ if (server_failure++ == KA_MAX_RETRY){
++ /* if the KA server can't be reach KA_MAX_RETRY times */
++ char * reboot_launch[] = { &quot;/sbin/reboot&quot;, NULL};
++ for (cpt=5; cpt&gt;0; cpt--) {
++ wait_message(&quot;!!! Can't reach a valid KA server !!! (Rebooting in %d sec)&quot;,cpt);
++ sleep (1);
++ }
++ /* Rebooting the computer to avoid infinite loop on ka mode */
++ execv(reboot_launch[0], reboot_launch);
++ }
++
++ for (cpt=5; cpt&gt;0; cpt--) {
++ wait_message(&quot;KA server not found ! (Try %d/%d in %d sec)&quot;,server_failure,KA_MAX_RETRY,cpt);
++ log_message(&quot;Ka not found %d/%d&quot;, server_failure,KA_MAX_RETRY);
++ sleep (1);
++ }
++ remove_wait_message();
++ /* We should try another time*/
++ results=RETURN_BACK;
++ continue;
++ }
++
++ if (dp) {
++ log_message(&quot;KA: Stage 2 downloaded successfully&quot;);
++ closedir(dp); /* Closing the /ka directory */
++ server_failure=1; /* Resetting server_failure */
++ results = RETURN_OK;
++ }
++ }
++
++ log_message(&quot;KA: Preparing chroot&quot;);
++ return RETURN_OK;
++
++ // if (IS_RESCUE) { /* if we are in rescue mode */
++ // save_stuff_for_rescue(); /* Saving resolve.conf */
++ // if (umount (STAGE2_LOCATION)) { /* Unmounting STAGE2 elseif kernel can't mount it ! */
++ // log_perror(&quot;KA: Unable to umount STAGE2&quot;);
++ // return RETURN_ERROR;
++ // }
++ // }
++ } while (results == RETURN_BACK);
++
++ // method_name = strdup(&quot;ka&quot;);
++ return RETURN_OK;
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/ka.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1kah">Added: drakx/trunk/mdk-stage1/ka.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ka.h (rev 0)
++++ drakx/trunk/mdk-stage1/ka.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,20 @@
++/*
++ * Copyright 2005 Mandriva
++ *
++ * This software may be freely redistributed under the terms of the GNU
++ * public license.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++#ifndef _KA_H_
++#define _KA_H_
++
++#define KAERR_CANTFORK -20
++
++enum return_type perform_ka(void);
++
++#endif
+
+
+Property changes on: drakx/trunk/mdk-stage1/ka.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1logc">Added: drakx/trunk/mdk-stage1/log.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/log.c (rev 0)
++++ drakx/trunk/mdk-stage1/log.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,94 @@
++/*
++ * Guillaume Cottenceau (gc@mandriva.com)
++ *
++ * Copyright 2000 Mandriva
++ *
++ * This software may be freely redistributed under the terms of the GNU
++ * public license.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++/*
++ * Portions from Erik Troan (ewt@redhat.com)
++ *
++ * Copyright 1996 Red Hat Software
++ *
++ */
++
++#include &lt;stdlib.h&gt;
++#include &lt;unistd.h&gt;
++#include &lt;fcntl.h&gt;
++#include &lt;stdarg.h&gt;
++#include &lt;stdio.h&gt;
++#include &lt;string.h&gt;
++#include &lt;time.h&gt;
++#include &lt;errno.h&gt;
++#include &quot;stage1.h&quot;
++
++#include &quot;log.h&quot;
++
++static FILE * logtty = NULL;
++static FILE * logfile = NULL;
++
++
++void vlog_message(const char * s, va_list args)
++{
++ va_list args_copy;
++ va_copy(args_copy, args);
++
++ if (logfile) {
++ fprintf(logfile, &quot;* &quot;);
++ vfprintf(logfile, s, args);
++ fprintf(logfile, &quot;\n&quot;);
++ fflush(logfile);
++ }
++ if (logtty) {
++ fprintf(logtty, &quot;* &quot;);
++ vfprintf(logtty, s, args_copy);
++ fprintf(logtty, &quot;\n&quot;);
++ fflush(logtty);
++ }
++
++ va_end(args_copy);
++}
++
++
++void log_message(const char * s, ...)
++{
++ va_list args;
++ va_start(args, s);
++ vlog_message(s, args);
++ va_end(args);
++
++ return;
++}
++
++void log_perror(const char *msg)
++{
++ log_message(&quot;%s: %s&quot;, msg, strerror(errno));
++}
++
++
++void open_log(void)
++{
++ if (!IS_TESTING) {
++ logtty = fopen(&quot;/dev/tty3&quot;, &quot;w&quot;);
++ logfile = fopen(&quot;/tmp/stage1.log&quot;, &quot;w&quot;);
++ }
++ else
++ logfile = fopen(&quot;debug.log&quot;, &quot;w&quot;);
++}
++
++void close_log(void)
++{
++ if (logfile) {
++ log_message(&quot;stage1: disconnecting life support systems&quot;);
++ fclose(logfile);
++ if (logtty)
++ fclose(logtty);
++ }
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/log.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1logh">Added: drakx/trunk/mdk-stage1/log.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/log.h (rev 0)
++++ drakx/trunk/mdk-stage1/log.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,34 @@
++/*
++ * Guillaume Cottenceau (gc@mandriva.com)
++ *
++ * Copyright 2000 Mandriva
++ *
++ * This software may be freely redistributed under the terms of the GNU
++ * public license.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++/*
++ * Portions from Erik Troan (ewt@redhat.com)
++ *
++ * Copyright 1996 Red Hat Software
++ *
++ */
++
++
++#ifndef _LOG_H_
++#define _LOG_H_
++
++#include &lt;stdarg.h&gt;
++
++void log_message(const char * s, ...) __attribute__ ((format (printf, 1, 2)));
++void vlog_message(const char * s, va_list args);
++void log_perror(const char *msg);
++void open_log(void);
++void close_log(void);
++
++#endif
+
+
+Property changes on: drakx/trunk/mdk-stage1/log.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1lomountc">Added: drakx/trunk/mdk-stage1/lomount.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/lomount.c (rev 0)
++++ drakx/trunk/mdk-stage1/lomount.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,196 @@
++/*
++ * Guillaume Cottenceau (gc@mandriva.com)
++ *
++ * Copyright 2000 Mandriva
++ *
++ * This software may be freely redistributed under the terms of the GNU
++ * public license.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++/* This code comes from util-linux-2.10n (mount/lomount.c)
++ * (this is a simplified version of this code)
++ */
++
++#include &lt;sys/types.h&gt;
++#include &lt;sys/mount.h&gt;
++#include &lt;sys/ioctl.h&gt;
++#include &lt;sys/mount.h&gt;
++#include &lt;errno.h&gt;
++#include &lt;fcntl.h&gt;
++#include &lt;stdio.h&gt;
++#include &lt;string.h&gt;
++#include &lt;unistd.h&gt;
++
++#include &quot;stage1.h&quot;
++#include &quot;frontend.h&quot;
++#include &quot;log.h&quot;
++#include &quot;mount.h&quot;
++#include &quot;modules.h&quot;
++
++#include &quot;lomount.h&quot;
++
++
++#define LO_NAME_SIZE 64
++#define LO_KEY_SIZE 32
++
++struct loop_info
++{
++ int lo_number; /* ioctl r/o */
++ dev_t lo_device; /* ioctl r/o */
++ unsigned long lo_inode; /* ioctl r/o */
++ dev_t lo_rdevice; /* ioctl r/o */
++ int lo_offset;
++ int lo_encrypt_type;
++ int lo_encrypt_key_size; /* ioctl w/o */
++ int lo_flags; /* ioctl r/o */
++ char lo_name[LO_NAME_SIZE];
++ unsigned char lo_encrypt_key[LO_KEY_SIZE]; /* ioctl w/o */
++ unsigned long lo_init[2];
++ char reserved[4];
++};
++
++#define LOOP_SET_FD 0x4C00
++#define LOOP_CLR_FD 0x4C01
++#define LOOP_SET_STATUS 0x4C02
++#define LOOP_GET_STATUS 0x4C03
++
++int
++set_loop (const char *device, const char *file)
++{
++ struct loop_info loopinfo;
++ int fd, ffd, mode;
++
++ mode = O_RDONLY;
++
++ if ((ffd = open (file, mode)) &lt; 0)
++ return 1;
++
++ if ((fd = open (device, mode)) &lt; 0) {
++ close(ffd);
++ return 1;
++ }
++
++ memset(&amp;loopinfo, 0, sizeof (loopinfo));
++ strncpy(loopinfo.lo_name, file, LO_NAME_SIZE);
++ loopinfo.lo_name[LO_NAME_SIZE - 1] = 0;
++ loopinfo.lo_offset = 0;
++
++#ifdef MCL_FUTURE
++ /*
++ * Oh-oh, sensitive data coming up. Better lock into memory to prevent
++ * passwd etc being swapped out and left somewhere on disk.
++ */
++
++ if(mlockall(MCL_CURRENT|MCL_FUTURE)) {
++ log_message(&quot;CRITICAL Couldn't lock into memory! %s (memlock)&quot;, strerror(errno));
++ return 1;
++ }
++#endif
++
++ if (ioctl(fd, LOOP_SET_FD, ffd) &lt; 0) {
++ close(fd);
++ close(ffd);
++ return 1;
++ }
++
++ if (ioctl(fd, LOOP_SET_STATUS, &amp;loopinfo) &lt; 0) {
++ (void) ioctl (fd, LOOP_CLR_FD, 0);
++ close(fd);
++ close(ffd);
++ return 1;
++ }
++
++ close(fd);
++ close(ffd);
++ return 0;
++}
++
++
++char* find_free_loop()
++{
++ struct loop_info loopinfo;
++ int i;
++ for (i=0; i&lt;256; i++) {
++ int fd;
++ char ldev[100];
++ sprintf(ldev, &quot;/dev/loop%d&quot;, i);
++ ensure_dev_exists(ldev);
++ fd = open(ldev, O_RDONLY);
++ if (!ioctl(fd, LOOP_GET_STATUS, &amp;loopinfo)) {
++ close(fd);
++ continue;
++ }
++ if (errno == ENXIO) {
++ log_message(&quot;%s is available&quot;, ldev);
++ close(fd);
++ return strdup(ldev);
++ } else {
++ log_perror(&quot;LOOP_GET_STATUS(unexpected error)&quot;);
++ close(fd);
++ continue;
++ }
++ }
++ return NULL;
++}
++
++void
++del_loop(char * loopdev)
++{
++ int fd;
++
++ if (!loopdev)
++ return;
++
++ if ((fd = open (loopdev, O_RDONLY)) &lt; 0)
++ return;
++
++ if (ioctl (fd, LOOP_CLR_FD, 0) &lt; 0)
++ return;
++
++ close (fd);
++}
++
++int
++lomount(char *loopfile, char *where, char **dev, int compressed)
++{
++
++ long int flag;
++ char * loopdev;
++
++ flag = MS_MGC_VAL;
++ flag |= MS_RDONLY;
++
++ my_insmod(&quot;loop&quot;, ANY_DRIVER_TYPE, &quot;max_loop=256&quot;, 1);
++ if (compressed) {
++ my_insmod(&quot;sqlzma&quot;, ANY_DRIVER_TYPE, NULL, 1);
++ my_insmod(&quot;squashfs_lzma&quot;, ANY_DRIVER_TYPE, NULL, 1);
++ my_insmod(&quot;squashfs&quot;, ANY_DRIVER_TYPE, NULL, 1);
++ }
++
++ if (!(loopdev = find_free_loop())) {
++ log_message(&quot;could not find a free loop&quot;);
++ return 1;
++ }
++ if (dev)
++ *dev = loopdev;
++
++ if (set_loop(loopdev, loopfile)) {
++ log_message(&quot;set_loop failed on %s (%s)&quot;, loopdev, strerror(errno));
++ return 1;
++ }
++
++ if (my_mount(loopdev, where, compressed ? &quot;squashfs&quot; : &quot;iso9660&quot;, 0)) {
++ del_loop(loopdev);
++ return 1;
++ }
++
++ log_message(&quot;lomount succeeded for %s on %s&quot;, loopfile, where);
++ return 0;
++}
++
++
+
+
+Property changes on: drakx/trunk/mdk-stage1/lomount.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1lomounth">Added: drakx/trunk/mdk-stage1/lomount.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/lomount.h (rev 0)
++++ drakx/trunk/mdk-stage1/lomount.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,21 @@
++/*
++ * Guillaume Cottenceau (gc@mandriva.com)
++ *
++ * Copyright 2000 Mandriva
++ *
++ * This software may be freely redistributed under the terms of the GNU
++ * public license.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++#ifndef LOMOUNT_H
++#define LOMOUNT_H
++
++int lomount(char *loopfile, char *where, char **loopdev, int compressed);
++void del_loop(char *loopdev);
++
++#endif
+
+
+Property changes on: drakx/trunk/mdk-stage1/lomount.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1modulesc">Added: drakx/trunk/mdk-stage1/modules.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/modules.c (rev 0)
++++ drakx/trunk/mdk-stage1/modules.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,490 @@
++/*
++ * Guillaume Cottenceau (gc@mandriva.com)
++ *
++ * Copyright 2000 Mandriva
++ *
++ * This software may be freely redistributed under the terms of the GNU
++ * public license.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++/*
++ * (1) calculate dependencies
++ * (2) unarchive relevant modules
++ * (3) insmod them
++ */
++
++#include &quot;stage1.h&quot;
++
++#include &lt;stdlib.h&gt;
++#include &lt;sys/types.h&gt;
++#include &lt;sys/stat.h&gt;
++#include &lt;sys/mount.h&gt;
++#include &lt;fcntl.h&gt;
++#include &lt;libgen.h&gt;
++#include &lt;unistd.h&gt;
++#include &lt;string.h&gt;
++#include &lt;stdio.h&gt;
++#include &lt;errno.h&gt;
++#include &lt;sys/utsname.h&gt;
++#include &quot;log.h&quot;
++#include &quot;utils.h&quot;
++#include &quot;frontend.h&quot;
++#include &quot;mount.h&quot;
++#include &quot;zlibsupport.h&quot;
++
++#include &quot;modules.h&quot;
++
++#define UEVENT_HELPER_FILE &quot;/sys/kernel/uevent_helper&quot;
++#define UEVENT_HELPER_VALUE &quot;/sbin/hotplug&quot;
++
++static char modules_directory[100];
++static struct module_deps_elem * modules_deps = NULL;
++static struct module_descr_elem * modules_descr = NULL;
++
++extern long init_module(void *, unsigned long, const char *);
++
++
++static const char *moderror(int err)
++{
++ switch (err) {
++ case ENOEXEC:
++ return &quot;Invalid module format&quot;;
++ case ENOENT:
++ return &quot;Unknown symbol in module&quot;;
++ case ESRCH:
++ return &quot;Module has wrong symbol version&quot;;
++ case EINVAL:
++ return &quot;Invalid parameters&quot;;
++ default:
++ return strerror(err);
++ }
++}
++
++int insmod_local_file(char * path, char * options)
++{
++ void *file;
++ unsigned long len;
++ int rc;
++
++ if (IS_TESTING)
++ return 0;
++
++ file = grab_file(path, &amp;len);
++
++ if (!file) {
++ log_perror(asprintf_(&quot;\terror reading %s&quot;, path));
++ return -1;
++ }
++
++ rc = init_module(file, len, options ? options : &quot;&quot;);
++ if (rc)
++ log_message(&quot;\terror: %s&quot;, moderror(errno));
++ return rc;
++}
++
++static char *kernel_module_extension(void)
++{
++ return &quot;.ko.gz&quot;;
++}
++
++
++static char *filename2modname(char * filename) {
++ char *modname, *p;
++
++ modname = strdup(basename(filename));
++ if (strstr(modname, kernel_module_extension())) {
++ modname[strlen(modname)-strlen(kernel_module_extension())] = '\0'; /* remove trailing .ko.gz */
++ }
++
++ p = modname;
++ while (p &amp;&amp; *p) {
++ if (*p == '-')
++ *p = '_';
++ p++;
++ }
++
++ return modname;
++}
++
++static void find_modules_directory(void)
++{
++ struct utsname kernel_uname;
++ char * prefix = &quot;/lib/modules&quot;;
++ char * release;
++ if (uname(&amp;kernel_uname)) {
++ fatal_error(&quot;uname failed&quot;);
++ }
++ release = kernel_uname.release;
++ sprintf(modules_directory , &quot;%s/%s&quot;, prefix, release);
++}
++
++static int load_modules_dependencies(void)
++{
++ char * deps_file = asprintf_(&quot;%s/%s&quot;, modules_directory, &quot;modules.dep&quot;);
++ char * buf, * ptr, * start, * end;
++ struct stat s;
++ int line, i;
++
++ log_message(&quot;loading modules dependencies&quot;);
++ buf = cat_file(deps_file, &amp;s);
++ if (!buf)
++ return -1;
++ line = line_counts(buf);
++ modules_deps = malloc(sizeof(*modules_deps) * (line+1));
++
++ start = buf;
++ line = 0;
++ while (start &lt; (buf+s.st_size) &amp;&amp; *start) {
++ char * tmp_deps[50];
++
++ end = strchr(start, '\n');
++ *end = '\0';
++
++ ptr = strchr(start, ':');
++ if (!ptr) {
++ start = end + 1;
++ continue;
++ }
++ *ptr = '\0';
++ ptr++;
++
++ while (*ptr &amp;&amp; (*ptr == ' ')) ptr++;
++
++ /* sort of a good line */
++ modules_deps[line].filename = start[0] == '/' ? strdup(start) : asprintf_(&quot;%s/%s&quot;, modules_directory, start);
++ modules_deps[line].modname = filename2modname(start);
++
++ start = ptr;
++ i = 0;
++ while (start &amp;&amp; *start &amp;&amp; i &lt; sizeof(tmp_deps)/sizeof(char *)) {
++ ptr = strchr(start, ' ');
++ if (ptr) *ptr = '\0';
++ tmp_deps[i++] = filename2modname(start);
++ if (ptr)
++ start = ptr + 1;
++ else
++ start = NULL;
++ while (start &amp;&amp; *start &amp;&amp; *start == ' ')
++ start++;
++ }
++ if(i &gt;= sizeof(tmp_deps)/sizeof(char *)-1) {
++ log_message(&quot;warning, more than %zu dependencies for module %s&quot;,
++ sizeof(tmp_deps)/sizeof(char *)-1,
++ modules_deps[line].modname);
++ i = sizeof(tmp_deps)/sizeof(char *)-1;
++ }
++ tmp_deps[i++] = NULL;
++
++ modules_deps[line].deps = memdup(tmp_deps, sizeof(char *) * i);
++
++ line++;
++ start = end + 1;
++ }
++ modules_deps[line].modname = NULL;
++
++ free(buf);
++
++ return 0;
++}
++
++
++static int load_modules_descriptions(void)
++{
++ char * descr_file = asprintf_(&quot;%s/%s&quot;, modules_directory, &quot;modules.description&quot;);
++ char * buf, * ptr, * start, * end;
++ struct stat s;
++ int line;
++
++ log_message(&quot;loading modules descriptions&quot;);
++
++ buf = cat_file(descr_file, &amp;s);
++ if (!buf)
++ return -1;
++ line = line_counts(buf);
++ modules_descr = malloc(sizeof(*modules_descr) * (line+1));
++
++ start = buf;
++ line = 0;
++ while (start &lt; (buf+s.st_size) &amp;&amp; *start) {
++ end = strchr(start, '\n');
++ *end = '\0';
++
++ ptr = strchr(start, '\t');
++ if (!ptr) {
++ start = end + 1;
++ continue;
++ }
++ *ptr = '\0';
++ ptr++;
++
++ modules_descr[line].modname = filename2modname(start);
++ modules_descr[line].description = strndup(ptr, 50);
++
++ line++;
++ start = end + 1;
++ }
++ modules_descr[line].modname = NULL;
++
++ free(buf);
++
++ return 0;
++}
++
++void init_firmware_loader(void)
++{
++ int fd = open(UEVENT_HELPER_FILE, O_WRONLY|O_TRUNC, 0666);
++ if (!fd) {
++ log_message(&quot;warning, unable to set firmware loader&quot;);
++ return;
++ }
++ write(fd, UEVENT_HELPER_VALUE, strlen(UEVENT_HELPER_VALUE));
++ close(fd);
++}
++
++void init_modules_insmoding(void)
++{
++ find_modules_directory();
++ if (load_modules_dependencies()) {
++ fatal_error(&quot;warning, error initing modules stuff, modules loading disabled&quot;);
++ }
++ if (load_modules_descriptions()) {
++ log_message(&quot;warning, error initing modules stuff&quot;);
++ }
++}
++
++
++static void add_modules_conf(char * str)
++{
++ static char data[5000] = &quot;&quot;;
++ char * target = &quot;/tmp/modules.conf&quot;;
++ int fd;
++
++ if (strlen(data) + strlen(str) &gt;= sizeof(data))
++ return;
++
++ strcat(data, str);
++ strcat(data, &quot;\n&quot;);
++
++ fd = open(target, O_CREAT|O_WRONLY|O_TRUNC, 00660);
++
++ if (fd == -1) {
++ log_perror(str);
++ return;
++ }
++
++ if (write(fd, data, strlen(data) + 1) != (ssize_t) (strlen(data) + 1))
++ log_perror(str);
++
++ close(fd);
++}
++
++
++int module_already_present(const char * name)
++{
++ FILE * f;
++ int answ = 0;
++
++ if ((f = fopen(&quot;/proc/modules&quot;, &quot;rb&quot;))) {
++ while (1) {
++ char buf[500];
++ if (!fgets(buf, sizeof(buf), f)) break;
++ if (!strncmp(name, buf, strlen(name)) &amp;&amp; buf[strlen(name)] == ' ')
++ answ = 1;
++ }
++ fclose(f);
++ }
++ return answ;
++}
++
++
++#ifndef ENABLE_NETWORK_STANDALONE
++static enum insmod_return insmod_with_deps(const char * mod_name, char * options, int allow_modules_floppy)
++{
++ struct module_deps_elem * dep;
++ const char * filename;
++
++ dep = modules_deps;
++ while (dep &amp;&amp; dep-&gt;modname &amp;&amp; strcmp(dep-&gt;modname, mod_name)) dep++;
++
++ if (dep &amp;&amp; dep-&gt;modname &amp;&amp; dep-&gt;deps) {
++ char ** one_dep;
++ one_dep = dep-&gt;deps;
++ while (*one_dep) {
++ /* here, we can fail but we don't care, if the error is
++ * important, the desired module will fail also */
++ insmod_with_deps(*one_dep, NULL, allow_modules_floppy);
++ one_dep++;
++ }
++ }
++
++ if (dep &amp;&amp; dep-&gt;filename) {
++ filename = dep-&gt;filename;
++ } else {
++ log_message(&quot;warning: unable to get module filename for %s&quot;, mod_name);
++ filename = mod_name;
++ }
++
++ if (module_already_present(mod_name))
++ return INSMOD_OK;
++
++ log_message(&quot;needs %s&quot;, filename);
++ {
++ return insmod_local_file((char *) filename, options);
++ }
++}
++#endif
++
++
++#ifndef DISABLE_NETWORK
++enum insmod_return my_insmod(const char * mod_name, enum driver_type type, char * options, int allow_modules_floppy)
++#else
++enum insmod_return my_insmod(const char * mod_name, enum driver_type type __attribute__ ((unused)), char * options, int allow_modules_floppy)
++#endif
++{
++ int i;
++#ifndef DISABLE_NETWORK
++ char ** net_devices = NULL; /* fucking compiler */
++#endif
++
++ if (module_already_present(mod_name))
++ return INSMOD_OK;
++
++ log_message(&quot;have to insmod %s&quot;, mod_name);
++
++#ifndef DISABLE_NETWORK
++ if (type == NETWORK_DEVICES)
++ net_devices = get_net_devices();
++#endif
++
++#ifdef ENABLE_NETWORK_STANDALONE
++ {
++ char *cmd = options ? asprintf_(&quot;/sbin/modprobe %s %s&quot;, mod_name, options) :
++ asprintf_(&quot;/sbin/modprobe %s&quot;, mod_name);
++ log_message(&quot;running %s&quot;, cmd);
++ i = system(cmd);
++ }
++#else
++ i = insmod_with_deps(mod_name, options, allow_modules_floppy);
++#endif
++ if (i == 0) {
++ log_message(&quot;\tsucceeded %s&quot;, mod_name);
++#ifndef DISABLE_NETWORK
++ if (type == NETWORK_DEVICES) {
++ char ** new_net_devices = get_net_devices();
++ while (new_net_devices &amp;&amp; *new_net_devices) {
++ char alias[500];
++ char ** ptr = net_devices;
++ while (ptr &amp;&amp; *ptr) {
++ if (!strcmp(*new_net_devices, *ptr))
++ goto already_present;
++ ptr++;
++ }
++ sprintf(alias, &quot;alias %s %s&quot;, *new_net_devices, mod_name);
++ add_modules_conf(alias);
++ log_message(&quot;NET: %s&quot;, alias);
++ net_discovered_interface(*new_net_devices);
++
++ already_present:
++ new_net_devices++;
++ }
++ }
++#endif
++ } else
++ log_message(&quot;warning, insmod failed (%s %s) (%d)&quot;, mod_name, options, i);
++
++ return i;
++
++}
++
++static enum return_type insmod_with_options(char * mod, enum driver_type type)
++{
++ char * questions[] = { &quot;Options&quot;, NULL };
++ static char ** answers = NULL;
++ enum return_type results;
++ char options[500] = &quot;options &quot;;
++
++ results = ask_from_entries(&quot;Please enter the parameters to give to the kernel:&quot;, questions, &amp;answers, 24, NULL);
++ if (results != RETURN_OK)
++ return results;
++
++ strcat(options, mod);
++ strcat(options, &quot; &quot;);
++ strcat(options, answers[0]); // because my_insmod will eventually modify the string
++
++ if (my_insmod(mod, type, answers[0], 1) != INSMOD_OK) {
++ stg1_error_message(&quot;Insmod failed.&quot;);
++ return RETURN_ERROR;
++ }
++
++ add_modules_conf(options);
++
++ return RETURN_OK;
++}
++
++static int strsortfunc(const void *a, const void *b)
++{
++ return strcmp(* (char * const *) a, * (char * const *) b);
++}
++
++enum return_type ask_insmod(enum driver_type type)
++{
++ enum return_type results;
++ char * choice;
++ char ** dlist = list_directory(modules_directory);
++ char ** modules = alloca(sizeof(char *) * (string_array_length(dlist) + 1));
++ char ** descrs = alloca(sizeof(char *) * (string_array_length(dlist) + 1));
++ char ** p_dlist = dlist;
++ char ** p_modules = modules;
++ char ** p_descrs = descrs;
++
++ qsort(dlist, string_array_length(dlist), sizeof(char *), strsortfunc);
++
++ unset_automatic(); /* we are in a fallback mode */
++
++ while (p_dlist &amp;&amp; *p_dlist) {
++ struct module_descr_elem * descr;
++ if (!strstr(*p_dlist, kernel_module_extension())) {
++ p_dlist++;
++ continue;
++ }
++ *p_modules = *p_dlist;
++ *p_descrs = NULL;
++ (*p_modules)[strlen(*p_modules)-strlen(kernel_module_extension())] = '\0'; /* remove trailing .ko.gz */
++
++ descr = modules_descr;
++ while (descr &amp;&amp; descr-&gt;modname &amp;&amp; strcmp(descr-&gt;modname, *p_modules)) descr++;
++ if (descr)
++ *p_descrs = descr-&gt;description;
++
++ p_dlist++;
++ p_modules++;
++ p_descrs++;
++ }
++ *p_modules = NULL;
++ *p_descrs = NULL;
++
++ if (modules &amp;&amp; *modules) {
++ char * mytype;
++ char msg[200];
++ if (type == MEDIA_ADAPTERS)
++ mytype = &quot;MEDIA&quot;;
++ else if (type == NETWORK_DEVICES)
++ mytype = &quot;NET&quot;;
++ else
++ return RETURN_ERROR;
++
++ snprintf(msg, sizeof(msg), &quot;Which driver should I try to gain %s access?&quot;, mytype);
++ results = ask_from_list_comments(msg, modules, descrs, &amp;choice);
++ if (results == RETURN_OK)
++ return insmod_with_options(choice, type);
++ else
++ return results;
++ } else {
++ return RETURN_BACK;
++ }
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/modules.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1modulesh">Added: drakx/trunk/mdk-stage1/modules.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/modules.h (rev 0)
++++ drakx/trunk/mdk-stage1/modules.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,43 @@
++/*
++ * Guillaume Cottenceau (gc@mandriva.com)
++ *
++ * Copyright 2000 Mandriva
++ *
++ * This software may be freely redistributed under the terms of the GNU
++ * public license.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++#ifndef _MODULES_H_
++#define _MODULES_H_
++
++#include &quot;stage1.h&quot;
++#include &quot;probing.h&quot;
++
++enum insmod_return { INSMOD_OK, INSMOD_FAILED, INSMOD_FAILED_FILE_NOT_FOUND };
++
++void init_modules_insmoding(void);
++void init_firmware_loader(void);
++int insmod_local_file(char * path, char * options);
++enum insmod_return my_insmod(const char * mod_name, enum driver_type type, char * options, int allow_modules_floppy);
++enum return_type ask_insmod(enum driver_type);
++int module_already_present(const char * name);
++
++struct module_deps_elem {
++ char * modname;
++ char * filename;
++ char ** deps;
++};
++
++struct module_descr_elem {
++ char * modname;
++ char * description;
++};
++
++extern int disable_modules;
++
++#endif
+
+
+Property changes on: drakx/trunk/mdk-stage1/modules.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1mountc">Added: drakx/trunk/mdk-stage1/mount.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/mount.c (rev 0)
++++ drakx/trunk/mdk-stage1/mount.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,246 @@
++/*
++ * Guillaume Cottenceau (gc@mandriva.com)
++ *
++ * Copyright 2000 Mandriva
++ *
++ * This software may be freely redistributed under the terms of the GNU
++ * public license.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++/*
++ * Portions from Erik Troan (ewt@redhat.com)
++ *
++ * Copyright 1996 Red Hat Software
++ *
++ */
++
++#include &lt;stdlib.h&gt;
++#include &lt;unistd.h&gt;
++#include &lt;string.h&gt;
++#include &lt;stdio.h&gt;
++#include &lt;sys/mount.h&gt;
++#include &lt;sys/stat.h&gt;
++#include &lt;sys/types.h&gt;
++#include &quot;log.h&quot;
++#include &quot;utils.h&quot;
++#include &quot;modules.h&quot;
++
++#include &quot;mount.h&quot;
++
++
++
++/* WARNING: this won't work if the argument is not /dev/ based */
++int ensure_dev_exists(const char * dev)
++{
++ int major, minor;
++ int type = S_IFBLK; /* my default type is block. don't forget to change for chars */
++ const char * name;
++ struct stat buf;
++ char * ptr;
++
++ name = &amp;dev[5]; /* we really need that dev be passed as /dev/something.. */
++
++ if (!stat(dev, &amp;buf))
++ return 0; /* if the file already exists, we assume it's correct */
++
++ if (ptr_begins_static_str(name, &quot;sd&quot;)) {
++ /* SCSI disks */
++ major = 8;
++ minor = (name[2] - 'a') &lt;&lt; 4;
++ if (name[3] &amp;&amp; name[4]) {
++ minor += 10 + (name[4] - '0');
++ if (name[3] &gt; 1 || name[4] &gt; 5) {
++ log_message(&quot;I don't know how to create device %s, please post bugreport to me!&quot;, dev);
++ return -1;
++ }
++ } else if (name[3])
++ minor += (name[3] - '0');
++ } else if (ptr_begins_static_str(name, &quot;hd&quot;)) {
++ /* IDE disks/cd's */
++ if (name[2] == 'a')
++ major = 3, minor = 0;
++ else if (name[2] == 'b')
++ major = 3, minor = 64;
++ else if (name[2] == 'c')
++ major = 22, minor = 0;
++ else if (name[2] == 'd')
++ major = 22, minor = 64;
++ else if (name[2] == 'e')
++ major = 33, minor = 0;
++ else if (name[2] == 'f')
++ major = 33, minor = 64;
++ else if (name[2] == 'g')
++ major = 34, minor = 0;
++ else if (name[2] == 'h')
++ major = 34, minor = 64;
++ else if (name[2] == 'i')
++ major = 56, minor = 0;
++ else if (name[2] == 'j')
++ major = 56, minor = 64;
++ else if (name[2] == 'k')
++ major = 57, minor = 0;
++ else if (name[2] == 'l')
++ major = 57, minor = 64;
++ else if (name[2] == 'm')
++ major = 88, minor = 0;
++ else if (name[2] == 'n')
++ major = 88, minor = 64;
++ else if (name[2] == 'o')
++ major = 89, minor = 0;
++ else if (name[2] == 'p')
++ major = 89, minor = 64;
++ else if (name[2] == 'q')
++ major = 90, minor = 0;
++ else if (name[2] == 'r')
++ major = 90, minor = 64;
++ else if (name[2] == 's')
++ major = 91, minor = 0;
++ else if (name[2] == 't')
++ major = 91, minor = 64;
++ else
++ return -1;
++
++ if (name[3] &amp;&amp; name[4])
++ minor += 10 + (name[4] - '0');
++ else if (name[3])
++ minor += (name[3] - '0');
++ } else if (ptr_begins_static_str(name , &quot;sr&quot;)) {
++ /* SCSI cd's */
++ major = 11;
++ minor = name[2] - '0';
++ } else if (ptr_begins_static_str(name, &quot;ida/&quot;) ||
++ ptr_begins_static_str(name, &quot;cciss/&quot;)) {
++ /* Compaq Smart Array &quot;ida/c0d0{p1}&quot; */
++ ptr = strchr(name, '/');
++ mkdir(&quot;/dev/ida&quot;, 0755);
++ mkdir(&quot;/dev/cciss&quot;, 0755);
++ major = ptr_begins_static_str(name, &quot;ida/&quot;) ? 72 : 104 + charstar_to_int(ptr+2);
++ ptr = strchr(ptr, 'd');
++ minor = 16 * charstar_to_int(ptr+1);
++ ptr = strchr(ptr, 'p');
++ minor += charstar_to_int(ptr+1);
++ } else if (ptr_begins_static_str(name, &quot;rd/&quot;)) {
++ /* DAC960 &quot;rd/cXdXXpX&quot; */
++ mkdir(&quot;/dev/rd&quot;, 0755);
++ major = 48 + charstar_to_int(name+4);
++ ptr = strchr(name+4, 'd');
++ minor = 8 * charstar_to_int(ptr+1);
++ ptr = strchr(ptr, 'p');
++ minor += charstar_to_int(ptr+1);
++ } else if (ptr_begins_static_str(name, &quot;loop&quot;)) {
++ major = 7;
++ minor = name[4] - '0';
++ } else if (ptr_begins_static_str(name, &quot;chloop&quot;)) {
++ major = 100;
++ minor = name[6] - '0';
++ } else {
++ log_message(&quot;I don't know how to create device %s, please post bugreport to me!&quot;, dev);
++ return -1;
++ }
++
++ if (mknod(dev, type | 0600, makedev(major, minor))) {
++ log_perror(dev);
++ return -1;
++ }
++
++ return 0;
++}
++
++
++/* mounts, creating the device if needed+possible */
++int my_mount(char *dev, char *location, char *fs, int force_rw)
++{
++ unsigned long flags = MS_MGC_VAL | (force_rw ? 0 : MS_RDONLY);
++ char * opts = NULL;
++ struct stat buf;
++ int rc;
++
++ if (strcmp(fs, &quot;nfs&quot;)) {
++ rc = ensure_dev_exists(dev);
++ if (rc != 0) {
++ log_message(&quot;could not create required device file&quot;);
++ return -1;
++ }
++ }
++
++ log_message(&quot;mounting %s on %s as type %s&quot;, dev, location, fs);
++
++ if (stat(location, &amp;buf)) {
++ if (mkdir(location, 0755)) {
++ log_perror(&quot;could not create location dir&quot;);
++ return -1;
++ }
++ } else if (!S_ISDIR(buf.st_mode)) {
++ log_message(&quot;not a dir %s, will unlink and mkdir&quot;, location);
++ if (unlink(location)) {
++ log_perror(&quot;could not unlink&quot;);
++ return -1;
++ }
++ if (mkdir(location, 0755)) {
++ log_perror(&quot;could not create location dir&quot;);
++ return -1;
++ }
++ }
++
++ if (!strcmp(fs, &quot;supermount&quot;)) {
++ my_insmod(&quot;supermount&quot;, ANY_DRIVER_TYPE, NULL, 1);
++ my_insmod(&quot;isofs&quot;, ANY_DRIVER_TYPE, NULL, 1);
++ opts = alloca(500);
++ sprintf(opts, &quot;dev=%s,fs=iso9660,tray_lock=always&quot;, dev);
++ dev = &quot;none&quot;;
++ }
++
++#ifndef DISABLE_MEDIAS
++ if (!strcmp(fs, &quot;vfat&quot;)) {
++ my_insmod(&quot;nls_cp437&quot;, ANY_DRIVER_TYPE, NULL, 1);
++ my_insmod(&quot;nls_iso8859_1&quot;, ANY_DRIVER_TYPE, NULL, 1);
++ my_insmod(&quot;vfat&quot;, ANY_DRIVER_TYPE, NULL, 1);
++ opts = &quot;check=relaxed&quot;;
++ }
++
++ if (!strcmp(fs, &quot;ntfs&quot;)) {
++ my_insmod(&quot;ntfs&quot;, ANY_DRIVER_TYPE, NULL, 1);
++ }
++
++ if (!strcmp(fs, &quot;reiserfs&quot;))
++ my_insmod(&quot;reiserfs&quot;, ANY_DRIVER_TYPE, NULL, 1);
++
++ if (!strcmp(fs, &quot;reiser4&quot;))
++ my_insmod(&quot;reiser4&quot;, ANY_DRIVER_TYPE, NULL, 1);
++
++ if (!strcmp(fs, &quot;jfs&quot;))
++ my_insmod(&quot;jfs&quot;, ANY_DRIVER_TYPE, NULL, 1);
++
++ if (!strcmp(fs, &quot;xfs&quot;))
++ my_insmod(&quot;xfs&quot;, ANY_DRIVER_TYPE, NULL, 1);
++
++ if (!strcmp(fs, &quot;ext4&quot;))
++ my_insmod(&quot;ext4&quot;, ANY_DRIVER_TYPE, NULL, 1);
++
++#endif
++ if (!strcmp(fs, &quot;iso9660&quot;))
++ my_insmod(&quot;isofs&quot;, ANY_DRIVER_TYPE, NULL, 1);
++
++#ifndef DISABLE_NETWORK
++ if (!strcmp(fs, &quot;nfs&quot;)) {
++ my_insmod(&quot;nfs&quot;, ANY_DRIVER_TYPE, NULL, 1);
++ log_message(&quot;preparing nfsmount for %s&quot;, dev);
++ rc = nfsmount_prepare(dev, &amp;opts);
++ if (rc != 0)
++ return rc;
++ }
++#endif
++
++ rc = mount(dev, location, fs, flags, opts);
++ if (rc != 0) {
++ log_perror(&quot;mount failed&quot;);
++ rmdir(location);
++ }
++
++ return rc;
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/mount.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1mounth">Added: drakx/trunk/mdk-stage1/mount.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/mount.h (rev 0)
++++ drakx/trunk/mdk-stage1/mount.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,32 @@
++/*
++ * Guillaume Cottenceau (gc@mandriva.com)
++ *
++ * Copyright 2000 Mandriva
++ *
++ * This software may be freely redistributed under the terms of the GNU
++ * public license.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++/*
++ * Portions from Erik Troan (ewt@redhat.com)
++ *
++ * Copyright 1996 Red Hat Software
++ *
++ */
++
++#ifndef _MOUNT_H_
++#define _MOUNT_H_
++
++#ifndef DISABLE_NETWORK
++#include &quot;nfsmount.h&quot;
++#endif
++
++int my_mount(char *dev, char *location, char *fs, int force_rw);
++int ensure_dev_exists(const char * dev);
++
++#endif
+
+
+Property changes on: drakx/trunk/mdk-stage1/mount.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1mount_rpcgenh">Added: drakx/trunk/mdk-stage1/mount_rpcgen.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/mount_rpcgen.h (rev 0)
++++ drakx/trunk/mdk-stage1/mount_rpcgen.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,208 @@
++/*
++ * Please do not edit this file.
++ * It was generated using rpcgen.
++ */
++
++#ifndef _MOUNT_H_RPCGEN
++#define _MOUNT_H_RPCGEN
++
++#include &lt;rpc/rpc.h&gt;
++
++#define MNTPATHLEN 1024
++#define MNTNAMLEN 255
++#define FHSIZE 32
++
++typedef char fhandle[FHSIZE];
++#ifdef __cplusplus
++extern &quot;C&quot; bool_t xdr_fhandle(XDR *, fhandle);
++#elif __STDC__
++extern bool_t xdr_fhandle(XDR *, fhandle);
++#else /* Old Style C */
++bool_t xdr_fhandle();
++#endif /* Old Style C */
++
++
++struct fhstatus {
++ u_int fhs_status;
++ union {
++ fhandle fhs_fhandle;
++ } fhstatus_u;
++};
++typedef struct fhstatus fhstatus;
++#ifdef __cplusplus
++extern &quot;C&quot; bool_t xdr_fhstatus(XDR *, fhstatus*);
++#elif __STDC__
++extern bool_t xdr_fhstatus(XDR *, fhstatus*);
++#else /* Old Style C */
++bool_t xdr_fhstatus();
++#endif /* Old Style C */
++
++
++typedef char *dirpath;
++#ifdef __cplusplus
++extern &quot;C&quot; bool_t xdr_dirpath(XDR *, dirpath*);
++#elif __STDC__
++extern bool_t xdr_dirpath(XDR *, dirpath*);
++#else /* Old Style C */
++bool_t xdr_dirpath();
++#endif /* Old Style C */
++
++
++typedef char *name;
++#ifdef __cplusplus
++extern &quot;C&quot; bool_t xdr_name(XDR *, name*);
++#elif __STDC__
++extern bool_t xdr_name(XDR *, name*);
++#else /* Old Style C */
++bool_t xdr_name();
++#endif /* Old Style C */
++
++
++typedef struct mountbody *mountlist;
++#ifdef __cplusplus
++extern &quot;C&quot; bool_t xdr_mountlist(XDR *, mountlist*);
++#elif __STDC__
++extern bool_t xdr_mountlist(XDR *, mountlist*);
++#else /* Old Style C */
++bool_t xdr_mountlist();
++#endif /* Old Style C */
++
++
++struct mountbody {
++ name ml_hostname;
++ dirpath ml_directory;
++ mountlist ml_next;
++};
++typedef struct mountbody mountbody;
++#ifdef __cplusplus
++extern &quot;C&quot; bool_t xdr_mountbody(XDR *, mountbody*);
++#elif __STDC__
++extern bool_t xdr_mountbody(XDR *, mountbody*);
++#else /* Old Style C */
++bool_t xdr_mountbody();
++#endif /* Old Style C */
++
++
++typedef struct groupnode *groups;
++#ifdef __cplusplus
++extern &quot;C&quot; bool_t xdr_groups(XDR *, groups*);
++#elif __STDC__
++extern bool_t xdr_groups(XDR *, groups*);
++#else /* Old Style C */
++bool_t xdr_groups();
++#endif /* Old Style C */
++
++
++struct groupnode {
++ name gr_name;
++ groups gr_next;
++};
++typedef struct groupnode groupnode;
++#ifdef __cplusplus
++extern &quot;C&quot; bool_t xdr_groupnode(XDR *, groupnode*);
++#elif __STDC__
++extern bool_t xdr_groupnode(XDR *, groupnode*);
++#else /* Old Style C */
++bool_t xdr_groupnode();
++#endif /* Old Style C */
++
++
++typedef struct exportnode *exports;
++#ifdef __cplusplus
++extern &quot;C&quot; bool_t xdr_exports(XDR *, exports*);
++#elif __STDC__
++extern bool_t xdr_exports(XDR *, exports*);
++#else /* Old Style C */
++bool_t xdr_exports();
++#endif /* Old Style C */
++
++
++struct exportnode {
++ dirpath ex_dir;
++ groups ex_groups;
++ exports ex_next;
++};
++typedef struct exportnode exportnode;
++#ifdef __cplusplus
++extern &quot;C&quot; bool_t xdr_exportnode(XDR *, exportnode*);
++#elif __STDC__
++extern bool_t xdr_exportnode(XDR *, exportnode*);
++#else /* Old Style C */
++bool_t xdr_exportnode();
++#endif /* Old Style C */
++
++
++#define MOUNTPROG ((u_long)100005)
++#define MOUNTVERS ((u_long)1)
++
++#ifdef __cplusplus
++#define MOUNTPROC_NULL ((u_long)0)
++extern &quot;C&quot; void * mountproc_null_1(void *, CLIENT *);
++extern &quot;C&quot; void * mountproc_null_1_svc(void *, struct svc_req *);
++#define MOUNTPROC_MNT ((u_long)1)
++extern &quot;C&quot; fhstatus * mountproc_mnt_1(dirpath *, CLIENT *);
++extern &quot;C&quot; fhstatus * mountproc_mnt_1_svc(dirpath *, struct svc_req *);
++#define MOUNTPROC_DUMP ((u_long)2)
++extern &quot;C&quot; mountlist * mountproc_dump_1(void *, CLIENT *);
++extern &quot;C&quot; mountlist * mountproc_dump_1_svc(void *, struct svc_req *);
++#define MOUNTPROC_UMNT ((u_long)3)
++extern &quot;C&quot; void * mountproc_umnt_1(dirpath *, CLIENT *);
++extern &quot;C&quot; void * mountproc_umnt_1_svc(dirpath *, struct svc_req *);
++#define MOUNTPROC_UMNTALL ((u_long)4)
++extern &quot;C&quot; void * mountproc_umntall_1(void *, CLIENT *);
++extern &quot;C&quot; void * mountproc_umntall_1_svc(void *, struct svc_req *);
++#define MOUNTPROC_EXPORT ((u_long)5)
++extern &quot;C&quot; exports * mountproc_export_1(void *, CLIENT *);
++extern &quot;C&quot; exports * mountproc_export_1_svc(void *, struct svc_req *);
++#define MOUNTPROC_EXPORTALL ((u_long)6)
++extern &quot;C&quot; exports * mountproc_exportall_1(void *, CLIENT *);
++extern &quot;C&quot; exports * mountproc_exportall_1_svc(void *, struct svc_req *);
++
++#elif __STDC__
++#define MOUNTPROC_NULL ((u_long)0)
++extern void * mountproc_null_1(void *, CLIENT *);
++extern void * mountproc_null_1_svc(void *, struct svc_req *);
++#define MOUNTPROC_MNT ((u_long)1)
++extern fhstatus * mountproc_mnt_1(dirpath *, CLIENT *);
++extern fhstatus * mountproc_mnt_1_svc(dirpath *, struct svc_req *);
++#define MOUNTPROC_DUMP ((u_long)2)
++extern mountlist * mountproc_dump_1(void *, CLIENT *);
++extern mountlist * mountproc_dump_1_svc(void *, struct svc_req *);
++#define MOUNTPROC_UMNT ((u_long)3)
++extern void * mountproc_umnt_1(dirpath *, CLIENT *);
++extern void * mountproc_umnt_1_svc(dirpath *, struct svc_req *);
++#define MOUNTPROC_UMNTALL ((u_long)4)
++extern void * mountproc_umntall_1(void *, CLIENT *);
++extern void * mountproc_umntall_1_svc(void *, struct svc_req *);
++#define MOUNTPROC_EXPORT ((u_long)5)
++extern exports * mountproc_export_1(void *, CLIENT *);
++extern exports * mountproc_export_1_svc(void *, struct svc_req *);
++#define MOUNTPROC_EXPORTALL ((u_long)6)
++extern exports * mountproc_exportall_1(void *, CLIENT *);
++extern exports * mountproc_exportall_1_svc(void *, struct svc_req *);
++
++#else /* Old Style C */
++#define MOUNTPROC_NULL ((u_long)0)
++extern void * mountproc_null_1();
++extern void * mountproc_null_1_svc();
++#define MOUNTPROC_MNT ((u_long)1)
++extern fhstatus * mountproc_mnt_1();
++extern fhstatus * mountproc_mnt_1_svc();
++#define MOUNTPROC_DUMP ((u_long)2)
++extern mountlist * mountproc_dump_1();
++extern mountlist * mountproc_dump_1_svc();
++#define MOUNTPROC_UMNT ((u_long)3)
++extern void * mountproc_umnt_1();
++extern void * mountproc_umnt_1_svc();
++#define MOUNTPROC_UMNTALL ((u_long)4)
++extern void * mountproc_umntall_1();
++extern void * mountproc_umntall_1_svc();
++#define MOUNTPROC_EXPORT ((u_long)5)
++extern exports * mountproc_export_1();
++extern exports * mountproc_export_1_svc();
++#define MOUNTPROC_EXPORTALL ((u_long)6)
++extern exports * mountproc_exportall_1();
++extern exports * mountproc_exportall_1_svc();
++#endif /* Old Style C */
++
++#endif /* !_MOUNT_H_RPCGEN */
+
+
+Property changes on: drakx/trunk/mdk-stage1/mount_rpcgen.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1networkc">Added: drakx/trunk/mdk-stage1/network.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/network.c (rev 0)
++++ drakx/trunk/mdk-stage1/network.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,1209 @@
++/*
++ * Guillaume Cottenceau (gc@mandriva.com)
++ *
++ * Copyright 2000 Mandriva
++ *
++ * This software may be freely redistributed under the terms of the GNU
++ * public license.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++/*
++ * Portions from Erik Troan (ewt@redhat.com)
++ *
++ * Copyright 1996 Red Hat Software
++ *
++ */
++
++#include &quot;stage1.h&quot;
++
++#include &lt;stdlib.h&gt;
++#include &lt;string.h&gt;
++#include &lt;unistd.h&gt;
++#include &lt;sys/socket.h&gt;
++#include &lt;net/if.h&gt;
++#include &lt;arpa/inet.h&gt;
++#include &lt;net/route.h&gt;
++#include &lt;sys/ioctl.h&gt;
++#include &lt;sys/mount.h&gt;
++#include &lt;stdio.h&gt;
++#include &lt;netdb.h&gt;
++#include &lt;resolv.h&gt;
++#include &lt;sys/utsname.h&gt;
++
++#include &quot;frontend.h&quot;
++#include &quot;modules.h&quot;
++#include &quot;probing.h&quot;
++#include &quot;log.h&quot;
++#include &quot;tools.h&quot;
++#include &quot;utils.h&quot;
++#include &quot;mount.h&quot;
++#include &quot;automatic.h&quot;
++#include &quot;dhcp.h&quot;
++#include &quot;adsl.h&quot;
++#include &quot;url.h&quot;
++#include &quot;dns.h&quot;
++
++#include &quot;network.h&quot;
++#include &quot;directory.h&quot;
++#include &quot;wireless.h&quot;
++
++#ifndef DISABLE_KA
++#include &quot;ka.h&quot;
++#endif
++
++static void error_message_net(void) /* reduce code size */
++{
++ stg1_error_message(&quot;Could not configure network.&quot;);
++}
++
++
++int configure_net_device(struct interface_info * intf)
++{
++ struct ifreq req;
++ struct rtentry route;
++ int s;
++ struct sockaddr_in addr;
++ struct in_addr ia;
++ char ip[20], nm[20], nw[20], bc[20];
++
++ addr.sin_family = AF_INET;
++ addr.sin_port = 0;
++
++ memcpy(&amp;ia, &amp;intf-&gt;ip, sizeof(intf-&gt;ip));
++ strcpy(ip, inet_ntoa(ia));
++
++ memcpy(&amp;ia, &amp;intf-&gt;netmask, sizeof(intf-&gt;netmask));
++ strcpy(nm, inet_ntoa(ia));
++
++ memcpy(&amp;ia, &amp;intf-&gt;broadcast, sizeof(intf-&gt;broadcast));
++ strcpy(bc, inet_ntoa(ia));
++
++ memcpy(&amp;ia, &amp;intf-&gt;network, sizeof(intf-&gt;network));
++ strcpy(nw, inet_ntoa(ia));
++
++ log_message(&quot;configuring device %s ip: %s nm: %s nw: %s bc: %s&quot;, intf-&gt;device, ip, nm, nw, bc);
++
++ if (IS_TESTING)
++ return 0;
++
++ s = socket(AF_INET, SOCK_DGRAM, 0);
++ if (s &lt; 0) {
++ log_perror(&quot;socket&quot;);
++ error_message_net();
++ return 1;
++ }
++
++ strcpy(req.ifr_name, intf-&gt;device);
++
++ if (intf-&gt;is_up == 1) {
++ log_message(&quot;interface already up, downing before reconfigure&quot;);
++
++ req.ifr_flags = 0;
++ if (ioctl(s, SIOCSIFFLAGS, &amp;req)) {
++ close(s);
++ log_perror(&quot;SIOCSIFFLAGS (downing)&quot;);
++ error_message_net();
++ return 1;
++ }
++ }
++
++ /* sets IP address */
++ addr.sin_port = 0;
++ memcpy(&amp;addr.sin_addr, &amp;intf-&gt;ip, sizeof(intf-&gt;ip));
++ memcpy(&amp;req.ifr_addr, &amp;addr, sizeof(addr));
++ if (ioctl(s, SIOCSIFADDR, &amp;req)) {
++ close(s);
++ log_perror(&quot;SIOCSIFADDR&quot;);
++ error_message_net();
++ return 1;
++ }
++
++ /* sets broadcast */
++ memcpy(&amp;addr.sin_addr, &amp;intf-&gt;broadcast, sizeof(intf-&gt;broadcast));
++ memcpy(&amp;req.ifr_broadaddr, &amp;addr, sizeof(addr));
++ if (ioctl(s, SIOCSIFBRDADDR, &amp;req)) {
++ close(s);
++ log_perror(&quot;SIOCSIFBRDADDR&quot;);
++ error_message_net();
++ return 1;
++ }
++
++ /* sets netmask */
++ memcpy(&amp;addr.sin_addr, &amp;intf-&gt;netmask, sizeof(intf-&gt;netmask));
++ memcpy(&amp;req.ifr_netmask, &amp;addr, sizeof(addr));
++ if (ioctl(s, SIOCSIFNETMASK, &amp;req)) {
++ close(s);
++ log_perror(&quot;SIOCSIFNETMASK&quot;);
++ error_message_net();
++ return 1;
++ }
++
++ if (intf-&gt;is_ptp)
++ req.ifr_flags = IFF_UP | IFF_RUNNING | IFF_POINTOPOINT | IFF_NOARP;
++ else
++ req.ifr_flags = IFF_UP | IFF_RUNNING | IFF_BROADCAST;
++
++ /* brings up networking! */
++ if (ioctl(s, SIOCSIFFLAGS, &amp;req)) {
++ close(s);
++ log_perror(&quot;SIOCSIFFLAGS (upping)&quot;);
++ error_message_net();
++ return 1;
++ }
++
++ memset(&amp;route, 0, sizeof(route));
++ route.rt_dev = intf-&gt;device;
++ route.rt_flags = RTF_UP;
++
++ memcpy(&amp;addr.sin_addr, &amp;intf-&gt;network, sizeof(intf-&gt;network));
++ memcpy(&amp;route.rt_dst, &amp;addr, sizeof(addr));
++
++ memcpy(&amp;addr.sin_addr, &amp;intf-&gt;netmask, sizeof(intf-&gt;netmask));
++ memcpy(&amp;route.rt_genmask, &amp;addr, sizeof(addr));
++
++ /* adds route */
++ if (ioctl(s, SIOCADDRT, &amp;route)) {
++ close(s);
++ log_perror(&quot;SIOCADDRT&quot;);
++ error_message_net();
++ return 1;
++ }
++
++ close(s);
++
++ intf-&gt;is_up = 1;
++
++ if (intf-&gt;boot_proto != BOOTPROTO_DHCP &amp;&amp; !streq(intf-&gt;device, &quot;lo&quot;)) {
++ /* I need to sleep a bit in order for kernel to finish
++ init of the network device; if not, first sendto() for
++ gethostbyaddr will get an EINVAL. */
++ wait_message(&quot;Bringing up networking...&quot;);
++ sleep(2);
++ remove_wait_message();
++ }
++
++ return 0;
++}
++
++/* host network informations */
++char * hostname = NULL;
++char * domain = NULL;
++struct in_addr gateway = { 0 };
++struct in_addr dns_server = { 0 };
++struct in_addr dns_server2 = { 0 };
++
++static int add_default_route(void)
++{
++ int s;
++ struct rtentry route;
++ struct sockaddr_in addr;
++
++ if (IS_TESTING)
++ return 0;
++
++ if (gateway.s_addr == 0) {
++ log_message(&quot;no gateway provided, can't add default route&quot;);
++ return 0;
++ }
++
++ s = socket(AF_INET, SOCK_DGRAM, 0);
++ if (s &lt; 0) {
++ close(s);
++ log_perror(&quot;socket&quot;);
++ error_message_net();
++ return 1;
++ }
++
++ memset(&amp;route, 0, sizeof(route));
++
++ addr.sin_family = AF_INET;
++ addr.sin_port = 0;
++ addr.sin_addr = gateway;
++ memcpy(&amp;route.rt_gateway, &amp;addr, sizeof(addr));
++
++ addr.sin_addr.s_addr = INADDR_ANY;
++ memcpy(&amp;route.rt_dst, &amp;addr, sizeof(addr));
++ memcpy(&amp;route.rt_genmask, &amp;addr, sizeof(addr));
++
++ route.rt_flags = RTF_UP | RTF_GATEWAY;
++ route.rt_metric = 0;
++
++ if (ioctl(s, SIOCADDRT, &amp;route)) {
++ close(s);
++ log_perror(&quot;SIOCADDRT&quot;);
++ error_message_net();
++ return 1;
++ }
++
++ close(s);
++
++ return 0;
++}
++
++
++static int write_resolvconf(void)
++{
++ char * filename = &quot;/etc/resolv.conf&quot;;
++ FILE * f;
++
++ if (dns_server.s_addr == 0) {
++ log_message(&quot;resolvconf needs a dns server&quot;);
++ return -1;
++ }
++
++ f = fopen(filename, &quot;w&quot;);
++ if (!f) {
++ log_perror(filename);
++ return -1;
++ }
++
++ if (domain)
++ fprintf(f, &quot;search %s\n&quot;, domain); /* we can live without the domain search (user will have to enter fully-qualified names) */
++ fprintf(f, &quot;nameserver %s\n&quot;, inet_ntoa(dns_server));
++ if (dns_server2.s_addr != 0)
++ fprintf(f, &quot;nameserver %s\n&quot;, inet_ntoa(dns_server2));
++
++ fclose(f);
++ res_init(); /* reinit the resolver so DNS changes take affect */
++
++ return 0;
++}
++
++
++static int save_netinfo(struct interface_info * intf)
++{
++ char * file_network = &quot;/tmp/network&quot;;
++ char file_intf[500];
++ FILE * f;
++
++ f = fopen(file_network, &quot;w&quot;);
++ if (!f) {
++ log_perror(file_network);
++ return -1;
++ }
++
++ fprintf(f, &quot;NETWORKING=yes\n&quot;);
++ fprintf(f, &quot;FORWARD_IPV4=false\n&quot;);
++
++ if (hostname &amp;&amp; !intf-&gt;boot_proto == BOOTPROTO_DHCP)
++ fprintf(f, &quot;HOSTNAME=%s\n&quot;, hostname);
++ if (gateway.s_addr != 0)
++ fprintf(f, &quot;GATEWAY=%s\n&quot;, inet_ntoa(gateway));
++
++ fclose(f);
++
++
++ strcpy(file_intf, &quot;/tmp/ifcfg-&quot;);
++ strcat(file_intf, intf-&gt;device);
++
++ f = fopen(file_intf, &quot;w&quot;);
++ if (!f) {
++ log_perror(file_intf);
++ return -1;
++ }
++
++ fprintf(f, &quot;DEVICE=%s\n&quot;, intf-&gt;device);
++
++ if (intf-&gt;boot_proto == BOOTPROTO_DHCP) {
++ fprintf(f, &quot;BOOTPROTO=dhcp\n&quot;);
++ if (dhcp_hostname &amp;&amp; !streq(dhcp_hostname, &quot;&quot;))
++ fprintf(f, &quot;DHCP_HOSTNAME=%s\n&quot;, dhcp_hostname);
++ } else if (intf-&gt;boot_proto == BOOTPROTO_STATIC) {
++ fprintf(f, &quot;BOOTPROTO=static\n&quot;);
++ fprintf(f, &quot;IPADDR=%s\n&quot;, inet_ntoa(intf-&gt;ip));
++ fprintf(f, &quot;NETMASK=%s\n&quot;, inet_ntoa(intf-&gt;netmask));
++ fprintf(f, &quot;NETWORK=%s\n&quot;, inet_ntoa(intf-&gt;network));
++ fprintf(f, &quot;BROADCAST=%s\n&quot;, inet_ntoa(intf-&gt;broadcast));
++ if (domain)
++ fprintf(f, &quot;DOMAIN=%s\n&quot;, domain);
++ if (dns_server.s_addr != 0)
++ fprintf(f, &quot;DNS1=%s\n&quot;, inet_ntoa(dns_server));
++ if (dns_server2.s_addr != 0)
++ fprintf(f, &quot;DNS2=%s\n&quot;, inet_ntoa(dns_server2));
++ } else if (intf-&gt;boot_proto == BOOTPROTO_ADSL_PPPOE) {
++ fprintf(f, &quot;BOOTPROTO=adsl_pppoe\n&quot;);
++ fprintf(f, &quot;USER=%s\n&quot;, intf-&gt;user);
++ fprintf(f, &quot;PASS=%s\n&quot;, intf-&gt;pass);
++ fprintf(f, &quot;ACNAME=%s\n&quot;, intf-&gt;acname);
++ }
++
++ fclose(f);
++
++ return 0;
++}
++
++
++char * guess_netmask(char * ip_addr)
++{
++ struct in_addr addr;
++ unsigned long int tmp;
++
++ if (streq(ip_addr, &quot;&quot;) || !inet_aton(ip_addr, &amp;addr))
++ return &quot;&quot;;
++
++ log_message(&quot;guessing netmask&quot;);
++
++ tmp = ntohl(addr.s_addr);
++
++ if (((tmp &amp; 0xFF000000) &gt;&gt; 24) &lt;= 127)
++ return &quot;255.0.0.0&quot;;
++ else if (((tmp &amp; 0xFF000000) &gt;&gt; 24) &lt;= 191)
++ return &quot;255.255.0.0&quot;;
++ else
++ return &quot;255.255.255.0&quot;;
++}
++
++
++char * guess_domain_from_hostname(char *hostname)
++{
++ char *domain = strchr(strdup(hostname), '.');
++ if (!domain || domain[1] == '\0') {
++ log_message(&quot;unable to guess domain from hostname: %s&quot;, hostname);
++ return NULL;
++ }
++ return domain + 1; /* skip '.' */
++}
++
++
++static void static_ip_callback(char ** strings)
++{
++ struct in_addr addr;
++
++ static int done = 0;
++ if (done)
++ return;
++ if (streq(strings[0], &quot;&quot;) || !inet_aton(strings[0], &amp;addr))
++ return;
++ done = 1;
++
++ if (!strcmp(strings[1], &quot;&quot;)) {
++ char * ptr;
++ strings[1] = strdup(strings[0]);
++ ptr = strrchr(strings[1], '.');
++ if (ptr)
++ *(ptr+1) = '\0';
++ }
++
++ if (!strcmp(strings[2], &quot;&quot;))
++ strings[2] = strdup(strings[1]);
++
++ if (!strcmp(strings[3], &quot;&quot;))
++ strings[3] = strdup(guess_netmask(strings[0]));
++}
++
++
++static enum return_type setup_network_interface(struct interface_info * intf)
++{
++ enum return_type results;
++ char * bootprotos[] = { &quot;DHCP&quot;, &quot;Static&quot;, &quot;ADSL&quot;, NULL };
++ char * bootprotos_auto[] = { &quot;dhcp&quot;, &quot;static&quot;, &quot;adsl&quot; };
++ char * choice;
++
++ results = ask_from_list_auto(&quot;Please select your network connection type.&quot;, bootprotos, &amp;choice, &quot;network&quot;, bootprotos_auto);
++ if (results != RETURN_OK)
++ return results;
++
++ if (!strcmp(choice, &quot;Static&quot;)) {
++ char * questions[] = { &quot;IP of this machine&quot;, &quot;IP of DNS&quot;, &quot;IP of default gateway&quot;, &quot;Netmask&quot;, NULL };
++ char * questions_auto[] = { &quot;ip&quot;, &quot;dns&quot;, &quot;gateway&quot;, &quot;netmask&quot; };
++ static char ** answers = NULL;
++ struct in_addr addr;
++
++ results = ask_from_entries_auto(&quot;Please enter the network information. (leave netmask blank for Internet standard)&quot;,
++ questions, &amp;answers, 16, questions_auto, static_ip_callback);
++ if (results != RETURN_OK)
++ return setup_network_interface(intf);
++
++ if (streq(answers[0], &quot;&quot;) || !inet_aton(answers[0], &amp;addr)) {
++ stg1_error_message(&quot;Invalid IP address.&quot;);
++ return setup_network_interface(intf);
++ }
++ memcpy(&amp;intf-&gt;ip, &amp;addr, sizeof(addr));
++
++ if (!inet_aton(answers[1], &amp;dns_server)) {
++ log_message(&quot;invalid DNS&quot;);
++ dns_server.s_addr = 0; /* keep an understandable state */
++ }
++
++ if (streq(answers[0], answers[1])) {
++ log_message(&quot;IP and DNS are the same, guess you don't want a DNS, disabling it&quot;);
++ dns_server.s_addr = 0; /* keep an understandable state */
++ }
++
++ if (!inet_aton(answers[2], &amp;gateway)) {
++ log_message(&quot;invalid gateway&quot;);
++ gateway.s_addr = 0; /* keep an understandable state */
++ }
++
++ if ((streq(answers[3], &quot;&quot;) &amp;&amp; inet_aton(guess_netmask(answers[0]), &amp;addr))
++ || inet_aton(answers[3], &amp;addr))
++ memcpy(&amp;intf-&gt;netmask, &amp;addr, sizeof(addr));
++ else {
++ stg1_error_message(&quot;Invalid netmask.&quot;);
++ return setup_network_interface(intf);
++ }
++
++ *((uint32_t *) &amp;intf-&gt;broadcast) = (*((uint32_t *) &amp;intf-&gt;ip) &amp;
++ *((uint32_t *) &amp;intf-&gt;netmask)) | ~(*((uint32_t *) &amp;intf-&gt;netmask));
++
++ inet_aton(&quot;255.255.255.255&quot;, &amp;addr);
++ if (!memcmp(&amp;addr, &amp;intf-&gt;netmask, sizeof(addr))) {
++ log_message(&quot;netmask is 255.255.255.255 -&gt; point to point device&quot;);
++ intf-&gt;network = gateway;
++ intf-&gt;is_ptp = 1;
++ } else {
++ *((uint32_t *) &amp;intf-&gt;network) = *((uint32_t *) &amp;intf-&gt;ip) &amp; *((uint32_t *) &amp;intf-&gt;netmask);
++ intf-&gt;is_ptp = 0;
++ }
++ intf-&gt;boot_proto = BOOTPROTO_STATIC;
++
++ if (configure_net_device(intf))
++ return RETURN_ERROR;
++
++ } else if (streq(choice, &quot;DHCP&quot;)) {
++ results = perform_dhcp(intf);
++
++ if (results == RETURN_BACK)
++ return setup_network_interface(intf);
++ if (results == RETURN_ERROR)
++ return results;
++ intf-&gt;boot_proto = BOOTPROTO_DHCP;
++
++ if (configure_net_device(intf))
++ return RETURN_ERROR;
++
++ } else if (streq(choice, &quot;ADSL&quot;)) {
++ results = perform_adsl(intf);
++
++ if (results == RETURN_BACK)
++ return setup_network_interface(intf);
++ if (results == RETURN_ERROR)
++ return results;
++ } else
++ return RETURN_ERROR;
++
++ return add_default_route();
++}
++
++
++static enum return_type configure_network(struct interface_info * intf)
++{
++ char * dnshostname;
++
++ if (hostname &amp;&amp; domain)
++ return RETURN_OK;
++
++ dnshostname = mygethostbyaddr(inet_ntoa(intf-&gt;ip));
++
++ if (dnshostname) {
++ if (intf-&gt;boot_proto == BOOTPROTO_STATIC)
++ hostname = strdup(dnshostname);
++ domain = guess_domain_from_hostname(dnshostname);
++ if (domain) {
++ log_message(&quot;got hostname and domain from dns entry, %s and %s&quot;, dnshostname, domain);
++ return RETURN_OK;
++ }
++ } else
++ log_message(&quot;reverse name lookup on self failed&quot;);
++
++ if (domain)
++ return RETURN_OK;
++
++ dnshostname = NULL;
++ if (dns_server.s_addr != 0) {
++ wait_message(&quot;Trying to resolve dns...&quot;);
++ dnshostname = mygethostbyaddr(inet_ntoa(dns_server));
++ remove_wait_message();
++ if (dnshostname) {
++ log_message(&quot;got DNS fullname, %s&quot;, dnshostname);
++ domain = guess_domain_from_hostname(dnshostname);
++ } else
++ log_message(&quot;reverse name lookup on DNS failed&quot;);
++ } else
++ log_message(&quot;no DNS, unable to guess domain&quot;);
++
++ if (domain) {
++ log_message(&quot;got domain from DNS fullname, %s&quot;, domain);
++ } else {
++ enum return_type results;
++ char * questions[] = { &quot;Host name&quot;, &quot;Domain name&quot;, NULL };
++ char * questions_auto[] = { &quot;hostname&quot;, &quot;domain&quot; };
++ static char ** answers = NULL;
++ char * boulet;
++
++ if (dhcp_hostname || dhcp_domain) {
++ answers = (char **) malloc(sizeof(questions));
++ answers[0] = strdup(dhcp_hostname);
++ answers[1] = strdup(dhcp_domain);
++ }
++
++ if (!dhcp_hostname || !dhcp_domain) {
++ results = ask_from_entries_auto(&quot;I could not guess hostname and domain name; please fill in this information. &quot;
++ &quot;Valid answers are for example: `mybox' for hostname and `mynetwork.com' for &quot;
++ &quot;domain name, for a machine called `mybox.mynetwork.com' on the Internet.&quot;,
++ questions, &amp;answers, 32, questions_auto, NULL);
++ if (results != RETURN_OK)
++ return results;
++ }
++
++ hostname = answers[0];
++ if ((boulet = strchr(hostname, '.')) != NULL)
++ boulet[0] = '\0';
++ domain = answers[1];
++ }
++
++ log_message(&quot;using hostname %s&quot;, hostname);
++ log_message(&quot;using domain %s&quot;, domain);
++
++ return RETURN_OK;
++}
++
++
++static enum return_type bringup_networking(struct interface_info * intf)
++{
++ static struct interface_info loopback;
++ enum return_type results;
++
++ my_insmod(&quot;af_packet&quot;, ANY_DRIVER_TYPE, NULL, 1);
++
++ do {
++ results = configure_wireless(intf-&gt;device);
++ } while (results == RETURN_ERROR);
++
++ if (results == RETURN_BACK)
++ return RETURN_BACK;
++
++ do {
++ results = setup_network_interface(intf);
++ if (results != RETURN_OK)
++ return results;
++ write_resolvconf();
++ results = configure_network(intf);
++ } while (results == RETURN_ERROR);
++
++ if (results == RETURN_BACK)
++ return bringup_networking(intf);
++
++ write_resolvconf(); /* maybe we have now domain to write also */
++
++ if (loopback.is_up == 0) {
++ int rc;
++ strcpy(loopback.device, &quot;lo&quot;);
++ loopback.is_ptp = 0;
++ loopback.is_up = 0;
++ loopback.ip.s_addr = htonl(0x7f000001);
++ loopback.netmask.s_addr = htonl(0xff000000);
++ loopback.broadcast.s_addr = htonl(0x7fffffff);
++ loopback.network.s_addr = htonl(0x7f000000);
++ rc = configure_net_device(&amp;loopback);
++ if (rc)
++ return RETURN_ERROR;
++ }
++
++ return RETURN_OK;
++}
++
++
++static char * auto_select_up_intf(int detection_mode)
++{
++#define SIOCETHTOOL 0x8946
++#define ETHTOOL_GLINK 0x0000000a /* Get link status (ethtool_value) */
++
++ struct ethtool_value {
++ uint32_t cmd;
++ uint32_t data;
++ };
++
++ char ** interfaces, ** ptr;
++ interfaces = get_net_devices();
++
++ int s;
++ s = socket(AF_INET, SOCK_DGRAM, 0);
++ if (s &lt; 0) {
++ return NULL;
++ }
++
++ ptr = interfaces;
++ while (ptr &amp;&amp; *ptr) {
++ if (detection_mode != AUTO_DETECTION_WIRED || !wireless_is_aware(s, *interfaces)) {
++ struct ifreq ifr;
++ struct ethtool_value edata;
++ strncpy(ifr.ifr_name, *ptr, IFNAMSIZ);
++ edata.cmd = ETHTOOL_GLINK;
++ ifr.ifr_data = (caddr_t)&amp;edata;
++ if (ioctl(s, SIOCETHTOOL, &amp;ifr) == 0 &amp;&amp; edata.data) {
++ close(s);
++ log_message(&quot;NETWORK: choosing interface %s (link beat detected)&quot;, *ptr);
++ return *ptr;
++ }
++ }
++ ptr++;
++ }
++
++ log_message(&quot;NETWORK: no interface has a link beat&quot;);
++
++ if (detection_mode == AUTO_DETECTION_WIRED) {
++ ptr = interfaces;
++ while (ptr &amp;&amp; *ptr) {
++ if (!wireless_is_aware(s, *interfaces)) {
++ close(s);
++ log_message(&quot;NETWORK: choosing interface %s (wired interface)&quot;, *ptr);
++ return *ptr;
++ }
++ ptr++;
++ }
++ log_message(&quot;NETWORK: no interface is wired&quot;);
++ }
++
++ close(s);
++
++ return NULL;
++}
++
++
++static char * interface_select(void)
++{
++ char ** interfaces, ** ptr;
++ char * descriptions[50];
++ char * choice;
++ int i, count = 0;
++ enum return_type results;
++
++ interfaces = get_net_devices();
++
++ ptr = interfaces;
++ while (ptr &amp;&amp; *ptr) {
++ count++;
++ ptr++;
++ }
++
++ if (count == 0) {
++ stg1_error_message(&quot;No NET device found.\n&quot;
++ &quot;Hint: if you're using a Laptop, note that PCMCIA Network adapters are now supported either with `pcmcia.img' or `network.img', please try both these bootdisks.&quot;);
++ i = ask_insmod(NETWORK_DEVICES);
++ if (i == RETURN_BACK)
++ return NULL;
++ return interface_select();
++ }
++
++ if (count == 1)
++ return *interfaces;
++
++ /* this can't be done in ask_from_list_comments_auto because &quot;auto&quot; and &quot;wired&quot; are not in the interfaces list */
++ if (IS_AUTOMATIC) {
++ enum auto_detection_type auto_detect = AUTO_DETECTION_NONE;
++ if (streq(get_auto_value(&quot;interface&quot;), &quot;auto&quot;))
++ auto_detect = AUTO_DETECTION_ALL;
++ else if (streq(get_auto_value(&quot;interface&quot;), &quot;wired&quot;))
++ auto_detect = AUTO_DETECTION_WIRED;
++ if (auto_detect != AUTO_DETECTION_NONE) {
++ choice = auto_select_up_intf(auto_detect);
++ if (choice)
++ return choice;
++ }
++ }
++
++ i = 0;
++ while (interfaces[i]) {
++ descriptions[i] = get_net_intf_description(interfaces[i]);
++ i++;
++ }
++
++ results = ask_from_list_comments_auto(&quot;Please choose the NET device to use for the installation.&quot;,
++ interfaces, descriptions, &amp;choice, &quot;interface&quot;, interfaces);
++
++ if (results != RETURN_OK)
++ return NULL;
++
++ return choice;
++}
++
++static enum return_type get_http_proxy(char **http_proxy_host, char **http_proxy_port)
++{
++ char *questions[] = { &quot;HTTP proxy host&quot;, &quot;HTTP proxy port&quot;, NULL };
++ char *questions_auto[] = { &quot;proxy_host&quot;, &quot;proxy_port&quot;, NULL };
++ static char ** answers = NULL;
++ enum return_type results;
++
++ results = ask_from_entries_auto(&quot;Please enter HTTP proxy host and port if you need it, else leave them blank or cancel.&quot;,
++ questions, &amp;answers, 40, questions_auto, NULL);
++ if (results == RETURN_OK) {
++ *http_proxy_host = answers[0];
++ *http_proxy_port = answers[1];
++ } else {
++ *http_proxy_host = NULL;
++ *http_proxy_port = NULL;
++ }
++
++ return results;
++}
++
++
++static int url_split(const char *url, const char *protocol, char **host, char **path)
++{
++ char *protocol_sep, *host_sep;
++
++ protocol_sep = strstr(url, &quot;://&quot;);
++ if (!protocol_sep) {
++ log_message(&quot;NETWORK: no protocol in \&quot;%s\&quot;&quot;, url);
++ return -1;
++ }
++
++ if (strncmp(protocol, url, protocol_sep - url))
++ return -1;
++
++ url = protocol_sep + 3;
++ host_sep = strchr(url, '/');
++ if (!host_sep || host_sep == url) {
++ log_message(&quot;NETWORK: no hostname in \&quot;%s\&quot;&quot;, url);
++ return -1;
++ }
++
++ *host = strndup(url, host_sep - url);
++ *path = strdup(host_sep);
++
++ return 0;
++}
++
++#define MIRRORLIST_MAX_ITEMS 500
++typedef char *mirrorlist_t[2][MIRRORLIST_MAX_ITEMS+1];
++
++static enum return_type get_mirrorlist(mirrorlist_t mirrorlist, int start, char *version, const char *protocol, char *http_proxy_host, char *http_proxy_port) {
++ int fd, size, line_pos = 0;
++ char path[1024];
++ char line[1024];
++ char type[100] = DISTRIB_TYPE;
++ int mirror_idx = start;
++
++ int use_http_proxy = http_proxy_host &amp;&amp; http_proxy_port &amp;&amp; !streq(http_proxy_host, &quot;&quot;) &amp;&amp; !streq(http_proxy_port, &quot;&quot;);
++ lowercase(type);
++ snprintf(path, sizeof(path), &quot;%s/%s.%s.%s.list&quot;, MIRRORLIST_PATH, type, version, ARCH);
++
++ fd = http_download_file(MIRRORLIST_HOST, path, &amp;size, use_http_proxy ? &quot;http&quot; : NULL, http_proxy_host, http_proxy_port);
++ if (fd &lt; 0) {
++ log_message(&quot;HTTP: unable to get mirrors list from %s (%s)&quot;, MIRRORLIST_HOST, path);
++ return RETURN_ERROR;
++ }
++
++ while (read(fd, line + line_pos, 1) &gt; 0) {
++ if (line[line_pos] == '\n') {
++ char *url;
++ line[line_pos] = '\0';
++ line_pos = 0;
++
++ /* skip medium if it does not look like a distrib path */
++ if (!strstr(line, &quot;,type=distrib,&quot;))
++ continue;
++
++ url = strstr(line, &quot;,url=&quot;);
++ if (!url)
++ continue;
++ url += 5;
++
++ if (url_split(url, protocol, &amp;mirrorlist[0][mirror_idx], &amp;mirrorlist[1][mirror_idx]) &lt; 0)
++ continue;
++
++ mirror_idx++;
++ } else {
++ line_pos++;
++ }
++
++ if (mirror_idx &gt;= MIRRORLIST_MAX_ITEMS)
++ break;
++ }
++ close(fd);
++
++ mirrorlist[0][mirror_idx] = NULL;
++ mirrorlist[1][mirror_idx] = NULL;
++
++ return RETURN_OK;
++}
++
++static int choose_mirror_from_host_list(mirrorlist_t mirrorlist, char **selected_host, char **filepath)
++{
++ enum return_type results;
++ int mirror_idx = 0;
++
++ do {
++ results = ask_from_list_index(&quot;Please select a mirror from the list below.&quot;,
++ mirrorlist[0], NULL, &amp;mirror_idx);
++
++ if (results == RETURN_BACK) {
++ return RETURN_ERROR;
++ } else if (results == RETURN_OK) {
++ if (mirror_idx == 0) {
++ /* enter the mirror manually */
++ return RETURN_OK;
++ }
++ *selected_host = strdup(mirrorlist[0][mirror_idx]);
++ *filepath = strdup(mirrorlist[1][mirror_idx]);
++ return RETURN_OK;
++ }
++ } while (results == RETURN_ERROR);
++
++ return RETURN_ERROR;
++}
++
++
++static int choose_mirror_from_list(char *http_proxy_host, char *http_proxy_port, const char *protocol, char **selected_host, char **filepath)
++{
++ enum return_type results;
++ char *versions[] = { &quot;Specify the mirror manually&quot;, DISTRIB_VERSION, NULL };
++ char *version = DISTRIB_VERSION;
++
++ do {
++ results = ask_from_list(&quot;Please select a medium from the list below.&quot;, versions, &amp;version);
++
++ if (results == RETURN_BACK) {
++ return RETURN_BACK;
++ } else if (results == RETURN_OK) {
++ if (!strcmp(version, versions[0])) {
++ /* enter the mirror manually */
++ return RETURN_OK;
++ } else {
++ /* a medium has been selected */
++ mirrorlist_t mirrorlist;
++ mirrorlist[0][0] = &quot;Specify the mirror manually&quot;;
++ mirrorlist[1][0] = NULL;
++
++ results = get_mirrorlist(mirrorlist, 1, version, protocol, http_proxy_host, http_proxy_port);
++ if (results == RETURN_ERROR)
++ return RETURN_ERROR;
++
++ results = choose_mirror_from_host_list(mirrorlist, selected_host, filepath);
++ }
++ }
++ } while (results == RETURN_ERROR);
++
++ return results;
++}
++
++
++/* -=-=-- */
++
++
++enum return_type intf_select_and_up()
++{
++ static struct interface_info intf[20];
++ static int num_interfaces = 0;
++ struct interface_info * sel_intf = NULL;
++ int i;
++ enum return_type results;
++ char * iface = interface_select();
++
++ if (iface == NULL)
++ return RETURN_BACK;
++
++ for (i = 0; i &lt; num_interfaces ; i++)
++ if (!strcmp(intf[i].device, iface))
++ sel_intf = &amp;(intf[i]);
++
++ if (sel_intf == NULL) {
++ sel_intf = &amp;(intf[num_interfaces]);
++ strcpy(sel_intf-&gt;device, iface);
++ sel_intf-&gt;is_up = 0;
++ num_interfaces++;
++ }
++
++ results = bringup_networking(sel_intf);
++
++ if (results == RETURN_OK)
++ save_netinfo(sel_intf);
++
++ return results;
++}
++
++
++
++enum return_type nfs_prepare(void)
++{
++ char * questions[] = { &quot;NFS server name&quot;, DISTRIB_NAME &quot; directory&quot;, NULL };
++ char * questions_auto[] = { &quot;server&quot;, &quot;directory&quot;, NULL };
++ static char ** answers = NULL;
++ char * nfsmount_location;
++ enum return_type results = intf_select_and_up(NULL, NULL);
++
++ if (results != RETURN_OK)
++ return results;
++
++ do {
++ results = ask_from_entries_auto(&quot;Please enter the name or IP address of your NFS server, &quot;
++ &quot;and the directory containing the &quot; DISTRIB_NAME &quot; Distribution.&quot;,
++ questions, &amp;answers, 40, questions_auto, NULL);
++ if (results != RETURN_OK || streq(answers[0], &quot;&quot;)) {
++ unset_automatic(); /* we are in a fallback mode */
++ return nfs_prepare();
++ }
++
++ nfsmount_location = malloc(strlen(answers[0]) + strlen(answers[1]) + 2);
++ strcpy(nfsmount_location, answers[0]);
++ strcat(nfsmount_location, &quot;:&quot;);
++ strcat(nfsmount_location, answers[1]);
++
++ if (my_mount(nfsmount_location, MEDIA_LOCATION, &quot;nfs&quot;, 0) == -1) {
++ stg1_error_message(&quot;I can't mount the directory from the NFS server.&quot;);
++ results = RETURN_BACK;
++ continue;
++ }
++ free(nfsmount_location); nfsmount_location = NULL;
++
++ results = try_with_directory(MEDIA_LOCATION, &quot;nfs&quot;, &quot;nfs-iso&quot;);
++ if (results != RETURN_OK)
++ umount(MEDIA_LOCATION);
++ if (results == RETURN_ERROR)
++ return RETURN_ERROR;
++ }
++ while (results == RETURN_BACK);
++
++ return RETURN_OK;
++}
++
++
++enum return_type ftp_prepare(void)
++{
++ char * questions[] = { &quot;FTP server&quot;, DISTRIB_NAME &quot; directory&quot;, &quot;Login&quot;, &quot;Password&quot;, NULL };
++ char * questions_auto[] = { &quot;server&quot;, &quot;directory&quot;, &quot;user&quot;, &quot;pass&quot;, NULL };
++ static char ** answers = NULL;
++ enum return_type results;
++ struct utsname kernel_uname;
++ char *http_proxy_host, *http_proxy_port;
++ int use_http_proxy;
++
++ if (!ramdisk_possible()) {
++ stg1_error_message(&quot;FTP install needs more than %d Mbytes of memory (detected %d Mbytes). You may want to try an NFS install.&quot;,
++ MEM_LIMIT_DRAKX, total_memory());
++ return RETURN_ERROR;
++ }
++
++ results = intf_select_and_up();
++
++ if (results != RETURN_OK)
++ return results;
++
++ get_http_proxy(&amp;http_proxy_host, &amp;http_proxy_port);
++ use_http_proxy = http_proxy_host &amp;&amp; http_proxy_port &amp;&amp; !streq(http_proxy_host, &quot;&quot;) &amp;&amp; !streq(http_proxy_port, &quot;&quot;);
++
++ uname(&amp;kernel_uname);
++
++ do {
++ char location_full[500];
++ int ftp_serv_response = -1;
++ int fd, size;
++ char ftp_hostname[500];
++
++ if (!IS_AUTOMATIC) {
++ if (answers == NULL)
++ answers = (char **) malloc(sizeof(questions));
++
++ results = choose_mirror_from_list(http_proxy_host, http_proxy_port, &quot;ftp&quot;, &amp;answers[0], &amp;answers[1]);
++
++ if (results == RETURN_BACK)
++ return ftp_prepare();
++
++ if (use_http_proxy) {
++ results = ask_yes_no(&quot;Do you want to use this HTTP proxy for FTP connections too ?&quot;);
++
++ if (results == RETURN_BACK)
++ return ftp_prepare();
++
++ use_http_proxy = results == RETURN_OK;
++ }
++ }
++
++ results = ask_from_entries_auto(&quot;Please enter the name or IP address of the FTP server, &quot;
++ &quot;the directory containing the &quot; DISTRIB_NAME &quot; Distribution, &quot;
++ &quot;and the login/pass if necessary (leave login blank for anonymous). &quot;,
++ questions, &amp;answers, 40, questions_auto, NULL);
++ if (results != RETURN_OK || streq(answers[0], &quot;&quot;)) {
++ unset_automatic(); /* we are in a fallback mode */
++ return ftp_prepare();
++ }
++
++ strcpy(location_full, answers[1][0] == '/' ? &quot;&quot; : &quot;/&quot;);
++ strcat(location_full, answers[1]);
++
++ if (use_http_proxy) {
++ log_message(&quot;FTP: don't connect to %s directly, will use proxy&quot;, answers[0]);
++ } else {
++ log_message(&quot;FTP: trying to connect to %s&quot;, answers[0]);
++ ftp_serv_response = ftp_open_connection(answers[0], answers[2], answers[3], &quot;&quot;);
++ if (ftp_serv_response &lt; 0) {
++ log_message(&quot;FTP: error connect %d&quot;, ftp_serv_response);
++ if (ftp_serv_response == FTPERR_BAD_HOSTNAME)
++ stg1_error_message(&quot;Error: bad hostname.&quot;);
++ else if (ftp_serv_response == FTPERR_FAILED_CONNECT)
++ stg1_error_message(&quot;Error: failed to connect to remote host.&quot;);
++ else
++ stg1_error_message(&quot;Error: couldn't connect.&quot;);
++ results = RETURN_BACK;
++ continue;
++ }
++ }
++
++ strcat(location_full, COMPRESSED_FILE_REL(&quot;/&quot;));
++
++ log_message(&quot;FTP: trying to retrieve %s&quot;, location_full);
++
++ if (use_http_proxy) {
++ if (strcmp(answers[2], &quot;&quot;)) {
++ strcpy(ftp_hostname, answers[2]); /* user name */
++ strcat(ftp_hostname, &quot;:&quot;);
++ strcat(ftp_hostname, answers[3]); /* password */
++ strcat(ftp_hostname, &quot;@&quot;);
++ } else {
++ strcpy(ftp_hostname, &quot;&quot;);
++ }
++ strcat(ftp_hostname, answers[0]);
++ fd = http_download_file(ftp_hostname, location_full, &amp;size, &quot;ftp&quot;, http_proxy_host, http_proxy_port);
++ } else {
++ fd = ftp_start_download(ftp_serv_response, location_full, &amp;size);
++ }
++
++ if (fd &lt; 0) {
++ char *msg = str_ftp_error(fd);
++ log_message(&quot;FTP: error get %d for remote file %s&quot;, fd, location_full);
++ stg1_error_message(&quot;Error: %s.&quot;, msg ? msg : &quot;couldn't retrieve Installation program&quot;);
++ results = RETURN_BACK;
++ continue;
++ }
++
++ log_message(&quot;FTP: size of download %d bytes&quot;, size);
++
++ results = load_compressed_fd(fd, size);
++ if (results == RETURN_OK) {
++ if (!use_http_proxy)
++ ftp_end_data_command(ftp_serv_response);
++ } else {
++ unset_automatic(); /* we are in a fallback mode */
++ return results;
++ }
++
++ if (use_http_proxy) {
++ add_to_env(&quot;METHOD&quot;, &quot;http&quot;);
++ sprintf(location_full, &quot;ftp://%s%s&quot;, ftp_hostname, answers[1]);
++ add_to_env(&quot;URLPREFIX&quot;, location_full);
++ add_to_env(&quot;PROXY&quot;, http_proxy_host);
++ add_to_env(&quot;PROXYPORT&quot;, http_proxy_port);
++ } else {
++ add_to_env(&quot;METHOD&quot;, &quot;ftp&quot;);
++ add_to_env(&quot;HOST&quot;, answers[0]);
++ add_to_env(&quot;PREFIX&quot;, answers[1]);
++ if (!streq(answers[2], &quot;&quot;)) {
++ add_to_env(&quot;LOGIN&quot;, answers[2]);
++ add_to_env(&quot;PASSWORD&quot;, answers[3]);
++ }
++ }
++ }
++ while (results == RETURN_BACK);
++
++ return RETURN_OK;
++}
++
++enum return_type http_prepare(void)
++{
++ char * questions[] = { &quot;HTTP server&quot;, DISTRIB_NAME &quot; directory&quot;, NULL };
++ char * questions_auto[] = { &quot;server&quot;, &quot;directory&quot;, NULL };
++ static char ** answers = NULL;
++ enum return_type results;
++ char *http_proxy_host, *http_proxy_port;
++
++ if (!ramdisk_possible()) {
++ stg1_error_message(&quot;HTTP install needs more than %d Mbytes of memory (detected %d Mbytes). You may want to try an NFS install.&quot;,
++ MEM_LIMIT_DRAKX, total_memory());
++ return RETURN_ERROR;
++ }
++
++ results = intf_select_and_up();
++
++ if (results != RETURN_OK)
++ return results;
++
++ get_http_proxy(&amp;http_proxy_host, &amp;http_proxy_port);
++
++ do {
++ char location_full[500];
++ int fd, size;
++ int use_http_proxy;
++
++ if (!IS_AUTOMATIC) {
++ if (answers == NULL)
++ answers = (char **) malloc(sizeof(questions));
++
++ results = choose_mirror_from_list(http_proxy_host, http_proxy_port, &quot;http&quot;, &amp;answers[0], &amp;answers[1]);
++
++ if (results == RETURN_BACK)
++ return ftp_prepare();
++ }
++
++ results = ask_from_entries_auto(&quot;Please enter the name or IP address of the HTTP server, &quot;
++ &quot;and the directory containing the &quot; DISTRIB_NAME &quot; Distribution.&quot;,
++ questions, &amp;answers, 40, questions_auto, NULL);
++ if (results != RETURN_OK || streq(answers[0], &quot;&quot;)) {
++ unset_automatic(); /* we are in a fallback mode */
++ return http_prepare();
++ }
++
++ strcpy(location_full, answers[1][0] == '/' ? &quot;&quot; : &quot;/&quot;);
++ strcat(location_full, answers[1]);
++ strcat(location_full, COMPRESSED_FILE_REL(&quot;/&quot;));
++
++ log_message(&quot;HTTP: trying to retrieve %s from %s&quot;, location_full, answers[0]);
++
++ use_http_proxy = http_proxy_host &amp;&amp; http_proxy_port &amp;&amp; !streq(http_proxy_host, &quot;&quot;) &amp;&amp; !streq(http_proxy_port, &quot;&quot;);
++
++ fd = http_download_file(answers[0], location_full, &amp;size, use_http_proxy ? &quot;http&quot; : NULL, http_proxy_host, http_proxy_port);
++ if (fd &lt; 0) {
++ log_message(&quot;HTTP: error %d&quot;, fd);
++ if (fd == FTPERR_FAILED_CONNECT)
++ stg1_error_message(&quot;Error: couldn't connect to server.&quot;);
++ else
++ stg1_error_message(&quot;Error: couldn't get file (%s).&quot;, location_full);
++ results = RETURN_BACK;
++ continue;
++ }
++
++ log_message(&quot;HTTP: size of download %d bytes&quot;, size);
++
++ if (load_compressed_fd(fd, size) != RETURN_OK) {
++ unset_automatic(); /* we are in a fallback mode */
++ return RETURN_ERROR;
++ }
++
++ add_to_env(&quot;METHOD&quot;, &quot;http&quot;);
++ sprintf(location_full, &quot;http://%s%s%s&quot;, answers[0], answers[1][0] == '/' ? &quot;&quot; : &quot;/&quot;, answers[1]);
++ add_to_env(&quot;URLPREFIX&quot;, location_full);
++ if (!streq(http_proxy_host, &quot;&quot;))
++ add_to_env(&quot;PROXY&quot;, http_proxy_host);
++ if (!streq(http_proxy_port, &quot;&quot;))
++ add_to_env(&quot;PROXYPORT&quot;, http_proxy_port);
++ }
++ while (results == RETURN_BACK);
++
++ return RETURN_OK;
++
++}
++
++#ifndef DISABLE_KA
++enum return_type ka_prepare(void)
++{
++ enum return_type results;
++
++ if (!ramdisk_possible()) {
++ stg1_error_message(&quot;KA install needs more than %d Mbytes of memory (detected %d Mbytes).&quot;,
++ MEM_LIMIT_DRAKX, total_memory());
++ return RETURN_ERROR;
++ }
++
++ results = intf_select_and_up();
++
++ if (results != RETURN_OK)
++ return results;
++
++ return perform_ka();
++}
++#endif
+
+
+Property changes on: drakx/trunk/mdk-stage1/network.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1networkh">Added: drakx/trunk/mdk-stage1/network.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/network.h (rev 0)
++++ drakx/trunk/mdk-stage1/network.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,66 @@
++/*
++ * Guillaume Cottenceau (gc@mandriva.com)
++ *
++ * Copyright 2000 Mandriva
++ *
++ * This software may be freely redistributed under the terms of the GNU
++ * public license.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++/*
++ * Portions from Erik Troan (ewt@redhat.com)
++ *
++ * Copyright 1996 Red Hat Software
++ *
++ */
++
++#ifndef _NETWORK_H_
++#define _NETWORK_H_
++
++#include &lt;netinet/in.h&gt;
++#include &lt;netinet/ip.h&gt;
++#include &lt;arpa/inet.h&gt;
++
++enum return_type intf_select_and_up();
++
++enum return_type nfs_prepare(void);
++enum return_type ftp_prepare(void);
++enum return_type http_prepare(void);
++#ifndef DISABLE_KA
++enum return_type ka_prepare(void);
++#endif
++
++
++enum boot_proto_type { BOOTPROTO_STATIC, BOOTPROTO_DHCP, BOOTPROTO_ADSL_PPPOE };
++enum auto_detection_type { AUTO_DETECTION_NONE, AUTO_DETECTION_ALL, AUTO_DETECTION_WIRED };
++
++/* all of these in_addr things are in network byte order! */
++struct interface_info {
++ char device[10];
++ int is_ptp, is_up;
++ struct in_addr ip, netmask, broadcast, network;
++ enum boot_proto_type boot_proto;
++ char *user, *pass, *acname; /* for ADSL connection */
++};
++
++
++/* these are to be used only by dhcp.c */
++
++char * guess_netmask(char * ip_addr);
++
++int configure_net_device(struct interface_info * intf);
++
++extern char * hostname;
++extern char * domain;
++extern struct in_addr gateway;
++extern struct in_addr dns_server;
++extern struct in_addr dns_server2;
++
++
++
++#endif
+
+
+Property changes on: drakx/trunk/mdk-stage1/network.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1newtMakefile">Added: drakx/trunk/mdk-stage1/newt/Makefile</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/newt/Makefile (rev 0)
++++ drakx/trunk/mdk-stage1/newt/Makefile 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,42 @@
++ #******************************************************************************
++ #
++ # Guillaume Cottenceau (gc@mandriva.com)
++ #
++ # Copyright 2000 Mandriva
++ #
++ # This software may be freely redistributed under the terms of the GNU
++ # public license.
++ #
++ # You should have received a copy of the GNU General Public License
++ # along with this program; if not, write to the Free Software
++ # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ #
++ #*****************************************************************************
++
++top_dir = ..
++
++include $(top_dir)/Makefile.common
++
++
++LIBNAME = libnewt
++
++OBJS = newt.o button.o form.o checkbox.o entry.o label.o listbox.o scrollbar.o textbox.o scale.o grid.o windows.o buttonbar.o checkboxtree.o
++
++DEFS = -DVERSION=\&quot;0.50.19\&quot;
++
++INCS = -I../slang
++
++
++TARGETS = $(LIBNAME).a
++
++all: $(TARGETS)
++
++clean:
++ rm -f *.o *.a
++
++$(LIBNAME).a: $(OBJS)
++ ar -cru $@ $^
++ ranlib $@
++
++$(OBJS): %.o: %.c
++ $(DIET) gcc $(CFLAGS) $(DEFS) $(INCS) $(INCLUDES) -c $&lt; -o $@
+
+
+Property changes on: drakx/trunk/mdk-stage1/newt/Makefile
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1newtbuttonc">Added: drakx/trunk/mdk-stage1/newt/button.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/newt/button.c (rev 0)
++++ drakx/trunk/mdk-stage1/newt/button.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,192 @@
++#include &lt;slang.h&gt;
++#include &lt;stdlib.h&gt;
++#include &lt;string.h&gt;
++
++#include &quot;newt.h&quot;
++#include &quot;newt_pr.h&quot;
++
++struct button {
++ char * text;
++ int compact;
++};
++
++static void buttonDrawIt(newtComponent co, int active, int pushed);
++static void buttonDrawText(newtComponent co, int active, int pushed);
++
++static void buttonDraw(newtComponent c);
++static void buttonDestroy(newtComponent co);
++static struct eventResult buttonEvent(newtComponent c,
++ struct event ev);
++static void buttonPlace(newtComponent co, int newLeft, int newTop);
++
++static struct componentOps buttonOps = {
++ buttonDraw,
++ buttonEvent,
++ buttonDestroy,
++ buttonPlace,
++ newtDefaultMappedHandler,
++} ;
++
++static newtComponent createButton(int left, int row, const char * text, int compact) {
++ newtComponent co;
++ struct button * bu;
++
++ co = malloc(sizeof(*co));
++ bu = malloc(sizeof(struct button));
++ co-&gt;data = bu;
++
++ bu-&gt;text = strdup(text);
++ bu-&gt;compact = compact;
++ co-&gt;ops = &amp;buttonOps;
++
++ if (bu-&gt;compact) {
++ co-&gt;height = 1;
++ co-&gt;width = strlen(text) + 3;
++ } else {
++ co-&gt;height = 4;
++ co-&gt;width = strlen(text) + 5;
++ }
++
++ co-&gt;top = row;
++ co-&gt;left = left;
++ co-&gt;takesFocus = 1;
++ co-&gt;isMapped = 0;
++
++ newtGotorc(co-&gt;top, co-&gt;left);
++
++ return co;
++}
++
++newtComponent newtCompactButton(int left, int row, const char * text) {
++ return createButton(left, row, text, 1);
++}
++
++newtComponent newtButton(int left, int row, const char * text) {
++ return createButton(left, row, text, 0);
++}
++
++static void buttonDestroy(newtComponent co) {
++ struct button * bu = co-&gt;data;
++
++ free(bu-&gt;text);
++ free(bu);
++ free(co);
++}
++
++static void buttonPlace(newtComponent co, int newLeft, int newTop) {
++ co-&gt;top = newTop;
++ co-&gt;left = newLeft;
++
++ newtGotorc(co-&gt;top, co-&gt;left);
++}
++
++static void buttonDraw(newtComponent co) {
++ buttonDrawIt(co, 0, 0);
++}
++
++static void buttonDrawIt(newtComponent co, int active, int pushed) {
++ struct button * bu = co-&gt;data;
++
++ if (!co-&gt;isMapped) return;
++
++ SLsmg_set_color(NEWT_COLORSET_BUTTON);
++
++ if (bu-&gt;compact) {
++ if (active)
++ SLsmg_set_color(NEWT_COLORSET_COMPACTBUTTON);
++ else
++ SLsmg_set_color(NEWT_COLORSET_BUTTON);
++ newtGotorc(co-&gt;top+ pushed, co-&gt;left + 1 + pushed);
++ SLsmg_write_char('&lt;');
++ SLsmg_write_string(bu-&gt;text);
++ SLsmg_write_char('&gt;');
++ } else {
++ if (pushed) {
++ SLsmg_set_color(NEWT_COLORSET_BUTTON);
++ newtDrawBox(co-&gt;left + 1, co-&gt;top + 1, co-&gt;width - 1, 3, 0);
++
++ SLsmg_set_color(NEWT_COLORSET_WINDOW);
++ newtClearBox(co-&gt;left, co-&gt;top, co-&gt;width, 1);
++ newtClearBox(co-&gt;left, co-&gt;top, 1, co-&gt;height);
++ } else {
++ newtDrawBox(co-&gt;left, co-&gt;top, co-&gt;width - 1, 3, 1);
++ }
++
++ buttonDrawText(co, active, pushed);
++ }
++}
++
++static void buttonDrawText(newtComponent co, int active, int pushed) {
++ struct button * bu = co-&gt;data;
++
++ if (pushed) pushed = 1;
++
++ if (active)
++ SLsmg_set_color(NEWT_COLORSET_ACTBUTTON);
++ else
++ SLsmg_set_color(NEWT_COLORSET_BUTTON);
++
++ newtGotorc(co-&gt;top + 1 + pushed, co-&gt;left + 1 + pushed);
++ SLsmg_write_char(' ');
++ SLsmg_write_string(bu-&gt;text);
++ SLsmg_write_char(' ');
++}
++
++static struct eventResult buttonEvent(newtComponent co,
++ struct event ev) {
++ struct eventResult er;
++ struct button * bu = co-&gt;data;
++ er.result = ER_IGNORED;
++ er.u.focus = NULL;
++
++ if (ev.when == EV_NORMAL) {
++ switch (ev.event) {
++ case EV_FOCUS:
++ buttonDrawIt(co, 1, 0);
++ er.result = ER_SWALLOWED;
++ break;
++
++ case EV_UNFOCUS:
++ buttonDrawIt(co, 0, 0);
++ er.result = ER_SWALLOWED;
++ break;
++
++ case EV_KEYPRESS:
++ if (ev.u.key == ' ' || ev.u.key == '\r') {
++ if (!bu-&gt;compact) {
++ /* look pushed */
++ buttonDrawIt(co, 1, 1);
++ newtRefresh();
++ newtDelay(150000);
++ buttonDrawIt(co, 1, 0);
++ newtRefresh();
++ newtDelay(150000);
++ }
++
++ er.result = ER_EXITFORM;
++ } else
++ er.result = ER_IGNORED;
++ break;
++ case EV_MOUSE:
++ if (ev.u.mouse.type == MOUSE_BUTTON_DOWN &amp;&amp;
++ co-&gt;top &lt;= ev.u.mouse.y &amp;&amp;
++ co-&gt;top + co-&gt;height - !bu-&gt;compact &gt; ev.u.mouse.y &amp;&amp;
++ co-&gt;left &lt;= ev.u.mouse.x &amp;&amp;
++ co-&gt;left + co-&gt;width - !bu-&gt;compact &gt; ev.u.mouse.x) {
++ if (!bu-&gt;compact) {
++ buttonDrawIt(co, 1, 1);
++ newtRefresh();
++ newtDelay(150000);
++ buttonDrawIt(co, 1, 0);
++ newtRefresh();
++ newtDelay(150000);
++ }
++ er.result = ER_EXITFORM;
++ }
++ break;
++ }
++ } else
++ er.result = ER_IGNORED;
++
++ return er;
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/newt/button.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1newtbuttonbarc">Added: drakx/trunk/mdk-stage1/newt/buttonbar.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/newt/buttonbar.c (rev 0)
++++ drakx/trunk/mdk-stage1/newt/buttonbar.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,46 @@
++#include &lt;stdarg.h&gt;
++
++#include &quot;newt.h&quot;
++
++/* if they try and pack more then 50 buttons, screw 'em */
++newtGrid newtButtonBarv(char * button1, newtComponent * b1comp, va_list args) {
++ newtGrid grid;
++ struct buttonInfo {
++ char * name;
++ newtComponent * compPtr;
++ } buttons[50];
++ int num;
++ int i;
++
++ buttons[0].name = button1, buttons[0].compPtr = b1comp, num = 1;
++ while (1) {
++ buttons[num].name = va_arg(args, char *);
++ if (!buttons[num].name) break;
++ buttons[num].compPtr = va_arg(args, newtComponent *);
++ num++;
++ }
++
++ grid = newtCreateGrid(num, 1);
++
++ for (i = 0; i &lt; num; i++) {
++ *buttons[i].compPtr = newtButton(-1, -1, buttons[i].name);
++ newtGridSetField(grid, i, 0, NEWT_GRID_COMPONENT,
++ *buttons[i].compPtr,
++ num ? 1 : 0, 0, 0, 0, 0, 0);
++ }
++
++ return grid;
++}
++
++newtGrid newtButtonBar(char * button1, newtComponent * b1comp, ...) {
++ va_list args;
++ newtGrid grid;
++
++ va_start(args, b1comp);
++
++ grid = newtButtonBarv(button1, b1comp, args);
++
++ va_end(args);
++
++ return grid;
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/newt/buttonbar.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1newtcheckboxc">Added: drakx/trunk/mdk-stage1/newt/checkbox.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/newt/checkbox.c (rev 0)
++++ drakx/trunk/mdk-stage1/newt/checkbox.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,292 @@
++#include &lt;slang.h&gt;
++#include &lt;stdlib.h&gt;
++#include &lt;string.h&gt;
++
++#include &quot;newt.h&quot;
++#include &quot;newt_pr.h&quot;
++
++enum type { CHECK, RADIO };
++
++struct checkbox {
++ char * text;
++ char * seq;
++ char * result;
++ newtComponent prevButton, lastButton;
++ enum type type;
++ char value;
++ int active, inactive;
++ const void * data;
++ int flags;
++ int hasFocus;
++};
++
++static void makeActive(newtComponent co);
++
++static void cbDraw(newtComponent c);
++static void cbDestroy(newtComponent co);
++struct eventResult cbEvent(newtComponent co, struct event ev);
++
++static struct componentOps cbOps = {
++ cbDraw,
++ cbEvent,
++ cbDestroy,
++ newtDefaultPlaceHandler,
++ newtDefaultMappedHandler,
++} ;
++
++newtComponent newtRadiobutton(int left, int top, const char * text, int isDefault,
++ newtComponent prevButton) {
++ newtComponent co;
++ newtComponent curr;
++ struct checkbox * rb;
++ char initialValue;
++
++ if (isDefault)
++ initialValue = '*';
++ else
++ initialValue = ' ';
++
++ co = newtCheckbox(left, top, text, initialValue, &quot; *&quot;, NULL);
++ rb = co-&gt;data;
++ rb-&gt;type = RADIO;
++
++ rb-&gt;prevButton = prevButton;
++
++ for (curr = co; curr; curr = rb-&gt;prevButton) {
++ rb = curr-&gt;data;
++ rb-&gt;lastButton = co;
++ }
++
++ return co;
++}
++
++newtComponent newtRadioGetCurrent(newtComponent setMember) {
++ struct checkbox * rb = setMember-&gt;data;
++
++ setMember = rb-&gt;lastButton;
++ rb = setMember-&gt;data;
++
++ while (rb &amp;&amp; rb-&gt;value != '*') {
++ setMember = rb-&gt;prevButton;
++ if (!setMember)
++ return NULL;
++ rb = setMember-&gt;data;
++ }
++
++ return setMember;
++}
++
++char newtCheckboxGetValue(newtComponent co) {
++ struct checkbox * cb = co-&gt;data;
++
++ return cb-&gt;value;
++}
++
++void newtCheckboxSetValue(newtComponent co, char value) {
++ struct checkbox * cb = co-&gt;data;
++
++ *cb-&gt;result = value;
++ cbDraw(co);
++}
++
++newtComponent newtCheckbox(int left, int top, const char * text, char defValue,
++ const char * seq, char * result) {
++ newtComponent co;
++ struct checkbox * cb;
++
++ if (!seq) seq = &quot; *&quot;;
++
++ co = malloc(sizeof(*co));
++ cb = malloc(sizeof(struct checkbox));
++ co-&gt;data = cb;
++ cb-&gt;flags = 0;
++ if (result)
++ cb-&gt;result = result;
++ else
++ cb-&gt;result = &amp;cb-&gt;value;
++
++ cb-&gt;text = strdup(text);
++ cb-&gt;seq = strdup(seq);
++ cb-&gt;type = CHECK;
++ cb-&gt;hasFocus = 0;
++ cb-&gt;inactive = COLORSET_CHECKBOX;
++ cb-&gt;active = COLORSET_ACTCHECKBOX;
++ defValue ? (*cb-&gt;result = defValue) : (*cb-&gt;result = cb-&gt;seq[0]);
++
++ co-&gt;ops = &amp;cbOps;
++
++ co-&gt;callback = NULL;
++ co-&gt;height = 1;
++ co-&gt;width = strlen(text) + 4;
++ co-&gt;top = top;
++ co-&gt;left = left;
++ co-&gt;takesFocus = 1;
++
++ return co;
++}
++
++void newtCheckboxSetFlags(newtComponent co, int flags, enum newtFlagsSense sense) {
++ struct checkbox * cb = co-&gt;data;
++ int row, col;
++
++ cb-&gt;flags = newtSetFlags(cb-&gt;flags, flags, sense);
++
++ if (!(cb-&gt;flags &amp; NEWT_FLAG_DISABLED))
++ co-&gt;takesFocus = 1;
++ else
++ co-&gt;takesFocus = 0;
++
++ newtGetrc(&amp;row, &amp;col);
++ cbDraw(co);
++ newtGotorc(row, col);
++}
++
++static void cbDraw(newtComponent c) {
++ struct checkbox * cb = c-&gt;data;
++
++ if (c-&gt;top == -1 || !c-&gt;isMapped) return;
++
++ if (cb-&gt;flags &amp; NEWT_FLAG_DISABLED) {
++ cb-&gt;inactive = NEWT_COLORSET_DISENTRY;
++ cb-&gt;active = NEWT_COLORSET_DISENTRY;
++ } else {
++ cb-&gt;inactive = COLORSET_CHECKBOX;
++ cb-&gt;active = COLORSET_ACTCHECKBOX;
++ }
++
++ SLsmg_set_color(cb-&gt;inactive);
++
++ newtGotorc(c-&gt;top, c-&gt;left);
++
++ switch (cb-&gt;type) {
++ case RADIO:
++ SLsmg_write_string(&quot;( ) &quot;);
++ break;
++
++ case CHECK:
++ SLsmg_write_string(&quot;[ ] &quot;);
++ break;
++
++ default:
++ break;
++ }
++
++ SLsmg_write_string(cb-&gt;text);
++
++ if (cb-&gt;hasFocus)
++ SLsmg_set_color(cb-&gt;active);
++
++ newtGotorc(c-&gt;top, c-&gt;left + 1);
++ SLsmg_write_char(*cb-&gt;result);
++}
++
++static void cbDestroy(newtComponent co) {
++ struct checkbox * cb = co-&gt;data;
++
++ free(cb-&gt;text);
++ free(cb-&gt;seq);
++ free(cb);
++ free(co);
++}
++
++struct eventResult cbEvent(newtComponent co, struct event ev) {
++ struct checkbox * cb = co-&gt;data;
++ struct eventResult er;
++ const char * cur;
++ er.result = ER_IGNORED;
++ er.u.focus = NULL;
++
++ if (ev.when == EV_NORMAL) {
++ switch (ev.event) {
++ case EV_FOCUS:
++ cb-&gt;hasFocus = 1;
++ cbDraw(co);
++ er.result = ER_SWALLOWED;
++ break;
++
++ case EV_UNFOCUS:
++ cb-&gt;hasFocus = 0;
++ cbDraw(co);
++ er.result = ER_SWALLOWED;
++ break;
++
++ case EV_KEYPRESS:
++ if (ev.u.key == ' ') {
++ if (cb-&gt;type == RADIO) {
++ makeActive(co);
++ } else if (cb-&gt;type == CHECK) {
++ cur = strchr(cb-&gt;seq, *cb-&gt;result);
++ if (!cur)
++ *cb-&gt;result = *cb-&gt;seq;
++ else {
++ cur++;
++ if (! *cur)
++ *cb-&gt;result = *cb-&gt;seq;
++ else
++ *cb-&gt;result = *cur;
++ }
++ cbDraw(co);
++ er.result = ER_SWALLOWED;
++
++ if (co-&gt;callback)
++ co-&gt;callback(co, co-&gt;callbackData);
++ } else {
++ er.result = ER_IGNORED;
++ }
++ } else if(ev.u.key == NEWT_KEY_ENTER) {
++ er.result = ER_IGNORED;
++ } else {
++ er.result = ER_IGNORED;
++ }
++ break;
++ case EV_MOUSE:
++ if (ev.u.mouse.type == MOUSE_BUTTON_DOWN) {
++ if (cb-&gt;type == RADIO) {
++ makeActive(co);
++ } else if (cb-&gt;type == CHECK) {
++ cur = strchr(cb-&gt;seq, *cb-&gt;result);
++ if (!cur)
++ *cb-&gt;result = *cb-&gt;seq;
++ else {
++ cur++;
++ if (! *cur)
++ *cb-&gt;result = *cb-&gt;seq;
++ else
++ *cb-&gt;result = *cur;
++ }
++ cbDraw(co);
++ er.result = ER_SWALLOWED;
++
++ if (co-&gt;callback)
++ co-&gt;callback(co, co-&gt;callbackData);
++ }
++ }
++ }
++ } else
++ er.result = ER_IGNORED;
++
++ return er;
++}
++
++static void makeActive(newtComponent co) {
++ struct checkbox * cb = co-&gt;data;
++ struct checkbox * rb;
++ newtComponent curr;
++
++ /* find the one that's turned off */
++ curr = cb-&gt;lastButton;
++ rb = curr-&gt;data;
++ while (curr &amp;&amp; rb-&gt;value == rb-&gt;seq[0]) {
++ curr = rb-&gt;prevButton;
++ if (curr) rb = curr-&gt;data;
++ }
++ if (curr) {
++ rb-&gt;value = rb-&gt;seq[0];
++ cbDraw(curr);
++ }
++ cb-&gt;value = cb-&gt;seq[1];
++ cbDraw(co);
++
++ if (co-&gt;callback)
++ co-&gt;callback(co, co-&gt;callbackData);
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/newt/checkbox.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1newtcheckboxtreec">Added: drakx/trunk/mdk-stage1/newt/checkboxtree.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/newt/checkboxtree.c (rev 0)
++++ drakx/trunk/mdk-stage1/newt/checkboxtree.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,714 @@
++#include &lt;slang.h&gt;
++#include &lt;stdlib.h&gt;
++#include &lt;string.h&gt;
++
++#include &quot;newt.h&quot;
++#include &quot;newt_pr.h&quot;
++
++struct items {
++ char * text;
++ const void *data;
++ unsigned char selected;
++ struct items *next;
++ struct items *prev;
++ struct items *branch;
++ int flags;
++ int depth;
++};
++
++struct CheckboxTree {
++ newtComponent sb;
++ int curWidth; /* size of text w/o scrollbar or border*/
++ int curHeight; /* size of text w/o border */
++ struct items * itemlist;
++ struct items ** flatList, ** currItem, ** firstItem;
++ int flatCount;
++ int flags;
++ int pad;
++ char * seq;
++ char * result;
++};
++
++static void ctDraw(newtComponent c);
++static void ctDestroy(newtComponent co);
++static void ctPlace(newtComponent co, int newLeft, int newTop);
++struct eventResult ctEvent(newtComponent co, struct event ev);
++static void ctMapped(newtComponent co, int isMapped);
++static struct items * findItem(struct items * items, const void * data);
++static void buildFlatList(newtComponent co);
++static void doBuildFlatList(struct CheckboxTree * ct, struct items * item);
++enum countWhat { COUNT_EXPOSED=0, COUNT_SELECTED=1 };
++static int countItems(struct items * item, enum countWhat justExposed);
++
++static struct componentOps ctOps = {
++ ctDraw,
++ ctEvent,
++ ctDestroy,
++ ctPlace,
++ ctMapped,
++} ;
++
++static int countItems(struct items * item, enum countWhat what) {
++ int count = 0;
++
++ while (item) {
++ if ((!item-&gt;branch &amp;&amp; item-&gt;selected == what) || (what == COUNT_EXPOSED))
++ count++;
++ if (item-&gt;branch || (what == COUNT_EXPOSED &amp;&amp; item-&gt;selected))
++ count += countItems(item-&gt;branch, what);
++ item = item-&gt;next;
++ }
++
++ return count;
++}
++
++static void doBuildFlatList(struct CheckboxTree * ct, struct items * item) {
++ while (item) {
++ ct-&gt;flatList[ct-&gt;flatCount++] = item;
++ if (item-&gt;branch &amp;&amp; item-&gt;selected) doBuildFlatList(ct, item-&gt;branch);
++ item = item-&gt;next;
++ }
++}
++
++static void buildFlatList(newtComponent co) {
++ struct CheckboxTree * ct = co-&gt;data;
++
++ if (ct-&gt;flatList) free(ct-&gt;flatList);
++ ct-&gt;flatCount = countItems(ct-&gt;itemlist, COUNT_EXPOSED);
++
++ ct-&gt;flatList = malloc(sizeof(*ct-&gt;flatList) * (ct-&gt;flatCount+1));
++ ct-&gt;flatCount = 0;
++ doBuildFlatList(ct, ct-&gt;itemlist);
++ ct-&gt;flatList[ct-&gt;flatCount] = NULL;
++}
++
++int newtCheckboxTreeAddItem(newtComponent co,
++ const char * text, const void * data,
++ int flags, int index, ...) {
++ va_list argList;
++ int numIndexes;
++ int * indexes;
++ int i;
++
++ va_start(argList, index);
++ numIndexes = 0;
++ i = index;
++ while (i != NEWT_ARG_LAST) {
++ numIndexes++;
++ i = va_arg(argList, int);
++ }
++
++ va_end(argList);
++
++ indexes = alloca(sizeof(*indexes) * (numIndexes + 1));
++ va_start(argList, index);
++ numIndexes = 0;
++ i = index;
++ va_start(argList, index);
++ while (i != NEWT_ARG_LAST) {
++ indexes[numIndexes++] = i;
++ i = va_arg(argList, int);
++ }
++ va_end(argList);
++
++ indexes[numIndexes++] = NEWT_ARG_LAST;
++
++ return newtCheckboxTreeAddArray(co, text, data, flags, indexes);
++}
++
++static int doFindItemPath(struct items * items, void * data, int * path,
++ int * len) {
++ int where = 0;
++
++ while (items) {
++ if (items-&gt;data == data) {
++ if (path) path[items-&gt;depth] = where;
++ if (len) *len = items-&gt;depth + 1;
++ return 1;
++ }
++
++ if (items-&gt;branch &amp;&amp; doFindItemPath(items-&gt;branch, data, path, len)) {
++ if (path) path[items-&gt;depth] = where;
++ return 1;
++ }
++
++ items = items-&gt;next;
++ where++;
++ }
++
++ return 0;
++}
++
++int * newtCheckboxTreeFindItem(newtComponent co, void * data) {
++ int len;
++ int * path;
++ struct CheckboxTree * ct = co-&gt;data;
++
++ if (!doFindItemPath(ct-&gt;itemlist, data, NULL, &amp;len)) return NULL;
++
++ path = malloc(sizeof(*path) * (len + 1));
++ doFindItemPath(ct-&gt;itemlist, data, path, NULL);
++ path[len] = NEWT_ARG_LAST;
++
++ return path;
++}
++
++int newtCheckboxTreeAddArray(newtComponent co,
++ const char * text, const void * data,
++ int flags, int * indexes) {
++ struct items * curList, * newNode, * item = NULL;
++ struct items ** listPtr = NULL;
++ int i, index, numIndexes;
++ struct CheckboxTree * ct = co-&gt;data;
++
++ numIndexes = 0;
++ while (indexes[numIndexes] != NEWT_ARG_LAST) numIndexes++;
++
++ if (!ct-&gt;itemlist) {
++ if (numIndexes &gt; 1) return -1;
++
++ ct-&gt;itemlist = malloc(sizeof(*ct-&gt;itemlist));
++ item = ct-&gt;itemlist;
++ item-&gt;prev = NULL;
++ item-&gt;next = NULL;
++ } else {
++ curList = ct-&gt;itemlist;
++ listPtr = &amp;ct-&gt;itemlist;
++
++ i = 0;
++ index = indexes[i];
++ while (i &lt; numIndexes) {
++ item = curList;
++
++ if (index == NEWT_ARG_APPEND) {
++ item = NULL;
++ } else {
++ while (index &amp;&amp; item)
++ item = item-&gt;next, index--;
++ }
++
++ i++;
++ if (i &lt; numIndexes) {
++ curList = item-&gt;branch;
++ listPtr = &amp;item-&gt;branch;
++ if (!curList &amp;&amp; (i + 1 != numIndexes)) return -1;
++
++ index = indexes[i];
++ }
++ }
++
++ if (!curList) { /* create a new branch */
++ item = malloc(sizeof(*curList-&gt;prev));
++ item-&gt;next = item-&gt;prev = NULL;
++ *listPtr = item;
++ } else if (!item) { /* append to end */
++ item = curList;
++ while (item-&gt;next) item = item-&gt;next;
++ item-&gt;next = malloc(sizeof(*curList-&gt;prev));
++ item-&gt;next-&gt;prev = item;
++ item = item-&gt;next;
++ item-&gt;next = NULL;
++ } else {
++ newNode = malloc(sizeof(*newNode));
++ newNode-&gt;prev = item-&gt;prev;
++ newNode-&gt;next = item;
++
++ if (item-&gt;prev) item-&gt;prev-&gt;next = newNode;
++ item-&gt;prev = newNode;
++ item = newNode;
++ if (!item-&gt;prev) *listPtr = item;
++ }
++ }
++
++ item-&gt;text = strdup(text);
++ item-&gt;data = data;
++ if (flags &amp; NEWT_FLAG_SELECTED) {
++ item-&gt;selected = 1;
++ } else {
++ item-&gt;selected = 0;
++ }
++ item-&gt;flags = flags;
++ item-&gt;branch = NULL;
++ item-&gt;depth = numIndexes - 1;
++
++ i = 4 + (3 * item-&gt;depth);
++
++ if ((strlen(text) + i + ct-&gt;pad) &gt; (size_t)co-&gt;width) {
++ co-&gt;width = strlen(text) + i + ct-&gt;pad;
++ }
++
++ return 0;
++}
++
++static struct items * findItem(struct items * items, const void * data) {
++ struct items * i;
++
++ while (items) {
++ if (items-&gt;data == data) return items;
++ if (items-&gt;branch) {
++ i = findItem(items-&gt;branch, data);
++ if (i) return i;
++ }
++
++ items = items-&gt;next;
++ }
++
++ return NULL;
++}
++
++static void listSelected(struct items * items, int * num, const void ** list, int seqindex) {
++ while (items) {
++ if ((seqindex ? items-&gt;selected==seqindex : items-&gt;selected) &amp;&amp; !items-&gt;branch)
++ list[(*num)++] = (void *) items-&gt;data;
++ if (items-&gt;branch)
++ listSelected(items-&gt;branch, num, list, seqindex);
++ items = items-&gt;next;
++ }
++}
++
++const void ** newtCheckboxTreeGetSelection(newtComponent co, int *numitems)
++{
++ return newtCheckboxTreeGetMultiSelection(co, numitems, 0);
++}
++
++const void ** newtCheckboxTreeGetMultiSelection(newtComponent co, int *numitems, char seqnum)
++{
++ struct CheckboxTree * ct;
++ const void **retval;
++ int seqindex=0;
++
++ if(!co || !numitems) return NULL;
++
++ ct = co-&gt;data;
++
++ if (seqnum) {
++ while( ct-&gt;seq[seqindex] &amp;&amp; ( ct-&gt;seq[seqindex] != seqnum )) seqindex++;
++ } else {
++ seqindex = 0;
++ }
++
++ *numitems = countItems(ct-&gt;itemlist, (seqindex ? seqindex : COUNT_SELECTED));
++ if (!*numitems) return NULL;
++
++ retval = malloc(*numitems * sizeof(void *));
++ *numitems = 0;
++ listSelected(ct-&gt;itemlist, numitems, retval, seqindex);
++
++ return retval;
++}
++
++newtComponent newtCheckboxTree(int left, int top, int height, int flags) {
++ return newtCheckboxTreeMulti(left, top, height, NULL, flags);
++}
++
++newtComponent newtCheckboxTreeMulti(int left, int top, int height, char *seq, int flags) {
++ newtComponent co;
++ struct CheckboxTree * ct;
++
++ co = malloc(sizeof(*co));
++ ct = malloc(sizeof(struct CheckboxTree));
++ co-&gt;callback = NULL;
++ co-&gt;data = ct;
++ co-&gt;ops = &amp;ctOps;
++ co-&gt;takesFocus = 1;
++ co-&gt;height = height;
++ co-&gt;width = 0;
++ co-&gt;isMapped = 0;
++ ct-&gt;itemlist = NULL;
++ ct-&gt;firstItem = NULL;
++ ct-&gt;currItem = NULL;
++ ct-&gt;flatList = NULL;
++ if (seq)
++ ct-&gt;seq = strdup(seq);
++ else
++ ct-&gt;seq = strdup(&quot; *&quot;);
++ if (flags &amp; NEWT_FLAG_SCROLL) {
++ ct-&gt;sb = newtVerticalScrollbar(left, top, height,
++ COLORSET_LISTBOX, COLORSET_ACTLISTBOX);
++ ct-&gt;pad = 2;
++ } else {
++ ct-&gt;sb = NULL;
++ ct-&gt;pad = 0;
++ }
++
++ return co;
++}
++
++static void ctMapped(newtComponent co, int isMapped) {
++ struct CheckboxTree * ct = co-&gt;data;
++
++ co-&gt;isMapped = isMapped;
++ if (ct-&gt;sb)
++ ct-&gt;sb-&gt;ops-&gt;mapped(ct-&gt;sb, isMapped);
++}
++
++static void ctPlace(newtComponent co, int newLeft, int newTop) {
++ struct CheckboxTree * ct = co-&gt;data;
++
++ co-&gt;top = newTop;
++ co-&gt;left = newLeft;
++
++ if (ct-&gt;sb)
++ ct-&gt;sb-&gt;ops-&gt;place(ct-&gt;sb, co-&gt;left + co-&gt;width - 1, co-&gt;top);
++}
++
++int ctSetItem(newtComponent co, struct items *item, enum newtFlagsSense sense)
++{
++ struct CheckboxTree * ct = co-&gt;data;
++ struct items * currItem;
++ struct items * firstItem;
++
++ if (!item)
++ return 1;
++
++ switch(sense) {
++ case NEWT_FLAGS_RESET:
++ item-&gt;selected = 0;
++ break;
++ case NEWT_FLAGS_SET:
++ item-&gt;selected = 1;
++ break;
++ case NEWT_FLAGS_TOGGLE:
++ if (item-&gt;branch)
++ item-&gt;selected = !item-&gt;selected;
++ else {
++ item-&gt;selected++;
++ if (item-&gt;selected==strlen(ct-&gt;seq))
++ item-&gt;selected = 0;
++ }
++ break;
++ }
++
++ if (item-&gt;branch) {
++ currItem = *ct-&gt;currItem;
++ firstItem = *ct-&gt;firstItem;
++
++ buildFlatList(co);
++
++ ct-&gt;currItem = ct-&gt;flatList;
++ while (*ct-&gt;currItem != currItem) ct-&gt;currItem++;
++
++ ct-&gt;firstItem = ct-&gt;flatList;
++ if (ct-&gt;flatCount &gt; co-&gt;height) {
++ struct items ** last = ct-&gt;flatList + ct-&gt;flatCount - co-&gt;height;
++ while (*ct-&gt;firstItem != firstItem &amp;&amp; ct-&gt;firstItem != last)
++ ct-&gt;firstItem++;
++ }
++ }
++
++ return 0;
++}
++
++static void ctSetItems(struct items *item, int selected)
++{
++ for (; item; item = item-&gt;next) {
++ if (!item-&gt;branch)
++ item-&gt;selected = selected;
++ else
++ ctSetItems(item-&gt;branch, selected);
++ }
++}
++
++static void ctDraw(newtComponent co) {
++ struct CheckboxTree * ct = co-&gt;data;
++ struct items ** item;
++ int i, j;
++ char * spaces = NULL;
++ int currRow = -1;
++
++ if (!co-&gt;isMapped) return ;
++
++ if (!ct-&gt;firstItem) {
++ buildFlatList(co);
++ ct-&gt;firstItem = ct-&gt;currItem = ct-&gt;flatList;
++ }
++
++ item = ct-&gt;firstItem;
++
++ i = 0;
++ while (*item &amp;&amp; i &lt; co-&gt;height) {
++ newtGotorc(co-&gt;top + i, co-&gt;left);
++ if (*item == *ct-&gt;currItem) {
++ SLsmg_set_color(NEWT_COLORSET_ACTLISTBOX);
++ currRow = co-&gt;top + i;
++ } else
++ SLsmg_set_color(NEWT_COLORSET_LISTBOX);
++
++ for (j = 0; j &lt; (*item)-&gt;depth; j++)
++ SLsmg_write_string(&quot; &quot;);
++
++ if ((*item)-&gt;branch) {
++ if ((*item)-&gt;selected)
++ SLsmg_write_string(&quot;&lt;-&gt; &quot;);
++ else
++ SLsmg_write_string(&quot;&lt;+&gt; &quot;);
++ } else {
++ char tmp[5];
++ snprintf(tmp,5,&quot;[%c] &quot;,ct-&gt;seq[(*item)-&gt;selected]);
++ SLsmg_write_string(tmp);
++ }
++
++ SLsmg_write_nstring((*item)-&gt;text, co-&gt;width - 4 -
++ (3 * (*item)-&gt;depth));
++ item++;
++ i++;
++ }
++
++ /* There could be empty lines left (i.e. if the user closes an expanded
++ list which is the last thing in the tree, and whose elements are
++ displayed at the bottom of the screen */
++ if (i &lt; co-&gt;height) {
++ spaces = alloca(co-&gt;width);
++ memset(spaces, ' ', co-&gt;width);
++ SLsmg_set_color(NEWT_COLORSET_LISTBOX);
++ }
++ while (i &lt; co-&gt;height) {
++ newtGotorc(co-&gt;top + i, co-&gt;left);
++ SLsmg_write_nstring(spaces, co-&gt;width);
++ i++;
++ }
++
++ if(ct-&gt;sb) {
++ newtScrollbarSet(ct-&gt;sb, ct-&gt;currItem - ct-&gt;flatList,
++ ct-&gt;flatCount - 1);
++ ct-&gt;sb-&gt;ops-&gt;draw(ct-&gt;sb);
++ }
++
++ newtGotorc(currRow, co-&gt;left + 1);
++}
++
++static void ctDestroy(newtComponent co) {
++ struct CheckboxTree * ct = co-&gt;data;
++ struct items * item, * nextitem;
++
++ nextitem = item = ct-&gt;itemlist;
++
++ while (item != NULL) {
++ nextitem = item-&gt;next;
++ free(item-&gt;text);
++ free(item);
++ item = nextitem;
++ }
++
++ free(ct-&gt;seq);
++ free(ct);
++ free(co);
++}
++
++struct eventResult ctEvent(newtComponent co, struct event ev) {
++ struct CheckboxTree * ct = co-&gt;data;
++ struct eventResult er;
++ struct items ** listEnd, ** lastItem;
++ int key, selnum = 1;
++
++ er.result = ER_IGNORED;
++
++ if(ev.when == EV_EARLY || ev.when == EV_LATE) {
++ return er;
++ }
++
++ switch(ev.event) {
++ case EV_KEYPRESS:
++ key = ev.u.key;
++ if (key == (char) key &amp;&amp; key != ' ') {
++ for (selnum = 0; ct-&gt;seq[selnum]; selnum++)
++ if (key == ct-&gt;seq[selnum])
++ break;
++ if (!ct-&gt;seq[selnum])
++ switch (key) {
++ case '-': selnum = 0; break;
++ case '+':
++ case '*': selnum = 1; break;
++ }
++ if (ct-&gt;seq[selnum])
++ key = '*';
++ }
++ switch(key) {
++ case ' ':
++ case NEWT_KEY_ENTER:
++ ctSetItem(co, *ct-&gt;currItem, NEWT_FLAGS_TOGGLE);
++ er.result = ER_SWALLOWED;
++ if (!(*ct-&gt;currItem)-&gt;branch || (*ct-&gt;currItem)-&gt;selected)
++ key = NEWT_KEY_DOWN;
++ else
++ key = '*';
++ break;
++ case '*':
++ if ((*ct-&gt;currItem)-&gt;branch) {
++ ctSetItems((*ct-&gt;currItem)-&gt;branch, selnum);
++ if (!(*ct-&gt;currItem)-&gt;selected)
++ key = NEWT_KEY_DOWN;
++ } else {
++ (*ct-&gt;currItem)-&gt;selected = selnum;
++ key = NEWT_KEY_DOWN;
++ }
++ er.result = ER_SWALLOWED;
++ break;
++ }
++ switch (key) {
++ case '*':
++ ctDraw(co);
++ if(co-&gt;callback) co-&gt;callback(co, co-&gt;callbackData);
++ return er;
++ case NEWT_KEY_HOME:
++ ct-&gt;currItem = ct-&gt;flatList;
++ ct-&gt;firstItem = ct-&gt;flatList;
++ ctDraw(co);
++ if(co-&gt;callback) co-&gt;callback(co, co-&gt;callbackData);
++ er.result = ER_SWALLOWED;
++ return er;
++ case NEWT_KEY_END:
++ ct-&gt;currItem = ct-&gt;flatList + ct-&gt;flatCount - 1;
++ if (ct-&gt;flatCount &lt;= co-&gt;height)
++ ct-&gt;firstItem = ct-&gt;flatList;
++ else
++ ct-&gt;firstItem = ct-&gt;flatList + ct-&gt;flatCount - co-&gt;height;
++ ctDraw(co);
++ if(co-&gt;callback) co-&gt;callback(co, co-&gt;callbackData);
++ er.result = ER_SWALLOWED;
++ return er;
++ case NEWT_KEY_DOWN:
++ if (ev.u.key != NEWT_KEY_DOWN) {
++ if(co-&gt;callback) co-&gt;callback(co, co-&gt;callbackData);
++ if (strlen(ct-&gt;seq) != 2) {
++ ctDraw(co);
++ return er;
++ }
++ }
++ if ((ct-&gt;currItem - ct-&gt;flatList + 1) &lt; ct-&gt;flatCount) {
++ ct-&gt;currItem++;
++
++ if (ct-&gt;currItem - ct-&gt;firstItem &gt;= co-&gt;height)
++ ct-&gt;firstItem++;
++
++ ctDraw(co);
++ } else if (ev.u.key != NEWT_KEY_DOWN)
++ ctDraw(co);
++ if(co-&gt;callback) co-&gt;callback(co, co-&gt;callbackData);
++ er.result = ER_SWALLOWED;
++ return er;
++ case NEWT_KEY_UP:
++ if (ct-&gt;currItem != ct-&gt;flatList) {
++ ct-&gt;currItem--;
++
++ if (ct-&gt;currItem &lt; ct-&gt;firstItem)
++ ct-&gt;firstItem = ct-&gt;currItem;
++
++ ctDraw(co);
++ }
++ er.result = ER_SWALLOWED;
++ if(co-&gt;callback) co-&gt;callback(co, co-&gt;callbackData);
++ return er;
++ case NEWT_KEY_PGUP:
++ if (ct-&gt;firstItem - co-&gt;height &lt; ct-&gt;flatList) {
++ ct-&gt;firstItem = ct-&gt;currItem = ct-&gt;flatList;
++ } else {
++ ct-&gt;currItem -= co-&gt;height;
++ ct-&gt;firstItem -= co-&gt;height;
++ }
++
++ ctDraw(co);
++ if(co-&gt;callback) co-&gt;callback(co, co-&gt;callbackData);
++ er.result = ER_SWALLOWED;
++ return er;
++ case NEWT_KEY_PGDN:
++ listEnd = ct-&gt;flatList + ct-&gt;flatCount - 1;
++ lastItem = ct-&gt;firstItem + co-&gt;height - 1;
++
++ if (lastItem + co-&gt;height &gt; listEnd) {
++ ct-&gt;firstItem = listEnd - co-&gt;height + 1;
++ ct-&gt;currItem = listEnd;
++ } else {
++ ct-&gt;currItem += co-&gt;height;
++ ct-&gt;firstItem += co-&gt;height;
++ }
++
++ ctDraw(co);
++ if(co-&gt;callback) co-&gt;callback(co, co-&gt;callbackData);
++ er.result = ER_SWALLOWED;
++ return er;
++ }
++ break;
++
++ case EV_FOCUS:
++ ctDraw(co);
++ er.result = ER_SWALLOWED;
++ break;
++
++ case EV_UNFOCUS:
++ ctDraw(co);
++ er.result = ER_SWALLOWED;
++ break;
++ default:
++ break;
++ }
++
++ return er;
++}
++
++const void * newtCheckboxTreeGetCurrent(newtComponent co) {
++ struct CheckboxTree * ct = co-&gt;data;
++
++ if (!ct-&gt;currItem) return NULL;
++ return (*ct-&gt;currItem)-&gt;data;
++}
++
++void newtCheckboxTreeSetEntry(newtComponent co, const void * data, const char * text)
++{
++ struct CheckboxTree * ct;
++ struct items * item;
++ int i;
++
++ if (!co) return;
++ ct = co-&gt;data;
++ item = findItem(ct-&gt;itemlist, data);
++ if (!item) return;
++
++ free(item-&gt;text);
++ item-&gt;text = strdup(text);
++
++ i = 4 + (3 * item-&gt;depth);
++
++ if ((strlen(text) + i + ct-&gt;pad) &gt; (size_t)co-&gt;width) {
++ co-&gt;width = strlen(text) + i + ct-&gt;pad;
++ }
++
++ ctDraw(co);
++}
++
++char newtCheckboxTreeGetEntryValue(newtComponent co, const void * data)
++{
++ struct CheckboxTree * ct;
++ struct items * item;
++
++ if (!co) return -1;
++ ct = co-&gt;data;
++ item = findItem(ct-&gt;itemlist, data);
++ if (!item) return -1;
++ if (item-&gt;branch)
++ return item-&gt;selected ? NEWT_CHECKBOXTREE_EXPANDED : NEWT_CHECKBOXTREE_COLLAPSED;
++ else
++ return ct-&gt;seq[item-&gt;selected];
++}
++
++void newtCheckboxTreeSetEntryValue(newtComponent co, const void * data, char value)
++{
++ struct CheckboxTree * ct;
++ struct items * item;
++ int i;
++
++ if (!co) return;
++ ct = co-&gt;data;
++ item = findItem(ct-&gt;itemlist, data);
++ if (!item || item-&gt;branch) return;
++
++ for(i = 0; ct-&gt;seq[i]; i++)
++ if (value == ct-&gt;seq[i])
++ break;
++
++ if (!ct-&gt;seq[i]) return;
++ item-&gt;selected = i;
++
++ ctDraw(co);
++}
++
+
+
+Property changes on: drakx/trunk/mdk-stage1/newt/checkboxtree.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1newtentryc">Added: drakx/trunk/mdk-stage1/newt/entry.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/newt/entry.c (rev 0)
++++ drakx/trunk/mdk-stage1/newt/entry.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,378 @@
++#include &lt;ctype.h&gt;
++#include &lt;slang.h&gt;
++#include &lt;stdlib.h&gt;
++#include &lt;string.h&gt;
++
++#include &quot;newt.h&quot;
++#include &quot;newt_pr.h&quot;
++
++struct entry {
++ int flags;
++ char * buf;
++ char ** resultPtr;
++ int bufAlloced;
++ int bufUsed; /* amount of the buffer that's been used */
++ int cursorPosition; /* cursor *in the string* on on screen */
++ int firstChar; /* first character position being shown */
++ newtEntryFilter filter;
++ void * filterData;
++};
++
++static void entryDraw(newtComponent co);
++static void entryDestroy(newtComponent co);
++static struct eventResult entryEvent(newtComponent co,
++ struct event ev);
++
++static struct eventResult entryHandleKey(newtComponent co, int key);
++
++static struct componentOps entryOps = {
++ entryDraw,
++ entryEvent,
++ entryDestroy,
++ newtDefaultPlaceHandler,
++ newtDefaultMappedHandler,
++} ;
++
++void newtEntrySet(newtComponent co, const char * value, int cursorAtEnd) {
++ struct entry * en = co-&gt;data;
++
++ if ((strlen(value) + 1) &gt; (unsigned int)en-&gt;bufAlloced) {
++ free(en-&gt;buf);
++ en-&gt;bufAlloced = strlen(value) + 1;
++ en-&gt;buf = malloc(en-&gt;bufAlloced);
++ if (en-&gt;resultPtr) *en-&gt;resultPtr = en-&gt;buf;
++ }
++ memset(en-&gt;buf, 0, en-&gt;bufAlloced); /* clear the buffer */
++ strcpy(en-&gt;buf, value);
++ en-&gt;bufUsed = strlen(value);
++ en-&gt;firstChar = 0;
++ if (cursorAtEnd)
++ en-&gt;cursorPosition = en-&gt;bufUsed;
++ else
++ en-&gt;cursorPosition = 0;
++
++ entryDraw(co);
++} ;
++
++newtComponent newtEntry(int left, int top, const char * initialValue, int width,
++ char ** resultPtr, int flags) {
++ newtComponent co;
++ struct entry * en;
++
++ co = malloc(sizeof(*co));
++ en = malloc(sizeof(struct entry));
++ co-&gt;data = en;
++
++ co-&gt;top = top;
++ co-&gt;left = left;
++ co-&gt;height = 1;
++ co-&gt;width = width;
++ co-&gt;isMapped = 0;
++ co-&gt;callback = NULL;
++
++ co-&gt;ops = &amp;entryOps;
++
++ en-&gt;flags = flags;
++ en-&gt;cursorPosition = 0;
++ en-&gt;firstChar = 0;
++ en-&gt;bufUsed = 0;
++ en-&gt;bufAlloced = width + 1;
++ en-&gt;filter = NULL;
++
++ if (!(en-&gt;flags &amp; NEWT_FLAG_DISABLED))
++ co-&gt;takesFocus = 1;
++ else
++ co-&gt;takesFocus = 0;
++
++ if (initialValue &amp;&amp; strlen(initialValue) &gt; (unsigned int)width) {
++ en-&gt;bufAlloced = strlen(initialValue) + 1;
++ }
++ en-&gt;buf = malloc(en-&gt;bufAlloced);
++ en-&gt;resultPtr = resultPtr;
++ if (en-&gt;resultPtr) *en-&gt;resultPtr = en-&gt;buf;
++
++ memset(en-&gt;buf, 0, en-&gt;bufAlloced);
++ if (initialValue) {
++ strcpy(en-&gt;buf, initialValue);
++ en-&gt;bufUsed = strlen(initialValue);
++ en-&gt;cursorPosition = en-&gt;bufUsed;
++ } else {
++ *en-&gt;buf = '\0';
++ en-&gt;bufUsed = 0;
++ en-&gt;cursorPosition = 0;
++ }
++
++ return co;
++}
++
++static void entryDraw(newtComponent co) {
++ struct entry * en = co-&gt;data;
++ int i;
++ char * chptr;
++ int len;
++
++ if (!co-&gt;isMapped) return;
++
++ if (en-&gt;flags &amp; NEWT_FLAG_DISABLED)
++ SLsmg_set_color(NEWT_COLORSET_DISENTRY);
++ else
++ SLsmg_set_color(NEWT_COLORSET_ENTRY);
++
++ if (en-&gt;flags &amp; NEWT_FLAG_HIDDEN) {
++ newtGotorc(co-&gt;top, co-&gt;left);
++ for (i = 0; i &lt; co-&gt;width; i++)
++ SLsmg_write_char('_');
++ newtGotorc(co-&gt;top, co-&gt;left);
++
++ return;
++ }
++
++ newtGotorc(co-&gt;top, co-&gt;left);
++
++ if (en-&gt;cursorPosition &lt; en-&gt;firstChar) {
++ /* scroll to the left */
++ en-&gt;firstChar = en-&gt;cursorPosition;
++ } else if ((en-&gt;firstChar + co-&gt;width) &lt;= en-&gt;cursorPosition) {
++ /* scroll to the right */
++ en-&gt;firstChar = en-&gt;cursorPosition - co-&gt;width + 1;
++ }
++
++ chptr = en-&gt;buf + en-&gt;firstChar;
++
++ if (en-&gt;flags &amp; NEWT_FLAG_PASSWORD) {
++ char *tmpptr, *p;
++
++ tmpptr = alloca(strlen(chptr+2));
++ strcpy(tmpptr, chptr);
++ for (p = tmpptr; *p; p++)
++ *p = '*';
++ chptr = tmpptr;
++ }
++
++ len = strlen(chptr);
++
++ if (len &lt;= co-&gt;width) {
++ i = len;
++ SLsmg_write_string(chptr);
++ while (i &lt; co-&gt;width) {
++ SLsmg_write_char('_');
++ i++;
++ }
++ } else {
++ SLsmg_write_nstring(chptr, co-&gt;width);
++ }
++
++ if (en-&gt;flags &amp; NEWT_FLAG_HIDDEN)
++ newtGotorc(co-&gt;top, co-&gt;left);
++ else
++ newtGotorc(co-&gt;top, co-&gt;left + (en-&gt;cursorPosition - en-&gt;firstChar));
++}
++
++void newtEntrySetFlags(newtComponent co, int flags, enum newtFlagsSense sense) {
++ struct entry * en = co-&gt;data;
++ int row, col;
++
++ en-&gt;flags = newtSetFlags(en-&gt;flags, flags, sense);
++
++ if (!(en-&gt;flags &amp; NEWT_FLAG_DISABLED))
++ co-&gt;takesFocus = 1;
++ else
++ co-&gt;takesFocus = 0;
++
++ newtGetrc(&amp;row, &amp;col);
++ entryDraw(co);
++ newtGotorc(row, col);
++}
++
++static void entryDestroy(newtComponent co) {
++ struct entry * en = co-&gt;data;
++
++ free(en-&gt;buf);
++ free(en);
++ free(co);
++}
++
++static struct eventResult entryEvent(newtComponent co,
++ struct event ev) {
++ struct entry * en = co-&gt;data;
++ struct eventResult er;
++ int ch;
++ er.result = ER_IGNORED;
++ er.u.focus = NULL;
++
++ if (ev.when == EV_NORMAL) {
++ switch (ev.event) {
++ case EV_FOCUS:
++ newtCursorOn();
++ if (en-&gt;flags &amp; NEWT_FLAG_HIDDEN)
++ newtGotorc(co-&gt;top, co-&gt;left);
++ else
++ newtGotorc(co-&gt;top, co-&gt;left +
++ (en-&gt;cursorPosition - en-&gt;firstChar));
++ er.result = ER_SWALLOWED;
++ break;
++
++ case EV_UNFOCUS:
++ newtCursorOff();
++ newtGotorc(0, 0);
++ er.result = ER_SWALLOWED;
++ if (co-&gt;callback)
++ co-&gt;callback(co, co-&gt;callbackData);
++ break;
++
++ case EV_KEYPRESS:
++ ch = ev.u.key;
++ if (en-&gt;filter)
++ ch = en-&gt;filter(co, en-&gt;filterData, ch, en-&gt;cursorPosition);
++ if (ch) er = entryHandleKey(co, ch);
++ break;
++
++ case EV_MOUSE:
++ if ((ev.u.mouse.type == MOUSE_BUTTON_DOWN) &amp;&amp;
++ (en-&gt;flags ^ NEWT_FLAG_HIDDEN)) {
++ if (strlen(en-&gt;buf) &gt;= (size_t) (ev.u.mouse.x - co-&gt;left)) {
++ en-&gt;cursorPosition = ev.u.mouse.x - co-&gt;left;
++ newtGotorc(co-&gt;top,
++ co-&gt;left +(en-&gt;cursorPosition - en-&gt;firstChar));
++ } else {
++ en-&gt;cursorPosition = strlen(en-&gt;buf);
++ newtGotorc(co-&gt;top,
++ co-&gt;left +(en-&gt;cursorPosition - en-&gt;firstChar));
++ }
++ }
++ break;
++ }
++ } else
++ er.result = ER_IGNORED;
++
++ return er;
++}
++
++static struct eventResult entryHandleKey(newtComponent co, int key) {
++ struct entry * en = co-&gt;data;
++ struct eventResult er;
++ char * chptr, * insPoint;
++
++ er.result = ER_SWALLOWED;
++ switch (key) {
++ case '\r': /* Return */
++ if (en-&gt;flags &amp; NEWT_FLAG_RETURNEXIT) {
++ er.result = ER_EXITFORM;
++ } else {
++ er.result = ER_NEXTCOMP;
++ }
++ break;
++
++ case '\001': /* ^A */
++ case NEWT_KEY_HOME:
++ en-&gt;cursorPosition = 0;
++ break;
++
++ case '\005': /* ^E */
++ case NEWT_KEY_END:
++ en-&gt;cursorPosition = en-&gt;bufUsed;
++ break;
++
++ case '\013': /* ^K */
++ en-&gt;bufUsed = en-&gt;cursorPosition;
++ memset(en-&gt;buf + en-&gt;bufUsed, 0, en-&gt;bufAlloced - en-&gt;bufUsed);
++ break;
++
++ case '\002': /* ^B */
++ case NEWT_KEY_LEFT:
++ if (en-&gt;cursorPosition)
++ en-&gt;cursorPosition--;
++ break;
++
++ case '\004':
++ case NEWT_KEY_DELETE:
++ chptr = en-&gt;buf + en-&gt;cursorPosition;
++ if (*chptr) {
++ chptr++;
++ while (*chptr) {
++ *(chptr - 1) = *chptr;
++ chptr++;
++ }
++ *(chptr - 1) = '\0';
++ en-&gt;bufUsed--;
++ }
++ break;
++
++ case NEWT_KEY_BKSPC:
++ if (en-&gt;cursorPosition) {
++ /* if this isn't true, there's nothing to erase */
++ chptr = en-&gt;buf + en-&gt;cursorPosition;
++ en-&gt;bufUsed--;
++ en-&gt;cursorPosition--;
++ while (*chptr) {
++ *(chptr - 1) = *chptr;
++ chptr++;
++ }
++ *(chptr - 1) = '\0';
++ }
++ break;
++
++ case '\006': /* ^B */
++ case NEWT_KEY_RIGHT:
++ if (en-&gt;cursorPosition &lt; en-&gt;bufUsed)
++ en-&gt;cursorPosition++;
++ break;
++
++ default:
++ if ((key &gt;= 0x20 &amp;&amp; key &lt;= 0x7e) || (key &gt;= 0xa0 &amp;&amp; key &lt;= 0xff)) {
++ if (!(en-&gt;flags &amp; NEWT_FLAG_SCROLL) &amp;&amp; en-&gt;bufUsed &gt;= co-&gt;width) {
++ SLtt_beep();
++ break;
++ }
++
++ if ((en-&gt;bufUsed + 1) == en-&gt;bufAlloced) {
++ en-&gt;bufAlloced += 20;
++ en-&gt;buf = realloc(en-&gt;buf, en-&gt;bufAlloced);
++ if (en-&gt;resultPtr) *en-&gt;resultPtr = en-&gt;buf;
++ memset(en-&gt;buf + en-&gt;bufUsed + 1, 0, 20);
++ }
++
++ if (en-&gt;cursorPosition == en-&gt;bufUsed) {
++ en-&gt;bufUsed++;
++ } else {
++ /* insert the new character */
++
++ /* chptr is the last character in the string */
++ chptr = (en-&gt;buf + en-&gt;bufUsed) - 1;
++ if ((en-&gt;bufUsed + 1) == en-&gt;bufAlloced) {
++ /* this string fills the buffer, so clip it */
++ chptr--;
++ } else
++ en-&gt;bufUsed++;
++
++ insPoint = en-&gt;buf + en-&gt;cursorPosition;
++
++ while (chptr &gt;= insPoint) {
++ *(chptr + 1) = *chptr;
++ chptr--;
++ }
++
++ }
++
++ en-&gt;buf[en-&gt;cursorPosition++] = key;
++ } else {
++ er.result = ER_IGNORED;
++ }
++ }
++
++ entryDraw(co);
++
++ return er;
++}
++
++char * newtEntryGetValue(newtComponent co) {
++ struct entry * en = co-&gt;data;
++
++ return en-&gt;buf;
++}
++
++void newtEntrySetFilter(newtComponent co, newtEntryFilter filter, void * data) {
++ struct entry * en = co-&gt;data;
++ en-&gt;filter = filter;
++ en-&gt;filterData = data;
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/newt/entry.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1newtformc">Added: drakx/trunk/mdk-stage1/newt/form.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/newt/form.c (rev 0)
++++ drakx/trunk/mdk-stage1/newt/form.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,713 @@
++#include &lt;unistd.h&gt;
++#include &lt;slang.h&gt;
++#include &lt;stdarg.h&gt;
++#include &lt;stdlib.h&gt;
++#include &lt;string.h&gt;
++#include &lt;sys/time.h&gt;
++#include &lt;sys/types.h&gt;
++
++#include &quot;newt.h&quot;
++#include &quot;newt_pr.h&quot;
++
++
++/****************************************************************************
++ These forms handle vertical scrolling of components with a height of 1
++
++ Horizontal scrolling won't work, and scrolling large widgets will fail
++ miserably. It shouldn't be too hard to fix either of those if anyone
++ cares to. I only use scrolling for listboxes and text boxes though so
++ I didn't bother.
++*****************************************************************************/
++
++struct element {
++ int top, left; /* Actual, not virtual. These are translated */
++ newtComponent co; /* into actual through vertOffset */
++};
++
++struct fdInfo {
++ int fd;
++ int flags;
++};
++
++struct form {
++ int numCompsAlloced;
++ struct element * elements;
++ int numComps;
++ int currComp;
++ int fixedHeight;
++ int flags;
++ int vertOffset;
++ newtComponent vertBar, exitComp;
++ const char * help;
++ int numRows;
++ int * hotKeys;
++ int numHotKeys;
++ int background;
++ int beenSet;
++ int numFds;
++ struct fdInfo * fds;
++ int maxFd;
++ int timer; /* in milliseconds */
++ struct timeval lastTimeout;
++ void * helpTag;
++ newtCallback helpCb;
++};
++
++static void gotoComponent(struct form * form, int newComp);
++static struct eventResult formEvent(newtComponent co, struct event ev);
++static struct eventResult sendEvent(newtComponent comp, struct event ev);
++static void formPlace(newtComponent co, int left, int top);
++
++/* Global, ick */
++static newtCallback helpCallback;
++
++/* this isn't static as grid.c tests against it to find forms */
++struct componentOps formOps = {
++ newtDrawForm,
++ formEvent,
++ newtFormDestroy,
++ formPlace,
++ newtDefaultMappedHandler,
++} ;
++
++static inline int componentFits(newtComponent co, int compNum) {
++ struct form * form = co-&gt;data;
++ struct element * el = form-&gt;elements + compNum;
++
++ if ((co-&gt;top + form-&gt;vertOffset) &gt; el-&gt;top) return 0;
++ if ((co-&gt;top + form-&gt;vertOffset + co-&gt;height) &lt;
++ (el-&gt;top + el-&gt;co-&gt;height)) return 0;
++
++ return 1;
++}
++
++newtComponent newtForm(newtComponent vertBar, void * help, int flags) {
++ newtComponent co;
++ struct form * form;
++
++ co = malloc(sizeof(*co));
++ form = malloc(sizeof(*form));
++ co-&gt;data = form;
++ co-&gt;width = 0;
++ co-&gt;height = 0;
++ co-&gt;top = -1;
++ co-&gt;left = -1;
++ co-&gt;isMapped = 0;
++
++ co-&gt;takesFocus = 0; /* we may have 0 components */
++ co-&gt;ops = &amp;formOps;
++
++ form-&gt;help = help;
++ form-&gt;flags = flags;
++ form-&gt;numCompsAlloced = 5;
++ form-&gt;numComps = 0;
++ form-&gt;currComp = -1;
++ form-&gt;vertOffset = 0;
++ form-&gt;fixedHeight = 0;
++ form-&gt;numRows = 0;
++ form-&gt;numFds = 0;
++ form-&gt;maxFd = 0;
++ form-&gt;fds = NULL;
++ form-&gt;beenSet = 0;
++ form-&gt;elements = malloc(sizeof(*(form-&gt;elements)) * form-&gt;numCompsAlloced);
++
++ form-&gt;background = COLORSET_WINDOW;
++ form-&gt;hotKeys = malloc(sizeof(int));
++ form-&gt;numHotKeys = 0;
++ form-&gt;timer = 0;
++ form-&gt;lastTimeout.tv_sec = form-&gt;lastTimeout.tv_usec = 0;
++ if (!(form-&gt;flags &amp; NEWT_FLAG_NOF12)) {
++ newtFormAddHotKey(co, NEWT_KEY_F12);
++ }
++
++ if (vertBar)
++ form-&gt;vertBar = vertBar;
++ else
++ form-&gt;vertBar = NULL;
++
++ form-&gt;helpTag = help;
++ form-&gt;helpCb = helpCallback;
++
++ return co;
++}
++
++newtComponent newtFormGetCurrent(newtComponent co) {
++ struct form * form = co-&gt;data;
++
++ return form-&gt;elements[form-&gt;currComp].co;
++}
++
++void newtFormSetCurrent(newtComponent co, newtComponent subco) {
++ struct form * form = co-&gt;data;
++ int i, new;
++
++ for (i = 0; i &lt; form-&gt;numComps; i++) {
++ if (form-&gt;elements[i].co == subco) break;
++ }
++
++ if (form-&gt;elements[i].co != subco) return;
++ new = i;
++
++ if (co-&gt;isMapped &amp;&amp; !componentFits(co, new)) {
++ gotoComponent(form, -1);
++ form-&gt;vertOffset = form-&gt;elements[new].top - co-&gt;top - 1;
++ if (form-&gt;vertOffset &gt; (form-&gt;numRows - co-&gt;height))
++ form-&gt;vertOffset = form-&gt;numRows - co-&gt;height;
++ }
++
++ gotoComponent(form, new);
++}
++
++void newtFormSetTimer(newtComponent co, int millisecs) {
++ struct form * form = co-&gt;data;
++
++ form-&gt;timer = millisecs;
++ form-&gt;lastTimeout.tv_usec = 0;
++ form-&gt;lastTimeout.tv_sec = 0;
++}
++
++void newtFormSetHeight(newtComponent co, int height) {
++ struct form * form = co-&gt;data;
++
++ form-&gt;fixedHeight = 1;
++ co-&gt;height = height;
++}
++
++void newtFormSetWidth(newtComponent co, int width) {
++ co-&gt;width = width;
++}
++
++void newtFormAddComponent(newtComponent co, newtComponent newco) {
++ struct form * form = co-&gt;data;
++
++ co-&gt;takesFocus = 1;
++
++ if (form-&gt;numCompsAlloced == form-&gt;numComps) {
++ form-&gt;numCompsAlloced += 5;
++ form-&gt;elements = realloc(form-&gt;elements,
++ sizeof(*(form-&gt;elements)) * form-&gt;numCompsAlloced);
++ }
++
++ /* we grab real values for these a bit later */
++ form-&gt;elements[form-&gt;numComps].left = -2;
++ form-&gt;elements[form-&gt;numComps].top = -2;
++ form-&gt;elements[form-&gt;numComps].co = newco;
++
++ if (newco-&gt;takesFocus &amp;&amp; form-&gt;currComp == -1)
++ form-&gt;currComp = form-&gt;numComps;
++
++ form-&gt;numComps++;
++}
++
++void newtFormAddComponents(newtComponent co, ...) {
++ va_list ap;
++ newtComponent subco;
++
++ va_start(ap, co);
++
++ while ((subco = va_arg(ap, newtComponent)))
++ newtFormAddComponent(co, subco);
++
++ va_end(ap);
++}
++
++static void formPlace(newtComponent co, int left, int top) {
++ struct form * form = co-&gt;data;
++ int vertDelta, horizDelta;
++ struct element * el;
++ int i;
++
++ newtFormSetSize(co);
++
++ vertDelta = top - co-&gt;top;
++ horizDelta = left - co-&gt;left;
++ co-&gt;top = top;
++ co-&gt;left = left;
++
++ for (i = 0, el = form-&gt;elements; i &lt; form-&gt;numComps; i++, el++) {
++ el-&gt;co-&gt;top += vertDelta;
++ el-&gt;top += vertDelta;
++ el-&gt;co-&gt;left += horizDelta;
++ el-&gt;left += horizDelta;
++ }
++}
++
++void newtDrawForm(newtComponent co) {
++ struct form * form = co-&gt;data;
++ struct element * el;
++ int i;
++
++ newtFormSetSize(co);
++
++ SLsmg_set_color(form-&gt;background);
++ newtClearBox(co-&gt;left, co-&gt;top, co-&gt;width, co-&gt;height);
++ for (i = 0, el = form-&gt;elements; i &lt; form-&gt;numComps; i++, el++) {
++ /* the scrollbar *always* fits somewhere */
++ if (el-&gt;co == form-&gt;vertBar) {
++ el-&gt;co-&gt;ops-&gt;mapped(el-&gt;co, 1);
++ el-&gt;co-&gt;ops-&gt;draw(el-&gt;co);
++ } else {
++ /* only draw it if it'll fit on the screen vertically */
++ if (componentFits(co, i)) {
++ el-&gt;co-&gt;top = el-&gt;top - form-&gt;vertOffset;
++ el-&gt;co-&gt;ops-&gt;mapped(el-&gt;co, 1);
++ el-&gt;co-&gt;ops-&gt;draw(el-&gt;co);
++ } else {
++ el-&gt;co-&gt;ops-&gt;mapped(el-&gt;co, 0);
++ }
++ }
++ }
++
++ if (form-&gt;vertBar)
++ newtScrollbarSet(form-&gt;vertBar, form-&gt;vertOffset,
++ form-&gt;numRows - co-&gt;height);
++}
++
++static struct eventResult formEvent(newtComponent co, struct event ev) {
++ struct form * form = co-&gt;data;
++ newtComponent subco = form-&gt;elements[form-&gt;currComp].co;
++ int new, wrap = 0;
++ struct eventResult er;
++ int dir = 0, page = 0;
++ int i, num, found;
++ struct element * el;
++
++ er.result = ER_IGNORED;
++ if (!form-&gt;numComps) return er;
++
++ subco = form-&gt;elements[form-&gt;currComp].co;
++
++ switch (ev.when) {
++ case EV_EARLY:
++ if (ev.event == EV_KEYPRESS) {
++ if (ev.u.key == NEWT_KEY_TAB) {
++ er.result = ER_SWALLOWED;
++ dir = 1;
++ wrap = 1;
++ } else if (ev.u.key == NEWT_KEY_UNTAB) {
++ er.result = ER_SWALLOWED;
++ dir = -1;
++ wrap = 1;
++ }
++ }
++
++ if (form-&gt;numComps) {
++ i = form-&gt;currComp;
++ num = 0;
++ while (er.result == ER_IGNORED &amp;&amp; num != form-&gt;numComps ) {
++ er = form-&gt;elements[i].co-&gt;ops-&gt;event(form-&gt;elements[i].co, ev);
++
++ num++;
++ i++;
++ if (i == form-&gt;numComps) i = 0;
++ }
++ }
++
++ break;
++
++ case EV_NORMAL:
++ if (ev.event == EV_MOUSE) {
++ found = 0;
++ for (i = 0, el = form-&gt;elements; i &lt; form-&gt;numComps; i++, el++) {
++ if ((el-&gt;co-&gt;top &lt;= ev.u.mouse.y) &amp;&amp;
++ (el-&gt;co-&gt;top + el-&gt;co-&gt;height &gt; ev.u.mouse.y) &amp;&amp;
++ (el-&gt;co-&gt;left &lt;= ev.u.mouse.x) &amp;&amp;
++ (el-&gt;co-&gt;left + el-&gt;co-&gt;width &gt; ev.u.mouse.x)) {
++ found = 1;
++ if (el-&gt;co-&gt;takesFocus) {
++ gotoComponent(form, i);
++ subco = form-&gt;elements[form-&gt;currComp].co;
++ }
++ }
++ /* If we did not find a co to send this event to, we
++ should just swallow the event here. */
++ }
++ if (!found) {
++ er.result = ER_SWALLOWED;
++
++ return er;
++ }
++ }
++ er = subco-&gt;ops-&gt;event(subco, ev);
++ switch (er.result) {
++ case ER_NEXTCOMP:
++ er.result = ER_SWALLOWED;
++ dir = 1;
++ break;
++
++ case ER_EXITFORM:
++ form-&gt;exitComp = subco;
++ break;
++
++ default:
++ break;
++ }
++ break;
++
++ case EV_LATE:
++ er = subco-&gt;ops-&gt;event(subco, ev);
++
++ if (er.result == ER_IGNORED) {
++ switch (ev.u.key) {
++ case NEWT_KEY_UP:
++ case NEWT_KEY_LEFT:
++ case NEWT_KEY_BKSPC:
++ er.result = ER_SWALLOWED;
++ dir = -1;
++ break;
++
++ case NEWT_KEY_DOWN:
++ case NEWT_KEY_RIGHT:
++ er.result = ER_SWALLOWED;
++ dir = 1;
++ break;
++
++ case NEWT_KEY_PGUP:
++ er.result = ER_SWALLOWED;
++ dir = -1;
++ page = 1;
++ break;
++
++ case NEWT_KEY_PGDN:
++ er.result = ER_SWALLOWED;
++ dir = 1;
++ page = 1;
++ break;
++ }
++ }
++ }
++
++ if (dir) {
++ new = form-&gt;currComp;
++
++ if (page) {
++ new += dir * co-&gt;height;
++ if (new &lt; 0)
++ new = 0;
++ else if (new &gt;= form-&gt;numComps)
++ new = (form-&gt;numComps - 1);
++
++ while (!form-&gt;elements[new].co-&gt;takesFocus)
++ new = new - dir;
++ } else {
++ do {
++ new += dir;
++
++ if (wrap) {
++ if (new &lt; 0)
++ new = form-&gt;numComps - 1;
++ else if (new &gt;= form-&gt;numComps)
++ new = 0;
++ } else if (new &lt; 0 || new &gt;= form-&gt;numComps)
++ return er;
++ } while (!form-&gt;elements[new].co-&gt;takesFocus);
++ }
++
++ /* make sure this component is visible */
++ if (!componentFits(co, new)) {
++ gotoComponent(form, -1);
++
++ if (dir &lt; 0) {
++ /* make the new component the first one */
++ form-&gt;vertOffset = form-&gt;elements[new].top - co-&gt;top;
++ } else {
++ /* make the new component the last one */
++ form-&gt;vertOffset = (form-&gt;elements[new].top +
++ form-&gt;elements[new].co-&gt;height) -
++ (co-&gt;top + co-&gt;height);
++ }
++
++ if (form-&gt;vertOffset &lt; 0) form-&gt;vertOffset = 0;
++ if (form-&gt;vertOffset &gt; (form-&gt;numRows - co-&gt;height))
++ form-&gt;vertOffset = form-&gt;numRows - co-&gt;height;
++
++ newtDrawForm(co);
++ }
++
++ gotoComponent(form, new);
++ er.result = ER_SWALLOWED;
++ }
++
++ return er;
++}
++
++/* this also destroys all of the components on the form */
++void newtFormDestroy(newtComponent co) {
++ newtComponent subco;
++ struct form * form = co-&gt;data;
++ int i;
++
++ /* first, destroy all of the components */
++ for (i = 0; i &lt; form-&gt;numComps; i++) {
++ subco = form-&gt;elements[i].co;
++ if (subco-&gt;ops-&gt;destroy) {
++ subco-&gt;ops-&gt;destroy(subco);
++ } else {
++ if (subco-&gt;data) free(subco-&gt;data);
++ free(subco);
++ }
++ }
++
++ if (form-&gt;hotKeys) free(form-&gt;hotKeys);
++
++ free(form-&gt;elements);
++ free(form);
++ free(co);
++}
++
++newtComponent newtRunForm(newtComponent co) {
++ struct newtExitStruct es;
++
++ newtFormRun(co, &amp;es);
++ if (es.reason == NEWT_EXIT_HOTKEY) {
++ if (es.u.key == NEWT_KEY_F12) {
++ es.reason = NEWT_EXIT_COMPONENT;
++ es.u.co = co;
++ } else {
++ return NULL;
++ }
++ }
++
++ return es.u.co;
++}
++
++void newtFormAddHotKey(newtComponent co, int key) {
++ struct form * form = co-&gt;data;
++
++ form-&gt;numHotKeys++;
++ form-&gt;hotKeys = realloc(form-&gt;hotKeys, sizeof(int) * form-&gt;numHotKeys);
++ form-&gt;hotKeys[form-&gt;numHotKeys - 1] = key;
++}
++
++void newtFormSetSize(newtComponent co) {
++ struct form * form = co-&gt;data;
++ int delta, i;
++ struct element * el;
++
++ if (form-&gt;beenSet) return;
++
++ form-&gt;beenSet = 1;
++
++ if (!form-&gt;numComps) return;
++
++ co-&gt;width = 0;
++ if (!form-&gt;fixedHeight) co-&gt;height = 0;
++
++ co-&gt;top = form-&gt;elements[0].co-&gt;top;
++ co-&gt;left = form-&gt;elements[0].co-&gt;left;
++ for (i = 0, el = form-&gt;elements; i &lt; form-&gt;numComps; i++, el++) {
++ if (el-&gt;co-&gt;ops == &amp;formOps)
++ newtFormSetSize(el-&gt;co);
++
++ el-&gt;left = el-&gt;co-&gt;left;
++ el-&gt;top = el-&gt;co-&gt;top;
++
++ if (co-&gt;left &gt; el-&gt;co-&gt;left) {
++ delta = co-&gt;left - el-&gt;co-&gt;left;
++ co-&gt;left -= delta;
++ co-&gt;width += delta;
++ }
++
++ if (co-&gt;top &gt; el-&gt;co-&gt;top) {
++ delta = co-&gt;top - el-&gt;co-&gt;top;
++ co-&gt;top -= delta;
++ if (!form-&gt;fixedHeight)
++ co-&gt;height += delta;
++ }
++
++ if ((co-&gt;left + co-&gt;width) &lt; (el-&gt;co-&gt;left + el-&gt;co-&gt;width))
++ co-&gt;width = (el-&gt;co-&gt;left + el-&gt;co-&gt;width) - co-&gt;left;
++
++ if (!form-&gt;fixedHeight) {
++ if ((co-&gt;top + co-&gt;height) &lt; (el-&gt;co-&gt;top + el-&gt;co-&gt;height))
++ co-&gt;height = (el-&gt;co-&gt;top + el-&gt;co-&gt;height) - co-&gt;top;
++ }
++
++ if ((el-&gt;co-&gt;top + el-&gt;co-&gt;height - co-&gt;top) &gt; form-&gt;numRows) {
++ form-&gt;numRows = el-&gt;co-&gt;top + el-&gt;co-&gt;height - co-&gt;top;
++ }
++ }
++}
++
++void newtFormRun(newtComponent co, struct newtExitStruct * es) {
++ struct form * form = co-&gt;data;
++ struct event ev;
++ struct eventResult er;
++ int key, i, max;
++ int done = 0;
++ fd_set readSet, writeSet;
++ struct timeval nextTimeout, now, timeout;
++
++ newtFormSetSize(co);
++ /* draw all of the components */
++ newtDrawForm(co);
++
++ if (form-&gt;currComp == -1) {
++ gotoComponent(form, 0);
++ } else
++ gotoComponent(form, form-&gt;currComp);
++
++ while (!done) {
++ newtRefresh();
++
++ FD_ZERO(&amp;readSet);
++ FD_ZERO(&amp;writeSet);
++ FD_SET(0, &amp;readSet);
++ max = form-&gt;maxFd;
++
++ for (i = 0; i &lt; form-&gt;numFds; i++) {
++ if (form-&gt;fds[i].flags &amp; NEWT_FD_READ)
++ FD_SET(form-&gt;fds[i].fd, &amp;readSet);
++ if (form-&gt;fds[i].flags &amp; NEWT_FD_WRITE)
++ FD_SET(form-&gt;fds[i].fd, &amp;writeSet);
++ }
++
++ if (form-&gt;timer) {
++ /* Calculate when we next need to return with a timeout. Do
++ this inside the loop in case a callback resets the timer. */
++ if (!form-&gt;lastTimeout.tv_sec &amp;&amp; !form-&gt;lastTimeout.tv_usec)
++ gettimeofday(&amp;form-&gt;lastTimeout, NULL);
++
++ nextTimeout.tv_sec = form-&gt;lastTimeout.tv_sec +
++ (form-&gt;timer / 1000);
++ nextTimeout.tv_usec = form-&gt;lastTimeout.tv_usec +
++ (form-&gt;timer % 1000) * 1000;
++
++ gettimeofday(&amp;now, 0);
++
++ if (now.tv_sec &gt; nextTimeout.tv_sec) {
++ timeout.tv_sec = timeout.tv_usec = 0;
++ } else if (now.tv_sec == nextTimeout.tv_sec) {
++ timeout.tv_sec = 0;
++ if (now.tv_usec &gt; nextTimeout.tv_usec)
++ timeout.tv_usec = 0;
++ else
++ timeout.tv_usec = nextTimeout.tv_usec - now.tv_usec;
++ } else if (now.tv_sec &lt; nextTimeout.tv_sec) {
++ timeout.tv_sec = nextTimeout.tv_sec - now.tv_sec;
++ if (now.tv_usec &gt; nextTimeout.tv_usec)
++ timeout.tv_sec--,
++ timeout.tv_usec = nextTimeout.tv_usec + 1000000 -
++ now.tv_usec;
++ else
++ timeout.tv_usec = nextTimeout.tv_usec - now.tv_usec;
++ }
++ } else {
++ timeout.tv_sec = timeout.tv_usec = 0;
++ }
++
++ i = select(max + 1, &amp;readSet, &amp;writeSet, NULL,
++ form-&gt;timer ? &amp;timeout : NULL);
++ if (i &lt; 0) continue; /* ?? What should we do here? */
++
++ if (i == 0) {
++ done = 1;
++ es-&gt;reason = NEWT_EXIT_TIMER;
++ gettimeofday(&amp;form-&gt;lastTimeout, NULL);
++ } else
++ {
++ if (FD_ISSET(0, &amp;readSet)) {
++
++ key = newtGetKey();
++
++ if (key == NEWT_KEY_RESIZE) {
++ /* newtResizeScreen(1); */
++ continue;
++ }
++
++ for (i = 0; i &lt; form-&gt;numHotKeys; i++) {
++ if (form-&gt;hotKeys[i] == key) {
++ es-&gt;reason = NEWT_EXIT_HOTKEY;
++ es-&gt;u.key = key;
++ done = 1;
++ break;
++ }
++ }
++
++ if (key == NEWT_KEY_F1 &amp;&amp; form-&gt;helpTag &amp;&amp; form-&gt;helpCb)
++ form-&gt;helpCb(co, form-&gt;helpTag);
++
++ if (!done) {
++ ev.event = EV_KEYPRESS;
++ ev.u.key = key;
++
++ er = sendEvent(co, ev);
++
++ if (er.result == ER_EXITFORM) {
++ done = 1;
++ es-&gt;reason = NEWT_EXIT_COMPONENT;
++ es-&gt;u.co = form-&gt;exitComp;
++ }
++ }
++ } else {
++ es-&gt;reason = NEWT_EXIT_FDREADY;
++ done = 1;
++ }
++ }
++ }
++ newtRefresh();
++}
++
++static struct eventResult sendEvent(newtComponent co, struct event ev) {
++ struct eventResult er;
++
++ ev.when = EV_EARLY;
++ er = co-&gt;ops-&gt;event(co, ev);
++
++ if (er.result == ER_IGNORED) {
++ ev.when = EV_NORMAL;
++ er = co-&gt;ops-&gt;event(co, ev);
++ }
++
++ if (er.result == ER_IGNORED) {
++ ev.when = EV_LATE;
++ er = co-&gt;ops-&gt;event(co, ev);
++ }
++
++ return er;
++}
++
++static void gotoComponent(struct form * form, int newComp) {
++ struct event ev;
++
++ if (form-&gt;currComp != -1) {
++ ev.event = EV_UNFOCUS;
++ sendEvent(form-&gt;elements[form-&gt;currComp].co, ev);
++ }
++
++ form-&gt;currComp = newComp;
++
++ if (form-&gt;currComp != -1) {
++ ev.event = EV_FOCUS;
++ ev.when = EV_NORMAL;
++ sendEvent(form-&gt;elements[form-&gt;currComp].co, ev);
++ }
++}
++
++void newtComponentAddCallback(newtComponent co, newtCallback f, void * data) {
++ co-&gt;callback = f;
++ co-&gt;callbackData = data;
++}
++
++void newtComponentTakesFocus(newtComponent co, int val) {
++ co-&gt;takesFocus = val;
++}
++
++void newtFormSetBackground(newtComponent co, int color) {
++ struct form * form = co-&gt;data;
++
++ form-&gt;background = color;
++}
++
++void newtFormWatchFd(newtComponent co, int fd, int fdFlags) {
++ struct form * form = co-&gt;data;
++
++ form-&gt;fds = realloc(form-&gt;fds, (form-&gt;numFds + 1) * sizeof(*form-&gt;fds));
++ form-&gt;fds[form-&gt;numFds].fd = fd;
++ form-&gt;fds[form-&gt;numFds++].flags = fdFlags;
++ if (form-&gt;maxFd &lt; fd) form-&gt;maxFd = fd;
++}
++
++void newtSetHelpCallback(newtCallback cb) {
++ helpCallback = cb;
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/newt/form.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1newtgridc">Added: drakx/trunk/mdk-stage1/newt/grid.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/newt/grid.c (rev 0)
++++ drakx/trunk/mdk-stage1/newt/grid.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,389 @@
++#include &lt;alloca.h&gt;
++#include &lt;stdlib.h&gt;
++#include &lt;string.h&gt;
++
++#include &quot;newt.h&quot;
++#include &quot;newt_pr.h&quot;
++
++struct gridField {
++ enum newtGridElement type;
++ union {
++ newtGrid grid;
++ newtComponent co;
++ } u;
++ int padLeft, padTop, padRight, padBottom;
++ int anchor;
++ int flags;
++};
++
++struct grid_s {
++ int rows, cols;
++ int width, height; /* totals, -1 means unknown */
++ struct gridField ** fields;
++};
++
++/* this is a bit of a hack */
++extern struct componentOps formOps[];
++
++newtGrid newtCreateGrid(int cols, int rows) {
++ newtGrid grid;
++
++ grid = malloc(sizeof(*grid));
++ grid-&gt;rows = rows;
++ grid-&gt;cols = cols;
++
++ grid-&gt;fields = malloc(sizeof(*grid-&gt;fields) * cols);
++ while (cols--) {
++ grid-&gt;fields[cols] = malloc(sizeof(**(grid-&gt;fields)) * rows);
++ memset(grid-&gt;fields[cols], 0, sizeof(**(grid-&gt;fields)) * rows);
++ }
++
++ grid-&gt;width = grid-&gt;height = -1;
++
++ return grid;
++}
++
++void newtGridSetField(newtGrid grid, int col, int row,
++ enum newtGridElement type, void * val, int padLeft,
++ int padTop, int padRight, int padBottom, int anchor,
++ int flags) {
++ struct gridField * field = &amp;grid-&gt;fields[col][row];
++
++ if (field-&gt;type == NEWT_GRID_SUBGRID)
++ newtGridFree(field-&gt;u.grid, 1);
++
++ field-&gt;type = type;
++ field-&gt;u.co = (void *) val;
++
++ field-&gt;padLeft = padLeft;
++ field-&gt;padRight = padRight;
++ field-&gt;padTop = padTop;
++ field-&gt;padBottom = padBottom;
++ field-&gt;anchor = anchor;
++ field-&gt;flags = flags;
++
++ grid-&gt;width = grid-&gt;height = -1;
++}
++
++static void distSpace(int extra, int items, int * list) {
++ int all, some, i;
++
++ all = extra / items;
++ some = extra % items;
++ for (i = 0; i &lt; items; i++) {
++ list[i] += all;
++ if (some) {
++ list[i]++;
++ some--;
++ }
++ }
++}
++
++static void shuffleGrid(newtGrid grid, int left, int top, int set) {
++ struct gridField * field;
++ int row, col;
++ int i, j;
++ int minWidth, minHeight;
++ int * widths, * heights;
++ int thisLeft, thisTop;
++ int x, y, remx, remy;
++
++ widths = alloca(sizeof(*widths) * grid-&gt;cols);
++ memset(widths, 0, sizeof(*widths) * grid-&gt;cols);
++ heights = alloca(sizeof(*heights) * grid-&gt;rows);
++ memset(heights, 0, sizeof(*heights) * grid-&gt;rows);
++
++ minWidth = 0;
++ for (row = 0; row &lt; grid-&gt;rows; row++) {
++ i = 0;
++ for (col = 0; col &lt; grid-&gt;cols; col++) {
++ field = &amp;grid-&gt;fields[col][row];
++ if (field-&gt;type == NEWT_GRID_SUBGRID) {
++ /* we'll have to redo this later */
++ if (field-&gt;u.grid-&gt;width == -1)
++ shuffleGrid(field-&gt;u.grid, left, top, 0);
++ j = field-&gt;u.grid-&gt;width;
++ } else if (field-&gt;type == NEWT_GRID_COMPONENT) {
++ if (field-&gt;u.co-&gt;ops == formOps)
++ newtFormSetSize(field-&gt;u.co);
++ j = field-&gt;u.co-&gt;width;
++ } else
++ j = 0;
++
++ j += field-&gt;padLeft + field-&gt;padRight;
++
++ if (j &gt; widths[col]) widths[col] = j;
++ i += widths[col];
++ }
++
++ if (i &gt; minWidth) minWidth = i;
++ }
++
++ minHeight = 0;
++ for (col = 0; col &lt; grid-&gt;cols; col++) {
++ i = 0;
++ for (row = 0; row &lt; grid-&gt;rows; row++) {
++ field = &amp;grid-&gt;fields[col][row];
++ if (field-&gt;type == NEWT_GRID_SUBGRID) {
++ /* we'll have to redo this later */
++ if (field-&gt;u.grid-&gt;height == -1)
++ shuffleGrid(field-&gt;u.grid, 0, 0, 0);
++ j = field-&gt;u.grid-&gt;height;
++ } else if (field-&gt;type == NEWT_GRID_COMPONENT){
++ j = field-&gt;u.co-&gt;height;
++ } else
++ j = 0;
++
++ j += field-&gt;padTop + field-&gt;padBottom;
++
++ if (j &gt; heights[row]) heights[row] = j;
++ i += heights[row];
++ }
++
++ if (i &gt; minHeight) minHeight = i;
++ }
++
++ /* this catches the -1 case */
++ if (grid-&gt;width &lt; minWidth) grid-&gt;width = minWidth; /* ack! */
++ if (grid-&gt;height &lt; minHeight) grid-&gt;height = minHeight; /* ditto! */
++
++ if (!set) return;
++
++ distSpace(grid-&gt;width - minWidth, grid-&gt;cols, widths);
++ distSpace(grid-&gt;height - minHeight, grid-&gt;rows, heights);
++
++ thisTop = top;
++ for (row = 0; row &lt; grid-&gt;rows; row++) {
++ i = 0;
++ thisLeft = left;
++ for (col = 0; col &lt; grid-&gt;cols; col++) {
++ field = &amp;grid-&gt;fields[col][row];
++
++ if (field-&gt;type == NEWT_GRID_EMPTY) continue;
++
++ x = thisLeft + field-&gt;padLeft;
++ remx = widths[col] - field-&gt;padLeft - field-&gt;padRight;
++ y = thisTop + field-&gt;padTop;
++ remy = heights[row] - field-&gt;padTop - field-&gt;padBottom;
++
++ if (field-&gt;type == NEWT_GRID_SUBGRID) {
++ remx -= field-&gt;u.grid-&gt;width;
++ remy -= field-&gt;u.grid-&gt;height;
++ } else if (field-&gt;type == NEWT_GRID_COMPONENT) {
++ remx -= field-&gt;u.co-&gt;width;
++ remy -= field-&gt;u.co-&gt;height;
++ }
++
++ if (!(field-&gt;flags &amp; NEWT_GRID_FLAG_GROWX)) {
++ if (field-&gt;anchor &amp; NEWT_ANCHOR_RIGHT)
++ x += remx;
++ else if (!(field-&gt;anchor &amp; NEWT_ANCHOR_LEFT))
++ x += (remx / 2);
++ }
++
++ if (!(field-&gt;flags &amp; NEWT_GRID_FLAG_GROWY)) {
++ if (field-&gt;anchor &amp; NEWT_ANCHOR_BOTTOM)
++ y += remx;
++ else if (!(field-&gt;anchor &amp; NEWT_ANCHOR_TOP))
++ y += (remy / 2);
++ }
++
++ if (field-&gt;type == NEWT_GRID_SUBGRID) {
++ if (field-&gt;flags &amp; NEWT_GRID_FLAG_GROWX)
++ field-&gt;u.grid-&gt;width = widths[col] - field-&gt;padLeft
++ - field-&gt;padRight;
++ if (field-&gt;flags &amp; NEWT_GRID_FLAG_GROWY)
++ field-&gt;u.grid-&gt;height = heights[col] - field-&gt;padTop
++ - field-&gt;padBottom;
++
++ shuffleGrid(field-&gt;u.grid, x, y, 1);
++ } else if (field-&gt;type == NEWT_GRID_COMPONENT) {
++ field-&gt;u.co-&gt;ops-&gt;place(field-&gt;u.co, x, y);
++ }
++
++ thisLeft += widths[col];
++ }
++
++ thisTop += heights[row];
++ }
++}
++
++void newtGridPlace(newtGrid grid, int left, int top) {
++ shuffleGrid(grid, left, top, 1);
++}
++
++void newtGridFree(newtGrid grid, int recurse) {
++ int row, col;
++
++ for (col = 0; col &lt; grid-&gt;cols; col++) {
++ if (recurse) {
++ for (row = 0; row &lt; grid-&gt;rows; row++) {
++ if (grid-&gt;fields[col][row].type == NEWT_GRID_SUBGRID)
++ newtGridFree(grid-&gt;fields[col][row].u.grid, 1);
++ }
++ }
++
++ free(grid-&gt;fields[col]);
++ }
++
++ free(grid-&gt;fields);
++ free(grid);
++}
++
++void newtGridGetSize(newtGrid grid, int * width, int * height) {
++ if (grid-&gt;width == -1 || grid-&gt;height == -1) {
++ grid-&gt;width = grid-&gt;height = -1;
++ shuffleGrid(grid, 0, 0, 1);
++ }
++
++ *width = grid-&gt;width;
++ *height = grid-&gt;height;
++}
++
++void newtGridWrappedWindow(newtGrid grid, char * title) {
++ int width, height, offset = 0;
++
++ newtGridGetSize(grid, &amp;width, &amp;height);
++ if ((size_t)width &lt; strlen(title) + 2) {
++ offset = ((strlen(title) + 2) - width) / 2;
++ width = strlen(title) + 2;
++ }
++ newtCenteredWindow(width + 2, height + 2, title);
++ newtGridPlace(grid, 1 + offset, 1);
++}
++
++void newtGridWrappedWindowAt(newtGrid grid, char * title, int left, int top) {
++ int width, height;
++
++ newtGridGetSize(grid, &amp;width, &amp;height);
++ newtOpenWindow(left, top, width + 2, height + 2, title);
++ newtGridPlace(grid, 1, 1);
++}
++
++void newtGridAddComponentsToForm(newtGrid grid, newtComponent form,
++ int recurse) {
++ int row, col;
++
++ for (col = 0; col &lt; grid-&gt;cols; col++) {
++ for (row = 0; row &lt; grid-&gt;rows; row++) {
++ if (grid-&gt;fields[col][row].type == NEWT_GRID_SUBGRID &amp;&amp; recurse)
++ newtGridAddComponentsToForm(grid-&gt;fields[col][row].u.grid,
++ form, 1);
++ else if (grid-&gt;fields[col][row].type == NEWT_GRID_COMPONENT)
++ newtFormAddComponent(form, grid-&gt;fields[col][row].u.co);
++ }
++ }
++}
++
++/* this handles up to 50 items */
++static newtGrid stackem(int isVert, enum newtGridElement type1, void * what1,
++ va_list args, int close) {
++ struct item {
++ enum newtGridElement type;
++ void * what;
++ } items[50];
++ int i, num;
++ newtGrid grid;
++
++ items[0].type = type1, items[0].what = what1, num = 1;
++ while (1) {
++ items[num].type = va_arg(args, enum newtGridElement);
++ if (items[num].type == NEWT_GRID_EMPTY) break;
++
++ items[num].what = va_arg(args, void *);
++ num++;
++ }
++
++ grid = newtCreateGrid(isVert ? 1 : num, isVert ? num : 1);
++
++ for (i = 0; i &lt; num; i++) {
++ newtGridSetField(grid, isVert ? 0 : i, isVert ? i : 0,
++ items[i].type, items[i].what,
++ close ? 0 : (i ? (isVert ? 0 : 1) : 0),
++ close ? 0 : (i ? (isVert ? 1 : 0) : 0), 0, 0, 0, 0);
++ }
++
++ return grid;
++}
++
++newtGrid newtGridHCloseStacked(enum newtGridElement type1, void * what1, ...) {
++ va_list args;
++ newtGrid grid;
++
++ va_start(args, what1);
++
++ grid = stackem(0, type1, what1, args, 1);
++
++ va_start(args, what1);
++
++ return grid;
++}
++
++newtGrid newtGridVCloseStacked(enum newtGridElement type1, void * what1, ...) {
++ va_list args;
++ newtGrid grid;
++
++ va_start(args, what1);
++
++ grid = stackem(1, type1, what1, args, 1);
++
++ va_start(args, what1);
++
++ return grid;
++}
++
++newtGrid newtGridVStacked(enum newtGridElement type1, void * what1, ...) {
++ va_list args;
++ newtGrid grid;
++
++ va_start(args, what1);
++
++ grid = stackem(1, type1, what1, args, 0);
++
++ va_start(args, what1);
++
++ return grid;
++}
++
++newtGrid newtGridHStacked(enum newtGridElement type1, void * what1, ...) {
++ va_list args;
++ newtGrid grid;
++
++ va_start(args, what1);
++
++ grid = stackem(0, type1, what1, args, 0);
++
++ va_start(args, what1);
++
++ return grid;
++}
++
++newtGrid newtGridBasicWindow(newtComponent text, newtGrid middle,
++ newtGrid buttons) {
++ newtGrid grid;
++
++ grid = newtCreateGrid(1, 3);
++ newtGridSetField(grid, 0, 0, NEWT_GRID_COMPONENT, text,
++ 0, 0, 0, 0, NEWT_ANCHOR_LEFT, 0);
++ newtGridSetField(grid, 0, 1, NEWT_GRID_SUBGRID, middle,
++ 0, 1, 0, 0, 0, 0);
++ newtGridSetField(grid, 0, 2, NEWT_GRID_SUBGRID, buttons,
++ 0, 1, 0, 0, 0, NEWT_GRID_FLAG_GROWX);
++
++ return grid;
++}
++
++newtGrid newtGridSimpleWindow(newtComponent text, newtComponent middle,
++ newtGrid buttons) {
++ newtGrid grid;
++
++ grid = newtCreateGrid(1, 3);
++ newtGridSetField(grid, 0, 0, NEWT_GRID_COMPONENT, text,
++ 0, 0, 0, 0, NEWT_ANCHOR_LEFT, 0);
++ newtGridSetField(grid, 0, 1, NEWT_GRID_COMPONENT, middle,
++ 0, 1, 0, 0, 0, 0);
++ newtGridSetField(grid, 0, 2, NEWT_GRID_SUBGRID, buttons,
++ 0, 1, 0, 0, 0, NEWT_GRID_FLAG_GROWX);
++
++ return grid;
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/newt/grid.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1newtlabelc">Added: drakx/trunk/mdk-stage1/newt/label.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/newt/label.c (rev 0)
++++ drakx/trunk/mdk-stage1/newt/label.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,81 @@
++#include &lt;slang.h&gt;
++#include &lt;stdlib.h&gt;
++#include &lt;string.h&gt;
++
++#include &quot;newt.h&quot;
++#include &quot;newt_pr.h&quot;
++
++struct label {
++ char * text;
++ int length;
++};
++
++static void labelDraw(newtComponent co);
++static void labelDestroy(newtComponent co);
++
++static struct componentOps labelOps = {
++ labelDraw,
++ newtDefaultEventHandler,
++ labelDestroy,
++ newtDefaultPlaceHandler,
++ newtDefaultMappedHandler,
++} ;
++
++newtComponent newtLabel(int left, int top, const char * text) {
++ newtComponent co;
++ struct label * la;
++
++ co = malloc(sizeof(*co));
++ la = malloc(sizeof(struct label));
++ co-&gt;data = la;
++
++ co-&gt;ops = &amp;labelOps;
++
++ co-&gt;height = 1;
++ co-&gt;width = strlen(text);
++ co-&gt;top = top;
++ co-&gt;left = left;
++ co-&gt;takesFocus = 0;
++
++ la-&gt;length = strlen(text);
++ la-&gt;text = strdup(text);
++
++ return co;
++}
++
++void newtLabelSetText(newtComponent co, const char * text) {
++ int newLength;
++ struct label * la = co-&gt;data;
++
++ newLength = strlen(text);
++ if (newLength &lt;= la-&gt;length) {
++ memset(la-&gt;text, ' ', la-&gt;length);
++ memcpy(la-&gt;text, text, newLength);
++ } else {
++ free(la-&gt;text);
++ la-&gt;text = strdup(text);
++ la-&gt;length = newLength;
++ co-&gt;width = newLength;
++ }
++
++ labelDraw(co);
++}
++
++static void labelDraw(newtComponent co) {
++ struct label * la = co-&gt;data;
++
++ if (co-&gt;isMapped == -1) return;
++
++ SLsmg_set_color(COLORSET_LABEL);
++
++ newtGotorc(co-&gt;top, co-&gt;left);
++ SLsmg_write_string(la-&gt;text);
++}
++
++static void labelDestroy(newtComponent co) {
++ struct label * la = co-&gt;data;
++
++ free(la-&gt;text);
++ free(la);
++ free(co);
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/newt/label.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1newtlistboxc">Added: drakx/trunk/mdk-stage1/newt/listbox.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/newt/listbox.c (rev 0)
++++ drakx/trunk/mdk-stage1/newt/listbox.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,752 @@
++/* This goofed-up box whacked into shape by Elliot Lee &lt;sopwith@cuc.edu&gt;
++ (from the original listbox by Erik Troan &lt;ewt@redhat.com&gt;)
++ and contributed to newt for use under the LGPL license.
++ Copyright (C) 1996, 1997 Elliot Lee */
++
++#include &lt;slang.h&gt;
++#include &lt;stdio.h&gt;
++#include &lt;stdlib.h&gt;
++#include &lt;string.h&gt;
++#include &lt;ctype.h&gt;
++
++#include &quot;newt.h&quot;
++#include &quot;newt_pr.h&quot;
++
++
++/* Linked list of items in the listbox */
++struct items {
++ char * text;
++ const void *data;
++ unsigned char isSelected;
++ struct items *next;
++};
++
++/* Holds all the relevant information for this listbox */
++struct listbox {
++ newtComponent sb; /* Scrollbar on right side of listbox */
++ int curWidth; /* size of text w/o scrollbar or border*/
++ int curHeight; /* size of text w/o border */
++ int sbAdjust;
++ int bdxAdjust, bdyAdjust;
++ int numItems, numSelected;
++ int userHasSetWidth;
++ int currItem, startShowItem; /* startShowItem is the first item displayed
++ on the screen */
++ int isActive; /* If we handle key events all the time, it seems
++ to do things even when they are supposed to be for
++ another button/whatever */
++ struct items *boxItems;
++ int grow;
++ int flags; /* flags for this listbox, right now just
++ NEWT_FLAG_RETURNEXIT */
++};
++
++static void listboxDraw(newtComponent co);
++static void listboxDestroy(newtComponent co);
++static struct eventResult listboxEvent(newtComponent co, struct event ev);
++static void newtListboxRealSetCurrent(newtComponent co);
++static void listboxPlace(newtComponent co, int newLeft, int newTop);
++static inline void updateWidth(newtComponent co, struct listbox * li,
++ int maxField);
++static void listboxMapped(newtComponent co, int isMapped);
++
++static struct componentOps listboxOps = {
++ listboxDraw,
++ listboxEvent,
++ listboxDestroy,
++ listboxPlace,
++ listboxMapped,
++};
++
++static void listboxMapped(newtComponent co, int isMapped) {
++ struct listbox * li = co-&gt;data;
++
++ co-&gt;isMapped = isMapped;
++ if (li-&gt;sb)
++ li-&gt;sb-&gt;ops-&gt;mapped(li-&gt;sb, isMapped);
++}
++
++static void listboxPlace(newtComponent co, int newLeft, int newTop) {
++ struct listbox * li = co-&gt;data;
++
++ co-&gt;top = newTop;
++ co-&gt;left = newLeft;
++
++ if (li-&gt;sb)
++ li-&gt;sb-&gt;ops-&gt;place(li-&gt;sb, co-&gt;left + co-&gt;width - li-&gt;bdxAdjust - 1,
++ co-&gt;top);
++}
++
++newtComponent newtListbox(int left, int top, int height, int flags) {
++ newtComponent co, sb;
++ struct listbox * li;
++
++ if (!(co = malloc(sizeof(*co))))
++ return NULL;
++
++ if (!(li = malloc(sizeof(struct listbox)))) {
++ free(co);
++ return NULL;
++ }
++
++ li-&gt;boxItems = NULL;
++ li-&gt;numItems = 0;
++ li-&gt;currItem = 0;
++ li-&gt;numSelected = 0;
++ li-&gt;isActive = 0;
++ li-&gt;userHasSetWidth = 0;
++ li-&gt;startShowItem = 0;
++ li-&gt;sbAdjust = 0;
++ li-&gt;bdxAdjust = 0;
++ li-&gt;bdyAdjust = 0;
++ li-&gt;flags = flags &amp; (NEWT_FLAG_RETURNEXIT | NEWT_FLAG_BORDER |
++ NEWT_FLAG_MULTIPLE);
++
++ if (li-&gt;flags &amp; NEWT_FLAG_BORDER) {
++ li-&gt;bdxAdjust = 2;
++ li-&gt;bdyAdjust = 1;
++ }
++
++ co-&gt;height = height;
++ li-&gt;curHeight = co-&gt;height - (2 * li-&gt;bdyAdjust);
++
++ if (height) {
++ li-&gt;grow = 0;
++ if (flags &amp; NEWT_FLAG_SCROLL) {
++ sb = newtVerticalScrollbar(left, top + li-&gt;bdyAdjust,
++ li-&gt;curHeight,
++ COLORSET_LISTBOX, COLORSET_ACTLISTBOX);
++ li-&gt;sbAdjust = 3;
++ } else {
++ sb = NULL;
++ }
++ } else {
++ li-&gt;grow = 1;
++ sb = NULL;
++ }
++
++ li-&gt;sb = sb;
++ co-&gt;data = li;
++ co-&gt;isMapped = 0;
++ co-&gt;left = left;
++ co-&gt;top = top;
++ co-&gt;ops = &amp;listboxOps;
++ co-&gt;takesFocus = 1;
++ co-&gt;callback = NULL;
++
++ updateWidth(co, li, 5);
++
++ return co;
++}
++
++static inline void updateWidth(newtComponent co, struct listbox * li,
++ int maxField) {
++ li-&gt;curWidth = maxField;
++ co-&gt;width = li-&gt;curWidth + li-&gt;sbAdjust + 2 * li-&gt;bdxAdjust;
++
++ if (li-&gt;sb)
++ li-&gt;sb-&gt;left = co-&gt;left + co-&gt;width - li-&gt;bdxAdjust - 1;
++}
++
++void newtListboxSetCurrentByKey(newtComponent co, void * key) {
++ struct listbox * li = co-&gt;data;
++ struct items * item;
++ int i;
++
++ item = li-&gt;boxItems, i = 0;
++ while (item &amp;&amp; item-&gt;data != key)
++ item = item-&gt;next, i++;
++
++ if (item)
++ newtListboxSetCurrent(co, i);
++}
++
++void newtListboxSetCurrent(newtComponent co, int num)
++{
++ struct listbox * li = co-&gt;data;
++
++ if (num &gt;= li-&gt;numItems)
++ li-&gt;currItem = li-&gt;numItems - 1;
++ else if (num &lt; 0)
++ li-&gt;currItem = 0;
++ else
++ li-&gt;currItem = num;
++
++ if (li-&gt;currItem &lt; li-&gt;startShowItem)
++ li-&gt;startShowItem = li-&gt;currItem;
++ else if (li-&gt;currItem - li-&gt;startShowItem &gt; li-&gt;curHeight - 1)
++ li-&gt;startShowItem = li-&gt;currItem - li-&gt;curHeight + 1;
++ if (li-&gt;startShowItem + li-&gt;curHeight &gt; li-&gt;numItems)
++ li-&gt;startShowItem = li-&gt;numItems - li-&gt;curHeight;
++ if(li-&gt;startShowItem &lt; 0)
++ li-&gt;startShowItem = 0;
++
++ newtListboxRealSetCurrent(co);
++}
++
++static void newtListboxRealSetCurrent(newtComponent co)
++{
++ struct listbox * li = co-&gt;data;
++
++ if(li-&gt;sb)
++ newtScrollbarSet(li-&gt;sb, li-&gt;currItem + 1, li-&gt;numItems);
++ listboxDraw(co);
++ if(co-&gt;callback) co-&gt;callback(co, co-&gt;callbackData);
++}
++
++void newtListboxSetWidth(newtComponent co, int width) {
++ struct listbox * li = co-&gt;data;
++
++ co-&gt;width = width;
++ li-&gt;curWidth = co-&gt;width - li-&gt;sbAdjust - 2 * li-&gt;bdxAdjust;
++ li-&gt;userHasSetWidth = 1;
++ if (li-&gt;sb) li-&gt;sb-&gt;left = co-&gt;width + co-&gt;left - 1;
++ listboxDraw(co);
++}
++
++void * newtListboxGetCurrent(newtComponent co) {
++ struct listbox * li = co-&gt;data;
++ int i;
++ struct items *item;
++
++ for(i = 0, item = li-&gt;boxItems; item != NULL &amp;&amp; i &lt; li-&gt;currItem;
++ i++, item = item-&gt;next);
++
++ if (item)
++ return (void *)item-&gt;data;
++ else
++ return NULL;
++}
++
++void newtListboxSelectItem(newtComponent co, const void * key,
++ enum newtFlagsSense sense)
++{
++ struct listbox * li = co-&gt;data;
++ int i;
++ struct items * item;
++
++ item = li-&gt;boxItems, i = 0;
++ while (item &amp;&amp; item-&gt;data != key)
++ item = item-&gt;next, i++;
++
++ if (!item) return;
++
++ if (item-&gt;isSelected)
++ li-&gt;numSelected--;
++
++ switch(sense) {
++ case NEWT_FLAGS_RESET:
++ item-&gt;isSelected = 0; break;
++ case NEWT_FLAGS_SET:
++ item-&gt;isSelected = 1; break;
++ case NEWT_FLAGS_TOGGLE:
++ item-&gt;isSelected = !item-&gt;isSelected;
++ }
++
++ if (item-&gt;isSelected)
++ li-&gt;numSelected++;
++
++ listboxDraw(co);
++}
++
++void newtListboxClearSelection(newtComponent co)
++{
++ struct items *item;
++ struct listbox * li = co-&gt;data;
++
++ for(item = li-&gt;boxItems; item != NULL;
++ item = item-&gt;next)
++ item-&gt;isSelected = 0;
++ li-&gt;numSelected = 0;
++ listboxDraw(co);
++}
++
++/* Free the returned array after use, but NOT the values in the array */
++void ** newtListboxGetSelection(newtComponent co, int *numitems)
++{
++ struct listbox * li;
++ int i;
++ void **retval;
++ struct items *item;
++
++ if(!co || !numitems) return NULL;
++
++ li = co-&gt;data;
++ if(!li || !li-&gt;numSelected) return NULL;
++
++ retval = malloc(li-&gt;numSelected * sizeof(void *));
++ for(i = 0, item = li-&gt;boxItems; item != NULL;
++ item = item-&gt;next)
++ if(item-&gt;isSelected)
++ retval[i++] = (void *)item-&gt;data;
++ *numitems = li-&gt;numSelected;
++ return retval;
++}
++
++void newtListboxSetEntry(newtComponent co, int num, const char * text) {
++ struct listbox * li = co-&gt;data;
++ int i;
++ struct items *item;
++
++ for(i = 0, item = li-&gt;boxItems; item != NULL &amp;&amp; i &lt; num;
++ i++, item = item-&gt;next);
++
++ if(!item)
++ return;
++ else {
++ free(item-&gt;text);
++ item-&gt;text = strdup(text);
++ }
++ if (li-&gt;userHasSetWidth == 0 &amp;&amp; strlen(text) &gt; (size_t)li-&gt;curWidth) {
++ updateWidth(co, li, strlen(text));
++ }
++
++ if (num &gt;= li-&gt;startShowItem &amp;&amp; num &lt;= li-&gt;startShowItem + co-&gt;height)
++ listboxDraw(co);
++}
++
++void newtListboxSetData(newtComponent co, int num, void * data) {
++ struct listbox * li = co-&gt;data;
++ int i;
++ struct items *item;
++
++ for(i = 0, item = li-&gt;boxItems; item != NULL &amp;&amp; i &lt; num;
++ i++, item = item-&gt;next);
++
++ item-&gt;data = data;
++}
++
++int newtListboxAppendEntry(newtComponent co, const char * text,
++ const void * data) {
++ struct listbox * li = co-&gt;data;
++ struct items *item;
++
++ if(li-&gt;boxItems) {
++ for (item = li-&gt;boxItems; item-&gt;next != NULL; item = item-&gt;next);
++
++ item = item-&gt;next = malloc(sizeof(struct items));
++ } else {
++ item = li-&gt;boxItems = malloc(sizeof(struct items));
++ }
++
++ if (!li-&gt;userHasSetWidth &amp;&amp; text &amp;&amp; (strlen(text) &gt; (size_t)li-&gt;curWidth))
++ updateWidth(co, li, strlen(text));
++
++ item-&gt;text = strdup(text); item-&gt;data = data; item-&gt;next = NULL;
++ item-&gt;isSelected = 0;
++
++ if (li-&gt;grow)
++ co-&gt;height++, li-&gt;curHeight++;
++ li-&gt;numItems++;
++
++ return 0;
++}
++
++int newtListboxInsertEntry(newtComponent co, const char * text,
++ const void * data, void * key) {
++ struct listbox * li = co-&gt;data;
++ struct items *item, *t;
++
++ if (li-&gt;boxItems) {
++ if (key) {
++ item = li-&gt;boxItems;
++ while (item &amp;&amp; item-&gt;data != key) item = item-&gt;next;
++
++ if (!item) return 1;
++
++ t = item-&gt;next;
++ item = item-&gt;next = malloc(sizeof(struct items));
++ item-&gt;next = t;
++ } else {
++ t = li-&gt;boxItems;
++ item = li-&gt;boxItems = malloc(sizeof(struct items));
++ item-&gt;next = t;
++ }
++ } else if (key) {
++ return 1;
++ } else {
++ item = li-&gt;boxItems = malloc(sizeof(struct items));
++ item-&gt;next = NULL;
++ }
++
++ if (!li-&gt;userHasSetWidth &amp;&amp; text &amp;&amp; (strlen(text) &gt; (size_t)li-&gt;curWidth))
++ updateWidth(co, li, strlen(text));
++
++ item-&gt;text = strdup(text?text:&quot;(null)&quot;); item-&gt;data = data;
++ item-&gt;isSelected = 0;
++
++ if (li-&gt;sb)
++ li-&gt;sb-&gt;left = co-&gt;left + co-&gt;width - li-&gt;bdxAdjust - 1;
++ li-&gt;numItems++;
++
++ listboxDraw(co);
++
++ return 0;
++}
++
++int newtListboxDeleteEntry(newtComponent co, void * key) {
++ struct listbox * li = co-&gt;data;
++ int widest = 0, t;
++ struct items *item, *item2 = NULL;
++ int num;
++
++ if (li-&gt;boxItems == NULL || li-&gt;numItems &lt;= 0)
++ return 0;
++
++ num = 0;
++
++ item2 = NULL, item = li-&gt;boxItems;
++ while (item &amp;&amp; item-&gt;data != key) {
++ item2 = item;
++ item = item-&gt;next;
++ num++;
++ }
++
++ if (!item)
++ return -1;
++
++ if (item2)
++ item2-&gt;next = item-&gt;next;
++ else
++ li-&gt;boxItems = item-&gt;next;
++
++ free(item-&gt;text);
++ free(item);
++ li-&gt;numItems--;
++
++ if (!li-&gt;userHasSetWidth) {
++ widest = 0;
++ for (item = li-&gt;boxItems; item != NULL; item = item-&gt;next)
++ if ((t = strlen(item-&gt;text)) &gt; widest) widest = t;
++ }
++
++ if (li-&gt;currItem &gt;= num)
++ li-&gt;currItem--;
++
++ if (!li-&gt;userHasSetWidth) {
++ updateWidth(co, li, widest);
++ }
++
++ listboxDraw(co);
++
++ return 0;
++}
++
++void newtListboxClear(newtComponent co)
++{
++ struct listbox * li;
++ struct items *anitem, *nextitem;
++ if(co == NULL || (li = co-&gt;data) == NULL)
++ return;
++ for(anitem = li-&gt;boxItems; anitem != NULL; anitem = nextitem) {
++ nextitem = anitem-&gt;next;
++ free(anitem-&gt;text);
++ free(anitem);
++ }
++ li-&gt;numItems = li-&gt;numSelected = li-&gt;currItem = li-&gt;startShowItem = 0;
++ li-&gt;boxItems = NULL;
++ if (!li-&gt;userHasSetWidth)
++ updateWidth(co, li, 5);
++}
++
++/* If you don't want to get back the text, pass in NULL for the ptr-ptr. Same
++ goes for the data. */
++void newtListboxGetEntry(newtComponent co, int num, char **text, void **data) {
++ struct listbox * li = co-&gt;data;
++ int i;
++ struct items *item;
++
++ if (!li-&gt;boxItems || num &gt;= li-&gt;numItems) {
++ if(text)
++ *text = NULL;
++ if(data)
++ *data = NULL;
++ return;
++ }
++
++ i = 0;
++ item = li-&gt;boxItems;
++ while (item &amp;&amp; i &lt; num) {
++ i++, item = item-&gt;next;
++ }
++
++ if (item) {
++ if (text)
++ *text = item-&gt;text;
++ if (data)
++ *data = (void *)item-&gt;data;
++ }
++}
++
++static void listboxDraw(newtComponent co)
++{
++ struct listbox * li = co-&gt;data;
++ struct items *item;
++ int i, j;
++
++ if (!co-&gt;isMapped) return ;
++
++ if(li-&gt;flags &amp; NEWT_FLAG_BORDER) {
++ if(li-&gt;isActive)
++ SLsmg_set_color(NEWT_COLORSET_ACTLISTBOX);
++ else
++ SLsmg_set_color(NEWT_COLORSET_LISTBOX);
++
++ newtDrawBox(co-&gt;left, co-&gt;top, co-&gt;width, co-&gt;height, 0);
++ }
++
++ if(li-&gt;sb)
++ li-&gt;sb-&gt;ops-&gt;draw(li-&gt;sb);
++
++ SLsmg_set_color(NEWT_COLORSET_LISTBOX);
++
++ for(i = 0, item = li-&gt;boxItems; item != NULL &amp;&amp; i &lt; li-&gt;startShowItem;
++ i++, item = item-&gt;next);
++
++ j = i;
++
++ for (i = 0; item != NULL &amp;&amp; i &lt; li-&gt;curHeight; i++, item = item-&gt;next) {
++ if (!item-&gt;text) continue;
++
++ newtGotorc(co-&gt;top + i + li-&gt;bdyAdjust, co-&gt;left + li-&gt;bdxAdjust);
++ if(j + i == li-&gt;currItem) {
++ if(item-&gt;isSelected)
++ SLsmg_set_color(NEWT_COLORSET_ACTSELLISTBOX);
++ else
++ SLsmg_set_color(NEWT_COLORSET_ACTLISTBOX);
++ } else if(item-&gt;isSelected)
++ SLsmg_set_color(NEWT_COLORSET_SELLISTBOX);
++ else
++ SLsmg_set_color(NEWT_COLORSET_LISTBOX);
++
++ SLsmg_write_nstring(item-&gt;text, li-&gt;curWidth);
++
++ }
++ newtGotorc(co-&gt;top + (li-&gt;currItem - li-&gt;startShowItem), co-&gt;left);
++}
++
++static struct eventResult listboxEvent(newtComponent co, struct event ev) {
++ struct eventResult er;
++ struct listbox * li = co-&gt;data;
++ struct items *item;
++ int i;
++
++ er.result = ER_IGNORED;
++
++ if(ev.when == EV_EARLY || ev.when == EV_LATE) {
++ return er;
++ }
++
++ switch(ev.event) {
++ case EV_KEYPRESS:
++ if (!li-&gt;isActive) break;
++
++ switch(ev.u.key) {
++ case ' ':
++ if(!(li-&gt;flags &amp; NEWT_FLAG_MULTIPLE)) break;
++ newtListboxSelectItem(co, li-&gt;boxItems[li-&gt;currItem].data,
++ NEWT_FLAGS_TOGGLE);
++ er.result = ER_SWALLOWED;
++ /* We don't break here, because it is cool to be able to
++ hold space to select a bunch of items in a list at once */
++
++ case NEWT_KEY_DOWN:
++ if(li-&gt;numItems &lt;= 0) break;
++ if(li-&gt;currItem &lt; li-&gt;numItems - 1) {
++ li-&gt;currItem++;
++ if(li-&gt;currItem &gt; (li-&gt;startShowItem + li-&gt;curHeight - 1)) {
++ li-&gt;startShowItem = li-&gt;currItem - li-&gt;curHeight + 1;
++ if(li-&gt;startShowItem + li-&gt;curHeight &gt; li-&gt;numItems)
++ li-&gt;startShowItem = li-&gt;numItems - li-&gt;curHeight;
++ }
++ if(li-&gt;sb)
++ newtScrollbarSet(li-&gt;sb, li-&gt;currItem + 1, li-&gt;numItems);
++ listboxDraw(co);
++ }
++ if(co-&gt;callback) co-&gt;callback(co, co-&gt;callbackData);
++ er.result = ER_SWALLOWED;
++ break;
++
++ case NEWT_KEY_ENTER:
++ if(li-&gt;numItems &lt;= 0) break;
++ if(li-&gt;flags &amp; NEWT_FLAG_RETURNEXIT)
++ er.result = ER_EXITFORM;
++ break;
++
++ case NEWT_KEY_UP:
++ if(li-&gt;numItems &lt;= 0) break;
++ if(li-&gt;currItem &gt; 0) {
++ li-&gt;currItem--;
++ if(li-&gt;currItem &lt; li-&gt;startShowItem)
++ li-&gt;startShowItem = li-&gt;currItem;
++ if(li-&gt;sb)
++ newtScrollbarSet(li-&gt;sb, li-&gt;currItem + 1, li-&gt;numItems);
++ listboxDraw(co);
++ }
++ if(co-&gt;callback) co-&gt;callback(co, co-&gt;callbackData);
++ er.result = ER_SWALLOWED;
++ break;
++
++ case NEWT_KEY_PGUP:
++ if(li-&gt;numItems &lt;= 0) break;
++ li-&gt;startShowItem -= li-&gt;curHeight - 1;
++ if(li-&gt;startShowItem &lt; 0)
++ li-&gt;startShowItem = 0;
++ li-&gt;currItem -= li-&gt;curHeight - 1;
++ if(li-&gt;currItem &lt; 0)
++ li-&gt;currItem = 0;
++ newtListboxRealSetCurrent(co);
++ er.result = ER_SWALLOWED;
++ break;
++
++ case NEWT_KEY_PGDN:
++ if(li-&gt;numItems &lt;= 0) break;
++ li-&gt;startShowItem += li-&gt;curHeight;
++ if(li-&gt;startShowItem &gt; (li-&gt;numItems - li-&gt;curHeight)) {
++ li-&gt;startShowItem = li-&gt;numItems - li-&gt;curHeight;
++ }
++ li-&gt;currItem += li-&gt;curHeight;
++ if(li-&gt;currItem &gt;= li-&gt;numItems) {
++ li-&gt;currItem = li-&gt;numItems - 1;
++ }
++ newtListboxRealSetCurrent(co);
++ er.result = ER_SWALLOWED;
++ break;
++
++ case NEWT_KEY_HOME:
++ if(li-&gt;numItems &lt;= 0) break;
++ newtListboxSetCurrent(co, 0);
++ er.result = ER_SWALLOWED;
++ break;
++
++ case NEWT_KEY_END:
++ if(li-&gt;numItems &lt;= 0) break;
++ li-&gt;startShowItem = li-&gt;numItems - li-&gt;curHeight;
++ if(li-&gt;startShowItem &lt; 0)
++ li-&gt;startShowItem = 0;
++ li-&gt;currItem = li-&gt;numItems - 1;
++ newtListboxRealSetCurrent(co);
++ er.result = ER_SWALLOWED;
++ break;
++ default:
++ if (li-&gt;numItems &lt;= 0) break;
++ if (ev.u.key &lt; NEWT_KEY_EXTRA_BASE &amp;&amp; isalpha(ev.u.key)) {
++ for(i = 0, item = li-&gt;boxItems; item != NULL &amp;&amp;
++ i &lt; li-&gt;currItem; i++, item = item-&gt;next);
++
++ if (item &amp;&amp; item-&gt;text &amp;&amp; (toupper(*item-&gt;text) == toupper(ev.u.key))) {
++ item = item-&gt;next;
++ i++;
++ } else {
++ item = li-&gt;boxItems;
++ i = 0;
++ }
++ while (item &amp;&amp; item-&gt;text &amp;&amp;
++ toupper(*item-&gt;text) != toupper(ev.u.key)) {
++ item = item-&gt;next;
++ i++;
++ }
++ if (item) {
++ li-&gt;currItem = i;
++ if(li-&gt;currItem &lt; li-&gt;startShowItem ||
++ li-&gt;currItem &gt; li-&gt;startShowItem)
++ li-&gt;startShowItem =
++ li-&gt;currItem &gt; li-&gt;numItems - li-&gt;curHeight ?
++ li-&gt;startShowItem = li-&gt;numItems - li-&gt;curHeight :
++ li-&gt;currItem;
++ if(li-&gt;sb)
++ newtScrollbarSet(li-&gt;sb, li-&gt;currItem + 1, li-&gt;numItems);
++ newtListboxRealSetCurrent(co);
++ er.result = ER_SWALLOWED;
++ }
++ }
++ }
++ break;
++
++ case EV_FOCUS:
++ li-&gt;isActive = 1;
++ listboxDraw(co);
++ er.result = ER_SWALLOWED;
++ break;
++
++ case EV_UNFOCUS:
++ li-&gt;isActive = 0;
++ listboxDraw(co);
++ er.result = ER_SWALLOWED;
++ break;
++
++ case EV_MOUSE:
++ /* if this mouse click was within the listbox, make the current
++ item the item clicked on. */
++ /* Up scroll arrow */
++ if (li-&gt;sb &amp;&amp;
++ ev.u.mouse.x == co-&gt;left + co-&gt;width - li-&gt;bdxAdjust - 1 &amp;&amp;
++ ev.u.mouse.y == co-&gt;top + li-&gt;bdyAdjust) {
++ if(li-&gt;numItems &lt;= 0) break;
++ if(li-&gt;currItem &gt; 0) {
++ li-&gt;currItem--;
++ if(li-&gt;currItem &lt; li-&gt;startShowItem)
++ li-&gt;startShowItem = li-&gt;currItem;
++ if(li-&gt;sb)
++ newtScrollbarSet(li-&gt;sb, li-&gt;currItem + 1, li-&gt;numItems);
++ listboxDraw(co);
++ }
++ if(co-&gt;callback) co-&gt;callback(co, co-&gt;callbackData);
++ er.result = ER_SWALLOWED;
++ break;
++ }
++ /* Down scroll arrow */
++ if (li-&gt;sb &amp;&amp;
++ ev.u.mouse.x == co-&gt;left + co-&gt;width - li-&gt;bdxAdjust - 1 &amp;&amp;
++ ev.u.mouse.y == co-&gt;top + co-&gt;height - li-&gt;bdyAdjust - 1) {
++ if(li-&gt;numItems &lt;= 0) break;
++ if(li-&gt;currItem &lt; li-&gt;numItems - 1) {
++ li-&gt;currItem++;
++ if(li-&gt;currItem &gt; (li-&gt;startShowItem + li-&gt;curHeight - 1)) {
++ li-&gt;startShowItem = li-&gt;currItem - li-&gt;curHeight + 1;
++ if(li-&gt;startShowItem + li-&gt;curHeight &gt; li-&gt;numItems)
++ li-&gt;startShowItem = li-&gt;numItems - li-&gt;curHeight;
++ }
++ if(li-&gt;sb)
++ newtScrollbarSet(li-&gt;sb, li-&gt;currItem + 1, li-&gt;numItems);
++ listboxDraw(co);
++ }
++ if(co-&gt;callback) co-&gt;callback(co, co-&gt;callbackData);
++ er.result = ER_SWALLOWED;
++ break;
++ }
++ if ((ev.u.mouse.y &gt;= co-&gt;top + li-&gt;bdyAdjust) &amp;&amp;
++ (ev.u.mouse.y &lt;= co-&gt;top + co-&gt;height - (li-&gt;bdyAdjust * 2)) &amp;&amp;
++ (ev.u.mouse.x &gt;= co-&gt;left + li-&gt;bdxAdjust) &amp;&amp;
++ (ev.u.mouse.x &lt;= co-&gt;left + co-&gt;width + (li-&gt;bdxAdjust * 2))) {
++ li-&gt;currItem = li-&gt;startShowItem +
++ (ev.u.mouse.y - li-&gt;bdyAdjust - co-&gt;top);
++ newtListboxRealSetCurrent(co);
++ listboxDraw(co);
++ if(co-&gt;callback) co-&gt;callback(co, co-&gt;callbackData);
++ er.result = ER_SWALLOWED;
++ break;
++ }
++ }
++
++ return er;
++}
++
++static void listboxDestroy(newtComponent co) {
++ struct listbox * li = co-&gt;data;
++ struct items * item, * nextitem;
++
++ nextitem = item = li-&gt;boxItems;
++
++ while (item != NULL) {
++ nextitem = item-&gt;next;
++ free(item-&gt;text);
++ free(item);
++ item = nextitem;
++ }
++
++ if (li-&gt;sb) li-&gt;sb-&gt;ops-&gt;destroy(li-&gt;sb);
++
++ free(li);
++ free(co);
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/newt/listbox.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1newtnewtc">Added: drakx/trunk/mdk-stage1/newt/newt.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/newt/newt.c (rev 0)
++++ drakx/trunk/mdk-stage1/newt/newt.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,672 @@
++#include &lt;slang.h&gt;
++#include &lt;stdio.h&gt;
++#include &lt;stdlib.h&gt;
++#include &lt;string.h&gt;
++#include &lt;sys/signal.h&gt;
++#include &lt;sys/time.h&gt;
++#include &lt;sys/types.h&gt;
++#include &lt;termios.h&gt;
++#include &lt;unistd.h&gt;
++
++#include &quot;newt.h&quot;
++#include &quot;newt_pr.h&quot;
++
++struct Window {
++ int height, width, top, left;
++ short * buffer;
++ char * title;
++};
++
++struct keymap {
++ char * str;
++ int code;
++ char * tc;
++};
++
++static struct Window windowStack[20];
++static struct Window * currentWindow = NULL;
++
++static char * helplineStack[20];
++static char ** currentHelpline = NULL;
++
++static int cursorRow, cursorCol;
++static int needResize;
++static int cursorOn = 1;
++
++static const char * defaultHelpLine =
++&quot; &lt;Tab&gt;/&lt;Alt-Tab&gt; between elements | &lt;Space&gt; selects | &lt;F12&gt; next screen&quot;
++;
++
++const struct newtColors newtDefaultColorPalette = {
++ &quot;cyan&quot;, &quot;black&quot;, /* root fg, bg */
++ &quot;black&quot;, &quot;blue&quot;, /* border fg, bg */
++ &quot;white&quot;, &quot;blue&quot;, /* window fg, bg */
++ &quot;white&quot;, &quot;black&quot;, /* shadow fg, bg */
++ &quot;white&quot;, &quot;blue&quot;, /* title fg, bg */
++ &quot;black&quot;, &quot;cyan&quot;, /* button fg, bg */
++ &quot;yellow&quot;, &quot;cyan&quot;, /* active button fg, bg */
++ &quot;yellow&quot;, &quot;blue&quot;, /* checkbox fg, bg */
++ &quot;blue&quot;, &quot;brown&quot;, /* active checkbox fg, bg */
++ &quot;yellow&quot;, &quot;blue&quot;, /* entry box fg, bg */
++ &quot;white&quot;, &quot;blue&quot;, /* label fg, bg */
++ &quot;black&quot;, &quot;cyan&quot;, /* listbox fg, bg */
++ &quot;yellow&quot;, &quot;cyan&quot;, /* active listbox fg, bg */
++ &quot;white&quot;, &quot;blue&quot;, /* textbox fg, bg */
++ &quot;cyan&quot;, &quot;black&quot;, /* active textbox fg, bg */
++ &quot;white&quot;, &quot;blue&quot;, /* help line */
++ &quot;yellow&quot;, &quot;blue&quot;, /* root text */
++ &quot;blue&quot;, /* scale full */
++ &quot;red&quot;, /* scale empty */
++ &quot;blue&quot;, &quot;cyan&quot;, /* disabled entry fg, bg */
++ &quot;white&quot;, &quot;blue&quot;, /* compact button fg, bg */
++ &quot;yellow&quot;, &quot;red&quot;, /* active &amp; sel listbox */
++ &quot;black&quot;, &quot;brown&quot; /* selected listbox */
++};
++
++static const struct keymap keymap[] = {
++ { &quot;\033OA&quot;, NEWT_KEY_UP, &quot;kh&quot; },
++ { &quot;\033[A&quot;, NEWT_KEY_UP, &quot;ku&quot; },
++ { &quot;\033OB&quot;, NEWT_KEY_DOWN, &quot;kd&quot; },
++ { &quot;\033[B&quot;, NEWT_KEY_DOWN, &quot;kd&quot; },
++ { &quot;\033[C&quot;, NEWT_KEY_RIGHT, &quot;kr&quot; },
++ { &quot;\033OC&quot;, NEWT_KEY_RIGHT, &quot;kr&quot; },
++ { &quot;\033[D&quot;, NEWT_KEY_LEFT, &quot;kl&quot; },
++ { &quot;\033OD&quot;, NEWT_KEY_LEFT, &quot;kl&quot; },
++ { &quot;\033[H&quot;, NEWT_KEY_HOME, &quot;kh&quot; },
++ { &quot;\033[1~&quot;, NEWT_KEY_HOME, &quot;kh&quot; },
++ { &quot;\033Ow&quot;, NEWT_KEY_END, &quot;kH&quot; },
++ { &quot;\033[4~&quot;, NEWT_KEY_END, &quot;kH&quot; },
++
++ { &quot;\033[3~&quot;, NEWT_KEY_DELETE, &quot;kl&quot; },
++ { &quot;\033[2~&quot;, NEWT_KEY_INSERT, NULL },
++
++ { &quot;\033\t&quot;, NEWT_KEY_UNTAB, NULL },
++
++ { &quot;\033[5~&quot;, NEWT_KEY_PGUP, NULL },
++ { &quot;\033[6~&quot;, NEWT_KEY_PGDN, NULL },
++ { &quot;\033V&quot;, NEWT_KEY_PGUP, &quot;kH&quot; },
++ { &quot;\033v&quot;, NEWT_KEY_PGUP, &quot;kH&quot; },
++
++ { &quot;\033[[A&quot;, NEWT_KEY_F1, NULL },
++ { &quot;\033[[B&quot;, NEWT_KEY_F2, NULL },
++ { &quot;\033[[C&quot;, NEWT_KEY_F3, NULL },
++ { &quot;\033[[D&quot;, NEWT_KEY_F4, NULL },
++ { &quot;\033[[E&quot;, NEWT_KEY_F5, NULL },
++
++ { &quot;\033OP&quot;, NEWT_KEY_F1, NULL },
++ { &quot;\033OQ&quot;, NEWT_KEY_F2, NULL },
++ { &quot;\033OR&quot;, NEWT_KEY_F3, NULL },
++ { &quot;\033OS&quot;, NEWT_KEY_F4, NULL },
++
++ { &quot;\033[11~&quot;, NEWT_KEY_F1, NULL },
++ { &quot;\033[12~&quot;, NEWT_KEY_F2, NULL },
++ { &quot;\033[13~&quot;, NEWT_KEY_F3, NULL },
++ { &quot;\033[14~&quot;, NEWT_KEY_F4, NULL },
++ { &quot;\033[15~&quot;, NEWT_KEY_F5, NULL },
++ { &quot;\033[17~&quot;, NEWT_KEY_F6, NULL },
++ { &quot;\033[18~&quot;, NEWT_KEY_F7, NULL },
++ { &quot;\033[19~&quot;, NEWT_KEY_F8, NULL },
++ { &quot;\033[20~&quot;, NEWT_KEY_F9, NULL },
++ { &quot;\033[21~&quot;, NEWT_KEY_F10, NULL },
++ { &quot;\033[23~&quot;, NEWT_KEY_F11, NULL },
++ { &quot;\033[24~&quot;, NEWT_KEY_F12, NULL },
++
++ { NULL, 0, NULL }, /* LEAVE this one */
++};
++static char keyPrefix = '\033';
++
++static const char * version = &quot;Newt windowing library version &quot; VERSION
++ &quot; - (C) 1996-2000 Red Hat Software. &quot;
++ &quot;Redistributable under the term of the Library &quot;
++ &quot;GNU Public License. &quot;
++ &quot;Written by Erik Troan\n&quot;;
++
++static newtSuspendCallback suspendCallback = NULL;
++static void * suspendCallbackData = NULL;
++
++void newtSetSuspendCallback(newtSuspendCallback cb, void * data) {
++ suspendCallback = cb;
++ suspendCallbackData = data;
++}
++
++static void handleSigwinch(int signum __attribute__ ((unused))) {
++ needResize = 1;
++}
++
++static int getkeyInterruptHook(void) {
++ return -1;
++}
++
++void newtFlushInput(void) {
++ while (SLang_input_pending(0)) {
++ SLang_getkey();
++ }
++}
++
++void newtRefresh(void) {
++ SLsmg_refresh();
++}
++
++void newtSuspend(void) {
++ SLtt_set_cursor_visibility (1);
++ SLsmg_suspend_smg();
++ SLang_reset_tty();
++ SLtt_set_cursor_visibility (cursorOn);
++}
++
++void newtResume(void) {
++ SLsmg_resume_smg ();
++ SLsmg_refresh();
++ SLang_init_tty(0, 0, 0);
++}
++
++void newtCls(void) {
++ SLsmg_set_color(NEWT_COLORSET_ROOT);
++ SLsmg_gotorc(0, 0);
++ SLsmg_erase_eos();
++
++ newtRefresh();
++}
++
++#if defined(THIS_DOESNT_WORK)
++void newtResizeScreen(int redraw) {
++ newtPushHelpLine(&quot;&quot;);
++
++ SLtt_get_screen_size();
++ SLang_init_tty(0, 0, 0);
++
++ SLsmg_touch_lines (0, SLtt_Screen_Rows - 1);
++
++ /* I don't know why I need this */
++ SLsmg_refresh();
++
++ newtPopHelpLine();
++
++ if (redraw)
++ SLsmg_refresh();
++}
++#endif
++
++int newtInit(void) {
++ char * MonoValue, * MonoEnv = &quot;NEWT_MONO&quot;;
++
++ /* use the version variable just to be sure it gets included */
++ (void) strlen(version);
++
++ SLtt_get_terminfo();
++ SLtt_get_screen_size();
++
++ MonoValue = getenv(MonoEnv);
++ if ( MonoValue == NULL ) {
++ SLtt_Use_Ansi_Colors = 1;
++ } else {
++ SLtt_Use_Ansi_Colors = 0;
++ }
++
++ SLsmg_init_smg();
++ SLang_init_tty(0, 0, 0);
++
++ newtSetColors(newtDefaultColorPalette);
++ newtCursorOff();
++ /*initKeymap();*/
++
++ /*memset(&amp;sa, 0, sizeof(sa));
++ sa.sa_handler = handleSigwinch;
++ sigaction(SIGWINCH, &amp;sa, NULL);*/
++
++ SLsignal_intr(SIGWINCH, handleSigwinch);
++ SLang_getkey_intr_hook = getkeyInterruptHook;
++
++
++
++ return 0;
++}
++
++int newtFinished(void) {
++ SLsmg_gotorc(SLtt_Screen_Rows - 1, 0);
++ newtCursorOn();
++ SLsmg_refresh();
++ SLsmg_reset_smg();
++ SLang_reset_tty();
++
++ return 0;
++}
++
++void newtSetColors(struct newtColors colors) {
++ SLtt_set_color(NEWT_COLORSET_ROOT, &quot;&quot;, colors.rootFg, colors.rootBg);
++ SLtt_set_color(NEWT_COLORSET_BORDER, &quot;&quot;, colors.borderFg, colors.borderBg);
++ SLtt_set_color(NEWT_COLORSET_WINDOW, &quot;&quot;, colors.windowFg, colors.windowBg);
++ SLtt_set_color(NEWT_COLORSET_SHADOW, &quot;&quot;, colors.shadowFg, colors.shadowBg);
++ SLtt_set_color(NEWT_COLORSET_TITLE, &quot;&quot;, colors.titleFg, colors.titleBg);
++ SLtt_set_color(NEWT_COLORSET_BUTTON, &quot;&quot;, colors.buttonFg, colors.buttonBg);
++ SLtt_set_color(NEWT_COLORSET_ACTBUTTON, &quot;&quot;, colors.actButtonFg,
++ colors.actButtonBg);
++ SLtt_set_color(NEWT_COLORSET_CHECKBOX, &quot;&quot;, colors.checkboxFg,
++ colors.checkboxBg);
++ SLtt_set_color(NEWT_COLORSET_ACTCHECKBOX, &quot;&quot;, colors.actCheckboxFg,
++ colors.actCheckboxBg);
++ SLtt_set_color(NEWT_COLORSET_ENTRY, &quot;&quot;, colors.entryFg, colors.entryBg);
++ SLtt_set_color(NEWT_COLORSET_LABEL, &quot;&quot;, colors.labelFg, colors.labelBg);
++ SLtt_set_color(NEWT_COLORSET_LISTBOX, &quot;&quot;, colors.listboxFg,
++ colors.listboxBg);
++ SLtt_set_color(NEWT_COLORSET_ACTLISTBOX, &quot;&quot;, colors.actListboxFg,
++ colors.actListboxBg);
++ SLtt_set_color(NEWT_COLORSET_TEXTBOX, &quot;&quot;, colors.textboxFg,
++ colors.textboxBg);
++ SLtt_set_color(NEWT_COLORSET_ACTTEXTBOX, &quot;&quot;, colors.actTextboxFg,
++ colors.actTextboxBg);
++ SLtt_set_color(NEWT_COLORSET_HELPLINE, &quot;&quot;, colors.helpLineFg,
++ colors.helpLineBg);
++ SLtt_set_color(NEWT_COLORSET_ROOTTEXT, &quot;&quot;, colors.rootTextFg,
++ colors.rootTextBg);
++
++ SLtt_set_color(NEWT_COLORSET_EMPTYSCALE, &quot;&quot;, &quot;black&quot;,
++ colors.emptyScale);
++ SLtt_set_color(NEWT_COLORSET_FULLSCALE, &quot;&quot;, &quot;black&quot;,
++ colors.fullScale);
++ SLtt_set_color(NEWT_COLORSET_DISENTRY, &quot;&quot;, colors.disabledEntryFg,
++ colors.disabledEntryBg);
++
++ SLtt_set_color(NEWT_COLORSET_COMPACTBUTTON, &quot;&quot;, colors.compactButtonFg,
++ colors.compactButtonBg);
++
++ SLtt_set_color(NEWT_COLORSET_ACTSELLISTBOX, &quot;&quot;, colors.actSelListboxFg,
++ colors.actSelListboxBg);
++ SLtt_set_color(NEWT_COLORSET_SELLISTBOX, &quot;&quot;, colors.selListboxFg,
++ colors.selListboxBg);
++}
++
++int newtGetKey(void) {
++ int key;
++ char buf[10], * chptr = buf;
++ const struct keymap * curr;
++
++ do {
++ key = SLang_getkey();
++ if (key == 0xFFFF) {
++ if (needResize)
++ return NEWT_KEY_RESIZE;
++
++ /* ignore other signals */
++ continue;
++ }
++
++ if (key == NEWT_KEY_SUSPEND &amp;&amp; suspendCallback)
++ suspendCallback(suspendCallbackData);
++ } while (key == NEWT_KEY_SUSPEND);
++
++ switch (key) {
++ case 'v' | 0x80:
++ case 'V' | 0x80:
++ return NEWT_KEY_PGUP;
++
++ case 22:
++ return NEWT_KEY_PGDN;
++
++ return NEWT_KEY_BKSPC;
++ case 0x7f:
++ return NEWT_KEY_BKSPC;
++
++ case 0x08:
++ return NEWT_KEY_BKSPC;
++
++ default:
++ if (key != keyPrefix) return key;
++ }
++
++ memset(buf, 0, sizeof(buf));
++
++ *chptr++ = key;
++ while (SLang_input_pending(5)) {
++ key = SLang_getkey();
++ if (key == keyPrefix) {
++ /* he hit unknown keys too many times -- start over */
++ memset(buf, 0, sizeof(buf));
++ chptr = buf;
++ }
++
++ *chptr++ = key;
++
++ /* this search should use bsearch(), but when we only look through
++ a list of 20 (or so) keymappings, it's probably faster just to
++ do a inline linear search */
++
++ for (curr = keymap; curr-&gt;code; curr++) {
++ if (curr-&gt;str) {
++ if (!strcmp(curr-&gt;str, buf))
++ return curr-&gt;code;
++ }
++ }
++ }
++
++ for (curr = keymap; curr-&gt;code; curr++) {
++ if (curr-&gt;str) {
++ if (!strcmp(curr-&gt;str, buf))
++ return curr-&gt;code;
++ }
++ }
++
++ /* Looks like we were a bit overzealous in reading characters. Return
++ just the first character, and put everything else back in the buffer
++ for later */
++
++ chptr--;
++ while (chptr &gt; buf)
++ SLang_ungetkey(*chptr--);
++
++ return *chptr;
++}
++
++void newtWaitForKey(void) {
++ newtRefresh();
++
++ SLang_getkey();
++ newtClearKeyBuffer();
++}
++
++void newtClearKeyBuffer(void) {
++ while (SLang_input_pending(1)) {
++ SLang_getkey();
++ }
++}
++
++int newtOpenWindow(int left, int top, int width, int height,
++ const char * title) {
++ int j, row, col;
++ int n;
++ int i;
++
++ newtFlushInput();
++
++ if (!currentWindow) {
++ currentWindow = windowStack;
++ } else {
++ currentWindow++;
++ }
++
++ currentWindow-&gt;left = left;
++ currentWindow-&gt;top = top;
++ currentWindow-&gt;width = width;
++ currentWindow-&gt;height = height;
++ currentWindow-&gt;title = title ? strdup(title) : NULL;
++
++ currentWindow-&gt;buffer = malloc(sizeof(short) * (width + 3) * (height + 3));
++
++ row = top - 1;
++ col = left - 1;
++ n = 0;
++ for (j = 0; j &lt; height + 3; j++, row++) {
++ SLsmg_gotorc(row, col);
++ SLsmg_read_raw((SLsmg_Char_Type *)currentWindow-&gt;buffer + n,
++ currentWindow-&gt;width + 3);
++ n += currentWindow-&gt;width + 3;
++ }
++
++ SLsmg_set_color(NEWT_COLORSET_BORDER);
++ SLsmg_draw_box(top - 1, left - 1, height + 2, width + 2);
++
++ if (currentWindow-&gt;title) {
++ i = strlen(currentWindow-&gt;title) + 4;
++ i = ((width - i) / 2) + left;
++ SLsmg_gotorc(top - 1, i);
++ SLsmg_set_char_set(1);
++ SLsmg_write_char(SLSMG_RTEE_CHAR);
++ SLsmg_set_char_set(0);
++ SLsmg_write_char(' ');
++ SLsmg_set_color(NEWT_COLORSET_TITLE);
++ SLsmg_write_string((char *)currentWindow-&gt;title);
++ SLsmg_set_color(NEWT_COLORSET_BORDER);
++ SLsmg_write_char(' ');
++ SLsmg_set_char_set(1);
++ SLsmg_write_char(SLSMG_LTEE_CHAR);
++ SLsmg_set_char_set(0);
++ }
++
++ SLsmg_set_color(NEWT_COLORSET_WINDOW);
++ SLsmg_fill_region(top, left, height, width, ' ');
++
++ SLsmg_set_color(NEWT_COLORSET_SHADOW);
++ SLsmg_fill_region(top + height + 1, left, 1, width + 2, ' ');
++ SLsmg_fill_region(top, left + width + 1, height + 1, 1, ' ');
++
++ for (i = top; i &lt; (top + height + 1); i++) {
++ SLsmg_gotorc(i, left + width + 1);
++ SLsmg_write_string(&quot; &quot;);
++ }
++
++ return 0;
++}
++
++int newtCenteredWindow(int width, int height, const char * title) {
++ int top, left;
++
++ top = (SLtt_Screen_Rows - height) / 2;
++
++ /* I don't know why, but this seems to look better */
++ if ((SLtt_Screen_Rows % 2) &amp;&amp; (top % 2)) top--;
++
++ left = (SLtt_Screen_Cols - width) / 2;
++
++ newtOpenWindow(left, top, width, height, title);
++
++ return 0;
++}
++
++void newtPopWindow(void) {
++ int j, row, col;
++ int n = 0;
++
++ row = col = 0;
++
++ row = currentWindow-&gt;top - 1;
++ col = currentWindow-&gt;left - 1;
++ for (j = 0; j &lt; currentWindow-&gt;height + 3; j++, row++) {
++ SLsmg_gotorc(row, col);
++ SLsmg_write_raw((SLsmg_Char_Type *)currentWindow-&gt;buffer + n,
++ currentWindow-&gt;width + 3);
++ n += currentWindow-&gt;width + 3;
++ }
++
++ free(currentWindow-&gt;buffer);
++ free(currentWindow-&gt;title);
++
++ if (currentWindow == windowStack)
++ currentWindow = NULL;
++ else
++ currentWindow--;
++
++ SLsmg_set_char_set(0);
++
++ newtRefresh();
++}
++
++void newtGetWindowPos(int * x, int * y) {
++ if (currentWindow) {
++ *x = currentWindow-&gt;left;
++ *y = currentWindow-&gt;top;
++ } else
++ *x = *y = 0;
++}
++
++void newtGetrc(int * row, int * col) {
++ *row = cursorRow;
++ *col = cursorCol;
++}
++
++void newtGotorc(int newRow, int newCol) {
++ if (currentWindow) {
++ newRow += currentWindow-&gt;top;
++ newCol += currentWindow-&gt;left;
++ }
++
++ cursorRow = newRow;
++ cursorCol = newCol;
++ SLsmg_gotorc(cursorRow, cursorCol);
++}
++
++void newtDrawBox(int left, int top, int width, int height, int shadow) {
++ if (currentWindow) {
++ top += currentWindow-&gt;top;
++ left += currentWindow-&gt;left;
++ }
++
++ SLsmg_draw_box(top, left, height, width);
++
++ if (shadow) {
++ SLsmg_set_color(NEWT_COLORSET_SHADOW);
++ SLsmg_fill_region(top + height, left + 1, 1, width - 1, ' ');
++ SLsmg_fill_region(top + 1, left + width, height, 1, ' ');
++ }
++}
++
++void newtClearBox(int left, int top, int width, int height) {
++ if (currentWindow) {
++ top += currentWindow-&gt;top;
++ left += currentWindow-&gt;left;
++ }
++
++ SLsmg_fill_region(top, left, height, width, ' ');
++}
++
++#if 0
++/* This doesn't seem to work quite right. I don't know why not, but when
++ I rsh from an rxvt into a box and run this code, the machine returns
++ console key's (\033[B) rather then xterm ones (\033OB). */
++static void initKeymap(void) {
++ struct keymap * curr;
++
++ for (curr = keymap; curr-&gt;code; curr++) {
++ if (!curr-&gt;str)
++ curr-&gt;str = SLtt_tgetstr(curr-&gt;tc);
++ }
++
++ /* Newt's keymap handling is a bit broken. It assumes that any extended
++ keystrokes begin with ESC. If you're using a homebrek terminal you
++ will probably need to fix this, or just yell at me and I'll be so
++ ashamed of myself for doing it this way I'll fix it */
++
++ keyPrefix = 0x1b; /* ESC */
++}
++#endif
++
++void newtDelay(int usecs) {
++ fd_set set;
++ struct timeval tv;
++
++ FD_ZERO(&amp;set);
++
++ tv.tv_sec = usecs / 1000000;
++ tv.tv_usec = usecs % 1000000;
++
++ select(0, &amp;set, &amp;set, &amp;set, &amp;tv);
++}
++
++struct eventResult newtDefaultEventHandler(newtComponent c __attribute__ ((unused)),
++ struct event ev __attribute__ ((unused))) {
++ struct eventResult er;
++
++ er.result = ER_IGNORED;
++ return er;
++}
++
++void newtRedrawHelpLine(void) {
++ char * buf;
++
++ SLsmg_set_color(NEWT_COLORSET_HELPLINE);
++
++ buf = alloca(SLtt_Screen_Cols + 1);
++ memset(buf, ' ', SLtt_Screen_Cols);
++ buf[SLtt_Screen_Cols] = '\0';
++
++ if (currentHelpline)
++ memcpy(buf, *currentHelpline, strlen(*currentHelpline));
++
++ SLsmg_gotorc(SLtt_Screen_Rows - 1, 0);
++ SLsmg_write_string(buf);
++}
++
++void newtPushHelpLine(const char * text) {
++ if (!text)
++ text = defaultHelpLine;
++
++ if (currentHelpline)
++ (*(++currentHelpline)) = strdup(text);
++ else {
++ currentHelpline = helplineStack;
++ *currentHelpline = strdup(text);
++ }
++
++ newtRedrawHelpLine();
++}
++
++void newtPopHelpLine(void) {
++ if (!currentHelpline) return;
++
++ free(*currentHelpline);
++ if (currentHelpline == helplineStack)
++ currentHelpline = NULL;
++ else
++ currentHelpline--;
++
++ newtRedrawHelpLine();
++}
++
++void newtDrawRootText(int col, int row, const char * text) {
++ SLsmg_set_color(NEWT_COLORSET_ROOTTEXT);
++
++ if (col &lt; 0) {
++ col = SLtt_Screen_Cols + col;
++ }
++
++ if (row &lt; 0) {
++ row = SLtt_Screen_Rows + row;
++ }
++
++ SLsmg_gotorc(row, col);
++ SLsmg_write_string((char *)text);
++}
++
++int newtSetFlags(int oldFlags, int newFlags, enum newtFlagsSense sense) {
++ switch (sense) {
++ case NEWT_FLAGS_SET:
++ return oldFlags | newFlags;
++
++ case NEWT_FLAGS_RESET:
++ return oldFlags &amp; (~newFlags);
++
++ case NEWT_FLAGS_TOGGLE:
++ return oldFlags ^ newFlags;
++
++ default:
++ return oldFlags;
++ }
++}
++
++void newtBell(void)
++{
++ SLtt_beep();
++}
++
++void newtGetScreenSize(int * cols, int * rows) {
++ if (rows) *rows = SLtt_Screen_Rows;
++ if (cols) *cols = SLtt_Screen_Cols;
++}
++
++void newtDefaultPlaceHandler(newtComponent c, int newLeft, int newTop) {
++ c-&gt;left = newLeft;
++ c-&gt;top = newTop;
++}
++
++void newtDefaultMappedHandler(newtComponent c, int isMapped) {
++ c-&gt;isMapped = isMapped;
++}
++
++void newtCursorOff(void) {
++ cursorOn = 0;
++ SLtt_set_cursor_visibility (cursorOn);
++}
++
++void newtCursorOn(void) {
++ cursorOn = 1;
++ SLtt_set_cursor_visibility (cursorOn);
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/newt/newt.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1newtnewth">Added: drakx/trunk/mdk-stage1/newt/newt.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/newt/newt.h (rev 0)
++++ drakx/trunk/mdk-stage1/newt/newt.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,362 @@
++#ifndef H_NEWT
++#define H_NEWT
++
++#ifdef __cplusplus
++extern &quot;C&quot; {
++#endif
++
++#include &lt;stdarg.h&gt;
++
++#define NEWT_COLORSET_ROOT 2
++#define NEWT_COLORSET_BORDER 3
++#define NEWT_COLORSET_WINDOW 4
++#define NEWT_COLORSET_SHADOW 5
++#define NEWT_COLORSET_TITLE 6
++#define NEWT_COLORSET_BUTTON 7
++#define NEWT_COLORSET_ACTBUTTON 8
++#define NEWT_COLORSET_CHECKBOX 9
++#define NEWT_COLORSET_ACTCHECKBOX 10
++#define NEWT_COLORSET_ENTRY 11
++#define NEWT_COLORSET_LABEL 12
++#define NEWT_COLORSET_LISTBOX 13
++#define NEWT_COLORSET_ACTLISTBOX 14
++#define NEWT_COLORSET_TEXTBOX 15
++#define NEWT_COLORSET_ACTTEXTBOX 16
++#define NEWT_COLORSET_HELPLINE 17
++#define NEWT_COLORSET_ROOTTEXT 18
++#define NEWT_COLORSET_EMPTYSCALE 19
++#define NEWT_COLORSET_FULLSCALE 20
++#define NEWT_COLORSET_DISENTRY 21
++#define NEWT_COLORSET_COMPACTBUTTON 22
++#define NEWT_COLORSET_ACTSELLISTBOX 23
++#define NEWT_COLORSET_SELLISTBOX 24
++
++#define NEWT_ARG_LAST -100000
++#define NEWT_ARG_APPEND -1
++
++struct newtColors {
++ char * rootFg, * rootBg;
++ char * borderFg, * borderBg;
++ char * windowFg, * windowBg;
++ char * shadowFg, * shadowBg;
++ char * titleFg, * titleBg;
++ char * buttonFg, * buttonBg;
++ char * actButtonFg, * actButtonBg;
++ char * checkboxFg, * checkboxBg;
++ char * actCheckboxFg, * actCheckboxBg;
++ char * entryFg, * entryBg;
++ char * labelFg, * labelBg;
++ char * listboxFg, * listboxBg;
++ char * actListboxFg, * actListboxBg;
++ char * textboxFg, * textboxBg;
++ char * actTextboxFg, * actTextboxBg;
++ char * helpLineFg, * helpLineBg;
++ char * rootTextFg, * rootTextBg;
++ char * emptyScale, * fullScale;
++ char * disabledEntryFg, * disabledEntryBg;
++ char * compactButtonFg, * compactButtonBg;
++ char * actSelListboxFg, * actSelListboxBg;
++ char * selListboxFg, * selListboxBg;
++};
++
++enum newtFlagsSense { NEWT_FLAGS_SET, NEWT_FLAGS_RESET, NEWT_FLAGS_TOGGLE };
++
++#define NEWT_FLAG_RETURNEXIT (1 &lt;&lt; 0)
++#define NEWT_FLAG_HIDDEN (1 &lt;&lt; 1)
++#define NEWT_FLAG_SCROLL (1 &lt;&lt; 2)
++#define NEWT_FLAG_DISABLED (1 &lt;&lt; 3)
++/* OBSOLETE #define NEWT_FLAG_NOSCROLL (1 &lt;&lt; 4) for listboxes */
++#define NEWT_FLAG_BORDER (1 &lt;&lt; 5)
++#define NEWT_FLAG_WRAP (1 &lt;&lt; 6)
++#define NEWT_FLAG_NOF12 (1 &lt;&lt; 7)
++#define NEWT_FLAG_MULTIPLE (1 &lt;&lt; 8)
++#define NEWT_FLAG_SELECTED (1 &lt;&lt; 9)
++#define NEWT_FLAG_CHECKBOX (1 &lt;&lt; 10)
++#define NEWT_FLAG_PASSWORD (1 &lt;&lt; 11) /* draw '*' of chars in entrybox */
++#define NEWT_FD_READ (1 &lt;&lt; 0)
++#define NEWT_FD_WRITE (1 &lt;&lt; 1)
++
++#define NEWT_CHECKBOXTREE_COLLAPSED '\0'
++#define NEWT_CHECKBOXTREE_EXPANDED '\1'
++#define NEWT_CHECKBOXTREE_UNSELECTED ' '
++#define NEWT_CHECKBOXTREE_SELECTED '*'
++
++/* Backwards compatibility */
++#define NEWT_LISTBOX_RETURNEXIT NEWT_FLAG_RETURNEXIT
++#define NEWT_ENTRY_SCROLL NEWT_FLAG_SCROLL
++#define NEWT_ENTRY_HIDDEN NEWT_FLAG_HIDDEN
++#define NEWT_ENTRY_RETURNEXIT NEWT_FLAG_RETURNEXIT
++#define NEWT_ENTRY_DISABLED NEWT_FLAG_DISABLED
++
++#define NEWT_TEXTBOX_WRAP NEWT_FLAG_WRAP
++#define NEWT_TEXTBOX_SCROLL NEWT_FLAG_SCROLL
++#define NEWT_FORM_NOF12 NEWT_FLAG_NOF12
++
++#define newtListboxAddEntry newtListboxAppendEntry
++
++
++typedef struct newtComponent_struct * newtComponent;
++
++extern const struct newtColors newtDefaultColorPalette;
++
++typedef void (*newtCallback)(newtComponent, void *);
++typedef void (*newtSuspendCallback)(void * data);
++
++int newtInit(void);
++int newtFinished(void);
++void newtCls(void);
++void newtResizeScreen(int redraw);
++void newtWaitForKey(void);
++void newtClearKeyBuffer(void);
++void newtDelay(int usecs);
++/* top, left are *not* counting the border */
++int newtOpenWindow(int left, int top, int width, int height,
++ const char * title);
++int newtCenteredWindow(int width, int height, const char * title);
++void newtPopWindow(void);
++void newtSetColors(struct newtColors colors);
++void newtRefresh(void);
++void newtSuspend(void);
++void newtSetSuspendCallback(newtSuspendCallback cb, void * data);
++void newtSetHelpCallback(newtCallback cb);
++void newtResume(void);
++void newtPushHelpLine(const char * text);
++void newtRedrawHelpLine(void);
++void newtPopHelpLine(void);
++void newtDrawRootText(int col, int row, const char * text);
++void newtBell(void);
++void newtCursorOff(void);
++void newtCursorOn(void);
++
++/* Components */
++
++newtComponent newtCompactButton(int left, int top, const char * text);
++newtComponent newtButton(int left, int top, const char * text);
++newtComponent newtCheckbox(int left, int top, const char * text, char defValue,
++ const char * seq, char * result);
++char newtCheckboxGetValue(newtComponent co);
++void newtCheckboxSetValue(newtComponent co, char value);
++void newtCheckboxSetFlags(newtComponent co, int flags, enum newtFlagsSense sense);
++
++
++newtComponent newtRadiobutton(int left, int top, const char * text, int isDefault,
++ newtComponent prevButton);
++newtComponent newtRadioGetCurrent(newtComponent setMember);
++newtComponent newtListitem(int left, int top, const char * text, int isDefault,
++ newtComponent prevItem, const void * data, int flags);
++void newtListitemSet(newtComponent co, const char * text);
++void * newtListitemGetData(newtComponent co);
++void newtGetScreenSize(int * cols, int * rows);
++
++newtComponent newtLabel(int left, int top, const char * text);
++void newtLabelSetText(newtComponent co, const char * text);
++newtComponent newtVerticalScrollbar(int left, int top, int height,
++ int normalColorset, int thumbColorset);
++void newtScrollbarSet(newtComponent co, int where, int total);
++
++newtComponent newtListbox(int left, int top, int height, int flags);
++void * newtListboxGetCurrent(newtComponent co);
++void newtListboxSetCurrent(newtComponent co, int num);
++void newtListboxSetCurrentByKey(newtComponent co, void * key);
++void newtListboxSetEntry(newtComponent co, int num, const char * text);
++void newtListboxSetWidth(newtComponent co, int width);
++void newtListboxSetData(newtComponent co, int num, void * data);
++int newtListboxAppendEntry(newtComponent co, const char * text,
++ const void * data);
++/* Send the key to insert after, or NULL to insert at the top */
++int newtListboxInsertEntry(newtComponent co, const char * text, const void * data, void * key);
++int newtListboxDeleteEntry(newtComponent co, void * data);
++void newtListboxClear(newtComponent co); /* removes all entries from listbox */
++void newtListboxGetEntry(newtComponent co, int num, char **text, void **data);
++/* Returns an array of data pointers from items, last element is NULL */
++void **newtListboxGetSelection(newtComponent co, int *numitems);
++void newtListboxClearSelection(newtComponent co);
++void newtListboxSelectItem(newtComponent co, const void * key,
++ enum newtFlagsSense sense);
++
++newtComponent newtCheckboxTree(int left, int top, int height, int flags);
++newtComponent newtCheckboxTreeMulti(int left, int top, int height, char *seq, int flags);
++const void ** newtCheckboxTreeGetSelection(newtComponent co, int *numitems);
++const void * newtCheckboxTreeGetCurrent(newtComponent co);
++const void ** newtCheckboxTreeGetMultiSelection(newtComponent co, int *numitems, char seqnum);
++/* last item is NEWT_ARG_LAST for all of these */
++int newtCheckboxTreeAddItem(newtComponent co,
++ const char * text, const void * data,
++ int flags, int index, ...);
++int newtCheckboxTreeAddArray(newtComponent co,
++ const char * text, const void * data,
++ int flags, int * indexes);
++int * newtCheckboxTreeFindItem(newtComponent co, void * data);
++void newtCheckboxTreeSetEntry(newtComponent co, const void * data,
++ const char * text);
++char newtCheckboxTreeGetEntryValue(newtComponent co, const void * data);
++void newtCheckboxTreeSetEntryValue(newtComponent co, const void * data,
++ char value);
++
++newtComponent newtTextboxReflowed(int left, int top, char * text, int width,
++ int flexDown, int flexUp, int flags);
++newtComponent newtTextbox(int left, int top, int width, int height, int flags);
++void newtTextboxSetText(newtComponent co, const char * text);
++void newtTextboxSetHeight(newtComponent co, int height);
++int newtTextboxGetNumLines(newtComponent co);
++char * newtReflowText(char * text, int width, int flexDown, int flexUp,
++ int * actualWidth, int * actualHeight);
++
++struct newtExitStruct {
++ enum { NEWT_EXIT_HOTKEY, NEWT_EXIT_COMPONENT, NEWT_EXIT_FDREADY,
++ NEWT_EXIT_TIMER } reason;
++ union {
++ int key;
++ newtComponent co;
++ } u;
++} ;
++
++newtComponent newtForm(newtComponent vertBar, void * helpTag, int flags);
++void newtFormSetTimer(newtComponent form, int millisecs);
++void newtFormWatchFd(newtComponent form, int fd, int fdFlags);
++void newtFormSetSize(newtComponent co);
++newtComponent newtFormGetCurrent(newtComponent co);
++void newtFormSetBackground(newtComponent co, int color);
++void newtFormSetCurrent(newtComponent co, newtComponent subco);
++void newtFormAddComponent(newtComponent form, newtComponent co);
++void newtFormAddComponents(newtComponent form, ...);
++void newtFormSetHeight(newtComponent co, int height);
++void newtFormSetWidth(newtComponent co, int width);
++newtComponent newtRunForm(newtComponent form); /* obsolete */
++void newtFormRun(newtComponent co, struct newtExitStruct * es);
++void newtDrawForm(newtComponent form);
++void newtFormAddHotKey(newtComponent co, int key);
++
++typedef int (*newtEntryFilter)(newtComponent entry, void * data, int ch,
++ int cursor);
++newtComponent newtEntry(int left, int top, const char * initialValue, int width,
++ char ** resultPtr, int flags);
++void newtEntrySet(newtComponent co, const char * value, int cursorAtEnd);
++void newtEntrySetFilter(newtComponent co, newtEntryFilter filter, void * data);
++char * newtEntryGetValue(newtComponent co);
++void newtEntrySetFlags(newtComponent co, int flags, enum newtFlagsSense sense);
++
++newtComponent newtScale(int left, int top, int width, int fullValue);
++void newtScaleSet(newtComponent co, unsigned int amount);
++
++void newtComponentAddCallback(newtComponent co, newtCallback f, void * data);
++void newtComponentTakesFocus(newtComponent co, int val);
++
++/* this also destroys all of the components (including other forms) on the
++ form */
++void newtFormDestroy(newtComponent form);
++
++/* Key codes */
++
++#define NEWT_KEY_TAB '\t'
++#define NEWT_KEY_ENTER '\r'
++#define NEWT_KEY_SUSPEND '\032' /* ctrl - z*/
++#define NEWT_KEY_RETURN NEWT_KEY_ENTER
++
++#define NEWT_KEY_EXTRA_BASE 0x8000
++#define NEWT_KEY_UP NEWT_KEY_EXTRA_BASE + 1
++#define NEWT_KEY_DOWN NEWT_KEY_EXTRA_BASE + 2
++#define NEWT_KEY_LEFT NEWT_KEY_EXTRA_BASE + 4
++#define NEWT_KEY_RIGHT NEWT_KEY_EXTRA_BASE + 5
++#define NEWT_KEY_BKSPC NEWT_KEY_EXTRA_BASE + 6
++#define NEWT_KEY_DELETE NEWT_KEY_EXTRA_BASE + 7
++#define NEWT_KEY_HOME NEWT_KEY_EXTRA_BASE + 8
++#define NEWT_KEY_END NEWT_KEY_EXTRA_BASE + 9
++#define NEWT_KEY_UNTAB NEWT_KEY_EXTRA_BASE + 10
++#define NEWT_KEY_PGUP NEWT_KEY_EXTRA_BASE + 11
++#define NEWT_KEY_PGDN NEWT_KEY_EXTRA_BASE + 12
++#define NEWT_KEY_INSERT NEWT_KEY_EXTRA_BASE + 13
++
++#define NEWT_KEY_F1 NEWT_KEY_EXTRA_BASE + 101
++#define NEWT_KEY_F2 NEWT_KEY_EXTRA_BASE + 102
++#define NEWT_KEY_F3 NEWT_KEY_EXTRA_BASE + 103
++#define NEWT_KEY_F4 NEWT_KEY_EXTRA_BASE + 104
++#define NEWT_KEY_F5 NEWT_KEY_EXTRA_BASE + 105
++#define NEWT_KEY_F6 NEWT_KEY_EXTRA_BASE + 106
++#define NEWT_KEY_F7 NEWT_KEY_EXTRA_BASE + 107
++#define NEWT_KEY_F8 NEWT_KEY_EXTRA_BASE + 108
++#define NEWT_KEY_F9 NEWT_KEY_EXTRA_BASE + 109
++#define NEWT_KEY_F10 NEWT_KEY_EXTRA_BASE + 110
++#define NEWT_KEY_F11 NEWT_KEY_EXTRA_BASE + 111
++#define NEWT_KEY_F12 NEWT_KEY_EXTRA_BASE + 112
++
++/* not really a key, but newtGetKey returns it */
++#define NEWT_KEY_RESIZE NEWT_KEY_EXTRA_BASE + 113
++
++#define NEWT_ANCHOR_LEFT (1 &lt;&lt; 0)
++#define NEWT_ANCHOR_RIGHT (1 &lt;&lt; 1)
++#define NEWT_ANCHOR_TOP (1 &lt;&lt; 2)
++#define NEWT_ANCHOR_BOTTOM (1 &lt;&lt; 3)
++
++#define NEWT_GRID_FLAG_GROWX (1 &lt;&lt; 0)
++#define NEWT_GRID_FLAG_GROWY (1 &lt;&lt; 1)
++
++typedef struct grid_s * newtGrid;
++enum newtGridElement { NEWT_GRID_EMPTY = 0,
++ NEWT_GRID_COMPONENT, NEWT_GRID_SUBGRID };
++
++newtGrid newtCreateGrid(int cols, int rows);
++/* TYPE, what, TYPE, what, ..., NULL */
++newtGrid newtGridVStacked(enum newtGridElement type, void * what, ...);
++newtGrid newtGridVCloseStacked(enum newtGridElement type, void * what, ...);
++newtGrid newtGridHStacked(enum newtGridElement type1, void * what1, ...);
++newtGrid newtGridHCloseStacked(enum newtGridElement type1, void * what1, ...);
++newtGrid newtGridBasicWindow(newtComponent text, newtGrid middle,
++ newtGrid buttons);
++newtGrid newtGridSimpleWindow(newtComponent text, newtComponent middle,
++ newtGrid buttons);
++void newtGridSetField(newtGrid grid, int col, int row,
++ enum newtGridElement type, void * val, int padLeft,
++ int padTop, int padRight, int padBottom, int anchor,
++ int flags);
++void newtGridPlace(newtGrid grid, int left, int top);
++#define newtGridDestroy newtGridFree
++void newtGridFree(newtGrid grid, int recurse);
++void newtGridGetSize(newtGrid grid, int * width, int * height);
++void newtGridWrappedWindow(newtGrid grid, char * title);
++void newtGridWrappedWindowAt(newtGrid grid, char * title, int left, int top);
++void newtGridAddComponentsToForm(newtGrid grid, newtComponent form,
++ int recurse);
++
++/* convienve */
++newtGrid newtButtonBarv(char * button1, newtComponent * b1comp, va_list args);
++newtGrid newtButtonBar(char * button1, newtComponent * b1comp, ...);
++
++/* automatically centered and shrink wrapped */
++void newtWinMessage(char * title, char * buttonText, char * text, ...);
++void newtWinMessagev(char * title, char * buttonText, char * text,
++ va_list argv);
++
++/* having separate calls for these two seems silly, but having two separate
++ variable length-arg lists seems like a bad idea as well */
++
++/* Returns 0 if F12 was pressed, 1 for button1, 2 for button2 */
++int newtWinChoice(char * title, char * button1, char * button2,
++ char * text, ...);
++/* Returns 0 if F12 was pressed, 1 for button1, 2 for button2,
++ 3 for button3 */
++int newtWinTernary(char * title, char * button1, char * button2,
++ char * button3, char * message, ...);
++
++/* Returns the button number pressed, 0 on F12 */
++int newtWinMenu(char * title, char * text, int suggestedWidth, int flexDown,
++ int flexUp, int maxListHeight, char ** items, int * listItem,
++ char * button1, ...);
++
++struct newtWinEntry {
++ char * text;
++ char ** value; /* may be initialized to set default */
++ int flags;
++};
++
++/* Returns the button number pressed, 0 on F12. The final values are
++ dynamically allocated, and need to be freed. */
++int newtWinEntries(char * title, char * text, int suggestedWidth, int flexDown,
++ int flexUp, int dataWidth,
++ struct newtWinEntry * items, char * button1, ...);
++
++#ifdef __cplusplus
++} /* End of extern &quot;C&quot; { */
++#endif
++
++#endif /* H_NEWT */
+
+
+Property changes on: drakx/trunk/mdk-stage1/newt/newt.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1newtnewt_prh">Added: drakx/trunk/mdk-stage1/newt/newt_pr.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/newt/newt_pr.h (rev 0)
++++ drakx/trunk/mdk-stage1/newt/newt_pr.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,82 @@
++#ifndef H_NEWT_PR
++#define H_NEWT_PR
++
++#define COLORSET_ROOT NEWT_COLORSET_ROOT
++#define COLORSET_BORDER NEWT_COLORSET_BORDER
++#define COLORSET_WINDOW NEWT_COLORSET_WINDOW
++#define COLORSET_SHADOW NEWT_COLORSET_SHADOW
++#define COLORSET_TITLE NEWT_COLORSET_TITLE
++#define COLORSET_BUTTON NEWT_COLORSET_BUTTON
++#define COLORSET_ACTBUTTON NEWT_COLORSET_ACTBUTTON
++#define COLORSET_CHECKBOX NEWT_COLORSET_CHECKBOX
++#define COLORSET_ACTCHECKBOX NEWT_COLORSET_ACTCHECKBOX
++#define COLORSET_ENTRY NEWT_COLORSET_ENTRY
++#define COLORSET_LABEL NEWT_COLORSET_LABEL
++#define COLORSET_LISTBOX NEWT_COLORSET_LISTBOX
++#define COLORSET_ACTLISTBOX NEWT_COLORSET_ACTLISTBOX
++#define COLORSET_TEXTBOX NEWT_COLORSET_TEXTBOX
++#define COLORSET_ACTTEXTBOX NEWT_COLORSET_ACTTEXTBOX
++
++int newtSetFlags(int oldFlags, int newFlags, enum newtFlagsSense sense);
++
++void newtGotorc(int row, int col);
++void newtGetrc(int * row, int * col);
++void newtGetWindowPos(int * x, int * y);
++void newtDrawBox(int left, int top, int width, int height, int shadow);
++void newtClearBox(int left, int top, int width, int height);
++
++int newtGetKey(void);
++
++struct newtComponent_struct {
++ /* common data */
++ int height, width;
++ int top, left;
++ int takesFocus;
++ int isMapped;
++
++ struct componentOps * ops;
++
++ newtCallback callback;
++ void * callbackData;
++
++ void * data;
++} ;
++
++enum eventResultTypes { ER_IGNORED, ER_SWALLOWED, ER_EXITFORM, ER_SETFOCUS,
++ ER_NEXTCOMP };
++struct eventResult {
++ enum eventResultTypes result;
++ union {
++ newtComponent focus;
++ } u;
++};
++
++enum eventTypes { EV_FOCUS, EV_UNFOCUS, EV_KEYPRESS, EV_MOUSE };
++enum eventSequence { EV_EARLY, EV_NORMAL, EV_LATE };
++
++struct event {
++ enum eventTypes event;
++ enum eventSequence when;
++ union {
++ int key;
++ struct {
++ enum { MOUSE_MOTION, MOUSE_BUTTON_DOWN, MOUSE_BUTTON_UP } type;
++ int x, y;
++ } mouse;
++ } u;
++} ;
++
++struct componentOps {
++ void (* draw)(newtComponent c);
++ struct eventResult (* event)(newtComponent c, struct event ev);
++ void (* destroy)(newtComponent c);
++ void (* place)(newtComponent c, int newLeft, int newTop);
++ void (* mapped)(newtComponent c, int isMapped);
++} ;
++
++void newtDefaultPlaceHandler(newtComponent c, int newLeft, int newTop);
++void newtDefaultMappedHandler(newtComponent c, int isMapped);
++struct eventResult newtDefaultEventHandler(newtComponent c,
++ struct event ev);
++
++#endif /* H_NEWT_PR */
+
+
+Property changes on: drakx/trunk/mdk-stage1/newt/newt_pr.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1newtscalec">Added: drakx/trunk/mdk-stage1/newt/scale.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/newt/scale.c (rev 0)
++++ drakx/trunk/mdk-stage1/newt/scale.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,72 @@
++#include &lt;slang.h&gt;
++#include &lt;stdlib.h&gt;
++#include &lt;string.h&gt;
++
++#include &quot;newt.h&quot;
++#include &quot;newt_pr.h&quot;
++
++struct scale {
++ int fullValue;
++ int charsSet;
++};
++
++static void scaleDraw(newtComponent co);
++
++static struct componentOps scaleOps = {
++ scaleDraw,
++ newtDefaultEventHandler,
++ NULL,
++ newtDefaultPlaceHandler,
++ newtDefaultMappedHandler,
++} ;
++
++newtComponent newtScale(int left, int top, int width, int fullValue) {
++ newtComponent co;
++ struct scale * sc;
++
++ co = malloc(sizeof(*co));
++ sc = malloc(sizeof(struct scale));
++ co-&gt;data = sc;
++
++ co-&gt;ops = &amp;scaleOps;
++
++ co-&gt;height = 1;
++ co-&gt;width = width;
++ co-&gt;top = top;
++ co-&gt;left = left;
++ co-&gt;takesFocus = 0;
++
++ sc-&gt;fullValue = fullValue;
++ sc-&gt;charsSet = 0;
++
++ return co;
++}
++
++void newtScaleSet(newtComponent co, unsigned int amount) {
++ struct scale * sc = co-&gt;data;
++ int newCharsSet;
++
++ newCharsSet = (amount * co-&gt;width) / sc-&gt;fullValue;
++
++ if (newCharsSet != sc-&gt;charsSet) {
++ sc-&gt;charsSet = newCharsSet;
++ scaleDraw(co);
++ }
++}
++
++static void scaleDraw(newtComponent co) {
++ struct scale * sc = co-&gt;data;
++ int i;
++
++ if (co-&gt;top == -1) return;
++
++ newtGotorc(co-&gt;top, co-&gt;left);
++
++ SLsmg_set_color(NEWT_COLORSET_FULLSCALE);
++ for (i = 0; i &lt; sc-&gt;charsSet; i++)
++ SLsmg_write_string(&quot; &quot;);
++
++ SLsmg_set_color(NEWT_COLORSET_EMPTYSCALE);
++ for (i = 0; i &lt; (co-&gt;width - sc-&gt;charsSet); i++)
++ SLsmg_write_string(&quot; &quot;);
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/newt/scale.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1newtscrollbarc">Added: drakx/trunk/mdk-stage1/newt/scrollbar.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/newt/scrollbar.c (rev 0)
++++ drakx/trunk/mdk-stage1/newt/scrollbar.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,124 @@
++#include &lt;slang.h&gt;
++#include &lt;stdlib.h&gt;
++#include &lt;string.h&gt;
++
++#include &quot;newt.h&quot;
++#include &quot;newt_pr.h&quot;
++
++struct scrollbar {
++ int curr;
++ int cs, csThumb;
++ int arrows;
++} ;
++
++static void sbDraw(newtComponent co);
++static void sbDestroy(newtComponent co);
++static void sbDrawThumb(newtComponent co, int isOn);
++
++static struct componentOps sbOps = {
++ sbDraw,
++ newtDefaultEventHandler,
++ sbDestroy,
++ newtDefaultPlaceHandler,
++ newtDefaultMappedHandler,
++} ;
++
++void newtScrollbarSet(newtComponent co, int where, int total) {
++ struct scrollbar * sb = co-&gt;data;
++ int new;
++
++ if (sb-&gt;arrows)
++ new = (where * (co-&gt;height - 3)) / (total ? total : 1) + 1;
++ else
++ new = (where * (co-&gt;height - 1)) / (total ? total : 1);
++ if (new != sb-&gt;curr) {
++ sbDrawThumb(co, 0);
++ sb-&gt;curr = new;
++ sbDrawThumb(co, 1);
++ }
++}
++
++newtComponent newtVerticalScrollbar(int left, int top, int height,
++ int normalColorset, int thumbColorset) {
++ newtComponent co;
++ struct scrollbar * sb;
++
++ co = malloc(sizeof(*co));
++ sb = malloc(sizeof(*sb));
++ co-&gt;data = sb;
++
++ if (!strcmp(getenv(&quot;TERM&quot;), &quot;linux&quot;) &amp;&amp; height &gt;= 2) {
++ sb-&gt;arrows = 1;
++ sb-&gt;curr = 1;
++ } else {
++ sb-&gt;arrows = 0;
++ sb-&gt;curr = 0;
++ }
++ sb-&gt;cs = normalColorset;
++ sb-&gt;csThumb = thumbColorset;
++
++ co-&gt;ops = &amp;sbOps;
++ co-&gt;isMapped = 0;
++ co-&gt;left = left;
++ co-&gt;top = top;
++ co-&gt;height = height;
++ co-&gt;width = 1;
++ co-&gt;takesFocus = 0;
++
++ return co;
++}
++
++static void sbDraw(newtComponent co) {
++ struct scrollbar * sb = co-&gt;data;
++ int i;
++
++ if (!co-&gt;isMapped) return;
++
++ SLsmg_set_color(sb-&gt;cs);
++
++ SLsmg_set_char_set(1);
++ if (sb-&gt;arrows) {
++ newtGotorc(co-&gt;top, co-&gt;left);
++ SLsmg_write_char('\x2d');
++ for (i = 1; i &lt; co-&gt;height - 1; i++) {
++ newtGotorc(i + co-&gt;top, co-&gt;left);
++ SLsmg_write_char('\x61');
++ }
++ newtGotorc(co-&gt;top + co-&gt;height - 1, co-&gt;left);
++ SLsmg_write_char('\x2e');
++ } else {
++ for (i = 0; i &lt; co-&gt;height; i++) {
++ newtGotorc(i + co-&gt;top, co-&gt;left);
++ SLsmg_write_char('\x61');
++ }
++ }
++
++ SLsmg_set_char_set(0);
++
++ sbDrawThumb(co, 1);
++}
++
++static void sbDrawThumb(newtComponent co, int isOn) {
++ struct scrollbar * sb = co-&gt;data;
++ char ch = isOn ? '#' : '\x61';
++
++ if (!co-&gt;isMapped) return;
++
++ newtGotorc(sb-&gt;curr + co-&gt;top, co-&gt;left);
++ SLsmg_set_char_set(1);
++
++ /*if (isOn)
++ SLsmg_set_color(sb-&gt;csThumb);
++ else*/
++ SLsmg_set_color(sb-&gt;cs);
++
++ SLsmg_write_char(ch);
++ SLsmg_set_char_set(0);
++}
++
++static void sbDestroy(newtComponent co) {
++ struct scrollbar * sb = co-&gt;data;
++
++ free(sb);
++ free(co);
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/newt/scrollbar.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1newttextboxc">Added: drakx/trunk/mdk-stage1/newt/textbox.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/newt/textbox.c (rev 0)
++++ drakx/trunk/mdk-stage1/newt/textbox.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,409 @@
++#include &lt;ctype.h&gt;
++#include &lt;slang.h&gt;
++#include &lt;stdlib.h&gt;
++#include &lt;string.h&gt;
++
++#include &quot;newt.h&quot;
++#include &quot;newt_pr.h&quot;
++
++struct textbox {
++ char ** lines;
++ int numLines;
++ int linesAlloced;
++ int doWrap;
++ newtComponent sb;
++ int topLine;
++ int textWidth;
++};
++
++static char * expandTabs(const char * text);
++static void textboxDraw(newtComponent co);
++static void addLine(newtComponent co, const char * s, int len);
++static void doReflow(const char * text, char ** resultPtr, int width,
++ int * badness, int * heightPtr);
++static struct eventResult textboxEvent(newtComponent c,
++ struct event ev);
++static void textboxDestroy(newtComponent co);
++static void textboxPlace(newtComponent co, int newLeft, int newTop);
++static void textboxMapped(newtComponent co, int isMapped);
++
++static struct componentOps textboxOps = {
++ textboxDraw,
++ textboxEvent,
++ textboxDestroy,
++ textboxPlace,
++ textboxMapped,
++} ;
++
++static void textboxMapped(newtComponent co, int isMapped) {
++ struct textbox * tb = co-&gt;data;
++
++ co-&gt;isMapped = isMapped;
++ if (tb-&gt;sb)
++ tb-&gt;sb-&gt;ops-&gt;mapped(tb-&gt;sb, isMapped);
++}
++
++static void textboxPlace(newtComponent co, int newLeft, int newTop) {
++ struct textbox * tb = co-&gt;data;
++
++ co-&gt;top = newTop;
++ co-&gt;left = newLeft;
++
++ if (tb-&gt;sb)
++ tb-&gt;sb-&gt;ops-&gt;place(tb-&gt;sb, co-&gt;left + co-&gt;width - 1, co-&gt;top);
++}
++
++void newtTextboxSetHeight(newtComponent co, int height) {
++ co-&gt;height = height;
++}
++
++int newtTextboxGetNumLines(newtComponent co) {
++ struct textbox * tb = co-&gt;data;
++
++ return (tb-&gt;numLines);
++}
++
++newtComponent newtTextboxReflowed(int left, int top, char * text, int width,
++ int flexDown, int flexUp, int flags __attribute__ ((unused))) {
++ newtComponent co;
++ char * reflowedText;
++ int actWidth, actHeight;
++
++ reflowedText = newtReflowText(text, width, flexDown, flexUp,
++ &amp;actWidth, &amp;actHeight);
++
++ co = newtTextbox(left, top, actWidth, actHeight, NEWT_FLAG_WRAP);
++ newtTextboxSetText(co, reflowedText);
++ free(reflowedText);
++
++ return co;
++}
++
++newtComponent newtTextbox(int left, int top, int width, int height, int flags) {
++ newtComponent co;
++ struct textbox * tb;
++
++ co = malloc(sizeof(*co));
++ tb = malloc(sizeof(*tb));
++ co-&gt;data = tb;
++
++ co-&gt;ops = &amp;textboxOps;
++
++ co-&gt;height = height;
++ co-&gt;top = top;
++ co-&gt;left = left;
++ co-&gt;takesFocus = 0;
++ co-&gt;width = width;
++
++ tb-&gt;doWrap = flags &amp; NEWT_FLAG_WRAP;
++ tb-&gt;numLines = 0;
++ tb-&gt;linesAlloced = 0;
++ tb-&gt;lines = NULL;
++ tb-&gt;topLine = 0;
++ tb-&gt;textWidth = width;
++
++ if (flags &amp; NEWT_FLAG_SCROLL) {
++ co-&gt;width += 2;
++ tb-&gt;sb = newtVerticalScrollbar(co-&gt;left + co-&gt;width - 1, co-&gt;top,
++ co-&gt;height, COLORSET_TEXTBOX, COLORSET_TEXTBOX);
++ } else {
++ tb-&gt;sb = NULL;
++ }
++
++ return co;
++}
++
++static char * expandTabs(const char * text) {
++ int bufAlloced = strlen(text) + 40;
++ char * buf, * dest;
++ const char * src;
++ int bufUsed = 0;
++ int linePos = 0;
++ int i;
++
++ buf = malloc(bufAlloced + 1);
++ for (src = text, dest = buf; *src; src++) {
++ if ((bufUsed + 10) &gt; bufAlloced) {
++ bufAlloced += strlen(text) / 2;
++ buf = realloc(buf, bufAlloced + 1);
++ dest = buf + bufUsed;
++ }
++ if (*src == '\t') {
++ i = 8 - (linePos &amp; 8);
++ memset(dest, ' ', i);
++ dest += i, bufUsed += i, linePos += i;
++ } else {
++ if (*src == '\n')
++ linePos = 0;
++ else
++ linePos++;
++
++ *dest++ = *src;
++ bufUsed++;
++ }
++ }
++
++ *dest = '\0';
++ return buf;
++}
++
++#define iseuckanji(c) (0xa1 &lt;= (unsigned char)(c&amp;0xff) &amp;&amp; (unsigned char)(c&amp;0xff) &lt;= 0xfe)
++
++static void doReflow(const char * text, char ** resultPtr, int width,
++ int * badness, int * heightPtr) {
++ char * result = NULL;
++ const char * chptr, * end;
++ int i;
++ int howbad = 0;
++ int height = 0;
++ int kanji = 0;
++
++ if (resultPtr) {
++ /* XXX I think this will work */
++ result = malloc(strlen(text) + (strlen(text) / width) + 50);
++ *result = '\0';
++ }
++
++ while (*text) {
++ kanji = 0;
++ end = strchr(text, '\n');
++ if (!end)
++ end = text + strlen(text);
++
++ while (*text &amp;&amp; text &lt; end) {
++ if (end - text &lt; width) {
++ if (result) {
++ strncat(result, text, end - text);
++ strcat(result, &quot;\n&quot;);
++ height++;
++ }
++
++ if (end - text &lt; (width / 2))
++ howbad += ((width / 2) - (end - text)) / 2;
++ text = end;
++ if (*text) text++;
++ } else {
++ chptr = text;
++ kanji = 0;
++ for ( i = 0; i &lt; width - 1; i++ ) {
++ if ( !iseuckanji(*chptr)) {
++ kanji = 0;
++ } else if ( kanji == 1 ) {
++ kanji = 2;
++ } else {
++ kanji = 1;
++ }
++ chptr++;
++ }
++ if (kanji == 0) {
++ while (chptr &gt; text &amp;&amp; !isspace(*chptr)) chptr--;
++ while (chptr &gt; text &amp;&amp; isspace(*chptr)) chptr--;
++ chptr++;
++ }
++
++ if (chptr-text == 1 &amp;&amp; !isspace(*chptr))
++ chptr = text + width - 1;
++
++ if (chptr &gt; text)
++ howbad += width - (chptr - text) + 1;
++ if (result) {
++ if (kanji == 1) {
++ strncat(result, text, chptr - text + 1);
++ chptr++;
++ kanji = 0;
++ } else {
++ strncat(result, text, chptr - text);
++ }
++ strcat(result, &quot;\n&quot;);
++ height++;
++ }
++
++ if (isspace(*chptr))
++ text = chptr + 1;
++ else
++ text = chptr;
++ while (isspace(*text)) text++;
++ }
++ }
++ }
++
++// if (result) printf(&quot;result: %s\n&quot;, result);
++
++ if (badness) *badness = howbad;
++ if (resultPtr) *resultPtr = result;
++ if (heightPtr) *heightPtr = height;
++}
++
++char * newtReflowText(char * text, int width, int flexDown, int flexUp,
++ int * actualWidth, int * actualHeight) {
++ int min, max;
++ int i;
++ char * result;
++ int minbad, minbadwidth, howbad;
++ char * expandedText;
++
++ expandedText = expandTabs(text);
++
++ if (flexDown || flexUp) {
++ min = width - flexDown;
++ max = width + flexUp;
++
++ minbad = -1;
++ minbadwidth = width;
++
++ for (i = min; i &lt;= max; i++) {
++ doReflow(expandedText, NULL, i, &amp;howbad, NULL);
++
++ if (minbad == -1 || howbad &lt; minbad) {
++ minbad = howbad;
++ minbadwidth = i;
++ }
++ }
++
++ width = minbadwidth;
++ }
++
++ doReflow(expandedText, &amp;result, width, NULL, actualHeight);
++ free(expandedText);
++ if (actualWidth) *actualWidth = width;
++ return result;
++}
++
++void newtTextboxSetText(newtComponent co, const char * text) {
++ const char * start, * end;
++ struct textbox * tb = co-&gt;data;
++ char * reflowed, * expanded;
++ int badness, height;
++
++ if (tb-&gt;lines) {
++ free(tb-&gt;lines);
++ tb-&gt;linesAlloced = tb-&gt;numLines = 0;
++ }
++
++ expanded = expandTabs(text);
++
++ if (tb-&gt;doWrap) {
++ doReflow(expanded, &amp;reflowed, tb-&gt;textWidth, &amp;badness, &amp;height);
++ free(expanded);
++ expanded = reflowed;
++ }
++
++ for (start = expanded; *start; start++)
++ if (*start == '\n') tb-&gt;linesAlloced++;
++
++ /* This ++ leaves room for an ending line w/o a \n */
++ tb-&gt;linesAlloced++;
++ tb-&gt;lines = malloc(sizeof(char *) * tb-&gt;linesAlloced);
++
++ start = expanded;
++ while ((end = strchr(start, '\n'))) {
++ addLine(co, start, end - start);
++ start = end + 1;
++ }
++
++ if (*start)
++ addLine(co, start, strlen(start));
++
++ free(expanded);
++}
++
++/* This assumes the buffer is allocated properly! */
++static void addLine(newtComponent co, const char * s, int len) {
++ struct textbox * tb = co-&gt;data;
++
++ if (len &gt; tb-&gt;textWidth) len = tb-&gt;textWidth;
++
++ tb-&gt;lines[tb-&gt;numLines] = malloc(tb-&gt;textWidth + 1);
++ memset(tb-&gt;lines[tb-&gt;numLines], ' ', tb-&gt;textWidth);
++ memcpy(tb-&gt;lines[tb-&gt;numLines], s, len);
++ tb-&gt;lines[tb-&gt;numLines++][tb-&gt;textWidth] = '\0';
++}
++
++static void textboxDraw(newtComponent c) {
++ int i;
++ struct textbox * tb = c-&gt;data;
++ int size;
++
++ if (tb-&gt;sb) {
++ size = tb-&gt;numLines - c-&gt;height;
++ newtScrollbarSet(tb-&gt;sb, tb-&gt;topLine, size ? size : 0);
++ tb-&gt;sb-&gt;ops-&gt;draw(tb-&gt;sb);
++ }
++
++ SLsmg_set_color(NEWT_COLORSET_TEXTBOX);
++
++ for (i = 0; (i + tb-&gt;topLine) &lt; tb-&gt;numLines &amp;&amp; i &lt; c-&gt;height; i++) {
++ newtGotorc(c-&gt;top + i, c-&gt;left);
++ SLsmg_write_string(tb-&gt;lines[i + tb-&gt;topLine]);
++ }
++}
++
++static struct eventResult textboxEvent(newtComponent co,
++ struct event ev) {
++ struct textbox * tb = co-&gt;data;
++ struct eventResult er;
++
++ er.result = ER_IGNORED;
++
++ if (ev.when == EV_EARLY &amp;&amp; ev.event == EV_KEYPRESS &amp;&amp; tb-&gt;sb) {
++ switch (ev.u.key) {
++ case NEWT_KEY_UP:
++ if (tb-&gt;topLine) tb-&gt;topLine--;
++ textboxDraw(co);
++ er.result = ER_SWALLOWED;
++ break;
++
++ case NEWT_KEY_DOWN:
++ if (tb-&gt;topLine &lt; (tb-&gt;numLines - co-&gt;height)) tb-&gt;topLine++;
++ textboxDraw(co);
++ er.result = ER_SWALLOWED;
++ break;
++
++ case NEWT_KEY_PGDN:
++ tb-&gt;topLine += co-&gt;height;
++ if (tb-&gt;topLine &gt; (tb-&gt;numLines - co-&gt;height)) {
++ tb-&gt;topLine = tb-&gt;numLines - co-&gt;height;
++ if (tb-&gt;topLine &lt; 0) tb-&gt;topLine = 0;
++ }
++ textboxDraw(co);
++ er.result = ER_SWALLOWED;
++ break;
++
++ case NEWT_KEY_PGUP:
++ tb-&gt;topLine -= co-&gt;height;
++ if (tb-&gt;topLine &lt; 0) tb-&gt;topLine = 0;
++ textboxDraw(co);
++ er.result = ER_SWALLOWED;
++ break;
++ }
++ }
++ if (ev.when == EV_EARLY &amp;&amp; ev.event == EV_MOUSE &amp;&amp; tb-&gt;sb) {
++ /* Top scroll arrow */
++ if (ev.u.mouse.x == co-&gt;width &amp;&amp; ev.u.mouse.y == co-&gt;top) {
++ if (tb-&gt;topLine) tb-&gt;topLine--;
++ textboxDraw(co);
++
++ er.result = ER_SWALLOWED;
++ }
++ /* Bottom scroll arrow */
++ if (ev.u.mouse.x == co-&gt;width &amp;&amp;
++ ev.u.mouse.y == co-&gt;top + co-&gt;height - 1) {
++ if (tb-&gt;topLine &lt; (tb-&gt;numLines - co-&gt;height)) tb-&gt;topLine++;
++ textboxDraw(co);
++
++ er.result = ER_SWALLOWED;
++ }
++ }
++ return er;
++}
++
++static void textboxDestroy(newtComponent co) {
++ int i;
++ struct textbox * tb = co-&gt;data;
++
++ for (i = 0; i &lt; tb-&gt;numLines; i++)
++ free(tb-&gt;lines[i]);
++ free(tb-&gt;lines);
++ free(tb);
++ free(co);
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/newt/textbox.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1newtwindowsc">Added: drakx/trunk/mdk-stage1/newt/windows.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/newt/windows.c (rev 0)
++++ drakx/trunk/mdk-stage1/newt/windows.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,275 @@
++#include &lt;errno.h&gt;
++#include &lt;stdarg.h&gt;
++#include &lt;stdio.h&gt;
++#include &lt;stdlib.h&gt;
++#include &lt;string.h&gt;
++
++#include &quot;errno.h&quot;
++#include &quot;newt.h&quot;
++
++static void * newtvwindow(char * title, char * button1, char * button2,
++ char * button3, char * message, va_list args) {
++ newtComponent b1, b2 = NULL, b3 = NULL, t, f, answer;
++ char * buf = NULL;
++ int size = 0;
++ int i = 0;
++ int scroll = 0;
++ int width, height;
++ char * flowedText;
++ newtGrid grid, buttonGrid;
++
++ do {
++ size += 1000;
++ if (buf) free(buf);
++ buf = malloc(size);
++ i = vsnprintf(buf, size, message, args);
++ } while (i &gt;= size || i == -1);
++
++ flowedText = newtReflowText(buf, 50, 5, 5, &amp;width, &amp;height);
++ if (height &gt; 6) {
++ free(flowedText);
++ flowedText = newtReflowText(buf, 60, 5, 5, &amp;width, &amp;height);
++ }
++ free(buf);
++
++ if (height &gt; 12) {
++ height = 12;
++ scroll = NEWT_FLAG_SCROLL;
++ }
++ t = newtTextbox(-1, -1, width, height, NEWT_TEXTBOX_WRAP | scroll);
++ newtTextboxSetText(t, flowedText);
++ free(flowedText);
++
++ if (button3) {
++ buttonGrid = newtButtonBar(button1, &amp;b1, button2, &amp;b2,
++ button3, &amp;b3, NULL);
++ } else if (button2) {
++ buttonGrid = newtButtonBar(button1, &amp;b1, button2, &amp;b2, NULL);
++ } else {
++ buttonGrid = newtButtonBar(button1, &amp;b1, NULL);
++ }
++
++ newtGridSetField(buttonGrid, 0, 0, NEWT_GRID_COMPONENT, b1,
++ 0, 0, button2 ? 1 : 0, 0, 0, 0);
++
++ grid = newtCreateGrid(1, 2);
++ newtGridSetField(grid, 0, 0, NEWT_GRID_COMPONENT, t, 0, 0, 0, 0, 0, 0);
++ newtGridSetField(grid, 0, 1, NEWT_GRID_SUBGRID, buttonGrid,
++ 0, 1, 0, 0, 0, NEWT_GRID_FLAG_GROWX);
++ newtGridWrappedWindow(grid, title);
++
++ f = newtForm(NULL, NULL, 0);
++ newtFormAddComponents(f, t, b1, NULL);
++
++ if (button2)
++ newtFormAddComponent(f, b2);
++ if (button3)
++ newtFormAddComponent(f, b3);
++
++ answer = newtRunForm(f);
++ newtGridFree(grid, 1);
++
++ newtFormDestroy(f);
++ newtPopWindow();
++
++ if (answer == f)
++ return NULL;
++ else if (answer == b1)
++ return button1;
++ else if (answer == b2)
++ return button2;
++
++ return button3;
++}
++
++int newtWinChoice(char * title, char * button1, char * button2,
++ char * message, ...) {
++ va_list args;
++ void * rc;
++
++ va_start(args, message);
++ rc = newtvwindow(title, button1, button2, NULL, message, args);
++ va_end(args);
++
++ if (rc == button1)
++ return 1;
++ else if (rc == button2)
++ return 2;
++
++ return 0;
++}
++
++void newtWinMessage(char * title, char * buttonText, char * text, ...) {
++ va_list args;
++
++ va_start(args, text);
++ newtvwindow(title, buttonText, NULL, NULL, text, args);
++ va_end(args);
++}
++
++void newtWinMessagev(char * title, char * buttonText, char * text,
++ va_list argv) {
++ newtvwindow(title, buttonText, NULL, NULL, text, argv);
++}
++
++int newtWinTernary(char * title, char * button1, char * button2,
++ char * button3, char * message, ...) {
++ va_list args;
++ void * rc;
++
++ va_start(args, message);
++ rc = newtvwindow(title, button1, button2, button3, message, args);
++ va_end(args);
++
++ if (rc == button1)
++ return 1;
++ else if (rc == button2)
++ return 2;
++ else if (rc == button3)
++ return 3;
++
++ return 0;
++}
++
++/* only supports up to 50 buttons -- shucks! */
++int newtWinMenu(char * title, char * text, int suggestedWidth, int flexDown,
++ int flexUp, int maxListHeight, char ** items, int * listItem,
++ char * button1, ...) {
++ newtComponent textbox, listbox, result, form;
++ va_list args;
++ newtComponent buttons[50];
++ newtGrid grid, buttonBar;
++ int numButtons;
++ int i, rc;
++ int needScroll;
++ char * buttonName;
++
++ textbox = newtTextboxReflowed(-1, -1, text, suggestedWidth, flexDown,
++ flexUp, 0);
++
++ for (i = 0; items[i]; i++) ;
++ if (i &lt; maxListHeight) maxListHeight = i;
++ needScroll = i &gt; maxListHeight;
++
++ listbox = newtListbox(-1, -1, maxListHeight,
++ (needScroll ? NEWT_FLAG_SCROLL : 0) | NEWT_FLAG_RETURNEXIT);
++ for (i = 0; items[i]; i++) {
++ newtListboxAddEntry(listbox, items[i], (void *) (long)i);
++ }
++
++ newtListboxSetCurrent(listbox, *listItem);
++
++ buttonName = button1, numButtons = 0;
++ va_start(args, button1);
++ while (buttonName) {
++ buttons[numButtons] = newtButton(-1, -1, buttonName);
++ numButtons++;
++ buttonName = va_arg(args, char *);
++ }
++
++ va_end(args);
++
++ buttonBar = newtCreateGrid(numButtons, 1);
++ for (i = 0; i &lt; numButtons; i++) {
++ newtGridSetField(buttonBar, i, 0, NEWT_GRID_COMPONENT,
++ buttons[i],
++ i ? 1 : 0, 0, 0, 0, 0, 0);
++ }
++
++ grid = newtGridSimpleWindow(textbox, listbox, buttonBar);
++ newtGridWrappedWindow(grid, title);
++
++ form = newtForm(NULL, 0, 0);
++ newtGridAddComponentsToForm(grid, form, 1);
++ newtGridFree(grid, 1);
++
++ result = newtRunForm(form);
++
++ *listItem = ((long) newtListboxGetCurrent(listbox));
++
++ for (rc = 0; result != buttons[rc] &amp;&amp; rc &lt; numButtons; rc++);
++ if (rc == numButtons)
++ rc = 0; /* F12 or return-on-exit (which are the same for us) */
++ else
++ rc++;
++
++ newtFormDestroy(form);
++ newtPopWindow();
++
++ return rc;
++}
++
++/* only supports up to 50 buttons and entries -- shucks! */
++int newtWinEntries(char * title, char * text, int suggestedWidth, int flexDown,
++ int flexUp, int dataWidth,
++ struct newtWinEntry * items, char * button1, ...) {
++ newtComponent buttons[50], result, form, textw;
++ newtGrid grid, buttonBar, subgrid;
++ int numItems;
++ int rc, i;
++ int numButtons;
++ char * buttonName;
++ va_list args;
++
++ textw = newtTextboxReflowed(-1, -1, text, suggestedWidth, flexDown,
++ flexUp, 0);
++
++ for (numItems = 0; items[numItems].text; numItems++);
++
++ buttonName = button1, numButtons = 0;
++ va_start(args, button1);
++ while (buttonName) {
++ buttons[numButtons] = newtButton(-1, -1, buttonName);
++ numButtons++;
++ buttonName = va_arg(args, char *);
++ }
++
++ va_end(args);
++
++ buttonBar = newtCreateGrid(numButtons, 1);
++ for (i = 0; i &lt; numButtons; i++) {
++ newtGridSetField(buttonBar, i, 0, NEWT_GRID_COMPONENT,
++ buttons[i],
++ i ? 1 : 0, 0, 0, 0, 0, 0);
++ }
++
++ subgrid = newtCreateGrid(2, numItems);
++ for (i = 0; i &lt; numItems; i++) {
++ newtGridSetField(subgrid, 0, i, NEWT_GRID_COMPONENT,
++ newtLabel(-1, -1, items[i].text),
++ 0, 0, 0, 0, NEWT_ANCHOR_LEFT, 0);
++ newtGridSetField(subgrid, 1, i, NEWT_GRID_COMPONENT,
++ newtEntry(-1, -1, items[i].value ?
++ *items[i].value : NULL, dataWidth,
++ items[i].value, items[i].flags),
++ 1, 0, 0, 0, 0, 0);
++ }
++
++ grid = newtCreateGrid(1, 3);
++ form = newtForm(NULL, 0, 0);
++ newtGridSetField(grid, 0, 0, NEWT_GRID_COMPONENT, textw,
++ 0, 0, 0, 0, NEWT_ANCHOR_LEFT, 0);
++ newtGridSetField(grid, 0, 1, NEWT_GRID_SUBGRID, subgrid,
++ 0, 1, 0, 0, 0, 0);
++ newtGridSetField(grid, 0, 2, NEWT_GRID_SUBGRID, buttonBar,
++ 0, 1, 0, 0, 0, NEWT_GRID_FLAG_GROWX);
++ newtGridAddComponentsToForm(grid, form, 1);
++ newtGridWrappedWindow(grid, title);
++ newtGridFree(grid, 1);
++
++ result = newtRunForm(form);
++
++ for (rc = 0; rc &lt; numItems; rc++)
++ *items[rc].value = strdup(*items[rc].value);
++
++ for (rc = 0; result != buttons[rc] &amp;&amp; rc &lt; numButtons; rc++);
++ if (rc == numButtons)
++ rc = 0; /* F12 */
++ else
++ rc++;
++
++ newtFormDestroy(form);
++ newtPopWindow();
++
++ return rc;
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/newt/windows.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1newtfrontendc">Added: drakx/trunk/mdk-stage1/newt-frontend.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/newt-frontend.c (rev 0)
++++ drakx/trunk/mdk-stage1/newt-frontend.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,389 @@
++/*
++ * Guillaume Cottenceau (gc@mandriva.com)
++ *
++ * Copyright 2000 Mandriva
++ *
++ * This software may be freely redistributed under the terms of the GNU
++ * public license.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++/*
++ * Portions from Erik Troan (ewt@redhat.com)
++ *
++ * Copyright 1996 Red Hat Software
++ *
++ */
++
++
++/*
++ * Each different frontend must implement all functions defined in frontend.h
++ */
++
++#define _GNU_SOURCE
++
++#include &lt;stdlib.h&gt;
++#include &lt;unistd.h&gt;
++#include &lt;string.h&gt;
++#include &lt;stdio.h&gt;
++#include &lt;stdarg.h&gt;
++#include &lt;sys/time.h&gt;
++#include &quot;newt/newt.h&quot;
++
++#include &lt;probing.h&gt;
++
++#include &quot;frontend.h&quot;
++
++void init_frontend(char * welcome_msg)
++{
++ int i;
++ for (i=0; i&lt;38; i++) printf(&quot;\n&quot;);
++ newtInit();
++ newtCls();
++
++ if (welcome_msg[0]) {
++ char *msg;
++ int cols, rows;
++ newtGetScreenSize(&amp;cols, &amp;rows);
++ asprintf(&amp;msg, &quot; %-*s&quot;, cols - 1, welcome_msg);
++ newtDrawRootText(0, 0, msg);
++ free(msg);
++ newtPushHelpLine(&quot; &lt;Alt-F1&gt; for here, &lt;Alt-F3&gt; to see the logs, &lt;Alt-F4&gt; for kernel msg&quot;);
++ }
++ newtRefresh();
++}
++
++
++void finish_frontend(void)
++{
++ newtFinished();
++}
++
++
++void verror_message(char *msg, va_list ap)
++{
++ newtWinMessagev(&quot;Error&quot;, &quot;Ok&quot;, msg, ap);
++}
++
++void vinfo_message(char *msg, va_list ap)
++{
++ newtWinMessagev(&quot;Notice&quot;, &quot;Ok&quot;, msg, ap);
++}
++
++
++void vwait_message(char *msg, va_list ap)
++{
++ int width, height;
++ char * title = &quot;Please wait...&quot;;
++ newtComponent c, f;
++ newtGrid grid;
++ char * buf = NULL;
++ char * flowed;
++ int size = 0;
++ int i = 0;
++
++ do {
++ size += 1000;
++ if (buf) free(buf);
++ buf = malloc(size);
++ i = vsnprintf(buf, size, msg, ap);
++ } while (i &gt;= size || i == -1);
++
++ flowed = newtReflowText(buf, 60, 5, 5, &amp;width, &amp;height);
++
++ c = newtTextbox(-1, -1, width, height, NEWT_TEXTBOX_WRAP);
++ newtTextboxSetText(c, flowed);
++
++ grid = newtCreateGrid(1, 1);
++ newtGridSetField(grid, 0, 0, NEWT_GRID_COMPONENT, c, 0, 0, 0, 0, 0, 0);
++ newtGridWrappedWindow(grid, title);
++
++ free(flowed);
++ free(buf);
++
++ f = newtForm(NULL, NULL, 0);
++ newtFormAddComponent(f, c);
++
++ newtDrawForm(f);
++ newtRefresh();
++ newtFormDestroy(f);
++}
++
++void remove_wait_message(void)
++{
++ newtPopWindow();
++}
++
++
++static newtComponent form = NULL, scale = NULL;
++static int size_progress;
++static int actually_drawn;
++static char * msg_progress;
++
++void init_progression_raw(char *msg, int size)
++{
++ size_progress = size;
++ if (size) {
++ actually_drawn = 0;
++ newtCenteredWindow(70, 5, &quot;Please wait...&quot;);
++ form = newtForm(NULL, NULL, 0);
++ newtFormAddComponent(form, newtLabel(1, 1, msg));
++ scale = newtScale(1, 3, 68, size);
++ newtFormAddComponent(form, scale);
++ newtDrawForm(form);
++ newtRefresh();
++ }
++ else {
++ wait_message(msg);
++ msg_progress = msg;
++ }
++}
++
++void update_progression_raw(int current_size)
++{
++ if (size_progress) {
++ if (current_size &lt;= size_progress)
++ newtScaleSet(scale, current_size);
++ newtRefresh();
++ }
++ else {
++ struct timeval t;
++ int time;
++ static int last_time = -1;
++ gettimeofday(&amp;t, NULL);
++ time = t.tv_sec*3 + t.tv_usec/300000;
++ if (time != last_time) {
++ char msg_prog_final[500];
++ sprintf(msg_prog_final, &quot;%s (%d bytes read) &quot;, msg_progress, current_size);
++ remove_wait_message();
++ wait_message(msg_prog_final);
++ }
++ last_time = time;
++ }
++}
++
++void end_progression_raw(void)
++{
++ if (size_progress) {
++ newtPopWindow();
++ newtFormDestroy(form);
++ }
++ else
++ remove_wait_message();
++}
++
++
++enum return_type ask_from_list_index(char *msg, char ** elems, char ** elems_comments, int * answer)
++{
++ char * items[50000];
++ int rc;
++
++ if (elems_comments) {
++ int i;
++
++ i = 0;
++ while (elems &amp;&amp; *elems) {
++ int j = (*elems_comments) ? strlen(*elems_comments) : 0;
++ items[i] = malloc(sizeof(char) * (strlen(*elems) + j + 4));
++ strcpy(items[i], *elems);
++ if (*elems_comments) {
++ strcat(items[i], &quot; (&quot;);
++ strcat(items[i], *elems_comments);
++ strcat(items[i], &quot;)&quot;);
++ }
++ elems_comments++;
++ i++;
++ elems++;
++ }
++ items[i] = NULL;
++ }
++
++ rc = newtWinMenu(&quot;Please choose...&quot;, msg, 52, 5, 5, 7, elems_comments ? items : elems, answer, &quot;Ok&quot;, &quot;Cancel&quot;, NULL);
++
++ if (rc == 2)
++ return RETURN_BACK;
++
++ return RETURN_OK;
++}
++
++enum return_type ask_yes_no(char *msg)
++{
++ int rc;
++
++ rc = newtWinTernary(&quot;Please answer...&quot;, &quot;Yes&quot;, &quot;No&quot;, &quot;Back&quot;, msg);
++
++ if (rc == 1)
++ return RETURN_OK;
++ else if (rc == 3)
++ return RETURN_BACK;
++ else return RETURN_ERROR;
++}
++
++
++static void (*callback_real_function)(char ** strings) = NULL;
++
++static void default_callback(newtComponent co __attribute__ ((unused)), void * data)
++{
++ newtComponent * entries = data;
++ char * strings[50], ** ptr;
++
++ if (!callback_real_function)
++ return;
++
++ ptr = strings;
++ while (entries &amp;&amp; *entries) {
++ *ptr = newtEntryGetValue(*entries);
++ entries++;
++ ptr++;
++ }
++
++ callback_real_function(strings);
++
++ ptr = strings;
++ entries = data;
++ while (entries &amp;&amp; *entries) {
++ newtEntrySet(*entries, strdup(*ptr), 1);
++ entries++;
++ ptr++;
++ }
++}
++
++/* only supports up to 50 buttons and entries -- shucks! */
++static int mynewtWinEntries(char * title, char * text, int suggestedWidth, int flexDown,
++ int flexUp, int dataWidth, void (*callback_func)(char ** strings),
++ struct newtWinEntry * items, char * button1, ...) {
++ newtComponent buttons[50], result, form, textw;
++ newtGrid grid, buttonBar, subgrid;
++ int numItems;
++ int rc, i;
++ int numButtons;
++ char * buttonName;
++ newtComponent entries[50];
++
++ va_list args;
++
++ textw = newtTextboxReflowed(-1, -1, text, suggestedWidth, flexDown,
++ flexUp, 0);
++
++ for (numItems = 0; items[numItems].text; numItems++);
++
++ buttonName = button1, numButtons = 0;
++ va_start(args, button1);
++ while (buttonName) {
++ buttons[numButtons] = newtButton(-1, -1, buttonName);
++ numButtons++;
++ buttonName = va_arg(args, char *);
++ }
++
++ va_end(args);
++
++ buttonBar = newtCreateGrid(numButtons, 1);
++ for (i = 0; i &lt; numButtons; i++) {
++ newtGridSetField(buttonBar, i, 0, NEWT_GRID_COMPONENT,
++ buttons[i],
++ i ? 1 : 0, 0, 0, 0, 0, 0);
++ }
++
++ if (callback_func) {
++ callback_real_function = callback_func;
++ entries[numItems] = NULL;
++ }
++ else
++ callback_real_function = NULL;
++
++ subgrid = newtCreateGrid(2, numItems);
++ for (i = 0; i &lt; numItems; i++) {
++ newtComponent entr = newtEntry(-1, -1, items[i].value ?
++ *items[i].value : NULL, dataWidth,
++ items[i].value, items[i].flags);
++
++ newtGridSetField(subgrid, 0, i, NEWT_GRID_COMPONENT,
++ newtLabel(-1, -1, items[i].text),
++ 0, 0, 0, 0, NEWT_ANCHOR_LEFT, 0);
++ newtGridSetField(subgrid, 1, i, NEWT_GRID_COMPONENT,
++ entr,
++ 1, 0, 0, 0, 0, 0);
++ if (callback_func) {
++ entries[i] = entr;
++ newtComponentAddCallback(entr, default_callback, entries);
++ }
++ }
++
++
++ grid = newtCreateGrid(1, 3);
++ form = newtForm(NULL, 0, 0);
++ newtGridSetField(grid, 0, 0, NEWT_GRID_COMPONENT, textw,
++ 0, 0, 0, 0, NEWT_ANCHOR_LEFT, 0);
++ newtGridSetField(grid, 0, 1, NEWT_GRID_SUBGRID, subgrid,
++ 0, 1, 0, 0, 0, 0);
++ newtGridSetField(grid, 0, 2, NEWT_GRID_SUBGRID, buttonBar,
++ 0, 1, 0, 0, 0, NEWT_GRID_FLAG_GROWX);
++ newtGridAddComponentsToForm(grid, form, 1);
++ newtGridWrappedWindow(grid, title);
++ newtGridFree(grid, 1);
++
++ result = newtRunForm(form);
++
++ for (rc = 0; rc &lt; numItems; rc++)
++ *items[rc].value = strdup(*items[rc].value);
++
++ for (rc = 0; result != buttons[rc] &amp;&amp; rc &lt; numButtons; rc++);
++ if (rc == numButtons)
++ rc = 0; /* F12 */
++ else
++ rc++;
++
++ newtFormDestroy(form);
++ newtPopWindow();
++
++ return rc;
++}
++
++
++enum return_type ask_from_entries(char *msg, char ** questions, char *** answers, int entry_size, void (*callback_func)(char ** strings))
++{
++ struct newtWinEntry entries[50];
++ int j, i = 0;
++ int rc;
++ char ** already_answers = NULL;
++
++ while (questions &amp;&amp; *questions) {
++ entries[i].text = *questions;
++ entries[i].flags = NEWT_FLAG_SCROLL | (!strcmp(*questions, &quot;Password&quot;) ? NEWT_FLAG_PASSWORD : 0);
++ i++;
++ questions++;
++ }
++ entries[i].text = NULL;
++ entries[i].value = NULL;
++
++ if (*answers == NULL)
++ *answers = (char **) malloc(sizeof(char *) * i);
++ else
++ already_answers = *answers;
++
++ for (j = 0 ; j &lt; i ; j++) {
++ entries[j].value = &amp;((*answers)[j]);
++ if (already_answers &amp;&amp; *already_answers) {
++ *(entries[j].value) = *already_answers;
++ already_answers++;
++ } else
++ *(entries[j].value) = NULL;
++ }
++
++ rc = mynewtWinEntries(&quot;Please fill in entries...&quot;, msg, 52, 5, 5, entry_size, callback_func, entries, &quot;Ok&quot;, &quot;Cancel&quot;, NULL);
++
++ if (rc == 3)
++ return RETURN_BACK;
++ if (rc != 1)
++ return RETURN_ERROR;
++
++ return RETURN_OK;
++}
++
++
++void suspend_to_console(void) { newtSuspend(); }
++void resume_from_suspend(void) { newtResume(); }
+
+
+Property changes on: drakx/trunk/mdk-stage1/newt-frontend.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1nfs_mount4h">Added: drakx/trunk/mdk-stage1/nfs_mount4.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/nfs_mount4.h (rev 0)
++++ drakx/trunk/mdk-stage1/nfs_mount4.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,54 @@
++/*
++ * We want to be able to compile mount on old kernels in such a way
++ * that the binary will work well on more recent kernels.
++ * Thus, if necessary we teach nfsmount.c the structure of new fields
++ * that will come later.
++ *
++ * Moreover, the new kernel includes conflict with glibc includes
++ * so it is easiest to ignore the kernel altogether (at compile time).
++ */
++
++#define NFS_MOUNT_VERSION 4
++
++struct nfs2_fh {
++ char data[32];
++};
++struct nfs3_fh {
++ unsigned short size;
++ unsigned char data[64];
++};
++
++struct nfs_mount_data {
++ int version; /* 1 */
++ int fd; /* 1 */
++ struct nfs2_fh old_root; /* 1 */
++ int flags; /* 1 */
++ int rsize; /* 1 */
++ int wsize; /* 1 */
++ int timeo; /* 1 */
++ int retrans; /* 1 */
++ int acregmin; /* 1 */
++ int acregmax; /* 1 */
++ int acdirmin; /* 1 */
++ int acdirmax; /* 1 */
++ struct sockaddr_in addr; /* 1 */
++ char hostname[256]; /* 1 */
++ int namlen; /* 2 */
++ unsigned int bsize; /* 3 */
++ struct nfs3_fh root; /* 4 */
++};
++
++/* bits in the flags field */
++
++#define NFS_MOUNT_SOFT 0x0001 /* 1 */
++#define NFS_MOUNT_INTR 0x0002 /* 1 */
++#define NFS_MOUNT_SECURE 0x0004 /* 1 */
++#define NFS_MOUNT_POSIX 0x0008 /* 1 */
++#define NFS_MOUNT_NOCTO 0x0010 /* 1 */
++#define NFS_MOUNT_NOAC 0x0020 /* 1 */
++#define NFS_MOUNT_TCP 0x0040 /* 2 */
++#define NFS_MOUNT_VER3 0x0080 /* 3 */
++#define NFS_MOUNT_KERBEROS 0x0100 /* 3 */
++#define NFS_MOUNT_NONLM 0x0200 /* 3 */
++#define NFS_MOUNT_BROKEN_SUID 0x0400 /* 4 */
++
+
+
+Property changes on: drakx/trunk/mdk-stage1/nfs_mount4.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1nfsmountc">Added: drakx/trunk/mdk-stage1/nfsmount.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/nfsmount.c (rev 0)
++++ drakx/trunk/mdk-stage1/nfsmount.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,740 @@
++ /*
++ * Guillaume Cottenceau (gc@mandriva.com)
++ *
++ * Copyright 2003 Mandriva
++ *
++ * This software may be freely redistributed under the terms of the GNU
++ * public license.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ * basing on nfsmount.c from util-linux-2.11z:
++ * - use our logging facilities
++ * - use our host resolving stuff
++ * - remove unneeded code
++ */
++
++/*
++ * nfsmount.c -- Linux NFS mount
++ * Copyright (C) 1993 Rick Sladkey &lt;jrs@world.std.com&gt;
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2, or (at your option)
++ * any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * Wed Feb 8 12:51:48 1995, biro@yggdrasil.com (Ross Biro): allow all port
++ * numbers to be specified on the command line.
++ *
++ * Fri, 8 Mar 1996 18:01:39, Swen Thuemmler &lt;swen@uni-paderborn.de&gt;:
++ * Omit the call to connect() for Linux version 1.3.11 or later.
++ *
++ * Wed Oct 1 23:55:28 1997: Dick Streefland &lt;dick_streefland@tasking.com&gt;
++ * Implemented the &quot;bg&quot;, &quot;fg&quot; and &quot;retry&quot; mount options for NFS.
++ *
++ * 1999-02-22 Arkadiusz Miśkiewicz &lt;misiek@pld.ORG.PL&gt;
++ * - added Native Language Support
++ *
++ * Modified by Olaf Kirch and Trond Myklebust for new NFS code,
++ * plus NFSv3 stuff.
++ *
++ * 2003-04-14 David Black &lt;david.black@xilinx.com&gt;
++ * - added support for multiple hostname NFS mounts
++ */
++
++/*
++ * nfsmount.c,v 1.1.1.1 1993/11/18 08:40:51 jrs Exp
++ */
++
++#define HAVE_rpcsvc_nfs_prot_h
++#define HAVE_inet_aton
++
++#include &lt;unistd.h&gt;
++#include &lt;stdio.h&gt;
++#include &lt;string.h&gt;
++#include &lt;errno.h&gt;
++#include &lt;netdb.h&gt;
++#include &lt;time.h&gt;
++#include &lt;rpc/rpc.h&gt;
++#include &lt;rpc/pmap_prot.h&gt;
++#include &lt;rpc/pmap_clnt.h&gt;
++#include &lt;sys/socket.h&gt;
++#include &lt;sys/time.h&gt;
++#include &lt;sys/utsname.h&gt;
++#include &lt;sys/stat.h&gt;
++#include &lt;netinet/in.h&gt;
++#include &lt;arpa/inet.h&gt;
++#include &lt;values.h&gt;
++
++#include &quot;nfsmount.h&quot;
++
++#ifdef HAVE_rpcsvc_nfs_prot_h
++#include &lt;rpcsvc/nfs_prot.h&gt;
++#else
++#include &lt;linux/nfs.h&gt;
++#define nfsstat nfs_stat
++#endif
++
++#include &quot;nfs_mount4.h&quot;
++
++#include &quot;log.h&quot;
++#include &quot;dns.h&quot;
++
++#ifndef NFS_PORT
++#define NFS_PORT 2049
++#endif
++#ifndef NFS_FHSIZE
++#define NFS_FHSIZE 32
++#endif
++
++static char *nfs_strerror(int stat);
++
++#define MAKE_VERSION(p,q,r) (65536*(p) + 256*(q) + (r))
++
++#define MAX_NFSPROT ((nfs_mount_version &gt;= 4) ? 3 : 2)
++
++bool_t
++xdr_fhandle3 (XDR *xdrs, fhandle3 *objp)
++{
++ if (!xdr_bytes (xdrs, (char **)&amp;objp-&gt;fhandle3_val, (u_int *) &amp;objp-&gt;fhandle3_len, FHSIZE3))
++ return FALSE;
++ return TRUE;
++}
++
++bool_t
++xdr_mountstat3 (XDR *xdrs, mountstat3 *objp)
++{
++ if (!xdr_enum (xdrs, (enum_t *) objp))
++ return FALSE;
++ return TRUE;
++}
++
++bool_t
++xdr_mountres3_ok (XDR *xdrs, mountres3_ok *objp)
++{
++ if (!xdr_fhandle3 (xdrs, &amp;objp-&gt;fhandle))
++ return FALSE;
++ if (!xdr_array (xdrs, (char **)&amp;objp-&gt;auth_flavours.auth_flavours_val, (u_int *) &amp;objp-&gt;auth_flavours.auth_flavours_len, ~0,
++ sizeof (int), (xdrproc_t) xdr_int))
++ return FALSE;
++ return TRUE;
++}
++
++bool_t
++xdr_mountres3 (XDR *xdrs, mountres3 *objp)
++{
++ if (!xdr_mountstat3 (xdrs, &amp;objp-&gt;fhs_status))
++ return FALSE;
++ switch (objp-&gt;fhs_status) {
++ case MNT_OK:
++ if (!xdr_mountres3_ok (xdrs, &amp;objp-&gt;mountres3_u.mountinfo))
++ return FALSE;
++ break;
++ default:
++ break;
++ }
++ return TRUE;
++}
++
++bool_t
++xdr_dirpath (XDR *xdrs, dirpath *objp)
++{
++ if (!xdr_string (xdrs, objp, MNTPATHLEN))
++ return FALSE;
++ return TRUE;
++}
++
++bool_t
++xdr_fhandle (XDR *xdrs, fhandle objp)
++{
++ if (!xdr_opaque (xdrs, objp, FHSIZE))
++ return FALSE;
++ return TRUE;
++}
++
++bool_t
++xdr_fhstatus (XDR *xdrs, fhstatus *objp)
++{
++ if (!xdr_u_int (xdrs, &amp;objp-&gt;fhs_status))
++ return FALSE;
++ switch (objp-&gt;fhs_status) {
++ case 0:
++ if (!xdr_fhandle (xdrs, objp-&gt;fhstatus_u.fhs_fhandle))
++ return FALSE;
++ break;
++ default:
++ break;
++ }
++ return TRUE;
++}
++
++
++static int
++linux_version_code(void) {
++ struct utsname my_utsname;
++ int p, q, r;
++
++ if (uname(&amp;my_utsname) == 0) {
++ p = atoi(strtok(my_utsname.release, &quot;.&quot;));
++ q = atoi(strtok(NULL, &quot;.&quot;));
++ r = atoi(strtok(NULL, &quot;.&quot;));
++ return MAKE_VERSION(p,q,r);
++ }
++ return 0;
++}
++
++/*
++ * Unfortunately, the kernel prints annoying console messages
++ * in case of an unexpected nfs mount version (instead of
++ * just returning some error). Therefore we'll have to try
++ * and figure out what version the kernel expects.
++ *
++ * Variables:
++ * NFS_MOUNT_VERSION: these nfsmount sources at compile time
++ * nfs_mount_version: version this source and running kernel can handle
++ */
++static int
++find_kernel_nfs_mount_version(void) {
++ static int kernel_version = -1;
++ int nfs_mount_version = NFS_MOUNT_VERSION;
++
++ if (kernel_version == -1)
++ kernel_version = linux_version_code();
++
++ if (kernel_version) {
++ if (kernel_version &lt; MAKE_VERSION(2,1,32))
++ nfs_mount_version = 1;
++ else if (kernel_version &lt; MAKE_VERSION(2,2,18))
++ nfs_mount_version = 3;
++ else if (kernel_version &lt; MAKE_VERSION(2,3,0))
++ nfs_mount_version = 4; /* since 2.2.18pre9 */
++ else if (kernel_version &lt; MAKE_VERSION(2,3,99))
++ nfs_mount_version = 3;
++ else
++ nfs_mount_version = 4; /* since 2.3.99pre4 */
++ }
++ if (nfs_mount_version &gt; NFS_MOUNT_VERSION)
++ nfs_mount_version = NFS_MOUNT_VERSION;
++ log_message(&quot;nfsmount: kernel_nfs_mount_version: %d&quot;, nfs_mount_version);
++ return nfs_mount_version;
++}
++
++static struct pmap *
++get_mountport(struct sockaddr_in *server_addr,
++ long unsigned prog,
++ long unsigned version,
++ long unsigned proto,
++ long unsigned port,
++ int nfs_mount_version)
++{
++ struct pmaplist *pmap;
++ static struct pmap p = {0, 0, 0, 0};
++
++ if (version &gt; MAX_NFSPROT)
++ version = MAX_NFSPROT;
++ if (!prog)
++ prog = MOUNTPROG;
++ p.pm_prog = prog;
++ p.pm_vers = version;
++ p.pm_prot = proto;
++ p.pm_port = port;
++
++ server_addr-&gt;sin_port = PMAPPORT;
++ pmap = pmap_getmaps(server_addr);
++
++ while (pmap) {
++ if (pmap-&gt;pml_map.pm_prog != prog)
++ goto next;
++ if (!version &amp;&amp; p.pm_vers &gt; pmap-&gt;pml_map.pm_vers)
++ goto next;
++ if (version &gt; 2 &amp;&amp; pmap-&gt;pml_map.pm_vers != version)
++ goto next;
++ if (version &amp;&amp; version &lt;= 2 &amp;&amp; pmap-&gt;pml_map.pm_vers &gt; 2)
++ goto next;
++ if (pmap-&gt;pml_map.pm_vers &gt; MAX_NFSPROT ||
++ (proto &amp;&amp; p.pm_prot &amp;&amp; pmap-&gt;pml_map.pm_prot != proto) ||
++ (port &amp;&amp; pmap-&gt;pml_map.pm_port != port))
++ goto next;
++ memcpy(&amp;p, &amp;pmap-&gt;pml_map, sizeof(p));
++ next:
++ pmap = pmap-&gt;pml_next;
++ }
++ if (!p.pm_vers)
++ p.pm_vers = MOUNTVERS;
++ if (!p.pm_prot)
++ p.pm_prot = IPPROTO_TCP;
++ return &amp;p;
++}
++
++
++
++int nfsmount_prepare(const char *spec, char **mount_opts)
++{
++ char hostdir[1024];
++ CLIENT *mclient;
++ char *hostname, *dirname, *mounthost = NULL;
++ struct timeval total_timeout;
++ enum clnt_stat clnt_stat;
++ static struct nfs_mount_data data;
++ int nfs_mount_version;
++ int val;
++ struct sockaddr_in server_addr;
++ struct sockaddr_in mount_server_addr;
++ struct pmap *pm_mnt;
++ int msock, fsock;
++ struct timeval retry_timeout;
++ union {
++ struct fhstatus nfsv2;
++ struct mountres3 nfsv3;
++ } status;
++ char *s;
++ int port, mountport, proto, soft, intr;
++ int posix, nocto, noac, broken_suid, nolock;
++ int retry, tcp;
++ int mountprog, mountvers, nfsprog, nfsvers;
++ int retval;
++ time_t t;
++ time_t prevt;
++ time_t timeout;
++
++ nfs_mount_version = find_kernel_nfs_mount_version();
++
++ retval = -1;
++ msock = fsock = -1;
++ mclient = NULL;
++ if (strlen(spec) &gt;= sizeof(hostdir)) {
++ log_message(&quot;nfsmount: excessively long host:dir argument&quot;);
++ goto fail;
++ }
++ strcpy(hostdir, spec);
++ if ((s = strchr(hostdir, ':'))) {
++ hostname = hostdir;
++ dirname = s + 1;
++ *s = '\0';
++ } else {
++ log_message(&quot;nfsmount: directory to mount not in host:dir format&quot;);
++ goto fail;
++ }
++
++ server_addr.sin_family = AF_INET;
++#ifdef HAVE_inet_aton
++ if (!inet_aton(hostname, &amp;server_addr.sin_addr))
++#endif
++ {
++ if (mygethostbyname(hostname, &amp;server_addr.sin_addr)) {
++ log_message(&quot;nfsmount: can't get address for %s&quot;, hostname);
++ goto fail;
++ }
++ }
++
++ memcpy (&amp;mount_server_addr, &amp;server_addr, sizeof (mount_server_addr));
++
++
++
++ /* Set default options.
++ * rsize/wsize are set to 8192 to enable nfs install on
++ * old i586 machines
++ * timeo is filled in after we know whether it'll be TCP or UDP. */
++ memset(&amp;data, 0, sizeof(data));
++ data.rsize = 8192;
++ data.wsize = 8192;
++ data.retrans = 30;
++ data.acregmin = 3;
++ data.acregmax = 60;
++ data.acdirmin = 30;
++ data.acdirmax = 60;
++#if NFS_MOUNT_VERSION &gt;= 2
++ data.namlen = NAME_MAX;
++#endif
++
++ soft = 1;
++ intr = 0;
++ posix = 0;
++ nocto = 0;
++ nolock = 1;
++ broken_suid = 0;
++ noac = 0;
++ retry = 10000; /* 10000 minutes ~ 1 week */
++ tcp = 0;
++
++ mountprog = MOUNTPROG;
++ mountvers = 0;
++ port = 0;
++ mountport = 0;
++ nfsprog = NFS_PROGRAM;
++ nfsvers = 0;
++
++
++
++retry_mount:
++ proto = (tcp) ? IPPROTO_TCP : IPPROTO_UDP;
++
++ data.flags = (soft ? NFS_MOUNT_SOFT : 0)
++ | (intr ? NFS_MOUNT_INTR : 0)
++ | (posix ? NFS_MOUNT_POSIX : 0)
++ | (nocto ? NFS_MOUNT_NOCTO : 0)
++ | (noac ? NFS_MOUNT_NOAC : 0);
++#if NFS_MOUNT_VERSION &gt;= 2
++ if (nfs_mount_version &gt;= 2)
++ data.flags |= (tcp ? NFS_MOUNT_TCP : 0);
++#endif
++#if NFS_MOUNT_VERSION &gt;= 3
++ if (nfs_mount_version &gt;= 3)
++ data.flags |= (nolock ? NFS_MOUNT_NONLM : 0);
++#endif
++#if NFS_MOUNT_VERSION &gt;= 4
++ if (nfs_mount_version &gt;= 4)
++ data.flags |= (broken_suid ? NFS_MOUNT_BROKEN_SUID : 0);
++#endif
++ if (nfsvers &gt; MAX_NFSPROT) {
++ log_message(&quot;NFSv%d not supported!&quot;, nfsvers);
++ return 0;
++ }
++ if (mountvers &gt; MAX_NFSPROT) {
++ log_message(&quot;NFSv%d not supported!&quot;, nfsvers);
++ return 0;
++ }
++ if (nfsvers &amp;&amp; !mountvers)
++ mountvers = (nfsvers &lt; 3) ? 1 : nfsvers;
++ if (nfsvers &amp;&amp; nfsvers &lt; mountvers)
++ mountvers = nfsvers;
++
++ /* Adjust options if none specified */
++ if (!data.timeo)
++ data.timeo = tcp ? 70 : 7;
++
++#ifdef NFS_MOUNT_DEBUG
++ log_message(&quot;rsize = %d, wsize = %d, timeo = %d, retrans = %d&quot;,
++ data.rsize, data.wsize, data.timeo, data.retrans);
++ log_message(&quot;acreg (min, max) = (%d, %d), acdir (min, max) = (%d, %d)&quot;,
++ data.acregmin, data.acregmax, data.acdirmin, data.acdirmax);
++ log_message(&quot;port = %d, retry = %d, flags = %.8x&quot;,
++ port, retry, data.flags);
++ log_message(&quot;mountprog = %d, mountvers = %d, nfsprog = %d, nfsvers = %d&quot;,
++ mountprog, mountvers, nfsprog, nfsvers);
++ log_message(&quot;soft = %d, intr = %d, posix = %d, nocto = %d, noac = %d&quot;,
++ (data.flags &amp; NFS_MOUNT_SOFT) != 0,
++ (data.flags &amp; NFS_MOUNT_INTR) != 0,
++ (data.flags &amp; NFS_MOUNT_POSIX) != 0,
++ (data.flags &amp; NFS_MOUNT_NOCTO) != 0,
++ (data.flags &amp; NFS_MOUNT_NOAC) != 0);
++#if NFS_MOUNT_VERSION &gt;= 2
++ log_message(&quot;tcp = %d&quot;,
++ (data.flags &amp; NFS_MOUNT_TCP) != 0);
++#endif
++#endif
++
++ data.version = nfs_mount_version;
++ *mount_opts = (char *) &amp;data;
++
++
++ /* create mount deamon client */
++ /* See if the nfs host = mount host. */
++ if (mounthost) {
++ if (mounthost[0] &gt;= '0' &amp;&amp; mounthost[0] &lt;= '9') {
++ mount_server_addr.sin_family = AF_INET;
++ mount_server_addr.sin_addr.s_addr = inet_addr(hostname);
++ } else {
++ if (mygethostbyname(mounthost, &amp;mount_server_addr.sin_addr)) {
++ log_message(&quot;nfsmount: can't get address for %s&quot;, mounthost);
++ goto fail;
++ }
++ }
++ }
++
++ /*
++ * The following loop implements the mount retries. On the first
++ * call, &quot;running_bg&quot; is 0. When the mount times out, and the
++ * &quot;bg&quot; option is set, the exit status EX_BG will be returned.
++ * For a backgrounded mount, there will be a second call by the
++ * child process with &quot;running_bg&quot; set to 1.
++ *
++ * The case where the mount point is not present and the &quot;bg&quot;
++ * option is set, is treated as a timeout. This is done to
++ * support nested mounts.
++ *
++ * The &quot;retry&quot; count specified by the user is the number of
++ * minutes to retry before giving up.
++ *
++ * Only the first error message will be displayed.
++ */
++ retry_timeout.tv_sec = 3;
++ retry_timeout.tv_usec = 0;
++ total_timeout.tv_sec = 20;
++ total_timeout.tv_usec = 0;
++ timeout = time(NULL) + 60 * retry;
++ prevt = 0;
++ t = 30;
++ val = 1;
++
++
++ /* be careful not to use too many CPU cycles */
++ if (t - prevt &lt; 30)
++ sleep(30);
++
++ pm_mnt = get_mountport(&amp;mount_server_addr,
++ mountprog,
++ mountvers,
++ proto,
++ mountport,
++ nfs_mount_version);
++
++ /* contact the mount daemon via TCP */
++ mount_server_addr.sin_port = htons(pm_mnt-&gt;pm_port);
++ msock = RPC_ANYSOCK;
++
++ switch (pm_mnt-&gt;pm_prot) {
++ case IPPROTO_UDP:
++ mclient = clntudp_create(&amp;mount_server_addr,
++ pm_mnt-&gt;pm_prog,
++ pm_mnt-&gt;pm_vers,
++ retry_timeout,
++ &amp;msock);
++ if (mclient)
++ break;
++ mount_server_addr.sin_port =
++ htons(pm_mnt-&gt;pm_port);
++ msock = RPC_ANYSOCK;
++ case IPPROTO_TCP:
++ mclient = clnttcp_create(&amp;mount_server_addr,
++ pm_mnt-&gt;pm_prog,
++ pm_mnt-&gt;pm_vers,
++ &amp;msock, 0, 0);
++ break;
++ default:
++ mclient = 0;
++ }
++
++ if (mclient) {
++ /* try to mount hostname:dirname */
++ mclient-&gt;cl_auth = authunix_create_default();
++
++ /* make pointers in xdr_mountres3 NULL so
++ * that xdr_array allocates memory for us
++ */
++ memset(&amp;status, 0, sizeof(status));
++
++ log_message(&quot;nfsmount: doing client call in nfs version: %ld&quot;, pm_mnt-&gt;pm_vers);
++ if (pm_mnt-&gt;pm_vers == 3)
++ clnt_stat = clnt_call(mclient,
++ MOUNTPROC3_MNT,
++ (xdrproc_t) xdr_dirpath,
++ (caddr_t) &amp;dirname,
++ (xdrproc_t) xdr_mountres3,
++ (caddr_t) &amp;status,
++ total_timeout);
++ else
++ clnt_stat = clnt_call(mclient,
++ MOUNTPROC_MNT,
++ (xdrproc_t) xdr_dirpath,
++ (caddr_t) &amp;dirname,
++ (xdrproc_t) xdr_fhstatus,
++ (caddr_t) &amp;status,
++ total_timeout);
++
++ if (clnt_stat == RPC_SUCCESS)
++ goto succeeded;
++
++ if (prevt == 0)
++ log_message(&quot;could not call server: probably protocol or version error&quot;);
++ auth_destroy(mclient-&gt;cl_auth);
++ clnt_destroy(mclient);
++ mclient = 0;
++ close(msock);
++ } else {
++ log_message(&quot;could not create rpc client: host probably not found or NFS server is down&quot;);
++ }
++ prevt = t;
++
++ goto fail;
++
++ succeeded:
++ nfsvers = (pm_mnt-&gt;pm_vers &lt; 2) ? 2 : pm_mnt-&gt;pm_vers;
++
++ if (nfsvers == 2) {
++ if (status.nfsv2.fhs_status != 0) {
++ log_message(&quot;nfsmount: %s:%s failed, reason given by server: %s&quot;,
++ hostname, dirname, nfs_strerror(status.nfsv2.fhs_status));
++ goto fail;
++ }
++ memcpy(data.root.data,
++ (char *) status.nfsv2.fhstatus_u.fhs_fhandle,
++ NFS_FHSIZE);
++#if NFS_MOUNT_VERSION &gt;= 4
++ data.root.size = NFS_FHSIZE;
++ memcpy(data.old_root.data,
++ (char *) status.nfsv2.fhstatus_u.fhs_fhandle,
++ NFS_FHSIZE);
++#endif
++ } else {
++#if NFS_MOUNT_VERSION &gt;= 4
++ fhandle3 *fhandle;
++ if (status.nfsv3.fhs_status != 0) {
++ log_message(&quot;nfsmount: %s:%s failed, reason given by server: %s&quot;,
++ hostname, dirname, nfs_strerror(status.nfsv3.fhs_status));
++ goto fail;
++ }
++ fhandle = &amp;status.nfsv3.mountres3_u.mountinfo.fhandle;
++ memset(data.old_root.data, 0, NFS_FHSIZE);
++ memset(&amp;data.root, 0, sizeof(data.root));
++ data.root.size = fhandle-&gt;fhandle3_len;
++ memcpy(data.root.data,
++ (char *) fhandle-&gt;fhandle3_val,
++ fhandle-&gt;fhandle3_len);
++
++ data.flags |= NFS_MOUNT_VER3;
++#endif
++ }
++
++ /* create nfs socket for kernel */
++
++ if (tcp) {
++ if (nfs_mount_version &lt; 3) {
++ log_message(&quot;NFS over TCP is not supported.&quot;);
++ goto fail;
++ }
++ fsock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
++ } else
++ fsock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
++ if (fsock &lt; 0) {
++ log_perror(&quot;nfs socket&quot;);
++ goto fail;
++ }
++ if (bindresvport(fsock, 0) &lt; 0) {
++ log_perror(&quot;nfs bindresvport&quot;);
++ goto fail;
++ }
++ if (port == 0) {
++ server_addr.sin_port = PMAPPORT;
++ port = pmap_getport(&amp;server_addr, nfsprog, nfsvers,
++ tcp ? IPPROTO_TCP : IPPROTO_UDP);
++#if 1
++ /* Here we check to see if user is mounting with the
++ * tcp option. If so, and if the portmap returns a
++ * '0' for port (service unavailable), we then notify
++ * the user, and retry with udp.
++ */
++ if (port == 0 &amp;&amp; tcp == 1) {
++ log_message(&quot;NFS server reported TCP not available, retrying with UDP...&quot;);
++ tcp = 0;
++ goto retry_mount;
++ }
++#endif
++
++ if (port == 0)
++ port = NFS_PORT;
++#ifdef NFS_MOUNT_DEBUG
++ else
++ log_message(&quot;used portmapper to find NFS port&quot;);
++#endif
++ }
++#ifdef NFS_MOUNT_DEBUG
++ log_message(&quot;using port %d for nfs deamon&quot;, port);
++#endif
++ server_addr.sin_port = htons(port);
++ /*
++ * connect() the socket for kernels 1.3.10 and below only,
++ * to avoid problems with multihomed hosts.
++ * --Swen
++ */
++ if (linux_version_code() &lt;= 66314
++ &amp;&amp; connect(fsock, (struct sockaddr *) &amp;server_addr,
++ sizeof (server_addr)) &lt; 0) {
++ log_perror(&quot;nfs connect&quot;);
++ goto fail;
++ }
++
++ /* prepare data structure for kernel */
++
++ data.fd = fsock;
++ memcpy((char *) &amp;data.addr, (char *) &amp;server_addr, sizeof(data.addr));
++ strncpy(data.hostname, hostname, sizeof(data.hostname));
++
++ /* clean up */
++
++ auth_destroy(mclient-&gt;cl_auth);
++ clnt_destroy(mclient);
++ close(msock);
++ return 0;
++
++ /* abort */
++
++ fail:
++ if (msock != -1) {
++ if (mclient) {
++ auth_destroy(mclient-&gt;cl_auth);
++ clnt_destroy(mclient);
++ }
++ close(msock);
++ }
++ if (fsock != -1)
++ close(fsock);
++ return retval;
++}
++
++/*
++ * We need to translate between nfs status return values and
++ * the local errno values which may not be the same.
++ *
++ * Andreas Schwab &lt;schwab@LS5.informatik.uni-dortmund.de&gt;: change errno:
++ * &quot;after #include &lt;errno.h&gt; the symbol errno is reserved for any use,
++ * it cannot even be used as a struct tag or field name&quot;.
++ */
++
++#ifndef EDQUOT
++#define EDQUOT ENOSPC
++#endif
++
++static struct {
++ enum nfsstat stat;
++ int errnum;
++} nfs_errtbl[] = {
++ { NFS_OK, 0 },
++ { NFSERR_PERM, EPERM },
++ { NFSERR_NOENT, ENOENT },
++ { NFSERR_IO, EIO },
++ { NFSERR_NXIO, ENXIO },
++ { NFSERR_ACCES, EACCES },
++ { NFSERR_EXIST, EEXIST },
++ { NFSERR_NODEV, ENODEV },
++ { NFSERR_NOTDIR, ENOTDIR },
++ { NFSERR_ISDIR, EISDIR },
++#ifdef NFSERR_INVAL
++ { NFSERR_INVAL, EINVAL }, /* that Sun forgot */
++#endif
++ { NFSERR_FBIG, EFBIG },
++ { NFSERR_NOSPC, ENOSPC },
++ { NFSERR_ROFS, EROFS },
++ { NFSERR_NAMETOOLONG, ENAMETOOLONG },
++ { NFSERR_NOTEMPTY, ENOTEMPTY },
++ { NFSERR_DQUOT, EDQUOT },
++ { NFSERR_STALE, ESTALE },
++#ifdef EWFLUSH
++ { NFSERR_WFLUSH, EWFLUSH },
++#endif
++ /* Throw in some NFSv3 values for even more fun (HP returns these) */
++ { 71, EREMOTE },
++
++ { -1, EIO }
++};
++
++static char *nfs_strerror(int stat)
++{
++ int i;
++ static char buf[256];
++
++ for (i = 0; nfs_errtbl[i].stat != (unsigned)-1; i++) {
++ if (nfs_errtbl[i].stat == (unsigned)stat)
++ return strerror(nfs_errtbl[i].errnum);
++ }
++ sprintf(buf, &quot;unknown nfs status return value: %d&quot;, stat);
++ return buf;
++}
++
+
+
+Property changes on: drakx/trunk/mdk-stage1/nfsmount.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1nfsmounth">Added: drakx/trunk/mdk-stage1/nfsmount.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/nfsmount.h (rev 0)
++++ drakx/trunk/mdk-stage1/nfsmount.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,331 @@
++/*
++ * Please do not edit this file.
++ * It was generated using rpcgen.
++ */
++
++#ifndef _NFSMOUNT_H_RPCGEN
++#define _NFSMOUNT_H_RPCGEN
++
++#include &lt;rpc/rpc.h&gt;
++
++int nfsmount_prepare(const char *spec, char **mount_opts);
++
++
++#ifdef __cplusplus
++extern &quot;C&quot; {
++#endif
++
++/*
++ * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
++ * unrestricted use provided that this legend is included on all tape
++ * media and as a part of the software program in whole or part. Users
++ * may copy or modify Sun RPC without charge, but are not authorized
++ * to license or distribute it to anyone else except as part of a product or
++ * program developed by the user or with the express written consent of
++ * Sun Microsystems, Inc.
++ *
++ * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
++ * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
++ * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
++ *
++ * Sun RPC is provided with no support and without any obligation on the
++ * part of Sun Microsystems, Inc. to assist in its use, correction,
++ * modification or enhancement.
++ *
++ * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
++ * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
++ * OR ANY PART THEREOF.
++ *
++ * In no event will Sun Microsystems, Inc. be liable for any lost revenue
++ * or profits or other special, indirect and consequential damages, even if
++ * Sun has been advised of the possibility of such damages.
++ *
++ * Sun Microsystems, Inc.
++ * 2550 Garcia Avenue
++ * Mountain View, California 94043
++ */
++/*
++ * Copyright (c) 1985, 1990 by Sun Microsystems, Inc.
++ */
++
++/* from @(#)mount.x 1.3 91/03/11 TIRPC 1.0 */
++#ifndef _rpcsvc_mount_h
++#define _rpcsvc_mount_h
++#include &lt;asm/types.h&gt;
++#define MNTPATHLEN 1024
++#define MNTNAMLEN 255
++#define FHSIZE 32
++#define FHSIZE3 64
++
++typedef char fhandle[FHSIZE];
++
++typedef struct {
++ u_int fhandle3_len;
++ char *fhandle3_val;
++} fhandle3;
++
++enum mountstat3 {
++ MNT_OK = 0,
++ MNT3ERR_PERM = 1,
++ MNT3ERR_NOENT = 2,
++ MNT3ERR_IO = 5,
++ MNT3ERR_ACCES = 13,
++ MNT3ERR_NOTDIR = 20,
++ MNT3ERR_INVAL = 22,
++ MNT3ERR_NAMETOOLONG = 63,
++ MNT3ERR_NOTSUPP = 10004,
++ MNT3ERR_SERVERFAULT = 10006,
++};
++typedef enum mountstat3 mountstat3;
++
++struct fhstatus {
++ u_int fhs_status;
++ union {
++ fhandle fhs_fhandle;
++ } fhstatus_u;
++};
++typedef struct fhstatus fhstatus;
++
++struct mountres3_ok {
++ fhandle3 fhandle;
++ struct {
++ u_int auth_flavours_len;
++ int *auth_flavours_val;
++ } auth_flavours;
++};
++typedef struct mountres3_ok mountres3_ok;
++
++struct mountres3 {
++ mountstat3 fhs_status;
++ union {
++ mountres3_ok mountinfo;
++ } mountres3_u;
++};
++typedef struct mountres3 mountres3;
++
++typedef char *dirpath;
++
++typedef char *name;
++
++typedef struct mountbody *mountlist;
++
++struct mountbody {
++ name ml_hostname;
++ dirpath ml_directory;
++ mountlist ml_next;
++};
++typedef struct mountbody mountbody;
++
++typedef struct groupnode *groups;
++
++struct groupnode {
++ name gr_name;
++ groups gr_next;
++};
++typedef struct groupnode groupnode;
++
++typedef struct exportnode *exports;
++
++struct exportnode {
++ dirpath ex_dir;
++ groups ex_groups;
++ exports ex_next;
++};
++typedef struct exportnode exportnode;
++
++struct ppathcnf {
++ int pc_link_max;
++ short pc_max_canon;
++ short pc_max_input;
++ short pc_name_max;
++ short pc_path_max;
++ short pc_pipe_buf;
++ u_char pc_vdisable;
++ char pc_xxx;
++ short pc_mask[2];
++};
++typedef struct ppathcnf ppathcnf;
++#endif /*!_rpcsvc_mount_h*/
++
++#define MOUNTPROG 100005
++#define MOUNTVERS 1
++
++#if defined(__STDC__) || defined(__cplusplus)
++#define MOUNTPROC_NULL 0
++extern void * mountproc_null_1(void *, CLIENT *);
++extern void * mountproc_null_1_svc(void *, struct svc_req *);
++#define MOUNTPROC_MNT 1
++extern fhstatus * mountproc_mnt_1(dirpath *, CLIENT *);
++extern fhstatus * mountproc_mnt_1_svc(dirpath *, struct svc_req *);
++#define MOUNTPROC_DUMP 2
++extern mountlist * mountproc_dump_1(void *, CLIENT *);
++extern mountlist * mountproc_dump_1_svc(void *, struct svc_req *);
++#define MOUNTPROC_UMNT 3
++extern void * mountproc_umnt_1(dirpath *, CLIENT *);
++extern void * mountproc_umnt_1_svc(dirpath *, struct svc_req *);
++#define MOUNTPROC_UMNTALL 4
++extern void * mountproc_umntall_1(void *, CLIENT *);
++extern void * mountproc_umntall_1_svc(void *, struct svc_req *);
++#define MOUNTPROC_EXPORT 5
++extern exports * mountproc_export_1(void *, CLIENT *);
++extern exports * mountproc_export_1_svc(void *, struct svc_req *);
++#define MOUNTPROC_EXPORTALL 6
++extern exports * mountproc_exportall_1(void *, CLIENT *);
++extern exports * mountproc_exportall_1_svc(void *, struct svc_req *);
++extern int mountprog_1_freeresult (SVCXPRT *, xdrproc_t, caddr_t);
++
++#else /* K&amp;R C */
++#define MOUNTPROC_NULL 0
++extern void * mountproc_null_1();
++extern void * mountproc_null_1_svc();
++#define MOUNTPROC_MNT 1
++extern fhstatus * mountproc_mnt_1();
++extern fhstatus * mountproc_mnt_1_svc();
++#define MOUNTPROC_DUMP 2
++extern mountlist * mountproc_dump_1();
++extern mountlist * mountproc_dump_1_svc();
++#define MOUNTPROC_UMNT 3
++extern void * mountproc_umnt_1();
++extern void * mountproc_umnt_1_svc();
++#define MOUNTPROC_UMNTALL 4
++extern void * mountproc_umntall_1();
++extern void * mountproc_umntall_1_svc();
++#define MOUNTPROC_EXPORT 5
++extern exports * mountproc_export_1();
++extern exports * mountproc_export_1_svc();
++#define MOUNTPROC_EXPORTALL 6
++extern exports * mountproc_exportall_1();
++extern exports * mountproc_exportall_1_svc();
++extern int mountprog_1_freeresult ();
++#endif /* K&amp;R C */
++#define MOUNTVERS_POSIX 2
++
++#if defined(__STDC__) || defined(__cplusplus)
++extern void * mountproc_null_2(void *, CLIENT *);
++extern void * mountproc_null_2_svc(void *, struct svc_req *);
++extern fhstatus * mountproc_mnt_2(dirpath *, CLIENT *);
++extern fhstatus * mountproc_mnt_2_svc(dirpath *, struct svc_req *);
++extern mountlist * mountproc_dump_2(void *, CLIENT *);
++extern mountlist * mountproc_dump_2_svc(void *, struct svc_req *);
++extern void * mountproc_umnt_2(dirpath *, CLIENT *);
++extern void * mountproc_umnt_2_svc(dirpath *, struct svc_req *);
++extern void * mountproc_umntall_2(void *, CLIENT *);
++extern void * mountproc_umntall_2_svc(void *, struct svc_req *);
++extern exports * mountproc_export_2(void *, CLIENT *);
++extern exports * mountproc_export_2_svc(void *, struct svc_req *);
++extern exports * mountproc_exportall_2(void *, CLIENT *);
++extern exports * mountproc_exportall_2_svc(void *, struct svc_req *);
++#define MOUNTPROC_PATHCONF 7
++extern ppathcnf * mountproc_pathconf_2(dirpath *, CLIENT *);
++extern ppathcnf * mountproc_pathconf_2_svc(dirpath *, struct svc_req *);
++extern int mountprog_2_freeresult (SVCXPRT *, xdrproc_t, caddr_t);
++
++#else /* K&amp;R C */
++extern void * mountproc_null_2();
++extern void * mountproc_null_2_svc();
++extern fhstatus * mountproc_mnt_2();
++extern fhstatus * mountproc_mnt_2_svc();
++extern mountlist * mountproc_dump_2();
++extern mountlist * mountproc_dump_2_svc();
++extern void * mountproc_umnt_2();
++extern void * mountproc_umnt_2_svc();
++extern void * mountproc_umntall_2();
++extern void * mountproc_umntall_2_svc();
++extern exports * mountproc_export_2();
++extern exports * mountproc_export_2_svc();
++extern exports * mountproc_exportall_2();
++extern exports * mountproc_exportall_2_svc();
++#define MOUNTPROC_PATHCONF 7
++extern ppathcnf * mountproc_pathconf_2();
++extern ppathcnf * mountproc_pathconf_2_svc();
++extern int mountprog_2_freeresult ();
++#endif /* K&amp;R C */
++#define MOUNT_V3 3
++
++#if defined(__STDC__) || defined(__cplusplus)
++#define MOUNTPROC3_NULL 0
++extern void * mountproc3_null_3(void *, CLIENT *);
++extern void * mountproc3_null_3_svc(void *, struct svc_req *);
++#define MOUNTPROC3_MNT 1
++extern mountres3 * mountproc3_mnt_3(dirpath *, CLIENT *);
++extern mountres3 * mountproc3_mnt_3_svc(dirpath *, struct svc_req *);
++#define MOUNTPROC3_DUMP 2
++extern mountlist * mountproc3_dump_3(void *, CLIENT *);
++extern mountlist * mountproc3_dump_3_svc(void *, struct svc_req *);
++#define MOUNTPROC3_UMNT 3
++extern void * mountproc3_umnt_3(dirpath *, CLIENT *);
++extern void * mountproc3_umnt_3_svc(dirpath *, struct svc_req *);
++#define MOUNTPROC3_UMNTALL 4
++extern void * mountproc3_umntall_3(void *, CLIENT *);
++extern void * mountproc3_umntall_3_svc(void *, struct svc_req *);
++#define MOUNTPROC3_EXPORT 5
++extern exports * mountproc3_export_3(void *, CLIENT *);
++extern exports * mountproc3_export_3_svc(void *, struct svc_req *);
++extern int mountprog_3_freeresult (SVCXPRT *, xdrproc_t, caddr_t);
++
++#else /* K&amp;R C */
++#define MOUNTPROC3_NULL 0
++extern void * mountproc3_null_3();
++extern void * mountproc3_null_3_svc();
++#define MOUNTPROC3_MNT 1
++extern mountres3 * mountproc3_mnt_3();
++extern mountres3 * mountproc3_mnt_3_svc();
++#define MOUNTPROC3_DUMP 2
++extern mountlist * mountproc3_dump_3();
++extern mountlist * mountproc3_dump_3_svc();
++#define MOUNTPROC3_UMNT 3
++extern void * mountproc3_umnt_3();
++extern void * mountproc3_umnt_3_svc();
++#define MOUNTPROC3_UMNTALL 4
++extern void * mountproc3_umntall_3();
++extern void * mountproc3_umntall_3_svc();
++#define MOUNTPROC3_EXPORT 5
++extern exports * mountproc3_export_3();
++extern exports * mountproc3_export_3_svc();
++extern int mountprog_3_freeresult ();
++#endif /* K&amp;R C */
++
++/* the xdr functions */
++
++#if defined(__STDC__) || defined(__cplusplus)
++extern bool_t xdr_fhandle (XDR *, fhandle);
++extern bool_t xdr_fhandle3 (XDR *, fhandle3*);
++extern bool_t xdr_mountstat3 (XDR *, mountstat3*);
++extern bool_t xdr_fhstatus (XDR *, fhstatus*);
++extern bool_t xdr_mountres3_ok (XDR *, mountres3_ok*);
++extern bool_t xdr_mountres3 (XDR *, mountres3*);
++extern bool_t xdr_dirpath (XDR *, dirpath*);
++extern bool_t xdr_name (XDR *, name*);
++extern bool_t xdr_mountlist (XDR *, mountlist*);
++extern bool_t xdr_mountbody (XDR *, mountbody*);
++extern bool_t xdr_groups (XDR *, groups*);
++extern bool_t xdr_groupnode (XDR *, groupnode*);
++extern bool_t xdr_exports (XDR *, exports*);
++extern bool_t xdr_exportnode (XDR *, exportnode*);
++extern bool_t xdr_ppathcnf (XDR *, ppathcnf*);
++
++#else /* K&amp;R C */
++extern bool_t xdr_fhandle ();
++extern bool_t xdr_fhandle3 ();
++extern bool_t xdr_mountstat3 ();
++extern bool_t xdr_fhstatus ();
++extern bool_t xdr_mountres3_ok ();
++extern bool_t xdr_mountres3 ();
++extern bool_t xdr_dirpath ();
++extern bool_t xdr_name ();
++extern bool_t xdr_mountlist ();
++extern bool_t xdr_mountbody ();
++extern bool_t xdr_groups ();
++extern bool_t xdr_groupnode ();
++extern bool_t xdr_exports ();
++extern bool_t xdr_exportnode ();
++extern bool_t xdr_ppathcnf ();
++
++#endif /* K&amp;R C */
++
++#ifdef __cplusplus
++}
++#endif
++
++#endif /* !_NFSMOUNT_H_RPCGEN */
++
+
+
+Property changes on: drakx/trunk/mdk-stage1/nfsmount.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1paramsc">Added: drakx/trunk/mdk-stage1/params.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/params.c (rev 0)
++++ drakx/trunk/mdk-stage1/params.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,177 @@
++/*
++ * Guillaume Cottenceau (gc@mandriva.com)
++ *
++ * Copyright 2000 Mandriva
++ *
++ * This software may be freely redistributed under the terms of the GNU
++ * public license.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++#include &lt;stdlib.h&gt;
++#include &lt;string.h&gt;
++#include &lt;unistd.h&gt;
++#include &lt;sys/types.h&gt;
++#include &lt;sys/stat.h&gt;
++#include &lt;fcntl.h&gt;
++#include &quot;params.h&quot;
++#include &quot;utils.h&quot;
++#include &quot;automatic.h&quot;
++#include &quot;log.h&quot;
++#include &quot;bootsplash.h&quot;
++
++static struct param_elem params[50];
++static int param_number = 0;
++
++void process_cmdline(void)
++{
++ char buf[512];
++ int size, i;
++ int fd = -1;
++
++ if (IS_TESTING) {
++ log_message(&quot;TESTING: opening cmdline... &quot;);
++
++ if ((fd = open(&quot;cmdline&quot;, O_RDONLY)) == -1)
++ log_message(&quot;TESTING: could not open cmdline&quot;);
++ }
++
++ if (fd == -1) {
++ log_message(&quot;opening /proc/cmdline... &quot;);
++
++ if ((fd = open(&quot;/proc/cmdline&quot;, O_RDONLY)) == -1)
++ fatal_error(&quot;could not open /proc/cmdline&quot;);
++ }
++
++ size = read(fd, buf, sizeof(buf));
++ buf[size-1] = '\0'; // -1 to eat the \n
++ close(fd);
++
++ log_message(&quot;\t%s&quot;, buf);
++
++ i = 0;
++ while (buf[i] != '\0') {
++ char *name, *value = NULL;
++ int j = i;
++ while (buf[i] != ' ' &amp;&amp; buf[i] != '=' &amp;&amp; buf[i] != '\0')
++ i++;
++ if (i == j) {
++ i++;
++ continue;
++ }
++ name = memdup(&amp;buf[j], i-j + 1);
++ name[i-j] = '\0';
++
++ if (buf[i] == '=') {
++ int k = i+1;
++ i++;
++ while (buf[i] != ' ' &amp;&amp; buf[i] != '\0')
++ i++;
++ value = memdup(&amp;buf[k], i-k + 1);
++ value[i-k] = '\0';
++ }
++
++ params[param_number].name = name;
++ params[param_number].value = value;
++ param_number++;
++ if (!strcmp(name, &quot;changedisk&quot;)) set_param(MODE_CHANGEDISK);
++ if (!strcmp(name, &quot;updatemodules&quot;) ||
++ !strcmp(name, &quot;thirdparty&quot;)) set_param(MODE_THIRDPARTY);
++ if (!strcmp(name, &quot;rescue&quot;) ||
++ !strcmp(name, &quot;kamethod&quot;)) set_param(MODE_RESCUE);
++ if (!strcmp(name, &quot;rescue&quot;)) set_param(MODE_RESCUE);
++ if (!strcmp(name, &quot;keepmounted&quot;)) set_param(MODE_KEEP_MOUNTED);
++ if (!strcmp(name, &quot;noauto&quot;)) set_param(MODE_NOAUTO);
++ if (!strcmp(name, &quot;netauto&quot;)) set_param(MODE_NETAUTO);
++ if (!strcmp(name, &quot;debugstage1&quot;)) set_param(MODE_DEBUGSTAGE1);
++ if (!strcmp(name, &quot;automatic&quot;)) {
++ set_param(MODE_AUTOMATIC);
++ grab_automatic_params(value);
++ }
++ if (buf[i] == '\0')
++ break;
++ i++;
++ }
++
++ if (IS_AUTOMATIC &amp;&amp; strcmp(get_auto_value(&quot;thirdparty&quot;), &quot;&quot;)) {
++ set_param(MODE_THIRDPARTY);
++ }
++
++ log_message(&quot;\tgot %d args&quot;, param_number);
++}
++
++
++int stage1_mode = 0;
++
++int get_param(int i)
++{
++#ifdef SPAWN_INTERACTIVE
++ static int fd = 0;
++ char buf[5000];
++ char * ptr;
++ int nb;
++
++ if (fd &lt;= 0) {
++ fd = open(interactive_fifo, O_RDONLY);
++ if (fd == -1)
++ return (stage1_mode &amp; i);
++ fcntl(fd, F_SETFL, O_NONBLOCK);
++ }
++
++ if (fd &gt; 0) {
++ if ((nb = read(fd, buf, sizeof(buf))) &gt; 0) {
++ buf[nb] = '\0';
++ ptr = buf;
++ while ((ptr = strstr(ptr, &quot;+ &quot;))) {
++ if (!strncmp(ptr+2, &quot;rescue&quot;, 6)) set_param(MODE_RESCUE);
++ ptr++;
++ }
++ ptr = buf;
++ while ((ptr = strstr(ptr, &quot;- &quot;))) {
++ if (!strncmp(ptr+2, &quot;rescue&quot;, 6)) unset_param(MODE_RESCUE);
++ ptr++;
++ }
++ }
++ }
++#endif
++
++ return (stage1_mode &amp; i);
++}
++
++char * get_param_valued(char *param_name)
++{
++ int i;
++ for (i = 0; i &lt; param_number ; i++)
++ if (!strcmp(params[i].name, param_name))
++ return params[i].value;
++
++ return NULL;
++}
++
++void set_param_valued(char *param_name, char *param_value)
++{
++ params[param_number].name = param_name;
++ params[param_number].value = param_value;
++ param_number++;
++}
++
++void set_param(int i)
++{
++ stage1_mode |= i;
++}
++
++void unset_param(int i)
++{
++ stage1_mode &amp;= ~i;
++}
++
++void unset_automatic(void)
++{
++ log_message(&quot;unsetting automatic&quot;);
++ unset_param(MODE_AUTOMATIC);
++ exit_bootsplash();
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/params.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1paramsh">Added: drakx/trunk/mdk-stage1/params.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/params.h (rev 0)
++++ drakx/trunk/mdk-stage1/params.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,31 @@
++/*
++ * Guillaume Cottenceau (gc@mandriva.com)
++ *
++ * Copyright 2000 Mandriva
++ *
++ * This software may be freely redistributed under the terms of the GNU
++ * public license.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++#ifndef _PARAMS_H_
++#define _PARAMS_H_
++
++void process_cmdline(void);
++int get_param(int i);
++char * get_param_valued(char *param_name);
++void set_param(int i);
++void unset_param(int i);
++void unset_automatic(void);
++
++struct param_elem
++{
++ char * name;
++ char * value;
++};
++
++#endif
+
+
+Property changes on: drakx/trunk/mdk-stage1/params.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1partitionc">Added: drakx/trunk/mdk-stage1/partition.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/partition.c (rev 0)
++++ drakx/trunk/mdk-stage1/partition.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,170 @@
++/*
++ * Guillaume Cottenceau (gc@mandriva.com)
++ *
++ * Copyright 2000 Mandriva
++ *
++ * This software may be freely redistributed under the terms of the GNU
++ * public license.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++/*
++ * Portions from Erik Troan (ewt@redhat.com)
++ *
++ * Copyright 1996 Red Hat Software
++ *
++ */
++
++#include &lt;stdlib.h&gt;
++#include &lt;unistd.h&gt;
++#include &lt;stdio.h&gt;
++#include &lt;string.h&gt;
++#include &lt;sys/mount.h&gt;
++#include &lt;sys/stat.h&gt;
++#include &lt;fcntl.h&gt;
++#include &lt;string.h&gt;
++#include &lt;libgen.h&gt;
++#include &quot;stage1.h&quot;
++#include &quot;frontend.h&quot;
++#include &quot;modules.h&quot;
++#include &quot;probing.h&quot;
++#include &quot;log.h&quot;
++#include &quot;mount.h&quot;
++#include &quot;automatic.h&quot;
++
++#include &quot;disk.h&quot;
++#include &quot;partition.h&quot;
++
++struct partition_detection_anchor {
++ off_t offset;
++ const char * anchor;
++};
++
++static int seek_and_compare(int fd, struct partition_detection_anchor anch)
++{
++ char buf[500];
++ size_t count;
++ if (lseek(fd, anch.offset, SEEK_SET) == (off_t)-1) {
++ log_perror(&quot;seek failed&quot;);
++ return -1;
++ }
++ count = read(fd, buf, strlen(anch.anchor));
++ if (count != strlen(anch.anchor)) {
++ log_perror(&quot;read failed&quot;);
++ return -1;
++ }
++ buf[count] = '\0';
++ if (strcmp(anch.anchor, buf))
++ return 1;
++ return 0;
++}
++
++static const char * detect_partition_type(char * dev)
++{
++ struct partition_detection_info {
++ const char * name;
++ struct partition_detection_anchor anchor0;
++ struct partition_detection_anchor anchor1;
++ struct partition_detection_anchor anchor2;
++ };
++ struct partition_detection_info partitions_signatures[] = {
++ { &quot;Linux Swap&quot;, { 4086, &quot;SWAP-SPACE&quot; }, { 0, NULL }, { 0, NULL } },
++ { &quot;Linux Swap&quot;, { 4086, &quot;SWAPSPACE2&quot; }, { 0, NULL }, { 0, NULL } },
++ { &quot;Ext2&quot;, { 0x438, &quot;\x53\xEF&quot; }, { 0, NULL }, { 0, NULL } },
++ { &quot;ReiserFS&quot;, { 0x10034, &quot;ReIsErFs&quot; }, { 0, NULL }, { 0, NULL } },
++ { &quot;ReiserFS&quot;, { 0x10034, &quot;ReIsEr2Fs&quot; }, { 0, NULL }, { 0, NULL } },
++ { &quot;XFS&quot;, { 0, &quot;XFSB&quot; }, { 0x200, &quot;XAGF&quot; }, { 0x400, &quot;XAGI&quot; } },
++ { &quot;JFS&quot;, { 0x8000, &quot;JFS1&quot; }, { 0, NULL }, { 0, NULL } },
++ { &quot;NTFS&quot;, { 0x1FE, &quot;\x55\xAA&quot; }, { 0x3, &quot;NTFS&quot; }, { 0, NULL } },
++ { &quot;FAT32&quot;, { 0x1FE, &quot;\x55\xAA&quot; }, { 0x52, &quot;FAT32&quot; }, { 0, NULL } },
++ { &quot;FAT&quot;, { 0x1FE, &quot;\x55\xAA&quot; }, { 0x36, &quot;FAT&quot; }, { 0, NULL } },
++ { &quot;Linux LVM&quot;, { 0, &quot;HM\1\0&quot; }, { 0, NULL }, { 0, NULL } }
++ };
++ int partitions_signatures_nb = sizeof(partitions_signatures) / sizeof(struct partition_detection_info);
++ int i;
++ int fd;
++ const char *part_type = NULL;
++
++ char device_fullname[50];
++ strcpy(device_fullname, &quot;/dev/&quot;);
++ strcat(device_fullname, dev);
++
++ if (ensure_dev_exists(device_fullname))
++ return NULL;
++ log_message(&quot;guessing type of %s&quot;, device_fullname);
++
++ if ((fd = open(device_fullname, O_RDONLY, 0)) &lt; 0) {
++ log_perror(&quot;open&quot;);
++ return NULL;
++ }
++
++ for (i=0; i&lt;partitions_signatures_nb; i++) {
++ int results = seek_and_compare(fd, partitions_signatures[i].anchor0);
++ if (results == -1)
++ goto detect_partition_type_end;
++ if (results == 1)
++ continue;
++ if (!partitions_signatures[i].anchor1.anchor)
++ goto detect_partition_found_it;
++
++ results = seek_and_compare(fd, partitions_signatures[i].anchor1);
++ if (results == -1)
++ goto detect_partition_type_end;
++ if (results == 1)
++ continue;
++ if (!partitions_signatures[i].anchor2.anchor)
++ goto detect_partition_found_it;
++
++ results = seek_and_compare(fd, partitions_signatures[i].anchor2);
++ if (results == -1)
++ goto detect_partition_type_end;
++ if (results == 1)
++ continue;
++
++ detect_partition_found_it:
++ part_type = partitions_signatures[i].name;
++ break;
++ }
++
++ detect_partition_type_end:
++ close(fd);
++ return part_type;
++}
++
++int list_partitions(char * dev_name, char ** parts, char ** comments)
++{
++ int major, minor, blocks;
++ char name[100];
++ FILE * f;
++ int i = 0;
++ char buf[512];
++
++ if (!(f = fopen(&quot;/proc/partitions&quot;, &quot;rb&quot;)) || !fgets(buf, sizeof(buf), f) || !fgets(buf, sizeof(buf), f)) {
++ log_perror(dev_name);
++ return 1;
++ }
++
++ while (fgets(buf, sizeof(buf), f)) {
++ memset(name, 0, sizeof(name));
++ sscanf(buf, &quot; %d %d %d %s&quot;, &amp;major, &amp;minor, &amp;blocks, name);
++ if ((strstr(name, dev_name) == name) &amp;&amp; (blocks &gt; 1) &amp;&amp; (name[strlen(dev_name)] != '\0')) {
++ const char * partition_type = detect_partition_type(name);
++ parts[i] = strdup(name);
++ comments[i] = (char *) malloc(sizeof(char) * 100);
++ sprintf(comments[i], &quot;size: %d Mbytes&quot;, blocks &gt;&gt; 10);
++ if (partition_type) {
++ strcat(comments[i], &quot;, type: &quot;);
++ strcat(comments[i], partition_type);
++ }
++ i++;
++ }
++ }
++ parts[i] = NULL;
++ fclose(f);
++
++ return 0;
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/partition.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1partitionh">Added: drakx/trunk/mdk-stage1/partition.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/partition.h (rev 0)
++++ drakx/trunk/mdk-stage1/partition.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,28 @@
++/*
++ * Olivier Blin (oblin@mandriva.com)
++ *
++ * Copyright 2005 Mandriva
++ *
++ * This software may be freely redistributed under the terms of the GNU
++ * public license.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++/*
++ * Portions from Erik Troan (ewt@redhat.com)
++ *
++ * Copyright 1996 Red Hat Software
++ *
++ */
++
++#ifndef _PARTITION_H_
++#define _PARTITION_H_
++
++int list_partitions(char * dev_name, char ** parts, char ** comments);
++
++#endif
++
+
+
+Property changes on: drakx/trunk/mdk-stage1/partition.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pciresourceMakefile">Added: drakx/trunk/mdk-stage1/pci-resource/Makefile</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/pci-resource/Makefile (rev 0)
++++ drakx/trunk/mdk-stage1/pci-resource/Makefile 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,25 @@
++ #******************************************************************************
++ #
++ # $Id: Makefile 253685 2009-03-06 14:27:29Z tv $
++ #
++ # Guillaume Cottenceau (gc@mandriva.com)
++ #
++ # Copyright 2000 Mandriva
++ #
++ # This software may be freely redistributed under the terms of the GNU
++ # public license.
++ #
++ # You should have received a copy of the GNU General Public License
++ # along with this program; if not, write to the Free Software
++ # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ #
++ #*****************************************************************************
++
++
++all: pci-ids.h
++
++pci-ids.h: /usr/share/ldetect-lst/pcitable.gz update-pci-ids.pl
++ perl update-pci-ids.pl &gt; $@ || { rm -f $@; exit 1; }
++
++clean:
++ rm -f pci-ids.h
+
+
+Property changes on: drakx/trunk/mdk-stage1/pci-resource/Makefile
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pciresourceupdatepciidspl">Added: drakx/trunk/mdk-stage1/pci-resource/update-pci-ids.pl</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/pci-resource/update-pci-ids.pl (rev 0)
++++ drakx/trunk/mdk-stage1/pci-resource/update-pci-ids.pl 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,27 @@
++#!/usr/bin/perl
++
++use lib '../kernel';
++use strict;
++use MDK::Common;
++
++
++my %t = (
++ network =&gt; 'network/main|gigabit|tokenring|wireless|pcmcia',
++ medias_ide =&gt; 'disk/ide',
++ medias_other =&gt; 'disk/scsi|hardware_raid|sata bus/firewire',
++);
++
++foreach my $type (keys %t) {
++ my @modules = chomp_(`perl ../../kernel/modules.pl pci_modules4stage1 &quot;$t{$type}&quot;`)
++ or die &quot;unable to get PCI modules&quot;;
++
++ print &quot;#ifndef DISABLE_&quot;.uc($type).&quot;
++char* ${type}_pci_modules[] = {
++&quot;;
++ printf qq|\t&quot;%s&quot;,\n|, $_ foreach @modules;
++ print &quot;};
++unsigned int ${type}_pci_modules_len = sizeof(${type}_pci_modules) / sizeof(char *);
++#endif
++
++&quot;;
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/pci-resource/update-pci-ids.pl
+___________________________________________________________________
+<a id="svnexecutable">Added: svn:executable</a>
+ + *
+
+<a id="drakxtrunkmdkstage1pcmciaMakefile">Added: drakx/trunk/mdk-stage1/pcmcia/Makefile</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/pcmcia/Makefile (rev 0)
++++ drakx/trunk/mdk-stage1/pcmcia/Makefile 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,52 @@
++ #******************************************************************************
++ #
++ # Guillaume Cottenceau (gc@mandriva.com)
++ #
++ # Copyright 2001 Mandriva
++ #
++ # This software may be freely redistributed under the terms of the GNU
++ # public license.
++ #
++ # You should have received a copy of the GNU General Public License
++ # along with this program; if not, write to the Free Software
++ # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ #
++ #*****************************************************************************
++
++# startup.c is based on pcmcia-socket-startup from pcmciautils-013
++
++top_dir = ..
++
++include $(top_dir)/Makefile.common
++
++TARGET = libpcmcia.a
++YFLAGS := -d
++
++all: $(TARGET) pcmcia_probe.o
++
++clean:
++ rm -f *.o $(TARGET) lex_config.c yacc_config.c yacc_config.h
++
++FLAGS = -D__linux__ -Wall -Werror -Wno-deprecated-declarations -Os -fomit-frame-pointer -pipe -c -I.. -D_BSD_SOURCE
++# (blino) make sure yynewerror and yyerrlab are uselessly used
++FLAGS += -Dlint
++LFLAGS += --nounput
++
++
++OBJS = probe.o startup.o yacc_config.o lex_config.o
++
++
++%.c %.h : %.y
++ $(YACC) $(YFLAGS) $&lt;
++ mv y.tab.c $*.c
++ mv y.tab.h $*.h
++
++$(TARGET): $(OBJS) yacc_config.h
++ ar -cru $@ $^
++ ranlib $@
++
++$(OBJS): %.o: %.c
++ $(DIET) gcc $(FLAGS) $(INCLUDES) -c $&lt; -o $@
++
++pcmcia_probe.o: probe.c
++ $(DIET) gcc -fPIC $(FLAGS) $(INCLUDES) -c $&lt; -o $@
+
+
+Property changes on: drakx/trunk/mdk-stage1/pcmcia/Makefile
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pcmciabulkmemh">Added: drakx/trunk/mdk-stage1/pcmcia/bulkmem.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/pcmcia/bulkmem.h (rev 0)
++++ drakx/trunk/mdk-stage1/pcmcia/bulkmem.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,195 @@
++/*
++ * Definitions for bulk memory services
++ *
++ * bulkmem.h 1.13 2001/08/24 12:16:12
++ *
++ * The contents of this file are subject to the Mozilla Public License
++ * Version 1.1 (the &quot;License&quot;); you may not use this file except in
++ * compliance with the License. You may obtain a copy of the License
++ * at http://www.mozilla.org/MPL/
++ *
++ * Software distributed under the License is distributed on an &quot;AS IS&quot;
++ * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
++ * the License for the specific language governing rights and
++ * limitations under the License.
++ *
++ * The initial developer of the original code is David A. Hinds
++ * &lt;dahinds@users.sourceforge.net&gt;. Portions created by David A. Hinds
++ * are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
++ *
++ * Alternatively, the contents of this file may be used under the
++ * terms of the GNU General Public License version 2 (the &quot;GPL&quot;), in
++ * which case the provisions of the GPL are applicable instead of the
++ * above. If you wish to allow the use of your version of this file
++ * only under the terms of the GPL and not to allow others to use
++ * your version of this file under the MPL, indicate your decision by
++ * deleting the provisions above and replace them with the notice and
++ * other provisions required by the GPL. If you do not delete the
++ * provisions above, a recipient may use your version of this file
++ * under either the MPL or the GPL.
++ * bulkmem.h 1.3 1995/05/27 04:49:49
++ */
++
++#ifndef _LINUX_BULKMEM_H
++#define _LINUX_BULKMEM_H
++
++/* For GetFirstRegion and GetNextRegion */
++typedef struct region_info_t {
++ u_int Attributes;
++ u_int CardOffset;
++ u_int RegionSize;
++ u_int AccessSpeed;
++ u_int BlockSize;
++ u_int PartMultiple;
++ u_char JedecMfr, JedecInfo;
++ memory_handle_t next;
++} region_info_t;
++
++#define REGION_TYPE 0x0001
++#define REGION_TYPE_CM 0x0000
++#define REGION_TYPE_AM 0x0001
++#define REGION_PREFETCH 0x0008
++#define REGION_CACHEABLE 0x0010
++#define REGION_BAR_MASK 0xe000
++#define REGION_BAR_SHIFT 13
++
++/* For OpenMemory */
++typedef struct open_mem_t {
++ u_int Attributes;
++ u_int Offset;
++} open_mem_t;
++
++/* Attributes for OpenMemory */
++#define MEMORY_TYPE 0x0001
++#define MEMORY_TYPE_CM 0x0000
++#define MEMORY_TYPE_AM 0x0001
++#define MEMORY_EXCLUSIVE 0x0002
++#define MEMORY_PREFETCH 0x0008
++#define MEMORY_CACHEABLE 0x0010
++#define MEMORY_BAR_MASK 0xe000
++#define MEMORY_BAR_SHIFT 13
++
++typedef struct eraseq_entry_t {
++ memory_handle_t Handle;
++ u_char State;
++ u_int Size;
++ u_int Offset;
++ void *Optional;
++} eraseq_entry_t;
++
++typedef struct eraseq_hdr_t {
++ int QueueEntryCnt;
++ eraseq_entry_t *QueueEntryArray;
++} eraseq_hdr_t;
++
++#define ERASE_QUEUED 0x00
++#define ERASE_IN_PROGRESS(n) (((n) &gt; 0) &amp;&amp; ((n) &lt; 0x80))
++#define ERASE_IDLE 0xff
++#define ERASE_PASSED 0xe0
++#define ERASE_FAILED 0xe1
++
++#define ERASE_MISSING 0x80
++#define ERASE_MEDIA_WRPROT 0x84
++#define ERASE_NOT_ERASABLE 0x85
++#define ERASE_BAD_OFFSET 0xc1
++#define ERASE_BAD_TECH 0xc2
++#define ERASE_BAD_SOCKET 0xc3
++#define ERASE_BAD_VCC 0xc4
++#define ERASE_BAD_VPP 0xc5
++#define ERASE_BAD_SIZE 0xc6
++
++/* For CopyMemory */
++typedef struct copy_op_t {
++ u_int Attributes;
++ u_int SourceOffset;
++ u_int DestOffset;
++ u_int Count;
++} copy_op_t;
++
++/* For ReadMemory and WriteMemory */
++typedef struct mem_op_t {
++ u_int Attributes;
++ u_int Offset;
++ u_int Count;
++} mem_op_t;
++
++#define MEM_OP_BUFFER 0x01
++#define MEM_OP_BUFFER_USER 0x00
++#define MEM_OP_BUFFER_KERNEL 0x01
++#define MEM_OP_DISABLE_ERASE 0x02
++#define MEM_OP_VERIFY 0x04
++
++/* For RegisterMTD */
++typedef struct mtd_reg_t {
++ u_int Attributes;
++ u_int Offset;
++ u_long MediaID;
++} mtd_reg_t;
++
++/*
++ * Definitions for MTD requests
++ */
++
++typedef struct mtd_request_t {
++ u_int SrcCardOffset;
++ u_int DestCardOffset;
++ u_int TransferLength;
++ u_int Function;
++ u_long MediaID;
++ u_int Status;
++ u_int Timeout;
++} mtd_request_t;
++
++/* Fields in MTD Function */
++#define MTD_REQ_ACTION 0x003
++#define MTD_REQ_ERASE 0x000
++#define MTD_REQ_READ 0x001
++#define MTD_REQ_WRITE 0x002
++#define MTD_REQ_COPY 0x003
++#define MTD_REQ_NOERASE 0x004
++#define MTD_REQ_VERIFY 0x008
++#define MTD_REQ_READY 0x010
++#define MTD_REQ_TIMEOUT 0x020
++#define MTD_REQ_LAST 0x040
++#define MTD_REQ_FIRST 0x080
++#define MTD_REQ_KERNEL 0x100
++
++/* Status codes */
++#define MTD_WAITREQ 0x00
++#define MTD_WAITTIMER 0x01
++#define MTD_WAITRDY 0x02
++#define MTD_WAITPOWER 0x03
++
++/*
++ * Definitions for MTD helper functions
++ */
++
++/* For MTDModifyWindow */
++typedef struct mtd_mod_win_t {
++ u_int Attributes;
++ u_int AccessSpeed;
++ u_int CardOffset;
++} mtd_mod_win_t;
++
++/* For MTDSetVpp */
++typedef struct mtd_vpp_req_t {
++ u_char Vpp1, Vpp2;
++} mtd_vpp_req_t;
++
++/* For MTDRDYMask */
++typedef struct mtd_rdy_req_t {
++ u_int Mask;
++} mtd_rdy_req_t;
++
++enum mtd_helper {
++ MTDRequestWindow, MTDModifyWindow, MTDReleaseWindow,
++ MTDSetVpp, MTDRDYMask
++};
++
++#ifdef IN_CARD_SERVICES
++extern int MTDHelperEntry(int func, void *a1, void *a2);
++#else
++extern int MTDHelperEntry(int func, ...);
++#endif
++
++#endif /* _LINUX_BULKMEM_H */
+
+
+Property changes on: drakx/trunk/mdk-stage1/pcmcia/bulkmem.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pcmciacirrush">Added: drakx/trunk/mdk-stage1/pcmcia/cirrus.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/pcmcia/cirrus.h (rev 0)
++++ drakx/trunk/mdk-stage1/pcmcia/cirrus.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,157 @@
++/*
++ * cirrus.h 1.10 2001/08/24 12:15:33
++ *
++ * The contents of this file are subject to the Mozilla Public License
++ * Version 1.1 (the &quot;License&quot;); you may not use this file except in
++ * compliance with the License. You may obtain a copy of the License
++ * at http://www.mozilla.org/MPL/
++ *
++ * Software distributed under the License is distributed on an &quot;AS IS&quot;
++ * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
++ * the License for the specific language governing rights and
++ * limitations under the License.
++ *
++ * The initial developer of the original code is David A. Hinds
++ * &lt;dahinds@users.sourceforge.net&gt;. Portions created by David A. Hinds
++ * are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
++ *
++ * Alternatively, the contents of this file may be used under the
++ * terms of the GNU General Public License version 2 (the &quot;GPL&quot;), in
++ * which case the provisions of the GPL are applicable instead of the
++ * above. If you wish to allow the use of your version of this file
++ * only under the terms of the GPL and not to allow others to use
++ * your version of this file under the MPL, indicate your decision by
++ * deleting the provisions above and replace them with the notice and
++ * other provisions required by the GPL. If you do not delete the
++ * provisions above, a recipient may use your version of this file
++ * under either the MPL or the GPL.
++ */
++
++#ifndef _LINUX_CIRRUS_H
++#define _LINUX_CIRRUS_H
++
++#ifndef PCI_VENDOR_ID_CIRRUS
++#define PCI_VENDOR_ID_CIRRUS 0x1013
++#endif
++#ifndef PCI_DEVICE_ID_CIRRUS_6729
++#define PCI_DEVICE_ID_CIRRUS_6729 0x1100
++#endif
++#ifndef PCI_DEVICE_ID_CIRRUS_6832
++#define PCI_DEVICE_ID_CIRRUS_6832 0x1110
++#endif
++
++#define PD67_MISC_CTL_1 0x16 /* Misc control 1 */
++#define PD67_FIFO_CTL 0x17 /* FIFO control */
++#define PD67_MISC_CTL_2 0x1E /* Misc control 2 */
++#define PD67_CHIP_INFO 0x1f /* Chip information */
++#define PD67_ATA_CTL 0x026 /* 6730: ATA control */
++#define PD67_EXT_INDEX 0x2e /* Extension index */
++#define PD67_EXT_DATA 0x2f /* Extension data */
++
++/* PD6722 extension registers -- indexed in PD67_EXT_INDEX */
++#define PD67_DATA_MASK0 0x01 /* Data mask 0 */
++#define PD67_DATA_MASK1 0x02 /* Data mask 1 */
++#define PD67_DMA_CTL 0x03 /* DMA control */
++
++/* PD6730 extension registers -- indexed in PD67_EXT_INDEX */
++#define PD67_EXT_CTL_1 0x03 /* Extension control 1 */
++#define PD67_MEM_PAGE(n) ((n)+5) /* PCI window bits 31:24 */
++#define PD67_EXTERN_DATA 0x0a
++#define PD67_MISC_CTL_3 0x25
++#define PD67_SMB_PWR_CTL 0x26
++
++/* I/O window address offset */
++#define PD67_IO_OFF(w) (0x36+((w)&lt;&lt;1))
++
++/* Timing register sets */
++#define PD67_TIME_SETUP(n) (0x3a + 3*(n))
++#define PD67_TIME_CMD(n) (0x3b + 3*(n))
++#define PD67_TIME_RECOV(n) (0x3c + 3*(n))
++
++/* Flags for PD67_MISC_CTL_1 */
++#define PD67_MC1_5V_DET 0x01 /* 5v detect */
++#define PD67_MC1_MEDIA_ENA 0x01 /* 6730: Multimedia enable */
++#define PD67_MC1_VCC_3V 0x02 /* 3.3v Vcc */
++#define PD67_MC1_PULSE_MGMT 0x04
++#define PD67_MC1_PULSE_IRQ 0x08
++#define PD67_MC1_SPKR_ENA 0x10
++#define PD67_MC1_INPACK_ENA 0x80
++
++/* Flags for PD67_FIFO_CTL */
++#define PD67_FIFO_EMPTY 0x80
++
++/* Flags for PD67_MISC_CTL_2 */
++#define PD67_MC2_FREQ_BYPASS 0x01
++#define PD67_MC2_DYNAMIC_MODE 0x02
++#define PD67_MC2_SUSPEND 0x04
++#define PD67_MC2_5V_CORE 0x08
++#define PD67_MC2_LED_ENA 0x10 /* IRQ 12 is LED enable */
++#define PD67_MC2_FAST_PCI 0x10 /* 6729: PCI bus &gt; 25 MHz */
++#define PD67_MC2_3STATE_BIT7 0x20 /* Floppy change bit */
++#define PD67_MC2_DMA_MODE 0x40
++#define PD67_MC2_IRQ15_RI 0x80 /* IRQ 15 is ring enable */
++
++/* Flags for PD67_CHIP_INFO */
++#define PD67_INFO_SLOTS 0x20 /* 0 = 1 slot, 1 = 2 slots */
++#define PD67_INFO_CHIP_ID 0xc0
++#define PD67_INFO_REV 0x1c
++
++/* Fields in PD67_TIME_* registers */
++#define PD67_TIME_SCALE 0xc0
++#define PD67_TIME_SCALE_1 0x00
++#define PD67_TIME_SCALE_16 0x40
++#define PD67_TIME_SCALE_256 0x80
++#define PD67_TIME_SCALE_4096 0xc0
++#define PD67_TIME_MULT 0x3f
++
++/* Fields in PD67_DMA_CTL */
++#define PD67_DMA_MODE 0xc0
++#define PD67_DMA_OFF 0x00
++#define PD67_DMA_DREQ_INPACK 0x40
++#define PD67_DMA_DREQ_WP 0x80
++#define PD67_DMA_DREQ_BVD2 0xc0
++#define PD67_DMA_PULLUP 0x20 /* Disable socket pullups? */
++
++/* Fields in PD67_EXT_CTL_1 */
++#define PD67_EC1_VCC_PWR_LOCK 0x01
++#define PD67_EC1_AUTO_PWR_CLEAR 0x02
++#define PD67_EC1_LED_ENA 0x04
++#define PD67_EC1_INV_CARD_IRQ 0x08
++#define PD67_EC1_INV_MGMT_IRQ 0x10
++#define PD67_EC1_PULLUP_CTL 0x20
++
++/* Fields in PD67_MISC_CTL_3 */
++#define PD67_MC3_IRQ_MASK 0x03
++#define PD67_MC3_IRQ_PCPCI 0x00
++#define PD67_MC3_IRQ_EXTERN 0x01
++#define PD67_MC3_IRQ_PCIWAY 0x02
++#define PD67_MC3_IRQ_PCI 0x03
++#define PD67_MC3_PWR_MASK 0x0c
++#define PD67_MC3_PWR_SERIAL 0x00
++#define PD67_MC3_PWR_TI2202 0x08
++#define PD67_MC3_PWR_SMB 0x0c
++
++/* Register definitions for Cirrus PD6832 PCI-to-CardBus bridge */
++
++/* PD6832 extension registers -- indexed in PD67_EXT_INDEX */
++#define PD68_EXT_CTL_2 0x0b
++#define PD68_PCI_SPACE 0x22
++#define PD68_PCCARD_SPACE 0x23
++#define PD68_WINDOW_TYPE 0x24
++#define PD68_EXT_CSC 0x2e
++#define PD68_MISC_CTL_4 0x2f
++#define PD68_MISC_CTL_5 0x30
++#define PD68_MISC_CTL_6 0x31
++
++/* Extra flags in PD67_MISC_CTL_3 */
++#define PD68_MC3_HW_SUSP 0x10
++#define PD68_MC3_MM_EXPAND 0x40
++#define PD68_MC3_MM_ARM 0x80
++
++/* Bridge Control Register */
++#define PD6832_BCR_MGMT_IRQ_ENA 0x0800
++
++/* Socket Number Register */
++#define PD6832_SOCKET_NUMBER 0x004c /* 8 bit */
++
++#endif /* _LINUX_CIRRUS_H */
+
+
+Property changes on: drakx/trunk/mdk-stage1/pcmcia/cirrus.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pcmciacistplh">Added: drakx/trunk/mdk-stage1/pcmcia/cistpl.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/pcmcia/cistpl.h (rev 0)
++++ drakx/trunk/mdk-stage1/pcmcia/cistpl.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,604 @@
++/*
++ * cistpl.h 1.35 2001/08/24 12:16:12
++ *
++ * The contents of this file are subject to the Mozilla Public License
++ * Version 1.1 (the &quot;License&quot;); you may not use this file except in
++ * compliance with the License. You may obtain a copy of the License
++ * at http://www.mozilla.org/MPL/
++ *
++ * Software distributed under the License is distributed on an &quot;AS IS&quot;
++ * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
++ * the License for the specific language governing rights and
++ * limitations under the License.
++ *
++ * The initial developer of the original code is David A. Hinds
++ * &lt;dahinds@users.sourceforge.net&gt;. Portions created by David A. Hinds
++ * are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
++ *
++ * Alternatively, the contents of this file may be used under the
++ * terms of the GNU General Public License version 2 (the &quot;GPL&quot;), in
++ * which case the provisions of the GPL are applicable instead of the
++ * above. If you wish to allow the use of your version of this file
++ * only under the terms of the GPL and not to allow others to use
++ * your version of this file under the MPL, indicate your decision by
++ * deleting the provisions above and replace them with the notice and
++ * other provisions required by the GPL. If you do not delete the
++ * provisions above, a recipient may use your version of this file
++ * under either the MPL or the GPL.
++ */
++
++#ifndef _LINUX_CISTPL_H
++#define _LINUX_CISTPL_H
++
++#define CISTPL_NULL 0x00
++#define CISTPL_DEVICE 0x01
++#define CISTPL_LONGLINK_CB 0x02
++#define CISTPL_INDIRECT 0x03
++#define CISTPL_CONFIG_CB 0x04
++#define CISTPL_CFTABLE_ENTRY_CB 0x05
++#define CISTPL_LONGLINK_MFC 0x06
++#define CISTPL_BAR 0x07
++#define CISTPL_PWR_MGMNT 0x08
++#define CISTPL_EXTDEVICE 0x09
++#define CISTPL_CHECKSUM 0x10
++#define CISTPL_LONGLINK_A 0x11
++#define CISTPL_LONGLINK_C 0x12
++#define CISTPL_LINKTARGET 0x13
++#define CISTPL_NO_LINK 0x14
++#define CISTPL_VERS_1 0x15
++#define CISTPL_ALTSTR 0x16
++#define CISTPL_DEVICE_A 0x17
++#define CISTPL_JEDEC_C 0x18
++#define CISTPL_JEDEC_A 0x19
++#define CISTPL_CONFIG 0x1a
++#define CISTPL_CFTABLE_ENTRY 0x1b
++#define CISTPL_DEVICE_OC 0x1c
++#define CISTPL_DEVICE_OA 0x1d
++#define CISTPL_DEVICE_GEO 0x1e
++#define CISTPL_DEVICE_GEO_A 0x1f
++#define CISTPL_MANFID 0x20
++#define CISTPL_FUNCID 0x21
++#define CISTPL_FUNCE 0x22
++#define CISTPL_SWIL 0x23
++#define CISTPL_END 0xff
++/* Layer 2 tuples */
++#define CISTPL_VERS_2 0x40
++#define CISTPL_FORMAT 0x41
++#define CISTPL_GEOMETRY 0x42
++#define CISTPL_BYTEORDER 0x43
++#define CISTPL_DATE 0x44
++#define CISTPL_BATTERY 0x45
++#define CISTPL_FORMAT_A 0x47
++/* Layer 3 tuples */
++#define CISTPL_ORG 0x46
++#define CISTPL_SPCL 0x90
++
++typedef struct cistpl_longlink_t {
++ u_int addr;
++} cistpl_longlink_t;
++
++typedef struct cistpl_checksum_t {
++ u_short addr;
++ u_short len;
++ u_char sum;
++} cistpl_checksum_t;
++
++#define CISTPL_MAX_FUNCTIONS 8
++#define CISTPL_MFC_ATTR 0x00
++#define CISTPL_MFC_COMMON 0x01
++
++typedef struct cistpl_longlink_mfc_t {
++ u_char nfn;
++ struct {
++ u_char space;
++ u_int addr;
++ } fn[CISTPL_MAX_FUNCTIONS];
++} cistpl_longlink_mfc_t;
++
++#define CISTPL_MAX_ALTSTR_STRINGS 4
++
++typedef struct cistpl_altstr_t {
++ u_char ns;
++ u_char ofs[CISTPL_MAX_ALTSTR_STRINGS];
++ char str[254];
++} cistpl_altstr_t;
++
++#define CISTPL_DTYPE_NULL 0x00
++#define CISTPL_DTYPE_ROM 0x01
++#define CISTPL_DTYPE_OTPROM 0x02
++#define CISTPL_DTYPE_EPROM 0x03
++#define CISTPL_DTYPE_EEPROM 0x04
++#define CISTPL_DTYPE_FLASH 0x05
++#define CISTPL_DTYPE_SRAM 0x06
++#define CISTPL_DTYPE_DRAM 0x07
++#define CISTPL_DTYPE_FUNCSPEC 0x0d
++#define CISTPL_DTYPE_EXTEND 0x0e
++
++#define CISTPL_MAX_DEVICES 4
++
++typedef struct cistpl_device_t {
++ u_char ndev;
++ struct {
++ u_char type;
++ u_char wp;
++ u_int speed;
++ u_int size;
++ } dev[CISTPL_MAX_DEVICES];
++} cistpl_device_t;
++
++#define CISTPL_DEVICE_MWAIT 0x01
++#define CISTPL_DEVICE_3VCC 0x02
++
++typedef struct cistpl_device_o_t {
++ u_char flags;
++ cistpl_device_t device;
++} cistpl_device_o_t;
++
++#define CISTPL_VERS_1_MAX_PROD_STRINGS 4
++
++typedef struct cistpl_vers_1_t {
++ u_char major;
++ u_char minor;
++ u_char ns;
++ u_char ofs[CISTPL_VERS_1_MAX_PROD_STRINGS];
++ char str[254];
++} cistpl_vers_1_t;
++
++typedef struct cistpl_jedec_t {
++ u_char nid;
++ struct {
++ u_char mfr;
++ u_char info;
++ } id[CISTPL_MAX_DEVICES];
++} cistpl_jedec_t;
++
++typedef struct cistpl_manfid_t {
++ u_short manf;
++ u_short card;
++} cistpl_manfid_t;
++
++#define CISTPL_FUNCID_MULTI 0x00
++#define CISTPL_FUNCID_MEMORY 0x01
++#define CISTPL_FUNCID_SERIAL 0x02
++#define CISTPL_FUNCID_PARALLEL 0x03
++#define CISTPL_FUNCID_FIXED 0x04
++#define CISTPL_FUNCID_VIDEO 0x05
++#define CISTPL_FUNCID_NETWORK 0x06
++#define CISTPL_FUNCID_AIMS 0x07
++#define CISTPL_FUNCID_SCSI 0x08
++
++#define CISTPL_SYSINIT_POST 0x01
++#define CISTPL_SYSINIT_ROM 0x02
++
++typedef struct cistpl_funcid_t {
++ u_char func;
++ u_char sysinit;
++} cistpl_funcid_t;
++
++typedef struct cistpl_funce_t {
++ u_char type;
++ u_char data[0];
++} cistpl_funce_t;
++
++/*======================================================================
++
++ Modem Function Extension Tuples
++
++======================================================================*/
++
++#define CISTPL_FUNCE_SERIAL_IF 0x00
++#define CISTPL_FUNCE_SERIAL_CAP 0x01
++#define CISTPL_FUNCE_SERIAL_SERV_DATA 0x02
++#define CISTPL_FUNCE_SERIAL_SERV_FAX 0x03
++#define CISTPL_FUNCE_SERIAL_SERV_VOICE 0x04
++#define CISTPL_FUNCE_SERIAL_CAP_DATA 0x05
++#define CISTPL_FUNCE_SERIAL_CAP_FAX 0x06
++#define CISTPL_FUNCE_SERIAL_CAP_VOICE 0x07
++#define CISTPL_FUNCE_SERIAL_IF_DATA 0x08
++#define CISTPL_FUNCE_SERIAL_IF_FAX 0x09
++#define CISTPL_FUNCE_SERIAL_IF_VOICE 0x0a
++
++/* UART identification */
++#define CISTPL_SERIAL_UART_8250 0x00
++#define CISTPL_SERIAL_UART_16450 0x01
++#define CISTPL_SERIAL_UART_16550 0x02
++#define CISTPL_SERIAL_UART_8251 0x03
++#define CISTPL_SERIAL_UART_8530 0x04
++#define CISTPL_SERIAL_UART_85230 0x05
++
++/* UART capabilities */
++#define CISTPL_SERIAL_UART_SPACE 0x01
++#define CISTPL_SERIAL_UART_MARK 0x02
++#define CISTPL_SERIAL_UART_ODD 0x04
++#define CISTPL_SERIAL_UART_EVEN 0x08
++#define CISTPL_SERIAL_UART_5BIT 0x01
++#define CISTPL_SERIAL_UART_6BIT 0x02
++#define CISTPL_SERIAL_UART_7BIT 0x04
++#define CISTPL_SERIAL_UART_8BIT 0x08
++#define CISTPL_SERIAL_UART_1STOP 0x10
++#define CISTPL_SERIAL_UART_MSTOP 0x20
++#define CISTPL_SERIAL_UART_2STOP 0x40
++
++typedef struct cistpl_serial_t {
++ u_char uart_type;
++ u_char uart_cap_0;
++ u_char uart_cap_1;
++} cistpl_serial_t;
++
++typedef struct cistpl_modem_cap_t {
++ u_char flow;
++ u_char cmd_buf;
++ u_char rcv_buf_0, rcv_buf_1, rcv_buf_2;
++ u_char xmit_buf_0, xmit_buf_1, xmit_buf_2;
++} cistpl_modem_cap_t;
++
++#define CISTPL_SERIAL_MOD_103 0x01
++#define CISTPL_SERIAL_MOD_V21 0x02
++#define CISTPL_SERIAL_MOD_V23 0x04
++#define CISTPL_SERIAL_MOD_V22 0x08
++#define CISTPL_SERIAL_MOD_212A 0x10
++#define CISTPL_SERIAL_MOD_V22BIS 0x20
++#define CISTPL_SERIAL_MOD_V26 0x40
++#define CISTPL_SERIAL_MOD_V26BIS 0x80
++#define CISTPL_SERIAL_MOD_V27BIS 0x01
++#define CISTPL_SERIAL_MOD_V29 0x02
++#define CISTPL_SERIAL_MOD_V32 0x04
++#define CISTPL_SERIAL_MOD_V32BIS 0x08
++#define CISTPL_SERIAL_MOD_V34 0x10
++
++#define CISTPL_SERIAL_ERR_MNP2_4 0x01
++#define CISTPL_SERIAL_ERR_V42_LAPM 0x02
++
++#define CISTPL_SERIAL_CMPR_V42BIS 0x01
++#define CISTPL_SERIAL_CMPR_MNP5 0x02
++
++#define CISTPL_SERIAL_CMD_AT1 0x01
++#define CISTPL_SERIAL_CMD_AT2 0x02
++#define CISTPL_SERIAL_CMD_AT3 0x04
++#define CISTPL_SERIAL_CMD_MNP_AT 0x08
++#define CISTPL_SERIAL_CMD_V25BIS 0x10
++#define CISTPL_SERIAL_CMD_V25A 0x20
++#define CISTPL_SERIAL_CMD_DMCL 0x40
++
++typedef struct cistpl_data_serv_t {
++ u_char max_data_0;
++ u_char max_data_1;
++ u_char modulation_0;
++ u_char modulation_1;
++ u_char error_control;
++ u_char compression;
++ u_char cmd_protocol;
++ u_char escape;
++ u_char encrypt;
++ u_char misc_features;
++ u_char ccitt_code[0];
++} cistpl_data_serv_t;
++
++typedef struct cistpl_fax_serv_t {
++ u_char max_data_0;
++ u_char max_data_1;
++ u_char modulation;
++ u_char encrypt;
++ u_char features_0;
++ u_char features_1;
++ u_char ccitt_code[0];
++} cistpl_fax_serv_t;
++
++typedef struct cistpl_voice_serv_t {
++ u_char max_data_0;
++ u_char max_data_1;
++} cistpl_voice_serv_t;
++
++/*======================================================================
++
++ LAN Function Extension Tuples
++
++======================================================================*/
++
++#define CISTPL_FUNCE_LAN_TECH 0x01
++#define CISTPL_FUNCE_LAN_SPEED 0x02
++#define CISTPL_FUNCE_LAN_MEDIA 0x03
++#define CISTPL_FUNCE_LAN_NODE_ID 0x04
++#define CISTPL_FUNCE_LAN_CONNECTOR 0x05
++
++/* LAN technologies */
++#define CISTPL_LAN_TECH_ARCNET 0x01
++#define CISTPL_LAN_TECH_ETHERNET 0x02
++#define CISTPL_LAN_TECH_TOKENRING 0x03
++#define CISTPL_LAN_TECH_LOCALTALK 0x04
++#define CISTPL_LAN_TECH_FDDI 0x05
++#define CISTPL_LAN_TECH_ATM 0x06
++#define CISTPL_LAN_TECH_WIRELESS 0x07
++
++typedef struct cistpl_lan_tech_t {
++ u_char tech;
++} cistpl_lan_tech_t;
++
++typedef struct cistpl_lan_speed_t {
++ u_int speed;
++} cistpl_lan_speed_t;
++
++/* LAN media definitions */
++#define CISTPL_LAN_MEDIA_UTP 0x01
++#define CISTPL_LAN_MEDIA_STP 0x02
++#define CISTPL_LAN_MEDIA_THIN_COAX 0x03
++#define CISTPL_LAN_MEDIA_THICK_COAX 0x04
++#define CISTPL_LAN_MEDIA_FIBER 0x05
++#define CISTPL_LAN_MEDIA_900MHZ 0x06
++#define CISTPL_LAN_MEDIA_2GHZ 0x07
++#define CISTPL_LAN_MEDIA_5GHZ 0x08
++#define CISTPL_LAN_MEDIA_DIFF_IR 0x09
++#define CISTPL_LAN_MEDIA_PTP_IR 0x0a
++
++typedef struct cistpl_lan_media_t {
++ u_char media;
++} cistpl_lan_media_t;
++
++typedef struct cistpl_lan_node_id_t {
++ u_char nb;
++ u_char id[16];
++} cistpl_lan_node_id_t;
++
++typedef struct cistpl_lan_connector_t {
++ u_char code;
++} cistpl_lan_connector_t;
++
++/*======================================================================
++
++ IDE Function Extension Tuples
++
++======================================================================*/
++
++#define CISTPL_IDE_INTERFACE 0x01
++
++typedef struct cistpl_ide_interface_t {
++ u_char interface;
++} cistpl_ide_interface_t;
++
++/* First feature byte */
++#define CISTPL_IDE_SILICON 0x04
++#define CISTPL_IDE_UNIQUE 0x08
++#define CISTPL_IDE_DUAL 0x10
++
++/* Second feature byte */
++#define CISTPL_IDE_HAS_SLEEP 0x01
++#define CISTPL_IDE_HAS_STANDBY 0x02
++#define CISTPL_IDE_HAS_IDLE 0x04
++#define CISTPL_IDE_LOW_POWER 0x08
++#define CISTPL_IDE_REG_INHIBIT 0x10
++#define CISTPL_IDE_HAS_INDEX 0x20
++#define CISTPL_IDE_IOIS16 0x40
++
++typedef struct cistpl_ide_feature_t {
++ u_char feature1;
++ u_char feature2;
++} cistpl_ide_feature_t;
++
++#define CISTPL_FUNCE_IDE_IFACE 0x01
++#define CISTPL_FUNCE_IDE_MASTER 0x02
++#define CISTPL_FUNCE_IDE_SLAVE 0x03
++
++/*======================================================================
++
++ Configuration Table Entries
++
++======================================================================*/
++
++#define CISTPL_BAR_SPACE 0x07
++#define CISTPL_BAR_SPACE_IO 0x10
++#define CISTPL_BAR_PREFETCH 0x20
++#define CISTPL_BAR_CACHEABLE 0x40
++#define CISTPL_BAR_1MEG_MAP 0x80
++
++typedef struct cistpl_bar_t {
++ u_char attr;
++ u_int size;
++} cistpl_bar_t;
++
++typedef struct cistpl_config_t {
++ u_char last_idx;
++ u_int base;
++ u_int rmask[4];
++ u_char subtuples;
++} cistpl_config_t;
++
++/* These are bits in the 'present' field, and indices in 'param' */
++#define CISTPL_POWER_VNOM 0
++#define CISTPL_POWER_VMIN 1
++#define CISTPL_POWER_VMAX 2
++#define CISTPL_POWER_ISTATIC 3
++#define CISTPL_POWER_IAVG 4
++#define CISTPL_POWER_IPEAK 5
++#define CISTPL_POWER_IDOWN 6
++
++#define CISTPL_POWER_HIGHZ_OK 0x01
++#define CISTPL_POWER_HIGHZ_REQ 0x02
++
++typedef struct cistpl_power_t {
++ u_char present;
++ u_char flags;
++ u_int param[7];
++} cistpl_power_t;
++
++typedef struct cistpl_timing_t {
++ u_int wait, waitscale;
++ u_int ready, rdyscale;
++ u_int reserved, rsvscale;
++} cistpl_timing_t;
++
++#define CISTPL_IO_LINES_MASK 0x1f
++#define CISTPL_IO_8BIT 0x20
++#define CISTPL_IO_16BIT 0x40
++#define CISTPL_IO_RANGE 0x80
++
++#define CISTPL_IO_MAX_WIN 16
++
++typedef struct cistpl_io_t {
++ u_char flags;
++ u_char nwin;
++ struct {
++ u_int base;
++ u_int len;
++ } win[CISTPL_IO_MAX_WIN];
++} cistpl_io_t;
++
++typedef struct cistpl_irq_t {
++ u_int IRQInfo1;
++ u_int IRQInfo2;
++} cistpl_irq_t;
++
++#define CISTPL_MEM_MAX_WIN 8
++
++typedef struct cistpl_mem_t {
++ u_char flags;
++ u_char nwin;
++ struct {
++ u_int len;
++ u_int card_addr;
++ u_int host_addr;
++ } win[CISTPL_MEM_MAX_WIN];
++} cistpl_mem_t;
++
++#define CISTPL_CFTABLE_DEFAULT 0x0001
++#define CISTPL_CFTABLE_BVDS 0x0002
++#define CISTPL_CFTABLE_WP 0x0004
++#define CISTPL_CFTABLE_RDYBSY 0x0008
++#define CISTPL_CFTABLE_MWAIT 0x0010
++#define CISTPL_CFTABLE_AUDIO 0x0800
++#define CISTPL_CFTABLE_READONLY 0x1000
++#define CISTPL_CFTABLE_PWRDOWN 0x2000
++
++typedef struct cistpl_cftable_entry_t {
++ u_char index;
++ u_short flags;
++ u_char interface;
++ cistpl_power_t vcc, vpp1, vpp2;
++ cistpl_timing_t timing;
++ cistpl_io_t io;
++ cistpl_irq_t irq;
++ cistpl_mem_t mem;
++ u_char subtuples;
++} cistpl_cftable_entry_t;
++
++#define CISTPL_CFTABLE_MASTER 0x000100
++#define CISTPL_CFTABLE_INVALIDATE 0x000200
++#define CISTPL_CFTABLE_VGA_PALETTE 0x000400
++#define CISTPL_CFTABLE_PARITY 0x000800
++#define CISTPL_CFTABLE_WAIT 0x001000
++#define CISTPL_CFTABLE_SERR 0x002000
++#define CISTPL_CFTABLE_FAST_BACK 0x004000
++#define CISTPL_CFTABLE_BINARY_AUDIO 0x010000
++#define CISTPL_CFTABLE_PWM_AUDIO 0x020000
++
++typedef struct cistpl_cftable_entry_cb_t {
++ u_char index;
++ u_int flags;
++ cistpl_power_t vcc, vpp1, vpp2;
++ u_char io;
++ cistpl_irq_t irq;
++ u_char mem;
++ u_char subtuples;
++} cistpl_cftable_entry_cb_t;
++
++typedef struct cistpl_device_geo_t {
++ u_char ngeo;
++ struct {
++ u_char buswidth;
++ u_int erase_block;
++ u_int read_block;
++ u_int write_block;
++ u_int partition;
++ u_int interleave;
++ } geo[CISTPL_MAX_DEVICES];
++} cistpl_device_geo_t;
++
++typedef struct cistpl_vers_2_t {
++ u_char vers;
++ u_char comply;
++ u_short dindex;
++ u_char vspec8, vspec9;
++ u_char nhdr;
++ u_char vendor, info;
++ char str[244];
++} cistpl_vers_2_t;
++
++typedef struct cistpl_org_t {
++ u_char data_org;
++ char desc[30];
++} cistpl_org_t;
++
++#define CISTPL_ORG_FS 0x00
++#define CISTPL_ORG_APPSPEC 0x01
++#define CISTPL_ORG_XIP 0x02
++
++typedef struct cistpl_format_t {
++ u_char type;
++ u_char edc;
++ u_int offset;
++ u_int length;
++} cistpl_format_t;
++
++#define CISTPL_FORMAT_DISK 0x00
++#define CISTPL_FORMAT_MEM 0x01
++
++#define CISTPL_EDC_NONE 0x00
++#define CISTPL_EDC_CKSUM 0x01
++#define CISTPL_EDC_CRC 0x02
++#define CISTPL_EDC_PCC 0x03
++
++typedef union cisparse_t {
++ cistpl_device_t device;
++ cistpl_checksum_t checksum;
++ cistpl_longlink_t longlink;
++ cistpl_longlink_mfc_t longlink_mfc;
++ cistpl_vers_1_t version_1;
++ cistpl_altstr_t altstr;
++ cistpl_jedec_t jedec;
++ cistpl_manfid_t manfid;
++ cistpl_funcid_t funcid;
++ cistpl_funce_t funce;
++ cistpl_bar_t bar;
++ cistpl_config_t config;
++ cistpl_cftable_entry_t cftable_entry;
++ cistpl_cftable_entry_cb_t cftable_entry_cb;
++ cistpl_device_geo_t device_geo;
++ cistpl_vers_2_t vers_2;
++ cistpl_org_t org;
++ cistpl_format_t format;
++} cisparse_t;
++
++typedef struct tuple_t {
++ u_int Attributes;
++ cisdata_t DesiredTuple;
++ u_int Flags; /* internal use */
++ u_int LinkOffset; /* internal use */
++ u_int CISOffset; /* internal use */
++ cisdata_t TupleCode;
++ cisdata_t TupleLink;
++ cisdata_t TupleOffset;
++ cisdata_t TupleDataMax;
++ cisdata_t TupleDataLen;
++ cisdata_t *TupleData;
++} tuple_t;
++
++/* Special cisdata_t value */
++#define RETURN_FIRST_TUPLE 0xff
++
++/* Attributes for tuple calls */
++#define TUPLE_RETURN_LINK 0x01
++#define TUPLE_RETURN_COMMON 0x02
++
++/* For ValidateCIS */
++typedef struct cisinfo_t {
++ u_int Chains;
++} cisinfo_t;
++
++#define CISTPL_MAX_CIS_SIZE 0x200
++
++/* For ReplaceCIS */
++typedef struct cisdump_t {
++ u_int Length;
++ cisdata_t Data[CISTPL_MAX_CIS_SIZE];
++} cisdump_t;
++
++#endif /* LINUX_CISTPL_H */
+
+
+Property changes on: drakx/trunk/mdk-stage1/pcmcia/cistpl.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pcmciacsh">Added: drakx/trunk/mdk-stage1/pcmcia/cs.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/pcmcia/cs.h (rev 0)
++++ drakx/trunk/mdk-stage1/pcmcia/cs.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,433 @@
++/*
++ * cs.h 1.73 2001/08/24 12:16:12
++ *
++ * The contents of this file are subject to the Mozilla Public License
++ * Version 1.1 (the &quot;License&quot;); you may not use this file except in
++ * compliance with the License. You may obtain a copy of the License
++ * at http://www.mozilla.org/MPL/
++ *
++ * Software distributed under the License is distributed on an &quot;AS IS&quot;
++ * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
++ * the License for the specific language governing rights and
++ * limitations under the License.
++ *
++ * The initial developer of the original code is David A. Hinds
++ * &lt;dahinds@users.sourceforge.net&gt;. Portions created by David A. Hinds
++ * are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
++ *
++ * Alternatively, the contents of this file may be used under the
++ * terms of the GNU General Public License version 2 (the &quot;GPL&quot;), in
++ * which case the provisions of the GPL are applicable instead of the
++ * above. If you wish to allow the use of your version of this file
++ * only under the terms of the GPL and not to allow others to use
++ * your version of this file under the MPL, indicate your decision by
++ * deleting the provisions above and replace them with the notice and
++ * other provisions required by the GPL. If you do not delete the
++ * provisions above, a recipient may use your version of this file
++ * under either the MPL or the GPL.
++ */
++
++#ifndef _LINUX_CS_H
++#define _LINUX_CS_H
++
++/* For AccessConfigurationRegister */
++typedef struct conf_reg_t {
++ u_char Function;
++ u_int Action;
++ off_t Offset;
++ u_int Value;
++} conf_reg_t;
++
++/* Actions */
++#define CS_READ 1
++#define CS_WRITE 2
++
++/* for AdjustResourceInfo */
++typedef struct adjust_t {
++ u_int Action;
++ u_int Resource;
++ u_int Attributes;
++ union {
++ struct memory {
++ unsigned long Base;
++ unsigned long Size;
++ } memory;
++ struct io {
++ ioaddr_t BasePort;
++ ioaddr_t NumPorts;
++ u_int IOAddrLines;
++ } io;
++ struct irq {
++ u_int IRQ;
++ } irq;
++ } resource;
++} adjust_t;
++
++/* Action field */
++#define REMOVE_MANAGED_RESOURCE 1
++#define ADD_MANAGED_RESOURCE 2
++#define GET_FIRST_MANAGED_RESOURCE 3
++#define GET_NEXT_MANAGED_RESOURCE 4
++/* Resource field */
++#define RES_MEMORY_RANGE 1
++#define RES_IO_RANGE 2
++#define RES_IRQ 3
++/* Attribute field */
++#define RES_IRQ_TYPE 0x03
++#define RES_IRQ_TYPE_EXCLUSIVE 0
++#define RES_IRQ_TYPE_TIME 1
++#define RES_IRQ_TYPE_DYNAMIC 2
++#define RES_IRQ_CSC 0x04
++#define RES_SHARED 0x08
++#define RES_RESERVED 0x10
++#define RES_ALLOCATED 0x20
++#define RES_REMOVED 0x40
++
++typedef struct servinfo_t {
++ char Signature[2];
++ u_int Count;
++ u_int Revision;
++ u_int CSLevel;
++ char *VendorString;
++} servinfo_t;
++
++typedef struct event_callback_args_t {
++ client_handle_t client_handle;
++ void *info;
++ void *mtdrequest;
++ void *buffer;
++ void *misc;
++ void *client_data;
++ struct bus_operations *bus;
++} event_callback_args_t;
++
++/* for GetConfigurationInfo */
++typedef struct config_info_t {
++ u_char Function;
++ u_int Attributes;
++ u_int Vcc, Vpp1, Vpp2;
++ u_int IntType;
++ u_int ConfigBase;
++ u_char Status, Pin, Copy, Option, ExtStatus;
++ u_int Present;
++ u_int CardValues;
++ u_int AssignedIRQ;
++ u_int IRQAttributes;
++ ioaddr_t BasePort1;
++ ioaddr_t NumPorts1;
++ u_int Attributes1;
++ ioaddr_t BasePort2;
++ ioaddr_t NumPorts2;
++ u_int Attributes2;
++ u_int IOAddrLines;
++} config_info_t;
++
++/* For CardValues field */
++#define CV_OPTION_VALUE 0x01
++#define CV_STATUS_VALUE 0x02
++#define CV_PIN_REPLACEMENT 0x04
++#define CV_COPY_VALUE 0x08
++#define CV_EXT_STATUS 0x10
++
++/* For GetFirst/NextClient */
++typedef struct client_req_t {
++ socket_t Socket;
++ u_int Attributes;
++} client_req_t;
++
++#define CLIENT_THIS_SOCKET 0x01
++
++/* For RegisterClient */
++typedef struct client_reg_t {
++ dev_info_t *dev_info;
++ u_int Attributes;
++ u_int EventMask;
++ int (*event_handler)(event_t event, int priority,
++ event_callback_args_t *);
++ event_callback_args_t event_callback_args;
++ u_int Version;
++} client_reg_t;
++
++/* ModifyConfiguration */
++typedef struct modconf_t {
++ u_int Attributes;
++ u_int Vcc, Vpp1, Vpp2;
++} modconf_t;
++
++/* Attributes for ModifyConfiguration */
++#define CONF_IRQ_CHANGE_VALID 0x100
++#define CONF_VCC_CHANGE_VALID 0x200
++#define CONF_VPP1_CHANGE_VALID 0x400
++#define CONF_VPP2_CHANGE_VALID 0x800
++
++/* For RequestConfiguration */
++typedef struct config_req_t {
++ u_int Attributes;
++ u_int Vcc, Vpp1, Vpp2;
++ u_int IntType;
++ u_int ConfigBase;
++ u_char Status, Pin, Copy, ExtStatus;
++ u_char ConfigIndex;
++ u_int Present;
++} config_req_t;
++
++/* Attributes for RequestConfiguration */
++#define CONF_ENABLE_IRQ 0x01
++#define CONF_ENABLE_DMA 0x02
++#define CONF_ENABLE_SPKR 0x04
++#define CONF_VALID_CLIENT 0x100
++
++/* IntType field */
++#define INT_MEMORY 0x01
++#define INT_MEMORY_AND_IO 0x02
++#define INT_CARDBUS 0x04
++#define INT_ZOOMED_VIDEO 0x08
++
++/* For RequestIO and ReleaseIO */
++typedef struct io_req_t {
++ ioaddr_t BasePort1;
++ ioaddr_t NumPorts1;
++ u_int Attributes1;
++ ioaddr_t BasePort2;
++ ioaddr_t NumPorts2;
++ u_int Attributes2;
++ u_int IOAddrLines;
++} io_req_t;
++
++/* Attributes for RequestIO and ReleaseIO */
++#define IO_SHARED 0x01
++#define IO_FIRST_SHARED 0x02
++#define IO_FORCE_ALIAS_ACCESS 0x04
++#define IO_DATA_PATH_WIDTH 0x18
++#define IO_DATA_PATH_WIDTH_8 0x00
++#define IO_DATA_PATH_WIDTH_16 0x08
++#define IO_DATA_PATH_WIDTH_AUTO 0x10
++
++/* For RequestIRQ and ReleaseIRQ */
++typedef struct irq_req_t {
++ u_int Attributes;
++ u_int AssignedIRQ;
++ u_int IRQInfo1, IRQInfo2;
++ void *Handler;
++ void *Instance;
++} irq_req_t;
++
++/* Attributes for RequestIRQ and ReleaseIRQ */
++#define IRQ_TYPE 0x03
++#define IRQ_TYPE_EXCLUSIVE 0x00
++#define IRQ_TYPE_TIME 0x01
++#define IRQ_TYPE_DYNAMIC_SHARING 0x02
++#define IRQ_FORCED_PULSE 0x04
++#define IRQ_FIRST_SHARED 0x08
++#define IRQ_HANDLE_PRESENT 0x10
++#define IRQ_PULSE_ALLOCATED 0x100
++
++/* Bits in IRQInfo1 field */
++#define IRQ_MASK 0x0f
++#define IRQ_NMI_ID 0x01
++#define IRQ_IOCK_ID 0x02
++#define IRQ_BERR_ID 0x04
++#define IRQ_VEND_ID 0x08
++#define IRQ_INFO2_VALID 0x10
++#define IRQ_LEVEL_ID 0x20
++#define IRQ_PULSE_ID 0x40
++#define IRQ_SHARE_ID 0x80
++
++typedef struct eventmask_t {
++ u_int Attributes;
++ u_int EventMask;
++} eventmask_t;
++
++#define CONF_EVENT_MASK_VALID 0x01
++
++/* Configuration registers present */
++#define PRESENT_OPTION 0x001
++#define PRESENT_STATUS 0x002
++#define PRESENT_PIN_REPLACE 0x004
++#define PRESENT_COPY 0x008
++#define PRESENT_EXT_STATUS 0x010
++#define PRESENT_IOBASE_0 0x020
++#define PRESENT_IOBASE_1 0x040
++#define PRESENT_IOBASE_2 0x080
++#define PRESENT_IOBASE_3 0x100
++#define PRESENT_IOSIZE 0x200
++
++/* For GetMemPage, MapMemPage */
++typedef struct memreq_t {
++ u_int CardOffset;
++ page_t Page;
++} memreq_t;
++
++/* For ModifyWindow */
++typedef struct modwin_t {
++ u_int Attributes;
++ u_int AccessSpeed;
++} modwin_t;
++
++/* For RequestWindow */
++typedef struct win_req_t {
++ u_int Attributes;
++ unsigned long Base;
++ u_int Size;
++ u_int AccessSpeed;
++} win_req_t;
++
++/* Attributes for RequestWindow */
++#define WIN_ADDR_SPACE 0x0001
++#define WIN_ADDR_SPACE_MEM 0x0000
++#define WIN_ADDR_SPACE_IO 0x0001
++#define WIN_MEMORY_TYPE 0x0002
++#define WIN_MEMORY_TYPE_CM 0x0000
++#define WIN_MEMORY_TYPE_AM 0x0002
++#define WIN_ENABLE 0x0004
++#define WIN_DATA_WIDTH 0x0018
++#define WIN_DATA_WIDTH_8 0x0000
++#define WIN_DATA_WIDTH_16 0x0008
++#define WIN_DATA_WIDTH_32 0x0010
++#define WIN_PAGED 0x0020
++#define WIN_SHARED 0x0040
++#define WIN_FIRST_SHARED 0x0080
++#define WIN_USE_WAIT 0x0100
++#define WIN_STRICT_ALIGN 0x0200
++#define WIN_MAP_BELOW_1MB 0x0400
++#define WIN_PREFETCH 0x0800
++#define WIN_CACHEABLE 0x1000
++#define WIN_BAR_MASK 0xe000
++#define WIN_BAR_SHIFT 13
++
++/* Attributes for RegisterClient */
++#define INFO_MASTER_CLIENT 0x01
++#define INFO_IO_CLIENT 0x02
++#define INFO_MTD_CLIENT 0x04
++#define INFO_MEM_CLIENT 0x08
++#define MAX_NUM_CLIENTS 3
++
++#define INFO_CARD_SHARE 0x10
++#define INFO_CARD_EXCL 0x20
++
++typedef struct cs_status_t {
++ u_char Function;
++ event_t CardState;
++ event_t SocketState;
++} cs_status_t;
++
++typedef struct error_info_t {
++ int func;
++ int retcode;
++} error_info_t;
++
++/* Special stuff for binding drivers to sockets */
++typedef struct bind_req_t {
++ socket_t Socket;
++ u_char Function;
++ dev_info_t *dev_info;
++} bind_req_t;
++
++/* Flag to bind to all functions */
++#define BIND_FN_ALL 0xff
++
++typedef struct mtd_bind_t {
++ socket_t Socket;
++ u_int Attributes;
++ u_int CardOffset;
++ dev_info_t *dev_info;
++} mtd_bind_t;
++
++/* Events */
++#define CS_EVENT_PRI_LOW 0
++#define CS_EVENT_PRI_HIGH 1
++
++#define CS_EVENT_WRITE_PROTECT 0x000001
++#define CS_EVENT_CARD_LOCK 0x000002
++#define CS_EVENT_CARD_INSERTION 0x000004
++#define CS_EVENT_CARD_REMOVAL 0x000008
++#define CS_EVENT_BATTERY_DEAD 0x000010
++#define CS_EVENT_BATTERY_LOW 0x000020
++#define CS_EVENT_READY_CHANGE 0x000040
++#define CS_EVENT_CARD_DETECT 0x000080
++#define CS_EVENT_RESET_REQUEST 0x000100
++#define CS_EVENT_RESET_PHYSICAL 0x000200
++#define CS_EVENT_CARD_RESET 0x000400
++#define CS_EVENT_REGISTRATION_COMPLETE 0x000800
++#define CS_EVENT_RESET_COMPLETE 0x001000
++#define CS_EVENT_PM_SUSPEND 0x002000
++#define CS_EVENT_PM_RESUME 0x004000
++#define CS_EVENT_INSERTION_REQUEST 0x008000
++#define CS_EVENT_EJECTION_REQUEST 0x010000
++#define CS_EVENT_MTD_REQUEST 0x020000
++#define CS_EVENT_ERASE_COMPLETE 0x040000
++#define CS_EVENT_REQUEST_ATTENTION 0x080000
++#define CS_EVENT_CB_DETECT 0x100000
++#define CS_EVENT_3VCARD 0x200000
++#define CS_EVENT_XVCARD 0x400000
++
++/* Return codes */
++#define CS_SUCCESS 0x00
++#define CS_BAD_ADAPTER 0x01
++#define CS_BAD_ATTRIBUTE 0x02
++#define CS_BAD_BASE 0x03
++#define CS_BAD_EDC 0x04
++#define CS_BAD_IRQ 0x06
++#define CS_BAD_OFFSET 0x07
++#define CS_BAD_PAGE 0x08
++#define CS_READ_FAILURE 0x09
++#define CS_BAD_SIZE 0x0a
++#define CS_BAD_SOCKET 0x0b
++#define CS_BAD_TYPE 0x0d
++#define CS_BAD_VCC 0x0e
++#define CS_BAD_VPP 0x0f
++#define CS_BAD_WINDOW 0x11
++#define CS_WRITE_FAILURE 0x12
++#define CS_NO_CARD 0x14
++#define CS_UNSUPPORTED_FUNCTION 0x15
++#define CS_UNSUPPORTED_MODE 0x16
++#define CS_BAD_SPEED 0x17
++#define CS_BUSY 0x18
++#define CS_GENERAL_FAILURE 0x19
++#define CS_WRITE_PROTECTED 0x1a
++#define CS_BAD_ARG_LENGTH 0x1b
++#define CS_BAD_ARGS 0x1c
++#define CS_CONFIGURATION_LOCKED 0x1d
++#define CS_IN_USE 0x1e
++#define CS_NO_MORE_ITEMS 0x1f
++#define CS_OUT_OF_RESOURCE 0x20
++#define CS_BAD_HANDLE 0x21
++
++#define CS_BAD_TUPLE 0x40
++
++#ifdef __KERNEL__
++
++/*
++ * The main Card Services entry point
++ */
++
++enum service {
++ AccessConfigurationRegister, AddSocketServices,
++ AdjustResourceInfo, CheckEraseQueue, CloseMemory, CopyMemory,
++ DeregisterClient, DeregisterEraseQueue, GetCardServicesInfo,
++ GetClientInfo, GetConfigurationInfo, GetEventMask,
++ GetFirstClient, GetFirstPartion, GetFirstRegion, GetFirstTuple,
++ GetNextClient, GetNextPartition, GetNextRegion, GetNextTuple,
++ GetStatus, GetTupleData, MapLogSocket, MapLogWindow, MapMemPage,
++ MapPhySocket, MapPhyWindow, ModifyConfiguration, ModifyWindow,
++ OpenMemory, ParseTuple, ReadMemory, RegisterClient,
++ RegisterEraseQueue, RegisterMTD, RegisterTimer,
++ ReleaseConfiguration, ReleaseExclusive, ReleaseIO, ReleaseIRQ,
++ ReleaseSocketMask, ReleaseWindow, ReplaceSocketServices,
++ RequestConfiguration, RequestExclusive, RequestIO, RequestIRQ,
++ RequestSocketMask, RequestWindow, ResetCard, ReturnSSEntry,
++ SetEventMask, SetRegion, ValidateCIS, VendorSpecific,
++ WriteMemory, BindDevice, BindMTD, ReportError,
++ SuspendCard, ResumeCard, EjectCard, InsertCard, ReplaceCIS,
++ GetFirstWindow, GetNextWindow, GetMemPage
++};
++
++#ifdef IN_CARD_SERVICES
++extern int CardServices(int func, void *a1, void *a2, void *a3);
++#else
++extern int CardServices(int func, ...);
++#endif
++
++#endif /* __KERNEL__ */
++
++#endif /* _LINUX_CS_H */
+
+
+Property changes on: drakx/trunk/mdk-stage1/pcmcia/cs.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pcmciacs_typesh">Added: drakx/trunk/mdk-stage1/pcmcia/cs_types.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/pcmcia/cs_types.h (rev 0)
++++ drakx/trunk/mdk-stage1/pcmcia/cs_types.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,70 @@
++/*
++ * cs_types.h 1.19 2001/08/24 12:16:12
++ *
++ * The contents of this file are subject to the Mozilla Public License
++ * Version 1.1 (the &quot;License&quot;); you may not use this file except in
++ * compliance with the License. You may obtain a copy of the License
++ * at http://www.mozilla.org/MPL/
++ *
++ * Software distributed under the License is distributed on an &quot;AS IS&quot;
++ * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
++ * the License for the specific language governing rights and
++ * limitations under the License.
++ *
++ * The initial developer of the original code is David A. Hinds
++ * &lt;dahinds@users.sourceforge.net&gt;. Portions created by David A. Hinds
++ * are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
++ *
++ * Alternatively, the contents of this file may be used under the
++ * terms of the GNU General Public License version 2 (the &quot;GPL&quot;), in
++ * which case the provisions of the GPL are applicable instead of the
++ * above. If you wish to allow the use of your version of this file
++ * only under the terms of the GPL and not to allow others to use
++ * your version of this file under the MPL, indicate your decision by
++ * deleting the provisions above and replace them with the notice and
++ * other provisions required by the GPL. If you do not delete the
++ * provisions above, a recipient may use your version of this file
++ * under either the MPL or the GPL.
++ */
++
++#ifndef _LINUX_CS_TYPES_H
++#define _LINUX_CS_TYPES_H
++
++#ifdef __linux__
++#ifdef __KERNEL__
++#include &lt;linux/types.h&gt;
++#else
++#include &lt;sys/types.h&gt;
++#endif
++#endif
++
++#ifdef __arm__
++typedef u_int ioaddr_t;
++#else
++typedef u_short ioaddr_t;
++#endif
++
++typedef u_short socket_t;
++typedef u_int event_t;
++typedef u_char cisdata_t;
++typedef u_short page_t;
++
++struct client_t;
++typedef struct client_t *client_handle_t;
++
++struct window_t;
++typedef struct window_t *window_handle_t;
++
++struct region_t;
++typedef struct region_t *memory_handle_t;
++
++struct eraseq_t;
++typedef struct eraseq_t *eraseq_handle_t;
++
++#ifndef DEV_NAME_LEN
++#define DEV_NAME_LEN 32
++#endif
++
++typedef char dev_info_t[DEV_NAME_LEN];
++
++#endif /* _LINUX_CS_TYPES_H */
+
+
+Property changes on: drakx/trunk/mdk-stage1/pcmcia/cs_types.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pcmciadriver_opsh">Added: drakx/trunk/mdk-stage1/pcmcia/driver_ops.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/pcmcia/driver_ops.h (rev 0)
++++ drakx/trunk/mdk-stage1/pcmcia/driver_ops.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,73 @@
++/*
++ * driver_ops.h 1.16 2001/08/24 12:16:13
++ *
++ * The contents of this file are subject to the Mozilla Public License
++ * Version 1.1 (the &quot;License&quot;); you may not use this file except in
++ * compliance with the License. You may obtain a copy of the License
++ * at http://www.mozilla.org/MPL/
++ *
++ * Software distributed under the License is distributed on an &quot;AS IS&quot;
++ * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
++ * the License for the specific language governing rights and
++ * limitations under the License.
++ *
++ * The initial developer of the original code is David A. Hinds
++ * &lt;dahinds@users.sourceforge.net&gt;. Portions created by David A. Hinds
++ * are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
++ *
++ * Alternatively, the contents of this file may be used under the
++ * terms of the GNU General Public License version 2 (the &quot;GPL&quot;), in
++ * which case the provisions of the GPL are applicable instead of the
++ * above. If you wish to allow the use of your version of this file
++ * only under the terms of the GPL and not to allow others to use
++ * your version of this file under the MPL, indicate your decision by
++ * deleting the provisions above and replace them with the notice and
++ * other provisions required by the GPL. If you do not delete the
++ * provisions above, a recipient may use your version of this file
++ * under either the MPL or the GPL.
++ */
++
++#ifndef _LINUX_DRIVER_OPS_H
++#define _LINUX_DRIVER_OPS_H
++
++#ifndef DEV_NAME_LEN
++#define DEV_NAME_LEN 32
++#endif
++
++#ifdef __KERNEL__
++
++typedef struct dev_node_t {
++ char dev_name[DEV_NAME_LEN];
++ u_short major, minor;
++ struct dev_node_t *next;
++} dev_node_t;
++
++typedef struct dev_locator_t {
++ enum { LOC_ISA, LOC_PCI } bus;
++ union {
++ struct {
++ u_short io_base_1, io_base_2;
++ u_long mem_base;
++ u_char irq, dma;
++ } isa;
++ struct {
++ u_char bus;
++ u_char devfn;
++ } pci;
++ } b;
++} dev_locator_t;
++
++typedef struct driver_operations {
++ char *name;
++ dev_node_t *(*attach) (dev_locator_t *loc);
++ void (*suspend) (dev_node_t *dev);
++ void (*resume) (dev_node_t *dev);
++ void (*detach) (dev_node_t *dev);
++} driver_operations;
++
++int register_driver(struct driver_operations *ops);
++void unregister_driver(struct driver_operations *ops);
++
++#endif /* __KERNEL__ */
++
++#endif /* _LINUX_DRIVER_OPS_H */
+
+
+Property changes on: drakx/trunk/mdk-stage1/pcmcia/driver_ops.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pcmciadsh">Added: drakx/trunk/mdk-stage1/pcmcia/ds.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/pcmcia/ds.h (rev 0)
++++ drakx/trunk/mdk-stage1/pcmcia/ds.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,148 @@
++/*
++ * ds.h 1.57 2001/08/24 12:16:13
++ *
++ * The contents of this file are subject to the Mozilla Public License
++ * Version 1.1 (the &quot;License&quot;); you may not use this file except in
++ * compliance with the License. You may obtain a copy of the License
++ * at http://www.mozilla.org/MPL/
++ *
++ * Software distributed under the License is distributed on an &quot;AS IS&quot;
++ * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
++ * the License for the specific language governing rights and
++ * limitations under the License.
++ *
++ * The initial developer of the original code is David A. Hinds
++ * &lt;dahinds@users.sourceforge.net&gt;. Portions created by David A. Hinds
++ * are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
++ *
++ * Alternatively, the contents of this file may be used under the
++ * terms of the GNU General Public License version 2 (the &quot;GPL&quot;), in
++ * which case the provisions of the GPL are applicable instead of the
++ * above. If you wish to allow the use of your version of this file
++ * only under the terms of the GPL and not to allow others to use
++ * your version of this file under the MPL, indicate your decision by
++ * deleting the provisions above and replace them with the notice and
++ * other provisions required by the GPL. If you do not delete the
++ * provisions above, a recipient may use your version of this file
++ * under either the MPL or the GPL.
++ */
++
++#ifndef _LINUX_DS_H
++#define _LINUX_DS_H
++
++#include &lt;pcmcia_/driver_ops.h&gt;
++#include &lt;pcmcia_/bulkmem.h&gt;
++
++typedef struct tuple_parse_t {
++ tuple_t tuple;
++ cisdata_t data[255];
++ cisparse_t parse;
++} tuple_parse_t;
++
++typedef struct win_info_t {
++ window_handle_t handle;
++ win_req_t window;
++ memreq_t map;
++} win_info_t;
++
++typedef struct bind_info_t {
++ dev_info_t dev_info;
++ u_char function;
++ struct dev_link_t *instance;
++ char name[DEV_NAME_LEN];
++ u_short major, minor;
++ void *next;
++} bind_info_t;
++
++typedef struct mtd_info_t {
++ dev_info_t dev_info;
++ u_int Attributes;
++ u_int CardOffset;
++} mtd_info_t;
++
++typedef union ds_ioctl_arg_t {
++ servinfo_t servinfo;
++ adjust_t adjust;
++ config_info_t config;
++ tuple_t tuple;
++ tuple_parse_t tuple_parse;
++ client_req_t client_req;
++ cs_status_t status;
++ conf_reg_t conf_reg;
++ cisinfo_t cisinfo;
++ region_info_t region;
++ bind_info_t bind_info;
++ mtd_info_t mtd_info;
++ win_info_t win_info;
++ cisdump_t cisdump;
++} ds_ioctl_arg_t;
++
++#define DS_GET_CARD_SERVICES_INFO _IOR ('d', 1, servinfo_t)
++#define DS_ADJUST_RESOURCE_INFO _IOWR('d', 2, adjust_t)
++#define DS_GET_CONFIGURATION_INFO _IOWR('d', 3, config_info_t)
++#define DS_GET_FIRST_TUPLE _IOWR('d', 4, tuple_t)
++#define DS_GET_NEXT_TUPLE _IOWR('d', 5, tuple_t)
++#define DS_GET_TUPLE_DATA _IOWR('d', 6, tuple_parse_t)
++#define DS_PARSE_TUPLE _IOWR('d', 7, tuple_parse_t)
++#define DS_RESET_CARD _IO ('d', 8)
++#define DS_GET_STATUS _IOWR('d', 9, cs_status_t)
++#define DS_ACCESS_CONFIGURATION_REGISTER _IOWR('d', 10, conf_reg_t)
++#define DS_VALIDATE_CIS _IOR ('d', 11, cisinfo_t)
++#define DS_SUSPEND_CARD _IO ('d', 12)
++#define DS_RESUME_CARD _IO ('d', 13)
++#define DS_EJECT_CARD _IO ('d', 14)
++#define DS_INSERT_CARD _IO ('d', 15)
++#define DS_GET_FIRST_REGION _IOWR('d', 16, region_info_t)
++#define DS_GET_NEXT_REGION _IOWR('d', 17, region_info_t)
++#define DS_REPLACE_CIS _IOWR('d', 18, cisdump_t)
++#define DS_GET_FIRST_WINDOW _IOR ('d', 19, win_info_t)
++#define DS_GET_NEXT_WINDOW _IOWR('d', 20, win_info_t)
++#define DS_GET_MEM_PAGE _IOWR('d', 21, win_info_t)
++
++#define DS_BIND_REQUEST _IOWR('d', 60, bind_info_t)
++#define DS_GET_DEVICE_INFO _IOWR('d', 61, bind_info_t)
++#define DS_GET_NEXT_DEVICE _IOWR('d', 62, bind_info_t)
++#define DS_UNBIND_REQUEST _IOW ('d', 63, bind_info_t)
++#define DS_BIND_MTD _IOWR('d', 64, mtd_info_t)
++
++#ifdef __KERNEL__
++
++typedef struct dev_link_t {
++ dev_node_t *dev;
++ u_int state, open;
++ wait_queue_head_t pending;
++ struct timer_list release;
++ client_handle_t handle;
++ io_req_t io;
++ irq_req_t irq;
++ config_req_t conf;
++ window_handle_t win;
++ void *priv;
++ struct dev_link_t *next;
++} dev_link_t;
++
++/* Flags for device state */
++#define DEV_PRESENT 0x01
++#define DEV_CONFIG 0x02
++#define DEV_STALE_CONFIG 0x04 /* release on close */
++#define DEV_STALE_LINK 0x08 /* detach on release */
++#define DEV_CONFIG_PENDING 0x10
++#define DEV_RELEASE_PENDING 0x20
++#define DEV_SUSPEND 0x40
++#define DEV_BUSY 0x80
++
++#define DEV_OK(l) \
++ ((l) &amp;&amp; ((l-&gt;state &amp; ~DEV_BUSY) == (DEV_CONFIG|DEV_PRESENT)))
++
++int register_pccard_driver(dev_info_t *dev_info,
++ dev_link_t *(*attach)(void),
++ void (*detach)(dev_link_t *));
++
++int unregister_pccard_driver(dev_info_t *dev_info);
++
++#define register_pcmcia_driver register_pccard_driver
++#define unregister_pcmcia_driver unregister_pccard_driver
++
++#endif /* __KERNEL__ */
++
++#endif /* _LINUX_DS_H */
+
+
+Property changes on: drakx/trunk/mdk-stage1/pcmcia/ds.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pcmciai82365h">Added: drakx/trunk/mdk-stage1/pcmcia/i82365.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/pcmcia/i82365.h (rev 0)
++++ drakx/trunk/mdk-stage1/pcmcia/i82365.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,135 @@
++/*
++ * i82365.h 1.21 2001/08/24 12:15:33
++ *
++ * The contents of this file are subject to the Mozilla Public License
++ * Version 1.1 (the &quot;License&quot;); you may not use this file except in
++ * compliance with the License. You may obtain a copy of the License
++ * at http://www.mozilla.org/MPL/
++ *
++ * Software distributed under the License is distributed on an &quot;AS IS&quot;
++ * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
++ * the License for the specific language governing rights and
++ * limitations under the License.
++ *
++ * The initial developer of the original code is David A. Hinds
++ * &lt;dahinds@users.sourceforge.net&gt;. Portions created by David A. Hinds
++ * are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
++ *
++ * Alternatively, the contents of this file may be used under the
++ * terms of the GNU General Public License version 2 (the &quot;GPL&quot;), in
++ * which case the provisions of the GPL are applicable instead of the
++ * above. If you wish to allow the use of your version of this file
++ * only under the terms of the GPL and not to allow others to use
++ * your version of this file under the MPL, indicate your decision by
++ * deleting the provisions above and replace them with the notice and
++ * other provisions required by the GPL. If you do not delete the
++ * provisions above, a recipient may use your version of this file
++ * under either the MPL or the GPL.
++ */
++
++#ifndef _LINUX_I82365_H
++#define _LINUX_I82365_H
++
++/* register definitions for the Intel 82365SL PCMCIA controller */
++
++/* Offsets for PCIC registers */
++#define I365_IDENT 0x00 /* Identification and revision */
++#define I365_STATUS 0x01 /* Interface status */
++#define I365_POWER 0x02 /* Power and RESETDRV control */
++#define I365_INTCTL 0x03 /* Interrupt and general control */
++#define I365_CSC 0x04 /* Card status change */
++#define I365_CSCINT 0x05 /* Card status change interrupt control */
++#define I365_ADDRWIN 0x06 /* Address window enable */
++#define I365_IOCTL 0x07 /* I/O control */
++#define I365_GENCTL 0x16 /* Card detect and general control */
++#define I365_GBLCTL 0x1E /* Global control register */
++
++/* Offsets for I/O and memory window registers */
++#define I365_IO(map) (0x08+((map)&lt;&lt;2))
++#define I365_MEM(map) (0x10+((map)&lt;&lt;3))
++#define I365_W_START 0
++#define I365_W_STOP 2
++#define I365_W_OFF 4
++
++/* Flags for I365_STATUS */
++#define I365_CS_BVD1 0x01
++#define I365_CS_STSCHG 0x01
++#define I365_CS_BVD2 0x02
++#define I365_CS_SPKR 0x02
++#define I365_CS_DETECT 0x0C
++#define I365_CS_WRPROT 0x10
++#define I365_CS_READY 0x20 /* Inverted */
++#define I365_CS_POWERON 0x40
++#define I365_CS_GPI 0x80
++
++/* Flags for I365_POWER */
++#define I365_PWR_OFF 0x00 /* Turn off the socket */
++#define I365_PWR_OUT 0x80 /* Output enable */
++#define I365_PWR_NORESET 0x40 /* Disable RESETDRV on resume */
++#define I365_PWR_AUTO 0x20 /* Auto pwr switch enable */
++#define I365_VCC_MASK 0x18 /* Mask for turning off Vcc */
++/* There are different layouts for B-step and DF-step chips: the B
++ step has independent Vpp1/Vpp2 control, and the DF step has only
++ Vpp1 control, plus 3V control */
++#define I365_VCC_5V 0x10 /* Vcc = 5.0v */
++#define I365_VCC_3V 0x18 /* Vcc = 3.3v */
++#define I365_VPP2_MASK 0x0c /* Mask for turning off Vpp2 */
++#define I365_VPP2_5V 0x04 /* Vpp2 = 5.0v */
++#define I365_VPP2_12V 0x08 /* Vpp2 = 12.0v */
++#define I365_VPP1_MASK 0x03 /* Mask for turning off Vpp1 */
++#define I365_VPP1_5V 0x01 /* Vpp2 = 5.0v */
++#define I365_VPP1_12V 0x02 /* Vpp2 = 12.0v */
++
++/* Flags for I365_INTCTL */
++#define I365_RING_ENA 0x80
++#define I365_PC_RESET 0x40
++#define I365_PC_IOCARD 0x20
++#define I365_INTR_ENA 0x10
++#define I365_IRQ_MASK 0x0F
++
++/* Flags for I365_CSC and I365_CSCINT*/
++#define I365_CSC_BVD1 0x01
++#define I365_CSC_STSCHG 0x01
++#define I365_CSC_BVD2 0x02
++#define I365_CSC_READY 0x04
++#define I365_CSC_DETECT 0x08
++#define I365_CSC_ANY 0x0F
++#define I365_CSC_GPI 0x10
++
++/* Flags for I365_ADDRWIN */
++#define I365_ENA_IO(map) (0x40 &lt;&lt; (map))
++#define I365_ENA_MEM(map) (0x01 &lt;&lt; (map))
++
++/* Flags for I365_IOCTL */
++#define I365_IOCTL_MASK(map) (0x0F &lt;&lt; (map&lt;&lt;2))
++#define I365_IOCTL_WAIT(map) (0x08 &lt;&lt; (map&lt;&lt;2))
++#define I365_IOCTL_0WS(map) (0x04 &lt;&lt; (map&lt;&lt;2))
++#define I365_IOCTL_IOCS16(map) (0x02 &lt;&lt; (map&lt;&lt;2))
++#define I365_IOCTL_16BIT(map) (0x01 &lt;&lt; (map&lt;&lt;2))
++
++/* Flags for I365_GENCTL */
++#define I365_CTL_16DELAY 0x01
++#define I365_CTL_RESET 0x02
++#define I365_CTL_GPI_ENA 0x04
++#define I365_CTL_GPI_CTL 0x08
++#define I365_CTL_RESUME 0x10
++#define I365_CTL_SW_IRQ 0x20
++
++/* Flags for I365_GBLCTL */
++#define I365_GBL_PWRDOWN 0x01
++#define I365_GBL_CSC_LEV 0x02
++#define I365_GBL_WRBACK 0x04
++#define I365_GBL_IRQ_0_LEV 0x08
++#define I365_GBL_IRQ_1_LEV 0x10
++
++/* Flags for memory window registers */
++#define I365_MEM_16BIT 0x8000 /* In memory start high byte */
++#define I365_MEM_0WS 0x4000
++#define I365_MEM_WS1 0x8000 /* In memory stop high byte */
++#define I365_MEM_WS0 0x4000
++#define I365_MEM_WRPROT 0x8000 /* In offset high byte */
++#define I365_MEM_REG 0x4000
++
++#define I365_REG(slot, reg) (((slot) &lt;&lt; 6) + reg)
++
++#endif /* _LINUX_I82365_H */
+
+
+Property changes on: drakx/trunk/mdk-stage1/pcmcia/i82365.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pcmcialex_configl">Added: drakx/trunk/mdk-stage1/pcmcia/lex_config.l</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/pcmcia/lex_config.l (rev 0)
++++ drakx/trunk/mdk-stage1/pcmcia/lex_config.l 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,224 @@
++/* Special state for handling include files */
++%x src
++
++%{
++/*
++ * Startup tool for non statically mapped PCMCIA sockets
++ *
++ * (C) 2005 Dominik Brodowski &lt;linux@brodo.de&gt;
++ *
++ * The initial developer of the original code is David A. Hinds
++ * &lt;dahinds@users.sourceforge.net&gt;. Portions created by David A. Hinds
++ * are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
++ *
++ * License: GPL v2
++ */
++
++#undef src
++
++#include &lt;stdio.h&gt;
++#include &lt;stdlib.h&gt;
++#include &lt;unistd.h&gt;
++#include &lt;string.h&gt;
++#include &lt;syslog.h&gt;
++
++#ifdef HAS_WORDEXP
++#include &lt;wordexp.h&gt;
++#else
++#include &lt;glob.h&gt;
++#endif
++
++#define src 1
++
++#include &quot;yacc_config.h&quot;
++
++#define YY_NO_INPUT 1 /* mdk-stage1 */
++#define YY_NO_UNPUT 1 /* mdk-stage1 */
++extern int yyparse(void); /* mdk-stage1 */
++
++/* For assembling nice error messages */
++char *current_file;
++int current_lineno;
++
++static int lex_number(char *s);
++static int lex_string(char *s);
++static void do_source(char *fn);
++static int do_eof(void);
++
++%}
++
++int [0-9]+
++hex 0x[0-9a-fA-F]+
++str \&quot;([^&quot;]|\\.)*\&quot;
++
++%%
++
++source[ \t]+ BEGIN(src); return SOURCE;
++&lt;src&gt;[^\n]+ do_source(yytext); BEGIN(INITIAL);
++&lt;&lt;EOF&gt;&gt; if (do_eof()) yyterminate();
++
++\n current_lineno++;
++[ \t]* /* skip */ ;
++[ ]*[#;].* /* skip */ ;
++
++exclude return EXCLUDE;
++include return INCLUDE;
++irq return IRQ_NO;
++port return PORT;
++memory return MEMORY;
++module /* skip */ ;
++
++{int} return lex_number(yytext);
++
++{hex} return lex_number(yytext);
++
++{str} return lex_string(yytext);
++
++. return yytext[0];
++
++%%
++
++#ifndef yywrap
++int yywrap() { return 1; }
++#endif
++
++/*======================================================================
++
++ Stuff to parse basic data types
++
++======================================================================*/
++
++static int lex_number(char *s)
++{
++ yylval.num = strtoul(s, NULL, 0);
++ return NUMBER;
++}
++
++static int lex_string(char *s)
++{
++ int n = strlen(s);
++ yylval.str = malloc(n-1);
++ strncpy(yylval.str, s+1, n-2);
++ yylval.str[n-2] = '\0';
++ return STRING;
++}
++
++/*======================================================================
++
++ Code to support nesting of configuration files
++
++======================================================================*/
++
++#define MAX_SOURCE_DEPTH 4
++struct source_stack {
++ YY_BUFFER_STATE buffer;
++ char *filename;
++ int lineno, fileno;
++ FILE *file;
++#ifdef HAS_WORDEXP
++ wordexp_t word;
++#else
++ glob_t glob;
++#endif
++} source_stack[MAX_SOURCE_DEPTH];
++static int source_stack_ptr = 0;
++static int parse_env = 0;
++
++static int get_glob(void)
++{
++ struct source_stack *s = &amp;source_stack[source_stack_ptr];
++#ifdef HAS_WORDEXP
++ while (s-&gt;fileno &lt; s-&gt;word.we_wordc) {
++ char *fn = s-&gt;word.we_wordv[s-&gt;fileno];
++#else
++ while (s-&gt;fileno &lt; s-&gt;glob.gl_pathc) {
++ char *fn = s-&gt;glob.gl_pathv[s-&gt;fileno];
++#endif
++ s-&gt;file = fopen(fn, &quot;r&quot;);
++ if (s-&gt;file == NULL) {
++ if (strpbrk(fn, &quot;?*[&quot;) == NULL)
++ syslog(LOG_ERR, &quot;could not open '%s': %m&quot;, fn);
++ s-&gt;fileno++;
++ } else {
++ current_lineno = 1;
++ current_file = strdup(fn);
++ yy_switch_to_buffer(yy_create_buffer(s-&gt;file, YY_BUF_SIZE));
++ source_stack_ptr++;
++ s-&gt;fileno++;
++ return 0;
++ }
++ }
++ return -1;
++}
++
++static void do_source(char *fn)
++{
++ struct source_stack *s = &amp;source_stack[source_stack_ptr];
++
++ if (source_stack_ptr &gt;= MAX_SOURCE_DEPTH) {
++ syslog(LOG_ERR, &quot;source depth limit exceeded&quot;);
++ return;
++ }
++#ifdef HAS_WORDEXP
++ wordexp(fn, &amp;s-&gt;word, 0);
++#else
++ glob(fn, GLOB_NOCHECK, NULL, &amp;s-&gt;glob);
++#endif
++ s-&gt;fileno = 0;
++ s-&gt;buffer = YY_CURRENT_BUFFER;
++ s-&gt;lineno = current_lineno;
++ s-&gt;filename = current_file;
++ get_glob();
++}
++
++static int do_eof(void)
++{
++ struct source_stack *s = &amp;source_stack[--source_stack_ptr];
++ if (source_stack_ptr &lt; 0) {
++ if (parse_env == 0) {
++ char *t = getenv(&quot;PCMCIA_OPTS&quot;);
++ if (t == NULL) return -1;
++ parse_env = 1;
++ source_stack_ptr = 0;
++ current_file = &quot;PCMCIA_OPTS&quot;;
++ current_lineno = 1;
++ yy_scan_string(t);
++ return 0;
++ } else
++ return -1;
++ }
++ fclose(s-&gt;file);
++ free(current_file);
++ yy_delete_buffer(YY_CURRENT_BUFFER);
++ if (get_glob() != 0) {
++ yy_switch_to_buffer(s-&gt;buffer);
++ current_lineno = s-&gt;lineno;
++ current_file = s-&gt;filename;
++ }
++ return 0;
++}
++
++/*======================================================================
++
++ The main entry point... returns -1 if the file can't be accessed.
++
++======================================================================*/
++
++int parse_configfile(char *fn)
++{
++ FILE *f;
++
++ f = fopen(fn, &quot;r&quot;);
++ if (!f) {
++ syslog(LOG_ERR, &quot;could not open '%s': %m&quot;, fn);
++ return -1;
++ }
++ current_lineno = 1;
++ current_file = fn;
++ source_stack_ptr = 0;
++ yyrestart(f);
++ yyparse();
++ fclose(f);
++ return 0;
++}
++
+
+<a id="drakxtrunkmdkstage1pcmciamerge_from_pcitable">Added: drakx/trunk/mdk-stage1/pcmcia/merge_from_pcitable</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/pcmcia/merge_from_pcitable (rev 0)
++++ drakx/trunk/mdk-stage1/pcmcia/merge_from_pcitable 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,47 @@
++#!/usr/bin/perl
++
++# This program will show on stdout yenta_socket stuff from pcitable
++# which is not in probe.c
++
++use MDK::Common;
++
++my %probes;
++foreach (cat_('probe.c')) {
++ if (/^pci_id_t pci_id\[\] = {/ ... /^};/) {
++ /^\s*{\s*0x([\da-f]+),\s*0x([\da-f]+),\s*&quot;([^&quot;]*)&quot;,\s*&quot;([^&quot;]*)&quot;\s*}/
++ and $probes{&quot;$1$2&quot;} = { vendor =&gt; $1, device =&gt; $2, driver =&gt; $3, name =&gt; $4 };
++ }
++}
++
++require '/usr/bin/merge2pcitable.pl';
++my $drivers = read_pcitable(&quot;/usr/share/ldetect-lst/pcitable&quot;);
++
++my %pcitable = map_each {
++ $::a =~ /^(....)(....)/ or die;
++ &quot;$1$2&quot; =&gt; { vendor =&gt; $1, device =&gt; $2, driver =&gt; $::b-&gt;[0], name =&gt; $::b-&gt;[1] };
++} %$drivers;
++
++my @yenta_socket_ids = grep { $pcitable{$_}{driver} eq 'yenta_socket' } keys %pcitable;
++
++if (my @missing_in_probe_c = difference2(\@yenta_socket_ids, [ keys %probes ])) {
++ print &quot;Missing in `probe.c':\n&quot;,
++ map {
++ my $p = $pcitable{$_};
++ qq( { 0x$p-&gt;{vendor}, 0x$p-&gt;{device}, &quot;yenta_socket&quot;, &quot;$p-&gt;{name}&quot; },\n);
++ } sort @missing_in_probe_c;
++}
++
++my @res;
++foreach my $id (keys %probes) {
++ my $p = $probes{$id};
++ my $r = $pcitable{$id};
++ if (!$r || $r-&gt;{driver} ne 'yenta_socket') {
++ push @res, qq(0x$p-&gt;{vendor}\t0x$p-&gt;{device}\t&quot;yenta_socket&quot;\t&quot;) . ($r ? $r-&gt;{name} : '(COMPLETELY MISSING)') . qq(&quot;\n);
++ }
++ if ($r &amp;&amp; $r-&gt;{driver} ne 'unknown' &amp;&amp; $r-&gt;{driver} ne $p-&gt;{driver}) {
++ warn &quot;WARNING: $id: pcitable:$r-&gt;{driver} vs probe.c:$p-&gt;{driver}\n&quot;;
++ }
++}
++if (@res) {
++ print &quot;\n&quot;, &quot;Missing in pcitable:\n&quot;, sort @res;
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/pcmcia/merge_from_pcitable
+___________________________________________________________________
+Added: svn:executable
+ + *
+
+<a id="drakxtrunkmdkstage1pcmciapcmciah">Added: drakx/trunk/mdk-stage1/pcmcia/pcmcia.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/pcmcia/pcmcia.h (rev 0)
++++ drakx/trunk/mdk-stage1/pcmcia/pcmcia.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,21 @@
++/*
++ * Guillaume Cottenceau (gc@mandriva.com)
++ *
++ * Copyright 2000 Mandriva
++ *
++ * This software may be freely redistributed under the terms of the GNU
++ * public license.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++#ifndef _PCMCIA_CARDMGR_INTERFACE_H_
++#define _PCMCIA_CARDMGR_INTERFACE_H_
++
++char * pcmcia_probe(void);
++void pcmcia_socket_startup(int socket_no);
++
++#endif
+
+
+Property changes on: drakx/trunk/mdk-stage1/pcmcia/pcmcia.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pcmciaprobec">Added: drakx/trunk/mdk-stage1/pcmcia/probe.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/pcmcia/probe.c (rev 0)
++++ drakx/trunk/mdk-stage1/pcmcia/probe.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,524 @@
++/*
++ * Guillaume Cottenceau (gc@mandriva.com)
++ *
++ * Copyright 2000-2001 Mandriva
++ *
++ * This software may be freely redistributed under the terms of the GNU
++ * public license.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ *
++ * Code comes from /anonymous@projects.sourceforge.net:/pub/pcmcia-cs/pcmcia-cs-3.1.29.tar.bz2
++ */
++
++/*======================================================================
++
++ PCMCIA controller probe
++
++ probe.c 1.55 2001/08/24 12:19:20
++
++ The contents of this file are subject to the Mozilla Public
++ License Version 1.1 (the &quot;License&quot;); you may not use this file
++ except in compliance with the License. You may obtain a copy of
++ the License at http://www.mozilla.org/MPL/
++
++ Software distributed under the License is distributed on an &quot;AS
++ IS&quot; basis, WITHOUT WARRANTY OF ANY KIND, either express or
++ implied. See the License for the specific language governing
++ rights and limitations under the License.
++
++ The initial developer of the original code is David A. Hinds
++ &lt;dahinds@users.sourceforge.net&gt;. Portions created by David A. Hinds
++ are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
++
++ Alternatively, the contents of this file may be used under the
++ terms of the GNU General Public License version 2 (the &quot;GPL&quot;), in
++ which case the provisions of the GPL are applicable instead of the
++ above. If you wish to allow the use of your version of this file
++ only under the terms of the GPL and not to allow others to use
++ your version of this file under the MPL, indicate your decision
++ by deleting the provisions above and replace them with the notice
++ and other provisions required by the GPL. If you do not delete
++ the provisions above, a recipient may use your version of this
++ file under either the MPL or the GPL.
++
++======================================================================*/
++
++#include &lt;sys/types.h&gt;
++#include &lt;stdio.h&gt;
++#include &lt;stdlib.h&gt;
++#include &lt;unistd.h&gt;
++#include &lt;string.h&gt;
++#include &lt;errno.h&gt;
++#include &lt;fcntl.h&gt;
++
++//mdk-stage1// #include &lt;pcmcia/config.h&gt;
++#include &quot;log.h&quot;
++#include &quot;pcmcia.h&quot;
++
++/*====================================================================*/
++
++//mdk-stage1// #ifdef CONFIG_PCI
++
++typedef struct {
++ u_short vendor, device;
++ char *modname;
++ char *name;
++} pci_id_t;
++
++pci_id_t pci_id[] = {
++ { 0x1013, 0x1100, &quot;i82365&quot;, &quot;Cirrus Logic CL 6729&quot; },
++ { 0x1013, 0x1110, &quot;yenta_socket&quot;, &quot;Cirrus Logic PD 6832&quot; },
++ { 0x10b3, 0xb106, &quot;yenta_socket&quot;, &quot;SMC 34C90&quot; },
++ { 0x1180, 0x0465, &quot;yenta_socket&quot;, &quot;Ricoh RL5C465&quot; },
++ { 0x1180, 0x0466, &quot;yenta_socket&quot;, &quot;Ricoh RL5C466&quot; },
++ { 0x1180, 0x0475, &quot;yenta_socket&quot;, &quot;Ricoh RL5C475&quot; },
++ { 0x1180, 0x0476, &quot;yenta_socket&quot;, &quot;Ricoh RL5C476&quot; },
++ { 0x1180, 0x0477, &quot;yenta_socket&quot;, &quot;Ricoh RL5C477&quot; },
++ { 0x1180, 0x0478, &quot;yenta_socket&quot;, &quot;Ricoh RL5C478&quot; },
++ { 0x104c, 0xac12, &quot;yenta_socket&quot;, &quot;Texas Instruments PCI1130&quot; },
++ { 0x104c, 0xac13, &quot;yenta_socket&quot;, &quot;Texas Instruments PCI1031&quot; },
++ { 0x104c, 0xac15, &quot;yenta_socket&quot;, &quot;Texas Instruments PCI1131&quot; },
++ { 0x104c, 0xac1a, &quot;yenta_socket&quot;, &quot;Texas Instruments PCI1210&quot; },
++ { 0x104c, 0xac1e, &quot;yenta_socket&quot;, &quot;Texas Instruments PCI1211&quot; },
++ { 0x104c, 0xac17, &quot;yenta_socket&quot;, &quot;Texas Instruments PCI1220&quot; },
++ { 0x104c, 0xac19, &quot;yenta_socket&quot;, &quot;Texas Instruments PCI1221&quot; },
++ { 0x104c, 0xac1c, &quot;yenta_socket&quot;, &quot;Texas Instruments PCI1225&quot; },
++ { 0x104c, 0xac16, &quot;yenta_socket&quot;, &quot;Texas Instruments PCI1250&quot; },
++ { 0x104c, 0xac1d, &quot;yenta_socket&quot;, &quot;Texas Instruments PCI1251A&quot; },
++ { 0x104c, 0xac1f, &quot;yenta_socket&quot;, &quot;Texas Instruments PCI1251B&quot; },
++ { 0x104c, 0xac50, &quot;yenta_socket&quot;, &quot;Texas Instruments PCI1410&quot; },
++ { 0x104c, 0xac51, &quot;yenta_socket&quot;, &quot;Texas Instruments PCI1420&quot; },
++ { 0x104c, 0xac1b, &quot;yenta_socket&quot;, &quot;Texas Instruments PCI1450&quot; },
++ { 0x104c, 0xac52, &quot;yenta_socket&quot;, &quot;Texas Instruments PCI1451&quot; },
++ { 0x104c, 0xac56, &quot;yenta_socket&quot;, &quot;Texas Instruments PCI1510&quot; },
++ { 0x104c, 0xac55, &quot;yenta_socket&quot;, &quot;Texas Instruments PCI1520&quot; },
++ { 0x104c, 0xac54, &quot;yenta_socket&quot;, &quot;Texas Instruments PCI1620&quot; },
++ { 0x104c, 0xac41, &quot;yenta_socket&quot;, &quot;Texas Instruments PCI4410&quot; },
++ { 0x104c, 0xac40, &quot;yenta_socket&quot;, &quot;Texas Instruments PCI4450&quot; },
++ { 0x104c, 0xac42, &quot;yenta_socket&quot;, &quot;Texas Instruments PCI4451&quot; },
++ { 0x104c, 0xac44, &quot;yenta_socket&quot;, &quot;Texas Instruments PCI4510&quot; },
++ { 0x104c, 0xac46, &quot;yenta_socket&quot;, &quot;Texas Instruments PCI4520&quot; },
++ { 0x104c, 0xac49, &quot;yenta_socket&quot;, &quot;Texas Instruments PCI7410&quot; },
++ { 0x104c, 0xac47, &quot;yenta_socket&quot;, &quot;Texas Instruments PCI7510&quot; },
++ { 0x104c, 0xac48, &quot;yenta_socket&quot;, &quot;Texas Instruments PCI7610&quot; },
++ { 0x104c, 0xac8e, &quot;yenta_socket&quot;, &quot;Texas Instruments PCI7420&quot; },
++ { 0x1217, 0x6729, &quot;i82365&quot;, &quot;O2 Micro 6729&quot; },
++ { 0x1217, 0x673a, &quot;i82365&quot;, &quot;O2 Micro 6730&quot; },
++ { 0x1217, 0x6832, &quot;yenta_socket&quot;, &quot;O2 Micro 6832/6833&quot; },
++ { 0x1217, 0x6836, &quot;yenta_socket&quot;, &quot;O2 Micro 6836/6860&quot; },
++ { 0x1217, 0x6872, &quot;yenta_socket&quot;, &quot;O2 Micro 6812&quot; },
++ { 0x1217, 0x6925, &quot;yenta_socket&quot;, &quot;O2 Micro 6922&quot; },
++ { 0x1217, 0x6933, &quot;yenta_socket&quot;, &quot;O2 Micro 6933&quot; },
++ { 0x1217, 0x6972, &quot;yenta_socket&quot;, &quot;O2 Micro 6912&quot; },
++ { 0x1217, 0x7114, &quot;yenta_socket&quot;, &quot;O2 Micro 711M1&quot; },
++ { 0x1179, 0x0603, &quot;i82365&quot;, &quot;Toshiba ToPIC95-A&quot; },
++ { 0x1179, 0x060a, &quot;yenta_socket&quot;, &quot;Toshiba ToPIC95-B&quot; },
++ { 0x1179, 0x060f, &quot;yenta_socket&quot;, &quot;Toshiba ToPIC97&quot; },
++ { 0x1179, 0x0617, &quot;yenta_socket&quot;, &quot;Toshiba ToPIC100&quot; },
++ { 0x119b, 0x1221, &quot;i82365&quot;, &quot;Omega Micro 82C092G&quot; },
++ { 0x8086, 0x1221, &quot;i82092&quot;, &quot;Intel 82092AA_0&quot; },
++ { 0x8086, 0x1222, &quot;i82092&quot;, &quot;Intel 82092AA_1&quot; },
++ { 0x1524, 0x1211, &quot;yenta_socket&quot;, &quot;ENE 1211&quot; },
++ { 0x1524, 0x1225, &quot;yenta_socket&quot;, &quot;ENE 1225&quot; },
++ { 0x1524, 0x1410, &quot;yenta_socket&quot;, &quot;ENE 1410&quot; },
++ { 0x1524, 0x1411, &quot;yenta_socket&quot;, &quot;ENE Technology CB1411&quot; },
++ { 0x1524, 0x1420, &quot;yenta_socket&quot;, &quot;ENE 1420&quot; },
++};
++#define PCI_COUNT (sizeof(pci_id)/sizeof(pci_id_t))
++
++char * driver = NULL;
++
++static int pci_probe(void)
++{
++ char s[256], *name = NULL;
++ u_int device, vendor, i;
++ FILE *f;
++
++//mdk-stage1// if (!module)
++ log_message(&quot;PCMCIA: probing PCI bus..&quot;);
++
++ if ((f = fopen(&quot;/proc/bus/pci/devices&quot;, &quot;r&quot;)) != NULL) {
++ while (fgets(s, 256, f) != NULL) {
++ u_int n = strtoul(s+5, NULL, 16);
++ vendor = (n &gt;&gt; 16); device = (n &amp; 0xffff);
++ for (i = 0; i &lt; PCI_COUNT; i++)
++ if ((vendor == pci_id[i].vendor) &amp;&amp;
++ (device == pci_id[i].device)) break;
++ if (i &lt; PCI_COUNT) {
++ name = pci_id[i].name;
++ driver = pci_id[i].modname;
++ }
++ }
++ }
++//mdk-stage1// else if ((f = fopen(&quot;/proc/pci&quot;, &quot;r&quot;)) != NULL) {
++//mdk-stage1// while (fgets(s, 256, f) != NULL) {
++//mdk-stage1// t = strstr(s, &quot;Device id=&quot;);
++//mdk-stage1// if (t) {
++//mdk-stage1// device = strtoul(t+10, NULL, 16);
++//mdk-stage1// t = strstr(s, &quot;Vendor id=&quot;);
++//mdk-stage1// vendor = strtoul(t+10, NULL, 16);
++//mdk-stage1// for (i = 0; i &lt; PCI_COUNT; i++)
++//mdk-stage1// if ((vendor == pci_id[i].vendor) &amp;&amp;
++//mdk-stage1// (device == pci_id[i].device)) break;
++//mdk-stage1// } else
++//mdk-stage1// for (i = 0; i &lt; PCI_COUNT; i++)
++//mdk-stage1// if (strstr(s, pci_id[i].tag) != NULL) break;
++//mdk-stage1// if (i != PCI_COUNT) {
++//mdk-stage1// name = pci_id[i].name;
++//mdk-stage1// break;
++//mdk-stage1// } else {
++//mdk-stage1// t = strstr(s, &quot;CardBus bridge&quot;);
++//mdk-stage1// if (t != NULL) {
++//mdk-stage1// name = t + 16;
++//mdk-stage1// t = strchr(s, '(');
++//mdk-stage1// t[-1] = '\0';
++//mdk-stage1// break;
++//mdk-stage1// }
++//mdk-stage1// }
++//mdk-stage1// }
++//mdk-stage1// }
++ fclose(f);
++
++ if (name) {
++//mdk-stage1// if (module)
++//mdk-stage1// printf(&quot;i82365\n&quot;);
++//mdk-stage1// else
++ log_message(&quot;\t%s found, 2 sockets (driver %s).&quot;, name, driver);
++ return 0;
++ } else {
++//mdk-stage1// if (!module)
++ log_message(&quot;\tnot found.&quot;);
++ return -ENODEV;
++ }
++}
++//mdk-stage1// #endif
++
++/*====================================================================*/
++
++//mdk-stage1// #ifdef CONFIG_ISA
++//mdk-stage1//
++//mdk-stage1// #ifdef __GLIBC__
++#include &lt;sys/io.h&gt;
++//mdk-stage1// #else
++//mdk-stage1// #include &lt;asm/io.h&gt;
++//mdk-stage1// #endif
++typedef u_short ioaddr_t;
++
++#include &quot;i82365.h&quot;
++#include &quot;cirrus.h&quot;
++#include &quot;vg468.h&quot;
++
++static ioaddr_t i365_base = 0x03e0;
++
++static u_char i365_get(u_short sock, u_short reg)
++{
++ u_char val = I365_REG(sock, reg);
++ outb(val, i365_base); val = inb(i365_base+1);
++ return val;
++}
++
++static void i365_set(u_short sock, u_short reg, u_char data)
++{
++ u_char val = I365_REG(sock, reg);
++ outb(val, i365_base); outb(data, i365_base+1);
++}
++
++static void i365_bset(u_short sock, u_short reg, u_char mask)
++{
++ u_char d = i365_get(sock, reg);
++ d |= mask;
++ i365_set(sock, reg, d);
++}
++
++static void i365_bclr(u_short sock, u_short reg, u_char mask)
++{
++ u_char d = i365_get(sock, reg);
++ d &amp;= ~mask;
++ i365_set(sock, reg, d);
++}
++
++int i365_probe(void)
++{
++ int val, sock, done;
++ char *name = &quot;i82365sl&quot;;
++
++//mdk-stage1// if (!module)
++ log_message(&quot;PCMCIA: probing for Intel PCIC (ISA)..&quot;);
++//mdk-stage1// if (verbose) printf(&quot;\n&quot;);
++
++ sock = done = 0;
++ if (ioperm(i365_base, 4, 1)) {
++ log_perror(&quot;PCMCIA: ioperm&quot;);
++ return -1;
++ }
++ ioperm(0x80, 1, 1);
++ for (; sock &lt; 2; sock++) {
++ val = i365_get(sock, I365_IDENT);
++//mdk-stage1// if (verbose)
++//mdk-stage1// printf(&quot; ident(%d)=%#2.2x&quot;, sock, val);
++ switch (val) {
++ case 0x82:
++ name = &quot;i82365sl A step&quot;;
++ break;
++ case 0x83:
++ name = &quot;i82365sl B step&quot;;
++ break;
++ case 0x84:
++ name = &quot;VLSI 82C146&quot;;
++ break;
++ case 0x88: case 0x89: case 0x8a:
++ name = &quot;IBM Clone&quot;;
++ break;
++ case 0x8b: case 0x8c:
++ break;
++ default:
++ done = 1;
++ }
++ if (done) break;
++ }
++
++//mdk-stage1// if (verbose) printf(&quot;\n &quot;);
++ if (sock == 0) {
++//mdk-stage1// if (!module)
++ log_message(&quot;\tnot found.&quot;);
++ return -ENODEV;
++ }
++
++ if ((sock == 2) &amp;&amp; (strcmp(name, &quot;VLSI 82C146&quot;) == 0))
++ name = &quot;i82365sl DF&quot;;
++
++ /* Check for Vadem chips */
++ outb(0x0e, i365_base);
++ outb(0x37, i365_base);
++ i365_bset(0, VG468_MISC, VG468_MISC_VADEMREV);
++ val = i365_get(0, I365_IDENT);
++ if (val &amp; I365_IDENT_VADEM) {
++ if ((val &amp; 7) &lt; 4)
++ name = &quot;Vadem VG-468&quot;;
++ else
++ name = &quot;Vadem VG-469&quot;;
++ i365_bclr(0, VG468_MISC, VG468_MISC_VADEMREV);
++ }
++
++ /* Check for Cirrus CL-PD67xx chips */
++ i365_set(0, PD67_CHIP_INFO, 0);
++ val = i365_get(0, PD67_CHIP_INFO);
++ if ((val &amp; PD67_INFO_CHIP_ID) == PD67_INFO_CHIP_ID) {
++ val = i365_get(0, PD67_CHIP_INFO);
++ if ((val &amp; PD67_INFO_CHIP_ID) == 0) {
++ if (val &amp; PD67_INFO_SLOTS)
++ name = &quot;Cirrus CL-PD672x&quot;;
++ else {
++ name = &quot;Cirrus CL-PD6710&quot;;
++ sock = 1;
++ }
++ i365_set(0, PD67_EXT_INDEX, 0xe5);
++ if (i365_get(0, PD67_EXT_INDEX) != 0xe5)
++ name = &quot;VIA VT83C469&quot;;
++ }
++ }
++
++//mdk-stage1// if (module)
++//mdk-stage1// printf(&quot;i82365\n&quot;);
++//mdk-stage1// else
++ printf(&quot;\t%s found, %d sockets.\n&quot;, name, sock);
++ return 0;
++
++} /* i365_probe */
++
++//mdk-stage1//#endif /* CONFIG_ISA */
++
++/*====================================================================*/
++
++//mdk-stage1//#ifdef CONFIG_ISA
++
++#include &quot;tcic.h&quot;
++
++//mdk-stage1//static ioaddr_t tcic_base = TCIC_BASE;
++
++static u_char tcic_getb(ioaddr_t base, u_char reg)
++{
++ u_char val = inb(base+reg);
++ return val;
++}
++
++static void tcic_setb(ioaddr_t base, u_char reg, u_char data)
++{
++ outb(data, base+reg);
++}
++
++static u_short tcic_getw(ioaddr_t base, u_char reg)
++{
++ u_short val = inw(base+reg);
++ return val;
++}
++
++static void tcic_setw(ioaddr_t base, u_char reg, u_short data)
++{
++ outw(data, base+reg);
++}
++
++static u_short tcic_aux_getw(ioaddr_t base, u_short reg)
++{
++ u_char mode = (tcic_getb(base, TCIC_MODE) &amp; TCIC_MODE_PGMMASK) | reg;
++ tcic_setb(base, TCIC_MODE, mode);
++ return tcic_getw(base, TCIC_AUX);
++}
++
++static void tcic_aux_setw(ioaddr_t base, u_short reg, u_short data)
++{
++ u_char mode = (tcic_getb(base, TCIC_MODE) &amp; TCIC_MODE_PGMMASK) | reg;
++ tcic_setb(base, TCIC_MODE, mode);
++ tcic_setw(base, TCIC_AUX, data);
++}
++
++static int get_tcic_id(ioaddr_t base)
++{
++ u_short id;
++ tcic_aux_setw(base, TCIC_AUX_TEST, TCIC_TEST_DIAG);
++ id = tcic_aux_getw(base, TCIC_AUX_ILOCK);
++ id = (id &amp; TCIC_ILOCKTEST_ID_MASK) &gt;&gt; TCIC_ILOCKTEST_ID_SH;
++ tcic_aux_setw(base, TCIC_AUX_TEST, 0);
++ return id;
++}
++
++int tcic_probe_at(ioaddr_t base)
++{
++ int i;
++ u_short old;
++
++ /* Anything there?? */
++ for (i = 0; i &lt; 0x10; i += 2)
++ if (tcic_getw(base, i) == 0xffff)
++ return -1;
++
++//mdk-stage1// if (!module)
++ log_message(&quot;\tat %#3.3x: &quot;, base); fflush(stdout);
++
++ /* Try to reset the chip */
++ tcic_setw(base, TCIC_SCTRL, TCIC_SCTRL_RESET);
++ tcic_setw(base, TCIC_SCTRL, 0);
++
++ /* Can we set the addr register? */
++ old = tcic_getw(base, TCIC_ADDR);
++ tcic_setw(base, TCIC_ADDR, 0);
++ if (tcic_getw(base, TCIC_ADDR) != 0) {
++ tcic_setw(base, TCIC_ADDR, old);
++ return -2;
++ }
++
++ tcic_setw(base, TCIC_ADDR, 0xc3a5);
++ if (tcic_getw(base, TCIC_ADDR) != 0xc3a5)
++ return -3;
++
++ return 2;
++}
++
++int tcic_probe(void)
++{
++ int sock, id;
++
++//mdk-stage1// if (!module)
++ log_message(&quot;PCMCIA: probing for Databook TCIC-2 (ISA)..&quot;); fflush(stdout);
++
++ if (ioperm(TCIC_BASE, 16, 1)) {
++ log_perror(&quot;PCMCIA: ioperm&quot;);
++ return -1;
++ }
++ ioperm(0x80, 1, 1);
++ sock = tcic_probe_at(TCIC_BASE);
++
++ if (sock &lt;= 0) {
++//mdk-stage1// if (!module)
++ log_message(&quot;\tnot found.&quot;);
++ return -ENODEV;
++ }
++
++//mdk-stage1// if (module)
++//mdk-stage1// printf(&quot;tcic\n&quot;);
++//mdk-stage1// else {
++ id = get_tcic_id(TCIC_BASE);
++ switch (id) {
++ case TCIC_ID_DB86082:
++ log_message(&quot;DB86082&quot;); break;
++ case TCIC_ID_DB86082A:
++ log_message(&quot;DB86082A&quot;); break;
++ case TCIC_ID_DB86084:
++ log_message(&quot;DB86084&quot;); break;
++ case TCIC_ID_DB86084A:
++ log_message(&quot;DB86084A&quot;); break;
++ case TCIC_ID_DB86072:
++ log_message(&quot;DB86072&quot;); break;
++ case TCIC_ID_DB86184:
++ log_message(&quot;DB86184&quot;); break;
++ case TCIC_ID_DB86082B:
++ log_message(&quot;DB86082B&quot;); break;
++ default:
++ log_message(&quot;Unknown TCIC-2 ID 0x%02x&quot;, id);
++ }
++ log_message(&quot; found at %#6x, %d sockets.&quot;, TCIC_BASE, sock);
++//mdk-stage1// }
++ return 0;
++
++} /* tcic_probe */
++
++//mdk-stage1// #endif /* CONFIG_ISA */
++
++//mdk-stage1// /*====================================================================*/
++//mdk-stage1//
++//mdk-stage1// int main(int argc, char *argv[])
++//mdk-stage1// {
++//mdk-stage1// int optch, errflg;
++//mdk-stage1// extern char *optarg;
++//mdk-stage1// int verbose = 0, module = 0;
++//mdk-stage1//
++//mdk-stage1// errflg = 0;
++//mdk-stage1// while ((optch = getopt(argc, argv, &quot;t:vxm&quot;)) != -1) {
++//mdk-stage1// switch (optch) {
++//mdk-stage1// #ifdef CONFIG_ISA
++//mdk-stage1// case 't':
++//mdk-stage1// tcic_base = strtoul(optarg, NULL, 0); break;
++//mdk-stage1// #endif
++//mdk-stage1// case 'v':
++//mdk-stage1// verbose = 1; break;
++//mdk-stage1// case 'm':
++//mdk-stage1// module = 1; break;
++//mdk-stage1// default:
++//mdk-stage1// errflg = 1; break;
++//mdk-stage1// }
++//mdk-stage1// }
++//mdk-stage1// if (errflg || (optind &lt; argc)) {
++//mdk-stage1// fprintf(stderr, &quot;usage: %s [-t tcic_base] [-v] [-m]\n&quot;, argv[0]);
++//mdk-stage1// exit(EXIT_FAILURE);
++//mdk-stage1// }
++//mdk-stage1//
++//mdk-stage1// #ifdef CONFIG_PCI
++//mdk-stage1// if (pci_probe(verbose, module) == 0)
++//mdk-stage1// exit(EXIT_SUCCESS);
++//mdk-stage1// #endif
++//mdk-stage1// #ifdef CONFIG_ISA
++//mdk-stage1// if (i365_probe(verbose, module) == 0)
++//mdk-stage1// exit(EXIT_SUCCESS);
++//mdk-stage1// else if (tcic_probe(verbose, module, tcic_base) == 0)
++//mdk-stage1// exit(EXIT_SUCCESS);
++//mdk-stage1// #endif
++//mdk-stage1// exit(EXIT_FAILURE);
++//mdk-stage1// return 0;
++//mdk-stage1// }
++
++
++char * pcmcia_probe(void)
++{
++ if (!pci_probe())
++ return driver;
++ else if (!i365_probe())
++ return &quot;i82365&quot;;
++ else if (!tcic_probe())
++ return &quot;tcic&quot;;
++ else
++ return NULL;
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/pcmcia/probe.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pcmciastartupc">Added: drakx/trunk/mdk-stage1/pcmcia/startup.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/pcmcia/startup.c (rev 0)
++++ drakx/trunk/mdk-stage1/pcmcia/startup.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,271 @@
++/*
++ * Startup tool for non statically mapped PCMCIA sockets
++ *
++ * (C) 2005 Dominik Brodowski &lt;linux@brodo.de&gt;
++ *
++ * The initial developer of the original code is David A. Hinds
++ * &lt;dahinds@users.sourceforge.net&gt;. Portions created by David A. Hinds
++ * are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
++ *
++ * License: GPL v2
++ */
++
++#include &lt;stdio.h&gt;
++#include &lt;stdlib.h&gt;
++#include &lt;string.h&gt;
++#include &lt;errno.h&gt;
++#include &lt;syslog.h&gt;
++#include &lt;unistd.h&gt;
++
++#include &lt;sysfs/libsysfs.h&gt;
++
++#include &quot;startup.h&quot;
++
++/* uncomment for debug output */
++#ifdef DEBUG
++#define dprintf printf
++#else
++#define dprintf(...) do { } while(0);
++#endif
++
++/* Linked list of resource adjustments */
++struct adjust_list_t *root_adjust = NULL;
++
++/* path for config file, device scripts */
++static char *configpath = &quot;/etc/pcmcia&quot;;
++
++enum {
++ RESOURCE_MEM,
++ RESOURCE_IO,
++ MAX_RESOURCE_FILES
++};
++
++
++static const char *resource_files[MAX_RESOURCE_FILES] = {
++ [RESOURCE_MEM] = &quot;available_resources_mem&quot;,
++ [RESOURCE_IO] = &quot;available_resources_io&quot;,
++};
++
++#define PATH_TO_SOCKET &quot;/sys/class/pcmcia_socket/&quot;
++
++
++static int add_available_resource(unsigned int socket_no, unsigned int type,
++ unsigned int action,
++ unsigned long start, unsigned long end)
++{
++ char file[SYSFS_PATH_MAX];
++ char content[SYSFS_PATH_MAX];
++ struct sysfs_attribute *attr;
++ int ret;
++ size_t len;
++
++ if (type &gt;= MAX_RESOURCE_FILES)
++ return -EINVAL;
++
++ if (end &lt;= start)
++ return -EINVAL;
++
++ dprintf(&quot;%d %d %d 0x%lx 0x%lx\n&quot;, socket_no, type, action, start, end);
++
++ snprintf(file, SYSFS_PATH_MAX, PATH_TO_SOCKET &quot;pcmcia_socket%u/%s&quot;,
++ socket_no, resource_files[type]);
++
++ switch(action) {
++ case ADD_MANAGED_RESOURCE:
++ len = snprintf(content, SYSFS_PATH_MAX,
++ &quot;0x%08lx - 0x%08lx&quot;, start, end);
++ break;
++
++ case REMOVE_MANAGED_RESOURCE:
++ len = snprintf(content, SYSFS_PATH_MAX,
++ &quot;- 0x%08lx - 0x%08lx&quot;, start, end);
++ break;
++
++ default:
++ return -EINVAL;
++ }
++
++ dprintf(&quot;content is %s\n&quot;, content);
++
++ dprintf(&quot;file is %s\n&quot;, file);
++
++ attr = sysfs_open_attribute(file);
++ if (!attr)
++ return -ENODEV;
++
++ dprintf(&quot;open, len %d\n&quot;, len);
++
++ ret = sysfs_write_attribute(attr, content, len);
++
++ dprintf(&quot;ret is %d\n&quot;, ret);
++
++ sysfs_close_attribute(attr);
++
++ return (ret);
++}
++
++static int setup_done(unsigned int socket_no)
++{
++ int ret;
++ char file[SYSFS_PATH_MAX];
++ struct sysfs_attribute *attr;
++
++ snprintf(file, SYSFS_PATH_MAX, PATH_TO_SOCKET
++ &quot;pcmcia_socket%u/available_resources_setup_done&quot;,
++ socket_no);
++
++ attr = sysfs_open_attribute(file);
++ if (!attr)
++ return -ENODEV;
++
++ ret = sysfs_write_attribute(attr, &quot;42&quot;, 2);
++
++ sysfs_close_attribute(attr);
++
++ return (ret);
++}
++
++
++static int disallow_irq(unsigned int socket_no, unsigned int irq)
++{
++ char file[SYSFS_PATH_MAX];
++ char content[SYSFS_PATH_MAX];
++ struct sysfs_attribute *attr;
++ unsigned int mask = 0xfff;
++ unsigned int new_mask;
++ int ret;
++ size_t len;
++
++ if (irq &gt;= 32)
++ return -EINVAL;
++
++ len = snprintf(file, SYSFS_PATH_MAX, PATH_TO_SOCKET
++ &quot;pcmcia_socket%u/card_irq_mask&quot;,
++ socket_no);
++ dprintf(&quot;file is %s\n&quot;, file);
++
++ attr = sysfs_open_attribute(file);
++ if (!attr)
++ return -ENODEV;
++
++ dprintf(&quot;open, len %d\n&quot;, len);
++
++ ret = sysfs_read_attribute(attr);
++ if (ret) {
++ ret = -EINVAL;
++ goto out;
++ }
++
++ if (!attr-&gt;value || (attr-&gt;len &lt; 6)) {
++ ret = -EIO;
++ goto out;
++ }
++
++ ret = sscanf(attr-&gt;value, &quot;0x%x\n&quot;, &amp;mask);
++
++ new_mask = 1 &lt;&lt; irq;
++
++ mask &amp;= ~new_mask;
++
++ len = snprintf(content, SYSFS_PATH_MAX, &quot;0x%04x&quot;, mask);
++
++ dprintf(&quot;content is %s\n&quot;, content);
++
++ ret = sysfs_write_attribute(attr, content, len);
++
++ out:
++ sysfs_close_attribute(attr);
++
++ return (ret);
++}
++
++
++static void load_config(void)
++{
++ if (chdir(configpath) != 0) {
++ syslog(LOG_ERR, &quot;chdir to %s failed: %m&quot;, configpath);
++ exit(EXIT_FAILURE);
++ }
++ parse_configfile(&quot;config.opts&quot;);
++ return;
++}
++
++
++static void adjust_resources(unsigned int socket_no)
++{
++ adjust_list_t *al;
++
++ for (al = root_adjust; al; al = al-&gt;next) {
++ switch (al-&gt;adj.Resource) {
++ case RES_MEMORY_RANGE:
++ add_available_resource(socket_no, RESOURCE_MEM,
++ al-&gt;adj.Action,
++ al-&gt;adj.resource.memory.Base,
++ al-&gt;adj.resource.memory.Base +
++ al-&gt;adj.resource.memory.Size - 1);
++ break;
++ case RES_IO_RANGE:
++ add_available_resource(socket_no, RESOURCE_IO,
++ al-&gt;adj.Action,
++ al-&gt;adj.resource.io.BasePort,
++ al-&gt;adj.resource.io.BasePort +
++ al-&gt;adj.resource.io.NumPorts - 1);
++ break;
++ case RES_IRQ:
++ if(al-&gt;adj.Action == REMOVE_MANAGED_RESOURCE)
++ disallow_irq(socket_no, al-&gt;adj.resource.irq.IRQ);
++ break;
++ }
++ }
++}
++
++/* mdk-stage1
++int main(int argc, char *argv[])
++{
++ char *socket_no;
++ unsigned long socket, i;
++ unsigned int all_sockets = 0;
++
++
++ if ((socket_no = getenv(&quot;SOCKET_NO&quot;))) {
++ socket = strtoul(socket_no, NULL, 0);
++ } else if (argc == 2) {
++ socket = strtoul(argv[1], NULL, 0);
++ } else if (argc == 1) {
++ socket = 0;
++ all_sockets = 1;
++ } else {
++ return -EINVAL;
++ }
++
++ load_config();
++
++ for (i = 0; i &lt; MAX_SOCKS; i++) {
++ if ((socket != i) &amp;&amp; (!all_sockets))
++ continue;
++
++ adjust_resources(i);
++ setup_done(i);
++ }
++
++ return 0;
++}
++*/
++
++void pcmcia_socket_startup(int socket_no) {
++ unsigned long i;
++ unsigned int all_sockets = 0;
++
++ if (socket_no == -1)
++ all_sockets = 1;
++
++ load_config();
++
++ for (i = 0; i &lt; MAX_SOCKS; i++) {
++ if ((socket_no != i) &amp;&amp; (!all_sockets))
++ continue;
++
++ adjust_resources(i);
++ setup_done(i);
++ }
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/pcmcia/startup.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pcmciastartuph">Added: drakx/trunk/mdk-stage1/pcmcia/startup.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/pcmcia/startup.h (rev 0)
++++ drakx/trunk/mdk-stage1/pcmcia/startup.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,54 @@
++/*
++ * Startup tool for non statically mapped PCMCIA sockets
++ *
++ * The initial developer of the original code is David A. Hinds
++ * &lt;dahinds@users.sourceforge.net&gt;. Portions created by David A. Hinds
++ * are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
++ *
++ * License: GPL v2
++ *
++ */
++
++#define MAX_SOCKS 8
++#define MAX_BINDINGS 4
++#define MAX_MODULES 4
++
++/* for AdjustResourceInfo */
++typedef struct adjust_t {
++ unsigned int Action;
++ unsigned int Resource;
++ unsigned int Attributes;
++ union {
++ struct memory {
++ unsigned long Base;
++ unsigned long Size;
++ } memory;
++ struct io {
++ unsigned long BasePort;
++ unsigned long NumPorts;
++ unsigned int IOAddrLines;
++ } io;
++ struct irq {
++ unsigned int IRQ;
++ } irq;
++ } resource;
++} adjust_t;
++
++
++typedef struct adjust_list_t {
++ adjust_t adj;
++ struct adjust_list_t *next;
++} adjust_list_t;
++
++
++extern adjust_list_t *root_adjust;
++
++int parse_configfile(char *fn);
++
++
++#define RES_MEMORY_RANGE 1
++#define RES_IO_RANGE 2
++#define RES_IRQ 3
++#define RES_RESERVED 0x10
++#define REMOVE_MANAGED_RESOURCE 1
++#define ADD_MANAGED_RESOURCE 2
+
+
+Property changes on: drakx/trunk/mdk-stage1/pcmcia/startup.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pcmciatcich">Added: drakx/trunk/mdk-stage1/pcmcia/tcic.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/pcmcia/tcic.h (rev 0)
++++ drakx/trunk/mdk-stage1/pcmcia/tcic.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,266 @@
++/*
++ * tcic.h 1.15 2001/08/24 12:15:34
++ *
++ * The contents of this file are subject to the Mozilla Public License
++ * Version 1.1 (the &quot;License&quot;); you may not use this file except in
++ * compliance with the License. You may obtain a copy of the License
++ * at http://www.mozilla.org/MPL/
++ *
++ * Software distributed under the License is distributed on an &quot;AS IS&quot;
++ * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
++ * the License for the specific language governing rights and
++ * limitations under the License.
++ *
++ * The initial developer of the original code is David A. Hinds
++ * &lt;dahinds@users.sourceforge.net&gt;. Portions created by David A. Hinds
++ * are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
++ *
++ * Alternatively, the contents of this file may be used under the
++ * terms of the GNU General Public License version 2 (the &quot;GPL&quot;), in
++ * which case the provisions of the GPL are applicable instead of the
++ * above. If you wish to allow the use of your version of this file
++ * only under the terms of the GPL and not to allow others to use
++ * your version of this file under the MPL, indicate your decision by
++ * deleting the provisions above and replace them with the notice and
++ * other provisions required by the GPL. If you do not delete the
++ * provisions above, a recipient may use your version of this file
++ * under either the MPL or the GPL.
++ */
++
++#ifndef _LINUX_TCIC_H
++#define _LINUX_TCIC_H
++
++#define TCIC_BASE 0x240
++
++/* offsets of registers from TCIC_BASE */
++#define TCIC_DATA 0x00
++#define TCIC_ADDR 0x02
++#define TCIC_SCTRL 0x06
++#define TCIC_SSTAT 0x07
++#define TCIC_MODE 0x08
++#define TCIC_PWR 0x09
++#define TCIC_EDC 0x0A
++#define TCIC_ICSR 0x0C
++#define TCIC_IENA 0x0D
++#define TCIC_AUX 0x0E
++
++#define TCIC_SS_SHFT 12
++#define TCIC_SS_MASK 0x7000
++
++/* Flags for TCIC_ADDR */
++#define TCIC_ADR2_REG 0x8000
++#define TCIC_ADR2_INDREG 0x0800
++
++#define TCIC_ADDR_REG 0x80000000
++#define TCIC_ADDR_SS_SHFT (TCIC_SS_SHFT+16)
++#define TCIC_ADDR_SS_MASK (TCIC_SS_MASK&lt;&lt;16)
++#define TCIC_ADDR_INDREG 0x08000000
++#define TCIC_ADDR_IO 0x04000000
++#define TCIC_ADDR_MASK 0x03ffffff
++
++/* Flags for TCIC_SCTRL */
++#define TCIC_SCTRL_ENA 0x01
++#define TCIC_SCTRL_INCMODE 0x18
++#define TCIC_SCTRL_INCMODE_HOLD 0x00
++#define TCIC_SCTRL_INCMODE_WORD 0x08
++#define TCIC_SCTRL_INCMODE_REG 0x10
++#define TCIC_SCTRL_INCMODE_AUTO 0x18
++#define TCIC_SCTRL_EDCSUM 0x20
++#define TCIC_SCTRL_RESET 0x80
++
++/* Flags for TCIC_SSTAT */
++#define TCIC_SSTAT_6US 0x01
++#define TCIC_SSTAT_10US 0x02
++#define TCIC_SSTAT_PROGTIME 0x04
++#define TCIC_SSTAT_LBAT1 0x08
++#define TCIC_SSTAT_LBAT2 0x10
++#define TCIC_SSTAT_RDY 0x20 /* Inverted */
++#define TCIC_SSTAT_WP 0x40
++#define TCIC_SSTAT_CD 0x80 /* Card detect */
++
++/* Flags for TCIC_MODE */
++#define TCIC_MODE_PGMMASK 0x1f
++#define TCIC_MODE_NORMAL 0x00
++#define TCIC_MODE_PGMWR 0x01
++#define TCIC_MODE_PGMRD 0x02
++#define TCIC_MODE_PGMCE 0x04
++#define TCIC_MODE_PGMDBW 0x08
++#define TCIC_MODE_PGMWORD 0x10
++#define TCIC_MODE_AUXSEL_MASK 0xe0
++
++/* Registers accessed through TCIC_AUX, by setting TCIC_MODE */
++#define TCIC_AUX_TCTL (0&lt;&lt;5)
++#define TCIC_AUX_PCTL (1&lt;&lt;5)
++#define TCIC_AUX_WCTL (2&lt;&lt;5)
++#define TCIC_AUX_EXTERN (3&lt;&lt;5)
++#define TCIC_AUX_PDATA (4&lt;&lt;5)
++#define TCIC_AUX_SYSCFG (5&lt;&lt;5)
++#define TCIC_AUX_ILOCK (6&lt;&lt;5)
++#define TCIC_AUX_TEST (7&lt;&lt;5)
++
++/* Flags for TCIC_PWR */
++#define TCIC_PWR_VCC(sock) (0x01&lt;&lt;(sock))
++#define TCIC_PWR_VCC_MASK 0x03
++#define TCIC_PWR_VPP(sock) (0x08&lt;&lt;(sock))
++#define TCIC_PWR_VPP_MASK 0x18
++#define TCIC_PWR_CLIMENA 0x40
++#define TCIC_PWR_CLIMSTAT 0x80
++
++/* Flags for TCIC_ICSR */
++#define TCIC_ICSR_CLEAR 0x01
++#define TCIC_ICSR_SET 0x02
++#define TCIC_ICSR_JAM (TCIC_ICSR_CLEAR|TCIC_ICSR_SET)
++#define TCIC_ICSR_STOPCPU 0x04
++#define TCIC_ICSR_ILOCK 0x08
++#define TCIC_ICSR_PROGTIME 0x10
++#define TCIC_ICSR_ERR 0x20
++#define TCIC_ICSR_CDCHG 0x40
++#define TCIC_ICSR_IOCHK 0x80
++
++/* Flags for TCIC_IENA */
++#define TCIC_IENA_CFG_MASK 0x03
++#define TCIC_IENA_CFG_OFF 0x00 /* disabled */
++#define TCIC_IENA_CFG_OD 0x01 /* active low, open drain */
++#define TCIC_IENA_CFG_LOW 0x02 /* active low, totem pole */
++#define TCIC_IENA_CFG_HIGH 0x03 /* active high, totem pole */
++#define TCIC_IENA_ILOCK 0x08
++#define TCIC_IENA_PROGTIME 0x10
++#define TCIC_IENA_ERR 0x20 /* overcurrent or iochk */
++#define TCIC_IENA_CDCHG 0x40
++
++/* Flags for TCIC_AUX_WCTL */
++#define TCIC_WAIT_COUNT_MASK 0x001f
++#define TCIC_WAIT_ASYNC 0x0020
++#define TCIC_WAIT_SENSE 0x0040
++#define TCIC_WAIT_SRC 0x0080
++#define TCIC_WCTL_WR 0x0100
++#define TCIC_WCTL_RD 0x0200
++#define TCIC_WCTL_CE 0x0400
++#define TCIC_WCTL_LLBAT1 0x0800
++#define TCIC_WCTL_LLBAT2 0x1000
++#define TCIC_WCTL_LRDY 0x2000
++#define TCIC_WCTL_LWP 0x4000
++#define TCIC_WCTL_LCD 0x8000
++
++/* Flags for TCIC_AUX_SYSCFG */
++#define TCIC_SYSCFG_IRQ_MASK 0x000f
++#define TCIC_SYSCFG_MCSFULL 0x0010
++#define TCIC_SYSCFG_IO1723 0x0020
++#define TCIC_SYSCFG_MCSXB 0x0040
++#define TCIC_SYSCFG_ICSXB 0x0080
++#define TCIC_SYSCFG_NOPDN 0x0100
++#define TCIC_SYSCFG_MPSEL_SHFT 9
++#define TCIC_SYSCFG_MPSEL_MASK 0x0e00
++#define TCIC_SYSCFG_MPSENSE 0x2000
++#define TCIC_SYSCFG_AUTOBUSY 0x4000
++#define TCIC_SYSCFG_ACC 0x8000
++
++#define TCIC_ILOCK_OUT 0x01
++#define TCIC_ILOCK_SENSE 0x02
++#define TCIC_ILOCK_CRESET 0x04
++#define TCIC_ILOCK_CRESENA 0x08
++#define TCIC_ILOCK_CWAIT 0x10
++#define TCIC_ILOCK_CWAITSNS 0x20
++#define TCIC_ILOCK_HOLD_MASK 0xc0
++#define TCIC_ILOCK_HOLD_CCLK 0xc0
++
++#define TCIC_ILOCKTEST_ID_SH 8
++#define TCIC_ILOCKTEST_ID_MASK 0x7f00
++#define TCIC_ILOCKTEST_MCIC_1 0x8000
++
++#define TCIC_ID_DB86082 0x02
++#define TCIC_ID_DB86082A 0x03
++#define TCIC_ID_DB86084 0x04
++#define TCIC_ID_DB86084A 0x08
++#define TCIC_ID_DB86072 0x15
++#define TCIC_ID_DB86184 0x14
++#define TCIC_ID_DB86082B 0x17
++
++#define TCIC_TEST_DIAG 0x8000
++
++/*
++ * Indirectly addressed registers
++ */
++
++#define TCIC_SCF1(sock) ((sock)&lt;&lt;3)
++#define TCIC_SCF2(sock) (((sock)&lt;&lt;3)+2)
++
++/* Flags for SCF1 */
++#define TCIC_SCF1_IRQ_MASK 0x000f
++#define TCIC_SCF1_IRQ_OFF 0x0000
++#define TCIC_SCF1_IRQOC 0x0010
++#define TCIC_SCF1_PCVT 0x0020
++#define TCIC_SCF1_IRDY 0x0040
++#define TCIC_SCF1_ATA 0x0080
++#define TCIC_SCF1_DMA_SHIFT 8
++#define TCIC_SCF1_DMA_MASK 0x0700
++#define TCIC_SCF1_DMA_OFF 0
++#define TCIC_SCF1_DREQ2 2
++#define TCIC_SCF1_IOSTS 0x0800
++#define TCIC_SCF1_SPKR 0x1000
++#define TCIC_SCF1_FINPACK 0x2000
++#define TCIC_SCF1_DELWR 0x4000
++#define TCIC_SCF1_HD7IDE 0x8000
++
++/* Flags for SCF2 */
++#define TCIC_SCF2_RI 0x0001
++#define TCIC_SCF2_IDBR 0x0002
++#define TCIC_SCF2_MDBR 0x0004
++#define TCIC_SCF2_MLBAT1 0x0008
++#define TCIC_SCF2_MLBAT2 0x0010
++#define TCIC_SCF2_MRDY 0x0020
++#define TCIC_SCF2_MWP 0x0040
++#define TCIC_SCF2_MCD 0x0080
++#define TCIC_SCF2_MALL 0x00f8
++
++/* Indirect addresses for memory window registers */
++#define TCIC_MWIN(sock,map) (0x100+(((map)+((sock)&lt;&lt;2))&lt;&lt;3))
++#define TCIC_MBASE_X 2
++#define TCIC_MMAP_X 4
++#define TCIC_MCTL_X 6
++
++#define TCIC_MBASE_4K_BIT 0x4000
++#define TCIC_MBASE_HA_SHFT 12
++#define TCIC_MBASE_HA_MASK 0x0fff
++
++#define TCIC_MMAP_REG 0x8000
++#define TCIC_MMAP_CA_SHFT 12
++#define TCIC_MMAP_CA_MASK 0x3fff
++
++#define TCIC_MCTL_WSCNT_MASK 0x001f
++#define TCIC_MCTL_WCLK 0x0020
++#define TCIC_MCTL_WCLK_CCLK 0x0000
++#define TCIC_MCTL_WCLK_BCLK 0x0020
++#define TCIC_MCTL_QUIET 0x0040
++#define TCIC_MCTL_WP 0x0080
++#define TCIC_MCTL_ACC 0x0100
++#define TCIC_MCTL_KE 0x0200
++#define TCIC_MCTL_EDC 0x0400
++#define TCIC_MCTL_B8 0x0800
++#define TCIC_MCTL_SS_SHFT TCIC_SS_SHFT
++#define TCIC_MCTL_SS_MASK TCIC_SS_MASK
++#define TCIC_MCTL_ENA 0x8000
++
++/* Indirect addresses for I/O window registers */
++#define TCIC_IWIN(sock,map) (0x200+(((map)+((sock)&lt;&lt;1))&lt;&lt;2))
++#define TCIC_IBASE_X 0
++#define TCIC_ICTL_X 2
++
++#define TCIC_ICTL_WSCNT_MASK TCIC_MCTL_WSCNT_MASK
++#define TCIC_ICTL_QUIET TCIC_MCTL_QUIET
++#define TCIC_ICTL_1K 0x0080
++#define TCIC_ICTL_PASS16 0x0100
++#define TCIC_ICTL_ACC TCIC_MCTL_ACC
++#define TCIC_ICTL_TINY 0x0200
++#define TCIC_ICTL_B16 0x0400
++#define TCIC_ICTL_B8 TCIC_MCTL_B8
++#define TCIC_ICTL_BW_MASK (TCIC_ICTL_B16|TCIC_ICTL_B8)
++#define TCIC_ICTL_BW_DYN 0
++#define TCIC_ICTL_BW_8 TCIC_ICTL_B8
++#define TCIC_ICTL_BW_16 TCIC_ICTL_B16
++#define TCIC_ICTL_BW_ATA (TCIC_ICTL_B16|TCIC_ICTL_B8)
++#define TCIC_ICTL_SS_SHFT TCIC_SS_SHFT
++#define TCIC_ICTL_SS_MASK TCIC_SS_MASK
++#define TCIC_ICTL_ENA TCIC_MCTL_ENA
++
++#endif /* _LINUX_TCIC_H */
+
+
+Property changes on: drakx/trunk/mdk-stage1/pcmcia/tcic.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pcmciaversionh">Added: drakx/trunk/mdk-stage1/pcmcia/version.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/pcmcia/version.h (rev 0)
++++ drakx/trunk/mdk-stage1/pcmcia/version.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,4 @@
++/* version.h 1.101 2001/08/09 12:29:14 (David Hinds) */
++
++#define CS_RELEASE &quot;3.1.29&quot;
++#define CS_RELEASE_CODE 0x311d
+
+
+Property changes on: drakx/trunk/mdk-stage1/pcmcia/version.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pcmciavg468h">Added: drakx/trunk/mdk-stage1/pcmcia/vg468.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/pcmcia/vg468.h (rev 0)
++++ drakx/trunk/mdk-stage1/pcmcia/vg468.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,106 @@
++/*
++ * vg468.h 1.14 2001/08/24 12:15:34
++ *
++ * The contents of this file are subject to the Mozilla Public License
++ * Version 1.1 (the &quot;License&quot;); you may not use this file except in
++ * compliance with the License. You may obtain a copy of the License
++ * at http://www.mozilla.org/MPL/
++ *
++ * Software distributed under the License is distributed on an &quot;AS IS&quot;
++ * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
++ * the License for the specific language governing rights and
++ * limitations under the License.
++ *
++ * The initial developer of the original code is David A. Hinds
++ * &lt;dahinds@users.sourceforge.net&gt;. Portions created by David A. Hinds
++ * are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
++ *
++ * Alternatively, the contents of this file may be used under the
++ * terms of the GNU General Public License version 2 (the &quot;GPL&quot;), in
++ * which case the provisions of the GPL are applicable instead of the
++ * above. If you wish to allow the use of your version of this file
++ * only under the terms of the GPL and not to allow others to use
++ * your version of this file under the MPL, indicate your decision by
++ * deleting the provisions above and replace them with the notice and
++ * other provisions required by the GPL. If you do not delete the
++ * provisions above, a recipient may use your version of this file
++ * under either the MPL or the GPL.
++ */
++
++#ifndef _LINUX_VG468_H
++#define _LINUX_VG468_H
++
++/* Special bit in I365_IDENT used for Vadem chip detection */
++#define I365_IDENT_VADEM 0x08
++
++/* Special definitions in I365_POWER */
++#define VG468_VPP2_MASK 0x0c
++#define VG468_VPP2_5V 0x04
++#define VG468_VPP2_12V 0x08
++
++/* Unique Vadem registers */
++#define VG469_VSENSE 0x1f /* Card voltage sense */
++#define VG469_VSELECT 0x2f /* Card voltage select */
++#define VG468_CTL 0x38 /* Control register */
++#define VG468_TIMER 0x39 /* Timer control */
++#define VG468_MISC 0x3a /* Miscellaneous */
++#define VG468_GPIO_CFG 0x3b /* GPIO configuration */
++#define VG469_EXT_MODE 0x3c /* Extended mode register */
++#define VG468_SELECT 0x3d /* Programmable chip select */
++#define VG468_SELECT_CFG 0x3e /* Chip select configuration */
++#define VG468_ATA 0x3f /* ATA control */
++
++/* Flags for VG469_VSENSE */
++#define VG469_VSENSE_A_VS1 0x01
++#define VG469_VSENSE_A_VS2 0x02
++#define VG469_VSENSE_B_VS1 0x04
++#define VG469_VSENSE_B_VS2 0x08
++
++/* Flags for VG469_VSELECT */
++#define VG469_VSEL_VCC 0x03
++#define VG469_VSEL_5V 0x00
++#define VG469_VSEL_3V 0x03
++#define VG469_VSEL_MAX 0x0c
++#define VG469_VSEL_EXT_STAT 0x10
++#define VG469_VSEL_EXT_BUS 0x20
++#define VG469_VSEL_MIXED 0x40
++#define VG469_VSEL_ISA 0x80
++
++/* Flags for VG468_CTL */
++#define VG468_CTL_SLOW 0x01 /* 600ns memory timing */
++#define VG468_CTL_ASYNC 0x02 /* Asynchronous bus clocking */
++#define VG468_CTL_TSSI 0x08 /* Tri-state some outputs */
++#define VG468_CTL_DELAY 0x10 /* Card detect debounce */
++#define VG468_CTL_INPACK 0x20 /* Obey INPACK signal? */
++#define VG468_CTL_POLARITY 0x40 /* VCCEN polarity */
++#define VG468_CTL_COMPAT 0x80 /* Compatibility stuff */
++
++#define VG469_CTL_WS_COMPAT 0x04 /* Wait state compatibility */
++#define VG469_CTL_STRETCH 0x10 /* LED stretch */
++
++/* Flags for VG468_TIMER */
++#define VG468_TIMER_ZEROPWR 0x10 /* Zero power control */
++#define VG468_TIMER_SIGEN 0x20 /* Power up */
++#define VG468_TIMER_STATUS 0x40 /* Activity timer status */
++#define VG468_TIMER_RES 0x80 /* Timer resolution */
++#define VG468_TIMER_MASK 0x0f /* Activity timer timeout */
++
++/* Flags for VG468_MISC */
++#define VG468_MISC_GPIO 0x04 /* General-purpose IO */
++#define VG468_MISC_DMAWSB 0x08 /* DMA wait state control */
++#define VG469_MISC_LEDENA 0x10 /* LED enable */
++#define VG468_MISC_VADEMREV 0x40 /* Vadem revision control */
++#define VG468_MISC_UNLOCK 0x80 /* Unique register lock */
++
++/* Flags for VG469_EXT_MODE_A */
++#define VG469_MODE_VPPST 0x03 /* Vpp steering control */
++#define VG469_MODE_INT_SENSE 0x04 /* Internal voltage sense */
++#define VG469_MODE_CABLE 0x08
++#define VG469_MODE_COMPAT 0x10 /* i82365sl B or DF step */
++#define VG469_MODE_TEST 0x20
++#define VG469_MODE_RIO 0x40 /* Steer RIO to INTR? */
++
++/* Flags for VG469_EXT_MODE_B */
++#define VG469_MODE_B_3V 0x01 /* 3.3v for socket B */
++
++#endif /* _LINUX_VG468_H */
+
+
+Property changes on: drakx/trunk/mdk-stage1/pcmcia/vg468.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pcmciayacc_configy">Added: drakx/trunk/mdk-stage1/pcmcia/yacc_config.y</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/pcmcia/yacc_config.y (rev 0)
++++ drakx/trunk/mdk-stage1/pcmcia/yacc_config.y 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,133 @@
++%{
++/*
++ * Startup tool for non statically mapped PCMCIA sockets - config file parsing
++ *
++ * (C) 2005 Dominik Brodowski &lt;linux@brodo.de&gt;
++ *
++ * The initial developer of the original code is David A. Hinds
++ * &lt;dahinds@users.sourceforge.net&gt;. Portions created by David A. Hinds
++ * are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
++ *
++ * License: GPL v2
++ */
++
++#include &lt;stdlib.h&gt;
++#include &lt;stdarg.h&gt;
++#include &lt;stdio.h&gt;
++#include &lt;string.h&gt;
++#include &lt;syslog.h&gt;
++#include &lt;sys/types.h&gt;
++
++#include &quot;startup.h&quot;
++
++/* If bison: generate nicer error messages */
++#define YYERROR_VERBOSE 1
++
++/* from lex_config, for nice error messages */
++extern char *current_file;
++extern int current_lineno;
++
++extern int yylex(void); /* mdk-stage1 */
++
++void yyerror(char *msg, ...);
++
++%}
++
++%token DEVICE CARD ANONYMOUS TUPLE MANFID VERSION FUNCTION PCI
++%token BIND CIS TO NEEDS_MTD MODULE OPTS CLASS
++%token REGION JEDEC DTYPE DEFAULT MTD
++%token INCLUDE EXCLUDE RESERVE IRQ_NO PORT MEMORY
++%token STRING NUMBER SOURCE
++
++%union {
++ char *str;
++ u_long num;
++ struct adjust_list_t *adjust;
++}
++
++%type &lt;str&gt; STRING
++%type &lt;num&gt; NUMBER
++%type &lt;adjust&gt; adjust resource
++%%
++list: /* nothing */
++ | list adjust
++ {
++ adjust_list_t **tail = &amp;root_adjust;
++ while (*tail != NULL) tail = &amp;(*tail)-&gt;next;
++ *tail = $2;
++ }
++ ;
++
++adjust: INCLUDE resource
++ {
++ $2-&gt;adj.Action = ADD_MANAGED_RESOURCE;
++ $$ = $2;
++ }
++ | EXCLUDE resource
++ {
++ $2-&gt;adj.Action = REMOVE_MANAGED_RESOURCE;
++ $$ = $2;
++ }
++ | RESERVE resource
++ {
++ $2-&gt;adj.Action = ADD_MANAGED_RESOURCE;
++ $2-&gt;adj.Attributes |= RES_RESERVED;
++ $$ = $2;
++ }
++ | adjust ',' resource
++ {
++ $3-&gt;adj.Action = $1-&gt;adj.Action;
++ $3-&gt;adj.Attributes = $1-&gt;adj.Attributes;
++ $3-&gt;next = $1;
++ $$ = $3;
++ }
++ ;
++
++resource: IRQ_NO NUMBER
++ {
++ $$ = calloc(sizeof(adjust_list_t), 1);
++ $$-&gt;adj.Resource = RES_IRQ;
++ $$-&gt;adj.resource.irq.IRQ = $2;
++ }
++ | PORT NUMBER '-' NUMBER
++ {
++ if (($4 &lt; $2) || ($4 &gt; 0xffff)) {
++ yyerror(&quot;invalid port range 0x%x-0x%x&quot;, $2, $4);
++ YYERROR;
++ }
++ $$ = calloc(sizeof(adjust_list_t), 1);
++ $$-&gt;adj.Resource = RES_IO_RANGE;
++ $$-&gt;adj.resource.io.BasePort = $2;
++ $$-&gt;adj.resource.io.NumPorts = $4 - $2 + 1;
++ }
++ | MEMORY NUMBER '-' NUMBER
++ {
++ if ($4 &lt; $2) {
++ yyerror(&quot;invalid address range 0x%x-0x%x&quot;, $2, $4);
++ YYERROR;
++ }
++ $$ = calloc(sizeof(adjust_list_t), 1);
++ $$-&gt;adj.Resource = RES_MEMORY_RANGE;
++ $$-&gt;adj.resource.memory.Base = $2;
++ $$-&gt;adj.resource.memory.Size = $4 - $2 + 1;
++ }
++ ;
++
++%%
++void yyerror(char *msg, ...)
++{
++ va_list ap;
++ char str[256];
++
++ va_start(ap, msg);
++ sprintf(str, &quot;error in file '%s' line %d: &quot;,
++ current_file, current_lineno);
++ vsprintf(str+strlen(str), msg, ap);
++#if YYDEBUG
++ fprintf(stderr, &quot;%s\n&quot;, str);
++#else
++ syslog(LOG_ERR, &quot;%s&quot;, str);
++#endif
++ va_end(ap);
++}
++
+
+<a id="drakxtrunkmdkstage1pcmciaresourceMakefile">Added: drakx/trunk/mdk-stage1/pcmcia-resource/Makefile</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/pcmcia-resource/Makefile (rev 0)
++++ drakx/trunk/mdk-stage1/pcmcia-resource/Makefile 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,24 @@
++ #******************************************************************************
++ #
++ # Olivier Blin (blino@mandriva.com)
++ #
++ # Copyright 2006 Mandriva
++ #
++ # This software may be freely redistributed under the terms of the GNU
++ # public license.
++ #
++ # You should have received a copy of the GNU General Public License
++ # along with this program; if not, write to the Free Software
++ # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ #
++ #*****************************************************************************
++
++TARGET=pcmcia-ids.h
++
++all: $(TARGET)
++
++$(TARGET):
++ perl update-pcmcia-ids.pl &gt; $@ || { rm -f $@; exit 1; }
++
++clean:
++ rm -f $(TARGET)
+
+
+Property changes on: drakx/trunk/mdk-stage1/pcmcia-resource/Makefile
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pcmciaresourceupdatepcmciaidspl">Added: drakx/trunk/mdk-stage1/pcmcia-resource/update-pcmcia-ids.pl</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/pcmcia-resource/update-pcmcia-ids.pl (rev 0)
++++ drakx/trunk/mdk-stage1/pcmcia-resource/update-pcmcia-ids.pl 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,42 @@
++#!/usr/bin/perl
++
++use lib '../kernel';
++use strict;
++use MDK::Common;
++
++my @aliases;
++my ($main) = `ls -t /lib/modules/*/modules.alias`;
++foreach (cat_(chomp_($main))) {
++ push @aliases, [ $1, $2 ] if /^alias\s+(pcmcia:\S+)\s+(\S+)$/; #- modalias, module
++}
++@aliases or die &quot;unable to get PCMCIA aliases&quot;;
++
++print '
++struct pcmcia_alias {
++ const char *modalias;
++ const char *module;
++};
++
++';
++
++my %t = (
++ network =&gt; 'network/pcmcia',
++ medias =&gt; 'disk/pcmcia',
++);
++
++foreach my $type (keys %t) {
++ my @modules = chomp_(`perl ../../kernel/modules.pl pci_modules4stage1 &quot;$t{$type}&quot;`)
++ or die &quot;unable to get PCMCIA modules&quot;;
++
++ print &quot;#ifndef DISABLE_&quot;.uc($type).&quot;
++struct pcmcia_alias ${type}_pcmcia_ids[] = {
++&quot;;
++ print qq|\t{ &quot;$_-&gt;[0]&quot;, &quot;$_-&gt;[1]&quot; },\n| foreach grep { member($_-&gt;[1], @modules) } @aliases;
++ print &quot;};
++unsigned int ${type}_pcmcia_num_ids = sizeof(${type}_pcmcia_ids) / sizeof(struct pcmcia_alias);
++
++#endif
++
++&quot;;
++
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/pcmcia-resource/update-pcmcia-ids.pl
+___________________________________________________________________
+Added: svn:executable
+ + *
+
+<a id="drakxtrunkmdkstage1pppChanges23">Added: drakx/trunk/mdk-stage1/ppp/Changes-2.3</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/Changes-2.3 (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/Changes-2.3 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,441 @@
++What was new in ppp-2.3.11.
++***************************
++
++* Support for Solaris 8 has been added, including support for
++ replumbing and IPV6.
++
++* The Solaris `snoop' utility should now work on ppp interfaces.
++
++* New hooks have been added - pap_logout_hook, ip_up_hook, and
++ ip_down_hook.
++
++* A new `passprompt' plugin is included, thanks to Alan Curry, which
++ makes it possible for pppd to call an external program to get the
++ PAP password to send to the peer.
++
++* The error messages for the situation where authentication is
++ required because the system has a default route have been improved.
++
++* There is a new connect_delay option which specifies how long pppd
++ should pause after the connect script finishes. Previously this
++ delay was fixed at 1 second. (This delay terminates as soon as pppd
++ sees a valid PPP frame from the peer.)
++
++* The `hide-password' option is now the default, and there is a new
++ `show-password' option to enable the printing of password strings in
++ the debug output.
++
++* A fairly complete list of the names of PPP protocols has been added
++ so that when pppd rejects a frame because its protocol is not
++ supported, it can print the name of the unsupported protocol.
++
++* Synchronous serial lines are supported under Linux 2.3.x.
++
++* The bug where pppd would not recognize a modem hangup under Linux
++ 2.3.x kernels has been fixed.
++
++
++What was new in ppp-2.3.10.
++***************************
++
++* Pppd now supports `plugins', which are pieces of code (packaged as
++ shared libraries) which can be loaded into pppd at runtime and which
++ can affect its behaviour. The intention is that plugins provide a
++ way for people to customize the behaviour of pppd for their own
++ needs without needing to change the base pppd source. I have added
++ some hooks into pppd (places where pppd will call a function
++ pointer, if non-zero, to replace some of pppd's code) and I will be
++ receptive to suggestions about places to add more hooks. Plugins
++ are supported under Linux and Solaris at present.
++
++* We have a new maintainer for the Solaris port, Adi Masputra of Sun
++ Microsystems, and he has updated the Solaris port so that it should
++ work on 64-bit machines under Solaris 7 and later.
++
++* Pppd now has an `allow-ip' option, which takes an argument which is
++ an IP address (or subnet) which peers are permitted to use without
++ authenticating themselves. The argument takes the same form as each
++ element of the allowed IP address list in the secrets files. The
++ allow-ip option is privileged and may be specified multiple times.
++ Using the allow-ip option should be cleaner than putting a line like
++ `&quot;&quot; * &quot;&quot; address' in /etc/ppp/pap-secrets.
++
++* Chat can now substitute environment variables into the script. This
++ is enabled by the -E flag. (Thanks to Andreas Arens for the patch.)
++
++* If the PAP username and password from the peer contains unprintable
++ characters, they will be translated to a printable form before
++ looking in the pap-secrets file. Characters &gt;= 0x80 are translated
++ to a M- form, and characters from 0 to 0x1f (and 0x7f as well) are
++ translated to a ^X form. If this change causes you grief, let me
++ know what would be a better translation. It appears that some peers
++ send nulls or other control characters in their usernames and
++ passwords.
++
++* Pppd has new `ktune' and `noktune' options, which enable/disable
++ it to change kernel settings as appropriate. This is only
++ implemented under Linux, and requires the /proc filesystem to be
++ mounted. Under Linux, with the ktune option, pppd will enable IP
++ forwarding in the kernel if the proxyarp option is used, and will
++ enable the dynamic IP address kernel option in demand mode if the
++ local IP address changes.
++
++* Pppd no longer requires a remote address to be specified for demand
++ dialling. If none is specified, it will use a default value of
++ 10.112.112.112+unit_number. (It will not propose this default to
++ the peer.)
++
++* The default holdoff is now 0 if no connect script is given.
++
++* The IPV6 code from Tommi Komulainen, which I unfortunately only
++ partially merged in to ppp-2.3.9, has been fixed and updated.
++
++* The linux compilation glitches should be fixed now.
++
++
++What was new in ppp-2.3.9.
++**************************
++
++* Support for the new generic PPP layer under development for the
++ Linux kernel.
++
++* You can now place extra options to apply to specific users at the
++ end of the line with their password in the pap-secrets or
++ chap-secrets file, separated from the IP address(es) with a &quot;--&quot;
++ separator. These options are parsed after the peer is authenticated
++ but before network protocol (IPCP, IPXCP) or CCP negotiation
++ commences.
++
++* Pppd will apply the holdoff period if the link was terminated by the
++ peer. It doesn't apply it if the link was terminated because the
++ local pppd thought it was idle.
++
++* Synchronous support for Solaris has been added, thanks to John
++ Morrison, and for FreeBSD, thanks to Paul Fulghum.
++
++* IPV6 support has been merged in, from Tommi Komulainen. At the
++ moment it only supports Linux and it is not tested by me.
++
++* The `nodefaultip' option can be used in demand mode to say that pppd
++ should not suggest its local IP address to the peer.
++
++* The `init' option has been added; this causes pppd to run a script
++ to initialize the serial device (e.g. by sending an init string to
++ the modem). Unlike the connect option, this can be used in a
++ dial-in situation. (Thanks to Tobias Ringstrom.)
++
++* There is a new `logfile' option to send log messages to a file as
++ well as syslog.
++
++* There is a new, privileged `linkname' option which sets a logical
++ name for the link. Pppd will create a /var/run/ppp-&lt;linkname&gt;.pid
++ file containing its process ID.
++
++* There is a new `maxfail' option which specifies how many consecutive
++ failed connection attempts are permitted before pppd will exit. The
++ default value is 10, and 0 means infinity. :-)
++
++* Sundry bugs fixed.
++
++
++What was new in ppp-2.3.8.
++**************************
++
++* The exit status of pppd will now indicate whether the link was
++ successfully established, or if not, what error was encountered.
++
++* Pppd has two new options: fdlog &lt;n&gt; will send log messages to file
++ descriptor &lt;n&gt; instead of standard output, and nofdlog will stop log
++ messages from being sent to any file descriptor (they will still be
++ sent to syslog). Pppd now will not send log messages to a file
++ descriptor if the serial port is open on that file descriptor.
++
++* Pppd sets an environment variable called PPPLOGNAME for scripts that
++ it runs, indicating the login name of the user who invoked pppd.
++
++* Pppd sets environment variables CONNECT_TIME, BYTES_SENT and
++ BYTES_RCVD for the ip-down and auth-down scripts indicating the
++ statistics for the connection just terminated. (CONNECT_TIME is in
++ seconds.)
++
++* If the user has the serial device open on standard input and
++ specifies a symbolic link to the serial device on the command line,
++ pppd will detect this and behave correctly (i.e. not detach from its
++ controlling terminal). Furthermore, if the serial port is open for
++ reading and writing on standard input, pppd will assume that it is
++ locked by its invoker and not lock it itself.
++
++* Chat now has a feature where if a string to be sent begins with an
++ at sign (@), the rest of the string is taken as the name of a file
++ (regular file or named pipe), and the actual string to send is taken
++ from that file.
++
++* Support for FreeBSD-2.2.8 and 3.0 has been added, thanks to Paul
++ Fulghum.
++
++* The Tru64 (aka Digital Unix aka OSF/1) port has been updated.
++
++* The system panics on Solaris SMP systems related to PPP connections
++ being established and terminated should no longer occur.
++
++* Fixed quite a few bugs.
++
++
++What was new in ppp-2.3.7.
++**************************
++
++* Pppd can now automatically allocate itself a pseudo-tty to use as
++ the serial device. This has made three new options possible:
++
++ - `pty script' will run `script' with its standard input and output
++ connected to the master side of the pty. For example:
++ pppd pty 'ssh -t server.my.net pppd'
++ is a basic command for setting up a PPP link (tunnel) over ssh.
++ (In practice you may need to specify other options such as IP
++ addresses, etc.)
++
++ - `notty' tells pppd to communicate over its standard input and
++ output, which do not have to be a terminal device.
++
++ - `record filename' tells pppd to record all of the characters sent
++ and received over the serial device to a file called `filename'.
++ The data is recorded in a tagged format with timestamps, which can
++ be printed in a readable form with the pppdump program, which is
++ included in this distribution.
++
++* Pppd now logs the connect time and number of bytes sent and received
++ (at the level of the serial device) when the connection is
++ terminated.
++
++* If you use the updetach or nodetach option, pppd will print its
++ messages to standard output as well as logging them with syslog
++ (provided of course pppd isn't using its standard input or output as
++ its serial device).
++
++* There is a new `privgroup groupname' option (a privileged option).
++ If the user running pppd is in group `groupname', s/he can use
++ privileged options without restriction.
++
++* There is a new `receive-all' option, which causes pppd to accept all
++ control characters, even the ones that the peer should be escaping
++ (i.e. the receive asyncmap is 0). This is useful with some buggy
++ peers.
++
++* The default asyncmap is now 0.
++
++* There is a new `sync' option, currently only implemented under
++ Linux, which allows pppd to run on synchronous HDLC devices.
++
++* If a value for the device name or for the connect, disconnect,
++ welcome or pty option is given in a privileged option file
++ (i.e. /etc/ppp/options or a file loaded with the `call' option), it
++ cannot be overridden by a non-privileged user.
++
++* Many bugs have been fixed, notably:
++ - signals are not blocked unnecessarily, as they were in 2.3.6.
++ - the usepeerdns option should work now.
++ - the SPEED environment variable for scripts is set correctly.
++ - the /etc/ppp/auth-down script is not run until auth-up completes.
++ - the device is opened as root if it is the device on standard
++ input.
++ - pppd doesn't die with the ioctl(PPPIOCSASYNCMAP) error under linux
++ if a hangup occurs at the wrong time.
++
++* Some error messages have been changed to be clearer (I hope :-)
++
++
++What was new in ppp-2.3.6.
++**************************
++
++* Pppd now opens the tty device as the user (rather than as root) if
++ the device name was given by the user, i.e. on the command line or
++ in the ~/.ppprc file. If the device name was given in
++ /etc/ppp/options or in a file loaded with the `call' option, the
++ device is opened as root.
++
++* The default behaviour of pppd is now to let a peer which has not
++ authenticated itself (e.g. your ISP) use any IP address to which the
++ system does not already have a route. (This is currently only
++ supported under Linux, Solaris and Digital Unix; on the other
++ systems, the peer must now authenticate itself unless the noauth
++ option is used.)
++
++* Added new option `usepeerdns', thanks to Nick Walker
++ &lt;nickwalker@email.com&gt;. If the peer supplies DNS addresses, these
++ will be written to /etc/ppp/resolv.conf. The ip-up script can then
++ be used to add these addresses to /etc/resolv.conf if desired (see
++ the ip-up.local.add and ip-down.local.add files in the scripts
++ directory).
++
++* The Solaris ppp driver should now work correctly on SMP systems.
++
++* Minor corrections so that the code can compile under Solaris 7,
++ and under Linux with glibc-2.1.
++
++* The Linux kernel driver has been restructured for improved
++ performance.
++
++* Pppd now won't start the ip-down script until the ip-up script has
++ finished.
++
++
++What was new in ppp-2.3.5.
++**************************
++
++* Minor corrections to the Digital UNIX and NetBSD ports.
++
++* A workaround to avoid tickling a bug in the `se' serial port driver
++on Sun PCI Ultra machines running Solaris.
++
++* Fixed a bug in the negotiation of the Microsoft WINS server address
++option.
++
++* Fixed a bug in the Linux port where it would fail for kernel
++versions above 2.1.99.
++
++
++What was new in ppp-2.3.4.
++**************************
++
++* The NeXT port has been updated, thanks to Steve Perkins.
++
++* ppp-2.3.4 compiles and works under Solaris 2.6, using either gcc or
++cc.
++
++* With the Solaris, SVR4 and SunOS ports, you can control the choice
++of C compiler, C compiler options, and installation directories by
++editing the svr4/Makedefs or sunos4/Makedefs file.
++
++* Until now, we have been using the number 24 to identify Deflate
++compression in the CCP negotiations, which was the number in the draft
++RFC describing Deflate. The number actually assigned to Deflate is
++26. The code has been changed to use 26, but to allow the use of 24
++for now for backwards compatibility. (This can be disabled with the
++`nodeflatedraft' option to pppd.)
++
++* Fixed some bugs in the linux driver and deflate compressor which
++were causing compression problems, including corrupting long
++incompressible packets sometimes.
++
++* Fixes to the PAM and shadow password support in pppd, from Al
++Longyear and others.
++
++* Pppd now sets some environment variables for scripts it invokes
++(ip-up/down, auth-ip/down), giving information about the connection.
++The variables it sets are PEERNAME, IPLOCAL, IPREMOTE, UID, DEVICE,
++SPEED, and IFNAME.
++
++* Pppd now has an `updetach' option, which will cause it to detach
++from its controlling terminal once the link has come up (i.e. once it
++is available for IP traffic).
++
++
++What was new in ppp-2.3.3.
++**************************
++
++* Fixed compilation problems under SunOS.
++
++* Fixed a bug introduced into chat in 2.3.2, and compilation problems
++introduced into the MS-CHAP implementation in 2.3.2.
++
++* The linux kernel driver has been updated for recent 2.1-series
++kernel changes, and it now will ask kerneld to load compression
++modules when required, if the kernel is configured to support kerneld.
++
++* Pppd should now compile correctly under linux on systems with glibc.
++
++
++What was new in ppp-2.3.2.
++**************************
++
++* In 2.3.1, I made a change which was intended to make pppd able to
++detect loss of CD during or immediately after the connection script
++runs. Unfortunately, this had the side-effect that the connection
++script wouldn't work at all on some systems. This change has been
++reversed.
++
++* Fix compilation problems in the Linux kernel driver.
++
++
++What was new in ppp-2.3.1.
++**************************
++
++* Enhancements to chat, thanks to Francis Demierre. Chat can now
++accept comments in the chat script file, and has new SAY, HANGUP,
++CLR_ABORT and CLR_REPORT keywords.
++
++* Fixed a bug which causes 2.3.0 to crash Solaris systems.
++
++* Bug-fixes and restructuring of the Linux kernel driver.
++
++* The holdoff behaviour of pppd has been changed slightly: now, if
++the link comes up for IP (or other network protocol) traffic, we
++consider that the link has been successfully established, and don't
++enforce the holdoff period after the link goes down.
++
++* Pppd should now correctly wait for CD (carrier detect) from the
++modem, even when the serial port initially had CLOCAL set, and it
++should also detect loss of CD during or immediately after the
++connection script runs.
++
++* Under linux, pppd will work with older 2.2.0* version kernel
++drivers, although demand-dialling is not supported with them.
++
++* Minor bugfixes for pppd.
++
++
++What was new in ppp-2.3.
++************************
++
++* Demand-dialling. Pppd now has a mode where it will establish the
++network interface immediately when it starts, but not actually bring
++the link up until it sees some data to be sent. Look for the demand
++option description in the pppd man page. Demand-dialling is not
++supported under Ultrix or NeXTStep.
++
++* Idle timeout. Pppd will optionally terminate the link if no data
++packets are sent or received within a certain time interval.
++
++* Pppd now runs the /etc/ppp/auth-up script, if it exists, when the
++peer successfully authenticates itself, and /etc/ppp/auth-down when
++the connection is subsequently terminated. This can be useful for
++accounting purposes.
++
++* A new packet compression scheme, Deflate, has been implemented.
++This uses the same compression method as `gzip'. This method is free
++of patent or copyright restrictions, and it achieves better
++compression than BSD-Compress. It does consume more CPU cycles for
++compression than BSD-Compress, but this shouldn't be a problem for
++links running at 100kbit/s or less.
++
++* There is no code in this distribution which is covered by Brad
++Clements' restrictive copyright notice. The STREAMS modules for SunOS
++and OSF/1 have been rewritten, based on the Solaris 2 modules, which
++were written from scratch without any Clements code.
++
++* Pppstats has been reworked to clean up the output format somewhat.
++It also has a new -d option which displays data rate in kbyte/s for
++those columns which would normally display bytes.
++
++* Pppd options beginning with - or + have been renamed, e.g. -ip
++became noip, +chap became require-chap, etc. The old options are
++still accepted for compatibility but may be removed in future.
++
++* Pppd now has some options (such as the new `noauth' option) which
++can only be specified if it is being run by root, or in an
++&quot;privileged&quot; options file: /etc/ppp/options or an options file in the
++/etc/ppp/peers directory. There is a new &quot;call&quot; option to read
++options from a file in /etc/ppp/peers, making it possible for non-root
++users to make unauthenticated connections, but only to certain trusted
++peers. My intention is to make the `auth' option the default in a
++future release.
++
++* Several minor new features have been added to pppd, including the
++maxconnect and welcome options. Pppd will now terminate the
++connection when there are no network control protocols running. The
++allowed IP address(es) field in the secrets files can now specify
++subnets (with a notation like 123.45.67.89/24) and addresses which are
++not acceptable (put a ! on the front).
++
++* Numerous bugs have been fixed (no doubt some have been introduced :-)
++Thanks to those who reported bugs in ppp-2.2.
+
+<a id="drakxtrunkmdkstage1pppFAQ">Added: drakx/trunk/mdk-stage1/ppp/FAQ</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/FAQ (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/FAQ 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,634 @@
++This is a list of Frequently Asked Questions about using ppp-2.x and
++their answers.
++
++
++------------------------------------------------------------------------
++
++Q: Can you give me an example of how I might set up my machine to dial
++out to an ISP?
++
++A: Here's an example for dialling out to an ISP via a modem on
++/dev/tty02. The modem uses hardware (CTS/RTS) flow control, and the
++serial port is run at 38400 baud. The ISP assigns our IP address.
++
++To configure pppd for this connection, create a file under
++/etc/ppp/peers called (say) my-isp containing the following:
++
++tty02 crtscts 38400
++connect 'chat -v -f /etc/ppp/chat/my-isp'
++defaultroute
++
++The ppp connection is then initiated using the following command:
++
++pppd call my-isp
++
++Of course, if the directory containing pppd is not in your path, you
++will need to give the full pathname for pppd, for example,
++/usr/sbin/pppd.
++
++When you run this, pppd will use the chat program to dial the ISP and
++invoke its ppp service. Chat will read the file specified with -f,
++namely /etc/ppp/chat/my-isp, to find a list of strings to expect to
++receive, and strings to send. This file would contain something like
++this:
++
++ABORT &quot;NO CARRIER&quot;
++ABORT &quot;NO DIALTONE&quot;
++ABORT &quot;ERROR&quot;
++ABORT &quot;NO ANSWER&quot;
++ABORT &quot;BUSY&quot;
++ABORT &quot;Username/Password Incorrect&quot;
++&quot;&quot; &quot;at&quot;
++OK &quot;at&amp;d2&amp;c1&quot;
++OK &quot;atdt2479381&quot;
++&quot;name:&quot; &quot;^Uusername&quot;
++&quot;word:&quot; &quot;\qpassword&quot;
++&quot;annex&quot; &quot;\q^Uppp&quot;
++&quot;Switching to PPP-ppp-Switching to PPP&quot;
++
++You will need to change the details here. The first string on each
++line is a string to expect to receive; the second is the string to
++send. You can add or delete lines according to the dialog required to
++access your ISP's system. This example is for a modem with a standard
++AT command set, dialling out to an Annex terminal server. The \q
++toggles &quot;quiet&quot; mode; when quiet mode is on, the strings to be sent
++are replaced by ?????? in the log. You may need to go through the
++dialog manually using kermit or tip first to determine what should go
++in the script.
++
++To terminate the link, run the following script, called (say)
++kill-ppp:
++
++#!/bin/sh
++unit=ppp${1-0}
++piddir=/var/run
++if [ -f $piddir/$unit.pid ]; then
++ kill -1 `cat $piddir/$unit.pid`
++fi
++
++On some systems (SunOS, Solaris, Ultrix), you will need to change
++/var/run to /etc/ppp.
++
++
++------------------------------------------------------------------------
++
++Q: Can you give me an example of how I could set up my office machine
++so I can dial in to it from home?
++
++A: Let's assume that the office machine is called &quot;office&quot; and is on a
++local ethernet subnet. Call the home machine &quot;home&quot; and give it an IP
++address on the same subnet as &quot;office&quot;. We'll require both machines
++to authenticate themselves to each other.
++
++Set up the files on &quot;office&quot; as follows:
++
++/etc/ppp/options contains:
++
++auth # require the peer to authenticate itself
++lock
++# other options can go here if desired
++
++/etc/ppp/chap-secrets contains:
++
++home office &quot;beware the frub-jub&quot; home
++office home &quot;bird, my son!%&amp;*&quot; -
++
++Set up a modem on a serial port so that users can dial in to the
++modem and get a login prompt.
++
++On &quot;home&quot;, set up the files as follows:
++
++/etc/ppp/options contains the same as on &quot;office&quot;.
++
++/etc/ppp/chap-secrets contains:
++
++home office &quot;beware the frub-jub&quot; -
++office home &quot;bird, my son!%&amp;*&quot; office
++
++Create a file called /etc/ppp/peers/office containing the following:
++
++tty02 crtscts 38400
++connect 'chat -v -f /etc/ppp/chat/office'
++defaultroute
++
++(You may need to change some of the details here.)
++
++Create the /etc/ppp/chat/office file containing the following:
++
++ABORT &quot;NO CARRIER&quot;
++ABORT &quot;NO DIALTONE&quot;
++ABORT &quot;ERROR&quot;
++ABORT &quot;NO ANSWER&quot;
++ABORT &quot;BUSY&quot;
++ABORT &quot;ogin incorrect&quot;
++&quot;&quot; &quot;at&quot;
++OK &quot;at&amp;d2&amp;c1&quot;
++OK &quot;atdt2479381&quot;
++&quot;name:&quot; &quot;^Uusername&quot;
++&quot;word:&quot; &quot;\qpassword&quot;
++&quot;$&quot; &quot;\q^U/usr/sbin/pppd proxyarp&quot;
++&quot;~&quot;
++
++You will need to change the details. Note that the &quot;$&quot; in the
++second-last line is expecting the shell prompt after a successful
++login - you may need to change it to &quot;%&quot; or something else.
++
++You then initiate the connection (from home) with the command:
++
++pppd call office
++
++------------------------------------------------------------------------
++
++Q: When I try to establish a connection, the modem successfully dials
++the remote system, but then hangs up a few seconds later. How do I
++find out what's going wrong?
++
++A: There are a number of possible problems here. The first thing to
++do is to ensure that pppd's messages are visible. Pppd uses the
++syslog facility to log messages which help to identify specific
++problems. Messages from pppd have facility &quot;daemon&quot; and levels
++ranging from &quot;debug&quot; to &quot;error&quot;.
++
++Usually it is useful to see messages of level &quot;notice&quot; or higher on
++the console. To see these, find the line in /etc/syslog.conf which
++has /dev/console on the right-hand side, and add &quot;daemon.notice&quot; in
++the list on the left. The line will end up looking something like
++this:
++
++*.err;kern.debug;auth.notice;mail.crit;daemon.notice /dev/console
++
++Note that the whitespace is tabs, *not* spaces.
++
++If you are having problems, it may be useful to see messages of level
++&quot;info&quot; as well, in which case you would change &quot;daemon.notice&quot; to
++&quot;daemon.info&quot;.
++
++In addition, it is useful to collect pppd's debugging output in a
++file - the debug option to pppd causes it to log the contents of all
++control packets sent and received in human-readable form. To do this,
++add a line like this to /etc/syslog.conf:
++
++daemon,local2.debug /etc/ppp/log
++
++and create an empty /etc/ppp/log file.
++
++When you change syslog.conf, you will need to send a HUP signal to
++syslogd to causes it to re-read syslog.conf. You can do this with a
++command like this (as root):
++
++ kill -HUP `cat /etc/syslogd.pid`
++
++(On some systems, you need to use /var/run/syslog.pid instead of
++/etc/syslogd.pid.)
++
++After setting up syslog like this, you can use the -v flag to chat and
++the `debug' option to pppd to get more information. Try initiating
++the connection again; when it fails, inspect /etc/ppp/log to see what
++happened and where the connection failed.
++
++
++------------------------------------------------------------------------
++
++Q: When I try to establish a connection, I get an error message saying
++&quot;Serial link is not 8-bit clean&quot;. Why?
++
++A: The most common cause is that your connection script hasn't
++successfully dialled out to the remote system and invoked ppp service
++there. Instead, pppd is talking to something (a shell or login
++process on the remote machine, or maybe just the modem) which is only
++outputting 7-bit characters.
++
++This can also arise with a modem which uses an AT command set if the
++dial command is issued before pppd is invoked, rather than within a
++connect script started by pppd. If the serial port is set to 7
++bits/character plus parity when the last AT command is issued, the
++modem serial port will be set to the same setting.
++
++Note that pppd *always* sets the local serial port to 8 bits per
++character, with no parity and 1 stop bit. So you shouldn't need to
++issue an stty command before invoking pppd.
++
++
++------------------------------------------------------------------------
++
++Q: When I try to establish a connection, I get an error message saying
++&quot;Serial line is looped back&quot;. Why?
++
++A: Probably your connection script hasn't successfully dialled out to
++the remote system and invoked ppp service there. Instead, pppd is
++talking to something which is just echoing back the characters it
++receives. The -v option to chat can help you find out what's going
++on. It can be useful to include &quot;~&quot; as the last expect string to
++chat, so chat won't return until it's seen the start of the first PPP
++frame from the remote system.
++
++Another possibility is that your phone connection has dropped for some
++obscure reason and the modem is echoing the characters it receives
++from your system.
++
++
++------------------------------------------------------------------------
++
++Q: I installed pppd successfully, but when I try to run it, I get a
++message saying something like &quot;peer authentication required but no
++authentication files accessible&quot;.
++
++A: When pppd is used on a machine which already has a connection to
++the Internet (or to be more precise, one which has a default route in
++its routing table), it will require all peers to authenticate
++themselves. The reason for this is that if you don't require
++authentication, you have a security hole, because the peer can
++basically choose any IP address it wants, even the IP address of some
++trusted host (for example, a host mentioned in some .rhosts file).
++
++On machines which don't have a default route, pppd does not require
++the peer to authenticate itself. The reason is that such machines
++would mostly be using pppd to dial out to an ISP which will refuse to
++authenticate itself. In that case the peer can use any IP address as
++long as the system does not already have a route to that address.
++For example, if you have a local ethernet network, the peer can't use
++an address on that network. (In fact it could if it authenticated
++itself and it was permitted to use that address by the pap-secrets or
++chap-secrets file.)
++
++There are 3 ways around the problem:
++
++1. If possible, arrange for the peer to authenticate itself, and
++create the necessary secrets files (/etc/ppp/pap-secrets and/or
++/etc/ppp/chap-secrets).
++
++2. If the peer refuses to authenticate itself, and will always be
++using the same IP address, or one of a small set of IP addresses, you
++can create an entry in the /etc/ppp/pap-secrets file like this:
++
++ &quot;&quot; * &quot;&quot; his-ip.his-domain his-other-ip.other-domain
++
++(that is, using the empty string for the client name and password
++fields). Of couse, you replace the 4th and following fields in the
++example above with the IP address(es) that the peer may use. You can
++use either hostnames or numeric IP addresses.
++
++3. You can add the `noauth' option to the /etc/ppp/options file.
++Pppd will then not ask the peer to authenticate itself. If you do
++this, I *strongly* recommend that you remove the set-uid bit from the
++permissions on the pppd executable, with a command like this:
++
++ chmod u-s /usr/sbin/pppd
++
++Then, an intruder could only use pppd maliciously if they had already
++become root, in which case they couldn't do any more damage using pppd
++than they could anyway.
++
++
++------------------------------------------------------------------------
++
++Q: What do I need to put in the secrets files?
++
++A: Three things:
++ - secrets (i.e. passwords) to use for authenticating this host to
++ other hosts (i.e., for proving our identity to others);
++ - secrets which other hosts can use for authenticating themselves
++ to us (i.e., so that they can prove their identity to us); and
++ - information about which IP addresses other hosts may use, once
++ they have authenticated themselves.
++
++There are two authentication files: /etc/ppp/pap-secrets, which
++contains secrets for use with PAP (the Password Authentication
++Protocol), and /etc/ppp/chap-secrets, which contains secrets for use
++with CHAP (the Challenge Handshake Authentication Protocol). Both
++files have the same simple format, which is as follows:
++
++- The file contains a series of entries, each of which contains a
++secret for authenticating one machine to another.
++
++- Each entry is contained on a single logical line. A logical line
++may be continued across several lines by placing a backslash (\) at
++the end of each line except the last.
++
++- Each entry has 3 or more fields, separated by whitespace (spaces
++and/or tabs). These fields are, in order:
++ * The name of the machine that is authenticating itself
++ (the &quot;client&quot;).
++ * The name of the machine that is authenticating the client
++ (the &quot;server&quot;).
++ * The secret to be used for authenticating that client to that
++ server. If this field begins with the at-sign `@', the rest
++ of the field is taken as the name of a file containing the
++ actual secret.
++ * The 4th and any following fields list the IP address(es)
++ that the client may use.
++
++- The file may contain comments, which begin with a `#' and continue
++to the end of the line.
++
++- Double quotes `&quot;' should be used around a field if it contains
++characters with special significance, such as space, tab, `#', etc.
++
++- The backslash `\' may be used before characters with special
++significance (space, tab, `#', `\', etc.) to remove that significance.
++
++Some important points to note:
++
++* A machine can be *both* a &quot;client&quot; and a &quot;server&quot; for the purposes
++of authentication - this happens when both peers require the other to
++authenticate itself. So A would authenticate itself to B, and B would
++also authenticate itself to A (possibly using a different
++authentication protocol).
++
++* If both the &quot;client&quot; and the &quot;server&quot; are running ppp-2.x, they need
++to have a similar entry in the appropriate secrets file; the first two
++fields are *not* swapped on the client, compared to the server. So
++the client might have an entry like this:
++
++ ay bee &quot;our little secret&quot; -
++
++and the corresponding entry on the server could look like this:
++
++ ay bee &quot;our little secret&quot; 123.45.67.89
++
++
++------------------------------------------------------------------------
++
++Q: Explain about PAP and CHAP?
++
++PAP stands for the Password Authentication Protocol. With this
++protocol, the &quot;client&quot; (the machine that needs to authenticate itself)
++sends its name and a password, in clear text, to the &quot;server&quot;. The
++server returns a message indicating whether the name and password are
++valid.
++
++CHAP stands for the Challenge Handshake Authentication Protocol. It
++is designed to address some of the deficiencies and vulnerabilities of
++PAP. Like PAP, it is based on the client and server having a shared
++secret, but the secret is never passed in clear text over the link.
++Instead, the server sends a &quot;challenge&quot; - an arbitrary string of
++bytes, and the client must prove it knows the shared secret by
++generating a hash value from the challenge combined with the shared
++secret, and sending the hash value back to the server. The server
++also generates the hash value and compares it with the value received
++from the client.
++
++At a practical level, CHAP can be slightly easier to configure than
++PAP because the server sends its name with the challenge. Thus, when
++finding the appropriate secret in the secrets file, the client knows
++the server's name. In contrast, with PAP, the client has to find its
++password (i.e. the shared secret) before it has received anything from
++the server. Thus, it may be necessary to use the `remotename' option
++to pppd when using PAP authentication so that it can select the
++appropriate secret from /etc/ppp/pap-secrets.
++
++Microsoft also has a variant of CHAP which uses a different hashing
++arrangement from normal CHAP. There is a client-side implementation
++of Microsoft's CHAP in ppp-2.3; see README.MSCHAP80.
++
++
++------------------------------------------------------------------------
++
++Q: When the modem hangs up, without the remote system having
++terminated the connection properly, pppd does not notice the hangup,
++but just keeps running. How do I get pppd to notice the hangup and
++exit?
++
++A: Pppd detects modem hangup by looking for an end-of-file indication
++from the serial driver, which should be generated when the CD (carrier
++detect) signal on the serial port is deasserted. For this to work:
++
++- The modem has to be set to assert CD when the connection is made and
++deassert it when the phone line hangs up. Usually the AT&amp;C1 modem
++command sets this mode.
++
++- The cable from the modem to the serial port must connect the CD
++signal (on pin 8).
++
++- Some serial drivers have a &quot;software carrier detect&quot; mode, which
++must be *disabled*. The method of doing this varies between systems.
++Under SunOS, use the ttysoftcar command. Under NetBSD, edit /etc/ttys
++to remove the &quot;softcar&quot; flag from the line for the serial port, and
++run ttyflags.
++
++
++------------------------------------------------------------------------
++
++Q: Why should I use PPP compression (BSD-Compress or Deflate) when my
++modem already does V.42 compression? Won't it slow the CPU down a
++lot?
++
++A: Using PPP compression is preferable, especially when using modems
++over phone lines, for the following reasons:
++
++- The V.42 compression in the modem isn't very strong - it's an LZW
++technique (same as BSD-Compress) with a 10, 11 or 12 bit code size.
++With BSD-Compress you can use a code size of up to 15 bits and get
++much better compression, or you can use Deflate and get even better
++compression ratios.
++
++- I have found that enabling V.42 compression in my 14.4k modem
++increases the round-trip time for a character to be sent, echoed and
++returned by around 40ms, from 160ms to 200ms (with error correction
++enabled). This is enough to make it feel less responsive on rlogin or
++telnet sessions. Using PPP compression adds less than 5ms (small
++enough that I couldn't measure it reliably). I admit my modem is a
++cheapie and other modems may well perform better.
++
++- While compression and decompression do require some CPU time, they
++reduce the amount of time spent in the serial driver to transmit a
++given amount of data. Many machines require an interrupt for each
++character sent or received, and the interrupt handler can take a
++significant amount of CPU time. So the increase in CPU load isn't as
++great as you might think. My measurements indicate that a system with
++a 33MHz 486 CPU should be able to do Deflate compression for serial
++link speeds of up to 100kb/s or more. It depends somewhat on the type
++of data, of course; for example, when compressing a string of nulls
++with Deflate, it's hard to get a high output data rate from the
++compressor, simply because it compresses strings of nulls so well that
++it has to eat a very large amount of input data to get each byte of
++output.
++
++
++------------------------------------------------------------------------
++
++Q: I get messages saying &quot;Unsupported protocol (...) received&quot;. What do
++these mean?
++
++A: If you only get one or two when pppd starts negotiating with the
++peer, they mean that the peer wanted to negotiate some PPP protocol
++that pppd doesn't understand. This doesn't represent a problem, it
++simply means that there is some functionality that the peer supports
++that pppd doesn't, so that functionality can't be used.
++
++If you get them sporadically while the link is operating, or if the
++protocol numbers (in parentheses) don't correspond to any valid PPP
++protocol that the peer might be using, then the problem is probably
++that characters are getting corrupted on the receive side, or that
++extra characters are being inserted into the receive stream somehow.
++If this is happening, most packets that get corrupted should get
++discarded by the FCS (Frame Check Sequence, a 16-bit CRC) check, but a
++small number may get through.
++
++One possibility may be that you are receiving broadcast messages on
++the remote system which are being sent over your serial link. Another
++possibility is that your modem is set for XON/XOFF (software) flow
++control and is inserting ^Q and ^S characters into the receive data
++stream.
++
++
++------------------------------------------------------------------------
++
++Q: I get messages saying &quot;Protocol-Reject for unsupported protocol ...&quot;.
++What do these mean?
++
++A: This is the other side of the previous question. If characters are
++getting corrupted on the way to the peer, or if your system is
++inserting extra bogus characters into the transmit data stream, the
++peer may send protocol-reject messages to you, resulting in the above
++message (since your pppd doesn't recognize the protocol number
++either.)
++
++
++------------------------------------------------------------------------
++
++Q: I get a message saying something like &quot;ioctl(TIOCSETD): Operation
++not permitted&quot;. How do I fix this?
++
++A: This is because pppd is not running as root. If you have not
++installed pppd setuid-root, you will have to be root to run it. If
++you have installed pppd setuid-root and you still get this message, it
++is probably because your shell is using some other copy of pppd than
++the installed one - for example, if you are in the pppd directory
++where you've just built pppd and your $PATH has . before /usr/sbin (or
++wherever pppd gets installed).
++
++
++------------------------------------------------------------------------
++
++Q: Has your package been ported to HP/UX or IRIX or AIX?
++
++A: No. I don't have access to systems running HP/UX or AIX. No-one
++has volunteered to port it to HP/UX. I had someone who did a port for
++AIX 4.x, but who is no longer able to maintain it. And apparently AIX
++3.x is quite different, so it would need a separate port.
++
++IRIX includes a good PPP implementation in the standard distribution,
++as far as I know.
++
++
++------------------------------------------------------------------------
++
++Q: Under SunOS 4, when I try to modload the ppp modules, I get the
++message &quot;can't open /dev/vd: No such device&quot;.
++
++A: First check in /dev that there is an entry like this:
++
++crw-r--r-- 1 root 57, 0 Oct 2 1991 vd
++
++If not, make one (mknod /dev/vd c 57 0). If the problem still exists,
++probably your kernel has been configured without the vd driver
++included. The vd driver is needed for loadable module support.
++
++First, identify the config file that was used. When you boot your
++machine, or if you run /etc/dmesg, you'll see a line that looks
++something like this:
++
++SunOS Release 4.1.3_U1 (CAP_XBOX) #7: Thu Mar 21 15:31:56 EST 1996
++ ^^^^^^^^
++ this is the config file name
++
++The config file will be in the /sys/`arch -k`/conf directory (arch -k
++should return sun4m for a SparcStation 10, sun3x for a Sun 3/80,
++etc.). Look in there for a line saying &quot;options VDDRV&quot;. If that line
++isn't present (or is commented out), add it (or uncomment it).
++
++You then need to rebuild the kernel as described in the SunOS
++manuals. Basically you need to run config and make like this:
++
++ /usr/etc/config CAP_XBOX
++ cd ../CAP_XBOX
++ make
++
++(replacing the string CAP_XBOX by the name of the config file for your
++kernel, of course).
++
++Then copy the new kernel to /:
++
++ mv /vmunix /vmunix.working
++ cp vmunix /
++
++and reboot. Modload should then work.
++
++
++------------------------------------------------------------------------
++
++Q: I'm running Linux (or NetBSD or FreeBSD), and my system comes with
++PPP already. Should I consider installing this package? Why?
++
++A: The PPP that is already installed in your system is (or is derived
++from) some version of this PPP package. You can find out what version
++of this package is already installed with the command &quot;pppd --help&quot;.
++If this is older than the latest version, you may wish to install the
++latest version so that you can take advantage of the new features or
++bug fixes.
++
++
++------------------------------------------------------------------------
++
++Q: I'm running pppd in demand mode, and I find that pppd often dials
++out unnecessarily when I try to make a connection within my local
++machine or with a machine on my local LAN. What can I do about this?
++
++A: Very often the cause of this is that a program is trying to contact
++a nameserver to resolve a hostname, and the nameserver (specified in
++/etc/resolv.conf, usually) is on the far side of the ppp link. You
++can try executing a command such as `ping myhost' (where myhost is the
++name of the local machine, or some other machine on a local LAN), to
++see whether that starts the ppp link. If it does, check the setup of
++your /etc/hosts file to make sure you have the local machine and any
++hosts on your local LAN listed, and /etc/resolv.conf and/or
++/etc/nsswitch.conf files to make sure you resolve hostnames from
++/etc/hosts if possible before trying to contact a nameserver.
++
++
++------------------------------------------------------------------------
++
++Q: Since I installed ppp-2.3.6, dialin users to my server have been
++getting this message when they run pppd:
++
++peer authentication required but no suitable secret(s) found for
++authenticating any peer to us (ispserver)
++
++A: In 2.3.6, the default is to let an unauthenticated peer only use IP
++addresses to which the machine doesn't already have a route. So on a
++machine with a default route, everyone has to authenticate. If you
++really don't want that, you can put `noauth' in the /etc/ppp/options
++file. Note that there is then no check on who is using which IP
++address. IMHO, this is undesirably insecure, but I guess it may be
++tolerable as long as you don't use any .rhosts files or anything like
++that. I recommend that you require dialin users to authenticate, even
++if just with PAP using their login password (using the `login' option
++to pppd). If you do use `noauth', you should at least have a pppusers
++group and set the permissions on pppd to allow only user and group to
++execute it.
++
++------------------------------------------------------------------------
++
++Q: When running pppd as a dial-in server, I often get the message
++&quot;LCP: timeout sending Config-Requests&quot; from pppd. It seems to be
++random, but dial-out always works fine. What is wrong?
++
++A: Most modern modems auto-detects the speed of the serial line
++between the modem and the computer. This auto-detection occurs when
++the computer sends characters to the modem, when the modem is in
++command mode. It does not occur when the modem is in data mode.
++Thus, if you send commands to the modem at 2400 bps, and then change
++the serial port speed to 115200 bps, the modem will not detect this
++change until something is transmitted from the computer to the modem.
++When running pppd in dial-in mode (i.e. without a connect script),
++pppd sets the speed of the serial port, but does not transmit
++anything. If the modem was already running at the specified speed,
++everything is fine, but if not, you will just receive garbage from the
++modem. To cure this, use an init script such as the following:
++
++ pppd ttyS0 115200 modem crtscts init &quot;chat '' AT OK&quot;
++
++To reset the modem and enable auto-answer, use:
++
++ pppd ttyS0 115200 modem crtscts init &quot;chat '' ATZ OK ATS0=1 OK&quot;
+
+<a id="drakxtrunkmdkstage1pppPLUGINS">Added: drakx/trunk/mdk-stage1/ppp/PLUGINS</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/PLUGINS (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/PLUGINS 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,131 @@
++Starting with version 2.3.10, pppd includes support for `plugins' -
++pieces of code which can be loaded into pppd at runtime and which can
++affect its behaviour in various ways. The idea of plugins is to
++provide a way for people to customize the behaviour of pppd without
++having to either apply local patches to each version or get their
++patches accepted into the standard distribution. My aim is that
++plugins will be able to be used with successive versions of pppd
++without needing to recompile the plugins.
++
++A plugin is a standard shared library object, typically with a name
++ending in .so. They are loaded using the standard dlopen() library
++call, so plugins are only supported on systems which support shared
++libraries and the dlopen call. At present pppd is compiled with
++plugin support only under Linux and Solaris.
++
++Plugins are loaded into pppd using the `plugin' option, which takes
++one argument, the name of a shared object file. The plugin option is
++a privileged option. I suggest that you give the full path name of
++the shared object file; if you don't, it may be possible for
++unscrupulous users to substitute another shared object file for the
++one you mean to load, e.g. by setting the LD_LIBRARY_PATH variable.
++
++Plugins are usually written in C and compiled and linked to a shared
++object file in the appropriate manner for your platform. Using gcc
++under Linux, a plugin called `xyz' could be compiled and linked with
++the following commands:
++
++ gcc -c -O xyz.c
++ gcc -shared -o xyz.so xyz.o
++
++There are some example plugins in the pppd/plugins directory in the
++ppp distribution. Currently there is one example, minconn.c, which
++implements a `minconnect' option, which specifies a minimum connect
++time before the idle timeout applies.
++
++Plugins can access global variables within pppd, so it is useful for
++them to #include &quot;pppd.h&quot; from the pppd source directory.
++
++Every plugin must contain a global procedure called `plugin_init'.
++This procedure will get called (with no arguments) immediately after
++the plugin is loaded.
++
++Plugins can affect the behaviour of pppd in at least three ways:
++
++1. They can add extra options which pppd will then recognize. This is
++ done by calling the add_options() procedure with a pointer to an
++ array of option_t structures. The last entry in the array must
++ have its name field set to NULL.
++
++2. Pppd contains `hook' variables which are procedure pointers. If a
++ given hook is not NULL, pppd will call the procedure it points to
++ at the appropriate point in its processing. The plugin can set any
++ of these hooks to point to its own procedures. See below for a
++ description of the hooks which are currently implemented.
++
++3. Plugin code can call any global procedures and access any global
++ variables in pppd.
++
++Here is a list of the currently implemented hooks in pppd.
++
++
++int (*idle_time_hook)(struct ppp_idle *idlep);
++
++The idle_time_hook is called when the link first comes up (i.e. when
++the first network protocol comes up) and at intervals thereafter. On
++the first call, the idlep parameter is NULL, and the return value is
++the number of seconds before pppd should check the link activity, or 0
++if there is to be no idle timeout.
++
++On subsequent calls, idlep points to a structure giving the number of
++seconds since the last packets were sent and received. If the return
++value is &gt; 0, pppd will wait that many seconds before checking again.
++If it is &lt;= 0, that indicates that the link should be terminated due
++to lack of activity.
++
++
++int (*holdoff_hook)(void);
++
++The holdoff_hook is called when an attempt to bring up the link fails,
++or the link is terminated, and the persist or demand option was used.
++It returns the number of seconds that pppd should wait before trying
++to reestablish the link (0 means immediately).
++
++
++int (*pap_check_hook)(void);
++int (*pap_passwd_hook)(char *user, char *passwd);
++int (*pap_auth_hook)(char *user, int userlen,
++ char *passwd, int passlen,
++ char **msgp, int *msglenp,
++ struct wordlist **paddrs,
++ struct wordlist **popts);
++
++These hooks are designed to allow a plugin to replace the normal PAP
++password processing in pppd with something different (e.g. contacting
++an external server).
++
++The pap_check_hook is called to check whether there is any possibility
++that the peer could authenticate itself to us. If it returns 1, pppd
++will ask the peer to authenticate itself. If it returns 0, pppd will
++not ask the peer to authenticate itself (but if authentication is
++required, pppd may exit, or terminate the link before network protocol
++negotiation). If it returns -1, pppd will look in the pap-secrets
++file as it would normally.
++
++The pap_passwd_hook is called to determine what username and password
++pppd should use in authenticating itself to the peer with PAP. The
++user string will already be initialized, by the `user' option, the
++`name' option, or from the hostname, but can be changed if necessary.
++MAXNAMELEN bytes of space are available at *user, and MAXSECRETLEN
++bytes of space at *passwd. If this hook returns 0, pppd will use the
++values at *user and *passwd; if it returns -1, pppd will look in the
++pap-secrets file, or use the value from the +ua or password option, as
++it would normally.
++
++The pap_auth_hook is called to determine whether the username and
++password supplied by the peer are valid. user and passwd point to
++null-terminated strings containing the username and password supplied
++by the peer, with non-printable characters converted to a printable
++form. The pap_auth_hook function should set msg to a string to be
++returned to the peer and return 1 if the username/password was valid
++and 0 if not. If the hook returns -1, pppd will look in the
++pap-secrets file as usual.
++
++If the username/password was valid, the hook can set *paddrs to point
++to a wordlist containing the IP address(es) which the peer is
++permitted to use, formatted as in the pap-secrets file. It can also
++set *popts to a wordlist containing any extra options for this user
++which pppd should apply at this point.
++
++
++## $Id: PLUGINS 195720 2001-06-11 11:44:34Z gc $ ##
+
+<a id="drakxtrunkmdkstage1pppREADME">Added: drakx/trunk/mdk-stage1/ppp/README</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/README (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/README 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,168 @@
++This is the README file for ppp-2.4, a package which implements the
++Point-to-Point Protocol (PPP) to provide Internet connections over
++serial lines.
++
++
++Introduction.
++*************
++
++The Point-to-Point Protocol (PPP) provides a standard way to establish
++a network connection over a serial link. At present, this package
++supports IP and the protocols layered above IP, such as TCP and UDP.
++The Linux and Solaris ports of this package have optional support for
++IPV6; the Linux port of this package also has support for IPX.
++
++This software consists of two parts:
++
++- Kernel code, which establishes a network interface and passes
++packets between the serial port, the kernel networking code and the
++PPP daemon (pppd). This code is implemented using STREAMS modules on
++SunOS 4.x and Solaris, and as a line discipline under Linux and FreeBSD.
++
++- The PPP daemon (pppd), which negotiates with the peer to establish
++the link and sets up the ppp network interface. Pppd includes support
++for authentication, so you can control which other systems may make a
++PPP connection and what IP addresses they may use.
++
++The primary platforms supported by this package are Linux and Solaris.
++Code for SunOS 4.x is included here but is largely untested. I have
++code for NeXTStep, FreeBSD, SVR4, Tru64 (Digital Unix), AIX and Ultrix
++but no active maintainers for these platforms. Code for all of these
++except AIX is included in the ppp-2.3.11 release.
++
++
++Installation.
++*************
++
++The file SETUP contains general information about setting up your
++system for using PPP. There is also a README file for each supported
++system, which contains more specific details for installing PPP on
++that system. The supported systems, and the corresponding README
++files, are:
++
++ Linux README.linux
++ Solaris 2 README.sol2
++ SunOS 4.x README.sunos4
++
++In each case you start by running the ./configure script. This works
++out which operating system you are using and creates symbolic links to
++the appropriate makefiles. You then run `make' to compile the
++user-level code, and (as root) `make install' to install the
++user-level programs pppd, chat and pppstats.
++
++N.B. Since 2.3.0, leaving the permitted IP addresses column of the
++pap-secrets or chap-secrets file empty means that no addresses are
++permitted. You need to put a &quot;*&quot; in that column to allow the peer to
++use any IP address. (This only applies where the peer is
++authenticating itself to you, of course.)
++
++
++What's new in ppp-2.4.1.
++************************
++
++* Pppd can now print out the set of options that are in effect. The
++ new `dump' option causes pppd to print out the option values after
++ option parsing is complete. The `dryrun' option causes pppd to
++ print the options and then exit.
++
++* The option parsing code has been fixed so that options in the
++ per-tty options file are parsed correctly, and don't override values
++ from the command line in most cases.
++
++* The plugin option now looks in /usr/lib/pppd/&lt;pppd-version&gt; (for
++ example, /usr/lib/pppd/2.4.1b1) for shared objects for plugins if
++ there is no slash in the plugin name.
++
++* When loading a plugin, pppd will now check the version of pppd for
++ which the plugin was compiled, and refuse to load it if it is
++ different to pppd's version string. To enable this, the plugin
++ source needs to #include &quot;pppd.h&quot; and have a line saying:
++ char pppd_version[] = VERSION;
++
++* There is a bug in zlib, discovered by James Carlson, which can cause
++ kernel memory corruption if Deflate is used with the lowest setting,
++ 8. As a workaround pppd will now insist on using at least 9.
++
++* Pppd should compile on Solaris and SunOS again.
++
++* Pppd should now set the MTU correctly on demand-dialled interfaces.
++
++
++What was new in ppp-2.4.0.
++**************************
++
++* Multilink: this package now allows you to combine multiple serial
++ links into one logical link or `bundle', for increased bandwidth and
++ reduced latency. This is currently only supported under the
++ Linux-2.3.99pre5 or later kernels.
++
++* All the pppd processes running on a system now write information
++ into a common database. I used the `tdb' code from samba for this.
++
++* New hooks have been added.
++
++For a list of the changes made during the 2.3 series releases of this
++package, see the Changes-2.3 file.
++
++
++Compression methods.
++********************
++
++This package supports two packet compression methods: Deflate and
++BSD-Compress. Other compression methods which are in common use
++include Predictor, LZS, and MPPC. These methods are not supported for
++two reasons - they are patent-encumbered, and they cause some packets
++to expand slightly, which pppd doesn't currently allow for.
++BSD-Compress is also patent-encumbered (its inclusion in this package
++can be considered a historical anomaly :-) but it doesn't ever expand
++packets. Neither does Deflate, which uses the same algorithm as gzip.
++
++
++Patents.
++********
++
++The BSD-Compress algorithm used for packet compression is the same as
++that used in the Unix &quot;compress&quot; command. It is apparently covered by
++U.S. patents 4,814,746 (owned by IBM) and 4,558,302 (owned by Unisys),
++and corresponding patents in various other countries (but not
++Australia). If this is of concern, you can build the package without
++including BSD-Compress. To do this, edit net/ppp-comp.h to change the
++definition of DO_BSD_COMPRESS to 0. The bsd-comp.c files are then no
++longer needed, so the references to bsd-comp.o may optionally be
++removed from the Makefiles.
++
++
++Contacts.
++*********
++
++The comp.protocols.ppp newsgroup is a useful place to get help if you
++have trouble getting your ppp connections to work. Please do not send
++me questions of the form &quot;please help me get connected to my ISP&quot; -
++I'm sorry, but I simply do not have the time to answer all the
++questions like this that I get.
++
++If you find bugs in this package, please report them to the maintainer
++for the port for the operating system you are using:
++
++Linux Paul Mackerras &lt;paulus@linuxcare.com&gt;
++Solaris 2 James Carlson &lt;james.d.carlson@east.sun.com&gt;
++SunOS 4.x Adi Masputra &lt;adi.masputra@sun.com&gt;
++
++
++Copyrights:
++***********
++
++All of the code can be freely used and redistributed. The individual
++source files each have their own copyright and permission notice; some
++have a BSD-style notice and some are under the GPL.
++
++
++Distribution:
++*************
++
++The primary site for releases of this software is:
++
++ ftp://linuxcare.com.au/pub/ppp/
++
++
++($Id: README 195720 2001-06-11 11:44:34Z gc $)
+
+<a id="drakxtrunkmdkstage1pppREADMEMSCHAP80">Added: drakx/trunk/mdk-stage1/ppp/README.MSCHAP80</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/README.MSCHAP80 (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/README.MSCHAP80 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,284 @@
++PPP Client Support for Microsoft's CHAP-80
++==========================================
++
++Eric Rosenquist rosenqui@strataware.com
++(updated by Paul Mackerras)
++(updated by Al Longyear)
++(updated by Farrell Woods)
++
++INTRODUCTION
++
++Microsoft has introduced an extension to the Challenge/Handshake
++Authentication Protocol (CHAP) which avoids storing cleartext
++passwords on a server. (Unfortunately, this is not as secure as it
++sounds, because the encrypted password stored on a server can be used
++by a bogus client to gain access to the server just as easily as if
++the password were stored in cleartext.) The details of the Microsoft
++extensions can be found in the document:
++
++ &lt;ftp://ftp.microsoft.com/developr/rfc/chapexts.txt&gt;
++
++In short, MS-CHAP is identified as &lt;auth chap 80&gt; since the hex value
++of 80 is used to designate Microsoft's scheme. Standard PPP CHAP uses
++a value of 5. If you enable PPP debugging with the &quot;debug&quot; option and
++see something like the following in your logs, the remote server is
++requesting MS-CHAP:
++
++ rcvd [LCP ConfReq id=0x2 &lt;asyncmap 0x0&gt; &lt;auth chap 80&gt; &lt;magic 0x46a3&gt;]
++ ^^^^^^^^^^^^
++
++The standard pppd implementation will indicate its lack of support for
++MS-CHAP by NAKing it:
++
++ sent [LCP ConfNak id=0x2 &lt;auth chap 05&gt;]
++
++Windows NT Server systems are often configured to &quot;Accept only
++Microsoft Authentication&quot; (this is intended to enhance security). Up
++until now, that meant that you couldn't use this version of PPPD to
++connect to such a system. I've managed to get a client-only
++implementation of MS-CHAP working; it will authenticate itself to
++another system using MS-CHAP, but if you're using PPPD as a dial-in
++server, you won't be able to use MS-CHAP to authenticate the clients.
++This would not be a lot of extra work given that the framework is in
++place, but I didn't need it myself so I didn't implement it.
++
++
++BUILDING THE PPPD
++
++MS-CHAP uses a combination of MD4 hashing and DES encryption for
++authentication. You may need to get Eric Young's libdes library in
++order to use my MS-CHAP extensions. A lot of UNIX systems already
++have DES encryption available via the crypt(3), encrypt(3) and
++setkey(3) interfaces. Some may (such as that on Digital UNIX)
++provide only the encryption mechanism and will not perform
++decryption. This is okay. We only need to encrypt to perform
++MS-CHAP authentication.
++
++If you have encrypt/setkey available, then hopefully you need only
++define these two things in your Makefile: -DUSE_CRYPT and -DCHAPMS.
++Skip the paragraphs below about obtaining and building libdes. Do
++the &quot;make clean&quot; and &quot;make&quot; as described below. Linux users
++should not need to modify their Makefiles. Instead,
++just do &quot;make CHAPMS=1 USE_CRYPT=1&quot;.
++
++If you don't have encrypt and setkey, you will need Eric Young's
++libdes library. You can find it in:
++
++ftp://ftp.funet.fi/pub/crypt/mirrors/ftp.psy.uq.oz.au/DES/libdes-3.06.tar.gz
++
++Australian residents can get libdes from Eric Young's site:
++
++ftp://ftp.psy.uq.oz.au/pub/Crypto/DES/libdes-3.06.tar.gz
++
++It is also available on many other sites (ask Archie).
++
++I used libdes-3.06, but hopefully anything newer than that will work
++also. Get the library, build and test it on your system, and install
++it somewhere (typically /usr/local/lib and /usr/local/include).
++
++
++
++You should now be ready to (re)compile the PPPD. Go to the pppd
++subdirectory and make sure the Makefile contains &quot;-DCHAPMS&quot; in the
++CFLAGS or COMPILE_FLAGS macro, and that the LIBS macro (or LDADD for
++BSD systems) contains &quot;-ldes&quot;. Depending on your system and where the
++DES library was installed, you may also need to alter the include and
++library paths used by your compiler.
++
++Do a &quot;make clean&quot; and then a &quot;make&quot; to rebuild pppd. Assuming all
++goes well, install the new pppd and move on to the CONFIGURATION
++section.
++
++
++CONFIGURATION
++
++If you've never used PPPD with CHAP before, read the man page (type
++&quot;man pppd&quot;) and read the description in there. Basically, you need to
++edit the &quot;chap-secrets&quot; file typically named /etc/ppp/chap-secrets.
++This should contain the following two lines for each system with which
++you use CHAP (with no leading blanks):
++
++ RemoteHost Account Secret
++ Account RemoteHost Secret
++
++Note that you need both lines and that item 1 and 2 are swapped in the
++second line. I'm not sure why you need it twice, but it works and I didn't
++have time to look into it further. The &quot;RemoteHost&quot; is a somewhat
++arbitrary name for the remote Windows NT system you're dialing. It doesn't
++have to match the NT system's name, but it *does* have to match what you
++use with the &quot;remotename&quot; parameter. The &quot;Account&quot; is the Windows NT
++account name you have been told to use when dialing, and the &quot;Secret&quot; is
++the password for that account. For example, if your service provider calls
++their machine &quot;DialupNT&quot; and tells you your account and password are
++&quot;customer47&quot; and &quot;foobar&quot;, add the following to your chap-secrets file:
++
++ DialupNT customer47 foobar
++ customer47 DialupNT foobar
++
++The only other thing you need to do for MS-CHAP (compared to normal CHAP)
++is to always use the &quot;remotename&quot; option, either on the command line or in
++your &quot;options&quot; file (see the pppd man page for details). In the case of
++the above example, you would need to use the following command line:
++
++ pppd name customer47 remotename DialupNT &lt;other options&gt;
++
++or add:
++
++ name customer47
++ remotename DialupNT
++
++to your PPPD &quot;options&quot; file.
++
++The &quot;remotename&quot; option is required for MS-CHAP since Microsoft PPP servers
++don't send their system name in the CHAP challenge packet.
++
++
++E=691 (AUTHENTICATION_FAILURE) ERRORS WHEN YOU HAVE THE VALID SECRET (PASSWORD)
++
++If your RAS server is not the domain controller and is not a 'stand-alone'
++server then it must make a query to the domain controller for your domain.
++
++You need to specify the domain name with the user name when you attempt to
++use this type of a configuration. The domain name is specified with the
++local name in the chap-secrets file and with the option for the 'name'
++parameter.
++
++For example, the previous example would become:
++
++ DialupNT domain\\customer47 foobar
++ domain\\customer47 DialupNT foobar
++
++and
++
++ pppd name 'domain\\customer47' remotename DialupNT &lt;other options&gt;
++
++or add:
++
++ name domain\\customer47
++ remotename DialupNT
++
++when the Windows NT domain name is simply called 'domain'.
++
++
++TROUBLESHOOTING
++
++Assuming that everything else has been configured correctly for PPP and
++CHAP, the MS-CHAP-specific problems you're likely to encounter are mostly
++related to your Windows NT account and its settings. A Microsoft server
++returns error codes in its CHAP response. The following are extracted from
++Microsoft's &quot;chapexts.txt&quot; file referenced above:
++
++ 646 ERROR_RESTRICTED_LOGON_HOURS
++ 647 ERROR_ACCT_DISABLED
++ 648 ERROR_PASSWD_EXPIRED
++ 649 ERROR_NO_DIALIN_PERMISSION
++ 691 ERROR_AUTHENTICATION_FAILURE
++ 709 ERROR_CHANGING_PASSWORD
++
++You'll see these in your pppd log as a line similar to:
++
++ Remote message: E=649 R=0
++
++The &quot;E=&quot; is the error number from the table above, and the &quot;R=&quot; flag
++indicates whether the error is transient and the client should retry. If
++you consistently get error 691, then either you're using the wrong account
++name/password, or the DES library or MD4 hashing (in md4.c) aren't working
++properly. Verify your account name and password (use a Windows NT or
++Windows 95 system to dial-in if you have one available). If that checks
++out, test the DES library with the &quot;destest&quot; program included with the DES
++library. If DES checks out, the md4.c routines are probably failing
++(system byte ordering may be a problem) or my code is screwing up. I've
++only got access to a Linux system, so you're on your own for anything else.
++
++Another thing that might cause problems is that some RAS servers won't
++respond at all to LCP config requests without seeing the word &quot;CLIENT&quot;
++from the other end. If you see pppd sending out LCP config requests
++without getting any reply, try putting something in your chat script
++to send the word CLIENT after the modem has connected.
++
++If everything compiles cleanly, but fails at authentication time, then
++it might be a case of the MD4 or DES code screwing up. The following
++small program can be used to test the MS-CHAP code to see if it
++produces a known response:
++
++-----------------
++#include &lt;stdio.h&gt;
++
++#include &quot;pppd.h&quot;
++#include &quot;chap.h&quot;
++#include &quot;chap_ms.h&quot;
++
++int main(argc, argv)
++ int argc;
++ char *argv[];
++{
++ u_char challenge[8];
++ int challengeInt[sizeof(challenge)];
++ chap_state cstate;
++ int i;
++
++ if (argc != 3) {
++ fprintf(stderr, &quot;Usage: %s &lt;16-hexchar challenge&gt; &lt;password&gt;\n&quot;,
++ argv[0]); exit(1);
++ }
++
++ sscanf(argv[1], &quot;%2x%2x%2x%2x%2x%2x%2x%2x&quot;,
++ challengeInt + 0, challengeInt + 1, challengeInt + 2,
++ challengeInt + 3, challengeInt + 4, challengeInt + 5,
++ challengeInt + 6, challengeInt + 7);
++
++ for (i = 0; i &lt; sizeof(challenge); i++)
++ challenge[i] = (u_char)challengeInt[i];
++
++ ChapMS(&amp;cstate, challenge, sizeof(challenge), argv[2], strlen(argv[2]));
++ printf(&quot;Response length is %d, response is:&quot;, cstate.resp_length);
++
++ for (i = 0; i &lt; cstate.resp_length; i++) {
++ if (i % 8 == 0)
++ putchar('\n');
++ printf(&quot;%02X &quot;, (unsigned int)cstate.response[i]);
++ }
++
++ putchar('\n');
++
++ exit(0);
++}
++-------------
++
++This needs to link against chap_ms.o, md4.o, and the DES library. When
++you run it with the command line:
++
++ $ testchap 00000000000000000000000000000000 hello
++
++it should output the following:
++
++ Response length is 49, response is:
++ 00 00 00 00 00 00 00 00
++ 00 00 00 00 00 00 00 00
++ 00 00 00 00 00 00 00 00
++ F4 D9 9D AF 82 64 DC 3C
++ 53 F9 BC 92 14 B5 5D 9E
++ 78 C4 21 48 9D B7 A8 B4
++ 01
++
++if not, then either the DES library is not working, the MD4 code isn't
++working, or there are some problems with the port of the code in
++chap_ms.c.
++
++
++STILL TO DO
++
++A site using only MS-CHAP to authenticate has no need to store cleartext
++passwords in the &quot;chap-secrets&quot; file. A utility that spits out the ASCII
++hex MD4 hash of a given password would be nice, and would allow that hash
++to be used in chap-secrets in place of the password. The code to do this
++could quite easily be lifted from chap_ms.c (you have to convert the
++password to Unicode before hashing it). The chap_ms.c file would also have
++to be changed to recognize a password hash (16 binary bytes == 32 ASCII hex
++characters) and skip the hashing stage.
++
++A server implementation would allow MS-CHAP to be used with Windows NT and
++Windows 95 clients for enhanced security. Some new command-line options
++would be required, as would code to generate the Challenge packet and
++verify the response. Most of the helper functions are in place, so this
++shouldn't be too hard for someone to add.
+
+<a id="drakxtrunkmdkstage1pppREADMEcbcp">Added: drakx/trunk/mdk-stage1/ppp/README.cbcp</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/README.cbcp (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/README.cbcp 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,97 @@
++ Microsoft Call Back Configuration Protocol.
++ by Pedro Roque Marques
++ (updated by Paul Mackerras)
++
++The CBCP is a method by which the Microsoft Windows NT Server may
++implement additional security. It is possible to configure the server
++in such a manner so as to require that the client systems which
++connect with it are required that following a valid authentication to
++leave a method by which the number may be returned call.
++
++It is a requirement of servers so configured that the protocol be
++exchanged.
++
++So, this set of patches may be applied to the pppd process to enable
++the cbcp client *only* portion of the specification. It is primarily
++meant to permit connection with Windows NT Servers.
++
++The ietf-working specification may be obtained from ftp.microsoft.com
++in the developr/rfc directory.
++
++The ietf task group has decided to recommend that the LCP sequence be
++extended to permit the callback operation. For this reason, these
++patches are not 'part' of pppd but are an adjunct to the code.
++
++To enable CBCP support, all that is required is to change the
++appropriate Makefile in the pppd subdirectory to add &quot;-DCBCP_SUPPORT&quot;
++to the CFLAGS definition and add cbcp.o to the list of object files,
++and then recompile pppd. The patch below does this for Makefile.bsd
++and Makefile.linux.
++
++
++--------------------------------cut here-------------------------------
++diff -r -c ppp-2.3.orig/pppd/Makefile.bsd ppp-2.3/pppd/Makefile.bsd
++*** ppp-2.3.orig/pppd/Makefile.bsd Tue Oct 8 13:33:33 1996
++--- ppp-2.3/pppd/Makefile.bsd Fri Apr 11 23:59:15 1997
++***************
++*** 4,14 ****
++ # -D_BITYPES is for FreeBSD, which doesn't define anything to
++ # tell us that u_int32_t gets defined if &lt;sys/types.h&gt; is included.
++ # Remove for older *BSD systems for which this isn't true.
++! CFLAGS+= -g -I.. -DHAVE_PATHS_H -D_BITYPES
++
++ PROG= pppd
++ SRCS= main.c magic.c fsm.c lcp.c ipcp.c upap.c chap.c md5.c ccp.c \
++! demand.c auth.c options.c sys-bsd.c
++ MAN= pppd.cat8
++ MAN8= pppd.8
++ BINMODE=4555
++--- 4,14 ----
++ # -D_BITYPES is for FreeBSD, which doesn't define anything to
++ # tell us that u_int32_t gets defined if &lt;sys/types.h&gt; is included.
++ # Remove for older *BSD systems for which this isn't true.
++! CFLAGS+= -I.. -DHAVE_PATHS_H -D_BITYPES -DCBCP_SUPPORT
++
++ PROG= pppd
++ SRCS= main.c magic.c fsm.c lcp.c ipcp.c upap.c chap.c md5.c ccp.c \
++! demand.c auth.c options.c sys-bsd.c cbcp.c
++ MAN= pppd.cat8
++ MAN8= pppd.8
++ BINMODE=4555
++diff -r -c ppp-2.3.orig/pppd/Makefile.linux ppp-2.3/pppd/Makefile.linux
++*** ppp-2.3.orig/pppd/Makefile.linux Tue Oct 8 15:42:41 1996
++--- ppp-2.3/pppd/Makefile.linux Sat Apr 12 00:02:28 1997
++***************
++*** 14,20 ****
++ ipxcp.h cbcp.h
++ MANPAGES = pppd.8
++ PPPDOBJS = main.o magic.o fsm.o lcp.o ipcp.o upap.o chap.o md5.o ccp.o \
++! auth.o options.o demand.o sys-linux.o ipxcp.o
++
++ all: pppd
++
++--- 14,20 ----
++ ipxcp.h cbcp.h
++ MANPAGES = pppd.8
++ PPPDOBJS = main.o magic.o fsm.o lcp.o ipcp.o upap.o chap.o md5.o ccp.o \
++! auth.o options.o demand.o sys-linux.o ipxcp.o cbcp.o
++
++ all: pppd
++
++***************
++*** 36,42 ****
++ #INCLUDE_DIRS= -I/usr/include -I..
++ INCLUDE_DIRS=
++
++! COMPILE_FLAGS= -D_linux_=1 -DHAVE_PATHS_H -DIPX_CHANGE
++
++ CFLAGS= $(COPTS) $(COMPILE_FLAGS) $(INCLUDE_DIRS)
++
++--- 36,42 ----
++ #INCLUDE_DIRS= -I/usr/include -I..
++ INCLUDE_DIRS=
++
++! COMPILE_FLAGS= -D_linux_=1 -DHAVE_PATHS_H -DIPX_CHANGE -DCBCP_SUPPORT
++
++ CFLAGS= $(COPTS) $(COMPILE_FLAGS) $(INCLUDE_DIRS)
++
+
+<a id="drakxtrunkmdkstage1pppREADMElinux">Added: drakx/trunk/mdk-stage1/ppp/README.linux</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/README.linux (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/README.linux 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,297 @@
++ PPP for Linux
++ -------------
++
++ Paul Mackerras
++ 8 March 2001
++
++ for ppp-2.4.1
++
++1. Introduction
++---------------
++
++The Linux PPP implementation includes both kernel and user-level
++parts. This package contains the user-level part, which consists of
++the PPP daemon (pppd) and associated utilities. In the past this
++package has contained updated kernel drivers. This is no longer
++necessary, as the current 2.2 and 2.4 kernel sources contain
++up-to-date drivers.
++
++The Linux PPP implementation is capable of being used both for
++initiating PPP connections (as a `client') or for handling incoming
++PPP connections (as a `server'). Note that this is an operational
++distinction, based on how the connection is created, rather than a
++distinction that is made in the PPP protocols themselves.
++
++Mostly this package is used for PPP connections over modems connected
++via asynchronous serial ports, so this guide concentrates on this
++situation.
++
++The PPP protocol consists of two parts. One is a scheme for framing
++and encoding packets, the other is a series of protocols called LCP,
++IPCP, PAP and CHAP, for negotiating link options and for
++authentication. This package similarly consists of two parts: a
++kernel module which handles PPP's low-level framing protocol, and a
++user-level program called pppd which implements PPP's negotiation
++protocols.
++
++The kernel module assembles/disassembles PPP frames, handles error
++detection, and forwards packets between the serial port and either the
++kernel network code or the user-level program pppd. IP packets go
++directly to the kernel network code. So once pppd has negotiated the
++link, it in practice lies completely dormant until you want to take
++the link down, when it negotiates a graceful disconnect.
++
++
++2. Installation
++---------------
++
++2.1 Kernel driver
++
++Assuming you are running a recent 2.2 or 2.4 (or later) series kernel,
++the kernel source code will contain an up-to-date kernel PPP driver.
++If the PPP driver was included in your kernel configuration when your
++kernel was built, then you only need to install the user-level
++programs. Otherwise you will need to get the source tree for your
++kernel version, configure it with PPP included, and recompile. Most
++Linux distribution vendors ship kernels with PPP included in the
++configuration.
++
++The PPP driver can be either compiled into the kernel or compiled as a
++kernel module. If it is compiled into the kernel, the PPP driver is
++included in the kernel image which is loaded at boot time. If it is
++compiled as a module, the PPP driver is present in one or more files
++under /lib/modules and is loaded into the kernel when needed.
++
++The 2.2 series kernels contain an older version of the kernel PPP
++driver, one which doesn't support multilink. If you want multilink,
++you need to run the latest 2.4 series kernel. The kernel PPP driver
++was completely rewritten for the 2.4 series kernels to support
++multilink and to allow it to operate over diverse kinds of
++communication medium (the 2.2 driver only operates over serial ports
++and devices which look like serial ports, such as pseudo-ttys).
++
++Under the 2.2 kernels, if PPP is compiled as a module, the PPP driver
++modules should be present in the /lib/modules/`uname -r`/net directory
++(where `uname -r` represents the kernel version number). The PPP
++driver module itself is called ppp.o, and there will usually be
++compression modules there, ppp_deflate.o and bsd_comp.o, as well as
++slhc.o, which handles TCP/IP header compression. If the PPP driver is
++compiled into the kernel, the compression code will still be compiled
++as modules, for kernels before 2.2.17pre12. For 2.2.17pre12 and later,
++if the PPP driver is compiled in, the compression code will also.
++
++Under the 2.4 kernels, there are two PPP modules, ppp_generic.o and
++ppp_async.o, plus the compression modules (ppp_deflate.o, bsd_comp.o
++and slhc.o). If the PPP generic driver is compiled into the kernel,
++the other four can then be present either as modules or compiled into
++the kernel. There is a sixth module, ppp_synctty.o, which is used for
++synchronous tty devices such as high-speed WAN adaptors.
++
++
++2.2 User-level programs
++
++If you obtained this package in .rpm or .deb format, you simply follow
++the usual procedure for installing the package.
++
++If you are using the .tar.gz form of this package, then cd into the
++ppp-2.4.1b1 directory you obtained by unpacking the archive and issue
++the following commands:
++
++$ ./configure
++$ make
++# make install
++
++The `make install' has to be done as root. This makes and installs
++four programs and their man pages: pppd, chat, pppstats and pppdump.
++If the /etc/ppp configuration directory doesn't exist, the `make
++install' step will create it and install some default configuration
++files.
++
++
++2.3 System setup for 2.4 kernels
++
++Under the 2.4 series kernels, pppd needs to be able to open /dev/ppp,
++character device (108,0). If you are using devfs (the device
++filesystem), the /dev/ppp node will automagically appear when the
++ppp_generic module is loaded, or at startup if ppp_generic is compiled
++in.
++
++If you have ppp_generic as a module, and you are using devfsd (the
++devfs daemon), you will need to add a line like this to your
++/etc/devfsd.conf:
++
++LOOKUP ppp MODLOAD
++
++Otherwise you will need to create a /dev/ppp device node with the
++commands:
++
++# mknod /dev/ppp c 108 0
++# chmod 600 /dev/ppp
++
++If you use module autoloading and have PPP as a module, you will need
++to add the following to your /etc/modules.conf or /etc/conf.modules:
++
++alias /dev/ppp ppp_generic
++alias char-major-108 ppp_generic
++alias tty-ldisc-3 ppp_async
++alias tty-ldisc-14 ppp_synctty
++alias ppp-compress-21 bsd_comp
++alias ppp-compress-24 ppp_deflate
++alias ppp-compress-26 ppp_deflate
++
++
++2.4 System setup under 2.2 series kernels
++
++Under the 2.2 series kernels, you should add the following to your
++/etc/modules.conf or /etc/conf.modules:
++
++alias tty-ldisc-3 ppp
++alias ppp-compress-21 bsd_comp
++alias ppp-compress-24 ppp_deflate
++alias ppp-compress-26 ppp_deflate
++
++
++3. Getting help with problems
++-----------------------------
++
++If you have problems with your PPP setup, or you just want to ask some
++questions, or better yet if you can help others with their PPP
++questions, then you should join the linux-ppp mailing list. Send an
++email to majordomo@vger.kernel.org with a line in the body saying
++
++subscribe linux-ppp
++
++To leave the mailing list, send an email to majordomo@vger.kernel.org
++with a line in the body saying
++
++unsubscribe linux-ppp
++
++To send a message to the list, email it to linux-ppp@vger.kernel.org.
++You don't have to be subscribed to send messages to the list.
++
++You can also email me (paulus@linuxcare.com.au) but I am overloaded
++with email and I can't respond to most messages I get in a timely
++fashion.
++
++There are also several relevant news groups, such as comp.protocols.ppp,
++comp.os.linux.networking, or comp.os.linux.setup.
++
++
++4. Configuring your dial-out PPP connections
++--------------------------------------------
++
++Some Linux distribution makers include tools in their distributions
++for setting up PPP connections. For example, for Red Hat Linux and
++derivatives, you should probably use linuxconf or netcfg to set up
++your PPP connections.
++
++The two main windowing environments for Linux, KDE and Gnome, both
++come with GUI utilities for configuring and controlling PPP dial-out
++connections. They are convenient and relatively easy to configure.
++
++A third alternative is to use a PPP front-end package such as wvdial
++or ezppp. These also will handle most of the details of talking to
++the modem and setting up the PPP connection for you.
++
++Assuming that you don't want to use any of these tools, you want to
++set up the configuration manually yourself, then read on. This
++document gives a brief description and example. More details can be
++found by reading the pppd and chat man pages and the PPP-HOWTO.
++
++We assume that you have a modem that uses the Hayes-compatible AT
++command set connected to an async serial port (e.g. /dev/ttyS0) and
++that you are dialling out to an ISP.
++
++The trickiest and most variable part of setting up a dial-out PPP
++connection is the part which involves getting the modem to dial and
++then invoking PPP service at the far end. Generally, once both ends
++are talking PPP the rest is relatively straightforward.
++
++Now in fact pppd doesn't know anything about how to get modems to dial
++or what you have to say to the system at the far end to get it to talk
++PPP. That's handled by an external program such as chat, specified
++with the connect option to pppd. Chat takes a series of strings to
++expect from the modem interleaved with a series of strings to send to
++the modem. See the chat man page for more information. Here is a
++simple example for connecting to an ISP, assuming that the ISP's
++system starts talking PPP as soon as it answers the phone:
++
++pppd connect 'chat -v &quot;&quot; AT OK ATDT5551212 ~' \
++ /dev/ttyS0 57600 crtscts debug defaultroute
++
++Going through pppd's options in order:
++ connect 'chat ...' This gives a command to run to contact the
++ PPP server. Here the supplied 'chat' program is used to dial a
++ remote computer. The whole command is enclosed in single quotes
++ because pppd expects a one-word argument for the 'connect' option.
++ The options to 'chat' itself are:
++
++ -v verbose mode; log what we do to syslog
++ &quot;&quot; don't wait for any prompt, but instead...
++ AT send the string &quot;AT&quot;
++ OK expect the response &quot;OK&quot;, then
++ ATDT5551212 dial the modem, then
++ ~ wait for a ~ character, indicating the start
++ of a PPP frame from the server
++
++ /dev/ttyS0 specifies which serial port the modem is connected to
++ 57600 specifies the baud rate to use
++ crtscts use hardware flow control using the RTS &amp; CTS signals
++ debug log the PPP negotiation with syslog
++ defaultroute add default network route via the PPP link
++
++Pppd will write error messages and debugging logs to the syslogd
++daemon using the facility name &quot;daemon&quot;. These messages may already
++be logged to the console or to a file like /var/log/messages; consult
++your /etc/syslog.conf file to see. If you want to make all pppd
++messages go to a file such as /var/log/ppp-debug, add the line
++
++daemon.* /var/log/ppp-debug
++ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
++ This is one or more tabs. Do not use spaces.
++
++to syslog.conf; make sure to put one or more TAB characters (not
++spaces!) between the two fields. Then you need to create an empty
++/var/log/ppp-debug file with a command such as
++
++ touch /var/log/ppp-debug
++
++and then restart syslogd, usually by sending it a SIGHUP signal with a
++command like this:
++
++ killall -HUP syslogd
++
++
++4.1 Is the link up?
++
++The main way to tell if your PPP link is up and operational is the
++ifconfig (&quot;interface configuration&quot;) command. Type
++
++ /sbin/ifconfig
++
++at a shell prompt. It should print a list of interfaces including one
++like this example:
++
++ppp0 Link encap Point-to-Point Protocol
++ inet addr 192.76.32.3 P-t-P 129.67.1.165 Mask 255.255.255.0
++ UP POINTOPOINT RUNNING MTU 1500 Metric 1
++ RX packets 33 errors 0 dropped 0 overrun 0
++ TX packets 42 errors 0 dropped 0 overrun 0
++
++Assuming that ifconfig shows the ppp network interface, you can test
++the link using the ping command like this:
++
++ /sbin/ping -c 3 129.67.1.165
++
++where the address you give is the address shown as the P-t-P address
++in the ifconfig output. If the link is operating correctly, you
++should see output like this:
++
++ PING 129.67.1.165 (129.67.1.165): 56 data bytes
++ 64 bytes from 129.67.1.165: icmp_seq=0 ttl=255 time=268 ms
++ 64 bytes from 129.67.1.165: icmp_seq=1 ttl=255 time=247 ms
++ 64 bytes from 129.67.1.165: icmp_seq=2 ttl=255 time=266 ms
++ --- 129.67.1.165 ping statistics ---
++ 3 packets transmitted, 3 packets received, 0% packet loss
++ round-trip min/avg/max = 247/260/268 ms
++
+
+<a id="drakxtrunkmdkstage1pppREADMEsol2">Added: drakx/trunk/mdk-stage1/ppp/README.sol2</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/README.sol2 (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/README.sol2 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,220 @@
++This file describes the installation process for ppp-2.3 on systems
++running Solaris 2. The Solaris 2 and SVR4 ports share a lot of code
++but are not identical. The STREAMS kernel modules and driver for
++Solaris 2 are in the svr4 directory (and use some code from the
++modules directory).
++
++NOTE: Although the kernel driver and modules have been designed to
++operate correctly on SMP systems, they have not been extensively
++tested on SMP machines. Some users of SMP Solaris x86 systems have
++reported system problems apparently linked to the use of previous
++versions of this software. I believe these problems have been fixed.
++
++
++Installation.
++*************
++
++1. Run the configure script and make the user-level programs and the
++kernel modules.
++
++ ./configure
++ make
++
++If you wish to use gcc (or another compiler) instead of Sun's cc, edit
++the svr4/Makedefs file and uncomment the definition of CC. You can
++also change the options passed to the C compiler by editing the COPTS
++definition.
++
++2. Install the programs and kernel modules: as root, do
++
++ make install
++
++This installs pppd, chat and pppstats in /usr/local/bin and the kernel
++modules in /kernel/drv and /kernel/strmod, and creates the /etc/ppp
++directory and populates it with default configuration files. You can
++change the installation directories by editing svr4/Makedefs.
++
++If your system normally has only one network interface, the default
++Solaris 2 system startup scripts will disable IP forwarding in the IP
++kernel module. This will prevent the remote machine from using the
++local machine as a gateway to access other hosts. The solution is to
++create an /etc/ppp/ip-up script containing something like this:
++
++ #!/bin/sh
++ /usr/sbin/ndd -set /dev/ip ip_forwarding 1
++
++See the man page for ip(7p) for details.
++
++Dynamic STREAMS Re-Plumbing Support.
++************************************
++
++Solaris 8 includes dynamic re-plumbing support. With this, modules
++below ip can be inserted, or removed, without having the ip stream be
++unplumbed, and re-plumbed again. All states in ip for an interface
++will therefore now be preserved. Users can install (or upgrade)
++modules like firewall, bandwidth manager, cache manager, tunneling,
++etc., without shutting the machine down.
++
++To support this, ppp driver now uses /dev/udp instead of /dev/ip for
++the ip stream. The interface stream (where ip module pushed on top of
++ppp) is then I_PLINK'ed below the ip stream. /dev/udp is used because
++STREAMS will not let a driver be PLINK'ed under itself, and /dev/ip is
++typically the driver at the bottom of the tunneling interfaces
++stream. The mux ids of the ip streams are then added using
++SIOCSxIFMUXID ioctl.
++
++Users will be able to see the modules on the interface stream by, for
++example:
++
++ pikapon% ifconfig ppp modlist
++ 0 ip
++ 1 ppp
++
++Or arbitrarily if bandwidth manager and firewall modules are installed:
++
++ pikapon% ifconfig hme0 modlist
++ 0 arp
++ 1 ip
++ 2 ipqos
++ 3 firewall
++ 4 hme
++
++Snoop Support.
++**************
++
++This version includes support for /usr/sbin/snoop. Tests has been done
++on both Solaris 7 and 8. Only IPv4 and IPv6 packets will be sent up to
++stream(s) marked as promiscuous, e.g, snoop et al.
++
++Users will be able to see the packets on the ppp interface by, for example:
++
++ snoop -d ppp0
++
++See the man page for snoop(1M) for details.
++
++IPv6 Support.
++*************
++
++This is for Solaris 8 and later.
++
++This version has been tested under Solaris 8 running IPv6. As of now,
++interoperability testing has only been done between Solaris machines
++in terms of the IPV6 NCP. An additional command line option for the
++pppd daemon has been added: ipv6cp-use-persistent.
++
++By default, compilation for IPv6 support is not enabled. Uncomment
++the necessary lines in pppd/Makefile.sol2 to enable it. Once done, the
++quickest way to get IPv6 running is to add the following somewhere in
++the command line option:
++
++ +ipv6 ipv6cp-use-persistent
++
++The persistent id for the link-local address was added to conform to
++RFC 2472; such that if there's an EUI-48 available, use that to make
++up the EUI-64. As of now, the Solaris implementation extracts the
++EUI-48 id from the Ethernet's MAC address (the ethernet interface
++needs to be up). Future works might support other ways of obtaining a
++unique yet persistent id, such as EEPROM serial numbers, etc.
++
++There need not be any up/down scripts for ipv6, e.g. /etc/ppp/ipv6-up
++or /etc/ppp/ipv6-down, to trigger IPv6 neighbor discovery for auto
++configuration and routing. The in.ndpd daemon will perform all of the
++necessary jobs in the background. /etc/inet/ndpd.conf can be further
++customized to enable the machine as an IPv6 router. See the man page
++for in.ndpd(1M) and ndpd.conf(4) for details.
++
++Below is a sample output of &quot;ifconfig -a&quot; with persistent link-local
++address. Note the UNNUMBERED flag is set because hme0 and ppp0 both
++have identical link-local IPv6 addresses:
++
++lo0: flags=1000849&lt;UP,LOOPBACK,RUNNING,MULTICAST,IPv4&gt; mtu 8232 index 1
++ inet 127.0.0.1 netmask ff000000
++hme0: flags=1000843&lt;UP,BROADCAST,RUNNING,MULTICAST,IPv4&gt; mtu 1500 index 2
++ inet 129.146.86.248 netmask ffffff00 broadcast 129.146.86.255
++ ether 8:0:20:8d:38:c1
++lo0: flags=2000849&lt;UP,LOOPBACK,RUNNING,MULTICAST,IPv6&gt; mtu 8252 index 1
++ inet6 ::1/128
++hme0: flags=2000841&lt;UP,RUNNING,MULTICAST,IPv6&gt; mtu 1500 index 2
++ ether 8:0:20:8d:38:c1
++ inet6 fe80::a00:20ff:fe8d:38c1/10
++hme0:1: flags=2080841&lt;UP,RUNNING,MULTICAST,ADDRCONF,IPv6&gt; mtu 1500 index 2
++ inet6 fec0::56:a00:20ff:fe8d:38c1/64
++hme0:2: flags=2080841&lt;UP,RUNNING,MULTICAST,ADDRCONF,IPv6&gt; mtu 1500 index 2
++ inet6 2000::56:a00:20ff:fe8d:38c1/64
++hme0:3: flags=2080841&lt;UP,RUNNING,MULTICAST,ADDRCONF,IPv6&gt; mtu 1500 index 2
++ inet6 2::56:a00:20ff:fe8d:38c1/64
++ppp0: flags=10008d1&lt;UP,POINTOPOINT,RUNNING,NOARP,MULTICAST,IPv4&gt; mtu 1500 index 12
++ inet 172.16.1.1 --&gt; 172.16.1.2 netmask ffffff00
++ppp0: flags=2202851&lt;UP,POINTOPOINT,RUNNING,MULTICAST,UNNUMBERED,NONUD,IPv6&gt; mtu 1500 index 12
++ inet6 fe80::a00:20ff:fe8d:38c1/10 --&gt; fe80::a00:20ff:fe7a:24fb
++
++Note also that a plumbed ipv6 interface stream will exist throughout
++the entire PPP session in the case where the peer rejects IPV6CP,
++which further causes the interface state to stay down. Unplumbing will
++happen when the daemon exits. This is done by design and is not a bug.
++
++64-bit Support.
++***************
++
++This version has been tested under Solaris 7 (and Solaris 8 ) in both
++32- and 64-bits environments (Ultra class machines). Installing the
++package by executing &quot;make install&quot; will result in additional files
++residing in /kernel/drv/sparcv9 and /kernel/strmod/sparcv9
++subdirectories.
++
++64-bit modules and driver have been compiled and tested using Sun's cc.
++
++Synchronous Serial Support.
++***************************
++
++This version has working but limited support for the on-board
++synchronous HDLC interfaces. It has been tested with the /dev/se_hdlc
++and /dev/zsh drivers. Synchronous mode was tested with a Cisco
++router.
++
++There ppp daemon does not directly support controlling the serial
++interface. It relies on the /usr/sbin/syncinit command to initialize
++HDLC mode and clocking.
++
++Some bugs remain: large sized frames are not sent/received properly,
++and may be related to the IP mtu. This may be due to bugs in pppd
++itself, bugs in Solaris or the serial drivers. The /dev/zsh driver
++seems more larger and can send/receive larger frames than the
++/dev/se_hdlc driver. There is a confirmed bug with NRZ/NRZI mode in
++the /dev/se_hdlc driver, and Solaris patch 104596-11 is needed to
++correct it. (However this patch seems to introduce other serial
++problems. If you don't apply the patch, the workaround is to change
++the nrzi mode to yes or no, whichever works)
++
++How to start pppd with synchronous support:
++
++#!/bin/sh
++
++local=1.1.1.1 # your ip address here
++baud=38400 # needed, but ignored by serial driver
++
++# Change to the correct serial driver/port
++#dev=/dev/zsh0
++dev=/dev/se_hdlc0
++
++# Change the driver, nrzi mode, speed and clocking to match your setup
++# This configuration is for external clocking from the DCE
++connect=&quot;syncinit se_hdlc0 nrzi=no speed=64000 txc=rxc rxc=rxc&quot;
++
++/usr/sbin/pppd $dev sync $baud novj noauth $local: connect &quot;$connect&quot;
++
++
++Sample Cisco router config excerpt:
++
++!
++! Cisco router setup as DCE with RS-232 DCE cable
++!
++!
++interface Serial0
++ ip address 1.1.1.2 255.255.255.0
++ encapsulation ppp
++ clockrate 64000
++ no nrzi-encoding
++ no shutdown
++!
++
+
+<a id="drakxtrunkmdkstage1pppREADMEsunos4">Added: drakx/trunk/mdk-stage1/ppp/README.sunos4</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/README.sunos4 (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/README.sunos4 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,62 @@
++This file describes the installation process for ppp-2.3 on systems
++running SunOS 4.1.x (or the equivalent).
++
++The STREAMS modules in the sunos4 directory provide kernel support for
++PPP on SunOS 4.1.x systems. They have been tested under SunOS 4.1.3
++on a SparcStation 1+. They should work under earlier SunOS 4.1.x
++systems, but no guarantees are given.
++
++These modules are designed to be loaded into the running kernel using
++the `modload' command.
++
++
++Installation.
++*************
++
++1. Run the configure script and make the user-level programs and the
++kernel modules.
++
++ ./configure
++ make
++
++If you wish to compile using gcc instead of cc, edit the
++sunos4/Makedefs file and uncomment the line saying &quot;CC = gcc&quot;. You
++can also change the C compiler options by editing the COPTS
++definition.
++
++2. Install the pppd, pppstats and chat programs and the loadable
++module object files (you need to be root to do this):
++
++ make install
++
++By default, the programs and the loadable module object files go into
++/usr/local/etc. Doing `make install' also copies a script called
++ppp.INSTALL into /dev, and makes ppp.LOAD, ppp.UNLOAD, ppp.MKDEV and
++ppp.RMDEV links to it. You can change the installation directories by
++editing sunos4/Makedefs.
++
++3. Load the ppp modules (you need to be root for this too):
++
++ /dev/ppp.LOAD
++
++You will want to do this in your /etc/rc.local file once you have
++everything installed. I suggest you put something like the following
++in /etc/rc.local (or /etc/loadable, if you have one):
++
++ if [ -f /dev/ppp.AUTOLOAD ]; then
++ /dev/ppp.LOAD
++ fi
++
++and then create a /dev/ppp.AUTOLOAD file with the command
++
++ touch /dev/ppp.AUTOLOAD
++
++It is not advisable to unload the &quot;if_ppp&quot; module, because it creates
++network interface units, and SunOS does not provide any way to destroy
++network interfaces once created. If you do unload it, the system will
++probably crash at some later stage.
++
++If you have previously had ppp-2.2 installed, you may have statements
++in your /etc/rc.local to load the ppp module. You will need to remove
++those. Having done this, you will need to reboot to remove the old
++ppp module and load the new modules.
+
+<a id="drakxtrunkmdkstage1pppSETUP">Added: drakx/trunk/mdk-stage1/ppp/SETUP</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/SETUP (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/SETUP 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,111 @@
++ Configuring a PPP link.
++
++After you have compiled and installed this package, there are some
++configuration files which will generally need to be set up. The
++pppd(8) man page is the best reference for the full details; this file
++outlines the configuration process for the most common case, where
++this package is being used to enable a machine to dial an ISP and
++connect to the internet. The FAQ and README.linux files also provide
++useful information about setting up PPP.
++
++Dialling an ISP.
++****************
++
++Usually, an ISP will assign an IP address to your machine, and will
++refuse to authenticate itself to you. Some ISPs require a username
++and password to be entered before PPP service commences, while others
++use PPP authentication (using either the PAP or CHAP protocols).
++
++The recommended way to set up to dial an ISP is for the system
++administrator to create a file under /etc/ppp/peers, named for the ISP
++that you will be dialling. For example, suppose the file is called
++/etc/ppp/peers/isp. This file would contain something like this:
++
++cua0 # modem is connected to /dev/cua0
++38400 # run the serial port at 38400 baud
++crtscts # use hardware flow control
++noauth # don't require the ISP to authenticate itself
++defaultroute # use the ISP as our default route
++connect '/usr/sbin/chat -v -f /etc/ppp/chat-isp'
++
++If there are any other pppd options that should apply when calling
++this ISP, they can also be placed in this file.
++
++The /etc/ppp/chat-isp file named in the last line contains the script
++for chat(8) to use to dial the ISP and go through any username/
++password authentication required before PPP service starts. Here is
++an example (for dialling an Annex terminal server):
++
++ABORT &quot;NO CARRIER&quot;
++ABORT &quot;NO DIALTONE&quot;
++ABORT &quot;ERROR&quot;
++ABORT &quot;NO ANSWER&quot;
++ABORT &quot;BUSY&quot;
++ABORT &quot;Username/Password Incorrect&quot;
++&quot;&quot; &quot;at&quot;
++OK &quot;at&amp;d2&amp;c1&quot;
++OK &quot;atdt2479381&quot;
++&quot;name:&quot; &quot;^Uusername&quot;
++&quot;word:&quot; &quot;\qpassword&quot;
++&quot;annex&quot; &quot;ppp&quot;
++&quot;Switching to PPP-ppp-Switching to PPP&quot;
++
++See the chat(8) man page for details of the script. If you are not
++sure how the initial dialog with your ISP will go, you could use
++a terminal emulator such as kermit or minicom to go through the
++process manually.
++
++If your ISP requires PAP or CHAP authentication, you will have to
++create a line in /etc/ppp/pap-secrets or /etc/ppp/chap-secrets like
++this:
++
++myhostname * &quot;password&quot;
++
++(Replace myhostname with the hostname of your machine.)
++
++At this point, you can initiate the link with the command:
++
++/usr/sbin/pppd call isp
++
++(N.B.: pppd might be installed in a different directory on some
++systems).
++
++This will return to the shell prompt immediately, as pppd will detach
++itself from its controlling terminal. (If you don't want it to do
++this, use the &quot;nodetach&quot; option.)
++
++Pppd will log messages describing the progress of the connection and
++any errors using the syslog facility (see the syslogd(8) and
++syslog.conf(5) man pages). Pppd issues messages using syslog facility
++daemon (or local2 if it has been compiled with debugging enabled);
++chat uses facility local2. It is often useful to see messages of
++priority notice or higher on the console. To see these, find the line
++in /etc/syslog.conf which has /dev/console on the right-hand side, and
++add `daemon.notice' on the left. This line should end up something
++like this:
++
++*.err;kern.debug;daemon,local2,auth.notice;mail.crit /dev/console
++
++If you want to see more messages from pppd, request messages of
++priority info or higher for facility daemon, like this:
++
++*.err;kern.debug;daemon.info;local2,auth.notice;mail.crit /dev/console
++
++It is also useful to add a line like this:
++
++daemon,local2.debug /etc/ppp/ppp-log
++
++If you do this, you will need to create an empty /etc/ppp/ppp-log
++file.
++
++After modifying syslog.conf, you will then need to send a HUP signal
++to syslogd (or reboot).
++
++When you wish terminate the PPP link, you should send a TERM or INTR
++signal to pppd. Pppd writes its process ID to a file called
++ppp&lt;n&gt;.pid in /var/run (or /etc/ppp on older systems such as SunOS or
++Ultrix). Here &lt;n&gt; is the PPP interface unit number, which will be 0
++unless you have more than one PPP link running simultaneously. Thus
++you can terminate the link with a command like
++
++ kill `cat /var/run/ppp0.pid`
+
+<a id="drakxtrunkmdkstage1pppchatMakefilelinux">Added: drakx/trunk/mdk-stage1/ppp/chat/Makefile.linux</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/chat/Makefile.linux (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/chat/Makefile.linux 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,27 @@
++# $Id: Makefile.linux 195720 2001-06-11 11:44:34Z gc $
++
++CDEF1= -DTERMIOS # Use the termios structure
++CDEF2= -DSIGTYPE=void # Standard definition
++CDEF3= -UNO_SLEEP # Use the usleep function
++CDEF4= -DFNDELAY=O_NDELAY # Old name value
++CDEFS= $(CDEF1) $(CDEF2) $(CDEF3) $(CDEF4)
++
++CFLAGS= $(RPM_OPT_FLAGS) $(CDEFS)
++
++INSTALL= install
++
++all: chat
++
++chat: chat.o
++ $(CC) -o chat chat.o
++
++chat.o: chat.c
++ $(CC) -c $(CFLAGS) -o chat.o chat.c
++
++install: chat
++ mkdir -p $(BINDIR)
++ $(INSTALL) -s -c chat $(BINDIR)
++ $(INSTALL) -c -m 644 chat.8 $(MANDIR)/man8
++
++clean:
++ rm -f chat.o chat *~
+
+<a id="drakxtrunkmdkstage1pppchatMakefilelinuxmakeopt">Added: drakx/trunk/mdk-stage1/ppp/chat/Makefile.linux.makeopt</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/chat/Makefile.linux.makeopt (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/chat/Makefile.linux.makeopt 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,27 @@
++# $Id: Makefile.linux.makeopt 195720 2001-06-11 11:44:34Z gc $
++
++CDEF1= -DTERMIOS # Use the termios structure
++CDEF2= -DSIGTYPE=void # Standard definition
++CDEF3= -UNO_SLEEP # Use the usleep function
++CDEF4= -DFNDELAY=O_NDELAY # Old name value
++CDEFS= $(CDEF1) $(CDEF2) $(CDEF3) $(CDEF4)
++
++CFLAGS= -O2 -g -pipe $(CDEFS)
++
++INSTALL= install
++
++all: chat
++
++chat: chat.o
++ $(CC) -o chat chat.o
++
++chat.o: chat.c
++ $(CC) -c $(CFLAGS) -o chat.o chat.c
++
++install: chat
++ mkdir -p $(BINDIR)
++ $(INSTALL) -s -c chat $(BINDIR)
++ $(INSTALL) -c -m 644 chat.8 $(MANDIR)/man8
++
++clean:
++ rm -f chat.o chat *~
+
+<a id="drakxtrunkmdkstage1pppchatMakefilesol2">Added: drakx/trunk/mdk-stage1/ppp/chat/Makefile.sol2</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/chat/Makefile.sol2 (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/chat/Makefile.sol2 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,19 @@
++#
++# Makefile for chat on Solaris 2
++#
++
++include ../solaris/Makedefs
++
++CFLAGS = $(COPTS) -DNO_USLEEP -DSOL2
++
++all: chat
++
++chat: chat.o
++ $(CC) -o chat chat.o
++
++install: chat
++ $(INSTALL) -f $(BINDIR) chat
++ $(INSTALL) -m 444 -f $(MANDIR)/man8 chat.8
++
++clean:
++ rm -f *~ *.o chat
+
+<a id="drakxtrunkmdkstage1pppchatMakefilesunos4">Added: drakx/trunk/mdk-stage1/ppp/chat/Makefile.sunos4</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/chat/Makefile.sunos4 (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/chat/Makefile.sunos4 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,19 @@
++#
++# Makefile for chat on suns
++#
++
++include ../sunos4/Makedefs
++
++CFLAGS = -DSUNOS $(COPTS)
++
++all: chat
++
++chat: chat.o
++ $(CC) -o chat chat.o
++
++install: chat
++ $(INSTALL) -c chat $(BINDIR)/chat
++ $(INSTALL) -c -m 444 chat.8 $(MANDIR)/man8/chat.8
++
++clean:
++ rm -f *~ *.o chat
+
+<a id="drakxtrunkmdkstage1pppchatchat8">Added: drakx/trunk/mdk-stage1/ppp/chat/chat.8</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/chat/chat.8 (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/chat/chat.8 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,515 @@
++.\&quot; -*- nroff -*-
++.\&quot; manual page [] for chat 1.8
++.\&quot; $Id: chat.8 195720 2001-06-11 11:44:34Z gc $
++.\&quot; SH section heading
++.\&quot; SS subsection heading
++.\&quot; LP paragraph
++.\&quot; IP indented paragraph
++.\&quot; TP hanging label
++.TH CHAT 8 &quot;22 May 1999&quot; &quot;Chat Version 1.22&quot;
++.SH NAME
++chat \- Automated conversational script with a modem
++.SH SYNOPSIS
++.B chat
++[
++.I options
++]
++.I script
++.SH DESCRIPTION
++.LP
++The \fIchat\fR program defines a conversational exchange between the
++computer and the modem. Its primary purpose is to establish the
++connection between the Point-to-Point Protocol Daemon (\fIpppd\fR) and
++the remote's \fIpppd\fR process.
++.SH OPTIONS
++.TP
++.B -f \fI&lt;chat file&gt;
++Read the chat script from the chat \fIfile\fR. The use of this option
++is mutually exclusive with the chat script parameters. The user must
++have read access to the file. Multiple lines are permitted in the
++file. Space or horizontal tab characters should be used to separate
++the strings.
++.TP
++.B -t \fI&lt;timeout&gt;
++Set the timeout for the expected string to be received. If the string
++is not received within the time limit then the reply string is not
++sent. An alternate reply may be sent or the script will fail if there
++is no alternate reply string. A failed script will cause the
++\fIchat\fR program to terminate with a non-zero error code.
++.TP
++.B -r \fI&lt;report file&gt;
++Set the file for output of the report strings. If you use the keyword
++\fIREPORT\fR, the resulting strings are written to this file. If this
++option is not used and you still use \fIREPORT\fR keywords, the
++\fIstderr\fR file is used for the report strings.
++.TP
++.B -e
++Start with the echo option turned on. Echoing may also be turned on
++or off at specific points in the chat script by using the \fIECHO\fR
++keyword. When echoing is enabled, all output from the modem is echoed
++to \fIstderr\fR.
++.TP
++.B -E
++Enables environment variable substituion within chat scripts using the
++standard \fI$xxx\fR syntax.
++.TP
++.B -v
++Request that the \fIchat\fR script be executed in a verbose mode. The
++\fIchat\fR program will then log the execution state of the chat
++script as well as all text received from the modem and the output
++strings sent to the modem. The default is to log through the SYSLOG;
++the logging method may be altered with the -S and -s flags.
++.TP
++.B -V
++Request that the \fIchat\fR script be executed in a stderr verbose
++mode. The \fIchat\fR program will then log all text received from the
++modem and the output strings sent to the modem to the stderr device. This
++device is usually the local console at the station running the chat or
++pppd program.
++.TP
++.B -s
++Use stderr. All log messages from '-v' and all error messages will be
++sent to stderr.
++.TP
++.B -S
++Do not use the SYSLOG. By default, error messages are sent to the
++SYSLOG. The use of -S will prevent both log messages from '-v' and
++error messages from being sent to the SYSLOG.
++.TP
++.B -T \fI&lt;phone number&gt;
++Pass in an arbitary string, usually a phone number, that will be
++substituted for the \\T substitution metacharacter in a send string.
++.TP
++.B -U \fI&lt;phone number 2&gt;
++Pass in a second string, usually a phone number, that will be
++substituted for the \\U substitution metacharacter in a send string.
++This is useful when dialing an ISDN terminal adapter that requires two
++numbers.
++.TP
++.B script
++If the script is not specified in a file with the \fI-f\fR option then
++the script is included as parameters to the \fIchat\fR program.
++.SH CHAT SCRIPT
++.LP
++The \fIchat\fR script defines the communications.
++.LP
++A script consists of one or more &quot;expect-send&quot; pairs of strings,
++separated by spaces, with an optional &quot;subexpect-subsend&quot; string pair,
++separated by a dash as in the following example:
++.IP
++ogin:-BREAK-ogin: ppp ssword: hello2u2
++.LP
++This line indicates that the \fIchat\fR program should expect the string
++&quot;ogin:&quot;. If it fails to receive a login prompt within the time interval
++allotted, it is to send a break sequence to the remote and then expect the
++string &quot;ogin:&quot;. If the first &quot;ogin:&quot; is received then the break sequence is
++not generated.
++.LP
++Once it received the login prompt the \fIchat\fR program will send the
++string ppp and then expect the prompt &quot;ssword:&quot;. When it receives the
++prompt for the password, it will send the password hello2u2.
++.LP
++A carriage return is normally sent following the reply string. It is not
++expected in the &quot;expect&quot; string unless it is specifically requested by using
++the \\r character sequence.
++.LP
++The expect sequence should contain only what is needed to identify the
++string. Since it is normally stored on a disk file, it should not contain
++variable information. It is generally not acceptable to look for time
++strings, network identification strings, or other variable pieces of data as
++an expect string.
++.LP
++To help correct for characters which may be corrupted during the initial
++sequence, look for the string &quot;ogin:&quot; rather than &quot;login:&quot;. It is possible
++that the leading &quot;l&quot; character may be received in error and you may never
++find the string even though it was sent by the system. For this reason,
++scripts look for &quot;ogin:&quot; rather than &quot;login:&quot; and &quot;ssword:&quot; rather than
++&quot;password:&quot;.
++.LP
++A very simple script might look like this:
++.IP
++ogin: ppp ssword: hello2u2
++.LP
++In other words, expect ....ogin:, send ppp, expect ...ssword:, send hello2u2.
++.LP
++In actual practice, simple scripts are rare. At the vary least, you
++should include sub-expect sequences should the original string not be
++received. For example, consider the following script:
++.IP
++ogin:--ogin: ppp ssword: hello2u2
++.LP
++This would be a better script than the simple one used earlier. This would look
++for the same login: prompt, however, if one was not received, a single
++return sequence is sent and then it will look for login: again. Should line
++noise obscure the first login prompt then sending the empty line will
++usually generate a login prompt again.
++.SH COMMENTS
++Comments can be embedded in the chat script. A comment is a line which
++starts with the \fB#\fR (hash) character in column 1. Such comment
++lines are just ignored by the chat program. If a '#' character is to
++be expected as the first character of the expect sequence, you should
++quote the expect string.
++If you want to wait for a prompt that starts with a # (hash)
++character, you would have to write something like this:
++.IP
++# Now wait for the prompt and send logout string
++.br
++\'# ' logout
++.LP
++
++.SH SENDING DATA FROM A FILE
++If the string to send starts with an at sign (@), the rest of the
++string is taken to be the name of a file to read to get the string to
++send. If the last character of the data read is a newline, it is
++removed. The file can be a named pipe (or fifo) instead of a regular
++file. This provides a way for \fBchat\fR to communicate with another
++program, for example, a program to prompt the user and receive a
++password typed in.
++.LP
++
++.SH ABORT STRINGS
++Many modems will report the status of the call as a string. These
++strings may be \fBCONNECTED\fR or \fBNO CARRIER\fR or \fBBUSY\fR. It
++is often desirable to terminate the script should the modem fail to
++connect to the remote. The difficulty is that a script would not know
++exactly which modem string it may receive. On one attempt, it may
++receive \fBBUSY\fR while the next time it may receive \fBNO CARRIER\fR.
++.LP
++These &quot;abort&quot; strings may be specified in the script using the \fIABORT\fR
++sequence. It is written in the script as in the following example:
++.IP
++ABORT BUSY ABORT 'NO CARRIER' '' ATZ OK ATDT5551212 CONNECT
++.LP
++This sequence will expect nothing; and then send the string ATZ. The
++expected response to this is the string \fIOK\fR. When it receives \fIOK\fR,
++the string ATDT5551212 to dial the telephone. The expected string is
++\fICONNECT\fR. If the string \fICONNECT\fR is received the remainder of the
++script is executed. However, should the modem find a busy telephone, it will
++send the string \fIBUSY\fR. This will cause the string to match the abort
++character sequence. The script will then fail because it found a match to
++the abort string. If it received the string \fINO CARRIER\fR, it will abort
++for the same reason. Either string may be received. Either string will
++terminate the \fIchat\fR script.
++.SH CLR_ABORT STRINGS
++This sequence allows for clearing previously set \fBABORT\fR strings.
++\fBABORT\fR strings are kept in an array of a pre-determined size (at
++compilation time); \fBCLR_ABORT\fR will reclaim the space for cleared
++entries so that new strings can use that space.
++.SH SAY STRINGS
++The \fBSAY\fR directive allows the script to send strings to the user
++at the terminal via standard error. If \fBchat\fR is being run by
++pppd, and pppd is running as a daemon (detached from its controlling
++terminal), standard error will normally be redirected to the file
++/etc/ppp/connect-errors.
++.LP
++\fBSAY\fR strings must be enclosed in single or double quotes. If
++carriage return and line feed are needed in the string to be output,
++you must explicitely add them to your string.
++.LP
++The SAY strings could be used to give progress messages in sections of
++the script where you want to have 'ECHO OFF' but still let the user
++know what is happening. An example is:
++.IP
++ABORT BUSY
++.br
++ECHO OFF
++.br
++SAY &quot;Dialling your ISP...\\n&quot;
++.br
++\'' ATDT5551212
++.br
++TIMEOUT 120
++.br
++SAY &quot;Waiting up to 2 minutes for connection ... &quot;
++.br
++CONNECT ''
++.br
++SAY &quot;Connected, now logging in ...\n&quot;
++.br
++ogin: account
++.br
++ssword: pass
++.br
++$ \c
++SAY &quot;Logged in OK ...\n&quot;
++\fIetc ...\fR
++.LP
++This sequence will only present the SAY strings to the user and all
++the details of the script will remain hidden. For example, if the
++above script works, the user will see:
++.IP
++Dialling your ISP...
++.br
++Waiting up to 2 minutes for connection ... Connected, now logging in ...
++.br
++Logged in OK ...
++.LP
++
++.SH REPORT STRINGS
++A \fBreport\fR string is similar to the ABORT string. The difference
++is that the strings, and all characters to the next control character
++such as a carriage return, are written to the report file.
++.LP
++The report strings may be used to isolate the transmission rate of the
++modem's connect string and return the value to the chat user. The
++analysis of the report string logic occurs in conjunction with the
++other string processing such as looking for the expect string. The use
++of the same string for a report and abort sequence is probably not
++very useful, however, it is possible.
++.LP
++The report strings to no change the completion code of the program.
++.LP
++These &quot;report&quot; strings may be specified in the script using the \fIREPORT\fR
++sequence. It is written in the script as in the following example:
++.IP
++REPORT CONNECT ABORT BUSY '' ATDT5551212 CONNECT '' ogin: account
++.LP
++This sequence will expect nothing; and then send the string
++ATDT5551212 to dial the telephone. The expected string is
++\fICONNECT\fR. If the string \fICONNECT\fR is received the remainder
++of the script is executed. In addition the program will write to the
++expect-file the string &quot;CONNECT&quot; plus any characters which follow it
++such as the connection rate.
++.SH CLR_REPORT STRINGS
++This sequence allows for clearing previously set \fBREPORT\fR strings.
++\fBREPORT\fR strings are kept in an array of a pre-determined size (at
++compilation time); \fBCLR_REPORT\fR will reclaim the space for cleared
++entries so that new strings can use that space.
++.SH ECHO
++The echo options controls whether the output from the modem is echoed
++to \fIstderr\fR. This option may be set with the \fI-e\fR option, but
++it can also be controlled by the \fIECHO\fR keyword. The &quot;expect-send&quot;
++pair \fIECHO\fR \fION\fR enables echoing, and \fIECHO\fR \fIOFF\fR
++disables it. With this keyword you can select which parts of the
++conversation should be visible. For instance, with the following
++script:
++.IP
++ABORT 'BUSY'
++.br
++ABORT 'NO CARRIER'
++.br
++'' ATZ
++.br
++OK\\r\\n ATD1234567
++.br
++\\r\\n \\c
++.br
++ECHO ON
++.br
++CONNECT \\c
++.br
++ogin: account
++.LP
++all output resulting from modem configuration and dialing is not visible,
++but starting with the \fICONNECT\fR (or \fIBUSY\fR) message, everything
++will be echoed.
++.SH HANGUP
++The HANGUP options control whether a modem hangup should be considered
++as an error or not. This option is useful in scripts for dialling
++systems which will hang up and call your system back. The HANGUP
++options can be \fBON\fR or \fBOFF\fR.
++.br
++When HANGUP is set OFF and the modem hangs up (e.g., after the first
++stage of logging in to a callback system), \fBchat\fR will continue
++running the script (e.g., waiting for the incoming call and second
++stage login prompt). As soon as the incoming call is connected, you
++should use the \fBHANGUP ON\fR directive to reinstall normal hang up
++signal behavior. Here is an (simple) example script:
++.IP
++ABORT 'BUSY'
++.br
++'' ATZ
++.br
++OK\\r\\n ATD1234567
++.br
++\\r\\n \\c
++.br
++CONNECT \\c
++.br
++\'Callback login:' call_back_ID
++.br
++HANGUP OFF
++.br
++ABORT &quot;Bad Login&quot;
++.br
++\'Callback Password:' Call_back_password
++.br
++TIMEOUT 120
++.br
++CONNECT \\c
++.br
++HANGUP ON
++.br
++ABORT &quot;NO CARRIER&quot;
++.br
++ogin:--BREAK--ogin: real_account
++.br
++\fIetc ...\fR
++.LP
++.SH TIMEOUT
++The initial timeout value is 45 seconds. This may be changed using the \fB-t\fR
++parameter.
++.LP
++To change the timeout value for the next expect string, the following
++example may be used:
++.IP
++ATZ OK ATDT5551212 CONNECT TIMEOUT 10 ogin:--ogin: TIMEOUT 5 assword: hello2u2
++.LP
++This will change the timeout to 10 seconds when it expects the login:
++prompt. The timeout is then changed to 5 seconds when it looks for the
++password prompt.
++.LP
++The timeout, once changed, remains in effect until it is changed again.
++.SH SENDING EOT
++The special reply string of \fIEOT\fR indicates that the chat program
++should send an EOT character to the remote. This is normally the
++End-of-file character sequence. A return character is not sent
++following the EOT.
++.PR
++The EOT sequence may be embedded into the send string using the
++sequence \fI^D\fR.
++.SH GENERATING BREAK
++The special reply string of \fIBREAK\fR will cause a break condition
++to be sent. The break is a special signal on the transmitter. The
++normal processing on the receiver is to change the transmission rate.
++It may be used to cycle through the available transmission rates on
++the remote until you are able to receive a valid login prompt.
++.PR
++The break sequence may be embedded into the send string using the
++\fI\\K\fR sequence.
++.SH ESCAPE SEQUENCES
++The expect and reply strings may contain escape sequences. All of the
++sequences are legal in the reply string. Many are legal in the expect.
++Those which are not valid in the expect sequence are so indicated.
++.TP
++.B ''
++Expects or sends a null string. If you send a null string then it will still
++send the return character. This sequence may either be a pair of apostrophe
++or quote characters.
++.TP
++.B \\\\b
++represents a backspace character.
++.TP
++.B \\\\c
++Suppresses the newline at the end of the reply string. This is the only
++method to send a string without a trailing return character. It must
++be at the end of the send string. For example,
++the sequence hello\\c will simply send the characters h, e, l, l, o.
++.I (not valid in expect.)
++.TP
++.B \\\\d
++Delay for one second. The program uses sleep(1) which will delay to a
++maximum of one second.
++.I (not valid in expect.)
++.TP
++.B \\\\K
++Insert a BREAK
++.I (not valid in expect.)
++.TP
++.B \\\\n
++Send a newline or linefeed character.
++.TP
++.B \\\\N
++Send a null character. The same sequence may be represented by \\0.
++.I (not valid in expect.)
++.TP
++.B \\\\p
++Pause for a fraction of a second. The delay is 1/10th of a second.
++.I (not valid in expect.)
++.TP
++.B \\\\q
++Suppress writing the string to the SYSLOG file. The string ?????? is
++written to the log in its place.
++.I (not valid in expect.)
++.TP
++.B \\\\r
++Send or expect a carriage return.
++.TP
++.B \\\\s
++Represents a space character in the string. This may be used when it
++is not desirable to quote the strings which contains spaces. The
++sequence 'HI TIM' and HI\\sTIM are the same.
++.TP
++.B \\\\t
++Send or expect a tab character.
++.TP
++.B \\\\T
++Send the phone number string as specified with the \fI-T\fR option
++.I (not valid in expect.)
++.TP
++.B \\\\U
++Send the phone number 2 string as specified with the \fI-U\fR option
++.I (not valid in expect.)
++.TP
++.B \\\\\\\\
++Send or expect a backslash character.
++.TP
++.B \\\\ddd
++Collapse the octal digits (ddd) into a single ASCII character and send that
++character.
++.I (some characters are not valid in expect.)
++.TP
++.B \^^C
++Substitute the sequence with the control character represented by C.
++For example, the character DC1 (17) is shown as \^^Q.
++.I (some characters are not valid in expect.)
++.SH ENVIRONMENT VARIABLES
++Environment variables are available within chat scripts, if the \fI-E\fR
++option was specified in the command line. The metacharacter \fI$\fR is used
++to introduce the name of the environment variable to substitute. If the
++substition fails, because the requested environment variable is not set,
++\fInothing\fR is replaced for the variable.
++.SH TERMINATION CODES
++The \fIchat\fR program will terminate with the following completion
++codes.
++.TP
++.B 0
++The normal termination of the program. This indicates that the script
++was executed without error to the normal conclusion.
++.TP
++.B 1
++One or more of the parameters are invalid or an expect string was too
++large for the internal buffers. This indicates that the program as not
++properly executed.
++.TP
++.B 2
++An error occurred during the execution of the program. This may be due
++to a read or write operation failing for some reason or chat receiving
++a signal such as SIGINT.
++.TP
++.B 3
++A timeout event occurred when there was an \fIexpect\fR string without
++having a &quot;-subsend&quot; string. This may mean that you did not program the
++script correctly for the condition or that some unexpected event has
++occurred and the expected string could not be found.
++.TP
++.B 4
++The first string marked as an \fIABORT\fR condition occurred.
++.TP
++.B 5
++The second string marked as an \fIABORT\fR condition occurred.
++.TP
++.B 6
++The third string marked as an \fIABORT\fR condition occurred.
++.TP
++.B 7
++The fourth string marked as an \fIABORT\fR condition occurred.
++.TP
++.B ...
++The other termination codes are also strings marked as an \fIABORT\fR
++condition.
++.LP
++Using the termination code, it is possible to determine which event
++terminated the script. It is possible to decide if the string &quot;BUSY&quot;
++was received from the modem as opposed to &quot;NO DIAL TONE&quot;. While the
++first event may be retried, the second will probably have little
++chance of succeeding during a retry.
++.SH SEE ALSO
++Additional information about \fIchat\fR scripts may be found with UUCP
++documentation. The \fIchat\fR script was taken from the ideas proposed
++by the scripts used by the \fIuucico\fR program.
++.LP
++uucico(1), uucp(1)
++.SH COPYRIGHT
++The \fIchat\fR program is in public domain. This is not the GNU public
++license. If it breaks then you get to keep both pieces.
+
+<a id="drakxtrunkmdkstage1pppchatchatc">Added: drakx/trunk/mdk-stage1/ppp/chat/chat.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/chat/chat.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/chat/chat.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,1756 @@
++/*
++ * Chat -- a program for automatic session establishment (i.e. dial
++ * the phone and log in).
++ *
++ * Standard termination codes:
++ * 0 - successful completion of the script
++ * 1 - invalid argument, expect string too large, etc.
++ * 2 - error on an I/O operation or fatal error condition.
++ * 3 - timeout waiting for a simple string.
++ * 4 - the first string declared as &quot;ABORT&quot;
++ * 5 - the second string declared as &quot;ABORT&quot;
++ * 6 - ... and so on for successive ABORT strings.
++ *
++ * This software is in the public domain.
++ *
++ * -----------------
++ * 22-May-99 added environment substitutuion, enabled with -E switch.
++ * Andreas Arens &lt;andras@cityweb.de&gt;.
++ *
++ * 12-May-99 added a feature to read data to be sent from a file,
++ * if the send string starts with @. Idea from gpk &lt;gpk@onramp.net&gt;.
++ *
++ * added -T and -U option and \T and \U substitution to pass a phone
++ * number into chat script. Two are needed for some ISDN TA applications.
++ * Keith Dart &lt;kdart@cisco.com&gt;
++ *
++ *
++ * Added SAY keyword to send output to stderr.
++ * This allows to turn ECHO OFF and to output specific, user selected,
++ * text to give progress messages. This best works when stderr
++ * exists (i.e.: pppd in nodetach mode).
++ *
++ * Added HANGUP directives to allow for us to be called
++ * back. When HANGUP is set to NO, chat will not hangup at HUP signal.
++ * We rely on timeouts in that case.
++ *
++ * Added CLR_ABORT to clear previously set ABORT string. This has been
++ * dictated by the HANGUP above as &quot;NO CARRIER&quot; (for example) must be
++ * an ABORT condition until we know the other host is going to close
++ * the connection for call back. As soon as we have completed the
++ * first stage of the call back sequence, &quot;NO CARRIER&quot; is a valid, non
++ * fatal string. As soon as we got called back (probably get &quot;CONNECT&quot;),
++ * we should re-arm the ABORT &quot;NO CARRIER&quot;. Hence the CLR_ABORT command.
++ * Note that CLR_ABORT packs the abort_strings[] array so that we do not
++ * have unused entries not being reclaimed.
++ *
++ * In the same vein as above, added CLR_REPORT keyword.
++ *
++ * Allow for comments. Line starting with '#' are comments and are
++ * ignored. If a '#' is to be expected as the first character, the
++ * expect string must be quoted.
++ *
++ *
++ * Francis Demierre &lt;Francis@SwissMail.Com&gt;
++ * Thu May 15 17:15:40 MET DST 1997
++ *
++ *
++ * Added -r &quot;report file&quot; switch &amp; REPORT keyword.
++ * Robert Geer &lt;bgeer@xmission.com&gt;
++ *
++ * Added -s &quot;use stderr&quot; and -S &quot;don't use syslog&quot; switches.
++ * June 18, 1997
++ * Karl O. Pinc &lt;kop@meme.com&gt;
++ *
++ *
++ * Added -e &quot;echo&quot; switch &amp; ECHO keyword
++ * Dick Streefland &lt;dicks@tasking.nl&gt;
++ *
++ *
++ * Considerable updates and modifications by
++ * Al Longyear &lt;longyear@pobox.com&gt;
++ * Paul Mackerras &lt;paulus@cs.anu.edu.au&gt;
++ *
++ *
++ * The original author is:
++ *
++ * Karl Fox &lt;karl@MorningStar.Com&gt;
++ * Morning Star Technologies, Inc.
++ * 1760 Zollinger Road
++ * Columbus, OH 43221
++ * (614)451-1883
++ *
++ */
++
++#ifndef __STDC__
++#define const
++#endif
++
++#ifndef lint
++static const char rcsid[] = &quot;$Id: chat.c 195720 2001-06-11 11:44:34Z gc $&quot;;
++#endif
++
++#include &lt;stdio.h&gt;
++#include &lt;ctype.h&gt;
++#include &lt;time.h&gt;
++#include &lt;fcntl.h&gt;
++#include &lt;signal.h&gt;
++#include &lt;errno.h&gt;
++#include &lt;string.h&gt;
++#include &lt;stdlib.h&gt;
++#include &lt;unistd.h&gt;
++#include &lt;sys/types.h&gt;
++#include &lt;sys/stat.h&gt;
++#include &lt;syslog.h&gt;
++
++#ifndef TERMIO
++#undef TERMIOS
++#define TERMIOS
++#endif
++
++#ifdef TERMIO
++#include &lt;termio.h&gt;
++#endif
++#ifdef TERMIOS
++#include &lt;termios.h&gt;
++#endif
++
++#define STR_LEN 1024
++
++#ifndef SIGTYPE
++#define SIGTYPE void
++#endif
++
++#undef __P
++#undef __V
++
++#ifdef __STDC__
++#include &lt;stdarg.h&gt;
++#define __V(x) x
++#define __P(x) x
++#else
++#include &lt;varargs.h&gt;
++#define __V(x) (va_alist) va_dcl
++#define __P(x) ()
++#define const
++#endif
++
++#ifndef O_NONBLOCK
++#define O_NONBLOCK O_NDELAY
++#endif
++
++#ifdef SUNOS
++extern int sys_nerr;
++extern char *sys_errlist[];
++#define memmove(to, from, n) bcopy(from, to, n)
++#define strerror(n) ((unsigned)(n) &lt; sys_nerr? sys_errlist[(n)] :\
++ &quot;unknown error&quot;)
++#endif
++
++/*************** Micro getopt() *********************************************/
++#define OPTION(c,v) (_O&amp;2&amp;&amp;**v?*(*v)++:!c||_O&amp;4?0:(!(_O&amp;1)&amp;&amp; \
++ (--c,++v),_O=4,c&amp;&amp;**v=='-'&amp;&amp;v[0][1]?*++*v=='-'\
++ &amp;&amp;!v[0][1]?(--c,++v,0):(_O=2,*(*v)++):0))
++#define OPTARG(c,v) (_O&amp;2?**v||(++v,--c)?(_O=1,--c,*v++): \
++ (_O=4,(char*)0):(char*)0)
++#define OPTONLYARG(c,v) (_O&amp;2&amp;&amp;**v?(_O=1,--c,*v++):(char*)0)
++#define ARG(c,v) (c?(--c,*v++):(char*)0)
++
++static int _O = 0; /* Internal state */
++/*************** Micro getopt() *********************************************/
++
++char *program_name;
++
++#define MAX_ABORTS 50
++#define MAX_REPORTS 50
++#define DEFAULT_CHAT_TIMEOUT 45
++
++int echo = 0;
++int verbose = 0;
++int to_log = 1;
++int to_stderr = 0;
++int Verbose = 0;
++int quiet = 0;
++int report = 0;
++int use_env = 0;
++int exit_code = 0;
++FILE* report_fp = (FILE *) 0;
++char *report_file = (char *) 0;
++char *chat_file = (char *) 0;
++char *phone_num = (char *) 0;
++char *phone_num2 = (char *) 0;
++int timeout = DEFAULT_CHAT_TIMEOUT;
++
++int have_tty_parameters = 0;
++
++#ifdef TERMIO
++#define term_parms struct termio
++#define get_term_param(param) ioctl(0, TCGETA, param)
++#define set_term_param(param) ioctl(0, TCSETA, param)
++struct termio saved_tty_parameters;
++#endif
++
++#ifdef TERMIOS
++#define term_parms struct termios
++#define get_term_param(param) tcgetattr(0, param)
++#define set_term_param(param) tcsetattr(0, TCSANOW, param)
++struct termios saved_tty_parameters;
++#endif
++
++char *abort_string[MAX_ABORTS], *fail_reason = (char *)0,
++ fail_buffer[50];
++int n_aborts = 0, abort_next = 0, timeout_next = 0, echo_next = 0;
++int clear_abort_next = 0;
++
++char *report_string[MAX_REPORTS] ;
++char report_buffer[50] ;
++int n_reports = 0, report_next = 0, report_gathering = 0 ;
++int clear_report_next = 0;
++
++int say_next = 0, hup_next = 0;
++
++void *dup_mem __P((void *b, size_t c));
++void *copy_of __P((char *s));
++void usage __P((void));
++void logf __P((const char *fmt, ...));
++void fatal __P((int code, const char *fmt, ...));
++SIGTYPE sigalrm __P((int signo));
++SIGTYPE sigint __P((int signo));
++SIGTYPE sigterm __P((int signo));
++SIGTYPE sighup __P((int signo));
++void unalarm __P((void));
++void init __P((void));
++void set_tty_parameters __P((void));
++void echo_stderr __P((int));
++void break_sequence __P((void));
++void terminate __P((int status));
++void do_file __P((char *chat_file));
++int get_string __P((register char *string));
++int put_string __P((register char *s));
++int write_char __P((int c));
++int put_char __P((int c));
++int get_char __P((void));
++void chat_send __P((register char *s));
++char *character __P((int c));
++void chat_expect __P((register char *s));
++char *clean __P((register char *s, int sending));
++void break_sequence __P((void));
++void terminate __P((int status));
++void pack_array __P((char **array, int end));
++char *expect_strtok __P((char *, char *));
++int vfmtmsg __P((char *, int, const char *, va_list)); /* vsprintf++ */
++
++int main __P((int, char *[]));
++
++void *dup_mem(b, c)
++void *b;
++size_t c;
++{
++ void *ans = malloc (c);
++ if (!ans)
++ fatal(2, &quot;memory error!&quot;);
++
++ memcpy (ans, b, c);
++ return ans;
++}
++
++void *copy_of (s)
++char *s;
++{
++ return dup_mem (s, strlen (s) + 1);
++}
++
++/*
++ * chat [ -v ] [ -E ] [ -T number ] [ -U number ] [ -t timeout ] [ -f chat-file ] \
++ * [ -r report-file ] \
++ * [...[[expect[-say[-expect...]] say expect[-say[-expect]] ...]]]
++ *
++ * Perform a UUCP-dialer-like chat script on stdin and stdout.
++ */
++int
++main(argc, argv)
++ int argc;
++ char **argv;
++{
++ int option;
++ char *arg;
++
++ program_name = *argv;
++ tzset();
++
++ while ((option = OPTION(argc, argv)) != 0) {
++ switch (option) {
++ case 'e':
++ ++echo;
++ break;
++
++ case 'E':
++ ++use_env;
++ break;
++
++ case 'v':
++ ++verbose;
++ break;
++
++ case 'V':
++ ++Verbose;
++ break;
++
++ case 's':
++ ++to_stderr;
++ break;
++
++ case 'S':
++ to_log = 0;
++ break;
++
++ case 'f':
++ if ((arg = OPTARG(argc, argv)) != NULL)
++ chat_file = copy_of(arg);
++ else
++ usage();
++ break;
++
++ case 't':
++ if ((arg = OPTARG(argc, argv)) != NULL)
++ timeout = atoi(arg);
++ else
++ usage();
++ break;
++
++ case 'r':
++ arg = OPTARG (argc, argv);
++ if (arg) {
++ if (report_fp != NULL)
++ fclose (report_fp);
++ report_file = copy_of (arg);
++ report_fp = fopen (report_file, &quot;a&quot;);
++ if (report_fp != NULL) {
++ if (verbose)
++ fprintf (report_fp, &quot;Opening \&quot;%s\&quot;...\n&quot;,
++ report_file);
++ report = 1;
++ }
++ }
++ break;
++
++ case 'T':
++ if ((arg = OPTARG(argc, argv)) != NULL)
++ phone_num = copy_of(arg);
++ else
++ usage();
++ break;
++
++ case 'U':
++ if ((arg = OPTARG(argc, argv)) != NULL)
++ phone_num2 = copy_of(arg);
++ else
++ usage();
++ break;
++
++ default:
++ usage();
++ break;
++ }
++ }
++/*
++ * Default the report file to the stderr location
++ */
++ if (report_fp == NULL)
++ report_fp = stderr;
++
++ if (to_log) {
++#ifdef ultrix
++ openlog(&quot;chat&quot;, LOG_PID);
++#else
++ openlog(&quot;chat&quot;, LOG_PID | LOG_NDELAY, LOG_LOCAL2);
++
++ if (verbose)
++ setlogmask(LOG_UPTO(LOG_INFO));
++ else
++ setlogmask(LOG_UPTO(LOG_WARNING));
++#endif
++ }
++
++ init();
++
++ if (chat_file != NULL) {
++ arg = ARG(argc, argv);
++ if (arg != NULL)
++ usage();
++ else
++ do_file (chat_file);
++ } else {
++ while ((arg = ARG(argc, argv)) != NULL) {
++ chat_expect(arg);
++
++ if ((arg = ARG(argc, argv)) != NULL)
++ chat_send(arg);
++ }
++ }
++
++ terminate(0);
++ return 0;
++}
++
++/*
++ * Process a chat script when read from a file.
++ */
++
++void do_file (chat_file)
++char *chat_file;
++{
++ int linect, sendflg;
++ char *sp, *arg, quote;
++ char buf [STR_LEN];
++ FILE *cfp;
++
++ cfp = fopen (chat_file, &quot;r&quot;);
++ if (cfp == NULL)
++ fatal(1, &quot;%s -- open failed: %m&quot;, chat_file);
++
++ linect = 0;
++ sendflg = 0;
++
++ while (fgets(buf, STR_LEN, cfp) != NULL) {
++ sp = strchr (buf, '\n');
++ if (sp)
++ *sp = '\0';
++
++ linect++;
++ sp = buf;
++
++ /* lines starting with '#' are comments. If a real '#'
++ is to be expected, it should be quoted .... */
++ if ( *sp == '#' )
++ continue;
++
++ while (*sp != '\0') {
++ if (*sp == ' ' || *sp == '\t') {
++ ++sp;
++ continue;
++ }
++
++ if (*sp == '&quot;' || *sp == '\'') {
++ quote = *sp++;
++ arg = sp;
++ while (*sp != quote) {
++ if (*sp == '\0')
++ fatal(1, &quot;unterminated quote (line %d)&quot;, linect);
++
++ if (*sp++ == '\\') {
++ if (*sp != '\0')
++ ++sp;
++ }
++ }
++ }
++ else {
++ arg = sp;
++ while (*sp != '\0' &amp;&amp; *sp != ' ' &amp;&amp; *sp != '\t')
++ ++sp;
++ }
++
++ if (*sp != '\0')
++ *sp++ = '\0';
++
++ if (sendflg)
++ chat_send (arg);
++ else
++ chat_expect (arg);
++ sendflg = !sendflg;
++ }
++ }
++ fclose (cfp);
++}
++
++/*
++ * We got an error parsing the command line.
++ */
++void usage()
++{
++ fprintf(stderr, &quot;\
++Usage: %s [-e] [-E] [-v] [-V] [-t timeout] [-r report-file]\n\
++ [-T phone-number] [-U phone-number2] {-f chat-file | chat-script}\n&quot;, program_name);
++ exit(1);
++}
++
++char line[1024];
++
++/*
++ * Send a message to syslog and/or stderr.
++ */
++void logf __V((const char *fmt, ...))
++{
++ va_list args;
++
++#ifdef __STDC__
++ va_start(args, fmt);
++#else
++ char *fmt;
++ va_start(args);
++ fmt = va_arg(args, char *);
++#endif
++
++ vfmtmsg(line, sizeof(line), fmt, args);
++ if (to_log)
++ syslog(LOG_INFO, &quot;%s&quot;, line);
++ if (to_stderr)
++ fprintf(stderr, &quot;%s\n&quot;, line);
++}
++
++/*
++ * Print an error message and terminate.
++ */
++
++void fatal __V((int code, const char *fmt, ...))
++{
++ va_list args;
++
++#ifdef __STDC__
++ va_start(args, fmt);
++#else
++ int code;
++ char *fmt;
++ va_start(args);
++ code = va_arg(args, int);
++ fmt = va_arg(args, char *);
++#endif
++
++ vfmtmsg(line, sizeof(line), fmt, args);
++ if (to_log)
++ syslog(LOG_ERR, &quot;%s&quot;, line);
++ if (to_stderr)
++ fprintf(stderr, &quot;%s\n&quot;, line);
++ terminate(code);
++}
++
++int alarmed = 0;
++
++SIGTYPE sigalrm(signo)
++int signo;
++{
++ int flags;
++
++ alarm(1);
++ alarmed = 1; /* Reset alarm to avoid race window */
++ signal(SIGALRM, sigalrm); /* that can cause hanging in read() */
++
++ if ((flags = fcntl(0, F_GETFL, 0)) == -1)
++ fatal(2, &quot;Can't get file mode flags on stdin: %m&quot;);
++
++ if (fcntl(0, F_SETFL, flags | O_NONBLOCK) == -1)
++ fatal(2, &quot;Can't set file mode flags on stdin: %m&quot;);
++
++ if (verbose)
++ logf(&quot;alarm&quot;);
++}
++
++void unalarm()
++{
++ int flags;
++
++ if ((flags = fcntl(0, F_GETFL, 0)) == -1)
++ fatal(2, &quot;Can't get file mode flags on stdin: %m&quot;);
++
++ if (fcntl(0, F_SETFL, flags &amp; ~O_NONBLOCK) == -1)
++ fatal(2, &quot;Can't set file mode flags on stdin: %m&quot;);
++}
++
++SIGTYPE sigint(signo)
++int signo;
++{
++ fatal(2, &quot;SIGINT&quot;);
++}
++
++SIGTYPE sigterm(signo)
++int signo;
++{
++ fatal(2, &quot;SIGTERM&quot;);
++}
++
++SIGTYPE sighup(signo)
++int signo;
++{
++ fatal(2, &quot;SIGHUP&quot;);
++}
++
++void init()
++{
++ signal(SIGINT, sigint);
++ signal(SIGTERM, sigterm);
++ signal(SIGHUP, sighup);
++
++ set_tty_parameters();
++ signal(SIGALRM, sigalrm);
++ alarm(0);
++ alarmed = 0;
++}
++
++void set_tty_parameters()
++{
++#if defined(get_term_param)
++ term_parms t;
++
++ if (get_term_param (&amp;t) &lt; 0)
++ fatal(2, &quot;Can't get terminal parameters: %m&quot;);
++
++ saved_tty_parameters = t;
++ have_tty_parameters = 1;
++
++ t.c_iflag |= IGNBRK | ISTRIP | IGNPAR;
++ t.c_oflag = 0;
++ t.c_lflag = 0;
++ t.c_cc[VERASE] =
++ t.c_cc[VKILL] = 0;
++ t.c_cc[VMIN] = 1;
++ t.c_cc[VTIME] = 0;
++
++ if (set_term_param (&amp;t) &lt; 0)
++ fatal(2, &quot;Can't set terminal parameters: %m&quot;);
++#endif
++}
++
++void break_sequence()
++{
++#ifdef TERMIOS
++ tcsendbreak (0, 0);
++#endif
++}
++
++void terminate(status)
++int status;
++{
++ static int terminating = 0;
++
++ if (terminating)
++ exit(status);
++ terminating = 1;
++ echo_stderr(-1);
++/*
++ * Allow the last of the report string to be gathered before we terminate.
++ */
++ if (report_gathering) {
++ int c, rep_len;
++
++ rep_len = strlen(report_buffer);
++ while (rep_len + 1 &lt;= sizeof(report_buffer)) {
++ alarm(1);
++ c = get_char();
++ alarm(0);
++ if (c &lt; 0 || iscntrl(c))
++ break;
++ report_buffer[rep_len] = c;
++ ++rep_len;
++ }
++ report_buffer[rep_len] = 0;
++ fprintf (report_fp, &quot;chat: %s\n&quot;, report_buffer);
++ }
++ if (report_file != (char *) 0 &amp;&amp; report_fp != (FILE *) NULL) {
++ if (verbose)
++ fprintf (report_fp, &quot;Closing \&quot;%s\&quot;.\n&quot;, report_file);
++ fclose (report_fp);
++ report_fp = (FILE *) NULL;
++ }
++
++#if defined(get_term_param)
++ if (have_tty_parameters) {
++ if (set_term_param (&amp;saved_tty_parameters) &lt; 0)
++ fatal(2, &quot;Can't restore terminal parameters: %m&quot;);
++ }
++#endif
++
++ exit(status);
++}
++
++/*
++ * 'Clean up' this string.
++ */
++char *clean(s, sending)
++register char *s;
++int sending; /* set to 1 when sending (putting) this string. */
++{
++ char temp[STR_LEN], env_str[STR_LEN], cur_chr;
++ register char *s1, *phchar;
++ int add_return = sending;
++#define isoctal(chr) (((chr) &gt;= '0') &amp;&amp; ((chr) &lt;= '7'))
++#define isalnumx(chr) ((((chr) &gt;= '0') &amp;&amp; ((chr) &lt;= '9')) \
++ || (((chr) &gt;= 'a') &amp;&amp; ((chr) &lt;= 'z')) \
++ || (((chr) &gt;= 'A') &amp;&amp; ((chr) &lt;= 'Z')) \
++ || (chr) == '_')
++
++ s1 = temp;
++ while (*s) {
++ cur_chr = *s++;
++ if (cur_chr == '^') {
++ cur_chr = *s++;
++ if (cur_chr == '\0') {
++ *s1++ = '^';
++ break;
++ }
++ cur_chr &amp;= 0x1F;
++ if (cur_chr != 0) {
++ *s1++ = cur_chr;
++ }
++ continue;
++ }
++
++ if (use_env &amp;&amp; cur_chr == '$') { /* ARI */
++ phchar = env_str;
++ while (isalnumx(*s))
++ *phchar++ = *s++;
++ *phchar = '\0';
++ phchar = getenv(env_str);
++ if (phchar)
++ while (*phchar)
++ *s1++ = *phchar++;
++ continue;
++ }
++
++ if (cur_chr != '\\') {
++ *s1++ = cur_chr;
++ continue;
++ }
++
++ cur_chr = *s++;
++ if (cur_chr == '\0') {
++ if (sending) {
++ *s1++ = '\\';
++ *s1++ = '\\';
++ }
++ break;
++ }
++
++ switch (cur_chr) {
++ case 'b':
++ *s1++ = '\b';
++ break;
++
++ case 'c':
++ if (sending &amp;&amp; *s == '\0')
++ add_return = 0;
++ else
++ *s1++ = cur_chr;
++ break;
++
++ case '\\':
++ case 'K':
++ case 'p':
++ case 'd':
++ if (sending)
++ *s1++ = '\\';
++ *s1++ = cur_chr;
++ break;
++
++ case 'T':
++ if (sending &amp;&amp; phone_num) {
++ for (phchar = phone_num; *phchar != '\0'; phchar++)
++ *s1++ = *phchar;
++ }
++ else {
++ *s1++ = '\\';
++ *s1++ = 'T';
++ }
++ break;
++
++ case 'U':
++ if (sending &amp;&amp; phone_num2) {
++ for (phchar = phone_num2; *phchar != '\0'; phchar++)
++ *s1++ = *phchar;
++ }
++ else {
++ *s1++ = '\\';
++ *s1++ = 'U';
++ }
++ break;
++
++ case 'q':
++ quiet = 1;
++ break;
++
++ case 'r':
++ *s1++ = '\r';
++ break;
++
++ case 'n':
++ *s1++ = '\n';
++ break;
++
++ case 's':
++ *s1++ = ' ';
++ break;
++
++ case 't':
++ *s1++ = '\t';
++ break;
++
++ case 'N':
++ if (sending) {
++ *s1++ = '\\';
++ *s1++ = '\0';
++ }
++ else
++ *s1++ = 'N';
++ break;
++
++ case '$': /* ARI */
++ if (use_env) {
++ *s1++ = cur_chr;
++ break;
++ }
++ /* FALL THROUGH */
++
++ default:
++ if (isoctal (cur_chr)) {
++ cur_chr &amp;= 0x07;
++ if (isoctal (*s)) {
++ cur_chr &lt;&lt;= 3;
++ cur_chr |= *s++ - '0';
++ if (isoctal (*s)) {
++ cur_chr &lt;&lt;= 3;
++ cur_chr |= *s++ - '0';
++ }
++ }
++
++ if (cur_chr != 0 || sending) {
++ if (sending &amp;&amp; (cur_chr == '\\' || cur_chr == 0))
++ *s1++ = '\\';
++ *s1++ = cur_chr;
++ }
++ break;
++ }
++
++ if (sending)
++ *s1++ = '\\';
++ *s1++ = cur_chr;
++ break;
++ }
++ }
++
++ if (add_return)
++ *s1++ = '\r';
++
++ *s1++ = '\0'; /* guarantee closure */
++ *s1++ = '\0'; /* terminate the string */
++ return dup_mem (temp, (size_t) (s1 - temp)); /* may have embedded nuls */
++}
++
++/*
++ * A modified version of 'strtok'. This version skips \ sequences.
++ */
++
++char *expect_strtok (s, term)
++ char *s, *term;
++{
++ static char *str = &quot;&quot;;
++ int escape_flag = 0;
++ char *result;
++
++/*
++ * If a string was specified then do initial processing.
++ */
++ if (s)
++ str = s;
++
++/*
++ * If this is the escape flag then reset it and ignore the character.
++ */
++ if (*str)
++ result = str;
++ else
++ result = (char *) 0;
++
++ while (*str) {
++ if (escape_flag) {
++ escape_flag = 0;
++ ++str;
++ continue;
++ }
++
++ if (*str == '\\') {
++ ++str;
++ escape_flag = 1;
++ continue;
++ }
++
++/*
++ * If this is not in the termination string, continue.
++ */
++ if (strchr (term, *str) == (char *) 0) {
++ ++str;
++ continue;
++ }
++
++/*
++ * This is the terminator. Mark the end of the string and stop.
++ */
++ *str++ = '\0';
++ break;
++ }
++ return (result);
++}
++
++/*
++ * Process the expect string
++ */
++
++void chat_expect (s)
++char *s;
++{
++ char *expect;
++ char *reply;
++
++ if (strcmp(s, &quot;HANGUP&quot;) == 0) {
++ ++hup_next;
++ return;
++ }
++
++ if (strcmp(s, &quot;ABORT&quot;) == 0) {
++ ++abort_next;
++ return;
++ }
++
++ if (strcmp(s, &quot;CLR_ABORT&quot;) == 0) {
++ ++clear_abort_next;
++ return;
++ }
++
++ if (strcmp(s, &quot;REPORT&quot;) == 0) {
++ ++report_next;
++ return;
++ }
++
++ if (strcmp(s, &quot;CLR_REPORT&quot;) == 0) {
++ ++clear_report_next;
++ return;
++ }
++
++ if (strcmp(s, &quot;TIMEOUT&quot;) == 0) {
++ ++timeout_next;
++ return;
++ }
++
++ if (strcmp(s, &quot;ECHO&quot;) == 0) {
++ ++echo_next;
++ return;
++ }
++
++ if (strcmp(s, &quot;SAY&quot;) == 0) {
++ ++say_next;
++ return;
++ }
++
++/*
++ * Fetch the expect and reply string.
++ */
++ for (;;) {
++ expect = expect_strtok (s, &quot;-&quot;);
++ s = (char *) 0;
++
++ if (expect == (char *) 0)
++ return;
++
++ reply = expect_strtok (s, &quot;-&quot;);
++
++/*
++ * Handle the expect string. If successful then exit.
++ */
++ if (get_string (expect))
++ return;
++
++/*
++ * If there is a sub-reply string then send it. Otherwise any condition
++ * is terminal.
++ */
++ if (reply == (char *) 0 || exit_code != 3)
++ break;
++
++ chat_send (reply);
++ }
++
++/*
++ * The expectation did not occur. This is terminal.
++ */
++ if (fail_reason)
++ logf(&quot;Failed (%s)&quot;, fail_reason);
++ else
++ logf(&quot;Failed&quot;);
++ terminate(exit_code);
++}
++
++/*
++ * Translate the input character to the appropriate string for printing
++ * the data.
++ */
++
++char *character(c)
++int c;
++{
++ static char string[10];
++ char *meta;
++
++ meta = (c &amp; 0x80) ? &quot;M-&quot; : &quot;&quot;;
++ c &amp;= 0x7F;
++
++ if (c &lt; 32)
++ sprintf(string, &quot;%s^%c&quot;, meta, (int)c + '@');
++ else if (c == 127)
++ sprintf(string, &quot;%s^?&quot;, meta);
++ else
++ sprintf(string, &quot;%s%c&quot;, meta, c);
++
++ return (string);
++}
++
++/*
++ * process the reply string
++ */
++void chat_send (s)
++register char *s;
++{
++ char file_data[STR_LEN];
++
++ if (say_next) {
++ say_next = 0;
++ s = clean(s, 1);
++ write(2, s, strlen(s));
++ free(s);
++ return;
++ }
++
++ if (hup_next) {
++ hup_next = 0;
++ if (strcmp(s, &quot;OFF&quot;) == 0)
++ signal(SIGHUP, SIG_IGN);
++ else
++ signal(SIGHUP, sighup);
++ return;
++ }
++
++ if (echo_next) {
++ echo_next = 0;
++ echo = (strcmp(s, &quot;ON&quot;) == 0);
++ return;
++ }
++
++ if (abort_next) {
++ char *s1;
++
++ abort_next = 0;
++
++ if (n_aborts &gt;= MAX_ABORTS)
++ fatal(2, &quot;Too many ABORT strings&quot;);
++
++ s1 = clean(s, 0);
++
++ if (strlen(s1) &gt; strlen(s)
++ || strlen(s1) + 1 &gt; sizeof(fail_buffer))
++ fatal(1, &quot;Illegal or too-long ABORT string ('%v')&quot;, s);
++
++ abort_string[n_aborts++] = s1;
++
++ if (verbose)
++ logf(&quot;abort on (%v)&quot;, s);
++ return;
++ }
++
++ if (clear_abort_next) {
++ char *s1;
++ int i;
++ int old_max;
++ int pack = 0;
++
++ clear_abort_next = 0;
++
++ s1 = clean(s, 0);
++
++ if (strlen(s1) &gt; strlen(s)
++ || strlen(s1) + 1 &gt; sizeof(fail_buffer))
++ fatal(1, &quot;Illegal or too-long CLR_ABORT string ('%v')&quot;, s);
++
++ old_max = n_aborts;
++ for (i=0; i &lt; n_aborts; i++) {
++ if ( strcmp(s1,abort_string[i]) == 0 ) {
++ free(abort_string[i]);
++ abort_string[i] = NULL;
++ pack++;
++ n_aborts--;
++ if (verbose)
++ logf(&quot;clear abort on (%v)&quot;, s);
++ }
++ }
++ free(s1);
++ if (pack)
++ pack_array(abort_string,old_max);
++ return;
++ }
++
++ if (report_next) {
++ char *s1;
++
++ report_next = 0;
++ if (n_reports &gt;= MAX_REPORTS)
++ fatal(2, &quot;Too many REPORT strings&quot;);
++
++ s1 = clean(s, 0);
++
++ if (strlen(s1) &gt; strlen(s) || strlen(s1) &gt; sizeof fail_buffer - 1)
++ fatal(1, &quot;Illegal or too-long REPORT string ('%v')&quot;, s);
++
++ report_string[n_reports++] = s1;
++
++ if (verbose)
++ logf(&quot;report (%v)&quot;, s);
++ return;
++ }
++
++ if (clear_report_next) {
++ char *s1;
++ int i;
++ int old_max;
++ int pack = 0;
++
++ clear_report_next = 0;
++
++ s1 = clean(s, 0);
++
++ if (strlen(s1) &gt; strlen(s) || strlen(s1) &gt; sizeof fail_buffer - 1)
++ fatal(1, &quot;Illegal or too-long REPORT string ('%v')&quot;, s);
++
++ old_max = n_reports;
++ for (i=0; i &lt; n_reports; i++) {
++ if ( strcmp(s1,report_string[i]) == 0 ) {
++ free(report_string[i]);
++ report_string[i] = NULL;
++ pack++;
++ n_reports--;
++ if (verbose)
++ logf(&quot;clear report (%v)&quot;, s);
++ }
++ }
++ free(s1);
++ if (pack)
++ pack_array(report_string,old_max);
++
++ return;
++ }
++
++ if (timeout_next) {
++ timeout_next = 0;
++ timeout = atoi(s);
++
++ if (timeout &lt;= 0)
++ timeout = DEFAULT_CHAT_TIMEOUT;
++
++ if (verbose)
++ logf(&quot;timeout set to %d seconds&quot;, timeout);
++
++ return;
++ }
++
++ /*
++ * The syntax @filename means read the string to send from the
++ * file `filename'.
++ */
++ if (s[0] == '@') {
++ /* skip the @ and any following white-space */
++ char *fn = s;
++ while (*++fn == ' ' || *fn == '\t')
++ ;
++
++ if (*fn != 0) {
++ FILE *f;
++ int n = 0;
++
++ /* open the file and read until STR_LEN-1 bytes or end-of-file */
++ f = fopen(fn, &quot;r&quot;);
++ if (f == NULL)
++ fatal(1, &quot;%s -- open failed: %m&quot;, fn);
++ while (n &lt; STR_LEN - 1) {
++ int nr = fread(&amp;file_data[n], 1, STR_LEN - 1 - n, f);
++ if (nr &lt; 0)
++ fatal(1, &quot;%s -- read error&quot;, fn);
++ if (nr == 0)
++ break;
++ n += nr;
++ }
++ fclose(f);
++
++ /* use the string we got as the string to send,
++ but trim off the final newline if any. */
++ if (n &gt; 0 &amp;&amp; file_data[n-1] == '\n')
++ --n;
++ file_data[n] = 0;
++ s = file_data;
++ }
++ }
++
++ if (strcmp(s, &quot;EOT&quot;) == 0)
++ s = &quot;^D\\c&quot;;
++ else if (strcmp(s, &quot;BREAK&quot;) == 0)
++ s = &quot;\\K\\c&quot;;
++
++ if (!put_string(s))
++ fatal(1, &quot;Failed&quot;);
++}
++
++int get_char()
++{
++ int status;
++ char c;
++
++ status = read(0, &amp;c, 1);
++
++ switch (status) {
++ case 1:
++ return ((int)c &amp; 0x7F);
++
++ default:
++ logf(&quot;warning: read() on stdin returned %d&quot;, status);
++
++ case -1:
++ if ((status = fcntl(0, F_GETFL, 0)) == -1)
++ fatal(2, &quot;Can't get file mode flags on stdin: %m&quot;);
++
++ if (fcntl(0, F_SETFL, status &amp; ~O_NONBLOCK) == -1)
++ fatal(2, &quot;Can't set file mode flags on stdin: %m&quot;);
++
++ return (-1);
++ }
++}
++
++int put_char(c)
++int c;
++{
++ int status;
++ char ch = c;
++
++ usleep(10000); /* inter-character typing delay (?) */
++
++ status = write(1, &amp;ch, 1);
++
++ switch (status) {
++ case 1:
++ return (0);
++
++ default:
++ logf(&quot;warning: write() on stdout returned %d&quot;, status);
++
++ case -1:
++ if ((status = fcntl(0, F_GETFL, 0)) == -1)
++ fatal(2, &quot;Can't get file mode flags on stdin, %m&quot;);
++
++ if (fcntl(0, F_SETFL, status &amp; ~O_NONBLOCK) == -1)
++ fatal(2, &quot;Can't set file mode flags on stdin: %m&quot;);
++
++ return (-1);
++ }
++}
++
++int write_char (c)
++int c;
++{
++ if (alarmed || put_char(c) &lt; 0) {
++ alarm(0);
++ alarmed = 0;
++
++ if (verbose) {
++ if (errno == EINTR || errno == EWOULDBLOCK)
++ logf(&quot; -- write timed out&quot;);
++ else
++ logf(&quot; -- write failed: %m&quot;);
++ }
++ return (0);
++ }
++ return (1);
++}
++
++int put_string (s)
++register char *s;
++{
++ quiet = 0;
++ s = clean(s, 1);
++
++ if (verbose) {
++ if (quiet)
++ logf(&quot;send (??????)&quot;);
++ else
++ logf(&quot;send (%v)&quot;, s);
++ }
++
++ alarm(timeout); alarmed = 0;
++
++ while (*s) {
++ register char c = *s++;
++
++ if (c != '\\') {
++ if (!write_char (c))
++ return 0;
++ continue;
++ }
++
++ c = *s++;
++ switch (c) {
++ case 'd':
++ sleep(1);
++ break;
++
++ case 'K':
++ break_sequence();
++ break;
++
++ case 'p':
++ usleep(10000); /* 1/100th of a second (arg is microseconds) */
++ break;
++
++ default:
++ if (!write_char (c))
++ return 0;
++ break;
++ }
++ }
++
++ alarm(0);
++ alarmed = 0;
++ return (1);
++}
++
++/*
++ * Echo a character to stderr.
++ * When called with -1, a '\n' character is generated when
++ * the cursor is not at the beginning of a line.
++ */
++void echo_stderr(n)
++int n;
++{
++ static int need_lf;
++ char *s;
++
++ switch (n) {
++ case '\r': /* ignore '\r' */
++ break;
++ case -1:
++ if (need_lf == 0)
++ break;
++ /* fall through */
++ case '\n':
++ write(2, &quot;\n&quot;, 1);
++ need_lf = 0;
++ break;
++ default:
++ s = character(n);
++ write(2, s, strlen(s));
++ need_lf = 1;
++ break;
++ }
++}
++
++/*
++ * 'Wait for' this string to appear on this file descriptor.
++ */
++int get_string(string)
++register char *string;
++{
++ char temp[STR_LEN];
++ int c, printed = 0, len, minlen;
++ register char *s = temp, *end = s + STR_LEN;
++ char *logged = temp;
++
++ fail_reason = (char *)0;
++ string = clean(string, 0);
++ len = strlen(string);
++ minlen = (len &gt; sizeof(fail_buffer)? len: sizeof(fail_buffer)) - 1;
++
++ if (verbose)
++ logf(&quot;expect (%v)&quot;, string);
++
++ if (len &gt; STR_LEN) {
++ logf(&quot;expect string is too long&quot;);
++ exit_code = 1;
++ return 0;
++ }
++
++ if (len == 0) {
++ if (verbose)
++ logf(&quot;got it&quot;);
++ return (1);
++ }
++
++ alarm(timeout);
++ alarmed = 0;
++
++ while ( ! alarmed &amp;&amp; (c = get_char()) &gt;= 0) {
++ int n, abort_len, report_len;
++
++ if (echo)
++ echo_stderr(c);
++ if (verbose &amp;&amp; c == '\n') {
++ if (s == logged)
++ logf(&quot;&quot;); /* blank line */
++ else
++ logf(&quot;%0.*v&quot;, s - logged, logged);
++ logged = s + 1;
++ }
++
++ *s++ = c;
++
++ if (verbose &amp;&amp; s &gt;= logged + 80) {
++ logf(&quot;%0.*v&quot;, s - logged, logged);
++ logged = s;
++ }
++
++ if (Verbose) {
++ if (c == '\n')
++ fputc( '\n', stderr );
++ else if (c != '\r')
++ fprintf( stderr, &quot;%s&quot;, character(c) );
++ }
++
++ if (!report_gathering) {
++ for (n = 0; n &lt; n_reports; ++n) {
++ if ((report_string[n] != (char*) NULL) &amp;&amp;
++ s - temp &gt;= (report_len = strlen(report_string[n])) &amp;&amp;
++ strncmp(s - report_len, report_string[n], report_len) == 0) {
++ time_t time_now = time ((time_t*) NULL);
++ struct tm* tm_now = localtime (&amp;time_now);
++
++ strftime (report_buffer, 20, &quot;%b %d %H:%M:%S &quot;, tm_now);
++ strcat (report_buffer, report_string[n]);
++
++ report_string[n] = (char *) NULL;
++ report_gathering = 1;
++ break;
++ }
++ }
++ }
++ else {
++ if (!iscntrl (c)) {
++ int rep_len = strlen (report_buffer);
++ report_buffer[rep_len] = c;
++ report_buffer[rep_len + 1] = '\0';
++ }
++ else {
++ report_gathering = 0;
++ fprintf (report_fp, &quot;chat: %s\n&quot;, report_buffer);
++ }
++ }
++
++ if (s - temp &gt;= len &amp;&amp;
++ c == string[len - 1] &amp;&amp;
++ strncmp(s - len, string, len) == 0) {
++ if (verbose) {
++ if (s &gt; logged)
++ logf(&quot;%0.*v&quot;, s - logged, logged);
++ logf(&quot; -- got it\n&quot;);
++ }
++
++ alarm(0);
++ alarmed = 0;
++ return (1);
++ }
++
++ for (n = 0; n &lt; n_aborts; ++n) {
++ if (s - temp &gt;= (abort_len = strlen(abort_string[n])) &amp;&amp;
++ strncmp(s - abort_len, abort_string[n], abort_len) == 0) {
++ if (verbose) {
++ if (s &gt; logged)
++ logf(&quot;%0.*v&quot;, s - logged, logged);
++ logf(&quot; -- failed&quot;);
++ }
++
++ alarm(0);
++ alarmed = 0;
++ exit_code = n + 4;
++ strcpy(fail_reason = fail_buffer, abort_string[n]);
++ return (0);
++ }
++ }
++
++ if (s &gt;= end) {
++ if (logged &lt; s - minlen) {
++ if (verbose)
++ logf(&quot;%0.*v&quot;, s - logged, logged);
++ logged = s;
++ }
++ s -= minlen;
++ memmove(temp, s, minlen);
++ logged = temp + (logged - s);
++ s = temp + minlen;
++ }
++
++ if (alarmed &amp;&amp; verbose)
++ logf(&quot;warning: alarm synchronization problem&quot;);
++ }
++
++ alarm(0);
++
++ if (verbose &amp;&amp; printed) {
++ if (alarmed)
++ logf(&quot; -- read timed out&quot;);
++ else
++ logf(&quot; -- read failed: %m&quot;);
++ }
++
++ exit_code = 3;
++ alarmed = 0;
++ return (0);
++}
++
++/*
++ * Gross kludge to handle Solaris versions &gt;= 2.6 having usleep.
++ */
++#ifdef SOL2
++#include &lt;sys/param.h&gt;
++#if MAXUID &gt; 65536 /* then this is Solaris 2.6 or later */
++#undef NO_USLEEP
++#endif
++#endif /* SOL2 */
++
++#ifdef NO_USLEEP
++#include &lt;sys/types.h&gt;
++#include &lt;sys/time.h&gt;
++
++/*
++ usleep -- support routine for 4.2BSD system call emulations
++ last edit: 29-Oct-1984 D A Gwyn
++ */
++
++extern int select();
++
++int
++usleep( usec ) /* returns 0 if ok, else -1 */
++ long usec; /* delay in microseconds */
++{
++ static struct { /* `timeval' */
++ long tv_sec; /* seconds */
++ long tv_usec; /* microsecs */
++ } delay; /* _select() timeout */
++
++ delay.tv_sec = usec / 1000000L;
++ delay.tv_usec = usec % 1000000L;
++
++ return select(0, (long *)0, (long *)0, (long *)0, &amp;delay);
++}
++#endif
++
++void
++pack_array (array, end)
++ char **array; /* The address of the array of string pointers */
++ int end; /* The index of the next free entry before CLR_ */
++{
++ int i, j;
++
++ for (i = 0; i &lt; end; i++) {
++ if (array[i] == NULL) {
++ for (j = i+1; j &lt; end; ++j)
++ if (array[j] != NULL)
++ array[i++] = array[j];
++ for (; i &lt; end; ++i)
++ array[i] = NULL;
++ break;
++ }
++ }
++}
++
++/*
++ * vfmtmsg - format a message into a buffer. Like vsprintf except we
++ * also specify the length of the output buffer, and we handle the
++ * %m (error message) format.
++ * Doesn't do floating-point formats.
++ * Returns the number of chars put into buf.
++ */
++#define OUTCHAR(c) (buflen &gt; 0? (--buflen, *buf++ = (c)): 0)
++
++int
++vfmtmsg(buf, buflen, fmt, args)
++ char *buf;
++ int buflen;
++ const char *fmt;
++ va_list args;
++{
++ int c, i, n;
++ int width, prec, fillch;
++ int base, len, neg, quoted;
++ unsigned long val = 0;
++ char *str, *buf0;
++ const char *f;
++ unsigned char *p;
++ char num[32];
++ static char hexchars[] = &quot;0123456789abcdef&quot;;
++
++ buf0 = buf;
++ --buflen;
++ while (buflen &gt; 0) {
++ for (f = fmt; *f != '%' &amp;&amp; *f != 0; ++f)
++ ;
++ if (f &gt; fmt) {
++ len = f - fmt;
++ if (len &gt; buflen)
++ len = buflen;
++ memcpy(buf, fmt, len);
++ buf += len;
++ buflen -= len;
++ fmt = f;
++ }
++ if (*fmt == 0)
++ break;
++ c = *++fmt;
++ width = prec = 0;
++ fillch = ' ';
++ if (c == '0') {
++ fillch = '0';
++ c = *++fmt;
++ }
++ if (c == '*') {
++ width = va_arg(args, int);
++ c = *++fmt;
++ } else {
++ while (isdigit(c)) {
++ width = width * 10 + c - '0';
++ c = *++fmt;
++ }
++ }
++ if (c == '.') {
++ c = *++fmt;
++ if (c == '*') {
++ prec = va_arg(args, int);
++ c = *++fmt;
++ } else {
++ while (isdigit(c)) {
++ prec = prec * 10 + c - '0';
++ c = *++fmt;
++ }
++ }
++ }
++ str = 0;
++ base = 0;
++ neg = 0;
++ ++fmt;
++ switch (c) {
++ case 'd':
++ i = va_arg(args, int);
++ if (i &lt; 0) {
++ neg = 1;
++ val = -i;
++ } else
++ val = i;
++ base = 10;
++ break;
++ case 'o':
++ val = va_arg(args, unsigned int);
++ base = 8;
++ break;
++ case 'x':
++ val = va_arg(args, unsigned int);
++ base = 16;
++ break;
++ case 'p':
++ val = (unsigned long) va_arg(args, void *);
++ base = 16;
++ neg = 2;
++ break;
++ case 's':
++ str = va_arg(args, char *);
++ break;
++ case 'c':
++ num[0] = va_arg(args, int);
++ num[1] = 0;
++ str = num;
++ break;
++ case 'm':
++ str = strerror(errno);
++ break;
++ case 'v': /* &quot;visible&quot; string */
++ case 'q': /* quoted string */
++ quoted = c == 'q';
++ p = va_arg(args, unsigned char *);
++ if (fillch == '0' &amp;&amp; prec &gt; 0) {
++ n = prec;
++ } else {
++ n = strlen((char *)p);
++ if (prec &gt; 0 &amp;&amp; prec &lt; n)
++ n = prec;
++ }
++ while (n &gt; 0 &amp;&amp; buflen &gt; 0) {
++ c = *p++;
++ --n;
++ if (!quoted &amp;&amp; c &gt;= 0x80) {
++ OUTCHAR('M');
++ OUTCHAR('-');
++ c -= 0x80;
++ }
++ if (quoted &amp;&amp; (c == '&quot;' || c == '\\'))
++ OUTCHAR('\\');
++ if (c &lt; 0x20 || (0x7f &lt;= c &amp;&amp; c &lt; 0xa0)) {
++ if (quoted) {
++ OUTCHAR('\\');
++ switch (c) {
++ case '\t': OUTCHAR('t'); break;
++ case '\n': OUTCHAR('n'); break;
++ case '\b': OUTCHAR('b'); break;
++ case '\f': OUTCHAR('f'); break;
++ default:
++ OUTCHAR('x');
++ OUTCHAR(hexchars[c &gt;&gt; 4]);
++ OUTCHAR(hexchars[c &amp; 0xf]);
++ }
++ } else {
++ if (c == '\t')
++ OUTCHAR(c);
++ else {
++ OUTCHAR('^');
++ OUTCHAR(c ^ 0x40);
++ }
++ }
++ } else
++ OUTCHAR(c);
++ }
++ continue;
++ default:
++ *buf++ = '%';
++ if (c != '%')
++ --fmt; /* so %z outputs %z etc. */
++ --buflen;
++ continue;
++ }
++ if (base != 0) {
++ str = num + sizeof(num);
++ *--str = 0;
++ while (str &gt; num + neg) {
++ *--str = hexchars[val % base];
++ val = val / base;
++ if (--prec &lt;= 0 &amp;&amp; val == 0)
++ break;
++ }
++ switch (neg) {
++ case 1:
++ *--str = '-';
++ break;
++ case 2:
++ *--str = 'x';
++ *--str = '0';
++ break;
++ }
++ len = num + sizeof(num) - 1 - str;
++ } else {
++ len = strlen(str);
++ if (prec &gt; 0 &amp;&amp; len &gt; prec)
++ len = prec;
++ }
++ if (width &gt; 0) {
++ if (width &gt; buflen)
++ width = buflen;
++ if ((n = width - len) &gt; 0) {
++ buflen -= n;
++ for (; n &gt; 0; --n)
++ *buf++ = fillch;
++ }
++ }
++ if (len &gt; buflen)
++ len = buflen;
++ memcpy(buf, str, len);
++ buf += len;
++ buflen -= len;
++ }
++ *buf = 0;
++ return buf - buf0;
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/chat/chat.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pppcommonzlibc">Added: drakx/trunk/mdk-stage1/ppp/common/zlib.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/common/zlib.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/common/zlib.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,5376 @@
++/*
++ * This file is derived from various .h and .c files from the zlib-1.0.4
++ * distribution by Jean-loup Gailly and Mark Adler, with some additions
++ * by Paul Mackerras to aid in implementing Deflate compression and
++ * decompression for PPP packets. See zlib.h for conditions of
++ * distribution and use.
++ *
++ * Changes that have been made include:
++ * - added Z_PACKET_FLUSH (see zlib.h for details)
++ * - added inflateIncomp and deflateOutputPending
++ * - allow strm-&gt;next_out to be NULL, meaning discard the output
++ *
++ * $Id: zlib.c 195720 2001-06-11 11:44:34Z gc $
++ */
++
++/*
++ * ==FILEVERSION 971210==
++ *
++ * This marker is used by the Linux installation script to determine
++ * whether an up-to-date version of this file is already installed.
++ */
++
++#define NO_DUMMY_DECL
++#define NO_ZCFUNCS
++#define MY_ZCALLOC
++
++#if defined(__FreeBSD__) &amp;&amp; (defined(KERNEL) || defined(_KERNEL))
++#define inflate inflate_ppp /* FreeBSD already has an inflate :-( */
++#endif
++
++
++/* +++ zutil.h */
++/* zutil.h -- internal interface and configuration of the compression library
++ * Copyright (C) 1995-1996 Jean-loup Gailly.
++ * For conditions of distribution and use, see copyright notice in zlib.h
++ */
++
++/* WARNING: this file should *not* be used by applications. It is
++ part of the implementation of the compression library and is
++ subject to change. Applications should only use zlib.h.
++ */
++
++/* From: zutil.h,v 1.16 1996/07/24 13:41:13 me Exp $ */
++
++#ifndef _Z_UTIL_H
++#define _Z_UTIL_H
++
++#include &quot;zlib.h&quot;
++
++#if defined(KERNEL) || defined(_KERNEL)
++/* Assume this is a *BSD or SVR4 kernel */
++#include &lt;sys/types.h&gt;
++#include &lt;sys/time.h&gt;
++#include &lt;sys/systm.h&gt;
++#undef u
++# define HAVE_MEMCPY
++# define memcpy(d, s, n) bcopy((s), (d), (n))
++# define memset(d, v, n) bzero((d), (n))
++# define memcmp bcmp
++
++#else
++#if defined(__KERNEL__)
++/* Assume this is a Linux kernel */
++#include &lt;linux/string.h&gt;
++#define HAVE_MEMCPY
++
++#else /* not kernel */
++
++#if defined(MSDOS)||defined(VMS)||defined(CRAY)||defined(WIN32)||defined(RISCOS)
++# include &lt;stddef.h&gt;
++# include &lt;errno.h&gt;
++#else
++ extern int errno;
++#endif
++#ifdef STDC
++# include &lt;string.h&gt;
++# include &lt;stdlib.h&gt;
++#endif
++#endif /* __KERNEL__ */
++#endif /* _KERNEL || KERNEL */
++
++#ifndef local
++# define local static
++#endif
++/* compile with -Dlocal if your debugger can't find static symbols */
++
++typedef unsigned char uch;
++typedef uch FAR uchf;
++typedef unsigned short ush;
++typedef ush FAR ushf;
++typedef unsigned long ulg;
++
++extern const char *z_errmsg[10]; /* indexed by 2-zlib_error */
++/* (size given to avoid silly warnings with Visual C++) */
++
++#define ERR_MSG(err) z_errmsg[Z_NEED_DICT-(err)]
++
++#define ERR_RETURN(strm,err) \
++ return (strm-&gt;msg = (char*)ERR_MSG(err), (err))
++/* To be used only when the state is known to be valid */
++
++ /* common constants */
++
++#ifndef DEF_WBITS
++# define DEF_WBITS MAX_WBITS
++#endif
++/* default windowBits for decompression. MAX_WBITS is for compression only */
++
++#if MAX_MEM_LEVEL &gt;= 8
++# define DEF_MEM_LEVEL 8
++#else
++# define DEF_MEM_LEVEL MAX_MEM_LEVEL
++#endif
++/* default memLevel */
++
++#define STORED_BLOCK 0
++#define STATIC_TREES 1
++#define DYN_TREES 2
++/* The three kinds of block type */
++
++#define MIN_MATCH 3
++#define MAX_MATCH 258
++/* The minimum and maximum match lengths */
++
++#define PRESET_DICT 0x20 /* preset dictionary flag in zlib header */
++
++ /* target dependencies */
++
++#ifdef MSDOS
++# define OS_CODE 0x00
++# ifdef __TURBOC__
++# include &lt;alloc.h&gt;
++# else /* MSC or DJGPP */
++# include &lt;malloc.h&gt;
++# endif
++#endif
++
++#ifdef OS2
++# define OS_CODE 0x06
++#endif
++
++#ifdef WIN32 /* Window 95 &amp; Windows NT */
++# define OS_CODE 0x0b
++#endif
++
++#if defined(VAXC) || defined(VMS)
++# define OS_CODE 0x02
++# define FOPEN(name, mode) \
++ fopen((name), (mode), &quot;mbc=60&quot;, &quot;ctx=stm&quot;, &quot;rfm=fix&quot;, &quot;mrs=512&quot;)
++#endif
++
++#ifdef AMIGA
++# define OS_CODE 0x01
++#endif
++
++#if defined(ATARI) || defined(atarist)
++# define OS_CODE 0x05
++#endif
++
++#ifdef MACOS
++# define OS_CODE 0x07
++#endif
++
++#ifdef __50SERIES /* Prime/PRIMOS */
++# define OS_CODE 0x0F
++#endif
++
++#ifdef TOPS20
++# define OS_CODE 0x0a
++#endif
++
++#if defined(_BEOS_) || defined(RISCOS)
++# define fdopen(fd,mode) NULL /* No fdopen() */
++#endif
++
++ /* Common defaults */
++
++#ifndef OS_CODE
++# define OS_CODE 0x03 /* assume Unix */
++#endif
++
++#ifndef FOPEN
++# define FOPEN(name, mode) fopen((name), (mode))
++#endif
++
++ /* functions */
++
++#ifdef HAVE_STRERROR
++ extern char *strerror OF((int));
++# define zstrerror(errnum) strerror(errnum)
++#else
++# define zstrerror(errnum) &quot;&quot;
++#endif
++
++#if defined(pyr)
++# define NO_MEMCPY
++#endif
++#if (defined(M_I86SM) || defined(M_I86MM)) &amp;&amp; !defined(_MSC_VER)
++ /* Use our own functions for small and medium model with MSC &lt;= 5.0.
++ * You may have to use the same strategy for Borland C (untested).
++ */
++# define NO_MEMCPY
++#endif
++#if defined(STDC) &amp;&amp; !defined(HAVE_MEMCPY) &amp;&amp; !defined(NO_MEMCPY)
++# define HAVE_MEMCPY
++#endif
++#ifdef HAVE_MEMCPY
++# ifdef SMALL_MEDIUM /* MSDOS small or medium model */
++# define zmemcpy _fmemcpy
++# define zmemcmp _fmemcmp
++# define zmemzero(dest, len) _fmemset(dest, 0, len)
++# else
++# define zmemcpy memcpy
++# define zmemcmp memcmp
++# define zmemzero(dest, len) memset(dest, 0, len)
++# endif
++#else
++ extern void zmemcpy OF((Bytef* dest, Bytef* source, uInt len));
++ extern int zmemcmp OF((Bytef* s1, Bytef* s2, uInt len));
++ extern void zmemzero OF((Bytef* dest, uInt len));
++#endif
++
++/* Diagnostic functions */
++#ifdef DEBUG_ZLIB
++# include &lt;stdio.h&gt;
++# ifndef verbose
++# define verbose 0
++# endif
++ extern void z_error OF((char *m));
++# define Assert(cond,msg) {if(!(cond)) z_error(msg);}
++# define Trace(x) fprintf x
++# define Tracev(x) {if (verbose) fprintf x ;}
++# define Tracevv(x) {if (verbose&gt;1) fprintf x ;}
++# define Tracec(c,x) {if (verbose &amp;&amp; (c)) fprintf x ;}
++# define Tracecv(c,x) {if (verbose&gt;1 &amp;&amp; (c)) fprintf x ;}
++#else
++# define Assert(cond,msg)
++# define Trace(x)
++# define Tracev(x)
++# define Tracevv(x)
++# define Tracec(c,x)
++# define Tracecv(c,x)
++#endif
++
++
++typedef uLong (*check_func) OF((uLong check, const Bytef *buf, uInt len));
++
++voidpf zcalloc OF((voidpf opaque, unsigned items, unsigned size));
++void zcfree OF((voidpf opaque, voidpf ptr));
++
++#define ZALLOC(strm, items, size) \
++ (*((strm)-&gt;zalloc))((strm)-&gt;opaque, (items), (size))
++#define ZFREE(strm, addr) (*((strm)-&gt;zfree))((strm)-&gt;opaque, (voidpf)(addr))
++#define TRY_FREE(s, p) {if (p) ZFREE(s, p);}
++
++#endif /* _Z_UTIL_H */
++/* --- zutil.h */
++
++/* +++ deflate.h */
++/* deflate.h -- internal compression state
++ * Copyright (C) 1995-1996 Jean-loup Gailly
++ * For conditions of distribution and use, see copyright notice in zlib.h
++ */
++
++/* WARNING: this file should *not* be used by applications. It is
++ part of the implementation of the compression library and is
++ subject to change. Applications should only use zlib.h.
++ */
++
++/* From: deflate.h,v 1.10 1996/07/02 12:41:00 me Exp $ */
++
++#ifndef _DEFLATE_H
++#define _DEFLATE_H
++
++/* #include &quot;zutil.h&quot; */
++
++/* ===========================================================================
++ * Internal compression state.
++ */
++
++#define LENGTH_CODES 29
++/* number of length codes, not counting the special END_BLOCK code */
++
++#define LITERALS 256
++/* number of literal bytes 0..255 */
++
++#define L_CODES (LITERALS+1+LENGTH_CODES)
++/* number of Literal or Length codes, including the END_BLOCK code */
++
++#define D_CODES 30
++/* number of distance codes */
++
++#define BL_CODES 19
++/* number of codes used to transfer the bit lengths */
++
++#define HEAP_SIZE (2*L_CODES+1)
++/* maximum heap size */
++
++#define MAX_BITS 15
++/* All codes must not exceed MAX_BITS bits */
++
++#define INIT_STATE 42
++#define BUSY_STATE 113
++#define FINISH_STATE 666
++/* Stream status */
++
++
++/* Data structure describing a single value and its code string. */
++typedef struct ct_data_s {
++ union {
++ ush freq; /* frequency count */
++ ush code; /* bit string */
++ } fc;
++ union {
++ ush dad; /* father node in Huffman tree */
++ ush len; /* length of bit string */
++ } dl;
++} FAR ct_data;
++
++#define Freq fc.freq
++#define Code fc.code
++#define Dad dl.dad
++#define Len dl.len
++
++typedef struct static_tree_desc_s static_tree_desc;
++
++typedef struct tree_desc_s {
++ ct_data *dyn_tree; /* the dynamic tree */
++ int max_code; /* largest code with non zero frequency */
++ static_tree_desc *stat_desc; /* the corresponding static tree */
++} FAR tree_desc;
++
++typedef ush Pos;
++typedef Pos FAR Posf;
++typedef unsigned IPos;
++
++/* A Pos is an index in the character window. We use short instead of int to
++ * save space in the various tables. IPos is used only for parameter passing.
++ */
++
++typedef struct deflate_state {
++ z_streamp strm; /* pointer back to this zlib stream */
++ int status; /* as the name implies */
++ Bytef *pending_buf; /* output still pending */
++ ulg pending_buf_size; /* size of pending_buf */
++ Bytef *pending_out; /* next pending byte to output to the stream */
++ int pending; /* nb of bytes in the pending buffer */
++ int noheader; /* suppress zlib header and adler32 */
++ Byte data_type; /* UNKNOWN, BINARY or ASCII */
++ Byte method; /* STORED (for zip only) or DEFLATED */
++ int last_flush; /* value of flush param for previous deflate call */
++
++ /* used by deflate.c: */
++
++ uInt w_size; /* LZ77 window size (32K by default) */
++ uInt w_bits; /* log2(w_size) (8..16) */
++ uInt w_mask; /* w_size - 1 */
++
++ Bytef *window;
++ /* Sliding window. Input bytes are read into the second half of the window,
++ * and move to the first half later to keep a dictionary of at least wSize
++ * bytes. With this organization, matches are limited to a distance of
++ * wSize-MAX_MATCH bytes, but this ensures that IO is always
++ * performed with a length multiple of the block size. Also, it limits
++ * the window size to 64K, which is quite useful on MSDOS.
++ * To do: use the user input buffer as sliding window.
++ */
++
++ ulg window_size;
++ /* Actual size of window: 2*wSize, except when the user input buffer
++ * is directly used as sliding window.
++ */
++
++ Posf *prev;
++ /* Link to older string with same hash index. To limit the size of this
++ * array to 64K, this link is maintained only for the last 32K strings.
++ * An index in this array is thus a window index modulo 32K.
++ */
++
++ Posf *head; /* Heads of the hash chains or NIL. */
++
++ uInt ins_h; /* hash index of string to be inserted */
++ uInt hash_size; /* number of elements in hash table */
++ uInt hash_bits; /* log2(hash_size) */
++ uInt hash_mask; /* hash_size-1 */
++
++ uInt hash_shift;
++ /* Number of bits by which ins_h must be shifted at each input
++ * step. It must be such that after MIN_MATCH steps, the oldest
++ * byte no longer takes part in the hash key, that is:
++ * hash_shift * MIN_MATCH &gt;= hash_bits
++ */
++
++ long block_start;
++ /* Window position at the beginning of the current output block. Gets
++ * negative when the window is moved backwards.
++ */
++
++ uInt match_length; /* length of best match */
++ IPos prev_match; /* previous match */
++ int match_available; /* set if previous match exists */
++ uInt strstart; /* start of string to insert */
++ uInt match_start; /* start of matching string */
++ uInt lookahead; /* number of valid bytes ahead in window */
++
++ uInt prev_length;
++ /* Length of the best match at previous step. Matches not greater than this
++ * are discarded. This is used in the lazy match evaluation.
++ */
++
++ uInt max_chain_length;
++ /* To speed up deflation, hash chains are never searched beyond this
++ * length. A higher limit improves compression ratio but degrades the
++ * speed.
++ */
++
++ uInt max_lazy_match;
++ /* Attempt to find a better match only when the current match is strictly
++ * smaller than this value. This mechanism is used only for compression
++ * levels &gt;= 4.
++ */
++# define max_insert_length max_lazy_match
++ /* Insert new strings in the hash table only if the match length is not
++ * greater than this length. This saves time but degrades compression.
++ * max_insert_length is used only for compression levels &lt;= 3.
++ */
++
++ int level; /* compression level (1..9) */
++ int strategy; /* favor or force Huffman coding*/
++
++ uInt good_match;
++ /* Use a faster search when the previous match is longer than this */
++
++ int nice_match; /* Stop searching when current match exceeds this */
++
++ /* used by trees.c: */
++ /* Didn't use ct_data typedef below to supress compiler warning */
++ struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */
++ struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */
++ struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */
++
++ struct tree_desc_s l_desc; /* desc. for literal tree */
++ struct tree_desc_s d_desc; /* desc. for distance tree */
++ struct tree_desc_s bl_desc; /* desc. for bit length tree */
++
++ ush bl_count[MAX_BITS+1];
++ /* number of codes at each bit length for an optimal tree */
++
++ int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */
++ int heap_len; /* number of elements in the heap */
++ int heap_max; /* element of largest frequency */
++ /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.
++ * The same heap array is used to build all trees.
++ */
++
++ uch depth[2*L_CODES+1];
++ /* Depth of each subtree used as tie breaker for trees of equal frequency
++ */
++
++ uchf *l_buf; /* buffer for literals or lengths */
++
++ uInt lit_bufsize;
++ /* Size of match buffer for literals/lengths. There are 4 reasons for
++ * limiting lit_bufsize to 64K:
++ * - frequencies can be kept in 16 bit counters
++ * - if compression is not successful for the first block, all input
++ * data is still in the window so we can still emit a stored block even
++ * when input comes from standard input. (This can also be done for
++ * all blocks if lit_bufsize is not greater than 32K.)
++ * - if compression is not successful for a file smaller than 64K, we can
++ * even emit a stored file instead of a stored block (saving 5 bytes).
++ * This is applicable only for zip (not gzip or zlib).
++ * - creating new Huffman trees less frequently may not provide fast
++ * adaptation to changes in the input data statistics. (Take for
++ * example a binary file with poorly compressible code followed by
++ * a highly compressible string table.) Smaller buffer sizes give
++ * fast adaptation but have of course the overhead of transmitting
++ * trees more frequently.
++ * - I can't count above 4
++ */
++
++ uInt last_lit; /* running index in l_buf */
++
++ ushf *d_buf;
++ /* Buffer for distances. To simplify the code, d_buf and l_buf have
++ * the same number of elements. To use different lengths, an extra flag
++ * array would be necessary.
++ */
++
++ ulg opt_len; /* bit length of current block with optimal trees */
++ ulg static_len; /* bit length of current block with static trees */
++ ulg compressed_len; /* total bit length of compressed file */
++ uInt matches; /* number of string matches in current block */
++ int last_eob_len; /* bit length of EOB code for last block */
++
++#ifdef DEBUG_ZLIB
++ ulg bits_sent; /* bit length of the compressed data */
++#endif
++
++ ush bi_buf;
++ /* Output buffer. bits are inserted starting at the bottom (least
++ * significant bits).
++ */
++ int bi_valid;
++ /* Number of valid bits in bi_buf. All bits above the last valid bit
++ * are always zero.
++ */
++
++} FAR deflate_state;
++
++/* Output a byte on the stream.
++ * IN assertion: there is enough room in pending_buf.
++ */
++#define put_byte(s, c) {s-&gt;pending_buf[s-&gt;pending++] = (c);}
++
++
++#define MIN_LOOKAHEAD (MAX_MATCH+MIN_MATCH+1)
++/* Minimum amount of lookahead, except at the end of the input file.
++ * See deflate.c for comments about the MIN_MATCH+1.
++ */
++
++#define MAX_DIST(s) ((s)-&gt;w_size-MIN_LOOKAHEAD)
++/* In order to simplify the code, particularly on 16 bit machines, match
++ * distances are limited to MAX_DIST instead of WSIZE.
++ */
++
++ /* in trees.c */
++void _tr_init OF((deflate_state *s));
++int _tr_tally OF((deflate_state *s, unsigned dist, unsigned lc));
++ulg _tr_flush_block OF((deflate_state *s, charf *buf, ulg stored_len,
++ int eof));
++void _tr_align OF((deflate_state *s));
++void _tr_stored_block OF((deflate_state *s, charf *buf, ulg stored_len,
++ int eof));
++void _tr_stored_type_only OF((deflate_state *));
++
++#endif
++/* --- deflate.h */
++
++/* +++ deflate.c */
++/* deflate.c -- compress data using the deflation algorithm
++ * Copyright (C) 1995-1996 Jean-loup Gailly.
++ * For conditions of distribution and use, see copyright notice in zlib.h
++ */
++
++/*
++ * ALGORITHM
++ *
++ * The &quot;deflation&quot; process depends on being able to identify portions
++ * of the input text which are identical to earlier input (within a
++ * sliding window trailing behind the input currently being processed).
++ *
++ * The most straightforward technique turns out to be the fastest for
++ * most input files: try all possible matches and select the longest.
++ * The key feature of this algorithm is that insertions into the string
++ * dictionary are very simple and thus fast, and deletions are avoided
++ * completely. Insertions are performed at each input character, whereas
++ * string matches are performed only when the previous match ends. So it
++ * is preferable to spend more time in matches to allow very fast string
++ * insertions and avoid deletions. The matching algorithm for small
++ * strings is inspired from that of Rabin &amp; Karp. A brute force approach
++ * is used to find longer strings when a small match has been found.
++ * A similar algorithm is used in comic (by Jan-Mark Wams) and freeze
++ * (by Leonid Broukhis).
++ * A previous version of this file used a more sophisticated algorithm
++ * (by Fiala and Greene) which is guaranteed to run in linear amortized
++ * time, but has a larger average cost, uses more memory and is patented.
++ * However the F&amp;G algorithm may be faster for some highly redundant
++ * files if the parameter max_chain_length (described below) is too large.
++ *
++ * ACKNOWLEDGEMENTS
++ *
++ * The idea of lazy evaluation of matches is due to Jan-Mark Wams, and
++ * I found it in 'freeze' written by Leonid Broukhis.
++ * Thanks to many people for bug reports and testing.
++ *
++ * REFERENCES
++ *
++ * Deutsch, L.P.,&quot;DEFLATE Compressed Data Format Specification&quot;.
++ * Available in ftp://ds.internic.net/rfc/rfc1951.txt
++ *
++ * A description of the Rabin and Karp algorithm is given in the book
++ * &quot;Algorithms&quot; by R. Sedgewick, Addison-Wesley, p252.
++ *
++ * Fiala,E.R., and Greene,D.H.
++ * Data Compression with Finite Windows, Comm.ACM, 32,4 (1989) 490-595
++ *
++ */
++
++/* From: deflate.c,v 1.15 1996/07/24 13:40:58 me Exp $ */
++
++/* #include &quot;deflate.h&quot; */
++
++char deflate_copyright[] = &quot; deflate 1.0.4 Copyright 1995-1996 Jean-loup Gailly &quot;;
++/*
++ If you use the zlib library in a product, an acknowledgment is welcome
++ in the documentation of your product. If for some reason you cannot
++ include such an acknowledgment, I would appreciate that you keep this
++ copyright string in the executable of your product.
++ */
++
++/* ===========================================================================
++ * Function prototypes.
++ */
++typedef enum {
++ need_more, /* block not completed, need more input or more output */
++ block_done, /* block flush performed */
++ finish_started, /* finish started, need only more output at next deflate */
++ finish_done /* finish done, accept no more input or output */
++} block_state;
++
++typedef block_state (*compress_func) OF((deflate_state *s, int flush));
++/* Compression function. Returns the block state after the call. */
++
++local void fill_window OF((deflate_state *s));
++local block_state deflate_stored OF((deflate_state *s, int flush));
++local block_state deflate_fast OF((deflate_state *s, int flush));
++local block_state deflate_slow OF((deflate_state *s, int flush));
++local void lm_init OF((deflate_state *s));
++local void putShortMSB OF((deflate_state *s, uInt b));
++local void flush_pending OF((z_streamp strm));
++local int read_buf OF((z_streamp strm, charf *buf, unsigned size));
++#ifdef ASMV
++ void match_init OF((void)); /* asm code initialization */
++ uInt longest_match OF((deflate_state *s, IPos cur_match));
++#else
++local uInt longest_match OF((deflate_state *s, IPos cur_match));
++#endif
++
++#ifdef DEBUG_ZLIB
++local void check_match OF((deflate_state *s, IPos start, IPos match,
++ int length));
++#endif
++
++/* ===========================================================================
++ * Local data
++ */
++
++#define NIL 0
++/* Tail of hash chains */
++
++#ifndef TOO_FAR
++# define TOO_FAR 4096
++#endif
++/* Matches of length 3 are discarded if their distance exceeds TOO_FAR */
++
++#define MIN_LOOKAHEAD (MAX_MATCH+MIN_MATCH+1)
++/* Minimum amount of lookahead, except at the end of the input file.
++ * See deflate.c for comments about the MIN_MATCH+1.
++ */
++
++/* Values for max_lazy_match, good_match and max_chain_length, depending on
++ * the desired pack level (0..9). The values given below have been tuned to
++ * exclude worst case performance for pathological files. Better values may be
++ * found for specific files.
++ */
++typedef struct config_s {
++ ush good_length; /* reduce lazy search above this match length */
++ ush max_lazy; /* do not perform lazy search above this match length */
++ ush nice_length; /* quit search above this match length */
++ ush max_chain;
++ compress_func func;
++} config;
++
++local config configuration_table[10] = {
++/* good lazy nice chain */
++/* 0 */ {0, 0, 0, 0, deflate_stored}, /* store only */
++/* 1 */ {4, 4, 8, 4, deflate_fast}, /* maximum speed, no lazy matches */
++/* 2 */ {4, 5, 16, 8, deflate_fast},
++/* 3 */ {4, 6, 32, 32, deflate_fast},
++
++/* 4 */ {4, 4, 16, 16, deflate_slow}, /* lazy matches */
++/* 5 */ {8, 16, 32, 32, deflate_slow},
++/* 6 */ {8, 16, 128, 128, deflate_slow},
++/* 7 */ {8, 32, 128, 256, deflate_slow},
++/* 8 */ {32, 128, 258, 1024, deflate_slow},
++/* 9 */ {32, 258, 258, 4096, deflate_slow}}; /* maximum compression */
++
++/* Note: the deflate() code requires max_lazy &gt;= MIN_MATCH and max_chain &gt;= 4
++ * For deflate_fast() (levels &lt;= 3) good is ignored and lazy has a different
++ * meaning.
++ */
++
++#define EQUAL 0
++/* result of memcmp for equal strings */
++
++#ifndef NO_DUMMY_DECL
++struct static_tree_desc_s {int dummy;}; /* for buggy compilers */
++#endif
++
++/* ===========================================================================
++ * Update a hash value with the given input byte
++ * IN assertion: all calls to to UPDATE_HASH are made with consecutive
++ * input characters, so that a running hash key can be computed from the
++ * previous key instead of complete recalculation each time.
++ */
++#define UPDATE_HASH(s,h,c) (h = (((h)&lt;&lt;s-&gt;hash_shift) ^ (c)) &amp; s-&gt;hash_mask)
++
++
++/* ===========================================================================
++ * Insert string str in the dictionary and set match_head to the previous head
++ * of the hash chain (the most recent string with same hash key). Return
++ * the previous length of the hash chain.
++ * IN assertion: all calls to to INSERT_STRING are made with consecutive
++ * input characters and the first MIN_MATCH bytes of str are valid
++ * (except for the last MIN_MATCH-1 bytes of the input file).
++ */
++#define INSERT_STRING(s, str, match_head) \
++ (UPDATE_HASH(s, s-&gt;ins_h, s-&gt;window[(str) + (MIN_MATCH-1)]), \
++ s-&gt;prev[(str) &amp; s-&gt;w_mask] = match_head = s-&gt;head[s-&gt;ins_h], \
++ s-&gt;head[s-&gt;ins_h] = (Pos)(str))
++
++/* ===========================================================================
++ * Initialize the hash table (avoiding 64K overflow for 16 bit systems).
++ * prev[] will be initialized on the fly.
++ */
++#define CLEAR_HASH(s) \
++ s-&gt;head[s-&gt;hash_size-1] = NIL; \
++ zmemzero((charf *)s-&gt;head, (unsigned)(s-&gt;hash_size-1)*sizeof(*s-&gt;head));
++
++/* ========================================================================= */
++int deflateInit_(strm, level, version, stream_size)
++ z_streamp strm;
++ int level;
++ const char *version;
++ int stream_size;
++{
++ return deflateInit2_(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL,
++ Z_DEFAULT_STRATEGY, version, stream_size);
++ /* To do: ignore strm-&gt;next_in if we use it as window */
++}
++
++/* ========================================================================= */
++int deflateInit2_(strm, level, method, windowBits, memLevel, strategy,
++ version, stream_size)
++ z_streamp strm;
++ int level;
++ int method;
++ int windowBits;
++ int memLevel;
++ int strategy;
++ const char *version;
++ int stream_size;
++{
++ deflate_state *s;
++ int noheader = 0;
++ static char* my_version = ZLIB_VERSION;
++
++ ushf *overlay;
++ /* We overlay pending_buf and d_buf+l_buf. This works since the average
++ * output size for (length,distance) codes is &lt;= 24 bits.
++ */
++
++ if (version == Z_NULL || version[0] != my_version[0] ||
++ stream_size != sizeof(z_stream)) {
++ return Z_VERSION_ERROR;
++ }
++ if (strm == Z_NULL) return Z_STREAM_ERROR;
++
++ strm-&gt;msg = Z_NULL;
++#ifndef NO_ZCFUNCS
++ if (strm-&gt;zalloc == Z_NULL) {
++ strm-&gt;zalloc = zcalloc;
++ strm-&gt;opaque = (voidpf)0;
++ }
++ if (strm-&gt;zfree == Z_NULL) strm-&gt;zfree = zcfree;
++#endif
++
++ if (level == Z_DEFAULT_COMPRESSION) level = 6;
++
++ if (windowBits &lt; 0) { /* undocumented feature: suppress zlib header */
++ noheader = 1;
++ windowBits = -windowBits;
++ }
++ if (memLevel &lt; 1 || memLevel &gt; MAX_MEM_LEVEL || method != Z_DEFLATED ||
++ windowBits &lt; 8 || windowBits &gt; 15 || level &lt; 0 || level &gt; 9 ||
++ strategy &lt; 0 || strategy &gt; Z_HUFFMAN_ONLY) {
++ return Z_STREAM_ERROR;
++ }
++ s = (deflate_state *) ZALLOC(strm, 1, sizeof(deflate_state));
++ if (s == Z_NULL) return Z_MEM_ERROR;
++ strm-&gt;state = (struct internal_state FAR *)s;
++ s-&gt;strm = strm;
++
++ s-&gt;noheader = noheader;
++ s-&gt;w_bits = windowBits;
++ s-&gt;w_size = 1 &lt;&lt; s-&gt;w_bits;
++ s-&gt;w_mask = s-&gt;w_size - 1;
++
++ s-&gt;hash_bits = memLevel + 7;
++ s-&gt;hash_size = 1 &lt;&lt; s-&gt;hash_bits;
++ s-&gt;hash_mask = s-&gt;hash_size - 1;
++ s-&gt;hash_shift = ((s-&gt;hash_bits+MIN_MATCH-1)/MIN_MATCH);
++
++ s-&gt;window = (Bytef *) ZALLOC(strm, s-&gt;w_size, 2*sizeof(Byte));
++ s-&gt;prev = (Posf *) ZALLOC(strm, s-&gt;w_size, sizeof(Pos));
++ s-&gt;head = (Posf *) ZALLOC(strm, s-&gt;hash_size, sizeof(Pos));
++
++ s-&gt;lit_bufsize = 1 &lt;&lt; (memLevel + 6); /* 16K elements by default */
++
++ overlay = (ushf *) ZALLOC(strm, s-&gt;lit_bufsize, sizeof(ush)+2);
++ s-&gt;pending_buf = (uchf *) overlay;
++ s-&gt;pending_buf_size = (ulg)s-&gt;lit_bufsize * (sizeof(ush)+2L);
++
++ if (s-&gt;window == Z_NULL || s-&gt;prev == Z_NULL || s-&gt;head == Z_NULL ||
++ s-&gt;pending_buf == Z_NULL) {
++ strm-&gt;msg = (char*)ERR_MSG(Z_MEM_ERROR);
++ deflateEnd (strm);
++ return Z_MEM_ERROR;
++ }
++ s-&gt;d_buf = overlay + s-&gt;lit_bufsize/sizeof(ush);
++ s-&gt;l_buf = s-&gt;pending_buf + (1+sizeof(ush))*s-&gt;lit_bufsize;
++
++ s-&gt;level = level;
++ s-&gt;strategy = strategy;
++ s-&gt;method = (Byte)method;
++
++ return deflateReset(strm);
++}
++
++/* ========================================================================= */
++int deflateSetDictionary (strm, dictionary, dictLength)
++ z_streamp strm;
++ const Bytef *dictionary;
++ uInt dictLength;
++{
++ deflate_state *s;
++ uInt length = dictLength;
++ uInt n;
++ IPos hash_head = 0;
++
++ if (strm == Z_NULL || strm-&gt;state == Z_NULL || dictionary == Z_NULL)
++ return Z_STREAM_ERROR;
++
++ s = (deflate_state *) strm-&gt;state;
++ if (s-&gt;status != INIT_STATE) return Z_STREAM_ERROR;
++
++ strm-&gt;adler = adler32(strm-&gt;adler, dictionary, dictLength);
++
++ if (length &lt; MIN_MATCH) return Z_OK;
++ if (length &gt; MAX_DIST(s)) {
++ length = MAX_DIST(s);
++#ifndef USE_DICT_HEAD
++ dictionary += dictLength - length; /* use the tail of the dictionary */
++#endif
++ }
++ zmemcpy((charf *)s-&gt;window, dictionary, length);
++ s-&gt;strstart = length;
++ s-&gt;block_start = (long)length;
++
++ /* Insert all strings in the hash table (except for the last two bytes).
++ * s-&gt;lookahead stays null, so s-&gt;ins_h will be recomputed at the next
++ * call of fill_window.
++ */
++ s-&gt;ins_h = s-&gt;window[0];
++ UPDATE_HASH(s, s-&gt;ins_h, s-&gt;window[1]);
++ for (n = 0; n &lt;= length - MIN_MATCH; n++) {
++ INSERT_STRING(s, n, hash_head);
++ }
++ if (hash_head) hash_head = 0; /* to make compiler happy */
++ return Z_OK;
++}
++
++/* ========================================================================= */
++int deflateReset (strm)
++ z_streamp strm;
++{
++ deflate_state *s;
++
++ if (strm == Z_NULL || strm-&gt;state == Z_NULL ||
++ strm-&gt;zalloc == Z_NULL || strm-&gt;zfree == Z_NULL) return Z_STREAM_ERROR;
++
++ strm-&gt;total_in = strm-&gt;total_out = 0;
++ strm-&gt;msg = Z_NULL; /* use zfree if we ever allocate msg dynamically */
++ strm-&gt;data_type = Z_UNKNOWN;
++
++ s = (deflate_state *)strm-&gt;state;
++ s-&gt;pending = 0;
++ s-&gt;pending_out = s-&gt;pending_buf;
++
++ if (s-&gt;noheader &lt; 0) {
++ s-&gt;noheader = 0; /* was set to -1 by deflate(..., Z_FINISH); */
++ }
++ s-&gt;status = s-&gt;noheader ? BUSY_STATE : INIT_STATE;
++ strm-&gt;adler = 1;
++ s-&gt;last_flush = Z_NO_FLUSH;
++
++ _tr_init(s);
++ lm_init(s);
++
++ return Z_OK;
++}
++
++/* ========================================================================= */
++int deflateParams(strm, level, strategy)
++ z_streamp strm;
++ int level;
++ int strategy;
++{
++ deflate_state *s;
++ compress_func func;
++ int err = Z_OK;
++
++ if (strm == Z_NULL || strm-&gt;state == Z_NULL) return Z_STREAM_ERROR;
++ s = (deflate_state *) strm-&gt;state;
++
++ if (level == Z_DEFAULT_COMPRESSION) {
++ level = 6;
++ }
++ if (level &lt; 0 || level &gt; 9 || strategy &lt; 0 || strategy &gt; Z_HUFFMAN_ONLY) {
++ return Z_STREAM_ERROR;
++ }
++ func = configuration_table[s-&gt;level].func;
++
++ if (func != configuration_table[level].func &amp;&amp; strm-&gt;total_in != 0) {
++ /* Flush the last buffer: */
++ err = deflate(strm, Z_PARTIAL_FLUSH);
++ }
++ if (s-&gt;level != level) {
++ s-&gt;level = level;
++ s-&gt;max_lazy_match = configuration_table[level].max_lazy;
++ s-&gt;good_match = configuration_table[level].good_length;
++ s-&gt;nice_match = configuration_table[level].nice_length;
++ s-&gt;max_chain_length = configuration_table[level].max_chain;
++ }
++ s-&gt;strategy = strategy;
++ return err;
++}
++
++/* =========================================================================
++ * Put a short in the pending buffer. The 16-bit value is put in MSB order.
++ * IN assertion: the stream state is correct and there is enough room in
++ * pending_buf.
++ */
++local void putShortMSB (s, b)
++ deflate_state *s;
++ uInt b;
++{
++ put_byte(s, (Byte)(b &gt;&gt; 8));
++ put_byte(s, (Byte)(b &amp; 0xff));
++}
++
++/* =========================================================================
++ * Flush as much pending output as possible. All deflate() output goes
++ * through this function so some applications may wish to modify it
++ * to avoid allocating a large strm-&gt;next_out buffer and copying into it.
++ * (See also read_buf()).
++ */
++local void flush_pending(strm)
++ z_streamp strm;
++{
++ deflate_state *s = (deflate_state *) strm-&gt;state;
++ unsigned len = s-&gt;pending;
++
++ if (len &gt; strm-&gt;avail_out) len = strm-&gt;avail_out;
++ if (len == 0) return;
++
++ if (strm-&gt;next_out != Z_NULL) {
++ zmemcpy(strm-&gt;next_out, s-&gt;pending_out, len);
++ strm-&gt;next_out += len;
++ }
++ s-&gt;pending_out += len;
++ strm-&gt;total_out += len;
++ strm-&gt;avail_out -= len;
++ s-&gt;pending -= len;
++ if (s-&gt;pending == 0) {
++ s-&gt;pending_out = s-&gt;pending_buf;
++ }
++}
++
++/* ========================================================================= */
++int deflate (strm, flush)
++ z_streamp strm;
++ int flush;
++{
++ int old_flush; /* value of flush param for previous deflate call */
++ deflate_state *s;
++
++ if (strm == Z_NULL || strm-&gt;state == Z_NULL ||
++ flush &gt; Z_FINISH || flush &lt; 0) {
++ return Z_STREAM_ERROR;
++ }
++ s = (deflate_state *) strm-&gt;state;
++
++ if ((strm-&gt;next_in == Z_NULL &amp;&amp; strm-&gt;avail_in != 0) ||
++ (s-&gt;status == FINISH_STATE &amp;&amp; flush != Z_FINISH)) {
++ ERR_RETURN(strm, Z_STREAM_ERROR);
++ }
++ if (strm-&gt;avail_out == 0) ERR_RETURN(strm, Z_BUF_ERROR);
++
++ s-&gt;strm = strm; /* just in case */
++ old_flush = s-&gt;last_flush;
++ s-&gt;last_flush = flush;
++
++ /* Write the zlib header */
++ if (s-&gt;status == INIT_STATE) {
++
++ uInt header = (Z_DEFLATED + ((s-&gt;w_bits-8)&lt;&lt;4)) &lt;&lt; 8;
++ uInt level_flags = (s-&gt;level-1) &gt;&gt; 1;
++
++ if (level_flags &gt; 3) level_flags = 3;
++ header |= (level_flags &lt;&lt; 6);
++ if (s-&gt;strstart != 0) header |= PRESET_DICT;
++ header += 31 - (header % 31);
++
++ s-&gt;status = BUSY_STATE;
++ putShortMSB(s, header);
++
++ /* Save the adler32 of the preset dictionary: */
++ if (s-&gt;strstart != 0) {
++ putShortMSB(s, (uInt)(strm-&gt;adler &gt;&gt; 16));
++ putShortMSB(s, (uInt)(strm-&gt;adler &amp; 0xffff));
++ }
++ strm-&gt;adler = 1L;
++ }
++
++ /* Flush as much pending output as possible */
++ if (s-&gt;pending != 0) {
++ flush_pending(strm);
++ if (strm-&gt;avail_out == 0) {
++ /* Since avail_out is 0, deflate will be called again with
++ * more output space, but possibly with both pending and
++ * avail_in equal to zero. There won't be anything to do,
++ * but this is not an error situation so make sure we
++ * return OK instead of BUF_ERROR at next call of deflate:
++ */
++ s-&gt;last_flush = -1;
++ return Z_OK;
++ }
++
++ /* Make sure there is something to do and avoid duplicate consecutive
++ * flushes. For repeated and useless calls with Z_FINISH, we keep
++ * returning Z_STREAM_END instead of Z_BUFF_ERROR.
++ */
++ } else if (strm-&gt;avail_in == 0 &amp;&amp; flush &lt;= old_flush &amp;&amp;
++ flush != Z_FINISH) {
++ ERR_RETURN(strm, Z_BUF_ERROR);
++ }
++
++ /* User must not provide more input after the first FINISH: */
++ if (s-&gt;status == FINISH_STATE &amp;&amp; strm-&gt;avail_in != 0) {
++ ERR_RETURN(strm, Z_BUF_ERROR);
++ }
++
++ /* Start a new block or continue the current one.
++ */
++ if (strm-&gt;avail_in != 0 || s-&gt;lookahead != 0 ||
++ (flush != Z_NO_FLUSH &amp;&amp; s-&gt;status != FINISH_STATE)) {
++ block_state bstate;
++
++ bstate = (*(configuration_table[s-&gt;level].func))(s, flush);
++
++ if (bstate == finish_started || bstate == finish_done) {
++ s-&gt;status = FINISH_STATE;
++ }
++ if (bstate == need_more || bstate == finish_started) {
++ if (strm-&gt;avail_out == 0) {
++ s-&gt;last_flush = -1; /* avoid BUF_ERROR next call, see above */
++ }
++ return Z_OK;
++ /* If flush != Z_NO_FLUSH &amp;&amp; avail_out == 0, the next call
++ * of deflate should use the same flush parameter to make sure
++ * that the flush is complete. So we don't have to output an
++ * empty block here, this will be done at next call. This also
++ * ensures that for a very small output buffer, we emit at most
++ * one empty block.
++ */
++ }
++ if (bstate == block_done) {
++ if (flush == Z_PARTIAL_FLUSH) {
++ _tr_align(s);
++ } else if (flush == Z_PACKET_FLUSH) {
++ /* Output just the 3-bit `stored' block type value,
++ but not a zero length. */
++ _tr_stored_type_only(s);
++ } else { /* FULL_FLUSH or SYNC_FLUSH */
++ _tr_stored_block(s, (char*)0, 0L, 0);
++ /* For a full flush, this empty block will be recognized
++ * as a special marker by inflate_sync().
++ */
++ if (flush == Z_FULL_FLUSH) {
++ CLEAR_HASH(s); /* forget history */
++ }
++ }
++ flush_pending(strm);
++ if (strm-&gt;avail_out == 0) {
++ s-&gt;last_flush = -1; /* avoid BUF_ERROR at next call, see above */
++ return Z_OK;
++ }
++ }
++ }
++ Assert(strm-&gt;avail_out &gt; 0, &quot;bug2&quot;);
++
++ if (flush != Z_FINISH) return Z_OK;
++ if (s-&gt;noheader) return Z_STREAM_END;
++
++ /* Write the zlib trailer (adler32) */
++ putShortMSB(s, (uInt)(strm-&gt;adler &gt;&gt; 16));
++ putShortMSB(s, (uInt)(strm-&gt;adler &amp; 0xffff));
++ flush_pending(strm);
++ /* If avail_out is zero, the application will call deflate again
++ * to flush the rest.
++ */
++ s-&gt;noheader = -1; /* write the trailer only once! */
++ return s-&gt;pending != 0 ? Z_OK : Z_STREAM_END;
++}
++
++/* ========================================================================= */
++int deflateEnd (strm)
++ z_streamp strm;
++{
++ int status;
++ deflate_state *s;
++
++ if (strm == Z_NULL || strm-&gt;state == Z_NULL) return Z_STREAM_ERROR;
++ s = (deflate_state *) strm-&gt;state;
++
++ status = s-&gt;status;
++ if (status != INIT_STATE &amp;&amp; status != BUSY_STATE &amp;&amp;
++ status != FINISH_STATE) {
++ return Z_STREAM_ERROR;
++ }
++
++ /* Deallocate in reverse order of allocations: */
++ TRY_FREE(strm, s-&gt;pending_buf);
++ TRY_FREE(strm, s-&gt;head);
++ TRY_FREE(strm, s-&gt;prev);
++ TRY_FREE(strm, s-&gt;window);
++
++ ZFREE(strm, s);
++ strm-&gt;state = Z_NULL;
++
++ return status == BUSY_STATE ? Z_DATA_ERROR : Z_OK;
++}
++
++/* =========================================================================
++ * Copy the source state to the destination state.
++ */
++int deflateCopy (dest, source)
++ z_streamp dest;
++ z_streamp source;
++{
++ deflate_state *ds;
++ deflate_state *ss;
++ ushf *overlay;
++
++ if (source == Z_NULL || dest == Z_NULL || source-&gt;state == Z_NULL)
++ return Z_STREAM_ERROR;
++ ss = (deflate_state *) source-&gt;state;
++
++ zmemcpy(dest, source, sizeof(*dest));
++
++ ds = (deflate_state *) ZALLOC(dest, 1, sizeof(deflate_state));
++ if (ds == Z_NULL) return Z_MEM_ERROR;
++ dest-&gt;state = (struct internal_state FAR *) ds;
++ zmemcpy(ds, ss, sizeof(*ds));
++ ds-&gt;strm = dest;
++
++ ds-&gt;window = (Bytef *) ZALLOC(dest, ds-&gt;w_size, 2*sizeof(Byte));
++ ds-&gt;prev = (Posf *) ZALLOC(dest, ds-&gt;w_size, sizeof(Pos));
++ ds-&gt;head = (Posf *) ZALLOC(dest, ds-&gt;hash_size, sizeof(Pos));
++ overlay = (ushf *) ZALLOC(dest, ds-&gt;lit_bufsize, sizeof(ush)+2);
++ ds-&gt;pending_buf = (uchf *) overlay;
++
++ if (ds-&gt;window == Z_NULL || ds-&gt;prev == Z_NULL || ds-&gt;head == Z_NULL ||
++ ds-&gt;pending_buf == Z_NULL) {
++ deflateEnd (dest);
++ return Z_MEM_ERROR;
++ }
++ /* ??? following zmemcpy doesn't work for 16-bit MSDOS */
++ zmemcpy(ds-&gt;window, ss-&gt;window, ds-&gt;w_size * 2 * sizeof(Byte));
++ zmemcpy(ds-&gt;prev, ss-&gt;prev, ds-&gt;w_size * sizeof(Pos));
++ zmemcpy(ds-&gt;head, ss-&gt;head, ds-&gt;hash_size * sizeof(Pos));
++ zmemcpy(ds-&gt;pending_buf, ss-&gt;pending_buf, (uInt)ds-&gt;pending_buf_size);
++
++ ds-&gt;pending_out = ds-&gt;pending_buf + (ss-&gt;pending_out - ss-&gt;pending_buf);
++ ds-&gt;d_buf = overlay + ds-&gt;lit_bufsize/sizeof(ush);
++ ds-&gt;l_buf = ds-&gt;pending_buf + (1+sizeof(ush))*ds-&gt;lit_bufsize;
++
++ ds-&gt;l_desc.dyn_tree = ds-&gt;dyn_ltree;
++ ds-&gt;d_desc.dyn_tree = ds-&gt;dyn_dtree;
++ ds-&gt;bl_desc.dyn_tree = ds-&gt;bl_tree;
++
++ return Z_OK;
++}
++
++/* ===========================================================================
++ * Return the number of bytes of output which are immediately available
++ * for output from the decompressor.
++ */
++int deflateOutputPending (strm)
++ z_streamp strm;
++{
++ if (strm == Z_NULL || strm-&gt;state == Z_NULL) return 0;
++
++ return ((deflate_state *)(strm-&gt;state))-&gt;pending;
++}
++
++/* ===========================================================================
++ * Read a new buffer from the current input stream, update the adler32
++ * and total number of bytes read. All deflate() input goes through
++ * this function so some applications may wish to modify it to avoid
++ * allocating a large strm-&gt;next_in buffer and copying from it.
++ * (See also flush_pending()).
++ */
++local int read_buf(strm, buf, size)
++ z_streamp strm;
++ charf *buf;
++ unsigned size;
++{
++ unsigned len = strm-&gt;avail_in;
++
++ if (len &gt; size) len = size;
++ if (len == 0) return 0;
++
++ strm-&gt;avail_in -= len;
++
++ if (!((deflate_state *)(strm-&gt;state))-&gt;noheader) {
++ strm-&gt;adler = adler32(strm-&gt;adler, strm-&gt;next_in, len);
++ }
++ zmemcpy(buf, strm-&gt;next_in, len);
++ strm-&gt;next_in += len;
++ strm-&gt;total_in += len;
++
++ return (int)len;
++}
++
++/* ===========================================================================
++ * Initialize the &quot;longest match&quot; routines for a new zlib stream
++ */
++local void lm_init (s)
++ deflate_state *s;
++{
++ s-&gt;window_size = (ulg)2L*s-&gt;w_size;
++
++ CLEAR_HASH(s);
++
++ /* Set the default configuration parameters:
++ */
++ s-&gt;max_lazy_match = configuration_table[s-&gt;level].max_lazy;
++ s-&gt;good_match = configuration_table[s-&gt;level].good_length;
++ s-&gt;nice_match = configuration_table[s-&gt;level].nice_length;
++ s-&gt;max_chain_length = configuration_table[s-&gt;level].max_chain;
++
++ s-&gt;strstart = 0;
++ s-&gt;block_start = 0L;
++ s-&gt;lookahead = 0;
++ s-&gt;match_length = s-&gt;prev_length = MIN_MATCH-1;
++ s-&gt;match_available = 0;
++ s-&gt;ins_h = 0;
++#ifdef ASMV
++ match_init(); /* initialize the asm code */
++#endif
++}
++
++/* ===========================================================================
++ * Set match_start to the longest match starting at the given string and
++ * return its length. Matches shorter or equal to prev_length are discarded,
++ * in which case the result is equal to prev_length and match_start is
++ * garbage.
++ * IN assertions: cur_match is the head of the hash chain for the current
++ * string (strstart) and its distance is &lt;= MAX_DIST, and prev_length &gt;= 1
++ * OUT assertion: the match length is not greater than s-&gt;lookahead.
++ */
++#ifndef ASMV
++/* For 80x86 and 680x0, an optimized version will be provided in match.asm or
++ * match.S. The code will be functionally equivalent.
++ */
++local uInt longest_match(s, cur_match)
++ deflate_state *s;
++ IPos cur_match; /* current match */
++{
++ unsigned chain_length = s-&gt;max_chain_length;/* max hash chain length */
++ register Bytef *scan = s-&gt;window + s-&gt;strstart; /* current string */
++ register Bytef *match; /* matched string */
++ register int len; /* length of current match */
++ int best_len = s-&gt;prev_length; /* best match length so far */
++ int nice_match = s-&gt;nice_match; /* stop if match long enough */
++ IPos limit = s-&gt;strstart &gt; (IPos)MAX_DIST(s) ?
++ s-&gt;strstart - (IPos)MAX_DIST(s) : NIL;
++ /* Stop when cur_match becomes &lt;= limit. To simplify the code,
++ * we prevent matches with the string of window index 0.
++ */
++ Posf *prev = s-&gt;prev;
++ uInt wmask = s-&gt;w_mask;
++
++#ifdef UNALIGNED_OK
++ /* Compare two bytes at a time. Note: this is not always beneficial.
++ * Try with and without -DUNALIGNED_OK to check.
++ */
++ register Bytef *strend = s-&gt;window + s-&gt;strstart + MAX_MATCH - 1;
++ register ush scan_start = *(ushf*)scan;
++ register ush scan_end = *(ushf*)(scan+best_len-1);
++#else
++ register Bytef *strend = s-&gt;window + s-&gt;strstart + MAX_MATCH;
++ register Byte scan_end1 = scan[best_len-1];
++ register Byte scan_end = scan[best_len];
++#endif
++
++ /* The code is optimized for HASH_BITS &gt;= 8 and MAX_MATCH-2 multiple of 16.
++ * It is easy to get rid of this optimization if necessary.
++ */
++ Assert(s-&gt;hash_bits &gt;= 8 &amp;&amp; MAX_MATCH == 258, &quot;Code too clever&quot;);
++
++ /* Do not waste too much time if we already have a good match: */
++ if (s-&gt;prev_length &gt;= s-&gt;good_match) {
++ chain_length &gt;&gt;= 2;
++ }
++ /* Do not look for matches beyond the end of the input. This is necessary
++ * to make deflate deterministic.
++ */
++ if ((uInt)nice_match &gt; s-&gt;lookahead) nice_match = s-&gt;lookahead;
++
++ Assert((ulg)s-&gt;strstart &lt;= s-&gt;window_size-MIN_LOOKAHEAD, &quot;need lookahead&quot;);
++
++ do {
++ Assert(cur_match &lt; s-&gt;strstart, &quot;no future&quot;);
++ match = s-&gt;window + cur_match;
++
++ /* Skip to next match if the match length cannot increase
++ * or if the match length is less than 2:
++ */
++#if (defined(UNALIGNED_OK) &amp;&amp; MAX_MATCH == 258)
++ /* This code assumes sizeof(unsigned short) == 2. Do not use
++ * UNALIGNED_OK if your compiler uses a different size.
++ */
++ if (*(ushf*)(match+best_len-1) != scan_end ||
++ *(ushf*)match != scan_start) continue;
++
++ /* It is not necessary to compare scan[2] and match[2] since they are
++ * always equal when the other bytes match, given that the hash keys
++ * are equal and that HASH_BITS &gt;= 8. Compare 2 bytes at a time at
++ * strstart+3, +5, ... up to strstart+257. We check for insufficient
++ * lookahead only every 4th comparison; the 128th check will be made
++ * at strstart+257. If MAX_MATCH-2 is not a multiple of 8, it is
++ * necessary to put more guard bytes at the end of the window, or
++ * to check more often for insufficient lookahead.
++ */
++ Assert(scan[2] == match[2], &quot;scan[2]?&quot;);
++ scan++, match++;
++ do {
++ } while (*(ushf*)(scan+=2) == *(ushf*)(match+=2) &amp;&amp;
++ *(ushf*)(scan+=2) == *(ushf*)(match+=2) &amp;&amp;
++ *(ushf*)(scan+=2) == *(ushf*)(match+=2) &amp;&amp;
++ *(ushf*)(scan+=2) == *(ushf*)(match+=2) &amp;&amp;
++ scan &lt; strend);
++ /* The funny &quot;do {}&quot; generates better code on most compilers */
++
++ /* Here, scan &lt;= window+strstart+257 */
++ Assert(scan &lt;= s-&gt;window+(unsigned)(s-&gt;window_size-1), &quot;wild scan&quot;);
++ if (*scan == *match) scan++;
++
++ len = (MAX_MATCH - 1) - (int)(strend-scan);
++ scan = strend - (MAX_MATCH-1);
++
++#else /* UNALIGNED_OK */
++
++ if (match[best_len] != scan_end ||
++ match[best_len-1] != scan_end1 ||
++ *match != *scan ||
++ *++match != scan[1]) continue;
++
++ /* The check at best_len-1 can be removed because it will be made
++ * again later. (This heuristic is not always a win.)
++ * It is not necessary to compare scan[2] and match[2] since they
++ * are always equal when the other bytes match, given that
++ * the hash keys are equal and that HASH_BITS &gt;= 8.
++ */
++ scan += 2, match++;
++ Assert(*scan == *match, &quot;match[2]?&quot;);
++
++ /* We check for insufficient lookahead only every 8th comparison;
++ * the 256th check will be made at strstart+258.
++ */
++ do {
++ } while (*++scan == *++match &amp;&amp; *++scan == *++match &amp;&amp;
++ *++scan == *++match &amp;&amp; *++scan == *++match &amp;&amp;
++ *++scan == *++match &amp;&amp; *++scan == *++match &amp;&amp;
++ *++scan == *++match &amp;&amp; *++scan == *++match &amp;&amp;
++ scan &lt; strend);
++
++ Assert(scan &lt;= s-&gt;window+(unsigned)(s-&gt;window_size-1), &quot;wild scan&quot;);
++
++ len = MAX_MATCH - (int)(strend - scan);
++ scan = strend - MAX_MATCH;
++
++#endif /* UNALIGNED_OK */
++
++ if (len &gt; best_len) {
++ s-&gt;match_start = cur_match;
++ best_len = len;
++ if (len &gt;= nice_match) break;
++#ifdef UNALIGNED_OK
++ scan_end = *(ushf*)(scan+best_len-1);
++#else
++ scan_end1 = scan[best_len-1];
++ scan_end = scan[best_len];
++#endif
++ }
++ } while ((cur_match = prev[cur_match &amp; wmask]) &gt; limit
++ &amp;&amp; --chain_length != 0);
++
++ if ((uInt)best_len &lt;= s-&gt;lookahead) return best_len;
++ return s-&gt;lookahead;
++}
++#endif /* ASMV */
++
++#ifdef DEBUG_ZLIB
++/* ===========================================================================
++ * Check that the match at match_start is indeed a match.
++ */
++local void check_match(s, start, match, length)
++ deflate_state *s;
++ IPos start, match;
++ int length;
++{
++ /* check that the match is indeed a match */
++ if (zmemcmp((charf *)s-&gt;window + match,
++ (charf *)s-&gt;window + start, length) != EQUAL) {
++ fprintf(stderr, &quot; start %u, match %u, length %d\n&quot;,
++ start, match, length);
++ do {
++ fprintf(stderr, &quot;%c%c&quot;, s-&gt;window[match++], s-&gt;window[start++]);
++ } while (--length != 0);
++ z_error(&quot;invalid match&quot;);
++ }
++ if (z_verbose &gt; 1) {
++ fprintf(stderr,&quot;\\[%d,%d]&quot;, start-match, length);
++ do { putc(s-&gt;window[start++], stderr); } while (--length != 0);
++ }
++}
++#else
++# define check_match(s, start, match, length)
++#endif
++
++/* ===========================================================================
++ * Fill the window when the lookahead becomes insufficient.
++ * Updates strstart and lookahead.
++ *
++ * IN assertion: lookahead &lt; MIN_LOOKAHEAD
++ * OUT assertions: strstart &lt;= window_size-MIN_LOOKAHEAD
++ * At least one byte has been read, or avail_in == 0; reads are
++ * performed for at least two bytes (required for the zip translate_eol
++ * option -- not supported here).
++ */
++local void fill_window(s)
++ deflate_state *s;
++{
++ register unsigned n, m;
++ register Posf *p;
++ unsigned more; /* Amount of free space at the end of the window. */
++ uInt wsize = s-&gt;w_size;
++
++ do {
++ more = (unsigned)(s-&gt;window_size -(ulg)s-&gt;lookahead -(ulg)s-&gt;strstart);
++
++ /* Deal with !@#$% 64K limit: */
++ if (more == 0 &amp;&amp; s-&gt;strstart == 0 &amp;&amp; s-&gt;lookahead == 0) {
++ more = wsize;
++
++ } else if (more == (unsigned)(-1)) {
++ /* Very unlikely, but possible on 16 bit machine if strstart == 0
++ * and lookahead == 1 (input done one byte at time)
++ */
++ more--;
++
++ /* If the window is almost full and there is insufficient lookahead,
++ * move the upper half to the lower one to make room in the upper half.
++ */
++ } else if (s-&gt;strstart &gt;= wsize+MAX_DIST(s)) {
++
++ zmemcpy((charf *)s-&gt;window, (charf *)s-&gt;window+wsize,
++ (unsigned)wsize);
++ s-&gt;match_start -= wsize;
++ s-&gt;strstart -= wsize; /* we now have strstart &gt;= MAX_DIST */
++ s-&gt;block_start -= (long) wsize;
++
++ /* Slide the hash table (could be avoided with 32 bit values
++ at the expense of memory usage). We slide even when level == 0
++ to keep the hash table consistent if we switch back to level &gt; 0
++ later. (Using level 0 permanently is not an optimal usage of
++ zlib, so we don't care about this pathological case.)
++ */
++ n = s-&gt;hash_size;
++ p = &amp;s-&gt;head[n];
++ do {
++ m = *--p;
++ *p = (Pos)(m &gt;= wsize ? m-wsize : NIL);
++ } while (--n);
++
++ n = wsize;
++ p = &amp;s-&gt;prev[n];
++ do {
++ m = *--p;
++ *p = (Pos)(m &gt;= wsize ? m-wsize : NIL);
++ /* If n is not on any hash chain, prev[n] is garbage but
++ * its value will never be used.
++ */
++ } while (--n);
++ more += wsize;
++ }
++ if (s-&gt;strm-&gt;avail_in == 0) return;
++
++ /* If there was no sliding:
++ * strstart &lt;= WSIZE+MAX_DIST-1 &amp;&amp; lookahead &lt;= MIN_LOOKAHEAD - 1 &amp;&amp;
++ * more == window_size - lookahead - strstart
++ * =&gt; more &gt;= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)
++ * =&gt; more &gt;= window_size - 2*WSIZE + 2
++ * In the BIG_MEM or MMAP case (not yet supported),
++ * window_size == input_size + MIN_LOOKAHEAD &amp;&amp;
++ * strstart + s-&gt;lookahead &lt;= input_size =&gt; more &gt;= MIN_LOOKAHEAD.
++ * Otherwise, window_size == 2*WSIZE so more &gt;= 2.
++ * If there was sliding, more &gt;= WSIZE. So in all cases, more &gt;= 2.
++ */
++ Assert(more &gt;= 2, &quot;more &lt; 2&quot;);
++
++ n = read_buf(s-&gt;strm, (charf *)s-&gt;window + s-&gt;strstart + s-&gt;lookahead,
++ more);
++ s-&gt;lookahead += n;
++
++ /* Initialize the hash value now that we have some input: */
++ if (s-&gt;lookahead &gt;= MIN_MATCH) {
++ s-&gt;ins_h = s-&gt;window[s-&gt;strstart];
++ UPDATE_HASH(s, s-&gt;ins_h, s-&gt;window[s-&gt;strstart+1]);
++#if MIN_MATCH != 3
++ Call UPDATE_HASH() MIN_MATCH-3 more times
++#endif
++ }
++ /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,
++ * but this is not important since only literal bytes will be emitted.
++ */
++
++ } while (s-&gt;lookahead &lt; MIN_LOOKAHEAD &amp;&amp; s-&gt;strm-&gt;avail_in != 0);
++}
++
++/* ===========================================================================
++ * Flush the current block, with given end-of-file flag.
++ * IN assertion: strstart is set to the end of the current match.
++ */
++#define FLUSH_BLOCK_ONLY(s, eof) { \
++ _tr_flush_block(s, (s-&gt;block_start &gt;= 0L ? \
++ (charf *)&amp;s-&gt;window[(unsigned)s-&gt;block_start] : \
++ (charf *)Z_NULL), \
++ (ulg)((long)s-&gt;strstart - s-&gt;block_start), \
++ (eof)); \
++ s-&gt;block_start = s-&gt;strstart; \
++ flush_pending(s-&gt;strm); \
++ Tracev((stderr,&quot;[FLUSH]&quot;)); \
++}
++
++/* Same but force premature exit if necessary. */
++#define FLUSH_BLOCK(s, eof) { \
++ FLUSH_BLOCK_ONLY(s, eof); \
++ if (s-&gt;strm-&gt;avail_out == 0) return (eof) ? finish_started : need_more; \
++}
++
++/* ===========================================================================
++ * Copy without compression as much as possible from the input stream, return
++ * the current block state.
++ * This function does not insert new strings in the dictionary since
++ * uncompressible data is probably not useful. This function is used
++ * only for the level=0 compression option.
++ * NOTE: this function should be optimized to avoid extra copying from
++ * window to pending_buf.
++ */
++local block_state deflate_stored(s, flush)
++ deflate_state *s;
++ int flush;
++{
++ /* Stored blocks are limited to 0xffff bytes, pending_buf is limited
++ * to pending_buf_size, and each stored block has a 5 byte header:
++ */
++ ulg max_block_size = 0xffff;
++ ulg max_start;
++
++ if (max_block_size &gt; s-&gt;pending_buf_size - 5) {
++ max_block_size = s-&gt;pending_buf_size - 5;
++ }
++
++ /* Copy as much as possible from input to output: */
++ for (;;) {
++ /* Fill the window as much as possible: */
++ if (s-&gt;lookahead &lt;= 1) {
++
++ Assert(s-&gt;strstart &lt; s-&gt;w_size+MAX_DIST(s) ||
++ s-&gt;block_start &gt;= (long)s-&gt;w_size, &quot;slide too late&quot;);
++
++ fill_window(s);
++ if (s-&gt;lookahead == 0 &amp;&amp; flush == Z_NO_FLUSH) return need_more;
++
++ if (s-&gt;lookahead == 0) break; /* flush the current block */
++ }
++ Assert(s-&gt;block_start &gt;= 0L, &quot;block gone&quot;);
++
++ s-&gt;strstart += s-&gt;lookahead;
++ s-&gt;lookahead = 0;
++
++ /* Emit a stored block if pending_buf will be full: */
++ max_start = s-&gt;block_start + max_block_size;
++ if (s-&gt;strstart == 0 || (ulg)s-&gt;strstart &gt;= max_start) {
++ /* strstart == 0 is possible when wraparound on 16-bit machine */
++ s-&gt;lookahead = (uInt)(s-&gt;strstart - max_start);
++ s-&gt;strstart = (uInt)max_start;
++ FLUSH_BLOCK(s, 0);
++ }
++ /* Flush if we may have to slide, otherwise block_start may become
++ * negative and the data will be gone:
++ */
++ if (s-&gt;strstart - (uInt)s-&gt;block_start &gt;= MAX_DIST(s)) {
++ FLUSH_BLOCK(s, 0);
++ }
++ }
++ FLUSH_BLOCK(s, flush == Z_FINISH);
++ return flush == Z_FINISH ? finish_done : block_done;
++}
++
++/* ===========================================================================
++ * Compress as much as possible from the input stream, return the current
++ * block state.
++ * This function does not perform lazy evaluation of matches and inserts
++ * new strings in the dictionary only for unmatched strings or for short
++ * matches. It is used only for the fast compression options.
++ */
++local block_state deflate_fast(s, flush)
++ deflate_state *s;
++ int flush;
++{
++ IPos hash_head = NIL; /* head of the hash chain */
++ int bflush; /* set if current block must be flushed */
++
++ for (;;) {
++ /* Make sure that we always have enough lookahead, except
++ * at the end of the input file. We need MAX_MATCH bytes
++ * for the next match, plus MIN_MATCH bytes to insert the
++ * string following the next match.
++ */
++ if (s-&gt;lookahead &lt; MIN_LOOKAHEAD) {
++ fill_window(s);
++ if (s-&gt;lookahead &lt; MIN_LOOKAHEAD &amp;&amp; flush == Z_NO_FLUSH) {
++ return need_more;
++ }
++ if (s-&gt;lookahead == 0) break; /* flush the current block */
++ }
++
++ /* Insert the string window[strstart .. strstart+2] in the
++ * dictionary, and set hash_head to the head of the hash chain:
++ */
++ if (s-&gt;lookahead &gt;= MIN_MATCH) {
++ INSERT_STRING(s, s-&gt;strstart, hash_head);
++ }
++
++ /* Find the longest match, discarding those &lt;= prev_length.
++ * At this point we have always match_length &lt; MIN_MATCH
++ */
++ if (hash_head != NIL &amp;&amp; s-&gt;strstart - hash_head &lt;= MAX_DIST(s)) {
++ /* To simplify the code, we prevent matches with the string
++ * of window index 0 (in particular we have to avoid a match
++ * of the string with itself at the start of the input file).
++ */
++ if (s-&gt;strategy != Z_HUFFMAN_ONLY) {
++ s-&gt;match_length = longest_match (s, hash_head);
++ }
++ /* longest_match() sets match_start */
++ }
++ if (s-&gt;match_length &gt;= MIN_MATCH) {
++ check_match(s, s-&gt;strstart, s-&gt;match_start, s-&gt;match_length);
++
++ bflush = _tr_tally(s, s-&gt;strstart - s-&gt;match_start,
++ s-&gt;match_length - MIN_MATCH);
++
++ s-&gt;lookahead -= s-&gt;match_length;
++
++ /* Insert new strings in the hash table only if the match length
++ * is not too large. This saves time but degrades compression.
++ */
++ if (s-&gt;match_length &lt;= s-&gt;max_insert_length &amp;&amp;
++ s-&gt;lookahead &gt;= MIN_MATCH) {
++ s-&gt;match_length--; /* string at strstart already in hash table */
++ do {
++ s-&gt;strstart++;
++ INSERT_STRING(s, s-&gt;strstart, hash_head);
++ /* strstart never exceeds WSIZE-MAX_MATCH, so there are
++ * always MIN_MATCH bytes ahead.
++ */
++ } while (--s-&gt;match_length != 0);
++ s-&gt;strstart++;
++ } else {
++ s-&gt;strstart += s-&gt;match_length;
++ s-&gt;match_length = 0;
++ s-&gt;ins_h = s-&gt;window[s-&gt;strstart];
++ UPDATE_HASH(s, s-&gt;ins_h, s-&gt;window[s-&gt;strstart+1]);
++#if MIN_MATCH != 3
++ Call UPDATE_HASH() MIN_MATCH-3 more times
++#endif
++ /* If lookahead &lt; MIN_MATCH, ins_h is garbage, but it does not
++ * matter since it will be recomputed at next deflate call.
++ */
++ }
++ } else {
++ /* No match, output a literal byte */
++ Tracevv((stderr,&quot;%c&quot;, s-&gt;window[s-&gt;strstart]));
++ bflush = _tr_tally (s, 0, s-&gt;window[s-&gt;strstart]);
++ s-&gt;lookahead--;
++ s-&gt;strstart++;
++ }
++ if (bflush) FLUSH_BLOCK(s, 0);
++ }
++ FLUSH_BLOCK(s, flush == Z_FINISH);
++ return flush == Z_FINISH ? finish_done : block_done;
++}
++
++/* ===========================================================================
++ * Same as above, but achieves better compression. We use a lazy
++ * evaluation for matches: a match is finally adopted only if there is
++ * no better match at the next window position.
++ */
++local block_state deflate_slow(s, flush)
++ deflate_state *s;
++ int flush;
++{
++ IPos hash_head = NIL; /* head of hash chain */
++ int bflush; /* set if current block must be flushed */
++
++ /* Process the input block. */
++ for (;;) {
++ /* Make sure that we always have enough lookahead, except
++ * at the end of the input file. We need MAX_MATCH bytes
++ * for the next match, plus MIN_MATCH bytes to insert the
++ * string following the next match.
++ */
++ if (s-&gt;lookahead &lt; MIN_LOOKAHEAD) {
++ fill_window(s);
++ if (s-&gt;lookahead &lt; MIN_LOOKAHEAD &amp;&amp; flush == Z_NO_FLUSH) {
++ return need_more;
++ }
++ if (s-&gt;lookahead == 0) break; /* flush the current block */
++ }
++
++ /* Insert the string window[strstart .. strstart+2] in the
++ * dictionary, and set hash_head to the head of the hash chain:
++ */
++ if (s-&gt;lookahead &gt;= MIN_MATCH) {
++ INSERT_STRING(s, s-&gt;strstart, hash_head);
++ }
++
++ /* Find the longest match, discarding those &lt;= prev_length.
++ */
++ s-&gt;prev_length = s-&gt;match_length, s-&gt;prev_match = s-&gt;match_start;
++ s-&gt;match_length = MIN_MATCH-1;
++
++ if (hash_head != NIL &amp;&amp; s-&gt;prev_length &lt; s-&gt;max_lazy_match &amp;&amp;
++ s-&gt;strstart - hash_head &lt;= MAX_DIST(s)) {
++ /* To simplify the code, we prevent matches with the string
++ * of window index 0 (in particular we have to avoid a match
++ * of the string with itself at the start of the input file).
++ */
++ if (s-&gt;strategy != Z_HUFFMAN_ONLY) {
++ s-&gt;match_length = longest_match (s, hash_head);
++ }
++ /* longest_match() sets match_start */
++
++ if (s-&gt;match_length &lt;= 5 &amp;&amp; (s-&gt;strategy == Z_FILTERED ||
++ (s-&gt;match_length == MIN_MATCH &amp;&amp;
++ s-&gt;strstart - s-&gt;match_start &gt; TOO_FAR))) {
++
++ /* If prev_match is also MIN_MATCH, match_start is garbage
++ * but we will ignore the current match anyway.
++ */
++ s-&gt;match_length = MIN_MATCH-1;
++ }
++ }
++ /* If there was a match at the previous step and the current
++ * match is not better, output the previous match:
++ */
++ if (s-&gt;prev_length &gt;= MIN_MATCH &amp;&amp; s-&gt;match_length &lt;= s-&gt;prev_length) {
++ uInt max_insert = s-&gt;strstart + s-&gt;lookahead - MIN_MATCH;
++ /* Do not insert strings in hash table beyond this. */
++
++ check_match(s, s-&gt;strstart-1, s-&gt;prev_match, s-&gt;prev_length);
++
++ bflush = _tr_tally(s, s-&gt;strstart -1 - s-&gt;prev_match,
++ s-&gt;prev_length - MIN_MATCH);
++
++ /* Insert in hash table all strings up to the end of the match.
++ * strstart-1 and strstart are already inserted. If there is not
++ * enough lookahead, the last two strings are not inserted in
++ * the hash table.
++ */
++ s-&gt;lookahead -= s-&gt;prev_length-1;
++ s-&gt;prev_length -= 2;
++ do {
++ if (++s-&gt;strstart &lt;= max_insert) {
++ INSERT_STRING(s, s-&gt;strstart, hash_head);
++ }
++ } while (--s-&gt;prev_length != 0);
++ s-&gt;match_available = 0;
++ s-&gt;match_length = MIN_MATCH-1;
++ s-&gt;strstart++;
++
++ if (bflush) FLUSH_BLOCK(s, 0);
++
++ } else if (s-&gt;match_available) {
++ /* If there was no match at the previous position, output a
++ * single literal. If there was a match but the current match
++ * is longer, truncate the previous match to a single literal.
++ */
++ Tracevv((stderr,&quot;%c&quot;, s-&gt;window[s-&gt;strstart-1]));
++ if (_tr_tally (s, 0, s-&gt;window[s-&gt;strstart-1])) {
++ FLUSH_BLOCK_ONLY(s, 0);
++ }
++ s-&gt;strstart++;
++ s-&gt;lookahead--;
++ if (s-&gt;strm-&gt;avail_out == 0) return need_more;
++ } else {
++ /* There is no previous match to compare with, wait for
++ * the next step to decide.
++ */
++ s-&gt;match_available = 1;
++ s-&gt;strstart++;
++ s-&gt;lookahead--;
++ }
++ }
++ Assert (flush != Z_NO_FLUSH, &quot;no flush?&quot;);
++ if (s-&gt;match_available) {
++ Tracevv((stderr,&quot;%c&quot;, s-&gt;window[s-&gt;strstart-1]));
++ _tr_tally (s, 0, s-&gt;window[s-&gt;strstart-1]);
++ s-&gt;match_available = 0;
++ }
++ FLUSH_BLOCK(s, flush == Z_FINISH);
++ return flush == Z_FINISH ? finish_done : block_done;
++}
++/* --- deflate.c */
++
++/* +++ trees.c */
++/* trees.c -- output deflated data using Huffman coding
++ * Copyright (C) 1995-1996 Jean-loup Gailly
++ * For conditions of distribution and use, see copyright notice in zlib.h
++ */
++
++/*
++ * ALGORITHM
++ *
++ * The &quot;deflation&quot; process uses several Huffman trees. The more
++ * common source values are represented by shorter bit sequences.
++ *
++ * Each code tree is stored in a compressed form which is itself
++ * a Huffman encoding of the lengths of all the code strings (in
++ * ascending order by source values). The actual code strings are
++ * reconstructed from the lengths in the inflate process, as described
++ * in the deflate specification.
++ *
++ * REFERENCES
++ *
++ * Deutsch, L.P.,&quot;'Deflate' Compressed Data Format Specification&quot;.
++ * Available in ftp.uu.net:/pub/archiving/zip/doc/deflate-1.1.doc
++ *
++ * Storer, James A.
++ * Data Compression: Methods and Theory, pp. 49-50.
++ * Computer Science Press, 1988. ISBN 0-7167-8156-5.
++ *
++ * Sedgewick, R.
++ * Algorithms, p290.
++ * Addison-Wesley, 1983. ISBN 0-201-06672-6.
++ */
++
++/* From: trees.c,v 1.11 1996/07/24 13:41:06 me Exp $ */
++
++/* #include &quot;deflate.h&quot; */
++
++#ifdef DEBUG_ZLIB
++# include &lt;ctype.h&gt;
++#endif
++
++/* ===========================================================================
++ * Constants
++ */
++
++#define MAX_BL_BITS 7
++/* Bit length codes must not exceed MAX_BL_BITS bits */
++
++#define END_BLOCK 256
++/* end of block literal code */
++
++#define REP_3_6 16
++/* repeat previous bit length 3-6 times (2 bits of repeat count) */
++
++#define REPZ_3_10 17
++/* repeat a zero length 3-10 times (3 bits of repeat count) */
++
++#define REPZ_11_138 18
++/* repeat a zero length 11-138 times (7 bits of repeat count) */
++
++local int extra_lbits[LENGTH_CODES] /* extra bits for each length code */
++ = {0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0};
++
++local int extra_dbits[D_CODES] /* extra bits for each distance code */
++ = {0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13};
++
++local int extra_blbits[BL_CODES]/* extra bits for each bit length code */
++ = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7};
++
++local uch bl_order[BL_CODES]
++ = {16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15};
++/* The lengths of the bit length codes are sent in order of decreasing
++ * probability, to avoid transmitting the lengths for unused bit length codes.
++ */
++
++#define Buf_size (8 * 2*sizeof(char))
++/* Number of bits used within bi_buf. (bi_buf might be implemented on
++ * more than 16 bits on some systems.)
++ */
++
++/* ===========================================================================
++ * Local data. These are initialized only once.
++ */
++
++local ct_data static_ltree[L_CODES+2];
++/* The static literal tree. Since the bit lengths are imposed, there is no
++ * need for the L_CODES extra codes used during heap construction. However
++ * The codes 286 and 287 are needed to build a canonical tree (see _tr_init
++ * below).
++ */
++
++local ct_data static_dtree[D_CODES];
++/* The static distance tree. (Actually a trivial tree since all codes use
++ * 5 bits.)
++ */
++
++local uch dist_code[512];
++/* distance codes. The first 256 values correspond to the distances
++ * 3 .. 258, the last 256 values correspond to the top 8 bits of
++ * the 15 bit distances.
++ */
++
++local uch length_code[MAX_MATCH-MIN_MATCH+1];
++/* length code for each normalized match length (0 == MIN_MATCH) */
++
++local int base_length[LENGTH_CODES];
++/* First normalized length for each code (0 = MIN_MATCH) */
++
++local int base_dist[D_CODES];
++/* First normalized distance for each code (0 = distance of 1) */
++
++struct static_tree_desc_s {
++ ct_data *static_tree; /* static tree or NULL */
++ intf *extra_bits; /* extra bits for each code or NULL */
++ int extra_base; /* base index for extra_bits */
++ int elems; /* max number of elements in the tree */
++ int max_length; /* max bit length for the codes */
++};
++
++local static_tree_desc static_l_desc =
++{static_ltree, extra_lbits, LITERALS+1, L_CODES, MAX_BITS};
++
++local static_tree_desc static_d_desc =
++{static_dtree, extra_dbits, 0, D_CODES, MAX_BITS};
++
++local static_tree_desc static_bl_desc =
++{(ct_data *)0, extra_blbits, 0, BL_CODES, MAX_BL_BITS};
++
++/* ===========================================================================
++ * Local (static) routines in this file.
++ */
++
++local void tr_static_init OF((void));
++local void init_block OF((deflate_state *s));
++local void pqdownheap OF((deflate_state *s, ct_data *tree, int k));
++local void gen_bitlen OF((deflate_state *s, tree_desc *desc));
++local void gen_codes OF((ct_data *tree, int max_code, ushf *bl_count));
++local void build_tree OF((deflate_state *s, tree_desc *desc));
++local void scan_tree OF((deflate_state *s, ct_data *tree, int max_code));
++local void send_tree OF((deflate_state *s, ct_data *tree, int max_code));
++local int build_bl_tree OF((deflate_state *s));
++local void send_all_trees OF((deflate_state *s, int lcodes, int dcodes,
++ int blcodes));
++local void compress_block OF((deflate_state *s, ct_data *ltree,
++ ct_data *dtree));
++local void set_data_type OF((deflate_state *s));
++local unsigned bi_reverse OF((unsigned value, int length));
++local void bi_windup OF((deflate_state *s));
++local void bi_flush OF((deflate_state *s));
++local void copy_block OF((deflate_state *s, charf *buf, unsigned len,
++ int header));
++
++#ifndef DEBUG_ZLIB
++# define send_code(s, c, tree) send_bits(s, tree[c].Code, tree[c].Len)
++ /* Send a code of the given tree. c and tree must not have side effects */
++
++#else /* DEBUG_ZLIB */
++# define send_code(s, c, tree) \
++ { if (verbose&gt;2) fprintf(stderr,&quot;\ncd %3d &quot;,(c)); \
++ send_bits(s, tree[c].Code, tree[c].Len); }
++#endif
++
++#define d_code(dist) \
++ ((dist) &lt; 256 ? dist_code[dist] : dist_code[256+((dist)&gt;&gt;7)])
++/* Mapping from a distance to a distance code. dist is the distance - 1 and
++ * must not have side effects. dist_code[256] and dist_code[257] are never
++ * used.
++ */
++
++/* ===========================================================================
++ * Output a short LSB first on the stream.
++ * IN assertion: there is enough room in pendingBuf.
++ */
++#define put_short(s, w) { \
++ put_byte(s, (uch)((w) &amp; 0xff)); \
++ put_byte(s, (uch)((ush)(w) &gt;&gt; 8)); \
++}
++
++/* ===========================================================================
++ * Send a value on a given number of bits.
++ * IN assertion: length &lt;= 16 and value fits in length bits.
++ */
++#ifdef DEBUG_ZLIB
++local void send_bits OF((deflate_state *s, int value, int length));
++
++local void send_bits(s, value, length)
++ deflate_state *s;
++ int value; /* value to send */
++ int length; /* number of bits */
++{
++ Tracevv((stderr,&quot; l %2d v %4x &quot;, length, value));
++ Assert(length &gt; 0 &amp;&amp; length &lt;= 15, &quot;invalid length&quot;);
++ s-&gt;bits_sent += (ulg)length;
++
++ /* If not enough room in bi_buf, use (valid) bits from bi_buf and
++ * (16 - bi_valid) bits from value, leaving (width - (16-bi_valid))
++ * unused bits in value.
++ */
++ if (s-&gt;bi_valid &gt; (int)Buf_size - length) {
++ s-&gt;bi_buf |= (value &lt;&lt; s-&gt;bi_valid);
++ put_short(s, s-&gt;bi_buf);
++ s-&gt;bi_buf = (ush)value &gt;&gt; (Buf_size - s-&gt;bi_valid);
++ s-&gt;bi_valid += length - Buf_size;
++ } else {
++ s-&gt;bi_buf |= value &lt;&lt; s-&gt;bi_valid;
++ s-&gt;bi_valid += length;
++ }
++}
++#else /* !DEBUG_ZLIB */
++
++#define send_bits(s, value, length) \
++{ int len = length;\
++ if (s-&gt;bi_valid &gt; (int)Buf_size - len) {\
++ int val = value;\
++ s-&gt;bi_buf |= (val &lt;&lt; s-&gt;bi_valid);\
++ put_short(s, s-&gt;bi_buf);\
++ s-&gt;bi_buf = (ush)val &gt;&gt; (Buf_size - s-&gt;bi_valid);\
++ s-&gt;bi_valid += len - Buf_size;\
++ } else {\
++ s-&gt;bi_buf |= (value) &lt;&lt; s-&gt;bi_valid;\
++ s-&gt;bi_valid += len;\
++ }\
++}
++#endif /* DEBUG_ZLIB */
++
++
++#define MAX(a,b) (a &gt;= b ? a : b)
++/* the arguments must not have side effects */
++
++/* ===========================================================================
++ * Initialize the various 'constant' tables. In a multi-threaded environment,
++ * this function may be called by two threads concurrently, but this is
++ * harmless since both invocations do exactly the same thing.
++ */
++local void tr_static_init()
++{
++ static int static_init_done = 0;
++ int n; /* iterates over tree elements */
++ int bits; /* bit counter */
++ int length; /* length value */
++ int code; /* code value */
++ int dist; /* distance index */
++ ush bl_count[MAX_BITS+1];
++ /* number of codes at each bit length for an optimal tree */
++
++ if (static_init_done) return;
++
++ /* Initialize the mapping length (0..255) -&gt; length code (0..28) */
++ length = 0;
++ for (code = 0; code &lt; LENGTH_CODES-1; code++) {
++ base_length[code] = length;
++ for (n = 0; n &lt; (1&lt;&lt;extra_lbits[code]); n++) {
++ length_code[length++] = (uch)code;
++ }
++ }
++ Assert (length == 256, &quot;tr_static_init: length != 256&quot;);
++ /* Note that the length 255 (match length 258) can be represented
++ * in two different ways: code 284 + 5 bits or code 285, so we
++ * overwrite length_code[255] to use the best encoding:
++ */
++ length_code[length-1] = (uch)code;
++
++ /* Initialize the mapping dist (0..32K) -&gt; dist code (0..29) */
++ dist = 0;
++ for (code = 0 ; code &lt; 16; code++) {
++ base_dist[code] = dist;
++ for (n = 0; n &lt; (1&lt;&lt;extra_dbits[code]); n++) {
++ dist_code[dist++] = (uch)code;
++ }
++ }
++ Assert (dist == 256, &quot;tr_static_init: dist != 256&quot;);
++ dist &gt;&gt;= 7; /* from now on, all distances are divided by 128 */
++ for ( ; code &lt; D_CODES; code++) {
++ base_dist[code] = dist &lt;&lt; 7;
++ for (n = 0; n &lt; (1&lt;&lt;(extra_dbits[code]-7)); n++) {
++ dist_code[256 + dist++] = (uch)code;
++ }
++ }
++ Assert (dist == 256, &quot;tr_static_init: 256+dist != 512&quot;);
++
++ /* Construct the codes of the static literal tree */
++ for (bits = 0; bits &lt;= MAX_BITS; bits++) bl_count[bits] = 0;
++ n = 0;
++ while (n &lt;= 143) static_ltree[n++].Len = 8, bl_count[8]++;
++ while (n &lt;= 255) static_ltree[n++].Len = 9, bl_count[9]++;
++ while (n &lt;= 279) static_ltree[n++].Len = 7, bl_count[7]++;
++ while (n &lt;= 287) static_ltree[n++].Len = 8, bl_count[8]++;
++ /* Codes 286 and 287 do not exist, but we must include them in the
++ * tree construction to get a canonical Huffman tree (longest code
++ * all ones)
++ */
++ gen_codes((ct_data *)static_ltree, L_CODES+1, bl_count);
++
++ /* The static distance tree is trivial: */
++ for (n = 0; n &lt; D_CODES; n++) {
++ static_dtree[n].Len = 5;
++ static_dtree[n].Code = bi_reverse((unsigned)n, 5);
++ }
++ static_init_done = 1;
++}
++
++/* ===========================================================================
++ * Initialize the tree data structures for a new zlib stream.
++ */
++void _tr_init(s)
++ deflate_state *s;
++{
++ tr_static_init();
++
++ s-&gt;compressed_len = 0L;
++
++ s-&gt;l_desc.dyn_tree = s-&gt;dyn_ltree;
++ s-&gt;l_desc.stat_desc = &amp;static_l_desc;
++
++ s-&gt;d_desc.dyn_tree = s-&gt;dyn_dtree;
++ s-&gt;d_desc.stat_desc = &amp;static_d_desc;
++
++ s-&gt;bl_desc.dyn_tree = s-&gt;bl_tree;
++ s-&gt;bl_desc.stat_desc = &amp;static_bl_desc;
++
++ s-&gt;bi_buf = 0;
++ s-&gt;bi_valid = 0;
++ s-&gt;last_eob_len = 8; /* enough lookahead for inflate */
++#ifdef DEBUG_ZLIB
++ s-&gt;bits_sent = 0L;
++#endif
++
++ /* Initialize the first block of the first file: */
++ init_block(s);
++}
++
++/* ===========================================================================
++ * Initialize a new block.
++ */
++local void init_block(s)
++ deflate_state *s;
++{
++ int n; /* iterates over tree elements */
++
++ /* Initialize the trees. */
++ for (n = 0; n &lt; L_CODES; n++) s-&gt;dyn_ltree[n].Freq = 0;
++ for (n = 0; n &lt; D_CODES; n++) s-&gt;dyn_dtree[n].Freq = 0;
++ for (n = 0; n &lt; BL_CODES; n++) s-&gt;bl_tree[n].Freq = 0;
++
++ s-&gt;dyn_ltree[END_BLOCK].Freq = 1;
++ s-&gt;opt_len = s-&gt;static_len = 0L;
++ s-&gt;last_lit = s-&gt;matches = 0;
++}
++
++#define SMALLEST 1
++/* Index within the heap array of least frequent node in the Huffman tree */
++
++
++/* ===========================================================================
++ * Remove the smallest element from the heap and recreate the heap with
++ * one less element. Updates heap and heap_len.
++ */
++#define pqremove(s, tree, top) \
++{\
++ top = s-&gt;heap[SMALLEST]; \
++ s-&gt;heap[SMALLEST] = s-&gt;heap[s-&gt;heap_len--]; \
++ pqdownheap(s, tree, SMALLEST); \
++}
++
++/* ===========================================================================
++ * Compares to subtrees, using the tree depth as tie breaker when
++ * the subtrees have equal frequency. This minimizes the worst case length.
++ */
++#define smaller(tree, n, m, depth) \
++ (tree[n].Freq &lt; tree[m].Freq || \
++ (tree[n].Freq == tree[m].Freq &amp;&amp; depth[n] &lt;= depth[m]))
++
++/* ===========================================================================
++ * Restore the heap property by moving down the tree starting at node k,
++ * exchanging a node with the smallest of its two sons if necessary, stopping
++ * when the heap property is re-established (each father smaller than its
++ * two sons).
++ */
++local void pqdownheap(s, tree, k)
++ deflate_state *s;
++ ct_data *tree; /* the tree to restore */
++ int k; /* node to move down */
++{
++ int v = s-&gt;heap[k];
++ int j = k &lt;&lt; 1; /* left son of k */
++ while (j &lt;= s-&gt;heap_len) {
++ /* Set j to the smallest of the two sons: */
++ if (j &lt; s-&gt;heap_len &amp;&amp;
++ smaller(tree, s-&gt;heap[j+1], s-&gt;heap[j], s-&gt;depth)) {
++ j++;
++ }
++ /* Exit if v is smaller than both sons */
++ if (smaller(tree, v, s-&gt;heap[j], s-&gt;depth)) break;
++
++ /* Exchange v with the smallest son */
++ s-&gt;heap[k] = s-&gt;heap[j]; k = j;
++
++ /* And continue down the tree, setting j to the left son of k */
++ j &lt;&lt;= 1;
++ }
++ s-&gt;heap[k] = v;
++}
++
++/* ===========================================================================
++ * Compute the optimal bit lengths for a tree and update the total bit length
++ * for the current block.
++ * IN assertion: the fields freq and dad are set, heap[heap_max] and
++ * above are the tree nodes sorted by increasing frequency.
++ * OUT assertions: the field len is set to the optimal bit length, the
++ * array bl_count contains the frequencies for each bit length.
++ * The length opt_len is updated; static_len is also updated if stree is
++ * not null.
++ */
++local void gen_bitlen(s, desc)
++ deflate_state *s;
++ tree_desc *desc; /* the tree descriptor */
++{
++ ct_data *tree = desc-&gt;dyn_tree;
++ int max_code = desc-&gt;max_code;
++ ct_data *stree = desc-&gt;stat_desc-&gt;static_tree;
++ intf *extra = desc-&gt;stat_desc-&gt;extra_bits;
++ int base = desc-&gt;stat_desc-&gt;extra_base;
++ int max_length = desc-&gt;stat_desc-&gt;max_length;
++ int h; /* heap index */
++ int n, m; /* iterate over the tree elements */
++ int bits; /* bit length */
++ int xbits; /* extra bits */
++ ush f; /* frequency */
++ int overflow = 0; /* number of elements with bit length too large */
++
++ for (bits = 0; bits &lt;= MAX_BITS; bits++) s-&gt;bl_count[bits] = 0;
++
++ /* In a first pass, compute the optimal bit lengths (which may
++ * overflow in the case of the bit length tree).
++ */
++ tree[s-&gt;heap[s-&gt;heap_max]].Len = 0; /* root of the heap */
++
++ for (h = s-&gt;heap_max+1; h &lt; HEAP_SIZE; h++) {
++ n = s-&gt;heap[h];
++ bits = tree[tree[n].Dad].Len + 1;
++ if (bits &gt; max_length) bits = max_length, overflow++;
++ tree[n].Len = (ush)bits;
++ /* We overwrite tree[n].Dad which is no longer needed */
++
++ if (n &gt; max_code) continue; /* not a leaf node */
++
++ s-&gt;bl_count[bits]++;
++ xbits = 0;
++ if (n &gt;= base) xbits = extra[n-base];
++ f = tree[n].Freq;
++ s-&gt;opt_len += (ulg)f * (bits + xbits);
++ if (stree) s-&gt;static_len += (ulg)f * (stree[n].Len + xbits);
++ }
++ if (overflow == 0) return;
++
++ Trace((stderr,&quot;\nbit length overflow\n&quot;));
++ /* This happens for example on obj2 and pic of the Calgary corpus */
++
++ /* Find the first bit length which could increase: */
++ do {
++ bits = max_length-1;
++ while (s-&gt;bl_count[bits] == 0) bits--;
++ s-&gt;bl_count[bits]--; /* move one leaf down the tree */
++ s-&gt;bl_count[bits+1] += 2; /* move one overflow item as its brother */
++ s-&gt;bl_count[max_length]--;
++ /* The brother of the overflow item also moves one step up,
++ * but this does not affect bl_count[max_length]
++ */
++ overflow -= 2;
++ } while (overflow &gt; 0);
++
++ /* Now recompute all bit lengths, scanning in increasing frequency.
++ * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all
++ * lengths instead of fixing only the wrong ones. This idea is taken
++ * from 'ar' written by Haruhiko Okumura.)
++ */
++ for (bits = max_length; bits != 0; bits--) {
++ n = s-&gt;bl_count[bits];
++ while (n != 0) {
++ m = s-&gt;heap[--h];
++ if (m &gt; max_code) continue;
++ if (tree[m].Len != (unsigned) bits) {
++ Trace((stderr,&quot;code %d bits %d-&gt;%d\n&quot;, m, tree[m].Len, bits));
++ s-&gt;opt_len += ((long)bits - (long)tree[m].Len)
++ *(long)tree[m].Freq;
++ tree[m].Len = (ush)bits;
++ }
++ n--;
++ }
++ }
++}
++
++/* ===========================================================================
++ * Generate the codes for a given tree and bit counts (which need not be
++ * optimal).
++ * IN assertion: the array bl_count contains the bit length statistics for
++ * the given tree and the field len is set for all tree elements.
++ * OUT assertion: the field code is set for all tree elements of non
++ * zero code length.
++ */
++local void gen_codes (tree, max_code, bl_count)
++ ct_data *tree; /* the tree to decorate */
++ int max_code; /* largest code with non zero frequency */
++ ushf *bl_count; /* number of codes at each bit length */
++{
++ ush next_code[MAX_BITS+1]; /* next code value for each bit length */
++ ush code = 0; /* running code value */
++ int bits; /* bit index */
++ int n; /* code index */
++
++ /* The distribution counts are first used to generate the code values
++ * without bit reversal.
++ */
++ for (bits = 1; bits &lt;= MAX_BITS; bits++) {
++ next_code[bits] = code = (code + bl_count[bits-1]) &lt;&lt; 1;
++ }
++ /* Check that the bit counts in bl_count are consistent. The last code
++ * must be all ones.
++ */
++ Assert (code + bl_count[MAX_BITS]-1 == (1&lt;&lt;MAX_BITS)-1,
++ &quot;inconsistent bit counts&quot;);
++ Tracev((stderr,&quot;\ngen_codes: max_code %d &quot;, max_code));
++
++ for (n = 0; n &lt;= max_code; n++) {
++ int len = tree[n].Len;
++ if (len == 0) continue;
++ /* Now reverse the bits */
++ tree[n].Code = bi_reverse(next_code[len]++, len);
++
++ Tracecv(tree != static_ltree, (stderr,&quot;\nn %3d %c l %2d c %4x (%x) &quot;,
++ n, (isgraph(n) ? n : ' '), len, tree[n].Code, next_code[len]-1));
++ }
++}
++
++/* ===========================================================================
++ * Construct one Huffman tree and assigns the code bit strings and lengths.
++ * Update the total bit length for the current block.
++ * IN assertion: the field freq is set for all tree elements.
++ * OUT assertions: the fields len and code are set to the optimal bit length
++ * and corresponding code. The length opt_len is updated; static_len is
++ * also updated if stree is not null. The field max_code is set.
++ */
++local void build_tree(s, desc)
++ deflate_state *s;
++ tree_desc *desc; /* the tree descriptor */
++{
++ ct_data *tree = desc-&gt;dyn_tree;
++ ct_data *stree = desc-&gt;stat_desc-&gt;static_tree;
++ int elems = desc-&gt;stat_desc-&gt;elems;
++ int n, m; /* iterate over heap elements */
++ int max_code = -1; /* largest code with non zero frequency */
++ int node; /* new node being created */
++
++ /* Construct the initial heap, with least frequent element in
++ * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].
++ * heap[0] is not used.
++ */
++ s-&gt;heap_len = 0, s-&gt;heap_max = HEAP_SIZE;
++
++ for (n = 0; n &lt; elems; n++) {
++ if (tree[n].Freq != 0) {
++ s-&gt;heap[++(s-&gt;heap_len)] = max_code = n;
++ s-&gt;depth[n] = 0;
++ } else {
++ tree[n].Len = 0;
++ }
++ }
++
++ /* The pkzip format requires that at least one distance code exists,
++ * and that at least one bit should be sent even if there is only one
++ * possible code. So to avoid special checks later on we force at least
++ * two codes of non zero frequency.
++ */
++ while (s-&gt;heap_len &lt; 2) {
++ node = s-&gt;heap[++(s-&gt;heap_len)] = (max_code &lt; 2 ? ++max_code : 0);
++ tree[node].Freq = 1;
++ s-&gt;depth[node] = 0;
++ s-&gt;opt_len--; if (stree) s-&gt;static_len -= stree[node].Len;
++ /* node is 0 or 1 so it does not have extra bits */
++ }
++ desc-&gt;max_code = max_code;
++
++ /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,
++ * establish sub-heaps of increasing lengths:
++ */
++ for (n = s-&gt;heap_len/2; n &gt;= 1; n--) pqdownheap(s, tree, n);
++
++ /* Construct the Huffman tree by repeatedly combining the least two
++ * frequent nodes.
++ */
++ node = elems; /* next internal node of the tree */
++ do {
++ pqremove(s, tree, n); /* n = node of least frequency */
++ m = s-&gt;heap[SMALLEST]; /* m = node of next least frequency */
++
++ s-&gt;heap[--(s-&gt;heap_max)] = n; /* keep the nodes sorted by frequency */
++ s-&gt;heap[--(s-&gt;heap_max)] = m;
++
++ /* Create a new node father of n and m */
++ tree[node].Freq = tree[n].Freq + tree[m].Freq;
++ s-&gt;depth[node] = (uch) (MAX(s-&gt;depth[n], s-&gt;depth[m]) + 1);
++ tree[n].Dad = tree[m].Dad = (ush)node;
++#ifdef DUMP_BL_TREE
++ if (tree == s-&gt;bl_tree) {
++ fprintf(stderr,&quot;\nnode %d(%d), sons %d(%d) %d(%d)&quot;,
++ node, tree[node].Freq, n, tree[n].Freq, m, tree[m].Freq);
++ }
++#endif
++ /* and insert the new node in the heap */
++ s-&gt;heap[SMALLEST] = node++;
++ pqdownheap(s, tree, SMALLEST);
++
++ } while (s-&gt;heap_len &gt;= 2);
++
++ s-&gt;heap[--(s-&gt;heap_max)] = s-&gt;heap[SMALLEST];
++
++ /* At this point, the fields freq and dad are set. We can now
++ * generate the bit lengths.
++ */
++ gen_bitlen(s, (tree_desc *)desc);
++
++ /* The field len is now set, we can generate the bit codes */
++ gen_codes ((ct_data *)tree, max_code, s-&gt;bl_count);
++}
++
++/* ===========================================================================
++ * Scan a literal or distance tree to determine the frequencies of the codes
++ * in the bit length tree.
++ */
++local void scan_tree (s, tree, max_code)
++ deflate_state *s;
++ ct_data *tree; /* the tree to be scanned */
++ int max_code; /* and its largest code of non zero frequency */
++{
++ int n; /* iterates over all tree elements */
++ int prevlen = -1; /* last emitted length */
++ int curlen; /* length of current code */
++ int nextlen = tree[0].Len; /* length of next code */
++ int count = 0; /* repeat count of the current code */
++ int max_count = 7; /* max repeat count */
++ int min_count = 4; /* min repeat count */
++
++ if (nextlen == 0) max_count = 138, min_count = 3;
++ tree[max_code+1].Len = (ush)0xffff; /* guard */
++
++ for (n = 0; n &lt;= max_code; n++) {
++ curlen = nextlen; nextlen = tree[n+1].Len;
++ if (++count &lt; max_count &amp;&amp; curlen == nextlen) {
++ continue;
++ } else if (count &lt; min_count) {
++ s-&gt;bl_tree[curlen].Freq += count;
++ } else if (curlen != 0) {
++ if (curlen != prevlen) s-&gt;bl_tree[curlen].Freq++;
++ s-&gt;bl_tree[REP_3_6].Freq++;
++ } else if (count &lt;= 10) {
++ s-&gt;bl_tree[REPZ_3_10].Freq++;
++ } else {
++ s-&gt;bl_tree[REPZ_11_138].Freq++;
++ }
++ count = 0; prevlen = curlen;
++ if (nextlen == 0) {
++ max_count = 138, min_count = 3;
++ } else if (curlen == nextlen) {
++ max_count = 6, min_count = 3;
++ } else {
++ max_count = 7, min_count = 4;
++ }
++ }
++}
++
++/* ===========================================================================
++ * Send a literal or distance tree in compressed form, using the codes in
++ * bl_tree.
++ */
++local void send_tree (s, tree, max_code)
++ deflate_state *s;
++ ct_data *tree; /* the tree to be scanned */
++ int max_code; /* and its largest code of non zero frequency */
++{
++ int n; /* iterates over all tree elements */
++ int prevlen = -1; /* last emitted length */
++ int curlen; /* length of current code */
++ int nextlen = tree[0].Len; /* length of next code */
++ int count = 0; /* repeat count of the current code */
++ int max_count = 7; /* max repeat count */
++ int min_count = 4; /* min repeat count */
++
++ /* tree[max_code+1].Len = -1; */ /* guard already set */
++ if (nextlen == 0) max_count = 138, min_count = 3;
++
++ for (n = 0; n &lt;= max_code; n++) {
++ curlen = nextlen; nextlen = tree[n+1].Len;
++ if (++count &lt; max_count &amp;&amp; curlen == nextlen) {
++ continue;
++ } else if (count &lt; min_count) {
++ do { send_code(s, curlen, s-&gt;bl_tree); } while (--count != 0);
++
++ } else if (curlen != 0) {
++ if (curlen != prevlen) {
++ send_code(s, curlen, s-&gt;bl_tree); count--;
++ }
++ Assert(count &gt;= 3 &amp;&amp; count &lt;= 6, &quot; 3_6?&quot;);
++ send_code(s, REP_3_6, s-&gt;bl_tree); send_bits(s, count-3, 2);
++
++ } else if (count &lt;= 10) {
++ send_code(s, REPZ_3_10, s-&gt;bl_tree); send_bits(s, count-3, 3);
++
++ } else {
++ send_code(s, REPZ_11_138, s-&gt;bl_tree); send_bits(s, count-11, 7);
++ }
++ count = 0; prevlen = curlen;
++ if (nextlen == 0) {
++ max_count = 138, min_count = 3;
++ } else if (curlen == nextlen) {
++ max_count = 6, min_count = 3;
++ } else {
++ max_count = 7, min_count = 4;
++ }
++ }
++}
++
++/* ===========================================================================
++ * Construct the Huffman tree for the bit lengths and return the index in
++ * bl_order of the last bit length code to send.
++ */
++local int build_bl_tree(s)
++ deflate_state *s;
++{
++ int max_blindex; /* index of last bit length code of non zero freq */
++
++ /* Determine the bit length frequencies for literal and distance trees */
++ scan_tree(s, (ct_data *)s-&gt;dyn_ltree, s-&gt;l_desc.max_code);
++ scan_tree(s, (ct_data *)s-&gt;dyn_dtree, s-&gt;d_desc.max_code);
++
++ /* Build the bit length tree: */
++ build_tree(s, (tree_desc *)(&amp;(s-&gt;bl_desc)));
++ /* opt_len now includes the length of the tree representations, except
++ * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.
++ */
++
++ /* Determine the number of bit length codes to send. The pkzip format
++ * requires that at least 4 bit length codes be sent. (appnote.txt says
++ * 3 but the actual value used is 4.)
++ */
++ for (max_blindex = BL_CODES-1; max_blindex &gt;= 3; max_blindex--) {
++ if (s-&gt;bl_tree[bl_order[max_blindex]].Len != 0) break;
++ }
++ /* Update opt_len to include the bit length tree and counts */
++ s-&gt;opt_len += 3*(max_blindex+1) + 5+5+4;
++ Tracev((stderr, &quot;\ndyn trees: dyn %ld, stat %ld&quot;,
++ s-&gt;opt_len, s-&gt;static_len));
++
++ return max_blindex;
++}
++
++/* ===========================================================================
++ * Send the header for a block using dynamic Huffman trees: the counts, the
++ * lengths of the bit length codes, the literal tree and the distance tree.
++ * IN assertion: lcodes &gt;= 257, dcodes &gt;= 1, blcodes &gt;= 4.
++ */
++local void send_all_trees(s, lcodes, dcodes, blcodes)
++ deflate_state *s;
++ int lcodes, dcodes, blcodes; /* number of codes for each tree */
++{
++ int rank; /* index in bl_order */
++
++ Assert (lcodes &gt;= 257 &amp;&amp; dcodes &gt;= 1 &amp;&amp; blcodes &gt;= 4, &quot;not enough codes&quot;);
++ Assert (lcodes &lt;= L_CODES &amp;&amp; dcodes &lt;= D_CODES &amp;&amp; blcodes &lt;= BL_CODES,
++ &quot;too many codes&quot;);
++ Tracev((stderr, &quot;\nbl counts: &quot;));
++ send_bits(s, lcodes-257, 5); /* not +255 as stated in appnote.txt */
++ send_bits(s, dcodes-1, 5);
++ send_bits(s, blcodes-4, 4); /* not -3 as stated in appnote.txt */
++ for (rank = 0; rank &lt; blcodes; rank++) {
++ Tracev((stderr, &quot;\nbl code %2d &quot;, bl_order[rank]));
++ send_bits(s, s-&gt;bl_tree[bl_order[rank]].Len, 3);
++ }
++ Tracev((stderr, &quot;\nbl tree: sent %ld&quot;, s-&gt;bits_sent));
++
++ send_tree(s, (ct_data *)s-&gt;dyn_ltree, lcodes-1); /* literal tree */
++ Tracev((stderr, &quot;\nlit tree: sent %ld&quot;, s-&gt;bits_sent));
++
++ send_tree(s, (ct_data *)s-&gt;dyn_dtree, dcodes-1); /* distance tree */
++ Tracev((stderr, &quot;\ndist tree: sent %ld&quot;, s-&gt;bits_sent));
++}
++
++/* ===========================================================================
++ * Send a stored block
++ */
++void _tr_stored_block(s, buf, stored_len, eof)
++ deflate_state *s;
++ charf *buf; /* input block */
++ ulg stored_len; /* length of input block */
++ int eof; /* true if this is the last block for a file */
++{
++ send_bits(s, (STORED_BLOCK&lt;&lt;1)+eof, 3); /* send block type */
++ s-&gt;compressed_len = (s-&gt;compressed_len + 3 + 7) &amp; (ulg)~7L;
++ s-&gt;compressed_len += (stored_len + 4) &lt;&lt; 3;
++
++ copy_block(s, buf, (unsigned)stored_len, 1); /* with header */
++}
++
++/* Send just the `stored block' type code without any length bytes or data.
++ */
++void _tr_stored_type_only(s)
++ deflate_state *s;
++{
++ send_bits(s, (STORED_BLOCK &lt;&lt; 1), 3);
++ bi_windup(s);
++ s-&gt;compressed_len = (s-&gt;compressed_len + 3) &amp; ~7L;
++}
++
++
++/* ===========================================================================
++ * Send one empty static block to give enough lookahead for inflate.
++ * This takes 10 bits, of which 7 may remain in the bit buffer.
++ * The current inflate code requires 9 bits of lookahead. If the
++ * last two codes for the previous block (real code plus EOB) were coded
++ * on 5 bits or less, inflate may have only 5+3 bits of lookahead to decode
++ * the last real code. In this case we send two empty static blocks instead
++ * of one. (There are no problems if the previous block is stored or fixed.)
++ * To simplify the code, we assume the worst case of last real code encoded
++ * on one bit only.
++ */
++void _tr_align(s)
++ deflate_state *s;
++{
++ send_bits(s, STATIC_TREES&lt;&lt;1, 3);
++ send_code(s, END_BLOCK, static_ltree);
++ s-&gt;compressed_len += 10L; /* 3 for block type, 7 for EOB */
++ bi_flush(s);
++ /* Of the 10 bits for the empty block, we have already sent
++ * (10 - bi_valid) bits. The lookahead for the last real code (before
++ * the EOB of the previous block) was thus at least one plus the length
++ * of the EOB plus what we have just sent of the empty static block.
++ */
++ if (1 + s-&gt;last_eob_len + 10 - s-&gt;bi_valid &lt; 9) {
++ send_bits(s, STATIC_TREES&lt;&lt;1, 3);
++ send_code(s, END_BLOCK, static_ltree);
++ s-&gt;compressed_len += 10L;
++ bi_flush(s);
++ }
++ s-&gt;last_eob_len = 7;
++}
++
++/* ===========================================================================
++ * Determine the best encoding for the current block: dynamic trees, static
++ * trees or store, and output the encoded block to the zip file. This function
++ * returns the total compressed length for the file so far.
++ */
++ulg _tr_flush_block(s, buf, stored_len, eof)
++ deflate_state *s;
++ charf *buf; /* input block, or NULL if too old */
++ ulg stored_len; /* length of input block */
++ int eof; /* true if this is the last block for a file */
++{
++ ulg opt_lenb, static_lenb; /* opt_len and static_len in bytes */
++ int max_blindex = 0; /* index of last bit length code of non zero freq */
++
++ /* Build the Huffman trees unless a stored block is forced */
++ if (s-&gt;level &gt; 0) {
++
++ /* Check if the file is ascii or binary */
++ if (s-&gt;data_type == Z_UNKNOWN) set_data_type(s);
++
++ /* Construct the literal and distance trees */
++ build_tree(s, (tree_desc *)(&amp;(s-&gt;l_desc)));
++ Tracev((stderr, &quot;\nlit data: dyn %ld, stat %ld&quot;, s-&gt;opt_len,
++ s-&gt;static_len));
++
++ build_tree(s, (tree_desc *)(&amp;(s-&gt;d_desc)));
++ Tracev((stderr, &quot;\ndist data: dyn %ld, stat %ld&quot;, s-&gt;opt_len,
++ s-&gt;static_len));
++ /* At this point, opt_len and static_len are the total bit lengths of
++ * the compressed block data, excluding the tree representations.
++ */
++
++ /* Build the bit length tree for the above two trees, and get the index
++ * in bl_order of the last bit length code to send.
++ */
++ max_blindex = build_bl_tree(s);
++
++ /* Determine the best encoding. Compute first the block length in bytes*/
++ opt_lenb = (s-&gt;opt_len+3+7)&gt;&gt;3;
++ static_lenb = (s-&gt;static_len+3+7)&gt;&gt;3;
++
++ Tracev((stderr, &quot;\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u &quot;,
++ opt_lenb, s-&gt;opt_len, static_lenb, s-&gt;static_len, stored_len,
++ s-&gt;last_lit));
++
++ if (static_lenb &lt;= opt_lenb) opt_lenb = static_lenb;
++
++ } else {
++ Assert(buf != (char*)0, &quot;lost buf&quot;);
++ opt_lenb = static_lenb = stored_len + 5; /* force a stored block */
++ }
++
++ /* If compression failed and this is the first and last block,
++ * and if the .zip file can be seeked (to rewrite the local header),
++ * the whole file is transformed into a stored file:
++ */
++#ifdef STORED_FILE_OK
++# ifdef FORCE_STORED_FILE
++ if (eof &amp;&amp; s-&gt;compressed_len == 0L) { /* force stored file */
++# else
++ if (stored_len &lt;= opt_lenb &amp;&amp; eof &amp;&amp; s-&gt;compressed_len==0L &amp;&amp; seekable()) {
++# endif
++ /* Since LIT_BUFSIZE &lt;= 2*WSIZE, the input data must be there: */
++ if (buf == (charf*)0) error (&quot;block vanished&quot;);
++
++ copy_block(s, buf, (unsigned)stored_len, 0); /* without header */
++ s-&gt;compressed_len = stored_len &lt;&lt; 3;
++ s-&gt;method = STORED;
++ } else
++#endif /* STORED_FILE_OK */
++
++#ifdef FORCE_STORED
++ if (buf != (char*)0) { /* force stored block */
++#else
++ if (stored_len+4 &lt;= opt_lenb &amp;&amp; buf != (char*)0) {
++ /* 4: two words for the lengths */
++#endif
++ /* The test buf != NULL is only necessary if LIT_BUFSIZE &gt; WSIZE.
++ * Otherwise we can't have processed more than WSIZE input bytes since
++ * the last block flush, because compression would have been
++ * successful. If LIT_BUFSIZE &lt;= WSIZE, it is never too late to
++ * transform a block into a stored block.
++ */
++ _tr_stored_block(s, buf, stored_len, eof);
++
++#ifdef FORCE_STATIC
++ } else if (static_lenb &gt;= 0) { /* force static trees */
++#else
++ } else if (static_lenb == opt_lenb) {
++#endif
++ send_bits(s, (STATIC_TREES&lt;&lt;1)+eof, 3);
++ compress_block(s, (ct_data *)static_ltree, (ct_data *)static_dtree);
++ s-&gt;compressed_len += 3 + s-&gt;static_len;
++ } else {
++ send_bits(s, (DYN_TREES&lt;&lt;1)+eof, 3);
++ send_all_trees(s, s-&gt;l_desc.max_code+1, s-&gt;d_desc.max_code+1,
++ max_blindex+1);
++ compress_block(s, (ct_data *)s-&gt;dyn_ltree, (ct_data *)s-&gt;dyn_dtree);
++ s-&gt;compressed_len += 3 + s-&gt;opt_len;
++ }
++ Assert (s-&gt;compressed_len == s-&gt;bits_sent, &quot;bad compressed size&quot;);
++ init_block(s);
++
++ if (eof) {
++ bi_windup(s);
++ s-&gt;compressed_len += 7; /* align on byte boundary */
++ }
++ Tracev((stderr,&quot;\ncomprlen %lu(%lu) &quot;, s-&gt;compressed_len&gt;&gt;3,
++ s-&gt;compressed_len-7*eof));
++
++ return s-&gt;compressed_len &gt;&gt; 3;
++}
++
++/* ===========================================================================
++ * Save the match info and tally the frequency counts. Return true if
++ * the current block must be flushed.
++ */
++int _tr_tally (s, dist, lc)
++ deflate_state *s;
++ unsigned dist; /* distance of matched string */
++ unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */
++{
++ s-&gt;d_buf[s-&gt;last_lit] = (ush)dist;
++ s-&gt;l_buf[s-&gt;last_lit++] = (uch)lc;
++ if (dist == 0) {
++ /* lc is the unmatched char */
++ s-&gt;dyn_ltree[lc].Freq++;
++ } else {
++ s-&gt;matches++;
++ /* Here, lc is the match length - MIN_MATCH */
++ dist--; /* dist = match distance - 1 */
++ Assert((ush)dist &lt; (ush)MAX_DIST(s) &amp;&amp;
++ (ush)lc &lt;= (ush)(MAX_MATCH-MIN_MATCH) &amp;&amp;
++ (ush)d_code(dist) &lt; (ush)D_CODES, &quot;_tr_tally: bad match&quot;);
++
++ s-&gt;dyn_ltree[length_code[lc]+LITERALS+1].Freq++;
++ s-&gt;dyn_dtree[d_code(dist)].Freq++;
++ }
++
++ /* Try to guess if it is profitable to stop the current block here */
++ if (s-&gt;level &gt; 2 &amp;&amp; (s-&gt;last_lit &amp; 0xfff) == 0) {
++ /* Compute an upper bound for the compressed length */
++ ulg out_length = (ulg)s-&gt;last_lit*8L;
++ ulg in_length = (ulg)((long)s-&gt;strstart - s-&gt;block_start);
++ int dcode;
++ for (dcode = 0; dcode &lt; D_CODES; dcode++) {
++ out_length += (ulg)s-&gt;dyn_dtree[dcode].Freq *
++ (5L+extra_dbits[dcode]);
++ }
++ out_length &gt;&gt;= 3;
++ Tracev((stderr,&quot;\nlast_lit %u, in %ld, out ~%ld(%ld%%) &quot;,
++ s-&gt;last_lit, in_length, out_length,
++ 100L - out_length*100L/in_length));
++ if (s-&gt;matches &lt; s-&gt;last_lit/2 &amp;&amp; out_length &lt; in_length/2) return 1;
++ }
++ return (s-&gt;last_lit == s-&gt;lit_bufsize-1);
++ /* We avoid equality with lit_bufsize because of wraparound at 64K
++ * on 16 bit machines and because stored blocks are restricted to
++ * 64K-1 bytes.
++ */
++}
++
++/* ===========================================================================
++ * Send the block data compressed using the given Huffman trees
++ */
++local void compress_block(s, ltree, dtree)
++ deflate_state *s;
++ ct_data *ltree; /* literal tree */
++ ct_data *dtree; /* distance tree */
++{
++ unsigned dist; /* distance of matched string */
++ int lc; /* match length or unmatched char (if dist == 0) */
++ unsigned lx = 0; /* running index in l_buf */
++ unsigned code; /* the code to send */
++ int extra; /* number of extra bits to send */
++
++ if (s-&gt;last_lit != 0) do {
++ dist = s-&gt;d_buf[lx];
++ lc = s-&gt;l_buf[lx++];
++ if (dist == 0) {
++ send_code(s, lc, ltree); /* send a literal byte */
++ Tracecv(isgraph(lc), (stderr,&quot; '%c' &quot;, lc));
++ } else {
++ /* Here, lc is the match length - MIN_MATCH */
++ code = length_code[lc];
++ send_code(s, code+LITERALS+1, ltree); /* send the length code */
++ extra = extra_lbits[code];
++ if (extra != 0) {
++ lc -= base_length[code];
++ send_bits(s, lc, extra); /* send the extra length bits */
++ }
++ dist--; /* dist is now the match distance - 1 */
++ code = d_code(dist);
++ Assert (code &lt; D_CODES, &quot;bad d_code&quot;);
++
++ send_code(s, code, dtree); /* send the distance code */
++ extra = extra_dbits[code];
++ if (extra != 0) {
++ dist -= base_dist[code];
++ send_bits(s, dist, extra); /* send the extra distance bits */
++ }
++ } /* literal or match pair ? */
++
++ /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */
++ Assert(s-&gt;pending &lt; s-&gt;lit_bufsize + 2*lx, &quot;pendingBuf overflow&quot;);
++
++ } while (lx &lt; s-&gt;last_lit);
++
++ send_code(s, END_BLOCK, ltree);
++ s-&gt;last_eob_len = ltree[END_BLOCK].Len;
++}
++
++/* ===========================================================================
++ * Set the data type to ASCII or BINARY, using a crude approximation:
++ * binary if more than 20% of the bytes are &lt;= 6 or &gt;= 128, ascii otherwise.
++ * IN assertion: the fields freq of dyn_ltree are set and the total of all
++ * frequencies does not exceed 64K (to fit in an int on 16 bit machines).
++ */
++local void set_data_type(s)
++ deflate_state *s;
++{
++ int n = 0;
++ unsigned ascii_freq = 0;
++ unsigned bin_freq = 0;
++ while (n &lt; 7) bin_freq += s-&gt;dyn_ltree[n++].Freq;
++ while (n &lt; 128) ascii_freq += s-&gt;dyn_ltree[n++].Freq;
++ while (n &lt; LITERALS) bin_freq += s-&gt;dyn_ltree[n++].Freq;
++ s-&gt;data_type = (Byte)(bin_freq &gt; (ascii_freq &gt;&gt; 2) ? Z_BINARY : Z_ASCII);
++}
++
++/* ===========================================================================
++ * Reverse the first len bits of a code, using straightforward code (a faster
++ * method would use a table)
++ * IN assertion: 1 &lt;= len &lt;= 15
++ */
++local unsigned bi_reverse(code, len)
++ unsigned code; /* the value to invert */
++ int len; /* its bit length */
++{
++ register unsigned res = 0;
++ do {
++ res |= code &amp; 1;
++ code &gt;&gt;= 1, res &lt;&lt;= 1;
++ } while (--len &gt; 0);
++ return res &gt;&gt; 1;
++}
++
++/* ===========================================================================
++ * Flush the bit buffer, keeping at most 7 bits in it.
++ */
++local void bi_flush(s)
++ deflate_state *s;
++{
++ if (s-&gt;bi_valid == 16) {
++ put_short(s, s-&gt;bi_buf);
++ s-&gt;bi_buf = 0;
++ s-&gt;bi_valid = 0;
++ } else if (s-&gt;bi_valid &gt;= 8) {
++ put_byte(s, (Byte)s-&gt;bi_buf);
++ s-&gt;bi_buf &gt;&gt;= 8;
++ s-&gt;bi_valid -= 8;
++ }
++}
++
++/* ===========================================================================
++ * Flush the bit buffer and align the output on a byte boundary
++ */
++local void bi_windup(s)
++ deflate_state *s;
++{
++ if (s-&gt;bi_valid &gt; 8) {
++ put_short(s, s-&gt;bi_buf);
++ } else if (s-&gt;bi_valid &gt; 0) {
++ put_byte(s, (Byte)s-&gt;bi_buf);
++ }
++ s-&gt;bi_buf = 0;
++ s-&gt;bi_valid = 0;
++#ifdef DEBUG_ZLIB
++ s-&gt;bits_sent = (s-&gt;bits_sent+7) &amp; ~7;
++#endif
++}
++
++/* ===========================================================================
++ * Copy a stored block, storing first the length and its
++ * one's complement if requested.
++ */
++local void copy_block(s, buf, len, header)
++ deflate_state *s;
++ charf *buf; /* the input data */
++ unsigned len; /* its length */
++ int header; /* true if block header must be written */
++{
++ bi_windup(s); /* align on byte boundary */
++ s-&gt;last_eob_len = 8; /* enough lookahead for inflate */
++
++ if (header) {
++ put_short(s, (ush)len);
++ put_short(s, (ush)~len);
++#ifdef DEBUG_ZLIB
++ s-&gt;bits_sent += 2*16;
++#endif
++ }
++#ifdef DEBUG_ZLIB
++ s-&gt;bits_sent += (ulg)len&lt;&lt;3;
++#endif
++ /* bundle up the put_byte(s, *buf++) calls */
++ zmemcpy(&amp;s-&gt;pending_buf[s-&gt;pending], buf, len);
++ s-&gt;pending += len;
++}
++/* --- trees.c */
++
++/* +++ inflate.c */
++/* inflate.c -- zlib interface to inflate modules
++ * Copyright (C) 1995-1996 Mark Adler
++ * For conditions of distribution and use, see copyright notice in zlib.h
++ */
++
++/* #include &quot;zutil.h&quot; */
++
++/* +++ infblock.h */
++/* infblock.h -- header to use infblock.c
++ * Copyright (C) 1995-1996 Mark Adler
++ * For conditions of distribution and use, see copyright notice in zlib.h
++ */
++
++/* WARNING: this file should *not* be used by applications. It is
++ part of the implementation of the compression library and is
++ subject to change. Applications should only use zlib.h.
++ */
++
++struct inflate_blocks_state;
++typedef struct inflate_blocks_state FAR inflate_blocks_statef;
++
++extern inflate_blocks_statef * inflate_blocks_new OF((
++ z_streamp z,
++ check_func c, /* check function */
++ uInt w)); /* window size */
++
++extern int inflate_blocks OF((
++ inflate_blocks_statef *,
++ z_streamp ,
++ int)); /* initial return code */
++
++extern void inflate_blocks_reset OF((
++ inflate_blocks_statef *,
++ z_streamp ,
++ uLongf *)); /* check value on output */
++
++extern int inflate_blocks_free OF((
++ inflate_blocks_statef *,
++ z_streamp ,
++ uLongf *)); /* check value on output */
++
++extern void inflate_set_dictionary OF((
++ inflate_blocks_statef *s,
++ const Bytef *d, /* dictionary */
++ uInt n)); /* dictionary length */
++
++extern int inflate_addhistory OF((
++ inflate_blocks_statef *,
++ z_streamp));
++
++extern int inflate_packet_flush OF((
++ inflate_blocks_statef *));
++/* --- infblock.h */
++
++#ifndef NO_DUMMY_DECL
++struct inflate_blocks_state {int dummy;}; /* for buggy compilers */
++#endif
++
++/* inflate private state */
++struct internal_state {
++
++ /* mode */
++ enum {
++ METHOD, /* waiting for method byte */
++ FLAG, /* waiting for flag byte */
++ DICT4, /* four dictionary check bytes to go */
++ DICT3, /* three dictionary check bytes to go */
++ DICT2, /* two dictionary check bytes to go */
++ DICT1, /* one dictionary check byte to go */
++ DICT0, /* waiting for inflateSetDictionary */
++ BLOCKS, /* decompressing blocks */
++ CHECK4, /* four check bytes to go */
++ CHECK3, /* three check bytes to go */
++ CHECK2, /* two check bytes to go */
++ CHECK1, /* one check byte to go */
++ DONE, /* finished check, done */
++ BAD} /* got an error--stay here */
++ mode; /* current inflate mode */
++
++ /* mode dependent information */
++ union {
++ uInt method; /* if FLAGS, method byte */
++ struct {
++ uLong was; /* computed check value */
++ uLong need; /* stream check value */
++ } check; /* if CHECK, check values to compare */
++ uInt marker; /* if BAD, inflateSync's marker bytes count */
++ } sub; /* submode */
++
++ /* mode independent information */
++ int nowrap; /* flag for no wrapper */
++ uInt wbits; /* log2(window size) (8..15, defaults to 15) */
++ inflate_blocks_statef
++ *blocks; /* current inflate_blocks state */
++
++};
++
++
++int inflateReset(z)
++z_streamp z;
++{
++ uLong c;
++
++ if (z == Z_NULL || z-&gt;state == Z_NULL)
++ return Z_STREAM_ERROR;
++ z-&gt;total_in = z-&gt;total_out = 0;
++ z-&gt;msg = Z_NULL;
++ z-&gt;state-&gt;mode = z-&gt;state-&gt;nowrap ? BLOCKS : METHOD;
++ inflate_blocks_reset(z-&gt;state-&gt;blocks, z, &amp;c);
++ Trace((stderr, &quot;inflate: reset\n&quot;));
++ return Z_OK;
++}
++
++
++int inflateEnd(z)
++z_streamp z;
++{
++ uLong c;
++
++ if (z == Z_NULL || z-&gt;state == Z_NULL || z-&gt;zfree == Z_NULL)
++ return Z_STREAM_ERROR;
++ if (z-&gt;state-&gt;blocks != Z_NULL)
++ inflate_blocks_free(z-&gt;state-&gt;blocks, z, &amp;c);
++ ZFREE(z, z-&gt;state);
++ z-&gt;state = Z_NULL;
++ Trace((stderr, &quot;inflate: end\n&quot;));
++ return Z_OK;
++}
++
++
++int inflateInit2_(z, w, version, stream_size)
++z_streamp z;
++int w;
++const char *version;
++int stream_size;
++{
++ if (version == Z_NULL || version[0] != ZLIB_VERSION[0] ||
++ stream_size != sizeof(z_stream))
++ return Z_VERSION_ERROR;
++
++ /* initialize state */
++ if (z == Z_NULL)
++ return Z_STREAM_ERROR;
++ z-&gt;msg = Z_NULL;
++#ifndef NO_ZCFUNCS
++ if (z-&gt;zalloc == Z_NULL)
++ {
++ z-&gt;zalloc = zcalloc;
++ z-&gt;opaque = (voidpf)0;
++ }
++ if (z-&gt;zfree == Z_NULL) z-&gt;zfree = zcfree;
++#endif
++ if ((z-&gt;state = (struct internal_state FAR *)
++ ZALLOC(z,1,sizeof(struct internal_state))) == Z_NULL)
++ return Z_MEM_ERROR;
++ z-&gt;state-&gt;blocks = Z_NULL;
++
++ /* handle undocumented nowrap option (no zlib header or check) */
++ z-&gt;state-&gt;nowrap = 0;
++ if (w &lt; 0)
++ {
++ w = - w;
++ z-&gt;state-&gt;nowrap = 1;
++ }
++
++ /* set window size */
++ if (w &lt; 8 || w &gt; 15)
++ {
++ inflateEnd(z);
++ return Z_STREAM_ERROR;
++ }
++ z-&gt;state-&gt;wbits = (uInt)w;
++
++ /* create inflate_blocks state */
++ if ((z-&gt;state-&gt;blocks =
++ inflate_blocks_new(z, z-&gt;state-&gt;nowrap ? Z_NULL : adler32, (uInt)1 &lt;&lt; w))
++ == Z_NULL)
++ {
++ inflateEnd(z);
++ return Z_MEM_ERROR;
++ }
++ Trace((stderr, &quot;inflate: allocated\n&quot;));
++
++ /* reset state */
++ inflateReset(z);
++ return Z_OK;
++}
++
++
++int inflateInit_(z, version, stream_size)
++z_streamp z;
++const char *version;
++int stream_size;
++{
++ return inflateInit2_(z, DEF_WBITS, version, stream_size);
++}
++
++
++#define NEEDBYTE {if(z-&gt;avail_in==0)goto empty;r=Z_OK;}
++#define NEXTBYTE (z-&gt;avail_in--,z-&gt;total_in++,*z-&gt;next_in++)
++
++int inflate(z, f)
++z_streamp z;
++int f;
++{
++ int r;
++ uInt b;
++
++ if (z == Z_NULL || z-&gt;state == Z_NULL || z-&gt;next_in == Z_NULL || f &lt; 0)
++ return Z_STREAM_ERROR;
++ r = Z_BUF_ERROR;
++ while (1) switch (z-&gt;state-&gt;mode)
++ {
++ case METHOD:
++ NEEDBYTE
++ if (((z-&gt;state-&gt;sub.method = NEXTBYTE) &amp; 0xf) != Z_DEFLATED)
++ {
++ z-&gt;state-&gt;mode = BAD;
++ z-&gt;msg = (char*)&quot;unknown compression method&quot;;
++ z-&gt;state-&gt;sub.marker = 5; /* can't try inflateSync */
++ break;
++ }
++ if ((z-&gt;state-&gt;sub.method &gt;&gt; 4) + 8 &gt; z-&gt;state-&gt;wbits)
++ {
++ z-&gt;state-&gt;mode = BAD;
++ z-&gt;msg = (char*)&quot;invalid window size&quot;;
++ z-&gt;state-&gt;sub.marker = 5; /* can't try inflateSync */
++ break;
++ }
++ z-&gt;state-&gt;mode = FLAG;
++ case FLAG:
++ NEEDBYTE
++ b = NEXTBYTE;
++ if (((z-&gt;state-&gt;sub.method &lt;&lt; 8) + b) % 31)
++ {
++ z-&gt;state-&gt;mode = BAD;
++ z-&gt;msg = (char*)&quot;incorrect header check&quot;;
++ z-&gt;state-&gt;sub.marker = 5; /* can't try inflateSync */
++ break;
++ }
++ Trace((stderr, &quot;inflate: zlib header ok\n&quot;));
++ if (!(b &amp; PRESET_DICT))
++ {
++ z-&gt;state-&gt;mode = BLOCKS;
++ break;
++ }
++ z-&gt;state-&gt;mode = DICT4;
++ case DICT4:
++ NEEDBYTE
++ z-&gt;state-&gt;sub.check.need = (uLong)NEXTBYTE &lt;&lt; 24;
++ z-&gt;state-&gt;mode = DICT3;
++ case DICT3:
++ NEEDBYTE
++ z-&gt;state-&gt;sub.check.need += (uLong)NEXTBYTE &lt;&lt; 16;
++ z-&gt;state-&gt;mode = DICT2;
++ case DICT2:
++ NEEDBYTE
++ z-&gt;state-&gt;sub.check.need += (uLong)NEXTBYTE &lt;&lt; 8;
++ z-&gt;state-&gt;mode = DICT1;
++ case DICT1:
++ NEEDBYTE
++ z-&gt;state-&gt;sub.check.need += (uLong)NEXTBYTE;
++ z-&gt;adler = z-&gt;state-&gt;sub.check.need;
++ z-&gt;state-&gt;mode = DICT0;
++ return Z_NEED_DICT;
++ case DICT0:
++ z-&gt;state-&gt;mode = BAD;
++ z-&gt;msg = (char*)&quot;need dictionary&quot;;
++ z-&gt;state-&gt;sub.marker = 0; /* can try inflateSync */
++ return Z_STREAM_ERROR;
++ case BLOCKS:
++ r = inflate_blocks(z-&gt;state-&gt;blocks, z, r);
++ if (f == Z_PACKET_FLUSH &amp;&amp; z-&gt;avail_in == 0 &amp;&amp; z-&gt;avail_out != 0)
++ r = inflate_packet_flush(z-&gt;state-&gt;blocks);
++ if (r == Z_DATA_ERROR)
++ {
++ z-&gt;state-&gt;mode = BAD;
++ z-&gt;state-&gt;sub.marker = 0; /* can try inflateSync */
++ break;
++ }
++ if (r != Z_STREAM_END)
++ return r;
++ r = Z_OK;
++ inflate_blocks_reset(z-&gt;state-&gt;blocks, z, &amp;z-&gt;state-&gt;sub.check.was);
++ if (z-&gt;state-&gt;nowrap)
++ {
++ z-&gt;state-&gt;mode = DONE;
++ break;
++ }
++ z-&gt;state-&gt;mode = CHECK4;
++ case CHECK4:
++ NEEDBYTE
++ z-&gt;state-&gt;sub.check.need = (uLong)NEXTBYTE &lt;&lt; 24;
++ z-&gt;state-&gt;mode = CHECK3;
++ case CHECK3:
++ NEEDBYTE
++ z-&gt;state-&gt;sub.check.need += (uLong)NEXTBYTE &lt;&lt; 16;
++ z-&gt;state-&gt;mode = CHECK2;
++ case CHECK2:
++ NEEDBYTE
++ z-&gt;state-&gt;sub.check.need += (uLong)NEXTBYTE &lt;&lt; 8;
++ z-&gt;state-&gt;mode = CHECK1;
++ case CHECK1:
++ NEEDBYTE
++ z-&gt;state-&gt;sub.check.need += (uLong)NEXTBYTE;
++
++ if (z-&gt;state-&gt;sub.check.was != z-&gt;state-&gt;sub.check.need)
++ {
++ z-&gt;state-&gt;mode = BAD;
++ z-&gt;msg = (char*)&quot;incorrect data check&quot;;
++ z-&gt;state-&gt;sub.marker = 5; /* can't try inflateSync */
++ break;
++ }
++ Trace((stderr, &quot;inflate: zlib check ok\n&quot;));
++ z-&gt;state-&gt;mode = DONE;
++ case DONE:
++ return Z_STREAM_END;
++ case BAD:
++ return Z_DATA_ERROR;
++ default:
++ return Z_STREAM_ERROR;
++ }
++
++ empty:
++ if (f != Z_PACKET_FLUSH)
++ return r;
++ z-&gt;state-&gt;mode = BAD;
++ z-&gt;msg = (char *)&quot;need more for packet flush&quot;;
++ z-&gt;state-&gt;sub.marker = 0; /* can try inflateSync */
++ return Z_DATA_ERROR;
++}
++
++
++int inflateSetDictionary(z, dictionary, dictLength)
++z_streamp z;
++const Bytef *dictionary;
++uInt dictLength;
++{
++ uInt length = dictLength;
++
++ if (z == Z_NULL || z-&gt;state == Z_NULL || z-&gt;state-&gt;mode != DICT0)
++ return Z_STREAM_ERROR;
++
++ if (adler32(1L, dictionary, dictLength) != z-&gt;adler) return Z_DATA_ERROR;
++ z-&gt;adler = 1L;
++
++ if (length &gt;= ((uInt)1&lt;&lt;z-&gt;state-&gt;wbits))
++ {
++ length = (1&lt;&lt;z-&gt;state-&gt;wbits)-1;
++ dictionary += dictLength - length;
++ }
++ inflate_set_dictionary(z-&gt;state-&gt;blocks, dictionary, length);
++ z-&gt;state-&gt;mode = BLOCKS;
++ return Z_OK;
++}
++
++/*
++ * This subroutine adds the data at next_in/avail_in to the output history
++ * without performing any output. The output buffer must be &quot;caught up&quot;;
++ * i.e. no pending output (hence s-&gt;read equals s-&gt;write), and the state must
++ * be BLOCKS (i.e. we should be willing to see the start of a series of
++ * BLOCKS). On exit, the output will also be caught up, and the checksum
++ * will have been updated if need be.
++ */
++
++int inflateIncomp(z)
++z_stream *z;
++{
++ if (z-&gt;state-&gt;mode != BLOCKS)
++ return Z_DATA_ERROR;
++ return inflate_addhistory(z-&gt;state-&gt;blocks, z);
++}
++
++
++int inflateSync(z)
++z_streamp z;
++{
++ uInt n; /* number of bytes to look at */
++ Bytef *p; /* pointer to bytes */
++ uInt m; /* number of marker bytes found in a row */
++ uLong r, w; /* temporaries to save total_in and total_out */
++
++ /* set up */
++ if (z == Z_NULL || z-&gt;state == Z_NULL)
++ return Z_STREAM_ERROR;
++ if (z-&gt;state-&gt;mode != BAD)
++ {
++ z-&gt;state-&gt;mode = BAD;
++ z-&gt;state-&gt;sub.marker = 0;
++ }
++ if ((n = z-&gt;avail_in) == 0)
++ return Z_BUF_ERROR;
++ p = z-&gt;next_in;
++ m = z-&gt;state-&gt;sub.marker;
++
++ /* search */
++ while (n &amp;&amp; m &lt; 4)
++ {
++ if (*p == (Byte)(m &lt; 2 ? 0 : 0xff))
++ m++;
++ else if (*p)
++ m = 0;
++ else
++ m = 4 - m;
++ p++, n--;
++ }
++
++ /* restore */
++ z-&gt;total_in += p - z-&gt;next_in;
++ z-&gt;next_in = p;
++ z-&gt;avail_in = n;
++ z-&gt;state-&gt;sub.marker = m;
++
++ /* return no joy or set up to restart on a new block */
++ if (m != 4)
++ return Z_DATA_ERROR;
++ r = z-&gt;total_in; w = z-&gt;total_out;
++ inflateReset(z);
++ z-&gt;total_in = r; z-&gt;total_out = w;
++ z-&gt;state-&gt;mode = BLOCKS;
++ return Z_OK;
++}
++
++#undef NEEDBYTE
++#undef NEXTBYTE
++/* --- inflate.c */
++
++/* +++ infblock.c */
++/* infblock.c -- interpret and process block types to last block
++ * Copyright (C) 1995-1996 Mark Adler
++ * For conditions of distribution and use, see copyright notice in zlib.h
++ */
++
++/* #include &quot;zutil.h&quot; */
++/* #include &quot;infblock.h&quot; */
++
++/* +++ inftrees.h */
++/* inftrees.h -- header to use inftrees.c
++ * Copyright (C) 1995-1996 Mark Adler
++ * For conditions of distribution and use, see copyright notice in zlib.h
++ */
++
++/* WARNING: this file should *not* be used by applications. It is
++ part of the implementation of the compression library and is
++ subject to change. Applications should only use zlib.h.
++ */
++
++/* Huffman code lookup table entry--this entry is four bytes for machines
++ that have 16-bit pointers (e.g. PC's in the small or medium model). */
++
++typedef struct inflate_huft_s FAR inflate_huft;
++
++struct inflate_huft_s {
++ union {
++ struct {
++ Byte Exop; /* number of extra bits or operation */
++ Byte Bits; /* number of bits in this code or subcode */
++ } what;
++ Bytef *pad; /* pad structure to a power of 2 (4 bytes for */
++ } word; /* 16-bit, 8 bytes for 32-bit machines) */
++ union {
++ uInt Base; /* literal, length base, or distance base */
++ inflate_huft *Next; /* pointer to next level of table */
++ } more;
++};
++
++#ifdef DEBUG_ZLIB
++ extern uInt inflate_hufts;
++#endif
++
++extern int inflate_trees_bits OF((
++ uIntf *, /* 19 code lengths */
++ uIntf *, /* bits tree desired/actual depth */
++ inflate_huft * FAR *, /* bits tree result */
++ z_streamp )); /* for zalloc, zfree functions */
++
++extern int inflate_trees_dynamic OF((
++ uInt, /* number of literal/length codes */
++ uInt, /* number of distance codes */
++ uIntf *, /* that many (total) code lengths */
++ uIntf *, /* literal desired/actual bit depth */
++ uIntf *, /* distance desired/actual bit depth */
++ inflate_huft * FAR *, /* literal/length tree result */
++ inflate_huft * FAR *, /* distance tree result */
++ z_streamp )); /* for zalloc, zfree functions */
++
++extern int inflate_trees_fixed OF((
++ uIntf *, /* literal desired/actual bit depth */
++ uIntf *, /* distance desired/actual bit depth */
++ inflate_huft * FAR *, /* literal/length tree result */
++ inflate_huft * FAR *)); /* distance tree result */
++
++extern int inflate_trees_free OF((
++ inflate_huft *, /* tables to free */
++ z_streamp )); /* for zfree function */
++
++/* --- inftrees.h */
++
++/* +++ infcodes.h */
++/* infcodes.h -- header to use infcodes.c
++ * Copyright (C) 1995-1996 Mark Adler
++ * For conditions of distribution and use, see copyright notice in zlib.h
++ */
++
++/* WARNING: this file should *not* be used by applications. It is
++ part of the implementation of the compression library and is
++ subject to change. Applications should only use zlib.h.
++ */
++
++struct inflate_codes_state;
++typedef struct inflate_codes_state FAR inflate_codes_statef;
++
++extern inflate_codes_statef *inflate_codes_new OF((
++ uInt, uInt,
++ inflate_huft *, inflate_huft *,
++ z_streamp ));
++
++extern int inflate_codes OF((
++ inflate_blocks_statef *,
++ z_streamp ,
++ int));
++
++extern void inflate_codes_free OF((
++ inflate_codes_statef *,
++ z_streamp ));
++
++/* --- infcodes.h */
++
++/* +++ infutil.h */
++/* infutil.h -- types and macros common to blocks and codes
++ * Copyright (C) 1995-1996 Mark Adler
++ * For conditions of distribution and use, see copyright notice in zlib.h
++ */
++
++/* WARNING: this file should *not* be used by applications. It is
++ part of the implementation of the compression library and is
++ subject to change. Applications should only use zlib.h.
++ */
++
++#ifndef _INFUTIL_H
++#define _INFUTIL_H
++
++typedef enum {
++ TYPE, /* get type bits (3, including end bit) */
++ LENS, /* get lengths for stored */
++ STORED, /* processing stored block */
++ TABLE, /* get table lengths */
++ BTREE, /* get bit lengths tree for a dynamic block */
++ DTREE, /* get length, distance trees for a dynamic block */
++ CODES, /* processing fixed or dynamic block */
++ DRY, /* output remaining window bytes */
++ DONEB, /* finished last block, done */
++ BADB} /* got a data error--stuck here */
++inflate_block_mode;
++
++/* inflate blocks semi-private state */
++struct inflate_blocks_state {
++
++ /* mode */
++ inflate_block_mode mode; /* current inflate_block mode */
++
++ /* mode dependent information */
++ union {
++ uInt left; /* if STORED, bytes left to copy */
++ struct {
++ uInt table; /* table lengths (14 bits) */
++ uInt index; /* index into blens (or border) */
++ uIntf *blens; /* bit lengths of codes */
++ uInt bb; /* bit length tree depth */
++ inflate_huft *tb; /* bit length decoding tree */
++ } trees; /* if DTREE, decoding info for trees */
++ struct {
++ inflate_huft *tl;
++ inflate_huft *td; /* trees to free */
++ inflate_codes_statef
++ *codes;
++ } decode; /* if CODES, current state */
++ } sub; /* submode */
++ uInt last; /* true if this block is the last block */
++
++ /* mode independent information */
++ uInt bitk; /* bits in bit buffer */
++ uLong bitb; /* bit buffer */
++ Bytef *window; /* sliding window */
++ Bytef *end; /* one byte after sliding window */
++ Bytef *read; /* window read pointer */
++ Bytef *write; /* window write pointer */
++ check_func checkfn; /* check function */
++ uLong check; /* check on output */
++
++};
++
++
++/* defines for inflate input/output */
++/* update pointers and return */
++#define UPDBITS {s-&gt;bitb=b;s-&gt;bitk=k;}
++#define UPDIN {z-&gt;avail_in=n;z-&gt;total_in+=p-z-&gt;next_in;z-&gt;next_in=p;}
++#define UPDOUT {s-&gt;write=q;}
++#define UPDATE {UPDBITS UPDIN UPDOUT}
++#define LEAVE {UPDATE return inflate_flush(s,z,r);}
++/* get bytes and bits */
++#define LOADIN {p=z-&gt;next_in;n=z-&gt;avail_in;b=s-&gt;bitb;k=s-&gt;bitk;}
++#define NEEDBYTE {if(n)r=Z_OK;else LEAVE}
++#define NEXTBYTE (n--,*p++)
++#define NEEDBITS(j) {while(k&lt;(j)){NEEDBYTE;b|=((uLong)NEXTBYTE)&lt;&lt;k;k+=8;}}
++#define DUMPBITS(j) {b&gt;&gt;=(j);k-=(j);}
++/* output bytes */
++#define WAVAIL (uInt)(q&lt;s-&gt;read?s-&gt;read-q-1:s-&gt;end-q)
++#define LOADOUT {q=s-&gt;write;m=(uInt)WAVAIL;}
++#define WWRAP {if(q==s-&gt;end&amp;&amp;s-&gt;read!=s-&gt;window){q=s-&gt;window;m=(uInt)WAVAIL;}}
++#define FLUSH {UPDOUT r=inflate_flush(s,z,r); LOADOUT}
++#define NEEDOUT {if(m==0){WWRAP if(m==0){FLUSH WWRAP if(m==0) LEAVE}}r=Z_OK;}
++#define OUTBYTE(a) {*q++=(Byte)(a);m--;}
++/* load local pointers */
++#define LOAD {LOADIN LOADOUT}
++
++/* masks for lower bits (size given to avoid silly warnings with Visual C++) */
++extern uInt inflate_mask[17];
++
++/* copy as much as possible from the sliding window to the output area */
++extern int inflate_flush OF((
++ inflate_blocks_statef *,
++ z_streamp ,
++ int));
++
++#ifndef NO_DUMMY_DECL
++struct internal_state {int dummy;}; /* for buggy compilers */
++#endif
++
++#endif
++/* --- infutil.h */
++
++#ifndef NO_DUMMY_DECL
++struct inflate_codes_state {int dummy;}; /* for buggy compilers */
++#endif
++
++/* Table for deflate from PKZIP's appnote.txt. */
++local const uInt border[] = { /* Order of the bit length code lengths */
++ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15};
++
++/*
++ Notes beyond the 1.93a appnote.txt:
++
++ 1. Distance pointers never point before the beginning of the output
++ stream.
++ 2. Distance pointers can point back across blocks, up to 32k away.
++ 3. There is an implied maximum of 7 bits for the bit length table and
++ 15 bits for the actual data.
++ 4. If only one code exists, then it is encoded using one bit. (Zero
++ would be more efficient, but perhaps a little confusing.) If two
++ codes exist, they are coded using one bit each (0 and 1).
++ 5. There is no way of sending zero distance codes--a dummy must be
++ sent if there are none. (History: a pre 2.0 version of PKZIP would
++ store blocks with no distance codes, but this was discovered to be
++ too harsh a criterion.) Valid only for 1.93a. 2.04c does allow
++ zero distance codes, which is sent as one code of zero bits in
++ length.
++ 6. There are up to 286 literal/length codes. Code 256 represents the
++ end-of-block. Note however that the static length tree defines
++ 288 codes just to fill out the Huffman codes. Codes 286 and 287
++ cannot be used though, since there is no length base or extra bits
++ defined for them. Similarily, there are up to 30 distance codes.
++ However, static trees define 32 codes (all 5 bits) to fill out the
++ Huffman codes, but the last two had better not show up in the data.
++ 7. Unzip can check dynamic Huffman blocks for complete code sets.
++ The exception is that a single code would not be complete (see #4).
++ 8. The five bits following the block type is really the number of
++ literal codes sent minus 257.
++ 9. Length codes 8,16,16 are interpreted as 13 length codes of 8 bits
++ (1+6+6). Therefore, to output three times the length, you output
++ three codes (1+1+1), whereas to output four times the same length,
++ you only need two codes (1+3). Hmm.
++ 10. In the tree reconstruction algorithm, Code = Code + Increment
++ only if BitLength(i) is not zero. (Pretty obvious.)
++ 11. Correction: 4 Bits: # of Bit Length codes - 4 (4 - 19)
++ 12. Note: length code 284 can represent 227-258, but length code 285
++ really is 258. The last length deserves its own, short code
++ since it gets used a lot in very redundant files. The length
++ 258 is special since 258 - 3 (the min match length) is 255.
++ 13. The literal/length and distance code bit lengths are read as a
++ single stream of lengths. It is possible (and advantageous) for
++ a repeat code (16, 17, or 18) to go across the boundary between
++ the two sets of lengths.
++ */
++
++
++void inflate_blocks_reset(s, z, c)
++inflate_blocks_statef *s;
++z_streamp z;
++uLongf *c;
++{
++ if (s-&gt;checkfn != Z_NULL)
++ *c = s-&gt;check;
++ if (s-&gt;mode == BTREE || s-&gt;mode == DTREE)
++ ZFREE(z, s-&gt;sub.trees.blens);
++ if (s-&gt;mode == CODES)
++ {
++ inflate_codes_free(s-&gt;sub.decode.codes, z);
++ inflate_trees_free(s-&gt;sub.decode.td, z);
++ inflate_trees_free(s-&gt;sub.decode.tl, z);
++ }
++ s-&gt;mode = TYPE;
++ s-&gt;bitk = 0;
++ s-&gt;bitb = 0;
++ s-&gt;read = s-&gt;write = s-&gt;window;
++ if (s-&gt;checkfn != Z_NULL)
++ z-&gt;adler = s-&gt;check = (*s-&gt;checkfn)(0L, Z_NULL, 0);
++ Trace((stderr, &quot;inflate: blocks reset\n&quot;));
++}
++
++
++inflate_blocks_statef *inflate_blocks_new(z, c, w)
++z_streamp z;
++check_func c;
++uInt w;
++{
++ inflate_blocks_statef *s;
++
++ if ((s = (inflate_blocks_statef *)ZALLOC
++ (z,1,sizeof(struct inflate_blocks_state))) == Z_NULL)
++ return s;
++ if ((s-&gt;window = (Bytef *)ZALLOC(z, 1, w)) == Z_NULL)
++ {
++ ZFREE(z, s);
++ return Z_NULL;
++ }
++ s-&gt;end = s-&gt;window + w;
++ s-&gt;checkfn = c;
++ s-&gt;mode = TYPE;
++ Trace((stderr, &quot;inflate: blocks allocated\n&quot;));
++ inflate_blocks_reset(s, z, &amp;s-&gt;check);
++ return s;
++}
++
++
++#ifdef DEBUG_ZLIB
++ extern uInt inflate_hufts;
++#endif
++int inflate_blocks(s, z, r)
++inflate_blocks_statef *s;
++z_streamp z;
++int r;
++{
++ uInt t; /* temporary storage */
++ uLong b; /* bit buffer */
++ uInt k; /* bits in bit buffer */
++ Bytef *p; /* input data pointer */
++ uInt n; /* bytes available there */
++ Bytef *q; /* output window write pointer */
++ uInt m; /* bytes to end of window or read pointer */
++
++ /* copy input/output information to locals (UPDATE macro restores) */
++ LOAD
++
++ /* process input based on current state */
++ while (1) switch (s-&gt;mode)
++ {
++ case TYPE:
++ NEEDBITS(3)
++ t = (uInt)b &amp; 7;
++ s-&gt;last = t &amp; 1;
++ switch (t &gt;&gt; 1)
++ {
++ case 0: /* stored */
++ Trace((stderr, &quot;inflate: stored block%s\n&quot;,
++ s-&gt;last ? &quot; (last)&quot; : &quot;&quot;));
++ DUMPBITS(3)
++ t = k &amp; 7; /* go to byte boundary */
++ DUMPBITS(t)
++ s-&gt;mode = LENS; /* get length of stored block */
++ break;
++ case 1: /* fixed */
++ Trace((stderr, &quot;inflate: fixed codes block%s\n&quot;,
++ s-&gt;last ? &quot; (last)&quot; : &quot;&quot;));
++ {
++ uInt bl, bd;
++ inflate_huft *tl, *td;
++
++ inflate_trees_fixed(&amp;bl, &amp;bd, &amp;tl, &amp;td);
++ s-&gt;sub.decode.codes = inflate_codes_new(bl, bd, tl, td, z);
++ if (s-&gt;sub.decode.codes == Z_NULL)
++ {
++ r = Z_MEM_ERROR;
++ LEAVE
++ }
++ s-&gt;sub.decode.tl = Z_NULL; /* don't try to free these */
++ s-&gt;sub.decode.td = Z_NULL;
++ }
++ DUMPBITS(3)
++ s-&gt;mode = CODES;
++ break;
++ case 2: /* dynamic */
++ Trace((stderr, &quot;inflate: dynamic codes block%s\n&quot;,
++ s-&gt;last ? &quot; (last)&quot; : &quot;&quot;));
++ DUMPBITS(3)
++ s-&gt;mode = TABLE;
++ break;
++ case 3: /* illegal */
++ DUMPBITS(3)
++ s-&gt;mode = BADB;
++ z-&gt;msg = (char*)&quot;invalid block type&quot;;
++ r = Z_DATA_ERROR;
++ LEAVE
++ }
++ break;
++ case LENS:
++ NEEDBITS(32)
++ if ((((~b) &gt;&gt; 16) &amp; 0xffff) != (b &amp; 0xffff))
++ {
++ s-&gt;mode = BADB;
++ z-&gt;msg = (char*)&quot;invalid stored block lengths&quot;;
++ r = Z_DATA_ERROR;
++ LEAVE
++ }
++ s-&gt;sub.left = (uInt)b &amp; 0xffff;
++ b = k = 0; /* dump bits */
++ Tracev((stderr, &quot;inflate: stored length %u\n&quot;, s-&gt;sub.left));
++ s-&gt;mode = s-&gt;sub.left ? STORED : (s-&gt;last ? DRY : TYPE);
++ break;
++ case STORED:
++ if (n == 0)
++ LEAVE
++ NEEDOUT
++ t = s-&gt;sub.left;
++ if (t &gt; n) t = n;
++ if (t &gt; m) t = m;
++ zmemcpy(q, p, t);
++ p += t; n -= t;
++ q += t; m -= t;
++ if ((s-&gt;sub.left -= t) != 0)
++ break;
++ Tracev((stderr, &quot;inflate: stored end, %lu total out\n&quot;,
++ z-&gt;total_out + (q &gt;= s-&gt;read ? q - s-&gt;read :
++ (s-&gt;end - s-&gt;read) + (q - s-&gt;window))));
++ s-&gt;mode = s-&gt;last ? DRY : TYPE;
++ break;
++ case TABLE:
++ NEEDBITS(14)
++ s-&gt;sub.trees.table = t = (uInt)b &amp; 0x3fff;
++#ifndef PKZIP_BUG_WORKAROUND
++ if ((t &amp; 0x1f) &gt; 29 || ((t &gt;&gt; 5) &amp; 0x1f) &gt; 29)
++ {
++ s-&gt;mode = BADB;
++ z-&gt;msg = (char*)&quot;too many length or distance symbols&quot;;
++ r = Z_DATA_ERROR;
++ LEAVE
++ }
++#endif
++ t = 258 + (t &amp; 0x1f) + ((t &gt;&gt; 5) &amp; 0x1f);
++ if (t &lt; 19)
++ t = 19;
++ if ((s-&gt;sub.trees.blens = (uIntf*)ZALLOC(z, t, sizeof(uInt))) == Z_NULL)
++ {
++ r = Z_MEM_ERROR;
++ LEAVE
++ }
++ DUMPBITS(14)
++ s-&gt;sub.trees.index = 0;
++ Tracev((stderr, &quot;inflate: table sizes ok\n&quot;));
++ s-&gt;mode = BTREE;
++ case BTREE:
++ while (s-&gt;sub.trees.index &lt; 4 + (s-&gt;sub.trees.table &gt;&gt; 10))
++ {
++ NEEDBITS(3)
++ s-&gt;sub.trees.blens[border[s-&gt;sub.trees.index++]] = (uInt)b &amp; 7;
++ DUMPBITS(3)
++ }
++ while (s-&gt;sub.trees.index &lt; 19)
++ s-&gt;sub.trees.blens[border[s-&gt;sub.trees.index++]] = 0;
++ s-&gt;sub.trees.bb = 7;
++ t = inflate_trees_bits(s-&gt;sub.trees.blens, &amp;s-&gt;sub.trees.bb,
++ &amp;s-&gt;sub.trees.tb, z);
++ if (t != Z_OK)
++ {
++ ZFREE(z, s-&gt;sub.trees.blens);
++ r = t;
++ if (r == Z_DATA_ERROR)
++ s-&gt;mode = BADB;
++ LEAVE
++ }
++ s-&gt;sub.trees.index = 0;
++ Tracev((stderr, &quot;inflate: bits tree ok\n&quot;));
++ s-&gt;mode = DTREE;
++ case DTREE:
++ while (t = s-&gt;sub.trees.table,
++ s-&gt;sub.trees.index &lt; 258 + (t &amp; 0x1f) + ((t &gt;&gt; 5) &amp; 0x1f))
++ {
++ inflate_huft *h;
++ uInt i, j, c;
++
++ t = s-&gt;sub.trees.bb;
++ NEEDBITS(t)
++ h = s-&gt;sub.trees.tb + ((uInt)b &amp; inflate_mask[t]);
++ t = h-&gt;word.what.Bits;
++ c = h-&gt;more.Base;
++ if (c &lt; 16)
++ {
++ DUMPBITS(t)
++ s-&gt;sub.trees.blens[s-&gt;sub.trees.index++] = c;
++ }
++ else /* c == 16..18 */
++ {
++ i = c == 18 ? 7 : c - 14;
++ j = c == 18 ? 11 : 3;
++ NEEDBITS(t + i)
++ DUMPBITS(t)
++ j += (uInt)b &amp; inflate_mask[i];
++ DUMPBITS(i)
++ i = s-&gt;sub.trees.index;
++ t = s-&gt;sub.trees.table;
++ if (i + j &gt; 258 + (t &amp; 0x1f) + ((t &gt;&gt; 5) &amp; 0x1f) ||
++ (c == 16 &amp;&amp; i &lt; 1))
++ {
++ inflate_trees_free(s-&gt;sub.trees.tb, z);
++ ZFREE(z, s-&gt;sub.trees.blens);
++ s-&gt;mode = BADB;
++ z-&gt;msg = (char*)&quot;invalid bit length repeat&quot;;
++ r = Z_DATA_ERROR;
++ LEAVE
++ }
++ c = c == 16 ? s-&gt;sub.trees.blens[i - 1] : 0;
++ do {
++ s-&gt;sub.trees.blens[i++] = c;
++ } while (--j);
++ s-&gt;sub.trees.index = i;
++ }
++ }
++ inflate_trees_free(s-&gt;sub.trees.tb, z);
++ s-&gt;sub.trees.tb = Z_NULL;
++ {
++ uInt bl, bd;
++ inflate_huft *tl, *td;
++ inflate_codes_statef *c;
++
++ bl = 9; /* must be &lt;= 9 for lookahead assumptions */
++ bd = 6; /* must be &lt;= 9 for lookahead assumptions */
++ t = s-&gt;sub.trees.table;
++#ifdef DEBUG_ZLIB
++ inflate_hufts = 0;
++#endif
++ t = inflate_trees_dynamic(257 + (t &amp; 0x1f), 1 + ((t &gt;&gt; 5) &amp; 0x1f),
++ s-&gt;sub.trees.blens, &amp;bl, &amp;bd, &amp;tl, &amp;td, z);
++ ZFREE(z, s-&gt;sub.trees.blens);
++ if (t != Z_OK)
++ {
++ if (t == (uInt)Z_DATA_ERROR)
++ s-&gt;mode = BADB;
++ r = t;
++ LEAVE
++ }
++ Tracev((stderr, &quot;inflate: trees ok, %d * %d bytes used\n&quot;,
++ inflate_hufts, sizeof(inflate_huft)));
++ if ((c = inflate_codes_new(bl, bd, tl, td, z)) == Z_NULL)
++ {
++ inflate_trees_free(td, z);
++ inflate_trees_free(tl, z);
++ r = Z_MEM_ERROR;
++ LEAVE
++ }
++ s-&gt;sub.decode.codes = c;
++ s-&gt;sub.decode.tl = tl;
++ s-&gt;sub.decode.td = td;
++ }
++ s-&gt;mode = CODES;
++ case CODES:
++ UPDATE
++ if ((r = inflate_codes(s, z, r)) != Z_STREAM_END)
++ return inflate_flush(s, z, r);
++ r = Z_OK;
++ inflate_codes_free(s-&gt;sub.decode.codes, z);
++ inflate_trees_free(s-&gt;sub.decode.td, z);
++ inflate_trees_free(s-&gt;sub.decode.tl, z);
++ LOAD
++ Tracev((stderr, &quot;inflate: codes end, %lu total out\n&quot;,
++ z-&gt;total_out + (q &gt;= s-&gt;read ? q - s-&gt;read :
++ (s-&gt;end - s-&gt;read) + (q - s-&gt;window))));
++ if (!s-&gt;last)
++ {
++ s-&gt;mode = TYPE;
++ break;
++ }
++ if (k &gt; 7) /* return unused byte, if any */
++ {
++ Assert(k &lt; 16, &quot;inflate_codes grabbed too many bytes&quot;)
++ k -= 8;
++ n++;
++ p--; /* can always return one */
++ }
++ s-&gt;mode = DRY;
++ case DRY:
++ FLUSH
++ if (s-&gt;read != s-&gt;write)
++ LEAVE
++ s-&gt;mode = DONEB;
++ case DONEB:
++ r = Z_STREAM_END;
++ LEAVE
++ case BADB:
++ r = Z_DATA_ERROR;
++ LEAVE
++ default:
++ r = Z_STREAM_ERROR;
++ LEAVE
++ }
++}
++
++
++int inflate_blocks_free(s, z, c)
++inflate_blocks_statef *s;
++z_streamp z;
++uLongf *c;
++{
++ inflate_blocks_reset(s, z, c);
++ ZFREE(z, s-&gt;window);
++ ZFREE(z, s);
++ Trace((stderr, &quot;inflate: blocks freed\n&quot;));
++ return Z_OK;
++}
++
++
++void inflate_set_dictionary(s, d, n)
++inflate_blocks_statef *s;
++const Bytef *d;
++uInt n;
++{
++ zmemcpy((charf *)s-&gt;window, d, n);
++ s-&gt;read = s-&gt;write = s-&gt;window + n;
++}
++
++/*
++ * This subroutine adds the data at next_in/avail_in to the output history
++ * without performing any output. The output buffer must be &quot;caught up&quot;;
++ * i.e. no pending output (hence s-&gt;read equals s-&gt;write), and the state must
++ * be BLOCKS (i.e. we should be willing to see the start of a series of
++ * BLOCKS). On exit, the output will also be caught up, and the checksum
++ * will have been updated if need be.
++ */
++int inflate_addhistory(s, z)
++inflate_blocks_statef *s;
++z_stream *z;
++{
++ uLong b; /* bit buffer */ /* NOT USED HERE */
++ uInt k; /* bits in bit buffer */ /* NOT USED HERE */
++ uInt t; /* temporary storage */
++ Bytef *p; /* input data pointer */
++ uInt n; /* bytes available there */
++ Bytef *q; /* output window write pointer */
++ uInt m; /* bytes to end of window or read pointer */
++
++ if (s-&gt;read != s-&gt;write)
++ return Z_STREAM_ERROR;
++ if (s-&gt;mode != TYPE)
++ return Z_DATA_ERROR;
++
++ /* we're ready to rock */
++ LOAD
++ /* while there is input ready, copy to output buffer, moving
++ * pointers as needed.
++ */
++ while (n) {
++ t = n; /* how many to do */
++ /* is there room until end of buffer? */
++ if (t &gt; m) t = m;
++ /* update check information */
++ if (s-&gt;checkfn != Z_NULL)
++ s-&gt;check = (*s-&gt;checkfn)(s-&gt;check, q, t);
++ zmemcpy(q, p, t);
++ q += t;
++ p += t;
++ n -= t;
++ z-&gt;total_out += t;
++ s-&gt;read = q; /* drag read pointer forward */
++/* WWRAP */ /* expand WWRAP macro by hand to handle s-&gt;read */
++ if (q == s-&gt;end) {
++ s-&gt;read = q = s-&gt;window;
++ m = WAVAIL;
++ }
++ }
++ UPDATE
++ return Z_OK;
++}
++
++
++/*
++ * At the end of a Deflate-compressed PPP packet, we expect to have seen
++ * a `stored' block type value but not the (zero) length bytes.
++ */
++int inflate_packet_flush(s)
++ inflate_blocks_statef *s;
++{
++ if (s-&gt;mode != LENS)
++ return Z_DATA_ERROR;
++ s-&gt;mode = TYPE;
++ return Z_OK;
++}
++/* --- infblock.c */
++
++/* +++ inftrees.c */
++/* inftrees.c -- generate Huffman trees for efficient decoding
++ * Copyright (C) 1995-1996 Mark Adler
++ * For conditions of distribution and use, see copyright notice in zlib.h
++ */
++
++/* #include &quot;zutil.h&quot; */
++/* #include &quot;inftrees.h&quot; */
++
++char inflate_copyright[] = &quot; inflate 1.0.4 Copyright 1995-1996 Mark Adler &quot;;
++/*
++ If you use the zlib library in a product, an acknowledgment is welcome
++ in the documentation of your product. If for some reason you cannot
++ include such an acknowledgment, I would appreciate that you keep this
++ copyright string in the executable of your product.
++ */
++
++#ifndef NO_DUMMY_DECL
++struct internal_state {int dummy;}; /* for buggy compilers */
++#endif
++
++/* simplify the use of the inflate_huft type with some defines */
++#define base more.Base
++#define next more.Next
++#define exop word.what.Exop
++#define bits word.what.Bits
++
++
++local int huft_build OF((
++ uIntf *, /* code lengths in bits */
++ uInt, /* number of codes */
++ uInt, /* number of &quot;simple&quot; codes */
++ const uIntf *, /* list of base values for non-simple codes */
++ const uIntf *, /* list of extra bits for non-simple codes */
++ inflate_huft * FAR*,/* result: starting table */
++ uIntf *, /* maximum lookup bits (returns actual) */
++ z_streamp )); /* for zalloc function */
++
++local voidpf falloc OF((
++ voidpf, /* opaque pointer (not used) */
++ uInt, /* number of items */
++ uInt)); /* size of item */
++
++/* Tables for deflate from PKZIP's appnote.txt. */
++local const uInt cplens[31] = { /* Copy lengths for literal codes 257..285 */
++ 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,
++ 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0};
++ /* see note #13 above about 258 */
++local const uInt cplext[31] = { /* Extra bits for literal codes 257..285 */
++ 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2,
++ 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 112, 112}; /* 112==invalid */
++local const uInt cpdist[30] = { /* Copy offsets for distance codes 0..29 */
++ 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,
++ 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,
++ 8193, 12289, 16385, 24577};
++local const uInt cpdext[30] = { /* Extra bits for distance codes */
++ 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6,
++ 7, 7, 8, 8, 9, 9, 10, 10, 11, 11,
++ 12, 12, 13, 13};
++
++/*
++ Huffman code decoding is performed using a multi-level table lookup.
++ The fastest way to decode is to simply build a lookup table whose
++ size is determined by the longest code. However, the time it takes
++ to build this table can also be a factor if the data being decoded
++ is not very long. The most common codes are necessarily the
++ shortest codes, so those codes dominate the decoding time, and hence
++ the speed. The idea is you can have a shorter table that decodes the
++ shorter, more probable codes, and then point to subsidiary tables for
++ the longer codes. The time it costs to decode the longer codes is
++ then traded against the time it takes to make longer tables.
++
++ This results of this trade are in the variables lbits and dbits
++ below. lbits is the number of bits the first level table for literal/
++ length codes can decode in one step, and dbits is the same thing for
++ the distance codes. Subsequent tables are also less than or equal to
++ those sizes. These values may be adjusted either when all of the
++ codes are shorter than that, in which case the longest code length in
++ bits is used, or when the shortest code is *longer* than the requested
++ table size, in which case the length of the shortest code in bits is
++ used.
++
++ There are two different values for the two tables, since they code a
++ different number of possibilities each. The literal/length table
++ codes 286 possible values, or in a flat code, a little over eight
++ bits. The distance table codes 30 possible values, or a little less
++ than five bits, flat. The optimum values for speed end up being
++ about one bit more than those, so lbits is 8+1 and dbits is 5+1.
++ The optimum values may differ though from machine to machine, and
++ possibly even between compilers. Your mileage may vary.
++ */
++
++
++/* If BMAX needs to be larger than 16, then h and x[] should be uLong. */
++#define BMAX 15 /* maximum bit length of any code */
++#define N_MAX 288 /* maximum number of codes in any set */
++
++#ifdef DEBUG_ZLIB
++ uInt inflate_hufts;
++#endif
++
++local int huft_build(b, n, s, d, e, t, m, zs)
++uIntf *b; /* code lengths in bits (all assumed &lt;= BMAX) */
++uInt n; /* number of codes (assumed &lt;= N_MAX) */
++uInt s; /* number of simple-valued codes (0..s-1) */
++const uIntf *d; /* list of base values for non-simple codes */
++const uIntf *e; /* list of extra bits for non-simple codes */
++inflate_huft * FAR *t; /* result: starting table */
++uIntf *m; /* maximum lookup bits, returns actual */
++z_streamp zs; /* for zalloc function */
++/* Given a list of code lengths and a maximum table size, make a set of
++ tables to decode that set of codes. Return Z_OK on success, Z_BUF_ERROR
++ if the given code set is incomplete (the tables are still built in this
++ case), Z_DATA_ERROR if the input is invalid (an over-subscribed set of
++ lengths), or Z_MEM_ERROR if not enough memory. */
++{
++
++ uInt a; /* counter for codes of length k */
++ uInt c[BMAX+1]; /* bit length count table */
++ uInt f; /* i repeats in table every f entries */
++ int g; /* maximum code length */
++ int h; /* table level */
++ register uInt i; /* counter, current code */
++ register uInt j; /* counter */
++ register int k; /* number of bits in current code */
++ int l; /* bits per table (returned in m) */
++ register uIntf *p; /* pointer into c[], b[], or v[] */
++ inflate_huft *q; /* points to current table */
++ struct inflate_huft_s r; /* table entry for structure assignment */
++ inflate_huft *u[BMAX]; /* table stack */
++ uInt v[N_MAX]; /* values in order of bit length */
++ register int w; /* bits before this table == (l * h) */
++ uInt x[BMAX+1]; /* bit offsets, then code stack */
++ uIntf *xp; /* pointer into x */
++ int y; /* number of dummy codes added */
++ uInt z; /* number of entries in current table */
++
++
++ /* Generate counts for each bit length */
++ p = c;
++#define C0 *p++ = 0;
++#define C2 C0 C0 C0 C0
++#define C4 C2 C2 C2 C2
++ C4 /* clear c[]--assume BMAX+1 is 16 */
++ p = b; i = n;
++ do {
++ c[*p++]++; /* assume all entries &lt;= BMAX */
++ } while (--i);
++ if (c[0] == n) /* null input--all zero length codes */
++ {
++ *t = (inflate_huft *)Z_NULL;
++ *m = 0;
++ return Z_OK;
++ }
++
++
++ /* Find minimum and maximum length, bound *m by those */
++ l = *m;
++ for (j = 1; j &lt;= BMAX; j++)
++ if (c[j])
++ break;
++ k = j; /* minimum code length */
++ if ((uInt)l &lt; j)
++ l = j;
++ for (i = BMAX; i; i--)
++ if (c[i])
++ break;
++ g = i; /* maximum code length */
++ if ((uInt)l &gt; i)
++ l = i;
++ *m = l;
++
++
++ /* Adjust last length count to fill out codes, if needed */
++ for (y = 1 &lt;&lt; j; j &lt; i; j++, y &lt;&lt;= 1)
++ if ((y -= c[j]) &lt; 0)
++ return Z_DATA_ERROR;
++ if ((y -= c[i]) &lt; 0)
++ return Z_DATA_ERROR;
++ c[i] += y;
++
++
++ /* Generate starting offsets into the value table for each length */
++ x[1] = j = 0;
++ p = c + 1; xp = x + 2;
++ while (--i) { /* note that i == g from above */
++ *xp++ = (j += *p++);
++ }
++
++
++ /* Make a table of values in order of bit lengths */
++ p = b; i = 0;
++ do {
++ if ((j = *p++) != 0)
++ v[x[j]++] = i;
++ } while (++i &lt; n);
++ n = x[g]; /* set n to length of v */
++
++
++ /* Generate the Huffman codes and for each, make the table entries */
++ x[0] = i = 0; /* first Huffman code is zero */
++ p = v; /* grab values in bit order */
++ h = -1; /* no tables yet--level -1 */
++ w = -l; /* bits decoded == (l * h) */
++ u[0] = (inflate_huft *)Z_NULL; /* just to keep compilers happy */
++ q = (inflate_huft *)Z_NULL; /* ditto */
++ z = 0; /* ditto */
++
++ /* go through the bit lengths (k already is bits in shortest code) */
++ for (; k &lt;= g; k++)
++ {
++ a = c[k];
++ while (a--)
++ {
++ /* here i is the Huffman code of length k bits for value *p */
++ /* make tables up to required level */
++ while (k &gt; w + l)
++ {
++ h++;
++ w += l; /* previous table always l bits */
++
++ /* compute minimum size table less than or equal to l bits */
++ z = g - w;
++ z = z &gt; (uInt)l ? l : z; /* table size upper limit */
++ if ((f = 1 &lt;&lt; (j = k - w)) &gt; a + 1) /* try a k-w bit table */
++ { /* too few codes for k-w bit table */
++ f -= a + 1; /* deduct codes from patterns left */
++ xp = c + k;
++ if (j &lt; z)
++ while (++j &lt; z) /* try smaller tables up to z bits */
++ {
++ if ((f &lt;&lt;= 1) &lt;= *++xp)
++ break; /* enough codes to use up j bits */
++ f -= *xp; /* else deduct codes from patterns */
++ }
++ }
++ z = 1 &lt;&lt; j; /* table entries for j-bit table */
++
++ /* allocate and link in new table */
++ if ((q = (inflate_huft *)ZALLOC
++ (zs,z + 1,sizeof(inflate_huft))) == Z_NULL)
++ {
++ if (h)
++ inflate_trees_free(u[0], zs);
++ return Z_MEM_ERROR; /* not enough memory */
++ }
++#ifdef DEBUG_ZLIB
++ inflate_hufts += z + 1;
++#endif
++ *t = q + 1; /* link to list for huft_free() */
++ *(t = &amp;(q-&gt;next)) = Z_NULL;
++ u[h] = ++q; /* table starts after link */
++
++ /* connect to last table, if there is one */
++ if (h)
++ {
++ x[h] = i; /* save pattern for backing up */
++ r.bits = (Byte)l; /* bits to dump before this table */
++ r.exop = (Byte)j; /* bits in this table */
++ r.next = q; /* pointer to this table */
++ j = i &gt;&gt; (w - l); /* (get around Turbo C bug) */
++ u[h-1][j] = r; /* connect to last table */
++ }
++ }
++
++ /* set up table entry in r */
++ r.bits = (Byte)(k - w);
++ if (p &gt;= v + n)
++ r.exop = 128 + 64; /* out of values--invalid code */
++ else if (*p &lt; s)
++ {
++ r.exop = (Byte)(*p &lt; 256 ? 0 : 32 + 64); /* 256 is end-of-block */
++ r.base = *p++; /* simple code is just the value */
++ }
++ else
++ {
++ r.exop = (Byte)(e[*p - s] + 16 + 64);/* non-simple--look up in lists */
++ r.base = d[*p++ - s];
++ }
++
++ /* fill code-like entries with r */
++ f = 1 &lt;&lt; (k - w);
++ for (j = i &gt;&gt; w; j &lt; z; j += f)
++ q[j] = r;
++
++ /* backwards increment the k-bit code i */
++ for (j = 1 &lt;&lt; (k - 1); i &amp; j; j &gt;&gt;= 1)
++ i ^= j;
++ i ^= j;
++
++ /* backup over finished tables */
++ while ((i &amp; ((1 &lt;&lt; w) - 1)) != x[h])
++ {
++ h--; /* don't need to update q */
++ w -= l;
++ }
++ }
++ }
++
++
++ /* Return Z_BUF_ERROR if we were given an incomplete table */
++ return y != 0 &amp;&amp; g != 1 ? Z_BUF_ERROR : Z_OK;
++}
++
++
++int inflate_trees_bits(c, bb, tb, z)
++uIntf *c; /* 19 code lengths */
++uIntf *bb; /* bits tree desired/actual depth */
++inflate_huft * FAR *tb; /* bits tree result */
++z_streamp z; /* for zfree function */
++{
++ int r;
++
++ r = huft_build(c, 19, 19, (uIntf*)Z_NULL, (uIntf*)Z_NULL, tb, bb, z);
++ if (r == Z_DATA_ERROR)
++ z-&gt;msg = (char*)&quot;oversubscribed dynamic bit lengths tree&quot;;
++ else if (r == Z_BUF_ERROR || *bb == 0)
++ {
++ inflate_trees_free(*tb, z);
++ z-&gt;msg = (char*)&quot;incomplete dynamic bit lengths tree&quot;;
++ r = Z_DATA_ERROR;
++ }
++ return r;
++}
++
++
++int inflate_trees_dynamic(nl, nd, c, bl, bd, tl, td, z)
++uInt nl; /* number of literal/length codes */
++uInt nd; /* number of distance codes */
++uIntf *c; /* that many (total) code lengths */
++uIntf *bl; /* literal desired/actual bit depth */
++uIntf *bd; /* distance desired/actual bit depth */
++inflate_huft * FAR *tl; /* literal/length tree result */
++inflate_huft * FAR *td; /* distance tree result */
++z_streamp z; /* for zfree function */
++{
++ int r;
++
++ /* build literal/length tree */
++ r = huft_build(c, nl, 257, cplens, cplext, tl, bl, z);
++ if (r != Z_OK || *bl == 0)
++ {
++ if (r == Z_DATA_ERROR)
++ z-&gt;msg = (char*)&quot;oversubscribed literal/length tree&quot;;
++ else if (r != Z_MEM_ERROR)
++ {
++ inflate_trees_free(*tl, z);
++ z-&gt;msg = (char*)&quot;incomplete literal/length tree&quot;;
++ r = Z_DATA_ERROR;
++ }
++ return r;
++ }
++
++ /* build distance tree */
++ r = huft_build(c + nl, nd, 0, cpdist, cpdext, td, bd, z);
++ if (r != Z_OK || (*bd == 0 &amp;&amp; nl &gt; 257))
++ {
++ if (r == Z_DATA_ERROR)
++ z-&gt;msg = (char*)&quot;oversubscribed distance tree&quot;;
++ else if (r == Z_BUF_ERROR) {
++#ifdef PKZIP_BUG_WORKAROUND
++ r = Z_OK;
++ }
++#else
++ inflate_trees_free(*td, z);
++ z-&gt;msg = (char*)&quot;incomplete distance tree&quot;;
++ r = Z_DATA_ERROR;
++ }
++ else if (r != Z_MEM_ERROR)
++ {
++ z-&gt;msg = (char*)&quot;empty distance tree with lengths&quot;;
++ r = Z_DATA_ERROR;
++ }
++ inflate_trees_free(*tl, z);
++ return r;
++#endif
++ }
++
++ /* done */
++ return Z_OK;
++}
++
++
++/* build fixed tables only once--keep them here */
++local int fixed_built = 0;
++#define FIXEDH 530 /* number of hufts used by fixed tables */
++local inflate_huft fixed_mem[FIXEDH];
++local uInt fixed_bl;
++local uInt fixed_bd;
++local inflate_huft *fixed_tl;
++local inflate_huft *fixed_td;
++
++
++local voidpf falloc(q, n, s)
++voidpf q; /* opaque pointer */
++uInt n; /* number of items */
++uInt s; /* size of item */
++{
++ Assert(s == sizeof(inflate_huft) &amp;&amp; n &lt;= *(intf *)q,
++ &quot;inflate_trees falloc overflow&quot;);
++ *(intf *)q -= n+s-s; /* s-s to avoid warning */
++ return (voidpf)(fixed_mem + *(intf *)q);
++}
++
++
++int inflate_trees_fixed(bl, bd, tl, td)
++uIntf *bl; /* literal desired/actual bit depth */
++uIntf *bd; /* distance desired/actual bit depth */
++inflate_huft * FAR *tl; /* literal/length tree result */
++inflate_huft * FAR *td; /* distance tree result */
++{
++ /* build fixed tables if not already (multiple overlapped executions ok) */
++ if (!fixed_built)
++ {
++ int k; /* temporary variable */
++ unsigned c[288]; /* length list for huft_build */
++ z_stream z; /* for falloc function */
++ int f = FIXEDH; /* number of hufts left in fixed_mem */
++
++ /* set up fake z_stream for memory routines */
++ z.zalloc = falloc;
++ z.zfree = Z_NULL;
++ z.opaque = (voidpf)&amp;f;
++
++ /* literal table */
++ for (k = 0; k &lt; 144; k++)
++ c[k] = 8;
++ for (; k &lt; 256; k++)
++ c[k] = 9;
++ for (; k &lt; 280; k++)
++ c[k] = 7;
++ for (; k &lt; 288; k++)
++ c[k] = 8;
++ fixed_bl = 7;
++ huft_build(c, 288, 257, cplens, cplext, &amp;fixed_tl, &amp;fixed_bl, &amp;z);
++
++ /* distance table */
++ for (k = 0; k &lt; 30; k++)
++ c[k] = 5;
++ fixed_bd = 5;
++ huft_build(c, 30, 0, cpdist, cpdext, &amp;fixed_td, &amp;fixed_bd, &amp;z);
++
++ /* done */
++ Assert(f == 0, &quot;invalid build of fixed tables&quot;);
++ fixed_built = 1;
++ }
++ *bl = fixed_bl;
++ *bd = fixed_bd;
++ *tl = fixed_tl;
++ *td = fixed_td;
++ return Z_OK;
++}
++
++
++int inflate_trees_free(t, z)
++inflate_huft *t; /* table to free */
++z_streamp z; /* for zfree function */
++/* Free the malloc'ed tables built by huft_build(), which makes a linked
++ list of the tables it made, with the links in a dummy first entry of
++ each table. */
++{
++ register inflate_huft *p, *q, *r;
++
++ /* Reverse linked list */
++ p = Z_NULL;
++ q = t;
++ while (q != Z_NULL)
++ {
++ r = (q - 1)-&gt;next;
++ (q - 1)-&gt;next = p;
++ p = q;
++ q = r;
++ }
++ /* Go through linked list, freeing from the malloced (t[-1]) address. */
++ while (p != Z_NULL)
++ {
++ q = (--p)-&gt;next;
++ ZFREE(z,p);
++ p = q;
++ }
++ return Z_OK;
++}
++/* --- inftrees.c */
++
++/* +++ infcodes.c */
++/* infcodes.c -- process literals and length/distance pairs
++ * Copyright (C) 1995-1996 Mark Adler
++ * For conditions of distribution and use, see copyright notice in zlib.h
++ */
++
++/* #include &quot;zutil.h&quot; */
++/* #include &quot;inftrees.h&quot; */
++/* #include &quot;infblock.h&quot; */
++/* #include &quot;infcodes.h&quot; */
++/* #include &quot;infutil.h&quot; */
++
++/* +++ inffast.h */
++/* inffast.h -- header to use inffast.c
++ * Copyright (C) 1995-1996 Mark Adler
++ * For conditions of distribution and use, see copyright notice in zlib.h
++ */
++
++/* WARNING: this file should *not* be used by applications. It is
++ part of the implementation of the compression library and is
++ subject to change. Applications should only use zlib.h.
++ */
++
++extern int inflate_fast OF((
++ uInt,
++ uInt,
++ inflate_huft *,
++ inflate_huft *,
++ inflate_blocks_statef *,
++ z_streamp ));
++/* --- inffast.h */
++
++/* simplify the use of the inflate_huft type with some defines */
++#define base more.Base
++#define next more.Next
++#define exop word.what.Exop
++#define bits word.what.Bits
++
++/* inflate codes private state */
++struct inflate_codes_state {
++
++ /* mode */
++ enum { /* waiting for &quot;i:&quot;=input, &quot;o:&quot;=output, &quot;x:&quot;=nothing */
++ START, /* x: set up for LEN */
++ LEN, /* i: get length/literal/eob next */
++ LENEXT, /* i: getting length extra (have base) */
++ DIST, /* i: get distance next */
++ DISTEXT, /* i: getting distance extra */
++ COPY, /* o: copying bytes in window, waiting for space */
++ LIT, /* o: got literal, waiting for output space */
++ WASH, /* o: got eob, possibly still output waiting */
++ END, /* x: got eob and all data flushed */
++ BADCODE} /* x: got error */
++ mode; /* current inflate_codes mode */
++
++ /* mode dependent information */
++ uInt len;
++ union {
++ struct {
++ inflate_huft *tree; /* pointer into tree */
++ uInt need; /* bits needed */
++ } code; /* if LEN or DIST, where in tree */
++ uInt lit; /* if LIT, literal */
++ struct {
++ uInt get; /* bits to get for extra */
++ uInt dist; /* distance back to copy from */
++ } copy; /* if EXT or COPY, where and how much */
++ } sub; /* submode */
++
++ /* mode independent information */
++ Byte lbits; /* ltree bits decoded per branch */
++ Byte dbits; /* dtree bits decoder per branch */
++ inflate_huft *ltree; /* literal/length/eob tree */
++ inflate_huft *dtree; /* distance tree */
++
++};
++
++
++inflate_codes_statef *inflate_codes_new(bl, bd, tl, td, z)
++uInt bl, bd;
++inflate_huft *tl;
++inflate_huft *td; /* need separate declaration for Borland C++ */
++z_streamp z;
++{
++ inflate_codes_statef *c;
++
++ if ((c = (inflate_codes_statef *)
++ ZALLOC(z,1,sizeof(struct inflate_codes_state))) != Z_NULL)
++ {
++ c-&gt;mode = START;
++ c-&gt;lbits = (Byte)bl;
++ c-&gt;dbits = (Byte)bd;
++ c-&gt;ltree = tl;
++ c-&gt;dtree = td;
++ Tracev((stderr, &quot;inflate: codes new\n&quot;));
++ }
++ return c;
++}
++
++
++int inflate_codes(s, z, r)
++inflate_blocks_statef *s;
++z_streamp z;
++int r;
++{
++ uInt j; /* temporary storage */
++ inflate_huft *t; /* temporary pointer */
++ uInt e; /* extra bits or operation */
++ uLong b; /* bit buffer */
++ uInt k; /* bits in bit buffer */
++ Bytef *p; /* input data pointer */
++ uInt n; /* bytes available there */
++ Bytef *q; /* output window write pointer */
++ uInt m; /* bytes to end of window or read pointer */
++ Bytef *f; /* pointer to copy strings from */
++ inflate_codes_statef *c = s-&gt;sub.decode.codes; /* codes state */
++
++ /* copy input/output information to locals (UPDATE macro restores) */
++ LOAD
++
++ /* process input and output based on current state */
++ while (1) switch (c-&gt;mode)
++ { /* waiting for &quot;i:&quot;=input, &quot;o:&quot;=output, &quot;x:&quot;=nothing */
++ case START: /* x: set up for LEN */
++#ifndef SLOW
++ if (m &gt;= 258 &amp;&amp; n &gt;= 10)
++ {
++ UPDATE
++ r = inflate_fast(c-&gt;lbits, c-&gt;dbits, c-&gt;ltree, c-&gt;dtree, s, z);
++ LOAD
++ if (r != Z_OK)
++ {
++ c-&gt;mode = r == Z_STREAM_END ? WASH : BADCODE;
++ break;
++ }
++ }
++#endif /* !SLOW */
++ c-&gt;sub.code.need = c-&gt;lbits;
++ c-&gt;sub.code.tree = c-&gt;ltree;
++ c-&gt;mode = LEN;
++ case LEN: /* i: get length/literal/eob next */
++ j = c-&gt;sub.code.need;
++ NEEDBITS(j)
++ t = c-&gt;sub.code.tree + ((uInt)b &amp; inflate_mask[j]);
++ DUMPBITS(t-&gt;bits)
++ e = (uInt)(t-&gt;exop);
++ if (e == 0) /* literal */
++ {
++ c-&gt;sub.lit = t-&gt;base;
++ Tracevv((stderr, t-&gt;base &gt;= 0x20 &amp;&amp; t-&gt;base &lt; 0x7f ?
++ &quot;inflate: literal '%c'\n&quot; :
++ &quot;inflate: literal 0x%02x\n&quot;, t-&gt;base));
++ c-&gt;mode = LIT;
++ break;
++ }
++ if (e &amp; 16) /* length */
++ {
++ c-&gt;sub.copy.get = e &amp; 15;
++ c-&gt;len = t-&gt;base;
++ c-&gt;mode = LENEXT;
++ break;
++ }
++ if ((e &amp; 64) == 0) /* next table */
++ {
++ c-&gt;sub.code.need = e;
++ c-&gt;sub.code.tree = t-&gt;next;
++ break;
++ }
++ if (e &amp; 32) /* end of block */
++ {
++ Tracevv((stderr, &quot;inflate: end of block\n&quot;));
++ c-&gt;mode = WASH;
++ break;
++ }
++ c-&gt;mode = BADCODE; /* invalid code */
++ z-&gt;msg = (char*)&quot;invalid literal/length code&quot;;
++ r = Z_DATA_ERROR;
++ LEAVE
++ case LENEXT: /* i: getting length extra (have base) */
++ j = c-&gt;sub.copy.get;
++ NEEDBITS(j)
++ c-&gt;len += (uInt)b &amp; inflate_mask[j];
++ DUMPBITS(j)
++ c-&gt;sub.code.need = c-&gt;dbits;
++ c-&gt;sub.code.tree = c-&gt;dtree;
++ Tracevv((stderr, &quot;inflate: length %u\n&quot;, c-&gt;len));
++ c-&gt;mode = DIST;
++ case DIST: /* i: get distance next */
++ j = c-&gt;sub.code.need;
++ NEEDBITS(j)
++ t = c-&gt;sub.code.tree + ((uInt)b &amp; inflate_mask[j]);
++ DUMPBITS(t-&gt;bits)
++ e = (uInt)(t-&gt;exop);
++ if (e &amp; 16) /* distance */
++ {
++ c-&gt;sub.copy.get = e &amp; 15;
++ c-&gt;sub.copy.dist = t-&gt;base;
++ c-&gt;mode = DISTEXT;
++ break;
++ }
++ if ((e &amp; 64) == 0) /* next table */
++ {
++ c-&gt;sub.code.need = e;
++ c-&gt;sub.code.tree = t-&gt;next;
++ break;
++ }
++ c-&gt;mode = BADCODE; /* invalid code */
++ z-&gt;msg = (char*)&quot;invalid distance code&quot;;
++ r = Z_DATA_ERROR;
++ LEAVE
++ case DISTEXT: /* i: getting distance extra */
++ j = c-&gt;sub.copy.get;
++ NEEDBITS(j)
++ c-&gt;sub.copy.dist += (uInt)b &amp; inflate_mask[j];
++ DUMPBITS(j)
++ Tracevv((stderr, &quot;inflate: distance %u\n&quot;, c-&gt;sub.copy.dist));
++ c-&gt;mode = COPY;
++ case COPY: /* o: copying bytes in window, waiting for space */
++#ifndef __TURBOC__ /* Turbo C bug for following expression */
++ f = (uInt)(q - s-&gt;window) &lt; c-&gt;sub.copy.dist ?
++ s-&gt;end - (c-&gt;sub.copy.dist - (q - s-&gt;window)) :
++ q - c-&gt;sub.copy.dist;
++#else
++ f = q - c-&gt;sub.copy.dist;
++ if ((uInt)(q - s-&gt;window) &lt; c-&gt;sub.copy.dist)
++ f = s-&gt;end - (c-&gt;sub.copy.dist - (uInt)(q - s-&gt;window));
++#endif
++ while (c-&gt;len)
++ {
++ NEEDOUT
++ OUTBYTE(*f++)
++ if (f == s-&gt;end)
++ f = s-&gt;window;
++ c-&gt;len--;
++ }
++ c-&gt;mode = START;
++ break;
++ case LIT: /* o: got literal, waiting for output space */
++ NEEDOUT
++ OUTBYTE(c-&gt;sub.lit)
++ c-&gt;mode = START;
++ break;
++ case WASH: /* o: got eob, possibly more output */
++ FLUSH
++ if (s-&gt;read != s-&gt;write)
++ LEAVE
++ c-&gt;mode = END;
++ case END:
++ r = Z_STREAM_END;
++ LEAVE
++ case BADCODE: /* x: got error */
++ r = Z_DATA_ERROR;
++ LEAVE
++ default:
++ r = Z_STREAM_ERROR;
++ LEAVE
++ }
++}
++
++
++void inflate_codes_free(c, z)
++inflate_codes_statef *c;
++z_streamp z;
++{
++ ZFREE(z, c);
++ Tracev((stderr, &quot;inflate: codes free\n&quot;));
++}
++/* --- infcodes.c */
++
++/* +++ infutil.c */
++/* inflate_util.c -- data and routines common to blocks and codes
++ * Copyright (C) 1995-1996 Mark Adler
++ * For conditions of distribution and use, see copyright notice in zlib.h
++ */
++
++/* #include &quot;zutil.h&quot; */
++/* #include &quot;infblock.h&quot; */
++/* #include &quot;inftrees.h&quot; */
++/* #include &quot;infcodes.h&quot; */
++/* #include &quot;infutil.h&quot; */
++
++#ifndef NO_DUMMY_DECL
++struct inflate_codes_state {int dummy;}; /* for buggy compilers */
++#endif
++
++/* And'ing with mask[n] masks the lower n bits */
++uInt inflate_mask[17] = {
++ 0x0000,
++ 0x0001, 0x0003, 0x0007, 0x000f, 0x001f, 0x003f, 0x007f, 0x00ff,
++ 0x01ff, 0x03ff, 0x07ff, 0x0fff, 0x1fff, 0x3fff, 0x7fff, 0xffff
++};
++
++
++/* copy as much as possible from the sliding window to the output area */
++int inflate_flush(s, z, r)
++inflate_blocks_statef *s;
++z_streamp z;
++int r;
++{
++ uInt n;
++ Bytef *p;
++ Bytef *q;
++
++ /* local copies of source and destination pointers */
++ p = z-&gt;next_out;
++ q = s-&gt;read;
++
++ /* compute number of bytes to copy as far as end of window */
++ n = (uInt)((q &lt;= s-&gt;write ? s-&gt;write : s-&gt;end) - q);
++ if (n &gt; z-&gt;avail_out) n = z-&gt;avail_out;
++ if (n &amp;&amp; r == Z_BUF_ERROR) r = Z_OK;
++
++ /* update counters */
++ z-&gt;avail_out -= n;
++ z-&gt;total_out += n;
++
++ /* update check information */
++ if (s-&gt;checkfn != Z_NULL)
++ z-&gt;adler = s-&gt;check = (*s-&gt;checkfn)(s-&gt;check, q, n);
++
++ /* copy as far as end of window */
++ if (p != Z_NULL) {
++ zmemcpy(p, q, n);
++ p += n;
++ }
++ q += n;
++
++ /* see if more to copy at beginning of window */
++ if (q == s-&gt;end)
++ {
++ /* wrap pointers */
++ q = s-&gt;window;
++ if (s-&gt;write == s-&gt;end)
++ s-&gt;write = s-&gt;window;
++
++ /* compute bytes to copy */
++ n = (uInt)(s-&gt;write - q);
++ if (n &gt; z-&gt;avail_out) n = z-&gt;avail_out;
++ if (n &amp;&amp; r == Z_BUF_ERROR) r = Z_OK;
++
++ /* update counters */
++ z-&gt;avail_out -= n;
++ z-&gt;total_out += n;
++
++ /* update check information */
++ if (s-&gt;checkfn != Z_NULL)
++ z-&gt;adler = s-&gt;check = (*s-&gt;checkfn)(s-&gt;check, q, n);
++
++ /* copy */
++ if (p != Z_NULL) {
++ zmemcpy(p, q, n);
++ p += n;
++ }
++ q += n;
++ }
++
++ /* update pointers */
++ z-&gt;next_out = p;
++ s-&gt;read = q;
++
++ /* done */
++ return r;
++}
++/* --- infutil.c */
++
++/* +++ inffast.c */
++/* inffast.c -- process literals and length/distance pairs fast
++ * Copyright (C) 1995-1996 Mark Adler
++ * For conditions of distribution and use, see copyright notice in zlib.h
++ */
++
++/* #include &quot;zutil.h&quot; */
++/* #include &quot;inftrees.h&quot; */
++/* #include &quot;infblock.h&quot; */
++/* #include &quot;infcodes.h&quot; */
++/* #include &quot;infutil.h&quot; */
++/* #include &quot;inffast.h&quot; */
++
++#ifndef NO_DUMMY_DECL
++struct inflate_codes_state {int dummy;}; /* for buggy compilers */
++#endif
++
++/* simplify the use of the inflate_huft type with some defines */
++#define base more.Base
++#define next more.Next
++#define exop word.what.Exop
++#define bits word.what.Bits
++
++/* macros for bit input with no checking and for returning unused bytes */
++#define GRABBITS(j) {while(k&lt;(j)){b|=((uLong)NEXTBYTE)&lt;&lt;k;k+=8;}}
++#define UNGRAB {n+=(c=k&gt;&gt;3);p-=c;k&amp;=7;}
++
++/* Called with number of bytes left to write in window at least 258
++ (the maximum string length) and number of input bytes available
++ at least ten. The ten bytes are six bytes for the longest length/
++ distance pair plus four bytes for overloading the bit buffer. */
++
++int inflate_fast(bl, bd, tl, td, s, z)
++uInt bl, bd;
++inflate_huft *tl;
++inflate_huft *td; /* need separate declaration for Borland C++ */
++inflate_blocks_statef *s;
++z_streamp z;
++{
++ inflate_huft *t; /* temporary pointer */
++ uInt e; /* extra bits or operation */
++ uLong b; /* bit buffer */
++ uInt k; /* bits in bit buffer */
++ Bytef *p; /* input data pointer */
++ uInt n; /* bytes available there */
++ Bytef *q; /* output window write pointer */
++ uInt m; /* bytes to end of window or read pointer */
++ uInt ml; /* mask for literal/length tree */
++ uInt md; /* mask for distance tree */
++ uInt c; /* bytes to copy */
++ uInt d; /* distance back to copy from */
++ Bytef *r; /* copy source pointer */
++
++ /* load input, output, bit values */
++ LOAD
++
++ /* initialize masks */
++ ml = inflate_mask[bl];
++ md = inflate_mask[bd];
++
++ /* do until not enough input or output space for fast loop */
++ do { /* assume called with m &gt;= 258 &amp;&amp; n &gt;= 10 */
++ /* get literal/length code */
++ GRABBITS(20) /* max bits for literal/length code */
++ if ((e = (t = tl + ((uInt)b &amp; ml))-&gt;exop) == 0)
++ {
++ DUMPBITS(t-&gt;bits)
++ Tracevv((stderr, t-&gt;base &gt;= 0x20 &amp;&amp; t-&gt;base &lt; 0x7f ?
++ &quot;inflate: * literal '%c'\n&quot; :
++ &quot;inflate: * literal 0x%02x\n&quot;, t-&gt;base));
++ *q++ = (Byte)t-&gt;base;
++ m--;
++ continue;
++ }
++ do {
++ DUMPBITS(t-&gt;bits)
++ if (e &amp; 16)
++ {
++ /* get extra bits for length */
++ e &amp;= 15;
++ c = t-&gt;base + ((uInt)b &amp; inflate_mask[e]);
++ DUMPBITS(e)
++ Tracevv((stderr, &quot;inflate: * length %u\n&quot;, c));
++
++ /* decode distance base of block to copy */
++ GRABBITS(15); /* max bits for distance code */
++ e = (t = td + ((uInt)b &amp; md))-&gt;exop;
++ do {
++ DUMPBITS(t-&gt;bits)
++ if (e &amp; 16)
++ {
++ /* get extra bits to add to distance base */
++ e &amp;= 15;
++ GRABBITS(e) /* get extra bits (up to 13) */
++ d = t-&gt;base + ((uInt)b &amp; inflate_mask[e]);
++ DUMPBITS(e)
++ Tracevv((stderr, &quot;inflate: * distance %u\n&quot;, d));
++
++ /* do the copy */
++ m -= c;
++ if ((uInt)(q - s-&gt;window) &gt;= d) /* offset before dest */
++ { /* just copy */
++ r = q - d;
++ *q++ = *r++; c--; /* minimum count is three, */
++ *q++ = *r++; c--; /* so unroll loop a little */
++ }
++ else /* else offset after destination */
++ {
++ e = d - (uInt)(q - s-&gt;window); /* bytes from offset to end */
++ r = s-&gt;end - e; /* pointer to offset */
++ if (c &gt; e) /* if source crosses, */
++ {
++ c -= e; /* copy to end of window */
++ do {
++ *q++ = *r++;
++ } while (--e);
++ r = s-&gt;window; /* copy rest from start of window */
++ }
++ }
++ do { /* copy all or what's left */
++ *q++ = *r++;
++ } while (--c);
++ break;
++ }
++ else if ((e &amp; 64) == 0)
++ e = (t = t-&gt;next + ((uInt)b &amp; inflate_mask[e]))-&gt;exop;
++ else
++ {
++ z-&gt;msg = (char*)&quot;invalid distance code&quot;;
++ UNGRAB
++ UPDATE
++ return Z_DATA_ERROR;
++ }
++ } while (1);
++ break;
++ }
++ if ((e &amp; 64) == 0)
++ {
++ if ((e = (t = t-&gt;next + ((uInt)b &amp; inflate_mask[e]))-&gt;exop) == 0)
++ {
++ DUMPBITS(t-&gt;bits)
++ Tracevv((stderr, t-&gt;base &gt;= 0x20 &amp;&amp; t-&gt;base &lt; 0x7f ?
++ &quot;inflate: * literal '%c'\n&quot; :
++ &quot;inflate: * literal 0x%02x\n&quot;, t-&gt;base));
++ *q++ = (Byte)t-&gt;base;
++ m--;
++ break;
++ }
++ }
++ else if (e &amp; 32)
++ {
++ Tracevv((stderr, &quot;inflate: * end of block\n&quot;));
++ UNGRAB
++ UPDATE
++ return Z_STREAM_END;
++ }
++ else
++ {
++ z-&gt;msg = (char*)&quot;invalid literal/length code&quot;;
++ UNGRAB
++ UPDATE
++ return Z_DATA_ERROR;
++ }
++ } while (1);
++ } while (m &gt;= 258 &amp;&amp; n &gt;= 10);
++
++ /* not enough input or output--restore pointers and return */
++ UNGRAB
++ UPDATE
++ return Z_OK;
++}
++/* --- inffast.c */
++
++/* +++ zutil.c */
++/* zutil.c -- target dependent utility functions for the compression library
++ * Copyright (C) 1995-1996 Jean-loup Gailly.
++ * For conditions of distribution and use, see copyright notice in zlib.h
++ */
++
++/* From: zutil.c,v 1.17 1996/07/24 13:41:12 me Exp $ */
++
++#ifdef DEBUG_ZLIB
++#include &lt;stdio.h&gt;
++#endif
++
++/* #include &quot;zutil.h&quot; */
++
++#ifndef NO_DUMMY_DECL
++struct internal_state {int dummy;}; /* for buggy compilers */
++#endif
++
++#ifndef STDC
++extern void exit OF((int));
++#endif
++
++const char *z_errmsg[10] = {
++&quot;need dictionary&quot;, /* Z_NEED_DICT 2 */
++&quot;stream end&quot;, /* Z_STREAM_END 1 */
++&quot;&quot;, /* Z_OK 0 */
++&quot;file error&quot;, /* Z_ERRNO (-1) */
++&quot;stream error&quot;, /* Z_STREAM_ERROR (-2) */
++&quot;data error&quot;, /* Z_DATA_ERROR (-3) */
++&quot;insufficient memory&quot;, /* Z_MEM_ERROR (-4) */
++&quot;buffer error&quot;, /* Z_BUF_ERROR (-5) */
++&quot;incompatible version&quot;,/* Z_VERSION_ERROR (-6) */
++&quot;&quot;};
++
++
++const char *zlibVersion()
++{
++ return ZLIB_VERSION;
++}
++
++#ifdef DEBUG_ZLIB
++void z_error (m)
++ char *m;
++{
++ fprintf(stderr, &quot;%s\n&quot;, m);
++ exit(1);
++}
++#endif
++
++#ifndef HAVE_MEMCPY
++
++void zmemcpy(dest, source, len)
++ Bytef* dest;
++ Bytef* source;
++ uInt len;
++{
++ if (len == 0) return;
++ do {
++ *dest++ = *source++; /* ??? to be unrolled */
++ } while (--len != 0);
++}
++
++int zmemcmp(s1, s2, len)
++ Bytef* s1;
++ Bytef* s2;
++ uInt len;
++{
++ uInt j;
++
++ for (j = 0; j &lt; len; j++) {
++ if (s1[j] != s2[j]) return 2*(s1[j] &gt; s2[j])-1;
++ }
++ return 0;
++}
++
++void zmemzero(dest, len)
++ Bytef* dest;
++ uInt len;
++{
++ if (len == 0) return;
++ do {
++ *dest++ = 0; /* ??? to be unrolled */
++ } while (--len != 0);
++}
++#endif
++
++#ifdef __TURBOC__
++#if (defined( __BORLANDC__) || !defined(SMALL_MEDIUM)) &amp;&amp; !defined(__32BIT__)
++/* Small and medium model in Turbo C are for now limited to near allocation
++ * with reduced MAX_WBITS and MAX_MEM_LEVEL
++ */
++# define MY_ZCALLOC
++
++/* Turbo C malloc() does not allow dynamic allocation of 64K bytes
++ * and farmalloc(64K) returns a pointer with an offset of 8, so we
++ * must fix the pointer. Warning: the pointer must be put back to its
++ * original form in order to free it, use zcfree().
++ */
++
++#define MAX_PTR 10
++/* 10*64K = 640K */
++
++local int next_ptr = 0;
++
++typedef struct ptr_table_s {
++ voidpf org_ptr;
++ voidpf new_ptr;
++} ptr_table;
++
++local ptr_table table[MAX_PTR];
++/* This table is used to remember the original form of pointers
++ * to large buffers (64K). Such pointers are normalized with a zero offset.
++ * Since MSDOS is not a preemptive multitasking OS, this table is not
++ * protected from concurrent access. This hack doesn't work anyway on
++ * a protected system like OS/2. Use Microsoft C instead.
++ */
++
++voidpf zcalloc (voidpf opaque, unsigned items, unsigned size)
++{
++ voidpf buf = opaque; /* just to make some compilers happy */
++ ulg bsize = (ulg)items*size;
++
++ /* If we allocate less than 65520 bytes, we assume that farmalloc
++ * will return a usable pointer which doesn't have to be normalized.
++ */
++ if (bsize &lt; 65520L) {
++ buf = farmalloc(bsize);
++ if (*(ush*)&amp;buf != 0) return buf;
++ } else {
++ buf = farmalloc(bsize + 16L);
++ }
++ if (buf == NULL || next_ptr &gt;= MAX_PTR) return NULL;
++ table[next_ptr].org_ptr = buf;
++
++ /* Normalize the pointer to seg:0 */
++ *((ush*)&amp;buf+1) += ((ush)((uch*)buf-0) + 15) &gt;&gt; 4;
++ *(ush*)&amp;buf = 0;
++ table[next_ptr++].new_ptr = buf;
++ return buf;
++}
++
++void zcfree (voidpf opaque, voidpf ptr)
++{
++ int n;
++ if (*(ush*)&amp;ptr != 0) { /* object &lt; 64K */
++ farfree(ptr);
++ return;
++ }
++ /* Find the original pointer */
++ for (n = 0; n &lt; next_ptr; n++) {
++ if (ptr != table[n].new_ptr) continue;
++
++ farfree(table[n].org_ptr);
++ while (++n &lt; next_ptr) {
++ table[n-1] = table[n];
++ }
++ next_ptr--;
++ return;
++ }
++ ptr = opaque; /* just to make some compilers happy */
++ Assert(0, &quot;zcfree: ptr not found&quot;);
++}
++#endif
++#endif /* __TURBOC__ */
++
++
++#if defined(M_I86) &amp;&amp; !defined(__32BIT__)
++/* Microsoft C in 16-bit mode */
++
++# define MY_ZCALLOC
++
++#if (!defined(_MSC_VER) || (_MSC_VER &lt; 600))
++# define _halloc halloc
++# define _hfree hfree
++#endif
++
++voidpf zcalloc (voidpf opaque, unsigned items, unsigned size)
++{
++ if (opaque) opaque = 0; /* to make compiler happy */
++ return _halloc((long)items, size);
++}
++
++void zcfree (voidpf opaque, voidpf ptr)
++{
++ if (opaque) opaque = 0; /* to make compiler happy */
++ _hfree(ptr);
++}
++
++#endif /* MSC */
++
++
++#ifndef MY_ZCALLOC /* Any system without a special alloc function */
++
++#ifndef STDC
++extern voidp calloc OF((uInt items, uInt size));
++extern void free OF((voidpf ptr));
++#endif
++
++voidpf zcalloc (opaque, items, size)
++ voidpf opaque;
++ unsigned items;
++ unsigned size;
++{
++ if (opaque) items += size - size; /* make compiler happy */
++ return (voidpf)calloc(items, size);
++}
++
++void zcfree (opaque, ptr)
++ voidpf opaque;
++ voidpf ptr;
++{
++ free(ptr);
++ if (opaque) return; /* make compiler happy */
++}
++
++#endif /* MY_ZCALLOC */
++/* --- zutil.c */
++
++/* +++ adler32.c */
++/* adler32.c -- compute the Adler-32 checksum of a data stream
++ * Copyright (C) 1995-1996 Mark Adler
++ * For conditions of distribution and use, see copyright notice in zlib.h
++ */
++
++/* From: adler32.c,v 1.10 1996/05/22 11:52:18 me Exp $ */
++
++/* #include &quot;zlib.h&quot; */
++
++#define BASE 65521L /* largest prime smaller than 65536 */
++#define NMAX 5552
++/* NMAX is the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) &lt;= 2^32-1 */
++
++#define DO1(buf,i) {s1 += buf[i]; s2 += s1;}
++#define DO2(buf,i) DO1(buf,i); DO1(buf,i+1);
++#define DO4(buf,i) DO2(buf,i); DO2(buf,i+2);
++#define DO8(buf,i) DO4(buf,i); DO4(buf,i+4);
++#define DO16(buf) DO8(buf,0); DO8(buf,8);
++
++/* ========================================================================= */
++uLong adler32(adler, buf, len)
++ uLong adler;
++ const Bytef *buf;
++ uInt len;
++{
++ unsigned long s1 = adler &amp; 0xffff;
++ unsigned long s2 = (adler &gt;&gt; 16) &amp; 0xffff;
++ int k;
++
++ if (buf == Z_NULL) return 1L;
++
++ while (len &gt; 0) {
++ k = len &lt; NMAX ? len : NMAX;
++ len -= k;
++ while (k &gt;= 16) {
++ DO16(buf);
++ buf += 16;
++ k -= 16;
++ }
++ if (k != 0) do {
++ s1 += *buf++;
++ s2 += s1;
++ } while (--k);
++ s1 %= BASE;
++ s2 %= BASE;
++ }
++ return (s2 &lt;&lt; 16) | s1;
++}
++/* --- adler32.c */
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/common/zlib.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pppcommonzlibh">Added: drakx/trunk/mdk-stage1/ppp/common/zlib.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/common/zlib.h (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/common/zlib.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,1010 @@
++/* $Id: zlib.h 195720 2001-06-11 11:44:34Z gc $ */
++
++/*
++ * This file is derived from zlib.h and zconf.h from the zlib-1.0.4
++ * distribution by Jean-loup Gailly and Mark Adler, with some additions
++ * by Paul Mackerras to aid in implementing Deflate compression and
++ * decompression for PPP packets.
++ */
++
++/*
++ * ==FILEVERSION 971127==
++ *
++ * This marker is used by the Linux installation script to determine
++ * whether an up-to-date version of this file is already installed.
++ */
++
++
++/* +++ zlib.h */
++/* zlib.h -- interface of the 'zlib' general purpose compression library
++ version 1.0.4, Jul 24th, 1996.
++
++ Copyright (C) 1995-1996 Jean-loup Gailly and Mark Adler
++
++ This software is provided 'as-is', without any express or implied
++ warranty. In no event will the authors be held liable for any damages
++ arising from the use of this software.
++
++ Permission is granted to anyone to use this software for any purpose,
++ including commercial applications, and to alter it and redistribute it
++ freely, subject to the following restrictions:
++
++ 1. The origin of this software must not be misrepresented; you must not
++ claim that you wrote the original software. If you use this software
++ in a product, an acknowledgment in the product documentation would be
++ appreciated but is not required.
++ 2. Altered source versions must be plainly marked as such, and must not be
++ misrepresented as being the original software.
++ 3. This notice may not be removed or altered from any source distribution.
++
++ Jean-loup Gailly Mark Adler
++ gzip@prep.ai.mit.edu madler@alumni.caltech.edu
++
++
++ The data format used by the zlib library is described by RFCs (Request for
++ Comments) 1950 to 1952 in the files ftp://ds.internic.net/rfc/rfc1950.txt
++ (zlib format), rfc1951.txt (deflate format) and rfc1952.txt (gzip format).
++*/
++
++#ifndef _ZLIB_H
++#define _ZLIB_H
++
++#ifdef __cplusplus
++extern &quot;C&quot; {
++#endif
++
++
++/* +++ zconf.h */
++/* zconf.h -- configuration of the zlib compression library
++ * Copyright (C) 1995-1996 Jean-loup Gailly.
++ * For conditions of distribution and use, see copyright notice in zlib.h
++ */
++
++/* From: zconf.h,v 1.20 1996/07/02 15:09:28 me Exp $ */
++
++#ifndef _ZCONF_H
++#define _ZCONF_H
++
++/*
++ * If you *really* need a unique prefix for all types and library functions,
++ * compile with -DZ_PREFIX. The &quot;standard&quot; zlib should be compiled without it.
++ */
++#ifdef Z_PREFIX
++# define deflateInit_ z_deflateInit_
++# define deflate z_deflate
++# define deflateEnd z_deflateEnd
++# define inflateInit_ z_inflateInit_
++# define inflate z_inflate
++# define inflateEnd z_inflateEnd
++# define deflateInit2_ z_deflateInit2_
++# define deflateSetDictionary z_deflateSetDictionary
++# define deflateCopy z_deflateCopy
++# define deflateReset z_deflateReset
++# define deflateParams z_deflateParams
++# define inflateInit2_ z_inflateInit2_
++# define inflateSetDictionary z_inflateSetDictionary
++# define inflateSync z_inflateSync
++# define inflateReset z_inflateReset
++# define compress z_compress
++# define uncompress z_uncompress
++# define adler32 z_adler32
++# define crc32 z_crc32
++# define get_crc_table z_get_crc_table
++
++# define Byte z_Byte
++# define uInt z_uInt
++# define uLong z_uLong
++# define Bytef z_Bytef
++# define charf z_charf
++# define intf z_intf
++# define uIntf z_uIntf
++# define uLongf z_uLongf
++# define voidpf z_voidpf
++# define voidp z_voidp
++#endif
++
++#if (defined(_WIN32) || defined(__WIN32__)) &amp;&amp; !defined(WIN32)
++# define WIN32
++#endif
++#if defined(__GNUC__) || defined(WIN32) || defined(__386__) || defined(i386)
++# ifndef __32BIT__
++# define __32BIT__
++# endif
++#endif
++#if defined(__MSDOS__) &amp;&amp; !defined(MSDOS)
++# define MSDOS
++#endif
++
++/*
++ * Compile with -DMAXSEG_64K if the alloc function cannot allocate more
++ * than 64k bytes at a time (needed on systems with 16-bit int).
++ */
++#if defined(MSDOS) &amp;&amp; !defined(__32BIT__)
++# define MAXSEG_64K
++#endif
++#ifdef MSDOS
++# define UNALIGNED_OK
++#endif
++
++#if (defined(MSDOS) || defined(_WINDOWS) || defined(WIN32)) &amp;&amp; !defined(STDC)
++# define STDC
++#endif
++#if (defined(__STDC__) || defined(__cplusplus)) &amp;&amp; !defined(STDC)
++# define STDC
++#endif
++
++#ifndef STDC
++# ifndef const /* cannot use !defined(STDC) &amp;&amp; !defined(const) on Mac */
++# define const
++# endif
++#endif
++
++/* Some Mac compilers merge all .h files incorrectly: */
++#if defined(__MWERKS__) || defined(applec) ||defined(THINK_C) ||defined(__SC__)
++# define NO_DUMMY_DECL
++#endif
++
++/* Maximum value for memLevel in deflateInit2 */
++#ifndef MAX_MEM_LEVEL
++# ifdef MAXSEG_64K
++# define MAX_MEM_LEVEL 8
++# else
++# define MAX_MEM_LEVEL 9
++# endif
++#endif
++
++/* Maximum value for windowBits in deflateInit2 and inflateInit2 */
++#ifndef MAX_WBITS
++# define MAX_WBITS 15 /* 32K LZ77 window */
++#endif
++
++/* The memory requirements for deflate are (in bytes):
++ 1 &lt;&lt; (windowBits+2) + 1 &lt;&lt; (memLevel+9)
++ that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values)
++ plus a few kilobytes for small objects. For example, if you want to reduce
++ the default memory requirements from 256K to 128K, compile with
++ make CFLAGS=&quot;-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7&quot;
++ Of course this will generally degrade compression (there's no free lunch).
++
++ The memory requirements for inflate are (in bytes) 1 &lt;&lt; windowBits
++ that is, 32K for windowBits=15 (default value) plus a few kilobytes
++ for small objects.
++*/
++
++ /* Type declarations */
++
++#ifndef OF /* function prototypes */
++# ifdef STDC
++# define OF(args) args
++# else
++# define OF(args) ()
++# endif
++#endif
++
++/* The following definitions for FAR are needed only for MSDOS mixed
++ * model programming (small or medium model with some far allocations).
++ * This was tested only with MSC; for other MSDOS compilers you may have
++ * to define NO_MEMCPY in zutil.h. If you don't need the mixed model,
++ * just define FAR to be empty.
++ */
++#if (defined(M_I86SM) || defined(M_I86MM)) &amp;&amp; !defined(__32BIT__)
++ /* MSC small or medium model */
++# define SMALL_MEDIUM
++# ifdef _MSC_VER
++# define FAR __far
++# else
++# define FAR far
++# endif
++#endif
++#if defined(__BORLANDC__) &amp;&amp; (defined(__SMALL__) || defined(__MEDIUM__))
++# ifndef __32BIT__
++# define SMALL_MEDIUM
++# define FAR __far
++# endif
++#endif
++#ifndef FAR
++# define FAR
++#endif
++
++typedef unsigned char Byte; /* 8 bits */
++typedef unsigned int uInt; /* 16 bits or more */
++typedef unsigned long uLong; /* 32 bits or more */
++
++#if defined(__BORLANDC__) &amp;&amp; defined(SMALL_MEDIUM)
++ /* Borland C/C++ ignores FAR inside typedef */
++# define Bytef Byte FAR
++#else
++ typedef Byte FAR Bytef;
++#endif
++typedef char FAR charf;
++typedef int FAR intf;
++typedef uInt FAR uIntf;
++typedef uLong FAR uLongf;
++
++#ifdef STDC
++ typedef void FAR *voidpf;
++ typedef void *voidp;
++#else
++ typedef Byte FAR *voidpf;
++ typedef Byte *voidp;
++#endif
++
++
++/* Compile with -DZLIB_DLL for Windows DLL support */
++#if (defined(_WINDOWS) || defined(WINDOWS)) &amp;&amp; defined(ZLIB_DLL)
++# include &lt;windows.h&gt;
++# define EXPORT WINAPI
++#else
++# define EXPORT
++#endif
++
++#endif /* _ZCONF_H */
++/* --- zconf.h */
++
++#define ZLIB_VERSION &quot;1.0.4P&quot;
++
++/*
++ The 'zlib' compression library provides in-memory compression and
++ decompression functions, including integrity checks of the uncompressed
++ data. This version of the library supports only one compression method
++ (deflation) but other algorithms may be added later and will have the same
++ stream interface.
++
++ For compression the application must provide the output buffer and
++ may optionally provide the input buffer for optimization. For decompression,
++ the application must provide the input buffer and may optionally provide
++ the output buffer for optimization.
++
++ Compression can be done in a single step if the buffers are large
++ enough (for example if an input file is mmap'ed), or can be done by
++ repeated calls of the compression function. In the latter case, the
++ application must provide more input and/or consume the output
++ (providing more output space) before each call.
++
++ The library does not install any signal handler. It is recommended to
++ add at least a handler for SIGSEGV when decompressing; the library checks
++ the consistency of the input data whenever possible but may go nuts
++ for some forms of corrupted input.
++*/
++
++typedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size));
++typedef void (*free_func) OF((voidpf opaque, voidpf address));
++
++struct internal_state;
++
++typedef struct z_stream_s {
++ Bytef *next_in; /* next input byte */
++ uInt avail_in; /* number of bytes available at next_in */
++ uLong total_in; /* total nb of input bytes read so far */
++
++ Bytef *next_out; /* next output byte should be put there */
++ uInt avail_out; /* remaining free space at next_out */
++ uLong total_out; /* total nb of bytes output so far */
++
++ char *msg; /* last error message, NULL if no error */
++ struct internal_state FAR *state; /* not visible by applications */
++
++ alloc_func zalloc; /* used to allocate the internal state */
++ free_func zfree; /* used to free the internal state */
++ voidpf opaque; /* private data object passed to zalloc and zfree */
++
++ int data_type; /* best guess about the data type: ascii or binary */
++ uLong adler; /* adler32 value of the uncompressed data */
++ uLong reserved; /* reserved for future use */
++} z_stream;
++
++typedef z_stream FAR *z_streamp;
++
++/*
++ The application must update next_in and avail_in when avail_in has
++ dropped to zero. It must update next_out and avail_out when avail_out
++ has dropped to zero. The application must initialize zalloc, zfree and
++ opaque before calling the init function. All other fields are set by the
++ compression library and must not be updated by the application.
++
++ The opaque value provided by the application will be passed as the first
++ parameter for calls of zalloc and zfree. This can be useful for custom
++ memory management. The compression library attaches no meaning to the
++ opaque value.
++
++ zalloc must return Z_NULL if there is not enough memory for the object.
++ On 16-bit systems, the functions zalloc and zfree must be able to allocate
++ exactly 65536 bytes, but will not be required to allocate more than this
++ if the symbol MAXSEG_64K is defined (see zconf.h). WARNING: On MSDOS,
++ pointers returned by zalloc for objects of exactly 65536 bytes *must*
++ have their offset normalized to zero. The default allocation function
++ provided by this library ensures this (see zutil.c). To reduce memory
++ requirements and avoid any allocation of 64K objects, at the expense of
++ compression ratio, compile the library with -DMAX_WBITS=14 (see zconf.h).
++
++ The fields total_in and total_out can be used for statistics or
++ progress reports. After compression, total_in holds the total size of
++ the uncompressed data and may be saved for use in the decompressor
++ (particularly if the decompressor wants to decompress everything in
++ a single step).
++*/
++
++ /* constants */
++
++#define Z_NO_FLUSH 0
++#define Z_PARTIAL_FLUSH 1
++#define Z_PACKET_FLUSH 2
++#define Z_SYNC_FLUSH 3
++#define Z_FULL_FLUSH 4
++#define Z_FINISH 5
++/* Allowed flush values; see deflate() below for details */
++
++#define Z_OK 0
++#define Z_STREAM_END 1
++#define Z_NEED_DICT 2
++#define Z_ERRNO (-1)
++#define Z_STREAM_ERROR (-2)
++#define Z_DATA_ERROR (-3)
++#define Z_MEM_ERROR (-4)
++#define Z_BUF_ERROR (-5)
++#define Z_VERSION_ERROR (-6)
++/* Return codes for the compression/decompression functions. Negative
++ * values are errors, positive values are used for special but normal events.
++ */
++
++#define Z_NO_COMPRESSION 0
++#define Z_BEST_SPEED 1
++#define Z_BEST_COMPRESSION 9
++#define Z_DEFAULT_COMPRESSION (-1)
++/* compression levels */
++
++#define Z_FILTERED 1
++#define Z_HUFFMAN_ONLY 2
++#define Z_DEFAULT_STRATEGY 0
++/* compression strategy; see deflateInit2() below for details */
++
++#define Z_BINARY 0
++#define Z_ASCII 1
++#define Z_UNKNOWN 2
++/* Possible values of the data_type field */
++
++#define Z_DEFLATED 8
++/* The deflate compression method (the only one supported in this version) */
++
++#define Z_NULL 0 /* for initializing zalloc, zfree, opaque */
++
++#define zlib_version zlibVersion()
++/* for compatibility with versions &lt; 1.0.2 */
++
++ /* basic functions */
++
++extern const char * EXPORT zlibVersion OF((void));
++/* The application can compare zlibVersion and ZLIB_VERSION for consistency.
++ If the first character differs, the library code actually used is
++ not compatible with the zlib.h header file used by the application.
++ This check is automatically made by deflateInit and inflateInit.
++ */
++
++/*
++extern int EXPORT deflateInit OF((z_streamp strm, int level));
++
++ Initializes the internal stream state for compression. The fields
++ zalloc, zfree and opaque must be initialized before by the caller.
++ If zalloc and zfree are set to Z_NULL, deflateInit updates them to
++ use default allocation functions.
++
++ The compression level must be Z_DEFAULT_COMPRESSION, or between 0 and 9:
++ 1 gives best speed, 9 gives best compression, 0 gives no compression at
++ all (the input data is simply copied a block at a time).
++ Z_DEFAULT_COMPRESSION requests a default compromise between speed and
++ compression (currently equivalent to level 6).
++
++ deflateInit returns Z_OK if success, Z_MEM_ERROR if there was not
++ enough memory, Z_STREAM_ERROR if level is not a valid compression level,
++ Z_VERSION_ERROR if the zlib library version (zlib_version) is incompatible
++ with the version assumed by the caller (ZLIB_VERSION).
++ msg is set to null if there is no error message. deflateInit does not
++ perform any compression: this will be done by deflate().
++*/
++
++
++extern int EXPORT deflate OF((z_streamp strm, int flush));
++/*
++ Performs one or both of the following actions:
++
++ - Compress more input starting at next_in and update next_in and avail_in
++ accordingly. If not all input can be processed (because there is not
++ enough room in the output buffer), next_in and avail_in are updated and
++ processing will resume at this point for the next call of deflate().
++
++ - Provide more output starting at next_out and update next_out and avail_out
++ accordingly. This action is forced if the parameter flush is non zero.
++ Forcing flush frequently degrades the compression ratio, so this parameter
++ should be set only when necessary (in interactive applications).
++ Some output may be provided even if flush is not set.
++
++ Before the call of deflate(), the application should ensure that at least
++ one of the actions is possible, by providing more input and/or consuming
++ more output, and updating avail_in or avail_out accordingly; avail_out
++ should never be zero before the call. The application can consume the
++ compressed output when it wants, for example when the output buffer is full
++ (avail_out == 0), or after each call of deflate(). If deflate returns Z_OK
++ and with zero avail_out, it must be called again after making room in the
++ output buffer because there might be more output pending.
++
++ If the parameter flush is set to Z_PARTIAL_FLUSH, the current compression
++ block is terminated and flushed to the output buffer so that the
++ decompressor can get all input data available so far. For method 9, a future
++ variant on method 8, the current block will be flushed but not terminated.
++ Z_SYNC_FLUSH has the same effect as partial flush except that the compressed
++ output is byte aligned (the compressor can clear its internal bit buffer)
++ and the current block is always terminated; this can be useful if the
++ compressor has to be restarted from scratch after an interruption (in which
++ case the internal state of the compressor may be lost).
++ If flush is set to Z_FULL_FLUSH, the compression block is terminated, a
++ special marker is output and the compression dictionary is discarded; this
++ is useful to allow the decompressor to synchronize if one compressed block
++ has been damaged (see inflateSync below). Flushing degrades compression and
++ so should be used only when necessary. Using Z_FULL_FLUSH too often can
++ seriously degrade the compression. If deflate returns with avail_out == 0,
++ this function must be called again with the same value of the flush
++ parameter and more output space (updated avail_out), until the flush is
++ complete (deflate returns with non-zero avail_out).
++
++ If the parameter flush is set to Z_PACKET_FLUSH, the compression
++ block is terminated, and a zero-length stored block is output,
++ omitting the length bytes (the effect of this is that the 3-bit type
++ code 000 for a stored block is output, and the output is then
++ byte-aligned). This is designed for use at the end of a PPP packet.
++
++ If the parameter flush is set to Z_FINISH, pending input is processed,
++ pending output is flushed and deflate returns with Z_STREAM_END if there
++ was enough output space; if deflate returns with Z_OK, this function must be
++ called again with Z_FINISH and more output space (updated avail_out) but no
++ more input data, until it returns with Z_STREAM_END or an error. After
++ deflate has returned Z_STREAM_END, the only possible operations on the
++ stream are deflateReset or deflateEnd.
++
++ Z_FINISH can be used immediately after deflateInit if all the compression
++ is to be done in a single step. In this case, avail_out must be at least
++ 0.1% larger than avail_in plus 12 bytes. If deflate does not return
++ Z_STREAM_END, then it must be called again as described above.
++
++ deflate() may update data_type if it can make a good guess about
++ the input data type (Z_ASCII or Z_BINARY). In doubt, the data is considered
++ binary. This field is only for information purposes and does not affect
++ the compression algorithm in any manner.
++
++ deflate() returns Z_OK if some progress has been made (more input
++ processed or more output produced), Z_STREAM_END if all input has been
++ consumed and all output has been produced (only when flush is set to
++ Z_FINISH), Z_STREAM_ERROR if the stream state was inconsistent (for example
++ if next_in or next_out was NULL), Z_BUF_ERROR if no progress is possible.
++*/
++
++
++extern int EXPORT deflateEnd OF((z_streamp strm));
++/*
++ All dynamically allocated data structures for this stream are freed.
++ This function discards any unprocessed input and does not flush any
++ pending output.
++
++ deflateEnd returns Z_OK if success, Z_STREAM_ERROR if the
++ stream state was inconsistent, Z_DATA_ERROR if the stream was freed
++ prematurely (some input or output was discarded). In the error case,
++ msg may be set but then points to a static string (which must not be
++ deallocated).
++*/
++
++
++/*
++extern int EXPORT inflateInit OF((z_streamp strm));
++
++ Initializes the internal stream state for decompression. The fields
++ zalloc, zfree and opaque must be initialized before by the caller. If
++ zalloc and zfree are set to Z_NULL, inflateInit updates them to use default
++ allocation functions.
++
++ inflateInit returns Z_OK if success, Z_MEM_ERROR if there was not
++ enough memory, Z_VERSION_ERROR if the zlib library version is incompatible
++ with the version assumed by the caller. msg is set to null if there is no
++ error message. inflateInit does not perform any decompression: this will be
++ done by inflate().
++*/
++
++
++extern int EXPORT inflate OF((z_streamp strm, int flush));
++/*
++ Performs one or both of the following actions:
++
++ - Decompress more input starting at next_in and update next_in and avail_in
++ accordingly. If not all input can be processed (because there is not
++ enough room in the output buffer), next_in is updated and processing
++ will resume at this point for the next call of inflate().
++
++ - Provide more output starting at next_out and update next_out and avail_out
++ accordingly. inflate() provides as much output as possible, until there
++ is no more input data or no more space in the output buffer (see below
++ about the flush parameter).
++
++ Before the call of inflate(), the application should ensure that at least
++ one of the actions is possible, by providing more input and/or consuming
++ more output, and updating the next_* and avail_* values accordingly.
++ The application can consume the uncompressed output when it wants, for
++ example when the output buffer is full (avail_out == 0), or after each
++ call of inflate(). If inflate returns Z_OK and with zero avail_out, it
++ must be called again after making room in the output buffer because there
++ might be more output pending.
++
++ If the parameter flush is set to Z_PARTIAL_FLUSH or Z_PACKET_FLUSH,
++ inflate flushes as much output as possible to the output buffer. The
++ flushing behavior of inflate is not specified for values of the flush
++ parameter other than Z_PARTIAL_FLUSH, Z_PACKET_FLUSH or Z_FINISH, but the
++ current implementation actually flushes as much output as possible
++ anyway. For Z_PACKET_FLUSH, inflate checks that once all the input data
++ has been consumed, it is expecting to see the length field of a stored
++ block; if not, it returns Z_DATA_ERROR.
++
++ inflate() should normally be called until it returns Z_STREAM_END or an
++ error. However if all decompression is to be performed in a single step
++ (a single call of inflate), the parameter flush should be set to
++ Z_FINISH. In this case all pending input is processed and all pending
++ output is flushed; avail_out must be large enough to hold all the
++ uncompressed data. (The size of the uncompressed data may have been saved
++ by the compressor for this purpose.) The next operation on this stream must
++ be inflateEnd to deallocate the decompression state. The use of Z_FINISH
++ is never required, but can be used to inform inflate that a faster routine
++ may be used for the single inflate() call.
++
++ inflate() returns Z_OK if some progress has been made (more input
++ processed or more output produced), Z_STREAM_END if the end of the
++ compressed data has been reached and all uncompressed output has been
++ produced, Z_NEED_DICT if a preset dictionary is needed at this point (see
++ inflateSetDictionary below), Z_DATA_ERROR if the input data was corrupted,
++ Z_STREAM_ERROR if the stream structure was inconsistent (for example if
++ next_in or next_out was NULL), Z_MEM_ERROR if there was not enough memory,
++ Z_BUF_ERROR if no progress is possible or if there was not enough room in
++ the output buffer when Z_FINISH is used. In the Z_DATA_ERROR case, the
++ application may then call inflateSync to look for a good compression block.
++ In the Z_NEED_DICT case, strm-&gt;adler is set to the Adler32 value of the
++ dictionary chosen by the compressor.
++*/
++
++
++extern int EXPORT inflateEnd OF((z_streamp strm));
++/*
++ All dynamically allocated data structures for this stream are freed.
++ This function discards any unprocessed input and does not flush any
++ pending output.
++
++ inflateEnd returns Z_OK if success, Z_STREAM_ERROR if the stream state
++ was inconsistent. In the error case, msg may be set but then points to a
++ static string (which must not be deallocated).
++*/
++
++ /* Advanced functions */
++
++/*
++ The following functions are needed only in some special applications.
++*/
++
++/*
++extern int EXPORT deflateInit2 OF((z_streamp strm,
++ int level,
++ int method,
++ int windowBits,
++ int memLevel,
++ int strategy));
++
++ This is another version of deflateInit with more compression options. The
++ fields next_in, zalloc, zfree and opaque must be initialized before by
++ the caller.
++
++ The method parameter is the compression method. It must be Z_DEFLATED in
++ this version of the library. (Method 9 will allow a 64K history buffer and
++ partial block flushes.)
++
++ The windowBits parameter is the base two logarithm of the window size
++ (the size of the history buffer). It should be in the range 8..15 for this
++ version of the library (the value 16 will be allowed for method 9). Larger
++ values of this parameter result in better compression at the expense of
++ memory usage. The default value is 15 if deflateInit is used instead.
++
++ The memLevel parameter specifies how much memory should be allocated
++ for the internal compression state. memLevel=1 uses minimum memory but
++ is slow and reduces compression ratio; memLevel=9 uses maximum memory
++ for optimal speed. The default value is 8. See zconf.h for total memory
++ usage as a function of windowBits and memLevel.
++
++ The strategy parameter is used to tune the compression algorithm. Use the
++ value Z_DEFAULT_STRATEGY for normal data, Z_FILTERED for data produced by a
++ filter (or predictor), or Z_HUFFMAN_ONLY to force Huffman encoding only (no
++ string match). Filtered data consists mostly of small values with a
++ somewhat random distribution. In this case, the compression algorithm is
++ tuned to compress them better. The effect of Z_FILTERED is to force more
++ Huffman coding and less string matching; it is somewhat intermediate
++ between Z_DEFAULT and Z_HUFFMAN_ONLY. The strategy parameter only affects
++ the compression ratio but not the correctness of the compressed output even
++ if it is not set appropriately.
++
++ If next_in is not null, the library will use this buffer to hold also
++ some history information; the buffer must either hold the entire input
++ data, or have at least 1&lt;&lt;(windowBits+1) bytes and be writable. If next_in
++ is null, the library will allocate its own history buffer (and leave next_in
++ null). next_out need not be provided here but must be provided by the
++ application for the next call of deflate().
++
++ If the history buffer is provided by the application, next_in must
++ must never be changed by the application since the compressor maintains
++ information inside this buffer from call to call; the application
++ must provide more input only by increasing avail_in. next_in is always
++ reset by the library in this case.
++
++ deflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was
++ not enough memory, Z_STREAM_ERROR if a parameter is invalid (such as
++ an invalid method). msg is set to null if there is no error message.
++ deflateInit2 does not perform any compression: this will be done by
++ deflate().
++*/
++
++extern int EXPORT deflateSetDictionary OF((z_streamp strm,
++ const Bytef *dictionary,
++ uInt dictLength));
++/*
++ Initializes the compression dictionary (history buffer) from the given
++ byte sequence without producing any compressed output. This function must
++ be called immediately after deflateInit or deflateInit2, before any call
++ of deflate. The compressor and decompressor must use exactly the same
++ dictionary (see inflateSetDictionary).
++ The dictionary should consist of strings (byte sequences) that are likely
++ to be encountered later in the data to be compressed, with the most commonly
++ used strings preferably put towards the end of the dictionary. Using a
++ dictionary is most useful when the data to be compressed is short and
++ can be predicted with good accuracy; the data can then be compressed better
++ than with the default empty dictionary. In this version of the library,
++ only the last 32K bytes of the dictionary are used.
++ Upon return of this function, strm-&gt;adler is set to the Adler32 value
++ of the dictionary; the decompressor may later use this value to determine
++ which dictionary has been used by the compressor. (The Adler32 value
++ applies to the whole dictionary even if only a subset of the dictionary is
++ actually used by the compressor.)
++
++ deflateSetDictionary returns Z_OK if success, or Z_STREAM_ERROR if a
++ parameter is invalid (such as NULL dictionary) or the stream state
++ is inconsistent (for example if deflate has already been called for this
++ stream). deflateSetDictionary does not perform any compression: this will
++ be done by deflate().
++*/
++
++extern int EXPORT deflateCopy OF((z_streamp dest,
++ z_streamp source));
++/*
++ Sets the destination stream as a complete copy of the source stream. If
++ the source stream is using an application-supplied history buffer, a new
++ buffer is allocated for the destination stream. The compressed output
++ buffer is always application-supplied. It's the responsibility of the
++ application to provide the correct values of next_out and avail_out for the
++ next call of deflate.
++
++ This function can be useful when several compression strategies will be
++ tried, for example when there are several ways of pre-processing the input
++ data with a filter. The streams that will be discarded should then be freed
++ by calling deflateEnd. Note that deflateCopy duplicates the internal
++ compression state which can be quite large, so this strategy is slow and
++ can consume lots of memory.
++
++ deflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not
++ enough memory, Z_STREAM_ERROR if the source stream state was inconsistent
++ (such as zalloc being NULL). msg is left unchanged in both source and
++ destination.
++*/
++
++extern int EXPORT deflateReset OF((z_streamp strm));
++/*
++ This function is equivalent to deflateEnd followed by deflateInit,
++ but does not free and reallocate all the internal compression state.
++ The stream will keep the same compression level and any other attributes
++ that may have been set by deflateInit2.
++
++ deflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source
++ stream state was inconsistent (such as zalloc or state being NULL).
++*/
++
++extern int EXPORT deflateParams OF((z_streamp strm, int level, int strategy));
++/*
++ Dynamically update the compression level and compression strategy.
++ This can be used to switch between compression and straight copy of
++ the input data, or to switch to a different kind of input data requiring
++ a different strategy. If the compression level is changed, the input
++ available so far is compressed with the old level (and may be flushed);
++ the new level will take effect only at the next call of deflate().
++
++ Before the call of deflateParams, the stream state must be set as for
++ a call of deflate(), since the currently available input may have to
++ be compressed and flushed. In particular, strm-&gt;avail_out must be non-zero.
++
++ deflateParams returns Z_OK if success, Z_STREAM_ERROR if the source
++ stream state was inconsistent or if a parameter was invalid, Z_BUF_ERROR
++ if strm-&gt;avail_out was zero.
++*/
++
++extern int EXPORT deflateOutputPending OF((z_streamp strm));
++/*
++ Returns the number of bytes of output which are immediately
++ available from the compressor (i.e. without any further input
++ or flush).
++*/
++
++/*
++extern int EXPORT inflateInit2 OF((z_streamp strm,
++ int windowBits));
++
++ This is another version of inflateInit with more compression options. The
++ fields next_out, zalloc, zfree and opaque must be initialized before by
++ the caller.
++
++ The windowBits parameter is the base two logarithm of the maximum window
++ size (the size of the history buffer). It should be in the range 8..15 for
++ this version of the library (the value 16 will be allowed soon). The
++ default value is 15 if inflateInit is used instead. If a compressed stream
++ with a larger window size is given as input, inflate() will return with
++ the error code Z_DATA_ERROR instead of trying to allocate a larger window.
++
++ If next_out is not null, the library will use this buffer for the history
++ buffer; the buffer must either be large enough to hold the entire output
++ data, or have at least 1&lt;&lt;windowBits bytes. If next_out is null, the
++ library will allocate its own buffer (and leave next_out null). next_in
++ need not be provided here but must be provided by the application for the
++ next call of inflate().
++
++ If the history buffer is provided by the application, next_out must
++ never be changed by the application since the decompressor maintains
++ history information inside this buffer from call to call; the application
++ can only reset next_out to the beginning of the history buffer when
++ avail_out is zero and all output has been consumed.
++
++ inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was
++ not enough memory, Z_STREAM_ERROR if a parameter is invalid (such as
++ windowBits &lt; 8). msg is set to null if there is no error message.
++ inflateInit2 does not perform any decompression: this will be done by
++ inflate().
++*/
++
++extern int EXPORT inflateSetDictionary OF((z_streamp strm,
++ const Bytef *dictionary,
++ uInt dictLength));
++/*
++ Initializes the decompression dictionary (history buffer) from the given
++ uncompressed byte sequence. This function must be called immediately after
++ a call of inflate if this call returned Z_NEED_DICT. The dictionary chosen
++ by the compressor can be determined from the Adler32 value returned by this
++ call of inflate. The compressor and decompressor must use exactly the same
++ dictionary (see deflateSetDictionary).
++
++ inflateSetDictionary returns Z_OK if success, Z_STREAM_ERROR if a
++ parameter is invalid (such as NULL dictionary) or the stream state is
++ inconsistent, Z_DATA_ERROR if the given dictionary doesn't match the
++ expected one (incorrect Adler32 value). inflateSetDictionary does not
++ perform any decompression: this will be done by subsequent calls of
++ inflate().
++*/
++
++extern int EXPORT inflateSync OF((z_streamp strm));
++/*
++ Skips invalid compressed data until the special marker (see deflate()
++ above) can be found, or until all available input is skipped. No output
++ is provided.
++
++ inflateSync returns Z_OK if the special marker has been found, Z_BUF_ERROR
++ if no more input was provided, Z_DATA_ERROR if no marker has been found,
++ or Z_STREAM_ERROR if the stream structure was inconsistent. In the success
++ case, the application may save the current current value of total_in which
++ indicates where valid compressed data was found. In the error case, the
++ application may repeatedly call inflateSync, providing more input each time,
++ until success or end of the input data.
++*/
++
++extern int EXPORT inflateReset OF((z_streamp strm));
++/*
++ This function is equivalent to inflateEnd followed by inflateInit,
++ but does not free and reallocate all the internal decompression state.
++ The stream will keep attributes that may have been set by inflateInit2.
++
++ inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source
++ stream state was inconsistent (such as zalloc or state being NULL).
++*/
++
++extern int inflateIncomp OF((z_stream *strm));
++/*
++ This function adds the data at next_in (avail_in bytes) to the output
++ history without performing any output. There must be no pending output,
++ and the decompressor must be expecting to see the start of a block.
++ Calling this function is equivalent to decompressing a stored block
++ containing the data at next_in (except that the data is not output).
++*/
++
++ /* utility functions */
++
++/*
++ The following utility functions are implemented on top of the
++ basic stream-oriented functions. To simplify the interface, some
++ default options are assumed (compression level, window size,
++ standard memory allocation functions). The source code of these
++ utility functions can easily be modified if you need special options.
++*/
++
++extern int EXPORT compress OF((Bytef *dest, uLongf *destLen,
++ const Bytef *source, uLong sourceLen));
++/*
++ Compresses the source buffer into the destination buffer. sourceLen is
++ the byte length of the source buffer. Upon entry, destLen is the total
++ size of the destination buffer, which must be at least 0.1% larger than
++ sourceLen plus 12 bytes. Upon exit, destLen is the actual size of the
++ compressed buffer.
++ This function can be used to compress a whole file at once if the
++ input file is mmap'ed.
++ compress returns Z_OK if success, Z_MEM_ERROR if there was not
++ enough memory, Z_BUF_ERROR if there was not enough room in the output
++ buffer.
++*/
++
++extern int EXPORT uncompress OF((Bytef *dest, uLongf *destLen,
++ const Bytef *source, uLong sourceLen));
++/*
++ Decompresses the source buffer into the destination buffer. sourceLen is
++ the byte length of the source buffer. Upon entry, destLen is the total
++ size of the destination buffer, which must be large enough to hold the
++ entire uncompressed data. (The size of the uncompressed data must have
++ been saved previously by the compressor and transmitted to the decompressor
++ by some mechanism outside the scope of this compression library.)
++ Upon exit, destLen is the actual size of the compressed buffer.
++ This function can be used to decompress a whole file at once if the
++ input file is mmap'ed.
++
++ uncompress returns Z_OK if success, Z_MEM_ERROR if there was not
++ enough memory, Z_BUF_ERROR if there was not enough room in the output
++ buffer, or Z_DATA_ERROR if the input data was corrupted.
++*/
++
++
++typedef voidp gzFile;
++
++extern gzFile EXPORT gzopen OF((const char *path, const char *mode));
++/*
++ Opens a gzip (.gz) file for reading or writing. The mode parameter
++ is as in fopen (&quot;rb&quot; or &quot;wb&quot;) but can also include a compression level
++ (&quot;wb9&quot;). gzopen can be used to read a file which is not in gzip format;
++ in this case gzread will directly read from the file without decompression.
++ gzopen returns NULL if the file could not be opened or if there was
++ insufficient memory to allocate the (de)compression state; errno
++ can be checked to distinguish the two cases (if errno is zero, the
++ zlib error is Z_MEM_ERROR).
++*/
++
++extern gzFile EXPORT gzdopen OF((int fd, const char *mode));
++/*
++ gzdopen() associates a gzFile with the file descriptor fd. File
++ descriptors are obtained from calls like open, dup, creat, pipe or
++ fileno (in the file has been previously opened with fopen).
++ The mode parameter is as in gzopen.
++ The next call of gzclose on the returned gzFile will also close the
++ file descriptor fd, just like fclose(fdopen(fd), mode) closes the file
++ descriptor fd. If you want to keep fd open, use gzdopen(dup(fd), mode).
++ gzdopen returns NULL if there was insufficient memory to allocate
++ the (de)compression state.
++*/
++
++extern int EXPORT gzread OF((gzFile file, voidp buf, unsigned len));
++/*
++ Reads the given number of uncompressed bytes from the compressed file.
++ If the input file was not in gzip format, gzread copies the given number
++ of bytes into the buffer.
++ gzread returns the number of uncompressed bytes actually read (0 for
++ end of file, -1 for error). */
++
++extern int EXPORT gzwrite OF((gzFile file, const voidp buf, unsigned len));
++/*
++ Writes the given number of uncompressed bytes into the compressed file.
++ gzwrite returns the number of uncompressed bytes actually written
++ (0 in case of error).
++*/
++
++extern int EXPORT gzflush OF((gzFile file, int flush));
++/*
++ Flushes all pending output into the compressed file. The parameter
++ flush is as in the deflate() function. The return value is the zlib
++ error number (see function gzerror below). gzflush returns Z_OK if
++ the flush parameter is Z_FINISH and all output could be flushed.
++ gzflush should be called only when strictly necessary because it can
++ degrade compression.
++*/
++
++extern int EXPORT gzclose OF((gzFile file));
++/*
++ Flushes all pending output if necessary, closes the compressed file
++ and deallocates all the (de)compression state. The return value is the zlib
++ error number (see function gzerror below).
++*/
++
++extern const char * EXPORT gzerror OF((gzFile file, int *errnum));
++/*
++ Returns the error message for the last error which occurred on the
++ given compressed file. errnum is set to zlib error number. If an
++ error occurred in the file system and not in the compression library,
++ errnum is set to Z_ERRNO and the application may consult errno
++ to get the exact error code.
++*/
++
++ /* checksum functions */
++
++/*
++ These functions are not related to compression but are exported
++ anyway because they might be useful in applications using the
++ compression library.
++*/
++
++extern uLong EXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len));
++
++/*
++ Update a running Adler-32 checksum with the bytes buf[0..len-1] and
++ return the updated checksum. If buf is NULL, this function returns
++ the required initial value for the checksum.
++ An Adler-32 checksum is almost as reliable as a CRC32 but can be computed
++ much faster. Usage example:
++
++ uLong adler = adler32(0L, Z_NULL, 0);
++
++ while (read_buffer(buffer, length) != EOF) {
++ adler = adler32(adler, buffer, length);
++ }
++ if (adler != original_adler) error();
++*/
++
++extern uLong EXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len));
++/*
++ Update a running crc with the bytes buf[0..len-1] and return the updated
++ crc. If buf is NULL, this function returns the required initial value
++ for the crc. Pre- and post-conditioning (one's complement) is performed
++ within this function so it shouldn't be done by the application.
++ Usage example:
++
++ uLong crc = crc32(0L, Z_NULL, 0);
++
++ while (read_buffer(buffer, length) != EOF) {
++ crc = crc32(crc, buffer, length);
++ }
++ if (crc != original_crc) error();
++*/
++
++
++ /* various hacks, don't look :) */
++
++/* deflateInit and inflateInit are macros to allow checking the zlib version
++ * and the compiler's view of z_stream:
++ */
++extern int EXPORT deflateInit_ OF((z_streamp strm, int level,
++ const char *version, int stream_size));
++extern int EXPORT inflateInit_ OF((z_streamp strm,
++ const char *version, int stream_size));
++extern int EXPORT deflateInit2_ OF((z_streamp strm, int level, int method,
++ int windowBits, int memLevel, int strategy,
++ const char *version, int stream_size));
++extern int EXPORT inflateInit2_ OF((z_streamp strm, int windowBits,
++ const char *version, int stream_size));
++#define deflateInit(strm, level) \
++ deflateInit_((strm), (level), ZLIB_VERSION, sizeof(z_stream))
++#define inflateInit(strm) \
++ inflateInit_((strm), ZLIB_VERSION, sizeof(z_stream))
++#define deflateInit2(strm, level, method, windowBits, memLevel, strategy) \
++ deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\
++ (strategy), ZLIB_VERSION, sizeof(z_stream))
++#define inflateInit2(strm, windowBits) \
++ inflateInit2_((strm), (windowBits), ZLIB_VERSION, sizeof(z_stream))
++
++#if !defined(_Z_UTIL_H) &amp;&amp; !defined(NO_DUMMY_DECL)
++ struct internal_state {int dummy;}; /* hack for buggy compilers */
++#endif
++
++uLongf *get_crc_table OF((void)); /* can be used by asm versions of crc32() */
++
++#ifdef __cplusplus
++}
++#endif
++
++#endif /* _ZLIB_H */
++/* --- zlib.h */
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/common/zlib.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pppconfigure">Added: drakx/trunk/mdk-stage1/ppp/configure</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/configure (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/configure 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,141 @@
++#!/bin/sh
++# $Id: configure 195720 2001-06-11 11:44:34Z gc $
++
++# if [ -d /NextApps ]; then
++# system=&quot;NeXTStep&quot;
++# else
++ system=`uname -s`
++ release=`uname -r`
++ machine=`uname -p`
++ arch=`uname -m`
++# fi
++state=&quot;unknown&quot;
++
++case $system in
++ Linux)
++ makext=&quot;linux&quot;;
++ ksrc=&quot;linux&quot;;
++ state=&quot;known&quot;;;
++ SunOS)
++ case $release in
++# [0-3]*) state=&quot;ancient&quot;;;
++# 4*) state=&quot;known&quot;; ksrc=&quot;sunos4&quot;; makext=&quot;sunos4&quot;;;
++ 5.[1-6]*) state=&quot;known&quot;; ksrc=&quot;solaris&quot;; makext=&quot;sol2&quot;;;
++ 5.[7-9]*) state=&quot;known&quot;; ksrc=&quot;solaris&quot;; makext=&quot;sol2&quot;;
++ case $arch in
++ sun4u) lp64='y';;
++ *) ;;
++ esac;;
++ esac;;
++ NetBSD|FreeBSD|ULTRIX|OSF1|NeXTStep|SINIX-?|UNIX_SV|UNIX_System_V)
++ state=&quot;notincluded&quot;;;
++# NetBSD)
++# makext=&quot;bsd&quot;;
++# case $release in
++# 0.*) state=&quot;ancient&quot;;;
++# 1.0*) state=&quot;ancient&quot;;;
++# 1.1*) state=&quot;known&quot;; ksrc=&quot;netbsd-1.1&quot;;;
++# 1.2*) state=&quot;known&quot;; ksrc=&quot;netbsd-1.2&quot;; makext=&quot;netbsd-1.2&quot;;;
++# 1.[3-9]*|[2-9]*)
++# state=&quot;late&quot;; ksrc=&quot;netbsd-1.2&quot;;;
++# esac;;
++# ULTRIX)
++# makext=&quot;ultrix&quot;;
++# case $release in
++# [0-3]*) state=&quot;ancient&quot;;;
++# 4.[01]*) state=&quot;early&quot;; ksrc=&quot;ultrix&quot;;;
++# 4.[234]) state=&quot;known&quot;; ksrc=&quot;ultrix&quot;;;
++# esac;;
++# OSF1)
++# makext=&quot;osf&quot;;
++# case $release in
++# V1.*) state=&quot;neolithic&quot;; ksrc=&quot;osf1&quot;;;
++# V[23].*) state=&quot;neolithic&quot;; ksrc=&quot;osf1&quot;;;
++# V4.*) state=&quot;known&quot;; ksrc=&quot;osf1&quot;;;
++# V[5-9]*) state=&quot;late&quot;; ksrc=&quot;osf1&quot;;;
++# esac;;
++# FreeBSD)
++# makext=&quot;bsd&quot;;
++# case $release in
++# 1.*) state=&quot;known&quot;; ksrc=&quot;freebsd-old&quot;;;
++# 2.[01]*) state=&quot;known&quot;; ksrc=&quot;freebsd-2.0&quot;;;
++# 2.2.[2-7]*) state=&quot;late&quot;; ksrc=&quot;freebsd-2.0&quot;;;
++# 2.2.8*) state=&quot;known&quot;; ksrc=&quot;freebsd-2.2.8&quot;;;
++# 3.[0-1]*) state=&quot;known&quot;; ksrc=&quot;freebsd-3.0&quot;;;
++# esac;;
++# NeXTStep)
++# makext=&quot;NeXT&quot;;
++# ksrc=&quot;NeXT&quot;;
++# state=&quot;known&quot;;;
++# SINIX-?)
++# case $release in
++# 5.4[01]) state=known; ksrc=svr4; makext=svr4;;
++# 5.4[2-9]) state=late; ksrc=svr4; makext=svr4;;
++# esac;;
++# # Intel SVR4 systems come with a bug in the uname program. Unless
++# # your provider fixed the bug, or you get a fix for it, uname -S will
++# # overwrite the system name with the node name!
++# UNIX_SV|UNIX_System_V|`uname -n`)
++# case $release in
++# 4.0) state=known; ksrc=svr4; makext=svr4;;
++# 4.2) state=late; ksrc=svr4; makext=svr4;;
++# esac;;
++esac
++
++if [ -d &quot;$ksrc&quot; ]; then :; else
++ state=&quot;notincluded&quot;
++ unset ksrc
++fi
++
++case $state in
++ neolithic)
++ echo &quot;This is a newer release on an outdated OS ($system).&quot;
++ echo &quot; This software may or may not work on this OS.&quot;
++ echo &quot; You may want to download an older version of PPP for this OS.&quot;;;
++ ancient)
++ echo &quot;This is an old release of a supported OS ($system).&quot;
++ echo &quot;This software cannot be used as-is on this system,&quot;
++ echo &quot;but you may be able to port it. Good luck!&quot;
++ exit;;
++ early)
++ echo &quot;This is an old release of a supported OS ($system).&quot;
++ echo &quot;This software should install and run on this system,&quot;
++ echo &quot;but it hasn't been tested.&quot;;;
++ late)
++ echo &quot;This is a newer release of $system than is supported by&quot;
++ echo &quot;this software. It may or may not work.&quot;;;
++ unknown)
++ echo &quot;This software has not been ported to this system. Sorry.&quot;;;
++ notincluded)
++ echo &quot;Support for this system has not been included&quot;
++ echo &quot;in this distribution. Sorry.&quot;;;
++esac
++
++orig_makext=$makext
++
++if [ -d &quot;$ksrc&quot; ]; then
++ echo &quot;Creating links to Makefiles.&quot;
++ rm -f Makefile
++ ln -s $ksrc/Makefile.top Makefile
++ echo &quot; Makefile -&gt; $ksrc/Makefile.top&quot;
++ if [ &quot;$ksrc&quot; = solaris ]; then
++ # Point to 64-bit Makefile extension
++ if [ &quot;$lp64&quot; = y ]; then
++ makext=$makext-64
++ fi
++ rm -f $ksrc/Makefile
++ ln -s Makefile.$makext $ksrc/Makefile
++ echo &quot; $ksrc/Makefile -&gt; Makefile.$makext&quot;
++ # Restore extension
++ if [ &quot;$lp64&quot; = y ]; then
++ makext=$orig_makext
++ fi
++ fi
++ for dir in pppd pppstats chat pppdump; do
++ rm -f $dir/Makefile
++ if [ -f $dir/Makefile.$makext ]; then
++ ln -s Makefile.$makext $dir/Makefile
++ echo &quot; $dir/Makefile -&gt; Makefile.$makext&quot;
++ fi
++ done
++fi
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/configure
+___________________________________________________________________
+Added: svn:executable
+ + *
+
+<a id="drakxtrunkmdkstage1pppcontribpppgetpassMakefilelinux">Added: drakx/trunk/mdk-stage1/ppp/contrib/pppgetpass/Makefile.linux</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/contrib/pppgetpass/Makefile.linux (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/contrib/pppgetpass/Makefile.linux 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,16 @@
++all: pppgetpass.vt pppgetpass.gtk
++
++pppgetpass.vt: pppgetpass.vt.o
++
++pppgetpass.gtk: pppgetpass.gtk.o
++ $(CC) $(LDFLAGS) pppgetpass.gtk.o `gtk-config --libs` -o pppgetpass.gtk
++pppgetpass.gtk.o: pppgetpass.gtk.c
++ $(CC) $(CFLAGS) -c pppgetpass.gtk.c `gtk-config --cflags`
++
++install: all
++ install -m 755 pppgetpass.sh /usr/bin/pppgetpass
++ install -m 4755 -o root -g root pppgetpass.vt /usr/bin/
++ install -m 755 -o root -g root pppgetpass.gtk /usr/X11/bin/
++
++clean:
++ rm -f *.o pppgetpass.gtk pppgetpass.vt core
+
+<a id="drakxtrunkmdkstage1pppcontribpppgetpasspppgetpass8">Added: drakx/trunk/mdk-stage1/ppp/contrib/pppgetpass/pppgetpass.8</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/contrib/pppgetpass/pppgetpass.8 (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/contrib/pppgetpass/pppgetpass.8 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,18 @@
++.TH PPPGETPASS 8 &quot;26 Sep 1999&quot;
++.SH NAME
++pppgetpass \- prompt for PAP password
++.SH SYNOPSIS
++.B pppgetpass
++.I client server fd
++.SH DESCRIPTION
++.B pppgetpass
++the outer half of a plugin for PAP password prompting in pppd.
++If the peer requires PAP, and the
++.B passprompt.so
++plugin is loaded into pppd, it will run
++.B /usr/sbin/pppgetpass
++(or another program specified by the
++.B promptprog
++option) to prompt the user for the password.
++.SH SEE ALSO
++pppd(8)
+
+<a id="drakxtrunkmdkstage1pppcontribpppgetpasspppgetpassgtkc">Added: drakx/trunk/mdk-stage1/ppp/contrib/pppgetpass/pppgetpass.gtk.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/contrib/pppgetpass/pppgetpass.gtk.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/contrib/pppgetpass/pppgetpass.gtk.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,92 @@
++#include &lt;glib.h&gt;
++#include &lt;gdk/gdk.h&gt;
++#include &lt;gtk/gtkwindow.h&gt;
++#include &lt;gtk/gtkmain.h&gt;
++#include &lt;gtk/gtkbutton.h&gt;
++#include &lt;gtk/gtkvbox.h&gt;
++#include &lt;gtk/gtklabel.h&gt;
++#include &lt;gtk/gtkentry.h&gt;
++#include &lt;gtk/gtksignal.h&gt;
++
++#include &lt;stdio.h&gt;
++#include &lt;string.h&gt;
++#include &lt;stdlib.h&gt;
++#include &lt;unistd.h&gt;
++#include &lt;syslog.h&gt;
++
++int outfd;
++int err;
++
++static void okpressed(void *widget, void *clientdata)
++{
++ GtkWidget *answer=clientdata;
++ gchar *pass;
++ int passlen;
++ ssize_t wrote;
++ (void)widget;
++
++ pass=gtk_entry_get_text(GTK_ENTRY(answer));
++
++ passlen=strlen(pass);
++ if(!passlen)
++ return;
++
++ if((wrote=write(outfd, pass, passlen))!=passlen) {
++ if(wrote&lt;0)
++ syslog(LOG_ERR, &quot;write error on outpipe: %m&quot;);
++ else
++ syslog(LOG_ERR, &quot;short write on outpipe&quot;);
++ err=1;
++ }
++ gtk_main_quit();
++}
++
++int main(int argc, char **argv)
++{
++ GtkWidget *mainwindow, *vbox, *question, *answer, *ok;
++ char buf[1024];
++ gtk_init(&amp;argc, &amp;argv);
++
++ openlog(argv[0], LOG_PID, LOG_DAEMON);
++ if(argc!=4) {
++ syslog(LOG_WARNING, &quot;Usage error&quot;);
++ return 1;
++ }
++ outfd=atoi(argv[3]);
++ mainwindow=gtk_window_new(GTK_WINDOW_TOPLEVEL);
++ gtk_window_set_title(GTK_WINDOW(mainwindow), &quot;pppgetpass&quot;);
++ gtk_signal_connect(GTK_OBJECT(mainwindow), &quot;destroy&quot;,
++ GTK_SIGNAL_FUNC(gtk_main_quit), 0);
++
++ vbox=gtk_vbox_new(FALSE, 5);
++ gtk_container_add(GTK_CONTAINER(mainwindow), vbox);
++ gtk_widget_show(vbox);
++
++ if(argv[1][0] &amp;&amp; argv[2][0])
++ snprintf(buf, sizeof buf, &quot;Password for PPP client %s on server %s: &quot;, argv[1], argv[2]);
++ else if(argv[1][0] &amp;&amp; !argv[2][0])
++ snprintf(buf, sizeof buf, &quot;Password for PPP client %s: &quot;, argv[1]);
++ else if(!argv[1][0] &amp;&amp; argv[2][0])
++ snprintf(buf, sizeof buf, &quot;Password for PPP on server %s: &quot;, argv[2]);
++ else
++ snprintf(buf, sizeof buf, &quot;Enter PPP password: &quot;);
++ question=gtk_label_new(buf);
++ gtk_box_pack_start(GTK_BOX(vbox), question, FALSE, TRUE, 0);
++ gtk_widget_show(question);
++
++ answer=gtk_entry_new();
++ gtk_entry_set_visibility(GTK_ENTRY(answer), 0);
++ gtk_box_pack_start(GTK_BOX(vbox), answer, FALSE, TRUE, 0);
++ gtk_widget_show(answer);
++
++ ok=gtk_button_new_with_label(&quot;OK&quot;);
++ gtk_box_pack_start(GTK_BOX(vbox), ok, FALSE, TRUE, 0);
++ gtk_signal_connect(GTK_OBJECT(ok), &quot;clicked&quot;,
++ GTK_SIGNAL_FUNC(okpressed), answer);
++ gtk_widget_show(ok);
++
++ gtk_widget_show(mainwindow);
++ gtk_main();
++
++ return err;
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/contrib/pppgetpass/pppgetpass.gtk.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pppcontribpppgetpasspppgetpasssh">Added: drakx/trunk/mdk-stage1/ppp/contrib/pppgetpass/pppgetpass.sh</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/contrib/pppgetpass/pppgetpass.sh (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/contrib/pppgetpass/pppgetpass.sh 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,7 @@
++#!/bin/sh
++
++if [ -z &quot;$DISPLAY&quot; ]; then
++ exec pppgetpass.vt &quot;$@&quot;
++else
++ exec pppgetpass.gtk &quot;$@&quot;
++fi
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/contrib/pppgetpass/pppgetpass.sh
+___________________________________________________________________
+Added: svn:executable
+ + *
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pppcontribpppgetpasspppgetpassvtc">Added: drakx/trunk/mdk-stage1/ppp/contrib/pppgetpass/pppgetpass.vt.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/contrib/pppgetpass/pppgetpass.vt.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/contrib/pppgetpass/pppgetpass.vt.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,218 @@
++#include &lt;stdio.h&gt;
++#include &lt;string.h&gt;
++#include &lt;stdlib.h&gt;
++#include &lt;errno.h&gt;
++#include &lt;unistd.h&gt;
++#include &lt;fcntl.h&gt;
++#include &lt;sys/stat.h&gt;
++#include &lt;sys/ioctl.h&gt;
++#include &lt;syslog.h&gt;
++#include &lt;termios.h&gt;
++#include &lt;sys/vt.h&gt;
++
++static int console_owner(uid_t, int);
++
++int main(int argc, char **argv)
++{
++ int console;
++ uid_t uid;
++ struct vt_stat origstate;
++ int openvtnum;
++ char openvtname[256];
++ int openvt;
++ gid_t gid;
++ int chowned;
++ FILE *fp;
++ struct termios t;
++ char pass[256], *nl;
++ int outfd, passlen;
++ ssize_t wrote;
++ console=open(&quot;/dev/console&quot;, O_RDWR);
++
++ uid=getuid();
++ gid=getgid();
++ seteuid(uid);
++
++ openlog(argv[0], LOG_PID, LOG_DAEMON);
++
++ if(argc!=4) {
++ syslog(LOG_WARNING, &quot;Usage error&quot;);
++ return 1;
++ }
++
++ if(console&lt;0) {
++ syslog(LOG_ERR, &quot;open(/dev/console): %m&quot;);
++ return 1;
++ }
++
++ if(ioctl(console, VT_GETSTATE, &amp;origstate)&lt;0) {
++ syslog(LOG_ERR, &quot;VT_GETSTATE: %m&quot;);
++ return 1;
++ }
++
++ if(uid) {
++ if(!console_owner(uid, origstate.v_active)) {
++ int i;
++ for(i=0;i&lt;64;++i) {
++ if(i!=origstate.v_active &amp;&amp; console_owner(uid, i))
++ break;
++ }
++ if(i==64) {
++ syslog(LOG_WARNING, &quot;run by uid %lu not at console&quot;, (unsigned long)uid);
++ return 1;
++ }
++ }
++ }
++
++ if(ioctl(console, VT_OPENQRY, &amp;openvtnum)&lt;0) {
++ syslog(LOG_ERR, &quot;VT_OPENQRY: %m&quot;);
++ return 1;
++ }
++ if(openvtnum==-1) {
++ syslog(LOG_ERR, &quot;No free VTs&quot;);
++ return 1;
++ }
++
++ snprintf(openvtname, sizeof openvtname, &quot;/dev/tty%d&quot;, openvtnum);
++ seteuid(0);
++ openvt=open(openvtname, O_RDWR);
++ if(openvt&lt;0) {
++ seteuid(uid);
++ syslog(LOG_ERR, &quot;open(%s): %m&quot;, openvtname);
++ return 1;
++ }
++
++ chowned=fchown(openvt, uid, gid);
++ if(chowned&lt;0) {
++ seteuid(uid);
++ syslog(LOG_ERR, &quot;fchown(%s): %m&quot;, openvtname);
++ return 1;
++ }
++
++ close(console);
++
++ if(ioctl(openvt, VT_ACTIVATE, openvtnum)&lt;0) {
++ seteuid(uid);
++ syslog(LOG_ERR, &quot;VT_ACTIVATE(%d): %m&quot;, openvtnum);
++ return 1;
++ }
++
++ while(ioctl(openvt, VT_WAITACTIVE, openvtnum)&lt;0) {
++ if(errno!=EINTR) {
++ ioctl(openvt, VT_ACTIVATE, origstate.v_active);
++ seteuid(uid);
++ syslog(LOG_ERR, &quot;VT_WAITACTIVE(%d): %m&quot;, openvtnum);
++ return 1;
++ }
++ }
++
++ seteuid(uid);
++ fp=fdopen(openvt, &quot;r+&quot;);
++ if(!fp) {
++ seteuid(0);
++ ioctl(openvt, VT_ACTIVATE, origstate.v_active);
++ seteuid(uid);
++ syslog(LOG_ERR, &quot;fdopen(%s): %m&quot;, openvtname);
++ return 1;
++ }
++
++ if(tcgetattr(openvt, &amp;t)&lt;0) {
++ seteuid(0);
++ ioctl(openvt, VT_ACTIVATE, origstate.v_active);
++ seteuid(uid);
++ syslog(LOG_ERR, &quot;tcgetattr(%s): %m&quot;, openvtname);
++ return 1;
++ }
++ t.c_lflag &amp;= ~ECHO;
++ if(tcsetattr(openvt, TCSANOW, &amp;t)&lt;0) {
++ seteuid(0);
++ ioctl(openvt, VT_ACTIVATE, origstate.v_active);
++ seteuid(uid);
++ syslog(LOG_ERR, &quot;tcsetattr(%s): %m&quot;, openvtname);
++ return 1;
++ }
++
++ if(fprintf(fp, &quot;\033[2J\033[H&quot;)&lt;0) {
++ seteuid(0);
++ ioctl(openvt, VT_ACTIVATE, origstate.v_active);
++ seteuid(uid);
++ syslog(LOG_ERR, &quot;write error on %s: %m&quot;, openvtname);
++ return 1;
++ }
++ if(argv[1][0] &amp;&amp; argv[2][0]) {
++ if(fprintf(fp, &quot;Password for PPP client %s on server %s: &quot;, argv[1], argv[2])&lt;0) {
++ seteuid(0);
++ ioctl(openvt, VT_ACTIVATE, origstate.v_active);
++ seteuid(uid);
++ syslog(LOG_ERR, &quot;write error on %s: %m&quot;, openvtname);
++ return 1;
++ }
++ } else if(argv[1][0] &amp;&amp; !argv[2][0]) {
++ if(fprintf(fp, &quot;Password for PPP client %s: &quot;, argv[1])&lt;0) {
++ syslog(LOG_ERR, &quot;write error on %s: %m&quot;, openvtname);
++ seteuid(0);
++ ioctl(openvt, VT_ACTIVATE, origstate.v_active);
++ seteuid(uid);
++ return 1;
++ }
++ } else if(!argv[1][0] &amp;&amp; argv[2][0]) {
++ if(fprintf(fp, &quot;Password for PPP on server %s: &quot;, argv[2])&lt;0) {
++ seteuid(0);
++ ioctl(openvt, VT_ACTIVATE, origstate.v_active);
++ seteuid(uid);
++ syslog(LOG_ERR, &quot;write error on %s: %m&quot;, openvtname);
++ return 1;
++ }
++ } else {
++ if(fprintf(fp, &quot;Enter PPP password: &quot;)&lt;0) {
++ seteuid(0);
++ ioctl(openvt, VT_ACTIVATE, origstate.v_active);
++ seteuid(uid);
++ syslog(LOG_ERR, &quot;write error on %s: %m&quot;, openvtname);
++ return 1;
++ }
++ }
++
++ if(!fgets(pass, sizeof pass, fp)) {
++ seteuid(0);
++ ioctl(openvt, VT_ACTIVATE, origstate.v_active);
++ seteuid(uid);
++ if(ferror(fp)) {
++ syslog(LOG_ERR, &quot;read error on %s: %m&quot;, openvtname);
++ }
++ return 1;
++ }
++ if((nl=strchr(pass, '\n')))
++ *nl=0;
++ passlen=strlen(pass);
++
++ outfd=atoi(argv[3]);
++ if((wrote=write(outfd, pass, passlen))!=passlen) {
++ seteuid(0);
++ ioctl(openvt, VT_ACTIVATE, origstate.v_active);
++ seteuid(uid);
++ if(wrote&lt;0)
++ syslog(LOG_ERR, &quot;write error on outpipe: %m&quot;);
++ else
++ syslog(LOG_ERR, &quot;short write on outpipe&quot;);
++ return 1;
++ }
++
++ seteuid(0);
++ ioctl(openvt, VT_ACTIVATE, origstate.v_active);
++ seteuid(uid);
++ return 0;
++}
++
++static int console_owner(uid_t uid, int cons)
++{
++ char name[256];
++ struct stat st;
++ snprintf(name, sizeof name, &quot;/dev/tty%d&quot;, cons);
++ if(stat(name, &amp;st)&lt;0) {
++ if(errno!=ENOENT)
++ syslog(LOG_ERR, &quot;stat(%s): %m&quot;, name);
++ return 0;
++ }
++ return uid==st.st_uid;
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/contrib/pppgetpass/pppgetpass.vt.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pppetcpppchapsecrets">Added: drakx/trunk/mdk-stage1/ppp/etc.ppp/chap-secrets</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/etc.ppp/chap-secrets (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/etc.ppp/chap-secrets 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,2 @@
++# Secrets for authentication using CHAP
++# client server secret IP addresses
+
+<a id="drakxtrunkmdkstage1pppetcpppoptions">Added: drakx/trunk/mdk-stage1/ppp/etc.ppp/options</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/etc.ppp/options (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/etc.ppp/options 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,5 @@
++lock
++noauth
++noipdefault
++usepeerdns
++
+
+<a id="drakxtrunkmdkstage1pppetcpppoptionsoptions">Added: drakx/trunk/mdk-stage1/ppp/etc.ppp/options.options</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/etc.ppp/options.options (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/etc.ppp/options.options 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1 @@
++lock
+
+<a id="drakxtrunkmdkstage1pppetcppppapsecrets">Added: drakx/trunk/mdk-stage1/ppp/etc.ppp/pap-secrets</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/etc.ppp/pap-secrets (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/etc.ppp/pap-secrets 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,2 @@
++# Secrets for authentication using PAP
++# client server secret IP addresses
+
+<a id="drakxtrunkmdkstage1pppincludelinuxif_ppph">Added: drakx/trunk/mdk-stage1/ppp/include/linux/if_ppp.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/include/linux/if_ppp.h (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/include/linux/if_ppp.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,155 @@
++/* $Id: if_ppp.h 195720 2001-06-11 11:44:34Z gc $ */
++
++/*
++ * if_ppp.h - Point-to-Point Protocol definitions.
++ *
++ * Copyright (c) 1989 Carnegie Mellon University.
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms are permitted
++ * provided that the above copyright notice and this paragraph are
++ * duplicated in all such forms and that any documentation,
++ * advertising materials, and other materials related to such
++ * distribution and use acknowledge that the software was developed
++ * by Carnegie Mellon University. The name of the
++ * University may not be used to endorse or promote products derived
++ * from this software without specific prior written permission.
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
++ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
++ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++ *
++ */
++
++/*
++ * ==FILEVERSION 20000724==
++ *
++ * NOTE TO MAINTAINERS:
++ * If you modify this file at all, please set the above date.
++ * if_ppp.h is shipped with a PPP distribution as well as with the kernel;
++ * if everyone increases the FILEVERSION number above, then scripts
++ * can do the right thing when deciding whether to install a new if_ppp.h
++ * file. Don't change the format of that line otherwise, so the
++ * installation script can recognize it.
++ */
++
++#ifndef _IF_PPP_H_
++#define _IF_PPP_H_
++
++/*
++ * Packet sizes
++ */
++
++#define PPP_MTU 1500 /* Default MTU (size of Info field) */
++#define PPP_MAXMRU 65000 /* Largest MRU we allow */
++#define PROTO_IPX 0x002b /* protocol numbers */
++#define PROTO_DNA_RT 0x0027 /* DNA Routing */
++
++
++/*
++ * Bit definitions for flags.
++ */
++
++#define SC_COMP_PROT 0x00000001 /* protocol compression (output) */
++#define SC_COMP_AC 0x00000002 /* header compression (output) */
++#define SC_COMP_TCP 0x00000004 /* TCP (VJ) compression (output) */
++#define SC_NO_TCP_CCID 0x00000008 /* disable VJ connection-id comp. */
++#define SC_REJ_COMP_AC 0x00000010 /* reject adrs/ctrl comp. on input */
++#define SC_REJ_COMP_TCP 0x00000020 /* reject TCP (VJ) comp. on input */
++#define SC_CCP_OPEN 0x00000040 /* Look at CCP packets */
++#define SC_CCP_UP 0x00000080 /* May send/recv compressed packets */
++#define SC_ENABLE_IP 0x00000100 /* IP packets may be exchanged */
++#define SC_LOOP_TRAFFIC 0x00000200 /* send traffic to pppd */
++#define SC_MULTILINK 0x00000400 /* do multilink encapsulation */
++#define SC_MP_SHORTSEQ 0x00000800 /* use short MP sequence numbers */
++#define SC_COMP_RUN 0x00001000 /* compressor has been inited */
++#define SC_DECOMP_RUN 0x00002000 /* decompressor has been inited */
++#define SC_MP_XSHORTSEQ 0x00004000 /* transmit short MP seq numbers */
++#define SC_DEBUG 0x00010000 /* enable debug messages */
++#define SC_LOG_INPKT 0x00020000 /* log contents of good pkts recvd */
++#define SC_LOG_OUTPKT 0x00040000 /* log contents of pkts sent */
++#define SC_LOG_RAWIN 0x00080000 /* log all chars received */
++#define SC_LOG_FLUSH 0x00100000 /* log all chars flushed */
++#define SC_SYNC 0x00200000 /* synchronous serial mode */
++#define SC_MASK 0x0f200fff /* bits that user can change */
++
++/* state bits */
++#define SC_XMIT_BUSY 0x10000000 /* (used by isdn_ppp?) */
++#define SC_RCV_ODDP 0x08000000 /* have rcvd char with odd parity */
++#define SC_RCV_EVNP 0x04000000 /* have rcvd char with even parity */
++#define SC_RCV_B7_1 0x02000000 /* have rcvd char with bit 7 = 1 */
++#define SC_RCV_B7_0 0x01000000 /* have rcvd char with bit 7 = 0 */
++#define SC_DC_FERROR 0x00800000 /* fatal decomp error detected */
++#define SC_DC_ERROR 0x00400000 /* non-fatal decomp error detected */
++
++/*
++ * Ioctl definitions.
++ */
++
++struct npioctl {
++ int protocol; /* PPP protocol, e.g. PPP_IP */
++ enum NPmode mode;
++};
++
++/* Structure describing a CCP configuration option, for PPPIOCSCOMPRESS */
++struct ppp_option_data {
++ __u8 *ptr;
++ __u32 length;
++ int transmit;
++};
++
++struct ifpppstatsreq {
++ struct ifreq b;
++ struct ppp_stats stats; /* statistic information */
++};
++
++struct ifpppcstatsreq {
++ struct ifreq b;
++ struct ppp_comp_stats stats;
++};
++
++#define ifr__name b.ifr_ifrn.ifrn_name
++#define stats_ptr b.ifr_ifru.ifru_data
++
++/*
++ * Ioctl definitions.
++ */
++
++#define PPPIOCGFLAGS _IOR('t', 90, int) /* get configuration flags */
++#define PPPIOCSFLAGS _IOW('t', 89, int) /* set configuration flags */
++#define PPPIOCGASYNCMAP _IOR('t', 88, int) /* get async map */
++#define PPPIOCSASYNCMAP _IOW('t', 87, int) /* set async map */
++#define PPPIOCGUNIT _IOR('t', 86, int) /* get ppp unit number */
++#define PPPIOCGRASYNCMAP _IOR('t', 85, int) /* get receive async map */
++#define PPPIOCSRASYNCMAP _IOW('t', 84, int) /* set receive async map */
++#define PPPIOCGMRU _IOR('t', 83, int) /* get max receive unit */
++#define PPPIOCSMRU _IOW('t', 82, int) /* set max receive unit */
++#define PPPIOCSMAXCID _IOW('t', 81, int) /* set VJ max slot ID */
++#define PPPIOCGXASYNCMAP _IOR('t', 80, ext_accm) /* get extended ACCM */
++#define PPPIOCSXASYNCMAP _IOW('t', 79, ext_accm) /* set extended ACCM */
++#define PPPIOCXFERUNIT _IO('t', 78) /* transfer PPP unit */
++#define PPPIOCSCOMPRESS _IOW('t', 77, struct ppp_option_data)
++#define PPPIOCGNPMODE _IOWR('t', 76, struct npioctl) /* get NP mode */
++#define PPPIOCSNPMODE _IOW('t', 75, struct npioctl) /* set NP mode */
++#define PPPIOCSPASS _IOW('t', 71, struct sock_fprog) /* set pass filter */
++#define PPPIOCSACTIVE _IOW('t', 70, struct sock_fprog) /* set active filt */
++#define PPPIOCGDEBUG _IOR('t', 65, int) /* Read debug level */
++#define PPPIOCSDEBUG _IOW('t', 64, int) /* Set debug level */
++#define PPPIOCGIDLE _IOR('t', 63, struct ppp_idle) /* get idle time */
++#define PPPIOCNEWUNIT _IOWR('t', 62, int) /* create new ppp unit */
++#define PPPIOCATTACH _IOW('t', 61, int) /* attach to ppp unit */
++#define PPPIOCDETACH _IOW('t', 60, int) /* detach from ppp unit/chan */
++#define PPPIOCSMRRU _IOW('t', 59, int) /* set multilink MRU */
++#define PPPIOCCONNECT _IOW('t', 58, int) /* connect channel to unit */
++#define PPPIOCDISCONN _IO('t', 57) /* disconnect channel */
++#define PPPIOCATTCHAN _IOW('t', 56, int) /* attach to ppp channel */
++#define PPPIOCGCHAN _IOR('t', 55, int) /* get ppp channel number */
++
++#define SIOCGPPPSTATS (SIOCDEVPRIVATE + 0)
++#define SIOCGPPPVER (SIOCDEVPRIVATE + 1) /* NEVER change this!! */
++#define SIOCGPPPCSTATS (SIOCDEVPRIVATE + 2)
++
++#if !defined(ifr_mtu)
++#define ifr_mtu ifr_ifru.ifru_metric
++#endif
++
++#endif /* _IF_PPP_H_ */
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/include/linux/if_ppp.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pppincludelinuxif_pppvarh">Added: drakx/trunk/mdk-stage1/ppp/include/linux/if_pppvar.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/include/linux/if_pppvar.h (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/include/linux/if_pppvar.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,138 @@
++/* From: if_pppvar.h,v 1.2 1995/06/12 11:36:51 paulus Exp */
++/*
++ * if_pppvar.h - private structures and declarations for PPP.
++ *
++ * Copyright (c) 1994 The Australian National University.
++ * All rights reserved.
++ *
++ * Permission to use, copy, modify, and distribute this software and its
++ * documentation is hereby granted, provided that the above copyright
++ * notice appears in all copies. This software is provided without any
++ * warranty, express or implied. The Australian National University
++ * makes no representations about the suitability of this software for
++ * any purpose.
++ *
++ * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY
++ * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
++ * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
++ * THE AUSTRALIAN NATIONAL UNIVERSITY HAVE BEEN ADVISED OF THE POSSIBILITY
++ * OF SUCH DAMAGE.
++ *
++ * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
++ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
++ * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
++ * ON AN &quot;AS IS&quot; BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO
++ * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
++ * OR MODIFICATIONS.
++ *
++ * Copyright (c) 1989 Carnegie Mellon University.
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms are permitted
++ * provided that the above copyright notice and this paragraph are
++ * duplicated in all such forms and that any documentation,
++ * advertising materials, and other materials related to such
++ * distribution and use acknowledge that the software was developed
++ * by Carnegie Mellon University. The name of the
++ * University may not be used to endorse or promote products derived
++ * from this software without specific prior written permission.
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
++ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
++ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++ */
++
++/*
++ * ==FILEVERSION 990911==
++ *
++ * NOTE TO MAINTAINERS:
++ * If you modify this file at all, please set the above date.
++ * if_pppvar.h is shipped with a PPP distribution as well as with the kernel;
++ * if everyone increases the FILEVERSION number above, then scripts
++ * can do the right thing when deciding whether to install a new if_pppvar.h
++ * file. Don't change the format of that line otherwise, so the
++ * installation script can recognize it.
++ */
++
++/*
++ * Supported network protocols. These values are used for
++ * indexing sc_npmode.
++ */
++
++#define NP_IP 0 /* Internet Protocol */
++#define NP_IPX 1 /* IPX protocol */
++#define NP_AT 2 /* Appletalk protocol */
++#define NP_IPV6 3 /* Internet Protocol */
++#define NUM_NP 4 /* Number of NPs. */
++
++#define OBUFSIZE 256 /* # chars of output buffering */
++
++/*
++ * Structure describing each ppp unit.
++ */
++
++struct ppp {
++ int magic; /* magic value for structure */
++ struct ppp *next; /* unit with next index */
++ unsigned long inuse; /* are we allocated? */
++ int line; /* network interface unit # */
++ __u32 flags; /* miscellaneous control flags */
++ int mtu; /* maximum xmit frame size */
++ int mru; /* maximum receive frame size */
++ struct slcompress *slcomp; /* for TCP header compression */
++ struct sk_buff_head xmt_q; /* frames to send from pppd */
++ struct sk_buff_head rcv_q; /* frames for pppd to read */
++ unsigned long xmit_busy; /* bit 0 set when xmitter busy */
++
++ /* Information specific to using ppp on async serial lines. */
++ struct tty_struct *tty; /* ptr to TTY structure */
++ struct tty_struct *backup_tty; /* TTY to use if tty gets closed */
++ __u8 escape; /* 0x20 if prev char was PPP_ESC */
++ __u8 toss; /* toss this frame */
++ volatile __u8 tty_pushing; /* internal state flag */
++ volatile __u8 woke_up; /* internal state flag */
++ __u32 xmit_async_map[8]; /* 1 bit means that given control
++ character is quoted on output*/
++ __u32 recv_async_map; /* 1 bit means that given control
++ character is ignored on input*/
++ __u32 bytes_sent; /* Bytes sent on frame */
++ __u32 bytes_rcvd; /* Bytes recvd on frame */
++
++ /* Async transmission information */
++ struct sk_buff *tpkt; /* frame currently being sent */
++ int tpkt_pos; /* how much of it we've done */
++ __u16 tfcs; /* FCS so far for it */
++ unsigned char *optr; /* where we're up to in sending */
++ unsigned char *olim; /* points past last valid char */
++
++ /* Async reception information */
++ struct sk_buff *rpkt; /* frame currently being rcvd */
++ __u16 rfcs; /* FCS so far of rpkt */
++
++ /* Queues for select() functionality */
++ struct wait_queue *read_wait; /* queue for reading processes */
++
++ /* info for detecting idle channels */
++ unsigned long last_xmit; /* time of last transmission */
++ unsigned long last_recv; /* time last packet received */
++
++ /* Statistic information */
++ struct pppstat stats; /* statistic information */
++
++ /* PPP compression protocol information */
++ struct compressor *sc_xcomp; /* transmit compressor */
++ void *sc_xc_state; /* transmit compressor state */
++ struct compressor *sc_rcomp; /* receive decompressor */
++ void *sc_rc_state; /* receive decompressor state */
++
++ enum NPmode sc_npmode[NUM_NP]; /* what to do with each NP */
++ int sc_xfer; /* PID of reserved PPP table */
++ char name[8]; /* space for unit name */
++ struct device dev; /* net device structure */
++ struct enet_statistics estats; /* more detailed stats */
++
++ /* tty output buffer */
++ unsigned char obuf[OBUFSIZE]; /* buffer for characters to send */
++};
++
++#define PPP_MAGIC 0x5002
++#define PPP_VERSION &quot;2.3.11&quot;
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/include/linux/if_pppvar.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pppincludelinuxpppcomph">Added: drakx/trunk/mdk-stage1/ppp/include/linux/ppp-comp.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/include/linux/ppp-comp.h (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/include/linux/ppp-comp.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,203 @@
++/*
++ * ppp-comp.h - Definitions for doing PPP packet compression.
++ *
++ * Copyright (c) 1994 The Australian National University.
++ * All rights reserved.
++ *
++ * Permission to use, copy, modify, and distribute this software and its
++ * documentation is hereby granted, provided that the above copyright
++ * notice appears in all copies. This software is provided without any
++ * warranty, express or implied. The Australian National University
++ * makes no representations about the suitability of this software for
++ * any purpose.
++ *
++ * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY
++ * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
++ * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
++ * THE AUSTRALIAN NATIONAL UNIVERSITY HAVE BEEN ADVISED OF THE POSSIBILITY
++ * OF SUCH DAMAGE.
++ *
++ * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
++ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
++ * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
++ * ON AN &quot;AS IS&quot; BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO
++ * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
++ * OR MODIFICATIONS.
++ *
++ * $Id: ppp-comp.h 195720 2001-06-11 11:44:34Z gc $
++ */
++
++/*
++ * ==FILEVERSION 980319==
++ *
++ * NOTE TO MAINTAINERS:
++ * If you modify this file at all, please set the above date.
++ * ppp-comp.h is shipped with a PPP distribution as well as with the kernel;
++ * if everyone increases the FILEVERSION number above, then scripts
++ * can do the right thing when deciding whether to install a new ppp-comp.h
++ * file. Don't change the format of that line otherwise, so the
++ * installation script can recognize it.
++ */
++
++#ifndef _NET_PPP_COMP_H
++#define _NET_PPP_COMP_H
++
++/*
++ * The following symbols control whether we include code for
++ * various compression methods.
++ */
++
++#ifndef DO_BSD_COMPRESS
++#define DO_BSD_COMPRESS 1 /* by default, include BSD-Compress */
++#endif
++#ifndef DO_DEFLATE
++#define DO_DEFLATE 1 /* by default, include Deflate */
++#endif
++#define DO_PREDICTOR_1 0
++#define DO_PREDICTOR_2 0
++
++/*
++ * Structure giving methods for compression/decompression.
++ */
++
++struct compressor {
++ int compress_proto; /* CCP compression protocol number */
++
++ /* Allocate space for a compressor (transmit side) */
++ void *(*comp_alloc) (unsigned char *options, int opt_len);
++
++ /* Free space used by a compressor */
++ void (*comp_free) (void *state);
++
++ /* Initialize a compressor */
++ int (*comp_init) (void *state, unsigned char *options,
++ int opt_len, int unit, int opthdr, int debug);
++
++ /* Reset a compressor */
++ void (*comp_reset) (void *state);
++
++ /* Compress a packet */
++ int (*compress) (void *state, unsigned char *rptr,
++ unsigned char *obuf, int isize, int osize);
++
++ /* Return compression statistics */
++ void (*comp_stat) (void *state, struct compstat *stats);
++
++ /* Allocate space for a decompressor (receive side) */
++ void *(*decomp_alloc) (unsigned char *options, int opt_len);
++
++ /* Free space used by a decompressor */
++ void (*decomp_free) (void *state);
++
++ /* Initialize a decompressor */
++ int (*decomp_init) (void *state, unsigned char *options,
++ int opt_len, int unit, int opthdr, int mru,
++ int debug);
++
++ /* Reset a decompressor */
++ void (*decomp_reset) (void *state);
++
++ /* Decompress a packet. */
++ int (*decompress) (void *state, unsigned char *ibuf, int isize,
++ unsigned char *obuf, int osize);
++
++ /* Update state for an incompressible packet received */
++ void (*incomp) (void *state, unsigned char *ibuf, int icnt);
++
++ /* Return decompression statistics */
++ void (*decomp_stat) (void *state, struct compstat *stats);
++};
++
++/*
++ * The return value from decompress routine is the length of the
++ * decompressed packet if successful, otherwise DECOMP_ERROR
++ * or DECOMP_FATALERROR if an error occurred.
++ *
++ * We need to make this distinction so that we can disable certain
++ * useful functionality, namely sending a CCP reset-request as a result
++ * of an error detected after decompression. This is to avoid infringing
++ * a patent held by Motorola.
++ * Don't you just lurve software patents.
++ */
++
++#define DECOMP_ERROR -1 /* error detected before decomp. */
++#define DECOMP_FATALERROR -2 /* error detected after decomp. */
++
++/*
++ * CCP codes.
++ */
++
++#define CCP_CONFREQ 1
++#define CCP_CONFACK 2
++#define CCP_TERMREQ 5
++#define CCP_TERMACK 6
++#define CCP_RESETREQ 14
++#define CCP_RESETACK 15
++
++/*
++ * Max # bytes for a CCP option
++ */
++
++#define CCP_MAX_OPTION_LENGTH 32
++
++/*
++ * Parts of a CCP packet.
++ */
++
++#define CCP_CODE(dp) ((dp)[0])
++#define CCP_ID(dp) ((dp)[1])
++#define CCP_LENGTH(dp) (((dp)[2] &lt;&lt; 8) + (dp)[3])
++#define CCP_HDRLEN 4
++
++#define CCP_OPT_CODE(dp) ((dp)[0])
++#define CCP_OPT_LENGTH(dp) ((dp)[1])
++#define CCP_OPT_MINLEN 2
++
++/*
++ * Definitions for BSD-Compress.
++ */
++
++#define CI_BSD_COMPRESS 21 /* config. option for BSD-Compress */
++#define CILEN_BSD_COMPRESS 3 /* length of config. option */
++
++/* Macros for handling the 3rd byte of the BSD-Compress config option. */
++#define BSD_NBITS(x) ((x) &amp; 0x1F) /* number of bits requested */
++#define BSD_VERSION(x) ((x) &gt;&gt; 5) /* version of option format */
++#define BSD_CURRENT_VERSION 1 /* current version number */
++#define BSD_MAKE_OPT(v, n) (((v) &lt;&lt; 5) | (n))
++
++#define BSD_MIN_BITS 9 /* smallest code size supported */
++#define BSD_MAX_BITS 15 /* largest code size supported */
++
++/*
++ * Definitions for Deflate.
++ */
++
++#define CI_DEFLATE 26 /* config option for Deflate */
++#define CI_DEFLATE_DRAFT 24 /* value used in original draft RFC */
++#define CILEN_DEFLATE 4 /* length of its config option */
++
++#define DEFLATE_MIN_SIZE 8
++#define DEFLATE_MAX_SIZE 15
++#define DEFLATE_METHOD_VAL 8
++#define DEFLATE_SIZE(x) (((x) &gt;&gt; 4) + DEFLATE_MIN_SIZE)
++#define DEFLATE_METHOD(x) ((x) &amp; 0x0F)
++#define DEFLATE_MAKE_OPT(w) ((((w) - DEFLATE_MIN_SIZE) &lt;&lt; 4) \
++ + DEFLATE_METHOD_VAL)
++#define DEFLATE_CHK_SEQUENCE 0
++
++/*
++ * Definitions for other, as yet unsupported, compression methods.
++ */
++
++#define CI_PREDICTOR_1 1 /* config option for Predictor-1 */
++#define CILEN_PREDICTOR_1 2 /* length of its config option */
++#define CI_PREDICTOR_2 2 /* config option for Predictor-2 */
++#define CILEN_PREDICTOR_2 2 /* length of its config option */
++
++#ifdef __KERNEL__
++extern int ppp_register_compressor(struct compressor *);
++extern void ppp_unregister_compressor(struct compressor *);
++#endif /* __KERNEL__ */
++
++#endif /* _NET_PPP_COMP_H */
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/include/linux/ppp-comp.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pppincludelinuxppp_defsh">Added: drakx/trunk/mdk-stage1/ppp/include/linux/ppp_defs.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/include/linux/ppp_defs.h (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/include/linux/ppp_defs.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,185 @@
++/* $Id: ppp_defs.h 195720 2001-06-11 11:44:34Z gc $ */
++
++/*
++ * ppp_defs.h - PPP definitions.
++ *
++ * Copyright (c) 1994 The Australian National University.
++ * All rights reserved.
++ *
++ * Permission to use, copy, modify, and distribute this software and its
++ * documentation is hereby granted, provided that the above copyright
++ * notice appears in all copies. This software is provided without any
++ * warranty, express or implied. The Australian National University
++ * makes no representations about the suitability of this software for
++ * any purpose.
++ *
++ * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY
++ * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
++ * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
++ * THE AUSTRALIAN NATIONAL UNIVERSITY HAVE BEEN ADVISED OF THE POSSIBILITY
++ * OF SUCH DAMAGE.
++ *
++ * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
++ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
++ * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
++ * ON AN &quot;AS IS&quot; BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO
++ * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
++ * OR MODIFICATIONS.
++ */
++
++/*
++ * ==FILEVERSION 20000114==
++ *
++ * NOTE TO MAINTAINERS:
++ * If you modify this file at all, please set the above date.
++ * ppp_defs.h is shipped with a PPP distribution as well as with the kernel;
++ * if everyone increases the FILEVERSION number above, then scripts
++ * can do the right thing when deciding whether to install a new ppp_defs.h
++ * file. Don't change the format of that line otherwise, so the
++ * installation script can recognize it.
++ */
++
++#ifndef _PPP_DEFS_H_
++#define _PPP_DEFS_H_
++
++/*
++ * The basic PPP frame.
++ */
++#define PPP_HDRLEN 4 /* octets for standard ppp header */
++#define PPP_FCSLEN 2 /* octets for FCS */
++#define PPP_MRU 1500 /* default MRU = max length of info field */
++
++#define PPP_ADDRESS(p) (((__u8 *)(p))[0])
++#define PPP_CONTROL(p) (((__u8 *)(p))[1])
++#define PPP_PROTOCOL(p) ((((__u8 *)(p))[2] &lt;&lt; 8) + ((__u8 *)(p))[3])
++
++/*
++ * Significant octet values.
++ */
++#define PPP_ALLSTATIONS 0xff /* All-Stations broadcast address */
++#define PPP_UI 0x03 /* Unnumbered Information */
++#define PPP_FLAG 0x7e /* Flag Sequence */
++#define PPP_ESCAPE 0x7d /* Asynchronous Control Escape */
++#define PPP_TRANS 0x20 /* Asynchronous transparency modifier */
++
++/*
++ * Protocol field values.
++ */
++#define PPP_IP 0x21 /* Internet Protocol */
++#define PPP_AT 0x29 /* AppleTalk Protocol */
++#define PPP_IPX 0x2b /* IPX protocol */
++#define PPP_VJC_COMP 0x2d /* VJ compressed TCP */
++#define PPP_VJC_UNCOMP 0x2f /* VJ uncompressed TCP */
++#define PPP_MP 0x3d /* Multilink protocol */
++#define PPP_IPV6 0x57 /* Internet Protocol Version 6 */
++#define PPP_COMPFRAG 0xfb /* fragment compressed below bundle */
++#define PPP_COMP 0xfd /* compressed packet */
++#define PPP_IPCP 0x8021 /* IP Control Protocol */
++#define PPP_ATCP 0x8029 /* AppleTalk Control Protocol */
++#define PPP_IPXCP 0x802b /* IPX Control Protocol */
++#define PPP_IPV6CP 0x8057 /* IPv6 Control Protocol */
++#define PPP_CCPFRAG 0x80fb /* CCP at link level (below MP bundle) */
++#define PPP_CCP 0x80fd /* Compression Control Protocol */
++#define PPP_LCP 0xc021 /* Link Control Protocol */
++#define PPP_PAP 0xc023 /* Password Authentication Protocol */
++#define PPP_LQR 0xc025 /* Link Quality Report protocol */
++#define PPP_CHAP 0xc223 /* Cryptographic Handshake Auth. Protocol */
++#define PPP_CBCP 0xc029 /* Callback Control Protocol */
++
++/*
++ * Values for FCS calculations.
++ */
++
++#define PPP_INITFCS 0xffff /* Initial FCS value */
++#define PPP_GOODFCS 0xf0b8 /* Good final FCS value */
++#define PPP_FCS(fcs, c) (((fcs) &gt;&gt; 8) ^ fcstab[((fcs) ^ (c)) &amp; 0xff])
++
++/*
++ * Extended asyncmap - allows any character to be escaped.
++ */
++
++typedef __u32 ext_accm[8];
++
++/*
++ * What to do with network protocol (NP) packets.
++ */
++enum NPmode {
++ NPMODE_PASS, /* pass the packet through */
++ NPMODE_DROP, /* silently drop the packet */
++ NPMODE_ERROR, /* return an error */
++ NPMODE_QUEUE /* save it up for later. */
++};
++
++/*
++ * Statistics for LQRP and pppstats
++ */
++struct pppstat {
++ __u32 ppp_discards; /* # frames discarded */
++
++ __u32 ppp_ibytes; /* bytes received */
++ __u32 ppp_ioctects; /* bytes received not in error */
++ __u32 ppp_ipackets; /* packets received */
++ __u32 ppp_ierrors; /* receive errors */
++ __u32 ppp_ilqrs; /* # LQR frames received */
++
++ __u32 ppp_obytes; /* raw bytes sent */
++ __u32 ppp_ooctects; /* frame bytes sent */
++ __u32 ppp_opackets; /* packets sent */
++ __u32 ppp_oerrors; /* transmit errors */
++ __u32 ppp_olqrs; /* # LQR frames sent */
++};
++
++struct vjstat {
++ __u32 vjs_packets; /* outbound packets */
++ __u32 vjs_compressed; /* outbound compressed packets */
++ __u32 vjs_searches; /* searches for connection state */
++ __u32 vjs_misses; /* times couldn't find conn. state */
++ __u32 vjs_uncompressedin; /* inbound uncompressed packets */
++ __u32 vjs_compressedin; /* inbound compressed packets */
++ __u32 vjs_errorin; /* inbound unknown type packets */
++ __u32 vjs_tossed; /* inbound packets tossed because of error */
++};
++
++struct compstat {
++ __u32 unc_bytes; /* total uncompressed bytes */
++ __u32 unc_packets; /* total uncompressed packets */
++ __u32 comp_bytes; /* compressed bytes */
++ __u32 comp_packets; /* compressed packets */
++ __u32 inc_bytes; /* incompressible bytes */
++ __u32 inc_packets; /* incompressible packets */
++
++ /* the compression ratio is defined as in_count / bytes_out */
++ __u32 in_count; /* Bytes received */
++ __u32 bytes_out; /* Bytes transmitted */
++
++ double ratio; /* not computed in kernel. */
++};
++
++struct ppp_stats {
++ struct pppstat p; /* basic PPP statistics */
++ struct vjstat vj; /* VJ header compression statistics */
++};
++
++struct ppp_comp_stats {
++ struct compstat c; /* packet compression statistics */
++ struct compstat d; /* packet decompression statistics */
++};
++
++/*
++ * The following structure records the time in seconds since
++ * the last NP packet was sent or received.
++ */
++struct ppp_idle {
++ time_t xmit_idle; /* time since last NP packet sent */
++ time_t recv_idle; /* time since last NP packet received */
++};
++
++#ifndef __P
++#ifdef __STDC__
++#define __P(x) x
++#else
++#define __P(x) ()
++#endif
++#endif
++
++#endif /* _PPP_DEFS_H_ */
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/include/linux/ppp_defs.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pppincludenetif_ppph">Added: drakx/trunk/mdk-stage1/ppp/include/net/if_ppp.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/include/net/if_ppp.h (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/include/net/if_ppp.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,133 @@
++/* $Id: if_ppp.h 195720 2001-06-11 11:44:34Z gc $ */
++
++/*
++ * if_ppp.h - Point-to-Point Protocol definitions.
++ *
++ * Copyright (c) 1989 Carnegie Mellon University.
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms are permitted
++ * provided that the above copyright notice and this paragraph are
++ * duplicated in all such forms and that any documentation,
++ * advertising materials, and other materials related to such
++ * distribution and use acknowledge that the software was developed
++ * by Carnegie Mellon University. The name of the
++ * University may not be used to endorse or promote products derived
++ * from this software without specific prior written permission.
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
++ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
++ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++ */
++
++#ifndef _IF_PPP_H_
++#define _IF_PPP_H_
++
++/*
++ * Bit definitions for flags.
++ */
++#define SC_COMP_PROT 0x00000001 /* protocol compression (output) */
++#define SC_COMP_AC 0x00000002 /* header compression (output) */
++#define SC_COMP_TCP 0x00000004 /* TCP (VJ) compression (output) */
++#define SC_NO_TCP_CCID 0x00000008 /* disable VJ connection-id comp. */
++#define SC_REJ_COMP_AC 0x00000010 /* reject adrs/ctrl comp. on input */
++#define SC_REJ_COMP_TCP 0x00000020 /* reject TCP (VJ) comp. on input */
++#define SC_CCP_OPEN 0x00000040 /* Look at CCP packets */
++#define SC_CCP_UP 0x00000080 /* May send/recv compressed packets */
++#define SC_DEBUG 0x00010000 /* enable debug messages */
++#define SC_LOG_INPKT 0x00020000 /* log contents of good pkts recvd */
++#define SC_LOG_OUTPKT 0x00040000 /* log contents of pkts sent */
++#define SC_LOG_RAWIN 0x00080000 /* log all chars received */
++#define SC_LOG_FLUSH 0x00100000 /* log all chars flushed */
++#define SC_RCV_B7_0 0x01000000 /* have rcvd char with bit 7 = 0 */
++#define SC_RCV_B7_1 0x02000000 /* have rcvd char with bit 7 = 1 */
++#define SC_RCV_EVNP 0x04000000 /* have rcvd char with even parity */
++#define SC_RCV_ODDP 0x08000000 /* have rcvd char with odd parity */
++#define SC_SYNC 0x00200000 /* use synchronous HDLC framing */
++#define SC_MASK 0x0fff00ff /* bits that user can change */
++
++/*
++ * State bits in sc_flags, not changeable by user.
++ */
++#define SC_TIMEOUT 0x00000400 /* timeout is currently pending */
++#define SC_VJ_RESET 0x00000800 /* need to reset VJ decomp */
++#define SC_COMP_RUN 0x00001000 /* compressor has been inited */
++#define SC_DECOMP_RUN 0x00002000 /* decompressor has been inited */
++#define SC_DC_ERROR 0x00004000 /* non-fatal decomp error detected */
++#define SC_DC_FERROR 0x00008000 /* fatal decomp error detected */
++#define SC_TBUSY 0x10000000 /* xmitter doesn't need a packet yet */
++#define SC_PKTLOST 0x20000000 /* have lost or dropped a packet */
++#define SC_FLUSH 0x40000000 /* flush input until next PPP_FLAG */
++#define SC_ESCAPED 0x80000000 /* saw a PPP_ESCAPE */
++
++/*
++ * Ioctl definitions.
++ */
++
++struct npioctl {
++ int protocol; /* PPP procotol, e.g. PPP_IP */
++ enum NPmode mode;
++};
++
++/* Structure describing a CCP configuration option, for PPPIOCSCOMPRESS */
++struct ppp_option_data {
++ u_char *ptr;
++ u_int length;
++ int transmit;
++};
++
++struct ifpppstatsreq {
++ char ifr_name[IFNAMSIZ];
++ struct ppp_stats stats;
++};
++
++struct ifpppcstatsreq {
++ char ifr_name[IFNAMSIZ];
++ struct ppp_comp_stats stats;
++};
++
++/*
++ * Ioctl definitions.
++ */
++
++#define PPPIOCGFLAGS _IOR('t', 90, int) /* get configuration flags */
++#define PPPIOCSFLAGS _IOW('t', 89, int) /* set configuration flags */
++#define PPPIOCGASYNCMAP _IOR('t', 88, int) /* get async map */
++#define PPPIOCSASYNCMAP _IOW('t', 87, int) /* set async map */
++#define PPPIOCGUNIT _IOR('t', 86, int) /* get ppp unit number */
++#define PPPIOCGRASYNCMAP _IOR('t', 85, int) /* get receive async map */
++#define PPPIOCSRASYNCMAP _IOW('t', 84, int) /* set receive async map */
++#define PPPIOCGMRU _IOR('t', 83, int) /* get max receive unit */
++#define PPPIOCSMRU _IOW('t', 82, int) /* set max receive unit */
++#define PPPIOCSMAXCID _IOW('t', 81, int) /* set VJ max slot ID */
++#define PPPIOCGXASYNCMAP _IOR('t', 80, ext_accm) /* get extended ACCM */
++#define PPPIOCSXASYNCMAP _IOW('t', 79, ext_accm) /* set extended ACCM */
++#define PPPIOCXFERUNIT _IO('t', 78) /* transfer PPP unit */
++#define PPPIOCSCOMPRESS _IOW('t', 77, struct ppp_option_data)
++#define PPPIOCGNPMODE _IOWR('t', 76, struct npioctl) /* get NP mode */
++#define PPPIOCSNPMODE _IOW('t', 75, struct npioctl) /* set NP mode */
++#define PPPIOCGIDLE _IOR('t', 74, struct ppp_idle) /* get idle time */
++#ifdef PPP_FILTER
++#define PPPIOCSPASS _IOW('t', 71, struct bpf_program) /* set pass filter */
++#define PPPIOCSACTIVE _IOW('t', 70, struct bpf_program) /* set active filt */
++#endif /* PPP_FILTER */
++
++/* PPPIOC[GS]MTU are alternatives to SIOC[GS]IFMTU, used under Ultrix */
++#define PPPIOCGMTU _IOR('t', 73, int) /* get interface MTU */
++#define PPPIOCSMTU _IOW('t', 72, int) /* set interface MTU */
++
++/*
++ * These two are interface ioctls so that pppstats can do them on
++ * a socket without having to open the serial device.
++ */
++#define SIOCGPPPSTATS _IOWR('i', 123, struct ifpppstatsreq)
++#define SIOCGPPPCSTATS _IOWR('i', 122, struct ifpppcstatsreq)
++
++#if !defined(ifr_mtu)
++#define ifr_mtu ifr_ifru.ifru_metric
++#endif
++
++#if (defined(_KERNEL) || defined(KERNEL)) &amp;&amp; !defined(NeXT)
++void pppattach __P((void));
++void pppintr __P((void));
++#endif
++#endif /* _IF_PPP_H_ */
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/include/net/if_ppp.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pppincludenetpppcomph">Added: drakx/trunk/mdk-stage1/ppp/include/net/ppp-comp.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/include/net/ppp-comp.h (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/include/net/ppp-comp.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,165 @@
++/*
++ * ppp-comp.h - Definitions for doing PPP packet compression.
++ *
++ * Copyright (c) 1994 The Australian National University.
++ * All rights reserved.
++ *
++ * Permission to use, copy, modify, and distribute this software and its
++ * documentation is hereby granted, provided that the above copyright
++ * notice appears in all copies. This software is provided without any
++ * warranty, express or implied. The Australian National University
++ * makes no representations about the suitability of this software for
++ * any purpose.
++ *
++ * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY
++ * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
++ * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
++ * THE AUSTRALIAN NATIONAL UNIVERSITY HAVE BEEN ADVISED OF THE POSSIBILITY
++ * OF SUCH DAMAGE.
++ *
++ * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
++ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
++ * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
++ * ON AN &quot;AS IS&quot; BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO
++ * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
++ * OR MODIFICATIONS.
++ *
++ * $Id: ppp-comp.h 195720 2001-06-11 11:44:34Z gc $
++ */
++
++#ifndef _NET_PPP_COMP_H
++#define _NET_PPP_COMP_H
++
++/*
++ * The following symbols control whether we include code for
++ * various compression methods.
++ */
++#ifndef DO_BSD_COMPRESS
++#define DO_BSD_COMPRESS 1 /* by default, include BSD-Compress */
++#endif
++#ifndef DO_DEFLATE
++#define DO_DEFLATE 1 /* by default, include Deflate */
++#endif
++#define DO_PREDICTOR_1 0
++#define DO_PREDICTOR_2 0
++
++/*
++ * Structure giving methods for compression/decompression.
++ */
++#ifdef PACKETPTR
++struct compressor {
++ int compress_proto; /* CCP compression protocol number */
++
++ /* Allocate space for a compressor (transmit side) */
++ void *(*comp_alloc) __P((u_char *options, int opt_len));
++ /* Free space used by a compressor */
++ void (*comp_free) __P((void *state));
++ /* Initialize a compressor */
++ int (*comp_init) __P((void *state, u_char *options, int opt_len,
++ int unit, int hdrlen, int debug));
++ /* Reset a compressor */
++ void (*comp_reset) __P((void *state));
++ /* Compress a packet */
++ int (*compress) __P((void *state, PACKETPTR *mret,
++ PACKETPTR mp, int orig_len, int max_len));
++ /* Return compression statistics */
++ void (*comp_stat) __P((void *state, struct compstat *stats));
++
++ /* Allocate space for a decompressor (receive side) */
++ void *(*decomp_alloc) __P((u_char *options, int opt_len));
++ /* Free space used by a decompressor */
++ void (*decomp_free) __P((void *state));
++ /* Initialize a decompressor */
++ int (*decomp_init) __P((void *state, u_char *options, int opt_len,
++ int unit, int hdrlen, int mru, int debug));
++ /* Reset a decompressor */
++ void (*decomp_reset) __P((void *state));
++ /* Decompress a packet. */
++ int (*decompress) __P((void *state, PACKETPTR mp,
++ PACKETPTR *dmpp));
++ /* Update state for an incompressible packet received */
++ void (*incomp) __P((void *state, PACKETPTR mp));
++ /* Return decompression statistics */
++ void (*decomp_stat) __P((void *state, struct compstat *stats));
++};
++#endif /* PACKETPTR */
++
++/*
++ * Return values for decompress routine.
++ * We need to make these distinctions so that we can disable certain
++ * useful functionality, namely sending a CCP reset-request as a result
++ * of an error detected after decompression. This is to avoid infringing
++ * a patent held by Motorola.
++ * Don't you just lurve software patents.
++ */
++#define DECOMP_OK 0 /* everything went OK */
++#define DECOMP_ERROR 1 /* error detected before decomp. */
++#define DECOMP_FATALERROR 2 /* error detected after decomp. */
++
++/*
++ * CCP codes.
++ */
++#define CCP_CONFREQ 1
++#define CCP_CONFACK 2
++#define CCP_TERMREQ 5
++#define CCP_TERMACK 6
++#define CCP_RESETREQ 14
++#define CCP_RESETACK 15
++
++/*
++ * Max # bytes for a CCP option
++ */
++#define CCP_MAX_OPTION_LENGTH 32
++
++/*
++ * Parts of a CCP packet.
++ */
++#define CCP_CODE(dp) ((dp)[0])
++#define CCP_ID(dp) ((dp)[1])
++#define CCP_LENGTH(dp) (((dp)[2] &lt;&lt; 8) + (dp)[3])
++#define CCP_HDRLEN 4
++
++#define CCP_OPT_CODE(dp) ((dp)[0])
++#define CCP_OPT_LENGTH(dp) ((dp)[1])
++#define CCP_OPT_MINLEN 2
++
++/*
++ * Definitions for BSD-Compress.
++ */
++#define CI_BSD_COMPRESS 21 /* config. option for BSD-Compress */
++#define CILEN_BSD_COMPRESS 3 /* length of config. option */
++
++/* Macros for handling the 3rd byte of the BSD-Compress config option. */
++#define BSD_NBITS(x) ((x) &amp; 0x1F) /* number of bits requested */
++#define BSD_VERSION(x) ((x) &gt;&gt; 5) /* version of option format */
++#define BSD_CURRENT_VERSION 1 /* current version number */
++#define BSD_MAKE_OPT(v, n) (((v) &lt;&lt; 5) | (n))
++
++#define BSD_MIN_BITS 9 /* smallest code size supported */
++#define BSD_MAX_BITS 15 /* largest code size supported */
++
++/*
++ * Definitions for Deflate.
++ */
++#define CI_DEFLATE 26 /* config option for Deflate */
++#define CI_DEFLATE_DRAFT 24 /* value used in original draft RFC */
++#define CILEN_DEFLATE 4 /* length of its config option */
++
++#define DEFLATE_MIN_SIZE 8
++#define DEFLATE_MAX_SIZE 15
++#define DEFLATE_METHOD_VAL 8
++#define DEFLATE_SIZE(x) (((x) &gt;&gt; 4) + DEFLATE_MIN_SIZE)
++#define DEFLATE_METHOD(x) ((x) &amp; 0x0F)
++#define DEFLATE_MAKE_OPT(w) ((((w) - DEFLATE_MIN_SIZE) &lt;&lt; 4) \
++ + DEFLATE_METHOD_VAL)
++#define DEFLATE_CHK_SEQUENCE 0
++
++/*
++ * Definitions for other, as yet unsupported, compression methods.
++ */
++#define CI_PREDICTOR_1 1 /* config option for Predictor-1 */
++#define CILEN_PREDICTOR_1 2 /* length of its config option */
++#define CI_PREDICTOR_2 2 /* config option for Predictor-2 */
++#define CILEN_PREDICTOR_2 2 /* length of its config option */
++
++#endif /* _NET_PPP_COMP_H */
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/include/net/ppp-comp.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pppincludenetppp_defsh">Added: drakx/trunk/mdk-stage1/ppp/include/net/ppp_defs.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/include/net/ppp_defs.h (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/include/net/ppp_defs.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,184 @@
++/* $Id: ppp_defs.h 203043 2003-06-04 18:31:57Z gbeauchesne $ */
++
++/*
++ * ppp_defs.h - PPP definitions.
++ *
++ * Copyright (c) 1994 The Australian National University.
++ * All rights reserved.
++ *
++ * Permission to use, copy, modify, and distribute this software and its
++ * documentation is hereby granted, provided that the above copyright
++ * notice appears in all copies. This software is provided without any
++ * warranty, express or implied. The Australian National University
++ * makes no representations about the suitability of this software for
++ * any purpose.
++ *
++ * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY
++ * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
++ * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
++ * THE AUSTRALIAN NATIONAL UNIVERSITY HAVE BEEN ADVISED OF THE POSSIBILITY
++ * OF SUCH DAMAGE.
++ *
++ * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
++ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
++ * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
++ * ON AN &quot;AS IS&quot; BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO
++ * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
++ * OR MODIFICATIONS.
++ */
++
++#ifndef _PPP_DEFS_H_
++#define _PPP_DEFS_H_
++
++/*
++ * The basic PPP frame.
++ */
++#define PPP_HDRLEN 4 /* octets for standard ppp header */
++#define PPP_FCSLEN 2 /* octets for FCS */
++
++/*
++ * Packet sizes
++ *
++ * Note - lcp shouldn't be allowed to negotiate stuff outside these
++ * limits. See lcp.h in the pppd directory.
++ * (XXX - these constants should simply be shared by lcp.c instead
++ * of living in lcp.h)
++ */
++#define PPP_MTU 1500 /* Default MTU (size of Info field) */
++#define PPP_MAXMTU 65535 - (PPP_HDRLEN + PPP_FCSLEN)
++#define PPP_MINMTU 64
++#define PPP_MRU 1500 /* default MRU = max length of info field */
++#define PPP_MAXMRU 65000 /* Largest MRU we allow */
++#define PPP_MINMRU 128
++
++#define PPP_ADDRESS(p) (((u_char *)(p))[0])
++#define PPP_CONTROL(p) (((u_char *)(p))[1])
++#define PPP_PROTOCOL(p) ((((u_char *)(p))[2] &lt;&lt; 8) + ((u_char *)(p))[3])
++
++/*
++ * Significant octet values.
++ */
++#define PPP_ALLSTATIONS 0xff /* All-Stations broadcast address */
++#define PPP_UI 0x03 /* Unnumbered Information */
++#define PPP_FLAG 0x7e /* Flag Sequence */
++#define PPP_ESCAPE 0x7d /* Asynchronous Control Escape */
++#define PPP_TRANS 0x20 /* Asynchronous transparency modifier */
++
++/*
++ * Protocol field values.
++ */
++#define PPP_IP 0x21 /* Internet Protocol */
++#define PPP_AT 0x29 /* AppleTalk Protocol */
++#define PPP_IPX 0x2b /* IPX protocol */
++#define PPP_VJC_COMP 0x2d /* VJ compressed TCP */
++#define PPP_VJC_UNCOMP 0x2f /* VJ uncompressed TCP */
++#define PPP_IPV6 0x57 /* Internet Protocol Version 6 */
++#define PPP_COMP 0xfd /* compressed packet */
++#define PPP_IPCP 0x8021 /* IP Control Protocol */
++#define PPP_ATCP 0x8029 /* AppleTalk Control Protocol */
++#define PPP_IPXCP 0x802b /* IPX Control Protocol */
++#define PPP_IPV6CP 0x8057 /* IPv6 Control Protocol */
++#define PPP_CCP 0x80fd /* Compression Control Protocol */
++#define PPP_LCP 0xc021 /* Link Control Protocol */
++#define PPP_PAP 0xc023 /* Password Authentication Protocol */
++#define PPP_LQR 0xc025 /* Link Quality Report protocol */
++#define PPP_CHAP 0xc223 /* Cryptographic Handshake Auth. Protocol */
++#define PPP_CBCP 0xc029 /* Callback Control Protocol */
++
++/*
++ * Values for FCS calculations.
++ */
++#define PPP_INITFCS 0xffff /* Initial FCS value */
++#define PPP_GOODFCS 0xf0b8 /* Good final FCS value */
++#define PPP_FCS(fcs, c) (((fcs) &gt;&gt; 8) ^ fcstab[((fcs) ^ (c)) &amp; 0xff])
++
++/*
++ * A 32-bit unsigned integral type.
++ */
++
++#if !defined(__BIT_TYPES_DEFINED__) &amp;&amp; !defined(_BITYPES) \
++ &amp;&amp; !defined(__FreeBSD__) &amp;&amp; (NS_TARGET &lt; 40) &amp;&amp; !defined(__dietlibc__)
++#ifdef UINT32_T
++typedef UINT32_T u_int32_t;
++#else
++typedef unsigned int u_int32_t;
++typedef unsigned short u_int16_t;
++#endif
++#endif
++
++/*
++ * Extended asyncmap - allows any character to be escaped.
++ */
++typedef u_int32_t ext_accm[8];
++
++/*
++ * What to do with network protocol (NP) packets.
++ */
++enum NPmode {
++ NPMODE_PASS, /* pass the packet through */
++ NPMODE_DROP, /* silently drop the packet */
++ NPMODE_ERROR, /* return an error */
++ NPMODE_QUEUE /* save it up for later. */
++};
++
++/*
++ * Statistics.
++ */
++struct pppstat {
++ unsigned int ppp_ibytes; /* bytes received */
++ unsigned int ppp_ipackets; /* packets received */
++ unsigned int ppp_ierrors; /* receive errors */
++ unsigned int ppp_obytes; /* bytes sent */
++ unsigned int ppp_opackets; /* packets sent */
++ unsigned int ppp_oerrors; /* transmit errors */
++};
++
++struct vjstat {
++ unsigned int vjs_packets; /* outbound packets */
++ unsigned int vjs_compressed; /* outbound compressed packets */
++ unsigned int vjs_searches; /* searches for connection state */
++ unsigned int vjs_misses; /* times couldn't find conn. state */
++ unsigned int vjs_uncompressedin; /* inbound uncompressed packets */
++ unsigned int vjs_compressedin; /* inbound compressed packets */
++ unsigned int vjs_errorin; /* inbound unknown type packets */
++ unsigned int vjs_tossed; /* inbound packets tossed because of error */
++};
++
++struct ppp_stats {
++ struct pppstat p; /* basic PPP statistics */
++ struct vjstat vj; /* VJ header compression statistics */
++};
++
++struct compstat {
++ unsigned int unc_bytes; /* total uncompressed bytes */
++ unsigned int unc_packets; /* total uncompressed packets */
++ unsigned int comp_bytes; /* compressed bytes */
++ unsigned int comp_packets; /* compressed packets */
++ unsigned int inc_bytes; /* incompressible bytes */
++ unsigned int inc_packets; /* incompressible packets */
++ unsigned int ratio; /* recent compression ratio &lt;&lt; 8 */
++};
++
++struct ppp_comp_stats {
++ struct compstat c; /* packet compression statistics */
++ struct compstat d; /* packet decompression statistics */
++};
++
++/*
++ * The following structure records the time in seconds since
++ * the last NP packet was sent or received.
++ */
++struct ppp_idle {
++ time_t xmit_idle; /* time since last NP packet sent */
++ time_t recv_idle; /* time since last NP packet received */
++};
++
++#ifndef __P
++#ifdef __STDC__
++#define __P(x) x
++#else
++#define __P(x) ()
++#endif
++#endif
++
++#endif /* _PPP_DEFS_H_ */
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/include/net/ppp_defs.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pppincludenetpppioh">Added: drakx/trunk/mdk-stage1/ppp/include/net/pppio.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/include/net/pppio.h (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/include/net/pppio.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,99 @@
++/*
++ * pppio.h - ioctl and other misc. definitions for STREAMS modules.
++ *
++ * Copyright (c) 1994 The Australian National University.
++ * All rights reserved.
++ *
++ * Permission to use, copy, modify, and distribute this software and its
++ * documentation is hereby granted, provided that the above copyright
++ * notice appears in all copies. This software is provided without any
++ * warranty, express or implied. The Australian National University
++ * makes no representations about the suitability of this software for
++ * any purpose.
++ *
++ * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY
++ * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
++ * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
++ * THE AUSTRALIAN NATIONAL UNIVERSITY HAVE BEEN ADVISED OF THE POSSIBILITY
++ * OF SUCH DAMAGE.
++ *
++ * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
++ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
++ * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
++ * ON AN &quot;AS IS&quot; BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO
++ * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
++ * OR MODIFICATIONS.
++ *
++ * $Id: pppio.h 195720 2001-06-11 11:44:34Z gc $
++ */
++
++#define _PPPIO(n) (('p' &lt;&lt; 8) + (n))
++
++#define PPPIO_NEWPPA _PPPIO(130) /* allocate a new PPP unit */
++#define PPPIO_GETSTAT _PPPIO(131) /* get PPP statistics */
++#define PPPIO_GETCSTAT _PPPIO(132) /* get PPP compression stats */
++#define PPPIO_MTU _PPPIO(133) /* set max transmission unit */
++#define PPPIO_MRU _PPPIO(134) /* set max receive unit */
++#define PPPIO_CFLAGS _PPPIO(135) /* set/clear/get compression flags */
++#define PPPIO_XCOMP _PPPIO(136) /* alloc transmit compressor */
++#define PPPIO_RCOMP _PPPIO(137) /* alloc receive decompressor */
++#define PPPIO_XACCM _PPPIO(138) /* set transmit asyncmap */
++#define PPPIO_RACCM _PPPIO(139) /* set receive asyncmap */
++#define PPPIO_VJINIT _PPPIO(140) /* initialize VJ comp/decomp */
++#define PPPIO_ATTACH _PPPIO(141) /* attach to a ppa (without putmsg) */
++#define PPPIO_LASTMOD _PPPIO(142) /* mark last ppp module */
++#define PPPIO_GCLEAN _PPPIO(143) /* get 8-bit-clean flags */
++#define PPPIO_DEBUG _PPPIO(144) /* request debug information */
++#define PPPIO_BIND _PPPIO(145) /* bind to SAP */
++#define PPPIO_NPMODE _PPPIO(146) /* set mode for handling data pkts */
++#define PPPIO_GIDLE _PPPIO(147) /* get time since last data pkt */
++#define PPPIO_PASSFILT _PPPIO(148) /* set filter for packets to pass */
++#define PPPIO_ACTIVEFILT _PPPIO(149) /* set filter for &quot;link active&quot; pkts */
++
++/*
++ * Values for PPPIO_CFLAGS
++ */
++#define COMP_AC 0x1 /* compress address/control */
++#define DECOMP_AC 0x2 /* decompress address/control */
++#define COMP_PROT 0x4 /* compress PPP protocol */
++#define DECOMP_PROT 0x8 /* decompress PPP protocol */
++
++#define COMP_VJC 0x10 /* compress TCP/IP headers */
++#define COMP_VJCCID 0x20 /* compress connection ID as well */
++#define DECOMP_VJC 0x40 /* decompress TCP/IP headers */
++#define DECOMP_VJCCID 0x80 /* accept compressed connection ID */
++
++#define CCP_ISOPEN 0x100 /* look at CCP packets */
++#define CCP_ISUP 0x200 /* do packet comp/decomp */
++#define CCP_ERROR 0x400 /* (status) error in packet decomp */
++#define CCP_FATALERROR 0x800 /* (status) fatal error ditto */
++#define CCP_COMP_RUN 0x1000 /* (status) seen CCP ack sent */
++#define CCP_DECOMP_RUN 0x2000 /* (status) seen CCP ack rcvd */
++
++/*
++ * Values for 8-bit-clean flags.
++ */
++#define RCV_B7_0 1 /* have rcvd char with bit 7 = 0 */
++#define RCV_B7_1 2 /* have rcvd char with bit 7 = 1 */
++#define RCV_EVNP 4 /* have rcvd char with even parity */
++#define RCV_ODDP 8 /* have rcvd char with odd parity */
++
++/*
++ * Values for the first byte of M_CTL messages passed between
++ * PPP modules.
++ */
++#define PPPCTL_OERROR 0xe0 /* output error [up] */
++#define PPPCTL_IERROR 0xe1 /* input error (e.g. FCS) [up] */
++#define PPPCTL_MTU 0xe2 /* set MTU [down] */
++#define PPPCTL_MRU 0xe3 /* set MRU [down] */
++#define PPPCTL_UNIT 0xe4 /* note PPP unit number [down] */
++
++/*
++ * Values for the integer argument to PPPIO_DEBUG.
++ */
++#define PPPDBG_DUMP 0x10000 /* print out debug info now */
++#define PPPDBG_LOG 0x100 /* log various things */
++#define PPPDBG_DRIVER 0 /* identifies ppp driver as target */
++#define PPPDBG_IF 1 /* identifies ppp network i/f target */
++#define PPPDBG_COMP 2 /* identifies ppp compression target */
++#define PPPDBG_AHDLC 3 /* identifies ppp async hdlc target */
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/include/net/pppio.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pppincludenetslcompressh">Added: drakx/trunk/mdk-stage1/ppp/include/net/slcompress.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/include/net/slcompress.h (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/include/net/slcompress.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,148 @@
++/*
++ * Definitions for tcp compression routines.
++ *
++ * $Id: slcompress.h 195720 2001-06-11 11:44:34Z gc $
++ *
++ * Copyright (c) 1989 Regents of the University of California.
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms are permitted
++ * provided that the above copyright notice and this paragraph are
++ * duplicated in all such forms and that any documentation,
++ * advertising materials, and other materials related to such
++ * distribution and use acknowledge that the software was developed
++ * by the University of California, Berkeley. The name of the
++ * University may not be used to endorse or promote products derived
++ * from this software without specific prior written permission.
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
++ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
++ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++ *
++ * Van Jacobson (van@helios.ee.lbl.gov), Dec 31, 1989:
++ * - Initial distribution.
++ */
++
++#ifndef _SLCOMPRESS_H_
++#define _SLCOMPRESS_H_
++
++#define MAX_STATES 16 /* must be &gt; 2 and &lt; 256 */
++#define MAX_HDR MLEN /* XXX 4bsd-ism: should really be 128 */
++
++/*
++ * Compressed packet format:
++ *
++ * The first octet contains the packet type (top 3 bits), TCP
++ * 'push' bit, and flags that indicate which of the 4 TCP sequence
++ * numbers have changed (bottom 5 bits). The next octet is a
++ * conversation number that associates a saved IP/TCP header with
++ * the compressed packet. The next two octets are the TCP checksum
++ * from the original datagram. The next 0 to 15 octets are
++ * sequence number changes, one change per bit set in the header
++ * (there may be no changes and there are two special cases where
++ * the receiver implicitly knows what changed -- see below).
++ *
++ * There are 5 numbers which can change (they are always inserted
++ * in the following order): TCP urgent pointer, window,
++ * acknowlegement, sequence number and IP ID. (The urgent pointer
++ * is different from the others in that its value is sent, not the
++ * change in value.) Since typical use of SLIP links is biased
++ * toward small packets (see comments on MTU/MSS below), changes
++ * use a variable length coding with one octet for numbers in the
++ * range 1 - 255 and 3 octets (0, MSB, LSB) for numbers in the
++ * range 256 - 65535 or 0. (If the change in sequence number or
++ * ack is more than 65535, an uncompressed packet is sent.)
++ */
++
++/*
++ * Packet types (must not conflict with IP protocol version)
++ *
++ * The top nibble of the first octet is the packet type. There are
++ * three possible types: IP (not proto TCP or tcp with one of the
++ * control flags set); uncompressed TCP (a normal IP/TCP packet but
++ * with the 8-bit protocol field replaced by an 8-bit connection id --
++ * this type of packet syncs the sender &amp; receiver); and compressed
++ * TCP (described above).
++ *
++ * LSB of 4-bit field is TCP &quot;PUSH&quot; bit (a worthless anachronism) and
++ * is logically part of the 4-bit &quot;changes&quot; field that follows. Top
++ * three bits are actual packet type. For backward compatibility
++ * and in the interest of conserving bits, numbers are chosen so the
++ * IP protocol version number (4) which normally appears in this nibble
++ * means &quot;IP packet&quot;.
++ */
++
++/* packet types */
++#define TYPE_IP 0x40
++#define TYPE_UNCOMPRESSED_TCP 0x70
++#define TYPE_COMPRESSED_TCP 0x80
++#define TYPE_ERROR 0x00
++
++/* Bits in first octet of compressed packet */
++#define NEW_C 0x40 /* flag bits for what changed in a packet */
++#define NEW_I 0x20
++#define NEW_S 0x08
++#define NEW_A 0x04
++#define NEW_W 0x02
++#define NEW_U 0x01
++
++/* reserved, special-case values of above */
++#define SPECIAL_I (NEW_S|NEW_W|NEW_U) /* echoed interactive traffic */
++#define SPECIAL_D (NEW_S|NEW_A|NEW_W|NEW_U) /* unidirectional data */
++#define SPECIALS_MASK (NEW_S|NEW_A|NEW_W|NEW_U)
++
++#define TCP_PUSH_BIT 0x10
++
++
++/*
++ * &quot;state&quot; data for each active tcp conversation on the wire. This is
++ * basically a copy of the entire IP/TCP header from the last packet
++ * we saw from the conversation together with a small identifier
++ * the transmit &amp; receive ends of the line use to locate saved header.
++ */
++struct cstate {
++ struct cstate *cs_next; /* next most recently used cstate (xmit only) */
++ u_short cs_hlen; /* size of hdr (receive only) */
++ u_char cs_id; /* connection # associated with this state */
++ u_char cs_filler;
++ union {
++ char csu_hdr[MAX_HDR];
++ struct ip csu_ip; /* ip/tcp hdr from most recent packet */
++ } slcs_u;
++};
++#define cs_ip slcs_u.csu_ip
++#define cs_hdr slcs_u.csu_hdr
++
++/*
++ * all the state data for one serial line (we need one of these
++ * per line).
++ */
++struct slcompress {
++ struct cstate *last_cs; /* most recently used tstate */
++ u_char last_recv; /* last rcvd conn. id */
++ u_char last_xmit; /* last sent conn. id */
++ u_short flags;
++#ifndef SL_NO_STATS
++ int sls_packets; /* outbound packets */
++ int sls_compressed; /* outbound compressed packets */
++ int sls_searches; /* searches for connection state */
++ int sls_misses; /* times couldn't find conn. state */
++ int sls_uncompressedin; /* inbound uncompressed packets */
++ int sls_compressedin; /* inbound compressed packets */
++ int sls_errorin; /* inbound unknown type packets */
++ int sls_tossed; /* inbound packets tossed because of error */
++#endif
++ struct cstate tstate[MAX_STATES]; /* xmit connection states */
++ struct cstate rstate[MAX_STATES]; /* receive connection states */
++};
++/* flag values */
++#define SLF_TOSS 1 /* tossing rcvd frames because of input err */
++
++void sl_compress_init __P((struct slcompress *));
++void sl_compress_setup __P((struct slcompress *, int));
++u_int sl_compress_tcp __P((struct mbuf *,
++ struct ip *, struct slcompress *, int));
++int sl_uncompress_tcp __P((u_char **, int, u_int, struct slcompress *));
++int sl_uncompress_tcp_core __P((u_char *, int, int, u_int,
++ struct slcompress *, u_char **, u_int *));
++
++#endif /* _SLCOMPRESS_H_ */
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/include/net/slcompress.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pppincludenetvjcompressh">Added: drakx/trunk/mdk-stage1/ppp/include/net/vjcompress.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/include/net/vjcompress.h (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/include/net/vjcompress.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,144 @@
++/*
++ * Definitions for tcp compression routines.
++ *
++ * $Id: vjcompress.h 195720 2001-06-11 11:44:34Z gc $
++ *
++ * Copyright (c) 1989 Regents of the University of California.
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms are permitted
++ * provided that the above copyright notice and this paragraph are
++ * duplicated in all such forms and that any documentation,
++ * advertising materials, and other materials related to such
++ * distribution and use acknowledge that the software was developed
++ * by the University of California, Berkeley. The name of the
++ * University may not be used to endorse or promote products derived
++ * from this software without specific prior written permission.
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
++ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
++ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++ *
++ * Van Jacobson (van@helios.ee.lbl.gov), Dec 31, 1989:
++ * - Initial distribution.
++ */
++
++#ifndef _VJCOMPRESS_H_
++#define _VJCOMPRESS_H_
++
++#define MAX_STATES 16 /* must be &gt; 2 and &lt; 256 */
++#define MAX_HDR 128
++
++/*
++ * Compressed packet format:
++ *
++ * The first octet contains the packet type (top 3 bits), TCP
++ * 'push' bit, and flags that indicate which of the 4 TCP sequence
++ * numbers have changed (bottom 5 bits). The next octet is a
++ * conversation number that associates a saved IP/TCP header with
++ * the compressed packet. The next two octets are the TCP checksum
++ * from the original datagram. The next 0 to 15 octets are
++ * sequence number changes, one change per bit set in the header
++ * (there may be no changes and there are two special cases where
++ * the receiver implicitly knows what changed -- see below).
++ *
++ * There are 5 numbers which can change (they are always inserted
++ * in the following order): TCP urgent pointer, window,
++ * acknowlegement, sequence number and IP ID. (The urgent pointer
++ * is different from the others in that its value is sent, not the
++ * change in value.) Since typical use of SLIP links is biased
++ * toward small packets (see comments on MTU/MSS below), changes
++ * use a variable length coding with one octet for numbers in the
++ * range 1 - 255 and 3 octets (0, MSB, LSB) for numbers in the
++ * range 256 - 65535 or 0. (If the change in sequence number or
++ * ack is more than 65535, an uncompressed packet is sent.)
++ */
++
++/*
++ * Packet types (must not conflict with IP protocol version)
++ *
++ * The top nibble of the first octet is the packet type. There are
++ * three possible types: IP (not proto TCP or tcp with one of the
++ * control flags set); uncompressed TCP (a normal IP/TCP packet but
++ * with the 8-bit protocol field replaced by an 8-bit connection id --
++ * this type of packet syncs the sender &amp; receiver); and compressed
++ * TCP (described above).
++ *
++ * LSB of 4-bit field is TCP &quot;PUSH&quot; bit (a worthless anachronism) and
++ * is logically part of the 4-bit &quot;changes&quot; field that follows. Top
++ * three bits are actual packet type. For backward compatibility
++ * and in the interest of conserving bits, numbers are chosen so the
++ * IP protocol version number (4) which normally appears in this nibble
++ * means &quot;IP packet&quot;.
++ */
++
++/* packet types */
++#define TYPE_IP 0x40
++#define TYPE_UNCOMPRESSED_TCP 0x70
++#define TYPE_COMPRESSED_TCP 0x80
++#define TYPE_ERROR 0x00
++
++/* Bits in first octet of compressed packet */
++#define NEW_C 0x40 /* flag bits for what changed in a packet */
++#define NEW_I 0x20
++#define NEW_S 0x08
++#define NEW_A 0x04
++#define NEW_W 0x02
++#define NEW_U 0x01
++
++/* reserved, special-case values of above */
++#define SPECIAL_I (NEW_S|NEW_W|NEW_U) /* echoed interactive traffic */
++#define SPECIAL_D (NEW_S|NEW_A|NEW_W|NEW_U) /* unidirectional data */
++#define SPECIALS_MASK (NEW_S|NEW_A|NEW_W|NEW_U)
++
++#define TCP_PUSH_BIT 0x10
++
++
++/*
++ * &quot;state&quot; data for each active tcp conversation on the wire. This is
++ * basically a copy of the entire IP/TCP header from the last packet
++ * we saw from the conversation together with a small identifier
++ * the transmit &amp; receive ends of the line use to locate saved header.
++ */
++struct cstate {
++ struct cstate *cs_next; /* next most recently used state (xmit only) */
++ u_short cs_hlen; /* size of hdr (receive only) */
++ u_char cs_id; /* connection # associated with this state */
++ u_char cs_filler;
++ union {
++ char csu_hdr[MAX_HDR];
++ struct ip csu_ip; /* ip/tcp hdr from most recent packet */
++ } vjcs_u;
++};
++#define cs_ip vjcs_u.csu_ip
++#define cs_hdr vjcs_u.csu_hdr
++
++/*
++ * all the state data for one serial line (we need one of these per line).
++ */
++struct vjcompress {
++ struct cstate *last_cs; /* most recently used tstate */
++ u_char last_recv; /* last rcvd conn. id */
++ u_char last_xmit; /* last sent conn. id */
++ u_short flags;
++#ifndef VJ_NO_STATS
++ struct vjstat stats;
++#endif
++ struct cstate tstate[MAX_STATES]; /* xmit connection states */
++ struct cstate rstate[MAX_STATES]; /* receive connection states */
++};
++
++/* flag values */
++#define VJF_TOSS 1 /* tossing rcvd frames because of input err */
++
++extern void vj_compress_init __P((struct vjcompress *comp, int max_state));
++extern u_int vj_compress_tcp __P((struct ip *ip, u_int mlen,
++ struct vjcompress *comp, int compress_cid_flag,
++ u_char **vjhdrp));
++extern void vj_uncompress_err __P((struct vjcompress *comp));
++extern int vj_uncompress_uncomp __P((u_char *buf, int buflen,
++ struct vjcompress *comp));
++extern int vj_uncompress_tcp __P((u_char *buf, int buflen, int total_len,
++ struct vjcompress *comp, u_char **hdrp,
++ u_int *hlenp));
++
++#endif /* _VJCOMPRESS_H_ */
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/include/net/vjcompress.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pppincludepcapinth">Added: drakx/trunk/mdk-stage1/ppp/include/pcap-int.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/include/pcap-int.h (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/include/pcap-int.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,117 @@
++/*
++ * Copyright (c) 1994, 1995, 1996
++ * The Regents of the University of California. All rights reserved.
++ *
++ * Redistribution and use in source and binary forms, with or without
++ * modification, are permitted provided that the following conditions
++ * are met:
++ * 1. Redistributions of source code must retain the above copyright
++ * notice, this list of conditions and the following disclaimer.
++ * 2. Redistributions in binary form must reproduce the above copyright
++ * notice, this list of conditions and the following disclaimer in the
++ * documentation and/or other materials provided with the distribution.
++ * 3. All advertising materials mentioning features or use of this software
++ * must display the following acknowledgement:
++ * This product includes software developed by the Computer Systems
++ * Engineering Group at Lawrence Berkeley Laboratory.
++ * 4. Neither the name of the University nor of the Laboratory may be used
++ * to endorse or promote products derived from this software without
++ * specific prior written permission.
++ *
++ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++ * SUCH DAMAGE.
++ *
++ * @(#) $Header$ (LBL)
++ */
++
++#ifndef pcap_int_h
++#define pcap_int_h
++
++#include &lt;pcap.h&gt;
++
++/*
++ * Savefile
++ */
++struct pcap_sf {
++ FILE *rfile;
++ int swapped;
++ int version_major;
++ int version_minor;
++ u_char *base;
++};
++
++struct pcap_md {
++ struct pcap_stat stat;
++ /*XXX*/
++ int use_bpf;
++ u_long TotPkts; /* can't oflow for 79 hrs on ether */
++ u_long TotAccepted; /* count accepted by filter */
++ u_long TotDrops; /* count of dropped packets */
++ long TotMissed; /* missed by i/f during this run */
++ long OrigMissed; /* missed by i/f before this run */
++#ifdef linux
++ int pad;
++ int skip;
++ char *device;
++#endif
++};
++
++struct pcap {
++ int fd;
++ int snapshot;
++ int linktype;
++ int tzoff; /* timezone offset */
++ int offset; /* offset for proper alignment */
++
++ struct pcap_sf sf;
++ struct pcap_md md;
++
++ /*
++ * Read buffer.
++ */
++ int bufsize;
++ u_char *buffer;
++ u_char *bp;
++ int cc;
++
++ /*
++ * Place holder for pcap_next().
++ */
++ u_char *pkt;
++
++
++ /*
++ * Placeholder for filter code if bpf not in kernel.
++ */
++ struct bpf_program fcode;
++
++ char errbuf[PCAP_ERRBUF_SIZE];
++};
++
++int yylex(void);
++
++#ifndef min
++#define min(a, b) ((a) &gt; (b) ? (b) : (a))
++#endif
++
++/* XXX should these be in pcap.h? */
++int pcap_offline_read(pcap_t *, int, pcap_handler, u_char *);
++int pcap_read(pcap_t *, int cnt, pcap_handler, u_char *);
++
++/* Ultrix pads to make everything line up on a nice boundary */
++#if defined(ultrix) || defined(__alpha)
++#define PCAP_FDDIPAD 3
++#endif
++
++/* XXX */
++extern int pcap_fddipad;
++#endif
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/include/pcap-int.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1ppplinuxMakefiletop">Added: drakx/trunk/mdk-stage1/ppp/linux/Makefile.top</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/linux/Makefile.top (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/linux/Makefile.top 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,55 @@
++# PPP top-level Makefile for Linux.
++
++
++BINDIR = $(DESTDIR)/usr/sbin
++MANDIR = $(DESTDIR)/usr/man
++ETCDIR = $(DESTDIR)/etc/ppp
++
++# uid 0 = root
++INSTALL= install
++
++all:
++ cd chat; $(MAKE) $(MFLAGS) all
++ cd pppd; $(MAKE) $(MFLAGS) all
++ cd pppstats; $(MAKE) $(MFLAGS) all
++ cd pppdump; $(MAKE) $(MFLAGS) all
++
++install: $(BINDIR) $(MANDIR)/man8 install-progs install-etcppp
++
++install-progs:
++ cd chat; $(MAKE) BINDIR=$(BINDIR) MANDIR=$(MANDIR) $(MFLAGS) install
++ cd pppd; $(MAKE) BINDIR=$(BINDIR) MANDIR=$(MANDIR) $(MFLAGS) install
++ cd pppstats; $(MAKE) BINDIR=$(BINDIR) MANDIR=$(MANDIR) $(MFLAGS) install
++ cd pppdump; $(MAKE) BINDIR=$(BINDIR) MANDIR=$(MANDIR) $(MFLAGS) install
++
++install-etcppp: $(ETCDIR) $(ETCDIR)/options $(ETCDIR)/pap-secrets \
++ $(ETCDIR)/chap-secrets
++
++$(ETCDIR)/options:
++ $(INSTALL) -c -m 644 etc.ppp/options $@
++$(ETCDIR)/pap-secrets:
++ $(INSTALL) -c -m 600 etc.ppp/pap-secrets $@
++$(ETCDIR)/chap-secrets:
++ $(INSTALL) -c -m 600 etc.ppp/chap-secrets $@
++
++$(BINDIR):
++ $(INSTALL) -d -m 755 $@
++$(MANDIR)/man8:
++ $(INSTALL) -d -m 755 $@
++$(ETCDIR):
++ $(INSTALL) -d -m 755 $@
++
++clean:
++ rm -f `find . -name '*.[oas]' -print`
++ rm -f `find . -name 'core' -print`
++ rm -f `find . -name '*~' -print`
++ cd chat; $(MAKE) clean
++ cd pppd; $(MAKE) clean
++ cd pppstats; $(MAKE) clean
++ cd pppdump; $(MAKE) clean
++
++dist-clean: clean
++ rm -f Makefile `find . -name Makefile -print`
++
++#kernel:
++# cd linux; ./kinstall.sh
+
+<a id="drakxtrunkmdkstage1pppmodulesbsdcompc">Added: drakx/trunk/mdk-stage1/ppp/modules/bsd-comp.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/modules/bsd-comp.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/modules/bsd-comp.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,1116 @@
++/* Because this code is derived from the 4.3BSD compress source:
++ *
++ *
++ * Copyright (c) 1985, 1986 The Regents of the University of California.
++ * All rights reserved.
++ *
++ * This code is derived from software contributed to Berkeley by
++ * James A. Woods, derived from original work by Spencer Thomas
++ * and Joseph Orost.
++ *
++ * Redistribution and use in source and binary forms, with or without
++ * modification, are permitted provided that the following conditions
++ * are met:
++ * 1. Redistributions of source code must retain the above copyright
++ * notice, this list of conditions and the following disclaimer.
++ * 2. Redistributions in binary form must reproduce the above copyright
++ * notice, this list of conditions and the following disclaimer in the
++ * documentation and/or other materials provided with the distribution.
++ * 3. All advertising materials mentioning features or use of this software
++ * must display the following acknowledgement:
++ * This product includes software developed by the University of
++ * California, Berkeley and its contributors.
++ * 4. Neither the name of the University nor the names of its contributors
++ * may be used to endorse or promote products derived from this software
++ * without specific prior written permission.
++ *
++ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++ * SUCH DAMAGE.
++ */
++
++/*
++ * This version is for use with STREAMS under SunOS 4.x,
++ * Digital UNIX, AIX 4.x, and SVR4 systems including Solaris 2.
++ *
++ * $Id: bsd-comp.c 195720 2001-06-11 11:44:34Z gc $
++ */
++
++#ifdef AIX4
++#include &lt;net/net_globals.h&gt;
++#endif
++#include &lt;sys/param.h&gt;
++#include &lt;sys/types.h&gt;
++#include &lt;sys/stream.h&gt;
++#include &lt;net/ppp_defs.h&gt;
++#include &quot;ppp_mod.h&quot;
++
++#ifdef SVR4
++#include &lt;sys/byteorder.h&gt;
++#ifndef _BIG_ENDIAN
++#define BSD_LITTLE_ENDIAN
++#endif
++#endif
++
++#ifdef __osf__
++#undef FIRST
++#undef LAST
++#define BSD_LITTLE_ENDIAN
++#endif
++
++#define PACKETPTR mblk_t *
++#include &lt;net/ppp-comp.h&gt;
++
++#if DO_BSD_COMPRESS
++
++/*
++ * PPP &quot;BSD compress&quot; compression
++ * The differences between this compression and the classic BSD LZW
++ * source are obvious from the requirement that the classic code worked
++ * with files while this handles arbitrarily long streams that
++ * are broken into packets. They are:
++ *
++ * When the code size expands, a block of junk is not emitted by
++ * the compressor and not expected by the decompressor.
++ *
++ * New codes are not necessarily assigned every time an old
++ * code is output by the compressor. This is because a packet
++ * end forces a code to be emitted, but does not imply that a
++ * new sequence has been seen.
++ *
++ * The compression ratio is checked at the first end of a packet
++ * after the appropriate gap. Besides simplifying and speeding
++ * things up, this makes it more likely that the transmitter
++ * and receiver will agree when the dictionary is cleared when
++ * compression is not going well.
++ */
++
++/*
++ * A dictionary for doing BSD compress.
++ */
++struct bsd_db {
++ int totlen; /* length of this structure */
++ u_int hsize; /* size of the hash table */
++ u_char hshift; /* used in hash function */
++ u_char n_bits; /* current bits/code */
++ u_char maxbits;
++ u_char debug;
++ u_char unit;
++ u_short seqno; /* sequence number of next packet */
++ u_int hdrlen; /* header length to preallocate */
++ u_int mru;
++ u_int maxmaxcode; /* largest valid code */
++ u_int max_ent; /* largest code in use */
++ u_int in_count; /* uncompressed bytes, aged */
++ u_int bytes_out; /* compressed bytes, aged */
++ u_int ratio; /* recent compression ratio */
++ u_int checkpoint; /* when to next check the ratio */
++ u_int clear_count; /* times dictionary cleared */
++ u_int incomp_count; /* incompressible packets */
++ u_int incomp_bytes; /* incompressible bytes */
++ u_int uncomp_count; /* uncompressed packets */
++ u_int uncomp_bytes; /* uncompressed bytes */
++ u_int comp_count; /* compressed packets */
++ u_int comp_bytes; /* compressed bytes */
++ u_short *lens; /* array of lengths of codes */
++ struct bsd_dict {
++ union { /* hash value */
++ u_int32_t fcode;
++ struct {
++#ifdef BSD_LITTLE_ENDIAN
++ u_short prefix; /* preceding code */
++ u_char suffix; /* last character of new code */
++ u_char pad;
++#else
++ u_char pad;
++ u_char suffix; /* last character of new code */
++ u_short prefix; /* preceding code */
++#endif
++ } hs;
++ } f;
++ u_short codem1; /* output of hash table -1 */
++ u_short cptr; /* map code to hash table entry */
++ } dict[1];
++};
++
++#define BSD_OVHD 2 /* BSD compress overhead/packet */
++#define BSD_INIT_BITS BSD_MIN_BITS
++
++static void *bsd_comp_alloc __P((u_char *options, int opt_len));
++static void *bsd_decomp_alloc __P((u_char *options, int opt_len));
++static void bsd_free __P((void *state));
++static int bsd_comp_init __P((void *state, u_char *options, int opt_len,
++ int unit, int hdrlen, int debug));
++static int bsd_decomp_init __P((void *state, u_char *options, int opt_len,
++ int unit, int hdrlen, int mru, int debug));
++static int bsd_compress __P((void *state, mblk_t **mret,
++ mblk_t *mp, int slen, int maxolen));
++static void bsd_incomp __P((void *state, mblk_t *dmsg));
++static int bsd_decompress __P((void *state, mblk_t *cmp, mblk_t **dmpp));
++static void bsd_reset __P((void *state));
++static void bsd_comp_stats __P((void *state, struct compstat *stats));
++
++/*
++ * Procedures exported to ppp_comp.c.
++ */
++struct compressor ppp_bsd_compress = {
++ CI_BSD_COMPRESS, /* compress_proto */
++ bsd_comp_alloc, /* comp_alloc */
++ bsd_free, /* comp_free */
++ bsd_comp_init, /* comp_init */
++ bsd_reset, /* comp_reset */
++ bsd_compress, /* compress */
++ bsd_comp_stats, /* comp_stat */
++ bsd_decomp_alloc, /* decomp_alloc */
++ bsd_free, /* decomp_free */
++ bsd_decomp_init, /* decomp_init */
++ bsd_reset, /* decomp_reset */
++ bsd_decompress, /* decompress */
++ bsd_incomp, /* incomp */
++ bsd_comp_stats, /* decomp_stat */
++};
++
++/*
++ * the next two codes should not be changed lightly, as they must not
++ * lie within the contiguous general code space.
++ */
++#define CLEAR 256 /* table clear output code */
++#define FIRST 257 /* first free entry */
++#define LAST 255
++
++#define MAXCODE(b) ((1 &lt;&lt; (b)) - 1)
++#define BADCODEM1 MAXCODE(BSD_MAX_BITS)
++
++#define BSD_HASH(prefix,suffix,hshift) ((((u_int32_t)(suffix)) &lt;&lt; (hshift)) \
++ ^ (u_int32_t)(prefix))
++#define BSD_KEY(prefix,suffix) ((((u_int32_t)(suffix)) &lt;&lt; 16) \
++ + (u_int32_t)(prefix))
++
++#define CHECK_GAP 10000 /* Ratio check interval */
++
++#define RATIO_SCALE_LOG 8
++#define RATIO_SCALE (1&lt;&lt;RATIO_SCALE_LOG)
++#define RATIO_MAX (0x7fffffff&gt;&gt;RATIO_SCALE_LOG)
++
++#define DECOMP_CHUNK 256
++
++/*
++ * clear the dictionary
++ */
++static void
++bsd_clear(db)
++ struct bsd_db *db;
++{
++ db-&gt;clear_count++;
++ db-&gt;max_ent = FIRST-1;
++ db-&gt;n_bits = BSD_INIT_BITS;
++ db-&gt;ratio = 0;
++ db-&gt;bytes_out = 0;
++ db-&gt;in_count = 0;
++ db-&gt;checkpoint = CHECK_GAP;
++}
++
++/*
++ * If the dictionary is full, then see if it is time to reset it.
++ *
++ * Compute the compression ratio using fixed-point arithmetic
++ * with 8 fractional bits.
++ *
++ * Since we have an infinite stream instead of a single file,
++ * watch only the local compression ratio.
++ *
++ * Since both peers must reset the dictionary at the same time even in
++ * the absence of CLEAR codes (while packets are incompressible), they
++ * must compute the same ratio.
++ */
++static int /* 1=output CLEAR */
++bsd_check(db)
++ struct bsd_db *db;
++{
++ u_int new_ratio;
++
++ if (db-&gt;in_count &gt;= db-&gt;checkpoint) {
++ /* age the ratio by limiting the size of the counts */
++ if (db-&gt;in_count &gt;= RATIO_MAX
++ || db-&gt;bytes_out &gt;= RATIO_MAX) {
++ db-&gt;in_count -= db-&gt;in_count/4;
++ db-&gt;bytes_out -= db-&gt;bytes_out/4;
++ }
++
++ db-&gt;checkpoint = db-&gt;in_count + CHECK_GAP;
++
++ if (db-&gt;max_ent &gt;= db-&gt;maxmaxcode) {
++ /* Reset the dictionary only if the ratio is worse,
++ * or if it looks as if it has been poisoned
++ * by incompressible data.
++ *
++ * This does not overflow, because
++ * db-&gt;in_count &lt;= RATIO_MAX.
++ */
++ new_ratio = db-&gt;in_count &lt;&lt; RATIO_SCALE_LOG;
++ if (db-&gt;bytes_out != 0)
++ new_ratio /= db-&gt;bytes_out;
++
++ if (new_ratio &lt; db-&gt;ratio || new_ratio &lt; 1 * RATIO_SCALE) {
++ bsd_clear(db);
++ return 1;
++ }
++ db-&gt;ratio = new_ratio;
++ }
++ }
++ return 0;
++}
++
++/*
++ * Return statistics.
++ */
++static void
++bsd_comp_stats(state, stats)
++ void *state;
++ struct compstat *stats;
++{
++ struct bsd_db *db = (struct bsd_db *) state;
++ u_int out;
++
++ stats-&gt;unc_bytes = db-&gt;uncomp_bytes;
++ stats-&gt;unc_packets = db-&gt;uncomp_count;
++ stats-&gt;comp_bytes = db-&gt;comp_bytes;
++ stats-&gt;comp_packets = db-&gt;comp_count;
++ stats-&gt;inc_bytes = db-&gt;incomp_bytes;
++ stats-&gt;inc_packets = db-&gt;incomp_count;
++ stats-&gt;ratio = db-&gt;in_count;
++ out = db-&gt;bytes_out;
++ if (stats-&gt;ratio &lt;= 0x7fffff)
++ stats-&gt;ratio &lt;&lt;= 8;
++ else
++ out &gt;&gt;= 8;
++ if (out != 0)
++ stats-&gt;ratio /= out;
++}
++
++/*
++ * Reset state, as on a CCP ResetReq.
++ */
++static void
++bsd_reset(state)
++ void *state;
++{
++ struct bsd_db *db = (struct bsd_db *) state;
++
++ db-&gt;seqno = 0;
++ bsd_clear(db);
++ db-&gt;clear_count = 0;
++}
++
++/*
++ * Allocate space for a (de) compressor.
++ */
++static void *
++bsd_alloc(options, opt_len, decomp)
++ u_char *options;
++ int opt_len, decomp;
++{
++ int bits;
++ u_int newlen, hsize, hshift, maxmaxcode;
++ struct bsd_db *db;
++
++ if (opt_len != 3 || options[0] != CI_BSD_COMPRESS || options[1] != 3
++ || BSD_VERSION(options[2]) != BSD_CURRENT_VERSION)
++ return NULL;
++
++ bits = BSD_NBITS(options[2]);
++ switch (bits) {
++ case 9: /* needs 82152 for both directions */
++ case 10: /* needs 84144 */
++ case 11: /* needs 88240 */
++ case 12: /* needs 96432 */
++ hsize = 5003;
++ hshift = 4;
++ break;
++ case 13: /* needs 176784 */
++ hsize = 9001;
++ hshift = 5;
++ break;
++ case 14: /* needs 353744 */
++ hsize = 18013;
++ hshift = 6;
++ break;
++ case 15: /* needs 691440 */
++ hsize = 35023;
++ hshift = 7;
++ break;
++ case 16: /* needs 1366160--far too much, */
++ /* hsize = 69001; */ /* and 69001 is too big for cptr */
++ /* hshift = 8; */ /* in struct bsd_db */
++ /* break; */
++ default:
++ return NULL;
++ }
++
++ maxmaxcode = MAXCODE(bits);
++ newlen = sizeof(*db) + (hsize-1) * (sizeof(db-&gt;dict[0]));
++#ifdef __osf__
++ db = (struct bsd_db *) ALLOC_SLEEP(newlen);
++#else
++ db = (struct bsd_db *) ALLOC_NOSLEEP(newlen);
++#endif
++ if (!db)
++ return NULL;
++ bzero(db, sizeof(*db) - sizeof(db-&gt;dict));
++
++ if (!decomp) {
++ db-&gt;lens = NULL;
++ } else {
++#ifdef __osf__
++ db-&gt;lens = (u_short *) ALLOC_SLEEP((maxmaxcode+1) * sizeof(db-&gt;lens[0]));
++#else
++ db-&gt;lens = (u_short *) ALLOC_NOSLEEP((maxmaxcode+1) * sizeof(db-&gt;lens[0]));
++#endif
++ if (!db-&gt;lens) {
++ FREE(db, newlen);
++ return NULL;
++ }
++ }
++
++ db-&gt;totlen = newlen;
++ db-&gt;hsize = hsize;
++ db-&gt;hshift = hshift;
++ db-&gt;maxmaxcode = maxmaxcode;
++ db-&gt;maxbits = bits;
++
++ return (void *) db;
++}
++
++static void
++bsd_free(state)
++ void *state;
++{
++ struct bsd_db *db = (struct bsd_db *) state;
++
++ if (db-&gt;lens)
++ FREE(db-&gt;lens, (db-&gt;maxmaxcode+1) * sizeof(db-&gt;lens[0]));
++ FREE(db, db-&gt;totlen);
++}
++
++static void *
++bsd_comp_alloc(options, opt_len)
++ u_char *options;
++ int opt_len;
++{
++ return bsd_alloc(options, opt_len, 0);
++}
++
++static void *
++bsd_decomp_alloc(options, opt_len)
++ u_char *options;
++ int opt_len;
++{
++ return bsd_alloc(options, opt_len, 1);
++}
++
++/*
++ * Initialize the database.
++ */
++static int
++bsd_init(db, options, opt_len, unit, hdrlen, mru, debug, decomp)
++ struct bsd_db *db;
++ u_char *options;
++ int opt_len, unit, hdrlen, mru, debug, decomp;
++{
++ int i;
++
++ if (opt_len &lt; CILEN_BSD_COMPRESS
++ || options[0] != CI_BSD_COMPRESS || options[1] != CILEN_BSD_COMPRESS
++ || BSD_VERSION(options[2]) != BSD_CURRENT_VERSION
++ || BSD_NBITS(options[2]) != db-&gt;maxbits
++ || decomp &amp;&amp; db-&gt;lens == NULL)
++ return 0;
++
++ if (decomp) {
++ i = LAST+1;
++ while (i != 0)
++ db-&gt;lens[--i] = 1;
++ }
++ i = db-&gt;hsize;
++ while (i != 0) {
++ db-&gt;dict[--i].codem1 = BADCODEM1;
++ db-&gt;dict[i].cptr = 0;
++ }
++
++ db-&gt;unit = unit;
++ db-&gt;hdrlen = hdrlen;
++ db-&gt;mru = mru;
++ if (debug)
++ db-&gt;debug = 1;
++
++ bsd_reset(db);
++
++ return 1;
++}
++
++static int
++bsd_comp_init(state, options, opt_len, unit, hdrlen, debug)
++ void *state;
++ u_char *options;
++ int opt_len, unit, hdrlen, debug;
++{
++ return bsd_init((struct bsd_db *) state, options, opt_len,
++ unit, hdrlen, 0, debug, 0);
++}
++
++static int
++bsd_decomp_init(state, options, opt_len, unit, hdrlen, mru, debug)
++ void *state;
++ u_char *options;
++ int opt_len, unit, hdrlen, mru, debug;
++{
++ return bsd_init((struct bsd_db *) state, options, opt_len,
++ unit, hdrlen, mru, debug, 1);
++}
++
++
++/*
++ * compress a packet
++ * One change from the BSD compress command is that when the
++ * code size expands, we do not output a bunch of padding.
++ *
++ * N.B. at present, we ignore the hdrlen specified in the comp_init call.
++ */
++static int /* new slen */
++bsd_compress(state, mretp, mp, slen, maxolen)
++ void *state;
++ mblk_t **mretp; /* return compressed mbuf chain here */
++ mblk_t *mp; /* from here */
++ int slen; /* uncompressed length */
++ int maxolen; /* max compressed length */
++{
++ struct bsd_db *db = (struct bsd_db *) state;
++ int hshift = db-&gt;hshift;
++ u_int max_ent = db-&gt;max_ent;
++ u_int n_bits = db-&gt;n_bits;
++ u_int bitno = 32;
++ u_int32_t accm = 0, fcode;
++ struct bsd_dict *dictp;
++ u_char c;
++ int hval, disp, ent, ilen;
++ mblk_t *np, *mret;
++ u_char *rptr, *wptr;
++ u_char *cp_end;
++ int olen;
++ mblk_t *m, **mnp;
++
++#define PUTBYTE(v) { \
++ if (wptr) { \
++ *wptr++ = (v); \
++ if (wptr &gt;= cp_end) { \
++ m-&gt;b_wptr = wptr; \
++ m = m-&gt;b_cont; \
++ if (m) { \
++ wptr = m-&gt;b_wptr; \
++ cp_end = m-&gt;b_datap-&gt;db_lim; \
++ } else \
++ wptr = NULL; \
++ } \
++ } \
++ ++olen; \
++}
++
++#define OUTPUT(ent) { \
++ bitno -= n_bits; \
++ accm |= ((ent) &lt;&lt; bitno); \
++ do { \
++ PUTBYTE(accm &gt;&gt; 24); \
++ accm &lt;&lt;= 8; \
++ bitno += 8; \
++ } while (bitno &lt;= 24); \
++}
++
++ /*
++ * First get the protocol and check that we're
++ * interested in this packet.
++ */
++ *mretp = NULL;
++ rptr = mp-&gt;b_rptr;
++ if (rptr + PPP_HDRLEN &gt; mp-&gt;b_wptr) {
++ if (!pullupmsg(mp, PPP_HDRLEN))
++ return 0;
++ rptr = mp-&gt;b_rptr;
++ }
++ ent = PPP_PROTOCOL(rptr); /* get the protocol */
++ if (ent &lt; 0x21 || ent &gt; 0xf9)
++ return 0;
++
++ /* Don't generate compressed packets which are larger than
++ the uncompressed packet. */
++ if (maxolen &gt; slen)
++ maxolen = slen;
++
++ /* Allocate enough message blocks to give maxolen total space. */
++ mnp = &amp;mret;
++ for (olen = maxolen; olen &gt; 0; ) {
++ m = allocb((olen &lt; 4096? olen: 4096), BPRI_MED);
++ *mnp = m;
++ if (m == NULL) {
++ if (mret != NULL) {
++ freemsg(mret);
++ mnp = &amp;mret;
++ }
++ break;
++ }
++ mnp = &amp;m-&gt;b_cont;
++ olen -= m-&gt;b_datap-&gt;db_lim - m-&gt;b_wptr;
++ }
++ *mnp = NULL;
++
++ if ((m = mret) != NULL) {
++ wptr = m-&gt;b_wptr;
++ cp_end = m-&gt;b_datap-&gt;db_lim;
++ } else
++ wptr = cp_end = NULL;
++ olen = 0;
++
++ /*
++ * Copy the PPP header over, changing the protocol,
++ * and install the 2-byte sequence number.
++ */
++ if (wptr) {
++ wptr[0] = PPP_ADDRESS(rptr);
++ wptr[1] = PPP_CONTROL(rptr);
++ wptr[2] = 0; /* change the protocol */
++ wptr[3] = PPP_COMP;
++ wptr[4] = db-&gt;seqno &gt;&gt; 8;
++ wptr[5] = db-&gt;seqno;
++ wptr += PPP_HDRLEN + BSD_OVHD;
++ }
++ ++db-&gt;seqno;
++ rptr += PPP_HDRLEN;
++
++ slen = mp-&gt;b_wptr - rptr;
++ ilen = slen + 1;
++ np = mp-&gt;b_cont;
++ for (;;) {
++ if (slen &lt;= 0) {
++ if (!np)
++ break;
++ rptr = np-&gt;b_rptr;
++ slen = np-&gt;b_wptr - rptr;
++ np = np-&gt;b_cont;
++ if (!slen)
++ continue; /* handle 0-length buffers */
++ ilen += slen;
++ }
++
++ slen--;
++ c = *rptr++;
++ fcode = BSD_KEY(ent, c);
++ hval = BSD_HASH(ent, c, hshift);
++ dictp = &amp;db-&gt;dict[hval];
++
++ /* Validate and then check the entry. */
++ if (dictp-&gt;codem1 &gt;= max_ent)
++ goto nomatch;
++ if (dictp-&gt;f.fcode == fcode) {
++ ent = dictp-&gt;codem1+1;
++ continue; /* found (prefix,suffix) */
++ }
++
++ /* continue probing until a match or invalid entry */
++ disp = (hval == 0) ? 1 : hval;
++ do {
++ hval += disp;
++ if (hval &gt;= db-&gt;hsize)
++ hval -= db-&gt;hsize;
++ dictp = &amp;db-&gt;dict[hval];
++ if (dictp-&gt;codem1 &gt;= max_ent)
++ goto nomatch;
++ } while (dictp-&gt;f.fcode != fcode);
++ ent = dictp-&gt;codem1 + 1; /* finally found (prefix,suffix) */
++ continue;
++
++ nomatch:
++ OUTPUT(ent); /* output the prefix */
++
++ /* code -&gt; hashtable */
++ if (max_ent &lt; db-&gt;maxmaxcode) {
++ struct bsd_dict *dictp2;
++ /* expand code size if needed */
++ if (max_ent &gt;= MAXCODE(n_bits))
++ db-&gt;n_bits = ++n_bits;
++
++ /* Invalidate old hash table entry using
++ * this code, and then take it over.
++ */
++ dictp2 = &amp;db-&gt;dict[max_ent+1];
++ if (db-&gt;dict[dictp2-&gt;cptr].codem1 == max_ent)
++ db-&gt;dict[dictp2-&gt;cptr].codem1 = BADCODEM1;
++ dictp2-&gt;cptr = hval;
++ dictp-&gt;codem1 = max_ent;
++ dictp-&gt;f.fcode = fcode;
++
++ db-&gt;max_ent = ++max_ent;
++ }
++ ent = c;
++ }
++
++ OUTPUT(ent); /* output the last code */
++ db-&gt;bytes_out += olen;
++ db-&gt;in_count += ilen;
++ if (bitno &lt; 32)
++ ++db-&gt;bytes_out; /* count complete bytes */
++
++ if (bsd_check(db))
++ OUTPUT(CLEAR); /* do not count the CLEAR */
++
++ /*
++ * Pad dribble bits of last code with ones.
++ * Do not emit a completely useless byte of ones.
++ */
++ if (bitno != 32)
++ PUTBYTE((accm | (0xff &lt;&lt; (bitno-8))) &gt;&gt; 24);
++
++ /*
++ * Increase code size if we would have without the packet
++ * boundary and as the decompressor will.
++ */
++ if (max_ent &gt;= MAXCODE(n_bits) &amp;&amp; max_ent &lt; db-&gt;maxmaxcode)
++ db-&gt;n_bits++;
++
++ db-&gt;uncomp_bytes += ilen;
++ ++db-&gt;uncomp_count;
++ if (olen + PPP_HDRLEN + BSD_OVHD &gt; maxolen &amp;&amp; mret != NULL) {
++ /* throw away the compressed stuff if it is longer than uncompressed */
++ freemsg(mret);
++ mret = NULL;
++ ++db-&gt;incomp_count;
++ db-&gt;incomp_bytes += ilen;
++ } else if (wptr != NULL) {
++ m-&gt;b_wptr = wptr;
++ if (m-&gt;b_cont) {
++ freemsg(m-&gt;b_cont);
++ m-&gt;b_cont = NULL;
++ }
++ ++db-&gt;comp_count;
++ db-&gt;comp_bytes += olen + BSD_OVHD;
++ }
++
++ *mretp = mret;
++ return olen + PPP_HDRLEN + BSD_OVHD;
++#undef OUTPUT
++#undef PUTBYTE
++}
++
++
++/*
++ * Update the &quot;BSD Compress&quot; dictionary on the receiver for
++ * incompressible data by pretending to compress the incoming data.
++ */
++static void
++bsd_incomp(state, dmsg)
++ void *state;
++ mblk_t *dmsg;
++{
++ struct bsd_db *db = (struct bsd_db *) state;
++ u_int hshift = db-&gt;hshift;
++ u_int max_ent = db-&gt;max_ent;
++ u_int n_bits = db-&gt;n_bits;
++ struct bsd_dict *dictp;
++ u_int32_t fcode;
++ u_char c;
++ long hval, disp;
++ int slen, ilen;
++ u_int bitno = 7;
++ u_char *rptr;
++ u_int ent;
++
++ rptr = dmsg-&gt;b_rptr;
++ if (rptr + PPP_HDRLEN &gt; dmsg-&gt;b_wptr) {
++ if (!pullupmsg(dmsg, PPP_HDRLEN))
++ return;
++ rptr = dmsg-&gt;b_rptr;
++ }
++ ent = PPP_PROTOCOL(rptr); /* get the protocol */
++ if (ent &lt; 0x21 || ent &gt; 0xf9)
++ return;
++
++ db-&gt;seqno++;
++ ilen = 1; /* count the protocol as 1 byte */
++ rptr += PPP_HDRLEN;
++ for (;;) {
++ slen = dmsg-&gt;b_wptr - rptr;
++ if (slen &lt;= 0) {
++ dmsg = dmsg-&gt;b_cont;
++ if (!dmsg)
++ break;
++ rptr = dmsg-&gt;b_rptr;
++ continue; /* skip zero-length buffers */
++ }
++ ilen += slen;
++
++ do {
++ c = *rptr++;
++ fcode = BSD_KEY(ent, c);
++ hval = BSD_HASH(ent, c, hshift);
++ dictp = &amp;db-&gt;dict[hval];
++
++ /* validate and then check the entry */
++ if (dictp-&gt;codem1 &gt;= max_ent)
++ goto nomatch;
++ if (dictp-&gt;f.fcode == fcode) {
++ ent = dictp-&gt;codem1+1;
++ continue; /* found (prefix,suffix) */
++ }
++
++ /* continue probing until a match or invalid entry */
++ disp = (hval == 0) ? 1 : hval;
++ do {
++ hval += disp;
++ if (hval &gt;= db-&gt;hsize)
++ hval -= db-&gt;hsize;
++ dictp = &amp;db-&gt;dict[hval];
++ if (dictp-&gt;codem1 &gt;= max_ent)
++ goto nomatch;
++ } while (dictp-&gt;f.fcode != fcode);
++ ent = dictp-&gt;codem1+1;
++ continue; /* finally found (prefix,suffix) */
++
++ nomatch: /* output (count) the prefix */
++ bitno += n_bits;
++
++ /* code -&gt; hashtable */
++ if (max_ent &lt; db-&gt;maxmaxcode) {
++ struct bsd_dict *dictp2;
++ /* expand code size if needed */
++ if (max_ent &gt;= MAXCODE(n_bits))
++ db-&gt;n_bits = ++n_bits;
++
++ /* Invalidate previous hash table entry
++ * assigned this code, and then take it over.
++ */
++ dictp2 = &amp;db-&gt;dict[max_ent+1];
++ if (db-&gt;dict[dictp2-&gt;cptr].codem1 == max_ent)
++ db-&gt;dict[dictp2-&gt;cptr].codem1 = BADCODEM1;
++ dictp2-&gt;cptr = hval;
++ dictp-&gt;codem1 = max_ent;
++ dictp-&gt;f.fcode = fcode;
++
++ db-&gt;max_ent = ++max_ent;
++ db-&gt;lens[max_ent] = db-&gt;lens[ent]+1;
++ }
++ ent = c;
++ } while (--slen != 0);
++ }
++ bitno += n_bits; /* output (count) the last code */
++ db-&gt;bytes_out += bitno/8;
++ db-&gt;in_count += ilen;
++ (void)bsd_check(db);
++
++ ++db-&gt;incomp_count;
++ db-&gt;incomp_bytes += ilen;
++ ++db-&gt;uncomp_count;
++ db-&gt;uncomp_bytes += ilen;
++
++ /* Increase code size if we would have without the packet
++ * boundary and as the decompressor will.
++ */
++ if (max_ent &gt;= MAXCODE(n_bits) &amp;&amp; max_ent &lt; db-&gt;maxmaxcode)
++ db-&gt;n_bits++;
++}
++
++
++/*
++ * Decompress &quot;BSD Compress&quot;
++ *
++ * Because of patent problems, we return DECOMP_ERROR for errors
++ * found by inspecting the input data and for system problems, but
++ * DECOMP_FATALERROR for any errors which could possibly be said to
++ * be being detected &quot;after&quot; decompression. For DECOMP_ERROR,
++ * we can issue a CCP reset-request; for DECOMP_FATALERROR, we may be
++ * infringing a patent of Motorola's if we do, so we take CCP down
++ * instead.
++ *
++ * Given that the frame has the correct sequence number and a good FCS,
++ * errors such as invalid codes in the input most likely indicate a
++ * bug, so we return DECOMP_FATALERROR for them in order to turn off
++ * compression, even though they are detected by inspecting the input.
++ */
++static int
++bsd_decompress(state, cmsg, dmpp)
++ void *state;
++ mblk_t *cmsg, **dmpp;
++{
++ struct bsd_db *db = (struct bsd_db *) state;
++ u_int max_ent = db-&gt;max_ent;
++ u_int32_t accm = 0;
++ u_int bitno = 32; /* 1st valid bit in accm */
++ u_int n_bits = db-&gt;n_bits;
++ u_int tgtbitno = 32-n_bits; /* bitno when we have a code */
++ struct bsd_dict *dictp;
++ int explen, i, seq, len;
++ u_int incode, oldcode, finchar;
++ u_char *p, *rptr, *wptr;
++ mblk_t *dmsg, *mret;
++ int adrs, ctrl, ilen;
++ int dlen, space, codelen, extra;
++
++ /*
++ * Get at least the BSD Compress header in the first buffer
++ */
++ rptr = cmsg-&gt;b_rptr;
++ if (rptr + PPP_HDRLEN + BSD_OVHD &gt;= cmsg-&gt;b_wptr) {
++ if (!pullupmsg(cmsg, PPP_HDRLEN + BSD_OVHD + 1)) {
++ if (db-&gt;debug)
++ printf(&quot;bsd_decomp%d: failed to pullup\n&quot;, db-&gt;unit);
++ return DECOMP_ERROR;
++ }
++ rptr = cmsg-&gt;b_rptr;
++ }
++
++ /*
++ * Save the address/control from the PPP header
++ * and then get the sequence number.
++ */
++ adrs = PPP_ADDRESS(rptr);
++ ctrl = PPP_CONTROL(rptr);
++ rptr += PPP_HDRLEN;
++ seq = (rptr[0] &lt;&lt; 8) + rptr[1];
++ rptr += BSD_OVHD;
++ ilen = len = cmsg-&gt;b_wptr - rptr;
++
++ /*
++ * Check the sequence number and give up if it is not what we expect.
++ */
++ if (seq != db-&gt;seqno++) {
++ if (db-&gt;debug)
++ printf(&quot;bsd_decomp%d: bad sequence # %d, expected %d\n&quot;,
++ db-&gt;unit, seq, db-&gt;seqno - 1);
++ return DECOMP_ERROR;
++ }
++
++ /*
++ * Allocate one message block to start with.
++ */
++ if ((dmsg = allocb(DECOMP_CHUNK + db-&gt;hdrlen, BPRI_MED)) == NULL)
++ return DECOMP_ERROR;
++ mret = dmsg;
++ dmsg-&gt;b_wptr += db-&gt;hdrlen;
++ dmsg-&gt;b_rptr = wptr = dmsg-&gt;b_wptr;
++
++ /* Fill in the ppp header, but not the last byte of the protocol
++ (that comes from the decompressed data). */
++ wptr[0] = adrs;
++ wptr[1] = ctrl;
++ wptr[2] = 0;
++ wptr += PPP_HDRLEN - 1;
++ space = dmsg-&gt;b_datap-&gt;db_lim - wptr;
++
++ oldcode = CLEAR;
++ explen = 0;
++ for (;;) {
++ if (len == 0) {
++ cmsg = cmsg-&gt;b_cont;
++ if (!cmsg) /* quit at end of message */
++ break;
++ rptr = cmsg-&gt;b_rptr;
++ len = cmsg-&gt;b_wptr - rptr;
++ ilen += len;
++ continue; /* handle 0-length buffers */
++ }
++
++ /*
++ * Accumulate bytes until we have a complete code.
++ * Then get the next code, relying on the 32-bit,
++ * unsigned accm to mask the result.
++ */
++ bitno -= 8;
++ accm |= *rptr++ &lt;&lt; bitno;
++ --len;
++ if (tgtbitno &lt; bitno)
++ continue;
++ incode = accm &gt;&gt; tgtbitno;
++ accm &lt;&lt;= n_bits;
++ bitno += n_bits;
++
++ if (incode == CLEAR) {
++ /*
++ * The dictionary must only be cleared at
++ * the end of a packet. But there could be an
++ * empty message block at the end.
++ */
++ if (len &gt; 0 || cmsg-&gt;b_cont != 0) {
++ if (cmsg-&gt;b_cont)
++ len += msgdsize(cmsg-&gt;b_cont);
++ if (len &gt; 0) {
++ freemsg(dmsg);
++ if (db-&gt;debug)
++ printf(&quot;bsd_decomp%d: bad CLEAR\n&quot;, db-&gt;unit);
++ return DECOMP_FATALERROR;
++ }
++ }
++ bsd_clear(db);
++ explen = ilen = 0;
++ break;
++ }
++
++ if (incode &gt; max_ent + 2 || incode &gt; db-&gt;maxmaxcode
++ || incode &gt; max_ent &amp;&amp; oldcode == CLEAR) {
++ freemsg(dmsg);
++ if (db-&gt;debug) {
++ printf(&quot;bsd_decomp%d: bad code 0x%x oldcode=0x%x &quot;,
++ db-&gt;unit, incode, oldcode);
++ printf(&quot;max_ent=0x%x dlen=%d seqno=%d\n&quot;,
++ max_ent, dlen, db-&gt;seqno);
++ }
++ return DECOMP_FATALERROR; /* probably a bug */
++ }
++
++ /* Special case for KwKwK string. */
++ if (incode &gt; max_ent) {
++ finchar = oldcode;
++ extra = 1;
++ } else {
++ finchar = incode;
++ extra = 0;
++ }
++
++ codelen = db-&gt;lens[finchar];
++ explen += codelen + extra;
++ if (explen &gt; db-&gt;mru + 1) {
++ freemsg(dmsg);
++ if (db-&gt;debug)
++ printf(&quot;bsd_decomp%d: ran out of mru\n&quot;, db-&gt;unit);
++ return DECOMP_FATALERROR;
++ }
++
++ /*
++ * Decode this code and install it in the decompressed buffer.
++ */
++ space -= codelen + extra;
++ if (space &lt; 0) {
++ /* Allocate another message block. */
++ dmsg-&gt;b_wptr = wptr;
++ dlen = codelen + extra;
++ if (dlen &lt; DECOMP_CHUNK)
++ dlen = DECOMP_CHUNK;
++ if ((dmsg-&gt;b_cont = allocb(dlen, BPRI_MED)) == NULL) {
++ freemsg(dmsg);
++ return DECOMP_ERROR;
++ }
++ dmsg = dmsg-&gt;b_cont;
++ wptr = dmsg-&gt;b_wptr;
++ space = dmsg-&gt;b_datap-&gt;db_lim - wptr - codelen - extra;
++ }
++ p = (wptr += codelen);
++ while (finchar &gt; LAST) {
++ dictp = &amp;db-&gt;dict[db-&gt;dict[finchar].cptr];
++#ifdef DEBUG
++ --codelen;
++ if (codelen &lt;= 0) {
++ freemsg(dmsg);
++ printf(&quot;bsd_decomp%d: fell off end of chain &quot;, db-&gt;unit);
++ printf(&quot;0x%x at 0x%x by 0x%x, max_ent=0x%x\n&quot;,
++ incode, finchar, db-&gt;dict[finchar].cptr, max_ent);
++ return DECOMP_FATALERROR;
++ }
++ if (dictp-&gt;codem1 != finchar-1) {
++ freemsg(dmsg);
++ printf(&quot;bsd_decomp%d: bad code chain 0x%x finchar=0x%x &quot;,
++ db-&gt;unit, incode, finchar);
++ printf(&quot;oldcode=0x%x cptr=0x%x codem1=0x%x\n&quot;, oldcode,
++ db-&gt;dict[finchar].cptr, dictp-&gt;codem1);
++ return DECOMP_FATALERROR;
++ }
++#endif
++ *--p = dictp-&gt;f.hs.suffix;
++ finchar = dictp-&gt;f.hs.prefix;
++ }
++ *--p = finchar;
++
++#ifdef DEBUG
++ if (--codelen != 0)
++ printf(&quot;bsd_decomp%d: short by %d after code 0x%x, max_ent=0x%x\n&quot;,
++ db-&gt;unit, codelen, incode, max_ent);
++#endif
++
++ if (extra) /* the KwKwK case again */
++ *wptr++ = finchar;
++
++ /*
++ * If not first code in a packet, and
++ * if not out of code space, then allocate a new code.
++ *
++ * Keep the hash table correct so it can be used
++ * with uncompressed packets.
++ */
++ if (oldcode != CLEAR &amp;&amp; max_ent &lt; db-&gt;maxmaxcode) {
++ struct bsd_dict *dictp2;
++ u_int32_t fcode;
++ int hval, disp;
++
++ fcode = BSD_KEY(oldcode,finchar);
++ hval = BSD_HASH(oldcode,finchar,db-&gt;hshift);
++ dictp = &amp;db-&gt;dict[hval];
++
++ /* look for a free hash table entry */
++ if (dictp-&gt;codem1 &lt; max_ent) {
++ disp = (hval == 0) ? 1 : hval;
++ do {
++ hval += disp;
++ if (hval &gt;= db-&gt;hsize)
++ hval -= db-&gt;hsize;
++ dictp = &amp;db-&gt;dict[hval];
++ } while (dictp-&gt;codem1 &lt; max_ent);
++ }
++
++ /*
++ * Invalidate previous hash table entry
++ * assigned this code, and then take it over
++ */
++ dictp2 = &amp;db-&gt;dict[max_ent+1];
++ if (db-&gt;dict[dictp2-&gt;cptr].codem1 == max_ent) {
++ db-&gt;dict[dictp2-&gt;cptr].codem1 = BADCODEM1;
++ }
++ dictp2-&gt;cptr = hval;
++ dictp-&gt;codem1 = max_ent;
++ dictp-&gt;f.fcode = fcode;
++
++ db-&gt;max_ent = ++max_ent;
++ db-&gt;lens[max_ent] = db-&gt;lens[oldcode]+1;
++
++ /* Expand code size if needed. */
++ if (max_ent &gt;= MAXCODE(n_bits) &amp;&amp; max_ent &lt; db-&gt;maxmaxcode) {
++ db-&gt;n_bits = ++n_bits;
++ tgtbitno = 32-n_bits;
++ }
++ }
++ oldcode = incode;
++ }
++ dmsg-&gt;b_wptr = wptr;
++
++ /*
++ * Keep the checkpoint right so that incompressible packets
++ * clear the dictionary at the right times.
++ */
++ db-&gt;bytes_out += ilen;
++ db-&gt;in_count += explen;
++ if (bsd_check(db) &amp;&amp; db-&gt;debug) {
++ printf(&quot;bsd_decomp%d: peer should have cleared dictionary\n&quot;,
++ db-&gt;unit);
++ }
++
++ ++db-&gt;comp_count;
++ db-&gt;comp_bytes += ilen + BSD_OVHD;
++ ++db-&gt;uncomp_count;
++ db-&gt;uncomp_bytes += explen;
++
++ *dmpp = mret;
++ return DECOMP_OK;
++}
++#endif /* DO_BSD_COMPRESS */
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/modules/bsd-comp.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pppmodulesdeflatec">Added: drakx/trunk/mdk-stage1/ppp/modules/deflate.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/modules/deflate.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/modules/deflate.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,760 @@
++/*
++ * ppp_deflate.c - interface the zlib procedures for Deflate compression
++ * and decompression (as used by gzip) to the PPP code.
++ * This version is for use with STREAMS under SunOS 4.x, Solaris 2,
++ * SVR4, OSF/1 and AIX 4.x.
++ *
++ * Copyright (c) 1994 The Australian National University.
++ * All rights reserved.
++ *
++ * Permission to use, copy, modify, and distribute this software and its
++ * documentation is hereby granted, provided that the above copyright
++ * notice appears in all copies. This software is provided without any
++ * warranty, express or implied. The Australian National University
++ * makes no representations about the suitability of this software for
++ * any purpose.
++ *
++ * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY
++ * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
++ * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
++ * THE AUSTRALIAN NATIONAL UNIVERSITY HAS BEEN ADVISED OF THE POSSIBILITY
++ * OF SUCH DAMAGE.
++ *
++ * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
++ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
++ * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
++ * ON AN &quot;AS IS&quot; BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO
++ * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
++ * OR MODIFICATIONS.
++ *
++ * $Id: deflate.c 195720 2001-06-11 11:44:34Z gc $
++ */
++
++#ifdef AIX4
++#include &lt;net/net_globals.h&gt;
++#endif
++#include &lt;sys/param.h&gt;
++#include &lt;sys/types.h&gt;
++#include &lt;sys/stream.h&gt;
++#include &lt;net/ppp_defs.h&gt;
++#include &quot;ppp_mod.h&quot;
++
++#define PACKETPTR mblk_t *
++#include &lt;net/ppp-comp.h&gt;
++
++#ifdef __osf__
++#include &quot;zlib.h&quot;
++#else
++#include &quot;../common/zlib.h&quot;
++#endif
++
++#if DO_DEFLATE
++
++#define DEFLATE_DEBUG 1
++
++/*
++ * State for a Deflate (de)compressor.
++ */
++struct deflate_state {
++ int seqno;
++ int w_size;
++ int unit;
++ int hdrlen;
++ int mru;
++ int debug;
++ z_stream strm;
++ struct compstat stats;
++};
++
++#define DEFLATE_OVHD 2 /* Deflate overhead/packet */
++
++static void *z_alloc __P((void *, u_int items, u_int size));
++static void *z_alloc_init __P((void *, u_int items, u_int size));
++static void z_free __P((void *, void *ptr));
++static void *z_comp_alloc __P((u_char *options, int opt_len));
++static void *z_decomp_alloc __P((u_char *options, int opt_len));
++static void z_comp_free __P((void *state));
++static void z_decomp_free __P((void *state));
++static int z_comp_init __P((void *state, u_char *options, int opt_len,
++ int unit, int hdrlen, int debug));
++static int z_decomp_init __P((void *state, u_char *options, int opt_len,
++ int unit, int hdrlen, int mru, int debug));
++static int z_compress __P((void *state, mblk_t **mret,
++ mblk_t *mp, int slen, int maxolen));
++static void z_incomp __P((void *state, mblk_t *dmsg));
++static int z_decompress __P((void *state, mblk_t *cmp,
++ mblk_t **dmpp));
++static void z_comp_reset __P((void *state));
++static void z_decomp_reset __P((void *state));
++static void z_comp_stats __P((void *state, struct compstat *stats));
++
++/*
++ * Procedures exported to ppp_comp.c.
++ */
++struct compressor ppp_deflate = {
++ CI_DEFLATE, /* compress_proto */
++ z_comp_alloc, /* comp_alloc */
++ z_comp_free, /* comp_free */
++ z_comp_init, /* comp_init */
++ z_comp_reset, /* comp_reset */
++ z_compress, /* compress */
++ z_comp_stats, /* comp_stat */
++ z_decomp_alloc, /* decomp_alloc */
++ z_decomp_free, /* decomp_free */
++ z_decomp_init, /* decomp_init */
++ z_decomp_reset, /* decomp_reset */
++ z_decompress, /* decompress */
++ z_incomp, /* incomp */
++ z_comp_stats, /* decomp_stat */
++};
++
++struct compressor ppp_deflate_draft = {
++ CI_DEFLATE_DRAFT, /* compress_proto */
++ z_comp_alloc, /* comp_alloc */
++ z_comp_free, /* comp_free */
++ z_comp_init, /* comp_init */
++ z_comp_reset, /* comp_reset */
++ z_compress, /* compress */
++ z_comp_stats, /* comp_stat */
++ z_decomp_alloc, /* decomp_alloc */
++ z_decomp_free, /* decomp_free */
++ z_decomp_init, /* decomp_init */
++ z_decomp_reset, /* decomp_reset */
++ z_decompress, /* decompress */
++ z_incomp, /* incomp */
++ z_comp_stats, /* decomp_stat */
++};
++
++#define DECOMP_CHUNK 512
++
++/*
++ * Space allocation and freeing routines for use by zlib routines.
++ */
++struct zchunk {
++ u_int size;
++ u_int guard;
++};
++
++#define GUARD_MAGIC 0x77a6011a
++
++static void *
++z_alloc_init(notused, items, size)
++ void *notused;
++ u_int items, size;
++{
++ struct zchunk *z;
++
++ size = items * size + sizeof(struct zchunk);
++#ifdef __osf__
++ z = (struct zchunk *) ALLOC_SLEEP(size);
++#else
++ z = (struct zchunk *) ALLOC_NOSLEEP(size);
++#endif
++ z-&gt;size = size;
++ z-&gt;guard = GUARD_MAGIC;
++ return (void *) (z + 1);
++}
++
++static void *
++z_alloc(notused, items, size)
++ void *notused;
++ u_int items, size;
++{
++ struct zchunk *z;
++
++ size = items * size + sizeof(struct zchunk);
++ z = (struct zchunk *) ALLOC_NOSLEEP(size);
++ z-&gt;size = size;
++ z-&gt;guard = GUARD_MAGIC;
++ return (void *) (z + 1);
++}
++
++static void
++z_free(notused, ptr)
++ void *notused;
++ void *ptr;
++{
++ struct zchunk *z = ((struct zchunk *) ptr) - 1;
++
++ if (z-&gt;guard != GUARD_MAGIC) {
++ printf(&quot;ppp: z_free of corrupted chunk at %x (%x, %x)\n&quot;,
++ z, z-&gt;size, z-&gt;guard);
++ return;
++ }
++ FREE(z, z-&gt;size);
++}
++
++/*
++ * Allocate space for a compressor.
++ */
++static void *
++z_comp_alloc(options, opt_len)
++ u_char *options;
++ int opt_len;
++{
++ struct deflate_state *state;
++ int w_size;
++
++ if (opt_len != CILEN_DEFLATE
++ || (options[0] != CI_DEFLATE &amp;&amp; options[0] != CI_DEFLATE_DRAFT)
++ || options[1] != CILEN_DEFLATE
++ || DEFLATE_METHOD(options[2]) != DEFLATE_METHOD_VAL
++ || options[3] != DEFLATE_CHK_SEQUENCE)
++ return NULL;
++ w_size = DEFLATE_SIZE(options[2]);
++ /*
++ * N.B. the 9 below should be DEFLATE_MIN_SIZE (8), but using
++ * 8 will cause kernel crashes because of a bug in zlib.
++ */
++ if (w_size &lt; 9 || w_size &gt; DEFLATE_MAX_SIZE)
++ return NULL;
++
++
++#ifdef __osf__
++ state = (struct deflate_state *) ALLOC_SLEEP(sizeof(*state));
++#else
++ state = (struct deflate_state *) ALLOC_NOSLEEP(sizeof(*state));
++#endif
++
++ if (state == NULL)
++ return NULL;
++
++ state-&gt;strm.next_in = NULL;
++ state-&gt;strm.zalloc = (alloc_func) z_alloc_init;
++ state-&gt;strm.zfree = (free_func) z_free;
++ if (deflateInit2(&amp;state-&gt;strm, Z_DEFAULT_COMPRESSION, DEFLATE_METHOD_VAL,
++ -w_size, 8, Z_DEFAULT_STRATEGY) != Z_OK) {
++ FREE(state, sizeof(*state));
++ return NULL;
++ }
++
++ state-&gt;strm.zalloc = (alloc_func) z_alloc;
++ state-&gt;w_size = w_size;
++ bzero(&amp;state-&gt;stats, sizeof(state-&gt;stats));
++ return (void *) state;
++}
++
++static void
++z_comp_free(arg)
++ void *arg;
++{
++ struct deflate_state *state = (struct deflate_state *) arg;
++
++ deflateEnd(&amp;state-&gt;strm);
++ FREE(state, sizeof(*state));
++}
++
++static int
++z_comp_init(arg, options, opt_len, unit, hdrlen, debug)
++ void *arg;
++ u_char *options;
++ int opt_len, unit, hdrlen, debug;
++{
++ struct deflate_state *state = (struct deflate_state *) arg;
++
++ if (opt_len &lt; CILEN_DEFLATE
++ || (options[0] != CI_DEFLATE &amp;&amp; options[0] != CI_DEFLATE_DRAFT)
++ || options[1] != CILEN_DEFLATE
++ || DEFLATE_METHOD(options[2]) != DEFLATE_METHOD_VAL
++ || DEFLATE_SIZE(options[2]) != state-&gt;w_size
++ || options[3] != DEFLATE_CHK_SEQUENCE)
++ return 0;
++
++ state-&gt;seqno = 0;
++ state-&gt;unit = unit;
++ state-&gt;hdrlen = hdrlen;
++ state-&gt;debug = debug;
++
++ deflateReset(&amp;state-&gt;strm);
++
++ return 1;
++}
++
++static void
++z_comp_reset(arg)
++ void *arg;
++{
++ struct deflate_state *state = (struct deflate_state *) arg;
++
++ state-&gt;seqno = 0;
++ deflateReset(&amp;state-&gt;strm);
++}
++
++static int
++z_compress(arg, mret, mp, orig_len, maxolen)
++ void *arg;
++ mblk_t **mret; /* compressed packet (out) */
++ mblk_t *mp; /* uncompressed packet (in) */
++ int orig_len, maxolen;
++{
++ struct deflate_state *state = (struct deflate_state *) arg;
++ u_char *rptr, *wptr;
++ int proto, olen, wspace, r, flush;
++ mblk_t *m;
++
++ /*
++ * Check that the protocol is in the range we handle.
++ */
++ *mret = NULL;
++ rptr = mp-&gt;b_rptr;
++ if (rptr + PPP_HDRLEN &gt; mp-&gt;b_wptr) {
++ if (!pullupmsg(mp, PPP_HDRLEN))
++ return 0;
++ rptr = mp-&gt;b_rptr;
++ }
++ proto = PPP_PROTOCOL(rptr);
++ if (proto &gt; 0x3fff || proto == 0xfd || proto == 0xfb)
++ return orig_len;
++
++ /* Allocate one mblk initially. */
++ if (maxolen &gt; orig_len)
++ maxolen = orig_len;
++ if (maxolen &lt;= PPP_HDRLEN + 2) {
++ wspace = 0;
++ m = NULL;
++ } else {
++ wspace = maxolen + state-&gt;hdrlen;
++ if (wspace &gt; 4096)
++ wspace = 4096;
++ m = allocb(wspace, BPRI_MED);
++ }
++ if (m != NULL) {
++ *mret = m;
++ if (state-&gt;hdrlen + PPP_HDRLEN + 2 &lt; wspace) {
++ m-&gt;b_rptr += state-&gt;hdrlen;
++ m-&gt;b_wptr = m-&gt;b_rptr;
++ wspace -= state-&gt;hdrlen;
++ }
++ wptr = m-&gt;b_wptr;
++
++ /*
++ * Copy over the PPP header and store the 2-byte sequence number.
++ */
++ wptr[0] = PPP_ADDRESS(rptr);
++ wptr[1] = PPP_CONTROL(rptr);
++ wptr[2] = PPP_COMP &gt;&gt; 8;
++ wptr[3] = PPP_COMP;
++ wptr += PPP_HDRLEN;
++ wptr[0] = state-&gt;seqno &gt;&gt; 8;
++ wptr[1] = state-&gt;seqno;
++ wptr += 2;
++ state-&gt;strm.next_out = wptr;
++ state-&gt;strm.avail_out = wspace - (PPP_HDRLEN + 2);
++ } else {
++ state-&gt;strm.next_out = NULL;
++ state-&gt;strm.avail_out = 1000000;
++ }
++ ++state-&gt;seqno;
++
++ rptr += (proto &gt; 0xff)? 2: 3; /* skip 1st proto byte if 0 */
++ state-&gt;strm.next_in = rptr;
++ state-&gt;strm.avail_in = mp-&gt;b_wptr - rptr;
++ mp = mp-&gt;b_cont;
++ flush = (mp == NULL)? Z_PACKET_FLUSH: Z_NO_FLUSH;
++ olen = 0;
++ for (;;) {
++ r = deflate(&amp;state-&gt;strm, flush);
++ if (r != Z_OK) {
++ printf(&quot;z_compress: deflate returned %d (%s)\n&quot;,
++ r, (state-&gt;strm.msg? state-&gt;strm.msg: &quot;&quot;));
++ break;
++ }
++ if (flush != Z_NO_FLUSH &amp;&amp; state-&gt;strm.avail_out != 0)
++ break; /* all done */
++ if (state-&gt;strm.avail_in == 0 &amp;&amp; mp != NULL) {
++ state-&gt;strm.next_in = mp-&gt;b_rptr;
++ state-&gt;strm.avail_in = mp-&gt;b_wptr - mp-&gt;b_rptr;
++ mp = mp-&gt;b_cont;
++ if (mp == NULL)
++ flush = Z_PACKET_FLUSH;
++ }
++ if (state-&gt;strm.avail_out == 0) {
++ if (m != NULL) {
++ m-&gt;b_wptr += wspace;
++ olen += wspace;
++ wspace = maxolen - olen;
++ if (wspace &lt;= 0) {
++ wspace = 0;
++ m-&gt;b_cont = NULL;
++ } else {
++ if (wspace &lt; 32)
++ wspace = 32;
++ else if (wspace &gt; 4096)
++ wspace = 4096;
++ m-&gt;b_cont = allocb(wspace, BPRI_MED);
++ }
++ m = m-&gt;b_cont;
++ if (m != NULL) {
++ state-&gt;strm.next_out = m-&gt;b_wptr;
++ state-&gt;strm.avail_out = wspace;
++ }
++ }
++ if (m == NULL) {
++ state-&gt;strm.next_out = NULL;
++ state-&gt;strm.avail_out = 1000000;
++ }
++ }
++ }
++ if (m != NULL) {
++ m-&gt;b_wptr += wspace - state-&gt;strm.avail_out;
++ olen += wspace - state-&gt;strm.avail_out;
++ }
++
++ /*
++ * See if we managed to reduce the size of the packet.
++ */
++ if (olen &lt; orig_len &amp;&amp; m != NULL) {
++ state-&gt;stats.comp_bytes += olen;
++ state-&gt;stats.comp_packets++;
++ } else {
++ if (*mret != NULL) {
++ freemsg(*mret);
++ *mret = NULL;
++ }
++ state-&gt;stats.inc_bytes += orig_len;
++ state-&gt;stats.inc_packets++;
++ olen = orig_len;
++ }
++ state-&gt;stats.unc_bytes += orig_len;
++ state-&gt;stats.unc_packets++;
++
++ return olen;
++}
++
++static void
++z_comp_stats(arg, stats)
++ void *arg;
++ struct compstat *stats;
++{
++ struct deflate_state *state = (struct deflate_state *) arg;
++ u_int out;
++
++ *stats = state-&gt;stats;
++ stats-&gt;ratio = stats-&gt;unc_bytes;
++ out = stats-&gt;comp_bytes + stats-&gt;unc_bytes;
++ if (stats-&gt;ratio &lt;= 0x7ffffff)
++ stats-&gt;ratio &lt;&lt;= 8;
++ else
++ out &gt;&gt;= 8;
++ if (out != 0)
++ stats-&gt;ratio /= out;
++}
++
++/*
++ * Allocate space for a decompressor.
++ */
++static void *
++z_decomp_alloc(options, opt_len)
++ u_char *options;
++ int opt_len;
++{
++ struct deflate_state *state;
++ int w_size;
++
++ if (opt_len != CILEN_DEFLATE
++ || (options[0] != CI_DEFLATE &amp;&amp; options[0] != CI_DEFLATE_DRAFT)
++ || options[1] != CILEN_DEFLATE
++ || DEFLATE_METHOD(options[2]) != DEFLATE_METHOD_VAL
++ || options[3] != DEFLATE_CHK_SEQUENCE)
++ return NULL;
++ w_size = DEFLATE_SIZE(options[2]);
++ /*
++ * N.B. the 9 below should be DEFLATE_MIN_SIZE (8), but using
++ * 8 will cause kernel crashes because of a bug in zlib.
++ */
++ if (w_size &lt; 9 || w_size &gt; DEFLATE_MAX_SIZE)
++ return NULL;
++
++#ifdef __osf__
++ state = (struct deflate_state *) ALLOC_SLEEP(sizeof(*state));
++#else
++ state = (struct deflate_state *) ALLOC_NOSLEEP(sizeof(*state));
++#endif
++ if (state == NULL)
++ return NULL;
++
++ state-&gt;strm.next_out = NULL;
++ state-&gt;strm.zalloc = (alloc_func) z_alloc_init;
++ state-&gt;strm.zfree = (free_func) z_free;
++ if (inflateInit2(&amp;state-&gt;strm, -w_size) != Z_OK) {
++ FREE(state, sizeof(*state));
++ return NULL;
++ }
++
++ state-&gt;strm.zalloc = (alloc_func) z_alloc;
++ state-&gt;w_size = w_size;
++ bzero(&amp;state-&gt;stats, sizeof(state-&gt;stats));
++ return (void *) state;
++}
++
++static void
++z_decomp_free(arg)
++ void *arg;
++{
++ struct deflate_state *state = (struct deflate_state *) arg;
++
++ inflateEnd(&amp;state-&gt;strm);
++ FREE(state, sizeof(*state));
++}
++
++static int
++z_decomp_init(arg, options, opt_len, unit, hdrlen, mru, debug)
++ void *arg;
++ u_char *options;
++ int opt_len, unit, hdrlen, mru, debug;
++{
++ struct deflate_state *state = (struct deflate_state *) arg;
++
++ if (opt_len &lt; CILEN_DEFLATE
++ || (options[0] != CI_DEFLATE &amp;&amp; options[0] != CI_DEFLATE_DRAFT)
++ || options[1] != CILEN_DEFLATE
++ || DEFLATE_METHOD(options[2]) != DEFLATE_METHOD_VAL
++ || DEFLATE_SIZE(options[2]) != state-&gt;w_size
++ || options[3] != DEFLATE_CHK_SEQUENCE)
++ return 0;
++
++ state-&gt;seqno = 0;
++ state-&gt;unit = unit;
++ state-&gt;hdrlen = hdrlen;
++ state-&gt;debug = debug;
++ state-&gt;mru = mru;
++
++ inflateReset(&amp;state-&gt;strm);
++
++ return 1;
++}
++
++static void
++z_decomp_reset(arg)
++ void *arg;
++{
++ struct deflate_state *state = (struct deflate_state *) arg;
++
++ state-&gt;seqno = 0;
++ inflateReset(&amp;state-&gt;strm);
++}
++
++/*
++ * Decompress a Deflate-compressed packet.
++ *
++ * Because of patent problems, we return DECOMP_ERROR for errors
++ * found by inspecting the input data and for system problems, but
++ * DECOMP_FATALERROR for any errors which could possibly be said to
++ * be being detected &quot;after&quot; decompression. For DECOMP_ERROR,
++ * we can issue a CCP reset-request; for DECOMP_FATALERROR, we may be
++ * infringing a patent of Motorola's if we do, so we take CCP down
++ * instead.
++ *
++ * Given that the frame has the correct sequence number and a good FCS,
++ * errors such as invalid codes in the input most likely indicate a
++ * bug, so we return DECOMP_FATALERROR for them in order to turn off
++ * compression, even though they are detected by inspecting the input.
++ */
++static int
++z_decompress(arg, mi, mop)
++ void *arg;
++ mblk_t *mi, **mop;
++{
++ struct deflate_state *state = (struct deflate_state *) arg;
++ mblk_t *mo, *mo_head;
++ u_char *rptr, *wptr;
++ int rlen, olen, ospace;
++ int seq, i, flush, r, decode_proto;
++ u_char hdr[PPP_HDRLEN + DEFLATE_OVHD];
++
++ *mop = NULL;
++ rptr = mi-&gt;b_rptr;
++ for (i = 0; i &lt; PPP_HDRLEN + DEFLATE_OVHD; ++i) {
++ while (rptr &gt;= mi-&gt;b_wptr) {
++ mi = mi-&gt;b_cont;
++ if (mi == NULL)
++ return DECOMP_ERROR;
++ rptr = mi-&gt;b_rptr;
++ }
++ hdr[i] = *rptr++;
++ }
++
++ /* Check the sequence number. */
++ seq = (hdr[PPP_HDRLEN] &lt;&lt; 8) + hdr[PPP_HDRLEN+1];
++ if (seq != state-&gt;seqno) {
++#if !DEFLATE_DEBUG
++ if (state-&gt;debug)
++#endif
++ printf(&quot;z_decompress%d: bad seq # %d, expected %d\n&quot;,
++ state-&gt;unit, seq, state-&gt;seqno);
++ return DECOMP_ERROR;
++ }
++ ++state-&gt;seqno;
++
++ /* Allocate an output message block. */
++ mo = allocb(DECOMP_CHUNK + state-&gt;hdrlen, BPRI_MED);
++ if (mo == NULL)
++ return DECOMP_ERROR;
++ mo_head = mo;
++ mo-&gt;b_cont = NULL;
++ mo-&gt;b_rptr += state-&gt;hdrlen;
++ mo-&gt;b_wptr = wptr = mo-&gt;b_rptr;
++ ospace = DECOMP_CHUNK;
++ olen = 0;
++
++ /*
++ * Fill in the first part of the PPP header. The protocol field
++ * comes from the decompressed data.
++ */
++ wptr[0] = PPP_ADDRESS(hdr);
++ wptr[1] = PPP_CONTROL(hdr);
++ wptr[2] = 0;
++
++ /*
++ * Set up to call inflate. We set avail_out to 1 initially so we can
++ * look at the first byte of the output and decide whether we have
++ * a 1-byte or 2-byte protocol field.
++ */
++ state-&gt;strm.next_in = rptr;
++ state-&gt;strm.avail_in = mi-&gt;b_wptr - rptr;
++ mi = mi-&gt;b_cont;
++ flush = (mi == NULL)? Z_PACKET_FLUSH: Z_NO_FLUSH;
++ rlen = state-&gt;strm.avail_in + PPP_HDRLEN + DEFLATE_OVHD;
++ state-&gt;strm.next_out = wptr + 3;
++ state-&gt;strm.avail_out = 1;
++ decode_proto = 1;
++
++ /*
++ * Call inflate, supplying more input or output as needed.
++ */
++ for (;;) {
++ r = inflate(&amp;state-&gt;strm, flush);
++ if (r != Z_OK) {
++#if !DEFLATE_DEBUG
++ if (state-&gt;debug)
++#endif
++ printf(&quot;z_decompress%d: inflate returned %d (%s)\n&quot;,
++ state-&gt;unit, r, (state-&gt;strm.msg? state-&gt;strm.msg: &quot;&quot;));
++ freemsg(mo_head);
++ return DECOMP_FATALERROR;
++ }
++ if (flush != Z_NO_FLUSH &amp;&amp; state-&gt;strm.avail_out != 0)
++ break; /* all done */
++ if (state-&gt;strm.avail_in == 0 &amp;&amp; mi != NULL) {
++ state-&gt;strm.next_in = mi-&gt;b_rptr;
++ state-&gt;strm.avail_in = mi-&gt;b_wptr - mi-&gt;b_rptr;
++ rlen += state-&gt;strm.avail_in;
++ mi = mi-&gt;b_cont;
++ if (mi == NULL)
++ flush = Z_PACKET_FLUSH;
++ }
++ if (state-&gt;strm.avail_out == 0) {
++ if (decode_proto) {
++ state-&gt;strm.avail_out = ospace - PPP_HDRLEN;
++ if ((wptr[3] &amp; 1) == 0) {
++ /* 2-byte protocol field */
++ wptr[2] = wptr[3];
++ --state-&gt;strm.next_out;
++ ++state-&gt;strm.avail_out;
++ }
++ decode_proto = 0;
++ } else {
++ mo-&gt;b_wptr += ospace;
++ olen += ospace;
++ mo-&gt;b_cont = allocb(DECOMP_CHUNK, BPRI_MED);
++ mo = mo-&gt;b_cont;
++ if (mo == NULL) {
++ freemsg(mo_head);
++ return DECOMP_ERROR;
++ }
++ state-&gt;strm.next_out = mo-&gt;b_rptr;
++ state-&gt;strm.avail_out = ospace = DECOMP_CHUNK;
++ }
++ }
++ }
++ if (decode_proto) {
++ freemsg(mo_head);
++ return DECOMP_ERROR;
++ }
++ mo-&gt;b_wptr += ospace - state-&gt;strm.avail_out;
++ olen += ospace - state-&gt;strm.avail_out;
++
++#if DEFLATE_DEBUG
++ if (olen &gt; state-&gt;mru + PPP_HDRLEN)
++ printf(&quot;ppp_deflate%d: exceeded mru (%d &gt; %d)\n&quot;,
++ state-&gt;unit, olen, state-&gt;mru + PPP_HDRLEN);
++#endif
++
++ state-&gt;stats.unc_bytes += olen;
++ state-&gt;stats.unc_packets++;
++ state-&gt;stats.comp_bytes += rlen;
++ state-&gt;stats.comp_packets++;
++
++ *mop = mo_head;
++ return DECOMP_OK;
++}
++
++/*
++ * Incompressible data has arrived - add it to the history.
++ */
++static void
++z_incomp(arg, mi)
++ void *arg;
++ mblk_t *mi;
++{
++ struct deflate_state *state = (struct deflate_state *) arg;
++ u_char *rptr;
++ int rlen, proto, r;
++
++ /*
++ * Check that the protocol is one we handle.
++ */
++ rptr = mi-&gt;b_rptr;
++ if (rptr + PPP_HDRLEN &gt; mi-&gt;b_wptr) {
++ if (!pullupmsg(mi, PPP_HDRLEN))
++ return;
++ rptr = mi-&gt;b_rptr;
++ }
++ proto = PPP_PROTOCOL(rptr);
++ if (proto &gt; 0x3fff || proto == 0xfd || proto == 0xfb)
++ return;
++
++ ++state-&gt;seqno;
++
++ /*
++ * Iterate through the message blocks, adding the characters in them
++ * to the decompressor's history. For the first block, we start
++ * at the either the 1st or 2nd byte of the protocol field,
++ * depending on whether the protocol value is compressible.
++ */
++ rlen = mi-&gt;b_wptr - mi-&gt;b_rptr;
++ state-&gt;strm.next_in = rptr + 3;
++ state-&gt;strm.avail_in = rlen - 3;
++ if (proto &gt; 0xff) {
++ --state-&gt;strm.next_in;
++ ++state-&gt;strm.avail_in;
++ }
++ for (;;) {
++ r = inflateIncomp(&amp;state-&gt;strm);
++ if (r != Z_OK) {
++ /* gak! */
++#if !DEFLATE_DEBUG
++ if (state-&gt;debug)
++#endif
++ printf(&quot;z_incomp%d: inflateIncomp returned %d (%s)\n&quot;,
++ state-&gt;unit, r, (state-&gt;strm.msg? state-&gt;strm.msg: &quot;&quot;));
++ return;
++ }
++ mi = mi-&gt;b_cont;
++ if (mi == NULL)
++ break;
++ state-&gt;strm.next_in = mi-&gt;b_rptr;
++ state-&gt;strm.avail_in = mi-&gt;b_wptr - mi-&gt;b_rptr;
++ rlen += state-&gt;strm.avail_in;
++ }
++
++ /*
++ * Update stats.
++ */
++ state-&gt;stats.inc_bytes += rlen;
++ state-&gt;stats.inc_packets++;
++ state-&gt;stats.unc_bytes += rlen;
++ state-&gt;stats.unc_packets++;
++}
++
++#endif /* DO_DEFLATE */
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/modules/deflate.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pppmodulesif_pppc">Added: drakx/trunk/mdk-stage1/ppp/modules/if_ppp.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/modules/if_ppp.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/modules/if_ppp.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,865 @@
++/*
++ * if_ppp.c - a network interface connected to a STREAMS module.
++ *
++ * Copyright (c) 1994 The Australian National University.
++ * All rights reserved.
++ *
++ * Permission to use, copy, modify, and distribute this software and its
++ * documentation is hereby granted, provided that the above copyright
++ * notice appears in all copies. This software is provided without any
++ * warranty, express or implied. The Australian National University
++ * makes no representations about the suitability of this software for
++ * any purpose.
++ *
++ * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY
++ * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
++ * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
++ * THE AUSTRALIAN NATIONAL UNIVERSITY HAVE BEEN ADVISED OF THE POSSIBILITY
++ * OF SUCH DAMAGE.
++ *
++ * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
++ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
++ * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
++ * ON AN &quot;AS IS&quot; BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO
++ * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
++ * OR MODIFICATIONS.
++ *
++ * $Id: if_ppp.c 195720 2001-06-11 11:44:34Z gc $
++ */
++
++/*
++ * This file is used under SunOS 4 and Digital UNIX.
++ *
++ * This file provides the glue between PPP and IP.
++ */
++
++#define INET 1
++
++#include &lt;sys/types.h&gt;
++#include &lt;sys/param.h&gt;
++#include &lt;sys/errno.h&gt;
++#include &lt;sys/mbuf.h&gt;
++#include &lt;sys/socket.h&gt;
++#include &lt;net/if.h&gt;
++#include &lt;net/netisr.h&gt;
++#include &lt;net/ppp_defs.h&gt;
++#include &lt;net/pppio.h&gt;
++#include &lt;netinet/in.h&gt;
++#include &lt;netinet/in_var.h&gt;
++#ifdef __osf__
++#include &lt;sys/ioctl.h&gt;
++#include &lt;net/if_types.h&gt;
++#else
++#include &lt;sys/sockio.h&gt;
++#endif
++#include &quot;ppp_mod.h&quot;
++
++#include &lt;sys/stream.h&gt;
++
++#ifdef SNIT_SUPPORT
++#include &lt;sys/time.h&gt;
++#include &lt;net/nit_if.h&gt;
++#include &lt;netinet/if_ether.h&gt;
++#endif
++
++#ifdef __osf__
++#define SIOCSIFMTU SIOCSIPMTU
++#define SIOCGIFMTU SIOCRIPMTU
++#define IFA_ADDR(ifa) (*(ifa)-&gt;ifa_addr)
++#else
++#define IFA_ADDR(ifa) ((ifa)-&gt;ifa_addr)
++#endif
++
++#define ifr_mtu ifr_metric
++
++static int if_ppp_open __P((queue_t *, int, int, int));
++static int if_ppp_close __P((queue_t *, int));
++static int if_ppp_wput __P((queue_t *, mblk_t *));
++static int if_ppp_rput __P((queue_t *, mblk_t *));
++
++#define PPP_IF_ID 0x8021
++static struct module_info minfo = {
++ PPP_IF_ID, &quot;if_ppp&quot;, 0, INFPSZ, 4096, 128
++};
++
++static struct qinit rinit = {
++ if_ppp_rput, NULL, if_ppp_open, if_ppp_close, NULL, &amp;minfo, NULL
++};
++
++static struct qinit winit = {
++ if_ppp_wput, NULL, NULL, NULL, NULL, &amp;minfo, NULL
++};
++
++struct streamtab if_pppinfo = {
++ &amp;rinit, &amp;winit, NULL, NULL
++};
++
++typedef struct if_ppp_state {
++ int unit;
++ queue_t *q;
++ int flags;
++} if_ppp_t;
++
++/* Values for flags */
++#define DBGLOG 1
++
++static int if_ppp_count; /* Number of currently-active streams */
++
++static int ppp_nalloc; /* Number of elements of ifs and states */
++static struct ifnet **ifs; /* Array of pointers to interface structs */
++static if_ppp_t **states; /* Array of pointers to state structs */
++
++static int if_ppp_output __P((struct ifnet *, struct mbuf *,
++ struct sockaddr *));
++static int if_ppp_ioctl __P((struct ifnet *, u_int, caddr_t));
++static struct mbuf *make_mbufs __P((mblk_t *, int));
++static mblk_t *make_message __P((struct mbuf *, int));
++
++#ifdef SNIT_SUPPORT
++/* Fake ether header for SNIT */
++static struct ether_header snit_ehdr = {{0}, {0}, ETHERTYPE_IP};
++#endif
++
++#ifndef __osf__
++static void ppp_if_detach __P((struct ifnet *));
++
++/*
++ * Detach all the interfaces before unloading.
++ * Not sure this works.
++ */
++int
++if_ppp_unload()
++{
++ int i;
++
++ if (if_ppp_count &gt; 0)
++ return EBUSY;
++ for (i = 0; i &lt; ppp_nalloc; ++i)
++ if (ifs[i] != 0)
++ ppp_if_detach(ifs[i]);
++ if (ifs) {
++ FREE(ifs, ppp_nalloc * sizeof (struct ifnet *));
++ FREE(states, ppp_nalloc * sizeof (struct if_ppp_t *));
++ }
++ ppp_nalloc = 0;
++ return 0;
++}
++#endif /* __osf__ */
++
++/*
++ * STREAMS module entry points.
++ */
++static int
++if_ppp_open(q, dev, flag, sflag)
++ queue_t *q;
++ int dev;
++ int flag, sflag;
++{
++ if_ppp_t *sp;
++
++ if (q-&gt;q_ptr == 0) {
++ sp = (if_ppp_t *) ALLOC_SLEEP(sizeof (if_ppp_t));
++ if (sp == 0)
++ return OPENFAIL;
++ bzero(sp, sizeof (if_ppp_t));
++ q-&gt;q_ptr = (caddr_t) sp;
++ WR(q)-&gt;q_ptr = (caddr_t) sp;
++ sp-&gt;unit = -1; /* no interface unit attached at present */
++ sp-&gt;q = WR(q);
++ sp-&gt;flags = 0;
++ ++if_ppp_count;
++ }
++ return 0;
++}
++
++static int
++if_ppp_close(q, flag)
++ queue_t *q;
++ int flag;
++{
++ if_ppp_t *sp;
++ struct ifnet *ifp;
++
++ sp = (if_ppp_t *) q-&gt;q_ptr;
++ if (sp != 0) {
++ if (sp-&gt;flags &amp; DBGLOG)
++ printf(&quot;if_ppp closed, q=%x sp=%x\n&quot;, q, sp);
++ if (sp-&gt;unit &gt;= 0) {
++ if (sp-&gt;unit &lt; ppp_nalloc) {
++ states[sp-&gt;unit] = 0;
++ ifp = ifs[sp-&gt;unit];
++ if (ifp != 0)
++ ifp-&gt;if_flags &amp;= ~(IFF_UP | IFF_RUNNING);
++#ifdef DEBUG
++ } else {
++ printf(&quot;if_ppp: unit %d nonexistent!\n&quot;, sp-&gt;unit);
++#endif
++ }
++ }
++ FREE(sp, sizeof (if_ppp_t));
++ --if_ppp_count;
++ }
++ return 0;
++}
++
++static int
++if_ppp_wput(q, mp)
++ queue_t *q;
++ mblk_t *mp;
++{
++ if_ppp_t *sp;
++ struct iocblk *iop;
++ int error, unit;
++ struct ifnet *ifp;
++
++ sp = (if_ppp_t *) q-&gt;q_ptr;
++ switch (mp-&gt;b_datap-&gt;db_type) {
++ case M_DATA:
++ /*
++ * Now why would we be getting data coming in here??
++ */
++ if (sp-&gt;flags &amp; DBGLOG)
++ printf(&quot;if_ppp: got M_DATA len=%d\n&quot;, msgdsize(mp));
++ freemsg(mp);
++ break;
++
++ case M_IOCTL:
++ iop = (struct iocblk *) mp-&gt;b_rptr;
++ error = EINVAL;
++
++ if (sp-&gt;flags &amp; DBGLOG)
++ printf(&quot;if_ppp: got ioctl cmd=%x count=%d\n&quot;,
++ iop-&gt;ioc_cmd, iop-&gt;ioc_count);
++
++ switch (iop-&gt;ioc_cmd) {
++ case PPPIO_NEWPPA: /* well almost */
++ if (iop-&gt;ioc_count != sizeof(int) || sp-&gt;unit &gt;= 0)
++ break;
++ if ((error = NOTSUSER()) != 0)
++ break;
++ unit = *(int *)mp-&gt;b_cont-&gt;b_rptr;
++
++ /* Check that this unit isn't already in use */
++ if (unit &lt; ppp_nalloc &amp;&amp; states[unit] != 0) {
++ error = EADDRINUSE;
++ break;
++ }
++
++ /* Extend ifs and states arrays if necessary. */
++ error = ENOSR;
++ if (unit &gt;= ppp_nalloc) {
++ int newn;
++ struct ifnet **newifs;
++ if_ppp_t **newstates;
++
++ newn = unit + 4;
++ if (sp-&gt;flags &amp; DBGLOG)
++ printf(&quot;if_ppp: extending ifs to %d\n&quot;, newn);
++ newifs = (struct ifnet **)
++ ALLOC_NOSLEEP(newn * sizeof (struct ifnet *));
++ if (newifs == 0)
++ break;
++ bzero(newifs, newn * sizeof (struct ifnet *));
++ newstates = (if_ppp_t **)
++ ALLOC_NOSLEEP(newn * sizeof (struct if_ppp_t *));
++ if (newstates == 0) {
++ FREE(newifs, newn * sizeof (struct ifnet *));
++ break;
++ }
++ bzero(newstates, newn * sizeof (struct if_ppp_t *));
++ bcopy(ifs, newifs, ppp_nalloc * sizeof(struct ifnet *));
++ bcopy(states, newstates, ppp_nalloc * sizeof(if_ppp_t *));
++ if (ifs) {
++ FREE(ifs, ppp_nalloc * sizeof(struct ifnet *));
++ FREE(states, ppp_nalloc * sizeof(if_ppp_t *));
++ }
++ ifs = newifs;
++ states = newstates;
++ ppp_nalloc = newn;
++ }
++
++ /* Allocate a new ifnet struct if necessary. */
++ ifp = ifs[unit];
++ if (ifp == 0) {
++ ifp = (struct ifnet *) ALLOC_NOSLEEP(sizeof (struct ifnet));
++ if (ifp == 0)
++ break;
++ bzero(ifp, sizeof (struct ifnet));
++ ifs[unit] = ifp;
++ ifp-&gt;if_name = &quot;ppp&quot;;
++ ifp-&gt;if_unit = unit;
++ ifp-&gt;if_mtu = PPP_MTU;
++ ifp-&gt;if_flags = IFF_POINTOPOINT | IFF_RUNNING;
++#ifndef __osf__
++#ifdef IFF_MULTICAST
++ ifp-&gt;if_flags |= IFF_MULTICAST;
++#endif
++#endif /* __osf__ */
++ ifp-&gt;if_output = if_ppp_output;
++#ifdef __osf__
++ ifp-&gt;if_version = &quot;Point-to-Point Protocol, version 2.3.11&quot;;
++ ifp-&gt;if_mediamtu = PPP_MTU;
++ ifp-&gt;if_type = IFT_PPP;
++ ifp-&gt;if_hdrlen = PPP_HDRLEN;
++ ifp-&gt;if_addrlen = 0;
++ ifp-&gt;if_flags |= IFF_NOARP | IFF_SIMPLEX | IFF_NOTRAILERS;
++#ifdef IFF_VAR_MTU
++ ifp-&gt;if_flags |= IFF_VAR_MTU;
++#endif
++#ifdef NETMASTERCPU
++ ifp-&gt;if_affinity = NETMASTERCPU;
++#endif
++#endif
++ ifp-&gt;if_ioctl = if_ppp_ioctl;
++ ifp-&gt;if_snd.ifq_maxlen = IFQ_MAXLEN;
++ if_attach(ifp);
++ if (sp-&gt;flags &amp; DBGLOG)
++ printf(&quot;if_ppp: created unit %d\n&quot;, unit);
++ } else {
++ ifp-&gt;if_mtu = PPP_MTU;
++ ifp-&gt;if_flags |= IFF_RUNNING;
++ }
++
++ states[unit] = sp;
++ sp-&gt;unit = unit;
++
++ error = 0;
++ iop-&gt;ioc_count = 0;
++ if (sp-&gt;flags &amp; DBGLOG)
++ printf(&quot;if_ppp: attached unit %d, sp=%x q=%x\n&quot;, unit,
++ sp, sp-&gt;q);
++ break;
++
++ case PPPIO_DEBUG:
++ error = -1;
++ if (iop-&gt;ioc_count == sizeof(int)) {
++ if (*(int *)mp-&gt;b_cont-&gt;b_rptr == PPPDBG_LOG + PPPDBG_IF) {
++ printf(&quot;if_ppp: debug log enabled, q=%x sp=%x\n&quot;, q, sp);
++ sp-&gt;flags |= DBGLOG;
++ error = 0;
++ iop-&gt;ioc_count = 0;
++ }
++ }
++ break;
++
++ default:
++ error = -1;
++ break;
++ }
++
++ if (sp-&gt;flags &amp; DBGLOG)
++ printf(&quot;if_ppp: ioctl result %d\n&quot;, error);
++ if (error &lt; 0)
++ putnext(q, mp);
++ else if (error == 0) {
++ mp-&gt;b_datap-&gt;db_type = M_IOCACK;
++ qreply(q, mp);
++ } else {
++ mp-&gt;b_datap-&gt;db_type = M_IOCNAK;
++ iop-&gt;ioc_count = 0;
++ iop-&gt;ioc_error = error;
++ qreply(q, mp);
++ }
++ break;
++
++ default:
++ putnext(q, mp);
++ }
++ return 0;
++}
++
++static int
++if_ppp_rput(q, mp)
++ queue_t *q;
++ mblk_t *mp;
++{
++ if_ppp_t *sp;
++ int proto, s;
++ struct mbuf *mb;
++ struct ifqueue *inq;
++ struct ifnet *ifp;
++ int len;
++
++ sp = (if_ppp_t *) q-&gt;q_ptr;
++ switch (mp-&gt;b_datap-&gt;db_type) {
++ case M_DATA:
++ /*
++ * Convert the message into an mbuf chain
++ * and inject it into the network code.
++ */
++ if (sp-&gt;flags &amp; DBGLOG)
++ printf(&quot;if_ppp: rput pkt len %d data %x %x %x %x %x %x %x %x\n&quot;,
++ msgdsize(mp), mp-&gt;b_rptr[0], mp-&gt;b_rptr[1], mp-&gt;b_rptr[2],
++ mp-&gt;b_rptr[3], mp-&gt;b_rptr[4], mp-&gt;b_rptr[5], mp-&gt;b_rptr[6],
++ mp-&gt;b_rptr[7]);
++
++ if (sp-&gt;unit &lt; 0) {
++ freemsg(mp);
++ break;
++ }
++ if (sp-&gt;unit &gt;= ppp_nalloc || (ifp = ifs[sp-&gt;unit]) == 0) {
++#ifdef DEBUG
++ printf(&quot;if_ppp: no unit %d!\n&quot;, sp-&gt;unit);
++#endif
++ freemsg(mp);
++ break;
++ }
++
++ if ((ifp-&gt;if_flags &amp; IFF_UP) == 0) {
++ freemsg(mp);
++ break;
++ }
++ ++ifp-&gt;if_ipackets;
++
++ proto = PPP_PROTOCOL(mp-&gt;b_rptr);
++ adjmsg(mp, PPP_HDRLEN);
++ len = msgdsize(mp);
++ mb = make_mbufs(mp, sizeof(struct ifnet *));
++ freemsg(mp);
++ if (mb == NULL) {
++ if (sp-&gt;flags &amp; DBGLOG)
++ printf(&quot;if_ppp%d: make_mbufs failed\n&quot;, ifp-&gt;if_unit);
++ ++ifp-&gt;if_ierrors;
++ break;
++ }
++
++#ifdef SNIT_SUPPORT
++ if (proto == PPP_IP &amp;&amp; (ifp-&gt;if_flags &amp; IFF_PROMISC)) {
++ struct nit_if nif;
++
++ nif.nif_header = (caddr_t) &amp;snit_ehdr;
++ nif.nif_hdrlen = sizeof(snit_ehdr);
++ nif.nif_bodylen = len;
++ nif.nif_promisc = 0;
++ snit_intr(ifp, mb, &amp;nif);
++ }
++#endif
++
++/*
++ * For Digital UNIX, there's space set aside in the header mbuf
++ * for the interface info.
++ *
++ * For Sun it's smuggled around via a pointer at the front of the mbuf.
++ */
++#ifdef __osf__
++ mb-&gt;m_pkthdr.rcvif = ifp;
++ mb-&gt;m_pkthdr.len = len;
++#else
++ mb-&gt;m_off -= sizeof(struct ifnet *);
++ mb-&gt;m_len += sizeof(struct ifnet *);
++ *mtod(mb, struct ifnet **) = ifp;
++#endif
++
++ inq = 0;
++ switch (proto) {
++ case PPP_IP:
++ inq = &amp;ipintrq;
++ schednetisr(NETISR_IP);
++ }
++
++ if (inq != 0) {
++ s = splhigh();
++ if (IF_QFULL(inq)) {
++ IF_DROP(inq);
++ ++ifp-&gt;if_ierrors;
++ if (sp-&gt;flags &amp; DBGLOG)
++ printf(&quot;if_ppp: inq full, proto=%x\n&quot;, proto);
++ m_freem(mb);
++ } else {
++ IF_ENQUEUE(inq, mb);
++ }
++ splx(s);
++ } else {
++ if (sp-&gt;flags &amp; DBGLOG)
++ printf(&quot;if_ppp%d: proto=%x?\n&quot;, ifp-&gt;if_unit, proto);
++ ++ifp-&gt;if_ierrors;
++ m_freem(mb);
++ }
++ break;
++
++ default:
++ putnext(q, mp);
++ }
++ return 0;
++}
++
++/*
++ * Network code wants to output a packet.
++ * Turn it into a STREAMS message and send it down.
++ */
++static int
++if_ppp_output(ifp, m0, dst)
++ struct ifnet *ifp;
++ struct mbuf *m0;
++ struct sockaddr *dst;
++{
++ mblk_t *mp;
++ int proto, s;
++ if_ppp_t *sp;
++ u_char *p;
++
++ if ((ifp-&gt;if_flags &amp; IFF_UP) == 0) {
++ m_freem(m0);
++ return ENETDOWN;
++ }
++
++ if ((unsigned)ifp-&gt;if_unit &gt;= ppp_nalloc) {
++#ifdef DEBUG
++ printf(&quot;if_ppp_output: unit %d?\n&quot;, ifp-&gt;if_unit);
++#endif
++ m_freem(m0);
++ return EINVAL;
++ }
++ sp = states[ifp-&gt;if_unit];
++ if (sp == 0) {
++#ifdef DEBUG
++ printf(&quot;if_ppp_output: no queue?\n&quot;);
++#endif
++ m_freem(m0);
++ return ENETDOWN;
++ }
++
++ if (sp-&gt;flags &amp; DBGLOG) {
++ p = mtod(m0, u_char *);
++ printf(&quot;if_ppp_output%d: af=%d data=%x %x %x %x %x %x %x %x q=%x\n&quot;,
++ ifp-&gt;if_unit, dst-&gt;sa_family, p[0], p[1], p[2], p[3], p[4],
++ p[5], p[6], p[7], sp-&gt;q);
++ }
++
++ switch (dst-&gt;sa_family) {
++ case AF_INET:
++ proto = PPP_IP;
++#ifdef SNIT_SUPPORT
++ if (ifp-&gt;if_flags &amp; IFF_PROMISC) {
++ struct nit_if nif;
++ struct mbuf *m;
++ int len;
++
++ for (len = 0, m = m0; m != NULL; m = m-&gt;m_next)
++ len += m-&gt;m_len;
++ nif.nif_header = (caddr_t) &amp;snit_ehdr;
++ nif.nif_hdrlen = sizeof(snit_ehdr);
++ nif.nif_bodylen = len;
++ nif.nif_promisc = 0;
++ snit_intr(ifp, m0, &amp;nif);
++ }
++#endif
++ break;
++
++ default:
++ m_freem(m0);
++ return EAFNOSUPPORT;
++ }
++
++ ++ifp-&gt;if_opackets;
++ mp = make_message(m0, PPP_HDRLEN);
++ m_freem(m0);
++ if (mp == 0) {
++ ++ifp-&gt;if_oerrors;
++ return ENOBUFS;
++ }
++ mp-&gt;b_rptr -= PPP_HDRLEN;
++ mp-&gt;b_rptr[0] = PPP_ALLSTATIONS;
++ mp-&gt;b_rptr[1] = PPP_UI;
++ mp-&gt;b_rptr[2] = proto &gt;&gt; 8;
++ mp-&gt;b_rptr[3] = proto;
++
++ s = splstr();
++ if (sp-&gt;flags &amp; DBGLOG)
++ printf(&quot;if_ppp: putnext(%x, %x), r=%x w=%x p=%x\n&quot;,
++ sp-&gt;q, mp, mp-&gt;b_rptr, mp-&gt;b_wptr, proto);
++ putnext(sp-&gt;q, mp);
++ splx(s);
++
++ return 0;
++}
++
++/*
++ * Socket ioctl routine for ppp interfaces.
++ */
++static int
++if_ppp_ioctl(ifp, cmd, data)
++ struct ifnet *ifp;
++ u_int cmd;
++ caddr_t data;
++{
++ int s, error;
++ struct ifreq *ifr = (struct ifreq *) data;
++ struct ifaddr *ifa = (struct ifaddr *) data;
++ u_short mtu;
++
++ error = 0;
++ s = splimp();
++ switch (cmd) {
++ case SIOCSIFFLAGS:
++ if ((ifp-&gt;if_flags &amp; IFF_RUNNING) == 0)
++ ifp-&gt;if_flags &amp;= ~IFF_UP;
++ break;
++
++ case SIOCSIFADDR:
++ if (IFA_ADDR(ifa).sa_family != AF_INET)
++ error = EAFNOSUPPORT;
++ break;
++
++ case SIOCSIFDSTADDR:
++ if (IFA_ADDR(ifa).sa_family != AF_INET)
++ error = EAFNOSUPPORT;
++ break;
++
++ case SIOCSIFMTU:
++ if ((error = NOTSUSER()) != 0)
++ break;
++#ifdef __osf__
++ /* this hack is necessary because ifioctl checks ifr_data
++ * in 4.0 and 5.0, but ifr_data and ifr_metric overlay each
++ * other in the definition of struct ifreq so pppd can't set both.
++ */
++ bcopy(ifr-&gt;ifr_data, &amp;mtu, sizeof (u_short));
++ ifr-&gt;ifr_mtu = mtu;
++#endif
++
++ if (ifr-&gt;ifr_mtu &lt; PPP_MINMTU || ifr-&gt;ifr_mtu &gt; PPP_MAXMTU) {
++ error = EINVAL;
++ break;
++ }
++ ifp-&gt;if_mtu = ifr-&gt;ifr_mtu;
++ break;
++
++ case SIOCGIFMTU:
++ ifr-&gt;ifr_mtu = ifp-&gt;if_mtu;
++ break;
++
++ case SIOCADDMULTI:
++ case SIOCDELMULTI:
++ switch(ifr-&gt;ifr_addr.sa_family) {
++ case AF_INET:
++ break;
++ default:
++ error = EAFNOSUPPORT;
++ break;
++ }
++ break;
++
++ default:
++ error = EINVAL;
++ }
++ splx(s);
++ return (error);
++}
++
++/*
++ * Turn a STREAMS message into an mbuf chain.
++ */
++static struct mbuf *
++make_mbufs(mp, off)
++ mblk_t *mp;
++ int off;
++{
++ struct mbuf *head, **prevp, *m;
++ int len, space, n;
++ unsigned char *cp, *dp;
++
++ len = msgdsize(mp);
++ if (len == 0)
++ return 0;
++ prevp = &amp;head;
++ space = 0;
++ cp = mp-&gt;b_rptr;
++#ifdef __osf__
++ MGETHDR(m, M_DONTWAIT, MT_DATA);
++ m-&gt;m_len = 0;
++ space = MHLEN;
++ *prevp = m;
++ prevp = &amp;m-&gt;m_next;
++ dp = mtod(m, unsigned char *);
++ len -= space;
++ off = 0;
++#endif
++ for (;;) {
++ while (cp &gt;= mp-&gt;b_wptr) {
++ mp = mp-&gt;b_cont;
++ if (mp == 0) {
++ *prevp = 0;
++ return head;
++ }
++ cp = mp-&gt;b_rptr;
++ }
++ n = mp-&gt;b_wptr - cp;
++ if (space == 0) {
++ MGET(m, M_DONTWAIT, MT_DATA);
++ *prevp = m;
++ if (m == 0) {
++ if (head != 0)
++ m_freem(head);
++ return 0;
++ }
++ if (len + off &gt; 2 * MLEN) {
++#ifdef __osf__
++ MCLGET(m, M_DONTWAIT);
++#else
++ MCLGET(m);
++#endif
++ }
++#ifdef __osf__
++ space = ((m-&gt;m_flags &amp; M_EXT) ? MCLBYTES : MLEN);
++#else
++ space = (m-&gt;m_off &gt; MMAXOFF? MCLBYTES: MLEN) - off;
++ m-&gt;m_off += off;
++#endif
++ m-&gt;m_len = 0;
++ len -= space;
++ dp = mtod(m, unsigned char *);
++ off = 0;
++ prevp = &amp;m-&gt;m_next;
++ }
++ if (n &gt; space)
++ n = space;
++ bcopy(cp, dp, n);
++ cp += n;
++ dp += n;
++ space -= n;
++ m-&gt;m_len += n;
++ }
++}
++
++/*
++ * Turn an mbuf chain into a STREAMS message.
++ */
++#define ALLOCB_MAX 4096
++
++static mblk_t *
++make_message(m, off)
++ struct mbuf *m;
++ int off;
++{
++ mblk_t *head, **prevp, *mp;
++ int len, space, n, nb;
++ unsigned char *cp, *dp;
++ struct mbuf *nm;
++
++ len = 0;
++ for (nm = m; nm != 0; nm = nm-&gt;m_next)
++ len += nm-&gt;m_len;
++ prevp = &amp;head;
++ space = 0;
++ cp = mtod(m, unsigned char *);
++ nb = m-&gt;m_len;
++ for (;;) {
++ while (nb &lt;= 0) {
++ m = m-&gt;m_next;
++ if (m == 0) {
++ *prevp = 0;
++ return head;
++ }
++ cp = mtod(m, unsigned char *);
++ nb = m-&gt;m_len;
++ }
++ if (space == 0) {
++ space = len + off;
++ if (space &gt; ALLOCB_MAX)
++ space = ALLOCB_MAX;
++ mp = allocb(space, BPRI_LO);
++ *prevp = mp;
++ if (mp == 0) {
++ if (head != 0)
++ freemsg(head);
++ return 0;
++ }
++ dp = mp-&gt;b_rptr += off;
++ space -= off;
++ len -= space;
++ off = 0;
++ prevp = &amp;mp-&gt;b_cont;
++ }
++ n = nb &lt; space? nb: space;
++ bcopy(cp, dp, n);
++ cp += n;
++ dp += n;
++ nb -= n;
++ space -= n;
++ mp-&gt;b_wptr = dp;
++ }
++}
++
++/*
++ * Digital UNIX doesn't allow for removing ifnet structures
++ * from the list. But then we're not using this as a loadable
++ * module anyway, so that's OK.
++ *
++ * Under SunOS, this should allow the module to be unloaded.
++ * Unfortunately, it doesn't seem to detach all the references,
++ * so your system may well crash after you unload this module :-(
++ */
++#ifndef __osf__
++
++/*
++ * Remove an interface from the system.
++ * This routine contains magic.
++ */
++#include &lt;net/route.h&gt;
++#include &lt;netinet/in_pcb.h&gt;
++#include &lt;netinet/ip_var.h&gt;
++#include &lt;netinet/tcp.h&gt;
++#include &lt;netinet/tcp_timer.h&gt;
++#include &lt;netinet/tcp_var.h&gt;
++#include &lt;netinet/udp.h&gt;
++#include &lt;netinet/udp_var.h&gt;
++
++static void
++ppp_if_detach(ifp)
++ struct ifnet *ifp;
++{
++ int s;
++ struct inpcb *pcb;
++ struct ifaddr *ifa;
++ struct in_ifaddr **inap;
++ struct ifnet **ifpp;
++
++ s = splhigh();
++
++ /*
++ * Clear the interface from any routes currently cached in
++ * TCP or UDP protocol control blocks.
++ */
++ for (pcb = tcb.inp_next; pcb != &amp;tcb; pcb = pcb-&gt;inp_next)
++ if (pcb-&gt;inp_route.ro_rt &amp;&amp; pcb-&gt;inp_route.ro_rt-&gt;rt_ifp == ifp)
++ in_losing(pcb);
++ for (pcb = udb.inp_next; pcb != &amp;udb; pcb = pcb-&gt;inp_next)
++ if (pcb-&gt;inp_route.ro_rt &amp;&amp; pcb-&gt;inp_route.ro_rt-&gt;rt_ifp == ifp)
++ in_losing(pcb);
++
++ /*
++ * Delete routes through all addresses of the interface.
++ */
++ for (ifa = ifp-&gt;if_addrlist; ifa != 0; ifa = ifa-&gt;ifa_next) {
++ rtinit(ifa, ifa, SIOCDELRT, RTF_HOST);
++ rtinit(ifa, ifa, SIOCDELRT, 0);
++ }
++
++ /*
++ * Unlink the interface's address(es) from the in_ifaddr list.
++ */
++ for (inap = &amp;in_ifaddr; *inap != 0; ) {
++ if ((*inap)-&gt;ia_ifa.ifa_ifp == ifp)
++ *inap = (*inap)-&gt;ia_next;
++ else
++ inap = &amp;(*inap)-&gt;ia_next;
++ }
++
++ /*
++ * Delete the interface from the ifnet list.
++ */
++ for (ifpp = &amp;ifnet; (*ifpp) != 0; ) {
++ if (*ifpp == ifp)
++ break;
++ ifpp = &amp;(*ifpp)-&gt;if_next;
++ }
++ if (*ifpp == 0)
++ printf(&quot;couldn't find interface ppp%d in ifnet list\n&quot;, ifp-&gt;if_unit);
++ else
++ *ifpp = ifp-&gt;if_next;
++
++ splx(s);
++}
++
++#endif /* __osf__ */
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/modules/if_ppp.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pppmodulespppc">Added: drakx/trunk/mdk-stage1/ppp/modules/ppp.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/modules/ppp.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/modules/ppp.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,2486 @@
++/*
++ * ppp.c - STREAMS multiplexing pseudo-device driver for PPP.
++ *
++ * Copyright (c) 1994 The Australian National University.
++ * All rights reserved.
++ *
++ * Permission to use, copy, modify, and distribute this software and its
++ * documentation is hereby granted, provided that the above copyright
++ * notice appears in all copies. This software is provided without any
++ * warranty, express or implied. The Australian National University
++ * makes no representations about the suitability of this software for
++ * any purpose.
++ *
++ * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY
++ * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
++ * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
++ * THE AUSTRALIAN NATIONAL UNIVERSITY HAS BEEN ADVISED OF THE POSSIBILITY
++ * OF SUCH DAMAGE.
++ *
++ * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
++ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
++ * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
++ * ON AN &quot;AS IS&quot; BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO
++ * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
++ * OR MODIFICATIONS.
++ *
++ * $Id: ppp.c 195720 2001-06-11 11:44:34Z gc $
++ */
++
++/*
++ * This file is used under Solaris 2, SVR4, SunOS 4, and Digital UNIX.
++ */
++
++#include &lt;sys/types.h&gt;
++#include &lt;sys/param.h&gt;
++#include &lt;sys/stat.h&gt;
++#include &lt;sys/stream.h&gt;
++#include &lt;sys/stropts.h&gt;
++#include &lt;sys/errno.h&gt;
++#ifdef __osf__
++#include &lt;sys/ioctl.h&gt;
++#include &lt;sys/cmn_err.h&gt;
++#define queclass(mp) ((mp)-&gt;b_band &amp; QPCTL)
++#else
++#include &lt;sys/ioccom.h&gt;
++#endif
++#include &lt;sys/time.h&gt;
++#ifdef SVR4
++#include &lt;sys/cmn_err.h&gt;
++#include &lt;sys/conf.h&gt;
++#include &lt;sys/dlpi.h&gt;
++#include &lt;sys/ddi.h&gt;
++#ifdef SOL2
++#include &lt;sys/ksynch.h&gt;
++#include &lt;sys/kstat.h&gt;
++#include &lt;sys/sunddi.h&gt;
++#include &lt;sys/ethernet.h&gt;
++#else
++#include &lt;sys/socket.h&gt;
++#include &lt;sys/sockio.h&gt;
++#include &lt;net/if.h&gt;
++#include &lt;netinet/in.h&gt;
++#endif /* SOL2 */
++#else /* not SVR4 */
++#include &lt;sys/user.h&gt;
++#endif /* SVR4 */
++#include &lt;net/ppp_defs.h&gt;
++#include &lt;net/pppio.h&gt;
++#include &quot;ppp_mod.h&quot;
++
++/*
++ * Modifications marked with #ifdef PRIOQ are for priority queueing of
++ * interactive traffic, and are due to Marko Zec &lt;zec@japa.tel.fer.hr&gt;.
++ */
++#ifdef PRIOQ
++#endif /* PRIOQ */
++
++#include &lt;netinet/in.h&gt; /* leave this outside of PRIOQ for htons */
++
++#ifdef __STDC__
++#define __P(x) x
++#else
++#define __P(x) ()
++#endif
++
++/*
++ * The IP module may use this SAP value for IP packets.
++ */
++#ifndef ETHERTYPE_IP
++#define ETHERTYPE_IP 0x800
++#endif
++
++#if !defined(ETHERTYPE_IPV6)
++#define ETHERTYPE_IPV6 0x86dd
++#endif /* !defined(ETHERTYPE_IPV6) */
++
++#if !defined(ETHERTYPE_ALLSAP) &amp;&amp; defined(SOL2)
++#define ETHERTYPE_ALLSAP 0
++#endif /* !defined(ETHERTYPE_ALLSAP) &amp;&amp; defined(SOL2) */
++
++#if !defined(PPP_ALLSAP) &amp;&amp; defined(SOL2)
++#define PPP_ALLSAP PPP_ALLSTATIONS
++#endif /* !defined(PPP_ALLSAP) &amp;&amp; defined(SOL2) */
++
++extern time_t time;
++
++#ifdef SOL2
++/*
++ * We use this reader-writer lock to ensure that the lower streams
++ * stay connected to the upper streams while the lower-side put and
++ * service procedures are running. Essentially it is an existence
++ * lock for the upper stream associated with each lower stream.
++ */
++krwlock_t ppp_lower_lock;
++#define LOCK_LOWER_W rw_enter(&amp;ppp_lower_lock, RW_WRITER)
++#define LOCK_LOWER_R rw_enter(&amp;ppp_lower_lock, RW_READER)
++#define TRYLOCK_LOWER_R rw_tryenter(&amp;ppp_lower_lock, RW_READER)
++#define UNLOCK_LOWER rw_exit(&amp;ppp_lower_lock)
++
++#define MT_ENTER(x) mutex_enter(x)
++#define MT_EXIT(x) mutex_exit(x)
++
++/*
++ * Notes on multithreaded implementation for Solaris 2:
++ *
++ * We use an inner perimeter around each queue pair and an outer
++ * perimeter around the whole driver. The inner perimeter is
++ * entered exclusively for all entry points (open, close, put,
++ * service). The outer perimeter is entered exclusively for open
++ * and close and shared for put and service. This is all done for
++ * us by the streams framework.
++ *
++ * I used to think that the perimeters were entered for the lower
++ * streams' put and service routines as well as for the upper streams'.
++ * Because of problems experienced by people, and after reading the
++ * documentation more closely, I now don't think that is true. So we
++ * now use ppp_lower_lock to give us an existence guarantee on the
++ * upper stream controlling each lower stream.
++ *
++ * Shared entry to the outer perimeter protects the existence of all
++ * the upper streams and their upperstr_t structures, and guarantees
++ * that the following fields of any upperstr_t won't change:
++ * nextmn, next, nextppa. It guarantees that the lowerq field of an
++ * upperstr_t won't go from non-zero to zero, that the global `ppas'
++ * won't change and that the no lower stream will get unlinked.
++ *
++ * Shared (reader) access to ppa_lower_lock guarantees that no lower
++ * stream will be unlinked and that the lowerq field of all upperstr_t
++ * structures won't change.
++ */
++
++#else /* SOL2 */
++#define LOCK_LOWER_W 0
++#define LOCK_LOWER_R 0
++#define TRYLOCK_LOWER_R 1
++#define UNLOCK_LOWER 0
++#define MT_ENTER(x) 0
++#define MT_EXIT(x) 0
++
++#endif /* SOL2 */
++
++/*
++ * Private information; one per upper stream.
++ */
++typedef struct upperstr {
++ minor_t mn; /* minor device number */
++ struct upperstr *nextmn; /* next minor device */
++ queue_t *q; /* read q associated with this upper stream */
++ int flags; /* flag bits, see below */
++ int state; /* current DLPI state */
++ int sap; /* service access point */
++ int req_sap; /* which SAP the DLPI client requested */
++ struct upperstr *ppa; /* control stream for our ppa */
++ struct upperstr *next; /* next stream for this ppa */
++ uint ioc_id; /* last ioctl ID for this stream */
++ enum NPmode npmode; /* what to do with packets on this SAP */
++ unsigned char rblocked; /* flow control has blocked upper read strm */
++ /* N.B. rblocked is only changed by control stream's put/srv procs */
++ /*
++ * There is exactly one control stream for each PPA.
++ * The following fields are only used for control streams.
++ */
++ int ppa_id;
++ queue_t *lowerq; /* write queue attached below this PPA */
++ struct upperstr *nextppa; /* next control stream */
++ int mru;
++ int mtu;
++ struct pppstat stats; /* statistics */
++ time_t last_sent; /* time last NP packet sent */
++ time_t last_recv; /* time last NP packet rcvd */
++#ifdef SOL2
++ kmutex_t stats_lock; /* lock for stats updates */
++ kstat_t *kstats; /* stats for netstat */
++#endif /* SOL2 */
++#ifdef LACHTCP
++ int ifflags;
++ char ifname[IFNAMSIZ];
++ struct ifstats ifstats;
++#endif /* LACHTCP */
++} upperstr_t;
++
++/* Values for flags */
++#define US_PRIV 1 /* stream was opened by superuser */
++#define US_CONTROL 2 /* stream is a control stream */
++#define US_BLOCKED 4 /* flow ctrl has blocked lower write stream */
++#define US_LASTMOD 8 /* no PPP modules below us */
++#define US_DBGLOG 0x10 /* log various occurrences */
++#define US_RBLOCKED 0x20 /* flow ctrl has blocked upper read stream */
++
++#if defined(SOL2)
++#if DL_CURRENT_VERSION &gt;= 2
++#define US_PROMISC 0x40 /* stream is promiscuous */
++#endif /* DL_CURRENT_VERSION &gt;= 2 */
++#define US_RAWDATA 0x80 /* raw M_DATA, no DLPI header */
++#endif /* defined(SOL2) */
++
++#ifdef PRIOQ
++static u_char max_band=0;
++static u_char def_band=0;
++
++#define IPPORT_DEFAULT 65535
++
++/*
++ * Port priority table
++ * Highest priority ports are listed first, lowest are listed last.
++ * ICMP &amp; packets using unlisted ports will be treated as &quot;default&quot;.
++ * If IPPORT_DEFAULT is not listed here, &quot;default&quot; packets will be
++ * assigned lowest priority.
++ * Each line should be terminated with &quot;0&quot;.
++ * Line containing only &quot;0&quot; marks the end of the list.
++ */
++
++static u_short prioq_table[]= {
++ 113, 53, 0,
++ 22, 23, 513, 517, 518, 0,
++ 514, 21, 79, 111, 0,
++ 25, 109, 110, 0,
++ IPPORT_DEFAULT, 0,
++ 20, 70, 80, 8001, 8008, 8080, 0, /* 8001,8008,8080 - common proxy ports */
++0 };
++
++#endif /* PRIOQ */
++
++
++static upperstr_t *minor_devs = NULL;
++static upperstr_t *ppas = NULL;
++
++#ifdef SVR4
++static int pppopen __P((queue_t *, dev_t *, int, int, cred_t *));
++static int pppclose __P((queue_t *, int, cred_t *));
++#else
++static int pppopen __P((queue_t *, int, int, int));
++static int pppclose __P((queue_t *, int));
++#endif /* SVR4 */
++static int pppurput __P((queue_t *, mblk_t *));
++static int pppuwput __P((queue_t *, mblk_t *));
++static int pppursrv __P((queue_t *));
++static int pppuwsrv __P((queue_t *));
++static int ppplrput __P((queue_t *, mblk_t *));
++static int ppplwput __P((queue_t *, mblk_t *));
++static int ppplrsrv __P((queue_t *));
++static int ppplwsrv __P((queue_t *));
++#ifndef NO_DLPI
++static void dlpi_request __P((queue_t *, mblk_t *, upperstr_t *));
++static void dlpi_error __P((queue_t *, upperstr_t *, int, int, int));
++static void dlpi_ok __P((queue_t *, int));
++#endif
++static int send_data __P((mblk_t *, upperstr_t *));
++static void new_ppa __P((queue_t *, mblk_t *));
++static void attach_ppa __P((queue_t *, mblk_t *));
++static void detach_ppa __P((queue_t *, mblk_t *));
++static void detach_lower __P((queue_t *, mblk_t *));
++static void debug_dump __P((queue_t *, mblk_t *));
++static upperstr_t *find_dest __P((upperstr_t *, int));
++#if defined(SOL2)
++static upperstr_t *find_promisc __P((upperstr_t *, int));
++static mblk_t *prepend_ether __P((upperstr_t *, mblk_t *, int));
++static mblk_t *prepend_udind __P((upperstr_t *, mblk_t *, int));
++static void promisc_sendup __P((upperstr_t *, mblk_t *, int, int));
++#endif /* defined(SOL2) */
++static int putctl2 __P((queue_t *, int, int, int));
++static int putctl4 __P((queue_t *, int, int, int));
++static int pass_packet __P((upperstr_t *ppa, mblk_t *mp, int outbound));
++#ifdef FILTER_PACKETS
++static int ip_hard_filter __P((upperstr_t *ppa, mblk_t *mp, int outbound));
++#endif /* FILTER_PACKETS */
++
++#define PPP_ID 0xb1a6
++static struct module_info ppp_info = {
++#ifdef PRIOQ
++ PPP_ID, &quot;ppp&quot;, 0, 512, 512, 384
++#else
++ PPP_ID, &quot;ppp&quot;, 0, 512, 512, 128
++#endif /* PRIOQ */
++};
++
++static struct qinit pppurint = {
++ pppurput, pppursrv, pppopen, pppclose, NULL, &amp;ppp_info, NULL
++};
++
++static struct qinit pppuwint = {
++ pppuwput, pppuwsrv, NULL, NULL, NULL, &amp;ppp_info, NULL
++};
++
++static struct qinit ppplrint = {
++ ppplrput, ppplrsrv, NULL, NULL, NULL, &amp;ppp_info, NULL
++};
++
++static struct qinit ppplwint = {
++ ppplwput, ppplwsrv, NULL, NULL, NULL, &amp;ppp_info, NULL
++};
++
++#ifdef LACHTCP
++extern struct ifstats *ifstats;
++int pppdevflag = 0;
++#endif
++
++struct streamtab pppinfo = {
++ &amp;pppurint, &amp;pppuwint,
++ &amp;ppplrint, &amp;ppplwint
++};
++
++int ppp_count;
++
++/*
++ * How we maintain statistics.
++ */
++#ifdef SOL2
++#define INCR_IPACKETS(ppa) \
++ if (ppa-&gt;kstats != 0) { \
++ KSTAT_NAMED_PTR(ppa-&gt;kstats)[0].value.ul++; \
++ }
++#define INCR_IERRORS(ppa) \
++ if (ppa-&gt;kstats != 0) { \
++ KSTAT_NAMED_PTR(ppa-&gt;kstats)[1].value.ul++; \
++ }
++#define INCR_OPACKETS(ppa) \
++ if (ppa-&gt;kstats != 0) { \
++ KSTAT_NAMED_PTR(ppa-&gt;kstats)[2].value.ul++; \
++ }
++#define INCR_OERRORS(ppa) \
++ if (ppa-&gt;kstats != 0) { \
++ KSTAT_NAMED_PTR(ppa-&gt;kstats)[3].value.ul++; \
++ }
++#endif
++
++#ifdef LACHTCP
++#define INCR_IPACKETS(ppa) ppa-&gt;ifstats.ifs_ipackets++;
++#define INCR_IERRORS(ppa) ppa-&gt;ifstats.ifs_ierrors++;
++#define INCR_OPACKETS(ppa) ppa-&gt;ifstats.ifs_opackets++;
++#define INCR_OERRORS(ppa) ppa-&gt;ifstats.ifs_oerrors++;
++#endif
++
++/*
++ * STREAMS driver entry points.
++ */
++static int
++#ifdef SVR4
++pppopen(q, devp, oflag, sflag, credp)
++ queue_t *q;
++ dev_t *devp;
++ int oflag, sflag;
++ cred_t *credp;
++#else
++pppopen(q, dev, oflag, sflag)
++ queue_t *q;
++ int dev; /* really dev_t */
++ int oflag, sflag;
++#endif
++{
++ upperstr_t *up;
++ upperstr_t **prevp;
++ minor_t mn;
++#ifdef PRIOQ
++ u_short *ptr;
++ u_char new_band;
++#endif /* PRIOQ */
++
++ if (q-&gt;q_ptr)
++ DRV_OPEN_OK(dev); /* device is already open */
++
++#ifdef PRIOQ
++ /* Calculate max_bband &amp; def_band from definitions in prioq.h
++ This colud be done at some more approtiate time (less often)
++ but this way it works well so I'll just leave it here */
++
++ max_band = 1;
++ def_band = 0;
++ ptr = prioq_table;
++ while (*ptr) {
++ new_band = 1;
++ while (*ptr)
++ if (*ptr++ == IPPORT_DEFAULT) {
++ new_band = 0;
++ def_band = max_band;
++ }
++ max_band += new_band;
++ ptr++;
++ }
++ if (def_band)
++ def_band = max_band - def_band;
++ --max_band;
++#endif /* PRIOQ */
++
++ if (sflag == CLONEOPEN) {
++ mn = 0;
++ for (prevp = &amp;minor_devs; (up = *prevp) != 0; prevp = &amp;up-&gt;nextmn) {
++ if (up-&gt;mn != mn)
++ break;
++ ++mn;
++ }
++ } else {
++#ifdef SVR4
++ mn = getminor(*devp);
++#else
++ mn = minor(dev);
++#endif
++ for (prevp = &amp;minor_devs; (up = *prevp) != 0; prevp = &amp;up-&gt;nextmn) {
++ if (up-&gt;mn &gt;= mn)
++ break;
++ }
++ if (up-&gt;mn == mn) {
++ /* this can't happen */
++ q-&gt;q_ptr = WR(q)-&gt;q_ptr = (caddr_t) up;
++ DRV_OPEN_OK(dev);
++ }
++ }
++
++ /*
++ * Construct a new minor node.
++ */
++ up = (upperstr_t *) ALLOC_SLEEP(sizeof(upperstr_t));
++ bzero((caddr_t) up, sizeof(upperstr_t));
++ if (up == 0) {
++ DPRINT(&quot;pppopen: out of kernel memory\n&quot;);
++ OPEN_ERROR(ENXIO);
++ }
++ up-&gt;nextmn = *prevp;
++ *prevp = up;
++ up-&gt;mn = mn;
++#ifdef SVR4
++ *devp = makedevice(getmajor(*devp), mn);
++#endif
++ up-&gt;q = q;
++ if (NOTSUSER() == 0)
++ up-&gt;flags |= US_PRIV;
++#ifndef NO_DLPI
++ up-&gt;state = DL_UNATTACHED;
++#endif
++#ifdef LACHTCP
++ up-&gt;ifflags = IFF_UP | IFF_POINTOPOINT;
++#endif
++ up-&gt;sap = -1;
++ up-&gt;last_sent = up-&gt;last_recv = time;
++ up-&gt;npmode = NPMODE_DROP;
++ q-&gt;q_ptr = (caddr_t) up;
++ WR(q)-&gt;q_ptr = (caddr_t) up;
++ noenable(WR(q));
++#ifdef SOL2
++ mutex_init(&amp;up-&gt;stats_lock, NULL, MUTEX_DRIVER, NULL);
++#endif
++ ++ppp_count;
++
++ qprocson(q);
++ DRV_OPEN_OK(makedev(major(dev), mn));
++}
++
++static int
++#ifdef SVR4
++pppclose(q, flag, credp)
++ queue_t *q;
++ int flag;
++ cred_t *credp;
++#else
++pppclose(q, flag)
++ queue_t *q;
++ int flag;
++#endif
++{
++ upperstr_t *up, **upp;
++ upperstr_t *as, *asnext;
++ upperstr_t **prevp;
++
++ qprocsoff(q);
++
++ up = (upperstr_t *) q-&gt;q_ptr;
++ if (up == 0) {
++ DPRINT(&quot;pppclose: q_ptr = 0\n&quot;);
++ return 0;
++ }
++ if (up-&gt;flags &amp; US_DBGLOG)
++ DPRINT2(&quot;ppp/%d: close, flags=%x\n&quot;, up-&gt;mn, up-&gt;flags);
++ if (up-&gt;flags &amp; US_CONTROL) {
++#ifdef LACHTCP
++ struct ifstats *ifp, *pifp;
++#endif
++ if (up-&gt;lowerq != 0) {
++ /* Gack! the lower stream should have be unlinked earlier! */
++ DPRINT1(&quot;ppp%d: lower stream still connected on close?\n&quot;,
++ up-&gt;mn);
++ LOCK_LOWER_W;
++ up-&gt;lowerq-&gt;q_ptr = 0;
++ RD(up-&gt;lowerq)-&gt;q_ptr = 0;
++ up-&gt;lowerq = 0;
++ UNLOCK_LOWER;
++ }
++
++ /*
++ * This stream represents a PPA:
++ * For all streams attached to the PPA, clear their
++ * references to this PPA.
++ * Then remove this PPA from the list of PPAs.
++ */
++ for (as = up-&gt;next; as != 0; as = asnext) {
++ asnext = as-&gt;next;
++ as-&gt;next = 0;
++ as-&gt;ppa = 0;
++ if (as-&gt;flags &amp; US_BLOCKED) {
++ as-&gt;flags &amp;= ~US_BLOCKED;
++ flushq(WR(as-&gt;q), FLUSHDATA);
++ }
++ }
++ for (upp = &amp;ppas; *upp != 0; upp = &amp;(*upp)-&gt;nextppa)
++ if (*upp == up) {
++ *upp = up-&gt;nextppa;
++ break;
++ }
++#ifdef LACHTCP
++ /* Remove the statistics from the active list. */
++ for (ifp = ifstats, pifp = 0; ifp; ifp = ifp-&gt;ifs_next) {
++ if (ifp == &amp;up-&gt;ifstats) {
++ if (pifp)
++ pifp-&gt;ifs_next = ifp-&gt;ifs_next;
++ else
++ ifstats = ifp-&gt;ifs_next;
++ break;
++ }
++ pifp = ifp;
++ }
++#endif
++ } else {
++ /*
++ * If this stream is attached to a PPA,
++ * remove it from the PPA's list.
++ */
++ if ((as = up-&gt;ppa) != 0) {
++ for (; as-&gt;next != 0; as = as-&gt;next)
++ if (as-&gt;next == up) {
++ as-&gt;next = up-&gt;next;
++ break;
++ }
++ }
++ }
++
++#ifdef SOL2
++ if (up-&gt;kstats)
++ kstat_delete(up-&gt;kstats);
++ mutex_destroy(&amp;up-&gt;stats_lock);
++#endif
++
++ q-&gt;q_ptr = NULL;
++ WR(q)-&gt;q_ptr = NULL;
++
++ for (prevp = &amp;minor_devs; *prevp != 0; prevp = &amp;(*prevp)-&gt;nextmn) {
++ if (*prevp == up) {
++ *prevp = up-&gt;nextmn;
++ break;
++ }
++ }
++ FREE(up, sizeof(upperstr_t));
++ --ppp_count;
++
++ return 0;
++}
++
++/*
++ * A message from on high. We do one of three things:
++ * - qreply()
++ * - put the message on the lower write stream
++ * - queue it for our service routine
++ */
++static int
++pppuwput(q, mp)
++ queue_t *q;
++ mblk_t *mp;
++{
++ upperstr_t *us, *ppa, *nps;
++ struct iocblk *iop;
++ struct linkblk *lb;
++#ifdef LACHTCP
++ struct ifreq *ifr;
++ int i;
++#endif
++ queue_t *lq;
++ int error, n, sap;
++ mblk_t *mq;
++ struct ppp_idle *pip;
++#ifdef PRIOQ
++ queue_t *tlq;
++#endif /* PRIOQ */
++#ifdef NO_DLPI
++ upperstr_t *os;
++#endif
++
++ us = (upperstr_t *) q-&gt;q_ptr;
++ if (us == 0) {
++ DPRINT(&quot;pppuwput: q_ptr = 0!\n&quot;);
++ return 0;
++ }
++ if (mp == 0) {
++ DPRINT1(&quot;pppuwput/%d: mp = 0!\n&quot;, us-&gt;mn);
++ return 0;
++ }
++ if (mp-&gt;b_datap == 0) {
++ DPRINT1(&quot;pppuwput/%d: mp-&gt;b_datap = 0!\n&quot;, us-&gt;mn);
++ return 0;
++ }
++ switch (mp-&gt;b_datap-&gt;db_type) {
++#ifndef NO_DLPI
++ case M_PCPROTO:
++ case M_PROTO:
++ dlpi_request(q, mp, us);
++ break;
++#endif /* NO_DLPI */
++
++ case M_DATA:
++ if (us-&gt;flags &amp; US_DBGLOG)
++ DPRINT3(&quot;ppp/%d: uwput M_DATA len=%d flags=%x\n&quot;,
++ us-&gt;mn, msgdsize(mp), us-&gt;flags);
++ if (us-&gt;ppa == 0 || msgdsize(mp) &gt; us-&gt;ppa-&gt;mtu + PPP_HDRLEN
++#ifndef NO_DLPI
++ || (us-&gt;flags &amp; US_CONTROL) == 0
++#endif /* NO_DLPI */
++ ) {
++ DPRINT1(&quot;pppuwput: junk data len=%d\n&quot;, msgdsize(mp));
++ freemsg(mp);
++ break;
++ }
++#ifdef NO_DLPI
++ if ((us-&gt;flags &amp; US_CONTROL) == 0 &amp;&amp; !pass_packet(us, mp, 1))
++ break;
++#endif
++ if (!send_data(mp, us))
++ putq(q, mp);
++ break;
++
++ case M_IOCTL:
++ iop = (struct iocblk *) mp-&gt;b_rptr;
++ error = EINVAL;
++ if (us-&gt;flags &amp; US_DBGLOG)
++ DPRINT3(&quot;ppp/%d: ioctl %x count=%d\n&quot;,
++ us-&gt;mn, iop-&gt;ioc_cmd, iop-&gt;ioc_count);
++ switch (iop-&gt;ioc_cmd) {
++#if defined(SOL2)
++ case DLIOCRAW: /* raw M_DATA mode */
++ us-&gt;flags |= US_RAWDATA;
++ error = 0;
++ break;
++#endif /* defined(SOL2) */
++ case I_LINK:
++ if ((us-&gt;flags &amp; US_CONTROL) == 0 || us-&gt;lowerq != 0)
++ break;
++ if (mp-&gt;b_cont == 0) {
++ DPRINT1(&quot;pppuwput/%d: ioctl I_LINK b_cont = 0!\n&quot;, us-&gt;mn);
++ break;
++ }
++ lb = (struct linkblk *) mp-&gt;b_cont-&gt;b_rptr;
++ lq = lb-&gt;l_qbot;
++ if (lq == 0) {
++ DPRINT1(&quot;pppuwput/%d: ioctl I_LINK l_qbot = 0!\n&quot;, us-&gt;mn);
++ break;
++ }
++ LOCK_LOWER_W;
++ us-&gt;lowerq = lq;
++ lq-&gt;q_ptr = (caddr_t) q;
++ RD(lq)-&gt;q_ptr = (caddr_t) us-&gt;q;
++ UNLOCK_LOWER;
++ iop-&gt;ioc_count = 0;
++ error = 0;
++ us-&gt;flags &amp;= ~US_LASTMOD;
++ /* Unblock upper streams which now feed this lower stream. */
++ qenable(q);
++ /* Send useful information down to the modules which
++ are now linked below us. */
++ putctl2(lq, M_CTL, PPPCTL_UNIT, us-&gt;ppa_id);
++ putctl4(lq, M_CTL, PPPCTL_MRU, us-&gt;mru);
++ putctl4(lq, M_CTL, PPPCTL_MTU, us-&gt;mtu);
++#ifdef PRIOQ
++ /* Lower tty driver's queue hiwat/lowat from default 4096/128
++ to 256/128 since we don't want queueing of data on
++ output to physical device */
++
++ freezestr(lq);
++ for (tlq = lq; tlq-&gt;q_next != NULL; tlq = tlq-&gt;q_next)
++ ;
++ strqset(tlq, QHIWAT, 0, 256);
++ strqset(tlq, QLOWAT, 0, 128);
++ unfreezestr(lq);
++#endif /* PRIOQ */
++ break;
++
++ case I_UNLINK:
++ if (mp-&gt;b_cont == 0) {
++ DPRINT1(&quot;pppuwput/%d: ioctl I_UNLINK b_cont = 0!\n&quot;, us-&gt;mn);
++ break;
++ }
++ lb = (struct linkblk *) mp-&gt;b_cont-&gt;b_rptr;
++#if DEBUG
++ if (us-&gt;lowerq != lb-&gt;l_qbot) {
++ DPRINT2(&quot;ppp unlink: lowerq=%x qbot=%x\n&quot;,
++ us-&gt;lowerq, lb-&gt;l_qbot);
++ break;
++ }
++#endif
++ iop-&gt;ioc_count = 0;
++ qwriter(q, mp, detach_lower, PERIM_OUTER);
++ error = -1;
++ break;
++
++ case PPPIO_NEWPPA:
++ if (us-&gt;flags &amp; US_CONTROL)
++ break;
++ if ((us-&gt;flags &amp; US_PRIV) == 0) {
++ error = EPERM;
++ break;
++ }
++ /* Arrange to return an int */
++ if ((mq = mp-&gt;b_cont) == 0
++ || mq-&gt;b_datap-&gt;db_lim - mq-&gt;b_rptr &lt; sizeof(int)) {
++ mq = allocb(sizeof(int), BPRI_HI);
++ if (mq == 0) {
++ error = ENOSR;
++ break;
++ }
++ if (mp-&gt;b_cont != 0)
++ freemsg(mp-&gt;b_cont);
++ mp-&gt;b_cont = mq;
++ mq-&gt;b_cont = 0;
++ }
++ iop-&gt;ioc_count = sizeof(int);
++ mq-&gt;b_wptr = mq-&gt;b_rptr + sizeof(int);
++ qwriter(q, mp, new_ppa, PERIM_OUTER);
++ error = -1;
++ break;
++
++ case PPPIO_ATTACH:
++ /* like dlpi_attach, for programs which can't write to
++ the stream (like pppstats) */
++ if (iop-&gt;ioc_count != sizeof(int) || us-&gt;ppa != 0)
++ break;
++ if (mp-&gt;b_cont == 0) {
++ DPRINT1(&quot;pppuwput/%d: ioctl PPPIO_ATTACH b_cont = 0!\n&quot;, us-&gt;mn);
++ break;
++ }
++ n = *(int *)mp-&gt;b_cont-&gt;b_rptr;
++ for (ppa = ppas; ppa != 0; ppa = ppa-&gt;nextppa)
++ if (ppa-&gt;ppa_id == n)
++ break;
++ if (ppa == 0)
++ break;
++ us-&gt;ppa = ppa;
++ iop-&gt;ioc_count = 0;
++ qwriter(q, mp, attach_ppa, PERIM_OUTER);
++ error = -1;
++ break;
++
++#ifdef NO_DLPI
++ case PPPIO_BIND:
++ /* Attach to a given SAP. */
++ if (iop-&gt;ioc_count != sizeof(int) || us-&gt;ppa == 0)
++ break;
++ if (mp-&gt;b_cont == 0) {
++ DPRINT1(&quot;pppuwput/%d: ioctl PPPIO_BIND b_cont = 0!\n&quot;, us-&gt;mn);
++ break;
++ }
++ n = *(int *)mp-&gt;b_cont-&gt;b_rptr;
++ /* n must be a valid PPP network protocol number. */
++ if (n &lt; 0x21 || n &gt; 0x3fff || (n &amp; 0x101) != 1)
++ break;
++ /* check that no other stream is bound to this sap already. */
++ for (os = us-&gt;ppa; os != 0; os = os-&gt;next)
++ if (os-&gt;sap == n)
++ break;
++ if (os != 0)
++ break;
++ us-&gt;sap = n;
++ iop-&gt;ioc_count = 0;
++ error = 0;
++ break;
++#endif /* NO_DLPI */
++
++ case PPPIO_MRU:
++ if (iop-&gt;ioc_count != sizeof(int) || (us-&gt;flags &amp; US_CONTROL) == 0)
++ break;
++ if (mp-&gt;b_cont == 0) {
++ DPRINT1(&quot;pppuwput/%d: ioctl PPPIO_MRU b_cont = 0!\n&quot;, us-&gt;mn);
++ break;
++ }
++ n = *(int *)mp-&gt;b_cont-&gt;b_rptr;
++ if (n &lt;= 0 || n &gt; PPP_MAXMRU)
++ break;
++ if (n &lt; PPP_MRU)
++ n = PPP_MRU;
++ us-&gt;mru = n;
++ if (us-&gt;lowerq)
++ putctl4(us-&gt;lowerq, M_CTL, PPPCTL_MRU, n);
++ error = 0;
++ iop-&gt;ioc_count = 0;
++ break;
++
++ case PPPIO_MTU:
++ if (iop-&gt;ioc_count != sizeof(int) || (us-&gt;flags &amp; US_CONTROL) == 0)
++ break;
++ if (mp-&gt;b_cont == 0) {
++ DPRINT1(&quot;pppuwput/%d: ioctl PPPIO_MTU b_cont = 0!\n&quot;, us-&gt;mn);
++ break;
++ }
++ n = *(int *)mp-&gt;b_cont-&gt;b_rptr;
++ if (n &lt;= 0 || n &gt; PPP_MAXMTU)
++ break;
++ us-&gt;mtu = n;
++#ifdef LACHTCP
++ /* The MTU reported in netstat, not used as IP max packet size! */
++ us-&gt;ifstats.ifs_mtu = n;
++#endif
++ if (us-&gt;lowerq)
++ putctl4(us-&gt;lowerq, M_CTL, PPPCTL_MTU, n);
++ error = 0;
++ iop-&gt;ioc_count = 0;
++ break;
++
++ case PPPIO_LASTMOD:
++ us-&gt;flags |= US_LASTMOD;
++ error = 0;
++ break;
++
++ case PPPIO_DEBUG:
++ if (iop-&gt;ioc_count != sizeof(int))
++ break;
++ if (mp-&gt;b_cont == 0) {
++ DPRINT1(&quot;pppuwput/%d: ioctl PPPIO_DEBUG b_cont = 0!\n&quot;, us-&gt;mn);
++ break;
++ }
++ n = *(int *)mp-&gt;b_cont-&gt;b_rptr;
++ if (n == PPPDBG_DUMP + PPPDBG_DRIVER) {
++ qwriter(q, NULL, debug_dump, PERIM_OUTER);
++ iop-&gt;ioc_count = 0;
++ error = -1;
++ } else if (n == PPPDBG_LOG + PPPDBG_DRIVER) {
++ DPRINT1(&quot;ppp/%d: debug log enabled\n&quot;, us-&gt;mn);
++ us-&gt;flags |= US_DBGLOG;
++ iop-&gt;ioc_count = 0;
++ error = 0;
++ } else {
++ if (us-&gt;ppa == 0 || us-&gt;ppa-&gt;lowerq == 0)
++ break;
++ putnext(us-&gt;ppa-&gt;lowerq, mp);
++ error = -1;
++ }
++ break;
++
++ case PPPIO_NPMODE:
++ if (iop-&gt;ioc_count != 2 * sizeof(int))
++ break;
++ if ((us-&gt;flags &amp; US_CONTROL) == 0)
++ break;
++ if (mp-&gt;b_cont == 0) {
++ DPRINT1(&quot;pppuwput/%d: ioctl PPPIO_NPMODE b_cont = 0!\n&quot;, us-&gt;mn);
++ break;
++ }
++ sap = ((int *)mp-&gt;b_cont-&gt;b_rptr)[0];
++ for (nps = us-&gt;next; nps != 0; nps = nps-&gt;next) {
++ if (us-&gt;flags &amp; US_DBGLOG)
++ DPRINT2(&quot;us = 0x%x, us-&gt;next-&gt;sap = 0x%x\n&quot;, nps, nps-&gt;sap);
++ if (nps-&gt;sap == sap)
++ break;
++ }
++ if (nps == 0) {
++ if (us-&gt;flags &amp; US_DBGLOG)
++ DPRINT2(&quot;ppp/%d: no stream for sap %x\n&quot;, us-&gt;mn, sap);
++ break;
++ }
++ /* XXX possibly should use qwriter here */
++ nps-&gt;npmode = (enum NPmode) ((int *)mp-&gt;b_cont-&gt;b_rptr)[1];
++ if (nps-&gt;npmode != NPMODE_QUEUE &amp;&amp; (nps-&gt;flags &amp; US_BLOCKED) != 0)
++ qenable(WR(nps-&gt;q));
++ iop-&gt;ioc_count = 0;
++ error = 0;
++ break;
++
++ case PPPIO_GIDLE:
++ if ((ppa = us-&gt;ppa) == 0)
++ break;
++ mq = allocb(sizeof(struct ppp_idle), BPRI_HI);
++ if (mq == 0) {
++ error = ENOSR;
++ break;
++ }
++ if (mp-&gt;b_cont != 0)
++ freemsg(mp-&gt;b_cont);
++ mp-&gt;b_cont = mq;
++ mq-&gt;b_cont = 0;
++ pip = (struct ppp_idle *) mq-&gt;b_wptr;
++ pip-&gt;xmit_idle = time - ppa-&gt;last_sent;
++ pip-&gt;recv_idle = time - ppa-&gt;last_recv;
++ mq-&gt;b_wptr += sizeof(struct ppp_idle);
++ iop-&gt;ioc_count = sizeof(struct ppp_idle);
++ error = 0;
++ break;
++
++#ifdef LACHTCP
++ case SIOCSIFNAME:
++ /* Sent from IP down to us. Attach the ifstats structure. */
++ if (iop-&gt;ioc_count != sizeof(struct ifreq) || us-&gt;ppa == 0)
++ break;
++ ifr = (struct ifreq *)mp-&gt;b_cont-&gt;b_rptr;
++ /* Find the unit number in the interface name. */
++ for (i = 0; i &lt; IFNAMSIZ; i++) {
++ if (ifr-&gt;ifr_name[i] == 0 ||
++ (ifr-&gt;ifr_name[i] &gt;= '0' &amp;&amp;
++ ifr-&gt;ifr_name[i] &lt;= '9'))
++ break;
++ else
++ us-&gt;ifname[i] = ifr-&gt;ifr_name[i];
++ }
++ us-&gt;ifname[i] = 0;
++
++ /* Convert the unit number to binary. */
++ for (n = 0; i &lt; IFNAMSIZ; i++) {
++ if (ifr-&gt;ifr_name[i] == 0) {
++ break;
++ }
++ else {
++ n = n * 10 + ifr-&gt;ifr_name[i] - '0';
++ }
++ }
++
++ /* Verify the ppa. */
++ if (us-&gt;ppa-&gt;ppa_id != n)
++ break;
++ ppa = us-&gt;ppa;
++
++ /* Set up the netstat block. */
++ strncpy (ppa-&gt;ifname, us-&gt;ifname, IFNAMSIZ);
++
++ ppa-&gt;ifstats.ifs_name = ppa-&gt;ifname;
++ ppa-&gt;ifstats.ifs_unit = n;
++ ppa-&gt;ifstats.ifs_active = us-&gt;state != DL_UNBOUND;
++ ppa-&gt;ifstats.ifs_mtu = ppa-&gt;mtu;
++
++ /* Link in statistics used by netstat. */
++ ppa-&gt;ifstats.ifs_next = ifstats;
++ ifstats = &amp;ppa-&gt;ifstats;
++
++ iop-&gt;ioc_count = 0;
++ error = 0;
++ break;
++
++ case SIOCGIFFLAGS:
++ if (!(us-&gt;flags &amp; US_CONTROL)) {
++ if (us-&gt;ppa)
++ us = us-&gt;ppa;
++ else
++ break;
++ }
++ ((struct iocblk_in *)iop)-&gt;ioc_ifflags = us-&gt;ifflags;
++ error = 0;
++ break;
++
++ case SIOCSIFFLAGS:
++ if (!(us-&gt;flags &amp; US_CONTROL)) {
++ if (us-&gt;ppa)
++ us = us-&gt;ppa;
++ else
++ break;
++ }
++ us-&gt;ifflags = ((struct iocblk_in *)iop)-&gt;ioc_ifflags;
++ error = 0;
++ break;
++
++ case SIOCSIFADDR:
++ if (!(us-&gt;flags &amp; US_CONTROL)) {
++ if (us-&gt;ppa)
++ us = us-&gt;ppa;
++ else
++ break;
++ }
++ us-&gt;ifflags |= IFF_RUNNING;
++ ((struct iocblk_in *)iop)-&gt;ioc_ifflags |= IFF_RUNNING;
++ error = 0;
++ break;
++
++ case SIOCSIFMTU:
++ /*
++ * Vanilla SVR4 systems don't handle SIOCSIFMTU, rather
++ * they take the MTU from the DL_INFO_ACK we sent in response
++ * to their DL_INFO_REQ. Fortunately, they will update the
++ * MTU if we send an unsolicited DL_INFO_ACK up.
++ */
++ if ((mq = allocb(sizeof(dl_info_req_t), BPRI_HI)) == 0)
++ break; /* should do bufcall */
++ ((union DL_primitives *)mq-&gt;b_rptr)-&gt;dl_primitive = DL_INFO_REQ;
++ mq-&gt;b_wptr = mq-&gt;b_rptr + sizeof(dl_info_req_t);
++ dlpi_request(q, mq, us);
++ error = 0;
++ break;
++
++ case SIOCGIFNETMASK:
++ case SIOCSIFNETMASK:
++ case SIOCGIFADDR:
++ case SIOCGIFDSTADDR:
++ case SIOCSIFDSTADDR:
++ case SIOCGIFMETRIC:
++ error = 0;
++ break;
++#endif /* LACHTCP */
++
++ default:
++ if (us-&gt;ppa == 0 || us-&gt;ppa-&gt;lowerq == 0)
++ break;
++ us-&gt;ioc_id = iop-&gt;ioc_id;
++ error = -1;
++ switch (iop-&gt;ioc_cmd) {
++ case PPPIO_GETSTAT:
++ case PPPIO_GETCSTAT:
++ if (us-&gt;flags &amp; US_LASTMOD) {
++ error = EINVAL;
++ break;
++ }
++ putnext(us-&gt;ppa-&gt;lowerq, mp);
++ break;
++ default:
++ if (us-&gt;flags &amp; US_PRIV)
++ putnext(us-&gt;ppa-&gt;lowerq, mp);
++ else {
++ DPRINT1(&quot;ppp ioctl %x rejected\n&quot;, iop-&gt;ioc_cmd);
++ error = EPERM;
++ }
++ break;
++ }
++ break;
++ }
++
++ if (error &gt; 0) {
++ iop-&gt;ioc_error = error;
++ mp-&gt;b_datap-&gt;db_type = M_IOCNAK;
++ qreply(q, mp);
++ } else if (error == 0) {
++ mp-&gt;b_datap-&gt;db_type = M_IOCACK;
++ qreply(q, mp);
++ }
++ break;
++
++ case M_FLUSH:
++ if (us-&gt;flags &amp; US_DBGLOG)
++ DPRINT2(&quot;ppp/%d: flush %x\n&quot;, us-&gt;mn, *mp-&gt;b_rptr);
++ if (*mp-&gt;b_rptr &amp; FLUSHW)
++ flushq(q, FLUSHDATA);
++ if (*mp-&gt;b_rptr &amp; FLUSHR) {
++ *mp-&gt;b_rptr &amp;= ~FLUSHW;
++ qreply(q, mp);
++ } else
++ freemsg(mp);
++ break;
++
++ default:
++ freemsg(mp);
++ break;
++ }
++ return 0;
++}
++
++#ifndef NO_DLPI
++static void
++dlpi_request(q, mp, us)
++ queue_t *q;
++ mblk_t *mp;
++ upperstr_t *us;
++{
++ union DL_primitives *d = (union DL_primitives *) mp-&gt;b_rptr;
++ int size = mp-&gt;b_wptr - mp-&gt;b_rptr;
++ mblk_t *reply, *np;
++ upperstr_t *ppa, *os;
++ int sap, len;
++ dl_info_ack_t *info;
++ dl_bind_ack_t *ackp;
++#if DL_CURRENT_VERSION &gt;= 2
++ dl_phys_addr_ack_t *paddrack;
++ static struct ether_addr eaddr = {0};
++#endif
++
++ if (us-&gt;flags &amp; US_DBGLOG)
++ DPRINT3(&quot;ppp/%d: dlpi prim %x len=%d\n&quot;, us-&gt;mn,
++ d-&gt;dl_primitive, size);
++ switch (d-&gt;dl_primitive) {
++ case DL_INFO_REQ:
++ if (size &lt; sizeof(dl_info_req_t))
++ goto badprim;
++ if ((reply = allocb(sizeof(dl_info_ack_t), BPRI_HI)) == 0)
++ break; /* should do bufcall */
++ reply-&gt;b_datap-&gt;db_type = M_PCPROTO;
++ info = (dl_info_ack_t *) reply-&gt;b_wptr;
++ reply-&gt;b_wptr += sizeof(dl_info_ack_t);
++ bzero((caddr_t) info, sizeof(dl_info_ack_t));
++ info-&gt;dl_primitive = DL_INFO_ACK;
++ info-&gt;dl_max_sdu = us-&gt;ppa? us-&gt;ppa-&gt;mtu: PPP_MAXMTU;
++ info-&gt;dl_min_sdu = 1;
++ info-&gt;dl_addr_length = sizeof(uint);
++ info-&gt;dl_mac_type = DL_ETHER; /* a bigger lie */
++ info-&gt;dl_current_state = us-&gt;state;
++ info-&gt;dl_service_mode = DL_CLDLS;
++ info-&gt;dl_provider_style = DL_STYLE2;
++#if DL_CURRENT_VERSION &gt;= 2
++ info-&gt;dl_sap_length = sizeof(uint);
++ info-&gt;dl_version = DL_CURRENT_VERSION;
++#endif
++ qreply(q, reply);
++ break;
++
++ case DL_ATTACH_REQ:
++ if (size &lt; sizeof(dl_attach_req_t))
++ goto badprim;
++ if (us-&gt;state != DL_UNATTACHED || us-&gt;ppa != 0) {
++ dlpi_error(q, us, DL_ATTACH_REQ, DL_OUTSTATE, 0);
++ break;
++ }
++ for (ppa = ppas; ppa != 0; ppa = ppa-&gt;nextppa)
++ if (ppa-&gt;ppa_id == d-&gt;attach_req.dl_ppa)
++ break;
++ if (ppa == 0) {
++ dlpi_error(q, us, DL_ATTACH_REQ, DL_BADPPA, 0);
++ break;
++ }
++ us-&gt;ppa = ppa;
++ qwriter(q, mp, attach_ppa, PERIM_OUTER);
++ return;
++
++ case DL_DETACH_REQ:
++ if (size &lt; sizeof(dl_detach_req_t))
++ goto badprim;
++ if (us-&gt;state != DL_UNBOUND || us-&gt;ppa == 0) {
++ dlpi_error(q, us, DL_DETACH_REQ, DL_OUTSTATE, 0);
++ break;
++ }
++ qwriter(q, mp, detach_ppa, PERIM_OUTER);
++ return;
++
++ case DL_BIND_REQ:
++ if (size &lt; sizeof(dl_bind_req_t))
++ goto badprim;
++ if (us-&gt;state != DL_UNBOUND || us-&gt;ppa == 0) {
++ dlpi_error(q, us, DL_BIND_REQ, DL_OUTSTATE, 0);
++ break;
++ }
++#if 0
++ /* apparently this test fails (unnecessarily?) on some systems */
++ if (d-&gt;bind_req.dl_service_mode != DL_CLDLS) {
++ dlpi_error(q, us, DL_BIND_REQ, DL_UNSUPPORTED, 0);
++ break;
++ }
++#endif
++
++ /* saps must be valid PPP network protocol numbers,
++ except that we accept ETHERTYPE_IP in place of PPP_IP. */
++ sap = d-&gt;bind_req.dl_sap;
++ us-&gt;req_sap = sap;
++
++#if defined(SOL2)
++ if (us-&gt;flags &amp; US_DBGLOG)
++ DPRINT2(&quot;DL_BIND_REQ: ip gives sap = 0x%x, us = 0x%x&quot;, sap, us);
++
++ if (sap == ETHERTYPE_IP) /* normal IFF_IPV4 */
++ sap = PPP_IP;
++ else if (sap == ETHERTYPE_IPV6) /* when IFF_IPV6 is set */
++ sap = PPP_IPV6;
++ else if (sap == ETHERTYPE_ALLSAP) /* snoop gives sap of 0 */
++ sap = PPP_ALLSAP;
++ else {
++ DPRINT2(&quot;DL_BIND_REQ: unrecognized sap = 0x%x, us = 0x%x&quot;, sap, us);
++ dlpi_error(q, us, DL_BIND_REQ, DL_BADADDR, 0);
++ break;
++ }
++#else
++ if (sap == ETHERTYPE_IP)
++ sap = PPP_IP;
++ if (sap &lt; 0x21 || sap &gt; 0x3fff || (sap &amp; 0x101) != 1) {
++ dlpi_error(q, us, DL_BIND_REQ, DL_BADADDR, 0);
++ break;
++ }
++#endif /* defined(SOL2) */
++
++ /* check that no other stream is bound to this sap already. */
++ for (os = us-&gt;ppa; os != 0; os = os-&gt;next)
++ if (os-&gt;sap == sap)
++ break;
++ if (os != 0) {
++ dlpi_error(q, us, DL_BIND_REQ, DL_NOADDR, 0);
++ break;
++ }
++
++ us-&gt;sap = sap;
++ us-&gt;state = DL_IDLE;
++
++ if ((reply = allocb(sizeof(dl_bind_ack_t) + sizeof(uint),
++ BPRI_HI)) == 0)
++ break; /* should do bufcall */
++ ackp = (dl_bind_ack_t *) reply-&gt;b_wptr;
++ reply-&gt;b_wptr += sizeof(dl_bind_ack_t) + sizeof(uint);
++ reply-&gt;b_datap-&gt;db_type = M_PCPROTO;
++ bzero((caddr_t) ackp, sizeof(dl_bind_ack_t));
++ ackp-&gt;dl_primitive = DL_BIND_ACK;
++ ackp-&gt;dl_sap = sap;
++ ackp-&gt;dl_addr_length = sizeof(uint);
++ ackp-&gt;dl_addr_offset = sizeof(dl_bind_ack_t);
++ *(uint *)(ackp+1) = sap;
++ qreply(q, reply);
++ break;
++
++ case DL_UNBIND_REQ:
++ if (size &lt; sizeof(dl_unbind_req_t))
++ goto badprim;
++ if (us-&gt;state != DL_IDLE) {
++ dlpi_error(q, us, DL_UNBIND_REQ, DL_OUTSTATE, 0);
++ break;
++ }
++ us-&gt;sap = -1;
++ us-&gt;state = DL_UNBOUND;
++#ifdef LACHTCP
++ us-&gt;ppa-&gt;ifstats.ifs_active = 0;
++#endif
++ dlpi_ok(q, DL_UNBIND_REQ);
++ break;
++
++ case DL_UNITDATA_REQ:
++ if (size &lt; sizeof(dl_unitdata_req_t))
++ goto badprim;
++ if (us-&gt;state != DL_IDLE) {
++ dlpi_error(q, us, DL_UNITDATA_REQ, DL_OUTSTATE, 0);
++ break;
++ }
++ if ((ppa = us-&gt;ppa) == 0) {
++ cmn_err(CE_CONT, &quot;ppp: in state dl_idle but ppa == 0?\n&quot;);
++ break;
++ }
++ len = mp-&gt;b_cont == 0? 0: msgdsize(mp-&gt;b_cont);
++ if (len &gt; ppa-&gt;mtu) {
++ DPRINT2(&quot;dlpi data too large (%d &gt; %d)\n&quot;, len, ppa-&gt;mtu);
++ break;
++ }
++
++#if defined(SOL2)
++ /*
++ * Should there be any promiscuous stream(s), send the data
++ * up for each promiscuous stream that we recognize.
++ */
++ if (mp-&gt;b_cont)
++ promisc_sendup(ppa, mp-&gt;b_cont, us-&gt;sap, 0);
++#endif /* defined(SOL2) */
++
++ mp-&gt;b_band = 0;
++#ifdef PRIOQ
++ /* Extract s_port &amp; d_port from IP-packet, the code is a bit
++ dirty here, but so am I, too... */
++ if (mp-&gt;b_datap-&gt;db_type == M_PROTO &amp;&amp; us-&gt;sap == PPP_IP
++ &amp;&amp; mp-&gt;b_cont != 0) {
++ u_char *bb, *tlh;
++ int iphlen, len;
++ u_short *ptr;
++ u_char band_unset, cur_band, syn;
++ u_short s_port, d_port;
++
++ bb = mp-&gt;b_cont-&gt;b_rptr; /* bb points to IP-header*/
++ len = mp-&gt;b_cont-&gt;b_wptr - mp-&gt;b_cont-&gt;b_rptr;
++ syn = 0;
++ s_port = IPPORT_DEFAULT;
++ d_port = IPPORT_DEFAULT;
++ if (len &gt;= 20) { /* 20 = minimum length of IP header */
++ iphlen = (bb[0] &amp; 0x0f) * 4;
++ tlh = bb + iphlen;
++ len -= iphlen;
++ switch (bb[9]) {
++ case IPPROTO_TCP:
++ if (len &gt;= 20) { /* min length of TCP header */
++ s_port = (tlh[0] &lt;&lt; 8) + tlh[1];
++ d_port = (tlh[2] &lt;&lt; 8) + tlh[3];
++ syn = tlh[13] &amp; 0x02;
++ }
++ break;
++ case IPPROTO_UDP:
++ if (len &gt;= 8) { /* min length of UDP header */
++ s_port = (tlh[0] &lt;&lt; 8) + tlh[1];
++ d_port = (tlh[2] &lt;&lt; 8) + tlh[3];
++ }
++ break;
++ }
++ }
++
++ /*
++ * Now calculate b_band for this packet from the
++ * port-priority table.
++ */
++ ptr = prioq_table;
++ cur_band = max_band;
++ band_unset = 1;
++ while (*ptr) {
++ while (*ptr &amp;&amp; band_unset)
++ if (s_port == *ptr || d_port == *ptr++) {
++ mp-&gt;b_band = cur_band;
++ band_unset = 0;
++ break;
++ }
++ ptr++;
++ cur_band--;
++ }
++ if (band_unset)
++ mp-&gt;b_band = def_band;
++ /* It may be usable to urge SYN packets a bit */
++ if (syn)
++ mp-&gt;b_band++;
++ }
++#endif /* PRIOQ */
++ /* this assumes PPP_HDRLEN &lt;= sizeof(dl_unitdata_req_t) */
++ if (mp-&gt;b_datap-&gt;db_ref &gt; 1) {
++ np = allocb(PPP_HDRLEN, BPRI_HI);
++ if (np == 0)
++ break; /* gak! */
++ np-&gt;b_cont = mp-&gt;b_cont;
++ mp-&gt;b_cont = 0;
++ freeb(mp);
++ mp = np;
++ } else
++ mp-&gt;b_datap-&gt;db_type = M_DATA;
++ /* XXX should use dl_dest_addr_offset/length here,
++ but we would have to translate ETHERTYPE_IP -&gt; PPP_IP */
++ mp-&gt;b_wptr = mp-&gt;b_rptr + PPP_HDRLEN;
++ mp-&gt;b_rptr[0] = PPP_ALLSTATIONS;
++ mp-&gt;b_rptr[1] = PPP_UI;
++ mp-&gt;b_rptr[2] = us-&gt;sap &gt;&gt; 8;
++ mp-&gt;b_rptr[3] = us-&gt;sap;
++ if (pass_packet(us, mp, 1)) {
++ if (!send_data(mp, us))
++ putq(q, mp);
++ }
++ return;
++
++#if DL_CURRENT_VERSION &gt;= 2
++ case DL_PHYS_ADDR_REQ:
++ if (size &lt; sizeof(dl_phys_addr_req_t))
++ goto badprim;
++
++ /*
++ * Don't check state because ifconfig sends this one down too
++ */
++
++ if ((reply = allocb(sizeof(dl_phys_addr_ack_t)+ETHERADDRL,
++ BPRI_HI)) == 0)
++ break; /* should do bufcall */
++ reply-&gt;b_datap-&gt;db_type = M_PCPROTO;
++ paddrack = (dl_phys_addr_ack_t *) reply-&gt;b_wptr;
++ reply-&gt;b_wptr += sizeof(dl_phys_addr_ack_t);
++ bzero((caddr_t) paddrack, sizeof(dl_phys_addr_ack_t)+ETHERADDRL);
++ paddrack-&gt;dl_primitive = DL_PHYS_ADDR_ACK;
++ paddrack-&gt;dl_addr_length = ETHERADDRL;
++ paddrack-&gt;dl_addr_offset = sizeof(dl_phys_addr_ack_t);
++ bcopy(&amp;eaddr, reply-&gt;b_wptr, ETHERADDRL);
++ reply-&gt;b_wptr += ETHERADDRL;
++ qreply(q, reply);
++ break;
++
++#if defined(SOL2)
++ case DL_PROMISCON_REQ:
++ if (size &lt; sizeof(dl_promiscon_req_t))
++ goto badprim;
++ us-&gt;flags |= US_PROMISC;
++ dlpi_ok(q, DL_PROMISCON_REQ);
++ break;
++
++ case DL_PROMISCOFF_REQ:
++ if (size &lt; sizeof(dl_promiscoff_req_t))
++ goto badprim;
++ us-&gt;flags &amp;= ~US_PROMISC;
++ dlpi_ok(q, DL_PROMISCOFF_REQ);
++ break;
++#else
++ case DL_PROMISCON_REQ: /* fall thru */
++ case DL_PROMISCOFF_REQ: /* fall thru */
++#endif /* defined(SOL2) */
++#endif /* DL_CURRENT_VERSION &gt;= 2 */
++
++#if DL_CURRENT_VERSION &gt;= 2
++ case DL_SET_PHYS_ADDR_REQ:
++ case DL_SUBS_BIND_REQ:
++ case DL_SUBS_UNBIND_REQ:
++ case DL_ENABMULTI_REQ:
++ case DL_DISABMULTI_REQ:
++ case DL_XID_REQ:
++ case DL_TEST_REQ:
++ case DL_REPLY_UPDATE_REQ:
++ case DL_REPLY_REQ:
++ case DL_DATA_ACK_REQ:
++#endif
++ case DL_CONNECT_REQ:
++ case DL_TOKEN_REQ:
++ dlpi_error(q, us, d-&gt;dl_primitive, DL_NOTSUPPORTED, 0);
++ break;
++
++ case DL_CONNECT_RES:
++ case DL_DISCONNECT_REQ:
++ case DL_RESET_REQ:
++ case DL_RESET_RES:
++ dlpi_error(q, us, d-&gt;dl_primitive, DL_OUTSTATE, 0);
++ break;
++
++ case DL_UDQOS_REQ:
++ dlpi_error(q, us, d-&gt;dl_primitive, DL_BADQOSTYPE, 0);
++ break;
++
++#if DL_CURRENT_VERSION &gt;= 2
++ case DL_TEST_RES:
++ case DL_XID_RES:
++ break;
++#endif
++
++ default:
++ cmn_err(CE_CONT, &quot;ppp: unknown dlpi prim 0x%x\n&quot;, d-&gt;dl_primitive);
++ /* fall through */
++ badprim:
++ dlpi_error(q, us, d-&gt;dl_primitive, DL_BADPRIM, 0);
++ break;
++ }
++ freemsg(mp);
++}
++
++static void
++dlpi_error(q, us, prim, err, uerr)
++ queue_t *q;
++ upperstr_t *us;
++ int prim, err, uerr;
++{
++ mblk_t *reply;
++ dl_error_ack_t *errp;
++
++ if (us-&gt;flags &amp; US_DBGLOG)
++ DPRINT3(&quot;ppp/%d: dlpi error, prim=%x, err=%x\n&quot;, us-&gt;mn, prim, err);
++ reply = allocb(sizeof(dl_error_ack_t), BPRI_HI);
++ if (reply == 0)
++ return; /* XXX should do bufcall */
++ reply-&gt;b_datap-&gt;db_type = M_PCPROTO;
++ errp = (dl_error_ack_t *) reply-&gt;b_wptr;
++ reply-&gt;b_wptr += sizeof(dl_error_ack_t);
++ errp-&gt;dl_primitive = DL_ERROR_ACK;
++ errp-&gt;dl_error_primitive = prim;
++ errp-&gt;dl_errno = err;
++ errp-&gt;dl_unix_errno = uerr;
++ qreply(q, reply);
++}
++
++static void
++dlpi_ok(q, prim)
++ queue_t *q;
++ int prim;
++{
++ mblk_t *reply;
++ dl_ok_ack_t *okp;
++
++ reply = allocb(sizeof(dl_ok_ack_t), BPRI_HI);
++ if (reply == 0)
++ return; /* XXX should do bufcall */
++ reply-&gt;b_datap-&gt;db_type = M_PCPROTO;
++ okp = (dl_ok_ack_t *) reply-&gt;b_wptr;
++ reply-&gt;b_wptr += sizeof(dl_ok_ack_t);
++ okp-&gt;dl_primitive = DL_OK_ACK;
++ okp-&gt;dl_correct_primitive = prim;
++ qreply(q, reply);
++}
++#endif /* NO_DLPI */
++
++static int
++pass_packet(us, mp, outbound)
++ upperstr_t *us;
++ mblk_t *mp;
++ int outbound;
++{
++ int pass;
++ upperstr_t *ppa;
++
++ if ((ppa = us-&gt;ppa) == 0) {
++ freemsg(mp);
++ return 0;
++ }
++
++#ifdef FILTER_PACKETS
++ pass = ip_hard_filter(us, mp, outbound);
++#else
++ /*
++ * Here is where we might, in future, decide whether to pass
++ * or drop the packet, and whether it counts as link activity.
++ */
++ pass = 1;
++#endif /* FILTER_PACKETS */
++
++ if (pass &lt; 0) {
++ /* pass only if link already up, and don't update time */
++ if (ppa-&gt;lowerq == 0) {
++ freemsg(mp);
++ return 0;
++ }
++ pass = 1;
++ } else if (pass) {
++ if (outbound)
++ ppa-&gt;last_sent = time;
++ else
++ ppa-&gt;last_recv = time;
++ }
++
++ return pass;
++}
++
++/*
++ * We have some data to send down to the lower stream (or up the
++ * control stream, if we don't have a lower stream attached).
++ * Returns 1 if the message was dealt with, 0 if it wasn't able
++ * to be sent on and should therefore be queued up.
++ */
++static int
++send_data(mp, us)
++ mblk_t *mp;
++ upperstr_t *us;
++{
++ upperstr_t *ppa;
++
++ if ((us-&gt;flags &amp; US_BLOCKED) || us-&gt;npmode == NPMODE_QUEUE)
++ return 0;
++ ppa = us-&gt;ppa;
++ if (ppa == 0 || us-&gt;npmode == NPMODE_DROP || us-&gt;npmode == NPMODE_ERROR) {
++ if (us-&gt;flags &amp; US_DBGLOG)
++ DPRINT2(&quot;ppp/%d: dropping pkt (npmode=%d)\n&quot;, us-&gt;mn, us-&gt;npmode);
++ freemsg(mp);
++ return 1;
++ }
++ if (ppa-&gt;lowerq == 0) {
++ /* try to send it up the control stream */
++ if (bcanputnext(ppa-&gt;q, mp-&gt;b_band)) {
++ /*
++ * The message seems to get corrupted for some reason if
++ * we just send the message up as it is, so we send a copy.
++ */
++ mblk_t *np = copymsg(mp);
++ freemsg(mp);
++ if (np != 0)
++ putnext(ppa-&gt;q, np);
++ return 1;
++ }
++ } else {
++ if (bcanputnext(ppa-&gt;lowerq, mp-&gt;b_band)) {
++ MT_ENTER(&amp;ppa-&gt;stats_lock);
++ ppa-&gt;stats.ppp_opackets++;
++ ppa-&gt;stats.ppp_obytes += msgdsize(mp);
++#ifdef INCR_OPACKETS
++ INCR_OPACKETS(ppa);
++#endif
++ MT_EXIT(&amp;ppa-&gt;stats_lock);
++ /*
++ * The lower queue is only ever detached while holding an
++ * exclusive lock on the whole driver. So we can be confident
++ * that the lower queue is still there.
++ */
++ putnext(ppa-&gt;lowerq, mp);
++ return 1;
++ }
++ }
++ us-&gt;flags |= US_BLOCKED;
++ return 0;
++}
++
++/*
++ * Allocate a new PPA id and link this stream into the list of PPAs.
++ * This procedure is called with an exclusive lock on all queues in
++ * this driver.
++ */
++static void
++new_ppa(q, mp)
++ queue_t *q;
++ mblk_t *mp;
++{
++ upperstr_t *us, *up, **usp;
++ int ppa_id;
++
++ us = (upperstr_t *) q-&gt;q_ptr;
++ if (us == 0) {
++ DPRINT(&quot;new_ppa: q_ptr = 0!\n&quot;);
++ return;
++ }
++
++ usp = &amp;ppas;
++ ppa_id = 0;
++ while ((up = *usp) != 0 &amp;&amp; ppa_id == up-&gt;ppa_id) {
++ ++ppa_id;
++ usp = &amp;up-&gt;nextppa;
++ }
++ us-&gt;ppa_id = ppa_id;
++ us-&gt;ppa = us;
++ us-&gt;next = 0;
++ us-&gt;nextppa = *usp;
++ *usp = us;
++ us-&gt;flags |= US_CONTROL;
++ us-&gt;npmode = NPMODE_PASS;
++
++ us-&gt;mtu = PPP_MTU;
++ us-&gt;mru = PPP_MRU;
++
++#ifdef SOL2
++ /*
++ * Create a kstats record for our statistics, so netstat -i works.
++ */
++ if (us-&gt;kstats == 0) {
++ char unit[32];
++
++ sprintf(unit, &quot;ppp%d&quot;, us-&gt;ppa-&gt;ppa_id);
++ us-&gt;kstats = kstat_create(&quot;ppp&quot;, us-&gt;ppa-&gt;ppa_id, unit,
++ &quot;net&quot;, KSTAT_TYPE_NAMED, 4, 0);
++ if (us-&gt;kstats != 0) {
++ kstat_named_t *kn = KSTAT_NAMED_PTR(us-&gt;kstats);
++
++ strcpy(kn[0].name, &quot;ipackets&quot;);
++ kn[0].data_type = KSTAT_DATA_ULONG;
++ strcpy(kn[1].name, &quot;ierrors&quot;);
++ kn[1].data_type = KSTAT_DATA_ULONG;
++ strcpy(kn[2].name, &quot;opackets&quot;);
++ kn[2].data_type = KSTAT_DATA_ULONG;
++ strcpy(kn[3].name, &quot;oerrors&quot;);
++ kn[3].data_type = KSTAT_DATA_ULONG;
++ kstat_install(us-&gt;kstats);
++ }
++ }
++#endif /* SOL2 */
++
++ *(int *)mp-&gt;b_cont-&gt;b_rptr = ppa_id;
++ mp-&gt;b_datap-&gt;db_type = M_IOCACK;
++ qreply(q, mp);
++}
++
++static void
++attach_ppa(q, mp)
++ queue_t *q;
++ mblk_t *mp;
++{
++ upperstr_t *us, *t;
++
++ us = (upperstr_t *) q-&gt;q_ptr;
++ if (us == 0) {
++ DPRINT(&quot;attach_ppa: q_ptr = 0!\n&quot;);
++ return;
++ }
++
++#ifndef NO_DLPI
++ us-&gt;state = DL_UNBOUND;
++#endif
++ for (t = us-&gt;ppa; t-&gt;next != 0; t = t-&gt;next)
++ ;
++ t-&gt;next = us;
++ us-&gt;next = 0;
++ if (mp-&gt;b_datap-&gt;db_type == M_IOCTL) {
++ mp-&gt;b_datap-&gt;db_type = M_IOCACK;
++ qreply(q, mp);
++ } else {
++#ifndef NO_DLPI
++ dlpi_ok(q, DL_ATTACH_REQ);
++#endif
++ }
++}
++
++static void
++detach_ppa(q, mp)
++ queue_t *q;
++ mblk_t *mp;
++{
++ upperstr_t *us, *t;
++
++ us = (upperstr_t *) q-&gt;q_ptr;
++ if (us == 0) {
++ DPRINT(&quot;detach_ppa: q_ptr = 0!\n&quot;);
++ return;
++ }
++
++ for (t = us-&gt;ppa; t-&gt;next != 0; t = t-&gt;next)
++ if (t-&gt;next == us) {
++ t-&gt;next = us-&gt;next;
++ break;
++ }
++ us-&gt;next = 0;
++ us-&gt;ppa = 0;
++#ifndef NO_DLPI
++ us-&gt;state = DL_UNATTACHED;
++ dlpi_ok(q, DL_DETACH_REQ);
++#endif
++}
++
++/*
++ * We call this with qwriter in order to give the upper queue procedures
++ * the guarantee that the lower queue is not going to go away while
++ * they are executing.
++ */
++static void
++detach_lower(q, mp)
++ queue_t *q;
++ mblk_t *mp;
++{
++ upperstr_t *us;
++
++ us = (upperstr_t *) q-&gt;q_ptr;
++ if (us == 0) {
++ DPRINT(&quot;detach_lower: q_ptr = 0!\n&quot;);
++ return;
++ }
++
++ LOCK_LOWER_W;
++ us-&gt;lowerq-&gt;q_ptr = 0;
++ RD(us-&gt;lowerq)-&gt;q_ptr = 0;
++ us-&gt;lowerq = 0;
++ UNLOCK_LOWER;
++
++ /* Unblock streams which now feed back up the control stream. */
++ qenable(us-&gt;q);
++
++ mp-&gt;b_datap-&gt;db_type = M_IOCACK;
++ qreply(q, mp);
++}
++
++static int
++pppuwsrv(q)
++ queue_t *q;
++{
++ upperstr_t *us, *as;
++ mblk_t *mp;
++
++ us = (upperstr_t *) q-&gt;q_ptr;
++ if (us == 0) {
++ DPRINT(&quot;pppuwsrv: q_ptr = 0!\n&quot;);
++ return 0;
++ }
++
++ /*
++ * If this is a control stream, then this service procedure
++ * probably got enabled because of flow control in the lower
++ * stream being enabled (or because of the lower stream going
++ * away). Therefore we enable the service procedure of all
++ * attached upper streams.
++ */
++ if (us-&gt;flags &amp; US_CONTROL) {
++ for (as = us-&gt;next; as != 0; as = as-&gt;next)
++ qenable(WR(as-&gt;q));
++ }
++
++ /* Try to send on any data queued here. */
++ us-&gt;flags &amp;= ~US_BLOCKED;
++ while ((mp = getq(q)) != 0) {
++ if (!send_data(mp, us)) {
++ putbq(q, mp);
++ break;
++ }
++ }
++
++ return 0;
++}
++
++/* should never get called... */
++static int
++ppplwput(q, mp)
++ queue_t *q;
++ mblk_t *mp;
++{
++ putnext(q, mp);
++ return 0;
++}
++
++static int
++ppplwsrv(q)
++ queue_t *q;
++{
++ queue_t *uq;
++
++ /*
++ * Flow control has back-enabled this stream:
++ * enable the upper write service procedure for
++ * the upper control stream for this lower stream.
++ */
++ LOCK_LOWER_R;
++ uq = (queue_t *) q-&gt;q_ptr;
++ if (uq != 0)
++ qenable(uq);
++ UNLOCK_LOWER;
++ return 0;
++}
++
++/*
++ * This should only get called for control streams.
++ */
++static int
++pppurput(q, mp)
++ queue_t *q;
++ mblk_t *mp;
++{
++ upperstr_t *ppa, *us;
++ int proto, len;
++ struct iocblk *iop;
++
++ ppa = (upperstr_t *) q-&gt;q_ptr;
++ if (ppa == 0) {
++ DPRINT(&quot;pppurput: q_ptr = 0!\n&quot;);
++ return 0;
++ }
++
++ switch (mp-&gt;b_datap-&gt;db_type) {
++ case M_CTL:
++ MT_ENTER(&amp;ppa-&gt;stats_lock);
++ switch (*mp-&gt;b_rptr) {
++ case PPPCTL_IERROR:
++#ifdef INCR_IERRORS
++ INCR_IERRORS(ppa);
++#endif
++ ppa-&gt;stats.ppp_ierrors++;
++ break;
++ case PPPCTL_OERROR:
++#ifdef INCR_OERRORS
++ INCR_OERRORS(ppa);
++#endif
++ ppa-&gt;stats.ppp_oerrors++;
++ break;
++ }
++ MT_EXIT(&amp;ppa-&gt;stats_lock);
++ freemsg(mp);
++ break;
++
++ case M_IOCACK:
++ case M_IOCNAK:
++ /*
++ * Attempt to match up the response with the stream
++ * that the request came from.
++ */
++ iop = (struct iocblk *) mp-&gt;b_rptr;
++ for (us = ppa; us != 0; us = us-&gt;next)
++ if (us-&gt;ioc_id == iop-&gt;ioc_id)
++ break;
++ if (us == 0)
++ freemsg(mp);
++ else
++ putnext(us-&gt;q, mp);
++ break;
++
++ case M_HANGUP:
++ /*
++ * The serial device has hung up. We don't want to send
++ * the M_HANGUP message up to pppd because that will stop
++ * us from using the control stream any more. Instead we
++ * send a zero-length message as an end-of-file indication.
++ */
++ freemsg(mp);
++ mp = allocb(1, BPRI_HI);
++ if (mp == 0) {
++ DPRINT1(&quot;ppp/%d: couldn't allocate eof message!\n&quot;, ppa-&gt;mn);
++ break;
++ }
++ putnext(ppa-&gt;q, mp);
++ break;
++
++ default:
++ if (mp-&gt;b_datap-&gt;db_type == M_DATA) {
++ len = msgdsize(mp);
++ if (mp-&gt;b_wptr - mp-&gt;b_rptr &lt; PPP_HDRLEN) {
++ PULLUP(mp, PPP_HDRLEN);
++ if (mp == 0) {
++ DPRINT1(&quot;ppp_urput: msgpullup failed (len=%d)\n&quot;, len);
++ break;
++ }
++ }
++ MT_ENTER(&amp;ppa-&gt;stats_lock);
++ ppa-&gt;stats.ppp_ipackets++;
++ ppa-&gt;stats.ppp_ibytes += len;
++#ifdef INCR_IPACKETS
++ INCR_IPACKETS(ppa);
++#endif
++ MT_EXIT(&amp;ppa-&gt;stats_lock);
++
++ proto = PPP_PROTOCOL(mp-&gt;b_rptr);
++
++#if defined(SOL2)
++ /*
++ * Should there be any promiscuous stream(s), send the data
++ * up for each promiscuous stream that we recognize.
++ */
++ promisc_sendup(ppa, mp, proto, 1);
++#endif /* defined(SOL2) */
++
++ if (proto &lt; 0x8000 &amp;&amp; (us = find_dest(ppa, proto)) != 0) {
++ /*
++ * A data packet for some network protocol.
++ * Queue it on the upper stream for that protocol.
++ * XXX could we just putnext it? (would require thought)
++ * The rblocked flag is there to ensure that we keep
++ * messages in order for each network protocol.
++ */
++ if (!pass_packet(us, mp, 0))
++ break;
++ if (!us-&gt;rblocked &amp;&amp; !canput(us-&gt;q))
++ us-&gt;rblocked = 1;
++ if (!us-&gt;rblocked)
++ putq(us-&gt;q, mp);
++ else
++ putq(q, mp);
++ break;
++ }
++ }
++ /*
++ * A control frame, a frame for an unknown protocol,
++ * or some other message type.
++ * Send it up to pppd via the control stream.
++ */
++ if (queclass(mp) == QPCTL || canputnext(ppa-&gt;q))
++ putnext(ppa-&gt;q, mp);
++ else
++ putq(q, mp);
++ break;
++ }
++
++ return 0;
++}
++
++static int
++pppursrv(q)
++ queue_t *q;
++{
++ upperstr_t *us, *as;
++ mblk_t *mp, *hdr;
++#ifndef NO_DLPI
++ dl_unitdata_ind_t *ud;
++#endif
++ int proto;
++
++ us = (upperstr_t *) q-&gt;q_ptr;
++ if (us == 0) {
++ DPRINT(&quot;pppursrv: q_ptr = 0!\n&quot;);
++ return 0;
++ }
++
++ if (us-&gt;flags &amp; US_CONTROL) {
++ /*
++ * A control stream.
++ * If there is no lower queue attached, run the write service
++ * routines of other upper streams attached to this PPA.
++ */
++ if (us-&gt;lowerq == 0) {
++ as = us;
++ do {
++ if (as-&gt;flags &amp; US_BLOCKED)
++ qenable(WR(as-&gt;q));
++ as = as-&gt;next;
++ } while (as != 0);
++ }
++
++ /*
++ * Messages get queued on this stream's read queue if they
++ * can't be queued on the read queue of the attached stream
++ * that they are destined for. This is for flow control -
++ * when this queue fills up, the lower read put procedure will
++ * queue messages there and the flow control will propagate
++ * down from there.
++ */
++ while ((mp = getq(q)) != 0) {
++ proto = PPP_PROTOCOL(mp-&gt;b_rptr);
++ if (proto &lt; 0x8000 &amp;&amp; (as = find_dest(us, proto)) != 0) {
++ if (!canput(as-&gt;q))
++ break;
++ putq(as-&gt;q, mp);
++ } else {
++ if (!canputnext(q))
++ break;
++ putnext(q, mp);
++ }
++ }
++ if (mp) {
++ putbq(q, mp);
++ } else {
++ /* can now put stuff directly on network protocol streams again */
++ for (as = us-&gt;next; as != 0; as = as-&gt;next)
++ as-&gt;rblocked = 0;
++ }
++
++ /*
++ * If this stream has a lower stream attached,
++ * enable the read queue's service routine.
++ * XXX we should really only do this if the queue length
++ * has dropped below the low-water mark.
++ */
++ if (us-&gt;lowerq != 0)
++ qenable(RD(us-&gt;lowerq));
++
++ } else {
++ /*
++ * A network protocol stream. Put a DLPI header on each
++ * packet and send it on.
++ * (Actually, it seems that the IP module will happily
++ * accept M_DATA messages without the DL_UNITDATA_IND header.)
++ */
++ while ((mp = getq(q)) != 0) {
++ if (!canputnext(q)) {
++ putbq(q, mp);
++ break;
++ }
++#ifndef NO_DLPI
++ proto = PPP_PROTOCOL(mp-&gt;b_rptr);
++ mp-&gt;b_rptr += PPP_HDRLEN;
++ hdr = allocb(sizeof(dl_unitdata_ind_t) + 2 * sizeof(uint),
++ BPRI_MED);
++ if (hdr == 0) {
++ /* XXX should put it back and use bufcall */
++ freemsg(mp);
++ continue;
++ }
++ hdr-&gt;b_datap-&gt;db_type = M_PROTO;
++ ud = (dl_unitdata_ind_t *) hdr-&gt;b_wptr;
++ hdr-&gt;b_wptr += sizeof(dl_unitdata_ind_t) + 2 * sizeof(uint);
++ hdr-&gt;b_cont = mp;
++ ud-&gt;dl_primitive = DL_UNITDATA_IND;
++ ud-&gt;dl_dest_addr_length = sizeof(uint);
++ ud-&gt;dl_dest_addr_offset = sizeof(dl_unitdata_ind_t);
++ ud-&gt;dl_src_addr_length = sizeof(uint);
++ ud-&gt;dl_src_addr_offset = ud-&gt;dl_dest_addr_offset + sizeof(uint);
++#if DL_CURRENT_VERSION &gt;= 2
++ ud-&gt;dl_group_address = 0;
++#endif
++ /* Send the DLPI client the data with the SAP they requested,
++ (e.g. ETHERTYPE_IP) rather than the PPP protocol number
++ (e.g. PPP_IP) */
++ ((uint *)(ud + 1))[0] = us-&gt;req_sap; /* dest SAP */
++ ((uint *)(ud + 1))[1] = us-&gt;req_sap; /* src SAP */
++ putnext(q, hdr);
++#else /* NO_DLPI */
++ putnext(q, mp);
++#endif /* NO_DLPI */
++ }
++ /*
++ * Now that we have consumed some packets from this queue,
++ * enable the control stream's read service routine so that we
++ * can process any packets for us that might have got queued
++ * there for flow control reasons.
++ */
++ if (us-&gt;ppa)
++ qenable(us-&gt;ppa-&gt;q);
++ }
++
++ return 0;
++}
++
++static upperstr_t *
++find_dest(ppa, proto)
++ upperstr_t *ppa;
++ int proto;
++{
++ upperstr_t *us;
++
++ for (us = ppa-&gt;next; us != 0; us = us-&gt;next)
++ if (proto == us-&gt;sap)
++ break;
++ return us;
++}
++
++#if defined (SOL2)
++/*
++ * Test upstream promiscuous conditions. As of now, only pass IPv4 and
++ * Ipv6 packets upstream (let PPP packets be decoded elsewhere).
++ */
++static upperstr_t *
++find_promisc(us, proto)
++ upperstr_t *us;
++ int proto;
++{
++
++ if ((proto != PPP_IP) &amp;&amp; (proto != PPP_IPV6))
++ return (upperstr_t *)0;
++
++ for ( ; us; us = us-&gt;next) {
++ if ((us-&gt;flags &amp; US_PROMISC) &amp;&amp; (us-&gt;state == DL_IDLE))
++ return us;
++ }
++
++ return (upperstr_t *)0;
++}
++
++/*
++ * Prepend an empty Ethernet header to msg for snoop, et al.
++ */
++static mblk_t *
++prepend_ether(us, mp, proto)
++ upperstr_t *us;
++ mblk_t *mp;
++ int proto;
++{
++ mblk_t *eh;
++ int type;
++
++ if ((eh = allocb(sizeof(struct ether_header), BPRI_HI)) == 0) {
++ freemsg(mp);
++ return (mblk_t *)0;
++ }
++
++ if (proto == PPP_IP)
++ type = ETHERTYPE_IP;
++ else if (proto == PPP_IPV6)
++ type = ETHERTYPE_IPV6;
++ else
++ type = proto; /* What else? Let decoder decide */
++
++ eh-&gt;b_wptr += sizeof(struct ether_header);
++ bzero((caddr_t)eh-&gt;b_rptr, sizeof(struct ether_header));
++ ((struct ether_header *)eh-&gt;b_rptr)-&gt;ether_type = htons((short)type);
++ eh-&gt;b_cont = mp;
++ return (eh);
++}
++
++/*
++ * Prepend DL_UNITDATA_IND mblk to msg
++ */
++static mblk_t *
++prepend_udind(us, mp, proto)
++ upperstr_t *us;
++ mblk_t *mp;
++ int proto;
++{
++ dl_unitdata_ind_t *dlu;
++ mblk_t *dh;
++ size_t size;
++
++ size = sizeof(dl_unitdata_ind_t);
++ if ((dh = allocb(size, BPRI_MED)) == 0) {
++ freemsg(mp);
++ return (mblk_t *)0;
++ }
++
++ dh-&gt;b_datap-&gt;db_type = M_PROTO;
++ dh-&gt;b_wptr = dh-&gt;b_datap-&gt;db_lim;
++ dh-&gt;b_rptr = dh-&gt;b_wptr - size;
++
++ dlu = (dl_unitdata_ind_t *)dh-&gt;b_rptr;
++ dlu-&gt;dl_primitive = DL_UNITDATA_IND;
++ dlu-&gt;dl_dest_addr_length = 0;
++ dlu-&gt;dl_dest_addr_offset = sizeof(dl_unitdata_ind_t);
++ dlu-&gt;dl_src_addr_length = 0;
++ dlu-&gt;dl_src_addr_offset = sizeof(dl_unitdata_ind_t);
++ dlu-&gt;dl_group_address = 0;
++
++ dh-&gt;b_cont = mp;
++ return (dh);
++}
++
++/*
++ * For any recognized promiscuous streams, send data upstream
++ */
++static void
++promisc_sendup(ppa, mp, proto, skip)
++ upperstr_t *ppa;
++ mblk_t *mp;
++ int proto, skip;
++{
++ mblk_t *dup_mp, *dup_dup_mp;
++ upperstr_t *prus, *nprus;
++
++ if ((prus = find_promisc(ppa, proto)) != 0) {
++ if (dup_mp = dupmsg(mp)) {
++
++ if (skip)
++ dup_mp-&gt;b_rptr += PPP_HDRLEN;
++
++ for ( ; nprus = find_promisc(prus-&gt;next, proto);
++ prus = nprus) {
++
++ if (dup_dup_mp = dupmsg(dup_mp)) {
++ if (canputnext(prus-&gt;q)) {
++ if (prus-&gt;flags &amp; US_RAWDATA) {
++ dup_dup_mp = prepend_ether(prus, dup_dup_mp, proto);
++ putnext(prus-&gt;q, dup_dup_mp);
++ } else {
++ dup_dup_mp = prepend_udind(prus, dup_dup_mp, proto);
++ putnext(prus-&gt;q, dup_dup_mp);
++ }
++ } else {
++ DPRINT(&quot;ppp_urput: data to promisc q dropped\n&quot;);
++ freemsg(dup_dup_mp);
++ }
++ }
++ }
++
++ if (canputnext(prus-&gt;q)) {
++ if (prus-&gt;flags &amp; US_RAWDATA) {
++ dup_mp = prepend_ether(prus, dup_mp, proto);
++ putnext(prus-&gt;q, dup_mp);
++ } else {
++ dup_mp = prepend_udind(prus, dup_mp, proto);
++ putnext(prus-&gt;q, dup_mp);
++ }
++ } else {
++ DPRINT(&quot;ppp_urput: data to promisc q dropped\n&quot;);
++ freemsg(dup_mp);
++ }
++ }
++ }
++}
++#endif /* defined(SOL2) */
++
++/*
++ * We simply put the message on to the associated upper control stream
++ * (either here or in ppplrsrv). That way we enter the perimeters
++ * before looking through the list of attached streams to decide which
++ * stream it should go up.
++ */
++static int
++ppplrput(q, mp)
++ queue_t *q;
++ mblk_t *mp;
++{
++ queue_t *uq;
++ struct iocblk *iop;
++
++ switch (mp-&gt;b_datap-&gt;db_type) {
++ case M_IOCTL:
++ iop = (struct iocblk *) mp-&gt;b_rptr;
++ iop-&gt;ioc_error = EINVAL;
++ mp-&gt;b_datap-&gt;db_type = M_IOCNAK;
++ qreply(q, mp);
++ return 0;
++ case M_FLUSH:
++ if (*mp-&gt;b_rptr &amp; FLUSHR)
++ flushq(q, FLUSHDATA);
++ if (*mp-&gt;b_rptr &amp; FLUSHW) {
++ *mp-&gt;b_rptr &amp;= ~FLUSHR;
++ qreply(q, mp);
++ } else
++ freemsg(mp);
++ return 0;
++ }
++
++ /*
++ * If we can't get the lower lock straight away, queue this one
++ * rather than blocking, to avoid the possibility of deadlock.
++ */
++ if (!TRYLOCK_LOWER_R) {
++ putq(q, mp);
++ return 0;
++ }
++
++ /*
++ * Check that we're still connected to the driver.
++ */
++ uq = (queue_t *) q-&gt;q_ptr;
++ if (uq == 0) {
++ UNLOCK_LOWER;
++ DPRINT1(&quot;ppplrput: q = %x, uq = 0??\n&quot;, q);
++ freemsg(mp);
++ return 0;
++ }
++
++ /*
++ * Try to forward the message to the put routine for the upper
++ * control stream for this lower stream.
++ * If there are already messages queued here, queue this one so
++ * they don't get out of order.
++ */
++ if (queclass(mp) == QPCTL || (qsize(q) == 0 &amp;&amp; canput(uq)))
++ put(uq, mp);
++ else
++ putq(q, mp);
++
++ UNLOCK_LOWER;
++ return 0;
++}
++
++static int
++ppplrsrv(q)
++ queue_t *q;
++{
++ mblk_t *mp;
++ queue_t *uq;
++
++ /*
++ * Packets get queued here for flow control reasons
++ * or if the lrput routine couldn't get the lower lock
++ * without blocking.
++ */
++ LOCK_LOWER_R;
++ uq = (queue_t *) q-&gt;q_ptr;
++ if (uq == 0) {
++ UNLOCK_LOWER;
++ flushq(q, FLUSHALL);
++ DPRINT1(&quot;ppplrsrv: q = %x, uq = 0??\n&quot;, q);
++ return 0;
++ }
++ while ((mp = getq(q)) != 0) {
++ if (queclass(mp) == QPCTL || canput(uq))
++ put(uq, mp);
++ else {
++ putbq(q, mp);
++ break;
++ }
++ }
++ UNLOCK_LOWER;
++ return 0;
++}
++
++static int
++putctl2(q, type, code, val)
++ queue_t *q;
++ int type, code, val;
++{
++ mblk_t *mp;
++
++ mp = allocb(2, BPRI_HI);
++ if (mp == 0)
++ return 0;
++ mp-&gt;b_datap-&gt;db_type = type;
++ mp-&gt;b_wptr[0] = code;
++ mp-&gt;b_wptr[1] = val;
++ mp-&gt;b_wptr += 2;
++ putnext(q, mp);
++ return 1;
++}
++
++static int
++putctl4(q, type, code, val)
++ queue_t *q;
++ int type, code, val;
++{
++ mblk_t *mp;
++
++ mp = allocb(4, BPRI_HI);
++ if (mp == 0)
++ return 0;
++ mp-&gt;b_datap-&gt;db_type = type;
++ mp-&gt;b_wptr[0] = code;
++ ((short *)mp-&gt;b_wptr)[1] = val;
++ mp-&gt;b_wptr += 4;
++ putnext(q, mp);
++ return 1;
++}
++
++static void
++debug_dump(q, mp)
++ queue_t *q;
++ mblk_t *mp;
++{
++ upperstr_t *us;
++ queue_t *uq, *lq;
++
++ DPRINT(&quot;ppp upper streams:\n&quot;);
++ for (us = minor_devs; us != 0; us = us-&gt;nextmn) {
++ uq = us-&gt;q;
++ DPRINT3(&quot; %d: q=%x rlev=%d&quot;,
++ us-&gt;mn, uq, (uq? qsize(uq): 0));
++ DPRINT3(&quot; wlev=%d flags=0x%b&quot;, (uq? qsize(WR(uq)): 0),
++ us-&gt;flags, &quot;\020\1priv\2control\3blocked\4last&quot;);
++ DPRINT3(&quot; state=%x sap=%x req_sap=%x&quot;, us-&gt;state, us-&gt;sap,
++ us-&gt;req_sap);
++ if (us-&gt;ppa == 0)
++ DPRINT(&quot; ppa=?\n&quot;);
++ else
++ DPRINT1(&quot; ppa=%d\n&quot;, us-&gt;ppa-&gt;ppa_id);
++ if (us-&gt;flags &amp; US_CONTROL) {
++ lq = us-&gt;lowerq;
++ DPRINT3(&quot; control for %d lq=%x rlev=%d&quot;,
++ us-&gt;ppa_id, lq, (lq? qsize(RD(lq)): 0));
++ DPRINT3(&quot; wlev=%d mru=%d mtu=%d\n&quot;,
++ (lq? qsize(lq): 0), us-&gt;mru, us-&gt;mtu);
++ }
++ }
++ mp-&gt;b_datap-&gt;db_type = M_IOCACK;
++ qreply(q, mp);
++}
++
++#ifdef FILTER_PACKETS
++#include &lt;netinet/in_systm.h&gt;
++#include &lt;netinet/ip.h&gt;
++#include &lt;netinet/udp.h&gt;
++#include &lt;netinet/tcp.h&gt;
++
++#define MAX_IPHDR 128 /* max TCP/IP header size */
++
++
++/* The following table contains a hard-coded list of protocol/port pairs.
++ * Any matching packets are either discarded unconditionally, or,
++ * if ok_if_link_up is non-zero when a connection does not currently exist
++ * (i.e., they go through if the connection is present, but never initiate
++ * a dial-out).
++ * This idea came from a post by dm@garage.uun.org (David Mazieres)
++ */
++static struct pktfilt_tab {
++ int proto;
++ u_short port;
++ u_short ok_if_link_up;
++} pktfilt_tab[] = {
++ { IPPROTO_UDP, 520, 1 }, /* RIP, ok to pass if link is up */
++ { IPPROTO_UDP, 123, 1 }, /* NTP, don't keep up the link for it */
++ { -1, 0, 0 } /* terminator entry has port == -1 */
++};
++
++
++static int
++ip_hard_filter(us, mp, outbound)
++ upperstr_t *us;
++ mblk_t *mp;
++ int outbound;
++{
++ struct ip *ip;
++ struct pktfilt_tab *pft;
++ mblk_t *temp_mp;
++ int proto;
++ int len, hlen;
++
++
++ /* Note, the PPP header has already been pulled up in all cases */
++ proto = PPP_PROTOCOL(mp-&gt;b_rptr);
++ if (us-&gt;flags &amp; US_DBGLOG)
++ DPRINT3(&quot;ppp/%d: filter, proto=0x%x, out=%d\n&quot;, us-&gt;mn, proto, outbound);
++
++ switch (proto)
++ {
++ case PPP_IP:
++ if ((mp-&gt;b_wptr - mp-&gt;b_rptr) == PPP_HDRLEN &amp;&amp; mp-&gt;b_cont != 0) {
++ temp_mp = mp-&gt;b_cont;
++ len = msgdsize(temp_mp);
++ hlen = (len &lt; MAX_IPHDR) ? len : MAX_IPHDR;
++ PULLUP(temp_mp, hlen);
++ if (temp_mp == 0) {
++ DPRINT2(&quot;ppp/%d: filter, pullup next failed, len=%d\n&quot;,
++ us-&gt;mn, hlen);
++ mp-&gt;b_cont = 0; /* PULLUP() freed the rest */
++ freemsg(mp);
++ return 0;
++ }
++ ip = (struct ip *)mp-&gt;b_cont-&gt;b_rptr;
++ }
++ else {
++ len = msgdsize(mp);
++ hlen = (len &lt; (PPP_HDRLEN+MAX_IPHDR)) ? len : (PPP_HDRLEN+MAX_IPHDR);
++ PULLUP(mp, hlen);
++ if (mp == 0) {
++ DPRINT2(&quot;ppp/%d: filter, pullup failed, len=%d\n&quot;,
++ us-&gt;mn, hlen);
++ return 0;
++ }
++ ip = (struct ip *)(mp-&gt;b_rptr + PPP_HDRLEN);
++ }
++
++ /* For IP traffic, certain packets (e.g., RIP) may be either
++ * 1. ignored - dropped completely
++ * 2. will not initiate a connection, but
++ * will be passed if a connection is currently up.
++ */
++ for (pft=pktfilt_tab; pft-&gt;proto != -1; pft++) {
++ if (ip-&gt;ip_p == pft-&gt;proto) {
++ switch(pft-&gt;proto) {
++ case IPPROTO_UDP:
++ if (((struct udphdr *) &amp;((int *)ip)[ip-&gt;ip_hl])-&gt;uh_dport
++ == htons(pft-&gt;port)) goto endfor;
++ break;
++ case IPPROTO_TCP:
++ if (((struct tcphdr *) &amp;((int *)ip)[ip-&gt;ip_hl])-&gt;th_dport
++ == htons(pft-&gt;port)) goto endfor;
++ break;
++ }
++ }
++ }
++ endfor:
++ if (pft-&gt;proto != -1) {
++ if (us-&gt;flags &amp; US_DBGLOG)
++ DPRINT3(&quot;ppp/%d: found IP pkt, proto=0x%x (%d)\n&quot;,
++ us-&gt;mn, pft-&gt;proto, pft-&gt;port);
++ /* Discard if not connected, or if not pass_with_link_up */
++ /* else, if link is up let go by, but don't update time */
++ return pft-&gt;ok_if_link_up? -1: 0;
++ }
++ break;
++ } /* end switch (proto) */
++
++ return 1;
++}
++#endif /* FILTER_PACKETS */
++
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/modules/ppp.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pppmodulesppp_ahdlcc">Added: drakx/trunk/mdk-stage1/ppp/modules/ppp_ahdlc.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/modules/ppp_ahdlc.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/modules/ppp_ahdlc.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,878 @@
++/*
++ * ppp_ahdlc.c - STREAMS module for doing PPP asynchronous HDLC.
++ *
++ * Re-written by Adi Masputra &lt;adi.masputra@sun.com&gt;, based on
++ * the original ppp_ahdlc.c
++ *
++ * Copyright (c) 2000 by Sun Microsystems, Inc.
++ * All rights reserved.
++ *
++ * Permission to use, copy, modify, and distribute this software and its
++ * documentation is hereby granted, provided that the above copyright
++ * notice appears in all copies.
++ *
++ * SUN MAKES NO REPRESENTATION OR WARRANTIES ABOUT THE SUITABILITY OF
++ * THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
++ * TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
++ * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR
++ * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
++ * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES
++ *
++ * Copyright (c) 1994 The Australian National University.
++ * All rights reserved.
++ *
++ * Permission to use, copy, modify, and distribute this software and its
++ * documentation is hereby granted, provided that the above copyright
++ * notice appears in all copies. This software is provided without any
++ * warranty, express or implied. The Australian National University
++ * makes no representations about the suitability of this software for
++ * any purpose.
++ *
++ * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY
++ * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
++ * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
++ * THE AUSTRALIAN NATIONAL UNIVERSITY HAS BEEN ADVISED OF THE POSSIBILITY
++ * OF SUCH DAMAGE.
++ *
++ * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
++ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
++ * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
++ * ON AN &quot;AS IS&quot; BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO
++ * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
++ * OR MODIFICATIONS.
++ *
++ * $Id: ppp_ahdlc.c 195720 2001-06-11 11:44:34Z gc $
++ */
++
++/*
++ * This file is used under Solaris 2, SVR4, SunOS 4, and Digital UNIX.
++ */
++#include &lt;sys/types.h&gt;
++#include &lt;sys/param.h&gt;
++#include &lt;sys/stream.h&gt;
++#include &lt;sys/errno.h&gt;
++
++#ifdef SVR4
++#include &lt;sys/conf.h&gt;
++#include &lt;sys/kmem.h&gt;
++#include &lt;sys/cmn_err.h&gt;
++#include &lt;sys/ddi.h&gt;
++#else
++#include &lt;sys/user.h&gt;
++#ifdef __osf__
++#include &lt;sys/cmn_err.h&gt;
++#endif
++#endif /* SVR4 */
++
++#include &lt;net/ppp_defs.h&gt;
++#include &lt;net/pppio.h&gt;
++#include &quot;ppp_mod.h&quot;
++
++/*
++ * Right now, mutex is only enabled for Solaris 2.x
++ */
++#if defined(SOL2)
++#define USE_MUTEX
++#endif /* SOL2 */
++
++/*
++ * intpointer_t and uintpointer_t are signed and unsigned integer types
++ * large enough to hold any data pointer; that is, data pointers can be
++ * assigned into or from these integer types without losing precision.
++ * On recent Solaris releases, these types are defined in sys/int_types.h,
++ * but not on SunOS 4.x or the earlier Solaris versions.
++ */
++#if defined(_LP64) || defined(_I32LPx)
++typedef long intpointer_t;
++typedef unsigned long uintpointer_t;
++#else
++typedef int intpointer_t;
++typedef unsigned int uintpointer_t;
++#endif
++
++MOD_OPEN_DECL(ahdlc_open);
++MOD_CLOSE_DECL(ahdlc_close);
++static int ahdlc_wput __P((queue_t *, mblk_t *));
++static int ahdlc_rput __P((queue_t *, mblk_t *));
++static void ahdlc_encode __P((queue_t *, mblk_t *));
++static void ahdlc_decode __P((queue_t *, mblk_t *));
++static int msg_byte __P((mblk_t *, unsigned int));
++
++#if defined(SOL2)
++/*
++ * Don't send HDLC start flag is last transmit is within 1.5 seconds -
++ * FLAG_TIME is defined is microseconds
++ */
++#define FLAG_TIME 1500
++#define ABS(x) (x &gt;= 0 ? x : (-x))
++#endif /* SOL2 */
++
++/*
++ * Extract byte i of message mp
++ */
++#define MSG_BYTE(mp, i) ((i) &lt; (mp)-&gt;b_wptr - (mp)-&gt;b_rptr? (mp)-&gt;b_rptr[i]: \
++ msg_byte((mp), (i)))
++
++/*
++ * Is this LCP packet one we have to transmit using LCP defaults?
++ */
++#define LCP_USE_DFLT(mp) (1 &lt;= (code = MSG_BYTE((mp), 4)) &amp;&amp; code &lt;= 7)
++
++/*
++ * Standard STREAMS declarations
++ */
++static struct module_info minfo = {
++ 0x7d23, &quot;ppp_ahdl&quot;, 0, INFPSZ, 32768, 512
++};
++
++static struct qinit rinit = {
++ ahdlc_rput, NULL, ahdlc_open, ahdlc_close, NULL, &amp;minfo, NULL
++};
++
++static struct qinit winit = {
++ ahdlc_wput, NULL, NULL, NULL, NULL, &amp;minfo, NULL
++};
++
++#if defined(SVR4) &amp;&amp; !defined(SOL2)
++int phdldevflag = 0;
++#define ppp_ahdlcinfo phdlinfo
++#endif /* defined(SVR4) &amp;&amp; !defined(SOL2) */
++
++struct streamtab ppp_ahdlcinfo = {
++ &amp;rinit, /* ptr to st_rdinit */
++ &amp;winit, /* ptr to st_wrinit */
++ NULL, /* ptr to st_muxrinit */
++ NULL, /* ptr to st_muxwinit */
++#if defined(SUNOS4)
++ NULL /* ptr to ptr to st_modlist */
++#endif /* SUNOS4 */
++};
++
++#if defined(SUNOS4)
++int ppp_ahdlc_count = 0; /* open counter */
++#endif /* SUNOS4 */
++
++/*
++ * Per-stream state structure
++ */
++typedef struct ahdlc_state {
++#if defined(USE_MUTEX)
++ kmutex_t lock; /* lock for this structure */
++#endif /* USE_MUTEX */
++ int flags; /* link flags */
++ mblk_t *rx_buf; /* ptr to receive buffer */
++ int rx_buf_size; /* receive buffer size */
++ ushort_t infcs; /* calculated rx HDLC FCS */
++ u_int32_t xaccm[8]; /* 256-bit xmit ACCM */
++ u_int32_t raccm; /* 32-bit rcv ACCM */
++ int mtu; /* interface MTU */
++ int mru; /* link MRU */
++ int unit; /* current PPP unit number */
++ struct pppstat stats; /* statistic structure */
++#if defined(SOL2)
++ clock_t flag_time; /* time in usec between flags */
++ clock_t lbolt; /* last updated lbolt */
++#endif /* SOL2 */
++} ahdlc_state_t;
++
++/*
++ * Values for flags
++ */
++#define ESCAPED 0x100 /* last saw escape char on input */
++#define IFLUSH 0x200 /* flushing input due to error */
++
++/*
++ * RCV_B7_1, etc., defined in net/pppio.h, are stored in flags also.
++ */
++#define RCV_FLAGS (RCV_B7_1|RCV_B7_0|RCV_ODDP|RCV_EVNP)
++
++/*
++ * FCS lookup table as calculated by genfcstab.
++ */
++static u_short fcstab[256] = {
++ 0x0000, 0x1189, 0x2312, 0x329b, 0x4624, 0x57ad, 0x6536, 0x74bf,
++ 0x8c48, 0x9dc1, 0xaf5a, 0xbed3, 0xca6c, 0xdbe5, 0xe97e, 0xf8f7,
++ 0x1081, 0x0108, 0x3393, 0x221a, 0x56a5, 0x472c, 0x75b7, 0x643e,
++ 0x9cc9, 0x8d40, 0xbfdb, 0xae52, 0xdaed, 0xcb64, 0xf9ff, 0xe876,
++ 0x2102, 0x308b, 0x0210, 0x1399, 0x6726, 0x76af, 0x4434, 0x55bd,
++ 0xad4a, 0xbcc3, 0x8e58, 0x9fd1, 0xeb6e, 0xfae7, 0xc87c, 0xd9f5,
++ 0x3183, 0x200a, 0x1291, 0x0318, 0x77a7, 0x662e, 0x54b5, 0x453c,
++ 0xbdcb, 0xac42, 0x9ed9, 0x8f50, 0xfbef, 0xea66, 0xd8fd, 0xc974,
++ 0x4204, 0x538d, 0x6116, 0x709f, 0x0420, 0x15a9, 0x2732, 0x36bb,
++ 0xce4c, 0xdfc5, 0xed5e, 0xfcd7, 0x8868, 0x99e1, 0xab7a, 0xbaf3,
++ 0x5285, 0x430c, 0x7197, 0x601e, 0x14a1, 0x0528, 0x37b3, 0x263a,
++ 0xdecd, 0xcf44, 0xfddf, 0xec56, 0x98e9, 0x8960, 0xbbfb, 0xaa72,
++ 0x6306, 0x728f, 0x4014, 0x519d, 0x2522, 0x34ab, 0x0630, 0x17b9,
++ 0xef4e, 0xfec7, 0xcc5c, 0xddd5, 0xa96a, 0xb8e3, 0x8a78, 0x9bf1,
++ 0x7387, 0x620e, 0x5095, 0x411c, 0x35a3, 0x242a, 0x16b1, 0x0738,
++ 0xffcf, 0xee46, 0xdcdd, 0xcd54, 0xb9eb, 0xa862, 0x9af9, 0x8b70,
++ 0x8408, 0x9581, 0xa71a, 0xb693, 0xc22c, 0xd3a5, 0xe13e, 0xf0b7,
++ 0x0840, 0x19c9, 0x2b52, 0x3adb, 0x4e64, 0x5fed, 0x6d76, 0x7cff,
++ 0x9489, 0x8500, 0xb79b, 0xa612, 0xd2ad, 0xc324, 0xf1bf, 0xe036,
++ 0x18c1, 0x0948, 0x3bd3, 0x2a5a, 0x5ee5, 0x4f6c, 0x7df7, 0x6c7e,
++ 0xa50a, 0xb483, 0x8618, 0x9791, 0xe32e, 0xf2a7, 0xc03c, 0xd1b5,
++ 0x2942, 0x38cb, 0x0a50, 0x1bd9, 0x6f66, 0x7eef, 0x4c74, 0x5dfd,
++ 0xb58b, 0xa402, 0x9699, 0x8710, 0xf3af, 0xe226, 0xd0bd, 0xc134,
++ 0x39c3, 0x284a, 0x1ad1, 0x0b58, 0x7fe7, 0x6e6e, 0x5cf5, 0x4d7c,
++ 0xc60c, 0xd785, 0xe51e, 0xf497, 0x8028, 0x91a1, 0xa33a, 0xb2b3,
++ 0x4a44, 0x5bcd, 0x6956, 0x78df, 0x0c60, 0x1de9, 0x2f72, 0x3efb,
++ 0xd68d, 0xc704, 0xf59f, 0xe416, 0x90a9, 0x8120, 0xb3bb, 0xa232,
++ 0x5ac5, 0x4b4c, 0x79d7, 0x685e, 0x1ce1, 0x0d68, 0x3ff3, 0x2e7a,
++ 0xe70e, 0xf687, 0xc41c, 0xd595, 0xa12a, 0xb0a3, 0x8238, 0x93b1,
++ 0x6b46, 0x7acf, 0x4854, 0x59dd, 0x2d62, 0x3ceb, 0x0e70, 0x1ff9,
++ 0xf78f, 0xe606, 0xd49d, 0xc514, 0xb1ab, 0xa022, 0x92b9, 0x8330,
++ 0x7bc7, 0x6a4e, 0x58d5, 0x495c, 0x3de3, 0x2c6a, 0x1ef1, 0x0f78
++};
++
++static u_int32_t paritytab[8] =
++{
++ 0x96696996, 0x69969669, 0x69969669, 0x96696996,
++ 0x69969669, 0x96696996, 0x96696996, 0x69969669
++};
++
++/*
++ * STREAMS module open (entry) point
++ */
++MOD_OPEN(ahdlc_open)
++{
++ ahdlc_state_t *state;
++
++ /*
++ * Return if it's already opened
++ */
++ if (q-&gt;q_ptr) {
++ return 0;
++ }
++
++ /*
++ * This can only be opened as a module
++ */
++ if (sflag != MODOPEN) {
++ return 0;
++ }
++
++ state = (ahdlc_state_t *) ALLOC_NOSLEEP(sizeof(ahdlc_state_t));
++ if (state == 0)
++ OPEN_ERROR(ENOSR);
++ bzero((caddr_t) state, sizeof(ahdlc_state_t));
++
++ q-&gt;q_ptr = (caddr_t) state;
++ WR(q)-&gt;q_ptr = (caddr_t) state;
++
++#if defined(USE_MUTEX)
++ mutex_init(&amp;state-&gt;lock, NULL, MUTEX_DEFAULT, NULL);
++ mutex_enter(&amp;state-&gt;lock);
++#endif /* USE_MUTEX */
++
++ state-&gt;xaccm[0] = ~0; /* escape 0x00 through 0x1f */
++ state-&gt;xaccm[3] = 0x60000000; /* escape 0x7d and 0x7e */
++ state-&gt;mru = PPP_MRU; /* default of 1500 bytes */
++#if defined(SOL2)
++ state-&gt;flag_time = drv_usectohz(FLAG_TIME);
++#endif /* SOL2 */
++
++#if defined(USE_MUTEX)
++ mutex_exit(&amp;state-&gt;lock);
++#endif /* USE_MUTEX */
++
++#if defined(SUNOS4)
++ ppp_ahdlc_count++;
++#endif /* SUNOS4 */
++
++ qprocson(q);
++
++ return 0;
++}
++
++/*
++ * STREAMS module close (exit) point
++ */
++MOD_CLOSE(ahdlc_close)
++{
++ ahdlc_state_t *state;
++
++ qprocsoff(q);
++
++ state = (ahdlc_state_t *) q-&gt;q_ptr;
++
++ if (state == 0) {
++ DPRINT(&quot;state == 0 in ahdlc_close\n&quot;);
++ return 0;
++ }
++
++#if defined(USE_MUTEX)
++ mutex_enter(&amp;state-&gt;lock);
++#endif /* USE_MUTEX */
++
++ if (state-&gt;rx_buf != 0) {
++ freemsg(state-&gt;rx_buf);
++ state-&gt;rx_buf = 0;
++ }
++
++#if defined(USE_MUTEX)
++ mutex_exit(&amp;state-&gt;lock);
++ mutex_destroy(&amp;state-&gt;lock);
++#endif /* USE_MUTEX */
++
++ FREE(q-&gt;q_ptr, sizeof(ahdlc_state_t));
++ q-&gt;q_ptr = NULL;
++ OTHERQ(q)-&gt;q_ptr = NULL;
++
++#if defined(SUNOS4)
++ if (ppp_ahdlc_count)
++ ppp_ahdlc_count--;
++#endif /* SUNOS4 */
++
++ return 0;
++}
++
++/*
++ * Write side put routine
++ */
++static int
++ahdlc_wput(q, mp)
++ queue_t *q;
++ mblk_t *mp;
++{
++ ahdlc_state_t *state;
++ struct iocblk *iop;
++ int error;
++ mblk_t *np;
++ struct ppp_stats *psp;
++
++ state = (ahdlc_state_t *) q-&gt;q_ptr;
++ if (state == 0) {
++ DPRINT(&quot;state == 0 in ahdlc_wput\n&quot;);
++ freemsg(mp);
++ return 0;
++ }
++
++ switch (mp-&gt;b_datap-&gt;db_type) {
++ case M_DATA:
++ /*
++ * A data packet - do character-stuffing and FCS, and
++ * send it onwards.
++ */
++ ahdlc_encode(q, mp);
++ freemsg(mp);
++ break;
++
++ case M_IOCTL:
++ iop = (struct iocblk *) mp-&gt;b_rptr;
++ error = EINVAL;
++ switch (iop-&gt;ioc_cmd) {
++ case PPPIO_XACCM:
++ if ((iop-&gt;ioc_count &lt; sizeof(u_int32_t)) ||
++ (iop-&gt;ioc_count &gt; sizeof(ext_accm))) {
++ break;
++ }
++ if (mp-&gt;b_cont == 0) {
++ DPRINT1(&quot;ahdlc_wput/%d: PPPIO_XACCM b_cont = 0!\n&quot;, state-&gt;unit);
++ break;
++ }
++#if defined(USE_MUTEX)
++ mutex_enter(&amp;state-&gt;lock);
++#endif /* USE_MUTEX */
++ bcopy((caddr_t)mp-&gt;b_cont-&gt;b_rptr, (caddr_t)state-&gt;xaccm,
++ iop-&gt;ioc_count);
++ state-&gt;xaccm[2] &amp;= ~0x40000000; /* don't escape 0x5e */
++ state-&gt;xaccm[3] |= 0x60000000; /* do escape 0x7d, 0x7e */
++#if defined(USE_MUTEX)
++ mutex_exit(&amp;state-&gt;lock);
++#endif /* USE_MUTEX */
++ iop-&gt;ioc_count = 0;
++ error = 0;
++ break;
++
++ case PPPIO_RACCM:
++ if (iop-&gt;ioc_count != sizeof(u_int32_t))
++ break;
++ if (mp-&gt;b_cont == 0) {
++ DPRINT1(&quot;ahdlc_wput/%d: PPPIO_RACCM b_cont = 0!\n&quot;, state-&gt;unit);
++ break;
++ }
++#if defined(USE_MUTEX)
++ mutex_enter(&amp;state-&gt;lock);
++#endif /* USE_MUTEX */
++ bcopy((caddr_t)mp-&gt;b_cont-&gt;b_rptr, (caddr_t)&amp;state-&gt;raccm,
++ sizeof(u_int32_t));
++#if defined(USE_MUTEX)
++ mutex_exit(&amp;state-&gt;lock);
++#endif /* USE_MUTEX */
++ iop-&gt;ioc_count = 0;
++ error = 0;
++ break;
++
++ case PPPIO_GCLEAN:
++ np = allocb(sizeof(int), BPRI_HI);
++ if (np == 0) {
++ error = ENOSR;
++ break;
++ }
++ if (mp-&gt;b_cont != 0)
++ freemsg(mp-&gt;b_cont);
++ mp-&gt;b_cont = np;
++#if defined(USE_MUTEX)
++ mutex_enter(&amp;state-&gt;lock);
++#endif /* USE_MUTEX */
++ *(int *)np-&gt;b_wptr = state-&gt;flags &amp; RCV_FLAGS;
++#if defined(USE_MUTEX)
++ mutex_exit(&amp;state-&gt;lock);
++#endif /* USE_MUTEX */
++ np-&gt;b_wptr += sizeof(int);
++ iop-&gt;ioc_count = sizeof(int);
++ error = 0;
++ break;
++
++ case PPPIO_GETSTAT:
++ np = allocb(sizeof(struct ppp_stats), BPRI_HI);
++ if (np == 0) {
++ error = ENOSR;
++ break;
++ }
++ if (mp-&gt;b_cont != 0)
++ freemsg(mp-&gt;b_cont);
++ mp-&gt;b_cont = np;
++ psp = (struct ppp_stats *) np-&gt;b_wptr;
++ np-&gt;b_wptr += sizeof(struct ppp_stats);
++ bzero((caddr_t)psp, sizeof(struct ppp_stats));
++ psp-&gt;p = state-&gt;stats;
++ iop-&gt;ioc_count = sizeof(struct ppp_stats);
++ error = 0;
++ break;
++
++ case PPPIO_LASTMOD:
++ /* we knew this anyway */
++ error = 0;
++ break;
++
++ default:
++ error = -1;
++ break;
++ }
++
++ if (error &lt; 0)
++ putnext(q, mp);
++ else if (error == 0) {
++ mp-&gt;b_datap-&gt;db_type = M_IOCACK;
++ qreply(q, mp);
++ } else {
++ mp-&gt;b_datap-&gt;db_type = M_IOCNAK;
++ iop-&gt;ioc_count = 0;
++ iop-&gt;ioc_error = error;
++ qreply(q, mp);
++ }
++ break;
++
++ case M_CTL:
++ switch (*mp-&gt;b_rptr) {
++ case PPPCTL_MTU:
++#if defined(USE_MUTEX)
++ mutex_enter(&amp;state-&gt;lock);
++#endif /* USE_MUTEX */
++ state-&gt;mtu = ((unsigned short *)mp-&gt;b_rptr)[1];
++#if defined(USE_MUTEX)
++ mutex_exit(&amp;state-&gt;lock);
++#endif /* USE_MUTEX */
++ freemsg(mp);
++ break;
++ case PPPCTL_MRU:
++#if defined(USE_MUTEX)
++ mutex_enter(&amp;state-&gt;lock);
++#endif /* USE_MUTEX */
++ state-&gt;mru = ((unsigned short *)mp-&gt;b_rptr)[1];
++#if defined(USE_MUTEX)
++ mutex_exit(&amp;state-&gt;lock);
++#endif /* USE_MUTEX */
++ freemsg(mp);
++ break;
++ case PPPCTL_UNIT:
++#if defined(USE_MUTEX)
++ mutex_enter(&amp;state-&gt;lock);
++#endif /* USE_MUTEX */
++ state-&gt;unit = mp-&gt;b_rptr[1];
++#if defined(USE_MUTEX)
++ mutex_exit(&amp;state-&gt;lock);
++#endif /* USE_MUTEX */
++ break;
++ default:
++ putnext(q, mp);
++ }
++ break;
++
++ default:
++ putnext(q, mp);
++ }
++
++ return 0;
++}
++
++/*
++ * Read side put routine
++ */
++static int
++ahdlc_rput(q, mp)
++ queue_t *q;
++ mblk_t *mp;
++{
++ ahdlc_state_t *state;
++
++ state = (ahdlc_state_t *) q-&gt;q_ptr;
++ if (state == 0) {
++ DPRINT(&quot;state == 0 in ahdlc_rput\n&quot;);
++ freemsg(mp);
++ return 0;
++ }
++
++ switch (mp-&gt;b_datap-&gt;db_type) {
++ case M_DATA:
++ ahdlc_decode(q, mp);
++ freemsg(mp);
++ break;
++
++ case M_HANGUP:
++#if defined(USE_MUTEX)
++ mutex_enter(&amp;state-&gt;lock);
++#endif /* USE_MUTEX */
++ if (state-&gt;rx_buf != 0) {
++ /* XXX would like to send this up for debugging */
++ freemsg(state-&gt;rx_buf);
++ state-&gt;rx_buf = 0;
++ }
++ state-&gt;flags = IFLUSH;
++#if defined(USE_MUTEX)
++ mutex_exit(&amp;state-&gt;lock);
++#endif /* USE_MUTEX */
++ putnext(q, mp);
++ break;
++
++ default:
++ putnext(q, mp);
++ }
++ return 0;
++}
++
++/*
++ * Extract bit c from map m, to determine if c needs to be escaped
++ */
++#define IN_TX_MAP(c, m) ((m)[(c) &gt;&gt; 5] &amp; (1 &lt;&lt; ((c) &amp; 0x1f)))
++
++static void
++ahdlc_encode(q, mp)
++ queue_t *q;
++ mblk_t *mp;
++{
++ ahdlc_state_t *state;
++ u_int32_t *xaccm, loc_xaccm[8];
++ ushort_t fcs;
++ size_t outmp_len;
++ mblk_t *outmp, *tmp;
++ uchar_t *dp, fcs_val;
++ int is_lcp, code;
++#if defined(SOL2)
++ clock_t lbolt;
++#endif /* SOL2 */
++
++ if (msgdsize(mp) &lt; 4) {
++ return;
++ }
++
++ state = (ahdlc_state_t *)q-&gt;q_ptr;
++#if defined(USE_MUTEX)
++ mutex_enter(&amp;state-&gt;lock);
++#endif /* USE_MUTEX */
++
++ /*
++ * Allocate an output buffer large enough to handle a case where all
++ * characters need to be escaped
++ */
++ outmp_len = (msgdsize(mp) &lt;&lt; 1) + /* input block x 2 */
++ (sizeof(fcs) &lt;&lt; 2) + /* HDLC FCS x 4 */
++ (sizeof(uchar_t) &lt;&lt; 1); /* HDLC flags x 2 */
++
++ outmp = allocb(outmp_len, BPRI_MED);
++ if (outmp == NULL) {
++ state-&gt;stats.ppp_oerrors++;
++#if defined(USE_MUTEX)
++ mutex_exit(&amp;state-&gt;lock);
++#endif /* USE_MUTEX */
++ putctl1(RD(q)-&gt;q_next, M_CTL, PPPCTL_OERROR);
++ return;
++ }
++
++#if defined(SOL2)
++ /*
++ * Check if our last transmit happenned within flag_time, using
++ * the system's LBOLT value in clock ticks
++ */
++ if (drv_getparm(LBOLT, &amp;lbolt) != -1) {
++ if (ABS((clock_t)lbolt - state-&gt;lbolt) &gt; state-&gt;flag_time) {
++ *outmp-&gt;b_wptr++ = PPP_FLAG;
++ }
++ state-&gt;lbolt = lbolt;
++ } else {
++ *outmp-&gt;b_wptr++ = PPP_FLAG;
++ }
++#else
++ /*
++ * If the driver below still has a message to process, skip the
++ * HDLC flag, otherwise, put one in the beginning
++ */
++ if (qsize(q-&gt;q_next) == 0) {
++ *outmp-&gt;b_wptr++ = PPP_FLAG;
++ }
++#endif
++
++ /*
++ * All control characters must be escaped for LCP packets with code
++ * values between 1 (Conf-Req) and 7 (Code-Rej).
++ */
++ is_lcp = ((MSG_BYTE(mp, 0) == PPP_ALLSTATIONS) &amp;&amp;
++ (MSG_BYTE(mp, 1) == PPP_UI) &amp;&amp;
++ (MSG_BYTE(mp, 2) == (PPP_LCP &gt;&gt; 8)) &amp;&amp;
++ (MSG_BYTE(mp, 3) == (PPP_LCP &amp; 0xff)) &amp;&amp;
++ LCP_USE_DFLT(mp));
++
++ xaccm = state-&gt;xaccm;
++ if (is_lcp) {
++ bcopy((caddr_t)state-&gt;xaccm, (caddr_t)loc_xaccm, sizeof(loc_xaccm));
++ loc_xaccm[0] = ~0; /* force escape on 0x00 through 0x1f */
++ xaccm = loc_xaccm;
++ }
++
++ fcs = PPP_INITFCS; /* Initial FCS is 0xffff */
++
++ /*
++ * Process this block and the rest (if any) attached to the this one
++ */
++ for (tmp = mp; tmp; tmp = tmp-&gt;b_cont) {
++ if (tmp-&gt;b_datap-&gt;db_type == M_DATA) {
++ for (dp = tmp-&gt;b_rptr; dp &lt; tmp-&gt;b_wptr; dp++) {
++ fcs = PPP_FCS(fcs, *dp);
++ if (IN_TX_MAP(*dp, xaccm)) {
++ *outmp-&gt;b_wptr++ = PPP_ESCAPE;
++ *outmp-&gt;b_wptr++ = *dp ^ PPP_TRANS;
++ } else {
++ *outmp-&gt;b_wptr++ = *dp;
++ }
++ }
++ } else {
++ continue; /* skip if db_type is something other than M_DATA */
++ }
++ }
++
++ /*
++ * Append the HDLC FCS, making sure that escaping is done on any
++ * necessary bytes
++ */
++ fcs_val = (fcs ^ 0xffff) &amp; 0xff;
++ if (IN_TX_MAP(fcs_val, xaccm)) {
++ *outmp-&gt;b_wptr++ = PPP_ESCAPE;
++ *outmp-&gt;b_wptr++ = fcs_val ^ PPP_TRANS;
++ } else {
++ *outmp-&gt;b_wptr++ = fcs_val;
++ }
++
++ fcs_val = ((fcs ^ 0xffff) &gt;&gt; 8) &amp; 0xff;
++ if (IN_TX_MAP(fcs_val, xaccm)) {
++ *outmp-&gt;b_wptr++ = PPP_ESCAPE;
++ *outmp-&gt;b_wptr++ = fcs_val ^ PPP_TRANS;
++ } else {
++ *outmp-&gt;b_wptr++ = fcs_val;
++ }
++
++ /*
++ * And finally, append the HDLC flag, and send it away
++ */
++ *outmp-&gt;b_wptr++ = PPP_FLAG;
++
++ state-&gt;stats.ppp_obytes += msgdsize(outmp);
++ state-&gt;stats.ppp_opackets++;
++
++#if defined(USE_MUTEX)
++ mutex_exit(&amp;state-&gt;lock);
++#endif /* USE_MUTEX */
++
++ putnext(q, outmp);
++ return;
++}
++
++/*
++ * Checks the 32-bit receive ACCM to see if the byte needs un-escaping
++ */
++#define IN_RX_MAP(c, m) ((((unsigned int) (uchar_t) (c)) &lt; 0x20) &amp;&amp; \
++ (m) &amp; (1 &lt;&lt; (c)))
++
++
++/*
++ * Process received characters.
++ */
++static void
++ahdlc_decode(q, mp)
++ queue_t *q;
++ mblk_t *mp;
++{
++ ahdlc_state_t *state;
++ mblk_t *om;
++ uchar_t *dp;
++ ushort_t fcs;
++#if defined(SOL2)
++ mblk_t *zmp;
++#endif /* SOL2 */
++
++#if defined(SOL2)
++ /*
++ * In case the driver (or something below) doesn't send
++ * data upstream in one message block, concatenate everything
++ */
++ if (!((mp-&gt;b_wptr - mp-&gt;b_rptr == msgdsize(mp)) &amp;&amp;
++ ((intpointer_t)mp-&gt;b_rptr % sizeof(intpointer_t) == 0))) {
++
++ zmp = msgpullup(mp, -1);
++ freemsg(mp);
++ mp = zmp;
++ if (mp == 0)
++ return;
++ }
++#endif /* SOL2 */
++
++ state = (ahdlc_state_t *) q-&gt;q_ptr;
++
++#if defined(USE_MUTEX)
++ mutex_enter(&amp;state-&gt;lock);
++#endif /* USE_MUTEX */
++
++ state-&gt;stats.ppp_ibytes += msgdsize(mp);
++
++ for (dp = mp-&gt;b_rptr; dp &lt; mp-&gt;b_wptr; dp++) {
++
++ /*
++ * This should detect the lack of 8-bit communication channel
++ * which is necessary for PPP to work. In addition, it also
++ * checks on the parity.
++ */
++ if (*dp &amp; 0x80)
++ state-&gt;flags |= RCV_B7_1;
++ else
++ state-&gt;flags |= RCV_B7_0;
++
++ if (paritytab[*dp &gt;&gt; 5] &amp; (1 &lt;&lt; (*dp &amp; 0x1f)))
++ state-&gt;flags |= RCV_ODDP;
++ else
++ state-&gt;flags |= RCV_EVNP;
++
++ /*
++ * So we have a HDLC flag ...
++ */
++ if (*dp == PPP_FLAG) {
++
++ /*
++ * If we think that it marks the beginning of the frame,
++ * then continue to process the next octects
++ */
++ if ((state-&gt;flags &amp; IFLUSH) ||
++ (state-&gt;rx_buf == 0) ||
++ (msgdsize(state-&gt;rx_buf) == 0)) {
++
++ state-&gt;flags &amp;= ~IFLUSH;
++ continue;
++ }
++
++ /*
++ * We get here because the above condition isn't true,
++ * in which case the HDLC flag was there to mark the end
++ * of the frame (or so we think)
++ */
++ om = state-&gt;rx_buf;
++
++ if (state-&gt;infcs == PPP_GOODFCS) {
++ state-&gt;stats.ppp_ipackets++;
++ adjmsg(om, -PPP_FCSLEN);
++ putnext(q, om);
++ } else {
++ DPRINT2(&quot;ppp%d: bad fcs (len=%d)\n&quot;,
++ state-&gt;unit, msgdsize(state-&gt;rx_buf));
++ freemsg(state-&gt;rx_buf);
++ state-&gt;flags &amp;= ~(IFLUSH | ESCAPED);
++ state-&gt;stats.ppp_ierrors++;
++ putctl1(q-&gt;q_next, M_CTL, PPPCTL_IERROR);
++ }
++
++ state-&gt;rx_buf = 0;
++ continue;
++ }
++
++ if (state-&gt;flags &amp; IFLUSH) {
++ continue;
++ }
++
++ /*
++ * Allocate a receive buffer, large enough to store a frame (after
++ * un-escaping) of at least 1500 octets. If MRU is negotiated to
++ * be more than the default, then allocate that much. In addition,
++ * we add an extra 32-bytes for a fudge factor
++ */
++ if (state-&gt;rx_buf == 0) {
++ state-&gt;rx_buf_size = (state-&gt;mru &lt; PPP_MRU ? PPP_MRU : state-&gt;mru);
++ state-&gt;rx_buf_size += (sizeof(u_int32_t) &lt;&lt; 3);
++ state-&gt;rx_buf = allocb(state-&gt;rx_buf_size, BPRI_MED);
++
++ /*
++ * If allocation fails, try again on the next frame
++ */
++ if (state-&gt;rx_buf == 0) {
++ state-&gt;flags |= IFLUSH;
++ continue;
++ }
++ state-&gt;flags &amp;= ~(IFLUSH | ESCAPED);
++ state-&gt;infcs = PPP_INITFCS;
++ }
++
++ if (*dp == PPP_ESCAPE) {
++ state-&gt;flags |= ESCAPED;
++ continue;
++ }
++
++ /*
++ * Make sure we un-escape the necessary characters, as well as the
++ * ones in our receive async control character map
++ */
++ if (state-&gt;flags &amp; ESCAPED) {
++ *dp ^= PPP_TRANS;
++ state-&gt;flags &amp;= ~ESCAPED;
++ } else if (IN_RX_MAP(*dp, state-&gt;raccm))
++ continue;
++
++ /*
++ * Unless the peer lied to us about the negotiated MRU, we should
++ * never get a frame which is too long. If it happens, toss it away
++ * and grab the next incoming one
++ */
++ if (msgdsize(state-&gt;rx_buf) &lt; state-&gt;rx_buf_size) {
++ state-&gt;infcs = PPP_FCS(state-&gt;infcs, *dp);
++ *state-&gt;rx_buf-&gt;b_wptr++ = *dp;
++ } else {
++ DPRINT2(&quot;ppp%d: frame too long (%d)\n&quot;,
++ state-&gt;unit, msgdsize(state-&gt;rx_buf));
++ freemsg(state-&gt;rx_buf);
++ state-&gt;rx_buf = 0;
++ state-&gt;flags |= IFLUSH;
++ }
++ }
++
++#if defined(USE_MUTEX)
++ mutex_exit(&amp;state-&gt;lock);
++#endif /* USE_MUTEX */
++}
++
++static int
++msg_byte(mp, i)
++ mblk_t *mp;
++ unsigned int i;
++{
++ while (mp != 0 &amp;&amp; i &gt;= mp-&gt;b_wptr - mp-&gt;b_rptr)
++ mp = mp-&gt;b_cont;
++ if (mp == 0)
++ return -1;
++ return mp-&gt;b_rptr[i];
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/modules/ppp_ahdlc.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pppmodulesppp_compc">Added: drakx/trunk/mdk-stage1/ppp/modules/ppp_comp.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/modules/ppp_comp.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/modules/ppp_comp.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,1126 @@
++/*
++ * ppp_comp.c - STREAMS module for kernel-level compression and CCP support.
++ *
++ * Copyright (c) 1994 The Australian National University.
++ * All rights reserved.
++ *
++ * Permission to use, copy, modify, and distribute this software and its
++ * documentation is hereby granted, provided that the above copyright
++ * notice appears in all copies. This software is provided without any
++ * warranty, express or implied. The Australian National University
++ * makes no representations about the suitability of this software for
++ * any purpose.
++ *
++ * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY
++ * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
++ * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
++ * THE AUSTRALIAN NATIONAL UNIVERSITY HAS BEEN ADVISED OF THE POSSIBILITY
++ * OF SUCH DAMAGE.
++ *
++ * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
++ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
++ * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
++ * ON AN &quot;AS IS&quot; BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO
++ * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
++ * OR MODIFICATIONS.
++ *
++ * $Id: ppp_comp.c 195720 2001-06-11 11:44:34Z gc $
++ */
++
++/*
++ * This file is used under SVR4, Solaris 2, SunOS 4, and Digital UNIX.
++ */
++
++#include &lt;sys/types.h&gt;
++#include &lt;sys/param.h&gt;
++#include &lt;sys/errno.h&gt;
++#include &lt;sys/stream.h&gt;
++
++#ifdef SVR4
++#include &lt;sys/conf.h&gt;
++#include &lt;sys/cmn_err.h&gt;
++#include &lt;sys/ddi.h&gt;
++#else
++#include &lt;sys/user.h&gt;
++#ifdef __osf__
++#include &lt;sys/cmn_err.h&gt;
++#endif
++#endif /* SVR4 */
++
++#include &lt;net/ppp_defs.h&gt;
++#include &lt;net/pppio.h&gt;
++#include &quot;ppp_mod.h&quot;
++
++#ifdef __osf__
++#include &lt;sys/mbuf.h&gt;
++#include &lt;sys/protosw.h&gt;
++#endif
++
++#include &lt;netinet/in.h&gt;
++#include &lt;netinet/in_systm.h&gt;
++#include &lt;netinet/ip.h&gt;
++#include &lt;net/vjcompress.h&gt;
++
++#define PACKETPTR mblk_t *
++#include &lt;net/ppp-comp.h&gt;
++
++MOD_OPEN_DECL(ppp_comp_open);
++MOD_CLOSE_DECL(ppp_comp_close);
++static int ppp_comp_rput __P((queue_t *, mblk_t *));
++static int ppp_comp_rsrv __P((queue_t *));
++static int ppp_comp_wput __P((queue_t *, mblk_t *));
++static int ppp_comp_wsrv __P((queue_t *));
++static void ppp_comp_ccp __P((queue_t *, mblk_t *, int));
++static int msg_byte __P((mblk_t *, unsigned int));
++
++/* Extract byte i of message mp. */
++#define MSG_BYTE(mp, i) ((i) &lt; (mp)-&gt;b_wptr - (mp)-&gt;b_rptr? (mp)-&gt;b_rptr[i]: \
++ msg_byte((mp), (i)))
++
++/* Is this LCP packet one we have to transmit using LCP defaults? */
++#define LCP_USE_DFLT(mp) (1 &lt;= (code = MSG_BYTE((mp), 4)) &amp;&amp; code &lt;= 7)
++
++#define PPP_COMP_ID 0xbadf
++static struct module_info minfo = {
++#ifdef PRIOQ
++ PPP_COMP_ID, &quot;ppp_comp&quot;, 0, INFPSZ, 16512, 16384,
++#else
++ PPP_COMP_ID, &quot;ppp_comp&quot;, 0, INFPSZ, 16384, 4096,
++#endif
++};
++
++static struct qinit r_init = {
++ ppp_comp_rput, ppp_comp_rsrv, ppp_comp_open, ppp_comp_close,
++ NULL, &amp;minfo, NULL
++};
++
++static struct qinit w_init = {
++ ppp_comp_wput, ppp_comp_wsrv, NULL, NULL, NULL, &amp;minfo, NULL
++};
++
++#if defined(SVR4) &amp;&amp; !defined(SOL2)
++int pcmpdevflag = 0;
++#define ppp_compinfo pcmpinfo
++#endif
++struct streamtab ppp_compinfo = {
++ &amp;r_init, &amp;w_init, NULL, NULL
++};
++
++int ppp_comp_count; /* number of module instances in use */
++
++#ifdef __osf__
++
++static void ppp_comp_alloc __P((comp_state_t *));
++typedef struct memreq {
++ unsigned char comp_opts[20];
++ int cmd;
++ int thread_status;
++ char *returned_mem;
++} memreq_t;
++
++#endif
++
++typedef struct comp_state {
++ int flags;
++ int mru;
++ int mtu;
++ int unit;
++ struct compressor *xcomp;
++ void *xstate;
++ struct compressor *rcomp;
++ void *rstate;
++ struct vjcompress vj_comp;
++ int vj_last_ierrors;
++ struct pppstat stats;
++#ifdef __osf__
++ memreq_t memreq;
++ thread_t thread;
++#endif
++} comp_state_t;
++
++
++#ifdef __osf__
++extern task_t first_task;
++#endif
++
++/* Bits in flags are as defined in pppio.h. */
++#define CCP_ERR (CCP_ERROR | CCP_FATALERROR)
++#define LAST_MOD 0x1000000 /* no ppp modules below us */
++#define DBGLOG 0x2000000 /* log debugging stuff */
++
++#define MAX_IPHDR 128 /* max TCP/IP header size */
++#define MAX_VJHDR 20 /* max VJ compressed header size (?) */
++
++#undef MIN /* just in case */
++#define MIN(a, b) ((a) &lt; (b)? (a): (b))
++
++/*
++ * List of compressors we know about.
++ */
++
++#if DO_BSD_COMPRESS
++extern struct compressor ppp_bsd_compress;
++#endif
++#if DO_DEFLATE
++extern struct compressor ppp_deflate, ppp_deflate_draft;
++#endif
++
++struct compressor *ppp_compressors[] = {
++#if DO_BSD_COMPRESS
++ &amp;ppp_bsd_compress,
++#endif
++#if DO_DEFLATE
++ &amp;ppp_deflate,
++ &amp;ppp_deflate_draft,
++#endif
++ NULL
++};
++
++/*
++ * STREAMS module entry points.
++ */
++MOD_OPEN(ppp_comp_open)
++{
++ comp_state_t *cp;
++#ifdef __osf__
++ thread_t thread;
++#endif
++
++ if (q-&gt;q_ptr == NULL) {
++ cp = (comp_state_t *) ALLOC_SLEEP(sizeof(comp_state_t));
++ if (cp == NULL)
++ OPEN_ERROR(ENOSR);
++ bzero((caddr_t)cp, sizeof(comp_state_t));
++ WR(q)-&gt;q_ptr = q-&gt;q_ptr = (caddr_t) cp;
++ cp-&gt;mru = PPP_MRU;
++ cp-&gt;mtu = PPP_MTU;
++ cp-&gt;xstate = NULL;
++ cp-&gt;rstate = NULL;
++ vj_compress_init(&amp;cp-&gt;vj_comp, -1);
++#ifdef __osf__
++ if (!(thread = kernel_thread_w_arg(first_task, ppp_comp_alloc, (void *)cp)))
++ OPEN_ERROR(ENOSR);
++ cp-&gt;thread = thread;
++#endif
++ ++ppp_comp_count;
++ qprocson(q);
++ }
++ return 0;
++}
++
++MOD_CLOSE(ppp_comp_close)
++{
++ comp_state_t *cp;
++
++ qprocsoff(q);
++ cp = (comp_state_t *) q-&gt;q_ptr;
++ if (cp != NULL) {
++ if (cp-&gt;xstate != NULL)
++ (*cp-&gt;xcomp-&gt;comp_free)(cp-&gt;xstate);
++ if (cp-&gt;rstate != NULL)
++ (*cp-&gt;rcomp-&gt;decomp_free)(cp-&gt;rstate);
++#ifdef __osf__
++ if (!cp-&gt;thread)
++ printf(&quot;ppp_comp_close: NULL thread!\n&quot;);
++ else
++ thread_terminate(cp-&gt;thread);
++#endif
++ FREE(cp, sizeof(comp_state_t));
++ q-&gt;q_ptr = NULL;
++ OTHERQ(q)-&gt;q_ptr = NULL;
++ --ppp_comp_count;
++ }
++ return 0;
++}
++
++#ifdef __osf__
++
++/* thread for calling back to a compressor's memory allocator
++ * Needed for Digital UNIX since it's VM can't handle requests
++ * for large amounts of memory without blocking. The thread
++ * provides a context in which we can call a memory allocator
++ * that may block.
++ */
++static void
++ppp_comp_alloc(comp_state_t *cp)
++{
++ int len, cmd;
++ unsigned char *compressor_options;
++ thread_t thread;
++ void *(*comp_allocator)();
++
++
++#if defined(MAJOR_VERSION) &amp;&amp; (MAJOR_VERSION &lt;= 2)
++
++ /* In 2.x and earlier the argument gets passed
++ * in the thread structure itself. Yuck.
++ */
++ thread = current_thread();
++ cp = thread-&gt;reply_port;
++ thread-&gt;reply_port = PORT_NULL;
++
++#endif
++
++ for (;;) {
++ assert_wait((vm_offset_t)&amp;cp-&gt;memreq.thread_status, TRUE);
++ thread_block();
++
++ if (thread_should_halt(current_thread()))
++ thread_halt_self();
++ cmd = cp-&gt;memreq.cmd;
++ compressor_options = &amp;cp-&gt;memreq.comp_opts[0];
++ len = compressor_options[1];
++ if (cmd == PPPIO_XCOMP) {
++ cp-&gt;memreq.returned_mem = cp-&gt;xcomp-&gt;comp_alloc(compressor_options, len);
++ if (!cp-&gt;memreq.returned_mem) {
++ cp-&gt;memreq.thread_status = ENOSR;
++ } else {
++ cp-&gt;memreq.thread_status = 0;
++ }
++ } else {
++ cp-&gt;memreq.returned_mem = cp-&gt;rcomp-&gt;decomp_alloc(compressor_options, len);
++ if (!cp-&gt;memreq.returned_mem) {
++ cp-&gt;memreq.thread_status = ENOSR;
++ } else {
++ cp-&gt;memreq.thread_status = 0;
++ }
++ }
++ }
++}
++
++#endif /* __osf__ */
++
++/* here's the deal with memory allocation under Digital UNIX.
++ * Some other may also benefit from this...
++ * We can't ask for huge chunks of memory in a context where
++ * the caller can't be put to sleep (like, here.) The alloc
++ * is likely to fail. Instead we do this: the first time we
++ * get called, kick off a thread to do the allocation. Return
++ * immediately to the caller with EAGAIN, as an indication that
++ * they should send down the ioctl again. By the time the
++ * second call comes in it's likely that the memory allocation
++ * thread will have returned with the requested memory. We will
++ * continue to return EAGAIN however until the thread has completed.
++ * When it has, we return zero (and the memory) if the allocator
++ * was successful and ENOSR otherwise.
++ *
++ * Callers of the RCOMP and XCOMP ioctls are encouraged (but not
++ * required) to loop for some number of iterations with a small
++ * delay in the loop body (for instance a 1/10-th second &quot;sleep&quot;
++ * via select.)
++ */
++static int
++ppp_comp_wput(q, mp)
++ queue_t *q;
++ mblk_t *mp;
++{
++ struct iocblk *iop;
++ comp_state_t *cp;
++ int error, len, n;
++ int flags, mask;
++ mblk_t *np;
++ struct compressor **comp;
++ struct ppp_stats *psp;
++ struct ppp_comp_stats *csp;
++ unsigned char *opt_data;
++ int nxslots, nrslots;
++
++ cp = (comp_state_t *) q-&gt;q_ptr;
++ if (cp == 0) {
++ DPRINT(&quot;cp == 0 in ppp_comp_wput\n&quot;);
++ freemsg(mp);
++ return 0;
++ }
++
++ switch (mp-&gt;b_datap-&gt;db_type) {
++
++ case M_DATA:
++ putq(q, mp);
++ break;
++
++ case M_IOCTL:
++ iop = (struct iocblk *) mp-&gt;b_rptr;
++ error = EINVAL;
++ switch (iop-&gt;ioc_cmd) {
++
++ case PPPIO_CFLAGS:
++ /* set/get CCP state */
++ if (iop-&gt;ioc_count != 2 * sizeof(int))
++ break;
++ if (mp-&gt;b_cont == 0) {
++ DPRINT1(&quot;ppp_comp_wput/%d: PPPIO_CFLAGS b_cont = 0!\n&quot;, cp-&gt;unit);
++ break;
++ }
++ flags = ((int *) mp-&gt;b_cont-&gt;b_rptr)[0];
++ mask = ((int *) mp-&gt;b_cont-&gt;b_rptr)[1];
++ cp-&gt;flags = (cp-&gt;flags &amp; ~mask) | (flags &amp; mask);
++ if ((mask &amp; CCP_ISOPEN) &amp;&amp; (flags &amp; CCP_ISOPEN) == 0) {
++ if (cp-&gt;xstate != NULL) {
++ (*cp-&gt;xcomp-&gt;comp_free)(cp-&gt;xstate);
++ cp-&gt;xstate = NULL;
++ }
++ if (cp-&gt;rstate != NULL) {
++ (*cp-&gt;rcomp-&gt;decomp_free)(cp-&gt;rstate);
++ cp-&gt;rstate = NULL;
++ }
++ cp-&gt;flags &amp;= ~CCP_ISUP;
++ }
++ error = 0;
++ iop-&gt;ioc_count = sizeof(int);
++ ((int *) mp-&gt;b_cont-&gt;b_rptr)[0] = cp-&gt;flags;
++ mp-&gt;b_cont-&gt;b_wptr = mp-&gt;b_cont-&gt;b_rptr + sizeof(int);
++ break;
++
++ case PPPIO_VJINIT:
++ /*
++ * Initialize VJ compressor/decompressor
++ */
++ if (iop-&gt;ioc_count != 2)
++ break;
++ if (mp-&gt;b_cont == 0) {
++ DPRINT1(&quot;ppp_comp_wput/%d: PPPIO_VJINIT b_cont = 0!\n&quot;, cp-&gt;unit);
++ break;
++ }
++ nxslots = mp-&gt;b_cont-&gt;b_rptr[0] + 1;
++ nrslots = mp-&gt;b_cont-&gt;b_rptr[1] + 1;
++ if (nxslots &gt; MAX_STATES || nrslots &gt; MAX_STATES)
++ break;
++ vj_compress_init(&amp;cp-&gt;vj_comp, nxslots);
++ cp-&gt;vj_last_ierrors = cp-&gt;stats.ppp_ierrors;
++ error = 0;
++ iop-&gt;ioc_count = 0;
++ break;
++
++ case PPPIO_XCOMP:
++ case PPPIO_RCOMP:
++ if (iop-&gt;ioc_count &lt;= 0)
++ break;
++ if (mp-&gt;b_cont == 0) {
++ DPRINT1(&quot;ppp_comp_wput/%d: PPPIO_[XR]COMP b_cont = 0!\n&quot;, cp-&gt;unit);
++ break;
++ }
++ opt_data = mp-&gt;b_cont-&gt;b_rptr;
++ len = mp-&gt;b_cont-&gt;b_wptr - opt_data;
++ if (len &gt; iop-&gt;ioc_count)
++ len = iop-&gt;ioc_count;
++ if (opt_data[1] &lt; 2 || opt_data[1] &gt; len)
++ break;
++ for (comp = ppp_compressors; *comp != NULL; ++comp)
++ if ((*comp)-&gt;compress_proto == opt_data[0]) {
++ /* here's the handler! */
++ error = 0;
++#ifndef __osf__
++ if (iop-&gt;ioc_cmd == PPPIO_XCOMP) {
++ /* A previous call may have fetched memory for a compressor
++ * that's now being retired or reset. Free it using it's
++ * mechanism for freeing stuff.
++ */
++ if (cp-&gt;xstate != NULL) {
++ (*cp-&gt;xcomp-&gt;comp_free)(cp-&gt;xstate);
++ cp-&gt;xstate = NULL;
++ }
++ cp-&gt;xcomp = *comp;
++ cp-&gt;xstate = (*comp)-&gt;comp_alloc(opt_data, len);
++ if (cp-&gt;xstate == NULL)
++ error = ENOSR;
++ } else {
++ if (cp-&gt;rstate != NULL) {
++ (*cp-&gt;rcomp-&gt;decomp_free)(cp-&gt;rstate);
++ cp-&gt;rstate = NULL;
++ }
++ cp-&gt;rcomp = *comp;
++ cp-&gt;rstate = (*comp)-&gt;decomp_alloc(opt_data, len);
++ if (cp-&gt;rstate == NULL)
++ error = ENOSR;
++ }
++#else
++ if ((error = cp-&gt;memreq.thread_status) != EAGAIN)
++ if (iop-&gt;ioc_cmd == PPPIO_XCOMP) {
++ if (cp-&gt;xstate) {
++ (*cp-&gt;xcomp-&gt;comp_free)(cp-&gt;xstate);
++ cp-&gt;xstate = 0;
++ }
++ /* sanity check for compressor options
++ */
++ if (sizeof (cp-&gt;memreq.comp_opts) &lt; len) {
++ printf(&quot;can't handle options for compressor %d (%d)\n&quot;, opt_data[0],
++ opt_data[1]);
++ cp-&gt;memreq.thread_status = ENOSR;
++ cp-&gt;memreq.returned_mem = 0;
++ }
++ /* fill in request for the thread and kick it off
++ */
++ if (cp-&gt;memreq.thread_status == 0 &amp;&amp; !cp-&gt;memreq.returned_mem) {
++ bcopy(opt_data, cp-&gt;memreq.comp_opts, len);
++ cp-&gt;memreq.cmd = PPPIO_XCOMP;
++ cp-&gt;xcomp = *comp;
++ error = cp-&gt;memreq.thread_status = EAGAIN;
++ thread_wakeup((vm_offset_t)&amp;cp-&gt;memreq.thread_status);
++ } else {
++ cp-&gt;xstate = cp-&gt;memreq.returned_mem;
++ cp-&gt;memreq.returned_mem = 0;
++ cp-&gt;memreq.thread_status = 0;
++ }
++ } else {
++ if (cp-&gt;rstate) {
++ (*cp-&gt;rcomp-&gt;decomp_free)(cp-&gt;rstate);
++ cp-&gt;rstate = NULL;
++ }
++ if (sizeof (cp-&gt;memreq.comp_opts) &lt; len) {
++ printf(&quot;can't handle options for compressor %d (%d)\n&quot;, opt_data[0],
++ opt_data[1]);
++ cp-&gt;memreq.thread_status = ENOSR;
++ cp-&gt;memreq.returned_mem = 0;
++ }
++ if (cp-&gt;memreq.thread_status == 0 &amp;&amp; !cp-&gt;memreq.returned_mem) {
++ bcopy(opt_data, cp-&gt;memreq.comp_opts, len);
++ cp-&gt;memreq.cmd = PPPIO_RCOMP;
++ cp-&gt;rcomp = *comp;
++ error = cp-&gt;memreq.thread_status = EAGAIN;
++ thread_wakeup((vm_offset_t)&amp;cp-&gt;memreq.thread_status);
++ } else {
++ cp-&gt;rstate = cp-&gt;memreq.returned_mem;
++ cp-&gt;memreq.returned_mem = 0;
++ cp-&gt;memreq.thread_status = 0;
++ }
++ }
++#endif
++ break;
++ }
++ iop-&gt;ioc_count = 0;
++ break;
++
++ case PPPIO_GETSTAT:
++ if ((cp-&gt;flags &amp; LAST_MOD) == 0) {
++ error = -1; /* let the ppp_ahdl module handle it */
++ break;
++ }
++ np = allocb(sizeof(struct ppp_stats), BPRI_HI);
++ if (np == 0) {
++ error = ENOSR;
++ break;
++ }
++ if (mp-&gt;b_cont != 0)
++ freemsg(mp-&gt;b_cont);
++ mp-&gt;b_cont = np;
++ psp = (struct ppp_stats *) np-&gt;b_wptr;
++ np-&gt;b_wptr += sizeof(struct ppp_stats);
++ iop-&gt;ioc_count = sizeof(struct ppp_stats);
++ psp-&gt;p = cp-&gt;stats;
++ psp-&gt;vj = cp-&gt;vj_comp.stats;
++ error = 0;
++ break;
++
++ case PPPIO_GETCSTAT:
++ np = allocb(sizeof(struct ppp_comp_stats), BPRI_HI);
++ if (np == 0) {
++ error = ENOSR;
++ break;
++ }
++ if (mp-&gt;b_cont != 0)
++ freemsg(mp-&gt;b_cont);
++ mp-&gt;b_cont = np;
++ csp = (struct ppp_comp_stats *) np-&gt;b_wptr;
++ np-&gt;b_wptr += sizeof(struct ppp_comp_stats);
++ iop-&gt;ioc_count = sizeof(struct ppp_comp_stats);
++ bzero((caddr_t)csp, sizeof(struct ppp_comp_stats));
++ if (cp-&gt;xstate != 0)
++ (*cp-&gt;xcomp-&gt;comp_stat)(cp-&gt;xstate, &amp;csp-&gt;c);
++ if (cp-&gt;rstate != 0)
++ (*cp-&gt;rcomp-&gt;decomp_stat)(cp-&gt;rstate, &amp;csp-&gt;d);
++ error = 0;
++ break;
++
++ case PPPIO_DEBUG:
++ if (iop-&gt;ioc_count != sizeof(int))
++ break;
++ if (mp-&gt;b_cont == 0) {
++ DPRINT1(&quot;ppp_comp_wput/%d: PPPIO_DEBUG b_cont = 0!\n&quot;, cp-&gt;unit);
++ break;
++ }
++ n = *(int *)mp-&gt;b_cont-&gt;b_rptr;
++ if (n == PPPDBG_LOG + PPPDBG_COMP) {
++ DPRINT1(&quot;ppp_comp%d: debug log enabled\n&quot;, cp-&gt;unit);
++ cp-&gt;flags |= DBGLOG;
++ error = 0;
++ iop-&gt;ioc_count = 0;
++ } else {
++ error = -1;
++ }
++ break;
++
++ case PPPIO_LASTMOD:
++ cp-&gt;flags |= LAST_MOD;
++ error = 0;
++ break;
++
++ default:
++ error = -1;
++ break;
++ }
++
++ if (error &lt; 0)
++ putnext(q, mp);
++ else if (error == 0) {
++ mp-&gt;b_datap-&gt;db_type = M_IOCACK;
++ qreply(q, mp);
++ } else {
++ mp-&gt;b_datap-&gt;db_type = M_IOCNAK;
++ iop-&gt;ioc_error = error;
++ iop-&gt;ioc_count = 0;
++ qreply(q, mp);
++ }
++ break;
++
++ case M_CTL:
++ switch (*mp-&gt;b_rptr) {
++ case PPPCTL_MTU:
++ cp-&gt;mtu = ((unsigned short *)mp-&gt;b_rptr)[1];
++ break;
++ case PPPCTL_MRU:
++ cp-&gt;mru = ((unsigned short *)mp-&gt;b_rptr)[1];
++ break;
++ case PPPCTL_UNIT:
++ cp-&gt;unit = mp-&gt;b_rptr[1];
++ break;
++ }
++ putnext(q, mp);
++ break;
++
++ default:
++ putnext(q, mp);
++ }
++
++ return 0;
++}
++
++static int
++ppp_comp_wsrv(q)
++ queue_t *q;
++{
++ mblk_t *mp, *cmp = NULL;
++ comp_state_t *cp;
++ int len, proto, type, hlen, code;
++ struct ip *ip;
++ unsigned char *vjhdr, *dp;
++
++ cp = (comp_state_t *) q-&gt;q_ptr;
++ if (cp == 0) {
++ DPRINT(&quot;cp == 0 in ppp_comp_wsrv\n&quot;);
++ return 0;
++ }
++
++ while ((mp = getq(q)) != 0) {
++ /* assert(mp-&gt;b_datap-&gt;db_type == M_DATA) */
++#ifdef PRIOQ
++ if (!bcanputnext(q,mp-&gt;b_band))
++#else
++ if (!canputnext(q))
++#endif PRIOQ
++ {
++ putbq(q, mp);
++ break;
++ }
++
++ /*
++ * First check the packet length and work out what the protocol is.
++ */
++ len = msgdsize(mp);
++ if (len &lt; PPP_HDRLEN) {
++ DPRINT1(&quot;ppp_comp_wsrv: bogus short packet (%d)\n&quot;, len);
++ freemsg(mp);
++ cp-&gt;stats.ppp_oerrors++;
++ putctl1(RD(q)-&gt;q_next, M_CTL, PPPCTL_OERROR);
++ continue;
++ }
++ proto = (MSG_BYTE(mp, 2) &lt;&lt; 8) + MSG_BYTE(mp, 3);
++
++ /*
++ * Make sure we've got enough data in the first mblk
++ * and that we are its only user.
++ */
++ if (proto == PPP_CCP)
++ hlen = len;
++ else if (proto == PPP_IP)
++ hlen = PPP_HDRLEN + MAX_IPHDR;
++ else
++ hlen = PPP_HDRLEN;
++ if (hlen &gt; len)
++ hlen = len;
++ if (mp-&gt;b_wptr &lt; mp-&gt;b_rptr + hlen || mp-&gt;b_datap-&gt;db_ref &gt; 1) {
++ PULLUP(mp, hlen);
++ if (mp == 0) {
++ DPRINT1(&quot;ppp_comp_wsrv: pullup failed (%d)\n&quot;, hlen);
++ cp-&gt;stats.ppp_oerrors++;
++ putctl1(RD(q)-&gt;q_next, M_CTL, PPPCTL_OERROR);
++ continue;
++ }
++ }
++
++ /*
++ * Do VJ compression if requested.
++ */
++ if (proto == PPP_IP &amp;&amp; (cp-&gt;flags &amp; COMP_VJC)) {
++ ip = (struct ip *) (mp-&gt;b_rptr + PPP_HDRLEN);
++ if (ip-&gt;ip_p == IPPROTO_TCP) {
++ type = vj_compress_tcp(ip, len - PPP_HDRLEN, &amp;cp-&gt;vj_comp,
++ (cp-&gt;flags &amp; COMP_VJCCID), &amp;vjhdr);
++ switch (type) {
++ case TYPE_UNCOMPRESSED_TCP:
++ mp-&gt;b_rptr[3] = proto = PPP_VJC_UNCOMP;
++ break;
++ case TYPE_COMPRESSED_TCP:
++ dp = vjhdr - PPP_HDRLEN;
++ dp[1] = mp-&gt;b_rptr[1]; /* copy control field */
++ dp[0] = mp-&gt;b_rptr[0]; /* copy address field */
++ dp[2] = 0; /* set protocol field */
++ dp[3] = proto = PPP_VJC_COMP;
++ mp-&gt;b_rptr = dp;
++ break;
++ }
++ }
++ }
++
++ /*
++ * Do packet compression if enabled.
++ */
++ if (proto == PPP_CCP)
++ ppp_comp_ccp(q, mp, 0);
++ else if (proto != PPP_LCP &amp;&amp; (cp-&gt;flags &amp; CCP_COMP_RUN)
++ &amp;&amp; cp-&gt;xstate != NULL) {
++ len = msgdsize(mp);
++ (*cp-&gt;xcomp-&gt;compress)(cp-&gt;xstate, &amp;cmp, mp, len,
++ (cp-&gt;flags &amp; CCP_ISUP? cp-&gt;mtu + PPP_HDRLEN: 0));
++ if (cmp != NULL) {
++#ifdef PRIOQ
++ cmp-&gt;b_band=mp-&gt;b_band;
++#endif PRIOQ
++ freemsg(mp);
++ mp = cmp;
++ }
++ }
++
++ /*
++ * Do address/control and protocol compression if enabled.
++ */
++ if ((cp-&gt;flags &amp; COMP_AC)
++ &amp;&amp; !(proto == PPP_LCP &amp;&amp; LCP_USE_DFLT(mp))) {
++ mp-&gt;b_rptr += 2; /* drop the address &amp; ctrl fields */
++ if (proto &lt; 0x100 &amp;&amp; (cp-&gt;flags &amp; COMP_PROT))
++ ++mp-&gt;b_rptr; /* drop the high protocol byte */
++ } else if (proto &lt; 0x100 &amp;&amp; (cp-&gt;flags &amp; COMP_PROT)) {
++ /* shuffle up the address &amp; ctrl fields */
++ mp-&gt;b_rptr[2] = mp-&gt;b_rptr[1];
++ mp-&gt;b_rptr[1] = mp-&gt;b_rptr[0];
++ ++mp-&gt;b_rptr;
++ }
++
++ cp-&gt;stats.ppp_opackets++;
++ cp-&gt;stats.ppp_obytes += msgdsize(mp);
++ putnext(q, mp);
++ }
++
++ return 0;
++}
++
++static int
++ppp_comp_rput(q, mp)
++ queue_t *q;
++ mblk_t *mp;
++{
++ comp_state_t *cp;
++ struct iocblk *iop;
++ struct ppp_stats *psp;
++
++ cp = (comp_state_t *) q-&gt;q_ptr;
++ if (cp == 0) {
++ DPRINT(&quot;cp == 0 in ppp_comp_rput\n&quot;);
++ freemsg(mp);
++ return 0;
++ }
++
++ switch (mp-&gt;b_datap-&gt;db_type) {
++
++ case M_DATA:
++ putq(q, mp);
++ break;
++
++ case M_IOCACK:
++ iop = (struct iocblk *) mp-&gt;b_rptr;
++ switch (iop-&gt;ioc_cmd) {
++ case PPPIO_GETSTAT:
++ /*
++ * Catch this on the way back from the ppp_ahdl module
++ * so we can fill in the VJ stats.
++ */
++ if (mp-&gt;b_cont == 0 || iop-&gt;ioc_count != sizeof(struct ppp_stats))
++ break;
++ psp = (struct ppp_stats *) mp-&gt;b_cont-&gt;b_rptr;
++ psp-&gt;vj = cp-&gt;vj_comp.stats;
++ break;
++ }
++ putnext(q, mp);
++ break;
++
++ case M_CTL:
++ switch (mp-&gt;b_rptr[0]) {
++ case PPPCTL_IERROR:
++ ++cp-&gt;stats.ppp_ierrors;
++ break;
++ case PPPCTL_OERROR:
++ ++cp-&gt;stats.ppp_oerrors;
++ break;
++ }
++ putnext(q, mp);
++ break;
++
++ default:
++ putnext(q, mp);
++ }
++
++ return 0;
++}
++
++static int
++ppp_comp_rsrv(q)
++ queue_t *q;
++{
++ int proto, rv, i;
++ mblk_t *mp, *dmp = NULL, *np;
++ uchar_t *dp, *iphdr;
++ comp_state_t *cp;
++ int len, hlen, vjlen;
++ u_int iphlen;
++
++ cp = (comp_state_t *) q-&gt;q_ptr;
++ if (cp == 0) {
++ DPRINT(&quot;cp == 0 in ppp_comp_rsrv\n&quot;);
++ return 0;
++ }
++
++ while ((mp = getq(q)) != 0) {
++ /* assert(mp-&gt;b_datap-&gt;db_type == M_DATA) */
++ if (!canputnext(q)) {
++ putbq(q, mp);
++ break;
++ }
++
++ len = msgdsize(mp);
++ cp-&gt;stats.ppp_ibytes += len;
++ cp-&gt;stats.ppp_ipackets++;
++
++ /*
++ * First work out the protocol and where the PPP header ends.
++ */
++ i = 0;
++ proto = MSG_BYTE(mp, 0);
++ if (proto == PPP_ALLSTATIONS) {
++ i = 2;
++ proto = MSG_BYTE(mp, 2);
++ }
++ if ((proto &amp; 1) == 0) {
++ ++i;
++ proto = (proto &lt;&lt; 8) + MSG_BYTE(mp, i);
++ }
++ hlen = i + 1;
++
++ /*
++ * Now reconstruct a complete, contiguous PPP header at the
++ * start of the packet.
++ */
++ if (hlen &lt; ((cp-&gt;flags &amp; DECOMP_AC)? 0: 2)
++ + ((cp-&gt;flags &amp; DECOMP_PROT)? 1: 2)) {
++ /* count these? */
++ goto bad;
++ }
++ if (mp-&gt;b_rptr + hlen &gt; mp-&gt;b_wptr) {
++ adjmsg(mp, hlen); /* XXX check this call */
++ hlen = 0;
++ }
++ if (hlen != PPP_HDRLEN) {
++ /*
++ * We need to put some bytes on the front of the packet
++ * to make a full-length PPP header.
++ * If we can put them in *mp, we do, otherwise we
++ * tack another mblk on the front.
++ * XXX we really shouldn't need to carry around
++ * the address and control at this stage.
++ */
++ dp = mp-&gt;b_rptr + hlen - PPP_HDRLEN;
++ if (dp &lt; mp-&gt;b_datap-&gt;db_base || mp-&gt;b_datap-&gt;db_ref &gt; 1) {
++ np = allocb(PPP_HDRLEN, BPRI_MED);
++ if (np == 0)
++ goto bad;
++ np-&gt;b_cont = mp;
++ mp-&gt;b_rptr += hlen;
++ mp = np;
++ dp = mp-&gt;b_wptr;
++ mp-&gt;b_wptr += PPP_HDRLEN;
++ } else
++ mp-&gt;b_rptr = dp;
++
++ dp[0] = PPP_ALLSTATIONS;
++ dp[1] = PPP_UI;
++ dp[2] = proto &gt;&gt; 8;
++ dp[3] = proto;
++ }
++
++ /*
++ * Now see if we have a compressed packet to decompress,
++ * or a CCP packet to take notice of.
++ */
++ proto = PPP_PROTOCOL(mp-&gt;b_rptr);
++ if (proto == PPP_CCP) {
++ len = msgdsize(mp);
++ if (mp-&gt;b_wptr &lt; mp-&gt;b_rptr + len) {
++ PULLUP(mp, len);
++ if (mp == 0)
++ goto bad;
++ }
++ ppp_comp_ccp(q, mp, 1);
++ } else if (proto == PPP_COMP) {
++ if ((cp-&gt;flags &amp; CCP_ISUP)
++ &amp;&amp; (cp-&gt;flags &amp; CCP_DECOMP_RUN) &amp;&amp; cp-&gt;rstate
++ &amp;&amp; (cp-&gt;flags &amp; CCP_ERR) == 0) {
++ rv = (*cp-&gt;rcomp-&gt;decompress)(cp-&gt;rstate, mp, &amp;dmp);
++ switch (rv) {
++ case DECOMP_OK:
++ freemsg(mp);
++ mp = dmp;
++ if (mp == NULL) {
++ /* no error, but no packet returned either. */
++ continue;
++ }
++ break;
++ case DECOMP_ERROR:
++ cp-&gt;flags |= CCP_ERROR;
++ ++cp-&gt;stats.ppp_ierrors;
++ putctl1(q-&gt;q_next, M_CTL, PPPCTL_IERROR);
++ break;
++ case DECOMP_FATALERROR:
++ cp-&gt;flags |= CCP_FATALERROR;
++ ++cp-&gt;stats.ppp_ierrors;
++ putctl1(q-&gt;q_next, M_CTL, PPPCTL_IERROR);
++ break;
++ }
++ }
++ } else if (cp-&gt;rstate &amp;&amp; (cp-&gt;flags &amp; CCP_DECOMP_RUN)) {
++ (*cp-&gt;rcomp-&gt;incomp)(cp-&gt;rstate, mp);
++ }
++
++ /*
++ * Now do VJ decompression.
++ */
++ proto = PPP_PROTOCOL(mp-&gt;b_rptr);
++ if (proto == PPP_VJC_COMP || proto == PPP_VJC_UNCOMP) {
++ len = msgdsize(mp) - PPP_HDRLEN;
++ if ((cp-&gt;flags &amp; DECOMP_VJC) == 0 || len &lt;= 0)
++ goto bad;
++
++ /*
++ * Advance past the ppp header.
++ * Here we assume that the whole PPP header is in the first mblk.
++ */
++ np = mp;
++ dp = np-&gt;b_rptr + PPP_HDRLEN;
++ if (dp &gt;= mp-&gt;b_wptr) {
++ np = np-&gt;b_cont;
++ dp = np-&gt;b_rptr;
++ }
++
++ /*
++ * Make sure we have sufficient contiguous data at this point.
++ */
++ hlen = (proto == PPP_VJC_COMP)? MAX_VJHDR: MAX_IPHDR;
++ if (hlen &gt; len)
++ hlen = len;
++ if (np-&gt;b_wptr &lt; dp + hlen || np-&gt;b_datap-&gt;db_ref &gt; 1) {
++ PULLUP(mp, hlen + PPP_HDRLEN);
++ if (mp == 0)
++ goto bad;
++ np = mp;
++ dp = np-&gt;b_rptr + PPP_HDRLEN;
++ }
++
++ if (proto == PPP_VJC_COMP) {
++ /*
++ * Decompress VJ-compressed packet.
++ * First reset compressor if an input error has occurred.
++ */
++ if (cp-&gt;stats.ppp_ierrors != cp-&gt;vj_last_ierrors) {
++ if (cp-&gt;flags &amp; DBGLOG)
++ DPRINT1(&quot;ppp%d: resetting VJ\n&quot;, cp-&gt;unit);
++ vj_uncompress_err(&amp;cp-&gt;vj_comp);
++ cp-&gt;vj_last_ierrors = cp-&gt;stats.ppp_ierrors;
++ }
++
++ vjlen = vj_uncompress_tcp(dp, np-&gt;b_wptr - dp, len,
++ &amp;cp-&gt;vj_comp, &amp;iphdr, &amp;iphlen);
++ if (vjlen &lt; 0) {
++ if (cp-&gt;flags &amp; DBGLOG)
++ DPRINT2(&quot;ppp%d: vj_uncomp_tcp failed, pkt len %d\n&quot;,
++ cp-&gt;unit, len);
++ ++cp-&gt;vj_last_ierrors; /* so we don't reset next time */
++ goto bad;
++ }
++
++ /* drop ppp and vj headers off */
++ if (mp != np) {
++ freeb(mp);
++ mp = np;
++ }
++ mp-&gt;b_rptr = dp + vjlen;
++
++ /* allocate a new mblk for the ppp and ip headers */
++ if ((np = allocb(iphlen + PPP_HDRLEN + 4, BPRI_MED)) == 0)
++ goto bad;
++ dp = np-&gt;b_rptr; /* prepend mblk with TCP/IP hdr */
++ dp[0] = PPP_ALLSTATIONS; /* reconstruct PPP header */
++ dp[1] = PPP_UI;
++ dp[2] = PPP_IP &gt;&gt; 8;
++ dp[3] = PPP_IP;
++ bcopy((caddr_t)iphdr, (caddr_t)dp + PPP_HDRLEN, iphlen);
++ np-&gt;b_wptr = dp + iphlen + PPP_HDRLEN;
++ np-&gt;b_cont = mp;
++
++ /* XXX there seems to be a bug which causes panics in strread
++ if we make an mbuf with only the IP header in it :-( */
++ if (mp-&gt;b_wptr - mp-&gt;b_rptr &gt; 4) {
++ bcopy((caddr_t)mp-&gt;b_rptr, (caddr_t)np-&gt;b_wptr, 4);
++ mp-&gt;b_rptr += 4;
++ np-&gt;b_wptr += 4;
++ } else {
++ bcopy((caddr_t)mp-&gt;b_rptr, (caddr_t)np-&gt;b_wptr,
++ mp-&gt;b_wptr - mp-&gt;b_rptr);
++ np-&gt;b_wptr += mp-&gt;b_wptr - mp-&gt;b_rptr;
++ np-&gt;b_cont = mp-&gt;b_cont;
++ freeb(mp);
++ }
++
++ mp = np;
++
++ } else {
++ /*
++ * &quot;Decompress&quot; a VJ-uncompressed packet.
++ */
++ cp-&gt;vj_last_ierrors = cp-&gt;stats.ppp_ierrors;
++ if (!vj_uncompress_uncomp(dp, hlen, &amp;cp-&gt;vj_comp)) {
++ if (cp-&gt;flags &amp; DBGLOG)
++ DPRINT2(&quot;ppp%d: vj_uncomp_uncomp failed, pkt len %d\n&quot;,
++ cp-&gt;unit, len);
++ ++cp-&gt;vj_last_ierrors; /* don't need to reset next time */
++ goto bad;
++ }
++ mp-&gt;b_rptr[3] = PPP_IP; /* fix up the PPP protocol field */
++ }
++ }
++
++ putnext(q, mp);
++ continue;
++
++ bad:
++ if (mp != 0)
++ freemsg(mp);
++ cp-&gt;stats.ppp_ierrors++;
++ putctl1(q-&gt;q_next, M_CTL, PPPCTL_IERROR);
++ }
++
++ return 0;
++}
++
++/*
++ * Handle a CCP packet being sent or received.
++ * Here all the data in the packet is in a single mbuf.
++ */
++static void
++ppp_comp_ccp(q, mp, rcvd)
++ queue_t *q;
++ mblk_t *mp;
++ int rcvd;
++{
++ int len, clen;
++ comp_state_t *cp;
++ unsigned char *dp;
++
++ len = msgdsize(mp);
++ if (len &lt; PPP_HDRLEN + CCP_HDRLEN)
++ return;
++
++ cp = (comp_state_t *) q-&gt;q_ptr;
++ dp = mp-&gt;b_rptr + PPP_HDRLEN;
++ len -= PPP_HDRLEN;
++ clen = CCP_LENGTH(dp);
++ if (clen &gt; len)
++ return;
++
++ switch (CCP_CODE(dp)) {
++ case CCP_CONFREQ:
++ case CCP_TERMREQ:
++ case CCP_TERMACK:
++ cp-&gt;flags &amp;= ~CCP_ISUP;
++ break;
++
++ case CCP_CONFACK:
++ if ((cp-&gt;flags &amp; (CCP_ISOPEN | CCP_ISUP)) == CCP_ISOPEN
++ &amp;&amp; clen &gt;= CCP_HDRLEN + CCP_OPT_MINLEN
++ &amp;&amp; clen &gt;= CCP_HDRLEN + CCP_OPT_LENGTH(dp + CCP_HDRLEN)) {
++ if (!rcvd) {
++ if (cp-&gt;xstate != NULL
++ &amp;&amp; (*cp-&gt;xcomp-&gt;comp_init)
++ (cp-&gt;xstate, dp + CCP_HDRLEN, clen - CCP_HDRLEN,
++ cp-&gt;unit, 0, ((cp-&gt;flags &amp; DBGLOG) != 0)))
++ cp-&gt;flags |= CCP_COMP_RUN;
++ } else {
++ if (cp-&gt;rstate != NULL
++ &amp;&amp; (*cp-&gt;rcomp-&gt;decomp_init)
++ (cp-&gt;rstate, dp + CCP_HDRLEN, clen - CCP_HDRLEN,
++ cp-&gt;unit, 0, cp-&gt;mru, ((cp-&gt;flags &amp; DBGLOG) != 0)))
++ cp-&gt;flags = (cp-&gt;flags &amp; ~CCP_ERR) | CCP_DECOMP_RUN;
++ }
++ }
++ break;
++
++ case CCP_RESETACK:
++ if (cp-&gt;flags &amp; CCP_ISUP) {
++ if (!rcvd) {
++ if (cp-&gt;xstate &amp;&amp; (cp-&gt;flags &amp; CCP_COMP_RUN))
++ (*cp-&gt;xcomp-&gt;comp_reset)(cp-&gt;xstate);
++ } else {
++ if (cp-&gt;rstate &amp;&amp; (cp-&gt;flags &amp; CCP_DECOMP_RUN)) {
++ (*cp-&gt;rcomp-&gt;decomp_reset)(cp-&gt;rstate);
++ cp-&gt;flags &amp;= ~CCP_ERROR;
++ }
++ }
++ }
++ break;
++ }
++}
++
++#if 0
++dump_msg(mp)
++ mblk_t *mp;
++{
++ dblk_t *db;
++
++ while (mp != 0) {
++ db = mp-&gt;b_datap;
++ DPRINT2(&quot;mp=%x cont=%x &quot;, mp, mp-&gt;b_cont);
++ DPRINT3(&quot;rptr=%x wptr=%x datap=%x\n&quot;, mp-&gt;b_rptr, mp-&gt;b_wptr, db);
++ DPRINT2(&quot; base=%x lim=%x&quot;, db-&gt;db_base, db-&gt;db_lim);
++ DPRINT2(&quot; ref=%d type=%d\n&quot;, db-&gt;db_ref, db-&gt;db_type);
++ mp = mp-&gt;b_cont;
++ }
++}
++#endif
++
++static int
++msg_byte(mp, i)
++ mblk_t *mp;
++ unsigned int i;
++{
++ while (mp != 0 &amp;&amp; i &gt;= mp-&gt;b_wptr - mp-&gt;b_rptr)
++ mp = mp-&gt;b_cont;
++ if (mp == 0)
++ return -1;
++ return mp-&gt;b_rptr[i];
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/modules/ppp_comp.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pppmodulesppp_modh">Added: drakx/trunk/mdk-stage1/ppp/modules/ppp_mod.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/modules/ppp_mod.h (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/modules/ppp_mod.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,190 @@
++/*
++ * Miscellaneous definitions for PPP STREAMS modules.
++ */
++
++/*
++ * Macros for allocating and freeing kernel memory.
++ */
++#ifdef SVR4 /* SVR4, including Solaris 2 */
++#include &lt;sys/kmem.h&gt;
++#define ALLOC_SLEEP(n) kmem_alloc((n), KM_SLEEP)
++#define ALLOC_NOSLEEP(n) kmem_alloc((n), KM_NOSLEEP)
++#define FREE(p, n) kmem_free((p), (n))
++#endif
++
++#ifdef SUNOS4
++#include &lt;sys/kmem_alloc.h&gt; /* SunOS 4.x */
++#define ALLOC_SLEEP(n) kmem_alloc((n), KMEM_SLEEP)
++#define ALLOC_NOSLEEP(n) kmem_alloc((n), KMEM_NOSLEEP)
++#define FREE(p, n) kmem_free((p), (n))
++#define NOTSUSER() (suser()? 0: EPERM)
++#define bcanputnext(q, band) canputnext((q))
++#endif /* SunOS 4 */
++
++#ifdef __osf__
++#include &lt;sys/malloc.h&gt;
++
++/* caution: this mirrors macros in sys/malloc.h, and uses interfaces
++ * which are subject to change.
++ * The problems are that:
++ * - the official MALLOC macro wants the lhs of the assignment as an argument,
++ * and it takes care of the assignment itself (yuck.)
++ * - PPP insists on using &quot;FREE&quot; which conflicts with a macro of the same name.
++ *
++ */
++#ifdef BUCKETINDX /* V2.0 */
++#define ALLOC_SLEEP(n) (void *)malloc((u_long)(n), BUCKETP(n), M_DEVBUF, M_WAITOK)
++#define ALLOC_NOSLEEP(n) (void *)malloc((u_long)(n), BUCKETP(n), M_DEVBUF, M_NOWAIT)
++#else
++#define ALLOC_SLEEP(n) (void *)malloc((u_long)(n), BUCKETINDEX(n), M_DEVBUF, M_WAITOK)
++#define ALLOC_NOSLEEP(n) (void *)malloc((u_long)(n), BUCKETINDEX(n), M_DEVBUF, M_NOWAIT)
++#endif
++
++#define bcanputnext(q, band) canputnext((q))
++
++#ifdef FREE
++#undef FREE
++#endif
++#define FREE(p, n) free((void *)(p), M_DEVBUF)
++
++#define NO_DLPI 1
++
++#ifndef IFT_PPP
++#define IFT_PPP 0x17
++#endif
++
++#include &lt;sys/proc.h&gt;
++#define NOTSUSER() (suser(u.u_procp-&gt;p_rcred, &amp;u.u_acflag) ? EPERM : 0)
++
++/* #include &quot;ppp_osf.h&quot; */
++
++#endif /* __osf__ */
++
++#ifdef AIX4
++#define ALLOC_SLEEP(n) xmalloc((n), 0, pinned_heap) /* AIX V4.x */
++#define ALLOC_NOSLEEP(n) xmalloc((n), 0, pinned_heap) /* AIX V4.x */
++#define FREE(p, n) xmfree((p), pinned_heap)
++#define NOTSUSER() (suser()? 0: EPERM)
++#endif /* AIX */
++
++/*
++ * Macros for printing debugging stuff.
++ */
++#ifdef DEBUG
++#if defined(SVR4) || defined(__osf__)
++#if defined(SNI)
++#include &lt;sys/strlog.h&gt;
++#define STRLOG_ID 4712
++#define DPRINT(f) strlog(STRLOG_ID, 0, 0, SL_TRACE, f)
++#define DPRINT1(f, a1) strlog(STRLOG_ID, 0, 0, SL_TRACE, f, a1)
++#define DPRINT2(f, a1, a2) strlog(STRLOG_ID, 0, 0, SL_TRACE, f, a1, a2)
++#define DPRINT3(f, a1, a2, a3) strlog(STRLOG_ID, 0, 0, SL_TRACE, f, a1, a2, a3)
++#else
++#define DPRINT(f) cmn_err(CE_CONT, f)
++#define DPRINT1(f, a1) cmn_err(CE_CONT, f, a1)
++#define DPRINT2(f, a1, a2) cmn_err(CE_CONT, f, a1, a2)
++#define DPRINT3(f, a1, a2, a3) cmn_err(CE_CONT, f, a1, a2, a3)
++#endif /* SNI */
++#else
++#define DPRINT(f) printf(f)
++#define DPRINT1(f, a1) printf(f, a1)
++#define DPRINT2(f, a1, a2) printf(f, a1, a2)
++#define DPRINT3(f, a1, a2, a3) printf(f, a1, a2, a3)
++#endif /* SVR4 or OSF */
++
++#else
++#define DPRINT(f) 0
++#define DPRINT1(f, a1) 0
++#define DPRINT2(f, a1, a2) 0
++#define DPRINT3(f, a1, a2, a3) 0
++#endif /* DEBUG */
++
++#ifndef SVR4
++typedef unsigned char uchar_t;
++typedef unsigned short ushort_t;
++#ifndef __osf__
++typedef int minor_t;
++#endif
++#endif
++
++/*
++ * If we don't have multithreading support, define substitutes.
++ */
++#ifndef D_MP
++# define qprocson(q)
++# define qprocsoff(q)
++# define put(q, mp) ((*(q)-&gt;q_qinfo-&gt;qi_putp)((q), (mp)))
++# define canputnext(q) canput((q)-&gt;q_next)
++# define qwriter(q, mp, func, scope) (func)((q), (mp))
++#endif
++
++#ifdef D_MP
++/* Use msgpullup if we have other multithreading support. */
++#define PULLUP(mp, len) \
++ do { \
++ mblk_t *np = msgpullup((mp), (len)); \
++ freemsg((mp)); \
++ mp = np; \
++ } while (0)
++
++#else
++/* Use pullupmsg if we don't have any multithreading support. */
++#define PULLUP(mp, len) \
++ do { \
++ if (!pullupmsg((mp), (len))) { \
++ freemsg((mp)); \
++ mp = 0; \
++ } \
++ } while (0)
++#endif
++
++/*
++ * How to declare the open and close procedures for a module.
++ */
++#ifdef SVR4
++#define MOD_OPEN_DECL(name) \
++static int name __P((queue_t *, dev_t *, int, int, cred_t *))
++
++#define MOD_CLOSE_DECL(name) \
++static int name __P((queue_t *, int, cred_t *))
++
++#define MOD_OPEN(name) \
++static int name(q, devp, flag, sflag, credp) \
++ queue_t *q; \
++ dev_t *devp; \
++ int flag, sflag; \
++ cred_t *credp;
++
++#define MOD_CLOSE(name) \
++static int name(q, flag, credp) \
++ queue_t *q; \
++ int flag; \
++ cred_t *credp;
++
++#define OPEN_ERROR(x) return (x)
++#define DRV_OPEN_OK(dev) return 0
++
++#define NOTSUSER() (drv_priv(credp))
++
++#else /* not SVR4 */
++#define MOD_OPEN_DECL(name) \
++static int name __P((queue_t *, int, int, int))
++
++#define MOD_CLOSE_DECL(name) \
++static int name __P((queue_t *, int))
++
++#define MOD_OPEN(name) \
++static int name(q, dev, flag, sflag) \
++ queue_t *q; \
++ int dev; \
++ int flag, sflag;
++
++#define MOD_CLOSE(name) \
++static int name(q, flag) \
++ queue_t *q; \
++ int flag;
++
++#define OPEN_ERROR(x) { u.u_error = (x); return OPENFAIL; }
++#define DRV_OPEN_OK(dev) return (dev)
++
++#endif /* SVR4 */
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/modules/ppp_mod.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pppmodulesvjcompressc">Added: drakx/trunk/mdk-stage1/ppp/modules/vjcompress.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/modules/vjcompress.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/modules/vjcompress.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,587 @@
++/*
++ * Routines to compress and uncompess tcp packets (for transmission
++ * over low speed serial lines.
++ *
++ * Copyright (c) 1989 Regents of the University of California.
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms are permitted
++ * provided that the above copyright notice and this paragraph are
++ * duplicated in all such forms and that any documentation,
++ * advertising materials, and other materials related to such
++ * distribution and use acknowledge that the software was developed
++ * by the University of California, Berkeley. The name of the
++ * University may not be used to endorse or promote products derived
++ * from this software without specific prior written permission.
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
++ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
++ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++ *
++ * Van Jacobson (van@helios.ee.lbl.gov), Dec 31, 1989:
++ * - Initial distribution.
++ *
++ * Modified June 1993 by Paul Mackerras, paulus@cs.anu.edu.au,
++ * so that the entire packet being decompressed doesn't have
++ * to be in contiguous memory (just the compressed header).
++ */
++
++/*
++ * This version is used under SunOS 4.x, Digital UNIX, AIX 4.x,
++ * and SVR4 systems including Solaris 2.
++ *
++ * $Id: vjcompress.c 195720 2001-06-11 11:44:34Z gc $
++ */
++
++#include &lt;sys/types.h&gt;
++#include &lt;sys/param.h&gt;
++
++#ifdef SVR4
++#ifndef __GNUC__
++#include &lt;sys/byteorder.h&gt; /* for ntohl, etc. */
++#else
++/* make sure we don't get the gnu &quot;fixed&quot; one! */
++#include &quot;/usr/include/sys/byteorder.h&quot;
++#endif
++#endif
++
++#ifdef __osf__
++#include &lt;net/net_globals.h&gt;
++#endif
++#include &lt;netinet/in.h&gt;
++
++#ifdef AIX4
++#define _NETINET_IN_SYSTM_H_
++typedef u_long n_long;
++#else
++#include &lt;netinet/in_systm.h&gt;
++#endif
++
++#include &lt;netinet/ip.h&gt;
++#include &lt;netinet/tcp.h&gt;
++
++#include &lt;net/ppp_defs.h&gt;
++#include &lt;net/vjcompress.h&gt;
++
++#ifndef VJ_NO_STATS
++#define INCR(counter) ++comp-&gt;stats.counter
++#else
++#define INCR(counter)
++#endif
++
++#define BCMP(p1, p2, n) bcmp((char *)(p1), (char *)(p2), (int)(n))
++#undef BCOPY
++#define BCOPY(p1, p2, n) bcopy((char *)(p1), (char *)(p2), (int)(n))
++#ifndef KERNEL
++#define ovbcopy bcopy
++#endif
++
++#ifdef __osf__
++#define getip_hl(base) (((base).ip_vhl)&amp;0xf)
++#define getth_off(base) ((((base).th_xoff)&amp;0xf0)&gt;&gt;4)
++
++#else
++#define getip_hl(base) ((base).ip_hl)
++#define getth_off(base) ((base).th_off)
++#endif
++
++void
++vj_compress_init(comp, max_state)
++ struct vjcompress *comp;
++ int max_state;
++{
++ register u_int i;
++ register struct cstate *tstate = comp-&gt;tstate;
++
++ if (max_state == -1)
++ max_state = MAX_STATES - 1;
++ bzero((char *)comp, sizeof(*comp));
++ for (i = max_state; i &gt; 0; --i) {
++ tstate[i].cs_id = i;
++ tstate[i].cs_next = &amp;tstate[i - 1];
++ }
++ tstate[0].cs_next = &amp;tstate[max_state];
++ tstate[0].cs_id = 0;
++ comp-&gt;last_cs = &amp;tstate[0];
++ comp-&gt;last_recv = 255;
++ comp-&gt;last_xmit = 255;
++ comp-&gt;flags = VJF_TOSS;
++}
++
++
++/* ENCODE encodes a number that is known to be non-zero. ENCODEZ
++ * checks for zero (since zero has to be encoded in the long, 3 byte
++ * form).
++ */
++#define ENCODE(n) { \
++ if ((u_short)(n) &gt;= 256) { \
++ *cp++ = 0; \
++ cp[1] = (n); \
++ cp[0] = (n) &gt;&gt; 8; \
++ cp += 2; \
++ } else { \
++ *cp++ = (n); \
++ } \
++}
++#define ENCODEZ(n) { \
++ if ((u_short)(n) &gt;= 256 || (u_short)(n) == 0) { \
++ *cp++ = 0; \
++ cp[1] = (n); \
++ cp[0] = (n) &gt;&gt; 8; \
++ cp += 2; \
++ } else { \
++ *cp++ = (n); \
++ } \
++}
++
++#define DECODEL(f) { \
++ if (*cp == 0) {\
++ u_int32_t tmp = ntohl(f) + ((cp[1] &lt;&lt; 8) | cp[2]); \
++ (f) = htonl(tmp); \
++ cp += 3; \
++ } else { \
++ u_int32_t tmp = ntohl(f) + (u_int32_t)*cp++; \
++ (f) = htonl(tmp); \
++ } \
++}
++
++#define DECODES(f) { \
++ if (*cp == 0) {\
++ u_short tmp = ntohs(f) + ((cp[1] &lt;&lt; 8) | cp[2]); \
++ (f) = htons(tmp); \
++ cp += 3; \
++ } else { \
++ u_short tmp = ntohs(f) + (u_int32_t)*cp++; \
++ (f) = htons(tmp); \
++ } \
++}
++
++#define DECODEU(f) { \
++ if (*cp == 0) {\
++ (f) = htons((cp[1] &lt;&lt; 8) | cp[2]); \
++ cp += 3; \
++ } else { \
++ (f) = htons((u_int32_t)*cp++); \
++ } \
++}
++
++u_int
++vj_compress_tcp(ip, mlen, comp, compress_cid, vjhdrp)
++ register struct ip *ip;
++ u_int mlen;
++ struct vjcompress *comp;
++ int compress_cid;
++ u_char **vjhdrp;
++{
++ register struct cstate *cs = comp-&gt;last_cs-&gt;cs_next;
++ register u_int hlen = getip_hl(*ip);
++ register struct tcphdr *oth;
++ register struct tcphdr *th;
++ register u_int deltaS, deltaA;
++ register u_int changes = 0;
++ u_char new_seq[16];
++ register u_char *cp = new_seq;
++
++ /*
++ * Bail if this is an IP fragment or if the TCP packet isn't
++ * `compressible' (i.e., ACK isn't set or some other control bit is
++ * set). (We assume that the caller has already made sure the
++ * packet is IP proto TCP).
++ */
++ if ((ip-&gt;ip_off &amp; htons(0x3fff)) || mlen &lt; 40)
++ return (TYPE_IP);
++
++ th = (struct tcphdr *)&amp;((int *)ip)[hlen];
++ if ((th-&gt;th_flags &amp; (TH_SYN|TH_FIN|TH_RST|TH_ACK)) != TH_ACK)
++ return (TYPE_IP);
++ /*
++ * Packet is compressible -- we're going to send either a
++ * COMPRESSED_TCP or UNCOMPRESSED_TCP packet. Either way we need
++ * to locate (or create) the connection state. Special case the
++ * most recently used connection since it's most likely to be used
++ * again &amp; we don't have to do any reordering if it's used.
++ */
++ INCR(vjs_packets);
++ if (ip-&gt;ip_src.s_addr != cs-&gt;cs_ip.ip_src.s_addr ||
++ ip-&gt;ip_dst.s_addr != cs-&gt;cs_ip.ip_dst.s_addr ||
++ *(int *)th != ((int *)&amp;cs-&gt;cs_ip)[getip_hl(cs-&gt;cs_ip)]) {
++ /*
++ * Wasn't the first -- search for it.
++ *
++ * States are kept in a circularly linked list with
++ * last_cs pointing to the end of the list. The
++ * list is kept in lru order by moving a state to the
++ * head of the list whenever it is referenced. Since
++ * the list is short and, empirically, the connection
++ * we want is almost always near the front, we locate
++ * states via linear search. If we don't find a state
++ * for the datagram, the oldest state is (re-)used.
++ */
++ register struct cstate *lcs;
++ register struct cstate *lastcs = comp-&gt;last_cs;
++
++ do {
++ lcs = cs; cs = cs-&gt;cs_next;
++ INCR(vjs_searches);
++ if (ip-&gt;ip_src.s_addr == cs-&gt;cs_ip.ip_src.s_addr
++ &amp;&amp; ip-&gt;ip_dst.s_addr == cs-&gt;cs_ip.ip_dst.s_addr
++ &amp;&amp; *(int *)th == ((int *)&amp;cs-&gt;cs_ip)[getip_hl(cs-&gt;cs_ip)])
++ goto found;
++ } while (cs != lastcs);
++
++ /*
++ * Didn't find it -- re-use oldest cstate. Send an
++ * uncompressed packet that tells the other side what
++ * connection number we're using for this conversation.
++ * Note that since the state list is circular, the oldest
++ * state points to the newest and we only need to set
++ * last_cs to update the lru linkage.
++ */
++ INCR(vjs_misses);
++ comp-&gt;last_cs = lcs;
++ hlen += getth_off(*th);
++ hlen &lt;&lt;= 2;
++ if (hlen &gt; mlen)
++ return (TYPE_IP);
++ goto uncompressed;
++
++ found:
++ /*
++ * Found it -- move to the front on the connection list.
++ */
++ if (cs == lastcs)
++ comp-&gt;last_cs = lcs;
++ else {
++ lcs-&gt;cs_next = cs-&gt;cs_next;
++ cs-&gt;cs_next = lastcs-&gt;cs_next;
++ lastcs-&gt;cs_next = cs;
++ }
++ }
++
++ /*
++ * Make sure that only what we expect to change changed. The first
++ * line of the `if' checks the IP protocol version, header length &amp;
++ * type of service. The 2nd line checks the &quot;Don't fragment&quot; bit.
++ * The 3rd line checks the time-to-live and protocol (the protocol
++ * check is unnecessary but costless). The 4th line checks the TCP
++ * header length. The 5th line checks IP options, if any. The 6th
++ * line checks TCP options, if any. If any of these things are
++ * different between the previous &amp; current datagram, we send the
++ * current datagram `uncompressed'.
++ */
++ oth = (struct tcphdr *)&amp;((int *)&amp;cs-&gt;cs_ip)[hlen];
++ deltaS = hlen;
++ hlen += getth_off(*th);
++ hlen &lt;&lt;= 2;
++ if (hlen &gt; mlen)
++ return (TYPE_IP);
++
++ if (((u_short *)ip)[0] != ((u_short *)&amp;cs-&gt;cs_ip)[0] ||
++ ((u_short *)ip)[3] != ((u_short *)&amp;cs-&gt;cs_ip)[3] ||
++ ((u_short *)ip)[4] != ((u_short *)&amp;cs-&gt;cs_ip)[4] ||
++ getth_off(*th) != getth_off(*oth) ||
++ (deltaS &gt; 5 &amp;&amp; BCMP(ip + 1, &amp;cs-&gt;cs_ip + 1, (deltaS - 5) &lt;&lt; 2)) ||
++ (getth_off(*th) &gt; 5 &amp;&amp; BCMP(th + 1, oth + 1, (getth_off(*th) - 5) &lt;&lt; 2)))
++ goto uncompressed;
++
++ /*
++ * Figure out which of the changing fields changed. The
++ * receiver expects changes in the order: urgent, window,
++ * ack, seq (the order minimizes the number of temporaries
++ * needed in this section of code).
++ */
++ if (th-&gt;th_flags &amp; TH_URG) {
++ deltaS = ntohs(th-&gt;th_urp);
++ ENCODEZ(deltaS);
++ changes |= NEW_U;
++ } else if (th-&gt;th_urp != oth-&gt;th_urp)
++ /* argh! URG not set but urp changed -- a sensible
++ * implementation should never do this but RFC793
++ * doesn't prohibit the change so we have to deal
++ * with it. */
++ goto uncompressed;
++
++ if ((deltaS = (u_short)(ntohs(th-&gt;th_win) - ntohs(oth-&gt;th_win))) &gt; 0) {
++ ENCODE(deltaS);
++ changes |= NEW_W;
++ }
++
++ if ((deltaA = ntohl(th-&gt;th_ack) - ntohl(oth-&gt;th_ack)) &gt; 0) {
++ if (deltaA &gt; 0xffff)
++ goto uncompressed;
++ ENCODE(deltaA);
++ changes |= NEW_A;
++ }
++
++ if ((deltaS = ntohl(th-&gt;th_seq) - ntohl(oth-&gt;th_seq)) &gt; 0) {
++ if (deltaS &gt; 0xffff)
++ goto uncompressed;
++ ENCODE(deltaS);
++ changes |= NEW_S;
++ }
++
++ switch(changes) {
++
++ case 0:
++ /*
++ * Nothing changed. If this packet contains data and the
++ * last one didn't, this is probably a data packet following
++ * an ack (normal on an interactive connection) and we send
++ * it compressed. Otherwise it's probably a retransmit,
++ * retransmitted ack or window probe. Send it uncompressed
++ * in case the other side missed the compressed version.
++ */
++ if (ip-&gt;ip_len != cs-&gt;cs_ip.ip_len &amp;&amp;
++ ntohs(cs-&gt;cs_ip.ip_len) == hlen)
++ break;
++
++ /* (fall through) */
++
++ case SPECIAL_I:
++ case SPECIAL_D:
++ /*
++ * actual changes match one of our special case encodings --
++ * send packet uncompressed.
++ */
++ goto uncompressed;
++
++ case NEW_S|NEW_A:
++ if (deltaS == deltaA &amp;&amp; deltaS == ntohs(cs-&gt;cs_ip.ip_len) - hlen) {
++ /* special case for echoed terminal traffic */
++ changes = SPECIAL_I;
++ cp = new_seq;
++ }
++ break;
++
++ case NEW_S:
++ if (deltaS == ntohs(cs-&gt;cs_ip.ip_len) - hlen) {
++ /* special case for data xfer */
++ changes = SPECIAL_D;
++ cp = new_seq;
++ }
++ break;
++ }
++
++ deltaS = ntohs(ip-&gt;ip_id) - ntohs(cs-&gt;cs_ip.ip_id);
++ if (deltaS != 1) {
++ ENCODEZ(deltaS);
++ changes |= NEW_I;
++ }
++ if (th-&gt;th_flags &amp; TH_PUSH)
++ changes |= TCP_PUSH_BIT;
++ /*
++ * Grab the cksum before we overwrite it below. Then update our
++ * state with this packet's header.
++ */
++ deltaA = ntohs(th-&gt;th_sum);
++ BCOPY(ip, &amp;cs-&gt;cs_ip, hlen);
++
++ /*
++ * We want to use the original packet as our compressed packet.
++ * (cp - new_seq) is the number of bytes we need for compressed
++ * sequence numbers. In addition we need one byte for the change
++ * mask, one for the connection id and two for the tcp checksum.
++ * So, (cp - new_seq) + 4 bytes of header are needed. hlen is how
++ * many bytes of the original packet to toss so subtract the two to
++ * get the new packet size.
++ */
++ deltaS = cp - new_seq;
++ cp = (u_char *)ip;
++ if (compress_cid == 0 || comp-&gt;last_xmit != cs-&gt;cs_id) {
++ comp-&gt;last_xmit = cs-&gt;cs_id;
++ hlen -= deltaS + 4;
++ *vjhdrp = (cp += hlen);
++ *cp++ = changes | NEW_C;
++ *cp++ = cs-&gt;cs_id;
++ } else {
++ hlen -= deltaS + 3;
++ *vjhdrp = (cp += hlen);
++ *cp++ = changes;
++ }
++ *cp++ = deltaA &gt;&gt; 8;
++ *cp++ = deltaA;
++ BCOPY(new_seq, cp, deltaS);
++ INCR(vjs_compressed);
++ return (TYPE_COMPRESSED_TCP);
++
++ /*
++ * Update connection state cs &amp; send uncompressed packet (that is,
++ * a regular ip/tcp packet but with the 'conversation id' we hope
++ * to use on future compressed packets in the protocol field).
++ */
++ uncompressed:
++ BCOPY(ip, &amp;cs-&gt;cs_ip, hlen);
++ ip-&gt;ip_p = cs-&gt;cs_id;
++ comp-&gt;last_xmit = cs-&gt;cs_id;
++ return (TYPE_UNCOMPRESSED_TCP);
++}
++
++/*
++ * Called when we may have missed a packet.
++ */
++void
++vj_uncompress_err(comp)
++ struct vjcompress *comp;
++{
++ comp-&gt;flags |= VJF_TOSS;
++ INCR(vjs_errorin);
++}
++
++/*
++ * &quot;Uncompress&quot; a packet of type TYPE_UNCOMPRESSED_TCP.
++ */
++int
++vj_uncompress_uncomp(buf, buflen, comp)
++ u_char *buf;
++ int buflen;
++ struct vjcompress *comp;
++{
++ register u_int hlen;
++ register struct cstate *cs;
++ register struct ip *ip;
++
++ ip = (struct ip *) buf;
++ hlen = getip_hl(*ip) &lt;&lt; 2;
++ if (ip-&gt;ip_p &gt;= MAX_STATES
++ || hlen + sizeof(struct tcphdr) &gt; buflen
++ || (hlen += getth_off(*((struct tcphdr *)&amp;((char *)ip)[hlen])) &lt;&lt; 2)
++ &gt; buflen
++ || hlen &gt; MAX_HDR) {
++ comp-&gt;flags |= VJF_TOSS;
++ INCR(vjs_errorin);
++ return (0);
++ }
++ cs = &amp;comp-&gt;rstate[comp-&gt;last_recv = ip-&gt;ip_p];
++ comp-&gt;flags &amp;=~ VJF_TOSS;
++ ip-&gt;ip_p = IPPROTO_TCP;
++ BCOPY(ip, &amp;cs-&gt;cs_ip, hlen);
++ cs-&gt;cs_hlen = hlen;
++ INCR(vjs_uncompressedin);
++ return (1);
++}
++
++/*
++ * Uncompress a packet of type TYPE_COMPRESSED_TCP.
++ * The packet starts at buf and is of total length total_len.
++ * The first buflen bytes are at buf; this must include the entire
++ * compressed TCP/IP header. This procedure returns the length
++ * of the VJ header, with a pointer to the uncompressed IP header
++ * in *hdrp and its length in *hlenp.
++ */
++int
++vj_uncompress_tcp(buf, buflen, total_len, comp, hdrp, hlenp)
++ u_char *buf;
++ int buflen, total_len;
++ struct vjcompress *comp;
++ u_char **hdrp;
++ u_int *hlenp;
++{
++ register u_char *cp;
++ register u_int hlen, changes;
++ register struct tcphdr *th;
++ register struct cstate *cs;
++ register u_short *bp;
++ register u_int vjlen;
++ register u_int32_t tmp;
++
++ INCR(vjs_compressedin);
++ cp = buf;
++ changes = *cp++;
++ if (changes &amp; NEW_C) {
++ /* Make sure the state index is in range, then grab the state.
++ * If we have a good state index, clear the 'discard' flag. */
++ if (*cp &gt;= MAX_STATES)
++ goto bad;
++
++ comp-&gt;flags &amp;=~ VJF_TOSS;
++ comp-&gt;last_recv = *cp++;
++ } else {
++ /* this packet has an implicit state index. If we've
++ * had a line error since the last time we got an
++ * explicit state index, we have to toss the packet. */
++ if (comp-&gt;flags &amp; VJF_TOSS) {
++ INCR(vjs_tossed);
++ return (-1);
++ }
++ }
++ cs = &amp;comp-&gt;rstate[comp-&gt;last_recv];
++ hlen = getip_hl(cs-&gt;cs_ip) &lt;&lt; 2;
++ th = (struct tcphdr *)&amp;((u_char *)&amp;cs-&gt;cs_ip)[hlen];
++ th-&gt;th_sum = htons((*cp &lt;&lt; 8) | cp[1]);
++ cp += 2;
++ if (changes &amp; TCP_PUSH_BIT)
++ th-&gt;th_flags |= TH_PUSH;
++ else
++ th-&gt;th_flags &amp;=~ TH_PUSH;
++
++ switch (changes &amp; SPECIALS_MASK) {
++ case SPECIAL_I:
++ {
++ register u_int32_t i = ntohs(cs-&gt;cs_ip.ip_len) - cs-&gt;cs_hlen;
++ /* some compilers can't nest inline assembler.. */
++ tmp = ntohl(th-&gt;th_ack) + i;
++ th-&gt;th_ack = htonl(tmp);
++ tmp = ntohl(th-&gt;th_seq) + i;
++ th-&gt;th_seq = htonl(tmp);
++ }
++ break;
++
++ case SPECIAL_D:
++ /* some compilers can't nest inline assembler.. */
++ tmp = ntohl(th-&gt;th_seq) + ntohs(cs-&gt;cs_ip.ip_len) - cs-&gt;cs_hlen;
++ th-&gt;th_seq = htonl(tmp);
++ break;
++
++ default:
++ if (changes &amp; NEW_U) {
++ th-&gt;th_flags |= TH_URG;
++ DECODEU(th-&gt;th_urp);
++ } else
++ th-&gt;th_flags &amp;=~ TH_URG;
++ if (changes &amp; NEW_W)
++ DECODES(th-&gt;th_win);
++ if (changes &amp; NEW_A)
++ DECODEL(th-&gt;th_ack);
++ if (changes &amp; NEW_S)
++ DECODEL(th-&gt;th_seq);
++ break;
++ }
++ if (changes &amp; NEW_I) {
++ DECODES(cs-&gt;cs_ip.ip_id);
++ } else {
++ cs-&gt;cs_ip.ip_id = ntohs(cs-&gt;cs_ip.ip_id) + 1;
++ cs-&gt;cs_ip.ip_id = htons(cs-&gt;cs_ip.ip_id);
++ }
++
++ /*
++ * At this point, cp points to the first byte of data in the
++ * packet. Fill in the IP total length and update the IP
++ * header checksum.
++ */
++ vjlen = cp - buf;
++ buflen -= vjlen;
++ if (buflen &lt; 0)
++ /* we must have dropped some characters (crc should detect
++ * this but the old slip framing won't) */
++ goto bad;
++
++ total_len += cs-&gt;cs_hlen - vjlen;
++ cs-&gt;cs_ip.ip_len = htons(total_len);
++
++ /* recompute the ip header checksum */
++ bp = (u_short *) &amp;cs-&gt;cs_ip;
++ cs-&gt;cs_ip.ip_sum = 0;
++ for (changes = 0; hlen &gt; 0; hlen -= 2)
++ changes += *bp++;
++ changes = (changes &amp; 0xffff) + (changes &gt;&gt; 16);
++ changes = (changes &amp; 0xffff) + (changes &gt;&gt; 16);
++ cs-&gt;cs_ip.ip_sum = ~ changes;
++
++ *hdrp = (u_char *) &amp;cs-&gt;cs_ip;
++ *hlenp = cs-&gt;cs_hlen;
++ return vjlen;
++
++ bad:
++ comp-&gt;flags |= VJF_TOSS;
++ INCR(vjs_errorin);
++ return (-1);
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/modules/vjcompress.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1ppppppdMakefile">Added: drakx/trunk/mdk-stage1/ppp/pppd/Makefile</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/Makefile (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/Makefile 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,51 @@
++ #******************************************************************************
++ #
++ # Guillaume Cottenceau (gc@mandriva.com)
++ #
++ # Copyright 2000 Mandriva
++ #
++ # This software may be freely redistributed under the terms of the GNU
++ # public license.
++ #
++ # You should have received a copy of the GNU General Public License
++ # along with this program; if not, write to the Free Software
++ # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ #
++ #*****************************************************************************
++
++top_dir = ../..
++
++include $(top_dir)/Makefile.common
++
++
++TARGETS = pppd
++
++BINTARGET = ../../pppd
++
++
++all: $(TARGETS)
++
++clean:
++ rm -f *.o *.a $(BINTARGET) pppd
++
++FLAGS = -Wall -Wno-deprecated-declarations -Werror -Os -fomit-frame-pointer -DDO_BSD_COMPRESS=0 -D_linux_=1 -DHAVE_MMAP -DNO_DRAND48 -D_BSD_SOURCE -D_GNU_SOURCE
++# (blino) for gcc-4.1.1, dereferencing type-punned pointer will break strict-aliasing rules, in options.c:711
++FLAGS += -fno-strict-aliasing
++
++INCS = -I../include -I.
++
++ifeq (GLIBC, $(L))
++LIBS = -static -lcrypt
++endif
++
++
++OBJS = main.o magic.o fsm.o lcp.o ipcp.o upap.o chap.o md5.o ccp.o auth.o options.o demand.o utils.o sys-linux.o ipxcp.o multilink.o tdb.o tty.o
++
++
++pppd: $(OBJS)
++ $(DIET) gcc -o $@ $^ $(LIBS)
++ $(STRIPCMD) $@
++ cp -f $@ $(BINTARGET)
++
++$(OBJS): %.o: %.c
++ $(DIET) gcc $(FLAGS) $(INCS) $(INCLUDES) -c $&lt; -o $@
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/pppd/Makefile
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1ppppppdMakefilelinux">Added: drakx/trunk/mdk-stage1/ppp/pppd/Makefile.linux</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/Makefile.linux (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/Makefile.linux 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,129 @@
++#
++# pppd makefile for Linux
++# $Id: Makefile.linux 195720 2001-06-11 11:44:34Z gc $
++#
++
++# Default installation locations
++BINDIR = $(DESTDIR)/usr/sbin
++MANDIR = $(DESTDIR)/usr/man
++
++PPPDSRCS = main.c magic.c fsm.c lcp.c ipcp.c upap.c chap.c md5.c ccp.c \
++ ipxcp.c auth.c options.c sys-linux.c md4.c chap_ms.c cbcp.c \
++ demand.c utils.c multilink.c tdb.c tty.c
++HEADERS = callout.h pathnames.h patchlevel.h chap.h md5.h chap_ms.h md4.h \
++ ipxcp.h cbcp.h tdb.h
++MANPAGES = pppd.8
++PPPDOBJS = main.o magic.o fsm.o lcp.o ipcp.o upap.o chap.o md5.o ccp.o \
++ auth.o options.o demand.o utils.o sys-linux.o ipxcp.o multilink.o \
++ tdb.o tty.o
++
++all: pppd
++
++#
++# include dependancies if present and backup if as a header file
++ifeq (.depend,$(wildcard .depend))
++include .depend
++endif
++
++CC = gcc
++#
++COPTS = -Wall $(RPM_OPT_FLAGS)
++LIBS = -lutil
++
++ifneq ($(wildcard /usr/lib/libcrypt.*),)
++LIBS += -lcrypt
++endif
++
++# Uncomment the next 2 lines to include support for Microsoft's
++# MS-CHAP authentication protocol.
++CHAPMS=y
++USE_CRYPT=y
++ifneq ($(wildcard /usr/lib/libcrypt.*),)
++HAVE_CRYPT_H=y
++endif
++
++# Uncomment the next line to include support for PPP packet filtering.
++# This requires that the libpcap library and headers be installed
++# and that the kernel driver support PPP packet filtering, which it
++# doesn't yet.
++#FILTER=y
++
++HAS_SHADOW=y
++USE_PAM=y
++#HAVE_INET6=y
++
++PLUGIN=y
++
++INCLUDE_DIRS= -I../include
++
++COMPILE_FLAGS= -D_linux_=1 -DHAVE_PATHS_H -DIPX_CHANGE -DHAVE_MULTILINK -DHAVE_MMAP
++
++CFLAGS= $(COPTS) $(COMPILE_FLAGS) $(INCLUDE_DIRS)
++
++ifdef CHAPMS
++CFLAGS += -DCHAPMS=1
++ifndef USE_CRYPT
++LIBS := -ldes $(LIBS)
++else
++CFLAGS += -DUSE_CRYPT=1
++ifneq ($(wildcard /usr/include/crypt.h),)
++CFLAGS += -DHAVE_CRYPT_H=1
++endif
++endif
++PPPDOBJS += md4.o chap_ms.o
++ifdef MSLANMAN
++CFLAGS += -DMSLANMAN=1
++endif
++endif
++
++ifdef HAS_SHADOW
++CFLAGS += -DHAS_SHADOW
++#LIBS := -lshadow $(LIBS)
++endif
++
++# For &quot;Pluggable Authentication Modules&quot;, see ftp.redhat.com:/pub/pam/.
++ifdef USE_PAM
++CFLAGS += -DUSE_PAM
++LIBS := -lpam -ldl $(LIBS)
++endif
++
++# Lock library binary for Linux is included in 'linux' subdirectory.
++ifdef LOCKLIB
++LIBS := -llock $(LIBS)
++CFLAGS += -DLOCKLIB=1
++endif
++
++ifdef PLUGIN
++CFLAGS += -DPLUGIN
++LDFLAGS += -Wl,-E
++LIBS += -ldl
++endif
++
++ifdef FILTER
++LIBS += -lpcap
++CFLAGS += -DPPP_FILTER -I/usr/include/pcap
++endif
++
++ifdef HAVE_INET6
++ PPPDSRCS += ipv6cp.c eui64.c
++ HEADERS += ipv6cp.h eui64.h
++ PPPDOBJS += ipv6cp.o eui64.o
++ CFLAGS += -DINET6=1
++endif
++
++
++INSTALL= install
++
++install: pppd
++ mkdir -p $(BINDIR) $(MANDIR)
++ $(INSTALL) -m 555 pppd $(BINDIR)/pppd
++ $(INSTALL) -c -m 444 pppd.8 $(MANDIR)/man8
++
++pppd: $(PPPDOBJS)
++ $(CC) $(CFLAGS) $(LDFLAGS) -o pppd $(PPPDOBJS) $(LIBS)
++
++clean:
++ rm -f $(PPPDOBJS) pppd *~ #* core
++
++depend:
++ $(CPP) -M $(CFLAGS) $(PPPDSRCS) &gt;.depend
+
+<a id="drakxtrunkmdkstage1ppppppdMakefilelinuxmake">Added: drakx/trunk/mdk-stage1/ppp/pppd/Makefile.linux.make</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/Makefile.linux.make (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/Makefile.linux.make 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,131 @@
++#
++# pppd makefile for Linux
++# $Id: Makefile.linux.make 195720 2001-06-11 11:44:34Z gc $
++#
++
++# Default installation locations
++BINDIR = /usr/sbin
++MANDIR = /usr/man
++
++PPPDSRCS = main.c magic.c fsm.c lcp.c ipcp.c upap.c chap.c md5.c ccp.c \
++ ipxcp.c auth.c options.c sys-linux.c md4.c chap_ms.c cbcp.c \
++ demand.c utils.c multilink.c tdb.c tty.c
++HEADERS = callout.h pathnames.h patchlevel.h chap.h md5.h chap_ms.h md4.h \
++ ipxcp.h cbcp.h tdb.h
++MANPAGES = pppd.8
++PPPDOBJS = main.o magic.o fsm.o lcp.o ipcp.o upap.o chap.o md5.o ccp.o \
++ auth.o options.o demand.o utils.o sys-linux.o ipxcp.o multilink.o \
++ tdb.o tty.o
++
++all: pppd
++
++#
++# include dependancies if present and backup if as a header file
++ifeq (.depend,$(wildcard .depend))
++include .depend
++endif
++
++# CC = gcc
++#
++COPTS = -O2 -pipe -Wall -g
++LIBS =
++
++ifneq ($(wildcard /usr/lib/libcrypt.*),)
++LIBS += -lcrypt
++endif
++
++# Uncomment the next 2 lines to include support for Microsoft's
++# MS-CHAP authentication protocol.
++CHAPMS=y
++USE_CRYPT=y
++ifneq ($(wildcard /usr/lib/libcrypt.*),)
++HAVE_CRYPT_H=y
++endif
++
++# Uncomment the next line to include support for PPP packet filtering.
++# This requires that the libpcap library and headers be installed
++# and that the kernel driver support PPP packet filtering, which it
++# doesn't yet.
++#FILTER=y
++
++HAS_SHADOW=y
++#USE_PAM=y
++#HAVE_INET6=y
++
++PLUGIN=y
++
++INCLUDE_DIRS= -I../include
++
++COMPILE_FLAGS= -D_linux_=1 -DHAVE_PATHS_H -DIPX_CHANGE -DHAVE_MULTILINK -DHAVE_MMAP
++
++CFLAGS= $(COPTS) $(COMPILE_FLAGS) $(INCLUDE_DIRS)
++
++ifdef CHAPMS
++CFLAGS += -DCHAPMS=1
++ifndef USE_CRYPT
++LIBS := -ldes $(LIBS)
++else
++CFLAGS += -DUSE_CRYPT=1
++ifneq ($(wildcard /usr/include/crypt.h),)
++CFLAGS += -DHAVE_CRYPT_H=1
++endif
++endif
++PPPDOBJS += md4.o chap_ms.o
++ifdef MSLANMAN
++CFLAGS += -DMSLANMAN=1
++endif
++endif
++
++ifdef HAS_SHADOW
++CFLAGS += -DHAS_SHADOW
++#LIBS := -lshadow $(LIBS)
++endif
++
++# For &quot;Pluggable Authentication Modules&quot;, see ftp.redhat.com:/pub/pam/.
++ifdef USE_PAM
++CFLAGS += -DUSE_PAM
++LIBS := -lpam -ldl $(LIBS)
++endif
++
++# Lock library binary for Linux is included in 'linux' subdirectory.
++ifdef LOCKLIB
++LIBS := -llock $(LIBS)
++CFLAGS += -DLOCKLIB=1
++endif
++
++ifdef PLUGIN
++CFLAGS += -DPLUGIN
++LDFLAGS += -Wl,-E
++LIBS += -ldl
++endif
++
++ifdef FILTER
++LIBS += -lpcap
++CFLAGS += -DPPP_FILTER -I/usr/include/pcap
++endif
++
++ifdef HAVE_INET6
++ PPPDSRCS += ipv6cp.c eui64.c
++ HEADERS += ipv6cp.h eui64.h
++ PPPDOBJS += ipv6cp.o eui64.o
++ CFLAGS += -DINET6=1
++endif
++
++
++INSTALL= install -o root
++
++install: pppd
++ mkdir -p $(BINDIR) $(MANDIR)
++ $(INSTALL) -s -c -m 555 pppd $(BINDIR)/pppd
++ if chgrp pppusers $(BINDIR)/pppd 2&gt;/dev/null; then \
++ chmod o-rx,u+s $(BINDIR)/pppd; fi
++ $(INSTALL) -c -m 444 pppd.8 $(MANDIR)/man8
++
++pppd: $(PPPDOBJS)
++ $(CC) $(CFLAGS) $(LDFLAGS) -o pppd $(PPPDOBJS) $(LIBS)
++
++clean:
++ rm -f $(PPPDOBJS) pppd *~ #* core
++
++depend:
++ $(CPP) -M $(CFLAGS) $(PPPDSRCS) &gt;.depend
+
+<a id="drakxtrunkmdkstage1ppppppdMakefilelinuxmakeopt">Added: drakx/trunk/mdk-stage1/ppp/pppd/Makefile.linux.makeopt</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/Makefile.linux.makeopt (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/Makefile.linux.makeopt 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,129 @@
++#
++# pppd makefile for Linux
++# $Id: Makefile.linux.makeopt 195720 2001-06-11 11:44:34Z gc $
++#
++
++# Default installation locations
++BINDIR = $(DESTDIR)/usr/sbin
++MANDIR = $(DESTDIR)/usr/man
++
++PPPDSRCS = main.c magic.c fsm.c lcp.c ipcp.c upap.c chap.c md5.c ccp.c \
++ ipxcp.c auth.c options.c sys-linux.c md4.c chap_ms.c cbcp.c \
++ demand.c utils.c multilink.c tdb.c tty.c
++HEADERS = callout.h pathnames.h patchlevel.h chap.h md5.h chap_ms.h md4.h \
++ ipxcp.h cbcp.h tdb.h
++MANPAGES = pppd.8
++PPPDOBJS = main.o magic.o fsm.o lcp.o ipcp.o upap.o chap.o md5.o ccp.o \
++ auth.o options.o demand.o utils.o sys-linux.o ipxcp.o multilink.o \
++ tdb.o tty.o
++
++all: pppd
++
++#
++# include dependancies if present and backup if as a header file
++ifeq (.depend,$(wildcard .depend))
++include .depend
++endif
++
++CC = gcc
++#
++COPTS = -O2 -pipe -Wall -g
++LIBS = -lutil
++
++ifneq ($(wildcard /usr/lib/libcrypt.*),)
++LIBS += -lcrypt
++endif
++
++# Uncomment the next 2 lines to include support for Microsoft's
++# MS-CHAP authentication protocol.
++CHAPMS=y
++USE_CRYPT=y
++ifneq ($(wildcard /usr/lib/libcrypt.*),)
++HAVE_CRYPT_H=y
++endif
++
++# Uncomment the next line to include support for PPP packet filtering.
++# This requires that the libpcap library and headers be installed
++# and that the kernel driver support PPP packet filtering, which it
++# doesn't yet.
++#FILTER=y
++
++HAS_SHADOW=y
++USE_PAM=y
++#HAVE_INET6=y
++
++PLUGIN=y
++
++INCLUDE_DIRS= -I../include
++
++COMPILE_FLAGS= -D_linux_=1 -DHAVE_PATHS_H -DIPX_CHANGE -DHAVE_MULTILINK -DHAVE_MMAP
++
++CFLAGS= $(COPTS) $(COMPILE_FLAGS) $(INCLUDE_DIRS)
++
++ifdef CHAPMS
++CFLAGS += -DCHAPMS=1
++ifndef USE_CRYPT
++LIBS := -ldes $(LIBS)
++else
++CFLAGS += -DUSE_CRYPT=1
++ifneq ($(wildcard /usr/include/crypt.h),)
++CFLAGS += -DHAVE_CRYPT_H=1
++endif
++endif
++PPPDOBJS += md4.o chap_ms.o
++ifdef MSLANMAN
++CFLAGS += -DMSLANMAN=1
++endif
++endif
++
++ifdef HAS_SHADOW
++CFLAGS += -DHAS_SHADOW
++#LIBS := -lshadow $(LIBS)
++endif
++
++# For &quot;Pluggable Authentication Modules&quot;, see ftp.redhat.com:/pub/pam/.
++ifdef USE_PAM
++CFLAGS += -DUSE_PAM
++LIBS := -lpam -ldl $(LIBS)
++endif
++
++# Lock library binary for Linux is included in 'linux' subdirectory.
++ifdef LOCKLIB
++LIBS := -llock $(LIBS)
++CFLAGS += -DLOCKLIB=1
++endif
++
++ifdef PLUGIN
++CFLAGS += -DPLUGIN
++LDFLAGS += -Wl,-E
++LIBS += -ldl
++endif
++
++ifdef FILTER
++LIBS += -lpcap
++CFLAGS += -DPPP_FILTER -I/usr/include/pcap
++endif
++
++ifdef HAVE_INET6
++ PPPDSRCS += ipv6cp.c eui64.c
++ HEADERS += ipv6cp.h eui64.h
++ PPPDOBJS += ipv6cp.o eui64.o
++ CFLAGS += -DINET6=1
++endif
++
++
++INSTALL= install
++
++install: pppd
++ mkdir -p $(BINDIR) $(MANDIR)
++ $(INSTALL) -m 555 pppd $(BINDIR)/pppd
++ $(INSTALL) -c -m 444 pppd.8 $(MANDIR)/man8
++
++pppd: $(PPPDOBJS)
++ $(CC) $(CFLAGS) $(LDFLAGS) -o pppd $(PPPDOBJS) $(LIBS)
++
++clean:
++ rm -f $(PPPDOBJS) pppd *~ #* core
++
++depend:
++ $(CPP) -M $(CFLAGS) $(PPPDSRCS) &gt;.depend
+
+<a id="drakxtrunkmdkstage1ppppppdMakefilesol2">Added: drakx/trunk/mdk-stage1/ppp/pppd/Makefile.sol2</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/Makefile.sol2 (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/Makefile.sol2 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,48 @@
++#
++# Makefile for pppd under Solaris 2.
++# $Id: Makefile.sol2 195720 2001-06-11 11:44:34Z gc $
++#
++
++include ../solaris/Makedefs
++
++COPTS += -xO2 -xspace -W0,-Lt
++CFLAGS = -I../include -DSVR4 -DSOL2 $(COPTS)
++LIBS = -lsocket -lnsl
++
++OBJS = main.o magic.o fsm.o lcp.o ipcp.o upap.o chap.o md5.o tty.o \
++ ccp.o auth.o options.o demand.o utils.o sys-solaris.o tdb.o
++
++#
++# uncomment the following to enable plugins
++#
++CFLAGS += -DPLUGIN
++LIBS += -ldl
++
++#
++# Solaris 8 and above accomodates /var/run, so uncomment the
++# following to place pppd process IDs on that location
++#
++#CFLAGS += -D_PATH_VARRUN='&quot;/var/run/&quot;'
++
++#
++# uncomment the following to enable IPv6
++#
++# Solaris 8 and on includes support for IPv6
++#
++#CFLAGS += -DINET6
++#OBJS += ipv6cp.o eui64.o
++
++#
++# Make targets
++#
++all: pppd
++
++pppd: $(OBJS)
++ $(CC) -o pppd $(OBJS) $(LIBS)
++
++install:
++ $(INSTALL) -f $(BINDIR) -m 4755 -u root pppd
++ $(INSTALL) -f $(MANDIR)/man8 -m 444 pppd.8
++
++clean:
++ rm -f $(OBJS) pppd *~ core y.tab.c y.tab.h
+
+<a id="drakxtrunkmdkstage1ppppppdMakefilesunos4">Added: drakx/trunk/mdk-stage1/ppp/pppd/Makefile.sunos4</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/Makefile.sunos4 (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/Makefile.sunos4 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,26 @@
++#
++# Makefile for pppd under SunOS 4.
++# $Id: Makefile.sunos4 195720 2001-06-11 11:44:34Z gc $
++#
++
++include ../sunos4/Makedefs
++
++LIBS =
++
++CFLAGS = $(COPTS) -I../include -DSUNOS4 -DGIDSET_TYPE=int \
++ -DLOCK_DIR=\&quot;/usr/spool/locks\&quot;
++
++all: pppd
++
++OBJS = main.o magic.o fsm.o lcp.o ipcp.o upap.o chap.o md5.o ccp.o \
++ auth.o options.o demand.o utils.o sys-sunos4.o tty.o
++
++pppd: $(OBJS)
++ $(CC) -o pppd $(OBJS) $(LIBS)
++
++install:
++ $(INSTALL) -c -m 4555 pppd $(BINDIR)/pppd
++ $(INSTALL) -c -m 444 pppd.8 $(MANDIR)/man8/pppd.8
++
++clean:
++ rm -f $(OBJS) pppd *~ core
+
+<a id="drakxtrunkmdkstage1ppppppdauthc">Added: drakx/trunk/mdk-stage1/ppp/pppd/auth.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/auth.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/auth.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,1939 @@
++/*
++ * auth.c - PPP authentication and phase control.
++ *
++ * Copyright (c) 1993 The Australian National University.
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms are permitted
++ * provided that the above copyright notice and this paragraph are
++ * duplicated in all such forms and that any documentation,
++ * advertising materials, and other materials related to such
++ * distribution and use acknowledge that the software was developed
++ * by the Australian National University. The name of the University
++ * may not be used to endorse or promote products derived from this
++ * software without specific prior written permission.
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
++ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
++ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++ *
++ * Copyright (c) 1989 Carnegie Mellon University.
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms are permitted
++ * provided that the above copyright notice and this paragraph are
++ * duplicated in all such forms and that any documentation,
++ * advertising materials, and other materials related to such
++ * distribution and use acknowledge that the software was developed
++ * by Carnegie Mellon University. The name of the
++ * University may not be used to endorse or promote products derived
++ * from this software without specific prior written permission.
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
++ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
++ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++ */
++
++#define RCSID &quot;$Id: auth.c 195734 2001-06-11 14:46:02Z gc $&quot;
++
++#include &lt;stdio.h&gt;
++#include &lt;stddef.h&gt;
++#include &lt;stdlib.h&gt;
++#include &lt;unistd.h&gt;
++#include &lt;pwd.h&gt;
++#include &lt;grp.h&gt;
++#include &lt;string.h&gt;
++#include &lt;sys/types.h&gt;
++#include &lt;sys/stat.h&gt;
++#include &lt;sys/socket.h&gt;
++#include &lt;utmp.h&gt;
++#include &lt;fcntl.h&gt;
++#if defined(_PATH_LASTLOG) &amp;&amp; defined(_linux_)
++#include &lt;lastlog.h&gt;
++#endif
++
++#include &lt;netdb.h&gt;
++#include &lt;netinet/in.h&gt;
++#include &lt;arpa/inet.h&gt;
++
++#ifdef USE_PAM
++#include &lt;security/pam_appl.h&gt;
++#endif
++
++#ifdef HAS_SHADOW
++#include &lt;shadow.h&gt;
++#ifndef PW_PPP
++#define PW_PPP PW_LOGIN
++#endif
++#endif
++
++#include &quot;pppd.h&quot;
++#include &quot;fsm.h&quot;
++#include &quot;lcp.h&quot;
++#include &quot;ipcp.h&quot;
++#include &quot;upap.h&quot;
++#include &quot;chap.h&quot;
++#ifdef CBCP_SUPPORT
++#include &quot;cbcp.h&quot;
++#endif
++#include &quot;pathnames.h&quot;
++
++#include &lt;time.h&gt;
++
++static const char rcsid[] = RCSID;
++
++/* Bits in scan_authfile return value */
++#define NONWILD_SERVER 1
++#define NONWILD_CLIENT 2
++
++#define ISWILD(word) (word[0] == '*' &amp;&amp; word[1] == 0)
++
++/* The name by which the peer authenticated itself to us. */
++char peer_authname[MAXNAMELEN];
++
++/* Records which authentication operations haven't completed yet. */
++static int auth_pending[NUM_PPP];
++
++/* Set if we have successfully called plogin() */
++static int logged_in;
++
++/* List of addresses which the peer may use. */
++static struct permitted_ip *addresses[NUM_PPP];
++
++/* Wordlist giving addresses which the peer may use
++ without authenticating itself. */
++static struct wordlist *noauth_addrs;
++
++/* Extra options to apply, from the secrets file entry for the peer. */
++static struct wordlist *extra_options;
++
++/* Number of network protocols which we have opened. */
++static int num_np_open;
++
++/* Number of network protocols which have come up. */
++static int num_np_up;
++
++/* Set if we got the contents of passwd[] from the pap-secrets file. */
++static int passwd_from_file;
++
++/* Set if we require authentication only because we have a default route. */
++static bool default_auth;
++
++/* Hook to enable a plugin to control the idle time limit */
++int (*idle_time_hook) __P((struct ppp_idle *)) = NULL;
++
++/* Hook for a plugin to say whether we can possibly authenticate any peer */
++int (*pap_check_hook) __P((void)) = NULL;
++
++/* Hook for a plugin to check the PAP user and password */
++int (*pap_auth_hook) __P((char *user, char *passwd, char **msgp,
++ struct wordlist **paddrs,
++ struct wordlist **popts)) = NULL;
++
++/* Hook for a plugin to know about the PAP user logout */
++void (*pap_logout_hook) __P((void)) = NULL;
++
++/* Hook for a plugin to get the PAP password for authenticating us */
++int (*pap_passwd_hook) __P((char *user, char *passwd)) = NULL;
++
++/*
++ * This is used to ensure that we don't start an auth-up/down
++ * script while one is already running.
++ */
++enum script_state {
++ s_down,
++ s_up
++};
++
++static enum script_state auth_state = s_down;
++static enum script_state auth_script_state = s_down;
++static pid_t auth_script_pid = 0;
++
++static int used_login; /* peer authenticated against login database */
++
++/*
++ * Option variables.
++ */
++bool uselogin = 0; /* Use /etc/passwd for checking PAP */
++bool cryptpap = 0; /* Passwords in pap-secrets are encrypted */
++bool refuse_pap = 0; /* Don't wanna auth. ourselves with PAP */
++bool refuse_chap = 0; /* Don't wanna auth. ourselves with CHAP */
++bool usehostname = 0; /* Use hostname for our_name */
++bool auth_required = 0; /* Always require authentication from peer */
++bool allow_any_ip = 0; /* Allow peer to use any IP address */
++bool explicit_remote = 0; /* User specified explicit remote name */
++char remote_name[MAXNAMELEN]; /* Peer's name for authentication */
++
++static char *uafname; /* name of most recent +ua file */
++
++/* Bits in auth_pending[] */
++#define PAP_WITHPEER 1
++#define PAP_PEER 2
++#define CHAP_WITHPEER 4
++#define CHAP_PEER 8
++
++extern char *crypt __P((const char *, const char *));
++
++/* Prototypes for procedures local to this file. */
++
++static void network_phase __P((int));
++static void check_idle __P((void *));
++static void connect_time_expired __P((void *));
++static int plogin __P((char *, char *, char **));
++static void plogout __P((void));
++static int null_login __P((int));
++static int get_pap_passwd __P((char *));
++static int have_pap_secret __P((int *));
++static int have_chap_secret __P((char *, char *, int, int *));
++static int ip_addr_check __P((u_int32_t, struct permitted_ip *));
++static int scan_authfile __P((FILE *, char *, char *, char *,
++ struct wordlist **, struct wordlist **,
++ char *));
++static void free_wordlist __P((struct wordlist *));
++static void auth_script __P((char *));
++static void auth_script_done __P((void *));
++static void set_allowed_addrs __P((int, struct wordlist *, struct wordlist *));
++static int some_ip_ok __P((struct wordlist *));
++static int setupapfile __P((char **));
++static int privgroup __P((char **));
++static int set_noauth_addr __P((char **));
++static void check_access __P((FILE *, char *));
++static int wordlist_count __P((struct wordlist *));
++
++/*
++ * Authentication-related options.
++ */
++option_t auth_options[] = {
++ { &quot;auth&quot;, o_bool, &amp;auth_required,
++ &quot;Require authentication from peer&quot;, OPT_PRIO | 1 },
++ { &quot;noauth&quot;, o_bool, &amp;auth_required,
++ &quot;Don't require peer to authenticate&quot;, OPT_PRIOSUB | OPT_PRIV,
++ &amp;allow_any_ip },
++ { &quot;require-pap&quot;, o_bool, &amp;lcp_wantoptions[0].neg_upap,
++ &quot;Require PAP authentication from peer&quot;,
++ OPT_PRIOSUB | 1, &amp;auth_required },
++ { &quot;+pap&quot;, o_bool, &amp;lcp_wantoptions[0].neg_upap,
++ &quot;Require PAP authentication from peer&quot;,
++ OPT_ALIAS | OPT_PRIOSUB | 1, &amp;auth_required },
++ { &quot;require-chap&quot;, o_bool, &amp;lcp_wantoptions[0].neg_chap,
++ &quot;Require CHAP authentication from peer&quot;,
++ OPT_PRIOSUB | 1, &amp;auth_required },
++ { &quot;+chap&quot;, o_bool, &amp;lcp_wantoptions[0].neg_chap,
++ &quot;Require CHAP authentication from peer&quot;,
++ OPT_ALIAS | OPT_PRIOSUB | 1, &amp;auth_required },
++
++ { &quot;refuse-pap&quot;, o_bool, &amp;refuse_pap,
++ &quot;Don't agree to auth to peer with PAP&quot;, 1 },
++ { &quot;-pap&quot;, o_bool, &amp;refuse_pap,
++ &quot;Don't allow PAP authentication with peer&quot;, OPT_ALIAS | 1 },
++
++ { &quot;refuse-chap&quot;, o_bool, &amp;refuse_chap,
++ &quot;Don't agree to auth to peer with CHAP&quot;, 1 },
++ { &quot;-chap&quot;, o_bool, &amp;refuse_chap,
++ &quot;Don't allow CHAP authentication with peer&quot;, OPT_ALIAS | 1 },
++
++ { &quot;name&quot;, o_string, our_name,
++ &quot;Set local name for authentication&quot;,
++ OPT_PRIO | OPT_PRIV | OPT_STATIC, NULL, MAXNAMELEN },
++
++ { &quot;+ua&quot;, o_special, (void *)setupapfile,
++ &quot;Get PAP user and password from file&quot;,
++ OPT_PRIO | OPT_A2STRVAL, &amp;uafname },
++
++ { &quot;user&quot;, o_string, user,
++ &quot;Set name for auth with peer&quot;, OPT_PRIO | OPT_STATIC, NULL, MAXNAMELEN },
++
++ { &quot;password&quot;, o_string, passwd,
++ &quot;Password for authenticating us to the peer&quot;,
++ OPT_PRIO | OPT_STATIC | OPT_HIDE, NULL, MAXSECRETLEN },
++
++ { &quot;usehostname&quot;, o_bool, &amp;usehostname,
++ &quot;Must use hostname for authentication&quot;, 1 },
++
++ { &quot;remotename&quot;, o_string, remote_name,
++ &quot;Set remote name for authentication&quot;, OPT_PRIO | OPT_STATIC,
++ &amp;explicit_remote, MAXNAMELEN },
++
++ { &quot;login&quot;, o_bool, &amp;uselogin,
++ &quot;Use system password database for PAP&quot;, 1 },
++
++ { &quot;papcrypt&quot;, o_bool, &amp;cryptpap,
++ &quot;PAP passwords are encrypted&quot;, 1 },
++
++ { &quot;privgroup&quot;, o_special, (void *)privgroup,
++ &quot;Allow group members to use privileged options&quot;, OPT_PRIV | OPT_A2LIST },
++
++ { &quot;allow-ip&quot;, o_special, (void *)set_noauth_addr,
++ &quot;Set IP address(es) which can be used without authentication&quot;,
++ OPT_PRIV | OPT_A2LIST },
++
++ { NULL }
++};
++
++/*
++ * setupapfile - specifies UPAP info for authenticating with peer.
++ */
++static int
++setupapfile(argv)
++ char **argv;
++{
++ FILE *ufile;
++ int l;
++ char u[MAXNAMELEN], p[MAXSECRETLEN];
++ char *fname;
++
++ lcp_allowoptions[0].neg_upap = 1;
++
++ /* open user info file */
++ fname = strdup(*argv);
++ if (fname == NULL)
++ novm(&quot;+ua file name&quot;);
++ seteuid(getuid());
++ ufile = fopen(fname, &quot;r&quot;);
++ seteuid(0);
++ if (ufile == NULL) {
++ option_error(&quot;unable to open user login data file %s&quot;, fname);
++ return 0;
++ }
++ check_access(ufile, fname);
++ uafname = fname;
++
++ /* get username */
++ if (fgets(u, MAXNAMELEN - 1, ufile) == NULL
++ || fgets(p, MAXSECRETLEN - 1, ufile) == NULL){
++ option_error(&quot;unable to read user login data file %s&quot;, fname);
++ return 0;
++ }
++ fclose(ufile);
++
++ /* get rid of newlines */
++ l = strlen(u);
++ if (l &gt; 0 &amp;&amp; u[l-1] == '\n')
++ u[l-1] = 0;
++ l = strlen(p);
++ if (l &gt; 0 &amp;&amp; p[l-1] == '\n')
++ p[l-1] = 0;
++
++ if (override_value(&quot;user&quot;, option_priority, fname))
++ strlcpy(user, u, sizeof(user));
++ if (override_value(&quot;passwd&quot;, option_priority, fname))
++ strlcpy(passwd, p, sizeof(passwd));
++
++ return (1);
++}
++
++
++/*
++ * privgroup - allow members of the group to have privileged access.
++ */
++static int
++privgroup(argv)
++ char **argv;
++{
++ struct group *g;
++ int i;
++
++ g = getgrnam(*argv);
++ if (g == 0) {
++ option_error(&quot;group %s is unknown&quot;, *argv);
++ return 0;
++ }
++ for (i = 0; i &lt; ngroups; ++i) {
++ if (groups[i] == g-&gt;gr_gid) {
++ privileged = 1;
++ break;
++ }
++ }
++ return 1;
++}
++
++
++/*
++ * set_noauth_addr - set address(es) that can be used without authentication.
++ * Equivalent to specifying an entry like `&quot;&quot; * &quot;&quot; addr' in pap-secrets.
++ */
++static int
++set_noauth_addr(argv)
++ char **argv;
++{
++ char *addr = *argv;
++ int l = strlen(addr) + 1;
++ struct wordlist *wp;
++
++ wp = (struct wordlist *) malloc(sizeof(struct wordlist) + l);
++ if (wp == NULL)
++ novm(&quot;allow-ip argument&quot;);
++ wp-&gt;word = (char *) (wp + 1);
++ wp-&gt;next = noauth_addrs;
++ BCOPY(addr, wp-&gt;word, l);
++ noauth_addrs = wp;
++ return 1;
++}
++
++
++/*
++ * An Open on LCP has requested a change from Dead to Establish phase.
++ * Do what's necessary to bring the physical layer up.
++ */
++void
++link_required(unit)
++ int unit;
++{
++}
++
++/*
++ * LCP has terminated the link; go to the Dead phase and take the
++ * physical layer down.
++ */
++void
++link_terminated(unit)
++ int unit;
++{
++ if (phase == PHASE_DEAD)
++ return;
++ if (pap_logout_hook) {
++ pap_logout_hook();
++ } else {
++ if (logged_in)
++ plogout();
++ }
++ new_phase(PHASE_DEAD);
++ notice(&quot;Connection terminated.&quot;);
++}
++
++/*
++ * LCP has gone down; it will either die or try to re-establish.
++ */
++void
++link_down(unit)
++ int unit;
++{
++ int i;
++ struct protent *protp;
++
++ auth_state = s_down;
++ if (auth_script_state == s_up &amp;&amp; auth_script_pid == 0) {
++ update_link_stats(unit);
++ auth_script_state = s_down;
++ auth_script(_PATH_AUTHDOWN);
++ }
++ for (i = 0; (protp = protocols[i]) != NULL; ++i) {
++ if (!protp-&gt;enabled_flag)
++ continue;
++ if (protp-&gt;protocol != PPP_LCP &amp;&amp; protp-&gt;lowerdown != NULL)
++ (*protp-&gt;lowerdown)(unit);
++ if (protp-&gt;protocol &lt; 0xC000 &amp;&amp; protp-&gt;close != NULL)
++ (*protp-&gt;close)(unit, &quot;LCP down&quot;);
++ }
++ num_np_open = 0;
++ num_np_up = 0;
++ if (phase != PHASE_DEAD)
++ new_phase(PHASE_TERMINATE);
++}
++
++/*
++ * The link is established.
++ * Proceed to the Dead, Authenticate or Network phase as appropriate.
++ */
++void
++link_established(unit)
++ int unit;
++{
++ int auth;
++ lcp_options *wo = &amp;lcp_wantoptions[unit];
++ lcp_options *go = &amp;lcp_gotoptions[unit];
++ lcp_options *ho = &amp;lcp_hisoptions[unit];
++ int i;
++ struct protent *protp;
++
++ /*
++ * Tell higher-level protocols that LCP is up.
++ */
++ for (i = 0; (protp = protocols[i]) != NULL; ++i)
++ if (protp-&gt;protocol != PPP_LCP &amp;&amp; protp-&gt;enabled_flag
++ &amp;&amp; protp-&gt;lowerup != NULL)
++ (*protp-&gt;lowerup)(unit);
++
++ if (auth_required &amp;&amp; !(go-&gt;neg_chap || go-&gt;neg_upap)) {
++ /*
++ * We wanted the peer to authenticate itself, and it refused:
++ * if we have some address(es) it can use without auth, fine,
++ * otherwise treat it as though it authenticated with PAP using
++ * a username * of &quot;&quot; and a password of &quot;&quot;. If that's not OK,
++ * boot it out.
++ */
++ if (noauth_addrs != NULL) {
++ set_allowed_addrs(unit, NULL, NULL);
++ } else if (!wo-&gt;neg_upap || uselogin || !null_login(unit)) {
++ warn(&quot;peer refused to authenticate: terminating link&quot;);
++ lcp_close(unit, &quot;peer refused to authenticate&quot;);
++ status = EXIT_PEER_AUTH_FAILED;
++ return;
++ }
++ }
++
++ new_phase(PHASE_AUTHENTICATE);
++ used_login = 0;
++ auth = 0;
++ if (go-&gt;neg_chap) {
++ ChapAuthPeer(unit, our_name, go-&gt;chap_mdtype);
++ auth |= CHAP_PEER;
++ } else if (go-&gt;neg_upap) {
++ upap_authpeer(unit);
++ auth |= PAP_PEER;
++ }
++ if (ho-&gt;neg_chap) {
++ ChapAuthWithPeer(unit, user, ho-&gt;chap_mdtype);
++ auth |= CHAP_WITHPEER;
++ } else if (ho-&gt;neg_upap) {
++ if (passwd[0] == 0) {
++ passwd_from_file = 1;
++ if (!get_pap_passwd(passwd))
++ error(&quot;No secret found for PAP login&quot;);
++ }
++ upap_authwithpeer(unit, user, passwd);
++ auth |= PAP_WITHPEER;
++ }
++ auth_pending[unit] = auth;
++
++ if (!auth)
++ network_phase(unit);
++}
++
++/*
++ * Proceed to the network phase.
++ */
++static void
++network_phase(unit)
++ int unit;
++{
++ lcp_options *go = &amp;lcp_gotoptions[unit];
++
++ /*
++ * If the peer had to authenticate, run the auth-up script now.
++ */
++ if (go-&gt;neg_chap || go-&gt;neg_upap) {
++ auth_state = s_up;
++ if (auth_script_state == s_down &amp;&amp; auth_script_pid == 0) {
++ auth_script_state = s_up;
++ auth_script(_PATH_AUTHUP);
++ }
++ }
++
++#ifdef CBCP_SUPPORT
++ /*
++ * If we negotiated callback, do it now.
++ */
++ if (go-&gt;neg_cbcp) {
++ new_phase(PHASE_CALLBACK);
++ (*cbcp_protent.open)(unit);
++ return;
++ }
++#endif
++
++ /*
++ * Process extra options from the secrets file
++ */
++ if (extra_options) {
++ options_from_list(extra_options, 1);
++ free_wordlist(extra_options);
++ extra_options = 0;
++ }
++ start_networks();
++}
++
++void
++start_networks()
++{
++ int i;
++ struct protent *protp;
++
++ new_phase(PHASE_NETWORK);
++
++#ifdef HAVE_MULTILINK
++ if (multilink) {
++ if (mp_join_bundle()) {
++ if (updetach &amp;&amp; !nodetach)
++ detach();
++ return;
++ }
++ }
++#endif /* HAVE_MULTILINK */
++
++#ifdef PPP_FILTER
++ if (!demand)
++ set_filters(&amp;pass_filter, &amp;active_filter);
++#endif
++ for (i = 0; (protp = protocols[i]) != NULL; ++i)
++ if (protp-&gt;protocol &lt; 0xC000 &amp;&amp; protp-&gt;enabled_flag
++ &amp;&amp; protp-&gt;open != NULL) {
++ (*protp-&gt;open)(0);
++ if (protp-&gt;protocol != PPP_CCP)
++ ++num_np_open;
++ }
++
++ if (num_np_open == 0)
++ /* nothing to do */
++ lcp_close(0, &quot;No network protocols running&quot;);
++}
++
++/*
++ * The peer has failed to authenticate himself using `protocol'.
++ */
++void
++auth_peer_fail(unit, protocol)
++ int unit, protocol;
++{
++ /*
++ * Authentication failure: take the link down
++ */
++ lcp_close(unit, &quot;Authentication failed&quot;);
++ status = EXIT_PEER_AUTH_FAILED;
++}
++
++/*
++ * The peer has been successfully authenticated using `protocol'.
++ */
++void
++auth_peer_success(unit, protocol, name, namelen)
++ int unit, protocol;
++ char *name;
++ int namelen;
++{
++ int bit;
++
++ switch (protocol) {
++ case PPP_CHAP:
++ bit = CHAP_PEER;
++ break;
++ case PPP_PAP:
++ bit = PAP_PEER;
++ break;
++ default:
++ warn(&quot;auth_peer_success: unknown protocol %x&quot;, protocol);
++ return;
++ }
++
++ /*
++ * Save the authenticated name of the peer for later.
++ */
++ if (namelen &gt; sizeof(peer_authname) - 1)
++ namelen = sizeof(peer_authname) - 1;
++ BCOPY(name, peer_authname, namelen);
++ peer_authname[namelen] = 0;
++ script_setenv(&quot;PEERNAME&quot;, peer_authname, 0);
++
++ /*
++ * If there is no more authentication still to be done,
++ * proceed to the network (or callback) phase.
++ */
++ if ((auth_pending[unit] &amp;= ~bit) == 0)
++ network_phase(unit);
++}
++
++/*
++ * We have failed to authenticate ourselves to the peer using `protocol'.
++ */
++void
++auth_withpeer_fail(unit, protocol)
++ int unit, protocol;
++{
++ if (passwd_from_file)
++ BZERO(passwd, MAXSECRETLEN);
++ /*
++ * We've failed to authenticate ourselves to our peer.
++ * Some servers keep sending CHAP challenges, but there
++ * is no point in persisting without any way to get updated
++ * authentication secrets.
++ */
++ lcp_close(unit, &quot;Failed to authenticate ourselves to peer&quot;);
++ status = EXIT_AUTH_TOPEER_FAILED;
++}
++
++/*
++ * We have successfully authenticated ourselves with the peer using `protocol'.
++ */
++void
++auth_withpeer_success(unit, protocol)
++ int unit, protocol;
++{
++ int bit;
++
++ switch (protocol) {
++ case PPP_CHAP:
++ bit = CHAP_WITHPEER;
++ break;
++ case PPP_PAP:
++ if (passwd_from_file)
++ BZERO(passwd, MAXSECRETLEN);
++ bit = PAP_WITHPEER;
++ break;
++ default:
++ warn(&quot;auth_withpeer_success: unknown protocol %x&quot;, protocol);
++ bit = 0;
++ }
++
++ /*
++ * If there is no more authentication still being done,
++ * proceed to the network (or callback) phase.
++ */
++ if ((auth_pending[unit] &amp;= ~bit) == 0)
++ network_phase(unit);
++}
++
++
++/*
++ * np_up - a network protocol has come up.
++ */
++void
++np_up(unit, proto)
++ int unit, proto;
++{
++ int tlim;
++
++ if (num_np_up == 0) {
++ /*
++ * At this point we consider that the link has come up successfully.
++ */
++ status = EXIT_OK;
++ unsuccess = 0;
++ new_phase(PHASE_RUNNING);
++
++ if (idle_time_hook != 0)
++ tlim = (*idle_time_hook)(NULL);
++ else
++ tlim = idle_time_limit;
++ if (tlim &gt; 0)
++ TIMEOUT(check_idle, NULL, tlim);
++
++ /*
++ * Set a timeout to close the connection once the maximum
++ * connect time has expired.
++ */
++ if (maxconnect &gt; 0)
++ TIMEOUT(connect_time_expired, 0, maxconnect);
++
++ /*
++ * Detach now, if the updetach option was given.
++ */
++ if (updetach &amp;&amp; !nodetach)
++ detach();
++ }
++ ++num_np_up;
++}
++
++/*
++ * np_down - a network protocol has gone down.
++ */
++void
++np_down(unit, proto)
++ int unit, proto;
++{
++ if (--num_np_up == 0) {
++ UNTIMEOUT(check_idle, NULL);
++ new_phase(PHASE_NETWORK);
++ }
++}
++
++/*
++ * np_finished - a network protocol has finished using the link.
++ */
++void
++np_finished(unit, proto)
++ int unit, proto;
++{
++ if (--num_np_open &lt;= 0) {
++ /* no further use for the link: shut up shop. */
++ lcp_close(0, &quot;No network protocols running&quot;);
++ }
++}
++
++/*
++ * check_idle - check whether the link has been idle for long
++ * enough that we can shut it down.
++ */
++static void
++check_idle(arg)
++ void *arg;
++{
++ struct ppp_idle idle;
++ time_t itime;
++ int tlim;
++
++ if (!get_idle_time(0, &amp;idle))
++ return;
++ if (idle_time_hook != 0) {
++ tlim = idle_time_hook(&amp;idle);
++ } else {
++ itime = MIN(idle.xmit_idle, idle.recv_idle);
++ tlim = idle_time_limit - itime;
++ }
++ if (tlim &lt;= 0) {
++ /* link is idle: shut it down. */
++ notice(&quot;Terminating connection due to lack of activity.&quot;);
++ lcp_close(0, &quot;Link inactive&quot;);
++ need_holdoff = 0;
++ status = EXIT_IDLE_TIMEOUT;
++ } else {
++ TIMEOUT(check_idle, NULL, tlim);
++ }
++}
++
++/*
++ * connect_time_expired - log a message and close the connection.
++ */
++static void
++connect_time_expired(arg)
++ void *arg;
++{
++ info(&quot;Connect time expired&quot;);
++ lcp_close(0, &quot;Connect time expired&quot;); /* Close connection */
++ status = EXIT_CONNECT_TIME;
++}
++
++/*
++ * auth_check_options - called to check authentication options.
++ */
++void
++auth_check_options()
++{
++ lcp_options *wo = &amp;lcp_wantoptions[0];
++ int can_auth;
++ int lacks_ip;
++
++ /* Default our_name to hostname, and user to our_name */
++ if (our_name[0] == 0 || usehostname)
++ strlcpy(our_name, hostname, sizeof(our_name));
++ if (user[0] == 0)
++ strlcpy(user, our_name, sizeof(user));
++
++ /*
++ * If we have a default route, require the peer to authenticate
++ * unless the noauth option was given or the real user is root.
++ */
++ if (!auth_required &amp;&amp; !allow_any_ip &amp;&amp; have_route_to(0) &amp;&amp; !privileged) {
++ auth_required = 1;
++ default_auth = 1;
++ }
++
++ /* If authentication is required, ask peer for CHAP or PAP. */
++ if (auth_required) {
++ allow_any_ip = 0;
++ if (!wo-&gt;neg_chap &amp;&amp; !wo-&gt;neg_upap) {
++ wo-&gt;neg_chap = 1;
++ wo-&gt;neg_upap = 1;
++ }
++ } else {
++ wo-&gt;neg_chap = 0;
++ wo-&gt;neg_upap = 0;
++ }
++
++ /*
++ * Check whether we have appropriate secrets to use
++ * to authenticate the peer.
++ */
++ lacks_ip = 0;
++ can_auth = wo-&gt;neg_upap &amp;&amp; (uselogin || have_pap_secret(&amp;lacks_ip));
++ if (!can_auth &amp;&amp; wo-&gt;neg_chap) {
++ can_auth = have_chap_secret((explicit_remote? remote_name: NULL),
++ our_name, 1, &amp;lacks_ip);
++ }
++
++ if (auth_required &amp;&amp; !can_auth &amp;&amp; noauth_addrs == NULL) {
++ if (default_auth) {
++ option_error(
++&quot;By default the remote system is required to authenticate itself&quot;);
++ option_error(
++&quot;(because this system has a default route to the internet)&quot;);
++ } else if (explicit_remote)
++ option_error(
++&quot;The remote system (%s) is required to authenticate itself&quot;,
++ remote_name);
++ else
++ option_error(
++&quot;The remote system is required to authenticate itself&quot;);
++ option_error(
++&quot;but I couldn't find any suitable secret (password) for it to use to do so.&quot;);
++ if (lacks_ip)
++ option_error(
++&quot;(None of the available passwords would let it use an IP address.)&quot;);
++
++ exit(1);
++ }
++}
++
++/*
++ * auth_reset - called when LCP is starting negotiations to recheck
++ * authentication options, i.e. whether we have appropriate secrets
++ * to use for authenticating ourselves and/or the peer.
++ */
++void
++auth_reset(unit)
++ int unit;
++{
++ lcp_options *go = &amp;lcp_gotoptions[unit];
++ lcp_options *ao = &amp;lcp_allowoptions[0];
++
++ ao-&gt;neg_upap = !refuse_pap &amp;&amp; (passwd[0] != 0 || get_pap_passwd(NULL));
++ ao-&gt;neg_chap = !refuse_chap
++ &amp;&amp; (passwd[0] != 0
++ || have_chap_secret(user, (explicit_remote? remote_name: NULL),
++ 0, NULL));
++
++ if (go-&gt;neg_upap &amp;&amp; !uselogin &amp;&amp; !have_pap_secret(NULL))
++ go-&gt;neg_upap = 0;
++ if (go-&gt;neg_chap) {
++ if (!have_chap_secret((explicit_remote? remote_name: NULL),
++ our_name, 1, NULL))
++ go-&gt;neg_chap = 0;
++ }
++}
++
++
++/*
++ * check_passwd - Check the user name and passwd against the PAP secrets
++ * file. If requested, also check against the system password database,
++ * and login the user if OK.
++ *
++ * returns:
++ * UPAP_AUTHNAK: Authentication failed.
++ * UPAP_AUTHACK: Authentication succeeded.
++ * In either case, msg points to an appropriate message.
++ */
++int
++check_passwd(unit, auser, userlen, apasswd, passwdlen, msg)
++ int unit;
++ char *auser;
++ int userlen;
++ char *apasswd;
++ int passwdlen;
++ char **msg;
++{
++ int ret;
++ char *filename;
++ FILE *f;
++ struct wordlist *addrs = NULL, *opts = NULL;
++ char passwd[256], user[256];
++ char secret[MAXWORDLEN];
++ static int attempts = 0;
++
++ /*
++ * Make copies of apasswd and auser, then null-terminate them.
++ * If there are unprintable characters in the password, make
++ * them visible.
++ */
++ slprintf(passwd, sizeof(passwd), &quot;%.*v&quot;, passwdlen, apasswd);
++ slprintf(user, sizeof(user), &quot;%.*v&quot;, userlen, auser);
++ *msg = &quot;&quot;;
++
++ /*
++ * Check if a plugin wants to handle this.
++ */
++ if (pap_auth_hook) {
++ ret = (*pap_auth_hook)(user, passwd, msg, &amp;addrs, &amp;opts);
++ if (ret &gt;= 0) {
++ if (ret)
++ set_allowed_addrs(unit, addrs, opts);
++ BZERO(passwd, sizeof(passwd));
++ if (addrs != 0)
++ free_wordlist(addrs);
++ return ret? UPAP_AUTHACK: UPAP_AUTHNAK;
++ }
++ }
++
++ /*
++ * Open the file of pap secrets and scan for a suitable secret
++ * for authenticating this user.
++ */
++ filename = _PATH_UPAPFILE;
++ addrs = opts = NULL;
++ ret = UPAP_AUTHNAK;
++ f = fopen(filename, &quot;r&quot;);
++ if (f == NULL) {
++ error(&quot;Can't open PAP password file %s: %m&quot;, filename);
++
++ } else {
++ check_access(f, filename);
++ if (scan_authfile(f, user, our_name, secret, &amp;addrs, &amp;opts, filename) &lt; 0) {
++ warn(&quot;no PAP secret found for %s&quot;, user);
++ } else {
++ /*
++ * If the secret is &quot;@login&quot;, it means to check
++ * the password against the login database.
++ */
++ int login_secret = strcmp(secret, &quot;@login&quot;) == 0;
++ ret = UPAP_AUTHACK;
++ if (uselogin || login_secret) {
++ /* login option or secret is @login */
++ ret = plogin(user, passwd, msg);
++ if (ret == UPAP_AUTHNAK)
++ warn(&quot;PAP login failure for %s&quot;, user);
++ else
++ used_login = 1;
++ }
++ if (secret[0] != 0 &amp;&amp; !login_secret) {
++ /* password given in pap-secrets - must match */
++ if ((cryptpap || strcmp(passwd, secret) != 0)
++ &amp;&amp; strcmp(crypt(passwd, secret), secret) != 0) {
++ ret = UPAP_AUTHNAK;
++ warn(&quot;PAP authentication failure for %s&quot;, user);
++ }
++ }
++ }
++ fclose(f);
++ }
++
++ if (ret == UPAP_AUTHNAK) {
++ if (**msg == 0)
++ *msg = &quot;Login incorrect&quot;;
++ /*
++ * XXX can we ever get here more than once??
++ * Frustrate passwd stealer programs.
++ * Allow 10 tries, but start backing off after 3 (stolen from login).
++ * On 10'th, drop the connection.
++ */
++ if (attempts++ &gt;= 10) {
++ warn(&quot;%d LOGIN FAILURES ON %s, %s&quot;, attempts, devnam, user);
++ lcp_close(unit, &quot;login failed&quot;);
++ }
++ if (attempts &gt; 3)
++ sleep((u_int) (attempts - 3) * 5);
++ if (opts != NULL)
++ free_wordlist(opts);
++
++ } else {
++ attempts = 0; /* Reset count */
++ if (**msg == 0)
++ *msg = &quot;Login ok&quot;;
++ set_allowed_addrs(unit, addrs, opts);
++ }
++
++ if (addrs != NULL)
++ free_wordlist(addrs);
++ BZERO(passwd, sizeof(passwd));
++ BZERO(secret, sizeof(secret));
++
++ return ret;
++}
++
++/*
++ * This function is needed for PAM.
++ */
++
++#ifdef USE_PAM
++/* Static variables used to communicate between the conversation function
++ * and the server_login function
++ */
++static char *PAM_username;
++static char *PAM_password;
++static int PAM_error = 0;
++static pam_handle_t *pamh = NULL;
++
++/* PAM conversation function
++ * Here we assume (for now, at least) that echo on means login name, and
++ * echo off means password.
++ */
++
++static int PAM_conv (int num_msg, const struct pam_message **msg,
++ struct pam_response **resp, void *appdata_ptr)
++{
++ int replies = 0;
++ struct pam_response *reply = NULL;
++
++#define COPY_STRING(s) (s) ? strdup(s) : NULL
++
++ reply = malloc(sizeof(struct pam_response) * num_msg);
++ if (!reply) return PAM_CONV_ERR;
++
++ for (replies = 0; replies &lt; num_msg; replies++) {
++ switch (msg[replies]-&gt;msg_style) {
++ case PAM_PROMPT_ECHO_ON:
++ reply[replies].resp_retcode = PAM_SUCCESS;
++ reply[replies].resp = COPY_STRING(PAM_username);
++ /* PAM frees resp */
++ break;
++ case PAM_PROMPT_ECHO_OFF:
++ reply[replies].resp_retcode = PAM_SUCCESS;
++ reply[replies].resp = COPY_STRING(PAM_password);
++ /* PAM frees resp */
++ break;
++ case PAM_TEXT_INFO:
++ /* fall through */
++ case PAM_ERROR_MSG:
++ /* ignore it, but pam still wants a NULL response... */
++ reply[replies].resp_retcode = PAM_SUCCESS;
++ reply[replies].resp = NULL;
++ break;
++ default:
++ /* Must be an error of some sort... */
++ free (reply);
++ PAM_error = 1;
++ return PAM_CONV_ERR;
++ }
++ }
++ *resp = reply;
++ return PAM_SUCCESS;
++}
++
++static struct pam_conv PAM_conversation = {
++ &amp;PAM_conv,
++ NULL
++};
++#endif /* USE_PAM */
++
++/*
++ * plogin - Check the user name and password against the system
++ * password database, and login the user if OK.
++ *
++ * returns:
++ * UPAP_AUTHNAK: Login failed.
++ * UPAP_AUTHACK: Login succeeded.
++ * In either case, msg points to an appropriate message.
++ */
++
++static int
++plogin(user, passwd, msg)
++ char *user;
++ char *passwd;
++ char **msg;
++{
++ char *tty;
++
++#ifdef USE_PAM
++ int pam_error;
++
++ pam_error = pam_start (&quot;ppp&quot;, user, &amp;PAM_conversation, &amp;pamh);
++ if (pam_error != PAM_SUCCESS) {
++ *msg = (char *) pam_strerror (pamh, pam_error);
++ reopen_log();
++ return UPAP_AUTHNAK;
++ }
++ /*
++ * Define the fields for the credential validation
++ */
++
++ PAM_username = user;
++ PAM_password = passwd;
++ PAM_error = 0;
++ pam_set_item (pamh, PAM_TTY, devnam); /* this might be useful to some modules */
++
++ /*
++ * Validate the user
++ */
++ pam_error = pam_authenticate (pamh, PAM_SILENT);
++ if (pam_error == PAM_SUCCESS &amp;&amp; !PAM_error) {
++ pam_error = pam_acct_mgmt (pamh, PAM_SILENT);
++ if (pam_error == PAM_SUCCESS)
++ pam_error = pam_open_session (pamh, PAM_SILENT);
++ }
++
++ *msg = (char *) pam_strerror (pamh, pam_error);
++
++ /*
++ * Clean up the mess
++ */
++ reopen_log(); /* apparently the PAM stuff does closelog() */
++ PAM_username = NULL;
++ PAM_password = NULL;
++ if (pam_error != PAM_SUCCESS)
++ return UPAP_AUTHNAK;
++#else /* #ifdef USE_PAM */
++
++/*
++ * Use the non-PAM methods directly
++ */
++
++#ifdef HAS_SHADOW
++ struct spwd *spwd;
++ struct spwd *getspnam();
++#endif
++ struct passwd *pw = getpwnam(user);
++
++ endpwent();
++ if (pw == NULL)
++ return (UPAP_AUTHNAK);
++
++#ifdef HAS_SHADOW
++ spwd = getspnam(user);
++ endspent();
++ if (spwd) {
++ /* check the age of the password entry */
++ long now = time(NULL) / 86400L;
++
++ if ((spwd-&gt;sp_expire &gt; 0 &amp;&amp; now &gt;= spwd-&gt;sp_expire)
++ || ((spwd-&gt;sp_max &gt;= 0 &amp;&amp; spwd-&gt;sp_max &lt; 10000)
++ &amp;&amp; spwd-&gt;sp_lstchg &gt;= 0
++ &amp;&amp; now &gt;= spwd-&gt;sp_lstchg + spwd-&gt;sp_max)) {
++ warn(&quot;Password for %s has expired&quot;, user);
++ return (UPAP_AUTHNAK);
++ }
++ pw-&gt;pw_passwd = spwd-&gt;sp_pwdp;
++ }
++#endif
++
++ /*
++ * If no passwd, don't let them login.
++ */
++ if (pw-&gt;pw_passwd == NULL || strlen(pw-&gt;pw_passwd) &lt; 2
++ || strcmp(crypt(passwd, pw-&gt;pw_passwd), pw-&gt;pw_passwd) != 0)
++ return (UPAP_AUTHNAK);
++
++#endif /* #ifdef USE_PAM */
++
++ /*
++ * Write a wtmp entry for this user.
++ */
++
++ tty = devnam;
++ if (strncmp(tty, &quot;/dev/&quot;, 5) == 0)
++ tty += 5;
++// logwtmp(tty, user, remote_name); /* Add wtmp login entry */
++
++#if defined(_PATH_LASTLOG) &amp;&amp; !defined(USE_PAM)
++ if (pw != (struct passwd *)NULL) {
++ struct lastlog ll;
++ int fd;
++
++ if ((fd = open(_PATH_LASTLOG, O_RDWR, 0)) &gt;= 0) {
++ (void)lseek(fd, (off_t)(pw-&gt;pw_uid * sizeof(ll)), SEEK_SET);
++ memset((void *)&amp;ll, 0, sizeof(ll));
++ (void)time(&amp;ll.ll_time);
++ (void)strncpy(ll.ll_line, tty, sizeof(ll.ll_line));
++ (void)write(fd, (char *)&amp;ll, sizeof(ll));
++ (void)close(fd);
++ }
++ }
++#endif /* _PATH_LASTLOG and not USE_PAM */
++
++ info(&quot;user %s logged in&quot;, user);
++ logged_in = 1;
++
++ return (UPAP_AUTHACK);
++}
++
++/*
++ * plogout - Logout the user.
++ */
++static void
++plogout()
++{
++#ifdef USE_PAM
++ int pam_error;
++
++ if (pamh != NULL) {
++ pam_error = pam_close_session (pamh, PAM_SILENT);
++ pam_end (pamh, pam_error);
++ pamh = NULL;
++ }
++ /* Apparently the pam stuff does closelog(). */
++ reopen_log();
++#else /* ! USE_PAM */
++ char *tty;
++
++ tty = devnam;
++ if (strncmp(tty, &quot;/dev/&quot;, 5) == 0)
++ tty += 5;
++// logwtmp(tty, &quot;&quot;, &quot;&quot;); /* Wipe out utmp logout entry */
++#endif /* ! USE_PAM */
++ logged_in = 0;
++}
++
++
++/*
++ * null_login - Check if a username of &quot;&quot; and a password of &quot;&quot; are
++ * acceptable, and iff so, set the list of acceptable IP addresses
++ * and return 1.
++ */
++static int
++null_login(unit)
++ int unit;
++{
++ char *filename;
++ FILE *f;
++ int i, ret;
++ struct wordlist *addrs, *opts;
++ char secret[MAXWORDLEN];
++
++ /*
++ * Open the file of pap secrets and scan for a suitable secret.
++ */
++ filename = _PATH_UPAPFILE;
++ addrs = NULL;
++ f = fopen(filename, &quot;r&quot;);
++ if (f == NULL)
++ return 0;
++ check_access(f, filename);
++
++ i = scan_authfile(f, &quot;&quot;, our_name, secret, &amp;addrs, &amp;opts, filename);
++ ret = i &gt;= 0 &amp;&amp; secret[0] == 0;
++ BZERO(secret, sizeof(secret));
++
++ if (ret)
++ set_allowed_addrs(unit, addrs, opts);
++ else if (opts != 0)
++ free_wordlist(opts);
++ if (addrs != 0)
++ free_wordlist(addrs);
++
++ fclose(f);
++ return ret;
++}
++
++
++/*
++ * get_pap_passwd - get a password for authenticating ourselves with
++ * our peer using PAP. Returns 1 on success, 0 if no suitable password
++ * could be found.
++ * Assumes passwd points to MAXSECRETLEN bytes of space (if non-null).
++ */
++static int
++get_pap_passwd(passwd)
++ char *passwd;
++{
++ char *filename;
++ FILE *f;
++ int ret;
++ char secret[MAXWORDLEN];
++
++ /*
++ * Check whether a plugin wants to supply this.
++ */
++ if (pap_passwd_hook) {
++ ret = (*pap_passwd_hook)(user, passwd);
++ if (ret &gt;= 0)
++ return ret;
++ }
++
++ filename = _PATH_UPAPFILE;
++ f = fopen(filename, &quot;r&quot;);
++ if (f == NULL)
++ return 0;
++ check_access(f, filename);
++ ret = scan_authfile(f, user,
++ (remote_name[0]? remote_name: NULL),
++ secret, NULL, NULL, filename);
++ fclose(f);
++ if (ret &lt; 0)
++ return 0;
++ if (passwd != NULL)
++ strlcpy(passwd, secret, MAXSECRETLEN);
++ BZERO(secret, sizeof(secret));
++ return 1;
++}
++
++
++/*
++ * have_pap_secret - check whether we have a PAP file with any
++ * secrets that we could possibly use for authenticating the peer.
++ */
++static int
++have_pap_secret(lacks_ipp)
++ int *lacks_ipp;
++{
++ FILE *f;
++ int ret;
++ char *filename;
++ struct wordlist *addrs;
++
++ /* let the plugin decide, if there is one */
++ if (pap_check_hook) {
++ ret = (*pap_check_hook)();
++ if (ret &gt;= 0)
++ return ret;
++ }
++
++ filename = _PATH_UPAPFILE;
++ f = fopen(filename, &quot;r&quot;);
++ if (f == NULL)
++ return 0;
++
++ ret = scan_authfile(f, (explicit_remote? remote_name: NULL), our_name,
++ NULL, &amp;addrs, NULL, filename);
++ fclose(f);
++ if (ret &gt;= 0 &amp;&amp; !some_ip_ok(addrs)) {
++ if (lacks_ipp != 0)
++ *lacks_ipp = 1;
++ ret = -1;
++ }
++ if (addrs != 0)
++ free_wordlist(addrs);
++
++ return ret &gt;= 0;
++}
++
++
++/*
++ * have_chap_secret - check whether we have a CHAP file with a
++ * secret that we could possibly use for authenticating `client'
++ * on `server'. Either can be the null string, meaning we don't
++ * know the identity yet.
++ */
++static int
++have_chap_secret(client, server, need_ip, lacks_ipp)
++ char *client;
++ char *server;
++ int need_ip;
++ int *lacks_ipp;
++{
++ FILE *f;
++ int ret;
++ char *filename;
++ struct wordlist *addrs;
++
++ filename = _PATH_CHAPFILE;
++ f = fopen(filename, &quot;r&quot;);
++ if (f == NULL)
++ return 0;
++
++ if (client != NULL &amp;&amp; client[0] == 0)
++ client = NULL;
++ else if (server != NULL &amp;&amp; server[0] == 0)
++ server = NULL;
++
++ ret = scan_authfile(f, client, server, NULL, &amp;addrs, NULL, filename);
++ fclose(f);
++ if (ret &gt;= 0 &amp;&amp; need_ip &amp;&amp; !some_ip_ok(addrs)) {
++ if (lacks_ipp != 0)
++ *lacks_ipp = 1;
++ ret = -1;
++ }
++ if (addrs != 0)
++ free_wordlist(addrs);
++
++ return ret &gt;= 0;
++}
++
++
++/*
++ * get_secret - open the CHAP secret file and return the secret
++ * for authenticating the given client on the given server.
++ * (We could be either client or server).
++ */
++int
++get_secret(unit, client, server, secret, secret_len, am_server)
++ int unit;
++ char *client;
++ char *server;
++ char *secret;
++ int *secret_len;
++ int am_server;
++{
++ FILE *f;
++ int ret, len;
++ char *filename;
++ struct wordlist *addrs, *opts;
++ char secbuf[MAXWORDLEN];
++
++ if (!am_server &amp;&amp; passwd[0] != 0) {
++ strlcpy(secbuf, passwd, sizeof(secbuf));
++ } else {
++ filename = _PATH_CHAPFILE;
++ addrs = NULL;
++ secbuf[0] = 0;
++
++ f = fopen(filename, &quot;r&quot;);
++ if (f == NULL) {
++ error(&quot;Can't open chap secret file %s: %m&quot;, filename);
++ return 0;
++ }
++ check_access(f, filename);
++
++ ret = scan_authfile(f, client, server, secbuf, &amp;addrs, &amp;opts, filename);
++ fclose(f);
++ if (ret &lt; 0)
++ return 0;
++
++ if (am_server)
++ set_allowed_addrs(unit, addrs, opts);
++ else if (opts != 0)
++ free_wordlist(opts);
++ if (addrs != 0)
++ free_wordlist(addrs);
++ }
++
++ len = strlen(secbuf);
++ if (len &gt; MAXSECRETLEN) {
++ error(&quot;Secret for %s on %s is too long&quot;, client, server);
++ len = MAXSECRETLEN;
++ }
++ BCOPY(secbuf, secret, len);
++ BZERO(secbuf, sizeof(secbuf));
++ *secret_len = len;
++
++ return 1;
++}
++
++/*
++ * set_allowed_addrs() - set the list of allowed addresses.
++ * Also looks for `--' indicating options to apply for this peer
++ * and leaves the following words in extra_options.
++ */
++static void
++set_allowed_addrs(unit, addrs, opts)
++ int unit;
++ struct wordlist *addrs;
++ struct wordlist *opts;
++{
++ int n;
++ struct wordlist *ap, **plink;
++ struct permitted_ip *ip;
++ char *ptr_word, *ptr_mask;
++ struct hostent *hp;
++ u_int32_t a, mask, offset;
++ struct ipcp_options *wo = &amp;ipcp_wantoptions[unit];
++ u_int32_t suggested_ip = 0;
++
++ if (addresses[unit] != NULL)
++ free(addresses[unit]);
++ addresses[unit] = NULL;
++ if (extra_options != NULL)
++ free_wordlist(extra_options);
++ extra_options = opts;
++
++ /*
++ * Count the number of IP addresses given.
++ */
++ n = wordlist_count(addrs) + wordlist_count(noauth_addrs);
++ if (n == 0)
++ return;
++ ip = (struct permitted_ip *) malloc((n + 1) * sizeof(struct permitted_ip));
++ if (ip == 0)
++ return;
++
++ /* temporarily append the noauth_addrs list to addrs */
++ for (plink = &amp;addrs; *plink != NULL; plink = &amp;(*plink)-&gt;next)
++ ;
++ *plink = noauth_addrs;
++
++ n = 0;
++ for (ap = addrs; ap != NULL; ap = ap-&gt;next) {
++ /* &quot;-&quot; means no addresses authorized, &quot;*&quot; means any address allowed */
++ ptr_word = ap-&gt;word;
++ if (strcmp(ptr_word, &quot;-&quot;) == 0)
++ break;
++ if (strcmp(ptr_word, &quot;*&quot;) == 0) {
++ ip[n].permit = 1;
++ ip[n].base = ip[n].mask = 0;
++ ++n;
++ break;
++ }
++
++ ip[n].permit = 1;
++ if (*ptr_word == '!') {
++ ip[n].permit = 0;
++ ++ptr_word;
++ }
++
++ mask = ~ (u_int32_t) 0;
++ offset = 0;
++ ptr_mask = strchr (ptr_word, '/');
++ if (ptr_mask != NULL) {
++ int bit_count;
++ char *endp;
++
++ bit_count = (int) strtol (ptr_mask+1, &amp;endp, 10);
++ if (bit_count &lt;= 0 || bit_count &gt; 32) {
++ warn(&quot;invalid address length %v in auth. address list&quot;,
++ ptr_mask+1);
++ continue;
++ }
++ bit_count = 32 - bit_count; /* # bits in host part */
++ if (*endp == '+') {
++ offset = ifunit + 1;
++ ++endp;
++ }
++ if (*endp != 0) {
++ warn(&quot;invalid address length syntax: %v&quot;, ptr_mask+1);
++ continue;
++ }
++ *ptr_mask = '\0';
++ mask &lt;&lt;= bit_count;
++ }
++
++ hp = gethostbyname(ptr_word);
++ if (hp != NULL &amp;&amp; hp-&gt;h_addrtype == AF_INET) {
++ a = *(u_int32_t *)hp-&gt;h_addr;
++ } else {
++ printf(&quot;*** getnetbyname is unsupported, please report bug! ***\n&quot;);
++ return;
++ }
++
++ if (ptr_mask != NULL)
++ *ptr_mask = '/';
++
++ if (a == (u_int32_t)-1L) {
++ warn(&quot;unknown host %s in auth. address list&quot;, ap-&gt;word);
++ continue;
++ }
++ if (offset != 0) {
++ if (offset &gt;= ~mask) {
++ warn(&quot;interface unit %d too large for subnet %v&quot;,
++ ifunit, ptr_word);
++ continue;
++ }
++ a = htonl((ntohl(a) &amp; mask) + offset);
++ mask = ~(u_int32_t)0;
++ }
++ ip[n].mask = htonl(mask);
++ ip[n].base = a &amp; ip[n].mask;
++ ++n;
++ if (~mask == 0 &amp;&amp; suggested_ip == 0)
++ suggested_ip = a;
++ }
++ *plink = NULL;
++
++ ip[n].permit = 0; /* make the last entry forbid all addresses */
++ ip[n].base = 0; /* to terminate the list */
++ ip[n].mask = 0;
++
++ addresses[unit] = ip;
++
++ /*
++ * If the address given for the peer isn't authorized, or if
++ * the user hasn't given one, AND there is an authorized address
++ * which is a single host, then use that if we find one.
++ */
++ if (suggested_ip != 0
++ &amp;&amp; (wo-&gt;hisaddr == 0 || !auth_ip_addr(unit, wo-&gt;hisaddr))) {
++ wo-&gt;hisaddr = suggested_ip;
++ /*
++ * Do we insist on this address? No, if there are other
++ * addresses authorized than the suggested one.
++ */
++ if (n &gt; 1)
++ wo-&gt;accept_remote = 1;
++ }
++}
++
++/*
++ * auth_ip_addr - check whether the peer is authorized to use
++ * a given IP address. Returns 1 if authorized, 0 otherwise.
++ */
++int
++auth_ip_addr(unit, addr)
++ int unit;
++ u_int32_t addr;
++{
++ int ok;
++
++ /* don't allow loopback or multicast address */
++ if (bad_ip_adrs(addr))
++ return 0;
++
++ if (addresses[unit] != NULL) {
++ ok = ip_addr_check(addr, addresses[unit]);
++ if (ok &gt;= 0)
++ return ok;
++ }
++ if (auth_required)
++ return 0; /* no addresses authorized */
++ return allow_any_ip || privileged || !have_route_to(addr);
++}
++
++static int
++ip_addr_check(addr, addrs)
++ u_int32_t addr;
++ struct permitted_ip *addrs;
++{
++ for (; ; ++addrs)
++ if ((addr &amp; addrs-&gt;mask) == addrs-&gt;base)
++ return addrs-&gt;permit;
++}
++
++/*
++ * bad_ip_adrs - return 1 if the IP address is one we don't want
++ * to use, such as an address in the loopback net or a multicast address.
++ * addr is in network byte order.
++ */
++int
++bad_ip_adrs(addr)
++ u_int32_t addr;
++{
++ addr = ntohl(addr);
++ return (addr &gt;&gt; IN_CLASSA_NSHIFT) == IN_LOOPBACKNET
++ || IN_MULTICAST(addr) || IN_BADCLASS(addr);
++}
++
++/*
++ * some_ip_ok - check a wordlist to see if it authorizes any
++ * IP address(es).
++ */
++static int
++some_ip_ok(addrs)
++ struct wordlist *addrs;
++{
++ for (; addrs != 0; addrs = addrs-&gt;next) {
++ if (addrs-&gt;word[0] == '-')
++ break;
++ if (addrs-&gt;word[0] != '!')
++ return 1; /* some IP address is allowed */
++ }
++ return 0;
++}
++
++/*
++ * check_access - complain if a secret file has too-liberal permissions.
++ */
++static void
++check_access(f, filename)
++ FILE *f;
++ char *filename;
++{
++ struct stat sbuf;
++
++ if (fstat(fileno(f), &amp;sbuf) &lt; 0) {
++ warn(&quot;cannot stat secret file %s: %m&quot;, filename);
++ } else if ((sbuf.st_mode &amp; (S_IRWXG | S_IRWXO)) != 0) {
++ warn(&quot;Warning - secret file %s has world and/or group access&quot;,
++ filename);
++ }
++}
++
++
++/*
++ * scan_authfile - Scan an authorization file for a secret suitable
++ * for authenticating `client' on `server'. The return value is -1
++ * if no secret is found, otherwise &gt;= 0. The return value has
++ * NONWILD_CLIENT set if the secret didn't have &quot;*&quot; for the client, and
++ * NONWILD_SERVER set if the secret didn't have &quot;*&quot; for the server.
++ * Any following words on the line up to a &quot;--&quot; (i.e. address authorization
++ * info) are placed in a wordlist and returned in *addrs. Any
++ * following words (extra options) are placed in a wordlist and
++ * returned in *opts.
++ * We assume secret is NULL or points to MAXWORDLEN bytes of space.
++ */
++static int
++scan_authfile(f, client, server, secret, addrs, opts, filename)
++ FILE *f;
++ char *client;
++ char *server;
++ char *secret;
++ struct wordlist **addrs;
++ struct wordlist **opts;
++ char *filename;
++{
++ int newline, xxx;
++ int got_flag, best_flag;
++ FILE *sf;
++ struct wordlist *ap, *addr_list, *alist, **app;
++ char word[MAXWORDLEN];
++ char atfile[MAXWORDLEN];
++ char lsecret[MAXWORDLEN];
++
++ if (addrs != NULL)
++ *addrs = NULL;
++ if (opts != NULL)
++ *opts = NULL;
++ addr_list = NULL;
++ if (!getword(f, word, &amp;newline, filename))
++ return -1; /* file is empty??? */
++ newline = 1;
++ best_flag = -1;
++ for (;;) {
++ /*
++ * Skip until we find a word at the start of a line.
++ */
++ while (!newline &amp;&amp; getword(f, word, &amp;newline, filename))
++ ;
++ if (!newline)
++ break; /* got to end of file */
++
++ /*
++ * Got a client - check if it's a match or a wildcard.
++ */
++ got_flag = 0;
++ if (client != NULL &amp;&amp; strcmp(word, client) != 0 &amp;&amp; !ISWILD(word)) {
++ newline = 0;
++ continue;
++ }
++ if (!ISWILD(word))
++ got_flag = NONWILD_CLIENT;
++
++ /*
++ * Now get a server and check if it matches.
++ */
++ if (!getword(f, word, &amp;newline, filename))
++ break;
++ if (newline)
++ continue;
++ if (!ISWILD(word)) {
++ if (server != NULL &amp;&amp; strcmp(word, server) != 0)
++ continue;
++ got_flag |= NONWILD_SERVER;
++ }
++
++ /*
++ * Got some sort of a match - see if it's better than what
++ * we have already.
++ */
++ if (got_flag &lt;= best_flag)
++ continue;
++
++ /*
++ * Get the secret.
++ */
++ if (!getword(f, word, &amp;newline, filename))
++ break;
++ if (newline)
++ continue;
++
++ if (secret != NULL) {
++ /*
++ * Special syntax: @/pathname means read secret from file.
++ */
++ if (word[0] == '@' &amp;&amp; word[1] == '/') {
++ strlcpy(atfile, word+1, sizeof(atfile));
++ if ((sf = fopen(atfile, &quot;r&quot;)) == NULL) {
++ warn(&quot;can't open indirect secret file %s&quot;, atfile);
++ continue;
++ }
++ check_access(sf, atfile);
++ if (!getword(sf, word, &amp;xxx, atfile)) {
++ warn(&quot;no secret in indirect secret file %s&quot;, atfile);
++ fclose(sf);
++ continue;
++ }
++ fclose(sf);
++ }
++ strlcpy(lsecret, word, sizeof(lsecret));
++ }
++
++ /*
++ * Now read address authorization info and make a wordlist.
++ */
++ app = &amp;alist;
++ for (;;) {
++ if (!getword(f, word, &amp;newline, filename) || newline)
++ break;
++ ap = (struct wordlist *)
++ malloc(sizeof(struct wordlist) + strlen(word) + 1);
++ if (ap == NULL)
++ novm(&quot;authorized addresses&quot;);
++ ap-&gt;word = (char *) (ap + 1);
++ strcpy(ap-&gt;word, word);
++ *app = ap;
++ app = &amp;ap-&gt;next;
++ }
++ *app = NULL;
++
++ /*
++ * This is the best so far; remember it.
++ */
++ best_flag = got_flag;
++ if (addr_list)
++ free_wordlist(addr_list);
++ addr_list = alist;
++ if (secret != NULL)
++ strlcpy(secret, lsecret, MAXWORDLEN);
++
++ if (!newline)
++ break;
++ }
++
++ /* scan for a -- word indicating the start of options */
++ for (app = &amp;addr_list; (ap = *app) != NULL; app = &amp;ap-&gt;next)
++ if (strcmp(ap-&gt;word, &quot;--&quot;) == 0)
++ break;
++ /* ap = start of options */
++ if (ap != NULL) {
++ ap = ap-&gt;next; /* first option */
++ free(*app); /* free the &quot;--&quot; word */
++ *app = NULL; /* terminate addr list */
++ }
++ if (opts != NULL)
++ *opts = ap;
++ else if (ap != NULL)
++ free_wordlist(ap);
++ if (addrs != NULL)
++ *addrs = addr_list;
++ else if (addr_list != NULL)
++ free_wordlist(addr_list);
++
++ return best_flag;
++}
++
++/*
++ * wordlist_count - return the number of items in a wordlist
++ */
++static int
++wordlist_count(wp)
++ struct wordlist *wp;
++{
++ int n;
++
++ for (n = 0; wp != NULL; wp = wp-&gt;next)
++ ++n;
++ return n;
++}
++
++/*
++ * free_wordlist - release memory allocated for a wordlist.
++ */
++static void
++free_wordlist(wp)
++ struct wordlist *wp;
++{
++ struct wordlist *next;
++
++ while (wp != NULL) {
++ next = wp-&gt;next;
++ free(wp);
++ wp = next;
++ }
++}
++
++/*
++ * auth_script_done - called when the auth-up or auth-down script
++ * has finished.
++ */
++static void
++auth_script_done(arg)
++ void *arg;
++{
++ auth_script_pid = 0;
++ switch (auth_script_state) {
++ case s_up:
++ if (auth_state == s_down) {
++ auth_script_state = s_down;
++ auth_script(_PATH_AUTHDOWN);
++ }
++ break;
++ case s_down:
++ if (auth_state == s_up) {
++ auth_script_state = s_up;
++ auth_script(_PATH_AUTHUP);
++ }
++ break;
++ }
++}
++
++/*
++ * auth_script - execute a script with arguments
++ * interface-name peer-name real-user tty speed
++ */
++static void
++auth_script(script)
++ char *script;
++{
++ char strspeed[32];
++ struct passwd *pw;
++ char struid[32];
++ char *user_name;
++ char *argv[8];
++
++ if ((pw = getpwuid(getuid())) != NULL &amp;&amp; pw-&gt;pw_name != NULL)
++ user_name = pw-&gt;pw_name;
++ else {
++ slprintf(struid, sizeof(struid), &quot;%d&quot;, getuid());
++ user_name = struid;
++ }
++ slprintf(strspeed, sizeof(strspeed), &quot;%d&quot;, baud_rate);
++
++ argv[0] = script;
++ argv[1] = ifname;
++ argv[2] = peer_authname;
++ argv[3] = user_name;
++ argv[4] = devnam;
++ argv[5] = strspeed;
++ argv[6] = NULL;
++
++ auth_script_pid = run_program(script, argv, 0, auth_script_done, NULL);
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/pppd/auth.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1ppppppdcbcpc">Added: drakx/trunk/mdk-stage1/ppp/pppd/cbcp.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/cbcp.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/cbcp.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,456 @@
++/*
++ * cbcp - Call Back Configuration Protocol.
++ *
++ * Copyright (c) 1995 Pedro Roque Marques
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms are permitted
++ * provided that the above copyright notice and this paragraph are
++ * duplicated in all such forms and that any documentation,
++ * advertising materials, and other materials related to such
++ * distribution and use acknowledge that the software was developed
++ * by Pedro Roque Marques. The name of the author may not be used to
++ * endorse or promote products derived from this software without
++ * specific prior written permission.
++ *
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
++ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
++ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++ */
++
++#define RCSID &quot;$Id: cbcp.c 195720 2001-06-11 11:44:34Z gc $&quot;
++
++#include &lt;stdio.h&gt;
++#include &lt;string.h&gt;
++#include &lt;sys/types.h&gt;
++#include &lt;sys/time.h&gt;
++
++#include &quot;pppd.h&quot;
++#include &quot;cbcp.h&quot;
++#include &quot;fsm.h&quot;
++#include &quot;lcp.h&quot;
++
++static const char rcsid[] = RCSID;
++
++/*
++ * Options.
++ */
++static int setcbcp __P((char **));
++
++static option_t cbcp_option_list[] = {
++ { &quot;callback&quot;, o_special, setcbcp,
++ &quot;Ask for callback&quot;, OPT_PRIO | OPT_A2STRVAL, &amp;cbcp[0].us_number },
++ { NULL }
++};
++
++/*
++ * Protocol entry points.
++ */
++static void cbcp_init __P((int unit));
++static void cbcp_open __P((int unit));
++static void cbcp_lowerup __P((int unit));
++static void cbcp_input __P((int unit, u_char *pkt, int len));
++static void cbcp_protrej __P((int unit));
++static int cbcp_printpkt __P((u_char *pkt, int len,
++ void (*printer) __P((void *, char *, ...)),
++ void *arg));
++
++struct protent cbcp_protent = {
++ PPP_CBCP,
++ cbcp_init,
++ cbcp_input,
++ cbcp_protrej,
++ cbcp_lowerup,
++ NULL,
++ cbcp_open,
++ NULL,
++ cbcp_printpkt,
++ NULL,
++ 0,
++ &quot;CBCP&quot;,
++ NULL,
++ cbcp_option_list,
++ NULL,
++ NULL,
++ NULL
++};
++
++cbcp_state cbcp[NUM_PPP];
++
++/* internal prototypes */
++
++static void cbcp_recvreq __P((cbcp_state *us, char *pckt, int len));
++static void cbcp_resp __P((cbcp_state *us));
++static void cbcp_up __P((cbcp_state *us));
++static void cbcp_recvack __P((cbcp_state *us, char *pckt, int len));
++static void cbcp_send __P((cbcp_state *us, u_char code, u_char *buf, int len));
++
++/* option processing */
++static int
++setcbcp(argv)
++ char **argv;
++{
++ lcp_wantoptions[0].neg_cbcp = 1;
++ cbcp_protent.enabled_flag = 1;
++ cbcp[0].us_number = strdup(*argv);
++ if (cbcp[0].us_number == 0)
++ novm(&quot;callback number&quot;);
++ cbcp[0].us_type |= (1 &lt;&lt; CB_CONF_USER);
++ cbcp[0].us_type |= (1 &lt;&lt; CB_CONF_ADMIN);
++ return (1);
++}
++
++/* init state */
++static void
++cbcp_init(iface)
++ int iface;
++{
++ cbcp_state *us;
++
++ us = &amp;cbcp[iface];
++ memset(us, 0, sizeof(cbcp_state));
++ us-&gt;us_unit = iface;
++ us-&gt;us_type |= (1 &lt;&lt; CB_CONF_NO);
++}
++
++/* lower layer is up */
++static void
++cbcp_lowerup(iface)
++ int iface;
++{
++ cbcp_state *us = &amp;cbcp[iface];
++
++ dbglog(&quot;cbcp_lowerup&quot;);
++ dbglog(&quot;want: %d&quot;, us-&gt;us_type);
++
++ if (us-&gt;us_type == CB_CONF_USER)
++ dbglog(&quot;phone no: %s&quot;, us-&gt;us_number);
++}
++
++static void
++cbcp_open(unit)
++ int unit;
++{
++ dbglog(&quot;cbcp_open&quot;);
++}
++
++/* process an incomming packet */
++static void
++cbcp_input(unit, inpacket, pktlen)
++ int unit;
++ u_char *inpacket;
++ int pktlen;
++{
++ u_char *inp;
++ u_char code, id;
++ u_short len;
++
++ cbcp_state *us = &amp;cbcp[unit];
++
++ inp = inpacket;
++
++ if (pktlen &lt; CBCP_MINLEN) {
++ error(&quot;CBCP packet is too small&quot;);
++ return;
++ }
++
++ GETCHAR(code, inp);
++ GETCHAR(id, inp);
++ GETSHORT(len, inp);
++
++#if 0
++ if (len &gt; pktlen) {
++ error(&quot;CBCP packet: invalid length&quot;);
++ return;
++ }
++#endif
++
++ len -= CBCP_MINLEN;
++
++ switch(code) {
++ case CBCP_REQ:
++ us-&gt;us_id = id;
++ cbcp_recvreq(us, inp, len);
++ break;
++
++ case CBCP_RESP:
++ dbglog(&quot;CBCP_RESP received&quot;);
++ break;
++
++ case CBCP_ACK:
++ if (id != us-&gt;us_id)
++ dbglog(&quot;id doesn't match: expected %d recv %d&quot;,
++ us-&gt;us_id, id);
++
++ cbcp_recvack(us, inp, len);
++ break;
++
++ default:
++ break;
++ }
++}
++
++/* protocol was rejected by foe */
++void cbcp_protrej(int iface)
++{
++}
++
++char *cbcp_codenames[] = {
++ &quot;Request&quot;, &quot;Response&quot;, &quot;Ack&quot;
++};
++
++char *cbcp_optionnames[] = {
++ &quot;NoCallback&quot;,
++ &quot;UserDefined&quot;,
++ &quot;AdminDefined&quot;,
++ &quot;List&quot;
++};
++
++/* pretty print a packet */
++static int
++cbcp_printpkt(p, plen, printer, arg)
++ u_char *p;
++ int plen;
++ void (*printer) __P((void *, char *, ...));
++ void *arg;
++{
++ int code, opt, id, len, olen, delay;
++ u_char *pstart;
++
++ if (plen &lt; HEADERLEN)
++ return 0;
++ pstart = p;
++ GETCHAR(code, p);
++ GETCHAR(id, p);
++ GETSHORT(len, p);
++ if (len &lt; HEADERLEN || len &gt; plen)
++ return 0;
++
++ if (code &gt;= 1 &amp;&amp; code &lt;= sizeof(cbcp_codenames) / sizeof(char *))
++ printer(arg, &quot; %s&quot;, cbcp_codenames[code-1]);
++ else
++ printer(arg, &quot; code=0x%x&quot;, code);
++
++ printer(arg, &quot; id=0x%x&quot;, id);
++ len -= HEADERLEN;
++
++ switch (code) {
++ case CBCP_REQ:
++ case CBCP_RESP:
++ case CBCP_ACK:
++ while(len &gt;= 2) {
++ GETCHAR(opt, p);
++ GETCHAR(olen, p);
++
++ if (olen &lt; 2 || olen &gt; len) {
++ break;
++ }
++
++ printer(arg, &quot; &lt;&quot;);
++ len -= olen;
++
++ if (opt &gt;= 1 &amp;&amp; opt &lt;= sizeof(cbcp_optionnames) / sizeof(char *))
++ printer(arg, &quot; %s&quot;, cbcp_optionnames[opt-1]);
++ else
++ printer(arg, &quot; option=0x%x&quot;, opt);
++
++ if (olen &gt; 2) {
++ GETCHAR(delay, p);
++ printer(arg, &quot; delay = %d&quot;, delay);
++ }
++
++ if (olen &gt; 3) {
++ int addrt;
++ char str[256];
++
++ GETCHAR(addrt, p);
++ memcpy(str, p, olen - 4);
++ str[olen - 4] = 0;
++ printer(arg, &quot; number = %s&quot;, str);
++ }
++ printer(arg, &quot;&gt;&quot;);
++ break;
++ }
++
++ default:
++ break;
++ }
++
++ for (; len &gt; 0; --len) {
++ GETCHAR(code, p);
++ printer(arg, &quot; %.2x&quot;, code);
++ }
++
++ return p - pstart;
++}
++
++/* received CBCP request */
++static void
++cbcp_recvreq(us, pckt, pcktlen)
++ cbcp_state *us;
++ char *pckt;
++ int pcktlen;
++{
++ u_char type, opt_len, delay, addr_type;
++ char address[256];
++ int len = pcktlen;
++
++ address[0] = 0;
++
++ while (len) {
++ dbglog(&quot;length: %d&quot;, len);
++
++ GETCHAR(type, pckt);
++ GETCHAR(opt_len, pckt);
++
++ if (opt_len &gt; 2)
++ GETCHAR(delay, pckt);
++
++ us-&gt;us_allowed |= (1 &lt;&lt; type);
++
++ switch(type) {
++ case CB_CONF_NO:
++ dbglog(&quot;no callback allowed&quot;);
++ break;
++
++ case CB_CONF_USER:
++ dbglog(&quot;user callback allowed&quot;);
++ if (opt_len &gt; 4) {
++ GETCHAR(addr_type, pckt);
++ memcpy(address, pckt, opt_len - 4);
++ address[opt_len - 4] = 0;
++ if (address[0])
++ dbglog(&quot;address: %s&quot;, address);
++ }
++ break;
++
++ case CB_CONF_ADMIN:
++ dbglog(&quot;user admin defined allowed&quot;);
++ break;
++
++ case CB_CONF_LIST:
++ break;
++ }
++ len -= opt_len;
++ }
++
++ cbcp_resp(us);
++}
++
++static void
++cbcp_resp(us)
++ cbcp_state *us;
++{
++ u_char cb_type;
++ u_char buf[256];
++ u_char *bufp = buf;
++ int len = 0;
++
++ cb_type = us-&gt;us_allowed &amp; us-&gt;us_type;
++ dbglog(&quot;cbcp_resp cb_type=%d&quot;, cb_type);
++
++#if 0
++ if (!cb_type)
++ lcp_down(us-&gt;us_unit);
++#endif
++
++ if (cb_type &amp; ( 1 &lt;&lt; CB_CONF_USER ) ) {
++ dbglog(&quot;cbcp_resp CONF_USER&quot;);
++ PUTCHAR(CB_CONF_USER, bufp);
++ len = 3 + 1 + strlen(us-&gt;us_number) + 1;
++ PUTCHAR(len , bufp);
++ PUTCHAR(5, bufp); /* delay */
++ PUTCHAR(1, bufp);
++ BCOPY(us-&gt;us_number, bufp, strlen(us-&gt;us_number) + 1);
++ cbcp_send(us, CBCP_RESP, buf, len);
++ return;
++ }
++
++ if (cb_type &amp; ( 1 &lt;&lt; CB_CONF_ADMIN ) ) {
++ dbglog(&quot;cbcp_resp CONF_ADMIN&quot;);
++ PUTCHAR(CB_CONF_ADMIN, bufp);
++ len = 3;
++ PUTCHAR(len, bufp);
++ PUTCHAR(5, bufp); /* delay */
++ cbcp_send(us, CBCP_RESP, buf, len);
++ return;
++ }
++
++ if (cb_type &amp; ( 1 &lt;&lt; CB_CONF_NO ) ) {
++ dbglog(&quot;cbcp_resp CONF_NO&quot;);
++ PUTCHAR(CB_CONF_NO, bufp);
++ len = 3;
++ PUTCHAR(len , bufp);
++ PUTCHAR(0, bufp);
++ cbcp_send(us, CBCP_RESP, buf, len);
++ start_networks();
++ return;
++ }
++}
++
++static void
++cbcp_send(us, code, buf, len)
++ cbcp_state *us;
++ u_char code;
++ u_char *buf;
++ int len;
++{
++ u_char *outp;
++ int outlen;
++
++ outp = outpacket_buf;
++
++ outlen = 4 + len;
++
++ MAKEHEADER(outp, PPP_CBCP);
++
++ PUTCHAR(code, outp);
++ PUTCHAR(us-&gt;us_id, outp);
++ PUTSHORT(outlen, outp);
++
++ if (len)
++ BCOPY(buf, outp, len);
++
++ output(us-&gt;us_unit, outpacket_buf, outlen + PPP_HDRLEN);
++}
++
++static void
++cbcp_recvack(us, pckt, len)
++ cbcp_state *us;
++ char *pckt;
++ int len;
++{
++ u_char type, delay, addr_type;
++ int opt_len;
++ char address[256];
++
++ if (len) {
++ GETCHAR(type, pckt);
++ GETCHAR(opt_len, pckt);
++
++ if (opt_len &gt; 2)
++ GETCHAR(delay, pckt);
++
++ if (opt_len &gt; 4) {
++ GETCHAR(addr_type, pckt);
++ memcpy(address, pckt, opt_len - 4);
++ address[opt_len - 4] = 0;
++ if (address[0])
++ dbglog(&quot;peer will call: %s&quot;, address);
++ }
++ if (type == CB_CONF_NO)
++ return;
++ }
++
++ cbcp_up(us);
++}
++
++/* ok peer will do callback */
++static void
++cbcp_up(us)
++ cbcp_state *us;
++{
++ persist = 0;
++ lcp_close(0, &quot;Call me back, please&quot;);
++ status = EXIT_CALLBACK;
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/pppd/cbcp.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1ppppppdcbcph">Added: drakx/trunk/mdk-stage1/ppp/pppd/cbcp.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/cbcp.h (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/cbcp.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,26 @@
++#ifndef CBCP_H
++#define CBCP_H
++
++typedef struct cbcp_state {
++ int us_unit; /* Interface unit number */
++ u_char us_id; /* Current id */
++ u_char us_allowed;
++ int us_type;
++ char *us_number; /* Telefone Number */
++} cbcp_state;
++
++extern cbcp_state cbcp[];
++
++extern struct protent cbcp_protent;
++
++#define CBCP_MINLEN 4
++
++#define CBCP_REQ 1
++#define CBCP_RESP 2
++#define CBCP_ACK 3
++
++#define CB_CONF_NO 1
++#define CB_CONF_USER 2
++#define CB_CONF_ADMIN 3
++#define CB_CONF_LIST 4
++#endif
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/pppd/cbcp.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1ppppppdccpc">Added: drakx/trunk/mdk-stage1/ppp/pppd/ccp.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/ccp.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/ccp.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,1257 @@
++/*
++ * ccp.c - PPP Compression Control Protocol.
++ *
++ * Copyright (c) 1994 The Australian National University.
++ * All rights reserved.
++ *
++ * Permission to use, copy, modify, and distribute this software and its
++ * documentation is hereby granted, provided that the above copyright
++ * notice appears in all copies. This software is provided without any
++ * warranty, express or implied. The Australian National University
++ * makes no representations about the suitability of this software for
++ * any purpose.
++ *
++ * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY
++ * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
++ * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
++ * THE AUSTRALIAN NATIONAL UNIVERSITY HAVE BEEN ADVISED OF THE POSSIBILITY
++ * OF SUCH DAMAGE.
++ *
++ * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
++ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
++ * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
++ * ON AN &quot;AS IS&quot; BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO
++ * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
++ * OR MODIFICATIONS.
++ */
++
++#define RCSID &quot;$Id: ccp.c 195720 2001-06-11 11:44:34Z gc $&quot;
++
++#include &lt;stdlib.h&gt;
++#include &lt;string.h&gt;
++
++#include &quot;pppd.h&quot;
++#include &quot;fsm.h&quot;
++#include &quot;ccp.h&quot;
++#include &lt;net/ppp-comp.h&gt;
++
++static const char rcsid[] = RCSID;
++
++/*
++ * Unfortunately there is a bug in zlib which means that using a
++ * size of 8 (window size = 256) for Deflate compression will cause
++ * buffer overruns and kernel crashes in the deflate module.
++ * Until this is fixed we only accept sizes in the range 9 .. 15.
++ * Thanks to James Carlson for pointing this out.
++ */
++#define DEFLATE_MIN_WORKS 9
++
++/*
++ * Command-line options.
++ */
++static int setbsdcomp __P((char **));
++static int setdeflate __P((char **));
++static char bsd_value[8];
++static char deflate_value[8];
++
++static option_t ccp_option_list[] = {
++ { &quot;noccp&quot;, o_bool, &amp;ccp_protent.enabled_flag,
++ &quot;Disable CCP negotiation&quot; },
++ { &quot;-ccp&quot;, o_bool, &amp;ccp_protent.enabled_flag,
++ &quot;Disable CCP negotiation&quot;, OPT_ALIAS },
++
++ { &quot;bsdcomp&quot;, o_special, (void *)setbsdcomp,
++ &quot;Request BSD-Compress packet compression&quot;,
++ OPT_PRIO | OPT_A2STRVAL | OPT_STATIC, bsd_value },
++ { &quot;nobsdcomp&quot;, o_bool, &amp;ccp_wantoptions[0].bsd_compress,
++ &quot;don't allow BSD-Compress&quot;, OPT_PRIOSUB | OPT_A2CLR,
++ &amp;ccp_allowoptions[0].bsd_compress },
++ { &quot;-bsdcomp&quot;, o_bool, &amp;ccp_wantoptions[0].bsd_compress,
++ &quot;don't allow BSD-Compress&quot;, OPT_ALIAS | OPT_PRIOSUB | OPT_A2CLR,
++ &amp;ccp_allowoptions[0].bsd_compress },
++
++ { &quot;deflate&quot;, o_special, (void *)setdeflate,
++ &quot;request Deflate compression&quot;,
++ OPT_PRIO | OPT_A2STRVAL | OPT_STATIC, deflate_value },
++ { &quot;nodeflate&quot;, o_bool, &amp;ccp_wantoptions[0].deflate,
++ &quot;don't allow Deflate compression&quot;, OPT_PRIOSUB | OPT_A2CLR,
++ &amp;ccp_allowoptions[0].deflate },
++ { &quot;-deflate&quot;, o_bool, &amp;ccp_wantoptions[0].deflate,
++ &quot;don't allow Deflate compression&quot;, OPT_ALIAS | OPT_PRIOSUB | OPT_A2CLR,
++ &amp;ccp_allowoptions[0].deflate },
++
++ { &quot;nodeflatedraft&quot;, o_bool, &amp;ccp_wantoptions[0].deflate_draft,
++ &quot;don't use draft deflate #&quot;, OPT_A2COPY,
++ &amp;ccp_allowoptions[0].deflate_draft },
++
++ { &quot;predictor1&quot;, o_bool, &amp;ccp_wantoptions[0].predictor_1,
++ &quot;request Predictor-1&quot;, 1, &amp;ccp_allowoptions[0].predictor_1, OPT_PRIO },
++ { &quot;nopredictor1&quot;, o_bool, &amp;ccp_wantoptions[0].predictor_1,
++ &quot;don't allow Predictor-1&quot;, OPT_PRIOSUB | OPT_A2CLR,
++ &amp;ccp_allowoptions[0].predictor_1 },
++ { &quot;-predictor1&quot;, o_bool, &amp;ccp_wantoptions[0].predictor_1,
++ &quot;don't allow Predictor-1&quot;, OPT_ALIAS | OPT_PRIOSUB | OPT_A2CLR,
++ &amp;ccp_allowoptions[0].predictor_1 },
++
++ { NULL }
++};
++
++/*
++ * Protocol entry points from main code.
++ */
++static void ccp_init __P((int unit));
++static void ccp_open __P((int unit));
++static void ccp_close __P((int unit, char *));
++static void ccp_lowerup __P((int unit));
++static void ccp_lowerdown __P((int));
++static void ccp_input __P((int unit, u_char *pkt, int len));
++static void ccp_protrej __P((int unit));
++static int ccp_printpkt __P((u_char *pkt, int len,
++ void (*printer) __P((void *, char *, ...)),
++ void *arg));
++static void ccp_datainput __P((int unit, u_char *pkt, int len));
++
++struct protent ccp_protent = {
++ PPP_CCP,
++ ccp_init,
++ ccp_input,
++ ccp_protrej,
++ ccp_lowerup,
++ ccp_lowerdown,
++ ccp_open,
++ ccp_close,
++ ccp_printpkt,
++ ccp_datainput,
++ 1,
++ &quot;CCP&quot;,
++ &quot;Compressed&quot;,
++ ccp_option_list,
++ NULL,
++ NULL,
++ NULL
++};
++
++fsm ccp_fsm[NUM_PPP];
++ccp_options ccp_wantoptions[NUM_PPP]; /* what to request the peer to use */
++ccp_options ccp_gotoptions[NUM_PPP]; /* what the peer agreed to do */
++ccp_options ccp_allowoptions[NUM_PPP]; /* what we'll agree to do */
++ccp_options ccp_hisoptions[NUM_PPP]; /* what we agreed to do */
++
++/*
++ * Callbacks for fsm code.
++ */
++static void ccp_resetci __P((fsm *));
++static int ccp_cilen __P((fsm *));
++static void ccp_addci __P((fsm *, u_char *, int *));
++static int ccp_ackci __P((fsm *, u_char *, int));
++static int ccp_nakci __P((fsm *, u_char *, int));
++static int ccp_rejci __P((fsm *, u_char *, int));
++static int ccp_reqci __P((fsm *, u_char *, int *, int));
++static void ccp_up __P((fsm *));
++static void ccp_down __P((fsm *));
++static int ccp_extcode __P((fsm *, int, int, u_char *, int));
++static void ccp_rack_timeout __P((void *));
++static char *method_name __P((ccp_options *, ccp_options *));
++
++static fsm_callbacks ccp_callbacks = {
++ ccp_resetci,
++ ccp_cilen,
++ ccp_addci,
++ ccp_ackci,
++ ccp_nakci,
++ ccp_rejci,
++ ccp_reqci,
++ ccp_up,
++ ccp_down,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ ccp_extcode,
++ &quot;CCP&quot;
++};
++
++/*
++ * Do we want / did we get any compression?
++ */
++#define ANY_COMPRESS(opt) ((opt).deflate || (opt).bsd_compress \
++ || (opt).predictor_1 || (opt).predictor_2)
++
++/*
++ * Local state (mainly for handling reset-reqs and reset-acks).
++ */
++static int ccp_localstate[NUM_PPP];
++#define RACK_PENDING 1 /* waiting for reset-ack */
++#define RREQ_REPEAT 2 /* send another reset-req if no reset-ack */
++
++#define RACKTIMEOUT 1 /* second */
++
++static int all_rejected[NUM_PPP]; /* we rejected all peer's options */
++
++/*
++ * Option parsing.
++ */
++static int
++setbsdcomp(argv)
++ char **argv;
++{
++ int rbits, abits;
++ char *str, *endp;
++
++ str = *argv;
++ abits = rbits = strtol(str, &amp;endp, 0);
++ if (endp != str &amp;&amp; *endp == ',') {
++ str = endp + 1;
++ abits = strtol(str, &amp;endp, 0);
++ }
++ if (*endp != 0 || endp == str) {
++ option_error(&quot;invalid parameter '%s' for bsdcomp option&quot;, *argv);
++ return 0;
++ }
++ if ((rbits != 0 &amp;&amp; (rbits &lt; BSD_MIN_BITS || rbits &gt; BSD_MAX_BITS))
++ || (abits != 0 &amp;&amp; (abits &lt; BSD_MIN_BITS || abits &gt; BSD_MAX_BITS))) {
++ option_error(&quot;bsdcomp option values must be 0 or %d .. %d&quot;,
++ BSD_MIN_BITS, BSD_MAX_BITS);
++ return 0;
++ }
++ if (rbits &gt; 0) {
++ ccp_wantoptions[0].bsd_compress = 1;
++ ccp_wantoptions[0].bsd_bits = rbits;
++ } else
++ ccp_wantoptions[0].bsd_compress = 0;
++ if (abits &gt; 0) {
++ ccp_allowoptions[0].bsd_compress = 1;
++ ccp_allowoptions[0].bsd_bits = abits;
++ } else
++ ccp_allowoptions[0].bsd_compress = 0;
++ slprintf(bsd_value, sizeof(bsd_value),
++ rbits == abits? &quot;%d&quot;: &quot;%d,%d&quot;, rbits, abits);
++
++ return 1;
++}
++
++static int
++setdeflate(argv)
++ char **argv;
++{
++ int rbits, abits;
++ char *str, *endp;
++
++ str = *argv;
++ abits = rbits = strtol(str, &amp;endp, 0);
++ if (endp != str &amp;&amp; *endp == ',') {
++ str = endp + 1;
++ abits = strtol(str, &amp;endp, 0);
++ }
++ if (*endp != 0 || endp == str) {
++ option_error(&quot;invalid parameter '%s' for deflate option&quot;, *argv);
++ return 0;
++ }
++ if ((rbits != 0 &amp;&amp; (rbits &lt; DEFLATE_MIN_SIZE || rbits &gt; DEFLATE_MAX_SIZE))
++ || (abits != 0 &amp;&amp; (abits &lt; DEFLATE_MIN_SIZE
++ || abits &gt; DEFLATE_MAX_SIZE))) {
++ option_error(&quot;deflate option values must be 0 or %d .. %d&quot;,
++ DEFLATE_MIN_SIZE, DEFLATE_MAX_SIZE);
++ return 0;
++ }
++ if (rbits == DEFLATE_MIN_SIZE || abits == DEFLATE_MIN_SIZE) {
++ if (rbits == DEFLATE_MIN_SIZE)
++ rbits = DEFLATE_MIN_WORKS;
++ if (abits == DEFLATE_MIN_SIZE)
++ abits = DEFLATE_MIN_WORKS;
++ warn(&quot;deflate option value of %d changed to %d to avoid zlib bug&quot;,
++ DEFLATE_MIN_SIZE, DEFLATE_MIN_WORKS);
++ }
++ if (rbits &gt; 0) {
++ ccp_wantoptions[0].deflate = 1;
++ ccp_wantoptions[0].deflate_size = rbits;
++ } else
++ ccp_wantoptions[0].deflate = 0;
++ if (abits &gt; 0) {
++ ccp_allowoptions[0].deflate = 1;
++ ccp_allowoptions[0].deflate_size = abits;
++ } else
++ ccp_allowoptions[0].deflate = 0;
++ slprintf(deflate_value, sizeof(deflate_value),
++ rbits == abits? &quot;%d&quot;: &quot;%d,%d&quot;, rbits, abits);
++
++ return 1;
++}
++
++/*
++ * ccp_init - initialize CCP.
++ */
++static void
++ccp_init(unit)
++ int unit;
++{
++ fsm *f = &amp;ccp_fsm[unit];
++
++ f-&gt;unit = unit;
++ f-&gt;protocol = PPP_CCP;
++ f-&gt;callbacks = &amp;ccp_callbacks;
++ fsm_init(f);
++
++ memset(&amp;ccp_wantoptions[unit], 0, sizeof(ccp_options));
++ memset(&amp;ccp_gotoptions[unit], 0, sizeof(ccp_options));
++ memset(&amp;ccp_allowoptions[unit], 0, sizeof(ccp_options));
++ memset(&amp;ccp_hisoptions[unit], 0, sizeof(ccp_options));
++
++ ccp_wantoptions[0].deflate = 1;
++ ccp_wantoptions[0].deflate_size = DEFLATE_MAX_SIZE;
++ ccp_wantoptions[0].deflate_correct = 1;
++ ccp_wantoptions[0].deflate_draft = 1;
++ ccp_allowoptions[0].deflate = 1;
++ ccp_allowoptions[0].deflate_size = DEFLATE_MAX_SIZE;
++ ccp_allowoptions[0].deflate_correct = 1;
++ ccp_allowoptions[0].deflate_draft = 1;
++
++ ccp_wantoptions[0].bsd_compress = 1;
++ ccp_wantoptions[0].bsd_bits = BSD_MAX_BITS;
++ ccp_allowoptions[0].bsd_compress = 1;
++ ccp_allowoptions[0].bsd_bits = BSD_MAX_BITS;
++
++ ccp_allowoptions[0].predictor_1 = 1;
++}
++
++/*
++ * ccp_open - CCP is allowed to come up.
++ */
++static void
++ccp_open(unit)
++ int unit;
++{
++ fsm *f = &amp;ccp_fsm[unit];
++
++ if (f-&gt;state != OPENED)
++ ccp_flags_set(unit, 1, 0);
++
++ /*
++ * Find out which compressors the kernel supports before
++ * deciding whether to open in silent mode.
++ */
++ ccp_resetci(f);
++ if (!ANY_COMPRESS(ccp_gotoptions[unit]))
++ f-&gt;flags |= OPT_SILENT;
++
++ fsm_open(f);
++}
++
++/*
++ * ccp_close - Terminate CCP.
++ */
++static void
++ccp_close(unit, reason)
++ int unit;
++ char *reason;
++{
++ ccp_flags_set(unit, 0, 0);
++ fsm_close(&amp;ccp_fsm[unit], reason);
++}
++
++/*
++ * ccp_lowerup - we may now transmit CCP packets.
++ */
++static void
++ccp_lowerup(unit)
++ int unit;
++{
++ fsm_lowerup(&amp;ccp_fsm[unit]);
++}
++
++/*
++ * ccp_lowerdown - we may not transmit CCP packets.
++ */
++static void
++ccp_lowerdown(unit)
++ int unit;
++{
++ fsm_lowerdown(&amp;ccp_fsm[unit]);
++}
++
++/*
++ * ccp_input - process a received CCP packet.
++ */
++static void
++ccp_input(unit, p, len)
++ int unit;
++ u_char *p;
++ int len;
++{
++ fsm *f = &amp;ccp_fsm[unit];
++ int oldstate;
++
++ /*
++ * Check for a terminate-request so we can print a message.
++ */
++ oldstate = f-&gt;state;
++ fsm_input(f, p, len);
++ if (oldstate == OPENED &amp;&amp; p[0] == TERMREQ &amp;&amp; f-&gt;state != OPENED)
++ notice(&quot;Compression disabled by peer.&quot;);
++
++ /*
++ * If we get a terminate-ack and we're not asking for compression,
++ * close CCP.
++ */
++ if (oldstate == REQSENT &amp;&amp; p[0] == TERMACK
++ &amp;&amp; !ANY_COMPRESS(ccp_gotoptions[unit]))
++ ccp_close(unit, &quot;No compression negotiated&quot;);
++}
++
++/*
++ * Handle a CCP-specific code.
++ */
++static int
++ccp_extcode(f, code, id, p, len)
++ fsm *f;
++ int code, id;
++ u_char *p;
++ int len;
++{
++ switch (code) {
++ case CCP_RESETREQ:
++ if (f-&gt;state != OPENED)
++ break;
++ /* send a reset-ack, which the transmitter will see and
++ reset its compression state. */
++ fsm_sdata(f, CCP_RESETACK, id, NULL, 0);
++ break;
++
++ case CCP_RESETACK:
++ if (ccp_localstate[f-&gt;unit] &amp; RACK_PENDING &amp;&amp; id == f-&gt;reqid) {
++ ccp_localstate[f-&gt;unit] &amp;= ~(RACK_PENDING | RREQ_REPEAT);
++ UNTIMEOUT(ccp_rack_timeout, f);
++ }
++ break;
++
++ default:
++ return 0;
++ }
++
++ return 1;
++}
++
++/*
++ * ccp_protrej - peer doesn't talk CCP.
++ */
++static void
++ccp_protrej(unit)
++ int unit;
++{
++ ccp_flags_set(unit, 0, 0);
++ fsm_lowerdown(&amp;ccp_fsm[unit]);
++}
++
++/*
++ * ccp_resetci - initialize at start of negotiation.
++ */
++static void
++ccp_resetci(f)
++ fsm *f;
++{
++ ccp_options *go = &amp;ccp_gotoptions[f-&gt;unit];
++ u_char opt_buf[16];
++
++ *go = ccp_wantoptions[f-&gt;unit];
++ all_rejected[f-&gt;unit] = 0;
++
++ /*
++ * Check whether the kernel knows about the various
++ * compression methods we might request.
++ */
++ if (go-&gt;bsd_compress) {
++ opt_buf[0] = CI_BSD_COMPRESS;
++ opt_buf[1] = CILEN_BSD_COMPRESS;
++ opt_buf[2] = BSD_MAKE_OPT(BSD_CURRENT_VERSION, BSD_MIN_BITS);
++ if (ccp_test(f-&gt;unit, opt_buf, CILEN_BSD_COMPRESS, 0) &lt;= 0)
++ go-&gt;bsd_compress = 0;
++ }
++ if (go-&gt;deflate) {
++ if (go-&gt;deflate_correct) {
++ opt_buf[0] = CI_DEFLATE;
++ opt_buf[1] = CILEN_DEFLATE;
++ opt_buf[2] = DEFLATE_MAKE_OPT(DEFLATE_MIN_WORKS);
++ opt_buf[3] = DEFLATE_CHK_SEQUENCE;
++ if (ccp_test(f-&gt;unit, opt_buf, CILEN_DEFLATE, 0) &lt;= 0)
++ go-&gt;deflate_correct = 0;
++ }
++ if (go-&gt;deflate_draft) {
++ opt_buf[0] = CI_DEFLATE_DRAFT;
++ opt_buf[1] = CILEN_DEFLATE;
++ opt_buf[2] = DEFLATE_MAKE_OPT(DEFLATE_MIN_WORKS);
++ opt_buf[3] = DEFLATE_CHK_SEQUENCE;
++ if (ccp_test(f-&gt;unit, opt_buf, CILEN_DEFLATE, 0) &lt;= 0)
++ go-&gt;deflate_draft = 0;
++ }
++ if (!go-&gt;deflate_correct &amp;&amp; !go-&gt;deflate_draft)
++ go-&gt;deflate = 0;
++ }
++ if (go-&gt;predictor_1) {
++ opt_buf[0] = CI_PREDICTOR_1;
++ opt_buf[1] = CILEN_PREDICTOR_1;
++ if (ccp_test(f-&gt;unit, opt_buf, CILEN_PREDICTOR_1, 0) &lt;= 0)
++ go-&gt;predictor_1 = 0;
++ }
++ if (go-&gt;predictor_2) {
++ opt_buf[0] = CI_PREDICTOR_2;
++ opt_buf[1] = CILEN_PREDICTOR_2;
++ if (ccp_test(f-&gt;unit, opt_buf, CILEN_PREDICTOR_2, 0) &lt;= 0)
++ go-&gt;predictor_2 = 0;
++ }
++}
++
++/*
++ * ccp_cilen - Return total length of our configuration info.
++ */
++static int
++ccp_cilen(f)
++ fsm *f;
++{
++ ccp_options *go = &amp;ccp_gotoptions[f-&gt;unit];
++
++ return (go-&gt;bsd_compress? CILEN_BSD_COMPRESS: 0)
++ + (go-&gt;deflate? CILEN_DEFLATE: 0)
++ + (go-&gt;predictor_1? CILEN_PREDICTOR_1: 0)
++ + (go-&gt;predictor_2? CILEN_PREDICTOR_2: 0);
++}
++
++/*
++ * ccp_addci - put our requests in a packet.
++ */
++static void
++ccp_addci(f, p, lenp)
++ fsm *f;
++ u_char *p;
++ int *lenp;
++{
++ int res;
++ ccp_options *go = &amp;ccp_gotoptions[f-&gt;unit];
++ u_char *p0 = p;
++
++ /*
++ * Add the compression types that we can receive, in decreasing
++ * preference order. Get the kernel to allocate the first one
++ * in case it gets Acked.
++ */
++ if (go-&gt;deflate) {
++ p[0] = go-&gt;deflate_correct? CI_DEFLATE: CI_DEFLATE_DRAFT;
++ p[1] = CILEN_DEFLATE;
++ p[2] = DEFLATE_MAKE_OPT(go-&gt;deflate_size);
++ p[3] = DEFLATE_CHK_SEQUENCE;
++ for (;;) {
++ res = ccp_test(f-&gt;unit, p, CILEN_DEFLATE, 0);
++ if (res &gt; 0) {
++ p += CILEN_DEFLATE;
++ break;
++ }
++ if (res &lt; 0 || go-&gt;deflate_size &lt;= DEFLATE_MIN_WORKS) {
++ go-&gt;deflate = 0;
++ break;
++ }
++ --go-&gt;deflate_size;
++ p[2] = DEFLATE_MAKE_OPT(go-&gt;deflate_size);
++ }
++ if (p != p0 &amp;&amp; go-&gt;deflate_correct &amp;&amp; go-&gt;deflate_draft) {
++ p[0] = CI_DEFLATE_DRAFT;
++ p[1] = CILEN_DEFLATE;
++ p[2] = p[2 - CILEN_DEFLATE];
++ p[3] = DEFLATE_CHK_SEQUENCE;
++ p += CILEN_DEFLATE;
++ }
++ }
++ if (go-&gt;bsd_compress) {
++ p[0] = CI_BSD_COMPRESS;
++ p[1] = CILEN_BSD_COMPRESS;
++ p[2] = BSD_MAKE_OPT(BSD_CURRENT_VERSION, go-&gt;bsd_bits);
++ if (p != p0) {
++ p += CILEN_BSD_COMPRESS; /* not the first option */
++ } else {
++ for (;;) {
++ res = ccp_test(f-&gt;unit, p, CILEN_BSD_COMPRESS, 0);
++ if (res &gt; 0) {
++ p += CILEN_BSD_COMPRESS;
++ break;
++ }
++ if (res &lt; 0 || go-&gt;bsd_bits &lt;= BSD_MIN_BITS) {
++ go-&gt;bsd_compress = 0;
++ break;
++ }
++ --go-&gt;bsd_bits;
++ p[2] = BSD_MAKE_OPT(BSD_CURRENT_VERSION, go-&gt;bsd_bits);
++ }
++ }
++ }
++ /* XXX Should Predictor 2 be preferable to Predictor 1? */
++ if (go-&gt;predictor_1) {
++ p[0] = CI_PREDICTOR_1;
++ p[1] = CILEN_PREDICTOR_1;
++ if (p == p0 &amp;&amp; ccp_test(f-&gt;unit, p, CILEN_PREDICTOR_1, 0) &lt;= 0) {
++ go-&gt;predictor_1 = 0;
++ } else {
++ p += CILEN_PREDICTOR_1;
++ }
++ }
++ if (go-&gt;predictor_2) {
++ p[0] = CI_PREDICTOR_2;
++ p[1] = CILEN_PREDICTOR_2;
++ if (p == p0 &amp;&amp; ccp_test(f-&gt;unit, p, CILEN_PREDICTOR_2, 0) &lt;= 0) {
++ go-&gt;predictor_2 = 0;
++ } else {
++ p += CILEN_PREDICTOR_2;
++ }
++ }
++
++ go-&gt;method = (p &gt; p0)? p0[0]: -1;
++
++ *lenp = p - p0;
++}
++
++/*
++ * ccp_ackci - process a received configure-ack, and return
++ * 1 iff the packet was OK.
++ */
++static int
++ccp_ackci(f, p, len)
++ fsm *f;
++ u_char *p;
++ int len;
++{
++ ccp_options *go = &amp;ccp_gotoptions[f-&gt;unit];
++ u_char *p0 = p;
++
++ if (go-&gt;deflate) {
++ if (len &lt; CILEN_DEFLATE
++ || p[0] != (go-&gt;deflate_correct? CI_DEFLATE: CI_DEFLATE_DRAFT)
++ || p[1] != CILEN_DEFLATE
++ || p[2] != DEFLATE_MAKE_OPT(go-&gt;deflate_size)
++ || p[3] != DEFLATE_CHK_SEQUENCE)
++ return 0;
++ p += CILEN_DEFLATE;
++ len -= CILEN_DEFLATE;
++ /* XXX Cope with first/fast ack */
++ if (len == 0)
++ return 1;
++ if (go-&gt;deflate_correct &amp;&amp; go-&gt;deflate_draft) {
++ if (len &lt; CILEN_DEFLATE
++ || p[0] != CI_DEFLATE_DRAFT
++ || p[1] != CILEN_DEFLATE
++ || p[2] != DEFLATE_MAKE_OPT(go-&gt;deflate_size)
++ || p[3] != DEFLATE_CHK_SEQUENCE)
++ return 0;
++ p += CILEN_DEFLATE;
++ len -= CILEN_DEFLATE;
++ }
++ }
++ if (go-&gt;bsd_compress) {
++ if (len &lt; CILEN_BSD_COMPRESS
++ || p[0] != CI_BSD_COMPRESS || p[1] != CILEN_BSD_COMPRESS
++ || p[2] != BSD_MAKE_OPT(BSD_CURRENT_VERSION, go-&gt;bsd_bits))
++ return 0;
++ p += CILEN_BSD_COMPRESS;
++ len -= CILEN_BSD_COMPRESS;
++ /* XXX Cope with first/fast ack */
++ if (p == p0 &amp;&amp; len == 0)
++ return 1;
++ }
++ if (go-&gt;predictor_1) {
++ if (len &lt; CILEN_PREDICTOR_1
++ || p[0] != CI_PREDICTOR_1 || p[1] != CILEN_PREDICTOR_1)
++ return 0;
++ p += CILEN_PREDICTOR_1;
++ len -= CILEN_PREDICTOR_1;
++ /* XXX Cope with first/fast ack */
++ if (p == p0 &amp;&amp; len == 0)
++ return 1;
++ }
++ if (go-&gt;predictor_2) {
++ if (len &lt; CILEN_PREDICTOR_2
++ || p[0] != CI_PREDICTOR_2 || p[1] != CILEN_PREDICTOR_2)
++ return 0;
++ p += CILEN_PREDICTOR_2;
++ len -= CILEN_PREDICTOR_2;
++ /* XXX Cope with first/fast ack */
++ if (p == p0 &amp;&amp; len == 0)
++ return 1;
++ }
++
++ if (len != 0)
++ return 0;
++ return 1;
++}
++
++/*
++ * ccp_nakci - process received configure-nak.
++ * Returns 1 iff the nak was OK.
++ */
++static int
++ccp_nakci(f, p, len)
++ fsm *f;
++ u_char *p;
++ int len;
++{
++ ccp_options *go = &amp;ccp_gotoptions[f-&gt;unit];
++ ccp_options no; /* options we've seen already */
++ ccp_options try; /* options to ask for next time */
++
++ memset(&amp;no, 0, sizeof(no));
++ try = *go;
++
++ if (go-&gt;deflate &amp;&amp; len &gt;= CILEN_DEFLATE
++ &amp;&amp; p[0] == (go-&gt;deflate_correct? CI_DEFLATE: CI_DEFLATE_DRAFT)
++ &amp;&amp; p[1] == CILEN_DEFLATE) {
++ no.deflate = 1;
++ /*
++ * Peer wants us to use a different code size or something.
++ * Stop asking for Deflate if we don't understand his suggestion.
++ */
++ if (DEFLATE_METHOD(p[2]) != DEFLATE_METHOD_VAL
++ || DEFLATE_SIZE(p[2]) &lt; DEFLATE_MIN_WORKS
++ || p[3] != DEFLATE_CHK_SEQUENCE)
++ try.deflate = 0;
++ else if (DEFLATE_SIZE(p[2]) &lt; go-&gt;deflate_size)
++ try.deflate_size = DEFLATE_SIZE(p[2]);
++ p += CILEN_DEFLATE;
++ len -= CILEN_DEFLATE;
++ if (go-&gt;deflate_correct &amp;&amp; go-&gt;deflate_draft
++ &amp;&amp; len &gt;= CILEN_DEFLATE &amp;&amp; p[0] == CI_DEFLATE_DRAFT
++ &amp;&amp; p[1] == CILEN_DEFLATE) {
++ p += CILEN_DEFLATE;
++ len -= CILEN_DEFLATE;
++ }
++ }
++
++ if (go-&gt;bsd_compress &amp;&amp; len &gt;= CILEN_BSD_COMPRESS
++ &amp;&amp; p[0] == CI_BSD_COMPRESS &amp;&amp; p[1] == CILEN_BSD_COMPRESS) {
++ no.bsd_compress = 1;
++ /*
++ * Peer wants us to use a different number of bits
++ * or a different version.
++ */
++ if (BSD_VERSION(p[2]) != BSD_CURRENT_VERSION)
++ try.bsd_compress = 0;
++ else if (BSD_NBITS(p[2]) &lt; go-&gt;bsd_bits)
++ try.bsd_bits = BSD_NBITS(p[2]);
++ p += CILEN_BSD_COMPRESS;
++ len -= CILEN_BSD_COMPRESS;
++ }
++
++ /*
++ * Predictor-1 and 2 have no options, so they can't be Naked.
++ *
++ * There may be remaining options but we ignore them.
++ */
++
++ if (f-&gt;state != OPENED)
++ *go = try;
++ return 1;
++}
++
++/*
++ * ccp_rejci - reject some of our suggested compression methods.
++ */
++static int
++ccp_rejci(f, p, len)
++ fsm *f;
++ u_char *p;
++ int len;
++{
++ ccp_options *go = &amp;ccp_gotoptions[f-&gt;unit];
++ ccp_options try; /* options to request next time */
++
++ try = *go;
++
++ /*
++ * Cope with empty configure-rejects by ceasing to send
++ * configure-requests.
++ */
++ if (len == 0 &amp;&amp; all_rejected[f-&gt;unit])
++ return -1;
++
++ if (go-&gt;deflate &amp;&amp; len &gt;= CILEN_DEFLATE
++ &amp;&amp; p[0] == (go-&gt;deflate_correct? CI_DEFLATE: CI_DEFLATE_DRAFT)
++ &amp;&amp; p[1] == CILEN_DEFLATE) {
++ if (p[2] != DEFLATE_MAKE_OPT(go-&gt;deflate_size)
++ || p[3] != DEFLATE_CHK_SEQUENCE)
++ return 0; /* Rej is bad */
++ if (go-&gt;deflate_correct)
++ try.deflate_correct = 0;
++ else
++ try.deflate_draft = 0;
++ p += CILEN_DEFLATE;
++ len -= CILEN_DEFLATE;
++ if (go-&gt;deflate_correct &amp;&amp; go-&gt;deflate_draft
++ &amp;&amp; len &gt;= CILEN_DEFLATE &amp;&amp; p[0] == CI_DEFLATE_DRAFT
++ &amp;&amp; p[1] == CILEN_DEFLATE) {
++ if (p[2] != DEFLATE_MAKE_OPT(go-&gt;deflate_size)
++ || p[3] != DEFLATE_CHK_SEQUENCE)
++ return 0; /* Rej is bad */
++ try.deflate_draft = 0;
++ p += CILEN_DEFLATE;
++ len -= CILEN_DEFLATE;
++ }
++ if (!try.deflate_correct &amp;&amp; !try.deflate_draft)
++ try.deflate = 0;
++ }
++ if (go-&gt;bsd_compress &amp;&amp; len &gt;= CILEN_BSD_COMPRESS
++ &amp;&amp; p[0] == CI_BSD_COMPRESS &amp;&amp; p[1] == CILEN_BSD_COMPRESS) {
++ if (p[2] != BSD_MAKE_OPT(BSD_CURRENT_VERSION, go-&gt;bsd_bits))
++ return 0;
++ try.bsd_compress = 0;
++ p += CILEN_BSD_COMPRESS;
++ len -= CILEN_BSD_COMPRESS;
++ }
++ if (go-&gt;predictor_1 &amp;&amp; len &gt;= CILEN_PREDICTOR_1
++ &amp;&amp; p[0] == CI_PREDICTOR_1 &amp;&amp; p[1] == CILEN_PREDICTOR_1) {
++ try.predictor_1 = 0;
++ p += CILEN_PREDICTOR_1;
++ len -= CILEN_PREDICTOR_1;
++ }
++ if (go-&gt;predictor_2 &amp;&amp; len &gt;= CILEN_PREDICTOR_2
++ &amp;&amp; p[0] == CI_PREDICTOR_2 &amp;&amp; p[1] == CILEN_PREDICTOR_2) {
++ try.predictor_2 = 0;
++ p += CILEN_PREDICTOR_2;
++ len -= CILEN_PREDICTOR_2;
++ }
++
++ if (len != 0)
++ return 0;
++
++ if (f-&gt;state != OPENED)
++ *go = try;
++
++ return 1;
++}
++
++/*
++ * ccp_reqci - processed a received configure-request.
++ * Returns CONFACK, CONFNAK or CONFREJ and the packet modified
++ * appropriately.
++ */
++static int
++ccp_reqci(f, p, lenp, dont_nak)
++ fsm *f;
++ u_char *p;
++ int *lenp;
++ int dont_nak;
++{
++ int ret, newret, res;
++ u_char *p0, *retp;
++ int len, clen, type, nb;
++ ccp_options *ho = &amp;ccp_hisoptions[f-&gt;unit];
++ ccp_options *ao = &amp;ccp_allowoptions[f-&gt;unit];
++
++ ret = CONFACK;
++ retp = p0 = p;
++ len = *lenp;
++
++ memset(ho, 0, sizeof(ccp_options));
++ ho-&gt;method = (len &gt; 0)? p[0]: -1;
++
++ while (len &gt; 0) {
++ newret = CONFACK;
++ if (len &lt; 2 || p[1] &lt; 2 || p[1] &gt; len) {
++ /* length is bad */
++ clen = len;
++ newret = CONFREJ;
++
++ } else {
++ type = p[0];
++ clen = p[1];
++
++ switch (type) {
++ case CI_DEFLATE:
++ case CI_DEFLATE_DRAFT:
++ if (!ao-&gt;deflate || clen != CILEN_DEFLATE
++ || (!ao-&gt;deflate_correct &amp;&amp; type == CI_DEFLATE)
++ || (!ao-&gt;deflate_draft &amp;&amp; type == CI_DEFLATE_DRAFT)) {
++ newret = CONFREJ;
++ break;
++ }
++
++ ho-&gt;deflate = 1;
++ ho-&gt;deflate_size = nb = DEFLATE_SIZE(p[2]);
++ if (DEFLATE_METHOD(p[2]) != DEFLATE_METHOD_VAL
++ || p[3] != DEFLATE_CHK_SEQUENCE
++ || nb &gt; ao-&gt;deflate_size || nb &lt; DEFLATE_MIN_WORKS) {
++ newret = CONFNAK;
++ if (!dont_nak) {
++ p[2] = DEFLATE_MAKE_OPT(ao-&gt;deflate_size);
++ p[3] = DEFLATE_CHK_SEQUENCE;
++ /* fall through to test this #bits below */
++ } else
++ break;
++ }
++
++ /*
++ * Check whether we can do Deflate with the window
++ * size they want. If the window is too big, reduce
++ * it until the kernel can cope and nak with that.
++ * We only check this for the first option.
++ */
++ if (p == p0) {
++ for (;;) {
++ res = ccp_test(f-&gt;unit, p, CILEN_DEFLATE, 1);
++ if (res &gt; 0)
++ break; /* it's OK now */
++ if (res &lt; 0 || nb == DEFLATE_MIN_WORKS || dont_nak) {
++ newret = CONFREJ;
++ p[2] = DEFLATE_MAKE_OPT(ho-&gt;deflate_size);
++ break;
++ }
++ newret = CONFNAK;
++ --nb;
++ p[2] = DEFLATE_MAKE_OPT(nb);
++ }
++ }
++ break;
++
++ case CI_BSD_COMPRESS:
++ if (!ao-&gt;bsd_compress || clen != CILEN_BSD_COMPRESS) {
++ newret = CONFREJ;
++ break;
++ }
++
++ ho-&gt;bsd_compress = 1;
++ ho-&gt;bsd_bits = nb = BSD_NBITS(p[2]);
++ if (BSD_VERSION(p[2]) != BSD_CURRENT_VERSION
++ || nb &gt; ao-&gt;bsd_bits || nb &lt; BSD_MIN_BITS) {
++ newret = CONFNAK;
++ if (!dont_nak) {
++ p[2] = BSD_MAKE_OPT(BSD_CURRENT_VERSION, ao-&gt;bsd_bits);
++ /* fall through to test this #bits below */
++ } else
++ break;
++ }
++
++ /*
++ * Check whether we can do BSD-Compress with the code
++ * size they want. If the code size is too big, reduce
++ * it until the kernel can cope and nak with that.
++ * We only check this for the first option.
++ */
++ if (p == p0) {
++ for (;;) {
++ res = ccp_test(f-&gt;unit, p, CILEN_BSD_COMPRESS, 1);
++ if (res &gt; 0)
++ break;
++ if (res &lt; 0 || nb == BSD_MIN_BITS || dont_nak) {
++ newret = CONFREJ;
++ p[2] = BSD_MAKE_OPT(BSD_CURRENT_VERSION,
++ ho-&gt;bsd_bits);
++ break;
++ }
++ newret = CONFNAK;
++ --nb;
++ p[2] = BSD_MAKE_OPT(BSD_CURRENT_VERSION, nb);
++ }
++ }
++ break;
++
++ case CI_PREDICTOR_1:
++ if (!ao-&gt;predictor_1 || clen != CILEN_PREDICTOR_1) {
++ newret = CONFREJ;
++ break;
++ }
++
++ ho-&gt;predictor_1 = 1;
++ if (p == p0
++ &amp;&amp; ccp_test(f-&gt;unit, p, CILEN_PREDICTOR_1, 1) &lt;= 0) {
++ newret = CONFREJ;
++ }
++ break;
++
++ case CI_PREDICTOR_2:
++ if (!ao-&gt;predictor_2 || clen != CILEN_PREDICTOR_2) {
++ newret = CONFREJ;
++ break;
++ }
++
++ ho-&gt;predictor_2 = 1;
++ if (p == p0
++ &amp;&amp; ccp_test(f-&gt;unit, p, CILEN_PREDICTOR_2, 1) &lt;= 0) {
++ newret = CONFREJ;
++ }
++ break;
++
++ default:
++ newret = CONFREJ;
++ }
++ }
++
++ if (newret == CONFNAK &amp;&amp; dont_nak)
++ newret = CONFREJ;
++ if (!(newret == CONFACK || (newret == CONFNAK &amp;&amp; ret == CONFREJ))) {
++ /* we're returning this option */
++ if (newret == CONFREJ &amp;&amp; ret == CONFNAK)
++ retp = p0;
++ ret = newret;
++ if (p != retp)
++ BCOPY(p, retp, clen);
++ retp += clen;
++ }
++
++ p += clen;
++ len -= clen;
++ }
++
++ if (ret != CONFACK) {
++ if (ret == CONFREJ &amp;&amp; *lenp == retp - p0)
++ all_rejected[f-&gt;unit] = 1;
++ else
++ *lenp = retp - p0;
++ }
++ return ret;
++}
++
++/*
++ * Make a string name for a compression method (or 2).
++ */
++static char *
++method_name(opt, opt2)
++ ccp_options *opt, *opt2;
++{
++ static char result[64];
++
++ if (!ANY_COMPRESS(*opt))
++ return &quot;(none)&quot;;
++ switch (opt-&gt;method) {
++ case CI_DEFLATE:
++ case CI_DEFLATE_DRAFT:
++ if (opt2 != NULL &amp;&amp; opt2-&gt;deflate_size != opt-&gt;deflate_size)
++ slprintf(result, sizeof(result), &quot;Deflate%s (%d/%d)&quot;,
++ (opt-&gt;method == CI_DEFLATE_DRAFT? &quot;(old#)&quot;: &quot;&quot;),
++ opt-&gt;deflate_size, opt2-&gt;deflate_size);
++ else
++ slprintf(result, sizeof(result), &quot;Deflate%s (%d)&quot;,
++ (opt-&gt;method == CI_DEFLATE_DRAFT? &quot;(old#)&quot;: &quot;&quot;),
++ opt-&gt;deflate_size);
++ break;
++ case CI_BSD_COMPRESS:
++ if (opt2 != NULL &amp;&amp; opt2-&gt;bsd_bits != opt-&gt;bsd_bits)
++ slprintf(result, sizeof(result), &quot;BSD-Compress (%d/%d)&quot;,
++ opt-&gt;bsd_bits, opt2-&gt;bsd_bits);
++ else
++ slprintf(result, sizeof(result), &quot;BSD-Compress (%d)&quot;,
++ opt-&gt;bsd_bits);
++ break;
++ case CI_PREDICTOR_1:
++ return &quot;Predictor 1&quot;;
++ case CI_PREDICTOR_2:
++ return &quot;Predictor 2&quot;;
++ default:
++ slprintf(result, sizeof(result), &quot;Method %d&quot;, opt-&gt;method);
++ }
++ return result;
++}
++
++/*
++ * CCP has come up - inform the kernel driver and log a message.
++ */
++static void
++ccp_up(f)
++ fsm *f;
++{
++ ccp_options *go = &amp;ccp_gotoptions[f-&gt;unit];
++ ccp_options *ho = &amp;ccp_hisoptions[f-&gt;unit];
++ char method1[64];
++
++ ccp_flags_set(f-&gt;unit, 1, 1);
++ if (ANY_COMPRESS(*go)) {
++ if (ANY_COMPRESS(*ho)) {
++ if (go-&gt;method == ho-&gt;method) {
++ notice(&quot;%s compression enabled&quot;, method_name(go, ho));
++ } else {
++ strlcpy(method1, method_name(go, NULL), sizeof(method1));
++ notice(&quot;%s / %s compression enabled&quot;,
++ method1, method_name(ho, NULL));
++ }
++ } else
++ notice(&quot;%s receive compression enabled&quot;, method_name(go, NULL));
++ } else if (ANY_COMPRESS(*ho))
++ notice(&quot;%s transmit compression enabled&quot;, method_name(ho, NULL));
++}
++
++/*
++ * CCP has gone down - inform the kernel driver.
++ */
++static void
++ccp_down(f)
++ fsm *f;
++{
++ if (ccp_localstate[f-&gt;unit] &amp; RACK_PENDING)
++ UNTIMEOUT(ccp_rack_timeout, f);
++ ccp_localstate[f-&gt;unit] = 0;
++ ccp_flags_set(f-&gt;unit, 1, 0);
++}
++
++/*
++ * Print the contents of a CCP packet.
++ */
++static char *ccp_codenames[] = {
++ &quot;ConfReq&quot;, &quot;ConfAck&quot;, &quot;ConfNak&quot;, &quot;ConfRej&quot;,
++ &quot;TermReq&quot;, &quot;TermAck&quot;, &quot;CodeRej&quot;,
++ NULL, NULL, NULL, NULL, NULL, NULL,
++ &quot;ResetReq&quot;, &quot;ResetAck&quot;,
++};
++
++static int
++ccp_printpkt(p, plen, printer, arg)
++ u_char *p;
++ int plen;
++ void (*printer) __P((void *, char *, ...));
++ void *arg;
++{
++ u_char *p0, *optend;
++ int code, id, len;
++ int optlen;
++
++ p0 = p;
++ if (plen &lt; HEADERLEN)
++ return 0;
++ code = p[0];
++ id = p[1];
++ len = (p[2] &lt;&lt; 8) + p[3];
++ if (len &lt; HEADERLEN || len &gt; plen)
++ return 0;
++
++ if (code &gt;= 1 &amp;&amp; code &lt;= sizeof(ccp_codenames) / sizeof(char *)
++ &amp;&amp; ccp_codenames[code-1] != NULL)
++ printer(arg, &quot; %s&quot;, ccp_codenames[code-1]);
++ else
++ printer(arg, &quot; code=0x%x&quot;, code);
++ printer(arg, &quot; id=0x%x&quot;, id);
++ len -= HEADERLEN;
++ p += HEADERLEN;
++
++ switch (code) {
++ case CONFREQ:
++ case CONFACK:
++ case CONFNAK:
++ case CONFREJ:
++ /* print list of possible compression methods */
++ while (len &gt;= 2) {
++ code = p[0];
++ optlen = p[1];
++ if (optlen &lt; 2 || optlen &gt; len)
++ break;
++ printer(arg, &quot; &lt;&quot;);
++ len -= optlen;
++ optend = p + optlen;
++ switch (code) {
++ case CI_DEFLATE:
++ case CI_DEFLATE_DRAFT:
++ if (optlen &gt;= CILEN_DEFLATE) {
++ printer(arg, &quot;deflate%s %d&quot;,
++ (code == CI_DEFLATE_DRAFT? &quot;(old#)&quot;: &quot;&quot;),
++ DEFLATE_SIZE(p[2]));
++ if (DEFLATE_METHOD(p[2]) != DEFLATE_METHOD_VAL)
++ printer(arg, &quot; method %d&quot;, DEFLATE_METHOD(p[2]));
++ if (p[3] != DEFLATE_CHK_SEQUENCE)
++ printer(arg, &quot; check %d&quot;, p[3]);
++ p += CILEN_DEFLATE;
++ }
++ break;
++ case CI_BSD_COMPRESS:
++ if (optlen &gt;= CILEN_BSD_COMPRESS) {
++ printer(arg, &quot;bsd v%d %d&quot;, BSD_VERSION(p[2]),
++ BSD_NBITS(p[2]));
++ p += CILEN_BSD_COMPRESS;
++ }
++ break;
++ case CI_PREDICTOR_1:
++ if (optlen &gt;= CILEN_PREDICTOR_1) {
++ printer(arg, &quot;predictor 1&quot;);
++ p += CILEN_PREDICTOR_1;
++ }
++ break;
++ case CI_PREDICTOR_2:
++ if (optlen &gt;= CILEN_PREDICTOR_2) {
++ printer(arg, &quot;predictor 2&quot;);
++ p += CILEN_PREDICTOR_2;
++ }
++ break;
++ }
++ while (p &lt; optend)
++ printer(arg, &quot; %.2x&quot;, *p++);
++ printer(arg, &quot;&gt;&quot;);
++ }
++ break;
++
++ case TERMACK:
++ case TERMREQ:
++ if (len &gt; 0 &amp;&amp; *p &gt;= ' ' &amp;&amp; *p &lt; 0x7f) {
++ print_string((char *)p, len, printer, arg);
++ p += len;
++ len = 0;
++ }
++ break;
++ }
++
++ /* dump out the rest of the packet in hex */
++ while (--len &gt;= 0)
++ printer(arg, &quot; %.2x&quot;, *p++);
++
++ return p - p0;
++}
++
++/*
++ * We have received a packet that the decompressor failed to
++ * decompress. Here we would expect to issue a reset-request, but
++ * Motorola has a patent on resetting the compressor as a result of
++ * detecting an error in the decompressed data after decompression.
++ * (See US patent 5,130,993; international patent publication number
++ * WO 91/10289; Australian patent 73296/91.)
++ *
++ * So we ask the kernel whether the error was detected after
++ * decompression; if it was, we take CCP down, thus disabling
++ * compression :-(, otherwise we issue the reset-request.
++ */
++static void
++ccp_datainput(unit, pkt, len)
++ int unit;
++ u_char *pkt;
++ int len;
++{
++ fsm *f;
++
++ f = &amp;ccp_fsm[unit];
++ if (f-&gt;state == OPENED) {
++ if (ccp_fatal_error(unit)) {
++ /*
++ * Disable compression by taking CCP down.
++ */
++ error(&quot;Lost compression sync: disabling compression&quot;);
++ ccp_close(unit, &quot;Lost compression sync&quot;);
++ } else {
++ /*
++ * Send a reset-request to reset the peer's compressor.
++ * We don't do that if we are still waiting for an
++ * acknowledgement to a previous reset-request.
++ */
++ if (!(ccp_localstate[f-&gt;unit] &amp; RACK_PENDING)) {
++ fsm_sdata(f, CCP_RESETREQ, f-&gt;reqid = ++f-&gt;id, NULL, 0);
++ TIMEOUT(ccp_rack_timeout, f, RACKTIMEOUT);
++ ccp_localstate[f-&gt;unit] |= RACK_PENDING;
++ } else
++ ccp_localstate[f-&gt;unit] |= RREQ_REPEAT;
++ }
++ }
++}
++
++/*
++ * Timeout waiting for reset-ack.
++ */
++static void
++ccp_rack_timeout(arg)
++ void *arg;
++{
++ fsm *f = arg;
++
++ if (f-&gt;state == OPENED &amp;&amp; ccp_localstate[f-&gt;unit] &amp; RREQ_REPEAT) {
++ fsm_sdata(f, CCP_RESETREQ, f-&gt;reqid, NULL, 0);
++ TIMEOUT(ccp_rack_timeout, f, RACKTIMEOUT);
++ ccp_localstate[f-&gt;unit] &amp;= ~RREQ_REPEAT;
++ } else
++ ccp_localstate[f-&gt;unit] &amp;= ~RACK_PENDING;
++}
++
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/pppd/ccp.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1ppppppdccph">Added: drakx/trunk/mdk-stage1/ppp/pppd/ccp.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/ccp.h (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/ccp.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,48 @@
++/*
++ * ccp.h - Definitions for PPP Compression Control Protocol.
++ *
++ * Copyright (c) 1994 The Australian National University.
++ * All rights reserved.
++ *
++ * Permission to use, copy, modify, and distribute this software and its
++ * documentation is hereby granted, provided that the above copyright
++ * notice appears in all copies. This software is provided without any
++ * warranty, express or implied. The Australian National University
++ * makes no representations about the suitability of this software for
++ * any purpose.
++ *
++ * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY
++ * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
++ * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
++ * THE AUSTRALIAN NATIONAL UNIVERSITY HAVE BEEN ADVISED OF THE POSSIBILITY
++ * OF SUCH DAMAGE.
++ *
++ * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
++ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
++ * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
++ * ON AN &quot;AS IS&quot; BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO
++ * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
++ * OR MODIFICATIONS.
++ *
++ * $Id: ccp.h 195720 2001-06-11 11:44:34Z gc $
++ */
++
++typedef struct ccp_options {
++ bool bsd_compress; /* do BSD Compress? */
++ bool deflate; /* do Deflate? */
++ bool predictor_1; /* do Predictor-1? */
++ bool predictor_2; /* do Predictor-2? */
++ bool deflate_correct; /* use correct code for deflate? */
++ bool deflate_draft; /* use draft RFC code for deflate? */
++ u_short bsd_bits; /* # bits/code for BSD Compress */
++ u_short deflate_size; /* lg(window size) for Deflate */
++ short method; /* code for chosen compression method */
++} ccp_options;
++
++extern fsm ccp_fsm[];
++extern ccp_options ccp_wantoptions[];
++extern ccp_options ccp_gotoptions[];
++extern ccp_options ccp_allowoptions[];
++extern ccp_options ccp_hisoptions[];
++
++extern struct protent ccp_protent;
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/pppd/ccp.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1ppppppdchapc">Added: drakx/trunk/mdk-stage1/ppp/pppd/chap.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/chap.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/chap.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,860 @@
++/*
++ * chap.c - Challenge Handshake Authentication Protocol.
++ *
++ * Copyright (c) 1993 The Australian National University.
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms are permitted
++ * provided that the above copyright notice and this paragraph are
++ * duplicated in all such forms and that any documentation,
++ * advertising materials, and other materials related to such
++ * distribution and use acknowledge that the software was developed
++ * by the Australian National University. The name of the University
++ * may not be used to endorse or promote products derived from this
++ * software without specific prior written permission.
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
++ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
++ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++ *
++ * Copyright (c) 1991 Gregory M. Christy.
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms are permitted
++ * provided that the above copyright notice and this paragraph are
++ * duplicated in all such forms and that any documentation,
++ * advertising materials, and other materials related to such
++ * distribution and use acknowledge that the software was developed
++ * by Gregory M. Christy. The name of the author may not be used to
++ * endorse or promote products derived from this software without
++ * specific prior written permission.
++ *
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
++ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
++ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++ */
++
++#define RCSID &quot;$Id: chap.c 195720 2001-06-11 11:44:34Z gc $&quot;
++
++/*
++ * TODO:
++ */
++
++#include &lt;stdio.h&gt;
++#include &lt;string.h&gt;
++#include &lt;sys/types.h&gt;
++#include &lt;sys/time.h&gt;
++
++#include &quot;pppd.h&quot;
++#include &quot;chap.h&quot;
++#include &quot;md5.h&quot;
++#ifdef CHAPMS
++#include &quot;chap_ms.h&quot;
++#endif
++
++static const char rcsid[] = RCSID;
++
++/*
++ * Command-line options.
++ */
++static option_t chap_option_list[] = {
++ { &quot;chap-restart&quot;, o_int, &amp;chap[0].timeouttime,
++ &quot;Set timeout for CHAP&quot;, OPT_PRIO },
++ { &quot;chap-max-challenge&quot;, o_int, &amp;chap[0].max_transmits,
++ &quot;Set max #xmits for challenge&quot;, OPT_PRIO },
++ { &quot;chap-interval&quot;, o_int, &amp;chap[0].chal_interval,
++ &quot;Set interval for rechallenge&quot;, OPT_PRIO },
++#ifdef MSLANMAN
++ { &quot;ms-lanman&quot;, o_bool, &amp;ms_lanman,
++ &quot;Use LanMan passwd when using MS-CHAP&quot;, 1 },
++#endif
++ { NULL }
++};
++
++/*
++ * Protocol entry points.
++ */
++static void ChapInit __P((int));
++static void ChapLowerUp __P((int));
++static void ChapLowerDown __P((int));
++static void ChapInput __P((int, u_char *, int));
++static void ChapProtocolReject __P((int));
++static int ChapPrintPkt __P((u_char *, int,
++ void (*) __P((void *, char *, ...)), void *));
++
++struct protent chap_protent = {
++ PPP_CHAP,
++ ChapInit,
++ ChapInput,
++ ChapProtocolReject,
++ ChapLowerUp,
++ ChapLowerDown,
++ NULL,
++ NULL,
++ ChapPrintPkt,
++ NULL,
++ 1,
++ &quot;CHAP&quot;,
++ NULL,
++ chap_option_list,
++ NULL,
++ NULL,
++ NULL
++};
++
++chap_state chap[NUM_PPP]; /* CHAP state; one for each unit */
++
++static void ChapChallengeTimeout __P((void *));
++static void ChapResponseTimeout __P((void *));
++static void ChapReceiveChallenge __P((chap_state *, u_char *, int, int));
++static void ChapRechallenge __P((void *));
++static void ChapReceiveResponse __P((chap_state *, u_char *, int, int));
++static void ChapReceiveSuccess __P((chap_state *, u_char *, int, int));
++static void ChapReceiveFailure __P((chap_state *, u_char *, int, int));
++static void ChapSendStatus __P((chap_state *, int));
++static void ChapSendChallenge __P((chap_state *));
++static void ChapSendResponse __P((chap_state *));
++static void ChapGenChallenge __P((chap_state *));
++
++extern double drand48 __P((void));
++extern void srand48 __P((long));
++
++/*
++ * ChapInit - Initialize a CHAP unit.
++ */
++static void
++ChapInit(unit)
++ int unit;
++{
++ chap_state *cstate = &amp;chap[unit];
++
++ BZERO(cstate, sizeof(*cstate));
++ cstate-&gt;unit = unit;
++ cstate-&gt;clientstate = CHAPCS_INITIAL;
++ cstate-&gt;serverstate = CHAPSS_INITIAL;
++ cstate-&gt;timeouttime = CHAP_DEFTIMEOUT;
++ cstate-&gt;max_transmits = CHAP_DEFTRANSMITS;
++ /* random number generator is initialized in magic_init */
++}
++
++
++/*
++ * ChapAuthWithPeer - Authenticate us with our peer (start client).
++ *
++ */
++void
++ChapAuthWithPeer(unit, our_name, digest)
++ int unit;
++ char *our_name;
++ int digest;
++{
++ chap_state *cstate = &amp;chap[unit];
++
++ cstate-&gt;resp_name = our_name;
++ cstate-&gt;resp_type = digest;
++
++ if (cstate-&gt;clientstate == CHAPCS_INITIAL ||
++ cstate-&gt;clientstate == CHAPCS_PENDING) {
++ /* lower layer isn't up - wait until later */
++ cstate-&gt;clientstate = CHAPCS_PENDING;
++ return;
++ }
++
++ /*
++ * We get here as a result of LCP coming up.
++ * So even if CHAP was open before, we will
++ * have to re-authenticate ourselves.
++ */
++ cstate-&gt;clientstate = CHAPCS_LISTEN;
++}
++
++
++/*
++ * ChapAuthPeer - Authenticate our peer (start server).
++ */
++void
++ChapAuthPeer(unit, our_name, digest)
++ int unit;
++ char *our_name;
++ int digest;
++{
++ chap_state *cstate = &amp;chap[unit];
++
++ cstate-&gt;chal_name = our_name;
++ cstate-&gt;chal_type = digest;
++
++ if (cstate-&gt;serverstate == CHAPSS_INITIAL ||
++ cstate-&gt;serverstate == CHAPSS_PENDING) {
++ /* lower layer isn't up - wait until later */
++ cstate-&gt;serverstate = CHAPSS_PENDING;
++ return;
++ }
++
++ ChapGenChallenge(cstate);
++ ChapSendChallenge(cstate); /* crank it up dude! */
++ cstate-&gt;serverstate = CHAPSS_INITIAL_CHAL;
++}
++
++
++/*
++ * ChapChallengeTimeout - Timeout expired on sending challenge.
++ */
++static void
++ChapChallengeTimeout(arg)
++ void *arg;
++{
++ chap_state *cstate = (chap_state *) arg;
++
++ /* if we aren't sending challenges, don't worry. then again we */
++ /* probably shouldn't be here either */
++ if (cstate-&gt;serverstate != CHAPSS_INITIAL_CHAL &amp;&amp;
++ cstate-&gt;serverstate != CHAPSS_RECHALLENGE)
++ return;
++
++ if (cstate-&gt;chal_transmits &gt;= cstate-&gt;max_transmits) {
++ /* give up on peer */
++ error(&quot;Peer failed to respond to CHAP challenge&quot;);
++ cstate-&gt;serverstate = CHAPSS_BADAUTH;
++ auth_peer_fail(cstate-&gt;unit, PPP_CHAP);
++ return;
++ }
++
++ ChapSendChallenge(cstate); /* Re-send challenge */
++}
++
++
++/*
++ * ChapResponseTimeout - Timeout expired on sending response.
++ */
++static void
++ChapResponseTimeout(arg)
++ void *arg;
++{
++ chap_state *cstate = (chap_state *) arg;
++
++ /* if we aren't sending a response, don't worry. */
++ if (cstate-&gt;clientstate != CHAPCS_RESPONSE)
++ return;
++
++ ChapSendResponse(cstate); /* re-send response */
++}
++
++
++/*
++ * ChapRechallenge - Time to challenge the peer again.
++ */
++static void
++ChapRechallenge(arg)
++ void *arg;
++{
++ chap_state *cstate = (chap_state *) arg;
++
++ /* if we aren't sending a response, don't worry. */
++ if (cstate-&gt;serverstate != CHAPSS_OPEN)
++ return;
++
++ ChapGenChallenge(cstate);
++ ChapSendChallenge(cstate);
++ cstate-&gt;serverstate = CHAPSS_RECHALLENGE;
++}
++
++
++/*
++ * ChapLowerUp - The lower layer is up.
++ *
++ * Start up if we have pending requests.
++ */
++static void
++ChapLowerUp(unit)
++ int unit;
++{
++ chap_state *cstate = &amp;chap[unit];
++
++ if (cstate-&gt;clientstate == CHAPCS_INITIAL)
++ cstate-&gt;clientstate = CHAPCS_CLOSED;
++ else if (cstate-&gt;clientstate == CHAPCS_PENDING)
++ cstate-&gt;clientstate = CHAPCS_LISTEN;
++
++ if (cstate-&gt;serverstate == CHAPSS_INITIAL)
++ cstate-&gt;serverstate = CHAPSS_CLOSED;
++ else if (cstate-&gt;serverstate == CHAPSS_PENDING) {
++ ChapGenChallenge(cstate);
++ ChapSendChallenge(cstate);
++ cstate-&gt;serverstate = CHAPSS_INITIAL_CHAL;
++ }
++}
++
++
++/*
++ * ChapLowerDown - The lower layer is down.
++ *
++ * Cancel all timeouts.
++ */
++static void
++ChapLowerDown(unit)
++ int unit;
++{
++ chap_state *cstate = &amp;chap[unit];
++
++ /* Timeout(s) pending? Cancel if so. */
++ if (cstate-&gt;serverstate == CHAPSS_INITIAL_CHAL ||
++ cstate-&gt;serverstate == CHAPSS_RECHALLENGE)
++ UNTIMEOUT(ChapChallengeTimeout, cstate);
++ else if (cstate-&gt;serverstate == CHAPSS_OPEN
++ &amp;&amp; cstate-&gt;chal_interval != 0)
++ UNTIMEOUT(ChapRechallenge, cstate);
++ if (cstate-&gt;clientstate == CHAPCS_RESPONSE)
++ UNTIMEOUT(ChapResponseTimeout, cstate);
++
++ cstate-&gt;clientstate = CHAPCS_INITIAL;
++ cstate-&gt;serverstate = CHAPSS_INITIAL;
++}
++
++
++/*
++ * ChapProtocolReject - Peer doesn't grok CHAP.
++ */
++static void
++ChapProtocolReject(unit)
++ int unit;
++{
++ chap_state *cstate = &amp;chap[unit];
++
++ if (cstate-&gt;serverstate != CHAPSS_INITIAL &amp;&amp;
++ cstate-&gt;serverstate != CHAPSS_CLOSED)
++ auth_peer_fail(unit, PPP_CHAP);
++ if (cstate-&gt;clientstate != CHAPCS_INITIAL &amp;&amp;
++ cstate-&gt;clientstate != CHAPCS_CLOSED)
++ auth_withpeer_fail(unit, PPP_CHAP);
++ ChapLowerDown(unit); /* shutdown chap */
++}
++
++
++/*
++ * ChapInput - Input CHAP packet.
++ */
++static void
++ChapInput(unit, inpacket, packet_len)
++ int unit;
++ u_char *inpacket;
++ int packet_len;
++{
++ chap_state *cstate = &amp;chap[unit];
++ u_char *inp;
++ u_char code, id;
++ int len;
++
++ /*
++ * Parse header (code, id and length).
++ * If packet too short, drop it.
++ */
++ inp = inpacket;
++ if (packet_len &lt; CHAP_HEADERLEN) {
++ CHAPDEBUG((&quot;ChapInput: rcvd short header.&quot;));
++ return;
++ }
++ GETCHAR(code, inp);
++ GETCHAR(id, inp);
++ GETSHORT(len, inp);
++ if (len &lt; CHAP_HEADERLEN) {
++ CHAPDEBUG((&quot;ChapInput: rcvd illegal length.&quot;));
++ return;
++ }
++ if (len &gt; packet_len) {
++ CHAPDEBUG((&quot;ChapInput: rcvd short packet.&quot;));
++ return;
++ }
++ len -= CHAP_HEADERLEN;
++
++ /*
++ * Action depends on code (as in fact it usually does :-).
++ */
++ switch (code) {
++ case CHAP_CHALLENGE:
++ ChapReceiveChallenge(cstate, inp, id, len);
++ break;
++
++ case CHAP_RESPONSE:
++ ChapReceiveResponse(cstate, inp, id, len);
++ break;
++
++ case CHAP_FAILURE:
++ ChapReceiveFailure(cstate, inp, id, len);
++ break;
++
++ case CHAP_SUCCESS:
++ ChapReceiveSuccess(cstate, inp, id, len);
++ break;
++
++ default: /* Need code reject? */
++ warn(&quot;Unknown CHAP code (%d) received.&quot;, code);
++ break;
++ }
++}
++
++
++/*
++ * ChapReceiveChallenge - Receive Challenge and send Response.
++ */
++static void
++ChapReceiveChallenge(cstate, inp, id, len)
++ chap_state *cstate;
++ u_char *inp;
++ int id;
++ int len;
++{
++ int rchallenge_len;
++ u_char *rchallenge;
++ int secret_len;
++ char secret[MAXSECRETLEN];
++ char rhostname[256];
++ MD5_CTX mdContext;
++ u_char hash[MD5_SIGNATURE_SIZE];
++
++ if (cstate-&gt;clientstate == CHAPCS_CLOSED ||
++ cstate-&gt;clientstate == CHAPCS_PENDING) {
++ CHAPDEBUG((&quot;ChapReceiveChallenge: in state %d&quot;, cstate-&gt;clientstate));
++ return;
++ }
++
++ if (len &lt; 2) {
++ CHAPDEBUG((&quot;ChapReceiveChallenge: rcvd short packet.&quot;));
++ return;
++ }
++
++ GETCHAR(rchallenge_len, inp);
++ len -= sizeof (u_char) + rchallenge_len; /* now name field length */
++ if (len &lt; 0) {
++ CHAPDEBUG((&quot;ChapReceiveChallenge: rcvd short packet.&quot;));
++ return;
++ }
++ rchallenge = inp;
++ INCPTR(rchallenge_len, inp);
++
++ if (len &gt;= sizeof(rhostname))
++ len = sizeof(rhostname) - 1;
++ BCOPY(inp, rhostname, len);
++ rhostname[len] = '\000';
++
++ /* Microsoft doesn't send their name back in the PPP packet */
++ if (explicit_remote || (remote_name[0] != 0 &amp;&amp; rhostname[0] == 0)) {
++ strlcpy(rhostname, remote_name, sizeof(rhostname));
++ CHAPDEBUG((&quot;ChapReceiveChallenge: using '%q' as remote name&quot;,
++ rhostname));
++ }
++
++ /* get secret for authenticating ourselves with the specified host */
++ if (!get_secret(cstate-&gt;unit, cstate-&gt;resp_name, rhostname,
++ secret, &amp;secret_len, 0)) {
++ secret_len = 0; /* assume null secret if can't find one */
++ warn(&quot;No CHAP secret found for authenticating us to %q&quot;, rhostname);
++ }
++
++ /* cancel response send timeout if necessary */
++ if (cstate-&gt;clientstate == CHAPCS_RESPONSE)
++ UNTIMEOUT(ChapResponseTimeout, cstate);
++
++ cstate-&gt;resp_id = id;
++ cstate-&gt;resp_transmits = 0;
++
++ /* generate MD based on negotiated type */
++ switch (cstate-&gt;resp_type) {
++
++ case CHAP_DIGEST_MD5:
++ MD5Init(&amp;mdContext);
++ MD5Update(&amp;mdContext, &amp;cstate-&gt;resp_id, 1);
++ MD5Update(&amp;mdContext, secret, secret_len);
++ MD5Update(&amp;mdContext, rchallenge, rchallenge_len);
++ MD5Final(hash, &amp;mdContext);
++ BCOPY(hash, cstate-&gt;response, MD5_SIGNATURE_SIZE);
++ cstate-&gt;resp_length = MD5_SIGNATURE_SIZE;
++ break;
++
++#ifdef CHAPMS
++ case CHAP_MICROSOFT:
++ ChapMS(cstate, rchallenge, rchallenge_len, secret, secret_len);
++ break;
++#endif
++
++ default:
++ CHAPDEBUG((&quot;unknown digest type %d&quot;, cstate-&gt;resp_type));
++ return;
++ }
++
++ BZERO(secret, sizeof(secret));
++ ChapSendResponse(cstate);
++}
++
++
++/*
++ * ChapReceiveResponse - Receive and process response.
++ */
++static void
++ChapReceiveResponse(cstate, inp, id, len)
++ chap_state *cstate;
++ u_char *inp;
++ int id;
++ int len;
++{
++ u_char *remmd, remmd_len;
++ int secret_len, old_state;
++ int code;
++ char rhostname[256];
++ MD5_CTX mdContext;
++ char secret[MAXSECRETLEN];
++ u_char hash[MD5_SIGNATURE_SIZE];
++
++ if (cstate-&gt;serverstate == CHAPSS_CLOSED ||
++ cstate-&gt;serverstate == CHAPSS_PENDING) {
++ CHAPDEBUG((&quot;ChapReceiveResponse: in state %d&quot;, cstate-&gt;serverstate));
++ return;
++ }
++
++ if (id != cstate-&gt;chal_id)
++ return; /* doesn't match ID of last challenge */
++
++ /*
++ * If we have received a duplicate or bogus Response,
++ * we have to send the same answer (Success/Failure)
++ * as we did for the first Response we saw.
++ */
++ if (cstate-&gt;serverstate == CHAPSS_OPEN) {
++ ChapSendStatus(cstate, CHAP_SUCCESS);
++ return;
++ }
++ if (cstate-&gt;serverstate == CHAPSS_BADAUTH) {
++ ChapSendStatus(cstate, CHAP_FAILURE);
++ return;
++ }
++
++ if (len &lt; 2) {
++ CHAPDEBUG((&quot;ChapReceiveResponse: rcvd short packet.&quot;));
++ return;
++ }
++ GETCHAR(remmd_len, inp); /* get length of MD */
++ remmd = inp; /* get pointer to MD */
++ INCPTR(remmd_len, inp);
++
++ len -= sizeof (u_char) + remmd_len;
++ if (len &lt; 0) {
++ CHAPDEBUG((&quot;ChapReceiveResponse: rcvd short packet.&quot;));
++ return;
++ }
++
++ UNTIMEOUT(ChapChallengeTimeout, cstate);
++
++ if (len &gt;= sizeof(rhostname))
++ len = sizeof(rhostname) - 1;
++ BCOPY(inp, rhostname, len);
++ rhostname[len] = '\000';
++
++ /*
++ * Get secret for authenticating them with us,
++ * do the hash ourselves, and compare the result.
++ */
++ code = CHAP_FAILURE;
++ if (!get_secret(cstate-&gt;unit, (explicit_remote? remote_name: rhostname),
++ cstate-&gt;chal_name, secret, &amp;secret_len, 1)) {
++ warn(&quot;No CHAP secret found for authenticating %q&quot;, rhostname);
++ } else {
++
++ /* generate MD based on negotiated type */
++ switch (cstate-&gt;chal_type) {
++
++ case CHAP_DIGEST_MD5: /* only MD5 is defined for now */
++ if (remmd_len != MD5_SIGNATURE_SIZE)
++ break; /* it's not even the right length */
++ MD5Init(&amp;mdContext);
++ MD5Update(&amp;mdContext, &amp;cstate-&gt;chal_id, 1);
++ MD5Update(&amp;mdContext, secret, secret_len);
++ MD5Update(&amp;mdContext, cstate-&gt;challenge, cstate-&gt;chal_len);
++ MD5Final(hash, &amp;mdContext);
++
++ /* compare local and remote MDs and send the appropriate status */
++ if (memcmp (hash, remmd, MD5_SIGNATURE_SIZE) == 0)
++ code = CHAP_SUCCESS; /* they are the same! */
++ break;
++
++ default:
++ CHAPDEBUG((&quot;unknown digest type %d&quot;, cstate-&gt;chal_type));
++ }
++ }
++
++ BZERO(secret, sizeof(secret));
++ ChapSendStatus(cstate, code);
++
++ if (code == CHAP_SUCCESS) {
++ old_state = cstate-&gt;serverstate;
++ cstate-&gt;serverstate = CHAPSS_OPEN;
++ if (old_state == CHAPSS_INITIAL_CHAL) {
++ auth_peer_success(cstate-&gt;unit, PPP_CHAP, rhostname, len);
++ }
++ if (cstate-&gt;chal_interval != 0)
++ TIMEOUT(ChapRechallenge, cstate, cstate-&gt;chal_interval);
++ notice(&quot;CHAP peer authentication succeeded for %q&quot;, rhostname);
++
++ } else {
++ error(&quot;CHAP peer authentication failed for remote host %q&quot;, rhostname);
++ cstate-&gt;serverstate = CHAPSS_BADAUTH;
++ auth_peer_fail(cstate-&gt;unit, PPP_CHAP);
++ }
++}
++
++/*
++ * ChapReceiveSuccess - Receive Success
++ */
++static void
++ChapReceiveSuccess(cstate, inp, id, len)
++ chap_state *cstate;
++ u_char *inp;
++ u_char id;
++ int len;
++{
++
++ if (cstate-&gt;clientstate == CHAPCS_OPEN)
++ /* presumably an answer to a duplicate response */
++ return;
++
++ if (cstate-&gt;clientstate != CHAPCS_RESPONSE) {
++ /* don't know what this is */
++ CHAPDEBUG((&quot;ChapReceiveSuccess: in state %d\n&quot;, cstate-&gt;clientstate));
++ return;
++ }
++
++ UNTIMEOUT(ChapResponseTimeout, cstate);
++
++ /*
++ * Print message.
++ */
++ if (len &gt; 0)
++ PRINTMSG(inp, len);
++
++ cstate-&gt;clientstate = CHAPCS_OPEN;
++
++ auth_withpeer_success(cstate-&gt;unit, PPP_CHAP);
++}
++
++
++/*
++ * ChapReceiveFailure - Receive failure.
++ */
++static void
++ChapReceiveFailure(cstate, inp, id, len)
++ chap_state *cstate;
++ u_char *inp;
++ u_char id;
++ int len;
++{
++ if (cstate-&gt;clientstate != CHAPCS_RESPONSE) {
++ /* don't know what this is */
++ CHAPDEBUG((&quot;ChapReceiveFailure: in state %d\n&quot;, cstate-&gt;clientstate));
++ return;
++ }
++
++ UNTIMEOUT(ChapResponseTimeout, cstate);
++
++ /*
++ * Print message.
++ */
++ if (len &gt; 0)
++ PRINTMSG(inp, len);
++
++ error(&quot;CHAP authentication failed&quot;);
++ auth_withpeer_fail(cstate-&gt;unit, PPP_CHAP);
++}
++
++
++/*
++ * ChapSendChallenge - Send an Authenticate challenge.
++ */
++static void
++ChapSendChallenge(cstate)
++ chap_state *cstate;
++{
++ u_char *outp;
++ int chal_len, name_len;
++ int outlen;
++
++ chal_len = cstate-&gt;chal_len;
++ name_len = strlen(cstate-&gt;chal_name);
++ outlen = CHAP_HEADERLEN + sizeof (u_char) + chal_len + name_len;
++ outp = outpacket_buf;
++
++ MAKEHEADER(outp, PPP_CHAP); /* paste in a CHAP header */
++
++ PUTCHAR(CHAP_CHALLENGE, outp);
++ PUTCHAR(cstate-&gt;chal_id, outp);
++ PUTSHORT(outlen, outp);
++
++ PUTCHAR(chal_len, outp); /* put length of challenge */
++ BCOPY(cstate-&gt;challenge, outp, chal_len);
++ INCPTR(chal_len, outp);
++
++ BCOPY(cstate-&gt;chal_name, outp, name_len); /* append hostname */
++
++ output(cstate-&gt;unit, outpacket_buf, outlen + PPP_HDRLEN);
++
++ TIMEOUT(ChapChallengeTimeout, cstate, cstate-&gt;timeouttime);
++ ++cstate-&gt;chal_transmits;
++}
++
++
++/*
++ * ChapSendStatus - Send a status response (ack or nak).
++ */
++static void
++ChapSendStatus(cstate, code)
++ chap_state *cstate;
++ int code;
++{
++ u_char *outp;
++ int outlen, msglen;
++ char msg[256];
++
++ if (code == CHAP_SUCCESS)
++ slprintf(msg, sizeof(msg), &quot;Welcome to %s.&quot;, hostname);
++ else
++ slprintf(msg, sizeof(msg), &quot;I don't like you. Go 'way.&quot;);
++ msglen = strlen(msg);
++
++ outlen = CHAP_HEADERLEN + msglen;
++ outp = outpacket_buf;
++
++ MAKEHEADER(outp, PPP_CHAP); /* paste in a header */
++
++ PUTCHAR(code, outp);
++ PUTCHAR(cstate-&gt;chal_id, outp);
++ PUTSHORT(outlen, outp);
++ BCOPY(msg, outp, msglen);
++ output(cstate-&gt;unit, outpacket_buf, outlen + PPP_HDRLEN);
++}
++
++/*
++ * ChapGenChallenge is used to generate a pseudo-random challenge string of
++ * a pseudo-random length between min_len and max_len. The challenge
++ * string and its length are stored in *cstate, and various other fields of
++ * *cstate are initialized.
++ */
++
++static void
++ChapGenChallenge(cstate)
++ chap_state *cstate;
++{
++ int chal_len;
++ u_char *ptr = cstate-&gt;challenge;
++ int i;
++
++ /* pick a random challenge length between MIN_CHALLENGE_LENGTH and
++ MAX_CHALLENGE_LENGTH */
++ chal_len = (unsigned) ((drand48() *
++ (MAX_CHALLENGE_LENGTH - MIN_CHALLENGE_LENGTH)) +
++ MIN_CHALLENGE_LENGTH);
++ cstate-&gt;chal_len = chal_len;
++ cstate-&gt;chal_id = ++cstate-&gt;id;
++ cstate-&gt;chal_transmits = 0;
++
++ /* generate a random string */
++ for (i = 0; i &lt; chal_len; i++)
++ *ptr++ = (char) (drand48() * 0xff);
++}
++
++/*
++ * ChapSendResponse - send a response packet with values as specified
++ * in *cstate.
++ */
++/* ARGSUSED */
++static void
++ChapSendResponse(cstate)
++ chap_state *cstate;
++{
++ u_char *outp;
++ int outlen, md_len, name_len;
++
++ md_len = cstate-&gt;resp_length;
++ name_len = strlen(cstate-&gt;resp_name);
++ outlen = CHAP_HEADERLEN + sizeof (u_char) + md_len + name_len;
++ outp = outpacket_buf;
++
++ MAKEHEADER(outp, PPP_CHAP);
++
++ PUTCHAR(CHAP_RESPONSE, outp); /* we are a response */
++ PUTCHAR(cstate-&gt;resp_id, outp); /* copy id from challenge packet */
++ PUTSHORT(outlen, outp); /* packet length */
++
++ PUTCHAR(md_len, outp); /* length of MD */
++ BCOPY(cstate-&gt;response, outp, md_len); /* copy MD to buffer */
++ INCPTR(md_len, outp);
++
++ BCOPY(cstate-&gt;resp_name, outp, name_len); /* append our name */
++
++ /* send the packet */
++ output(cstate-&gt;unit, outpacket_buf, outlen + PPP_HDRLEN);
++
++ cstate-&gt;clientstate = CHAPCS_RESPONSE;
++ TIMEOUT(ChapResponseTimeout, cstate, cstate-&gt;timeouttime);
++ ++cstate-&gt;resp_transmits;
++}
++
++/*
++ * ChapPrintPkt - print the contents of a CHAP packet.
++ */
++static char *ChapCodenames[] = {
++ &quot;Challenge&quot;, &quot;Response&quot;, &quot;Success&quot;, &quot;Failure&quot;
++};
++
++static int
++ChapPrintPkt(p, plen, printer, arg)
++ u_char *p;
++ int plen;
++ void (*printer) __P((void *, char *, ...));
++ void *arg;
++{
++ int code, id, len;
++ int clen, nlen;
++ u_char x;
++
++ if (plen &lt; CHAP_HEADERLEN)
++ return 0;
++ GETCHAR(code, p);
++ GETCHAR(id, p);
++ GETSHORT(len, p);
++ if (len &lt; CHAP_HEADERLEN || len &gt; plen)
++ return 0;
++
++ if (code &gt;= 1 &amp;&amp; code &lt;= sizeof(ChapCodenames) / sizeof(char *))
++ printer(arg, &quot; %s&quot;, ChapCodenames[code-1]);
++ else
++ printer(arg, &quot; code=0x%x&quot;, code);
++ printer(arg, &quot; id=0x%x&quot;, id);
++ len -= CHAP_HEADERLEN;
++ switch (code) {
++ case CHAP_CHALLENGE:
++ case CHAP_RESPONSE:
++ if (len &lt; 1)
++ break;
++ clen = p[0];
++ if (len &lt; clen + 1)
++ break;
++ ++p;
++ nlen = len - clen - 1;
++ printer(arg, &quot; &lt;&quot;);
++ for (; clen &gt; 0; --clen) {
++ GETCHAR(x, p);
++ printer(arg, &quot;%.2x&quot;, x);
++ }
++ printer(arg, &quot;&gt;, name = &quot;);
++ print_string((char *)p, nlen, printer, arg);
++ break;
++ case CHAP_FAILURE:
++ case CHAP_SUCCESS:
++ printer(arg, &quot; &quot;);
++ print_string((char *)p, len, printer, arg);
++ break;
++ default:
++ for (clen = len; clen &gt; 0; --clen) {
++ GETCHAR(x, p);
++ printer(arg, &quot; %.2x&quot;, x);
++ }
++ }
++
++ return len + CHAP_HEADERLEN;
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/pppd/chap.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1ppppppdchaph">Added: drakx/trunk/mdk-stage1/ppp/pppd/chap.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/chap.h (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/chap.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,124 @@
++/*
++ * chap.h - Challenge Handshake Authentication Protocol definitions.
++ *
++ * Copyright (c) 1993 The Australian National University.
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms are permitted
++ * provided that the above copyright notice and this paragraph are
++ * duplicated in all such forms and that any documentation,
++ * advertising materials, and other materials related to such
++ * distribution and use acknowledge that the software was developed
++ * by the Australian National University. The name of the University
++ * may not be used to endorse or promote products derived from this
++ * software without specific prior written permission.
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
++ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
++ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++ *
++ * Copyright (c) 1991 Gregory M. Christy
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms are permitted
++ * provided that the above copyright notice and this paragraph are
++ * duplicated in all such forms and that any documentation,
++ * advertising materials, and other materials related to such
++ * distribution and use acknowledge that the software was developed
++ * by the author.
++ *
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
++ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
++ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++ *
++ * $Id: chap.h 195720 2001-06-11 11:44:34Z gc $
++ */
++
++#ifndef __CHAP_INCLUDE__
++
++/* Code + ID + length */
++#define CHAP_HEADERLEN 4
++
++/*
++ * CHAP codes.
++ */
++
++#define CHAP_DIGEST_MD5 5 /* use MD5 algorithm */
++#define MD5_SIGNATURE_SIZE 16 /* 16 bytes in a MD5 message digest */
++#define CHAP_MICROSOFT 0x80 /* use Microsoft-compatible alg. */
++#define MS_CHAP_RESPONSE_LEN 49 /* Response length for MS-CHAP */
++
++#define CHAP_CHALLENGE 1
++#define CHAP_RESPONSE 2
++#define CHAP_SUCCESS 3
++#define CHAP_FAILURE 4
++
++/*
++ * Challenge lengths (for challenges we send) and other limits.
++ */
++#define MIN_CHALLENGE_LENGTH 16
++#define MAX_CHALLENGE_LENGTH 24
++#define MAX_RESPONSE_LENGTH 64 /* sufficient for MD5 or MS-CHAP */
++
++/*
++ * Each interface is described by a chap structure.
++ */
++
++typedef struct chap_state {
++ int unit; /* Interface unit number */
++ int clientstate; /* Client state */
++ int serverstate; /* Server state */
++ u_char challenge[MAX_CHALLENGE_LENGTH]; /* last challenge string sent */
++ u_char chal_len; /* challenge length */
++ u_char chal_id; /* ID of last challenge */
++ u_char chal_type; /* hash algorithm for challenges */
++ u_char id; /* Current id */
++ char *chal_name; /* Our name to use with challenge */
++ int chal_interval; /* Time until we challenge peer again */
++ int timeouttime; /* Timeout time in seconds */
++ int max_transmits; /* Maximum # of challenge transmissions */
++ int chal_transmits; /* Number of transmissions of challenge */
++ int resp_transmits; /* Number of transmissions of response */
++ u_char response[MAX_RESPONSE_LENGTH]; /* Response to send */
++ u_char resp_length; /* length of response */
++ u_char resp_id; /* ID for response messages */
++ u_char resp_type; /* hash algorithm for responses */
++ char *resp_name; /* Our name to send with response */
++} chap_state;
++
++
++/*
++ * Client (peer) states.
++ */
++#define CHAPCS_INITIAL 0 /* Lower layer down, not opened */
++#define CHAPCS_CLOSED 1 /* Lower layer up, not opened */
++#define CHAPCS_PENDING 2 /* Auth us to peer when lower up */
++#define CHAPCS_LISTEN 3 /* Listening for a challenge */
++#define CHAPCS_RESPONSE 4 /* Sent response, waiting for status */
++#define CHAPCS_OPEN 5 /* We've received Success */
++
++/*
++ * Server (authenticator) states.
++ */
++#define CHAPSS_INITIAL 0 /* Lower layer down, not opened */
++#define CHAPSS_CLOSED 1 /* Lower layer up, not opened */
++#define CHAPSS_PENDING 2 /* Auth peer when lower up */
++#define CHAPSS_INITIAL_CHAL 3 /* We've sent the first challenge */
++#define CHAPSS_OPEN 4 /* We've sent a Success msg */
++#define CHAPSS_RECHALLENGE 5 /* We've sent another challenge */
++#define CHAPSS_BADAUTH 6 /* We've sent a Failure msg */
++
++/*
++ * Timeouts.
++ */
++#define CHAP_DEFTIMEOUT 3 /* Timeout time in seconds */
++#define CHAP_DEFTRANSMITS 10 /* max # times to send challenge */
++
++extern chap_state chap[];
++
++void ChapAuthWithPeer __P((int, char *, int));
++void ChapAuthPeer __P((int, char *, int));
++
++extern struct protent chap_protent;
++
++#define __CHAP_INCLUDE__
++#endif /* __CHAP_INCLUDE__ */
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/pppd/chap.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1ppppppdchap_msc">Added: drakx/trunk/mdk-stage1/ppp/pppd/chap_ms.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/chap_ms.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/chap_ms.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,338 @@
++/*
++ * chap_ms.c - Microsoft MS-CHAP compatible implementation.
++ *
++ * Copyright (c) 1995 Eric Rosenquist, Strata Software Limited.
++ * http://www.strataware.com/
++ *
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms are permitted
++ * provided that the above copyright notice and this paragraph are
++ * duplicated in all such forms and that any documentation,
++ * advertising materials, and other materials related to such
++ * distribution and use acknowledge that the software was developed
++ * by Eric Rosenquist. The name of the author may not be used to
++ * endorse or promote products derived from this software without
++ * specific prior written permission.
++ *
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
++ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
++ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++ */
++
++/*
++ * Modifications by Lauri Pesonen / lpesonen@clinet.fi, april 1997
++ *
++ * Implemented LANManager type password response to MS-CHAP challenges.
++ * Now pppd provides both NT style and LANMan style blocks, and the
++ * prefered is set by option &quot;ms-lanman&quot;. Default is to use NT.
++ * The hash text (StdText) was taken from Win95 RASAPI32.DLL.
++ *
++ * You should also use DOMAIN\\USERNAME as described in README.MSCHAP80
++ */
++
++#define RCSID &quot;$Id: chap_ms.c 195720 2001-06-11 11:44:34Z gc $&quot;
++
++#ifdef CHAPMS
++
++#include &lt;stdio.h&gt;
++#include &lt;stdlib.h&gt;
++#include &lt;string.h&gt;
++#include &lt;ctype.h&gt;
++#include &lt;sys/types.h&gt;
++#include &lt;sys/time.h&gt;
++#include &lt;unistd.h&gt;
++#ifdef HAVE_CRYPT_H
++#include &lt;crypt.h&gt;
++#endif
++
++#include &quot;pppd.h&quot;
++#include &quot;chap.h&quot;
++#include &quot;chap_ms.h&quot;
++#include &quot;md4.h&quot;
++
++#ifndef USE_CRYPT
++#include &lt;des.h&gt;
++#endif
++
++static const char rcsid[] = RCSID;
++
++typedef struct {
++ u_char LANManResp[24];
++ u_char NTResp[24];
++ u_char UseNT; /* If 1, ignore the LANMan response field */
++} MS_ChapResponse;
++/* We use MS_CHAP_RESPONSE_LEN, rather than sizeof(MS_ChapResponse),
++ in case this struct gets padded. */
++
++
++static void ChallengeResponse __P((u_char *, u_char *, u_char *));
++static void DesEncrypt __P((u_char *, u_char *, u_char *));
++static void MakeKey __P((u_char *, u_char *));
++static u_char Get7Bits __P((u_char *, int));
++static void ChapMS_NT __P((char *, int, char *, int, MS_ChapResponse *));
++#ifdef MSLANMAN
++static void ChapMS_LANMan __P((char *, int, char *, int, MS_ChapResponse *));
++#endif
++
++#ifdef USE_CRYPT
++static void Expand __P((u_char *, u_char *));
++static void Collapse __P((u_char *, u_char *));
++#endif
++
++#ifdef MSLANMAN
++bool ms_lanman = 0; /* Use LanMan password instead of NT */
++ /* Has meaning only with MS-CHAP challenges */
++#endif
++
++static void
++ChallengeResponse(challenge, pwHash, response)
++ u_char *challenge; /* IN 8 octets */
++ u_char *pwHash; /* IN 16 octets */
++ u_char *response; /* OUT 24 octets */
++{
++ char ZPasswordHash[21];
++
++ BZERO(ZPasswordHash, sizeof(ZPasswordHash));
++ BCOPY(pwHash, ZPasswordHash, MD4_SIGNATURE_SIZE);
++
++#if 0
++ dbglog(&quot;ChallengeResponse - ZPasswordHash %.*B&quot;,
++ sizeof(ZPasswordHash), ZPasswordHash);
++#endif
++
++ DesEncrypt(challenge, ZPasswordHash + 0, response + 0);
++ DesEncrypt(challenge, ZPasswordHash + 7, response + 8);
++ DesEncrypt(challenge, ZPasswordHash + 14, response + 16);
++
++#if 0
++ dbglog(&quot;ChallengeResponse - response %.24B&quot;, response);
++#endif
++}
++
++
++#ifdef USE_CRYPT
++static void
++DesEncrypt(clear, key, cipher)
++ u_char *clear; /* IN 8 octets */
++ u_char *key; /* IN 7 octets */
++ u_char *cipher; /* OUT 8 octets */
++{
++ u_char des_key[8];
++ u_char crypt_key[66];
++ u_char des_input[66];
++
++ MakeKey(key, des_key);
++
++ Expand(des_key, crypt_key);
++ setkey(crypt_key);
++
++#if 0
++ CHAPDEBUG((LOG_INFO, &quot;DesEncrypt: 8 octet input : %.8B&quot;, clear));
++#endif
++
++ Expand(clear, des_input);
++ encrypt(des_input, 0);
++ Collapse(des_input, cipher);
++
++#if 0
++ CHAPDEBUG((LOG_INFO, &quot;DesEncrypt: 8 octet output: %.8B&quot;, cipher));
++#endif
++}
++
++#else /* USE_CRYPT */
++
++static void
++DesEncrypt(clear, key, cipher)
++ u_char *clear; /* IN 8 octets */
++ u_char *key; /* IN 7 octets */
++ u_char *cipher; /* OUT 8 octets */
++{
++ des_cblock des_key;
++ des_key_schedule key_schedule;
++
++ MakeKey(key, des_key);
++
++ des_set_key(&amp;des_key, key_schedule);
++
++#if 0
++ CHAPDEBUG((LOG_INFO, &quot;DesEncrypt: 8 octet input : %.8B&quot;, clear));
++#endif
++
++ des_ecb_encrypt((des_cblock *)clear, (des_cblock *)cipher, key_schedule, 1);
++
++#if 0
++ CHAPDEBUG((LOG_INFO, &quot;DesEncrypt: 8 octet output: %.8B&quot;, cipher));
++#endif
++}
++
++#endif /* USE_CRYPT */
++
++
++static u_char Get7Bits(input, startBit)
++ u_char *input;
++ int startBit;
++{
++ register unsigned int word;
++
++ word = (unsigned)input[startBit / 8] &lt;&lt; 8;
++ word |= (unsigned)input[startBit / 8 + 1];
++
++ word &gt;&gt;= 15 - (startBit % 8 + 7);
++
++ return word &amp; 0xFE;
++}
++
++#ifdef USE_CRYPT
++
++/* in == 8-byte string (expanded version of the 56-bit key)
++ * out == 64-byte string where each byte is either 1 or 0
++ * Note that the low-order &quot;bit&quot; is always ignored by by setkey()
++ */
++static void Expand(in, out)
++ u_char *in;
++ u_char *out;
++{
++ int j, c;
++ int i;
++
++ for(i = 0; i &lt; 64; in++){
++ c = *in;
++ for(j = 7; j &gt;= 0; j--)
++ *out++ = (c &gt;&gt; j) &amp; 01;
++ i += 8;
++ }
++}
++
++/* The inverse of Expand
++ */
++static void Collapse(in, out)
++ u_char *in;
++ u_char *out;
++{
++ int j;
++ int i;
++ unsigned int c;
++
++ for (i = 0; i &lt; 64; i += 8, out++) {
++ c = 0;
++ for (j = 7; j &gt;= 0; j--, in++)
++ c |= *in &lt;&lt; j;
++ *out = c &amp; 0xff;
++ }
++}
++#endif
++
++static void MakeKey(key, des_key)
++ u_char *key; /* IN 56 bit DES key missing parity bits */
++ u_char *des_key; /* OUT 64 bit DES key with parity bits added */
++{
++ des_key[0] = Get7Bits(key, 0);
++ des_key[1] = Get7Bits(key, 7);
++ des_key[2] = Get7Bits(key, 14);
++ des_key[3] = Get7Bits(key, 21);
++ des_key[4] = Get7Bits(key, 28);
++ des_key[5] = Get7Bits(key, 35);
++ des_key[6] = Get7Bits(key, 42);
++ des_key[7] = Get7Bits(key, 49);
++
++#ifndef USE_CRYPT
++ des_set_odd_parity((des_cblock *)des_key);
++#endif
++
++#if 0
++ CHAPDEBUG((LOG_INFO, &quot;MakeKey: 56-bit input : %.7B&quot;, key));
++ CHAPDEBUG((LOG_INFO, &quot;MakeKey: 64-bit output: %.8B&quot;, des_key));
++#endif
++}
++
++static void
++ChapMS_NT(rchallenge, rchallenge_len, secret, secret_len, response)
++ char *rchallenge;
++ int rchallenge_len;
++ char *secret;
++ int secret_len;
++ MS_ChapResponse *response;
++{
++ int i;
++#ifdef __NetBSD__
++ /* NetBSD uses the libc md4 routines which take bytes instead of bits */
++ int mdlen = secret_len * 2;
++#else
++ int mdlen = secret_len * 2 * 8;
++#endif
++ MD4_CTX md4Context;
++ u_char hash[MD4_SIGNATURE_SIZE];
++ u_char unicodePassword[MAX_NT_PASSWORD * 2];
++
++ /* Initialize the Unicode version of the secret (== password). */
++ /* This implicitly supports 8-bit ISO8859/1 characters. */
++ BZERO(unicodePassword, sizeof(unicodePassword));
++ for (i = 0; i &lt; secret_len; i++)
++ unicodePassword[i * 2] = (u_char)secret[i];
++
++ MD4Init(&amp;md4Context);
++ MD4Update(&amp;md4Context, unicodePassword, mdlen);
++
++ MD4Final(hash, &amp;md4Context); /* Tell MD4 we're done */
++
++ ChallengeResponse(rchallenge, hash, response-&gt;NTResp);
++}
++
++#ifdef MSLANMAN
++static u_char *StdText = (u_char *)&quot;KGS!@#$%&quot;; /* key from rasapi32.dll */
++
++static void
++ChapMS_LANMan(rchallenge, rchallenge_len, secret, secret_len, response)
++ char *rchallenge;
++ int rchallenge_len;
++ char *secret;
++ int secret_len;
++ MS_ChapResponse *response;
++{
++ int i;
++ u_char UcasePassword[MAX_NT_PASSWORD]; /* max is actually 14 */
++ u_char PasswordHash[MD4_SIGNATURE_SIZE];
++
++ /* LANMan password is case insensitive */
++ BZERO(UcasePassword, sizeof(UcasePassword));
++ for (i = 0; i &lt; secret_len; i++)
++ UcasePassword[i] = (u_char)toupper(secret[i]);
++ DesEncrypt( StdText, UcasePassword + 0, PasswordHash + 0 );
++ DesEncrypt( StdText, UcasePassword + 7, PasswordHash + 8 );
++ ChallengeResponse(rchallenge, PasswordHash, response-&gt;LANManResp);
++}
++#endif
++
++void
++ChapMS(cstate, rchallenge, rchallenge_len, secret, secret_len)
++ chap_state *cstate;
++ char *rchallenge;
++ int rchallenge_len;
++ char *secret;
++ int secret_len;
++{
++ MS_ChapResponse response;
++
++#if 0
++ CHAPDEBUG((LOG_INFO, &quot;ChapMS: secret is '%.*s'&quot;, secret_len, secret));
++#endif
++ BZERO(&amp;response, sizeof(response));
++
++ /* Calculate both always */
++ ChapMS_NT(rchallenge, rchallenge_len, secret, secret_len, &amp;response);
++
++#ifdef MSLANMAN
++ ChapMS_LANMan(rchallenge, rchallenge_len, secret, secret_len, &amp;response);
++
++ /* prefered method is set by option */
++ response.UseNT = !ms_lanman;
++#else
++ response.UseNT = 1;
++#endif
++
++ BCOPY(&amp;response, cstate-&gt;response, MS_CHAP_RESPONSE_LEN);
++ cstate-&gt;resp_length = MS_CHAP_RESPONSE_LEN;
++}
++
++#endif /* CHAPMS */
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/pppd/chap_ms.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1ppppppdchap_msh">Added: drakx/trunk/mdk-stage1/ppp/pppd/chap_ms.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/chap_ms.h (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/chap_ms.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,33 @@
++/*
++ * chap.h - Challenge Handshake Authentication Protocol definitions.
++ *
++ * Copyright (c) 1995 Eric Rosenquist, Strata Software Limited.
++ * http://www.strataware.com/
++ *
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms are permitted
++ * provided that the above copyright notice and this paragraph are
++ * duplicated in all such forms and that any documentation,
++ * advertising materials, and other materials related to such
++ * distribution and use acknowledge that the software was developed
++ * by Eric Rosenquist. The name of the author may not be used to
++ * endorse or promote products derived from this software without
++ * specific prior written permission.
++ *
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
++ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
++ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++ *
++ * $Id: chap_ms.h 195720 2001-06-11 11:44:34Z gc $
++ */
++
++#ifndef __CHAPMS_INCLUDE__
++
++#define MD4_SIGNATURE_SIZE 16 /* 16 bytes in a MD4 message digest */
++#define MAX_NT_PASSWORD 256 /* Maximum number of (Unicode) chars in an NT password */
++
++void ChapMS __P((chap_state *, char *, int, char *, int));
++
++#define __CHAPMS_INCLUDE__
++#endif /* __CHAPMS_INCLUDE__ */
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/pppd/chap_ms.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1ppppppddemandc">Added: drakx/trunk/mdk-stage1/ppp/pppd/demand.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/demand.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/demand.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,351 @@
++/*
++ * demand.c - Support routines for demand-dialling.
++ *
++ * Copyright (c) 1993 The Australian National University.
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms are permitted
++ * provided that the above copyright notice and this paragraph are
++ * duplicated in all such forms and that any documentation,
++ * advertising materials, and other materials related to such
++ * distribution and use acknowledge that the software was developed
++ * by the Australian National University. The name of the University
++ * may not be used to endorse or promote products derived from this
++ * software without specific prior written permission.
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
++ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
++ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++ */
++
++#define RCSID &quot;$Id: demand.c 195720 2001-06-11 11:44:34Z gc $&quot;
++
++#include &lt;stdio.h&gt;
++#include &lt;stdlib.h&gt;
++#include &lt;string.h&gt;
++#include &lt;errno.h&gt;
++#include &lt;fcntl.h&gt;
++#include &lt;netdb.h&gt;
++#include &lt;sys/param.h&gt;
++#include &lt;sys/types.h&gt;
++#include &lt;sys/wait.h&gt;
++#include &lt;sys/time.h&gt;
++#include &lt;sys/resource.h&gt;
++#include &lt;sys/stat.h&gt;
++#include &lt;sys/socket.h&gt;
++#ifdef PPP_FILTER
++#include &lt;net/if.h&gt;
++#include &lt;net/bpf.h&gt;
++#include &lt;pcap.h&gt;
++#endif
++
++#include &quot;pppd.h&quot;
++#include &quot;fsm.h&quot;
++#include &quot;ipcp.h&quot;
++#include &quot;lcp.h&quot;
++
++static const char rcsid[] = RCSID;
++
++char *frame;
++int framelen;
++int framemax;
++int escape_flag;
++int flush_flag;
++int fcs;
++
++struct packet {
++ int length;
++ struct packet *next;
++ unsigned char data[1];
++};
++
++struct packet *pend_q;
++struct packet *pend_qtail;
++
++static int active_packet __P((unsigned char *, int));
++
++/*
++ * demand_conf - configure the interface for doing dial-on-demand.
++ */
++void
++demand_conf()
++{
++ int i;
++ struct protent *protp;
++
++/* framemax = lcp_allowoptions[0].mru;
++ if (framemax &lt; PPP_MRU) */
++ framemax = PPP_MRU;
++ framemax += PPP_HDRLEN + PPP_FCSLEN;
++ frame = malloc(framemax);
++ if (frame == NULL)
++ novm(&quot;demand frame&quot;);
++ framelen = 0;
++ pend_q = NULL;
++ escape_flag = 0;
++ flush_flag = 0;
++ fcs = PPP_INITFCS;
++
++ netif_set_mtu(0, MIN(lcp_allowoptions[0].mru, PPP_MRU));
++ ppp_send_config(0, PPP_MRU, (u_int32_t) 0, 0, 0);
++ ppp_recv_config(0, PPP_MRU, (u_int32_t) 0, 0, 0);
++
++#ifdef PPP_FILTER
++ set_filters(&amp;pass_filter, &amp;active_filter);
++#endif
++
++ /*
++ * Call the demand_conf procedure for each protocol that's got one.
++ */
++ for (i = 0; (protp = protocols[i]) != NULL; ++i)
++ if (protp-&gt;enabled_flag &amp;&amp; protp-&gt;demand_conf != NULL)
++ if (!((*protp-&gt;demand_conf)(0)))
++ die(1);
++}
++
++
++/*
++ * demand_block - set each network protocol to block further packets.
++ */
++void
++demand_block()
++{
++ int i;
++ struct protent *protp;
++
++ for (i = 0; (protp = protocols[i]) != NULL; ++i)
++ if (protp-&gt;enabled_flag &amp;&amp; protp-&gt;demand_conf != NULL)
++ sifnpmode(0, protp-&gt;protocol &amp; ~0x8000, NPMODE_QUEUE);
++ get_loop_output();
++}
++
++/*
++ * demand_discard - set each network protocol to discard packets
++ * with an error.
++ */
++void
++demand_discard()
++{
++ struct packet *pkt, *nextpkt;
++ int i;
++ struct protent *protp;
++
++ for (i = 0; (protp = protocols[i]) != NULL; ++i)
++ if (protp-&gt;enabled_flag &amp;&amp; protp-&gt;demand_conf != NULL)
++ sifnpmode(0, protp-&gt;protocol &amp; ~0x8000, NPMODE_ERROR);
++ get_loop_output();
++
++ /* discard all saved packets */
++ for (pkt = pend_q; pkt != NULL; pkt = nextpkt) {
++ nextpkt = pkt-&gt;next;
++ free(pkt);
++ }
++ pend_q = NULL;
++ framelen = 0;
++ flush_flag = 0;
++ escape_flag = 0;
++ fcs = PPP_INITFCS;
++}
++
++/*
++ * demand_unblock - set each enabled network protocol to pass packets.
++ */
++void
++demand_unblock()
++{
++ int i;
++ struct protent *protp;
++
++ for (i = 0; (protp = protocols[i]) != NULL; ++i)
++ if (protp-&gt;enabled_flag &amp;&amp; protp-&gt;demand_conf != NULL)
++ sifnpmode(0, protp-&gt;protocol &amp; ~0x8000, NPMODE_PASS);
++}
++
++/*
++ * FCS lookup table as calculated by genfcstab.
++ */
++static u_short fcstab[256] = {
++ 0x0000, 0x1189, 0x2312, 0x329b, 0x4624, 0x57ad, 0x6536, 0x74bf,
++ 0x8c48, 0x9dc1, 0xaf5a, 0xbed3, 0xca6c, 0xdbe5, 0xe97e, 0xf8f7,
++ 0x1081, 0x0108, 0x3393, 0x221a, 0x56a5, 0x472c, 0x75b7, 0x643e,
++ 0x9cc9, 0x8d40, 0xbfdb, 0xae52, 0xdaed, 0xcb64, 0xf9ff, 0xe876,
++ 0x2102, 0x308b, 0x0210, 0x1399, 0x6726, 0x76af, 0x4434, 0x55bd,
++ 0xad4a, 0xbcc3, 0x8e58, 0x9fd1, 0xeb6e, 0xfae7, 0xc87c, 0xd9f5,
++ 0x3183, 0x200a, 0x1291, 0x0318, 0x77a7, 0x662e, 0x54b5, 0x453c,
++ 0xbdcb, 0xac42, 0x9ed9, 0x8f50, 0xfbef, 0xea66, 0xd8fd, 0xc974,
++ 0x4204, 0x538d, 0x6116, 0x709f, 0x0420, 0x15a9, 0x2732, 0x36bb,
++ 0xce4c, 0xdfc5, 0xed5e, 0xfcd7, 0x8868, 0x99e1, 0xab7a, 0xbaf3,
++ 0x5285, 0x430c, 0x7197, 0x601e, 0x14a1, 0x0528, 0x37b3, 0x263a,
++ 0xdecd, 0xcf44, 0xfddf, 0xec56, 0x98e9, 0x8960, 0xbbfb, 0xaa72,
++ 0x6306, 0x728f, 0x4014, 0x519d, 0x2522, 0x34ab, 0x0630, 0x17b9,
++ 0xef4e, 0xfec7, 0xcc5c, 0xddd5, 0xa96a, 0xb8e3, 0x8a78, 0x9bf1,
++ 0x7387, 0x620e, 0x5095, 0x411c, 0x35a3, 0x242a, 0x16b1, 0x0738,
++ 0xffcf, 0xee46, 0xdcdd, 0xcd54, 0xb9eb, 0xa862, 0x9af9, 0x8b70,
++ 0x8408, 0x9581, 0xa71a, 0xb693, 0xc22c, 0xd3a5, 0xe13e, 0xf0b7,
++ 0x0840, 0x19c9, 0x2b52, 0x3adb, 0x4e64, 0x5fed, 0x6d76, 0x7cff,
++ 0x9489, 0x8500, 0xb79b, 0xa612, 0xd2ad, 0xc324, 0xf1bf, 0xe036,
++ 0x18c1, 0x0948, 0x3bd3, 0x2a5a, 0x5ee5, 0x4f6c, 0x7df7, 0x6c7e,
++ 0xa50a, 0xb483, 0x8618, 0x9791, 0xe32e, 0xf2a7, 0xc03c, 0xd1b5,
++ 0x2942, 0x38cb, 0x0a50, 0x1bd9, 0x6f66, 0x7eef, 0x4c74, 0x5dfd,
++ 0xb58b, 0xa402, 0x9699, 0x8710, 0xf3af, 0xe226, 0xd0bd, 0xc134,
++ 0x39c3, 0x284a, 0x1ad1, 0x0b58, 0x7fe7, 0x6e6e, 0x5cf5, 0x4d7c,
++ 0xc60c, 0xd785, 0xe51e, 0xf497, 0x8028, 0x91a1, 0xa33a, 0xb2b3,
++ 0x4a44, 0x5bcd, 0x6956, 0x78df, 0x0c60, 0x1de9, 0x2f72, 0x3efb,
++ 0xd68d, 0xc704, 0xf59f, 0xe416, 0x90a9, 0x8120, 0xb3bb, 0xa232,
++ 0x5ac5, 0x4b4c, 0x79d7, 0x685e, 0x1ce1, 0x0d68, 0x3ff3, 0x2e7a,
++ 0xe70e, 0xf687, 0xc41c, 0xd595, 0xa12a, 0xb0a3, 0x8238, 0x93b1,
++ 0x6b46, 0x7acf, 0x4854, 0x59dd, 0x2d62, 0x3ceb, 0x0e70, 0x1ff9,
++ 0xf78f, 0xe606, 0xd49d, 0xc514, 0xb1ab, 0xa022, 0x92b9, 0x8330,
++ 0x7bc7, 0x6a4e, 0x58d5, 0x495c, 0x3de3, 0x2c6a, 0x1ef1, 0x0f78
++};
++
++/*
++ * loop_chars - process characters received from the loopback.
++ * Calls loop_frame when a complete frame has been accumulated.
++ * Return value is 1 if we need to bring up the link, 0 otherwise.
++ */
++int
++loop_chars(p, n)
++ unsigned char *p;
++ int n;
++{
++ int c, rv;
++
++ rv = 0;
++ for (; n &gt; 0; --n) {
++ c = *p++;
++ if (c == PPP_FLAG) {
++ if (!escape_flag &amp;&amp; !flush_flag
++ &amp;&amp; framelen &gt; 2 &amp;&amp; fcs == PPP_GOODFCS) {
++ framelen -= 2;
++ if (loop_frame((unsigned char *)frame, framelen))
++ rv = 1;
++ }
++ framelen = 0;
++ flush_flag = 0;
++ escape_flag = 0;
++ fcs = PPP_INITFCS;
++ continue;
++ }
++ if (flush_flag)
++ continue;
++ if (escape_flag) {
++ c ^= PPP_TRANS;
++ escape_flag = 0;
++ } else if (c == PPP_ESCAPE) {
++ escape_flag = 1;
++ continue;
++ }
++ if (framelen &gt;= framemax) {
++ flush_flag = 1;
++ continue;
++ }
++ frame[framelen++] = c;
++ fcs = PPP_FCS(fcs, c);
++ }
++ return rv;
++}
++
++/*
++ * loop_frame - given a frame obtained from the loopback,
++ * decide whether to bring up the link or not, and, if we want
++ * to transmit this frame later, put it on the pending queue.
++ * Return value is 1 if we need to bring up the link, 0 otherwise.
++ * We assume that the kernel driver has already applied the
++ * pass_filter, so we won't get packets it rejected.
++ * We apply the active_filter to see if we want this packet to
++ * bring up the link.
++ */
++int
++loop_frame(frame, len)
++ unsigned char *frame;
++ int len;
++{
++ struct packet *pkt;
++
++ /* dbglog(&quot;from loop: %P&quot;, frame, len); */
++ if (len &lt; PPP_HDRLEN)
++ return 0;
++ if ((PPP_PROTOCOL(frame) &amp; 0x8000) != 0)
++ return 0; /* shouldn't get any of these anyway */
++ if (!active_packet(frame, len))
++ return 0;
++
++ pkt = (struct packet *) malloc(sizeof(struct packet) + len);
++ if (pkt != NULL) {
++ pkt-&gt;length = len;
++ pkt-&gt;next = NULL;
++ memcpy(pkt-&gt;data, frame, len);
++ if (pend_q == NULL)
++ pend_q = pkt;
++ else
++ pend_qtail-&gt;next = pkt;
++ pend_qtail = pkt;
++ }
++ return 1;
++}
++
++/*
++ * demand_rexmit - Resend all those frames which we got via the
++ * loopback, now that the real serial link is up.
++ */
++void
++demand_rexmit(proto)
++ int proto;
++{
++ struct packet *pkt, *prev, *nextpkt;
++
++ prev = NULL;
++ pkt = pend_q;
++ pend_q = NULL;
++ for (; pkt != NULL; pkt = nextpkt) {
++ nextpkt = pkt-&gt;next;
++ if (PPP_PROTOCOL(pkt-&gt;data) == proto) {
++ output(0, pkt-&gt;data, pkt-&gt;length);
++ free(pkt);
++ } else {
++ if (prev == NULL)
++ pend_q = pkt;
++ else
++ prev-&gt;next = pkt;
++ prev = pkt;
++ }
++ }
++ pend_qtail = prev;
++ if (prev != NULL)
++ prev-&gt;next = NULL;
++}
++
++/*
++ * Scan a packet to decide whether it is an &quot;active&quot; packet,
++ * that is, whether it is worth bringing up the link for.
++ */
++static int
++active_packet(p, len)
++ unsigned char *p;
++ int len;
++{
++ int proto, i;
++ struct protent *protp;
++
++ if (len &lt; PPP_HDRLEN)
++ return 0;
++ proto = PPP_PROTOCOL(p);
++#ifdef PPP_FILTER
++ if (pass_filter.bf_len != 0
++ &amp;&amp; bpf_filter(pass_filter.bf_insns, p, len, len) == 0)
++ return 0;
++ if (active_filter.bf_len != 0
++ &amp;&amp; bpf_filter(active_filter.bf_insns, p, len, len) == 0)
++ return 0;
++#endif
++ for (i = 0; (protp = protocols[i]) != NULL; ++i) {
++ if (protp-&gt;protocol &lt; 0xC000 &amp;&amp; (protp-&gt;protocol &amp; ~0x8000) == proto) {
++ if (!protp-&gt;enabled_flag)
++ return 0;
++ if (protp-&gt;active_pkt == NULL)
++ return 1;
++ return (*protp-&gt;active_pkt)(p, len);
++ }
++ }
++ return 0; /* not a supported protocol !!?? */
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/pppd/demand.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1ppppppdeui64c">Added: drakx/trunk/mdk-stage1/ppp/pppd/eui64.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/eui64.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/eui64.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,40 @@
++/*
++ eui64.c - EUI64 routines for IPv6CP.
++ Copyright (C) 1999 Tommi Komulainen &lt;Tommi.Komulainen@iki.fi&gt;
++
++ Redistribution and use in source and binary forms are permitted
++ provided that the above copyright notice and this paragraph are
++ duplicated in all such forms and that any documentation,
++ advertising materials, and other materials related to such
++ distribution and use acknowledge that the software was developed
++ by Tommi Komulainen. The name of the author may not be used
++ to endorse or promote products derived from this software without
++ specific prior written permission.
++ THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
++ IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
++ WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++
++
++ $Id: eui64.c 195720 2001-06-11 11:44:34Z gc $
++*/
++
++#define RCSID &quot;$Id: eui64.c 195720 2001-06-11 11:44:34Z gc $&quot;
++
++#include &quot;pppd.h&quot;
++
++static const char rcsid[] = RCSID;
++
++/*
++ * eui64_ntoa - Make an ascii representation of an interface identifier
++ */
++char *
++eui64_ntoa(e)
++ eui64_t e;
++{
++ static char buf[32];
++
++ snprintf(buf, 32, &quot;%02x%02x:%02x%02x:%02x%02x:%02x%02x&quot;,
++ e.e8[0], e.e8[1], e.e8[2], e.e8[3],
++ e.e8[4], e.e8[5], e.e8[6], e.e8[7]);
++ return buf;
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/pppd/eui64.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1ppppppdeui64h">Added: drakx/trunk/mdk-stage1/ppp/pppd/eui64.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/eui64.h (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/eui64.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,97 @@
++/*
++ eui64.h - EUI64 routines for IPv6CP.
++ Copyright (C) 1999 Tommi Komulainen &lt;Tommi.Komulainen@iki.fi&gt;
++
++ Redistribution and use in source and binary forms are permitted
++ provided that the above copyright notice and this paragraph are
++ duplicated in all such forms and that any documentation,
++ advertising materials, and other materials related to such
++ distribution and use acknowledge that the software was developed
++ by Tommi Komulainen. The name of the author may not be used
++ to endorse or promote products derived from this software without
++ specific prior written permission.
++ THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
++ IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
++ WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++
++
++ $Id: eui64.h 195720 2001-06-11 11:44:34Z gc $
++*/
++
++#ifndef __EUI64_H__
++#define __EUI64_H__
++
++#if !defined(INET6)
++#error &quot;this file should only be included when INET6 is defined&quot;
++#endif /* not defined(INET6) */
++
++#if defined(SOL2)
++#include &lt;netinet/in.h&gt;
++
++typedef union {
++ uint8_t e8[8]; /* lower 64-bit IPv6 address */
++ uint32_t e32[2]; /* lower 64-bit IPv6 address */
++} eui64_t;
++
++/*
++ * Declare the two below, since in.h only defines them when _KERNEL
++ * is declared - which shouldn't be true when dealing with user-land programs
++ */
++#define s6_addr8 _S6_un._S6_u8
++#define s6_addr32 _S6_un._S6_u32
++
++#else /* else if not defined(SOL2) */
++
++/*
++ * TODO:
++ *
++ * Maybe this should be done by processing struct in6_addr directly...
++ */
++typedef union
++{
++ u_int8_t e8[8];
++ u_int16_t e16[4];
++ u_int32_t e32[2];
++} eui64_t;
++
++#endif /* defined(SOL2) */
++
++#define eui64_iszero(e) (((e).e32[0] | (e).e32[1]) == 0)
++#define eui64_equals(e, o) (((e).e32[0] == (o).e32[0]) &amp;&amp; \
++ ((e).e32[1] == (o).e32[1]))
++#define eui64_zero(e) (e).e32[0] = (e).e32[1] = 0;
++
++#define eui64_copy(s, d) memcpy(&amp;(d), &amp;(s), sizeof(eui64_t))
++
++#define eui64_magic(e) do { \
++ (e).e32[0] = magic(); \
++ (e).e32[1] = magic(); \
++ (e).e8[0] &amp;= ~2; \
++ } while (0)
++#define eui64_magic_nz(x) do { \
++ eui64_magic(x); \
++ } while (eui64_iszero(x))
++#define eui64_magic_ne(x, y) do { \
++ eui64_magic(x); \
++ } while (eui64_equals(x, y))
++
++#define eui64_get(ll, cp) do { \
++ eui64_copy((*cp), (ll)); \
++ (cp) += sizeof(eui64_t); \
++ } while (0)
++
++#define eui64_put(ll, cp) do { \
++ eui64_copy((ll), (*cp)); \
++ (cp) += sizeof(eui64_t); \
++ } while (0)
++
++#define eui64_set32(e, l) do { \
++ (e).e32[0] = 0; \
++ (e).e32[1] = htonl(l); \
++ } while (0)
++#define eui64_setlo32(e, l) eui64_set32(e, l)
++
++char *eui64_ntoa __P((eui64_t)); /* Returns ascii representation of id */
++
++#endif /* __EUI64_H__ */
++
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/pppd/eui64.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1ppppppdfsmc">Added: drakx/trunk/mdk-stage1/ppp/pppd/fsm.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/fsm.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/fsm.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,762 @@
++/*
++ * fsm.c - {Link, IP} Control Protocol Finite State Machine.
++ *
++ * Copyright (c) 1989 Carnegie Mellon University.
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms are permitted
++ * provided that the above copyright notice and this paragraph are
++ * duplicated in all such forms and that any documentation,
++ * advertising materials, and other materials related to such
++ * distribution and use acknowledge that the software was developed
++ * by Carnegie Mellon University. The name of the
++ * University may not be used to endorse or promote products derived
++ * from this software without specific prior written permission.
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
++ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
++ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++ */
++
++#define RCSID &quot;$Id: fsm.c 195720 2001-06-11 11:44:34Z gc $&quot;
++
++/*
++ * TODO:
++ * Randomize fsm id on link/init.
++ * Deal with variable outgoing MTU.
++ */
++
++#include &lt;stdio.h&gt;
++#include &lt;string.h&gt;
++#include &lt;sys/types.h&gt;
++
++#include &quot;pppd.h&quot;
++#include &quot;fsm.h&quot;
++
++static const char rcsid[] = RCSID;
++
++static void fsm_timeout __P((void *));
++static void fsm_rconfreq __P((fsm *, int, u_char *, int));
++static void fsm_rconfack __P((fsm *, int, u_char *, int));
++static void fsm_rconfnakrej __P((fsm *, int, int, u_char *, int));
++static void fsm_rtermreq __P((fsm *, int, u_char *, int));
++static void fsm_rtermack __P((fsm *));
++static void fsm_rcoderej __P((fsm *, u_char *, int));
++static void fsm_sconfreq __P((fsm *, int));
++
++#define PROTO_NAME(f) ((f)-&gt;callbacks-&gt;proto_name)
++
++int peer_mru[NUM_PPP];
++
++
++/*
++ * fsm_init - Initialize fsm.
++ *
++ * Initialize fsm state.
++ */
++void
++fsm_init(f)
++ fsm *f;
++{
++ f-&gt;state = INITIAL;
++ f-&gt;flags = 0;
++ f-&gt;id = 0; /* XXX Start with random id? */
++ f-&gt;timeouttime = DEFTIMEOUT;
++ f-&gt;maxconfreqtransmits = DEFMAXCONFREQS;
++ f-&gt;maxtermtransmits = DEFMAXTERMREQS;
++ f-&gt;maxnakloops = DEFMAXNAKLOOPS;
++ f-&gt;term_reason_len = 0;
++}
++
++
++/*
++ * fsm_lowerup - The lower layer is up.
++ */
++void
++fsm_lowerup(f)
++ fsm *f;
++{
++ switch( f-&gt;state ){
++ case INITIAL:
++ f-&gt;state = CLOSED;
++ break;
++
++ case STARTING:
++ if( f-&gt;flags &amp; OPT_SILENT )
++ f-&gt;state = STOPPED;
++ else {
++ /* Send an initial configure-request */
++ fsm_sconfreq(f, 0);
++ f-&gt;state = REQSENT;
++ }
++ break;
++
++ default:
++ FSMDEBUG((&quot;%s: Up event in state %d!&quot;, PROTO_NAME(f), f-&gt;state));
++ }
++}
++
++
++/*
++ * fsm_lowerdown - The lower layer is down.
++ *
++ * Cancel all timeouts and inform upper layers.
++ */
++void
++fsm_lowerdown(f)
++ fsm *f;
++{
++ switch( f-&gt;state ){
++ case CLOSED:
++ f-&gt;state = INITIAL;
++ break;
++
++ case STOPPED:
++ f-&gt;state = STARTING;
++ if( f-&gt;callbacks-&gt;starting )
++ (*f-&gt;callbacks-&gt;starting)(f);
++ break;
++
++ case CLOSING:
++ f-&gt;state = INITIAL;
++ UNTIMEOUT(fsm_timeout, f); /* Cancel timeout */
++ break;
++
++ case STOPPING:
++ case REQSENT:
++ case ACKRCVD:
++ case ACKSENT:
++ f-&gt;state = STARTING;
++ UNTIMEOUT(fsm_timeout, f); /* Cancel timeout */
++ break;
++
++ case OPENED:
++ if( f-&gt;callbacks-&gt;down )
++ (*f-&gt;callbacks-&gt;down)(f);
++ f-&gt;state = STARTING;
++ break;
++
++ default:
++ FSMDEBUG((&quot;%s: Down event in state %d!&quot;, PROTO_NAME(f), f-&gt;state));
++ }
++}
++
++
++/*
++ * fsm_open - Link is allowed to come up.
++ */
++void
++fsm_open(f)
++ fsm *f;
++{
++ switch( f-&gt;state ){
++ case INITIAL:
++ f-&gt;state = STARTING;
++ if( f-&gt;callbacks-&gt;starting )
++ (*f-&gt;callbacks-&gt;starting)(f);
++ break;
++
++ case CLOSED:
++ if( f-&gt;flags &amp; OPT_SILENT )
++ f-&gt;state = STOPPED;
++ else {
++ /* Send an initial configure-request */
++ fsm_sconfreq(f, 0);
++ f-&gt;state = REQSENT;
++ }
++ break;
++
++ case CLOSING:
++ f-&gt;state = STOPPING;
++ /* fall through */
++ case STOPPED:
++ case OPENED:
++ if( f-&gt;flags &amp; OPT_RESTART ){
++ fsm_lowerdown(f);
++ fsm_lowerup(f);
++ }
++ break;
++ }
++}
++
++
++/*
++ * fsm_close - Start closing connection.
++ *
++ * Cancel timeouts and either initiate close or possibly go directly to
++ * the CLOSED state.
++ */
++void
++fsm_close(f, reason)
++ fsm *f;
++ char *reason;
++{
++ f-&gt;term_reason = reason;
++ f-&gt;term_reason_len = (reason == NULL? 0: strlen(reason));
++ switch( f-&gt;state ){
++ case STARTING:
++ f-&gt;state = INITIAL;
++ break;
++ case STOPPED:
++ f-&gt;state = CLOSED;
++ break;
++ case STOPPING:
++ f-&gt;state = CLOSING;
++ break;
++
++ case REQSENT:
++ case ACKRCVD:
++ case ACKSENT:
++ case OPENED:
++ if( f-&gt;state != OPENED )
++ UNTIMEOUT(fsm_timeout, f); /* Cancel timeout */
++ else if( f-&gt;callbacks-&gt;down )
++ (*f-&gt;callbacks-&gt;down)(f); /* Inform upper layers we're down */
++
++ /* Init restart counter, send Terminate-Request */
++ f-&gt;retransmits = f-&gt;maxtermtransmits;
++ fsm_sdata(f, TERMREQ, f-&gt;reqid = ++f-&gt;id,
++ (u_char *) f-&gt;term_reason, f-&gt;term_reason_len);
++ TIMEOUT(fsm_timeout, f, f-&gt;timeouttime);
++ --f-&gt;retransmits;
++
++ f-&gt;state = CLOSING;
++ break;
++ }
++}
++
++
++/*
++ * fsm_timeout - Timeout expired.
++ */
++static void
++fsm_timeout(arg)
++ void *arg;
++{
++ fsm *f = (fsm *) arg;
++
++ switch (f-&gt;state) {
++ case CLOSING:
++ case STOPPING:
++ if( f-&gt;retransmits &lt;= 0 ){
++ /*
++ * We've waited for an ack long enough. Peer probably heard us.
++ */
++ f-&gt;state = (f-&gt;state == CLOSING)? CLOSED: STOPPED;
++ if( f-&gt;callbacks-&gt;finished )
++ (*f-&gt;callbacks-&gt;finished)(f);
++ } else {
++ /* Send Terminate-Request */
++ fsm_sdata(f, TERMREQ, f-&gt;reqid = ++f-&gt;id,
++ (u_char *) f-&gt;term_reason, f-&gt;term_reason_len);
++ TIMEOUT(fsm_timeout, f, f-&gt;timeouttime);
++ --f-&gt;retransmits;
++ }
++ break;
++
++ case REQSENT:
++ case ACKRCVD:
++ case ACKSENT:
++ if (f-&gt;retransmits &lt;= 0) {
++ warn(&quot;%s: timeout sending Config-Requests\n&quot;, PROTO_NAME(f));
++ f-&gt;state = STOPPED;
++ if( (f-&gt;flags &amp; OPT_PASSIVE) == 0 &amp;&amp; f-&gt;callbacks-&gt;finished )
++ (*f-&gt;callbacks-&gt;finished)(f);
++
++ } else {
++ /* Retransmit the configure-request */
++ if (f-&gt;callbacks-&gt;retransmit)
++ (*f-&gt;callbacks-&gt;retransmit)(f);
++ fsm_sconfreq(f, 1); /* Re-send Configure-Request */
++ if( f-&gt;state == ACKRCVD )
++ f-&gt;state = REQSENT;
++ }
++ break;
++
++ default:
++ FSMDEBUG((&quot;%s: Timeout event in state %d!&quot;, PROTO_NAME(f), f-&gt;state));
++ }
++}
++
++
++/*
++ * fsm_input - Input packet.
++ */
++void
++fsm_input(f, inpacket, l)
++ fsm *f;
++ u_char *inpacket;
++ int l;
++{
++ u_char *inp;
++ u_char code, id;
++ int len;
++
++ /*
++ * Parse header (code, id and length).
++ * If packet too short, drop it.
++ */
++ inp = inpacket;
++ if (l &lt; HEADERLEN) {
++ FSMDEBUG((&quot;fsm_input(%x): Rcvd short header.&quot;, f-&gt;protocol));
++ return;
++ }
++ GETCHAR(code, inp);
++ GETCHAR(id, inp);
++ GETSHORT(len, inp);
++ if (len &lt; HEADERLEN) {
++ FSMDEBUG((&quot;fsm_input(%x): Rcvd illegal length.&quot;, f-&gt;protocol));
++ return;
++ }
++ if (len &gt; l) {
++ FSMDEBUG((&quot;fsm_input(%x): Rcvd short packet.&quot;, f-&gt;protocol));
++ return;
++ }
++ len -= HEADERLEN; /* subtract header length */
++
++ if( f-&gt;state == INITIAL || f-&gt;state == STARTING ){
++ FSMDEBUG((&quot;fsm_input(%x): Rcvd packet in state %d.&quot;,
++ f-&gt;protocol, f-&gt;state));
++ return;
++ }
++
++ /*
++ * Action depends on code.
++ */
++ switch (code) {
++ case CONFREQ:
++ fsm_rconfreq(f, id, inp, len);
++ break;
++
++ case CONFACK:
++ fsm_rconfack(f, id, inp, len);
++ break;
++
++ case CONFNAK:
++ case CONFREJ:
++ fsm_rconfnakrej(f, code, id, inp, len);
++ break;
++
++ case TERMREQ:
++ fsm_rtermreq(f, id, inp, len);
++ break;
++
++ case TERMACK:
++ fsm_rtermack(f);
++ break;
++
++ case CODEREJ:
++ fsm_rcoderej(f, inp, len);
++ break;
++
++ default:
++ if( !f-&gt;callbacks-&gt;extcode
++ || !(*f-&gt;callbacks-&gt;extcode)(f, code, id, inp, len) )
++ fsm_sdata(f, CODEREJ, ++f-&gt;id, inpacket, len + HEADERLEN);
++ break;
++ }
++}
++
++
++/*
++ * fsm_rconfreq - Receive Configure-Request.
++ */
++static void
++fsm_rconfreq(f, id, inp, len)
++ fsm *f;
++ u_char id;
++ u_char *inp;
++ int len;
++{
++ int code, reject_if_disagree;
++
++ switch( f-&gt;state ){
++ case CLOSED:
++ /* Go away, we're closed */
++ fsm_sdata(f, TERMACK, id, NULL, 0);
++ return;
++ case CLOSING:
++ case STOPPING:
++ return;
++
++ case OPENED:
++ /* Go down and restart negotiation */
++ if( f-&gt;callbacks-&gt;down )
++ (*f-&gt;callbacks-&gt;down)(f); /* Inform upper layers */
++ fsm_sconfreq(f, 0); /* Send initial Configure-Request */
++ break;
++
++ case STOPPED:
++ /* Negotiation started by our peer */
++ fsm_sconfreq(f, 0); /* Send initial Configure-Request */
++ f-&gt;state = REQSENT;
++ break;
++ }
++
++ /*
++ * Pass the requested configuration options
++ * to protocol-specific code for checking.
++ */
++ if (f-&gt;callbacks-&gt;reqci){ /* Check CI */
++ reject_if_disagree = (f-&gt;nakloops &gt;= f-&gt;maxnakloops);
++ code = (*f-&gt;callbacks-&gt;reqci)(f, inp, &amp;len, reject_if_disagree);
++ } else if (len)
++ code = CONFREJ; /* Reject all CI */
++ else
++ code = CONFACK;
++
++ /* send the Ack, Nak or Rej to the peer */
++ fsm_sdata(f, code, id, inp, len);
++
++ if (code == CONFACK) {
++ if (f-&gt;state == ACKRCVD) {
++ UNTIMEOUT(fsm_timeout, f); /* Cancel timeout */
++ f-&gt;state = OPENED;
++ if (f-&gt;callbacks-&gt;up)
++ (*f-&gt;callbacks-&gt;up)(f); /* Inform upper layers */
++ } else
++ f-&gt;state = ACKSENT;
++ f-&gt;nakloops = 0;
++
++ } else {
++ /* we sent CONFACK or CONFREJ */
++ if (f-&gt;state != ACKRCVD)
++ f-&gt;state = REQSENT;
++ if( code == CONFNAK )
++ ++f-&gt;nakloops;
++ }
++}
++
++
++/*
++ * fsm_rconfack - Receive Configure-Ack.
++ */
++static void
++fsm_rconfack(f, id, inp, len)
++ fsm *f;
++ int id;
++ u_char *inp;
++ int len;
++{
++ if (id != f-&gt;reqid || f-&gt;seen_ack) /* Expected id? */
++ return; /* Nope, toss... */
++ if( !(f-&gt;callbacks-&gt;ackci? (*f-&gt;callbacks-&gt;ackci)(f, inp, len):
++ (len == 0)) ){
++ /* Ack is bad - ignore it */
++ error(&quot;Received bad configure-ack: %P&quot;, inp, len);
++ return;
++ }
++ f-&gt;seen_ack = 1;
++
++ switch (f-&gt;state) {
++ case CLOSED:
++ case STOPPED:
++ fsm_sdata(f, TERMACK, id, NULL, 0);
++ break;
++
++ case REQSENT:
++ f-&gt;state = ACKRCVD;
++ f-&gt;retransmits = f-&gt;maxconfreqtransmits;
++ break;
++
++ case ACKRCVD:
++ /* Huh? an extra valid Ack? oh well... */
++ UNTIMEOUT(fsm_timeout, f); /* Cancel timeout */
++ fsm_sconfreq(f, 0);
++ f-&gt;state = REQSENT;
++ break;
++
++ case ACKSENT:
++ UNTIMEOUT(fsm_timeout, f); /* Cancel timeout */
++ f-&gt;state = OPENED;
++ f-&gt;retransmits = f-&gt;maxconfreqtransmits;
++ if (f-&gt;callbacks-&gt;up)
++ (*f-&gt;callbacks-&gt;up)(f); /* Inform upper layers */
++ break;
++
++ case OPENED:
++ /* Go down and restart negotiation */
++ if (f-&gt;callbacks-&gt;down)
++ (*f-&gt;callbacks-&gt;down)(f); /* Inform upper layers */
++ fsm_sconfreq(f, 0); /* Send initial Configure-Request */
++ f-&gt;state = REQSENT;
++ break;
++ }
++}
++
++
++/*
++ * fsm_rconfnakrej - Receive Configure-Nak or Configure-Reject.
++ */
++static void
++fsm_rconfnakrej(f, code, id, inp, len)
++ fsm *f;
++ int code, id;
++ u_char *inp;
++ int len;
++{
++ int (*proc) __P((fsm *, u_char *, int));
++ int ret;
++
++ if (id != f-&gt;reqid || f-&gt;seen_ack) /* Expected id? */
++ return; /* Nope, toss... */
++ proc = (code == CONFNAK)? f-&gt;callbacks-&gt;nakci: f-&gt;callbacks-&gt;rejci;
++ if (!proc || !(ret = proc(f, inp, len))) {
++ /* Nak/reject is bad - ignore it */
++ error(&quot;Received bad configure-nak/rej: %P&quot;, inp, len);
++ return;
++ }
++ f-&gt;seen_ack = 1;
++
++ switch (f-&gt;state) {
++ case CLOSED:
++ case STOPPED:
++ fsm_sdata(f, TERMACK, id, NULL, 0);
++ break;
++
++ case REQSENT:
++ case ACKSENT:
++ /* They didn't agree to what we wanted - try another request */
++ UNTIMEOUT(fsm_timeout, f); /* Cancel timeout */
++ if (ret &lt; 0)
++ f-&gt;state = STOPPED; /* kludge for stopping CCP */
++ else
++ fsm_sconfreq(f, 0); /* Send Configure-Request */
++ break;
++
++ case ACKRCVD:
++ /* Got a Nak/reject when we had already had an Ack?? oh well... */
++ UNTIMEOUT(fsm_timeout, f); /* Cancel timeout */
++ fsm_sconfreq(f, 0);
++ f-&gt;state = REQSENT;
++ break;
++
++ case OPENED:
++ /* Go down and restart negotiation */
++ if (f-&gt;callbacks-&gt;down)
++ (*f-&gt;callbacks-&gt;down)(f); /* Inform upper layers */
++ fsm_sconfreq(f, 0); /* Send initial Configure-Request */
++ f-&gt;state = REQSENT;
++ break;
++ }
++}
++
++
++/*
++ * fsm_rtermreq - Receive Terminate-Req.
++ */
++static void
++fsm_rtermreq(f, id, p, len)
++ fsm *f;
++ int id;
++ u_char *p;
++ int len;
++{
++ switch (f-&gt;state) {
++ case ACKRCVD:
++ case ACKSENT:
++ f-&gt;state = REQSENT; /* Start over but keep trying */
++ break;
++
++ case OPENED:
++ if (len &gt; 0) {
++ info(&quot;%s terminated by peer (%0.*v)&quot;, PROTO_NAME(f), len, p);
++ } else
++ info(&quot;%s terminated by peer&quot;, PROTO_NAME(f));
++ if (f-&gt;callbacks-&gt;down)
++ (*f-&gt;callbacks-&gt;down)(f); /* Inform upper layers */
++ f-&gt;retransmits = 0;
++ f-&gt;state = STOPPING;
++ TIMEOUT(fsm_timeout, f, f-&gt;timeouttime);
++ break;
++ }
++
++ fsm_sdata(f, TERMACK, id, NULL, 0);
++}
++
++
++/*
++ * fsm_rtermack - Receive Terminate-Ack.
++ */
++static void
++fsm_rtermack(f)
++ fsm *f;
++{
++ switch (f-&gt;state) {
++ case CLOSING:
++ UNTIMEOUT(fsm_timeout, f);
++ f-&gt;state = CLOSED;
++ if( f-&gt;callbacks-&gt;finished )
++ (*f-&gt;callbacks-&gt;finished)(f);
++ break;
++ case STOPPING:
++ UNTIMEOUT(fsm_timeout, f);
++ f-&gt;state = STOPPED;
++ if( f-&gt;callbacks-&gt;finished )
++ (*f-&gt;callbacks-&gt;finished)(f);
++ break;
++
++ case ACKRCVD:
++ f-&gt;state = REQSENT;
++ break;
++
++ case OPENED:
++ if (f-&gt;callbacks-&gt;down)
++ (*f-&gt;callbacks-&gt;down)(f); /* Inform upper layers */
++ fsm_sconfreq(f, 0);
++ break;
++ }
++}
++
++
++/*
++ * fsm_rcoderej - Receive an Code-Reject.
++ */
++static void
++fsm_rcoderej(f, inp, len)
++ fsm *f;
++ u_char *inp;
++ int len;
++{
++ u_char code, id;
++
++ if (len &lt; HEADERLEN) {
++ FSMDEBUG((&quot;fsm_rcoderej: Rcvd short Code-Reject packet!&quot;));
++ return;
++ }
++ GETCHAR(code, inp);
++ GETCHAR(id, inp);
++ warn(&quot;%s: Rcvd Code-Reject for code %d, id %d&quot;, PROTO_NAME(f), code, id);
++
++ if( f-&gt;state == ACKRCVD )
++ f-&gt;state = REQSENT;
++}
++
++
++/*
++ * fsm_protreject - Peer doesn't speak this protocol.
++ *
++ * Treat this as a catastrophic error (RXJ-).
++ */
++void
++fsm_protreject(f)
++ fsm *f;
++{
++ switch( f-&gt;state ){
++ case CLOSING:
++ UNTIMEOUT(fsm_timeout, f); /* Cancel timeout */
++ /* fall through */
++ case CLOSED:
++ f-&gt;state = CLOSED;
++ if( f-&gt;callbacks-&gt;finished )
++ (*f-&gt;callbacks-&gt;finished)(f);
++ break;
++
++ case STOPPING:
++ case REQSENT:
++ case ACKRCVD:
++ case ACKSENT:
++ UNTIMEOUT(fsm_timeout, f); /* Cancel timeout */
++ /* fall through */
++ case STOPPED:
++ f-&gt;state = STOPPED;
++ if( f-&gt;callbacks-&gt;finished )
++ (*f-&gt;callbacks-&gt;finished)(f);
++ break;
++
++ case OPENED:
++ if( f-&gt;callbacks-&gt;down )
++ (*f-&gt;callbacks-&gt;down)(f);
++
++ /* Init restart counter, send Terminate-Request */
++ f-&gt;retransmits = f-&gt;maxtermtransmits;
++ fsm_sdata(f, TERMREQ, f-&gt;reqid = ++f-&gt;id,
++ (u_char *) f-&gt;term_reason, f-&gt;term_reason_len);
++ TIMEOUT(fsm_timeout, f, f-&gt;timeouttime);
++ --f-&gt;retransmits;
++
++ f-&gt;state = STOPPING;
++ break;
++
++ default:
++ FSMDEBUG((&quot;%s: Protocol-reject event in state %d!&quot;,
++ PROTO_NAME(f), f-&gt;state));
++ }
++}
++
++
++/*
++ * fsm_sconfreq - Send a Configure-Request.
++ */
++static void
++fsm_sconfreq(f, retransmit)
++ fsm *f;
++ int retransmit;
++{
++ u_char *outp;
++ int cilen;
++
++ if( f-&gt;state != REQSENT &amp;&amp; f-&gt;state != ACKRCVD &amp;&amp; f-&gt;state != ACKSENT ){
++ /* Not currently negotiating - reset options */
++ if( f-&gt;callbacks-&gt;resetci )
++ (*f-&gt;callbacks-&gt;resetci)(f);
++ f-&gt;nakloops = 0;
++ }
++
++ if( !retransmit ){
++ /* New request - reset retransmission counter, use new ID */
++ f-&gt;retransmits = f-&gt;maxconfreqtransmits;
++ f-&gt;reqid = ++f-&gt;id;
++ }
++
++ f-&gt;seen_ack = 0;
++
++ /*
++ * Make up the request packet
++ */
++ outp = outpacket_buf + PPP_HDRLEN + HEADERLEN;
++ if( f-&gt;callbacks-&gt;cilen &amp;&amp; f-&gt;callbacks-&gt;addci ){
++ cilen = (*f-&gt;callbacks-&gt;cilen)(f);
++ if( cilen &gt; peer_mru[f-&gt;unit] - HEADERLEN )
++ cilen = peer_mru[f-&gt;unit] - HEADERLEN;
++ if (f-&gt;callbacks-&gt;addci)
++ (*f-&gt;callbacks-&gt;addci)(f, outp, &amp;cilen);
++ } else
++ cilen = 0;
++
++ /* send the request to our peer */
++ fsm_sdata(f, CONFREQ, f-&gt;reqid, outp, cilen);
++
++ /* start the retransmit timer */
++ --f-&gt;retransmits;
++ TIMEOUT(fsm_timeout, f, f-&gt;timeouttime);
++}
++
++
++/*
++ * fsm_sdata - Send some data.
++ *
++ * Used for all packets sent to our peer by this module.
++ */
++void
++fsm_sdata(f, code, id, data, datalen)
++ fsm *f;
++ u_char code, id;
++ u_char *data;
++ int datalen;
++{
++ u_char *outp;
++ int outlen;
++
++ /* Adjust length to be smaller than MTU */
++ outp = outpacket_buf;
++ if (datalen &gt; peer_mru[f-&gt;unit] - HEADERLEN)
++ datalen = peer_mru[f-&gt;unit] - HEADERLEN;
++ if (datalen &amp;&amp; data != outp + PPP_HDRLEN + HEADERLEN)
++ BCOPY(data, outp + PPP_HDRLEN + HEADERLEN, datalen);
++ outlen = datalen + HEADERLEN;
++ MAKEHEADER(outp, f-&gt;protocol);
++ PUTCHAR(code, outp);
++ PUTCHAR(id, outp);
++ PUTSHORT(outlen, outp);
++ output(f-&gt;unit, outpacket_buf, outlen + PPP_HDRLEN);
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/pppd/fsm.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1ppppppdfsmh">Added: drakx/trunk/mdk-stage1/ppp/pppd/fsm.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/fsm.h (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/fsm.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,144 @@
++/*
++ * fsm.h - {Link, IP} Control Protocol Finite State Machine definitions.
++ *
++ * Copyright (c) 1989 Carnegie Mellon University.
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms are permitted
++ * provided that the above copyright notice and this paragraph are
++ * duplicated in all such forms and that any documentation,
++ * advertising materials, and other materials related to such
++ * distribution and use acknowledge that the software was developed
++ * by Carnegie Mellon University. The name of the
++ * University may not be used to endorse or promote products derived
++ * from this software without specific prior written permission.
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
++ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
++ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++ *
++ * $Id: fsm.h 195720 2001-06-11 11:44:34Z gc $
++ */
++
++/*
++ * Packet header = Code, id, length.
++ */
++#define HEADERLEN 4
++
++
++/*
++ * CP (LCP, IPCP, etc.) codes.
++ */
++#define CONFREQ 1 /* Configuration Request */
++#define CONFACK 2 /* Configuration Ack */
++#define CONFNAK 3 /* Configuration Nak */
++#define CONFREJ 4 /* Configuration Reject */
++#define TERMREQ 5 /* Termination Request */
++#define TERMACK 6 /* Termination Ack */
++#define CODEREJ 7 /* Code Reject */
++
++
++/*
++ * Each FSM is described by an fsm structure and fsm callbacks.
++ */
++typedef struct fsm {
++ int unit; /* Interface unit number */
++ int protocol; /* Data Link Layer Protocol field value */
++ int state; /* State */
++ int flags; /* Contains option bits */
++ u_char id; /* Current id */
++ u_char reqid; /* Current request id */
++ u_char seen_ack; /* Have received valid Ack/Nak/Rej to Req */
++ int timeouttime; /* Timeout time in milliseconds */
++ int maxconfreqtransmits; /* Maximum Configure-Request transmissions */
++ int retransmits; /* Number of retransmissions left */
++ int maxtermtransmits; /* Maximum Terminate-Request transmissions */
++ int nakloops; /* Number of nak loops since last ack */
++ int maxnakloops; /* Maximum number of nak loops tolerated */
++ struct fsm_callbacks *callbacks; /* Callback routines */
++ char *term_reason; /* Reason for closing protocol */
++ int term_reason_len; /* Length of term_reason */
++} fsm;
++
++
++typedef struct fsm_callbacks {
++ void (*resetci) /* Reset our Configuration Information */
++ __P((fsm *));
++ int (*cilen) /* Length of our Configuration Information */
++ __P((fsm *));
++ void (*addci) /* Add our Configuration Information */
++ __P((fsm *, u_char *, int *));
++ int (*ackci) /* ACK our Configuration Information */
++ __P((fsm *, u_char *, int));
++ int (*nakci) /* NAK our Configuration Information */
++ __P((fsm *, u_char *, int));
++ int (*rejci) /* Reject our Configuration Information */
++ __P((fsm *, u_char *, int));
++ int (*reqci) /* Request peer's Configuration Information */
++ __P((fsm *, u_char *, int *, int));
++ void (*up) /* Called when fsm reaches OPENED state */
++ __P((fsm *));
++ void (*down) /* Called when fsm leaves OPENED state */
++ __P((fsm *));
++ void (*starting) /* Called when we want the lower layer */
++ __P((fsm *));
++ void (*finished) /* Called when we don't want the lower layer */
++ __P((fsm *));
++ void (*protreject) /* Called when Protocol-Reject received */
++ __P((int));
++ void (*retransmit) /* Retransmission is necessary */
++ __P((fsm *));
++ int (*extcode) /* Called when unknown code received */
++ __P((fsm *, int, int, u_char *, int));
++ char *proto_name; /* String name for protocol (for messages) */
++} fsm_callbacks;
++
++
++/*
++ * Link states.
++ */
++#define INITIAL 0 /* Down, hasn't been opened */
++#define STARTING 1 /* Down, been opened */
++#define CLOSED 2 /* Up, hasn't been opened */
++#define STOPPED 3 /* Open, waiting for down event */
++#define CLOSING 4 /* Terminating the connection, not open */
++#define STOPPING 5 /* Terminating, but open */
++#define REQSENT 6 /* We've sent a Config Request */
++#define ACKRCVD 7 /* We've received a Config Ack */
++#define ACKSENT 8 /* We've sent a Config Ack */
++#define OPENED 9 /* Connection available */
++
++
++/*
++ * Flags - indicate options controlling FSM operation
++ */
++#define OPT_PASSIVE 1 /* Don't die if we don't get a response */
++#define OPT_RESTART 2 /* Treat 2nd OPEN as DOWN, UP */
++#define OPT_SILENT 4 /* Wait for peer to speak first */
++
++
++/*
++ * Timeouts.
++ */
++#define DEFTIMEOUT 3 /* Timeout time in seconds */
++#define DEFMAXTERMREQS 2 /* Maximum Terminate-Request transmissions */
++#define DEFMAXCONFREQS 10 /* Maximum Configure-Request transmissions */
++#define DEFMAXNAKLOOPS 5 /* Maximum number of nak loops */
++
++
++/*
++ * Prototypes
++ */
++void fsm_init __P((fsm *));
++void fsm_lowerup __P((fsm *));
++void fsm_lowerdown __P((fsm *));
++void fsm_open __P((fsm *));
++void fsm_close __P((fsm *, char *));
++void fsm_input __P((fsm *, u_char *, int));
++void fsm_protreject __P((fsm *));
++void fsm_sdata __P((fsm *, int, int, u_char *, int));
++
++
++/*
++ * Variables
++ */
++extern int peer_mru[]; /* currently negotiated peer MRU (per unit) */
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/pppd/fsm.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1ppppppdipcpc">Added: drakx/trunk/mdk-stage1/ppp/pppd/ipcp.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/ipcp.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/ipcp.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,2054 @@
++/*
++ * ipcp.c - PPP IP Control Protocol.
++ *
++ * Copyright (c) 1989 Carnegie Mellon University.
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms are permitted
++ * provided that the above copyright notice and this paragraph are
++ * duplicated in all such forms and that any documentation,
++ * advertising materials, and other materials related to such
++ * distribution and use acknowledge that the software was developed
++ * by Carnegie Mellon University. The name of the
++ * University may not be used to endorse or promote products derived
++ * from this software without specific prior written permission.
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
++ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
++ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++ */
++
++#define RCSID &quot;$Id: ipcp.c 198597 2002-05-13 15:34:06Z gc $&quot;
++
++/*
++ * TODO:
++ */
++
++#include &lt;stdio.h&gt;
++#include &lt;string.h&gt;
++#include &lt;stdlib.h&gt;
++#include &lt;netdb.h&gt;
++#include &lt;sys/param.h&gt;
++#include &lt;sys/types.h&gt;
++#include &lt;sys/socket.h&gt;
++#include &lt;netinet/in.h&gt;
++#include &lt;arpa/inet.h&gt;
++
++#include &quot;pppd.h&quot;
++#include &quot;fsm.h&quot;
++#include &quot;ipcp.h&quot;
++#include &quot;pathnames.h&quot;
++
++static const char rcsid[] = RCSID;
++
++/* global vars */
++ipcp_options ipcp_wantoptions[NUM_PPP]; /* Options that we want to request */
++ipcp_options ipcp_gotoptions[NUM_PPP]; /* Options that peer ack'd */
++ipcp_options ipcp_allowoptions[NUM_PPP]; /* Options we allow peer to request */
++ipcp_options ipcp_hisoptions[NUM_PPP]; /* Options that we ack'd */
++
++u_int32_t netmask = 0; /* IP netmask to set on interface */
++
++bool disable_defaultip = 0; /* Don't use hostname for default IP adrs */
++
++/* Hook for a plugin to know when IP protocol has come up */
++void (*ip_up_hook) __P((void)) = NULL;
++
++/* Hook for a plugin to know when IP protocol has come down */
++void (*ip_down_hook) __P((void)) = NULL;
++
++/* Hook for a plugin to choose the remote IP address */
++void (*ip_choose_hook) __P((u_int32_t *)) = NULL;
++
++/* local vars */
++static int default_route_set[NUM_PPP]; /* Have set up a default route */
++static int proxy_arp_set[NUM_PPP]; /* Have created proxy arp entry */
++static bool usepeerdns; /* Ask peer for DNS addrs */
++static int ipcp_is_up; /* have called np_up() */
++static bool ask_for_local; /* request our address from peer */
++static char vj_value[8]; /* string form of vj option value */
++static char netmask_str[20]; /* string form of netmask value */
++
++/*
++ * Callbacks for fsm code. (CI = Configuration Information)
++ */
++static void ipcp_resetci __P((fsm *)); /* Reset our CI */
++static int ipcp_cilen __P((fsm *)); /* Return length of our CI */
++static void ipcp_addci __P((fsm *, u_char *, int *)); /* Add our CI */
++static int ipcp_ackci __P((fsm *, u_char *, int)); /* Peer ack'd our CI */
++static int ipcp_nakci __P((fsm *, u_char *, int)); /* Peer nak'd our CI */
++static int ipcp_rejci __P((fsm *, u_char *, int)); /* Peer rej'd our CI */
++static int ipcp_reqci __P((fsm *, u_char *, int *, int)); /* Rcv CI */
++static void ipcp_up __P((fsm *)); /* We're UP */
++static void ipcp_down __P((fsm *)); /* We're DOWN */
++static void ipcp_finished __P((fsm *)); /* Don't need lower layer */
++
++fsm ipcp_fsm[NUM_PPP]; /* IPCP fsm structure */
++
++static fsm_callbacks ipcp_callbacks = { /* IPCP callback routines */
++ ipcp_resetci, /* Reset our Configuration Information */
++ ipcp_cilen, /* Length of our Configuration Information */
++ ipcp_addci, /* Add our Configuration Information */
++ ipcp_ackci, /* ACK our Configuration Information */
++ ipcp_nakci, /* NAK our Configuration Information */
++ ipcp_rejci, /* Reject our Configuration Information */
++ ipcp_reqci, /* Request peer's Configuration Information */
++ ipcp_up, /* Called when fsm reaches OPENED state */
++ ipcp_down, /* Called when fsm leaves OPENED state */
++ NULL, /* Called when we want the lower layer up */
++ ipcp_finished, /* Called when we want the lower layer down */
++ NULL, /* Called when Protocol-Reject received */
++ NULL, /* Retransmission is necessary */
++ NULL, /* Called to handle protocol-specific codes */
++ &quot;IPCP&quot; /* String name of protocol */
++};
++
++/*
++ * Command-line options.
++ */
++static int setvjslots __P((char **));
++static int setdnsaddr __P((char **));
++static int setwinsaddr __P((char **));
++static int setnetmask __P((char **));
++static int setipaddr __P((char *, char **, int));
++static void printipaddr __P((option_t *, void (*)(void *, char *,...),void *));
++
++static option_t ipcp_option_list[] = {
++ { &quot;noip&quot;, o_bool, &amp;ipcp_protent.enabled_flag,
++ &quot;Disable IP and IPCP&quot; },
++ { &quot;-ip&quot;, o_bool, &amp;ipcp_protent.enabled_flag,
++ &quot;Disable IP and IPCP&quot;, OPT_ALIAS },
++
++ { &quot;novj&quot;, o_bool, &amp;ipcp_wantoptions[0].neg_vj,
++ &quot;Disable VJ compression&quot;, OPT_A2CLR, &amp;ipcp_allowoptions[0].neg_vj },
++ { &quot;-vj&quot;, o_bool, &amp;ipcp_wantoptions[0].neg_vj,
++ &quot;Disable VJ compression&quot;, OPT_ALIAS | OPT_A2CLR,
++ &amp;ipcp_allowoptions[0].neg_vj },
++
++ { &quot;novjccomp&quot;, o_bool, &amp;ipcp_wantoptions[0].cflag,
++ &quot;Disable VJ connection-ID compression&quot;, OPT_A2CLR,
++ &amp;ipcp_allowoptions[0].cflag },
++ { &quot;-vjccomp&quot;, o_bool, &amp;ipcp_wantoptions[0].cflag,
++ &quot;Disable VJ connection-ID compression&quot;, OPT_ALIAS | OPT_A2CLR,
++ &amp;ipcp_allowoptions[0].cflag },
++
++ { &quot;vj-max-slots&quot;, o_special, (void *)setvjslots,
++ &quot;Set maximum VJ header slots&quot;,
++ OPT_PRIO | OPT_A2STRVAL | OPT_STATIC, vj_value },
++
++ { &quot;ipcp-accept-local&quot;, o_bool, &amp;ipcp_wantoptions[0].accept_local,
++ &quot;Accept peer's address for us&quot;, 1 },
++ { &quot;ipcp-accept-remote&quot;, o_bool, &amp;ipcp_wantoptions[0].accept_remote,
++ &quot;Accept peer's address for it&quot;, 1 },
++
++ { &quot;ipparam&quot;, o_string, &amp;ipparam,
++ &quot;Set ip script parameter&quot;, OPT_PRIO },
++
++ { &quot;noipdefault&quot;, o_bool, &amp;disable_defaultip,
++ &quot;Don't use name for default IP adrs&quot;, 1 },
++
++ { &quot;ms-dns&quot;, 1, (void *)setdnsaddr,
++ &quot;DNS address for the peer's use&quot; },
++ { &quot;ms-wins&quot;, 1, (void *)setwinsaddr,
++ &quot;Nameserver for SMB over TCP/IP for peer&quot; },
++
++ { &quot;ipcp-restart&quot;, o_int, &amp;ipcp_fsm[0].timeouttime,
++ &quot;Set timeout for IPCP&quot;, OPT_PRIO },
++ { &quot;ipcp-max-terminate&quot;, o_int, &amp;ipcp_fsm[0].maxtermtransmits,
++ &quot;Set max #xmits for term-reqs&quot;, OPT_PRIO },
++ { &quot;ipcp-max-configure&quot;, o_int, &amp;ipcp_fsm[0].maxconfreqtransmits,
++ &quot;Set max #xmits for conf-reqs&quot;, OPT_PRIO },
++ { &quot;ipcp-max-failure&quot;, o_int, &amp;ipcp_fsm[0].maxnakloops,
++ &quot;Set max #conf-naks for IPCP&quot;, OPT_PRIO },
++
++ { &quot;defaultroute&quot;, o_bool, &amp;ipcp_wantoptions[0].default_route,
++ &quot;Add default route&quot;, OPT_ENABLE|1, &amp;ipcp_allowoptions[0].default_route },
++ { &quot;nodefaultroute&quot;, o_bool, &amp;ipcp_allowoptions[0].default_route,
++ &quot;disable defaultroute option&quot;, OPT_A2CLR,
++ &amp;ipcp_wantoptions[0].default_route },
++ { &quot;-defaultroute&quot;, o_bool, &amp;ipcp_allowoptions[0].default_route,
++ &quot;disable defaultroute option&quot;, OPT_ALIAS | OPT_A2CLR,
++ &amp;ipcp_wantoptions[0].default_route },
++
++ { &quot;proxyarp&quot;, o_bool, &amp;ipcp_wantoptions[0].proxy_arp,
++ &quot;Add proxy ARP entry&quot;, OPT_ENABLE|1, &amp;ipcp_allowoptions[0].proxy_arp },
++ { &quot;noproxyarp&quot;, o_bool, &amp;ipcp_allowoptions[0].proxy_arp,
++ &quot;disable proxyarp option&quot;, OPT_A2CLR,
++ &amp;ipcp_wantoptions[0].proxy_arp },
++ { &quot;-proxyarp&quot;, o_bool, &amp;ipcp_allowoptions[0].proxy_arp,
++ &quot;disable proxyarp option&quot;, OPT_ALIAS | OPT_A2CLR,
++ &amp;ipcp_wantoptions[0].proxy_arp },
++
++ { &quot;usepeerdns&quot;, o_bool, &amp;usepeerdns,
++ &quot;Ask peer for DNS address(es)&quot;, 1 },
++
++ { &quot;netmask&quot;, o_special, (void *)setnetmask,
++ &quot;set netmask&quot;, OPT_PRIO | OPT_A2STRVAL | OPT_STATIC, netmask_str },
++
++ { &quot;IP addresses&quot;, o_wild, (void *) &amp;setipaddr,
++ &quot;set local and remote IP addresses&quot;,
++ OPT_NOARG | OPT_A2PRINTER, (void *) &amp;printipaddr },
++
++ { NULL }
++};
++
++/*
++ * Protocol entry points from main code.
++ */
++static void ipcp_init __P((int));
++static void ipcp_open __P((int));
++static void ipcp_close __P((int, char *));
++static void ipcp_lowerup __P((int));
++static void ipcp_lowerdown __P((int));
++static void ipcp_input __P((int, u_char *, int));
++static void ipcp_protrej __P((int));
++static int ipcp_printpkt __P((u_char *, int,
++ void (*) __P((void *, char *, ...)), void *));
++static void ip_check_options __P((void));
++static int ip_demand_conf __P((int));
++static int ip_active_pkt __P((u_char *, int));
++static void create_resolv __P((u_int32_t, u_int32_t));
++
++struct protent ipcp_protent = {
++ PPP_IPCP,
++ ipcp_init,
++ ipcp_input,
++ ipcp_protrej,
++ ipcp_lowerup,
++ ipcp_lowerdown,
++ ipcp_open,
++ ipcp_close,
++ ipcp_printpkt,
++ NULL,
++ 1,
++ &quot;IPCP&quot;,
++ &quot;IP&quot;,
++ ipcp_option_list,
++ ip_check_options,
++ ip_demand_conf,
++ ip_active_pkt
++};
++
++static void ipcp_clear_addrs __P((int, u_int32_t, u_int32_t));
++static void ipcp_script __P((char *)); /* Run an up/down script */
++static void ipcp_script_done __P((void *));
++
++/*
++ * Lengths of configuration options.
++ */
++#define CILEN_VOID 2
++#define CILEN_COMPRESS 4 /* min length for compression protocol opt. */
++#define CILEN_VJ 6 /* length for RFC1332 Van-Jacobson opt. */
++#define CILEN_ADDR 6 /* new-style single address option */
++#define CILEN_ADDRS 10 /* old-style dual address option */
++
++
++#define CODENAME(x) ((x) == CONFACK ? &quot;ACK&quot; : \
++ (x) == CONFNAK ? &quot;NAK&quot; : &quot;REJ&quot;)
++
++/*
++ * This state variable is used to ensure that we don't
++ * run an ipcp-up/down script while one is already running.
++ */
++static enum script_state {
++ s_down,
++ s_up,
++} ipcp_script_state;
++static pid_t ipcp_script_pid;
++
++/*
++ * Make a string representation of a network IP address.
++ */
++char *
++ip_ntoa(ipaddr)
++u_int32_t ipaddr;
++{
++ static char b[64];
++
++ slprintf(b, sizeof(b), &quot;%I&quot;, ipaddr);
++ return b;
++}
++
++/*
++ * Option parsing.
++ */
++
++/*
++ * setvjslots - set maximum number of connection slots for VJ compression
++ */
++static int
++setvjslots(argv)
++ char **argv;
++{
++ int value;
++
++ if (!int_option(*argv, &amp;value))
++ return 0;
++ if (value &lt; 2 || value &gt; 16) {
++ option_error(&quot;vj-max-slots value must be between 2 and 16&quot;);
++ return 0;
++ }
++ ipcp_wantoptions [0].maxslotindex =
++ ipcp_allowoptions[0].maxslotindex = value - 1;
++ slprintf(vj_value, sizeof(vj_value), &quot;%d&quot;, value);
++ return 1;
++}
++
++/*
++ * setdnsaddr - set the dns address(es)
++ */
++static int
++setdnsaddr(argv)
++ char **argv;
++{
++ u_int32_t dns;
++ struct hostent *hp;
++
++ dns = inet_addr(*argv);
++ if (dns == (u_int32_t) -1) {
++ if ((hp = gethostbyname(*argv)) == NULL) {
++ option_error(&quot;invalid address parameter '%s' for ms-dns option&quot;,
++ *argv);
++ return 0;
++ }
++ dns = *(u_int32_t *)hp-&gt;h_addr;
++ }
++
++ /* We take the last 2 values given, the 2nd-last as the primary
++ and the last as the secondary. If only one is given it
++ becomes both primary and secondary. */
++ if (ipcp_allowoptions[0].dnsaddr[1] == 0)
++ ipcp_allowoptions[0].dnsaddr[0] = dns;
++ else
++ ipcp_allowoptions[0].dnsaddr[0] = ipcp_allowoptions[0].dnsaddr[1];
++
++ /* always set the secondary address value. */
++ ipcp_allowoptions[0].dnsaddr[1] = dns;
++
++ return (1);
++}
++
++/*
++ * setwinsaddr - set the wins address(es)
++ * This is primrarly used with the Samba package under UNIX or for pointing
++ * the caller to the existing WINS server on a Windows NT platform.
++ */
++static int
++setwinsaddr(argv)
++ char **argv;
++{
++ u_int32_t wins;
++ struct hostent *hp;
++
++ wins = inet_addr(*argv);
++ if (wins == (u_int32_t) -1) {
++ if ((hp = gethostbyname(*argv)) == NULL) {
++ option_error(&quot;invalid address parameter '%s' for ms-wins option&quot;,
++ *argv);
++ return 0;
++ }
++ wins = *(u_int32_t *)hp-&gt;h_addr;
++ }
++
++ /* We take the last 2 values given, the 2nd-last as the primary
++ and the last as the secondary. If only one is given it
++ becomes both primary and secondary. */
++ if (ipcp_allowoptions[0].winsaddr[1] == 0)
++ ipcp_allowoptions[0].winsaddr[0] = wins;
++ else
++ ipcp_allowoptions[0].winsaddr[0] = ipcp_allowoptions[0].winsaddr[1];
++
++ /* always set the secondary address value. */
++ ipcp_allowoptions[0].winsaddr[1] = wins;
++
++ return (1);
++}
++
++/*
++ * setipaddr - Set the IP address
++ * If doit is 0, the call is to check whether this option is
++ * potentially an IP address specification.
++ */
++static int
++setipaddr(arg, argv, doit)
++ char *arg;
++ char **argv;
++ int doit;
++{
++ struct hostent *hp;
++ char *colon;
++ u_int32_t local, remote;
++ ipcp_options *wo = &amp;ipcp_wantoptions[0];
++ static int prio_local = 0, prio_remote = 0;
++
++ /*
++ * IP address pair separated by &quot;:&quot;.
++ */
++ if ((colon = strchr(arg, ':')) == NULL)
++ return 0;
++ if (!doit)
++ return 1;
++
++ /*
++ * If colon first character, then no local addr.
++ */
++ if (colon != arg &amp;&amp; option_priority &gt;= prio_local) {
++ *colon = '\0';
++ if ((local = inet_addr(arg)) == (u_int32_t) -1) {
++ if ((hp = gethostbyname(arg)) == NULL) {
++ option_error(&quot;unknown host: %s&quot;, arg);
++ return 0;
++ }
++ local = *(u_int32_t *)hp-&gt;h_addr;
++ }
++ if (bad_ip_adrs(local)) {
++ option_error(&quot;bad local IP address %s&quot;, ip_ntoa(local));
++ return 0;
++ }
++ if (local != 0)
++ wo-&gt;ouraddr = local;
++ *colon = ':';
++ prio_local = option_priority;
++ }
++
++ /*
++ * If colon last character, then no remote addr.
++ */
++ if (*++colon != '\0' &amp;&amp; option_priority &gt;= prio_remote) {
++ if ((remote = inet_addr(colon)) == (u_int32_t) -1) {
++ if ((hp = gethostbyname(colon)) == NULL) {
++ option_error(&quot;unknown host: %s&quot;, colon);
++ return 0;
++ }
++ remote = *(u_int32_t *)hp-&gt;h_addr;
++ if (remote_name[0] == 0)
++ strlcpy(remote_name, colon, sizeof(remote_name));
++ }
++ if (bad_ip_adrs(remote)) {
++ option_error(&quot;bad remote IP address %s&quot;, ip_ntoa(remote));
++ return 0;
++ }
++ if (remote != 0)
++ wo-&gt;hisaddr = remote;
++ prio_remote = option_priority;
++ }
++
++ return 1;
++}
++
++static void
++printipaddr(opt, printer, arg)
++ option_t *opt;
++ void (*printer) __P((void *, char *, ...));
++ void *arg;
++{
++ ipcp_options *wo = &amp;ipcp_wantoptions[0];
++
++ if (wo-&gt;ouraddr != 0)
++ printer(arg, &quot;%I&quot;, wo-&gt;ouraddr);
++ printer(arg, &quot;:&quot;);
++ if (wo-&gt;hisaddr != 0)
++ printer(arg, &quot;%I&quot;, wo-&gt;hisaddr);
++}
++
++/*
++ * setnetmask - set the netmask to be used on the interface.
++ */
++static int
++setnetmask(argv)
++ char **argv;
++{
++ u_int32_t mask;
++ int n;
++ char *p;
++
++ /*
++ * Unfortunately, if we use inet_addr, we can't tell whether
++ * a result of all 1s is an error or a valid 255.255.255.255.
++ */
++ p = *argv;
++ n = parse_dotted_ip(p, &amp;mask);
++
++ mask = htonl(mask);
++
++ if (n == 0 || p[n] != 0 || (netmask &amp; ~mask) != 0) {
++ option_error(&quot;invalid netmask value '%s'&quot;, *argv);
++ return 0;
++ }
++
++ netmask = mask;
++ slprintf(netmask_str, sizeof(netmask_str), &quot;%I&quot;, mask);
++
++ return (1);
++}
++
++int
++parse_dotted_ip(p, vp)
++ char *p;
++ u_int32_t *vp;
++{
++ int n;
++ u_int32_t v, b;
++ char *endp, *p0 = p;
++
++ v = 0;
++ for (n = 3;; --n) {
++ b = strtoul(p, &amp;endp, 0);
++ if (endp == p)
++ return 0;
++ if (b &gt; 255) {
++ if (n &lt; 3)
++ return 0;
++ /* accept e.g. 0xffffff00 */
++ *vp = b;
++ return endp - p0;
++ }
++ v |= b &lt;&lt; (n * 8);
++ p = endp;
++ if (n == 0)
++ break;
++ if (*p != '.')
++ return 0;
++ ++p;
++ }
++ *vp = v;
++ return p - p0;
++}
++
++
++/*
++ * ipcp_init - Initialize IPCP.
++ */
++static void
++ipcp_init(unit)
++ int unit;
++{
++ fsm *f = &amp;ipcp_fsm[unit];
++ ipcp_options *wo = &amp;ipcp_wantoptions[unit];
++ ipcp_options *ao = &amp;ipcp_allowoptions[unit];
++
++ f-&gt;unit = unit;
++ f-&gt;protocol = PPP_IPCP;
++ f-&gt;callbacks = &amp;ipcp_callbacks;
++ fsm_init(&amp;ipcp_fsm[unit]);
++
++ memset(wo, 0, sizeof(*wo));
++ memset(ao, 0, sizeof(*ao));
++
++ wo-&gt;neg_addr = 1;
++ wo-&gt;neg_vj = 1;
++ wo-&gt;vj_protocol = IPCP_VJ_COMP;
++ wo-&gt;maxslotindex = MAX_STATES - 1; /* really max index */
++ wo-&gt;cflag = 1;
++
++
++ /* max slots and slot-id compression are currently hardwired in */
++ /* ppp_if.c to 16 and 1, this needs to be changed (among other */
++ /* things) gmc */
++
++ ao-&gt;neg_addr = 1;
++ ao-&gt;neg_vj = 1;
++ ao-&gt;maxslotindex = MAX_STATES - 1;
++ ao-&gt;cflag = 1;
++
++ /*
++ * XXX These control whether the user may use the proxyarp
++ * and defaultroute options.
++ */
++ ao-&gt;proxy_arp = 1;
++ ao-&gt;default_route = 1;
++}
++
++
++/*
++ * ipcp_open - IPCP is allowed to come up.
++ */
++static void
++ipcp_open(unit)
++ int unit;
++{
++ fsm_open(&amp;ipcp_fsm[unit]);
++}
++
++
++/*
++ * ipcp_close - Take IPCP down.
++ */
++static void
++ipcp_close(unit, reason)
++ int unit;
++ char *reason;
++{
++ fsm_close(&amp;ipcp_fsm[unit], reason);
++}
++
++
++/*
++ * ipcp_lowerup - The lower layer is up.
++ */
++static void
++ipcp_lowerup(unit)
++ int unit;
++{
++ fsm_lowerup(&amp;ipcp_fsm[unit]);
++}
++
++
++/*
++ * ipcp_lowerdown - The lower layer is down.
++ */
++static void
++ipcp_lowerdown(unit)
++ int unit;
++{
++ fsm_lowerdown(&amp;ipcp_fsm[unit]);
++}
++
++
++/*
++ * ipcp_input - Input IPCP packet.
++ */
++static void
++ipcp_input(unit, p, len)
++ int unit;
++ u_char *p;
++ int len;
++{
++ fsm_input(&amp;ipcp_fsm[unit], p, len);
++}
++
++
++/*
++ * ipcp_protrej - A Protocol-Reject was received for IPCP.
++ *
++ * Pretend the lower layer went down, so we shut up.
++ */
++static void
++ipcp_protrej(unit)
++ int unit;
++{
++ fsm_lowerdown(&amp;ipcp_fsm[unit]);
++}
++
++
++/*
++ * ipcp_resetci - Reset our CI.
++ * Called by fsm_sconfreq, Send Configure Request.
++ */
++static void
++ipcp_resetci(f)
++ fsm *f;
++{
++ ipcp_options *wo = &amp;ipcp_wantoptions[f-&gt;unit];
++ ipcp_options *go = &amp;ipcp_gotoptions[f-&gt;unit];
++
++ wo-&gt;req_addr = wo-&gt;neg_addr &amp;&amp; ipcp_allowoptions[f-&gt;unit].neg_addr;
++ if (wo-&gt;ouraddr == 0)
++ wo-&gt;accept_local = 1;
++ if (wo-&gt;hisaddr == 0)
++ wo-&gt;accept_remote = 1;
++ wo-&gt;req_dns1 = usepeerdns; /* Request DNS addresses from the peer */
++ wo-&gt;req_dns2 = usepeerdns;
++ *go = *wo;
++ if (!ask_for_local)
++ go-&gt;ouraddr = 0;
++ if (ip_choose_hook)
++ ip_choose_hook(&amp;wo-&gt;hisaddr);
++}
++
++
++/*
++ * ipcp_cilen - Return length of our CI.
++ * Called by fsm_sconfreq, Send Configure Request.
++ */
++static int
++ipcp_cilen(f)
++ fsm *f;
++{
++ ipcp_options *go = &amp;ipcp_gotoptions[f-&gt;unit];
++ ipcp_options *wo = &amp;ipcp_wantoptions[f-&gt;unit];
++ ipcp_options *ho = &amp;ipcp_hisoptions[f-&gt;unit];
++
++#define LENCIVJ(neg, old) (neg ? (old? CILEN_COMPRESS : CILEN_VJ) : 0)
++#define LENCIADDR(neg, old) (neg ? (old? CILEN_ADDRS : CILEN_ADDR) : 0)
++#define LENCIDNS(neg) (neg ? (CILEN_ADDR) : 0)
++
++ /*
++ * First see if we want to change our options to the old
++ * forms because we have received old forms from the peer.
++ */
++ if (wo-&gt;neg_addr &amp;&amp; !go-&gt;neg_addr &amp;&amp; !go-&gt;old_addrs) {
++ /* use the old style of address negotiation */
++ go-&gt;neg_addr = 1;
++ go-&gt;old_addrs = 1;
++ }
++ if (wo-&gt;neg_vj &amp;&amp; !go-&gt;neg_vj &amp;&amp; !go-&gt;old_vj) {
++ /* try an older style of VJ negotiation */
++ /* use the old style only if the peer did */
++ if (ho-&gt;neg_vj &amp;&amp; ho-&gt;old_vj) {
++ go-&gt;neg_vj = 1;
++ go-&gt;old_vj = 1;
++ go-&gt;vj_protocol = ho-&gt;vj_protocol;
++ }
++ }
++
++ return (LENCIADDR(go-&gt;neg_addr, go-&gt;old_addrs) +
++ LENCIVJ(go-&gt;neg_vj, go-&gt;old_vj) +
++ LENCIDNS(go-&gt;req_dns1) +
++ LENCIDNS(go-&gt;req_dns2)) ;
++}
++
++
++/*
++ * ipcp_addci - Add our desired CIs to a packet.
++ * Called by fsm_sconfreq, Send Configure Request.
++ */
++static void
++ipcp_addci(f, ucp, lenp)
++ fsm *f;
++ u_char *ucp;
++ int *lenp;
++{
++ ipcp_options *go = &amp;ipcp_gotoptions[f-&gt;unit];
++ int len = *lenp;
++
++#define ADDCIVJ(opt, neg, val, old, maxslotindex, cflag) \
++ if (neg) { \
++ int vjlen = old? CILEN_COMPRESS : CILEN_VJ; \
++ if (len &gt;= vjlen) { \
++ PUTCHAR(opt, ucp); \
++ PUTCHAR(vjlen, ucp); \
++ PUTSHORT(val, ucp); \
++ if (!old) { \
++ PUTCHAR(maxslotindex, ucp); \
++ PUTCHAR(cflag, ucp); \
++ } \
++ len -= vjlen; \
++ } else \
++ neg = 0; \
++ }
++
++#define ADDCIADDR(opt, neg, old, val1, val2) \
++ if (neg) { \
++ int addrlen = (old? CILEN_ADDRS: CILEN_ADDR); \
++ if (len &gt;= addrlen) { \
++ u_int32_t l; \
++ PUTCHAR(opt, ucp); \
++ PUTCHAR(addrlen, ucp); \
++ l = ntohl(val1); \
++ PUTLONG(l, ucp); \
++ if (old) { \
++ l = ntohl(val2); \
++ PUTLONG(l, ucp); \
++ } \
++ len -= addrlen; \
++ } else \
++ neg = 0; \
++ }
++
++#define ADDCIDNS(opt, neg, addr) \
++ if (neg) { \
++ if (len &gt;= CILEN_ADDR) { \
++ u_int32_t l; \
++ PUTCHAR(opt, ucp); \
++ PUTCHAR(CILEN_ADDR, ucp); \
++ l = ntohl(addr); \
++ PUTLONG(l, ucp); \
++ len -= CILEN_ADDR; \
++ } else \
++ neg = 0; \
++ }
++
++ ADDCIADDR((go-&gt;old_addrs? CI_ADDRS: CI_ADDR), go-&gt;neg_addr,
++ go-&gt;old_addrs, go-&gt;ouraddr, go-&gt;hisaddr);
++
++ ADDCIVJ(CI_COMPRESSTYPE, go-&gt;neg_vj, go-&gt;vj_protocol, go-&gt;old_vj,
++ go-&gt;maxslotindex, go-&gt;cflag);
++
++ ADDCIDNS(CI_MS_DNS1, go-&gt;req_dns1, go-&gt;dnsaddr[0]);
++
++ ADDCIDNS(CI_MS_DNS2, go-&gt;req_dns2, go-&gt;dnsaddr[1]);
++
++ *lenp -= len;
++}
++
++
++/*
++ * ipcp_ackci - Ack our CIs.
++ * Called by fsm_rconfack, Receive Configure ACK.
++ *
++ * Returns:
++ * 0 - Ack was bad.
++ * 1 - Ack was good.
++ */
++static int
++ipcp_ackci(f, p, len)
++ fsm *f;
++ u_char *p;
++ int len;
++{
++ ipcp_options *go = &amp;ipcp_gotoptions[f-&gt;unit];
++ u_short cilen, citype, cishort;
++ u_int32_t cilong;
++ u_char cimaxslotindex, cicflag;
++
++ /*
++ * CIs must be in exactly the same order that we sent...
++ * Check packet length and CI length at each step.
++ * If we find any deviations, then this packet is bad.
++ */
++
++#define ACKCIVJ(opt, neg, val, old, maxslotindex, cflag) \
++ if (neg) { \
++ int vjlen = old? CILEN_COMPRESS : CILEN_VJ; \
++ if ((len -= vjlen) &lt; 0) \
++ goto bad; \
++ GETCHAR(citype, p); \
++ GETCHAR(cilen, p); \
++ if (cilen != vjlen || \
++ citype != opt) \
++ goto bad; \
++ GETSHORT(cishort, p); \
++ if (cishort != val) \
++ goto bad; \
++ if (!old) { \
++ GETCHAR(cimaxslotindex, p); \
++ if (cimaxslotindex != maxslotindex) \
++ goto bad; \
++ GETCHAR(cicflag, p); \
++ if (cicflag != cflag) \
++ goto bad; \
++ } \
++ }
++
++#define ACKCIADDR(opt, neg, old, val1, val2) \
++ if (neg) { \
++ int addrlen = (old? CILEN_ADDRS: CILEN_ADDR); \
++ u_int32_t l; \
++ if ((len -= addrlen) &lt; 0) \
++ goto bad; \
++ GETCHAR(citype, p); \
++ GETCHAR(cilen, p); \
++ if (cilen != addrlen || \
++ citype != opt) \
++ goto bad; \
++ GETLONG(l, p); \
++ cilong = htonl(l); \
++ if (val1 != cilong) \
++ goto bad; \
++ if (old) { \
++ GETLONG(l, p); \
++ cilong = htonl(l); \
++ if (val2 != cilong) \
++ goto bad; \
++ } \
++ }
++
++#define ACKCIDNS(opt, neg, addr) \
++ if (neg) { \
++ u_int32_t l; \
++ if ((len -= CILEN_ADDR) &lt; 0) \
++ goto bad; \
++ GETCHAR(citype, p); \
++ GETCHAR(cilen, p); \
++ if (cilen != CILEN_ADDR || citype != opt) \
++ goto bad; \
++ GETLONG(l, p); \
++ cilong = htonl(l); \
++ if (addr != cilong) \
++ goto bad; \
++ }
++
++ ACKCIADDR((go-&gt;old_addrs? CI_ADDRS: CI_ADDR), go-&gt;neg_addr,
++ go-&gt;old_addrs, go-&gt;ouraddr, go-&gt;hisaddr);
++
++ ACKCIVJ(CI_COMPRESSTYPE, go-&gt;neg_vj, go-&gt;vj_protocol, go-&gt;old_vj,
++ go-&gt;maxslotindex, go-&gt;cflag);
++
++ ACKCIDNS(CI_MS_DNS1, go-&gt;req_dns1, go-&gt;dnsaddr[0]);
++
++ ACKCIDNS(CI_MS_DNS2, go-&gt;req_dns2, go-&gt;dnsaddr[1]);
++
++ /*
++ * If there are any remaining CIs, then this packet is bad.
++ */
++ if (len != 0)
++ goto bad;
++ return (1);
++
++bad:
++ IPCPDEBUG((&quot;ipcp_ackci: received bad Ack!&quot;));
++ return (0);
++}
++
++/*
++ * ipcp_nakci - Peer has sent a NAK for some of our CIs.
++ * This should not modify any state if the Nak is bad
++ * or if IPCP is in the OPENED state.
++ * Calback from fsm_rconfnakrej - Receive Configure-Nak or Configure-Reject.
++ *
++ * Returns:
++ * 0 - Nak was bad.
++ * 1 - Nak was good.
++ */
++static int
++ipcp_nakci(f, p, len)
++ fsm *f;
++ u_char *p;
++ int len;
++{
++ ipcp_options *go = &amp;ipcp_gotoptions[f-&gt;unit];
++ u_char cimaxslotindex, cicflag;
++ u_char citype, cilen, *next;
++ u_short cishort;
++ u_int32_t ciaddr1, ciaddr2, l, cidnsaddr;
++ ipcp_options no; /* options we've seen Naks for */
++ ipcp_options try; /* options to request next time */
++
++ BZERO(&amp;no, sizeof(no));
++ try = *go;
++
++ /*
++ * Any Nak'd CIs must be in exactly the same order that we sent.
++ * Check packet length and CI length at each step.
++ * If we find any deviations, then this packet is bad.
++ */
++#define NAKCIADDR(opt, neg, old, code) \
++ if (go-&gt;neg &amp;&amp; \
++ len &gt;= (cilen = (old? CILEN_ADDRS: CILEN_ADDR)) &amp;&amp; \
++ p[1] == cilen &amp;&amp; \
++ p[0] == opt) { \
++ len -= cilen; \
++ INCPTR(2, p); \
++ GETLONG(l, p); \
++ ciaddr1 = htonl(l); \
++ if (old) { \
++ GETLONG(l, p); \
++ ciaddr2 = htonl(l); \
++ no.old_addrs = 1; \
++ } else \
++ ciaddr2 = 0; \
++ no.neg = 1; \
++ code \
++ }
++
++#define NAKCIVJ(opt, neg, code) \
++ if (go-&gt;neg &amp;&amp; \
++ ((cilen = p[1]) == CILEN_COMPRESS || cilen == CILEN_VJ) &amp;&amp; \
++ len &gt;= cilen &amp;&amp; \
++ p[0] == opt) { \
++ len -= cilen; \
++ INCPTR(2, p); \
++ GETSHORT(cishort, p); \
++ no.neg = 1; \
++ code \
++ }
++
++#define NAKCIDNS(opt, neg, code) \
++ if (go-&gt;neg &amp;&amp; \
++ ((cilen = p[1]) == CILEN_ADDR) &amp;&amp; \
++ len &gt;= cilen &amp;&amp; \
++ p[0] == opt) { \
++ len -= cilen; \
++ INCPTR(2, p); \
++ GETLONG(l, p); \
++ cidnsaddr = htonl(l); \
++ no.neg = 1; \
++ code \
++ }
++
++ /*
++ * Accept the peer's idea of {our,his} address, if different
++ * from our idea, only if the accept_{local,remote} flag is set.
++ */
++ NAKCIADDR((go-&gt;old_addrs? CI_ADDRS: CI_ADDR), neg_addr, go-&gt;old_addrs,
++ if (go-&gt;accept_local &amp;&amp; ciaddr1) { /* Do we know our address? */
++ try.ouraddr = ciaddr1;
++ }
++ if (go-&gt;accept_remote &amp;&amp; ciaddr2) { /* Does he know his? */
++ try.hisaddr = ciaddr2;
++ }
++ );
++
++ /*
++ * Accept the peer's value of maxslotindex provided that it
++ * is less than what we asked for. Turn off slot-ID compression
++ * if the peer wants. Send old-style compress-type option if
++ * the peer wants.
++ */
++ NAKCIVJ(CI_COMPRESSTYPE, neg_vj,
++ if (cilen == CILEN_VJ) {
++ GETCHAR(cimaxslotindex, p);
++ GETCHAR(cicflag, p);
++ if (cishort == IPCP_VJ_COMP) {
++ try.old_vj = 0;
++ if (cimaxslotindex &lt; go-&gt;maxslotindex)
++ try.maxslotindex = cimaxslotindex;
++ if (!cicflag)
++ try.cflag = 0;
++ } else {
++ try.neg_vj = 0;
++ }
++ } else {
++ if (cishort == IPCP_VJ_COMP || cishort == IPCP_VJ_COMP_OLD) {
++ try.old_vj = 1;
++ try.vj_protocol = cishort;
++ } else {
++ try.neg_vj = 0;
++ }
++ }
++ );
++
++ NAKCIDNS(CI_MS_DNS1, req_dns1,
++ try.dnsaddr[0] = cidnsaddr;
++ );
++
++ NAKCIDNS(CI_MS_DNS2, req_dns2,
++ try.dnsaddr[1] = cidnsaddr;
++ );
++
++ /*
++ * There may be remaining CIs, if the peer is requesting negotiation
++ * on an option that we didn't include in our request packet.
++ * If they want to negotiate about IP addresses, we comply.
++ * If they want us to ask for compression, we refuse.
++ */
++ while (len &gt; CILEN_VOID) {
++ GETCHAR(citype, p);
++ GETCHAR(cilen, p);
++ if( (len -= cilen) &lt; 0 )
++ goto bad;
++ next = p + cilen - 2;
++
++ switch (citype) {
++ case CI_COMPRESSTYPE:
++ if (go-&gt;neg_vj || no.neg_vj ||
++ (cilen != CILEN_VJ &amp;&amp; cilen != CILEN_COMPRESS))
++ goto bad;
++ no.neg_vj = 1;
++ break;
++ case CI_ADDRS:
++ if ((go-&gt;neg_addr &amp;&amp; go-&gt;old_addrs) || no.old_addrs
++ || cilen != CILEN_ADDRS)
++ goto bad;
++ try.neg_addr = 1;
++ try.old_addrs = 1;
++ GETLONG(l, p);
++ ciaddr1 = htonl(l);
++ if (ciaddr1 &amp;&amp; go-&gt;accept_local)
++ try.ouraddr = ciaddr1;
++ GETLONG(l, p);
++ ciaddr2 = htonl(l);
++ if (ciaddr2 &amp;&amp; go-&gt;accept_remote)
++ try.hisaddr = ciaddr2;
++ no.old_addrs = 1;
++ break;
++ case CI_ADDR:
++ if (go-&gt;neg_addr || no.neg_addr || cilen != CILEN_ADDR)
++ goto bad;
++ try.old_addrs = 0;
++ GETLONG(l, p);
++ ciaddr1 = htonl(l);
++ if (ciaddr1 &amp;&amp; go-&gt;accept_local)
++ try.ouraddr = ciaddr1;
++ if (try.ouraddr != 0)
++ try.neg_addr = 1;
++ no.neg_addr = 1;
++ break;
++ }
++ p = next;
++ }
++
++ /*
++ * OK, the Nak is good. Now we can update state.
++ * If there are any remaining options, we ignore them.
++ */
++ if (f-&gt;state != OPENED)
++ *go = try;
++
++ return 1;
++
++bad:
++ IPCPDEBUG((&quot;ipcp_nakci: received bad Nak!&quot;));
++ return 0;
++}
++
++
++/*
++ * ipcp_rejci - Reject some of our CIs.
++ * Callback from fsm_rconfnakrej.
++ */
++static int
++ipcp_rejci(f, p, len)
++ fsm *f;
++ u_char *p;
++ int len;
++{
++ ipcp_options *go = &amp;ipcp_gotoptions[f-&gt;unit];
++ u_char cimaxslotindex, ciflag, cilen;
++ u_short cishort;
++ u_int32_t cilong;
++ ipcp_options try; /* options to request next time */
++
++ try = *go;
++ /*
++ * Any Rejected CIs must be in exactly the same order that we sent.
++ * Check packet length and CI length at each step.
++ * If we find any deviations, then this packet is bad.
++ */
++#define REJCIADDR(opt, neg, old, val1, val2) \
++ if (go-&gt;neg &amp;&amp; \
++ len &gt;= (cilen = old? CILEN_ADDRS: CILEN_ADDR) &amp;&amp; \
++ p[1] == cilen &amp;&amp; \
++ p[0] == opt) { \
++ u_int32_t l; \
++ len -= cilen; \
++ INCPTR(2, p); \
++ GETLONG(l, p); \
++ cilong = htonl(l); \
++ /* Check rejected value. */ \
++ if (cilong != val1) \
++ goto bad; \
++ if (old) { \
++ GETLONG(l, p); \
++ cilong = htonl(l); \
++ /* Check rejected value. */ \
++ if (cilong != val2) \
++ goto bad; \
++ } \
++ try.neg = 0; \
++ }
++
++#define REJCIVJ(opt, neg, val, old, maxslot, cflag) \
++ if (go-&gt;neg &amp;&amp; \
++ p[1] == (old? CILEN_COMPRESS : CILEN_VJ) &amp;&amp; \
++ len &gt;= p[1] &amp;&amp; \
++ p[0] == opt) { \
++ len -= p[1]; \
++ INCPTR(2, p); \
++ GETSHORT(cishort, p); \
++ /* Check rejected value. */ \
++ if (cishort != val) \
++ goto bad; \
++ if (!old) { \
++ GETCHAR(cimaxslotindex, p); \
++ if (cimaxslotindex != maxslot) \
++ goto bad; \
++ GETCHAR(ciflag, p); \
++ if (ciflag != cflag) \
++ goto bad; \
++ } \
++ try.neg = 0; \
++ }
++
++#define REJCIDNS(opt, neg, dnsaddr) \
++ if (go-&gt;neg &amp;&amp; \
++ ((cilen = p[1]) == CILEN_ADDR) &amp;&amp; \
++ len &gt;= cilen &amp;&amp; \
++ p[0] == opt) { \
++ u_int32_t l; \
++ len -= cilen; \
++ INCPTR(2, p); \
++ GETLONG(l, p); \
++ cilong = htonl(l); \
++ /* Check rejected value. */ \
++ if (cilong != dnsaddr) \
++ goto bad; \
++ try.neg = 0; \
++ }
++
++
++ REJCIADDR((go-&gt;old_addrs? CI_ADDRS: CI_ADDR), neg_addr,
++ go-&gt;old_addrs, go-&gt;ouraddr, go-&gt;hisaddr);
++
++ REJCIVJ(CI_COMPRESSTYPE, neg_vj, go-&gt;vj_protocol, go-&gt;old_vj,
++ go-&gt;maxslotindex, go-&gt;cflag);
++
++ REJCIDNS(CI_MS_DNS1, req_dns1, go-&gt;dnsaddr[0]);
++
++ REJCIDNS(CI_MS_DNS2, req_dns2, go-&gt;dnsaddr[1]);
++
++ /*
++ * If there are any remaining CIs, then this packet is bad.
++ */
++ if (len != 0)
++ goto bad;
++ /*
++ * Now we can update state.
++ */
++ if (f-&gt;state != OPENED)
++ *go = try;
++ return 1;
++
++bad:
++ IPCPDEBUG((&quot;ipcp_rejci: received bad Reject!&quot;));
++ return 0;
++}
++
++
++/*
++ * ipcp_reqci - Check the peer's requested CIs and send appropriate response.
++ * Callback from fsm_rconfreq, Receive Configure Request
++ *
++ * Returns: CONFACK, CONFNAK or CONFREJ and input packet modified
++ * appropriately. If reject_if_disagree is non-zero, doesn't return
++ * CONFNAK; returns CONFREJ if it can't return CONFACK.
++ */
++static int
++ipcp_reqci(f, inp, len, reject_if_disagree)
++ fsm *f;
++ u_char *inp; /* Requested CIs */
++ int *len; /* Length of requested CIs */
++ int reject_if_disagree;
++{
++ ipcp_options *wo = &amp;ipcp_wantoptions[f-&gt;unit];
++ ipcp_options *ho = &amp;ipcp_hisoptions[f-&gt;unit];
++ ipcp_options *ao = &amp;ipcp_allowoptions[f-&gt;unit];
++ ipcp_options *go = &amp;ipcp_gotoptions[f-&gt;unit];
++ u_char *cip, *next; /* Pointer to current and next CIs */
++ u_short cilen, citype; /* Parsed len, type */
++ u_short cishort; /* Parsed short value */
++ u_int32_t tl, ciaddr1, ciaddr2;/* Parsed address values */
++ int rc = CONFACK; /* Final packet return code */
++ int orc; /* Individual option return code */
++ u_char *p; /* Pointer to next char to parse */
++ u_char *ucp = inp; /* Pointer to current output char */
++ int l = *len; /* Length left */
++ u_char maxslotindex, cflag;
++ int d;
++
++ /*
++ * Reset all his options.
++ */
++ BZERO(ho, sizeof(*ho));
++
++ /*
++ * Process all his options.
++ */
++ next = inp;
++ while (l) {
++ orc = CONFACK; /* Assume success */
++ cip = p = next; /* Remember begining of CI */
++ if (l &lt; 2 || /* Not enough data for CI header or */
++ p[1] &lt; 2 || /* CI length too small or */
++ p[1] &gt; l) { /* CI length too big? */
++ IPCPDEBUG((&quot;ipcp_reqci: bad CI length!&quot;));
++ orc = CONFREJ; /* Reject bad CI */
++ cilen = l; /* Reject till end of packet */
++ l = 0; /* Don't loop again */
++ goto endswitch;
++ }
++ GETCHAR(citype, p); /* Parse CI type */
++ GETCHAR(cilen, p); /* Parse CI length */
++ l -= cilen; /* Adjust remaining length */
++ next += cilen; /* Step to next CI */
++
++ switch (citype) { /* Check CI type */
++ case CI_ADDRS:
++ if (!ao-&gt;neg_addr ||
++ cilen != CILEN_ADDRS) { /* Check CI length */
++ orc = CONFREJ; /* Reject CI */
++ break;
++ }
++
++ /*
++ * If he has no address, or if we both have his address but
++ * disagree about it, then NAK it with our idea.
++ * In particular, if we don't know his address, but he does,
++ * then accept it.
++ */
++ GETLONG(tl, p); /* Parse source address (his) */
++ ciaddr1 = htonl(tl);
++ if (ciaddr1 != wo-&gt;hisaddr
++ &amp;&amp; (ciaddr1 == 0 || !wo-&gt;accept_remote)) {
++ orc = CONFNAK;
++ if (!reject_if_disagree) {
++ DECPTR(sizeof(u_int32_t), p);
++ tl = ntohl(wo-&gt;hisaddr);
++ PUTLONG(tl, p);
++ }
++ } else if (ciaddr1 == 0 &amp;&amp; wo-&gt;hisaddr == 0) {
++ /*
++ * If neither we nor he knows his address, reject the option.
++ */
++ orc = CONFREJ;
++ wo-&gt;req_addr = 0; /* don't NAK with 0.0.0.0 later */
++ break;
++ }
++
++ /*
++ * If he doesn't know our address, or if we both have our address
++ * but disagree about it, then NAK it with our idea.
++ */
++ GETLONG(tl, p); /* Parse desination address (ours) */
++ ciaddr2 = htonl(tl);
++ if (ciaddr2 != wo-&gt;ouraddr) {
++ if (ciaddr2 == 0 || !wo-&gt;accept_local) {
++ orc = CONFNAK;
++ if (!reject_if_disagree) {
++ DECPTR(sizeof(u_int32_t), p);
++ tl = ntohl(wo-&gt;ouraddr);
++ PUTLONG(tl, p);
++ }
++ } else {
++ go-&gt;ouraddr = ciaddr2; /* accept peer's idea */
++ }
++ }
++
++ ho-&gt;neg_addr = 1;
++ ho-&gt;old_addrs = 1;
++ ho-&gt;hisaddr = ciaddr1;
++ ho-&gt;ouraddr = ciaddr2;
++ break;
++
++ case CI_ADDR:
++ if (!ao-&gt;neg_addr ||
++ cilen != CILEN_ADDR) { /* Check CI length */
++ orc = CONFREJ; /* Reject CI */
++ break;
++ }
++
++ /*
++ * If he has no address, or if we both have his address but
++ * disagree about it, then NAK it with our idea.
++ * In particular, if we don't know his address, but he does,
++ * then accept it.
++ */
++ GETLONG(tl, p); /* Parse source address (his) */
++ ciaddr1 = htonl(tl);
++ if (ciaddr1 != wo-&gt;hisaddr
++ &amp;&amp; (ciaddr1 == 0 || !wo-&gt;accept_remote)) {
++ orc = CONFNAK;
++ if (!reject_if_disagree) {
++ DECPTR(sizeof(u_int32_t), p);
++ tl = ntohl(wo-&gt;hisaddr);
++ PUTLONG(tl, p);
++ }
++ } else if (ciaddr1 == 0 &amp;&amp; wo-&gt;hisaddr == 0) {
++ /*
++ * Don't ACK an address of 0.0.0.0 - reject it instead.
++ */
++ orc = CONFREJ;
++ wo-&gt;req_addr = 0; /* don't NAK with 0.0.0.0 later */
++ break;
++ }
++
++ ho-&gt;neg_addr = 1;
++ ho-&gt;hisaddr = ciaddr1;
++ break;
++
++ case CI_MS_DNS1:
++ case CI_MS_DNS2:
++ /* Microsoft primary or secondary DNS request */
++ d = citype == CI_MS_DNS2;
++
++ /* If we do not have a DNS address then we cannot send it */
++ if (ao-&gt;dnsaddr[d] == 0 ||
++ cilen != CILEN_ADDR) { /* Check CI length */
++ orc = CONFREJ; /* Reject CI */
++ break;
++ }
++ GETLONG(tl, p);
++ if (htonl(tl) != ao-&gt;dnsaddr[d]) {
++ DECPTR(sizeof(u_int32_t), p);
++ tl = ntohl(ao-&gt;dnsaddr[d]);
++ PUTLONG(tl, p);
++ orc = CONFNAK;
++ }
++ break;
++
++ case CI_MS_WINS1:
++ case CI_MS_WINS2:
++ /* Microsoft primary or secondary WINS request */
++ d = citype == CI_MS_WINS2;
++
++ /* If we do not have a DNS address then we cannot send it */
++ if (ao-&gt;winsaddr[d] == 0 ||
++ cilen != CILEN_ADDR) { /* Check CI length */
++ orc = CONFREJ; /* Reject CI */
++ break;
++ }
++ GETLONG(tl, p);
++ if (htonl(tl) != ao-&gt;winsaddr[d]) {
++ DECPTR(sizeof(u_int32_t), p);
++ tl = ntohl(ao-&gt;winsaddr[d]);
++ PUTLONG(tl, p);
++ orc = CONFNAK;
++ }
++ break;
++
++ case CI_COMPRESSTYPE:
++ if (!ao-&gt;neg_vj ||
++ (cilen != CILEN_VJ &amp;&amp; cilen != CILEN_COMPRESS)) {
++ orc = CONFREJ;
++ break;
++ }
++ GETSHORT(cishort, p);
++
++ if (!(cishort == IPCP_VJ_COMP ||
++ (cishort == IPCP_VJ_COMP_OLD &amp;&amp; cilen == CILEN_COMPRESS))) {
++ orc = CONFREJ;
++ break;
++ }
++
++ ho-&gt;neg_vj = 1;
++ ho-&gt;vj_protocol = cishort;
++ if (cilen == CILEN_VJ) {
++ GETCHAR(maxslotindex, p);
++ if (maxslotindex &gt; ao-&gt;maxslotindex) {
++ orc = CONFNAK;
++ if (!reject_if_disagree){
++ DECPTR(1, p);
++ PUTCHAR(ao-&gt;maxslotindex, p);
++ }
++ }
++ GETCHAR(cflag, p);
++ if (cflag &amp;&amp; !ao-&gt;cflag) {
++ orc = CONFNAK;
++ if (!reject_if_disagree){
++ DECPTR(1, p);
++ PUTCHAR(wo-&gt;cflag, p);
++ }
++ }
++ ho-&gt;maxslotindex = maxslotindex;
++ ho-&gt;cflag = cflag;
++ } else {
++ ho-&gt;old_vj = 1;
++ ho-&gt;maxslotindex = MAX_STATES - 1;
++ ho-&gt;cflag = 1;
++ }
++ break;
++
++ default:
++ orc = CONFREJ;
++ break;
++ }
++endswitch:
++ if (orc == CONFACK &amp;&amp; /* Good CI */
++ rc != CONFACK) /* but prior CI wasnt? */
++ continue; /* Don't send this one */
++
++ if (orc == CONFNAK) { /* Nak this CI? */
++ if (reject_if_disagree) /* Getting fed up with sending NAKs? */
++ orc = CONFREJ; /* Get tough if so */
++ else {
++ if (rc == CONFREJ) /* Rejecting prior CI? */
++ continue; /* Don't send this one */
++ if (rc == CONFACK) { /* Ack'd all prior CIs? */
++ rc = CONFNAK; /* Not anymore... */
++ ucp = inp; /* Backup */
++ }
++ }
++ }
++
++ if (orc == CONFREJ &amp;&amp; /* Reject this CI */
++ rc != CONFREJ) { /* but no prior ones? */
++ rc = CONFREJ;
++ ucp = inp; /* Backup */
++ }
++
++ /* Need to move CI? */
++ if (ucp != cip)
++ BCOPY(cip, ucp, cilen); /* Move it */
++
++ /* Update output pointer */
++ INCPTR(cilen, ucp);
++ }
++
++ /*
++ * If we aren't rejecting this packet, and we want to negotiate
++ * their address, and they didn't send their address, then we
++ * send a NAK with a CI_ADDR option appended. We assume the
++ * input buffer is long enough that we can append the extra
++ * option safely.
++ */
++ if (rc != CONFREJ &amp;&amp; !ho-&gt;neg_addr &amp;&amp;
++ wo-&gt;req_addr &amp;&amp; !reject_if_disagree) {
++ if (rc == CONFACK) {
++ rc = CONFNAK;
++ ucp = inp; /* reset pointer */
++ wo-&gt;req_addr = 0; /* don't ask again */
++ }
++ PUTCHAR(CI_ADDR, ucp);
++ PUTCHAR(CILEN_ADDR, ucp);
++ tl = ntohl(wo-&gt;hisaddr);
++ PUTLONG(tl, ucp);
++ }
++
++ *len = ucp - inp; /* Compute output length */
++ IPCPDEBUG((&quot;ipcp: returning Configure-%s&quot;, CODENAME(rc)));
++ return (rc); /* Return final code */
++}
++
++
++/*
++ * ip_check_options - check that any IP-related options are OK,
++ * and assign appropriate defaults.
++ */
++static void
++ip_check_options()
++{
++ struct hostent *hp;
++ u_int32_t local;
++ ipcp_options *wo = &amp;ipcp_wantoptions[0];
++
++ /*
++ * Default our local IP address based on our hostname.
++ * If local IP address already given, don't bother.
++ */
++ if (wo-&gt;ouraddr == 0 &amp;&amp; !disable_defaultip) {
++ /*
++ * Look up our hostname (possibly with domain name appended)
++ * and take the first IP address as our local IP address.
++ * If there isn't an IP address for our hostname, too bad.
++ */
++ wo-&gt;accept_local = 1; /* don't insist on this default value */
++ if ((hp = gethostbyname(hostname)) != NULL) {
++ local = *(u_int32_t *)hp-&gt;h_addr;
++ if (local != 0 &amp;&amp; !bad_ip_adrs(local))
++ wo-&gt;ouraddr = local;
++ }
++ }
++ ask_for_local = wo-&gt;ouraddr != 0 || !disable_defaultip;
++}
++
++
++/*
++ * ip_demand_conf - configure the interface as though
++ * IPCP were up, for use with dial-on-demand.
++ */
++static int
++ip_demand_conf(u)
++ int u;
++{
++ ipcp_options *wo = &amp;ipcp_wantoptions[u];
++
++ if (wo-&gt;hisaddr == 0) {
++ /* make up an arbitrary address for the peer */
++ wo-&gt;hisaddr = htonl(0x0a707070 + ifunit);
++ wo-&gt;accept_remote = 1;
++ }
++ if (wo-&gt;ouraddr == 0) {
++ /* make up an arbitrary address for us */
++ wo-&gt;ouraddr = htonl(0x0a404040 + ifunit);
++ wo-&gt;accept_local = 1;
++ ask_for_local = 0; /* don't tell the peer this address */
++ }
++ if (!sifaddr(u, wo-&gt;ouraddr, wo-&gt;hisaddr, GetMask(wo-&gt;ouraddr)))
++ return 0;
++ if (!sifup(u))
++ return 0;
++ if (!sifnpmode(u, PPP_IP, NPMODE_QUEUE))
++ return 0;
++ if (wo-&gt;default_route)
++ if (sifdefaultroute(u, wo-&gt;ouraddr, wo-&gt;hisaddr))
++ default_route_set[u] = 1;
++ if (wo-&gt;proxy_arp)
++ if (sifproxyarp(u, wo-&gt;hisaddr))
++ proxy_arp_set[u] = 1;
++
++ notice(&quot;local IP address %I&quot;, wo-&gt;ouraddr);
++ notice(&quot;remote IP address %I&quot;, wo-&gt;hisaddr);
++
++ return 1;
++}
++
++
++/*
++ * ipcp_up - IPCP has come UP.
++ *
++ * Configure the IP network interface appropriately and bring it up.
++ */
++static void
++ipcp_up(f)
++ fsm *f;
++{
++ u_int32_t mask;
++ ipcp_options *ho = &amp;ipcp_hisoptions[f-&gt;unit];
++ ipcp_options *go = &amp;ipcp_gotoptions[f-&gt;unit];
++ ipcp_options *wo = &amp;ipcp_wantoptions[f-&gt;unit];
++
++ IPCPDEBUG((&quot;ipcp: up&quot;));
++
++ /*
++ * We must have a non-zero IP address for both ends of the link.
++ */
++ if (!ho-&gt;neg_addr)
++ ho-&gt;hisaddr = wo-&gt;hisaddr;
++
++ if (go-&gt;ouraddr == 0) {
++ error(&quot;Could not determine local IP address&quot;);
++ ipcp_close(f-&gt;unit, &quot;Could not determine local IP address&quot;);
++ return;
++ }
++ if (ho-&gt;hisaddr == 0) {
++ ho-&gt;hisaddr = htonl(0x0a404040 + ifunit);
++ warn(&quot;Could not determine remote IP address: defaulting to %I&quot;,
++ ho-&gt;hisaddr);
++ }
++ script_setenv(&quot;IPLOCAL&quot;, ip_ntoa(go-&gt;ouraddr), 0);
++ script_setenv(&quot;IPREMOTE&quot;, ip_ntoa(ho-&gt;hisaddr), 1);
++
++ if (usepeerdns &amp;&amp; (go-&gt;dnsaddr[0] || go-&gt;dnsaddr[1])) {
++ script_setenv(&quot;USEPEERDNS&quot;, &quot;1&quot;, 0);
++ if (go-&gt;dnsaddr[0])
++ script_setenv(&quot;DNS1&quot;, ip_ntoa(go-&gt;dnsaddr[0]), 0);
++ if (go-&gt;dnsaddr[1])
++ script_setenv(&quot;DNS2&quot;, ip_ntoa(go-&gt;dnsaddr[1]), 0);
++ create_resolv(go-&gt;dnsaddr[0], go-&gt;dnsaddr[1]);
++ }
++
++ /*
++ * Check that the peer is allowed to use the IP address it wants.
++ */
++ if (!auth_ip_addr(f-&gt;unit, ho-&gt;hisaddr)) {
++ error(&quot;Peer is not authorized to use remote address %I&quot;, ho-&gt;hisaddr);
++ ipcp_close(f-&gt;unit, &quot;Unauthorized remote IP address&quot;);
++ return;
++ }
++
++ /* set tcp compression */
++ sifvjcomp(f-&gt;unit, ho-&gt;neg_vj, ho-&gt;cflag, ho-&gt;maxslotindex);
++
++ /*
++ * If we are doing dial-on-demand, the interface is already
++ * configured, so we put out any saved-up packets, then set the
++ * interface to pass IP packets.
++ */
++ if (demand) {
++ if (go-&gt;ouraddr != wo-&gt;ouraddr || ho-&gt;hisaddr != wo-&gt;hisaddr) {
++ ipcp_clear_addrs(f-&gt;unit, wo-&gt;ouraddr, wo-&gt;hisaddr);
++ if (go-&gt;ouraddr != wo-&gt;ouraddr) {
++ warn(&quot;Local IP address changed to %I&quot;, go-&gt;ouraddr);
++ script_setenv(&quot;OLDIPLOCAL&quot;, ip_ntoa(wo-&gt;ouraddr), 0);
++ wo-&gt;ouraddr = go-&gt;ouraddr;
++ } else
++ script_unsetenv(&quot;OLDIPLOCAL&quot;);
++ if (ho-&gt;hisaddr != wo-&gt;hisaddr) {
++ warn(&quot;Remote IP address changed to %I&quot;, ho-&gt;hisaddr);
++ script_setenv(&quot;OLDIPREMOTE&quot;, ip_ntoa(wo-&gt;hisaddr), 0);
++ wo-&gt;hisaddr = ho-&gt;hisaddr;
++ } else
++ script_unsetenv(&quot;OLDIPREMOTE&quot;);
++
++ /* Set the interface to the new addresses */
++ mask = GetMask(go-&gt;ouraddr);
++ if (!sifaddr(f-&gt;unit, go-&gt;ouraddr, ho-&gt;hisaddr, mask)) {
++ if (debug)
++ warn(&quot;Interface configuration failed&quot;);
++ ipcp_close(f-&gt;unit, &quot;Interface configuration failed&quot;);
++ return;
++ }
++
++ /* assign a default route through the interface if required */
++ if (ipcp_wantoptions[f-&gt;unit].default_route)
++ if (sifdefaultroute(f-&gt;unit, go-&gt;ouraddr, ho-&gt;hisaddr))
++ default_route_set[f-&gt;unit] = 1;
++
++ /* Make a proxy ARP entry if requested. */
++ if (ipcp_wantoptions[f-&gt;unit].proxy_arp)
++ if (sifproxyarp(f-&gt;unit, ho-&gt;hisaddr))
++ proxy_arp_set[f-&gt;unit] = 1;
++
++ }
++ demand_rexmit(PPP_IP);
++ sifnpmode(f-&gt;unit, PPP_IP, NPMODE_PASS);
++
++ } else {
++ /*
++ * Set IP addresses and (if specified) netmask.
++ */
++ mask = GetMask(go-&gt;ouraddr);
++
++#if !(defined(SVR4) &amp;&amp; (defined(SNI) || defined(__USLC__)))
++ if (!sifaddr(f-&gt;unit, go-&gt;ouraddr, ho-&gt;hisaddr, mask)) {
++ if (debug)
++ warn(&quot;Interface configuration failed&quot;);
++ ipcp_close(f-&gt;unit, &quot;Interface configuration failed&quot;);
++ return;
++ }
++#endif
++
++ /* bring the interface up for IP */
++ if (!sifup(f-&gt;unit)) {
++ if (debug)
++ warn(&quot;Interface failed to come up&quot;);
++ ipcp_close(f-&gt;unit, &quot;Interface configuration failed&quot;);
++ return;
++ }
++
++#if (defined(SVR4) &amp;&amp; (defined(SNI) || defined(__USLC__)))
++ if (!sifaddr(f-&gt;unit, go-&gt;ouraddr, ho-&gt;hisaddr, mask)) {
++ if (debug)
++ warn(&quot;Interface configuration failed&quot;);
++ ipcp_close(f-&gt;unit, &quot;Interface configuration failed&quot;);
++ return;
++ }
++#endif
++ sifnpmode(f-&gt;unit, PPP_IP, NPMODE_PASS);
++
++ /* assign a default route through the interface if required */
++ if (ipcp_wantoptions[f-&gt;unit].default_route)
++ if (sifdefaultroute(f-&gt;unit, go-&gt;ouraddr, ho-&gt;hisaddr))
++ default_route_set[f-&gt;unit] = 1;
++
++ /* Make a proxy ARP entry if requested. */
++ if (ipcp_wantoptions[f-&gt;unit].proxy_arp)
++ if (sifproxyarp(f-&gt;unit, ho-&gt;hisaddr))
++ proxy_arp_set[f-&gt;unit] = 1;
++
++ ipcp_wantoptions[0].ouraddr = go-&gt;ouraddr;
++
++ notice(&quot;local IP address %I&quot;, go-&gt;ouraddr);
++ notice(&quot;remote IP address %I&quot;, ho-&gt;hisaddr);
++ if (go-&gt;dnsaddr[0])
++ notice(&quot;primary DNS address %I&quot;, go-&gt;dnsaddr[0]);
++ if (go-&gt;dnsaddr[1])
++ notice(&quot;secondary DNS address %I&quot;, go-&gt;dnsaddr[1]);
++ }
++
++ np_up(f-&gt;unit, PPP_IP);
++ ipcp_is_up = 1;
++
++ if (ip_up_hook)
++ ip_up_hook();
++
++ /*
++ * Execute the ip-up script, like this:
++ * /etc/ppp/ip-up interface tty speed local-IP remote-IP
++ */
++ if (ipcp_script_state == s_down &amp;&amp; ipcp_script_pid == 0) {
++ ipcp_script_state = s_up;
++ ipcp_script(_PATH_IPUP);
++ }
++}
++
++
++/*
++ * ipcp_down - IPCP has gone DOWN.
++ *
++ * Take the IP network interface down, clear its addresses
++ * and delete routes through it.
++ */
++static void
++ipcp_down(f)
++ fsm *f;
++{
++ IPCPDEBUG((&quot;ipcp: down&quot;));
++ /* XXX a bit IPv4-centric here, we only need to get the stats
++ * before the interface is marked down. */
++ update_link_stats(f-&gt;unit);
++ if (ip_down_hook)
++ ip_down_hook();
++ if (ipcp_is_up) {
++ ipcp_is_up = 0;
++ np_down(f-&gt;unit, PPP_IP);
++ }
++ sifvjcomp(f-&gt;unit, 0, 0, 0);
++
++ /*
++ * If we are doing dial-on-demand, set the interface
++ * to queue up outgoing packets (for now).
++ */
++ if (demand) {
++ sifnpmode(f-&gt;unit, PPP_IP, NPMODE_QUEUE);
++ } else {
++ sifnpmode(f-&gt;unit, PPP_IP, NPMODE_DROP);
++ sifdown(f-&gt;unit);
++ ipcp_clear_addrs(f-&gt;unit, ipcp_gotoptions[f-&gt;unit].ouraddr,
++ ipcp_hisoptions[f-&gt;unit].hisaddr);
++ }
++
++ /* Execute the ip-down script */
++ if (ipcp_script_state == s_up &amp;&amp; ipcp_script_pid == 0) {
++ ipcp_script_state = s_down;
++ ipcp_script(_PATH_IPDOWN);
++ }
++}
++
++
++/*
++ * ipcp_clear_addrs() - clear the interface addresses, routes,
++ * proxy arp entries, etc.
++ */
++static void
++ipcp_clear_addrs(unit, ouraddr, hisaddr)
++ int unit;
++ u_int32_t ouraddr; /* local address */
++ u_int32_t hisaddr; /* remote address */
++{
++ if (proxy_arp_set[unit]) {
++ cifproxyarp(unit, hisaddr);
++ proxy_arp_set[unit] = 0;
++ }
++ if (default_route_set[unit]) {
++ cifdefaultroute(unit, ouraddr, hisaddr);
++ default_route_set[unit] = 0;
++ }
++ cifaddr(unit, ouraddr, hisaddr);
++}
++
++
++/*
++ * ipcp_finished - possibly shut down the lower layers.
++ */
++static void
++ipcp_finished(f)
++ fsm *f;
++{
++ np_finished(f-&gt;unit, PPP_IP);
++}
++
++
++/*
++ * ipcp_script_done - called when the ip-up or ip-down script
++ * has finished.
++ */
++static void
++ipcp_script_done(arg)
++ void *arg;
++{
++ ipcp_script_pid = 0;
++ switch (ipcp_script_state) {
++ case s_up:
++ if (ipcp_fsm[0].state != OPENED) {
++ ipcp_script_state = s_down;
++ ipcp_script(_PATH_IPDOWN);
++ }
++ break;
++ case s_down:
++ if (ipcp_fsm[0].state == OPENED) {
++ ipcp_script_state = s_up;
++ ipcp_script(_PATH_IPUP);
++ }
++ break;
++ }
++}
++
++
++/*
++ * ipcp_script - Execute a script with arguments
++ * interface-name tty-name speed local-IP remote-IP.
++ */
++static void
++ipcp_script(script)
++ char *script;
++{
++ char strspeed[32], strlocal[32], strremote[32];
++ char *argv[8];
++
++ slprintf(strspeed, sizeof(strspeed), &quot;%d&quot;, baud_rate);
++ slprintf(strlocal, sizeof(strlocal), &quot;%I&quot;, ipcp_gotoptions[0].ouraddr);
++ slprintf(strremote, sizeof(strremote), &quot;%I&quot;, ipcp_hisoptions[0].hisaddr);
++
++ argv[0] = script;
++ argv[1] = ifname;
++ argv[2] = devnam;
++ argv[3] = strspeed;
++ argv[4] = strlocal;
++ argv[5] = strremote;
++ argv[6] = ipparam;
++ argv[7] = NULL;
++ ipcp_script_pid = run_program(script, argv, 0, ipcp_script_done, NULL);
++}
++
++/*
++ * create_resolv - create the replacement resolv.conf file
++ */
++static void
++create_resolv(peerdns1, peerdns2)
++ u_int32_t peerdns1, peerdns2;
++{
++ FILE *f;
++
++ f = fopen(_PATH_RESOLV, &quot;w&quot;);
++ if (f == NULL) {
++ error(&quot;Failed to create %s: %m&quot;, _PATH_RESOLV);
++ return;
++ }
++
++ if (peerdns1)
++ fprintf(f, &quot;nameserver %s\n&quot;, ip_ntoa(peerdns1));
++
++ if (peerdns2)
++ fprintf(f, &quot;nameserver %s\n&quot;, ip_ntoa(peerdns2));
++
++ if (ferror(f))
++ error(&quot;Write failed to %s: %m&quot;, _PATH_RESOLV);
++
++ fclose(f);
++}
++
++/*
++ * ipcp_printpkt - print the contents of an IPCP packet.
++ */
++static char *ipcp_codenames[] = {
++ &quot;ConfReq&quot;, &quot;ConfAck&quot;, &quot;ConfNak&quot;, &quot;ConfRej&quot;,
++ &quot;TermReq&quot;, &quot;TermAck&quot;, &quot;CodeRej&quot;
++};
++
++static int
++ipcp_printpkt(p, plen, printer, arg)
++ u_char *p;
++ int plen;
++ void (*printer) __P((void *, char *, ...));
++ void *arg;
++{
++ int code, id, len, olen;
++ u_char *pstart, *optend;
++ u_short cishort;
++ u_int32_t cilong;
++
++ if (plen &lt; HEADERLEN)
++ return 0;
++ pstart = p;
++ GETCHAR(code, p);
++ GETCHAR(id, p);
++ GETSHORT(len, p);
++ if (len &lt; HEADERLEN || len &gt; plen)
++ return 0;
++
++ if (code &gt;= 1 &amp;&amp; code &lt;= sizeof(ipcp_codenames) / sizeof(char *))
++ printer(arg, &quot; %s&quot;, ipcp_codenames[code-1]);
++ else
++ printer(arg, &quot; code=0x%x&quot;, code);
++ printer(arg, &quot; id=0x%x&quot;, id);
++ len -= HEADERLEN;
++ switch (code) {
++ case CONFREQ:
++ case CONFACK:
++ case CONFNAK:
++ case CONFREJ:
++ /* print option list */
++ while (len &gt;= 2) {
++ GETCHAR(code, p);
++ GETCHAR(olen, p);
++ p -= 2;
++ if (olen &lt; 2 || olen &gt; len) {
++ break;
++ }
++ printer(arg, &quot; &lt;&quot;);
++ len -= olen;
++ optend = p + olen;
++ switch (code) {
++ case CI_ADDRS:
++ if (olen == CILEN_ADDRS) {
++ p += 2;
++ GETLONG(cilong, p);
++ printer(arg, &quot;addrs %I&quot;, htonl(cilong));
++ GETLONG(cilong, p);
++ printer(arg, &quot; %I&quot;, htonl(cilong));
++ }
++ break;
++ case CI_COMPRESSTYPE:
++ if (olen &gt;= CILEN_COMPRESS) {
++ p += 2;
++ GETSHORT(cishort, p);
++ printer(arg, &quot;compress &quot;);
++ switch (cishort) {
++ case IPCP_VJ_COMP:
++ printer(arg, &quot;VJ&quot;);
++ break;
++ case IPCP_VJ_COMP_OLD:
++ printer(arg, &quot;old-VJ&quot;);
++ break;
++ default:
++ printer(arg, &quot;0x%x&quot;, cishort);
++ }
++ }
++ break;
++ case CI_ADDR:
++ if (olen == CILEN_ADDR) {
++ p += 2;
++ GETLONG(cilong, p);
++ printer(arg, &quot;addr %I&quot;, htonl(cilong));
++ }
++ break;
++ case CI_MS_DNS1:
++ case CI_MS_DNS2:
++ p += 2;
++ GETLONG(cilong, p);
++ printer(arg, &quot;ms-dns%d %I&quot;, code - CI_MS_DNS1 + 1,
++ htonl(cilong));
++ break;
++ case CI_MS_WINS1:
++ case CI_MS_WINS2:
++ p += 2;
++ GETLONG(cilong, p);
++ printer(arg, &quot;ms-wins %I&quot;, htonl(cilong));
++ break;
++ }
++ while (p &lt; optend) {
++ GETCHAR(code, p);
++ printer(arg, &quot; %.2x&quot;, code);
++ }
++ printer(arg, &quot;&gt;&quot;);
++ }
++ break;
++
++ case TERMACK:
++ case TERMREQ:
++ if (len &gt; 0 &amp;&amp; *p &gt;= ' ' &amp;&amp; *p &lt; 0x7f) {
++ printer(arg, &quot; &quot;);
++ print_string((char *)p, len, printer, arg);
++ p += len;
++ len = 0;
++ }
++ break;
++ }
++
++ /* print the rest of the bytes in the packet */
++ for (; len &gt; 0; --len) {
++ GETCHAR(code, p);
++ printer(arg, &quot; %.2x&quot;, code);
++ }
++
++ return p - pstart;
++}
++
++/*
++ * ip_active_pkt - see if this IP packet is worth bringing the link up for.
++ * We don't bring the link up for IP fragments or for TCP FIN packets
++ * with no data.
++ */
++#define IP_HDRLEN 20 /* bytes */
++#define IP_OFFMASK 0x1fff
++// #define IPPROTO_TCP 6
++#define TCP_HDRLEN 20
++#define TH_FIN 0x01
++
++/*
++ * We use these macros because the IP header may be at an odd address,
++ * and some compilers might use word loads to get th_off or ip_hl.
++ */
++
++#define net_short(x) (((x)[0] &lt;&lt; 8) + (x)[1])
++#define get_iphl(x) (((unsigned char *)(x))[0] &amp; 0xF)
++#define get_ipoff(x) net_short((unsigned char *)(x) + 6)
++#define get_ipproto(x) (((unsigned char *)(x))[9])
++#define get_tcpoff(x) (((unsigned char *)(x))[12] &gt;&gt; 4)
++#define get_tcpflags(x) (((unsigned char *)(x))[13])
++
++static int
++ip_active_pkt(pkt, len)
++ u_char *pkt;
++ int len;
++{
++ u_char *tcp;
++ int hlen;
++
++ len -= PPP_HDRLEN;
++ pkt += PPP_HDRLEN;
++ if (len &lt; IP_HDRLEN)
++ return 0;
++ if ((get_ipoff(pkt) &amp; IP_OFFMASK) != 0)
++ return 0;
++ if (get_ipproto(pkt) != IPPROTO_TCP)
++ return 1;
++ hlen = get_iphl(pkt) * 4;
++ if (len &lt; hlen + TCP_HDRLEN)
++ return 0;
++ tcp = pkt + hlen;
++ if ((get_tcpflags(tcp) &amp; TH_FIN) != 0 &amp;&amp; len == hlen + get_tcpoff(tcp) * 4)
++ return 0;
++ return 1;
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/pppd/ipcp.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1ppppppdipcph">Added: drakx/trunk/mdk-stage1/ppp/pppd/ipcp.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/ipcp.h (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/ipcp.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,73 @@
++/*
++ * ipcp.h - IP Control Protocol definitions.
++ *
++ * Copyright (c) 1989 Carnegie Mellon University.
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms are permitted
++ * provided that the above copyright notice and this paragraph are
++ * duplicated in all such forms and that any documentation,
++ * advertising materials, and other materials related to such
++ * distribution and use acknowledge that the software was developed
++ * by Carnegie Mellon University. The name of the
++ * University may not be used to endorse or promote products derived
++ * from this software without specific prior written permission.
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
++ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
++ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++ *
++ * $Id: ipcp.h 195720 2001-06-11 11:44:34Z gc $
++ */
++
++/*
++ * Options.
++ */
++#define CI_ADDRS 1 /* IP Addresses */
++#define CI_COMPRESSTYPE 2 /* Compression Type */
++#define CI_ADDR 3
++
++#define CI_MS_DNS1 129 /* Primary DNS value */
++#define CI_MS_WINS1 130 /* Primary WINS value */
++#define CI_MS_DNS2 131 /* Secondary DNS value */
++#define CI_MS_WINS2 132 /* Secondary WINS value */
++
++#define MAX_STATES 16 /* from slcompress.h */
++
++#define IPCP_VJMODE_OLD 1 /* &quot;old&quot; mode (option # = 0x0037) */
++#define IPCP_VJMODE_RFC1172 2 /* &quot;old-rfc&quot;mode (option # = 0x002d) */
++#define IPCP_VJMODE_RFC1332 3 /* &quot;new-rfc&quot;mode (option # = 0x002d, */
++ /* maxslot and slot number compression) */
++
++#define IPCP_VJ_COMP 0x002d /* current value for VJ compression option*/
++#define IPCP_VJ_COMP_OLD 0x0037 /* &quot;old&quot; (i.e, broken) value for VJ */
++ /* compression option*/
++
++typedef struct ipcp_options {
++ bool neg_addr; /* Negotiate IP Address? */
++ bool old_addrs; /* Use old (IP-Addresses) option? */
++ bool req_addr; /* Ask peer to send IP address? */
++ bool default_route; /* Assign default route through interface? */
++ bool proxy_arp; /* Make proxy ARP entry for peer? */
++ bool neg_vj; /* Van Jacobson Compression? */
++ bool old_vj; /* use old (short) form of VJ option? */
++ bool accept_local; /* accept peer's value for ouraddr */
++ bool accept_remote; /* accept peer's value for hisaddr */
++ bool req_dns1; /* Ask peer to send primary DNS address? */
++ bool req_dns2; /* Ask peer to send secondary DNS address? */
++ int vj_protocol; /* protocol value to use in VJ option */
++ int maxslotindex; /* values for RFC1332 VJ compression neg. */
++ bool cflag;
++ u_int32_t ouraddr, hisaddr; /* Addresses in NETWORK BYTE ORDER */
++ u_int32_t dnsaddr[2]; /* Primary and secondary MS DNS entries */
++ u_int32_t winsaddr[2]; /* Primary and secondary MS WINS entries */
++} ipcp_options;
++
++extern fsm ipcp_fsm[];
++extern ipcp_options ipcp_wantoptions[];
++extern ipcp_options ipcp_gotoptions[];
++extern ipcp_options ipcp_allowoptions[];
++extern ipcp_options ipcp_hisoptions[];
++
++char *ip_ntoa __P((u_int32_t));
++
++extern struct protent ipcp_protent;
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/pppd/ipcp.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1ppppppdipv6cpc">Added: drakx/trunk/mdk-stage1/ppp/pppd/ipv6cp.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/ipv6cp.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/ipv6cp.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,1512 @@
++/*
++ ipv6cp.c - PPP IPV6 Control Protocol.
++ Copyright (C) 1999 Tommi Komulainen &lt;Tommi.Komulainen@iki.fi&gt;
++
++ Redistribution and use in source and binary forms are permitted
++ provided that the above copyright notice and this paragraph are
++ duplicated in all such forms. The name of the author may not be
++ used to endorse or promote products derived from this software
++ without specific prior written permission.
++ THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
++ IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
++ WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++*/
++
++/* Original version, based on RFC2023 :
++
++ Copyright (c) 1995, 1996, 1997 Francis.Dupont@inria.fr, INRIA Rocquencourt,
++ Alain.Durand@imag.fr, IMAG,
++ Jean-Luc.Richier@imag.fr, IMAG-LSR.
++
++ Copyright (c) 1998, 1999 Francis.Dupont@inria.fr, GIE DYADE,
++ Alain.Durand@imag.fr, IMAG,
++ Jean-Luc.Richier@imag.fr, IMAG-LSR.
++
++ Ce travail a été fait au sein du GIE DYADE (Groupement d'Intérêt
++ Économique ayant pour membres BULL S.A. et l'INRIA).
++
++ Ce logiciel informatique est disponible aux conditions
++ usuelles dans la recherche, c'est-à-dire qu'il peut
++ être utilisé, copié, modifié, distribué à l'unique
++ condition que ce texte soit conservé afin que
++ l'origine de ce logiciel soit reconnue.
++
++ Le nom de l'Institut National de Recherche en Informatique
++ et en Automatique (INRIA), de l'IMAG, ou d'une personne morale
++ ou physique ayant participé à l'élaboration de ce logiciel ne peut
++ être utilisé sans son accord préalable explicite.
++
++ Ce logiciel est fourni tel quel sans aucune garantie,
++ support ou responsabilité d'aucune sorte.
++ Ce logiciel est dérivé de sources d'origine
++ &quot;University of California at Berkeley&quot; et
++ &quot;Digital Equipment Corporation&quot; couvertes par des copyrights.
++
++ L'Institut d'Informatique et de Mathématiques Appliquées de Grenoble (IMAG)
++ est une fédération d'unités mixtes de recherche du CNRS, de l'Institut National
++ Polytechnique de Grenoble et de l'Université Joseph Fourier regroupant
++ sept laboratoires dont le laboratoire Logiciels, Systèmes, Réseaux (LSR).
++
++ This work has been done in the context of GIE DYADE (joint R &amp; D venture
++ between BULL S.A. and INRIA).
++
++ This software is available with usual &quot;research&quot; terms
++ with the aim of retain credits of the software.
++ Permission to use, copy, modify and distribute this software for any
++ purpose and without fee is hereby granted, provided that the above
++ copyright notice and this permission notice appear in all copies,
++ and the name of INRIA, IMAG, or any contributor not be used in advertising
++ or publicity pertaining to this material without the prior explicit
++ permission. The software is provided &quot;as is&quot; without any
++ warranties, support or liabilities of any kind.
++ This software is derived from source code from
++ &quot;University of California at Berkeley&quot; and
++ &quot;Digital Equipment Corporation&quot; protected by copyrights.
++
++ Grenoble's Institute of Computer Science and Applied Mathematics (IMAG)
++ is a federation of seven research units funded by the CNRS, National
++ Polytechnic Institute of Grenoble and University Joseph Fourier.
++ The research unit in Software, Systems, Networks (LSR) is member of IMAG.
++*/
++
++/*
++ * Derived from :
++ *
++ *
++ * ipcp.c - PPP IP Control Protocol.
++ *
++ * Copyright (c) 1989 Carnegie Mellon University.
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms are permitted
++ * provided that the above copyright notice and this paragraph are
++ * duplicated in all such forms and that any documentation,
++ * advertising materials, and other materials related to such
++ * distribution and use acknowledge that the software was developed
++ * by Carnegie Mellon University. The name of the
++ * University may not be used to endorse or promote products derived
++ * from this software without specific prior written permission.
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
++ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
++ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++ *
++ * $Id: ipv6cp.c 215411 2007-04-25 12:26:16Z pixel $
++ */
++
++#define RCSID &quot;$Id: ipv6cp.c 215411 2007-04-25 12:26:16Z pixel $&quot;
++
++/*
++ * TODO:
++ *
++ * Proxy Neighbour Discovery.
++ *
++ * Better defines for selecting the ordering of
++ * interface up / set address. (currently checks for __linux__,
++ * since SVR4 &amp;&amp; (SNI || __USLC__) didn't work properly)
++ */
++
++#include &lt;stdio.h&gt;
++#include &lt;string.h&gt;
++#include &lt;unistd.h&gt;
++#include &lt;netdb.h&gt;
++#include &lt;sys/param.h&gt;
++#include &lt;sys/types.h&gt;
++#include &lt;sys/socket.h&gt;
++#include &lt;netinet/in.h&gt;
++#include &lt;arpa/inet.h&gt;
++
++#include &quot;pppd.h&quot;
++#include &quot;fsm.h&quot;
++#include &quot;ipcp.h&quot;
++#include &quot;ipv6cp.h&quot;
++#include &quot;magic.h&quot;
++#include &quot;pathnames.h&quot;
++
++static const char rcsid[] = RCSID;
++
++/* global vars */
++ipv6cp_options ipv6cp_wantoptions[NUM_PPP]; /* Options that we want to request */
++ipv6cp_options ipv6cp_gotoptions[NUM_PPP]; /* Options that peer ack'd */
++ipv6cp_options ipv6cp_allowoptions[NUM_PPP]; /* Options we allow peer to request */
++ipv6cp_options ipv6cp_hisoptions[NUM_PPP]; /* Options that we ack'd */
++int no_ifaceid_neg = 0;
++
++/* local vars */
++static int ipv6cp_is_up;
++
++/*
++ * Callbacks for fsm code. (CI = Configuration Information)
++ */
++static void ipv6cp_resetci __P((fsm *)); /* Reset our CI */
++static int ipv6cp_cilen __P((fsm *)); /* Return length of our CI */
++static void ipv6cp_addci __P((fsm *, u_char *, int *)); /* Add our CI */
++static int ipv6cp_ackci __P((fsm *, u_char *, int)); /* Peer ack'd our CI */
++static int ipv6cp_nakci __P((fsm *, u_char *, int)); /* Peer nak'd our CI */
++static int ipv6cp_rejci __P((fsm *, u_char *, int)); /* Peer rej'd our CI */
++static int ipv6cp_reqci __P((fsm *, u_char *, int *, int)); /* Rcv CI */
++static void ipv6cp_up __P((fsm *)); /* We're UP */
++static void ipv6cp_down __P((fsm *)); /* We're DOWN */
++static void ipv6cp_finished __P((fsm *)); /* Don't need lower layer */
++
++fsm ipv6cp_fsm[NUM_PPP]; /* IPV6CP fsm structure */
++
++static fsm_callbacks ipv6cp_callbacks = { /* IPV6CP callback routines */
++ ipv6cp_resetci, /* Reset our Configuration Information */
++ ipv6cp_cilen, /* Length of our Configuration Information */
++ ipv6cp_addci, /* Add our Configuration Information */
++ ipv6cp_ackci, /* ACK our Configuration Information */
++ ipv6cp_nakci, /* NAK our Configuration Information */
++ ipv6cp_rejci, /* Reject our Configuration Information */
++ ipv6cp_reqci, /* Request peer's Configuration Information */
++ ipv6cp_up, /* Called when fsm reaches OPENED state */
++ ipv6cp_down, /* Called when fsm leaves OPENED state */
++ NULL, /* Called when we want the lower layer up */
++ ipv6cp_finished, /* Called when we want the lower layer down */
++ NULL, /* Called when Protocol-Reject received */
++ NULL, /* Retransmission is necessary */
++ NULL, /* Called to handle protocol-specific codes */
++ &quot;IPV6CP&quot; /* String name of protocol */
++};
++
++/*
++ * Command-line options.
++ */
++static int setifaceid __P((char **arg));
++static void printifaceid __P((option_t *,
++ void (*)(void *, char *, ...), void *));
++
++static option_t ipv6cp_option_list[] = {
++ { &quot;ipv6&quot;, o_special, (void *)setifaceid,
++ &quot;Set interface identifiers for IPV6&quot;,
++ OPT_A2PRINTER, (void *)printifaceid },
++
++ { &quot;+ipv6&quot;, o_bool, &amp;ipv6cp_protent.enabled_flag,
++ &quot;Enable IPv6 and IPv6CP&quot;, OPT_PRIO | 1 },
++ { &quot;noipv6&quot;, o_bool, &amp;ipv6cp_protent.enabled_flag,
++ &quot;Disable IPv6 and IPv6CP&quot;, OPT_PRIOSUB },
++ { &quot;-ipv6&quot;, o_bool, &amp;ipv6cp_protent.enabled_flag,
++ &quot;Disable IPv6 and IPv6CP&quot;, OPT_PRIOSUB | OPT_ALIAS },
++
++ { &quot;ipv6cp-accept-local&quot;, o_bool, &amp;ipv6cp_allowoptions[0].accept_local,
++ &quot;Accept peer's interface identifier for us&quot;, 1 },
++
++ { &quot;ipv6cp-use-ipaddr&quot;, o_bool, &amp;ipv6cp_allowoptions[0].use_ip,
++ &quot;Use (default) IPv4 address as interface identifier&quot;, 1 },
++
++#if defined(SOL2)
++ { &quot;ipv6cp-use-persistent&quot;, o_bool, &amp;ipv6cp_wantoptions[0].use_persistent,
++ &quot;Use uniquely-available persistent value for link local address&quot;, 1 },
++#endif /* defined(SOL2) */
++
++ { &quot;ipv6cp-restart&quot;, o_int, &amp;ipv6cp_fsm[0].timeouttime,
++ &quot;Set timeout for IPv6CP&quot;, OPT_PRIO },
++ { &quot;ipv6cp-max-terminate&quot;, o_int, &amp;ipv6cp_fsm[0].maxtermtransmits,
++ &quot;Set max #xmits for term-reqs&quot;, OPT_PRIO },
++ { &quot;ipv6cp-max-configure&quot;, o_int, &amp;ipv6cp_fsm[0].maxconfreqtransmits,
++ &quot;Set max #xmits for conf-reqs&quot;, OPT_PRIO },
++ { &quot;ipv6cp-max-failure&quot;, o_int, &amp;ipv6cp_fsm[0].maxnakloops,
++ &quot;Set max #conf-naks for IPv6CP&quot;, OPT_PRIO },
++
++ { NULL }
++};
++
++
++/*
++ * Protocol entry points from main code.
++ */
++static void ipv6cp_init __P((int));
++static void ipv6cp_open __P((int));
++static void ipv6cp_close __P((int, char *));
++static void ipv6cp_lowerup __P((int));
++static void ipv6cp_lowerdown __P((int));
++static void ipv6cp_input __P((int, u_char *, int));
++static void ipv6cp_protrej __P((int));
++static int ipv6cp_printpkt __P((u_char *, int,
++ void (*) __P((void *, char *, ...)), void *));
++static void ipv6_check_options __P((void));
++static int ipv6_demand_conf __P((int));
++static int ipv6_active_pkt __P((u_char *, int));
++
++struct protent ipv6cp_protent = {
++ PPP_IPV6CP,
++ ipv6cp_init,
++ ipv6cp_input,
++ ipv6cp_protrej,
++ ipv6cp_lowerup,
++ ipv6cp_lowerdown,
++ ipv6cp_open,
++ ipv6cp_close,
++ ipv6cp_printpkt,
++ NULL,
++ 0,
++ &quot;IPV6CP&quot;,
++ &quot;IPV6&quot;,
++ ipv6cp_option_list,
++ ipv6_check_options,
++ ipv6_demand_conf,
++ ipv6_active_pkt
++};
++
++static void ipv6cp_clear_addrs __P((int, eui64_t, eui64_t));
++static void ipv6cp_script __P((char *));
++static void ipv6cp_script_done __P((void *));
++
++/*
++ * Lengths of configuration options.
++ */
++#define CILEN_VOID 2
++#define CILEN_COMPRESS 4 /* length for RFC2023 compress opt. */
++#define CILEN_IFACEID 10 /* RFC2472, interface identifier */
++
++#define CODENAME(x) ((x) == CONFACK ? &quot;ACK&quot; : \
++ (x) == CONFNAK ? &quot;NAK&quot; : &quot;REJ&quot;)
++
++/*
++ * This state variable is used to ensure that we don't
++ * run an ipcp-up/down script while one is already running.
++ */
++static enum script_state {
++ s_down,
++ s_up,
++} ipv6cp_script_state;
++static pid_t ipv6cp_script_pid;
++
++/*
++ * setifaceid - set the interface identifiers manually
++ */
++static int
++setifaceid(argv)
++ char **argv;
++{
++ char *comma, *arg, c;
++ ipv6cp_options *wo = &amp;ipv6cp_wantoptions[0];
++ struct in6_addr addr;
++ static int prio_local, prio_remote;
++
++#define VALIDID(a) ( (((a).s6_addr32[0] == 0) &amp;&amp; ((a).s6_addr32[1] == 0)) &amp;&amp; \
++ (((a).s6_addr32[2] != 0) || ((a).s6_addr32[3] != 0)) )
++
++ arg = *argv;
++ if ((comma = strchr(arg, ',')) == NULL)
++ comma = arg + strlen(arg);
++
++ /*
++ * If comma first character, then no local identifier
++ */
++ if (comma != arg) {
++ c = *comma;
++ *comma = '\0';
++
++ if (inet_pton(AF_INET6, arg, &amp;addr) == 0 || !VALIDID(addr)) {
++ option_error(&quot;Illegal interface identifier (local): %s&quot;, arg);
++ return 0;
++ }
++
++ if (option_priority &gt;= prio_local) {
++ eui64_copy(addr.s6_addr32[2], wo-&gt;ourid);
++ wo-&gt;opt_local = 1;
++ prio_local = option_priority;
++ }
++ *comma = c;
++ }
++
++ /*
++ * If comma last character, the no remote identifier
++ */
++ if (*comma != 0 &amp;&amp; *++comma != '\0') {
++ if (inet_pton(AF_INET6, comma, &amp;addr) == 0 || !VALIDID(addr)) {
++ option_error(&quot;Illegal interface identifier (remote): %s&quot;, comma);
++ return 0;
++ }
++ if (option_priority &gt;= prio_remote) {
++ eui64_copy(addr.s6_addr32[2], wo-&gt;hisid);
++ wo-&gt;opt_remote = 1;
++ prio_remote = option_priority;
++ }
++ }
++
++ if (override_value(&quot;+ipv6&quot;, option_priority, option_source))
++ ipv6cp_protent.enabled_flag = 1;
++ return 1;
++}
++
++static void
++printifaceid(opt, printer, arg)
++ option_t *opt;
++ void (*printer) __P((void *, char *, ...));
++ void *arg;
++{
++ ipv6cp_options *wo = &amp;ipv6cp_wantoptions[0];
++
++ if (wo-&gt;opt_local)
++ printer(arg, &quot;%s&quot;, llv6_ntoa(wo-&gt;ourid));
++ printer(arg, &quot;,&quot;);
++ if (wo-&gt;opt_remote)
++ printer(arg, &quot;%s&quot;, llv6_ntoa(wo-&gt;hisid));
++}
++
++/*
++ * Make a string representation of a network address.
++ */
++char *
++llv6_ntoa(ifaceid)
++ eui64_t ifaceid;
++{
++ static char b[64];
++
++ sprintf(b, &quot;fe80::%s&quot;, eui64_ntoa(ifaceid));
++ return b;
++}
++
++
++/*
++ * ipv6cp_init - Initialize IPV6CP.
++ */
++static void
++ipv6cp_init(unit)
++ int unit;
++{
++ fsm *f = &amp;ipv6cp_fsm[unit];
++ ipv6cp_options *wo = &amp;ipv6cp_wantoptions[unit];
++ ipv6cp_options *ao = &amp;ipv6cp_allowoptions[unit];
++
++ f-&gt;unit = unit;
++ f-&gt;protocol = PPP_IPV6CP;
++ f-&gt;callbacks = &amp;ipv6cp_callbacks;
++ fsm_init(&amp;ipv6cp_fsm[unit]);
++
++ memset(wo, 0, sizeof(*wo));
++ memset(ao, 0, sizeof(*ao));
++
++ wo-&gt;accept_local = 1;
++ wo-&gt;neg_ifaceid = 1;
++ ao-&gt;neg_ifaceid = 1;
++
++#ifdef IPV6CP_COMP
++ wo-&gt;neg_vj = 1;
++ ao-&gt;neg_vj = 1;
++ wo-&gt;vj_protocol = IPV6CP_COMP;
++#endif
++
++}
++
++
++/*
++ * ipv6cp_open - IPV6CP is allowed to come up.
++ */
++static void
++ipv6cp_open(unit)
++ int unit;
++{
++ fsm_open(&amp;ipv6cp_fsm[unit]);
++}
++
++
++/*
++ * ipv6cp_close - Take IPV6CP down.
++ */
++static void
++ipv6cp_close(unit, reason)
++ int unit;
++ char *reason;
++{
++ fsm_close(&amp;ipv6cp_fsm[unit], reason);
++}
++
++
++/*
++ * ipv6cp_lowerup - The lower layer is up.
++ */
++static void
++ipv6cp_lowerup(unit)
++ int unit;
++{
++ fsm_lowerup(&amp;ipv6cp_fsm[unit]);
++}
++
++
++/*
++ * ipv6cp_lowerdown - The lower layer is down.
++ */
++static void
++ipv6cp_lowerdown(unit)
++ int unit;
++{
++ fsm_lowerdown(&amp;ipv6cp_fsm[unit]);
++}
++
++
++/*
++ * ipv6cp_input - Input IPV6CP packet.
++ */
++static void
++ipv6cp_input(unit, p, len)
++ int unit;
++ u_char *p;
++ int len;
++{
++ fsm_input(&amp;ipv6cp_fsm[unit], p, len);
++}
++
++
++/*
++ * ipv6cp_protrej - A Protocol-Reject was received for IPV6CP.
++ *
++ * Pretend the lower layer went down, so we shut up.
++ */
++static void
++ipv6cp_protrej(unit)
++ int unit;
++{
++ fsm_lowerdown(&amp;ipv6cp_fsm[unit]);
++}
++
++
++/*
++ * ipv6cp_resetci - Reset our CI.
++ */
++static void
++ipv6cp_resetci(f)
++ fsm *f;
++{
++ ipv6cp_options *wo = &amp;ipv6cp_wantoptions[f-&gt;unit];
++ ipv6cp_options *go = &amp;ipv6cp_gotoptions[f-&gt;unit];
++
++ wo-&gt;req_ifaceid = wo-&gt;neg_ifaceid &amp;&amp; ipv6cp_allowoptions[f-&gt;unit].neg_ifaceid;
++
++ if (!wo-&gt;opt_local) {
++ eui64_magic_nz(wo-&gt;ourid);
++ }
++
++ *go = *wo;
++ eui64_zero(go-&gt;hisid); /* last proposed interface identifier */
++}
++
++
++/*
++ * ipv6cp_cilen - Return length of our CI.
++ */
++static int
++ipv6cp_cilen(f)
++ fsm *f;
++{
++ ipv6cp_options *go = &amp;ipv6cp_gotoptions[f-&gt;unit];
++
++#define LENCIVJ(neg) (neg ? CILEN_COMPRESS : 0)
++#define LENCIIFACEID(neg) (neg ? CILEN_IFACEID : 0)
++
++ return (LENCIIFACEID(go-&gt;neg_ifaceid) +
++ LENCIVJ(go-&gt;neg_vj));
++}
++
++
++/*
++ * ipv6cp_addci - Add our desired CIs to a packet.
++ */
++static void
++ipv6cp_addci(f, ucp, lenp)
++ fsm *f;
++ u_char *ucp;
++ int *lenp;
++{
++ ipv6cp_options *go = &amp;ipv6cp_gotoptions[f-&gt;unit];
++ int len = *lenp;
++
++#define ADDCIVJ(opt, neg, val) \
++ if (neg) { \
++ int vjlen = CILEN_COMPRESS; \
++ if (len &gt;= vjlen) { \
++ PUTCHAR(opt, ucp); \
++ PUTCHAR(vjlen, ucp); \
++ PUTSHORT(val, ucp); \
++ len -= vjlen; \
++ } else \
++ neg = 0; \
++ }
++
++#define ADDCIIFACEID(opt, neg, val1) \
++ if (neg) { \
++ int idlen = CILEN_IFACEID; \
++ if (len &gt;= idlen) { \
++ PUTCHAR(opt, ucp); \
++ PUTCHAR(idlen, ucp); \
++ eui64_put(val1, ucp); \
++ len -= idlen; \
++ } else \
++ neg = 0; \
++ }
++
++ ADDCIIFACEID(CI_IFACEID, go-&gt;neg_ifaceid, go-&gt;ourid);
++
++ ADDCIVJ(CI_COMPRESSTYPE, go-&gt;neg_vj, go-&gt;vj_protocol);
++
++ *lenp -= len;
++}
++
++
++/*
++ * ipv6cp_ackci - Ack our CIs.
++ *
++ * Returns:
++ * 0 - Ack was bad.
++ * 1 - Ack was good.
++ */
++static int
++ipv6cp_ackci(f, p, len)
++ fsm *f;
++ u_char *p;
++ int len;
++{
++ ipv6cp_options *go = &amp;ipv6cp_gotoptions[f-&gt;unit];
++ u_short cilen, citype, cishort;
++ eui64_t ifaceid;
++
++ /*
++ * CIs must be in exactly the same order that we sent...
++ * Check packet length and CI length at each step.
++ * If we find any deviations, then this packet is bad.
++ */
++
++#define ACKCIVJ(opt, neg, val) \
++ if (neg) { \
++ int vjlen = CILEN_COMPRESS; \
++ if ((len -= vjlen) &lt; 0) \
++ goto bad; \
++ GETCHAR(citype, p); \
++ GETCHAR(cilen, p); \
++ if (cilen != vjlen || \
++ citype != opt) \
++ goto bad; \
++ GETSHORT(cishort, p); \
++ if (cishort != val) \
++ goto bad; \
++ }
++
++#define ACKCIIFACEID(opt, neg, val1) \
++ if (neg) { \
++ int idlen = CILEN_IFACEID; \
++ if ((len -= idlen) &lt; 0) \
++ goto bad; \
++ GETCHAR(citype, p); \
++ GETCHAR(cilen, p); \
++ if (cilen != idlen || \
++ citype != opt) \
++ goto bad; \
++ eui64_get(ifaceid, p); \
++ if (! eui64_equals(val1, ifaceid)) \
++ goto bad; \
++ }
++
++ ACKCIIFACEID(CI_IFACEID, go-&gt;neg_ifaceid, go-&gt;ourid);
++
++ ACKCIVJ(CI_COMPRESSTYPE, go-&gt;neg_vj, go-&gt;vj_protocol);
++
++ /*
++ * If there are any remaining CIs, then this packet is bad.
++ */
++ if (len != 0)
++ goto bad;
++ return (1);
++
++bad:
++ IPV6CPDEBUG((&quot;ipv6cp_ackci: received bad Ack!&quot;));
++ return (0);
++}
++
++/*
++ * ipv6cp_nakci - Peer has sent a NAK for some of our CIs.
++ * This should not modify any state if the Nak is bad
++ * or if IPV6CP is in the OPENED state.
++ *
++ * Returns:
++ * 0 - Nak was bad.
++ * 1 - Nak was good.
++ */
++static int
++ipv6cp_nakci(f, p, len)
++ fsm *f;
++ u_char *p;
++ int len;
++{
++ ipv6cp_options *go = &amp;ipv6cp_gotoptions[f-&gt;unit];
++ u_char citype, cilen, *next;
++ u_short cishort;
++ eui64_t ifaceid;
++ ipv6cp_options no; /* options we've seen Naks for */
++ ipv6cp_options try; /* options to request next time */
++
++ BZERO(&amp;no, sizeof(no));
++ try = *go;
++
++ /*
++ * Any Nak'd CIs must be in exactly the same order that we sent.
++ * Check packet length and CI length at each step.
++ * If we find any deviations, then this packet is bad.
++ */
++#define NAKCIIFACEID(opt, neg, code) \
++ if (go-&gt;neg &amp;&amp; \
++ len &gt;= (cilen = CILEN_IFACEID) &amp;&amp; \
++ p[1] == cilen &amp;&amp; \
++ p[0] == opt) { \
++ len -= cilen; \
++ INCPTR(2, p); \
++ eui64_get(ifaceid, p); \
++ no.neg = 1; \
++ code \
++ }
++
++#define NAKCIVJ(opt, neg, code) \
++ if (go-&gt;neg &amp;&amp; \
++ ((cilen = p[1]) == CILEN_COMPRESS) &amp;&amp; \
++ len &gt;= cilen &amp;&amp; \
++ p[0] == opt) { \
++ len -= cilen; \
++ INCPTR(2, p); \
++ GETSHORT(cishort, p); \
++ no.neg = 1; \
++ code \
++ }
++
++ /*
++ * Accept the peer's idea of {our,his} interface identifier, if different
++ * from our idea, only if the accept_{local,remote} flag is set.
++ */
++ NAKCIIFACEID(CI_IFACEID, neg_ifaceid,
++ if (go-&gt;accept_local) {
++ while (eui64_iszero(ifaceid) ||
++ eui64_equals(ifaceid, go-&gt;hisid)) /* bad luck */
++ eui64_magic(ifaceid);
++ try.ourid = ifaceid;
++ IPV6CPDEBUG((&quot;local LL address %s&quot;, llv6_ntoa(ifaceid)));
++ }
++ );
++
++#ifdef IPV6CP_COMP
++ NAKCIVJ(CI_COMPRESSTYPE, neg_vj,
++ {
++ if (cishort == IPV6CP_COMP) {
++ try.vj_protocol = cishort;
++ } else {
++ try.neg_vj = 0;
++ }
++ }
++ );
++#else
++ NAKCIVJ(CI_COMPRESSTYPE, neg_vj,
++ {
++ try.neg_vj = 0;
++ }
++ );
++#endif
++
++ /*
++ * There may be remaining CIs, if the peer is requesting negotiation
++ * on an option that we didn't include in our request packet.
++ * If they want to negotiate about interface identifier, we comply.
++ * If they want us to ask for compression, we refuse.
++ */
++ while (len &gt; CILEN_VOID) {
++ GETCHAR(citype, p);
++ GETCHAR(cilen, p);
++ if( (len -= cilen) &lt; 0 )
++ goto bad;
++ next = p + cilen - 2;
++
++ switch (citype) {
++ case CI_COMPRESSTYPE:
++ if (go-&gt;neg_vj || no.neg_vj ||
++ (cilen != CILEN_COMPRESS))
++ goto bad;
++ no.neg_vj = 1;
++ break;
++ case CI_IFACEID:
++ if (go-&gt;neg_ifaceid || no.neg_ifaceid || cilen != CILEN_IFACEID)
++ goto bad;
++ try.neg_ifaceid = 1;
++ eui64_get(ifaceid, p);
++ if (go-&gt;accept_local) {
++ while (eui64_iszero(ifaceid) ||
++ eui64_equals(ifaceid, go-&gt;hisid)) /* bad luck */
++ eui64_magic(ifaceid);
++ try.ourid = ifaceid;
++ }
++ no.neg_ifaceid = 1;
++ break;
++ }
++ p = next;
++ }
++
++ /* If there is still anything left, this packet is bad. */
++ if (len != 0)
++ goto bad;
++
++ /*
++ * OK, the Nak is good. Now we can update state.
++ */
++ if (f-&gt;state != OPENED)
++ *go = try;
++
++ return 1;
++
++bad:
++ IPV6CPDEBUG((&quot;ipv6cp_nakci: received bad Nak!&quot;));
++ return 0;
++}
++
++
++/*
++ * ipv6cp_rejci - Reject some of our CIs.
++ */
++static int
++ipv6cp_rejci(f, p, len)
++ fsm *f;
++ u_char *p;
++ int len;
++{
++ ipv6cp_options *go = &amp;ipv6cp_gotoptions[f-&gt;unit];
++ u_char cilen;
++ u_short cishort;
++ eui64_t ifaceid;
++ ipv6cp_options try; /* options to request next time */
++
++ try = *go;
++ /*
++ * Any Rejected CIs must be in exactly the same order that we sent.
++ * Check packet length and CI length at each step.
++ * If we find any deviations, then this packet is bad.
++ */
++#define REJCIIFACEID(opt, neg, val1) \
++ if (go-&gt;neg &amp;&amp; \
++ len &gt;= (cilen = CILEN_IFACEID) &amp;&amp; \
++ p[1] == cilen &amp;&amp; \
++ p[0] == opt) { \
++ len -= cilen; \
++ INCPTR(2, p); \
++ eui64_get(ifaceid, p); \
++ /* Check rejected value. */ \
++ if (! eui64_equals(ifaceid, val1)) \
++ goto bad; \
++ try.neg = 0; \
++ }
++
++#define REJCIVJ(opt, neg, val) \
++ if (go-&gt;neg &amp;&amp; \
++ p[1] == CILEN_COMPRESS &amp;&amp; \
++ len &gt;= p[1] &amp;&amp; \
++ p[0] == opt) { \
++ len -= p[1]; \
++ INCPTR(2, p); \
++ GETSHORT(cishort, p); \
++ /* Check rejected value. */ \
++ if (cishort != val) \
++ goto bad; \
++ try.neg = 0; \
++ }
++
++ REJCIIFACEID(CI_IFACEID, neg_ifaceid, go-&gt;ourid);
++
++ REJCIVJ(CI_COMPRESSTYPE, neg_vj, go-&gt;vj_protocol);
++
++ /*
++ * If there are any remaining CIs, then this packet is bad.
++ */
++ if (len != 0)
++ goto bad;
++ /*
++ * Now we can update state.
++ */
++ if (f-&gt;state != OPENED)
++ *go = try;
++ return 1;
++
++bad:
++ IPV6CPDEBUG((&quot;ipv6cp_rejci: received bad Reject!&quot;));
++ return 0;
++}
++
++
++/*
++ * ipv6cp_reqci - Check the peer's requested CIs and send appropriate response.
++ *
++ * Returns: CONFACK, CONFNAK or CONFREJ and input packet modified
++ * appropriately. If reject_if_disagree is non-zero, doesn't return
++ * CONFNAK; returns CONFREJ if it can't return CONFACK.
++ */
++static int
++ipv6cp_reqci(f, inp, len, reject_if_disagree)
++ fsm *f;
++ u_char *inp; /* Requested CIs */
++ int *len; /* Length of requested CIs */
++ int reject_if_disagree;
++{
++ ipv6cp_options *wo = &amp;ipv6cp_wantoptions[f-&gt;unit];
++ ipv6cp_options *ho = &amp;ipv6cp_hisoptions[f-&gt;unit];
++ ipv6cp_options *ao = &amp;ipv6cp_allowoptions[f-&gt;unit];
++ ipv6cp_options *go = &amp;ipv6cp_gotoptions[f-&gt;unit];
++ u_char *cip, *next; /* Pointer to current and next CIs */
++ u_short cilen, citype; /* Parsed len, type */
++ u_short cishort; /* Parsed short value */
++ eui64_t ifaceid; /* Parsed interface identifier */
++ int rc = CONFACK; /* Final packet return code */
++ int orc; /* Individual option return code */
++ u_char *p; /* Pointer to next char to parse */
++ u_char *ucp = inp; /* Pointer to current output char */
++ int l = *len; /* Length left */
++
++ /*
++ * Reset all his options.
++ */
++ BZERO(ho, sizeof(*ho));
++
++ /*
++ * Process all his options.
++ */
++ next = inp;
++ while (l) {
++ orc = CONFACK; /* Assume success */
++ cip = p = next; /* Remember begining of CI */
++ if (l &lt; 2 || /* Not enough data for CI header or */
++ p[1] &lt; 2 || /* CI length too small or */
++ p[1] &gt; l) { /* CI length too big? */
++ IPV6CPDEBUG((&quot;ipv6cp_reqci: bad CI length!&quot;));
++ orc = CONFREJ; /* Reject bad CI */
++ cilen = l; /* Reject till end of packet */
++ l = 0; /* Don't loop again */
++ goto endswitch;
++ }
++ GETCHAR(citype, p); /* Parse CI type */
++ GETCHAR(cilen, p); /* Parse CI length */
++ l -= cilen; /* Adjust remaining length */
++ next += cilen; /* Step to next CI */
++
++ switch (citype) { /* Check CI type */
++ case CI_IFACEID:
++ IPV6CPDEBUG((&quot;ipv6cp: received interface identifier &quot;));
++
++ if (!ao-&gt;neg_ifaceid ||
++ cilen != CILEN_IFACEID) { /* Check CI length */
++ orc = CONFREJ; /* Reject CI */
++ break;
++ }
++
++ /*
++ * If he has no interface identifier, or if we both have same
++ * identifier then NAK it with new idea.
++ * In particular, if we don't know his identifier, but he does,
++ * then accept it.
++ */
++ eui64_get(ifaceid, p);
++ IPV6CPDEBUG((&quot;(%s)&quot;, llv6_ntoa(ifaceid)));
++ if (eui64_iszero(ifaceid) &amp;&amp; eui64_iszero(go-&gt;ourid)) {
++ orc = CONFREJ; /* Reject CI */
++ break;
++ }
++ if (!eui64_iszero(wo-&gt;hisid) &amp;&amp;
++ !eui64_equals(ifaceid, wo-&gt;hisid) &amp;&amp;
++ eui64_iszero(go-&gt;hisid)) {
++
++ orc = CONFNAK;
++ ifaceid = wo-&gt;hisid;
++ go-&gt;hisid = ifaceid;
++ DECPTR(sizeof(ifaceid), p);
++ eui64_put(ifaceid, p);
++ } else
++ if (eui64_iszero(ifaceid) || eui64_equals(ifaceid, go-&gt;ourid)) {
++ orc = CONFNAK;
++ if (eui64_iszero(go-&gt;hisid)) /* first time, try option */
++ ifaceid = wo-&gt;hisid;
++ while (eui64_iszero(ifaceid) ||
++ eui64_equals(ifaceid, go-&gt;ourid)) /* bad luck */
++ eui64_magic(ifaceid);
++ go-&gt;hisid = ifaceid;
++ DECPTR(sizeof(ifaceid), p);
++ eui64_put(ifaceid, p);
++ }
++
++ ho-&gt;neg_ifaceid = 1;
++ ho-&gt;hisid = ifaceid;
++ break;
++
++ case CI_COMPRESSTYPE:
++ IPV6CPDEBUG((&quot;ipv6cp: received COMPRESSTYPE &quot;));
++ if (!ao-&gt;neg_vj ||
++ (cilen != CILEN_COMPRESS)) {
++ orc = CONFREJ;
++ break;
++ }
++ GETSHORT(cishort, p);
++ IPV6CPDEBUG((&quot;(%d)&quot;, cishort));
++
++#ifdef IPV6CP_COMP
++ if (!(cishort == IPV6CP_COMP)) {
++ orc = CONFREJ;
++ break;
++ }
++
++ ho-&gt;neg_vj = 1;
++ ho-&gt;vj_protocol = cishort;
++ break;
++#else
++ orc = CONFREJ;
++ break;
++#endif
++
++ default:
++ orc = CONFREJ;
++ break;
++ }
++
++endswitch:
++ IPV6CPDEBUG((&quot; (%s)\n&quot;, CODENAME(orc)));
++
++ if (orc == CONFACK &amp;&amp; /* Good CI */
++ rc != CONFACK) /* but prior CI wasnt? */
++ continue; /* Don't send this one */
++
++ if (orc == CONFNAK) { /* Nak this CI? */
++ if (reject_if_disagree) /* Getting fed up with sending NAKs? */
++ orc = CONFREJ; /* Get tough if so */
++ else {
++ if (rc == CONFREJ) /* Rejecting prior CI? */
++ continue; /* Don't send this one */
++ if (rc == CONFACK) { /* Ack'd all prior CIs? */
++ rc = CONFNAK; /* Not anymore... */
++ ucp = inp; /* Backup */
++ }
++ }
++ }
++
++ if (orc == CONFREJ &amp;&amp; /* Reject this CI */
++ rc != CONFREJ) { /* but no prior ones? */
++ rc = CONFREJ;
++ ucp = inp; /* Backup */
++ }
++
++ /* Need to move CI? */
++ if (ucp != cip)
++ BCOPY(cip, ucp, cilen); /* Move it */
++
++ /* Update output pointer */
++ INCPTR(cilen, ucp);
++ }
++
++ /*
++ * If we aren't rejecting this packet, and we want to negotiate
++ * their identifier and they didn't send their identifier, then we
++ * send a NAK with a CI_IFACEID option appended. We assume the
++ * input buffer is long enough that we can append the extra
++ * option safely.
++ */
++ if (rc != CONFREJ &amp;&amp; !ho-&gt;neg_ifaceid &amp;&amp;
++ wo-&gt;req_ifaceid &amp;&amp; !reject_if_disagree) {
++ if (rc == CONFACK) {
++ rc = CONFNAK;
++ ucp = inp; /* reset pointer */
++ wo-&gt;req_ifaceid = 0; /* don't ask again */
++ }
++ PUTCHAR(CI_IFACEID, ucp);
++ PUTCHAR(CILEN_IFACEID, ucp);
++ eui64_put(wo-&gt;hisid, ucp);
++ }
++
++ *len = ucp - inp; /* Compute output length */
++ IPV6CPDEBUG((&quot;ipv6cp: returning Configure-%s&quot;, CODENAME(rc)));
++ return (rc); /* Return final code */
++}
++
++
++/*
++ * ipv6_check_options - check that any IP-related options are OK,
++ * and assign appropriate defaults.
++ */
++static void
++ipv6_check_options()
++{
++ ipv6cp_options *wo = &amp;ipv6cp_wantoptions[0];
++
++ if (!ipv6cp_protent.enabled_flag)
++ return;
++
++#if defined(SOL2)
++ /*
++ * Persistent link-local id is only used when user has not explicitly
++ * configure/hard-code the id
++ */
++ if ((wo-&gt;use_persistent) &amp;&amp; (!wo-&gt;opt_local) &amp;&amp; (!wo-&gt;opt_remote)) {
++
++ /*
++ * On systems where there are no Ethernet interfaces used, there
++ * may be other ways to obtain a persistent id. Right now, it
++ * will fall back to using magic [see eui64_magic] below when
++ * an EUI-48 from MAC address can't be obtained. Other possibilities
++ * include obtaining EEPROM serial numbers, or some other unique
++ * yet persistent number. On Sparc platforms, this is possible,
++ * but too bad there's no standards yet for x86 machines.
++ */
++ if (ether_to_eui64(&amp;wo-&gt;ourid)) {
++ wo-&gt;opt_local = 1;
++ }
++ }
++#endif
++
++ if (!wo-&gt;opt_local) { /* init interface identifier */
++ if (wo-&gt;use_ip &amp;&amp; eui64_iszero(wo-&gt;ourid)) {
++ eui64_setlo32(wo-&gt;ourid, ntohl(ipcp_wantoptions[0].ouraddr));
++ if (!eui64_iszero(wo-&gt;ourid))
++ wo-&gt;opt_local = 1;
++ }
++
++ while (eui64_iszero(wo-&gt;ourid))
++ eui64_magic(wo-&gt;ourid);
++ }
++
++ if (!wo-&gt;opt_remote) {
++ if (wo-&gt;use_ip &amp;&amp; eui64_iszero(wo-&gt;hisid)) {
++ eui64_setlo32(wo-&gt;hisid, ntohl(ipcp_wantoptions[0].hisaddr));
++ if (!eui64_iszero(wo-&gt;hisid))
++ wo-&gt;opt_remote = 1;
++ }
++ }
++
++ if (demand &amp;&amp; (eui64_iszero(wo-&gt;ourid) || eui64_iszero(wo-&gt;hisid))) {
++ option_error(&quot;local/remote LL address required for demand-dialling\n&quot;);
++ exit(1);
++ }
++}
++
++
++/*
++ * ipv6_demand_conf - configure the interface as though
++ * IPV6CP were up, for use with dial-on-demand.
++ */
++static int
++ipv6_demand_conf(u)
++ int u;
++{
++ ipv6cp_options *wo = &amp;ipv6cp_wantoptions[u];
++
++#if defined(__linux__) || defined(SOL2) || (defined(SVR4) &amp;&amp; (defined(SNI) || defined(__USLC__)))
++#if defined(SOL2)
++ if (!sif6up(u))
++ return 0;
++#else
++ if (!sifup(u))
++ return 0;
++#endif /* defined(SOL2) */
++#endif
++ if (!sif6addr(u, wo-&gt;ourid, wo-&gt;hisid))
++ return 0;
++#if !defined(__linux__) &amp;&amp; !(defined(SVR4) &amp;&amp; (defined(SNI) || defined(__USLC__)))
++ if (!sifup(u))
++ return 0;
++#endif
++ if (!sifnpmode(u, PPP_IPV6, NPMODE_QUEUE))
++ return 0;
++
++ notice(&quot;ipv6_demand_conf&quot;);
++ notice(&quot;local LL address %s&quot;, llv6_ntoa(wo-&gt;ourid));
++ notice(&quot;remote LL address %s&quot;, llv6_ntoa(wo-&gt;hisid));
++
++ return 1;
++}
++
++
++/*
++ * ipv6cp_up - IPV6CP has come UP.
++ *
++ * Configure the IPv6 network interface appropriately and bring it up.
++ */
++static void
++ipv6cp_up(f)
++ fsm *f;
++{
++ ipv6cp_options *ho = &amp;ipv6cp_hisoptions[f-&gt;unit];
++ ipv6cp_options *go = &amp;ipv6cp_gotoptions[f-&gt;unit];
++ ipv6cp_options *wo = &amp;ipv6cp_wantoptions[f-&gt;unit];
++
++ IPV6CPDEBUG((&quot;ipv6cp: up&quot;));
++
++ /*
++ * We must have a non-zero LL address for both ends of the link.
++ */
++ if (!ho-&gt;neg_ifaceid)
++ ho-&gt;hisid = wo-&gt;hisid;
++
++ if(!no_ifaceid_neg) {
++ if (eui64_iszero(ho-&gt;hisid)) {
++ error(&quot;Could not determine remote LL address&quot;);
++ ipv6cp_close(f-&gt;unit, &quot;Could not determine remote LL address&quot;);
++ return;
++ }
++ if (eui64_iszero(go-&gt;ourid)) {
++ error(&quot;Could not determine local LL address&quot;);
++ ipv6cp_close(f-&gt;unit, &quot;Could not determine local LL address&quot;);
++ return;
++ }
++ if (eui64_equals(go-&gt;ourid, ho-&gt;hisid)) {
++ error(&quot;local and remote LL addresses are equal&quot;);
++ ipv6cp_close(f-&gt;unit, &quot;local and remote LL addresses are equal&quot;);
++ return;
++ }
++ }
++ script_setenv(&quot;LLLOCAL&quot;, llv6_ntoa(go-&gt;ourid), 0);
++ script_setenv(&quot;LLREMOTE&quot;, llv6_ntoa(ho-&gt;hisid), 0);
++
++#ifdef IPV6CP_COMP
++ /* set tcp compression */
++ sif6comp(f-&gt;unit, ho-&gt;neg_vj);
++#endif
++
++ /*
++ * If we are doing dial-on-demand, the interface is already
++ * configured, so we put out any saved-up packets, then set the
++ * interface to pass IPv6 packets.
++ */
++ if (demand) {
++ if (! eui64_equals(go-&gt;ourid, wo-&gt;ourid) ||
++ ! eui64_equals(ho-&gt;hisid, wo-&gt;hisid)) {
++ if (! eui64_equals(go-&gt;ourid, wo-&gt;ourid))
++ warn(&quot;Local LL address changed to %s&quot;,
++ llv6_ntoa(go-&gt;ourid));
++ if (! eui64_equals(ho-&gt;hisid, wo-&gt;hisid))
++ warn(&quot;Remote LL address changed to %s&quot;,
++ llv6_ntoa(ho-&gt;hisid));
++ ipv6cp_clear_addrs(f-&gt;unit, go-&gt;ourid, ho-&gt;hisid);
++
++ /* Set the interface to the new addresses */
++ if (!sif6addr(f-&gt;unit, go-&gt;ourid, ho-&gt;hisid)) {
++ if (debug)
++ warn(&quot;sif6addr failed&quot;);
++ ipv6cp_close(f-&gt;unit, &quot;Interface configuration failed&quot;);
++ return;
++ }
++
++ }
++ demand_rexmit(PPP_IPV6);
++ sifnpmode(f-&gt;unit, PPP_IPV6, NPMODE_PASS);
++
++ } else {
++ /*
++ * Set LL addresses
++ */
++#if !defined(__linux__) &amp;&amp; !defined(SOL2) &amp;&amp; !(defined(SVR4) &amp;&amp; (defined(SNI) || defined(__USLC__)))
++ if (!sif6addr(f-&gt;unit, go-&gt;ourid, ho-&gt;hisid)) {
++ if (debug)
++ warn(&quot;sif6addr failed&quot;);
++ ipv6cp_close(f-&gt;unit, &quot;Interface configuration failed&quot;);
++ return;
++ }
++#endif
++
++ /* bring the interface up for IPv6 */
++#if defined(SOL2)
++ if (!sif6up(f-&gt;unit)) {
++ if (debug)
++ warn(&quot;sifup failed (IPV6)&quot;);
++ ipv6cp_close(f-&gt;unit, &quot;Interface configuration failed&quot;);
++ return;
++ }
++#else
++ if (!sifup(f-&gt;unit)) {
++ if (debug)
++ warn(&quot;sifup failed (IPV6)&quot;);
++ ipv6cp_close(f-&gt;unit, &quot;Interface configuration failed&quot;);
++ return;
++ }
++#endif /* defined(SOL2) */
++
++#if defined(__linux__) || defined(SOL2) || (defined(SVR4) &amp;&amp; (defined(SNI) || defined(__USLC__)))
++ if (!sif6addr(f-&gt;unit, go-&gt;ourid, ho-&gt;hisid)) {
++ if (debug)
++ warn(&quot;sif6addr failed&quot;);
++ ipv6cp_close(f-&gt;unit, &quot;Interface configuration failed&quot;);
++ return;
++ }
++#endif
++ sifnpmode(f-&gt;unit, PPP_IPV6, NPMODE_PASS);
++
++ notice(&quot;local LL address %s&quot;, llv6_ntoa(go-&gt;ourid));
++ notice(&quot;remote LL address %s&quot;, llv6_ntoa(ho-&gt;hisid));
++ }
++
++ np_up(f-&gt;unit, PPP_IPV6);
++ ipv6cp_is_up = 1;
++
++ /*
++ * Execute the ipv6-up script, like this:
++ * /etc/ppp/ipv6-up interface tty speed local-LL remote-LL
++ */
++ if (ipv6cp_script_state == s_down &amp;&amp; ipv6cp_script_pid == 0) {
++ ipv6cp_script_state = s_up;
++ ipv6cp_script(_PATH_IPV6UP);
++ }
++}
++
++
++/*
++ * ipv6cp_down - IPV6CP has gone DOWN.
++ *
++ * Take the IPv6 network interface down, clear its addresses
++ * and delete routes through it.
++ */
++static void
++ipv6cp_down(f)
++ fsm *f;
++{
++ IPV6CPDEBUG((&quot;ipv6cp: down&quot;));
++ update_link_stats(f-&gt;unit);
++ if (ipv6cp_is_up) {
++ ipv6cp_is_up = 0;
++ np_down(f-&gt;unit, PPP_IPV6);
++ }
++#ifdef IPV6CP_COMP
++ sif6comp(f-&gt;unit, 0);
++#endif
++
++ /*
++ * If we are doing dial-on-demand, set the interface
++ * to queue up outgoing packets (for now).
++ */
++ if (demand) {
++ sifnpmode(f-&gt;unit, PPP_IPV6, NPMODE_QUEUE);
++ } else {
++ sifnpmode(f-&gt;unit, PPP_IPV6, NPMODE_DROP);
++#if !defined(__linux__) &amp;&amp; !(defined(SVR4) &amp;&amp; (defined(SNI) || defined(__USLC)))
++#if defined(SOL2)
++ sif6down(f-&gt;unit);
++#else
++ sifdown(f-&gt;unit);
++#endif /* defined(SOL2) */
++#endif
++ ipv6cp_clear_addrs(f-&gt;unit,
++ ipv6cp_gotoptions[f-&gt;unit].ourid,
++ ipv6cp_hisoptions[f-&gt;unit].hisid);
++#if defined(__linux__) || (defined(SVR4) &amp;&amp; (defined(SNI) || defined(__USLC)))
++ sifdown(f-&gt;unit);
++#endif
++ }
++
++ /* Execute the ipv6-down script */
++ if (ipv6cp_script_state == s_up &amp;&amp; ipv6cp_script_pid == 0) {
++ ipv6cp_script_state = s_down;
++ ipv6cp_script(_PATH_IPV6DOWN);
++ }
++}
++
++
++/*
++ * ipv6cp_clear_addrs() - clear the interface addresses, routes,
++ * proxy neighbour discovery entries, etc.
++ */
++static void
++ipv6cp_clear_addrs(unit, ourid, hisid)
++ int unit;
++ eui64_t ourid;
++ eui64_t hisid;
++{
++ cif6addr(unit, ourid, hisid);
++}
++
++
++/*
++ * ipv6cp_finished - possibly shut down the lower layers.
++ */
++static void
++ipv6cp_finished(f)
++ fsm *f;
++{
++ np_finished(f-&gt;unit, PPP_IPV6);
++}
++
++
++/*
++ * ipv6cp_script_done - called when the ipv6-up or ipv6-down script
++ * has finished.
++ */
++static void
++ipv6cp_script_done(arg)
++ void *arg;
++{
++ ipv6cp_script_pid = 0;
++ switch (ipv6cp_script_state) {
++ case s_up:
++ if (ipv6cp_fsm[0].state != OPENED) {
++ ipv6cp_script_state = s_down;
++ ipv6cp_script(_PATH_IPV6DOWN);
++ }
++ break;
++ case s_down:
++ if (ipv6cp_fsm[0].state == OPENED) {
++ ipv6cp_script_state = s_up;
++ ipv6cp_script(_PATH_IPV6UP);
++ }
++ break;
++ }
++}
++
++
++/*
++ * ipv6cp_script - Execute a script with arguments
++ * interface-name tty-name speed local-LL remote-LL.
++ */
++static void
++ipv6cp_script(script)
++ char *script;
++{
++ char strspeed[32], strlocal[32], strremote[32];
++ char *argv[8];
++
++ sprintf(strspeed, &quot;%d&quot;, baud_rate);
++ strcpy(strlocal, llv6_ntoa(ipv6cp_gotoptions[0].ourid));
++ strcpy(strremote, llv6_ntoa(ipv6cp_hisoptions[0].hisid));
++
++ argv[0] = script;
++ argv[1] = ifname;
++ argv[2] = devnam;
++ argv[3] = strspeed;
++ argv[4] = strlocal;
++ argv[5] = strremote;
++ argv[6] = ipparam;
++ argv[7] = NULL;
++
++ ipv6cp_script_pid = run_program(script, argv, 0, ipv6cp_script_done, NULL);
++}
++
++/*
++ * ipv6cp_printpkt - print the contents of an IPV6CP packet.
++ */
++static char *ipv6cp_codenames[] = {
++ &quot;ConfReq&quot;, &quot;ConfAck&quot;, &quot;ConfNak&quot;, &quot;ConfRej&quot;,
++ &quot;TermReq&quot;, &quot;TermAck&quot;, &quot;CodeRej&quot;
++};
++
++static int
++ipv6cp_printpkt(p, plen, printer, arg)
++ u_char *p;
++ int plen;
++ void (*printer) __P((void *, char *, ...));
++ void *arg;
++{
++ int code, id, len, olen;
++ u_char *pstart, *optend;
++ u_short cishort;
++ eui64_t ifaceid;
++
++ if (plen &lt; HEADERLEN)
++ return 0;
++ pstart = p;
++ GETCHAR(code, p);
++ GETCHAR(id, p);
++ GETSHORT(len, p);
++ if (len &lt; HEADERLEN || len &gt; plen)
++ return 0;
++
++ if (code &gt;= 1 &amp;&amp; code &lt;= sizeof(ipv6cp_codenames) / sizeof(char *))
++ printer(arg, &quot; %s&quot;, ipv6cp_codenames[code-1]);
++ else
++ printer(arg, &quot; code=0x%x&quot;, code);
++ printer(arg, &quot; id=0x%x&quot;, id);
++ len -= HEADERLEN;
++ switch (code) {
++ case CONFREQ:
++ case CONFACK:
++ case CONFNAK:
++ case CONFREJ:
++ /* print option list */
++ while (len &gt;= 2) {
++ GETCHAR(code, p);
++ GETCHAR(olen, p);
++ p -= 2;
++ if (olen &lt; 2 || olen &gt; len) {
++ break;
++ }
++ printer(arg, &quot; &lt;&quot;);
++ len -= olen;
++ optend = p + olen;
++ switch (code) {
++ case CI_COMPRESSTYPE:
++ if (olen &gt;= CILEN_COMPRESS) {
++ p += 2;
++ GETSHORT(cishort, p);
++ printer(arg, &quot;compress &quot;);
++ printer(arg, &quot;0x%x&quot;, cishort);
++ }
++ break;
++ case CI_IFACEID:
++ if (olen == CILEN_IFACEID) {
++ p += 2;
++ eui64_get(ifaceid, p);
++ printer(arg, &quot;addr %s&quot;, llv6_ntoa(ifaceid));
++ }
++ break;
++ }
++ while (p &lt; optend) {
++ GETCHAR(code, p);
++ printer(arg, &quot; %.2x&quot;, code);
++ }
++ printer(arg, &quot;&gt;&quot;);
++ }
++ break;
++
++ case TERMACK:
++ case TERMREQ:
++ if (len &gt; 0 &amp;&amp; *p &gt;= ' ' &amp;&amp; *p &lt; 0x7f) {
++ printer(arg, &quot; &quot;);
++ print_string((char *)p, len, printer, arg);
++ p += len;
++ len = 0;
++ }
++ break;
++ }
++
++ /* print the rest of the bytes in the packet */
++ for (; len &gt; 0; --len) {
++ GETCHAR(code, p);
++ printer(arg, &quot; %.2x&quot;, code);
++ }
++
++ return p - pstart;
++}
++
++/*
++ * ipv6_active_pkt - see if this IP packet is worth bringing the link up for.
++ * We don't bring the link up for IP fragments or for TCP FIN packets
++ * with no data.
++ */
++#define IP6_HDRLEN 40 /* bytes */
++#define IP6_NHDR_FRAG 44 /* fragment IPv6 header */
++#define IPPROTO_TCP 6
++#define TCP_HDRLEN 20
++#define TH_FIN 0x01
++
++/*
++ * We use these macros because the IP header may be at an odd address,
++ * and some compilers might use word loads to get th_off or ip_hl.
++ */
++
++#define get_ip6nh(x) (((unsigned char *)(x))[6])
++#define get_tcpoff(x) (((unsigned char *)(x))[12] &gt;&gt; 4)
++#define get_tcpflags(x) (((unsigned char *)(x))[13])
++
++static int
++ipv6_active_pkt(pkt, len)
++ u_char *pkt;
++ int len;
++{
++ u_char *tcp;
++
++ len -= PPP_HDRLEN;
++ pkt += PPP_HDRLEN;
++ if (len &lt; IP6_HDRLEN)
++ return 0;
++ if (get_ip6nh(pkt) == IP6_NHDR_FRAG)
++ return 0;
++ if (get_ip6nh(pkt) != IPPROTO_TCP)
++ return 1;
++ if (len &lt; IP6_HDRLEN + TCP_HDRLEN)
++ return 0;
++ tcp = pkt + IP6_HDRLEN;
++ if ((get_tcpflags(tcp) &amp; TH_FIN) != 0 &amp;&amp; len == IP6_HDRLEN + get_tcpoff(tcp) * 4)
++ return 0;
++ return 1;
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/pppd/ipv6cp.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1ppppppdipv6cph">Added: drakx/trunk/mdk-stage1/ppp/pppd/ipv6cp.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/ipv6cp.h (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/ipv6cp.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,126 @@
++/*
++ ipv6cp.h - PPP IPV6 Control Protocol.
++ Copyright (C) 1999 Tommi Komulainen &lt;Tommi.Komulainen@iki.fi&gt;
++
++ Redistribution and use in source and binary forms are permitted
++ provided that the above copyright notice and this paragraph are
++ duplicated in all such forms. The name of the author may not be
++ used to endorse or promote products derived from this software
++ without specific prior written permission.
++ THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
++ IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
++ WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++*/
++
++/* Original version, based on RFC2023 :
++
++ Copyright (c) 1995, 1996, 1997 Francis.Dupont@inria.fr, INRIA Rocquencourt,
++ Alain.Durand@imag.fr, IMAG,
++ Jean-Luc.Richier@imag.fr, IMAG-LSR.
++
++ Copyright (c) 1998, 1999 Francis.Dupont@inria.fr, GIE DYADE,
++ Alain.Durand@imag.fr, IMAG,
++ Jean-Luc.Richier@imag.fr, IMAG-LSR.
++
++ Ce travail a été fait au sein du GIE DYADE (Groupement d'Intérêt
++ Économique ayant pour membres BULL S.A. et l'INRIA).
++
++ Ce logiciel informatique est disponible aux conditions
++ usuelles dans la recherche, c'est-à-dire qu'il peut
++ être utilisé, copié, modifié, distribué à l'unique
++ condition que ce texte soit conservé afin que
++ l'origine de ce logiciel soit reconnue.
++
++ Le nom de l'Institut National de Recherche en Informatique
++ et en Automatique (INRIA), de l'IMAG, ou d'une personne morale
++ ou physique ayant participé à l'élaboration de ce logiciel ne peut
++ être utilisé sans son accord préalable explicite.
++
++ Ce logiciel est fourni tel quel sans aucune garantie,
++ support ou responsabilité d'aucune sorte.
++ Ce logiciel est dérivé de sources d'origine
++ &quot;University of California at Berkeley&quot; et
++ &quot;Digital Equipment Corporation&quot; couvertes par des copyrights.
++
++ L'Institut d'Informatique et de Mathématiques Appliquées de Grenoble (IMAG)
++ est une fédération d'unités mixtes de recherche du CNRS, de l'Institut National
++ Polytechnique de Grenoble et de l'Université Joseph Fourier regroupant
++ sept laboratoires dont le laboratoire Logiciels, Systèmes, Réseaux (LSR).
++
++ This work has been done in the context of GIE DYADE (joint R &amp; D venture
++ between BULL S.A. and INRIA).
++
++ This software is available with usual &quot;research&quot; terms
++ with the aim of retain credits of the software.
++ Permission to use, copy, modify and distribute this software for any
++ purpose and without fee is hereby granted, provided that the above
++ copyright notice and this permission notice appear in all copies,
++ and the name of INRIA, IMAG, or any contributor not be used in advertising
++ or publicity pertaining to this material without the prior explicit
++ permission. The software is provided &quot;as is&quot; without any
++ warranties, support or liabilities of any kind.
++ This software is derived from source code from
++ &quot;University of California at Berkeley&quot; and
++ &quot;Digital Equipment Corporation&quot; protected by copyrights.
++
++ Grenoble's Institute of Computer Science and Applied Mathematics (IMAG)
++ is a federation of seven research units funded by the CNRS, National
++ Polytechnic Institute of Grenoble and University Joseph Fourier.
++ The research unit in Software, Systems, Networks (LSR) is member of IMAG.
++*/
++
++/*
++ * Derived from :
++ *
++ *
++ * ipcp.h - IP Control Protocol definitions.
++ *
++ * Copyright (c) 1989 Carnegie Mellon University.
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms are permitted
++ * provided that the above copyright notice and this paragraph are
++ * duplicated in all such forms and that any documentation,
++ * advertising materials, and other materials related to such
++ * distribution and use acknowledge that the software was developed
++ * by Carnegie Mellon University. The name of the
++ * University may not be used to endorse or promote products derived
++ * from this software without specific prior written permission.
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
++ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
++ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++ *
++ * $Id: ipv6cp.h 215411 2007-04-25 12:26:16Z pixel $
++ */
++
++/*
++ * Options.
++ */
++#define CI_IFACEID 1 /* Interface Identifier */
++#define CI_COMPRESSTYPE 2 /* Compression Type */
++
++/* No compression types yet defined.
++ *#define IPV6CP_COMP 0x004f
++ */
++typedef struct ipv6cp_options {
++ int neg_ifaceid; /* Negotiate interface identifier? */
++ int req_ifaceid; /* Ask peer to send interface identifier? */
++ int accept_local; /* accept peer's value for iface id? */
++ int opt_local; /* ourtoken set by option */
++ int opt_remote; /* histoken set by option */
++ int use_ip; /* use IP as interface identifier */
++#if defined(SOL2)
++ int use_persistent; /* use uniquely persistent value for address */
++#endif /* defined(SOL2) */
++ int neg_vj; /* Van Jacobson Compression? */
++ u_short vj_protocol; /* protocol value to use in VJ option */
++ eui64_t ourid, hisid; /* Interface identifiers */
++} ipv6cp_options;
++
++extern fsm ipv6cp_fsm[];
++extern ipv6cp_options ipv6cp_wantoptions[];
++extern ipv6cp_options ipv6cp_gotoptions[];
++extern ipv6cp_options ipv6cp_allowoptions[];
++extern ipv6cp_options ipv6cp_hisoptions[];
++
++extern struct protent ipv6cp_protent;
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/pppd/ipv6cp.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1ppppppdipxcpc">Added: drakx/trunk/mdk-stage1/ppp/pppd/ipxcp.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/ipxcp.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/ipxcp.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,1570 @@
++/*
++ * ipxcp.c - PPP IPX Control Protocol.
++ *
++ * Copyright (c) 1989 Carnegie Mellon University.
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms are permitted
++ * provided that the above copyright notice and this paragraph are
++ * duplicated in all such forms and that any documentation,
++ * advertising materials, and other materials related to such
++ * distribution and use acknowledge that the software was developed
++ * by Carnegie Mellon University. The name of the
++ * University may not be used to endorse or promote products derived
++ * from this software without specific prior written permission.
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
++ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
++ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++ */
++
++#ifdef IPX_CHANGE
++
++#define RCSID &quot;$Id: ipxcp.c 195720 2001-06-11 11:44:34Z gc $&quot;
++
++/*
++ * TODO:
++ */
++
++#include &lt;stdio.h&gt;
++#include &lt;string.h&gt;
++#include &lt;unistd.h&gt;
++#include &lt;ctype.h&gt;
++#include &lt;sys/types.h&gt;
++#include &lt;sys/socket.h&gt;
++#include &lt;netinet/in.h&gt;
++
++#include &quot;pppd.h&quot;
++#include &quot;fsm.h&quot;
++#include &quot;ipxcp.h&quot;
++#include &quot;pathnames.h&quot;
++#include &quot;magic.h&quot;
++
++static const char rcsid[] = RCSID;
++
++/* global vars */
++ipxcp_options ipxcp_wantoptions[NUM_PPP]; /* Options that we want to request */
++ipxcp_options ipxcp_gotoptions[NUM_PPP]; /* Options that peer ack'd */
++ipxcp_options ipxcp_allowoptions[NUM_PPP]; /* Options we allow peer to request */
++ipxcp_options ipxcp_hisoptions[NUM_PPP]; /* Options that we ack'd */
++
++#define wo (&amp;ipxcp_wantoptions[0])
++#define ao (&amp;ipxcp_allowoptions[0])
++#define go (&amp;ipxcp_gotoptions[0])
++#define ho (&amp;ipxcp_hisoptions[0])
++
++/*
++ * Callbacks for fsm code. (CI = Configuration Information)
++ */
++static void ipxcp_resetci __P((fsm *)); /* Reset our CI */
++static int ipxcp_cilen __P((fsm *)); /* Return length of our CI */
++static void ipxcp_addci __P((fsm *, u_char *, int *)); /* Add our CI */
++static int ipxcp_ackci __P((fsm *, u_char *, int)); /* Peer ack'd our CI */
++static int ipxcp_nakci __P((fsm *, u_char *, int)); /* Peer nak'd our CI */
++static int ipxcp_rejci __P((fsm *, u_char *, int)); /* Peer rej'd our CI */
++static int ipxcp_reqci __P((fsm *, u_char *, int *, int)); /* Rcv CI */
++static void ipxcp_up __P((fsm *)); /* We're UP */
++static void ipxcp_down __P((fsm *)); /* We're DOWN */
++static void ipxcp_finished __P((fsm *)); /* Don't need lower layer */
++static void ipxcp_script __P((fsm *, char *)); /* Run an up/down script */
++
++fsm ipxcp_fsm[NUM_PPP]; /* IPXCP fsm structure */
++
++static fsm_callbacks ipxcp_callbacks = { /* IPXCP callback routines */
++ ipxcp_resetci, /* Reset our Configuration Information */
++ ipxcp_cilen, /* Length of our Configuration Information */
++ ipxcp_addci, /* Add our Configuration Information */
++ ipxcp_ackci, /* ACK our Configuration Information */
++ ipxcp_nakci, /* NAK our Configuration Information */
++ ipxcp_rejci, /* Reject our Configuration Information */
++ ipxcp_reqci, /* Request peer's Configuration Information */
++ ipxcp_up, /* Called when fsm reaches OPENED state */
++ ipxcp_down, /* Called when fsm leaves OPENED state */
++ NULL, /* Called when we want the lower layer up */
++ ipxcp_finished, /* Called when we want the lower layer down */
++ NULL, /* Called when Protocol-Reject received */
++ NULL, /* Retransmission is necessary */
++ NULL, /* Called to handle protocol-specific codes */
++ &quot;IPXCP&quot; /* String name of protocol */
++};
++
++/*
++ * Command-line options.
++ */
++static int setipxnode __P((char **));
++static void printipxnode __P((option_t *,
++ void (*)(void *, char *, ...), void *));
++static int setipxname __P((char **));
++
++static option_t ipxcp_option_list[] = {
++ { &quot;ipx&quot;, o_bool, &amp;ipxcp_protent.enabled_flag,
++ &quot;Enable IPXCP (and IPX)&quot;, OPT_PRIO | 1 },
++ { &quot;+ipx&quot;, o_bool, &amp;ipxcp_protent.enabled_flag,
++ &quot;Enable IPXCP (and IPX)&quot;, OPT_PRIOSUB | OPT_ALIAS | 1 },
++ { &quot;noipx&quot;, o_bool, &amp;ipxcp_protent.enabled_flag,
++ &quot;Disable IPXCP (and IPX)&quot;, OPT_PRIOSUB },
++ { &quot;-ipx&quot;, o_bool, &amp;ipxcp_protent.enabled_flag,
++ &quot;Disable IPXCP (and IPX)&quot;, OPT_PRIOSUB | OPT_ALIAS },
++
++ { &quot;ipx-network&quot;, o_uint32, &amp;ipxcp_wantoptions[0].our_network,
++ &quot;Set our IPX network number&quot;, OPT_PRIO, &amp;ipxcp_wantoptions[0].neg_nn },
++
++ { &quot;ipxcp-accept-network&quot;, o_bool, &amp;ipxcp_wantoptions[0].accept_network,
++ &quot;Accept peer IPX network number&quot;, 1,
++ &amp;ipxcp_allowoptions[0].accept_network },
++
++ { &quot;ipx-node&quot;, o_special, (void *)setipxnode,
++ &quot;Set IPX node number&quot;, OPT_A2PRINTER, (void *)printipxnode },
++
++ { &quot;ipxcp-accept-local&quot;, o_bool, &amp;ipxcp_wantoptions[0].accept_local,
++ &quot;Accept our IPX address&quot;, 1,
++ &amp;ipxcp_allowoptions[0].accept_local },
++
++ { &quot;ipxcp-accept-remote&quot;, o_bool, &amp;ipxcp_wantoptions[0].accept_remote,
++ &quot;Accept peer's IPX address&quot;, 1,
++ &amp;ipxcp_allowoptions[0].accept_remote },
++
++ { &quot;ipx-routing&quot;, o_int, &amp;ipxcp_wantoptions[0].router,
++ &quot;Set IPX routing proto number&quot;, OPT_PRIO,
++ &amp;ipxcp_wantoptions[0].neg_router },
++
++ { &quot;ipx-router-name&quot;, o_special, setipxname,
++ &quot;Set IPX router name&quot;, OPT_PRIO | OPT_A2STRVAL | OPT_STATIC,
++ &amp;ipxcp_wantoptions[0].name },
++
++ { &quot;ipxcp-restart&quot;, o_int, &amp;ipxcp_fsm[0].timeouttime,
++ &quot;Set timeout for IPXCP&quot;, OPT_PRIO },
++ { &quot;ipxcp-max-terminate&quot;, o_int, &amp;ipxcp_fsm[0].maxtermtransmits,
++ &quot;Set max #xmits for IPXCP term-reqs&quot;, OPT_PRIO },
++ { &quot;ipxcp-max-configure&quot;, o_int, &amp;ipxcp_fsm[0].maxconfreqtransmits,
++ &quot;Set max #xmits for IPXCP conf-reqs&quot;, OPT_PRIO },
++ { &quot;ipxcp-max-failure&quot;, o_int, &amp;ipxcp_fsm[0].maxnakloops,
++ &quot;Set max #conf-naks for IPXCP&quot;, OPT_PRIO },
++
++ { NULL }
++};
++
++/*
++ * Protocol entry points.
++ */
++
++static void ipxcp_init __P((int));
++static void ipxcp_open __P((int));
++static void ipxcp_close __P((int, char *));
++static void ipxcp_lowerup __P((int));
++static void ipxcp_lowerdown __P((int));
++static void ipxcp_input __P((int, u_char *, int));
++static void ipxcp_protrej __P((int));
++static int ipxcp_printpkt __P((u_char *, int,
++ void (*) __P((void *, char *, ...)), void *));
++
++struct protent ipxcp_protent = {
++ PPP_IPXCP,
++ ipxcp_init,
++ ipxcp_input,
++ ipxcp_protrej,
++ ipxcp_lowerup,
++ ipxcp_lowerdown,
++ ipxcp_open,
++ ipxcp_close,
++ ipxcp_printpkt,
++ NULL,
++ 0,
++ &quot;IPXCP&quot;,
++ &quot;IPX&quot;,
++ ipxcp_option_list,
++ NULL,
++ NULL,
++ NULL
++};
++
++/*
++ * Lengths of configuration options.
++ */
++
++#define CILEN_VOID 2
++#define CILEN_COMPLETE 2 /* length of complete option */
++#define CILEN_NETN 6 /* network number length option */
++#define CILEN_NODEN 8 /* node number length option */
++#define CILEN_PROTOCOL 4 /* Minimum length of routing protocol */
++#define CILEN_NAME 3 /* Minimum length of router name */
++#define CILEN_COMPRESS 4 /* Minimum length of compression protocol */
++
++#define CODENAME(x) ((x) == CONFACK ? &quot;ACK&quot; : \
++ (x) == CONFNAK ? &quot;NAK&quot; : &quot;REJ&quot;)
++
++static int ipxcp_is_up;
++
++static char *ipx_ntoa __P((u_int32_t));
++
++/* Used in printing the node number */
++#define NODE(base) base[0], base[1], base[2], base[3], base[4], base[5]
++
++/* Used to generate the proper bit mask */
++#define BIT(num) (1 &lt;&lt; (num))
++
++/*
++ * Convert from internal to external notation
++ */
++
++static short int
++to_external(internal)
++short int internal;
++{
++ short int external;
++
++ if (internal &amp; BIT(IPX_NONE) )
++ external = IPX_NONE;
++ else
++ external = RIP_SAP;
++
++ return external;
++}
++
++/*
++ * Make a string representation of a network IP address.
++ */
++
++static char *
++ipx_ntoa(ipxaddr)
++u_int32_t ipxaddr;
++{
++ static char b[64];
++ slprintf(b, sizeof(b), &quot;%x&quot;, ipxaddr);
++ return b;
++}
++
++
++static u_char *
++setipxnodevalue(src,dst)
++u_char *src, *dst;
++{
++ int indx;
++ int item;
++
++ for (;;) {
++ if (!isxdigit (*src))
++ break;
++
++ for (indx = 0; indx &lt; 5; ++indx) {
++ dst[indx] &lt;&lt;= 4;
++ dst[indx] |= (dst[indx + 1] &gt;&gt; 4) &amp; 0x0F;
++ }
++
++ item = toupper (*src) - '0';
++ if (item &gt; 9)
++ item -= 7;
++
++ dst[5] = (dst[5] &lt;&lt; 4) | item;
++ ++src;
++ }
++ return src;
++}
++
++static int ipx_prio_our, ipx_prio_his;
++
++static int
++setipxnode(argv)
++ char **argv;
++{
++ char *end;
++ int have_his = 0;
++ u_char our_node[6];
++ u_char his_node[6];
++
++ memset (our_node, 0, 6);
++ memset (his_node, 0, 6);
++
++ end = setipxnodevalue (*argv, our_node);
++ if (*end == ':') {
++ have_his = 1;
++ end = setipxnodevalue (++end, his_node);
++ }
++
++ if (*end == '\0') {
++ ipxcp_wantoptions[0].neg_node = 1;
++ if (option_priority &gt;= ipx_prio_our) {
++ memcpy(&amp;ipxcp_wantoptions[0].our_node[0], our_node, 6);
++ ipx_prio_our = option_priority;
++ }
++ if (have_his &amp;&amp; option_priority &gt;= ipx_prio_his) {
++ memcpy(&amp;ipxcp_wantoptions[0].his_node[0], his_node, 6);
++ ipx_prio_his = option_priority;
++ }
++ return 1;
++ }
++
++ option_error(&quot;invalid parameter '%s' for ipx-node option&quot;, *argv);
++ return 0;
++}
++
++static void
++printipxnode(opt, printer, arg)
++ option_t *opt;
++ void (*printer) __P((void *, char *, ...));
++ void *arg;
++{
++ unsigned char *p;
++
++ p = ipxcp_wantoptions[0].our_node;
++ if (ipx_prio_our)
++ printer(arg, &quot;%.2x%.2x%.2x%.2x%.2x%.2x&quot;,
++ p[0], p[1], p[2], p[3], p[4], p[5]);
++ printer(arg, &quot;:&quot;);
++ p = ipxcp_wantoptions[0].his_node;
++ if (ipx_prio_his)
++ printer(arg, &quot;%.2x%.2x%.2x%.2x%.2x%.2x&quot;,
++ p[0], p[1], p[2], p[3], p[4], p[5]);
++}
++
++static int
++setipxname (argv)
++ char **argv;
++{
++ char *dest = ipxcp_wantoptions[0].name;
++ char *src = *argv;
++ int count;
++ char ch;
++
++ ipxcp_wantoptions[0].neg_name = 1;
++ ipxcp_allowoptions[0].neg_name = 1;
++ memset (dest, '\0', sizeof (ipxcp_wantoptions[0].name));
++
++ count = 0;
++ while (*src) {
++ ch = *src++;
++ if (! isalnum (ch) &amp;&amp; ch != '_') {
++ option_error(&quot;IPX router name must be alphanumeric or _&quot;);
++ return 0;
++ }
++
++ if (count &gt;= sizeof (ipxcp_wantoptions[0].name) - 1) {
++ option_error(&quot;IPX router name is limited to %d characters&quot;,
++ sizeof (ipxcp_wantoptions[0].name) - 1);
++ return 0;
++ }
++
++ dest[count++] = toupper (ch);
++ }
++ dest[count] = 0;
++
++ return 1;
++}
++
++/*
++ * ipxcp_init - Initialize IPXCP.
++ */
++static void
++ipxcp_init(unit)
++ int unit;
++{
++ fsm *f = &amp;ipxcp_fsm[unit];
++
++ f-&gt;unit = unit;
++ f-&gt;protocol = PPP_IPXCP;
++ f-&gt;callbacks = &amp;ipxcp_callbacks;
++ fsm_init(&amp;ipxcp_fsm[unit]);
++
++ memset (wo-&gt;name, 0, sizeof (wo-&gt;name));
++ memset (wo-&gt;our_node, 0, sizeof (wo-&gt;our_node));
++ memset (wo-&gt;his_node, 0, sizeof (wo-&gt;his_node));
++
++ wo-&gt;neg_nn = 1;
++ wo-&gt;neg_complete = 1;
++ wo-&gt;network = 0;
++
++ ao-&gt;neg_node = 1;
++ ao-&gt;neg_nn = 1;
++ ao-&gt;neg_name = 1;
++ ao-&gt;neg_complete = 1;
++ ao-&gt;neg_router = 1;
++
++ ao-&gt;accept_local = 0;
++ ao-&gt;accept_remote = 0;
++ ao-&gt;accept_network = 0;
++
++ wo-&gt;tried_rip = 0;
++ wo-&gt;tried_nlsp = 0;
++}
++
++/*
++ * Copy the node number
++ */
++
++static void
++copy_node (src, dst)
++u_char *src, *dst;
++{
++ memcpy (dst, src, sizeof (ipxcp_wantoptions[0].our_node));
++}
++
++/*
++ * Compare node numbers
++ */
++
++static int
++compare_node (src, dst)
++u_char *src, *dst;
++{
++ return memcmp (dst, src, sizeof (ipxcp_wantoptions[0].our_node)) == 0;
++}
++
++/*
++ * Is the node number zero?
++ */
++
++static int
++zero_node (node)
++u_char *node;
++{
++ int indx;
++ for (indx = 0; indx &lt; sizeof (ipxcp_wantoptions[0].our_node); ++indx)
++ if (node [indx] != 0)
++ return 0;
++ return 1;
++}
++
++/*
++ * Increment the node number
++ */
++
++static void
++inc_node (node)
++u_char *node;
++{
++ u_char *outp;
++ u_int32_t magic_num;
++
++ outp = node;
++ magic_num = magic();
++ *outp++ = '\0';
++ *outp++ = '\0';
++ PUTLONG (magic_num, outp);
++}
++
++/*
++ * ipxcp_open - IPXCP is allowed to come up.
++ */
++static void
++ipxcp_open(unit)
++ int unit;
++{
++ fsm_open(&amp;ipxcp_fsm[unit]);
++}
++
++/*
++ * ipxcp_close - Take IPXCP down.
++ */
++static void
++ipxcp_close(unit, reason)
++ int unit;
++ char *reason;
++{
++ fsm_close(&amp;ipxcp_fsm[unit], reason);
++}
++
++
++/*
++ * ipxcp_lowerup - The lower layer is up.
++ */
++static void
++ipxcp_lowerup(unit)
++ int unit;
++{
++ fsm_lowerup(&amp;ipxcp_fsm[unit]);
++}
++
++
++/*
++ * ipxcp_lowerdown - The lower layer is down.
++ */
++static void
++ipxcp_lowerdown(unit)
++ int unit;
++{
++ fsm_lowerdown(&amp;ipxcp_fsm[unit]);
++}
++
++
++/*
++ * ipxcp_input - Input IPXCP packet.
++ */
++static void
++ipxcp_input(unit, p, len)
++ int unit;
++ u_char *p;
++ int len;
++{
++ fsm_input(&amp;ipxcp_fsm[unit], p, len);
++}
++
++
++/*
++ * ipxcp_protrej - A Protocol-Reject was received for IPXCP.
++ *
++ * Pretend the lower layer went down, so we shut up.
++ */
++static void
++ipxcp_protrej(unit)
++ int unit;
++{
++ fsm_lowerdown(&amp;ipxcp_fsm[unit]);
++}
++
++
++/*
++ * ipxcp_resetci - Reset our CI.
++ */
++static void
++ipxcp_resetci(f)
++ fsm *f;
++{
++ wo-&gt;req_node = wo-&gt;neg_node &amp;&amp; ao-&gt;neg_node;
++ wo-&gt;req_nn = wo-&gt;neg_nn &amp;&amp; ao-&gt;neg_nn;
++
++ if (wo-&gt;our_network == 0) {
++ wo-&gt;neg_node = 1;
++ ao-&gt;accept_network = 1;
++ }
++/*
++ * If our node number is zero then change it.
++ */
++ if (zero_node (wo-&gt;our_node)) {
++ inc_node (wo-&gt;our_node);
++ ao-&gt;accept_local = 1;
++ wo-&gt;neg_node = 1;
++ }
++/*
++ * If his node number is zero then change it.
++ */
++ if (zero_node (wo-&gt;his_node)) {
++ inc_node (wo-&gt;his_node);
++ ao-&gt;accept_remote = 1;
++ }
++/*
++ * If no routing agent was specified then we do RIP/SAP according to the
++ * RFC documents. If you have specified something then OK. Otherwise, we
++ * do RIP/SAP.
++ */
++ if (ao-&gt;router == 0) {
++ ao-&gt;router |= BIT(RIP_SAP);
++ wo-&gt;router |= BIT(RIP_SAP);
++ }
++
++ /* Always specify a routing protocol unless it was REJected. */
++ wo-&gt;neg_router = 1;
++/*
++ * Start with these default values
++ */
++ *go = *wo;
++}
++
++/*
++ * ipxcp_cilen - Return length of our CI.
++ */
++
++static int
++ipxcp_cilen(f)
++ fsm *f;
++{
++ int len;
++
++ len = go-&gt;neg_nn ? CILEN_NETN : 0;
++ len += go-&gt;neg_node ? CILEN_NODEN : 0;
++ len += go-&gt;neg_name ? CILEN_NAME + strlen (go-&gt;name) - 1 : 0;
++
++ /* RFC says that defaults should not be included. */
++ if (go-&gt;neg_router &amp;&amp; to_external(go-&gt;router) != RIP_SAP)
++ len += CILEN_PROTOCOL;
++
++ return (len);
++}
++
++
++/*
++ * ipxcp_addci - Add our desired CIs to a packet.
++ */
++static void
++ipxcp_addci(f, ucp, lenp)
++ fsm *f;
++ u_char *ucp;
++ int *lenp;
++{
++/*
++ * Add the options to the record.
++ */
++ if (go-&gt;neg_nn) {
++ PUTCHAR (IPX_NETWORK_NUMBER, ucp);
++ PUTCHAR (CILEN_NETN, ucp);
++ PUTLONG (go-&gt;our_network, ucp);
++ }
++
++ if (go-&gt;neg_node) {
++ int indx;
++ PUTCHAR (IPX_NODE_NUMBER, ucp);
++ PUTCHAR (CILEN_NODEN, ucp);
++ for (indx = 0; indx &lt; sizeof (go-&gt;our_node); ++indx)
++ PUTCHAR (go-&gt;our_node[indx], ucp);
++ }
++
++ if (go-&gt;neg_name) {
++ int cilen = strlen (go-&gt;name);
++ int indx;
++ PUTCHAR (IPX_ROUTER_NAME, ucp);
++ PUTCHAR (CILEN_NAME + cilen - 1, ucp);
++ for (indx = 0; indx &lt; cilen; ++indx)
++ PUTCHAR (go-&gt;name [indx], ucp);
++ }
++
++ if (go-&gt;neg_router) {
++ short external = to_external (go-&gt;router);
++ if (external != RIP_SAP) {
++ PUTCHAR (IPX_ROUTER_PROTOCOL, ucp);
++ PUTCHAR (CILEN_PROTOCOL, ucp);
++ PUTSHORT (external, ucp);
++ }
++ }
++}
++
++/*
++ * ipxcp_ackci - Ack our CIs.
++ *
++ * Returns:
++ * 0 - Ack was bad.
++ * 1 - Ack was good.
++ */
++static int
++ipxcp_ackci(f, p, len)
++ fsm *f;
++ u_char *p;
++ int len;
++{
++ u_short cilen, citype, cishort;
++ u_char cichar;
++ u_int32_t cilong;
++
++#define ACKCIVOID(opt, neg) \
++ if (neg) { \
++ if ((len -= CILEN_VOID) &lt; 0) \
++ break; \
++ GETCHAR(citype, p); \
++ GETCHAR(cilen, p); \
++ if (cilen != CILEN_VOID || \
++ citype != opt) \
++ break; \
++ }
++
++#define ACKCICOMPLETE(opt,neg) ACKCIVOID(opt, neg)
++
++#define ACKCICHARS(opt, neg, val, cnt) \
++ if (neg) { \
++ int indx, count = cnt; \
++ len -= (count + 2); \
++ if (len &lt; 0) \
++ break; \
++ GETCHAR(citype, p); \
++ GETCHAR(cilen, p); \
++ if (cilen != (count + 2) || \
++ citype != opt) \
++ break; \
++ for (indx = 0; indx &lt; count; ++indx) {\
++ GETCHAR(cichar, p); \
++ if (cichar != ((u_char *) &amp;val)[indx]) \
++ break; \
++ }\
++ if (indx != count) \
++ break; \
++ }
++
++#define ACKCINODE(opt,neg,val) ACKCICHARS(opt,neg,val,sizeof(val))
++#define ACKCINAME(opt,neg,val) ACKCICHARS(opt,neg,val,strlen(val))
++
++#define ACKCINETWORK(opt, neg, val) \
++ if (neg) { \
++ if ((len -= CILEN_NETN) &lt; 0) \
++ break; \
++ GETCHAR(citype, p); \
++ GETCHAR(cilen, p); \
++ if (cilen != CILEN_NETN || \
++ citype != opt) \
++ break; \
++ GETLONG(cilong, p); \
++ if (cilong != val) \
++ break; \
++ }
++
++#define ACKCIPROTO(opt, neg, val) \
++ if (neg) { \
++ if (len &lt; 2) \
++ break; \
++ GETCHAR(citype, p); \
++ GETCHAR(cilen, p); \
++ if (cilen != CILEN_PROTOCOL || citype != opt) \
++ break; \
++ len -= cilen; \
++ if (len &lt; 0) \
++ break; \
++ GETSHORT(cishort, p); \
++ if (cishort != to_external (val) || cishort == RIP_SAP) \
++ break; \
++ }
++/*
++ * Process the ACK frame in the order in which the frame was assembled
++ */
++ do {
++ ACKCINETWORK (IPX_NETWORK_NUMBER, go-&gt;neg_nn, go-&gt;our_network);
++ ACKCINODE (IPX_NODE_NUMBER, go-&gt;neg_node, go-&gt;our_node);
++ ACKCINAME (IPX_ROUTER_NAME, go-&gt;neg_name, go-&gt;name);
++ if (len &gt; 0)
++ ACKCIPROTO (IPX_ROUTER_PROTOCOL, go-&gt;neg_router, go-&gt;router);
++/*
++ * This is the end of the record.
++ */
++ if (len == 0)
++ return (1);
++ } while (0);
++/*
++ * The frame is invalid
++ */
++ IPXCPDEBUG((&quot;ipxcp_ackci: received bad Ack!&quot;));
++ return (0);
++}
++
++/*
++ * ipxcp_nakci - Peer has sent a NAK for some of our CIs.
++ * This should not modify any state if the Nak is bad
++ * or if IPXCP is in the OPENED state.
++ *
++ * Returns:
++ * 0 - Nak was bad.
++ * 1 - Nak was good.
++ */
++
++static int
++ipxcp_nakci(f, p, len)
++ fsm *f;
++ u_char *p;
++ int len;
++{
++ u_char citype, cilen, *next;
++ u_short s;
++ u_int32_t l;
++ ipxcp_options no; /* options we've seen Naks for */
++ ipxcp_options try; /* options to request next time */
++
++ BZERO(&amp;no, sizeof(no));
++ try = *go;
++
++ while (len &gt; CILEN_VOID) {
++ GETCHAR (citype, p);
++ GETCHAR (cilen, p);
++ len -= cilen;
++ if (len &lt; 0)
++ goto bad;
++ next = &amp;p [cilen - CILEN_VOID];
++
++ switch (citype) {
++ case IPX_NETWORK_NUMBER:
++ if (!go-&gt;neg_nn || no.neg_nn || (cilen != CILEN_NETN))
++ goto bad;
++ no.neg_nn = 1;
++
++ GETLONG(l, p);
++ if (l &amp;&amp; ao-&gt;accept_network)
++ try.our_network = l;
++ break;
++
++ case IPX_NODE_NUMBER:
++ if (!go-&gt;neg_node || no.neg_node || (cilen != CILEN_NODEN))
++ goto bad;
++ no.neg_node = 1;
++
++ if (!zero_node (p) &amp;&amp; ao-&gt;accept_local &amp;&amp;
++ ! compare_node (p, ho-&gt;his_node))
++ copy_node (p, try.our_node);
++ break;
++
++ /* This has never been sent. Ignore the NAK frame */
++ case IPX_COMPRESSION_PROTOCOL:
++ goto bad;
++
++ case IPX_ROUTER_PROTOCOL:
++ if (!go-&gt;neg_router || (cilen &lt; CILEN_PROTOCOL))
++ goto bad;
++
++ GETSHORT (s, p);
++ if (s &gt; 15) /* This is just bad, but ignore for now. */
++ break;
++
++ s = BIT(s);
++ if (no.router &amp; s) /* duplicate NAKs are always bad */
++ goto bad;
++
++ if (no.router == 0) /* Reset on first NAK only */
++ try.router = 0;
++
++ no.router |= s;
++ try.router |= s;
++ try.neg_router = 1;
++ break;
++
++ /* These, according to the RFC, must never be NAKed. */
++ case IPX_ROUTER_NAME:
++ case IPX_COMPLETE:
++ goto bad;
++
++ /* These are for options which we have not seen. */
++ default:
++ break;
++ }
++ p = next;
++ }
++
++ /*
++ * Do not permit the peer to force a router protocol which we do not
++ * support. However, default to the condition that will accept &quot;NONE&quot;.
++ */
++ try.router &amp;= (ao-&gt;router | BIT(IPX_NONE));
++ if (try.router == 0 &amp;&amp; ao-&gt;router != 0)
++ try.router = BIT(IPX_NONE);
++
++ if (try.router != 0)
++ try.neg_router = 1;
++
++ /*
++ * OK, the Nak is good. Now we can update state.
++ * If there are any options left, we ignore them.
++ */
++ if (f-&gt;state != OPENED)
++ *go = try;
++
++ return 1;
++
++bad:
++ IPXCPDEBUG((&quot;ipxcp_nakci: received bad Nak!&quot;));
++ return 0;
++}
++
++/*
++ * ipxcp_rejci - Reject some of our CIs.
++ */
++static int
++ipxcp_rejci(f, p, len)
++ fsm *f;
++ u_char *p;
++ int len;
++{
++ u_short cilen, citype, cishort;
++ u_char cichar;
++ u_int32_t cilong;
++ ipxcp_options try; /* options to request next time */
++
++#define REJCINETWORK(opt, neg, val) \
++ if (neg &amp;&amp; p[0] == opt) { \
++ if ((len -= CILEN_NETN) &lt; 0) \
++ break; \
++ GETCHAR(citype, p); \
++ GETCHAR(cilen, p); \
++ if (cilen != CILEN_NETN || \
++ citype != opt) \
++ break; \
++ GETLONG(cilong, p); \
++ if (cilong != val) \
++ break; \
++ neg = 0; \
++ }
++
++#define REJCICHARS(opt, neg, val, cnt) \
++ if (neg &amp;&amp; p[0] == opt) { \
++ int indx, count = cnt; \
++ len -= (count + 2); \
++ if (len &lt; 0) \
++ break; \
++ GETCHAR(citype, p); \
++ GETCHAR(cilen, p); \
++ if (cilen != (count + 2) || \
++ citype != opt) \
++ break; \
++ for (indx = 0; indx &lt; count; ++indx) {\
++ GETCHAR(cichar, p); \
++ if (cichar != ((u_char *) &amp;val)[indx]) \
++ break; \
++ }\
++ if (indx != count) \
++ break; \
++ neg = 0; \
++ }
++
++#define REJCINODE(opt,neg,val) REJCICHARS(opt,neg,val,sizeof(val))
++#define REJCINAME(opt,neg,val) REJCICHARS(opt,neg,val,strlen(val))
++
++#define REJCIVOID(opt, neg) \
++ if (neg &amp;&amp; p[0] == opt) { \
++ if ((len -= CILEN_VOID) &lt; 0) \
++ break; \
++ GETCHAR(citype, p); \
++ GETCHAR(cilen, p); \
++ if (cilen != CILEN_VOID || citype != opt) \
++ break; \
++ neg = 0; \
++ }
++
++/* a reject for RIP/SAP is invalid since we don't send it and you can't
++ reject something which is not sent. (You can NAK, but you can't REJ.) */
++#define REJCIPROTO(opt, neg, val, bit) \
++ if (neg &amp;&amp; p[0] == opt) { \
++ if ((len -= CILEN_PROTOCOL) &lt; 0) \
++ break; \
++ GETCHAR(citype, p); \
++ GETCHAR(cilen, p); \
++ if (cilen != CILEN_PROTOCOL) \
++ break; \
++ GETSHORT(cishort, p); \
++ if (cishort != to_external (val) || cishort == RIP_SAP) \
++ break; \
++ neg = 0; \
++ }
++/*
++ * Any Rejected CIs must be in exactly the same order that we sent.
++ * Check packet length and CI length at each step.
++ * If we find any deviations, then this packet is bad.
++ */
++ try = *go;
++
++ do {
++ REJCINETWORK (IPX_NETWORK_NUMBER, try.neg_nn, try.our_network);
++ REJCINODE (IPX_NODE_NUMBER, try.neg_node, try.our_node);
++ REJCINAME (IPX_ROUTER_NAME, try.neg_name, try.name);
++ REJCIPROTO (IPX_ROUTER_PROTOCOL, try.neg_router, try.router, 0);
++/*
++ * This is the end of the record.
++ */
++ if (len == 0) {
++ if (f-&gt;state != OPENED)
++ *go = try;
++ return (1);
++ }
++ } while (0);
++/*
++ * The frame is invalid at this point.
++ */
++ IPXCPDEBUG((&quot;ipxcp_rejci: received bad Reject!&quot;));
++ return 0;
++}
++
++/*
++ * ipxcp_reqci - Check the peer's requested CIs and send appropriate response.
++ *
++ * Returns: CONFACK, CONFNAK or CONFREJ and input packet modified
++ * appropriately. If reject_if_disagree is non-zero, doesn't return
++ * CONFNAK; returns CONFREJ if it can't return CONFACK.
++ */
++static int
++ipxcp_reqci(f, inp, len, reject_if_disagree)
++ fsm *f;
++ u_char *inp; /* Requested CIs */
++ int *len; /* Length of requested CIs */
++ int reject_if_disagree;
++{
++ u_char *cip, *next; /* Pointer to current and next CIs */
++ u_short cilen, citype; /* Parsed len, type */
++ u_short cishort; /* Parsed short value */
++ u_int32_t cinetwork; /* Parsed address values */
++ int rc = CONFACK; /* Final packet return code */
++ int orc; /* Individual option return code */
++ u_char *p; /* Pointer to next char to parse */
++ u_char *ucp = inp; /* Pointer to current output char */
++ int l = *len; /* Length left */
++
++ /*
++ * Reset all his options.
++ */
++ BZERO(ho, sizeof(*ho));
++
++ /*
++ * Process all his options.
++ */
++ next = inp;
++ while (l) {
++ orc = CONFACK; /* Assume success */
++ cip = p = next; /* Remember begining of CI */
++ if (l &lt; 2 || /* Not enough data for CI header or */
++ p[1] &lt; 2 || /* CI length too small or */
++ p[1] &gt; l) { /* CI length too big? */
++ IPXCPDEBUG((&quot;ipxcp_reqci: bad CI length!&quot;));
++ orc = CONFREJ; /* Reject bad CI */
++ cilen = l; /* Reject till end of packet */
++ l = 0; /* Don't loop again */
++ goto endswitch;
++ }
++ GETCHAR(citype, p); /* Parse CI type */
++ GETCHAR(cilen, p); /* Parse CI length */
++ l -= cilen; /* Adjust remaining length */
++ next += cilen; /* Step to next CI */
++
++ switch (citype) { /* Check CI type */
++/*
++ * The network number must match. Choose the larger of the two.
++ */
++ case IPX_NETWORK_NUMBER:
++ /* if we wont negotiate the network number or the length is wrong
++ then reject the option */
++ if ( !ao-&gt;neg_nn || cilen != CILEN_NETN ) {
++ orc = CONFREJ;
++ break;
++ }
++ GETLONG(cinetwork, p);
++
++ /* If the network numbers match then acknowledge them. */
++ if (cinetwork != 0) {
++ ho-&gt;his_network = cinetwork;
++ ho-&gt;neg_nn = 1;
++ if (wo-&gt;our_network == cinetwork)
++ break;
++/*
++ * If the network number is not given or we don't accept their change or
++ * the network number is too small then NAK it.
++ */
++ if (! ao-&gt;accept_network || cinetwork &lt; wo-&gt;our_network) {
++ DECPTR (sizeof (u_int32_t), p);
++ PUTLONG (wo-&gt;our_network, p);
++ orc = CONFNAK;
++ }
++ break;
++ }
++/*
++ * The peer sent '0' for the network. Give it ours if we have one.
++ */
++ if (go-&gt;our_network != 0) {
++ DECPTR (sizeof (u_int32_t), p);
++ PUTLONG (wo-&gt;our_network, p);
++ orc = CONFNAK;
++/*
++ * We don't have one. Reject the value.
++ */
++ } else
++ orc = CONFREJ;
++
++ break;
++/*
++ * The node number is required
++ */
++ case IPX_NODE_NUMBER:
++ /* if we wont negotiate the node number or the length is wrong
++ then reject the option */
++ if ( cilen != CILEN_NODEN ) {
++ orc = CONFREJ;
++ break;
++ }
++
++ copy_node (p, ho-&gt;his_node);
++ ho-&gt;neg_node = 1;
++/*
++ * If the remote does not have a number and we do then NAK it with the value
++ * which we have for it. (We never have a default value of zero.)
++ */
++ if (zero_node (ho-&gt;his_node)) {
++ orc = CONFNAK;
++ copy_node (wo-&gt;his_node, p);
++ INCPTR (sizeof (wo-&gt;his_node), p);
++ break;
++ }
++/*
++ * If you have given me the expected network node number then I'll accept
++ * it now.
++ */
++ if (compare_node (wo-&gt;his_node, ho-&gt;his_node)) {
++ orc = CONFACK;
++ ho-&gt;neg_node = 1;
++ INCPTR (sizeof (wo-&gt;his_node), p);
++ break;
++ }
++/*
++ * If his node number is the same as ours then ask him to try the next
++ * value.
++ */
++ if (compare_node (ho-&gt;his_node, go-&gt;our_node)) {
++ inc_node (ho-&gt;his_node);
++ orc = CONFNAK;
++ copy_node (ho-&gt;his_node, p);
++ INCPTR (sizeof (wo-&gt;his_node), p);
++ break;
++ }
++/*
++ * If we don't accept a new value then NAK it.
++ */
++ if (! ao-&gt;accept_remote) {
++ copy_node (wo-&gt;his_node, p);
++ INCPTR (sizeof (wo-&gt;his_node), p);
++ orc = CONFNAK;
++ break;
++ }
++ orc = CONFACK;
++ ho-&gt;neg_node = 1;
++ INCPTR (sizeof (wo-&gt;his_node), p);
++ break;
++/*
++ * Compression is not desired at this time. It is always rejected.
++ */
++ case IPX_COMPRESSION_PROTOCOL:
++ orc = CONFREJ;
++ break;
++/*
++ * The routing protocol is a bitmask of various types. Any combination
++ * of the values RIP_SAP and NLSP are permissible. 'IPX_NONE' for no
++ * routing protocol must be specified only once.
++ */
++ case IPX_ROUTER_PROTOCOL:
++ if ( !ao-&gt;neg_router || cilen &lt; CILEN_PROTOCOL ) {
++ orc = CONFREJ;
++ break;
++ }
++
++ GETSHORT (cishort, p);
++
++ if (wo-&gt;neg_router == 0) {
++ wo-&gt;neg_router = 1;
++ wo-&gt;router = BIT(IPX_NONE);
++ }
++
++ if ((cishort == IPX_NONE &amp;&amp; ho-&gt;router != 0) ||
++ (ho-&gt;router &amp; BIT(IPX_NONE))) {
++ orc = CONFREJ;
++ break;
++ }
++
++ cishort = BIT(cishort);
++ if (ho-&gt;router &amp; cishort) {
++ orc = CONFREJ;
++ break;
++ }
++
++ ho-&gt;router |= cishort;
++ ho-&gt;neg_router = 1;
++
++ /* Finally do not allow a router protocol which we do not
++ support. */
++
++ if ((cishort &amp; (ao-&gt;router | BIT(IPX_NONE))) == 0) {
++ int protocol;
++
++ if (cishort == BIT(NLSP) &amp;&amp;
++ (ao-&gt;router &amp; BIT(RIP_SAP)) &amp;&amp;
++ !wo-&gt;tried_rip) {
++ protocol = RIP_SAP;
++ wo-&gt;tried_rip = 1;
++ } else
++ protocol = IPX_NONE;
++
++ DECPTR (sizeof (u_int16_t), p);
++ PUTSHORT (protocol, p);
++ orc = CONFNAK;
++ }
++ break;
++/*
++ * The router name is advisorary. Just accept it if it is not too large.
++ */
++ case IPX_ROUTER_NAME:
++ if (cilen &gt;= CILEN_NAME) {
++ int name_size = cilen - CILEN_NAME;
++ if (name_size &gt; sizeof (ho-&gt;name))
++ name_size = sizeof (ho-&gt;name) - 1;
++ memset (ho-&gt;name, 0, sizeof (ho-&gt;name));
++ memcpy (ho-&gt;name, p, name_size);
++ ho-&gt;name [name_size] = '\0';
++ ho-&gt;neg_name = 1;
++ orc = CONFACK;
++ break;
++ }
++ orc = CONFREJ;
++ break;
++/*
++ * This is advisorary.
++ */
++ case IPX_COMPLETE:
++ if (cilen != CILEN_COMPLETE)
++ orc = CONFREJ;
++ else {
++ ho-&gt;neg_complete = 1;
++ orc = CONFACK;
++ }
++ break;
++/*
++ * All other entries are not known at this time.
++ */
++ default:
++ orc = CONFREJ;
++ break;
++ }
++endswitch:
++ if (orc == CONFACK &amp;&amp; /* Good CI */
++ rc != CONFACK) /* but prior CI wasnt? */
++ continue; /* Don't send this one */
++
++ if (orc == CONFNAK) { /* Nak this CI? */
++ if (reject_if_disagree) /* Getting fed up with sending NAKs? */
++ orc = CONFREJ; /* Get tough if so */
++ if (rc == CONFREJ) /* Rejecting prior CI? */
++ continue; /* Don't send this one */
++ if (rc == CONFACK) { /* Ack'd all prior CIs? */
++ rc = CONFNAK; /* Not anymore... */
++ ucp = inp; /* Backup */
++ }
++ }
++
++ if (orc == CONFREJ &amp;&amp; /* Reject this CI */
++ rc != CONFREJ) { /* but no prior ones? */
++ rc = CONFREJ;
++ ucp = inp; /* Backup */
++ }
++
++ /* Need to move CI? */
++ if (ucp != cip)
++ BCOPY(cip, ucp, cilen); /* Move it */
++
++ /* Update output pointer */
++ INCPTR(cilen, ucp);
++ }
++
++ /*
++ * If we aren't rejecting this packet, and we want to negotiate
++ * their address, and they didn't send their address, then we
++ * send a NAK with a IPX_NODE_NUMBER option appended. We assume the
++ * input buffer is long enough that we can append the extra
++ * option safely.
++ */
++
++ if (rc != CONFREJ &amp;&amp; !ho-&gt;neg_node &amp;&amp;
++ wo-&gt;req_nn &amp;&amp; !reject_if_disagree) {
++ if (rc == CONFACK) {
++ rc = CONFNAK;
++ wo-&gt;req_nn = 0; /* don't ask again */
++ ucp = inp; /* reset pointer */
++ }
++
++ if (zero_node (wo-&gt;his_node))
++ inc_node (wo-&gt;his_node);
++
++ PUTCHAR (IPX_NODE_NUMBER, ucp);
++ PUTCHAR (CILEN_NODEN, ucp);
++ copy_node (wo-&gt;his_node, ucp);
++ INCPTR (sizeof (wo-&gt;his_node), ucp);
++ }
++
++ *len = ucp - inp; /* Compute output length */
++ IPXCPDEBUG((&quot;ipxcp: returning Configure-%s&quot;, CODENAME(rc)));
++ return (rc); /* Return final code */
++}
++
++/*
++ * ipxcp_up - IPXCP has come UP.
++ *
++ * Configure the IP network interface appropriately and bring it up.
++ */
++
++static void
++ipxcp_up(f)
++ fsm *f;
++{
++ int unit = f-&gt;unit;
++
++ IPXCPDEBUG((&quot;ipxcp: up&quot;));
++
++ /* The default router protocol is RIP/SAP. */
++ if (ho-&gt;router == 0)
++ ho-&gt;router = BIT(RIP_SAP);
++
++ if (go-&gt;router == 0)
++ go-&gt;router = BIT(RIP_SAP);
++
++ /* Fetch the network number */
++ if (!ho-&gt;neg_nn)
++ ho-&gt;his_network = wo-&gt;his_network;
++
++ if (!ho-&gt;neg_node)
++ copy_node (wo-&gt;his_node, ho-&gt;his_node);
++
++ if (!wo-&gt;neg_node &amp;&amp; !go-&gt;neg_node)
++ copy_node (wo-&gt;our_node, go-&gt;our_node);
++
++ if (zero_node (go-&gt;our_node)) {
++ static char errmsg[] = &quot;Could not determine local IPX node address&quot;;
++ if (debug)
++ error(errmsg);
++ ipxcp_close(f-&gt;unit, errmsg);
++ return;
++ }
++
++ go-&gt;network = go-&gt;our_network;
++ if (ho-&gt;his_network != 0 &amp;&amp; ho-&gt;his_network &gt; go-&gt;network)
++ go-&gt;network = ho-&gt;his_network;
++
++ if (go-&gt;network == 0) {
++ static char errmsg[] = &quot;Can not determine network number&quot;;
++ if (debug)
++ error(errmsg);
++ ipxcp_close (unit, errmsg);
++ return;
++ }
++
++ /* bring the interface up */
++ if (!sifup(unit)) {
++ if (debug)
++ warn(&quot;sifup failed (IPX)&quot;);
++ ipxcp_close(unit, &quot;Interface configuration failed&quot;);
++ return;
++ }
++ ipxcp_is_up = 1;
++
++ /* set the network number for IPX */
++ if (!sipxfaddr(unit, go-&gt;network, go-&gt;our_node)) {
++ if (debug)
++ warn(&quot;sipxfaddr failed&quot;);
++ ipxcp_close(unit, &quot;Interface configuration failed&quot;);
++ return;
++ }
++
++ np_up(f-&gt;unit, PPP_IPX);
++
++ /*
++ * Execute the ipx-up script, like this:
++ * /etc/ppp/ipx-up interface tty speed local-IPX remote-IPX
++ */
++
++ ipxcp_script (f, _PATH_IPXUP);
++}
++
++/*
++ * ipxcp_down - IPXCP has gone DOWN.
++ *
++ * Take the IP network interface down, clear its addresses
++ * and delete routes through it.
++ */
++
++static void
++ipxcp_down(f)
++ fsm *f;
++{
++ IPXCPDEBUG((&quot;ipxcp: down&quot;));
++
++ if (!ipxcp_is_up)
++ return;
++ ipxcp_is_up = 0;
++ np_down(f-&gt;unit, PPP_IPX);
++ cipxfaddr(f-&gt;unit);
++ sifnpmode(f-&gt;unit, PPP_IPX, NPMODE_DROP);
++ sifdown(f-&gt;unit);
++ ipxcp_script (f, _PATH_IPXDOWN);
++}
++
++
++/*
++ * ipxcp_finished - possibly shut down the lower layers.
++ */
++static void
++ipxcp_finished(f)
++ fsm *f;
++{
++ np_finished(f-&gt;unit, PPP_IPX);
++}
++
++
++/*
++ * ipxcp_script - Execute a script with arguments
++ * interface-name tty-name speed local-IPX remote-IPX networks.
++ */
++static void
++ipxcp_script(f, script)
++ fsm *f;
++ char *script;
++{
++ char strspeed[32], strlocal[32], strremote[32];
++ char strnetwork[32], strpid[32];
++ char *argv[14], strproto_lcl[32], strproto_rmt[32];
++
++ slprintf(strpid, sizeof(strpid), &quot;%d&quot;, getpid());
++ slprintf(strspeed, sizeof(strspeed),&quot;%d&quot;, baud_rate);
++
++ strproto_lcl[0] = '\0';
++ if (go-&gt;neg_router &amp;&amp; ((go-&gt;router &amp; BIT(IPX_NONE)) == 0)) {
++ if (go-&gt;router &amp; BIT(RIP_SAP))
++ strlcpy (strproto_lcl, &quot;RIP &quot;, sizeof(strproto_lcl));
++ if (go-&gt;router &amp; BIT(NLSP))
++ strlcat (strproto_lcl, &quot;NLSP &quot;, sizeof(strproto_lcl));
++ }
++
++ if (strproto_lcl[0] == '\0')
++ strlcpy (strproto_lcl, &quot;NONE &quot;, sizeof(strproto_lcl));
++
++ strproto_lcl[strlen (strproto_lcl)-1] = '\0';
++
++ strproto_rmt[0] = '\0';
++ if (ho-&gt;neg_router &amp;&amp; ((ho-&gt;router &amp; BIT(IPX_NONE)) == 0)) {
++ if (ho-&gt;router &amp; BIT(RIP_SAP))
++ strlcpy (strproto_rmt, &quot;RIP &quot;, sizeof(strproto_rmt));
++ if (ho-&gt;router &amp; BIT(NLSP))
++ strlcat (strproto_rmt, &quot;NLSP &quot;, sizeof(strproto_rmt));
++ }
++
++ if (strproto_rmt[0] == '\0')
++ strlcpy (strproto_rmt, &quot;NONE &quot;, sizeof(strproto_rmt));
++
++ strproto_rmt[strlen (strproto_rmt)-1] = '\0';
++
++ strlcpy (strnetwork, ipx_ntoa (go-&gt;network), sizeof(strnetwork));
++
++ slprintf (strlocal, sizeof(strlocal), &quot;%0.6B&quot;, go-&gt;our_node);
++
++ slprintf (strremote, sizeof(strremote), &quot;%0.6B&quot;, ho-&gt;his_node);
++
++ argv[0] = script;
++ argv[1] = ifname;
++ argv[2] = devnam;
++ argv[3] = strspeed;
++ argv[4] = strnetwork;
++ argv[5] = strlocal;
++ argv[6] = strremote;
++ argv[7] = strproto_lcl;
++ argv[8] = strproto_rmt;
++ argv[9] = go-&gt;name;
++ argv[10] = ho-&gt;name;
++ argv[11] = ipparam;
++ argv[12] = strpid;
++ argv[13] = NULL;
++ run_program(script, argv, 0, NULL, NULL);
++}
++
++/*
++ * ipxcp_printpkt - print the contents of an IPXCP packet.
++ */
++static char *ipxcp_codenames[] = {
++ &quot;ConfReq&quot;, &quot;ConfAck&quot;, &quot;ConfNak&quot;, &quot;ConfRej&quot;,
++ &quot;TermReq&quot;, &quot;TermAck&quot;, &quot;CodeRej&quot;
++};
++
++static int
++ipxcp_printpkt(p, plen, printer, arg)
++ u_char *p;
++ int plen;
++ void (*printer) __P((void *, char *, ...));
++ void *arg;
++{
++ int code, id, len, olen;
++ u_char *pstart, *optend;
++ u_short cishort;
++ u_int32_t cilong;
++
++ if (plen &lt; HEADERLEN)
++ return 0;
++ pstart = p;
++ GETCHAR(code, p);
++ GETCHAR(id, p);
++ GETSHORT(len, p);
++ if (len &lt; HEADERLEN || len &gt; plen)
++ return 0;
++
++ if (code &gt;= 1 &amp;&amp; code &lt;= sizeof(ipxcp_codenames) / sizeof(char *))
++ printer(arg, &quot; %s&quot;, ipxcp_codenames[code-1]);
++ else
++ printer(arg, &quot; code=0x%x&quot;, code);
++ printer(arg, &quot; id=0x%x&quot;, id);
++ len -= HEADERLEN;
++ switch (code) {
++ case CONFREQ:
++ case CONFACK:
++ case CONFNAK:
++ case CONFREJ:
++ /* print option list */
++ while (len &gt;= 2) {
++ GETCHAR(code, p);
++ GETCHAR(olen, p);
++ p -= 2;
++ if (olen &lt; CILEN_VOID || olen &gt; len) {
++ break;
++ }
++ printer(arg, &quot; &lt;&quot;);
++ len -= olen;
++ optend = p + olen;
++ switch (code) {
++ case IPX_NETWORK_NUMBER:
++ if (olen == CILEN_NETN) {
++ p += 2;
++ GETLONG(cilong, p);
++ printer (arg, &quot;network %s&quot;, ipx_ntoa (cilong));
++ }
++ break;
++ case IPX_NODE_NUMBER:
++ if (olen == CILEN_NODEN) {
++ p += 2;
++ printer (arg, &quot;node &quot;);
++ while (p &lt; optend) {
++ GETCHAR(code, p);
++ printer(arg, &quot;%.2x&quot;, (int) (unsigned int) (unsigned char) code);
++ }
++ }
++ break;
++ case IPX_COMPRESSION_PROTOCOL:
++ if (olen == CILEN_COMPRESS) {
++ p += 2;
++ GETSHORT (cishort, p);
++ printer (arg, &quot;compression %d&quot;, (int) cishort);
++ }
++ break;
++ case IPX_ROUTER_PROTOCOL:
++ if (olen == CILEN_PROTOCOL) {
++ p += 2;
++ GETSHORT (cishort, p);
++ printer (arg, &quot;router proto %d&quot;, (int) cishort);
++ }
++ break;
++ case IPX_ROUTER_NAME:
++ if (olen &gt;= CILEN_NAME) {
++ p += 2;
++ printer (arg, &quot;router name \&quot;&quot;);
++ while (p &lt; optend) {
++ GETCHAR(code, p);
++ if (code &gt;= 0x20 &amp;&amp; code &lt;= 0x7E)
++ printer (arg, &quot;%c&quot;, (int) (unsigned int) (unsigned char) code);
++ else
++ printer (arg, &quot; \\%.2x&quot;, (int) (unsigned int) (unsigned char) code);
++ }
++ printer (arg, &quot;\&quot;&quot;);
++ }
++ break;
++ case IPX_COMPLETE:
++ if (olen == CILEN_COMPLETE) {
++ p += 2;
++ printer (arg, &quot;complete&quot;);
++ }
++ break;
++ default:
++ break;
++ }
++
++ while (p &lt; optend) {
++ GETCHAR(code, p);
++ printer(arg, &quot; %.2x&quot;, (int) (unsigned int) (unsigned char) code);
++ }
++ printer(arg, &quot;&gt;&quot;);
++ }
++ break;
++
++ case TERMACK:
++ case TERMREQ:
++ if (len &gt; 0 &amp;&amp; *p &gt;= ' ' &amp;&amp; *p &lt; 0x7f) {
++ printer(arg, &quot; &quot;);
++ print_string(p, len, printer, arg);
++ p += len;
++ len = 0;
++ }
++ break;
++ }
++
++ /* print the rest of the bytes in the packet */
++ for (; len &gt; 0; --len) {
++ GETCHAR(code, p);
++ printer(arg, &quot; %.2x&quot;, (int) (unsigned int) (unsigned char) code);
++ }
++
++ return p - pstart;
++}
++#endif /* ifdef IPX_CHANGE */
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/pppd/ipxcp.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1ppppppdipxcph">Added: drakx/trunk/mdk-stage1/ppp/pppd/ipxcp.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/ipxcp.h (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/ipxcp.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,71 @@
++/*
++ * ipxcp.h - IPX Control Protocol definitions.
++ *
++ * Copyright (c) 1989 Carnegie Mellon University.
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms are permitted
++ * provided that the above copyright notice and this paragraph are
++ * duplicated in all such forms and that any documentation,
++ * advertising materials, and other materials related to such
++ * distribution and use acknowledge that the software was developed
++ * by Carnegie Mellon University. The name of the
++ * University may not be used to endorse or promote products derived
++ * from this software without specific prior written permission.
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
++ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
++ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++ *
++ * $Id: ipxcp.h 195720 2001-06-11 11:44:34Z gc $
++ */
++
++/*
++ * Options.
++ */
++#define IPX_NETWORK_NUMBER 1 /* IPX Network Number */
++#define IPX_NODE_NUMBER 2
++#define IPX_COMPRESSION_PROTOCOL 3
++#define IPX_ROUTER_PROTOCOL 4
++#define IPX_ROUTER_NAME 5
++#define IPX_COMPLETE 6
++
++/* Values for the router protocol */
++#define IPX_NONE 0
++#define RIP_SAP 2
++#define NLSP 4
++
++typedef struct ipxcp_options {
++ bool neg_node; /* Negotiate IPX node number? */
++ bool req_node; /* Ask peer to send IPX node number? */
++
++ bool neg_nn; /* Negotiate IPX network number? */
++ bool req_nn; /* Ask peer to send IPX network number */
++
++ bool neg_name; /* Negotiate IPX router name */
++ bool neg_complete; /* Negotiate completion */
++ bool neg_router; /* Negotiate IPX router number */
++
++ bool accept_local; /* accept peer's value for ournode */
++ bool accept_remote; /* accept peer's value for hisnode */
++ bool accept_network; /* accept network number */
++
++ bool tried_nlsp; /* I have suggested NLSP already */
++ bool tried_rip; /* I have suggested RIP/SAP already */
++
++ u_int32_t his_network; /* base network number */
++ u_int32_t our_network; /* our value for network number */
++ u_int32_t network; /* the final network number */
++
++ u_char his_node[6]; /* peer's node number */
++ u_char our_node[6]; /* our node number */
++ u_char name [48]; /* name of the router */
++ int router; /* routing protocol */
++} ipxcp_options;
++
++extern fsm ipxcp_fsm[];
++extern ipxcp_options ipxcp_wantoptions[];
++extern ipxcp_options ipxcp_gotoptions[];
++extern ipxcp_options ipxcp_allowoptions[];
++extern ipxcp_options ipxcp_hisoptions[];
++
++extern struct protent ipxcp_protent;
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/pppd/ipxcp.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1ppppppdlcpc">Added: drakx/trunk/mdk-stage1/ppp/pppd/lcp.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/lcp.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/lcp.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,2224 @@
++/*
++ * lcp.c - PPP Link Control Protocol.
++ *
++ * Copyright (c) 1989 Carnegie Mellon University.
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms are permitted
++ * provided that the above copyright notice and this paragraph are
++ * duplicated in all such forms and that any documentation,
++ * advertising materials, and other materials related to such
++ * distribution and use acknowledge that the software was developed
++ * by Carnegie Mellon University. The name of the
++ * University may not be used to endorse or promote products derived
++ * from this software without specific prior written permission.
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
++ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
++ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++ */
++
++#define RCSID &quot;$Id: lcp.c 195720 2001-06-11 11:44:34Z gc $&quot;
++
++/*
++ * TODO:
++ */
++
++#include &lt;stdio.h&gt;
++#include &lt;string.h&gt;
++#include &lt;stdlib.h&gt;
++
++#include &quot;pppd.h&quot;
++#include &quot;fsm.h&quot;
++#include &quot;lcp.h&quot;
++#include &quot;chap.h&quot;
++#include &quot;magic.h&quot;
++
++static const char rcsid[] = RCSID;
++
++/*
++ * When the link comes up we want to be able to wait for a short while,
++ * or until seeing some input from the peer, before starting to send
++ * configure-requests. We do this by delaying the fsm_lowerup call.
++ */
++/* steal a bit in fsm flags word */
++#define DELAYED_UP 0x100
++
++static void lcp_delayed_up __P((void *));
++
++/*
++ * LCP-related command-line options.
++ */
++int lcp_echo_interval = 0; /* Interval between LCP echo-requests */
++int lcp_echo_fails = 0; /* Tolerance to unanswered echo-requests */
++bool lax_recv = 0; /* accept control chars in asyncmap */
++bool noendpoint = 0; /* don't send/accept endpoint discriminator */
++
++static int noopt __P((char **));
++
++#ifdef HAVE_MULTILINK
++static int setendpoint __P((char **));
++static void printendpoint __P((option_t *, void (*)(void *, char *, ...),
++ void *));
++#endif /* HAVE_MULTILINK */
++
++static option_t lcp_option_list[] = {
++ /* LCP options */
++ { &quot;-all&quot;, o_special_noarg, (void *)noopt,
++ &quot;Don't request/allow any LCP options&quot; },
++
++ { &quot;noaccomp&quot;, o_bool, &amp;lcp_wantoptions[0].neg_accompression,
++ &quot;Disable address/control compression&quot;,
++ OPT_A2CLR, &amp;lcp_allowoptions[0].neg_accompression },
++ { &quot;-ac&quot;, o_bool, &amp;lcp_wantoptions[0].neg_accompression,
++ &quot;Disable address/control compression&quot;,
++ OPT_ALIAS | OPT_A2CLR, &amp;lcp_allowoptions[0].neg_accompression },
++
++ { &quot;asyncmap&quot;, o_uint32, &amp;lcp_wantoptions[0].asyncmap,
++ &quot;Set asyncmap (for received packets)&quot;,
++ OPT_OR, &amp;lcp_wantoptions[0].neg_asyncmap },
++ { &quot;-as&quot;, o_uint32, &amp;lcp_wantoptions[0].asyncmap,
++ &quot;Set asyncmap (for received packets)&quot;,
++ OPT_ALIAS | OPT_OR, &amp;lcp_wantoptions[0].neg_asyncmap },
++ { &quot;default-asyncmap&quot;, o_uint32, &amp;lcp_wantoptions[0].asyncmap,
++ &quot;Disable asyncmap negotiation&quot;,
++ OPT_OR | OPT_NOARG | OPT_VAL(~0U) | OPT_A2CLR,
++ &amp;lcp_allowoptions[0].neg_asyncmap },
++ { &quot;-am&quot;, o_uint32, &amp;lcp_wantoptions[0].asyncmap,
++ &quot;Disable asyncmap negotiation&quot;,
++ OPT_ALIAS | OPT_OR | OPT_NOARG | OPT_VAL(~0U) | OPT_A2CLR,
++ &amp;lcp_allowoptions[0].neg_asyncmap },
++
++ { &quot;nomagic&quot;, o_bool, &amp;lcp_wantoptions[0].neg_magicnumber,
++ &quot;Disable magic number negotiation (looped-back line detection)&quot;,
++ OPT_A2CLR, &amp;lcp_allowoptions[0].neg_magicnumber },
++ { &quot;-mn&quot;, o_bool, &amp;lcp_wantoptions[0].neg_magicnumber,
++ &quot;Disable magic number negotiation (looped-back line detection)&quot;,
++ OPT_ALIAS | OPT_A2CLR, &amp;lcp_allowoptions[0].neg_magicnumber },
++
++ { &quot;mru&quot;, o_int, &amp;lcp_wantoptions[0].mru,
++ &quot;Set MRU (maximum received packet size) for negotiation&quot;,
++ OPT_PRIO, &amp;lcp_wantoptions[0].neg_mru },
++ { &quot;default-mru&quot;, o_bool, &amp;lcp_wantoptions[0].neg_mru,
++ &quot;Disable MRU negotiation (use default 1500)&quot;,
++ OPT_PRIOSUB | OPT_A2CLR, &amp;lcp_allowoptions[0].neg_mru },
++ { &quot;-mru&quot;, o_bool, &amp;lcp_wantoptions[0].neg_mru,
++ &quot;Disable MRU negotiation (use default 1500)&quot;,
++ OPT_ALIAS | OPT_PRIOSUB | OPT_A2CLR, &amp;lcp_allowoptions[0].neg_mru },
++
++ { &quot;mtu&quot;, o_int, &amp;lcp_allowoptions[0].mru,
++ &quot;Set our MTU&quot;, OPT_LIMITS, NULL, MAXMRU, MINMRU },
++
++ { &quot;nopcomp&quot;, o_bool, &amp;lcp_wantoptions[0].neg_pcompression,
++ &quot;Disable protocol field compression&quot;,
++ OPT_A2CLR, &amp;lcp_allowoptions[0].neg_pcompression },
++ { &quot;-pc&quot;, o_bool, &amp;lcp_wantoptions[0].neg_pcompression,
++ &quot;Disable protocol field compression&quot;,
++ OPT_ALIAS | OPT_A2CLR, &amp;lcp_allowoptions[0].neg_pcompression },
++
++ { &quot;passive&quot;, o_bool, &amp;lcp_wantoptions[0].passive,
++ &quot;Set passive mode&quot;, 1 },
++ { &quot;-p&quot;, o_bool, &amp;lcp_wantoptions[0].passive,
++ &quot;Set passive mode&quot;, OPT_ALIAS | 1 },
++
++ { &quot;silent&quot;, o_bool, &amp;lcp_wantoptions[0].silent,
++ &quot;Set silent mode&quot;, 1 },
++
++ { &quot;lcp-echo-failure&quot;, o_int, &amp;lcp_echo_fails,
++ &quot;Set number of consecutive echo failures to indicate link failure&quot;,
++ OPT_PRIO },
++ { &quot;lcp-echo-interval&quot;, o_int, &amp;lcp_echo_interval,
++ &quot;Set time in seconds between LCP echo requests&quot;, OPT_PRIO },
++ { &quot;lcp-restart&quot;, o_int, &amp;lcp_fsm[0].timeouttime,
++ &quot;Set time in seconds between LCP retransmissions&quot;, OPT_PRIO },
++ { &quot;lcp-max-terminate&quot;, o_int, &amp;lcp_fsm[0].maxtermtransmits,
++ &quot;Set maximum number of LCP terminate-request transmissions&quot;, OPT_PRIO },
++ { &quot;lcp-max-configure&quot;, o_int, &amp;lcp_fsm[0].maxconfreqtransmits,
++ &quot;Set maximum number of LCP configure-request transmissions&quot;, OPT_PRIO },
++ { &quot;lcp-max-failure&quot;, o_int, &amp;lcp_fsm[0].maxnakloops,
++ &quot;Set limit on number of LCP configure-naks&quot;, OPT_PRIO },
++
++ { &quot;receive-all&quot;, o_bool, &amp;lax_recv,
++ &quot;Accept all received control characters&quot;, 1 },
++
++#ifdef HAVE_MULTILINK
++ { &quot;mrru&quot;, o_int, &amp;lcp_wantoptions[0].mrru,
++ &quot;Maximum received packet size for multilink bundle&quot;,
++ OPT_PRIO, &amp;lcp_wantoptions[0].neg_mrru },
++
++ { &quot;mpshortseq&quot;, o_bool, &amp;lcp_wantoptions[0].neg_ssnhf,
++ &quot;Use short sequence numbers in multilink headers&quot;,
++ OPT_PRIO | 1, &amp;lcp_allowoptions[0].neg_ssnhf },
++ { &quot;nompshortseq&quot;, o_bool, &amp;lcp_wantoptions[0].neg_ssnhf,
++ &quot;Don't use short sequence numbers in multilink headers&quot;,
++ OPT_PRIOSUB | OPT_A2CLR, &amp;lcp_allowoptions[0].neg_ssnhf },
++
++ { &quot;endpoint&quot;, o_special, (void *) setendpoint,
++ &quot;Endpoint discriminator for multilink&quot;,
++ OPT_PRIO | OPT_A2PRINTER, (void *) printendpoint },
++#endif /* HAVE_MULTILINK */
++
++ { &quot;noendpoint&quot;, o_bool, &amp;noendpoint,
++ &quot;Don't send or accept multilink endpoint discriminator&quot;, 1 },
++
++ {NULL}
++};
++
++/* global vars */
++fsm lcp_fsm[NUM_PPP]; /* LCP fsm structure (global)*/
++lcp_options lcp_wantoptions[NUM_PPP]; /* Options that we want to request */
++lcp_options lcp_gotoptions[NUM_PPP]; /* Options that peer ack'd */
++lcp_options lcp_allowoptions[NUM_PPP]; /* Options we allow peer to request */
++lcp_options lcp_hisoptions[NUM_PPP]; /* Options that we ack'd */
++
++static int lcp_echos_pending = 0; /* Number of outstanding echo msgs */
++static int lcp_echo_number = 0; /* ID number of next echo frame */
++static int lcp_echo_timer_running = 0; /* set if a timer is running */
++
++static u_char nak_buffer[PPP_MRU]; /* where we construct a nak packet */
++
++/*
++ * Callbacks for fsm code. (CI = Configuration Information)
++ */
++static void lcp_resetci __P((fsm *)); /* Reset our CI */
++static int lcp_cilen __P((fsm *)); /* Return length of our CI */
++static void lcp_addci __P((fsm *, u_char *, int *)); /* Add our CI to pkt */
++static int lcp_ackci __P((fsm *, u_char *, int)); /* Peer ack'd our CI */
++static int lcp_nakci __P((fsm *, u_char *, int)); /* Peer nak'd our CI */
++static int lcp_rejci __P((fsm *, u_char *, int)); /* Peer rej'd our CI */
++static int lcp_reqci __P((fsm *, u_char *, int *, int)); /* Rcv peer CI */
++static void lcp_up __P((fsm *)); /* We're UP */
++static void lcp_down __P((fsm *)); /* We're DOWN */
++static void lcp_starting __P((fsm *)); /* We need lower layer up */
++static void lcp_finished __P((fsm *)); /* We need lower layer down */
++static int lcp_extcode __P((fsm *, int, int, u_char *, int));
++static void lcp_rprotrej __P((fsm *, u_char *, int));
++
++/*
++ * routines to send LCP echos to peer
++ */
++
++static void lcp_echo_lowerup __P((int));
++static void lcp_echo_lowerdown __P((int));
++static void LcpEchoTimeout __P((void *));
++static void lcp_received_echo_reply __P((fsm *, int, u_char *, int));
++static void LcpSendEchoRequest __P((fsm *));
++static void LcpLinkFailure __P((fsm *));
++static void LcpEchoCheck __P((fsm *));
++
++static fsm_callbacks lcp_callbacks = { /* LCP callback routines */
++ lcp_resetci, /* Reset our Configuration Information */
++ lcp_cilen, /* Length of our Configuration Information */
++ lcp_addci, /* Add our Configuration Information */
++ lcp_ackci, /* ACK our Configuration Information */
++ lcp_nakci, /* NAK our Configuration Information */
++ lcp_rejci, /* Reject our Configuration Information */
++ lcp_reqci, /* Request peer's Configuration Information */
++ lcp_up, /* Called when fsm reaches OPENED state */
++ lcp_down, /* Called when fsm leaves OPENED state */
++ lcp_starting, /* Called when we want the lower layer up */
++ lcp_finished, /* Called when we want the lower layer down */
++ NULL, /* Called when Protocol-Reject received */
++ NULL, /* Retransmission is necessary */
++ lcp_extcode, /* Called to handle LCP-specific codes */
++ &quot;LCP&quot; /* String name of protocol */
++};
++
++/*
++ * Protocol entry points.
++ * Some of these are called directly.
++ */
++
++static void lcp_init __P((int));
++static void lcp_input __P((int, u_char *, int));
++static void lcp_protrej __P((int));
++static int lcp_printpkt __P((u_char *, int,
++ void (*) __P((void *, char *, ...)), void *));
++
++struct protent lcp_protent = {
++ PPP_LCP,
++ lcp_init,
++ lcp_input,
++ lcp_protrej,
++ lcp_lowerup,
++ lcp_lowerdown,
++ lcp_open,
++ lcp_close,
++ lcp_printpkt,
++ NULL,
++ 1,
++ &quot;LCP&quot;,
++ NULL,
++ lcp_option_list,
++ NULL,
++ NULL,
++ NULL
++};
++
++int lcp_loopbackfail = DEFLOOPBACKFAIL;
++
++/*
++ * Length of each type of configuration option (in octets)
++ */
++#define CILEN_VOID 2
++#define CILEN_CHAR 3
++#define CILEN_SHORT 4 /* CILEN_VOID + 2 */
++#define CILEN_CHAP 5 /* CILEN_VOID + 2 + 1 */
++#define CILEN_LONG 6 /* CILEN_VOID + 4 */
++#define CILEN_LQR 8 /* CILEN_VOID + 2 + 4 */
++#define CILEN_CBCP 3
++
++#define CODENAME(x) ((x) == CONFACK ? &quot;ACK&quot; : \
++ (x) == CONFNAK ? &quot;NAK&quot; : &quot;REJ&quot;)
++
++/*
++ * noopt - Disable all options (why?).
++ */
++static int
++noopt(argv)
++ char **argv;
++{
++ BZERO((char *) &amp;lcp_wantoptions[0], sizeof (struct lcp_options));
++ BZERO((char *) &amp;lcp_allowoptions[0], sizeof (struct lcp_options));
++
++ return (1);
++}
++
++#ifdef HAVE_MULTILINK
++static int
++setendpoint(argv)
++ char **argv;
++{
++ if (str_to_epdisc(&amp;lcp_wantoptions[0].endpoint, *argv)) {
++ lcp_wantoptions[0].neg_endpoint = 1;
++ return 1;
++ }
++ option_error(&quot;Can't parse '%s' as an endpoint discriminator&quot;, *argv);
++ return 0;
++}
++
++static void
++printendpoint(opt, printer, arg)
++ option_t *opt;
++ void (*printer) __P((void *, char *, ...));
++ void *arg;
++{
++ printer(arg, &quot;%s&quot;, epdisc_to_str(&amp;lcp_wantoptions[0].endpoint));
++}
++#endif /* HAVE_MULTILINK */
++
++/*
++ * lcp_init - Initialize LCP.
++ */
++static void
++lcp_init(unit)
++ int unit;
++{
++ fsm *f = &amp;lcp_fsm[unit];
++ lcp_options *wo = &amp;lcp_wantoptions[unit];
++ lcp_options *ao = &amp;lcp_allowoptions[unit];
++
++ f-&gt;unit = unit;
++ f-&gt;protocol = PPP_LCP;
++ f-&gt;callbacks = &amp;lcp_callbacks;
++
++ fsm_init(f);
++
++ BZERO(wo, sizeof(*wo));
++ wo-&gt;neg_mru = 1;
++ wo-&gt;mru = DEFMRU;
++ wo-&gt;neg_asyncmap = 1;
++ wo-&gt;chap_mdtype = CHAP_DIGEST_MD5;
++ wo-&gt;neg_magicnumber = 1;
++ wo-&gt;neg_pcompression = 1;
++ wo-&gt;neg_accompression = 1;
++
++ BZERO(ao, sizeof(*ao));
++ ao-&gt;neg_mru = 1;
++ ao-&gt;mru = MAXMRU;
++ ao-&gt;neg_asyncmap = 1;
++ ao-&gt;neg_chap = 1;
++ ao-&gt;chap_mdtype = CHAP_DIGEST_MD5;
++ ao-&gt;neg_upap = 1;
++ ao-&gt;neg_magicnumber = 1;
++ ao-&gt;neg_pcompression = 1;
++ ao-&gt;neg_accompression = 1;
++#ifdef CBCP_SUPPORT
++ ao-&gt;neg_cbcp = 1;
++#endif
++ ao-&gt;neg_endpoint = 1;
++}
++
++
++/*
++ * lcp_open - LCP is allowed to come up.
++ */
++void
++lcp_open(unit)
++ int unit;
++{
++ fsm *f = &amp;lcp_fsm[unit];
++ lcp_options *wo = &amp;lcp_wantoptions[unit];
++
++ f-&gt;flags &amp;= ~(OPT_PASSIVE | OPT_SILENT);
++ if (wo-&gt;passive)
++ f-&gt;flags |= OPT_PASSIVE;
++ if (wo-&gt;silent)
++ f-&gt;flags |= OPT_SILENT;
++ fsm_open(f);
++}
++
++
++/*
++ * lcp_close - Take LCP down.
++ */
++void
++lcp_close(unit, reason)
++ int unit;
++ char *reason;
++{
++ fsm *f = &amp;lcp_fsm[unit];
++
++ if (phase != PHASE_DEAD)
++ new_phase(PHASE_TERMINATE);
++ if (f-&gt;state == STOPPED &amp;&amp; f-&gt;flags &amp; (OPT_PASSIVE|OPT_SILENT)) {
++ /*
++ * This action is not strictly according to the FSM in RFC1548,
++ * but it does mean that the program terminates if you do a
++ * lcp_close() in passive/silent mode when a connection hasn't
++ * been established.
++ */
++ f-&gt;state = CLOSED;
++ lcp_finished(f);
++
++ } else
++ fsm_close(&amp;lcp_fsm[unit], reason);
++}
++
++
++/*
++ * lcp_lowerup - The lower layer is up.
++ */
++void
++lcp_lowerup(unit)
++ int unit;
++{
++ lcp_options *wo = &amp;lcp_wantoptions[unit];
++ fsm *f = &amp;lcp_fsm[unit];
++
++ /*
++ * Don't use A/C or protocol compression on transmission,
++ * but accept A/C and protocol compressed packets
++ * if we are going to ask for A/C and protocol compression.
++ */
++ ppp_send_config(unit, PPP_MRU, 0xffffffff, 0, 0);
++ ppp_recv_config(unit, PPP_MRU, (lax_recv? 0: 0xffffffff),
++ wo-&gt;neg_pcompression, wo-&gt;neg_accompression);
++ peer_mru[unit] = PPP_MRU;
++
++ if (listen_time != 0) {
++ f-&gt;flags |= DELAYED_UP;
++ timeout(lcp_delayed_up, f, 0, listen_time * 1000);
++ } else
++ fsm_lowerup(f);
++}
++
++
++/*
++ * lcp_lowerdown - The lower layer is down.
++ */
++void
++lcp_lowerdown(unit)
++ int unit;
++{
++ fsm *f = &amp;lcp_fsm[unit];
++
++ if (f-&gt;flags &amp; DELAYED_UP)
++ f-&gt;flags &amp;= ~DELAYED_UP;
++ else
++ fsm_lowerdown(&amp;lcp_fsm[unit]);
++}
++
++
++/*
++ * lcp_delayed_up - Bring the lower layer up now.
++ */
++static void
++lcp_delayed_up(arg)
++ void *arg;
++{
++ fsm *f = arg;
++
++ if (f-&gt;flags &amp; DELAYED_UP) {
++ f-&gt;flags &amp;= ~DELAYED_UP;
++ fsm_lowerup(f);
++ }
++}
++
++
++/*
++ * lcp_input - Input LCP packet.
++ */
++static void
++lcp_input(unit, p, len)
++ int unit;
++ u_char *p;
++ int len;
++{
++ fsm *f = &amp;lcp_fsm[unit];
++
++ if (f-&gt;flags &amp; DELAYED_UP) {
++ f-&gt;flags &amp;= ~DELAYED_UP;
++ fsm_lowerup(f);
++ }
++ fsm_input(f, p, len);
++}
++
++
++/*
++ * lcp_extcode - Handle a LCP-specific code.
++ */
++static int
++lcp_extcode(f, code, id, inp, len)
++ fsm *f;
++ int code, id;
++ u_char *inp;
++ int len;
++{
++ u_char *magp;
++
++ switch( code ){
++ case PROTREJ:
++ lcp_rprotrej(f, inp, len);
++ break;
++
++ case ECHOREQ:
++ if (f-&gt;state != OPENED)
++ break;
++ magp = inp;
++ PUTLONG(lcp_gotoptions[f-&gt;unit].magicnumber, magp);
++ fsm_sdata(f, ECHOREP, id, inp, len);
++ break;
++
++ case ECHOREP:
++ lcp_received_echo_reply(f, id, inp, len);
++ break;
++
++ case DISCREQ:
++ break;
++
++ default:
++ return 0;
++ }
++ return 1;
++}
++
++
++/*
++ * lcp_rprotrej - Receive an Protocol-Reject.
++ *
++ * Figure out which protocol is rejected and inform it.
++ */
++static void
++lcp_rprotrej(f, inp, len)
++ fsm *f;
++ u_char *inp;
++ int len;
++{
++ int i;
++ struct protent *protp;
++ u_short prot;
++
++ if (len &lt; 2) {
++ LCPDEBUG((&quot;lcp_rprotrej: Rcvd short Protocol-Reject packet!&quot;));
++ return;
++ }
++
++ GETSHORT(prot, inp);
++
++ /*
++ * Protocol-Reject packets received in any state other than the LCP
++ * OPENED state SHOULD be silently discarded.
++ */
++ if( f-&gt;state != OPENED ){
++ LCPDEBUG((&quot;Protocol-Reject discarded: LCP in state %d&quot;, f-&gt;state));
++ return;
++ }
++
++ /*
++ * Upcall the proper Protocol-Reject routine.
++ */
++ for (i = 0; (protp = protocols[i]) != NULL; ++i)
++ if (protp-&gt;protocol == prot &amp;&amp; protp-&gt;enabled_flag) {
++ (*protp-&gt;protrej)(f-&gt;unit);
++ return;
++ }
++
++ warn(&quot;Protocol-Reject for unsupported protocol 0x%x&quot;, prot);
++}
++
++
++/*
++ * lcp_protrej - A Protocol-Reject was received.
++ */
++/*ARGSUSED*/
++static void
++lcp_protrej(unit)
++ int unit;
++{
++ /*
++ * Can't reject LCP!
++ */
++ error(&quot;Received Protocol-Reject for LCP!&quot;);
++ fsm_protreject(&amp;lcp_fsm[unit]);
++}
++
++
++/*
++ * lcp_sprotrej - Send a Protocol-Reject for some protocol.
++ */
++void
++lcp_sprotrej(unit, p, len)
++ int unit;
++ u_char *p;
++ int len;
++{
++ /*
++ * Send back the protocol and the information field of the
++ * rejected packet. We only get here if LCP is in the OPENED state.
++ */
++ p += 2;
++ len -= 2;
++
++ fsm_sdata(&amp;lcp_fsm[unit], PROTREJ, ++lcp_fsm[unit].id,
++ p, len);
++}
++
++
++/*
++ * lcp_resetci - Reset our CI.
++ */
++static void
++lcp_resetci(f)
++ fsm *f;
++{
++ lcp_options *wo = &amp;lcp_wantoptions[f-&gt;unit];
++ lcp_options *go = &amp;lcp_gotoptions[f-&gt;unit];
++ lcp_options *ao = &amp;lcp_allowoptions[f-&gt;unit];
++
++ wo-&gt;magicnumber = magic();
++ wo-&gt;numloops = 0;
++ *go = *wo;
++ if (!multilink) {
++ go-&gt;neg_mrru = 0;
++ go-&gt;neg_ssnhf = 0;
++ go-&gt;neg_endpoint = 0;
++ }
++ if (noendpoint)
++ ao-&gt;neg_endpoint = 0;
++ peer_mru[f-&gt;unit] = PPP_MRU;
++ auth_reset(f-&gt;unit);
++}
++
++
++/*
++ * lcp_cilen - Return length of our CI.
++ */
++static int
++lcp_cilen(f)
++ fsm *f;
++{
++ lcp_options *go = &amp;lcp_gotoptions[f-&gt;unit];
++
++#define LENCIVOID(neg) ((neg) ? CILEN_VOID : 0)
++#define LENCICHAP(neg) ((neg) ? CILEN_CHAP : 0)
++#define LENCISHORT(neg) ((neg) ? CILEN_SHORT : 0)
++#define LENCILONG(neg) ((neg) ? CILEN_LONG : 0)
++#define LENCILQR(neg) ((neg) ? CILEN_LQR: 0)
++#define LENCICBCP(neg) ((neg) ? CILEN_CBCP: 0)
++ /*
++ * NB: we only ask for one of CHAP and UPAP, even if we will
++ * accept either.
++ */
++ return (LENCISHORT(go-&gt;neg_mru &amp;&amp; go-&gt;mru != DEFMRU) +
++ LENCILONG(go-&gt;neg_asyncmap &amp;&amp; go-&gt;asyncmap != 0xFFFFFFFF) +
++ LENCICHAP(go-&gt;neg_chap) +
++ LENCISHORT(!go-&gt;neg_chap &amp;&amp; go-&gt;neg_upap) +
++ LENCILQR(go-&gt;neg_lqr) +
++ LENCICBCP(go-&gt;neg_cbcp) +
++ LENCILONG(go-&gt;neg_magicnumber) +
++ LENCIVOID(go-&gt;neg_pcompression) +
++ LENCIVOID(go-&gt;neg_accompression) +
++ LENCISHORT(go-&gt;neg_mrru) +
++ LENCIVOID(go-&gt;neg_ssnhf) +
++ (go-&gt;neg_endpoint? CILEN_CHAR + go-&gt;endpoint.length: 0));
++}
++
++
++/*
++ * lcp_addci - Add our desired CIs to a packet.
++ */
++static void
++lcp_addci(f, ucp, lenp)
++ fsm *f;
++ u_char *ucp;
++ int *lenp;
++{
++ lcp_options *go = &amp;lcp_gotoptions[f-&gt;unit];
++ u_char *start_ucp = ucp;
++
++#define ADDCIVOID(opt, neg) \
++ if (neg) { \
++ PUTCHAR(opt, ucp); \
++ PUTCHAR(CILEN_VOID, ucp); \
++ }
++#define ADDCISHORT(opt, neg, val) \
++ if (neg) { \
++ PUTCHAR(opt, ucp); \
++ PUTCHAR(CILEN_SHORT, ucp); \
++ PUTSHORT(val, ucp); \
++ }
++#define ADDCICHAP(opt, neg, val, digest) \
++ if (neg) { \
++ PUTCHAR(opt, ucp); \
++ PUTCHAR(CILEN_CHAP, ucp); \
++ PUTSHORT(val, ucp); \
++ PUTCHAR(digest, ucp); \
++ }
++#define ADDCILONG(opt, neg, val) \
++ if (neg) { \
++ PUTCHAR(opt, ucp); \
++ PUTCHAR(CILEN_LONG, ucp); \
++ PUTLONG(val, ucp); \
++ }
++#define ADDCILQR(opt, neg, val) \
++ if (neg) { \
++ PUTCHAR(opt, ucp); \
++ PUTCHAR(CILEN_LQR, ucp); \
++ PUTSHORT(PPP_LQR, ucp); \
++ PUTLONG(val, ucp); \
++ }
++#define ADDCICHAR(opt, neg, val) \
++ if (neg) { \
++ PUTCHAR(opt, ucp); \
++ PUTCHAR(CILEN_CHAR, ucp); \
++ PUTCHAR(val, ucp); \
++ }
++#define ADDCIENDP(opt, neg, class, val, len) \
++ if (neg) { \
++ int i; \
++ PUTCHAR(opt, ucp); \
++ PUTCHAR(CILEN_CHAR + len, ucp); \
++ PUTCHAR(class, ucp); \
++ for (i = 0; i &lt; len; ++i) \
++ PUTCHAR(val[i], ucp); \
++ }
++
++ ADDCISHORT(CI_MRU, go-&gt;neg_mru &amp;&amp; go-&gt;mru != DEFMRU, go-&gt;mru);
++ ADDCILONG(CI_ASYNCMAP, go-&gt;neg_asyncmap &amp;&amp; go-&gt;asyncmap != 0xFFFFFFFF,
++ go-&gt;asyncmap);
++ ADDCICHAP(CI_AUTHTYPE, go-&gt;neg_chap, PPP_CHAP, go-&gt;chap_mdtype);
++ ADDCISHORT(CI_AUTHTYPE, !go-&gt;neg_chap &amp;&amp; go-&gt;neg_upap, PPP_PAP);
++ ADDCILQR(CI_QUALITY, go-&gt;neg_lqr, go-&gt;lqr_period);
++ ADDCICHAR(CI_CALLBACK, go-&gt;neg_cbcp, CBCP_OPT);
++ ADDCILONG(CI_MAGICNUMBER, go-&gt;neg_magicnumber, go-&gt;magicnumber);
++ ADDCIVOID(CI_PCOMPRESSION, go-&gt;neg_pcompression);
++ ADDCIVOID(CI_ACCOMPRESSION, go-&gt;neg_accompression);
++ ADDCISHORT(CI_MRRU, go-&gt;neg_mrru, go-&gt;mrru);
++ ADDCIVOID(CI_SSNHF, go-&gt;neg_ssnhf);
++ ADDCIENDP(CI_EPDISC, go-&gt;neg_endpoint, go-&gt;endpoint.class,
++ go-&gt;endpoint.value, go-&gt;endpoint.length);
++
++ if (ucp - start_ucp != *lenp) {
++ /* this should never happen, because peer_mtu should be 1500 */
++ error(&quot;Bug in lcp_addci: wrong length&quot;);
++ }
++}
++
++
++/*
++ * lcp_ackci - Ack our CIs.
++ * This should not modify any state if the Ack is bad.
++ *
++ * Returns:
++ * 0 - Ack was bad.
++ * 1 - Ack was good.
++ */
++static int
++lcp_ackci(f, p, len)
++ fsm *f;
++ u_char *p;
++ int len;
++{
++ lcp_options *go = &amp;lcp_gotoptions[f-&gt;unit];
++ u_char cilen, citype, cichar;
++ u_short cishort;
++ u_int32_t cilong;
++
++ /*
++ * CIs must be in exactly the same order that we sent.
++ * Check packet length and CI length at each step.
++ * If we find any deviations, then this packet is bad.
++ */
++#define ACKCIVOID(opt, neg) \
++ if (neg) { \
++ if ((len -= CILEN_VOID) &lt; 0) \
++ goto bad; \
++ GETCHAR(citype, p); \
++ GETCHAR(cilen, p); \
++ if (cilen != CILEN_VOID || \
++ citype != opt) \
++ goto bad; \
++ }
++#define ACKCISHORT(opt, neg, val) \
++ if (neg) { \
++ if ((len -= CILEN_SHORT) &lt; 0) \
++ goto bad; \
++ GETCHAR(citype, p); \
++ GETCHAR(cilen, p); \
++ if (cilen != CILEN_SHORT || \
++ citype != opt) \
++ goto bad; \
++ GETSHORT(cishort, p); \
++ if (cishort != val) \
++ goto bad; \
++ }
++#define ACKCICHAR(opt, neg, val) \
++ if (neg) { \
++ if ((len -= CILEN_CHAR) &lt; 0) \
++ goto bad; \
++ GETCHAR(citype, p); \
++ GETCHAR(cilen, p); \
++ if (cilen != CILEN_CHAR || \
++ citype != opt) \
++ goto bad; \
++ GETCHAR(cichar, p); \
++ if (cichar != val) \
++ goto bad; \
++ }
++#define ACKCICHAP(opt, neg, val, digest) \
++ if (neg) { \
++ if ((len -= CILEN_CHAP) &lt; 0) \
++ goto bad; \
++ GETCHAR(citype, p); \
++ GETCHAR(cilen, p); \
++ if (cilen != CILEN_CHAP || \
++ citype != opt) \
++ goto bad; \
++ GETSHORT(cishort, p); \
++ if (cishort != val) \
++ goto bad; \
++ GETCHAR(cichar, p); \
++ if (cichar != digest) \
++ goto bad; \
++ }
++#define ACKCILONG(opt, neg, val) \
++ if (neg) { \
++ if ((len -= CILEN_LONG) &lt; 0) \
++ goto bad; \
++ GETCHAR(citype, p); \
++ GETCHAR(cilen, p); \
++ if (cilen != CILEN_LONG || \
++ citype != opt) \
++ goto bad; \
++ GETLONG(cilong, p); \
++ if (cilong != val) \
++ goto bad; \
++ }
++#define ACKCILQR(opt, neg, val) \
++ if (neg) { \
++ if ((len -= CILEN_LQR) &lt; 0) \
++ goto bad; \
++ GETCHAR(citype, p); \
++ GETCHAR(cilen, p); \
++ if (cilen != CILEN_LQR || \
++ citype != opt) \
++ goto bad; \
++ GETSHORT(cishort, p); \
++ if (cishort != PPP_LQR) \
++ goto bad; \
++ GETLONG(cilong, p); \
++ if (cilong != val) \
++ goto bad; \
++ }
++#define ACKCIENDP(opt, neg, class, val, vlen) \
++ if (neg) { \
++ int i; \
++ if ((len -= CILEN_CHAR + vlen) &lt; 0) \
++ goto bad; \
++ GETCHAR(citype, p); \
++ GETCHAR(cilen, p); \
++ if (cilen != CILEN_CHAR + vlen || \
++ citype != opt) \
++ goto bad; \
++ GETCHAR(cichar, p); \
++ if (cichar != class) \
++ goto bad; \
++ for (i = 0; i &lt; vlen; ++i) { \
++ GETCHAR(cichar, p); \
++ if (cichar != val[i]) \
++ goto bad; \
++ } \
++ }
++
++ ACKCISHORT(CI_MRU, go-&gt;neg_mru &amp;&amp; go-&gt;mru != DEFMRU, go-&gt;mru);
++ ACKCILONG(CI_ASYNCMAP, go-&gt;neg_asyncmap &amp;&amp; go-&gt;asyncmap != 0xFFFFFFFF,
++ go-&gt;asyncmap);
++ ACKCICHAP(CI_AUTHTYPE, go-&gt;neg_chap, PPP_CHAP, go-&gt;chap_mdtype);
++ ACKCISHORT(CI_AUTHTYPE, !go-&gt;neg_chap &amp;&amp; go-&gt;neg_upap, PPP_PAP);
++ ACKCILQR(CI_QUALITY, go-&gt;neg_lqr, go-&gt;lqr_period);
++ ACKCICHAR(CI_CALLBACK, go-&gt;neg_cbcp, CBCP_OPT);
++ ACKCILONG(CI_MAGICNUMBER, go-&gt;neg_magicnumber, go-&gt;magicnumber);
++ ACKCIVOID(CI_PCOMPRESSION, go-&gt;neg_pcompression);
++ ACKCIVOID(CI_ACCOMPRESSION, go-&gt;neg_accompression);
++ ACKCISHORT(CI_MRRU, go-&gt;neg_mrru, go-&gt;mrru);
++ ACKCIVOID(CI_SSNHF, go-&gt;neg_ssnhf);
++ ACKCIENDP(CI_EPDISC, go-&gt;neg_endpoint, go-&gt;endpoint.class,
++ go-&gt;endpoint.value, go-&gt;endpoint.length);
++
++ /*
++ * If there are any remaining CIs, then this packet is bad.
++ */
++ if (len != 0)
++ goto bad;
++ return (1);
++bad:
++ LCPDEBUG((&quot;lcp_acki: received bad Ack!&quot;));
++ return (0);
++}
++
++
++/*
++ * lcp_nakci - Peer has sent a NAK for some of our CIs.
++ * This should not modify any state if the Nak is bad
++ * or if LCP is in the OPENED state.
++ *
++ * Returns:
++ * 0 - Nak was bad.
++ * 1 - Nak was good.
++ */
++static int
++lcp_nakci(f, p, len)
++ fsm *f;
++ u_char *p;
++ int len;
++{
++ lcp_options *go = &amp;lcp_gotoptions[f-&gt;unit];
++ lcp_options *wo = &amp;lcp_wantoptions[f-&gt;unit];
++ u_char citype, cichar, *next;
++ u_short cishort;
++ u_int32_t cilong;
++ lcp_options no; /* options we've seen Naks for */
++ lcp_options try; /* options to request next time */
++ int looped_back = 0;
++ int cilen;
++
++ BZERO(&amp;no, sizeof(no));
++ try = *go;
++
++ /*
++ * Any Nak'd CIs must be in exactly the same order that we sent.
++ * Check packet length and CI length at each step.
++ * If we find any deviations, then this packet is bad.
++ */
++#define NAKCIVOID(opt, neg) \
++ if (go-&gt;neg &amp;&amp; \
++ len &gt;= CILEN_VOID &amp;&amp; \
++ p[1] == CILEN_VOID &amp;&amp; \
++ p[0] == opt) { \
++ len -= CILEN_VOID; \
++ INCPTR(CILEN_VOID, p); \
++ no.neg = 1; \
++ try.neg = 0; \
++ }
++#define NAKCICHAP(opt, neg, code) \
++ if (go-&gt;neg &amp;&amp; \
++ len &gt;= CILEN_CHAP &amp;&amp; \
++ p[1] == CILEN_CHAP &amp;&amp; \
++ p[0] == opt) { \
++ len -= CILEN_CHAP; \
++ INCPTR(2, p); \
++ GETSHORT(cishort, p); \
++ GETCHAR(cichar, p); \
++ no.neg = 1; \
++ code \
++ }
++#define NAKCICHAR(opt, neg, code) \
++ if (go-&gt;neg &amp;&amp; \
++ len &gt;= CILEN_CHAR &amp;&amp; \
++ p[1] == CILEN_CHAR &amp;&amp; \
++ p[0] == opt) { \
++ len -= CILEN_CHAR; \
++ INCPTR(2, p); \
++ GETCHAR(cichar, p); \
++ no.neg = 1; \
++ code \
++ }
++#define NAKCISHORT(opt, neg, code) \
++ if (go-&gt;neg &amp;&amp; \
++ len &gt;= CILEN_SHORT &amp;&amp; \
++ p[1] == CILEN_SHORT &amp;&amp; \
++ p[0] == opt) { \
++ len -= CILEN_SHORT; \
++ INCPTR(2, p); \
++ GETSHORT(cishort, p); \
++ no.neg = 1; \
++ code \
++ }
++#define NAKCILONG(opt, neg, code) \
++ if (go-&gt;neg &amp;&amp; \
++ len &gt;= CILEN_LONG &amp;&amp; \
++ p[1] == CILEN_LONG &amp;&amp; \
++ p[0] == opt) { \
++ len -= CILEN_LONG; \
++ INCPTR(2, p); \
++ GETLONG(cilong, p); \
++ no.neg = 1; \
++ code \
++ }
++#define NAKCILQR(opt, neg, code) \
++ if (go-&gt;neg &amp;&amp; \
++ len &gt;= CILEN_LQR &amp;&amp; \
++ p[1] == CILEN_LQR &amp;&amp; \
++ p[0] == opt) { \
++ len -= CILEN_LQR; \
++ INCPTR(2, p); \
++ GETSHORT(cishort, p); \
++ GETLONG(cilong, p); \
++ no.neg = 1; \
++ code \
++ }
++#define NAKCIENDP(opt, neg) \
++ if (go-&gt;neg &amp;&amp; \
++ len &gt;= CILEN_CHAR &amp;&amp; \
++ p[0] == opt &amp;&amp; \
++ p[1] &gt;= CILEN_CHAR &amp;&amp; \
++ p[1] &lt;= len) { \
++ len -= p[1]; \
++ INCPTR(p[1], p); \
++ no.neg = 1; \
++ try.neg = 0; \
++ }
++
++ /*
++ * We don't care if they want to send us smaller packets than
++ * we want. Therefore, accept any MRU less than what we asked for,
++ * but then ignore the new value when setting the MRU in the kernel.
++ * If they send us a bigger MRU than what we asked, accept it, up to
++ * the limit of the default MRU we'd get if we didn't negotiate.
++ */
++ if (go-&gt;neg_mru &amp;&amp; go-&gt;mru != DEFMRU) {
++ NAKCISHORT(CI_MRU, neg_mru,
++ if (cishort &lt;= wo-&gt;mru || cishort &lt;= DEFMRU)
++ try.mru = cishort;
++ );
++ }
++
++ /*
++ * Add any characters they want to our (receive-side) asyncmap.
++ */
++ if (go-&gt;neg_asyncmap &amp;&amp; go-&gt;asyncmap != 0xFFFFFFFF) {
++ NAKCILONG(CI_ASYNCMAP, neg_asyncmap,
++ try.asyncmap = go-&gt;asyncmap | cilong;
++ );
++ }
++
++ /*
++ * If they've nak'd our authentication-protocol, check whether
++ * they are proposing a different protocol, or a different
++ * hash algorithm for CHAP.
++ */
++ if ((go-&gt;neg_chap || go-&gt;neg_upap)
++ &amp;&amp; len &gt;= CILEN_SHORT
++ &amp;&amp; p[0] == CI_AUTHTYPE &amp;&amp; p[1] &gt;= CILEN_SHORT &amp;&amp; p[1] &lt;= len) {
++ cilen = p[1];
++ len -= cilen;
++ no.neg_chap = go-&gt;neg_chap;
++ no.neg_upap = go-&gt;neg_upap;
++ INCPTR(2, p);
++ GETSHORT(cishort, p);
++ if (cishort == PPP_PAP &amp;&amp; cilen == CILEN_SHORT) {
++ /*
++ * If we were asking for CHAP, they obviously don't want to do it.
++ * If we weren't asking for CHAP, then we were asking for PAP,
++ * in which case this Nak is bad.
++ */
++ if (!go-&gt;neg_chap)
++ goto bad;
++ try.neg_chap = 0;
++
++ } else if (cishort == PPP_CHAP &amp;&amp; cilen == CILEN_CHAP) {
++ GETCHAR(cichar, p);
++ if (go-&gt;neg_chap) {
++ /*
++ * We were asking for CHAP/MD5; they must want a different
++ * algorithm. If they can't do MD5, we can ask for M$-CHAP
++ * if we support it, otherwise we'll have to stop
++ * asking for CHAP.
++ */
++ if (cichar != go-&gt;chap_mdtype) {
++#ifdef CHAPMS
++ if (cichar == CHAP_MICROSOFT)
++ go-&gt;chap_mdtype = CHAP_MICROSOFT;
++ else
++#endif /* CHAPMS */
++ try.neg_chap = 0;
++ }
++ } else {
++ /*
++ * Stop asking for PAP if we were asking for it.
++ */
++ try.neg_upap = 0;
++ }
++
++ } else {
++ /*
++ * We don't recognize what they're suggesting.
++ * Stop asking for what we were asking for.
++ */
++ if (go-&gt;neg_chap)
++ try.neg_chap = 0;
++ else
++ try.neg_upap = 0;
++ p += cilen - CILEN_SHORT;
++ }
++ }
++
++ /*
++ * If they can't cope with our link quality protocol, we'll have
++ * to stop asking for LQR. We haven't got any other protocol.
++ * If they Nak the reporting period, take their value XXX ?
++ */
++ NAKCILQR(CI_QUALITY, neg_lqr,
++ if (cishort != PPP_LQR)
++ try.neg_lqr = 0;
++ else
++ try.lqr_period = cilong;
++ );
++
++ /*
++ * Only implementing CBCP...not the rest of the callback options
++ */
++ NAKCICHAR(CI_CALLBACK, neg_cbcp,
++ try.neg_cbcp = 0;
++ );
++
++ /*
++ * Check for a looped-back line.
++ */
++ NAKCILONG(CI_MAGICNUMBER, neg_magicnumber,
++ try.magicnumber = magic();
++ looped_back = 1;
++ );
++
++ /*
++ * Peer shouldn't send Nak for protocol compression or
++ * address/control compression requests; they should send
++ * a Reject instead. If they send a Nak, treat it as a Reject.
++ */
++ NAKCIVOID(CI_PCOMPRESSION, neg_pcompression);
++ NAKCIVOID(CI_ACCOMPRESSION, neg_accompression);
++
++ /*
++ * Nak for MRRU option - accept their value if it is smaller
++ * than the one we want.
++ */
++ if (go-&gt;neg_mrru) {
++ NAKCISHORT(CI_MRRU, neg_mrru,
++ if (cishort &lt;= wo-&gt;mrru)
++ try.mrru = cishort;
++ );
++ }
++
++ /*
++ * Nak for short sequence numbers shouldn't be sent, treat it
++ * like a reject.
++ */
++ NAKCIVOID(CI_SSNHF, neg_ssnhf);
++
++ /*
++ * Nak of the endpoint discriminator option is not permitted,
++ * treat it like a reject.
++ */
++ NAKCIENDP(CI_EPDISC, neg_endpoint);
++
++ /*
++ * There may be remaining CIs, if the peer is requesting negotiation
++ * on an option that we didn't include in our request packet.
++ * If we see an option that we requested, or one we've already seen
++ * in this packet, then this packet is bad.
++ * If we wanted to respond by starting to negotiate on the requested
++ * option(s), we could, but we don't, because except for the
++ * authentication type and quality protocol, if we are not negotiating
++ * an option, it is because we were told not to.
++ * For the authentication type, the Nak from the peer means
++ * `let me authenticate myself with you' which is a bit pointless.
++ * For the quality protocol, the Nak means `ask me to send you quality
++ * reports', but if we didn't ask for them, we don't want them.
++ * An option we don't recognize represents the peer asking to
++ * negotiate some option we don't support, so ignore it.
++ */
++ while (len &gt; CILEN_VOID) {
++ GETCHAR(citype, p);
++ GETCHAR(cilen, p);
++ if (cilen &lt; CILEN_VOID || (len -= cilen) &lt; 0)
++ goto bad;
++ next = p + cilen - 2;
++
++ switch (citype) {
++ case CI_MRU:
++ if ((go-&gt;neg_mru &amp;&amp; go-&gt;mru != DEFMRU)
++ || no.neg_mru || cilen != CILEN_SHORT)
++ goto bad;
++ GETSHORT(cishort, p);
++ if (cishort &lt; DEFMRU) {
++ try.neg_mru = 1;
++ try.mru = cishort;
++ }
++ break;
++ case CI_ASYNCMAP:
++ if ((go-&gt;neg_asyncmap &amp;&amp; go-&gt;asyncmap != 0xFFFFFFFF)
++ || no.neg_asyncmap || cilen != CILEN_LONG)
++ goto bad;
++ break;
++ case CI_AUTHTYPE:
++ if (go-&gt;neg_chap || no.neg_chap || go-&gt;neg_upap || no.neg_upap)
++ goto bad;
++ break;
++ case CI_MAGICNUMBER:
++ if (go-&gt;neg_magicnumber || no.neg_magicnumber ||
++ cilen != CILEN_LONG)
++ goto bad;
++ break;
++ case CI_PCOMPRESSION:
++ if (go-&gt;neg_pcompression || no.neg_pcompression
++ || cilen != CILEN_VOID)
++ goto bad;
++ break;
++ case CI_ACCOMPRESSION:
++ if (go-&gt;neg_accompression || no.neg_accompression
++ || cilen != CILEN_VOID)
++ goto bad;
++ break;
++ case CI_QUALITY:
++ if (go-&gt;neg_lqr || no.neg_lqr || cilen != CILEN_LQR)
++ goto bad;
++ break;
++ case CI_MRRU:
++ if (go-&gt;neg_mrru || no.neg_mrru || cilen != CILEN_SHORT)
++ goto bad;
++ break;
++ case CI_SSNHF:
++ if (go-&gt;neg_ssnhf || no.neg_ssnhf || cilen != CILEN_VOID)
++ goto bad;
++ try.neg_ssnhf = 1;
++ break;
++ case CI_EPDISC:
++ if (go-&gt;neg_endpoint || no.neg_endpoint || cilen &lt; CILEN_CHAR)
++ goto bad;
++ break;
++ }
++ p = next;
++ }
++
++ /*
++ * OK, the Nak is good. Now we can update state.
++ * If there are any options left we ignore them.
++ */
++ if (f-&gt;state != OPENED) {
++ if (looped_back) {
++ if (++try.numloops &gt;= lcp_loopbackfail) {
++ notice(&quot;Serial line is looped back.&quot;);
++ lcp_close(f-&gt;unit, &quot;Loopback detected&quot;);
++ status = EXIT_LOOPBACK;
++ }
++ } else
++ try.numloops = 0;
++ *go = try;
++ }
++
++ return 1;
++
++bad:
++ LCPDEBUG((&quot;lcp_nakci: received bad Nak!&quot;));
++ return 0;
++}
++
++
++/*
++ * lcp_rejci - Peer has Rejected some of our CIs.
++ * This should not modify any state if the Reject is bad
++ * or if LCP is in the OPENED state.
++ *
++ * Returns:
++ * 0 - Reject was bad.
++ * 1 - Reject was good.
++ */
++static int
++lcp_rejci(f, p, len)
++ fsm *f;
++ u_char *p;
++ int len;
++{
++ lcp_options *go = &amp;lcp_gotoptions[f-&gt;unit];
++ u_char cichar;
++ u_short cishort;
++ u_int32_t cilong;
++ lcp_options try; /* options to request next time */
++
++ try = *go;
++
++ /*
++ * Any Rejected CIs must be in exactly the same order that we sent.
++ * Check packet length and CI length at each step.
++ * If we find any deviations, then this packet is bad.
++ */
++#define REJCIVOID(opt, neg) \
++ if (go-&gt;neg &amp;&amp; \
++ len &gt;= CILEN_VOID &amp;&amp; \
++ p[1] == CILEN_VOID &amp;&amp; \
++ p[0] == opt) { \
++ len -= CILEN_VOID; \
++ INCPTR(CILEN_VOID, p); \
++ try.neg = 0; \
++ }
++#define REJCISHORT(opt, neg, val) \
++ if (go-&gt;neg &amp;&amp; \
++ len &gt;= CILEN_SHORT &amp;&amp; \
++ p[1] == CILEN_SHORT &amp;&amp; \
++ p[0] == opt) { \
++ len -= CILEN_SHORT; \
++ INCPTR(2, p); \
++ GETSHORT(cishort, p); \
++ /* Check rejected value. */ \
++ if (cishort != val) \
++ goto bad; \
++ try.neg = 0; \
++ }
++#define REJCICHAP(opt, neg, val, digest) \
++ if (go-&gt;neg &amp;&amp; \
++ len &gt;= CILEN_CHAP &amp;&amp; \
++ p[1] == CILEN_CHAP &amp;&amp; \
++ p[0] == opt) { \
++ len -= CILEN_CHAP; \
++ INCPTR(2, p); \
++ GETSHORT(cishort, p); \
++ GETCHAR(cichar, p); \
++ /* Check rejected value. */ \
++ if (cishort != val || cichar != digest) \
++ goto bad; \
++ try.neg = 0; \
++ try.neg_upap = 0; \
++ }
++#define REJCILONG(opt, neg, val) \
++ if (go-&gt;neg &amp;&amp; \
++ len &gt;= CILEN_LONG &amp;&amp; \
++ p[1] == CILEN_LONG &amp;&amp; \
++ p[0] == opt) { \
++ len -= CILEN_LONG; \
++ INCPTR(2, p); \
++ GETLONG(cilong, p); \
++ /* Check rejected value. */ \
++ if (cilong != val) \
++ goto bad; \
++ try.neg = 0; \
++ }
++#define REJCILQR(opt, neg, val) \
++ if (go-&gt;neg &amp;&amp; \
++ len &gt;= CILEN_LQR &amp;&amp; \
++ p[1] == CILEN_LQR &amp;&amp; \
++ p[0] == opt) { \
++ len -= CILEN_LQR; \
++ INCPTR(2, p); \
++ GETSHORT(cishort, p); \
++ GETLONG(cilong, p); \
++ /* Check rejected value. */ \
++ if (cishort != PPP_LQR || cilong != val) \
++ goto bad; \
++ try.neg = 0; \
++ }
++#define REJCICBCP(opt, neg, val) \
++ if (go-&gt;neg &amp;&amp; \
++ len &gt;= CILEN_CBCP &amp;&amp; \
++ p[1] == CILEN_CBCP &amp;&amp; \
++ p[0] == opt) { \
++ len -= CILEN_CBCP; \
++ INCPTR(2, p); \
++ GETCHAR(cichar, p); \
++ /* Check rejected value. */ \
++ if (cichar != val) \
++ goto bad; \
++ try.neg = 0; \
++ }
++#define REJCIENDP(opt, neg, class, val, vlen) \
++ if (go-&gt;neg &amp;&amp; \
++ len &gt;= CILEN_CHAR + vlen &amp;&amp; \
++ p[0] == opt &amp;&amp; \
++ p[1] == CILEN_CHAR + vlen) { \
++ int i; \
++ len -= CILEN_CHAR + vlen; \
++ INCPTR(2, p); \
++ GETCHAR(cichar, p); \
++ if (cichar != class) \
++ goto bad; \
++ for (i = 0; i &lt; vlen; ++i) { \
++ GETCHAR(cichar, p); \
++ if (cichar != val[i]) \
++ goto bad; \
++ } \
++ try.neg = 0; \
++ }
++
++ REJCISHORT(CI_MRU, neg_mru, go-&gt;mru);
++ REJCILONG(CI_ASYNCMAP, neg_asyncmap, go-&gt;asyncmap);
++ REJCICHAP(CI_AUTHTYPE, neg_chap, PPP_CHAP, go-&gt;chap_mdtype);
++ if (!go-&gt;neg_chap) {
++ REJCISHORT(CI_AUTHTYPE, neg_upap, PPP_PAP);
++ }
++ REJCILQR(CI_QUALITY, neg_lqr, go-&gt;lqr_period);
++ REJCICBCP(CI_CALLBACK, neg_cbcp, CBCP_OPT);
++ REJCILONG(CI_MAGICNUMBER, neg_magicnumber, go-&gt;magicnumber);
++ REJCIVOID(CI_PCOMPRESSION, neg_pcompression);
++ REJCIVOID(CI_ACCOMPRESSION, neg_accompression);
++ REJCISHORT(CI_MRRU, neg_mrru, go-&gt;mrru);
++ REJCIVOID(CI_SSNHF, neg_ssnhf);
++ REJCIENDP(CI_EPDISC, neg_endpoint, go-&gt;endpoint.class,
++ go-&gt;endpoint.value, go-&gt;endpoint.length);
++
++ /*
++ * If there are any remaining CIs, then this packet is bad.
++ */
++ if (len != 0)
++ goto bad;
++ /*
++ * Now we can update state.
++ */
++ if (f-&gt;state != OPENED)
++ *go = try;
++ return 1;
++
++bad:
++ LCPDEBUG((&quot;lcp_rejci: received bad Reject!&quot;));
++ return 0;
++}
++
++
++/*
++ * lcp_reqci - Check the peer's requested CIs and send appropriate response.
++ *
++ * Returns: CONFACK, CONFNAK or CONFREJ and input packet modified
++ * appropriately. If reject_if_disagree is non-zero, doesn't return
++ * CONFNAK; returns CONFREJ if it can't return CONFACK.
++ */
++static int
++lcp_reqci(f, inp, lenp, reject_if_disagree)
++ fsm *f;
++ u_char *inp; /* Requested CIs */
++ int *lenp; /* Length of requested CIs */
++ int reject_if_disagree;
++{
++ lcp_options *go = &amp;lcp_gotoptions[f-&gt;unit];
++ lcp_options *ho = &amp;lcp_hisoptions[f-&gt;unit];
++ lcp_options *ao = &amp;lcp_allowoptions[f-&gt;unit];
++ u_char *cip, *next; /* Pointer to current and next CIs */
++ int cilen, citype, cichar; /* Parsed len, type, char value */
++ u_short cishort; /* Parsed short value */
++ u_int32_t cilong; /* Parse long value */
++ int rc = CONFACK; /* Final packet return code */
++ int orc; /* Individual option return code */
++ u_char *p; /* Pointer to next char to parse */
++ u_char *rejp; /* Pointer to next char in reject frame */
++ u_char *nakp; /* Pointer to next char in Nak frame */
++ int l = *lenp; /* Length left */
++
++ /*
++ * Reset all his options.
++ */
++ BZERO(ho, sizeof(*ho));
++
++ /*
++ * Process all his options.
++ */
++ next = inp;
++ nakp = nak_buffer;
++ rejp = inp;
++ while (l) {
++ orc = CONFACK; /* Assume success */
++ cip = p = next; /* Remember begining of CI */
++ if (l &lt; 2 || /* Not enough data for CI header or */
++ p[1] &lt; 2 || /* CI length too small or */
++ p[1] &gt; l) { /* CI length too big? */
++ LCPDEBUG((&quot;lcp_reqci: bad CI length!&quot;));
++ orc = CONFREJ; /* Reject bad CI */
++ cilen = l; /* Reject till end of packet */
++ l = 0; /* Don't loop again */
++ citype = 0;
++ goto endswitch;
++ }
++ GETCHAR(citype, p); /* Parse CI type */
++ GETCHAR(cilen, p); /* Parse CI length */
++ l -= cilen; /* Adjust remaining length */
++ next += cilen; /* Step to next CI */
++
++ switch (citype) { /* Check CI type */
++ case CI_MRU:
++ if (!ao-&gt;neg_mru || /* Allow option? */
++ cilen != CILEN_SHORT) { /* Check CI length */
++ orc = CONFREJ; /* Reject CI */
++ break;
++ }
++ GETSHORT(cishort, p); /* Parse MRU */
++
++ /*
++ * He must be able to receive at least our minimum.
++ * No need to check a maximum. If he sends a large number,
++ * we'll just ignore it.
++ */
++ if (cishort &lt; MINMRU) {
++ orc = CONFNAK; /* Nak CI */
++ PUTCHAR(CI_MRU, nakp);
++ PUTCHAR(CILEN_SHORT, nakp);
++ PUTSHORT(MINMRU, nakp); /* Give him a hint */
++ break;
++ }
++ ho-&gt;neg_mru = 1; /* Remember he sent MRU */
++ ho-&gt;mru = cishort; /* And remember value */
++ break;
++
++ case CI_ASYNCMAP:
++ if (!ao-&gt;neg_asyncmap ||
++ cilen != CILEN_LONG) {
++ orc = CONFREJ;
++ break;
++ }
++ GETLONG(cilong, p);
++
++ /*
++ * Asyncmap must have set at least the bits
++ * which are set in lcp_allowoptions[unit].asyncmap.
++ */
++ if ((ao-&gt;asyncmap &amp; ~cilong) != 0) {
++ orc = CONFNAK;
++ PUTCHAR(CI_ASYNCMAP, nakp);
++ PUTCHAR(CILEN_LONG, nakp);
++ PUTLONG(ao-&gt;asyncmap | cilong, nakp);
++ break;
++ }
++ ho-&gt;neg_asyncmap = 1;
++ ho-&gt;asyncmap = cilong;
++ break;
++
++ case CI_AUTHTYPE:
++ if (cilen &lt; CILEN_SHORT ||
++ !(ao-&gt;neg_upap || ao-&gt;neg_chap)) {
++ /*
++ * Reject the option if we're not willing to authenticate.
++ */
++ orc = CONFREJ;
++ break;
++ }
++ GETSHORT(cishort, p);
++
++ /*
++ * Authtype must be PAP or CHAP.
++ *
++ * Note: if both ao-&gt;neg_upap and ao-&gt;neg_chap are set,
++ * and the peer sends a Configure-Request with two
++ * authenticate-protocol requests, one for CHAP and one
++ * for UPAP, then we will reject the second request.
++ * Whether we end up doing CHAP or UPAP depends then on
++ * the ordering of the CIs in the peer's Configure-Request.
++ */
++
++ if (cishort == PPP_PAP) {
++ if (ho-&gt;neg_chap || /* we've already accepted CHAP */
++ cilen != CILEN_SHORT) {
++ LCPDEBUG((&quot;lcp_reqci: rcvd AUTHTYPE PAP, rejecting...&quot;));
++ orc = CONFREJ;
++ break;
++ }
++ if (!ao-&gt;neg_upap) { /* we don't want to do PAP */
++ orc = CONFNAK; /* NAK it and suggest CHAP */
++ PUTCHAR(CI_AUTHTYPE, nakp);
++ PUTCHAR(CILEN_CHAP, nakp);
++ PUTSHORT(PPP_CHAP, nakp);
++ PUTCHAR(ao-&gt;chap_mdtype, nakp);
++ /* XXX if we can do CHAP_MICROSOFT as well, we should
++ probably put in another option saying so */
++ break;
++ }
++ ho-&gt;neg_upap = 1;
++ break;
++ }
++ if (cishort == PPP_CHAP) {
++ if (ho-&gt;neg_upap || /* we've already accepted PAP */
++ cilen != CILEN_CHAP) {
++ LCPDEBUG((&quot;lcp_reqci: rcvd AUTHTYPE CHAP, rejecting...&quot;));
++ orc = CONFREJ;
++ break;
++ }
++ if (!ao-&gt;neg_chap) { /* we don't want to do CHAP */
++ orc = CONFNAK; /* NAK it and suggest PAP */
++ PUTCHAR(CI_AUTHTYPE, nakp);
++ PUTCHAR(CILEN_SHORT, nakp);
++ PUTSHORT(PPP_PAP, nakp);
++ break;
++ }
++ GETCHAR(cichar, p); /* get digest type*/
++ if (cichar != CHAP_DIGEST_MD5
++#ifdef CHAPMS
++ &amp;&amp; cichar != CHAP_MICROSOFT
++#endif
++ ) {
++ orc = CONFNAK;
++ PUTCHAR(CI_AUTHTYPE, nakp);
++ PUTCHAR(CILEN_CHAP, nakp);
++ PUTSHORT(PPP_CHAP, nakp);
++ PUTCHAR(ao-&gt;chap_mdtype, nakp);
++ break;
++ }
++ ho-&gt;chap_mdtype = cichar; /* save md type */
++ ho-&gt;neg_chap = 1;
++ break;
++ }
++
++ /*
++ * We don't recognize the protocol they're asking for.
++ * Nak it with something we're willing to do.
++ * (At this point we know ao-&gt;neg_upap || ao-&gt;neg_chap.)
++ */
++ orc = CONFNAK;
++ PUTCHAR(CI_AUTHTYPE, nakp);
++ if (ao-&gt;neg_chap) {
++ PUTCHAR(CILEN_CHAP, nakp);
++ PUTSHORT(PPP_CHAP, nakp);
++ PUTCHAR(ao-&gt;chap_mdtype, nakp);
++ } else {
++ PUTCHAR(CILEN_SHORT, nakp);
++ PUTSHORT(PPP_PAP, nakp);
++ }
++ break;
++
++ case CI_QUALITY:
++ if (!ao-&gt;neg_lqr ||
++ cilen != CILEN_LQR) {
++ orc = CONFREJ;
++ break;
++ }
++
++ GETSHORT(cishort, p);
++ GETLONG(cilong, p);
++
++ /*
++ * Check the protocol and the reporting period.
++ * XXX When should we Nak this, and what with?
++ */
++ if (cishort != PPP_LQR) {
++ orc = CONFNAK;
++ PUTCHAR(CI_QUALITY, nakp);
++ PUTCHAR(CILEN_LQR, nakp);
++ PUTSHORT(PPP_LQR, nakp);
++ PUTLONG(ao-&gt;lqr_period, nakp);
++ break;
++ }
++ break;
++
++ case CI_MAGICNUMBER:
++ if (!(ao-&gt;neg_magicnumber || go-&gt;neg_magicnumber) ||
++ cilen != CILEN_LONG) {
++ orc = CONFREJ;
++ break;
++ }
++ GETLONG(cilong, p);
++
++ /*
++ * He must have a different magic number.
++ */
++ if (go-&gt;neg_magicnumber &amp;&amp;
++ cilong == go-&gt;magicnumber) {
++ cilong = magic(); /* Don't put magic() inside macro! */
++ orc = CONFNAK;
++ PUTCHAR(CI_MAGICNUMBER, nakp);
++ PUTCHAR(CILEN_LONG, nakp);
++ PUTLONG(cilong, nakp);
++ break;
++ }
++ ho-&gt;neg_magicnumber = 1;
++ ho-&gt;magicnumber = cilong;
++ break;
++
++
++ case CI_PCOMPRESSION:
++ if (!ao-&gt;neg_pcompression ||
++ cilen != CILEN_VOID) {
++ orc = CONFREJ;
++ break;
++ }
++ ho-&gt;neg_pcompression = 1;
++ break;
++
++ case CI_ACCOMPRESSION:
++ if (!ao-&gt;neg_accompression ||
++ cilen != CILEN_VOID) {
++ orc = CONFREJ;
++ break;
++ }
++ ho-&gt;neg_accompression = 1;
++ break;
++
++ case CI_MRRU:
++ if (!ao-&gt;neg_mrru || !multilink ||
++ cilen != CILEN_SHORT) {
++ orc = CONFREJ;
++ break;
++ }
++
++ GETSHORT(cishort, p);
++ /* possibly should insist on a minimum/maximum MRRU here */
++ ho-&gt;neg_mrru = 1;
++ ho-&gt;mrru = cishort;
++ break;
++
++ case CI_SSNHF:
++ if (!ao-&gt;neg_ssnhf || !multilink ||
++ cilen != CILEN_VOID) {
++ orc = CONFREJ;
++ break;
++ }
++ ho-&gt;neg_ssnhf = 1;
++ break;
++
++ case CI_EPDISC:
++ if (!ao-&gt;neg_endpoint ||
++ cilen &lt; CILEN_CHAR ||
++ cilen &gt; CILEN_CHAR + MAX_ENDP_LEN) {
++ orc = CONFREJ;
++ break;
++ }
++ GETCHAR(cichar, p);
++ cilen -= CILEN_CHAR;
++ ho-&gt;neg_endpoint = 1;
++ ho-&gt;endpoint.class = cichar;
++ ho-&gt;endpoint.length = cilen;
++ BCOPY(p, ho-&gt;endpoint.value, cilen);
++ INCPTR(cilen, p);
++ break;
++
++ default:
++ LCPDEBUG((&quot;lcp_reqci: rcvd unknown option %d&quot;, citype));
++ orc = CONFREJ;
++ break;
++ }
++
++endswitch:
++ if (orc == CONFACK &amp;&amp; /* Good CI */
++ rc != CONFACK) /* but prior CI wasnt? */
++ continue; /* Don't send this one */
++
++ if (orc == CONFNAK) { /* Nak this CI? */
++ if (reject_if_disagree /* Getting fed up with sending NAKs? */
++ &amp;&amp; citype != CI_MAGICNUMBER) {
++ orc = CONFREJ; /* Get tough if so */
++ } else {
++ if (rc == CONFREJ) /* Rejecting prior CI? */
++ continue; /* Don't send this one */
++ rc = CONFNAK;
++ }
++ }
++ if (orc == CONFREJ) { /* Reject this CI */
++ rc = CONFREJ;
++ if (cip != rejp) /* Need to move rejected CI? */
++ BCOPY(cip, rejp, cilen); /* Move it */
++ INCPTR(cilen, rejp); /* Update output pointer */
++ }
++ }
++
++ /*
++ * If we wanted to send additional NAKs (for unsent CIs), the
++ * code would go here. The extra NAKs would go at *nakp.
++ * At present there are no cases where we want to ask the
++ * peer to negotiate an option.
++ */
++
++ switch (rc) {
++ case CONFACK:
++ *lenp = next - inp;
++ break;
++ case CONFNAK:
++ /*
++ * Copy the Nak'd options from the nak_buffer to the caller's buffer.
++ */
++ *lenp = nakp - nak_buffer;
++ BCOPY(nak_buffer, inp, *lenp);
++ break;
++ case CONFREJ:
++ *lenp = rejp - inp;
++ break;
++ }
++
++ LCPDEBUG((&quot;lcp_reqci: returning CONF%s.&quot;, CODENAME(rc)));
++ return (rc); /* Return final code */
++}
++
++
++/*
++ * lcp_up - LCP has come UP.
++ */
++static void
++lcp_up(f)
++ fsm *f;
++{
++ lcp_options *wo = &amp;lcp_wantoptions[f-&gt;unit];
++ lcp_options *ho = &amp;lcp_hisoptions[f-&gt;unit];
++ lcp_options *go = &amp;lcp_gotoptions[f-&gt;unit];
++ lcp_options *ao = &amp;lcp_allowoptions[f-&gt;unit];
++ int mtu;
++
++ if (!go-&gt;neg_magicnumber)
++ go-&gt;magicnumber = 0;
++ if (!ho-&gt;neg_magicnumber)
++ ho-&gt;magicnumber = 0;
++
++ /*
++ * Set our MTU to the smaller of the MTU we wanted and
++ * the MRU our peer wanted. If we negotiated an MRU,
++ * set our MRU to the larger of value we wanted and
++ * the value we got in the negotiation.
++ * Note on the MTU: the link MTU can be the MRU the peer wanted,
++ * the interface MTU is set to the lower of that and the
++ * MTU we want to use.
++ */
++ mtu = ho-&gt;neg_mru? ho-&gt;mru: PPP_MRU;
++#ifdef HAVE_MULTILINK
++ if (!(multilink &amp;&amp; go-&gt;neg_mrru &amp;&amp; ho-&gt;neg_mrru))
++#endif /* HAVE_MULTILINK */
++ netif_set_mtu(f-&gt;unit, MIN(mtu, ao-&gt;mru));
++ ppp_send_config(f-&gt;unit, mtu,
++ (ho-&gt;neg_asyncmap? ho-&gt;asyncmap: 0xffffffff),
++ ho-&gt;neg_pcompression, ho-&gt;neg_accompression);
++ ppp_recv_config(f-&gt;unit, (go-&gt;neg_mru? MAX(wo-&gt;mru, go-&gt;mru): PPP_MRU),
++ (lax_recv? 0: go-&gt;neg_asyncmap? go-&gt;asyncmap: 0xffffffff),
++ go-&gt;neg_pcompression, go-&gt;neg_accompression);
++
++ if (ho-&gt;neg_mru)
++ peer_mru[f-&gt;unit] = ho-&gt;mru;
++
++ lcp_echo_lowerup(f-&gt;unit); /* Enable echo messages */
++
++ link_established(f-&gt;unit);
++}
++
++
++/*
++ * lcp_down - LCP has gone DOWN.
++ *
++ * Alert other protocols.
++ */
++static void
++lcp_down(f)
++ fsm *f;
++{
++ lcp_options *go = &amp;lcp_gotoptions[f-&gt;unit];
++
++ lcp_echo_lowerdown(f-&gt;unit);
++
++ link_down(f-&gt;unit);
++
++ ppp_send_config(f-&gt;unit, PPP_MRU, 0xffffffff, 0, 0);
++ ppp_recv_config(f-&gt;unit, PPP_MRU,
++ (go-&gt;neg_asyncmap? go-&gt;asyncmap: 0xffffffff),
++ go-&gt;neg_pcompression, go-&gt;neg_accompression);
++ peer_mru[f-&gt;unit] = PPP_MRU;
++}
++
++
++/*
++ * lcp_starting - LCP needs the lower layer up.
++ */
++static void
++lcp_starting(f)
++ fsm *f;
++{
++ link_required(f-&gt;unit);
++}
++
++
++/*
++ * lcp_finished - LCP has finished with the lower layer.
++ */
++static void
++lcp_finished(f)
++ fsm *f;
++{
++ link_terminated(f-&gt;unit);
++}
++
++
++/*
++ * lcp_printpkt - print the contents of an LCP packet.
++ */
++static char *lcp_codenames[] = {
++ &quot;ConfReq&quot;, &quot;ConfAck&quot;, &quot;ConfNak&quot;, &quot;ConfRej&quot;,
++ &quot;TermReq&quot;, &quot;TermAck&quot;, &quot;CodeRej&quot;, &quot;ProtRej&quot;,
++ &quot;EchoReq&quot;, &quot;EchoRep&quot;, &quot;DiscReq&quot;
++};
++
++static int
++lcp_printpkt(p, plen, printer, arg)
++ u_char *p;
++ int plen;
++ void (*printer) __P((void *, char *, ...));
++ void *arg;
++{
++ int code, id, len, olen, i;
++ u_char *pstart, *optend;
++ u_short cishort;
++ u_int32_t cilong;
++
++ if (plen &lt; HEADERLEN)
++ return 0;
++ pstart = p;
++ GETCHAR(code, p);
++ GETCHAR(id, p);
++ GETSHORT(len, p);
++ if (len &lt; HEADERLEN || len &gt; plen)
++ return 0;
++
++ if (code &gt;= 1 &amp;&amp; code &lt;= sizeof(lcp_codenames) / sizeof(char *))
++ printer(arg, &quot; %s&quot;, lcp_codenames[code-1]);
++ else
++ printer(arg, &quot; code=0x%x&quot;, code);
++ printer(arg, &quot; id=0x%x&quot;, id);
++ len -= HEADERLEN;
++ switch (code) {
++ case CONFREQ:
++ case CONFACK:
++ case CONFNAK:
++ case CONFREJ:
++ /* print option list */
++ while (len &gt;= 2) {
++ GETCHAR(code, p);
++ GETCHAR(olen, p);
++ p -= 2;
++ if (olen &lt; 2 || olen &gt; len) {
++ break;
++ }
++ printer(arg, &quot; &lt;&quot;);
++ len -= olen;
++ optend = p + olen;
++ switch (code) {
++ case CI_MRU:
++ if (olen == CILEN_SHORT) {
++ p += 2;
++ GETSHORT(cishort, p);
++ printer(arg, &quot;mru %d&quot;, cishort);
++ }
++ break;
++ case CI_ASYNCMAP:
++ if (olen == CILEN_LONG) {
++ p += 2;
++ GETLONG(cilong, p);
++ printer(arg, &quot;asyncmap 0x%x&quot;, cilong);
++ }
++ break;
++ case CI_AUTHTYPE:
++ if (olen &gt;= CILEN_SHORT) {
++ p += 2;
++ printer(arg, &quot;auth &quot;);
++ GETSHORT(cishort, p);
++ switch (cishort) {
++ case PPP_PAP:
++ printer(arg, &quot;pap&quot;);
++ break;
++ case PPP_CHAP:
++ printer(arg, &quot;chap&quot;);
++ if (p &lt; optend) {
++ switch (*p) {
++ case CHAP_DIGEST_MD5:
++ printer(arg, &quot; MD5&quot;);
++ ++p;
++ break;
++#ifdef CHAPMS
++ case CHAP_MICROSOFT:
++ printer(arg, &quot; m$oft&quot;);
++ ++p;
++ break;
++#endif
++ }
++ }
++ break;
++ default:
++ printer(arg, &quot;0x%x&quot;, cishort);
++ }
++ }
++ break;
++ case CI_QUALITY:
++ if (olen &gt;= CILEN_SHORT) {
++ p += 2;
++ printer(arg, &quot;quality &quot;);
++ GETSHORT(cishort, p);
++ switch (cishort) {
++ case PPP_LQR:
++ printer(arg, &quot;lqr&quot;);
++ break;
++ default:
++ printer(arg, &quot;0x%x&quot;, cishort);
++ }
++ }
++ break;
++ case CI_CALLBACK:
++ if (olen &gt;= CILEN_CHAR) {
++ p += 2;
++ printer(arg, &quot;callback &quot;);
++ GETCHAR(cishort, p);
++ switch (cishort) {
++ case CBCP_OPT:
++ printer(arg, &quot;CBCP&quot;);
++ break;
++ default:
++ printer(arg, &quot;0x%x&quot;, cishort);
++ }
++ }
++ break;
++ case CI_MAGICNUMBER:
++ if (olen == CILEN_LONG) {
++ p += 2;
++ GETLONG(cilong, p);
++ printer(arg, &quot;magic 0x%x&quot;, cilong);
++ }
++ break;
++ case CI_PCOMPRESSION:
++ if (olen == CILEN_VOID) {
++ p += 2;
++ printer(arg, &quot;pcomp&quot;);
++ }
++ break;
++ case CI_ACCOMPRESSION:
++ if (olen == CILEN_VOID) {
++ p += 2;
++ printer(arg, &quot;accomp&quot;);
++ }
++ break;
++ case CI_MRRU:
++ if (olen == CILEN_SHORT) {
++ p += 2;
++ GETSHORT(cishort, p);
++ printer(arg, &quot;mrru %d&quot;, cishort);
++ }
++ break;
++ case CI_SSNHF:
++ if (olen == CILEN_VOID) {
++ p += 2;
++ printer(arg, &quot;ssnhf&quot;);
++ }
++ break;
++ case CI_EPDISC:
++#ifdef HAVE_MULTILINK
++ if (olen &gt;= CILEN_CHAR) {
++ struct epdisc epd;
++ p += 2;
++ GETCHAR(epd.class, p);
++ epd.length = olen - CILEN_CHAR;
++ if (epd.length &gt; MAX_ENDP_LEN)
++ epd.length = MAX_ENDP_LEN;
++ if (epd.length &gt; 0) {
++ BCOPY(p, epd.value, epd.length);
++ p += epd.length;
++ }
++ printer(arg, &quot;endpoint [%s]&quot;, epdisc_to_str(&amp;epd));
++ }
++#else
++ printer(arg, &quot;endpoint&quot;);
++#endif
++ break;
++ }
++ while (p &lt; optend) {
++ GETCHAR(code, p);
++ printer(arg, &quot; %.2x&quot;, code);
++ }
++ printer(arg, &quot;&gt;&quot;);
++ }
++ break;
++
++ case TERMACK:
++ case TERMREQ:
++ if (len &gt; 0 &amp;&amp; *p &gt;= ' ' &amp;&amp; *p &lt; 0x7f) {
++ printer(arg, &quot; &quot;);
++ print_string((char *)p, len, printer, arg);
++ p += len;
++ len = 0;
++ }
++ break;
++
++ case ECHOREQ:
++ case ECHOREP:
++ case DISCREQ:
++ if (len &gt;= 4) {
++ GETLONG(cilong, p);
++ printer(arg, &quot; magic=0x%x&quot;, cilong);
++ p += 4;
++ len -= 4;
++ }
++ break;
++ }
++
++ /* print the rest of the bytes in the packet */
++ for (i = 0; i &lt; len &amp;&amp; i &lt; 32; ++i) {
++ GETCHAR(code, p);
++ printer(arg, &quot; %.2x&quot;, code);
++ }
++ if (i &lt; len) {
++ printer(arg, &quot; ...&quot;);
++ p += len - i;
++ }
++
++ return p - pstart;
++}
++
++/*
++ * Time to shut down the link because there is nothing out there.
++ */
++
++static
++void LcpLinkFailure (f)
++ fsm *f;
++{
++ if (f-&gt;state == OPENED) {
++ info(&quot;No response to %d echo-requests&quot;, lcp_echos_pending);
++ notice(&quot;Serial link appears to be disconnected.&quot;);
++ lcp_close(f-&gt;unit, &quot;Peer not responding&quot;);
++ status = EXIT_PEER_DEAD;
++ }
++}
++
++/*
++ * Timer expired for the LCP echo requests from this process.
++ */
++
++static void
++LcpEchoCheck (f)
++ fsm *f;
++{
++ LcpSendEchoRequest (f);
++ if (f-&gt;state != OPENED)
++ return;
++
++ /*
++ * Start the timer for the next interval.
++ */
++ if (lcp_echo_timer_running)
++ warn(&quot;assertion lcp_echo_timer_running==0 failed&quot;);
++ TIMEOUT (LcpEchoTimeout, f, lcp_echo_interval);
++ lcp_echo_timer_running = 1;
++}
++
++/*
++ * LcpEchoTimeout - Timer expired on the LCP echo
++ */
++
++static void
++LcpEchoTimeout (arg)
++ void *arg;
++{
++ if (lcp_echo_timer_running != 0) {
++ lcp_echo_timer_running = 0;
++ LcpEchoCheck ((fsm *) arg);
++ }
++}
++
++/*
++ * LcpEchoReply - LCP has received a reply to the echo
++ */
++
++static void
++lcp_received_echo_reply (f, id, inp, len)
++ fsm *f;
++ int id;
++ u_char *inp;
++ int len;
++{
++ u_int32_t magic;
++
++ /* Check the magic number - don't count replies from ourselves. */
++ if (len &lt; 4) {
++ dbglog(&quot;lcp: received short Echo-Reply, length %d&quot;, len);
++ return;
++ }
++ GETLONG(magic, inp);
++ if (lcp_gotoptions[f-&gt;unit].neg_magicnumber
++ &amp;&amp; magic == lcp_gotoptions[f-&gt;unit].magicnumber) {
++ warn(&quot;appear to have received our own echo-reply!&quot;);
++ return;
++ }
++
++ /* Reset the number of outstanding echo frames */
++ lcp_echos_pending = 0;
++}
++
++/*
++ * LcpSendEchoRequest - Send an echo request frame to the peer
++ */
++
++static void
++LcpSendEchoRequest (f)
++ fsm *f;
++{
++ u_int32_t lcp_magic;
++ u_char pkt[4], *pktp;
++
++ /*
++ * Detect the failure of the peer at this point.
++ */
++ if (lcp_echo_fails != 0) {
++ if (lcp_echos_pending &gt;= lcp_echo_fails) {
++ LcpLinkFailure(f);
++ lcp_echos_pending = 0;
++ }
++ }
++
++ /*
++ * Make and send the echo request frame.
++ */
++ if (f-&gt;state == OPENED) {
++ lcp_magic = lcp_gotoptions[f-&gt;unit].magicnumber;
++ pktp = pkt;
++ PUTLONG(lcp_magic, pktp);
++ fsm_sdata(f, ECHOREQ, lcp_echo_number++ &amp; 0xFF, pkt, pktp - pkt);
++ ++lcp_echos_pending;
++ }
++}
++
++/*
++ * lcp_echo_lowerup - Start the timer for the LCP frame
++ */
++
++static void
++lcp_echo_lowerup (unit)
++ int unit;
++{
++ fsm *f = &amp;lcp_fsm[unit];
++
++ /* Clear the parameters for generating echo frames */
++ lcp_echos_pending = 0;
++ lcp_echo_number = 0;
++ lcp_echo_timer_running = 0;
++
++ /* If a timeout interval is specified then start the timer */
++ if (lcp_echo_interval != 0)
++ LcpEchoCheck (f);
++}
++
++/*
++ * lcp_echo_lowerdown - Stop the timer for the LCP frame
++ */
++
++static void
++lcp_echo_lowerdown (unit)
++ int unit;
++{
++ fsm *f = &amp;lcp_fsm[unit];
++
++ if (lcp_echo_timer_running != 0) {
++ UNTIMEOUT (LcpEchoTimeout, f);
++ lcp_echo_timer_running = 0;
++ }
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/pppd/lcp.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1ppppppdlcph">Added: drakx/trunk/mdk-stage1/ppp/pppd/lcp.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/lcp.h (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/lcp.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,95 @@
++/*
++ * lcp.h - Link Control Protocol definitions.
++ *
++ * Copyright (c) 1989 Carnegie Mellon University.
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms are permitted
++ * provided that the above copyright notice and this paragraph are
++ * duplicated in all such forms and that any documentation,
++ * advertising materials, and other materials related to such
++ * distribution and use acknowledge that the software was developed
++ * by Carnegie Mellon University. The name of the
++ * University may not be used to endorse or promote products derived
++ * from this software without specific prior written permission.
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
++ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
++ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++ *
++ * $Id: lcp.h 195720 2001-06-11 11:44:34Z gc $
++ */
++
++/*
++ * Options.
++ */
++#define CI_MRU 1 /* Maximum Receive Unit */
++#define CI_ASYNCMAP 2 /* Async Control Character Map */
++#define CI_AUTHTYPE 3 /* Authentication Type */
++#define CI_QUALITY 4 /* Quality Protocol */
++#define CI_MAGICNUMBER 5 /* Magic Number */
++#define CI_PCOMPRESSION 7 /* Protocol Field Compression */
++#define CI_ACCOMPRESSION 8 /* Address/Control Field Compression */
++#define CI_CALLBACK 13 /* callback */
++#define CI_MRRU 17 /* max reconstructed receive unit; multilink */
++#define CI_SSNHF 18 /* short sequence numbers for multilink */
++#define CI_EPDISC 19 /* endpoint discriminator */
++
++/*
++ * LCP-specific packet types.
++ */
++#define PROTREJ 8 /* Protocol Reject */
++#define ECHOREQ 9 /* Echo Request */
++#define ECHOREP 10 /* Echo Reply */
++#define DISCREQ 11 /* Discard Request */
++#define CBCP_OPT 6 /* Use callback control protocol */
++
++/*
++ * The state of options is described by an lcp_options structure.
++ */
++typedef struct lcp_options {
++ bool passive; /* Don't die if we don't get a response */
++ bool silent; /* Wait for the other end to start first */
++ bool restart; /* Restart vs. exit after close */
++ bool neg_mru; /* Negotiate the MRU? */
++ bool neg_asyncmap; /* Negotiate the async map? */
++ bool neg_upap; /* Ask for UPAP authentication? */
++ bool neg_chap; /* Ask for CHAP authentication? */
++ bool neg_magicnumber; /* Ask for magic number? */
++ bool neg_pcompression; /* HDLC Protocol Field Compression? */
++ bool neg_accompression; /* HDLC Address/Control Field Compression? */
++ bool neg_lqr; /* Negotiate use of Link Quality Reports */
++ bool neg_cbcp; /* Negotiate use of CBCP */
++ bool neg_mrru; /* negotiate multilink MRRU */
++ bool neg_ssnhf; /* negotiate short sequence numbers */
++ bool neg_endpoint; /* negotiate endpoint discriminator */
++ int mru; /* Value of MRU */
++ int mrru; /* Value of MRRU, and multilink enable */
++ u_char chap_mdtype; /* which MD type (hashing algorithm) */
++ u_int32_t asyncmap; /* Value of async map */
++ u_int32_t magicnumber;
++ int numloops; /* Number of loops during magic number neg. */
++ u_int32_t lqr_period; /* Reporting period for LQR 1/100ths second */
++ struct epdisc endpoint; /* endpoint discriminator */
++} lcp_options;
++
++extern fsm lcp_fsm[];
++extern lcp_options lcp_wantoptions[];
++extern lcp_options lcp_gotoptions[];
++extern lcp_options lcp_allowoptions[];
++extern lcp_options lcp_hisoptions[];
++
++#define DEFMRU 1500 /* Try for this */
++#define MINMRU 128 /* No MRUs below this */
++#define MAXMRU 16384 /* Normally limit MRU to this */
++
++void lcp_open __P((int));
++void lcp_close __P((int, char *));
++void lcp_lowerup __P((int));
++void lcp_lowerdown __P((int));
++void lcp_sprotrej __P((int, u_char *, int)); /* send protocol reject */
++
++extern struct protent lcp_protent;
++
++/* Default number of times we receive our magic number from the peer
++ before deciding the link is looped-back. */
++#define DEFLOOPBACKFAIL 10
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/pppd/lcp.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1ppppppdmagicc">Added: drakx/trunk/mdk-stage1/ppp/pppd/magic.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/magic.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/magic.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,88 @@
++/*
++ * magic.c - PPP Magic Number routines.
++ *
++ * Copyright (c) 1989 Carnegie Mellon University.
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms are permitted
++ * provided that the above copyright notice and this paragraph are
++ * duplicated in all such forms and that any documentation,
++ * advertising materials, and other materials related to such
++ * distribution and use acknowledge that the software was developed
++ * by Carnegie Mellon University. The name of the
++ * University may not be used to endorse or promote products derived
++ * from this software without specific prior written permission.
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
++ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
++ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++ */
++
++#define RCSID &quot;$Id: magic.c 195734 2001-06-11 14:46:02Z gc $&quot;
++
++#include &lt;stdlib.h&gt;
++#include &lt;stdio.h&gt;
++#include &lt;unistd.h&gt;
++#include &lt;sys/types.h&gt;
++#include &lt;sys/time.h&gt;
++
++#include &quot;pppd.h&quot;
++#include &quot;magic.h&quot;
++
++static const char rcsid[] = RCSID;
++
++extern long mrand48 __P((void));
++extern void srand48 __P((long));
++
++/*
++ * magic_init - Initialize the magic number generator.
++ *
++ * Attempts to compute a random number seed which will not repeat.
++ * The current method uses the current hostid, current process ID
++ * and current time, currently.
++ */
++void
++magic_init()
++{
++ long seed;
++ struct timeval t;
++
++ gettimeofday(&amp;t, NULL);
++ seed = get_host_seed() ^ t.tv_sec ^ t.tv_usec ^ getpid();
++ srand48(seed);
++}
++
++/*
++ * magic - Returns the next magic number.
++ */
++u_int32_t
++magic()
++{
++ return (u_int32_t) mrand48();
++}
++
++#ifdef NO_DRAND48
++/*
++ * Substitute procedures for those systems which don't have
++ * drand48 et al.
++ */
++
++double
++drand48()
++{
++ return (double)random() / (double)0x7fffffffL; /* 2**31-1 */
++}
++
++long
++mrand48()
++{
++ return random();
++}
++
++void
++srand48(seedval)
++long seedval;
++{
++ srandom((int)seedval);
++}
++
++#endif
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/pppd/magic.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1ppppppdmagich">Added: drakx/trunk/mdk-stage1/ppp/pppd/magic.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/magic.h (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/magic.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,23 @@
++/*
++ * magic.h - PPP Magic Number definitions.
++ *
++ * Copyright (c) 1989 Carnegie Mellon University.
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms are permitted
++ * provided that the above copyright notice and this paragraph are
++ * duplicated in all such forms and that any documentation,
++ * advertising materials, and other materials related to such
++ * distribution and use acknowledge that the software was developed
++ * by Carnegie Mellon University. The name of the
++ * University may not be used to endorse or promote products derived
++ * from this software without specific prior written permission.
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
++ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
++ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++ *
++ * $Id: magic.h 195720 2001-06-11 11:44:34Z gc $
++ */
++
++void magic_init __P((void)); /* Initialize the magic number generator */
++u_int32_t magic __P((void)); /* Returns the next magic number */
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/pppd/magic.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1ppppppdmainc">Added: drakx/trunk/mdk-stage1/ppp/pppd/main.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/main.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/main.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,1846 @@
++/*
++ * main.c - Point-to-Point Protocol main module
++ *
++ * Copyright (c) 1989 Carnegie Mellon University.
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms are permitted
++ * provided that the above copyright notice and this paragraph are
++ * duplicated in all such forms and that any documentation,
++ * advertising materials, and other materials related to such
++ * distribution and use acknowledge that the software was developed
++ * by Carnegie Mellon University. The name of the
++ * University may not be used to endorse or promote products derived
++ * from this software without specific prior written permission.
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
++ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
++ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++ */
++
++#define RCSID &quot;$Id: main.c 195734 2001-06-11 14:46:02Z gc $&quot;
++
++#include &lt;stdio.h&gt;
++#include &lt;ctype.h&gt;
++#include &lt;stdlib.h&gt;
++#include &lt;string.h&gt;
++#include &lt;unistd.h&gt;
++#include &lt;signal.h&gt;
++#include &lt;errno.h&gt;
++#include &lt;fcntl.h&gt;
++#include &lt;syslog.h&gt;
++#include &lt;netdb.h&gt;
++#include &lt;utmp.h&gt;
++#include &lt;pwd.h&gt;
++#include &lt;setjmp.h&gt;
++#include &lt;sys/param.h&gt;
++#include &lt;sys/types.h&gt;
++#include &lt;sys/wait.h&gt;
++#include &lt;sys/time.h&gt;
++#include &lt;sys/resource.h&gt;
++#include &lt;sys/stat.h&gt;
++#include &lt;sys/socket.h&gt;
++#include &lt;netinet/in.h&gt;
++#include &lt;arpa/inet.h&gt;
++
++#include &quot;pppd.h&quot;
++#include &quot;magic.h&quot;
++#include &quot;fsm.h&quot;
++#include &quot;lcp.h&quot;
++#include &quot;ipcp.h&quot;
++#ifdef INET6
++#include &quot;ipv6cp.h&quot;
++#endif
++#include &quot;upap.h&quot;
++#include &quot;chap.h&quot;
++#include &quot;ccp.h&quot;
++#include &quot;pathnames.h&quot;
++#include &quot;tdb.h&quot;
++
++#ifdef CBCP_SUPPORT
++#include &quot;cbcp.h&quot;
++#endif
++
++#ifdef IPX_CHANGE
++#include &quot;ipxcp.h&quot;
++#endif /* IPX_CHANGE */
++#ifdef AT_CHANGE
++#include &quot;atcp.h&quot;
++#endif
++
++static const char rcsid[] = RCSID;
++
++/* interface vars */
++char ifname[32]; /* Interface name */
++int ifunit; /* Interface unit number */
++
++struct channel *the_channel;
++
++char *progname; /* Name of this program */
++char hostname[MAXNAMELEN]; /* Our hostname */
++static char pidfilename[MAXPATHLEN]; /* name of pid file */
++static char linkpidfile[MAXPATHLEN]; /* name of linkname pid file */
++char ppp_devnam[MAXPATHLEN]; /* name of PPP tty (maybe ttypx) */
++uid_t uid; /* Our real user-id */
++struct notifier *pidchange = NULL;
++struct notifier *phasechange = NULL;
++struct notifier *exitnotify = NULL;
++struct notifier *sigreceived = NULL;
++
++int hungup; /* terminal has been hung up */
++int privileged; /* we're running as real uid root */
++int need_holdoff; /* need holdoff period before restarting */
++int detached; /* have detached from terminal */
++volatile int status; /* exit status for pppd */
++int unsuccess; /* # unsuccessful connection attempts */
++int do_callback; /* != 0 if we should do callback next */
++int doing_callback; /* != 0 if we are doing callback */
++TDB_CONTEXT *pppdb; /* database for storing status etc. */
++char db_key[32];
++
++int (*holdoff_hook) __P((void)) = NULL;
++int (*new_phase_hook) __P((int)) = NULL;
++
++static int conn_running; /* we have a [dis]connector running */
++static int devfd; /* fd of underlying device */
++static int fd_ppp = -1; /* fd for talking PPP */
++static int fd_loop; /* fd for getting demand-dial packets */
++
++int phase; /* where the link is at */
++int kill_link;
++int open_ccp_flag;
++int listen_time;
++int got_sigusr2;
++int got_sigterm;
++int got_sighup;
++
++static int waiting;
++static sigjmp_buf sigjmp;
++
++char **script_env; /* Env. variable values for scripts */
++int s_env_nalloc; /* # words avail at script_env */
++
++u_char outpacket_buf[PPP_MRU+PPP_HDRLEN]; /* buffer for outgoing packet */
++u_char inpacket_buf[PPP_MRU+PPP_HDRLEN]; /* buffer for incoming packet */
++
++static int n_children; /* # child processes still running */
++static int got_sigchld; /* set if we have received a SIGCHLD */
++
++int privopen; /* don't lock, open device as root */
++
++char *no_ppp_msg = &quot;Sorry - this system lacks PPP kernel support\n&quot;;
++
++GIDSET_TYPE groups[NGROUPS_MAX];/* groups the user is in */
++int ngroups; /* How many groups valid in groups */
++
++static struct timeval start_time; /* Time when link was started. */
++
++struct pppd_stats link_stats;
++int link_connect_time;
++int link_stats_valid;
++
++/*
++ * We maintain a list of child process pids and
++ * functions to call when they exit.
++ */
++struct subprocess {
++ pid_t pid;
++ char *prog;
++ void (*done) __P((void *));
++ void *arg;
++ struct subprocess *next;
++};
++
++static struct subprocess *children;
++
++/* Prototypes for procedures local to this file. */
++
++static void setup_signals __P((void));
++static void create_pidfile __P((void));
++static void create_linkpidfile __P((void));
++static void cleanup __P((void));
++static void get_input __P((void));
++static void calltimeout __P((void));
++static struct timeval *timeleft __P((struct timeval *));
++static void kill_my_pg __P((int));
++static void hup __P((int));
++static void term __P((int));
++static void chld __P((int));
++static void toggle_debug __P((int));
++static void open_ccp __P((int));
++static void bad_signal __P((int));
++static void holdoff_end __P((void *));
++static int reap_kids __P((int waitfor));
++static void update_db_entry __P((void));
++static void add_db_key __P((const char *));
++static void delete_db_key __P((const char *));
++static void cleanup_db __P((void));
++static void handle_events __P((void));
++
++extern char *ttyname __P((int));
++extern char *getlogin __P((void));
++int main __P((int, char *[]));
++
++#ifdef ultrix
++#undef O_NONBLOCK
++#define O_NONBLOCK O_NDELAY
++#endif
++
++#ifdef ULTRIX
++#define setlogmask(x)
++#endif
++
++/*
++ * PPP Data Link Layer &quot;protocol&quot; table.
++ * One entry per supported protocol.
++ * The last entry must be NULL.
++ */
++struct protent *protocols[] = {
++ &amp;lcp_protent,
++ &amp;pap_protent,
++ &amp;chap_protent,
++#ifdef CBCP_SUPPORT
++ &amp;cbcp_protent,
++#endif
++ &amp;ipcp_protent,
++#ifdef INET6
++ &amp;ipv6cp_protent,
++#endif
++ &amp;ccp_protent,
++#ifdef IPX_CHANGE
++ &amp;ipxcp_protent,
++#endif
++#ifdef AT_CHANGE
++ &amp;atcp_protent,
++#endif
++ NULL
++};
++
++/*
++ * If PPP_DRV_NAME is not defined, use the default &quot;ppp&quot; as the device name.
++ */
++#if !defined(PPP_DRV_NAME)
++#define PPP_DRV_NAME &quot;ppp&quot;
++#endif /* !defined(PPP_DRV_NAME) */
++
++int
++main(argc, argv)
++ int argc;
++ char *argv[];
++{
++ int i, t;
++ char *p;
++ struct passwd *pw;
++ struct protent *protp;
++ char numbuf[16];
++
++ new_phase(PHASE_INITIALIZE);
++
++ /*
++ * Ensure that fds 0, 1, 2 are open, to /dev/null if nowhere else.
++ * This way we can close 0, 1, 2 in detach() without clobbering
++ * a fd that we are using.
++ */
++ if ((i = open(&quot;/dev/null&quot;, O_RDWR)) &gt;= 0) {
++ while (0 &lt;= i &amp;&amp; i &lt;= 2)
++ i = dup(i);
++ if (i &gt;= 0)
++ close(i);
++ }
++
++ script_env = NULL;
++
++ /* Initialize syslog facilities */
++ reopen_log();
++
++ if (gethostname(hostname, MAXNAMELEN) &lt; 0 ) {
++ option_error(&quot;Couldn't get hostname: %m&quot;);
++ exit(1);
++ }
++ hostname[MAXNAMELEN-1] = 0;
++
++ /* make sure we don't create world or group writable files. */
++ umask(umask(0777) | 022);
++
++ uid = getuid();
++ privileged = uid == 0;
++ slprintf(numbuf, sizeof(numbuf), &quot;%d&quot;, uid);
++ script_setenv(&quot;ORIG_UID&quot;, numbuf, 0);
++
++ ngroups = getgroups(NGROUPS_MAX, groups);
++
++ /*
++ * Initialize magic number generator now so that protocols may
++ * use magic numbers in initialization.
++ */
++ magic_init();
++
++ /*
++ * Initialize each protocol.
++ */
++ for (i = 0; (protp = protocols[i]) != NULL; ++i)
++ (*protp-&gt;init)(0);
++
++ /*
++ * Initialize the default channel.
++ */
++ tty_init();
++
++ progname = *argv;
++
++ /*
++ * Parse, in order, the system options file, the user's options file,
++ * and the command line arguments.
++ */
++ if (!options_from_file(_PATH_SYSOPTIONS, !privileged, 0, 1)
++ || !options_from_user()
++ || !parse_args(argc-1, argv+1))
++ exit(EXIT_OPTION_ERROR);
++ devnam_fixed = 1; /* can no longer change device name */
++
++ /*
++ * Work out the device name, if it hasn't already been specified,
++ * and parse the tty's options file.
++ */
++ if (the_channel-&gt;process_extra_options)
++ (*the_channel-&gt;process_extra_options)();
++
++ if (debug)
++ setlogmask(LOG_UPTO(LOG_DEBUG));
++
++ /*
++ * Check that we are running as root.
++ */
++ if (geteuid() != 0) {
++ option_error(&quot;must be root to run %s, since it is not setuid-root&quot;,
++ argv[0]);
++ exit(EXIT_NOT_ROOT);
++ }
++
++ if (!ppp_available()) {
++ option_error(&quot;%s&quot;, no_ppp_msg);
++ exit(EXIT_NO_KERNEL_SUPPORT);
++ }
++
++ /*
++ * Check that the options given are valid and consistent.
++ */
++ check_options();
++ if (!sys_check_options())
++ exit(EXIT_OPTION_ERROR);
++ auth_check_options();
++#ifdef HAVE_MULTILINK
++ mp_check_options();
++#endif
++ for (i = 0; (protp = protocols[i]) != NULL; ++i)
++ if (protp-&gt;check_options != NULL)
++ (*protp-&gt;check_options)();
++ if (the_channel-&gt;check_options)
++ (*the_channel-&gt;check_options)();
++
++
++ if (dump_options || dryrun) {
++ init_pr_log(NULL, LOG_INFO);
++ print_options(pr_log, NULL);
++ end_pr_log();
++ if (dryrun)
++ die(0);
++ }
++
++ /*
++ * Initialize system-dependent stuff.
++ */
++ sys_init();
++
++ pppdb = tdb_open(_PATH_PPPDB, 0, 0, O_RDWR|O_CREAT, 0644);
++ if (pppdb != NULL) {
++ slprintf(db_key, sizeof(db_key), &quot;pppd%d&quot;, getpid());
++ update_db_entry();
++ } else {
++ warn(&quot;Warning: couldn't open ppp database %s&quot;, _PATH_PPPDB);
++ if (multilink) {
++ warn(&quot;Warning: disabling multilink&quot;);
++ multilink = 0;
++ }
++ }
++
++ /*
++ * Detach ourselves from the terminal, if required,
++ * and identify who is running us.
++ */
++ if (!nodetach &amp;&amp; !updetach)
++ detach();
++ p = getlogin();
++ if (p == NULL) {
++ pw = getpwuid(uid);
++ if (pw != NULL &amp;&amp; pw-&gt;pw_name != NULL)
++ p = pw-&gt;pw_name;
++ else
++ p = &quot;(unknown)&quot;;
++ }
++ syslog(LOG_NOTICE, &quot;pppd %s started by %s, uid %d&quot;, VERSION, p, uid);
++ script_setenv(&quot;PPPLOGNAME&quot;, p, 0);
++
++ if (devnam[0])
++ script_setenv(&quot;DEVICE&quot;, devnam, 1);
++ slprintf(numbuf, sizeof(numbuf), &quot;%d&quot;, getpid());
++ script_setenv(&quot;PPPD_PID&quot;, numbuf, 1);
++
++ setup_signals();
++
++ waiting = 0;
++
++ create_linkpidfile();
++
++ /*
++ * If we're doing dial-on-demand, set up the interface now.
++ */
++ if (demand) {
++ /*
++ * Open the loopback channel and set it up to be the ppp interface.
++ */
++ tdb_writelock(pppdb);
++ fd_loop = open_ppp_loopback();
++ set_ifunit(1);
++ tdb_writeunlock(pppdb);
++
++ /*
++ * Configure the interface and mark it up, etc.
++ */
++ demand_conf();
++ }
++
++ do_callback = 0;
++ for (;;) {
++
++ listen_time = 0;
++ need_holdoff = 1;
++ devfd = -1;
++ status = EXIT_OK;
++ ++unsuccess;
++ doing_callback = do_callback;
++ do_callback = 0;
++
++ if (demand &amp;&amp; !doing_callback) {
++ /*
++ * Don't do anything until we see some activity.
++ */
++ new_phase(PHASE_DORMANT);
++ demand_unblock();
++ add_fd(fd_loop);
++ for (;;) {
++ handle_events();
++ if (kill_link &amp;&amp; !persist)
++ break;
++ if (get_loop_output())
++ break;
++ }
++ remove_fd(fd_loop);
++ if (kill_link &amp;&amp; !persist)
++ break;
++
++ /*
++ * Now we want to bring up the link.
++ */
++ demand_block();
++ info(&quot;Starting link&quot;);
++ }
++
++ new_phase(PHASE_SERIALCONN);
++
++ devfd = the_channel-&gt;connect();
++ if (devfd &lt; 0)
++ goto fail;
++
++ /* set up the serial device as a ppp interface */
++ tdb_writelock(pppdb);
++ fd_ppp = the_channel-&gt;establish_ppp(devfd);
++ if (fd_ppp &lt; 0) {
++ tdb_writeunlock(pppdb);
++ status = EXIT_FATAL_ERROR;
++ goto disconnect;
++ }
++
++ if (!demand &amp;&amp; ifunit &gt;= 0)
++ set_ifunit(1);
++ tdb_writeunlock(pppdb);
++
++ /*
++ * Start opening the connection and wait for
++ * incoming events (reply, timeout, etc.).
++ */
++ notice(&quot;Connect: %s &lt;--&gt; %s&quot;, ifname, ppp_devnam);
++ gettimeofday(&amp;start_time, NULL);
++ link_stats_valid = 0;
++ script_unsetenv(&quot;CONNECT_TIME&quot;);
++ script_unsetenv(&quot;BYTES_SENT&quot;);
++ script_unsetenv(&quot;BYTES_RCVD&quot;);
++ lcp_lowerup(0);
++
++ add_fd(fd_ppp);
++ lcp_open(0); /* Start protocol */
++ status = EXIT_NEGOTIATION_FAILED;
++ new_phase(PHASE_ESTABLISH);
++ while (phase != PHASE_DEAD) {
++ handle_events();
++ get_input();
++ if (kill_link)
++ lcp_close(0, &quot;User request&quot;);
++ if (open_ccp_flag) {
++ if (phase == PHASE_NETWORK || phase == PHASE_RUNNING) {
++ ccp_fsm[0].flags = OPT_RESTART; /* clears OPT_SILENT */
++ (*ccp_protent.open)(0);
++ }
++ }
++ }
++
++ /*
++ * Print connect time and statistics.
++ */
++ if (link_stats_valid) {
++ int t = (link_connect_time + 5) / 6; /* 1/10ths of minutes */
++ info(&quot;Connect time %d.%d minutes.&quot;, t/10, t%10);
++ info(&quot;Sent %u bytes, received %u bytes.&quot;,
++ link_stats.bytes_out, link_stats.bytes_in);
++ }
++
++ /*
++ * Delete pid file before disestablishing ppp. Otherwise it
++ * can happen that another pppd gets the same unit and then
++ * we delete its pid file.
++ */
++ if (!demand) {
++ if (pidfilename[0] != 0
++ &amp;&amp; unlink(pidfilename) &lt; 0 &amp;&amp; errno != ENOENT)
++ warn(&quot;unable to delete pid file %s: %m&quot;, pidfilename);
++ pidfilename[0] = 0;
++ }
++
++ /*
++ * If we may want to bring the link up again, transfer
++ * the ppp unit back to the loopback. Set the
++ * real serial device back to its normal mode of operation.
++ */
++ remove_fd(fd_ppp);
++ clean_check();
++ the_channel-&gt;disestablish_ppp(devfd);
++ fd_ppp = -1;
++ if (!hungup)
++ lcp_lowerdown(0);
++ if (!demand)
++ script_unsetenv(&quot;IFNAME&quot;);
++
++ /*
++ * Run disconnector script, if requested.
++ * XXX we may not be able to do this if the line has hung up!
++ */
++ disconnect:
++ new_phase(PHASE_DISCONNECT);
++ the_channel-&gt;disconnect();
++
++ fail:
++ if (the_channel-&gt;cleanup)
++ (*the_channel-&gt;cleanup)();
++
++ if (!demand) {
++ if (pidfilename[0] != 0
++ &amp;&amp; unlink(pidfilename) &lt; 0 &amp;&amp; errno != ENOENT)
++ warn(&quot;unable to delete pid file %s: %m&quot;, pidfilename);
++ pidfilename[0] = 0;
++ }
++
++ if (!persist || (maxfail &gt; 0 &amp;&amp; unsuccess &gt;= maxfail))
++ break;
++
++ if (demand)
++ demand_discard();
++ t = need_holdoff? holdoff: 0;
++ if (holdoff_hook)
++ t = (*holdoff_hook)();
++ if (t &gt; 0) {
++ new_phase(PHASE_HOLDOFF);
++ TIMEOUT(holdoff_end, NULL, t);
++ do {
++ handle_events();
++ if (kill_link)
++ new_phase(PHASE_DORMANT); /* allow signal to end holdoff */
++ } while (phase == PHASE_HOLDOFF);
++ if (!persist)
++ break;
++ }
++ }
++
++ /* Wait for scripts to finish */
++ /* XXX should have a timeout here */
++ while (n_children &gt; 0) {
++ if (debug) {
++ struct subprocess *chp;
++ dbglog(&quot;Waiting for %d child processes...&quot;, n_children);
++ for (chp = children; chp != NULL; chp = chp-&gt;next)
++ dbglog(&quot; script %s, pid %d&quot;, chp-&gt;prog, chp-&gt;pid);
++ }
++ if (reap_kids(1) &lt; 0)
++ break;
++ }
++
++ die(status);
++ return 0;
++}
++
++/*
++ * handle_events - wait for something to happen and respond to it.
++ */
++static void
++handle_events()
++{
++ struct timeval timo;
++ sigset_t mask;
++
++ kill_link = open_ccp_flag = 0;
++ if (sigsetjmp(sigjmp, 1) == 0) {
++ sigprocmask(SIG_BLOCK, &amp;mask, NULL);
++ if (got_sighup || got_sigterm || got_sigusr2 || got_sigchld) {
++ sigprocmask(SIG_UNBLOCK, &amp;mask, NULL);
++ } else {
++ waiting = 1;
++ sigprocmask(SIG_UNBLOCK, &amp;mask, NULL);
++ wait_input(timeleft(&amp;timo));
++ }
++ }
++ waiting = 0;
++ calltimeout();
++ if (got_sighup) {
++ kill_link = 1;
++ got_sighup = 0;
++ if (status != EXIT_HANGUP)
++ status = EXIT_USER_REQUEST;
++ }
++ if (got_sigterm) {
++ kill_link = 1;
++ persist = 0;
++ status = EXIT_USER_REQUEST;
++ got_sigterm = 0;
++ }
++ if (got_sigchld) {
++ reap_kids(0); /* Don't leave dead kids lying around */
++ got_sigchld = 0;
++ }
++ if (got_sigusr2) {
++ open_ccp_flag = 1;
++ got_sigusr2 = 0;
++ }
++}
++
++/*
++ * setup_signals - initialize signal handling.
++ */
++static void
++setup_signals()
++{
++ struct sigaction sa;
++ sigset_t mask;
++
++ /*
++ * Compute mask of all interesting signals and install signal handlers
++ * for each. Only one signal handler may be active at a time. Therefore,
++ * all other signals should be masked when any handler is executing.
++ */
++ sigemptyset(&amp;mask);
++ sigaddset(&amp;mask, SIGHUP);
++ sigaddset(&amp;mask, SIGINT);
++ sigaddset(&amp;mask, SIGTERM);
++ sigaddset(&amp;mask, SIGCHLD);
++ sigaddset(&amp;mask, SIGUSR2);
++
++#define SIGNAL(s, handler) do { \
++ sa.sa_handler = handler; \
++ if (sigaction(s, &amp;sa, NULL) &lt; 0) \
++ fatal(&quot;Couldn't establish signal handler (%d): %m&quot;, s); \
++ } while (0)
++
++ sa.sa_mask = mask;
++ sa.sa_flags = 0;
++ SIGNAL(SIGHUP, hup); /* Hangup */
++ SIGNAL(SIGINT, term); /* Interrupt */
++ SIGNAL(SIGTERM, term); /* Terminate */
++ SIGNAL(SIGCHLD, chld);
++
++ SIGNAL(SIGUSR1, toggle_debug); /* Toggle debug flag */
++ SIGNAL(SIGUSR2, open_ccp); /* Reopen CCP */
++
++ /*
++ * Install a handler for other signals which would otherwise
++ * cause pppd to exit without cleaning up.
++ */
++ SIGNAL(SIGABRT, bad_signal);
++ SIGNAL(SIGALRM, bad_signal);
++ SIGNAL(SIGFPE, bad_signal);
++ SIGNAL(SIGILL, bad_signal);
++ SIGNAL(SIGPIPE, bad_signal);
++ SIGNAL(SIGQUIT, bad_signal);
++ SIGNAL(SIGSEGV, bad_signal);
++#ifdef SIGBUS
++ SIGNAL(SIGBUS, bad_signal);
++#endif
++#ifdef SIGEMT
++ SIGNAL(SIGEMT, bad_signal);
++#endif
++#ifdef SIGPOLL
++ SIGNAL(SIGPOLL, bad_signal);
++#endif
++#ifdef SIGPROF
++ SIGNAL(SIGPROF, bad_signal);
++#endif
++#ifdef SIGSYS
++ SIGNAL(SIGSYS, bad_signal);
++#endif
++#ifdef SIGTRAP
++ SIGNAL(SIGTRAP, bad_signal);
++#endif
++#ifdef SIGVTALRM
++ SIGNAL(SIGVTALRM, bad_signal);
++#endif
++#ifdef SIGXCPU
++ SIGNAL(SIGXCPU, bad_signal);
++#endif
++#ifdef SIGXFSZ
++ SIGNAL(SIGXFSZ, bad_signal);
++#endif
++
++ /*
++ * Apparently we can get a SIGPIPE when we call syslog, if
++ * syslogd has died and been restarted. Ignoring it seems
++ * be sufficient.
++ */
++ signal(SIGPIPE, SIG_IGN);
++}
++
++/*
++ * set_ifunit - do things we need to do once we know which ppp
++ * unit we are using.
++ */
++void
++set_ifunit(iskey)
++ int iskey;
++{
++ info(&quot;Using interface %s%d&quot;, PPP_DRV_NAME, ifunit);
++ slprintf(ifname, sizeof(ifname), &quot;%s%d&quot;, PPP_DRV_NAME, ifunit);
++ script_setenv(&quot;IFNAME&quot;, ifname, iskey);
++ if (iskey) {
++ create_pidfile(); /* write pid to file */
++ create_linkpidfile();
++ }
++}
++
++/*
++ * detach - detach us from the controlling terminal.
++ */
++void
++detach()
++{
++ int pid;
++ char numbuf[16];
++
++ if (detached)
++ return;
++ if ((pid = fork()) &lt; 0) {
++ error(&quot;Couldn't detach (fork failed: %m)&quot;);
++ die(1); /* or just return? */
++ }
++ if (pid != 0) {
++ /* parent */
++ notify(pidchange, pid);
++ exit(0); /* parent dies */
++ }
++ setsid();
++ chdir(&quot;/&quot;);
++ close(0);
++ close(1);
++ close(2);
++ detached = 1;
++ if (log_default)
++ log_to_fd = -1;
++ /* update pid files if they have been written already */
++ if (pidfilename[0])
++ create_pidfile();
++ if (linkpidfile[0])
++ create_linkpidfile();
++ slprintf(numbuf, sizeof(numbuf), &quot;%d&quot;, getpid());
++ script_setenv(&quot;PPPD_PID&quot;, numbuf, 1);
++}
++
++/*
++ * reopen_log - (re)open our connection to syslog.
++ */
++void
++reopen_log()
++{
++#ifdef ULTRIX
++ openlog(&quot;pppd&quot;, LOG_PID);
++#else
++ openlog(&quot;pppd&quot;, LOG_PID | LOG_NDELAY, LOG_PPP);
++ setlogmask(LOG_UPTO(LOG_INFO));
++#endif
++}
++
++/*
++ * Create a file containing our process ID.
++ */
++static void
++create_pidfile()
++{
++ FILE *pidfile;
++
++ slprintf(pidfilename, sizeof(pidfilename), &quot;%s%s.pid&quot;,
++ _PATH_VARRUN, ifname);
++ if ((pidfile = fopen(pidfilename, &quot;w&quot;)) != NULL) {
++ fprintf(pidfile, &quot;%d\n&quot;, getpid());
++ (void) fclose(pidfile);
++ } else {
++ error(&quot;Failed to create pid file %s: %m&quot;, pidfilename);
++ pidfilename[0] = 0;
++ }
++}
++
++static void
++create_linkpidfile()
++{
++ FILE *pidfile;
++
++ if (linkname[0] == 0)
++ return;
++ script_setenv(&quot;LINKNAME&quot;, linkname, 1);
++ slprintf(linkpidfile, sizeof(linkpidfile), &quot;%sppp-%s.pid&quot;,
++ _PATH_VARRUN, linkname);
++ if ((pidfile = fopen(linkpidfile, &quot;w&quot;)) != NULL) {
++ fprintf(pidfile, &quot;%d\n&quot;, getpid());
++ if (ifname[0])
++ fprintf(pidfile, &quot;%s\n&quot;, ifname);
++ (void) fclose(pidfile);
++ } else {
++ error(&quot;Failed to create pid file %s: %m&quot;, linkpidfile);
++ linkpidfile[0] = 0;
++ }
++}
++
++/*
++ * holdoff_end - called via a timeout when the holdoff period ends.
++ */
++static void
++holdoff_end(arg)
++ void *arg;
++{
++ new_phase(PHASE_DORMANT);
++}
++
++/* List of protocol names, to make our messages a little more informative. */
++struct protocol_list {
++ u_short proto;
++ const char *name;
++} protocol_list[] = {
++ { 0x21, &quot;IP&quot; },
++ { 0x23, &quot;OSI Network Layer&quot; },
++ { 0x25, &quot;Xerox NS IDP&quot; },
++ { 0x27, &quot;DECnet Phase IV&quot; },
++ { 0x29, &quot;Appletalk&quot; },
++ { 0x2b, &quot;Novell IPX&quot; },
++ { 0x2d, &quot;VJ compressed TCP/IP&quot; },
++ { 0x2f, &quot;VJ uncompressed TCP/IP&quot; },
++ { 0x31, &quot;Bridging PDU&quot; },
++ { 0x33, &quot;Stream Protocol ST-II&quot; },
++ { 0x35, &quot;Banyan Vines&quot; },
++ { 0x39, &quot;AppleTalk EDDP&quot; },
++ { 0x3b, &quot;AppleTalk SmartBuffered&quot; },
++ { 0x3d, &quot;Multi-Link&quot; },
++ { 0x3f, &quot;NETBIOS Framing&quot; },
++ { 0x41, &quot;Cisco Systems&quot; },
++ { 0x43, &quot;Ascom Timeplex&quot; },
++ { 0x45, &quot;Fujitsu Link Backup and Load Balancing (LBLB)&quot; },
++ { 0x47, &quot;DCA Remote Lan&quot; },
++ { 0x49, &quot;Serial Data Transport Protocol (PPP-SDTP)&quot; },
++ { 0x4b, &quot;SNA over 802.2&quot; },
++ { 0x4d, &quot;SNA&quot; },
++ { 0x4f, &quot;IP6 Header Compression&quot; },
++ { 0x6f, &quot;Stampede Bridging&quot; },
++ { 0xfb, &quot;single-link compression&quot; },
++ { 0xfd, &quot;1st choice compression&quot; },
++ { 0x0201, &quot;802.1d Hello Packets&quot; },
++ { 0x0203, &quot;IBM Source Routing BPDU&quot; },
++ { 0x0205, &quot;DEC LANBridge100 Spanning Tree&quot; },
++ { 0x0231, &quot;Luxcom&quot; },
++ { 0x0233, &quot;Sigma Network Systems&quot; },
++ { 0x8021, &quot;Internet Protocol Control Protocol&quot; },
++ { 0x8023, &quot;OSI Network Layer Control Protocol&quot; },
++ { 0x8025, &quot;Xerox NS IDP Control Protocol&quot; },
++ { 0x8027, &quot;DECnet Phase IV Control Protocol&quot; },
++ { 0x8029, &quot;Appletalk Control Protocol&quot; },
++ { 0x802b, &quot;Novell IPX Control Protocol&quot; },
++ { 0x8031, &quot;Bridging NCP&quot; },
++ { 0x8033, &quot;Stream Protocol Control Protocol&quot; },
++ { 0x8035, &quot;Banyan Vines Control Protocol&quot; },
++ { 0x803d, &quot;Multi-Link Control Protocol&quot; },
++ { 0x803f, &quot;NETBIOS Framing Control Protocol&quot; },
++ { 0x8041, &quot;Cisco Systems Control Protocol&quot; },
++ { 0x8043, &quot;Ascom Timeplex&quot; },
++ { 0x8045, &quot;Fujitsu LBLB Control Protocol&quot; },
++ { 0x8047, &quot;DCA Remote Lan Network Control Protocol (RLNCP)&quot; },
++ { 0x8049, &quot;Serial Data Control Protocol (PPP-SDCP)&quot; },
++ { 0x804b, &quot;SNA over 802.2 Control Protocol&quot; },
++ { 0x804d, &quot;SNA Control Protocol&quot; },
++ { 0x804f, &quot;IP6 Header Compression Control Protocol&quot; },
++ { 0x006f, &quot;Stampede Bridging Control Protocol&quot; },
++ { 0x80fb, &quot;Single Link Compression Control Protocol&quot; },
++ { 0x80fd, &quot;Compression Control Protocol&quot; },
++ { 0xc021, &quot;Link Control Protocol&quot; },
++ { 0xc023, &quot;Password Authentication Protocol&quot; },
++ { 0xc025, &quot;Link Quality Report&quot; },
++ { 0xc027, &quot;Shiva Password Authentication Protocol&quot; },
++ { 0xc029, &quot;CallBack Control Protocol (CBCP)&quot; },
++ { 0xc081, &quot;Container Control Protocol&quot; },
++ { 0xc223, &quot;Challenge Handshake Authentication Protocol&quot; },
++ { 0xc281, &quot;Proprietary Authentication Protocol&quot; },
++ { 0, NULL },
++};
++
++/*
++ * protocol_name - find a name for a PPP protocol.
++ */
++const char *
++protocol_name(proto)
++ int proto;
++{
++ struct protocol_list *lp;
++
++ for (lp = protocol_list; lp-&gt;proto != 0; ++lp)
++ if (proto == lp-&gt;proto)
++ return lp-&gt;name;
++ return NULL;
++}
++
++/*
++ * get_input - called when incoming data is available.
++ */
++static void
++get_input()
++{
++ int len, i;
++ u_char *p;
++ u_short protocol;
++ struct protent *protp;
++
++ p = inpacket_buf; /* point to beginning of packet buffer */
++
++ len = read_packet(inpacket_buf);
++ if (len &lt; 0)
++ return;
++
++ if (len == 0) {
++ notice(&quot;Modem hangup&quot;);
++ hungup = 1;
++ status = EXIT_HANGUP;
++ lcp_lowerdown(0); /* serial link is no longer available */
++ link_terminated(0);
++ return;
++ }
++
++ if (debug /*&amp;&amp; (debugflags &amp; DBG_INPACKET)*/)
++ dbglog(&quot;rcvd %P&quot;, p, len);
++
++ if (len &lt; PPP_HDRLEN) {
++ MAINDEBUG((&quot;io(): Received short packet.&quot;));
++ return;
++ }
++
++ p += 2; /* Skip address and control */
++ GETSHORT(protocol, p);
++ len -= PPP_HDRLEN;
++
++ /*
++ * Toss all non-LCP packets unless LCP is OPEN.
++ */
++ if (protocol != PPP_LCP &amp;&amp; lcp_fsm[0].state != OPENED) {
++ MAINDEBUG((&quot;get_input: Received non-LCP packet when LCP not open.&quot;));
++ return;
++ }
++
++ /*
++ * Until we get past the authentication phase, toss all packets
++ * except LCP, LQR and authentication packets.
++ */
++ if (phase &lt;= PHASE_AUTHENTICATE
++ &amp;&amp; !(protocol == PPP_LCP || protocol == PPP_LQR
++ || protocol == PPP_PAP || protocol == PPP_CHAP)) {
++ MAINDEBUG((&quot;get_input: discarding proto 0x%x in phase %d&quot;,
++ protocol, phase));
++ return;
++ }
++
++ /*
++ * Upcall the proper protocol input routine.
++ */
++ for (i = 0; (protp = protocols[i]) != NULL; ++i) {
++ if (protp-&gt;protocol == protocol &amp;&amp; protp-&gt;enabled_flag) {
++ (*protp-&gt;input)(0, p, len);
++ return;
++ }
++ if (protocol == (protp-&gt;protocol &amp; ~0x8000) &amp;&amp; protp-&gt;enabled_flag
++ &amp;&amp; protp-&gt;datainput != NULL) {
++ (*protp-&gt;datainput)(0, p, len);
++ return;
++ }
++ }
++
++ if (debug) {
++ const char *pname = protocol_name(protocol);
++ if (pname != NULL)
++ warn(&quot;Unsupported protocol '%s' (0x%x) received&quot;, pname, protocol);
++ else
++ warn(&quot;Unsupported protocol 0x%x received&quot;, protocol);
++ }
++ lcp_sprotrej(0, p - PPP_HDRLEN, len + PPP_HDRLEN);
++}
++
++/*
++ * new_phase - signal the start of a new phase of pppd's operation.
++ */
++void
++new_phase(p)
++ int p;
++{
++ phase = p;
++ if (new_phase_hook)
++ (*new_phase_hook)(p);
++ notify(phasechange, p);
++}
++
++/*
++ * die - clean up state and exit with the specified status.
++ */
++void
++die(status)
++ int status;
++{
++ cleanup();
++ notify(exitnotify, status);
++ syslog(LOG_INFO, &quot;Exit.&quot;);
++ exit(status);
++}
++
++/*
++ * cleanup - restore anything which needs to be restored before we exit
++ */
++/* ARGSUSED */
++static void
++cleanup()
++{
++ sys_cleanup();
++
++ if (fd_ppp &gt;= 0)
++ the_channel-&gt;disestablish_ppp(devfd);
++ if (the_channel-&gt;cleanup)
++ (*the_channel-&gt;cleanup)();
++
++ if (pidfilename[0] != 0 &amp;&amp; unlink(pidfilename) &lt; 0 &amp;&amp; errno != ENOENT)
++ warn(&quot;unable to delete pid file %s: %m&quot;, pidfilename);
++ pidfilename[0] = 0;
++ if (linkpidfile[0] != 0 &amp;&amp; unlink(linkpidfile) &lt; 0 &amp;&amp; errno != ENOENT)
++ warn(&quot;unable to delete pid file %s: %m&quot;, linkpidfile);
++ linkpidfile[0] = 0;
++
++ if (pppdb != NULL)
++ cleanup_db();
++}
++
++/*
++ * update_link_stats - get stats at link termination.
++ */
++void
++update_link_stats(u)
++ int u;
++{
++ struct timeval now;
++ char numbuf[32];
++
++ if (!get_ppp_stats(u, &amp;link_stats)
++ || gettimeofday(&amp;now, NULL) &lt; 0)
++ return;
++ link_connect_time = now.tv_sec - start_time.tv_sec;
++ link_stats_valid = 1;
++
++ slprintf(numbuf, sizeof(numbuf), &quot;%d&quot;, link_connect_time);
++ script_setenv(&quot;CONNECT_TIME&quot;, numbuf, 0);
++ slprintf(numbuf, sizeof(numbuf), &quot;%d&quot;, link_stats.bytes_out);
++ script_setenv(&quot;BYTES_SENT&quot;, numbuf, 0);
++ slprintf(numbuf, sizeof(numbuf), &quot;%d&quot;, link_stats.bytes_in);
++ script_setenv(&quot;BYTES_RCVD&quot;, numbuf, 0);
++}
++
++
++struct callout {
++ struct timeval c_time; /* time at which to call routine */
++ void *c_arg; /* argument to routine */
++ void (*c_func) __P((void *)); /* routine */
++ struct callout *c_next;
++};
++
++static struct callout *callout = NULL; /* Callout list */
++static struct timeval timenow; /* Current time */
++
++/*
++ * timeout - Schedule a timeout.
++ *
++ * Note that this timeout takes the number of milliseconds, NOT hz (as in
++ * the kernel).
++ */
++void
++timeout(func, arg, secs, usecs)
++ void (*func) __P((void *));
++ void *arg;
++ int secs, usecs;
++{
++ struct callout *newp, *p, **pp;
++
++ MAINDEBUG((&quot;Timeout %p:%p in %d.%03d seconds.&quot;, func, arg,
++ time / 1000, time % 1000));
++
++ /*
++ * Allocate timeout.
++ */
++ if ((newp = (struct callout *) malloc(sizeof(struct callout))) == NULL)
++ fatal(&quot;Out of memory in timeout()!&quot;);
++ newp-&gt;c_arg = arg;
++ newp-&gt;c_func = func;
++ gettimeofday(&amp;timenow, NULL);
++ newp-&gt;c_time.tv_sec = timenow.tv_sec + secs;
++ newp-&gt;c_time.tv_usec = timenow.tv_usec + usecs;
++ if (newp-&gt;c_time.tv_usec &gt;= 1000000) {
++ newp-&gt;c_time.tv_sec += newp-&gt;c_time.tv_usec / 1000000;
++ newp-&gt;c_time.tv_usec %= 1000000;
++ }
++
++ /*
++ * Find correct place and link it in.
++ */
++ for (pp = &amp;callout; (p = *pp); pp = &amp;p-&gt;c_next)
++ if (newp-&gt;c_time.tv_sec &lt; p-&gt;c_time.tv_sec
++ || (newp-&gt;c_time.tv_sec == p-&gt;c_time.tv_sec
++ &amp;&amp; newp-&gt;c_time.tv_usec &lt; p-&gt;c_time.tv_usec))
++ break;
++ newp-&gt;c_next = p;
++ *pp = newp;
++}
++
++
++/*
++ * untimeout - Unschedule a timeout.
++ */
++void
++untimeout(func, arg)
++ void (*func) __P((void *));
++ void *arg;
++{
++ struct callout **copp, *freep;
++
++ MAINDEBUG((&quot;Untimeout %p:%p.&quot;, func, arg));
++
++ /*
++ * Find first matching timeout and remove it from the list.
++ */
++ for (copp = &amp;callout; (freep = *copp); copp = &amp;freep-&gt;c_next)
++ if (freep-&gt;c_func == func &amp;&amp; freep-&gt;c_arg == arg) {
++ *copp = freep-&gt;c_next;
++ free((char *) freep);
++ break;
++ }
++}
++
++
++/*
++ * calltimeout - Call any timeout routines which are now due.
++ */
++static void
++calltimeout()
++{
++ struct callout *p;
++
++ while (callout != NULL) {
++ p = callout;
++
++ if (gettimeofday(&amp;timenow, NULL) &lt; 0)
++ fatal(&quot;Failed to get time of day: %m&quot;);
++ if (!(p-&gt;c_time.tv_sec &lt; timenow.tv_sec
++ || (p-&gt;c_time.tv_sec == timenow.tv_sec
++ &amp;&amp; p-&gt;c_time.tv_usec &lt;= timenow.tv_usec)))
++ break; /* no, it's not time yet */
++
++ callout = p-&gt;c_next;
++ (*p-&gt;c_func)(p-&gt;c_arg);
++
++ free((char *) p);
++ }
++}
++
++
++/*
++ * timeleft - return the length of time until the next timeout is due.
++ */
++static struct timeval *
++timeleft(tvp)
++ struct timeval *tvp;
++{
++ if (callout == NULL)
++ return NULL;
++
++ gettimeofday(&amp;timenow, NULL);
++ tvp-&gt;tv_sec = callout-&gt;c_time.tv_sec - timenow.tv_sec;
++ tvp-&gt;tv_usec = callout-&gt;c_time.tv_usec - timenow.tv_usec;
++ if (tvp-&gt;tv_usec &lt; 0) {
++ tvp-&gt;tv_usec += 1000000;
++ tvp-&gt;tv_sec -= 1;
++ }
++ if (tvp-&gt;tv_sec &lt; 0)
++ tvp-&gt;tv_sec = tvp-&gt;tv_usec = 0;
++
++ return tvp;
++}
++
++
++/*
++ * kill_my_pg - send a signal to our process group, and ignore it ourselves.
++ */
++static void
++kill_my_pg(sig)
++ int sig;
++{
++ struct sigaction act, oldact;
++
++ act.sa_handler = SIG_IGN;
++ act.sa_flags = 0;
++ kill(0, sig);
++ sigaction(sig, &amp;act, &amp;oldact);
++ sigaction(sig, &amp;oldact, NULL);
++}
++
++
++/*
++ * hup - Catch SIGHUP signal.
++ *
++ * Indicates that the physical layer has been disconnected.
++ * We don't rely on this indication; if the user has sent this
++ * signal, we just take the link down.
++ */
++static void
++hup(sig)
++ int sig;
++{
++ info(&quot;Hangup (SIGHUP)&quot;);
++ got_sighup = 1;
++ if (conn_running)
++ /* Send the signal to the [dis]connector process(es) also */
++ kill_my_pg(sig);
++ notify(sigreceived, sig);
++ if (waiting)
++ siglongjmp(sigjmp, 1);
++}
++
++
++/*
++ * term - Catch SIGTERM signal and SIGINT signal (^C/del).
++ *
++ * Indicates that we should initiate a graceful disconnect and exit.
++ */
++/*ARGSUSED*/
++static void
++term(sig)
++ int sig;
++{
++ info(&quot;Terminating on signal %d.&quot;, sig);
++ got_sigterm = 1;
++ if (conn_running)
++ /* Send the signal to the [dis]connector process(es) also */
++ kill_my_pg(sig);
++ notify(sigreceived, sig);
++ if (waiting)
++ siglongjmp(sigjmp, 1);
++}
++
++
++/*
++ * chld - Catch SIGCHLD signal.
++ * Sets a flag so we will call reap_kids in the mainline.
++ */
++static void
++chld(sig)
++ int sig;
++{
++ got_sigchld = 1;
++ if (waiting)
++ siglongjmp(sigjmp, 1);
++}
++
++
++/*
++ * toggle_debug - Catch SIGUSR1 signal.
++ *
++ * Toggle debug flag.
++ */
++/*ARGSUSED*/
++static void
++toggle_debug(sig)
++ int sig;
++{
++ debug = !debug;
++ if (debug) {
++ setlogmask(LOG_UPTO(LOG_DEBUG));
++ } else {
++ setlogmask(LOG_UPTO(LOG_WARNING));
++ }
++}
++
++
++/*
++ * open_ccp - Catch SIGUSR2 signal.
++ *
++ * Try to (re)negotiate compression.
++ */
++/*ARGSUSED*/
++static void
++open_ccp(sig)
++ int sig;
++{
++ got_sigusr2 = 1;
++ if (waiting)
++ siglongjmp(sigjmp, 1);
++}
++
++
++/*
++ * bad_signal - We've caught a fatal signal. Clean up state and exit.
++ */
++static void
++bad_signal(sig)
++ int sig;
++{
++ static int crashed = 0;
++
++ if (crashed)
++ _exit(127);
++ crashed = 1;
++ error(&quot;Fatal signal %d&quot;, sig);
++ if (conn_running)
++ kill_my_pg(SIGTERM);
++ notify(sigreceived, sig);
++ die(127);
++}
++
++
++/*
++ * device_script - run a program to talk to the specified fds
++ * (e.g. to run the connector or disconnector script).
++ * stderr gets connected to the log fd or to the _PATH_CONNERRS file.
++ */
++int
++device_script(program, in, out, dont_wait)
++ char *program;
++ int in, out;
++ int dont_wait;
++{
++ int pid, fd;
++ int status = -1;
++ int errfd;
++
++ ++conn_running;
++ pid = fork();
++
++ if (pid &lt; 0) {
++ --conn_running;
++ error(&quot;Failed to create child process: %m&quot;);
++ return -1;
++ }
++
++ if (pid != 0) {
++ if (dont_wait) {
++ record_child(pid, program, NULL, NULL);
++ status = 0;
++ } else {
++ while (waitpid(pid, &amp;status, 0) &lt; 0) {
++ if (errno == EINTR)
++ continue;
++ fatal(&quot;error waiting for (dis)connection process: %m&quot;);
++ }
++ --conn_running;
++ }
++ return (status == 0 ? 0 : -1);
++ }
++
++ /* here we are executing in the child */
++ /* make sure fds 0, 1, 2 are occupied */
++ while ((fd = dup(in)) &gt;= 0) {
++ if (fd &gt; 2) {
++ close(fd);
++ break;
++ }
++ }
++
++ /* dup in and out to fds &gt; 2 */
++ in = dup(in);
++ out = dup(out);
++ if (log_to_fd &gt;= 0) {
++ errfd = dup(log_to_fd);
++ } else {
++ errfd = open(_PATH_CONNERRS, O_WRONLY | O_APPEND | O_CREAT, 0600);
++ }
++
++ /* close fds 0 - 2 and any others we can think of */
++ close(0);
++ close(1);
++ close(2);
++ sys_close();
++ if (the_channel-&gt;close)
++ (*the_channel-&gt;close)();
++ closelog();
++
++ /* dup the in, out, err fds to 0, 1, 2 */
++ dup2(in, 0);
++ close(in);
++ dup2(out, 1);
++ close(out);
++ if (errfd &gt;= 0) {
++ dup2(errfd, 2);
++ close(errfd);
++ }
++
++ setuid(uid);
++ if (getuid() != uid) {
++ error(&quot;setuid failed&quot;);
++ exit(1);
++ }
++ setgid(getgid());
++ {
++ int argc = 0;
++ char * argv[500];
++ char * ptr = program;
++ while (ptr != NULL) {
++ argv[argc] = ptr;
++ argc++;
++ ptr = strchr(ptr, ' ');
++ if (ptr) {
++ ptr[0] = '\0';
++ ptr++;
++ }
++ }
++ argv[argc] = NULL;
++ execv(argv[0], argv);
++ error(&quot;could not exec %s: %m&quot;, program);
++ exit(99);
++ }
++ /* NOTREACHED */
++}
++
++
++/*
++ * run-program - execute a program with given arguments,
++ * but don't wait for it.
++ * If the program can't be executed, logs an error unless
++ * must_exist is 0 and the program file doesn't exist.
++ * Returns -1 if it couldn't fork, 0 if the file doesn't exist
++ * or isn't an executable plain file, or the process ID of the child.
++ * If done != NULL, (*done)(arg) will be called later (within
++ * reap_kids) iff the return value is &gt; 0.
++ */
++pid_t
++run_program(prog, args, must_exist, done, arg)
++ char *prog;
++ char **args;
++ int must_exist;
++ void (*done) __P((void *));
++ void *arg;
++{
++ int pid;
++ struct stat sbuf;
++
++ /*
++ * First check if the file exists and is executable.
++ * We don't use access() because that would use the
++ * real user-id, which might not be root, and the script
++ * might be accessible only to root.
++ */
++ errno = EINVAL;
++ if (stat(prog, &amp;sbuf) &lt; 0 || !S_ISREG(sbuf.st_mode)
++ || (sbuf.st_mode &amp; (S_IXUSR|S_IXGRP|S_IXOTH)) == 0) {
++ if (must_exist || errno != ENOENT)
++ warn(&quot;Can't execute %s: %m&quot;, prog);
++ return 0;
++ }
++
++ pid = fork();
++ if (pid == -1) {
++ error(&quot;Failed to create child process for %s: %m&quot;, prog);
++ return -1;
++ }
++ if (pid == 0) {
++ int new_fd;
++
++ /* Leave the current location */
++ (void) setsid(); /* No controlling tty. */
++ (void) umask (S_IRWXG|S_IRWXO);
++ (void) chdir (&quot;/&quot;); /* no current directory. */
++ setuid(0); /* set real UID = root */
++ setgid(getegid());
++
++ /* Ensure that nothing of our device environment is inherited. */
++ sys_close();
++ closelog();
++ close (0);
++ close (1);
++ close (2);
++ if (the_channel-&gt;close)
++ (*the_channel-&gt;close)();
++
++ /* Don't pass handles to the PPP device, even by accident. */
++ new_fd = open (_PATH_DEVNULL, O_RDWR);
++ if (new_fd &gt;= 0) {
++ if (new_fd != 0) {
++ dup2 (new_fd, 0); /* stdin &lt;- /dev/null */
++ close (new_fd);
++ }
++ dup2 (0, 1); /* stdout -&gt; /dev/null */
++ dup2 (0, 2); /* stderr -&gt; /dev/null */
++ }
++
++#ifdef BSD
++ /* Force the priority back to zero if pppd is running higher. */
++ if (setpriority (PRIO_PROCESS, 0, 0) &lt; 0)
++ warn(&quot;can't reset priority to 0: %m&quot;);
++#endif
++
++ /* SysV recommends a second fork at this point. */
++
++ /* run the program */
++ execve(prog, args, script_env);
++ if (must_exist || errno != ENOENT) {
++ /* have to reopen the log, there's nowhere else
++ for the message to go. */
++ reopen_log();
++ syslog(LOG_ERR, &quot;Can't execute %s: %m&quot;, prog);
++ closelog();
++ }
++ _exit(-1);
++ }
++
++ if (debug)
++ dbglog(&quot;Script %s started (pid %d)&quot;, prog, pid);
++ record_child(pid, prog, done, arg);
++
++ return pid;
++}
++
++
++/*
++ * record_child - add a child process to the list for reap_kids
++ * to use.
++ */
++void
++record_child(pid, prog, done, arg)
++ int pid;
++ char *prog;
++ void (*done) __P((void *));
++ void *arg;
++{
++ struct subprocess *chp;
++
++ ++n_children;
++
++ chp = (struct subprocess *) malloc(sizeof(struct subprocess));
++ if (chp == NULL) {
++ warn(&quot;losing track of %s process&quot;, prog);
++ } else {
++ chp-&gt;pid = pid;
++ chp-&gt;prog = prog;
++ chp-&gt;done = done;
++ chp-&gt;arg = arg;
++ chp-&gt;next = children;
++ children = chp;
++ }
++}
++
++
++/*
++ * reap_kids - get status from any dead child processes,
++ * and log a message for abnormal terminations.
++ */
++static int
++reap_kids(waitfor)
++ int waitfor;
++{
++ int pid, status;
++ struct subprocess *chp, **prevp;
++
++ if (n_children == 0)
++ return 0;
++ while ((pid = waitpid(-1, &amp;status, (waitfor? 0: WNOHANG))) != -1
++ &amp;&amp; pid != 0) {
++ for (prevp = &amp;children; (chp = *prevp) != NULL; prevp = &amp;chp-&gt;next) {
++ if (chp-&gt;pid == pid) {
++ --n_children;
++ *prevp = chp-&gt;next;
++ break;
++ }
++ }
++ if (WIFSIGNALED(status)) {
++ warn(&quot;Child process %s (pid %d) terminated with signal %d&quot;,
++ (chp? chp-&gt;prog: &quot;??&quot;), pid, WTERMSIG(status));
++ } else if (debug)
++ dbglog(&quot;Script %s finished (pid %d), status = 0x%x&quot;,
++ (chp? chp-&gt;prog: &quot;??&quot;), pid, status);
++ if (chp &amp;&amp; chp-&gt;done)
++ (*chp-&gt;done)(chp-&gt;arg);
++ if (chp)
++ free(chp);
++ }
++ if (pid == -1) {
++ if (errno == ECHILD)
++ return -1;
++ if (errno != EINTR)
++ error(&quot;Error waiting for child process: %m&quot;);
++ }
++ return 0;
++}
++
++/*
++ * add_notifier - add a new function to be called when something happens.
++ */
++void
++add_notifier(notif, func, arg)
++ struct notifier **notif;
++ notify_func func;
++ void *arg;
++{
++ struct notifier *np;
++
++ np = malloc(sizeof(struct notifier));
++ if (np == 0)
++ novm(&quot;notifier struct&quot;);
++ np-&gt;next = *notif;
++ np-&gt;func = func;
++ np-&gt;arg = arg;
++ *notif = np;
++}
++
++/*
++ * remove_notifier - remove a function from the list of things to
++ * be called when something happens.
++ */
++void
++remove_notifier(notif, func, arg)
++ struct notifier **notif;
++ notify_func func;
++ void *arg;
++{
++ struct notifier *np;
++
++ for (; (np = *notif) != 0; notif = &amp;np-&gt;next) {
++ if (np-&gt;func == func &amp;&amp; np-&gt;arg == arg) {
++ *notif = np-&gt;next;
++ free(np);
++ break;
++ }
++ }
++}
++
++/*
++ * notify - call a set of functions registered with add_notify.
++ */
++void
++notify(notif, val)
++ struct notifier *notif;
++ int val;
++{
++ struct notifier *np;
++
++ while ((np = notif) != 0) {
++ notif = np-&gt;next;
++ (*np-&gt;func)(np-&gt;arg, val);
++ }
++}
++
++/*
++ * novm - log an error message saying we ran out of memory, and die.
++ */
++void
++novm(msg)
++ char *msg;
++{
++ fatal(&quot;Virtual memory exhausted allocating %s\n&quot;, msg);
++}
++
++/*
++ * script_setenv - set an environment variable value to be used
++ * for scripts that we run (e.g. ip-up, auth-up, etc.)
++ */
++void
++script_setenv(var, value, iskey)
++ char *var, *value;
++ int iskey;
++{
++ size_t varl = strlen(var);
++ size_t vl = varl + strlen(value) + 2;
++ int i;
++ char *p, *newstring;
++
++ newstring = (char *) malloc(vl+1);
++ if (newstring == 0)
++ return;
++ *newstring++ = iskey;
++ slprintf(newstring, vl, &quot;%s=%s&quot;, var, value);
++
++ /* check if this variable is already set */
++ if (script_env != 0) {
++ for (i = 0; (p = script_env[i]) != 0; ++i) {
++ if (strncmp(p, var, varl) == 0 &amp;&amp; p[varl] == '=') {
++ if (p[-1] &amp;&amp; pppdb != NULL)
++ delete_db_key(p);
++ free(p-1);
++ script_env[i] = newstring;
++ if (iskey &amp;&amp; pppdb != NULL)
++ add_db_key(newstring);
++ update_db_entry();
++ return;
++ }
++ }
++ } else {
++ /* no space allocated for script env. ptrs. yet */
++ i = 0;
++ script_env = (char **) malloc(16 * sizeof(char *));
++ if (script_env == 0)
++ return;
++ s_env_nalloc = 16;
++ }
++
++ /* reallocate script_env with more space if needed */
++ if (i + 1 &gt;= s_env_nalloc) {
++ int new_n = i + 17;
++ char **newenv = (char **) realloc((void *)script_env,
++ new_n * sizeof(char *));
++ if (newenv == 0)
++ return;
++ script_env = newenv;
++ s_env_nalloc = new_n;
++ }
++
++ script_env[i] = newstring;
++ script_env[i+1] = 0;
++
++ if (pppdb != NULL) {
++ if (iskey)
++ add_db_key(newstring);
++ update_db_entry();
++ }
++}
++
++/*
++ * script_unsetenv - remove a variable from the environment
++ * for scripts.
++ */
++void
++script_unsetenv(var)
++ char *var;
++{
++ int vl = strlen(var);
++ int i;
++ char *p;
++
++ if (script_env == 0)
++ return;
++ for (i = 0; (p = script_env[i]) != 0; ++i) {
++ if (strncmp(p, var, vl) == 0 &amp;&amp; p[vl] == '=') {
++ if (p[-1] &amp;&amp; pppdb != NULL)
++ delete_db_key(p);
++ free(p-1);
++ while ((script_env[i] = script_env[i+1]) != 0)
++ ++i;
++ break;
++ }
++ }
++ if (pppdb != NULL)
++ update_db_entry();
++}
++
++/*
++ * update_db_entry - update our entry in the database.
++ */
++static void
++update_db_entry()
++{
++ TDB_DATA key, dbuf;
++ int vlen, i;
++ char *p, *q, *vbuf;
++
++ if (script_env == NULL)
++ return;
++ vlen = 0;
++ for (i = 0; (p = script_env[i]) != 0; ++i)
++ vlen += strlen(p) + 1;
++ vbuf = malloc(vlen);
++ if (vbuf == 0)
++ novm(&quot;database entry&quot;);
++ q = vbuf;
++ for (i = 0; (p = script_env[i]) != 0; ++i)
++ q += slprintf(q, vbuf + vlen - q, &quot;%s;&quot;, p);
++
++ key.dptr = db_key;
++ key.dsize = strlen(db_key);
++ dbuf.dptr = vbuf;
++ dbuf.dsize = vlen;
++ if (tdb_store(pppdb, key, dbuf, TDB_REPLACE))
++ error(&quot;tdb_store failed: %s&quot;, tdb_error(pppdb));
++
++}
++
++/*
++ * add_db_key - add a key that we can use to look up our database entry.
++ */
++static void
++add_db_key(str)
++ const char *str;
++{
++ TDB_DATA key, dbuf;
++
++ key.dptr = (char *) str;
++ key.dsize = strlen(str);
++ dbuf.dptr = db_key;
++ dbuf.dsize = strlen(db_key);
++ if (tdb_store(pppdb, key, dbuf, TDB_REPLACE))
++ error(&quot;tdb_store key failed: %s&quot;, tdb_error(pppdb));
++}
++
++/*
++ * delete_db_key - delete a key for looking up our database entry.
++ */
++static void
++delete_db_key(str)
++ const char *str;
++{
++ TDB_DATA key;
++
++ key.dptr = (char *) str;
++ key.dsize = strlen(str);
++ tdb_delete(pppdb, key);
++}
++
++/*
++ * cleanup_db - delete all the entries we put in the database.
++ */
++static void
++cleanup_db()
++{
++ TDB_DATA key;
++ int i;
++ char *p;
++
++ key.dptr = db_key;
++ key.dsize = strlen(db_key);
++ tdb_delete(pppdb, key);
++ for (i = 0; (p = script_env[i]) != 0; ++i)
++ if (p[-1])
++ delete_db_key(p);
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/pppd/main.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1ppppppdmd4c">Added: drakx/trunk/mdk-stage1/ppp/pppd/md4.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/md4.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/md4.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,298 @@
++/*
++** ********************************************************************
++** md4.c -- Implementation of MD4 Message Digest Algorithm **
++** Updated: 2/16/90 by Ronald L. Rivest **
++** (C) 1990 RSA Data Security, Inc. **
++** ********************************************************************
++*/
++
++/*
++** To use MD4:
++** -- Include md4.h in your program
++** -- Declare an MDstruct MD to hold the state of the digest
++** computation.
++** -- Initialize MD using MDbegin(&amp;MD)
++** -- For each full block (64 bytes) X you wish to process, call
++** MD4Update(&amp;MD,X,512)
++** (512 is the number of bits in a full block.)
++** -- For the last block (less than 64 bytes) you wish to process,
++** MD4Update(&amp;MD,X,n)
++** where n is the number of bits in the partial block. A partial
++** block terminates the computation, so every MD computation
++** should terminate by processing a partial block, even if it
++** has n = 0.
++** -- The message digest is available in MD.buffer[0] ...
++** MD.buffer[3]. (Least-significant byte of each word
++** should be output first.)
++** -- You can print out the digest using MDprint(&amp;MD)
++*/
++
++/* Implementation notes:
++** This implementation assumes that ints are 32-bit quantities.
++*/
++
++#define TRUE 1
++#define FALSE 0
++
++/* Compile-time includes
++*/
++#include &lt;stdio.h&gt;
++#include &quot;md4.h&quot;
++#include &quot;pppd.h&quot;
++
++/* Compile-time declarations of MD4 &quot;magic constants&quot;.
++*/
++#define I0 0x67452301 /* Initial values for MD buffer */
++#define I1 0xefcdab89
++#define I2 0x98badcfe
++#define I3 0x10325476
++#define C2 013240474631 /* round 2 constant = sqrt(2) in octal */
++#define C3 015666365641 /* round 3 constant = sqrt(3) in octal */
++/* C2 and C3 are from Knuth, The Art of Programming, Volume 2
++** (Seminumerical Algorithms), Second Edition (1981), Addison-Wesley.
++** Table 2, page 660.
++*/
++
++#define fs1 3 /* round 1 shift amounts */
++#define fs2 7
++#define fs3 11
++#define fs4 19
++#define gs1 3 /* round 2 shift amounts */
++#define gs2 5
++#define gs3 9
++#define gs4 13
++#define hs1 3 /* round 3 shift amounts */
++#define hs2 9
++#define hs3 11
++#define hs4 15
++
++/* Compile-time macro declarations for MD4.
++** Note: The &quot;rot&quot; operator uses the variable &quot;tmp&quot;.
++** It assumes tmp is declared as unsigned int, so that the &gt;&gt;
++** operator will shift in zeros rather than extending the sign bit.
++*/
++#define f(X,Y,Z) ((X&amp;Y) | ((~X)&amp;Z))
++#define g(X,Y,Z) ((X&amp;Y) | (X&amp;Z) | (Y&amp;Z))
++#define h(X,Y,Z) (X^Y^Z)
++#define rot(X,S) (tmp=X,(tmp&lt;&lt;S) | (tmp&gt;&gt;(32-S)))
++#define ff(A,B,C,D,i,s) A = rot((A + f(B,C,D) + X[i]),s)
++#define gg(A,B,C,D,i,s) A = rot((A + g(B,C,D) + X[i] + C2),s)
++#define hh(A,B,C,D,i,s) A = rot((A + h(B,C,D) + X[i] + C3),s)
++
++/* MD4print(MDp)
++** Print message digest buffer MDp as 32 hexadecimal digits.
++** Order is from low-order byte of buffer[0] to high-order byte of
++** buffer[3].
++** Each byte is printed with high-order hexadecimal digit first.
++** This is a user-callable routine.
++*/
++void
++MD4Print(MDp)
++MD4_CTX *MDp;
++{
++ int i,j;
++ for (i=0;i&lt;4;i++)
++ for (j=0;j&lt;32;j=j+8)
++ printf(&quot;%02x&quot;,(MDp-&gt;buffer[i]&gt;&gt;j) &amp; 0xFF);
++}
++
++/* MD4Init(MDp)
++** Initialize message digest buffer MDp.
++** This is a user-callable routine.
++*/
++void
++MD4Init(MDp)
++MD4_CTX *MDp;
++{
++ int i;
++ MDp-&gt;buffer[0] = I0;
++ MDp-&gt;buffer[1] = I1;
++ MDp-&gt;buffer[2] = I2;
++ MDp-&gt;buffer[3] = I3;
++ for (i=0;i&lt;8;i++) MDp-&gt;count[i] = 0;
++ MDp-&gt;done = 0;
++}
++
++/* MDblock(MDp,X)
++** Update message digest buffer MDp-&gt;buffer using 16-word data block X.
++** Assumes all 16 words of X are full of data.
++** Does not update MDp-&gt;count.
++** This routine is not user-callable.
++*/
++static void
++MDblock(MDp,Xb)
++MD4_CTX *MDp;
++unsigned char *Xb;
++{
++ register unsigned int tmp, A, B, C, D;
++ unsigned int X[16];
++ int i;
++
++ for (i = 0; i &lt; 16; ++i) {
++ X[i] = Xb[0] + (Xb[1] &lt;&lt; 8) + (Xb[2] &lt;&lt; 16) + (Xb[3] &lt;&lt; 24);
++ Xb += 4;
++ }
++
++ A = MDp-&gt;buffer[0];
++ B = MDp-&gt;buffer[1];
++ C = MDp-&gt;buffer[2];
++ D = MDp-&gt;buffer[3];
++ /* Update the message digest buffer */
++ ff(A , B , C , D , 0 , fs1); /* Round 1 */
++ ff(D , A , B , C , 1 , fs2);
++ ff(C , D , A , B , 2 , fs3);
++ ff(B , C , D , A , 3 , fs4);
++ ff(A , B , C , D , 4 , fs1);
++ ff(D , A , B , C , 5 , fs2);
++ ff(C , D , A , B , 6 , fs3);
++ ff(B , C , D , A , 7 , fs4);
++ ff(A , B , C , D , 8 , fs1);
++ ff(D , A , B , C , 9 , fs2);
++ ff(C , D , A , B , 10 , fs3);
++ ff(B , C , D , A , 11 , fs4);
++ ff(A , B , C , D , 12 , fs1);
++ ff(D , A , B , C , 13 , fs2);
++ ff(C , D , A , B , 14 , fs3);
++ ff(B , C , D , A , 15 , fs4);
++ gg(A , B , C , D , 0 , gs1); /* Round 2 */
++ gg(D , A , B , C , 4 , gs2);
++ gg(C , D , A , B , 8 , gs3);
++ gg(B , C , D , A , 12 , gs4);
++ gg(A , B , C , D , 1 , gs1);
++ gg(D , A , B , C , 5 , gs2);
++ gg(C , D , A , B , 9 , gs3);
++ gg(B , C , D , A , 13 , gs4);
++ gg(A , B , C , D , 2 , gs1);
++ gg(D , A , B , C , 6 , gs2);
++ gg(C , D , A , B , 10 , gs3);
++ gg(B , C , D , A , 14 , gs4);
++ gg(A , B , C , D , 3 , gs1);
++ gg(D , A , B , C , 7 , gs2);
++ gg(C , D , A , B , 11 , gs3);
++ gg(B , C , D , A , 15 , gs4);
++ hh(A , B , C , D , 0 , hs1); /* Round 3 */
++ hh(D , A , B , C , 8 , hs2);
++ hh(C , D , A , B , 4 , hs3);
++ hh(B , C , D , A , 12 , hs4);
++ hh(A , B , C , D , 2 , hs1);
++ hh(D , A , B , C , 10 , hs2);
++ hh(C , D , A , B , 6 , hs3);
++ hh(B , C , D , A , 14 , hs4);
++ hh(A , B , C , D , 1 , hs1);
++ hh(D , A , B , C , 9 , hs2);
++ hh(C , D , A , B , 5 , hs3);
++ hh(B , C , D , A , 13 , hs4);
++ hh(A , B , C , D , 3 , hs1);
++ hh(D , A , B , C , 11 , hs2);
++ hh(C , D , A , B , 7 , hs3);
++ hh(B , C , D , A , 15 , hs4);
++ MDp-&gt;buffer[0] += A;
++ MDp-&gt;buffer[1] += B;
++ MDp-&gt;buffer[2] += C;
++ MDp-&gt;buffer[3] += D;
++}
++
++/* MD4Update(MDp,X,count)
++** Input: X -- a pointer to an array of unsigned characters.
++** count -- the number of bits of X to use.
++** (if not a multiple of 8, uses high bits of last byte.)
++** Update MDp using the number of bits of X given by count.
++** This is the basic input routine for an MD4 user.
++** The routine completes the MD computation when count &lt; 512, so
++** every MD computation should end with one call to MD4Update with a
++** count less than 512. A call with count 0 will be ignored if the
++** MD has already been terminated (done != 0), so an extra call with
++** count 0 can be given as a &quot;courtesy close&quot; to force termination
++** if desired.
++*/
++void
++MD4Update(MDp,X,count)
++MD4_CTX *MDp;
++unsigned char *X;
++unsigned int count;
++{
++ unsigned int i, tmp, bit, byte, mask;
++ unsigned char XX[64];
++ unsigned char *p;
++
++ /* return with no error if this is a courtesy close with count
++ ** zero and MDp-&gt;done is true.
++ */
++ if (count == 0 &amp;&amp; MDp-&gt;done) return;
++ /* check to see if MD is already done and report error */
++ if (MDp-&gt;done)
++ { printf(&quot;\nError: MD4Update MD already done.&quot;); return; }
++
++ /* Add count to MDp-&gt;count */
++ tmp = count;
++ p = MDp-&gt;count;
++ while (tmp)
++ { tmp += *p;
++ *p++ = tmp;
++ tmp = tmp &gt;&gt; 8;
++ }
++
++ /* Process data */
++ if (count == 512)
++ { /* Full block of data to handle */
++ MDblock(MDp,X);
++ }
++ else if (count &gt; 512) /* Check for count too large */
++ {
++ printf(&quot;\nError: MD4Update called with illegal count value %d.&quot;,
++ count);
++ return;
++ }
++ else /* partial block -- must be last block so finish up */
++ {
++ /* Find out how many bytes and residual bits there are */
++ byte = count &gt;&gt; 3;
++ bit = count &amp; 7;
++ /* Copy X into XX since we need to modify it */
++ for (i=0;i&lt;=byte;i++) XX[i] = X[i];
++ for (i=byte+1;i&lt;64;i++) XX[i] = 0;
++ /* Add padding '1' bit and low-order zeros in last byte */
++ mask = 1 &lt;&lt; (7 - bit);
++ XX[byte] = (XX[byte] | mask) &amp; ~( mask - 1);
++ /* If room for bit count, finish up with this block */
++ if (byte &lt;= 55)
++ {
++ for (i=0;i&lt;8;i++) XX[56+i] = MDp-&gt;count[i];
++ MDblock(MDp,XX);
++ }
++ else /* need to do two blocks to finish up */
++ {
++ MDblock(MDp,XX);
++ for (i=0;i&lt;56;i++) XX[i] = 0;
++ for (i=0;i&lt;8;i++) XX[56+i] = MDp-&gt;count[i];
++ MDblock(MDp,XX);
++ }
++ /* Set flag saying we're done with MD computation */
++ MDp-&gt;done = 1;
++ }
++}
++
++/*
++** Finish up MD4 computation and return message digest.
++*/
++void
++MD4Final(buf, MD)
++unsigned char *buf;
++MD4_CTX *MD;
++{
++ int i, j;
++ unsigned int w;
++
++ MD4Update(MD, NULL, 0);
++ for (i = 0; i &lt; 4; ++i) {
++ w = MD-&gt;buffer[i];
++ for (j = 0; j &lt; 4; ++j) {
++ *buf++ = w;
++ w &gt;&gt;= 8;
++ }
++ }
++}
++
++/*
++** End of md4.c
++****************************(cut)***********************************/
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/pppd/md4.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1ppppppdmd4h">Added: drakx/trunk/mdk-stage1/ppp/pppd/md4.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/md4.h (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/md4.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,64 @@
++
++/*
++** ********************************************************************
++** md4.h -- Header file for implementation of **
++** MD4 Message Digest Algorithm **
++** Updated: 2/13/90 by Ronald L. Rivest **
++** (C) 1990 RSA Data Security, Inc. **
++** ********************************************************************
++*/
++
++#ifndef __P
++# if defined(__STDC__) || defined(__GNUC__)
++# define __P(x) x
++# else
++# define __P(x) ()
++# endif
++#endif
++
++
++/* MDstruct is the data structure for a message digest computation.
++*/
++typedef struct {
++ unsigned int buffer[4]; /* Holds 4-word result of MD computation */
++ unsigned char count[8]; /* Number of bits processed so far */
++ unsigned int done; /* Nonzero means MD computation finished */
++} MD4_CTX;
++
++/* MD4Init(MD4_CTX *)
++** Initialize the MD4_CTX prepatory to doing a message digest
++** computation.
++*/
++extern void MD4Init __P((MD4_CTX *MD));
++
++/* MD4Update(MD,X,count)
++** Input: X -- a pointer to an array of unsigned characters.
++** count -- the number of bits of X to use (an unsigned int).
++** Updates MD using the first &quot;count&quot; bits of X.
++** The array pointed to by X is not modified.
++** If count is not a multiple of 8, MD4Update uses high bits of
++** last byte.
++** This is the basic input routine for a user.
++** The routine terminates the MD computation when count &lt; 512, so
++** every MD computation should end with one call to MD4Update with a
++** count less than 512. Zero is OK for a count.
++*/
++extern void MD4Update __P((MD4_CTX *MD, unsigned char *X, unsigned int count));
++
++/* MD4Print(MD)
++** Prints message digest buffer MD as 32 hexadecimal digits.
++** Order is from low-order byte of buffer[0] to high-order byte
++** of buffer[3].
++** Each byte is printed with high-order hexadecimal digit first.
++*/
++extern void MD4Print __P((MD4_CTX *));
++
++/* MD4Final(buf, MD)
++** Returns message digest from MD and terminates the message
++** digest computation.
++*/
++extern void MD4Final __P((unsigned char *, MD4_CTX *));
++
++/*
++** End of md4.h
++****************************(cut)***********************************/
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/pppd/md4.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1ppppppdmd5c">Added: drakx/trunk/mdk-stage1/ppp/pppd/md5.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/md5.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/md5.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,309 @@
++
++
++/*
++ ***********************************************************************
++ ** md5.c -- the source code for MD5 routines **
++ ** RSA Data Security, Inc. MD5 Message-Digest Algorithm **
++ ** Created: 2/17/90 RLR **
++ ** Revised: 1/91 SRD,AJ,BSK,JT Reference C ver., 7/10 constant corr. **
++ ***********************************************************************
++ */
++
++/*
++ ***********************************************************************
++ ** Copyright (C) 1990, RSA Data Security, Inc. All rights reserved. **
++ ** **
++ ** License to copy and use this software is granted provided that **
++ ** it is identified as the &quot;RSA Data Security, Inc. MD5 Message- **
++ ** Digest Algorithm&quot; in all material mentioning or referencing this **
++ ** software or this function. **
++ ** **
++ ** License is also granted to make and use derivative works **
++ ** provided that such works are identified as &quot;derived from the RSA **
++ ** Data Security, Inc. MD5 Message-Digest Algorithm&quot; in all **
++ ** material mentioning or referencing the derived work. **
++ ** **
++ ** RSA Data Security, Inc. makes no representations concerning **
++ ** either the merchantability of this software or the suitability **
++ ** of this software for any particular purpose. It is provided &quot;as **
++ ** is&quot; without express or implied warranty of any kind. **
++ ** **
++ ** These notices must be retained in any copies of any part of this **
++ ** documentation and/or software. **
++ ***********************************************************************
++ */
++
++#include &lt;stdlib.h&gt;
++#include &lt;string.h&gt;
++
++#include &quot;md5.h&quot;
++
++/*
++ ***********************************************************************
++ ** Message-digest routines: **
++ ** To form the message digest for a message M **
++ ** (1) Initialize a context buffer mdContext using MD5Init **
++ ** (2) Call MD5Update on mdContext and M **
++ ** (3) Call MD5Final on mdContext **
++ ** The message digest is now in mdContext-&gt;digest[0...15] **
++ ***********************************************************************
++ */
++
++/* forward declaration */
++static void Transform ();
++
++static unsigned char PADDING[64] = {
++ 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
++};
++
++/* F, G, H and I are basic MD5 functions */
++#define F(x, y, z) (((x) &amp; (y)) | ((~x) &amp; (z)))
++#define G(x, y, z) (((x) &amp; (z)) | ((y) &amp; (~z)))
++#define H(x, y, z) ((x) ^ (y) ^ (z))
++#define I(x, y, z) ((y) ^ ((x) | (~z)))
++
++/* ROTATE_LEFT rotates x left n bits */
++#define ROTATE_LEFT(x, n) (((x) &lt;&lt; (n)) | ((x) &gt;&gt; (32-(n))))
++
++/* FF, GG, HH, and II transformations for rounds 1, 2, 3, and 4 */
++/* Rotation is separate from addition to prevent recomputation */
++#define FF(a, b, c, d, x, s, ac) \
++ {(a) += F ((b), (c), (d)) + (x) + (UINT4)(ac); \
++ (a) = ROTATE_LEFT ((a), (s)); \
++ (a) += (b); \
++ }
++#define GG(a, b, c, d, x, s, ac) \
++ {(a) += G ((b), (c), (d)) + (x) + (UINT4)(ac); \
++ (a) = ROTATE_LEFT ((a), (s)); \
++ (a) += (b); \
++ }
++#define HH(a, b, c, d, x, s, ac) \
++ {(a) += H ((b), (c), (d)) + (x) + (UINT4)(ac); \
++ (a) = ROTATE_LEFT ((a), (s)); \
++ (a) += (b); \
++ }
++#define II(a, b, c, d, x, s, ac) \
++ {(a) += I ((b), (c), (d)) + (x) + (UINT4)(ac); \
++ (a) = ROTATE_LEFT ((a), (s)); \
++ (a) += (b); \
++ }
++
++#ifdef __STDC__
++#define UL(x) x##U
++#else
++#define UL(x) x
++#endif
++
++/* The routine MD5Init initializes the message-digest context
++ mdContext. All fields are set to zero.
++ */
++void MD5Init (mdContext)
++MD5_CTX *mdContext;
++{
++ mdContext-&gt;i[0] = mdContext-&gt;i[1] = (UINT4)0;
++
++ /* Load magic initialization constants.
++ */
++ mdContext-&gt;buf[0] = (UINT4)0x67452301;
++ mdContext-&gt;buf[1] = (UINT4)0xefcdab89;
++ mdContext-&gt;buf[2] = (UINT4)0x98badcfe;
++ mdContext-&gt;buf[3] = (UINT4)0x10325476;
++}
++
++/* The routine MD5Update updates the message-digest context to
++ account for the presence of each of the characters inBuf[0..inLen-1]
++ in the message whose digest is being computed.
++ */
++void MD5Update (mdContext, inBuf, inLen)
++MD5_CTX *mdContext;
++unsigned char *inBuf;
++unsigned int inLen;
++{
++ UINT4 in[16];
++ int mdi;
++ unsigned int i, ii;
++
++ /* compute number of bytes mod 64 */
++ mdi = (int)((mdContext-&gt;i[0] &gt;&gt; 3) &amp; 0x3F);
++
++ /* update number of bits */
++ if ((mdContext-&gt;i[0] + ((UINT4)inLen &lt;&lt; 3)) &lt; mdContext-&gt;i[0])
++ mdContext-&gt;i[1]++;
++ mdContext-&gt;i[0] += ((UINT4)inLen &lt;&lt; 3);
++ mdContext-&gt;i[1] += ((UINT4)inLen &gt;&gt; 29);
++
++ while (inLen--) {
++ /* add new character to buffer, increment mdi */
++ mdContext-&gt;in[mdi++] = *inBuf++;
++
++ /* transform if necessary */
++ if (mdi == 0x40) {
++ for (i = 0, ii = 0; i &lt; 16; i++, ii += 4)
++ in[i] = (((UINT4)mdContext-&gt;in[ii+3]) &lt;&lt; 24) |
++ (((UINT4)mdContext-&gt;in[ii+2]) &lt;&lt; 16) |
++ (((UINT4)mdContext-&gt;in[ii+1]) &lt;&lt; 8) |
++ ((UINT4)mdContext-&gt;in[ii]);
++ Transform (mdContext-&gt;buf, in);
++ mdi = 0;
++ }
++ }
++}
++
++/* The routine MD5Final terminates the message-digest computation and
++ ends with the desired message digest in mdContext-&gt;digest[0...15].
++ */
++void MD5Final (hash, mdContext)
++unsigned char hash[];
++MD5_CTX *mdContext;
++{
++ UINT4 in[16];
++ int mdi;
++ unsigned int i, ii;
++ unsigned int padLen;
++
++ /* save number of bits */
++ in[14] = mdContext-&gt;i[0];
++ in[15] = mdContext-&gt;i[1];
++
++ /* compute number of bytes mod 64 */
++ mdi = (int)((mdContext-&gt;i[0] &gt;&gt; 3) &amp; 0x3F);
++
++ /* pad out to 56 mod 64 */
++ padLen = (mdi &lt; 56) ? (56 - mdi) : (120 - mdi);
++ MD5Update (mdContext, PADDING, padLen);
++
++ /* append length in bits and transform */
++ for (i = 0, ii = 0; i &lt; 14; i++, ii += 4)
++ in[i] = (((UINT4)mdContext-&gt;in[ii+3]) &lt;&lt; 24) |
++ (((UINT4)mdContext-&gt;in[ii+2]) &lt;&lt; 16) |
++ (((UINT4)mdContext-&gt;in[ii+1]) &lt;&lt; 8) |
++ ((UINT4)mdContext-&gt;in[ii]);
++ Transform (mdContext-&gt;buf, in);
++
++ /* store buffer in digest */
++ for (i = 0, ii = 0; i &lt; 4; i++, ii += 4) {
++ mdContext-&gt;digest[ii] = (unsigned char)(mdContext-&gt;buf[i] &amp; 0xFF);
++ mdContext-&gt;digest[ii+1] =
++ (unsigned char)((mdContext-&gt;buf[i] &gt;&gt; 8) &amp; 0xFF);
++ mdContext-&gt;digest[ii+2] =
++ (unsigned char)((mdContext-&gt;buf[i] &gt;&gt; 16) &amp; 0xFF);
++ mdContext-&gt;digest[ii+3] =
++ (unsigned char)((mdContext-&gt;buf[i] &gt;&gt; 24) &amp; 0xFF);
++ }
++ memcpy(hash, mdContext-&gt;digest, 16);
++}
++
++/* Basic MD5 step. Transforms buf based on in.
++ */
++static void Transform (buf, in)
++UINT4 *buf;
++UINT4 *in;
++{
++ UINT4 a = buf[0], b = buf[1], c = buf[2], d = buf[3];
++
++ /* Round 1 */
++#define S11 7
++#define S12 12
++#define S13 17
++#define S14 22
++ FF ( a, b, c, d, in[ 0], S11, UL(3614090360)); /* 1 */
++ FF ( d, a, b, c, in[ 1], S12, UL(3905402710)); /* 2 */
++ FF ( c, d, a, b, in[ 2], S13, UL( 606105819)); /* 3 */
++ FF ( b, c, d, a, in[ 3], S14, UL(3250441966)); /* 4 */
++ FF ( a, b, c, d, in[ 4], S11, UL(4118548399)); /* 5 */
++ FF ( d, a, b, c, in[ 5], S12, UL(1200080426)); /* 6 */
++ FF ( c, d, a, b, in[ 6], S13, UL(2821735955)); /* 7 */
++ FF ( b, c, d, a, in[ 7], S14, UL(4249261313)); /* 8 */
++ FF ( a, b, c, d, in[ 8], S11, UL(1770035416)); /* 9 */
++ FF ( d, a, b, c, in[ 9], S12, UL(2336552879)); /* 10 */
++ FF ( c, d, a, b, in[10], S13, UL(4294925233)); /* 11 */
++ FF ( b, c, d, a, in[11], S14, UL(2304563134)); /* 12 */
++ FF ( a, b, c, d, in[12], S11, UL(1804603682)); /* 13 */
++ FF ( d, a, b, c, in[13], S12, UL(4254626195)); /* 14 */
++ FF ( c, d, a, b, in[14], S13, UL(2792965006)); /* 15 */
++ FF ( b, c, d, a, in[15], S14, UL(1236535329)); /* 16 */
++
++ /* Round 2 */
++#define S21 5
++#define S22 9
++#define S23 14
++#define S24 20
++ GG ( a, b, c, d, in[ 1], S21, UL(4129170786)); /* 17 */
++ GG ( d, a, b, c, in[ 6], S22, UL(3225465664)); /* 18 */
++ GG ( c, d, a, b, in[11], S23, UL( 643717713)); /* 19 */
++ GG ( b, c, d, a, in[ 0], S24, UL(3921069994)); /* 20 */
++ GG ( a, b, c, d, in[ 5], S21, UL(3593408605)); /* 21 */
++ GG ( d, a, b, c, in[10], S22, UL( 38016083)); /* 22 */
++ GG ( c, d, a, b, in[15], S23, UL(3634488961)); /* 23 */
++ GG ( b, c, d, a, in[ 4], S24, UL(3889429448)); /* 24 */
++ GG ( a, b, c, d, in[ 9], S21, UL( 568446438)); /* 25 */
++ GG ( d, a, b, c, in[14], S22, UL(3275163606)); /* 26 */
++ GG ( c, d, a, b, in[ 3], S23, UL(4107603335)); /* 27 */
++ GG ( b, c, d, a, in[ 8], S24, UL(1163531501)); /* 28 */
++ GG ( a, b, c, d, in[13], S21, UL(2850285829)); /* 29 */
++ GG ( d, a, b, c, in[ 2], S22, UL(4243563512)); /* 30 */
++ GG ( c, d, a, b, in[ 7], S23, UL(1735328473)); /* 31 */
++ GG ( b, c, d, a, in[12], S24, UL(2368359562)); /* 32 */
++
++ /* Round 3 */
++#define S31 4
++#define S32 11
++#define S33 16
++#define S34 23
++ HH ( a, b, c, d, in[ 5], S31, UL(4294588738)); /* 33 */
++ HH ( d, a, b, c, in[ 8], S32, UL(2272392833)); /* 34 */
++ HH ( c, d, a, b, in[11], S33, UL(1839030562)); /* 35 */
++ HH ( b, c, d, a, in[14], S34, UL(4259657740)); /* 36 */
++ HH ( a, b, c, d, in[ 1], S31, UL(2763975236)); /* 37 */
++ HH ( d, a, b, c, in[ 4], S32, UL(1272893353)); /* 38 */
++ HH ( c, d, a, b, in[ 7], S33, UL(4139469664)); /* 39 */
++ HH ( b, c, d, a, in[10], S34, UL(3200236656)); /* 40 */
++ HH ( a, b, c, d, in[13], S31, UL( 681279174)); /* 41 */
++ HH ( d, a, b, c, in[ 0], S32, UL(3936430074)); /* 42 */
++ HH ( c, d, a, b, in[ 3], S33, UL(3572445317)); /* 43 */
++ HH ( b, c, d, a, in[ 6], S34, UL( 76029189)); /* 44 */
++ HH ( a, b, c, d, in[ 9], S31, UL(3654602809)); /* 45 */
++ HH ( d, a, b, c, in[12], S32, UL(3873151461)); /* 46 */
++ HH ( c, d, a, b, in[15], S33, UL( 530742520)); /* 47 */
++ HH ( b, c, d, a, in[ 2], S34, UL(3299628645)); /* 48 */
++
++ /* Round 4 */
++#define S41 6
++#define S42 10
++#define S43 15
++#define S44 21
++ II ( a, b, c, d, in[ 0], S41, UL(4096336452)); /* 49 */
++ II ( d, a, b, c, in[ 7], S42, UL(1126891415)); /* 50 */
++ II ( c, d, a, b, in[14], S43, UL(2878612391)); /* 51 */
++ II ( b, c, d, a, in[ 5], S44, UL(4237533241)); /* 52 */
++ II ( a, b, c, d, in[12], S41, UL(1700485571)); /* 53 */
++ II ( d, a, b, c, in[ 3], S42, UL(2399980690)); /* 54 */
++ II ( c, d, a, b, in[10], S43, UL(4293915773)); /* 55 */
++ II ( b, c, d, a, in[ 1], S44, UL(2240044497)); /* 56 */
++ II ( a, b, c, d, in[ 8], S41, UL(1873313359)); /* 57 */
++ II ( d, a, b, c, in[15], S42, UL(4264355552)); /* 58 */
++ II ( c, d, a, b, in[ 6], S43, UL(2734768916)); /* 59 */
++ II ( b, c, d, a, in[13], S44, UL(1309151649)); /* 60 */
++ II ( a, b, c, d, in[ 4], S41, UL(4149444226)); /* 61 */
++ II ( d, a, b, c, in[11], S42, UL(3174756917)); /* 62 */
++ II ( c, d, a, b, in[ 2], S43, UL( 718787259)); /* 63 */
++ II ( b, c, d, a, in[ 9], S44, UL(3951481745)); /* 64 */
++
++ buf[0] += a;
++ buf[1] += b;
++ buf[2] += c;
++ buf[3] += d;
++}
++
++/*
++ ***********************************************************************
++ ** End of md5.c **
++ ******************************** (cut) ********************************
++ */
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/pppd/md5.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1ppppppdmd5h">Added: drakx/trunk/mdk-stage1/ppp/pppd/md5.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/md5.h (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/md5.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,58 @@
++/*
++ ***********************************************************************
++ ** md5.h -- header file for implementation of MD5 **
++ ** RSA Data Security, Inc. MD5 Message-Digest Algorithm **
++ ** Created: 2/17/90 RLR **
++ ** Revised: 12/27/90 SRD,AJ,BSK,JT Reference C version **
++ ** Revised (for MD5): RLR 4/27/91 **
++ ** -- G modified to have y&amp;~z instead of y&amp;z **
++ ** -- FF, GG, HH modified to add in last register done **
++ ** -- Access pattern: round 2 works mod 5, round 3 works mod 3 **
++ ** -- distinct additive constant for each step **
++ ** -- round 4 added, working mod 7 **
++ ***********************************************************************
++ */
++
++/*
++ ***********************************************************************
++ ** Copyright (C) 1990, RSA Data Security, Inc. All rights reserved. **
++ ** **
++ ** License to copy and use this software is granted provided that **
++ ** it is identified as the &quot;RSA Data Security, Inc. MD5 Message- **
++ ** Digest Algorithm&quot; in all material mentioning or referencing this **
++ ** software or this function. **
++ ** **
++ ** License is also granted to make and use derivative works **
++ ** provided that such works are identified as &quot;derived from the RSA **
++ ** Data Security, Inc. MD5 Message-Digest Algorithm&quot; in all **
++ ** material mentioning or referencing the derived work. **
++ ** **
++ ** RSA Data Security, Inc. makes no representations concerning **
++ ** either the merchantability of this software or the suitability **
++ ** of this software for any particular purpose. It is provided &quot;as **
++ ** is&quot; without express or implied warranty of any kind. **
++ ** **
++ ** These notices must be retained in any copies of any part of this **
++ ** documentation and/or software. **
++ ***********************************************************************
++ */
++
++#ifndef __MD5_INCLUDE__
++
++/* typedef a 32-bit type */
++typedef unsigned int UINT4;
++
++/* Data structure for MD5 (Message-Digest) computation */
++typedef struct {
++ UINT4 i[2]; /* number of _bits_ handled mod 2^64 */
++ UINT4 buf[4]; /* scratch buffer */
++ unsigned char in[64]; /* input buffer */
++ unsigned char digest[16]; /* actual digest after MD5Final call */
++} MD5_CTX;
++
++void MD5Init ();
++void MD5Update ();
++void MD5Final ();
++
++#define __MD5_INCLUDE__
++#endif /* __MD5_INCLUDE__ */
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/pppd/md5.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1ppppppdmultilinkc">Added: drakx/trunk/mdk-stage1/ppp/pppd/multilink.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/multilink.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/multilink.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,397 @@
++/*
++ * multilink.c - support routines for multilink.
++ *
++ * Copyright (c) 2000 Paul Mackerras.
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms are permitted
++ * provided that the above copyright notice and this paragraph are
++ * duplicated in all such forms. The name of the author may not be
++ * used to endorse or promote products derived from this software
++ * without specific prior written permission.
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
++ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
++ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++ */
++#include &lt;stdlib.h&gt;
++#include &lt;unistd.h&gt;
++#include &lt;string.h&gt;
++#include &lt;ctype.h&gt;
++#include &lt;netdb.h&gt;
++#include &lt;errno.h&gt;
++#include &lt;signal.h&gt;
++#include &lt;netinet/in.h&gt;
++
++#include &quot;pppd.h&quot;
++#include &quot;fsm.h&quot;
++#include &quot;lcp.h&quot;
++#include &quot;tdb.h&quot;
++
++bool endpoint_specified; /* user gave explicit endpoint discriminator */
++char *bundle_id; /* identifier for our bundle */
++
++extern TDB_CONTEXT *pppdb;
++extern char db_key[];
++
++static int get_default_epdisc __P((struct epdisc *));
++static int parse_num __P((char *str, const char *key, int *valp));
++static int owns_unit __P((TDB_DATA pid, int unit));
++
++#define set_ip_epdisc(ep, addr) do { \
++ ep-&gt;length = 4; \
++ ep-&gt;value[0] = addr &gt;&gt; 24; \
++ ep-&gt;value[1] = addr &gt;&gt; 16; \
++ ep-&gt;value[2] = addr &gt;&gt; 8; \
++ ep-&gt;value[3] = addr; \
++} while (0)
++
++#define LOCAL_IP_ADDR(addr) \
++ (((addr) &amp; 0xff000000) == 0x0a000000 /* 10.x.x.x */ \
++ || ((addr) &amp; 0xfff00000) == 0xac100000 /* 172.16.x.x */ \
++ || ((addr) &amp; 0xffff0000) == 0xc0a80000) /* 192.168.x.x */
++
++#define process_exists(n) (kill((n), 0) == 0 || errno != ESRCH)
++
++void
++mp_check_options()
++{
++ lcp_options *wo = &amp;lcp_wantoptions[0];
++ lcp_options *ao = &amp;lcp_allowoptions[0];
++
++ if (!multilink)
++ return;
++ /* if we're doing multilink, we have to negotiate MRRU */
++ if (!wo-&gt;neg_mrru) {
++ /* mrru not specified, default to mru */
++ wo-&gt;mrru = wo-&gt;mru;
++ wo-&gt;neg_mrru = 1;
++ }
++ ao-&gt;mrru = ao-&gt;mru;
++ ao-&gt;neg_mrru = 1;
++
++ if (!wo-&gt;neg_endpoint &amp;&amp; !noendpoint) {
++ /* get a default endpoint value */
++ wo-&gt;neg_endpoint = get_default_epdisc(&amp;wo-&gt;endpoint);
++ }
++}
++
++/*
++ * Make a new bundle or join us to an existing bundle
++ * if we are doing multilink.
++ */
++int
++mp_join_bundle()
++{
++ lcp_options *go = &amp;lcp_gotoptions[0];
++ lcp_options *ho = &amp;lcp_hisoptions[0];
++ lcp_options *ao = &amp;lcp_allowoptions[0];
++ int unit, pppd_pid;
++ int l, mtu;
++ char *p;
++ TDB_DATA key, pid, rec;
++
++ if (!go-&gt;neg_mrru || !ho-&gt;neg_mrru) {
++ /* not doing multilink */
++ if (go-&gt;neg_mrru)
++ notice(&quot;oops, multilink negotiated only for receive&quot;);
++ mtu = ho-&gt;neg_mru? ho-&gt;mru: PPP_MRU;
++ if (mtu &gt; ao-&gt;mru)
++ mtu = ao-&gt;mru;
++ if (demand) {
++ /* already have a bundle */
++ cfg_bundle(0, 0, 0, 0);
++ netif_set_mtu(0, mtu);
++ return 0;
++ }
++ make_new_bundle(0, 0, 0, 0);
++ set_ifunit(1);
++ netif_set_mtu(0, mtu);
++ return 0;
++ }
++
++ /*
++ * Find the appropriate bundle or join a new one.
++ * First we make up a name for the bundle.
++ * The length estimate is worst-case assuming every
++ * character has to be quoted.
++ */
++ l = 4 * strlen(peer_authname) + 10;
++ if (ho-&gt;neg_endpoint)
++ l += 3 * ho-&gt;endpoint.length + 8;
++ if (bundle_name)
++ l += 3 * strlen(bundle_name) + 2;
++ bundle_id = malloc(l);
++ if (bundle_id == 0)
++ novm(&quot;bundle identifier&quot;);
++
++ p = bundle_id;
++ p += slprintf(p, l-1, &quot;BUNDLE=\&quot;%q\&quot;&quot;, peer_authname);
++ if (ho-&gt;neg_endpoint || bundle_name)
++ *p++ = '/';
++ if (ho-&gt;neg_endpoint)
++ p += slprintf(p, bundle_id+l-p, &quot;%s&quot;,
++ epdisc_to_str(&amp;ho-&gt;endpoint));
++ if (bundle_name)
++ p += slprintf(p, bundle_id+l-p, &quot;/%v&quot;, bundle_name);
++
++ /*
++ * For demand mode, we only need to configure the bundle
++ * and attach the link.
++ */
++ mtu = MIN(ho-&gt;mrru, ao-&gt;mru);
++ if (demand) {
++ cfg_bundle(go-&gt;mrru, ho-&gt;mrru, go-&gt;neg_ssnhf, ho-&gt;neg_ssnhf);
++ netif_set_mtu(0, mtu);
++ script_setenv(&quot;BUNDLE&quot;, bundle_id + 7, 1);
++ return 0;
++ }
++
++ /*
++ * Check if the bundle ID is already in the database.
++ */
++ unit = -1;
++ tdb_writelock(pppdb);
++ key.dptr = bundle_id;
++ key.dsize = p - bundle_id;
++ pid = tdb_fetch(pppdb, key);
++ if (pid.dptr != NULL) {
++ /* bundle ID exists, see if the pppd record exists */
++ rec = tdb_fetch(pppdb, pid);
++ if (rec.dptr != NULL) {
++ /* it is, parse the interface number */
++ parse_num(rec.dptr, &quot;IFNAME=ppp&quot;, &amp;unit);
++ /* check the pid value */
++ if (!parse_num(rec.dptr, &quot;PPPD_PID=&quot;, &amp;pppd_pid)
++ || !process_exists(pppd_pid)
++ || !owns_unit(pid, unit))
++ unit = -1;
++ free(rec.dptr);
++ }
++ free(pid.dptr);
++ }
++
++ if (unit &gt;= 0) {
++ /* attach to existing unit */
++ if (bundle_attach(unit)) {
++ set_ifunit(0);
++ script_setenv(&quot;BUNDLE&quot;, bundle_id + 7, 0);
++ tdb_writeunlock(pppdb);
++ info(&quot;Link attached to %s&quot;, ifname);
++ return 1;
++ }
++ /* attach failed because bundle doesn't exist */
++ }
++
++ /* we have to make a new bundle */
++ make_new_bundle(go-&gt;mrru, ho-&gt;mrru, go-&gt;neg_ssnhf, ho-&gt;neg_ssnhf);
++ set_ifunit(1);
++ netif_set_mtu(0, mtu);
++ script_setenv(&quot;BUNDLE&quot;, bundle_id + 7, 1);
++ tdb_writeunlock(pppdb);
++ info(&quot;New bundle %s created&quot;, ifname);
++ return 0;
++}
++
++static int
++parse_num(str, key, valp)
++ char *str;
++ const char *key;
++ int *valp;
++{
++ char *p, *endp;
++ int i;
++
++ p = strstr(str, key);
++ if (p != 0) {
++ p += strlen(key);
++ i = strtol(p, &amp;endp, 10);
++ if (endp != p &amp;&amp; (*endp == 0 || *endp == ';')) {
++ *valp = i;
++ return 1;
++ }
++ }
++ return 0;
++}
++
++/*
++ * Check whether the pppd identified by `key' still owns ppp unit `unit'.
++ */
++static int
++owns_unit(key, unit)
++ TDB_DATA key;
++ int unit;
++{
++ char ifkey[32];
++ TDB_DATA kd, vd;
++ int ret = 0;
++
++ slprintf(ifkey, sizeof(ifkey), &quot;IFNAME=ppp%d&quot;, unit);
++ kd.dptr = ifkey;
++ kd.dsize = strlen(ifkey);
++ vd = tdb_fetch(pppdb, kd);
++ if (vd.dptr != NULL) {
++ ret = vd.dsize == key.dsize
++ &amp;&amp; memcmp(vd.dptr, key.dptr, vd.dsize) == 0;
++ free(vd.dptr);
++ }
++ return ret;
++}
++
++static int
++get_default_epdisc(ep)
++ struct epdisc *ep;
++{
++ char *p;
++ struct hostent *hp;
++ u_int32_t addr;
++
++ /* First try for an ethernet MAC address */
++ p = get_first_ethernet();
++ if (p != 0 &amp;&amp; get_if_hwaddr(ep-&gt;value, p) &gt;= 0) {
++ ep-&gt;class = EPD_MAC;
++ ep-&gt;length = 6;
++ return 1;
++ }
++
++ /* see if our hostname corresponds to a reasonable IP address */
++ hp = gethostbyname(hostname);
++ if (hp != NULL) {
++ addr = *(u_int32_t *)hp-&gt;h_addr;
++ if (!bad_ip_adrs(addr)) {
++ addr = ntohl(addr);
++ if (!LOCAL_IP_ADDR(addr)) {
++ ep-&gt;class = EPD_IP;
++ set_ip_epdisc(ep, addr);
++ return 1;
++ }
++ }
++ }
++
++ return 0;
++}
++
++/*
++ * epdisc_to_str - make a printable string from an endpoint discriminator.
++ */
++
++static char *endp_class_names[] = {
++ &quot;null&quot;, &quot;local&quot;, &quot;IP&quot;, &quot;MAC&quot;, &quot;magic&quot;, &quot;phone&quot;
++};
++
++char *
++epdisc_to_str(ep)
++ struct epdisc *ep;
++{
++ static char str[MAX_ENDP_LEN*3+8];
++ u_char *p = ep-&gt;value;
++ int i, mask = 0;
++ char *q, c, c2;
++
++ if (ep-&gt;class == EPD_NULL &amp;&amp; ep-&gt;length == 0)
++ return &quot;null&quot;;
++ if (ep-&gt;class == EPD_IP &amp;&amp; ep-&gt;length == 4) {
++ u_int32_t addr;
++
++ GETLONG(addr, p);
++ slprintf(str, sizeof(str), &quot;IP:%I&quot;, htonl(addr));
++ return str;
++ }
++
++ c = ':';
++ c2 = '.';
++ if (ep-&gt;class == EPD_MAC &amp;&amp; ep-&gt;length == 6)
++ c2 = ':';
++ else if (ep-&gt;class == EPD_MAGIC &amp;&amp; (ep-&gt;length % 4) == 0)
++ mask = 3;
++ q = str;
++ if (ep-&gt;class &lt;= EPD_PHONENUM)
++ q += slprintf(q, sizeof(str)-1, &quot;%s&quot;,
++ endp_class_names[ep-&gt;class]);
++ else
++ q += slprintf(q, sizeof(str)-1, &quot;%d&quot;, ep-&gt;class);
++ c = ':';
++ for (i = 0; i &lt; ep-&gt;length &amp;&amp; i &lt; MAX_ENDP_LEN; ++i) {
++ if ((i &amp; mask) == 0) {
++ *q++ = c;
++ c = c2;
++ }
++ q += slprintf(q, str + sizeof(str) - q, &quot;%.2x&quot;, ep-&gt;value[i]);
++ }
++ return str;
++}
++
++static int hexc_val(int c)
++{
++ if (c &gt;= 'a')
++ return c - 'a' + 10;
++ if (c &gt;= 'A')
++ return c - 'A' + 10;
++ return c - '0';
++}
++
++int
++str_to_epdisc(ep, str)
++ struct epdisc *ep;
++ char *str;
++{
++ int i, l;
++ char *p, *endp;
++
++ for (i = EPD_NULL; i &lt;= EPD_PHONENUM; ++i) {
++ int sl = strlen(endp_class_names[i]);
++ if (strncasecmp(str, endp_class_names[i], sl) == 0) {
++ str += sl;
++ break;
++ }
++ }
++ if (i &gt; EPD_PHONENUM) {
++ /* not a class name, try a decimal class number */
++ i = strtol(str, &amp;endp, 10);
++ if (endp == str)
++ return 0; /* can't parse class number */
++ str = endp;
++ }
++ ep-&gt;class = i;
++ if (*str == 0) {
++ ep-&gt;length = 0;
++ return 1;
++ }
++ if (*str != ':' &amp;&amp; *str != '.')
++ return 0;
++ ++str;
++
++ if (i == EPD_IP) {
++ u_int32_t addr;
++ i = parse_dotted_ip(str, &amp;addr);
++ if (i == 0 || str[i] != 0)
++ return 0;
++ set_ip_epdisc(ep, addr);
++ return 1;
++ }
++ if (i == EPD_MAC &amp;&amp; get_if_hwaddr(ep-&gt;value, str) &gt;= 0) {
++ ep-&gt;length = 6;
++ return 1;
++ }
++
++ p = str;
++ for (l = 0; l &lt; MAX_ENDP_LEN; ++l) {
++ if (*str == 0)
++ break;
++ if (p &lt;= str)
++ for (p = str; isxdigit(*p); ++p)
++ ;
++ i = p - str;
++ if (i == 0)
++ return 0;
++ ep-&gt;value[l] = hexc_val(*str++);
++ if ((i &amp; 1) == 0)
++ ep-&gt;value[l] = (ep-&gt;value[l] &lt;&lt; 4) + hexc_val(*str++);
++ if (*str == ':' || *str == '.')
++ ++str;
++ }
++ if (*str != 0 || (ep-&gt;class == EPD_MAC &amp;&amp; l != 6))
++ return 0;
++ ep-&gt;length = l;
++ return 1;
++}
++
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/pppd/multilink.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1ppppppdoptionsc">Added: drakx/trunk/mdk-stage1/ppp/pppd/options.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/options.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/options.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,1513 @@
++/*
++ * options.c - handles option processing for PPP.
++ *
++ * Copyright (c) 1989 Carnegie Mellon University.
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms are permitted
++ * provided that the above copyright notice and this paragraph are
++ * duplicated in all such forms and that any documentation,
++ * advertising materials, and other materials related to such
++ * distribution and use acknowledge that the software was developed
++ * by Carnegie Mellon University. The name of the
++ * University may not be used to endorse or promote products derived
++ * from this software without specific prior written permission.
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
++ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
++ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++ */
++
++#define RCSID &quot;$Id: options.c 195734 2001-06-11 14:46:02Z gc $&quot;
++
++#include &lt;ctype.h&gt;
++#include &lt;stdio.h&gt;
++#include &lt;errno.h&gt;
++#include &lt;unistd.h&gt;
++#include &lt;fcntl.h&gt;
++#include &lt;stdlib.h&gt;
++#include &lt;syslog.h&gt;
++#include &lt;string.h&gt;
++#include &lt;pwd.h&gt;
++#ifdef PLUGIN
++#include &lt;dlfcn.h&gt;
++#endif
++#ifdef PPP_FILTER
++#include &lt;pcap.h&gt;
++#include &lt;pcap-int.h&gt; /* XXX: To get struct pcap */
++#endif
++
++#include &quot;pppd.h&quot;
++#include &quot;pathnames.h&quot;
++
++#if defined(ultrix) || defined(NeXT)
++char *strdup __P((char *));
++#endif
++
++static const char rcsid[] = RCSID;
++
++struct option_value {
++ struct option_value *next;
++ const char *source;
++ char value[1];
++};
++
++/*
++ * Option variables and default values.
++ */
++#ifdef PPP_FILTER
++int dflag = 0; /* Tell libpcap we want debugging */
++#endif
++int debug = 0; /* Debug flag */
++int kdebugflag = 0; /* Tell kernel to print debug messages */
++int default_device = 1; /* Using /dev/tty or equivalent */
++char devnam[MAXPATHLEN]; /* Device name */
++bool nodetach = 0; /* Don't detach from controlling tty */
++bool updetach = 0; /* Detach once link is up */
++int maxconnect = 0; /* Maximum connect time */
++char user[MAXNAMELEN]; /* Username for PAP */
++char passwd[MAXSECRETLEN]; /* Password for PAP */
++bool persist = 0; /* Reopen link after it goes down */
++char our_name[MAXNAMELEN]; /* Our name for authentication purposes */
++bool demand = 0; /* do dial-on-demand */
++char *ipparam = NULL; /* Extra parameter for ip up/down scripts */
++int idle_time_limit = 0; /* Disconnect if idle for this many seconds */
++int holdoff = 30; /* # seconds to pause before reconnecting */
++bool holdoff_specified; /* true if a holdoff value has been given */
++int log_to_fd = 1; /* send log messages to this fd too */
++bool log_default = 1; /* log_to_fd is default (stdout) */
++int maxfail = 10; /* max # of unsuccessful connection attempts */
++char linkname[MAXPATHLEN]; /* logical name for link */
++bool tune_kernel; /* may alter kernel settings */
++int connect_delay = 1000; /* wait this many ms after connect script */
++int req_unit = -1; /* requested interface unit */
++bool multilink = 0; /* Enable multilink operation */
++char *bundle_name = NULL; /* bundle name for multilink */
++bool dump_options; /* print out option values */
++bool dryrun; /* print out option values and exit */
++char *domain; /* domain name set by domain option */
++
++extern option_t auth_options[];
++extern struct stat devstat;
++
++#ifdef PPP_FILTER
++struct bpf_program pass_filter;/* Filter program for packets to pass */
++struct bpf_program active_filter; /* Filter program for link-active pkts */
++pcap_t pc; /* Fake struct pcap so we can compile expr */
++#endif
++
++char *current_option; /* the name of the option being parsed */
++int privileged_option; /* set iff the current option came from root */
++char *option_source; /* string saying where the option came from */
++int option_priority = OPRIO_CFGFILE; /* priority of the current options */
++bool devnam_fixed; /* can no longer change device name */
++
++static int logfile_fd = -1; /* fd opened for log file */
++static char logfile_name[MAXPATHLEN]; /* name of log file */
++
++/*
++ * Prototypes
++ */
++static int setdomain __P((char **));
++static int readfile __P((char **));
++static int callfile __P((char **));
++static int showversion __P((char **));
++static int showhelp __P((char **));
++static void usage __P((void));
++static int setlogfile __P((char **));
++#ifdef PLUGIN
++static int loadplugin __P((char **));
++#endif
++
++#ifdef PPP_FILTER
++static int setpassfilter __P((char **));
++static int setactivefilter __P((char **));
++#endif
++
++static option_t *find_option __P((const char *name));
++static int process_option __P((option_t *, char *, char **));
++static int n_arguments __P((option_t *));
++static int number_option __P((char *, u_int32_t *, int));
++
++/*
++ * Structure to store extra lists of options.
++ */
++struct option_list {
++ option_t *options;
++ struct option_list *next;
++};
++
++static struct option_list *extra_options = NULL;
++
++/*
++ * Valid arguments.
++ */
++option_t general_options[] = {
++ { &quot;debug&quot;, o_int, &amp;debug,
++ &quot;Increase debugging level&quot;, OPT_INC | OPT_NOARG | 1 },
++ { &quot;-d&quot;, o_int, &amp;debug,
++ &quot;Increase debugging level&quot;,
++ OPT_ALIAS | OPT_INC | OPT_NOARG | 1 },
++
++ { &quot;kdebug&quot;, o_int, &amp;kdebugflag,
++ &quot;Set kernel driver debug level&quot;, OPT_PRIO },
++
++ { &quot;nodetach&quot;, o_bool, &amp;nodetach,
++ &quot;Don't detach from controlling tty&quot;, OPT_PRIO | 1 },
++ { &quot;-detach&quot;, o_bool, &amp;nodetach,
++ &quot;Don't detach from controlling tty&quot;, OPT_ALIAS | OPT_PRIOSUB | 1 },
++ { &quot;updetach&quot;, o_bool, &amp;updetach,
++ &quot;Detach from controlling tty once link is up&quot;,
++ OPT_PRIOSUB | OPT_A2CLR | 1, &amp;nodetach },
++
++ { &quot;holdoff&quot;, o_int, &amp;holdoff,
++ &quot;Set time in seconds before retrying connection&quot;, OPT_PRIO },
++
++ { &quot;idle&quot;, o_int, &amp;idle_time_limit,
++ &quot;Set time in seconds before disconnecting idle link&quot;, OPT_PRIO },
++
++ { &quot;maxconnect&quot;, o_int, &amp;maxconnect,
++ &quot;Set connection time limit&quot;,
++ OPT_PRIO | OPT_LLIMIT | OPT_NOINCR | OPT_ZEROINF },
++
++ { &quot;domain&quot;, o_special, (void *)setdomain,
++ &quot;Add given domain name to hostname&quot;,
++ OPT_PRIO | OPT_PRIV | OPT_A2STRVAL, &amp;domain },
++
++ { &quot;file&quot;, o_special, (void *)readfile,
++ &quot;Take options from a file&quot;, OPT_NOPRINT },
++ { &quot;call&quot;, o_special, (void *)callfile,
++ &quot;Take options from a privileged file&quot;, OPT_NOPRINT },
++
++ { &quot;persist&quot;, o_bool, &amp;persist,
++ &quot;Keep on reopening connection after close&quot;, OPT_PRIO | 1 },
++ { &quot;nopersist&quot;, o_bool, &amp;persist,
++ &quot;Turn off persist option&quot;, OPT_PRIOSUB },
++
++ { &quot;demand&quot;, o_bool, &amp;demand,
++ &quot;Dial on demand&quot;, OPT_INITONLY | 1, &amp;persist },
++
++ { &quot;--version&quot;, o_special_noarg, (void *)showversion,
++ &quot;Show version number&quot; },
++ { &quot;--help&quot;, o_special_noarg, (void *)showhelp,
++ &quot;Show brief listing of options&quot; },
++ { &quot;-h&quot;, o_special_noarg, (void *)showhelp,
++ &quot;Show brief listing of options&quot;, OPT_ALIAS },
++
++ { &quot;logfile&quot;, o_special, (void *)setlogfile,
++ &quot;Append log messages to this file&quot;,
++ OPT_PRIO | OPT_A2STRVAL | OPT_STATIC, &amp;logfile_name },
++ { &quot;logfd&quot;, o_int, &amp;log_to_fd,
++ &quot;Send log messages to this file descriptor&quot;,
++ OPT_PRIOSUB | OPT_A2CLR, &amp;log_default },
++ { &quot;nolog&quot;, o_int, &amp;log_to_fd,
++ &quot;Don't send log messages to any file&quot;,
++ OPT_PRIOSUB | OPT_NOARG | OPT_VAL(-1) },
++ { &quot;nologfd&quot;, o_int, &amp;log_to_fd,
++ &quot;Don't send log messages to any file descriptor&quot;,
++ OPT_PRIOSUB | OPT_ALIAS | OPT_NOARG | OPT_VAL(-1) },
++
++ { &quot;linkname&quot;, o_string, linkname,
++ &quot;Set logical name for link&quot;,
++ OPT_PRIO | OPT_PRIV | OPT_STATIC, NULL, MAXPATHLEN },
++
++ { &quot;maxfail&quot;, o_int, &amp;maxfail,
++ &quot;Maximum number of unsuccessful connection attempts to allow&quot;,
++ OPT_PRIO },
++
++ { &quot;ktune&quot;, o_bool, &amp;tune_kernel,
++ &quot;Alter kernel settings as necessary&quot;, OPT_PRIO | 1 },
++ { &quot;noktune&quot;, o_bool, &amp;tune_kernel,
++ &quot;Don't alter kernel settings&quot;, OPT_PRIOSUB },
++
++ { &quot;connect-delay&quot;, o_int, &amp;connect_delay,
++ &quot;Maximum time (in ms) to wait after connect script finishes&quot;,
++ OPT_PRIO },
++
++ { &quot;unit&quot;, o_int, &amp;req_unit,
++ &quot;PPP interface unit number to use if possible&quot;,
++ OPT_PRIO | OPT_LLIMIT, 0, 0 },
++
++ { &quot;dump&quot;, o_bool, &amp;dump_options,
++ &quot;Print out option values after parsing all options&quot;, 1 },
++ { &quot;dryrun&quot;, o_bool, &amp;dryrun,
++ &quot;Stop after parsing, printing, and checking options&quot;, 1 },
++
++#ifdef HAVE_MULTILINK
++ { &quot;multilink&quot;, o_bool, &amp;multilink,
++ &quot;Enable multilink operation&quot;, OPT_PRIO | 1 },
++ { &quot;mp&quot;, o_bool, &amp;multilink,
++ &quot;Enable multilink operation&quot;, OPT_PRIOSUB | OPT_ALIAS | 1 },
++ { &quot;nomultilink&quot;, o_bool, &amp;multilink,
++ &quot;Disable multilink operation&quot;, OPT_PRIOSUB | 0 },
++ { &quot;nomp&quot;, o_bool, &amp;multilink,
++ &quot;Disable multilink operation&quot;, OPT_PRIOSUB | OPT_ALIAS | 0 },
++
++ { &quot;bundle&quot;, o_string, &amp;bundle_name,
++ &quot;Bundle name for multilink&quot;, OPT_PRIO },
++#endif /* HAVE_MULTILINK */
++
++#ifdef PLUGIN
++ { &quot;plugin&quot;, o_special, (void *)loadplugin,
++ &quot;Load a plug-in module into pppd&quot;, OPT_PRIV | OPT_A2LIST },
++#endif
++
++#ifdef PPP_FILTER
++ { &quot;pdebug&quot;, o_int, &amp;dflag,
++ &quot;libpcap debugging&quot;, OPT_PRIO },
++
++ { &quot;pass-filter&quot;, 1, setpassfilter,
++ &quot;set filter for packets to pass&quot;, OPT_PRIO },
++
++ { &quot;active-filter&quot;, 1, setactivefilter,
++ &quot;set filter for active pkts&quot;, OPT_PRIO },
++#endif
++
++ { NULL }
++};
++
++#ifndef IMPLEMENTATION
++#define IMPLEMENTATION &quot;&quot;
++#endif
++
++static char *usage_string = &quot;\
++pppd version %s\n\
++Usage: %s [ options ], where options are:\n\
++ &lt;device&gt; Communicate over the named device\n\
++ &lt;speed&gt; Set the baud rate to &lt;speed&gt;\n\
++ &lt;loc&gt;:&lt;rem&gt; Set the local and/or remote interface IP\n\
++ addresses. Either one may be omitted.\n\
++ asyncmap &lt;n&gt; Set the desired async map to hex &lt;n&gt;\n\
++ auth Require authentication from peer\n\
++ connect &lt;p&gt; Invoke shell command &lt;p&gt; to set up the serial line\n\
++ crtscts Use hardware RTS/CTS flow control\n\
++ defaultroute Add default route through interface\n\
++ file &lt;f&gt; Take options from file &lt;f&gt;\n\
++ modem Use modem control lines\n\
++ mru &lt;n&gt; Set MRU value to &lt;n&gt; for negotiation\n\
++See pppd(8) for more options.\n\
++&quot;;
++
++/*
++ * parse_args - parse a string of arguments from the command line.
++ */
++int
++parse_args(argc, argv)
++ int argc;
++ char **argv;
++{
++ char *arg;
++ option_t *opt;
++ int n;
++
++ privileged_option = privileged;
++ option_source = &quot;command line&quot;;
++ option_priority = OPRIO_CMDLINE;
++ while (argc &gt; 0) {
++ arg = *argv++;
++ --argc;
++ opt = find_option(arg);
++ if (opt == NULL) {
++ option_error(&quot;unrecognized option '%s'&quot;, arg);
++ usage();
++ return 0;
++ }
++ n = n_arguments(opt);
++ if (argc &lt; n) {
++ option_error(&quot;too few parameters for option %s&quot;, arg);
++ return 0;
++ }
++ if (!process_option(opt, arg, argv))
++ return 0;
++ argc -= n;
++ argv += n;
++ }
++ return 1;
++}
++
++/*
++ * options_from_file - Read a string of options from a file,
++ * and interpret them.
++ */
++int
++options_from_file(filename, must_exist, check_prot, priv)
++ char *filename;
++ int must_exist;
++ int check_prot;
++ int priv;
++{
++ FILE *f;
++ int i, newline, ret, err;
++ option_t *opt;
++ int oldpriv, n;
++ char *oldsource;
++ char *argv[MAXARGS];
++ char args[MAXARGS][MAXWORDLEN];
++ char cmd[MAXWORDLEN];
++
++ if (check_prot)
++ seteuid(getuid());
++ f = fopen(filename, &quot;r&quot;);
++ err = errno;
++ if (check_prot)
++ seteuid(0);
++ if (f == NULL) {
++ errno = err;
++ if (!must_exist) {
++ if (err != ENOENT &amp;&amp; err != ENOTDIR)
++ warn(&quot;Warning: can't open options file %s: %m&quot;, filename);
++ return 1;
++ }
++ option_error(&quot;Can't open options file %s: %m&quot;, filename);
++ return 0;
++ }
++
++ oldpriv = privileged_option;
++ privileged_option = priv;
++ oldsource = option_source;
++ option_source = strdup(filename);
++ if (option_source == NULL)
++ option_source = &quot;file&quot;;
++ ret = 0;
++ while (getword(f, cmd, &amp;newline, filename)) {
++ opt = find_option(cmd);
++ if (opt == NULL) {
++ option_error(&quot;In file %s: unrecognized option '%s'&quot;,
++ filename, cmd);
++ goto err;
++ }
++ n = n_arguments(opt);
++ for (i = 0; i &lt; n; ++i) {
++ if (!getword(f, args[i], &amp;newline, filename)) {
++ option_error(
++ &quot;In file %s: too few parameters for option '%s'&quot;,
++ filename, cmd);
++ goto err;
++ }
++ argv[i] = args[i];
++ }
++ if (!process_option(opt, cmd, argv))
++ goto err;
++ }
++ ret = 1;
++
++err:
++ fclose(f);
++ privileged_option = oldpriv;
++ option_source = oldsource;
++ return ret;
++}
++
++/*
++ * options_from_user - See if the use has a ~/.ppprc file,
++ * and if so, interpret options from it.
++ */
++int
++options_from_user()
++{
++ char *user, *path, *file;
++ int ret;
++ struct passwd *pw;
++ size_t pl;
++
++ pw = getpwuid(getuid());
++ if (pw == NULL || (user = pw-&gt;pw_dir) == NULL || user[0] == 0)
++ return 1;
++ file = _PATH_USEROPT;
++ pl = strlen(user) + strlen(file) + 2;
++ path = malloc(pl);
++ if (path == NULL)
++ novm(&quot;init file name&quot;);
++ slprintf(path, pl, &quot;%s/%s&quot;, user, file);
++ option_priority = OPRIO_CFGFILE;
++ ret = options_from_file(path, 0, 1, privileged);
++ free(path);
++ return ret;
++}
++
++/*
++ * options_for_tty - See if an options file exists for the serial
++ * device, and if so, interpret options from it.
++ * We only allow the per-tty options file to override anything from
++ * the command line if it is something that the user can't override
++ * once it has been set by root; this is done by giving configuration
++ * files a lower priority than the command line.
++ */
++int
++options_for_tty()
++{
++ char *dev, *path, *p;
++ int ret;
++ size_t pl;
++
++ dev = devnam;
++ if (strncmp(dev, &quot;/dev/&quot;, 5) == 0)
++ dev += 5;
++ if (dev[0] == 0 || strcmp(dev, &quot;tty&quot;) == 0)
++ return 1; /* don't look for /etc/ppp/options.tty */
++ pl = strlen(_PATH_TTYOPT) + strlen(dev) + 1;
++ path = malloc(pl);
++ if (path == NULL)
++ novm(&quot;tty init file name&quot;);
++ slprintf(path, pl, &quot;%s%s&quot;, _PATH_TTYOPT, dev);
++ /* Turn slashes into dots, for Solaris case (e.g. /dev/term/a) */
++ for (p = path + strlen(_PATH_TTYOPT); *p != 0; ++p)
++ if (*p == '/')
++ *p = '.';
++ option_priority = OPRIO_CFGFILE;
++ ret = options_from_file(path, 0, 0, 1);
++ free(path);
++ return ret;
++}
++
++/*
++ * options_from_list - process a string of options in a wordlist.
++ */
++int
++options_from_list(w, priv)
++ struct wordlist *w;
++ int priv;
++{
++ char *argv[MAXARGS];
++ option_t *opt;
++ int i, n, ret = 0;
++ struct wordlist *w0;
++
++ privileged_option = priv;
++ option_source = &quot;secrets file&quot;;
++ option_priority = OPRIO_SECFILE;
++
++ while (w != NULL) {
++ opt = find_option(w-&gt;word);
++ if (opt == NULL) {
++ option_error(&quot;In secrets file: unrecognized option '%s'&quot;,
++ w-&gt;word);
++ goto err;
++ }
++ n = n_arguments(opt);
++ w0 = w;
++ for (i = 0; i &lt; n; ++i) {
++ w = w-&gt;next;
++ if (w == NULL) {
++ option_error(
++ &quot;In secrets file: too few parameters for option '%s'&quot;,
++ w0-&gt;word);
++ goto err;
++ }
++ argv[i] = w-&gt;word;
++ }
++ if (!process_option(opt, w0-&gt;word, argv))
++ goto err;
++ w = w-&gt;next;
++ }
++ ret = 1;
++
++err:
++ return ret;
++}
++
++/*
++ * match_option - see if this option matches an option_t structure.
++ */
++static int
++match_option(name, opt, dowild)
++ char *name;
++ option_t *opt;
++ int dowild;
++{
++ int (*match) __P((char *, char **, int));
++
++ if (dowild != (opt-&gt;type == o_wild))
++ return 0;
++ if (!dowild)
++ return strcmp(name, opt-&gt;name) == 0;
++ match = (int (*) __P((char *, char **, int))) opt-&gt;addr;
++ return (*match)(name, NULL, 0);
++}
++
++/*
++ * find_option - scan the option lists for the various protocols
++ * looking for an entry with the given name.
++ * This could be optimized by using a hash table.
++ */
++static option_t *
++find_option(name)
++ const char *name;
++{
++ option_t *opt;
++ struct option_list *list;
++ int i, dowild;
++
++ for (dowild = 0; dowild &lt;= 1; ++dowild) {
++ for (opt = general_options; opt-&gt;name != NULL; ++opt)
++ if (match_option(name, opt, dowild))
++ return opt;
++ for (opt = auth_options; opt-&gt;name != NULL; ++opt)
++ if (match_option(name, opt, dowild))
++ return opt;
++ for (list = extra_options; list != NULL; list = list-&gt;next)
++ for (opt = list-&gt;options; opt-&gt;name != NULL; ++opt)
++ if (match_option(name, opt, dowild))
++ return opt;
++ for (opt = the_channel-&gt;options; opt-&gt;name != NULL; ++opt)
++ if (match_option(name, opt, dowild))
++ return opt;
++ for (i = 0; protocols[i] != NULL; ++i)
++ if ((opt = protocols[i]-&gt;options) != NULL)
++ for (; opt-&gt;name != NULL; ++opt)
++ if (match_option(name, opt, dowild))
++ return opt;
++ }
++ return NULL;
++}
++
++/*
++ * process_option - process one new-style option.
++ */
++static int
++process_option(opt, cmd, argv)
++ option_t *opt;
++ char *cmd;
++ char **argv;
++{
++ u_int32_t v;
++ int iv, a;
++ char *sv;
++ int (*parser) __P((char **));
++ int (*wildp) __P((char *, char **, int));
++ char *optopt = (opt-&gt;type == o_wild)? &quot;&quot;: &quot; option&quot;;
++ int prio = option_priority;
++ option_t *mainopt = opt;
++
++ if ((opt-&gt;flags &amp; OPT_PRIVFIX) &amp;&amp; privileged_option)
++ prio += OPRIO_ROOT;
++ while (mainopt-&gt;flags &amp; OPT_PRIOSUB)
++ --mainopt;
++ if (mainopt-&gt;flags &amp; OPT_PRIO) {
++ if (prio &lt; mainopt-&gt;priority) {
++ /* new value doesn't override old */
++ if (prio == OPRIO_CMDLINE &amp;&amp; mainopt-&gt;priority &gt; OPRIO_ROOT) {
++ option_error(&quot;%s%s set in %s cannot be overridden\n&quot;,
++ opt-&gt;name, optopt, mainopt-&gt;source);
++ return 0;
++ }
++ return 1;
++ }
++ if (prio &gt; OPRIO_ROOT &amp;&amp; mainopt-&gt;priority == OPRIO_CMDLINE)
++ warn(&quot;%s%s from %s overrides command line&quot;,
++ opt-&gt;name, optopt, option_source);
++ }
++
++ if ((opt-&gt;flags &amp; OPT_INITONLY) &amp;&amp; phase != PHASE_INITIALIZE) {
++ option_error(&quot;%s%s cannot be changed after initialization&quot;,
++ opt-&gt;name, optopt);
++ return 0;
++ }
++ if ((opt-&gt;flags &amp; OPT_PRIV) &amp;&amp; !privileged_option) {
++ option_error(&quot;using the %s%s requires root privilege&quot;,
++ opt-&gt;name, optopt);
++ return 0;
++ }
++ if ((opt-&gt;flags &amp; OPT_ENABLE) &amp;&amp; *(bool *)(opt-&gt;addr2) == 0) {
++ option_error(&quot;%s%s is disabled&quot;, opt-&gt;name, optopt);
++ return 0;
++ }
++ if ((opt-&gt;flags &amp; OPT_DEVEQUIV) &amp;&amp; devnam_fixed) {
++ option_error(&quot;the %s%s may not be changed in %s&quot;,
++ opt-&gt;name, optopt, option_source);
++ return 0;
++ }
++
++ switch (opt-&gt;type) {
++ case o_bool:
++ v = opt-&gt;flags &amp; OPT_VALUE;
++ *(bool *)(opt-&gt;addr) = v;
++ if (opt-&gt;addr2 &amp;&amp; (opt-&gt;flags &amp; OPT_A2COPY))
++ *(bool *)(opt-&gt;addr2) = v;
++ break;
++
++ case o_int:
++ iv = 0;
++ if ((opt-&gt;flags &amp; OPT_NOARG) == 0) {
++ if (!int_option(*argv, &amp;iv))
++ return 0;
++ if ((((opt-&gt;flags &amp; OPT_LLIMIT) &amp;&amp; iv &lt; opt-&gt;lower_limit)
++ || ((opt-&gt;flags &amp; OPT_ULIMIT) &amp;&amp; iv &gt; opt-&gt;upper_limit))
++ &amp;&amp; !((opt-&gt;flags &amp; OPT_ZEROOK &amp;&amp; iv == 0))) {
++ char *zok = (opt-&gt;flags &amp; OPT_ZEROOK)? &quot; zero or&quot;: &quot;&quot;;
++ switch (opt-&gt;flags &amp; OPT_LIMITS) {
++ case OPT_LLIMIT:
++ option_error(&quot;%s value must be%s &gt;= %d&quot;,
++ opt-&gt;name, zok, opt-&gt;lower_limit);
++ break;
++ case OPT_ULIMIT:
++ option_error(&quot;%s value must be%s &lt;= %d&quot;,
++ opt-&gt;name, zok, opt-&gt;upper_limit);
++ break;
++ case OPT_LIMITS:
++ option_error(&quot;%s value must be%s between %d and %d&quot;,
++ opt-&gt;name, opt-&gt;lower_limit, opt-&gt;upper_limit);
++ break;
++ }
++ return 0;
++ }
++ }
++ a = opt-&gt;flags &amp; OPT_VALUE;
++ if (a &gt;= 128)
++ a -= 256; /* sign extend */
++ iv += a;
++ if (opt-&gt;flags &amp; OPT_INC)
++ iv += *(int *)(opt-&gt;addr);
++ if ((opt-&gt;flags &amp; OPT_NOINCR) &amp;&amp; !privileged_option) {
++ int oldv = *(int *)(opt-&gt;addr);
++ if ((opt-&gt;flags &amp; OPT_ZEROINF) ?
++ (oldv != 0 &amp;&amp; (iv == 0 || iv &gt; oldv)) : (iv &gt; oldv)) {
++ option_error(&quot;%s value cannot be increased&quot;, opt-&gt;name);
++ return 0;
++ }
++ }
++ *(int *)(opt-&gt;addr) = iv;
++ if (opt-&gt;addr2 &amp;&amp; (opt-&gt;flags &amp; OPT_A2COPY))
++ *(int *)(opt-&gt;addr2) = iv;
++ break;
++
++ case o_uint32:
++ if (opt-&gt;flags &amp; OPT_NOARG) {
++ v = opt-&gt;flags &amp; OPT_VALUE;
++ if (v &amp; 0x80)
++ v |= 0xffffff00U;
++ } else if (!number_option(*argv, &amp;v, 16))
++ return 0;
++ if (opt-&gt;flags &amp; OPT_OR)
++ v |= *(u_int32_t *)(opt-&gt;addr);
++ *(u_int32_t *)(opt-&gt;addr) = v;
++ if (opt-&gt;addr2 &amp;&amp; (opt-&gt;flags &amp; OPT_A2COPY))
++ *(u_int32_t *)(opt-&gt;addr2) = v;
++ break;
++
++ case o_string:
++ if (opt-&gt;flags &amp; OPT_STATIC) {
++ strlcpy((char *)(opt-&gt;addr), *argv, opt-&gt;upper_limit);
++ } else {
++ sv = strdup(*argv);
++ if (sv == NULL)
++ novm(&quot;option argument&quot;);
++ *(char **)(opt-&gt;addr) = sv;
++ }
++ break;
++
++ case o_special_noarg:
++ case o_special:
++ parser = (int (*) __P((char **))) opt-&gt;addr;
++ if (!(*parser)(argv))
++ return 0;
++ if (opt-&gt;flags &amp; OPT_A2LIST) {
++ struct option_value *ovp, **pp;
++
++ ovp = malloc(sizeof(*ovp) + strlen(*argv));
++ if (ovp != 0) {
++ strcpy(ovp-&gt;value, *argv);
++ ovp-&gt;source = option_source;
++ ovp-&gt;next = NULL;
++ pp = (struct option_value **) &amp;opt-&gt;addr2;
++ while (*pp != 0)
++ pp = &amp;(*pp)-&gt;next;
++ *pp = ovp;
++ }
++ }
++ break;
++
++ case o_wild:
++ wildp = (int (*) __P((char *, char **, int))) opt-&gt;addr;
++ if (!(*wildp)(cmd, argv, 1))
++ return 0;
++ break;
++ }
++
++ if (opt-&gt;addr2 &amp;&amp; (opt-&gt;flags &amp; (OPT_A2COPY|OPT_ENABLE
++ |OPT_A2PRINTER|OPT_A2STRVAL|OPT_A2LIST)) == 0)
++ *(bool *)(opt-&gt;addr2) = !(opt-&gt;flags &amp; OPT_A2CLR);
++
++ mainopt-&gt;source = option_source;
++ mainopt-&gt;priority = prio;
++ mainopt-&gt;winner = opt - mainopt;
++
++ return 1;
++}
++
++/*
++ * override_value - if the option priorities would permit us to
++ * override the value of option, return 1 and update the priority
++ * and source of the option value. Otherwise returns 0.
++ */
++int
++override_value(option, priority, source)
++ const char *option;
++ int priority;
++ const char *source;
++{
++ option_t *opt;
++
++ opt = find_option(option);
++ if (opt == NULL)
++ return 0;
++ while (opt-&gt;flags &amp; OPT_PRIOSUB)
++ --opt;
++ if ((opt-&gt;flags &amp; OPT_PRIO) &amp;&amp; priority &lt; opt-&gt;priority)
++ return 0;
++ opt-&gt;priority = priority;
++ opt-&gt;source = source;
++ opt-&gt;winner = -1;
++ return 1;
++}
++
++/*
++ * n_arguments - tell how many arguments an option takes
++ */
++static int
++n_arguments(opt)
++ option_t *opt;
++{
++ return (opt-&gt;type == o_bool || opt-&gt;type == o_special_noarg
++ || (opt-&gt;flags &amp; OPT_NOARG))? 0: 1;
++}
++
++/*
++ * add_options - add a list of options to the set we grok.
++ */
++void
++add_options(opt)
++ option_t *opt;
++{
++ struct option_list *list;
++
++ list = malloc(sizeof(*list));
++ if (list == 0)
++ novm(&quot;option list entry&quot;);
++ list-&gt;options = opt;
++ list-&gt;next = extra_options;
++ extra_options = list;
++}
++
++/*
++ * check_options - check that options are valid and consistent.
++ */
++void
++check_options()
++{
++ if (logfile_fd &gt;= 0 &amp;&amp; logfile_fd != log_to_fd)
++ close(logfile_fd);
++}
++
++/*
++ * print_option - print out an option and its value
++ */
++static void
++print_option(opt, mainopt, printer, arg)
++ option_t *opt, *mainopt;
++ void (*printer) __P((void *, char *, ...));
++ void *arg;
++{
++ int i, v;
++ char *p;
++
++ if (opt-&gt;flags &amp; OPT_NOPRINT)
++ return;
++ switch (opt-&gt;type) {
++ case o_bool:
++ v = opt-&gt;flags &amp; OPT_VALUE;
++ if (*(bool *)opt-&gt;addr != v)
++ /* this can happen legitimately, e.g. lock
++ option turned off for default device */
++ break;
++ printer(arg, &quot;%s&quot;, opt-&gt;name);
++ break;
++ case o_int:
++ v = opt-&gt;flags &amp; OPT_VALUE;
++ if (v &gt;= 128)
++ v -= 256;
++ i = *(int *)opt-&gt;addr;
++ if (opt-&gt;flags &amp; OPT_NOARG) {
++ printer(arg, &quot;%s&quot;, opt-&gt;name);
++ if (i != v) {
++ if (opt-&gt;flags &amp; OPT_INC) {
++ for (; i &gt; v; i -= v)
++ printer(arg, &quot; %s&quot;, opt-&gt;name);
++ } else
++ printer(arg, &quot; # oops: %d not %d\n&quot;,
++ i, v);
++ }
++ } else {
++ printer(arg, &quot;%s %d&quot;, opt-&gt;name, i);
++ }
++ break;
++ case o_uint32:
++ printer(arg, &quot;%s&quot;, opt-&gt;name);
++ if ((opt-&gt;flags &amp; OPT_NOARG) == 0)
++ printer(arg, &quot; %x&quot;, *(u_int32_t *)opt-&gt;addr);
++ break;
++
++ case o_string:
++ if (opt-&gt;flags &amp; OPT_HIDE) {
++ p = &quot;??????&quot;;
++ } else {
++ p = (char *) opt-&gt;addr;
++ if ((opt-&gt;flags &amp; OPT_STATIC) == 0)
++ p = *(char **)p;
++ }
++ printer(arg, &quot;%s %q&quot;, opt-&gt;name, p);
++ break;
++
++ case o_special:
++ case o_special_noarg:
++ case o_wild:
++ if (opt-&gt;type != o_wild) {
++ printer(arg, &quot;%s&quot;, opt-&gt;name);
++ if (n_arguments(opt) == 0)
++ break;
++ printer(arg, &quot; &quot;);
++ }
++ if (opt-&gt;flags &amp; OPT_A2PRINTER) {
++ void (*oprt) __P((option_t *,
++ void ((*)__P((void *, char *, ...))),
++ void *));
++ oprt = opt-&gt;addr2;
++ (*oprt)(opt, printer, arg);
++ } else if (opt-&gt;flags &amp; OPT_A2STRVAL) {
++ p = (char *) opt-&gt;addr2;
++ if ((opt-&gt;flags &amp; OPT_STATIC) == 0)
++ p = *(char **)p;
++ printer(&quot;%q&quot;, p);
++ } else if (opt-&gt;flags &amp; OPT_A2LIST) {
++ struct option_value *ovp;
++
++ ovp = (struct option_value *) opt-&gt;addr2;
++ for (;;) {
++ printer(arg, &quot;%q&quot;, ovp-&gt;value);
++ if ((ovp = ovp-&gt;next) == NULL)
++ break;
++ printer(arg, &quot;\t\t# (from %s)\n%s &quot;,
++ ovp-&gt;source, opt-&gt;name);
++ }
++ } else {
++ printer(arg, &quot;xxx # [don't know how to print value]&quot;);
++ }
++ break;
++
++ default:
++ printer(arg, &quot;# %s value (type %d)&quot;, opt-&gt;name, opt-&gt;type);
++ break;
++ }
++ printer(arg, &quot;\t\t# (from %s)\n&quot;, mainopt-&gt;source);
++}
++
++/*
++ * print_option_list - print out options in effect from an
++ * array of options.
++ */
++static void
++print_option_list(opt, printer, arg)
++ option_t *opt;
++ void (*printer) __P((void *, char *, ...));
++ void *arg;
++{
++ while (opt-&gt;name != NULL) {
++ if (opt-&gt;priority != OPRIO_DEFAULT
++ &amp;&amp; opt-&gt;winner != (short int) -1)
++ print_option(opt + opt-&gt;winner, opt, printer, arg);
++ do {
++ ++opt;
++ } while (opt-&gt;flags &amp; OPT_PRIOSUB);
++ }
++}
++
++/*
++ * print_options - print out what options are in effect.
++ */
++void
++print_options(printer, arg)
++ void (*printer) __P((void *, char *, ...));
++ void *arg;
++{
++ struct option_list *list;
++ int i;
++
++ printer(arg, &quot;pppd options in effect:\n&quot;);
++ print_option_list(general_options, printer, arg);
++ print_option_list(auth_options, printer, arg);
++ for (list = extra_options; list != NULL; list = list-&gt;next)
++ print_option_list(list-&gt;options, printer, arg);
++ print_option_list(the_channel-&gt;options, printer, arg);
++ for (i = 0; protocols[i] != NULL; ++i)
++ print_option_list(protocols[i]-&gt;options, printer, arg);
++}
++
++/*
++ * usage - print out a message telling how to use the program.
++ */
++static void
++usage()
++{
++ if (phase == PHASE_INITIALIZE)
++ fprintf(stderr, usage_string, VERSION, progname);
++}
++
++/*
++ * showhelp - print out usage message and exit.
++ */
++static int
++showhelp(argv)
++ char **argv;
++{
++ if (phase == PHASE_INITIALIZE) {
++ usage();
++ exit(0);
++ }
++ return 0;
++}
++
++/*
++ * showversion - print out the version number and exit.
++ */
++static int
++showversion(argv)
++ char **argv;
++{
++ if (phase == PHASE_INITIALIZE) {
++ fprintf(stderr, &quot;pppd version %s\n&quot;, VERSION);
++ exit(0);
++ }
++ return 0;
++}
++
++/*
++ * option_error - print a message about an error in an option.
++ * The message is logged, and also sent to
++ * stderr if phase == PHASE_INITIALIZE.
++ */
++void
++option_error __V((char *fmt, ...))
++{
++ va_list args;
++ char buf[1024];
++
++#if defined(__STDC__)
++ va_start(args, fmt);
++#else
++ char *fmt;
++ va_start(args);
++ fmt = va_arg(args, char *);
++#endif
++ vslprintf(buf, sizeof(buf), fmt, args);
++ va_end(args);
++ if (phase == PHASE_INITIALIZE)
++ fprintf(stderr, &quot;%s: %s\n&quot;, progname, buf);
++ syslog(LOG_ERR, &quot;%s&quot;, buf);
++}
++
++#if 0
++/*
++ * readable - check if a file is readable by the real user.
++ */
++int
++readable(fd)
++ int fd;
++{
++ uid_t uid;
++ int i;
++ struct stat sbuf;
++
++ uid = getuid();
++ if (uid == 0)
++ return 1;
++ if (fstat(fd, &amp;sbuf) != 0)
++ return 0;
++ if (sbuf.st_uid == uid)
++ return sbuf.st_mode &amp; S_IRUSR;
++ if (sbuf.st_gid == getgid())
++ return sbuf.st_mode &amp; S_IRGRP;
++ for (i = 0; i &lt; ngroups; ++i)
++ if (sbuf.st_gid == groups[i])
++ return sbuf.st_mode &amp; S_IRGRP;
++ return sbuf.st_mode &amp; S_IROTH;
++}
++#endif
++
++/*
++ * Read a word from a file.
++ * Words are delimited by white-space or by quotes (&quot; or ').
++ * Quotes, white-space and \ may be escaped with \.
++ * \&lt;newline&gt; is ignored.
++ */
++int
++getword(f, word, newlinep, filename)
++ FILE *f;
++ char *word;
++ int *newlinep;
++ char *filename;
++{
++ int c, len, escape;
++ int quoted, comment;
++ int value, digit, got, n;
++
++#define isoctal(c) ((c) &gt;= '0' &amp;&amp; (c) &lt; '8')
++
++ *newlinep = 0;
++ len = 0;
++ escape = 0;
++ comment = 0;
++
++ /*
++ * First skip white-space and comments.
++ */
++ for (;;) {
++ c = getc(f);
++ if (c == EOF)
++ break;
++
++ /*
++ * A newline means the end of a comment; backslash-newline
++ * is ignored. Note that we cannot have escape &amp;&amp; comment.
++ */
++ if (c == '\n') {
++ if (!escape) {
++ *newlinep = 1;
++ comment = 0;
++ } else
++ escape = 0;
++ continue;
++ }
++
++ /*
++ * Ignore characters other than newline in a comment.
++ */
++ if (comment)
++ continue;
++
++ /*
++ * If this character is escaped, we have a word start.
++ */
++ if (escape)
++ break;
++
++ /*
++ * If this is the escape character, look at the next character.
++ */
++ if (c == '\\') {
++ escape = 1;
++ continue;
++ }
++
++ /*
++ * If this is the start of a comment, ignore the rest of the line.
++ */
++ if (c == '#') {
++ comment = 1;
++ continue;
++ }
++
++ /*
++ * A non-whitespace character is the start of a word.
++ */
++ if (!isspace(c))
++ break;
++ }
++
++ /*
++ * Save the delimiter for quoted strings.
++ */
++ if (!escape &amp;&amp; (c == '&quot;' || c == '\'')) {
++ quoted = c;
++ c = getc(f);
++ } else
++ quoted = 0;
++
++ /*
++ * Process characters until the end of the word.
++ */
++ while (c != EOF) {
++ if (escape) {
++ /*
++ * This character is escaped: backslash-newline is ignored,
++ * various other characters indicate particular values
++ * as for C backslash-escapes.
++ */
++ escape = 0;
++ if (c == '\n') {
++ c = getc(f);
++ continue;
++ }
++
++ got = 0;
++ switch (c) {
++ case 'a':
++ value = '\a';
++ break;
++ case 'b':
++ value = '\b';
++ break;
++ case 'f':
++ value = '\f';
++ break;
++ case 'n':
++ value = '\n';
++ break;
++ case 'r':
++ value = '\r';
++ break;
++ case 's':
++ value = ' ';
++ break;
++ case 't':
++ value = '\t';
++ break;
++
++ default:
++ if (isoctal(c)) {
++ /*
++ * \ddd octal sequence
++ */
++ value = 0;
++ for (n = 0; n &lt; 3 &amp;&amp; isoctal(c); ++n) {
++ value = (value &lt;&lt; 3) + (c &amp; 07);
++ c = getc(f);
++ }
++ got = 1;
++ break;
++ }
++
++ if (c == 'x') {
++ /*
++ * \x&lt;hex_string&gt; sequence
++ */
++ value = 0;
++ c = getc(f);
++ for (n = 0; n &lt; 2 &amp;&amp; isxdigit(c); ++n) {
++ digit = toupper(c) - '0';
++ if (digit &gt; 10)
++ digit += '0' + 10 - 'A';
++ value = (value &lt;&lt; 4) + digit;
++ c = getc (f);
++ }
++ got = 1;
++ break;
++ }
++
++ /*
++ * Otherwise the character stands for itself.
++ */
++ value = c;
++ break;
++ }
++
++ /*
++ * Store the resulting character for the escape sequence.
++ */
++ if (len &lt; MAXWORDLEN-1)
++ word[len] = value;
++ ++len;
++
++ if (!got)
++ c = getc(f);
++ continue;
++
++ }
++
++ /*
++ * Not escaped: see if we've reached the end of the word.
++ */
++ if (quoted) {
++ if (c == quoted)
++ break;
++ } else {
++ if (isspace(c) || c == '#') {
++ ungetc (c, f);
++ break;
++ }
++ }
++
++ /*
++ * Backslash starts an escape sequence.
++ */
++ if (c == '\\') {
++ escape = 1;
++ c = getc(f);
++ continue;
++ }
++
++ /*
++ * An ordinary character: store it in the word and get another.
++ */
++ if (len &lt; MAXWORDLEN-1)
++ word[len] = c;
++ ++len;
++
++ c = getc(f);
++ }
++
++ /*
++ * End of the word: check for errors.
++ */
++ if (c == EOF) {
++ if (ferror(f)) {
++ if (errno == 0)
++ errno = EIO;
++ option_error(&quot;Error reading %s: %m&quot;, filename);
++ die(1);
++ }
++ /*
++ * If len is zero, then we didn't find a word before the
++ * end of the file.
++ */
++ if (len == 0)
++ return 0;
++ }
++
++ /*
++ * Warn if the word was too long, and append a terminating null.
++ */
++ if (len &gt;= MAXWORDLEN) {
++ option_error(&quot;warning: word in file %s too long (%.20s...)&quot;,
++ filename, word);
++ len = MAXWORDLEN - 1;
++ }
++ word[len] = 0;
++
++ return 1;
++
++#undef isoctal
++
++}
++
++/*
++ * number_option - parse an unsigned numeric parameter for an option.
++ */
++static int
++number_option(str, valp, base)
++ char *str;
++ u_int32_t *valp;
++ int base;
++{
++ char *ptr;
++
++ *valp = strtoul(str, &amp;ptr, base);
++ if (ptr == str) {
++ option_error(&quot;invalid numeric parameter '%s' for %s option&quot;,
++ str, current_option);
++ return 0;
++ }
++ return 1;
++}
++
++
++/*
++ * int_option - like number_option, but valp is int *,
++ * the base is assumed to be 0, and *valp is not changed
++ * if there is an error.
++ */
++int
++int_option(str, valp)
++ char *str;
++ int *valp;
++{
++ u_int32_t v;
++
++ if (!number_option(str, &amp;v, 0))
++ return 0;
++ *valp = (int) v;
++ return 1;
++}
++
++
++/*
++ * The following procedures parse options.
++ */
++
++/*
++ * readfile - take commands from a file.
++ */
++static int
++readfile(argv)
++ char **argv;
++{
++ return options_from_file(*argv, 1, 1, privileged_option);
++}
++
++/*
++ * callfile - take commands from /etc/ppp/peers/&lt;name&gt;.
++ * Name may not contain /../, start with / or ../, or end in /..
++ */
++static int
++callfile(argv)
++ char **argv;
++{
++ char *fname, *arg, *p;
++ int l, ok;
++
++ arg = *argv;
++ ok = 1;
++ if (arg[0] == '/' || arg[0] == 0)
++ ok = 0;
++ else {
++ for (p = arg; *p != 0; ) {
++ if (p[0] == '.' &amp;&amp; p[1] == '.' &amp;&amp; (p[2] == '/' || p[2] == 0)) {
++ ok = 0;
++ break;
++ }
++ while (*p != '/' &amp;&amp; *p != 0)
++ ++p;
++ if (*p == '/')
++ ++p;
++ }
++ }
++ if (!ok) {
++ option_error(&quot;call option value may not contain .. or start with /&quot;);
++ return 0;
++ }
++
++ l = strlen(arg) + strlen(_PATH_PEERFILES) + 1;
++ if ((fname = (char *) malloc(l)) == NULL)
++ novm(&quot;call file name&quot;);
++ slprintf(fname, l, &quot;%s%s&quot;, _PATH_PEERFILES, arg);
++
++ ok = options_from_file(fname, 1, 1, 1);
++
++ free(fname);
++ return ok;
++}
++
++#ifdef PPP_FILTER
++/*
++ * setpassfilter - Set the pass filter for packets
++ */
++static int
++setpassfilter(argv)
++ char **argv;
++{
++ pc.linktype = DLT_PPP;
++ pc.snapshot = PPP_HDRLEN;
++
++ if (pcap_compile(&amp;pc, &amp;pass_filter, *argv, 1, netmask) == 0)
++ return 1;
++ option_error(&quot;error in pass-filter expression: %s\n&quot;, pcap_geterr(&amp;pc));
++ return 0;
++}
++
++/*
++ * setactivefilter - Set the active filter for packets
++ */
++static int
++setactivefilter(argv)
++ char **argv;
++{
++ pc.linktype = DLT_PPP;
++ pc.snapshot = PPP_HDRLEN;
++
++ if (pcap_compile(&amp;pc, &amp;active_filter, *argv, 1, netmask) == 0)
++ return 1;
++ option_error(&quot;error in active-filter expression: %s\n&quot;, pcap_geterr(&amp;pc));
++ return 0;
++}
++#endif
++
++/*
++ * setdomain - Set domain name to append to hostname
++ */
++static int
++setdomain(argv)
++ char **argv;
++{
++ gethostname(hostname, MAXNAMELEN);
++ if (**argv != 0) {
++ if (**argv != '.')
++ strncat(hostname, &quot;.&quot;, MAXNAMELEN - strlen(hostname));
++ domain = hostname + strlen(hostname);
++ strncat(hostname, *argv, MAXNAMELEN - strlen(hostname));
++ }
++ hostname[MAXNAMELEN-1] = 0;
++ return (1);
++}
++
++
++static int
++setlogfile(argv)
++ char **argv;
++{
++ int fd, err;
++
++ if (!privileged_option)
++ seteuid(getuid());
++ fd = open(*argv, O_WRONLY | O_APPEND | O_CREAT | O_EXCL, 0644);
++ if (fd &lt; 0 &amp;&amp; errno == EEXIST)
++ fd = open(*argv, O_WRONLY | O_APPEND);
++ err = errno;
++ if (!privileged_option)
++ seteuid(0);
++ if (fd &lt; 0) {
++ errno = err;
++ option_error(&quot;Can't open log file %s: %m&quot;, *argv);
++ return 0;
++ }
++ strlcpy(logfile_name, *argv, sizeof(logfile_name));
++ if (logfile_fd &gt;= 0)
++ close(logfile_fd);
++ logfile_fd = fd;
++ log_to_fd = fd;
++ log_default = 0;
++ return 1;
++}
++
++#ifdef PLUGIN
++static int
++loadplugin(argv)
++ char **argv;
++{
++ char *arg = *argv;
++ void *handle;
++ const char *err;
++ void (*init) __P((void));
++ char *path = arg;
++ const char *vers;
++
++ if (strchr(arg, '/') == 0) {
++ const char *base = _PATH_PLUGIN;
++ int l = strlen(base) + strlen(arg) + 2;
++ path = malloc(l);
++ if (path == 0)
++ novm(&quot;plugin file path&quot;);
++ strlcpy(path, base, l);
++ strlcat(path, &quot;/&quot;, l);
++ strlcat(path, arg, l);
++ }
++ handle = dlopen(path, RTLD_GLOBAL | RTLD_NOW);
++ if (handle == 0) {
++ err = dlerror();
++ if (err != 0)
++ option_error(&quot;%s&quot;, err);
++ option_error(&quot;Couldn't load plugin %s&quot;, arg);
++ goto err;
++ }
++ init = (void (*)(void))dlsym(handle, &quot;plugin_init&quot;);
++ if (init == 0) {
++ option_error(&quot;%s has no initialization entry point&quot;, arg);
++ goto errclose;
++ }
++ vers = (const char *) dlsym(handle, &quot;pppd_version&quot;);
++ if (vers == 0) {
++ warn(&quot;Warning: plugin %s has no version information&quot;, arg);
++ } else if (strcmp(vers, VERSION) != 0) {
++ option_error(&quot;Plugin %s is for pppd version %s, this is %s&quot;,
++ vers, VERSION);
++ goto errclose;
++ }
++ info(&quot;Plugin %s loaded.&quot;, arg);
++ (*init)();
++ return 1;
++
++ errclose:
++ dlclose(handle);
++ err:
++ if (path != arg)
++ free(path);
++ return 0;
++}
++#endif /* PLUGIN */
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/pppd/options.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1ppppppdpatchlevelh">Added: drakx/trunk/mdk-stage1/ppp/pppd/patchlevel.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/patchlevel.h (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/patchlevel.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,4 @@
++/* $Id: patchlevel.h 195720 2001-06-11 11:44:34Z gc $ */
++
++#define VERSION &quot;2.4.1&quot;
++#define DATE &quot;25 March 2001&quot;
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/pppd/patchlevel.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1ppppppdpathnamesh">Added: drakx/trunk/mdk-stage1/ppp/pppd/pathnames.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/pathnames.h (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/pathnames.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,25 @@
++/*
++ * define path names
++ *
++ * $Id: pathnames.h 195734 2001-06-11 14:46:02Z gc $
++ */
++
++#define _PATH_VARRUN &quot;/var/run/&quot;
++#define _PATH_DEVNULL &quot;/dev/null&quot;
++#define _ROOT_PATH
++
++#define _PATH_UPAPFILE _ROOT_PATH &quot;/etc/ppp/pap-secrets&quot;
++#define _PATH_CHAPFILE _ROOT_PATH &quot;/etc/ppp/chap-secrets&quot;
++#define _PATH_SYSOPTIONS _ROOT_PATH &quot;/etc/ppp/options&quot;
++#define _PATH_IPUP _ROOT_PATH &quot;/etc/ppp/ip-up&quot;
++#define _PATH_IPDOWN _ROOT_PATH &quot;/etc/ppp/ip-down&quot;
++#define _PATH_AUTHUP _ROOT_PATH &quot;/etc/ppp/auth-up&quot;
++#define _PATH_AUTHDOWN _ROOT_PATH &quot;/etc/ppp/auth-down&quot;
++#define _PATH_TTYOPT _ROOT_PATH &quot;/etc/ppp/options.&quot;
++#define _PATH_CONNERRS _ROOT_PATH &quot;/etc/ppp/connect-errors&quot;
++#define _PATH_PEERFILES _ROOT_PATH &quot;/etc/ppp/peers/&quot;
++#define _PATH_RESOLV _ROOT_PATH &quot;/etc/resolv.conf&quot;
++
++#define _PATH_USEROPT &quot;.ppprc&quot;
++
++#define _PATH_PPPDB _ROOT_PATH _PATH_VARRUN &quot;pppd.tdb&quot;
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/pppd/pathnames.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1ppppppdpluginsMakefilelinux">Added: drakx/trunk/mdk-stage1/ppp/pppd/plugins/Makefile.linux</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/plugins/Makefile.linux (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/plugins/Makefile.linux 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,19 @@
++CC = gcc
++CFLAGS = -g -O2 -I.. -I../../include -fPIC
++LDFLAGS = -shared
++INSTALL = install
++
++all: minconn.so passprompt.so
++
++minconn.so: minconn.c
++ $(CC) -o $@ $(LDFLAGS) $(CFLAGS) minconn.c
++
++passprompt.so: passprompt.c
++ $(CC) -o $@ $(LDFLAGS) $(CFLAGS) passprompt.c
++
++LIBDIR = /usr/lib/pppd
++
++install: minconn.so passprompt.so
++ version=`awk -F '&quot;' '/VERSION/ { print $$2; }' ../patchlevel.h`; \
++ $(INSTALL) -d $(LIBDIR)/$$version; \
++ $(INSTALL) $? $(LIBDIR)/$$version
+\ No newline at end of file
+
+<a id="drakxtrunkmdkstage1ppppppdpluginsMakefilesol2">Added: drakx/trunk/mdk-stage1/ppp/pppd/plugins/Makefile.sol2</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/plugins/Makefile.sol2 (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/plugins/Makefile.sol2 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,27 @@
++#
++# Makefile for plugins on Solaris 2
++#
++# $Id: Makefile.sol2 195720 2001-06-11 11:44:34Z gc $
++#
++
++include ../../svr4/Makedefs
++
++CFLAGS = -c -O -I.. -I../../include $(COPTS)
++LDFLAGS = -G
++
++all: minconn.so
++
++minconn.so: minconn.o
++ ld -o $@ $(LDFLAGS) -h $@ minconn.o
++
++minconn.o: minconn.c
++ $(CC) $(CFLAGS) -c $?
++
++passprompt.so: passprompt.o
++ ld -o $@ $(LDFLAGS) -h $@ passprompt.o
++
++passprompt.o: passprompt.c
++ $(CC) $(CFLAGS) -c $?
++
++clean:
++ rm -f *.o *.so
+
+<a id="drakxtrunkmdkstage1ppppppdpluginsminconnc">Added: drakx/trunk/mdk-stage1/ppp/pppd/plugins/minconn.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/plugins/minconn.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/plugins/minconn.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,46 @@
++/*
++ * minconn.c - pppd plugin to implement a `minconnect' option.
++ *
++ * Copyright 1999 Paul Mackerras.
++ *
++ * Redistribution and use in source and binary forms are permitted
++ * provided that the above copyright notice and this paragraph are
++ * duplicated in all such forms. The name of the author
++ * may not be used to endorse or promote products derived
++ * from this software without specific prior written permission.
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
++ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
++ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++ */
++#include &lt;stddef.h&gt;
++#include &lt;time.h&gt;
++#include &quot;pppd.h&quot;
++
++char pppd_version[] = VERSION;
++
++static int minconnect = 0;
++
++static option_t my_options[] = {
++ { &quot;minconnect&quot;, o_int, &amp;minconnect,
++ &quot;Set minimum connect time before idle timeout applies&quot; },
++ { NULL }
++};
++
++static int my_get_idle(struct ppp_idle *idle)
++{
++ time_t t;
++
++ if (idle == NULL)
++ return minconnect? minconnect: idle_time_limit;
++ t = idle-&gt;xmit_idle;
++ if (idle-&gt;recv_idle &lt; t)
++ t = idle-&gt;recv_idle;
++ return idle_time_limit - t;
++}
++
++void plugin_init(void)
++{
++ info(&quot;plugin_init&quot;);
++ add_options(my_options);
++ idle_time_hook = my_get_idle;
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/pppd/plugins/minconn.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1ppppppdpluginspasspromptc">Added: drakx/trunk/mdk-stage1/ppp/pppd/plugins/passprompt.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/plugins/passprompt.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/plugins/passprompt.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,108 @@
++/*
++ * passprompt.c - pppd plugin to invoke an external PAP password prompter
++ *
++ * Copyright 1999 Paul Mackerras, Alan Curry.
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License
++ * as published by the Free Software Foundation; either version
++ * 2 of the License, or (at your option) any later version.
++ */
++#include &lt;errno.h&gt;
++#include &lt;unistd.h&gt;
++#include &lt;sys/wait.h&gt;
++#include &lt;syslog.h&gt;
++#include &quot;pppd.h&quot;
++
++char pppd_version[] = VERSION;
++
++static char promptprog[PATH_MAX+1];
++
++static option_t options[] = {
++ { &quot;promptprog&quot;, o_string, promptprog,
++ &quot;External PAP password prompting program&quot;,
++ OPT_STATIC, NULL, PATH_MAX },
++ { NULL }
++};
++
++static int promptpass(char *user, char *passwd)
++{
++ int p[2];
++ pid_t kid;
++ int readgood, wstat;
++ size_t red;
++
++ if (promptprog[0] == 0 || access(promptprog, X_OK) &lt; 0)
++ return -1; /* sorry, can't help */
++
++ if (!passwd)
++ return 1;
++
++ if (pipe(p)) {
++ warn(&quot;Can't make a pipe for %s&quot;, promptprog);
++ return 0;
++ }
++ if ((kid = fork()) == (pid_t) -1) {
++ warn(&quot;Can't fork to run %s&quot;, promptprog);
++ close(p[0]);
++ close(p[1]);
++ return 0;
++ }
++ if (!kid) {
++ /* we are the child, exec the program */
++ char *argv[4], fdstr[32];
++ sys_close();
++ closelog();
++ close(p[0]);
++ seteuid(getuid());
++ setegid(getgid());
++ argv[0] = promptprog;
++ argv[1] = user;
++ argv[2] = remote_name;
++ sprintf(fdstr, &quot;%d&quot;, p[1]);
++ argv[3] = fdstr;
++ argv[4] = 0;
++ execv(*argv, argv);
++ _exit(127);
++ }
++
++ /* we are the parent, read the password from the pipe */
++ close(p[1]);
++ readgood = 0;
++ do {
++ red = read(p[0], passwd + readgood, MAXSECRETLEN-1 - readgood);
++ if (red == 0)
++ break;
++ if (red &lt; 0) {
++ error(&quot;Can't read secret from %s: %m&quot;, promptprog);
++ readgood = -1;
++ break;
++ }
++ readgood += red;
++ } while (readgood &lt; MAXSECRETLEN - 1);
++ passwd[readgood] = 0;
++ close(p[0]);
++
++ /* now wait for child to exit */
++ while (waitpid(kid, &amp;wstat, 0) &lt; 0) {
++ if (errno != EINTR) {
++ warn(&quot;error waiting for %s: %m&quot;, promptprog);
++ break;
++ }
++ }
++
++ if (readgood &lt; 0)
++ return 0;
++ if (!WIFEXITED(wstat))
++ warn(&quot;%s terminated abnormally&quot;, promptprog);
++ if (WEXITSTATUS(wstat))
++ warn(&quot;%s exited with code %d&quot;, promptprog, WEXITSTATUS(status));
++
++ return 1;
++}
++
++void plugin_init(void)
++{
++ add_options(options);
++ pap_passwd_hook = promptpass;
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/pppd/plugins/passprompt.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1ppppppdppppam">Added: drakx/trunk/mdk-stage1/ppp/pppd/ppp.pam</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/ppp.pam (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/ppp.pam 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,6 @@
++#%PAM-1.0
++# Information for the PPPD process with the 'login' option.
++auth required pam_nologin.so
++auth required pam_unix.so
++account required pam_unix.so
++session required pam_unix.so
+\ No newline at end of file
+
+<a id="drakxtrunkmdkstage1ppppppdpppd8">Added: drakx/trunk/mdk-stage1/ppp/pppd/pppd.8</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/pppd.8 (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/pppd.8 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,1591 @@
++.\&quot; manual page [] for pppd 2.4
++.\&quot; $Id: pppd.8 195720 2001-06-11 11:44:34Z gc $
++.\&quot; SH section heading
++.\&quot; SS subsection heading
++.\&quot; LP paragraph
++.\&quot; IP indented paragraph
++.\&quot; TP hanging label
++.TH PPPD 8
++.SH NAME
++pppd \- Point to Point Protocol daemon
++.SH SYNOPSIS
++.B pppd
++[
++.I tty_name
++] [
++.I speed
++] [
++.I options
++]
++.SH DESCRIPTION
++.LP
++The Point-to-Point Protocol (PPP) provides a method for transmitting
++datagrams over serial point-to-point links. PPP
++is composed of three parts: a method for encapsulating datagrams over
++serial links, an extensible Link Control Protocol (LCP), and
++a family of Network Control Protocols (NCP) for establishing
++and configuring different network-layer protocols.
++.LP
++The encapsulation scheme is provided by driver code in the kernel.
++Pppd provides the basic LCP, authentication support, and an NCP for
++establishing and configuring the Internet Protocol (IP) (called the IP
++Control Protocol, IPCP).
++.SH FREQUENTLY USED OPTIONS
++.TP
++.I &lt;tty_name&gt;
++Communicate over the named device. The string &quot;/dev/&quot; is prepended if
++necessary. If no device name is given, or if the name of the terminal
++connected to the standard input is given, pppd will use that terminal,
++and will not fork to put itself in the background. A value for this
++option from a privileged source cannot be overridden by a
++non-privileged user.
++.TP
++.I &lt;speed&gt;
++Set the baud rate to &lt;speed&gt; (a decimal number). On systems such as
++4.4BSD and NetBSD, any speed can be specified. Other systems
++(e.g. SunOS) allow only a limited set of speeds.
++.TP
++.B asyncmap \fI&lt;map&gt;
++Set the async character map to &lt;map&gt;. This map describes which
++control characters cannot be successfully received over the serial
++line. Pppd will ask the peer to send these characters as a 2-byte
++escape sequence. The argument is a 32 bit hex number with each bit
++representing a character to escape. Bit 0 (00000001) represents the
++character 0x00; bit 31 (80000000) represents the character 0x1f or ^_.
++If multiple \fIasyncmap\fR options are given, the values are ORed
++together. If no \fIasyncmap\fR option is given, no async character
++map will be negotiated for the receive direction; the peer should then
++escape \fIall\fR control characters. To escape transmitted
++characters, use the \fIescape\fR option.
++.TP
++.B auth
++Require the peer to authenticate itself before allowing network
++packets to be sent or received. This option is the default if the
++system has a default route. If neither this option nor the
++\fInoauth\fR option is specified, pppd will only allow the peer to use
++IP addresses to which the system does not already have a route.
++.TP
++.B call \fIname
++Read options from the file /etc/ppp/peers/\fIname\fR. This file may
++contain privileged options, such as \fInoauth\fR, even if pppd
++is not being run by root. The \fIname\fR string may not begin with /
++or include .. as a pathname component. The format of the options file
++is described below.
++.TP
++.B connect \fIscript
++Use the executable or shell command specified by \fIscript\fR to set
++up the serial line. This script would typically use the chat(8)
++program to dial the modem and start the remote ppp session. A value
++for this option from a privileged source cannot be overridden by a
++non-privileged user.
++.TP
++.B crtscts
++Use hardware flow control (i.e. RTS/CTS) to control the flow of
++data on the serial port. If neither the \fIcrtscts\fR, the
++\fInocrtscts\fR, the \fIcdtrcts\fR nor the \fInocdtrcts\fR option
++is given, the hardware flow control setting for the serial port is
++left unchanged.
++Some serial ports (such as Macintosh serial ports) lack a true
++RTS output. Such serial ports use this mode to implement
++unidirectional flow control. The serial port will
++suspend transmission when requested by the modem (via CTS)
++but will be unable to request the modem stop sending to the
++computer. This mode retains the ability to use DTR as
++a modem control line.
++.TP
++.B defaultroute
++Add a default route to the system routing tables, using the peer as
++the gateway, when IPCP negotiation is successfully completed.
++This entry is removed when the PPP connection is broken. This option
++is privileged if the \fInodefaultroute\fR option has been specified.
++.TP
++.B disconnect \fIscript
++Run the executable or shell command specified by \fIscript\fR after
++pppd has terminated the link. This script could, for example, issue
++commands to the modem to cause it to hang up if hardware modem control
++signals were not available. The disconnect script is not run if the
++modem has already hung up. A value for this option from a privileged
++source cannot be overridden by a non-privileged user.
++.TP
++.B escape \fIxx,yy,...
++Specifies that certain characters should be escaped on transmission
++(regardless of whether the peer requests them to be escaped with its
++async control character map). The characters to be escaped are
++specified as a list of hex numbers separated by commas. Note that
++almost any character can be specified for the \fIescape\fR option,
++unlike the \fIasyncmap\fR option which only allows control characters
++to be specified. The characters which may not be escaped are those
++with hex values 0x20 - 0x3f or 0x5e.
++.TP
++.B file \fIname
++Read options from file \fIname\fR (the format is described below).
++The file must be readable by the user who has invoked pppd.
++.TP
++.B init \fIscript
++Run the executable or shell command specified by \fIscript\fR to
++initialize the serial line. This script would typically use the
++chat(8) program to configure the modem to enable auto answer. A value
++for this option from a privileged source cannot be overridden by a
++non-privileged user.
++.TP
++.B lock
++Specifies that pppd should create a UUCP-style lock file for the
++serial device to ensure exclusive access to the device.
++.TP
++.B mru \fIn
++Set the MRU [Maximum Receive Unit] value to \fIn\fR. Pppd
++will ask the peer to send packets of no more than \fIn\fR bytes. The
++minimum MRU value is 128. The default MRU value is 1500. A value of
++296 is recommended for slow links (40 bytes for TCP/IP header + 256
++bytes of data). (Note that for IPv6 MRU must be at least 1280)
++.TP
++.B mtu \fIn
++Set the MTU [Maximum Transmit Unit] value to \fIn\fR. Unless the
++peer requests a smaller value via MRU negotiation, pppd will
++request that the kernel networking code send data packets of no more
++than \fIn\fR bytes through the PPP network interface. (Note that for
++IPv6 MTU must be at least 1280)
++.TP
++.B passive
++Enables the &quot;passive&quot; option in the LCP. With this option, pppd will
++attempt to initiate a connection; if no reply is received from the
++peer, pppd will then just wait passively for a valid LCP packet from
++the peer, instead of exiting, as it would without this option.
++.SH OPTIONS
++.TP
++.I &lt;local_IP_address&gt;\fB:\fI&lt;remote_IP_address&gt;
++Set the local and/or remote interface IP addresses. Either one may be
++omitted. The IP addresses can be specified with a host name or in
++decimal dot notation (e.g. 150.234.56.78). The default local
++address is the (first) IP address of the system (unless the
++\fInoipdefault\fR
++option is given). The remote address will be obtained from the peer
++if not specified in any option. Thus, in simple cases, this option is
++not required. If a local and/or remote IP address is specified with
++this option, pppd
++will not accept a different value from the peer in the IPCP
++negotiation, unless the \fIipcp-accept-local\fR and/or
++\fIipcp-accept-remote\fR options are given, respectively.
++.TP
++.B ipv6 \fI&lt;local_interface_identifier&gt;\fR,\fI&lt;remote_interface_identifier&gt;
++Set the local and/or remote 64-bit interface identifier. Either one may be
++omitted. The identifier must be specified in standard ascii notation of
++IPv6 addresses (e.g. ::dead:beef). If the
++\fIipv6cp-use-ipaddr\fR
++option is given, the local identifier is the local IPv4 address (see above).
++On systems which supports a unique persistent id, such as EUI-48 derived
++from the Ethernet MAC address, \fIipv6cp-use-persistent\fR option can be
++used to replace the \fIipv6 &lt;local&gt;,&lt;remote&gt;\fR option. Otherwise the
++identifier is randomized.
++.TP
++.B active-filter \fIfilter-expression
++Specifies a packet filter to be applied to data packets to determine
++which packets are to be regarded as link activity, and therefore reset
++the idle timer, or cause the link to be brought up in demand-dialling
++mode. This option is useful in conjunction with the
++\fBidle\fR option if there are packets being sent or received
++regularly over the link (for example, routing information packets)
++which would otherwise prevent the link from ever appearing to be idle.
++The \fIfilter-expression\fR syntax is as described for tcpdump(1),
++except that qualifiers which are inappropriate for a PPP link, such as
++\fBether\fR and \fBarp\fR, are not permitted. Generally the filter
++expression should be enclosed in single-quotes to prevent whitespace
++in the expression from being interpreted by the shell. This option
++is currently only available under NetBSD, and then only
++if both the kernel and pppd were compiled with PPP_FILTER defined.
++.TP
++.B allow-ip \fIaddress(es)
++Allow peers to use the given IP address or subnet without
++authenticating themselves. The parameter is parsed as for each
++element of the list of allowed IP addresses in the secrets files (see
++the AUTHENTICATION section below).
++.TP
++.B bsdcomp \fInr,nt
++Request that the peer compress packets that it sends, using the
++BSD-Compress scheme, with a maximum code size of \fInr\fR bits, and
++agree to compress packets sent to the peer with a maximum code size of
++\fInt\fR bits. If \fInt\fR is not specified, it defaults to the value
++given for \fInr\fR. Values in the range 9 to 15 may be used for
++\fInr\fR and \fInt\fR; larger values give better compression but
++consume more kernel memory for compression dictionaries.
++Alternatively, a value of 0 for \fInr\fR or \fInt\fR disables
++compression in the corresponding direction. Use \fInobsdcomp\fR or
++\fIbsdcomp 0\fR to disable BSD-Compress compression entirely.
++.TP
++.B cdtrcts
++Use a non-standard hardware flow control (i.e. DTR/CTS) to control
++the flow of data on the serial port. If neither the \fIcrtscts\fR,
++the \fInocrtscts\fR, the \fIcdtrcts\fR nor the \fInocdtrcts\fR
++option is given, the hardware flow control setting for the serial
++port is left unchanged.
++Some serial ports (such as Macintosh serial ports) lack a true
++RTS output. Such serial ports use this mode to implement true
++bi-directional flow control. The sacrifice is that this flow
++control mode does not permit using DTR as a modem control line.
++.TP
++.B chap-interval \fIn
++If this option is given, pppd will rechallenge the peer every \fIn\fR
++seconds.
++.TP
++.B chap-max-challenge \fIn
++Set the maximum number of CHAP challenge transmissions to \fIn\fR
++(default 10).
++.TP
++.B chap-restart \fIn
++Set the CHAP restart interval (retransmission timeout for challenges)
++to \fIn\fR seconds (default 3).
++.TP
++.B connect-delay \fIn
++Wait for up \fIn\fR milliseconds after the connect script finishes for
++a valid PPP packet from the peer. At the end of this time, or when a
++valid PPP packet is received from the peer, pppd will commence
++negotiation by sending its first LCP packet. The default value is
++1000 (1 second). This wait period only applies if the \fBconnect\fR
++or \fBpty\fR option is used.
++.TP
++.B debug
++Enables connection debugging facilities.
++If this option is given, pppd will log the contents of all
++control packets sent or received in a readable form. The packets are
++logged through syslog with facility \fIdaemon\fR and level
++\fIdebug\fR. This information can be directed to a file by setting up
++/etc/syslog.conf appropriately (see syslog.conf(5)).
++.TP
++.B default-asyncmap
++Disable asyncmap negotiation, forcing all control characters to be
++escaped for both the transmit and the receive direction.
++.TP
++.B default-mru
++Disable MRU [Maximum Receive Unit] negotiation. With this option,
++pppd will use the default MRU value of 1500 bytes for both the
++transmit and receive direction.
++.TP
++.B deflate \fInr,nt
++Request that the peer compress packets that it sends, using the
++Deflate scheme, with a maximum window size of \fI2**nr\fR bytes, and
++agree to compress packets sent to the peer with a maximum window size
++of \fI2**nt\fR bytes. If \fInt\fR is not specified, it defaults to
++the value given for \fInr\fR. Values in the range 9 to 15 may be used
++for \fInr\fR and \fInt\fR; larger values give better compression but
++consume more kernel memory for compression dictionaries.
++Alternatively, a value of 0 for \fInr\fR or \fInt\fR disables
++compression in the corresponding direction. Use \fInodeflate\fR or
++\fIdeflate 0\fR to disable Deflate compression entirely. (Note: pppd
++requests Deflate compression in preference to BSD-Compress if the peer
++can do either.)
++.TP
++.B demand
++Initiate the link only on demand, i.e. when data traffic is present.
++With this option, the remote IP address must be specified by the user
++on the command line or in an options file. Pppd will initially
++configure the interface and enable it for IP traffic without
++connecting to the peer. When traffic is available, pppd will
++connect to the peer and perform negotiation, authentication, etc.
++When this is completed, pppd will commence passing data packets
++(i.e., IP packets) across the link.
++
++The \fIdemand\fR option implies the \fIpersist\fR option. If this
++behaviour is not desired, use the \fInopersist\fR option after the
++\fIdemand\fR option. The \fIidle\fR and \fIholdoff\fR
++options are also useful in conjuction with the \fIdemand\fR option.
++.TP
++.B domain \fId
++Append the domain name \fId\fR to the local host name for authentication
++purposes. For example, if gethostname() returns the name porsche, but
++the fully qualified domain name is porsche.Quotron.COM, you could
++specify \fIdomain Quotron.COM\fR. Pppd would then use the name
++\fIporsche.Quotron.COM\fR for looking up secrets in the secrets file,
++and as the default name to send to the peer when authenticating itself
++to the peer. This option is privileged.
++.TP
++.B dryrun
++With the \fBdryrun\fR option, pppd will print out all the option
++values which have been set and then exit, after parsing the command
++line and options files and checking the option values, but before
++initiating the link. The option values are logged at level info, and
++also printed to standard output unless the device on standard output
++is the device that pppd would be using to communicate with the peer.
++.TP
++.B dump
++With the \fBdump\fR option, pppd will print out all the option values
++which have been set. This option is like the \fBdryrun\fR option
++except that pppd proceeds as normal rather than exiting.
++.TP
++.B endpoint \fI&lt;epdisc&gt;
++Sets the endpoint discriminator sent by the local machine to the peer
++during multilink negotiation to \fI&lt;epdisc&gt;\fR. The default is to use
++the MAC address of the first ethernet interface on the system, if any,
++otherwise the IPv4 address corresponding to the hostname, if any,
++provided it is not in the multicast or locally-assigned IP address
++ranges, or the localhost address. The endpoint discriminator can be
++the string \fBnull\fR or of the form \fItype\fR:\fIvalue\fR, where
++type is a decimal number or one of the strings \fBlocal\fR, \fBIP\fR,
++\fBMAC\fR, \fBmagic\fR, or \fBphone\fR. The value is an IP address in
++dotted-decimal notation for the \fBIP\fR type, or a string of bytes in
++hexadecimal, separated by periods or colons for the other types. For
++the MAC type, the value may also be the name of an ethernet or similar
++network interface. This option is currently only available under
++Linux.
++.TP
++.B hide-password
++When logging the contents of PAP packets, this option causes pppd to
++exclude the password string from the log. This is the default.
++.TP
++.B holdoff \fIn
++Specifies how many seconds to wait before re-initiating the link after
++it terminates. This option only has any effect if the \fIpersist\fR
++or \fIdemand\fR option is used. The holdoff period is not applied if
++the link was terminated because it was idle.
++.TP
++.B idle \fIn
++Specifies that pppd should disconnect if the link is idle for \fIn\fR
++seconds. The link is idle when no data packets (i.e. IP packets) are
++being sent or received. Note: it is not advisable to use this option
++with the \fIpersist\fR option without the \fIdemand\fR option.
++If the \fBactive-filter\fR
++option is given, data packets which are rejected by the specified
++activity filter also count as the link being idle.
++.TP
++.B ipcp-accept-local
++With this option, pppd will accept the peer's idea of our local IP
++address, even if the local IP address was specified in an option.
++.TP
++.B ipcp-accept-remote
++With this option, pppd will accept the peer's idea of its (remote) IP
++address, even if the remote IP address was specified in an option.
++.TP
++.B ipcp-max-configure \fIn
++Set the maximum number of IPCP configure-request transmissions to
++\fIn\fR (default 10).
++.TP
++.B ipcp-max-failure \fIn
++Set the maximum number of IPCP configure-NAKs returned before starting
++to send configure-Rejects instead to \fIn\fR (default 10).
++.TP
++.B ipcp-max-terminate \fIn
++Set the maximum number of IPCP terminate-request transmissions to
++\fIn\fR (default 3).
++.TP
++.B ipcp-restart \fIn
++Set the IPCP restart interval (retransmission timeout) to \fIn\fR
++seconds (default 3).
++.TP
++.B ipparam \fIstring
++Provides an extra parameter to the ip-up and ip-down scripts. If this
++option is given, the \fIstring\fR supplied is given as the 6th
++parameter to those scripts.
++.TP
++.B ipv6cp-max-configure \fIn
++Set the maximum number of IPv6CP configure-request transmissions to
++\fIn\fR (default 10).
++.TP
++.B ipv6cp-max-failure \fIn
++Set the maximum number of IPv6CP configure-NAKs returned before starting
++to send configure-Rejects instead to \fIn\fR (default 10).
++.TP
++.B ipv6cp-max-terminate \fIn
++Set the maximum number of IPv6CP terminate-request transmissions to
++\fIn\fR (default 3).
++.TP
++.B ipv6cp-restart \fIn
++Set the IPv6CP restart interval (retransmission timeout) to \fIn\fR
++seconds (default 3).
++.TP
++.B ipx
++Enable the IPXCP and IPX protocols. This option is presently only
++supported under Linux, and only if your kernel has been configured to
++include IPX support.
++.TP
++.B ipx-network \fIn
++Set the IPX network number in the IPXCP configure request frame to
++\fIn\fR, a hexadecimal number (without a leading 0x). There is no
++valid default. If this option is not specified, the network number is
++obtained from the peer. If the peer does not have the network number,
++the IPX protocol will not be started.
++.TP
++.B ipx-node \fIn\fB:\fIm
++Set the IPX node numbers. The two node numbers are separated from each
++other with a colon character. The first number \fIn\fR is the local
++node number. The second number \fIm\fR is the peer's node number. Each
++node number is a hexadecimal number, at most 10 digits long. The node
++numbers on the ipx-network must be unique. There is no valid
++default. If this option is not specified then the node numbers are
++obtained from the peer.
++.TP
++.B ipx-router-name \fI&lt;string&gt;
++Set the name of the router. This is a string and is sent to the peer
++as information data.
++.TP
++.B ipx-routing \fIn
++Set the routing protocol to be received by this option. More than one
++instance of \fIipx-routing\fR may be specified. The '\fInone\fR'
++option (0) may be specified as the only instance of ipx-routing. The
++values may be \fI0\fR for \fINONE\fR, \fI2\fR for \fIRIP/SAP\fR, and
++\fI4\fR for \fINLSP\fR.
++.TP
++.B ipxcp-accept-local
++Accept the peer's NAK for the node number specified in the ipx-node
++option. If a node number was specified, and non-zero, the default is
++to insist that the value be used. If you include this option then you
++will permit the peer to override the entry of the node number.
++.TP
++.B ipxcp-accept-network
++Accept the peer's NAK for the network number specified in the
++ipx-network option. If a network number was specified, and non-zero, the
++default is to insist that the value be used. If you include this
++option then you will permit the peer to override the entry of the node
++number.
++.TP
++.B ipxcp-accept-remote
++Use the peer's network number specified in the configure request
++frame. If a node number was specified for the peer and this option was
++not specified, the peer will be forced to use the value which you have
++specified.
++.TP
++.B ipxcp-max-configure \fIn
++Set the maximum number of IPXCP configure request frames which the
++system will send to \fIn\fR. The default is 10.
++.TP
++.B ipxcp-max-failure \fIn
++Set the maximum number of IPXCP NAK frames which the local system will
++send before it rejects the options. The default value is 3.
++.TP
++.B ipxcp-max-terminate \fIn
++Set the maximum nuber of IPXCP terminate request frames before the
++local system considers that the peer is not listening to them. The
++default value is 3.
++.TP
++.B kdebug \fIn
++Enable debugging code in the kernel-level PPP driver. The argument
++values depend on the specific kernel driver, but in general a value of
++1 will enable general kernel debug messages. (Note that these
++messages are usually only useful for debugging the kernel driver
++itself.) For the Linux 2.2.x kernel driver, the value is a sum of
++bits: 1 to
++enable general debug messages, 2 to request that the contents of
++received packets be printed, and 4 to request that the contents of
++transmitted packets be printed. On most systems, messages printed by
++the kernel are logged by syslog(1) to a file as directed in the
++/etc/syslog.conf configuration file.
++.TP
++.B ktune
++Enables pppd to alter kernel settings as appropriate. Under Linux,
++pppd will enable IP forwarding (i.e. set /proc/sys/net/ipv4/ip_forward
++to 1) if the \fIproxyarp\fR option is used, and will enable the
++dynamic IP address option (i.e. set /proc/sys/net/ipv4/ip_dynaddr to
++1) in demand mode if the local address changes.
++.TP
++.B lcp-echo-failure \fIn
++If this option is given, pppd will presume the peer to be dead
++if \fIn\fR LCP echo-requests are sent without receiving a valid LCP
++echo-reply. If this happens, pppd will terminate the
++connection. Use of this option requires a non-zero value for the
++\fIlcp-echo-interval\fR parameter. This option can be used to enable
++pppd to terminate after the physical connection has been broken
++(e.g., the modem has hung up) in situations where no hardware modem
++control lines are available.
++.TP
++.B lcp-echo-interval \fIn
++If this option is given, pppd will send an LCP echo-request frame to
++the peer every \fIn\fR seconds. Normally the peer should respond to
++the echo-request by sending an echo-reply. This option can be used
++with the \fIlcp-echo-failure\fR option to detect that the peer is no
++longer connected.
++.TP
++.B lcp-max-configure \fIn
++Set the maximum number of LCP configure-request transmissions to
++\fIn\fR (default 10).
++.TP
++.B lcp-max-failure \fIn
++Set the maximum number of LCP configure-NAKs returned before starting
++to send configure-Rejects instead to \fIn\fR (default 10).
++.TP
++.B lcp-max-terminate \fIn
++Set the maximum number of LCP terminate-request transmissions to
++\fIn\fR (default 3).
++.TP
++.B lcp-restart \fIn
++Set the LCP restart interval (retransmission timeout) to \fIn\fR
++seconds (default 3).
++.TP
++.B linkname \fIname\fR
++Sets the logical name of the link to \fIname\fR. Pppd will create a
++file named \fBppp-\fIname\fB.pid\fR in /var/run (or /etc/ppp on some
++systems) containing its process ID. This can be useful in determining
++which instance of pppd is responsible for the link to a given peer
++system. This is a privileged option.
++.TP
++.B local
++Don't use the modem control lines. With this option, pppd will ignore
++the state of the CD (Carrier Detect) signal from the modem and will
++not change the state of the DTR (Data Terminal Ready) signal.
++.TP
++.B logfd \fIn
++Send log messages to file descriptor \fIn\fR. Pppd will send log
++messages to at most one file or file descriptor (as well as sending
++the log messages to syslog), so this option and the \fBlogfile\fR
++option are mutually exclusive. The default is for pppd to send log
++messages to stdout (file descriptor 1), unless the serial port is
++already open on stdout.
++.TP
++.B logfile \fIfilename
++Append log messages to the file \fIfilename\fR (as well as sending the
++log messages to syslog). The file is opened with the privileges of
++the user who invoked pppd, in append mode.
++.TP
++.B login
++Use the system password database for authenticating the peer using
++PAP, and record the user in the system wtmp file. Note that the peer
++must have an entry in the /etc/ppp/pap-secrets file as well as the
++system password database to be allowed access.
++.TP
++.B maxconnect \fIn
++Terminate the connection when it has been available for network
++traffic for \fIn\fR seconds (i.e. \fIn\fR seconds after the first
++network control protocol comes up).
++.TP
++.B maxfail \fIn
++Terminate after \fIn\fR consecutive failed connection attempts. A
++value of 0 means no limit. The default value is 10.
++.TP
++.B modem
++Use the modem control lines. This option is the default. With this
++option, pppd will wait for the CD (Carrier Detect) signal from the
++modem to be asserted when opening the serial device (unless a connect
++script is specified), and it will drop the DTR (Data Terminal Ready)
++signal briefly when the connection is terminated and before executing
++the connect script. On Ultrix, this option implies hardware flow
++control, as for the \fIcrtscts\fR option.
++.TP
++.B mp
++Enables the use of PPP multilink; this is an alias for the `multilink'
++option. This option is currently only available under Linux.
++.TP
++.B mpshortseq
++Enables the use of short (12-bit) sequence numbers in multilink
++headers, as opposed to 24-bit sequence numbers. This option is only
++available under Linux, and only has any effect if multilink is
++enabled (see the multilink option).
++.TP
++.B mrru \fIn
++Sets the Maximum Reconstructed Receive Unit to \fIn\fR. The MRRU is
++the maximum size for a received packet on a multilink bundle, and is
++analogous to the MRU for the individual links. This option is
++currently only available under Linux, and only has any effect if
++multilink is enabled (see the multilink option).
++.TP
++.B ms-dns \fI&lt;addr&gt;
++If pppd is acting as a server for Microsoft Windows clients, this
++option allows pppd to supply one or two DNS (Domain Name Server)
++addresses to the clients. The first instance of this option specifies
++the primary DNS address; the second instance (if given) specifies the
++secondary DNS address. (This option was present in some older
++versions of pppd under the name \fBdns-addr\fR.)
++.TP
++.B ms-wins \fI&lt;addr&gt;
++If pppd is acting as a server for Microsoft Windows or &quot;Samba&quot;
++clients, this option allows pppd to supply one or two WINS (Windows
++Internet Name Services) server addresses to the clients. The first
++instance of this option specifies the primary WINS address; the second
++instance (if given) specifies the secondary WINS address.
++.TP
++.B multilink
++Enables the use of the PPP multilink protocol. If the peer also
++supports multilink, then this link can become part of a bundle between
++the local system and the peer. If there is an existing bundle to the
++peer, pppd will join this link to that bundle, otherwise pppd will
++create a new bundle. See the MULTILINK section below. This option is
++currently only available under Linux.
++.TP
++.B name \fIname
++Set the name of the local system for authentication purposes to
++\fIname\fR. This is a privileged option. With this option, pppd will
++use lines in the secrets files which have \fIname\fR as the second
++field when looking for a secret to use in authenticating the peer. In
++addition, unless overridden with the \fIuser\fR option, \fIname\fR
++will be used as the name to send to the peer when authenticating the
++local system to the peer. (Note that pppd does not append the domain
++name to \fIname\fR.)
++.TP
++.B netmask \fIn
++Set the interface netmask to \fIn\fR, a 32 bit netmask in &quot;decimal dot&quot;
++notation (e.g. 255.255.255.0). If this option is given, the value
++specified is ORed with the default netmask. The default netmask is
++chosen based on the negotiated remote IP address; it is the
++appropriate network mask for the class of the remote IP address, ORed
++with the netmasks for any non point-to-point network interfaces in the
++system which are on the same network. (Note: on some platforms, pppd
++will always use 255.255.255.255 for the netmask, if that is the only
++appropriate value for a point-to-point interface.)
++.TP
++.B noaccomp
++Disable Address/Control compression in both directions (send and
++receive).
++.TP
++.B noauth
++Do not require the peer to authenticate itself. This option is
++privileged.
++.TP
++.B nobsdcomp
++Disables BSD-Compress compression; \fBpppd\fR will not request or
++agree to compress packets using the BSD-Compress scheme.
++.TP
++.B noccp
++Disable CCP (Compression Control Protocol) negotiation. This option
++should only be required if the peer is buggy and gets confused by
++requests from pppd for CCP negotiation.
++.TP
++.B nocrtscts
++Disable hardware flow control (i.e. RTS/CTS) on the serial port.
++If neither the \fIcrtscts\fR nor the \fInocrtscts\fR nor the
++\fIcdtrcts\fR nor the \fInocdtrcts\fR option is given, the hardware
++flow control setting for the serial port is left unchanged.
++.TP
++.B nocdtrcts
++This option is a synonym for \fInocrtscts\fR. Either of these options will
++disable both forms of hardware flow control.
++.TP
++.B nodefaultroute
++Disable the \fIdefaultroute\fR option. The system administrator who
++wishes to prevent users from creating default routes with pppd
++can do so by placing this option in the /etc/ppp/options file.
++.TP
++.B nodeflate
++Disables Deflate compression; pppd will not request or agree to
++compress packets using the Deflate scheme.
++.TP
++.B nodetach
++Don't detach from the controlling terminal. Without this option, if a
++serial device other than the terminal on the standard input is
++specified, pppd will fork to become a background process.
++.TP
++.B noendpoint
++Disables pppd from sending an endpoint discriminator to the peer or
++accepting one from the peer (see the MULTILINK section below). This
++option should only be required if the peer is buggy.
++.TP
++.B noip
++Disable IPCP negotiation and IP communication. This option should
++only be required if the peer is buggy and gets confused by requests
++from pppd for IPCP negotiation.
++.TP
++.B noipv6
++Disable IPv6CP negotiation and IPv6 communication. This option should
++only be required if the peer is buggy and gets confused by requests
++from pppd for IPv6CP negotiation.
++.TP
++.B noipdefault
++Disables the default behaviour when no local IP address is specified,
++which is to determine (if possible) the local IP address from the
++hostname. With this option, the peer will have to supply the local IP
++address during IPCP negotiation (unless it specified explicitly on the
++command line or in an options file).
++.TP
++.B noipx
++Disable the IPXCP and IPX protocols. This option should only be
++required if the peer is buggy and gets confused by requests from pppd
++for IPXCP negotiation.
++.TP
++.B noktune
++Opposite of the \fIktune\fR option; disables pppd from changing system
++settings.
++.TP
++.B nolog
++Do not send log messages to a file or file descriptor. This option
++cancels the \fBlogfd\fR and \fBlogfile\fR options.
++.TP
++.B nomagic
++Disable magic number negotiation. With this option, pppd cannot
++detect a looped-back line. This option should only be needed if the
++peer is buggy.
++.TP
++.B nomp
++Disables the use of PPP multilink. This option is currently only
++available under Linux.
++.TP
++.B nompshortseq
++Disables the use of short (12-bit) sequence numbers in the PPP
++multilink protocol, forcing the use of 24-bit sequence numbers. This
++option is currently only available under Linux, and only has any
++effect if multilink is enabled.
++.TP
++.B nomultilink
++Disables the use of PPP multilink. This option is currently only
++available under Linux.
++.TP
++.B nopcomp
++Disable protocol field compression negotiation in both the receive and
++the transmit direction.
++.TP
++.B nopersist
++Exit once a connection has been made and terminated. This is the
++default unless the \fIpersist\fR or \fIdemand\fR option has been
++specified.
++.TP
++.B nopredictor1
++Do not accept or agree to Predictor-1 compression.
++.TP
++.B noproxyarp
++Disable the \fIproxyarp\fR option. The system administrator who
++wishes to prevent users from creating proxy ARP entries with pppd can
++do so by placing this option in the /etc/ppp/options file.
++.TP
++.B notty
++Normally, pppd requires a terminal device. With this option, pppd
++will allocate itself a pseudo-tty master/slave pair and use the slave
++as its terminal device. Pppd will create a child process to act as a
++`character shunt' to transfer characters between the pseudo-tty master
++and its standard input and output. Thus pppd will transmit characters
++on its standard output and receive characters on its standard input
++even if they are not terminal devices. This option increases the
++latency and CPU overhead of transferring data over the ppp interface
++as all of the characters sent and received must flow through the
++character shunt process. An explicit device name may not be given if
++this option is used.
++.TP
++.B novj
++Disable Van Jacobson style TCP/IP header compression in both the
++transmit and the receive direction.
++.TP
++.B novjccomp
++Disable the connection-ID compression option in Van Jacobson style
++TCP/IP header compression. With this option, pppd will not omit the
++connection-ID byte from Van Jacobson compressed TCP/IP headers, nor
++ask the peer to do so.
++.TP
++.B papcrypt
++Indicates that all secrets in the /etc/ppp/pap-secrets file which are
++used for checking the identity of the peer are encrypted, and thus
++pppd should not accept a password which, before encryption, is
++identical to the secret from the /etc/ppp/pap-secrets file.
++.TP
++.B pap-max-authreq \fIn
++Set the maximum number of PAP authenticate-request transmissions to
++\fIn\fR (default 10).
++.TP
++.B pap-restart \fIn
++Set the PAP restart interval (retransmission timeout) to \fIn\fR
++seconds (default 3).
++.TP
++.B pap-timeout \fIn
++Set the maximum time that pppd will wait for the peer to authenticate
++itself with PAP to \fIn\fR seconds (0 means no limit).
++.TP
++.B pass-filter \fIfilter-expression
++Specifies a packet filter to applied to data packets being sent or
++received to determine which packets should be allowed to pass.
++Packets which are rejected by the filter are silently discarded. This
++option can be used to prevent specific network daemons (such as
++routed) using up link bandwidth, or to provide a basic firewall
++capability.
++The \fIfilter-expression\fR syntax is as described for tcpdump(1),
++except that qualifiers which are inappropriate for a PPP link, such as
++\fBether\fR and \fBarp\fR, are not permitted. Generally the filter
++expression should be enclosed in single-quotes to prevent whitespace
++in the expression from being interpreted by the shell. Note that it
++is possible to apply different constraints to incoming and outgoing
++packets using the \fBinbound\fR and \fBoutbound\fR qualifiers. This
++option is currently only available under NetBSD, and then only if both
++the kernel and pppd were compiled with PPP_FILTER defined.
++.TP
++.B persist
++Do not exit after a connection is terminated; instead try to reopen
++the connection.
++.TP
++.B plugin \fIfilename
++Load the shared library object file \fIfilename\fR as a plugin. This
++is a privileged option.
++.TP
++.B predictor1
++Request that the peer compress frames that it sends using Predictor-1
++compression, and agree to compress transmitted frames with Predictor-1
++if requested. This option has no effect unless the kernel driver
++supports Predictor-1 compression.
++.TP
++.B privgroup \fIgroup-name
++Allows members of group \fIgroup-name\fR to use privileged options.
++This is a privileged option. Use of this option requires care as
++there is no guarantee that members of \fIgroup-name\fR cannot use pppd
++to become root themselves. Consider it equivalent to putting the
++members of \fIgroup-name\fR in the kmem or disk group.
++.TP
++.B proxyarp
++Add an entry to this system's ARP [Address Resolution Protocol] table
++with the IP address of the peer and the Ethernet address of this
++system. This will have the effect of making the peer appear to other
++systems to be on the local ethernet.
++.TP
++.B pty \fIscript
++Specifies that the command \fIscript\fR is to be used to communicate
++rather than a specific terminal device. Pppd will allocate itself a
++pseudo-tty master/slave pair and use the slave as its terminal
++device. The \fIscript\fR will be run in a child process with the
++pseudo-tty master as its standard input and output. An explicit
++device name may not be given if this option is used. (Note: if the
++\fIrecord\fR option is used in conjuction with the \fIpty\fR option,
++the child process will have pipes on its standard input and output.)
++.TP
++.B receive-all
++With this option, pppd will accept all control characters from the
++peer, including those marked in the receive asyncmap. Without this
++option, pppd will discard those characters as specified in RFC1662.
++This option should only be needed if the peer is buggy.
++.TP
++.B record \fIfilename
++Specifies that pppd should record all characters sent and received to
++a file named \fIfilename\fR. This file is opened in append mode,
++using the user's user-ID and permissions. This option is implemented
++using a pseudo-tty and a process to transfer characters between the
++pseudo-tty and the real serial device, so it will increase the latency
++and CPU overhead of transferring data over the ppp interface. The
++characters are stored in a tagged format with timestamps, which can be
++displayed in readable form using the pppdump(8) program.
++.TP
++.B remotename \fIname
++Set the assumed name of the remote system for authentication purposes
++to \fIname\fR.
++.TP
++.B refuse-chap
++With this option, pppd will not agree to authenticate itself to the
++peer using CHAP.
++.TP
++.B refuse-pap
++With this option, pppd will not agree to authenticate itself to the
++peer using PAP.
++.TP
++.B require-chap
++Require the peer to authenticate itself using CHAP [Challenge
++Handshake Authentication Protocol] authentication.
++.TP
++.B require-pap
++Require the peer to authenticate itself using PAP [Password
++Authentication Protocol] authentication.
++.TP
++.B show-password
++When logging the contents of PAP packets, this option causes pppd to
++show the password string in the log message.
++.TP
++.B silent
++With this option, pppd will not transmit LCP packets to initiate a
++connection until a valid LCP packet is received from the peer (as for
++the `passive' option with ancient versions of pppd).
++.TP
++.B sync
++Use synchronous HDLC serial encoding instead of asynchronous.
++The device used by pppd with this option must have sync support.
++Currently supports Microgate SyncLink adapters
++under Linux and FreeBSD 2.2.8 and later.
++.TP
++.B updetach
++With this option, pppd will detach from its controlling terminal once
++it has successfully established the ppp connection (to the point where
++the first network control protocol, usually the IP control protocol,
++has come up).
++.TP
++.B usehostname
++Enforce the use of the hostname (with domain name appended, if given)
++as the name of the local system for authentication purposes (overrides
++the \fIname\fR option). This option is not normally needed since the
++\fIname\fR option is privileged.
++.TP
++.B usepeerdns
++Ask the peer for up to 2 DNS server addresses. The addresses supplied
++by the peer (if any) are passed to the /etc/ppp/ip-up script in the
++environment variables DNS1 and DNS2. In addition, pppd will create an
++/etc/ppp/resolv.conf file containing one or two nameserver lines with
++the address(es) supplied by the peer.
++.TP
++.B user \fIname
++Sets the name used for authenticating the local system to the peer to
++\fIname\fR.
++.TP
++.B vj-max-slots \fIn
++Sets the number of connection slots to be used by the Van Jacobson
++TCP/IP header compression and decompression code to \fIn\fR, which
++must be between 2 and 16 (inclusive).
++.TP
++.B welcome \fIscript
++Run the executable or shell command specified by \fIscript\fR before
++initiating PPP negotiation, after the connect script (if any) has
++completed. A value for this option from a privileged source cannot be
++overridden by a non-privileged user.
++.TP
++.B xonxoff
++Use software flow control (i.e. XON/XOFF) to control the flow of data on
++the serial port.
++.SH OPTIONS FILES
++Options can be taken from files as well as the command line. Pppd
++reads options from the files /etc/ppp/options, ~/.ppprc and
++/etc/ppp/options.\fIttyname\fR (in that order) before processing the
++options on the command line. (In fact, the command-line options are
++scanned to find the terminal name before the options.\fIttyname\fR
++file is read.) In forming the name of the options.\fIttyname\fR file,
++the initial /dev/ is removed from the terminal name, and any remaining
++/ characters are replaced with dots.
++.PP
++An options file is parsed into a series of words, delimited by
++whitespace. Whitespace can be included in a word by enclosing the
++word in double-quotes (&quot;). A backslash (\\) quotes the following character.
++A hash (#) starts a comment, which continues until the end of the
++line. There is no restriction on using the \fIfile\fR or \fIcall\fR
++options within an options file.
++.SH SECURITY
++.I pppd
++provides system administrators with sufficient access control that PPP
++access to a server machine can be provided to legitimate users without
++fear of compromising the security of the server or the network it's
++on. This control is provided through restrictions on which IP
++addresses the peer may use, based on its authenticated identity (if
++any), and through restrictions on which options a non-privileged user
++may use. Several of pppd's options are privileged, in particular
++those which permit potentially insecure configurations; these options
++are only accepted in files which are under the control of the system
++administrator, or if pppd is being run by root.
++.PP
++The default behaviour of pppd is to allow an unauthenticated peer to
++use a given IP address only if the system does not already have a
++route to that IP address. For example, a system with a
++permanent connection to the wider internet will normally have a
++default route, and thus all peers will have to authenticate themselves
++in order to set up a connection. On such a system, the \fIauth\fR
++option is the default. On the other hand, a system where the
++PPP link is the only connection to the internet will not normally have
++a default route, so the peer will be able to use almost any IP address
++without authenticating itself.
++.PP
++As indicated above, some security-sensitive options are privileged,
++which means that they may not be used by an ordinary non-privileged
++user running a setuid-root pppd, either on the command line, in the
++user's ~/.ppprc file, or in an options file read using the \fIfile\fR
++option. Privileged options may be used in /etc/ppp/options file or in
++an options file read using the \fIcall\fR option. If pppd is being
++run by the root user, privileged options can be used without
++restriction.
++.PP
++When opening the device, pppd uses either the invoking user's user ID
++or the root UID (that is, 0), depending on whether the device name was
++specified by the user or the system administrator. If the device name
++comes from a privileged source, that is, /etc/ppp/options or an
++options file read using the \fIcall\fR option, pppd uses full root
++privileges when opening the device. Thus, by creating an appropriate
++file under /etc/ppp/peers, the system administrator can allow users to
++establish a ppp connection via a device which they would not normally
++have permission to access. Otherwise pppd uses the invoking user's
++real UID when opening the device.
++.SH AUTHENTICATION
++Authentication is the process whereby one peer convinces the other of
++its identity. This involves the first peer sending its name to the
++other, together with some kind of secret information which could only
++come from the genuine authorized user of that name. In such an
++exchange, we will call the first peer the &quot;client&quot; and the other the
++&quot;server&quot;. The client has a name by which it identifies itself to the
++server, and the server also has a name by which it identifies itself
++to the client. Generally the genuine client shares some secret (or
++password) with the server, and authenticates itself by proving that it
++knows that secret. Very often, the names used for authentication
++correspond to the internet hostnames of the peers, but this is not
++essential.
++.LP
++At present, pppd supports two authentication protocols: the Password
++Authentication Protocol (PAP) and the Challenge Handshake
++Authentication Protocol (CHAP). PAP involves the client sending its
++name and a cleartext password to the server to authenticate itself.
++In contrast, the server initiates the CHAP authentication exchange by
++sending a challenge to the client (the challenge packet includes the
++server's name). The client must respond with a response which
++includes its name plus a hash value derived from the shared secret and
++the challenge, in order to prove that it knows the secret.
++.LP
++The PPP protocol, being symmetrical, allows both peers to require the
++other to authenticate itself. In that case, two separate and
++independent authentication exchanges will occur. The two exchanges
++could use different authentication protocols, and in principle,
++different names could be used in the two exchanges.
++.LP
++The default behaviour of pppd is to agree to authenticate if
++requested, and to not require authentication from the peer. However,
++pppd will not agree to authenticate itself with a particular protocol
++if it has no secrets which could be used to do so.
++.LP
++Pppd stores secrets for use in authentication in secrets
++files (/etc/ppp/pap-secrets for PAP, /etc/ppp/chap-secrets for CHAP).
++Both secrets files have the same format. The secrets files can
++contain secrets for pppd to use in authenticating itself to other
++systems, as well as secrets for pppd to use when authenticating other
++systems to itself.
++.LP
++Each line in a secrets file contains one secret. A given secret is
++specific to a particular combination of client and server - it can
++only be used by that client to authenticate itself to that server.
++Thus each line in a secrets file has at least 3 fields: the name of
++the client, the name of the server, and the secret. These fields may
++be followed by a list of the IP addresses that the specified client
++may use when connecting to the specified server.
++.LP
++A secrets file is parsed into words as for a options file, so the
++client name, server name and secrets fields must each be one word,
++with any embedded spaces or other special characters quoted or
++escaped. Note that case is significant in the client and server names
++and in the secret.
++.LP
++If the secret starts with an `@', what follows is assumed to be the
++name of a file from which to read the secret. A &quot;*&quot; as the client or
++server name matches any name. When selecting a secret, pppd takes the
++best match, i.e. the match with the fewest wildcards.
++.LP
++Any following words on the same line are taken to be a list of
++acceptable IP addresses for that client. If there are only 3 words on
++the line, or if the first word is &quot;-&quot;, then all IP addresses are
++disallowed. To allow any address, use &quot;*&quot;. A word starting with &quot;!&quot;
++indicates that the specified address is \fInot\fR acceptable. An
++address may be followed by &quot;/&quot; and a number \fIn\fR, to indicate a
++whole subnet, i.e. all addresses which have the same value in the most
++significant \fIn\fR bits. In this form, the address may be followed
++by a plus sign (&quot;+&quot;) to indicate that one address from the subnet is
++authorized, based on the ppp network interface unit number in use.
++In this case, the host part of the address will be set to the unit
++number plus one.
++.LP
++Thus a secrets file contains both secrets for use in authenticating
++other hosts, plus secrets which we use for authenticating ourselves to
++others. When pppd is authenticating the peer (checking the peer's
++identity), it chooses a secret with the peer's name in the first
++field and the name of the local system in the second field. The
++name of the local system defaults to the hostname, with the domain
++name appended if the \fIdomain\fR option is used. This default can be
++overridden with the \fIname\fR option, except when the
++\fIusehostname\fR option is used.
++.LP
++When pppd is choosing a secret to use in authenticating itself to the
++peer, it first determines what name it is going to use to identify
++itself to the peer. This name can be specified by the user with the
++\fIuser\fR option. If this option is not used, the name defaults to
++the name of the local system, determined as described in the previous
++paragraph. Then pppd looks for a secret with this name in the first
++field and the peer's name in the second field. Pppd will know the
++name of the peer if CHAP authentication is being used, because the
++peer will have sent it in the challenge packet. However, if PAP is being
++used, pppd will have to determine the peer's name from the options
++specified by the user. The user can specify the peer's name directly
++with the \fIremotename\fR option. Otherwise, if the remote IP address
++was specified by a name (rather than in numeric form), that name will
++be used as the peer's name. Failing that, pppd will use the null
++string as the peer's name.
++.LP
++When authenticating the peer with PAP, the supplied password is first
++compared with the secret from the secrets file. If the password
++doesn't match the secret, the password is encrypted using crypt() and
++checked against the secret again. Thus secrets for authenticating the
++peer can be stored in encrypted form if desired. If the
++\fIpapcrypt\fR option is given, the first (unencrypted) comparison is
++omitted, for better security.
++.LP
++Furthermore, if the \fIlogin\fR option was specified, the username and
++password are also checked against the system password database. Thus,
++the system administrator can set up the pap-secrets file to allow PPP
++access only to certain users, and to restrict the set of IP addresses
++that each user can use. Typically, when using the \fIlogin\fR option,
++the secret in /etc/ppp/pap-secrets would be &quot;&quot;, which will match any
++password supplied by the peer. This avoids the need to have the same
++secret in two places.
++.LP
++Authentication must be satisfactorily completed before IPCP (or any
++other Network Control Protocol) can be started. If the peer is
++required to authenticate itself, and fails to do so, pppd will
++terminated the link (by closing LCP). If IPCP negotiates an
++unacceptable IP address for the remote host, IPCP will be closed. IP
++packets can only be sent or received when IPCP is open.
++.LP
++In some cases it is desirable to allow some hosts which can't
++authenticate themselves to connect and use one of a restricted set of
++IP addresses, even when the local host generally requires
++authentication. If the peer refuses to authenticate itself when
++requested, pppd takes that as equivalent to authenticating with PAP
++using the empty string for the username and password. Thus, by adding
++a line to the pap-secrets file which specifies the empty string for
++the client and password, it is possible to allow restricted access to
++hosts which refuse to authenticate themselves.
++.SH ROUTING
++.LP
++When IPCP negotiation is completed successfully, pppd will inform the
++kernel of the local and remote IP addresses for the ppp interface.
++This is sufficient to create a host route to the remote end of the
++link, which will enable the peers to exchange IP packets.
++Communication with other machines generally requires further
++modification to routing tables and/or ARP (Address Resolution
++Protocol) tables. In most cases the \fIdefaultroute\fR and/or
++\fIproxyarp\fR options are sufficient for this, but in some cases
++further intervention is required. The /etc/ppp/ip-up script can be
++used for this.
++.LP
++Sometimes it is desirable to add a default route through the remote
++host, as in the case of a machine whose only connection to the
++Internet is through the ppp interface. The \fIdefaultroute\fR option
++causes pppd to create such a default route when IPCP comes up, and
++delete it when the link is terminated.
++.LP
++In some cases it is desirable to use proxy ARP, for example on a
++server machine connected to a LAN, in order to allow other hosts to
++communicate with the remote host. The \fIproxyarp\fR option causes
++pppd to look for a network interface on the same subnet as the remote
++host (an interface supporting broadcast and ARP, which is up and not a
++point-to-point or loopback interface). If found, pppd creates a
++permanent, published ARP entry with the IP address of the remote host
++and the hardware address of the network interface found.
++.LP
++When the \fIdemand\fR option is used, the interface IP addresses have
++already been set at the point when IPCP comes up. If pppd has not
++been able to negotiate the same addresses that it used to configure
++the interface (for example when the peer is an ISP that uses dynamic
++IP address assignment), pppd has to change the interface IP addresses
++to the negotiated addresses. This may disrupt existing connections,
++and the use of demand dialling with peers that do dynamic IP address
++assignment is not recommended.
++.SH MULTILINK
++Multilink PPP provides the capability to combine two or more PPP links
++between a pair of machines into a single `bundle', which appears as a
++single virtual PPP link which has the combined bandwidth of the
++individual links. Currently, multilink PPP is only supported under
++Linux.
++.LP
++Pppd detects that the link it is controlling is connected to the same
++peer as another link using the peer's endpoint discriminator and the
++authenticated identity of the peer (if it authenticates itself). The
++endpoint discriminator is a block of data which is hopefully unique
++for each peer. Several types of data can be used, including
++locally-assigned strings of bytes, IP addresses, MAC addresses,
++randomly strings of bytes, or E-164 phone numbers. The endpoint
++discriminator sent to the peer by pppd can be set using the endpoint
++option.
++.LP
++In circumstances the peer may send no endpoint discriminator or a
++non-unique value. The optional bundle option adds an extra string
++which is added to the peer's endpoint discriminator and authenticated
++identity when matching up links to be joined together in a bundle.
++The bundle option can also be used to allow the establishment of
++multiple bundles between the local system and the peer. Pppd uses a
++TDB database in /var/run/pppd.tdb to match up links.
++.LP
++Assuming that multilink is enabled and the peer is willing to
++negotiate multilink, then when pppd is invoked to bring up the first
++link to the peer, it will detect that no other link is connected to
++the peer and create a new bundle, that is, another ppp network
++interface unit. When another pppd is invoked to bring up another link
++to the peer, it will detect the existing bundle and join its link to
++it. Currently, if the first pppd terminates (for example, because of
++a hangup or a received signal) the bundle is destroyed.
++.SH EXAMPLES
++.LP
++The following examples assume that the /etc/ppp/options file contains
++the \fIauth\fR option (as in the default /etc/ppp/options file in the
++ppp distribution).
++.LP
++Probably the most common use of pppd is to dial out to an ISP. This
++can be done with a command such as
++.IP
++pppd call isp
++.LP
++where the /etc/ppp/peers/isp file is set up by the system
++administrator to contain something like this:
++.IP
++ttyS0 19200 crtscts
++.br
++connect '/usr/sbin/chat -v -f /etc/ppp/chat-isp'
++.br
++noauth
++.LP
++In this example, we are using chat to dial the ISP's modem and go
++through any logon sequence required. The /etc/ppp/chat-isp file
++contains the script used by chat; it could for example contain
++something like this:
++.IP
++ABORT &quot;NO CARRIER&quot;
++.br
++ABORT &quot;NO DIALTONE&quot;
++.br
++ABORT &quot;ERROR&quot;
++.br
++ABORT &quot;NO ANSWER&quot;
++.br
++ABORT &quot;BUSY&quot;
++.br
++ABORT &quot;Username/Password Incorrect&quot;
++.br
++&quot;&quot; &quot;at&quot;
++.br
++OK &quot;at&amp;d0&amp;c1&quot;
++.br
++OK &quot;atdt2468135&quot;
++.br
++&quot;name:&quot; &quot;^Umyuserid&quot;
++.br
++&quot;word:&quot; &quot;\\qmypassword&quot;
++.br
++&quot;ispts&quot; &quot;\\q^Uppp&quot;
++.br
++&quot;~-^Uppp-~&quot;
++.LP
++See the chat(8) man page for details of chat scripts.
++.LP
++Pppd can also be used to provide a dial-in ppp service for users. If
++the users already have login accounts, the simplest way to set up the
++ppp service is to let the users log in to their accounts and run pppd
++(installed setuid-root) with a command such as
++.IP
++pppd proxyarp
++.LP
++To allow a user to use the PPP facilities, you need to allocate an IP
++address for that user's machine and create an entry in
++/etc/ppp/pap-secrets or /etc/ppp/chap-secrets (depending on which
++authentication method the PPP implementation on the user's machine
++supports), so that the user's
++machine can authenticate itself. For example, if Joe has a machine
++called &quot;joespc&quot; which is to be allowed to dial in to the machine
++called &quot;server&quot; and use the IP address joespc.my.net, you would add an
++entry like this to /etc/ppp/pap-secrets or /etc/ppp/chap-secrets:
++.IP
++joespc server &quot;joe's secret&quot; joespc.my.net
++.LP
++Alternatively, you can create a username called (for example) &quot;ppp&quot;,
++whose login shell is pppd and whose home directory is /etc/ppp.
++Options to be used when pppd is run this way can be put in
++/etc/ppp/.ppprc.
++.LP
++If your serial connection is any more complicated than a piece of
++wire, you may need to arrange for some control characters to be
++escaped. In particular, it is often useful to escape XON (^Q) and
++XOFF (^S), using \fIasyncmap a0000\fR. If the path includes a telnet,
++you probably should escape ^] as well (\fIasyncmap 200a0000\fR). If
++the path includes an rlogin, you will need to use the \fIescape ff\fR
++option on the end which is running the rlogin client, since many
++rlogin implementations are not transparent; they will remove the
++sequence [0xff, 0xff, 0x73, 0x73, followed by any 8 bytes] from the
++stream.
++.SH DIAGNOSTICS
++.LP
++Messages are sent to the syslog daemon using facility LOG_DAEMON.
++(This can be overriden by recompiling pppd with the macro
++LOG_PPP defined as the desired facility.) In order to see the error
++and debug messages, you will need to edit your /etc/syslog.conf file
++to direct the messages to the desired output device or file.
++.LP
++The \fIdebug\fR option causes the contents of all control packets sent
++or received to be logged, that is, all LCP, PAP, CHAP or IPCP packets.
++This can be useful if the PPP negotiation does not succeed or if
++authentication fails.
++If debugging is enabled at compile time, the \fIdebug\fR option also
++causes other debugging messages to be logged.
++.LP
++Debugging can also be enabled or disabled by sending a SIGUSR1 signal
++to the pppd process. This signal acts as a toggle.
++.SH EXIT STATUS
++The exit status of pppd is set to indicate whether any error was
++detected, or the reason for the link being terminated. The values
++used are:
++.TP
++.B 0
++Pppd has detached, or otherwise the connection was successfully
++established and terminated at the peer's request.
++.TP
++.B 1
++An immediately fatal error of some kind occurred, such as an essential
++system call failing, or running out of virtual memory.
++.TP
++.B 2
++An error was detected in processing the options given, such as two
++mutually exclusive options being used.
++.TP
++.B 3
++Pppd is not setuid-root and the invoking user is not root.
++.TP
++.B 4
++The kernel does not support PPP, for example, the PPP kernel driver is
++not included or cannot be loaded.
++.TP
++.B 5
++Pppd terminated because it was sent a SIGINT, SIGTERM or SIGHUP
++signal.
++.TP
++.B 6
++The serial port could not be locked.
++.TP
++.B 7
++The serial port could not be opened.
++.TP
++.B 8
++The connect script failed (returned a non-zero exit status).
++.TP
++.B 9
++The command specified as the argument to the \fIpty\fR option could
++not be run.
++.TP
++.B 10
++The PPP negotiation failed, that is, it didn't reach the point where
++at least one network protocol (e.g. IP) was running.
++.TP
++.B 11
++The peer system failed (or refused) to authenticate itself.
++.TP
++.B 12
++The link was established successfully and terminated because it was
++idle.
++.TP
++.B 13
++The link was established successfully and terminated because the
++connect time limit was reached.
++.TP
++.B 14
++Callback was negotiated and an incoming call should arrive shortly.
++.TP
++.B 15
++The link was terminated because the peer is not responding to echo
++requests.
++.TP
++.B 16
++The link was terminated by the modem hanging up.
++.TP
++.B 17
++The PPP negotiation failed because serial loopback was detected.
++.TP
++.B 18
++The init script failed (returned a non-zero exit status).
++.TP
++.B 19
++We failed to authenticate ourselves to the peer.
++.SH SCRIPTS
++Pppd invokes scripts at various stages in its processing which can be
++used to perform site-specific ancillary processing. These scripts are
++usually shell scripts, but could be executable code files instead.
++Pppd does not wait for the scripts to finish. The scripts are
++executed as root (with the real and effective user-id set to 0), so
++that they can do things such as update routing tables or run
++privileged daemons. Be careful that the contents of these scripts do
++not compromise your system's security. Pppd runs the scripts with
++standard input, output and error redirected to /dev/null, and with an
++environment that is empty except for some environment variables that
++give information about the link. The environment variables that pppd
++sets are:
++.TP
++.B DEVICE
++The name of the serial tty device being used.
++.TP
++.B IFNAME
++The name of the network interface being used.
++.TP
++.B IPLOCAL
++The IP address for the local end of the link. This is only set when
++IPCP has come up.
++.TP
++.B IPREMOTE
++The IP address for the remote end of the link. This is only set when
++IPCP has come up.
++.TP
++.B PEERNAME
++The authenticated name of the peer. This is only set if the peer
++authenticates itself.
++.TP
++.B SPEED
++The baud rate of the tty device.
++.TP
++.B ORIG_UID
++The real user-id of the user who invoked pppd.
++.TP
++.B PPPLOGNAME
++The username of the real user-id that invoked pppd. This is always set.
++.P
++For the ip-down and auth-down scripts, pppd also sets the following
++variables giving statistics for the connection:
++.TP
++.B CONNECT_TIME
++The number of seconds from when the PPP negotiation started until the
++connection was terminated.
++.TP
++.B BYTES_SENT
++The number of bytes sent (at the level of the serial port) during the
++connection.
++.TP
++.B BYTES_RCVD
++The number of bytes received (at the level of the serial port) during
++the connection.
++.TP
++.B LINKNAME
++The logical name of the link, set with the \fIlinkname\fR option.
++.P
++Pppd invokes the following scripts, if they exist. It is not an error
++if they don't exist.
++.TP
++.B /etc/ppp/auth-up
++A program or script which is executed after the remote system
++successfully authenticates itself. It is executed with the parameters
++.IP
++\fIinterface-name peer-name user-name tty-device speed\fR
++.IP
++Note that this script is not executed if the peer doesn't authenticate
++itself, for example when the \fInoauth\fR option is used.
++.TP
++.B /etc/ppp/auth-down
++A program or script which is executed when the link goes down, if
++/etc/ppp/auth-up was previously executed. It is executed in the same
++manner with the same parameters as /etc/ppp/auth-up.
++.TP
++.B /etc/ppp/ip-up
++A program or script which is executed when the link is available for
++sending and receiving IP packets (that is, IPCP has come up). It is
++executed with the parameters
++.IP
++\fIinterface-name tty-device speed local-IP-address
++remote-IP-address ipparam\fR
++.TP
++.B /etc/ppp/ip-down
++A program or script which is executed when the link is no longer
++available for sending and receiving IP packets. This script can be
++used for undoing the effects of the /etc/ppp/ip-up script. It is
++invoked in the same manner and with the same parameters as the ip-up
++script.
++.TP
++.B /etc/ppp/ipv6-up
++Like /etc/ppp/ip-up, except that it is executed when the link is available
++for sending and receiving IPv6 packets. It is executed with the parameters
++.IP
++\fIinterface-name tty-device speed local-link-local-address
++remote-link-local-address ipparam\fR
++.TP
++.B /etc/ppp/ipv6-down
++Similar to /etc/ppp/ip-down, but it is executed when IPv6 packets can no
++longer be transmitted on the link. It is executed with the same parameters
++as the ipv6-up script.
++.TP
++.B /etc/ppp/ipx-up
++A program or script which is executed when the link is available for
++sending and receiving IPX packets (that is, IPXCP has come up). It is
++executed with the parameters
++.IP
++\fIinterface-name tty-device speed network-number local-IPX-node-address
++remote-IPX-node-address local-IPX-routing-protocol remote-IPX-routing-protocol
++local-IPX-router-name remote-IPX-router-name ipparam pppd-pid\fR
++.IP
++The local-IPX-routing-protocol and remote-IPX-routing-protocol field
++may be one of the following:
++.IP
++NONE to indicate that there is no routing protocol
++.br
++RIP to indicate that RIP/SAP should be used
++.br
++NLSP to indicate that Novell NLSP should be used
++.br
++RIP NLSP to indicate that both RIP/SAP and NLSP should be used
++.TP
++.B /etc/ppp/ipx-down
++A program or script which is executed when the link is no longer
++available for sending and receiving IPX packets. This script can be
++used for undoing the effects of the /etc/ppp/ipx-up script. It is
++invoked in the same manner and with the same parameters as the ipx-up
++script.
++.SH FILES
++.TP
++.B /var/run/ppp\fIn\fB.pid \fR(BSD or Linux), \fB/etc/ppp/ppp\fIn\fB.pid \fR(others)
++Process-ID for pppd process on ppp interface unit \fIn\fR.
++.TP
++.B /var/run/ppp-\fIname\fB.pid \fR(BSD or Linux), \fB/etc/ppp/ppp-\fIname\fB.pid \fR(others)
++Process-ID for pppd process for logical link \fIname\fR (see the
++\fIlinkname\fR option).
++.TP
++.B /etc/ppp/pap-secrets
++Usernames, passwords and IP addresses for PAP authentication. This
++file should be owned by root and not readable or writable by any other
++user. Pppd will log a warning if this is not the case.
++.TP
++.B /etc/ppp/chap-secrets
++Names, secrets and IP addresses for CHAP authentication. As for
++/etc/ppp/pap-secrets, this file should be owned by root and not
++readable or writable by any other user. Pppd will log a warning if
++this is not the case.
++.TP
++.B /etc/ppp/options
++System default options for pppd, read before user default options or
++command-line options.
++.TP
++.B ~/.ppprc
++User default options, read before /etc/ppp/options.\fIttyname\fR.
++.TP
++.B /etc/ppp/options.\fIttyname
++System default options for the serial port being used, read after
++~/.ppprc. In forming the \fIttyname\fR part of this
++filename, an initial /dev/ is stripped from the port name (if
++present), and any slashes in the remaining part are converted to
++dots.
++.TP
++.B /etc/ppp/peers
++A directory containing options files which may contain privileged
++options, even if pppd was invoked by a user other than root. The
++system administrator can create options files in this directory to
++permit non-privileged users to dial out without requiring the peer to
++authenticate, but only to certain trusted peers.
++.SH SEE ALSO
++.TP
++.B RFC1144
++Jacobson, V.
++\fICompressing TCP/IP headers for low-speed serial links.\fR
++February 1990.
++.TP
++.B RFC1321
++Rivest, R.
++.I The MD5 Message-Digest Algorithm.
++April 1992.
++.TP
++.B RFC1332
++McGregor, G.
++.I PPP Internet Protocol Control Protocol (IPCP).
++May 1992.
++.TP
++.B RFC1334
++Lloyd, B.; Simpson, W.A.
++.I PPP authentication protocols.
++October 1992.
++.TP
++.B RFC1661
++Simpson, W.A.
++.I The Point\-to\-Point Protocol (PPP).
++July 1994.
++.TP
++.B RFC1662
++Simpson, W.A.
++.I PPP in HDLC-like Framing.
++July 1994.
++.TP
++.B RFC2472
++Haskin, D.
++.I IP Version 6 over PPP
++December 1998.
++.SH NOTES
++The following signals have the specified effect when sent to pppd.
++.TP
++.B SIGINT, SIGTERM
++These signals cause pppd to terminate the link (by closing LCP),
++restore the serial device settings, and exit.
++.TP
++.B SIGHUP
++This signal causes pppd to terminate the link, restore the serial
++device settings, and close the serial device. If the \fIpersist\fR or
++\fIdemand\fR option has been specified, pppd will try to reopen the
++serial device and start another connection (after the holdoff period).
++Otherwise pppd will exit. If this signal is received during the
++holdoff period, it causes pppd to end the holdoff period immediately.
++.TP
++.B SIGUSR1
++This signal toggles the state of the \fIdebug\fR option.
++.TP
++.B SIGUSR2
++This signal causes pppd to renegotiate compression. This can be
++useful to re-enable compression after it has been disabled as a result
++of a fatal decompression error. (Fatal decompression errors generally
++indicate a bug in one or other implementation.)
++
++.SH AUTHORS
++Paul Mackerras (Paul.Mackerras@cs.anu.edu.au), based on earlier work by
++Drew Perkins,
++Brad Clements,
++Karl Fox,
++Greg Christy,
++and
++Brad Parker.
+
+<a id="drakxtrunkmdkstage1ppppppdpppdh">Added: drakx/trunk/mdk-stage1/ppp/pppd/pppd.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/pppd.h (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/pppd.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,787 @@
++/*
++ * pppd.h - PPP daemon global declarations.
++ *
++ * Copyright (c) 1989 Carnegie Mellon University.
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms are permitted
++ * provided that the above copyright notice and this paragraph are
++ * duplicated in all such forms and that any documentation,
++ * advertising materials, and other materials related to such
++ * distribution and use acknowledge that the software was developed
++ * by Carnegie Mellon University. The name of the
++ * University may not be used to endorse or promote products derived
++ * from this software without specific prior written permission.
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
++ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
++ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++ *
++ * $Id: pppd.h 195720 2001-06-11 11:44:34Z gc $
++ */
++
++/*
++ * TODO:
++ */
++
++#ifndef __PPPD_H__
++#define __PPPD_H__
++
++#include &lt;stdio.h&gt; /* for FILE */
++#include &lt;limits.h&gt; /* for NGROUPS_MAX */
++#include &lt;sys/param.h&gt; /* for MAXPATHLEN and BSD4_4, if defined */
++#include &lt;sys/types.h&gt; /* for u_int32_t, if defined */
++#include &lt;sys/time.h&gt; /* for struct timeval */
++#include &lt;net/ppp_defs.h&gt;
++#include &quot;patchlevel.h&quot;
++
++#if defined(__STDC__)
++#include &lt;stdarg.h&gt;
++#define __V(x) x
++#else
++#include &lt;varargs.h&gt;
++#define __V(x) (va_alist) va_dcl
++#define const
++#define volatile
++#endif
++
++#ifdef INET6
++#include &quot;eui64.h&quot;
++#endif
++
++/*
++ * Limits.
++ */
++
++#define NUM_PPP 1 /* One PPP interface supported (per process) */
++#define MAXWORDLEN 1024 /* max length of word in file (incl null) */
++#define MAXARGS 1 /* max # args to a command */
++#define MAXNAMELEN 256 /* max length of hostname or name for auth */
++#define MAXSECRETLEN 256 /* max length of password or secret */
++
++/*
++ * Option descriptor structure.
++ */
++
++typedef unsigned char bool;
++
++enum opt_type {
++ o_special_noarg = 0,
++ o_special = 1,
++ o_bool,
++ o_int,
++ o_uint32,
++ o_string,
++ o_wild,
++};
++
++typedef struct {
++ char *name; /* name of the option */
++ enum opt_type type;
++ void *addr;
++ char *description;
++ int flags;
++ void *addr2;
++ int upper_limit;
++ int lower_limit;
++ const char *source;
++ short int priority;
++ short int winner;
++} option_t;
++
++/* Values for flags */
++#define OPT_VALUE 0xff /* mask for presupplied value */
++#define OPT_HEX 0x100 /* int option is in hex */
++#define OPT_NOARG 0x200 /* option doesn't take argument */
++#define OPT_OR 0x400 /* OR in argument to value */
++#define OPT_INC 0x800 /* increment value */
++#define OPT_PRIV 0x1000 /* privileged option */
++#define OPT_STATIC 0x2000 /* string option goes into static array */
++#define OPT_LLIMIT 0x4000 /* check value against lower limit */
++#define OPT_ULIMIT 0x8000 /* check value against upper limit */
++#define OPT_LIMITS (OPT_LLIMIT|OPT_ULIMIT)
++#define OPT_ZEROOK 0x10000 /* 0 value is OK even if not within limits */
++#define OPT_HIDE 0x10000 /* for o_string, print value as ?????? */
++#define OPT_A2LIST 0x10000 /* for o_special, keep list of values */
++#define OPT_NOINCR 0x20000 /* value mustn't be increased */
++#define OPT_ZEROINF 0x40000 /* with OPT_NOINCR, 0 == infinity */
++#define OPT_PRIO 0x80000 /* process option priorities for this option */
++#define OPT_PRIOSUB 0x100000 /* subsidiary member of priority group */
++#define OPT_ALIAS 0x200000 /* option is alias for previous option */
++#define OPT_A2COPY 0x400000 /* addr2 -&gt; second location to rcv value */
++#define OPT_ENABLE 0x800000 /* use *addr2 as enable for option */
++#define OPT_A2CLR 0x1000000 /* clear *(bool *)addr2 */
++#define OPT_PRIVFIX 0x2000000 /* user can't override if set by root */
++#define OPT_INITONLY 0x4000000 /* option can only be set in init phase */
++#define OPT_DEVEQUIV 0x8000000 /* equiv to device name */
++#define OPT_DEVNAM (OPT_INITONLY | OPT_DEVEQUIV)
++#define OPT_A2PRINTER 0x10000000 /* *addr2 is a fn for printing option */
++#define OPT_A2STRVAL 0x20000000 /* *addr2 points to current string value */
++#define OPT_NOPRINT 0x40000000 /* don't print this option at all */
++
++#define OPT_VAL(x) ((x) &amp; OPT_VALUE)
++
++/* Values for priority */
++#define OPRIO_DEFAULT 0 /* a default value */
++#define OPRIO_CFGFILE 1 /* value from a configuration file */
++#define OPRIO_CMDLINE 2 /* value from the command line */
++#define OPRIO_SECFILE 3 /* value from options in a secrets file */
++#define OPRIO_ROOT 100 /* added to priority if OPT_PRIVFIX &amp;&amp; root */
++
++#ifndef GIDSET_TYPE
++#define GIDSET_TYPE gid_t
++#endif
++
++/* Structure representing a list of permitted IP addresses. */
++struct permitted_ip {
++ int permit; /* 1 = permit, 0 = forbid */
++ u_int32_t base; /* match if (addr &amp; mask) == base */
++ u_int32_t mask; /* base and mask are in network byte order */
++};
++
++/*
++ * Unfortunately, the linux kernel driver uses a different structure
++ * for statistics from the rest of the ports.
++ * This structure serves as a common representation for the bits
++ * pppd needs.
++ */
++struct pppd_stats {
++ unsigned int bytes_in;
++ unsigned int bytes_out;
++};
++
++/* Used for storing a sequence of words. Usually malloced. */
++struct wordlist {
++ struct wordlist *next;
++ char *word;
++};
++
++/* An endpoint discriminator, used with multilink. */
++#define MAX_ENDP_LEN 20 /* maximum length of discriminator value */
++struct epdisc {
++ unsigned char class;
++ unsigned char length;
++ unsigned char value[MAX_ENDP_LEN];
++};
++
++/* values for epdisc.class */
++#define EPD_NULL 0 /* null discriminator, no data */
++#define EPD_LOCAL 1
++#define EPD_IP 2
++#define EPD_MAC 3
++#define EPD_MAGIC 4
++#define EPD_PHONENUM 5
++
++typedef void (*notify_func) __P((void *, int));
++
++struct notifier {
++ struct notifier *next;
++ notify_func func;
++ void *arg;
++};
++
++/*
++ * Global variables.
++ */
++
++extern int hungup; /* Physical layer has disconnected */
++extern int ifunit; /* Interface unit number */
++extern char ifname[]; /* Interface name */
++extern char hostname[]; /* Our hostname */
++extern u_char outpacket_buf[]; /* Buffer for outgoing packets */
++extern int phase; /* Current state of link - see values below */
++extern int baud_rate; /* Current link speed in bits/sec */
++extern char *progname; /* Name of this program */
++extern int redirect_stderr;/* Connector's stderr should go to file */
++extern char peer_authname[];/* Authenticated name of peer */
++extern int privileged; /* We were run by real-uid root */
++extern int need_holdoff; /* Need holdoff period after link terminates */
++extern char **script_env; /* Environment variables for scripts */
++extern int detached; /* Have detached from controlling tty */
++extern GIDSET_TYPE groups[NGROUPS_MAX]; /* groups the user is in */
++extern int ngroups; /* How many groups valid in groups */
++extern struct pppd_stats link_stats; /* byte/packet counts etc. for link */
++extern int link_stats_valid; /* set if link_stats is valid */
++extern int link_connect_time; /* time the link was up for */
++extern int using_pty; /* using pty as device (notty or pty opt.) */
++extern int log_to_fd; /* logging to this fd as well as syslog */
++extern bool log_default; /* log_to_fd is default (stdout) */
++extern char *no_ppp_msg; /* message to print if ppp not in kernel */
++extern volatile int status; /* exit status for pppd */
++extern bool devnam_fixed; /* can no longer change devnam */
++extern int unsuccess; /* # unsuccessful connection attempts */
++extern int do_callback; /* set if we want to do callback next */
++extern int doing_callback; /* set if this is a callback */
++extern char ppp_devnam[MAXPATHLEN];
++extern struct notifier *pidchange; /* for notifications of pid changing */
++extern struct notifier *phasechange; /* for notifications of phase changes */
++extern struct notifier *exitnotify; /* for notification that we're exiting */
++extern struct notifier *sigreceived; /* notification of received signal */
++extern int listen_time; /* time to listen first (ms) */
++
++/* Values for do_callback and doing_callback */
++#define CALLBACK_DIALIN 1 /* we are expecting the call back */
++#define CALLBACK_DIALOUT 2 /* we are dialling out to call back */
++
++/*
++ * Variables set by command-line options.
++ */
++
++extern int debug; /* Debug flag */
++extern int kdebugflag; /* Tell kernel to print debug messages */
++extern int default_device; /* Using /dev/tty or equivalent */
++extern char devnam[MAXPATHLEN]; /* Device name */
++extern int crtscts; /* Use hardware flow control */
++extern bool modem; /* Use modem control lines */
++extern int inspeed; /* Input/Output speed requested */
++extern u_int32_t netmask; /* IP netmask to set on interface */
++extern bool lockflag; /* Create lock file to lock the serial dev */
++extern bool nodetach; /* Don't detach from controlling tty */
++extern bool updetach; /* Detach from controlling tty when link up */
++extern char *initializer; /* Script to initialize physical link */
++extern char *connect_script; /* Script to establish physical link */
++extern char *disconnect_script; /* Script to disestablish physical link */
++extern char *welcomer; /* Script to welcome client after connection */
++extern char *ptycommand; /* Command to run on other side of pty */
++extern int maxconnect; /* Maximum connect time (seconds) */
++extern char user[MAXNAMELEN];/* Our name for authenticating ourselves */
++extern char passwd[MAXSECRETLEN]; /* Password for PAP or CHAP */
++extern bool auth_required; /* Peer is required to authenticate */
++extern bool persist; /* Reopen link after it goes down */
++extern bool uselogin; /* Use /etc/passwd for checking PAP */
++extern char our_name[MAXNAMELEN];/* Our name for authentication purposes */
++extern char remote_name[MAXNAMELEN]; /* Peer's name for authentication */
++extern bool explicit_remote;/* remote_name specified with remotename opt */
++extern bool demand; /* Do dial-on-demand */
++extern char *ipparam; /* Extra parameter for ip up/down scripts */
++extern bool cryptpap; /* Others' PAP passwords are encrypted */
++extern int idle_time_limit;/* Shut down link if idle for this long */
++extern int holdoff; /* Dead time before restarting */
++extern bool holdoff_specified; /* true if user gave a holdoff value */
++extern bool notty; /* Stdin/out is not a tty */
++extern char *pty_socket; /* Socket to connect to pty */
++extern char *record_file; /* File to record chars sent/received */
++extern bool sync_serial; /* Device is synchronous serial device */
++extern int maxfail; /* Max # of unsuccessful connection attempts */
++extern char linkname[MAXPATHLEN]; /* logical name for link */
++extern bool tune_kernel; /* May alter kernel settings as necessary */
++extern int connect_delay; /* Time to delay after connect script */
++extern int max_data_rate; /* max bytes/sec through charshunt */
++extern int req_unit; /* interface unit number to use */
++extern bool multilink; /* enable multilink operation */
++extern bool noendpoint; /* don't send or accept endpt. discrim. */
++extern char *bundle_name; /* bundle name for multilink */
++extern bool dump_options; /* print out option values */
++extern bool dryrun; /* check everything, print options, exit */
++
++#ifdef PPP_FILTER
++extern struct bpf_program pass_filter; /* Filter for pkts to pass */
++extern struct bpf_program active_filter; /* Filter for link-active pkts */
++#endif
++
++#ifdef MSLANMAN
++extern bool ms_lanman; /* Use LanMan password instead of NT */
++ /* Has meaning only with MS-CHAP challenges */
++#endif
++
++extern char *current_option; /* the name of the option being parsed */
++extern int privileged_option; /* set iff the current option came from root */
++extern char *option_source; /* string saying where the option came from */
++extern int option_priority; /* priority of current options */
++
++/*
++ * Values for phase.
++ */
++#define PHASE_DEAD 0
++#define PHASE_INITIALIZE 1
++#define PHASE_SERIALCONN 2
++#define PHASE_DORMANT 3
++#define PHASE_ESTABLISH 4
++#define PHASE_AUTHENTICATE 5
++#define PHASE_CALLBACK 6
++#define PHASE_NETWORK 7
++#define PHASE_RUNNING 8
++#define PHASE_TERMINATE 9
++#define PHASE_DISCONNECT 10
++#define PHASE_HOLDOFF 11
++
++/*
++ * The following struct gives the addresses of procedures to call
++ * for a particular protocol.
++ */
++struct protent {
++ u_short protocol; /* PPP protocol number */
++ /* Initialization procedure */
++ void (*init) __P((int unit));
++ /* Process a received packet */
++ void (*input) __P((int unit, u_char *pkt, int len));
++ /* Process a received protocol-reject */
++ void (*protrej) __P((int unit));
++ /* Lower layer has come up */
++ void (*lowerup) __P((int unit));
++ /* Lower layer has gone down */
++ void (*lowerdown) __P((int unit));
++ /* Open the protocol */
++ void (*open) __P((int unit));
++ /* Close the protocol */
++ void (*close) __P((int unit, char *reason));
++ /* Print a packet in readable form */
++ int (*printpkt) __P((u_char *pkt, int len,
++ void (*printer) __P((void *, char *, ...)),
++ void *arg));
++ /* Process a received data packet */
++ void (*datainput) __P((int unit, u_char *pkt, int len));
++ bool enabled_flag; /* 0 iff protocol is disabled */
++ char *name; /* Text name of protocol */
++ char *data_name; /* Text name of corresponding data protocol */
++ option_t *options; /* List of command-line options */
++ /* Check requested options, assign defaults */
++ void (*check_options) __P((void));
++ /* Configure interface for demand-dial */
++ int (*demand_conf) __P((int unit));
++ /* Say whether to bring up link for this pkt */
++ int (*active_pkt) __P((u_char *pkt, int len));
++};
++
++/* Table of pointers to supported protocols */
++extern struct protent *protocols[];
++
++/*
++ * This struct contains pointers to a set of procedures for
++ * doing operations on a &quot;channel&quot;. A channel provides a way
++ * to send and receive PPP packets - the canonical example is
++ * a serial port device in PPP line discipline (or equivalently
++ * with PPP STREAMS modules pushed onto it).
++ */
++struct channel {
++ /* set of options for this channel */
++ option_t *options;
++ /* find and process a per-channel options file */
++ void (*process_extra_options) __P((void));
++ /* check all the options that have been given */
++ void (*check_options) __P((void));
++ /* get the channel ready to do PPP, return a file descriptor */
++ int (*connect) __P((void));
++ /* we're finished with the channel */
++ void (*disconnect) __P((void));
++ /* put the channel into PPP `mode' */
++ int (*establish_ppp) __P((int));
++ /* take the channel out of PPP `mode', restore loopback if demand */
++ void (*disestablish_ppp) __P((int));
++ /* set the transmit-side PPP parameters of the channel */
++ void (*send_config) __P((int, u_int32_t, int, int));
++ /* set the receive-side PPP parameters of the channel */
++ void (*recv_config) __P((int, u_int32_t, int, int));
++ /* cleanup on error or normal exit */
++ void (*cleanup) __P((void));
++ /* close the device, called in children after fork */
++ void (*close) __P((void));
++};
++
++extern struct channel *the_channel;
++
++#define ppp_send_config(unit, mtu, accm, pc, acc) \
++do { \
++ if (the_channel-&gt;send_config) \
++ (*the_channel-&gt;send_config)((mtu), (accm), (pc), (acc)); \
++} while (0)
++
++#define ppp_recv_config(unit, mtu, accm, pc, acc) \
++do { \
++ if (the_channel-&gt;send_config) \
++ (*the_channel-&gt;recv_config)((mtu), (accm), (pc), (acc)); \
++} while (0)
++
++/*
++ * Prototypes.
++ */
++
++/* Procedures exported from main.c. */
++void set_ifunit __P((int)); /* set stuff that depends on ifunit */
++void detach __P((void)); /* Detach from controlling tty */
++void die __P((int)); /* Cleanup and exit */
++void quit __P((void)); /* like die(1) */
++void novm __P((char *)); /* Say we ran out of memory, and die */
++void timeout __P((void (*func)(void *), void *arg, int s, int us));
++ /* Call func(arg) after s.us seconds */
++void untimeout __P((void (*func)(void *), void *arg));
++ /* Cancel call to func(arg) */
++void record_child __P((int, char *, void (*) (void *), void *));
++int device_script __P((char *cmd, int in, int out, int dont_wait));
++ /* Run `cmd' with given stdin and stdout */
++pid_t run_program __P((char *prog, char **args, int must_exist,
++ void (*done)(void *), void *arg));
++ /* Run program prog with args in child */
++void reopen_log __P((void)); /* (re)open the connection to syslog */
++void update_link_stats __P((int)); /* Get stats at link termination */
++void script_setenv __P((char *, char *, int)); /* set script env var */
++void script_unsetenv __P((char *)); /* unset script env var */
++void new_phase __P((int)); /* signal start of new phase */
++void add_notifier __P((struct notifier **, notify_func, void *));
++void remove_notifier __P((struct notifier **, notify_func, void *));
++void notify __P((struct notifier *, int));
++
++/* Procedures exported from tty.c. */
++void tty_init __P((void));
++
++/* Procedures exported from utils.c. */
++void log_packet __P((u_char *, int, char *, int));
++ /* Format a packet and log it with syslog */
++void print_string __P((char *, int, void (*) (void *, char *, ...),
++ void *)); /* Format a string for output */
++int slprintf __P((char *, int, char *, ...)); /* sprintf++ */
++int vslprintf __P((char *, int, char *, va_list)); /* vsprintf++ */
++size_t strlcpy __P((char *, const char *, size_t)); /* safe strcpy */
++size_t strlcat __P((char *, const char *, size_t)); /* safe strncpy */
++void dbglog __P((char *, ...)); /* log a debug message */
++void info __P((char *, ...)); /* log an informational message */
++void notice __P((char *, ...)); /* log a notice-level message */
++void warn __P((char *, ...)); /* log a warning message */
++void error __P((char *, ...)); /* log an error message */
++void fatal __P((char *, ...)); /* log an error message and die(1) */
++void init_pr_log __P((char *, int)); /* initialize for using pr_log */
++void pr_log __P((void *, char *, ...)); /* printer fn, output to syslog */
++void end_pr_log __P((void)); /* finish up after using pr_log */
++
++/* Procedures exported from auth.c */
++void link_required __P((int)); /* we are starting to use the link */
++void link_terminated __P((int)); /* we are finished with the link */
++void link_down __P((int)); /* the LCP layer has left the Opened state */
++void link_established __P((int)); /* the link is up; authenticate now */
++void start_networks __P((void)); /* start all the network control protos */
++void np_up __P((int, int)); /* a network protocol has come up */
++void np_down __P((int, int)); /* a network protocol has gone down */
++void np_finished __P((int, int)); /* a network protocol no longer needs link */
++void auth_peer_fail __P((int, int));
++ /* peer failed to authenticate itself */
++void auth_peer_success __P((int, int, char *, int));
++ /* peer successfully authenticated itself */
++void auth_withpeer_fail __P((int, int));
++ /* we failed to authenticate ourselves */
++void auth_withpeer_success __P((int, int));
++ /* we successfully authenticated ourselves */
++void auth_check_options __P((void));
++ /* check authentication options supplied */
++void auth_reset __P((int)); /* check what secrets we have */
++int check_passwd __P((int, char *, int, char *, int, char **));
++ /* Check peer-supplied username/password */
++int get_secret __P((int, char *, char *, char *, int *, int));
++ /* get &quot;secret&quot; for chap */
++int auth_ip_addr __P((int, u_int32_t));
++ /* check if IP address is authorized */
++int bad_ip_adrs __P((u_int32_t));
++ /* check if IP address is unreasonable */
++
++/* Procedures exported from demand.c */
++void demand_conf __P((void)); /* config interface(s) for demand-dial */
++void demand_block __P((void)); /* set all NPs to queue up packets */
++void demand_unblock __P((void)); /* set all NPs to pass packets */
++void demand_discard __P((void)); /* set all NPs to discard packets */
++void demand_rexmit __P((int)); /* retransmit saved frames for an NP */
++int loop_chars __P((unsigned char *, int)); /* process chars from loopback */
++int loop_frame __P((unsigned char *, int)); /* should we bring link up? */
++
++/* Procedures exported from multilink.c */
++void mp_check_options __P((void)); /* Check multilink-related options */
++int mp_join_bundle __P((void)); /* join our link to an appropriate bundle */
++char *epdisc_to_str __P((struct epdisc *)); /* string from endpoint discrim. */
++int str_to_epdisc __P((struct epdisc *, char *)); /* endpt disc. from str */
++
++/* Procedures exported from sys-*.c */
++void sys_init __P((void)); /* Do system-dependent initialization */
++void sys_cleanup __P((void)); /* Restore system state before exiting */
++int sys_check_options __P((void)); /* Check options specified */
++void sys_close __P((void)); /* Clean up in a child before execing */
++int ppp_available __P((void)); /* Test whether ppp kernel support exists */
++int get_pty __P((int *, int *, char *, int)); /* Get pty master/slave */
++int open_ppp_loopback __P((void)); /* Open loopback for demand-dialling */
++int tty_establish_ppp __P((int)); /* Turn serial port into a ppp interface */
++void tty_disestablish_ppp __P((int)); /* Restore port to normal operation */
++void make_new_bundle __P((int, int, int, int)); /* Create new bundle */
++int bundle_attach __P((int)); /* Attach link to existing bundle */
++void cfg_bundle __P((int, int, int, int)); /* Configure existing bundle */
++void clean_check __P((void)); /* Check if line was 8-bit clean */
++void set_up_tty __P((int, int)); /* Set up port's speed, parameters, etc. */
++void restore_tty __P((int)); /* Restore port's original parameters */
++void setdtr __P((int, int)); /* Raise or lower port's DTR line */
++void output __P((int, u_char *, int)); /* Output a PPP packet */
++void wait_input __P((struct timeval *));
++ /* Wait for input, with timeout */
++void add_fd __P((int)); /* Add fd to set to wait for */
++void remove_fd __P((int)); /* Remove fd from set to wait for */
++int read_packet __P((u_char *)); /* Read PPP packet */
++int get_loop_output __P((void)); /* Read pkts from loopback */
++void tty_send_config __P((int, u_int32_t, int, int));
++ /* Configure i/f transmit parameters */
++void tty_set_xaccm __P((ext_accm));
++ /* Set extended transmit ACCM */
++void tty_recv_config __P((int, u_int32_t, int, int));
++ /* Configure i/f receive parameters */
++int ccp_test __P((int, u_char *, int, int));
++ /* Test support for compression scheme */
++void ccp_flags_set __P((int, int, int));
++ /* Set kernel CCP state */
++int ccp_fatal_error __P((int)); /* Test for fatal decomp error in kernel */
++int get_idle_time __P((int, struct ppp_idle *));
++ /* Find out how long link has been idle */
++int get_ppp_stats __P((int, struct pppd_stats *));
++ /* Return link statistics */
++void netif_set_mtu __P((int, int)); /* Set PPP interface MTU */
++int sifvjcomp __P((int, int, int, int));
++ /* Configure VJ TCP header compression */
++int sifup __P((int)); /* Configure i/f up for one protocol */
++int sifnpmode __P((int u, int proto, enum NPmode mode));
++ /* Set mode for handling packets for proto */
++int sifdown __P((int)); /* Configure i/f down for one protocol */
++int sifaddr __P((int, u_int32_t, u_int32_t, u_int32_t));
++ /* Configure IPv4 addresses for i/f */
++int cifaddr __P((int, u_int32_t, u_int32_t));
++ /* Reset i/f IP addresses */
++#ifdef INET6
++int sif6addr __P((int, eui64_t, eui64_t));
++ /* Configure IPv6 addresses for i/f */
++int cif6addr __P((int, eui64_t, eui64_t));
++ /* Remove an IPv6 address from i/f */
++#endif
++int sifdefaultroute __P((int, u_int32_t, u_int32_t));
++ /* Create default route through i/f */
++int cifdefaultroute __P((int, u_int32_t, u_int32_t));
++ /* Delete default route through i/f */
++int sifproxyarp __P((int, u_int32_t));
++ /* Add proxy ARP entry for peer */
++int cifproxyarp __P((int, u_int32_t));
++ /* Delete proxy ARP entry for peer */
++u_int32_t GetMask __P((u_int32_t)); /* Get appropriate netmask for address */
++int lock __P((char *)); /* Create lock file for device */
++int relock __P((int)); /* Rewrite lock file with new pid */
++void unlock __P((void)); /* Delete previously-created lock file */
++int get_host_seed __P((void)); /* Get host-dependent random number seed */
++int have_route_to __P((u_int32_t)); /* Check if route to addr exists */
++#ifdef PPP_FILTER
++int set_filters __P((struct bpf_program *pass, struct bpf_program *active));
++ /* Set filter programs in kernel */
++#endif
++#ifdef IPX_CHANGE
++int sipxfaddr __P((int, unsigned long, unsigned char *));
++int cipxfaddr __P((int));
++#endif
++int get_if_hwaddr __P((u_char *addr, char *name));
++char *get_first_ethernet __P((void));
++
++/* Procedures exported from options.c */
++int parse_args __P((int argc, char **argv));
++ /* Parse options from arguments given */
++int options_from_file __P((char *filename, int must_exist, int check_prot,
++ int privileged));
++ /* Parse options from an options file */
++int options_from_user __P((void)); /* Parse options from user's .ppprc */
++int options_for_tty __P((void)); /* Parse options from /etc/ppp/options.tty */
++int options_from_list __P((struct wordlist *, int privileged));
++ /* Parse options from a wordlist */
++int getword __P((FILE *f, char *word, int *newlinep, char *filename));
++ /* Read a word from a file */
++void option_error __P((char *fmt, ...));
++ /* Print an error message about an option */
++int int_option __P((char *, int *));
++ /* Simplified number_option for decimal ints */
++void add_options __P((option_t *)); /* Add extra options */
++void check_options __P((void)); /* check values after all options parsed */
++int override_value __P((const char *, int, const char *));
++ /* override value if permitted by priority */
++void print_options __P((void (*) __P((void *, char *, ...)), void *));
++ /* print out values of all options */
++
++int parse_dotted_ip __P((char *, u_int32_t *));
++
++/*
++ * Hooks to enable plugins to change various things.
++ */
++extern int (*new_phase_hook) __P((int));
++extern int (*idle_time_hook) __P((struct ppp_idle *));
++extern int (*holdoff_hook) __P((void));
++extern int (*pap_check_hook) __P((void));
++extern int (*pap_auth_hook) __P((char *user, char *passwd, char **msgp,
++ struct wordlist **paddrs,
++ struct wordlist **popts));
++extern void (*pap_logout_hook) __P((void));
++extern int (*pap_passwd_hook) __P((char *user, char *passwd));
++extern void (*ip_up_hook) __P((void));
++extern void (*ip_down_hook) __P((void));
++extern void (*ip_choose_hook) __P((u_int32_t *));
++
++/*
++ * Inline versions of get/put char/short/long.
++ * Pointer is advanced; we assume that both arguments
++ * are lvalues and will already be in registers.
++ * cp MUST be u_char *.
++ */
++#define GETCHAR(c, cp) { \
++ (c) = *(cp)++; \
++}
++#define PUTCHAR(c, cp) { \
++ *(cp)++ = (u_char) (c); \
++}
++
++
++#define GETSHORT(s, cp) { \
++ (s) = *(cp)++ &lt;&lt; 8; \
++ (s) |= *(cp)++; \
++}
++#define PUTSHORT(s, cp) { \
++ *(cp)++ = (u_char) ((s) &gt;&gt; 8); \
++ *(cp)++ = (u_char) (s); \
++}
++
++#define GETLONG(l, cp) { \
++ (l) = *(cp)++ &lt;&lt; 8; \
++ (l) |= *(cp)++; (l) &lt;&lt;= 8; \
++ (l) |= *(cp)++; (l) &lt;&lt;= 8; \
++ (l) |= *(cp)++; \
++}
++#define PUTLONG(l, cp) { \
++ *(cp)++ = (u_char) ((l) &gt;&gt; 24); \
++ *(cp)++ = (u_char) ((l) &gt;&gt; 16); \
++ *(cp)++ = (u_char) ((l) &gt;&gt; 8); \
++ *(cp)++ = (u_char) (l); \
++}
++
++#define INCPTR(n, cp) ((cp) += (n))
++#define DECPTR(n, cp) ((cp) -= (n))
++
++/*
++ * System dependent definitions for user-level 4.3BSD UNIX implementation.
++ */
++
++#define TIMEOUT(r, f, t) timeout((r), (f), (t), 0)
++#define UNTIMEOUT(r, f) untimeout((r), (f))
++
++#define BCOPY(s, d, l) memcpy(d, s, l)
++#define BZERO(s, n) memset(s, 0, n)
++
++#define PRINTMSG(m, l) { info(&quot;Remote message: %0.*v&quot;, l, m); }
++
++/*
++ * MAKEHEADER - Add Header fields to a packet.
++ */
++#define MAKEHEADER(p, t) { \
++ PUTCHAR(PPP_ALLSTATIONS, p); \
++ PUTCHAR(PPP_UI, p); \
++ PUTSHORT(t, p); }
++
++/*
++ * Exit status values.
++ */
++#define EXIT_OK 0
++#define EXIT_FATAL_ERROR 1
++#define EXIT_OPTION_ERROR 2
++#define EXIT_NOT_ROOT 3
++#define EXIT_NO_KERNEL_SUPPORT 4
++#define EXIT_USER_REQUEST 5
++#define EXIT_LOCK_FAILED 6
++#define EXIT_OPEN_FAILED 7
++#define EXIT_CONNECT_FAILED 8
++#define EXIT_PTYCMD_FAILED 9
++#define EXIT_NEGOTIATION_FAILED 10
++#define EXIT_PEER_AUTH_FAILED 11
++#define EXIT_IDLE_TIMEOUT 12
++#define EXIT_CONNECT_TIME 13
++#define EXIT_CALLBACK 14
++#define EXIT_PEER_DEAD 15
++#define EXIT_HANGUP 16
++#define EXIT_LOOPBACK 17
++#define EXIT_INIT_FAILED 18
++#define EXIT_AUTH_TOPEER_FAILED 19
++
++/*
++ * Debug macros. Slightly useful for finding bugs in pppd, not particularly
++ * useful for finding out why your connection isn't being established.
++ */
++#ifdef DEBUGALL
++#define DEBUGMAIN 1
++#define DEBUGFSM 1
++#define DEBUGLCP 1
++#define DEBUGIPCP 1
++#define DEBUGIPV6CP 1
++#define DEBUGUPAP 1
++#define DEBUGCHAP 1
++#endif
++
++#ifndef LOG_PPP /* we use LOG_LOCAL2 for syslog by default */
++#if defined(DEBUGMAIN) || defined(DEBUGFSM) || defined(DEBUGSYS) \
++ || defined(DEBUGLCP) || defined(DEBUGIPCP) || defined(DEBUGUPAP) \
++ || defined(DEBUGCHAP) || defined(DEBUG) || defined(DEBUGIPV6CP)
++#define LOG_PPP LOG_LOCAL2
++#else
++#define LOG_PPP LOG_DAEMON
++#endif
++#endif /* LOG_PPP */
++
++#ifdef DEBUGMAIN
++#define MAINDEBUG(x) if (debug) dbglog x
++#else
++#define MAINDEBUG(x)
++#endif
++
++#ifdef DEBUGSYS
++#define SYSDEBUG(x) if (debug) dbglog x
++#else
++#define SYSDEBUG(x)
++#endif
++
++#ifdef DEBUGFSM
++#define FSMDEBUG(x) if (debug) dbglog x
++#else
++#define FSMDEBUG(x)
++#endif
++
++#ifdef DEBUGLCP
++#define LCPDEBUG(x) if (debug) dbglog x
++#else
++#define LCPDEBUG(x)
++#endif
++
++#ifdef DEBUGIPCP
++#define IPCPDEBUG(x) if (debug) dbglog x
++#else
++#define IPCPDEBUG(x)
++#endif
++
++#ifdef DEBUGIPV6CP
++#define IPV6CPDEBUG(x) if (debug) dbglog x
++#else
++#define IPV6CPDEBUG(x)
++#endif
++
++#ifdef DEBUGUPAP
++#define UPAPDEBUG(x) if (debug) dbglog x
++#else
++#define UPAPDEBUG(x)
++#endif
++
++#ifdef DEBUGCHAP
++#define CHAPDEBUG(x) if (debug) dbglog x
++#else
++#define CHAPDEBUG(x)
++#endif
++
++#ifdef DEBUGIPXCP
++#define IPXCPDEBUG(x) if (debug) dbglog x
++#else
++#define IPXCPDEBUG(x)
++#endif
++
++#ifndef SIGTYPE
++#if defined(sun) || defined(SYSV) || defined(POSIX_SOURCE)
++#define SIGTYPE void
++#else
++#define SIGTYPE int
++#endif /* defined(sun) || defined(SYSV) || defined(POSIX_SOURCE) */
++#endif /* SIGTYPE */
++
++#ifndef MIN
++#define MIN(a, b) ((a) &lt; (b)? (a): (b))
++#endif
++#ifndef MAX
++#define MAX(a, b) ((a) &gt; (b)? (a): (b))
++#endif
++
++#endif /* __PPP_H__ */
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/pppd/pppd.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1ppppppdpppdhwtmp">Added: drakx/trunk/mdk-stage1/ppp/pppd/pppd.h.wtmp</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/pppd.h.wtmp (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/pppd.h.wtmp 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,789 @@
++/*
++ * pppd.h - PPP daemon global declarations.
++ *
++ * Copyright (c) 1989 Carnegie Mellon University.
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms are permitted
++ * provided that the above copyright notice and this paragraph are
++ * duplicated in all such forms and that any documentation,
++ * advertising materials, and other materials related to such
++ * distribution and use acknowledge that the software was developed
++ * by Carnegie Mellon University. The name of the
++ * University may not be used to endorse or promote products derived
++ * from this software without specific prior written permission.
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
++ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
++ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++ *
++ * $Id: pppd.h.wtmp 195720 2001-06-11 11:44:34Z gc $
++ */
++
++/*
++ * TODO:
++ */
++
++#ifndef __PPPD_H__
++#define __PPPD_H__
++
++#include &lt;stdio.h&gt; /* for FILE */
++#include &lt;limits.h&gt; /* for NGROUPS_MAX */
++#include &lt;sys/param.h&gt; /* for MAXPATHLEN and BSD4_4, if defined */
++#include &lt;sys/types.h&gt; /* for u_int32_t, if defined */
++#include &lt;sys/time.h&gt; /* for struct timeval */
++#include &lt;net/ppp_defs.h&gt;
++#include &quot;patchlevel.h&quot;
++
++#if defined(__STDC__)
++#include &lt;stdarg.h&gt;
++#define __V(x) x
++#else
++#include &lt;varargs.h&gt;
++#define __V(x) (va_alist) va_dcl
++#define const
++#define volatile
++#endif
++
++#ifdef INET6
++#include &quot;eui64.h&quot;
++#endif
++
++/*
++ * Limits.
++ */
++
++#define NUM_PPP 1 /* One PPP interface supported (per process) */
++#define MAXWORDLEN 1024 /* max length of word in file (incl null) */
++#define MAXARGS 1 /* max # args to a command */
++#define MAXNAMELEN 256 /* max length of hostname or name for auth */
++#define MAXSECRETLEN 256 /* max length of password or secret */
++
++/*
++ * Option descriptor structure.
++ */
++
++typedef unsigned char bool;
++
++enum opt_type {
++ o_special_noarg = 0,
++ o_special = 1,
++ o_bool,
++ o_int,
++ o_uint32,
++ o_string,
++ o_wild,
++};
++
++typedef struct {
++ char *name; /* name of the option */
++ enum opt_type type;
++ void *addr;
++ char *description;
++ int flags;
++ void *addr2;
++ int upper_limit;
++ int lower_limit;
++ const char *source;
++ short int priority;
++ short int winner;
++} option_t;
++
++/* Values for flags */
++#define OPT_VALUE 0xff /* mask for presupplied value */
++#define OPT_HEX 0x100 /* int option is in hex */
++#define OPT_NOARG 0x200 /* option doesn't take argument */
++#define OPT_OR 0x400 /* OR in argument to value */
++#define OPT_INC 0x800 /* increment value */
++#define OPT_PRIV 0x1000 /* privileged option */
++#define OPT_STATIC 0x2000 /* string option goes into static array */
++#define OPT_LLIMIT 0x4000 /* check value against lower limit */
++#define OPT_ULIMIT 0x8000 /* check value against upper limit */
++#define OPT_LIMITS (OPT_LLIMIT|OPT_ULIMIT)
++#define OPT_ZEROOK 0x10000 /* 0 value is OK even if not within limits */
++#define OPT_HIDE 0x10000 /* for o_string, print value as ?????? */
++#define OPT_A2LIST 0x10000 /* for o_special, keep list of values */
++#define OPT_NOINCR 0x20000 /* value mustn't be increased */
++#define OPT_ZEROINF 0x40000 /* with OPT_NOINCR, 0 == infinity */
++#define OPT_PRIO 0x80000 /* process option priorities for this option */
++#define OPT_PRIOSUB 0x100000 /* subsidiary member of priority group */
++#define OPT_ALIAS 0x200000 /* option is alias for previous option */
++#define OPT_A2COPY 0x400000 /* addr2 -&gt; second location to rcv value */
++#define OPT_ENABLE 0x800000 /* use *addr2 as enable for option */
++#define OPT_A2CLR 0x1000000 /* clear *(bool *)addr2 */
++#define OPT_PRIVFIX 0x2000000 /* user can't override if set by root */
++#define OPT_INITONLY 0x4000000 /* option can only be set in init phase */
++#define OPT_DEVEQUIV 0x8000000 /* equiv to device name */
++#define OPT_DEVNAM (OPT_INITONLY | OPT_DEVEQUIV)
++#define OPT_A2PRINTER 0x10000000 /* *addr2 is a fn for printing option */
++#define OPT_A2STRVAL 0x20000000 /* *addr2 points to current string value */
++#define OPT_NOPRINT 0x40000000 /* don't print this option at all */
++
++#define OPT_VAL(x) ((x) &amp; OPT_VALUE)
++
++/* Values for priority */
++#define OPRIO_DEFAULT 0 /* a default value */
++#define OPRIO_CFGFILE 1 /* value from a configuration file */
++#define OPRIO_CMDLINE 2 /* value from the command line */
++#define OPRIO_SECFILE 3 /* value from options in a secrets file */
++#define OPRIO_ROOT 100 /* added to priority if OPT_PRIVFIX &amp;&amp; root */
++
++#ifndef GIDSET_TYPE
++#define GIDSET_TYPE gid_t
++#endif
++
++/* Structure representing a list of permitted IP addresses. */
++struct permitted_ip {
++ int permit; /* 1 = permit, 0 = forbid */
++ u_int32_t base; /* match if (addr &amp; mask) == base */
++ u_int32_t mask; /* base and mask are in network byte order */
++};
++
++/*
++ * Unfortunately, the linux kernel driver uses a different structure
++ * for statistics from the rest of the ports.
++ * This structure serves as a common representation for the bits
++ * pppd needs.
++ */
++struct pppd_stats {
++ unsigned int bytes_in;
++ unsigned int bytes_out;
++};
++
++/* Used for storing a sequence of words. Usually malloced. */
++struct wordlist {
++ struct wordlist *next;
++ char *word;
++};
++
++/* An endpoint discriminator, used with multilink. */
++#define MAX_ENDP_LEN 20 /* maximum length of discriminator value */
++struct epdisc {
++ unsigned char class;
++ unsigned char length;
++ unsigned char value[MAX_ENDP_LEN];
++};
++
++/* values for epdisc.class */
++#define EPD_NULL 0 /* null discriminator, no data */
++#define EPD_LOCAL 1
++#define EPD_IP 2
++#define EPD_MAC 3
++#define EPD_MAGIC 4
++#define EPD_PHONENUM 5
++
++typedef void (*notify_func) __P((void *, int));
++
++struct notifier {
++ struct notifier *next;
++ notify_func func;
++ void *arg;
++};
++
++/*
++ * Global variables.
++ */
++
++extern int hungup; /* Physical layer has disconnected */
++extern int ifunit; /* Interface unit number */
++extern char ifname[]; /* Interface name */
++extern char hostname[]; /* Our hostname */
++extern u_char outpacket_buf[]; /* Buffer for outgoing packets */
++extern int phase; /* Current state of link - see values below */
++extern int baud_rate; /* Current link speed in bits/sec */
++extern char *progname; /* Name of this program */
++extern int redirect_stderr;/* Connector's stderr should go to file */
++extern char peer_authname[];/* Authenticated name of peer */
++extern int privileged; /* We were run by real-uid root */
++extern int need_holdoff; /* Need holdoff period after link terminates */
++extern char **script_env; /* Environment variables for scripts */
++extern int detached; /* Have detached from controlling tty */
++extern GIDSET_TYPE groups[NGROUPS_MAX]; /* groups the user is in */
++extern int ngroups; /* How many groups valid in groups */
++extern struct pppd_stats link_stats; /* byte/packet counts etc. for link */
++extern int link_stats_valid; /* set if link_stats is valid */
++extern int link_connect_time; /* time the link was up for */
++extern int using_pty; /* using pty as device (notty or pty opt.) */
++extern int log_to_fd; /* logging to this fd as well as syslog */
++extern bool log_default; /* log_to_fd is default (stdout) */
++extern char *no_ppp_msg; /* message to print if ppp not in kernel */
++extern volatile int status; /* exit status for pppd */
++extern bool devnam_fixed; /* can no longer change devnam */
++extern int unsuccess; /* # unsuccessful connection attempts */
++extern int do_callback; /* set if we want to do callback next */
++extern int doing_callback; /* set if this is a callback */
++extern char ppp_devnam[MAXPATHLEN];
++extern struct notifier *pidchange; /* for notifications of pid changing */
++extern struct notifier *phasechange; /* for notifications of phase changes */
++extern struct notifier *exitnotify; /* for notification that we're exiting */
++extern struct notifier *sigreceived; /* notification of received signal */
++extern int listen_time; /* time to listen first (ms) */
++
++/* Values for do_callback and doing_callback */
++#define CALLBACK_DIALIN 1 /* we are expecting the call back */
++#define CALLBACK_DIALOUT 2 /* we are dialling out to call back */
++
++/*
++ * Variables set by command-line options.
++ */
++
++extern int debug; /* Debug flag */
++extern int kdebugflag; /* Tell kernel to print debug messages */
++extern int default_device; /* Using /dev/tty or equivalent */
++extern char devnam[MAXPATHLEN]; /* Device name */
++extern int crtscts; /* Use hardware flow control */
++extern bool modem; /* Use modem control lines */
++extern int inspeed; /* Input/Output speed requested */
++extern u_int32_t netmask; /* IP netmask to set on interface */
++extern bool lockflag; /* Create lock file to lock the serial dev */
++extern bool nodetach; /* Don't detach from controlling tty */
++extern bool updetach; /* Detach from controlling tty when link up */
++extern char *initializer; /* Script to initialize physical link */
++extern char *connect_script; /* Script to establish physical link */
++extern char *disconnect_script; /* Script to disestablish physical link */
++extern char *welcomer; /* Script to welcome client after connection */
++extern char *ptycommand; /* Command to run on other side of pty */
++extern int maxconnect; /* Maximum connect time (seconds) */
++extern char user[MAXNAMELEN];/* Our name for authenticating ourselves */
++extern char passwd[MAXSECRETLEN]; /* Password for PAP or CHAP */
++extern bool auth_required; /* Peer is required to authenticate */
++extern bool persist; /* Reopen link after it goes down */
++extern bool uselogin; /* Use /etc/passwd for checking PAP */
++extern char our_name[MAXNAMELEN];/* Our name for authentication purposes */
++extern char remote_name[MAXNAMELEN]; /* Peer's name for authentication */
++extern bool explicit_remote;/* remote_name specified with remotename opt */
++extern bool demand; /* Do dial-on-demand */
++extern char *ipparam; /* Extra parameter for ip up/down scripts */
++extern bool cryptpap; /* Others' PAP passwords are encrypted */
++extern int idle_time_limit;/* Shut down link if idle for this long */
++extern int holdoff; /* Dead time before restarting */
++extern bool holdoff_specified; /* true if user gave a holdoff value */
++extern bool notty; /* Stdin/out is not a tty */
++extern char *pty_socket; /* Socket to connect to pty */
++extern char *record_file; /* File to record chars sent/received */
++extern bool sync_serial; /* Device is synchronous serial device */
++extern int maxfail; /* Max # of unsuccessful connection attempts */
++extern char linkname[MAXPATHLEN]; /* logical name for link */
++extern bool tune_kernel; /* May alter kernel settings as necessary */
++extern int connect_delay; /* Time to delay after connect script */
++extern int max_data_rate; /* max bytes/sec through charshunt */
++extern int req_unit; /* interface unit number to use */
++extern bool multilink; /* enable multilink operation */
++extern bool noendpoint; /* don't send or accept endpt. discrim. */
++extern char *bundle_name; /* bundle name for multilink */
++extern bool dump_options; /* print out option values */
++extern bool dryrun; /* check everything, print options, exit */
++
++#ifdef PPP_FILTER
++extern struct bpf_program pass_filter; /* Filter for pkts to pass */
++extern struct bpf_program active_filter; /* Filter for link-active pkts */
++#endif
++
++#ifdef MSLANMAN
++extern bool ms_lanman; /* Use LanMan password instead of NT */
++ /* Has meaning only with MS-CHAP challenges */
++#endif
++
++extern char *current_option; /* the name of the option being parsed */
++extern int privileged_option; /* set iff the current option came from root */
++extern char *option_source; /* string saying where the option came from */
++extern int option_priority; /* priority of current options */
++
++/*
++ * Values for phase.
++ */
++#define PHASE_DEAD 0
++#define PHASE_INITIALIZE 1
++#define PHASE_SERIALCONN 2
++#define PHASE_DORMANT 3
++#define PHASE_ESTABLISH 4
++#define PHASE_AUTHENTICATE 5
++#define PHASE_CALLBACK 6
++#define PHASE_NETWORK 7
++#define PHASE_RUNNING 8
++#define PHASE_TERMINATE 9
++#define PHASE_DISCONNECT 10
++#define PHASE_HOLDOFF 11
++
++/*
++ * The following struct gives the addresses of procedures to call
++ * for a particular protocol.
++ */
++struct protent {
++ u_short protocol; /* PPP protocol number */
++ /* Initialization procedure */
++ void (*init) __P((int unit));
++ /* Process a received packet */
++ void (*input) __P((int unit, u_char *pkt, int len));
++ /* Process a received protocol-reject */
++ void (*protrej) __P((int unit));
++ /* Lower layer has come up */
++ void (*lowerup) __P((int unit));
++ /* Lower layer has gone down */
++ void (*lowerdown) __P((int unit));
++ /* Open the protocol */
++ void (*open) __P((int unit));
++ /* Close the protocol */
++ void (*close) __P((int unit, char *reason));
++ /* Print a packet in readable form */
++ int (*printpkt) __P((u_char *pkt, int len,
++ void (*printer) __P((void *, char *, ...)),
++ void *arg));
++ /* Process a received data packet */
++ void (*datainput) __P((int unit, u_char *pkt, int len));
++ bool enabled_flag; /* 0 iff protocol is disabled */
++ char *name; /* Text name of protocol */
++ char *data_name; /* Text name of corresponding data protocol */
++ option_t *options; /* List of command-line options */
++ /* Check requested options, assign defaults */
++ void (*check_options) __P((void));
++ /* Configure interface for demand-dial */
++ int (*demand_conf) __P((int unit));
++ /* Say whether to bring up link for this pkt */
++ int (*active_pkt) __P((u_char *pkt, int len));
++};
++
++/* Table of pointers to supported protocols */
++extern struct protent *protocols[];
++
++/*
++ * This struct contains pointers to a set of procedures for
++ * doing operations on a &quot;channel&quot;. A channel provides a way
++ * to send and receive PPP packets - the canonical example is
++ * a serial port device in PPP line discipline (or equivalently
++ * with PPP STREAMS modules pushed onto it).
++ */
++struct channel {
++ /* set of options for this channel */
++ option_t *options;
++ /* find and process a per-channel options file */
++ void (*process_extra_options) __P((void));
++ /* check all the options that have been given */
++ void (*check_options) __P((void));
++ /* get the channel ready to do PPP, return a file descriptor */
++ int (*connect) __P((void));
++ /* we're finished with the channel */
++ void (*disconnect) __P((void));
++ /* put the channel into PPP `mode' */
++ int (*establish_ppp) __P((int));
++ /* take the channel out of PPP `mode', restore loopback if demand */
++ void (*disestablish_ppp) __P((int));
++ /* set the transmit-side PPP parameters of the channel */
++ void (*send_config) __P((int, u_int32_t, int, int));
++ /* set the receive-side PPP parameters of the channel */
++ void (*recv_config) __P((int, u_int32_t, int, int));
++ /* cleanup on error or normal exit */
++ void (*cleanup) __P((void));
++ /* close the device, called in children after fork */
++ void (*close) __P((void));
++};
++
++extern struct channel *the_channel;
++
++#define ppp_send_config(unit, mtu, accm, pc, acc) \
++do { \
++ if (the_channel-&gt;send_config) \
++ (*the_channel-&gt;send_config)((mtu), (accm), (pc), (acc)); \
++} while (0)
++
++#define ppp_recv_config(unit, mtu, accm, pc, acc) \
++do { \
++ if (the_channel-&gt;send_config) \
++ (*the_channel-&gt;recv_config)((mtu), (accm), (pc), (acc)); \
++} while (0)
++
++/*
++ * Prototypes.
++ */
++
++/* Procedures exported from main.c. */
++void set_ifunit __P((int)); /* set stuff that depends on ifunit */
++void detach __P((void)); /* Detach from controlling tty */
++void die __P((int)); /* Cleanup and exit */
++void quit __P((void)); /* like die(1) */
++void novm __P((char *)); /* Say we ran out of memory, and die */
++void timeout __P((void (*func)(void *), void *arg, int s, int us));
++ /* Call func(arg) after s.us seconds */
++void untimeout __P((void (*func)(void *), void *arg));
++ /* Cancel call to func(arg) */
++void record_child __P((int, char *, void (*) (void *), void *));
++int device_script __P((char *cmd, int in, int out, int dont_wait));
++ /* Run `cmd' with given stdin and stdout */
++pid_t run_program __P((char *prog, char **args, int must_exist,
++ void (*done)(void *), void *arg));
++ /* Run program prog with args in child */
++void reopen_log __P((void)); /* (re)open the connection to syslog */
++void update_link_stats __P((int)); /* Get stats at link termination */
++void script_setenv __P((char *, char *, int)); /* set script env var */
++void script_unsetenv __P((char *)); /* unset script env var */
++void new_phase __P((int)); /* signal start of new phase */
++void add_notifier __P((struct notifier **, notify_func, void *));
++void remove_notifier __P((struct notifier **, notify_func, void *));
++void notify __P((struct notifier *, int));
++
++/* Procedures exported from tty.c. */
++void tty_init __P((void));
++
++/* Procedures exported from utils.c. */
++void log_packet __P((u_char *, int, char *, int));
++ /* Format a packet and log it with syslog */
++void print_string __P((char *, int, void (*) (void *, char *, ...),
++ void *)); /* Format a string for output */
++int slprintf __P((char *, int, char *, ...)); /* sprintf++ */
++int vslprintf __P((char *, int, char *, va_list)); /* vsprintf++ */
++size_t strlcpy __P((char *, const char *, size_t)); /* safe strcpy */
++size_t strlcat __P((char *, const char *, size_t)); /* safe strncpy */
++void dbglog __P((char *, ...)); /* log a debug message */
++void info __P((char *, ...)); /* log an informational message */
++void notice __P((char *, ...)); /* log a notice-level message */
++void warn __P((char *, ...)); /* log a warning message */
++void error __P((char *, ...)); /* log an error message */
++void fatal __P((char *, ...)); /* log an error message and die(1) */
++void init_pr_log __P((char *, int)); /* initialize for using pr_log */
++void pr_log __P((void *, char *, ...)); /* printer fn, output to syslog */
++void end_pr_log __P((void)); /* finish up after using pr_log */
++
++/* Procedures exported from auth.c */
++void link_required __P((int)); /* we are starting to use the link */
++void link_terminated __P((int)); /* we are finished with the link */
++void link_down __P((int)); /* the LCP layer has left the Opened state */
++void link_established __P((int)); /* the link is up; authenticate now */
++void start_networks __P((void)); /* start all the network control protos */
++void np_up __P((int, int)); /* a network protocol has come up */
++void np_down __P((int, int)); /* a network protocol has gone down */
++void np_finished __P((int, int)); /* a network protocol no longer needs link */
++void auth_peer_fail __P((int, int));
++ /* peer failed to authenticate itself */
++void auth_peer_success __P((int, int, char *, int));
++ /* peer successfully authenticated itself */
++void auth_withpeer_fail __P((int, int));
++ /* we failed to authenticate ourselves */
++void auth_withpeer_success __P((int, int));
++ /* we successfully authenticated ourselves */
++void auth_check_options __P((void));
++ /* check authentication options supplied */
++void auth_reset __P((int)); /* check what secrets we have */
++int check_passwd __P((int, char *, int, char *, int, char **));
++ /* Check peer-supplied username/password */
++int get_secret __P((int, char *, char *, char *, int *, int));
++ /* get &quot;secret&quot; for chap */
++int auth_ip_addr __P((int, u_int32_t));
++ /* check if IP address is authorized */
++int bad_ip_adrs __P((u_int32_t));
++ /* check if IP address is unreasonable */
++
++/* Procedures exported from demand.c */
++void demand_conf __P((void)); /* config interface(s) for demand-dial */
++void demand_block __P((void)); /* set all NPs to queue up packets */
++void demand_unblock __P((void)); /* set all NPs to pass packets */
++void demand_discard __P((void)); /* set all NPs to discard packets */
++void demand_rexmit __P((int)); /* retransmit saved frames for an NP */
++int loop_chars __P((unsigned char *, int)); /* process chars from loopback */
++int loop_frame __P((unsigned char *, int)); /* should we bring link up? */
++
++/* Procedures exported from multilink.c */
++void mp_check_options __P((void)); /* Check multilink-related options */
++int mp_join_bundle __P((void)); /* join our link to an appropriate bundle */
++char *epdisc_to_str __P((struct epdisc *)); /* string from endpoint discrim. */
++int str_to_epdisc __P((struct epdisc *, char *)); /* endpt disc. from str */
++
++/* Procedures exported from sys-*.c */
++void sys_init __P((void)); /* Do system-dependent initialization */
++void sys_cleanup __P((void)); /* Restore system state before exiting */
++int sys_check_options __P((void)); /* Check options specified */
++void sys_close __P((void)); /* Clean up in a child before execing */
++int ppp_available __P((void)); /* Test whether ppp kernel support exists */
++int get_pty __P((int *, int *, char *, int)); /* Get pty master/slave */
++int open_ppp_loopback __P((void)); /* Open loopback for demand-dialling */
++int tty_establish_ppp __P((int)); /* Turn serial port into a ppp interface */
++void tty_disestablish_ppp __P((int)); /* Restore port to normal operation */
++void make_new_bundle __P((int, int, int, int)); /* Create new bundle */
++int bundle_attach __P((int)); /* Attach link to existing bundle */
++void cfg_bundle __P((int, int, int, int)); /* Configure existing bundle */
++void clean_check __P((void)); /* Check if line was 8-bit clean */
++void set_up_tty __P((int, int)); /* Set up port's speed, parameters, etc. */
++void restore_tty __P((int)); /* Restore port's original parameters */
++void setdtr __P((int, int)); /* Raise or lower port's DTR line */
++void output __P((int, u_char *, int)); /* Output a PPP packet */
++void wait_input __P((struct timeval *));
++ /* Wait for input, with timeout */
++void add_fd __P((int)); /* Add fd to set to wait for */
++void remove_fd __P((int)); /* Remove fd from set to wait for */
++int read_packet __P((u_char *)); /* Read PPP packet */
++int get_loop_output __P((void)); /* Read pkts from loopback */
++void tty_send_config __P((int, u_int32_t, int, int));
++ /* Configure i/f transmit parameters */
++void tty_set_xaccm __P((ext_accm));
++ /* Set extended transmit ACCM */
++void tty_recv_config __P((int, u_int32_t, int, int));
++ /* Configure i/f receive parameters */
++int ccp_test __P((int, u_char *, int, int));
++ /* Test support for compression scheme */
++void ccp_flags_set __P((int, int, int));
++ /* Set kernel CCP state */
++int ccp_fatal_error __P((int)); /* Test for fatal decomp error in kernel */
++int get_idle_time __P((int, struct ppp_idle *));
++ /* Find out how long link has been idle */
++int get_ppp_stats __P((int, struct pppd_stats *));
++ /* Return link statistics */
++void netif_set_mtu __P((int, int)); /* Set PPP interface MTU */
++int sifvjcomp __P((int, int, int, int));
++ /* Configure VJ TCP header compression */
++int sifup __P((int)); /* Configure i/f up for one protocol */
++int sifnpmode __P((int u, int proto, enum NPmode mode));
++ /* Set mode for handling packets for proto */
++int sifdown __P((int)); /* Configure i/f down for one protocol */
++int sifaddr __P((int, u_int32_t, u_int32_t, u_int32_t));
++ /* Configure IPv4 addresses for i/f */
++int cifaddr __P((int, u_int32_t, u_int32_t));
++ /* Reset i/f IP addresses */
++#ifdef INET6
++int sif6addr __P((int, eui64_t, eui64_t));
++ /* Configure IPv6 addresses for i/f */
++int cif6addr __P((int, eui64_t, eui64_t));
++ /* Remove an IPv6 address from i/f */
++#endif
++int sifdefaultroute __P((int, u_int32_t, u_int32_t));
++ /* Create default route through i/f */
++int cifdefaultroute __P((int, u_int32_t, u_int32_t));
++ /* Delete default route through i/f */
++int sifproxyarp __P((int, u_int32_t));
++ /* Add proxy ARP entry for peer */
++int cifproxyarp __P((int, u_int32_t));
++ /* Delete proxy ARP entry for peer */
++u_int32_t GetMask __P((u_int32_t)); /* Get appropriate netmask for address */
++int lock __P((char *)); /* Create lock file for device */
++int relock __P((int)); /* Rewrite lock file with new pid */
++void unlock __P((void)); /* Delete previously-created lock file */
++void logwtmp __P((const char *, const char *, const char *));
++ /* Write entry to wtmp file */
++int get_host_seed __P((void)); /* Get host-dependent random number seed */
++int have_route_to __P((u_int32_t)); /* Check if route to addr exists */
++#ifdef PPP_FILTER
++int set_filters __P((struct bpf_program *pass, struct bpf_program *active));
++ /* Set filter programs in kernel */
++#endif
++#ifdef IPX_CHANGE
++int sipxfaddr __P((int, unsigned long, unsigned char *));
++int cipxfaddr __P((int));
++#endif
++int get_if_hwaddr __P((u_char *addr, char *name));
++char *get_first_ethernet __P((void));
++
++/* Procedures exported from options.c */
++int parse_args __P((int argc, char **argv));
++ /* Parse options from arguments given */
++int options_from_file __P((char *filename, int must_exist, int check_prot,
++ int privileged));
++ /* Parse options from an options file */
++int options_from_user __P((void)); /* Parse options from user's .ppprc */
++int options_for_tty __P((void)); /* Parse options from /etc/ppp/options.tty */
++int options_from_list __P((struct wordlist *, int privileged));
++ /* Parse options from a wordlist */
++int getword __P((FILE *f, char *word, int *newlinep, char *filename));
++ /* Read a word from a file */
++void option_error __P((char *fmt, ...));
++ /* Print an error message about an option */
++int int_option __P((char *, int *));
++ /* Simplified number_option for decimal ints */
++void add_options __P((option_t *)); /* Add extra options */
++void check_options __P((void)); /* check values after all options parsed */
++int override_value __P((const char *, int, const char *));
++ /* override value if permitted by priority */
++void print_options __P((void (*) __P((void *, char *, ...)), void *));
++ /* print out values of all options */
++
++int parse_dotted_ip __P((char *, u_int32_t *));
++
++/*
++ * Hooks to enable plugins to change various things.
++ */
++extern int (*new_phase_hook) __P((int));
++extern int (*idle_time_hook) __P((struct ppp_idle *));
++extern int (*holdoff_hook) __P((void));
++extern int (*pap_check_hook) __P((void));
++extern int (*pap_auth_hook) __P((char *user, char *passwd, char **msgp,
++ struct wordlist **paddrs,
++ struct wordlist **popts));
++extern void (*pap_logout_hook) __P((void));
++extern int (*pap_passwd_hook) __P((char *user, char *passwd));
++extern void (*ip_up_hook) __P((void));
++extern void (*ip_down_hook) __P((void));
++extern void (*ip_choose_hook) __P((u_int32_t *));
++
++/*
++ * Inline versions of get/put char/short/long.
++ * Pointer is advanced; we assume that both arguments
++ * are lvalues and will already be in registers.
++ * cp MUST be u_char *.
++ */
++#define GETCHAR(c, cp) { \
++ (c) = *(cp)++; \
++}
++#define PUTCHAR(c, cp) { \
++ *(cp)++ = (u_char) (c); \
++}
++
++
++#define GETSHORT(s, cp) { \
++ (s) = *(cp)++ &lt;&lt; 8; \
++ (s) |= *(cp)++; \
++}
++#define PUTSHORT(s, cp) { \
++ *(cp)++ = (u_char) ((s) &gt;&gt; 8); \
++ *(cp)++ = (u_char) (s); \
++}
++
++#define GETLONG(l, cp) { \
++ (l) = *(cp)++ &lt;&lt; 8; \
++ (l) |= *(cp)++; (l) &lt;&lt;= 8; \
++ (l) |= *(cp)++; (l) &lt;&lt;= 8; \
++ (l) |= *(cp)++; \
++}
++#define PUTLONG(l, cp) { \
++ *(cp)++ = (u_char) ((l) &gt;&gt; 24); \
++ *(cp)++ = (u_char) ((l) &gt;&gt; 16); \
++ *(cp)++ = (u_char) ((l) &gt;&gt; 8); \
++ *(cp)++ = (u_char) (l); \
++}
++
++#define INCPTR(n, cp) ((cp) += (n))
++#define DECPTR(n, cp) ((cp) -= (n))
++
++/*
++ * System dependent definitions for user-level 4.3BSD UNIX implementation.
++ */
++
++#define TIMEOUT(r, f, t) timeout((r), (f), (t), 0)
++#define UNTIMEOUT(r, f) untimeout((r), (f))
++
++#define BCOPY(s, d, l) memcpy(d, s, l)
++#define BZERO(s, n) memset(s, 0, n)
++
++#define PRINTMSG(m, l) { info(&quot;Remote message: %0.*v&quot;, l, m); }
++
++/*
++ * MAKEHEADER - Add Header fields to a packet.
++ */
++#define MAKEHEADER(p, t) { \
++ PUTCHAR(PPP_ALLSTATIONS, p); \
++ PUTCHAR(PPP_UI, p); \
++ PUTSHORT(t, p); }
++
++/*
++ * Exit status values.
++ */
++#define EXIT_OK 0
++#define EXIT_FATAL_ERROR 1
++#define EXIT_OPTION_ERROR 2
++#define EXIT_NOT_ROOT 3
++#define EXIT_NO_KERNEL_SUPPORT 4
++#define EXIT_USER_REQUEST 5
++#define EXIT_LOCK_FAILED 6
++#define EXIT_OPEN_FAILED 7
++#define EXIT_CONNECT_FAILED 8
++#define EXIT_PTYCMD_FAILED 9
++#define EXIT_NEGOTIATION_FAILED 10
++#define EXIT_PEER_AUTH_FAILED 11
++#define EXIT_IDLE_TIMEOUT 12
++#define EXIT_CONNECT_TIME 13
++#define EXIT_CALLBACK 14
++#define EXIT_PEER_DEAD 15
++#define EXIT_HANGUP 16
++#define EXIT_LOOPBACK 17
++#define EXIT_INIT_FAILED 18
++#define EXIT_AUTH_TOPEER_FAILED 19
++
++/*
++ * Debug macros. Slightly useful for finding bugs in pppd, not particularly
++ * useful for finding out why your connection isn't being established.
++ */
++#ifdef DEBUGALL
++#define DEBUGMAIN 1
++#define DEBUGFSM 1
++#define DEBUGLCP 1
++#define DEBUGIPCP 1
++#define DEBUGIPV6CP 1
++#define DEBUGUPAP 1
++#define DEBUGCHAP 1
++#endif
++
++#ifndef LOG_PPP /* we use LOG_LOCAL2 for syslog by default */
++#if defined(DEBUGMAIN) || defined(DEBUGFSM) || defined(DEBUGSYS) \
++ || defined(DEBUGLCP) || defined(DEBUGIPCP) || defined(DEBUGUPAP) \
++ || defined(DEBUGCHAP) || defined(DEBUG) || defined(DEBUGIPV6CP)
++#define LOG_PPP LOG_LOCAL2
++#else
++#define LOG_PPP LOG_DAEMON
++#endif
++#endif /* LOG_PPP */
++
++#ifdef DEBUGMAIN
++#define MAINDEBUG(x) if (debug) dbglog x
++#else
++#define MAINDEBUG(x)
++#endif
++
++#ifdef DEBUGSYS
++#define SYSDEBUG(x) if (debug) dbglog x
++#else
++#define SYSDEBUG(x)
++#endif
++
++#ifdef DEBUGFSM
++#define FSMDEBUG(x) if (debug) dbglog x
++#else
++#define FSMDEBUG(x)
++#endif
++
++#ifdef DEBUGLCP
++#define LCPDEBUG(x) if (debug) dbglog x
++#else
++#define LCPDEBUG(x)
++#endif
++
++#ifdef DEBUGIPCP
++#define IPCPDEBUG(x) if (debug) dbglog x
++#else
++#define IPCPDEBUG(x)
++#endif
++
++#ifdef DEBUGIPV6CP
++#define IPV6CPDEBUG(x) if (debug) dbglog x
++#else
++#define IPV6CPDEBUG(x)
++#endif
++
++#ifdef DEBUGUPAP
++#define UPAPDEBUG(x) if (debug) dbglog x
++#else
++#define UPAPDEBUG(x)
++#endif
++
++#ifdef DEBUGCHAP
++#define CHAPDEBUG(x) if (debug) dbglog x
++#else
++#define CHAPDEBUG(x)
++#endif
++
++#ifdef DEBUGIPXCP
++#define IPXCPDEBUG(x) if (debug) dbglog x
++#else
++#define IPXCPDEBUG(x)
++#endif
++
++#ifndef SIGTYPE
++#if defined(sun) || defined(SYSV) || defined(POSIX_SOURCE)
++#define SIGTYPE void
++#else
++#define SIGTYPE int
++#endif /* defined(sun) || defined(SYSV) || defined(POSIX_SOURCE) */
++#endif /* SIGTYPE */
++
++#ifndef MIN
++#define MIN(a, b) ((a) &lt; (b)? (a): (b))
++#endif
++#ifndef MAX
++#define MAX(a, b) ((a) &gt; (b)? (a): (b))
++#endif
++
++#endif /* __PPP_H__ */
+
+<a id="drakxtrunkmdkstage1ppppppdsyslinuxc">Added: drakx/trunk/mdk-stage1/ppp/pppd/sys-linux.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/sys-linux.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/sys-linux.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,2672 @@
++/*
++ * sys-linux.c - System-dependent procedures for setting up
++ * PPP interfaces on Linux systems
++ *
++ * Copyright (c) 1989 Carnegie Mellon University.
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms are permitted
++ * provided that the above copyright notice and this paragraph are
++ * duplicated in all such forms and that any documentation,
++ * advertising materials, and other materials related to such
++ * distribution and use acknowledge that the software was developed
++ * by Carnegie Mellon University. The name of the
++ * University may not be used to endorse or promote products derived
++ * from this software without specific prior written permission.
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
++ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
++ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++ */
++
++#include &lt;sys/ioctl.h&gt;
++#include &lt;sys/types.h&gt;
++#include &lt;sys/socket.h&gt;
++#include &lt;sys/time.h&gt;
++#include &lt;sys/errno.h&gt;
++#include &lt;sys/file.h&gt;
++#include &lt;sys/stat.h&gt;
++#include &lt;sys/utsname.h&gt;
++#include &lt;sys/sysmacros.h&gt;
++
++#include &lt;stdio.h&gt;
++#include &lt;stdlib.h&gt;
++#include &lt;syslog.h&gt;
++#include &lt;string.h&gt;
++#include &lt;time.h&gt;
++#include &lt;memory.h&gt;
++#include &lt;utmp.h&gt;
++#include &lt;mntent.h&gt;
++#include &lt;signal.h&gt;
++#include &lt;fcntl.h&gt;
++#include &lt;ctype.h&gt;
++#include &lt;termios.h&gt;
++#include &lt;unistd.h&gt;
++
++/* This is in netdevice.h. However, this compile will fail miserably if
++ you attempt to include netdevice.h because it has so many references
++ to __memcpy functions which it should not attempt to do. So, since I
++ really don't use it, but it must be defined, define it now. */
++
++#ifndef MAX_ADDR_LEN
++#define MAX_ADDR_LEN 7
++#endif
++
++#if (defined(__GLIBC__) &amp;&amp; __GLIBC__ &gt;= 2) || defined(__dietlibc__)
++#include &lt;asm/types.h&gt; /* glibc 2 conflicts with linux/types.h */
++#include &lt;net/if.h&gt;
++#include &lt;net/if_arp.h&gt;
++#include &lt;net/route.h&gt;
++#include &lt;netinet/if_ether.h&gt;
++#else
++#include &lt;linux/types.h&gt;
++#include &lt;linux/if.h&gt;
++#include &lt;linux/if_arp.h&gt;
++#include &lt;linux/route.h&gt;
++#include &lt;linux/if_ether.h&gt;
++#endif
++#include &lt;netinet/in.h&gt;
++#include &lt;arpa/inet.h&gt;
++
++#include &lt;linux/ppp_defs.h&gt;
++#include &lt;linux/if_ppp.h&gt;
++
++#include &quot;pppd.h&quot;
++#include &quot;fsm.h&quot;
++#include &quot;ipcp.h&quot;
++
++#ifdef IPX_CHANGE
++#include &quot;ipxcp.h&quot;
++#if __GLIBC__ &gt;= 2 &amp;&amp; \
++ !(defined(__powerpc__) &amp;&amp; __GLIBC__ == 2 &amp;&amp; __GLIBC_MINOR__ == 0)
++#include &lt;netipx/ipx.h&gt;
++#else
++#include &lt;linux/ipx.h&gt;
++#endif
++#endif /* IPX_CHANGE */
++
++#ifdef PPP_FILTER
++#include &lt;net/bpf.h&gt;
++#include &lt;linux/filter.h&gt;
++#endif /* PPP_FILTER */
++
++#ifdef LOCKLIB
++#include &lt;sys/locks.h&gt;
++#endif
++
++#ifdef INET6
++#ifndef _LINUX_IN6_H
++/*
++ * This is in linux/include/net/ipv6.h.
++ */
++
++struct in6_ifreq {
++ struct in6_addr ifr6_addr;
++ __u32 ifr6_prefixlen;
++ unsigned int ifr6_ifindex;
++};
++#endif
++
++#define IN6_LLADDR_FROM_EUI64(sin6, eui64) do { \
++ memset(&amp;sin6.s6_addr, 0, sizeof(struct in6_addr)); \
++ sin6.s6_addr16[0] = htons(0xfe80); \
++ eui64_copy(eui64, sin6.s6_addr32[2]); \
++ } while (0)
++
++#endif /* INET6 */
++
++/* We can get an EIO error on an ioctl if the modem has hung up */
++#define ok_error(num) ((num)==EIO)
++
++static int tty_disc = N_TTY; /* The TTY discipline */
++static int ppp_disc = N_PPP; /* The PPP discpline */
++static int initfdflags = -1; /* Initial file descriptor flags for fd */
++static int ppp_fd = -1; /* fd which is set to PPP discipline */
++static int sock_fd = -1; /* socket for doing interface ioctls */
++static int slave_fd = -1;
++static int master_fd = -1;
++#ifdef INET6
++static int sock6_fd = -1;
++#endif /* INET6 */
++static int ppp_dev_fd = -1; /* fd for /dev/ppp (new style driver) */
++static int chindex; /* channel index (new style driver) */
++
++static fd_set in_fds; /* set of fds that wait_input waits for */
++static int max_in_fd; /* highest fd set in in_fds */
++
++static int has_proxy_arp = 0;
++static int driver_version = 0;
++static int driver_modification = 0;
++static int driver_patch = 0;
++static int driver_is_old = 0;
++static int restore_term = 0; /* 1 =&gt; we've munged the terminal */
++static struct termios inittermios; /* Initial TTY termios */
++
++static int new_style_driver = 0;
++
++static char loop_name[20];
++static unsigned char inbuf[512]; /* buffer for chars read from loopback */
++
++static int if_is_up; /* Interface has been marked up */
++static u_int32_t default_route_gateway; /* Gateway for default route added */
++static u_int32_t proxy_arp_addr; /* Addr for proxy arp entry added */
++static char proxy_arp_dev[16]; /* Device for proxy arp entry */
++static u_int32_t our_old_addr; /* for detecting address changes */
++static int dynaddr_set; /* 1 if ip_dynaddr set */
++static int looped; /* 1 if using loop */
++static int link_mtu; /* mtu for the link (not bundle) */
++
++static struct utsname utsname; /* for the kernel version */
++static int kernel_version;
++#define KVERSION(j,n,p) ((j)*1000000 + (n)*1000 + (p))
++
++#define MAX_IFS 100
++
++#define FLAGS_GOOD (IFF_UP | IFF_BROADCAST)
++#define FLAGS_MASK (IFF_UP | IFF_BROADCAST | \
++ IFF_POINTOPOINT | IFF_LOOPBACK | IFF_NOARP)
++
++#define SIN_ADDR(x) (((struct sockaddr_in *) (&amp;(x)))-&gt;sin_addr.s_addr)
++
++/* Prototypes for procedures local to this file. */
++static int get_flags (int fd);
++static void set_flags (int fd, int flags);
++static int translate_speed (int bps);
++static int baud_rate_of (int speed);
++static void close_route_table (void);
++static int open_route_table (void);
++static int read_route_table (struct rtentry *rt);
++static int defaultroute_exists (struct rtentry *rt);
++static int get_ether_addr (u_int32_t ipaddr, struct sockaddr *hwaddr,
++ char *name, int namelen);
++static void decode_version (char *buf, int *version, int *mod, int *patch);
++static int set_kdebugflag(int level);
++static int ppp_registered(void);
++static int make_ppp_unit(void);
++static void restore_loop(void); /* Transfer ppp unit back to loopback */
++
++extern u_char inpacket_buf[]; /* borrowed from main.c */
++
++/*
++ * SET_SA_FAMILY - set the sa_family field of a struct sockaddr,
++ * if it exists.
++ */
++
++#define SET_SA_FAMILY(addr, family) \
++ memset ((char *) &amp;(addr), '\0', sizeof(addr)); \
++ addr.sa_family = (family);
++
++/*
++ * Determine if the PPP connection should still be present.
++ */
++
++extern int hungup;
++
++/* new_fd is the fd of a tty */
++static void set_ppp_fd (int new_fd)
++{
++ SYSDEBUG ((LOG_DEBUG, &quot;setting ppp_fd to %d\n&quot;, new_fd));
++ ppp_fd = new_fd;
++ if (!new_style_driver)
++ ppp_dev_fd = new_fd;
++}
++
++static int still_ppp(void)
++{
++ if (new_style_driver)
++ return !hungup &amp;&amp; ppp_fd &gt;= 0;
++ if (!hungup || ppp_fd == slave_fd)
++ return 1;
++ if (slave_fd &gt;= 0) {
++ set_ppp_fd(slave_fd);
++ return 1;
++ }
++ return 0;
++}
++
++/********************************************************************
++ *
++ * Functions to read and set the flags value in the device driver
++ */
++
++static int get_flags (int fd)
++{
++ int flags;
++
++ if (ioctl(fd, PPPIOCGFLAGS, (caddr_t) &amp;flags) &lt; 0) {
++ if ( ok_error (errno) )
++ flags = 0;
++ else
++ fatal(&quot;ioctl(PPPIOCGFLAGS): %m&quot;);
++ }
++
++ SYSDEBUG ((LOG_DEBUG, &quot;get flags = %x\n&quot;, flags));
++ return flags;
++}
++
++/********************************************************************/
++
++static void set_flags (int fd, int flags)
++{
++ SYSDEBUG ((LOG_DEBUG, &quot;set flags = %x\n&quot;, flags));
++
++ if (ioctl(fd, PPPIOCSFLAGS, (caddr_t) &amp;flags) &lt; 0) {
++ if (! ok_error (errno) )
++ fatal(&quot;ioctl(PPPIOCSFLAGS, %x): %m&quot;, flags, errno);
++ }
++}
++
++/********************************************************************
++ *
++ * sys_init - System-dependent initialization.
++ */
++
++void sys_init(void)
++{
++ int flags;
++
++ if (new_style_driver) {
++ ppp_dev_fd = open(&quot;/dev/ppp&quot;, O_RDWR);
++ if (ppp_dev_fd &lt; 0)
++ fatal(&quot;Couldn't open /dev/ppp: %m&quot;);
++ flags = fcntl(ppp_dev_fd, F_GETFL);
++ if (flags == -1
++ || fcntl(ppp_dev_fd, F_SETFL, flags | O_NONBLOCK) == -1)
++ warn(&quot;Couldn't set /dev/ppp to nonblock: %m&quot;);
++ }
++
++ /* Get an internet socket for doing socket ioctls. */
++ sock_fd = socket(AF_INET, SOCK_DGRAM, 0);
++ if (sock_fd &lt; 0)
++ fatal(&quot;Couldn't create IP socket: %m(%d)&quot;, errno);
++
++#ifdef INET6
++ sock6_fd = socket(AF_INET6, SOCK_DGRAM, 0);
++ if (sock6_fd &lt; 0)
++ sock6_fd = -errno; /* save errno for later */
++#endif
++
++ FD_ZERO(&amp;in_fds);
++ max_in_fd = 0;
++}
++
++/********************************************************************
++ *
++ * sys_cleanup - restore any system state we modified before exiting:
++ * mark the interface down, delete default route and/or proxy arp entry.
++ * This shouldn't call die() because it's called from die().
++ */
++
++void sys_cleanup(void)
++{
++/*
++ * Take down the device
++ */
++ if (if_is_up) {
++ if_is_up = 0;
++ sifdown(0);
++ }
++/*
++ * Delete any routes through the device.
++ */
++ if (default_route_gateway != 0)
++ cifdefaultroute(0, 0, default_route_gateway);
++
++ if (has_proxy_arp)
++ cifproxyarp(0, proxy_arp_addr);
++}
++
++/********************************************************************
++ *
++ * sys_close - Clean up in a child process before execing.
++ */
++void
++sys_close(void)
++{
++ if (new_style_driver)
++ close(ppp_dev_fd);
++ if (sock_fd &gt;= 0)
++ close(sock_fd);
++ if (slave_fd &gt;= 0)
++ close(slave_fd);
++ if (master_fd &gt;= 0)
++ close(master_fd);
++ closelog();
++}
++
++/********************************************************************
++ *
++ * set_kdebugflag - Define the debugging level for the kernel
++ */
++
++static int set_kdebugflag (int requested_level)
++{
++ if (new_style_driver &amp;&amp; ifunit &lt; 0)
++ return 1;
++ if (ioctl(ppp_dev_fd, PPPIOCSDEBUG, &amp;requested_level) &lt; 0) {
++ if ( ! ok_error (errno) )
++ error(&quot;ioctl(PPPIOCSDEBUG): %m&quot;);
++ return (0);
++ }
++ SYSDEBUG ((LOG_INFO, &quot;set kernel debugging level to %d&quot;,
++ requested_level));
++ return (1);
++}
++
++/********************************************************************
++ *
++ * tty_establish_ppp - Turn the serial port into a ppp interface.
++ */
++
++int tty_establish_ppp (int tty_fd)
++{
++ int x;
++ int fd = -1;
++
++/*
++ * Ensure that the tty device is in exclusive mode.
++ */
++ if (ioctl(tty_fd, TIOCEXCL, 0) &lt; 0) {
++ if ( ! ok_error ( errno ))
++ warn(&quot;Couldn't make tty exclusive: %m&quot;);
++ }
++/*
++ * Demand mode - prime the old ppp device to relinquish the unit.
++ */
++ if (!new_style_driver &amp;&amp; looped
++ &amp;&amp; ioctl(slave_fd, PPPIOCXFERUNIT, 0) &lt; 0) {
++ error(&quot;ioctl(transfer ppp unit): %m&quot;);
++ return -1;
++ }
++/*
++ * Set the current tty to the PPP discpline
++ */
++
++#ifndef N_SYNC_PPP
++#define N_SYNC_PPP 14
++#endif
++ ppp_disc = (new_style_driver &amp;&amp; sync_serial)? N_SYNC_PPP: N_PPP;
++ if (ioctl(tty_fd, TIOCSETD, &amp;ppp_disc) &lt; 0) {
++ if ( ! ok_error (errno) ) {
++ error(&quot;Couldn't set tty to PPP discipline: %m&quot;);
++ return -1;
++ }
++ }
++
++ if (new_style_driver) {
++ /* Open another instance of /dev/ppp and connect the channel to it */
++ int flags;
++
++ if (ioctl(tty_fd, PPPIOCGCHAN, &amp;chindex) == -1) {
++ error(&quot;Couldn't get channel number: %m&quot;);
++ goto err;
++ }
++ dbglog(&quot;using channel %d&quot;, chindex);
++ fd = open(&quot;/dev/ppp&quot;, O_RDWR);
++ if (fd &lt; 0) {
++ error(&quot;Couldn't reopen /dev/ppp: %m&quot;);
++ goto err;
++ }
++ if (ioctl(fd, PPPIOCATTCHAN, &amp;chindex) &lt; 0) {
++ error(&quot;Couldn't attach to channel %d: %m&quot;, chindex);
++ goto err_close;
++ }
++ flags = fcntl(fd, F_GETFL);
++ if (flags == -1 || fcntl(fd, F_SETFL, flags | O_NONBLOCK) == -1)
++ warn(&quot;Couldn't set /dev/ppp (channel) to nonblock: %m&quot;);
++ set_ppp_fd(fd);
++
++ if (!looped)
++ ifunit = -1;
++ if (!looped &amp;&amp; !multilink) {
++ /*
++ * Create a new PPP unit.
++ */
++ if (make_ppp_unit() &lt; 0)
++ goto err_close;
++ }
++
++ if (looped)
++ set_flags(ppp_dev_fd, get_flags(ppp_dev_fd) &amp; ~SC_LOOP_TRAFFIC);
++
++ if (!multilink) {
++ add_fd(ppp_dev_fd);
++ if (ioctl(fd, PPPIOCCONNECT, &amp;ifunit) &lt; 0) {
++ error(&quot;Couldn't attach to PPP unit %d: %m&quot;, ifunit);
++ goto err_close;
++ }
++ }
++
++ } else {
++ /*
++ * Old-style driver: find out which interface we were given.
++ */
++ set_ppp_fd (tty_fd);
++ if (ioctl(tty_fd, PPPIOCGUNIT, &amp;x) &lt; 0) {
++ if (ok_error (errno))
++ goto err;
++ fatal(&quot;ioctl(PPPIOCGUNIT): %m(%d)&quot;, errno);
++ }
++ /* Check that we got the same unit again. */
++ if (looped &amp;&amp; x != ifunit)
++ fatal(&quot;transfer_ppp failed: wanted unit %d, got %d&quot;, ifunit, x);
++ ifunit = x;
++
++ /*
++ * Fetch the initial file flags and reset blocking mode on the file.
++ */
++ initfdflags = fcntl(tty_fd, F_GETFL);
++ if (initfdflags == -1 ||
++ fcntl(tty_fd, F_SETFL, initfdflags | O_NONBLOCK) == -1) {
++ if ( ! ok_error (errno))
++ warn(&quot;Couldn't set device to non-blocking mode: %m&quot;);
++ }
++ }
++
++ looped = 0;
++
++ /*
++ * Enable debug in the driver if requested.
++ */
++ if (!looped)
++ set_kdebugflag (kdebugflag);
++
++#define SC_RCVB (SC_RCV_B7_0 | SC_RCV_B7_1 | SC_RCV_EVNP | SC_RCV_ODDP)
++#define SC_LOGB (SC_DEBUG | SC_LOG_INPKT | SC_LOG_OUTPKT | SC_LOG_RAWIN \
++ | SC_LOG_FLUSH)
++
++ set_flags(ppp_fd, ((get_flags(ppp_fd) &amp; ~(SC_RCVB | SC_LOGB))
++ | ((kdebugflag * SC_DEBUG) &amp; SC_LOGB)));
++
++ SYSDEBUG ((LOG_NOTICE, &quot;Using version %d.%d.%d of PPP driver&quot;,
++ driver_version, driver_modification, driver_patch));
++
++ return ppp_fd;
++
++ err_close:
++ close(fd);
++ err:
++ if (ioctl(tty_fd, TIOCSETD, &amp;tty_disc) &lt; 0 &amp;&amp; !ok_error(errno))
++ warn(&quot;Couldn't reset tty to normal line discipline: %m&quot;);
++ return -1;
++}
++
++/********************************************************************
++ *
++ * tty_disestablish_ppp - Restore the serial port to normal operation,
++ * and reconnect the ppp unit to the loopback if in demand mode.
++ * This shouldn't call die() because it's called from die().
++ */
++
++void tty_disestablish_ppp(int tty_fd)
++{
++ if (demand)
++ restore_loop();
++ if (!hungup) {
++/*
++ * Flush the tty output buffer so that the TIOCSETD doesn't hang.
++ */
++ if (tcflush(tty_fd, TCIOFLUSH) &lt; 0)
++ warn(&quot;tcflush failed: %m&quot;);
++/*
++ * Restore the previous line discipline
++ */
++ if (ioctl(tty_fd, TIOCSETD, &amp;tty_disc) &lt; 0) {
++ if ( ! ok_error (errno))
++ error(&quot;ioctl(TIOCSETD, N_TTY): %m&quot;);
++ }
++
++ if (ioctl(tty_fd, TIOCNXCL, 0) &lt; 0) {
++ if ( ! ok_error (errno))
++ warn(&quot;ioctl(TIOCNXCL): %m(%d)&quot;, errno);
++ }
++
++ /* Reset non-blocking mode on fd. */
++ if (initfdflags != -1 &amp;&amp; fcntl(tty_fd, F_SETFL, initfdflags) &lt; 0) {
++ if ( ! ok_error (errno))
++ warn(&quot;Couldn't restore device fd flags: %m&quot;);
++ }
++ }
++ initfdflags = -1;
++
++ if (new_style_driver) {
++ close(ppp_fd);
++ ppp_fd = -1;
++ if (!looped &amp;&amp; ifunit &gt;= 0 &amp;&amp; ioctl(ppp_dev_fd, PPPIOCDETACH) &lt; 0)
++ error(&quot;Couldn't release PPP unit: %m&quot;);
++ if (!multilink)
++ remove_fd(ppp_dev_fd);
++ }
++}
++
++/*
++ * make_ppp_unit - make a new ppp unit for ppp_dev_fd.
++ * Assumes new_style_driver.
++ */
++static int make_ppp_unit()
++{
++ int x;
++
++ ifunit = req_unit;
++ x = ioctl(ppp_dev_fd, PPPIOCNEWUNIT, &amp;ifunit);
++ if (x &lt; 0 &amp;&amp; req_unit &gt;= 0 &amp;&amp; errno == EEXIST) {
++ warn(&quot;Couldn't allocate PPP unit %d as it is already in use&quot;);
++ ifunit = -1;
++ x = ioctl(ppp_dev_fd, PPPIOCNEWUNIT, &amp;ifunit);
++ }
++ if (x &lt; 0)
++ error(&quot;Couldn't create new ppp unit: %m&quot;);
++ return x;
++}
++
++/*
++ * cfg_bundle - configure the existing bundle.
++ * Used in demand mode.
++ */
++void cfg_bundle(int mrru, int mtru, int rssn, int tssn)
++{
++ int flags;
++
++ if (!new_style_driver)
++ return;
++
++ /* set the mrru, mtu and flags */
++ if (ioctl(ppp_dev_fd, PPPIOCSMRRU, &amp;mrru) &lt; 0)
++ error(&quot;Couldn't set MRRU: %m&quot;);
++ flags = get_flags(ppp_dev_fd);
++ flags &amp;= ~(SC_MP_SHORTSEQ | SC_MP_XSHORTSEQ);
++ flags |= (rssn? SC_MP_SHORTSEQ: 0) | (tssn? SC_MP_XSHORTSEQ: 0)
++ | (mrru? SC_MULTILINK: 0);
++
++ set_flags(ppp_dev_fd, flags);
++
++ /* connect up the channel */
++ if (ioctl(ppp_fd, PPPIOCCONNECT, &amp;ifunit) &lt; 0)
++ fatal(&quot;Couldn't attach to PPP unit %d: %m&quot;, ifunit);
++ add_fd(ppp_dev_fd);
++}
++
++/*
++ * make_new_bundle - create a new PPP unit (i.e. a bundle)
++ * and connect our channel to it. This should only get called
++ * if `multilink' was set at the time establish_ppp was called.
++ * In demand mode this uses our existing bundle instead of making
++ * a new one.
++ */
++void make_new_bundle(int mrru, int mtru, int rssn, int tssn)
++{
++ if (!new_style_driver)
++ return;
++
++ /* make us a ppp unit */
++ if (make_ppp_unit() &lt; 0)
++ die(1);
++
++ /* set the mrru and flags */
++ cfg_bundle(mrru, mtru, rssn, tssn);
++}
++
++/*
++ * bundle_attach - attach our link to a given PPP unit.
++ * We assume the unit is controlled by another pppd.
++ */
++int bundle_attach(int ifnum)
++{
++ if (!new_style_driver)
++ return -1;
++
++ if (ioctl(ppp_dev_fd, PPPIOCATTACH, &amp;ifnum) &lt; 0) {
++ if (errno == ENXIO)
++ return 0; /* doesn't still exist */
++ fatal(&quot;Couldn't attach to interface unit %d: %m\n&quot;, ifnum);
++ }
++ if (ioctl(ppp_fd, PPPIOCCONNECT, &amp;ifnum) &lt; 0)
++ fatal(&quot;Couldn't connect to interface unit %d: %m&quot;, ifnum);
++ set_flags(ppp_dev_fd, get_flags(ppp_dev_fd) | SC_MULTILINK);
++
++ ifunit = ifnum;
++ return 1;
++}
++
++/********************************************************************
++ *
++ * clean_check - Fetch the flags for the device and generate
++ * appropriate error messages.
++ */
++void clean_check(void)
++{
++ int x;
++ char *s;
++
++ if (still_ppp()) {
++ if (ioctl(ppp_fd, PPPIOCGFLAGS, (caddr_t) &amp;x) == 0) {
++ s = NULL;
++ switch (~x &amp; (SC_RCV_B7_0|SC_RCV_B7_1|SC_RCV_EVNP|SC_RCV_ODDP)) {
++ case SC_RCV_B7_0:
++ s = &quot;all had bit 7 set to 1&quot;;
++ break;
++
++ case SC_RCV_B7_1:
++ s = &quot;all had bit 7 set to 0&quot;;
++ break;
++
++ case SC_RCV_EVNP:
++ s = &quot;all had odd parity&quot;;
++ break;
++
++ case SC_RCV_ODDP:
++ s = &quot;all had even parity&quot;;
++ break;
++ }
++
++ if (s != NULL) {
++ warn(&quot;Receive serial link is not 8-bit clean:&quot;);
++ warn(&quot;Problem: %s&quot;, s);
++ }
++ }
++ }
++}
++
++
++/*
++ * List of valid speeds.
++ */
++
++struct speed {
++ int speed_int, speed_val;
++} speeds[] = {
++#ifdef B50
++ { 50, B50 },
++#endif
++#ifdef B75
++ { 75, B75 },
++#endif
++#ifdef B110
++ { 110, B110 },
++#endif
++#ifdef B134
++ { 134, B134 },
++#endif
++#ifdef B150
++ { 150, B150 },
++#endif
++#ifdef B200
++ { 200, B200 },
++#endif
++#ifdef B300
++ { 300, B300 },
++#endif
++#ifdef B600
++ { 600, B600 },
++#endif
++#ifdef B1200
++ { 1200, B1200 },
++#endif
++#ifdef B1800
++ { 1800, B1800 },
++#endif
++#ifdef B2000
++ { 2000, B2000 },
++#endif
++#ifdef B2400
++ { 2400, B2400 },
++#endif
++#ifdef B3600
++ { 3600, B3600 },
++#endif
++#ifdef B4800
++ { 4800, B4800 },
++#endif
++#ifdef B7200
++ { 7200, B7200 },
++#endif
++#ifdef B9600
++ { 9600, B9600 },
++#endif
++#ifdef B19200
++ { 19200, B19200 },
++#endif
++#ifdef B38400
++ { 38400, B38400 },
++#endif
++#ifdef B57600
++ { 57600, B57600 },
++#endif
++#ifdef B76800
++ { 76800, B76800 },
++#endif
++#ifdef B115200
++ { 115200, B115200 },
++#endif
++#ifdef EXTA
++ { 19200, EXTA },
++#endif
++#ifdef EXTB
++ { 38400, EXTB },
++#endif
++#ifdef B230400
++ { 230400, B230400 },
++#endif
++#ifdef B460800
++ { 460800, B460800 },
++#endif
++#ifdef B921600
++ { 921600, B921600 },
++#endif
++ { 0, 0 }
++};
++
++/********************************************************************
++ *
++ * Translate from bits/second to a speed_t.
++ */
++
++static int translate_speed (int bps)
++{
++ struct speed *speedp;
++
++ if (bps != 0) {
++ for (speedp = speeds; speedp-&gt;speed_int; speedp++) {
++ if (bps == speedp-&gt;speed_int)
++ return speedp-&gt;speed_val;
++ }
++ warn(&quot;speed %d not supported&quot;, bps);
++ }
++ return 0;
++}
++
++/********************************************************************
++ *
++ * Translate from a speed_t to bits/second.
++ */
++
++static int baud_rate_of (int speed)
++{
++ struct speed *speedp;
++
++ if (speed != 0) {
++ for (speedp = speeds; speedp-&gt;speed_int; speedp++) {
++ if (speed == speedp-&gt;speed_val)
++ return speedp-&gt;speed_int;
++ }
++ }
++ return 0;
++}
++
++/********************************************************************
++ *
++ * set_up_tty: Set up the serial port on `fd' for 8 bits, no parity,
++ * at the requested speed, etc. If `local' is true, set CLOCAL
++ * regardless of whether the modem option was specified.
++ */
++
++void set_up_tty(int tty_fd, int local)
++{
++ int speed;
++ struct termios tios;
++
++ setdtr(tty_fd, 1);
++ if (tcgetattr(tty_fd, &amp;tios) &lt; 0) {
++ if (!ok_error(errno))
++ fatal(&quot;tcgetattr: %m(%d)&quot;, errno);
++ return;
++ }
++
++ if (!restore_term)
++ inittermios = tios;
++
++ tios.c_cflag &amp;= ~(CSIZE | CSTOPB | PARENB | CLOCAL);
++ tios.c_cflag |= CS8 | CREAD | HUPCL;
++
++ tios.c_iflag = IGNBRK | IGNPAR;
++ tios.c_oflag = 0;
++ tios.c_lflag = 0;
++ tios.c_cc[VMIN] = 1;
++ tios.c_cc[VTIME] = 0;
++
++ if (local || !modem)
++ tios.c_cflag ^= (CLOCAL | HUPCL);
++
++ switch (crtscts) {
++ case 1:
++ tios.c_cflag |= CRTSCTS;
++ break;
++
++ case -2:
++ tios.c_iflag |= IXON | IXOFF;
++ tios.c_cc[VSTOP] = 0x13; /* DC3 = XOFF = ^S */
++ tios.c_cc[VSTART] = 0x11; /* DC1 = XON = ^Q */
++ break;
++
++ case -1:
++ tios.c_cflag &amp;= ~CRTSCTS;
++ break;
++
++ default:
++ break;
++ }
++
++ speed = translate_speed(inspeed);
++ if (speed) {
++ cfsetospeed (&amp;tios, speed);
++ cfsetispeed (&amp;tios, speed);
++ }
++/*
++ * We can't proceed if the serial port speed is B0,
++ * since that implies that the serial port is disabled.
++ */
++ else {
++ speed = cfgetospeed(&amp;tios);
++ if (speed == B0)
++ fatal(&quot;Baud rate for %s is 0; need explicit baud rate&quot;, devnam);
++ }
++
++ if (tcsetattr(tty_fd, TCSAFLUSH, &amp;tios) &lt; 0)
++ if (!ok_error(errno))
++ fatal(&quot;tcsetattr: %m&quot;);
++
++ baud_rate = baud_rate_of(speed);
++ restore_term = 1;
++}
++
++/********************************************************************
++ *
++ * setdtr - control the DTR line on the serial port.
++ * This is called from die(), so it shouldn't call die().
++ */
++
++void setdtr (int tty_fd, int on)
++{
++ int modembits = TIOCM_DTR;
++
++ ioctl(tty_fd, (on ? TIOCMBIS : TIOCMBIC), &amp;modembits);
++}
++
++/********************************************************************
++ *
++ * restore_tty - restore the terminal to the saved settings.
++ */
++
++void restore_tty (int tty_fd)
++{
++ if (restore_term) {
++ restore_term = 0;
++/*
++ * Turn off echoing, because otherwise we can get into
++ * a loop with the tty and the modem echoing to each other.
++ * We presume we are the sole user of this tty device, so
++ * when we close it, it will revert to its defaults anyway.
++ */
++ if (!default_device)
++ inittermios.c_lflag &amp;= ~(ECHO | ECHONL);
++
++ if (tcsetattr(tty_fd, TCSAFLUSH, &amp;inittermios) &lt; 0) {
++ if (! ok_error (errno))
++ warn(&quot;tcsetattr: %m&quot;);
++ }
++ }
++}
++
++/********************************************************************
++ *
++ * output - Output PPP packet.
++ */
++
++void output (int unit, unsigned char *p, int len)
++{
++ int fd = ppp_fd;
++ int proto;
++
++ if (debug)
++ dbglog(&quot;sent %P&quot;, p, len);
++
++ if (len &lt; PPP_HDRLEN)
++ return;
++ if (new_style_driver) {
++ p += 2;
++ len -= 2;
++ proto = (p[0] &lt;&lt; 8) + p[1];
++ if (ifunit &gt;= 0 &amp;&amp; !(proto &gt;= 0xc000 || proto == PPP_CCPFRAG))
++ fd = ppp_dev_fd;
++ }
++ if (write(fd, p, len) &lt; 0) {
++ if (errno == EWOULDBLOCK || errno == ENOBUFS
++ || errno == ENXIO || errno == EIO || errno == EINTR)
++ warn(&quot;write: warning: %m (%d)&quot;, errno);
++ else
++ error(&quot;write: %m (%d)&quot;, errno);
++ }
++}
++
++/********************************************************************
++ *
++ * wait_input - wait until there is data available,
++ * for the length of time specified by *timo (indefinite
++ * if timo is NULL).
++ */
++
++void wait_input(struct timeval *timo)
++{
++ fd_set ready, exc;
++ int n;
++
++ ready = in_fds;
++ exc = in_fds;
++ n = select(max_in_fd + 1, &amp;ready, NULL, &amp;exc, timo);
++ if (n &lt; 0 &amp;&amp; errno != EINTR)
++ fatal(&quot;select: %m(%d)&quot;, errno);
++}
++
++/*
++ * add_fd - add an fd to the set that wait_input waits for.
++ */
++void add_fd(int fd)
++{
++ FD_SET(fd, &amp;in_fds);
++ if (fd &gt; max_in_fd)
++ max_in_fd = fd;
++}
++
++/*
++ * remove_fd - remove an fd from the set that wait_input waits for.
++ */
++void remove_fd(int fd)
++{
++ FD_CLR(fd, &amp;in_fds);
++}
++
++
++/********************************************************************
++ *
++ * read_packet - get a PPP packet from the serial device.
++ */
++
++int read_packet (unsigned char *buf)
++{
++ int len, nr;
++
++ len = PPP_MRU + PPP_HDRLEN;
++ if (new_style_driver) {
++ *buf++ = PPP_ALLSTATIONS;
++ *buf++ = PPP_UI;
++ len -= 2;
++ }
++ nr = -1;
++ if (ppp_fd &gt;= 0) {
++ nr = read(ppp_fd, buf, len);
++ if (nr &lt; 0 &amp;&amp; errno != EWOULDBLOCK &amp;&amp; errno != EIO &amp;&amp; errno != EINTR)
++ error(&quot;read: %m&quot;);
++ if (nr &lt; 0 &amp;&amp; errno == ENXIO)
++ return 0;
++ }
++ if (nr &lt; 0 &amp;&amp; new_style_driver &amp;&amp; ifunit &gt;= 0) {
++ /* N.B. we read ppp_fd first since LCP packets come in there. */
++ nr = read(ppp_dev_fd, buf, len);
++ if (nr &lt; 0 &amp;&amp; errno != EWOULDBLOCK &amp;&amp; errno != EIO &amp;&amp; errno != EINTR)
++ error(&quot;read /dev/ppp: %m&quot;);
++ if (nr &lt; 0 &amp;&amp; errno == ENXIO)
++ return 0;
++ }
++ return (new_style_driver &amp;&amp; nr &gt; 0)? nr+2: nr;
++}
++
++/********************************************************************
++ *
++ * get_loop_output - get outgoing packets from the ppp device,
++ * and detect when we want to bring the real link up.
++ * Return value is 1 if we need to bring up the link, 0 otherwise.
++ */
++int
++get_loop_output(void)
++{
++ int rv = 0;
++ int n;
++
++ if (new_style_driver) {
++ while ((n = read_packet(inpacket_buf)) &gt; 0)
++ if (loop_frame(inpacket_buf, n))
++ rv = 1;
++ return rv;
++ }
++
++ while ((n = read(master_fd, inbuf, sizeof(inbuf))) &gt; 0)
++ if (loop_chars(inbuf, n))
++ rv = 1;
++
++ if (n == 0)
++ fatal(&quot;eof on loopback&quot;);
++
++ if (errno != EWOULDBLOCK)
++ fatal(&quot;read from loopback: %m(%d)&quot;, errno);
++
++ return rv;
++}
++
++/*
++ * netif_set_mtu - set the MTU on the PPP network interface.
++ */
++void
++netif_set_mtu(int unit, int mtu)
++{
++ struct ifreq ifr;
++
++ SYSDEBUG ((LOG_DEBUG, &quot;netif_set_mtu: mtu = %d\n&quot;, mtu));
++
++ memset (&amp;ifr, '\0', sizeof (ifr));
++ strlcpy(ifr.ifr_name, ifname, sizeof (ifr.ifr_name));
++ ifr.ifr_mtu = mtu;
++
++ if (ifunit &gt;= 0 &amp;&amp; ioctl(sock_fd, SIOCSIFMTU, (caddr_t) &amp;ifr) &lt; 0)
++ fatal(&quot;ioctl(SIOCSIFMTU): %m&quot;);
++}
++
++/********************************************************************
++ *
++ * tty_send_config - configure the transmit characteristics of
++ * the ppp interface.
++ */
++
++void tty_send_config (int mtu,u_int32_t asyncmap,int pcomp,int accomp)
++{
++ u_int x;
++
++/*
++ * Set the asyncmap and other parameters for the ppp device
++ */
++ if (!still_ppp())
++ return;
++ link_mtu = mtu;
++ SYSDEBUG ((LOG_DEBUG, &quot;send_config: asyncmap = %lx\n&quot;, asyncmap));
++ if (ioctl(ppp_fd, PPPIOCSASYNCMAP, (caddr_t) &amp;asyncmap) &lt; 0) {
++ if (!ok_error(errno))
++ fatal(&quot;ioctl(PPPIOCSASYNCMAP): %m(%d)&quot;, errno);
++ return;
++ }
++
++ x = get_flags(ppp_fd);
++ x = pcomp ? x | SC_COMP_PROT : x &amp; ~SC_COMP_PROT;
++ x = accomp ? x | SC_COMP_AC : x &amp; ~SC_COMP_AC;
++ x = sync_serial ? x | SC_SYNC : x &amp; ~SC_SYNC;
++ set_flags(ppp_fd, x);
++}
++
++/********************************************************************
++ *
++ * tty_set_xaccm - set the extended transmit ACCM for the interface.
++ */
++
++void tty_set_xaccm (ext_accm accm)
++{
++ SYSDEBUG ((LOG_DEBUG, &quot;set_xaccm: %08lx %08lx %08lx %08lx\n&quot;,
++ accm[0], accm[1], accm[2], accm[3]));
++
++ if (!still_ppp())
++ return;
++ if (ioctl(ppp_fd, PPPIOCSXASYNCMAP, accm) &lt; 0 &amp;&amp; errno != ENOTTY) {
++ if ( ! ok_error (errno))
++ warn(&quot;ioctl(set extended ACCM): %m(%d)&quot;, errno);
++ }
++}
++
++/********************************************************************
++ *
++ * tty_recv_config - configure the receive-side characteristics of
++ * the ppp interface.
++ */
++
++void tty_recv_config (int mru,u_int32_t asyncmap,int pcomp,int accomp)
++{
++ SYSDEBUG ((LOG_DEBUG, &quot;recv_config: mru = %d\n&quot;, mru));
++/*
++ * If we were called because the link has gone down then there is nothing
++ * which may be done. Just return without incident.
++ */
++ if (!still_ppp())
++ return;
++/*
++ * Set the receiver parameters
++ */
++ if (ioctl(ppp_fd, PPPIOCSMRU, (caddr_t) &amp;mru) &lt; 0) {
++ if ( ! ok_error (errno))
++ error(&quot;ioctl(PPPIOCSMRU): %m(%d)&quot;, errno);
++ }
++ if (new_style_driver &amp;&amp; ifunit &gt;= 0
++ &amp;&amp; ioctl(ppp_dev_fd, PPPIOCSMRU, (caddr_t) &amp;mru) &lt; 0)
++ error(&quot;Couldn't set MRU in generic PPP layer: %m&quot;);
++
++ SYSDEBUG ((LOG_DEBUG, &quot;recv_config: asyncmap = %lx\n&quot;, asyncmap));
++ if (ioctl(ppp_fd, PPPIOCSRASYNCMAP, (caddr_t) &amp;asyncmap) &lt; 0) {
++ if (!ok_error(errno))
++ error(&quot;ioctl(PPPIOCSRASYNCMAP): %m(%d)&quot;, errno);
++ }
++}
++
++/********************************************************************
++ *
++ * ccp_test - ask kernel whether a given compression method
++ * is acceptable for use.
++ */
++
++int ccp_test (int unit, u_char *opt_ptr, int opt_len, int for_transmit)
++{
++ struct ppp_option_data data;
++
++ memset (&amp;data, '\0', sizeof (data));
++ data.ptr = opt_ptr;
++ data.length = opt_len;
++ data.transmit = for_transmit;
++
++ if (ioctl(ppp_dev_fd, PPPIOCSCOMPRESS, (caddr_t) &amp;data) &gt;= 0)
++ return 1;
++
++ return (errno == ENOBUFS)? 0: -1;
++}
++
++/********************************************************************
++ *
++ * ccp_flags_set - inform kernel about the current state of CCP.
++ */
++
++void ccp_flags_set (int unit, int isopen, int isup)
++{
++ if (still_ppp()) {
++ int x = get_flags(ppp_dev_fd);
++ x = isopen? x | SC_CCP_OPEN : x &amp;~ SC_CCP_OPEN;
++ x = isup? x | SC_CCP_UP : x &amp;~ SC_CCP_UP;
++ set_flags (ppp_dev_fd, x);
++ }
++}
++
++#ifdef PPP_FILTER
++/*
++ * set_filters - set the active and pass filters in the kernel driver.
++ */
++int set_filters(struct bpf_program *pass, struct bpf_program *active)
++{
++ struct sock_fprog fp;
++
++ fp.len = pass-&gt;bf_len;
++ fp.filter = (struct sock_filter *) pass-&gt;bf_insns;
++ if (ioctl(ppp_dev_fd, PPPIOCSPASS, &amp;fp) &lt; 0) {
++ if (errno == ENOTTY)
++ warn(&quot;kernel does not support PPP filtering&quot;);
++ else
++ error(&quot;Couldn't set pass-filter in kernel: %m&quot;);
++ return 0;
++ }
++ fp.len = active-&gt;bf_len;
++ fp.filter = (struct sock_filter *) active-&gt;bf_insns;
++ if (ioctl(ppp_dev_fd, PPPIOCSACTIVE, &amp;fp) &lt; 0) {
++ error(&quot;Couldn't set active-filter in kernel: %m&quot;);
++ return 0;
++ }
++ return 1;
++}
++#endif /* PPP_FILTER */
++
++/********************************************************************
++ *
++ * get_idle_time - return how long the link has been idle.
++ */
++int
++get_idle_time(u, ip)
++ int u;
++ struct ppp_idle *ip;
++{
++ return ioctl(ppp_dev_fd, PPPIOCGIDLE, ip) &gt;= 0;
++}
++
++/********************************************************************
++ *
++ * get_ppp_stats - return statistics for the link.
++ */
++int
++get_ppp_stats(u, stats)
++ int u;
++ struct pppd_stats *stats;
++{
++ struct ifpppstatsreq req;
++
++ memset (&amp;req, 0, sizeof (req));
++
++ req.stats_ptr = (caddr_t) &amp;req.stats;
++ strlcpy(req.ifr__name, ifname, sizeof(req.ifr__name));
++ if (ioctl(sock_fd, SIOCGPPPSTATS, &amp;req) &lt; 0) {
++ error(&quot;Couldn't get PPP statistics: %m&quot;);
++ return 0;
++ }
++ stats-&gt;bytes_in = req.stats.p.ppp_ibytes;
++ stats-&gt;bytes_out = req.stats.p.ppp_obytes;
++ return 1;
++}
++
++/********************************************************************
++ *
++ * ccp_fatal_error - returns 1 if decompression was disabled as a
++ * result of an error detected after decompression of a packet,
++ * 0 otherwise. This is necessary because of patent nonsense.
++ */
++
++int ccp_fatal_error (int unit)
++{
++ int x = get_flags(ppp_dev_fd);
++
++ return x &amp; SC_DC_FERROR;
++}
++
++/********************************************************************
++ *
++ * path_to_procfs - find the path to the proc file system mount point
++ */
++static char proc_path[MAXPATHLEN];
++static int proc_path_len;
++
++static char *path_to_procfs(const char *tail)
++{
++ struct mntent *mntent;
++ FILE *fp;
++
++ if (proc_path_len == 0) {
++ /* Default the mount location of /proc */
++ strlcpy (proc_path, &quot;/proc&quot;, sizeof(proc_path));
++ proc_path_len = 5;
++ fp = fopen(MOUNTED, &quot;r&quot;);
++ if (fp != NULL) {
++ while ((mntent = getmntent(fp)) != NULL) {
++ if (strcmp(mntent-&gt;mnt_type, MNTTYPE_IGNORE) == 0)
++ continue;
++ if (strcmp(mntent-&gt;mnt_type, &quot;proc&quot;) == 0) {
++ strlcpy(proc_path, mntent-&gt;mnt_dir, sizeof(proc_path));
++ proc_path_len = strlen(proc_path);
++ break;
++ }
++ }
++ fclose (fp);
++ }
++ }
++
++ strlcpy(proc_path + proc_path_len, tail,
++ sizeof(proc_path) - proc_path_len);
++ return proc_path;
++}
++
++/*
++ * /proc/net/route parsing stuff.
++ */
++#define ROUTE_MAX_COLS 12
++FILE *route_fd = (FILE *) 0;
++static char route_buffer[512];
++static int route_dev_col, route_dest_col, route_gw_col;
++static int route_flags_col, route_mask_col;
++static int route_num_cols;
++
++static int open_route_table (void);
++static void close_route_table (void);
++static int read_route_table (struct rtentry *rt);
++
++/********************************************************************
++ *
++ * close_route_table - close the interface to the route table
++ */
++
++static void close_route_table (void)
++{
++ if (route_fd != (FILE *) 0) {
++ fclose (route_fd);
++ route_fd = (FILE *) 0;
++ }
++}
++
++/********************************************************************
++ *
++ * open_route_table - open the interface to the route table
++ */
++static char route_delims[] = &quot; \t\n&quot;;
++
++static int open_route_table (void)
++{
++ char *path;
++
++ close_route_table();
++
++ path = path_to_procfs(&quot;/net/route&quot;);
++ route_fd = fopen (path, &quot;r&quot;);
++ if (route_fd == NULL) {
++ error(&quot;can't open routing table %s: %m&quot;, path);
++ return 0;
++ }
++
++ route_dev_col = 0; /* default to usual columns */
++ route_dest_col = 1;
++ route_gw_col = 2;
++ route_flags_col = 3;
++ route_mask_col = 7;
++ route_num_cols = 8;
++
++ /* parse header line */
++ if (fgets(route_buffer, sizeof(route_buffer), route_fd) != 0) {
++ char *p = route_buffer, *q;
++ int col;
++ for (col = 0; col &lt; ROUTE_MAX_COLS; ++col) {
++ int used = 1;
++ if ((q = strtok(p, route_delims)) == 0)
++ break;
++ if (strcasecmp(q, &quot;iface&quot;) == 0)
++ route_dev_col = col;
++ else if (strcasecmp(q, &quot;destination&quot;) == 0)
++ route_dest_col = col;
++ else if (strcasecmp(q, &quot;gateway&quot;) == 0)
++ route_gw_col = col;
++ else if (strcasecmp(q, &quot;flags&quot;) == 0)
++ route_flags_col = col;
++ else if (strcasecmp(q, &quot;mask&quot;) == 0)
++ route_mask_col = col;
++ else
++ used = 0;
++ if (used &amp;&amp; col &gt;= route_num_cols)
++ route_num_cols = col + 1;
++ p = NULL;
++ }
++ }
++
++ return 1;
++}
++
++/********************************************************************
++ *
++ * read_route_table - read the next entry from the route table
++ */
++
++static int read_route_table(struct rtentry *rt)
++{
++ char *cols[ROUTE_MAX_COLS], *p;
++ int col;
++
++ memset (rt, '\0', sizeof (struct rtentry));
++
++ if (fgets (route_buffer, sizeof (route_buffer), route_fd) == (char *) 0)
++ return 0;
++
++ p = route_buffer;
++ for (col = 0; col &lt; route_num_cols; ++col) {
++ cols[col] = strtok(p, route_delims);
++ if (cols[col] == NULL)
++ return 0; /* didn't get enough columns */
++ p = NULL;
++ }
++
++ SIN_ADDR(rt-&gt;rt_dst) = strtoul(cols[route_dest_col], NULL, 16);
++ SIN_ADDR(rt-&gt;rt_gateway) = strtoul(cols[route_gw_col], NULL, 16);
++ SIN_ADDR(rt-&gt;rt_genmask) = strtoul(cols[route_mask_col], NULL, 16);
++
++ rt-&gt;rt_flags = (short) strtoul(cols[route_flags_col], NULL, 16);
++ rt-&gt;rt_dev = cols[route_dev_col];
++
++ return 1;
++}
++
++/********************************************************************
++ *
++ * defaultroute_exists - determine if there is a default route
++ */
++
++static int defaultroute_exists (struct rtentry *rt)
++{
++ int result = 0;
++
++ if (!open_route_table())
++ return 0;
++
++ while (read_route_table(rt) != 0) {
++ if ((rt-&gt;rt_flags &amp; RTF_UP) == 0)
++ continue;
++
++ if (kernel_version &gt; KVERSION(2,1,0) &amp;&amp; SIN_ADDR(rt-&gt;rt_genmask) != 0)
++ continue;
++ if (SIN_ADDR(rt-&gt;rt_dst) == 0L) {
++ result = 1;
++ break;
++ }
++ }
++
++ close_route_table();
++ return result;
++}
++
++/*
++ * have_route_to - determine if the system has any route to
++ * a given IP address. `addr' is in network byte order.
++ * Return value is 1 if yes, 0 if no, -1 if don't know.
++ * For demand mode to work properly, we have to ignore routes
++ * through our own interface.
++ */
++int have_route_to(u_int32_t addr)
++{
++ struct rtentry rt;
++ int result = 0;
++
++ if (!open_route_table())
++ return -1; /* don't know */
++
++ while (read_route_table(&amp;rt)) {
++ if ((rt.rt_flags &amp; RTF_UP) == 0 || strcmp(rt.rt_dev, ifname) == 0)
++ continue;
++ if ((addr &amp; SIN_ADDR(rt.rt_genmask)) == SIN_ADDR(rt.rt_dst)) {
++ result = 1;
++ break;
++ }
++ }
++
++ close_route_table();
++ return result;
++}
++
++/********************************************************************
++ *
++ * sifdefaultroute - assign a default route through the address given.
++ */
++
++int sifdefaultroute (int unit, u_int32_t ouraddr, u_int32_t gateway)
++{
++ struct rtentry rt;
++
++ if (defaultroute_exists(&amp;rt) &amp;&amp; strcmp(rt.rt_dev, ifname) != 0) {
++ u_int32_t old_gateway = SIN_ADDR(rt.rt_gateway);
++
++ if (old_gateway != gateway)
++ error(&quot;not replacing existing default route to %s [%I]&quot;,
++ rt.rt_dev, old_gateway);
++ return 0;
++ }
++
++ memset (&amp;rt, '\0', sizeof (rt));
++ SET_SA_FAMILY (rt.rt_dst, AF_INET);
++ SET_SA_FAMILY (rt.rt_gateway, AF_INET);
++
++ if (kernel_version &gt; KVERSION(2,1,0)) {
++ SET_SA_FAMILY (rt.rt_genmask, AF_INET);
++ SIN_ADDR(rt.rt_genmask) = 0L;
++ }
++
++ SIN_ADDR(rt.rt_gateway) = gateway;
++
++ rt.rt_flags = RTF_UP | RTF_GATEWAY;
++ if (ioctl(sock_fd, SIOCADDRT, &amp;rt) &lt; 0) {
++ if ( ! ok_error ( errno ))
++ error(&quot;default route ioctl(SIOCADDRT): %m(%d)&quot;, errno);
++ return 0;
++ }
++
++ default_route_gateway = gateway;
++ return 1;
++}
++
++/********************************************************************
++ *
++ * cifdefaultroute - delete a default route through the address given.
++ */
++
++int cifdefaultroute (int unit, u_int32_t ouraddr, u_int32_t gateway)
++{
++ struct rtentry rt;
++
++ default_route_gateway = 0;
++
++ memset (&amp;rt, '\0', sizeof (rt));
++ SET_SA_FAMILY (rt.rt_dst, AF_INET);
++ SET_SA_FAMILY (rt.rt_gateway, AF_INET);
++
++ if (kernel_version &gt; KVERSION(2,1,0)) {
++ SET_SA_FAMILY (rt.rt_genmask, AF_INET);
++ SIN_ADDR(rt.rt_genmask) = 0L;
++ }
++
++ SIN_ADDR(rt.rt_gateway) = gateway;
++
++ rt.rt_flags = RTF_UP | RTF_GATEWAY;
++ if (ioctl(sock_fd, SIOCDELRT, &amp;rt) &lt; 0 &amp;&amp; errno != ESRCH) {
++ if (still_ppp()) {
++ if ( ! ok_error ( errno ))
++ error(&quot;default route ioctl(SIOCDELRT): %m (%d)&quot;, errno);
++ return 0;
++ }
++ }
++
++ return 1;
++}
++
++/********************************************************************
++ *
++ * sifproxyarp - Make a proxy ARP entry for the peer.
++ */
++
++int sifproxyarp (int unit, u_int32_t his_adr)
++{
++ struct arpreq arpreq;
++ char *forw_path;
++
++ if (has_proxy_arp == 0) {
++ memset (&amp;arpreq, '\0', sizeof(arpreq));
++
++ SET_SA_FAMILY(arpreq.arp_pa, AF_INET);
++ SIN_ADDR(arpreq.arp_pa) = his_adr;
++ arpreq.arp_flags = ATF_PERM | ATF_PUBL;
++/*
++ * Get the hardware address of an interface on the same subnet
++ * as our local address.
++ */
++ if (!get_ether_addr(his_adr, &amp;arpreq.arp_ha, proxy_arp_dev,
++ sizeof(proxy_arp_dev))) {
++ error(&quot;Cannot determine ethernet address for proxy ARP&quot;);
++ return 0;
++ }
++ strlcpy(arpreq.arp_dev, proxy_arp_dev, sizeof(arpreq.arp_dev));
++
++ if (ioctl(sock_fd, SIOCSARP, (caddr_t)&amp;arpreq) &lt; 0) {
++ if ( ! ok_error ( errno ))
++ error(&quot;ioctl(SIOCSARP): %m(%d)&quot;, errno);
++ return 0;
++ }
++ proxy_arp_addr = his_adr;
++ has_proxy_arp = 1;
++
++ if (tune_kernel) {
++ forw_path = path_to_procfs(&quot;/sys/net/ipv4/ip_forward&quot;);
++ if (forw_path != 0) {
++ int fd = open(forw_path, O_WRONLY);
++ if (fd &gt;= 0) {
++ if (write(fd, &quot;1&quot;, 1) != 1)
++ error(&quot;Couldn't enable IP forwarding: %m&quot;);
++ close(fd);
++ }
++ }
++ }
++ }
++
++ return 1;
++}
++
++/********************************************************************
++ *
++ * cifproxyarp - Delete the proxy ARP entry for the peer.
++ */
++
++int cifproxyarp (int unit, u_int32_t his_adr)
++{
++ struct arpreq arpreq;
++
++ if (has_proxy_arp) {
++ has_proxy_arp = 0;
++ memset (&amp;arpreq, '\0', sizeof(arpreq));
++ SET_SA_FAMILY(arpreq.arp_pa, AF_INET);
++ SIN_ADDR(arpreq.arp_pa) = his_adr;
++ arpreq.arp_flags = ATF_PERM | ATF_PUBL;
++ strlcpy(arpreq.arp_dev, proxy_arp_dev, sizeof(arpreq.arp_dev));
++
++ if (ioctl(sock_fd, SIOCDARP, (caddr_t)&amp;arpreq) &lt; 0) {
++ if ( ! ok_error ( errno ))
++ warn(&quot;ioctl(SIOCDARP): %m(%d)&quot;, errno);
++ return 0;
++ }
++ }
++ return 1;
++}
++
++/********************************************************************
++ *
++ * get_ether_addr - get the hardware address of an interface on the
++ * the same subnet as ipaddr.
++ */
++
++static int get_ether_addr (u_int32_t ipaddr,
++ struct sockaddr *hwaddr,
++ char *name, int namelen)
++{
++ struct ifreq *ifr, *ifend;
++ u_int32_t ina, mask;
++ char *aliasp;
++ struct ifreq ifreq;
++ struct ifconf ifc;
++ struct ifreq ifs[MAX_IFS];
++
++ ifc.ifc_len = sizeof(ifs);
++ ifc.ifc_req = ifs;
++ if (ioctl(sock_fd, SIOCGIFCONF, &amp;ifc) &lt; 0) {
++ if ( ! ok_error ( errno ))
++ error(&quot;ioctl(SIOCGIFCONF): %m(%d)&quot;, errno);
++ return 0;
++ }
++
++ SYSDEBUG ((LOG_DEBUG, &quot;proxy arp: scanning %d interfaces for IP %s&quot;,
++ ifc.ifc_len / sizeof(struct ifreq), ip_ntoa(ipaddr)));
++/*
++ * Scan through looking for an interface with an Internet
++ * address on the same subnet as `ipaddr'.
++ */
++ ifend = ifs + (ifc.ifc_len / sizeof(struct ifreq));
++ for (ifr = ifc.ifc_req; ifr &lt; ifend; ifr++) {
++ if (ifr-&gt;ifr_addr.sa_family == AF_INET) {
++ ina = SIN_ADDR(ifr-&gt;ifr_addr);
++ strlcpy(ifreq.ifr_name, ifr-&gt;ifr_name, sizeof(ifreq.ifr_name));
++ SYSDEBUG ((LOG_DEBUG, &quot;proxy arp: examining interface %s&quot;,
++ ifreq.ifr_name));
++/*
++ * Check that the interface is up, and not point-to-point
++ * nor loopback.
++ */
++ if (ioctl(sock_fd, SIOCGIFFLAGS, &amp;ifreq) &lt; 0)
++ continue;
++
++ if (((ifreq.ifr_flags ^ FLAGS_GOOD) &amp; FLAGS_MASK) != 0)
++ continue;
++/*
++ * Get its netmask and check that it's on the right subnet.
++ */
++ if (ioctl(sock_fd, SIOCGIFNETMASK, &amp;ifreq) &lt; 0)
++ continue;
++
++ mask = SIN_ADDR(ifreq.ifr_addr);
++ SYSDEBUG ((LOG_DEBUG, &quot;proxy arp: interface addr %s mask %lx&quot;,
++ ip_ntoa(ina), ntohl(mask)));
++
++ if (((ipaddr ^ ina) &amp; mask) != 0)
++ continue;
++ break;
++ }
++ }
++
++ if (ifr &gt;= ifend)
++ return 0;
++
++ strlcpy(name, ifreq.ifr_name, namelen);
++
++ /* trim off the :1 in eth0:1 */
++ aliasp = strchr(name, ':');
++ if (aliasp != 0)
++ *aliasp = 0;
++
++ info(&quot;found interface %s for proxy arp&quot;, name);
++/*
++ * Now get the hardware address.
++ */
++ memset (&amp;ifreq.ifr_hwaddr, 0, sizeof (struct sockaddr));
++ if (ioctl (sock_fd, SIOCGIFHWADDR, &amp;ifreq) &lt; 0) {
++ error(&quot;SIOCGIFHWADDR(%s): %m(%d)&quot;, ifreq.ifr_name, errno);
++ return 0;
++ }
++
++ memcpy (hwaddr,
++ &amp;ifreq.ifr_hwaddr,
++ sizeof (struct sockaddr));
++
++ SYSDEBUG ((LOG_DEBUG,
++ &quot;proxy arp: found hwaddr %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x&quot;,
++ (int) ((unsigned char *) &amp;hwaddr-&gt;sa_data)[0],
++ (int) ((unsigned char *) &amp;hwaddr-&gt;sa_data)[1],
++ (int) ((unsigned char *) &amp;hwaddr-&gt;sa_data)[2],
++ (int) ((unsigned char *) &amp;hwaddr-&gt;sa_data)[3],
++ (int) ((unsigned char *) &amp;hwaddr-&gt;sa_data)[4],
++ (int) ((unsigned char *) &amp;hwaddr-&gt;sa_data)[5],
++ (int) ((unsigned char *) &amp;hwaddr-&gt;sa_data)[6],
++ (int) ((unsigned char *) &amp;hwaddr-&gt;sa_data)[7]));
++ return 1;
++}
++
++/*
++ * get_if_hwaddr - get the hardware address for the specified
++ * network interface device.
++ */
++int
++get_if_hwaddr(u_char *addr, char *name)
++{
++ struct ifreq ifreq;
++ int ret, sock_fd;
++
++ sock_fd = socket(AF_INET, SOCK_DGRAM, 0);
++ if (sock_fd &lt; 0)
++ return 0;
++ memset(&amp;ifreq.ifr_hwaddr, 0, sizeof(struct sockaddr));
++ strlcpy(ifreq.ifr_name, name, sizeof(ifreq.ifr_name));
++ ret = ioctl(sock_fd, SIOCGIFHWADDR, &amp;ifreq);
++ close(sock_fd);
++ if (ret &gt;= 0)
++ memcpy(addr, ifreq.ifr_hwaddr.sa_data, 6);
++ return ret;
++}
++
++/*
++ * get_first_ethernet - return the name of the first ethernet-style
++ * interface on this system.
++ */
++char *
++get_first_ethernet()
++{
++ return &quot;eth0&quot;;
++}
++
++/********************************************************************
++ *
++ * Return user specified netmask, modified by any mask we might determine
++ * for address `addr' (in network byte order).
++ * Here we scan through the system's list of interfaces, looking for
++ * any non-point-to-point interfaces which might appear to be on the same
++ * network as `addr'. If we find any, we OR in their netmask to the
++ * user-specified netmask.
++ */
++
++u_int32_t GetMask (u_int32_t addr)
++{
++ u_int32_t mask, nmask, ina;
++ struct ifreq *ifr, *ifend, ifreq;
++ struct ifconf ifc;
++ struct ifreq ifs[MAX_IFS];
++
++ addr = ntohl(addr);
++
++ if (IN_CLASSA(addr)) /* determine network mask for address class */
++ nmask = IN_CLASSA_NET;
++ else if (IN_CLASSB(addr))
++ nmask = IN_CLASSB_NET;
++ else
++ nmask = IN_CLASSC_NET;
++
++ /* class D nets are disallowed by bad_ip_adrs */
++ mask = netmask | htonl(nmask);
++/*
++ * Scan through the system's network interfaces.
++ */
++ ifc.ifc_len = sizeof(ifs);
++ ifc.ifc_req = ifs;
++ if (ioctl(sock_fd, SIOCGIFCONF, &amp;ifc) &lt; 0) {
++ if ( ! ok_error ( errno ))
++ warn(&quot;ioctl(SIOCGIFCONF): %m(%d)&quot;, errno);
++ return mask;
++ }
++
++ ifend = (struct ifreq *) (ifc.ifc_buf + ifc.ifc_len);
++ for (ifr = ifc.ifc_req; ifr &lt; ifend; ifr++) {
++/*
++ * Check the interface's internet address.
++ */
++ if (ifr-&gt;ifr_addr.sa_family != AF_INET)
++ continue;
++ ina = SIN_ADDR(ifr-&gt;ifr_addr);
++ if (((ntohl(ina) ^ addr) &amp; nmask) != 0)
++ continue;
++/*
++ * Check that the interface is up, and not point-to-point nor loopback.
++ */
++ strlcpy(ifreq.ifr_name, ifr-&gt;ifr_name, sizeof(ifreq.ifr_name));
++ if (ioctl(sock_fd, SIOCGIFFLAGS, &amp;ifreq) &lt; 0)
++ continue;
++
++ if (((ifreq.ifr_flags ^ FLAGS_GOOD) &amp; FLAGS_MASK) != 0)
++ continue;
++/*
++ * Get its netmask and OR it into our mask.
++ */
++ if (ioctl(sock_fd, SIOCGIFNETMASK, &amp;ifreq) &lt; 0)
++ continue;
++ mask |= SIN_ADDR(ifreq.ifr_addr);
++ break;
++ }
++ return mask;
++}
++
++/********************************************************************
++ *
++ * Internal routine to decode the version.modification.patch level
++ */
++
++static void decode_version (char *buf, int *version,
++ int *modification, int *patch)
++{
++ char *endp;
++
++ *version = (int) strtoul (buf, &amp;endp, 10);
++ *modification = 0;
++ *patch = 0;
++
++ if (endp != buf &amp;&amp; *endp == '.') {
++ buf = endp + 1;
++ *modification = (int) strtoul (buf, &amp;endp, 10);
++ if (endp != buf &amp;&amp; *endp == '.') {
++ buf = endp + 1;
++ *patch = (int) strtoul (buf, &amp;buf, 10);
++ }
++ }
++}
++
++/********************************************************************
++ *
++ * Procedure to determine if the PPP line discipline is registered.
++ */
++
++static int
++ppp_registered(void)
++{
++ int local_fd;
++ int mfd = -1;
++ int ret = 0;
++ char slave[16];
++
++ /*
++ * We used to open the serial device and set it to the ppp line
++ * discipline here, in order to create a ppp unit. But that is
++ * not a good idea - the user might have specified a device that
++ * they can't open (permission, or maybe it doesn't really exist).
++ * So we grab a pty master/slave pair and use that.
++ */
++ if (!get_pty(&amp;mfd, &amp;local_fd, slave, 0)) {
++ no_ppp_msg = &quot;Couldn't determine if PPP is supported (no free ptys)&quot;;
++ return 0;
++ }
++
++ /*
++ * Try to put the device into the PPP discipline.
++ */
++ if (ioctl(local_fd, TIOCSETD, &amp;ppp_disc) &lt; 0) {
++ error(&quot;ioctl(TIOCSETD(PPP)): %m(%d)&quot;, errno);
++ } else
++ ret = 1;
++
++ close(local_fd);
++ close(mfd);
++ return ret;
++}
++
++/********************************************************************
++ *
++ * ppp_available - check whether the system has any ppp interfaces
++ * (in fact we check whether we can do an ioctl on ppp0).
++ */
++
++int ppp_available(void)
++{
++ int s, ok, fd;
++ struct ifreq ifr;
++ int size;
++ int my_version, my_modification, my_patch;
++ int osmaj, osmin, ospatch;
++
++ no_ppp_msg =
++ &quot;This system lacks kernel support for PPP. This could be because\n&quot;
++ &quot;the PPP kernel module could not be loaded, or because PPP was not\n&quot;
++ &quot;included in the kernel configuration. If PPP was included as a\n&quot;
++ &quot;module, try `/sbin/modprobe -v ppp'. If that fails, check that\n&quot;
++ &quot;ppp.o exists in /lib/modules/`uname -r`/net.\n&quot;
++ &quot;See README.linux file in the ppp distribution for more details.\n&quot;;
++
++ /* get the kernel version now, since we are called before sys_init */
++ uname(&amp;utsname);
++ osmaj = osmin = ospatch = 0;
++ sscanf(utsname.release, &quot;%d.%d.%d&quot;, &amp;osmaj, &amp;osmin, &amp;ospatch);
++ kernel_version = KVERSION(osmaj, osmin, ospatch);
++
++ fd = open(&quot;/dev/ppp&quot;, O_RDWR);
++#if 0
++ if (fd &lt; 0 &amp;&amp; errno == ENOENT) {
++ /* try making it and see if that helps. */
++ if (mknod(&quot;/dev/ppp&quot;, S_IFCHR | S_IRUSR | S_IWUSR,
++ makedev(108, 0)) &gt;= 0) {
++ fd = open(&quot;/dev/ppp&quot;, O_RDWR);
++ if (fd &gt;= 0)
++ info(&quot;Created /dev/ppp device node&quot;);
++ else
++ unlink(&quot;/dev/ppp&quot;); /* didn't work, undo the mknod */
++ } else if (errno == EEXIST) {
++ fd = open(&quot;/dev/ppp&quot;, O_RDWR);
++ }
++ }
++#endif /* 0 */
++ if (fd &gt;= 0) {
++ new_style_driver = 1;
++
++ /* XXX should get from driver */
++ driver_version = 2;
++ driver_modification = 4;
++ driver_patch = 0;
++ close(fd);
++ return 1;
++ }
++ if (kernel_version &gt;= KVERSION(2,3,13)) {
++ if (errno == ENOENT)
++ no_ppp_msg =
++ &quot;pppd is unable to open the /dev/ppp device.\n&quot;
++ &quot;You need to create the /dev/ppp device node by\n&quot;
++ &quot;executing the following command as root:\n&quot;
++ &quot; mknod /dev/ppp c 108 0\n&quot;;
++ return 0;
++ }
++
++/*
++ * Open a socket for doing the ioctl operations.
++ */
++ s = socket(AF_INET, SOCK_DGRAM, 0);
++ if (s &lt; 0)
++ return 0;
++
++ strlcpy (ifr.ifr_name, &quot;ppp0&quot;, sizeof (ifr.ifr_name));
++ ok = ioctl(s, SIOCGIFFLAGS, (caddr_t) &amp;ifr) &gt;= 0;
++/*
++ * If the device did not exist then attempt to create one by putting the
++ * current tty into the PPP discipline. If this works then obtain the
++ * flags for the device again.
++ */
++ if (!ok) {
++ if (ppp_registered()) {
++ strlcpy (ifr.ifr_name, &quot;ppp0&quot;, sizeof (ifr.ifr_name));
++ ok = ioctl(s, SIOCGIFFLAGS, (caddr_t) &amp;ifr) &gt;= 0;
++ }
++ }
++/*
++ * Ensure that the hardware address is for PPP and not something else
++ */
++ if (ok)
++ ok = ioctl (s, SIOCGIFHWADDR, (caddr_t) &amp;ifr) &gt;= 0;
++
++ if (ok &amp;&amp; ((ifr.ifr_hwaddr.sa_family &amp; ~0xFF) != ARPHRD_PPP))
++ ok = 0;
++
++/*
++ * This is the PPP device. Validate the version of the driver at this
++ * point to ensure that this program will work with the driver.
++ */
++ if (ok) {
++ char abBuffer [1024];
++
++ ifr.ifr_data = abBuffer;
++ size = ioctl (s, SIOCGPPPVER, (caddr_t) &amp;ifr);
++ if (size &lt; 0) {
++ error(&quot;Couldn't read driver version: %m&quot;);
++ ok = 0;
++ no_ppp_msg = &quot;Sorry, couldn't verify kernel driver version\n&quot;;
++
++ } else {
++ decode_version(abBuffer,
++ &amp;driver_version,
++ &amp;driver_modification,
++ &amp;driver_patch);
++/*
++ * Validate the version of the driver against the version that we used.
++ */
++ decode_version(VERSION,
++ &amp;my_version,
++ &amp;my_modification,
++ &amp;my_patch);
++
++ /* The version numbers must match */
++ if (driver_version != my_version)
++ ok = 0;
++
++ /* The modification levels must be legal */
++ if (driver_modification &lt; 3) {
++ if (driver_modification &gt;= 2) {
++ /* we can cope with 2.2.0 and above */
++ driver_is_old = 1;
++ } else {
++ ok = 0;
++ }
++ }
++
++ close (s);
++ if (!ok) {
++ slprintf(route_buffer, sizeof(route_buffer),
++ &quot;Sorry - PPP driver version %d.%d.%d is out of date\n&quot;,
++ driver_version, driver_modification, driver_patch);
++
++ no_ppp_msg = route_buffer;
++ }
++ }
++ }
++ return ok;
++}
++
++/********************************************************************
++ *
++ * sifvjcomp - config tcp header compression
++ */
++
++int sifvjcomp (int u, int vjcomp, int cidcomp, int maxcid)
++{
++ u_int x = get_flags(ppp_dev_fd);
++
++ if (vjcomp) {
++ if (ioctl (ppp_dev_fd, PPPIOCSMAXCID, (caddr_t) &amp;maxcid) &lt; 0) {
++ if (! ok_error (errno))
++ error(&quot;ioctl(PPPIOCSMAXCID): %m(%d)&quot;, errno);
++ vjcomp = 0;
++ }
++ }
++
++ x = vjcomp ? x | SC_COMP_TCP : x &amp;~ SC_COMP_TCP;
++ x = cidcomp ? x &amp; ~SC_NO_TCP_CCID : x | SC_NO_TCP_CCID;
++ set_flags (ppp_dev_fd, x);
++
++ return 1;
++}
++
++/********************************************************************
++ *
++ * sifup - Config the interface up and enable IP packets to pass.
++ */
++
++int sifup(int u)
++{
++ struct ifreq ifr;
++
++ memset (&amp;ifr, '\0', sizeof (ifr));
++ strlcpy(ifr.ifr_name, ifname, sizeof (ifr.ifr_name));
++ if (ioctl(sock_fd, SIOCGIFFLAGS, (caddr_t) &amp;ifr) &lt; 0) {
++ if (! ok_error (errno))
++ error(&quot;ioctl (SIOCGIFFLAGS): %m(%d)&quot;, errno);
++ return 0;
++ }
++
++ ifr.ifr_flags |= (IFF_UP | IFF_POINTOPOINT);
++ if (ioctl(sock_fd, SIOCSIFFLAGS, (caddr_t) &amp;ifr) &lt; 0) {
++ if (! ok_error (errno))
++ error(&quot;ioctl(SIOCSIFFLAGS): %m(%d)&quot;, errno);
++ return 0;
++ }
++ if_is_up++;
++
++ return 1;
++}
++
++/********************************************************************
++ *
++ * sifdown - Disable the indicated protocol and config the interface
++ * down if there are no remaining protocols.
++ */
++
++int sifdown (int u)
++{
++ struct ifreq ifr;
++
++ if (if_is_up &amp;&amp; --if_is_up &gt; 0)
++ return 1;
++
++ memset (&amp;ifr, '\0', sizeof (ifr));
++ strlcpy(ifr.ifr_name, ifname, sizeof (ifr.ifr_name));
++ if (ioctl(sock_fd, SIOCGIFFLAGS, (caddr_t) &amp;ifr) &lt; 0) {
++ if (! ok_error (errno))
++ error(&quot;ioctl (SIOCGIFFLAGS): %m(%d)&quot;, errno);
++ return 0;
++ }
++
++ ifr.ifr_flags &amp;= ~IFF_UP;
++ ifr.ifr_flags |= IFF_POINTOPOINT;
++ if (ioctl(sock_fd, SIOCSIFFLAGS, (caddr_t) &amp;ifr) &lt; 0) {
++ if (! ok_error (errno))
++ error(&quot;ioctl(SIOCSIFFLAGS): %m(%d)&quot;, errno);
++ return 0;
++ }
++ return 1;
++}
++
++/********************************************************************
++ *
++ * sifaddr - Config the interface IP addresses and netmask.
++ */
++
++int sifaddr (int unit, u_int32_t our_adr, u_int32_t his_adr,
++ u_int32_t net_mask)
++{
++ struct ifreq ifr;
++ struct rtentry rt;
++
++ memset (&amp;ifr, '\0', sizeof (ifr));
++ memset (&amp;rt, '\0', sizeof (rt));
++
++ SET_SA_FAMILY (ifr.ifr_addr, AF_INET);
++ SET_SA_FAMILY (ifr.ifr_dstaddr, AF_INET);
++ SET_SA_FAMILY (ifr.ifr_netmask, AF_INET);
++
++ strlcpy (ifr.ifr_name, ifname, sizeof (ifr.ifr_name));
++/*
++ * Set our IP address
++ */
++ SIN_ADDR(ifr.ifr_addr) = our_adr;
++ if (ioctl(sock_fd, SIOCSIFADDR, (caddr_t) &amp;ifr) &lt; 0) {
++ if (errno != EEXIST) {
++ if (! ok_error (errno))
++ error(&quot;ioctl(SIOCSIFADDR): %m(%d)&quot;, errno);
++ }
++ else {
++ warn(&quot;ioctl(SIOCSIFADDR): Address already exists&quot;);
++ }
++ return (0);
++ }
++/*
++ * Set the gateway address
++ */
++ SIN_ADDR(ifr.ifr_dstaddr) = his_adr;
++ if (ioctl(sock_fd, SIOCSIFDSTADDR, (caddr_t) &amp;ifr) &lt; 0) {
++ if (! ok_error (errno))
++ error(&quot;ioctl(SIOCSIFDSTADDR): %m(%d)&quot;, errno);
++ return (0);
++ }
++/*
++ * Set the netmask.
++ * For recent kernels, force the netmask to 255.255.255.255.
++ */
++ if (kernel_version &gt;= KVERSION(2,1,16))
++ net_mask = ~0L;
++ if (net_mask != 0) {
++ SIN_ADDR(ifr.ifr_netmask) = net_mask;
++ if (ioctl(sock_fd, SIOCSIFNETMASK, (caddr_t) &amp;ifr) &lt; 0) {
++ if (! ok_error (errno))
++ error(&quot;ioctl(SIOCSIFNETMASK): %m(%d)&quot;, errno);
++ return (0);
++ }
++ }
++/*
++ * Add the device route
++ */
++ if (kernel_version &lt; KVERSION(2,1,16)) {
++ SET_SA_FAMILY (rt.rt_dst, AF_INET);
++ SET_SA_FAMILY (rt.rt_gateway, AF_INET);
++ rt.rt_dev = ifname;
++
++ SIN_ADDR(rt.rt_gateway) = 0L;
++ SIN_ADDR(rt.rt_dst) = his_adr;
++ rt.rt_flags = RTF_UP | RTF_HOST;
++
++ if (kernel_version &gt; KVERSION(2,1,0)) {
++ SET_SA_FAMILY (rt.rt_genmask, AF_INET);
++ SIN_ADDR(rt.rt_genmask) = -1L;
++ }
++
++ if (ioctl(sock_fd, SIOCADDRT, &amp;rt) &lt; 0) {
++ if (! ok_error (errno))
++ error(&quot;ioctl(SIOCADDRT) device route: %m(%d)&quot;, errno);
++ return (0);
++ }
++ }
++
++ /* set ip_dynaddr in demand mode if address changes */
++ if (demand &amp;&amp; tune_kernel &amp;&amp; !dynaddr_set
++ &amp;&amp; our_old_addr &amp;&amp; our_old_addr != our_adr) {
++ /* set ip_dynaddr if possible */
++ char *path;
++ int fd;
++
++ path = path_to_procfs(&quot;/sys/net/ipv4/ip_dynaddr&quot;);
++ if (path != 0 &amp;&amp; (fd = open(path, O_WRONLY)) &gt;= 0) {
++ if (write(fd, &quot;1&quot;, 1) != 1)
++ error(&quot;Couldn't enable dynamic IP addressing: %m&quot;);
++ close(fd);
++ }
++ dynaddr_set = 1; /* only 1 attempt */
++ }
++ our_old_addr = 0;
++
++ return 1;
++}
++
++/********************************************************************
++ *
++ * cifaddr - Clear the interface IP addresses, and delete routes
++ * through the interface if possible.
++ */
++
++int cifaddr (int unit, u_int32_t our_adr, u_int32_t his_adr)
++{
++ struct ifreq ifr;
++
++ if (kernel_version &lt; KVERSION(2,1,16)) {
++/*
++ * Delete the route through the device
++ */
++ struct rtentry rt;
++ memset (&amp;rt, '\0', sizeof (rt));
++
++ SET_SA_FAMILY (rt.rt_dst, AF_INET);
++ SET_SA_FAMILY (rt.rt_gateway, AF_INET);
++ rt.rt_dev = ifname;
++
++ SIN_ADDR(rt.rt_gateway) = 0;
++ SIN_ADDR(rt.rt_dst) = his_adr;
++ rt.rt_flags = RTF_UP | RTF_HOST;
++
++ if (kernel_version &gt; KVERSION(2,1,0)) {
++ SET_SA_FAMILY (rt.rt_genmask, AF_INET);
++ SIN_ADDR(rt.rt_genmask) = -1L;
++ }
++
++ if (ioctl(sock_fd, SIOCDELRT, &amp;rt) &lt; 0 &amp;&amp; errno != ESRCH) {
++ if (still_ppp() &amp;&amp; ! ok_error (errno))
++ error(&quot;ioctl(SIOCDELRT) device route: %m(%d)&quot;, errno);
++ return (0);
++ }
++ }
++
++ /* This way it is possible to have an IPX-only or IPv6-only interface */
++ memset(&amp;ifr, 0, sizeof(ifr));
++ SET_SA_FAMILY(ifr.ifr_addr, AF_INET);
++ strlcpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
++
++ if (ioctl(sock_fd, SIOCSIFADDR, (caddr_t) &amp;ifr) &lt; 0) {
++ if (! ok_error (errno)) {
++ error(&quot;ioctl(SIOCSIFADDR): %m(%d)&quot;, errno);
++ return 0;
++ }
++ }
++
++ our_old_addr = our_adr;
++
++ return 1;
++}
++
++#ifdef INET6
++/********************************************************************
++ *
++ * sif6addr - Config the interface with an IPv6 link-local address
++ */
++int sif6addr (int unit, eui64_t our_eui64, eui64_t his_eui64)
++{
++ struct in6_ifreq ifr6;
++ struct ifreq ifr;
++ struct in6_rtmsg rt6;
++
++ if (sock6_fd &lt; 0) {
++ errno = -sock6_fd;
++ error(&quot;IPv6 socket creation failed: %m&quot;);
++ return 0;
++ }
++ memset(&amp;ifr, 0, sizeof (ifr));
++ strlcpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
++ if (ioctl(sock6_fd, SIOCGIFINDEX, (caddr_t) &amp;ifr) &lt; 0) {
++ error(&quot;sif6addr: ioctl(SIOCGIFINDEX): %m (%d)&quot;, errno);
++ return 0;
++ }
++
++ /* Local interface */
++ memset(&amp;ifr6, 0, sizeof(ifr6));
++ IN6_LLADDR_FROM_EUI64(ifr6.ifr6_addr, our_eui64);
++ ifr6.ifr6_ifindex = ifr.ifr_ifindex;
++ ifr6.ifr6_prefixlen = 10;
++
++ if (ioctl(sock6_fd, SIOCSIFADDR, &amp;ifr6) &lt; 0) {
++ error(&quot;sif6addr: ioctl(SIOCSIFADDR): %m (%d)&quot;, errno);
++ return 0;
++ }
++
++ /* Route to remote host */
++ memset(&amp;rt6, 0, sizeof(rt6));
++ IN6_LLADDR_FROM_EUI64(rt6.rtmsg_dst, his_eui64);
++ rt6.rtmsg_flags = RTF_UP;
++ rt6.rtmsg_dst_len = 10;
++ rt6.rtmsg_ifindex = ifr.ifr_ifindex;
++ rt6.rtmsg_metric = 1;
++
++ if (ioctl(sock6_fd, SIOCADDRT, &amp;rt6) &lt; 0) {
++ error(&quot;sif6addr: ioctl(SIOCADDRT): %m (%d)&quot;, errno);
++ return 0;
++ }
++
++ return 1;
++}
++
++
++/********************************************************************
++ *
++ * cif6addr - Remove IPv6 address from interface
++ */
++int cif6addr (int unit, eui64_t our_eui64, eui64_t his_eui64)
++{
++ struct ifreq ifr;
++ struct in6_ifreq ifr6;
++
++ if (sock6_fd &lt; 0) {
++ errno = -sock6_fd;
++ error(&quot;IPv6 socket creation failed: %m&quot;);
++ return 0;
++ }
++ memset(&amp;ifr, 0, sizeof(ifr));
++ strlcpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
++ if (ioctl(sock6_fd, SIOCGIFINDEX, (caddr_t) &amp;ifr) &lt; 0) {
++ error(&quot;cif6addr: ioctl(SIOCGIFINDEX): %m (%d)&quot;, errno);
++ return 0;
++ }
++
++ memset(&amp;ifr6, 0, sizeof(ifr6));
++ IN6_LLADDR_FROM_EUI64(ifr6.ifr6_addr, our_eui64);
++ ifr6.ifr6_ifindex = ifr.ifr_ifindex;
++ ifr6.ifr6_prefixlen = 10;
++
++ if (ioctl(sock6_fd, SIOCDIFADDR, &amp;ifr6) &lt; 0) {
++ if (errno != EADDRNOTAVAIL) {
++ if (! ok_error (errno))
++ error(&quot;cif6addr: ioctl(SIOCDIFADDR): %m (%d)&quot;, errno);
++ }
++ else {
++ warn(&quot;cif6addr: ioctl(SIOCDIFADDR): No such address&quot;);
++ }
++ return (0);
++ }
++ return 1;
++}
++#endif /* INET6 */
++
++/*
++ * get_pty - get a pty master/slave pair and chown the slave side
++ * to the uid given. Assumes slave_name points to &gt;= 16 bytes of space.
++ */
++int
++get_pty(master_fdp, slave_fdp, slave_name, uid)
++ int *master_fdp;
++ int *slave_fdp;
++ char *slave_name;
++ int uid;
++{
++ int i, mfd, sfd = -1;
++ char pty_name[16];
++ struct termios tios;
++
++#ifdef TIOCGPTN
++ /*
++ * Try the unix98 way first.
++ */
++ mfd = open(&quot;/dev/ptmx&quot;, O_RDWR);
++ if (mfd &gt;= 0) {
++ int ptn;
++ if (ioctl(mfd, TIOCGPTN, &amp;ptn) &gt;= 0) {
++ slprintf(pty_name, sizeof(pty_name), &quot;/dev/pts/%d&quot;, ptn);
++ chmod(pty_name, S_IRUSR | S_IWUSR);
++#ifdef TIOCSPTLCK
++ ptn = 0;
++ if (ioctl(mfd, TIOCSPTLCK, &amp;ptn) &lt; 0)
++ warn(&quot;Couldn't unlock pty slave %s: %m&quot;, pty_name);
++#endif
++ if ((sfd = open(pty_name, O_RDWR | O_NOCTTY)) &lt; 0)
++ warn(&quot;Couldn't open pty slave %s: %m&quot;, pty_name);
++ }
++ }
++#endif /* TIOCGPTN */
++
++ if (sfd &lt; 0) {
++ /* the old way - scan through the pty name space */
++ for (i = 0; i &lt; 64; ++i) {
++ slprintf(pty_name, sizeof(pty_name), &quot;/dev/pty%c%x&quot;,
++ 'p' + i / 16, i % 16);
++ mfd = open(pty_name, O_RDWR, 0);
++ if (mfd &gt;= 0) {
++ pty_name[5] = 't';
++ sfd = open(pty_name, O_RDWR | O_NOCTTY, 0);
++ if (sfd &gt;= 0) {
++ fchown(sfd, uid, -1);
++ fchmod(sfd, S_IRUSR | S_IWUSR);
++ break;
++ }
++ close(mfd);
++ }
++ }
++ }
++
++ if (sfd &lt; 0)
++ return 0;
++
++ strlcpy(slave_name, pty_name, 16);
++ *master_fdp = mfd;
++ *slave_fdp = sfd;
++ if (tcgetattr(sfd, &amp;tios) == 0) {
++ tios.c_cflag &amp;= ~(CSIZE | CSTOPB | PARENB);
++ tios.c_cflag |= CS8 | CREAD | CLOCAL;
++ tios.c_iflag = IGNPAR;
++ tios.c_oflag = 0;
++ tios.c_lflag = 0;
++ if (tcsetattr(sfd, TCSAFLUSH, &amp;tios) &lt; 0)
++ warn(&quot;couldn't set attributes on pty: %m&quot;);
++ } else
++ warn(&quot;couldn't get attributes on pty: %m&quot;);
++
++ return 1;
++}
++
++/********************************************************************
++ *
++ * open_loopback - open the device we use for getting packets
++ * in demand mode. Under Linux, we use a pty master/slave pair.
++ */
++int
++open_ppp_loopback(void)
++{
++ int flags;
++
++ looped = 1;
++ if (new_style_driver) {
++ /* allocate ourselves a ppp unit */
++ if (make_ppp_unit() &lt; 0)
++ die(1);
++ set_flags(ppp_dev_fd, SC_LOOP_TRAFFIC);
++ set_kdebugflag(kdebugflag);
++ ppp_fd = -1;
++ return ppp_dev_fd;
++ }
++
++ if (!get_pty(&amp;master_fd, &amp;slave_fd, loop_name, 0))
++ fatal(&quot;No free pty for loopback&quot;);
++ SYSDEBUG((&quot;using %s for loopback&quot;, loop_name));
++
++ set_ppp_fd(slave_fd);
++
++ flags = fcntl(master_fd, F_GETFL);
++ if (flags == -1 ||
++ fcntl(master_fd, F_SETFL, flags | O_NONBLOCK) == -1)
++ warn(&quot;couldn't set master loopback to nonblock: %m(%d)&quot;, errno);
++
++ flags = fcntl(ppp_fd, F_GETFL);
++ if (flags == -1 ||
++ fcntl(ppp_fd, F_SETFL, flags | O_NONBLOCK) == -1)
++ warn(&quot;couldn't set slave loopback to nonblock: %m(%d)&quot;, errno);
++
++ if (ioctl(ppp_fd, TIOCSETD, &amp;ppp_disc) &lt; 0)
++ fatal(&quot;ioctl(TIOCSETD): %m(%d)&quot;, errno);
++/*
++ * Find out which interface we were given.
++ */
++ if (ioctl(ppp_fd, PPPIOCGUNIT, &amp;ifunit) &lt; 0)
++ fatal(&quot;ioctl(PPPIOCGUNIT): %m(%d)&quot;, errno);
++/*
++ * Enable debug in the driver if requested.
++ */
++ set_kdebugflag (kdebugflag);
++
++ return master_fd;
++}
++
++/********************************************************************
++ *
++ * restore_loop - reattach the ppp unit to the loopback.
++ *
++ * The kernel ppp driver automatically reattaches the ppp unit to
++ * the loopback if the serial port is set to a line discipline other
++ * than ppp, or if it detects a modem hangup. The former will happen
++ * in disestablish_ppp if the latter hasn't already happened, so we
++ * shouldn't need to do anything.
++ *
++ * Just to be sure, set the real serial port to the normal discipline.
++ */
++
++static void
++restore_loop(void)
++{
++ looped = 1;
++ if (new_style_driver) {
++ set_flags(ppp_dev_fd, get_flags(ppp_dev_fd) | SC_LOOP_TRAFFIC);
++ return;
++ }
++ if (ppp_fd != slave_fd) {
++ (void) ioctl(ppp_fd, TIOCSETD, &amp;tty_disc);
++ set_ppp_fd(slave_fd);
++ }
++}
++
++/********************************************************************
++ *
++ * sifnpmode - Set the mode for handling packets for a given NP.
++ */
++
++int
++sifnpmode(u, proto, mode)
++ int u;
++ int proto;
++ enum NPmode mode;
++{
++ struct npioctl npi;
++
++ npi.protocol = proto;
++ npi.mode = mode;
++ if (ioctl(ppp_dev_fd, PPPIOCSNPMODE, (caddr_t) &amp;npi) &lt; 0) {
++ if (! ok_error (errno))
++ error(&quot;ioctl(PPPIOCSNPMODE, %d, %d): %m (%d)&quot;,
++ proto, mode, errno);
++ return 0;
++ }
++ return 1;
++}
++
++
++/********************************************************************
++ *
++ * sipxfaddr - Config the interface IPX networknumber
++ */
++
++int sipxfaddr (int unit, unsigned long int network, unsigned char * node )
++{
++ int result = 1;
++
++#ifdef IPX_CHANGE
++ int skfd;
++ struct ifreq ifr;
++ struct sockaddr_ipx *sipx = (struct sockaddr_ipx *) &amp;ifr.ifr_addr;
++
++ skfd = socket (AF_IPX, SOCK_DGRAM, 0);
++ if (skfd &lt; 0) {
++ if (! ok_error (errno))
++ dbglog(&quot;socket(AF_IPX): %m (%d)&quot;, errno);
++ result = 0;
++ }
++ else {
++ memset (&amp;ifr, '\0', sizeof (ifr));
++ strlcpy (ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
++
++ memcpy (sipx-&gt;sipx_node, node, IPX_NODE_LEN);
++ sipx-&gt;sipx_family = AF_IPX;
++ sipx-&gt;sipx_port = 0;
++ sipx-&gt;sipx_network = htonl (network);
++ sipx-&gt;sipx_type = IPX_FRAME_ETHERII;
++ sipx-&gt;sipx_action = IPX_CRTITF;
++/*
++ * Set the IPX device
++ */
++ if (ioctl(skfd, SIOCSIFADDR, (caddr_t) &amp;ifr) &lt; 0) {
++ result = 0;
++ if (errno != EEXIST) {
++ if (! ok_error (errno))
++ dbglog(&quot;ioctl(SIOCSIFADDR, CRTITF): %m (%d)&quot;, errno);
++ }
++ else {
++ warn(&quot;ioctl(SIOCSIFADDR, CRTITF): Address already exists&quot;);
++ }
++ }
++ close (skfd);
++ }
++#endif
++ return result;
++}
++
++/********************************************************************
++ *
++ * cipxfaddr - Clear the information for the IPX network. The IPX routes
++ * are removed and the device is no longer able to pass IPX
++ * frames.
++ */
++
++int cipxfaddr (int unit)
++{
++ int result = 1;
++
++#ifdef IPX_CHANGE
++ int skfd;
++ struct ifreq ifr;
++ struct sockaddr_ipx *sipx = (struct sockaddr_ipx *) &amp;ifr.ifr_addr;
++
++ skfd = socket (AF_IPX, SOCK_DGRAM, 0);
++ if (skfd &lt; 0) {
++ if (! ok_error (errno))
++ dbglog(&quot;socket(AF_IPX): %m (%d)&quot;, errno);
++ result = 0;
++ }
++ else {
++ memset (&amp;ifr, '\0', sizeof (ifr));
++ strlcpy (ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
++
++ sipx-&gt;sipx_type = IPX_FRAME_ETHERII;
++ sipx-&gt;sipx_action = IPX_DLTITF;
++ sipx-&gt;sipx_family = AF_IPX;
++/*
++ * Set the IPX device
++ */
++ if (ioctl(skfd, SIOCSIFADDR, (caddr_t) &amp;ifr) &lt; 0) {
++ if (! ok_error (errno))
++ info(&quot;ioctl(SIOCSIFADDR, IPX_DLTITF): %m (%d)&quot;, errno);
++ result = 0;
++ }
++ close (skfd);
++ }
++#endif
++ return result;
++}
++
++/*
++ * Use the hostname as part of the random number seed.
++ */
++int
++get_host_seed()
++{
++ int h;
++ char *p = hostname;
++
++ h = 407;
++ for (p = hostname; *p != 0; ++p)
++ h = h * 37 + *p;
++ return h;
++}
++
++/********************************************************************
++ *
++ * sys_check_options - check the options that the user specified
++ */
++
++int
++sys_check_options(void)
++{
++#ifdef IPX_CHANGE
++/*
++ * Disable the IPX protocol if the support is not present in the kernel.
++ */
++ char *path;
++
++ if (ipxcp_protent.enabled_flag) {
++ struct stat stat_buf;
++ if ((path = path_to_procfs(&quot;/net/ipx_interface&quot;)) == 0
++ || lstat(path, &amp;stat_buf) &lt; 0) {
++ error(&quot;IPX support is not present in the kernel\n&quot;);
++ ipxcp_protent.enabled_flag = 0;
++ }
++ }
++#endif
++ if (demand &amp;&amp; driver_is_old) {
++ option_error(&quot;demand dialling is not supported by kernel driver &quot;
++ &quot;version %d.%d.%d&quot;, driver_version, driver_modification,
++ driver_patch);
++ return 0;
++ }
++ if (multilink &amp;&amp; !new_style_driver) {
++ warn(&quot;Warning: multilink is not supported by the kernel driver&quot;);
++ multilink = 0;
++ }
++ return 1;
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/pppd/sys-linux.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1ppppppdsyslinuxcwtmp">Added: drakx/trunk/mdk-stage1/ppp/pppd/sys-linux.c.wtmp</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/sys-linux.c.wtmp (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/sys-linux.c.wtmp 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,2750 @@
++/*
++ * sys-linux.c - System-dependent procedures for setting up
++ * PPP interfaces on Linux systems
++ *
++ * Copyright (c) 1989 Carnegie Mellon University.
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms are permitted
++ * provided that the above copyright notice and this paragraph are
++ * duplicated in all such forms and that any documentation,
++ * advertising materials, and other materials related to such
++ * distribution and use acknowledge that the software was developed
++ * by Carnegie Mellon University. The name of the
++ * University may not be used to endorse or promote products derived
++ * from this software without specific prior written permission.
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
++ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
++ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++ */
++
++#include &lt;sys/ioctl.h&gt;
++#include &lt;sys/types.h&gt;
++#include &lt;sys/socket.h&gt;
++#include &lt;sys/time.h&gt;
++#include &lt;sys/errno.h&gt;
++#include &lt;sys/file.h&gt;
++#include &lt;sys/stat.h&gt;
++#include &lt;sys/utsname.h&gt;
++#include &lt;sys/sysmacros.h&gt;
++
++#include &lt;stdio.h&gt;
++#include &lt;stdlib.h&gt;
++#include &lt;syslog.h&gt;
++#include &lt;string.h&gt;
++#include &lt;time.h&gt;
++#include &lt;memory.h&gt;
++#include &lt;utmp.h&gt;
++#include &lt;mntent.h&gt;
++#include &lt;signal.h&gt;
++#include &lt;fcntl.h&gt;
++#include &lt;ctype.h&gt;
++#include &lt;termios.h&gt;
++#include &lt;unistd.h&gt;
++
++/* This is in netdevice.h. However, this compile will fail miserably if
++ you attempt to include netdevice.h because it has so many references
++ to __memcpy functions which it should not attempt to do. So, since I
++ really don't use it, but it must be defined, define it now. */
++
++#ifndef MAX_ADDR_LEN
++#define MAX_ADDR_LEN 7
++#endif
++
++#if __GLIBC__ &gt;= 2
++#include &lt;asm/types.h&gt; /* glibc 2 conflicts with linux/types.h */
++#include &lt;net/if.h&gt;
++#include &lt;net/if_arp.h&gt;
++#include &lt;net/route.h&gt;
++#include &lt;netinet/if_ether.h&gt;
++#else
++#include &lt;linux/types.h&gt;
++#include &lt;linux/if.h&gt;
++#include &lt;linux/if_arp.h&gt;
++#include &lt;linux/route.h&gt;
++#include &lt;linux/if_ether.h&gt;
++#endif
++#include &lt;netinet/in.h&gt;
++#include &lt;arpa/inet.h&gt;
++
++#include &lt;linux/ppp_defs.h&gt;
++#include &lt;linux/if_ppp.h&gt;
++
++#include &quot;pppd.h&quot;
++#include &quot;fsm.h&quot;
++#include &quot;ipcp.h&quot;
++
++#ifdef IPX_CHANGE
++#include &quot;ipxcp.h&quot;
++#if __GLIBC__ &gt;= 2 &amp;&amp; \
++ !(defined(__powerpc__) &amp;&amp; __GLIBC__ == 2 &amp;&amp; __GLIBC_MINOR__ == 0)
++#include &lt;netipx/ipx.h&gt;
++#else
++#include &lt;linux/ipx.h&gt;
++#endif
++#endif /* IPX_CHANGE */
++
++#ifdef PPP_FILTER
++#include &lt;net/bpf.h&gt;
++#include &lt;linux/filter.h&gt;
++#endif /* PPP_FILTER */
++
++#ifdef LOCKLIB
++#include &lt;sys/locks.h&gt;
++#endif
++
++#ifdef INET6
++#ifndef _LINUX_IN6_H
++/*
++ * This is in linux/include/net/ipv6.h.
++ */
++
++struct in6_ifreq {
++ struct in6_addr ifr6_addr;
++ __u32 ifr6_prefixlen;
++ unsigned int ifr6_ifindex;
++};
++#endif
++
++#define IN6_LLADDR_FROM_EUI64(sin6, eui64) do { \
++ memset(&amp;sin6.s6_addr, 0, sizeof(struct in6_addr)); \
++ sin6.s6_addr16[0] = htons(0xfe80); \
++ eui64_copy(eui64, sin6.s6_addr32[2]); \
++ } while (0)
++
++#endif /* INET6 */
++
++/* We can get an EIO error on an ioctl if the modem has hung up */
++#define ok_error(num) ((num)==EIO)
++
++static int tty_disc = N_TTY; /* The TTY discipline */
++static int ppp_disc = N_PPP; /* The PPP discpline */
++static int initfdflags = -1; /* Initial file descriptor flags for fd */
++static int ppp_fd = -1; /* fd which is set to PPP discipline */
++static int sock_fd = -1; /* socket for doing interface ioctls */
++static int slave_fd = -1;
++static int master_fd = -1;
++#ifdef INET6
++static int sock6_fd = -1;
++#endif /* INET6 */
++static int ppp_dev_fd = -1; /* fd for /dev/ppp (new style driver) */
++static int chindex; /* channel index (new style driver) */
++
++static fd_set in_fds; /* set of fds that wait_input waits for */
++static int max_in_fd; /* highest fd set in in_fds */
++
++static int has_proxy_arp = 0;
++static int driver_version = 0;
++static int driver_modification = 0;
++static int driver_patch = 0;
++static int driver_is_old = 0;
++static int restore_term = 0; /* 1 =&gt; we've munged the terminal */
++static struct termios inittermios; /* Initial TTY termios */
++
++static int new_style_driver = 0;
++
++static char loop_name[20];
++static unsigned char inbuf[512]; /* buffer for chars read from loopback */
++
++static int if_is_up; /* Interface has been marked up */
++static u_int32_t default_route_gateway; /* Gateway for default route added */
++static u_int32_t proxy_arp_addr; /* Addr for proxy arp entry added */
++static char proxy_arp_dev[16]; /* Device for proxy arp entry */
++static u_int32_t our_old_addr; /* for detecting address changes */
++static int dynaddr_set; /* 1 if ip_dynaddr set */
++static int looped; /* 1 if using loop */
++static int link_mtu; /* mtu for the link (not bundle) */
++
++static struct utsname utsname; /* for the kernel version */
++static int kernel_version;
++#define KVERSION(j,n,p) ((j)*1000000 + (n)*1000 + (p))
++
++#define MAX_IFS 100
++
++#define FLAGS_GOOD (IFF_UP | IFF_BROADCAST)
++#define FLAGS_MASK (IFF_UP | IFF_BROADCAST | \
++ IFF_POINTOPOINT | IFF_LOOPBACK | IFF_NOARP)
++
++#define SIN_ADDR(x) (((struct sockaddr_in *) (&amp;(x)))-&gt;sin_addr.s_addr)
++
++/* Prototypes for procedures local to this file. */
++static int get_flags (int fd);
++static void set_flags (int fd, int flags);
++static int translate_speed (int bps);
++static int baud_rate_of (int speed);
++static void close_route_table (void);
++static int open_route_table (void);
++static int read_route_table (struct rtentry *rt);
++static int defaultroute_exists (struct rtentry *rt);
++static int get_ether_addr (u_int32_t ipaddr, struct sockaddr *hwaddr,
++ char *name, int namelen);
++static void decode_version (char *buf, int *version, int *mod, int *patch);
++static int set_kdebugflag(int level);
++static int ppp_registered(void);
++static int make_ppp_unit(void);
++static void restore_loop(void); /* Transfer ppp unit back to loopback */
++
++extern u_char inpacket_buf[]; /* borrowed from main.c */
++
++/*
++ * SET_SA_FAMILY - set the sa_family field of a struct sockaddr,
++ * if it exists.
++ */
++
++#define SET_SA_FAMILY(addr, family) \
++ memset ((char *) &amp;(addr), '\0', sizeof(addr)); \
++ addr.sa_family = (family);
++
++/*
++ * Determine if the PPP connection should still be present.
++ */
++
++extern int hungup;
++
++/* new_fd is the fd of a tty */
++static void set_ppp_fd (int new_fd)
++{
++ SYSDEBUG ((LOG_DEBUG, &quot;setting ppp_fd to %d\n&quot;, new_fd));
++ ppp_fd = new_fd;
++ if (!new_style_driver)
++ ppp_dev_fd = new_fd;
++}
++
++static int still_ppp(void)
++{
++ if (new_style_driver)
++ return !hungup &amp;&amp; ppp_fd &gt;= 0;
++ if (!hungup || ppp_fd == slave_fd)
++ return 1;
++ if (slave_fd &gt;= 0) {
++ set_ppp_fd(slave_fd);
++ return 1;
++ }
++ return 0;
++}
++
++/********************************************************************
++ *
++ * Functions to read and set the flags value in the device driver
++ */
++
++static int get_flags (int fd)
++{
++ int flags;
++
++ if (ioctl(fd, PPPIOCGFLAGS, (caddr_t) &amp;flags) &lt; 0) {
++ if ( ok_error (errno) )
++ flags = 0;
++ else
++ fatal(&quot;ioctl(PPPIOCGFLAGS): %m&quot;);
++ }
++
++ SYSDEBUG ((LOG_DEBUG, &quot;get flags = %x\n&quot;, flags));
++ return flags;
++}
++
++/********************************************************************/
++
++static void set_flags (int fd, int flags)
++{
++ SYSDEBUG ((LOG_DEBUG, &quot;set flags = %x\n&quot;, flags));
++
++ if (ioctl(fd, PPPIOCSFLAGS, (caddr_t) &amp;flags) &lt; 0) {
++ if (! ok_error (errno) )
++ fatal(&quot;ioctl(PPPIOCSFLAGS, %x): %m&quot;, flags, errno);
++ }
++}
++
++/********************************************************************
++ *
++ * sys_init - System-dependent initialization.
++ */
++
++void sys_init(void)
++{
++ int flags;
++
++ if (new_style_driver) {
++ ppp_dev_fd = open(&quot;/dev/ppp&quot;, O_RDWR);
++ if (ppp_dev_fd &lt; 0)
++ fatal(&quot;Couldn't open /dev/ppp: %m&quot;);
++ flags = fcntl(ppp_dev_fd, F_GETFL);
++ if (flags == -1
++ || fcntl(ppp_dev_fd, F_SETFL, flags | O_NONBLOCK) == -1)
++ warn(&quot;Couldn't set /dev/ppp to nonblock: %m&quot;);
++ }
++
++ /* Get an internet socket for doing socket ioctls. */
++ sock_fd = socket(AF_INET, SOCK_DGRAM, 0);
++ if (sock_fd &lt; 0)
++ fatal(&quot;Couldn't create IP socket: %m(%d)&quot;, errno);
++
++#ifdef INET6
++ sock6_fd = socket(AF_INET6, SOCK_DGRAM, 0);
++ if (sock6_fd &lt; 0)
++ sock6_fd = -errno; /* save errno for later */
++#endif
++
++ FD_ZERO(&amp;in_fds);
++ max_in_fd = 0;
++}
++
++/********************************************************************
++ *
++ * sys_cleanup - restore any system state we modified before exiting:
++ * mark the interface down, delete default route and/or proxy arp entry.
++ * This shouldn't call die() because it's called from die().
++ */
++
++void sys_cleanup(void)
++{
++/*
++ * Take down the device
++ */
++ if (if_is_up) {
++ if_is_up = 0;
++ sifdown(0);
++ }
++/*
++ * Delete any routes through the device.
++ */
++ if (default_route_gateway != 0)
++ cifdefaultroute(0, 0, default_route_gateway);
++
++ if (has_proxy_arp)
++ cifproxyarp(0, proxy_arp_addr);
++}
++
++/********************************************************************
++ *
++ * sys_close - Clean up in a child process before execing.
++ */
++void
++sys_close(void)
++{
++ if (new_style_driver)
++ close(ppp_dev_fd);
++ if (sock_fd &gt;= 0)
++ close(sock_fd);
++ if (slave_fd &gt;= 0)
++ close(slave_fd);
++ if (master_fd &gt;= 0)
++ close(master_fd);
++ closelog();
++}
++
++/********************************************************************
++ *
++ * set_kdebugflag - Define the debugging level for the kernel
++ */
++
++static int set_kdebugflag (int requested_level)
++{
++ if (new_style_driver &amp;&amp; ifunit &lt; 0)
++ return 1;
++ if (ioctl(ppp_dev_fd, PPPIOCSDEBUG, &amp;requested_level) &lt; 0) {
++ if ( ! ok_error (errno) )
++ error(&quot;ioctl(PPPIOCSDEBUG): %m&quot;);
++ return (0);
++ }
++ SYSDEBUG ((LOG_INFO, &quot;set kernel debugging level to %d&quot;,
++ requested_level));
++ return (1);
++}
++
++/********************************************************************
++ *
++ * tty_establish_ppp - Turn the serial port into a ppp interface.
++ */
++
++int tty_establish_ppp (int tty_fd)
++{
++ int x;
++ int fd = -1;
++
++/*
++ * Ensure that the tty device is in exclusive mode.
++ */
++ if (ioctl(tty_fd, TIOCEXCL, 0) &lt; 0) {
++ if ( ! ok_error ( errno ))
++ warn(&quot;Couldn't make tty exclusive: %m&quot;);
++ }
++/*
++ * Demand mode - prime the old ppp device to relinquish the unit.
++ */
++ if (!new_style_driver &amp;&amp; looped
++ &amp;&amp; ioctl(slave_fd, PPPIOCXFERUNIT, 0) &lt; 0) {
++ error(&quot;ioctl(transfer ppp unit): %m&quot;);
++ return -1;
++ }
++/*
++ * Set the current tty to the PPP discpline
++ */
++
++#ifndef N_SYNC_PPP
++#define N_SYNC_PPP 14
++#endif
++ ppp_disc = (new_style_driver &amp;&amp; sync_serial)? N_SYNC_PPP: N_PPP;
++ if (ioctl(tty_fd, TIOCSETD, &amp;ppp_disc) &lt; 0) {
++ if ( ! ok_error (errno) ) {
++ error(&quot;Couldn't set tty to PPP discipline: %m&quot;);
++ return -1;
++ }
++ }
++
++ if (new_style_driver) {
++ /* Open another instance of /dev/ppp and connect the channel to it */
++ int flags;
++
++ if (ioctl(tty_fd, PPPIOCGCHAN, &amp;chindex) == -1) {
++ error(&quot;Couldn't get channel number: %m&quot;);
++ goto err;
++ }
++ dbglog(&quot;using channel %d&quot;, chindex);
++ fd = open(&quot;/dev/ppp&quot;, O_RDWR);
++ if (fd &lt; 0) {
++ error(&quot;Couldn't reopen /dev/ppp: %m&quot;);
++ goto err;
++ }
++ if (ioctl(fd, PPPIOCATTCHAN, &amp;chindex) &lt; 0) {
++ error(&quot;Couldn't attach to channel %d: %m&quot;, chindex);
++ goto err_close;
++ }
++ flags = fcntl(fd, F_GETFL);
++ if (flags == -1 || fcntl(fd, F_SETFL, flags | O_NONBLOCK) == -1)
++ warn(&quot;Couldn't set /dev/ppp (channel) to nonblock: %m&quot;);
++ set_ppp_fd(fd);
++
++ if (!looped)
++ ifunit = -1;
++ if (!looped &amp;&amp; !multilink) {
++ /*
++ * Create a new PPP unit.
++ */
++ if (make_ppp_unit() &lt; 0)
++ goto err_close;
++ }
++
++ if (looped)
++ set_flags(ppp_dev_fd, get_flags(ppp_dev_fd) &amp; ~SC_LOOP_TRAFFIC);
++
++ if (!multilink) {
++ add_fd(ppp_dev_fd);
++ if (ioctl(fd, PPPIOCCONNECT, &amp;ifunit) &lt; 0) {
++ error(&quot;Couldn't attach to PPP unit %d: %m&quot;, ifunit);
++ goto err_close;
++ }
++ }
++
++ } else {
++ /*
++ * Old-style driver: find out which interface we were given.
++ */
++ set_ppp_fd (tty_fd);
++ if (ioctl(tty_fd, PPPIOCGUNIT, &amp;x) &lt; 0) {
++ if (ok_error (errno))
++ goto err;
++ fatal(&quot;ioctl(PPPIOCGUNIT): %m(%d)&quot;, errno);
++ }
++ /* Check that we got the same unit again. */
++ if (looped &amp;&amp; x != ifunit)
++ fatal(&quot;transfer_ppp failed: wanted unit %d, got %d&quot;, ifunit, x);
++ ifunit = x;
++
++ /*
++ * Fetch the initial file flags and reset blocking mode on the file.
++ */
++ initfdflags = fcntl(tty_fd, F_GETFL);
++ if (initfdflags == -1 ||
++ fcntl(tty_fd, F_SETFL, initfdflags | O_NONBLOCK) == -1) {
++ if ( ! ok_error (errno))
++ warn(&quot;Couldn't set device to non-blocking mode: %m&quot;);
++ }
++ }
++
++ looped = 0;
++
++ /*
++ * Enable debug in the driver if requested.
++ */
++ if (!looped)
++ set_kdebugflag (kdebugflag);
++
++#define SC_RCVB (SC_RCV_B7_0 | SC_RCV_B7_1 | SC_RCV_EVNP | SC_RCV_ODDP)
++#define SC_LOGB (SC_DEBUG | SC_LOG_INPKT | SC_LOG_OUTPKT | SC_LOG_RAWIN \
++ | SC_LOG_FLUSH)
++
++ set_flags(ppp_fd, ((get_flags(ppp_fd) &amp; ~(SC_RCVB | SC_LOGB))
++ | ((kdebugflag * SC_DEBUG) &amp; SC_LOGB)));
++
++ SYSDEBUG ((LOG_NOTICE, &quot;Using version %d.%d.%d of PPP driver&quot;,
++ driver_version, driver_modification, driver_patch));
++
++ return ppp_fd;
++
++ err_close:
++ close(fd);
++ err:
++ if (ioctl(tty_fd, TIOCSETD, &amp;tty_disc) &lt; 0 &amp;&amp; !ok_error(errno))
++ warn(&quot;Couldn't reset tty to normal line discipline: %m&quot;);
++ return -1;
++}
++
++/********************************************************************
++ *
++ * tty_disestablish_ppp - Restore the serial port to normal operation,
++ * and reconnect the ppp unit to the loopback if in demand mode.
++ * This shouldn't call die() because it's called from die().
++ */
++
++void tty_disestablish_ppp(int tty_fd)
++{
++ if (demand)
++ restore_loop();
++ if (!hungup) {
++/*
++ * Flush the tty output buffer so that the TIOCSETD doesn't hang.
++ */
++ if (tcflush(tty_fd, TCIOFLUSH) &lt; 0)
++ warn(&quot;tcflush failed: %m&quot;);
++/*
++ * Restore the previous line discipline
++ */
++ if (ioctl(tty_fd, TIOCSETD, &amp;tty_disc) &lt; 0) {
++ if ( ! ok_error (errno))
++ error(&quot;ioctl(TIOCSETD, N_TTY): %m&quot;);
++ }
++
++ if (ioctl(tty_fd, TIOCNXCL, 0) &lt; 0) {
++ if ( ! ok_error (errno))
++ warn(&quot;ioctl(TIOCNXCL): %m(%d)&quot;, errno);
++ }
++
++ /* Reset non-blocking mode on fd. */
++ if (initfdflags != -1 &amp;&amp; fcntl(tty_fd, F_SETFL, initfdflags) &lt; 0) {
++ if ( ! ok_error (errno))
++ warn(&quot;Couldn't restore device fd flags: %m&quot;);
++ }
++ }
++ initfdflags = -1;
++
++ if (new_style_driver) {
++ close(ppp_fd);
++ ppp_fd = -1;
++ if (!looped &amp;&amp; ifunit &gt;= 0 &amp;&amp; ioctl(ppp_dev_fd, PPPIOCDETACH) &lt; 0)
++ error(&quot;Couldn't release PPP unit: %m&quot;);
++ if (!multilink)
++ remove_fd(ppp_dev_fd);
++ }
++}
++
++/*
++ * make_ppp_unit - make a new ppp unit for ppp_dev_fd.
++ * Assumes new_style_driver.
++ */
++static int make_ppp_unit()
++{
++ int x;
++
++ ifunit = req_unit;
++ x = ioctl(ppp_dev_fd, PPPIOCNEWUNIT, &amp;ifunit);
++ if (x &lt; 0 &amp;&amp; req_unit &gt;= 0 &amp;&amp; errno == EEXIST) {
++ warn(&quot;Couldn't allocate PPP unit %d as it is already in use&quot;);
++ ifunit = -1;
++ x = ioctl(ppp_dev_fd, PPPIOCNEWUNIT, &amp;ifunit);
++ }
++ if (x &lt; 0)
++ error(&quot;Couldn't create new ppp unit: %m&quot;);
++ return x;
++}
++
++/*
++ * cfg_bundle - configure the existing bundle.
++ * Used in demand mode.
++ */
++void cfg_bundle(int mrru, int mtru, int rssn, int tssn)
++{
++ int flags;
++
++ if (!new_style_driver)
++ return;
++
++ /* set the mrru, mtu and flags */
++ if (ioctl(ppp_dev_fd, PPPIOCSMRRU, &amp;mrru) &lt; 0)
++ error(&quot;Couldn't set MRRU: %m&quot;);
++ flags = get_flags(ppp_dev_fd);
++ flags &amp;= ~(SC_MP_SHORTSEQ | SC_MP_XSHORTSEQ);
++ flags |= (rssn? SC_MP_SHORTSEQ: 0) | (tssn? SC_MP_XSHORTSEQ: 0)
++ | (mrru? SC_MULTILINK: 0);
++
++ set_flags(ppp_dev_fd, flags);
++
++ /* connect up the channel */
++ if (ioctl(ppp_fd, PPPIOCCONNECT, &amp;ifunit) &lt; 0)
++ fatal(&quot;Couldn't attach to PPP unit %d: %m&quot;, ifunit);
++ add_fd(ppp_dev_fd);
++}
++
++/*
++ * make_new_bundle - create a new PPP unit (i.e. a bundle)
++ * and connect our channel to it. This should only get called
++ * if `multilink' was set at the time establish_ppp was called.
++ * In demand mode this uses our existing bundle instead of making
++ * a new one.
++ */
++void make_new_bundle(int mrru, int mtru, int rssn, int tssn)
++{
++ if (!new_style_driver)
++ return;
++
++ /* make us a ppp unit */
++ if (make_ppp_unit() &lt; 0)
++ die(1);
++
++ /* set the mrru and flags */
++ cfg_bundle(mrru, mtru, rssn, tssn);
++}
++
++/*
++ * bundle_attach - attach our link to a given PPP unit.
++ * We assume the unit is controlled by another pppd.
++ */
++int bundle_attach(int ifnum)
++{
++ if (!new_style_driver)
++ return -1;
++
++ if (ioctl(ppp_dev_fd, PPPIOCATTACH, &amp;ifnum) &lt; 0) {
++ if (errno == ENXIO)
++ return 0; /* doesn't still exist */
++ fatal(&quot;Couldn't attach to interface unit %d: %m\n&quot;, ifnum);
++ }
++ if (ioctl(ppp_fd, PPPIOCCONNECT, &amp;ifnum) &lt; 0)
++ fatal(&quot;Couldn't connect to interface unit %d: %m&quot;, ifnum);
++ set_flags(ppp_dev_fd, get_flags(ppp_dev_fd) | SC_MULTILINK);
++
++ ifunit = ifnum;
++ return 1;
++}
++
++/********************************************************************
++ *
++ * clean_check - Fetch the flags for the device and generate
++ * appropriate error messages.
++ */
++void clean_check(void)
++{
++ int x;
++ char *s;
++
++ if (still_ppp()) {
++ if (ioctl(ppp_fd, PPPIOCGFLAGS, (caddr_t) &amp;x) == 0) {
++ s = NULL;
++ switch (~x &amp; (SC_RCV_B7_0|SC_RCV_B7_1|SC_RCV_EVNP|SC_RCV_ODDP)) {
++ case SC_RCV_B7_0:
++ s = &quot;all had bit 7 set to 1&quot;;
++ break;
++
++ case SC_RCV_B7_1:
++ s = &quot;all had bit 7 set to 0&quot;;
++ break;
++
++ case SC_RCV_EVNP:
++ s = &quot;all had odd parity&quot;;
++ break;
++
++ case SC_RCV_ODDP:
++ s = &quot;all had even parity&quot;;
++ break;
++ }
++
++ if (s != NULL) {
++ warn(&quot;Receive serial link is not 8-bit clean:&quot;);
++ warn(&quot;Problem: %s&quot;, s);
++ }
++ }
++ }
++}
++
++
++/*
++ * List of valid speeds.
++ */
++
++struct speed {
++ int speed_int, speed_val;
++} speeds[] = {
++#ifdef B50
++ { 50, B50 },
++#endif
++#ifdef B75
++ { 75, B75 },
++#endif
++#ifdef B110
++ { 110, B110 },
++#endif
++#ifdef B134
++ { 134, B134 },
++#endif
++#ifdef B150
++ { 150, B150 },
++#endif
++#ifdef B200
++ { 200, B200 },
++#endif
++#ifdef B300
++ { 300, B300 },
++#endif
++#ifdef B600
++ { 600, B600 },
++#endif
++#ifdef B1200
++ { 1200, B1200 },
++#endif
++#ifdef B1800
++ { 1800, B1800 },
++#endif
++#ifdef B2000
++ { 2000, B2000 },
++#endif
++#ifdef B2400
++ { 2400, B2400 },
++#endif
++#ifdef B3600
++ { 3600, B3600 },
++#endif
++#ifdef B4800
++ { 4800, B4800 },
++#endif
++#ifdef B7200
++ { 7200, B7200 },
++#endif
++#ifdef B9600
++ { 9600, B9600 },
++#endif
++#ifdef B19200
++ { 19200, B19200 },
++#endif
++#ifdef B38400
++ { 38400, B38400 },
++#endif
++#ifdef B57600
++ { 57600, B57600 },
++#endif
++#ifdef B76800
++ { 76800, B76800 },
++#endif
++#ifdef B115200
++ { 115200, B115200 },
++#endif
++#ifdef EXTA
++ { 19200, EXTA },
++#endif
++#ifdef EXTB
++ { 38400, EXTB },
++#endif
++#ifdef B230400
++ { 230400, B230400 },
++#endif
++#ifdef B460800
++ { 460800, B460800 },
++#endif
++#ifdef B921600
++ { 921600, B921600 },
++#endif
++ { 0, 0 }
++};
++
++/********************************************************************
++ *
++ * Translate from bits/second to a speed_t.
++ */
++
++static int translate_speed (int bps)
++{
++ struct speed *speedp;
++
++ if (bps != 0) {
++ for (speedp = speeds; speedp-&gt;speed_int; speedp++) {
++ if (bps == speedp-&gt;speed_int)
++ return speedp-&gt;speed_val;
++ }
++ warn(&quot;speed %d not supported&quot;, bps);
++ }
++ return 0;
++}
++
++/********************************************************************
++ *
++ * Translate from a speed_t to bits/second.
++ */
++
++static int baud_rate_of (int speed)
++{
++ struct speed *speedp;
++
++ if (speed != 0) {
++ for (speedp = speeds; speedp-&gt;speed_int; speedp++) {
++ if (speed == speedp-&gt;speed_val)
++ return speedp-&gt;speed_int;
++ }
++ }
++ return 0;
++}
++
++/********************************************************************
++ *
++ * set_up_tty: Set up the serial port on `fd' for 8 bits, no parity,
++ * at the requested speed, etc. If `local' is true, set CLOCAL
++ * regardless of whether the modem option was specified.
++ */
++
++void set_up_tty(int tty_fd, int local)
++{
++ int speed;
++ struct termios tios;
++
++ setdtr(tty_fd, 1);
++ if (tcgetattr(tty_fd, &amp;tios) &lt; 0) {
++ if (!ok_error(errno))
++ fatal(&quot;tcgetattr: %m(%d)&quot;, errno);
++ return;
++ }
++
++ if (!restore_term)
++ inittermios = tios;
++
++ tios.c_cflag &amp;= ~(CSIZE | CSTOPB | PARENB | CLOCAL);
++ tios.c_cflag |= CS8 | CREAD | HUPCL;
++
++ tios.c_iflag = IGNBRK | IGNPAR;
++ tios.c_oflag = 0;
++ tios.c_lflag = 0;
++ tios.c_cc[VMIN] = 1;
++ tios.c_cc[VTIME] = 0;
++
++ if (local || !modem)
++ tios.c_cflag ^= (CLOCAL | HUPCL);
++
++ switch (crtscts) {
++ case 1:
++ tios.c_cflag |= CRTSCTS;
++ break;
++
++ case -2:
++ tios.c_iflag |= IXON | IXOFF;
++ tios.c_cc[VSTOP] = 0x13; /* DC3 = XOFF = ^S */
++ tios.c_cc[VSTART] = 0x11; /* DC1 = XON = ^Q */
++ break;
++
++ case -1:
++ tios.c_cflag &amp;= ~CRTSCTS;
++ break;
++
++ default:
++ break;
++ }
++
++ speed = translate_speed(inspeed);
++ if (speed) {
++ cfsetospeed (&amp;tios, speed);
++ cfsetispeed (&amp;tios, speed);
++ }
++/*
++ * We can't proceed if the serial port speed is B0,
++ * since that implies that the serial port is disabled.
++ */
++ else {
++ speed = cfgetospeed(&amp;tios);
++ if (speed == B0)
++ fatal(&quot;Baud rate for %s is 0; need explicit baud rate&quot;, devnam);
++ }
++
++ if (tcsetattr(tty_fd, TCSAFLUSH, &amp;tios) &lt; 0)
++ if (!ok_error(errno))
++ fatal(&quot;tcsetattr: %m&quot;);
++
++ baud_rate = baud_rate_of(speed);
++ restore_term = 1;
++}
++
++/********************************************************************
++ *
++ * setdtr - control the DTR line on the serial port.
++ * This is called from die(), so it shouldn't call die().
++ */
++
++void setdtr (int tty_fd, int on)
++{
++ int modembits = TIOCM_DTR;
++
++ ioctl(tty_fd, (on ? TIOCMBIS : TIOCMBIC), &amp;modembits);
++}
++
++/********************************************************************
++ *
++ * restore_tty - restore the terminal to the saved settings.
++ */
++
++void restore_tty (int tty_fd)
++{
++ if (restore_term) {
++ restore_term = 0;
++/*
++ * Turn off echoing, because otherwise we can get into
++ * a loop with the tty and the modem echoing to each other.
++ * We presume we are the sole user of this tty device, so
++ * when we close it, it will revert to its defaults anyway.
++ */
++ if (!default_device)
++ inittermios.c_lflag &amp;= ~(ECHO | ECHONL);
++
++ if (tcsetattr(tty_fd, TCSAFLUSH, &amp;inittermios) &lt; 0) {
++ if (! ok_error (errno))
++ warn(&quot;tcsetattr: %m&quot;);
++ }
++ }
++}
++
++/********************************************************************
++ *
++ * output - Output PPP packet.
++ */
++
++void output (int unit, unsigned char *p, int len)
++{
++ int fd = ppp_fd;
++ int proto;
++
++ if (debug)
++ dbglog(&quot;sent %P&quot;, p, len);
++
++ if (len &lt; PPP_HDRLEN)
++ return;
++ if (new_style_driver) {
++ p += 2;
++ len -= 2;
++ proto = (p[0] &lt;&lt; 8) + p[1];
++ if (ifunit &gt;= 0 &amp;&amp; !(proto &gt;= 0xc000 || proto == PPP_CCPFRAG))
++ fd = ppp_dev_fd;
++ }
++ if (write(fd, p, len) &lt; 0) {
++ if (errno == EWOULDBLOCK || errno == ENOBUFS
++ || errno == ENXIO || errno == EIO || errno == EINTR)
++ warn(&quot;write: warning: %m (%d)&quot;, errno);
++ else
++ error(&quot;write: %m (%d)&quot;, errno);
++ }
++}
++
++/********************************************************************
++ *
++ * wait_input - wait until there is data available,
++ * for the length of time specified by *timo (indefinite
++ * if timo is NULL).
++ */
++
++void wait_input(struct timeval *timo)
++{
++ fd_set ready, exc;
++ int n;
++
++ ready = in_fds;
++ exc = in_fds;
++ n = select(max_in_fd + 1, &amp;ready, NULL, &amp;exc, timo);
++ if (n &lt; 0 &amp;&amp; errno != EINTR)
++ fatal(&quot;select: %m(%d)&quot;, errno);
++}
++
++/*
++ * add_fd - add an fd to the set that wait_input waits for.
++ */
++void add_fd(int fd)
++{
++ FD_SET(fd, &amp;in_fds);
++ if (fd &gt; max_in_fd)
++ max_in_fd = fd;
++}
++
++/*
++ * remove_fd - remove an fd from the set that wait_input waits for.
++ */
++void remove_fd(int fd)
++{
++ FD_CLR(fd, &amp;in_fds);
++}
++
++
++/********************************************************************
++ *
++ * read_packet - get a PPP packet from the serial device.
++ */
++
++int read_packet (unsigned char *buf)
++{
++ int len, nr;
++
++ len = PPP_MRU + PPP_HDRLEN;
++ if (new_style_driver) {
++ *buf++ = PPP_ALLSTATIONS;
++ *buf++ = PPP_UI;
++ len -= 2;
++ }
++ nr = -1;
++ if (ppp_fd &gt;= 0) {
++ nr = read(ppp_fd, buf, len);
++ if (nr &lt; 0 &amp;&amp; errno != EWOULDBLOCK &amp;&amp; errno != EIO &amp;&amp; errno != EINTR)
++ error(&quot;read: %m&quot;);
++ if (nr &lt; 0 &amp;&amp; errno == ENXIO)
++ return 0;
++ }
++ if (nr &lt; 0 &amp;&amp; new_style_driver &amp;&amp; ifunit &gt;= 0) {
++ /* N.B. we read ppp_fd first since LCP packets come in there. */
++ nr = read(ppp_dev_fd, buf, len);
++ if (nr &lt; 0 &amp;&amp; errno != EWOULDBLOCK &amp;&amp; errno != EIO &amp;&amp; errno != EINTR)
++ error(&quot;read /dev/ppp: %m&quot;);
++ if (nr &lt; 0 &amp;&amp; errno == ENXIO)
++ return 0;
++ }
++ return (new_style_driver &amp;&amp; nr &gt; 0)? nr+2: nr;
++}
++
++/********************************************************************
++ *
++ * get_loop_output - get outgoing packets from the ppp device,
++ * and detect when we want to bring the real link up.
++ * Return value is 1 if we need to bring up the link, 0 otherwise.
++ */
++int
++get_loop_output(void)
++{
++ int rv = 0;
++ int n;
++
++ if (new_style_driver) {
++ while ((n = read_packet(inpacket_buf)) &gt; 0)
++ if (loop_frame(inpacket_buf, n))
++ rv = 1;
++ return rv;
++ }
++
++ while ((n = read(master_fd, inbuf, sizeof(inbuf))) &gt; 0)
++ if (loop_chars(inbuf, n))
++ rv = 1;
++
++ if (n == 0)
++ fatal(&quot;eof on loopback&quot;);
++
++ if (errno != EWOULDBLOCK)
++ fatal(&quot;read from loopback: %m(%d)&quot;, errno);
++
++ return rv;
++}
++
++/*
++ * netif_set_mtu - set the MTU on the PPP network interface.
++ */
++void
++netif_set_mtu(int unit, int mtu)
++{
++ struct ifreq ifr;
++
++ SYSDEBUG ((LOG_DEBUG, &quot;netif_set_mtu: mtu = %d\n&quot;, mtu));
++
++ memset (&amp;ifr, '\0', sizeof (ifr));
++ strlcpy(ifr.ifr_name, ifname, sizeof (ifr.ifr_name));
++ ifr.ifr_mtu = mtu;
++
++ if (ifunit &gt;= 0 &amp;&amp; ioctl(sock_fd, SIOCSIFMTU, (caddr_t) &amp;ifr) &lt; 0)
++ fatal(&quot;ioctl(SIOCSIFMTU): %m&quot;);
++}
++
++/********************************************************************
++ *
++ * tty_send_config - configure the transmit characteristics of
++ * the ppp interface.
++ */
++
++void tty_send_config (int mtu,u_int32_t asyncmap,int pcomp,int accomp)
++{
++ u_int x;
++
++/*
++ * Set the asyncmap and other parameters for the ppp device
++ */
++ if (!still_ppp())
++ return;
++ link_mtu = mtu;
++ SYSDEBUG ((LOG_DEBUG, &quot;send_config: asyncmap = %lx\n&quot;, asyncmap));
++ if (ioctl(ppp_fd, PPPIOCSASYNCMAP, (caddr_t) &amp;asyncmap) &lt; 0) {
++ if (!ok_error(errno))
++ fatal(&quot;ioctl(PPPIOCSASYNCMAP): %m(%d)&quot;, errno);
++ return;
++ }
++
++ x = get_flags(ppp_fd);
++ x = pcomp ? x | SC_COMP_PROT : x &amp; ~SC_COMP_PROT;
++ x = accomp ? x | SC_COMP_AC : x &amp; ~SC_COMP_AC;
++ x = sync_serial ? x | SC_SYNC : x &amp; ~SC_SYNC;
++ set_flags(ppp_fd, x);
++}
++
++/********************************************************************
++ *
++ * tty_set_xaccm - set the extended transmit ACCM for the interface.
++ */
++
++void tty_set_xaccm (ext_accm accm)
++{
++ SYSDEBUG ((LOG_DEBUG, &quot;set_xaccm: %08lx %08lx %08lx %08lx\n&quot;,
++ accm[0], accm[1], accm[2], accm[3]));
++
++ if (!still_ppp())
++ return;
++ if (ioctl(ppp_fd, PPPIOCSXASYNCMAP, accm) &lt; 0 &amp;&amp; errno != ENOTTY) {
++ if ( ! ok_error (errno))
++ warn(&quot;ioctl(set extended ACCM): %m(%d)&quot;, errno);
++ }
++}
++
++/********************************************************************
++ *
++ * tty_recv_config - configure the receive-side characteristics of
++ * the ppp interface.
++ */
++
++void tty_recv_config (int mru,u_int32_t asyncmap,int pcomp,int accomp)
++{
++ SYSDEBUG ((LOG_DEBUG, &quot;recv_config: mru = %d\n&quot;, mru));
++/*
++ * If we were called because the link has gone down then there is nothing
++ * which may be done. Just return without incident.
++ */
++ if (!still_ppp())
++ return;
++/*
++ * Set the receiver parameters
++ */
++ if (ioctl(ppp_fd, PPPIOCSMRU, (caddr_t) &amp;mru) &lt; 0) {
++ if ( ! ok_error (errno))
++ error(&quot;ioctl(PPPIOCSMRU): %m(%d)&quot;, errno);
++ }
++ if (new_style_driver &amp;&amp; ifunit &gt;= 0
++ &amp;&amp; ioctl(ppp_dev_fd, PPPIOCSMRU, (caddr_t) &amp;mru) &lt; 0)
++ error(&quot;Couldn't set MRU in generic PPP layer: %m&quot;);
++
++ SYSDEBUG ((LOG_DEBUG, &quot;recv_config: asyncmap = %lx\n&quot;, asyncmap));
++ if (ioctl(ppp_fd, PPPIOCSRASYNCMAP, (caddr_t) &amp;asyncmap) &lt; 0) {
++ if (!ok_error(errno))
++ error(&quot;ioctl(PPPIOCSRASYNCMAP): %m(%d)&quot;, errno);
++ }
++}
++
++/********************************************************************
++ *
++ * ccp_test - ask kernel whether a given compression method
++ * is acceptable for use.
++ */
++
++int ccp_test (int unit, u_char *opt_ptr, int opt_len, int for_transmit)
++{
++ struct ppp_option_data data;
++
++ memset (&amp;data, '\0', sizeof (data));
++ data.ptr = opt_ptr;
++ data.length = opt_len;
++ data.transmit = for_transmit;
++
++ if (ioctl(ppp_dev_fd, PPPIOCSCOMPRESS, (caddr_t) &amp;data) &gt;= 0)
++ return 1;
++
++ return (errno == ENOBUFS)? 0: -1;
++}
++
++/********************************************************************
++ *
++ * ccp_flags_set - inform kernel about the current state of CCP.
++ */
++
++void ccp_flags_set (int unit, int isopen, int isup)
++{
++ if (still_ppp()) {
++ int x = get_flags(ppp_dev_fd);
++ x = isopen? x | SC_CCP_OPEN : x &amp;~ SC_CCP_OPEN;
++ x = isup? x | SC_CCP_UP : x &amp;~ SC_CCP_UP;
++ set_flags (ppp_dev_fd, x);
++ }
++}
++
++#ifdef PPP_FILTER
++/*
++ * set_filters - set the active and pass filters in the kernel driver.
++ */
++int set_filters(struct bpf_program *pass, struct bpf_program *active)
++{
++ struct sock_fprog fp;
++
++ fp.len = pass-&gt;bf_len;
++ fp.filter = (struct sock_filter *) pass-&gt;bf_insns;
++ if (ioctl(ppp_dev_fd, PPPIOCSPASS, &amp;fp) &lt; 0) {
++ if (errno == ENOTTY)
++ warn(&quot;kernel does not support PPP filtering&quot;);
++ else
++ error(&quot;Couldn't set pass-filter in kernel: %m&quot;);
++ return 0;
++ }
++ fp.len = active-&gt;bf_len;
++ fp.filter = (struct sock_filter *) active-&gt;bf_insns;
++ if (ioctl(ppp_dev_fd, PPPIOCSACTIVE, &amp;fp) &lt; 0) {
++ error(&quot;Couldn't set active-filter in kernel: %m&quot;);
++ return 0;
++ }
++ return 1;
++}
++#endif /* PPP_FILTER */
++
++/********************************************************************
++ *
++ * get_idle_time - return how long the link has been idle.
++ */
++int
++get_idle_time(u, ip)
++ int u;
++ struct ppp_idle *ip;
++{
++ return ioctl(ppp_dev_fd, PPPIOCGIDLE, ip) &gt;= 0;
++}
++
++/********************************************************************
++ *
++ * get_ppp_stats - return statistics for the link.
++ */
++int
++get_ppp_stats(u, stats)
++ int u;
++ struct pppd_stats *stats;
++{
++ struct ifpppstatsreq req;
++
++ memset (&amp;req, 0, sizeof (req));
++
++ req.stats_ptr = (caddr_t) &amp;req.stats;
++ strlcpy(req.ifr__name, ifname, sizeof(req.ifr__name));
++ if (ioctl(sock_fd, SIOCGPPPSTATS, &amp;req) &lt; 0) {
++ error(&quot;Couldn't get PPP statistics: %m&quot;);
++ return 0;
++ }
++ stats-&gt;bytes_in = req.stats.p.ppp_ibytes;
++ stats-&gt;bytes_out = req.stats.p.ppp_obytes;
++ return 1;
++}
++
++/********************************************************************
++ *
++ * ccp_fatal_error - returns 1 if decompression was disabled as a
++ * result of an error detected after decompression of a packet,
++ * 0 otherwise. This is necessary because of patent nonsense.
++ */
++
++int ccp_fatal_error (int unit)
++{
++ int x = get_flags(ppp_dev_fd);
++
++ return x &amp; SC_DC_FERROR;
++}
++
++/********************************************************************
++ *
++ * path_to_procfs - find the path to the proc file system mount point
++ */
++static char proc_path[MAXPATHLEN];
++static int proc_path_len;
++
++static char *path_to_procfs(const char *tail)
++{
++ struct mntent *mntent;
++ FILE *fp;
++
++ if (proc_path_len == 0) {
++ /* Default the mount location of /proc */
++ strlcpy (proc_path, &quot;/proc&quot;, sizeof(proc_path));
++ proc_path_len = 5;
++ fp = fopen(MOUNTED, &quot;r&quot;);
++ if (fp != NULL) {
++ while ((mntent = getmntent(fp)) != NULL) {
++ if (strcmp(mntent-&gt;mnt_type, MNTTYPE_IGNORE) == 0)
++ continue;
++ if (strcmp(mntent-&gt;mnt_type, &quot;proc&quot;) == 0) {
++ strlcpy(proc_path, mntent-&gt;mnt_dir, sizeof(proc_path));
++ proc_path_len = strlen(proc_path);
++ break;
++ }
++ }
++ fclose (fp);
++ }
++ }
++
++ strlcpy(proc_path + proc_path_len, tail,
++ sizeof(proc_path) - proc_path_len);
++ return proc_path;
++}
++
++/*
++ * /proc/net/route parsing stuff.
++ */
++#define ROUTE_MAX_COLS 12
++FILE *route_fd = (FILE *) 0;
++static char route_buffer[512];
++static int route_dev_col, route_dest_col, route_gw_col;
++static int route_flags_col, route_mask_col;
++static int route_num_cols;
++
++static int open_route_table (void);
++static void close_route_table (void);
++static int read_route_table (struct rtentry *rt);
++
++/********************************************************************
++ *
++ * close_route_table - close the interface to the route table
++ */
++
++static void close_route_table (void)
++{
++ if (route_fd != (FILE *) 0) {
++ fclose (route_fd);
++ route_fd = (FILE *) 0;
++ }
++}
++
++/********************************************************************
++ *
++ * open_route_table - open the interface to the route table
++ */
++static char route_delims[] = &quot; \t\n&quot;;
++
++static int open_route_table (void)
++{
++ char *path;
++
++ close_route_table();
++
++ path = path_to_procfs(&quot;/net/route&quot;);
++ route_fd = fopen (path, &quot;r&quot;);
++ if (route_fd == NULL) {
++ error(&quot;can't open routing table %s: %m&quot;, path);
++ return 0;
++ }
++
++ route_dev_col = 0; /* default to usual columns */
++ route_dest_col = 1;
++ route_gw_col = 2;
++ route_flags_col = 3;
++ route_mask_col = 7;
++ route_num_cols = 8;
++
++ /* parse header line */
++ if (fgets(route_buffer, sizeof(route_buffer), route_fd) != 0) {
++ char *p = route_buffer, *q;
++ int col;
++ for (col = 0; col &lt; ROUTE_MAX_COLS; ++col) {
++ int used = 1;
++ if ((q = strtok(p, route_delims)) == 0)
++ break;
++ if (strcasecmp(q, &quot;iface&quot;) == 0)
++ route_dev_col = col;
++ else if (strcasecmp(q, &quot;destination&quot;) == 0)
++ route_dest_col = col;
++ else if (strcasecmp(q, &quot;gateway&quot;) == 0)
++ route_gw_col = col;
++ else if (strcasecmp(q, &quot;flags&quot;) == 0)
++ route_flags_col = col;
++ else if (strcasecmp(q, &quot;mask&quot;) == 0)
++ route_mask_col = col;
++ else
++ used = 0;
++ if (used &amp;&amp; col &gt;= route_num_cols)
++ route_num_cols = col + 1;
++ p = NULL;
++ }
++ }
++
++ return 1;
++}
++
++/********************************************************************
++ *
++ * read_route_table - read the next entry from the route table
++ */
++
++static int read_route_table(struct rtentry *rt)
++{
++ char *cols[ROUTE_MAX_COLS], *p;
++ int col;
++
++ memset (rt, '\0', sizeof (struct rtentry));
++
++ if (fgets (route_buffer, sizeof (route_buffer), route_fd) == (char *) 0)
++ return 0;
++
++ p = route_buffer;
++ for (col = 0; col &lt; route_num_cols; ++col) {
++ cols[col] = strtok(p, route_delims);
++ if (cols[col] == NULL)
++ return 0; /* didn't get enough columns */
++ p = NULL;
++ }
++
++ SIN_ADDR(rt-&gt;rt_dst) = strtoul(cols[route_dest_col], NULL, 16);
++ SIN_ADDR(rt-&gt;rt_gateway) = strtoul(cols[route_gw_col], NULL, 16);
++ SIN_ADDR(rt-&gt;rt_genmask) = strtoul(cols[route_mask_col], NULL, 16);
++
++ rt-&gt;rt_flags = (short) strtoul(cols[route_flags_col], NULL, 16);
++ rt-&gt;rt_dev = cols[route_dev_col];
++
++ return 1;
++}
++
++/********************************************************************
++ *
++ * defaultroute_exists - determine if there is a default route
++ */
++
++static int defaultroute_exists (struct rtentry *rt)
++{
++ int result = 0;
++
++ if (!open_route_table())
++ return 0;
++
++ while (read_route_table(rt) != 0) {
++ if ((rt-&gt;rt_flags &amp; RTF_UP) == 0)
++ continue;
++
++ if (kernel_version &gt; KVERSION(2,1,0) &amp;&amp; SIN_ADDR(rt-&gt;rt_genmask) != 0)
++ continue;
++ if (SIN_ADDR(rt-&gt;rt_dst) == 0L) {
++ result = 1;
++ break;
++ }
++ }
++
++ close_route_table();
++ return result;
++}
++
++/*
++ * have_route_to - determine if the system has any route to
++ * a given IP address. `addr' is in network byte order.
++ * Return value is 1 if yes, 0 if no, -1 if don't know.
++ * For demand mode to work properly, we have to ignore routes
++ * through our own interface.
++ */
++int have_route_to(u_int32_t addr)
++{
++ struct rtentry rt;
++ int result = 0;
++
++ if (!open_route_table())
++ return -1; /* don't know */
++
++ while (read_route_table(&amp;rt)) {
++ if ((rt.rt_flags &amp; RTF_UP) == 0 || strcmp(rt.rt_dev, ifname) == 0)
++ continue;
++ if ((addr &amp; SIN_ADDR(rt.rt_genmask)) == SIN_ADDR(rt.rt_dst)) {
++ result = 1;
++ break;
++ }
++ }
++
++ close_route_table();
++ return result;
++}
++
++/********************************************************************
++ *
++ * sifdefaultroute - assign a default route through the address given.
++ */
++
++int sifdefaultroute (int unit, u_int32_t ouraddr, u_int32_t gateway)
++{
++ struct rtentry rt;
++
++ if (defaultroute_exists(&amp;rt) &amp;&amp; strcmp(rt.rt_dev, ifname) != 0) {
++ u_int32_t old_gateway = SIN_ADDR(rt.rt_gateway);
++
++ if (old_gateway != gateway)
++ error(&quot;not replacing existing default route to %s [%I]&quot;,
++ rt.rt_dev, old_gateway);
++ return 0;
++ }
++
++ memset (&amp;rt, '\0', sizeof (rt));
++ SET_SA_FAMILY (rt.rt_dst, AF_INET);
++ SET_SA_FAMILY (rt.rt_gateway, AF_INET);
++
++ if (kernel_version &gt; KVERSION(2,1,0)) {
++ SET_SA_FAMILY (rt.rt_genmask, AF_INET);
++ SIN_ADDR(rt.rt_genmask) = 0L;
++ }
++
++ SIN_ADDR(rt.rt_gateway) = gateway;
++
++ rt.rt_flags = RTF_UP | RTF_GATEWAY;
++ if (ioctl(sock_fd, SIOCADDRT, &amp;rt) &lt; 0) {
++ if ( ! ok_error ( errno ))
++ error(&quot;default route ioctl(SIOCADDRT): %m(%d)&quot;, errno);
++ return 0;
++ }
++
++ default_route_gateway = gateway;
++ return 1;
++}
++
++/********************************************************************
++ *
++ * cifdefaultroute - delete a default route through the address given.
++ */
++
++int cifdefaultroute (int unit, u_int32_t ouraddr, u_int32_t gateway)
++{
++ struct rtentry rt;
++
++ default_route_gateway = 0;
++
++ memset (&amp;rt, '\0', sizeof (rt));
++ SET_SA_FAMILY (rt.rt_dst, AF_INET);
++ SET_SA_FAMILY (rt.rt_gateway, AF_INET);
++
++ if (kernel_version &gt; KVERSION(2,1,0)) {
++ SET_SA_FAMILY (rt.rt_genmask, AF_INET);
++ SIN_ADDR(rt.rt_genmask) = 0L;
++ }
++
++ SIN_ADDR(rt.rt_gateway) = gateway;
++
++ rt.rt_flags = RTF_UP | RTF_GATEWAY;
++ if (ioctl(sock_fd, SIOCDELRT, &amp;rt) &lt; 0 &amp;&amp; errno != ESRCH) {
++ if (still_ppp()) {
++ if ( ! ok_error ( errno ))
++ error(&quot;default route ioctl(SIOCDELRT): %m (%d)&quot;, errno);
++ return 0;
++ }
++ }
++
++ return 1;
++}
++
++/********************************************************************
++ *
++ * sifproxyarp - Make a proxy ARP entry for the peer.
++ */
++
++int sifproxyarp (int unit, u_int32_t his_adr)
++{
++ struct arpreq arpreq;
++ char *forw_path;
++
++ if (has_proxy_arp == 0) {
++ memset (&amp;arpreq, '\0', sizeof(arpreq));
++
++ SET_SA_FAMILY(arpreq.arp_pa, AF_INET);
++ SIN_ADDR(arpreq.arp_pa) = his_adr;
++ arpreq.arp_flags = ATF_PERM | ATF_PUBL;
++/*
++ * Get the hardware address of an interface on the same subnet
++ * as our local address.
++ */
++ if (!get_ether_addr(his_adr, &amp;arpreq.arp_ha, proxy_arp_dev,
++ sizeof(proxy_arp_dev))) {
++ error(&quot;Cannot determine ethernet address for proxy ARP&quot;);
++ return 0;
++ }
++ strlcpy(arpreq.arp_dev, proxy_arp_dev, sizeof(arpreq.arp_dev));
++
++ if (ioctl(sock_fd, SIOCSARP, (caddr_t)&amp;arpreq) &lt; 0) {
++ if ( ! ok_error ( errno ))
++ error(&quot;ioctl(SIOCSARP): %m(%d)&quot;, errno);
++ return 0;
++ }
++ proxy_arp_addr = his_adr;
++ has_proxy_arp = 1;
++
++ if (tune_kernel) {
++ forw_path = path_to_procfs(&quot;/sys/net/ipv4/ip_forward&quot;);
++ if (forw_path != 0) {
++ int fd = open(forw_path, O_WRONLY);
++ if (fd &gt;= 0) {
++ if (write(fd, &quot;1&quot;, 1) != 1)
++ error(&quot;Couldn't enable IP forwarding: %m&quot;);
++ close(fd);
++ }
++ }
++ }
++ }
++
++ return 1;
++}
++
++/********************************************************************
++ *
++ * cifproxyarp - Delete the proxy ARP entry for the peer.
++ */
++
++int cifproxyarp (int unit, u_int32_t his_adr)
++{
++ struct arpreq arpreq;
++
++ if (has_proxy_arp) {
++ has_proxy_arp = 0;
++ memset (&amp;arpreq, '\0', sizeof(arpreq));
++ SET_SA_FAMILY(arpreq.arp_pa, AF_INET);
++ SIN_ADDR(arpreq.arp_pa) = his_adr;
++ arpreq.arp_flags = ATF_PERM | ATF_PUBL;
++ strlcpy(arpreq.arp_dev, proxy_arp_dev, sizeof(arpreq.arp_dev));
++
++ if (ioctl(sock_fd, SIOCDARP, (caddr_t)&amp;arpreq) &lt; 0) {
++ if ( ! ok_error ( errno ))
++ warn(&quot;ioctl(SIOCDARP): %m(%d)&quot;, errno);
++ return 0;
++ }
++ }
++ return 1;
++}
++
++/********************************************************************
++ *
++ * get_ether_addr - get the hardware address of an interface on the
++ * the same subnet as ipaddr.
++ */
++
++static int get_ether_addr (u_int32_t ipaddr,
++ struct sockaddr *hwaddr,
++ char *name, int namelen)
++{
++ struct ifreq *ifr, *ifend;
++ u_int32_t ina, mask;
++ char *aliasp;
++ struct ifreq ifreq;
++ struct ifconf ifc;
++ struct ifreq ifs[MAX_IFS];
++
++ ifc.ifc_len = sizeof(ifs);
++ ifc.ifc_req = ifs;
++ if (ioctl(sock_fd, SIOCGIFCONF, &amp;ifc) &lt; 0) {
++ if ( ! ok_error ( errno ))
++ error(&quot;ioctl(SIOCGIFCONF): %m(%d)&quot;, errno);
++ return 0;
++ }
++
++ SYSDEBUG ((LOG_DEBUG, &quot;proxy arp: scanning %d interfaces for IP %s&quot;,
++ ifc.ifc_len / sizeof(struct ifreq), ip_ntoa(ipaddr)));
++/*
++ * Scan through looking for an interface with an Internet
++ * address on the same subnet as `ipaddr'.
++ */
++ ifend = ifs + (ifc.ifc_len / sizeof(struct ifreq));
++ for (ifr = ifc.ifc_req; ifr &lt; ifend; ifr++) {
++ if (ifr-&gt;ifr_addr.sa_family == AF_INET) {
++ ina = SIN_ADDR(ifr-&gt;ifr_addr);
++ strlcpy(ifreq.ifr_name, ifr-&gt;ifr_name, sizeof(ifreq.ifr_name));
++ SYSDEBUG ((LOG_DEBUG, &quot;proxy arp: examining interface %s&quot;,
++ ifreq.ifr_name));
++/*
++ * Check that the interface is up, and not point-to-point
++ * nor loopback.
++ */
++ if (ioctl(sock_fd, SIOCGIFFLAGS, &amp;ifreq) &lt; 0)
++ continue;
++
++ if (((ifreq.ifr_flags ^ FLAGS_GOOD) &amp; FLAGS_MASK) != 0)
++ continue;
++/*
++ * Get its netmask and check that it's on the right subnet.
++ */
++ if (ioctl(sock_fd, SIOCGIFNETMASK, &amp;ifreq) &lt; 0)
++ continue;
++
++ mask = SIN_ADDR(ifreq.ifr_addr);
++ SYSDEBUG ((LOG_DEBUG, &quot;proxy arp: interface addr %s mask %lx&quot;,
++ ip_ntoa(ina), ntohl(mask)));
++
++ if (((ipaddr ^ ina) &amp; mask) != 0)
++ continue;
++ break;
++ }
++ }
++
++ if (ifr &gt;= ifend)
++ return 0;
++
++ strlcpy(name, ifreq.ifr_name, namelen);
++
++ /* trim off the :1 in eth0:1 */
++ aliasp = strchr(name, ':');
++ if (aliasp != 0)
++ *aliasp = 0;
++
++ info(&quot;found interface %s for proxy arp&quot;, name);
++/*
++ * Now get the hardware address.
++ */
++ memset (&amp;ifreq.ifr_hwaddr, 0, sizeof (struct sockaddr));
++ if (ioctl (sock_fd, SIOCGIFHWADDR, &amp;ifreq) &lt; 0) {
++ error(&quot;SIOCGIFHWADDR(%s): %m(%d)&quot;, ifreq.ifr_name, errno);
++ return 0;
++ }
++
++ memcpy (hwaddr,
++ &amp;ifreq.ifr_hwaddr,
++ sizeof (struct sockaddr));
++
++ SYSDEBUG ((LOG_DEBUG,
++ &quot;proxy arp: found hwaddr %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x&quot;,
++ (int) ((unsigned char *) &amp;hwaddr-&gt;sa_data)[0],
++ (int) ((unsigned char *) &amp;hwaddr-&gt;sa_data)[1],
++ (int) ((unsigned char *) &amp;hwaddr-&gt;sa_data)[2],
++ (int) ((unsigned char *) &amp;hwaddr-&gt;sa_data)[3],
++ (int) ((unsigned char *) &amp;hwaddr-&gt;sa_data)[4],
++ (int) ((unsigned char *) &amp;hwaddr-&gt;sa_data)[5],
++ (int) ((unsigned char *) &amp;hwaddr-&gt;sa_data)[6],
++ (int) ((unsigned char *) &amp;hwaddr-&gt;sa_data)[7]));
++ return 1;
++}
++
++/*
++ * get_if_hwaddr - get the hardware address for the specified
++ * network interface device.
++ */
++int
++get_if_hwaddr(u_char *addr, char *name)
++{
++ struct ifreq ifreq;
++ int ret, sock_fd;
++
++ sock_fd = socket(AF_INET, SOCK_DGRAM, 0);
++ if (sock_fd &lt; 0)
++ return 0;
++ memset(&amp;ifreq.ifr_hwaddr, 0, sizeof(struct sockaddr));
++ strlcpy(ifreq.ifr_name, name, sizeof(ifreq.ifr_name));
++ ret = ioctl(sock_fd, SIOCGIFHWADDR, &amp;ifreq);
++ close(sock_fd);
++ if (ret &gt;= 0)
++ memcpy(addr, ifreq.ifr_hwaddr.sa_data, 6);
++ return ret;
++}
++
++/*
++ * get_first_ethernet - return the name of the first ethernet-style
++ * interface on this system.
++ */
++char *
++get_first_ethernet()
++{
++ return &quot;eth0&quot;;
++}
++
++/********************************************************************
++ *
++ * Return user specified netmask, modified by any mask we might determine
++ * for address `addr' (in network byte order).
++ * Here we scan through the system's list of interfaces, looking for
++ * any non-point-to-point interfaces which might appear to be on the same
++ * network as `addr'. If we find any, we OR in their netmask to the
++ * user-specified netmask.
++ */
++
++u_int32_t GetMask (u_int32_t addr)
++{
++ u_int32_t mask, nmask, ina;
++ struct ifreq *ifr, *ifend, ifreq;
++ struct ifconf ifc;
++ struct ifreq ifs[MAX_IFS];
++
++ addr = ntohl(addr);
++
++ if (IN_CLASSA(addr)) /* determine network mask for address class */
++ nmask = IN_CLASSA_NET;
++ else if (IN_CLASSB(addr))
++ nmask = IN_CLASSB_NET;
++ else
++ nmask = IN_CLASSC_NET;
++
++ /* class D nets are disallowed by bad_ip_adrs */
++ mask = netmask | htonl(nmask);
++/*
++ * Scan through the system's network interfaces.
++ */
++ ifc.ifc_len = sizeof(ifs);
++ ifc.ifc_req = ifs;
++ if (ioctl(sock_fd, SIOCGIFCONF, &amp;ifc) &lt; 0) {
++ if ( ! ok_error ( errno ))
++ warn(&quot;ioctl(SIOCGIFCONF): %m(%d)&quot;, errno);
++ return mask;
++ }
++
++ ifend = (struct ifreq *) (ifc.ifc_buf + ifc.ifc_len);
++ for (ifr = ifc.ifc_req; ifr &lt; ifend; ifr++) {
++/*
++ * Check the interface's internet address.
++ */
++ if (ifr-&gt;ifr_addr.sa_family != AF_INET)
++ continue;
++ ina = SIN_ADDR(ifr-&gt;ifr_addr);
++ if (((ntohl(ina) ^ addr) &amp; nmask) != 0)
++ continue;
++/*
++ * Check that the interface is up, and not point-to-point nor loopback.
++ */
++ strlcpy(ifreq.ifr_name, ifr-&gt;ifr_name, sizeof(ifreq.ifr_name));
++ if (ioctl(sock_fd, SIOCGIFFLAGS, &amp;ifreq) &lt; 0)
++ continue;
++
++ if (((ifreq.ifr_flags ^ FLAGS_GOOD) &amp; FLAGS_MASK) != 0)
++ continue;
++/*
++ * Get its netmask and OR it into our mask.
++ */
++ if (ioctl(sock_fd, SIOCGIFNETMASK, &amp;ifreq) &lt; 0)
++ continue;
++ mask |= SIN_ADDR(ifreq.ifr_addr);
++ break;
++ }
++ return mask;
++}
++
++/********************************************************************
++ *
++ * Internal routine to decode the version.modification.patch level
++ */
++
++static void decode_version (char *buf, int *version,
++ int *modification, int *patch)
++{
++ char *endp;
++
++ *version = (int) strtoul (buf, &amp;endp, 10);
++ *modification = 0;
++ *patch = 0;
++
++ if (endp != buf &amp;&amp; *endp == '.') {
++ buf = endp + 1;
++ *modification = (int) strtoul (buf, &amp;endp, 10);
++ if (endp != buf &amp;&amp; *endp == '.') {
++ buf = endp + 1;
++ *patch = (int) strtoul (buf, &amp;buf, 10);
++ }
++ }
++}
++
++/********************************************************************
++ *
++ * Procedure to determine if the PPP line discipline is registered.
++ */
++
++static int
++ppp_registered(void)
++{
++ int local_fd;
++ int mfd = -1;
++ int ret = 0;
++ char slave[16];
++
++ /*
++ * We used to open the serial device and set it to the ppp line
++ * discipline here, in order to create a ppp unit. But that is
++ * not a good idea - the user might have specified a device that
++ * they can't open (permission, or maybe it doesn't really exist).
++ * So we grab a pty master/slave pair and use that.
++ */
++ if (!get_pty(&amp;mfd, &amp;local_fd, slave, 0)) {
++ no_ppp_msg = &quot;Couldn't determine if PPP is supported (no free ptys)&quot;;
++ return 0;
++ }
++
++ /*
++ * Try to put the device into the PPP discipline.
++ */
++ if (ioctl(local_fd, TIOCSETD, &amp;ppp_disc) &lt; 0) {
++ error(&quot;ioctl(TIOCSETD(PPP)): %m(%d)&quot;, errno);
++ } else
++ ret = 1;
++
++ close(local_fd);
++ close(mfd);
++ return ret;
++}
++
++/********************************************************************
++ *
++ * ppp_available - check whether the system has any ppp interfaces
++ * (in fact we check whether we can do an ioctl on ppp0).
++ */
++
++int ppp_available(void)
++{
++ int s, ok, fd;
++ struct ifreq ifr;
++ int size;
++ int my_version, my_modification, my_patch;
++ int osmaj, osmin, ospatch;
++
++ no_ppp_msg =
++ &quot;This system lacks kernel support for PPP. This could be because\n&quot;
++ &quot;the PPP kernel module could not be loaded, or because PPP was not\n&quot;
++ &quot;included in the kernel configuration. If PPP was included as a\n&quot;
++ &quot;module, try `/sbin/modprobe -v ppp'. If that fails, check that\n&quot;
++ &quot;ppp.o exists in /lib/modules/`uname -r`/net.\n&quot;
++ &quot;See README.linux file in the ppp distribution for more details.\n&quot;;
++
++ /* get the kernel version now, since we are called before sys_init */
++ uname(&amp;utsname);
++ osmaj = osmin = ospatch = 0;
++ sscanf(utsname.release, &quot;%d.%d.%d&quot;, &amp;osmaj, &amp;osmin, &amp;ospatch);
++ kernel_version = KVERSION(osmaj, osmin, ospatch);
++
++ fd = open(&quot;/dev/ppp&quot;, O_RDWR);
++#if 0
++ if (fd &lt; 0 &amp;&amp; errno == ENOENT) {
++ /* try making it and see if that helps. */
++ if (mknod(&quot;/dev/ppp&quot;, S_IFCHR | S_IRUSR | S_IWUSR,
++ makedev(108, 0)) &gt;= 0) {
++ fd = open(&quot;/dev/ppp&quot;, O_RDWR);
++ if (fd &gt;= 0)
++ info(&quot;Created /dev/ppp device node&quot;);
++ else
++ unlink(&quot;/dev/ppp&quot;); /* didn't work, undo the mknod */
++ } else if (errno == EEXIST) {
++ fd = open(&quot;/dev/ppp&quot;, O_RDWR);
++ }
++ }
++#endif /* 0 */
++ if (fd &gt;= 0) {
++ new_style_driver = 1;
++
++ /* XXX should get from driver */
++ driver_version = 2;
++ driver_modification = 4;
++ driver_patch = 0;
++ close(fd);
++ return 1;
++ }
++ if (kernel_version &gt;= KVERSION(2,3,13)) {
++ if (errno == ENOENT)
++ no_ppp_msg =
++ &quot;pppd is unable to open the /dev/ppp device.\n&quot;
++ &quot;You need to create the /dev/ppp device node by\n&quot;
++ &quot;executing the following command as root:\n&quot;
++ &quot; mknod /dev/ppp c 108 0\n&quot;;
++ return 0;
++ }
++
++/*
++ * Open a socket for doing the ioctl operations.
++ */
++ s = socket(AF_INET, SOCK_DGRAM, 0);
++ if (s &lt; 0)
++ return 0;
++
++ strlcpy (ifr.ifr_name, &quot;ppp0&quot;, sizeof (ifr.ifr_name));
++ ok = ioctl(s, SIOCGIFFLAGS, (caddr_t) &amp;ifr) &gt;= 0;
++/*
++ * If the device did not exist then attempt to create one by putting the
++ * current tty into the PPP discipline. If this works then obtain the
++ * flags for the device again.
++ */
++ if (!ok) {
++ if (ppp_registered()) {
++ strlcpy (ifr.ifr_name, &quot;ppp0&quot;, sizeof (ifr.ifr_name));
++ ok = ioctl(s, SIOCGIFFLAGS, (caddr_t) &amp;ifr) &gt;= 0;
++ }
++ }
++/*
++ * Ensure that the hardware address is for PPP and not something else
++ */
++ if (ok)
++ ok = ioctl (s, SIOCGIFHWADDR, (caddr_t) &amp;ifr) &gt;= 0;
++
++ if (ok &amp;&amp; ((ifr.ifr_hwaddr.sa_family &amp; ~0xFF) != ARPHRD_PPP))
++ ok = 0;
++
++/*
++ * This is the PPP device. Validate the version of the driver at this
++ * point to ensure that this program will work with the driver.
++ */
++ if (ok) {
++ char abBuffer [1024];
++
++ ifr.ifr_data = abBuffer;
++ size = ioctl (s, SIOCGPPPVER, (caddr_t) &amp;ifr);
++ if (size &lt; 0) {
++ error(&quot;Couldn't read driver version: %m&quot;);
++ ok = 0;
++ no_ppp_msg = &quot;Sorry, couldn't verify kernel driver version\n&quot;;
++
++ } else {
++ decode_version(abBuffer,
++ &amp;driver_version,
++ &amp;driver_modification,
++ &amp;driver_patch);
++/*
++ * Validate the version of the driver against the version that we used.
++ */
++ decode_version(VERSION,
++ &amp;my_version,
++ &amp;my_modification,
++ &amp;my_patch);
++
++ /* The version numbers must match */
++ if (driver_version != my_version)
++ ok = 0;
++
++ /* The modification levels must be legal */
++ if (driver_modification &lt; 3) {
++ if (driver_modification &gt;= 2) {
++ /* we can cope with 2.2.0 and above */
++ driver_is_old = 1;
++ } else {
++ ok = 0;
++ }
++ }
++
++ close (s);
++ if (!ok) {
++ slprintf(route_buffer, sizeof(route_buffer),
++ &quot;Sorry - PPP driver version %d.%d.%d is out of date\n&quot;,
++ driver_version, driver_modification, driver_patch);
++
++ no_ppp_msg = route_buffer;
++ }
++ }
++ }
++ return ok;
++}
++
++/********************************************************************
++ *
++ * Update the wtmp file with the appropriate user name and tty device.
++ */
++
++void logwtmp (const char *line, const char *name, const char *host)
++{
++ struct utmp ut, *utp;
++ pid_t mypid = getpid();
++#if __GLIBC__ &lt; 2
++ int wtmp;
++#endif
++
++/*
++ * Update the signon database for users.
++ * Christoph Lameter: Copied from poeigl-1.36 Jan 3, 1996
++ */
++ utmpname(_PATH_UTMP);
++ setutent();
++ while ((utp = getutent()) &amp;&amp; (utp-&gt;ut_pid != mypid))
++ /* nothing */;
++
++ /* Is this call really necessary? There is another one after the 'put' */
++ endutent();
++
++ if (utp)
++ memcpy(&amp;ut, utp, sizeof(ut));
++ else
++ /* some gettys/telnetds don't initialize utmp... */
++ memset(&amp;ut, 0, sizeof(ut));
++
++ if (ut.ut_id[0] == 0)
++ strncpy(ut.ut_id, line + 3, sizeof(ut.ut_id));
++
++ strncpy(ut.ut_user, name, sizeof(ut.ut_user));
++ strncpy(ut.ut_line, line, sizeof(ut.ut_line));
++
++ time(&amp;ut.ut_time);
++
++ ut.ut_type = USER_PROCESS;
++ ut.ut_pid = mypid;
++
++ /* Insert the host name if one is supplied */
++ if (*host)
++ strncpy (ut.ut_host, host, sizeof(ut.ut_host));
++
++ /* Insert the IP address of the remote system if IP is enabled */
++ if (ipcp_protent.enabled_flag &amp;&amp; ipcp_hisoptions[0].neg_addr)
++ memcpy(&amp;ut.ut_addr, (char *) &amp;ipcp_hisoptions[0].hisaddr,
++ sizeof(ut.ut_addr));
++
++ /* CL: Makes sure that the logout works */
++ if (*host == 0 &amp;&amp; *name==0)
++ ut.ut_host[0]=0;
++
++ pututline(&amp;ut);
++ endutent();
++/*
++ * Update the wtmp file.
++ */
++#if __GLIBC__ &gt;= 2
++ updwtmp(_PATH_WTMP, &amp;ut);
++#else
++ wtmp = open(_PATH_WTMP, O_APPEND|O_WRONLY);
++ if (wtmp &gt;= 0) {
++ flock(wtmp, LOCK_EX);
++
++ if (write (wtmp, (char *)&amp;ut, sizeof(ut)) != sizeof(ut))
++ warn(&quot;error writing %s: %m&quot;, _PATH_WTMP);
++
++ flock(wtmp, LOCK_UN);
++
++ close (wtmp);
++ }
++#endif
++}
++
++
++/********************************************************************
++ *
++ * sifvjcomp - config tcp header compression
++ */
++
++int sifvjcomp (int u, int vjcomp, int cidcomp, int maxcid)
++{
++ u_int x = get_flags(ppp_dev_fd);
++
++ if (vjcomp) {
++ if (ioctl (ppp_dev_fd, PPPIOCSMAXCID, (caddr_t) &amp;maxcid) &lt; 0) {
++ if (! ok_error (errno))
++ error(&quot;ioctl(PPPIOCSMAXCID): %m(%d)&quot;, errno);
++ vjcomp = 0;
++ }
++ }
++
++ x = vjcomp ? x | SC_COMP_TCP : x &amp;~ SC_COMP_TCP;
++ x = cidcomp ? x &amp; ~SC_NO_TCP_CCID : x | SC_NO_TCP_CCID;
++ set_flags (ppp_dev_fd, x);
++
++ return 1;
++}
++
++/********************************************************************
++ *
++ * sifup - Config the interface up and enable IP packets to pass.
++ */
++
++int sifup(int u)
++{
++ struct ifreq ifr;
++
++ memset (&amp;ifr, '\0', sizeof (ifr));
++ strlcpy(ifr.ifr_name, ifname, sizeof (ifr.ifr_name));
++ if (ioctl(sock_fd, SIOCGIFFLAGS, (caddr_t) &amp;ifr) &lt; 0) {
++ if (! ok_error (errno))
++ error(&quot;ioctl (SIOCGIFFLAGS): %m(%d)&quot;, errno);
++ return 0;
++ }
++
++ ifr.ifr_flags |= (IFF_UP | IFF_POINTOPOINT);
++ if (ioctl(sock_fd, SIOCSIFFLAGS, (caddr_t) &amp;ifr) &lt; 0) {
++ if (! ok_error (errno))
++ error(&quot;ioctl(SIOCSIFFLAGS): %m(%d)&quot;, errno);
++ return 0;
++ }
++ if_is_up++;
++
++ return 1;
++}
++
++/********************************************************************
++ *
++ * sifdown - Disable the indicated protocol and config the interface
++ * down if there are no remaining protocols.
++ */
++
++int sifdown (int u)
++{
++ struct ifreq ifr;
++
++ if (if_is_up &amp;&amp; --if_is_up &gt; 0)
++ return 1;
++
++ memset (&amp;ifr, '\0', sizeof (ifr));
++ strlcpy(ifr.ifr_name, ifname, sizeof (ifr.ifr_name));
++ if (ioctl(sock_fd, SIOCGIFFLAGS, (caddr_t) &amp;ifr) &lt; 0) {
++ if (! ok_error (errno))
++ error(&quot;ioctl (SIOCGIFFLAGS): %m(%d)&quot;, errno);
++ return 0;
++ }
++
++ ifr.ifr_flags &amp;= ~IFF_UP;
++ ifr.ifr_flags |= IFF_POINTOPOINT;
++ if (ioctl(sock_fd, SIOCSIFFLAGS, (caddr_t) &amp;ifr) &lt; 0) {
++ if (! ok_error (errno))
++ error(&quot;ioctl(SIOCSIFFLAGS): %m(%d)&quot;, errno);
++ return 0;
++ }
++ return 1;
++}
++
++/********************************************************************
++ *
++ * sifaddr - Config the interface IP addresses and netmask.
++ */
++
++int sifaddr (int unit, u_int32_t our_adr, u_int32_t his_adr,
++ u_int32_t net_mask)
++{
++ struct ifreq ifr;
++ struct rtentry rt;
++
++ memset (&amp;ifr, '\0', sizeof (ifr));
++ memset (&amp;rt, '\0', sizeof (rt));
++
++ SET_SA_FAMILY (ifr.ifr_addr, AF_INET);
++ SET_SA_FAMILY (ifr.ifr_dstaddr, AF_INET);
++ SET_SA_FAMILY (ifr.ifr_netmask, AF_INET);
++
++ strlcpy (ifr.ifr_name, ifname, sizeof (ifr.ifr_name));
++/*
++ * Set our IP address
++ */
++ SIN_ADDR(ifr.ifr_addr) = our_adr;
++ if (ioctl(sock_fd, SIOCSIFADDR, (caddr_t) &amp;ifr) &lt; 0) {
++ if (errno != EEXIST) {
++ if (! ok_error (errno))
++ error(&quot;ioctl(SIOCSIFADDR): %m(%d)&quot;, errno);
++ }
++ else {
++ warn(&quot;ioctl(SIOCSIFADDR): Address already exists&quot;);
++ }
++ return (0);
++ }
++/*
++ * Set the gateway address
++ */
++ SIN_ADDR(ifr.ifr_dstaddr) = his_adr;
++ if (ioctl(sock_fd, SIOCSIFDSTADDR, (caddr_t) &amp;ifr) &lt; 0) {
++ if (! ok_error (errno))
++ error(&quot;ioctl(SIOCSIFDSTADDR): %m(%d)&quot;, errno);
++ return (0);
++ }
++/*
++ * Set the netmask.
++ * For recent kernels, force the netmask to 255.255.255.255.
++ */
++ if (kernel_version &gt;= KVERSION(2,1,16))
++ net_mask = ~0L;
++ if (net_mask != 0) {
++ SIN_ADDR(ifr.ifr_netmask) = net_mask;
++ if (ioctl(sock_fd, SIOCSIFNETMASK, (caddr_t) &amp;ifr) &lt; 0) {
++ if (! ok_error (errno))
++ error(&quot;ioctl(SIOCSIFNETMASK): %m(%d)&quot;, errno);
++ return (0);
++ }
++ }
++/*
++ * Add the device route
++ */
++ if (kernel_version &lt; KVERSION(2,1,16)) {
++ SET_SA_FAMILY (rt.rt_dst, AF_INET);
++ SET_SA_FAMILY (rt.rt_gateway, AF_INET);
++ rt.rt_dev = ifname;
++
++ SIN_ADDR(rt.rt_gateway) = 0L;
++ SIN_ADDR(rt.rt_dst) = his_adr;
++ rt.rt_flags = RTF_UP | RTF_HOST;
++
++ if (kernel_version &gt; KVERSION(2,1,0)) {
++ SET_SA_FAMILY (rt.rt_genmask, AF_INET);
++ SIN_ADDR(rt.rt_genmask) = -1L;
++ }
++
++ if (ioctl(sock_fd, SIOCADDRT, &amp;rt) &lt; 0) {
++ if (! ok_error (errno))
++ error(&quot;ioctl(SIOCADDRT) device route: %m(%d)&quot;, errno);
++ return (0);
++ }
++ }
++
++ /* set ip_dynaddr in demand mode if address changes */
++ if (demand &amp;&amp; tune_kernel &amp;&amp; !dynaddr_set
++ &amp;&amp; our_old_addr &amp;&amp; our_old_addr != our_adr) {
++ /* set ip_dynaddr if possible */
++ char *path;
++ int fd;
++
++ path = path_to_procfs(&quot;/sys/net/ipv4/ip_dynaddr&quot;);
++ if (path != 0 &amp;&amp; (fd = open(path, O_WRONLY)) &gt;= 0) {
++ if (write(fd, &quot;1&quot;, 1) != 1)
++ error(&quot;Couldn't enable dynamic IP addressing: %m&quot;);
++ close(fd);
++ }
++ dynaddr_set = 1; /* only 1 attempt */
++ }
++ our_old_addr = 0;
++
++ return 1;
++}
++
++/********************************************************************
++ *
++ * cifaddr - Clear the interface IP addresses, and delete routes
++ * through the interface if possible.
++ */
++
++int cifaddr (int unit, u_int32_t our_adr, u_int32_t his_adr)
++{
++ struct ifreq ifr;
++
++ if (kernel_version &lt; KVERSION(2,1,16)) {
++/*
++ * Delete the route through the device
++ */
++ struct rtentry rt;
++ memset (&amp;rt, '\0', sizeof (rt));
++
++ SET_SA_FAMILY (rt.rt_dst, AF_INET);
++ SET_SA_FAMILY (rt.rt_gateway, AF_INET);
++ rt.rt_dev = ifname;
++
++ SIN_ADDR(rt.rt_gateway) = 0;
++ SIN_ADDR(rt.rt_dst) = his_adr;
++ rt.rt_flags = RTF_UP | RTF_HOST;
++
++ if (kernel_version &gt; KVERSION(2,1,0)) {
++ SET_SA_FAMILY (rt.rt_genmask, AF_INET);
++ SIN_ADDR(rt.rt_genmask) = -1L;
++ }
++
++ if (ioctl(sock_fd, SIOCDELRT, &amp;rt) &lt; 0 &amp;&amp; errno != ESRCH) {
++ if (still_ppp() &amp;&amp; ! ok_error (errno))
++ error(&quot;ioctl(SIOCDELRT) device route: %m(%d)&quot;, errno);
++ return (0);
++ }
++ }
++
++ /* This way it is possible to have an IPX-only or IPv6-only interface */
++ memset(&amp;ifr, 0, sizeof(ifr));
++ SET_SA_FAMILY(ifr.ifr_addr, AF_INET);
++ strlcpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
++
++ if (ioctl(sock_fd, SIOCSIFADDR, (caddr_t) &amp;ifr) &lt; 0) {
++ if (! ok_error (errno)) {
++ error(&quot;ioctl(SIOCSIFADDR): %m(%d)&quot;, errno);
++ return 0;
++ }
++ }
++
++ our_old_addr = our_adr;
++
++ return 1;
++}
++
++#ifdef INET6
++/********************************************************************
++ *
++ * sif6addr - Config the interface with an IPv6 link-local address
++ */
++int sif6addr (int unit, eui64_t our_eui64, eui64_t his_eui64)
++{
++ struct in6_ifreq ifr6;
++ struct ifreq ifr;
++ struct in6_rtmsg rt6;
++
++ if (sock6_fd &lt; 0) {
++ errno = -sock6_fd;
++ error(&quot;IPv6 socket creation failed: %m&quot;);
++ return 0;
++ }
++ memset(&amp;ifr, 0, sizeof (ifr));
++ strlcpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
++ if (ioctl(sock6_fd, SIOCGIFINDEX, (caddr_t) &amp;ifr) &lt; 0) {
++ error(&quot;sif6addr: ioctl(SIOCGIFINDEX): %m (%d)&quot;, errno);
++ return 0;
++ }
++
++ /* Local interface */
++ memset(&amp;ifr6, 0, sizeof(ifr6));
++ IN6_LLADDR_FROM_EUI64(ifr6.ifr6_addr, our_eui64);
++ ifr6.ifr6_ifindex = ifr.ifr_ifindex;
++ ifr6.ifr6_prefixlen = 10;
++
++ if (ioctl(sock6_fd, SIOCSIFADDR, &amp;ifr6) &lt; 0) {
++ error(&quot;sif6addr: ioctl(SIOCSIFADDR): %m (%d)&quot;, errno);
++ return 0;
++ }
++
++ /* Route to remote host */
++ memset(&amp;rt6, 0, sizeof(rt6));
++ IN6_LLADDR_FROM_EUI64(rt6.rtmsg_dst, his_eui64);
++ rt6.rtmsg_flags = RTF_UP;
++ rt6.rtmsg_dst_len = 10;
++ rt6.rtmsg_ifindex = ifr.ifr_ifindex;
++ rt6.rtmsg_metric = 1;
++
++ if (ioctl(sock6_fd, SIOCADDRT, &amp;rt6) &lt; 0) {
++ error(&quot;sif6addr: ioctl(SIOCADDRT): %m (%d)&quot;, errno);
++ return 0;
++ }
++
++ return 1;
++}
++
++
++/********************************************************************
++ *
++ * cif6addr - Remove IPv6 address from interface
++ */
++int cif6addr (int unit, eui64_t our_eui64, eui64_t his_eui64)
++{
++ struct ifreq ifr;
++ struct in6_ifreq ifr6;
++
++ if (sock6_fd &lt; 0) {
++ errno = -sock6_fd;
++ error(&quot;IPv6 socket creation failed: %m&quot;);
++ return 0;
++ }
++ memset(&amp;ifr, 0, sizeof(ifr));
++ strlcpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
++ if (ioctl(sock6_fd, SIOCGIFINDEX, (caddr_t) &amp;ifr) &lt; 0) {
++ error(&quot;cif6addr: ioctl(SIOCGIFINDEX): %m (%d)&quot;, errno);
++ return 0;
++ }
++
++ memset(&amp;ifr6, 0, sizeof(ifr6));
++ IN6_LLADDR_FROM_EUI64(ifr6.ifr6_addr, our_eui64);
++ ifr6.ifr6_ifindex = ifr.ifr_ifindex;
++ ifr6.ifr6_prefixlen = 10;
++
++ if (ioctl(sock6_fd, SIOCDIFADDR, &amp;ifr6) &lt; 0) {
++ if (errno != EADDRNOTAVAIL) {
++ if (! ok_error (errno))
++ error(&quot;cif6addr: ioctl(SIOCDIFADDR): %m (%d)&quot;, errno);
++ }
++ else {
++ warn(&quot;cif6addr: ioctl(SIOCDIFADDR): No such address&quot;);
++ }
++ return (0);
++ }
++ return 1;
++}
++#endif /* INET6 */
++
++/*
++ * get_pty - get a pty master/slave pair and chown the slave side
++ * to the uid given. Assumes slave_name points to &gt;= 16 bytes of space.
++ */
++int
++get_pty(master_fdp, slave_fdp, slave_name, uid)
++ int *master_fdp;
++ int *slave_fdp;
++ char *slave_name;
++ int uid;
++{
++ int i, mfd, sfd = -1;
++ char pty_name[16];
++ struct termios tios;
++
++#ifdef TIOCGPTN
++ /*
++ * Try the unix98 way first.
++ */
++ mfd = open(&quot;/dev/ptmx&quot;, O_RDWR);
++ if (mfd &gt;= 0) {
++ int ptn;
++ if (ioctl(mfd, TIOCGPTN, &amp;ptn) &gt;= 0) {
++ slprintf(pty_name, sizeof(pty_name), &quot;/dev/pts/%d&quot;, ptn);
++ chmod(pty_name, S_IRUSR | S_IWUSR);
++#ifdef TIOCSPTLCK
++ ptn = 0;
++ if (ioctl(mfd, TIOCSPTLCK, &amp;ptn) &lt; 0)
++ warn(&quot;Couldn't unlock pty slave %s: %m&quot;, pty_name);
++#endif
++ if ((sfd = open(pty_name, O_RDWR | O_NOCTTY)) &lt; 0)
++ warn(&quot;Couldn't open pty slave %s: %m&quot;, pty_name);
++ }
++ }
++#endif /* TIOCGPTN */
++
++ if (sfd &lt; 0) {
++ /* the old way - scan through the pty name space */
++ for (i = 0; i &lt; 64; ++i) {
++ slprintf(pty_name, sizeof(pty_name), &quot;/dev/pty%c%x&quot;,
++ 'p' + i / 16, i % 16);
++ mfd = open(pty_name, O_RDWR, 0);
++ if (mfd &gt;= 0) {
++ pty_name[5] = 't';
++ sfd = open(pty_name, O_RDWR | O_NOCTTY, 0);
++ if (sfd &gt;= 0) {
++ fchown(sfd, uid, -1);
++ fchmod(sfd, S_IRUSR | S_IWUSR);
++ break;
++ }
++ close(mfd);
++ }
++ }
++ }
++
++ if (sfd &lt; 0)
++ return 0;
++
++ strlcpy(slave_name, pty_name, 16);
++ *master_fdp = mfd;
++ *slave_fdp = sfd;
++ if (tcgetattr(sfd, &amp;tios) == 0) {
++ tios.c_cflag &amp;= ~(CSIZE | CSTOPB | PARENB);
++ tios.c_cflag |= CS8 | CREAD | CLOCAL;
++ tios.c_iflag = IGNPAR;
++ tios.c_oflag = 0;
++ tios.c_lflag = 0;
++ if (tcsetattr(sfd, TCSAFLUSH, &amp;tios) &lt; 0)
++ warn(&quot;couldn't set attributes on pty: %m&quot;);
++ } else
++ warn(&quot;couldn't get attributes on pty: %m&quot;);
++
++ return 1;
++}
++
++/********************************************************************
++ *
++ * open_loopback - open the device we use for getting packets
++ * in demand mode. Under Linux, we use a pty master/slave pair.
++ */
++int
++open_ppp_loopback(void)
++{
++ int flags;
++
++ looped = 1;
++ if (new_style_driver) {
++ /* allocate ourselves a ppp unit */
++ if (make_ppp_unit() &lt; 0)
++ die(1);
++ set_flags(ppp_dev_fd, SC_LOOP_TRAFFIC);
++ set_kdebugflag(kdebugflag);
++ ppp_fd = -1;
++ return ppp_dev_fd;
++ }
++
++ if (!get_pty(&amp;master_fd, &amp;slave_fd, loop_name, 0))
++ fatal(&quot;No free pty for loopback&quot;);
++ SYSDEBUG((&quot;using %s for loopback&quot;, loop_name));
++
++ set_ppp_fd(slave_fd);
++
++ flags = fcntl(master_fd, F_GETFL);
++ if (flags == -1 ||
++ fcntl(master_fd, F_SETFL, flags | O_NONBLOCK) == -1)
++ warn(&quot;couldn't set master loopback to nonblock: %m(%d)&quot;, errno);
++
++ flags = fcntl(ppp_fd, F_GETFL);
++ if (flags == -1 ||
++ fcntl(ppp_fd, F_SETFL, flags | O_NONBLOCK) == -1)
++ warn(&quot;couldn't set slave loopback to nonblock: %m(%d)&quot;, errno);
++
++ if (ioctl(ppp_fd, TIOCSETD, &amp;ppp_disc) &lt; 0)
++ fatal(&quot;ioctl(TIOCSETD): %m(%d)&quot;, errno);
++/*
++ * Find out which interface we were given.
++ */
++ if (ioctl(ppp_fd, PPPIOCGUNIT, &amp;ifunit) &lt; 0)
++ fatal(&quot;ioctl(PPPIOCGUNIT): %m(%d)&quot;, errno);
++/*
++ * Enable debug in the driver if requested.
++ */
++ set_kdebugflag (kdebugflag);
++
++ return master_fd;
++}
++
++/********************************************************************
++ *
++ * restore_loop - reattach the ppp unit to the loopback.
++ *
++ * The kernel ppp driver automatically reattaches the ppp unit to
++ * the loopback if the serial port is set to a line discipline other
++ * than ppp, or if it detects a modem hangup. The former will happen
++ * in disestablish_ppp if the latter hasn't already happened, so we
++ * shouldn't need to do anything.
++ *
++ * Just to be sure, set the real serial port to the normal discipline.
++ */
++
++static void
++restore_loop(void)
++{
++ looped = 1;
++ if (new_style_driver) {
++ set_flags(ppp_dev_fd, get_flags(ppp_dev_fd) | SC_LOOP_TRAFFIC);
++ return;
++ }
++ if (ppp_fd != slave_fd) {
++ (void) ioctl(ppp_fd, TIOCSETD, &amp;tty_disc);
++ set_ppp_fd(slave_fd);
++ }
++}
++
++/********************************************************************
++ *
++ * sifnpmode - Set the mode for handling packets for a given NP.
++ */
++
++int
++sifnpmode(u, proto, mode)
++ int u;
++ int proto;
++ enum NPmode mode;
++{
++ struct npioctl npi;
++
++ npi.protocol = proto;
++ npi.mode = mode;
++ if (ioctl(ppp_dev_fd, PPPIOCSNPMODE, (caddr_t) &amp;npi) &lt; 0) {
++ if (! ok_error (errno))
++ error(&quot;ioctl(PPPIOCSNPMODE, %d, %d): %m (%d)&quot;,
++ proto, mode, errno);
++ return 0;
++ }
++ return 1;
++}
++
++
++/********************************************************************
++ *
++ * sipxfaddr - Config the interface IPX networknumber
++ */
++
++int sipxfaddr (int unit, unsigned long int network, unsigned char * node )
++{
++ int result = 1;
++
++#ifdef IPX_CHANGE
++ int skfd;
++ struct ifreq ifr;
++ struct sockaddr_ipx *sipx = (struct sockaddr_ipx *) &amp;ifr.ifr_addr;
++
++ skfd = socket (AF_IPX, SOCK_DGRAM, 0);
++ if (skfd &lt; 0) {
++ if (! ok_error (errno))
++ dbglog(&quot;socket(AF_IPX): %m (%d)&quot;, errno);
++ result = 0;
++ }
++ else {
++ memset (&amp;ifr, '\0', sizeof (ifr));
++ strlcpy (ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
++
++ memcpy (sipx-&gt;sipx_node, node, IPX_NODE_LEN);
++ sipx-&gt;sipx_family = AF_IPX;
++ sipx-&gt;sipx_port = 0;
++ sipx-&gt;sipx_network = htonl (network);
++ sipx-&gt;sipx_type = IPX_FRAME_ETHERII;
++ sipx-&gt;sipx_action = IPX_CRTITF;
++/*
++ * Set the IPX device
++ */
++ if (ioctl(skfd, SIOCSIFADDR, (caddr_t) &amp;ifr) &lt; 0) {
++ result = 0;
++ if (errno != EEXIST) {
++ if (! ok_error (errno))
++ dbglog(&quot;ioctl(SIOCSIFADDR, CRTITF): %m (%d)&quot;, errno);
++ }
++ else {
++ warn(&quot;ioctl(SIOCSIFADDR, CRTITF): Address already exists&quot;);
++ }
++ }
++ close (skfd);
++ }
++#endif
++ return result;
++}
++
++/********************************************************************
++ *
++ * cipxfaddr - Clear the information for the IPX network. The IPX routes
++ * are removed and the device is no longer able to pass IPX
++ * frames.
++ */
++
++int cipxfaddr (int unit)
++{
++ int result = 1;
++
++#ifdef IPX_CHANGE
++ int skfd;
++ struct ifreq ifr;
++ struct sockaddr_ipx *sipx = (struct sockaddr_ipx *) &amp;ifr.ifr_addr;
++
++ skfd = socket (AF_IPX, SOCK_DGRAM, 0);
++ if (skfd &lt; 0) {
++ if (! ok_error (errno))
++ dbglog(&quot;socket(AF_IPX): %m (%d)&quot;, errno);
++ result = 0;
++ }
++ else {
++ memset (&amp;ifr, '\0', sizeof (ifr));
++ strlcpy (ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
++
++ sipx-&gt;sipx_type = IPX_FRAME_ETHERII;
++ sipx-&gt;sipx_action = IPX_DLTITF;
++ sipx-&gt;sipx_family = AF_IPX;
++/*
++ * Set the IPX device
++ */
++ if (ioctl(skfd, SIOCSIFADDR, (caddr_t) &amp;ifr) &lt; 0) {
++ if (! ok_error (errno))
++ info(&quot;ioctl(SIOCSIFADDR, IPX_DLTITF): %m (%d)&quot;, errno);
++ result = 0;
++ }
++ close (skfd);
++ }
++#endif
++ return result;
++}
++
++/*
++ * Use the hostname as part of the random number seed.
++ */
++int
++get_host_seed()
++{
++ int h;
++ char *p = hostname;
++
++ h = 407;
++ for (p = hostname; *p != 0; ++p)
++ h = h * 37 + *p;
++ return h;
++}
++
++/********************************************************************
++ *
++ * sys_check_options - check the options that the user specified
++ */
++
++int
++sys_check_options(void)
++{
++#ifdef IPX_CHANGE
++/*
++ * Disable the IPX protocol if the support is not present in the kernel.
++ */
++ char *path;
++
++ if (ipxcp_protent.enabled_flag) {
++ struct stat stat_buf;
++ if ((path = path_to_procfs(&quot;/net/ipx_interface&quot;)) == 0
++ || lstat(path, &amp;stat_buf) &lt; 0) {
++ error(&quot;IPX support is not present in the kernel\n&quot;);
++ ipxcp_protent.enabled_flag = 0;
++ }
++ }
++#endif
++ if (demand &amp;&amp; driver_is_old) {
++ option_error(&quot;demand dialling is not supported by kernel driver &quot;
++ &quot;version %d.%d.%d&quot;, driver_version, driver_modification,
++ driver_patch);
++ return 0;
++ }
++ if (multilink &amp;&amp; !new_style_driver) {
++ warn(&quot;Warning: multilink is not supported by the kernel driver&quot;);
++ multilink = 0;
++ }
++ return 1;
++}
+
+<a id="drakxtrunkmdkstage1ppppppdsyssolarisc">Added: drakx/trunk/mdk-stage1/ppp/pppd/sys-solaris.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/sys-solaris.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/sys-solaris.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,2737 @@
++/*
++ * System-dependent procedures for pppd under Solaris 2.
++ *
++ * Parts re-written by Adi Masputra &lt;adi.masputra@sun.com&gt;, based on
++ * the original sys-svr4.c
++ *
++ * Copyright (c) 2000 by Sun Microsystems, Inc.
++ * All rights reserved.
++ *
++ * Permission to use, copy, modify, and distribute this software and its
++ * documentation is hereby granted, provided that the above copyright
++ * notice appears in all copies.
++ *
++ * SUN MAKES NO REPRESENTATION OR WARRANTIES ABOUT THE SUITABILITY OF
++ * THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
++ * TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
++ * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR
++ * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
++ * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES
++ *
++ * Copyright (c) 1994 The Australian National University.
++ * All rights reserved.
++ *
++ * Permission to use, copy, modify, and distribute this software and its
++ * documentation is hereby granted, provided that the above copyright
++ * notice appears in all copies. This software is provided without any
++ * warranty, express or implied. The Australian National University
++ * makes no representations about the suitability of this software for
++ * any purpose.
++ *
++ * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY
++ * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
++ * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
++ * THE AUSTRALIAN NATIONAL UNIVERSITY HAVE BEEN ADVISED OF THE POSSIBILITY
++ * OF SUCH DAMAGE.
++ *
++ * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
++ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
++ * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
++ * ON AN &quot;AS IS&quot; BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO
++ * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
++ * OR MODIFICATIONS.
++ */
++
++#define RCSID &quot;$Id: sys-solaris.c 195720 2001-06-11 11:44:34Z gc $&quot;
++
++#include &lt;limits.h&gt;
++#include &lt;stdio.h&gt;
++#include &lt;stddef.h&gt;
++#include &lt;stdlib.h&gt;
++#include &lt;ctype.h&gt;
++#include &lt;errno.h&gt;
++#include &lt;fcntl.h&gt;
++#include &lt;unistd.h&gt;
++#include &lt;termios.h&gt;
++#ifndef CRTSCTS
++#include &lt;sys/termiox.h&gt;
++#endif
++#include &lt;signal.h&gt;
++#include &lt;utmpx.h&gt;
++#include &lt;sys/types.h&gt;
++#include &lt;sys/ioccom.h&gt;
++#include &lt;sys/stream.h&gt;
++#include &lt;sys/stropts.h&gt;
++#include &lt;sys/socket.h&gt;
++#include &lt;sys/sockio.h&gt;
++#include &lt;sys/sysmacros.h&gt;
++#include &lt;sys/systeminfo.h&gt;
++#include &lt;sys/dlpi.h&gt;
++#include &lt;sys/stat.h&gt;
++#include &lt;sys/mkdev.h&gt;
++#include &lt;net/if.h&gt;
++#include &lt;net/if_arp.h&gt;
++#include &lt;net/route.h&gt;
++#include &lt;net/ppp_defs.h&gt;
++#include &lt;net/pppio.h&gt;
++#include &lt;netinet/in.h&gt;
++#ifdef SOL2
++#include &lt;sys/tihdr.h&gt;
++#include &lt;sys/tiuser.h&gt;
++#include &lt;inet/common.h&gt;
++#include &lt;inet/mib2.h&gt;
++#include &lt;sys/ethernet.h&gt;
++#endif
++
++#include &quot;pppd.h&quot;
++#include &quot;fsm.h&quot;
++#include &quot;lcp.h&quot;
++#include &quot;ipcp.h&quot;
++#include &quot;ccp.h&quot;
++
++#if !defined(PPP_DRV_NAME)
++#define PPP_DRV_NAME &quot;ppp&quot;
++#endif /* !defined(PPP_DRV_NAME) */
++
++#if !defined(PPP_DEV_NAME)
++#define PPP_DEV_NAME &quot;/dev/&quot; PPP_DRV_NAME
++#endif /* !defined(PPP_DEV_NAME) */
++
++#if !defined(AHDLC_MOD_NAME)
++#define AHDLC_MOD_NAME &quot;ppp_ahdl&quot;
++#endif /* !defined(AHDLC_MOD_NAME) */
++
++#if !defined(COMP_MOD_NAME)
++#define COMP_MOD_NAME &quot;ppp_comp&quot;
++#endif /* !defined(COMP_MOD_NAME) */
++
++#if !defined(IP_DEV_NAME)
++#define IP_DEV_NAME &quot;/dev/ip&quot;
++#endif /* !defined(IP_DEV_NAME) */
++
++#if !defined(IP_MOD_NAME)
++#define IP_MOD_NAME &quot;ip&quot;
++#endif /* !defined(IP_MOD_NAME) */
++
++#if !defined(UDP_DEV_NAME) &amp;&amp; defined(SOL2)
++#define UDP_DEV_NAME &quot;/dev/udp&quot;
++#endif /* !defined(UDP_DEV_NAME) &amp;&amp; defined(SOL2) */
++
++#if !defined(UDP6_DEV_NAME) &amp;&amp; defined(SOL2)
++#define UDP6_DEV_NAME &quot;/dev/udp6&quot;
++#endif /* !defined(UDP6_DEV_NAME) &amp;&amp; defined(SOL2) */
++
++static const char rcsid[] = RCSID;
++
++#if defined(SOL2)
++/*
++ * &quot;/dev/udp&quot; is used as a multiplexor to PLINK the interface stream
++ * under. It is used in place of &quot;/dev/ip&quot; since STREAMS will not let
++ * a driver be PLINK'ed under itself, and &quot;/dev/ip&quot; is typically the
++ * driver at the bottom of the tunneling interfaces stream.
++ */
++static char *mux_dev_name = UDP_DEV_NAME;
++#else
++static char *mux_dev_name = IP_DEV_NAME;
++#endif
++static int pppfd;
++static int fdmuxid = -1;
++static int ipfd;
++static int ipmuxid = -1;
++
++#if defined(INET6) &amp;&amp; defined(SOL2)
++static int ip6fd; /* IP file descriptor */
++static int ip6muxid = -1; /* Multiplexer file descriptor */
++static int if6_is_up = 0; /* IPv6 interface has been marked up */
++
++#define _IN6_LLX_FROM_EUI64(l, s, eui64, as) do { \
++ s-&gt;sin6_addr.s6_addr32[0] = htonl(as); \
++ eui64_copy(eui64, s-&gt;sin6_addr.s6_addr32[2]); \
++ s-&gt;sin6_family = AF_INET6; \
++ l.lifr_addr.ss_family = AF_INET6; \
++ l.lifr_addrlen = 10; \
++ l.lifr_addr = laddr; \
++ } while (0)
++
++#define IN6_LLADDR_FROM_EUI64(l, s, eui64) \
++ _IN6_LLX_FROM_EUI64(l, s, eui64, 0xfe800000)
++
++#define IN6_LLTOKEN_FROM_EUI64(l, s, eui64) \
++ _IN6_LLX_FROM_EUI64(l, s, eui64, 0)
++
++#endif /* defined(INET6) &amp;&amp; defined(SOL2) */
++
++#if defined(INET6) &amp;&amp; defined(SOL2)
++static char first_ether_name[LIFNAMSIZ]; /* Solaris 8 and above */
++#else
++static char first_ether_name[IFNAMSIZ]; /* Before Solaris 8 */
++#define MAXIFS 256 /* Max # of interfaces */
++#endif /* defined(INET6) &amp;&amp; defined(SOL2) */
++
++static int restore_term;
++static struct termios inittermios;
++#ifndef CRTSCTS
++static struct termiox inittermiox;
++static int termiox_ok;
++#endif
++static struct winsize wsinfo; /* Initial window size info */
++static pid_t tty_sid; /* original session ID for terminal */
++
++extern u_char inpacket_buf[]; /* borrowed from main.c */
++
++#define MAX_POLLFDS 32
++static struct pollfd pollfds[MAX_POLLFDS];
++static int n_pollfds;
++
++static int link_mtu, link_mru;
++
++#define NMODULES 32
++static int tty_nmodules;
++static char tty_modules[NMODULES][FMNAMESZ+1];
++static int tty_npushed;
++
++static int if_is_up; /* Interface has been marked up */
++static u_int32_t remote_addr; /* IP address of peer */
++static u_int32_t default_route_gateway; /* Gateway for default route added */
++static u_int32_t proxy_arp_addr; /* Addr for proxy arp entry added */
++
++/* Prototypes for procedures local to this file. */
++static int translate_speed __P((int));
++static int baud_rate_of __P((int));
++static int get_ether_addr __P((u_int32_t, struct sockaddr *));
++static int get_hw_addr __P((char *, u_int32_t, struct sockaddr *));
++static int get_hw_addr_dlpi __P((char *, struct sockaddr *));
++static int dlpi_attach __P((int, int));
++static int dlpi_info_req __P((int));
++static int dlpi_get_reply __P((int, union DL_primitives *, int, int));
++static int strioctl __P((int, int, void *, int, int));
++
++#ifdef SOL2
++/*
++ * sifppa - Sets interface ppa
++ *
++ * without setting the ppa, ip module will return EINVAL upon setting the
++ * interface UP (SIOCSxIFFLAGS). This is because ip module in 2.8 expects
++ * two DLPI_INFO_REQ to be sent down to the driver (below ip) before
++ * IFF_UP can be set. Plumbing the device causes one DLPI_INFO_REQ to
++ * be sent down, and the second DLPI_INFO_REQ is sent upon receiving
++ * IF_UNITSEL (old) or SIOCSLIFNAME (new) ioctls. Such setting of the ppa
++ * is required because the ppp DLPI provider advertises itself as
++ * a DLPI style 2 type, which requires a point of attachment to be
++ * specified. The only way the user can specify a point of attachment
++ * is via SIOCSLIFNAME or IF_UNITSEL.
++ *
++ * Such changes in the behavior of ip module was made to meet new or
++ * evolving standards requirements.
++ *
++ */
++static int
++sifppa(fd, ppa)
++ int fd;
++ int ppa;
++{
++ return (int)ioctl(fd, IF_UNITSEL, (char *)&amp;ppa);
++}
++#endif /* SOL2 */
++
++#if defined(SOL2) &amp;&amp; defined(INET6)
++/*
++ * get_first_ethernet - returns the first Ethernet interface name found in
++ * the system, or NULL if none is found
++ *
++ * NOTE: This is the lifreq version (Solaris 8 and above)
++ */
++char *
++get_first_ethernet()
++{
++ struct lifnum lifn;
++ struct lifconf lifc;
++ struct lifreq *plifreq;
++ struct lifreq lifr;
++ int fd, num_ifs, i, found;
++ uint_t fl, req_size;
++ char *req;
++
++ fd = socket(AF_INET, SOCK_DGRAM, 0);
++ if (fd &lt; 0) {
++ return 0;
++ }
++
++ /*
++ * Find out how many interfaces are running
++ */
++ lifn.lifn_family = AF_UNSPEC;
++ lifn.lifn_flags = LIFC_NOXMIT;
++ if (ioctl(fd, SIOCGLIFNUM, &amp;lifn) &lt; 0) {
++ close(fd);
++ error(&quot;could not determine number of interfaces: %m&quot;);
++ return 0;
++ }
++
++ num_ifs = lifn.lifn_count;
++ req_size = num_ifs * sizeof(struct lifreq);
++ req = malloc(req_size);
++ if (req == NULL) {
++ close(fd);
++ error(&quot;out of memory&quot;);
++ return 0;
++ }
++
++ /*
++ * Get interface configuration info for all interfaces
++ */
++ lifc.lifc_family = AF_UNSPEC;
++ lifc.lifc_flags = LIFC_NOXMIT;
++ lifc.lifc_len = req_size;
++ lifc.lifc_buf = req;
++ if (ioctl(fd, SIOCGLIFCONF, &amp;lifc) &lt; 0) {
++ close(fd);
++ free(req);
++ error(&quot;SIOCGLIFCONF: %m&quot;);
++ return 0;
++ }
++
++ /*
++ * And traverse each interface to look specifically for the first
++ * occurence of an Ethernet interface which has been marked up
++ */
++ plifreq = lifc.lifc_req;
++ found = 0;
++ for (i = lifc.lifc_len / sizeof(struct lifreq); i &gt; 0; i--, plifreq++) {
++
++ if (strchr(plifreq-&gt;lifr_name, ':') != NULL)
++ continue;
++
++ memset(&amp;lifr, 0, sizeof(lifr));
++ strncpy(lifr.lifr_name, plifreq-&gt;lifr_name, sizeof(lifr.lifr_name));
++ if (ioctl(fd, SIOCGLIFFLAGS, &amp;lifr) &lt; 0) {
++ close(fd);
++ free(req);
++ error(&quot;SIOCGLIFFLAGS: %m&quot;);
++ return 0;
++ }
++ fl = lifr.lifr_flags;
++
++ if ((fl &amp; (IFF_UP|IFF_BROADCAST|IFF_POINTOPOINT|IFF_LOOPBACK|IFF_NOARP))
++ != (IFF_UP | IFF_BROADCAST))
++ continue;
++
++ found = 1;
++ break;
++ }
++ free(req);
++ close(fd);
++
++ if (found) {
++ strncpy(first_ether_name, lifr.lifr_name, sizeof(first_ether_name));
++ return (char *)first_ether_name;
++ } else
++ return NULL;
++}
++#else
++/*
++ * get_first_ethernet - returns the first Ethernet interface name found in
++ * the system, or NULL if none is found
++ *
++ * NOTE: This is the ifreq version (before Solaris 8).
++ */
++char *
++get_first_ethernet()
++{
++ struct ifconf ifc;
++ struct ifreq *pifreq;
++ struct ifreq ifr;
++ int fd, num_ifs, i, found;
++ uint_t fl, req_size;
++ char *req;
++
++ fd = socket(AF_INET, SOCK_DGRAM, 0);
++ if (fd &lt; 0) {
++ return 0;
++ }
++
++ /*
++ * Find out how many interfaces are running
++ */
++ if (ioctl(fd, SIOCGIFNUM, (char *)&amp;num_ifs) &lt; 0) {
++ num_ifs = MAXIFS;
++ }
++
++ req_size = num_ifs * sizeof(struct ifreq);
++ req = malloc(req_size);
++ if (req == NULL) {
++ close(fd);
++ error(&quot;out of memory&quot;);
++ return 0;
++ }
++
++ /*
++ * Get interface configuration info for all interfaces
++ */
++ ifc.ifc_len = req_size;
++ ifc.ifc_buf = req;
++ if (ioctl(fd, SIOCGIFCONF, &amp;ifc) &lt; 0) {
++ close(fd);
++ free(req);
++ error(&quot;SIOCGIFCONF: %m&quot;);
++ return 0;
++ }
++
++ /*
++ * And traverse each interface to look specifically for the first
++ * occurence of an Ethernet interface which has been marked up
++ */
++ pifreq = ifc.ifc_req;
++ found = 0;
++ for (i = ifc.ifc_len / sizeof(struct ifreq); i &gt; 0; i--, pifreq++) {
++
++ if (strchr(pifreq-&gt;ifr_name, ':') != NULL)
++ continue;
++
++ memset(&amp;ifr, 0, sizeof(ifr));
++ strncpy(ifr.ifr_name, pifreq-&gt;ifr_name, sizeof(ifr.ifr_name));
++ if (ioctl(fd, SIOCGIFFLAGS, &amp;ifr) &lt; 0) {
++ close(fd);
++ free(req);
++ error(&quot;SIOCGIFFLAGS: %m&quot;);
++ return 0;
++ }
++ fl = ifr.ifr_flags;
++
++ if ((fl &amp; (IFF_UP|IFF_BROADCAST|IFF_POINTOPOINT|IFF_LOOPBACK|IFF_NOARP))
++ != (IFF_UP | IFF_BROADCAST))
++ continue;
++
++ found = 1;
++ break;
++ }
++ free(req);
++ close(fd);
++
++ if (found) {
++ strncpy(first_ether_name, ifr.ifr_name, sizeof(first_ether_name));
++ return (char *)first_ether_name;
++ } else
++ return NULL;
++}
++#endif /* defined(SOL2) &amp;&amp; defined(INET6) */
++
++#if defined(SOL2)
++/*
++ * get_if_hwaddr - get the hardware address for the specified
++ * network interface device.
++ */
++int
++get_if_hwaddr(u_char *addr, char *if_name)
++{
++ struct sockaddr s_eth_addr;
++ struct ether_addr *eth_addr = (struct ether_addr *)&amp;s_eth_addr.sa_data;
++
++ if (if_name == NULL)
++ return -1;
++
++ /*
++ * Send DL_INFO_REQ to the driver to solicit its MAC address
++ */
++ if (!get_hw_addr_dlpi(if_name, &amp;s_eth_addr)) {
++ error(&quot;could not obtain hardware address for %s&quot;, if_name);
++ return -1;
++ }
++
++ memcpy(addr, eth_addr-&gt;ether_addr_octet, 6);
++ return 1;
++}
++#endif /* SOL2 */
++
++#if defined(SOL2) &amp;&amp; defined(INET6)
++/*
++ * slifname - Sets interface ppa and flags
++ *
++ * in addition to the comments stated in sifppa(), IFF_IPV6 bit must
++ * be set in order to declare this as an IPv6 interface
++ */
++static int
++slifname(fd, ppa)
++ int fd;
++ int ppa;
++{
++ struct lifreq lifr;
++ int ret;
++
++ memset(&amp;lifr, 0, sizeof(lifr));
++ ret = ioctl(fd, SIOCGLIFFLAGS, &amp;lifr);
++ if (ret &lt; 0)
++ goto slifname_done;
++
++ lifr.lifr_flags |= IFF_IPV6;
++ lifr.lifr_flags &amp;= ~(IFF_BROADCAST | IFF_IPV4);
++ lifr.lifr_ppa = ppa;
++ strlcpy(lifr.lifr_name, ifname, sizeof(lifr.lifr_name));
++
++ ret = ioctl(fd, SIOCSLIFNAME, &amp;lifr);
++
++slifname_done:
++ return ret;
++
++
++}
++
++
++/*
++ * ether_to_eui64 - Convert 48-bit Ethernet address into 64-bit EUI
++ *
++ * walks the list of valid ethernet interfaces, and convert the first
++ * found 48-bit MAC address into EUI 64. caller also assumes that
++ * the system has a properly configured Ethernet interface for this
++ * function to return non-zero.
++ */
++int
++ether_to_eui64(eui64_t *p_eui64)
++{
++ struct sockaddr s_eth_addr;
++ struct ether_addr *eth_addr = (struct ether_addr *)&amp;s_eth_addr.sa_data;
++ char *if_name;
++
++ if ((if_name = get_first_ethernet()) == NULL) {
++ error(&quot;no persistent id can be found&quot;);
++ return 0;
++ }
++
++ /*
++ * Send DL_INFO_REQ to the driver to solicit its MAC address
++ */
++ if (!get_hw_addr_dlpi(if_name, &amp;s_eth_addr)) {
++ error(&quot;could not obtain hardware address for %s&quot;, if_name);
++ return 0;
++ }
++
++ /*
++ * And convert the EUI-48 into EUI-64, per RFC 2472 [sec 4.1]
++ */
++ p_eui64-&gt;e8[0] = (eth_addr-&gt;ether_addr_octet[0] &amp; 0xFF) | 0x02;
++ p_eui64-&gt;e8[1] = (eth_addr-&gt;ether_addr_octet[1] &amp; 0xFF);
++ p_eui64-&gt;e8[2] = (eth_addr-&gt;ether_addr_octet[2] &amp; 0xFF);
++ p_eui64-&gt;e8[3] = 0xFF;
++ p_eui64-&gt;e8[4] = 0xFE;
++ p_eui64-&gt;e8[5] = (eth_addr-&gt;ether_addr_octet[3] &amp; 0xFF);
++ p_eui64-&gt;e8[6] = (eth_addr-&gt;ether_addr_octet[4] &amp; 0xFF);
++ p_eui64-&gt;e8[7] = (eth_addr-&gt;ether_addr_octet[5] &amp; 0xFF);
++
++ return 1;
++}
++#endif /* defined(SOL2) &amp;&amp; defined(INET6) */
++
++/*
++ * sys_init - System-dependent initialization.
++ */
++void
++sys_init()
++{
++ int ifd, x;
++ struct ifreq ifr;
++#if defined(INET6) &amp;&amp; defined(SOL2)
++ int i6fd;
++ struct lifreq lifr;
++#endif /* defined(INET6) &amp;&amp; defined(SOL2) */
++#if !defined(SOL2)
++ struct {
++ union DL_primitives prim;
++ char space[64];
++ } reply;
++#endif /* !defined(SOL2) */
++
++ ipfd = open(mux_dev_name, O_RDWR, 0);
++ if (ipfd &lt; 0)
++ fatal(&quot;Couldn't open IP device: %m&quot;);
++
++#if defined(INET6) &amp;&amp; defined(SOL2)
++ ip6fd = open(UDP6_DEV_NAME, O_RDWR, 0);
++ if (ip6fd &lt; 0)
++ fatal(&quot;Couldn't open IP device (2): %m&quot;);
++#endif /* defined(INET6) &amp;&amp; defined(SOL2) */
++
++ if (default_device &amp;&amp; !notty)
++ tty_sid = getsid((pid_t)0);
++
++ pppfd = open(PPP_DEV_NAME, O_RDWR | O_NONBLOCK, 0);
++ if (pppfd &lt; 0)
++ fatal(&quot;Can't open %s: %m&quot;, PPP_DEV_NAME);
++ if (kdebugflag &amp; 1) {
++ x = PPPDBG_LOG + PPPDBG_DRIVER;
++ strioctl(pppfd, PPPIO_DEBUG, &amp;x, sizeof(int), 0);
++ }
++
++ /* Assign a new PPA and get its unit number. */
++ if (strioctl(pppfd, PPPIO_NEWPPA, &amp;ifunit, 0, sizeof(int)) &lt; 0)
++ fatal(&quot;Can't create new PPP interface: %m&quot;);
++
++#if defined(SOL2)
++ /*
++ * Since sys_init() is called prior to ifname being set in main(),
++ * we need to get the ifname now, otherwise slifname(), and others,
++ * will fail, or maybe, I should move them to a later point ?
++ * &lt;adi.masputra@sun.com&gt;
++ */
++ sprintf(ifname, PPP_DRV_NAME &quot;%d&quot;, ifunit);
++#endif /* defined(SOL2) */
++ /*
++ * Open the ppp device again and link it under the ip multiplexor.
++ * IP will assign a unit number which hopefully is the same as ifunit.
++ * I don't know any way to be certain they will be the same. :-(
++ */
++ ifd = open(PPP_DEV_NAME, O_RDWR, 0);
++ if (ifd &lt; 0)
++ fatal(&quot;Can't open %s (2): %m&quot;, PPP_DEV_NAME);
++ if (kdebugflag &amp; 1) {
++ x = PPPDBG_LOG + PPPDBG_DRIVER;
++ strioctl(ifd, PPPIO_DEBUG, &amp;x, sizeof(int), 0);
++ }
++
++#if defined(INET6) &amp;&amp; defined(SOL2)
++ i6fd = open(PPP_DEV_NAME, O_RDWR, 0);
++ if (i6fd &lt; 0) {
++ close(ifd);
++ fatal(&quot;Can't open %s (3): %m&quot;, PPP_DEV_NAME);
++ }
++ if (kdebugflag &amp; 1) {
++ x = PPPDBG_LOG + PPPDBG_DRIVER;
++ strioctl(i6fd, PPPIO_DEBUG, &amp;x, sizeof(int), 0);
++ }
++#endif /* defined(INET6) &amp;&amp; defined(SOL2) */
++
++#if defined(SOL2)
++ if (ioctl(ifd, I_PUSH, IP_MOD_NAME) &lt; 0) {
++ close(ifd);
++#if defined(INET6)
++ close(i6fd);
++#endif /* defined(INET6) */
++ fatal(&quot;Can't push IP module: %m&quot;);
++ }
++
++ /*
++ * Assign ppa according to the unit number returned by ppp device
++ * after plumbing is completed above.
++ */
++ if (sifppa(ifd, ifunit) &lt; 0) {
++ close (ifd);
++#if defined(INET6)
++ close(i6fd);
++#endif /* defined(INET6) */
++ fatal(&quot;Can't set ppa for unit %d: %m&quot;, ifunit);
++ }
++
++#if defined(INET6)
++ /*
++ * An IPv6 interface is created anyway, even when the user does not
++ * explicitly enable it. Note that the interface will be marked
++ * IPv6 during slifname().
++ */
++ if (ioctl(i6fd, I_PUSH, IP_MOD_NAME) &lt; 0) {
++ close(ifd);
++ close(i6fd);
++ fatal(&quot;Can't push IP module (2): %m&quot;);
++ }
++
++ /*
++ * Assign ppa according to the unit number returned by ppp device
++ * after plumbing is completed above. In addition, mark the interface
++ * as an IPv6 interface.
++ */
++ if (slifname(i6fd, ifunit) &lt; 0) {
++ close(ifd);
++ close(i6fd);
++ fatal(&quot;Can't set ifname for unit %d: %m&quot;, ifunit);
++ }
++#endif /* defined(INET6) */
++
++ ipmuxid = ioctl(ipfd, I_PLINK, ifd);
++ close(ifd);
++ if (ipmuxid &lt; 0) {
++#if defined(INET6)
++ close(i6fd);
++#endif /* defined(INET6) */
++ fatal(&quot;Can't I_PLINK PPP device to IP: %m&quot;);
++ }
++
++ memset(&amp;ifr, 0, sizeof(ifr));
++ sprintf(ifr.ifr_name, &quot;%s&quot;, ifname);
++ ifr.ifr_ip_muxid = ipmuxid;
++
++ /*
++ * In Sol 8 and later, STREAMS dynamic module plumbing feature exists.
++ * This is so that an arbitrary module can be inserted, or deleted,
++ * between ip module and the device driver without tearing down the
++ * existing stream. Such feature requires the mux ids, which is set
++ * by SIOCSIFMUXID (or SIOCLSIFMUXID).
++ */
++ if (ioctl(ipfd, SIOCSIFMUXID, &amp;ifr) &lt; 0) {
++ ioctl(ipfd, I_PUNLINK, ipmuxid);
++#if defined(INET6)
++ close(i6fd);
++#endif /* defined(INET6) */
++ fatal(&quot;SIOCSIFMUXID: %m&quot;);
++ }
++
++#else /* else if !defined(SOL2) */
++
++ if (dlpi_attach(ifd, ifunit) &lt; 0 ||
++ dlpi_get_reply(ifd, &amp;reply.prim, DL_OK_ACK, sizeof(reply)) &lt; 0) {
++ close(ifd);
++ fatal(&quot;Can't attach to ppp%d: %m&quot;, ifunit);
++ }
++
++ ipmuxid = ioctl(ipfd, I_LINK, ifd);
++ close(ifd);
++ if (ipmuxid &lt; 0)
++ fatal(&quot;Can't link PPP device to IP: %m&quot;);
++#endif /* defined(SOL2) */
++
++#if defined(INET6) &amp;&amp; defined(SOL2)
++ ip6muxid = ioctl(ip6fd, I_PLINK, i6fd);
++ close(i6fd);
++ if (ip6muxid &lt; 0) {
++ ioctl(ipfd, I_PUNLINK, ipmuxid);
++ fatal(&quot;Can't I_PLINK PPP device to IP (2): %m&quot;);
++ }
++
++ memset(&amp;lifr, 0, sizeof(lifr));
++ sprintf(lifr.lifr_name, &quot;%s&quot;, ifname);
++ lifr.lifr_ip_muxid = ip6muxid;
++
++ /*
++ * Let IP know of the mux id [see comment for SIOCSIFMUXID above]
++ */
++ if (ioctl(ip6fd, SIOCSLIFMUXID, &amp;lifr) &lt; 0) {
++ ioctl(ipfd, I_PUNLINK, ipmuxid);
++ ioctl(ip6fd, I_PUNLINK, ip6muxid);
++ fatal(&quot;Can't link PPP device to IP (2): %m&quot;);
++ }
++#endif /* defined(INET6) &amp;&amp; defined(SOL2) */
++
++#if !defined(SOL2)
++ /* Set the interface name for the link. */
++ slprintf(ifr.ifr_name, sizeof(ifr.ifr_name), PPP_DRV_NAME &quot;%d&quot;, ifunit);
++ ifr.ifr_metric = ipmuxid;
++ if (strioctl(ipfd, SIOCSIFNAME, (char *)&amp;ifr, sizeof ifr, 0) &lt; 0)
++ fatal(&quot;Can't set interface name %s: %m&quot;, ifr.ifr_name);
++#endif /* !defined(SOL2) */
++
++ n_pollfds = 0;
++}
++
++/*
++ * sys_cleanup - restore any system state we modified before exiting:
++ * mark the interface down, delete default route and/or proxy arp entry.
++ * This should call die() because it's called from die().
++ */
++void
++sys_cleanup()
++{
++#if defined(SOL2)
++ struct ifreq ifr;
++#if defined(INET6)
++ struct lifreq lifr;
++#endif /* defined(INET6) */
++#endif /* defined(SOL2) */
++
++#if defined(SOL2) &amp;&amp; defined(INET6)
++ if (if6_is_up)
++ sif6down(0);
++#endif /* defined(SOL2) &amp;&amp; defined(INET6) */
++ if (if_is_up)
++ sifdown(0);
++ if (default_route_gateway)
++ cifdefaultroute(0, default_route_gateway, default_route_gateway);
++ if (proxy_arp_addr)
++ cifproxyarp(0, proxy_arp_addr);
++#if defined(SOL2)
++ /*
++ * Make sure we ask ip what the muxid, because 'ifconfig modlist' will
++ * unlink and re-link the modules, causing the muxid to change.
++ */
++ memset(&amp;ifr, 0, sizeof(ifr));
++ sprintf(ifr.ifr_name, &quot;%s&quot;, ifname);
++ if (ioctl(ipfd, SIOCGIFFLAGS, &amp;ifr) &lt; 0) {
++ error(&quot;SIOCGIFFLAGS: %m&quot;);
++ return;
++ }
++
++ if (ioctl(ipfd, SIOCGIFMUXID, &amp;ifr) &lt; 0) {
++ error(&quot;SIOCGIFMUXID: %m&quot;);
++ return;
++ }
++
++ ipmuxid = ifr.ifr_ip_muxid;
++
++ if (ioctl(ipfd, I_PUNLINK, ipmuxid) &lt; 0) {
++ error(&quot;Can't I_PUNLINK PPP from IP: %m&quot;);
++ return;
++ }
++#if defined(INET6)
++ /*
++ * Make sure we ask ip what the muxid, because 'ifconfig modlist' will
++ * unlink and re-link the modules, causing the muxid to change.
++ */
++ memset(&amp;lifr, 0, sizeof(lifr));
++ sprintf(lifr.lifr_name, &quot;%s&quot;, ifname);
++ if (ioctl(ip6fd, SIOCGLIFFLAGS, &amp;lifr) &lt; 0) {
++ error(&quot;SIOCGLIFFLAGS: %m&quot;);
++ return;
++ }
++
++ if (ioctl(ip6fd, SIOCGLIFMUXID, &amp;lifr) &lt; 0) {
++ error(&quot;SIOCGLIFMUXID: %m&quot;);
++ return;
++ }
++
++ ip6muxid = lifr.lifr_ip_muxid;
++
++ if (ioctl(ip6fd, I_PUNLINK, ip6muxid) &lt; 0) {
++ error(&quot;Can't I_PUNLINK PPP from IP (2): %m&quot;);
++ }
++#endif /* defined(INET6) */
++#endif /* defined(SOL2) */
++}
++
++/*
++ * sys_close - Clean up in a child process before execing.
++ */
++void
++sys_close()
++{
++ close(ipfd);
++#if defined(INET6) &amp;&amp; defined(SOL2)
++ close(ip6fd);
++#endif /* defined(INET6) &amp;&amp; defined(SOL2) */
++ if (pppfd &gt;= 0)
++ close(pppfd);
++}
++
++/*
++ * sys_check_options - check the options that the user specified
++ */
++int
++sys_check_options()
++{
++ return 1;
++}
++
++#if 0
++/*
++ * daemon - Detach us from controlling terminal session.
++ */
++int
++daemon(nochdir, noclose)
++ int nochdir, noclose;
++{
++ int pid;
++
++ if ((pid = fork()) &lt; 0)
++ return -1;
++ if (pid != 0)
++ exit(0); /* parent dies */
++ setsid();
++ if (!nochdir)
++ chdir(&quot;/&quot;);
++ if (!noclose) {
++ fclose(stdin); /* don't need stdin, stdout, stderr */
++ fclose(stdout);
++ fclose(stderr);
++ }
++ return 0;
++}
++#endif
++
++/*
++ * ppp_available - check whether the system has any ppp interfaces
++ */
++int
++ppp_available()
++{
++ struct stat buf;
++
++ return stat(PPP_DEV_NAME, &amp;buf) &gt;= 0;
++}
++
++/*
++ * any_compressions - see if compression is enabled or not
++ *
++ * In the STREAMS implementation of kernel-portion pppd,
++ * the comp STREAMS module performs the ACFC, PFC, as well
++ * CCP and VJ compressions. However, if the user has explicitly
++ * declare to not enable them from the command line, there is
++ * no point of having the comp module be pushed on the stream.
++ */
++static int
++any_compressions()
++{
++ if ((!lcp_wantoptions[0].neg_accompression) &amp;&amp;
++ (!lcp_wantoptions[0].neg_pcompression) &amp;&amp;
++ (!ccp_protent.enabled_flag) &amp;&amp;
++ (!ipcp_wantoptions[0].neg_vj)) {
++ return 0;
++ }
++ return 1;
++}
++
++/*
++ * tty_establish_ppp - Turn the serial port into a ppp interface.
++ */
++int
++tty_establish_ppp(fd)
++ int fd;
++{
++ int i;
++
++ /* Pop any existing modules off the tty stream. */
++ for (i = 0;; ++i)
++ if (ioctl(fd, I_LOOK, tty_modules[i]) &lt; 0
++ || strcmp(tty_modules[i], &quot;ptem&quot;) == 0
++ || ioctl(fd, I_POP, 0) &lt; 0)
++ break;
++ tty_nmodules = i;
++
++ /* Push the async hdlc module and the compressor module. */
++ tty_npushed = 0;
++
++ if(!sync_serial) {
++ if (ioctl(fd, I_PUSH, AHDLC_MOD_NAME) &lt; 0) {
++ error(&quot;Couldn't push PPP Async HDLC module: %m&quot;);
++ return -1;
++ }
++ ++tty_npushed;
++ }
++ if (kdebugflag &amp; 4) {
++ i = PPPDBG_LOG + PPPDBG_AHDLC;
++ strioctl(pppfd, PPPIO_DEBUG, &amp;i, sizeof(int), 0);
++ }
++ /*
++ * There's no need to push comp module if we don't intend
++ * to compress anything
++ */
++ if (any_compressions()) {
++ if (ioctl(fd, I_PUSH, COMP_MOD_NAME) &lt; 0)
++ error(&quot;Couldn't push PPP compression module: %m&quot;);
++ else
++ ++tty_npushed;
++ }
++
++ if (kdebugflag &amp; 2) {
++ i = PPPDBG_LOG;
++ if (any_compressions())
++ i += PPPDBG_COMP;
++ strioctl(pppfd, PPPIO_DEBUG, &amp;i, sizeof(int), 0);
++ }
++
++ /* Link the serial port under the PPP multiplexor. */
++ if ((fdmuxid = ioctl(pppfd, I_LINK, fd)) &lt; 0) {
++ error(&quot;Can't link tty to PPP mux: %m&quot;);
++ return -1;
++ }
++
++ return pppfd;
++}
++
++/*
++ * tty_disestablish_ppp - Restore the serial port to normal operation.
++ * It attempts to reconstruct the stream with the previously popped
++ * modules. This shouldn't call die() because it's called from die().
++ */
++void
++tty_disestablish_ppp(fd)
++ int fd;
++{
++ int i;
++
++ if (fdmuxid &gt;= 0) {
++ if (ioctl(pppfd, I_UNLINK, fdmuxid) &lt; 0) {
++ if (!hungup)
++ error(&quot;Can't unlink tty from PPP mux: %m&quot;);
++ }
++ fdmuxid = -1;
++
++ if (!hungup) {
++ while (tty_npushed &gt; 0 &amp;&amp; ioctl(fd, I_POP, 0) &gt;= 0)
++ --tty_npushed;
++ for (i = tty_nmodules - 1; i &gt;= 0; --i)
++ if (ioctl(fd, I_PUSH, tty_modules[i]) &lt; 0)
++ error(&quot;Couldn't restore tty module %s: %m&quot;,
++ tty_modules[i]);
++ }
++ if (hungup &amp;&amp; default_device &amp;&amp; tty_sid &gt; 0) {
++ /*
++ * If we have received a hangup, we need to send a SIGHUP
++ * to the terminal's controlling process. The reason is
++ * that the original stream head for the terminal hasn't
++ * seen the M_HANGUP message (it went up through the ppp
++ * driver to the stream head for our fd to /dev/ppp).
++ */
++ kill(tty_sid, SIGHUP);
++ }
++ }
++}
++
++/*
++ * Check whether the link seems not to be 8-bit clean.
++ */
++void
++clean_check()
++{
++ int x;
++ char *s;
++
++ if (strioctl(pppfd, PPPIO_GCLEAN, &amp;x, 0, sizeof(x)) &lt; 0)
++ return;
++ s = NULL;
++ switch (~x) {
++ case RCV_B7_0:
++ s = &quot;bit 7 set to 1&quot;;
++ break;
++ case RCV_B7_1:
++ s = &quot;bit 7 set to 0&quot;;
++ break;
++ case RCV_EVNP:
++ s = &quot;odd parity&quot;;
++ break;
++ case RCV_ODDP:
++ s = &quot;even parity&quot;;
++ break;
++ }
++ if (s != NULL) {
++ warn(&quot;Serial link is not 8-bit clean:&quot;);
++ warn(&quot;All received characters had %s&quot;, s);
++ }
++}
++
++/*
++ * List of valid speeds.
++ */
++struct speed {
++ int speed_int, speed_val;
++} speeds[] = {
++#ifdef B50
++ { 50, B50 },
++#endif
++#ifdef B75
++ { 75, B75 },
++#endif
++#ifdef B110
++ { 110, B110 },
++#endif
++#ifdef B134
++ { 134, B134 },
++#endif
++#ifdef B150
++ { 150, B150 },
++#endif
++#ifdef B200
++ { 200, B200 },
++#endif
++#ifdef B300
++ { 300, B300 },
++#endif
++#ifdef B600
++ { 600, B600 },
++#endif
++#ifdef B1200
++ { 1200, B1200 },
++#endif
++#ifdef B1800
++ { 1800, B1800 },
++#endif
++#ifdef B2000
++ { 2000, B2000 },
++#endif
++#ifdef B2400
++ { 2400, B2400 },
++#endif
++#ifdef B3600
++ { 3600, B3600 },
++#endif
++#ifdef B4800
++ { 4800, B4800 },
++#endif
++#ifdef B7200
++ { 7200, B7200 },
++#endif
++#ifdef B9600
++ { 9600, B9600 },
++#endif
++#ifdef B19200
++ { 19200, B19200 },
++#endif
++#ifdef B38400
++ { 38400, B38400 },
++#endif
++#ifdef EXTA
++ { 19200, EXTA },
++#endif
++#ifdef EXTB
++ { 38400, EXTB },
++#endif
++#ifdef B57600
++ { 57600, B57600 },
++#endif
++#ifdef B76800
++ { 76800, B76800 },
++#endif
++#ifdef B115200
++ { 115200, B115200 },
++#endif
++#ifdef B153600
++ { 153600, B153600 },
++#endif
++#ifdef B230400
++ { 230400, B230400 },
++#endif
++#ifdef B307200
++ { 307200, B307200 },
++#endif
++#ifdef B460800
++ { 460800, B460800 },
++#endif
++ { 0, 0 }
++};
++
++/*
++ * Translate from bits/second to a speed_t.
++ */
++static int
++translate_speed(bps)
++ int bps;
++{
++ struct speed *speedp;
++
++ if (bps == 0)
++ return 0;
++ for (speedp = speeds; speedp-&gt;speed_int; speedp++)
++ if (bps == speedp-&gt;speed_int)
++ return speedp-&gt;speed_val;
++ warn(&quot;speed %d not supported&quot;, bps);
++ return 0;
++}
++
++/*
++ * Translate from a speed_t to bits/second.
++ */
++static int
++baud_rate_of(speed)
++ int speed;
++{
++ struct speed *speedp;
++
++ if (speed == 0)
++ return 0;
++ for (speedp = speeds; speedp-&gt;speed_int; speedp++)
++ if (speed == speedp-&gt;speed_val)
++ return speedp-&gt;speed_int;
++ return 0;
++}
++
++/*
++ * set_up_tty: Set up the serial port on `fd' for 8 bits, no parity,
++ * at the requested speed, etc. If `local' is true, set CLOCAL
++ * regardless of whether the modem option was specified.
++ */
++void
++set_up_tty(fd, local)
++ int fd, local;
++{
++ int speed;
++ struct termios tios;
++#if !defined (CRTSCTS)
++ struct termiox tiox;
++#endif
++
++ if (!sync_serial &amp;&amp; tcgetattr(fd, &amp;tios) &lt; 0)
++ fatal(&quot;tcgetattr: %m&quot;);
++
++#ifndef CRTSCTS
++ termiox_ok = 1;
++ if (!sync_serial &amp;&amp; ioctl (fd, TCGETX, &amp;tiox) &lt; 0) {
++ termiox_ok = 0;
++ if (errno != ENOTTY)
++ error(&quot;TCGETX: %m&quot;);
++ }
++#endif
++
++ if (!restore_term) {
++ inittermios = tios;
++#ifndef CRTSCTS
++ inittermiox = tiox;
++#endif
++ if (!sync_serial)
++ ioctl(fd, TIOCGWINSZ, &amp;wsinfo);
++ }
++
++ tios.c_cflag &amp;= ~(CSIZE | CSTOPB | PARENB | CLOCAL);
++#ifdef CRTSCTS
++ if (crtscts &gt; 0)
++ tios.c_cflag |= CRTSCTS;
++ else if (crtscts &lt; 0)
++ tios.c_cflag &amp;= ~CRTSCTS;
++#else
++ if (crtscts != 0 &amp;&amp; !termiox_ok) {
++ error(&quot;Can't set RTS/CTS flow control&quot;);
++ } else if (crtscts &gt; 0) {
++ tiox.x_hflag |= RTSXOFF|CTSXON;
++ } else if (crtscts &lt; 0) {
++ tiox.x_hflag &amp;= ~(RTSXOFF|CTSXON);
++ }
++#endif
++
++ tios.c_cflag |= CS8 | CREAD | HUPCL;
++ if (local || !modem)
++ tios.c_cflag |= CLOCAL;
++ tios.c_iflag = IGNBRK | IGNPAR;
++ tios.c_oflag = 0;
++ tios.c_lflag = 0;
++ tios.c_cc[VMIN] = 1;
++ tios.c_cc[VTIME] = 0;
++
++ if (crtscts == -2) {
++ tios.c_iflag |= IXON | IXOFF;
++ tios.c_cc[VSTOP] = 0x13; /* DC3 = XOFF = ^S */
++ tios.c_cc[VSTART] = 0x11; /* DC1 = XON = ^Q */
++ }
++
++ speed = translate_speed(inspeed);
++ if (speed) {
++ cfsetospeed(&amp;tios, speed);
++ cfsetispeed(&amp;tios, speed);
++ } else {
++ speed = cfgetospeed(&amp;tios);
++ /*
++ * We can't proceed if the serial port speed is 0,
++ * since that implies that the serial port is disabled.
++ */
++ if ((speed == B0) &amp;&amp; !sync_serial)
++ fatal(&quot;Baud rate for %s is 0; need explicit baud rate&quot;, devnam);
++ }
++
++ if (!sync_serial &amp;&amp; tcsetattr(fd, TCSAFLUSH, &amp;tios) &lt; 0)
++ fatal(&quot;tcsetattr: %m&quot;);
++
++#ifndef CRTSCTS
++ if (!sync_serial &amp;&amp; termiox_ok &amp;&amp; ioctl (fd, TCSETXF, &amp;tiox) &lt; 0){
++ error(&quot;TCSETXF: %m&quot;);
++ }
++#endif
++
++ baud_rate = inspeed = baud_rate_of(speed);
++ if (!sync_serial)
++ restore_term = 1;
++}
++
++/*
++ * restore_tty - restore the terminal to the saved settings.
++ */
++void
++restore_tty(fd)
++ int fd;
++{
++ if (restore_term) {
++ if (!default_device) {
++ /*
++ * Turn off echoing, because otherwise we can get into
++ * a loop with the tty and the modem echoing to each other.
++ * We presume we are the sole user of this tty device, so
++ * when we close it, it will revert to its defaults anyway.
++ */
++ inittermios.c_lflag &amp;= ~(ECHO | ECHONL);
++ }
++ if (!sync_serial &amp;&amp; tcsetattr(fd, TCSAFLUSH, &amp;inittermios) &lt; 0)
++ if (!hungup &amp;&amp; errno != ENXIO)
++ warn(&quot;tcsetattr: %m&quot;);
++#ifndef CRTSCTS
++ if (!sync_serial &amp;&amp; ioctl (fd, TCSETXF, &amp;inittermiox) &lt; 0){
++ if (!hungup &amp;&amp; errno != ENXIO)
++ error(&quot;TCSETXF: %m&quot;);
++ }
++#endif
++ if (!sync_serial)
++ ioctl(fd, TIOCSWINSZ, &amp;wsinfo);
++ restore_term = 0;
++ }
++}
++
++/*
++ * setdtr - control the DTR line on the serial port.
++ * This is called from die(), so it shouldn't call die().
++ */
++void
++setdtr(fd, on)
++int fd, on;
++{
++ int modembits = TIOCM_DTR;
++
++ ioctl(fd, (on? TIOCMBIS: TIOCMBIC), &amp;modembits);
++}
++
++/*
++ * open_loopback - open the device we use for getting packets
++ * in demand mode. Under Solaris 2, we use our existing fd
++ * to the ppp driver.
++ */
++int
++open_ppp_loopback()
++{
++ return pppfd;
++}
++
++/*
++ * output - Output PPP packet.
++ */
++void
++output(unit, p, len)
++ int unit;
++ u_char *p;
++ int len;
++{
++ struct strbuf data;
++ int retries;
++ struct pollfd pfd;
++
++ if (debug)
++ dbglog(&quot;sent %P&quot;, p, len);
++
++ data.len = len;
++ data.buf = (caddr_t) p;
++ retries = 4;
++ while (putmsg(pppfd, NULL, &amp;data, 0) &lt; 0) {
++ if (--retries &lt; 0 || (errno != EWOULDBLOCK &amp;&amp; errno != EAGAIN)) {
++ if (errno != ENXIO)
++ error(&quot;Couldn't send packet: %m&quot;);
++ break;
++ }
++ pfd.fd = pppfd;
++ pfd.events = POLLOUT;
++ poll(&amp;pfd, 1, 250); /* wait for up to 0.25 seconds */
++ }
++}
++
++
++/*
++ * wait_input - wait until there is data available,
++ * for the length of time specified by *timo (indefinite
++ * if timo is NULL).
++ */
++void
++wait_input(timo)
++ struct timeval *timo;
++{
++ int t;
++
++ t = timo == NULL? -1: timo-&gt;tv_sec * 1000 + timo-&gt;tv_usec / 1000;
++ if (poll(pollfds, n_pollfds, t) &lt; 0 &amp;&amp; errno != EINTR)
++ fatal(&quot;poll: %m&quot;);
++}
++
++/*
++ * add_fd - add an fd to the set that wait_input waits for.
++ */
++void add_fd(fd)
++ int fd;
++{
++ int n;
++
++ for (n = 0; n &lt; n_pollfds; ++n)
++ if (pollfds[n].fd == fd)
++ return;
++ if (n_pollfds &lt; MAX_POLLFDS) {
++ pollfds[n_pollfds].fd = fd;
++ pollfds[n_pollfds].events = POLLIN | POLLPRI | POLLHUP;
++ ++n_pollfds;
++ } else
++ error(&quot;Too many inputs!&quot;);
++}
++
++/*
++ * remove_fd - remove an fd from the set that wait_input waits for.
++ */
++void remove_fd(fd)
++ int fd;
++{
++ int n;
++
++ for (n = 0; n &lt; n_pollfds; ++n) {
++ if (pollfds[n].fd == fd) {
++ while (++n &lt; n_pollfds)
++ pollfds[n-1] = pollfds[n];
++ --n_pollfds;
++ break;
++ }
++ }
++}
++
++#if 0
++/*
++ * wait_loop_output - wait until there is data available on the
++ * loopback, for the length of time specified by *timo (indefinite
++ * if timo is NULL).
++ */
++void
++wait_loop_output(timo)
++ struct timeval *timo;
++{
++ wait_input(timo);
++}
++
++/*
++ * wait_time - wait for a given length of time or until a
++ * signal is received.
++ */
++void
++wait_time(timo)
++ struct timeval *timo;
++{
++ int n;
++
++ n = select(0, NULL, NULL, NULL, timo);
++ if (n &lt; 0 &amp;&amp; errno != EINTR)
++ fatal(&quot;select: %m&quot;);
++}
++#endif
++
++
++/*
++ * read_packet - get a PPP packet from the serial device.
++ */
++int
++read_packet(buf)
++ u_char *buf;
++{
++ struct strbuf ctrl, data;
++ int flags, len;
++ unsigned char ctrlbuf[sizeof(union DL_primitives) + 64];
++
++ for (;;) {
++ data.maxlen = PPP_MRU + PPP_HDRLEN;
++ data.buf = (caddr_t) buf;
++ ctrl.maxlen = sizeof(ctrlbuf);
++ ctrl.buf = (caddr_t) ctrlbuf;
++ flags = 0;
++ len = getmsg(pppfd, &amp;ctrl, &amp;data, &amp;flags);
++ if (len &lt; 0) {
++ if (errno == EAGAIN || errno == EINTR)
++ return -1;
++ fatal(&quot;Error reading packet: %m&quot;);
++ }
++
++ if (ctrl.len &lt;= 0)
++ return data.len;
++
++ /*
++ * Got a M_PROTO or M_PCPROTO message. Interpret it
++ * as a DLPI primitive??
++ */
++ if (debug)
++ dbglog(&quot;got dlpi prim 0x%x, len=%d&quot;,
++ ((union DL_primitives *)ctrlbuf)-&gt;dl_primitive, ctrl.len);
++
++ }
++}
++
++/*
++ * get_loop_output - get outgoing packets from the ppp device,
++ * and detect when we want to bring the real link up.
++ * Return value is 1 if we need to bring up the link, 0 otherwise.
++ */
++int
++get_loop_output()
++{
++ int len;
++ int rv = 0;
++
++ while ((len = read_packet(inpacket_buf)) &gt; 0) {
++ if (loop_frame(inpacket_buf, len))
++ rv = 1;
++ }
++ return rv;
++}
++
++/*
++ * netif_set_mtu - set the MTU on the PPP network interface.
++ */
++void
++netif_set_mtu(unit, mtu)
++ int unit, mtu;
++{
++ struct ifreq ifr;
++#if defined(INET6) &amp;&amp; defined(SOL2)
++ struct lifreq lifr;
++ int fd;
++#endif /* defined(INET6) &amp;&amp; defined(SOL2) */
++
++ memset(&amp;ifr, 0, sizeof(ifr));
++ strlcpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
++ ifr.ifr_metric = link_mtu;
++ if (ioctl(ipfd, SIOCSIFMTU, &amp;ifr) &lt; 0) {
++ error(&quot;Couldn't set IP MTU (%s): %m&quot;, ifr.ifr_name);
++ }
++
++#if defined(INET6) &amp;&amp; defined(SOL2)
++ fd = socket(AF_INET6, SOCK_DGRAM, 0);
++ if (fd &lt; 0)
++ error(&quot;Couldn't open IPv6 socket: %m&quot;);
++
++ memset(&amp;lifr, 0, sizeof(lifr));
++ strlcpy(lifr.lifr_name, ifname, sizeof(lifr.lifr_name));
++ lifr.lifr_mtu = link_mtu;
++ if (ioctl(fd, SIOCSLIFMTU, &amp;lifr) &lt; 0) {
++ close(fd);
++ error(&quot;Couldn't set IPv6 MTU (%s): %m&quot;, ifr.ifr_name);
++ }
++ close(fd);
++#endif /* defined(INET6) &amp;&amp; defined(SOL2) */
++}
++
++/*
++ * tty_send_config - configure the transmit characteristics of
++ * the ppp interface.
++ */
++void
++tty_send_config(mtu, asyncmap, pcomp, accomp)
++ int mtu;
++ u_int32_t asyncmap;
++ int pcomp, accomp;
++{
++ int cf[2];
++
++ link_mtu = mtu;
++ if (strioctl(pppfd, PPPIO_MTU, &amp;mtu, sizeof(mtu), 0) &lt; 0) {
++ if (hungup &amp;&amp; errno == ENXIO)
++ return;
++ error(&quot;Couldn't set MTU: %m&quot;);
++ }
++ if (fdmuxid &gt;= 0) {
++ if (!sync_serial) {
++ if (strioctl(pppfd, PPPIO_XACCM, &amp;asyncmap, sizeof(asyncmap), 0) &lt; 0) {
++ error(&quot;Couldn't set transmit ACCM: %m&quot;);
++ }
++ }
++ cf[0] = (pcomp? COMP_PROT: 0) + (accomp? COMP_AC: 0);
++ cf[1] = COMP_PROT | COMP_AC;
++ if (any_compressions() &amp;&amp;
++ strioctl(pppfd, PPPIO_CFLAGS, cf, sizeof(cf), sizeof(int)) &lt; 0) {
++ error(&quot;Couldn't set prot/AC compression: %m&quot;);
++ }
++ }
++}
++
++/*
++ * ppp_set_xaccm - set the extended transmit ACCM for the interface.
++ */
++void
++tty_set_xaccm(accm)
++ ext_accm accm;
++{
++ if (sync_serial)
++ return;
++
++ if (fdmuxid &gt;= 0
++ &amp;&amp; strioctl(pppfd, PPPIO_XACCM, accm, sizeof(ext_accm), 0) &lt; 0) {
++ if (!hungup || errno != ENXIO)
++ warn(&quot;Couldn't set extended ACCM: %m&quot;);
++ }
++}
++
++/*
++ * ppp_recv_config - configure the receive-side characteristics of
++ * the ppp interface.
++ */
++void
++tty_recv_config(mru, asyncmap, pcomp, accomp)
++ int mru;
++ u_int32_t asyncmap;
++ int pcomp, accomp;
++{
++ int cf[2];
++
++ link_mru = mru;
++ if (strioctl(pppfd, PPPIO_MRU, &amp;mru, sizeof(mru), 0) &lt; 0) {
++ if (hungup &amp;&amp; errno == ENXIO)
++ return;
++ error(&quot;Couldn't set MRU: %m&quot;);
++ }
++ if (fdmuxid &gt;= 0) {
++ if (!sync_serial) {
++ if (strioctl(pppfd, PPPIO_RACCM, &amp;asyncmap, sizeof(asyncmap), 0) &lt; 0) {
++ error(&quot;Couldn't set receive ACCM: %m&quot;);
++ }
++ }
++ cf[0] = (pcomp? DECOMP_PROT: 0) + (accomp? DECOMP_AC: 0);
++ cf[1] = DECOMP_PROT | DECOMP_AC;
++ if (any_compressions() &amp;&amp;
++ strioctl(pppfd, PPPIO_CFLAGS, cf, sizeof(cf), sizeof(int)) &lt; 0) {
++ error(&quot;Couldn't set prot/AC decompression: %m&quot;);
++ }
++ }
++}
++
++/*
++ * ccp_test - ask kernel whether a given compression method
++ * is acceptable for use.
++ */
++int
++ccp_test(unit, opt_ptr, opt_len, for_transmit)
++ int unit, opt_len, for_transmit;
++ u_char *opt_ptr;
++{
++ if (strioctl(pppfd, (for_transmit? PPPIO_XCOMP: PPPIO_RCOMP),
++ opt_ptr, opt_len, 0) &gt;= 0)
++ return 1;
++ return (errno == ENOSR)? 0: -1;
++}
++
++/*
++ * ccp_flags_set - inform kernel about the current state of CCP.
++ */
++void
++ccp_flags_set(unit, isopen, isup)
++ int unit, isopen, isup;
++{
++ int cf[2];
++
++ cf[0] = (isopen? CCP_ISOPEN: 0) + (isup? CCP_ISUP: 0);
++ cf[1] = CCP_ISOPEN | CCP_ISUP | CCP_ERROR | CCP_FATALERROR;
++ if (strioctl(pppfd, PPPIO_CFLAGS, cf, sizeof(cf), sizeof(int)) &lt; 0) {
++ if (!hungup || errno != ENXIO)
++ error(&quot;Couldn't set kernel CCP state: %m&quot;);
++ }
++}
++
++/*
++ * get_idle_time - return how long the link has been idle.
++ */
++int
++get_idle_time(u, ip)
++ int u;
++ struct ppp_idle *ip;
++{
++ return strioctl(pppfd, PPPIO_GIDLE, ip, 0, sizeof(struct ppp_idle)) &gt;= 0;
++}
++
++/*
++ * get_ppp_stats - return statistics for the link.
++ */
++int
++get_ppp_stats(u, stats)
++ int u;
++ struct pppd_stats *stats;
++{
++ struct ppp_stats s;
++
++ if (!sync_serial &amp;&amp;
++ strioctl(pppfd, PPPIO_GETSTAT, &amp;s, 0, sizeof(s)) &lt; 0) {
++ error(&quot;Couldn't get link statistics: %m&quot;);
++ return 0;
++ }
++ stats-&gt;bytes_in = s.p.ppp_ibytes;
++ stats-&gt;bytes_out = s.p.ppp_obytes;
++ return 1;
++}
++
++#if 0
++/*
++ * set_filters - transfer the pass and active filters to the kernel.
++ */
++int
++set_filters(pass, active)
++ struct bpf_program *pass, *active;
++{
++ int ret = 1;
++
++ if (pass-&gt;bf_len &gt; 0) {
++ if (strioctl(pppfd, PPPIO_PASSFILT, pass,
++ sizeof(struct bpf_program), 0) &lt; 0) {
++ error(&quot;Couldn't set pass-filter in kernel: %m&quot;);
++ ret = 0;
++ }
++ }
++ if (active-&gt;bf_len &gt; 0) {
++ if (strioctl(pppfd, PPPIO_ACTIVEFILT, active,
++ sizeof(struct bpf_program), 0) &lt; 0) {
++ error(&quot;Couldn't set active-filter in kernel: %m&quot;);
++ ret = 0;
++ }
++ }
++ return ret;
++}
++#endif
++
++/*
++ * ccp_fatal_error - returns 1 if decompression was disabled as a
++ * result of an error detected after decompression of a packet,
++ * 0 otherwise. This is necessary because of patent nonsense.
++ */
++int
++ccp_fatal_error(unit)
++ int unit;
++{
++ int cf[2];
++
++ cf[0] = cf[1] = 0;
++ if (strioctl(pppfd, PPPIO_CFLAGS, cf, sizeof(cf), sizeof(int)) &lt; 0) {
++ if (errno != ENXIO &amp;&amp; errno != EINVAL)
++ error(&quot;Couldn't get compression flags: %m&quot;);
++ return 0;
++ }
++ return cf[0] &amp; CCP_FATALERROR;
++}
++
++/*
++ * sifvjcomp - config tcp header compression
++ */
++int
++sifvjcomp(u, vjcomp, xcidcomp, xmaxcid)
++ int u, vjcomp, xcidcomp, xmaxcid;
++{
++ int cf[2];
++ char maxcid[2];
++
++ if (vjcomp) {
++ maxcid[0] = xcidcomp;
++ maxcid[1] = 15; /* XXX should be rmaxcid */
++ if (strioctl(pppfd, PPPIO_VJINIT, maxcid, sizeof(maxcid), 0) &lt; 0) {
++ error(&quot;Couldn't initialize VJ compression: %m&quot;);
++ }
++ }
++
++ cf[0] = (vjcomp? COMP_VJC + DECOMP_VJC: 0) /* XXX this is wrong */
++ + (xcidcomp? COMP_VJCCID + DECOMP_VJCCID: 0);
++ cf[1] = COMP_VJC + DECOMP_VJC + COMP_VJCCID + DECOMP_VJCCID;
++ if (strioctl(pppfd, PPPIO_CFLAGS, cf, sizeof(cf), sizeof(int)) &lt; 0) {
++ if (vjcomp)
++ error(&quot;Couldn't enable VJ compression: %m&quot;);
++ }
++
++ return 1;
++}
++
++/*
++ * sifup - Config the interface up and enable IP packets to pass.
++ */
++int
++sifup(u)
++ int u;
++{
++ struct ifreq ifr;
++
++ strlcpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
++ if (ioctl(ipfd, SIOCGIFFLAGS, &amp;ifr) &lt; 0) {
++ error(&quot;Couldn't mark interface up (get): %m&quot;);
++ return 0;
++ }
++ ifr.ifr_flags |= IFF_UP;
++ if (ioctl(ipfd, SIOCSIFFLAGS, &amp;ifr) &lt; 0) {
++ error(&quot;Couldn't mark interface up (set): %m&quot;);
++ return 0;
++ }
++ if_is_up = 1;
++ return 1;
++}
++
++/*
++ * sifdown - Config the interface down and disable IP.
++ */
++int
++sifdown(u)
++ int u;
++{
++ struct ifreq ifr;
++
++ if (ipmuxid &lt; 0)
++ return 1;
++ strlcpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
++ if (ioctl(ipfd, SIOCGIFFLAGS, &amp;ifr) &lt; 0) {
++ error(&quot;Couldn't mark interface down (get): %m&quot;);
++ return 0;
++ }
++ ifr.ifr_flags &amp;= ~IFF_UP;
++ if (ioctl(ipfd, SIOCSIFFLAGS, &amp;ifr) &lt; 0) {
++ error(&quot;Couldn't mark interface down (set): %m&quot;);
++ return 0;
++ }
++ if_is_up = 0;
++ return 1;
++}
++
++/*
++ * sifnpmode - Set the mode for handling packets for a given NP.
++ */
++int
++sifnpmode(u, proto, mode)
++ int u;
++ int proto;
++ enum NPmode mode;
++{
++ int npi[2];
++
++ npi[0] = proto;
++ npi[1] = (int) mode;
++ if (strioctl(pppfd, PPPIO_NPMODE, &amp;npi, 2 * sizeof(int), 0) &lt; 0) {
++ error(&quot;ioctl(set NP %d mode to %d): %m&quot;, proto, mode);
++ return 0;
++ }
++ return 1;
++}
++
++#if defined(SOL2) &amp;&amp; defined(INET6)
++/*
++ * sif6up - Config the IPv6 interface up and enable IPv6 packets to pass.
++ */
++int
++sif6up(u)
++ int u;
++{
++ struct lifreq lifr;
++ int fd;
++
++ fd = socket(AF_INET6, SOCK_DGRAM, 0);
++ if (fd &lt; 0) {
++ return 0;
++ }
++
++ memset(&amp;lifr, 0, sizeof(lifr));
++ strlcpy(lifr.lifr_name, ifname, sizeof(lifr.lifr_name));
++ if (ioctl(fd, SIOCGLIFFLAGS, &amp;lifr) &lt; 0) {
++ close(fd);
++ return 0;
++ }
++
++ lifr.lifr_flags |= IFF_UP;
++ strlcpy(lifr.lifr_name, ifname, sizeof(lifr.lifr_name));
++ if (ioctl(fd, SIOCSLIFFLAGS, &amp;lifr) &lt; 0) {
++ close(fd);
++ return 0;
++ }
++
++ if6_is_up = 1;
++ close(fd);
++ return 1;
++}
++
++/*
++ * sifdown - Config the IPv6 interface down and disable IPv6.
++ */
++int
++sif6down(u)
++ int u;
++{
++ struct lifreq lifr;
++ int fd;
++
++ fd = socket(AF_INET6, SOCK_DGRAM, 0);
++ if (fd &lt; 0)
++ return 0;
++
++ memset(&amp;lifr, 0, sizeof(lifr));
++ strlcpy(lifr.lifr_name, ifname, sizeof(lifr.lifr_name));
++ if (ioctl(fd, SIOCGLIFFLAGS, &amp;lifr) &lt; 0) {
++ close(fd);
++ return 0;
++ }
++
++ lifr.lifr_flags &amp;= ~IFF_UP;
++ strlcpy(lifr.lifr_name, ifname, sizeof(lifr.lifr_name));
++ if (ioctl(fd, SIOCGLIFFLAGS, &amp;lifr) &lt; 0) {
++ close(fd);
++ return 0;
++ }
++
++ if6_is_up = 0;
++ close(fd);
++ return 1;
++}
++
++/*
++ * sif6addr - Config the interface with an IPv6 link-local address
++ */
++int
++sif6addr(u, o, h)
++ int u;
++ eui64_t o, h;
++{
++ struct lifreq lifr;
++ struct sockaddr_storage laddr;
++ struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *)&amp;laddr;
++ int fd;
++
++ fd = socket(AF_INET6, SOCK_DGRAM, 0);
++ if (fd &lt; 0)
++ return 0;
++
++ memset(&amp;lifr, 0, sizeof(lifr));
++ strlcpy(lifr.lifr_name, ifname, sizeof(lifr.lifr_name));
++
++ /*
++ * Do this because /dev/ppp responds to DL_PHYS_ADDR_REQ with
++ * zero values, hence the interface token came to be zero too,
++ * and without this, in.ndpd will complain
++ */
++ IN6_LLTOKEN_FROM_EUI64(lifr, sin6, o);
++ if (ioctl(fd, SIOCSLIFTOKEN, &amp;lifr) &lt; 0) {
++ close(fd);
++ return 0;
++ }
++
++ /*
++ * Set the interface address and destination address
++ */
++ IN6_LLADDR_FROM_EUI64(lifr, sin6, o);
++ if (ioctl(fd, SIOCSLIFADDR, &amp;lifr) &lt; 0) {
++ close(fd);
++ return 0;
++ }
++
++ memset(&amp;lifr, 0, sizeof(lifr));
++ strlcpy(lifr.lifr_name, ifname, sizeof(lifr.lifr_name));
++ IN6_LLADDR_FROM_EUI64(lifr, sin6, h);
++ if (ioctl(fd, SIOCSLIFDSTADDR, &amp;lifr) &lt; 0) {
++ close(fd);
++ return 0;
++ }
++
++ return 1;
++}
++
++/*
++ * cif6addr - Remove the IPv6 address from interface
++ */
++int
++cif6addr(u, o, h)
++ int u;
++ eui64_t o, h;
++{
++ return 1;
++}
++
++#endif /* defined(SOL2) &amp;&amp; defined(INET6) */
++
++
++#define INET_ADDR(x) (((struct sockaddr_in *) &amp;(x))-&gt;sin_addr.s_addr)
++
++/*
++ * sifaddr - Config the interface IP addresses and netmask.
++ */
++int
++sifaddr(u, o, h, m)
++ int u;
++ u_int32_t o, h, m;
++{
++ struct ifreq ifr;
++ int ret = 1;
++
++ memset(&amp;ifr, 0, sizeof(ifr));
++ strlcpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
++ ifr.ifr_addr.sa_family = AF_INET;
++ INET_ADDR(ifr.ifr_addr) = m;
++ if (ioctl(ipfd, SIOCSIFNETMASK, &amp;ifr) &lt; 0) {
++ error(&quot;Couldn't set IP netmask: %m&quot;);
++ ret = 0;
++ }
++ ifr.ifr_addr.sa_family = AF_INET;
++ INET_ADDR(ifr.ifr_addr) = o;
++ if (ioctl(ipfd, SIOCSIFADDR, &amp;ifr) &lt; 0) {
++ error(&quot;Couldn't set local IP address: %m&quot;);
++ ret = 0;
++ }
++
++ /*
++ * On some systems, we have to explicitly set the point-to-point
++ * flag bit before we can set a destination address.
++ */
++ if (ioctl(ipfd, SIOCGIFFLAGS, &amp;ifr) &gt;= 0
++ &amp;&amp; (ifr.ifr_flags &amp; IFF_POINTOPOINT) == 0) {
++ ifr.ifr_flags |= IFF_POINTOPOINT;
++ if (ioctl(ipfd, SIOCSIFFLAGS, &amp;ifr) &lt; 0) {
++ error(&quot;Couldn't mark interface pt-to-pt: %m&quot;);
++ ret = 0;
++ }
++ }
++ ifr.ifr_dstaddr.sa_family = AF_INET;
++ INET_ADDR(ifr.ifr_dstaddr) = h;
++ if (ioctl(ipfd, SIOCSIFDSTADDR, &amp;ifr) &lt; 0) {
++ error(&quot;Couldn't set remote IP address: %m&quot;);
++ ret = 0;
++ }
++#if 0 /* now done in ppp_send_config */
++ ifr.ifr_metric = link_mtu;
++ if (ioctl(ipfd, SIOCSIFMTU, &amp;ifr) &lt; 0) {
++ error(&quot;Couldn't set IP MTU: %m&quot;);
++ }
++#endif
++
++ remote_addr = h;
++ return ret;
++}
++
++/*
++ * cifaddr - Clear the interface IP addresses, and delete routes
++ * through the interface if possible.
++ */
++int
++cifaddr(u, o, h)
++ int u;
++ u_int32_t o, h;
++{
++#if defined(__USLC__) /* was: #if 0 */
++ cifroute(unit, ouraddr, hisaddr);
++ if (ipmuxid &gt;= 0) {
++ notice(&quot;Removing ppp interface unit&quot;);
++ if (ioctl(ipfd, I_UNLINK, ipmuxid) &lt; 0) {
++ error(&quot;Can't remove ppp interface unit: %m&quot;);
++ return 0;
++ }
++ ipmuxid = -1;
++ }
++#endif
++ remote_addr = 0;
++ return 1;
++}
++
++/*
++ * sifdefaultroute - assign a default route through the address given.
++ */
++int
++sifdefaultroute(u, l, g)
++ int u;
++ u_int32_t l, g;
++{
++ struct rtentry rt;
++
++#if defined(__USLC__)
++ g = l; /* use the local address as gateway */
++#endif
++ memset(&amp;rt, 0, sizeof(rt));
++ rt.rt_dst.sa_family = AF_INET;
++ INET_ADDR(rt.rt_dst) = 0;
++ rt.rt_gateway.sa_family = AF_INET;
++ INET_ADDR(rt.rt_gateway) = g;
++ rt.rt_flags = RTF_GATEWAY;
++
++ if (ioctl(ipfd, SIOCADDRT, &amp;rt) &lt; 0) {
++ error(&quot;Can't add default route: %m&quot;);
++ return 0;
++ }
++
++ default_route_gateway = g;
++ return 1;
++}
++
++/*
++ * cifdefaultroute - delete a default route through the address given.
++ */
++int
++cifdefaultroute(u, l, g)
++ int u;
++ u_int32_t l, g;
++{
++ struct rtentry rt;
++
++#if defined(__USLC__)
++ g = l; /* use the local address as gateway */
++#endif
++ memset(&amp;rt, 0, sizeof(rt));
++ rt.rt_dst.sa_family = AF_INET;
++ INET_ADDR(rt.rt_dst) = 0;
++ rt.rt_gateway.sa_family = AF_INET;
++ INET_ADDR(rt.rt_gateway) = g;
++ rt.rt_flags = RTF_GATEWAY;
++
++ if (ioctl(ipfd, SIOCDELRT, &amp;rt) &lt; 0) {
++ error(&quot;Can't delete default route: %m&quot;);
++ return 0;
++ }
++
++ default_route_gateway = 0;
++ return 1;
++}
++
++/*
++ * sifproxyarp - Make a proxy ARP entry for the peer.
++ */
++int
++sifproxyarp(unit, hisaddr)
++ int unit;
++ u_int32_t hisaddr;
++{
++ struct arpreq arpreq;
++
++ memset(&amp;arpreq, 0, sizeof(arpreq));
++ if (!get_ether_addr(hisaddr, &amp;arpreq.arp_ha))
++ return 0;
++
++ arpreq.arp_pa.sa_family = AF_INET;
++ INET_ADDR(arpreq.arp_pa) = hisaddr;
++ arpreq.arp_flags = ATF_PERM | ATF_PUBL;
++ if (ioctl(ipfd, SIOCSARP, (caddr_t) &amp;arpreq) &lt; 0) {
++ error(&quot;Couldn't set proxy ARP entry: %m&quot;);
++ return 0;
++ }
++
++ proxy_arp_addr = hisaddr;
++ return 1;
++}
++
++/*
++ * cifproxyarp - Delete the proxy ARP entry for the peer.
++ */
++int
++cifproxyarp(unit, hisaddr)
++ int unit;
++ u_int32_t hisaddr;
++{
++ struct arpreq arpreq;
++
++ memset(&amp;arpreq, 0, sizeof(arpreq));
++ arpreq.arp_pa.sa_family = AF_INET;
++ INET_ADDR(arpreq.arp_pa) = hisaddr;
++ if (ioctl(ipfd, SIOCDARP, (caddr_t)&amp;arpreq) &lt; 0) {
++ error(&quot;Couldn't delete proxy ARP entry: %m&quot;);
++ return 0;
++ }
++
++ proxy_arp_addr = 0;
++ return 1;
++}
++
++/*
++ * get_ether_addr - get the hardware address of an interface on the
++ * the same subnet as ipaddr.
++ */
++#define MAX_IFS 32
++
++static int
++get_ether_addr(ipaddr, hwaddr)
++ u_int32_t ipaddr;
++ struct sockaddr *hwaddr;
++{
++ struct ifreq *ifr, *ifend, ifreq;
++ int nif;
++ struct ifconf ifc;
++ u_int32_t ina, mask;
++
++ /*
++ * Scan through the system's network interfaces.
++ */
++#ifdef SIOCGIFNUM
++ if (ioctl(ipfd, SIOCGIFNUM, &amp;nif) &lt; 0)
++#endif
++ nif = MAX_IFS;
++ ifc.ifc_len = nif * sizeof(struct ifreq);
++ ifc.ifc_buf = (caddr_t) malloc(ifc.ifc_len);
++ if (ifc.ifc_buf == 0)
++ return 0;
++ if (ioctl(ipfd, SIOCGIFCONF, &amp;ifc) &lt; 0) {
++ warn(&quot;Couldn't get system interface list: %m&quot;);
++ free(ifc.ifc_buf);
++ return 0;
++ }
++ ifend = (struct ifreq *) (ifc.ifc_buf + ifc.ifc_len);
++ for (ifr = ifc.ifc_req; ifr &lt; ifend; ++ifr) {
++ if (ifr-&gt;ifr_addr.sa_family != AF_INET)
++ continue;
++ /*
++ * Check that the interface is up, and not point-to-point or loopback.
++ */
++ strlcpy(ifreq.ifr_name, ifr-&gt;ifr_name, sizeof(ifreq.ifr_name));
++ if (ioctl(ipfd, SIOCGIFFLAGS, &amp;ifreq) &lt; 0)
++ continue;
++ if ((ifreq.ifr_flags &amp;
++ (IFF_UP|IFF_BROADCAST|IFF_POINTOPOINT|IFF_LOOPBACK|IFF_NOARP))
++ != (IFF_UP|IFF_BROADCAST))
++ continue;
++ /*
++ * Get its netmask and check that it's on the right subnet.
++ */
++ if (ioctl(ipfd, SIOCGIFNETMASK, &amp;ifreq) &lt; 0)
++ continue;
++ ina = INET_ADDR(ifr-&gt;ifr_addr);
++ mask = INET_ADDR(ifreq.ifr_addr);
++ if ((ipaddr &amp; mask) == (ina &amp; mask))
++ break;
++ }
++
++ if (ifr &gt;= ifend) {
++ warn(&quot;No suitable interface found for proxy ARP&quot;);
++ free(ifc.ifc_buf);
++ return 0;
++ }
++
++ info(&quot;found interface %s for proxy ARP&quot;, ifr-&gt;ifr_name);
++ if (!get_hw_addr(ifr-&gt;ifr_name, ina, hwaddr)) {
++ error(&quot;Couldn't get hardware address for %s&quot;, ifr-&gt;ifr_name);
++ free(ifc.ifc_buf);
++ return 0;
++ }
++
++ free(ifc.ifc_buf);
++ return 1;
++}
++
++/*
++ * get_hw_addr_dlpi - obtain the hardware address using DLPI
++ */
++static int
++get_hw_addr_dlpi(name, hwaddr)
++ char *name;
++ struct sockaddr *hwaddr;
++{
++ char *p, *q;
++ int unit, iffd, adrlen;
++ unsigned char *adrp;
++ char ifdev[24];
++ struct {
++ union DL_primitives prim;
++ char space[64];
++ } reply;
++
++ /*
++ * We have to open the device and ask it for its hardware address.
++ * First split apart the device name and unit.
++ */
++ slprintf(ifdev, sizeof(ifdev), &quot;/dev/%s&quot;, name);
++ for (q = ifdev + strlen(ifdev); --q &gt;= ifdev; )
++ if (!isdigit(*q))
++ break;
++ unit = atoi(q+1);
++ q[1] = 0;
++
++ /*
++ * Open the device and do a DLPI attach and phys_addr_req.
++ */
++ iffd = open(ifdev, O_RDWR);
++ if (iffd &lt; 0) {
++ error(&quot;Can't open %s: %m&quot;, ifdev);
++ return 0;
++ }
++ if (dlpi_attach(iffd, unit) &lt; 0
++ || dlpi_get_reply(iffd, &amp;reply.prim, DL_OK_ACK, sizeof(reply)) &lt; 0
++ || dlpi_info_req(iffd) &lt; 0
++ || dlpi_get_reply(iffd, &amp;reply.prim, DL_INFO_ACK, sizeof(reply)) &lt; 0) {
++ close(iffd);
++ return 0;
++ }
++
++ adrlen = reply.prim.info_ack.dl_addr_length;
++ adrp = (unsigned char *)&amp;reply + reply.prim.info_ack.dl_addr_offset;
++
++#if DL_CURRENT_VERSION &gt;= 2
++ if (reply.prim.info_ack.dl_sap_length &lt; 0)
++ adrlen += reply.prim.info_ack.dl_sap_length;
++ else
++ adrp += reply.prim.info_ack.dl_sap_length;
++#endif
++
++ hwaddr-&gt;sa_family = AF_UNSPEC;
++ memcpy(hwaddr-&gt;sa_data, adrp, adrlen);
++
++ return 1;
++}
++/*
++ * get_hw_addr - obtain the hardware address for a named interface.
++ */
++static int
++get_hw_addr(name, ina, hwaddr)
++ char *name;
++ u_int32_t ina;
++ struct sockaddr *hwaddr;
++{
++ /* New way - get the address by doing an arp request. */
++ int s;
++ struct arpreq req;
++
++ s = socket(AF_INET, SOCK_DGRAM, 0);
++ if (s &lt; 0)
++ return 0;
++ memset(&amp;req, 0, sizeof(req));
++ req.arp_pa.sa_family = AF_INET;
++ INET_ADDR(req.arp_pa) = ina;
++ if (ioctl(s, SIOCGARP, &amp;req) &lt; 0) {
++ error(&quot;Couldn't get ARP entry for %s: %m&quot;, ip_ntoa(ina));
++ return 0;
++ }
++ *hwaddr = req.arp_ha;
++ hwaddr-&gt;sa_family = AF_UNSPEC;
++
++ return 1;
++}
++
++static int
++dlpi_attach(fd, ppa)
++ int fd, ppa;
++{
++ dl_attach_req_t req;
++ struct strbuf buf;
++
++ req.dl_primitive = DL_ATTACH_REQ;
++ req.dl_ppa = ppa;
++ buf.len = sizeof(req);
++ buf.buf = (void *) &amp;req;
++ return putmsg(fd, &amp;buf, NULL, RS_HIPRI);
++}
++
++static int
++dlpi_info_req(fd)
++ int fd;
++{
++ dl_info_req_t req;
++ struct strbuf buf;
++
++ req.dl_primitive = DL_INFO_REQ;
++ buf.len = sizeof(req);
++ buf.buf = (void *) &amp;req;
++ return putmsg(fd, &amp;buf, NULL, RS_HIPRI);
++}
++
++static int
++dlpi_get_reply(fd, reply, expected_prim, maxlen)
++ union DL_primitives *reply;
++ int fd, expected_prim, maxlen;
++{
++ struct strbuf buf;
++ int flags, n;
++ struct pollfd pfd;
++
++ /*
++ * Use poll to wait for a message with a timeout.
++ */
++ pfd.fd = fd;
++ pfd.events = POLLIN | POLLPRI;
++ do {
++ n = poll(&amp;pfd, 1, 1000);
++ } while (n == -1 &amp;&amp; errno == EINTR);
++ if (n &lt;= 0)
++ return -1;
++
++ /*
++ * Get the reply.
++ */
++ buf.maxlen = maxlen;
++ buf.buf = (void *) reply;
++ flags = 0;
++ if (getmsg(fd, &amp;buf, NULL, &amp;flags) &lt; 0)
++ return -1;
++
++ if (buf.len &lt; sizeof(ulong)) {
++ if (debug)
++ dbglog(&quot;dlpi response short (len=%d)\n&quot;, buf.len);
++ return -1;
++ }
++
++ if (reply-&gt;dl_primitive == expected_prim)
++ return 0;
++
++ if (debug) {
++ if (reply-&gt;dl_primitive == DL_ERROR_ACK) {
++ dbglog(&quot;dlpi error %d (unix errno %d) for prim %x\n&quot;,
++ reply-&gt;error_ack.dl_errno, reply-&gt;error_ack.dl_unix_errno,
++ reply-&gt;error_ack.dl_error_primitive);
++ } else {
++ dbglog(&quot;dlpi unexpected response prim %x\n&quot;,
++ reply-&gt;dl_primitive);
++ }
++ }
++
++ return -1;
++}
++
++/*
++ * Return user specified netmask, modified by any mask we might determine
++ * for address `addr' (in network byte order).
++ * Here we scan through the system's list of interfaces, looking for
++ * any non-point-to-point interfaces which might appear to be on the same
++ * network as `addr'. If we find any, we OR in their netmask to the
++ * user-specified netmask.
++ */
++u_int32_t
++GetMask(addr)
++ u_int32_t addr;
++{
++ u_int32_t mask, nmask, ina;
++ struct ifreq *ifr, *ifend, ifreq;
++ int nif;
++ struct ifconf ifc;
++
++ addr = ntohl(addr);
++ if (IN_CLASSA(addr)) /* determine network mask for address class */
++ nmask = IN_CLASSA_NET;
++ else if (IN_CLASSB(addr))
++ nmask = IN_CLASSB_NET;
++ else
++ nmask = IN_CLASSC_NET;
++ /* class D nets are disallowed by bad_ip_adrs */
++ mask = netmask | htonl(nmask);
++
++ /*
++ * Scan through the system's network interfaces.
++ */
++#ifdef SIOCGIFNUM
++ if (ioctl(ipfd, SIOCGIFNUM, &amp;nif) &lt; 0)
++#endif
++ nif = MAX_IFS;
++ ifc.ifc_len = nif * sizeof(struct ifreq);
++ ifc.ifc_buf = (caddr_t) malloc(ifc.ifc_len);
++ if (ifc.ifc_buf == 0)
++ return mask;
++ if (ioctl(ipfd, SIOCGIFCONF, &amp;ifc) &lt; 0) {
++ warn(&quot;Couldn't get system interface list: %m&quot;);
++ free(ifc.ifc_buf);
++ return mask;
++ }
++ ifend = (struct ifreq *) (ifc.ifc_buf + ifc.ifc_len);
++ for (ifr = ifc.ifc_req; ifr &lt; ifend; ++ifr) {
++ /*
++ * Check the interface's internet address.
++ */
++ if (ifr-&gt;ifr_addr.sa_family != AF_INET)
++ continue;
++ ina = INET_ADDR(ifr-&gt;ifr_addr);
++ if ((ntohl(ina) &amp; nmask) != (addr &amp; nmask))
++ continue;
++ /*
++ * Check that the interface is up, and not point-to-point or loopback.
++ */
++ strlcpy(ifreq.ifr_name, ifr-&gt;ifr_name, sizeof(ifreq.ifr_name));
++ if (ioctl(ipfd, SIOCGIFFLAGS, &amp;ifreq) &lt; 0)
++ continue;
++ if ((ifreq.ifr_flags &amp; (IFF_UP|IFF_POINTOPOINT|IFF_LOOPBACK))
++ != IFF_UP)
++ continue;
++ /*
++ * Get its netmask and OR it into our mask.
++ */
++ if (ioctl(ipfd, SIOCGIFNETMASK, &amp;ifreq) &lt; 0)
++ continue;
++ mask |= INET_ADDR(ifreq.ifr_addr);
++ }
++
++ free(ifc.ifc_buf);
++ return mask;
++}
++
++/*
++ * logwtmp - write an accounting record to the /var/adm/wtmp file.
++ */
++void
++logwtmp(line, name, host)
++ const char *line, *name, *host;
++{
++ static struct utmpx utmpx;
++
++ if (name[0] != 0) {
++ /* logging in */
++ strncpy(utmpx.ut_user, name, sizeof(utmpx.ut_user));
++ strncpy(utmpx.ut_id, ifname, sizeof(utmpx.ut_id));
++ strncpy(utmpx.ut_line, line, sizeof(utmpx.ut_line));
++ utmpx.ut_pid = getpid();
++ utmpx.ut_type = USER_PROCESS;
++ } else {
++ utmpx.ut_type = DEAD_PROCESS;
++ }
++ gettimeofday(&amp;utmpx.ut_tv, NULL);
++ updwtmpx(&quot;/var/adm/wtmpx&quot;, &amp;utmpx);
++}
++
++/*
++ * get_host_seed - return the serial number of this machine.
++ */
++int
++get_host_seed()
++{
++ char buf[32];
++
++ if (sysinfo(SI_HW_SERIAL, buf, sizeof(buf)) &lt; 0) {
++ error(&quot;sysinfo: %m&quot;);
++ return 0;
++ }
++ return (int) strtoul(buf, NULL, 16);
++}
++
++static int
++strioctl(fd, cmd, ptr, ilen, olen)
++ int fd, cmd, ilen, olen;
++ void *ptr;
++{
++ struct strioctl str;
++
++ str.ic_cmd = cmd;
++ str.ic_timout = 0;
++ str.ic_len = ilen;
++ str.ic_dp = ptr;
++ if (ioctl(fd, I_STR, &amp;str) == -1)
++ return -1;
++ if (str.ic_len != olen)
++ dbglog(&quot;strioctl: expected %d bytes, got %d for cmd %x\n&quot;,
++ olen, str.ic_len, cmd);
++ return 0;
++}
++
++#if 0
++/*
++ * lock - create a lock file for the named lock device
++ */
++
++#define LOCK_PREFIX &quot;/var/spool/locks/LK.&quot;
++static char lock_file[40]; /* name of lock file created */
++
++int
++lock(dev)
++ char *dev;
++{
++ int n, fd, pid;
++ struct stat sbuf;
++ char ascii_pid[12];
++
++ if (stat(dev, &amp;sbuf) &lt; 0) {
++ error(&quot;Can't get device number for %s: %m&quot;, dev);
++ return -1;
++ }
++ if ((sbuf.st_mode &amp; S_IFMT) != S_IFCHR) {
++ error(&quot;Can't lock %s: not a character device&quot;, dev);
++ return -1;
++ }
++ slprintf(lock_file, sizeof(lock_file), &quot;%s%03d.%03d.%03d&quot;,
++ LOCK_PREFIX, major(sbuf.st_dev),
++ major(sbuf.st_rdev), minor(sbuf.st_rdev));
++
++ while ((fd = open(lock_file, O_EXCL | O_CREAT | O_RDWR, 0644)) &lt; 0) {
++ if (errno == EEXIST
++ &amp;&amp; (fd = open(lock_file, O_RDONLY, 0)) &gt;= 0) {
++ /* Read the lock file to find out who has the device locked */
++ n = read(fd, ascii_pid, 11);
++ if (n &lt;= 0) {
++ error(&quot;Can't read pid from lock file %s&quot;, lock_file);
++ close(fd);
++ } else {
++ ascii_pid[n] = 0;
++ pid = atoi(ascii_pid);
++ if (pid &gt; 0 &amp;&amp; kill(pid, 0) == -1 &amp;&amp; errno == ESRCH) {
++ /* pid no longer exists - remove the lock file */
++ if (unlink(lock_file) == 0) {
++ close(fd);
++ notice(&quot;Removed stale lock on %s (pid %d)&quot;,
++ dev, pid);
++ continue;
++ } else
++ warn(&quot;Couldn't remove stale lock on %s&quot;,
++ dev);
++ } else
++ notice(&quot;Device %s is locked by pid %d&quot;,
++ dev, pid);
++ }
++ close(fd);
++ } else
++ error(&quot;Can't create lock file %s: %m&quot;, lock_file);
++ lock_file[0] = 0;
++ return -1;
++ }
++
++ slprintf(ascii_pid, sizeof(ascii_pid), &quot;%10d\n&quot;, getpid());
++ write(fd, ascii_pid, 11);
++
++ close(fd);
++ return 1;
++}
++
++/*
++ * unlock - remove our lockfile
++ */
++void
++unlock()
++{
++ if (lock_file[0]) {
++ unlink(lock_file);
++ lock_file[0] = 0;
++ }
++}
++#endif
++
++/*
++ * cifroute - delete a route through the addresses given.
++ */
++int
++cifroute(u, our, his)
++ int u;
++ u_int32_t our, his;
++{
++ struct rtentry rt;
++
++ memset(&amp;rt, 0, sizeof(rt));
++ rt.rt_dst.sa_family = AF_INET;
++ INET_ADDR(rt.rt_dst) = his;
++ rt.rt_gateway.sa_family = AF_INET;
++ INET_ADDR(rt.rt_gateway) = our;
++ rt.rt_flags = RTF_HOST;
++
++ if (ioctl(ipfd, SIOCDELRT, &amp;rt) &lt; 0) {
++ error(&quot;Can't delete route: %m&quot;);
++ return 0;
++ }
++
++ return 1;
++}
++
++/*
++ * have_route_to - determine if the system has a route to the specified
++ * IP address. Returns 0 if not, 1 if so, -1 if we can't tell.
++ * `addr' is in network byte order.
++ * For demand mode to work properly, we have to ignore routes
++ * through our own interface.
++ */
++#ifndef T_CURRENT /* needed for Solaris 2.5 */
++#define T_CURRENT MI_T_CURRENT
++#endif
++
++int
++have_route_to(addr)
++ u_int32_t addr;
++{
++#ifdef SOL2
++ int fd, r, flags, i;
++ struct {
++ struct T_optmgmt_req req;
++ struct opthdr hdr;
++ } req;
++ union {
++ struct T_optmgmt_ack ack;
++ unsigned char space[64];
++ } ack;
++ struct opthdr *rh;
++ struct strbuf cbuf, dbuf;
++ int nroutes;
++ mib2_ipRouteEntry_t routes[8];
++ mib2_ipRouteEntry_t *rp;
++
++ fd = open(mux_dev_name, O_RDWR);
++ if (fd &lt; 0) {
++ warn(&quot;have_route_to: couldn't open %s: %m&quot;, mux_dev_name);
++ return -1;
++ }
++
++ req.req.PRIM_type = T_OPTMGMT_REQ;
++ req.req.OPT_offset = (char *) &amp;req.hdr - (char *) &amp;req;
++ req.req.OPT_length = sizeof(req.hdr);
++ req.req.MGMT_flags = T_CURRENT;
++
++ req.hdr.level = MIB2_IP;
++ req.hdr.name = 0;
++ req.hdr.len = 0;
++
++ cbuf.buf = (char *) &amp;req;
++ cbuf.len = sizeof(req);
++
++ if (putmsg(fd, &amp;cbuf, NULL, 0) == -1) {
++ warn(&quot;have_route_to: putmsg: %m&quot;);
++ close(fd);
++ return -1;
++ }
++
++ for (;;) {
++ cbuf.buf = (char *) &amp;ack;
++ cbuf.maxlen = sizeof(ack);
++ dbuf.buf = (char *) routes;
++ dbuf.maxlen = sizeof(routes);
++ flags = 0;
++ r = getmsg(fd, &amp;cbuf, &amp;dbuf, &amp;flags);
++ if (r == -1) {
++ warn(&quot;have_route_to: getmsg: %m&quot;);
++ close(fd);
++ return -1;
++ }
++
++ if (cbuf.len &lt; sizeof(struct T_optmgmt_ack)
++ || ack.ack.PRIM_type != T_OPTMGMT_ACK
++ || ack.ack.MGMT_flags != T_SUCCESS
++ || ack.ack.OPT_length &lt; sizeof(struct opthdr)) {
++ dbglog(&quot;have_route_to: bad message len=%d prim=%d&quot;,
++ cbuf.len, ack.ack.PRIM_type);
++ close(fd);
++ return -1;
++ }
++
++ rh = (struct opthdr *) ((char *)&amp;ack + ack.ack.OPT_offset);
++ if (rh-&gt;level == 0 &amp;&amp; rh-&gt;name == 0)
++ break;
++ if (rh-&gt;level != MIB2_IP || rh-&gt;name != MIB2_IP_21) {
++ while (r == MOREDATA)
++ r = getmsg(fd, NULL, &amp;dbuf, &amp;flags);
++ continue;
++ }
++
++ for (;;) {
++ nroutes = dbuf.len / sizeof(mib2_ipRouteEntry_t);
++ for (rp = routes, i = 0; i &lt; nroutes; ++i, ++rp) {
++ if (rp-&gt;ipRouteMask != ~0) {
++ dbglog(&quot;have_route_to: dest=%x gw=%x mask=%x\n&quot;,
++ rp-&gt;ipRouteDest, rp-&gt;ipRouteNextHop,
++ rp-&gt;ipRouteMask);
++ if (((addr ^ rp-&gt;ipRouteDest) &amp; rp-&gt;ipRouteMask) == 0
++ &amp;&amp; rp-&gt;ipRouteNextHop != remote_addr)
++ return 1;
++ }
++ }
++ if (r == 0)
++ break;
++ r = getmsg(fd, NULL, &amp;dbuf, &amp;flags);
++ }
++ }
++ close(fd);
++ return 0;
++#else
++ return -1;
++#endif /* SOL2 */
++}
++
++/*
++ * get_pty - get a pty master/slave pair and chown the slave side to
++ * the uid given. Assumes slave_name points to MAXPATHLEN bytes of space.
++ */
++int
++get_pty(master_fdp, slave_fdp, slave_name, uid)
++ int *master_fdp;
++ int *slave_fdp;
++ char *slave_name;
++ int uid;
++{
++ int mfd, sfd;
++ char *pty_name;
++ struct termios tios;
++
++ mfd = open(&quot;/dev/ptmx&quot;, O_RDWR);
++ if (mfd &lt; 0) {
++ error(&quot;Couldn't open pty master: %m&quot;);
++ return 0;
++ }
++
++ pty_name = ptsname(mfd);
++ if (pty_name == NULL) {
++ error(&quot;Couldn't get name of pty slave&quot;);
++ close(mfd);
++ return 0;
++ }
++ if (chown(pty_name, uid, -1) &lt; 0)
++ warn(&quot;Couldn't change owner of pty slave: %m&quot;);
++ if (chmod(pty_name, S_IRUSR | S_IWUSR) &lt; 0)
++ warn(&quot;Couldn't change permissions on pty slave: %m&quot;);
++ if (unlockpt(mfd) &lt; 0)
++ warn(&quot;Couldn't unlock pty slave: %m&quot;);
++
++ sfd = open(pty_name, O_RDWR);
++ if (sfd &lt; 0) {
++ error(&quot;Couldn't open pty slave %s: %m&quot;, pty_name);
++ close(mfd);
++ return 0;
++ }
++ if (ioctl(sfd, I_PUSH, &quot;ptem&quot;) &lt; 0)
++ warn(&quot;Couldn't push ptem module on pty slave: %m&quot;);
++
++ dbglog(&quot;Using %s&quot;, pty_name);
++ strlcpy(slave_name, pty_name, MAXPATHLEN);
++ *master_fdp = mfd;
++ *slave_fdp = sfd;
++
++ return 1;
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/pppd/sys-solaris.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1ppppppdsyssunos4c">Added: drakx/trunk/mdk-stage1/ppp/pppd/sys-sunos4.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/sys-sunos4.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/sys-sunos4.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,1559 @@
++/*
++ * System-dependent procedures for pppd under SunOS 4.
++ *
++ * Copyright (c) 1994 The Australian National University.
++ * All rights reserved.
++ *
++ * Permission to use, copy, modify, and distribute this software and its
++ * documentation is hereby granted, provided that the above copyright
++ * notice appears in all copies. This software is provided without any
++ * warranty, express or implied. The Australian National University
++ * makes no representations about the suitability of this software for
++ * any purpose.
++ *
++ * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY
++ * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
++ * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
++ * THE AUSTRALIAN NATIONAL UNIVERSITY HAVE BEEN ADVISED OF THE POSSIBILITY
++ * OF SUCH DAMAGE.
++ *
++ * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
++ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
++ * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
++ * ON AN &quot;AS IS&quot; BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO
++ * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
++ * OR MODIFICATIONS.
++ */
++
++#define RCSID &quot;$Id: sys-sunos4.c 195720 2001-06-11 11:44:34Z gc $&quot;
++
++#include &lt;stdio.h&gt;
++#include &lt;stddef.h&gt;
++#include &lt;stdlib.h&gt;
++#include &lt;string.h&gt;
++#include &lt;ctype.h&gt;
++#include &lt;errno.h&gt;
++#include &lt;fcntl.h&gt;
++#include &lt;unistd.h&gt;
++#include &lt;termios.h&gt;
++#include &lt;signal.h&gt;
++#include &lt;malloc.h&gt;
++#include &lt;utmp.h&gt;
++#include &lt;sys/types.h&gt;
++#include &lt;sys/param.h&gt;
++#include &lt;sys/socket.h&gt;
++#include &lt;sys/sockio.h&gt;
++#include &lt;sys/stream.h&gt;
++#include &lt;sys/stropts.h&gt;
++#include &lt;sys/stat.h&gt;
++#include &lt;sys/time.h&gt;
++#include &lt;sys/poll.h&gt;
++#include &lt;net/if.h&gt;
++#include &lt;net/if_arp.h&gt;
++#include &lt;net/nit_if.h&gt;
++#include &lt;net/route.h&gt;
++#include &lt;net/ppp_defs.h&gt;
++#include &lt;net/pppio.h&gt;
++#include &lt;netinet/in.h&gt;
++
++#include &quot;pppd.h&quot;
++
++#if defined(sun) &amp;&amp; defined(sparc)
++#include &lt;alloca.h&gt;
++#ifndef __GNUC__
++extern void *alloca();
++#endif
++#endif /*sparc*/
++
++static const char rcsid[] = RCSID;
++
++static int pppfd;
++static int fdmuxid = -1;
++static int iffd;
++static int sockfd;
++
++static int restore_term;
++static struct termios inittermios;
++static struct winsize wsinfo; /* Initial window size info */
++static pid_t parent_pid; /* PID of our parent */
++
++extern u_char inpacket_buf[]; /* borrowed from main.c */
++
++#define MAX_POLLFDS 32
++static struct pollfd pollfds[MAX_POLLFDS];
++static int n_pollfds;
++
++static int link_mtu, link_mru;
++
++#define NMODULES 32
++static int tty_nmodules;
++static char tty_modules[NMODULES][FMNAMESZ+1];
++
++static int if_is_up; /* Interface has been marked up */
++static u_int32_t ifaddrs[2]; /* local and remote addresses */
++static u_int32_t default_route_gateway; /* Gateway for default route added */
++static u_int32_t proxy_arp_addr; /* Addr for proxy arp entry added */
++
++/* Prototypes for procedures local to this file. */
++static int translate_speed __P((int));
++static int baud_rate_of __P((int));
++static int get_ether_addr __P((u_int32_t, struct sockaddr *));
++static int strioctl __P((int, int, void *, int, int));
++
++
++/*
++ * sys_init - System-dependent initialization.
++ */
++void
++sys_init()
++{
++ int x;
++
++ /* Get an internet socket for doing socket ioctl's on. */
++ if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) &lt; 0)
++ fatal(&quot;Couldn't create IP socket: %m&quot;);
++
++ /*
++ * We may want to send a SIGHUP to the session leader associated
++ * with our controlling terminal later. Because SunOS doesn't
++ * have getsid(), we make do with sending the signal to our
++ * parent process.
++ */
++ parent_pid = getppid();
++
++ /*
++ * Open the ppp device.
++ */
++ pppfd = open(&quot;/dev/ppp&quot;, O_RDWR | O_NONBLOCK, 0);
++ if (pppfd &lt; 0)
++ fatal(&quot;Can't open /dev/ppp: %m&quot;);
++ if (kdebugflag) {
++ x = PPPDBG_LOG + PPPDBG_DRIVER;
++ strioctl(pppfd, PPPIO_DEBUG, &amp;x, sizeof(int), 0);
++ }
++
++ /* Assign a new PPA and get its unit number. */
++ if (strioctl(pppfd, PPPIO_NEWPPA, &amp;ifunit, 0, sizeof(int)) &lt; 0)
++ fatal(&quot;Can't create new PPP interface: %m&quot;);
++
++ /*
++ * Open the ppp device again and push the if_ppp module on it.
++ */
++ iffd = open(&quot;/dev/ppp&quot;, O_RDWR, 0);
++ if (iffd &lt; 0)
++ fatal(&quot;Can't open /dev/ppp (2): %m&quot;);
++ if (kdebugflag) {
++ x = PPPDBG_LOG + PPPDBG_DRIVER;
++ strioctl(iffd, PPPIO_DEBUG, &amp;x, sizeof(int), 0);
++ }
++ if (strioctl(iffd, PPPIO_ATTACH, &amp;ifunit, sizeof(int), 0) &lt; 0)
++ fatal(&quot;Couldn't attach ppp interface to device: %m&quot;);
++ if (ioctl(iffd, I_PUSH, &quot;if_ppp&quot;) &lt; 0)
++ fatal(&quot;Can't push ppp interface module: %m&quot;);
++ if (kdebugflag) {
++ x = PPPDBG_LOG + PPPDBG_IF;
++ strioctl(iffd, PPPIO_DEBUG, &amp;x, sizeof(int), 0);
++ }
++ if (strioctl(iffd, PPPIO_NEWPPA, &amp;ifunit, sizeof(int), 0) &lt; 0)
++ fatal(&quot;Couldn't create ppp interface unit: %m&quot;);
++ x = PPP_IP;
++ if (strioctl(iffd, PPPIO_BIND, &amp;x, sizeof(int), 0) &lt; 0)
++ fatal(&quot;Couldn't bind ppp interface to IP SAP: %m&quot;);
++
++ n_pollfds = 0;
++}
++
++/*
++ * sys_cleanup - restore any system state we modified before exiting:
++ * mark the interface down, delete default route and/or proxy arp entry.
++ * This shouldn't call die() because it's called from die().
++ */
++void
++sys_cleanup()
++{
++ if (if_is_up)
++ sifdown(0);
++ if (ifaddrs[0])
++ cifaddr(0, ifaddrs[0], ifaddrs[1]);
++ if (default_route_gateway)
++ cifdefaultroute(0, 0, default_route_gateway);
++ if (proxy_arp_addr)
++ cifproxyarp(0, proxy_arp_addr);
++}
++
++/*
++ * sys_close - Clean up in a child process before execing.
++ */
++void
++sys_close()
++{
++ close(iffd);
++ close(pppfd);
++ close(sockfd);
++}
++
++/*
++ * sys_check_options - check the options that the user specified
++ */
++int
++sys_check_options()
++{
++ return 1;
++}
++
++#if 0
++/*
++ * daemon - Detach us from controlling terminal session.
++ */
++int
++daemon(nochdir, noclose)
++ int nochdir, noclose;
++{
++ int pid;
++
++ if ((pid = fork()) &lt; 0)
++ return -1;
++ if (pid != 0)
++ exit(0); /* parent dies */
++ setsid();
++ if (!nochdir)
++ chdir(&quot;/&quot;);
++ if (!noclose) {
++ fclose(stdin); /* don't need stdin, stdout, stderr */
++ fclose(stdout);
++ fclose(stderr);
++ }
++ return 0;
++}
++#endif
++
++/*
++ * ppp_available - check whether the system has any ppp interfaces
++ */
++int
++ppp_available()
++{
++ struct stat buf;
++
++ return stat(&quot;/dev/ppp&quot;, &amp;buf) &gt;= 0;
++}
++
++/*
++ * tty_establish_ppp - Turn the serial port into a ppp interface.
++ */
++int
++tty_establish_ppp(fd)
++ int fd;
++{
++ int i;
++
++ /* Pop any existing modules off the tty stream. */
++ for (i = 0;; ++i)
++ if (ioctl(fd, I_LOOK, tty_modules[i]) &lt; 0
++ || ioctl(fd, I_POP, 0) &lt; 0)
++ break;
++ tty_nmodules = i;
++
++ /* Push the async hdlc module and the compressor module. */
++ if (ioctl(fd, I_PUSH, &quot;ppp_ahdl&quot;) &lt; 0)
++ fatal(&quot;Couldn't push PPP Async HDLC module: %m&quot;);
++ if (ioctl(fd, I_PUSH, &quot;ppp_comp&quot;) &lt; 0)
++ error(&quot;Couldn't push PPP compression module: %m&quot;);
++
++ /* Link the serial port under the PPP multiplexor. */
++ if ((fdmuxid = ioctl(pppfd, I_LINK, fd)) &lt; 0)
++ fatal(&quot;Can't link tty to PPP mux: %m&quot;);
++
++ return pppfd;
++}
++
++/*
++ * disestablish_ppp - Restore the serial port to normal operation.
++ * It attempts to reconstruct the stream with the previously popped
++ * modules. This shouldn't call die() because it's called from die().
++ */
++void
++tty_disestablish_ppp(fd)
++ int fd;
++{
++ int i;
++
++ if (fdmuxid &gt;= 0) {
++ if (ioctl(pppfd, I_UNLINK, fdmuxid) &lt; 0) {
++ if (!hungup)
++ error(&quot;Can't unlink tty from PPP mux: %m&quot;);
++ }
++ fdmuxid = -1;
++
++ if (!hungup) {
++ while (ioctl(fd, I_POP, 0) &gt;= 0)
++ ;
++ for (i = tty_nmodules - 1; i &gt;= 0; --i)
++ if (ioctl(fd, I_PUSH, tty_modules[i]) &lt; 0)
++ error(&quot;Couldn't restore tty module %s: %m&quot;,
++ tty_modules[i]);
++ }
++ if (hungup &amp;&amp; default_device &amp;&amp; parent_pid &gt; 0) {
++ /*
++ * If we have received a hangup, we need to send a SIGHUP
++ * to the terminal's controlling process. The reason is
++ * that the original stream head for the terminal hasn't
++ * seen the M_HANGUP message (it went up through the ppp
++ * driver to the stream head for our fd to /dev/ppp).
++ * Actually we send the signal to the process that invoked
++ * pppd, since SunOS doesn't have getsid().
++ */
++ kill(parent_pid, SIGHUP);
++ }
++ }
++}
++
++/*
++ * Check whether the link seems not to be 8-bit clean.
++ */
++void
++clean_check()
++{
++ int x;
++ char *s;
++
++ if (strioctl(pppfd, PPPIO_GCLEAN, &amp;x, 0, sizeof(x)) &lt; 0)
++ return;
++ s = NULL;
++ switch (~x) {
++ case RCV_B7_0:
++ s = &quot;bit 7 set to 1&quot;;
++ break;
++ case RCV_B7_1:
++ s = &quot;bit 7 set to 0&quot;;
++ break;
++ case RCV_EVNP:
++ s = &quot;odd parity&quot;;
++ break;
++ case RCV_ODDP:
++ s = &quot;even parity&quot;;
++ break;
++ }
++ if (s != NULL) {
++ warn(&quot;Serial link is not 8-bit clean:&quot;);
++ warn(&quot;All received characters had %s&quot;, s);
++ }
++}
++
++/*
++ * List of valid speeds.
++ */
++struct speed {
++ int speed_int, speed_val;
++} speeds[] = {
++#ifdef B50
++ { 50, B50 },
++#endif
++#ifdef B75
++ { 75, B75 },
++#endif
++#ifdef B110
++ { 110, B110 },
++#endif
++#ifdef B134
++ { 134, B134 },
++#endif
++#ifdef B150
++ { 150, B150 },
++#endif
++#ifdef B200
++ { 200, B200 },
++#endif
++#ifdef B300
++ { 300, B300 },
++#endif
++#ifdef B600
++ { 600, B600 },
++#endif
++#ifdef B1200
++ { 1200, B1200 },
++#endif
++#ifdef B1800
++ { 1800, B1800 },
++#endif
++#ifdef B2000
++ { 2000, B2000 },
++#endif
++#ifdef B2400
++ { 2400, B2400 },
++#endif
++#ifdef B3600
++ { 3600, B3600 },
++#endif
++#ifdef B4800
++ { 4800, B4800 },
++#endif
++#ifdef B7200
++ { 7200, B7200 },
++#endif
++#ifdef B9600
++ { 9600, B9600 },
++#endif
++#ifdef B19200
++ { 19200, B19200 },
++#endif
++#ifdef B38400
++ { 38400, B38400 },
++#endif
++#ifdef EXTA
++ { 19200, EXTA },
++#endif
++#ifdef EXTB
++ { 38400, EXTB },
++#endif
++#ifdef B57600
++ { 57600, B57600 },
++#endif
++#ifdef B115200
++ { 115200, B115200 },
++#endif
++ { 0, 0 }
++};
++
++/*
++ * Translate from bits/second to a speed_t.
++ */
++static int
++translate_speed(bps)
++ int bps;
++{
++ struct speed *speedp;
++
++ if (bps == 0)
++ return 0;
++ for (speedp = speeds; speedp-&gt;speed_int; speedp++)
++ if (bps == speedp-&gt;speed_int)
++ return speedp-&gt;speed_val;
++ warn(&quot;speed %d not supported&quot;, bps);
++ return 0;
++}
++
++/*
++ * Translate from a speed_t to bits/second.
++ */
++static int
++baud_rate_of(speed)
++ int speed;
++{
++ struct speed *speedp;
++
++ if (speed == 0)
++ return 0;
++ for (speedp = speeds; speedp-&gt;speed_int; speedp++)
++ if (speed == speedp-&gt;speed_val)
++ return speedp-&gt;speed_int;
++ return 0;
++}
++
++/*
++ * set_up_tty: Set up the serial port on `fd' for 8 bits, no parity,
++ * at the requested speed, etc. If `local' is true, set CLOCAL
++ * regardless of whether the modem option was specified.
++ */
++void
++set_up_tty(fd, local)
++ int fd, local;
++{
++ int speed;
++ struct termios tios;
++
++ if (tcgetattr(fd, &amp;tios) &lt; 0)
++ fatal(&quot;tcgetattr: %m&quot;);
++
++ if (!restore_term) {
++ inittermios = tios;
++ ioctl(fd, TIOCGWINSZ, &amp;wsinfo);
++ }
++
++ tios.c_cflag &amp;= ~(CSIZE | CSTOPB | PARENB | CLOCAL);
++ if (crtscts &gt; 0)
++ tios.c_cflag |= CRTSCTS;
++ else if (crtscts &lt; 0)
++ tios.c_cflag &amp;= ~CRTSCTS;
++
++ tios.c_cflag |= CS8 | CREAD | HUPCL;
++ if (local || !modem)
++ tios.c_cflag |= CLOCAL;
++ tios.c_iflag = IGNBRK | IGNPAR;
++ tios.c_oflag = 0;
++ tios.c_lflag = 0;
++ tios.c_cc[VMIN] = 1;
++ tios.c_cc[VTIME] = 0;
++
++ if (crtscts == -2) {
++ tios.c_iflag |= IXON | IXOFF;
++ tios.c_cc[VSTOP] = 0x13; /* DC3 = XOFF = ^S */
++ tios.c_cc[VSTART] = 0x11; /* DC1 = XON = ^Q */
++ }
++
++ speed = translate_speed(inspeed);
++ if (speed) {
++ cfsetospeed(&amp;tios, speed);
++ cfsetispeed(&amp;tios, speed);
++ } else {
++ speed = cfgetospeed(&amp;tios);
++ /*
++ * We can't proceed if the serial port speed is 0,
++ * since that implies that the serial port is disabled.
++ */
++ if (speed == B0)
++ fatal(&quot;Baud rate for %s is 0; need explicit baud rate&quot;, devnam);
++ }
++
++ if (tcsetattr(fd, TCSAFLUSH, &amp;tios) &lt; 0)
++ fatal(&quot;tcsetattr: %m&quot;);
++
++ baud_rate = inspeed = baud_rate_of(speed);
++ restore_term = 1;
++}
++
++/*
++ * restore_tty - restore the terminal to the saved settings.
++ */
++void
++restore_tty(fd)
++ int fd;
++{
++ if (restore_term) {
++ if (!default_device) {
++ /*
++ * Turn off echoing, because otherwise we can get into
++ * a loop with the tty and the modem echoing to each other.
++ * We presume we are the sole user of this tty device, so
++ * when we close it, it will revert to its defaults anyway.
++ */
++ inittermios.c_lflag &amp;= ~(ECHO | ECHONL);
++ }
++ if (tcsetattr(fd, TCSAFLUSH, &amp;inittermios) &lt; 0)
++ if (!hungup &amp;&amp; errno != ENXIO)
++ warn(&quot;tcsetattr: %m&quot;);
++ ioctl(fd, TIOCSWINSZ, &amp;wsinfo);
++ restore_term = 0;
++ }
++}
++
++/*
++ * setdtr - control the DTR line on the serial port.
++ * This is called from die(), so it shouldn't call die().
++ */
++void
++setdtr(fd, on)
++int fd, on;
++{
++ int modembits = TIOCM_DTR;
++
++ ioctl(fd, (on? TIOCMBIS: TIOCMBIC), &amp;modembits);
++}
++
++/*
++ * open_loopback - open the device we use for getting packets
++ * in demand mode. Under SunOS, we use our existing fd
++ * to the ppp driver.
++ */
++int
++open_ppp_loopback()
++{
++ return pppfd;
++}
++
++/*
++ * output - Output PPP packet.
++ */
++void
++output(unit, p, len)
++ int unit;
++ u_char *p;
++ int len;
++{
++ struct strbuf data;
++ int retries;
++ struct pollfd pfd;
++
++ if (debug)
++ dbglog(&quot;sent %P&quot;, p, len);
++
++ data.len = len;
++ data.buf = (caddr_t) p;
++ retries = 4;
++ while (putmsg(pppfd, NULL, &amp;data, 0) &lt; 0) {
++ if (--retries &lt; 0 || (errno != EWOULDBLOCK &amp;&amp; errno != EAGAIN)) {
++ if (errno != ENXIO)
++ error(&quot;Couldn't send packet: %m&quot;);
++ break;
++ }
++ pfd.fd = pppfd;
++ pfd.events = POLLOUT;
++ poll(&amp;pfd, 1, 250); /* wait for up to 0.25 seconds */
++ }
++}
++
++
++/*
++ * wait_input - wait until there is data available,
++ * for the length of time specified by *timo (indefinite
++ * if timo is NULL).
++ */
++void
++wait_input(timo)
++ struct timeval *timo;
++{
++ int t;
++
++ t = timo == NULL? -1: timo-&gt;tv_sec * 1000 + timo-&gt;tv_usec / 1000;
++ if (poll(pollfds, n_pollfds, t) &lt; 0 &amp;&amp; errno != EINTR) {
++ if (errno != EAGAIN)
++ fatal(&quot;poll: %m&quot;);
++ /* we can get EAGAIN on a heavily loaded system,
++ * just wait a short time and try again. */
++ usleep(50000);
++ }
++}
++
++/*
++ * add_fd - add an fd to the set that wait_input waits for.
++ */
++void add_fd(fd)
++ int fd;
++{
++ int n;
++
++ for (n = 0; n &lt; n_pollfds; ++n)
++ if (pollfds[n].fd == fd)
++ return;
++ if (n_pollfds &lt; MAX_POLLFDS) {
++ pollfds[n_pollfds].fd = fd;
++ pollfds[n_pollfds].events = POLLIN | POLLPRI | POLLHUP;
++ ++n_pollfds;
++ } else
++ error(&quot;Too many inputs!&quot;);
++}
++
++/*
++ * remove_fd - remove an fd from the set that wait_input waits for.
++ */
++void remove_fd(fd)
++ int fd;
++{
++ int n;
++
++ for (n = 0; n &lt; n_pollfds; ++n) {
++ if (pollfds[n].fd == fd) {
++ while (++n &lt; n_pollfds)
++ pollfds[n-1] = pollfds[n];
++ --n_pollfds;
++ break;
++ }
++ }
++}
++
++#if 0
++/*
++ * wait_loop_output - wait until there is data available on the
++ * loopback, for the length of time specified by *timo (indefinite
++ * if timo is NULL).
++ */
++void
++wait_loop_output(timo)
++ struct timeval *timo;
++{
++ wait_input(timo);
++}
++
++/*
++ * wait_time - wait for a given length of time or until a
++ * signal is received.
++ */
++void
++wait_time(timo)
++ struct timeval *timo;
++{
++ int n;
++
++ n = select(0, NULL, NULL, NULL, timo);
++ if (n &lt; 0 &amp;&amp; errno != EINTR)
++ fatal(&quot;select: %m&quot;);
++}
++#endif
++
++/*
++ * read_packet - get a PPP packet from the serial device.
++ */
++int
++read_packet(buf)
++ u_char *buf;
++{
++ struct strbuf ctrl, data;
++ int flags, len;
++ unsigned char ctrlbuf[64];
++
++ for (;;) {
++ data.maxlen = PPP_MRU + PPP_HDRLEN;
++ data.buf = (caddr_t) buf;
++ ctrl.maxlen = sizeof(ctrlbuf);
++ ctrl.buf = (caddr_t) ctrlbuf;
++ flags = 0;
++ len = getmsg(pppfd, &amp;ctrl, &amp;data, &amp;flags);
++ if (len &lt; 0) {
++ if (errno == EAGAIN || errno == EINTR)
++ return -1;
++ fatal(&quot;Error reading packet: %m&quot;);
++ }
++
++ if (ctrl.len &lt;= 0)
++ return data.len;
++
++ /*
++ * Got a M_PROTO or M_PCPROTO message. Huh?
++ */
++ if (debug)
++ dbglog(&quot;got ctrl msg len=%d&quot;, ctrl.len);
++
++ }
++}
++
++/*
++ * get_loop_output - get outgoing packets from the ppp device,
++ * and detect when we want to bring the real link up.
++ * Return value is 1 if we need to bring up the link, 0 otherwise.
++ */
++int
++get_loop_output()
++{
++ int len;
++ int rv = 0;
++
++ while ((len = read_packet(inpacket_buf)) &gt; 0) {
++ if (loop_frame(inpacket_buf, len))
++ rv = 1;
++ }
++ return rv;
++}
++
++/*
++ * ppp_send_config - configure the transmit characteristics of
++ * the ppp interface.
++ */
++void
++ppp_send_config(unit, mtu, asyncmap, pcomp, accomp)
++ int unit, mtu;
++ u_int32_t asyncmap;
++ int pcomp, accomp;
++{
++ int cf[2];
++ struct ifreq ifr;
++
++ link_mtu = mtu;
++ if (strioctl(pppfd, PPPIO_MTU, &amp;mtu, sizeof(mtu), 0) &lt; 0) {
++ if (hungup &amp;&amp; errno == ENXIO)
++ return;
++ error(&quot;Couldn't set MTU: %m&quot;);
++ }
++ if (strioctl(pppfd, PPPIO_XACCM, &amp;asyncmap, sizeof(asyncmap), 0) &lt; 0) {
++ error(&quot;Couldn't set transmit ACCM: %m&quot;);
++ }
++ cf[0] = (pcomp? COMP_PROT: 0) + (accomp? COMP_AC: 0);
++ cf[1] = COMP_PROT | COMP_AC;
++ if (strioctl(pppfd, PPPIO_CFLAGS, cf, sizeof(cf), sizeof(int)) &lt; 0) {
++ error(&quot;Couldn't set prot/AC compression: %m&quot;);
++ }
++
++ /* set mtu for ip as well */
++ memset(&amp;ifr, 0, sizeof(ifr));
++ strlcpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
++ ifr.ifr_metric = link_mtu;
++ if (ioctl(sockfd, SIOCSIFMTU, &amp;ifr) &lt; 0) {
++ error(&quot;Couldn't set IP MTU: %m&quot;);
++ }
++}
++
++/*
++ * ppp_set_xaccm - set the extended transmit ACCM for the interface.
++ */
++void
++ppp_set_xaccm(unit, accm)
++ int unit;
++ ext_accm accm;
++{
++ if (strioctl(pppfd, PPPIO_XACCM, accm, sizeof(ext_accm), 0) &lt; 0) {
++ if (!hungup || errno != ENXIO)
++ warn(&quot;Couldn't set extended ACCM: %m&quot;);
++ }
++}
++
++/*
++ * ppp_recv_config - configure the receive-side characteristics of
++ * the ppp interface.
++ */
++void
++ppp_recv_config(unit, mru, asyncmap, pcomp, accomp)
++ int unit, mru;
++ u_int32_t asyncmap;
++ int pcomp, accomp;
++{
++ int cf[2];
++
++ link_mru = mru;
++ if (strioctl(pppfd, PPPIO_MRU, &amp;mru, sizeof(mru), 0) &lt; 0) {
++ if (hungup &amp;&amp; errno == ENXIO)
++ return;
++ error(&quot;Couldn't set MRU: %m&quot;);
++ }
++ if (strioctl(pppfd, PPPIO_RACCM, &amp;asyncmap, sizeof(asyncmap), 0) &lt; 0) {
++ error(&quot;Couldn't set receive ACCM: %m&quot;);
++ }
++ cf[0] = (pcomp? DECOMP_PROT: 0) + (accomp? DECOMP_AC: 0);
++ cf[1] = DECOMP_PROT | DECOMP_AC;
++ if (strioctl(pppfd, PPPIO_CFLAGS, cf, sizeof(cf), sizeof(int)) &lt; 0) {
++ error(&quot;Couldn't set prot/AC decompression: %m&quot;);
++ }
++}
++
++/*
++ * ccp_test - ask kernel whether a given compression method
++ * is acceptable for use.
++ */
++int
++ccp_test(unit, opt_ptr, opt_len, for_transmit)
++ int unit, opt_len, for_transmit;
++ u_char *opt_ptr;
++{
++ if (strioctl(pppfd, (for_transmit? PPPIO_XCOMP: PPPIO_RCOMP),
++ opt_ptr, opt_len, 0) &gt;= 0)
++ return 1;
++ return (errno == ENOSR)? 0: -1;
++}
++
++/*
++ * ccp_flags_set - inform kernel about the current state of CCP.
++ */
++void
++ccp_flags_set(unit, isopen, isup)
++ int unit, isopen, isup;
++{
++ int cf[2];
++
++ cf[0] = (isopen? CCP_ISOPEN: 0) + (isup? CCP_ISUP: 0);
++ cf[1] = CCP_ISOPEN | CCP_ISUP | CCP_ERROR | CCP_FATALERROR;
++ if (strioctl(pppfd, PPPIO_CFLAGS, cf, sizeof(cf), sizeof(int)) &lt; 0) {
++ if (!hungup || errno != ENXIO)
++ error(&quot;Couldn't set kernel CCP state: %m&quot;);
++ }
++}
++
++/*
++ * get_idle_time - return how long the link has been idle.
++ */
++int
++get_idle_time(u, ip)
++ int u;
++ struct ppp_idle *ip;
++{
++ return strioctl(pppfd, PPPIO_GIDLE, ip, 0, sizeof(struct ppp_idle)) &gt;= 0;
++}
++
++/*
++ * get_ppp_stats - return statistics for the link.
++ */
++int
++get_ppp_stats(u, stats)
++ int u;
++ struct pppd_stats *stats;
++{
++ struct ppp_stats s;
++
++ if (strioctl(pppfd, PPPIO_GETSTAT, &amp;s, 0, sizeof(s)) &lt; 0) {
++ error(&quot;Couldn't get link statistics: %m&quot;);
++ return 0;
++ }
++ stats-&gt;bytes_in = s.p.ppp_ibytes;
++ stats-&gt;bytes_out = s.p.ppp_obytes;
++ return 1;
++}
++
++
++/*
++ * ccp_fatal_error - returns 1 if decompression was disabled as a
++ * result of an error detected after decompression of a packet,
++ * 0 otherwise. This is necessary because of patent nonsense.
++ */
++int
++ccp_fatal_error(unit)
++ int unit;
++{
++ int cf[2];
++
++ cf[0] = cf[1] = 0;
++ if (strioctl(pppfd, PPPIO_CFLAGS, cf, sizeof(cf), sizeof(int)) &lt; 0) {
++ if (errno != ENXIO &amp;&amp; errno != EINVAL)
++ error(&quot;Couldn't get compression flags: %m&quot;);
++ return 0;
++ }
++ return cf[0] &amp; CCP_FATALERROR;
++}
++
++/*
++ * sifvjcomp - config tcp header compression
++ */
++int
++sifvjcomp(u, vjcomp, xcidcomp, xmaxcid)
++ int u, vjcomp, xcidcomp, xmaxcid;
++{
++ int cf[2];
++ char maxcid[2];
++
++ if (vjcomp) {
++ maxcid[0] = xcidcomp;
++ maxcid[1] = 15; /* XXX should be rmaxcid */
++ if (strioctl(pppfd, PPPIO_VJINIT, maxcid, sizeof(maxcid), 0) &lt; 0) {
++ error(&quot;Couldn't initialize VJ compression: %m&quot;);
++ }
++ }
++
++ cf[0] = (vjcomp? COMP_VJC + DECOMP_VJC: 0) /* XXX this is wrong */
++ + (xcidcomp? COMP_VJCCID + DECOMP_VJCCID: 0);
++ cf[1] = COMP_VJC + DECOMP_VJC + COMP_VJCCID + DECOMP_VJCCID;
++ if (strioctl(pppfd, PPPIO_CFLAGS, cf, sizeof(cf), sizeof(int)) &lt; 0) {
++ if (vjcomp)
++ error(&quot;Couldn't enable VJ compression: %m&quot;);
++ }
++
++ return 1;
++}
++
++/*
++ * sifup - Config the interface up and enable IP packets to pass.
++ */
++int
++sifup(u)
++ int u;
++{
++ struct ifreq ifr;
++
++ strlcpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
++ if (ioctl(sockfd, SIOCGIFFLAGS, &amp;ifr) &lt; 0) {
++ error(&quot;Couldn't mark interface up (get): %m&quot;);
++ return 0;
++ }
++ ifr.ifr_flags |= IFF_UP;
++ if (ioctl(sockfd, SIOCSIFFLAGS, &amp;ifr) &lt; 0) {
++ error(&quot;Couldn't mark interface up (set): %m&quot;);
++ return 0;
++ }
++ if_is_up = 1;
++ return 1;
++}
++
++/*
++ * sifdown - Config the interface down and disable IP.
++ */
++int
++sifdown(u)
++ int u;
++{
++ struct ifreq ifr;
++
++ strlcpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
++ if (ioctl(sockfd, SIOCGIFFLAGS, &amp;ifr) &lt; 0) {
++ error(&quot;Couldn't mark interface down (get): %m&quot;);
++ return 0;
++ }
++ if ((ifr.ifr_flags &amp; IFF_UP) != 0) {
++ ifr.ifr_flags &amp;= ~IFF_UP;
++ if (ioctl(sockfd, SIOCSIFFLAGS, &amp;ifr) &lt; 0) {
++ error(&quot;Couldn't mark interface down (set): %m&quot;);
++ return 0;
++ }
++ }
++ if_is_up = 0;
++ return 1;
++}
++
++/*
++ * sifnpmode - Set the mode for handling packets for a given NP.
++ */
++int
++sifnpmode(u, proto, mode)
++ int u;
++ int proto;
++ enum NPmode mode;
++{
++ int npi[2];
++
++ npi[0] = proto;
++ npi[1] = (int) mode;
++ if (strioctl(pppfd, PPPIO_NPMODE, npi, 2 * sizeof(int), 0) &lt; 0) {
++ error(&quot;ioctl(set NP %d mode to %d): %m&quot;, proto, mode);
++ return 0;
++ }
++ return 1;
++}
++
++#define INET_ADDR(x) (((struct sockaddr_in *) &amp;(x))-&gt;sin_addr.s_addr)
++
++/*
++ * sifaddr - Config the interface IP addresses and netmask.
++ */
++int
++sifaddr(u, o, h, m)
++ int u;
++ u_int32_t o, h, m;
++{
++ struct ifreq ifr;
++
++ memset(&amp;ifr, 0, sizeof(ifr));
++ strlcpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
++ ifr.ifr_addr.sa_family = AF_INET;
++ INET_ADDR(ifr.ifr_addr) = m;
++ if (ioctl(sockfd, SIOCSIFNETMASK, &amp;ifr) &lt; 0) {
++ error(&quot;Couldn't set IP netmask: %m&quot;);
++ }
++ ifr.ifr_addr.sa_family = AF_INET;
++ INET_ADDR(ifr.ifr_addr) = o;
++ if (ioctl(sockfd, SIOCSIFADDR, &amp;ifr) &lt; 0) {
++ error(&quot;Couldn't set local IP address: %m&quot;);
++ }
++ ifr.ifr_dstaddr.sa_family = AF_INET;
++ INET_ADDR(ifr.ifr_dstaddr) = h;
++ if (ioctl(sockfd, SIOCSIFDSTADDR, &amp;ifr) &lt; 0) {
++ error(&quot;Couldn't set remote IP address: %m&quot;);
++ }
++#if 0 /* now done in ppp_send_config */
++ ifr.ifr_metric = link_mtu;
++ if (ioctl(sockfd, SIOCSIFMTU, &amp;ifr) &lt; 0) {
++ error(&quot;Couldn't set IP MTU: %m&quot;);
++ }
++#endif
++ ifaddrs[0] = o;
++ ifaddrs[1] = h;
++
++ return 1;
++}
++
++/*
++ * cifaddr - Clear the interface IP addresses, and delete routes
++ * through the interface if possible.
++ */
++int
++cifaddr(u, o, h)
++ int u;
++ u_int32_t o, h;
++{
++ struct rtentry rt;
++
++ bzero(&amp;rt, sizeof(rt));
++ rt.rt_dst.sa_family = AF_INET;
++ INET_ADDR(rt.rt_dst) = h;
++ rt.rt_gateway.sa_family = AF_INET;
++ INET_ADDR(rt.rt_gateway) = o;
++ rt.rt_flags = RTF_HOST;
++ if (ioctl(sockfd, SIOCDELRT, &amp;rt) &lt; 0)
++ error(&quot;Couldn't delete route through interface: %m&quot;);
++ ifaddrs[0] = 0;
++ return 1;
++}
++
++/*
++ * sifdefaultroute - assign a default route through the address given.
++ */
++int
++sifdefaultroute(u, l, g)
++ int u;
++ u_int32_t l, g;
++{
++ struct rtentry rt;
++
++ bzero(&amp;rt, sizeof(rt));
++ rt.rt_dst.sa_family = AF_INET;
++ INET_ADDR(rt.rt_dst) = 0;
++ rt.rt_gateway.sa_family = AF_INET;
++ INET_ADDR(rt.rt_gateway) = g;
++ rt.rt_flags = RTF_GATEWAY;
++
++ if (ioctl(sockfd, SIOCADDRT, &amp;rt) &lt; 0) {
++ error(&quot;Can't add default route: %m&quot;);
++ return 0;
++ }
++
++ default_route_gateway = g;
++ return 1;
++}
++
++/*
++ * cifdefaultroute - delete a default route through the address given.
++ */
++int
++cifdefaultroute(u, l, g)
++ int u;
++ u_int32_t l, g;
++{
++ struct rtentry rt;
++
++ bzero(&amp;rt, sizeof(rt));
++ rt.rt_dst.sa_family = AF_INET;
++ INET_ADDR(rt.rt_dst) = 0;
++ rt.rt_gateway.sa_family = AF_INET;
++ INET_ADDR(rt.rt_gateway) = g;
++ rt.rt_flags = RTF_GATEWAY;
++
++ if (ioctl(sockfd, SIOCDELRT, &amp;rt) &lt; 0) {
++ error(&quot;Can't delete default route: %m&quot;);
++ return 0;
++ }
++
++ default_route_gateway = 0;
++ return 1;
++}
++
++/*
++ * sifproxyarp - Make a proxy ARP entry for the peer.
++ */
++int
++sifproxyarp(unit, hisaddr)
++ int unit;
++ u_int32_t hisaddr;
++{
++ struct arpreq arpreq;
++
++ bzero(&amp;arpreq, sizeof(arpreq));
++ if (!get_ether_addr(hisaddr, &amp;arpreq.arp_ha))
++ return 0;
++
++ arpreq.arp_pa.sa_family = AF_INET;
++ INET_ADDR(arpreq.arp_pa) = hisaddr;
++ arpreq.arp_flags = ATF_PERM | ATF_PUBL;
++ if (ioctl(sockfd, SIOCSARP, (caddr_t) &amp;arpreq) &lt; 0) {
++ error(&quot;Couldn't set proxy ARP entry: %m&quot;);
++ return 0;
++ }
++
++ proxy_arp_addr = hisaddr;
++ return 1;
++}
++
++/*
++ * cifproxyarp - Delete the proxy ARP entry for the peer.
++ */
++int
++cifproxyarp(unit, hisaddr)
++ int unit;
++ u_int32_t hisaddr;
++{
++ struct arpreq arpreq;
++
++ bzero(&amp;arpreq, sizeof(arpreq));
++ arpreq.arp_pa.sa_family = AF_INET;
++ INET_ADDR(arpreq.arp_pa) = hisaddr;
++ if (ioctl(sockfd, SIOCDARP, (caddr_t)&amp;arpreq) &lt; 0) {
++ error(&quot;Couldn't delete proxy ARP entry: %m&quot;);
++ return 0;
++ }
++
++ proxy_arp_addr = 0;
++ return 1;
++}
++
++/*
++ * get_ether_addr - get the hardware address of an interface on the
++ * the same subnet as ipaddr.
++ */
++#define MAX_IFS 32
++
++static int
++get_ether_addr(ipaddr, hwaddr)
++ u_int32_t ipaddr;
++ struct sockaddr *hwaddr;
++{
++ struct ifreq *ifr, *ifend;
++ u_int32_t ina, mask;
++ struct ifreq ifreq;
++ struct ifconf ifc;
++ struct ifreq ifs[MAX_IFS];
++ int nit_fd;
++
++ ifc.ifc_len = sizeof(ifs);
++ ifc.ifc_req = ifs;
++ if (ioctl(sockfd, SIOCGIFCONF, &amp;ifc) &lt; 0) {
++ error(&quot;ioctl(SIOCGIFCONF): %m&quot;);
++ return 0;
++ }
++
++ /*
++ * Scan through looking for an interface with an Internet
++ * address on the same subnet as `ipaddr'.
++ */
++ ifend = (struct ifreq *) (ifc.ifc_buf + ifc.ifc_len);
++ for (ifr = ifc.ifc_req; ifr &lt; ifend; ifr = (struct ifreq *)
++ ((char *)&amp;ifr-&gt;ifr_addr + sizeof(struct sockaddr))) {
++ if (ifr-&gt;ifr_addr.sa_family == AF_INET) {
++
++ /*
++ * Check that the interface is up, and not point-to-point
++ * or loopback.
++ */
++ strlcpy(ifreq.ifr_name, ifr-&gt;ifr_name, sizeof(ifreq.ifr_name));
++ if (ioctl(sockfd, SIOCGIFFLAGS, &amp;ifreq) &lt; 0)
++ continue;
++ if ((ifreq.ifr_flags &amp;
++ (IFF_UP|IFF_BROADCAST|IFF_POINTOPOINT|IFF_LOOPBACK|IFF_NOARP))
++ != (IFF_UP|IFF_BROADCAST))
++ continue;
++
++ /*
++ * Get its netmask and check that it's on the right subnet.
++ */
++ if (ioctl(sockfd, SIOCGIFNETMASK, &amp;ifreq) &lt; 0)
++ continue;
++ ina = ((struct sockaddr_in *) &amp;ifr-&gt;ifr_addr)-&gt;sin_addr.s_addr;
++ mask = ((struct sockaddr_in *) &amp;ifreq.ifr_addr)-&gt;sin_addr.s_addr;
++ if ((ipaddr &amp; mask) != (ina &amp; mask))
++ continue;
++
++ break;
++ }
++ }
++
++ if (ifr &gt;= ifend)
++ return 0;
++ info(&quot;found interface %s for proxy arp&quot;, ifr-&gt;ifr_name);
++
++ /*
++ * Grab the physical address for this interface.
++ */
++ if ((nit_fd = open(&quot;/dev/nit&quot;, O_RDONLY)) &lt; 0) {
++ error(&quot;Couldn't open /dev/nit: %m&quot;);
++ return 0;
++ }
++ strlcpy(ifreq.ifr_name, ifr-&gt;ifr_name, sizeof(ifreq.ifr_name));
++ if (ioctl(nit_fd, NIOCBIND, &amp;ifreq) &lt; 0
++ || ioctl(nit_fd, SIOCGIFADDR, &amp;ifreq) &lt; 0) {
++ error(&quot;Couldn't get hardware address for %s: %m&quot;,
++ ifreq.ifr_name);
++ close(nit_fd);
++ return 0;
++ }
++
++ hwaddr-&gt;sa_family = AF_UNSPEC;
++ memcpy(hwaddr-&gt;sa_data, ifreq.ifr_addr.sa_data, 6);
++ close(nit_fd);
++ return 1;
++}
++
++/*
++ * have_route_to - determine if the system has any route to
++ * a given IP address.
++ * For demand mode to work properly, we have to ignore routes
++ * through our own interface.
++ */
++int have_route_to(addr)
++ u_int32_t addr;
++{
++ return -1;
++}
++
++#define WTMPFILE &quot;/usr/adm/wtmp&quot;
++
++void
++logwtmp(line, name, host)
++ const char *line, *name, *host;
++{
++ int fd;
++ struct stat buf;
++ struct utmp ut;
++
++ if ((fd = open(WTMPFILE, O_WRONLY|O_APPEND, 0)) &lt; 0)
++ return;
++ if (!fstat(fd, &amp;buf)) {
++ strncpy(ut.ut_line, line, sizeof(ut.ut_line));
++ strncpy(ut.ut_name, name, sizeof(ut.ut_name));
++ strncpy(ut.ut_host, host, sizeof(ut.ut_host));
++ (void)time(&amp;ut.ut_time);
++ if (write(fd, (char *)&amp;ut, sizeof(struct utmp)) != sizeof(struct utmp))
++ (void)ftruncate(fd, buf.st_size);
++ }
++ close(fd);
++}
++
++/*
++ * Return user specified netmask, modified by any mask we might determine
++ * for address `addr' (in network byte order).
++ * Here we scan through the system's list of interfaces, looking for
++ * any non-point-to-point interfaces which might appear to be on the same
++ * network as `addr'. If we find any, we OR in their netmask to the
++ * user-specified netmask.
++ */
++u_int32_t
++GetMask(addr)
++ u_int32_t addr;
++{
++ u_int32_t mask, nmask, ina;
++ struct ifreq *ifr, *ifend, ifreq;
++ struct ifconf ifc;
++
++ addr = ntohl(addr);
++ if (IN_CLASSA(addr)) /* determine network mask for address class */
++ nmask = IN_CLASSA_NET;
++ else if (IN_CLASSB(addr))
++ nmask = IN_CLASSB_NET;
++ else
++ nmask = IN_CLASSC_NET;
++ /* class D nets are disallowed by bad_ip_adrs */
++ mask = netmask | htonl(nmask);
++
++ /*
++ * Scan through the system's network interfaces.
++ */
++ ifc.ifc_len = MAX_IFS * sizeof(struct ifreq);
++ ifc.ifc_req = alloca(ifc.ifc_len);
++ if (ifc.ifc_req == 0)
++ return mask;
++ if (ioctl(sockfd, SIOCGIFCONF, &amp;ifc) &lt; 0) {
++ warn(&quot;Couldn't get system interface list: %m&quot;);
++ return mask;
++ }
++ ifend = (struct ifreq *) (ifc.ifc_buf + ifc.ifc_len);
++ for (ifr = ifc.ifc_req; ifr &lt; ifend; ++ifr) {
++ /*
++ * Check the interface's internet address.
++ */
++ if (ifr-&gt;ifr_addr.sa_family != AF_INET)
++ continue;
++ ina = INET_ADDR(ifr-&gt;ifr_addr);
++ if ((ntohl(ina) &amp; nmask) != (addr &amp; nmask))
++ continue;
++ /*
++ * Check that the interface is up, and not point-to-point or loopback.
++ */
++ strlcpy(ifreq.ifr_name, ifr-&gt;ifr_name, sizeof(ifreq.ifr_name));
++ if (ioctl(sockfd, SIOCGIFFLAGS, &amp;ifreq) &lt; 0)
++ continue;
++ if ((ifreq.ifr_flags &amp; (IFF_UP|IFF_POINTOPOINT|IFF_LOOPBACK))
++ != IFF_UP)
++ continue;
++ /*
++ * Get its netmask and OR it into our mask.
++ */
++ if (ioctl(sockfd, SIOCGIFNETMASK, &amp;ifreq) &lt; 0)
++ continue;
++ mask |= INET_ADDR(ifreq.ifr_addr);
++ }
++
++ return mask;
++}
++
++static int
++strioctl(fd, cmd, ptr, ilen, olen)
++ int fd, cmd, ilen, olen;
++ void *ptr;
++{
++ struct strioctl str;
++
++ str.ic_cmd = cmd;
++ str.ic_timout = 0;
++ str.ic_len = ilen;
++ str.ic_dp = ptr;
++ if (ioctl(fd, I_STR, &amp;str) == -1)
++ return -1;
++ if (str.ic_len != olen)
++ dbglog(&quot;strioctl: expected %d bytes, got %d for cmd %x\n&quot;,
++ olen, str.ic_len, cmd);
++ return 0;
++}
++
++/*
++ * Use the hostid as part of the random number seed.
++ */
++int
++get_host_seed()
++{
++ return gethostid();
++}
++
++#if 0
++/*
++ * Code for locking/unlocking the serial device.
++ * This code is derived from chat.c.
++ */
++
++#if !defined(HDB) &amp;&amp; !defined(SUNOS3)
++#define HDB 1 /* ascii lock files are the default */
++#endif
++
++#ifndef LOCK_DIR
++# if HDB
++# define PIDSTRING
++# define LOCK_PREFIX &quot;/usr/spool/locks/LCK..&quot;
++# else /* HDB */
++# define LOCK_PREFIX &quot;/usr/spool/uucp/LCK..&quot;
++# endif /* HDB */
++#endif /* LOCK_DIR */
++
++static char *lock_file; /* name of lock file created */
++
++/*
++ * lock - create a lock file for the named device.
++ */
++int
++lock(dev)
++ char *dev;
++{
++ char hdb_lock_buffer[12];
++ int fd, pid, n;
++ char *p;
++ size_t l;
++
++ if ((p = strrchr(dev, '/')) != NULL)
++ dev = p + 1;
++ l = strlen(LOCK_PREFIX) + strlen(dev) + 1;
++ lock_file = malloc(l);
++ if (lock_file == NULL)
++ novm(&quot;lock file name&quot;);
++ slprintf(lock_file, l, &quot;%s%s&quot;, LOCK_PREFIX, dev);
++
++ while ((fd = open(lock_file, O_EXCL | O_CREAT | O_RDWR, 0644)) &lt; 0) {
++ if (errno == EEXIST
++ &amp;&amp; (fd = open(lock_file, O_RDONLY, 0)) &gt;= 0) {
++ /* Read the lock file to find out who has the device locked */
++#ifdef PIDSTRING
++ n = read(fd, hdb_lock_buffer, 11);
++ if (n &gt; 0) {
++ hdb_lock_buffer[n] = 0;
++ pid = atoi(hdb_lock_buffer);
++ }
++#else
++ n = read(fd, &amp;pid, sizeof(pid));
++#endif
++ if (n &lt;= 0) {
++ error(&quot;Can't read pid from lock file %s&quot;, lock_file);
++ close(fd);
++ } else {
++ if (kill(pid, 0) == -1 &amp;&amp; errno == ESRCH) {
++ /* pid no longer exists - remove the lock file */
++ if (unlink(lock_file) == 0) {
++ close(fd);
++ notice(&quot;Removed stale lock on %s (pid %d)&quot;,
++ dev, pid);
++ continue;
++ } else
++ warn(&quot;Couldn't remove stale lock on %s&quot;,
++ dev);
++ } else
++ notice(&quot;Device %s is locked by pid %d&quot;,
++ dev, pid);
++ }
++ close(fd);
++ } else
++ error(&quot;Can't create lock file %s: %m&quot;, lock_file);
++ free(lock_file);
++ lock_file = NULL;
++ return -1;
++ }
++
++#ifdef PIDSTRING
++ slprintf(hdb_lock_buffer, sizeof(hdb_lock_buffer), &quot;%10d\n&quot;, getpid());
++ write(fd, hdb_lock_buffer, 11);
++#else
++ pid = getpid();
++ write(fd, &amp;pid, sizeof pid);
++#endif
++
++ close(fd);
++ return 0;
++}
++
++/*
++ * unlock - remove our lockfile
++ */
++void
++unlock()
++{
++ if (lock_file) {
++ unlink(lock_file);
++ free(lock_file);
++ lock_file = NULL;
++ }
++}
++#endif /* lock stuff removed */
++
++/*
++ * get_pty - get a pty master/slave pair and chown the slave side
++ * to the uid given. Assumes slave_name points to &gt;= 12 bytes of space.
++ */
++int
++get_pty(master_fdp, slave_fdp, slave_name, uid)
++ int *master_fdp;
++ int *slave_fdp;
++ char *slave_name;
++ int uid;
++{
++ int i, mfd, sfd;
++ char pty_name[12];
++ struct termios tios;
++
++ sfd = -1;
++ for (i = 0; i &lt; 64; ++i) {
++ slprintf(pty_name, sizeof(pty_name), &quot;/dev/pty%c%x&quot;,
++ 'p' + i / 16, i % 16);
++ mfd = open(pty_name, O_RDWR, 0);
++ if (mfd &gt;= 0) {
++ pty_name[5] = 't';
++ sfd = open(pty_name, O_RDWR | O_NOCTTY, 0);
++ if (sfd &gt;= 0)
++ break;
++ close(mfd);
++ }
++ }
++ if (sfd &lt; 0)
++ return 0;
++
++ strlcpy(slave_name, pty_name, 12);
++ *master_fdp = mfd;
++ *slave_fdp = sfd;
++ fchown(sfd, uid, -1);
++ fchmod(sfd, S_IRUSR | S_IWUSR);
++ if (tcgetattr(sfd, &amp;tios) == 0) {
++ tios.c_cflag &amp;= ~(CSIZE | CSTOPB | PARENB);
++ tios.c_cflag |= CS8 | CREAD;
++ tios.c_iflag = IGNPAR | CLOCAL;
++ tios.c_oflag = 0;
++ tios.c_lflag = 0;
++ if (tcsetattr(sfd, TCSAFLUSH, &amp;tios) &lt; 0)
++ warn(&quot;couldn't set attributes on pty: %m&quot;);
++ } else
++ warn(&quot;couldn't get attributes on pty: %m&quot;);
++
++ return 1;
++}
++
++/*
++ * SunOS doesn't have strtoul :-(
++ */
++unsigned long
++strtoul(str, ptr, base)
++ char *str, **ptr;
++ int base;
++{
++ return (unsigned long) strtol(str, ptr, base);
++}
++
++/*
++ * Or strerror :-(
++ */
++extern char *sys_errlist[];
++extern int sys_nerr;
++
++char *
++strerror(n)
++ int n;
++{
++ static char unknown[32];
++
++ if (n &gt; 0 &amp;&amp; n &lt; sys_nerr)
++ return sys_errlist[n];
++ slprintf(unknown, sizeof(unknown), &quot;Error %d&quot;, n);
++ return unknown;
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/pppd/sys-sunos4.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1ppppppdtdbc">Added: drakx/trunk/mdk-stage1/ppp/pppd/tdb.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/tdb.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/tdb.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,1282 @@
++/*
++ * Database functions
++ * Copyright (C) Andrew Tridgell 1999
++ *
++ * Redistribution and use in source and binary forms are permitted
++ * provided that the above copyright notice and this paragraph are
++ * duplicated in all such forms AND provided that this software or
++ * any derived work is only used as part of the PPP daemon (pppd)
++ * and related utilities.
++ * The name of the author may not be used to endorse or promote products
++ * derived from this software without specific prior written permission.
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
++ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
++ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++ *
++ * Note: this software is also available under the Gnu Public License
++ * version 2 or later.
++ */
++
++#include &lt;stdlib.h&gt;
++#include &lt;stdio.h&gt;
++#include &lt;fcntl.h&gt;
++#include &lt;unistd.h&gt;
++#include &lt;string.h&gt;
++#include &lt;fcntl.h&gt;
++#include &lt;errno.h&gt;
++#include &lt;sys/mman.h&gt;
++#include &lt;sys/stat.h&gt;
++#include &quot;tdb.h&quot;
++
++#define TDB_VERSION (0x26011967 + 1)
++#define TDB_MAGIC (0x26011999U)
++#define TDB_FREE_MAGIC (~TDB_MAGIC)
++#define TDB_ALIGN 4
++#define MIN_REC_SIZE (2*sizeof(struct list_struct) + TDB_ALIGN)
++#define DEFAULT_HASH_SIZE 128
++#define TDB_PAGE_SIZE 0x2000
++#define TDB_LEN_MULTIPLIER 10
++#define FREELIST_TOP (sizeof(struct tdb_header))
++
++#define LOCK_SET 1
++#define LOCK_CLEAR 0
++
++/* lock offsets */
++#define GLOBAL_LOCK 0
++#define ACTIVE_LOCK 4
++#define LIST_LOCK_BASE 1024
++
++#define BUCKET(hash) ((hash) % tdb-&gt;header.hash_size)
++
++#ifndef MAP_FILE
++#define MAP_FILE 0
++#endif
++
++/* the body of the database is made of one list_struct for the free space
++ plus a separate data list for each hash value */
++struct list_struct {
++ tdb_len rec_len; /* total byte length of record */
++ tdb_off next; /* offset of the next record in the list */
++ tdb_len key_len; /* byte length of key */
++ tdb_len data_len; /* byte length of data */
++ unsigned full_hash; /* the full 32 bit hash of the key */
++ unsigned magic; /* try to catch errors */
++ /*
++ the following union is implied
++ union {
++ char record[rec_len];
++ struct {
++ char key[key_len];
++ char data[data_len];
++ }
++ }
++ */
++};
++
++/* a null data record - useful for error returns */
++static TDB_DATA null_data;
++
++/* a byte range locking function - return 0 on success
++ this functions locks/unlocks 1 byte at the specified offset */
++static int tdb_brlock(TDB_CONTEXT *tdb, tdb_off offset,
++ int set, int rw_type, int lck_type)
++{
++#if NOLOCK
++ return 0;
++#else
++ struct flock fl;
++
++ if (tdb-&gt;fd == -1) return 0; /* for in memory tdb */
++
++ if (tdb-&gt;read_only) return -1;
++
++ fl.l_type = set==LOCK_SET?rw_type:F_UNLCK;
++ fl.l_whence = SEEK_SET;
++ fl.l_start = offset;
++ fl.l_len = 1;
++ fl.l_pid = 0;
++
++ if (fcntl(tdb-&gt;fd, lck_type, &amp;fl) != 0) {
++#if TDB_DEBUG
++ if (lck_type == F_SETLKW) {
++ printf(&quot;lock %d failed at %d (%s)\n&quot;,
++ set, offset, strerror(errno));
++ }
++#endif
++ tdb-&gt;ecode = TDB_ERR_LOCK;
++ return -1;
++ }
++ return 0;
++#endif
++}
++
++/* lock a list in the database. list -1 is the alloc list */
++static int tdb_lock(TDB_CONTEXT *tdb, int list)
++{
++ if (list &lt; -1 || list &gt;= (int)tdb-&gt;header.hash_size) {
++#if TDB_DEBUG
++ printf(&quot;bad list %d\n&quot;, list);
++#endif
++ return -1;
++ }
++ if (tdb-&gt;locked[list+1] == 0) {
++ if (tdb_brlock(tdb, LIST_LOCK_BASE + 4*list, LOCK_SET,
++ F_WRLCK, F_SETLKW) != 0) {
++ return -1;
++ }
++ }
++ tdb-&gt;locked[list+1]++;
++ return 0;
++}
++
++/* unlock the database. */
++static int tdb_unlock(TDB_CONTEXT *tdb, int list)
++{
++ if (list &lt; -1 || list &gt;= (int)tdb-&gt;header.hash_size) {
++#if TDB_DEBUG
++ printf(&quot;bad unlock list %d\n&quot;, list);
++#endif
++ return -1;
++ }
++
++ if (tdb-&gt;locked[list+1] == 0) {
++#if TDB_DEBUG
++ printf(&quot;not locked %d\n&quot;, list);
++#endif
++ tdb-&gt;ecode = TDB_ERR_LOCK;
++ return -1;
++ }
++ if (tdb-&gt;locked[list+1] == 1) {
++ if (tdb_brlock(tdb, LIST_LOCK_BASE + 4*list, LOCK_CLEAR,
++ F_WRLCK, F_SETLKW) != 0) {
++ return -1;
++ }
++ }
++ tdb-&gt;locked[list+1]--;
++ return 0;
++}
++
++/* the hash algorithm - turn a key into an integer
++ This is based on the hash agorithm from gdbm */
++static unsigned tdb_hash(TDB_DATA *key)
++{
++ unsigned value; /* Used to compute the hash value. */
++ unsigned i; /* Used to cycle through random values. */
++
++ /* Set the initial value from the key size. */
++ value = 0x238F13AF * key-&gt;dsize;
++ for (i=0; i &lt; key-&gt;dsize; i++) {
++ value = (value + (key-&gt;dptr[i] &lt;&lt; (i*5 % 24)));
++ }
++
++ value = (1103515243 * value + 12345);
++
++ return value;
++}
++
++/* find the top of the hash chain for an open database */
++static tdb_off tdb_hash_top(TDB_CONTEXT *tdb, unsigned hash)
++{
++ tdb_off ret;
++ hash = BUCKET(hash);
++ ret = FREELIST_TOP + (hash+1)*sizeof(tdb_off);
++ return ret;
++}
++
++
++/* check for an out of bounds access - if it is out of bounds then
++ see if the database has been expanded by someone else and expand
++ if necessary */
++static int tdb_oob(TDB_CONTEXT *tdb, tdb_off offset)
++{
++ struct stat st;
++ if ((offset &lt;= tdb-&gt;map_size) || (tdb-&gt;fd == -1)) return 0;
++
++ fstat(tdb-&gt;fd, &amp;st);
++ if (st.st_size &lt;= (ssize_t)offset) {
++ tdb-&gt;ecode = TDB_ERR_IO;
++ return -1;
++ }
++
++#if HAVE_MMAP
++ if (tdb-&gt;map_ptr) {
++ munmap(tdb-&gt;map_ptr, tdb-&gt;map_size);
++ tdb-&gt;map_ptr = NULL;
++ }
++#endif
++
++ tdb-&gt;map_size = st.st_size;
++#if HAVE_MMAP
++ tdb-&gt;map_ptr = (void *)mmap(NULL, tdb-&gt;map_size,
++ tdb-&gt;read_only?PROT_READ:PROT_READ|PROT_WRITE,
++ MAP_SHARED | MAP_FILE, tdb-&gt;fd, 0);
++#endif
++ return 0;
++}
++
++
++/* write a lump of data at a specified offset */
++static int tdb_write(TDB_CONTEXT *tdb, tdb_off offset, const char *buf, tdb_len len)
++{
++ if (tdb_oob(tdb, offset + len) != 0) {
++ /* oops - trying to write beyond the end of the database! */
++ return -1;
++ }
++
++ if (tdb-&gt;map_ptr) {
++ memcpy(offset + (char *)tdb-&gt;map_ptr, buf, len);
++ } else {
++ if (lseek(tdb-&gt;fd, offset, SEEK_SET) != offset ||
++ write(tdb-&gt;fd, buf, len) != (ssize_t)len) {
++ tdb-&gt;ecode = TDB_ERR_IO;
++ return -1;
++ }
++ }
++ return 0;
++}
++
++/* read a lump of data at a specified offset */
++static int tdb_read(TDB_CONTEXT *tdb, tdb_off offset, char *buf, tdb_len len)
++{
++ if (tdb_oob(tdb, offset + len) != 0) {
++ /* oops - trying to read beyond the end of the database! */
++ return -1;
++ }
++
++ if (tdb-&gt;map_ptr) {
++ memcpy(buf, offset + (char *)tdb-&gt;map_ptr, len);
++ } else {
++ if (lseek(tdb-&gt;fd, offset, SEEK_SET) != offset ||
++ read(tdb-&gt;fd, buf, len) != (ssize_t)len) {
++ tdb-&gt;ecode = TDB_ERR_IO;
++ return -1;
++ }
++ }
++ return 0;
++}
++
++
++/* read a lump of data, allocating the space for it */
++static char *tdb_alloc_read(TDB_CONTEXT *tdb, tdb_off offset, tdb_len len)
++{
++ char *buf;
++
++ buf = (char *)malloc(len);
++
++ if (!buf) {
++ tdb-&gt;ecode = TDB_ERR_OOM;
++ return NULL;
++ }
++
++ if (tdb_read(tdb, offset, buf, len) == -1) {
++ free(buf);
++ return NULL;
++ }
++
++ return buf;
++}
++
++/* convenience routine for writing a record */
++static int rec_write(TDB_CONTEXT *tdb, tdb_off offset, struct list_struct *rec)
++{
++ return tdb_write(tdb, offset, (char *)rec, sizeof(*rec));
++}
++
++/* convenience routine for writing a tdb_off */
++static int ofs_write(TDB_CONTEXT *tdb, tdb_off offset, tdb_off *d)
++{
++ return tdb_write(tdb, offset, (char *)d, sizeof(*d));
++}
++
++/* read a tdb_off from the store */
++static int ofs_read(TDB_CONTEXT *tdb, tdb_off offset, tdb_off *d)
++{
++ return tdb_read(tdb, offset, (char *)d, sizeof(*d));
++}
++
++/* read a record and check for simple errors */
++static int rec_read(TDB_CONTEXT *tdb, tdb_off offset, struct list_struct *rec)
++{
++ if (tdb_read(tdb, offset, (char *)rec, sizeof(*rec)) == -1) return -1;
++ if (rec-&gt;magic != TDB_MAGIC) {
++#if TDB_DEBUG
++ printf(&quot;bad magic 0x%08x at offset %d\n&quot;,
++ rec-&gt;magic, offset);
++#endif
++ tdb-&gt;ecode = TDB_ERR_CORRUPT;
++ return -1;
++ }
++ if (tdb_oob(tdb, rec-&gt;next) != 0) {
++ return -1;
++ }
++ return 0;
++}
++
++/* expand the database at least length bytes by expanding the
++ underlying file and doing the mmap again if necessary */
++static int tdb_expand(TDB_CONTEXT *tdb, tdb_off length)
++{
++ struct list_struct rec;
++ tdb_off offset, ptr;
++ char b = 0;
++
++ tdb_lock(tdb,-1);
++
++ /* make sure we know about any previous expansions by another
++ process */
++ tdb_oob(tdb,tdb-&gt;map_size + 1);
++
++ /* always make room for at least 10 more records */
++ length *= TDB_LEN_MULTIPLIER;
++
++ /* and round the database up to a multiple of TDB_PAGE_SIZE */
++ length = ((tdb-&gt;map_size + length + TDB_PAGE_SIZE) &amp; ~(TDB_PAGE_SIZE - 1)) - tdb-&gt;map_size;
++
++ /* expand the file itself */
++ if (tdb-&gt;fd != -1) {
++ lseek(tdb-&gt;fd, tdb-&gt;map_size + length - 1, SEEK_SET);
++ if (write(tdb-&gt;fd, &amp;b, 1) != 1) goto fail;
++ }
++
++ /* form a new freelist record */
++ offset = FREELIST_TOP;
++ rec.rec_len = length - sizeof(rec);
++ rec.magic = TDB_FREE_MAGIC;
++ if (ofs_read(tdb, offset, &amp;rec.next) == -1) {
++ goto fail;
++ }
++
++#if HAVE_MMAP
++ if (tdb-&gt;fd != -1 &amp;&amp; tdb-&gt;map_ptr) {
++ munmap(tdb-&gt;map_ptr, tdb-&gt;map_size);
++ tdb-&gt;map_ptr = NULL;
++ }
++#endif
++
++ tdb-&gt;map_size += length;
++
++ if (tdb-&gt;fd == -1) {
++ tdb-&gt;map_ptr = realloc(tdb-&gt;map_ptr, tdb-&gt;map_size);
++ }
++
++ /* write it out */
++ if (rec_write(tdb, tdb-&gt;map_size - length, &amp;rec) == -1) {
++ goto fail;
++ }
++
++ /* link it into the free list */
++ ptr = tdb-&gt;map_size - length;
++ if (ofs_write(tdb, offset, &amp;ptr) == -1) goto fail;
++
++#if HAVE_MMAP
++ if (tdb-&gt;fd != -1) {
++ tdb-&gt;map_ptr = (void *)mmap(NULL, tdb-&gt;map_size,
++ PROT_READ|PROT_WRITE,
++ MAP_SHARED | MAP_FILE, tdb-&gt;fd, 0);
++ }
++#endif
++
++ tdb_unlock(tdb, -1);
++ return 0;
++
++ fail:
++ tdb_unlock(tdb,-1);
++ return -1;
++}
++
++/* allocate some space from the free list. The offset returned points
++ to a unconnected list_struct within the database with room for at
++ least length bytes of total data
++
++ 0 is returned if the space could not be allocated
++ */
++static tdb_off tdb_allocate(TDB_CONTEXT *tdb, tdb_len length)
++{
++ tdb_off offset, rec_ptr, last_ptr;
++ struct list_struct rec, lastrec, newrec;
++
++ tdb_lock(tdb, -1);
++
++ again:
++ last_ptr = 0;
++ offset = FREELIST_TOP;
++
++ /* read in the freelist top */
++ if (ofs_read(tdb, offset, &amp;rec_ptr) == -1) {
++ goto fail;
++ }
++
++ /* keep looking until we find a freelist record that is big
++ enough */
++ while (rec_ptr) {
++ if (tdb_read(tdb, rec_ptr, (char *)&amp;rec, sizeof(rec)) == -1) {
++ goto fail;
++ }
++
++ if (rec.magic != TDB_FREE_MAGIC) {
++#if TDB_DEBUG
++ printf(&quot;bad magic 0x%08x in free list\n&quot;, rec.magic);
++#endif
++ goto fail;
++ }
++
++ if (rec.rec_len &gt;= length) {
++ /* found it - now possibly split it up */
++ if (rec.rec_len &gt; length + MIN_REC_SIZE) {
++ length = (length + TDB_ALIGN) &amp; ~(TDB_ALIGN-1);
++
++ newrec.rec_len = rec.rec_len - (sizeof(rec) + length);
++ newrec.next = rec.next;
++ newrec.magic = TDB_FREE_MAGIC;
++
++ rec.rec_len = length;
++ rec.next = rec_ptr + sizeof(rec) + rec.rec_len;
++
++ if (rec_write(tdb, rec.next, &amp;newrec) == -1) {
++ goto fail;
++ }
++
++ if (rec_write(tdb, rec_ptr, &amp;rec) == -1) {
++ goto fail;
++ }
++ }
++
++ /* remove it from the list */
++ if (last_ptr == 0) {
++ offset = FREELIST_TOP;
++
++ if (ofs_write(tdb, offset, &amp;rec.next) == -1) {
++ goto fail;
++ }
++ } else {
++ lastrec.next = rec.next;
++ if (rec_write(tdb, last_ptr, &amp;lastrec) == -1) {
++ goto fail;
++ }
++ }
++
++ /* all done - return the new record offset */
++ tdb_unlock(tdb, -1);
++ return rec_ptr;
++ }
++
++ /* move to the next record */
++ lastrec = rec;
++ last_ptr = rec_ptr;
++ rec_ptr = rec.next;
++ }
++
++ /* we didn't find enough space. See if we can expand the
++ database and if we can then try again */
++ if (tdb_expand(tdb, length + sizeof(rec)) == 0) goto again;
++
++ fail:
++#if TDB_DEBUG
++ printf(&quot;tdb_allocate failed for size %u\n&quot;, length);
++#endif
++ tdb_unlock(tdb, -1);
++ return 0;
++}
++
++/* initialise a new database with a specified hash size */
++static int tdb_new_database(TDB_CONTEXT *tdb, int hash_size)
++{
++ struct tdb_header header;
++ tdb_off offset;
++ int i, size = 0;
++ tdb_off buf[16];
++
++ /* create the header */
++ memset(&amp;header, 0, sizeof(header));
++ memcpy(header.magic_food, TDB_MAGIC_FOOD, strlen(TDB_MAGIC_FOOD)+1);
++ header.version = TDB_VERSION;
++ header.hash_size = hash_size;
++ lseek(tdb-&gt;fd, 0, SEEK_SET);
++ ftruncate(tdb-&gt;fd, 0);
++
++ if (tdb-&gt;fd != -1 &amp;&amp; write(tdb-&gt;fd, &amp;header, sizeof(header)) !=
++ sizeof(header)) {
++ tdb-&gt;ecode = TDB_ERR_IO;
++ return -1;
++ } else size += sizeof(header);
++
++ /* the freelist and hash pointers */
++ offset = 0;
++ memset(buf, 0, sizeof(buf));
++
++ for (i=0;(hash_size+1)-i &gt;= 16; i += 16) {
++ if (tdb-&gt;fd != -1 &amp;&amp; write(tdb-&gt;fd, buf, sizeof(buf)) !=
++ sizeof(buf)) {
++ tdb-&gt;ecode = TDB_ERR_IO;
++ return -1;
++ } else size += sizeof(buf);
++ }
++
++ for (;i&lt;hash_size+1; i++) {
++ if (tdb-&gt;fd != -1 &amp;&amp; write(tdb-&gt;fd, buf, sizeof(tdb_off)) !=
++ sizeof(tdb_off)) {
++ tdb-&gt;ecode = TDB_ERR_IO;
++ return -1;
++ } else size += sizeof(tdb_off);
++ }
++
++ if (tdb-&gt;fd == -1) {
++ tdb-&gt;map_ptr = calloc(size, 1);
++ tdb-&gt;map_size = size;
++ if (tdb-&gt;map_ptr == NULL) {
++ tdb-&gt;ecode = TDB_ERR_IO;
++ return -1;
++ }
++ memcpy(&amp;tdb-&gt;header, &amp;header, sizeof(header));
++ }
++
++#if TDB_DEBUG
++ printf(&quot;initialised database of hash_size %u\n&quot;,
++ hash_size);
++#endif
++ return 0;
++}
++
++/* Returns 0 on fail. On success, return offset of record, and fills
++ in rec */
++static tdb_off tdb_find(TDB_CONTEXT *tdb, TDB_DATA key, unsigned int hash,
++ struct list_struct *rec)
++{
++ tdb_off offset, rec_ptr;
++
++ /* find the top of the hash chain */
++ offset = tdb_hash_top(tdb, hash);
++
++ /* read in the hash top */
++ if (ofs_read(tdb, offset, &amp;rec_ptr) == -1)
++ return 0;
++
++ /* keep looking until we find the right record */
++ while (rec_ptr) {
++ if (rec_read(tdb, rec_ptr, rec) == -1)
++ return 0;
++
++ if (hash == rec-&gt;full_hash &amp;&amp; key.dsize == rec-&gt;key_len) {
++ char *k;
++ /* a very likely hit - read the key */
++ k = tdb_alloc_read(tdb, rec_ptr + sizeof(*rec),
++ rec-&gt;key_len);
++
++ if (!k)
++ return 0;
++
++ if (memcmp(key.dptr, k, key.dsize) == 0) {
++ free(k);
++ return rec_ptr;
++ }
++ free(k);
++ }
++
++ /* move to the next record */
++ rec_ptr = rec-&gt;next;
++ }
++ return 0;
++}
++
++/*
++ return an error string for the last tdb error
++*/
++char *tdb_error(TDB_CONTEXT *tdb)
++{
++ int i;
++ static struct {
++ enum TDB_ERROR ecode;
++ char *estring;
++ } emap[] = {
++ {TDB_SUCCESS, &quot;Success&quot;},
++ {TDB_ERR_CORRUPT, &quot;Corrupt database&quot;},
++ {TDB_ERR_IO, &quot;IO Error&quot;},
++ {TDB_ERR_LOCK, &quot;Locking error&quot;},
++ {TDB_ERR_OOM, &quot;Out of memory&quot;},
++ {TDB_ERR_EXISTS, &quot;Record exists&quot;},
++ {-1, NULL}};
++ if (tdb != NULL) {
++ for (i=0;emap[i].estring;i++) {
++ if (tdb-&gt;ecode == emap[i].ecode) return emap[i].estring;
++ }
++ } else {
++ return &quot;Invalid tdb context&quot;;
++ }
++ return &quot;Invalid error code&quot;;
++}
++
++
++/* update an entry in place - this only works if the new data size
++ is &lt;= the old data size and the key exists.
++ on failure return -1
++*/
++int tdb_update(TDB_CONTEXT *tdb, TDB_DATA key, TDB_DATA dbuf)
++{
++ unsigned hash;
++ struct list_struct rec;
++ tdb_off rec_ptr;
++ int ret = -1;
++
++ if (tdb == NULL) {
++#ifdef TDB_DEBUG
++ printf(&quot;tdb_update() called with null context\n&quot;);
++#endif
++ return -1;
++ }
++
++ /* find which hash bucket it is in */
++ hash = tdb_hash(&amp;key);
++
++ tdb_lock(tdb, BUCKET(hash));
++ rec_ptr = tdb_find(tdb, key, hash, &amp;rec);
++
++ if (!rec_ptr)
++ goto out;
++
++ /* must be long enough */
++ if (rec.rec_len &lt; key.dsize + dbuf.dsize)
++ goto out;
++
++ if (tdb_write(tdb, rec_ptr + sizeof(rec) + rec.key_len,
++ dbuf.dptr, dbuf.dsize) == -1)
++ goto out;
++
++ if (dbuf.dsize != rec.data_len) {
++ /* update size */
++ rec.data_len = dbuf.dsize;
++ ret = rec_write(tdb, rec_ptr, &amp;rec);
++ } else
++ ret = 0;
++
++ out:
++ tdb_unlock(tdb, BUCKET(hash));
++ return ret;
++}
++
++/* find an entry in the database given a key */
++TDB_DATA tdb_fetch(TDB_CONTEXT *tdb, TDB_DATA key)
++{
++ unsigned hash;
++ tdb_off rec_ptr;
++ struct list_struct rec;
++ TDB_DATA ret = null_data;
++
++ if (tdb == NULL) {
++#ifdef TDB_DEBUG
++ printf(&quot;tdb_fetch() called with null context\n&quot;);
++#endif
++ return null_data;
++ }
++
++ /* find which hash bucket it is in */
++ hash = tdb_hash(&amp;key);
++
++ tdb_lock(tdb, BUCKET(hash));
++ rec_ptr = tdb_find(tdb, key, hash, &amp;rec);
++
++ if (rec_ptr) {
++ ret.dptr = tdb_alloc_read(tdb,
++ rec_ptr + sizeof(rec) + rec.key_len,
++ rec.data_len);
++ ret.dsize = rec.data_len;
++ }
++
++ tdb_unlock(tdb, BUCKET(hash));
++ return ret;
++}
++
++/* check if an entry in the database exists
++
++ note that 1 is returned if the key is found and 0 is returned if not found
++ this doesn't match the conventions in the rest of this module, but is
++ compatible with gdbm
++*/
++int tdb_exists(TDB_CONTEXT *tdb, TDB_DATA key)
++{
++ unsigned hash;
++ tdb_off rec_ptr;
++ struct list_struct rec;
++
++ if (tdb == NULL) {
++#ifdef TDB_DEBUG
++ printf(&quot;tdb_exists() called with null context\n&quot;);
++#endif
++ return 0;
++ }
++
++ /* find which hash bucket it is in */
++ hash = tdb_hash(&amp;key);
++
++ tdb_lock(tdb, BUCKET(hash));
++ rec_ptr = tdb_find(tdb, key, hash, &amp;rec);
++ tdb_unlock(tdb, BUCKET(hash));
++
++ return rec_ptr != 0;
++}
++
++/* traverse the entire database - calling fn(tdb, key, data) on each element.
++ return -1 on error or the record count traversed
++ if fn is NULL then it is not called
++ a non-zero return value from fn() indicates that the traversal should stop
++ */
++int tdb_traverse(TDB_CONTEXT *tdb, int (*fn)(TDB_CONTEXT *tdb, TDB_DATA key, TDB_DATA dbuf, void* state), void* state)
++{
++ int count = 0;
++ unsigned h;
++ tdb_off offset, rec_ptr;
++ struct list_struct rec;
++ char *data;
++ TDB_DATA key, dbuf;
++
++ if (tdb == NULL) {
++#ifdef TDB_DEBUG
++ printf(&quot;tdb_traverse() called with null context\n&quot;);
++#endif
++ return -1;
++ }
++
++ /* loop over all hash chains */
++ for (h = 0; h &lt; tdb-&gt;header.hash_size; h++) {
++ tdb_lock(tdb, BUCKET(h));
++
++ /* read in the hash top */
++ offset = tdb_hash_top(tdb, h);
++ if (ofs_read(tdb, offset, &amp;rec_ptr) == -1) {
++ goto fail;
++ }
++
++ /* traverse all records for this hash */
++ while (rec_ptr) {
++ if (rec_read(tdb, rec_ptr, &amp;rec) == -1) {
++ goto fail;
++ }
++
++ /* now read the full record */
++ data = tdb_alloc_read(tdb, rec_ptr + sizeof(rec),
++ rec.key_len + rec.data_len);
++ if (!data) {
++ goto fail;
++ }
++
++ key.dptr = data;
++ key.dsize = rec.key_len;
++ dbuf.dptr = data + rec.key_len;
++ dbuf.dsize = rec.data_len;
++ count++;
++
++ if (fn &amp;&amp; fn(tdb, key, dbuf, state) != 0) {
++ /* they want us to stop traversing */
++ free(data);
++ tdb_unlock(tdb, BUCKET(h));
++ return count;
++ }
++
++ /* a miss - drat */
++ free(data);
++
++ /* move to the next record */
++ rec_ptr = rec.next;
++ }
++ tdb_unlock(tdb, BUCKET(h));
++ }
++
++ /* return the number traversed */
++ return count;
++
++ fail:
++ tdb_unlock(tdb, BUCKET(h));
++ return -1;
++}
++
++
++/* find the first entry in the database and return its key */
++TDB_DATA tdb_firstkey(TDB_CONTEXT *tdb)
++{
++ tdb_off offset, rec_ptr;
++ struct list_struct rec;
++ unsigned hash;
++ TDB_DATA ret;
++
++ if (tdb == NULL) {
++#ifdef TDB_DEBUG
++ printf(&quot;tdb_firstkey() called with null context\n&quot;);
++#endif
++ return null_data;
++ }
++
++ /* look for a non-empty hash chain */
++ for (hash = 0, rec_ptr = 0;
++ hash &lt; tdb-&gt;header.hash_size;
++ hash++) {
++ /* find the top of the hash chain */
++ offset = tdb_hash_top(tdb, hash);
++
++ tdb_lock(tdb, BUCKET(hash));
++
++ /* read in the hash top */
++ if (ofs_read(tdb, offset, &amp;rec_ptr) == -1) {
++ goto fail;
++ }
++
++ if (rec_ptr) break;
++
++ tdb_unlock(tdb, BUCKET(hash));
++ }
++
++ if (rec_ptr == 0) return null_data;
++
++ /* we've found a non-empty chain, now read the record */
++ if (rec_read(tdb, rec_ptr, &amp;rec) == -1) {
++ goto fail;
++ }
++
++ /* allocate and read the key space */
++ ret.dptr = tdb_alloc_read(tdb, rec_ptr + sizeof(rec), rec.key_len);
++ ret.dsize = rec.key_len;
++ tdb_unlock(tdb, BUCKET(hash));
++ return ret;
++
++ fail:
++ tdb_unlock(tdb, BUCKET(hash));
++ return null_data;
++}
++
++/* find the next entry in the database, returning its key */
++TDB_DATA tdb_nextkey(TDB_CONTEXT *tdb, TDB_DATA key)
++{
++ unsigned hash, hbucket;
++ tdb_off rec_ptr, offset;
++ struct list_struct rec;
++ TDB_DATA ret;
++
++ if (tdb == NULL) {
++#ifdef TDB_DEBUG
++ printf(&quot;tdb_nextkey() called with null context\n&quot;);
++#endif
++ return null_data;
++ }
++
++ /* find which hash bucket it is in */
++ hash = tdb_hash(&amp;key);
++ hbucket = BUCKET(hash);
++
++ tdb_lock(tdb, hbucket);
++ rec_ptr = tdb_find(tdb, key, hash, &amp;rec);
++ if (rec_ptr) {
++ /* we want the next record after this one */
++ rec_ptr = rec.next;
++ }
++
++ /* not found or last in hash: look for next non-empty hash chain */
++ while (rec_ptr == 0) {
++ tdb_unlock(tdb, hbucket);
++
++ if (++hbucket &gt;= tdb-&gt;header.hash_size - 1)
++ return null_data;
++
++ offset = tdb_hash_top(tdb, hbucket);
++ tdb_lock(tdb, hbucket);
++ /* read in the hash top */
++ if (ofs_read(tdb, offset, &amp;rec_ptr) == -1) {
++ tdb_unlock(tdb, hbucket);
++ return null_data;
++ }
++ }
++
++ /* Read the record. */
++ if (rec_read(tdb, rec_ptr, &amp;rec) == -1) {
++ tdb_unlock(tdb, hbucket);
++ return null_data;
++ }
++ /* allocate and read the key */
++ ret.dptr = tdb_alloc_read(tdb, rec_ptr + sizeof(rec), rec.key_len);
++ ret.dsize = rec.key_len;
++ tdb_unlock(tdb, hbucket);
++
++ return ret;
++}
++
++/* delete an entry in the database given a key */
++int tdb_delete(TDB_CONTEXT *tdb, TDB_DATA key)
++{
++ unsigned hash;
++ tdb_off offset, rec_ptr, last_ptr;
++ struct list_struct rec, lastrec;
++ char *data = NULL;
++
++ if (tdb == NULL) {
++#ifdef TDB_DEBUG
++ printf(&quot;tdb_delete() called with null context\n&quot;);
++#endif
++ return -1;
++ }
++
++ /* find which hash bucket it is in */
++ hash = tdb_hash(&amp;key);
++
++ tdb_lock(tdb, BUCKET(hash));
++
++ /* find the top of the hash chain */
++ offset = tdb_hash_top(tdb, hash);
++
++ /* read in the hash top */
++ if (ofs_read(tdb, offset, &amp;rec_ptr) == -1) {
++ goto fail;
++ }
++
++ last_ptr = 0;
++
++ /* keep looking until we find the right record */
++ while (rec_ptr) {
++ if (rec_read(tdb, rec_ptr, &amp;rec) == -1) {
++ goto fail;
++ }
++
++ if (hash == rec.full_hash &amp;&amp; key.dsize == rec.key_len) {
++ /* a very likely hit - read the record and full key */
++ data = tdb_alloc_read(tdb, rec_ptr + sizeof(rec),
++ rec.key_len);
++ if (!data) {
++ goto fail;
++ }
++
++ if (memcmp(key.dptr, data, key.dsize) == 0) {
++ /* a definite match - delete it */
++ if (last_ptr == 0) {
++ offset = tdb_hash_top(tdb, hash);
++ if (ofs_write(tdb, offset, &amp;rec.next) == -1) {
++ goto fail;
++ }
++ } else {
++ lastrec.next = rec.next;
++ if (rec_write(tdb, last_ptr, &amp;lastrec) == -1) {
++ goto fail;
++ }
++ }
++ tdb_unlock(tdb, BUCKET(hash));
++ tdb_lock(tdb, -1);
++ /* and recover the space */
++ offset = FREELIST_TOP;
++ if (ofs_read(tdb, offset, &amp;rec.next) == -1) {
++ goto fail2;
++ }
++ rec.magic = TDB_FREE_MAGIC;
++ if (rec_write(tdb, rec_ptr, &amp;rec) == -1) {
++ goto fail2;
++ }
++ if (ofs_write(tdb, offset, &amp;rec_ptr) == -1) {
++ goto fail2;
++ }
++
++ /* yipee - all done */
++ free(data);
++ tdb_unlock(tdb, -1);
++ return 0;
++ }
++
++ /* a miss - drat */
++ free(data);
++ data = NULL;
++ }
++
++ /* move to the next record */
++ last_ptr = rec_ptr;
++ lastrec = rec;
++ rec_ptr = rec.next;
++ }
++
++ fail:
++ if (data) free(data);
++ tdb_unlock(tdb, BUCKET(hash));
++ return -1;
++
++ fail2:
++ if (data) free(data);
++ tdb_unlock(tdb, -1);
++ return -1;
++}
++
++
++/* store an element in the database, replacing any existing element
++ with the same key
++
++ return 0 on success, -1 on failure
++*/
++int tdb_store(TDB_CONTEXT *tdb, TDB_DATA key, TDB_DATA dbuf, int flag)
++{
++ struct list_struct rec;
++ unsigned hash;
++ tdb_off rec_ptr, offset;
++ char *p = NULL;
++
++ if (tdb == NULL) {
++#ifdef TDB_DEBUG
++ printf(&quot;tdb_store() called with null context\n&quot;);
++#endif
++ return -1;
++ }
++
++ /* find which hash bucket it is in */
++ hash = tdb_hash(&amp;key);
++
++ /* check for it existing */
++ if (flag == TDB_INSERT &amp;&amp; tdb_exists(tdb, key)) {
++ tdb-&gt;ecode = TDB_ERR_EXISTS;
++ return -1;
++ }
++
++ /* first try in-place update */
++ if (flag != TDB_INSERT &amp;&amp; tdb_update(tdb, key, dbuf) == 0) {
++ return 0;
++ }
++
++ rec_ptr = tdb_allocate(tdb, key.dsize + dbuf.dsize);
++ if (rec_ptr == 0) {
++ return -1;
++ }
++
++ tdb_lock(tdb, BUCKET(hash));
++
++ /* delete any existing record - if it doesn't exist we don't care */
++ if (flag != TDB_INSERT) {
++ tdb_delete(tdb, key);
++ }
++
++ /* read the newly created record */
++ if (tdb_read(tdb, rec_ptr, (char *)&amp;rec, sizeof(rec)) == -1) {
++ goto fail;
++ }
++
++ if (rec.magic != TDB_FREE_MAGIC) goto fail;
++
++ /* find the top of the hash chain */
++ offset = tdb_hash_top(tdb, hash);
++
++ /* read in the hash top diretcly into our next pointer */
++ if (ofs_read(tdb, offset, &amp;rec.next) == -1) {
++ goto fail;
++ }
++
++ rec.key_len = key.dsize;
++ rec.data_len = dbuf.dsize;
++ rec.full_hash = hash;
++ rec.magic = TDB_MAGIC;
++
++ p = (char *)malloc(sizeof(rec) + key.dsize + dbuf.dsize);
++ if (!p) {
++ tdb-&gt;ecode = TDB_ERR_OOM;
++ goto fail;
++ }
++
++ memcpy(p, &amp;rec, sizeof(rec));
++ memcpy(p+sizeof(rec), key.dptr, key.dsize);
++ memcpy(p+sizeof(rec)+key.dsize, dbuf.dptr, dbuf.dsize);
++
++ if (tdb_write(tdb, rec_ptr, p, sizeof(rec)+key.dsize+dbuf.dsize) == -1)
++ goto fail;
++
++ free(p);
++ p = NULL;
++
++ /* and point the top of the hash chain at it */
++ if (ofs_write(tdb, offset, &amp;rec_ptr) == -1) goto fail;
++
++ tdb_unlock(tdb, BUCKET(hash));
++ return 0;
++
++ fail:
++#if TDB_DEBUG
++ printf(&quot;store failed for hash 0x%08x in bucket %u\n&quot;, hash, BUCKET(hash));
++#endif
++ if (p) free(p);
++ tdb_unlock(tdb, BUCKET(hash));
++ return -1;
++}
++
++
++/* open the database, creating it if necessary
++
++ The open_flags and mode are passed straight to the open call on the database
++ file. A flags value of O_WRONLY is invalid
++
++ The hash size is advisory, use zero for a default value.
++
++ return is NULL on error
++*/
++TDB_CONTEXT *tdb_open(char *name, int hash_size, int tdb_flags,
++ int open_flags, mode_t mode)
++{
++ TDB_CONTEXT tdb, *ret;
++ struct stat st;
++
++ memset(&amp;tdb, 0, sizeof(tdb));
++
++ tdb.fd = -1;
++ tdb.name = NULL;
++ tdb.map_ptr = NULL;
++
++ if ((open_flags &amp; O_ACCMODE) == O_WRONLY) {
++ goto fail;
++ }
++
++ if (hash_size == 0) hash_size = DEFAULT_HASH_SIZE;
++
++ tdb.read_only = ((open_flags &amp; O_ACCMODE) == O_RDONLY);
++
++ if (name != NULL) {
++ tdb.fd = open(name, open_flags, mode);
++ if (tdb.fd == -1) {
++ goto fail;
++ }
++ }
++
++ /* ensure there is only one process initialising at once */
++ tdb_brlock(&amp;tdb, GLOBAL_LOCK, LOCK_SET, F_WRLCK, F_SETLKW);
++
++ if (tdb_flags &amp; TDB_CLEAR_IF_FIRST) {
++ /* we need to zero the database if we are the only
++ one with it open */
++ if (tdb_brlock(&amp;tdb, ACTIVE_LOCK, LOCK_SET, F_WRLCK, F_SETLK) == 0) {
++ ftruncate(tdb.fd, 0);
++ tdb_brlock(&amp;tdb, ACTIVE_LOCK, LOCK_CLEAR, F_WRLCK, F_SETLK);
++ }
++ }
++
++ /* leave this lock in place */
++ tdb_brlock(&amp;tdb, ACTIVE_LOCK, LOCK_SET, F_RDLCK, F_SETLKW);
++
++ if (read(tdb.fd, &amp;tdb.header, sizeof(tdb.header)) != sizeof(tdb.header) ||
++ strcmp(tdb.header.magic_food, TDB_MAGIC_FOOD) != 0 ||
++ tdb.header.version != TDB_VERSION) {
++ /* its not a valid database - possibly initialise it */
++ if (!(open_flags &amp; O_CREAT)) {
++ goto fail;
++ }
++ if (tdb_new_database(&amp;tdb, hash_size) == -1) goto fail;
++
++ lseek(tdb.fd, 0, SEEK_SET);
++ if (tdb.fd != -1 &amp;&amp; read(tdb.fd, &amp;tdb.header,
++ sizeof(tdb.header)) !=
++ sizeof(tdb.header))
++ goto fail;
++ }
++
++ if (tdb.fd != -1) {
++ fstat(tdb.fd, &amp;st);
++
++ /* map the database and fill in the return structure */
++ tdb.name = (char *)strdup(name);
++ tdb.map_size = st.st_size;
++ }
++
++ tdb.locked = (int *)calloc(tdb.header.hash_size+1,
++ sizeof(tdb.locked[0]));
++ if (!tdb.locked) {
++ goto fail;
++ }
++
++#if HAVE_MMAP
++ if (tdb.fd != -1) {
++ tdb.map_ptr = (void *)mmap(NULL, st.st_size,
++ tdb.read_only? PROT_READ : PROT_READ|PROT_WRITE,
++ MAP_SHARED | MAP_FILE, tdb.fd, 0);
++ }
++#endif
++
++ ret = (TDB_CONTEXT *)malloc(sizeof(tdb));
++ if (!ret) goto fail;
++
++ *ret = tdb;
++
++#if TDB_DEBUG
++ printf(&quot;mapped database of hash_size %u map_size=%u\n&quot;,
++ hash_size, tdb.map_size);
++#endif
++
++ tdb_brlock(&amp;tdb, GLOBAL_LOCK, LOCK_CLEAR, F_WRLCK, F_SETLKW);
++ return ret;
++
++ fail:
++ if (tdb.name) free(tdb.name);
++ if (tdb.fd != -1) close(tdb.fd);
++ if (tdb.map_ptr) munmap(tdb.map_ptr, tdb.map_size);
++
++ return NULL;
++}
++
++/* close a database */
++int tdb_close(TDB_CONTEXT *tdb)
++{
++ if (!tdb) return -1;
++
++ if (tdb-&gt;name) free(tdb-&gt;name);
++ if (tdb-&gt;fd != -1) close(tdb-&gt;fd);
++ if (tdb-&gt;locked) free(tdb-&gt;locked);
++
++ if (tdb-&gt;map_ptr) {
++ if (tdb-&gt;fd != -1) {
++ munmap(tdb-&gt;map_ptr, tdb-&gt;map_size);
++ } else {
++ free(tdb-&gt;map_ptr);
++ }
++ }
++
++ memset(tdb, 0, sizeof(*tdb));
++ free(tdb);
++
++ return 0;
++}
++
++/* lock the database. If we already have it locked then don't do anything */
++int tdb_writelock(TDB_CONTEXT *tdb)
++{
++ if (tdb == NULL) {
++#ifdef TDB_DEBUG
++ printf(&quot;tdb_writelock() called with null context\n&quot;);
++#endif
++ return -1;
++ }
++
++ return tdb_lock(tdb, -1);
++}
++
++/* unlock the database. */
++int tdb_writeunlock(TDB_CONTEXT *tdb)
++{
++ if (tdb == NULL) {
++#ifdef TDB_DEBUG
++ printf(&quot;tdb_writeunlock() called with null context\n&quot;);
++#endif
++ return -1;
++ }
++
++ return tdb_unlock(tdb, -1);
++}
++
++/* lock one hash chain. This is meant to be used to reduce locking
++ contention - it cannot guarantee how many records will be locked */
++int tdb_lockchain(TDB_CONTEXT *tdb, TDB_DATA key)
++{
++ if (tdb == NULL) {
++#ifdef TDB_DEBUG
++ printf(&quot;tdb_lockchain() called with null context\n&quot;);
++#endif
++ return -1;
++ }
++
++ return tdb_lock(tdb, BUCKET(tdb_hash(&amp;key)));
++}
++
++
++/* unlock one hash chain */
++int tdb_unlockchain(TDB_CONTEXT *tdb, TDB_DATA key)
++{
++ if (tdb == NULL) {
++#ifdef TDB_DEBUG
++ printf(&quot;tdb_unlockchain() called with null context\n&quot;);
++#endif
++ return -1;
++ }
++
++ return tdb_unlock(tdb, BUCKET(tdb_hash(&amp;key)));
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/pppd/tdb.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1ppppppdtdbh">Added: drakx/trunk/mdk-stage1/ppp/pppd/tdb.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/tdb.h (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/tdb.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,77 @@
++#define STANDALONE 1
++/*
++ * Database functions
++ * Copyright (C) Andrew Tridgell 1999
++ *
++ * Redistribution and use in source and binary forms are permitted
++ * provided that the above copyright notice and this paragraph are
++ * duplicated in all such forms AND provided that this software or
++ * any derived work is only used as part of the PPP daemon (pppd)
++ * and related utilities.
++ * The name of the author may not be used to endorse or promote products
++ * derived from this software without specific prior written permission.
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
++ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
++ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++ *
++ * Note: this software is also available under the Gnu Public License
++ * version 2 or later.
++ */
++
++typedef unsigned tdb_len;
++typedef unsigned tdb_off;
++
++#define TDB_MAGIC_FOOD &quot;TDB file\n&quot;
++
++/* this is stored at the front of every database */
++struct tdb_header {
++ char magic_food[32]; /* for /etc/magic */
++ unsigned version; /* version of the code */
++ unsigned hash_size; /* number of hash entries */
++};
++
++typedef struct {
++ char *dptr;
++ size_t dsize;
++} TDB_DATA;
++
++/* this is the context structure that is returned from a db open */
++typedef struct {
++ char *name; /* the name of the database */
++ void *map_ptr; /* where it is currently mapped */
++ int fd; /* open file descriptor for the database */
++ tdb_len map_size; /* how much space has been mapped */
++ int read_only; /* opened read-only */
++ int *locked; /* set if we have a chain locked */
++ int ecode; /* error code for last tdb error */
++ struct tdb_header header; /* a cached copy of the header */
++} TDB_CONTEXT;
++
++/* flags to tdb_store() */
++#define TDB_REPLACE 1
++#define TDB_INSERT 2
++
++/* flags for tdb_open() */
++#define TDB_CLEAR_IF_FIRST 1
++
++/* error codes */
++enum TDB_ERROR {TDB_SUCCESS=0, TDB_ERR_CORRUPT, TDB_ERR_IO, TDB_ERR_LOCK,
++ TDB_ERR_OOM, TDB_ERR_EXISTS};
++
++#if STANDALONE
++TDB_CONTEXT *tdb_open(char *name, int hash_size, int tdb_flags,
++ int open_flags, mode_t mode);
++char *tdb_error(TDB_CONTEXT *tdb);
++int tdb_writelock(TDB_CONTEXT *tdb);
++int tdb_writeunlock(TDB_CONTEXT *tdb);
++TDB_DATA tdb_fetch(TDB_CONTEXT *tdb, TDB_DATA key);
++int tdb_delete(TDB_CONTEXT *tdb, TDB_DATA key);
++int tdb_store(TDB_CONTEXT *tdb, TDB_DATA key, TDB_DATA dbuf, int flag);
++int tdb_close(TDB_CONTEXT *tdb);
++TDB_DATA tdb_firstkey(TDB_CONTEXT *tdb);
++TDB_DATA tdb_nextkey(TDB_CONTEXT *tdb, TDB_DATA key);
++int tdb_traverse(TDB_CONTEXT *tdb,
++ int (*fn)(TDB_CONTEXT *tdb, TDB_DATA key, TDB_DATA dbuf, void *state),
++ void *state);
++int tdb_exists(TDB_CONTEXT *tdb, TDB_DATA key);
++#endif
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/pppd/tdb.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1ppppppdttyc">Added: drakx/trunk/mdk-stage1/ppp/pppd/tty.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/tty.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/tty.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,1164 @@
++/*
++ * tty.c - code for handling serial ports in pppd.
++ *
++ * Copyright (C) 2000 Paul Mackerras.
++ * All rights reserved.
++ *
++ * Portions Copyright (c) 1989 Carnegie Mellon University.
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms are permitted
++ * provided that the above copyright notice and this paragraph are
++ * duplicated in all such forms and that any documentation,
++ * advertising materials, and other materials related to such
++ * distribution and use acknowledge that the software was developed
++ * by Carnegie Mellon University. The name of the
++ * University may not be used to endorse or promote products derived
++ * from this software without specific prior written permission.
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
++ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
++ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++ */
++
++#define RCSID &quot;$Id: tty.c 195720 2001-06-11 11:44:34Z gc $&quot;
++
++#include &lt;stdio.h&gt;
++#include &lt;ctype.h&gt;
++#include &lt;stdlib.h&gt;
++#include &lt;string.h&gt;
++#include &lt;unistd.h&gt;
++#include &lt;signal.h&gt;
++#include &lt;errno.h&gt;
++#include &lt;fcntl.h&gt;
++#include &lt;syslog.h&gt;
++#include &lt;netdb.h&gt;
++#include &lt;utmp.h&gt;
++#include &lt;pwd.h&gt;
++#include &lt;setjmp.h&gt;
++#include &lt;sys/param.h&gt;
++#include &lt;sys/types.h&gt;
++#include &lt;sys/wait.h&gt;
++#include &lt;sys/time.h&gt;
++#include &lt;sys/resource.h&gt;
++#include &lt;sys/stat.h&gt;
++#include &lt;sys/socket.h&gt;
++#include &lt;netinet/in.h&gt;
++#include &lt;arpa/inet.h&gt;
++
++#include &quot;pppd.h&quot;
++#include &quot;fsm.h&quot;
++#include &quot;lcp.h&quot;
++
++void tty_process_extra_options __P((void));
++void tty_check_options __P((void));
++int connect_tty __P((void));
++void disconnect_tty __P((void));
++void tty_close_fds __P((void));
++void cleanup_tty __P((void));
++void tty_do_send_config __P((int, u_int32_t, int, int));
++
++static int setdevname __P((char *, char **, int));
++static int setspeed __P((char *, char **, int));
++static int setxonxoff __P((char **));
++static int setescape __P((char **));
++static void printescape __P((option_t *, void (*)(void *, char *,...),void *));
++static void finish_tty __P((void));
++static int start_charshunt __P((int, int));
++static void stop_charshunt __P((void *, int));
++static void charshunt_done __P((void *));
++static void charshunt __P((int, int, char *));
++static int record_write __P((FILE *, int code, u_char *buf, int nb,
++ struct timeval *));
++static int open_socket __P((char *));
++static void maybe_relock __P((void *, int));
++
++static int pty_master; /* fd for master side of pty */
++static int pty_slave; /* fd for slave side of pty */
++static int real_ttyfd; /* fd for actual serial port (not pty) */
++static int ttyfd; /* Serial port file descriptor */
++static char speed_str[16]; /* Serial port speed as string */
++
++mode_t tty_mode = (mode_t)-1; /* Original access permissions to tty */
++int baud_rate; /* Actual bits/second for serial device */
++char *callback_script; /* script for doing callback */
++int charshunt_pid; /* Process ID for charshunt */
++int locked; /* lock() has succeeded */
++struct stat devstat; /* result of stat() on devnam */
++
++/* option variables */
++int crtscts = 0; /* Use hardware flow control */
++bool modem = 1; /* Use modem control lines */
++int inspeed = 0; /* Input/Output speed requested */
++bool lockflag = 0; /* Create lock file to lock the serial dev */
++char *initializer = NULL; /* Script to initialize physical link */
++char *connect_script = NULL; /* Script to establish physical link */
++char *disconnect_script = NULL; /* Script to disestablish physical link */
++char *welcomer = NULL; /* Script to run after phys link estab. */
++char *ptycommand = NULL; /* Command to run on other side of pty */
++bool notty = 0; /* Stdin/out is not a tty */
++char *record_file = NULL; /* File to record chars sent/received */
++int max_data_rate; /* max bytes/sec through charshunt */
++bool sync_serial = 0; /* Device is synchronous serial device */
++char *pty_socket = NULL; /* Socket to connect to pty */
++int using_pty = 0; /* we're allocating a pty as the device */
++
++extern uid_t uid;
++extern int kill_link;
++
++/* XXX */
++extern int privopen; /* don't lock, open device as root */
++
++u_int32_t xmit_accm[8]; /* extended transmit ACCM */
++
++/* option descriptors */
++option_t tty_options[] = {
++ /* device name must be first, or change connect_tty() below! */
++ { &quot;device name&quot;, o_wild, (void *) &amp;setdevname,
++ &quot;Serial port device name&quot;,
++ OPT_DEVNAM | OPT_PRIVFIX | OPT_NOARG | OPT_A2STRVAL | OPT_STATIC,
++ devnam},
++
++ { &quot;tty speed&quot;, o_wild, (void *) &amp;setspeed,
++ &quot;Baud rate for serial port&quot;,
++ OPT_PRIO | OPT_NOARG | OPT_A2STRVAL | OPT_STATIC, speed_str },
++
++ { &quot;lock&quot;, o_bool, &amp;lockflag,
++ &quot;Lock serial device with UUCP-style lock file&quot;, OPT_PRIO | 1 },
++ { &quot;nolock&quot;, o_bool, &amp;lockflag,
++ &quot;Don't lock serial device&quot;, OPT_PRIOSUB | OPT_PRIV },
++
++ { &quot;init&quot;, o_string, &amp;initializer,
++ &quot;A program to initialize the device&quot;, OPT_PRIO | OPT_PRIVFIX },
++
++ { &quot;connect&quot;, o_string, &amp;connect_script,
++ &quot;A program to set up a connection&quot;, OPT_PRIO | OPT_PRIVFIX },
++
++ { &quot;disconnect&quot;, o_string, &amp;disconnect_script,
++ &quot;Program to disconnect serial device&quot;, OPT_PRIO | OPT_PRIVFIX },
++
++ { &quot;welcome&quot;, o_string, &amp;welcomer,
++ &quot;Script to welcome client&quot;, OPT_PRIO | OPT_PRIVFIX },
++
++ { &quot;pty&quot;, o_string, &amp;ptycommand,
++ &quot;Script to run on pseudo-tty master side&quot;,
++ OPT_PRIO | OPT_PRIVFIX | OPT_DEVNAM },
++
++ { &quot;notty&quot;, o_bool, &amp;notty,
++ &quot;Input/output is not a tty&quot;, OPT_DEVNAM | 1 },
++
++ { &quot;socket&quot;, o_string, &amp;pty_socket,
++ &quot;Send and receive over socket, arg is host:port&quot;,
++ OPT_PRIO | OPT_DEVNAM },
++
++ { &quot;record&quot;, o_string, &amp;record_file,
++ &quot;Record characters sent/received to file&quot;, OPT_PRIO },
++
++ { &quot;crtscts&quot;, o_int, &amp;crtscts,
++ &quot;Set hardware (RTS/CTS) flow control&quot;,
++ OPT_PRIO | OPT_NOARG | OPT_VAL(1) },
++ { &quot;cdtrcts&quot;, o_int, &amp;crtscts,
++ &quot;Set alternate hardware (DTR/CTS) flow control&quot;,
++ OPT_PRIOSUB | OPT_NOARG | OPT_VAL(2) },
++ { &quot;nocrtscts&quot;, o_int, &amp;crtscts,
++ &quot;Disable hardware flow control&quot;,
++ OPT_PRIOSUB | OPT_NOARG | OPT_VAL(-1) },
++ { &quot;-crtscts&quot;, o_int, &amp;crtscts,
++ &quot;Disable hardware flow control&quot;,
++ OPT_PRIOSUB | OPT_ALIAS | OPT_NOARG | OPT_VAL(-1) },
++ { &quot;nocdtrcts&quot;, o_int, &amp;crtscts,
++ &quot;Disable hardware flow control&quot;,
++ OPT_PRIOSUB | OPT_ALIAS | OPT_NOARG | OPT_VAL(-1) },
++ { &quot;xonxoff&quot;, o_special_noarg, (void *)setxonxoff,
++ &quot;Set software (XON/XOFF) flow control&quot;, OPT_PRIOSUB },
++
++ { &quot;modem&quot;, o_bool, &amp;modem,
++ &quot;Use modem control lines&quot;, OPT_PRIO | 1 },
++ { &quot;local&quot;, o_bool, &amp;modem,
++ &quot;Don't use modem control lines&quot;, OPT_PRIOSUB | 0 },
++
++ { &quot;sync&quot;, o_bool, &amp;sync_serial,
++ &quot;Use synchronous HDLC serial encoding&quot;, 1 },
++
++ { &quot;datarate&quot;, o_int, &amp;max_data_rate,
++ &quot;Maximum data rate in bytes/sec (with pty, notty or record option)&quot;,
++ OPT_PRIO },
++
++ { &quot;escape&quot;, o_special, (void *)setescape,
++ &quot;List of character codes to escape on transmission&quot;,
++ OPT_A2PRINTER, (void *)printescape },
++
++ { NULL }
++};
++
++
++struct channel tty_channel = {
++ tty_options,
++ &amp;tty_process_extra_options,
++ &amp;tty_check_options,
++ &amp;connect_tty,
++ &amp;disconnect_tty,
++ &amp;tty_establish_ppp,
++ &amp;tty_disestablish_ppp,
++ &amp;tty_do_send_config,
++ &amp;tty_recv_config,
++ &amp;cleanup_tty,
++ &amp;tty_close_fds
++};
++
++/*
++ * setspeed - Set the serial port baud rate.
++ * If doit is 0, the call is to check whether this option is
++ * potentially a speed value.
++ */
++static int
++setspeed(arg, argv, doit)
++ char *arg;
++ char **argv;
++ int doit;
++{
++ char *ptr;
++ int spd;
++
++ spd = strtol(arg, &amp;ptr, 0);
++ if (ptr == arg || *ptr != 0 || spd == 0)
++ return 0;
++ if (doit) {
++ inspeed = spd;
++ slprintf(speed_str, sizeof(speed_str), &quot;%d&quot;, spd);
++ }
++ return 1;
++}
++
++
++/*
++ * setdevname - Set the device name.
++ * If doit is 0, the call is to check whether this option is
++ * potentially a device name.
++ */
++static int
++setdevname(cp, argv, doit)
++ char *cp;
++ char **argv;
++ int doit;
++{
++ struct stat statbuf;
++ char dev[MAXPATHLEN];
++
++ if (*cp == 0)
++ return 0;
++
++ if (strncmp(&quot;/dev/&quot;, cp, 5) != 0) {
++ strlcpy(dev, &quot;/dev/&quot;, sizeof(dev));
++ strlcat(dev, cp, sizeof(dev));
++ cp = dev;
++ }
++
++ /*
++ * Check if there is a character device by this name.
++ */
++ if (stat(cp, &amp;statbuf) &lt; 0) {
++ if (!doit)
++ return errno != ENOENT;
++ option_error(&quot;Couldn't stat %s: %m&quot;, cp);
++ return 0;
++ }
++ if (!S_ISCHR(statbuf.st_mode)) {
++ if (doit)
++ option_error(&quot;%s is not a character device&quot;, cp);
++ return 0;
++ }
++
++ if (doit) {
++ strlcpy(devnam, cp, sizeof(devnam));
++ devstat = statbuf;
++ default_device = 0;
++ }
++
++ return 1;
++}
++
++static int
++setxonxoff(argv)
++ char **argv;
++{
++ lcp_wantoptions[0].asyncmap |= 0x000A0000; /* escape ^S and ^Q */
++ lcp_wantoptions[0].neg_asyncmap = 1;
++
++ crtscts = -2;
++ return 1;
++}
++
++/*
++ * setescape - add chars to the set we escape on transmission.
++ */
++static int
++setescape(argv)
++ char **argv;
++{
++ int n, ret;
++ char *p, *endp;
++
++ p = *argv;
++ ret = 1;
++ while (*p) {
++ n = strtol(p, &amp;endp, 16);
++ if (p == endp) {
++ option_error(&quot;escape parameter contains invalid hex number '%s'&quot;,
++ p);
++ return 0;
++ }
++ p = endp;
++ if (n &lt; 0 || n == 0x5E || n &gt; 0xFF) {
++ option_error(&quot;can't escape character 0x%x&quot;, n);
++ ret = 0;
++ } else
++ xmit_accm[n &gt;&gt; 5] |= 1 &lt;&lt; (n &amp; 0x1F);
++ while (*p == ',' || *p == ' ')
++ ++p;
++ }
++ lcp_allowoptions[0].asyncmap = xmit_accm[0];
++ return ret;
++}
++
++static void
++printescape(opt, printer, arg)
++ option_t *opt;
++ void (*printer) __P((void *, char *, ...));
++ void *arg;
++{
++ int n;
++ int first = 1;
++
++ for (n = 0; n &lt; 256; ++n) {
++ if (n == 0x7d)
++ n += 2; /* skip 7d, 7e */
++ if (xmit_accm[n &gt;&gt; 5] &amp; (1 &lt;&lt; (n &amp; 0x1f))) {
++ if (!first)
++ printer(arg, &quot;,&quot;);
++ else
++ first = 0;
++ printer(arg, &quot;%x&quot;, n);
++ }
++ }
++ if (first)
++ printer(arg, &quot;oops # nothing escaped&quot;);
++}
++
++/*
++ * tty_init - do various tty-related initializations.
++ */
++void tty_init()
++{
++ add_notifier(&amp;pidchange, maybe_relock, 0);
++ the_channel = &amp;tty_channel;
++ xmit_accm[3] = 0x60000000;
++}
++
++/*
++ * tty_process_extra_options - work out which tty device we are using
++ * and read its options file.
++ */
++void tty_process_extra_options()
++{
++ using_pty = notty || ptycommand != NULL || pty_socket != NULL;
++ if (using_pty)
++ return;
++ if (default_device) {
++ char *p;
++ if (!isatty(0) || (p = ttyname(0)) == NULL) {
++ option_error(&quot;no device specified and stdin is not a tty&quot;);
++ exit(EXIT_OPTION_ERROR);
++ }
++ strlcpy(devnam, p, sizeof(devnam));
++ if (stat(devnam, &amp;devstat) &lt; 0)
++ fatal(&quot;Couldn't stat default device %s: %m&quot;, devnam);
++ }
++
++
++ /*
++ * Parse the tty options file.
++ * The per-tty options file should not change
++ * ptycommand, pty_socket, notty or devnam.
++ * options_for_tty doesn't override options set on the command line,
++ * except for some privileged options.
++ */
++ if (!options_for_tty())
++ exit(EXIT_OPTION_ERROR);
++}
++
++/*
++ * tty_check_options - do consistency checks on the options we were given.
++ */
++void
++tty_check_options()
++{
++ struct stat statbuf;
++ int fdflags;
++
++ if (demand &amp;&amp; connect_script == 0) {
++ option_error(&quot;connect script is required for demand-dialling\n&quot;);
++ exit(EXIT_OPTION_ERROR);
++ }
++ /* default holdoff to 0 if no connect script has been given */
++ if (connect_script == 0 &amp;&amp; !holdoff_specified)
++ holdoff = 0;
++
++ if (using_pty) {
++ if (!default_device) {
++ option_error(&quot;%s option precludes specifying device name&quot;,
++ notty? &quot;notty&quot;: &quot;pty&quot;);
++ exit(EXIT_OPTION_ERROR);
++ }
++ if (ptycommand != NULL &amp;&amp; notty) {
++ option_error(&quot;pty option is incompatible with notty option&quot;);
++ exit(EXIT_OPTION_ERROR);
++ }
++ if (pty_socket != NULL &amp;&amp; (ptycommand != NULL || notty)) {
++ option_error(&quot;socket option is incompatible with pty and notty&quot;);
++ exit(EXIT_OPTION_ERROR);
++ }
++ default_device = notty;
++ lockflag = 0;
++ modem = 0;
++ if (notty &amp;&amp; log_to_fd &lt;= 1)
++ log_to_fd = -1;
++ } else {
++ /*
++ * If the user has specified a device which is the same as
++ * the one on stdin, pretend they didn't specify any.
++ * If the device is already open read/write on stdin,
++ * we assume we don't need to lock it, and we can open it
++ * as root.
++ */
++ if (fstat(0, &amp;statbuf) &gt;= 0 &amp;&amp; S_ISCHR(statbuf.st_mode)
++ &amp;&amp; statbuf.st_rdev == devstat.st_rdev) {
++ default_device = 1;
++ fdflags = fcntl(0, F_GETFL);
++ if (fdflags != -1 &amp;&amp; (fdflags &amp; O_ACCMODE) == O_RDWR)
++ privopen = 1;
++ }
++ }
++ if (default_device)
++ nodetach = 1;
++
++ /*
++ * Don't send log messages to the serial port, it tends to
++ * confuse the peer. :-)
++ */
++ if (log_to_fd &gt;= 0 &amp;&amp; fstat(log_to_fd, &amp;statbuf) &gt;= 0
++ &amp;&amp; S_ISCHR(statbuf.st_mode) &amp;&amp; statbuf.st_rdev == devstat.st_rdev)
++ log_to_fd = -1;
++}
++
++/*
++ * connect_tty - get the serial port ready to start doing PPP.
++ * That is, open the serial port, set its speed and mode, and run
++ * the connector and/or welcomer.
++ */
++int connect_tty()
++{
++ char *connector;
++ int fdflags;
++ struct stat statbuf;
++ char numbuf[16];
++
++ /*
++ * Get a pty master/slave pair if the pty, notty, socket,
++ * or record options were specified.
++ */
++ strlcpy(ppp_devnam, devnam, sizeof(ppp_devnam));
++ pty_master = -1;
++ pty_slave = -1;
++ real_ttyfd = -1;
++ if (using_pty || record_file != NULL) {
++ if (!get_pty(&amp;pty_master, &amp;pty_slave, ppp_devnam, uid)) {
++ error(&quot;Couldn't allocate pseudo-tty&quot;);
++ status = EXIT_FATAL_ERROR;
++ return -1;
++ }
++ set_up_tty(pty_slave, 1);
++ }
++
++ /*
++ * Lock the device if we've been asked to.
++ */
++ status = EXIT_LOCK_FAILED;
++ if (lockflag &amp;&amp; !privopen) {
++ if (lock(devnam) &lt; 0)
++ return -1;
++ locked = 1;
++ }
++
++ /*
++ * Open the serial device and set it up to be the ppp interface.
++ * First we open it in non-blocking mode so we can set the
++ * various termios flags appropriately. If we aren't dialling
++ * out and we want to use the modem lines, we reopen it later
++ * in order to wait for the carrier detect signal from the modem.
++ */
++ hungup = 0;
++ kill_link = 0;
++ connector = doing_callback? callback_script: connect_script;
++ if (devnam[0] != 0) {
++ for (;;) {
++ /* If the user specified the device name, become the
++ user before opening it. */
++ int err, prio;
++
++ prio = privopen? OPRIO_ROOT: tty_options[0].priority;
++ if (prio &lt; OPRIO_ROOT)
++ seteuid(uid);
++ ttyfd = open(devnam, O_NONBLOCK | O_RDWR, 0);
++ err = errno;
++ if (prio &lt; OPRIO_ROOT)
++ seteuid(0);
++ if (ttyfd &gt;= 0)
++ break;
++ errno = err;
++ if (err != EINTR) {
++ error(&quot;Failed to open %s: %m&quot;, devnam);
++ status = EXIT_OPEN_FAILED;
++ }
++ if (!persist || err != EINTR)
++ return -1;
++ }
++ real_ttyfd = ttyfd;
++ if ((fdflags = fcntl(ttyfd, F_GETFL)) == -1
++ || fcntl(ttyfd, F_SETFL, fdflags &amp; ~O_NONBLOCK) &lt; 0)
++ warn(&quot;Couldn't reset non-blocking mode on device: %m&quot;);
++
++ /*
++ * Do the equivalent of `mesg n' to stop broadcast messages.
++ */
++ if (fstat(ttyfd, &amp;statbuf) &lt; 0
++ || fchmod(ttyfd, statbuf.st_mode &amp; ~(S_IWGRP | S_IWOTH)) &lt; 0) {
++ warn(&quot;Couldn't restrict write permissions to %s: %m&quot;, devnam);
++ } else
++ tty_mode = statbuf.st_mode;
++
++ /*
++ * Set line speed, flow control, etc.
++ * If we have a non-null connection or initializer script,
++ * on most systems we set CLOCAL for now so that we can talk
++ * to the modem before carrier comes up. But this has the
++ * side effect that we might miss it if CD drops before we
++ * get to clear CLOCAL below. On systems where we can talk
++ * successfully to the modem with CLOCAL clear and CD down,
++ * we could clear CLOCAL at this point.
++ */
++ set_up_tty(ttyfd, ((connector != NULL &amp;&amp; connector[0] != 0)
++ || initializer != NULL));
++ }
++
++ /*
++ * If the pty, socket, notty and/or record option was specified,
++ * start up the character shunt now.
++ */
++ status = EXIT_PTYCMD_FAILED;
++ if (ptycommand != NULL) {
++ if (record_file != NULL) {
++ int ipipe[2], opipe[2], ok;
++
++ if (pipe(ipipe) &lt; 0 || pipe(opipe) &lt; 0)
++ fatal(&quot;Couldn't create pipes for record option: %m&quot;);
++ ok = device_script(ptycommand, opipe[0], ipipe[1], 1) == 0
++ &amp;&amp; start_charshunt(ipipe[0], opipe[1]);
++ close(ipipe[0]);
++ close(ipipe[1]);
++ close(opipe[0]);
++ close(opipe[1]);
++ if (!ok)
++ return -1;
++ } else {
++ if (device_script(ptycommand, pty_master, pty_master, 1) &lt; 0)
++ return -1;
++ ttyfd = pty_slave;
++ close(pty_master);
++ pty_master = -1;
++ }
++ } else if (pty_socket != NULL) {
++ int fd = open_socket(pty_socket);
++ if (fd &lt; 0)
++ return -1;
++ if (!start_charshunt(fd, fd))
++ return -1;
++ } else if (notty) {
++ if (!start_charshunt(0, 1))
++ return -1;
++ } else if (record_file != NULL) {
++ if (!start_charshunt(ttyfd, ttyfd))
++ return -1;
++ }
++
++ /* run connection script */
++ if ((connector &amp;&amp; connector[0]) || initializer) {
++ if (real_ttyfd != -1) {
++ /* XXX do this if doing_callback == CALLBACK_DIALIN? */
++ if (!default_device &amp;&amp; modem) {
++ setdtr(real_ttyfd, 0); /* in case modem is off hook */
++ sleep(1);
++ setdtr(real_ttyfd, 1);
++ }
++ }
++
++ if (initializer &amp;&amp; initializer[0]) {
++ if (device_script(initializer, ttyfd, ttyfd, 0) &lt; 0) {
++ error(&quot;Initializer script failed&quot;);
++ status = EXIT_INIT_FAILED;
++ return -1;
++ }
++ if (kill_link) {
++ disconnect_tty();
++ return -1;
++ }
++ info(&quot;Serial port initialized.&quot;);
++ }
++
++ if (connector &amp;&amp; connector[0]) {
++ if (device_script(connector, ttyfd, ttyfd, 0) &lt; 0) {
++ error(&quot;Connect script failed&quot;);
++ status = EXIT_CONNECT_FAILED;
++ return -1;
++ }
++ if (kill_link) {
++ disconnect_tty();
++ return -1;
++ }
++ info(&quot;Serial connection established.&quot;);
++ }
++
++ /* set line speed, flow control, etc.;
++ clear CLOCAL if modem option */
++ if (real_ttyfd != -1)
++ set_up_tty(real_ttyfd, 0);
++
++ if (doing_callback == CALLBACK_DIALIN)
++ connector = NULL;
++ }
++
++ /* reopen tty if necessary to wait for carrier */
++ if (connector == NULL &amp;&amp; modem &amp;&amp; devnam[0] != 0) {
++ int i;
++ for (;;) {
++ if ((i = open(devnam, O_RDWR)) &gt;= 0)
++ break;
++ if (errno != EINTR) {
++ error(&quot;Failed to reopen %s: %m&quot;, devnam);
++ status = EXIT_OPEN_FAILED;
++ }
++ if (!persist || errno != EINTR || hungup || kill_link)
++ return -1;
++ }
++ close(i);
++ }
++
++ slprintf(numbuf, sizeof(numbuf), &quot;%d&quot;, baud_rate);
++ script_setenv(&quot;SPEED&quot;, numbuf, 0);
++
++ /* run welcome script, if any */
++ if (welcomer &amp;&amp; welcomer[0]) {
++ if (device_script(welcomer, ttyfd, ttyfd, 0) &lt; 0)
++ warn(&quot;Welcome script failed&quot;);
++ }
++
++ /*
++ * If we are initiating this connection, wait for a short
++ * time for something from the peer. This can avoid bouncing
++ * our packets off his tty before he has it set up.
++ */
++ if (connector != NULL || ptycommand != NULL)
++ listen_time = connect_delay;
++
++ return ttyfd;
++}
++
++
++void disconnect_tty()
++{
++ if (disconnect_script == NULL || hungup)
++ return;
++ if (real_ttyfd &gt;= 0)
++ set_up_tty(real_ttyfd, 1);
++ if (device_script(disconnect_script, ttyfd, ttyfd, 0) &lt; 0) {
++ warn(&quot;disconnect script failed&quot;);
++ } else {
++ info(&quot;Serial link disconnected.&quot;);
++ }
++}
++
++void tty_close_fds()
++{
++ if (pty_master &gt;= 0)
++ close(pty_master);
++ if (pty_slave &gt;= 0)
++ close(pty_slave);
++ if (real_ttyfd &gt;= 0) {
++ close(real_ttyfd);
++ real_ttyfd = -1;
++ }
++ /* N.B. ttyfd will == either pty_slave or real_ttyfd */
++}
++
++void cleanup_tty()
++{
++ if (real_ttyfd &gt;= 0)
++ finish_tty();
++ tty_close_fds();
++ if (locked) {
++ unlock();
++ locked = 0;
++ }
++}
++
++/*
++ * tty_do_send_config - set transmit-side PPP configuration.
++ * We set the extended transmit ACCM here as well.
++ */
++void
++tty_do_send_config(mtu, accm, pcomp, accomp)
++ int mtu;
++ u_int32_t accm;
++ int pcomp, accomp;
++{
++ tty_set_xaccm(xmit_accm);
++ tty_send_config(mtu, accm, pcomp, accomp);
++}
++
++/*
++ * finish_tty - restore the terminal device to its original settings
++ */
++static void
++finish_tty()
++{
++ /* drop dtr to hang up */
++ if (!default_device &amp;&amp; modem) {
++ setdtr(real_ttyfd, 0);
++ /*
++ * This sleep is in case the serial port has CLOCAL set by default,
++ * and consequently will reassert DTR when we close the device.
++ */
++ sleep(1);
++ }
++
++ restore_tty(real_ttyfd);
++
++ if (tty_mode != (mode_t) -1) {
++ if (fchmod(real_ttyfd, tty_mode) != 0) {
++ /* XXX if devnam is a symlink, this will change the link */
++ chmod(devnam, tty_mode);
++ }
++ }
++
++ close(real_ttyfd);
++ real_ttyfd = -1;
++}
++
++/*
++ * maybe_relock - our PID has changed, maybe update the lock file.
++ */
++static void
++maybe_relock(arg, pid)
++ void *arg;
++ int pid;
++{
++ if (locked)
++ relock(pid);
++}
++
++/*
++ * open_socket - establish a stream socket connection to the nominated
++ * host and port.
++ */
++static int
++open_socket(dest)
++ char *dest;
++{
++ char *sep, *endp = NULL;
++ int sock, port = -1;
++ u_int32_t host;
++ struct hostent *hent;
++ struct sockaddr_in sad;
++
++ /* parse host:port and resolve host to an IP address */
++ sep = strchr(dest, ':');
++ if (sep != NULL)
++ port = strtol(sep+1, &amp;endp, 10);
++ if (port &lt; 0 || endp == sep+1 || sep == dest) {
++ error(&quot;Can't parse host:port for socket destination&quot;);
++ return -1;
++ }
++ *sep = 0;
++ host = inet_addr(dest);
++ if (host == (u_int32_t) -1) {
++ hent = gethostbyname(dest);
++ if (hent == NULL) {
++ error(&quot;%s: unknown host in socket option&quot;, dest);
++ *sep = ':';
++ return -1;
++ }
++ host = *(u_int32_t *)(hent-&gt;h_addr_list[0]);
++ }
++ *sep = ':';
++
++ /* get a socket and connect it to the other end */
++ sock = socket(PF_INET, SOCK_STREAM, 0);
++ if (sock &lt; 0) {
++ error(&quot;Can't create socket: %m&quot;);
++ return -1;
++ }
++ memset(&amp;sad, 0, sizeof(sad));
++ sad.sin_family = AF_INET;
++ sad.sin_port = htons(port);
++ sad.sin_addr.s_addr = host;
++ if (connect(sock, (struct sockaddr *)&amp;sad, sizeof(sad)) &lt; 0) {
++ error(&quot;Can't connect to %s: %m&quot;, dest);
++ close(sock);
++ return -1;
++ }
++
++ return sock;
++}
++
++
++/*
++ * start_charshunt - create a child process to run the character shunt.
++ */
++static int
++start_charshunt(ifd, ofd)
++ int ifd, ofd;
++{
++ int cpid;
++
++ cpid = fork();
++ if (cpid == -1) {
++ error(&quot;Can't fork process for character shunt: %m&quot;);
++ return 0;
++ }
++ if (cpid == 0) {
++ /* child */
++ close(pty_slave);
++ setuid(uid);
++ if (getuid() != uid)
++ fatal(&quot;setuid failed&quot;);
++ setgid(getgid());
++ if (!nodetach)
++ log_to_fd = -1;
++ charshunt(ifd, ofd, record_file);
++ exit(0);
++ }
++ charshunt_pid = cpid;
++ add_notifier(&amp;sigreceived, stop_charshunt, 0);
++ close(pty_master);
++ pty_master = -1;
++ ttyfd = pty_slave;
++ record_child(cpid, &quot;pppd (charshunt)&quot;, charshunt_done, NULL);
++ return 1;
++}
++
++static void
++charshunt_done(arg)
++ void *arg;
++{
++ charshunt_pid = 0;
++}
++
++static void
++stop_charshunt(arg, sig)
++ void *arg;
++ int sig;
++{
++ if (charshunt_pid)
++ kill(charshunt_pid, (sig == SIGINT? sig: SIGTERM));
++}
++
++/*
++ * charshunt - the character shunt, which passes characters between
++ * the pty master side and the serial port (or stdin/stdout).
++ * This runs as the user (not as root).
++ * (We assume ofd &gt;= ifd which is true the way this gets called. :-).
++ */
++static void
++charshunt(ifd, ofd, record_file)
++ int ifd, ofd;
++ char *record_file;
++{
++ int n, nfds;
++ fd_set ready, writey;
++ u_char *ibufp, *obufp;
++ int nibuf, nobuf;
++ int flags;
++ int pty_readable, stdin_readable;
++ struct timeval lasttime;
++ FILE *recordf = NULL;
++ int ilevel, olevel, max_level;
++ struct timeval levelt, tout, *top;
++ extern u_char inpacket_buf[];
++
++ /*
++ * Reset signal handlers.
++ */
++ signal(SIGHUP, SIG_IGN); /* Hangup */
++ signal(SIGINT, SIG_DFL); /* Interrupt */
++ signal(SIGTERM, SIG_DFL); /* Terminate */
++ signal(SIGCHLD, SIG_DFL);
++ signal(SIGUSR1, SIG_DFL);
++ signal(SIGUSR2, SIG_DFL);
++ signal(SIGABRT, SIG_DFL);
++ signal(SIGALRM, SIG_DFL);
++ signal(SIGFPE, SIG_DFL);
++ signal(SIGILL, SIG_DFL);
++ signal(SIGPIPE, SIG_DFL);
++ signal(SIGQUIT, SIG_DFL);
++ signal(SIGSEGV, SIG_DFL);
++#ifdef SIGBUS
++ signal(SIGBUS, SIG_DFL);
++#endif
++#ifdef SIGEMT
++ signal(SIGEMT, SIG_DFL);
++#endif
++#ifdef SIGPOLL
++ signal(SIGPOLL, SIG_DFL);
++#endif
++#ifdef SIGPROF
++ signal(SIGPROF, SIG_DFL);
++#endif
++#ifdef SIGSYS
++ signal(SIGSYS, SIG_DFL);
++#endif
++#ifdef SIGTRAP
++ signal(SIGTRAP, SIG_DFL);
++#endif
++#ifdef SIGVTALRM
++ signal(SIGVTALRM, SIG_DFL);
++#endif
++#ifdef SIGXCPU
++ signal(SIGXCPU, SIG_DFL);
++#endif
++#ifdef SIGXFSZ
++ signal(SIGXFSZ, SIG_DFL);
++#endif
++
++ /*
++ * Open the record file if required.
++ */
++ if (record_file != NULL) {
++ recordf = fopen(record_file, &quot;a&quot;);
++ if (recordf == NULL)
++ error(&quot;Couldn't create record file %s: %m&quot;, record_file);
++ }
++
++ /* set all the fds to non-blocking mode */
++ flags = fcntl(pty_master, F_GETFL);
++ if (flags == -1
++ || fcntl(pty_master, F_SETFL, flags | O_NONBLOCK) == -1)
++ warn(&quot;couldn't set pty master to nonblock: %m&quot;);
++ flags = fcntl(ifd, F_GETFL);
++ if (flags == -1
++ || fcntl(ifd, F_SETFL, flags | O_NONBLOCK) == -1)
++ warn(&quot;couldn't set %s to nonblock: %m&quot;, (ifd==0? &quot;stdin&quot;: &quot;tty&quot;));
++ if (ofd != ifd) {
++ flags = fcntl(ofd, F_GETFL);
++ if (flags == -1
++ || fcntl(ofd, F_SETFL, flags | O_NONBLOCK) == -1)
++ warn(&quot;couldn't set stdout to nonblock: %m&quot;);
++ }
++
++ nibuf = nobuf = 0;
++ ibufp = obufp = NULL;
++ pty_readable = stdin_readable = 1;
++
++ ilevel = olevel = 0;
++ gettimeofday(&amp;levelt, NULL);
++ if (max_data_rate) {
++ max_level = max_data_rate / 10;
++ if (max_level &lt; 100)
++ max_level = 100;
++ } else
++ max_level = PPP_MRU + PPP_HDRLEN + 1;
++
++ nfds = (ofd &gt; pty_master? ofd: pty_master) + 1;
++ if (recordf != NULL) {
++ gettimeofday(&amp;lasttime, NULL);
++ putc(7, recordf); /* put start marker */
++ putc(lasttime.tv_sec &gt;&gt; 24, recordf);
++ putc(lasttime.tv_sec &gt;&gt; 16, recordf);
++ putc(lasttime.tv_sec &gt;&gt; 8, recordf);
++ putc(lasttime.tv_sec, recordf);
++ lasttime.tv_usec = 0;
++ }
++
++ while (nibuf != 0 || nobuf != 0 || pty_readable || stdin_readable) {
++ top = 0;
++ tout.tv_sec = 0;
++ tout.tv_usec = 10000;
++ FD_ZERO(&amp;ready);
++ FD_ZERO(&amp;writey);
++ if (nibuf != 0) {
++ if (ilevel &gt;= max_level)
++ top = &amp;tout;
++ else
++ FD_SET(pty_master, &amp;writey);
++ } else if (stdin_readable)
++ FD_SET(ifd, &amp;ready);
++ if (nobuf != 0) {
++ if (olevel &gt;= max_level)
++ top = &amp;tout;
++ else
++ FD_SET(ofd, &amp;writey);
++ } else if (pty_readable)
++ FD_SET(pty_master, &amp;ready);
++ if (select(nfds, &amp;ready, &amp;writey, NULL, top) &lt; 0) {
++ if (errno != EINTR)
++ fatal(&quot;select&quot;);
++ continue;
++ }
++ if (max_data_rate) {
++ double dt;
++ int nbt;
++ struct timeval now;
++
++ gettimeofday(&amp;now, NULL);
++ dt = (now.tv_sec - levelt.tv_sec
++ + (now.tv_usec - levelt.tv_usec) / 1e6);
++ nbt = (int)(dt * max_data_rate);
++ ilevel = (nbt &lt; 0 || nbt &gt; ilevel)? 0: ilevel - nbt;
++ olevel = (nbt &lt; 0 || nbt &gt; olevel)? 0: olevel - nbt;
++ levelt = now;
++ } else
++ ilevel = olevel = 0;
++ if (FD_ISSET(ifd, &amp;ready)) {
++ ibufp = inpacket_buf;
++ nibuf = read(ifd, ibufp, PPP_MRU + PPP_HDRLEN);
++ if (nibuf &lt; 0 &amp;&amp; errno == EIO)
++ nibuf = 0;
++ if (nibuf &lt; 0) {
++ if (!(errno == EINTR || errno == EAGAIN)) {
++ error(&quot;Error reading standard input: %m&quot;);
++ break;
++ }
++ nibuf = 0;
++ } else if (nibuf == 0) {
++ /* end of file from stdin */
++ stdin_readable = 0;
++ /* do a 0-length write, hopefully this will generate
++ an EOF (hangup) on the slave side. */
++ write(pty_master, inpacket_buf, 0);
++ if (recordf)
++ if (!record_write(recordf, 4, NULL, 0, &amp;lasttime))
++ recordf = NULL;
++ } else {
++ FD_SET(pty_master, &amp;writey);
++ if (recordf)
++ if (!record_write(recordf, 2, ibufp, nibuf, &amp;lasttime))
++ recordf = NULL;
++ }
++ }
++ if (FD_ISSET(pty_master, &amp;ready)) {
++ obufp = outpacket_buf;
++ nobuf = read(pty_master, obufp, PPP_MRU + PPP_HDRLEN);
++ if (nobuf &lt; 0 &amp;&amp; errno == EIO)
++ nobuf = 0;
++ if (nobuf &lt; 0) {
++ if (!(errno == EINTR || errno == EAGAIN)) {
++ error(&quot;Error reading pseudo-tty master: %m&quot;);
++ break;
++ }
++ nobuf = 0;
++ } else if (nobuf == 0) {
++ /* end of file from the pty - slave side has closed */
++ pty_readable = 0;
++ stdin_readable = 0; /* pty is not writable now */
++ nibuf = 0;
++ close(ofd);
++ if (recordf)
++ if (!record_write(recordf, 3, NULL, 0, &amp;lasttime))
++ recordf = NULL;
++ } else {
++ FD_SET(ofd, &amp;writey);
++ if (recordf)
++ if (!record_write(recordf, 1, obufp, nobuf, &amp;lasttime))
++ recordf = NULL;
++ }
++ }
++ if (FD_ISSET(ofd, &amp;writey)) {
++ n = nobuf;
++ if (olevel + n &gt; max_level)
++ n = max_level - olevel;
++ n = write(ofd, obufp, n);
++ if (n &lt; 0) {
++ if (errno == EIO) {
++ pty_readable = 0;
++ nobuf = 0;
++ } else if (errno != EAGAIN &amp;&amp; errno != EINTR) {
++ error(&quot;Error writing standard output: %m&quot;);
++ break;
++ }
++ } else {
++ obufp += n;
++ nobuf -= n;
++ olevel += n;
++ }
++ }
++ if (FD_ISSET(pty_master, &amp;writey)) {
++ n = nibuf;
++ if (ilevel + n &gt; max_level)
++ n = max_level - ilevel;
++ n = write(pty_master, ibufp, n);
++ if (n &lt; 0) {
++ if (errno == EIO) {
++ stdin_readable = 0;
++ nibuf = 0;
++ } else if (errno != EAGAIN &amp;&amp; errno != EINTR) {
++ error(&quot;Error writing pseudo-tty master: %m&quot;);
++ break;
++ }
++ } else {
++ ibufp += n;
++ nibuf -= n;
++ ilevel += n;
++ }
++ }
++ }
++ exit(0);
++}
++
++static int
++record_write(f, code, buf, nb, tp)
++ FILE *f;
++ int code;
++ u_char *buf;
++ int nb;
++ struct timeval *tp;
++{
++ struct timeval now;
++ int diff;
++
++ gettimeofday(&amp;now, NULL);
++ now.tv_usec /= 100000; /* actually 1/10 s, not usec now */
++ diff = (now.tv_sec - tp-&gt;tv_sec) * 10 + (now.tv_usec - tp-&gt;tv_usec);
++ if (diff &gt; 0) {
++ if (diff &gt; 255) {
++ putc(5, f);
++ putc(diff &gt;&gt; 24, f);
++ putc(diff &gt;&gt; 16, f);
++ putc(diff &gt;&gt; 8, f);
++ putc(diff, f);
++ } else {
++ putc(6, f);
++ putc(diff, f);
++ }
++ *tp = now;
++ }
++ putc(code, f);
++ if (buf != NULL) {
++ putc(nb &gt;&gt; 8, f);
++ putc(nb, f);
++ fwrite(buf, nb, 1, f);
++ }
++ fflush(f);
++ if (ferror(f)) {
++ error(&quot;Error writing record file: %m&quot;);
++ return 0;
++ }
++ return 1;
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/pppd/tty.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1ppppppdupapc">Added: drakx/trunk/mdk-stage1/ppp/pppd/upap.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/upap.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/upap.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,640 @@
++/*
++ * upap.c - User/Password Authentication Protocol.
++ *
++ * Copyright (c) 1989 Carnegie Mellon University.
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms are permitted
++ * provided that the above copyright notice and this paragraph are
++ * duplicated in all such forms and that any documentation,
++ * advertising materials, and other materials related to such
++ * distribution and use acknowledge that the software was developed
++ * by Carnegie Mellon University. The name of the
++ * University may not be used to endorse or promote products derived
++ * from this software without specific prior written permission.
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
++ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
++ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++ */
++
++#define RCSID &quot;$Id: upap.c 195720 2001-06-11 11:44:34Z gc $&quot;
++
++/*
++ * TODO:
++ */
++
++#include &lt;stdio.h&gt;
++#include &lt;string.h&gt;
++
++#include &quot;pppd.h&quot;
++#include &quot;upap.h&quot;
++
++static const char rcsid[] = RCSID;
++
++static bool hide_password = 1;
++
++/*
++ * Command-line options.
++ */
++static option_t pap_option_list[] = {
++ { &quot;hide-password&quot;, o_bool, &amp;hide_password,
++ &quot;Don't output passwords to log&quot;, OPT_PRIO | 1 },
++ { &quot;show-password&quot;, o_bool, &amp;hide_password,
++ &quot;Show password string in debug log messages&quot;, OPT_PRIOSUB | 0 },
++
++ { &quot;pap-restart&quot;, o_int, &amp;upap[0].us_timeouttime,
++ &quot;Set retransmit timeout for PAP&quot;, OPT_PRIO },
++ { &quot;pap-max-authreq&quot;, o_int, &amp;upap[0].us_maxtransmits,
++ &quot;Set max number of transmissions for auth-reqs&quot;, OPT_PRIO },
++ { &quot;pap-timeout&quot;, o_int, &amp;upap[0].us_reqtimeout,
++ &quot;Set time limit for peer PAP authentication&quot;, OPT_PRIO },
++
++ { NULL }
++};
++
++/*
++ * Protocol entry points.
++ */
++static void upap_init __P((int));
++static void upap_lowerup __P((int));
++static void upap_lowerdown __P((int));
++static void upap_input __P((int, u_char *, int));
++static void upap_protrej __P((int));
++static int upap_printpkt __P((u_char *, int,
++ void (*) __P((void *, char *, ...)), void *));
++
++struct protent pap_protent = {
++ PPP_PAP,
++ upap_init,
++ upap_input,
++ upap_protrej,
++ upap_lowerup,
++ upap_lowerdown,
++ NULL,
++ NULL,
++ upap_printpkt,
++ NULL,
++ 1,
++ &quot;PAP&quot;,
++ NULL,
++ pap_option_list,
++ NULL,
++ NULL,
++ NULL
++};
++
++upap_state upap[NUM_PPP]; /* UPAP state; one for each unit */
++
++static void upap_timeout __P((void *));
++static void upap_reqtimeout __P((void *));
++static void upap_rauthreq __P((upap_state *, u_char *, int, int));
++static void upap_rauthack __P((upap_state *, u_char *, int, int));
++static void upap_rauthnak __P((upap_state *, u_char *, int, int));
++static void upap_sauthreq __P((upap_state *));
++static void upap_sresp __P((upap_state *, int, int, char *, int));
++
++
++/*
++ * upap_init - Initialize a UPAP unit.
++ */
++static void
++upap_init(unit)
++ int unit;
++{
++ upap_state *u = &amp;upap[unit];
++
++ u-&gt;us_unit = unit;
++ u-&gt;us_user = NULL;
++ u-&gt;us_userlen = 0;
++ u-&gt;us_passwd = NULL;
++ u-&gt;us_passwdlen = 0;
++ u-&gt;us_clientstate = UPAPCS_INITIAL;
++ u-&gt;us_serverstate = UPAPSS_INITIAL;
++ u-&gt;us_id = 0;
++ u-&gt;us_timeouttime = UPAP_DEFTIMEOUT;
++ u-&gt;us_maxtransmits = 10;
++ u-&gt;us_reqtimeout = UPAP_DEFREQTIME;
++}
++
++
++/*
++ * upap_authwithpeer - Authenticate us with our peer (start client).
++ *
++ * Set new state and send authenticate's.
++ */
++void
++upap_authwithpeer(unit, user, password)
++ int unit;
++ char *user, *password;
++{
++ upap_state *u = &amp;upap[unit];
++
++ /* Save the username and password we're given */
++ u-&gt;us_user = user;
++ u-&gt;us_userlen = strlen(user);
++ u-&gt;us_passwd = password;
++ u-&gt;us_passwdlen = strlen(password);
++ u-&gt;us_transmits = 0;
++
++ /* Lower layer up yet? */
++ if (u-&gt;us_clientstate == UPAPCS_INITIAL ||
++ u-&gt;us_clientstate == UPAPCS_PENDING) {
++ u-&gt;us_clientstate = UPAPCS_PENDING;
++ return;
++ }
++
++ upap_sauthreq(u); /* Start protocol */
++}
++
++
++/*
++ * upap_authpeer - Authenticate our peer (start server).
++ *
++ * Set new state.
++ */
++void
++upap_authpeer(unit)
++ int unit;
++{
++ upap_state *u = &amp;upap[unit];
++
++ /* Lower layer up yet? */
++ if (u-&gt;us_serverstate == UPAPSS_INITIAL ||
++ u-&gt;us_serverstate == UPAPSS_PENDING) {
++ u-&gt;us_serverstate = UPAPSS_PENDING;
++ return;
++ }
++
++ u-&gt;us_serverstate = UPAPSS_LISTEN;
++ if (u-&gt;us_reqtimeout &gt; 0)
++ TIMEOUT(upap_reqtimeout, u, u-&gt;us_reqtimeout);
++}
++
++
++/*
++ * upap_timeout - Retransmission timer for sending auth-reqs expired.
++ */
++static void
++upap_timeout(arg)
++ void *arg;
++{
++ upap_state *u = (upap_state *) arg;
++
++ if (u-&gt;us_clientstate != UPAPCS_AUTHREQ)
++ return;
++
++ if (u-&gt;us_transmits &gt;= u-&gt;us_maxtransmits) {
++ /* give up in disgust */
++ error(&quot;No response to PAP authenticate-requests&quot;);
++ u-&gt;us_clientstate = UPAPCS_BADAUTH;
++ auth_withpeer_fail(u-&gt;us_unit, PPP_PAP);
++ return;
++ }
++
++ upap_sauthreq(u); /* Send Authenticate-Request */
++}
++
++
++/*
++ * upap_reqtimeout - Give up waiting for the peer to send an auth-req.
++ */
++static void
++upap_reqtimeout(arg)
++ void *arg;
++{
++ upap_state *u = (upap_state *) arg;
++
++ if (u-&gt;us_serverstate != UPAPSS_LISTEN)
++ return; /* huh?? */
++
++ auth_peer_fail(u-&gt;us_unit, PPP_PAP);
++ u-&gt;us_serverstate = UPAPSS_BADAUTH;
++}
++
++
++/*
++ * upap_lowerup - The lower layer is up.
++ *
++ * Start authenticating if pending.
++ */
++static void
++upap_lowerup(unit)
++ int unit;
++{
++ upap_state *u = &amp;upap[unit];
++
++ if (u-&gt;us_clientstate == UPAPCS_INITIAL)
++ u-&gt;us_clientstate = UPAPCS_CLOSED;
++ else if (u-&gt;us_clientstate == UPAPCS_PENDING) {
++ upap_sauthreq(u); /* send an auth-request */
++ }
++
++ if (u-&gt;us_serverstate == UPAPSS_INITIAL)
++ u-&gt;us_serverstate = UPAPSS_CLOSED;
++ else if (u-&gt;us_serverstate == UPAPSS_PENDING) {
++ u-&gt;us_serverstate = UPAPSS_LISTEN;
++ if (u-&gt;us_reqtimeout &gt; 0)
++ TIMEOUT(upap_reqtimeout, u, u-&gt;us_reqtimeout);
++ }
++}
++
++
++/*
++ * upap_lowerdown - The lower layer is down.
++ *
++ * Cancel all timeouts.
++ */
++static void
++upap_lowerdown(unit)
++ int unit;
++{
++ upap_state *u = &amp;upap[unit];
++
++ if (u-&gt;us_clientstate == UPAPCS_AUTHREQ) /* Timeout pending? */
++ UNTIMEOUT(upap_timeout, u); /* Cancel timeout */
++ if (u-&gt;us_serverstate == UPAPSS_LISTEN &amp;&amp; u-&gt;us_reqtimeout &gt; 0)
++ UNTIMEOUT(upap_reqtimeout, u);
++
++ u-&gt;us_clientstate = UPAPCS_INITIAL;
++ u-&gt;us_serverstate = UPAPSS_INITIAL;
++}
++
++
++/*
++ * upap_protrej - Peer doesn't speak this protocol.
++ *
++ * This shouldn't happen. In any case, pretend lower layer went down.
++ */
++static void
++upap_protrej(unit)
++ int unit;
++{
++ upap_state *u = &amp;upap[unit];
++
++ if (u-&gt;us_clientstate == UPAPCS_AUTHREQ) {
++ error(&quot;PAP authentication failed due to protocol-reject&quot;);
++ auth_withpeer_fail(unit, PPP_PAP);
++ }
++ if (u-&gt;us_serverstate == UPAPSS_LISTEN) {
++ error(&quot;PAP authentication of peer failed (protocol-reject)&quot;);
++ auth_peer_fail(unit, PPP_PAP);
++ }
++ upap_lowerdown(unit);
++}
++
++
++/*
++ * upap_input - Input UPAP packet.
++ */
++static void
++upap_input(unit, inpacket, l)
++ int unit;
++ u_char *inpacket;
++ int l;
++{
++ upap_state *u = &amp;upap[unit];
++ u_char *inp;
++ u_char code, id;
++ int len;
++
++ /*
++ * Parse header (code, id and length).
++ * If packet too short, drop it.
++ */
++ inp = inpacket;
++ if (l &lt; UPAP_HEADERLEN) {
++ UPAPDEBUG((&quot;pap_input: rcvd short header.&quot;));
++ return;
++ }
++ GETCHAR(code, inp);
++ GETCHAR(id, inp);
++ GETSHORT(len, inp);
++ if (len &lt; UPAP_HEADERLEN) {
++ UPAPDEBUG((&quot;pap_input: rcvd illegal length.&quot;));
++ return;
++ }
++ if (len &gt; l) {
++ UPAPDEBUG((&quot;pap_input: rcvd short packet.&quot;));
++ return;
++ }
++ len -= UPAP_HEADERLEN;
++
++ /*
++ * Action depends on code.
++ */
++ switch (code) {
++ case UPAP_AUTHREQ:
++ upap_rauthreq(u, inp, id, len);
++ break;
++
++ case UPAP_AUTHACK:
++ upap_rauthack(u, inp, id, len);
++ break;
++
++ case UPAP_AUTHNAK:
++ upap_rauthnak(u, inp, id, len);
++ break;
++
++ default: /* XXX Need code reject */
++ break;
++ }
++}
++
++
++/*
++ * upap_rauth - Receive Authenticate.
++ */
++static void
++upap_rauthreq(u, inp, id, len)
++ upap_state *u;
++ u_char *inp;
++ int id;
++ int len;
++{
++ u_char ruserlen, rpasswdlen;
++ char *ruser, *rpasswd;
++ int retcode;
++ char *msg;
++ int msglen;
++
++ if (u-&gt;us_serverstate &lt; UPAPSS_LISTEN)
++ return;
++
++ /*
++ * If we receive a duplicate authenticate-request, we are
++ * supposed to return the same status as for the first request.
++ */
++ if (u-&gt;us_serverstate == UPAPSS_OPEN) {
++ upap_sresp(u, UPAP_AUTHACK, id, &quot;&quot;, 0); /* return auth-ack */
++ return;
++ }
++ if (u-&gt;us_serverstate == UPAPSS_BADAUTH) {
++ upap_sresp(u, UPAP_AUTHNAK, id, &quot;&quot;, 0); /* return auth-nak */
++ return;
++ }
++
++ /*
++ * Parse user/passwd.
++ */
++ if (len &lt; 1) {
++ UPAPDEBUG((&quot;pap_rauth: rcvd short packet.&quot;));
++ return;
++ }
++ GETCHAR(ruserlen, inp);
++ len -= sizeof (u_char) + ruserlen + sizeof (u_char);
++ if (len &lt; 0) {
++ UPAPDEBUG((&quot;pap_rauth: rcvd short packet.&quot;));
++ return;
++ }
++ ruser = (char *) inp;
++ INCPTR(ruserlen, inp);
++ GETCHAR(rpasswdlen, inp);
++ if (len &lt; rpasswdlen) {
++ UPAPDEBUG((&quot;pap_rauth: rcvd short packet.&quot;));
++ return;
++ }
++ rpasswd = (char *) inp;
++
++ /*
++ * Check the username and password given.
++ */
++ retcode = check_passwd(u-&gt;us_unit, ruser, ruserlen, rpasswd,
++ rpasswdlen, &amp;msg);
++ BZERO(rpasswd, rpasswdlen);
++ msglen = strlen(msg);
++ if (msglen &gt; 255)
++ msglen = 255;
++
++ upap_sresp(u, retcode, id, msg, msglen);
++
++ if (retcode == UPAP_AUTHACK) {
++ u-&gt;us_serverstate = UPAPSS_OPEN;
++ auth_peer_success(u-&gt;us_unit, PPP_PAP, ruser, ruserlen);
++ } else {
++ u-&gt;us_serverstate = UPAPSS_BADAUTH;
++ auth_peer_fail(u-&gt;us_unit, PPP_PAP);
++ }
++
++ if (u-&gt;us_reqtimeout &gt; 0)
++ UNTIMEOUT(upap_reqtimeout, u);
++}
++
++
++/*
++ * upap_rauthack - Receive Authenticate-Ack.
++ */
++static void
++upap_rauthack(u, inp, id, len)
++ upap_state *u;
++ u_char *inp;
++ int id;
++ int len;
++{
++ u_char msglen;
++ char *msg;
++
++ if (u-&gt;us_clientstate != UPAPCS_AUTHREQ) /* XXX */
++ return;
++
++ /*
++ * Parse message.
++ */
++ if (len &lt; 1) {
++ UPAPDEBUG((&quot;pap_rauthack: ignoring missing msg-length.&quot;));
++ } else {
++ GETCHAR(msglen, inp);
++ if (msglen &gt; 0) {
++ len -= sizeof (u_char);
++ if (len &lt; msglen) {
++ UPAPDEBUG((&quot;pap_rauthack: rcvd short packet.&quot;));
++ return;
++ }
++ msg = (char *) inp;
++ PRINTMSG(msg, msglen);
++ }
++ }
++
++ u-&gt;us_clientstate = UPAPCS_OPEN;
++
++ auth_withpeer_success(u-&gt;us_unit, PPP_PAP);
++}
++
++
++/*
++ * upap_rauthnak - Receive Authenticate-Nakk.
++ */
++static void
++upap_rauthnak(u, inp, id, len)
++ upap_state *u;
++ u_char *inp;
++ int id;
++ int len;
++{
++ u_char msglen;
++ char *msg;
++
++ if (u-&gt;us_clientstate != UPAPCS_AUTHREQ) /* XXX */
++ return;
++
++ /*
++ * Parse message.
++ */
++ if (len &lt; 1) {
++ UPAPDEBUG((&quot;pap_rauthnak: ignoring missing msg-length.&quot;));
++ } else {
++ GETCHAR(msglen, inp);
++ if (msglen &gt; 0) {
++ len -= sizeof (u_char);
++ if (len &lt; msglen) {
++ UPAPDEBUG((&quot;pap_rauthnak: rcvd short packet.&quot;));
++ return;
++ }
++ msg = (char *) inp;
++ PRINTMSG(msg, msglen);
++ }
++ }
++
++ u-&gt;us_clientstate = UPAPCS_BADAUTH;
++
++ error(&quot;PAP authentication failed&quot;);
++ auth_withpeer_fail(u-&gt;us_unit, PPP_PAP);
++}
++
++
++/*
++ * upap_sauthreq - Send an Authenticate-Request.
++ */
++static void
++upap_sauthreq(u)
++ upap_state *u;
++{
++ u_char *outp;
++ int outlen;
++
++ outlen = UPAP_HEADERLEN + 2 * sizeof (u_char) +
++ u-&gt;us_userlen + u-&gt;us_passwdlen;
++ outp = outpacket_buf;
++
++ MAKEHEADER(outp, PPP_PAP);
++
++ PUTCHAR(UPAP_AUTHREQ, outp);
++ PUTCHAR(++u-&gt;us_id, outp);
++ PUTSHORT(outlen, outp);
++ PUTCHAR(u-&gt;us_userlen, outp);
++ BCOPY(u-&gt;us_user, outp, u-&gt;us_userlen);
++ INCPTR(u-&gt;us_userlen, outp);
++ PUTCHAR(u-&gt;us_passwdlen, outp);
++ BCOPY(u-&gt;us_passwd, outp, u-&gt;us_passwdlen);
++
++ output(u-&gt;us_unit, outpacket_buf, outlen + PPP_HDRLEN);
++
++ TIMEOUT(upap_timeout, u, u-&gt;us_timeouttime);
++ ++u-&gt;us_transmits;
++ u-&gt;us_clientstate = UPAPCS_AUTHREQ;
++}
++
++
++/*
++ * upap_sresp - Send a response (ack or nak).
++ */
++static void
++upap_sresp(u, code, id, msg, msglen)
++ upap_state *u;
++ u_char code, id;
++ char *msg;
++ int msglen;
++{
++ u_char *outp;
++ int outlen;
++
++ outlen = UPAP_HEADERLEN + sizeof (u_char) + msglen;
++ outp = outpacket_buf;
++ MAKEHEADER(outp, PPP_PAP);
++
++ PUTCHAR(code, outp);
++ PUTCHAR(id, outp);
++ PUTSHORT(outlen, outp);
++ PUTCHAR(msglen, outp);
++ BCOPY(msg, outp, msglen);
++ output(u-&gt;us_unit, outpacket_buf, outlen + PPP_HDRLEN);
++}
++
++/*
++ * upap_printpkt - print the contents of a PAP packet.
++ */
++static char *upap_codenames[] = {
++ &quot;AuthReq&quot;, &quot;AuthAck&quot;, &quot;AuthNak&quot;
++};
++
++static int
++upap_printpkt(p, plen, printer, arg)
++ u_char *p;
++ int plen;
++ void (*printer) __P((void *, char *, ...));
++ void *arg;
++{
++ int code, id, len;
++ int mlen, ulen, wlen;
++ char *user, *pwd, *msg;
++ u_char *pstart;
++
++ if (plen &lt; UPAP_HEADERLEN)
++ return 0;
++ pstart = p;
++ GETCHAR(code, p);
++ GETCHAR(id, p);
++ GETSHORT(len, p);
++ if (len &lt; UPAP_HEADERLEN || len &gt; plen)
++ return 0;
++
++ if (code &gt;= 1 &amp;&amp; code &lt;= sizeof(upap_codenames) / sizeof(char *))
++ printer(arg, &quot; %s&quot;, upap_codenames[code-1]);
++ else
++ printer(arg, &quot; code=0x%x&quot;, code);
++ printer(arg, &quot; id=0x%x&quot;, id);
++ len -= UPAP_HEADERLEN;
++ switch (code) {
++ case UPAP_AUTHREQ:
++ if (len &lt; 1)
++ break;
++ ulen = p[0];
++ if (len &lt; ulen + 2)
++ break;
++ wlen = p[ulen + 1];
++ if (len &lt; ulen + wlen + 2)
++ break;
++ user = (char *) (p + 1);
++ pwd = (char *) (p + ulen + 2);
++ p += ulen + wlen + 2;
++ len -= ulen + wlen + 2;
++ printer(arg, &quot; user=&quot;);
++ print_string(user, ulen, printer, arg);
++ printer(arg, &quot; password=&quot;);
++ if (!hide_password)
++ print_string(pwd, wlen, printer, arg);
++ else
++ printer(arg, &quot;&lt;hidden&gt;&quot;);
++ break;
++ case UPAP_AUTHACK:
++ case UPAP_AUTHNAK:
++ if (len &lt; 1)
++ break;
++ mlen = p[0];
++ if (len &lt; mlen + 1)
++ break;
++ msg = (char *) (p + 1);
++ p += mlen + 1;
++ len -= mlen + 1;
++ printer(arg, &quot; &quot;);
++ print_string(msg, mlen, printer, arg);
++ break;
++ }
++
++ /* print the rest of the bytes in the packet */
++ for (; len &gt; 0; --len) {
++ GETCHAR(code, p);
++ printer(arg, &quot; %.2x&quot;, code);
++ }
++
++ return p - pstart;
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/pppd/upap.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1ppppppdupaph">Added: drakx/trunk/mdk-stage1/ppp/pppd/upap.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/upap.h (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/upap.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,87 @@
++/*
++ * upap.h - User/Password Authentication Protocol definitions.
++ *
++ * Copyright (c) 1989 Carnegie Mellon University.
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms are permitted
++ * provided that the above copyright notice and this paragraph are
++ * duplicated in all such forms and that any documentation,
++ * advertising materials, and other materials related to such
++ * distribution and use acknowledge that the software was developed
++ * by Carnegie Mellon University. The name of the
++ * University may not be used to endorse or promote products derived
++ * from this software without specific prior written permission.
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
++ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
++ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++ *
++ * $Id: upap.h 195720 2001-06-11 11:44:34Z gc $
++ */
++
++/*
++ * Packet header = Code, id, length.
++ */
++#define UPAP_HEADERLEN 4
++
++
++/*
++ * UPAP codes.
++ */
++#define UPAP_AUTHREQ 1 /* Authenticate-Request */
++#define UPAP_AUTHACK 2 /* Authenticate-Ack */
++#define UPAP_AUTHNAK 3 /* Authenticate-Nak */
++
++
++/*
++ * Each interface is described by upap structure.
++ */
++typedef struct upap_state {
++ int us_unit; /* Interface unit number */
++ char *us_user; /* User */
++ int us_userlen; /* User length */
++ char *us_passwd; /* Password */
++ int us_passwdlen; /* Password length */
++ int us_clientstate; /* Client state */
++ int us_serverstate; /* Server state */
++ u_char us_id; /* Current id */
++ int us_timeouttime; /* Timeout (seconds) for auth-req retrans. */
++ int us_transmits; /* Number of auth-reqs sent */
++ int us_maxtransmits; /* Maximum number of auth-reqs to send */
++ int us_reqtimeout; /* Time to wait for auth-req from peer */
++} upap_state;
++
++
++/*
++ * Client states.
++ */
++#define UPAPCS_INITIAL 0 /* Connection down */
++#define UPAPCS_CLOSED 1 /* Connection up, haven't requested auth */
++#define UPAPCS_PENDING 2 /* Connection down, have requested auth */
++#define UPAPCS_AUTHREQ 3 /* We've sent an Authenticate-Request */
++#define UPAPCS_OPEN 4 /* We've received an Ack */
++#define UPAPCS_BADAUTH 5 /* We've received a Nak */
++
++/*
++ * Server states.
++ */
++#define UPAPSS_INITIAL 0 /* Connection down */
++#define UPAPSS_CLOSED 1 /* Connection up, haven't requested auth */
++#define UPAPSS_PENDING 2 /* Connection down, have requested auth */
++#define UPAPSS_LISTEN 3 /* Listening for an Authenticate */
++#define UPAPSS_OPEN 4 /* We've sent an Ack */
++#define UPAPSS_BADAUTH 5 /* We've sent a Nak */
++
++
++/*
++ * Timeouts.
++ */
++#define UPAP_DEFTIMEOUT 3 /* Timeout (seconds) for retransmitting req */
++#define UPAP_DEFREQTIME 30 /* Time to wait for auth-req from peer */
++
++extern upap_state upap[];
++
++void upap_authwithpeer __P((int, char *, char *));
++void upap_authpeer __P((int));
++
++extern struct protent pap_protent;
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/pppd/upap.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1ppppppdutilsc">Added: drakx/trunk/mdk-stage1/ppp/pppd/utils.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppd/utils.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppd/utils.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,949 @@
++/*
++ * utils.c - various utility functions used in pppd.
++ *
++ * Copyright (c) 1999 The Australian National University.
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms are permitted
++ * provided that the above copyright notice and this paragraph are
++ * duplicated in all such forms and that any documentation,
++ * advertising materials, and other materials related to such
++ * distribution and use acknowledge that the software was developed
++ * by the Australian National University. The name of the University
++ * may not be used to endorse or promote products derived from this
++ * software without specific prior written permission.
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
++ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
++ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++ */
++
++#define RCSID &quot;$Id: utils.c 203596 2003-08-19 08:57:26Z gbeauchesne $&quot;
++
++#include &lt;stdio.h&gt;
++#include &lt;ctype.h&gt;
++#include &lt;stdlib.h&gt;
++#include &lt;string.h&gt;
++#include &lt;unistd.h&gt;
++#include &lt;signal.h&gt;
++#include &lt;errno.h&gt;
++#include &lt;fcntl.h&gt;
++#include &lt;syslog.h&gt;
++#include &lt;netdb.h&gt;
++#include &lt;utmp.h&gt;
++#include &lt;pwd.h&gt;
++#include &lt;sys/param.h&gt;
++#include &lt;sys/types.h&gt;
++#include &lt;sys/wait.h&gt;
++#include &lt;sys/time.h&gt;
++#include &lt;sys/resource.h&gt;
++#include &lt;sys/stat.h&gt;
++#include &lt;sys/socket.h&gt;
++#include &lt;netinet/in.h&gt;
++#ifdef SVR4
++#include &lt;sys/mkdev.h&gt;
++#endif
++
++#include &quot;pppd.h&quot;
++#include &lt;time.h&gt;
++
++static const char rcsid[] = RCSID;
++
++#if defined(SUNOS4)
++extern char *strerror();
++#endif
++
++static void logit __P((int, char *, va_list));
++static void log_write __P((int, char *));
++static void vslp_printer __P((void *, char *, ...));
++static void format_packet __P((u_char *, int, void (*) (void *, char *, ...),
++ void *));
++
++struct buffer_info {
++ char *ptr;
++ int len;
++};
++
++/*
++ * strlcpy - like strcpy/strncpy, doesn't overflow destination buffer,
++ * always leaves destination null-terminated (for len &gt; 0).
++ */
++size_t
++strlcpy(dest, src, len)
++ char *dest;
++ const char *src;
++ size_t len;
++{
++ size_t ret = strlen(src);
++
++ if (len != 0) {
++ if (ret &lt; len)
++ strcpy(dest, src);
++ else {
++ strncpy(dest, src, len - 1);
++ dest[len-1] = 0;
++ }
++ }
++ return ret;
++}
++
++/*
++ * strlcat - like strcat/strncat, doesn't overflow destination buffer,
++ * always leaves destination null-terminated (for len &gt; 0).
++ */
++size_t
++strlcat(dest, src, len)
++ char *dest;
++ const char *src;
++ size_t len;
++{
++ size_t dlen = strlen(dest);
++
++ return dlen + strlcpy(dest + dlen, src, (len &gt; dlen? len - dlen: 0));
++}
++
++
++/*
++ * slprintf - format a message into a buffer. Like sprintf except we
++ * also specify the length of the output buffer, and we handle
++ * %r (recursive format), %m (error message), %v (visible string),
++ * %q (quoted string), %t (current time) and %I (IP address) formats.
++ * Doesn't do floating-point formats.
++ * Returns the number of chars put into buf.
++ */
++int
++slprintf __V((char *buf, int buflen, char *fmt, ...))
++{
++ va_list args;
++ int n;
++
++#if defined(__STDC__)
++ va_start(args, fmt);
++#else
++ char *buf;
++ int buflen;
++ char *fmt;
++ va_start(args);
++ buf = va_arg(args, char *);
++ buflen = va_arg(args, int);
++ fmt = va_arg(args, char *);
++#endif
++ n = vslprintf(buf, buflen, fmt, args);
++ va_end(args);
++ return n;
++}
++
++/*
++ * vslprintf - like slprintf, takes a va_list instead of a list of args.
++ */
++#define OUTCHAR(c) (buflen &gt; 0? (--buflen, *buf++ = (c)): 0)
++
++int
++vslprintf(buf, buflen, fmt, args)
++ char *buf;
++ int buflen;
++ char *fmt;
++ va_list args;
++{
++ int c, i, n;
++ int width, prec, fillch;
++ int base, len, neg, quoted;
++ unsigned long val = 0;
++ char *str, *f, *buf0;
++ unsigned char *p;
++ char num[32];
++ time_t t;
++ u_int32_t ip;
++ static char hexchars[] = &quot;0123456789abcdef&quot;;
++ struct buffer_info bufinfo;
++
++ buf0 = buf;
++ --buflen;
++ while (buflen &gt; 0) {
++ for (f = fmt; *f != '%' &amp;&amp; *f != 0; ++f)
++ ;
++ if (f &gt; fmt) {
++ len = f - fmt;
++ if (len &gt; buflen)
++ len = buflen;
++ memcpy(buf, fmt, len);
++ buf += len;
++ buflen -= len;
++ fmt = f;
++ }
++ if (*fmt == 0)
++ break;
++ c = *++fmt;
++ width = 0;
++ prec = -1;
++ fillch = ' ';
++ if (c == '0') {
++ fillch = '0';
++ c = *++fmt;
++ }
++ if (c == '*') {
++ width = va_arg(args, int);
++ c = *++fmt;
++ } else {
++ while (isdigit(c)) {
++ width = width * 10 + c - '0';
++ c = *++fmt;
++ }
++ }
++ if (c == '.') {
++ c = *++fmt;
++ if (c == '*') {
++ prec = va_arg(args, int);
++ c = *++fmt;
++ } else {
++ prec = 0;
++ while (isdigit(c)) {
++ prec = prec * 10 + c - '0';
++ c = *++fmt;
++ }
++ }
++ }
++ str = 0;
++ base = 0;
++ neg = 0;
++ ++fmt;
++ switch (c) {
++ case 'd':
++ i = va_arg(args, int);
++ if (i &lt; 0) {
++ neg = 1;
++ val = -i;
++ } else
++ val = i;
++ base = 10;
++ break;
++ case 'u':
++ val = va_arg(args, unsigned int);
++ base = 10;
++ break;
++ case 'o':
++ val = va_arg(args, unsigned int);
++ base = 8;
++ break;
++ case 'x':
++ case 'X':
++ val = va_arg(args, unsigned int);
++ base = 16;
++ break;
++ case 'p':
++ val = (unsigned long) va_arg(args, void *);
++ base = 16;
++ neg = 2;
++ break;
++ case 's':
++ str = va_arg(args, char *);
++ break;
++ case 'c':
++ num[0] = va_arg(args, int);
++ num[1] = 0;
++ str = num;
++ break;
++ case 'm':
++ str = strerror(errno);
++ break;
++ case 'I':
++ ip = va_arg(args, u_int32_t);
++ ip = ntohl(ip);
++ slprintf(num, sizeof(num), &quot;%d.%d.%d.%d&quot;, (ip &gt;&gt; 24) &amp; 0xff,
++ (ip &gt;&gt; 16) &amp; 0xff, (ip &gt;&gt; 8) &amp; 0xff, ip &amp; 0xff);
++ str = num;
++ break;
++ case 'r':
++ f = va_arg(args, char *);
++#if !defined(__powerpc__) &amp;&amp; !defined(__x86_64__)
++ n = vslprintf(buf, buflen + 1, f, va_arg(args, va_list));
++#else
++ /* On the powerpc, a va_list is an array of 1 structure */
++ n = vslprintf(buf, buflen + 1, f, va_arg(args, void *));
++#endif
++ buf += n;
++ buflen -= n;
++ continue;
++ case 't':
++ time(&amp;t);
++ str = ctime(&amp;t);
++ str += 4; /* chop off the day name */
++ str[15] = 0; /* chop off year and newline */
++ break;
++ case 'v': /* &quot;visible&quot; string */
++ case 'q': /* quoted string */
++ quoted = c == 'q';
++ p = va_arg(args, unsigned char *);
++ if (fillch == '0' &amp;&amp; prec &gt;= 0) {
++ n = prec;
++ } else {
++ n = strlen((char *)p);
++ if (prec &gt;= 0 &amp;&amp; n &gt; prec)
++ n = prec;
++ }
++ while (n &gt; 0 &amp;&amp; buflen &gt; 0) {
++ c = *p++;
++ --n;
++ if (!quoted &amp;&amp; c &gt;= 0x80) {
++ OUTCHAR('M');
++ OUTCHAR('-');
++ c -= 0x80;
++ }
++ if (quoted &amp;&amp; (c == '&quot;' || c == '\\'))
++ OUTCHAR('\\');
++ if (c &lt; 0x20 || (0x7f &lt;= c &amp;&amp; c &lt; 0xa0)) {
++ if (quoted) {
++ OUTCHAR('\\');
++ switch (c) {
++ case '\t': OUTCHAR('t'); break;
++ case '\n': OUTCHAR('n'); break;
++ case '\b': OUTCHAR('b'); break;
++ case '\f': OUTCHAR('f'); break;
++ default:
++ OUTCHAR('x');
++ OUTCHAR(hexchars[c &gt;&gt; 4]);
++ OUTCHAR(hexchars[c &amp; 0xf]);
++ }
++ } else {
++ if (c == '\t')
++ OUTCHAR(c);
++ else {
++ OUTCHAR('^');
++ OUTCHAR(c ^ 0x40);
++ }
++ }
++ } else
++ OUTCHAR(c);
++ }
++ continue;
++ case 'P': /* print PPP packet */
++ bufinfo.ptr = buf;
++ bufinfo.len = buflen + 1;
++ p = va_arg(args, unsigned char *);
++ n = va_arg(args, int);
++ format_packet(p, n, vslp_printer, &amp;bufinfo);
++ buf = bufinfo.ptr;
++ buflen = bufinfo.len - 1;
++ continue;
++ case 'B':
++ p = va_arg(args, unsigned char *);
++ for (n = prec; n &gt; 0; --n) {
++ c = *p++;
++ if (fillch == ' ')
++ OUTCHAR(' ');
++ OUTCHAR(hexchars[(c &gt;&gt; 4) &amp; 0xf]);
++ OUTCHAR(hexchars[c &amp; 0xf]);
++ }
++ continue;
++ default:
++ *buf++ = '%';
++ if (c != '%')
++ --fmt; /* so %z outputs %z etc. */
++ --buflen;
++ continue;
++ }
++ if (base != 0) {
++ str = num + sizeof(num);
++ *--str = 0;
++ while (str &gt; num + neg) {
++ *--str = hexchars[val % base];
++ val = val / base;
++ if (--prec &lt;= 0 &amp;&amp; val == 0)
++ break;
++ }
++ switch (neg) {
++ case 1:
++ *--str = '-';
++ break;
++ case 2:
++ *--str = 'x';
++ *--str = '0';
++ break;
++ }
++ len = num + sizeof(num) - 1 - str;
++ } else {
++ len = strlen(str);
++ if (prec &gt;= 0 &amp;&amp; len &gt; prec)
++ len = prec;
++ }
++ if (width &gt; 0) {
++ if (width &gt; buflen)
++ width = buflen;
++ if ((n = width - len) &gt; 0) {
++ buflen -= n;
++ for (; n &gt; 0; --n)
++ *buf++ = fillch;
++ }
++ }
++ if (len &gt; buflen)
++ len = buflen;
++ memcpy(buf, str, len);
++ buf += len;
++ buflen -= len;
++ }
++ *buf = 0;
++ return buf - buf0;
++}
++
++/*
++ * vslp_printer - used in processing a %P format
++ */
++static void
++vslp_printer __V((void *arg, char *fmt, ...))
++{
++ int n;
++ va_list pvar;
++ struct buffer_info *bi;
++
++#if defined(__STDC__)
++ va_start(pvar, fmt);
++#else
++ void *arg;
++ char *fmt;
++ va_start(pvar);
++ arg = va_arg(pvar, void *);
++ fmt = va_arg(pvar, char *);
++#endif
++
++ bi = (struct buffer_info *) arg;
++ n = vslprintf(bi-&gt;ptr, bi-&gt;len, fmt, pvar);
++ va_end(pvar);
++
++ bi-&gt;ptr += n;
++ bi-&gt;len -= n;
++}
++
++#ifdef unused
++/*
++ * log_packet - format a packet and log it.
++ */
++
++void
++log_packet(p, len, prefix, level)
++ u_char *p;
++ int len;
++ char *prefix;
++ int level;
++{
++ init_pr_log(prefix, level);
++ format_packet(p, len, pr_log, &amp;level);
++ end_pr_log();
++}
++#endif /* unused */
++
++/*
++ * format_packet - make a readable representation of a packet,
++ * calling `printer(arg, format, ...)' to output it.
++ */
++static void
++format_packet(p, len, printer, arg)
++ u_char *p;
++ int len;
++ void (*printer) __P((void *, char *, ...));
++ void *arg;
++{
++ int i, n;
++ u_short proto;
++ struct protent *protp;
++
++ if (len &gt;= PPP_HDRLEN &amp;&amp; p[0] == PPP_ALLSTATIONS &amp;&amp; p[1] == PPP_UI) {
++ p += 2;
++ GETSHORT(proto, p);
++ len -= PPP_HDRLEN;
++ for (i = 0; (protp = protocols[i]) != NULL; ++i)
++ if (proto == protp-&gt;protocol)
++ break;
++ if (protp != NULL) {
++ printer(arg, &quot;[%s&quot;, protp-&gt;name);
++ n = (*protp-&gt;printpkt)(p, len, printer, arg);
++ printer(arg, &quot;]&quot;);
++ p += n;
++ len -= n;
++ } else {
++ for (i = 0; (protp = protocols[i]) != NULL; ++i)
++ if (proto == (protp-&gt;protocol &amp; ~0x8000))
++ break;
++ if (protp != 0 &amp;&amp; protp-&gt;data_name != 0) {
++ printer(arg, &quot;[%s data]&quot;, protp-&gt;data_name);
++ if (len &gt; 8)
++ printer(arg, &quot;%.8B ...&quot;, p);
++ else
++ printer(arg, &quot;%.*B&quot;, len, p);
++ len = 0;
++ } else
++ printer(arg, &quot;[proto=0x%x]&quot;, proto);
++ }
++ }
++
++ if (len &gt; 32)
++ printer(arg, &quot;%.32B ...&quot;, p);
++ else
++ printer(arg, &quot;%.*B&quot;, len, p);
++}
++
++/*
++ * init_pr_log, end_pr_log - initialize and finish use of pr_log.
++ */
++
++static char line[256]; /* line to be logged accumulated here */
++static char *linep; /* current pointer within line */
++static int llevel; /* level for logging */
++
++void
++init_pr_log(prefix, level)
++ char *prefix;
++ int level;
++{
++ linep = line;
++ if (prefix != NULL) {
++ strlcpy(line, prefix, sizeof(line));
++ linep = line + strlen(line);
++ }
++ llevel = level;
++}
++
++void
++end_pr_log()
++{
++ if (linep != line) {
++ *linep = 0;
++ log_write(llevel, line);
++ }
++}
++
++/*
++ * pr_log - printer routine for outputting to syslog
++ */
++void
++pr_log __V((void *arg, char *fmt, ...))
++{
++ int l, n;
++ va_list pvar;
++ char *p, *eol;
++ char buf[256];
++
++#if defined(__STDC__)
++ va_start(pvar, fmt);
++#else
++ void *arg;
++ char *fmt;
++ va_start(pvar);
++ arg = va_arg(pvar, void *);
++ fmt = va_arg(pvar, char *);
++#endif
++
++ n = vslprintf(buf, sizeof(buf), fmt, pvar);
++ va_end(pvar);
++
++ p = buf;
++ eol = strchr(buf, '\n');
++ if (linep != line) {
++ l = (eol == NULL)? n: eol - buf;
++ if (linep + l &lt; line + sizeof(line)) {
++ if (l &gt; 0) {
++ memcpy(linep, buf, l);
++ linep += l;
++ }
++ if (eol == NULL)
++ return;
++ p = eol + 1;
++ eol = strchr(p, '\n');
++ }
++ *linep = 0;
++ log_write(llevel, line);
++ linep = line;
++ }
++
++ while (eol != NULL) {
++ *eol = 0;
++ log_write(llevel, p);
++ p = eol + 1;
++ eol = strchr(p, '\n');
++ }
++
++ /* assumes sizeof(buf) &lt;= sizeof(line) */
++ l = buf + n - p;
++ if (l &gt; 0) {
++ memcpy(line, p, n);
++ linep = line + l;
++ }
++}
++
++/*
++ * print_string - print a readable representation of a string using
++ * printer.
++ */
++void
++print_string(p, len, printer, arg)
++ char *p;
++ int len;
++ void (*printer) __P((void *, char *, ...));
++ void *arg;
++{
++ int c;
++
++ printer(arg, &quot;\&quot;&quot;);
++ for (; len &gt; 0; --len) {
++ c = *p++;
++ if (' ' &lt;= c &amp;&amp; c &lt;= '~') {
++ if (c == '\\' || c == '&quot;')
++ printer(arg, &quot;\\&quot;);
++ printer(arg, &quot;%c&quot;, c);
++ } else {
++ switch (c) {
++ case '\n':
++ printer(arg, &quot;\\n&quot;);
++ break;
++ case '\r':
++ printer(arg, &quot;\\r&quot;);
++ break;
++ case '\t':
++ printer(arg, &quot;\\t&quot;);
++ break;
++ default:
++ printer(arg, &quot;\\%.3o&quot;, c);
++ }
++ }
++ }
++ printer(arg, &quot;\&quot;&quot;);
++}
++
++/*
++ * logit - does the hard work for fatal et al.
++ */
++static void
++logit(level, fmt, args)
++ int level;
++ char *fmt;
++ va_list args;
++{
++ int n;
++ char buf[1024];
++
++ n = vslprintf(buf, sizeof(buf), fmt, args);
++ log_write(level, buf);
++}
++
++static void
++log_write(level, buf)
++ int level;
++ char *buf;
++{
++ syslog(level, &quot;%s&quot;, buf);
++ if (log_to_fd &gt;= 0 &amp;&amp; (level != LOG_DEBUG || debug)) {
++ int n = strlen(buf);
++
++ if (n &gt; 0 &amp;&amp; buf[n-1] == '\n')
++ --n;
++ if (write(log_to_fd, buf, n) != n
++ || write(log_to_fd, &quot;\n&quot;, 1) != 1)
++ log_to_fd = -1;
++ }
++}
++
++/*
++ * fatal - log an error message and die horribly.
++ */
++void
++fatal __V((char *fmt, ...))
++{
++ va_list pvar;
++
++#if defined(__STDC__)
++ va_start(pvar, fmt);
++#else
++ char *fmt;
++ va_start(pvar);
++ fmt = va_arg(pvar, char *);
++#endif
++
++ logit(LOG_ERR, fmt, pvar);
++ va_end(pvar);
++
++ die(1); /* as promised */
++}
++
++/*
++ * error - log an error message.
++ */
++void
++error __V((char *fmt, ...))
++{
++ va_list pvar;
++
++#if defined(__STDC__)
++ va_start(pvar, fmt);
++#else
++ char *fmt;
++ va_start(pvar);
++ fmt = va_arg(pvar, char *);
++#endif
++
++ logit(LOG_ERR, fmt, pvar);
++ va_end(pvar);
++}
++
++/*
++ * warn - log a warning message.
++ */
++void
++warn __V((char *fmt, ...))
++{
++ va_list pvar;
++
++#if defined(__STDC__)
++ va_start(pvar, fmt);
++#else
++ char *fmt;
++ va_start(pvar);
++ fmt = va_arg(pvar, char *);
++#endif
++
++ logit(LOG_WARNING, fmt, pvar);
++ va_end(pvar);
++}
++
++/*
++ * notice - log a notice-level message.
++ */
++void
++notice __V((char *fmt, ...))
++{
++ va_list pvar;
++
++#if defined(__STDC__)
++ va_start(pvar, fmt);
++#else
++ char *fmt;
++ va_start(pvar);
++ fmt = va_arg(pvar, char *);
++#endif
++
++ logit(LOG_NOTICE, fmt, pvar);
++ va_end(pvar);
++}
++
++/*
++ * info - log an informational message.
++ */
++void
++info __V((char *fmt, ...))
++{
++ va_list pvar;
++
++#if defined(__STDC__)
++ va_start(pvar, fmt);
++#else
++ char *fmt;
++ va_start(pvar);
++ fmt = va_arg(pvar, char *);
++#endif
++
++ logit(LOG_INFO, fmt, pvar);
++ va_end(pvar);
++}
++
++/*
++ * dbglog - log a debug message.
++ */
++void
++dbglog __V((char *fmt, ...))
++{
++ va_list pvar;
++
++#if defined(__STDC__)
++ va_start(pvar, fmt);
++#else
++ char *fmt;
++ va_start(pvar);
++ fmt = va_arg(pvar, char *);
++#endif
++
++ logit(LOG_DEBUG, fmt, pvar);
++ va_end(pvar);
++}
++
++/* Procedures for locking the serial device using a lock file. */
++#ifndef LOCK_DIR
++#ifdef _linux_
++#define LOCK_DIR &quot;/var/lock&quot;
++#else
++#ifdef SVR4
++#define LOCK_DIR &quot;/var/spool/locks&quot;
++#else
++#define LOCK_DIR &quot;/var/spool/lock&quot;
++#endif
++#endif
++#endif /* LOCK_DIR */
++
++static char lock_file[MAXPATHLEN];
++
++/*
++ * lock - create a lock file for the named device
++ */
++int
++lock(dev)
++ char *dev;
++{
++#ifdef LOCKLIB
++ int result;
++
++ result = mklock (dev, (void *) 0);
++ if (result == 0) {
++ strlcpy(lock_file, sizeof(lock_file), dev);
++ return 0;
++ }
++
++ if (result &gt; 0)
++ notice(&quot;Device %s is locked by pid %d&quot;, dev, result);
++ else
++ error(&quot;Can't create lock file %s&quot;, lock_file);
++ return -1;
++
++#else /* LOCKLIB */
++
++ char lock_buffer[12];
++ int fd, pid, n;
++
++#ifdef SVR4
++ struct stat sbuf;
++
++ if (stat(dev, &amp;sbuf) &lt; 0) {
++ error(&quot;Can't get device number for %s: %m&quot;, dev);
++ return -1;
++ }
++ if ((sbuf.st_mode &amp; S_IFMT) != S_IFCHR) {
++ error(&quot;Can't lock %s: not a character device&quot;, dev);
++ return -1;
++ }
++ slprintf(lock_file, sizeof(lock_file), &quot;%s/LK.%03d.%03d.%03d&quot;,
++ LOCK_DIR, major(sbuf.st_dev),
++ major(sbuf.st_rdev), minor(sbuf.st_rdev));
++#else
++ char *p;
++
++ if ((p = strrchr(dev, '/')) != NULL)
++ dev = p + 1;
++ slprintf(lock_file, sizeof(lock_file), &quot;%s/LCK..%s&quot;, LOCK_DIR, dev);
++#endif
++
++ while ((fd = open(lock_file, O_EXCL | O_CREAT | O_RDWR, 0644)) &lt; 0) {
++ if (errno != EEXIST) {
++ error(&quot;Can't create lock file %s: %m&quot;, lock_file);
++ break;
++ }
++
++ /* Read the lock file to find out who has the device locked. */
++ fd = open(lock_file, O_RDONLY, 0);
++ if (fd &lt; 0) {
++ if (errno == ENOENT) /* This is just a timing problem. */
++ continue;
++ error(&quot;Can't open existing lock file %s: %m&quot;, lock_file);
++ break;
++ }
++#ifndef LOCK_BINARY
++ n = read(fd, lock_buffer, 11);
++#else
++ n = read(fd, &amp;pid, sizeof(pid));
++#endif /* LOCK_BINARY */
++ close(fd);
++ fd = -1;
++ if (n &lt;= 0) {
++ error(&quot;Can't read pid from lock file %s&quot;, lock_file);
++ break;
++ }
++
++ /* See if the process still exists. */
++#ifndef LOCK_BINARY
++ lock_buffer[n] = 0;
++ pid = atoi(lock_buffer);
++#endif /* LOCK_BINARY */
++ if (pid == getpid())
++ return 1; /* somebody else locked it for us */
++ if (pid == 0
++ || (kill(pid, 0) == -1 &amp;&amp; errno == ESRCH)) {
++ if (unlink (lock_file) == 0) {
++ notice(&quot;Removed stale lock on %s (pid %d)&quot;, dev, pid);
++ continue;
++ }
++ warn(&quot;Couldn't remove stale lock on %s&quot;, dev);
++ } else
++ notice(&quot;Device %s is locked by pid %d&quot;, dev, pid);
++ break;
++ }
++
++ if (fd &lt; 0) {
++ lock_file[0] = 0;
++ return -1;
++ }
++
++ pid = getpid();
++#ifndef LOCK_BINARY
++ slprintf(lock_buffer, sizeof(lock_buffer), &quot;%10d\n&quot;, pid);
++ write (fd, lock_buffer, 11);
++#else
++ write(fd, &amp;pid, sizeof (pid));
++#endif
++ close(fd);
++ return 0;
++
++#endif
++}
++
++/*
++ * relock - called to update our lockfile when we are about to detach,
++ * thus changing our pid (we fork, the child carries on, and the parent dies).
++ * Note that this is called by the parent, with pid equal to the pid
++ * of the child. This avoids a potential race which would exist if
++ * we had the child rewrite the lockfile (the parent might die first,
++ * and another process could think the lock was stale if it checked
++ * between when the parent died and the child rewrote the lockfile).
++ */
++int
++relock(pid)
++ int pid;
++{
++#ifdef LOCKLIB
++ /* XXX is there a way to do this? */
++ return -1;
++#else /* LOCKLIB */
++
++ int fd;
++ char lock_buffer[12];
++
++ if (lock_file[0] == 0)
++ return -1;
++ fd = open(lock_file, O_WRONLY, 0);
++ if (fd &lt; 0) {
++ error(&quot;Couldn't reopen lock file %s: %m&quot;, lock_file);
++ lock_file[0] = 0;
++ return -1;
++ }
++
++#ifndef LOCK_BINARY
++ slprintf(lock_buffer, sizeof(lock_buffer), &quot;%10d\n&quot;, pid);
++ write (fd, lock_buffer, 11);
++#else
++ write(fd, &amp;pid, sizeof(pid));
++#endif /* LOCK_BINARY */
++ close(fd);
++ return 0;
++
++#endif /* LOCKLIB */
++}
++
++/*
++ * unlock - remove our lockfile
++ */
++void
++unlock()
++{
++ if (lock_file[0]) {
++#ifdef LOCKLIB
++ (void) rmlock(lock_file, (void *) 0);
++#else
++ unlink(lock_file);
++#endif
++ lock_file[0] = 0;
++ }
++}
++
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/pppd/utils.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1ppppppdumpMakefilelinux">Added: drakx/trunk/mdk-stage1/ppp/pppdump/Makefile.linux</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppdump/Makefile.linux (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppdump/Makefile.linux 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,17 @@
++CFLAGS= -I../include/net $(RPM_OPT_FLAGS)
++OBJS = pppdump.o bsd-comp.o deflate.o zlib.o
++
++INSTALL= install
++
++all: pppdump
++
++pppdump: $(OBJS)
++ $(CC) $(RPM_OPT_FLAGS) -o pppdump $(OBJS)
++
++clean:
++ rm -f pppdump $(OBJS) *~
++
++install:
++ mkdir -p $(BINDIR) $(MANDIR)/man8
++ $(INSTALL) -s -c pppdump $(BINDIR)
++ $(INSTALL) -c pppdump.8 $(MANDIR)/man8
+
+<a id="drakxtrunkmdkstage1ppppppdumpMakefilelinuxmakeopt">Added: drakx/trunk/mdk-stage1/ppp/pppdump/Makefile.linux.makeopt</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppdump/Makefile.linux.makeopt (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppdump/Makefile.linux.makeopt 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,17 @@
++CFLAGS= -O -I../include/net
++OBJS = pppdump.o bsd-comp.o deflate.o zlib.o
++
++INSTALL= install
++
++all: pppdump
++
++pppdump: $(OBJS)
++ $(CC) -o pppdump $(OBJS)
++
++clean:
++ rm -f pppdump $(OBJS) *~
++
++install:
++ mkdir -p $(BINDIR) $(MANDIR)/man8
++ $(INSTALL) -s -c pppdump $(BINDIR)
++ $(INSTALL) -c -m 444 pppdump.8 $(MANDIR)/man8
+
+<a id="drakxtrunkmdkstage1ppppppdumpMakefilelinuxpppdumpMakefile">Added: drakx/trunk/mdk-stage1/ppp/pppdump/Makefile.linux.pppdump-Makefile</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppdump/Makefile.linux.pppdump-Makefile (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppdump/Makefile.linux.pppdump-Makefile 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,17 @@
++CFLAGS= -O -I../include/net
++OBJS = pppdump.o bsd-comp.o deflate.o zlib.o
++
++INSTALL= install
++
++all: pppdump
++
++pppdump: $(OBJS)
++ $(CC) $(RPM_OPT_FLAGS) -o pppdump $(OBJS)
++
++clean:
++ rm -f pppdump $(OBJS) *~
++
++install:
++ mkdir -p $(BINDIR) $(MANDIR)/man8
++ $(INSTALL) -s -c pppdump $(BINDIR)
++ $(INSTALL) -c -m 444 pppdump.8 $(MANDIR)/man8
+
+<a id="drakxtrunkmdkstage1ppppppdumpMakefilesol2">Added: drakx/trunk/mdk-stage1/ppp/pppdump/Makefile.sol2</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppdump/Makefile.sol2 (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppdump/Makefile.sol2 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,21 @@
++#
++# pppdump Makefile for SVR4 systems
++# $Id: Makefile.sol2 195720 2001-06-11 11:44:34Z gc $
++#
++
++include ../solaris/Makedefs
++
++CFLAGS= $(COPTS) -I../include/net
++OBJS = pppdump.o bsd-comp.o deflate.o zlib.o
++
++all: pppdump
++
++pppdump: $(OBJS)
++ $(CC) -o pppdump $(OBJS)
++
++clean:
++ rm -f $(OBJS) pppdump *~
++
++install:
++ $(INSTALL) -f $(BINDIR) pppdump
++ $(INSTALL) -m 444 -f $(MANDIR)/man8 pppdump.8
+
+<a id="drakxtrunkmdkstage1ppppppdumpMakefilesunos4">Added: drakx/trunk/mdk-stage1/ppp/pppdump/Makefile.sunos4</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppdump/Makefile.sunos4 (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppdump/Makefile.sunos4 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,21 @@
++#
++# pppstats makefile
++# $Id: Makefile.sunos4 195720 2001-06-11 11:44:34Z gc $
++#
++
++include ../sunos4/Makedefs
++
++OBJS = pppdump.o bsd-comp.o deflate.o zlib.o
++CFLAGS = $(COPTS) -I../include/net
++
++all: pppdump
++
++pppdump: $(OBJS)
++ $(CC) -o pppdump $(OBJS)
++
++clean:
++ rm -f pppdump $(OBJS) *~
++
++install: pppdump
++ $(INSTALL) -c pppdump $(BINDIR)/pppdump
++ $(INSTALL) -c -m 444 pppdump.8 $(MANDIR)/man8/pppdump.8
+
+<a id="drakxtrunkmdkstage1ppppppdumpbsdcompc">Added: drakx/trunk/mdk-stage1/ppp/pppdump/bsd-comp.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppdump/bsd-comp.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppdump/bsd-comp.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,750 @@
++/* Because this code is derived from the 4.3BSD compress source:
++ *
++ *
++ * Copyright (c) 1985, 1986 The Regents of the University of California.
++ * All rights reserved.
++ *
++ * This code is derived from software contributed to Berkeley by
++ * James A. Woods, derived from original work by Spencer Thomas
++ * and Joseph Orost.
++ *
++ * Redistribution and use in source and binary forms, with or without
++ * modification, are permitted provided that the following conditions
++ * are met:
++ * 1. Redistributions of source code must retain the above copyright
++ * notice, this list of conditions and the following disclaimer.
++ * 2. Redistributions in binary form must reproduce the above copyright
++ * notice, this list of conditions and the following disclaimer in the
++ * documentation and/or other materials provided with the distribution.
++ * 3. All advertising materials mentioning features or use of this software
++ * must display the following acknowledgement:
++ * This product includes software developed by the University of
++ * California, Berkeley and its contributors.
++ * 4. Neither the name of the University nor the names of its contributors
++ * may be used to endorse or promote products derived from this software
++ * without specific prior written permission.
++ *
++ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++ * SUCH DAMAGE.
++ */
++
++/*
++ * $Id: bsd-comp.c 195720 2001-06-11 11:44:34Z gc $
++ */
++
++#include &lt;sys/types.h&gt;
++#include &lt;stddef.h&gt;
++#include &lt;stdlib.h&gt;
++#include &quot;ppp_defs.h&quot;
++#include &quot;ppp-comp.h&quot;
++
++#if DO_BSD_COMPRESS
++
++/*
++ * PPP &quot;BSD compress&quot; compression
++ * The differences between this compression and the classic BSD LZW
++ * source are obvious from the requirement that the classic code worked
++ * with files while this handles arbitrarily long streams that
++ * are broken into packets. They are:
++ *
++ * When the code size expands, a block of junk is not emitted by
++ * the compressor and not expected by the decompressor.
++ *
++ * New codes are not necessarily assigned every time an old
++ * code is output by the compressor. This is because a packet
++ * end forces a code to be emitted, but does not imply that a
++ * new sequence has been seen.
++ *
++ * The compression ratio is checked at the first end of a packet
++ * after the appropriate gap. Besides simplifying and speeding
++ * things up, this makes it more likely that the transmitter
++ * and receiver will agree when the dictionary is cleared when
++ * compression is not going well.
++ */
++
++/*
++ * A dictionary for doing BSD compress.
++ */
++struct bsd_db {
++ int totlen; /* length of this structure */
++ u_int hsize; /* size of the hash table */
++ u_char hshift; /* used in hash function */
++ u_char n_bits; /* current bits/code */
++ u_char maxbits;
++ u_char debug;
++ u_char unit;
++ u_short seqno; /* sequence number of next packet */
++ u_int hdrlen; /* header length to preallocate */
++ u_int mru;
++ u_int maxmaxcode; /* largest valid code */
++ u_int max_ent; /* largest code in use */
++ u_int in_count; /* uncompressed bytes, aged */
++ u_int bytes_out; /* compressed bytes, aged */
++ u_int ratio; /* recent compression ratio */
++ u_int checkpoint; /* when to next check the ratio */
++ u_int clear_count; /* times dictionary cleared */
++ u_int incomp_count; /* incompressible packets */
++ u_int incomp_bytes; /* incompressible bytes */
++ u_int uncomp_count; /* uncompressed packets */
++ u_int uncomp_bytes; /* uncompressed bytes */
++ u_int comp_count; /* compressed packets */
++ u_int comp_bytes; /* compressed bytes */
++ u_short *lens; /* array of lengths of codes */
++ struct bsd_dict {
++ union { /* hash value */
++ u_int32_t fcode;
++ struct {
++#ifdef BSD_LITTLE_ENDIAN
++ u_short prefix; /* preceding code */
++ u_char suffix; /* last character of new code */
++ u_char pad;
++#else
++ u_char pad;
++ u_char suffix; /* last character of new code */
++ u_short prefix; /* preceding code */
++#endif
++ } hs;
++ } f;
++ u_short codem1; /* output of hash table -1 */
++ u_short cptr; /* map code to hash table entry */
++ } dict[1];
++};
++
++#define BSD_OVHD 2 /* BSD compress overhead/packet */
++#define BSD_INIT_BITS BSD_MIN_BITS
++
++static void *bsd_decomp_alloc __P((u_char *options, int opt_len));
++static void bsd_free __P((void *state));
++static int bsd_decomp_init __P((void *state, u_char *options, int opt_len,
++ int unit, int hdrlen, int mru, int debug));
++static void bsd_incomp __P((void *state, u_char *dmsg, int len));
++static int bsd_decompress __P((void *state, u_char *cmp, int inlen,
++ u_char *dmp, int *outlen));
++static void bsd_reset __P((void *state));
++static void bsd_comp_stats __P((void *state, struct compstat *stats));
++
++/*
++ * Exported procedures.
++ */
++struct compressor ppp_bsd_compress = {
++ CI_BSD_COMPRESS, /* compress_proto */
++ bsd_decomp_alloc, /* decomp_alloc */
++ bsd_free, /* decomp_free */
++ bsd_decomp_init, /* decomp_init */
++ bsd_reset, /* decomp_reset */
++ bsd_decompress, /* decompress */
++ bsd_incomp, /* incomp */
++ bsd_comp_stats, /* decomp_stat */
++};
++
++/*
++ * the next two codes should not be changed lightly, as they must not
++ * lie within the contiguous general code space.
++ */
++#define CLEAR 256 /* table clear output code */
++#define FIRST 257 /* first free entry */
++#define LAST 255
++
++#define MAXCODE(b) ((1 &lt;&lt; (b)) - 1)
++#define BADCODEM1 MAXCODE(BSD_MAX_BITS)
++
++#define BSD_HASH(prefix,suffix,hshift) ((((u_int32_t)(suffix)) &lt;&lt; (hshift)) \
++ ^ (u_int32_t)(prefix))
++#define BSD_KEY(prefix,suffix) ((((u_int32_t)(suffix)) &lt;&lt; 16) \
++ + (u_int32_t)(prefix))
++
++#define CHECK_GAP 10000 /* Ratio check interval */
++
++#define RATIO_SCALE_LOG 8
++#define RATIO_SCALE (1&lt;&lt;RATIO_SCALE_LOG)
++#define RATIO_MAX (0x7fffffff&gt;&gt;RATIO_SCALE_LOG)
++
++/*
++ * clear the dictionary
++ */
++static void
++bsd_clear(db)
++ struct bsd_db *db;
++{
++ db-&gt;clear_count++;
++ db-&gt;max_ent = FIRST-1;
++ db-&gt;n_bits = BSD_INIT_BITS;
++ db-&gt;ratio = 0;
++ db-&gt;bytes_out = 0;
++ db-&gt;in_count = 0;
++ db-&gt;checkpoint = CHECK_GAP;
++}
++
++/*
++ * If the dictionary is full, then see if it is time to reset it.
++ *
++ * Compute the compression ratio using fixed-point arithmetic
++ * with 8 fractional bits.
++ *
++ * Since we have an infinite stream instead of a single file,
++ * watch only the local compression ratio.
++ *
++ * Since both peers must reset the dictionary at the same time even in
++ * the absence of CLEAR codes (while packets are incompressible), they
++ * must compute the same ratio.
++ */
++static int /* 1=output CLEAR */
++bsd_check(db)
++ struct bsd_db *db;
++{
++ u_int new_ratio;
++
++ if (db-&gt;in_count &gt;= db-&gt;checkpoint) {
++ /* age the ratio by limiting the size of the counts */
++ if (db-&gt;in_count &gt;= RATIO_MAX
++ || db-&gt;bytes_out &gt;= RATIO_MAX) {
++ db-&gt;in_count -= db-&gt;in_count/4;
++ db-&gt;bytes_out -= db-&gt;bytes_out/4;
++ }
++
++ db-&gt;checkpoint = db-&gt;in_count + CHECK_GAP;
++
++ if (db-&gt;max_ent &gt;= db-&gt;maxmaxcode) {
++ /* Reset the dictionary only if the ratio is worse,
++ * or if it looks as if it has been poisoned
++ * by incompressible data.
++ *
++ * This does not overflow, because
++ * db-&gt;in_count &lt;= RATIO_MAX.
++ */
++ new_ratio = db-&gt;in_count &lt;&lt; RATIO_SCALE_LOG;
++ if (db-&gt;bytes_out != 0)
++ new_ratio /= db-&gt;bytes_out;
++
++ if (new_ratio &lt; db-&gt;ratio || new_ratio &lt; 1 * RATIO_SCALE) {
++ bsd_clear(db);
++ return 1;
++ }
++ db-&gt;ratio = new_ratio;
++ }
++ }
++ return 0;
++}
++
++/*
++ * Return statistics.
++ */
++static void
++bsd_comp_stats(state, stats)
++ void *state;
++ struct compstat *stats;
++{
++ struct bsd_db *db = (struct bsd_db *) state;
++ u_int out;
++
++ stats-&gt;unc_bytes = db-&gt;uncomp_bytes;
++ stats-&gt;unc_packets = db-&gt;uncomp_count;
++ stats-&gt;comp_bytes = db-&gt;comp_bytes;
++ stats-&gt;comp_packets = db-&gt;comp_count;
++ stats-&gt;inc_bytes = db-&gt;incomp_bytes;
++ stats-&gt;inc_packets = db-&gt;incomp_count;
++ stats-&gt;ratio = db-&gt;in_count;
++ out = db-&gt;bytes_out;
++ if (stats-&gt;ratio &lt;= 0x7fffff)
++ stats-&gt;ratio &lt;&lt;= 8;
++ else
++ out &gt;&gt;= 8;
++ if (out != 0)
++ stats-&gt;ratio /= out;
++}
++
++/*
++ * Reset state, as on a CCP ResetReq.
++ */
++static void
++bsd_reset(state)
++ void *state;
++{
++ struct bsd_db *db = (struct bsd_db *) state;
++
++ db-&gt;seqno = 0;
++ bsd_clear(db);
++ db-&gt;clear_count = 0;
++}
++
++/*
++ * Allocate space for a (de) compressor.
++ */
++static void *
++bsd_alloc(options, opt_len, decomp)
++ u_char *options;
++ int opt_len, decomp;
++{
++ int bits;
++ u_int newlen, hsize, hshift, maxmaxcode;
++ struct bsd_db *db;
++
++ if (opt_len != 3 || options[0] != CI_BSD_COMPRESS || options[1] != 3
++ || BSD_VERSION(options[2]) != BSD_CURRENT_VERSION)
++ return NULL;
++
++ bits = BSD_NBITS(options[2]);
++ switch (bits) {
++ case 9: /* needs 82152 for both directions */
++ case 10: /* needs 84144 */
++ case 11: /* needs 88240 */
++ case 12: /* needs 96432 */
++ hsize = 5003;
++ hshift = 4;
++ break;
++ case 13: /* needs 176784 */
++ hsize = 9001;
++ hshift = 5;
++ break;
++ case 14: /* needs 353744 */
++ hsize = 18013;
++ hshift = 6;
++ break;
++ case 15: /* needs 691440 */
++ hsize = 35023;
++ hshift = 7;
++ break;
++ case 16: /* needs 1366160--far too much, */
++ /* hsize = 69001; */ /* and 69001 is too big for cptr */
++ /* hshift = 8; */ /* in struct bsd_db */
++ /* break; */
++ default:
++ return NULL;
++ }
++
++ maxmaxcode = MAXCODE(bits);
++ newlen = sizeof(*db) + (hsize-1) * (sizeof(db-&gt;dict[0]));
++ db = (struct bsd_db *) malloc(newlen);
++ if (!db)
++ return NULL;
++ memset(db, 0, sizeof(*db) - sizeof(db-&gt;dict));
++
++ if (!decomp) {
++ db-&gt;lens = NULL;
++ } else {
++ db-&gt;lens = (u_short *) malloc((maxmaxcode+1) * sizeof(db-&gt;lens[0]));
++ if (!db-&gt;lens) {
++ free(db);
++ return NULL;
++ }
++ }
++
++ db-&gt;totlen = newlen;
++ db-&gt;hsize = hsize;
++ db-&gt;hshift = hshift;
++ db-&gt;maxmaxcode = maxmaxcode;
++ db-&gt;maxbits = bits;
++
++ return (void *) db;
++}
++
++static void
++bsd_free(state)
++ void *state;
++{
++ struct bsd_db *db = (struct bsd_db *) state;
++
++ if (db-&gt;lens)
++ free(db-&gt;lens);
++ free(db);
++}
++
++static void *
++bsd_decomp_alloc(options, opt_len)
++ u_char *options;
++ int opt_len;
++{
++ return bsd_alloc(options, opt_len, 1);
++}
++
++/*
++ * Initialize the database.
++ */
++static int
++bsd_init(db, options, opt_len, unit, hdrlen, mru, debug, decomp)
++ struct bsd_db *db;
++ u_char *options;
++ int opt_len, unit, hdrlen, mru, debug, decomp;
++{
++ int i;
++
++ if (opt_len &lt; CILEN_BSD_COMPRESS
++ || options[0] != CI_BSD_COMPRESS || options[1] != CILEN_BSD_COMPRESS
++ || BSD_VERSION(options[2]) != BSD_CURRENT_VERSION
++ || BSD_NBITS(options[2]) != db-&gt;maxbits
++ || decomp &amp;&amp; db-&gt;lens == NULL)
++ return 0;
++
++ if (decomp) {
++ i = LAST+1;
++ while (i != 0)
++ db-&gt;lens[--i] = 1;
++ }
++ i = db-&gt;hsize;
++ while (i != 0) {
++ db-&gt;dict[--i].codem1 = BADCODEM1;
++ db-&gt;dict[i].cptr = 0;
++ }
++
++ db-&gt;unit = unit;
++ db-&gt;hdrlen = hdrlen;
++ db-&gt;mru = mru;
++ if (debug)
++ db-&gt;debug = 1;
++
++ bsd_reset(db);
++
++ return 1;
++}
++
++static int
++bsd_decomp_init(state, options, opt_len, unit, hdrlen, mru, debug)
++ void *state;
++ u_char *options;
++ int opt_len, unit, hdrlen, mru, debug;
++{
++ return bsd_init((struct bsd_db *) state, options, opt_len,
++ unit, hdrlen, mru, debug, 1);
++}
++
++
++/*
++ * Update the &quot;BSD Compress&quot; dictionary on the receiver for
++ * incompressible data by pretending to compress the incoming data.
++ */
++static void
++bsd_incomp(state, dmsg, mlen)
++ void *state;
++ u_char *dmsg;
++ int mlen;
++{
++ struct bsd_db *db = (struct bsd_db *) state;
++ u_int hshift = db-&gt;hshift;
++ u_int max_ent = db-&gt;max_ent;
++ u_int n_bits = db-&gt;n_bits;
++ struct bsd_dict *dictp;
++ u_int32_t fcode;
++ u_char c;
++ long hval, disp;
++ int slen, ilen;
++ u_int bitno = 7;
++ u_char *rptr;
++ u_int ent;
++
++ rptr = dmsg;
++ ent = rptr[0]; /* get the protocol */
++ if (ent == 0) {
++ ++rptr;
++ --mlen;
++ ent = rptr[0];
++ }
++ if ((ent &amp; 1) == 0 || ent &lt; 0x21 || ent &gt; 0xf9)
++ return;
++
++ db-&gt;seqno++;
++ ilen = 1; /* count the protocol as 1 byte */
++ ++rptr;
++ slen = dmsg + mlen - rptr;
++ ilen += slen;
++ for (; slen &gt; 0; --slen) {
++ c = *rptr++;
++ fcode = BSD_KEY(ent, c);
++ hval = BSD_HASH(ent, c, hshift);
++ dictp = &amp;db-&gt;dict[hval];
++
++ /* validate and then check the entry */
++ if (dictp-&gt;codem1 &gt;= max_ent)
++ goto nomatch;
++ if (dictp-&gt;f.fcode == fcode) {
++ ent = dictp-&gt;codem1+1;
++ continue; /* found (prefix,suffix) */
++ }
++
++ /* continue probing until a match or invalid entry */
++ disp = (hval == 0) ? 1 : hval;
++ do {
++ hval += disp;
++ if (hval &gt;= db-&gt;hsize)
++ hval -= db-&gt;hsize;
++ dictp = &amp;db-&gt;dict[hval];
++ if (dictp-&gt;codem1 &gt;= max_ent)
++ goto nomatch;
++ } while (dictp-&gt;f.fcode != fcode);
++ ent = dictp-&gt;codem1+1;
++ continue; /* finally found (prefix,suffix) */
++
++ nomatch: /* output (count) the prefix */
++ bitno += n_bits;
++
++ /* code -&gt; hashtable */
++ if (max_ent &lt; db-&gt;maxmaxcode) {
++ struct bsd_dict *dictp2;
++ /* expand code size if needed */
++ if (max_ent &gt;= MAXCODE(n_bits))
++ db-&gt;n_bits = ++n_bits;
++
++ /* Invalidate previous hash table entry
++ * assigned this code, and then take it over.
++ */
++ dictp2 = &amp;db-&gt;dict[max_ent+1];
++ if (db-&gt;dict[dictp2-&gt;cptr].codem1 == max_ent)
++ db-&gt;dict[dictp2-&gt;cptr].codem1 = BADCODEM1;
++ dictp2-&gt;cptr = hval;
++ dictp-&gt;codem1 = max_ent;
++ dictp-&gt;f.fcode = fcode;
++
++ db-&gt;max_ent = ++max_ent;
++ db-&gt;lens[max_ent] = db-&gt;lens[ent]+1;
++ }
++ ent = c;
++ }
++ bitno += n_bits; /* output (count) the last code */
++ db-&gt;bytes_out += bitno/8;
++ db-&gt;in_count += ilen;
++ (void)bsd_check(db);
++
++ ++db-&gt;incomp_count;
++ db-&gt;incomp_bytes += ilen;
++ ++db-&gt;uncomp_count;
++ db-&gt;uncomp_bytes += ilen;
++
++ /* Increase code size if we would have without the packet
++ * boundary and as the decompressor will.
++ */
++ if (max_ent &gt;= MAXCODE(n_bits) &amp;&amp; max_ent &lt; db-&gt;maxmaxcode)
++ db-&gt;n_bits++;
++}
++
++
++/*
++ * Decompress &quot;BSD Compress&quot;
++ *
++ * Because of patent problems, we return DECOMP_ERROR for errors
++ * found by inspecting the input data and for system problems, but
++ * DECOMP_FATALERROR for any errors which could possibly be said to
++ * be being detected &quot;after&quot; decompression. For DECOMP_ERROR,
++ * we can issue a CCP reset-request; for DECOMP_FATALERROR, we may be
++ * infringing a patent of Motorola's if we do, so we take CCP down
++ * instead.
++ *
++ * Given that the frame has the correct sequence number and a good FCS,
++ * errors such as invalid codes in the input most likely indicate a
++ * bug, so we return DECOMP_FATALERROR for them in order to turn off
++ * compression, even though they are detected by inspecting the input.
++ */
++static int
++bsd_decompress(state, cmsg, inlen, dmp, outlenp)
++ void *state;
++ u_char *cmsg, *dmp;
++ int inlen, *outlenp;
++{
++ struct bsd_db *db = (struct bsd_db *) state;
++ u_int max_ent = db-&gt;max_ent;
++ u_int32_t accm = 0;
++ u_int bitno = 32; /* 1st valid bit in accm */
++ u_int n_bits = db-&gt;n_bits;
++ u_int tgtbitno = 32-n_bits; /* bitno when we have a code */
++ struct bsd_dict *dictp;
++ int explen, i, seq, len;
++ u_int incode, oldcode, finchar;
++ u_char *p, *rptr, *wptr;
++ int ilen;
++ int dlen, space, codelen, extra;
++
++ rptr = cmsg;
++ if (*rptr == 0)
++ ++rptr;
++ ++rptr; /* skip protocol (assumed 0xfd) */
++ seq = (rptr[0] &lt;&lt; 8) + rptr[1];
++ rptr += BSD_OVHD;
++ ilen = len = cmsg + inlen - rptr;
++
++ /*
++ * Check the sequence number and give up if it is not what we expect.
++ */
++ if (seq != db-&gt;seqno++) {
++ if (db-&gt;debug)
++ printf(&quot;bsd_decomp%d: bad sequence # %d, expected %d\n&quot;,
++ db-&gt;unit, seq, db-&gt;seqno - 1);
++ return DECOMP_ERROR;
++ }
++
++ wptr = dmp + db-&gt;hdrlen;
++
++ oldcode = CLEAR;
++ explen = 0;
++ while (len &gt; 0) {
++ /*
++ * Accumulate bytes until we have a complete code.
++ * Then get the next code, relying on the 32-bit,
++ * unsigned accm to mask the result.
++ */
++ bitno -= 8;
++ accm |= *rptr++ &lt;&lt; bitno;
++ --len;
++ if (tgtbitno &lt; bitno)
++ continue;
++ incode = accm &gt;&gt; tgtbitno;
++ accm &lt;&lt;= n_bits;
++ bitno += n_bits;
++
++ if (incode == CLEAR) {
++ /*
++ * The dictionary must only be cleared at
++ * the end of a packet. But there could be an
++ * empty message block at the end.
++ */
++ if (len &gt; 0) {
++ if (db-&gt;debug)
++ printf(&quot;bsd_decomp%d: bad CLEAR\n&quot;, db-&gt;unit);
++ return DECOMP_FATALERROR;
++ }
++ bsd_clear(db);
++ explen = ilen = 0;
++ break;
++ }
++
++ if (incode &gt; max_ent + 2 || incode &gt; db-&gt;maxmaxcode
++ || incode &gt; max_ent &amp;&amp; oldcode == CLEAR) {
++ if (db-&gt;debug) {
++ printf(&quot;bsd_decomp%d: bad code 0x%x oldcode=0x%x &quot;,
++ db-&gt;unit, incode, oldcode);
++ printf(&quot;max_ent=0x%x dlen=%d seqno=%d\n&quot;,
++ max_ent, dlen, db-&gt;seqno);
++ }
++ return DECOMP_FATALERROR; /* probably a bug */
++ }
++
++ /* Special case for KwKwK string. */
++ if (incode &gt; max_ent) {
++ finchar = oldcode;
++ extra = 1;
++ } else {
++ finchar = incode;
++ extra = 0;
++ }
++
++ codelen = db-&gt;lens[finchar];
++ explen += codelen + extra;
++ if (explen &gt; db-&gt;mru + 1) {
++ if (db-&gt;debug)
++ printf(&quot;bsd_decomp%d: ran out of mru\n&quot;, db-&gt;unit);
++ return DECOMP_FATALERROR;
++ }
++
++ /*
++ * Decode this code and install it in the decompressed buffer.
++ */
++ p = (wptr += codelen);
++ while (finchar &gt; LAST) {
++ dictp = &amp;db-&gt;dict[db-&gt;dict[finchar].cptr];
++#ifdef DEBUG
++ --codelen;
++ if (codelen &lt;= 0) {
++ printf(&quot;bsd_decomp%d: fell off end of chain &quot;, db-&gt;unit);
++ printf(&quot;0x%x at 0x%x by 0x%x, max_ent=0x%x\n&quot;,
++ incode, finchar, db-&gt;dict[finchar].cptr, max_ent);
++ return DECOMP_FATALERROR;
++ }
++ if (dictp-&gt;codem1 != finchar-1) {
++ printf(&quot;bsd_decomp%d: bad code chain 0x%x finchar=0x%x &quot;,
++ db-&gt;unit, incode, finchar);
++ printf(&quot;oldcode=0x%x cptr=0x%x codem1=0x%x\n&quot;, oldcode,
++ db-&gt;dict[finchar].cptr, dictp-&gt;codem1);
++ return DECOMP_FATALERROR;
++ }
++#endif
++ *--p = dictp-&gt;f.hs.suffix;
++ finchar = dictp-&gt;f.hs.prefix;
++ }
++ *--p = finchar;
++
++#ifdef DEBUG
++ if (--codelen != 0)
++ printf(&quot;bsd_decomp%d: short by %d after code 0x%x, max_ent=0x%x\n&quot;,
++ db-&gt;unit, codelen, incode, max_ent);
++#endif
++
++ if (extra) /* the KwKwK case again */
++ *wptr++ = finchar;
++
++ /*
++ * If not first code in a packet, and
++ * if not out of code space, then allocate a new code.
++ *
++ * Keep the hash table correct so it can be used
++ * with uncompressed packets.
++ */
++ if (oldcode != CLEAR &amp;&amp; max_ent &lt; db-&gt;maxmaxcode) {
++ struct bsd_dict *dictp2;
++ u_int32_t fcode;
++ int hval, disp;
++
++ fcode = BSD_KEY(oldcode,finchar);
++ hval = BSD_HASH(oldcode,finchar,db-&gt;hshift);
++ dictp = &amp;db-&gt;dict[hval];
++
++ /* look for a free hash table entry */
++ if (dictp-&gt;codem1 &lt; max_ent) {
++ disp = (hval == 0) ? 1 : hval;
++ do {
++ hval += disp;
++ if (hval &gt;= db-&gt;hsize)
++ hval -= db-&gt;hsize;
++ dictp = &amp;db-&gt;dict[hval];
++ } while (dictp-&gt;codem1 &lt; max_ent);
++ }
++
++ /*
++ * Invalidate previous hash table entry
++ * assigned this code, and then take it over
++ */
++ dictp2 = &amp;db-&gt;dict[max_ent+1];
++ if (db-&gt;dict[dictp2-&gt;cptr].codem1 == max_ent) {
++ db-&gt;dict[dictp2-&gt;cptr].codem1 = BADCODEM1;
++ }
++ dictp2-&gt;cptr = hval;
++ dictp-&gt;codem1 = max_ent;
++ dictp-&gt;f.fcode = fcode;
++
++ db-&gt;max_ent = ++max_ent;
++ db-&gt;lens[max_ent] = db-&gt;lens[oldcode]+1;
++
++ /* Expand code size if needed. */
++ if (max_ent &gt;= MAXCODE(n_bits) &amp;&amp; max_ent &lt; db-&gt;maxmaxcode) {
++ db-&gt;n_bits = ++n_bits;
++ tgtbitno = 32-n_bits;
++ }
++ }
++ oldcode = incode;
++ }
++ *outlenp = wptr - (dmp + db-&gt;hdrlen);
++
++ /*
++ * Keep the checkpoint right so that incompressible packets
++ * clear the dictionary at the right times.
++ */
++ db-&gt;bytes_out += ilen;
++ db-&gt;in_count += explen;
++ if (bsd_check(db) &amp;&amp; db-&gt;debug) {
++ printf(&quot;bsd_decomp%d: peer should have cleared dictionary\n&quot;,
++ db-&gt;unit);
++ }
++
++ ++db-&gt;comp_count;
++ db-&gt;comp_bytes += ilen + BSD_OVHD;
++ ++db-&gt;uncomp_count;
++ db-&gt;uncomp_bytes += explen;
++
++ return DECOMP_OK;
++}
++#endif /* DO_BSD_COMPRESS */
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/pppdump/bsd-comp.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1ppppppdumpdeflatec">Added: drakx/trunk/mdk-stage1/ppp/pppdump/deflate.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppdump/deflate.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppdump/deflate.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,344 @@
++/*
++ * ppp_deflate.c - interface the zlib procedures for Deflate compression
++ * and decompression (as used by gzip) to the PPP code.
++ *
++ * Copyright (c) 1994 The Australian National University.
++ * All rights reserved.
++ *
++ * Permission to use, copy, modify, and distribute this software and its
++ * documentation is hereby granted, provided that the above copyright
++ * notice appears in all copies. This software is provided without any
++ * warranty, express or implied. The Australian National University
++ * makes no representations about the suitability of this software for
++ * any purpose.
++ *
++ * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY
++ * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
++ * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
++ * THE AUSTRALIAN NATIONAL UNIVERSITY HAS BEEN ADVISED OF THE POSSIBILITY
++ * OF SUCH DAMAGE.
++ *
++ * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
++ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
++ * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
++ * ON AN &quot;AS IS&quot; BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO
++ * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
++ * OR MODIFICATIONS.
++ *
++ * $Id: deflate.c 195720 2001-06-11 11:44:34Z gc $
++ */
++
++#include &lt;sys/types.h&gt;
++#include &lt;stddef.h&gt;
++#include &lt;stdlib.h&gt;
++#include &quot;ppp_defs.h&quot;
++#include &quot;ppp-comp.h&quot;
++#include &quot;zlib.h&quot;
++
++#if DO_DEFLATE
++
++#define DEFLATE_DEBUG 1
++
++/*
++ * State for a Deflate (de)compressor.
++ */
++struct deflate_state {
++ int seqno;
++ int w_size;
++ int unit;
++ int hdrlen;
++ int mru;
++ int debug;
++ z_stream strm;
++ struct compstat stats;
++};
++
++#define DEFLATE_OVHD 2 /* Deflate overhead/packet */
++
++static void *z_alloc __P((void *, u_int items, u_int size));
++static void z_free __P((void *, void *ptr, u_int nb));
++static void *z_decomp_alloc __P((u_char *options, int opt_len));
++static void z_decomp_free __P((void *state));
++static int z_decomp_init __P((void *state, u_char *options, int opt_len,
++ int unit, int hdrlen, int mru, int debug));
++static void z_incomp __P((void *state, u_char *dmsg, int len));
++static int z_decompress __P((void *state, u_char *cmp, int inlen,
++ u_char *dmp, int *outlenp));
++static void z_decomp_reset __P((void *state));
++static void z_comp_stats __P((void *state, struct compstat *stats));
++
++/*
++ * Procedures exported to if_ppp.c.
++ */
++struct compressor ppp_deflate = {
++ CI_DEFLATE, /* compress_proto */
++ z_decomp_alloc, /* decomp_alloc */
++ z_decomp_free, /* decomp_free */
++ z_decomp_init, /* decomp_init */
++ z_decomp_reset, /* decomp_reset */
++ z_decompress, /* decompress */
++ z_incomp, /* incomp */
++ z_comp_stats, /* decomp_stat */
++};
++
++/*
++ * Space allocation and freeing routines for use by zlib routines.
++ */
++static void *
++z_alloc(notused, items, size)
++ void *notused;
++ u_int items, size;
++{
++ return malloc(items * size);
++}
++
++static void
++z_free(notused, ptr, nbytes)
++ void *notused;
++ void *ptr;
++ u_int nbytes;
++{
++ free(ptr);
++}
++
++static void
++z_comp_stats(arg, stats)
++ void *arg;
++ struct compstat *stats;
++{
++ struct deflate_state *state = (struct deflate_state *) arg;
++ u_int out;
++
++ *stats = state-&gt;stats;
++ stats-&gt;ratio = stats-&gt;unc_bytes;
++ out = stats-&gt;comp_bytes + stats-&gt;unc_bytes;
++ if (stats-&gt;ratio &lt;= 0x7ffffff)
++ stats-&gt;ratio &lt;&lt;= 8;
++ else
++ out &gt;&gt;= 8;
++ if (out != 0)
++ stats-&gt;ratio /= out;
++}
++
++/*
++ * Allocate space for a decompressor.
++ */
++static void *
++z_decomp_alloc(options, opt_len)
++ u_char *options;
++ int opt_len;
++{
++ struct deflate_state *state;
++ int w_size;
++
++ if (opt_len != CILEN_DEFLATE || options[0] != CI_DEFLATE
++ || options[1] != CILEN_DEFLATE
++ || DEFLATE_METHOD(options[2]) != DEFLATE_METHOD_VAL
++ || options[3] != DEFLATE_CHK_SEQUENCE)
++ return NULL;
++ w_size = DEFLATE_SIZE(options[2]);
++ if (w_size &lt; DEFLATE_MIN_SIZE || w_size &gt; DEFLATE_MAX_SIZE)
++ return NULL;
++
++ state = (struct deflate_state *) malloc(sizeof(*state));
++ if (state == NULL)
++ return NULL;
++
++ state-&gt;strm.next_out = NULL;
++ state-&gt;strm.zalloc = (alloc_func) z_alloc;
++ state-&gt;strm.zfree = (free_func) z_free;
++ if (inflateInit2(&amp;state-&gt;strm, -w_size) != Z_OK) {
++ free(state);
++ return NULL;
++ }
++
++ state-&gt;w_size = w_size;
++ memset(&amp;state-&gt;stats, 0, sizeof(state-&gt;stats));
++ return (void *) state;
++}
++
++static void
++z_decomp_free(arg)
++ void *arg;
++{
++ struct deflate_state *state = (struct deflate_state *) arg;
++
++ inflateEnd(&amp;state-&gt;strm);
++ free(state);
++}
++
++static int
++z_decomp_init(arg, options, opt_len, unit, hdrlen, mru, debug)
++ void *arg;
++ u_char *options;
++ int opt_len, unit, hdrlen, mru, debug;
++{
++ struct deflate_state *state = (struct deflate_state *) arg;
++
++ if (opt_len &lt; CILEN_DEFLATE || options[0] != CI_DEFLATE
++ || options[1] != CILEN_DEFLATE
++ || DEFLATE_METHOD(options[2]) != DEFLATE_METHOD_VAL
++ || DEFLATE_SIZE(options[2]) != state-&gt;w_size
++ || options[3] != DEFLATE_CHK_SEQUENCE)
++ return 0;
++
++ state-&gt;seqno = 0;
++ state-&gt;unit = unit;
++ state-&gt;hdrlen = hdrlen;
++ state-&gt;debug = debug;
++ state-&gt;mru = mru;
++
++ inflateReset(&amp;state-&gt;strm);
++
++ return 1;
++}
++
++static void
++z_decomp_reset(arg)
++ void *arg;
++{
++ struct deflate_state *state = (struct deflate_state *) arg;
++
++ state-&gt;seqno = 0;
++ inflateReset(&amp;state-&gt;strm);
++}
++
++/*
++ * Decompress a Deflate-compressed packet.
++ *
++ * Because of patent problems, we return DECOMP_ERROR for errors
++ * found by inspecting the input data and for system problems, but
++ * DECOMP_FATALERROR for any errors which could possibly be said to
++ * be being detected &quot;after&quot; decompression. For DECOMP_ERROR,
++ * we can issue a CCP reset-request; for DECOMP_FATALERROR, we may be
++ * infringing a patent of Motorola's if we do, so we take CCP down
++ * instead.
++ *
++ * Given that the frame has the correct sequence number and a good FCS,
++ * errors such as invalid codes in the input most likely indicate a
++ * bug, so we return DECOMP_FATALERROR for them in order to turn off
++ * compression, even though they are detected by inspecting the input.
++ */
++static int
++z_decompress(arg, mi, inlen, mo, outlenp)
++ void *arg;
++ u_char *mi, *mo;
++ int inlen, *outlenp;
++{
++ struct deflate_state *state = (struct deflate_state *) arg;
++ u_char *rptr, *wptr;
++ int rlen, olen, ospace;
++ int seq, i, flush, r, decode_proto;
++
++ rptr = mi;
++ if (*rptr == 0)
++ ++rptr;
++ ++rptr;
++
++ /* Check the sequence number. */
++ seq = (rptr[0] &lt;&lt; 8) + rptr[1];
++ rptr += 2;
++ if (seq != state-&gt;seqno) {
++#if !DEFLATE_DEBUG
++ if (state-&gt;debug)
++#endif
++ printf(&quot;z_decompress%d: bad seq # %d, expected %d\n&quot;,
++ state-&gt;unit, seq, state-&gt;seqno);
++ return DECOMP_ERROR;
++ }
++ ++state-&gt;seqno;
++
++ /*
++ * Set up to call inflate.
++ */
++ wptr = mo;
++ state-&gt;strm.next_in = rptr;
++ state-&gt;strm.avail_in = mi + inlen - rptr;
++ rlen = state-&gt;strm.avail_in + PPP_HDRLEN + DEFLATE_OVHD;
++ state-&gt;strm.next_out = wptr;
++ state-&gt;strm.avail_out = state-&gt;mru + 2;
++
++ r = inflate(&amp;state-&gt;strm, Z_PACKET_FLUSH);
++ if (r != Z_OK) {
++#if !DEFLATE_DEBUG
++ if (state-&gt;debug)
++#endif
++ printf(&quot;z_decompress%d: inflate returned %d (%s)\n&quot;,
++ state-&gt;unit, r, (state-&gt;strm.msg? state-&gt;strm.msg: &quot;&quot;));
++ return DECOMP_FATALERROR;
++ }
++ olen = state-&gt;mru + 2 - state-&gt;strm.avail_out;
++ *outlenp = olen;
++
++ if ((wptr[0] &amp; 1) != 0)
++ ++olen; /* for suppressed protocol high byte */
++ olen += 2; /* for address, control */
++
++#if DEFLATE_DEBUG
++ if (olen &gt; state-&gt;mru + PPP_HDRLEN)
++ printf(&quot;ppp_deflate%d: exceeded mru (%d &gt; %d)\n&quot;,
++ state-&gt;unit, olen, state-&gt;mru + PPP_HDRLEN);
++#endif
++
++ state-&gt;stats.unc_bytes += olen;
++ state-&gt;stats.unc_packets++;
++ state-&gt;stats.comp_bytes += rlen;
++ state-&gt;stats.comp_packets++;
++
++ return DECOMP_OK;
++}
++
++/*
++ * Incompressible data has arrived - add it to the history.
++ */
++static void
++z_incomp(arg, mi, mlen)
++ void *arg;
++ u_char *mi;
++ int mlen;
++{
++ struct deflate_state *state = (struct deflate_state *) arg;
++ u_char *rptr;
++ int rlen, proto, r;
++
++ /*
++ * Check that the protocol is one we handle.
++ */
++ rptr = mi;
++ proto = rptr[0];
++ if ((proto &amp; 1) == 0)
++ proto = (proto &lt;&lt; 8) + rptr[1];
++ if (proto &gt; 0x3fff || proto == 0xfd || proto == 0xfb)
++ return;
++
++ ++state-&gt;seqno;
++
++ if (rptr[0] == 0)
++ ++rptr;
++ rlen = mi + mlen - rptr;
++ state-&gt;strm.next_in = rptr;
++ state-&gt;strm.avail_in = rlen;
++ r = inflateIncomp(&amp;state-&gt;strm);
++ if (r != Z_OK) {
++ /* gak! */
++#if !DEFLATE_DEBUG
++ if (state-&gt;debug)
++#endif
++ printf(&quot;z_incomp%d: inflateIncomp returned %d (%s)\n&quot;,
++ state-&gt;unit, r, (state-&gt;strm.msg? state-&gt;strm.msg: &quot;&quot;));
++ return;
++ }
++
++ /*
++ * Update stats.
++ */
++ if (proto &lt;= 0xff)
++ ++rlen;
++ rlen += 2;
++ state-&gt;stats.inc_bytes += rlen;
++ state-&gt;stats.inc_packets++;
++ state-&gt;stats.unc_bytes += rlen;
++ state-&gt;stats.unc_packets++;
++}
++
++#endif /* DO_DEFLATE */
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/pppdump/deflate.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1ppppppdumppppcomph">Added: drakx/trunk/mdk-stage1/ppp/pppdump/ppp-comp.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppdump/ppp-comp.h (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppdump/ppp-comp.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,150 @@
++/*
++ * ppp-comp.h - Definitions for doing PPP packet compression.
++ *
++ * Copyright (c) 1994 The Australian National University.
++ * All rights reserved.
++ *
++ * Permission to use, copy, modify, and distribute this software and its
++ * documentation is hereby granted, provided that the above copyright
++ * notice appears in all copies. This software is provided without any
++ * warranty, express or implied. The Australian National University
++ * makes no representations about the suitability of this software for
++ * any purpose.
++ *
++ * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY
++ * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
++ * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
++ * THE AUSTRALIAN NATIONAL UNIVERSITY HAVE BEEN ADVISED OF THE POSSIBILITY
++ * OF SUCH DAMAGE.
++ *
++ * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
++ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
++ * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
++ * ON AN &quot;AS IS&quot; BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO
++ * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
++ * OR MODIFICATIONS.
++ *
++ * $Id: ppp-comp.h 195720 2001-06-11 11:44:34Z gc $
++ */
++
++#ifndef _NET_PPP_COMP_H
++#define _NET_PPP_COMP_H
++
++/*
++ * The following symbols control whether we include code for
++ * various compression methods.
++ */
++#ifndef DO_BSD_COMPRESS
++#define DO_BSD_COMPRESS 1 /* by default, include BSD-Compress */
++#endif
++#ifndef DO_DEFLATE
++#define DO_DEFLATE 1 /* by default, include Deflate */
++#endif
++#define DO_PREDICTOR_1 0
++#define DO_PREDICTOR_2 0
++
++/*
++ * Structure giving methods for compression/decompression.
++ */
++struct compressor {
++ int compress_proto; /* CCP compression protocol number */
++
++ /* Allocate space for a decompressor (receive side) */
++ void *(*decomp_alloc) __P((u_char *options, int opt_len));
++ /* Free space used by a decompressor */
++ void (*decomp_free) __P((void *state));
++ /* Initialize a decompressor */
++ int (*decomp_init) __P((void *state, u_char *options, int opt_len,
++ int unit, int hdrlen, int mru, int debug));
++ /* Reset a decompressor */
++ void (*decomp_reset) __P((void *state));
++ /* Decompress a packet. */
++ int (*decompress) __P((void *state, u_char *mp, int inlen,
++ u_char *dmp, int *outlen));
++ /* Update state for an incompressible packet received */
++ void (*incomp) __P((void *state, u_char *mp, int len));
++ /* Return decompression statistics */
++ void (*decomp_stat) __P((void *state, struct compstat *stats));
++};
++
++/*
++ * Return values for decompress routine.
++ * We need to make these distinctions so that we can disable certain
++ * useful functionality, namely sending a CCP reset-request as a result
++ * of an error detected after decompression. This is to avoid infringing
++ * a patent held by Motorola.
++ * Don't you just lurve software patents.
++ */
++#define DECOMP_OK 0 /* everything went OK */
++#define DECOMP_ERROR 1 /* error detected before decomp. */
++#define DECOMP_FATALERROR 2 /* error detected after decomp. */
++
++/*
++ * CCP codes.
++ */
++#define CCP_CONFREQ 1
++#define CCP_CONFACK 2
++#define CCP_CONFNAK 3
++#define CCP_CONFREJ 4
++#define CCP_TERMREQ 5
++#define CCP_TERMACK 6
++#define CCP_RESETREQ 14
++#define CCP_RESETACK 15
++
++/*
++ * Max # bytes for a CCP option
++ */
++#define CCP_MAX_OPTION_LENGTH 32
++
++/*
++ * Parts of a CCP packet.
++ */
++#define CCP_CODE(dp) ((dp)[0])
++#define CCP_ID(dp) ((dp)[1])
++#define CCP_LENGTH(dp) (((dp)[2] &lt;&lt; 8) + (dp)[3])
++#define CCP_HDRLEN 4
++
++#define CCP_OPT_CODE(dp) ((dp)[0])
++#define CCP_OPT_LENGTH(dp) ((dp)[1])
++#define CCP_OPT_MINLEN 2
++
++/*
++ * Definitions for BSD-Compress.
++ */
++#define CI_BSD_COMPRESS 21 /* config. option for BSD-Compress */
++#define CILEN_BSD_COMPRESS 3 /* length of config. option */
++
++/* Macros for handling the 3rd byte of the BSD-Compress config option. */
++#define BSD_NBITS(x) ((x) &amp; 0x1F) /* number of bits requested */
++#define BSD_VERSION(x) ((x) &gt;&gt; 5) /* version of option format */
++#define BSD_CURRENT_VERSION 1 /* current version number */
++#define BSD_MAKE_OPT(v, n) (((v) &lt;&lt; 5) | (n))
++
++#define BSD_MIN_BITS 9 /* smallest code size supported */
++#define BSD_MAX_BITS 15 /* largest code size supported */
++
++/*
++ * Definitions for Deflate.
++ */
++#define CI_DEFLATE 26 /* config option for Deflate */
++#define CI_DEFLATE_DRAFT 24 /* value used in original draft RFC */
++#define CILEN_DEFLATE 4 /* length of its config option */
++
++#define DEFLATE_MIN_SIZE 8
++#define DEFLATE_MAX_SIZE 15
++#define DEFLATE_METHOD_VAL 8
++#define DEFLATE_SIZE(x) (((x) &gt;&gt; 4) + DEFLATE_MIN_SIZE)
++#define DEFLATE_METHOD(x) ((x) &amp; 0x0F)
++#define DEFLATE_MAKE_OPT(w) ((((w) - DEFLATE_MIN_SIZE) &lt;&lt; 4) \
++ + DEFLATE_METHOD_VAL)
++#define DEFLATE_CHK_SEQUENCE 0
++
++/*
++ * Definitions for other, as yet unsupported, compression methods.
++ */
++#define CI_PREDICTOR_1 1 /* config option for Predictor-1 */
++#define CILEN_PREDICTOR_1 2 /* length of its config option */
++#define CI_PREDICTOR_2 2 /* config option for Predictor-2 */
++#define CILEN_PREDICTOR_2 2 /* length of its config option */
++
++#endif /* _NET_PPP_COMP_H */
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/pppdump/ppp-comp.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1ppppppdumppppdump8">Added: drakx/trunk/mdk-stage1/ppp/pppdump/pppdump.8</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppdump/pppdump.8 (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppdump/pppdump.8 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,62 @@
++.\&quot; @(#) $Id: pppdump.8 195720 2001-06-11 11:44:34Z gc $
++.TH PPPDUMP 8 &quot;1 April 1999&quot;
++.SH NAME
++pppdump \- convert PPP record file to readable format
++.SH SYNOPSIS
++.B pppdump
++[
++.B -h
++|
++.B -p
++[
++.B -d
++]] [
++.B -r
++] [
++.B -m \fImru
++] [
++.I file \fR...
++]
++.ti 12
++.SH DESCRIPTION
++The
++.B pppdump
++utility converts the files written using the \fIrecord\fR option of
++.B pppd
++into a human-readable format. If one or more filenames are specified,
++.B pppdump
++will read each in turn; otherwise it will read its standard input. In
++each case the result is written to standard output.
++.PP
++The options are as follows:
++.TP
++.B -h
++Prints the bytes sent and received in hexadecimal. If neither this
++option nor the \fB-p\fR option is specified, the bytes are printed as
++the characters themselves, with non-printing and non-ASCII characters
++printed as escape sequences.
++.TP
++.B -p
++Collects the bytes sent and received into PPP packets, interpreting
++the async HDLC framing and escape characters and checking the FCS
++(frame check sequence) of each packet. The packets are printed as hex
++values and as characters (non-printable characters are printed as
++`.').
++.TP
++.B -d
++With the \fB-p\fR option, this option causes
++.B pppdump
++to decompress packets which have been compressed with the BSD-Compress
++or Deflate methods.
++.TP
++.B -r
++Reverses the direction indicators, so that `sent' is printed for
++bytes or packets received, and `rcvd' is printed for bytes or packets
++sent.
++.TP
++.B -m \fImru
++Use \fImru\fR as the MRU (maximum receive unit) for both directions of
++the link when checking for over-length PPP packets (with the \fB-p\fR
++option).
++.SH SEE ALSO
++pppd(8)
+
+<a id="drakxtrunkmdkstage1ppppppdumppppdumpc">Added: drakx/trunk/mdk-stage1/ppp/pppdump/pppdump.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppdump/pppdump.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppdump/pppdump.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,502 @@
++/*
++ * pppdump - print out the contents of a record file generated by
++ * pppd in readable form.
++ *
++ * Copyright (C) 1999 Paul Mackerras. All rights reserved.
++ *
++ * Redistribution and use in source and binary forms are permitted
++ * provided that the above copyright notice and this paragraph are
++ * duplicated in all such forms. The name of the author
++ * may not be used to endorse or promote products derived
++ * from this software without specific prior written permission.
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
++ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
++ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++ */
++#include &lt;stdio.h&gt;
++#include &lt;unistd.h&gt;
++#include &lt;time.h&gt;
++#include &lt;sys/types.h&gt;
++#include &quot;ppp_defs.h&quot;
++#include &quot;ppp-comp.h&quot;
++
++int hexmode;
++int pppmode;
++int reverse;
++int decompress;
++int mru = 1500;
++int abs_times;
++time_t start_time;
++int start_time_tenths;
++int tot_sent, tot_rcvd;
++
++extern int optind;
++extern char *optarg;
++
++main(ac, av)
++ int ac;
++ char **av;
++{
++ int i;
++ char *p;
++ FILE *f;
++
++ while ((i = getopt(ac, av, &quot;hprdm:a&quot;)) != -1) {
++ switch (i) {
++ case 'h':
++ hexmode = 1;
++ break;
++ case 'p':
++ pppmode = 1;
++ break;
++ case 'r':
++ reverse = 1;
++ break;
++ case 'd':
++ decompress = 1;
++ break;
++ case 'm':
++ mru = atoi(optarg);
++ break;
++ case 'a':
++ abs_times = 1;
++ break;
++ default:
++ fprintf(stderr, &quot;Usage: %s [-h | -p[d]] [-r] [-m mru] [-a] [file ...]\n&quot;, av[0]);
++ exit(1);
++ }
++ }
++ if (optind &gt;= ac)
++ dumplog(stdin);
++ else {
++ for (i = optind; i &lt; ac; ++i) {
++ p = av[i];
++ if ((f = fopen(p, &quot;r&quot;)) == NULL) {
++ perror(p);
++ exit(1);
++ }
++ if (pppmode)
++ dumpppp(f);
++ else
++ dumplog(f);
++ fclose(f);
++ }
++ }
++ exit(0);
++}
++
++dumplog(f)
++ FILE *f;
++{
++ int c, n, k, col;
++ int nb, c2;
++ unsigned char buf[16];
++
++ while ((c = getc(f)) != EOF) {
++ switch (c) {
++ case 1:
++ case 2:
++ if (reverse)
++ c = 3 - c;
++ printf(&quot;%s %c&quot;, c==1? &quot;sent&quot;: &quot;rcvd&quot;, hexmode? ' ': '&quot;');
++ col = 6;
++ n = getc(f);
++ n = (n &lt;&lt; 8) + getc(f);
++ *(c==1? &amp;tot_sent: &amp;tot_rcvd) += n;
++ nb = 0;
++ for (; n &gt; 0; --n) {
++ c = getc(f);
++ if (c == EOF) {
++ printf(&quot;\nEOF\n&quot;);
++ exit(0);
++ }
++ if (hexmode) {
++ if (nb &gt;= 16) {
++ printf(&quot; &quot;);
++ for (k = 0; k &lt; nb; ++k) {
++ c2 = buf[k];
++ putchar((' ' &lt;= c2 &amp;&amp; c2 &lt;= '~')? c2: '.');
++ }
++ printf(&quot;\n &quot;);
++ nb = 0;
++ }
++ buf[nb++] = c;
++ printf(&quot; %.2x&quot;, c);
++ } else {
++ k = (' ' &lt;= c &amp;&amp; c &lt;= '~')? (c != '\\' &amp;&amp; c != '&quot;')? 1: 2: 3;
++ if ((col += k) &gt;= 78) {
++ printf(&quot;\n &quot;);
++ col = 6 + k;
++ }
++ switch (k) {
++ case 1:
++ putchar(c);
++ break;
++ case 2:
++ printf(&quot;\\%c&quot;, c);
++ break;
++ case 3:
++ printf(&quot;\\%.2x&quot;, c);
++ break;
++ }
++ }
++ }
++ if (hexmode) {
++ for (k = nb; k &lt; 16; ++k)
++ printf(&quot; &quot;);
++ printf(&quot; &quot;);
++ for (k = 0; k &lt; nb; ++k) {
++ c2 = buf[k];
++ putchar((' ' &lt;= c2 &amp;&amp; c2 &lt;= '~')? c2: '.');
++ }
++ } else
++ putchar('&quot;');
++ printf(&quot;\n&quot;);
++ break;
++ case 3:
++ case 4:
++ printf(&quot;end %s\n&quot;, c==3? &quot;send&quot;: &quot;recv&quot;);
++ break;
++ case 5:
++ case 6:
++ case 7:
++ show_time(f, c);
++ break;
++ default:
++ printf(&quot;?%.2x\n&quot;);
++ }
++ }
++}
++
++/*
++ * FCS lookup table as calculated by genfcstab.
++ */
++static u_short fcstab[256] = {
++ 0x0000, 0x1189, 0x2312, 0x329b, 0x4624, 0x57ad, 0x6536, 0x74bf,
++ 0x8c48, 0x9dc1, 0xaf5a, 0xbed3, 0xca6c, 0xdbe5, 0xe97e, 0xf8f7,
++ 0x1081, 0x0108, 0x3393, 0x221a, 0x56a5, 0x472c, 0x75b7, 0x643e,
++ 0x9cc9, 0x8d40, 0xbfdb, 0xae52, 0xdaed, 0xcb64, 0xf9ff, 0xe876,
++ 0x2102, 0x308b, 0x0210, 0x1399, 0x6726, 0x76af, 0x4434, 0x55bd,
++ 0xad4a, 0xbcc3, 0x8e58, 0x9fd1, 0xeb6e, 0xfae7, 0xc87c, 0xd9f5,
++ 0x3183, 0x200a, 0x1291, 0x0318, 0x77a7, 0x662e, 0x54b5, 0x453c,
++ 0xbdcb, 0xac42, 0x9ed9, 0x8f50, 0xfbef, 0xea66, 0xd8fd, 0xc974,
++ 0x4204, 0x538d, 0x6116, 0x709f, 0x0420, 0x15a9, 0x2732, 0x36bb,
++ 0xce4c, 0xdfc5, 0xed5e, 0xfcd7, 0x8868, 0x99e1, 0xab7a, 0xbaf3,
++ 0x5285, 0x430c, 0x7197, 0x601e, 0x14a1, 0x0528, 0x37b3, 0x263a,
++ 0xdecd, 0xcf44, 0xfddf, 0xec56, 0x98e9, 0x8960, 0xbbfb, 0xaa72,
++ 0x6306, 0x728f, 0x4014, 0x519d, 0x2522, 0x34ab, 0x0630, 0x17b9,
++ 0xef4e, 0xfec7, 0xcc5c, 0xddd5, 0xa96a, 0xb8e3, 0x8a78, 0x9bf1,
++ 0x7387, 0x620e, 0x5095, 0x411c, 0x35a3, 0x242a, 0x16b1, 0x0738,
++ 0xffcf, 0xee46, 0xdcdd, 0xcd54, 0xb9eb, 0xa862, 0x9af9, 0x8b70,
++ 0x8408, 0x9581, 0xa71a, 0xb693, 0xc22c, 0xd3a5, 0xe13e, 0xf0b7,
++ 0x0840, 0x19c9, 0x2b52, 0x3adb, 0x4e64, 0x5fed, 0x6d76, 0x7cff,
++ 0x9489, 0x8500, 0xb79b, 0xa612, 0xd2ad, 0xc324, 0xf1bf, 0xe036,
++ 0x18c1, 0x0948, 0x3bd3, 0x2a5a, 0x5ee5, 0x4f6c, 0x7df7, 0x6c7e,
++ 0xa50a, 0xb483, 0x8618, 0x9791, 0xe32e, 0xf2a7, 0xc03c, 0xd1b5,
++ 0x2942, 0x38cb, 0x0a50, 0x1bd9, 0x6f66, 0x7eef, 0x4c74, 0x5dfd,
++ 0xb58b, 0xa402, 0x9699, 0x8710, 0xf3af, 0xe226, 0xd0bd, 0xc134,
++ 0x39c3, 0x284a, 0x1ad1, 0x0b58, 0x7fe7, 0x6e6e, 0x5cf5, 0x4d7c,
++ 0xc60c, 0xd785, 0xe51e, 0xf497, 0x8028, 0x91a1, 0xa33a, 0xb2b3,
++ 0x4a44, 0x5bcd, 0x6956, 0x78df, 0x0c60, 0x1de9, 0x2f72, 0x3efb,
++ 0xd68d, 0xc704, 0xf59f, 0xe416, 0x90a9, 0x8120, 0xb3bb, 0xa232,
++ 0x5ac5, 0x4b4c, 0x79d7, 0x685e, 0x1ce1, 0x0d68, 0x3ff3, 0x2e7a,
++ 0xe70e, 0xf687, 0xc41c, 0xd595, 0xa12a, 0xb0a3, 0x8238, 0x93b1,
++ 0x6b46, 0x7acf, 0x4854, 0x59dd, 0x2d62, 0x3ceb, 0x0e70, 0x1ff9,
++ 0xf78f, 0xe606, 0xd49d, 0xc514, 0xb1ab, 0xa022, 0x92b9, 0x8330,
++ 0x7bc7, 0x6a4e, 0x58d5, 0x495c, 0x3de3, 0x2c6a, 0x1ef1, 0x0f78
++};
++
++struct pkt {
++ int cnt;
++ int esc;
++ int flags;
++ struct compressor *comp;
++ void *state;
++ unsigned char buf[8192];
++} spkt, rpkt;
++
++/* Values for flags */
++#define CCP_ISUP 1
++#define CCP_ERROR 2
++#define CCP_FATALERROR 4
++#define CCP_ERR (CCP_ERROR | CCP_FATALERROR)
++#define CCP_DECOMP_RUN 8
++
++unsigned char dbuf[8192];
++
++dumpppp(f)
++ FILE *f;
++{
++ int c, n, k;
++ int nb, nl, dn, proto, rv;
++ char *dir, *q;
++ unsigned char *p, *r, *endp;
++ unsigned char *d;
++ unsigned short fcs;
++ struct pkt *pkt;
++
++ spkt.cnt = rpkt.cnt = 0;
++ spkt.esc = rpkt.esc = 0;
++ while ((c = getc(f)) != EOF) {
++ switch (c) {
++ case 1:
++ case 2:
++ if (reverse)
++ c = 3 - c;
++ dir = c==1? &quot;sent&quot;: &quot;rcvd&quot;;
++ pkt = c==1? &amp;spkt: &amp;rpkt;
++ n = getc(f);
++ n = (n &lt;&lt; 8) + getc(f);
++ *(c==1? &amp;tot_sent: &amp;tot_rcvd) += n;
++ for (; n &gt; 0; --n) {
++ c = getc(f);
++ switch (c) {
++ case EOF:
++ printf(&quot;\nEOF\n&quot;);
++ if (spkt.cnt &gt; 0)
++ printf(&quot;[%d bytes in incomplete send packet]\n&quot;,
++ spkt.cnt);
++ if (rpkt.cnt &gt; 0)
++ printf(&quot;[%d bytes in incomplete recv packet]\n&quot;,
++ rpkt.cnt);
++ exit(0);
++ case '~':
++ if (pkt-&gt;cnt &gt; 0) {
++ q = dir;
++ if (pkt-&gt;esc) {
++ printf(&quot;%s aborted packet:\n &quot;, dir);
++ q = &quot; &quot;;
++ }
++ nb = pkt-&gt;cnt;
++ p = pkt-&gt;buf;
++ pkt-&gt;cnt = 0;
++ pkt-&gt;esc = 0;
++ if (nb &lt;= 2) {
++ printf(&quot;%s short packet [%d bytes]:&quot;, q, nb);
++ for (k = 0; k &lt; nb; ++k)
++ printf(&quot; %.2x&quot;, p[k]);
++ printf(&quot;\n&quot;);
++ break;
++ }
++ fcs = PPP_INITFCS;
++ for (k = 0; k &lt; nb; ++k)
++ fcs = PPP_FCS(fcs, p[k]);
++ fcs &amp;= 0xFFFF;
++ nb -= 2;
++ endp = p + nb;
++ r = p;
++ if (r[0] == 0xff &amp;&amp; r[1] == 3)
++ r += 2;
++ if ((r[0] &amp; 1) == 0)
++ ++r;
++ ++r;
++ if (endp - r &gt; mru)
++ printf(&quot; ERROR: length (%d) &gt; MRU (%d)\n&quot;,
++ endp - r, mru);
++ if (decompress &amp;&amp; fcs == PPP_GOODFCS) {
++ /* See if this is a CCP or compressed packet */
++ d = dbuf;
++ r = p;
++ if (r[0] == 0xff &amp;&amp; r[1] == 3) {
++ *d++ = *r++;
++ *d++ = *r++;
++ }
++ proto = r[0];
++ if ((proto &amp; 1) == 0)
++ proto = (proto &lt;&lt; 8) + r[1];
++ if (proto == PPP_CCP) {
++ handle_ccp(pkt, r + 2, endp - r - 2);
++ } else if (proto == PPP_COMP) {
++ if ((pkt-&gt;flags &amp; CCP_ISUP)
++ &amp;&amp; (pkt-&gt;flags &amp; CCP_DECOMP_RUN)
++ &amp;&amp; pkt-&gt;state
++ &amp;&amp; (pkt-&gt;flags &amp; CCP_ERR) == 0) {
++ rv = pkt-&gt;comp-&gt;decompress(pkt-&gt;state, r,
++ endp - r, d, &amp;dn);
++ switch (rv) {
++ case DECOMP_OK:
++ p = dbuf;
++ nb = d + dn - p;
++ if ((d[0] &amp; 1) == 0)
++ --dn;
++ --dn;
++ if (dn &gt; mru)
++ printf(&quot; ERROR: decompressed length (%d) &gt; MRU (%d)\n&quot;, dn, mru);
++ break;
++ case DECOMP_ERROR:
++ printf(&quot; DECOMPRESSION ERROR\n&quot;);
++ pkt-&gt;flags |= CCP_ERROR;
++ break;
++ case DECOMP_FATALERROR:
++ printf(&quot; FATAL DECOMPRESSION ERROR\n&quot;);
++ pkt-&gt;flags |= CCP_FATALERROR;
++ break;
++ }
++ }
++ } else if (pkt-&gt;state
++ &amp;&amp; (pkt-&gt;flags &amp; CCP_DECOMP_RUN)) {
++ pkt-&gt;comp-&gt;incomp(pkt-&gt;state, r, endp - r);
++ }
++ }
++ do {
++ nl = nb &lt; 16? nb: 16;
++ printf(&quot;%s &quot;, q);
++ for (k = 0; k &lt; nl; ++k)
++ printf(&quot; %.2x&quot;, p[k]);
++ for (; k &lt; 16; ++k)
++ printf(&quot; &quot;);
++ printf(&quot; &quot;);
++ for (k = 0; k &lt; nl; ++k) {
++ c = p[k];
++ putchar((' ' &lt;= c &amp;&amp; c &lt;= '~')? c: '.');
++ }
++ printf(&quot;\n&quot;);
++ q = &quot; &quot;;
++ p += nl;
++ nb -= nl;
++ } while (nb &gt; 0);
++ if (fcs != PPP_GOODFCS)
++ printf(&quot; BAD FCS: (residue = %x)\n&quot;, fcs);
++ }
++ break;
++ case '}':
++ if (!pkt-&gt;esc) {
++ pkt-&gt;esc = 1;
++ break;
++ }
++ /* else fall through */
++ default:
++ if (pkt-&gt;esc) {
++ c ^= 0x20;
++ pkt-&gt;esc = 0;
++ }
++ pkt-&gt;buf[pkt-&gt;cnt++] = c;
++ break;
++ }
++ }
++ break;
++ case 3:
++ case 4:
++ if (reverse)
++ c = 7 - c;
++ dir = c==3? &quot;send&quot;: &quot;recv&quot;;
++ pkt = c==3? &amp;spkt: &amp;rpkt;
++ printf(&quot;end %s&quot;, dir);
++ if (pkt-&gt;cnt &gt; 0)
++ printf(&quot; [%d bytes in incomplete packet]&quot;, pkt-&gt;cnt);
++ printf(&quot;\n&quot;);
++ break;
++ case 5:
++ case 6:
++ case 7:
++ show_time(f, c);
++ break;
++ default:
++ printf(&quot;?%.2x\n&quot;);
++ }
++ }
++}
++
++extern struct compressor ppp_bsd_compress, ppp_deflate;
++
++struct compressor *compressors[] = {
++#if DO_BSD_COMPRESS
++ &amp;ppp_bsd_compress,
++#endif
++#if DO_DEFLATE
++ &amp;ppp_deflate,
++#endif
++ NULL
++};
++
++handle_ccp(cp, dp, len)
++ struct pkt *cp;
++ u_char *dp;
++ int len;
++{
++ int clen;
++ struct compressor **comp;
++
++ if (len &lt; CCP_HDRLEN)
++ return;
++ clen = CCP_LENGTH(dp);
++ if (clen &gt; len)
++ return;
++
++ switch (CCP_CODE(dp)) {
++ case CCP_CONFACK:
++ cp-&gt;flags &amp;= ~(CCP_DECOMP_RUN | CCP_ISUP);
++ if (clen &lt; CCP_HDRLEN + CCP_OPT_MINLEN
++ || clen &lt; CCP_HDRLEN + CCP_OPT_LENGTH(dp + CCP_HDRLEN))
++ break;
++ dp += CCP_HDRLEN;
++ clen -= CCP_HDRLEN;
++ for (comp = compressors; *comp != NULL; ++comp) {
++ if ((*comp)-&gt;compress_proto == dp[0]) {
++ if (cp-&gt;state != NULL) {
++ (*cp-&gt;comp-&gt;decomp_free)(cp-&gt;state);
++ cp-&gt;state = NULL;
++ }
++ cp-&gt;comp = *comp;
++ cp-&gt;state = (*comp)-&gt;decomp_alloc(dp, CCP_OPT_LENGTH(dp));
++ cp-&gt;flags |= CCP_ISUP;
++ if (cp-&gt;state != NULL
++ &amp;&amp; (*cp-&gt;comp-&gt;decomp_init)
++ (cp-&gt;state, dp, clen, 0, 0, 8192, 1))
++ cp-&gt;flags = (cp-&gt;flags &amp; ~CCP_ERR) | CCP_DECOMP_RUN;
++ break;
++ }
++ }
++ break;
++
++ case CCP_CONFNAK:
++ case CCP_CONFREJ:
++ cp-&gt;flags &amp;= ~(CCP_DECOMP_RUN | CCP_ISUP);
++ break;
++
++ case CCP_RESETACK:
++ if (cp-&gt;flags &amp; CCP_ISUP) {
++ if (cp-&gt;state &amp;&amp; (cp-&gt;flags &amp; CCP_DECOMP_RUN)) {
++ (*cp-&gt;comp-&gt;decomp_reset)(cp-&gt;state);
++ cp-&gt;flags &amp;= ~CCP_ERROR;
++ }
++ }
++ break;
++ }
++}
++
++show_time(f, c)
++ FILE *f;
++ int c;
++{
++ time_t t;
++ int n;
++ struct tm *tm;
++
++ if (c == 7) {
++ t = getc(f);
++ t = (t &lt;&lt; 8) + getc(f);
++ t = (t &lt;&lt; 8) + getc(f);
++ t = (t &lt;&lt; 8) + getc(f);
++ printf(&quot;start %s&quot;, ctime(&amp;t));
++ start_time = t;
++ start_time_tenths = 0;
++ tot_sent = tot_rcvd = 0;
++ } else {
++ n = getc(f);
++ if (c == 5) {
++ for (c = 3; c &gt; 0; --c)
++ n = (n &lt;&lt; 8) + getc(f);
++ }
++ if (abs_times) {
++ n += start_time_tenths;
++ start_time += n / 10;
++ start_time_tenths = n % 10;
++ tm = localtime(&amp;start_time);
++ printf(&quot;time %.2d:%.2d:%.2d.%d&quot;, tm-&gt;tm_hour, tm-&gt;tm_min,
++ tm-&gt;tm_sec, start_time_tenths);
++ printf(&quot; (sent %d, rcvd %d)\n&quot;, tot_sent, tot_rcvd);
++ } else
++ printf(&quot;time %.1fs\n&quot;, (double) n / 10);
++ }
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/pppdump/pppdump.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1ppppppdumpzlibc">Added: drakx/trunk/mdk-stage1/ppp/pppdump/zlib.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppdump/zlib.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppdump/zlib.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,4614 @@
++/*
++ * This file is derived from various .h and .c files from the zlib-0.95
++ * distribution by Jean-loup Gailly and Mark Adler, with some additions
++ * by Paul Mackerras to aid in implementing Deflate compression and
++ * decompression for PPP packets. See zlib.h for conditions of
++ * distribution and use.
++ *
++ * Changes that have been made include:
++ * - changed functions not used outside this file to &quot;local&quot;
++ * - added minCompression parameter to deflateInit2
++ * - added Z_PACKET_FLUSH (see zlib.h for details)
++ * - added inflateIncomp
++ *
++ * $Id: zlib.c 195720 2001-06-11 11:44:34Z gc $
++ */
++
++
++/*+++++*/
++/* zutil.h -- internal interface and configuration of the compression library
++ * Copyright (C) 1995 Jean-loup Gailly.
++ * For conditions of distribution and use, see copyright notice in zlib.h
++ */
++
++/* WARNING: this file should *not* be used by applications. It is
++ part of the implementation of the compression library and is
++ subject to change. Applications should only use zlib.h.
++ */
++
++/* From: zutil.h,v 1.9 1995/05/03 17:27:12 jloup Exp */
++
++#define _Z_UTIL_H
++
++#include &quot;zlib.h&quot;
++
++#ifdef STDC
++# include &lt;string.h&gt;
++#endif
++
++#ifndef local
++# define local static
++#endif
++/* compile with -Dlocal if your debugger can't find static symbols */
++
++#define FAR
++
++typedef unsigned char uch;
++typedef uch FAR uchf;
++typedef unsigned short ush;
++typedef ush FAR ushf;
++typedef unsigned long ulg;
++
++extern char *z_errmsg[]; /* indexed by 1-zlib_error */
++
++#define ERR_RETURN(strm,err) return (strm-&gt;msg=z_errmsg[1-err], err)
++/* To be used only when the state is known to be valid */
++
++#ifndef NULL
++#define NULL ((void *) 0)
++#endif
++
++ /* common constants */
++
++#define DEFLATED 8
++
++#ifndef DEF_WBITS
++# define DEF_WBITS MAX_WBITS
++#endif
++/* default windowBits for decompression. MAX_WBITS is for compression only */
++
++#if MAX_MEM_LEVEL &gt;= 8
++# define DEF_MEM_LEVEL 8
++#else
++# define DEF_MEM_LEVEL MAX_MEM_LEVEL
++#endif
++/* default memLevel */
++
++#define STORED_BLOCK 0
++#define STATIC_TREES 1
++#define DYN_TREES 2
++/* The three kinds of block type */
++
++#define MIN_MATCH 3
++#define MAX_MATCH 258
++/* The minimum and maximum match lengths */
++
++ /* functions */
++
++#if defined(STDC) &amp;&amp; !defined(HAVE_MEMCPY) &amp;&amp; !defined(NO_MEMCPY)
++# define HAVE_MEMCPY
++#endif
++#ifdef HAVE_MEMCPY
++# define zmemcpy memcpy
++# define zmemzero(dest, len) memset(dest, 0, len)
++#else
++# define zmemcpy(d, s, n) bcopy((s), (d), (n))
++# define zmemzero bzero
++#endif
++
++/* Diagnostic functions */
++#ifdef DEBUG_ZLIB
++# include &lt;stdio.h&gt;
++# ifndef verbose
++# define verbose 0
++# endif
++# define Assert(cond,msg) {if(!(cond)) z_error(msg);}
++# define Trace(x) fprintf x
++# define Tracev(x) {if (verbose) fprintf x ;}
++# define Tracevv(x) {if (verbose&gt;1) fprintf x ;}
++# define Tracec(c,x) {if (verbose &amp;&amp; (c)) fprintf x ;}
++# define Tracecv(c,x) {if (verbose&gt;1 &amp;&amp; (c)) fprintf x ;}
++#else
++# define Assert(cond,msg)
++# define Trace(x)
++# define Tracev(x)
++# define Tracevv(x)
++# define Tracec(c,x)
++# define Tracecv(c,x)
++#endif
++
++
++typedef uLong (*check_func) OF((uLong check, Bytef *buf, uInt len));
++
++/* voidpf zcalloc OF((voidpf opaque, unsigned items, unsigned size)); */
++/* void zcfree OF((voidpf opaque, voidpf ptr)); */
++
++#define ZALLOC(strm, items, size) \
++ (*((strm)-&gt;zalloc))((strm)-&gt;opaque, (items), (size))
++#define ZFREE(strm, addr, size) \
++ (*((strm)-&gt;zfree))((strm)-&gt;opaque, (voidpf)(addr), (size))
++#define TRY_FREE(s, p, n) {if (p) ZFREE(s, p, n);}
++
++/* deflate.h -- internal compression state
++ * Copyright (C) 1995 Jean-loup Gailly
++ * For conditions of distribution and use, see copyright notice in zlib.h
++ */
++
++/* WARNING: this file should *not* be used by applications. It is
++ part of the implementation of the compression library and is
++ subject to change. Applications should only use zlib.h.
++ */
++
++
++/*+++++*/
++/* From: deflate.h,v 1.5 1995/05/03 17:27:09 jloup Exp */
++
++/* ===========================================================================
++ * Internal compression state.
++ */
++
++/* Data type */
++#define BINARY 0
++#define ASCII 1
++#define UNKNOWN 2
++
++#define LENGTH_CODES 29
++/* number of length codes, not counting the special END_BLOCK code */
++
++#define LITERALS 256
++/* number of literal bytes 0..255 */
++
++#define L_CODES (LITERALS+1+LENGTH_CODES)
++/* number of Literal or Length codes, including the END_BLOCK code */
++
++#define D_CODES 30
++/* number of distance codes */
++
++#define BL_CODES 19
++/* number of codes used to transfer the bit lengths */
++
++#define HEAP_SIZE (2*L_CODES+1)
++/* maximum heap size */
++
++#define MAX_BITS 15
++/* All codes must not exceed MAX_BITS bits */
++
++#define INIT_STATE 42
++#define BUSY_STATE 113
++#define FLUSH_STATE 124
++#define FINISH_STATE 666
++/* Stream status */
++
++
++/* Data structure describing a single value and its code string. */
++typedef struct ct_data_s {
++ union {
++ ush freq; /* frequency count */
++ ush code; /* bit string */
++ } fc;
++ union {
++ ush dad; /* father node in Huffman tree */
++ ush len; /* length of bit string */
++ } dl;
++} FAR ct_data;
++
++#define Freq fc.freq
++#define Code fc.code
++#define Dad dl.dad
++#define Len dl.len
++
++typedef struct static_tree_desc_s static_tree_desc;
++
++typedef struct tree_desc_s {
++ ct_data *dyn_tree; /* the dynamic tree */
++ int max_code; /* largest code with non zero frequency */
++ static_tree_desc *stat_desc; /* the corresponding static tree */
++} FAR tree_desc;
++
++typedef ush Pos;
++typedef Pos FAR Posf;
++typedef unsigned IPos;
++
++/* A Pos is an index in the character window. We use short instead of int to
++ * save space in the various tables. IPos is used only for parameter passing.
++ */
++
++typedef struct deflate_state {
++ z_stream *strm; /* pointer back to this zlib stream */
++ int status; /* as the name implies */
++ Bytef *pending_buf; /* output still pending */
++ Bytef *pending_out; /* next pending byte to output to the stream */
++ int pending; /* nb of bytes in the pending buffer */
++ uLong adler; /* adler32 of uncompressed data */
++ int noheader; /* suppress zlib header and adler32 */
++ Byte data_type; /* UNKNOWN, BINARY or ASCII */
++ Byte method; /* STORED (for zip only) or DEFLATED */
++ int minCompr; /* min size decrease for Z_FLUSH_NOSTORE */
++
++ /* used by deflate.c: */
++
++ uInt w_size; /* LZ77 window size (32K by default) */
++ uInt w_bits; /* log2(w_size) (8..16) */
++ uInt w_mask; /* w_size - 1 */
++
++ Bytef *window;
++ /* Sliding window. Input bytes are read into the second half of the window,
++ * and move to the first half later to keep a dictionary of at least wSize
++ * bytes. With this organization, matches are limited to a distance of
++ * wSize-MAX_MATCH bytes, but this ensures that IO is always
++ * performed with a length multiple of the block size. Also, it limits
++ * the window size to 64K, which is quite useful on MSDOS.
++ * To do: use the user input buffer as sliding window.
++ */
++
++ ulg window_size;
++ /* Actual size of window: 2*wSize, except when the user input buffer
++ * is directly used as sliding window.
++ */
++
++ Posf *prev;
++ /* Link to older string with same hash index. To limit the size of this
++ * array to 64K, this link is maintained only for the last 32K strings.
++ * An index in this array is thus a window index modulo 32K.
++ */
++
++ Posf *head; /* Heads of the hash chains or NIL. */
++
++ uInt ins_h; /* hash index of string to be inserted */
++ uInt hash_size; /* number of elements in hash table */
++ uInt hash_bits; /* log2(hash_size) */
++ uInt hash_mask; /* hash_size-1 */
++
++ uInt hash_shift;
++ /* Number of bits by which ins_h must be shifted at each input
++ * step. It must be such that after MIN_MATCH steps, the oldest
++ * byte no longer takes part in the hash key, that is:
++ * hash_shift * MIN_MATCH &gt;= hash_bits
++ */
++
++ long block_start;
++ /* Window position at the beginning of the current output block. Gets
++ * negative when the window is moved backwards.
++ */
++
++ uInt match_length; /* length of best match */
++ IPos prev_match; /* previous match */
++ int match_available; /* set if previous match exists */
++ uInt strstart; /* start of string to insert */
++ uInt match_start; /* start of matching string */
++ uInt lookahead; /* number of valid bytes ahead in window */
++
++ uInt prev_length;
++ /* Length of the best match at previous step. Matches not greater than this
++ * are discarded. This is used in the lazy match evaluation.
++ */
++
++ uInt max_chain_length;
++ /* To speed up deflation, hash chains are never searched beyond this
++ * length. A higher limit improves compression ratio but degrades the
++ * speed.
++ */
++
++ uInt max_lazy_match;
++ /* Attempt to find a better match only when the current match is strictly
++ * smaller than this value. This mechanism is used only for compression
++ * levels &gt;= 4.
++ */
++# define max_insert_length max_lazy_match
++ /* Insert new strings in the hash table only if the match length is not
++ * greater than this length. This saves time but degrades compression.
++ * max_insert_length is used only for compression levels &lt;= 3.
++ */
++
++ int level; /* compression level (1..9) */
++ int strategy; /* favor or force Huffman coding*/
++
++ uInt good_match;
++ /* Use a faster search when the previous match is longer than this */
++
++ int nice_match; /* Stop searching when current match exceeds this */
++
++ /* used by trees.c: */
++ /* Didn't use ct_data typedef below to supress compiler warning */
++ struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */
++ struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */
++ struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */
++
++ struct tree_desc_s l_desc; /* desc. for literal tree */
++ struct tree_desc_s d_desc; /* desc. for distance tree */
++ struct tree_desc_s bl_desc; /* desc. for bit length tree */
++
++ ush bl_count[MAX_BITS+1];
++ /* number of codes at each bit length for an optimal tree */
++
++ int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */
++ int heap_len; /* number of elements in the heap */
++ int heap_max; /* element of largest frequency */
++ /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.
++ * The same heap array is used to build all trees.
++ */
++
++ uch depth[2*L_CODES+1];
++ /* Depth of each subtree used as tie breaker for trees of equal frequency
++ */
++
++ uchf *l_buf; /* buffer for literals or lengths */
++
++ uInt lit_bufsize;
++ /* Size of match buffer for literals/lengths. There are 4 reasons for
++ * limiting lit_bufsize to 64K:
++ * - frequencies can be kept in 16 bit counters
++ * - if compression is not successful for the first block, all input
++ * data is still in the window so we can still emit a stored block even
++ * when input comes from standard input. (This can also be done for
++ * all blocks if lit_bufsize is not greater than 32K.)
++ * - if compression is not successful for a file smaller than 64K, we can
++ * even emit a stored file instead of a stored block (saving 5 bytes).
++ * This is applicable only for zip (not gzip or zlib).
++ * - creating new Huffman trees less frequently may not provide fast
++ * adaptation to changes in the input data statistics. (Take for
++ * example a binary file with poorly compressible code followed by
++ * a highly compressible string table.) Smaller buffer sizes give
++ * fast adaptation but have of course the overhead of transmitting
++ * trees more frequently.
++ * - I can't count above 4
++ */
++
++ uInt last_lit; /* running index in l_buf */
++
++ ushf *d_buf;
++ /* Buffer for distances. To simplify the code, d_buf and l_buf have
++ * the same number of elements. To use different lengths, an extra flag
++ * array would be necessary.
++ */
++
++ ulg opt_len; /* bit length of current block with optimal trees */
++ ulg static_len; /* bit length of current block with static trees */
++ ulg compressed_len; /* total bit length of compressed file */
++ uInt matches; /* number of string matches in current block */
++ int last_eob_len; /* bit length of EOB code for last block */
++
++#ifdef DEBUG_ZLIB
++ ulg bits_sent; /* bit length of the compressed data */
++#endif
++
++ ush bi_buf;
++ /* Output buffer. bits are inserted starting at the bottom (least
++ * significant bits).
++ */
++ int bi_valid;
++ /* Number of valid bits in bi_buf. All bits above the last valid bit
++ * are always zero.
++ */
++
++ uInt blocks_in_packet;
++ /* Number of blocks produced since the last time Z_PACKET_FLUSH
++ * was used.
++ */
++
++} FAR deflate_state;
++
++/* Output a byte on the stream.
++ * IN assertion: there is enough room in pending_buf.
++ */
++#define put_byte(s, c) {s-&gt;pending_buf[s-&gt;pending++] = (c);}
++
++
++#define MIN_LOOKAHEAD (MAX_MATCH+MIN_MATCH+1)
++/* Minimum amount of lookahead, except at the end of the input file.
++ * See deflate.c for comments about the MIN_MATCH+1.
++ */
++
++#define MAX_DIST(s) ((s)-&gt;w_size-MIN_LOOKAHEAD)
++/* In order to simplify the code, particularly on 16 bit machines, match
++ * distances are limited to MAX_DIST instead of WSIZE.
++ */
++
++ /* in trees.c */
++local void ct_init OF((deflate_state *s));
++local int ct_tally OF((deflate_state *s, int dist, int lc));
++local ulg ct_flush_block OF((deflate_state *s, charf *buf, ulg stored_len,
++ int flush));
++local void ct_align OF((deflate_state *s));
++local void ct_stored_block OF((deflate_state *s, charf *buf, ulg stored_len,
++ int eof));
++local void ct_stored_type_only OF((deflate_state *s));
++
++
++/*+++++*/
++/* deflate.c -- compress data using the deflation algorithm
++ * Copyright (C) 1995 Jean-loup Gailly.
++ * For conditions of distribution and use, see copyright notice in zlib.h
++ */
++
++/*
++ * ALGORITHM
++ *
++ * The &quot;deflation&quot; process depends on being able to identify portions
++ * of the input text which are identical to earlier input (within a
++ * sliding window trailing behind the input currently being processed).
++ *
++ * The most straightforward technique turns out to be the fastest for
++ * most input files: try all possible matches and select the longest.
++ * The key feature of this algorithm is that insertions into the string
++ * dictionary are very simple and thus fast, and deletions are avoided
++ * completely. Insertions are performed at each input character, whereas
++ * string matches are performed only when the previous match ends. So it
++ * is preferable to spend more time in matches to allow very fast string
++ * insertions and avoid deletions. The matching algorithm for small
++ * strings is inspired from that of Rabin &amp; Karp. A brute force approach
++ * is used to find longer strings when a small match has been found.
++ * A similar algorithm is used in comic (by Jan-Mark Wams) and freeze
++ * (by Leonid Broukhis).
++ * A previous version of this file used a more sophisticated algorithm
++ * (by Fiala and Greene) which is guaranteed to run in linear amortized
++ * time, but has a larger average cost, uses more memory and is patented.
++ * However the F&amp;G algorithm may be faster for some highly redundant
++ * files if the parameter max_chain_length (described below) is too large.
++ *
++ * ACKNOWLEDGEMENTS
++ *
++ * The idea of lazy evaluation of matches is due to Jan-Mark Wams, and
++ * I found it in 'freeze' written by Leonid Broukhis.
++ * Thanks to many people for bug reports and testing.
++ *
++ * REFERENCES
++ *
++ * Deutsch, L.P.,&quot;'Deflate' Compressed Data Format Specification&quot;.
++ * Available in ftp.uu.net:/pub/archiving/zip/doc/deflate-1.1.doc
++ *
++ * A description of the Rabin and Karp algorithm is given in the book
++ * &quot;Algorithms&quot; by R. Sedgewick, Addison-Wesley, p252.
++ *
++ * Fiala,E.R., and Greene,D.H.
++ * Data Compression with Finite Windows, Comm.ACM, 32,4 (1989) 490-595
++ *
++ */
++
++/* From: deflate.c,v 1.8 1995/05/03 17:27:08 jloup Exp */
++
++local char zlib_copyright[] = &quot; deflate Copyright 1995 Jean-loup Gailly &quot;;
++/*
++ If you use the zlib library in a product, an acknowledgment is welcome
++ in the documentation of your product. If for some reason you cannot
++ include such an acknowledgment, I would appreciate that you keep this
++ copyright string in the executable of your product.
++ */
++
++#define NIL 0
++/* Tail of hash chains */
++
++#ifndef TOO_FAR
++# define TOO_FAR 4096
++#endif
++/* Matches of length 3 are discarded if their distance exceeds TOO_FAR */
++
++#define MIN_LOOKAHEAD (MAX_MATCH+MIN_MATCH+1)
++/* Minimum amount of lookahead, except at the end of the input file.
++ * See deflate.c for comments about the MIN_MATCH+1.
++ */
++
++/* Values for max_lazy_match, good_match and max_chain_length, depending on
++ * the desired pack level (0..9). The values given below have been tuned to
++ * exclude worst case performance for pathological files. Better values may be
++ * found for specific files.
++ */
++
++typedef struct config_s {
++ ush good_length; /* reduce lazy search above this match length */
++ ush max_lazy; /* do not perform lazy search above this match length */
++ ush nice_length; /* quit search above this match length */
++ ush max_chain;
++} config;
++
++local config configuration_table[10] = {
++/* good lazy nice chain */
++/* 0 */ {0, 0, 0, 0}, /* store only */
++/* 1 */ {4, 4, 8, 4}, /* maximum speed, no lazy matches */
++/* 2 */ {4, 5, 16, 8},
++/* 3 */ {4, 6, 32, 32},
++
++/* 4 */ {4, 4, 16, 16}, /* lazy matches */
++/* 5 */ {8, 16, 32, 32},
++/* 6 */ {8, 16, 128, 128},
++/* 7 */ {8, 32, 128, 256},
++/* 8 */ {32, 128, 258, 1024},
++/* 9 */ {32, 258, 258, 4096}}; /* maximum compression */
++
++/* Note: the deflate() code requires max_lazy &gt;= MIN_MATCH and max_chain &gt;= 4
++ * For deflate_fast() (levels &lt;= 3) good is ignored and lazy has a different
++ * meaning.
++ */
++
++#define EQUAL 0
++/* result of memcmp for equal strings */
++
++/* ===========================================================================
++ * Prototypes for local functions.
++ */
++
++local void fill_window OF((deflate_state *s));
++local int deflate_fast OF((deflate_state *s, int flush));
++local int deflate_slow OF((deflate_state *s, int flush));
++local void lm_init OF((deflate_state *s));
++local int longest_match OF((deflate_state *s, IPos cur_match));
++local void putShortMSB OF((deflate_state *s, uInt b));
++local void flush_pending OF((z_stream *strm));
++local int read_buf OF((z_stream *strm, charf *buf, unsigned size));
++#ifdef ASMV
++ void match_init OF((void)); /* asm code initialization */
++#endif
++
++#ifdef DEBUG_ZLIB
++local void check_match OF((deflate_state *s, IPos start, IPos match,
++ int length));
++#endif
++
++
++/* ===========================================================================
++ * Update a hash value with the given input byte
++ * IN assertion: all calls to to UPDATE_HASH are made with consecutive
++ * input characters, so that a running hash key can be computed from the
++ * previous key instead of complete recalculation each time.
++ */
++#define UPDATE_HASH(s,h,c) (h = (((h)&lt;&lt;s-&gt;hash_shift) ^ (c)) &amp; s-&gt;hash_mask)
++
++
++/* ===========================================================================
++ * Insert string str in the dictionary and set match_head to the previous head
++ * of the hash chain (the most recent string with same hash key). Return
++ * the previous length of the hash chain.
++ * IN assertion: all calls to to INSERT_STRING are made with consecutive
++ * input characters and the first MIN_MATCH bytes of str are valid
++ * (except for the last MIN_MATCH-1 bytes of the input file).
++ */
++#define INSERT_STRING(s, str, match_head) \
++ (UPDATE_HASH(s, s-&gt;ins_h, s-&gt;window[(str) + (MIN_MATCH-1)]), \
++ s-&gt;prev[(str) &amp; s-&gt;w_mask] = match_head = s-&gt;head[s-&gt;ins_h], \
++ s-&gt;head[s-&gt;ins_h] = (str))
++
++/* ===========================================================================
++ * Initialize the hash table (avoiding 64K overflow for 16 bit systems).
++ * prev[] will be initialized on the fly.
++ */
++#define CLEAR_HASH(s) \
++ s-&gt;head[s-&gt;hash_size-1] = NIL; \
++ zmemzero((charf *)s-&gt;head, (unsigned)(s-&gt;hash_size-1)*sizeof(*s-&gt;head));
++
++/* ========================================================================= */
++int deflateInit (strm, level)
++ z_stream *strm;
++ int level;
++{
++ return deflateInit2 (strm, level, DEFLATED, MAX_WBITS, DEF_MEM_LEVEL,
++ 0, 0);
++ /* To do: ignore strm-&gt;next_in if we use it as window */
++}
++
++/* ========================================================================= */
++int deflateInit2 (strm, level, method, windowBits, memLevel,
++ strategy, minCompression)
++ z_stream *strm;
++ int level;
++ int method;
++ int windowBits;
++ int memLevel;
++ int strategy;
++ int minCompression;
++{
++ deflate_state *s;
++ int noheader = 0;
++
++ if (strm == Z_NULL) return Z_STREAM_ERROR;
++
++ strm-&gt;msg = Z_NULL;
++/* if (strm-&gt;zalloc == Z_NULL) strm-&gt;zalloc = zcalloc; */
++/* if (strm-&gt;zfree == Z_NULL) strm-&gt;zfree = zcfree; */
++
++ if (level == Z_DEFAULT_COMPRESSION) level = 6;
++
++ if (windowBits &lt; 0) { /* undocumented feature: suppress zlib header */
++ noheader = 1;
++ windowBits = -windowBits;
++ }
++ if (memLevel &lt; 1 || memLevel &gt; MAX_MEM_LEVEL || method != DEFLATED ||
++ windowBits &lt; 8 || windowBits &gt; 15 || level &lt; 1 || level &gt; 9) {
++ return Z_STREAM_ERROR;
++ }
++ s = (deflate_state *) ZALLOC(strm, 1, sizeof(deflate_state));
++ if (s == Z_NULL) return Z_MEM_ERROR;
++ strm-&gt;state = (struct internal_state FAR *)s;
++ s-&gt;strm = strm;
++
++ s-&gt;noheader = noheader;
++ s-&gt;w_bits = windowBits;
++ s-&gt;w_size = 1 &lt;&lt; s-&gt;w_bits;
++ s-&gt;w_mask = s-&gt;w_size - 1;
++
++ s-&gt;hash_bits = memLevel + 7;
++ s-&gt;hash_size = 1 &lt;&lt; s-&gt;hash_bits;
++ s-&gt;hash_mask = s-&gt;hash_size - 1;
++ s-&gt;hash_shift = ((s-&gt;hash_bits+MIN_MATCH-1)/MIN_MATCH);
++
++ s-&gt;window = (Bytef *) ZALLOC(strm, s-&gt;w_size, 2*sizeof(Byte));
++ s-&gt;prev = (Posf *) ZALLOC(strm, s-&gt;w_size, sizeof(Pos));
++ s-&gt;head = (Posf *) ZALLOC(strm, s-&gt;hash_size, sizeof(Pos));
++
++ s-&gt;lit_bufsize = 1 &lt;&lt; (memLevel + 6); /* 16K elements by default */
++
++ s-&gt;pending_buf = (uchf *) ZALLOC(strm, s-&gt;lit_bufsize, 2*sizeof(ush));
++
++ if (s-&gt;window == Z_NULL || s-&gt;prev == Z_NULL || s-&gt;head == Z_NULL ||
++ s-&gt;pending_buf == Z_NULL) {
++ strm-&gt;msg = z_errmsg[1-Z_MEM_ERROR];
++ deflateEnd (strm);
++ return Z_MEM_ERROR;
++ }
++ s-&gt;d_buf = (ushf *) &amp;(s-&gt;pending_buf[s-&gt;lit_bufsize]);
++ s-&gt;l_buf = (uchf *) &amp;(s-&gt;pending_buf[3*s-&gt;lit_bufsize]);
++ /* We overlay pending_buf and d_buf+l_buf. This works since the average
++ * output size for (length,distance) codes is &lt;= 32 bits (worst case
++ * is 15+15+13=33).
++ */
++
++ s-&gt;level = level;
++ s-&gt;strategy = strategy;
++ s-&gt;method = (Byte)method;
++ s-&gt;minCompr = minCompression;
++ s-&gt;blocks_in_packet = 0;
++
++ return deflateReset(strm);
++}
++
++/* ========================================================================= */
++int deflateReset (strm)
++ z_stream *strm;
++{
++ deflate_state *s;
++
++ if (strm == Z_NULL || strm-&gt;state == Z_NULL ||
++ strm-&gt;zalloc == Z_NULL || strm-&gt;zfree == Z_NULL) return Z_STREAM_ERROR;
++
++ strm-&gt;total_in = strm-&gt;total_out = 0;
++ strm-&gt;msg = Z_NULL; /* use zfree if we ever allocate msg dynamically */
++ strm-&gt;data_type = Z_UNKNOWN;
++
++ s = (deflate_state *)strm-&gt;state;
++ s-&gt;pending = 0;
++ s-&gt;pending_out = s-&gt;pending_buf;
++
++ if (s-&gt;noheader &lt; 0) {
++ s-&gt;noheader = 0; /* was set to -1 by deflate(..., Z_FINISH); */
++ }
++ s-&gt;status = s-&gt;noheader ? BUSY_STATE : INIT_STATE;
++ s-&gt;adler = 1;
++
++ ct_init(s);
++ lm_init(s);
++
++ return Z_OK;
++}
++
++/* =========================================================================
++ * Put a short in the pending buffer. The 16-bit value is put in MSB order.
++ * IN assertion: the stream state is correct and there is enough room in
++ * pending_buf.
++ */
++local void putShortMSB (s, b)
++ deflate_state *s;
++ uInt b;
++{
++ put_byte(s, (Byte)(b &gt;&gt; 8));
++ put_byte(s, (Byte)(b &amp; 0xff));
++}
++
++/* =========================================================================
++ * Flush as much pending output as possible.
++ */
++local void flush_pending(strm)
++ z_stream *strm;
++{
++ deflate_state *state = (deflate_state *) strm-&gt;state;
++ unsigned len = state-&gt;pending;
++
++ if (len &gt; strm-&gt;avail_out) len = strm-&gt;avail_out;
++ if (len == 0) return;
++
++ if (strm-&gt;next_out != NULL) {
++ zmemcpy(strm-&gt;next_out, state-&gt;pending_out, len);
++ strm-&gt;next_out += len;
++ }
++ state-&gt;pending_out += len;
++ strm-&gt;total_out += len;
++ strm-&gt;avail_out -= len;
++ state-&gt;pending -= len;
++ if (state-&gt;pending == 0) {
++ state-&gt;pending_out = state-&gt;pending_buf;
++ }
++}
++
++/* ========================================================================= */
++int deflate (strm, flush)
++ z_stream *strm;
++ int flush;
++{
++ deflate_state *state = (deflate_state *) strm-&gt;state;
++
++ if (strm == Z_NULL || state == Z_NULL) return Z_STREAM_ERROR;
++
++ if (strm-&gt;next_in == Z_NULL &amp;&amp; strm-&gt;avail_in != 0) {
++ ERR_RETURN(strm, Z_STREAM_ERROR);
++ }
++ if (strm-&gt;avail_out == 0) ERR_RETURN(strm, Z_BUF_ERROR);
++
++ state-&gt;strm = strm; /* just in case */
++
++ /* Write the zlib header */
++ if (state-&gt;status == INIT_STATE) {
++
++ uInt header = (DEFLATED + ((state-&gt;w_bits-8)&lt;&lt;4)) &lt;&lt; 8;
++ uInt level_flags = (state-&gt;level-1) &gt;&gt; 1;
++
++ if (level_flags &gt; 3) level_flags = 3;
++ header |= (level_flags &lt;&lt; 6);
++ header += 31 - (header % 31);
++
++ state-&gt;status = BUSY_STATE;
++ putShortMSB(state, header);
++ }
++
++ /* Flush as much pending output as possible */
++ if (state-&gt;pending != 0) {
++ flush_pending(strm);
++ if (strm-&gt;avail_out == 0) return Z_OK;
++ }
++
++ /* If we came back in here to get the last output from
++ * a previous flush, we're done for now.
++ */
++ if (state-&gt;status == FLUSH_STATE) {
++ state-&gt;status = BUSY_STATE;
++ if (flush != Z_NO_FLUSH &amp;&amp; flush != Z_FINISH)
++ return Z_OK;
++ }
++
++ /* User must not provide more input after the first FINISH: */
++ if (state-&gt;status == FINISH_STATE &amp;&amp; strm-&gt;avail_in != 0) {
++ ERR_RETURN(strm, Z_BUF_ERROR);
++ }
++
++ /* Start a new block or continue the current one.
++ */
++ if (strm-&gt;avail_in != 0 || state-&gt;lookahead != 0 ||
++ (flush == Z_FINISH &amp;&amp; state-&gt;status != FINISH_STATE)) {
++ int quit;
++
++ if (flush == Z_FINISH) {
++ state-&gt;status = FINISH_STATE;
++ }
++ if (state-&gt;level &lt;= 3) {
++ quit = deflate_fast(state, flush);
++ } else {
++ quit = deflate_slow(state, flush);
++ }
++ if (quit || strm-&gt;avail_out == 0)
++ return Z_OK;
++ /* If flush != Z_NO_FLUSH &amp;&amp; avail_out == 0, the next call
++ * of deflate should use the same flush parameter to make sure
++ * that the flush is complete. So we don't have to output an
++ * empty block here, this will be done at next call. This also
++ * ensures that for a very small output buffer, we emit at most
++ * one empty block.
++ */
++ }
++
++ /* If a flush was requested, we have a little more to output now. */
++ if (flush != Z_NO_FLUSH &amp;&amp; flush != Z_FINISH
++ &amp;&amp; state-&gt;status != FINISH_STATE) {
++ switch (flush) {
++ case Z_PARTIAL_FLUSH:
++ ct_align(state);
++ break;
++ case Z_PACKET_FLUSH:
++ /* Output just the 3-bit `stored' block type value,
++ but not a zero length. */
++ ct_stored_type_only(state);
++ break;
++ default:
++ ct_stored_block(state, (char*)0, 0L, 0);
++ /* For a full flush, this empty block will be recognized
++ * as a special marker by inflate_sync().
++ */
++ if (flush == Z_FULL_FLUSH) {
++ CLEAR_HASH(state); /* forget history */
++ }
++ }
++ flush_pending(strm);
++ if (strm-&gt;avail_out == 0) {
++ /* We'll have to come back to get the rest of the output;
++ * this ensures we don't output a second zero-length stored
++ * block (or whatever).
++ */
++ state-&gt;status = FLUSH_STATE;
++ return Z_OK;
++ }
++ }
++
++ Assert(strm-&gt;avail_out &gt; 0, &quot;bug2&quot;);
++
++ if (flush != Z_FINISH) return Z_OK;
++ if (state-&gt;noheader) return Z_STREAM_END;
++
++ /* Write the zlib trailer (adler32) */
++ putShortMSB(state, (uInt)(state-&gt;adler &gt;&gt; 16));
++ putShortMSB(state, (uInt)(state-&gt;adler &amp; 0xffff));
++ flush_pending(strm);
++ /* If avail_out is zero, the application will call deflate again
++ * to flush the rest.
++ */
++ state-&gt;noheader = -1; /* write the trailer only once! */
++ return state-&gt;pending != 0 ? Z_OK : Z_STREAM_END;
++}
++
++/* ========================================================================= */
++int deflateEnd (strm)
++ z_stream *strm;
++{
++ deflate_state *state = (deflate_state *) strm-&gt;state;
++
++ if (strm == Z_NULL || state == Z_NULL) return Z_STREAM_ERROR;
++
++ TRY_FREE(strm, state-&gt;window, state-&gt;w_size * 2 * sizeof(Byte));
++ TRY_FREE(strm, state-&gt;prev, state-&gt;w_size * sizeof(Pos));
++ TRY_FREE(strm, state-&gt;head, state-&gt;hash_size * sizeof(Pos));
++ TRY_FREE(strm, state-&gt;pending_buf, state-&gt;lit_bufsize * 2 * sizeof(ush));
++
++ ZFREE(strm, state, sizeof(deflate_state));
++ strm-&gt;state = Z_NULL;
++
++ return Z_OK;
++}
++
++/* ===========================================================================
++ * Read a new buffer from the current input stream, update the adler32
++ * and total number of bytes read.
++ */
++local int read_buf(strm, buf, size)
++ z_stream *strm;
++ charf *buf;
++ unsigned size;
++{
++ unsigned len = strm-&gt;avail_in;
++ deflate_state *state = (deflate_state *) strm-&gt;state;
++
++ if (len &gt; size) len = size;
++ if (len == 0) return 0;
++
++ strm-&gt;avail_in -= len;
++
++ if (!state-&gt;noheader) {
++ state-&gt;adler = adler32(state-&gt;adler, strm-&gt;next_in, len);
++ }
++ zmemcpy(buf, strm-&gt;next_in, len);
++ strm-&gt;next_in += len;
++ strm-&gt;total_in += len;
++
++ return (int)len;
++}
++
++/* ===========================================================================
++ * Initialize the &quot;longest match&quot; routines for a new zlib stream
++ */
++local void lm_init (s)
++ deflate_state *s;
++{
++ s-&gt;window_size = (ulg)2L*s-&gt;w_size;
++
++ CLEAR_HASH(s);
++
++ /* Set the default configuration parameters:
++ */
++ s-&gt;max_lazy_match = configuration_table[s-&gt;level].max_lazy;
++ s-&gt;good_match = configuration_table[s-&gt;level].good_length;
++ s-&gt;nice_match = configuration_table[s-&gt;level].nice_length;
++ s-&gt;max_chain_length = configuration_table[s-&gt;level].max_chain;
++
++ s-&gt;strstart = 0;
++ s-&gt;block_start = 0L;
++ s-&gt;lookahead = 0;
++ s-&gt;match_length = MIN_MATCH-1;
++ s-&gt;match_available = 0;
++ s-&gt;ins_h = 0;
++#ifdef ASMV
++ match_init(); /* initialize the asm code */
++#endif
++}
++
++/* ===========================================================================
++ * Set match_start to the longest match starting at the given string and
++ * return its length. Matches shorter or equal to prev_length are discarded,
++ * in which case the result is equal to prev_length and match_start is
++ * garbage.
++ * IN assertions: cur_match is the head of the hash chain for the current
++ * string (strstart) and its distance is &lt;= MAX_DIST, and prev_length &gt;= 1
++ */
++#ifndef ASMV
++/* For 80x86 and 680x0, an optimized version will be provided in match.asm or
++ * match.S. The code will be functionally equivalent.
++ */
++local int longest_match(s, cur_match)
++ deflate_state *s;
++ IPos cur_match; /* current match */
++{
++ unsigned chain_length = s-&gt;max_chain_length;/* max hash chain length */
++ register Bytef *scan = s-&gt;window + s-&gt;strstart; /* current string */
++ register Bytef *match; /* matched string */
++ register int len; /* length of current match */
++ int best_len = s-&gt;prev_length; /* best match length so far */
++ IPos limit = s-&gt;strstart &gt; (IPos)MAX_DIST(s) ?
++ s-&gt;strstart - (IPos)MAX_DIST(s) : NIL;
++ /* Stop when cur_match becomes &lt;= limit. To simplify the code,
++ * we prevent matches with the string of window index 0.
++ */
++ Posf *prev = s-&gt;prev;
++ uInt wmask = s-&gt;w_mask;
++
++#ifdef UNALIGNED_OK
++ /* Compare two bytes at a time. Note: this is not always beneficial.
++ * Try with and without -DUNALIGNED_OK to check.
++ */
++ register Bytef *strend = s-&gt;window + s-&gt;strstart + MAX_MATCH - 1;
++ register ush scan_start = *(ushf*)scan;
++ register ush scan_end = *(ushf*)(scan+best_len-1);
++#else
++ register Bytef *strend = s-&gt;window + s-&gt;strstart + MAX_MATCH;
++ register Byte scan_end1 = scan[best_len-1];
++ register Byte scan_end = scan[best_len];
++#endif
++
++ /* The code is optimized for HASH_BITS &gt;= 8 and MAX_MATCH-2 multiple of 16.
++ * It is easy to get rid of this optimization if necessary.
++ */
++ Assert(s-&gt;hash_bits &gt;= 8 &amp;&amp; MAX_MATCH == 258, &quot;Code too clever&quot;);
++
++ /* Do not waste too much time if we already have a good match: */
++ if (s-&gt;prev_length &gt;= s-&gt;good_match) {
++ chain_length &gt;&gt;= 2;
++ }
++ Assert((ulg)s-&gt;strstart &lt;= s-&gt;window_size-MIN_LOOKAHEAD, &quot;need lookahead&quot;);
++
++ do {
++ Assert(cur_match &lt; s-&gt;strstart, &quot;no future&quot;);
++ match = s-&gt;window + cur_match;
++
++ /* Skip to next match if the match length cannot increase
++ * or if the match length is less than 2:
++ */
++#if (defined(UNALIGNED_OK) &amp;&amp; MAX_MATCH == 258)
++ /* This code assumes sizeof(unsigned short) == 2. Do not use
++ * UNALIGNED_OK if your compiler uses a different size.
++ */
++ if (*(ushf*)(match+best_len-1) != scan_end ||
++ *(ushf*)match != scan_start) continue;
++
++ /* It is not necessary to compare scan[2] and match[2] since they are
++ * always equal when the other bytes match, given that the hash keys
++ * are equal and that HASH_BITS &gt;= 8. Compare 2 bytes at a time at
++ * strstart+3, +5, ... up to strstart+257. We check for insufficient
++ * lookahead only every 4th comparison; the 128th check will be made
++ * at strstart+257. If MAX_MATCH-2 is not a multiple of 8, it is
++ * necessary to put more guard bytes at the end of the window, or
++ * to check more often for insufficient lookahead.
++ */
++ Assert(scan[2] == match[2], &quot;scan[2]?&quot;);
++ scan++, match++;
++ do {
++ } while (*(ushf*)(scan+=2) == *(ushf*)(match+=2) &amp;&amp;
++ *(ushf*)(scan+=2) == *(ushf*)(match+=2) &amp;&amp;
++ *(ushf*)(scan+=2) == *(ushf*)(match+=2) &amp;&amp;
++ *(ushf*)(scan+=2) == *(ushf*)(match+=2) &amp;&amp;
++ scan &lt; strend);
++ /* The funny &quot;do {}&quot; generates better code on most compilers */
++
++ /* Here, scan &lt;= window+strstart+257 */
++ Assert(scan &lt;= s-&gt;window+(unsigned)(s-&gt;window_size-1), &quot;wild scan&quot;);
++ if (*scan == *match) scan++;
++
++ len = (MAX_MATCH - 1) - (int)(strend-scan);
++ scan = strend - (MAX_MATCH-1);
++
++#else /* UNALIGNED_OK */
++
++ if (match[best_len] != scan_end ||
++ match[best_len-1] != scan_end1 ||
++ *match != *scan ||
++ *++match != scan[1]) continue;
++
++ /* The check at best_len-1 can be removed because it will be made
++ * again later. (This heuristic is not always a win.)
++ * It is not necessary to compare scan[2] and match[2] since they
++ * are always equal when the other bytes match, given that
++ * the hash keys are equal and that HASH_BITS &gt;= 8.
++ */
++ scan += 2, match++;
++ Assert(*scan == *match, &quot;match[2]?&quot;);
++
++ /* We check for insufficient lookahead only every 8th comparison;
++ * the 256th check will be made at strstart+258.
++ */
++ do {
++ } while (*++scan == *++match &amp;&amp; *++scan == *++match &amp;&amp;
++ *++scan == *++match &amp;&amp; *++scan == *++match &amp;&amp;
++ *++scan == *++match &amp;&amp; *++scan == *++match &amp;&amp;
++ *++scan == *++match &amp;&amp; *++scan == *++match &amp;&amp;
++ scan &lt; strend);
++
++ Assert(scan &lt;= s-&gt;window+(unsigned)(s-&gt;window_size-1), &quot;wild scan&quot;);
++
++ len = MAX_MATCH - (int)(strend - scan);
++ scan = strend - MAX_MATCH;
++
++#endif /* UNALIGNED_OK */
++
++ if (len &gt; best_len) {
++ s-&gt;match_start = cur_match;
++ best_len = len;
++ if (len &gt;= s-&gt;nice_match) break;
++#ifdef UNALIGNED_OK
++ scan_end = *(ushf*)(scan+best_len-1);
++#else
++ scan_end1 = scan[best_len-1];
++ scan_end = scan[best_len];
++#endif
++ }
++ } while ((cur_match = prev[cur_match &amp; wmask]) &gt; limit
++ &amp;&amp; --chain_length != 0);
++
++ return best_len;
++}
++#endif /* ASMV */
++
++#ifdef DEBUG_ZLIB
++/* ===========================================================================
++ * Check that the match at match_start is indeed a match.
++ */
++local void check_match(s, start, match, length)
++ deflate_state *s;
++ IPos start, match;
++ int length;
++{
++ /* check that the match is indeed a match */
++ if (memcmp((charf *)s-&gt;window + match,
++ (charf *)s-&gt;window + start, length) != EQUAL) {
++ fprintf(stderr,
++ &quot; start %u, match %u, length %d\n&quot;,
++ start, match, length);
++ do { fprintf(stderr, &quot;%c%c&quot;, s-&gt;window[match++],
++ s-&gt;window[start++]); } while (--length != 0);
++ z_error(&quot;invalid match&quot;);
++ }
++ if (verbose &gt; 1) {
++ fprintf(stderr,&quot;\\[%d,%d]&quot;, start-match, length);
++ do { putc(s-&gt;window[start++], stderr); } while (--length != 0);
++ }
++}
++#else
++# define check_match(s, start, match, length)
++#endif
++
++/* ===========================================================================
++ * Fill the window when the lookahead becomes insufficient.
++ * Updates strstart and lookahead.
++ *
++ * IN assertion: lookahead &lt; MIN_LOOKAHEAD
++ * OUT assertions: strstart &lt;= window_size-MIN_LOOKAHEAD
++ * At least one byte has been read, or avail_in == 0; reads are
++ * performed for at least two bytes (required for the zip translate_eol
++ * option -- not supported here).
++ */
++local void fill_window(s)
++ deflate_state *s;
++{
++ register unsigned n, m;
++ register Posf *p;
++ unsigned more; /* Amount of free space at the end of the window. */
++ uInt wsize = s-&gt;w_size;
++
++ do {
++ more = (unsigned)(s-&gt;window_size -(ulg)s-&gt;lookahead -(ulg)s-&gt;strstart);
++
++ /* Deal with !@#$% 64K limit: */
++ if (more == 0 &amp;&amp; s-&gt;strstart == 0 &amp;&amp; s-&gt;lookahead == 0) {
++ more = wsize;
++ } else if (more == (unsigned)(-1)) {
++ /* Very unlikely, but possible on 16 bit machine if strstart == 0
++ * and lookahead == 1 (input done one byte at time)
++ */
++ more--;
++
++ /* If the window is almost full and there is insufficient lookahead,
++ * move the upper half to the lower one to make room in the upper half.
++ */
++ } else if (s-&gt;strstart &gt;= wsize+MAX_DIST(s)) {
++
++ /* By the IN assertion, the window is not empty so we can't confuse
++ * more == 0 with more == 64K on a 16 bit machine.
++ */
++ zmemcpy((charf *)s-&gt;window, (charf *)s-&gt;window+wsize,
++ (unsigned)wsize);
++ s-&gt;match_start -= wsize;
++ s-&gt;strstart -= wsize; /* we now have strstart &gt;= MAX_DIST */
++
++ s-&gt;block_start -= (long) wsize;
++
++ /* Slide the hash table (could be avoided with 32 bit values
++ at the expense of memory usage):
++ */
++ n = s-&gt;hash_size;
++ p = &amp;s-&gt;head[n];
++ do {
++ m = *--p;
++ *p = (Pos)(m &gt;= wsize ? m-wsize : NIL);
++ } while (--n);
++
++ n = wsize;
++ p = &amp;s-&gt;prev[n];
++ do {
++ m = *--p;
++ *p = (Pos)(m &gt;= wsize ? m-wsize : NIL);
++ /* If n is not on any hash chain, prev[n] is garbage but
++ * its value will never be used.
++ */
++ } while (--n);
++
++ more += wsize;
++ }
++ if (s-&gt;strm-&gt;avail_in == 0) return;
++
++ /* If there was no sliding:
++ * strstart &lt;= WSIZE+MAX_DIST-1 &amp;&amp; lookahead &lt;= MIN_LOOKAHEAD - 1 &amp;&amp;
++ * more == window_size - lookahead - strstart
++ * =&gt; more &gt;= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)
++ * =&gt; more &gt;= window_size - 2*WSIZE + 2
++ * In the BIG_MEM or MMAP case (not yet supported),
++ * window_size == input_size + MIN_LOOKAHEAD &amp;&amp;
++ * strstart + s-&gt;lookahead &lt;= input_size =&gt; more &gt;= MIN_LOOKAHEAD.
++ * Otherwise, window_size == 2*WSIZE so more &gt;= 2.
++ * If there was sliding, more &gt;= WSIZE. So in all cases, more &gt;= 2.
++ */
++ Assert(more &gt;= 2, &quot;more &lt; 2&quot;);
++
++ n = read_buf(s-&gt;strm, (charf *)s-&gt;window + s-&gt;strstart + s-&gt;lookahead,
++ more);
++ s-&gt;lookahead += n;
++
++ /* Initialize the hash value now that we have some input: */
++ if (s-&gt;lookahead &gt;= MIN_MATCH) {
++ s-&gt;ins_h = s-&gt;window[s-&gt;strstart];
++ UPDATE_HASH(s, s-&gt;ins_h, s-&gt;window[s-&gt;strstart+1]);
++#if MIN_MATCH != 3
++ Call UPDATE_HASH() MIN_MATCH-3 more times
++#endif
++ }
++ /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,
++ * but this is not important since only literal bytes will be emitted.
++ */
++
++ } while (s-&gt;lookahead &lt; MIN_LOOKAHEAD &amp;&amp; s-&gt;strm-&gt;avail_in != 0);
++}
++
++/* ===========================================================================
++ * Flush the current block, with given end-of-file flag.
++ * IN assertion: strstart is set to the end of the current match.
++ */
++#define FLUSH_BLOCK_ONLY(s, flush) { \
++ ct_flush_block(s, (s-&gt;block_start &gt;= 0L ? \
++ (charf *)&amp;s-&gt;window[(unsigned)s-&gt;block_start] : \
++ (charf *)Z_NULL), (long)s-&gt;strstart - s-&gt;block_start, (flush)); \
++ s-&gt;block_start = s-&gt;strstart; \
++ flush_pending(s-&gt;strm); \
++ Tracev((stderr,&quot;[FLUSH]&quot;)); \
++}
++
++/* Same but force premature exit if necessary. */
++#define FLUSH_BLOCK(s, flush) { \
++ FLUSH_BLOCK_ONLY(s, flush); \
++ if (s-&gt;strm-&gt;avail_out == 0) return 1; \
++}
++
++/* ===========================================================================
++ * Compress as much as possible from the input stream, return true if
++ * processing was terminated prematurely (no more input or output space).
++ * This function does not perform lazy evaluationof matches and inserts
++ * new strings in the dictionary only for unmatched strings or for short
++ * matches. It is used only for the fast compression options.
++ */
++local int deflate_fast(s, flush)
++ deflate_state *s;
++ int flush;
++{
++ IPos hash_head = NIL; /* head of the hash chain */
++ int bflush; /* set if current block must be flushed */
++
++ s-&gt;prev_length = MIN_MATCH-1;
++
++ for (;;) {
++ /* Make sure that we always have enough lookahead, except
++ * at the end of the input file. We need MAX_MATCH bytes
++ * for the next match, plus MIN_MATCH bytes to insert the
++ * string following the next match.
++ */
++ if (s-&gt;lookahead &lt; MIN_LOOKAHEAD) {
++ fill_window(s);
++ if (s-&gt;lookahead &lt; MIN_LOOKAHEAD &amp;&amp; flush == Z_NO_FLUSH) return 1;
++
++ if (s-&gt;lookahead == 0) break; /* flush the current block */
++ }
++
++ /* Insert the string window[strstart .. strstart+2] in the
++ * dictionary, and set hash_head to the head of the hash chain:
++ */
++ if (s-&gt;lookahead &gt;= MIN_MATCH) {
++ INSERT_STRING(s, s-&gt;strstart, hash_head);
++ }
++
++ /* Find the longest match, discarding those &lt;= prev_length.
++ * At this point we have always match_length &lt; MIN_MATCH
++ */
++ if (hash_head != NIL &amp;&amp; s-&gt;strstart - hash_head &lt;= MAX_DIST(s)) {
++ /* To simplify the code, we prevent matches with the string
++ * of window index 0 (in particular we have to avoid a match
++ * of the string with itself at the start of the input file).
++ */
++ if (s-&gt;strategy != Z_HUFFMAN_ONLY) {
++ s-&gt;match_length = longest_match (s, hash_head);
++ }
++ /* longest_match() sets match_start */
++
++ if (s-&gt;match_length &gt; s-&gt;lookahead) s-&gt;match_length = s-&gt;lookahead;
++ }
++ if (s-&gt;match_length &gt;= MIN_MATCH) {
++ check_match(s, s-&gt;strstart, s-&gt;match_start, s-&gt;match_length);
++
++ bflush = ct_tally(s, s-&gt;strstart - s-&gt;match_start,
++ s-&gt;match_length - MIN_MATCH);
++
++ s-&gt;lookahead -= s-&gt;match_length;
++
++ /* Insert new strings in the hash table only if the match length
++ * is not too large. This saves time but degrades compression.
++ */
++ if (s-&gt;match_length &lt;= s-&gt;max_insert_length &amp;&amp;
++ s-&gt;lookahead &gt;= MIN_MATCH) {
++ s-&gt;match_length--; /* string at strstart already in hash table */
++ do {
++ s-&gt;strstart++;
++ INSERT_STRING(s, s-&gt;strstart, hash_head);
++ /* strstart never exceeds WSIZE-MAX_MATCH, so there are
++ * always MIN_MATCH bytes ahead.
++ */
++ } while (--s-&gt;match_length != 0);
++ s-&gt;strstart++;
++ } else {
++ s-&gt;strstart += s-&gt;match_length;
++ s-&gt;match_length = 0;
++ s-&gt;ins_h = s-&gt;window[s-&gt;strstart];
++ UPDATE_HASH(s, s-&gt;ins_h, s-&gt;window[s-&gt;strstart+1]);
++#if MIN_MATCH != 3
++ Call UPDATE_HASH() MIN_MATCH-3 more times
++#endif
++ /* If lookahead &lt; MIN_MATCH, ins_h is garbage, but it does not
++ * matter since it will be recomputed at next deflate call.
++ */
++ }
++ } else {
++ /* No match, output a literal byte */
++ Tracevv((stderr,&quot;%c&quot;, s-&gt;window[s-&gt;strstart]));
++ bflush = ct_tally (s, 0, s-&gt;window[s-&gt;strstart]);
++ s-&gt;lookahead--;
++ s-&gt;strstart++;
++ }
++ if (bflush) FLUSH_BLOCK(s, Z_NO_FLUSH);
++ }
++ FLUSH_BLOCK(s, flush);
++ return 0; /* normal exit */
++}
++
++/* ===========================================================================
++ * Same as above, but achieves better compression. We use a lazy
++ * evaluation for matches: a match is finally adopted only if there is
++ * no better match at the next window position.
++ */
++local int deflate_slow(s, flush)
++ deflate_state *s;
++ int flush;
++{
++ IPos hash_head = NIL; /* head of hash chain */
++ int bflush; /* set if current block must be flushed */
++
++ /* Process the input block. */
++ for (;;) {
++ /* Make sure that we always have enough lookahead, except
++ * at the end of the input file. We need MAX_MATCH bytes
++ * for the next match, plus MIN_MATCH bytes to insert the
++ * string following the next match.
++ */
++ if (s-&gt;lookahead &lt; MIN_LOOKAHEAD) {
++ fill_window(s);
++ if (s-&gt;lookahead &lt; MIN_LOOKAHEAD &amp;&amp; flush == Z_NO_FLUSH) return 1;
++
++ if (s-&gt;lookahead == 0) break; /* flush the current block */
++ }
++
++ /* Insert the string window[strstart .. strstart+2] in the
++ * dictionary, and set hash_head to the head of the hash chain:
++ */
++ if (s-&gt;lookahead &gt;= MIN_MATCH) {
++ INSERT_STRING(s, s-&gt;strstart, hash_head);
++ }
++
++ /* Find the longest match, discarding those &lt;= prev_length.
++ */
++ s-&gt;prev_length = s-&gt;match_length, s-&gt;prev_match = s-&gt;match_start;
++ s-&gt;match_length = MIN_MATCH-1;
++
++ if (hash_head != NIL &amp;&amp; s-&gt;prev_length &lt; s-&gt;max_lazy_match &amp;&amp;
++ s-&gt;strstart - hash_head &lt;= MAX_DIST(s)) {
++ /* To simplify the code, we prevent matches with the string
++ * of window index 0 (in particular we have to avoid a match
++ * of the string with itself at the start of the input file).
++ */
++ if (s-&gt;strategy != Z_HUFFMAN_ONLY) {
++ s-&gt;match_length = longest_match (s, hash_head);
++ }
++ /* longest_match() sets match_start */
++ if (s-&gt;match_length &gt; s-&gt;lookahead) s-&gt;match_length = s-&gt;lookahead;
++
++ if (s-&gt;match_length &lt;= 5 &amp;&amp; (s-&gt;strategy == Z_FILTERED ||
++ (s-&gt;match_length == MIN_MATCH &amp;&amp;
++ s-&gt;strstart - s-&gt;match_start &gt; TOO_FAR))) {
++
++ /* If prev_match is also MIN_MATCH, match_start is garbage
++ * but we will ignore the current match anyway.
++ */
++ s-&gt;match_length = MIN_MATCH-1;
++ }
++ }
++ /* If there was a match at the previous step and the current
++ * match is not better, output the previous match:
++ */
++ if (s-&gt;prev_length &gt;= MIN_MATCH &amp;&amp; s-&gt;match_length &lt;= s-&gt;prev_length) {
++ uInt max_insert = s-&gt;strstart + s-&gt;lookahead - MIN_MATCH;
++ /* Do not insert strings in hash table beyond this. */
++
++ check_match(s, s-&gt;strstart-1, s-&gt;prev_match, s-&gt;prev_length);
++
++ bflush = ct_tally(s, s-&gt;strstart -1 - s-&gt;prev_match,
++ s-&gt;prev_length - MIN_MATCH);
++
++ /* Insert in hash table all strings up to the end of the match.
++ * strstart-1 and strstart are already inserted. If there is not
++ * enough lookahead, the last two strings are not inserted in
++ * the hash table.
++ */
++ s-&gt;lookahead -= s-&gt;prev_length-1;
++ s-&gt;prev_length -= 2;
++ do {
++ if (++s-&gt;strstart &lt;= max_insert) {
++ INSERT_STRING(s, s-&gt;strstart, hash_head);
++ }
++ } while (--s-&gt;prev_length != 0);
++ s-&gt;match_available = 0;
++ s-&gt;match_length = MIN_MATCH-1;
++ s-&gt;strstart++;
++
++ if (bflush) FLUSH_BLOCK(s, Z_NO_FLUSH);
++
++ } else if (s-&gt;match_available) {
++ /* If there was no match at the previous position, output a
++ * single literal. If there was a match but the current match
++ * is longer, truncate the previous match to a single literal.
++ */
++ Tracevv((stderr,&quot;%c&quot;, s-&gt;window[s-&gt;strstart-1]));
++ if (ct_tally (s, 0, s-&gt;window[s-&gt;strstart-1])) {
++ FLUSH_BLOCK_ONLY(s, Z_NO_FLUSH);
++ }
++ s-&gt;strstart++;
++ s-&gt;lookahead--;
++ if (s-&gt;strm-&gt;avail_out == 0) return 1;
++ } else {
++ /* There is no previous match to compare with, wait for
++ * the next step to decide.
++ */
++ s-&gt;match_available = 1;
++ s-&gt;strstart++;
++ s-&gt;lookahead--;
++ }
++ }
++ Assert (flush != Z_NO_FLUSH, &quot;no flush?&quot;);
++ if (s-&gt;match_available) {
++ Tracevv((stderr,&quot;%c&quot;, s-&gt;window[s-&gt;strstart-1]));
++ ct_tally (s, 0, s-&gt;window[s-&gt;strstart-1]);
++ s-&gt;match_available = 0;
++ }
++ FLUSH_BLOCK(s, flush);
++ return 0;
++}
++
++
++/*+++++*/
++/* trees.c -- output deflated data using Huffman coding
++ * Copyright (C) 1995 Jean-loup Gailly
++ * For conditions of distribution and use, see copyright notice in zlib.h
++ */
++
++/*
++ * ALGORITHM
++ *
++ * The &quot;deflation&quot; process uses several Huffman trees. The more
++ * common source values are represented by shorter bit sequences.
++ *
++ * Each code tree is stored in a compressed form which is itself
++ * a Huffman encoding of the lengths of all the code strings (in
++ * ascending order by source values). The actual code strings are
++ * reconstructed from the lengths in the inflate process, as described
++ * in the deflate specification.
++ *
++ * REFERENCES
++ *
++ * Deutsch, L.P.,&quot;'Deflate' Compressed Data Format Specification&quot;.
++ * Available in ftp.uu.net:/pub/archiving/zip/doc/deflate-1.1.doc
++ *
++ * Storer, James A.
++ * Data Compression: Methods and Theory, pp. 49-50.
++ * Computer Science Press, 1988. ISBN 0-7167-8156-5.
++ *
++ * Sedgewick, R.
++ * Algorithms, p290.
++ * Addison-Wesley, 1983. ISBN 0-201-06672-6.
++ */
++
++/* From: trees.c,v 1.5 1995/05/03 17:27:12 jloup Exp */
++
++#ifdef DEBUG_ZLIB
++# include &lt;ctype.h&gt;
++#endif
++
++/* ===========================================================================
++ * Constants
++ */
++
++#define MAX_BL_BITS 7
++/* Bit length codes must not exceed MAX_BL_BITS bits */
++
++#define END_BLOCK 256
++/* end of block literal code */
++
++#define REP_3_6 16
++/* repeat previous bit length 3-6 times (2 bits of repeat count) */
++
++#define REPZ_3_10 17
++/* repeat a zero length 3-10 times (3 bits of repeat count) */
++
++#define REPZ_11_138 18
++/* repeat a zero length 11-138 times (7 bits of repeat count) */
++
++local int extra_lbits[LENGTH_CODES] /* extra bits for each length code */
++ = {0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0};
++
++local int extra_dbits[D_CODES] /* extra bits for each distance code */
++ = {0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13};
++
++local int extra_blbits[BL_CODES]/* extra bits for each bit length code */
++ = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7};
++
++local uch bl_order[BL_CODES]
++ = {16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15};
++/* The lengths of the bit length codes are sent in order of decreasing
++ * probability, to avoid transmitting the lengths for unused bit length codes.
++ */
++
++#define Buf_size (8 * 2*sizeof(char))
++/* Number of bits used within bi_buf. (bi_buf might be implemented on
++ * more than 16 bits on some systems.)
++ */
++
++/* ===========================================================================
++ * Local data. These are initialized only once.
++ * To do: initialize at compile time to be completely reentrant. ???
++ */
++
++local ct_data static_ltree[L_CODES+2];
++/* The static literal tree. Since the bit lengths are imposed, there is no
++ * need for the L_CODES extra codes used during heap construction. However
++ * The codes 286 and 287 are needed to build a canonical tree (see ct_init
++ * below).
++ */
++
++local ct_data static_dtree[D_CODES];
++/* The static distance tree. (Actually a trivial tree since all codes use
++ * 5 bits.)
++ */
++
++local uch dist_code[512];
++/* distance codes. The first 256 values correspond to the distances
++ * 3 .. 258, the last 256 values correspond to the top 8 bits of
++ * the 15 bit distances.
++ */
++
++local uch length_code[MAX_MATCH-MIN_MATCH+1];
++/* length code for each normalized match length (0 == MIN_MATCH) */
++
++local int base_length[LENGTH_CODES];
++/* First normalized length for each code (0 = MIN_MATCH) */
++
++local int base_dist[D_CODES];
++/* First normalized distance for each code (0 = distance of 1) */
++
++struct static_tree_desc_s {
++ ct_data *static_tree; /* static tree or NULL */
++ intf *extra_bits; /* extra bits for each code or NULL */
++ int extra_base; /* base index for extra_bits */
++ int elems; /* max number of elements in the tree */
++ int max_length; /* max bit length for the codes */
++};
++
++local static_tree_desc static_l_desc =
++{static_ltree, extra_lbits, LITERALS+1, L_CODES, MAX_BITS};
++
++local static_tree_desc static_d_desc =
++{static_dtree, extra_dbits, 0, D_CODES, MAX_BITS};
++
++local static_tree_desc static_bl_desc =
++{(ct_data *)0, extra_blbits, 0, BL_CODES, MAX_BL_BITS};
++
++/* ===========================================================================
++ * Local (static) routines in this file.
++ */
++
++local void ct_static_init OF((void));
++local void init_block OF((deflate_state *s));
++local void pqdownheap OF((deflate_state *s, ct_data *tree, int k));
++local void gen_bitlen OF((deflate_state *s, tree_desc *desc));
++local void gen_codes OF((ct_data *tree, int max_code, ushf *bl_count));
++local void build_tree OF((deflate_state *s, tree_desc *desc));
++local void scan_tree OF((deflate_state *s, ct_data *tree, int max_code));
++local void send_tree OF((deflate_state *s, ct_data *tree, int max_code));
++local int build_bl_tree OF((deflate_state *s));
++local void send_all_trees OF((deflate_state *s, int lcodes, int dcodes,
++ int blcodes));
++local void compress_block OF((deflate_state *s, ct_data *ltree,
++ ct_data *dtree));
++local void set_data_type OF((deflate_state *s));
++local unsigned bi_reverse OF((unsigned value, int length));
++local void bi_windup OF((deflate_state *s));
++local void bi_flush OF((deflate_state *s));
++local void copy_block OF((deflate_state *s, charf *buf, unsigned len,
++ int header));
++
++#ifndef DEBUG_ZLIB
++# define send_code(s, c, tree) send_bits(s, tree[c].Code, tree[c].Len)
++ /* Send a code of the given tree. c and tree must not have side effects */
++
++#else /* DEBUG_ZLIB */
++# define send_code(s, c, tree) \
++ { if (verbose&gt;1) fprintf(stderr,&quot;\ncd %3d &quot;,(c)); \
++ send_bits(s, tree[c].Code, tree[c].Len); }
++#endif
++
++#define d_code(dist) \
++ ((dist) &lt; 256 ? dist_code[dist] : dist_code[256+((dist)&gt;&gt;7)])
++/* Mapping from a distance to a distance code. dist is the distance - 1 and
++ * must not have side effects. dist_code[256] and dist_code[257] are never
++ * used.
++ */
++
++/* ===========================================================================
++ * Output a short LSB first on the stream.
++ * IN assertion: there is enough room in pendingBuf.
++ */
++#define put_short(s, w) { \
++ put_byte(s, (uch)((w) &amp; 0xff)); \
++ put_byte(s, (uch)((ush)(w) &gt;&gt; 8)); \
++}
++
++/* ===========================================================================
++ * Send a value on a given number of bits.
++ * IN assertion: length &lt;= 16 and value fits in length bits.
++ */
++#ifdef DEBUG_ZLIB
++local void send_bits OF((deflate_state *s, int value, int length));
++
++local void send_bits(s, value, length)
++ deflate_state *s;
++ int value; /* value to send */
++ int length; /* number of bits */
++{
++ Tracev((stderr,&quot; l %2d v %4x &quot;, length, value));
++ Assert(length &gt; 0 &amp;&amp; length &lt;= 15, &quot;invalid length&quot;);
++ s-&gt;bits_sent += (ulg)length;
++
++ /* If not enough room in bi_buf, use (valid) bits from bi_buf and
++ * (16 - bi_valid) bits from value, leaving (width - (16-bi_valid))
++ * unused bits in value.
++ */
++ if (s-&gt;bi_valid &gt; (int)Buf_size - length) {
++ s-&gt;bi_buf |= (value &lt;&lt; s-&gt;bi_valid);
++ put_short(s, s-&gt;bi_buf);
++ s-&gt;bi_buf = (ush)value &gt;&gt; (Buf_size - s-&gt;bi_valid);
++ s-&gt;bi_valid += length - Buf_size;
++ } else {
++ s-&gt;bi_buf |= value &lt;&lt; s-&gt;bi_valid;
++ s-&gt;bi_valid += length;
++ }
++}
++#else /* !DEBUG_ZLIB */
++
++#define send_bits(s, value, length) \
++{ int len = length;\
++ if (s-&gt;bi_valid &gt; (int)Buf_size - len) {\
++ int val = value;\
++ s-&gt;bi_buf |= (val &lt;&lt; s-&gt;bi_valid);\
++ put_short(s, s-&gt;bi_buf);\
++ s-&gt;bi_buf = (ush)val &gt;&gt; (Buf_size - s-&gt;bi_valid);\
++ s-&gt;bi_valid += len - Buf_size;\
++ } else {\
++ s-&gt;bi_buf |= (value) &lt;&lt; s-&gt;bi_valid;\
++ s-&gt;bi_valid += len;\
++ }\
++}
++#endif /* DEBUG_ZLIB */
++
++
++#define MAX(a,b) (a &gt;= b ? a : b)
++/* the arguments must not have side effects */
++
++/* ===========================================================================
++ * Initialize the various 'constant' tables.
++ * To do: do this at compile time.
++ */
++local void ct_static_init()
++{
++ int n; /* iterates over tree elements */
++ int bits; /* bit counter */
++ int length; /* length value */
++ int code; /* code value */
++ int dist; /* distance index */
++ ush bl_count[MAX_BITS+1];
++ /* number of codes at each bit length for an optimal tree */
++
++ /* Initialize the mapping length (0..255) -&gt; length code (0..28) */
++ length = 0;
++ for (code = 0; code &lt; LENGTH_CODES-1; code++) {
++ base_length[code] = length;
++ for (n = 0; n &lt; (1&lt;&lt;extra_lbits[code]); n++) {
++ length_code[length++] = (uch)code;
++ }
++ }
++ Assert (length == 256, &quot;ct_static_init: length != 256&quot;);
++ /* Note that the length 255 (match length 258) can be represented
++ * in two different ways: code 284 + 5 bits or code 285, so we
++ * overwrite length_code[255] to use the best encoding:
++ */
++ length_code[length-1] = (uch)code;
++
++ /* Initialize the mapping dist (0..32K) -&gt; dist code (0..29) */
++ dist = 0;
++ for (code = 0 ; code &lt; 16; code++) {
++ base_dist[code] = dist;
++ for (n = 0; n &lt; (1&lt;&lt;extra_dbits[code]); n++) {
++ dist_code[dist++] = (uch)code;
++ }
++ }
++ Assert (dist == 256, &quot;ct_static_init: dist != 256&quot;);
++ dist &gt;&gt;= 7; /* from now on, all distances are divided by 128 */
++ for ( ; code &lt; D_CODES; code++) {
++ base_dist[code] = dist &lt;&lt; 7;
++ for (n = 0; n &lt; (1&lt;&lt;(extra_dbits[code]-7)); n++) {
++ dist_code[256 + dist++] = (uch)code;
++ }
++ }
++ Assert (dist == 256, &quot;ct_static_init: 256+dist != 512&quot;);
++
++ /* Construct the codes of the static literal tree */
++ for (bits = 0; bits &lt;= MAX_BITS; bits++) bl_count[bits] = 0;
++ n = 0;
++ while (n &lt;= 143) static_ltree[n++].Len = 8, bl_count[8]++;
++ while (n &lt;= 255) static_ltree[n++].Len = 9, bl_count[9]++;
++ while (n &lt;= 279) static_ltree[n++].Len = 7, bl_count[7]++;
++ while (n &lt;= 287) static_ltree[n++].Len = 8, bl_count[8]++;
++ /* Codes 286 and 287 do not exist, but we must include them in the
++ * tree construction to get a canonical Huffman tree (longest code
++ * all ones)
++ */
++ gen_codes((ct_data *)static_ltree, L_CODES+1, bl_count);
++
++ /* The static distance tree is trivial: */
++ for (n = 0; n &lt; D_CODES; n++) {
++ static_dtree[n].Len = 5;
++ static_dtree[n].Code = bi_reverse(n, 5);
++ }
++}
++
++/* ===========================================================================
++ * Initialize the tree data structures for a new zlib stream.
++ */
++local void ct_init(s)
++ deflate_state *s;
++{
++ if (static_dtree[0].Len == 0) {
++ ct_static_init(); /* To do: at compile time */
++ }
++
++ s-&gt;compressed_len = 0L;
++
++ s-&gt;l_desc.dyn_tree = s-&gt;dyn_ltree;
++ s-&gt;l_desc.stat_desc = &amp;static_l_desc;
++
++ s-&gt;d_desc.dyn_tree = s-&gt;dyn_dtree;
++ s-&gt;d_desc.stat_desc = &amp;static_d_desc;
++
++ s-&gt;bl_desc.dyn_tree = s-&gt;bl_tree;
++ s-&gt;bl_desc.stat_desc = &amp;static_bl_desc;
++
++ s-&gt;bi_buf = 0;
++ s-&gt;bi_valid = 0;
++ s-&gt;last_eob_len = 8; /* enough lookahead for inflate */
++#ifdef DEBUG_ZLIB
++ s-&gt;bits_sent = 0L;
++#endif
++ s-&gt;blocks_in_packet = 0;
++
++ /* Initialize the first block of the first file: */
++ init_block(s);
++}
++
++/* ===========================================================================
++ * Initialize a new block.
++ */
++local void init_block(s)
++ deflate_state *s;
++{
++ int n; /* iterates over tree elements */
++
++ /* Initialize the trees. */
++ for (n = 0; n &lt; L_CODES; n++) s-&gt;dyn_ltree[n].Freq = 0;
++ for (n = 0; n &lt; D_CODES; n++) s-&gt;dyn_dtree[n].Freq = 0;
++ for (n = 0; n &lt; BL_CODES; n++) s-&gt;bl_tree[n].Freq = 0;
++
++ s-&gt;dyn_ltree[END_BLOCK].Freq = 1;
++ s-&gt;opt_len = s-&gt;static_len = 0L;
++ s-&gt;last_lit = s-&gt;matches = 0;
++}
++
++#define SMALLEST 1
++/* Index within the heap array of least frequent node in the Huffman tree */
++
++
++/* ===========================================================================
++ * Remove the smallest element from the heap and recreate the heap with
++ * one less element. Updates heap and heap_len.
++ */
++#define pqremove(s, tree, top) \
++{\
++ top = s-&gt;heap[SMALLEST]; \
++ s-&gt;heap[SMALLEST] = s-&gt;heap[s-&gt;heap_len--]; \
++ pqdownheap(s, tree, SMALLEST); \
++}
++
++/* ===========================================================================
++ * Compares to subtrees, using the tree depth as tie breaker when
++ * the subtrees have equal frequency. This minimizes the worst case length.
++ */
++#define smaller(tree, n, m, depth) \
++ (tree[n].Freq &lt; tree[m].Freq || \
++ (tree[n].Freq == tree[m].Freq &amp;&amp; depth[n] &lt;= depth[m]))
++
++/* ===========================================================================
++ * Restore the heap property by moving down the tree starting at node k,
++ * exchanging a node with the smallest of its two sons if necessary, stopping
++ * when the heap property is re-established (each father smaller than its
++ * two sons).
++ */
++local void pqdownheap(s, tree, k)
++ deflate_state *s;
++ ct_data *tree; /* the tree to restore */
++ int k; /* node to move down */
++{
++ int v = s-&gt;heap[k];
++ int j = k &lt;&lt; 1; /* left son of k */
++ while (j &lt;= s-&gt;heap_len) {
++ /* Set j to the smallest of the two sons: */
++ if (j &lt; s-&gt;heap_len &amp;&amp;
++ smaller(tree, s-&gt;heap[j+1], s-&gt;heap[j], s-&gt;depth)) {
++ j++;
++ }
++ /* Exit if v is smaller than both sons */
++ if (smaller(tree, v, s-&gt;heap[j], s-&gt;depth)) break;
++
++ /* Exchange v with the smallest son */
++ s-&gt;heap[k] = s-&gt;heap[j]; k = j;
++
++ /* And continue down the tree, setting j to the left son of k */
++ j &lt;&lt;= 1;
++ }
++ s-&gt;heap[k] = v;
++}
++
++/* ===========================================================================
++ * Compute the optimal bit lengths for a tree and update the total bit length
++ * for the current block.
++ * IN assertion: the fields freq and dad are set, heap[heap_max] and
++ * above are the tree nodes sorted by increasing frequency.
++ * OUT assertions: the field len is set to the optimal bit length, the
++ * array bl_count contains the frequencies for each bit length.
++ * The length opt_len is updated; static_len is also updated if stree is
++ * not null.
++ */
++local void gen_bitlen(s, desc)
++ deflate_state *s;
++ tree_desc *desc; /* the tree descriptor */
++{
++ ct_data *tree = desc-&gt;dyn_tree;
++ int max_code = desc-&gt;max_code;
++ ct_data *stree = desc-&gt;stat_desc-&gt;static_tree;
++ intf *extra = desc-&gt;stat_desc-&gt;extra_bits;
++ int base = desc-&gt;stat_desc-&gt;extra_base;
++ int max_length = desc-&gt;stat_desc-&gt;max_length;
++ int h; /* heap index */
++ int n, m; /* iterate over the tree elements */
++ int bits; /* bit length */
++ int xbits; /* extra bits */
++ ush f; /* frequency */
++ int overflow = 0; /* number of elements with bit length too large */
++
++ for (bits = 0; bits &lt;= MAX_BITS; bits++) s-&gt;bl_count[bits] = 0;
++
++ /* In a first pass, compute the optimal bit lengths (which may
++ * overflow in the case of the bit length tree).
++ */
++ tree[s-&gt;heap[s-&gt;heap_max]].Len = 0; /* root of the heap */
++
++ for (h = s-&gt;heap_max+1; h &lt; HEAP_SIZE; h++) {
++ n = s-&gt;heap[h];
++ bits = tree[tree[n].Dad].Len + 1;
++ if (bits &gt; max_length) bits = max_length, overflow++;
++ tree[n].Len = (ush)bits;
++ /* We overwrite tree[n].Dad which is no longer needed */
++
++ if (n &gt; max_code) continue; /* not a leaf node */
++
++ s-&gt;bl_count[bits]++;
++ xbits = 0;
++ if (n &gt;= base) xbits = extra[n-base];
++ f = tree[n].Freq;
++ s-&gt;opt_len += (ulg)f * (bits + xbits);
++ if (stree) s-&gt;static_len += (ulg)f * (stree[n].Len + xbits);
++ }
++ if (overflow == 0) return;
++
++ Trace((stderr,&quot;\nbit length overflow\n&quot;));
++ /* This happens for example on obj2 and pic of the Calgary corpus */
++
++ /* Find the first bit length which could increase: */
++ do {
++ bits = max_length-1;
++ while (s-&gt;bl_count[bits] == 0) bits--;
++ s-&gt;bl_count[bits]--; /* move one leaf down the tree */
++ s-&gt;bl_count[bits+1] += 2; /* move one overflow item as its brother */
++ s-&gt;bl_count[max_length]--;
++ /* The brother of the overflow item also moves one step up,
++ * but this does not affect bl_count[max_length]
++ */
++ overflow -= 2;
++ } while (overflow &gt; 0);
++
++ /* Now recompute all bit lengths, scanning in increasing frequency.
++ * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all
++ * lengths instead of fixing only the wrong ones. This idea is taken
++ * from 'ar' written by Haruhiko Okumura.)
++ */
++ for (bits = max_length; bits != 0; bits--) {
++ n = s-&gt;bl_count[bits];
++ while (n != 0) {
++ m = s-&gt;heap[--h];
++ if (m &gt; max_code) continue;
++ if (tree[m].Len != (unsigned) bits) {
++ Trace((stderr,&quot;code %d bits %d-&gt;%d\n&quot;, m, tree[m].Len, bits));
++ s-&gt;opt_len += ((long)bits - (long)tree[m].Len)
++ *(long)tree[m].Freq;
++ tree[m].Len = (ush)bits;
++ }
++ n--;
++ }
++ }
++}
++
++/* ===========================================================================
++ * Generate the codes for a given tree and bit counts (which need not be
++ * optimal).
++ * IN assertion: the array bl_count contains the bit length statistics for
++ * the given tree and the field len is set for all tree elements.
++ * OUT assertion: the field code is set for all tree elements of non
++ * zero code length.
++ */
++local void gen_codes (tree, max_code, bl_count)
++ ct_data *tree; /* the tree to decorate */
++ int max_code; /* largest code with non zero frequency */
++ ushf *bl_count; /* number of codes at each bit length */
++{
++ ush next_code[MAX_BITS+1]; /* next code value for each bit length */
++ ush code = 0; /* running code value */
++ int bits; /* bit index */
++ int n; /* code index */
++
++ /* The distribution counts are first used to generate the code values
++ * without bit reversal.
++ */
++ for (bits = 1; bits &lt;= MAX_BITS; bits++) {
++ next_code[bits] = code = (code + bl_count[bits-1]) &lt;&lt; 1;
++ }
++ /* Check that the bit counts in bl_count are consistent. The last code
++ * must be all ones.
++ */
++ Assert (code + bl_count[MAX_BITS]-1 == (1&lt;&lt;MAX_BITS)-1,
++ &quot;inconsistent bit counts&quot;);
++ Tracev((stderr,&quot;\ngen_codes: max_code %d &quot;, max_code));
++
++ for (n = 0; n &lt;= max_code; n++) {
++ int len = tree[n].Len;
++ if (len == 0) continue;
++ /* Now reverse the bits */
++ tree[n].Code = bi_reverse(next_code[len]++, len);
++
++ Tracec(tree != static_ltree, (stderr,&quot;\nn %3d %c l %2d c %4x (%x) &quot;,
++ n, (isgraph(n) ? n : ' '), len, tree[n].Code, next_code[len]-1));
++ }
++}
++
++/* ===========================================================================
++ * Construct one Huffman tree and assigns the code bit strings and lengths.
++ * Update the total bit length for the current block.
++ * IN assertion: the field freq is set for all tree elements.
++ * OUT assertions: the fields len and code are set to the optimal bit length
++ * and corresponding code. The length opt_len is updated; static_len is
++ * also updated if stree is not null. The field max_code is set.
++ */
++local void build_tree(s, desc)
++ deflate_state *s;
++ tree_desc *desc; /* the tree descriptor */
++{
++ ct_data *tree = desc-&gt;dyn_tree;
++ ct_data *stree = desc-&gt;stat_desc-&gt;static_tree;
++ int elems = desc-&gt;stat_desc-&gt;elems;
++ int n, m; /* iterate over heap elements */
++ int max_code = -1; /* largest code with non zero frequency */
++ int node; /* new node being created */
++
++ /* Construct the initial heap, with least frequent element in
++ * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].
++ * heap[0] is not used.
++ */
++ s-&gt;heap_len = 0, s-&gt;heap_max = HEAP_SIZE;
++
++ for (n = 0; n &lt; elems; n++) {
++ if (tree[n].Freq != 0) {
++ s-&gt;heap[++(s-&gt;heap_len)] = max_code = n;
++ s-&gt;depth[n] = 0;
++ } else {
++ tree[n].Len = 0;
++ }
++ }
++
++ /* The pkzip format requires that at least one distance code exists,
++ * and that at least one bit should be sent even if there is only one
++ * possible code. So to avoid special checks later on we force at least
++ * two codes of non zero frequency.
++ */
++ while (s-&gt;heap_len &lt; 2) {
++ node = s-&gt;heap[++(s-&gt;heap_len)] = (max_code &lt; 2 ? ++max_code : 0);
++ tree[node].Freq = 1;
++ s-&gt;depth[node] = 0;
++ s-&gt;opt_len--; if (stree) s-&gt;static_len -= stree[node].Len;
++ /* node is 0 or 1 so it does not have extra bits */
++ }
++ desc-&gt;max_code = max_code;
++
++ /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,
++ * establish sub-heaps of increasing lengths:
++ */
++ for (n = s-&gt;heap_len/2; n &gt;= 1; n--) pqdownheap(s, tree, n);
++
++ /* Construct the Huffman tree by repeatedly combining the least two
++ * frequent nodes.
++ */
++ node = elems; /* next internal node of the tree */
++ do {
++ pqremove(s, tree, n); /* n = node of least frequency */
++ m = s-&gt;heap[SMALLEST]; /* m = node of next least frequency */
++
++ s-&gt;heap[--(s-&gt;heap_max)] = n; /* keep the nodes sorted by frequency */
++ s-&gt;heap[--(s-&gt;heap_max)] = m;
++
++ /* Create a new node father of n and m */
++ tree[node].Freq = tree[n].Freq + tree[m].Freq;
++ s-&gt;depth[node] = (uch) (MAX(s-&gt;depth[n], s-&gt;depth[m]) + 1);
++ tree[n].Dad = tree[m].Dad = (ush)node;
++#ifdef DUMP_BL_TREE
++ if (tree == s-&gt;bl_tree) {
++ fprintf(stderr,&quot;\nnode %d(%d), sons %d(%d) %d(%d)&quot;,
++ node, tree[node].Freq, n, tree[n].Freq, m, tree[m].Freq);
++ }
++#endif
++ /* and insert the new node in the heap */
++ s-&gt;heap[SMALLEST] = node++;
++ pqdownheap(s, tree, SMALLEST);
++
++ } while (s-&gt;heap_len &gt;= 2);
++
++ s-&gt;heap[--(s-&gt;heap_max)] = s-&gt;heap[SMALLEST];
++
++ /* At this point, the fields freq and dad are set. We can now
++ * generate the bit lengths.
++ */
++ gen_bitlen(s, (tree_desc *)desc);
++
++ /* The field len is now set, we can generate the bit codes */
++ gen_codes ((ct_data *)tree, max_code, s-&gt;bl_count);
++}
++
++/* ===========================================================================
++ * Scan a literal or distance tree to determine the frequencies of the codes
++ * in the bit length tree.
++ */
++local void scan_tree (s, tree, max_code)
++ deflate_state *s;
++ ct_data *tree; /* the tree to be scanned */
++ int max_code; /* and its largest code of non zero frequency */
++{
++ int n; /* iterates over all tree elements */
++ int prevlen = -1; /* last emitted length */
++ int curlen; /* length of current code */
++ int nextlen = tree[0].Len; /* length of next code */
++ int count = 0; /* repeat count of the current code */
++ int max_count = 7; /* max repeat count */
++ int min_count = 4; /* min repeat count */
++
++ if (nextlen == 0) max_count = 138, min_count = 3;
++ tree[max_code+1].Len = (ush)0xffff; /* guard */
++
++ for (n = 0; n &lt;= max_code; n++) {
++ curlen = nextlen; nextlen = tree[n+1].Len;
++ if (++count &lt; max_count &amp;&amp; curlen == nextlen) {
++ continue;
++ } else if (count &lt; min_count) {
++ s-&gt;bl_tree[curlen].Freq += count;
++ } else if (curlen != 0) {
++ if (curlen != prevlen) s-&gt;bl_tree[curlen].Freq++;
++ s-&gt;bl_tree[REP_3_6].Freq++;
++ } else if (count &lt;= 10) {
++ s-&gt;bl_tree[REPZ_3_10].Freq++;
++ } else {
++ s-&gt;bl_tree[REPZ_11_138].Freq++;
++ }
++ count = 0; prevlen = curlen;
++ if (nextlen == 0) {
++ max_count = 138, min_count = 3;
++ } else if (curlen == nextlen) {
++ max_count = 6, min_count = 3;
++ } else {
++ max_count = 7, min_count = 4;
++ }
++ }
++}
++
++/* ===========================================================================
++ * Send a literal or distance tree in compressed form, using the codes in
++ * bl_tree.
++ */
++local void send_tree (s, tree, max_code)
++ deflate_state *s;
++ ct_data *tree; /* the tree to be scanned */
++ int max_code; /* and its largest code of non zero frequency */
++{
++ int n; /* iterates over all tree elements */
++ int prevlen = -1; /* last emitted length */
++ int curlen; /* length of current code */
++ int nextlen = tree[0].Len; /* length of next code */
++ int count = 0; /* repeat count of the current code */
++ int max_count = 7; /* max repeat count */
++ int min_count = 4; /* min repeat count */
++
++ /* tree[max_code+1].Len = -1; */ /* guard already set */
++ if (nextlen == 0) max_count = 138, min_count = 3;
++
++ for (n = 0; n &lt;= max_code; n++) {
++ curlen = nextlen; nextlen = tree[n+1].Len;
++ if (++count &lt; max_count &amp;&amp; curlen == nextlen) {
++ continue;
++ } else if (count &lt; min_count) {
++ do { send_code(s, curlen, s-&gt;bl_tree); } while (--count != 0);
++
++ } else if (curlen != 0) {
++ if (curlen != prevlen) {
++ send_code(s, curlen, s-&gt;bl_tree); count--;
++ }
++ Assert(count &gt;= 3 &amp;&amp; count &lt;= 6, &quot; 3_6?&quot;);
++ send_code(s, REP_3_6, s-&gt;bl_tree); send_bits(s, count-3, 2);
++
++ } else if (count &lt;= 10) {
++ send_code(s, REPZ_3_10, s-&gt;bl_tree); send_bits(s, count-3, 3);
++
++ } else {
++ send_code(s, REPZ_11_138, s-&gt;bl_tree); send_bits(s, count-11, 7);
++ }
++ count = 0; prevlen = curlen;
++ if (nextlen == 0) {
++ max_count = 138, min_count = 3;
++ } else if (curlen == nextlen) {
++ max_count = 6, min_count = 3;
++ } else {
++ max_count = 7, min_count = 4;
++ }
++ }
++}
++
++/* ===========================================================================
++ * Construct the Huffman tree for the bit lengths and return the index in
++ * bl_order of the last bit length code to send.
++ */
++local int build_bl_tree(s)
++ deflate_state *s;
++{
++ int max_blindex; /* index of last bit length code of non zero freq */
++
++ /* Determine the bit length frequencies for literal and distance trees */
++ scan_tree(s, (ct_data *)s-&gt;dyn_ltree, s-&gt;l_desc.max_code);
++ scan_tree(s, (ct_data *)s-&gt;dyn_dtree, s-&gt;d_desc.max_code);
++
++ /* Build the bit length tree: */
++ build_tree(s, (tree_desc *)(&amp;(s-&gt;bl_desc)));
++ /* opt_len now includes the length of the tree representations, except
++ * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.
++ */
++
++ /* Determine the number of bit length codes to send. The pkzip format
++ * requires that at least 4 bit length codes be sent. (appnote.txt says
++ * 3 but the actual value used is 4.)
++ */
++ for (max_blindex = BL_CODES-1; max_blindex &gt;= 3; max_blindex--) {
++ if (s-&gt;bl_tree[bl_order[max_blindex]].Len != 0) break;
++ }
++ /* Update opt_len to include the bit length tree and counts */
++ s-&gt;opt_len += 3*(max_blindex+1) + 5+5+4;
++ Tracev((stderr, &quot;\ndyn trees: dyn %ld, stat %ld&quot;,
++ s-&gt;opt_len, s-&gt;static_len));
++
++ return max_blindex;
++}
++
++/* ===========================================================================
++ * Send the header for a block using dynamic Huffman trees: the counts, the
++ * lengths of the bit length codes, the literal tree and the distance tree.
++ * IN assertion: lcodes &gt;= 257, dcodes &gt;= 1, blcodes &gt;= 4.
++ */
++local void send_all_trees(s, lcodes, dcodes, blcodes)
++ deflate_state *s;
++ int lcodes, dcodes, blcodes; /* number of codes for each tree */
++{
++ int rank; /* index in bl_order */
++
++ Assert (lcodes &gt;= 257 &amp;&amp; dcodes &gt;= 1 &amp;&amp; blcodes &gt;= 4, &quot;not enough codes&quot;);
++ Assert (lcodes &lt;= L_CODES &amp;&amp; dcodes &lt;= D_CODES &amp;&amp; blcodes &lt;= BL_CODES,
++ &quot;too many codes&quot;);
++ Tracev((stderr, &quot;\nbl counts: &quot;));
++ send_bits(s, lcodes-257, 5); /* not +255 as stated in appnote.txt */
++ send_bits(s, dcodes-1, 5);
++ send_bits(s, blcodes-4, 4); /* not -3 as stated in appnote.txt */
++ for (rank = 0; rank &lt; blcodes; rank++) {
++ Tracev((stderr, &quot;\nbl code %2d &quot;, bl_order[rank]));
++ send_bits(s, s-&gt;bl_tree[bl_order[rank]].Len, 3);
++ }
++ Tracev((stderr, &quot;\nbl tree: sent %ld&quot;, s-&gt;bits_sent));
++
++ send_tree(s, (ct_data *)s-&gt;dyn_ltree, lcodes-1); /* literal tree */
++ Tracev((stderr, &quot;\nlit tree: sent %ld&quot;, s-&gt;bits_sent));
++
++ send_tree(s, (ct_data *)s-&gt;dyn_dtree, dcodes-1); /* distance tree */
++ Tracev((stderr, &quot;\ndist tree: sent %ld&quot;, s-&gt;bits_sent));
++}
++
++/* ===========================================================================
++ * Send a stored block
++ */
++local void ct_stored_block(s, buf, stored_len, eof)
++ deflate_state *s;
++ charf *buf; /* input block */
++ ulg stored_len; /* length of input block */
++ int eof; /* true if this is the last block for a file */
++{
++ send_bits(s, (STORED_BLOCK&lt;&lt;1)+eof, 3); /* send block type */
++ s-&gt;compressed_len = (s-&gt;compressed_len + 3 + 7) &amp; ~7L;
++ s-&gt;compressed_len += (stored_len + 4) &lt;&lt; 3;
++
++ copy_block(s, buf, (unsigned)stored_len, 1); /* with header */
++}
++
++/* Send just the `stored block' type code without any length bytes or data.
++ */
++local void ct_stored_type_only(s)
++ deflate_state *s;
++{
++ send_bits(s, (STORED_BLOCK &lt;&lt; 1), 3);
++ bi_windup(s);
++ s-&gt;compressed_len = (s-&gt;compressed_len + 3) &amp; ~7L;
++}
++
++
++/* ===========================================================================
++ * Send one empty static block to give enough lookahead for inflate.
++ * This takes 10 bits, of which 7 may remain in the bit buffer.
++ * The current inflate code requires 9 bits of lookahead. If the EOB
++ * code for the previous block was coded on 5 bits or less, inflate
++ * may have only 5+3 bits of lookahead to decode this EOB.
++ * (There are no problems if the previous block is stored or fixed.)
++ */
++local void ct_align(s)
++ deflate_state *s;
++{
++ send_bits(s, STATIC_TREES&lt;&lt;1, 3);
++ send_code(s, END_BLOCK, static_ltree);
++ s-&gt;compressed_len += 10L; /* 3 for block type, 7 for EOB */
++ bi_flush(s);
++ /* Of the 10 bits for the empty block, we have already sent
++ * (10 - bi_valid) bits. The lookahead for the EOB of the previous
++ * block was thus its length plus what we have just sent.
++ */
++ if (s-&gt;last_eob_len + 10 - s-&gt;bi_valid &lt; 9) {
++ send_bits(s, STATIC_TREES&lt;&lt;1, 3);
++ send_code(s, END_BLOCK, static_ltree);
++ s-&gt;compressed_len += 10L;
++ bi_flush(s);
++ }
++ s-&gt;last_eob_len = 7;
++}
++
++/* ===========================================================================
++ * Determine the best encoding for the current block: dynamic trees, static
++ * trees or store, and output the encoded block to the zip file. This function
++ * returns the total compressed length for the file so far.
++ */
++local ulg ct_flush_block(s, buf, stored_len, flush)
++ deflate_state *s;
++ charf *buf; /* input block, or NULL if too old */
++ ulg stored_len; /* length of input block */
++ int flush; /* Z_FINISH if this is the last block for a file */
++{
++ ulg opt_lenb, static_lenb; /* opt_len and static_len in bytes */
++ int max_blindex; /* index of last bit length code of non zero freq */
++ int eof = flush == Z_FINISH;
++
++ ++s-&gt;blocks_in_packet;
++
++ /* Check if the file is ascii or binary */
++ if (s-&gt;data_type == UNKNOWN) set_data_type(s);
++
++ /* Construct the literal and distance trees */
++ build_tree(s, (tree_desc *)(&amp;(s-&gt;l_desc)));
++ Tracev((stderr, &quot;\nlit data: dyn %ld, stat %ld&quot;, s-&gt;opt_len,
++ s-&gt;static_len));
++
++ build_tree(s, (tree_desc *)(&amp;(s-&gt;d_desc)));
++ Tracev((stderr, &quot;\ndist data: dyn %ld, stat %ld&quot;, s-&gt;opt_len,
++ s-&gt;static_len));
++ /* At this point, opt_len and static_len are the total bit lengths of
++ * the compressed block data, excluding the tree representations.
++ */
++
++ /* Build the bit length tree for the above two trees, and get the index
++ * in bl_order of the last bit length code to send.
++ */
++ max_blindex = build_bl_tree(s);
++
++ /* Determine the best encoding. Compute first the block length in bytes */
++ opt_lenb = (s-&gt;opt_len+3+7)&gt;&gt;3;
++ static_lenb = (s-&gt;static_len+3+7)&gt;&gt;3;
++
++ Tracev((stderr, &quot;\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u &quot;,
++ opt_lenb, s-&gt;opt_len, static_lenb, s-&gt;static_len, stored_len,
++ s-&gt;last_lit));
++
++ if (static_lenb &lt;= opt_lenb) opt_lenb = static_lenb;
++
++ /* If compression failed and this is the first and last block,
++ * and if the .zip file can be seeked (to rewrite the local header),
++ * the whole file is transformed into a stored file:
++ */
++#ifdef STORED_FILE_OK
++# ifdef FORCE_STORED_FILE
++ if (eof &amp;&amp; compressed_len == 0L) /* force stored file */
++# else
++ if (stored_len &lt;= opt_lenb &amp;&amp; eof &amp;&amp; s-&gt;compressed_len==0L &amp;&amp; seekable())
++# endif
++ {
++ /* Since LIT_BUFSIZE &lt;= 2*WSIZE, the input data must be there: */
++ if (buf == (charf*)0) error (&quot;block vanished&quot;);
++
++ copy_block(buf, (unsigned)stored_len, 0); /* without header */
++ s-&gt;compressed_len = stored_len &lt;&lt; 3;
++ s-&gt;method = STORED;
++ } else
++#endif /* STORED_FILE_OK */
++
++ /* For Z_PACKET_FLUSH, if we don't achieve the required minimum
++ * compression, and this block contains all the data since the last
++ * time we used Z_PACKET_FLUSH, then just omit this block completely
++ * from the output.
++ */
++ if (flush == Z_PACKET_FLUSH &amp;&amp; s-&gt;blocks_in_packet == 1
++ &amp;&amp; opt_lenb &gt; stored_len - s-&gt;minCompr) {
++ s-&gt;blocks_in_packet = 0;
++ /* output nothing */
++ } else
++
++#ifdef FORCE_STORED
++ if (buf != (char*)0) /* force stored block */
++#else
++ if (stored_len+4 &lt;= opt_lenb &amp;&amp; buf != (char*)0)
++ /* 4: two words for the lengths */
++#endif
++ {
++ /* The test buf != NULL is only necessary if LIT_BUFSIZE &gt; WSIZE.
++ * Otherwise we can't have processed more than WSIZE input bytes since
++ * the last block flush, because compression would have been
++ * successful. If LIT_BUFSIZE &lt;= WSIZE, it is never too late to
++ * transform a block into a stored block.
++ */
++ ct_stored_block(s, buf, stored_len, eof);
++ } else
++
++#ifdef FORCE_STATIC
++ if (static_lenb &gt;= 0) /* force static trees */
++#else
++ if (static_lenb == opt_lenb)
++#endif
++ {
++ send_bits(s, (STATIC_TREES&lt;&lt;1)+eof, 3);
++ compress_block(s, (ct_data *)static_ltree, (ct_data *)static_dtree);
++ s-&gt;compressed_len += 3 + s-&gt;static_len;
++ } else {
++ send_bits(s, (DYN_TREES&lt;&lt;1)+eof, 3);
++ send_all_trees(s, s-&gt;l_desc.max_code+1, s-&gt;d_desc.max_code+1,
++ max_blindex+1);
++ compress_block(s, (ct_data *)s-&gt;dyn_ltree, (ct_data *)s-&gt;dyn_dtree);
++ s-&gt;compressed_len += 3 + s-&gt;opt_len;
++ }
++ Assert (s-&gt;compressed_len == s-&gt;bits_sent, &quot;bad compressed size&quot;);
++ init_block(s);
++
++ if (eof) {
++ bi_windup(s);
++ s-&gt;compressed_len += 7; /* align on byte boundary */
++ }
++ Tracev((stderr,&quot;\ncomprlen %lu(%lu) &quot;, s-&gt;compressed_len&gt;&gt;3,
++ s-&gt;compressed_len-7*eof));
++
++ return s-&gt;compressed_len &gt;&gt; 3;
++}
++
++/* ===========================================================================
++ * Save the match info and tally the frequency counts. Return true if
++ * the current block must be flushed.
++ */
++local int ct_tally (s, dist, lc)
++ deflate_state *s;
++ int dist; /* distance of matched string */
++ int lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */
++{
++ s-&gt;d_buf[s-&gt;last_lit] = (ush)dist;
++ s-&gt;l_buf[s-&gt;last_lit++] = (uch)lc;
++ if (dist == 0) {
++ /* lc is the unmatched char */
++ s-&gt;dyn_ltree[lc].Freq++;
++ } else {
++ s-&gt;matches++;
++ /* Here, lc is the match length - MIN_MATCH */
++ dist--; /* dist = match distance - 1 */
++ Assert((ush)dist &lt; (ush)MAX_DIST(s) &amp;&amp;
++ (ush)lc &lt;= (ush)(MAX_MATCH-MIN_MATCH) &amp;&amp;
++ (ush)d_code(dist) &lt; (ush)D_CODES, &quot;ct_tally: bad match&quot;);
++
++ s-&gt;dyn_ltree[length_code[lc]+LITERALS+1].Freq++;
++ s-&gt;dyn_dtree[d_code(dist)].Freq++;
++ }
++
++ /* Try to guess if it is profitable to stop the current block here */
++ if (s-&gt;level &gt; 2 &amp;&amp; (s-&gt;last_lit &amp; 0xfff) == 0) {
++ /* Compute an upper bound for the compressed length */
++ ulg out_length = (ulg)s-&gt;last_lit*8L;
++ ulg in_length = (ulg)s-&gt;strstart - s-&gt;block_start;
++ int dcode;
++ for (dcode = 0; dcode &lt; D_CODES; dcode++) {
++ out_length += (ulg)s-&gt;dyn_dtree[dcode].Freq *
++ (5L+extra_dbits[dcode]);
++ }
++ out_length &gt;&gt;= 3;
++ Tracev((stderr,&quot;\nlast_lit %u, in %ld, out ~%ld(%ld%%) &quot;,
++ s-&gt;last_lit, in_length, out_length,
++ 100L - out_length*100L/in_length));
++ if (s-&gt;matches &lt; s-&gt;last_lit/2 &amp;&amp; out_length &lt; in_length/2) return 1;
++ }
++ return (s-&gt;last_lit == s-&gt;lit_bufsize-1);
++ /* We avoid equality with lit_bufsize because of wraparound at 64K
++ * on 16 bit machines and because stored blocks are restricted to
++ * 64K-1 bytes.
++ */
++}
++
++/* ===========================================================================
++ * Send the block data compressed using the given Huffman trees
++ */
++local void compress_block(s, ltree, dtree)
++ deflate_state *s;
++ ct_data *ltree; /* literal tree */
++ ct_data *dtree; /* distance tree */
++{
++ unsigned dist; /* distance of matched string */
++ int lc; /* match length or unmatched char (if dist == 0) */
++ unsigned lx = 0; /* running index in l_buf */
++ unsigned code; /* the code to send */
++ int extra; /* number of extra bits to send */
++
++ if (s-&gt;last_lit != 0) do {
++ dist = s-&gt;d_buf[lx];
++ lc = s-&gt;l_buf[lx++];
++ if (dist == 0) {
++ send_code(s, lc, ltree); /* send a literal byte */
++ Tracecv(isgraph(lc), (stderr,&quot; '%c' &quot;, lc));
++ } else {
++ /* Here, lc is the match length - MIN_MATCH */
++ code = length_code[lc];
++ send_code(s, code+LITERALS+1, ltree); /* send the length code */
++ extra = extra_lbits[code];
++ if (extra != 0) {
++ lc -= base_length[code];
++ send_bits(s, lc, extra); /* send the extra length bits */
++ }
++ dist--; /* dist is now the match distance - 1 */
++ code = d_code(dist);
++ Assert (code &lt; D_CODES, &quot;bad d_code&quot;);
++
++ send_code(s, code, dtree); /* send the distance code */
++ extra = extra_dbits[code];
++ if (extra != 0) {
++ dist -= base_dist[code];
++ send_bits(s, dist, extra); /* send the extra distance bits */
++ }
++ } /* literal or match pair ? */
++
++ /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */
++ Assert(s-&gt;pending &lt; s-&gt;lit_bufsize + 2*lx, &quot;pendingBuf overflow&quot;);
++
++ } while (lx &lt; s-&gt;last_lit);
++
++ send_code(s, END_BLOCK, ltree);
++ s-&gt;last_eob_len = ltree[END_BLOCK].Len;
++}
++
++/* ===========================================================================
++ * Set the data type to ASCII or BINARY, using a crude approximation:
++ * binary if more than 20% of the bytes are &lt;= 6 or &gt;= 128, ascii otherwise.
++ * IN assertion: the fields freq of dyn_ltree are set and the total of all
++ * frequencies does not exceed 64K (to fit in an int on 16 bit machines).
++ */
++local void set_data_type(s)
++ deflate_state *s;
++{
++ int n = 0;
++ unsigned ascii_freq = 0;
++ unsigned bin_freq = 0;
++ while (n &lt; 7) bin_freq += s-&gt;dyn_ltree[n++].Freq;
++ while (n &lt; 128) ascii_freq += s-&gt;dyn_ltree[n++].Freq;
++ while (n &lt; LITERALS) bin_freq += s-&gt;dyn_ltree[n++].Freq;
++ s-&gt;data_type = (Byte)(bin_freq &gt; (ascii_freq &gt;&gt; 2) ? BINARY : ASCII);
++}
++
++/* ===========================================================================
++ * Reverse the first len bits of a code, using straightforward code (a faster
++ * method would use a table)
++ * IN assertion: 1 &lt;= len &lt;= 15
++ */
++local unsigned bi_reverse(code, len)
++ unsigned code; /* the value to invert */
++ int len; /* its bit length */
++{
++ register unsigned res = 0;
++ do {
++ res |= code &amp; 1;
++ code &gt;&gt;= 1, res &lt;&lt;= 1;
++ } while (--len &gt; 0);
++ return res &gt;&gt; 1;
++}
++
++/* ===========================================================================
++ * Flush the bit buffer, keeping at most 7 bits in it.
++ */
++local void bi_flush(s)
++ deflate_state *s;
++{
++ if (s-&gt;bi_valid == 16) {
++ put_short(s, s-&gt;bi_buf);
++ s-&gt;bi_buf = 0;
++ s-&gt;bi_valid = 0;
++ } else if (s-&gt;bi_valid &gt;= 8) {
++ put_byte(s, (Byte)s-&gt;bi_buf);
++ s-&gt;bi_buf &gt;&gt;= 8;
++ s-&gt;bi_valid -= 8;
++ }
++}
++
++/* ===========================================================================
++ * Flush the bit buffer and align the output on a byte boundary
++ */
++local void bi_windup(s)
++ deflate_state *s;
++{
++ if (s-&gt;bi_valid &gt; 8) {
++ put_short(s, s-&gt;bi_buf);
++ } else if (s-&gt;bi_valid &gt; 0) {
++ put_byte(s, (Byte)s-&gt;bi_buf);
++ }
++ s-&gt;bi_buf = 0;
++ s-&gt;bi_valid = 0;
++#ifdef DEBUG_ZLIB
++ s-&gt;bits_sent = (s-&gt;bits_sent+7) &amp; ~7;
++#endif
++}
++
++/* ===========================================================================
++ * Copy a stored block, storing first the length and its
++ * one's complement if requested.
++ */
++local void copy_block(s, buf, len, header)
++ deflate_state *s;
++ charf *buf; /* the input data */
++ unsigned len; /* its length */
++ int header; /* true if block header must be written */
++{
++ bi_windup(s); /* align on byte boundary */
++ s-&gt;last_eob_len = 8; /* enough lookahead for inflate */
++
++ if (header) {
++ put_short(s, (ush)len);
++ put_short(s, (ush)~len);
++#ifdef DEBUG_ZLIB
++ s-&gt;bits_sent += 2*16;
++#endif
++ }
++#ifdef DEBUG_ZLIB
++ s-&gt;bits_sent += (ulg)len&lt;&lt;3;
++#endif
++ while (len--) {
++ put_byte(s, *buf++);
++ }
++}
++
++
++/*+++++*/
++/* infblock.h -- header to use infblock.c
++ * Copyright (C) 1995 Mark Adler
++ * For conditions of distribution and use, see copyright notice in zlib.h
++ */
++
++/* WARNING: this file should *not* be used by applications. It is
++ part of the implementation of the compression library and is
++ subject to change. Applications should only use zlib.h.
++ */
++
++struct inflate_blocks_state;
++typedef struct inflate_blocks_state FAR inflate_blocks_statef;
++
++local inflate_blocks_statef * inflate_blocks_new OF((
++ z_stream *z,
++ check_func c, /* check function */
++ uInt w)); /* window size */
++
++local int inflate_blocks OF((
++ inflate_blocks_statef *,
++ z_stream *,
++ int)); /* initial return code */
++
++local void inflate_blocks_reset OF((
++ inflate_blocks_statef *,
++ z_stream *,
++ uLongf *)); /* check value on output */
++
++local int inflate_blocks_free OF((
++ inflate_blocks_statef *,
++ z_stream *,
++ uLongf *)); /* check value on output */
++
++local int inflate_addhistory OF((
++ inflate_blocks_statef *,
++ z_stream *));
++
++local int inflate_packet_flush OF((
++ inflate_blocks_statef *));
++
++/*+++++*/
++/* inftrees.h -- header to use inftrees.c
++ * Copyright (C) 1995 Mark Adler
++ * For conditions of distribution and use, see copyright notice in zlib.h
++ */
++
++/* WARNING: this file should *not* be used by applications. It is
++ part of the implementation of the compression library and is
++ subject to change. Applications should only use zlib.h.
++ */
++
++/* Huffman code lookup table entry--this entry is four bytes for machines
++ that have 16-bit pointers (e.g. PC's in the small or medium model). */
++
++typedef struct inflate_huft_s FAR inflate_huft;
++
++struct inflate_huft_s {
++ union {
++ struct {
++ Byte Exop; /* number of extra bits or operation */
++ Byte Bits; /* number of bits in this code or subcode */
++ } what;
++ uInt Nalloc; /* number of these allocated here */
++ Bytef *pad; /* pad structure to a power of 2 (4 bytes for */
++ } word; /* 16-bit, 8 bytes for 32-bit machines) */
++ union {
++ uInt Base; /* literal, length base, or distance base */
++ inflate_huft *Next; /* pointer to next level of table */
++ } more;
++};
++
++#ifdef DEBUG_ZLIB
++ local uInt inflate_hufts;
++#endif
++
++local int inflate_trees_bits OF((
++ uIntf *, /* 19 code lengths */
++ uIntf *, /* bits tree desired/actual depth */
++ inflate_huft * FAR *, /* bits tree result */
++ z_stream *)); /* for zalloc, zfree functions */
++
++local int inflate_trees_dynamic OF((
++ uInt, /* number of literal/length codes */
++ uInt, /* number of distance codes */
++ uIntf *, /* that many (total) code lengths */
++ uIntf *, /* literal desired/actual bit depth */
++ uIntf *, /* distance desired/actual bit depth */
++ inflate_huft * FAR *, /* literal/length tree result */
++ inflate_huft * FAR *, /* distance tree result */
++ z_stream *)); /* for zalloc, zfree functions */
++
++local int inflate_trees_fixed OF((
++ uIntf *, /* literal desired/actual bit depth */
++ uIntf *, /* distance desired/actual bit depth */
++ inflate_huft * FAR *, /* literal/length tree result */
++ inflate_huft * FAR *)); /* distance tree result */
++
++local int inflate_trees_free OF((
++ inflate_huft *, /* tables to free */
++ z_stream *)); /* for zfree function */
++
++
++/*+++++*/
++/* infcodes.h -- header to use infcodes.c
++ * Copyright (C) 1995 Mark Adler
++ * For conditions of distribution and use, see copyright notice in zlib.h
++ */
++
++/* WARNING: this file should *not* be used by applications. It is
++ part of the implementation of the compression library and is
++ subject to change. Applications should only use zlib.h.
++ */
++
++struct inflate_codes_state;
++typedef struct inflate_codes_state FAR inflate_codes_statef;
++
++local inflate_codes_statef *inflate_codes_new OF((
++ uInt, uInt,
++ inflate_huft *, inflate_huft *,
++ z_stream *));
++
++local int inflate_codes OF((
++ inflate_blocks_statef *,
++ z_stream *,
++ int));
++
++local void inflate_codes_free OF((
++ inflate_codes_statef *,
++ z_stream *));
++
++
++/*+++++*/
++/* inflate.c -- zlib interface to inflate modules
++ * Copyright (C) 1995 Mark Adler
++ * For conditions of distribution and use, see copyright notice in zlib.h
++ */
++
++/* inflate private state */
++struct internal_state {
++
++ /* mode */
++ enum {
++ METHOD, /* waiting for method byte */
++ FLAG, /* waiting for flag byte */
++ BLOCKS, /* decompressing blocks */
++ CHECK4, /* four check bytes to go */
++ CHECK3, /* three check bytes to go */
++ CHECK2, /* two check bytes to go */
++ CHECK1, /* one check byte to go */
++ DONE, /* finished check, done */
++ BAD} /* got an error--stay here */
++ mode; /* current inflate mode */
++
++ /* mode dependent information */
++ union {
++ uInt method; /* if FLAGS, method byte */
++ struct {
++ uLong was; /* computed check value */
++ uLong need; /* stream check value */
++ } check; /* if CHECK, check values to compare */
++ uInt marker; /* if BAD, inflateSync's marker bytes count */
++ } sub; /* submode */
++
++ /* mode independent information */
++ int nowrap; /* flag for no wrapper */
++ uInt wbits; /* log2(window size) (8..15, defaults to 15) */
++ inflate_blocks_statef
++ *blocks; /* current inflate_blocks state */
++
++};
++
++
++int inflateReset(z)
++z_stream *z;
++{
++ uLong c;
++
++ if (z == Z_NULL || z-&gt;state == Z_NULL)
++ return Z_STREAM_ERROR;
++ z-&gt;total_in = z-&gt;total_out = 0;
++ z-&gt;msg = Z_NULL;
++ z-&gt;state-&gt;mode = z-&gt;state-&gt;nowrap ? BLOCKS : METHOD;
++ inflate_blocks_reset(z-&gt;state-&gt;blocks, z, &amp;c);
++ Trace((stderr, &quot;inflate: reset\n&quot;));
++ return Z_OK;
++}
++
++
++int inflateEnd(z)
++z_stream *z;
++{
++ uLong c;
++
++ if (z == Z_NULL || z-&gt;state == Z_NULL || z-&gt;zfree == Z_NULL)
++ return Z_STREAM_ERROR;
++ if (z-&gt;state-&gt;blocks != Z_NULL)
++ inflate_blocks_free(z-&gt;state-&gt;blocks, z, &amp;c);
++ ZFREE(z, z-&gt;state, sizeof(struct internal_state));
++ z-&gt;state = Z_NULL;
++ Trace((stderr, &quot;inflate: end\n&quot;));
++ return Z_OK;
++}
++
++
++int inflateInit2(z, w)
++z_stream *z;
++int w;
++{
++ /* initialize state */
++ if (z == Z_NULL)
++ return Z_STREAM_ERROR;
++/* if (z-&gt;zalloc == Z_NULL) z-&gt;zalloc = zcalloc; */
++/* if (z-&gt;zfree == Z_NULL) z-&gt;zfree = zcfree; */
++ if ((z-&gt;state = (struct internal_state FAR *)
++ ZALLOC(z,1,sizeof(struct internal_state))) == Z_NULL)
++ return Z_MEM_ERROR;
++ z-&gt;state-&gt;blocks = Z_NULL;
++
++ /* handle undocumented nowrap option (no zlib header or check) */
++ z-&gt;state-&gt;nowrap = 0;
++ if (w &lt; 0)
++ {
++ w = - w;
++ z-&gt;state-&gt;nowrap = 1;
++ }
++
++ /* set window size */
++ if (w &lt; 8 || w &gt; 15)
++ {
++ inflateEnd(z);
++ return Z_STREAM_ERROR;
++ }
++ z-&gt;state-&gt;wbits = (uInt)w;
++
++ /* create inflate_blocks state */
++ if ((z-&gt;state-&gt;blocks =
++ inflate_blocks_new(z, z-&gt;state-&gt;nowrap ? Z_NULL : adler32, 1 &lt;&lt; w))
++ == Z_NULL)
++ {
++ inflateEnd(z);
++ return Z_MEM_ERROR;
++ }
++ Trace((stderr, &quot;inflate: allocated\n&quot;));
++
++ /* reset state */
++ inflateReset(z);
++ return Z_OK;
++}
++
++
++int inflateInit(z)
++z_stream *z;
++{
++ return inflateInit2(z, DEF_WBITS);
++}
++
++
++#define NEEDBYTE {if(z-&gt;avail_in==0)goto empty;r=Z_OK;}
++#define NEXTBYTE (z-&gt;avail_in--,z-&gt;total_in++,*z-&gt;next_in++)
++
++int inflate(z, f)
++z_stream *z;
++int f;
++{
++ int r;
++ uInt b;
++
++ if (z == Z_NULL || z-&gt;next_in == Z_NULL)
++ return Z_STREAM_ERROR;
++ r = Z_BUF_ERROR;
++ while (1) switch (z-&gt;state-&gt;mode)
++ {
++ case METHOD:
++ NEEDBYTE
++ if (((z-&gt;state-&gt;sub.method = NEXTBYTE) &amp; 0xf) != DEFLATED)
++ {
++ z-&gt;state-&gt;mode = BAD;
++ z-&gt;msg = &quot;unknown compression method&quot;;
++ z-&gt;state-&gt;sub.marker = 5; /* can't try inflateSync */
++ break;
++ }
++ if ((z-&gt;state-&gt;sub.method &gt;&gt; 4) + 8 &gt; z-&gt;state-&gt;wbits)
++ {
++ z-&gt;state-&gt;mode = BAD;
++ z-&gt;msg = &quot;invalid window size&quot;;
++ z-&gt;state-&gt;sub.marker = 5; /* can't try inflateSync */
++ break;
++ }
++ z-&gt;state-&gt;mode = FLAG;
++ case FLAG:
++ NEEDBYTE
++ if ((b = NEXTBYTE) &amp; 0x20)
++ {
++ z-&gt;state-&gt;mode = BAD;
++ z-&gt;msg = &quot;invalid reserved bit&quot;;
++ z-&gt;state-&gt;sub.marker = 5; /* can't try inflateSync */
++ break;
++ }
++ if (((z-&gt;state-&gt;sub.method &lt;&lt; 8) + b) % 31)
++ {
++ z-&gt;state-&gt;mode = BAD;
++ z-&gt;msg = &quot;incorrect header check&quot;;
++ z-&gt;state-&gt;sub.marker = 5; /* can't try inflateSync */
++ break;
++ }
++ Trace((stderr, &quot;inflate: zlib header ok\n&quot;));
++ z-&gt;state-&gt;mode = BLOCKS;
++ case BLOCKS:
++ r = inflate_blocks(z-&gt;state-&gt;blocks, z, r);
++ if (f == Z_PACKET_FLUSH &amp;&amp; z-&gt;avail_in == 0 &amp;&amp; z-&gt;avail_out != 0)
++ r = inflate_packet_flush(z-&gt;state-&gt;blocks);
++ if (r == Z_DATA_ERROR)
++ {
++ z-&gt;state-&gt;mode = BAD;
++ z-&gt;state-&gt;sub.marker = 0; /* can try inflateSync */
++ break;
++ }
++ if (r != Z_STREAM_END)
++ return r;
++ r = Z_OK;
++ inflate_blocks_reset(z-&gt;state-&gt;blocks, z, &amp;z-&gt;state-&gt;sub.check.was);
++ if (z-&gt;state-&gt;nowrap)
++ {
++ z-&gt;state-&gt;mode = DONE;
++ break;
++ }
++ z-&gt;state-&gt;mode = CHECK4;
++ case CHECK4:
++ NEEDBYTE
++ z-&gt;state-&gt;sub.check.need = (uLong)NEXTBYTE &lt;&lt; 24;
++ z-&gt;state-&gt;mode = CHECK3;
++ case CHECK3:
++ NEEDBYTE
++ z-&gt;state-&gt;sub.check.need += (uLong)NEXTBYTE &lt;&lt; 16;
++ z-&gt;state-&gt;mode = CHECK2;
++ case CHECK2:
++ NEEDBYTE
++ z-&gt;state-&gt;sub.check.need += (uLong)NEXTBYTE &lt;&lt; 8;
++ z-&gt;state-&gt;mode = CHECK1;
++ case CHECK1:
++ NEEDBYTE
++ z-&gt;state-&gt;sub.check.need += (uLong)NEXTBYTE;
++
++ if (z-&gt;state-&gt;sub.check.was != z-&gt;state-&gt;sub.check.need)
++ {
++ z-&gt;state-&gt;mode = BAD;
++ z-&gt;msg = &quot;incorrect data check&quot;;
++ z-&gt;state-&gt;sub.marker = 5; /* can't try inflateSync */
++ break;
++ }
++ Trace((stderr, &quot;inflate: zlib check ok\n&quot;));
++ z-&gt;state-&gt;mode = DONE;
++ case DONE:
++ return Z_STREAM_END;
++ case BAD:
++ return Z_DATA_ERROR;
++ default:
++ return Z_STREAM_ERROR;
++ }
++
++ empty:
++ if (f != Z_PACKET_FLUSH)
++ return r;
++ z-&gt;state-&gt;mode = BAD;
++ z-&gt;state-&gt;sub.marker = 0; /* can try inflateSync */
++ return Z_DATA_ERROR;
++}
++
++/*
++ * This subroutine adds the data at next_in/avail_in to the output history
++ * without performing any output. The output buffer must be &quot;caught up&quot;;
++ * i.e. no pending output (hence s-&gt;read equals s-&gt;write), and the state must
++ * be BLOCKS (i.e. we should be willing to see the start of a series of
++ * BLOCKS). On exit, the output will also be caught up, and the checksum
++ * will have been updated if need be.
++ */
++
++int inflateIncomp(z)
++z_stream *z;
++{
++ if (z-&gt;state-&gt;mode != BLOCKS)
++ return Z_DATA_ERROR;
++ return inflate_addhistory(z-&gt;state-&gt;blocks, z);
++}
++
++
++int inflateSync(z)
++z_stream *z;
++{
++ uInt n; /* number of bytes to look at */
++ Bytef *p; /* pointer to bytes */
++ uInt m; /* number of marker bytes found in a row */
++ uLong r, w; /* temporaries to save total_in and total_out */
++
++ /* set up */
++ if (z == Z_NULL || z-&gt;state == Z_NULL)
++ return Z_STREAM_ERROR;
++ if (z-&gt;state-&gt;mode != BAD)
++ {
++ z-&gt;state-&gt;mode = BAD;
++ z-&gt;state-&gt;sub.marker = 0;
++ }
++ if ((n = z-&gt;avail_in) == 0)
++ return Z_BUF_ERROR;
++ p = z-&gt;next_in;
++ m = z-&gt;state-&gt;sub.marker;
++
++ /* search */
++ while (n &amp;&amp; m &lt; 4)
++ {
++ if (*p == (Byte)(m &lt; 2 ? 0 : 0xff))
++ m++;
++ else if (*p)
++ m = 0;
++ else
++ m = 4 - m;
++ p++, n--;
++ }
++
++ /* restore */
++ z-&gt;total_in += p - z-&gt;next_in;
++ z-&gt;next_in = p;
++ z-&gt;avail_in = n;
++ z-&gt;state-&gt;sub.marker = m;
++
++ /* return no joy or set up to restart on a new block */
++ if (m != 4)
++ return Z_DATA_ERROR;
++ r = z-&gt;total_in; w = z-&gt;total_out;
++ inflateReset(z);
++ z-&gt;total_in = r; z-&gt;total_out = w;
++ z-&gt;state-&gt;mode = BLOCKS;
++ return Z_OK;
++}
++
++#undef NEEDBYTE
++#undef NEXTBYTE
++
++/*+++++*/
++/* infutil.h -- types and macros common to blocks and codes
++ * Copyright (C) 1995 Mark Adler
++ * For conditions of distribution and use, see copyright notice in zlib.h
++ */
++
++/* WARNING: this file should *not* be used by applications. It is
++ part of the implementation of the compression library and is
++ subject to change. Applications should only use zlib.h.
++ */
++
++/* inflate blocks semi-private state */
++struct inflate_blocks_state {
++
++ /* mode */
++ enum {
++ TYPE, /* get type bits (3, including end bit) */
++ LENS, /* get lengths for stored */
++ STORED, /* processing stored block */
++ TABLE, /* get table lengths */
++ BTREE, /* get bit lengths tree for a dynamic block */
++ DTREE, /* get length, distance trees for a dynamic block */
++ CODES, /* processing fixed or dynamic block */
++ DRY, /* output remaining window bytes */
++ DONEB, /* finished last block, done */
++ BADB} /* got a data error--stuck here */
++ mode; /* current inflate_block mode */
++
++ /* mode dependent information */
++ union {
++ uInt left; /* if STORED, bytes left to copy */
++ struct {
++ uInt table; /* table lengths (14 bits) */
++ uInt index; /* index into blens (or border) */
++ uIntf *blens; /* bit lengths of codes */
++ uInt bb; /* bit length tree depth */
++ inflate_huft *tb; /* bit length decoding tree */
++ int nblens; /* # elements allocated at blens */
++ } trees; /* if DTREE, decoding info for trees */
++ struct {
++ inflate_huft *tl, *td; /* trees to free */
++ inflate_codes_statef
++ *codes;
++ } decode; /* if CODES, current state */
++ } sub; /* submode */
++ uInt last; /* true if this block is the last block */
++
++ /* mode independent information */
++ uInt bitk; /* bits in bit buffer */
++ uLong bitb; /* bit buffer */
++ Bytef *window; /* sliding window */
++ Bytef *end; /* one byte after sliding window */
++ Bytef *read; /* window read pointer */
++ Bytef *write; /* window write pointer */
++ check_func checkfn; /* check function */
++ uLong check; /* check on output */
++
++};
++
++
++/* defines for inflate input/output */
++/* update pointers and return */
++#define UPDBITS {s-&gt;bitb=b;s-&gt;bitk=k;}
++#define UPDIN {z-&gt;avail_in=n;z-&gt;total_in+=p-z-&gt;next_in;z-&gt;next_in=p;}
++#define UPDOUT {s-&gt;write=q;}
++#define UPDATE {UPDBITS UPDIN UPDOUT}
++#define LEAVE {UPDATE return inflate_flush(s,z,r);}
++/* get bytes and bits */
++#define LOADIN {p=z-&gt;next_in;n=z-&gt;avail_in;b=s-&gt;bitb;k=s-&gt;bitk;}
++#define NEEDBYTE {if(n)r=Z_OK;else LEAVE}
++#define NEXTBYTE (n--,*p++)
++#define NEEDBITS(j) {while(k&lt;(j)){NEEDBYTE;b|=((uLong)NEXTBYTE)&lt;&lt;k;k+=8;}}
++#define DUMPBITS(j) {b&gt;&gt;=(j);k-=(j);}
++/* output bytes */
++#define WAVAIL (q&lt;s-&gt;read?s-&gt;read-q-1:s-&gt;end-q)
++#define LOADOUT {q=s-&gt;write;m=WAVAIL;}
++#define WRAP {if(q==s-&gt;end&amp;&amp;s-&gt;read!=s-&gt;window){q=s-&gt;window;m=WAVAIL;}}
++#define FLUSH {UPDOUT r=inflate_flush(s,z,r); LOADOUT}
++#define NEEDOUT {if(m==0){WRAP if(m==0){FLUSH WRAP if(m==0) LEAVE}}r=Z_OK;}
++#define OUTBYTE(a) {*q++=(Byte)(a);m--;}
++/* load local pointers */
++#define LOAD {LOADIN LOADOUT}
++
++/* And'ing with mask[n] masks the lower n bits */
++local uInt inflate_mask[] = {
++ 0x0000,
++ 0x0001, 0x0003, 0x0007, 0x000f, 0x001f, 0x003f, 0x007f, 0x00ff,
++ 0x01ff, 0x03ff, 0x07ff, 0x0fff, 0x1fff, 0x3fff, 0x7fff, 0xffff
++};
++
++/* copy as much as possible from the sliding window to the output area */
++local int inflate_flush OF((
++ inflate_blocks_statef *,
++ z_stream *,
++ int));
++
++/*+++++*/
++/* inffast.h -- header to use inffast.c
++ * Copyright (C) 1995 Mark Adler
++ * For conditions of distribution and use, see copyright notice in zlib.h
++ */
++
++/* WARNING: this file should *not* be used by applications. It is
++ part of the implementation of the compression library and is
++ subject to change. Applications should only use zlib.h.
++ */
++
++local int inflate_fast OF((
++ uInt,
++ uInt,
++ inflate_huft *,
++ inflate_huft *,
++ inflate_blocks_statef *,
++ z_stream *));
++
++
++/*+++++*/
++/* infblock.c -- interpret and process block types to last block
++ * Copyright (C) 1995 Mark Adler
++ * For conditions of distribution and use, see copyright notice in zlib.h
++ */
++
++/* Table for deflate from PKZIP's appnote.txt. */
++local uInt border[] = { /* Order of the bit length code lengths */
++ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15};
++
++/*
++ Notes beyond the 1.93a appnote.txt:
++
++ 1. Distance pointers never point before the beginning of the output
++ stream.
++ 2. Distance pointers can point back across blocks, up to 32k away.
++ 3. There is an implied maximum of 7 bits for the bit length table and
++ 15 bits for the actual data.
++ 4. If only one code exists, then it is encoded using one bit. (Zero
++ would be more efficient, but perhaps a little confusing.) If two
++ codes exist, they are coded using one bit each (0 and 1).
++ 5. There is no way of sending zero distance codes--a dummy must be
++ sent if there are none. (History: a pre 2.0 version of PKZIP would
++ store blocks with no distance codes, but this was discovered to be
++ too harsh a criterion.) Valid only for 1.93a. 2.04c does allow
++ zero distance codes, which is sent as one code of zero bits in
++ length.
++ 6. There are up to 286 literal/length codes. Code 256 represents the
++ end-of-block. Note however that the static length tree defines
++ 288 codes just to fill out the Huffman codes. Codes 286 and 287
++ cannot be used though, since there is no length base or extra bits
++ defined for them. Similarily, there are up to 30 distance codes.
++ However, static trees define 32 codes (all 5 bits) to fill out the
++ Huffman codes, but the last two had better not show up in the data.
++ 7. Unzip can check dynamic Huffman blocks for complete code sets.
++ The exception is that a single code would not be complete (see #4).
++ 8. The five bits following the block type is really the number of
++ literal codes sent minus 257.
++ 9. Length codes 8,16,16 are interpreted as 13 length codes of 8 bits
++ (1+6+6). Therefore, to output three times the length, you output
++ three codes (1+1+1), whereas to output four times the same length,
++ you only need two codes (1+3). Hmm.
++ 10. In the tree reconstruction algorithm, Code = Code + Increment
++ only if BitLength(i) is not zero. (Pretty obvious.)
++ 11. Correction: 4 Bits: # of Bit Length codes - 4 (4 - 19)
++ 12. Note: length code 284 can represent 227-258, but length code 285
++ really is 258. The last length deserves its own, short code
++ since it gets used a lot in very redundant files. The length
++ 258 is special since 258 - 3 (the min match length) is 255.
++ 13. The literal/length and distance code bit lengths are read as a
++ single stream of lengths. It is possible (and advantageous) for
++ a repeat code (16, 17, or 18) to go across the boundary between
++ the two sets of lengths.
++ */
++
++
++local void inflate_blocks_reset(s, z, c)
++inflate_blocks_statef *s;
++z_stream *z;
++uLongf *c;
++{
++ if (s-&gt;checkfn != Z_NULL)
++ *c = s-&gt;check;
++ if (s-&gt;mode == BTREE || s-&gt;mode == DTREE)
++ ZFREE(z, s-&gt;sub.trees.blens, s-&gt;sub.trees.nblens * sizeof(uInt));
++ if (s-&gt;mode == CODES)
++ {
++ inflate_codes_free(s-&gt;sub.decode.codes, z);
++ inflate_trees_free(s-&gt;sub.decode.td, z);
++ inflate_trees_free(s-&gt;sub.decode.tl, z);
++ }
++ s-&gt;mode = TYPE;
++ s-&gt;bitk = 0;
++ s-&gt;bitb = 0;
++ s-&gt;read = s-&gt;write = s-&gt;window;
++ if (s-&gt;checkfn != Z_NULL)
++ s-&gt;check = (*s-&gt;checkfn)(0L, Z_NULL, 0);
++ Trace((stderr, &quot;inflate: blocks reset\n&quot;));
++}
++
++
++local inflate_blocks_statef *inflate_blocks_new(z, c, w)
++z_stream *z;
++check_func c;
++uInt w;
++{
++ inflate_blocks_statef *s;
++
++ if ((s = (inflate_blocks_statef *)ZALLOC
++ (z,1,sizeof(struct inflate_blocks_state))) == Z_NULL)
++ return s;
++ if ((s-&gt;window = (Bytef *)ZALLOC(z, 1, w)) == Z_NULL)
++ {
++ ZFREE(z, s, sizeof(struct inflate_blocks_state));
++ return Z_NULL;
++ }
++ s-&gt;end = s-&gt;window + w;
++ s-&gt;checkfn = c;
++ s-&gt;mode = TYPE;
++ Trace((stderr, &quot;inflate: blocks allocated\n&quot;));
++ inflate_blocks_reset(s, z, &amp;s-&gt;check);
++ return s;
++}
++
++
++local int inflate_blocks(s, z, r)
++inflate_blocks_statef *s;
++z_stream *z;
++int r;
++{
++ uInt t; /* temporary storage */
++ uLong b; /* bit buffer */
++ uInt k; /* bits in bit buffer */
++ Bytef *p; /* input data pointer */
++ uInt n; /* bytes available there */
++ Bytef *q; /* output window write pointer */
++ uInt m; /* bytes to end of window or read pointer */
++
++ /* copy input/output information to locals (UPDATE macro restores) */
++ LOAD
++
++ /* process input based on current state */
++ while (1) switch (s-&gt;mode)
++ {
++ case TYPE:
++ NEEDBITS(3)
++ t = (uInt)b &amp; 7;
++ s-&gt;last = t &amp; 1;
++ switch (t &gt;&gt; 1)
++ {
++ case 0: /* stored */
++ Trace((stderr, &quot;inflate: stored block%s\n&quot;,
++ s-&gt;last ? &quot; (last)&quot; : &quot;&quot;));
++ DUMPBITS(3)
++ t = k &amp; 7; /* go to byte boundary */
++ DUMPBITS(t)
++ s-&gt;mode = LENS; /* get length of stored block */
++ break;
++ case 1: /* fixed */
++ Trace((stderr, &quot;inflate: fixed codes block%s\n&quot;,
++ s-&gt;last ? &quot; (last)&quot; : &quot;&quot;));
++ {
++ uInt bl, bd;
++ inflate_huft *tl, *td;
++
++ inflate_trees_fixed(&amp;bl, &amp;bd, &amp;tl, &amp;td);
++ s-&gt;sub.decode.codes = inflate_codes_new(bl, bd, tl, td, z);
++ if (s-&gt;sub.decode.codes == Z_NULL)
++ {
++ r = Z_MEM_ERROR;
++ LEAVE
++ }
++ s-&gt;sub.decode.tl = Z_NULL; /* don't try to free these */
++ s-&gt;sub.decode.td = Z_NULL;
++ }
++ DUMPBITS(3)
++ s-&gt;mode = CODES;
++ break;
++ case 2: /* dynamic */
++ Trace((stderr, &quot;inflate: dynamic codes block%s\n&quot;,
++ s-&gt;last ? &quot; (last)&quot; : &quot;&quot;));
++ DUMPBITS(3)
++ s-&gt;mode = TABLE;
++ break;
++ case 3: /* illegal */
++ DUMPBITS(3)
++ s-&gt;mode = BADB;
++ z-&gt;msg = &quot;invalid block type&quot;;
++ r = Z_DATA_ERROR;
++ LEAVE
++ }
++ break;
++ case LENS:
++ NEEDBITS(32)
++ if (((~b) &gt;&gt; 16) != (b &amp; 0xffff))
++ {
++ s-&gt;mode = BADB;
++ z-&gt;msg = &quot;invalid stored block lengths&quot;;
++ r = Z_DATA_ERROR;
++ LEAVE
++ }
++ s-&gt;sub.left = (uInt)b &amp; 0xffff;
++ b = k = 0; /* dump bits */
++ Tracev((stderr, &quot;inflate: stored length %u\n&quot;, s-&gt;sub.left));
++ s-&gt;mode = s-&gt;sub.left ? STORED : TYPE;
++ break;
++ case STORED:
++ if (n == 0)
++ LEAVE
++ NEEDOUT
++ t = s-&gt;sub.left;
++ if (t &gt; n) t = n;
++ if (t &gt; m) t = m;
++ zmemcpy(q, p, t);
++ p += t; n -= t;
++ q += t; m -= t;
++ if ((s-&gt;sub.left -= t) != 0)
++ break;
++ Tracev((stderr, &quot;inflate: stored end, %lu total out\n&quot;,
++ z-&gt;total_out + (q &gt;= s-&gt;read ? q - s-&gt;read :
++ (s-&gt;end - s-&gt;read) + (q - s-&gt;window))));
++ s-&gt;mode = s-&gt;last ? DRY : TYPE;
++ break;
++ case TABLE:
++ NEEDBITS(14)
++ s-&gt;sub.trees.table = t = (uInt)b &amp; 0x3fff;
++#ifndef PKZIP_BUG_WORKAROUND
++ if ((t &amp; 0x1f) &gt; 29 || ((t &gt;&gt; 5) &amp; 0x1f) &gt; 29)
++ {
++ s-&gt;mode = BADB;
++ z-&gt;msg = &quot;too many length or distance symbols&quot;;
++ r = Z_DATA_ERROR;
++ LEAVE
++ }
++#endif
++ t = 258 + (t &amp; 0x1f) + ((t &gt;&gt; 5) &amp; 0x1f);
++ if (t &lt; 19)
++ t = 19;
++ if ((s-&gt;sub.trees.blens = (uIntf*)ZALLOC(z, t, sizeof(uInt))) == Z_NULL)
++ {
++ r = Z_MEM_ERROR;
++ LEAVE
++ }
++ s-&gt;sub.trees.nblens = t;
++ DUMPBITS(14)
++ s-&gt;sub.trees.index = 0;
++ Tracev((stderr, &quot;inflate: table sizes ok\n&quot;));
++ s-&gt;mode = BTREE;
++ case BTREE:
++ while (s-&gt;sub.trees.index &lt; 4 + (s-&gt;sub.trees.table &gt;&gt; 10))
++ {
++ NEEDBITS(3)
++ s-&gt;sub.trees.blens[border[s-&gt;sub.trees.index++]] = (uInt)b &amp; 7;
++ DUMPBITS(3)
++ }
++ while (s-&gt;sub.trees.index &lt; 19)
++ s-&gt;sub.trees.blens[border[s-&gt;sub.trees.index++]] = 0;
++ s-&gt;sub.trees.bb = 7;
++ t = inflate_trees_bits(s-&gt;sub.trees.blens, &amp;s-&gt;sub.trees.bb,
++ &amp;s-&gt;sub.trees.tb, z);
++ if (t != Z_OK)
++ {
++ r = t;
++ if (r == Z_DATA_ERROR)
++ s-&gt;mode = BADB;
++ LEAVE
++ }
++ s-&gt;sub.trees.index = 0;
++ Tracev((stderr, &quot;inflate: bits tree ok\n&quot;));
++ s-&gt;mode = DTREE;
++ case DTREE:
++ while (t = s-&gt;sub.trees.table,
++ s-&gt;sub.trees.index &lt; 258 + (t &amp; 0x1f) + ((t &gt;&gt; 5) &amp; 0x1f))
++ {
++ inflate_huft *h;
++ uInt i, j, c;
++
++ t = s-&gt;sub.trees.bb;
++ NEEDBITS(t)
++ h = s-&gt;sub.trees.tb + ((uInt)b &amp; inflate_mask[t]);
++ t = h-&gt;word.what.Bits;
++ c = h-&gt;more.Base;
++ if (c &lt; 16)
++ {
++ DUMPBITS(t)
++ s-&gt;sub.trees.blens[s-&gt;sub.trees.index++] = c;
++ }
++ else /* c == 16..18 */
++ {
++ i = c == 18 ? 7 : c - 14;
++ j = c == 18 ? 11 : 3;
++ NEEDBITS(t + i)
++ DUMPBITS(t)
++ j += (uInt)b &amp; inflate_mask[i];
++ DUMPBITS(i)
++ i = s-&gt;sub.trees.index;
++ t = s-&gt;sub.trees.table;
++ if (i + j &gt; 258 + (t &amp; 0x1f) + ((t &gt;&gt; 5) &amp; 0x1f) ||
++ (c == 16 &amp;&amp; i &lt; 1))
++ {
++ s-&gt;mode = BADB;
++ z-&gt;msg = &quot;invalid bit length repeat&quot;;
++ r = Z_DATA_ERROR;
++ LEAVE
++ }
++ c = c == 16 ? s-&gt;sub.trees.blens[i - 1] : 0;
++ do {
++ s-&gt;sub.trees.blens[i++] = c;
++ } while (--j);
++ s-&gt;sub.trees.index = i;
++ }
++ }
++ inflate_trees_free(s-&gt;sub.trees.tb, z);
++ s-&gt;sub.trees.tb = Z_NULL;
++ {
++ uInt bl, bd;
++ inflate_huft *tl, *td;
++ inflate_codes_statef *c;
++
++ bl = 9; /* must be &lt;= 9 for lookahead assumptions */
++ bd = 6; /* must be &lt;= 9 for lookahead assumptions */
++ t = s-&gt;sub.trees.table;
++ t = inflate_trees_dynamic(257 + (t &amp; 0x1f), 1 + ((t &gt;&gt; 5) &amp; 0x1f),
++ s-&gt;sub.trees.blens, &amp;bl, &amp;bd, &amp;tl, &amp;td, z);
++ if (t != Z_OK)
++ {
++ if (t == (uInt)Z_DATA_ERROR)
++ s-&gt;mode = BADB;
++ r = t;
++ LEAVE
++ }
++ Tracev((stderr, &quot;inflate: trees ok\n&quot;));
++ if ((c = inflate_codes_new(bl, bd, tl, td, z)) == Z_NULL)
++ {
++ inflate_trees_free(td, z);
++ inflate_trees_free(tl, z);
++ r = Z_MEM_ERROR;
++ LEAVE
++ }
++ ZFREE(z, s-&gt;sub.trees.blens, s-&gt;sub.trees.nblens * sizeof(uInt));
++ s-&gt;sub.decode.codes = c;
++ s-&gt;sub.decode.tl = tl;
++ s-&gt;sub.decode.td = td;
++ }
++ s-&gt;mode = CODES;
++ case CODES:
++ UPDATE
++ if ((r = inflate_codes(s, z, r)) != Z_STREAM_END)
++ return inflate_flush(s, z, r);
++ r = Z_OK;
++ inflate_codes_free(s-&gt;sub.decode.codes, z);
++ inflate_trees_free(s-&gt;sub.decode.td, z);
++ inflate_trees_free(s-&gt;sub.decode.tl, z);
++ LOAD
++ Tracev((stderr, &quot;inflate: codes end, %lu total out\n&quot;,
++ z-&gt;total_out + (q &gt;= s-&gt;read ? q - s-&gt;read :
++ (s-&gt;end - s-&gt;read) + (q - s-&gt;window))));
++ if (!s-&gt;last)
++ {
++ s-&gt;mode = TYPE;
++ break;
++ }
++ if (k &gt; 7) /* return unused byte, if any */
++ {
++ Assert(k &lt; 16, &quot;inflate_codes grabbed too many bytes&quot;)
++ k -= 8;
++ n++;
++ p--; /* can always return one */
++ }
++ s-&gt;mode = DRY;
++ case DRY:
++ FLUSH
++ if (s-&gt;read != s-&gt;write)
++ LEAVE
++ s-&gt;mode = DONEB;
++ case DONEB:
++ r = Z_STREAM_END;
++ LEAVE
++ case BADB:
++ r = Z_DATA_ERROR;
++ LEAVE
++ default:
++ r = Z_STREAM_ERROR;
++ LEAVE
++ }
++}
++
++
++local int inflate_blocks_free(s, z, c)
++inflate_blocks_statef *s;
++z_stream *z;
++uLongf *c;
++{
++ inflate_blocks_reset(s, z, c);
++ ZFREE(z, s-&gt;window, s-&gt;end - s-&gt;window);
++ ZFREE(z, s, sizeof(struct inflate_blocks_state));
++ Trace((stderr, &quot;inflate: blocks freed\n&quot;));
++ return Z_OK;
++}
++
++/*
++ * This subroutine adds the data at next_in/avail_in to the output history
++ * without performing any output. The output buffer must be &quot;caught up&quot;;
++ * i.e. no pending output (hence s-&gt;read equals s-&gt;write), and the state must
++ * be BLOCKS (i.e. we should be willing to see the start of a series of
++ * BLOCKS). On exit, the output will also be caught up, and the checksum
++ * will have been updated if need be.
++ */
++local int inflate_addhistory(s, z)
++inflate_blocks_statef *s;
++z_stream *z;
++{
++ uLong b; /* bit buffer */ /* NOT USED HERE */
++ uInt k; /* bits in bit buffer */ /* NOT USED HERE */
++ uInt t; /* temporary storage */
++ Bytef *p; /* input data pointer */
++ uInt n; /* bytes available there */
++ Bytef *q; /* output window write pointer */
++ uInt m; /* bytes to end of window or read pointer */
++
++ if (s-&gt;read != s-&gt;write)
++ return Z_STREAM_ERROR;
++ if (s-&gt;mode != TYPE)
++ return Z_DATA_ERROR;
++
++ /* we're ready to rock */
++ LOAD
++ /* while there is input ready, copy to output buffer, moving
++ * pointers as needed.
++ */
++ while (n) {
++ t = n; /* how many to do */
++ /* is there room until end of buffer? */
++ if (t &gt; m) t = m;
++ /* update check information */
++ if (s-&gt;checkfn != Z_NULL)
++ s-&gt;check = (*s-&gt;checkfn)(s-&gt;check, q, t);
++ zmemcpy(q, p, t);
++ q += t;
++ p += t;
++ n -= t;
++ z-&gt;total_out += t;
++ s-&gt;read = q; /* drag read pointer forward */
++/* WRAP */ /* expand WRAP macro by hand to handle s-&gt;read */
++ if (q == s-&gt;end) {
++ s-&gt;read = q = s-&gt;window;
++ m = WAVAIL;
++ }
++ }
++ UPDATE
++ return Z_OK;
++}
++
++
++/*
++ * At the end of a Deflate-compressed PPP packet, we expect to have seen
++ * a `stored' block type value but not the (zero) length bytes.
++ */
++local int inflate_packet_flush(s)
++ inflate_blocks_statef *s;
++{
++ if (s-&gt;mode != LENS)
++ return Z_DATA_ERROR;
++ s-&gt;mode = TYPE;
++ return Z_OK;
++}
++
++
++/*+++++*/
++/* inftrees.c -- generate Huffman trees for efficient decoding
++ * Copyright (C) 1995 Mark Adler
++ * For conditions of distribution and use, see copyright notice in zlib.h
++ */
++
++/* simplify the use of the inflate_huft type with some defines */
++#define base more.Base
++#define next more.Next
++#define exop word.what.Exop
++#define bits word.what.Bits
++
++
++local int huft_build OF((
++ uIntf *, /* code lengths in bits */
++ uInt, /* number of codes */
++ uInt, /* number of &quot;simple&quot; codes */
++ uIntf *, /* list of base values for non-simple codes */
++ uIntf *, /* list of extra bits for non-simple codes */
++ inflate_huft * FAR*,/* result: starting table */
++ uIntf *, /* maximum lookup bits (returns actual) */
++ z_stream *)); /* for zalloc function */
++
++local voidpf falloc OF((
++ voidpf, /* opaque pointer (not used) */
++ uInt, /* number of items */
++ uInt)); /* size of item */
++
++local void ffree OF((
++ voidpf q, /* opaque pointer (not used) */
++ voidpf p, /* what to free (not used) */
++ uInt n)); /* number of bytes (not used) */
++
++/* Tables for deflate from PKZIP's appnote.txt. */
++local uInt cplens[] = { /* Copy lengths for literal codes 257..285 */
++ 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,
++ 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0};
++ /* actually lengths - 2; also see note #13 above about 258 */
++local uInt cplext[] = { /* Extra bits for literal codes 257..285 */
++ 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2,
++ 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 192, 192}; /* 192==invalid */
++local uInt cpdist[] = { /* Copy offsets for distance codes 0..29 */
++ 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,
++ 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,
++ 8193, 12289, 16385, 24577};
++local uInt cpdext[] = { /* Extra bits for distance codes */
++ 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6,
++ 7, 7, 8, 8, 9, 9, 10, 10, 11, 11,
++ 12, 12, 13, 13};
++
++/*
++ Huffman code decoding is performed using a multi-level table lookup.
++ The fastest way to decode is to simply build a lookup table whose
++ size is determined by the longest code. However, the time it takes
++ to build this table can also be a factor if the data being decoded
++ is not very long. The most common codes are necessarily the
++ shortest codes, so those codes dominate the decoding time, and hence
++ the speed. The idea is you can have a shorter table that decodes the
++ shorter, more probable codes, and then point to subsidiary tables for
++ the longer codes. The time it costs to decode the longer codes is
++ then traded against the time it takes to make longer tables.
++
++ This results of this trade are in the variables lbits and dbits
++ below. lbits is the number of bits the first level table for literal/
++ length codes can decode in one step, and dbits is the same thing for
++ the distance codes. Subsequent tables are also less than or equal to
++ those sizes. These values may be adjusted either when all of the
++ codes are shorter than that, in which case the longest code length in
++ bits is used, or when the shortest code is *longer* than the requested
++ table size, in which case the length of the shortest code in bits is
++ used.
++
++ There are two different values for the two tables, since they code a
++ different number of possibilities each. The literal/length table
++ codes 286 possible values, or in a flat code, a little over eight
++ bits. The distance table codes 30 possible values, or a little less
++ than five bits, flat. The optimum values for speed end up being
++ about one bit more than those, so lbits is 8+1 and dbits is 5+1.
++ The optimum values may differ though from machine to machine, and
++ possibly even between compilers. Your mileage may vary.
++ */
++
++
++/* If BMAX needs to be larger than 16, then h and x[] should be uLong. */
++#define BMAX 15 /* maximum bit length of any code */
++#define N_MAX 288 /* maximum number of codes in any set */
++
++#ifdef DEBUG_ZLIB
++ uInt inflate_hufts;
++#endif
++
++local int huft_build(b, n, s, d, e, t, m, zs)
++uIntf *b; /* code lengths in bits (all assumed &lt;= BMAX) */
++uInt n; /* number of codes (assumed &lt;= N_MAX) */
++uInt s; /* number of simple-valued codes (0..s-1) */
++uIntf *d; /* list of base values for non-simple codes */
++uIntf *e; /* list of extra bits for non-simple codes */
++inflate_huft * FAR *t; /* result: starting table */
++uIntf *m; /* maximum lookup bits, returns actual */
++z_stream *zs; /* for zalloc function */
++/* Given a list of code lengths and a maximum table size, make a set of
++ tables to decode that set of codes. Return Z_OK on success, Z_BUF_ERROR
++ if the given code set is incomplete (the tables are still built in this
++ case), Z_DATA_ERROR if the input is invalid (all zero length codes or an
++ over-subscribed set of lengths), or Z_MEM_ERROR if not enough memory. */
++{
++
++ uInt a; /* counter for codes of length k */
++ uInt c[BMAX+1]; /* bit length count table */
++ uInt f; /* i repeats in table every f entries */
++ int g; /* maximum code length */
++ int h; /* table level */
++ register uInt i; /* counter, current code */
++ register uInt j; /* counter */
++ register int k; /* number of bits in current code */
++ int l; /* bits per table (returned in m) */
++ register uIntf *p; /* pointer into c[], b[], or v[] */
++ inflate_huft *q; /* points to current table */
++ struct inflate_huft_s r; /* table entry for structure assignment */
++ inflate_huft *u[BMAX]; /* table stack */
++ uInt v[N_MAX]; /* values in order of bit length */
++ register int w; /* bits before this table == (l * h) */
++ uInt x[BMAX+1]; /* bit offsets, then code stack */
++ uIntf *xp; /* pointer into x */
++ int y; /* number of dummy codes added */
++ uInt z; /* number of entries in current table */
++
++
++ /* Generate counts for each bit length */
++ p = c;
++#define C0 *p++ = 0;
++#define C2 C0 C0 C0 C0
++#define C4 C2 C2 C2 C2
++ C4 /* clear c[]--assume BMAX+1 is 16 */
++ p = b; i = n;
++ do {
++ c[*p++]++; /* assume all entries &lt;= BMAX */
++ } while (--i);
++ if (c[0] == n) /* null input--all zero length codes */
++ {
++ *t = (inflate_huft *)Z_NULL;
++ *m = 0;
++ return Z_OK;
++ }
++
++
++ /* Find minimum and maximum length, bound *m by those */
++ l = *m;
++ for (j = 1; j &lt;= BMAX; j++)
++ if (c[j])
++ break;
++ k = j; /* minimum code length */
++ if ((uInt)l &lt; j)
++ l = j;
++ for (i = BMAX; i; i--)
++ if (c[i])
++ break;
++ g = i; /* maximum code length */
++ if ((uInt)l &gt; i)
++ l = i;
++ *m = l;
++
++
++ /* Adjust last length count to fill out codes, if needed */
++ for (y = 1 &lt;&lt; j; j &lt; i; j++, y &lt;&lt;= 1)
++ if ((y -= c[j]) &lt; 0)
++ return Z_DATA_ERROR;
++ if ((y -= c[i]) &lt; 0)
++ return Z_DATA_ERROR;
++ c[i] += y;
++
++
++ /* Generate starting offsets into the value table for each length */
++ x[1] = j = 0;
++ p = c + 1; xp = x + 2;
++ while (--i) { /* note that i == g from above */
++ *xp++ = (j += *p++);
++ }
++
++
++ /* Make a table of values in order of bit lengths */
++ p = b; i = 0;
++ do {
++ if ((j = *p++) != 0)
++ v[x[j]++] = i;
++ } while (++i &lt; n);
++
++
++ /* Generate the Huffman codes and for each, make the table entries */
++ x[0] = i = 0; /* first Huffman code is zero */
++ p = v; /* grab values in bit order */
++ h = -1; /* no tables yet--level -1 */
++ w = -l; /* bits decoded == (l * h) */
++ u[0] = (inflate_huft *)Z_NULL; /* just to keep compilers happy */
++ q = (inflate_huft *)Z_NULL; /* ditto */
++ z = 0; /* ditto */
++
++ /* go through the bit lengths (k already is bits in shortest code) */
++ for (; k &lt;= g; k++)
++ {
++ a = c[k];
++ while (a--)
++ {
++ /* here i is the Huffman code of length k bits for value *p */
++ /* make tables up to required level */
++ while (k &gt; w + l)
++ {
++ h++;
++ w += l; /* previous table always l bits */
++
++ /* compute minimum size table less than or equal to l bits */
++ z = (z = g - w) &gt; (uInt)l ? l : z; /* table size upper limit */
++ if ((f = 1 &lt;&lt; (j = k - w)) &gt; a + 1) /* try a k-w bit table */
++ { /* too few codes for k-w bit table */
++ f -= a + 1; /* deduct codes from patterns left */
++ xp = c + k;
++ if (j &lt; z)
++ while (++j &lt; z) /* try smaller tables up to z bits */
++ {
++ if ((f &lt;&lt;= 1) &lt;= *++xp)
++ break; /* enough codes to use up j bits */
++ f -= *xp; /* else deduct codes from patterns */
++ }
++ }
++ z = 1 &lt;&lt; j; /* table entries for j-bit table */
++
++ /* allocate and link in new table */
++ if ((q = (inflate_huft *)ZALLOC
++ (zs,z + 1,sizeof(inflate_huft))) == Z_NULL)
++ {
++ if (h)
++ inflate_trees_free(u[0], zs);
++ return Z_MEM_ERROR; /* not enough memory */
++ }
++ q-&gt;word.Nalloc = z + 1;
++#ifdef DEBUG_ZLIB
++ inflate_hufts += z + 1;
++#endif
++ *t = q + 1; /* link to list for huft_free() */
++ *(t = &amp;(q-&gt;next)) = Z_NULL;
++ u[h] = ++q; /* table starts after link */
++
++ /* connect to last table, if there is one */
++ if (h)
++ {
++ x[h] = i; /* save pattern for backing up */
++ r.bits = (Byte)l; /* bits to dump before this table */
++ r.exop = (Byte)j; /* bits in this table */
++ r.next = q; /* pointer to this table */
++ j = i &gt;&gt; (w - l); /* (get around Turbo C bug) */
++ u[h-1][j] = r; /* connect to last table */
++ }
++ }
++
++ /* set up table entry in r */
++ r.bits = (Byte)(k - w);
++ if (p &gt;= v + n)
++ r.exop = 128 + 64; /* out of values--invalid code */
++ else if (*p &lt; s)
++ {
++ r.exop = (Byte)(*p &lt; 256 ? 0 : 32 + 64); /* 256 is end-of-block */
++ r.base = *p++; /* simple code is just the value */
++ }
++ else
++ {
++ r.exop = (Byte)e[*p - s] + 16 + 64; /* non-simple--look up in lists */
++ r.base = d[*p++ - s];
++ }
++
++ /* fill code-like entries with r */
++ f = 1 &lt;&lt; (k - w);
++ for (j = i &gt;&gt; w; j &lt; z; j += f)
++ q[j] = r;
++
++ /* backwards increment the k-bit code i */
++ for (j = 1 &lt;&lt; (k - 1); i &amp; j; j &gt;&gt;= 1)
++ i ^= j;
++ i ^= j;
++
++ /* backup over finished tables */
++ while ((i &amp; ((1 &lt;&lt; w) - 1)) != x[h])
++ {
++ h--; /* don't need to update q */
++ w -= l;
++ }
++ }
++ }
++
++
++ /* Return Z_BUF_ERROR if we were given an incomplete table */
++ return y != 0 &amp;&amp; g != 1 ? Z_BUF_ERROR : Z_OK;
++}
++
++
++local int inflate_trees_bits(c, bb, tb, z)
++uIntf *c; /* 19 code lengths */
++uIntf *bb; /* bits tree desired/actual depth */
++inflate_huft * FAR *tb; /* bits tree result */
++z_stream *z; /* for zfree function */
++{
++ int r;
++
++ r = huft_build(c, 19, 19, (uIntf*)Z_NULL, (uIntf*)Z_NULL, tb, bb, z);
++ if (r == Z_DATA_ERROR)
++ z-&gt;msg = &quot;oversubscribed dynamic bit lengths tree&quot;;
++ else if (r == Z_BUF_ERROR)
++ {
++ inflate_trees_free(*tb, z);
++ z-&gt;msg = &quot;incomplete dynamic bit lengths tree&quot;;
++ r = Z_DATA_ERROR;
++ }
++ return r;
++}
++
++
++local int inflate_trees_dynamic(nl, nd, c, bl, bd, tl, td, z)
++uInt nl; /* number of literal/length codes */
++uInt nd; /* number of distance codes */
++uIntf *c; /* that many (total) code lengths */
++uIntf *bl; /* literal desired/actual bit depth */
++uIntf *bd; /* distance desired/actual bit depth */
++inflate_huft * FAR *tl; /* literal/length tree result */
++inflate_huft * FAR *td; /* distance tree result */
++z_stream *z; /* for zfree function */
++{
++ int r;
++
++ /* build literal/length tree */
++ if ((r = huft_build(c, nl, 257, cplens, cplext, tl, bl, z)) != Z_OK)
++ {
++ if (r == Z_DATA_ERROR)
++ z-&gt;msg = &quot;oversubscribed literal/length tree&quot;;
++ else if (r == Z_BUF_ERROR)
++ {
++ inflate_trees_free(*tl, z);
++ z-&gt;msg = &quot;incomplete literal/length tree&quot;;
++ r = Z_DATA_ERROR;
++ }
++ return r;
++ }
++
++ /* build distance tree */
++ if ((r = huft_build(c + nl, nd, 0, cpdist, cpdext, td, bd, z)) != Z_OK)
++ {
++ if (r == Z_DATA_ERROR)
++ z-&gt;msg = &quot;oversubscribed literal/length tree&quot;;
++ else if (r == Z_BUF_ERROR) {
++#ifdef PKZIP_BUG_WORKAROUND
++ r = Z_OK;
++ }
++#else
++ inflate_trees_free(*td, z);
++ z-&gt;msg = &quot;incomplete literal/length tree&quot;;
++ r = Z_DATA_ERROR;
++ }
++ inflate_trees_free(*tl, z);
++ return r;
++#endif
++ }
++
++ /* done */
++ return Z_OK;
++}
++
++
++/* build fixed tables only once--keep them here */
++local int fixed_lock = 0;
++local int fixed_built = 0;
++#define FIXEDH 530 /* number of hufts used by fixed tables */
++local uInt fixed_left = FIXEDH;
++local inflate_huft fixed_mem[FIXEDH];
++local uInt fixed_bl;
++local uInt fixed_bd;
++local inflate_huft *fixed_tl;
++local inflate_huft *fixed_td;
++
++
++local voidpf falloc(q, n, s)
++voidpf q; /* opaque pointer (not used) */
++uInt n; /* number of items */
++uInt s; /* size of item */
++{
++ Assert(s == sizeof(inflate_huft) &amp;&amp; n &lt;= fixed_left,
++ &quot;inflate_trees falloc overflow&quot;);
++ if (q) s++; /* to make some compilers happy */
++ fixed_left -= n;
++ return (voidpf)(fixed_mem + fixed_left);
++}
++
++
++local void ffree(q, p, n)
++voidpf q;
++voidpf p;
++uInt n;
++{
++ Assert(0, &quot;inflate_trees ffree called!&quot;);
++ if (q) q = p; /* to make some compilers happy */
++}
++
++
++local int inflate_trees_fixed(bl, bd, tl, td)
++uIntf *bl; /* literal desired/actual bit depth */
++uIntf *bd; /* distance desired/actual bit depth */
++inflate_huft * FAR *tl; /* literal/length tree result */
++inflate_huft * FAR *td; /* distance tree result */
++{
++ /* build fixed tables if not built already--lock out other instances */
++ while (++fixed_lock &gt; 1)
++ fixed_lock--;
++ if (!fixed_built)
++ {
++ int k; /* temporary variable */
++ unsigned c[288]; /* length list for huft_build */
++ z_stream z; /* for falloc function */
++
++ /* set up fake z_stream for memory routines */
++ z.zalloc = falloc;
++ z.zfree = ffree;
++ z.opaque = Z_NULL;
++
++ /* literal table */
++ for (k = 0; k &lt; 144; k++)
++ c[k] = 8;
++ for (; k &lt; 256; k++)
++ c[k] = 9;
++ for (; k &lt; 280; k++)
++ c[k] = 7;
++ for (; k &lt; 288; k++)
++ c[k] = 8;
++ fixed_bl = 7;
++ huft_build(c, 288, 257, cplens, cplext, &amp;fixed_tl, &amp;fixed_bl, &amp;z);
++
++ /* distance table */
++ for (k = 0; k &lt; 30; k++)
++ c[k] = 5;
++ fixed_bd = 5;
++ huft_build(c, 30, 0, cpdist, cpdext, &amp;fixed_td, &amp;fixed_bd, &amp;z);
++
++ /* done */
++ fixed_built = 1;
++ }
++ fixed_lock--;
++ *bl = fixed_bl;
++ *bd = fixed_bd;
++ *tl = fixed_tl;
++ *td = fixed_td;
++ return Z_OK;
++}
++
++
++local int inflate_trees_free(t, z)
++inflate_huft *t; /* table to free */
++z_stream *z; /* for zfree function */
++/* Free the malloc'ed tables built by huft_build(), which makes a linked
++ list of the tables it made, with the links in a dummy first entry of
++ each table. */
++{
++ register inflate_huft *p, *q;
++
++ /* Go through linked list, freeing from the malloced (t[-1]) address. */
++ p = t;
++ while (p != Z_NULL)
++ {
++ q = (--p)-&gt;next;
++ ZFREE(z, p, p-&gt;word.Nalloc * sizeof(inflate_huft));
++ p = q;
++ }
++ return Z_OK;
++}
++
++/*+++++*/
++/* infcodes.c -- process literals and length/distance pairs
++ * Copyright (C) 1995 Mark Adler
++ * For conditions of distribution and use, see copyright notice in zlib.h
++ */
++
++/* simplify the use of the inflate_huft type with some defines */
++#define base more.Base
++#define next more.Next
++#define exop word.what.Exop
++#define bits word.what.Bits
++
++/* inflate codes private state */
++struct inflate_codes_state {
++
++ /* mode */
++ enum { /* waiting for &quot;i:&quot;=input, &quot;o:&quot;=output, &quot;x:&quot;=nothing */
++ START, /* x: set up for LEN */
++ LEN, /* i: get length/literal/eob next */
++ LENEXT, /* i: getting length extra (have base) */
++ DIST, /* i: get distance next */
++ DISTEXT, /* i: getting distance extra */
++ COPY, /* o: copying bytes in window, waiting for space */
++ LIT, /* o: got literal, waiting for output space */
++ WASH, /* o: got eob, possibly still output waiting */
++ END, /* x: got eob and all data flushed */
++ BADCODE} /* x: got error */
++ mode; /* current inflate_codes mode */
++
++ /* mode dependent information */
++ uInt len;
++ union {
++ struct {
++ inflate_huft *tree; /* pointer into tree */
++ uInt need; /* bits needed */
++ } code; /* if LEN or DIST, where in tree */
++ uInt lit; /* if LIT, literal */
++ struct {
++ uInt get; /* bits to get for extra */
++ uInt dist; /* distance back to copy from */
++ } copy; /* if EXT or COPY, where and how much */
++ } sub; /* submode */
++
++ /* mode independent information */
++ Byte lbits; /* ltree bits decoded per branch */
++ Byte dbits; /* dtree bits decoder per branch */
++ inflate_huft *ltree; /* literal/length/eob tree */
++ inflate_huft *dtree; /* distance tree */
++
++};
++
++
++local inflate_codes_statef *inflate_codes_new(bl, bd, tl, td, z)
++uInt bl, bd;
++inflate_huft *tl, *td;
++z_stream *z;
++{
++ inflate_codes_statef *c;
++
++ if ((c = (inflate_codes_statef *)
++ ZALLOC(z,1,sizeof(struct inflate_codes_state))) != Z_NULL)
++ {
++ c-&gt;mode = START;
++ c-&gt;lbits = (Byte)bl;
++ c-&gt;dbits = (Byte)bd;
++ c-&gt;ltree = tl;
++ c-&gt;dtree = td;
++ Tracev((stderr, &quot;inflate: codes new\n&quot;));
++ }
++ return c;
++}
++
++
++local int inflate_codes(s, z, r)
++inflate_blocks_statef *s;
++z_stream *z;
++int r;
++{
++ uInt j; /* temporary storage */
++ inflate_huft *t; /* temporary pointer */
++ uInt e; /* extra bits or operation */
++ uLong b; /* bit buffer */
++ uInt k; /* bits in bit buffer */
++ Bytef *p; /* input data pointer */
++ uInt n; /* bytes available there */
++ Bytef *q; /* output window write pointer */
++ uInt m; /* bytes to end of window or read pointer */
++ Bytef *f; /* pointer to copy strings from */
++ inflate_codes_statef *c = s-&gt;sub.decode.codes; /* codes state */
++
++ /* copy input/output information to locals (UPDATE macro restores) */
++ LOAD
++
++ /* process input and output based on current state */
++ while (1) switch (c-&gt;mode)
++ { /* waiting for &quot;i:&quot;=input, &quot;o:&quot;=output, &quot;x:&quot;=nothing */
++ case START: /* x: set up for LEN */
++#ifndef SLOW
++ if (m &gt;= 258 &amp;&amp; n &gt;= 10)
++ {
++ UPDATE
++ r = inflate_fast(c-&gt;lbits, c-&gt;dbits, c-&gt;ltree, c-&gt;dtree, s, z);
++ LOAD
++ if (r != Z_OK)
++ {
++ c-&gt;mode = r == Z_STREAM_END ? WASH : BADCODE;
++ break;
++ }
++ }
++#endif /* !SLOW */
++ c-&gt;sub.code.need = c-&gt;lbits;
++ c-&gt;sub.code.tree = c-&gt;ltree;
++ c-&gt;mode = LEN;
++ case LEN: /* i: get length/literal/eob next */
++ j = c-&gt;sub.code.need;
++ NEEDBITS(j)
++ t = c-&gt;sub.code.tree + ((uInt)b &amp; inflate_mask[j]);
++ DUMPBITS(t-&gt;bits)
++ e = (uInt)(t-&gt;exop);
++ if (e == 0) /* literal */
++ {
++ c-&gt;sub.lit = t-&gt;base;
++ Tracevv((stderr, t-&gt;base &gt;= 0x20 &amp;&amp; t-&gt;base &lt; 0x7f ?
++ &quot;inflate: literal '%c'\n&quot; :
++ &quot;inflate: literal 0x%02x\n&quot;, t-&gt;base));
++ c-&gt;mode = LIT;
++ break;
++ }
++ if (e &amp; 16) /* length */
++ {
++ c-&gt;sub.copy.get = e &amp; 15;
++ c-&gt;len = t-&gt;base;
++ c-&gt;mode = LENEXT;
++ break;
++ }
++ if ((e &amp; 64) == 0) /* next table */
++ {
++ c-&gt;sub.code.need = e;
++ c-&gt;sub.code.tree = t-&gt;next;
++ break;
++ }
++ if (e &amp; 32) /* end of block */
++ {
++ Tracevv((stderr, &quot;inflate: end of block\n&quot;));
++ c-&gt;mode = WASH;
++ break;
++ }
++ c-&gt;mode = BADCODE; /* invalid code */
++ z-&gt;msg = &quot;invalid literal/length code&quot;;
++ r = Z_DATA_ERROR;
++ LEAVE
++ case LENEXT: /* i: getting length extra (have base) */
++ j = c-&gt;sub.copy.get;
++ NEEDBITS(j)
++ c-&gt;len += (uInt)b &amp; inflate_mask[j];
++ DUMPBITS(j)
++ c-&gt;sub.code.need = c-&gt;dbits;
++ c-&gt;sub.code.tree = c-&gt;dtree;
++ Tracevv((stderr, &quot;inflate: length %u\n&quot;, c-&gt;len));
++ c-&gt;mode = DIST;
++ case DIST: /* i: get distance next */
++ j = c-&gt;sub.code.need;
++ NEEDBITS(j)
++ t = c-&gt;sub.code.tree + ((uInt)b &amp; inflate_mask[j]);
++ DUMPBITS(t-&gt;bits)
++ e = (uInt)(t-&gt;exop);
++ if (e &amp; 16) /* distance */
++ {
++ c-&gt;sub.copy.get = e &amp; 15;
++ c-&gt;sub.copy.dist = t-&gt;base;
++ c-&gt;mode = DISTEXT;
++ break;
++ }
++ if ((e &amp; 64) == 0) /* next table */
++ {
++ c-&gt;sub.code.need = e;
++ c-&gt;sub.code.tree = t-&gt;next;
++ break;
++ }
++ c-&gt;mode = BADCODE; /* invalid code */
++ z-&gt;msg = &quot;invalid distance code&quot;;
++ r = Z_DATA_ERROR;
++ LEAVE
++ case DISTEXT: /* i: getting distance extra */
++ j = c-&gt;sub.copy.get;
++ NEEDBITS(j)
++ c-&gt;sub.copy.dist += (uInt)b &amp; inflate_mask[j];
++ DUMPBITS(j)
++ Tracevv((stderr, &quot;inflate: distance %u\n&quot;, c-&gt;sub.copy.dist));
++ c-&gt;mode = COPY;
++ case COPY: /* o: copying bytes in window, waiting for space */
++#ifndef __TURBOC__ /* Turbo C bug for following expression */
++ f = (uInt)(q - s-&gt;window) &lt; c-&gt;sub.copy.dist ?
++ s-&gt;end - (c-&gt;sub.copy.dist - (q - s-&gt;window)) :
++ q - c-&gt;sub.copy.dist;
++#else
++ f = q - c-&gt;sub.copy.dist;
++ if ((uInt)(q - s-&gt;window) &lt; c-&gt;sub.copy.dist)
++ f = s-&gt;end - (c-&gt;sub.copy.dist - (q - s-&gt;window));
++#endif
++ while (c-&gt;len)
++ {
++ NEEDOUT
++ OUTBYTE(*f++)
++ if (f == s-&gt;end)
++ f = s-&gt;window;
++ c-&gt;len--;
++ }
++ c-&gt;mode = START;
++ break;
++ case LIT: /* o: got literal, waiting for output space */
++ NEEDOUT
++ OUTBYTE(c-&gt;sub.lit)
++ c-&gt;mode = START;
++ break;
++ case WASH: /* o: got eob, possibly more output */
++ FLUSH
++ if (s-&gt;read != s-&gt;write)
++ LEAVE
++ c-&gt;mode = END;
++ case END:
++ r = Z_STREAM_END;
++ LEAVE
++ case BADCODE: /* x: got error */
++ r = Z_DATA_ERROR;
++ LEAVE
++ default:
++ r = Z_STREAM_ERROR;
++ LEAVE
++ }
++}
++
++
++local void inflate_codes_free(c, z)
++inflate_codes_statef *c;
++z_stream *z;
++{
++ ZFREE(z, c, sizeof(struct inflate_codes_state));
++ Tracev((stderr, &quot;inflate: codes free\n&quot;));
++}
++
++/*+++++*/
++/* inflate_util.c -- data and routines common to blocks and codes
++ * Copyright (C) 1995 Mark Adler
++ * For conditions of distribution and use, see copyright notice in zlib.h
++ */
++
++/* copy as much as possible from the sliding window to the output area */
++local int inflate_flush(s, z, r)
++inflate_blocks_statef *s;
++z_stream *z;
++int r;
++{
++ uInt n;
++ Bytef *p, *q;
++
++ /* local copies of source and destination pointers */
++ p = z-&gt;next_out;
++ q = s-&gt;read;
++
++ /* compute number of bytes to copy as far as end of window */
++ n = (uInt)((q &lt;= s-&gt;write ? s-&gt;write : s-&gt;end) - q);
++ if (n &gt; z-&gt;avail_out) n = z-&gt;avail_out;
++ if (n &amp;&amp; r == Z_BUF_ERROR) r = Z_OK;
++
++ /* update counters */
++ z-&gt;avail_out -= n;
++ z-&gt;total_out += n;
++
++ /* update check information */
++ if (s-&gt;checkfn != Z_NULL)
++ s-&gt;check = (*s-&gt;checkfn)(s-&gt;check, q, n);
++
++ /* copy as far as end of window */
++ if (p != NULL) {
++ zmemcpy(p, q, n);
++ p += n;
++ }
++ q += n;
++
++ /* see if more to copy at beginning of window */
++ if (q == s-&gt;end)
++ {
++ /* wrap pointers */
++ q = s-&gt;window;
++ if (s-&gt;write == s-&gt;end)
++ s-&gt;write = s-&gt;window;
++
++ /* compute bytes to copy */
++ n = (uInt)(s-&gt;write - q);
++ if (n &gt; z-&gt;avail_out) n = z-&gt;avail_out;
++ if (n &amp;&amp; r == Z_BUF_ERROR) r = Z_OK;
++
++ /* update counters */
++ z-&gt;avail_out -= n;
++ z-&gt;total_out += n;
++
++ /* update check information */
++ if (s-&gt;checkfn != Z_NULL)
++ s-&gt;check = (*s-&gt;checkfn)(s-&gt;check, q, n);
++
++ /* copy */
++ if (p != NULL) {
++ zmemcpy(p, q, n);
++ p += n;
++ }
++ q += n;
++ }
++
++ /* update pointers */
++ z-&gt;next_out = p;
++ s-&gt;read = q;
++
++ /* done */
++ return r;
++}
++
++
++/*+++++*/
++/* inffast.c -- process literals and length/distance pairs fast
++ * Copyright (C) 1995 Mark Adler
++ * For conditions of distribution and use, see copyright notice in zlib.h
++ */
++
++/* simplify the use of the inflate_huft type with some defines */
++#define base more.Base
++#define next more.Next
++#define exop word.what.Exop
++#define bits word.what.Bits
++
++/* macros for bit input with no checking and for returning unused bytes */
++#define GRABBITS(j) {while(k&lt;(j)){b|=((uLong)NEXTBYTE)&lt;&lt;k;k+=8;}}
++#define UNGRAB {n+=(c=k&gt;&gt;3);p-=c;k&amp;=7;}
++
++/* Called with number of bytes left to write in window at least 258
++ (the maximum string length) and number of input bytes available
++ at least ten. The ten bytes are six bytes for the longest length/
++ distance pair plus four bytes for overloading the bit buffer. */
++
++local int inflate_fast(bl, bd, tl, td, s, z)
++uInt bl, bd;
++inflate_huft *tl, *td;
++inflate_blocks_statef *s;
++z_stream *z;
++{
++ inflate_huft *t; /* temporary pointer */
++ uInt e; /* extra bits or operation */
++ uLong b; /* bit buffer */
++ uInt k; /* bits in bit buffer */
++ Bytef *p; /* input data pointer */
++ uInt n; /* bytes available there */
++ Bytef *q; /* output window write pointer */
++ uInt m; /* bytes to end of window or read pointer */
++ uInt ml; /* mask for literal/length tree */
++ uInt md; /* mask for distance tree */
++ uInt c; /* bytes to copy */
++ uInt d; /* distance back to copy from */
++ Bytef *r; /* copy source pointer */
++
++ /* load input, output, bit values */
++ LOAD
++
++ /* initialize masks */
++ ml = inflate_mask[bl];
++ md = inflate_mask[bd];
++
++ /* do until not enough input or output space for fast loop */
++ do { /* assume called with m &gt;= 258 &amp;&amp; n &gt;= 10 */
++ /* get literal/length code */
++ GRABBITS(20) /* max bits for literal/length code */
++ if ((e = (t = tl + ((uInt)b &amp; ml))-&gt;exop) == 0)
++ {
++ DUMPBITS(t-&gt;bits)
++ Tracevv((stderr, t-&gt;base &gt;= 0x20 &amp;&amp; t-&gt;base &lt; 0x7f ?
++ &quot;inflate: * literal '%c'\n&quot; :
++ &quot;inflate: * literal 0x%02x\n&quot;, t-&gt;base));
++ *q++ = (Byte)t-&gt;base;
++ m--;
++ continue;
++ }
++ do {
++ DUMPBITS(t-&gt;bits)
++ if (e &amp; 16)
++ {
++ /* get extra bits for length */
++ e &amp;= 15;
++ c = t-&gt;base + ((uInt)b &amp; inflate_mask[e]);
++ DUMPBITS(e)
++ Tracevv((stderr, &quot;inflate: * length %u\n&quot;, c));
++
++ /* decode distance base of block to copy */
++ GRABBITS(15); /* max bits for distance code */
++ e = (t = td + ((uInt)b &amp; md))-&gt;exop;
++ do {
++ DUMPBITS(t-&gt;bits)
++ if (e &amp; 16)
++ {
++ /* get extra bits to add to distance base */
++ e &amp;= 15;
++ GRABBITS(e) /* get extra bits (up to 13) */
++ d = t-&gt;base + ((uInt)b &amp; inflate_mask[e]);
++ DUMPBITS(e)
++ Tracevv((stderr, &quot;inflate: * distance %u\n&quot;, d));
++
++ /* do the copy */
++ m -= c;
++ if ((uInt)(q - s-&gt;window) &gt;= d) /* offset before dest */
++ { /* just copy */
++ r = q - d;
++ *q++ = *r++; c--; /* minimum count is three, */
++ *q++ = *r++; c--; /* so unroll loop a little */
++ }
++ else /* else offset after destination */
++ {
++ e = d - (q - s-&gt;window); /* bytes from offset to end */
++ r = s-&gt;end - e; /* pointer to offset */
++ if (c &gt; e) /* if source crosses, */
++ {
++ c -= e; /* copy to end of window */
++ do {
++ *q++ = *r++;
++ } while (--e);
++ r = s-&gt;window; /* copy rest from start of window */
++ }
++ }
++ do { /* copy all or what's left */
++ *q++ = *r++;
++ } while (--c);
++ break;
++ }
++ else if ((e &amp; 64) == 0)
++ e = (t = t-&gt;next + ((uInt)b &amp; inflate_mask[e]))-&gt;exop;
++ else
++ {
++ z-&gt;msg = &quot;invalid distance code&quot;;
++ UNGRAB
++ UPDATE
++ return Z_DATA_ERROR;
++ }
++ } while (1);
++ break;
++ }
++ if ((e &amp; 64) == 0)
++ {
++ if ((e = (t = t-&gt;next + ((uInt)b &amp; inflate_mask[e]))-&gt;exop) == 0)
++ {
++ DUMPBITS(t-&gt;bits)
++ Tracevv((stderr, t-&gt;base &gt;= 0x20 &amp;&amp; t-&gt;base &lt; 0x7f ?
++ &quot;inflate: * literal '%c'\n&quot; :
++ &quot;inflate: * literal 0x%02x\n&quot;, t-&gt;base));
++ *q++ = (Byte)t-&gt;base;
++ m--;
++ break;
++ }
++ }
++ else if (e &amp; 32)
++ {
++ Tracevv((stderr, &quot;inflate: * end of block\n&quot;));
++ UNGRAB
++ UPDATE
++ return Z_STREAM_END;
++ }
++ else
++ {
++ z-&gt;msg = &quot;invalid literal/length code&quot;;
++ UNGRAB
++ UPDATE
++ return Z_DATA_ERROR;
++ }
++ } while (1);
++ } while (m &gt;= 258 &amp;&amp; n &gt;= 10);
++
++ /* not enough input or output--restore pointers and return */
++ UNGRAB
++ UPDATE
++ return Z_OK;
++}
++
++
++/*+++++*/
++/* zutil.c -- target dependent utility functions for the compression library
++ * Copyright (C) 1995 Jean-loup Gailly.
++ * For conditions of distribution and use, see copyright notice in zlib.h
++ */
++
++/* From: zutil.c,v 1.8 1995/05/03 17:27:12 jloup Exp */
++
++char *zlib_version = ZLIB_VERSION;
++
++char *z_errmsg[] = {
++&quot;stream end&quot;, /* Z_STREAM_END 1 */
++&quot;&quot;, /* Z_OK 0 */
++&quot;file error&quot;, /* Z_ERRNO (-1) */
++&quot;stream error&quot;, /* Z_STREAM_ERROR (-2) */
++&quot;data error&quot;, /* Z_DATA_ERROR (-3) */
++&quot;insufficient memory&quot;, /* Z_MEM_ERROR (-4) */
++&quot;buffer error&quot;, /* Z_BUF_ERROR (-5) */
++&quot;&quot;};
++
++
++/*+++++*/
++/* adler32.c -- compute the Adler-32 checksum of a data stream
++ * Copyright (C) 1995 Mark Adler
++ * For conditions of distribution and use, see copyright notice in zlib.h
++ */
++
++/* From: adler32.c,v 1.6 1995/05/03 17:27:08 jloup Exp */
++
++#define BASE 65521L /* largest prime smaller than 65536 */
++#define NMAX 5552
++/* NMAX is the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) &lt;= 2^32-1 */
++
++#define DO1(buf) {s1 += *buf++; s2 += s1;}
++#define DO2(buf) DO1(buf); DO1(buf);
++#define DO4(buf) DO2(buf); DO2(buf);
++#define DO8(buf) DO4(buf); DO4(buf);
++#define DO16(buf) DO8(buf); DO8(buf);
++
++/* ========================================================================= */
++uLong adler32(adler, buf, len)
++ uLong adler;
++ Bytef *buf;
++ uInt len;
++{
++ unsigned long s1 = adler &amp; 0xffff;
++ unsigned long s2 = (adler &gt;&gt; 16) &amp; 0xffff;
++ int k;
++
++ if (buf == Z_NULL) return 1L;
++
++ while (len &gt; 0) {
++ k = len &lt; NMAX ? len : NMAX;
++ len -= k;
++ while (k &gt;= 16) {
++ DO16(buf);
++ k -= 16;
++ }
++ if (k != 0) do {
++ DO1(buf);
++ } while (--k);
++ s1 %= BASE;
++ s2 %= BASE;
++ }
++ return (s2 &lt;&lt; 16) | s1;
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/pppdump/zlib.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1ppppppdumpzlibh">Added: drakx/trunk/mdk-stage1/ppp/pppdump/zlib.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppdump/zlib.h (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppdump/zlib.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,631 @@
++/* $Id: zlib.h 195720 2001-06-11 11:44:34Z gc $ */
++
++/*
++ * This file is derived from zlib.h and zconf.h from the zlib-0.95
++ * distribution by Jean-loup Gailly and Mark Adler, with some additions
++ * by Paul Mackerras to aid in implementing Deflate compression and
++ * decompression for PPP packets.
++ */
++
++/* zlib.h -- interface of the 'zlib' general purpose compression library
++ version 0.95, Aug 16th, 1995.
++
++ Copyright (C) 1995 Jean-loup Gailly and Mark Adler
++
++ This software is provided 'as-is', without any express or implied
++ warranty. In no event will the authors be held liable for any damages
++ arising from the use of this software.
++
++ Permission is granted to anyone to use this software for any purpose,
++ including commercial applications, and to alter it and redistribute it
++ freely, subject to the following restrictions:
++
++ 1. The origin of this software must not be misrepresented; you must not
++ claim that you wrote the original software. If you use this software
++ in a product, an acknowledgment in the product documentation would be
++ appreciated but is not required.
++ 2. Altered source versions must be plainly marked as such, and must not be
++ misrepresented as being the original software.
++ 3. This notice may not be removed or altered from any source distribution.
++
++ Jean-loup Gailly Mark Adler
++ gzip@prep.ai.mit.edu madler@alumni.caltech.edu
++ */
++
++#ifndef _ZLIB_H
++#define _ZLIB_H
++
++/* #include &quot;zconf.h&quot; */ /* included directly here */
++
++/* zconf.h -- configuration of the zlib compression library
++ * Copyright (C) 1995 Jean-loup Gailly.
++ * For conditions of distribution and use, see copyright notice in zlib.h
++ */
++
++/* From: zconf.h,v 1.12 1995/05/03 17:27:12 jloup Exp */
++
++/*
++ The library does not install any signal handler. It is recommended to
++ add at least a handler for SIGSEGV when decompressing; the library checks
++ the consistency of the input data whenever possible but may go nuts
++ for some forms of corrupted input.
++ */
++
++/*
++ * Compile with -DMAXSEG_64K if the alloc function cannot allocate more
++ * than 64k bytes at a time (needed on systems with 16-bit int).
++ * Compile with -DUNALIGNED_OK if it is OK to access shorts or ints
++ * at addresses which are not a multiple of their size.
++ * Under DOS, -DFAR=far or -DFAR=__far may be needed.
++ */
++
++#ifndef STDC
++# if defined(MSDOS) || defined(__STDC__) || defined(__cplusplus)
++# define STDC
++# endif
++#endif
++
++#ifdef __MWERKS__ /* Metrowerks CodeWarrior declares fileno() in unix.h */
++# include &lt;unix.h&gt;
++#endif
++
++/* Maximum value for memLevel in deflateInit2 */
++#ifndef MAX_MEM_LEVEL
++# ifdef MAXSEG_64K
++# define MAX_MEM_LEVEL 8
++# else
++# define MAX_MEM_LEVEL 9
++# endif
++#endif
++
++#ifndef FAR
++# define FAR
++#endif
++
++/* Maximum value for windowBits in deflateInit2 and inflateInit2 */
++#ifndef MAX_WBITS
++# define MAX_WBITS 15 /* 32K LZ77 window */
++#endif
++
++/* The memory requirements for deflate are (in bytes):
++ 1 &lt;&lt; (windowBits+2) + 1 &lt;&lt; (memLevel+9)
++ that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values)
++ plus a few kilobytes for small objects. For example, if you want to reduce
++ the default memory requirements from 256K to 128K, compile with
++ make CFLAGS=&quot;-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7&quot;
++ Of course this will generally degrade compression (there's no free lunch).
++
++ The memory requirements for inflate are (in bytes) 1 &lt;&lt; windowBits
++ that is, 32K for windowBits=15 (default value) plus a few kilobytes
++ for small objects.
++*/
++
++ /* Type declarations */
++
++#ifndef OF /* function prototypes */
++# ifdef STDC
++# define OF(args) args
++# else
++# define OF(args) ()
++# endif
++#endif
++
++typedef unsigned char Byte; /* 8 bits */
++typedef unsigned int uInt; /* 16 bits or more */
++typedef unsigned long uLong; /* 32 bits or more */
++
++typedef Byte FAR Bytef;
++typedef char FAR charf;
++typedef int FAR intf;
++typedef uInt FAR uIntf;
++typedef uLong FAR uLongf;
++
++#ifdef STDC
++ typedef void FAR *voidpf;
++ typedef void *voidp;
++#else
++ typedef Byte FAR *voidpf;
++ typedef Byte *voidp;
++#endif
++
++/* end of original zconf.h */
++
++#define ZLIB_VERSION &quot;0.95P&quot;
++
++/*
++ The 'zlib' compression library provides in-memory compression and
++ decompression functions, including integrity checks of the uncompressed
++ data. This version of the library supports only one compression method
++ (deflation) but other algorithms may be added later and will have the same
++ stream interface.
++
++ For compression the application must provide the output buffer and
++ may optionally provide the input buffer for optimization. For decompression,
++ the application must provide the input buffer and may optionally provide
++ the output buffer for optimization.
++
++ Compression can be done in a single step if the buffers are large
++ enough (for example if an input file is mmap'ed), or can be done by
++ repeated calls of the compression function. In the latter case, the
++ application must provide more input and/or consume the output
++ (providing more output space) before each call.
++*/
++
++typedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size));
++typedef void (*free_func) OF((voidpf opaque, voidpf address, uInt nbytes));
++
++struct internal_state;
++
++typedef struct z_stream_s {
++ Bytef *next_in; /* next input byte */
++ uInt avail_in; /* number of bytes available at next_in */
++ uLong total_in; /* total nb of input bytes read so far */
++
++ Bytef *next_out; /* next output byte should be put there */
++ uInt avail_out; /* remaining free space at next_out */
++ uLong total_out; /* total nb of bytes output so far */
++
++ char *msg; /* last error message, NULL if no error */
++ struct internal_state FAR *state; /* not visible by applications */
++
++ alloc_func zalloc; /* used to allocate the internal state */
++ free_func zfree; /* used to free the internal state */
++ voidp opaque; /* private data object passed to zalloc and zfree */
++
++ Byte data_type; /* best guess about the data type: ascii or binary */
++
++} z_stream;
++
++/*
++ The application must update next_in and avail_in when avail_in has
++ dropped to zero. It must update next_out and avail_out when avail_out
++ has dropped to zero. The application must initialize zalloc, zfree and
++ opaque before calling the init function. All other fields are set by the
++ compression library and must not be updated by the application.
++
++ The opaque value provided by the application will be passed as the first
++ parameter for calls of zalloc and zfree. This can be useful for custom
++ memory management. The compression library attaches no meaning to the
++ opaque value.
++
++ zalloc must return Z_NULL if there is not enough memory for the object.
++ On 16-bit systems, the functions zalloc and zfree must be able to allocate
++ exactly 65536 bytes, but will not be required to allocate more than this
++ if the symbol MAXSEG_64K is defined (see zconf.h). WARNING: On MSDOS,
++ pointers returned by zalloc for objects of exactly 65536 bytes *must*
++ have their offset normalized to zero. The default allocation function
++ provided by this library ensures this (see zutil.c). To reduce memory
++ requirements and avoid any allocation of 64K objects, at the expense of
++ compression ratio, compile the library with -DMAX_WBITS=14 (see zconf.h).
++
++ The fields total_in and total_out can be used for statistics or
++ progress reports. After compression, total_in holds the total size of
++ the uncompressed data and may be saved for use in the decompressor
++ (particularly if the decompressor wants to decompress everything in
++ a single step).
++*/
++
++ /* constants */
++
++#define Z_NO_FLUSH 0
++#define Z_PARTIAL_FLUSH 1
++#define Z_FULL_FLUSH 2
++#define Z_SYNC_FLUSH 3 /* experimental: partial_flush + byte align */
++#define Z_FINISH 4
++#define Z_PACKET_FLUSH 5
++/* See deflate() below for the usage of these constants */
++
++#define Z_OK 0
++#define Z_STREAM_END 1
++#define Z_ERRNO (-1)
++#define Z_STREAM_ERROR (-2)
++#define Z_DATA_ERROR (-3)
++#define Z_MEM_ERROR (-4)
++#define Z_BUF_ERROR (-5)
++/* error codes for the compression/decompression functions */
++
++#define Z_BEST_SPEED 1
++#define Z_BEST_COMPRESSION 9
++#define Z_DEFAULT_COMPRESSION (-1)
++/* compression levels */
++
++#define Z_FILTERED 1
++#define Z_HUFFMAN_ONLY 2
++#define Z_DEFAULT_STRATEGY 0
++
++#define Z_BINARY 0
++#define Z_ASCII 1
++#define Z_UNKNOWN 2
++/* Used to set the data_type field */
++
++#define Z_NULL 0 /* for initializing zalloc, zfree, opaque */
++
++extern char *zlib_version;
++/* The application can compare zlib_version and ZLIB_VERSION for consistency.
++ If the first character differs, the library code actually used is
++ not compatible with the zlib.h header file used by the application.
++ */
++
++ /* basic functions */
++
++extern int deflateInit OF((z_stream *strm, int level));
++/*
++ Initializes the internal stream state for compression. The fields
++ zalloc, zfree and opaque must be initialized before by the caller.
++ If zalloc and zfree are set to Z_NULL, deflateInit updates them to
++ use default allocation functions.
++
++ The compression level must be Z_DEFAULT_COMPRESSION, or between 1 and 9:
++ 1 gives best speed, 9 gives best compression. Z_DEFAULT_COMPRESSION requests
++ a default compromise between speed and compression (currently equivalent
++ to level 6).
++
++ deflateInit returns Z_OK if success, Z_MEM_ERROR if there was not
++ enough memory, Z_STREAM_ERROR if level is not a valid compression level.
++ msg is set to null if there is no error message. deflateInit does not
++ perform any compression: this will be done by deflate().
++*/
++
++
++extern int deflate OF((z_stream *strm, int flush));
++/*
++ Performs one or both of the following actions:
++
++ - Compress more input starting at next_in and update next_in and avail_in
++ accordingly. If not all input can be processed (because there is not
++ enough room in the output buffer), next_in and avail_in are updated and
++ processing will resume at this point for the next call of deflate().
++
++ - Provide more output starting at next_out and update next_out and avail_out
++ accordingly. This action is forced if the parameter flush is non zero.
++ Forcing flush frequently degrades the compression ratio, so this parameter
++ should be set only when necessary (in interactive applications).
++ Some output may be provided even if flush is not set.
++
++ Before the call of deflate(), the application should ensure that at least
++ one of the actions is possible, by providing more input and/or consuming
++ more output, and updating avail_in or avail_out accordingly; avail_out
++ should never be zero before the call. The application can consume the
++ compressed output when it wants, for example when the output buffer is full
++ (avail_out == 0), or after each call of deflate().
++
++ If the parameter flush is set to Z_PARTIAL_FLUSH, the current compression
++ block is terminated and flushed to the output buffer so that the
++ decompressor can get all input data available so far. For method 9, a future
++ variant on method 8, the current block will be flushed but not terminated.
++ If flush is set to Z_FULL_FLUSH, the compression block is terminated, a
++ special marker is output and the compression dictionary is discarded; this
++ is useful to allow the decompressor to synchronize if one compressed block
++ has been damaged (see inflateSync below). Flushing degrades compression and
++ so should be used only when necessary. Using Z_FULL_FLUSH too often can
++ seriously degrade the compression. If deflate returns with avail_out == 0,
++ this function must be called again with the same value of the flush
++ parameter and more output space (updated avail_out), until the flush is
++ complete (deflate returns with non-zero avail_out).
++
++ If the parameter flush is set to Z_PACKET_FLUSH, the compression
++ block is terminated, and a zero-length stored block is output,
++ omitting the length bytes (the effect of this is that the 3-bit type
++ code 000 for a stored block is output, and the output is then
++ byte-aligned). This is designed for use at the end of a PPP packet.
++ In addition, if the current compression block contains all the data
++ since the last Z_PACKET_FLUSH, it is never output as a stored block.
++ If the current compression block output as a static or dynamic block
++ would not be at least `minCompression' bytes smaller than the
++ original data, then nothing is output for that block. (The type
++ code for the zero-length stored block is still output, resulting in
++ a single zero byte being output for the whole packet.)
++ `MinCompression' is a parameter to deflateInit2, or 0 if deflateInit
++ is used.
++
++ If the parameter flush is set to Z_FINISH, all pending input is processed,
++ all pending output is flushed and deflate returns with Z_STREAM_END if there
++ was enough output space; if deflate returns with Z_OK, this function must be
++ called again with Z_FINISH and more output space (updated avail_out) but no
++ more input data, until it returns with Z_STREAM_END or an error. After
++ deflate has returned Z_STREAM_END, the only possible operations on the
++ stream are deflateReset or deflateEnd.
++
++ Z_FINISH can be used immediately after deflateInit if all the compression
++ is to be done in a single step. In this case, avail_out must be at least
++ 0.1% larger than avail_in plus 12 bytes. If deflate does not return
++ Z_STREAM_END, then it must be called again as described above.
++
++ deflate() may update data_type if it can make a good guess about
++ the input data type (Z_ASCII or Z_BINARY). In doubt, the data is considered
++ binary. This field is only for information purposes and does not affect
++ the compression algorithm in any manner.
++
++ deflate() returns Z_OK if some progress has been made (more input
++ processed or more output produced), Z_STREAM_END if all input has been
++ consumed and all output has been produced (only when flush is set to
++ Z_FINISH), Z_STREAM_ERROR if the stream state was inconsistent (for example
++ if next_in or next_out was NULL), Z_BUF_ERROR if no progress is possible.
++*/
++
++
++extern int deflateEnd OF((z_stream *strm));
++/*
++ All dynamically allocated data structures for this stream are freed.
++ This function discards any unprocessed input and does not flush any
++ pending output.
++
++ deflateEnd returns Z_OK if success, Z_STREAM_ERROR if the
++ stream state was inconsistent. In the error case, msg may be set
++ but then points to a static string (which must not be deallocated).
++*/
++
++
++extern int inflateInit OF((z_stream *strm));
++/*
++ Initializes the internal stream state for decompression. The fields
++ zalloc and zfree must be initialized before by the caller. If zalloc and
++ zfree are set to Z_NULL, inflateInit updates them to use default allocation
++ functions.
++
++ inflateInit returns Z_OK if success, Z_MEM_ERROR if there was not
++ enough memory. msg is set to null if there is no error message.
++ inflateInit does not perform any decompression: this will be done by
++ inflate().
++*/
++
++
++extern int inflate OF((z_stream *strm, int flush));
++/*
++ Performs one or both of the following actions:
++
++ - Decompress more input starting at next_in and update next_in and avail_in
++ accordingly. If not all input can be processed (because there is not
++ enough room in the output buffer), next_in is updated and processing
++ will resume at this point for the next call of inflate().
++
++ - Provide more output starting at next_out and update next_out and avail_out
++ accordingly. inflate() always provides as much output as possible
++ (until there is no more input data or no more space in the output buffer).
++
++ Before the call of inflate(), the application should ensure that at least
++ one of the actions is possible, by providing more input and/or consuming
++ more output, and updating the next_* and avail_* values accordingly.
++ The application can consume the uncompressed output when it wants, for
++ example when the output buffer is full (avail_out == 0), or after each
++ call of inflate().
++
++ If the parameter flush is set to Z_PARTIAL_FLUSH or Z_PACKET_FLUSH,
++ inflate flushes as much output as possible to the output buffer. The
++ flushing behavior of inflate is not specified for values of the flush
++ parameter other than Z_PARTIAL_FLUSH, Z_PACKET_FLUSH or Z_FINISH, but the
++ current implementation actually flushes as much output as possible
++ anyway. For Z_PACKET_FLUSH, inflate checks that once all the input data
++ has been consumed, it is expecting to see the length field of a stored
++ block; if not, it returns Z_DATA_ERROR.
++
++ inflate() should normally be called until it returns Z_STREAM_END or an
++ error. However if all decompression is to be performed in a single step
++ (a single call of inflate), the parameter flush should be set to
++ Z_FINISH. In this case all pending input is processed and all pending
++ output is flushed; avail_out must be large enough to hold all the
++ uncompressed data. (The size of the uncompressed data may have been saved
++ by the compressor for this purpose.) The next operation on this stream must
++ be inflateEnd to deallocate the decompression state. The use of Z_FINISH
++ is never required, but can be used to inform inflate that a faster routine
++ may be used for the single inflate() call.
++
++ inflate() returns Z_OK if some progress has been made (more input
++ processed or more output produced), Z_STREAM_END if the end of the
++ compressed data has been reached and all uncompressed output has been
++ produced, Z_DATA_ERROR if the input data was corrupted, Z_STREAM_ERROR if
++ the stream structure was inconsistent (for example if next_in or next_out
++ was NULL), Z_MEM_ERROR if there was not enough memory, Z_BUF_ERROR if no
++ progress is possible or if there was not enough room in the output buffer
++ when Z_FINISH is used. In the Z_DATA_ERROR case, the application may then
++ call inflateSync to look for a good compression block. */
++
++
++extern int inflateEnd OF((z_stream *strm));
++/*
++ All dynamically allocated data structures for this stream are freed.
++ This function discards any unprocessed input and does not flush any
++ pending output.
++
++ inflateEnd returns Z_OK if success, Z_STREAM_ERROR if the stream state
++ was inconsistent. In the error case, msg may be set but then points to a
++ static string (which must not be deallocated).
++*/
++
++ /* advanced functions */
++
++/*
++ The following functions are needed only in some special applications.
++*/
++
++extern int deflateInit2 OF((z_stream *strm,
++ int level,
++ int method,
++ int windowBits,
++ int memLevel,
++ int strategy,
++ int minCompression));
++/*
++ This is another version of deflateInit with more compression options. The
++ fields next_in, zalloc and zfree must be initialized before by the caller.
++
++ The method parameter is the compression method. It must be 8 in this
++ version of the library. (Method 9 will allow a 64K history buffer and
++ partial block flushes.)
++
++ The windowBits parameter is the base two logarithm of the window size
++ (the size of the history buffer). It should be in the range 8..15 for this
++ version of the library (the value 16 will be allowed for method 9). Larger
++ values of this parameter result in better compression at the expense of
++ memory usage. The default value is 15 if deflateInit is used instead.
++
++ The memLevel parameter specifies how much memory should be allocated
++ for the internal compression state. memLevel=1 uses minimum memory but
++ is slow and reduces compression ratio; memLevel=9 uses maximum memory
++ for optimal speed. The default value is 8. See zconf.h for total memory
++ usage as a function of windowBits and memLevel.
++
++ The strategy parameter is used to tune the compression algorithm. Use
++ the value Z_DEFAULT_STRATEGY for normal data, Z_FILTERED for data
++ produced by a filter (or predictor), or Z_HUFFMAN_ONLY to force Huffman
++ encoding only (no string match). Filtered data consists mostly of small
++ values with a somewhat random distribution. In this case, the
++ compression algorithm is tuned to compress them better. The strategy
++ parameter only affects the compression ratio but not the correctness of
++ the compressed output even if it is not set appropriately.
++
++ The minCompression parameter specifies the minimum reduction in size
++ required for a compressed block to be output when Z_PACKET_FLUSH is
++ used (see the description of deflate above).
++
++ If next_in is not null, the library will use this buffer to hold also
++ some history information; the buffer must either hold the entire input
++ data, or have at least 1&lt;&lt;(windowBits+1) bytes and be writable. If next_in
++ is null, the library will allocate its own history buffer (and leave next_in
++ null). next_out need not be provided here but must be provided by the
++ application for the next call of deflate().
++
++ If the history buffer is provided by the application, next_in must
++ must never be changed by the application since the compressor maintains
++ information inside this buffer from call to call; the application
++ must provide more input only by increasing avail_in. next_in is always
++ reset by the library in this case.
++
++ deflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was
++ not enough memory, Z_STREAM_ERROR if a parameter is invalid (such as
++ an invalid method). msg is set to null if there is no error message.
++ deflateInit2 does not perform any compression: this will be done by
++ deflate().
++*/
++
++extern int deflateCopy OF((z_stream *dest,
++ z_stream *source));
++/*
++ Sets the destination stream as a complete copy of the source stream. If
++ the source stream is using an application-supplied history buffer, a new
++ buffer is allocated for the destination stream. The compressed output
++ buffer is always application-supplied. It's the responsibility of the
++ application to provide the correct values of next_out and avail_out for the
++ next call of deflate.
++
++ This function is useful when several compression strategies will be
++ tried, for example when there are several ways of pre-processing the input
++ data with a filter. The streams that will be discarded should then be freed
++ by calling deflateEnd. Note that deflateCopy duplicates the internal
++ compression state which can be quite large, so this strategy is slow and
++ can consume lots of memory.
++
++ deflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not
++ enough memory, Z_STREAM_ERROR if the source stream state was inconsistent
++ (such as zalloc being NULL). msg is left unchanged in both source and
++ destination.
++*/
++
++extern int deflateReset OF((z_stream *strm));
++/*
++ This function is equivalent to deflateEnd followed by deflateInit,
++ but does not free and reallocate all the internal compression state.
++ The stream will keep the same compression level and any other attributes
++ that may have been set by deflateInit2.
++
++ deflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source
++ stream state was inconsistent (such as zalloc or state being NULL).
++*/
++
++extern int inflateInit2 OF((z_stream *strm,
++ int windowBits));
++/*
++ This is another version of inflateInit with more compression options. The
++ fields next_out, zalloc and zfree must be initialized before by the caller.
++
++ The windowBits parameter is the base two logarithm of the maximum window
++ size (the size of the history buffer). It should be in the range 8..15 for
++ this version of the library (the value 16 will be allowed soon). The
++ default value is 15 if inflateInit is used instead. If a compressed stream
++ with a larger window size is given as input, inflate() will return with
++ the error code Z_DATA_ERROR instead of trying to allocate a larger window.
++
++ If next_out is not null, the library will use this buffer for the history
++ buffer; the buffer must either be large enough to hold the entire output
++ data, or have at least 1&lt;&lt;windowBits bytes. If next_out is null, the
++ library will allocate its own buffer (and leave next_out null). next_in
++ need not be provided here but must be provided by the application for the
++ next call of inflate().
++
++ If the history buffer is provided by the application, next_out must
++ never be changed by the application since the decompressor maintains
++ history information inside this buffer from call to call; the application
++ can only reset next_out to the beginning of the history buffer when
++ avail_out is zero and all output has been consumed.
++
++ inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was
++ not enough memory, Z_STREAM_ERROR if a parameter is invalid (such as
++ windowBits &lt; 8). msg is set to null if there is no error message.
++ inflateInit2 does not perform any decompression: this will be done by
++ inflate().
++*/
++
++extern int inflateSync OF((z_stream *strm));
++/*
++ Skips invalid compressed data until the special marker (see deflate()
++ above) can be found, or until all available input is skipped. No output
++ is provided.
++
++ inflateSync returns Z_OK if the special marker has been found, Z_BUF_ERROR
++ if no more input was provided, Z_DATA_ERROR if no marker has been found,
++ or Z_STREAM_ERROR if the stream structure was inconsistent. In the success
++ case, the application may save the current current value of total_in which
++ indicates where valid compressed data was found. In the error case, the
++ application may repeatedly call inflateSync, providing more input each time,
++ until success or end of the input data.
++*/
++
++extern int inflateReset OF((z_stream *strm));
++/*
++ This function is equivalent to inflateEnd followed by inflateInit,
++ but does not free and reallocate all the internal decompression state.
++ The stream will keep attributes that may have been set by inflateInit2.
++
++ inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source
++ stream state was inconsistent (such as zalloc or state being NULL).
++*/
++
++extern int inflateIncomp OF((z_stream *strm));
++/*
++ This function adds the data at next_in (avail_in bytes) to the output
++ history without performing any output. There must be no pending output,
++ and the decompressor must be expecting to see the start of a block.
++ Calling this function is equivalent to decompressing a stored block
++ containing the data at next_in (except that the data is not output).
++*/
++
++ /* checksum functions */
++
++/*
++ This function is not related to compression but is exported
++ anyway because it might be useful in applications using the
++ compression library.
++*/
++
++extern uLong adler32 OF((uLong adler, Bytef *buf, uInt len));
++
++/*
++ Update a running Adler-32 checksum with the bytes buf[0..len-1] and
++ return the updated checksum. If buf is NULL, this function returns
++ the required initial value for the checksum.
++ An Adler-32 checksum is almost as reliable as a CRC32 but can be computed
++ much faster. Usage example:
++
++ uLong adler = adler32(0L, Z_NULL, 0);
++
++ while (read_buffer(buffer, length) != EOF) {
++ adler = adler32(adler, buffer, length);
++ }
++ if (adler != original_adler) error();
++*/
++
++#ifndef _Z_UTIL_H
++ struct internal_state {int dummy;}; /* hack for buggy compilers */
++#endif
++
++#endif /* _ZLIB_H */
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/pppdump/zlib.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1ppppppstatsMakefilelinux">Added: drakx/trunk/mdk-stage1/ppp/pppstats/Makefile.linux</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppstats/Makefile.linux (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppstats/Makefile.linux 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,32 @@
++#
++# pppstats makefile
++# $Id: Makefile.linux 195720 2001-06-11 11:44:34Z gc $
++#
++
++PPPSTATSRCS = pppstats.c
++PPPSTATOBJS = pppstats.o
++
++#CC = gcc
++COPTS = -O
++COMPILE_FLAGS = -D_linux_ -I../include
++LIBS =
++
++INSTALL= install -o root -g daemon
++
++CFLAGS = $(COPTS) $(COMPILE_FLAGS)
++
++all: pppstats
++
++install: pppstats
++ $(INSTALL) -s -c pppstats $(BINDIR)/pppstats
++ $(INSTALL) -c -m 444 pppstats.8 $(MANDIR)/man8/pppstats.8
++
++pppstats: $(PPPSTATSRCS)
++ $(CC) $(CFLAGS) -o pppstats pppstats.c $(LIBS)
++
++clean:
++ rm -f pppstats *~ #* core
++
++depend:
++ cpp -M $(CFLAGS) $(PPPSTATSRCS) &gt;.depend
++# makedepend $(CFLAGS) $(PPPSTATSRCS)
+
+<a id="drakxtrunkmdkstage1ppppppstatsMakefilesol2">Added: drakx/trunk/mdk-stage1/ppp/pppstats/Makefile.sol2</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppstats/Makefile.sol2 (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppstats/Makefile.sol2 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,20 @@
++#
++# pppstats Makefile for SVR4 systems
++# $Id: Makefile.sol2 195720 2001-06-11 11:44:34Z gc $
++#
++
++include ../solaris/Makedefs
++
++CFLAGS = -DSTREAMS -I../include $(COPTS)
++
++all: pppstats
++
++pppstats: pppstats.c
++ $(CC) $(CFLAGS) -o pppstats pppstats.c
++
++install: pppstats
++ $(INSTALL) -f $(BINDIR) pppstats
++ $(INSTALL) -m 444 -f $(MANDIR)/man8 pppstats.8
++
++clean:
++ rm -f pppstats *~ core
+
+<a id="drakxtrunkmdkstage1ppppppstatsMakefilesunos4">Added: drakx/trunk/mdk-stage1/ppp/pppstats/Makefile.sunos4</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppstats/Makefile.sunos4 (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppstats/Makefile.sunos4 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,30 @@
++#
++# pppstats makefile
++# $Id: Makefile.sunos4 195720 2001-06-11 11:44:34Z gc $
++#
++
++include ../sunos4/Makedefs
++
++PPPSTATSRCS = pppstats.c
++PPPSTATOBJS = pppstats.o
++
++COMPILE_FLAGS = -DSTREAMS -DSUNOS4
++LIBS =
++
++CFLAGS = -I../include $(COPTS) $(COMPILE_FLAGS)
++
++all: pppstats
++
++install: pppstats
++ $(INSTALL) -c pppstats $(BINDIR)/pppstats
++ $(INSTALL) -c -m 444 pppstats.8 $(MANDIR)/man8/pppstats.8
++
++pppstats: $(PPPSTATSRCS)
++ $(CC) $(CFLAGS) -o pppstats pppstats.c $(LIBS)
++
++clean:
++ rm -f pppstats *~ #* core
++
++depend:
++ cpp -M $(CFLAGS) $(PPPSTATSRCS) &gt;.depend
++# makedepend $(CFLAGS) $(PPPSTATSRCS)
+
+<a id="drakxtrunkmdkstage1ppppppstatspppstats8">Added: drakx/trunk/mdk-stage1/ppp/pppstats/pppstats.8</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppstats/pppstats.8 (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppstats/pppstats.8 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,217 @@
++.\&quot; @(#) $Id: pppstats.8 195720 2001-06-11 11:44:34Z gc $
++.TH PPPSTATS 8 &quot;26 June 1995&quot;
++.SH NAME
++pppstats \- print PPP statistics
++.SH SYNOPSIS
++.B pppstats
++[
++.B -a
++] [
++.B -v
++] [
++.B -r
++] [
++.B -z
++] [
++.B -c
++.I &lt;count&gt;
++] [
++.B -w
++.I &lt;secs&gt;
++] [
++.I interface
++]
++.ti 12
++.SH DESCRIPTION
++The
++.B pppstats
++utility reports PPP-related statistics at regular intervals for the
++specified PPP interface. If the interface is unspecified, it will
++default to ppp0.
++The display is split horizontally
++into input and output sections containing columns of statistics
++describing the properties and volume of packets received and
++transmitted by the interface.
++.PP
++The options are as follows:
++.TP
++.B -a
++Display absolute values rather than deltas. With this option, all
++reports show statistics for the time since the link was initiated.
++Without this option, the second and subsequent reports show statistics
++for the time since the last report.
++.TP
++.B -c \fIcount
++Repeat the display
++.I count
++times. If this option is not specified, the default repeat count is 1
++if the
++.B -w
++option is not specified, otherwise infinity.
++.TP
++.B -r
++Display additional statistics summarizing the compression ratio
++achieved by the packet compression algorithm in use.
++.TP
++.B -v
++Display additional statistics relating to the performance of the Van
++Jacobson TCP header compression algorithm.
++.TP
++.B -w \fIwait
++Pause
++.I wait
++seconds between each display. If this option is not specified, the
++default interval is 5 seconds.
++.TP
++.B -z
++Instead of the standard display, show statistics indicating the
++performance of the packet compression algorithm in use.
++.PP
++The following fields are printed on the input side when the
++.B -z
++option is not used:
++.TP
++.B IN
++The total number of bytes received by this interface.
++.TP
++.B PACK
++The total number of packets received by this interface.
++.TP
++.B VJCOMP
++The number of header-compressed TCP packets received by this interface.
++.TP
++.B VJUNC
++The number of header-uncompressed TCP packets received by this
++interface. Not reported when the
++.B -r
++option is specified.
++.TP
++.B VJERR
++The number of corrupted or bogus header-compressed TCP packets
++received by this interface. Not reported when the
++.B -r
++option is specified.
++.TP
++.B VJTOSS
++The number of VJ header-compressed TCP packets dropped on reception by
++this interface because of preceding errors. Only reported when the
++.B -v
++option is specified.
++.TP
++.B NON-VJ
++The total number of non-TCP packets received by this interface. Only
++reported when the
++.B -v
++option is specified.
++.TP
++.B RATIO
++The compression ratio achieved for received packets by the
++packet compression scheme in use, defined as the uncompressed size
++divided by the compressed size.
++Only reported when the
++.B -r
++option is specified.
++.TP
++.B UBYTE
++The total number of bytes received, after decompression of compressed
++packets. Only reported when the
++.B -r
++option is specified.
++.PP
++The following fields are printed on the output side:
++.TP
++.B OUT
++The total number of bytes transmitted from this interface.
++.TP
++.B PACK
++The total number of packets transmitted from this interface.
++.TP
++.B VJCOMP
++The number of TCP packets transmitted from this interface with
++VJ-compressed TCP headers.
++.TP
++.B VJUNC
++The number of TCP packets transmitted from this interface with
++VJ-uncompressed TCP headers.
++Not reported when the
++.B -r
++option is specified.
++.TP
++.B NON-VJ
++The total number of non-TCP packets transmitted from this interface.
++Not reported when the
++.B -r
++option is specified.
++.TP
++.B VJSRCH
++The number of searches for the cached header entry for a VJ header
++compressed TCP packet. Only reported when the
++.B -v
++option is specified.
++.TP
++.B VJMISS
++The number of failed searches for the cached header entry for a
++VJ header compressed TCP packet. Only reported when the
++.B -v
++option is specified.
++.TP
++.B RATIO
++The compression ratio achieved for transmitted packets by the
++packet compression scheme in use, defined as the size
++before compression divided by the compressed size.
++Only reported when the
++.B -r
++option is specified.
++.TP
++.B UBYTE
++The total number of bytes to be transmitted, before packet compression
++is applied. Only reported when the
++.B -r
++option is specified.
++.PP
++When the
++.B -z
++option is specified,
++.Nm pppstats
++instead displays the following fields, relating to the packet
++compression algorithm currently in use. If packet compression is not
++in use, these fields will all display zeroes. The fields displayed on
++the input side are:
++.TP
++.B COMPRESSED BYTE
++The number of bytes of compressed packets received.
++.TP
++.B COMPRESSED PACK
++The number of compressed packets received.
++.TP
++.B INCOMPRESSIBLE BYTE
++The number of bytes of incompressible packets (that is, those which
++were transmitted in uncompressed form) received.
++.TP
++.B INCOMPRESSIBLE PACK
++The number of incompressible packets received.
++.TP
++.B COMP RATIO
++The recent compression ratio for incoming packets, defined as the
++uncompressed size divided by the compressed size (including both
++compressible and incompressible packets).
++.PP
++The fields displayed on the output side are:
++.TP
++.B COMPRESSED BYTE
++The number of bytes of compressed packets transmitted.
++.TP
++.B COMPRESSED PACK
++The number of compressed packets transmitted.
++.TP
++.B INCOMPRESSIBLE BYTE
++The number of bytes of incompressible packets transmitted (that is,
++those which were transmitted in uncompressed form).
++.TP
++.B INCOMPRESSIBLE PACK
++The number of incompressible packets transmitted.
++.TP
++.B COMP RATIO
++The recent compression ratio for outgoing packets.
++.SH SEE ALSO
++pppd(8)
+
+<a id="drakxtrunkmdkstage1ppppppstatspppstatsc">Added: drakx/trunk/mdk-stage1/ppp/pppstats/pppstats.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/pppstats/pppstats.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/pppstats/pppstats.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,557 @@
++/*
++ * print PPP statistics:
++ * pppstats [-a|-d] [-v|-r|-z] [-c count] [-w wait] [interface]
++ *
++ * -a Show absolute values rather than deltas
++ * -d Show data rate (kB/s) rather than bytes
++ * -v Show more stats for VJ TCP header compression
++ * -r Show compression ratio
++ * -z Show compression statistics instead of default display
++ *
++ * History:
++ * perkins@cps.msu.edu: Added compression statistics and alternate
++ * display. 11/94
++ * Brad Parker (brad@cayman.com) 6/92
++ *
++ * from the original &quot;slstats&quot; by Van Jacobson
++ *
++ * Copyright (c) 1989 Regents of the University of California.
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms are permitted
++ * provided that the above copyright notice and this paragraph are
++ * duplicated in all such forms and that any documentation,
++ * advertising materials, and other materials related to such
++ * distribution and use acknowledge that the software was developed
++ * by the University of California, Berkeley. The name of the
++ * University may not be used to endorse or promote products derived
++ * from this software without specific prior written permission.
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
++ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
++ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++ */
++
++#ifndef __STDC__
++#define const
++#endif
++
++#ifndef lint
++static const char rcsid[] = &quot;$Id: pppstats.c 195720 2001-06-11 11:44:34Z gc $&quot;;
++#endif
++
++#include &lt;stdio.h&gt;
++#include &lt;stddef.h&gt;
++#include &lt;stdlib.h&gt;
++#include &lt;string.h&gt;
++#include &lt;ctype.h&gt;
++#include &lt;errno.h&gt;
++#include &lt;signal.h&gt;
++#include &lt;fcntl.h&gt;
++#include &lt;unistd.h&gt;
++#include &lt;sys/param.h&gt;
++#include &lt;sys/types.h&gt;
++#include &lt;sys/ioctl.h&gt;
++
++#ifndef STREAMS
++#if defined(_linux_) &amp;&amp; defined(__powerpc__) \
++ &amp;&amp; (__GLIBC__ == 2 &amp;&amp; __GLIBC_MINOR__ == 0)
++/* kludge alert! */
++#undef __GLIBC__
++#endif
++#include &lt;sys/socket.h&gt; /* *BSD, Linux, NeXT, Ultrix etc. */
++#ifndef _linux_
++#include &lt;net/if.h&gt;
++#include &lt;net/ppp_defs.h&gt;
++#include &lt;net/if_ppp.h&gt;
++#else
++/* Linux */
++#if __GLIBC__ &gt;= 2
++#include &lt;asm/types.h&gt; /* glibc 2 conflicts with linux/types.h */
++#include &lt;net/if.h&gt;
++#else
++#include &lt;linux/types.h&gt;
++#include &lt;linux/if.h&gt;
++#endif
++#include &lt;linux/ppp_defs.h&gt;
++#include &lt;linux/if_ppp.h&gt;
++#endif /* _linux_ */
++
++#else /* STREAMS */
++#include &lt;sys/stropts.h&gt; /* SVR4, Solaris 2, SunOS 4, OSF/1, etc. */
++#include &lt;net/ppp_defs.h&gt;
++#include &lt;net/pppio.h&gt;
++
++#endif /* STREAMS */
++
++int vflag, rflag, zflag; /* select type of display */
++int aflag; /* print absolute values, not deltas */
++int dflag; /* print data rates, not bytes */
++int interval, count;
++int infinite;
++int unit;
++int s; /* socket or /dev/ppp file descriptor */
++int signalled; /* set if alarm goes off &quot;early&quot; */
++char *progname;
++char *interface;
++
++#if defined(SUNOS4) || defined(ULTRIX) || defined(NeXT)
++extern int optind;
++extern char *optarg;
++#endif
++
++/*
++ * If PPP_DRV_NAME is not defined, use the legacy &quot;ppp&quot; as the
++ * device name.
++ */
++#if !defined(PPP_DRV_NAME)
++#define PPP_DRV_NAME &quot;ppp&quot;
++#endif /* !defined(PPP_DRV_NAME) */
++
++static void usage __P((void));
++static void catchalarm __P((int));
++static void get_ppp_stats __P((struct ppp_stats *));
++static void get_ppp_cstats __P((struct ppp_comp_stats *));
++static void intpr __P((void));
++
++int main __P((int, char *argv[]));
++
++static void
++usage()
++{
++ fprintf(stderr, &quot;Usage: %s [-a|-d] [-v|-r|-z] [-c count] [-w wait] [interface]\n&quot;,
++ progname);
++ exit(1);
++}
++
++/*
++ * Called if an interval expires before intpr has completed a loop.
++ * Sets a flag to not wait for the alarm.
++ */
++static void
++catchalarm(arg)
++ int arg;
++{
++ signalled = 1;
++}
++
++
++#ifndef STREAMS
++static void
++get_ppp_stats(curp)
++ struct ppp_stats *curp;
++{
++ struct ifpppstatsreq req;
++
++ memset (&amp;req, 0, sizeof (req));
++
++#ifdef _linux_
++ req.stats_ptr = (caddr_t) &amp;req.stats;
++#undef ifr_name
++#define ifr_name ifr__name
++#endif
++
++ strncpy(req.ifr_name, interface, sizeof(req.ifr_name));
++ if (ioctl(s, SIOCGPPPSTATS, &amp;req) &lt; 0) {
++ fprintf(stderr, &quot;%s: &quot;, progname);
++ if (errno == ENOTTY)
++ fprintf(stderr, &quot;kernel support missing\n&quot;);
++ else
++ perror(&quot;couldn't get PPP statistics&quot;);
++ exit(1);
++ }
++ *curp = req.stats;
++}
++
++static void
++get_ppp_cstats(csp)
++ struct ppp_comp_stats *csp;
++{
++ struct ifpppcstatsreq creq;
++
++ memset (&amp;creq, 0, sizeof (creq));
++
++#ifdef _linux_
++ creq.stats_ptr = (caddr_t) &amp;creq.stats;
++#undef ifr_name
++#define ifr_name ifr__name
++#endif
++
++ strncpy(creq.ifr_name, interface, sizeof(creq.ifr_name));
++ if (ioctl(s, SIOCGPPPCSTATS, &amp;creq) &lt; 0) {
++ fprintf(stderr, &quot;%s: &quot;, progname);
++ if (errno == ENOTTY) {
++ fprintf(stderr, &quot;no kernel compression support\n&quot;);
++ if (zflag)
++ exit(1);
++ rflag = 0;
++ } else {
++ perror(&quot;couldn't get PPP compression stats&quot;);
++ exit(1);
++ }
++ }
++
++#ifdef _linux_
++ if (creq.stats.c.bytes_out == 0) {
++ creq.stats.c.bytes_out = creq.stats.c.comp_bytes + creq.stats.c.inc_bytes;
++ creq.stats.c.in_count = creq.stats.c.unc_bytes;
++ }
++ if (creq.stats.c.bytes_out == 0)
++ creq.stats.c.ratio = 0.0;
++ else
++ creq.stats.c.ratio = 256.0 * creq.stats.c.in_count /
++ creq.stats.c.bytes_out;
++
++ if (creq.stats.d.bytes_out == 0) {
++ creq.stats.d.bytes_out = creq.stats.d.comp_bytes + creq.stats.d.inc_bytes;
++ creq.stats.d.in_count = creq.stats.d.unc_bytes;
++ }
++ if (creq.stats.d.bytes_out == 0)
++ creq.stats.d.ratio = 0.0;
++ else
++ creq.stats.d.ratio = 256.0 * creq.stats.d.in_count /
++ creq.stats.d.bytes_out;
++#endif
++
++ *csp = creq.stats;
++}
++
++#else /* STREAMS */
++
++int
++strioctl(fd, cmd, ptr, ilen, olen)
++ int fd, cmd, ilen, olen;
++ char *ptr;
++{
++ struct strioctl str;
++
++ str.ic_cmd = cmd;
++ str.ic_timout = 0;
++ str.ic_len = ilen;
++ str.ic_dp = ptr;
++ if (ioctl(fd, I_STR, &amp;str) == -1)
++ return -1;
++ if (str.ic_len != olen)
++ fprintf(stderr, &quot;strioctl: expected %d bytes, got %d for cmd %x\n&quot;,
++ olen, str.ic_len, cmd);
++ return 0;
++}
++
++static void
++get_ppp_stats(curp)
++ struct ppp_stats *curp;
++{
++ if (strioctl(s, PPPIO_GETSTAT, curp, 0, sizeof(*curp)) &lt; 0) {
++ fprintf(stderr, &quot;%s: &quot;, progname);
++ if (errno == EINVAL)
++ fprintf(stderr, &quot;kernel support missing\n&quot;);
++ else
++ perror(&quot;couldn't get PPP statistics&quot;);
++ exit(1);
++ }
++}
++
++static void
++get_ppp_cstats(csp)
++ struct ppp_comp_stats *csp;
++{
++ if (strioctl(s, PPPIO_GETCSTAT, csp, 0, sizeof(*csp)) &lt; 0) {
++ fprintf(stderr, &quot;%s: &quot;, progname);
++ if (errno == ENOTTY) {
++ fprintf(stderr, &quot;no kernel compression support\n&quot;);
++ if (zflag)
++ exit(1);
++ rflag = 0;
++ } else {
++ perror(&quot;couldn't get PPP compression statistics&quot;);
++ exit(1);
++ }
++ }
++}
++
++#endif /* STREAMS */
++
++#define MAX0(a) ((int)(a) &gt; 0? (a): 0)
++#define V(offset) MAX0(cur.offset - old.offset)
++#define W(offset) MAX0(ccs.offset - ocs.offset)
++
++#define RATIO(c, i, u) ((c) == 0? 1.0: (u) / ((double)(c) + (i)))
++#define CRATE(x) RATIO(W(x.comp_bytes), W(x.inc_bytes), W(x.unc_bytes))
++
++#define KBPS(n) ((n) / (interval * 1000.0))
++
++/*
++ * Print a running summary of interface statistics.
++ * Repeat display every interval seconds, showing statistics
++ * collected over that interval. Assumes that interval is non-zero.
++ * First line printed is cumulative.
++ */
++static void
++intpr()
++{
++ register int line = 0;
++ sigset_t oldmask, mask;
++ char *bunit;
++ int ratef = 0;
++ struct ppp_stats cur, old;
++ struct ppp_comp_stats ccs, ocs;
++
++ memset(&amp;old, 0, sizeof(old));
++ memset(&amp;ocs, 0, sizeof(ocs));
++
++ while (1) {
++ get_ppp_stats(&amp;cur);
++ if (zflag || rflag)
++ get_ppp_cstats(&amp;ccs);
++
++ (void)signal(SIGALRM, catchalarm);
++ signalled = 0;
++ (void)alarm(interval);
++
++ if ((line % 20) == 0) {
++ if (zflag) {
++ printf(&quot;IN: COMPRESSED INCOMPRESSIBLE COMP | &quot;);
++ printf(&quot;OUT: COMPRESSED INCOMPRESSIBLE COMP\n&quot;);
++ bunit = dflag? &quot;KB/S&quot;: &quot;BYTE&quot;;
++ printf(&quot; %s PACK %s PACK RATIO | &quot;, bunit, bunit);
++ printf(&quot; %s PACK %s PACK RATIO&quot;, bunit, bunit);
++ } else {
++ printf(&quot;%8.8s %6.6s %6.6s&quot;,
++ &quot;IN&quot;, &quot;PACK&quot;, &quot;VJCOMP&quot;);
++
++ if (!rflag)
++ printf(&quot; %6.6s %6.6s&quot;, &quot;VJUNC&quot;, &quot;VJERR&quot;);
++ if (vflag)
++ printf(&quot; %6.6s %6.6s&quot;, &quot;VJTOSS&quot;, &quot;NON-VJ&quot;);
++ if (rflag)
++ printf(&quot; %6.6s %6.6s&quot;, &quot;RATIO&quot;, &quot;UBYTE&quot;);
++ printf(&quot; | %8.8s %6.6s %6.6s&quot;,
++ &quot;OUT&quot;, &quot;PACK&quot;, &quot;VJCOMP&quot;);
++
++ if (!rflag)
++ printf(&quot; %6.6s %6.6s&quot;, &quot;VJUNC&quot;, &quot;NON-VJ&quot;);
++ if (vflag)
++ printf(&quot; %6.6s %6.6s&quot;, &quot;VJSRCH&quot;, &quot;VJMISS&quot;);
++ if (rflag)
++ printf(&quot; %6.6s %6.6s&quot;, &quot;RATIO&quot;, &quot;UBYTE&quot;);
++ }
++ putchar('\n');
++ }
++
++ if (zflag) {
++ if (ratef) {
++ printf(&quot;%8.3f %6u %8.3f %6u %6.2f&quot;,
++ KBPS(W(d.comp_bytes)),
++ W(d.comp_packets),
++ KBPS(W(d.inc_bytes)),
++ W(d.inc_packets),
++ ccs.d.ratio / 256.0);
++ printf(&quot; | %8.3f %6u %8.3f %6u %6.2f&quot;,
++ KBPS(W(c.comp_bytes)),
++ W(c.comp_packets),
++ KBPS(W(c.inc_bytes)),
++ W(c.inc_packets),
++ ccs.c.ratio / 256.0);
++ } else {
++ printf(&quot;%8u %6u %8u %6u %6.2f&quot;,
++ W(d.comp_bytes),
++ W(d.comp_packets),
++ W(d.inc_bytes),
++ W(d.inc_packets),
++ ccs.d.ratio / 256.0);
++ printf(&quot; | %8u %6u %8u %6u %6.2f&quot;,
++ W(c.comp_bytes),
++ W(c.comp_packets),
++ W(c.inc_bytes),
++ W(c.inc_packets),
++ ccs.c.ratio / 256.0);
++ }
++
++ } else {
++ if (ratef)
++ printf(&quot;%8.3f&quot;, KBPS(V(p.ppp_ibytes)));
++ else
++ printf(&quot;%8u&quot;, V(p.ppp_ibytes));
++ printf(&quot; %6u %6u&quot;,
++ V(p.ppp_ipackets),
++ V(vj.vjs_compressedin));
++ if (!rflag)
++ printf(&quot; %6u %6u&quot;,
++ V(vj.vjs_uncompressedin),
++ V(vj.vjs_errorin));
++ if (vflag)
++ printf(&quot; %6u %6u&quot;,
++ V(vj.vjs_tossed),
++ V(p.ppp_ipackets) - V(vj.vjs_compressedin)
++ - V(vj.vjs_uncompressedin) - V(vj.vjs_errorin));
++ if (rflag) {
++ printf(&quot; %6.2f &quot;, CRATE(d));
++ if (ratef)
++ printf(&quot;%6.2f&quot;, KBPS(W(d.unc_bytes)));
++ else
++ printf(&quot;%6u&quot;, W(d.unc_bytes));
++ }
++ if (ratef)
++ printf(&quot; | %8.3f&quot;, KBPS(V(p.ppp_obytes)));
++ else
++ printf(&quot; | %8u&quot;, V(p.ppp_obytes));
++ printf(&quot; %6u %6u&quot;,
++ V(p.ppp_opackets),
++ V(vj.vjs_compressed));
++ if (!rflag)
++ printf(&quot; %6u %6u&quot;,
++ V(vj.vjs_packets) - V(vj.vjs_compressed),
++ V(p.ppp_opackets) - V(vj.vjs_packets));
++ if (vflag)
++ printf(&quot; %6u %6u&quot;,
++ V(vj.vjs_searches),
++ V(vj.vjs_misses));
++ if (rflag) {
++ printf(&quot; %6.2f &quot;, CRATE(c));
++ if (ratef)
++ printf(&quot;%6.2f&quot;, KBPS(W(c.unc_bytes)));
++ else
++ printf(&quot;%6u&quot;, W(c.unc_bytes));
++ }
++
++ }
++
++ putchar('\n');
++ fflush(stdout);
++ line++;
++
++ count--;
++ if (!infinite &amp;&amp; !count)
++ break;
++
++ sigemptyset(&amp;mask);
++ sigaddset(&amp;mask, SIGALRM);
++ sigprocmask(SIG_BLOCK, &amp;mask, &amp;oldmask);
++ if (!signalled) {
++ sigemptyset(&amp;mask);
++ sigsuspend(&amp;mask);
++ }
++ sigprocmask(SIG_SETMASK, &amp;oldmask, NULL);
++ signalled = 0;
++ (void)alarm(interval);
++
++ if (!aflag) {
++ old = cur;
++ ocs = ccs;
++ ratef = dflag;
++ }
++ }
++}
++
++int
++main(argc, argv)
++ int argc;
++ char *argv[];
++{
++ int c;
++#ifdef STREAMS
++ char *dev;
++#endif
++
++ interface = PPP_DRV_NAME &quot;0&quot;;
++ if ((progname = strrchr(argv[0], '/')) == NULL)
++ progname = argv[0];
++ else
++ ++progname;
++
++ while ((c = getopt(argc, argv, &quot;advrzc:w:&quot;)) != -1) {
++ switch (c) {
++ case 'a':
++ ++aflag;
++ break;
++ case 'd':
++ ++dflag;
++ break;
++ case 'v':
++ ++vflag;
++ break;
++ case 'r':
++ ++rflag;
++ break;
++ case 'z':
++ ++zflag;
++ break;
++ case 'c':
++ count = atoi(optarg);
++ if (count &lt;= 0)
++ usage();
++ break;
++ case 'w':
++ interval = atoi(optarg);
++ if (interval &lt;= 0)
++ usage();
++ break;
++ default:
++ usage();
++ }
++ }
++ argc -= optind;
++ argv += optind;
++
++ if (!interval &amp;&amp; count)
++ interval = 5;
++ if (interval &amp;&amp; !count)
++ infinite = 1;
++ if (!interval &amp;&amp; !count)
++ count = 1;
++ if (aflag)
++ dflag = 0;
++
++ if (argc &gt; 1)
++ usage();
++ if (argc &gt; 0)
++ interface = argv[0];
++
++ if (sscanf(interface, PPP_DRV_NAME &quot;%d&quot;, &amp;unit) != 1) {
++ fprintf(stderr, &quot;%s: invalid interface '%s' specified\n&quot;,
++ progname, interface);
++ }
++
++#ifndef STREAMS
++ {
++ struct ifreq ifr;
++
++ s = socket(AF_INET, SOCK_DGRAM, 0);
++ if (s &lt; 0) {
++ fprintf(stderr, &quot;%s: &quot;, progname);
++ perror(&quot;couldn't create IP socket&quot;);
++ exit(1);
++ }
++
++#ifdef _linux_
++#undef ifr_name
++#define ifr_name ifr_ifrn.ifrn_name
++#endif
++ strncpy(ifr.ifr_name, interface, sizeof(ifr.ifr_name));
++ if (ioctl(s, SIOCGIFFLAGS, (caddr_t)&amp;ifr) &lt; 0) {
++ fprintf(stderr, &quot;%s: nonexistent interface '%s' specified\n&quot;,
++ progname, interface);
++ exit(1);
++ }
++ }
++
++#else /* STREAMS */
++#ifdef __osf__
++ dev = &quot;/dev/streams/ppp&quot;;
++#else
++ dev = &quot;/dev/&quot; PPP_DRV_NAME;
++#endif
++ if ((s = open(dev, O_RDONLY)) &lt; 0) {
++ fprintf(stderr, &quot;%s: couldn't open &quot;, progname);
++ perror(dev);
++ exit(1);
++ }
++ if (strioctl(s, PPPIO_ATTACH, &amp;unit, sizeof(int), 0) &lt; 0) {
++ fprintf(stderr, &quot;%s: ppp%d is not available\n&quot;, progname, unit);
++ exit(1);
++ }
++
++#endif /* STREAMS */
++
++ intpr();
++ exit(0);
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/pppstats/pppstats.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pppsampleauthdown">Added: drakx/trunk/mdk-stage1/ppp/sample/auth-down</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/sample/auth-down (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/sample/auth-down 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,17 @@
++#!/bin/sh
++#
++# A program or script which is executed after the remote system
++# successfully authenticates itself. It is executed with the parameters
++# &lt;interface-name&gt; &lt;peer-name&gt; &lt;user-name&gt; &lt;tty-device&gt; &lt;speed&gt;
++#
++
++#
++# The environment is cleared before executing this script
++# so the path must be reset
++#
++PATH=/usr/sbin:/sbin:/usr/bin:/bin
++export PATH
++
++echo auth-down `date +'%y/%m/%d %T'` $* &gt;&gt; /var/log/pppstats
++
++# last line
+
+<a id="drakxtrunkmdkstage1pppsampleauthup">Added: drakx/trunk/mdk-stage1/ppp/sample/auth-up</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/sample/auth-up (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/sample/auth-up 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,17 @@
++#!/bin/sh
++#
++# A program or script which is executed after the remote system
++# successfully authenticates itself. It is executed with the parameters
++# &lt;interface-name&gt; &lt;peer-name&gt; &lt;user-name&gt; &lt;tty-device&gt; &lt;speed&gt;
++#
++
++#
++# The environment is cleared before executing this script
++# so the path must be reset
++#
++PATH=/usr/sbin:/sbin:/usr/bin:/bin
++export PATH
++
++echo auth-up `date +'%y/%m/%d %T'` $* &gt;&gt; /var/log/pppstats
++
++# last line
+
+<a id="drakxtrunkmdkstage1pppsampleipdown">Added: drakx/trunk/mdk-stage1/ppp/sample/ip-down</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/sample/ip-down (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/sample/ip-down 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,22 @@
++#!/bin/sh
++#
++# This script is run by the pppd _after_ the link is brought down.
++# It should be used to delete routes, unset IP addresses etc.
++#
++# This script is called with the following arguments:
++# Arg Name Example
++# $1 Interface name ppp0
++# $2 The tty ttyS1
++# $3 The link speed 38400
++# $4 Local IP number 12.34.56.78
++# $5 Peer IP number 12.34.56.99
++#
++
++#
++# The environment is cleared before executing this script
++# so the path must be reset
++#
++PATH=/usr/sbin:/sbin:/usr/bin:/bin
++export PATH
++
++# last line
+
+<a id="drakxtrunkmdkstage1pppsampleipup">Added: drakx/trunk/mdk-stage1/ppp/sample/ip-up</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/sample/ip-up (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/sample/ip-up 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,23 @@
++#!/bin/sh
++#
++# This script is run by the pppd after the link is established.
++# It should be used to add routes, set IP address, run the mailq
++# etc.
++#
++# This script is called with the following arguments:
++# Arg Name Example
++# $1 Interface name ppp0
++# $2 The tty ttyS1
++# $3 The link speed 38400
++# $4 Local IP number 12.34.56.78
++# $5 Peer IP number 12.34.56.99
++#
++
++#
++# The environment is cleared before executing this script
++# so the path must be reset
++#
++PATH=/usr/sbin:/sbin:/usr/bin:/bin
++export PATH
++
++# last line
+
+<a id="drakxtrunkmdkstage1pppsampleoptions">Added: drakx/trunk/mdk-stage1/ppp/sample/options</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/sample/options (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/sample/options 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,153 @@
++# /etc/ppp/options
++
++# The name of this server. Often, the FQDN is used here.
++#name &lt;host&gt;
++
++# Enforce the use of the hostname as the name of the local system for
++# authentication purposes (overrides the name option).
++usehostname
++
++# If no local IP address is given, pppd will use the first IP address
++# that belongs to the local hostname. If &quot;noipdefault&quot; is given, this
++# is disabled and the peer will have to supply an IP address.
++noipdefault
++
++# With this option, pppd will accept the peer's idea of our local IP
++# address, even if the local IP address was specified in an option.
++#ipcp-accept-local
++
++# With this option, pppd will accept the peer's idea of its (remote) IP
++# address, even if the remote IP address was specified in an option.
++#ipcp-accept-remote
++
++# Specify which DNS Servers the incoming Win95 or WinNT Connection should use
++# Two Servers can be remotely configured
++#ms-dns 192.168.1.1
++#ms-dns 192.168.1.2
++
++# Specify which WINS Servers the incoming connection Win95 or WinNT should use
++#wins-addr 192.168.1.50
++#wins-addr 192.168.1.51
++
++# enable this on a server that already has a permanent default route
++#nodefaultroute
++
++# Run the executable or shell command specified after pppd has terminated
++# the link. This script could, for example, issue commands to the modem
++# to cause it to hang up if hardware modem control signals were not
++# available.
++# If mgetty is running, it will reset the modem anyway. So there is no need
++# to do it here.
++#disconnect &quot;chat -- \d+++\d\c OK ath0 OK&quot;
++
++# Increase debugging level (same as -d). The debug output is written
++# to syslog LOG_LOCAL2.
++debug
++
++# Enable debugging code in the kernel-level PPP driver. The argument n
++# is a number which is the sum of the following values: 1 to enable
++# general debug messages, 2 to request that the contents of received
++# packets be printed, and 4 to request that the contents of transmitted
++# packets be printed.
++#kdebug n
++
++# Require the peer to authenticate itself before allowing network
++# packets to be sent or received.
++# Please do not disable this setting. It is expected to be standard in
++# future releases of pppd. Use the call option (see manpage) to disable
++# authentication for specific peers.
++#auth
++
++# authentication can either be pap or chap. As most people only want to
++# use pap, you can also disable chap:
++#require-pap
++#refuse-chap
++
++# Use hardware flow control (i.e. RTS/CTS) to control the flow of data
++# on the serial port.
++crtscts
++
++# Specifies that pppd should use a UUCP-style lock on the serial device
++# to ensure exclusive access to the device.
++lock
++
++# Use the modem control lines.
++modem
++
++# async character map -- 32-bit hex; each bit is a character
++# that needs to be escaped for pppd to receive it. 0x00000001
++# represents '\x01', and 0x80000000 represents '\x1f'.
++# To allow pppd to work over a rlogin/telnet connection, ou should escape
++# XON (^Q), XOFF (^S) and ^]: (The peer should use &quot;escape ff&quot;.)
++#asyncmap 200a0000
++asyncmap 0
++
++# Specifies that certain characters should be escaped on transmission
++# (regardless of whether the peer requests them to be escaped with its
++# async control character map). The characters to be escaped are
++# specified as a list of hex numbers separated by commas. Note that
++# almost any character can be specified for the escape option, unlike
++# the asyncmap option which only allows control characters to be
++# specified. The characters which may not be escaped are those with hex
++# values 0x20 - 0x3f or 0x5e.
++#escape 11,13,ff
++
++# Set the MRU [Maximum Receive Unit] value to &lt;n&gt; for negotiation. pppd
++# will ask the peer to send packets of no more than &lt;n&gt; bytes. The
++# minimum MRU value is 128. The default MRU value is 1500. A value of
++# 296 is recommended for slow links (40 bytes for TCP/IP header + 256
++# bytes of data).
++#mru 542
++
++# Set the MTU [Maximum Transmit Unit] value to &lt;n&gt;. Unless the peer
++# requests a smaller value via MRU negotiation, pppd will request that
++# the kernel networking code send data packets of no more than n bytes
++# through the PPP network interface.
++#mtu &lt;n&gt;
++
++# Set the interface netmask to &lt;n&gt;, a 32 bit netmask in &quot;decimal dot&quot;
++# notation (e.g. 255.255.255.0).
++#netmask 255.255.255.0
++
++# Don't fork to become a background process (otherwise pppd will do so
++# if a serial device is specified).
++nodetach
++
++# Set the assumed name of the remote system for authentication purposes
++# to &lt;n&gt;.
++#remotename &lt;n&gt;
++
++# Add an entry to this system's ARP [Address Resolution Protocol]
++# table with the IP address of the peer and the Ethernet address of this
++# system. {proxyarp,noproxyarp}
++proxyarp
++
++# Use the system password database for authenticating the peer using
++# PAP. Note: mgetty already provides this option. If this is specified
++# then dialin from users using a script under Linux to fire up ppp wont work.
++#login
++
++# If this option is given, pppd will send an LCP echo-request frame to
++# the peer every n seconds. Under Linux, the echo-request is sent when
++# no packets have been received from the peer for n seconds. Normally
++# the peer should respond to the echo-request by sending an echo-reply.
++# This option can be used with the lcp-echo-failure option to detect
++# that the peer is no longer connected.
++lcp-echo-interval 30
++
++# If this option is given, pppd will presume the peer to be dead if n
++# LCP echo-requests are sent without receiving a valid LCP echo-reply.
++# If this happens, pppd will terminate the connection. Use of this
++# option requires a non-zero value for the lcp-echo-interval parameter.
++# This option can be used to enable pppd to terminate after the physical
++# connection has been broken (e.g., the modem has hung up) in
++# situations where no hardware modem control lines are available.
++lcp-echo-failure 4
++
++# Specifies that pppd should disconnect if the link is idle for n seconds.
++idle 600
++
++# Disable the IPXCP and IPX protocols.
++noipx
++
++# ---&lt;End of File&gt;---
+
+<a id="drakxtrunkmdkstage1pppsampleoptionsttyXX">Added: drakx/trunk/mdk-stage1/ppp/sample/options.ttyXX</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/sample/options.ttyXX (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/sample/options.ttyXX 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,14 @@
++# If you need to set up multiple serial lines then copy this file to
++# options.&lt;ttyname&gt; for each tty with a modem on it.
++#
++# The options.tty file will assign an IP address to each PPP connection
++# as it comes up. They must all be distinct!
++#
++# Example:
++# options.ttyS1 for com2 under DOS.
++#
++# Edit the following line so that the first IP address
++# mentioned is the ip address of the serial port while the second
++# is the IP address of your host
++#
++hostname-s1:hostname
+
+<a id="drakxtrunkmdkstage1pppsamplepapsecrets">Added: drakx/trunk/mdk-stage1/ppp/sample/pap-secrets</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/sample/pap-secrets (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/sample/pap-secrets 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,28 @@
++# Secrets for authentication using PAP
++# client server secret IP addresses
++
++# OUTBOUND CONNECTIONS
++# Here you should add your userid password to connect to your providers via
++# pap. The * means that the password is to be used for ANY host you connect
++# to. Thus you do not have to worry about the foreign machine name. Just
++# replace password with your password.
++# If you have different providers with different passwords then you better
++# remove the following line.
++#hostname * password
++
++# INBOUND CONNECTIONS
++#client hostname &lt;password&gt; 192.168.1.1
++
++# If you add &quot;auth login -chap +pap&quot; to /etc/mgetty+sendfax/login.config,
++# all users in /etc/passwd can use their password for pap-authentication.
++#
++# Every regular user can use PPP and has to use passwords from /etc/passwd
++#* hostname &quot;&quot;
++# UserIDs that cannot use PPP at all. Check your /etc/passwd and add any
++# other accounts that should not be able to use pppd! Replace hostname
++# with your local hostname.
++#guest hostname &quot;*&quot; -
++#master hostname &quot;*&quot; -
++#root hostname &quot;*&quot; -
++#support hostname &quot;*&quot; -
++#stats hostname &quot;*&quot; -
+
+<a id="drakxtrunkmdkstage1pppscriptsREADME">Added: drakx/trunk/mdk-stage1/ppp/scripts/README</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/scripts/README (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/scripts/README 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,143 @@
++This directory contains a set of scripts which have been used on Linux
++as well as Solaris 2.x systems to initiate or maintain a connection
++with PPP. The files in this directory were contributed by Al Longyear
++(longyear@netcom.com) and Adi Masputra (adi.masputra@sun.com)
++
++------------------------------------------------------------------------
++
++1. README
++
++This file. You are reading it. It is just documentation.
++
++------------------------------------------------------------------------
++
++2. ppp-on
++
++This script will initiate a connection to the PPP system. It will run
++the chat program with the connection script as a parameter. This is a
++possible security hole. However, it is simple. It is meant to replace
++the previous version of ppp-on which was not very functional.
++
++The ppp-on script has entries for the account name, password, IP
++addresses, and telephone numbers. The parameters are passed to the
++pppd process and, then in turn, to the second part of the connect
++script, as a set of environment variables.
++
++Please make sure that you put the full path name to the ppp-on-dialer
++script in the reference to it in ppp-on.
++
++------------------------------------------------------------------------
++
++3. ppp-on-dialer
++
++This is the second part to the simple calling script, ppp-on. It
++executes the chat program to connect the user with a standard UNIX
++style getty/login connection sequence.
++
++------------------------------------------------------------------------
++
++4. callback
++
++This script may be used in lieu of the ppp-on-dialer to permit the
++common modem callback sequence. You may need to make changes to the
++expected prompt string for the modem.
++
++The script works by disabling the system's detection of the DCD
++condition and working on the modem status message &quot;NO CARRIER&quot; which
++is generated when the modem disconnects.
++
++It is crude. It does work for my modem connection. Use as you see fit.
++
++------------------------------------------------------------------------
++
++5. redialer
++
++The redialer script is a replacement for the ppp-on-dialer script. It
++will do 'attack dialing' or 'demon dialing' of one or more telephone
++numbers. The first number which responds will be used for a
++connection.
++
++There is a limit of ten attempts and a 15 second delay between dialing
++attempts. Both values are set in the script.
++
++------------------------------------------------------------------------
++
++6. ppp-off
++
++This is a script which will terminate the active ppp connection. Use
++as either &quot;ppp-off&quot; to terminate ppp0, or &quot;ppp-off &lt;device&gt;&quot; to
++terminate the connection on &lt;device&gt;. For example, &quot;ppp-off ppp2&quot; will
++terminate the ppp2 connection.
++
++------------------------------------------------------------------------
++
++7. secure-card
++
++This script was written by Jim Isaacson &lt;jcisaac@crl.com&gt;. It is a script
++for the 'expect' programming language used with Tcl. You need to have
++expect and Tcl installed before this script may be used.
++
++This script will operate with a device marketed under the name &quot;SecureCARD&quot;.
++This little device is mated with its controller. On the credit card size
++device, there is a sequence number which changes on a random basis. In order
++for you to connect you need to enter a fixed portion of your account name
++and the number which is displayed on this card device. The number must match
++the value at the controller in order for the account name to be used.
++
++The problem is that chat uses fixed response strings. In addition, the
++timing for running the script may prevent the use of a script that reads the
++value before it starts the dial sequence. What was needed was a script which
++asked the user at the user's console at the time that it is needed.
++
++This led to the use of expect.
++
++------------------------------------------------------------------------
++
++8. ppp-on-rsh
++
++This script will initiate a PPP connection to a remote machine using rsh.
++This is implemented by creating a master/slave pseudo-tty with the slave
++pointing to rsh, specifically with the 'pty' and 'notty' options of pppd.
++It is assumed that the remote machine contains some sort of trust
++mechanisms (such as ~/.rhosts, et al) to allow the local machine to
++connect via rsh as root.
++
++------------------------------------------------------------------------
++
++9. ppp-on-ssh
++
++This script will initiate a PPP connection to a remote machine using the
++secure shell, or ssh. I've only tested this on ssh 1.x, so those of you
++who are running ssh 2.x mahy need to modify the ssh options slightly.
++This is implemented by creating a master/slave pseudo-ttyt with the slave
++pointing to ssh, specifically with the 'pty' and 'notty' options of pppd.
++It is assumed that the remote machine can accept the ssh connection from
++the local host, in the sense that all ssh authentication mechanisms have
++been properly configured, so that a remote root user can open a ssh
++connection.
++
++------------------------------------------------------------------------
++
++10. options-rsh-loc &amp; options-rsh-rem
++
++These options files accompany the ppp-on-rsh script mentioned above. In
++theory, you'd want to copy the options-rsh-rem to the remote machine where
++in.rshd is running. The only extra option required on the remote machine
++options file is the 'notty' option. In addition, all ASCII control characters
++[0x00 to 0x1f], plus 0xff, are escaped. This may need to be modified
++depending on the rsh (or pseudo-tty) implementation which may differ across
++platforms, for further optimizations.
++
++------------------------------------------------------------------------
++
++11. options-ssh-loc &amp; options-ssh-rem
++
++These options files accompany the ppp-on-ssh script mentioned above. I've
++only tested this on ssh 1.x, so those of you who are running ssh 2.x need
++to modify the ssh options slightly. In theory, you'd want to copy the
++options-ssh-rem to the remote machine where sshd daemon is running. The only
++extra options required on the remote machine options file is the 'notty'
++option. In addition, all ASCII control characters [0x00 to 0x1f], plus 0xff,
++are escaped. This may need to be modified depending on the ssh (or
++pseudo-tty) implementation which may differ across platforms, for further
++optimizations.
+
+<a id="drakxtrunkmdkstage1pppscriptscallback">Added: drakx/trunk/mdk-stage1/ppp/scripts/callback</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/scripts/callback (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/scripts/callback 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,77 @@
++#!/bin/sh
++###################################################################
++#
++# Script to dial the remote system, negotiate the connection, and send
++# it the id. Then wait for the modem to disconnect. Reset the modem
++# to answer mode and wait for the system to call back.
++#
++# The telephone number and modempass are used when establishing the
++# connection to the modem.
++#
++PHONE=555-1212
++MODEMPASS=modem_identifier
++#
++# Once the modem calls back, the account name and password are used for
++# a UNIX style login operation.
++#
++ACCOUNT=my_account_name
++PASSWORD=my_password
++
++###################################################################
++#
++# Step 1. Dial the modem and negotiate the initial dialog.
++# note: the modem is configured to ignore loss of DCD at this point.
++# it is important that this be performed because the loss of DCD
++# will normally prevent system from working since 'modem' is used
++# for pppd.
++#
++# The script is terminated normally when the carrier is lost.
++#
++chat -v \
++ TIMEOUT 3 \
++ ABORT '\nBUSY\r' \
++ ABORT '\nNO ANSWER\r' \
++ ABORT '\nRINGING\r\n\r\nRINGING\r' \
++ '' AT \
++ 'OK-+++\c-OK' 'AT&amp;C0&amp;D2S0=0H0 \
++ TIMEOUT 30 \
++ OK ATDT$TELEPHONE \
++ CONNECT '' \
++ assword: $MODEMPASS \
++ &quot;\nNO CARRIER\r&quot;
++
++if [ &quot;$?&quot; = &quot;0&quot; ]; then
++
++###################################################################
++#
++# Step 2. Wait for the call back from the remote. This will wait for at most
++# 30 seconds for the call back should the first attempt fail or
++# something happen with the callback logic at the remote.
++#
++# note: when the callback occurs, the DCD setting is re-enabled.
++#
++# If some voice call should happen during this period, the system will
++# answer the telephone and then hang up on them. I realize that this is
++# rude, but there is little that this script can do.
++#
++ chat -v \
++ TIMEOUT 30 \
++ ABORT '\nVOICE\r' \
++ '\nRING\r' 'AT&amp;C1A' \
++ CONNECT '' \
++ TIMEOUT 10 \
++ ogin:--ogin: $ACCOUNT \
++ TIMEOUT 45 \
++ assword: $PASSWORD
++
++ if [ &quot;$?&quot; = &quot;0&quot; ]; then
++ exit 0
++ fi
++fi
++
++###################################################################
++#
++# The script has failed. Terminate the connection mode.
++#
++chat -v TIMEOUT 3 &quot;&quot; AT 'OK-+++\c-OK' 'AT&amp;C1&amp;D2S0=0H0' OK
++exit 1
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/scripts/callback
+___________________________________________________________________
+Added: svn:executable
+ + *
+
+<a id="drakxtrunkmdkstage1pppscriptschatcallback">Added: drakx/trunk/mdk-stage1/ppp/scripts/chat-callback</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/scripts/chat-callback (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/scripts/chat-callback 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,98 @@
++# =====================================================================================
++# Chat script to dial our Company PPP account.
++# They uses a call-back system to identify us and to reverse
++# charge the call cost.
++# =====================================================================================
++#
++ECHO OFF
++# All the usual abort strings
++ABORT &quot;NO CARRIER&quot;
++ABORT &quot;VOICE&quot;
++ABORT &quot;BUSY&quot;
++ABORT &quot;NO DIALTONE&quot;
++ABORT &quot;NO ANSWER&quot;
++#
++# If calling outside allowed time we get this:
++#
++ABORT &quot;Access denied&quot;
++#
++# Modem initialisation stuff
++#
++TIMEOUT 5
++SAY &quot;Initialising modem ...\n&quot;
++'' ATE1
++'OK\r\n' ATS0=1S11=60X4&amp;K4S42.1=1
++#
++# Now dial our ISP and wait for connection
++#
++SAY &quot;Dialling our ISP ...\n&quot;
++'OK\r\n' ATDT09834657
++TIMEOUT 60
++CONNECT \c
++SAY &quot;Connected ...\n&quot;
++#
++# This is the first stage login, we identify ourself so that the remote
++# system will agree to call us back.
++#
++TIMEOUT 30
++SAY &quot;Sending Callback login ID ...\n&quot;
++name:-BREAK-name: callme
++#
++# From now on, we must assume no carrier is normal as well
++# as receiving a HANGUP signal because it will be the
++# case if our ISP clears the call to call us back.
++#
++CLR_ABORT &quot;NO CARRIER&quot;
++HANGUP OFF
++#
++ABORT &quot;Invalid&quot;
++#
++# Now send password and wait to see what happens
++#
++SAY &quot;Sending Callback password ...\n&quot;
++word:--word: xvsgsgs
++&quot;You will be&quot; \c
++#
++# What can happen now is:
++# either: we get &quot;You will be called back...&quot; which is the successful case
++# or: we get &quot;Invalid login&quot; and we abort (bad login ID or password)
++# or: we get &quot;NO CARRIER&quot; because of an error, this will not abort
++# and we will time out after 30 seconds
++# or: we get nothing and we will time out after 30 seconds
++#
++#
++# We reach here if we got &quot;You will be called back...&quot;
++#
++CLR_ABORT &quot;Invalid&quot;
++SAY &quot;Now waiting for Call back ...\n&quot;
++#
++# The remote system will now hangup and we will get both &quot;NO CARRIER&quot;
++# and a hangup signal which are ignored. We now wait for a connection
++# for up to 120 seconds. What happens here if somebody else calls before
++# the remote system is a bit dangerous:
++#
++# If a malicious user connects and says 'name:', he will see 'PPPuser'
++# If he then says 'word:' he will see the passowrd 'blipblop'. I may not
++# know to which systems these belong to, though. It is up to you to consider
++# that case and decide wether the risk is too big or not ....
++#
++TIMEOUT 120
++&quot;CONNECT&quot; \c
++#
++# We have been called, re-arm ABORT on NO CARRIER and normal hangup signal
++# behaviour
++#
++HANGUP ON
++ABORT &quot;NO CARRIER&quot;
++#
++# Second stage login in order to start PPP
++#
++SAY &quot;Remote system called back, logging in ...\n&quot;
++SAY &quot;Sending login ID ...\n&quot;
++name:-BREAK-name: PPPuser
++SAY &quot;Sending password ...\n&quot;
++word:--word: blipblop
++SAY &quot;Asking to start PPP ...\n&quot;
++'CnetSrv' &quot;ppp default&quot;
++&quot;Entering PPP mode&quot; \c
++SAY &quot;ISP PPP started ...\n&quot;
+
+<a id="drakxtrunkmdkstage1pppscriptschatchatREADME">Added: drakx/trunk/mdk-stage1/ppp/scripts/chatchat/README</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/scripts/chatchat/README (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/scripts/chatchat/README 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,134 @@
++v 0.1 gpk@onramp.net 3/27/99
++
++I Intro
++
++ This document covers the use of the modified &quot;chat&quot; program and its
++adjunct &quot;chatchat&quot; to login using the Security Dynamics SecurID card
++on a linux system.
++
++ This set of files comprises a modified version of the chat program
++(the one distributed with ppp-2.3.5) and a new program called chatchat
++that allows you to supply data from the keyboard to the chat program.
++
++ The SecurID card generates passwords that have a lifetime of one
++minute and are used as a first layer in dial up security. The only
++software I know of for this card is for windows, so I wrote my own.
++This software allows you to type in the time-sensitive password right
++when your chat script is asked to supply the passcode by the remote
++system.
++
++
++II How It Works
++
++ This version of chat his an additional command that can be put into
++its options that says &quot;Don't reply with this string. Open this pipe,
++read the contents, and reply with that instead.&quot; Chatchat creates a
++pipe and lets you type your passcode into it, then chat picks that up
++and sends it out just as though the passcode was hardcoded into the
++options.
++
++
++III Installation
++
++ I've provided intel binaries and source code the the modified chat
++program and the chatchat program. I'll recommend that you copy the
++chat.c program into your ppp-2.3.5/chat directory (save your original
++chat.c program first!) and re-make it using the Makefile that comes
++with chat. Copy the new chat somewhere into your path. (On my system
++chat lives in /usr/sbin/chat, so I've copied the modified one into
++/usr/sbin/chat.new and changed my dial in script to call chat.new
++instead of chat.
++
++ Second, compile chatchat.c and install it somewhere in your path:
++
++ gcc -g -o chatchat chatchat.c
++ cp chatchat /usr/sbin
++
++ Third, modify your chat script to use the chatchat program. Mine
++looks something like this:
++
++
++ --------------------
++
++#!/bin/sh
++#
++# This is part 2 of the ppp-on script. It will perform the connection
++# protocol for the desired connection.
++# use atm0 to turn down the speaker volume on my sportster x2 voice modem
++# gpk 11/2/97
++
++exec /usr/sbin/chat.new -V -v \
++ ABORT &quot;BUSY&quot; \
++ ABORT &quot;NO DIAL TONE&quot; \
++ ABORT &quot;NO ANSWER&quot; \
++ TIMEOUT 50 \
++ &quot;&quot; &quot;atm0&quot; \
++ OK ATDT$TELEPHONE \
++ CONNECT '' \
++ name: \\da0xxxxxx \
++ word: @/var/tmp/p \
++ compress. ''
++
++
++ -----------------------
++
++ This is a standard chat script:
++
++* abort if the modem is busy, you don't get a dial tone, no one
++ answers, or 50 seconds elapses.
++
++* use atm0 to mute the modem
++
++* dial the modem, when it connects, wait to be asked for account name
++
++* when we see &quot;name:&quot; prompt, delay briefly then respond with your
++ account name (fill in your account name)
++
++Now we get to the new stuff:
++
++* when we see &quot;word:&quot; in the password prompt, instead of responding
++ with &quot;@/var/tmp/p&quot;, the modified chat program will open the pipe
++ /var/tmp/p, read the passcode out of there, and send it
++
++* when we see &quot;compress.&quot; (the last word before ppp starts), reply
++ with nothing. The script ends and we start ppp.
++
++Note:
++
++* Make sure there is some whitespace between the filename and the \.
++
++
++IV Usage
++
++ To use this install the modified chat and chatchat programs, and
++modify your chat script similar to the above. Before you dial in,
++start that chatchat program giving it the same pipe as in your config
++file. In the above case:
++
++chatchat /var/tmp/p
++
++ Wait until you have one or two tick marks left on your card's
++current number, then start your dial up process that eventually calls
++chat. When chat goes to open and read the pipe, chatchat will prompt:
++
++
++type PIN into SecurID card and
++ enter resulting passcode:
++
++ At that point, type your PIN number into your Securid card, press
++the diamond, and type the resulting numbers in as your passcode. If
++you've left the -V -v options on your chat command you'll see
++everything so out, otherwise it works silently.
++
++ If you type the number wrong or run out of time, the server will
++respond with an authentication failure. In that case you will have to
++hang up and start again. I don't know how to build a conditional script
++that says either expect &quot;compress&quot; next, but if you see &quot;name:&quot; again,
++do this instead.
++
++
++V Additional Information
++
++ You can obtain additional information about chat and ppp from the
++man pages for chat and pppd, as well as the PPP-HOWTO.
++
+
+<a id="drakxtrunkmdkstage1pppscriptschatchatchatchatc">Added: drakx/trunk/mdk-stage1/ppp/scripts/chatchat/chatchat.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/scripts/chatchat/chatchat.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/scripts/chatchat/chatchat.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,409 @@
++/* *************************************************************************
++* NAME: chatchat.c
++*
++* DESCRIPTION:
++*
++* This program creates a pipe for the chat process to read. The user
++* can supply information (like a password) that will be picked up
++* by chat and sent just like the regular contents of a chat script.
++*
++* Usage is:
++*
++* chatchat &lt;filename&gt;
++*
++* where &lt;filename&gt; matches the option given in the chat script.
++*
++* for instance the chat script fragment:
++*
++* ...
++* name: \\dmyname \
++* word: @/var/tmp/p \
++* ...
++* ^
++* (note: leave some whitespace after the filename)
++*
++* expect &quot;name:&quot;, reply with a delay followed by &quot;myname&quot;
++* expect &quot;word:&quot;, reply with the data read from the pipe /var/tmp/p
++*
++* the matching usage of chatchat would be:
++*
++* chatchat /var/tmp/p
++*
++* eg:
++*
++* $chatchat /var/tmp/p
++* ...
++* some other process eventually starts:
++* chat ...
++* chat parses the &quot;@/var/tmp/p&quot; option and opens
++* /var/tmp/p
++* (chatchat prompts:)
++*
++* type PIN into SecurID card
++* enter resulting passcode: [user inputs something]
++*
++* chat reads /var/tmp/p &amp; gets what the
++* user typed at chatchat's &quot;enter string&quot; prompt
++* chat removes the pipe file
++* chat sends the user's input as a response in
++* place of &quot;@/var/tmp/p&quot;
++*
++* PROCESS:
++*
++* gcc -g -o chatchat chatchat.c
++*
++*
++* GLOBALS: none
++*
++* REFERENCES:
++*
++* see the man pages and documentation that come with the 'chat' program
++* (part of the ppp package). you will need to use the modified chat
++* program that accepts the '@' operator.
++*
++* LIMITATIONS:
++*
++* REVISION HISTORY:
++*
++* STR Description Author
++*
++* 23-Mar-99 initial coding gpk
++* 12-May-99 unlink the pipe after closing paulus
++*
++* TARGET: ANSI C
++* This program is in the public domain.
++*
++*
++* ************************************************************************* */
++
++
++
++
++#include &lt;sys/time.h&gt;
++#include &lt;stdio.h&gt;
++#include &lt;sys/types.h&gt;
++#include &lt;sys/stat.h&gt;
++#include &lt;fcntl.h&gt;
++#include &lt;unistd.h&gt;
++#include &lt;string.h&gt;
++
++/* MAXINPUT - the data typed into chatchat must be fewer */
++/* characters than this. */
++
++#define MAXINPUT 80
++
++
++
++
++
++
++/* *************************************************************************
++
++
++ NAME: main
++
++
++ USAGE:
++
++ int argc;
++ char * argv[];
++
++ main(argc, argv[]);
++
++ returns: int
++
++ DESCRIPTION:
++ if the pipe file name is given on the command line,
++ create the pipe, prompt the user and put whatever
++ is typed into the pipe.
++
++ returns -1 on error
++ else # characters entered
++ REFERENCES:
++
++ LIMITATIONS:
++
++ GLOBAL VARIABLES:
++
++ accessed: none
++
++ modified: none
++
++ FUNCTIONS CALLED:
++
++ REVISION HISTORY:
++
++ STR Description of Revision Author
++
++ 25-Mar-99 initial coding gpk
++
++ ************************************************************************* */
++
++int main(int argc, char * argv[])
++{
++ int retval;
++
++ int create_and_write_pipe(char * pipename);
++
++ if (argc != 2)
++ {
++ fprintf(stderr, &quot;usage: %s pipename\n&quot;, argv[0]);
++ retval = -1;
++ }
++ else
++ {
++ retval = create_and_write_pipe(argv[1]);
++ }
++ return (retval);
++}
++
++
++
++
++/* *************************************************************************
++
++
++ NAME: create_and_write_pipe
++
++
++ USAGE:
++
++ int some_int;
++ char * pipename;
++
++ some_int = create_and_write_pipe(pipename);
++
++ returns: int
++
++ DESCRIPTION:
++ given the pipename, create the pipe, open it,
++ prompt the user for a string to put into the
++ pipe, write the string, and close the pipe
++
++ on error, print out an error message and return -1
++
++ returns -1 on error
++ else #bytes written into the pipe
++ REFERENCES:
++
++ LIMITATIONS:
++
++ GLOBAL VARIABLES:
++
++ accessed: none
++
++ modified: none
++
++ FUNCTIONS CALLED:
++
++ REVISION HISTORY:
++
++ STR Description of Revision Author
++
++ 25-Mar-99 initial coding gpk
++ 12-May-99 remove pipe after closing paulus
++
++ ************************************************************************* */
++
++int create_and_write_pipe(char * pipename)
++{
++ int retval, created, pipefd, nread, nwritten;
++ char input[MAXINPUT];
++ char errstring[180];
++
++ int create_pipe(char * pipename);
++ int write_to_pipe(int pipefd, char * input, int nchar);
++
++ created = create_pipe(pipename);
++
++ if (-1 == created)
++ {
++ sprintf(errstring, &quot;unable to create pipe '%s'&quot;, pipename);
++ perror(errstring);
++ retval = -1;
++ }
++ else
++ {
++
++ /* note: this open won't succeed until chat has the pipe */
++ /* open and ready to read. this makes for nice timing. */
++
++ pipefd = open(pipename, O_WRONLY);
++
++ if (-1 == pipefd)
++ {
++ sprintf(errstring, &quot;unable to open pipe '%s'&quot;, pipename);
++ perror(errstring);
++ retval = -1;
++ }
++ else
++ {
++ fprintf(stderr, &quot;%s \n %s&quot;,
++ &quot;type PIN into SecurID card and&quot;,
++ &quot;enter resulting passcode:&quot;);
++ nread = read(STDIN_FILENO, (void *)input, MAXINPUT);
++
++
++ if (0 &gt;= nread)
++ {
++ perror(&quot;unable to read from stdin&quot;);
++ retval = -1;
++ }
++ else
++ {
++ /* munch off the newline character, chat supplies */
++ /* a return when it sends the string out. */
++ input[nread -1] = 0;
++ nread--;
++ nwritten = write_to_pipe(pipefd, input, nread);
++ /* printf(&quot;wrote [%d]: '%s'\n&quot;, nwritten, input); */
++ retval = nwritten;
++ }
++ close(pipefd);
++
++ /* Now make the pipe go away. It won't actually go away
++ completely until chat closes it. */
++ if (unlink(pipename) &lt; 0)
++ perror(&quot;Warning: couldn't remove pipe&quot;);
++ }
++ }
++ return(retval);
++}
++
++
++
++
++
++
++
++/* *************************************************************************
++
++
++ NAME: create_pipe
++
++
++ USAGE:
++
++ int some_int;
++ char * pipename;
++
++ some_int = create_pipe(pipename);
++
++ returns: int
++
++ DESCRIPTION:
++ create a pipe of the given name
++
++ if there is an error (like the pipe already exists)
++ print an error message and return
++
++ return -1 on failure else success
++
++ REFERENCES:
++
++ LIMITATIONS:
++
++ GLOBAL VARIABLES:
++
++ accessed: none
++
++ modified: none
++
++ FUNCTIONS CALLED:
++
++ REVISION HISTORY:
++
++ STR Description of Revision Author
++
++ 25-Mar-99 initial coding gpk
++
++ ************************************************************************* */
++
++int create_pipe(char * pipename)
++{
++ mode_t old_umask;
++ int created;
++
++ /* hijack the umask temporarily to get the mode I want */
++ /* on the pipe. */
++
++ old_umask = umask(000);
++
++ created = mknod(pipename, S_IFIFO | S_IRWXU | S_IWGRP | S_IWOTH,
++ (dev_t)NULL);
++
++ /* now restore umask. */
++
++ (void)umask(old_umask);
++
++ if (-1 == created)
++ {
++ perror(&quot;unable to create pipe&quot;);
++ }
++
++ return(created);
++}
++
++
++
++
++
++
++/* *************************************************************************
++
++
++ NAME: write_to_pipe
++
++
++ USAGE:
++
++ int some_int;
++ int pipefd;
++ char * input;
++ int nchar;
++
++ some_int = write_to_pipe(pipefd, input, nchar);
++
++ returns: int
++
++ DESCRIPTION:
++ write nchars of data from input to pipefd
++
++ on error print a message to stderr
++
++ return -1 on error, else # bytes written
++ REFERENCES:
++
++ LIMITATIONS:
++
++ GLOBAL VARIABLES:
++
++ accessed: none
++
++ modified: none
++
++ FUNCTIONS CALLED:
++
++ REVISION HISTORY:
++
++ STR Description of Revision Author
++
++ 25-Mar-99 initial coding gpk
++ 12-May-99 don't write count word first paulus
++
++ ************************************************************************* */
++
++int write_to_pipe(int pipefd, char * input, int nchar)
++{
++ int nwritten;
++
++ /* nwritten = write(pipefd, (void *)&amp;nchar, sizeof(nchar)); */
++ nwritten = write(pipefd, (void *)input, nchar);
++
++ if (-1 == nwritten)
++ {
++ perror(&quot;unable to write to pipe&quot;);
++ }
++
++ return(nwritten);
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/scripts/chatchat/chatchat.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pppscriptsipdownlocaladd">Added: drakx/trunk/mdk-stage1/ppp/scripts/ip-down.local.add</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/scripts/ip-down.local.add (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/scripts/ip-down.local.add 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,20 @@
++
++#
++# This sample code shows you one way to modify your setup to allow automatic
++# configuration of your resolv.conf for peer supplied DNS addresses when using
++# the `usepeerdns' option.
++#
++# In my case I just added this to my /etc/ppp/ip-down.local script. You may need to
++# create an executable script if one does not exist.
++#
++# Nick Walker (nickwalker@email.com)
++#
++
++if [ -n &quot;$USEPEERDNS&quot; -a -f /etc/ppp/resolv.conf ]; then
++ if [ -f /etc/ppp/resolv.prev ]; then
++ cp -f /etc/ppp/resolv.prev /etc/resolv.conf
++ else
++ rm -f /etc/resolv.conf
++ fi
++fi
++
+
+<a id="drakxtrunkmdkstage1pppscriptsipuplocaladd">Added: drakx/trunk/mdk-stage1/ppp/scripts/ip-up.local.add</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/scripts/ip-up.local.add (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/scripts/ip-up.local.add 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,24 @@
++
++#
++# This sample code shows you one way to modify your setup to allow automatic
++# configuration of your resolv.conf for peer supplied DNS addresses when using
++# the `usepeerdns' option.
++#
++# In my case I just added this to my /etc/ppp/ip-up.local script. You may need to
++# create an executable script if one does not exist.
++#
++# Nick Walker (nickwalker@email.com)
++#
++
++if [ -n &quot;$USEPEERDNS&quot; -a -f /etc/ppp/resolv.conf ]; then
++ rm -f /etc/ppp/resolv.prev
++ if [ -f /etc/resolv.conf ]; then
++ cp /etc/resolv.conf /etc/ppp/resolv.prev
++ grep domain /etc/ppp/resolv.prev &gt; /etc/resolv.conf
++ grep search /etc/ppp/resolv.prev &gt;&gt; /etc/resolv.conf
++ cat /etc/ppp/resolv.conf &gt;&gt; /etc/resolv.conf
++ else
++ cp /etc/ppp/resolv.conf /etc
++ fi
++fi
++
+
+<a id="drakxtrunkmdkstage1pppscriptsoptionsrshloc">Added: drakx/trunk/mdk-stage1/ppp/scripts/options-rsh-loc</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/scripts/options-rsh-loc (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/scripts/options-rsh-loc 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1 @@
++debug asyncmap FFFFFFFF escape FF kdebug 0 noipdefault nodefaultroute noauth mtu 1460
+
+<a id="drakxtrunkmdkstage1pppscriptsoptionsrshrem">Added: drakx/trunk/mdk-stage1/ppp/scripts/options-rsh-rem</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/scripts/options-rsh-rem (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/scripts/options-rsh-rem 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1 @@
++notty debug asyncmap FFFFFFFF escape FF kdebug 0 noipdefault nodefaultroute noauth mtu 1460
+
+<a id="drakxtrunkmdkstage1pppscriptsoptionssshloc">Added: drakx/trunk/mdk-stage1/ppp/scripts/options-ssh-loc</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/scripts/options-ssh-loc (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/scripts/options-ssh-loc 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1 @@
++debug asyncmap FFFFFFFF escape FF kdebug 0 noipdefault nodefaultroute noauth mtu 1400
+
+<a id="drakxtrunkmdkstage1pppscriptsoptionssshrem">Added: drakx/trunk/mdk-stage1/ppp/scripts/options-ssh-rem</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/scripts/options-ssh-rem (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/scripts/options-ssh-rem 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1 @@
++notty debug asyncmap FFFFFFFF escape FF kdebug 0 noipdefault nodefaultroute noauth mtu 1400
+
+<a id="drakxtrunkmdkstage1pppscriptspppoff">Added: drakx/trunk/mdk-stage1/ppp/scripts/ppp-off</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/scripts/ppp-off (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/scripts/ppp-off 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,34 @@
++#!/bin/sh
++######################################################################
++#
++# Determine the device to be terminated.
++#
++if [ &quot;$1&quot; = &quot;&quot; ]; then
++ DEVICE=ppp0
++else
++ DEVICE=$1
++fi
++
++######################################################################
++#
++# If the ppp0 pid file is present then the program is running. Stop it.
++if [ -r /var/run/$DEVICE.pid ]; then
++ kill -INT `cat /var/run/$DEVICE.pid`
++#
++# If the kill did not work then there is no process running for this
++# pid. It may also mean that the lock file will be left. You may wish
++# to delete the lock file at the same time.
++ if [ ! &quot;$?&quot; = &quot;0&quot; ]; then
++ rm -f /var/run/$DEVICE.pid
++ echo &quot;ERROR: Removed stale pid file&quot;
++ exit 1
++ fi
++#
++# Success. Let pppd clean up its own junk.
++ echo &quot;PPP link to $DEVICE terminated.&quot;
++ exit 0
++fi
++#
++# The ppp process is not running for ppp0
++echo &quot;ERROR: PPP link is not active on $DEVICE&quot;
++exit 1
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/scripts/ppp-off
+___________________________________________________________________
+Added: svn:executable
+ + *
+
+<a id="drakxtrunkmdkstage1pppscriptspppon">Added: drakx/trunk/mdk-stage1/ppp/scripts/ppp-on</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/scripts/ppp-on (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/scripts/ppp-on 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,36 @@
++#!/bin/sh
++#
++# Script to initiate a ppp connection. This is the first part of the
++# pair of scripts. This is not a secure pair of scripts as the codes
++# are visible with the 'ps' command. However, it is simple.
++#
++# These are the parameters. Change as needed.
++TELEPHONE=555-1212 # The telephone number for the connection
++ACCOUNT=george # The account name for logon (as in 'George Burns')
++PASSWORD=gracie # The password for this account (and 'Gracie Allen')
++LOCAL_IP=0.0.0.0 # Local IP address if known. Dynamic = 0.0.0.0
++REMOTE_IP=0.0.0.0 # Remote IP address if desired. Normally 0.0.0.0
++NETMASK=255.255.255.0 # The proper netmask if needed
++#
++# Export them so that they will be available at 'ppp-on-dialer' time.
++export TELEPHONE ACCOUNT PASSWORD
++#
++# This is the location of the script which dials the phone and logs
++# in. Please use the absolute file name as the $PATH variable is not
++# used on the connect option. (To do so on a 'root' account would be
++# a security hole so don't ask.)
++#
++DIALER_SCRIPT=/etc/ppp/ppp-on-dialer
++#
++# Initiate the connection
++#
++# I put most of the common options on this command. Please, don't
++# forget the 'lock' option or some programs such as mgetty will not
++# work. The asyncmap and escape will permit the PPP link to work with
++# a telnet or rlogin connection. You are welcome to make any changes
++# as desired. Don't use the 'defaultroute' option if you currently
++# have a default route to an ethernet gateway.
++#
++exec /usr/sbin/pppd debug lock modem crtscts /dev/ttyS0 38400 \
++ asyncmap 20A0000 escape FF kdebug 0 $LOCAL_IP:$REMOTE_IP \
++ noipdefault netmask $NETMASK defaultroute connect $DIALER_SCRIPT
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/scripts/ppp-on
+___________________________________________________________________
+Added: svn:executable
+ + *
+
+<a id="drakxtrunkmdkstage1pppscriptspppondialer">Added: drakx/trunk/mdk-stage1/ppp/scripts/ppp-on-dialer</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/scripts/ppp-on-dialer (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/scripts/ppp-on-dialer 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,17 @@
++#!/bin/sh
++#
++# This is part 2 of the ppp-on script. It will perform the connection
++# protocol for the desired connection.
++#
++exec chat -v \
++ TIMEOUT 3 \
++ ABORT '\nBUSY\r' \
++ ABORT '\nNO ANSWER\r' \
++ ABORT '\nRINGING\r\n\r\nRINGING\r' \
++ '' \rAT \
++ 'OK-+++\c-OK' ATH0 \
++ TIMEOUT 30 \
++ OK ATDT$TELEPHONE \
++ CONNECT '' \
++ ogin:--ogin: $ACCOUNT \
++ assword: $PASSWORD
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/scripts/ppp-on-dialer
+___________________________________________________________________
+Added: svn:executable
+ + *
+
+<a id="drakxtrunkmdkstage1pppscriptsppponrsh">Added: drakx/trunk/mdk-stage1/ppp/scripts/ppp-on-rsh</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/scripts/ppp-on-rsh (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/scripts/ppp-on-rsh 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,72 @@
++#!/bin/sh
++#
++# A sample script to establish PPP session(s) via rsh
++#
++# Adi Masputra &lt;adi.masputra@sun.com&gt;
++# Jan 24, 2000
++#
++
++#
++# You'd definitely want to change the following addresses to suit
++# your network configuration
++#
++LOC_IP=10.0.0.1
++REM_IP=10.0.0.2
++NETMASK=255.255.0.0
++
++export LOC_IP REM_IP
++
++#
++# This is the remote peer where in.rshd is running, either
++# its hostname or IP address
++#
++PPPD_RHOST=myremotehost
++
++#
++# For this example, we assume that pppd on both local and remote
++# machines reside in the same place, /usr/local/bin/pppd
++#
++PPPD_LOC=/usr/local/bin/pppd
++
++#
++# The location of local options file (where rsh client is running).
++# Note that the sample options file included in the distribution
++# may need further customizations, depending on your needs. The 'noauth'
++# option specified in the file is there to simplify the example. In
++# reality, you'd probably want to remove such option.
++#
++PPPD_LOC_OPT=/etc/ppp/options-rsh-loc
++
++#
++# The location of remote options file (where in.rshd daemon is running).
++# Note that the sample options file included in the distribution
++# may need further customizations, depending on your needs. The 'noauth'
++# option specified in the file is there to simplify the example. In
++# reality, you'd probably want to remove such option. Also note that
++# the remote options file need to include the 'notty' option for this
++# to work
++#
++PPPD_REM_OPT=/etc/ppp/options-rsh-rem
++
++#
++# The location of rsh client on the local machine
++#
++RSH_LOC=/bin/rsh
++
++export PPPD_LOC PPPD_LOC_OPT PPPD_REM_OPT PPPD_RHOST RSH_LOC
++
++#
++# Uncomment the following to enable IPv6, note that the IPv6 support
++# needs to be enabled during compilation
++#
++# PPPD_IPV6='+ipv6 ipv6cp-use-ipaddr'
++export PPPD_IPV6
++
++#
++# And execute pppd with the pty option, specifying rsh client as the
++# slave side of the pseduo-tty master/slave pair.
++#
++exec $PPPD_LOC \
++ pty '$RSH_LOC $PPPD_RHOST $PPPD_LOC $REM_IP:$LOC_IP $PPPD_IPV6 file $PPPD_REM_OPT' \
++ $LOC_IP:$REM_IP netmask $NETMASK $PPPD_IPV6 file $PPPD_LOC_OPT
++
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/scripts/ppp-on-rsh
+___________________________________________________________________
+Added: svn:executable
+ + *
+
+<a id="drakxtrunkmdkstage1pppscriptsppponssh">Added: drakx/trunk/mdk-stage1/ppp/scripts/ppp-on-ssh</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/scripts/ppp-on-ssh (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/scripts/ppp-on-ssh 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,76 @@
++#!/bin/sh
++#
++# A sample script to establish PPP session(s) via SSH 1.x
++#
++# Adi Masputra &lt;adi.masputra@sun.com&gt;
++# Jan 24, 2000
++#
++
++#
++# You'd definitely want to change the following addresses to suit
++# your network configuration
++#
++LOC_IP=10.0.0.1
++REM_IP=10.0.0.2
++NETMASK=255.255.0.0
++
++export LOC_IP REM_IP
++
++#
++# This is the remote peer where sshd is running, either
++# its hostname or IP address
++#
++PPPD_RHOST=myremotehost
++
++#
++# For this example, we assume that pppd on both local and remote
++# machines reside in the same place, /usr/local/bin/pppd
++#
++PPPD_LOC=/usr/local/bin/pppd
++
++#
++# The location of local options file (where ssh client is running).
++# Note that the sample options file included in the distribution
++# may need further customizations, depending on your needs. The 'noauth'
++# option specified in the file is there to simplify the example, although
++# some may choose to have it there and rely on ssh authentication
++# instead.
++#
++PPPD_LOC_OPT=/etc/ppp/options-ssh-loc
++
++#
++# The location of remote options file (where sshd daemon is running)
++# Note that the sample options file included in the distribution
++# may need further customizations, depending on your needs. The 'noauth'
++# option specified in the file is there to simplify the example, although
++# some may choose to have it there and rely on ssh authentication
++# instead. Also note that the remote options file need to include the 'notty'
++# options for this to work.
++#
++PPPD_REM_OPT=/etc/ppp/options-ssh-rem
++
++#
++# The location of ssh client on the local machine
++#
++SSH_LOC=/usr/local/bin/ssh
++
++export PPPD_LOC PPPD_LOC_OPT PPPD_REM_OPT PPPD_RHOST SSH_LOC
++
++#
++# Uncomment the following to enable IPv6, note that the IPv6 support
++# needs to be enabled during compilation
++#
++# PPPD_IPV6='+ipv6 ipv6cp-use-ipaddr'
++export PPPD_IPV6
++
++#
++# And execute pppd with the pty option, specifying ssh client as the
++# slave side of the pseudo-tty master/slave pair. Note that on this example,
++# ssh has been compiled to allow NULL encryption (thus the '-c none' option),
++# but in reality, you'd probably want to specify the encryption algorithm.
++# See the man page of ssh(1) for details.
++#
++exec $PPPD_LOC \
++ pty '$SSH_LOC -c none $PPPD_RHOST $PPPD_LOC $REM_IP:$LOC_IP $PPPD_IPV6 file $PPPD_REM_OPT' \
++ $LOC_IP:$REM_IP netmask $NETMASK $PPPD_IPV6 file $PPPD_LOC_OPT
++
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/scripts/ppp-on-ssh
+___________________________________________________________________
+Added: svn:executable
+ + *
+
+<a id="drakxtrunkmdkstage1pppscriptsredialer">Added: drakx/trunk/mdk-stage1/ppp/scripts/redialer</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/scripts/redialer (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/scripts/redialer 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,96 @@
++#!/bin/sh
++###################################################################
++#
++# These parameters control the attack dialing sequence.
++#
++# Maximum number of attempts to reach the telephone number(s)
++MAX_ATTEMPTS=10
++
++# Delay between each of the attempts. This is a parameter to sleep
++# so use &quot;15s&quot; for 15 seconds, &quot;1m&quot; for 1 minute, etc.
++SLEEP_DELAY=15s
++
++###################################################################
++#
++# This is a list of telephone numbers. Add new numbers if you wish
++# and see the function 'callall' below for the dial process.
++PHONE1=555-1212
++PHONE2=411
++
++###################################################################
++#
++# If you use the ppp-on script, then these are passed to this routine
++# automatically. There is no need to define them here. If not, then
++# you will need to set the values.
++#
++ACCOUNT=my_account_name
++PASSWORD=my_password
++
++###################################################################
++#
++# Function to initialize the modem and ensure that it is in command
++# state. This may not be needed, but it doesn't hurt.
++#
++function initialize
++{
++ chat -v TIMEOUT 3 '' AT 'OK-+++\c-OK'
++ return
++}
++
++###################################################################
++#
++# Script to dial a telephone
++#
++function callnumber
++{
++chat -v \
++ ABORT '\nBUSY\r' \
++ ABORT '\nNO ANSWER\r' \
++ ABORT '\nRINGING\r\n\r\nRINGING\r' \
++ '' ATDT$1 \
++ CONNECT '' \
++ ogin:--ogin: $ACCOUNT \
++ assword: $PASSWORD
++#
++# If the connection was successful then end the whole script with a
++# success.
++#
++ if [ &quot;$?&quot; = &quot;0&quot; ]; then
++ exit 0
++ fi
++
++ return
++}
++
++###################################################################
++#
++# Script to dial any telephone number
++#
++function callall
++{
++# echo &quot;dialing attempt number: $1&quot; &gt;/dev/console
++ callnumber $PHONE1
++# callnumber $PHONE2
++}
++
++###################################################################
++#
++# Initialize the modem to ensure that it is in the command state
++#
++initialize
++if [ ! &quot;$?&quot; = &quot;0&quot; ]; then
++ exit 1
++fi
++
++#
++# Dial telephone numbers until one answers
++#
++attempt=0
++while : ; do
++ attempt=`expr $attempt + 1`
++ callall $attempt
++ if [ &quot;$attempt&quot; = &quot;$MAX_ATTEMPTS&quot; ]; then
++ exit 1
++ fi
++ sleep &quot;$SLEEP_DELAY&quot;
++done
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/scripts/redialer
+___________________________________________________________________
+Added: svn:executable
+ + *
+
+<a id="drakxtrunkmdkstage1pppscriptssecurecard">Added: drakx/trunk/mdk-stage1/ppp/scripts/secure-card</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/scripts/secure-card (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/scripts/secure-card 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,111 @@
++#!/usr/local/bin/expect -f
++#
++# This script was written by Jim Isaacson &lt;jcisaac@crl.com&gt;. It is
++# designed to work as a script to use the SecureCARD(tm) device. This
++# little device is mated with a central controller. The number displayed
++# on this card changes every so often and you need to enter the number
++# along with your user account name in order to gain access. Since chat
++# is based upon fixed strings this procedure will not work with chat.
++#
++# It is included by permission. An excellent reference for the expect
++# program used by this script is in the book:
++#
++# &quot;Exploring Expect&quot;
++# by Don Libes
++# Published by O'Rielly and Associates
++#
++
++send_user &quot;hello, starting ppp\n&quot;
++
++system &quot;stty 19200 -echoe -echo raw &lt; /dev/cua3 &gt; /dev/cua3&quot;
++
++#
++# These are the parameters for the program.
++#
++set user Pxxxxxx
++set password xxxxxxx
++set modem /dev/cua3
++set dialup &lt;put phone number here&gt;
++set timeout 60
++
++spawn -noecho -open [open $modem &quot;r+&quot;]
++
++send &quot;AT&amp;F\r&quot;
++expect &quot;OK&quot;
++
++send &quot;ATe0v1x4&amp;c1q0&amp;d2&amp;c1s2=128s0=0DT $dialup\r&quot;
++set timeout 15
++set counter 0
++
++set still_connecting 1
++
++expect {
++ -re &quot;.*CONNECT.*\n&quot; {
++ set timeout 5
++ set still_connecting 0
++ continue -expect
++ }
++ -re &quot;.*CONNECT.*\r&quot; {
++ set timeout 5
++ set still_connecting 0
++ continue -expect
++ }
++ -re &quot;.*NO.*CARRIER&quot; {
++ send_user &quot;Failed to Connect, exiting...\n&quot;
++ exit
++ }
++ -re &quot;.*NO.*DIAL.*TONE&quot; {
++ send_user &quot;Failed to Connect, exiting...\n&quot;
++ exit
++ }
++ -re &quot;.*VOICE&quot; {
++ send_user &quot;Failed to Connect, exiting...\n&quot;
++ exit
++ }
++ -re &quot;.*sscode:.*\n&quot; {
++ continue -expect
++ }
++ -re &quot;.*sscode:&quot; {
++ set timeout -1
++ expect_user -re &quot;(.*)\n&quot;
++ send &quot;$expect_out(1,string)\r&quot;
++ set timeout 30
++ continue -expect
++ }
++ -re &quot;.*Next.*:&quot; {
++ set timeout -1
++ expect_user -re &quot;(.*)\n&quot;
++ send &quot;$expect_out(1,string)\r&quot;
++ set timeout 30
++ continue -expect
++ }
++ -re &quot;Your.*&quot; {
++ send &quot;\r&quot;
++ continue -expect
++ }
++ -re &quot;.*in:&quot; {
++ send &quot;$user\r&quot;
++ continue -expect
++ }
++ -re &quot;.*word:&quot; {
++ send &quot;$password\r&quot;
++ }
++
++ timeout {
++ if { $still_connecting &gt; 0 } {
++ continue -expect
++ }
++ set timeout 15
++ send &quot;\r&quot;
++ incr counter
++ if { $counter &gt; 8 } {
++ send_user &quot;Cannot Connect\n&quot;
++ exit
++ } else {
++ continue -expect
++ }
++ }
++}
++
++overlay -0 $spawn_id -1 $spawn_id pppd /dev/cua3 19200 192.111.187.215: \
++ crtscts modem defaultroute debug
+
+<a id="drakxtrunkmdkstage1pppsolarisMakedefs">Added: drakx/trunk/mdk-stage1/ppp/solaris/Makedefs</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/solaris/Makedefs (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/solaris/Makedefs 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,16 @@
++#
++# defines common to several Makefiles
++#
++
++INSTALL= /usr/sbin/install
++
++BINDIR = /usr/local/bin
++MANDIR = /usr/local/man
++ETCDIR = /etc/ppp
++
++COPTS = -O -Xa
++
++# For compiling with gcc, comment out the COPTS definition above and
++# uncomment the next 2 definitions.
++#CC = gcc
++#COPTS = -O2
+
+<a id="drakxtrunkmdkstage1pppsolarisMakedefssol2">Added: drakx/trunk/mdk-stage1/ppp/solaris/Makedefs.sol2</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/solaris/Makedefs.sol2 (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/solaris/Makedefs.sol2 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,59 @@
++#
++# Generic make definitions for Solaris 2
++#
++# $Id: Makedefs.sol2 195720 2001-06-11 11:44:34Z gc $
++#
++
++include ../solaris/Makedefs
++
++CPPFLAGS = -D_KERNEL -DSVR4 -DSOL2 -DPRIOQ -DDEBUG -I../include
++CFLAGS = $(CPPFLAGS) $(COPTS)
++
++# lint-specific variables
++LINT = lint
++LINT_OPT_32 =
++LINT_OPT_64 = -Xarch=v9 -errchk=longptr64
++
++LINT_32 =
++LINT_32 += -erroff=E_BAD_PTR_CAST_ALIGN
++LINT_32 += -erroff=E_SUPPRESSION_DIRECTIVE_UNUSED
++LINT_32 += -erroff=E_SUSPICIOUS_COMPARISON
++LINT_32 += -erroff=E_CAST_UINT_TO_SIGNED_INT
++LINT_32 += -erroff=E_PASS_UINT_TO_SIGNED_INT
++LINT_32 += -erroff=E_INVALID_ANNOTATION_NAME
++LINT_32 += -erroff=E_FUNC_ARG_UNUSED
++# This might be needed, but zlib.c and vjcompress.c will squawk
++# when not ignored
++LINT_32 += -erroff=E_CASE_FALLTHRU
++LINT_32 += -erroff=E_RET_INT_IMPLICITLY
++LINT_32 += -erroff=E_FUNC_NO_RET_VAL
++# Some STREAMS macros will be noisy too when this isn't ignored
++LINT_32 += -erroff=E_CONSTANT_CONDITION
++LINT_32 += -erroff=E_CONST_EXPR
++
++# Extra noise suppressant for 64-bit
++EXTRA_OFF =
++EXTRA_OFF += -erroff=E_CAST_INT_TO_SMALL_INT
++EXTRA_OFF += -erroff=E_CAST_INT_CONST_TO_SMALL_INT
++EXTRA_OFF += -erroff=E_CAST_TO_PTR_FROM_INT
++EXTRA_OFF += -erroff=E_ASSIGN_INT_TO_SMALL_INT
++EXTRA_OFF += -erroff=E_ASSIGN_INT_FROM_BIG_CONST
++EXTRA_OFF += -erroff=E_CONST_PROMOTED_UNSIGNED_LL
++EXTRA_OFF += -erroff=E_CONST_PROMOTED_LONG_LONG
++EXTRA_OFF += -erroff=E_CONST_TRUNCATED_BY_ASSIGN
++EXTRA_OFF += -erroff=E_PASS_INT_FROM_BIG_CONST
++EXTRA_OFF += -erroff=E_COMP_INT_WITH_LARGE_INT
++EXTRA_OFF += -erroff=E_ASSIGN_UINT_TO_SIGNED_INT
++EXTRA_OFF += -erroff=E_ASSIGN_NARROW_CONV
++EXTRA_OFF += -erroff=E_PASS_INT_TO_SMALL_INT
++EXTRA_OFF += -erroff=E_PTR_CONV_LOSES_BITS
++
++LINT_64 = $(LINT_32)
++LINT_64 += $(EXTRA_OFF)
++
++LINTFLAGS64 = -Xa -nsxmuF -errtags=yes $(LINT_OPT_64) $(LINT_64)
++LINT64 = $(LINT) -c $(LINTFLAGS64) $(CPPFLAGS)
++
++LINTFLAGS32 = -Xa -nsxmuF -errtags=yes $(LINT_OPT_32) $(LINT_32)
++LINT32 = $(LINT) -c $(LINTFLAGS32) $(CPPFLAGS)
++
+
+<a id="drakxtrunkmdkstage1pppsolarisMakefilesol2">Added: drakx/trunk/mdk-stage1/ppp/solaris/Makefile.sol2</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/solaris/Makefile.sol2 (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/solaris/Makefile.sol2 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,66 @@
++#
++# Makefile for STREAMS modules for Solaris 2.
++#
++# $Id: Makefile.sol2 195720 2001-06-11 11:44:34Z gc $
++#
++
++include Makedefs.sol2
++
++COPTS += -xO2 -xspace -W0,-Lt
++
++COMP_OBJS = ppp_comp.o bsd-comp.o deflate.o zlib.o vjcompress.o \
++ ppp_comp_mod.o
++
++all: ppp ppp_ahdl ppp_comp
++
++ppp: ppp.o ppp_mod.o
++ ld -r -o $@ ppp.o ppp_mod.o
++ chmod +x $@
++
++ppp_ahdl: ppp_ahdlc.o ppp_ahdlc_mod.o
++ ld -r -o $@ ppp_ahdlc.o ppp_ahdlc_mod.o
++ chmod +x $@
++
++ppp_comp: $(COMP_OBJS)
++ ld -r -o $@ $(COMP_OBJS)
++ chmod +x $@
++
++bsd-comp.o: ../modules/bsd-comp.c
++ $(CC) $(CFLAGS) -c $?
++deflate.o: ../modules/deflate.c
++ $(CC) $(CFLAGS) -c $?
++ppp.o: ppp.c
++ $(CC) $(CFLAGS) -c $?
++ppp_mod.o: ppp_mod.c
++ $(CC) $(CFLAGS) -c $?
++ppp_ahdlc_mod.o: ppp_ahdlc_mod.c
++ $(CC) $(CFLAGS) -c $?
++ppp_ahdlc.o: ppp_ahdlc.c
++ $(CC) $(CFLAGS) -c $?
++ppp_comp.o: ppp_comp.c
++ $(CC) $(CFLAGS) -c $?
++ppp_comp_mod.o: ppp_comp_mod.c
++ $(CC) $(CFLAGS) -c $?
++vjcompress.o: ../modules/vjcompress.c
++ $(CC) $(CFLAGS) -c $?
++zlib.o: ../common/zlib.c
++ $(CC) $(CFLAGS) -c $?
++
++install:
++ cp ppp ppp.conf /kernel/drv
++ cp ppp_comp ppp_ahdl /kernel/strmod
++ if grep clone:ppp /etc/minor_perm; then :; else \
++ echo clone:ppp 0644 root sys &gt;&gt;/etc/minor_perm; fi
++ /usr/sbin/rem_drv ppp 2&gt;/dev/null || true
++ /usr/sbin/add_drv ppp
++
++SRCS = ppp.c ppp_mod.c ppp_ahdlc.c ppp_ahdlc_mod.c \
++ ppp_comp.c ../modules/bsd-comp.c ../modules/deflate.c \
++ ../common/zlib.c ../modules/vjcompress.c ppp_comp_mod.c
++
++lint:
++ $(LINT32) $(SRCS)
++
++clean:
++ rm -f ppp ppp_comp ppp_ahdl *.o *~ core
++ rm -f *.ln
+
+<a id="drakxtrunkmdkstage1pppsolarisMakefilesol264">Added: drakx/trunk/mdk-stage1/ppp/solaris/Makefile.sol2-64</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/solaris/Makefile.sol2-64 (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/solaris/Makefile.sol2-64 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,85 @@
++#
++# Makefile for 64-bit STREAMS modules for Solaris 2.
++#
++# $Id: Makefile.sol2-64 195720 2001-06-11 11:44:34Z gc $
++#
++
++include Makedefs.sol2
++
++# Sun's cc flag for LP64 compilation / linkage
++COPTS += -xchip=ultra -xarch=v9 -Wc,-xcode=abs32 -Wc,-Qiselect-regsym=0 -xO3 -xspace -W0,-Lt
++
++# subdirectory where 64-bit objects / binaries will be placed
++LP64DIR = sparcv9
++
++# Name of legacy Makefile (for 32-bit binaries)
++STD_MAKE = Makefile.sol2
++
++COMP_OBJS = $(LP64DIR)/ppp_comp.o $(LP64DIR)/bsd-comp.o \
++ $(LP64DIR)/deflate.o $(LP64DIR)/zlib.o $(LP64DIR)/vjcompress.o \
++ $(LP64DIR)/ppp_comp_mod.o
++
++all: std_objs $(LP64DIR) ppp ppp_ahdl ppp_comp
++
++std_objs:
++ $(MAKE) -f $(STD_MAKE) all
++
++ppp: $(LP64DIR)/ppp.o $(LP64DIR)/ppp_mod.o
++ ld -r -o $(LP64DIR)/$@ $(LP64DIR)/ppp.o $(LP64DIR)/ppp_mod.o
++ chmod +x $(LP64DIR)/$@
++
++ppp_ahdl: $(LP64DIR)/ppp_ahdlc.o $(LP64DIR)/ppp_ahdlc_mod.o
++ ld -r -o $(LP64DIR)/$@ $(LP64DIR)/ppp_ahdlc.o $(LP64DIR)/ppp_ahdlc_mod.o
++ chmod +x $(LP64DIR)/$@
++
++ppp_comp: $(COMP_OBJS)
++ ld -r -o $(LP64DIR)/$@ $(COMP_OBJS)
++ chmod +x $(LP64DIR)/$@
++
++$(LP64DIR)/bsd-comp.o: ../modules/bsd-comp.c
++ $(CC) $(CFLAGS) -c $? -o $@
++$(LP64DIR)/deflate.o: ../modules/deflate.c
++ $(CC) $(CFLAGS) -c $? -o $@
++$(LP64DIR)/ppp.o: ppp.c
++ $(CC) $(CFLAGS) -c $? -o $@
++$(LP64DIR)/ppp_mod.o: ppp_mod.c
++ $(CC) $(CFLAGS) -c $? -o $@
++$(LP64DIR)/ppp_ahdlc_mod.o: ppp_ahdlc_mod.c
++ $(CC) $(CFLAGS) -c $? -o $@
++$(LP64DIR)/ppp_ahdlc.o: ppp_ahdlc.c
++ $(CC) $(CFLAGS) -c $? -o $@
++$(LP64DIR)/ppp_comp.o: ppp_comp.c
++ $(CC) $(CFLAGS) -c $? -o $@
++$(LP64DIR)/ppp_comp_mod.o: ppp_comp_mod.c
++ $(CC) $(CFLAGS) -c $? -o $@
++$(LP64DIR)/vjcompress.o: ../modules/vjcompress.c
++ $(CC) $(CFLAGS) -c $? -o $@
++$(LP64DIR)/zlib.o: ../common/zlib.c
++ $(CC) $(CFLAGS) -c $? -o $@
++
++$(LP64DIR):
++ mkdir -m 755 -p $@
++
++install:
++ cp ppp ppp.conf /kernel/drv
++ cp ppp_comp ppp_ahdl /kernel/strmod
++ cp $(LP64DIR)/ppp /kernel/drv/$(LP64DIR)
++ cp $(LP64DIR)/ppp_comp $(LP64DIR)/ppp_ahdl /kernel/strmod/$(LP64DIR)
++ if grep clone:ppp /etc/minor_perm; then :; else \
++ echo clone:ppp 0644 root sys &gt;&gt;/etc/minor_perm; fi
++ /usr/sbin/rem_drv ppp 2&gt;/dev/null || true
++ /usr/sbin/add_drv ppp
++
++SRCS = ppp.c ppp_mod.c ppp_ahdlc.c ppp_ahdlc_mod.c \
++ ppp_comp.c ../modules/bsd-comp.c ../modules/deflate.c \
++ ../common/zlib.c ../modules/vjcompress.c ppp_comp_mod.c
++
++lint:
++ $(LINT64) $(SRCS)
++
++lint-32:
++ $(LINT32) $(SRCS)
++
++clean:
++ $(MAKE) -f $(STD_MAKE) clean
++ rm -f $(LP64DIR)/ppp $(LP64DIR)/ppp_comp $(LP64DIR)/ppp_ahdl $(LP64DIR)/*.o $(LP64DIR)/*~ $(LP64DIR)/core
+
+<a id="drakxtrunkmdkstage1pppsolarisMakefiletop">Added: drakx/trunk/mdk-stage1/ppp/solaris/Makefile.top</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/solaris/Makefile.top (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/solaris/Makefile.top 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,50 @@
++#
++# ppp top level makefile for SVR4 and Solaris 2
++#
++# $Id: Makefile.top 195720 2001-06-11 11:44:34Z gc $
++#
++
++include solaris/Makedefs
++
++all:
++ cd chat; $(MAKE) all
++ cd pppd; $(MAKE) all
++ cd pppstats; $(MAKE) all
++ cd pppdump; $(MAKE) all
++ cd solaris; $(MAKE) all
++
++install: $(BINDIR) $(MANDIR)/man8 install-progs install-etcppp
++
++install-progs:
++ cd chat; $(MAKE) install
++ cd pppd; $(MAKE) install
++ cd pppstats; $(MAKE) install
++ cd pppdump; $(MAKE) install
++ cd solaris; $(MAKE) install
++
++install-etcppp: $(ETCDIR) $(ETCDIR)/options $(ETCDIR)/pap-secrets \
++ $(ETCDIR)/chap-secrets
++
++$(ETCDIR)/options:
++ cp etc.ppp/options $@
++ chmod go-w $@
++$(ETCDIR)/pap-secrets:
++ $(INSTALL) -f $(ETCDIR) -m 600 etc.ppp/pap-secrets
++$(ETCDIR)/chap-secrets:
++ $(INSTALL) -f $(ETCDIR) -m 600 etc.ppp/chap-secrets
++
++$(BINDIR):
++ mkdir -m 755 -p $@
++$(MANDIR)/man8:
++ mkdir -m 755 -p $@
++$(ETCDIR):
++ mkdir -m 755 -p $@
++
++clean:
++ rm -f *~
++ cd chat; $(MAKE) clean
++ cd pppd; $(MAKE) clean
++ cd pppstats; $(MAKE) clean
++ cd pppdump; $(MAKE) clean
++ cd solaris; $(MAKE) clean
++
+
+<a id="drakxtrunkmdkstage1pppsolarispppc">Added: drakx/trunk/mdk-stage1/ppp/solaris/ppp.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/solaris/ppp.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/solaris/ppp.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,2486 @@
++/*
++ * ppp.c - STREAMS multiplexing pseudo-device driver for PPP.
++ *
++ * Copyright (c) 1994 The Australian National University.
++ * All rights reserved.
++ *
++ * Permission to use, copy, modify, and distribute this software and its
++ * documentation is hereby granted, provided that the above copyright
++ * notice appears in all copies. This software is provided without any
++ * warranty, express or implied. The Australian National University
++ * makes no representations about the suitability of this software for
++ * any purpose.
++ *
++ * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY
++ * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
++ * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
++ * THE AUSTRALIAN NATIONAL UNIVERSITY HAS BEEN ADVISED OF THE POSSIBILITY
++ * OF SUCH DAMAGE.
++ *
++ * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
++ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
++ * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
++ * ON AN &quot;AS IS&quot; BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO
++ * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
++ * OR MODIFICATIONS.
++ *
++ * $Id: ppp.c 195720 2001-06-11 11:44:34Z gc $
++ */
++
++/*
++ * This file is used under Solaris 2, SVR4, SunOS 4, and Digital UNIX.
++ */
++
++#include &lt;sys/types.h&gt;
++#include &lt;sys/param.h&gt;
++#include &lt;sys/stat.h&gt;
++#include &lt;sys/stream.h&gt;
++#include &lt;sys/stropts.h&gt;
++#include &lt;sys/errno.h&gt;
++#ifdef __osf__
++#include &lt;sys/ioctl.h&gt;
++#include &lt;sys/cmn_err.h&gt;
++#define queclass(mp) ((mp)-&gt;b_band &amp; QPCTL)
++#else
++#include &lt;sys/ioccom.h&gt;
++#endif
++#include &lt;sys/time.h&gt;
++#ifdef SVR4
++#include &lt;sys/cmn_err.h&gt;
++#include &lt;sys/conf.h&gt;
++#include &lt;sys/dlpi.h&gt;
++#include &lt;sys/ddi.h&gt;
++#ifdef SOL2
++#include &lt;sys/ksynch.h&gt;
++#include &lt;sys/kstat.h&gt;
++#include &lt;sys/sunddi.h&gt;
++#include &lt;sys/ethernet.h&gt;
++#else
++#include &lt;sys/socket.h&gt;
++#include &lt;sys/sockio.h&gt;
++#include &lt;net/if.h&gt;
++#include &lt;netinet/in.h&gt;
++#endif /* SOL2 */
++#else /* not SVR4 */
++#include &lt;sys/user.h&gt;
++#endif /* SVR4 */
++#include &lt;net/ppp_defs.h&gt;
++#include &lt;net/pppio.h&gt;
++#include &quot;ppp_mod.h&quot;
++
++/*
++ * Modifications marked with #ifdef PRIOQ are for priority queueing of
++ * interactive traffic, and are due to Marko Zec &lt;zec@japa.tel.fer.hr&gt;.
++ */
++#ifdef PRIOQ
++#endif /* PRIOQ */
++
++#include &lt;netinet/in.h&gt; /* leave this outside of PRIOQ for htons */
++
++#ifdef __STDC__
++#define __P(x) x
++#else
++#define __P(x) ()
++#endif
++
++/*
++ * The IP module may use this SAP value for IP packets.
++ */
++#ifndef ETHERTYPE_IP
++#define ETHERTYPE_IP 0x800
++#endif
++
++#if !defined(ETHERTYPE_IPV6)
++#define ETHERTYPE_IPV6 0x86dd
++#endif /* !defined(ETHERTYPE_IPV6) */
++
++#if !defined(ETHERTYPE_ALLSAP) &amp;&amp; defined(SOL2)
++#define ETHERTYPE_ALLSAP 0
++#endif /* !defined(ETHERTYPE_ALLSAP) &amp;&amp; defined(SOL2) */
++
++#if !defined(PPP_ALLSAP) &amp;&amp; defined(SOL2)
++#define PPP_ALLSAP PPP_ALLSTATIONS
++#endif /* !defined(PPP_ALLSAP) &amp;&amp; defined(SOL2) */
++
++extern time_t time;
++
++#ifdef SOL2
++/*
++ * We use this reader-writer lock to ensure that the lower streams
++ * stay connected to the upper streams while the lower-side put and
++ * service procedures are running. Essentially it is an existence
++ * lock for the upper stream associated with each lower stream.
++ */
++krwlock_t ppp_lower_lock;
++#define LOCK_LOWER_W rw_enter(&amp;ppp_lower_lock, RW_WRITER)
++#define LOCK_LOWER_R rw_enter(&amp;ppp_lower_lock, RW_READER)
++#define TRYLOCK_LOWER_R rw_tryenter(&amp;ppp_lower_lock, RW_READER)
++#define UNLOCK_LOWER rw_exit(&amp;ppp_lower_lock)
++
++#define MT_ENTER(x) mutex_enter(x)
++#define MT_EXIT(x) mutex_exit(x)
++
++/*
++ * Notes on multithreaded implementation for Solaris 2:
++ *
++ * We use an inner perimeter around each queue pair and an outer
++ * perimeter around the whole driver. The inner perimeter is
++ * entered exclusively for all entry points (open, close, put,
++ * service). The outer perimeter is entered exclusively for open
++ * and close and shared for put and service. This is all done for
++ * us by the streams framework.
++ *
++ * I used to think that the perimeters were entered for the lower
++ * streams' put and service routines as well as for the upper streams'.
++ * Because of problems experienced by people, and after reading the
++ * documentation more closely, I now don't think that is true. So we
++ * now use ppp_lower_lock to give us an existence guarantee on the
++ * upper stream controlling each lower stream.
++ *
++ * Shared entry to the outer perimeter protects the existence of all
++ * the upper streams and their upperstr_t structures, and guarantees
++ * that the following fields of any upperstr_t won't change:
++ * nextmn, next, nextppa. It guarantees that the lowerq field of an
++ * upperstr_t won't go from non-zero to zero, that the global `ppas'
++ * won't change and that the no lower stream will get unlinked.
++ *
++ * Shared (reader) access to ppa_lower_lock guarantees that no lower
++ * stream will be unlinked and that the lowerq field of all upperstr_t
++ * structures won't change.
++ */
++
++#else /* SOL2 */
++#define LOCK_LOWER_W 0
++#define LOCK_LOWER_R 0
++#define TRYLOCK_LOWER_R 1
++#define UNLOCK_LOWER 0
++#define MT_ENTER(x) 0
++#define MT_EXIT(x) 0
++
++#endif /* SOL2 */
++
++/*
++ * Private information; one per upper stream.
++ */
++typedef struct upperstr {
++ minor_t mn; /* minor device number */
++ struct upperstr *nextmn; /* next minor device */
++ queue_t *q; /* read q associated with this upper stream */
++ int flags; /* flag bits, see below */
++ int state; /* current DLPI state */
++ int sap; /* service access point */
++ int req_sap; /* which SAP the DLPI client requested */
++ struct upperstr *ppa; /* control stream for our ppa */
++ struct upperstr *next; /* next stream for this ppa */
++ uint ioc_id; /* last ioctl ID for this stream */
++ enum NPmode npmode; /* what to do with packets on this SAP */
++ unsigned char rblocked; /* flow control has blocked upper read strm */
++ /* N.B. rblocked is only changed by control stream's put/srv procs */
++ /*
++ * There is exactly one control stream for each PPA.
++ * The following fields are only used for control streams.
++ */
++ int ppa_id;
++ queue_t *lowerq; /* write queue attached below this PPA */
++ struct upperstr *nextppa; /* next control stream */
++ int mru;
++ int mtu;
++ struct pppstat stats; /* statistics */
++ time_t last_sent; /* time last NP packet sent */
++ time_t last_recv; /* time last NP packet rcvd */
++#ifdef SOL2
++ kmutex_t stats_lock; /* lock for stats updates */
++ kstat_t *kstats; /* stats for netstat */
++#endif /* SOL2 */
++#ifdef LACHTCP
++ int ifflags;
++ char ifname[IFNAMSIZ];
++ struct ifstats ifstats;
++#endif /* LACHTCP */
++} upperstr_t;
++
++/* Values for flags */
++#define US_PRIV 1 /* stream was opened by superuser */
++#define US_CONTROL 2 /* stream is a control stream */
++#define US_BLOCKED 4 /* flow ctrl has blocked lower write stream */
++#define US_LASTMOD 8 /* no PPP modules below us */
++#define US_DBGLOG 0x10 /* log various occurrences */
++#define US_RBLOCKED 0x20 /* flow ctrl has blocked upper read stream */
++
++#if defined(SOL2)
++#if DL_CURRENT_VERSION &gt;= 2
++#define US_PROMISC 0x40 /* stream is promiscuous */
++#endif /* DL_CURRENT_VERSION &gt;= 2 */
++#define US_RAWDATA 0x80 /* raw M_DATA, no DLPI header */
++#endif /* defined(SOL2) */
++
++#ifdef PRIOQ
++static u_char max_band=0;
++static u_char def_band=0;
++
++#define IPPORT_DEFAULT 65535
++
++/*
++ * Port priority table
++ * Highest priority ports are listed first, lowest are listed last.
++ * ICMP &amp; packets using unlisted ports will be treated as &quot;default&quot;.
++ * If IPPORT_DEFAULT is not listed here, &quot;default&quot; packets will be
++ * assigned lowest priority.
++ * Each line should be terminated with &quot;0&quot;.
++ * Line containing only &quot;0&quot; marks the end of the list.
++ */
++
++static u_short prioq_table[]= {
++ 113, 53, 0,
++ 22, 23, 513, 517, 518, 0,
++ 514, 21, 79, 111, 0,
++ 25, 109, 110, 0,
++ IPPORT_DEFAULT, 0,
++ 20, 70, 80, 8001, 8008, 8080, 0, /* 8001,8008,8080 - common proxy ports */
++0 };
++
++#endif /* PRIOQ */
++
++
++static upperstr_t *minor_devs = NULL;
++static upperstr_t *ppas = NULL;
++
++#ifdef SVR4
++static int pppopen __P((queue_t *, dev_t *, int, int, cred_t *));
++static int pppclose __P((queue_t *, int, cred_t *));
++#else
++static int pppopen __P((queue_t *, int, int, int));
++static int pppclose __P((queue_t *, int));
++#endif /* SVR4 */
++static int pppurput __P((queue_t *, mblk_t *));
++static int pppuwput __P((queue_t *, mblk_t *));
++static int pppursrv __P((queue_t *));
++static int pppuwsrv __P((queue_t *));
++static int ppplrput __P((queue_t *, mblk_t *));
++static int ppplwput __P((queue_t *, mblk_t *));
++static int ppplrsrv __P((queue_t *));
++static int ppplwsrv __P((queue_t *));
++#ifndef NO_DLPI
++static void dlpi_request __P((queue_t *, mblk_t *, upperstr_t *));
++static void dlpi_error __P((queue_t *, upperstr_t *, int, int, int));
++static void dlpi_ok __P((queue_t *, int));
++#endif
++static int send_data __P((mblk_t *, upperstr_t *));
++static void new_ppa __P((queue_t *, mblk_t *));
++static void attach_ppa __P((queue_t *, mblk_t *));
++static void detach_ppa __P((queue_t *, mblk_t *));
++static void detach_lower __P((queue_t *, mblk_t *));
++static void debug_dump __P((queue_t *, mblk_t *));
++static upperstr_t *find_dest __P((upperstr_t *, int));
++#if defined(SOL2)
++static upperstr_t *find_promisc __P((upperstr_t *, int));
++static mblk_t *prepend_ether __P((upperstr_t *, mblk_t *, int));
++static mblk_t *prepend_udind __P((upperstr_t *, mblk_t *, int));
++static void promisc_sendup __P((upperstr_t *, mblk_t *, int, int));
++#endif /* defined(SOL2) */
++static int putctl2 __P((queue_t *, int, int, int));
++static int putctl4 __P((queue_t *, int, int, int));
++static int pass_packet __P((upperstr_t *ppa, mblk_t *mp, int outbound));
++#ifdef FILTER_PACKETS
++static int ip_hard_filter __P((upperstr_t *ppa, mblk_t *mp, int outbound));
++#endif /* FILTER_PACKETS */
++
++#define PPP_ID 0xb1a6
++static struct module_info ppp_info = {
++#ifdef PRIOQ
++ PPP_ID, &quot;ppp&quot;, 0, 512, 512, 384
++#else
++ PPP_ID, &quot;ppp&quot;, 0, 512, 512, 128
++#endif /* PRIOQ */
++};
++
++static struct qinit pppurint = {
++ pppurput, pppursrv, pppopen, pppclose, NULL, &amp;ppp_info, NULL
++};
++
++static struct qinit pppuwint = {
++ pppuwput, pppuwsrv, NULL, NULL, NULL, &amp;ppp_info, NULL
++};
++
++static struct qinit ppplrint = {
++ ppplrput, ppplrsrv, NULL, NULL, NULL, &amp;ppp_info, NULL
++};
++
++static struct qinit ppplwint = {
++ ppplwput, ppplwsrv, NULL, NULL, NULL, &amp;ppp_info, NULL
++};
++
++#ifdef LACHTCP
++extern struct ifstats *ifstats;
++int pppdevflag = 0;
++#endif
++
++struct streamtab pppinfo = {
++ &amp;pppurint, &amp;pppuwint,
++ &amp;ppplrint, &amp;ppplwint
++};
++
++int ppp_count;
++
++/*
++ * How we maintain statistics.
++ */
++#ifdef SOL2
++#define INCR_IPACKETS(ppa) \
++ if (ppa-&gt;kstats != 0) { \
++ KSTAT_NAMED_PTR(ppa-&gt;kstats)[0].value.ul++; \
++ }
++#define INCR_IERRORS(ppa) \
++ if (ppa-&gt;kstats != 0) { \
++ KSTAT_NAMED_PTR(ppa-&gt;kstats)[1].value.ul++; \
++ }
++#define INCR_OPACKETS(ppa) \
++ if (ppa-&gt;kstats != 0) { \
++ KSTAT_NAMED_PTR(ppa-&gt;kstats)[2].value.ul++; \
++ }
++#define INCR_OERRORS(ppa) \
++ if (ppa-&gt;kstats != 0) { \
++ KSTAT_NAMED_PTR(ppa-&gt;kstats)[3].value.ul++; \
++ }
++#endif
++
++#ifdef LACHTCP
++#define INCR_IPACKETS(ppa) ppa-&gt;ifstats.ifs_ipackets++;
++#define INCR_IERRORS(ppa) ppa-&gt;ifstats.ifs_ierrors++;
++#define INCR_OPACKETS(ppa) ppa-&gt;ifstats.ifs_opackets++;
++#define INCR_OERRORS(ppa) ppa-&gt;ifstats.ifs_oerrors++;
++#endif
++
++/*
++ * STREAMS driver entry points.
++ */
++static int
++#ifdef SVR4
++pppopen(q, devp, oflag, sflag, credp)
++ queue_t *q;
++ dev_t *devp;
++ int oflag, sflag;
++ cred_t *credp;
++#else
++pppopen(q, dev, oflag, sflag)
++ queue_t *q;
++ int dev; /* really dev_t */
++ int oflag, sflag;
++#endif
++{
++ upperstr_t *up;
++ upperstr_t **prevp;
++ minor_t mn;
++#ifdef PRIOQ
++ u_short *ptr;
++ u_char new_band;
++#endif /* PRIOQ */
++
++ if (q-&gt;q_ptr)
++ DRV_OPEN_OK(dev); /* device is already open */
++
++#ifdef PRIOQ
++ /* Calculate max_bband &amp; def_band from definitions in prioq.h
++ This colud be done at some more approtiate time (less often)
++ but this way it works well so I'll just leave it here */
++
++ max_band = 1;
++ def_band = 0;
++ ptr = prioq_table;
++ while (*ptr) {
++ new_band = 1;
++ while (*ptr)
++ if (*ptr++ == IPPORT_DEFAULT) {
++ new_band = 0;
++ def_band = max_band;
++ }
++ max_band += new_band;
++ ptr++;
++ }
++ if (def_band)
++ def_band = max_band - def_band;
++ --max_band;
++#endif /* PRIOQ */
++
++ if (sflag == CLONEOPEN) {
++ mn = 0;
++ for (prevp = &amp;minor_devs; (up = *prevp) != 0; prevp = &amp;up-&gt;nextmn) {
++ if (up-&gt;mn != mn)
++ break;
++ ++mn;
++ }
++ } else {
++#ifdef SVR4
++ mn = getminor(*devp);
++#else
++ mn = minor(dev);
++#endif
++ for (prevp = &amp;minor_devs; (up = *prevp) != 0; prevp = &amp;up-&gt;nextmn) {
++ if (up-&gt;mn &gt;= mn)
++ break;
++ }
++ if (up-&gt;mn == mn) {
++ /* this can't happen */
++ q-&gt;q_ptr = WR(q)-&gt;q_ptr = (caddr_t) up;
++ DRV_OPEN_OK(dev);
++ }
++ }
++
++ /*
++ * Construct a new minor node.
++ */
++ up = (upperstr_t *) ALLOC_SLEEP(sizeof(upperstr_t));
++ bzero((caddr_t) up, sizeof(upperstr_t));
++ if (up == 0) {
++ DPRINT(&quot;pppopen: out of kernel memory\n&quot;);
++ OPEN_ERROR(ENXIO);
++ }
++ up-&gt;nextmn = *prevp;
++ *prevp = up;
++ up-&gt;mn = mn;
++#ifdef SVR4
++ *devp = makedevice(getmajor(*devp), mn);
++#endif
++ up-&gt;q = q;
++ if (NOTSUSER() == 0)
++ up-&gt;flags |= US_PRIV;
++#ifndef NO_DLPI
++ up-&gt;state = DL_UNATTACHED;
++#endif
++#ifdef LACHTCP
++ up-&gt;ifflags = IFF_UP | IFF_POINTOPOINT;
++#endif
++ up-&gt;sap = -1;
++ up-&gt;last_sent = up-&gt;last_recv = time;
++ up-&gt;npmode = NPMODE_DROP;
++ q-&gt;q_ptr = (caddr_t) up;
++ WR(q)-&gt;q_ptr = (caddr_t) up;
++ noenable(WR(q));
++#ifdef SOL2
++ mutex_init(&amp;up-&gt;stats_lock, NULL, MUTEX_DRIVER, NULL);
++#endif
++ ++ppp_count;
++
++ qprocson(q);
++ DRV_OPEN_OK(makedev(major(dev), mn));
++}
++
++static int
++#ifdef SVR4
++pppclose(q, flag, credp)
++ queue_t *q;
++ int flag;
++ cred_t *credp;
++#else
++pppclose(q, flag)
++ queue_t *q;
++ int flag;
++#endif
++{
++ upperstr_t *up, **upp;
++ upperstr_t *as, *asnext;
++ upperstr_t **prevp;
++
++ qprocsoff(q);
++
++ up = (upperstr_t *) q-&gt;q_ptr;
++ if (up == 0) {
++ DPRINT(&quot;pppclose: q_ptr = 0\n&quot;);
++ return 0;
++ }
++ if (up-&gt;flags &amp; US_DBGLOG)
++ DPRINT2(&quot;ppp/%d: close, flags=%x\n&quot;, up-&gt;mn, up-&gt;flags);
++ if (up-&gt;flags &amp; US_CONTROL) {
++#ifdef LACHTCP
++ struct ifstats *ifp, *pifp;
++#endif
++ if (up-&gt;lowerq != 0) {
++ /* Gack! the lower stream should have be unlinked earlier! */
++ DPRINT1(&quot;ppp%d: lower stream still connected on close?\n&quot;,
++ up-&gt;mn);
++ LOCK_LOWER_W;
++ up-&gt;lowerq-&gt;q_ptr = 0;
++ RD(up-&gt;lowerq)-&gt;q_ptr = 0;
++ up-&gt;lowerq = 0;
++ UNLOCK_LOWER;
++ }
++
++ /*
++ * This stream represents a PPA:
++ * For all streams attached to the PPA, clear their
++ * references to this PPA.
++ * Then remove this PPA from the list of PPAs.
++ */
++ for (as = up-&gt;next; as != 0; as = asnext) {
++ asnext = as-&gt;next;
++ as-&gt;next = 0;
++ as-&gt;ppa = 0;
++ if (as-&gt;flags &amp; US_BLOCKED) {
++ as-&gt;flags &amp;= ~US_BLOCKED;
++ flushq(WR(as-&gt;q), FLUSHDATA);
++ }
++ }
++ for (upp = &amp;ppas; *upp != 0; upp = &amp;(*upp)-&gt;nextppa)
++ if (*upp == up) {
++ *upp = up-&gt;nextppa;
++ break;
++ }
++#ifdef LACHTCP
++ /* Remove the statistics from the active list. */
++ for (ifp = ifstats, pifp = 0; ifp; ifp = ifp-&gt;ifs_next) {
++ if (ifp == &amp;up-&gt;ifstats) {
++ if (pifp)
++ pifp-&gt;ifs_next = ifp-&gt;ifs_next;
++ else
++ ifstats = ifp-&gt;ifs_next;
++ break;
++ }
++ pifp = ifp;
++ }
++#endif
++ } else {
++ /*
++ * If this stream is attached to a PPA,
++ * remove it from the PPA's list.
++ */
++ if ((as = up-&gt;ppa) != 0) {
++ for (; as-&gt;next != 0; as = as-&gt;next)
++ if (as-&gt;next == up) {
++ as-&gt;next = up-&gt;next;
++ break;
++ }
++ }
++ }
++
++#ifdef SOL2
++ if (up-&gt;kstats)
++ kstat_delete(up-&gt;kstats);
++ mutex_destroy(&amp;up-&gt;stats_lock);
++#endif
++
++ q-&gt;q_ptr = NULL;
++ WR(q)-&gt;q_ptr = NULL;
++
++ for (prevp = &amp;minor_devs; *prevp != 0; prevp = &amp;(*prevp)-&gt;nextmn) {
++ if (*prevp == up) {
++ *prevp = up-&gt;nextmn;
++ break;
++ }
++ }
++ FREE(up, sizeof(upperstr_t));
++ --ppp_count;
++
++ return 0;
++}
++
++/*
++ * A message from on high. We do one of three things:
++ * - qreply()
++ * - put the message on the lower write stream
++ * - queue it for our service routine
++ */
++static int
++pppuwput(q, mp)
++ queue_t *q;
++ mblk_t *mp;
++{
++ upperstr_t *us, *ppa, *nps;
++ struct iocblk *iop;
++ struct linkblk *lb;
++#ifdef LACHTCP
++ struct ifreq *ifr;
++ int i;
++#endif
++ queue_t *lq;
++ int error, n, sap;
++ mblk_t *mq;
++ struct ppp_idle *pip;
++#ifdef PRIOQ
++ queue_t *tlq;
++#endif /* PRIOQ */
++#ifdef NO_DLPI
++ upperstr_t *os;
++#endif
++
++ us = (upperstr_t *) q-&gt;q_ptr;
++ if (us == 0) {
++ DPRINT(&quot;pppuwput: q_ptr = 0!\n&quot;);
++ return 0;
++ }
++ if (mp == 0) {
++ DPRINT1(&quot;pppuwput/%d: mp = 0!\n&quot;, us-&gt;mn);
++ return 0;
++ }
++ if (mp-&gt;b_datap == 0) {
++ DPRINT1(&quot;pppuwput/%d: mp-&gt;b_datap = 0!\n&quot;, us-&gt;mn);
++ return 0;
++ }
++ switch (mp-&gt;b_datap-&gt;db_type) {
++#ifndef NO_DLPI
++ case M_PCPROTO:
++ case M_PROTO:
++ dlpi_request(q, mp, us);
++ break;
++#endif /* NO_DLPI */
++
++ case M_DATA:
++ if (us-&gt;flags &amp; US_DBGLOG)
++ DPRINT3(&quot;ppp/%d: uwput M_DATA len=%d flags=%x\n&quot;,
++ us-&gt;mn, msgdsize(mp), us-&gt;flags);
++ if (us-&gt;ppa == 0 || msgdsize(mp) &gt; us-&gt;ppa-&gt;mtu + PPP_HDRLEN
++#ifndef NO_DLPI
++ || (us-&gt;flags &amp; US_CONTROL) == 0
++#endif /* NO_DLPI */
++ ) {
++ DPRINT1(&quot;pppuwput: junk data len=%d\n&quot;, msgdsize(mp));
++ freemsg(mp);
++ break;
++ }
++#ifdef NO_DLPI
++ if ((us-&gt;flags &amp; US_CONTROL) == 0 &amp;&amp; !pass_packet(us, mp, 1))
++ break;
++#endif
++ if (!send_data(mp, us))
++ putq(q, mp);
++ break;
++
++ case M_IOCTL:
++ iop = (struct iocblk *) mp-&gt;b_rptr;
++ error = EINVAL;
++ if (us-&gt;flags &amp; US_DBGLOG)
++ DPRINT3(&quot;ppp/%d: ioctl %x count=%d\n&quot;,
++ us-&gt;mn, iop-&gt;ioc_cmd, iop-&gt;ioc_count);
++ switch (iop-&gt;ioc_cmd) {
++#if defined(SOL2)
++ case DLIOCRAW: /* raw M_DATA mode */
++ us-&gt;flags |= US_RAWDATA;
++ error = 0;
++ break;
++#endif /* defined(SOL2) */
++ case I_LINK:
++ if ((us-&gt;flags &amp; US_CONTROL) == 0 || us-&gt;lowerq != 0)
++ break;
++ if (mp-&gt;b_cont == 0) {
++ DPRINT1(&quot;pppuwput/%d: ioctl I_LINK b_cont = 0!\n&quot;, us-&gt;mn);
++ break;
++ }
++ lb = (struct linkblk *) mp-&gt;b_cont-&gt;b_rptr;
++ lq = lb-&gt;l_qbot;
++ if (lq == 0) {
++ DPRINT1(&quot;pppuwput/%d: ioctl I_LINK l_qbot = 0!\n&quot;, us-&gt;mn);
++ break;
++ }
++ LOCK_LOWER_W;
++ us-&gt;lowerq = lq;
++ lq-&gt;q_ptr = (caddr_t) q;
++ RD(lq)-&gt;q_ptr = (caddr_t) us-&gt;q;
++ UNLOCK_LOWER;
++ iop-&gt;ioc_count = 0;
++ error = 0;
++ us-&gt;flags &amp;= ~US_LASTMOD;
++ /* Unblock upper streams which now feed this lower stream. */
++ qenable(q);
++ /* Send useful information down to the modules which
++ are now linked below us. */
++ putctl2(lq, M_CTL, PPPCTL_UNIT, us-&gt;ppa_id);
++ putctl4(lq, M_CTL, PPPCTL_MRU, us-&gt;mru);
++ putctl4(lq, M_CTL, PPPCTL_MTU, us-&gt;mtu);
++#ifdef PRIOQ
++ /* Lower tty driver's queue hiwat/lowat from default 4096/128
++ to 256/128 since we don't want queueing of data on
++ output to physical device */
++
++ freezestr(lq);
++ for (tlq = lq; tlq-&gt;q_next != NULL; tlq = tlq-&gt;q_next)
++ ;
++ strqset(tlq, QHIWAT, 0, 256);
++ strqset(tlq, QLOWAT, 0, 128);
++ unfreezestr(lq);
++#endif /* PRIOQ */
++ break;
++
++ case I_UNLINK:
++ if (mp-&gt;b_cont == 0) {
++ DPRINT1(&quot;pppuwput/%d: ioctl I_UNLINK b_cont = 0!\n&quot;, us-&gt;mn);
++ break;
++ }
++ lb = (struct linkblk *) mp-&gt;b_cont-&gt;b_rptr;
++#if DEBUG
++ if (us-&gt;lowerq != lb-&gt;l_qbot) {
++ DPRINT2(&quot;ppp unlink: lowerq=%x qbot=%x\n&quot;,
++ us-&gt;lowerq, lb-&gt;l_qbot);
++ break;
++ }
++#endif
++ iop-&gt;ioc_count = 0;
++ qwriter(q, mp, detach_lower, PERIM_OUTER);
++ error = -1;
++ break;
++
++ case PPPIO_NEWPPA:
++ if (us-&gt;flags &amp; US_CONTROL)
++ break;
++ if ((us-&gt;flags &amp; US_PRIV) == 0) {
++ error = EPERM;
++ break;
++ }
++ /* Arrange to return an int */
++ if ((mq = mp-&gt;b_cont) == 0
++ || mq-&gt;b_datap-&gt;db_lim - mq-&gt;b_rptr &lt; sizeof(int)) {
++ mq = allocb(sizeof(int), BPRI_HI);
++ if (mq == 0) {
++ error = ENOSR;
++ break;
++ }
++ if (mp-&gt;b_cont != 0)
++ freemsg(mp-&gt;b_cont);
++ mp-&gt;b_cont = mq;
++ mq-&gt;b_cont = 0;
++ }
++ iop-&gt;ioc_count = sizeof(int);
++ mq-&gt;b_wptr = mq-&gt;b_rptr + sizeof(int);
++ qwriter(q, mp, new_ppa, PERIM_OUTER);
++ error = -1;
++ break;
++
++ case PPPIO_ATTACH:
++ /* like dlpi_attach, for programs which can't write to
++ the stream (like pppstats) */
++ if (iop-&gt;ioc_count != sizeof(int) || us-&gt;ppa != 0)
++ break;
++ if (mp-&gt;b_cont == 0) {
++ DPRINT1(&quot;pppuwput/%d: ioctl PPPIO_ATTACH b_cont = 0!\n&quot;, us-&gt;mn);
++ break;
++ }
++ n = *(int *)mp-&gt;b_cont-&gt;b_rptr;
++ for (ppa = ppas; ppa != 0; ppa = ppa-&gt;nextppa)
++ if (ppa-&gt;ppa_id == n)
++ break;
++ if (ppa == 0)
++ break;
++ us-&gt;ppa = ppa;
++ iop-&gt;ioc_count = 0;
++ qwriter(q, mp, attach_ppa, PERIM_OUTER);
++ error = -1;
++ break;
++
++#ifdef NO_DLPI
++ case PPPIO_BIND:
++ /* Attach to a given SAP. */
++ if (iop-&gt;ioc_count != sizeof(int) || us-&gt;ppa == 0)
++ break;
++ if (mp-&gt;b_cont == 0) {
++ DPRINT1(&quot;pppuwput/%d: ioctl PPPIO_BIND b_cont = 0!\n&quot;, us-&gt;mn);
++ break;
++ }
++ n = *(int *)mp-&gt;b_cont-&gt;b_rptr;
++ /* n must be a valid PPP network protocol number. */
++ if (n &lt; 0x21 || n &gt; 0x3fff || (n &amp; 0x101) != 1)
++ break;
++ /* check that no other stream is bound to this sap already. */
++ for (os = us-&gt;ppa; os != 0; os = os-&gt;next)
++ if (os-&gt;sap == n)
++ break;
++ if (os != 0)
++ break;
++ us-&gt;sap = n;
++ iop-&gt;ioc_count = 0;
++ error = 0;
++ break;
++#endif /* NO_DLPI */
++
++ case PPPIO_MRU:
++ if (iop-&gt;ioc_count != sizeof(int) || (us-&gt;flags &amp; US_CONTROL) == 0)
++ break;
++ if (mp-&gt;b_cont == 0) {
++ DPRINT1(&quot;pppuwput/%d: ioctl PPPIO_MRU b_cont = 0!\n&quot;, us-&gt;mn);
++ break;
++ }
++ n = *(int *)mp-&gt;b_cont-&gt;b_rptr;
++ if (n &lt;= 0 || n &gt; PPP_MAXMRU)
++ break;
++ if (n &lt; PPP_MRU)
++ n = PPP_MRU;
++ us-&gt;mru = n;
++ if (us-&gt;lowerq)
++ putctl4(us-&gt;lowerq, M_CTL, PPPCTL_MRU, n);
++ error = 0;
++ iop-&gt;ioc_count = 0;
++ break;
++
++ case PPPIO_MTU:
++ if (iop-&gt;ioc_count != sizeof(int) || (us-&gt;flags &amp; US_CONTROL) == 0)
++ break;
++ if (mp-&gt;b_cont == 0) {
++ DPRINT1(&quot;pppuwput/%d: ioctl PPPIO_MTU b_cont = 0!\n&quot;, us-&gt;mn);
++ break;
++ }
++ n = *(int *)mp-&gt;b_cont-&gt;b_rptr;
++ if (n &lt;= 0 || n &gt; PPP_MAXMTU)
++ break;
++ us-&gt;mtu = n;
++#ifdef LACHTCP
++ /* The MTU reported in netstat, not used as IP max packet size! */
++ us-&gt;ifstats.ifs_mtu = n;
++#endif
++ if (us-&gt;lowerq)
++ putctl4(us-&gt;lowerq, M_CTL, PPPCTL_MTU, n);
++ error = 0;
++ iop-&gt;ioc_count = 0;
++ break;
++
++ case PPPIO_LASTMOD:
++ us-&gt;flags |= US_LASTMOD;
++ error = 0;
++ break;
++
++ case PPPIO_DEBUG:
++ if (iop-&gt;ioc_count != sizeof(int))
++ break;
++ if (mp-&gt;b_cont == 0) {
++ DPRINT1(&quot;pppuwput/%d: ioctl PPPIO_DEBUG b_cont = 0!\n&quot;, us-&gt;mn);
++ break;
++ }
++ n = *(int *)mp-&gt;b_cont-&gt;b_rptr;
++ if (n == PPPDBG_DUMP + PPPDBG_DRIVER) {
++ qwriter(q, NULL, debug_dump, PERIM_OUTER);
++ iop-&gt;ioc_count = 0;
++ error = -1;
++ } else if (n == PPPDBG_LOG + PPPDBG_DRIVER) {
++ DPRINT1(&quot;ppp/%d: debug log enabled\n&quot;, us-&gt;mn);
++ us-&gt;flags |= US_DBGLOG;
++ iop-&gt;ioc_count = 0;
++ error = 0;
++ } else {
++ if (us-&gt;ppa == 0 || us-&gt;ppa-&gt;lowerq == 0)
++ break;
++ putnext(us-&gt;ppa-&gt;lowerq, mp);
++ error = -1;
++ }
++ break;
++
++ case PPPIO_NPMODE:
++ if (iop-&gt;ioc_count != 2 * sizeof(int))
++ break;
++ if ((us-&gt;flags &amp; US_CONTROL) == 0)
++ break;
++ if (mp-&gt;b_cont == 0) {
++ DPRINT1(&quot;pppuwput/%d: ioctl PPPIO_NPMODE b_cont = 0!\n&quot;, us-&gt;mn);
++ break;
++ }
++ sap = ((int *)mp-&gt;b_cont-&gt;b_rptr)[0];
++ for (nps = us-&gt;next; nps != 0; nps = nps-&gt;next) {
++ if (us-&gt;flags &amp; US_DBGLOG)
++ DPRINT2(&quot;us = 0x%x, us-&gt;next-&gt;sap = 0x%x\n&quot;, nps, nps-&gt;sap);
++ if (nps-&gt;sap == sap)
++ break;
++ }
++ if (nps == 0) {
++ if (us-&gt;flags &amp; US_DBGLOG)
++ DPRINT2(&quot;ppp/%d: no stream for sap %x\n&quot;, us-&gt;mn, sap);
++ break;
++ }
++ /* XXX possibly should use qwriter here */
++ nps-&gt;npmode = (enum NPmode) ((int *)mp-&gt;b_cont-&gt;b_rptr)[1];
++ if (nps-&gt;npmode != NPMODE_QUEUE &amp;&amp; (nps-&gt;flags &amp; US_BLOCKED) != 0)
++ qenable(WR(nps-&gt;q));
++ iop-&gt;ioc_count = 0;
++ error = 0;
++ break;
++
++ case PPPIO_GIDLE:
++ if ((ppa = us-&gt;ppa) == 0)
++ break;
++ mq = allocb(sizeof(struct ppp_idle), BPRI_HI);
++ if (mq == 0) {
++ error = ENOSR;
++ break;
++ }
++ if (mp-&gt;b_cont != 0)
++ freemsg(mp-&gt;b_cont);
++ mp-&gt;b_cont = mq;
++ mq-&gt;b_cont = 0;
++ pip = (struct ppp_idle *) mq-&gt;b_wptr;
++ pip-&gt;xmit_idle = time - ppa-&gt;last_sent;
++ pip-&gt;recv_idle = time - ppa-&gt;last_recv;
++ mq-&gt;b_wptr += sizeof(struct ppp_idle);
++ iop-&gt;ioc_count = sizeof(struct ppp_idle);
++ error = 0;
++ break;
++
++#ifdef LACHTCP
++ case SIOCSIFNAME:
++ /* Sent from IP down to us. Attach the ifstats structure. */
++ if (iop-&gt;ioc_count != sizeof(struct ifreq) || us-&gt;ppa == 0)
++ break;
++ ifr = (struct ifreq *)mp-&gt;b_cont-&gt;b_rptr;
++ /* Find the unit number in the interface name. */
++ for (i = 0; i &lt; IFNAMSIZ; i++) {
++ if (ifr-&gt;ifr_name[i] == 0 ||
++ (ifr-&gt;ifr_name[i] &gt;= '0' &amp;&amp;
++ ifr-&gt;ifr_name[i] &lt;= '9'))
++ break;
++ else
++ us-&gt;ifname[i] = ifr-&gt;ifr_name[i];
++ }
++ us-&gt;ifname[i] = 0;
++
++ /* Convert the unit number to binary. */
++ for (n = 0; i &lt; IFNAMSIZ; i++) {
++ if (ifr-&gt;ifr_name[i] == 0) {
++ break;
++ }
++ else {
++ n = n * 10 + ifr-&gt;ifr_name[i] - '0';
++ }
++ }
++
++ /* Verify the ppa. */
++ if (us-&gt;ppa-&gt;ppa_id != n)
++ break;
++ ppa = us-&gt;ppa;
++
++ /* Set up the netstat block. */
++ strncpy (ppa-&gt;ifname, us-&gt;ifname, IFNAMSIZ);
++
++ ppa-&gt;ifstats.ifs_name = ppa-&gt;ifname;
++ ppa-&gt;ifstats.ifs_unit = n;
++ ppa-&gt;ifstats.ifs_active = us-&gt;state != DL_UNBOUND;
++ ppa-&gt;ifstats.ifs_mtu = ppa-&gt;mtu;
++
++ /* Link in statistics used by netstat. */
++ ppa-&gt;ifstats.ifs_next = ifstats;
++ ifstats = &amp;ppa-&gt;ifstats;
++
++ iop-&gt;ioc_count = 0;
++ error = 0;
++ break;
++
++ case SIOCGIFFLAGS:
++ if (!(us-&gt;flags &amp; US_CONTROL)) {
++ if (us-&gt;ppa)
++ us = us-&gt;ppa;
++ else
++ break;
++ }
++ ((struct iocblk_in *)iop)-&gt;ioc_ifflags = us-&gt;ifflags;
++ error = 0;
++ break;
++
++ case SIOCSIFFLAGS:
++ if (!(us-&gt;flags &amp; US_CONTROL)) {
++ if (us-&gt;ppa)
++ us = us-&gt;ppa;
++ else
++ break;
++ }
++ us-&gt;ifflags = ((struct iocblk_in *)iop)-&gt;ioc_ifflags;
++ error = 0;
++ break;
++
++ case SIOCSIFADDR:
++ if (!(us-&gt;flags &amp; US_CONTROL)) {
++ if (us-&gt;ppa)
++ us = us-&gt;ppa;
++ else
++ break;
++ }
++ us-&gt;ifflags |= IFF_RUNNING;
++ ((struct iocblk_in *)iop)-&gt;ioc_ifflags |= IFF_RUNNING;
++ error = 0;
++ break;
++
++ case SIOCSIFMTU:
++ /*
++ * Vanilla SVR4 systems don't handle SIOCSIFMTU, rather
++ * they take the MTU from the DL_INFO_ACK we sent in response
++ * to their DL_INFO_REQ. Fortunately, they will update the
++ * MTU if we send an unsolicited DL_INFO_ACK up.
++ */
++ if ((mq = allocb(sizeof(dl_info_req_t), BPRI_HI)) == 0)
++ break; /* should do bufcall */
++ ((union DL_primitives *)mq-&gt;b_rptr)-&gt;dl_primitive = DL_INFO_REQ;
++ mq-&gt;b_wptr = mq-&gt;b_rptr + sizeof(dl_info_req_t);
++ dlpi_request(q, mq, us);
++ error = 0;
++ break;
++
++ case SIOCGIFNETMASK:
++ case SIOCSIFNETMASK:
++ case SIOCGIFADDR:
++ case SIOCGIFDSTADDR:
++ case SIOCSIFDSTADDR:
++ case SIOCGIFMETRIC:
++ error = 0;
++ break;
++#endif /* LACHTCP */
++
++ default:
++ if (us-&gt;ppa == 0 || us-&gt;ppa-&gt;lowerq == 0)
++ break;
++ us-&gt;ioc_id = iop-&gt;ioc_id;
++ error = -1;
++ switch (iop-&gt;ioc_cmd) {
++ case PPPIO_GETSTAT:
++ case PPPIO_GETCSTAT:
++ if (us-&gt;flags &amp; US_LASTMOD) {
++ error = EINVAL;
++ break;
++ }
++ putnext(us-&gt;ppa-&gt;lowerq, mp);
++ break;
++ default:
++ if (us-&gt;flags &amp; US_PRIV)
++ putnext(us-&gt;ppa-&gt;lowerq, mp);
++ else {
++ DPRINT1(&quot;ppp ioctl %x rejected\n&quot;, iop-&gt;ioc_cmd);
++ error = EPERM;
++ }
++ break;
++ }
++ break;
++ }
++
++ if (error &gt; 0) {
++ iop-&gt;ioc_error = error;
++ mp-&gt;b_datap-&gt;db_type = M_IOCNAK;
++ qreply(q, mp);
++ } else if (error == 0) {
++ mp-&gt;b_datap-&gt;db_type = M_IOCACK;
++ qreply(q, mp);
++ }
++ break;
++
++ case M_FLUSH:
++ if (us-&gt;flags &amp; US_DBGLOG)
++ DPRINT2(&quot;ppp/%d: flush %x\n&quot;, us-&gt;mn, *mp-&gt;b_rptr);
++ if (*mp-&gt;b_rptr &amp; FLUSHW)
++ flushq(q, FLUSHDATA);
++ if (*mp-&gt;b_rptr &amp; FLUSHR) {
++ *mp-&gt;b_rptr &amp;= ~FLUSHW;
++ qreply(q, mp);
++ } else
++ freemsg(mp);
++ break;
++
++ default:
++ freemsg(mp);
++ break;
++ }
++ return 0;
++}
++
++#ifndef NO_DLPI
++static void
++dlpi_request(q, mp, us)
++ queue_t *q;
++ mblk_t *mp;
++ upperstr_t *us;
++{
++ union DL_primitives *d = (union DL_primitives *) mp-&gt;b_rptr;
++ int size = mp-&gt;b_wptr - mp-&gt;b_rptr;
++ mblk_t *reply, *np;
++ upperstr_t *ppa, *os;
++ int sap, len;
++ dl_info_ack_t *info;
++ dl_bind_ack_t *ackp;
++#if DL_CURRENT_VERSION &gt;= 2
++ dl_phys_addr_ack_t *paddrack;
++ static struct ether_addr eaddr = {0};
++#endif
++
++ if (us-&gt;flags &amp; US_DBGLOG)
++ DPRINT3(&quot;ppp/%d: dlpi prim %x len=%d\n&quot;, us-&gt;mn,
++ d-&gt;dl_primitive, size);
++ switch (d-&gt;dl_primitive) {
++ case DL_INFO_REQ:
++ if (size &lt; sizeof(dl_info_req_t))
++ goto badprim;
++ if ((reply = allocb(sizeof(dl_info_ack_t), BPRI_HI)) == 0)
++ break; /* should do bufcall */
++ reply-&gt;b_datap-&gt;db_type = M_PCPROTO;
++ info = (dl_info_ack_t *) reply-&gt;b_wptr;
++ reply-&gt;b_wptr += sizeof(dl_info_ack_t);
++ bzero((caddr_t) info, sizeof(dl_info_ack_t));
++ info-&gt;dl_primitive = DL_INFO_ACK;
++ info-&gt;dl_max_sdu = us-&gt;ppa? us-&gt;ppa-&gt;mtu: PPP_MAXMTU;
++ info-&gt;dl_min_sdu = 1;
++ info-&gt;dl_addr_length = sizeof(uint);
++ info-&gt;dl_mac_type = DL_ETHER; /* a bigger lie */
++ info-&gt;dl_current_state = us-&gt;state;
++ info-&gt;dl_service_mode = DL_CLDLS;
++ info-&gt;dl_provider_style = DL_STYLE2;
++#if DL_CURRENT_VERSION &gt;= 2
++ info-&gt;dl_sap_length = sizeof(uint);
++ info-&gt;dl_version = DL_CURRENT_VERSION;
++#endif
++ qreply(q, reply);
++ break;
++
++ case DL_ATTACH_REQ:
++ if (size &lt; sizeof(dl_attach_req_t))
++ goto badprim;
++ if (us-&gt;state != DL_UNATTACHED || us-&gt;ppa != 0) {
++ dlpi_error(q, us, DL_ATTACH_REQ, DL_OUTSTATE, 0);
++ break;
++ }
++ for (ppa = ppas; ppa != 0; ppa = ppa-&gt;nextppa)
++ if (ppa-&gt;ppa_id == d-&gt;attach_req.dl_ppa)
++ break;
++ if (ppa == 0) {
++ dlpi_error(q, us, DL_ATTACH_REQ, DL_BADPPA, 0);
++ break;
++ }
++ us-&gt;ppa = ppa;
++ qwriter(q, mp, attach_ppa, PERIM_OUTER);
++ return;
++
++ case DL_DETACH_REQ:
++ if (size &lt; sizeof(dl_detach_req_t))
++ goto badprim;
++ if (us-&gt;state != DL_UNBOUND || us-&gt;ppa == 0) {
++ dlpi_error(q, us, DL_DETACH_REQ, DL_OUTSTATE, 0);
++ break;
++ }
++ qwriter(q, mp, detach_ppa, PERIM_OUTER);
++ return;
++
++ case DL_BIND_REQ:
++ if (size &lt; sizeof(dl_bind_req_t))
++ goto badprim;
++ if (us-&gt;state != DL_UNBOUND || us-&gt;ppa == 0) {
++ dlpi_error(q, us, DL_BIND_REQ, DL_OUTSTATE, 0);
++ break;
++ }
++#if 0
++ /* apparently this test fails (unnecessarily?) on some systems */
++ if (d-&gt;bind_req.dl_service_mode != DL_CLDLS) {
++ dlpi_error(q, us, DL_BIND_REQ, DL_UNSUPPORTED, 0);
++ break;
++ }
++#endif
++
++ /* saps must be valid PPP network protocol numbers,
++ except that we accept ETHERTYPE_IP in place of PPP_IP. */
++ sap = d-&gt;bind_req.dl_sap;
++ us-&gt;req_sap = sap;
++
++#if defined(SOL2)
++ if (us-&gt;flags &amp; US_DBGLOG)
++ DPRINT2(&quot;DL_BIND_REQ: ip gives sap = 0x%x, us = 0x%x&quot;, sap, us);
++
++ if (sap == ETHERTYPE_IP) /* normal IFF_IPV4 */
++ sap = PPP_IP;
++ else if (sap == ETHERTYPE_IPV6) /* when IFF_IPV6 is set */
++ sap = PPP_IPV6;
++ else if (sap == ETHERTYPE_ALLSAP) /* snoop gives sap of 0 */
++ sap = PPP_ALLSAP;
++ else {
++ DPRINT2(&quot;DL_BIND_REQ: unrecognized sap = 0x%x, us = 0x%x&quot;, sap, us);
++ dlpi_error(q, us, DL_BIND_REQ, DL_BADADDR, 0);
++ break;
++ }
++#else
++ if (sap == ETHERTYPE_IP)
++ sap = PPP_IP;
++ if (sap &lt; 0x21 || sap &gt; 0x3fff || (sap &amp; 0x101) != 1) {
++ dlpi_error(q, us, DL_BIND_REQ, DL_BADADDR, 0);
++ break;
++ }
++#endif /* defined(SOL2) */
++
++ /* check that no other stream is bound to this sap already. */
++ for (os = us-&gt;ppa; os != 0; os = os-&gt;next)
++ if (os-&gt;sap == sap)
++ break;
++ if (os != 0) {
++ dlpi_error(q, us, DL_BIND_REQ, DL_NOADDR, 0);
++ break;
++ }
++
++ us-&gt;sap = sap;
++ us-&gt;state = DL_IDLE;
++
++ if ((reply = allocb(sizeof(dl_bind_ack_t) + sizeof(uint),
++ BPRI_HI)) == 0)
++ break; /* should do bufcall */
++ ackp = (dl_bind_ack_t *) reply-&gt;b_wptr;
++ reply-&gt;b_wptr += sizeof(dl_bind_ack_t) + sizeof(uint);
++ reply-&gt;b_datap-&gt;db_type = M_PCPROTO;
++ bzero((caddr_t) ackp, sizeof(dl_bind_ack_t));
++ ackp-&gt;dl_primitive = DL_BIND_ACK;
++ ackp-&gt;dl_sap = sap;
++ ackp-&gt;dl_addr_length = sizeof(uint);
++ ackp-&gt;dl_addr_offset = sizeof(dl_bind_ack_t);
++ *(uint *)(ackp+1) = sap;
++ qreply(q, reply);
++ break;
++
++ case DL_UNBIND_REQ:
++ if (size &lt; sizeof(dl_unbind_req_t))
++ goto badprim;
++ if (us-&gt;state != DL_IDLE) {
++ dlpi_error(q, us, DL_UNBIND_REQ, DL_OUTSTATE, 0);
++ break;
++ }
++ us-&gt;sap = -1;
++ us-&gt;state = DL_UNBOUND;
++#ifdef LACHTCP
++ us-&gt;ppa-&gt;ifstats.ifs_active = 0;
++#endif
++ dlpi_ok(q, DL_UNBIND_REQ);
++ break;
++
++ case DL_UNITDATA_REQ:
++ if (size &lt; sizeof(dl_unitdata_req_t))
++ goto badprim;
++ if (us-&gt;state != DL_IDLE) {
++ dlpi_error(q, us, DL_UNITDATA_REQ, DL_OUTSTATE, 0);
++ break;
++ }
++ if ((ppa = us-&gt;ppa) == 0) {
++ cmn_err(CE_CONT, &quot;ppp: in state dl_idle but ppa == 0?\n&quot;);
++ break;
++ }
++ len = mp-&gt;b_cont == 0? 0: msgdsize(mp-&gt;b_cont);
++ if (len &gt; ppa-&gt;mtu) {
++ DPRINT2(&quot;dlpi data too large (%d &gt; %d)\n&quot;, len, ppa-&gt;mtu);
++ break;
++ }
++
++#if defined(SOL2)
++ /*
++ * Should there be any promiscuous stream(s), send the data
++ * up for each promiscuous stream that we recognize.
++ */
++ if (mp-&gt;b_cont)
++ promisc_sendup(ppa, mp-&gt;b_cont, us-&gt;sap, 0);
++#endif /* defined(SOL2) */
++
++ mp-&gt;b_band = 0;
++#ifdef PRIOQ
++ /* Extract s_port &amp; d_port from IP-packet, the code is a bit
++ dirty here, but so am I, too... */
++ if (mp-&gt;b_datap-&gt;db_type == M_PROTO &amp;&amp; us-&gt;sap == PPP_IP
++ &amp;&amp; mp-&gt;b_cont != 0) {
++ u_char *bb, *tlh;
++ int iphlen, len;
++ u_short *ptr;
++ u_char band_unset, cur_band, syn;
++ u_short s_port, d_port;
++
++ bb = mp-&gt;b_cont-&gt;b_rptr; /* bb points to IP-header*/
++ len = mp-&gt;b_cont-&gt;b_wptr - mp-&gt;b_cont-&gt;b_rptr;
++ syn = 0;
++ s_port = IPPORT_DEFAULT;
++ d_port = IPPORT_DEFAULT;
++ if (len &gt;= 20) { /* 20 = minimum length of IP header */
++ iphlen = (bb[0] &amp; 0x0f) * 4;
++ tlh = bb + iphlen;
++ len -= iphlen;
++ switch (bb[9]) {
++ case IPPROTO_TCP:
++ if (len &gt;= 20) { /* min length of TCP header */
++ s_port = (tlh[0] &lt;&lt; 8) + tlh[1];
++ d_port = (tlh[2] &lt;&lt; 8) + tlh[3];
++ syn = tlh[13] &amp; 0x02;
++ }
++ break;
++ case IPPROTO_UDP:
++ if (len &gt;= 8) { /* min length of UDP header */
++ s_port = (tlh[0] &lt;&lt; 8) + tlh[1];
++ d_port = (tlh[2] &lt;&lt; 8) + tlh[3];
++ }
++ break;
++ }
++ }
++
++ /*
++ * Now calculate b_band for this packet from the
++ * port-priority table.
++ */
++ ptr = prioq_table;
++ cur_band = max_band;
++ band_unset = 1;
++ while (*ptr) {
++ while (*ptr &amp;&amp; band_unset)
++ if (s_port == *ptr || d_port == *ptr++) {
++ mp-&gt;b_band = cur_band;
++ band_unset = 0;
++ break;
++ }
++ ptr++;
++ cur_band--;
++ }
++ if (band_unset)
++ mp-&gt;b_band = def_band;
++ /* It may be usable to urge SYN packets a bit */
++ if (syn)
++ mp-&gt;b_band++;
++ }
++#endif /* PRIOQ */
++ /* this assumes PPP_HDRLEN &lt;= sizeof(dl_unitdata_req_t) */
++ if (mp-&gt;b_datap-&gt;db_ref &gt; 1) {
++ np = allocb(PPP_HDRLEN, BPRI_HI);
++ if (np == 0)
++ break; /* gak! */
++ np-&gt;b_cont = mp-&gt;b_cont;
++ mp-&gt;b_cont = 0;
++ freeb(mp);
++ mp = np;
++ } else
++ mp-&gt;b_datap-&gt;db_type = M_DATA;
++ /* XXX should use dl_dest_addr_offset/length here,
++ but we would have to translate ETHERTYPE_IP -&gt; PPP_IP */
++ mp-&gt;b_wptr = mp-&gt;b_rptr + PPP_HDRLEN;
++ mp-&gt;b_rptr[0] = PPP_ALLSTATIONS;
++ mp-&gt;b_rptr[1] = PPP_UI;
++ mp-&gt;b_rptr[2] = us-&gt;sap &gt;&gt; 8;
++ mp-&gt;b_rptr[3] = us-&gt;sap;
++ if (pass_packet(us, mp, 1)) {
++ if (!send_data(mp, us))
++ putq(q, mp);
++ }
++ return;
++
++#if DL_CURRENT_VERSION &gt;= 2
++ case DL_PHYS_ADDR_REQ:
++ if (size &lt; sizeof(dl_phys_addr_req_t))
++ goto badprim;
++
++ /*
++ * Don't check state because ifconfig sends this one down too
++ */
++
++ if ((reply = allocb(sizeof(dl_phys_addr_ack_t)+ETHERADDRL,
++ BPRI_HI)) == 0)
++ break; /* should do bufcall */
++ reply-&gt;b_datap-&gt;db_type = M_PCPROTO;
++ paddrack = (dl_phys_addr_ack_t *) reply-&gt;b_wptr;
++ reply-&gt;b_wptr += sizeof(dl_phys_addr_ack_t);
++ bzero((caddr_t) paddrack, sizeof(dl_phys_addr_ack_t)+ETHERADDRL);
++ paddrack-&gt;dl_primitive = DL_PHYS_ADDR_ACK;
++ paddrack-&gt;dl_addr_length = ETHERADDRL;
++ paddrack-&gt;dl_addr_offset = sizeof(dl_phys_addr_ack_t);
++ bcopy(&amp;eaddr, reply-&gt;b_wptr, ETHERADDRL);
++ reply-&gt;b_wptr += ETHERADDRL;
++ qreply(q, reply);
++ break;
++
++#if defined(SOL2)
++ case DL_PROMISCON_REQ:
++ if (size &lt; sizeof(dl_promiscon_req_t))
++ goto badprim;
++ us-&gt;flags |= US_PROMISC;
++ dlpi_ok(q, DL_PROMISCON_REQ);
++ break;
++
++ case DL_PROMISCOFF_REQ:
++ if (size &lt; sizeof(dl_promiscoff_req_t))
++ goto badprim;
++ us-&gt;flags &amp;= ~US_PROMISC;
++ dlpi_ok(q, DL_PROMISCOFF_REQ);
++ break;
++#else
++ case DL_PROMISCON_REQ: /* fall thru */
++ case DL_PROMISCOFF_REQ: /* fall thru */
++#endif /* defined(SOL2) */
++#endif /* DL_CURRENT_VERSION &gt;= 2 */
++
++#if DL_CURRENT_VERSION &gt;= 2
++ case DL_SET_PHYS_ADDR_REQ:
++ case DL_SUBS_BIND_REQ:
++ case DL_SUBS_UNBIND_REQ:
++ case DL_ENABMULTI_REQ:
++ case DL_DISABMULTI_REQ:
++ case DL_XID_REQ:
++ case DL_TEST_REQ:
++ case DL_REPLY_UPDATE_REQ:
++ case DL_REPLY_REQ:
++ case DL_DATA_ACK_REQ:
++#endif
++ case DL_CONNECT_REQ:
++ case DL_TOKEN_REQ:
++ dlpi_error(q, us, d-&gt;dl_primitive, DL_NOTSUPPORTED, 0);
++ break;
++
++ case DL_CONNECT_RES:
++ case DL_DISCONNECT_REQ:
++ case DL_RESET_REQ:
++ case DL_RESET_RES:
++ dlpi_error(q, us, d-&gt;dl_primitive, DL_OUTSTATE, 0);
++ break;
++
++ case DL_UDQOS_REQ:
++ dlpi_error(q, us, d-&gt;dl_primitive, DL_BADQOSTYPE, 0);
++ break;
++
++#if DL_CURRENT_VERSION &gt;= 2
++ case DL_TEST_RES:
++ case DL_XID_RES:
++ break;
++#endif
++
++ default:
++ cmn_err(CE_CONT, &quot;ppp: unknown dlpi prim 0x%x\n&quot;, d-&gt;dl_primitive);
++ /* fall through */
++ badprim:
++ dlpi_error(q, us, d-&gt;dl_primitive, DL_BADPRIM, 0);
++ break;
++ }
++ freemsg(mp);
++}
++
++static void
++dlpi_error(q, us, prim, err, uerr)
++ queue_t *q;
++ upperstr_t *us;
++ int prim, err, uerr;
++{
++ mblk_t *reply;
++ dl_error_ack_t *errp;
++
++ if (us-&gt;flags &amp; US_DBGLOG)
++ DPRINT3(&quot;ppp/%d: dlpi error, prim=%x, err=%x\n&quot;, us-&gt;mn, prim, err);
++ reply = allocb(sizeof(dl_error_ack_t), BPRI_HI);
++ if (reply == 0)
++ return; /* XXX should do bufcall */
++ reply-&gt;b_datap-&gt;db_type = M_PCPROTO;
++ errp = (dl_error_ack_t *) reply-&gt;b_wptr;
++ reply-&gt;b_wptr += sizeof(dl_error_ack_t);
++ errp-&gt;dl_primitive = DL_ERROR_ACK;
++ errp-&gt;dl_error_primitive = prim;
++ errp-&gt;dl_errno = err;
++ errp-&gt;dl_unix_errno = uerr;
++ qreply(q, reply);
++}
++
++static void
++dlpi_ok(q, prim)
++ queue_t *q;
++ int prim;
++{
++ mblk_t *reply;
++ dl_ok_ack_t *okp;
++
++ reply = allocb(sizeof(dl_ok_ack_t), BPRI_HI);
++ if (reply == 0)
++ return; /* XXX should do bufcall */
++ reply-&gt;b_datap-&gt;db_type = M_PCPROTO;
++ okp = (dl_ok_ack_t *) reply-&gt;b_wptr;
++ reply-&gt;b_wptr += sizeof(dl_ok_ack_t);
++ okp-&gt;dl_primitive = DL_OK_ACK;
++ okp-&gt;dl_correct_primitive = prim;
++ qreply(q, reply);
++}
++#endif /* NO_DLPI */
++
++static int
++pass_packet(us, mp, outbound)
++ upperstr_t *us;
++ mblk_t *mp;
++ int outbound;
++{
++ int pass;
++ upperstr_t *ppa;
++
++ if ((ppa = us-&gt;ppa) == 0) {
++ freemsg(mp);
++ return 0;
++ }
++
++#ifdef FILTER_PACKETS
++ pass = ip_hard_filter(us, mp, outbound);
++#else
++ /*
++ * Here is where we might, in future, decide whether to pass
++ * or drop the packet, and whether it counts as link activity.
++ */
++ pass = 1;
++#endif /* FILTER_PACKETS */
++
++ if (pass &lt; 0) {
++ /* pass only if link already up, and don't update time */
++ if (ppa-&gt;lowerq == 0) {
++ freemsg(mp);
++ return 0;
++ }
++ pass = 1;
++ } else if (pass) {
++ if (outbound)
++ ppa-&gt;last_sent = time;
++ else
++ ppa-&gt;last_recv = time;
++ }
++
++ return pass;
++}
++
++/*
++ * We have some data to send down to the lower stream (or up the
++ * control stream, if we don't have a lower stream attached).
++ * Returns 1 if the message was dealt with, 0 if it wasn't able
++ * to be sent on and should therefore be queued up.
++ */
++static int
++send_data(mp, us)
++ mblk_t *mp;
++ upperstr_t *us;
++{
++ upperstr_t *ppa;
++
++ if ((us-&gt;flags &amp; US_BLOCKED) || us-&gt;npmode == NPMODE_QUEUE)
++ return 0;
++ ppa = us-&gt;ppa;
++ if (ppa == 0 || us-&gt;npmode == NPMODE_DROP || us-&gt;npmode == NPMODE_ERROR) {
++ if (us-&gt;flags &amp; US_DBGLOG)
++ DPRINT2(&quot;ppp/%d: dropping pkt (npmode=%d)\n&quot;, us-&gt;mn, us-&gt;npmode);
++ freemsg(mp);
++ return 1;
++ }
++ if (ppa-&gt;lowerq == 0) {
++ /* try to send it up the control stream */
++ if (bcanputnext(ppa-&gt;q, mp-&gt;b_band)) {
++ /*
++ * The message seems to get corrupted for some reason if
++ * we just send the message up as it is, so we send a copy.
++ */
++ mblk_t *np = copymsg(mp);
++ freemsg(mp);
++ if (np != 0)
++ putnext(ppa-&gt;q, np);
++ return 1;
++ }
++ } else {
++ if (bcanputnext(ppa-&gt;lowerq, mp-&gt;b_band)) {
++ MT_ENTER(&amp;ppa-&gt;stats_lock);
++ ppa-&gt;stats.ppp_opackets++;
++ ppa-&gt;stats.ppp_obytes += msgdsize(mp);
++#ifdef INCR_OPACKETS
++ INCR_OPACKETS(ppa);
++#endif
++ MT_EXIT(&amp;ppa-&gt;stats_lock);
++ /*
++ * The lower queue is only ever detached while holding an
++ * exclusive lock on the whole driver. So we can be confident
++ * that the lower queue is still there.
++ */
++ putnext(ppa-&gt;lowerq, mp);
++ return 1;
++ }
++ }
++ us-&gt;flags |= US_BLOCKED;
++ return 0;
++}
++
++/*
++ * Allocate a new PPA id and link this stream into the list of PPAs.
++ * This procedure is called with an exclusive lock on all queues in
++ * this driver.
++ */
++static void
++new_ppa(q, mp)
++ queue_t *q;
++ mblk_t *mp;
++{
++ upperstr_t *us, *up, **usp;
++ int ppa_id;
++
++ us = (upperstr_t *) q-&gt;q_ptr;
++ if (us == 0) {
++ DPRINT(&quot;new_ppa: q_ptr = 0!\n&quot;);
++ return;
++ }
++
++ usp = &amp;ppas;
++ ppa_id = 0;
++ while ((up = *usp) != 0 &amp;&amp; ppa_id == up-&gt;ppa_id) {
++ ++ppa_id;
++ usp = &amp;up-&gt;nextppa;
++ }
++ us-&gt;ppa_id = ppa_id;
++ us-&gt;ppa = us;
++ us-&gt;next = 0;
++ us-&gt;nextppa = *usp;
++ *usp = us;
++ us-&gt;flags |= US_CONTROL;
++ us-&gt;npmode = NPMODE_PASS;
++
++ us-&gt;mtu = PPP_MTU;
++ us-&gt;mru = PPP_MRU;
++
++#ifdef SOL2
++ /*
++ * Create a kstats record for our statistics, so netstat -i works.
++ */
++ if (us-&gt;kstats == 0) {
++ char unit[32];
++
++ sprintf(unit, &quot;ppp%d&quot;, us-&gt;ppa-&gt;ppa_id);
++ us-&gt;kstats = kstat_create(&quot;ppp&quot;, us-&gt;ppa-&gt;ppa_id, unit,
++ &quot;net&quot;, KSTAT_TYPE_NAMED, 4, 0);
++ if (us-&gt;kstats != 0) {
++ kstat_named_t *kn = KSTAT_NAMED_PTR(us-&gt;kstats);
++
++ strcpy(kn[0].name, &quot;ipackets&quot;);
++ kn[0].data_type = KSTAT_DATA_ULONG;
++ strcpy(kn[1].name, &quot;ierrors&quot;);
++ kn[1].data_type = KSTAT_DATA_ULONG;
++ strcpy(kn[2].name, &quot;opackets&quot;);
++ kn[2].data_type = KSTAT_DATA_ULONG;
++ strcpy(kn[3].name, &quot;oerrors&quot;);
++ kn[3].data_type = KSTAT_DATA_ULONG;
++ kstat_install(us-&gt;kstats);
++ }
++ }
++#endif /* SOL2 */
++
++ *(int *)mp-&gt;b_cont-&gt;b_rptr = ppa_id;
++ mp-&gt;b_datap-&gt;db_type = M_IOCACK;
++ qreply(q, mp);
++}
++
++static void
++attach_ppa(q, mp)
++ queue_t *q;
++ mblk_t *mp;
++{
++ upperstr_t *us, *t;
++
++ us = (upperstr_t *) q-&gt;q_ptr;
++ if (us == 0) {
++ DPRINT(&quot;attach_ppa: q_ptr = 0!\n&quot;);
++ return;
++ }
++
++#ifndef NO_DLPI
++ us-&gt;state = DL_UNBOUND;
++#endif
++ for (t = us-&gt;ppa; t-&gt;next != 0; t = t-&gt;next)
++ ;
++ t-&gt;next = us;
++ us-&gt;next = 0;
++ if (mp-&gt;b_datap-&gt;db_type == M_IOCTL) {
++ mp-&gt;b_datap-&gt;db_type = M_IOCACK;
++ qreply(q, mp);
++ } else {
++#ifndef NO_DLPI
++ dlpi_ok(q, DL_ATTACH_REQ);
++#endif
++ }
++}
++
++static void
++detach_ppa(q, mp)
++ queue_t *q;
++ mblk_t *mp;
++{
++ upperstr_t *us, *t;
++
++ us = (upperstr_t *) q-&gt;q_ptr;
++ if (us == 0) {
++ DPRINT(&quot;detach_ppa: q_ptr = 0!\n&quot;);
++ return;
++ }
++
++ for (t = us-&gt;ppa; t-&gt;next != 0; t = t-&gt;next)
++ if (t-&gt;next == us) {
++ t-&gt;next = us-&gt;next;
++ break;
++ }
++ us-&gt;next = 0;
++ us-&gt;ppa = 0;
++#ifndef NO_DLPI
++ us-&gt;state = DL_UNATTACHED;
++ dlpi_ok(q, DL_DETACH_REQ);
++#endif
++}
++
++/*
++ * We call this with qwriter in order to give the upper queue procedures
++ * the guarantee that the lower queue is not going to go away while
++ * they are executing.
++ */
++static void
++detach_lower(q, mp)
++ queue_t *q;
++ mblk_t *mp;
++{
++ upperstr_t *us;
++
++ us = (upperstr_t *) q-&gt;q_ptr;
++ if (us == 0) {
++ DPRINT(&quot;detach_lower: q_ptr = 0!\n&quot;);
++ return;
++ }
++
++ LOCK_LOWER_W;
++ us-&gt;lowerq-&gt;q_ptr = 0;
++ RD(us-&gt;lowerq)-&gt;q_ptr = 0;
++ us-&gt;lowerq = 0;
++ UNLOCK_LOWER;
++
++ /* Unblock streams which now feed back up the control stream. */
++ qenable(us-&gt;q);
++
++ mp-&gt;b_datap-&gt;db_type = M_IOCACK;
++ qreply(q, mp);
++}
++
++static int
++pppuwsrv(q)
++ queue_t *q;
++{
++ upperstr_t *us, *as;
++ mblk_t *mp;
++
++ us = (upperstr_t *) q-&gt;q_ptr;
++ if (us == 0) {
++ DPRINT(&quot;pppuwsrv: q_ptr = 0!\n&quot;);
++ return 0;
++ }
++
++ /*
++ * If this is a control stream, then this service procedure
++ * probably got enabled because of flow control in the lower
++ * stream being enabled (or because of the lower stream going
++ * away). Therefore we enable the service procedure of all
++ * attached upper streams.
++ */
++ if (us-&gt;flags &amp; US_CONTROL) {
++ for (as = us-&gt;next; as != 0; as = as-&gt;next)
++ qenable(WR(as-&gt;q));
++ }
++
++ /* Try to send on any data queued here. */
++ us-&gt;flags &amp;= ~US_BLOCKED;
++ while ((mp = getq(q)) != 0) {
++ if (!send_data(mp, us)) {
++ putbq(q, mp);
++ break;
++ }
++ }
++
++ return 0;
++}
++
++/* should never get called... */
++static int
++ppplwput(q, mp)
++ queue_t *q;
++ mblk_t *mp;
++{
++ putnext(q, mp);
++ return 0;
++}
++
++static int
++ppplwsrv(q)
++ queue_t *q;
++{
++ queue_t *uq;
++
++ /*
++ * Flow control has back-enabled this stream:
++ * enable the upper write service procedure for
++ * the upper control stream for this lower stream.
++ */
++ LOCK_LOWER_R;
++ uq = (queue_t *) q-&gt;q_ptr;
++ if (uq != 0)
++ qenable(uq);
++ UNLOCK_LOWER;
++ return 0;
++}
++
++/*
++ * This should only get called for control streams.
++ */
++static int
++pppurput(q, mp)
++ queue_t *q;
++ mblk_t *mp;
++{
++ upperstr_t *ppa, *us;
++ int proto, len;
++ struct iocblk *iop;
++
++ ppa = (upperstr_t *) q-&gt;q_ptr;
++ if (ppa == 0) {
++ DPRINT(&quot;pppurput: q_ptr = 0!\n&quot;);
++ return 0;
++ }
++
++ switch (mp-&gt;b_datap-&gt;db_type) {
++ case M_CTL:
++ MT_ENTER(&amp;ppa-&gt;stats_lock);
++ switch (*mp-&gt;b_rptr) {
++ case PPPCTL_IERROR:
++#ifdef INCR_IERRORS
++ INCR_IERRORS(ppa);
++#endif
++ ppa-&gt;stats.ppp_ierrors++;
++ break;
++ case PPPCTL_OERROR:
++#ifdef INCR_OERRORS
++ INCR_OERRORS(ppa);
++#endif
++ ppa-&gt;stats.ppp_oerrors++;
++ break;
++ }
++ MT_EXIT(&amp;ppa-&gt;stats_lock);
++ freemsg(mp);
++ break;
++
++ case M_IOCACK:
++ case M_IOCNAK:
++ /*
++ * Attempt to match up the response with the stream
++ * that the request came from.
++ */
++ iop = (struct iocblk *) mp-&gt;b_rptr;
++ for (us = ppa; us != 0; us = us-&gt;next)
++ if (us-&gt;ioc_id == iop-&gt;ioc_id)
++ break;
++ if (us == 0)
++ freemsg(mp);
++ else
++ putnext(us-&gt;q, mp);
++ break;
++
++ case M_HANGUP:
++ /*
++ * The serial device has hung up. We don't want to send
++ * the M_HANGUP message up to pppd because that will stop
++ * us from using the control stream any more. Instead we
++ * send a zero-length message as an end-of-file indication.
++ */
++ freemsg(mp);
++ mp = allocb(1, BPRI_HI);
++ if (mp == 0) {
++ DPRINT1(&quot;ppp/%d: couldn't allocate eof message!\n&quot;, ppa-&gt;mn);
++ break;
++ }
++ putnext(ppa-&gt;q, mp);
++ break;
++
++ default:
++ if (mp-&gt;b_datap-&gt;db_type == M_DATA) {
++ len = msgdsize(mp);
++ if (mp-&gt;b_wptr - mp-&gt;b_rptr &lt; PPP_HDRLEN) {
++ PULLUP(mp, PPP_HDRLEN);
++ if (mp == 0) {
++ DPRINT1(&quot;ppp_urput: msgpullup failed (len=%d)\n&quot;, len);
++ break;
++ }
++ }
++ MT_ENTER(&amp;ppa-&gt;stats_lock);
++ ppa-&gt;stats.ppp_ipackets++;
++ ppa-&gt;stats.ppp_ibytes += len;
++#ifdef INCR_IPACKETS
++ INCR_IPACKETS(ppa);
++#endif
++ MT_EXIT(&amp;ppa-&gt;stats_lock);
++
++ proto = PPP_PROTOCOL(mp-&gt;b_rptr);
++
++#if defined(SOL2)
++ /*
++ * Should there be any promiscuous stream(s), send the data
++ * up for each promiscuous stream that we recognize.
++ */
++ promisc_sendup(ppa, mp, proto, 1);
++#endif /* defined(SOL2) */
++
++ if (proto &lt; 0x8000 &amp;&amp; (us = find_dest(ppa, proto)) != 0) {
++ /*
++ * A data packet for some network protocol.
++ * Queue it on the upper stream for that protocol.
++ * XXX could we just putnext it? (would require thought)
++ * The rblocked flag is there to ensure that we keep
++ * messages in order for each network protocol.
++ */
++ if (!pass_packet(us, mp, 0))
++ break;
++ if (!us-&gt;rblocked &amp;&amp; !canput(us-&gt;q))
++ us-&gt;rblocked = 1;
++ if (!us-&gt;rblocked)
++ putq(us-&gt;q, mp);
++ else
++ putq(q, mp);
++ break;
++ }
++ }
++ /*
++ * A control frame, a frame for an unknown protocol,
++ * or some other message type.
++ * Send it up to pppd via the control stream.
++ */
++ if (queclass(mp) == QPCTL || canputnext(ppa-&gt;q))
++ putnext(ppa-&gt;q, mp);
++ else
++ putq(q, mp);
++ break;
++ }
++
++ return 0;
++}
++
++static int
++pppursrv(q)
++ queue_t *q;
++{
++ upperstr_t *us, *as;
++ mblk_t *mp, *hdr;
++#ifndef NO_DLPI
++ dl_unitdata_ind_t *ud;
++#endif
++ int proto;
++
++ us = (upperstr_t *) q-&gt;q_ptr;
++ if (us == 0) {
++ DPRINT(&quot;pppursrv: q_ptr = 0!\n&quot;);
++ return 0;
++ }
++
++ if (us-&gt;flags &amp; US_CONTROL) {
++ /*
++ * A control stream.
++ * If there is no lower queue attached, run the write service
++ * routines of other upper streams attached to this PPA.
++ */
++ if (us-&gt;lowerq == 0) {
++ as = us;
++ do {
++ if (as-&gt;flags &amp; US_BLOCKED)
++ qenable(WR(as-&gt;q));
++ as = as-&gt;next;
++ } while (as != 0);
++ }
++
++ /*
++ * Messages get queued on this stream's read queue if they
++ * can't be queued on the read queue of the attached stream
++ * that they are destined for. This is for flow control -
++ * when this queue fills up, the lower read put procedure will
++ * queue messages there and the flow control will propagate
++ * down from there.
++ */
++ while ((mp = getq(q)) != 0) {
++ proto = PPP_PROTOCOL(mp-&gt;b_rptr);
++ if (proto &lt; 0x8000 &amp;&amp; (as = find_dest(us, proto)) != 0) {
++ if (!canput(as-&gt;q))
++ break;
++ putq(as-&gt;q, mp);
++ } else {
++ if (!canputnext(q))
++ break;
++ putnext(q, mp);
++ }
++ }
++ if (mp) {
++ putbq(q, mp);
++ } else {
++ /* can now put stuff directly on network protocol streams again */
++ for (as = us-&gt;next; as != 0; as = as-&gt;next)
++ as-&gt;rblocked = 0;
++ }
++
++ /*
++ * If this stream has a lower stream attached,
++ * enable the read queue's service routine.
++ * XXX we should really only do this if the queue length
++ * has dropped below the low-water mark.
++ */
++ if (us-&gt;lowerq != 0)
++ qenable(RD(us-&gt;lowerq));
++
++ } else {
++ /*
++ * A network protocol stream. Put a DLPI header on each
++ * packet and send it on.
++ * (Actually, it seems that the IP module will happily
++ * accept M_DATA messages without the DL_UNITDATA_IND header.)
++ */
++ while ((mp = getq(q)) != 0) {
++ if (!canputnext(q)) {
++ putbq(q, mp);
++ break;
++ }
++#ifndef NO_DLPI
++ proto = PPP_PROTOCOL(mp-&gt;b_rptr);
++ mp-&gt;b_rptr += PPP_HDRLEN;
++ hdr = allocb(sizeof(dl_unitdata_ind_t) + 2 * sizeof(uint),
++ BPRI_MED);
++ if (hdr == 0) {
++ /* XXX should put it back and use bufcall */
++ freemsg(mp);
++ continue;
++ }
++ hdr-&gt;b_datap-&gt;db_type = M_PROTO;
++ ud = (dl_unitdata_ind_t *) hdr-&gt;b_wptr;
++ hdr-&gt;b_wptr += sizeof(dl_unitdata_ind_t) + 2 * sizeof(uint);
++ hdr-&gt;b_cont = mp;
++ ud-&gt;dl_primitive = DL_UNITDATA_IND;
++ ud-&gt;dl_dest_addr_length = sizeof(uint);
++ ud-&gt;dl_dest_addr_offset = sizeof(dl_unitdata_ind_t);
++ ud-&gt;dl_src_addr_length = sizeof(uint);
++ ud-&gt;dl_src_addr_offset = ud-&gt;dl_dest_addr_offset + sizeof(uint);
++#if DL_CURRENT_VERSION &gt;= 2
++ ud-&gt;dl_group_address = 0;
++#endif
++ /* Send the DLPI client the data with the SAP they requested,
++ (e.g. ETHERTYPE_IP) rather than the PPP protocol number
++ (e.g. PPP_IP) */
++ ((uint *)(ud + 1))[0] = us-&gt;req_sap; /* dest SAP */
++ ((uint *)(ud + 1))[1] = us-&gt;req_sap; /* src SAP */
++ putnext(q, hdr);
++#else /* NO_DLPI */
++ putnext(q, mp);
++#endif /* NO_DLPI */
++ }
++ /*
++ * Now that we have consumed some packets from this queue,
++ * enable the control stream's read service routine so that we
++ * can process any packets for us that might have got queued
++ * there for flow control reasons.
++ */
++ if (us-&gt;ppa)
++ qenable(us-&gt;ppa-&gt;q);
++ }
++
++ return 0;
++}
++
++static upperstr_t *
++find_dest(ppa, proto)
++ upperstr_t *ppa;
++ int proto;
++{
++ upperstr_t *us;
++
++ for (us = ppa-&gt;next; us != 0; us = us-&gt;next)
++ if (proto == us-&gt;sap)
++ break;
++ return us;
++}
++
++#if defined (SOL2)
++/*
++ * Test upstream promiscuous conditions. As of now, only pass IPv4 and
++ * Ipv6 packets upstream (let PPP packets be decoded elsewhere).
++ */
++static upperstr_t *
++find_promisc(us, proto)
++ upperstr_t *us;
++ int proto;
++{
++
++ if ((proto != PPP_IP) &amp;&amp; (proto != PPP_IPV6))
++ return (upperstr_t *)0;
++
++ for ( ; us; us = us-&gt;next) {
++ if ((us-&gt;flags &amp; US_PROMISC) &amp;&amp; (us-&gt;state == DL_IDLE))
++ return us;
++ }
++
++ return (upperstr_t *)0;
++}
++
++/*
++ * Prepend an empty Ethernet header to msg for snoop, et al.
++ */
++static mblk_t *
++prepend_ether(us, mp, proto)
++ upperstr_t *us;
++ mblk_t *mp;
++ int proto;
++{
++ mblk_t *eh;
++ int type;
++
++ if ((eh = allocb(sizeof(struct ether_header), BPRI_HI)) == 0) {
++ freemsg(mp);
++ return (mblk_t *)0;
++ }
++
++ if (proto == PPP_IP)
++ type = ETHERTYPE_IP;
++ else if (proto == PPP_IPV6)
++ type = ETHERTYPE_IPV6;
++ else
++ type = proto; /* What else? Let decoder decide */
++
++ eh-&gt;b_wptr += sizeof(struct ether_header);
++ bzero((caddr_t)eh-&gt;b_rptr, sizeof(struct ether_header));
++ ((struct ether_header *)eh-&gt;b_rptr)-&gt;ether_type = htons((short)type);
++ eh-&gt;b_cont = mp;
++ return (eh);
++}
++
++/*
++ * Prepend DL_UNITDATA_IND mblk to msg
++ */
++static mblk_t *
++prepend_udind(us, mp, proto)
++ upperstr_t *us;
++ mblk_t *mp;
++ int proto;
++{
++ dl_unitdata_ind_t *dlu;
++ mblk_t *dh;
++ size_t size;
++
++ size = sizeof(dl_unitdata_ind_t);
++ if ((dh = allocb(size, BPRI_MED)) == 0) {
++ freemsg(mp);
++ return (mblk_t *)0;
++ }
++
++ dh-&gt;b_datap-&gt;db_type = M_PROTO;
++ dh-&gt;b_wptr = dh-&gt;b_datap-&gt;db_lim;
++ dh-&gt;b_rptr = dh-&gt;b_wptr - size;
++
++ dlu = (dl_unitdata_ind_t *)dh-&gt;b_rptr;
++ dlu-&gt;dl_primitive = DL_UNITDATA_IND;
++ dlu-&gt;dl_dest_addr_length = 0;
++ dlu-&gt;dl_dest_addr_offset = sizeof(dl_unitdata_ind_t);
++ dlu-&gt;dl_src_addr_length = 0;
++ dlu-&gt;dl_src_addr_offset = sizeof(dl_unitdata_ind_t);
++ dlu-&gt;dl_group_address = 0;
++
++ dh-&gt;b_cont = mp;
++ return (dh);
++}
++
++/*
++ * For any recognized promiscuous streams, send data upstream
++ */
++static void
++promisc_sendup(ppa, mp, proto, skip)
++ upperstr_t *ppa;
++ mblk_t *mp;
++ int proto, skip;
++{
++ mblk_t *dup_mp, *dup_dup_mp;
++ upperstr_t *prus, *nprus;
++
++ if ((prus = find_promisc(ppa, proto)) != 0) {
++ if (dup_mp = dupmsg(mp)) {
++
++ if (skip)
++ dup_mp-&gt;b_rptr += PPP_HDRLEN;
++
++ for ( ; nprus = find_promisc(prus-&gt;next, proto);
++ prus = nprus) {
++
++ if (dup_dup_mp = dupmsg(dup_mp)) {
++ if (canputnext(prus-&gt;q)) {
++ if (prus-&gt;flags &amp; US_RAWDATA) {
++ dup_dup_mp = prepend_ether(prus, dup_dup_mp, proto);
++ putnext(prus-&gt;q, dup_dup_mp);
++ } else {
++ dup_dup_mp = prepend_udind(prus, dup_dup_mp, proto);
++ putnext(prus-&gt;q, dup_dup_mp);
++ }
++ } else {
++ DPRINT(&quot;ppp_urput: data to promisc q dropped\n&quot;);
++ freemsg(dup_dup_mp);
++ }
++ }
++ }
++
++ if (canputnext(prus-&gt;q)) {
++ if (prus-&gt;flags &amp; US_RAWDATA) {
++ dup_mp = prepend_ether(prus, dup_mp, proto);
++ putnext(prus-&gt;q, dup_mp);
++ } else {
++ dup_mp = prepend_udind(prus, dup_mp, proto);
++ putnext(prus-&gt;q, dup_mp);
++ }
++ } else {
++ DPRINT(&quot;ppp_urput: data to promisc q dropped\n&quot;);
++ freemsg(dup_mp);
++ }
++ }
++ }
++}
++#endif /* defined(SOL2) */
++
++/*
++ * We simply put the message on to the associated upper control stream
++ * (either here or in ppplrsrv). That way we enter the perimeters
++ * before looking through the list of attached streams to decide which
++ * stream it should go up.
++ */
++static int
++ppplrput(q, mp)
++ queue_t *q;
++ mblk_t *mp;
++{
++ queue_t *uq;
++ struct iocblk *iop;
++
++ switch (mp-&gt;b_datap-&gt;db_type) {
++ case M_IOCTL:
++ iop = (struct iocblk *) mp-&gt;b_rptr;
++ iop-&gt;ioc_error = EINVAL;
++ mp-&gt;b_datap-&gt;db_type = M_IOCNAK;
++ qreply(q, mp);
++ return 0;
++ case M_FLUSH:
++ if (*mp-&gt;b_rptr &amp; FLUSHR)
++ flushq(q, FLUSHDATA);
++ if (*mp-&gt;b_rptr &amp; FLUSHW) {
++ *mp-&gt;b_rptr &amp;= ~FLUSHR;
++ qreply(q, mp);
++ } else
++ freemsg(mp);
++ return 0;
++ }
++
++ /*
++ * If we can't get the lower lock straight away, queue this one
++ * rather than blocking, to avoid the possibility of deadlock.
++ */
++ if (!TRYLOCK_LOWER_R) {
++ putq(q, mp);
++ return 0;
++ }
++
++ /*
++ * Check that we're still connected to the driver.
++ */
++ uq = (queue_t *) q-&gt;q_ptr;
++ if (uq == 0) {
++ UNLOCK_LOWER;
++ DPRINT1(&quot;ppplrput: q = %x, uq = 0??\n&quot;, q);
++ freemsg(mp);
++ return 0;
++ }
++
++ /*
++ * Try to forward the message to the put routine for the upper
++ * control stream for this lower stream.
++ * If there are already messages queued here, queue this one so
++ * they don't get out of order.
++ */
++ if (queclass(mp) == QPCTL || (qsize(q) == 0 &amp;&amp; canput(uq)))
++ put(uq, mp);
++ else
++ putq(q, mp);
++
++ UNLOCK_LOWER;
++ return 0;
++}
++
++static int
++ppplrsrv(q)
++ queue_t *q;
++{
++ mblk_t *mp;
++ queue_t *uq;
++
++ /*
++ * Packets get queued here for flow control reasons
++ * or if the lrput routine couldn't get the lower lock
++ * without blocking.
++ */
++ LOCK_LOWER_R;
++ uq = (queue_t *) q-&gt;q_ptr;
++ if (uq == 0) {
++ UNLOCK_LOWER;
++ flushq(q, FLUSHALL);
++ DPRINT1(&quot;ppplrsrv: q = %x, uq = 0??\n&quot;, q);
++ return 0;
++ }
++ while ((mp = getq(q)) != 0) {
++ if (queclass(mp) == QPCTL || canput(uq))
++ put(uq, mp);
++ else {
++ putbq(q, mp);
++ break;
++ }
++ }
++ UNLOCK_LOWER;
++ return 0;
++}
++
++static int
++putctl2(q, type, code, val)
++ queue_t *q;
++ int type, code, val;
++{
++ mblk_t *mp;
++
++ mp = allocb(2, BPRI_HI);
++ if (mp == 0)
++ return 0;
++ mp-&gt;b_datap-&gt;db_type = type;
++ mp-&gt;b_wptr[0] = code;
++ mp-&gt;b_wptr[1] = val;
++ mp-&gt;b_wptr += 2;
++ putnext(q, mp);
++ return 1;
++}
++
++static int
++putctl4(q, type, code, val)
++ queue_t *q;
++ int type, code, val;
++{
++ mblk_t *mp;
++
++ mp = allocb(4, BPRI_HI);
++ if (mp == 0)
++ return 0;
++ mp-&gt;b_datap-&gt;db_type = type;
++ mp-&gt;b_wptr[0] = code;
++ ((short *)mp-&gt;b_wptr)[1] = val;
++ mp-&gt;b_wptr += 4;
++ putnext(q, mp);
++ return 1;
++}
++
++static void
++debug_dump(q, mp)
++ queue_t *q;
++ mblk_t *mp;
++{
++ upperstr_t *us;
++ queue_t *uq, *lq;
++
++ DPRINT(&quot;ppp upper streams:\n&quot;);
++ for (us = minor_devs; us != 0; us = us-&gt;nextmn) {
++ uq = us-&gt;q;
++ DPRINT3(&quot; %d: q=%x rlev=%d&quot;,
++ us-&gt;mn, uq, (uq? qsize(uq): 0));
++ DPRINT3(&quot; wlev=%d flags=0x%b&quot;, (uq? qsize(WR(uq)): 0),
++ us-&gt;flags, &quot;\020\1priv\2control\3blocked\4last&quot;);
++ DPRINT3(&quot; state=%x sap=%x req_sap=%x&quot;, us-&gt;state, us-&gt;sap,
++ us-&gt;req_sap);
++ if (us-&gt;ppa == 0)
++ DPRINT(&quot; ppa=?\n&quot;);
++ else
++ DPRINT1(&quot; ppa=%d\n&quot;, us-&gt;ppa-&gt;ppa_id);
++ if (us-&gt;flags &amp; US_CONTROL) {
++ lq = us-&gt;lowerq;
++ DPRINT3(&quot; control for %d lq=%x rlev=%d&quot;,
++ us-&gt;ppa_id, lq, (lq? qsize(RD(lq)): 0));
++ DPRINT3(&quot; wlev=%d mru=%d mtu=%d\n&quot;,
++ (lq? qsize(lq): 0), us-&gt;mru, us-&gt;mtu);
++ }
++ }
++ mp-&gt;b_datap-&gt;db_type = M_IOCACK;
++ qreply(q, mp);
++}
++
++#ifdef FILTER_PACKETS
++#include &lt;netinet/in_systm.h&gt;
++#include &lt;netinet/ip.h&gt;
++#include &lt;netinet/udp.h&gt;
++#include &lt;netinet/tcp.h&gt;
++
++#define MAX_IPHDR 128 /* max TCP/IP header size */
++
++
++/* The following table contains a hard-coded list of protocol/port pairs.
++ * Any matching packets are either discarded unconditionally, or,
++ * if ok_if_link_up is non-zero when a connection does not currently exist
++ * (i.e., they go through if the connection is present, but never initiate
++ * a dial-out).
++ * This idea came from a post by dm@garage.uun.org (David Mazieres)
++ */
++static struct pktfilt_tab {
++ int proto;
++ u_short port;
++ u_short ok_if_link_up;
++} pktfilt_tab[] = {
++ { IPPROTO_UDP, 520, 1 }, /* RIP, ok to pass if link is up */
++ { IPPROTO_UDP, 123, 1 }, /* NTP, don't keep up the link for it */
++ { -1, 0, 0 } /* terminator entry has port == -1 */
++};
++
++
++static int
++ip_hard_filter(us, mp, outbound)
++ upperstr_t *us;
++ mblk_t *mp;
++ int outbound;
++{
++ struct ip *ip;
++ struct pktfilt_tab *pft;
++ mblk_t *temp_mp;
++ int proto;
++ int len, hlen;
++
++
++ /* Note, the PPP header has already been pulled up in all cases */
++ proto = PPP_PROTOCOL(mp-&gt;b_rptr);
++ if (us-&gt;flags &amp; US_DBGLOG)
++ DPRINT3(&quot;ppp/%d: filter, proto=0x%x, out=%d\n&quot;, us-&gt;mn, proto, outbound);
++
++ switch (proto)
++ {
++ case PPP_IP:
++ if ((mp-&gt;b_wptr - mp-&gt;b_rptr) == PPP_HDRLEN &amp;&amp; mp-&gt;b_cont != 0) {
++ temp_mp = mp-&gt;b_cont;
++ len = msgdsize(temp_mp);
++ hlen = (len &lt; MAX_IPHDR) ? len : MAX_IPHDR;
++ PULLUP(temp_mp, hlen);
++ if (temp_mp == 0) {
++ DPRINT2(&quot;ppp/%d: filter, pullup next failed, len=%d\n&quot;,
++ us-&gt;mn, hlen);
++ mp-&gt;b_cont = 0; /* PULLUP() freed the rest */
++ freemsg(mp);
++ return 0;
++ }
++ ip = (struct ip *)mp-&gt;b_cont-&gt;b_rptr;
++ }
++ else {
++ len = msgdsize(mp);
++ hlen = (len &lt; (PPP_HDRLEN+MAX_IPHDR)) ? len : (PPP_HDRLEN+MAX_IPHDR);
++ PULLUP(mp, hlen);
++ if (mp == 0) {
++ DPRINT2(&quot;ppp/%d: filter, pullup failed, len=%d\n&quot;,
++ us-&gt;mn, hlen);
++ return 0;
++ }
++ ip = (struct ip *)(mp-&gt;b_rptr + PPP_HDRLEN);
++ }
++
++ /* For IP traffic, certain packets (e.g., RIP) may be either
++ * 1. ignored - dropped completely
++ * 2. will not initiate a connection, but
++ * will be passed if a connection is currently up.
++ */
++ for (pft=pktfilt_tab; pft-&gt;proto != -1; pft++) {
++ if (ip-&gt;ip_p == pft-&gt;proto) {
++ switch(pft-&gt;proto) {
++ case IPPROTO_UDP:
++ if (((struct udphdr *) &amp;((int *)ip)[ip-&gt;ip_hl])-&gt;uh_dport
++ == htons(pft-&gt;port)) goto endfor;
++ break;
++ case IPPROTO_TCP:
++ if (((struct tcphdr *) &amp;((int *)ip)[ip-&gt;ip_hl])-&gt;th_dport
++ == htons(pft-&gt;port)) goto endfor;
++ break;
++ }
++ }
++ }
++ endfor:
++ if (pft-&gt;proto != -1) {
++ if (us-&gt;flags &amp; US_DBGLOG)
++ DPRINT3(&quot;ppp/%d: found IP pkt, proto=0x%x (%d)\n&quot;,
++ us-&gt;mn, pft-&gt;proto, pft-&gt;port);
++ /* Discard if not connected, or if not pass_with_link_up */
++ /* else, if link is up let go by, but don't update time */
++ return pft-&gt;ok_if_link_up? -1: 0;
++ }
++ break;
++ } /* end switch (proto) */
++
++ return 1;
++}
++#endif /* FILTER_PACKETS */
++
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/solaris/ppp.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pppsolarispppconf">Added: drakx/trunk/mdk-stage1/ppp/solaris/ppp.conf</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/solaris/ppp.conf (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/solaris/ppp.conf 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1 @@
++name=&quot;ppp&quot; parent=&quot;pseudo&quot; instance=0;
+
+<a id="drakxtrunkmdkstage1pppsolarisppp_ahdlcc">Added: drakx/trunk/mdk-stage1/ppp/solaris/ppp_ahdlc.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/solaris/ppp_ahdlc.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/solaris/ppp_ahdlc.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,878 @@
++/*
++ * ppp_ahdlc.c - STREAMS module for doing PPP asynchronous HDLC.
++ *
++ * Re-written by Adi Masputra &lt;adi.masputra@sun.com&gt;, based on
++ * the original ppp_ahdlc.c
++ *
++ * Copyright (c) 2000 by Sun Microsystems, Inc.
++ * All rights reserved.
++ *
++ * Permission to use, copy, modify, and distribute this software and its
++ * documentation is hereby granted, provided that the above copyright
++ * notice appears in all copies.
++ *
++ * SUN MAKES NO REPRESENTATION OR WARRANTIES ABOUT THE SUITABILITY OF
++ * THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
++ * TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
++ * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR
++ * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
++ * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES
++ *
++ * Copyright (c) 1994 The Australian National University.
++ * All rights reserved.
++ *
++ * Permission to use, copy, modify, and distribute this software and its
++ * documentation is hereby granted, provided that the above copyright
++ * notice appears in all copies. This software is provided without any
++ * warranty, express or implied. The Australian National University
++ * makes no representations about the suitability of this software for
++ * any purpose.
++ *
++ * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY
++ * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
++ * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
++ * THE AUSTRALIAN NATIONAL UNIVERSITY HAS BEEN ADVISED OF THE POSSIBILITY
++ * OF SUCH DAMAGE.
++ *
++ * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
++ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
++ * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
++ * ON AN &quot;AS IS&quot; BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO
++ * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
++ * OR MODIFICATIONS.
++ *
++ * $Id: ppp_ahdlc.c 195720 2001-06-11 11:44:34Z gc $
++ */
++
++/*
++ * This file is used under Solaris 2, SVR4, SunOS 4, and Digital UNIX.
++ */
++#include &lt;sys/types.h&gt;
++#include &lt;sys/param.h&gt;
++#include &lt;sys/stream.h&gt;
++#include &lt;sys/errno.h&gt;
++
++#ifdef SVR4
++#include &lt;sys/conf.h&gt;
++#include &lt;sys/kmem.h&gt;
++#include &lt;sys/cmn_err.h&gt;
++#include &lt;sys/ddi.h&gt;
++#else
++#include &lt;sys/user.h&gt;
++#ifdef __osf__
++#include &lt;sys/cmn_err.h&gt;
++#endif
++#endif /* SVR4 */
++
++#include &lt;net/ppp_defs.h&gt;
++#include &lt;net/pppio.h&gt;
++#include &quot;ppp_mod.h&quot;
++
++/*
++ * Right now, mutex is only enabled for Solaris 2.x
++ */
++#if defined(SOL2)
++#define USE_MUTEX
++#endif /* SOL2 */
++
++/*
++ * intpointer_t and uintpointer_t are signed and unsigned integer types
++ * large enough to hold any data pointer; that is, data pointers can be
++ * assigned into or from these integer types without losing precision.
++ * On recent Solaris releases, these types are defined in sys/int_types.h,
++ * but not on SunOS 4.x or the earlier Solaris versions.
++ */
++#if defined(_LP64) || defined(_I32LPx)
++typedef long intpointer_t;
++typedef unsigned long uintpointer_t;
++#else
++typedef int intpointer_t;
++typedef unsigned int uintpointer_t;
++#endif
++
++MOD_OPEN_DECL(ahdlc_open);
++MOD_CLOSE_DECL(ahdlc_close);
++static int ahdlc_wput __P((queue_t *, mblk_t *));
++static int ahdlc_rput __P((queue_t *, mblk_t *));
++static void ahdlc_encode __P((queue_t *, mblk_t *));
++static void ahdlc_decode __P((queue_t *, mblk_t *));
++static int msg_byte __P((mblk_t *, unsigned int));
++
++#if defined(SOL2)
++/*
++ * Don't send HDLC start flag is last transmit is within 1.5 seconds -
++ * FLAG_TIME is defined is microseconds
++ */
++#define FLAG_TIME 1500
++#define ABS(x) (x &gt;= 0 ? x : (-x))
++#endif /* SOL2 */
++
++/*
++ * Extract byte i of message mp
++ */
++#define MSG_BYTE(mp, i) ((i) &lt; (mp)-&gt;b_wptr - (mp)-&gt;b_rptr? (mp)-&gt;b_rptr[i]: \
++ msg_byte((mp), (i)))
++
++/*
++ * Is this LCP packet one we have to transmit using LCP defaults?
++ */
++#define LCP_USE_DFLT(mp) (1 &lt;= (code = MSG_BYTE((mp), 4)) &amp;&amp; code &lt;= 7)
++
++/*
++ * Standard STREAMS declarations
++ */
++static struct module_info minfo = {
++ 0x7d23, &quot;ppp_ahdl&quot;, 0, INFPSZ, 32768, 512
++};
++
++static struct qinit rinit = {
++ ahdlc_rput, NULL, ahdlc_open, ahdlc_close, NULL, &amp;minfo, NULL
++};
++
++static struct qinit winit = {
++ ahdlc_wput, NULL, NULL, NULL, NULL, &amp;minfo, NULL
++};
++
++#if defined(SVR4) &amp;&amp; !defined(SOL2)
++int phdldevflag = 0;
++#define ppp_ahdlcinfo phdlinfo
++#endif /* defined(SVR4) &amp;&amp; !defined(SOL2) */
++
++struct streamtab ppp_ahdlcinfo = {
++ &amp;rinit, /* ptr to st_rdinit */
++ &amp;winit, /* ptr to st_wrinit */
++ NULL, /* ptr to st_muxrinit */
++ NULL, /* ptr to st_muxwinit */
++#if defined(SUNOS4)
++ NULL /* ptr to ptr to st_modlist */
++#endif /* SUNOS4 */
++};
++
++#if defined(SUNOS4)
++int ppp_ahdlc_count = 0; /* open counter */
++#endif /* SUNOS4 */
++
++/*
++ * Per-stream state structure
++ */
++typedef struct ahdlc_state {
++#if defined(USE_MUTEX)
++ kmutex_t lock; /* lock for this structure */
++#endif /* USE_MUTEX */
++ int flags; /* link flags */
++ mblk_t *rx_buf; /* ptr to receive buffer */
++ int rx_buf_size; /* receive buffer size */
++ ushort_t infcs; /* calculated rx HDLC FCS */
++ u_int32_t xaccm[8]; /* 256-bit xmit ACCM */
++ u_int32_t raccm; /* 32-bit rcv ACCM */
++ int mtu; /* interface MTU */
++ int mru; /* link MRU */
++ int unit; /* current PPP unit number */
++ struct pppstat stats; /* statistic structure */
++#if defined(SOL2)
++ clock_t flag_time; /* time in usec between flags */
++ clock_t lbolt; /* last updated lbolt */
++#endif /* SOL2 */
++} ahdlc_state_t;
++
++/*
++ * Values for flags
++ */
++#define ESCAPED 0x100 /* last saw escape char on input */
++#define IFLUSH 0x200 /* flushing input due to error */
++
++/*
++ * RCV_B7_1, etc., defined in net/pppio.h, are stored in flags also.
++ */
++#define RCV_FLAGS (RCV_B7_1|RCV_B7_0|RCV_ODDP|RCV_EVNP)
++
++/*
++ * FCS lookup table as calculated by genfcstab.
++ */
++static u_short fcstab[256] = {
++ 0x0000, 0x1189, 0x2312, 0x329b, 0x4624, 0x57ad, 0x6536, 0x74bf,
++ 0x8c48, 0x9dc1, 0xaf5a, 0xbed3, 0xca6c, 0xdbe5, 0xe97e, 0xf8f7,
++ 0x1081, 0x0108, 0x3393, 0x221a, 0x56a5, 0x472c, 0x75b7, 0x643e,
++ 0x9cc9, 0x8d40, 0xbfdb, 0xae52, 0xdaed, 0xcb64, 0xf9ff, 0xe876,
++ 0x2102, 0x308b, 0x0210, 0x1399, 0x6726, 0x76af, 0x4434, 0x55bd,
++ 0xad4a, 0xbcc3, 0x8e58, 0x9fd1, 0xeb6e, 0xfae7, 0xc87c, 0xd9f5,
++ 0x3183, 0x200a, 0x1291, 0x0318, 0x77a7, 0x662e, 0x54b5, 0x453c,
++ 0xbdcb, 0xac42, 0x9ed9, 0x8f50, 0xfbef, 0xea66, 0xd8fd, 0xc974,
++ 0x4204, 0x538d, 0x6116, 0x709f, 0x0420, 0x15a9, 0x2732, 0x36bb,
++ 0xce4c, 0xdfc5, 0xed5e, 0xfcd7, 0x8868, 0x99e1, 0xab7a, 0xbaf3,
++ 0x5285, 0x430c, 0x7197, 0x601e, 0x14a1, 0x0528, 0x37b3, 0x263a,
++ 0xdecd, 0xcf44, 0xfddf, 0xec56, 0x98e9, 0x8960, 0xbbfb, 0xaa72,
++ 0x6306, 0x728f, 0x4014, 0x519d, 0x2522, 0x34ab, 0x0630, 0x17b9,
++ 0xef4e, 0xfec7, 0xcc5c, 0xddd5, 0xa96a, 0xb8e3, 0x8a78, 0x9bf1,
++ 0x7387, 0x620e, 0x5095, 0x411c, 0x35a3, 0x242a, 0x16b1, 0x0738,
++ 0xffcf, 0xee46, 0xdcdd, 0xcd54, 0xb9eb, 0xa862, 0x9af9, 0x8b70,
++ 0x8408, 0x9581, 0xa71a, 0xb693, 0xc22c, 0xd3a5, 0xe13e, 0xf0b7,
++ 0x0840, 0x19c9, 0x2b52, 0x3adb, 0x4e64, 0x5fed, 0x6d76, 0x7cff,
++ 0x9489, 0x8500, 0xb79b, 0xa612, 0xd2ad, 0xc324, 0xf1bf, 0xe036,
++ 0x18c1, 0x0948, 0x3bd3, 0x2a5a, 0x5ee5, 0x4f6c, 0x7df7, 0x6c7e,
++ 0xa50a, 0xb483, 0x8618, 0x9791, 0xe32e, 0xf2a7, 0xc03c, 0xd1b5,
++ 0x2942, 0x38cb, 0x0a50, 0x1bd9, 0x6f66, 0x7eef, 0x4c74, 0x5dfd,
++ 0xb58b, 0xa402, 0x9699, 0x8710, 0xf3af, 0xe226, 0xd0bd, 0xc134,
++ 0x39c3, 0x284a, 0x1ad1, 0x0b58, 0x7fe7, 0x6e6e, 0x5cf5, 0x4d7c,
++ 0xc60c, 0xd785, 0xe51e, 0xf497, 0x8028, 0x91a1, 0xa33a, 0xb2b3,
++ 0x4a44, 0x5bcd, 0x6956, 0x78df, 0x0c60, 0x1de9, 0x2f72, 0x3efb,
++ 0xd68d, 0xc704, 0xf59f, 0xe416, 0x90a9, 0x8120, 0xb3bb, 0xa232,
++ 0x5ac5, 0x4b4c, 0x79d7, 0x685e, 0x1ce1, 0x0d68, 0x3ff3, 0x2e7a,
++ 0xe70e, 0xf687, 0xc41c, 0xd595, 0xa12a, 0xb0a3, 0x8238, 0x93b1,
++ 0x6b46, 0x7acf, 0x4854, 0x59dd, 0x2d62, 0x3ceb, 0x0e70, 0x1ff9,
++ 0xf78f, 0xe606, 0xd49d, 0xc514, 0xb1ab, 0xa022, 0x92b9, 0x8330,
++ 0x7bc7, 0x6a4e, 0x58d5, 0x495c, 0x3de3, 0x2c6a, 0x1ef1, 0x0f78
++};
++
++static u_int32_t paritytab[8] =
++{
++ 0x96696996, 0x69969669, 0x69969669, 0x96696996,
++ 0x69969669, 0x96696996, 0x96696996, 0x69969669
++};
++
++/*
++ * STREAMS module open (entry) point
++ */
++MOD_OPEN(ahdlc_open)
++{
++ ahdlc_state_t *state;
++
++ /*
++ * Return if it's already opened
++ */
++ if (q-&gt;q_ptr) {
++ return 0;
++ }
++
++ /*
++ * This can only be opened as a module
++ */
++ if (sflag != MODOPEN) {
++ return 0;
++ }
++
++ state = (ahdlc_state_t *) ALLOC_NOSLEEP(sizeof(ahdlc_state_t));
++ if (state == 0)
++ OPEN_ERROR(ENOSR);
++ bzero((caddr_t) state, sizeof(ahdlc_state_t));
++
++ q-&gt;q_ptr = (caddr_t) state;
++ WR(q)-&gt;q_ptr = (caddr_t) state;
++
++#if defined(USE_MUTEX)
++ mutex_init(&amp;state-&gt;lock, NULL, MUTEX_DEFAULT, NULL);
++ mutex_enter(&amp;state-&gt;lock);
++#endif /* USE_MUTEX */
++
++ state-&gt;xaccm[0] = ~0; /* escape 0x00 through 0x1f */
++ state-&gt;xaccm[3] = 0x60000000; /* escape 0x7d and 0x7e */
++ state-&gt;mru = PPP_MRU; /* default of 1500 bytes */
++#if defined(SOL2)
++ state-&gt;flag_time = drv_usectohz(FLAG_TIME);
++#endif /* SOL2 */
++
++#if defined(USE_MUTEX)
++ mutex_exit(&amp;state-&gt;lock);
++#endif /* USE_MUTEX */
++
++#if defined(SUNOS4)
++ ppp_ahdlc_count++;
++#endif /* SUNOS4 */
++
++ qprocson(q);
++
++ return 0;
++}
++
++/*
++ * STREAMS module close (exit) point
++ */
++MOD_CLOSE(ahdlc_close)
++{
++ ahdlc_state_t *state;
++
++ qprocsoff(q);
++
++ state = (ahdlc_state_t *) q-&gt;q_ptr;
++
++ if (state == 0) {
++ DPRINT(&quot;state == 0 in ahdlc_close\n&quot;);
++ return 0;
++ }
++
++#if defined(USE_MUTEX)
++ mutex_enter(&amp;state-&gt;lock);
++#endif /* USE_MUTEX */
++
++ if (state-&gt;rx_buf != 0) {
++ freemsg(state-&gt;rx_buf);
++ state-&gt;rx_buf = 0;
++ }
++
++#if defined(USE_MUTEX)
++ mutex_exit(&amp;state-&gt;lock);
++ mutex_destroy(&amp;state-&gt;lock);
++#endif /* USE_MUTEX */
++
++ FREE(q-&gt;q_ptr, sizeof(ahdlc_state_t));
++ q-&gt;q_ptr = NULL;
++ OTHERQ(q)-&gt;q_ptr = NULL;
++
++#if defined(SUNOS4)
++ if (ppp_ahdlc_count)
++ ppp_ahdlc_count--;
++#endif /* SUNOS4 */
++
++ return 0;
++}
++
++/*
++ * Write side put routine
++ */
++static int
++ahdlc_wput(q, mp)
++ queue_t *q;
++ mblk_t *mp;
++{
++ ahdlc_state_t *state;
++ struct iocblk *iop;
++ int error;
++ mblk_t *np;
++ struct ppp_stats *psp;
++
++ state = (ahdlc_state_t *) q-&gt;q_ptr;
++ if (state == 0) {
++ DPRINT(&quot;state == 0 in ahdlc_wput\n&quot;);
++ freemsg(mp);
++ return 0;
++ }
++
++ switch (mp-&gt;b_datap-&gt;db_type) {
++ case M_DATA:
++ /*
++ * A data packet - do character-stuffing and FCS, and
++ * send it onwards.
++ */
++ ahdlc_encode(q, mp);
++ freemsg(mp);
++ break;
++
++ case M_IOCTL:
++ iop = (struct iocblk *) mp-&gt;b_rptr;
++ error = EINVAL;
++ switch (iop-&gt;ioc_cmd) {
++ case PPPIO_XACCM:
++ if ((iop-&gt;ioc_count &lt; sizeof(u_int32_t)) ||
++ (iop-&gt;ioc_count &gt; sizeof(ext_accm))) {
++ break;
++ }
++ if (mp-&gt;b_cont == 0) {
++ DPRINT1(&quot;ahdlc_wput/%d: PPPIO_XACCM b_cont = 0!\n&quot;, state-&gt;unit);
++ break;
++ }
++#if defined(USE_MUTEX)
++ mutex_enter(&amp;state-&gt;lock);
++#endif /* USE_MUTEX */
++ bcopy((caddr_t)mp-&gt;b_cont-&gt;b_rptr, (caddr_t)state-&gt;xaccm,
++ iop-&gt;ioc_count);
++ state-&gt;xaccm[2] &amp;= ~0x40000000; /* don't escape 0x5e */
++ state-&gt;xaccm[3] |= 0x60000000; /* do escape 0x7d, 0x7e */
++#if defined(USE_MUTEX)
++ mutex_exit(&amp;state-&gt;lock);
++#endif /* USE_MUTEX */
++ iop-&gt;ioc_count = 0;
++ error = 0;
++ break;
++
++ case PPPIO_RACCM:
++ if (iop-&gt;ioc_count != sizeof(u_int32_t))
++ break;
++ if (mp-&gt;b_cont == 0) {
++ DPRINT1(&quot;ahdlc_wput/%d: PPPIO_RACCM b_cont = 0!\n&quot;, state-&gt;unit);
++ break;
++ }
++#if defined(USE_MUTEX)
++ mutex_enter(&amp;state-&gt;lock);
++#endif /* USE_MUTEX */
++ bcopy((caddr_t)mp-&gt;b_cont-&gt;b_rptr, (caddr_t)&amp;state-&gt;raccm,
++ sizeof(u_int32_t));
++#if defined(USE_MUTEX)
++ mutex_exit(&amp;state-&gt;lock);
++#endif /* USE_MUTEX */
++ iop-&gt;ioc_count = 0;
++ error = 0;
++ break;
++
++ case PPPIO_GCLEAN:
++ np = allocb(sizeof(int), BPRI_HI);
++ if (np == 0) {
++ error = ENOSR;
++ break;
++ }
++ if (mp-&gt;b_cont != 0)
++ freemsg(mp-&gt;b_cont);
++ mp-&gt;b_cont = np;
++#if defined(USE_MUTEX)
++ mutex_enter(&amp;state-&gt;lock);
++#endif /* USE_MUTEX */
++ *(int *)np-&gt;b_wptr = state-&gt;flags &amp; RCV_FLAGS;
++#if defined(USE_MUTEX)
++ mutex_exit(&amp;state-&gt;lock);
++#endif /* USE_MUTEX */
++ np-&gt;b_wptr += sizeof(int);
++ iop-&gt;ioc_count = sizeof(int);
++ error = 0;
++ break;
++
++ case PPPIO_GETSTAT:
++ np = allocb(sizeof(struct ppp_stats), BPRI_HI);
++ if (np == 0) {
++ error = ENOSR;
++ break;
++ }
++ if (mp-&gt;b_cont != 0)
++ freemsg(mp-&gt;b_cont);
++ mp-&gt;b_cont = np;
++ psp = (struct ppp_stats *) np-&gt;b_wptr;
++ np-&gt;b_wptr += sizeof(struct ppp_stats);
++ bzero((caddr_t)psp, sizeof(struct ppp_stats));
++ psp-&gt;p = state-&gt;stats;
++ iop-&gt;ioc_count = sizeof(struct ppp_stats);
++ error = 0;
++ break;
++
++ case PPPIO_LASTMOD:
++ /* we knew this anyway */
++ error = 0;
++ break;
++
++ default:
++ error = -1;
++ break;
++ }
++
++ if (error &lt; 0)
++ putnext(q, mp);
++ else if (error == 0) {
++ mp-&gt;b_datap-&gt;db_type = M_IOCACK;
++ qreply(q, mp);
++ } else {
++ mp-&gt;b_datap-&gt;db_type = M_IOCNAK;
++ iop-&gt;ioc_count = 0;
++ iop-&gt;ioc_error = error;
++ qreply(q, mp);
++ }
++ break;
++
++ case M_CTL:
++ switch (*mp-&gt;b_rptr) {
++ case PPPCTL_MTU:
++#if defined(USE_MUTEX)
++ mutex_enter(&amp;state-&gt;lock);
++#endif /* USE_MUTEX */
++ state-&gt;mtu = ((unsigned short *)mp-&gt;b_rptr)[1];
++#if defined(USE_MUTEX)
++ mutex_exit(&amp;state-&gt;lock);
++#endif /* USE_MUTEX */
++ freemsg(mp);
++ break;
++ case PPPCTL_MRU:
++#if defined(USE_MUTEX)
++ mutex_enter(&amp;state-&gt;lock);
++#endif /* USE_MUTEX */
++ state-&gt;mru = ((unsigned short *)mp-&gt;b_rptr)[1];
++#if defined(USE_MUTEX)
++ mutex_exit(&amp;state-&gt;lock);
++#endif /* USE_MUTEX */
++ freemsg(mp);
++ break;
++ case PPPCTL_UNIT:
++#if defined(USE_MUTEX)
++ mutex_enter(&amp;state-&gt;lock);
++#endif /* USE_MUTEX */
++ state-&gt;unit = mp-&gt;b_rptr[1];
++#if defined(USE_MUTEX)
++ mutex_exit(&amp;state-&gt;lock);
++#endif /* USE_MUTEX */
++ break;
++ default:
++ putnext(q, mp);
++ }
++ break;
++
++ default:
++ putnext(q, mp);
++ }
++
++ return 0;
++}
++
++/*
++ * Read side put routine
++ */
++static int
++ahdlc_rput(q, mp)
++ queue_t *q;
++ mblk_t *mp;
++{
++ ahdlc_state_t *state;
++
++ state = (ahdlc_state_t *) q-&gt;q_ptr;
++ if (state == 0) {
++ DPRINT(&quot;state == 0 in ahdlc_rput\n&quot;);
++ freemsg(mp);
++ return 0;
++ }
++
++ switch (mp-&gt;b_datap-&gt;db_type) {
++ case M_DATA:
++ ahdlc_decode(q, mp);
++ freemsg(mp);
++ break;
++
++ case M_HANGUP:
++#if defined(USE_MUTEX)
++ mutex_enter(&amp;state-&gt;lock);
++#endif /* USE_MUTEX */
++ if (state-&gt;rx_buf != 0) {
++ /* XXX would like to send this up for debugging */
++ freemsg(state-&gt;rx_buf);
++ state-&gt;rx_buf = 0;
++ }
++ state-&gt;flags = IFLUSH;
++#if defined(USE_MUTEX)
++ mutex_exit(&amp;state-&gt;lock);
++#endif /* USE_MUTEX */
++ putnext(q, mp);
++ break;
++
++ default:
++ putnext(q, mp);
++ }
++ return 0;
++}
++
++/*
++ * Extract bit c from map m, to determine if c needs to be escaped
++ */
++#define IN_TX_MAP(c, m) ((m)[(c) &gt;&gt; 5] &amp; (1 &lt;&lt; ((c) &amp; 0x1f)))
++
++static void
++ahdlc_encode(q, mp)
++ queue_t *q;
++ mblk_t *mp;
++{
++ ahdlc_state_t *state;
++ u_int32_t *xaccm, loc_xaccm[8];
++ ushort_t fcs;
++ size_t outmp_len;
++ mblk_t *outmp, *tmp;
++ uchar_t *dp, fcs_val;
++ int is_lcp, code;
++#if defined(SOL2)
++ clock_t lbolt;
++#endif /* SOL2 */
++
++ if (msgdsize(mp) &lt; 4) {
++ return;
++ }
++
++ state = (ahdlc_state_t *)q-&gt;q_ptr;
++#if defined(USE_MUTEX)
++ mutex_enter(&amp;state-&gt;lock);
++#endif /* USE_MUTEX */
++
++ /*
++ * Allocate an output buffer large enough to handle a case where all
++ * characters need to be escaped
++ */
++ outmp_len = (msgdsize(mp) &lt;&lt; 1) + /* input block x 2 */
++ (sizeof(fcs) &lt;&lt; 2) + /* HDLC FCS x 4 */
++ (sizeof(uchar_t) &lt;&lt; 1); /* HDLC flags x 2 */
++
++ outmp = allocb(outmp_len, BPRI_MED);
++ if (outmp == NULL) {
++ state-&gt;stats.ppp_oerrors++;
++#if defined(USE_MUTEX)
++ mutex_exit(&amp;state-&gt;lock);
++#endif /* USE_MUTEX */
++ putctl1(RD(q)-&gt;q_next, M_CTL, PPPCTL_OERROR);
++ return;
++ }
++
++#if defined(SOL2)
++ /*
++ * Check if our last transmit happenned within flag_time, using
++ * the system's LBOLT value in clock ticks
++ */
++ if (drv_getparm(LBOLT, &amp;lbolt) != -1) {
++ if (ABS((clock_t)lbolt - state-&gt;lbolt) &gt; state-&gt;flag_time) {
++ *outmp-&gt;b_wptr++ = PPP_FLAG;
++ }
++ state-&gt;lbolt = lbolt;
++ } else {
++ *outmp-&gt;b_wptr++ = PPP_FLAG;
++ }
++#else
++ /*
++ * If the driver below still has a message to process, skip the
++ * HDLC flag, otherwise, put one in the beginning
++ */
++ if (qsize(q-&gt;q_next) == 0) {
++ *outmp-&gt;b_wptr++ = PPP_FLAG;
++ }
++#endif
++
++ /*
++ * All control characters must be escaped for LCP packets with code
++ * values between 1 (Conf-Req) and 7 (Code-Rej).
++ */
++ is_lcp = ((MSG_BYTE(mp, 0) == PPP_ALLSTATIONS) &amp;&amp;
++ (MSG_BYTE(mp, 1) == PPP_UI) &amp;&amp;
++ (MSG_BYTE(mp, 2) == (PPP_LCP &gt;&gt; 8)) &amp;&amp;
++ (MSG_BYTE(mp, 3) == (PPP_LCP &amp; 0xff)) &amp;&amp;
++ LCP_USE_DFLT(mp));
++
++ xaccm = state-&gt;xaccm;
++ if (is_lcp) {
++ bcopy((caddr_t)state-&gt;xaccm, (caddr_t)loc_xaccm, sizeof(loc_xaccm));
++ loc_xaccm[0] = ~0; /* force escape on 0x00 through 0x1f */
++ xaccm = loc_xaccm;
++ }
++
++ fcs = PPP_INITFCS; /* Initial FCS is 0xffff */
++
++ /*
++ * Process this block and the rest (if any) attached to the this one
++ */
++ for (tmp = mp; tmp; tmp = tmp-&gt;b_cont) {
++ if (tmp-&gt;b_datap-&gt;db_type == M_DATA) {
++ for (dp = tmp-&gt;b_rptr; dp &lt; tmp-&gt;b_wptr; dp++) {
++ fcs = PPP_FCS(fcs, *dp);
++ if (IN_TX_MAP(*dp, xaccm)) {
++ *outmp-&gt;b_wptr++ = PPP_ESCAPE;
++ *outmp-&gt;b_wptr++ = *dp ^ PPP_TRANS;
++ } else {
++ *outmp-&gt;b_wptr++ = *dp;
++ }
++ }
++ } else {
++ continue; /* skip if db_type is something other than M_DATA */
++ }
++ }
++
++ /*
++ * Append the HDLC FCS, making sure that escaping is done on any
++ * necessary bytes
++ */
++ fcs_val = (fcs ^ 0xffff) &amp; 0xff;
++ if (IN_TX_MAP(fcs_val, xaccm)) {
++ *outmp-&gt;b_wptr++ = PPP_ESCAPE;
++ *outmp-&gt;b_wptr++ = fcs_val ^ PPP_TRANS;
++ } else {
++ *outmp-&gt;b_wptr++ = fcs_val;
++ }
++
++ fcs_val = ((fcs ^ 0xffff) &gt;&gt; 8) &amp; 0xff;
++ if (IN_TX_MAP(fcs_val, xaccm)) {
++ *outmp-&gt;b_wptr++ = PPP_ESCAPE;
++ *outmp-&gt;b_wptr++ = fcs_val ^ PPP_TRANS;
++ } else {
++ *outmp-&gt;b_wptr++ = fcs_val;
++ }
++
++ /*
++ * And finally, append the HDLC flag, and send it away
++ */
++ *outmp-&gt;b_wptr++ = PPP_FLAG;
++
++ state-&gt;stats.ppp_obytes += msgdsize(outmp);
++ state-&gt;stats.ppp_opackets++;
++
++#if defined(USE_MUTEX)
++ mutex_exit(&amp;state-&gt;lock);
++#endif /* USE_MUTEX */
++
++ putnext(q, outmp);
++ return;
++}
++
++/*
++ * Checks the 32-bit receive ACCM to see if the byte needs un-escaping
++ */
++#define IN_RX_MAP(c, m) ((((unsigned int) (uchar_t) (c)) &lt; 0x20) &amp;&amp; \
++ (m) &amp; (1 &lt;&lt; (c)))
++
++
++/*
++ * Process received characters.
++ */
++static void
++ahdlc_decode(q, mp)
++ queue_t *q;
++ mblk_t *mp;
++{
++ ahdlc_state_t *state;
++ mblk_t *om;
++ uchar_t *dp;
++ ushort_t fcs;
++#if defined(SOL2)
++ mblk_t *zmp;
++#endif /* SOL2 */
++
++#if defined(SOL2)
++ /*
++ * In case the driver (or something below) doesn't send
++ * data upstream in one message block, concatenate everything
++ */
++ if (!((mp-&gt;b_wptr - mp-&gt;b_rptr == msgdsize(mp)) &amp;&amp;
++ ((intpointer_t)mp-&gt;b_rptr % sizeof(intpointer_t) == 0))) {
++
++ zmp = msgpullup(mp, -1);
++ freemsg(mp);
++ mp = zmp;
++ if (mp == 0)
++ return;
++ }
++#endif /* SOL2 */
++
++ state = (ahdlc_state_t *) q-&gt;q_ptr;
++
++#if defined(USE_MUTEX)
++ mutex_enter(&amp;state-&gt;lock);
++#endif /* USE_MUTEX */
++
++ state-&gt;stats.ppp_ibytes += msgdsize(mp);
++
++ for (dp = mp-&gt;b_rptr; dp &lt; mp-&gt;b_wptr; dp++) {
++
++ /*
++ * This should detect the lack of 8-bit communication channel
++ * which is necessary for PPP to work. In addition, it also
++ * checks on the parity.
++ */
++ if (*dp &amp; 0x80)
++ state-&gt;flags |= RCV_B7_1;
++ else
++ state-&gt;flags |= RCV_B7_0;
++
++ if (paritytab[*dp &gt;&gt; 5] &amp; (1 &lt;&lt; (*dp &amp; 0x1f)))
++ state-&gt;flags |= RCV_ODDP;
++ else
++ state-&gt;flags |= RCV_EVNP;
++
++ /*
++ * So we have a HDLC flag ...
++ */
++ if (*dp == PPP_FLAG) {
++
++ /*
++ * If we think that it marks the beginning of the frame,
++ * then continue to process the next octects
++ */
++ if ((state-&gt;flags &amp; IFLUSH) ||
++ (state-&gt;rx_buf == 0) ||
++ (msgdsize(state-&gt;rx_buf) == 0)) {
++
++ state-&gt;flags &amp;= ~IFLUSH;
++ continue;
++ }
++
++ /*
++ * We get here because the above condition isn't true,
++ * in which case the HDLC flag was there to mark the end
++ * of the frame (or so we think)
++ */
++ om = state-&gt;rx_buf;
++
++ if (state-&gt;infcs == PPP_GOODFCS) {
++ state-&gt;stats.ppp_ipackets++;
++ adjmsg(om, -PPP_FCSLEN);
++ putnext(q, om);
++ } else {
++ DPRINT2(&quot;ppp%d: bad fcs (len=%d)\n&quot;,
++ state-&gt;unit, msgdsize(state-&gt;rx_buf));
++ freemsg(state-&gt;rx_buf);
++ state-&gt;flags &amp;= ~(IFLUSH | ESCAPED);
++ state-&gt;stats.ppp_ierrors++;
++ putctl1(q-&gt;q_next, M_CTL, PPPCTL_IERROR);
++ }
++
++ state-&gt;rx_buf = 0;
++ continue;
++ }
++
++ if (state-&gt;flags &amp; IFLUSH) {
++ continue;
++ }
++
++ /*
++ * Allocate a receive buffer, large enough to store a frame (after
++ * un-escaping) of at least 1500 octets. If MRU is negotiated to
++ * be more than the default, then allocate that much. In addition,
++ * we add an extra 32-bytes for a fudge factor
++ */
++ if (state-&gt;rx_buf == 0) {
++ state-&gt;rx_buf_size = (state-&gt;mru &lt; PPP_MRU ? PPP_MRU : state-&gt;mru);
++ state-&gt;rx_buf_size += (sizeof(u_int32_t) &lt;&lt; 3);
++ state-&gt;rx_buf = allocb(state-&gt;rx_buf_size, BPRI_MED);
++
++ /*
++ * If allocation fails, try again on the next frame
++ */
++ if (state-&gt;rx_buf == 0) {
++ state-&gt;flags |= IFLUSH;
++ continue;
++ }
++ state-&gt;flags &amp;= ~(IFLUSH | ESCAPED);
++ state-&gt;infcs = PPP_INITFCS;
++ }
++
++ if (*dp == PPP_ESCAPE) {
++ state-&gt;flags |= ESCAPED;
++ continue;
++ }
++
++ /*
++ * Make sure we un-escape the necessary characters, as well as the
++ * ones in our receive async control character map
++ */
++ if (state-&gt;flags &amp; ESCAPED) {
++ *dp ^= PPP_TRANS;
++ state-&gt;flags &amp;= ~ESCAPED;
++ } else if (IN_RX_MAP(*dp, state-&gt;raccm))
++ continue;
++
++ /*
++ * Unless the peer lied to us about the negotiated MRU, we should
++ * never get a frame which is too long. If it happens, toss it away
++ * and grab the next incoming one
++ */
++ if (msgdsize(state-&gt;rx_buf) &lt; state-&gt;rx_buf_size) {
++ state-&gt;infcs = PPP_FCS(state-&gt;infcs, *dp);
++ *state-&gt;rx_buf-&gt;b_wptr++ = *dp;
++ } else {
++ DPRINT2(&quot;ppp%d: frame too long (%d)\n&quot;,
++ state-&gt;unit, msgdsize(state-&gt;rx_buf));
++ freemsg(state-&gt;rx_buf);
++ state-&gt;rx_buf = 0;
++ state-&gt;flags |= IFLUSH;
++ }
++ }
++
++#if defined(USE_MUTEX)
++ mutex_exit(&amp;state-&gt;lock);
++#endif /* USE_MUTEX */
++}
++
++static int
++msg_byte(mp, i)
++ mblk_t *mp;
++ unsigned int i;
++{
++ while (mp != 0 &amp;&amp; i &gt;= mp-&gt;b_wptr - mp-&gt;b_rptr)
++ mp = mp-&gt;b_cont;
++ if (mp == 0)
++ return -1;
++ return mp-&gt;b_rptr[i];
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/solaris/ppp_ahdlc.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pppsolarisppp_ahdlc_modc">Added: drakx/trunk/mdk-stage1/ppp/solaris/ppp_ahdlc_mod.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/solaris/ppp_ahdlc_mod.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/solaris/ppp_ahdlc_mod.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,49 @@
++#include &lt;sys/types.h&gt;
++#include &lt;sys/param.h&gt;
++#include &lt;sys/conf.h&gt;
++#include &lt;sys/modctl.h&gt;
++#include &lt;sys/sunddi.h&gt;
++
++extern struct streamtab ppp_ahdlcinfo;
++
++static struct fmodsw fsw = {
++ &quot;ppp_ahdl&quot;,
++ &amp;ppp_ahdlcinfo,
++ D_NEW | D_MP | D_MTQPAIR
++};
++
++extern struct mod_ops mod_strmodops;
++
++static struct modlstrmod modlstrmod = {
++ &amp;mod_strmodops,
++ &quot;PPP async HDLC module&quot;,
++ &amp;fsw
++};
++
++static struct modlinkage modlinkage = {
++ MODREV_1,
++ (void *) &amp;modlstrmod,
++ NULL
++};
++
++/*
++ * Entry points for modloading.
++ */
++int
++_init(void)
++{
++ return mod_install(&amp;modlinkage);
++}
++
++int
++_fini(void)
++{
++ return mod_remove(&amp;modlinkage);
++}
++
++int
++_info(mip)
++ struct modinfo *mip;
++{
++ return mod_info(&amp;modlinkage, mip);
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/solaris/ppp_ahdlc_mod.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pppsolarisppp_compc">Added: drakx/trunk/mdk-stage1/ppp/solaris/ppp_comp.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/solaris/ppp_comp.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/solaris/ppp_comp.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,1126 @@
++/*
++ * ppp_comp.c - STREAMS module for kernel-level compression and CCP support.
++ *
++ * Copyright (c) 1994 The Australian National University.
++ * All rights reserved.
++ *
++ * Permission to use, copy, modify, and distribute this software and its
++ * documentation is hereby granted, provided that the above copyright
++ * notice appears in all copies. This software is provided without any
++ * warranty, express or implied. The Australian National University
++ * makes no representations about the suitability of this software for
++ * any purpose.
++ *
++ * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY
++ * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
++ * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
++ * THE AUSTRALIAN NATIONAL UNIVERSITY HAS BEEN ADVISED OF THE POSSIBILITY
++ * OF SUCH DAMAGE.
++ *
++ * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
++ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
++ * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
++ * ON AN &quot;AS IS&quot; BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO
++ * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
++ * OR MODIFICATIONS.
++ *
++ * $Id: ppp_comp.c 195720 2001-06-11 11:44:34Z gc $
++ */
++
++/*
++ * This file is used under SVR4, Solaris 2, SunOS 4, and Digital UNIX.
++ */
++
++#include &lt;sys/types.h&gt;
++#include &lt;sys/param.h&gt;
++#include &lt;sys/errno.h&gt;
++#include &lt;sys/stream.h&gt;
++
++#ifdef SVR4
++#include &lt;sys/conf.h&gt;
++#include &lt;sys/cmn_err.h&gt;
++#include &lt;sys/ddi.h&gt;
++#else
++#include &lt;sys/user.h&gt;
++#ifdef __osf__
++#include &lt;sys/cmn_err.h&gt;
++#endif
++#endif /* SVR4 */
++
++#include &lt;net/ppp_defs.h&gt;
++#include &lt;net/pppio.h&gt;
++#include &quot;ppp_mod.h&quot;
++
++#ifdef __osf__
++#include &lt;sys/mbuf.h&gt;
++#include &lt;sys/protosw.h&gt;
++#endif
++
++#include &lt;netinet/in.h&gt;
++#include &lt;netinet/in_systm.h&gt;
++#include &lt;netinet/ip.h&gt;
++#include &lt;net/vjcompress.h&gt;
++
++#define PACKETPTR mblk_t *
++#include &lt;net/ppp-comp.h&gt;
++
++MOD_OPEN_DECL(ppp_comp_open);
++MOD_CLOSE_DECL(ppp_comp_close);
++static int ppp_comp_rput __P((queue_t *, mblk_t *));
++static int ppp_comp_rsrv __P((queue_t *));
++static int ppp_comp_wput __P((queue_t *, mblk_t *));
++static int ppp_comp_wsrv __P((queue_t *));
++static void ppp_comp_ccp __P((queue_t *, mblk_t *, int));
++static int msg_byte __P((mblk_t *, unsigned int));
++
++/* Extract byte i of message mp. */
++#define MSG_BYTE(mp, i) ((i) &lt; (mp)-&gt;b_wptr - (mp)-&gt;b_rptr? (mp)-&gt;b_rptr[i]: \
++ msg_byte((mp), (i)))
++
++/* Is this LCP packet one we have to transmit using LCP defaults? */
++#define LCP_USE_DFLT(mp) (1 &lt;= (code = MSG_BYTE((mp), 4)) &amp;&amp; code &lt;= 7)
++
++#define PPP_COMP_ID 0xbadf
++static struct module_info minfo = {
++#ifdef PRIOQ
++ PPP_COMP_ID, &quot;ppp_comp&quot;, 0, INFPSZ, 16512, 16384,
++#else
++ PPP_COMP_ID, &quot;ppp_comp&quot;, 0, INFPSZ, 16384, 4096,
++#endif
++};
++
++static struct qinit r_init = {
++ ppp_comp_rput, ppp_comp_rsrv, ppp_comp_open, ppp_comp_close,
++ NULL, &amp;minfo, NULL
++};
++
++static struct qinit w_init = {
++ ppp_comp_wput, ppp_comp_wsrv, NULL, NULL, NULL, &amp;minfo, NULL
++};
++
++#if defined(SVR4) &amp;&amp; !defined(SOL2)
++int pcmpdevflag = 0;
++#define ppp_compinfo pcmpinfo
++#endif
++struct streamtab ppp_compinfo = {
++ &amp;r_init, &amp;w_init, NULL, NULL
++};
++
++int ppp_comp_count; /* number of module instances in use */
++
++#ifdef __osf__
++
++static void ppp_comp_alloc __P((comp_state_t *));
++typedef struct memreq {
++ unsigned char comp_opts[20];
++ int cmd;
++ int thread_status;
++ char *returned_mem;
++} memreq_t;
++
++#endif
++
++typedef struct comp_state {
++ int flags;
++ int mru;
++ int mtu;
++ int unit;
++ struct compressor *xcomp;
++ void *xstate;
++ struct compressor *rcomp;
++ void *rstate;
++ struct vjcompress vj_comp;
++ int vj_last_ierrors;
++ struct pppstat stats;
++#ifdef __osf__
++ memreq_t memreq;
++ thread_t thread;
++#endif
++} comp_state_t;
++
++
++#ifdef __osf__
++extern task_t first_task;
++#endif
++
++/* Bits in flags are as defined in pppio.h. */
++#define CCP_ERR (CCP_ERROR | CCP_FATALERROR)
++#define LAST_MOD 0x1000000 /* no ppp modules below us */
++#define DBGLOG 0x2000000 /* log debugging stuff */
++
++#define MAX_IPHDR 128 /* max TCP/IP header size */
++#define MAX_VJHDR 20 /* max VJ compressed header size (?) */
++
++#undef MIN /* just in case */
++#define MIN(a, b) ((a) &lt; (b)? (a): (b))
++
++/*
++ * List of compressors we know about.
++ */
++
++#if DO_BSD_COMPRESS
++extern struct compressor ppp_bsd_compress;
++#endif
++#if DO_DEFLATE
++extern struct compressor ppp_deflate, ppp_deflate_draft;
++#endif
++
++struct compressor *ppp_compressors[] = {
++#if DO_BSD_COMPRESS
++ &amp;ppp_bsd_compress,
++#endif
++#if DO_DEFLATE
++ &amp;ppp_deflate,
++ &amp;ppp_deflate_draft,
++#endif
++ NULL
++};
++
++/*
++ * STREAMS module entry points.
++ */
++MOD_OPEN(ppp_comp_open)
++{
++ comp_state_t *cp;
++#ifdef __osf__
++ thread_t thread;
++#endif
++
++ if (q-&gt;q_ptr == NULL) {
++ cp = (comp_state_t *) ALLOC_SLEEP(sizeof(comp_state_t));
++ if (cp == NULL)
++ OPEN_ERROR(ENOSR);
++ bzero((caddr_t)cp, sizeof(comp_state_t));
++ WR(q)-&gt;q_ptr = q-&gt;q_ptr = (caddr_t) cp;
++ cp-&gt;mru = PPP_MRU;
++ cp-&gt;mtu = PPP_MTU;
++ cp-&gt;xstate = NULL;
++ cp-&gt;rstate = NULL;
++ vj_compress_init(&amp;cp-&gt;vj_comp, -1);
++#ifdef __osf__
++ if (!(thread = kernel_thread_w_arg(first_task, ppp_comp_alloc, (void *)cp)))
++ OPEN_ERROR(ENOSR);
++ cp-&gt;thread = thread;
++#endif
++ ++ppp_comp_count;
++ qprocson(q);
++ }
++ return 0;
++}
++
++MOD_CLOSE(ppp_comp_close)
++{
++ comp_state_t *cp;
++
++ qprocsoff(q);
++ cp = (comp_state_t *) q-&gt;q_ptr;
++ if (cp != NULL) {
++ if (cp-&gt;xstate != NULL)
++ (*cp-&gt;xcomp-&gt;comp_free)(cp-&gt;xstate);
++ if (cp-&gt;rstate != NULL)
++ (*cp-&gt;rcomp-&gt;decomp_free)(cp-&gt;rstate);
++#ifdef __osf__
++ if (!cp-&gt;thread)
++ printf(&quot;ppp_comp_close: NULL thread!\n&quot;);
++ else
++ thread_terminate(cp-&gt;thread);
++#endif
++ FREE(cp, sizeof(comp_state_t));
++ q-&gt;q_ptr = NULL;
++ OTHERQ(q)-&gt;q_ptr = NULL;
++ --ppp_comp_count;
++ }
++ return 0;
++}
++
++#ifdef __osf__
++
++/* thread for calling back to a compressor's memory allocator
++ * Needed for Digital UNIX since it's VM can't handle requests
++ * for large amounts of memory without blocking. The thread
++ * provides a context in which we can call a memory allocator
++ * that may block.
++ */
++static void
++ppp_comp_alloc(comp_state_t *cp)
++{
++ int len, cmd;
++ unsigned char *compressor_options;
++ thread_t thread;
++ void *(*comp_allocator)();
++
++
++#if defined(MAJOR_VERSION) &amp;&amp; (MAJOR_VERSION &lt;= 2)
++
++ /* In 2.x and earlier the argument gets passed
++ * in the thread structure itself. Yuck.
++ */
++ thread = current_thread();
++ cp = thread-&gt;reply_port;
++ thread-&gt;reply_port = PORT_NULL;
++
++#endif
++
++ for (;;) {
++ assert_wait((vm_offset_t)&amp;cp-&gt;memreq.thread_status, TRUE);
++ thread_block();
++
++ if (thread_should_halt(current_thread()))
++ thread_halt_self();
++ cmd = cp-&gt;memreq.cmd;
++ compressor_options = &amp;cp-&gt;memreq.comp_opts[0];
++ len = compressor_options[1];
++ if (cmd == PPPIO_XCOMP) {
++ cp-&gt;memreq.returned_mem = cp-&gt;xcomp-&gt;comp_alloc(compressor_options, len);
++ if (!cp-&gt;memreq.returned_mem) {
++ cp-&gt;memreq.thread_status = ENOSR;
++ } else {
++ cp-&gt;memreq.thread_status = 0;
++ }
++ } else {
++ cp-&gt;memreq.returned_mem = cp-&gt;rcomp-&gt;decomp_alloc(compressor_options, len);
++ if (!cp-&gt;memreq.returned_mem) {
++ cp-&gt;memreq.thread_status = ENOSR;
++ } else {
++ cp-&gt;memreq.thread_status = 0;
++ }
++ }
++ }
++}
++
++#endif /* __osf__ */
++
++/* here's the deal with memory allocation under Digital UNIX.
++ * Some other may also benefit from this...
++ * We can't ask for huge chunks of memory in a context where
++ * the caller can't be put to sleep (like, here.) The alloc
++ * is likely to fail. Instead we do this: the first time we
++ * get called, kick off a thread to do the allocation. Return
++ * immediately to the caller with EAGAIN, as an indication that
++ * they should send down the ioctl again. By the time the
++ * second call comes in it's likely that the memory allocation
++ * thread will have returned with the requested memory. We will
++ * continue to return EAGAIN however until the thread has completed.
++ * When it has, we return zero (and the memory) if the allocator
++ * was successful and ENOSR otherwise.
++ *
++ * Callers of the RCOMP and XCOMP ioctls are encouraged (but not
++ * required) to loop for some number of iterations with a small
++ * delay in the loop body (for instance a 1/10-th second &quot;sleep&quot;
++ * via select.)
++ */
++static int
++ppp_comp_wput(q, mp)
++ queue_t *q;
++ mblk_t *mp;
++{
++ struct iocblk *iop;
++ comp_state_t *cp;
++ int error, len, n;
++ int flags, mask;
++ mblk_t *np;
++ struct compressor **comp;
++ struct ppp_stats *psp;
++ struct ppp_comp_stats *csp;
++ unsigned char *opt_data;
++ int nxslots, nrslots;
++
++ cp = (comp_state_t *) q-&gt;q_ptr;
++ if (cp == 0) {
++ DPRINT(&quot;cp == 0 in ppp_comp_wput\n&quot;);
++ freemsg(mp);
++ return 0;
++ }
++
++ switch (mp-&gt;b_datap-&gt;db_type) {
++
++ case M_DATA:
++ putq(q, mp);
++ break;
++
++ case M_IOCTL:
++ iop = (struct iocblk *) mp-&gt;b_rptr;
++ error = EINVAL;
++ switch (iop-&gt;ioc_cmd) {
++
++ case PPPIO_CFLAGS:
++ /* set/get CCP state */
++ if (iop-&gt;ioc_count != 2 * sizeof(int))
++ break;
++ if (mp-&gt;b_cont == 0) {
++ DPRINT1(&quot;ppp_comp_wput/%d: PPPIO_CFLAGS b_cont = 0!\n&quot;, cp-&gt;unit);
++ break;
++ }
++ flags = ((int *) mp-&gt;b_cont-&gt;b_rptr)[0];
++ mask = ((int *) mp-&gt;b_cont-&gt;b_rptr)[1];
++ cp-&gt;flags = (cp-&gt;flags &amp; ~mask) | (flags &amp; mask);
++ if ((mask &amp; CCP_ISOPEN) &amp;&amp; (flags &amp; CCP_ISOPEN) == 0) {
++ if (cp-&gt;xstate != NULL) {
++ (*cp-&gt;xcomp-&gt;comp_free)(cp-&gt;xstate);
++ cp-&gt;xstate = NULL;
++ }
++ if (cp-&gt;rstate != NULL) {
++ (*cp-&gt;rcomp-&gt;decomp_free)(cp-&gt;rstate);
++ cp-&gt;rstate = NULL;
++ }
++ cp-&gt;flags &amp;= ~CCP_ISUP;
++ }
++ error = 0;
++ iop-&gt;ioc_count = sizeof(int);
++ ((int *) mp-&gt;b_cont-&gt;b_rptr)[0] = cp-&gt;flags;
++ mp-&gt;b_cont-&gt;b_wptr = mp-&gt;b_cont-&gt;b_rptr + sizeof(int);
++ break;
++
++ case PPPIO_VJINIT:
++ /*
++ * Initialize VJ compressor/decompressor
++ */
++ if (iop-&gt;ioc_count != 2)
++ break;
++ if (mp-&gt;b_cont == 0) {
++ DPRINT1(&quot;ppp_comp_wput/%d: PPPIO_VJINIT b_cont = 0!\n&quot;, cp-&gt;unit);
++ break;
++ }
++ nxslots = mp-&gt;b_cont-&gt;b_rptr[0] + 1;
++ nrslots = mp-&gt;b_cont-&gt;b_rptr[1] + 1;
++ if (nxslots &gt; MAX_STATES || nrslots &gt; MAX_STATES)
++ break;
++ vj_compress_init(&amp;cp-&gt;vj_comp, nxslots);
++ cp-&gt;vj_last_ierrors = cp-&gt;stats.ppp_ierrors;
++ error = 0;
++ iop-&gt;ioc_count = 0;
++ break;
++
++ case PPPIO_XCOMP:
++ case PPPIO_RCOMP:
++ if (iop-&gt;ioc_count &lt;= 0)
++ break;
++ if (mp-&gt;b_cont == 0) {
++ DPRINT1(&quot;ppp_comp_wput/%d: PPPIO_[XR]COMP b_cont = 0!\n&quot;, cp-&gt;unit);
++ break;
++ }
++ opt_data = mp-&gt;b_cont-&gt;b_rptr;
++ len = mp-&gt;b_cont-&gt;b_wptr - opt_data;
++ if (len &gt; iop-&gt;ioc_count)
++ len = iop-&gt;ioc_count;
++ if (opt_data[1] &lt; 2 || opt_data[1] &gt; len)
++ break;
++ for (comp = ppp_compressors; *comp != NULL; ++comp)
++ if ((*comp)-&gt;compress_proto == opt_data[0]) {
++ /* here's the handler! */
++ error = 0;
++#ifndef __osf__
++ if (iop-&gt;ioc_cmd == PPPIO_XCOMP) {
++ /* A previous call may have fetched memory for a compressor
++ * that's now being retired or reset. Free it using it's
++ * mechanism for freeing stuff.
++ */
++ if (cp-&gt;xstate != NULL) {
++ (*cp-&gt;xcomp-&gt;comp_free)(cp-&gt;xstate);
++ cp-&gt;xstate = NULL;
++ }
++ cp-&gt;xcomp = *comp;
++ cp-&gt;xstate = (*comp)-&gt;comp_alloc(opt_data, len);
++ if (cp-&gt;xstate == NULL)
++ error = ENOSR;
++ } else {
++ if (cp-&gt;rstate != NULL) {
++ (*cp-&gt;rcomp-&gt;decomp_free)(cp-&gt;rstate);
++ cp-&gt;rstate = NULL;
++ }
++ cp-&gt;rcomp = *comp;
++ cp-&gt;rstate = (*comp)-&gt;decomp_alloc(opt_data, len);
++ if (cp-&gt;rstate == NULL)
++ error = ENOSR;
++ }
++#else
++ if ((error = cp-&gt;memreq.thread_status) != EAGAIN)
++ if (iop-&gt;ioc_cmd == PPPIO_XCOMP) {
++ if (cp-&gt;xstate) {
++ (*cp-&gt;xcomp-&gt;comp_free)(cp-&gt;xstate);
++ cp-&gt;xstate = 0;
++ }
++ /* sanity check for compressor options
++ */
++ if (sizeof (cp-&gt;memreq.comp_opts) &lt; len) {
++ printf(&quot;can't handle options for compressor %d (%d)\n&quot;, opt_data[0],
++ opt_data[1]);
++ cp-&gt;memreq.thread_status = ENOSR;
++ cp-&gt;memreq.returned_mem = 0;
++ }
++ /* fill in request for the thread and kick it off
++ */
++ if (cp-&gt;memreq.thread_status == 0 &amp;&amp; !cp-&gt;memreq.returned_mem) {
++ bcopy(opt_data, cp-&gt;memreq.comp_opts, len);
++ cp-&gt;memreq.cmd = PPPIO_XCOMP;
++ cp-&gt;xcomp = *comp;
++ error = cp-&gt;memreq.thread_status = EAGAIN;
++ thread_wakeup((vm_offset_t)&amp;cp-&gt;memreq.thread_status);
++ } else {
++ cp-&gt;xstate = cp-&gt;memreq.returned_mem;
++ cp-&gt;memreq.returned_mem = 0;
++ cp-&gt;memreq.thread_status = 0;
++ }
++ } else {
++ if (cp-&gt;rstate) {
++ (*cp-&gt;rcomp-&gt;decomp_free)(cp-&gt;rstate);
++ cp-&gt;rstate = NULL;
++ }
++ if (sizeof (cp-&gt;memreq.comp_opts) &lt; len) {
++ printf(&quot;can't handle options for compressor %d (%d)\n&quot;, opt_data[0],
++ opt_data[1]);
++ cp-&gt;memreq.thread_status = ENOSR;
++ cp-&gt;memreq.returned_mem = 0;
++ }
++ if (cp-&gt;memreq.thread_status == 0 &amp;&amp; !cp-&gt;memreq.returned_mem) {
++ bcopy(opt_data, cp-&gt;memreq.comp_opts, len);
++ cp-&gt;memreq.cmd = PPPIO_RCOMP;
++ cp-&gt;rcomp = *comp;
++ error = cp-&gt;memreq.thread_status = EAGAIN;
++ thread_wakeup((vm_offset_t)&amp;cp-&gt;memreq.thread_status);
++ } else {
++ cp-&gt;rstate = cp-&gt;memreq.returned_mem;
++ cp-&gt;memreq.returned_mem = 0;
++ cp-&gt;memreq.thread_status = 0;
++ }
++ }
++#endif
++ break;
++ }
++ iop-&gt;ioc_count = 0;
++ break;
++
++ case PPPIO_GETSTAT:
++ if ((cp-&gt;flags &amp; LAST_MOD) == 0) {
++ error = -1; /* let the ppp_ahdl module handle it */
++ break;
++ }
++ np = allocb(sizeof(struct ppp_stats), BPRI_HI);
++ if (np == 0) {
++ error = ENOSR;
++ break;
++ }
++ if (mp-&gt;b_cont != 0)
++ freemsg(mp-&gt;b_cont);
++ mp-&gt;b_cont = np;
++ psp = (struct ppp_stats *) np-&gt;b_wptr;
++ np-&gt;b_wptr += sizeof(struct ppp_stats);
++ iop-&gt;ioc_count = sizeof(struct ppp_stats);
++ psp-&gt;p = cp-&gt;stats;
++ psp-&gt;vj = cp-&gt;vj_comp.stats;
++ error = 0;
++ break;
++
++ case PPPIO_GETCSTAT:
++ np = allocb(sizeof(struct ppp_comp_stats), BPRI_HI);
++ if (np == 0) {
++ error = ENOSR;
++ break;
++ }
++ if (mp-&gt;b_cont != 0)
++ freemsg(mp-&gt;b_cont);
++ mp-&gt;b_cont = np;
++ csp = (struct ppp_comp_stats *) np-&gt;b_wptr;
++ np-&gt;b_wptr += sizeof(struct ppp_comp_stats);
++ iop-&gt;ioc_count = sizeof(struct ppp_comp_stats);
++ bzero((caddr_t)csp, sizeof(struct ppp_comp_stats));
++ if (cp-&gt;xstate != 0)
++ (*cp-&gt;xcomp-&gt;comp_stat)(cp-&gt;xstate, &amp;csp-&gt;c);
++ if (cp-&gt;rstate != 0)
++ (*cp-&gt;rcomp-&gt;decomp_stat)(cp-&gt;rstate, &amp;csp-&gt;d);
++ error = 0;
++ break;
++
++ case PPPIO_DEBUG:
++ if (iop-&gt;ioc_count != sizeof(int))
++ break;
++ if (mp-&gt;b_cont == 0) {
++ DPRINT1(&quot;ppp_comp_wput/%d: PPPIO_DEBUG b_cont = 0!\n&quot;, cp-&gt;unit);
++ break;
++ }
++ n = *(int *)mp-&gt;b_cont-&gt;b_rptr;
++ if (n == PPPDBG_LOG + PPPDBG_COMP) {
++ DPRINT1(&quot;ppp_comp%d: debug log enabled\n&quot;, cp-&gt;unit);
++ cp-&gt;flags |= DBGLOG;
++ error = 0;
++ iop-&gt;ioc_count = 0;
++ } else {
++ error = -1;
++ }
++ break;
++
++ case PPPIO_LASTMOD:
++ cp-&gt;flags |= LAST_MOD;
++ error = 0;
++ break;
++
++ default:
++ error = -1;
++ break;
++ }
++
++ if (error &lt; 0)
++ putnext(q, mp);
++ else if (error == 0) {
++ mp-&gt;b_datap-&gt;db_type = M_IOCACK;
++ qreply(q, mp);
++ } else {
++ mp-&gt;b_datap-&gt;db_type = M_IOCNAK;
++ iop-&gt;ioc_error = error;
++ iop-&gt;ioc_count = 0;
++ qreply(q, mp);
++ }
++ break;
++
++ case M_CTL:
++ switch (*mp-&gt;b_rptr) {
++ case PPPCTL_MTU:
++ cp-&gt;mtu = ((unsigned short *)mp-&gt;b_rptr)[1];
++ break;
++ case PPPCTL_MRU:
++ cp-&gt;mru = ((unsigned short *)mp-&gt;b_rptr)[1];
++ break;
++ case PPPCTL_UNIT:
++ cp-&gt;unit = mp-&gt;b_rptr[1];
++ break;
++ }
++ putnext(q, mp);
++ break;
++
++ default:
++ putnext(q, mp);
++ }
++
++ return 0;
++}
++
++static int
++ppp_comp_wsrv(q)
++ queue_t *q;
++{
++ mblk_t *mp, *cmp = NULL;
++ comp_state_t *cp;
++ int len, proto, type, hlen, code;
++ struct ip *ip;
++ unsigned char *vjhdr, *dp;
++
++ cp = (comp_state_t *) q-&gt;q_ptr;
++ if (cp == 0) {
++ DPRINT(&quot;cp == 0 in ppp_comp_wsrv\n&quot;);
++ return 0;
++ }
++
++ while ((mp = getq(q)) != 0) {
++ /* assert(mp-&gt;b_datap-&gt;db_type == M_DATA) */
++#ifdef PRIOQ
++ if (!bcanputnext(q,mp-&gt;b_band))
++#else
++ if (!canputnext(q))
++#endif PRIOQ
++ {
++ putbq(q, mp);
++ break;
++ }
++
++ /*
++ * First check the packet length and work out what the protocol is.
++ */
++ len = msgdsize(mp);
++ if (len &lt; PPP_HDRLEN) {
++ DPRINT1(&quot;ppp_comp_wsrv: bogus short packet (%d)\n&quot;, len);
++ freemsg(mp);
++ cp-&gt;stats.ppp_oerrors++;
++ putctl1(RD(q)-&gt;q_next, M_CTL, PPPCTL_OERROR);
++ continue;
++ }
++ proto = (MSG_BYTE(mp, 2) &lt;&lt; 8) + MSG_BYTE(mp, 3);
++
++ /*
++ * Make sure we've got enough data in the first mblk
++ * and that we are its only user.
++ */
++ if (proto == PPP_CCP)
++ hlen = len;
++ else if (proto == PPP_IP)
++ hlen = PPP_HDRLEN + MAX_IPHDR;
++ else
++ hlen = PPP_HDRLEN;
++ if (hlen &gt; len)
++ hlen = len;
++ if (mp-&gt;b_wptr &lt; mp-&gt;b_rptr + hlen || mp-&gt;b_datap-&gt;db_ref &gt; 1) {
++ PULLUP(mp, hlen);
++ if (mp == 0) {
++ DPRINT1(&quot;ppp_comp_wsrv: pullup failed (%d)\n&quot;, hlen);
++ cp-&gt;stats.ppp_oerrors++;
++ putctl1(RD(q)-&gt;q_next, M_CTL, PPPCTL_OERROR);
++ continue;
++ }
++ }
++
++ /*
++ * Do VJ compression if requested.
++ */
++ if (proto == PPP_IP &amp;&amp; (cp-&gt;flags &amp; COMP_VJC)) {
++ ip = (struct ip *) (mp-&gt;b_rptr + PPP_HDRLEN);
++ if (ip-&gt;ip_p == IPPROTO_TCP) {
++ type = vj_compress_tcp(ip, len - PPP_HDRLEN, &amp;cp-&gt;vj_comp,
++ (cp-&gt;flags &amp; COMP_VJCCID), &amp;vjhdr);
++ switch (type) {
++ case TYPE_UNCOMPRESSED_TCP:
++ mp-&gt;b_rptr[3] = proto = PPP_VJC_UNCOMP;
++ break;
++ case TYPE_COMPRESSED_TCP:
++ dp = vjhdr - PPP_HDRLEN;
++ dp[1] = mp-&gt;b_rptr[1]; /* copy control field */
++ dp[0] = mp-&gt;b_rptr[0]; /* copy address field */
++ dp[2] = 0; /* set protocol field */
++ dp[3] = proto = PPP_VJC_COMP;
++ mp-&gt;b_rptr = dp;
++ break;
++ }
++ }
++ }
++
++ /*
++ * Do packet compression if enabled.
++ */
++ if (proto == PPP_CCP)
++ ppp_comp_ccp(q, mp, 0);
++ else if (proto != PPP_LCP &amp;&amp; (cp-&gt;flags &amp; CCP_COMP_RUN)
++ &amp;&amp; cp-&gt;xstate != NULL) {
++ len = msgdsize(mp);
++ (*cp-&gt;xcomp-&gt;compress)(cp-&gt;xstate, &amp;cmp, mp, len,
++ (cp-&gt;flags &amp; CCP_ISUP? cp-&gt;mtu + PPP_HDRLEN: 0));
++ if (cmp != NULL) {
++#ifdef PRIOQ
++ cmp-&gt;b_band=mp-&gt;b_band;
++#endif PRIOQ
++ freemsg(mp);
++ mp = cmp;
++ }
++ }
++
++ /*
++ * Do address/control and protocol compression if enabled.
++ */
++ if ((cp-&gt;flags &amp; COMP_AC)
++ &amp;&amp; !(proto == PPP_LCP &amp;&amp; LCP_USE_DFLT(mp))) {
++ mp-&gt;b_rptr += 2; /* drop the address &amp; ctrl fields */
++ if (proto &lt; 0x100 &amp;&amp; (cp-&gt;flags &amp; COMP_PROT))
++ ++mp-&gt;b_rptr; /* drop the high protocol byte */
++ } else if (proto &lt; 0x100 &amp;&amp; (cp-&gt;flags &amp; COMP_PROT)) {
++ /* shuffle up the address &amp; ctrl fields */
++ mp-&gt;b_rptr[2] = mp-&gt;b_rptr[1];
++ mp-&gt;b_rptr[1] = mp-&gt;b_rptr[0];
++ ++mp-&gt;b_rptr;
++ }
++
++ cp-&gt;stats.ppp_opackets++;
++ cp-&gt;stats.ppp_obytes += msgdsize(mp);
++ putnext(q, mp);
++ }
++
++ return 0;
++}
++
++static int
++ppp_comp_rput(q, mp)
++ queue_t *q;
++ mblk_t *mp;
++{
++ comp_state_t *cp;
++ struct iocblk *iop;
++ struct ppp_stats *psp;
++
++ cp = (comp_state_t *) q-&gt;q_ptr;
++ if (cp == 0) {
++ DPRINT(&quot;cp == 0 in ppp_comp_rput\n&quot;);
++ freemsg(mp);
++ return 0;
++ }
++
++ switch (mp-&gt;b_datap-&gt;db_type) {
++
++ case M_DATA:
++ putq(q, mp);
++ break;
++
++ case M_IOCACK:
++ iop = (struct iocblk *) mp-&gt;b_rptr;
++ switch (iop-&gt;ioc_cmd) {
++ case PPPIO_GETSTAT:
++ /*
++ * Catch this on the way back from the ppp_ahdl module
++ * so we can fill in the VJ stats.
++ */
++ if (mp-&gt;b_cont == 0 || iop-&gt;ioc_count != sizeof(struct ppp_stats))
++ break;
++ psp = (struct ppp_stats *) mp-&gt;b_cont-&gt;b_rptr;
++ psp-&gt;vj = cp-&gt;vj_comp.stats;
++ break;
++ }
++ putnext(q, mp);
++ break;
++
++ case M_CTL:
++ switch (mp-&gt;b_rptr[0]) {
++ case PPPCTL_IERROR:
++ ++cp-&gt;stats.ppp_ierrors;
++ break;
++ case PPPCTL_OERROR:
++ ++cp-&gt;stats.ppp_oerrors;
++ break;
++ }
++ putnext(q, mp);
++ break;
++
++ default:
++ putnext(q, mp);
++ }
++
++ return 0;
++}
++
++static int
++ppp_comp_rsrv(q)
++ queue_t *q;
++{
++ int proto, rv, i;
++ mblk_t *mp, *dmp = NULL, *np;
++ uchar_t *dp, *iphdr;
++ comp_state_t *cp;
++ int len, hlen, vjlen;
++ u_int iphlen;
++
++ cp = (comp_state_t *) q-&gt;q_ptr;
++ if (cp == 0) {
++ DPRINT(&quot;cp == 0 in ppp_comp_rsrv\n&quot;);
++ return 0;
++ }
++
++ while ((mp = getq(q)) != 0) {
++ /* assert(mp-&gt;b_datap-&gt;db_type == M_DATA) */
++ if (!canputnext(q)) {
++ putbq(q, mp);
++ break;
++ }
++
++ len = msgdsize(mp);
++ cp-&gt;stats.ppp_ibytes += len;
++ cp-&gt;stats.ppp_ipackets++;
++
++ /*
++ * First work out the protocol and where the PPP header ends.
++ */
++ i = 0;
++ proto = MSG_BYTE(mp, 0);
++ if (proto == PPP_ALLSTATIONS) {
++ i = 2;
++ proto = MSG_BYTE(mp, 2);
++ }
++ if ((proto &amp; 1) == 0) {
++ ++i;
++ proto = (proto &lt;&lt; 8) + MSG_BYTE(mp, i);
++ }
++ hlen = i + 1;
++
++ /*
++ * Now reconstruct a complete, contiguous PPP header at the
++ * start of the packet.
++ */
++ if (hlen &lt; ((cp-&gt;flags &amp; DECOMP_AC)? 0: 2)
++ + ((cp-&gt;flags &amp; DECOMP_PROT)? 1: 2)) {
++ /* count these? */
++ goto bad;
++ }
++ if (mp-&gt;b_rptr + hlen &gt; mp-&gt;b_wptr) {
++ adjmsg(mp, hlen); /* XXX check this call */
++ hlen = 0;
++ }
++ if (hlen != PPP_HDRLEN) {
++ /*
++ * We need to put some bytes on the front of the packet
++ * to make a full-length PPP header.
++ * If we can put them in *mp, we do, otherwise we
++ * tack another mblk on the front.
++ * XXX we really shouldn't need to carry around
++ * the address and control at this stage.
++ */
++ dp = mp-&gt;b_rptr + hlen - PPP_HDRLEN;
++ if (dp &lt; mp-&gt;b_datap-&gt;db_base || mp-&gt;b_datap-&gt;db_ref &gt; 1) {
++ np = allocb(PPP_HDRLEN, BPRI_MED);
++ if (np == 0)
++ goto bad;
++ np-&gt;b_cont = mp;
++ mp-&gt;b_rptr += hlen;
++ mp = np;
++ dp = mp-&gt;b_wptr;
++ mp-&gt;b_wptr += PPP_HDRLEN;
++ } else
++ mp-&gt;b_rptr = dp;
++
++ dp[0] = PPP_ALLSTATIONS;
++ dp[1] = PPP_UI;
++ dp[2] = proto &gt;&gt; 8;
++ dp[3] = proto;
++ }
++
++ /*
++ * Now see if we have a compressed packet to decompress,
++ * or a CCP packet to take notice of.
++ */
++ proto = PPP_PROTOCOL(mp-&gt;b_rptr);
++ if (proto == PPP_CCP) {
++ len = msgdsize(mp);
++ if (mp-&gt;b_wptr &lt; mp-&gt;b_rptr + len) {
++ PULLUP(mp, len);
++ if (mp == 0)
++ goto bad;
++ }
++ ppp_comp_ccp(q, mp, 1);
++ } else if (proto == PPP_COMP) {
++ if ((cp-&gt;flags &amp; CCP_ISUP)
++ &amp;&amp; (cp-&gt;flags &amp; CCP_DECOMP_RUN) &amp;&amp; cp-&gt;rstate
++ &amp;&amp; (cp-&gt;flags &amp; CCP_ERR) == 0) {
++ rv = (*cp-&gt;rcomp-&gt;decompress)(cp-&gt;rstate, mp, &amp;dmp);
++ switch (rv) {
++ case DECOMP_OK:
++ freemsg(mp);
++ mp = dmp;
++ if (mp == NULL) {
++ /* no error, but no packet returned either. */
++ continue;
++ }
++ break;
++ case DECOMP_ERROR:
++ cp-&gt;flags |= CCP_ERROR;
++ ++cp-&gt;stats.ppp_ierrors;
++ putctl1(q-&gt;q_next, M_CTL, PPPCTL_IERROR);
++ break;
++ case DECOMP_FATALERROR:
++ cp-&gt;flags |= CCP_FATALERROR;
++ ++cp-&gt;stats.ppp_ierrors;
++ putctl1(q-&gt;q_next, M_CTL, PPPCTL_IERROR);
++ break;
++ }
++ }
++ } else if (cp-&gt;rstate &amp;&amp; (cp-&gt;flags &amp; CCP_DECOMP_RUN)) {
++ (*cp-&gt;rcomp-&gt;incomp)(cp-&gt;rstate, mp);
++ }
++
++ /*
++ * Now do VJ decompression.
++ */
++ proto = PPP_PROTOCOL(mp-&gt;b_rptr);
++ if (proto == PPP_VJC_COMP || proto == PPP_VJC_UNCOMP) {
++ len = msgdsize(mp) - PPP_HDRLEN;
++ if ((cp-&gt;flags &amp; DECOMP_VJC) == 0 || len &lt;= 0)
++ goto bad;
++
++ /*
++ * Advance past the ppp header.
++ * Here we assume that the whole PPP header is in the first mblk.
++ */
++ np = mp;
++ dp = np-&gt;b_rptr + PPP_HDRLEN;
++ if (dp &gt;= mp-&gt;b_wptr) {
++ np = np-&gt;b_cont;
++ dp = np-&gt;b_rptr;
++ }
++
++ /*
++ * Make sure we have sufficient contiguous data at this point.
++ */
++ hlen = (proto == PPP_VJC_COMP)? MAX_VJHDR: MAX_IPHDR;
++ if (hlen &gt; len)
++ hlen = len;
++ if (np-&gt;b_wptr &lt; dp + hlen || np-&gt;b_datap-&gt;db_ref &gt; 1) {
++ PULLUP(mp, hlen + PPP_HDRLEN);
++ if (mp == 0)
++ goto bad;
++ np = mp;
++ dp = np-&gt;b_rptr + PPP_HDRLEN;
++ }
++
++ if (proto == PPP_VJC_COMP) {
++ /*
++ * Decompress VJ-compressed packet.
++ * First reset compressor if an input error has occurred.
++ */
++ if (cp-&gt;stats.ppp_ierrors != cp-&gt;vj_last_ierrors) {
++ if (cp-&gt;flags &amp; DBGLOG)
++ DPRINT1(&quot;ppp%d: resetting VJ\n&quot;, cp-&gt;unit);
++ vj_uncompress_err(&amp;cp-&gt;vj_comp);
++ cp-&gt;vj_last_ierrors = cp-&gt;stats.ppp_ierrors;
++ }
++
++ vjlen = vj_uncompress_tcp(dp, np-&gt;b_wptr - dp, len,
++ &amp;cp-&gt;vj_comp, &amp;iphdr, &amp;iphlen);
++ if (vjlen &lt; 0) {
++ if (cp-&gt;flags &amp; DBGLOG)
++ DPRINT2(&quot;ppp%d: vj_uncomp_tcp failed, pkt len %d\n&quot;,
++ cp-&gt;unit, len);
++ ++cp-&gt;vj_last_ierrors; /* so we don't reset next time */
++ goto bad;
++ }
++
++ /* drop ppp and vj headers off */
++ if (mp != np) {
++ freeb(mp);
++ mp = np;
++ }
++ mp-&gt;b_rptr = dp + vjlen;
++
++ /* allocate a new mblk for the ppp and ip headers */
++ if ((np = allocb(iphlen + PPP_HDRLEN + 4, BPRI_MED)) == 0)
++ goto bad;
++ dp = np-&gt;b_rptr; /* prepend mblk with TCP/IP hdr */
++ dp[0] = PPP_ALLSTATIONS; /* reconstruct PPP header */
++ dp[1] = PPP_UI;
++ dp[2] = PPP_IP &gt;&gt; 8;
++ dp[3] = PPP_IP;
++ bcopy((caddr_t)iphdr, (caddr_t)dp + PPP_HDRLEN, iphlen);
++ np-&gt;b_wptr = dp + iphlen + PPP_HDRLEN;
++ np-&gt;b_cont = mp;
++
++ /* XXX there seems to be a bug which causes panics in strread
++ if we make an mbuf with only the IP header in it :-( */
++ if (mp-&gt;b_wptr - mp-&gt;b_rptr &gt; 4) {
++ bcopy((caddr_t)mp-&gt;b_rptr, (caddr_t)np-&gt;b_wptr, 4);
++ mp-&gt;b_rptr += 4;
++ np-&gt;b_wptr += 4;
++ } else {
++ bcopy((caddr_t)mp-&gt;b_rptr, (caddr_t)np-&gt;b_wptr,
++ mp-&gt;b_wptr - mp-&gt;b_rptr);
++ np-&gt;b_wptr += mp-&gt;b_wptr - mp-&gt;b_rptr;
++ np-&gt;b_cont = mp-&gt;b_cont;
++ freeb(mp);
++ }
++
++ mp = np;
++
++ } else {
++ /*
++ * &quot;Decompress&quot; a VJ-uncompressed packet.
++ */
++ cp-&gt;vj_last_ierrors = cp-&gt;stats.ppp_ierrors;
++ if (!vj_uncompress_uncomp(dp, hlen, &amp;cp-&gt;vj_comp)) {
++ if (cp-&gt;flags &amp; DBGLOG)
++ DPRINT2(&quot;ppp%d: vj_uncomp_uncomp failed, pkt len %d\n&quot;,
++ cp-&gt;unit, len);
++ ++cp-&gt;vj_last_ierrors; /* don't need to reset next time */
++ goto bad;
++ }
++ mp-&gt;b_rptr[3] = PPP_IP; /* fix up the PPP protocol field */
++ }
++ }
++
++ putnext(q, mp);
++ continue;
++
++ bad:
++ if (mp != 0)
++ freemsg(mp);
++ cp-&gt;stats.ppp_ierrors++;
++ putctl1(q-&gt;q_next, M_CTL, PPPCTL_IERROR);
++ }
++
++ return 0;
++}
++
++/*
++ * Handle a CCP packet being sent or received.
++ * Here all the data in the packet is in a single mbuf.
++ */
++static void
++ppp_comp_ccp(q, mp, rcvd)
++ queue_t *q;
++ mblk_t *mp;
++ int rcvd;
++{
++ int len, clen;
++ comp_state_t *cp;
++ unsigned char *dp;
++
++ len = msgdsize(mp);
++ if (len &lt; PPP_HDRLEN + CCP_HDRLEN)
++ return;
++
++ cp = (comp_state_t *) q-&gt;q_ptr;
++ dp = mp-&gt;b_rptr + PPP_HDRLEN;
++ len -= PPP_HDRLEN;
++ clen = CCP_LENGTH(dp);
++ if (clen &gt; len)
++ return;
++
++ switch (CCP_CODE(dp)) {
++ case CCP_CONFREQ:
++ case CCP_TERMREQ:
++ case CCP_TERMACK:
++ cp-&gt;flags &amp;= ~CCP_ISUP;
++ break;
++
++ case CCP_CONFACK:
++ if ((cp-&gt;flags &amp; (CCP_ISOPEN | CCP_ISUP)) == CCP_ISOPEN
++ &amp;&amp; clen &gt;= CCP_HDRLEN + CCP_OPT_MINLEN
++ &amp;&amp; clen &gt;= CCP_HDRLEN + CCP_OPT_LENGTH(dp + CCP_HDRLEN)) {
++ if (!rcvd) {
++ if (cp-&gt;xstate != NULL
++ &amp;&amp; (*cp-&gt;xcomp-&gt;comp_init)
++ (cp-&gt;xstate, dp + CCP_HDRLEN, clen - CCP_HDRLEN,
++ cp-&gt;unit, 0, ((cp-&gt;flags &amp; DBGLOG) != 0)))
++ cp-&gt;flags |= CCP_COMP_RUN;
++ } else {
++ if (cp-&gt;rstate != NULL
++ &amp;&amp; (*cp-&gt;rcomp-&gt;decomp_init)
++ (cp-&gt;rstate, dp + CCP_HDRLEN, clen - CCP_HDRLEN,
++ cp-&gt;unit, 0, cp-&gt;mru, ((cp-&gt;flags &amp; DBGLOG) != 0)))
++ cp-&gt;flags = (cp-&gt;flags &amp; ~CCP_ERR) | CCP_DECOMP_RUN;
++ }
++ }
++ break;
++
++ case CCP_RESETACK:
++ if (cp-&gt;flags &amp; CCP_ISUP) {
++ if (!rcvd) {
++ if (cp-&gt;xstate &amp;&amp; (cp-&gt;flags &amp; CCP_COMP_RUN))
++ (*cp-&gt;xcomp-&gt;comp_reset)(cp-&gt;xstate);
++ } else {
++ if (cp-&gt;rstate &amp;&amp; (cp-&gt;flags &amp; CCP_DECOMP_RUN)) {
++ (*cp-&gt;rcomp-&gt;decomp_reset)(cp-&gt;rstate);
++ cp-&gt;flags &amp;= ~CCP_ERROR;
++ }
++ }
++ }
++ break;
++ }
++}
++
++#if 0
++dump_msg(mp)
++ mblk_t *mp;
++{
++ dblk_t *db;
++
++ while (mp != 0) {
++ db = mp-&gt;b_datap;
++ DPRINT2(&quot;mp=%x cont=%x &quot;, mp, mp-&gt;b_cont);
++ DPRINT3(&quot;rptr=%x wptr=%x datap=%x\n&quot;, mp-&gt;b_rptr, mp-&gt;b_wptr, db);
++ DPRINT2(&quot; base=%x lim=%x&quot;, db-&gt;db_base, db-&gt;db_lim);
++ DPRINT2(&quot; ref=%d type=%d\n&quot;, db-&gt;db_ref, db-&gt;db_type);
++ mp = mp-&gt;b_cont;
++ }
++}
++#endif
++
++static int
++msg_byte(mp, i)
++ mblk_t *mp;
++ unsigned int i;
++{
++ while (mp != 0 &amp;&amp; i &gt;= mp-&gt;b_wptr - mp-&gt;b_rptr)
++ mp = mp-&gt;b_cont;
++ if (mp == 0)
++ return -1;
++ return mp-&gt;b_rptr[i];
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/solaris/ppp_comp.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pppsolarisppp_comp_modc">Added: drakx/trunk/mdk-stage1/ppp/solaris/ppp_comp_mod.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/solaris/ppp_comp_mod.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/solaris/ppp_comp_mod.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,81 @@
++/*
++ * ppp_comp_mod.c - modload support for PPP compression STREAMS module.
++ *
++ * Copyright (c) 1994 The Australian National University.
++ * All rights reserved.
++ *
++ * Permission to use, copy, modify, and distribute this software and its
++ * documentation is hereby granted, provided that the above copyright
++ * notice appears in all copies. This software is provided without any
++ * warranty, express or implied. The Australian National University
++ * makes no representations about the suitability of this software for
++ * any purpose.
++ *
++ * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY
++ * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
++ * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
++ * THE AUSTRALIAN NATIONAL UNIVERSITY HAVE BEEN ADVISED OF THE POSSIBILITY
++ * OF SUCH DAMAGE.
++ *
++ * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
++ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
++ * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
++ * ON AN &quot;AS IS&quot; BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO
++ * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
++ * OR MODIFICATIONS.
++ *
++ * $Id: ppp_comp_mod.c 195720 2001-06-11 11:44:34Z gc $
++ */
++
++/*
++ * This file is used under Solaris 2.
++ */
++#include &lt;sys/types.h&gt;
++#include &lt;sys/param.h&gt;
++#include &lt;sys/conf.h&gt;
++#include &lt;sys/modctl.h&gt;
++#include &lt;sys/sunddi.h&gt;
++
++extern struct streamtab ppp_compinfo;
++
++static struct fmodsw fsw = {
++ &quot;ppp_comp&quot;,
++ &amp;ppp_compinfo,
++ D_NEW | D_MP | D_MTQPAIR
++};
++
++extern struct mod_ops mod_strmodops;
++
++static struct modlstrmod modlstrmod = {
++ &amp;mod_strmodops,
++ &quot;PPP compression module&quot;,
++ &amp;fsw
++};
++
++static struct modlinkage modlinkage = {
++ MODREV_1,
++ (void *) &amp;modlstrmod,
++ NULL
++};
++
++/*
++ * Entry points for modloading.
++ */
++int
++_init(void)
++{
++ return mod_install(&amp;modlinkage);
++}
++
++int
++_fini(void)
++{
++ return mod_remove(&amp;modlinkage);
++}
++
++int
++_info(mip)
++ struct modinfo *mip;
++{
++ return mod_info(&amp;modlinkage, mip);
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/solaris/ppp_comp_mod.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pppsolarisppp_modc">Added: drakx/trunk/mdk-stage1/ppp/solaris/ppp_mod.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/solaris/ppp_mod.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/solaris/ppp_mod.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,174 @@
++/*
++ * ppp_mod.c - modload support for PPP pseudo-device driver.
++ *
++ * Copyright (c) 1994 The Australian National University.
++ * All rights reserved.
++ *
++ * Permission to use, copy, modify, and distribute this software and its
++ * documentation is hereby granted, provided that the above copyright
++ * notice appears in all copies. This software is provided without any
++ * warranty, express or implied. The Australian National University
++ * makes no representations about the suitability of this software for
++ * any purpose.
++ *
++ * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY
++ * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
++ * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
++ * THE AUSTRALIAN NATIONAL UNIVERSITY HAVE BEEN ADVISED OF THE POSSIBILITY
++ * OF SUCH DAMAGE.
++ *
++ * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
++ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
++ * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
++ * ON AN &quot;AS IS&quot; BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO
++ * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
++ * OR MODIFICATIONS.
++ *
++ * $Id: ppp_mod.c 195720 2001-06-11 11:44:34Z gc $
++ */
++
++/*
++ * This file is used under Solaris 2.
++ */
++
++#include &lt;sys/types.h&gt;
++#include &lt;sys/param.h&gt;
++#include &lt;sys/stat.h&gt;
++#include &lt;sys/conf.h&gt;
++#include &lt;sys/modctl.h&gt;
++#include &lt;sys/sunddi.h&gt;
++#include &lt;sys/ksynch.h&gt;
++
++#ifdef __STDC__
++#define __P(x) x
++#else
++#define __P(x) ()
++#endif
++
++static int ppp_identify __P((dev_info_t *));
++static int ppp_attach __P((dev_info_t *, ddi_attach_cmd_t));
++static int ppp_detach __P((dev_info_t *, ddi_detach_cmd_t));
++static int ppp_devinfo __P((dev_info_t *, ddi_info_cmd_t, void *, void **));
++
++extern struct streamtab pppinfo;
++extern krwlock_t ppp_lower_lock;
++
++static dev_info_t *ppp_dip;
++
++static struct cb_ops cb_ppp_ops = {
++ nulldev, nulldev, nodev, nodev, /* cb_open, ... */
++ nodev, nodev, nodev, nodev, /* cb_dump, ... */
++ nodev, nodev, nodev, nochpoll, /* cb_devmap, ... */
++ ddi_prop_op, /* cb_prop_op */
++ &amp;pppinfo, /* cb_stream */
++ D_NEW|D_MP|D_MTQPAIR|D_MTOUTPERIM|D_MTOCEXCL /* cb_flag */
++};
++
++static struct dev_ops ppp_ops = {
++ DEVO_REV, /* devo_rev */
++ 0, /* devo_refcnt */
++ ppp_devinfo, /* devo_getinfo */
++ ppp_identify, /* devo_identify */
++ nulldev, /* devo_probe */
++ ppp_attach, /* devo_attach */
++ ppp_detach, /* devo_detach */
++ nodev, /* devo_reset */
++ &amp;cb_ppp_ops, /* devo_cb_ops */
++ NULL /* devo_bus_ops */
++};
++
++/*
++ * Module linkage information
++ */
++
++static struct modldrv modldrv = {
++ &amp;mod_driverops, /* says this is a pseudo driver */
++ &quot;PPP-2.3 multiplexing driver&quot;,
++ &amp;ppp_ops /* driver ops */
++};
++
++static struct modlinkage modlinkage = {
++ MODREV_1,
++ (void *) &amp;modldrv,
++ NULL
++};
++
++int
++_init(void)
++{
++ return mod_install(&amp;modlinkage);
++}
++
++int
++_fini(void)
++{
++ return mod_remove(&amp;modlinkage);
++}
++
++int
++_info(mip)
++ struct modinfo *mip;
++{
++ return mod_info(&amp;modlinkage, mip);
++}
++
++static int
++ppp_identify(dip)
++ dev_info_t *dip;
++{
++ return strcmp(ddi_get_name(dip), &quot;ppp&quot;) == 0? DDI_IDENTIFIED:
++ DDI_NOT_IDENTIFIED;
++}
++
++static int
++ppp_attach(dip, cmd)
++ dev_info_t *dip;
++ ddi_attach_cmd_t cmd;
++{
++
++ if (cmd != DDI_ATTACH)
++ return DDI_FAILURE;
++ if (ddi_create_minor_node(dip, &quot;ppp&quot;, S_IFCHR, 0, DDI_PSEUDO, CLONE_DEV)
++ == DDI_FAILURE) {
++ ddi_remove_minor_node(dip, NULL);
++ return DDI_FAILURE;
++ }
++ rw_init(&amp;ppp_lower_lock, NULL, RW_DRIVER, NULL);
++ return DDI_SUCCESS;
++}
++
++static int
++ppp_detach(dip, cmd)
++ dev_info_t *dip;
++ ddi_detach_cmd_t cmd;
++{
++ rw_destroy(&amp;ppp_lower_lock);
++ ddi_remove_minor_node(dip, NULL);
++ return DDI_SUCCESS;
++}
++
++static int
++ppp_devinfo(dip, cmd, arg, result)
++ dev_info_t *dip;
++ ddi_info_cmd_t cmd;
++ void *arg;
++ void **result;
++{
++ int error;
++
++ error = DDI_SUCCESS;
++ switch (cmd) {
++ case DDI_INFO_DEVT2DEVINFO:
++ if (ppp_dip == NULL)
++ error = DDI_FAILURE;
++ else
++ *result = (void *) ppp_dip;
++ break;
++ case DDI_INFO_DEVT2INSTANCE:
++ *result = NULL;
++ break;
++ default:
++ error = DDI_FAILURE;
++ }
++ return error;
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/solaris/ppp_mod.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pppsolarisppp_modh">Added: drakx/trunk/mdk-stage1/ppp/solaris/ppp_mod.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/solaris/ppp_mod.h (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/solaris/ppp_mod.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,190 @@
++/*
++ * Miscellaneous definitions for PPP STREAMS modules.
++ */
++
++/*
++ * Macros for allocating and freeing kernel memory.
++ */
++#ifdef SVR4 /* SVR4, including Solaris 2 */
++#include &lt;sys/kmem.h&gt;
++#define ALLOC_SLEEP(n) kmem_alloc((n), KM_SLEEP)
++#define ALLOC_NOSLEEP(n) kmem_alloc((n), KM_NOSLEEP)
++#define FREE(p, n) kmem_free((p), (n))
++#endif
++
++#ifdef SUNOS4
++#include &lt;sys/kmem_alloc.h&gt; /* SunOS 4.x */
++#define ALLOC_SLEEP(n) kmem_alloc((n), KMEM_SLEEP)
++#define ALLOC_NOSLEEP(n) kmem_alloc((n), KMEM_NOSLEEP)
++#define FREE(p, n) kmem_free((p), (n))
++#define NOTSUSER() (suser()? 0: EPERM)
++#define bcanputnext(q, band) canputnext((q))
++#endif /* SunOS 4 */
++
++#ifdef __osf__
++#include &lt;sys/malloc.h&gt;
++
++/* caution: this mirrors macros in sys/malloc.h, and uses interfaces
++ * which are subject to change.
++ * The problems are that:
++ * - the official MALLOC macro wants the lhs of the assignment as an argument,
++ * and it takes care of the assignment itself (yuck.)
++ * - PPP insists on using &quot;FREE&quot; which conflicts with a macro of the same name.
++ *
++ */
++#ifdef BUCKETINDX /* V2.0 */
++#define ALLOC_SLEEP(n) (void *)malloc((u_long)(n), BUCKETP(n), M_DEVBUF, M_WAITOK)
++#define ALLOC_NOSLEEP(n) (void *)malloc((u_long)(n), BUCKETP(n), M_DEVBUF, M_NOWAIT)
++#else
++#define ALLOC_SLEEP(n) (void *)malloc((u_long)(n), BUCKETINDEX(n), M_DEVBUF, M_WAITOK)
++#define ALLOC_NOSLEEP(n) (void *)malloc((u_long)(n), BUCKETINDEX(n), M_DEVBUF, M_NOWAIT)
++#endif
++
++#define bcanputnext(q, band) canputnext((q))
++
++#ifdef FREE
++#undef FREE
++#endif
++#define FREE(p, n) free((void *)(p), M_DEVBUF)
++
++#define NO_DLPI 1
++
++#ifndef IFT_PPP
++#define IFT_PPP 0x17
++#endif
++
++#include &lt;sys/proc.h&gt;
++#define NOTSUSER() (suser(u.u_procp-&gt;p_rcred, &amp;u.u_acflag) ? EPERM : 0)
++
++/* #include &quot;ppp_osf.h&quot; */
++
++#endif /* __osf__ */
++
++#ifdef AIX4
++#define ALLOC_SLEEP(n) xmalloc((n), 0, pinned_heap) /* AIX V4.x */
++#define ALLOC_NOSLEEP(n) xmalloc((n), 0, pinned_heap) /* AIX V4.x */
++#define FREE(p, n) xmfree((p), pinned_heap)
++#define NOTSUSER() (suser()? 0: EPERM)
++#endif /* AIX */
++
++/*
++ * Macros for printing debugging stuff.
++ */
++#ifdef DEBUG
++#if defined(SVR4) || defined(__osf__)
++#if defined(SNI)
++#include &lt;sys/strlog.h&gt;
++#define STRLOG_ID 4712
++#define DPRINT(f) strlog(STRLOG_ID, 0, 0, SL_TRACE, f)
++#define DPRINT1(f, a1) strlog(STRLOG_ID, 0, 0, SL_TRACE, f, a1)
++#define DPRINT2(f, a1, a2) strlog(STRLOG_ID, 0, 0, SL_TRACE, f, a1, a2)
++#define DPRINT3(f, a1, a2, a3) strlog(STRLOG_ID, 0, 0, SL_TRACE, f, a1, a2, a3)
++#else
++#define DPRINT(f) cmn_err(CE_CONT, f)
++#define DPRINT1(f, a1) cmn_err(CE_CONT, f, a1)
++#define DPRINT2(f, a1, a2) cmn_err(CE_CONT, f, a1, a2)
++#define DPRINT3(f, a1, a2, a3) cmn_err(CE_CONT, f, a1, a2, a3)
++#endif /* SNI */
++#else
++#define DPRINT(f) printf(f)
++#define DPRINT1(f, a1) printf(f, a1)
++#define DPRINT2(f, a1, a2) printf(f, a1, a2)
++#define DPRINT3(f, a1, a2, a3) printf(f, a1, a2, a3)
++#endif /* SVR4 or OSF */
++
++#else
++#define DPRINT(f) 0
++#define DPRINT1(f, a1) 0
++#define DPRINT2(f, a1, a2) 0
++#define DPRINT3(f, a1, a2, a3) 0
++#endif /* DEBUG */
++
++#ifndef SVR4
++typedef unsigned char uchar_t;
++typedef unsigned short ushort_t;
++#ifndef __osf__
++typedef int minor_t;
++#endif
++#endif
++
++/*
++ * If we don't have multithreading support, define substitutes.
++ */
++#ifndef D_MP
++# define qprocson(q)
++# define qprocsoff(q)
++# define put(q, mp) ((*(q)-&gt;q_qinfo-&gt;qi_putp)((q), (mp)))
++# define canputnext(q) canput((q)-&gt;q_next)
++# define qwriter(q, mp, func, scope) (func)((q), (mp))
++#endif
++
++#ifdef D_MP
++/* Use msgpullup if we have other multithreading support. */
++#define PULLUP(mp, len) \
++ do { \
++ mblk_t *np = msgpullup((mp), (len)); \
++ freemsg((mp)); \
++ mp = np; \
++ } while (0)
++
++#else
++/* Use pullupmsg if we don't have any multithreading support. */
++#define PULLUP(mp, len) \
++ do { \
++ if (!pullupmsg((mp), (len))) { \
++ freemsg((mp)); \
++ mp = 0; \
++ } \
++ } while (0)
++#endif
++
++/*
++ * How to declare the open and close procedures for a module.
++ */
++#ifdef SVR4
++#define MOD_OPEN_DECL(name) \
++static int name __P((queue_t *, dev_t *, int, int, cred_t *))
++
++#define MOD_CLOSE_DECL(name) \
++static int name __P((queue_t *, int, cred_t *))
++
++#define MOD_OPEN(name) \
++static int name(q, devp, flag, sflag, credp) \
++ queue_t *q; \
++ dev_t *devp; \
++ int flag, sflag; \
++ cred_t *credp;
++
++#define MOD_CLOSE(name) \
++static int name(q, flag, credp) \
++ queue_t *q; \
++ int flag; \
++ cred_t *credp;
++
++#define OPEN_ERROR(x) return (x)
++#define DRV_OPEN_OK(dev) return 0
++
++#define NOTSUSER() (drv_priv(credp))
++
++#else /* not SVR4 */
++#define MOD_OPEN_DECL(name) \
++static int name __P((queue_t *, int, int, int))
++
++#define MOD_CLOSE_DECL(name) \
++static int name __P((queue_t *, int))
++
++#define MOD_OPEN(name) \
++static int name(q, dev, flag, sflag) \
++ queue_t *q; \
++ int dev; \
++ int flag, sflag;
++
++#define MOD_CLOSE(name) \
++static int name(q, flag) \
++ queue_t *q; \
++ int flag;
++
++#define OPEN_ERROR(x) { u.u_error = (x); return OPENFAIL; }
++#define DRV_OPEN_OK(dev) return (dev)
++
++#endif /* SVR4 */
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/solaris/ppp_mod.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pppsunos4Makedefs">Added: drakx/trunk/mdk-stage1/ppp/sunos4/Makedefs</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/sunos4/Makedefs (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/sunos4/Makedefs 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,13 @@
++#
++# defines common to several Makefiles
++#
++
++INSTALL= install -o root -g daemon
++
++BINDIR = /usr/local/etc
++MANDIR = /usr/local/man
++ETCDIR = /etc/ppp
++
++# To use gcc, uncomment the next line.
++#CC = gcc
++COPTS = -O
+
+<a id="drakxtrunkmdkstage1pppsunos4Makefile">Added: drakx/trunk/mdk-stage1/ppp/sunos4/Makefile</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/sunos4/Makefile (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/sunos4/Makefile 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,57 @@
++#
++# Makefile for STREAMS modules for SunOS 4.
++#
++# $Id: Makefile 195720 2001-06-11 11:44:34Z gc $
++#
++
++include Makedefs
++
++LD = /usr/bin/ld # make sure we don't get gnu ld
++
++# Defining __$(ARCH)__ is for gcc's broken version of sun/vddrv.h.
++ARCH = `/bin/arch -k`
++DEFINES= -DKERNEL -D_KERNEL -DSUNOS4 -D$(ARCH) -D__$(ARCH)__ \
++ -DDEBUG -DNO_DLPI -DSNIT_SUPPORT
++CFLAGS= $(DEFINES) -I../include $(COPTS)
++
++MODULES= ppp_mod.o ppp_ahdl_mod.o ppp_comp_mod.o if_ppp_mod.o
++
++all: $(MODULES)
++
++ppp_mod.o: ppp.o ppp_vdcmd.o
++ $(LD) -r -o ppp_mod.o ppp.o ppp_vdcmd.o
++
++ppp_ahdl_mod.o: ppp_ahdlc.o ppp_ahdlc_vdcmd.o
++ $(LD) -r -o ppp_ahdl_mod.o ppp_ahdlc.o ppp_ahdlc_vdcmd.o
++
++COMP_OBJS = ppp_comp.o bsd-comp.o deflate.o zlib.o vjcompress.o \
++ ppp_comp_vdcmd.o
++ppp_comp_mod.o: $(COMP_OBJS)
++ $(LD) -r -o $@ $(COMP_OBJS)
++
++if_ppp.o: ../modules/if_ppp.c
++ $(CC) $(CFLAGS) -c $?
++bsd-comp.o: ../modules/bsd-comp.c
++ $(CC) $(CFLAGS) -c $?
++deflate.o: ../modules/deflate.c
++ $(CC) $(CFLAGS) -c $?
++ppp.o: ../modules/ppp.c
++ $(CC) $(CFLAGS) -c $?
++ppp_ahdlc.o: ../modules/ppp_ahdlc.c
++ $(CC) $(CFLAGS) -c $?
++ppp_comp.o: ../modules/ppp_comp.c
++ $(CC) $(CFLAGS) -c $?
++vjcompress.o: ../modules/vjcompress.c
++ $(CC) $(CFLAGS) -c $?
++zlib.o: ../common/zlib.c
++ $(CC) $(CFLAGS) -c $?
++
++if_ppp_mod.o: if_ppp.o if_ppp_vdcmd.o
++ $(LD) -r -o if_ppp_mod.o if_ppp.o if_ppp_vdcmd.o
++
++install: all
++ $(INSTALL) $(MODULES) $(BINDIR)
++ ./ppp.INSTALL
++
++clean:
++ rm -f ppp ppp_comp ppp_ahdl *.o *~ core
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/sunos4/Makefile
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pppsunos4Makefiletop">Added: drakx/trunk/mdk-stage1/ppp/sunos4/Makefile.top</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/sunos4/Makefile.top (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/sunos4/Makefile.top 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,46 @@
++#
++# ppp top level makefile
++#
++
++include sunos4/Makedefs
++
++all:
++ cd chat; $(MAKE) all
++ cd pppd; $(MAKE) all
++ cd pppstats; $(MAKE) all
++ cd sunos4; $(MAKE) all
++ cd pppdump; $(MAKE) all
++
++install: $(BINDIR) $(MANDIR)/man8 install-progs install-etcppp
++
++install-progs:
++ cd chat; $(MAKE) install
++ cd pppd; $(MAKE) install
++ cd pppstats; $(MAKE) install
++ cd pppdump; $(MAKE) install
++ cd sunos4; $(MAKE) install
++
++install-etcppp: $(ETCDIR) $(ETCDIR)/options $(ETCDIR)/pap-secrets \
++ $(ETCDIR)/chap-secrets
++
++$(ETCDIR)/options:
++ $(INSTALL) -c -m 644 etc.ppp/options $@
++$(ETCDIR)/pap-secrets:
++ $(INSTALL) -c -m 600 etc.ppp/pap-secrets $@
++$(ETCDIR)/chap-secrets:
++ $(INSTALL) -c -m 600 etc.ppp/chap-secrets $@
++
++$(BINDIR):
++ $(INSTALL) -d -m 755 $@
++$(MANDIR)/man8:
++ $(INSTALL) -d -m 755 $@
++$(ETCDIR):
++ $(INSTALL) -d -m 755 $@
++
++clean:
++ rm -f *~
++ cd chat; $(MAKE) clean
++ cd pppd; $(MAKE) clean
++ cd pppstats; $(MAKE) clean
++ cd sunos4; $(MAKE) clean
++
+
+<a id="drakxtrunkmdkstage1pppsunos4if_ppp_vdcmdc">Added: drakx/trunk/mdk-stage1/ppp/sunos4/if_ppp_vdcmd.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/sunos4/if_ppp_vdcmd.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/sunos4/if_ppp_vdcmd.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,57 @@
++#include &lt;sys/types.h&gt;
++#include &lt;sys/errno.h&gt;
++#include &lt;sys/conf.h&gt;
++#include &lt;sun/vddrv.h&gt;
++
++extern struct streamtab if_pppinfo;
++
++static struct vdldrv vd = {
++ VDMAGIC_USER,
++ &quot;if_ppp&quot;
++};
++
++static int fmodsw_index = -1;
++
++int
++if_ppp_vdcmd(fun, vdp, vdi, vds)
++ unsigned int fun;
++ struct vddrv *vdp;
++ addr_t vdi;
++ struct vdstat *vds;
++{
++ int n, error;
++
++ switch (fun) {
++ case VDLOAD:
++ vdp-&gt;vdd_vdtab = (struct vdlinkage *) &amp;vd;
++ if (fmodsw_index &gt;= 0)
++ return EBUSY;
++ for (n = 0; n &lt; fmodcnt; ++n)
++ if (fmodsw[n].f_str == 0)
++ break;
++ if (n &gt;= fmodcnt)
++ return ENODEV;
++ strncpy(fmodsw[n].f_name, vd.Drv_name, FMNAMESZ+1);
++ fmodsw[n].f_str = &amp;if_pppinfo;
++ fmodsw_index = n;
++ break;
++
++ case VDUNLOAD:
++ if (fmodsw_index &lt;= 0)
++ return EINVAL;
++ error = if_ppp_unload();
++ if (error != 0)
++ return error;
++ fmodsw[fmodsw_index].f_name[0] = 0;
++ fmodsw[fmodsw_index].f_str = 0;
++ fmodsw_index = -1;
++ break;
++
++ case VDSTAT:
++ break;
++
++ default:
++ return EIO;
++ }
++ return 0;
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/sunos4/if_ppp_vdcmd.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pppsunos4pppINSTALL">Added: drakx/trunk/mdk-stage1/ppp/sunos4/ppp.INSTALL</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/sunos4/ppp.INSTALL (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/sunos4/ppp.INSTALL 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,104 @@
++#!/bin/sh
++
++# Script for loading, unloading, etc. ppp modules.
++
++moddir=/usr/local/etc
++etcppp=/etc/ppp
++
++PATH=/usr/etc:/usr/bin
++
++# Check that we're superuser
++touch /tmp/su$$
++if chown root /tmp/su$$ &gt;/dev/null; then :
++else
++ echo &quot;$0: must be root.&quot;
++ rm -f /tmp/su$$
++ exit 1
++fi
++rm -f /tmp/su$$
++
++case &quot;$0&quot; in
++*ppp.INSTALL)
++ if [ ! -f ppp.INSTALL ]; then
++ echo &quot;ppp.INSTALL: not found&quot;
++ exit 1
++ fi
++ for n in INSTALL LOAD UNLOAD MKDEV RMDEV; do
++ if [ -h /dev/ppp.$n -o -f /dev/ppp.$n ]; then
++ rm /dev/ppp.$n
++ fi
++ done
++ cp ppp.INSTALL /dev
++ for n in LOAD UNLOAD MKDEV RMDEV; do
++ ln -s ppp.INSTALL /dev/ppp.$n
++ done
++ ;;
++
++*ppp.LOAD)
++ if modstat | grep -w ppp &gt;/dev/null; then
++ echo &quot;ppp driver is already loaded.&quot;
++ exit 1
++ fi
++ if modstat | grep -w if_ppp &gt;/dev/null; then
++ echo &quot;if_ppp module already loaded: not reloading.&quot;
++ else
++ echo -n &quot;if_ppp: &quot;
++ modload $moddir/if_ppp_mod.o -sym -entry _if_ppp_vdcmd \
++ -o $etcppp/if_ppp_mod
++ fi
++ echo -n &quot;ppp: &quot;
++ modload $moddir/ppp_mod.o -sym -entry _ppp_vdcmd -exec /dev/ppp.MKDEV \
++ -o $etcppp/ppp_mod
++ echo -n &quot;ppp_comp: &quot;
++ modload $moddir/ppp_comp_mod.o -sym -entry _ppp_comp_vdcmd \
++ -o $etcppp/ppp_comp
++ echo -n &quot;ppp_ahdl: &quot;
++ modload $moddir/ppp_ahdl_mod.o -sym -entry _ppp_ahdlc_vdcmd \
++ -o $etcppp/ppp_ahdl
++ exit 0
++ ;;
++
++*ppp.MKDEV)
++ # args: module number, type, b-major, c-major
++ if [ $# -ne 4 ]; then
++ echo &quot;Usage: $0 module-id module-type b-major c-major&quot;
++ exit 1
++ fi
++ if [ &quot;$2&quot; -ne &quot;12345607&quot; -a &quot;$2&quot; -ne &quot;12345600&quot; ]; then
++ echo &quot;$0: $2: bad module type&quot;
++ exit 1
++ fi
++ rm -f /dev/ppp
++ # we &quot;just know&quot; that 37 is the major number of the clone driver
++ mknod /dev/ppp c 37 $4
++ chmod 644 /dev/ppp
++ exit 0
++ ;;
++
++*ppp.UNLOAD)
++ stat=0
++ if modstat | grep -w if_ppp &gt;/dev/null; then
++ echo &quot;$0: not unloading if_ppp module.&quot;
++ fi
++ for mod in ppp ppp_comp ppp_ahdl; do
++ id=`modstat | grep -w $mod | awk '{print $1}'`
++ if [ x$id = x ]; then
++ echo &quot;$mod is not loaded.&quot;
++ stat=1
++ else
++ modunload -id $id
++ fi
++ done
++ exit $stat
++ ;;
++
++*ppp.RMDEV)
++ rm -f /dev/ppp
++ exit 0
++ ;;
++
++*)
++ echo &quot;Invocation names: ppp.INSTALL ppp.LOAD ppp.UNLOAD ppp.MKDEV ppp.RMDEV&quot;
++ exit 1
++ ;;
++esac
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/sunos4/ppp.INSTALL
+___________________________________________________________________
+Added: svn:executable
+ + *
+
+<a id="drakxtrunkmdkstage1pppsunos4ppp_ahdlc_vdcmdc">Added: drakx/trunk/mdk-stage1/ppp/sunos4/ppp_ahdlc_vdcmd.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/sunos4/ppp_ahdlc_vdcmd.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/sunos4/ppp_ahdlc_vdcmd.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,57 @@
++#include &lt;sys/types.h&gt;
++#include &lt;sys/errno.h&gt;
++#include &lt;sys/conf.h&gt;
++#include &lt;sun/vddrv.h&gt;
++
++extern struct streamtab ppp_ahdlcinfo;
++extern int ppp_ahdlc_count;
++
++static struct vdldrv vd = {
++ VDMAGIC_USER,
++ &quot;ppp_ahdl&quot;
++};
++
++static int fmodsw_index = -1;
++
++int
++ppp_ahdlc_vdcmd(fun, vdp, vdi, vds)
++ unsigned int fun;
++ struct vddrv *vdp;
++ addr_t vdi;
++ struct vdstat *vds;
++{
++ int n;
++
++ switch (fun) {
++ case VDLOAD:
++ vdp-&gt;vdd_vdtab = (struct vdlinkage *) &amp;vd;
++ if (fmodsw_index &gt;= 0)
++ return EBUSY;
++ for (n = 0; n &lt; fmodcnt; ++n)
++ if (fmodsw[n].f_str == 0)
++ break;
++ if (n &gt;= fmodcnt)
++ return ENODEV;
++ strncpy(fmodsw[n].f_name, vd.Drv_name, FMNAMESZ+1);
++ fmodsw[n].f_str = &amp;ppp_ahdlcinfo;
++ fmodsw_index = n;
++ break;
++
++ case VDUNLOAD:
++ if (ppp_ahdlc_count &gt; 0)
++ return EBUSY;
++ if (fmodsw_index &lt;= 0)
++ return EINVAL;
++ fmodsw[fmodsw_index].f_name[0] = 0;
++ fmodsw[fmodsw_index].f_str = 0;
++ fmodsw_index = -1;
++ break;
++
++ case VDSTAT:
++ break;
++
++ default:
++ return EIO;
++ }
++ return 0;
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/sunos4/ppp_ahdlc_vdcmd.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pppsunos4ppp_comp_vdcmdc">Added: drakx/trunk/mdk-stage1/ppp/sunos4/ppp_comp_vdcmd.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/sunos4/ppp_comp_vdcmd.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/sunos4/ppp_comp_vdcmd.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,57 @@
++#include &lt;sys/types.h&gt;
++#include &lt;sys/errno.h&gt;
++#include &lt;sys/conf.h&gt;
++#include &lt;sun/vddrv.h&gt;
++
++extern struct streamtab ppp_compinfo;
++extern int ppp_comp_count;
++
++static struct vdldrv vd = {
++ VDMAGIC_USER,
++ &quot;ppp_comp&quot;
++};
++
++static int fmodsw_index = -1;
++
++int
++ppp_comp_vdcmd(fun, vdp, vdi, vds)
++ unsigned int fun;
++ struct vddrv *vdp;
++ addr_t vdi;
++ struct vdstat *vds;
++{
++ int n;
++
++ switch (fun) {
++ case VDLOAD:
++ vdp-&gt;vdd_vdtab = (struct vdlinkage *) &amp;vd;
++ if (fmodsw_index &gt;= 0)
++ return EBUSY;
++ for (n = 0; n &lt; fmodcnt; ++n)
++ if (fmodsw[n].f_str == 0)
++ break;
++ if (n &gt;= fmodcnt)
++ return ENODEV;
++ strncpy(fmodsw[n].f_name, vd.Drv_name, FMNAMESZ+1);
++ fmodsw[n].f_str = &amp;ppp_compinfo;
++ fmodsw_index = n;
++ break;
++
++ case VDUNLOAD:
++ if (ppp_comp_count &gt; 0)
++ return EBUSY;
++ if (fmodsw_index &lt;= 0)
++ return EINVAL;
++ fmodsw[fmodsw_index].f_name[0] = 0;
++ fmodsw[fmodsw_index].f_str = 0;
++ fmodsw_index = -1;
++ break;
++
++ case VDSTAT:
++ break;
++
++ default:
++ return EIO;
++ }
++ return 0;
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/sunos4/ppp_comp_vdcmd.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pppsunos4ppp_vdcmdc">Added: drakx/trunk/mdk-stage1/ppp/sunos4/ppp_vdcmd.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/sunos4/ppp_vdcmd.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/sunos4/ppp_vdcmd.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,81 @@
++#include &lt;sys/types.h&gt;
++#include &lt;sys/errno.h&gt;
++#include &lt;sys/conf.h&gt;
++#include &lt;sun/vddrv.h&gt;
++
++extern struct streamtab pppinfo;
++extern int ppp_count;
++extern int nchrdev;
++
++static struct vdldrv vd = {
++ VDMAGIC_PSEUDO,
++ &quot;ppp&quot;
++};
++
++extern int nodev();
++
++static struct cdevsw ppp_cdevsw = {
++ nodev, nodev, nodev, nodev, nodev, nodev, nodev, 0,
++ &amp;pppinfo
++};
++
++static struct cdevsw old_entry;
++
++int
++ppp_vdcmd(fun, vdp, vdi, vds)
++ unsigned int fun;
++ struct vddrv *vdp;
++ addr_t vdi;
++ struct vdstat *vds;
++{
++ static int majnum = -1;
++ int n, maj;
++
++ switch (fun) {
++ case VDLOAD:
++ /*
++ * It seems like modload doesn't install the cdevsw entry
++ * for us. Oh well...
++ */
++ for (maj = 1; maj &lt; nchrdev; ++maj)
++ if (cdevsw[maj].d_open == vd_unuseddev)
++ break;
++ if (maj &gt;= nchrdev)
++ return ENODEV;
++ vd.Drv_charmajor = maj;
++ old_entry = cdevsw[maj];
++ cdevsw[maj] = ppp_cdevsw;
++ vd.Drv_cdevsw = &amp;ppp_cdevsw;
++ vdp-&gt;vdd_vdtab = (struct vdlinkage *) &amp;vd;
++ majnum = maj;
++ break;
++
++ case VDUNLOAD:
++ if (ppp_count &gt; 0)
++ return EBUSY;
++ if (vd.Drv_charmajor &gt; 0)
++ cdevsw[vd.Drv_charmajor] = old_entry;
++ break;
++
++ case VDSTAT:
++ /*
++ * We have to fool the modstat command into thinking
++ * that this module is actually a driver! This is
++ * so that installation commands that use the -exec
++ * option of modload to run a shell script find out
++ * the block and/or char major numbers of the driver
++ * loaded (so that the shell script can go off to
++ * /dev and *MAKE* the bloody device nodes- remember
++ * they might change from one load to another if
++ * you don't hardwire the number!).
++ */
++ vds-&gt;vds_magic = VDMAGIC_DRV;
++ vds-&gt;vds_modinfo[0] = (char) 0;
++ vds-&gt;vds_modinfo[1] = (char) majnum;
++ break;
++
++ default:
++ return EIO;
++ }
++ return 0;
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/sunos4/ppp_vdcmd.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pppsvr4Makedefs">Added: drakx/trunk/mdk-stage1/ppp/svr4/Makedefs</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/svr4/Makedefs (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/svr4/Makedefs 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,16 @@
++#
++# defines common to several Makefiles
++#
++
++INSTALL= /usr/sbin/install
++
++BINDIR = /usr/local/bin
++MANDIR = /usr/local/man
++ETCDIR = /etc/ppp
++
++COPTS = -O -Xa
++
++# For compiling with gcc, comment out the COPTS definition above and
++# uncomment the next 2 definitions.
++#CC = gcc
++#COPTS = -O2
+
+<a id="drakxtrunkmdkstage1pppsvr4Makedefssol2">Added: drakx/trunk/mdk-stage1/ppp/svr4/Makedefs.sol2</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/svr4/Makedefs.sol2 (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/svr4/Makedefs.sol2 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,59 @@
++#
++# Generic make definitions for Solaris 2
++#
++# $Id: Makedefs.sol2 195720 2001-06-11 11:44:34Z gc $
++#
++
++include ../svr4/Makedefs
++
++CPPFLAGS = -D_KERNEL -DSVR4 -DSOL2 -DPRIOQ -DDEBUG -I../include
++CFLAGS = $(CPPFLAGS) $(COPTS)
++
++# lint-specific variables
++LINT = lint
++LINT_OPT_32 =
++LINT_OPT_64 = -Xarch=v9 -errchk=longptr64
++
++LINT_32 =
++LINT_32 += -erroff=E_BAD_PTR_CAST_ALIGN
++LINT_32 += -erroff=E_SUPPRESSION_DIRECTIVE_UNUSED
++LINT_32 += -erroff=E_SUSPICIOUS_COMPARISON
++LINT_32 += -erroff=E_CAST_UINT_TO_SIGNED_INT
++LINT_32 += -erroff=E_PASS_UINT_TO_SIGNED_INT
++LINT_32 += -erroff=E_INVALID_ANNOTATION_NAME
++LINT_32 += -erroff=E_FUNC_ARG_UNUSED
++# This might be needed, but zlib.c and vjcompress.c will squawk
++# when not ignored
++LINT_32 += -erroff=E_CASE_FALLTHRU
++LINT_32 += -erroff=E_RET_INT_IMPLICITLY
++LINT_32 += -erroff=E_FUNC_NO_RET_VAL
++# Some STREAMS macros will be noisy too when this isn't ignored
++LINT_32 += -erroff=E_CONSTANT_CONDITION
++LINT_32 += -erroff=E_CONST_EXPR
++
++# Extra noise suppressant for 64-bit
++EXTRA_OFF =
++EXTRA_OFF += -erroff=E_CAST_INT_TO_SMALL_INT
++EXTRA_OFF += -erroff=E_CAST_INT_CONST_TO_SMALL_INT
++EXTRA_OFF += -erroff=E_CAST_TO_PTR_FROM_INT
++EXTRA_OFF += -erroff=E_ASSIGN_INT_TO_SMALL_INT
++EXTRA_OFF += -erroff=E_ASSIGN_INT_FROM_BIG_CONST
++EXTRA_OFF += -erroff=E_CONST_PROMOTED_UNSIGNED_LL
++EXTRA_OFF += -erroff=E_CONST_PROMOTED_LONG_LONG
++EXTRA_OFF += -erroff=E_CONST_TRUNCATED_BY_ASSIGN
++EXTRA_OFF += -erroff=E_PASS_INT_FROM_BIG_CONST
++EXTRA_OFF += -erroff=E_COMP_INT_WITH_LARGE_INT
++EXTRA_OFF += -erroff=E_ASSIGN_UINT_TO_SIGNED_INT
++EXTRA_OFF += -erroff=E_ASSIGN_NARROW_CONV
++EXTRA_OFF += -erroff=E_PASS_INT_TO_SMALL_INT
++EXTRA_OFF += -erroff=E_PTR_CONV_LOSES_BITS
++
++LINT_64 = $(LINT_32)
++LINT_64 += $(EXTRA_OFF)
++
++LINTFLAGS64 = -Xa -nsxmuF -errtags=yes $(LINT_OPT_64) $(LINT_64)
++LINT64 = $(LINT) -c $(LINTFLAGS64) $(CPPFLAGS)
++
++LINTFLAGS32 = -Xa -nsxmuF -errtags=yes $(LINT_OPT_32) $(LINT_32)
++LINT32 = $(LINT) -c $(LINTFLAGS32) $(CPPFLAGS)
++
+
+<a id="drakxtrunkmdkstage1pppsvr4Makefilesol2">Added: drakx/trunk/mdk-stage1/ppp/svr4/Makefile.sol2</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/svr4/Makefile.sol2 (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/svr4/Makefile.sol2 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,66 @@
++#
++# Makefile for STREAMS modules for Solaris 2.
++#
++# $Id: Makefile.sol2 195720 2001-06-11 11:44:34Z gc $
++#
++
++include Makedefs.sol2
++
++COPTS += -xO2 -xspace -W0,-Lt
++
++COMP_OBJS = ppp_comp.o bsd-comp.o deflate.o zlib.o vjcompress.o \
++ ppp_comp_mod.o
++
++all: ppp ppp_ahdl ppp_comp
++
++ppp: ppp.o ppp_mod.o
++ ld -r -o $@ ppp.o ppp_mod.o
++ chmod +x $@
++
++ppp_ahdl: ppp_ahdlc.o ppp_ahdlc_mod.o
++ ld -r -o $@ ppp_ahdlc.o ppp_ahdlc_mod.o
++ chmod +x $@
++
++ppp_comp: $(COMP_OBJS)
++ ld -r -o $@ $(COMP_OBJS)
++ chmod +x $@
++
++bsd-comp.o: ../modules/bsd-comp.c
++ $(CC) $(CFLAGS) -c $?
++deflate.o: ../modules/deflate.c
++ $(CC) $(CFLAGS) -c $?
++ppp.o: ../modules/ppp.c
++ $(CC) $(CFLAGS) -c $?
++ppp_mod.o: ppp_mod.c
++ $(CC) $(CFLAGS) -c $?
++ppp_ahdlc_mod.o: ppp_ahdlc_mod.c
++ $(CC) $(CFLAGS) -c $?
++ppp_ahdlc.o: ../modules/ppp_ahdlc.c
++ $(CC) $(CFLAGS) -c $?
++ppp_comp.o: ../modules/ppp_comp.c
++ $(CC) $(CFLAGS) -c $?
++ppp_comp_mod.o: ppp_comp_mod.c
++ $(CC) $(CFLAGS) -c $?
++vjcompress.o: ../modules/vjcompress.c
++ $(CC) $(CFLAGS) -c $?
++zlib.o: ../common/zlib.c
++ $(CC) $(CFLAGS) -c $?
++
++install:
++ cp ppp ppp.conf /kernel/drv
++ cp ppp_comp ppp_ahdl /kernel/strmod
++ if grep clone:ppp /etc/minor_perm; then :; else \
++ echo clone:ppp 0644 root sys &gt;&gt;/etc/minor_perm; fi
++ /usr/sbin/rem_drv ppp 2&gt;/dev/null || true
++ /usr/sbin/add_drv ppp
++
++SRCS = ../modules/ppp.c ppp_mod.c ../modules/ppp_ahdlc.c ppp_ahdlc_mod.c \
++ ../modules/ppp_comp.c ../modules/bsd-comp.c ../modules/deflate.c \
++ ../common/zlib.c ../modules/vjcompress.c ppp_comp_mod.c
++
++lint:
++ $(LINT32) $(SRCS)
++
++clean:
++ rm -f ppp ppp_comp ppp_ahdl *.o *~ core
++ rm -f *.ln
+
+<a id="drakxtrunkmdkstage1pppsvr4Makefilesol264">Added: drakx/trunk/mdk-stage1/ppp/svr4/Makefile.sol2-64</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/svr4/Makefile.sol2-64 (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/svr4/Makefile.sol2-64 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,85 @@
++#
++# Makefile for 64-bit STREAMS modules for Solaris 2.
++#
++# $Id: Makefile.sol2-64 195720 2001-06-11 11:44:34Z gc $
++#
++
++include Makedefs.sol2
++
++# Sun's cc flag for LP64 compilation / linkage
++COPTS += -xchip=ultra -xarch=v9 -Wc,-xcode=abs32 -Wc,-Qiselect-regsym=0 -xO3 -xspace -W0,-Lt
++
++# subdirectory where 64-bit objects / binaries will be placed
++LP64DIR = sparcv9
++
++# Name of legacy Makefile (for 32-bit binaries)
++STD_MAKE = Makefile.sol2
++
++COMP_OBJS = $(LP64DIR)/ppp_comp.o $(LP64DIR)/bsd-comp.o \
++ $(LP64DIR)/deflate.o $(LP64DIR)/zlib.o $(LP64DIR)/vjcompress.o \
++ $(LP64DIR)/ppp_comp_mod.o
++
++all: std_objs $(LP64DIR) ppp ppp_ahdl ppp_comp
++
++std_objs:
++ $(MAKE) -f $(STD_MAKE) all
++
++ppp: $(LP64DIR)/ppp.o $(LP64DIR)/ppp_mod.o
++ ld -r -o $(LP64DIR)/$@ $(LP64DIR)/ppp.o $(LP64DIR)/ppp_mod.o
++ chmod +x $(LP64DIR)/$@
++
++ppp_ahdl: $(LP64DIR)/ppp_ahdlc.o $(LP64DIR)/ppp_ahdlc_mod.o
++ ld -r -o $(LP64DIR)/$@ $(LP64DIR)/ppp_ahdlc.o $(LP64DIR)/ppp_ahdlc_mod.o
++ chmod +x $(LP64DIR)/$@
++
++ppp_comp: $(COMP_OBJS)
++ ld -r -o $(LP64DIR)/$@ $(COMP_OBJS)
++ chmod +x $(LP64DIR)/$@
++
++$(LP64DIR)/bsd-comp.o: ../modules/bsd-comp.c
++ $(CC) $(CFLAGS) -c $? -o $@
++$(LP64DIR)/deflate.o: ../modules/deflate.c
++ $(CC) $(CFLAGS) -c $? -o $@
++$(LP64DIR)/ppp.o: ../modules/ppp.c
++ $(CC) $(CFLAGS) -c $? -o $@
++$(LP64DIR)/ppp_mod.o: ppp_mod.c
++ $(CC) $(CFLAGS) -c $? -o $@
++$(LP64DIR)/ppp_ahdlc_mod.o: ppp_ahdlc_mod.c
++ $(CC) $(CFLAGS) -c $? -o $@
++$(LP64DIR)/ppp_ahdlc.o: ../modules/ppp_ahdlc.c
++ $(CC) $(CFLAGS) -c $? -o $@
++$(LP64DIR)/ppp_comp.o: ../modules/ppp_comp.c
++ $(CC) $(CFLAGS) -c $? -o $@
++$(LP64DIR)/ppp_comp_mod.o: ppp_comp_mod.c
++ $(CC) $(CFLAGS) -c $? -o $@
++$(LP64DIR)/vjcompress.o: ../modules/vjcompress.c
++ $(CC) $(CFLAGS) -c $? -o $@
++$(LP64DIR)/zlib.o: ../common/zlib.c
++ $(CC) $(CFLAGS) -c $? -o $@
++
++$(LP64DIR):
++ mkdir -m 755 -p $@
++
++install:
++ cp ppp ppp.conf /kernel/drv
++ cp ppp_comp ppp_ahdl /kernel/strmod
++ cp $(LP64DIR)/ppp /kernel/drv/$(LP64DIR)
++ cp $(LP64DIR)/ppp_comp $(LP64DIR)/ppp_ahdl /kernel/strmod/$(LP64DIR)
++ if grep clone:ppp /etc/minor_perm; then :; else \
++ echo clone:ppp 0644 root sys &gt;&gt;/etc/minor_perm; fi
++ /usr/sbin/rem_drv ppp 2&gt;/dev/null || true
++ /usr/sbin/add_drv ppp
++
++SRCS = ../modules/ppp.c ppp_mod.c ../modules/ppp_ahdlc.c ppp_ahdlc_mod.c \
++ ../modules/ppp_comp.c ../modules/bsd-comp.c ../modules/deflate.c \
++ ../common/zlib.c ../modules/vjcompress.c ppp_comp_mod.c
++
++lint:
++ $(LINT64) $(SRCS)
++
++lint-32:
++ $(LINT32) $(SRCS)
++
++clean:
++ $(MAKE) -f $(STD_MAKE) clean
++ rm -f $(LP64DIR)/ppp $(LP64DIR)/ppp_comp $(LP64DIR)/ppp_ahdl $(LP64DIR)/*.o $(LP64DIR)/*~ $(LP64DIR)/core
+
+<a id="drakxtrunkmdkstage1pppsvr4Makefilesvr4">Added: drakx/trunk/mdk-stage1/ppp/svr4/Makefile.svr4</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/svr4/Makefile.svr4 (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/svr4/Makefile.svr4 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,60 @@
++#
++# Makefile for STREAMS modules for SVR4.
++#
++# $Id: Makefile.svr4 195720 2001-06-11 11:44:34Z gc $
++#
++
++COPTS = -O
++
++CFLAGS= -D_KERNEL -DSVR4 -DLACHTCP -I../include $(COPTS)
++
++all: ppp ppp_ahdl ppp_comp
++
++ppp: ppp.o
++ ld -r -o $@ ppp.o
++
++ppp_ahdl: ppp_ahdlc.o
++ ld -r -o $@ ppp_ahdlc.o
++
++ppp_comp: ppp_comp.o bsd-comp.o vjcompress.o deflate.o zlib.o
++ ld -r -o $@ ppp_comp.o bsd-comp.o vjcompress.o deflate.o zlib.o
++
++bsd-comp.o: ../modules/bsd-comp.c
++ $(CC) $(CFLAGS) -c $?
++deflate.o: ../modules/deflate.c
++ $(CC) $(CFLAGS) -c $?
++ppp.o: ../modules/ppp.c
++ $(CC) $(CFLAGS) -c $?
++ppp_ahdlc.o: ../modules/ppp_ahdlc.c
++ $(CC) $(CFLAGS) -c $?
++ppp_comp.o: ../modules/ppp_comp.c
++ $(CC) $(CFLAGS) -c $?
++vjcompress.o: ../modules/vjcompress.c
++ $(CC) $(CFLAGS) -c $?
++zlib.o: ../common/zlib.c
++ $(CC) $(CFLAGS) -c $?
++
++install: all
++ cp ppp Driver.o
++ cp ppp.Master Master
++ cp ppp.System System
++ cp ppp.Node Node
++ /etc/conf/bin/idinstall -d ppp
++ /etc/conf/bin/idinstall -a ppp
++ cp ppp_comp Driver.o
++ cp ppp_comp.Master Master
++ cp ppp_comp.System System
++ /etc/conf/bin/idinstall -d ppp_comp
++ /etc/conf/bin/idinstall -a ppp_comp
++ cp ppp_ahdl Driver.o
++ cp ppp_ahdl.Master Master
++ cp ppp_ahdl.System System
++ /etc/conf/bin/idinstall -d ppp_ahdl
++ /etc/conf/bin/idinstall -a ppp_ahdl
++ @echo
++ @echo 'NOTE: You must rebuild your kernel to incorporate the driver.'
++ @echo '(use /etc/conf/bin/idbuild)'
++ @echo
++
++clean:
++ rm -f ppp ppp_comp ppp_ahdl *.o *~ core
+
+<a id="drakxtrunkmdkstage1pppsvr4Makefiletop">Added: drakx/trunk/mdk-stage1/ppp/svr4/Makefile.top</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/svr4/Makefile.top (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/svr4/Makefile.top 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,50 @@
++#
++# ppp top level makefile for SVR4 and Solaris 2
++#
++# $Id: Makefile.top 195720 2001-06-11 11:44:34Z gc $
++#
++
++include svr4/Makedefs
++
++all:
++ cd chat; $(MAKE) all
++ cd pppd; $(MAKE) all
++ cd pppstats; $(MAKE) all
++ cd pppdump; $(MAKE) all
++ cd svr4; $(MAKE) all
++
++install: $(BINDIR) $(MANDIR)/man8 install-progs install-etcppp
++
++install-progs:
++ cd chat; $(MAKE) install
++ cd pppd; $(MAKE) install
++ cd pppstats; $(MAKE) install
++ cd pppdump; $(MAKE) install
++ cd svr4; $(MAKE) install
++
++install-etcppp: $(ETCDIR) $(ETCDIR)/options $(ETCDIR)/pap-secrets \
++ $(ETCDIR)/chap-secrets
++
++$(ETCDIR)/options:
++ cp etc.ppp/options $@
++ chmod go-w $@
++$(ETCDIR)/pap-secrets:
++ $(INSTALL) -f $(ETCDIR) -m 600 etc.ppp/pap-secrets
++$(ETCDIR)/chap-secrets:
++ $(INSTALL) -f $(ETCDIR) -m 600 etc.ppp/chap-secrets
++
++$(BINDIR):
++ mkdir -m 755 -p $@
++$(MANDIR)/man8:
++ mkdir -m 755 -p $@
++$(ETCDIR):
++ mkdir -m 755 -p $@
++
++clean:
++ rm -f *~
++ cd chat; $(MAKE) clean
++ cd pppd; $(MAKE) clean
++ cd pppstats; $(MAKE) clean
++ cd pppdump; $(MAKE) clean
++ cd svr4; $(MAKE) clean
++
+
+<a id="drakxtrunkmdkstage1pppsvr4pppMaster">Added: drakx/trunk/mdk-stage1/ppp/svr4/ppp.Master</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/svr4/ppp.Master (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/svr4/ppp.Master 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1 @@
++ppp - Sciof ppp 0 0 1 128 -1
+
+<a id="drakxtrunkmdkstage1pppsvr4pppNode">Added: drakx/trunk/mdk-stage1/ppp/svr4/ppp.Node</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/svr4/ppp.Node (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/svr4/ppp.Node 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1 @@
++clone ppp c ppp
+
+<a id="drakxtrunkmdkstage1pppsvr4pppSystem">Added: drakx/trunk/mdk-stage1/ppp/svr4/ppp.System</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/svr4/ppp.System (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/svr4/ppp.System 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1 @@
++ppp Y 1 0 0 0 0 0 0 0
+
+<a id="drakxtrunkmdkstage1pppsvr4pppconf">Added: drakx/trunk/mdk-stage1/ppp/svr4/ppp.conf</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/svr4/ppp.conf (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/svr4/ppp.conf 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1 @@
++name=&quot;ppp&quot; parent=&quot;pseudo&quot; instance=0;
+
+<a id="drakxtrunkmdkstage1pppsvr4ppp_ahdlMaster">Added: drakx/trunk/mdk-stage1/ppp/svr4/ppp_ahdl.Master</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/svr4/ppp_ahdl.Master (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/svr4/ppp_ahdl.Master 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1 @@
++ppp_ahdl - iSf phdl 0 0 1 1 -1
+
+<a id="drakxtrunkmdkstage1pppsvr4ppp_ahdlSystem">Added: drakx/trunk/mdk-stage1/ppp/svr4/ppp_ahdl.System</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/svr4/ppp_ahdl.System (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/svr4/ppp_ahdl.System 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1 @@
++ppp_ahdl Y 1 0 0 0 0 0 0 0
+
+<a id="drakxtrunkmdkstage1pppsvr4ppp_ahdlc_modc">Added: drakx/trunk/mdk-stage1/ppp/svr4/ppp_ahdlc_mod.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/svr4/ppp_ahdlc_mod.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/svr4/ppp_ahdlc_mod.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,49 @@
++#include &lt;sys/types.h&gt;
++#include &lt;sys/param.h&gt;
++#include &lt;sys/conf.h&gt;
++#include &lt;sys/modctl.h&gt;
++#include &lt;sys/sunddi.h&gt;
++
++extern struct streamtab ppp_ahdlcinfo;
++
++static struct fmodsw fsw = {
++ &quot;ppp_ahdl&quot;,
++ &amp;ppp_ahdlcinfo,
++ D_NEW | D_MP | D_MTQPAIR
++};
++
++extern struct mod_ops mod_strmodops;
++
++static struct modlstrmod modlstrmod = {
++ &amp;mod_strmodops,
++ &quot;PPP async HDLC module&quot;,
++ &amp;fsw
++};
++
++static struct modlinkage modlinkage = {
++ MODREV_1,
++ (void *) &amp;modlstrmod,
++ NULL
++};
++
++/*
++ * Entry points for modloading.
++ */
++int
++_init(void)
++{
++ return mod_install(&amp;modlinkage);
++}
++
++int
++_fini(void)
++{
++ return mod_remove(&amp;modlinkage);
++}
++
++int
++_info(mip)
++ struct modinfo *mip;
++{
++ return mod_info(&amp;modlinkage, mip);
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/svr4/ppp_ahdlc_mod.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pppsvr4ppp_compMaster">Added: drakx/trunk/mdk-stage1/ppp/svr4/ppp_comp.Master</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/svr4/ppp_comp.Master (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/svr4/ppp_comp.Master 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1 @@
++ppp_comp - iSf pcmp 0 0 1 1 -1
+
+<a id="drakxtrunkmdkstage1pppsvr4ppp_compSystem">Added: drakx/trunk/mdk-stage1/ppp/svr4/ppp_comp.System</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/svr4/ppp_comp.System (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/svr4/ppp_comp.System 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1 @@
++ppp_comp Y 1 0 0 0 0 0 0 0
+
+<a id="drakxtrunkmdkstage1pppsvr4ppp_comp_modc">Added: drakx/trunk/mdk-stage1/ppp/svr4/ppp_comp_mod.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/svr4/ppp_comp_mod.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/svr4/ppp_comp_mod.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,81 @@
++/*
++ * ppp_comp_mod.c - modload support for PPP compression STREAMS module.
++ *
++ * Copyright (c) 1994 The Australian National University.
++ * All rights reserved.
++ *
++ * Permission to use, copy, modify, and distribute this software and its
++ * documentation is hereby granted, provided that the above copyright
++ * notice appears in all copies. This software is provided without any
++ * warranty, express or implied. The Australian National University
++ * makes no representations about the suitability of this software for
++ * any purpose.
++ *
++ * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY
++ * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
++ * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
++ * THE AUSTRALIAN NATIONAL UNIVERSITY HAVE BEEN ADVISED OF THE POSSIBILITY
++ * OF SUCH DAMAGE.
++ *
++ * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
++ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
++ * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
++ * ON AN &quot;AS IS&quot; BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO
++ * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
++ * OR MODIFICATIONS.
++ *
++ * $Id: ppp_comp_mod.c 195720 2001-06-11 11:44:34Z gc $
++ */
++
++/*
++ * This file is used under Solaris 2.
++ */
++#include &lt;sys/types.h&gt;
++#include &lt;sys/param.h&gt;
++#include &lt;sys/conf.h&gt;
++#include &lt;sys/modctl.h&gt;
++#include &lt;sys/sunddi.h&gt;
++
++extern struct streamtab ppp_compinfo;
++
++static struct fmodsw fsw = {
++ &quot;ppp_comp&quot;,
++ &amp;ppp_compinfo,
++ D_NEW | D_MP | D_MTQPAIR
++};
++
++extern struct mod_ops mod_strmodops;
++
++static struct modlstrmod modlstrmod = {
++ &amp;mod_strmodops,
++ &quot;PPP compression module&quot;,
++ &amp;fsw
++};
++
++static struct modlinkage modlinkage = {
++ MODREV_1,
++ (void *) &amp;modlstrmod,
++ NULL
++};
++
++/*
++ * Entry points for modloading.
++ */
++int
++_init(void)
++{
++ return mod_install(&amp;modlinkage);
++}
++
++int
++_fini(void)
++{
++ return mod_remove(&amp;modlinkage);
++}
++
++int
++_info(mip)
++ struct modinfo *mip;
++{
++ return mod_info(&amp;modlinkage, mip);
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/svr4/ppp_comp_mod.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1pppsvr4ppp_modc">Added: drakx/trunk/mdk-stage1/ppp/svr4/ppp_mod.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/ppp/svr4/ppp_mod.c (rev 0)
++++ drakx/trunk/mdk-stage1/ppp/svr4/ppp_mod.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,174 @@
++/*
++ * ppp_mod.c - modload support for PPP pseudo-device driver.
++ *
++ * Copyright (c) 1994 The Australian National University.
++ * All rights reserved.
++ *
++ * Permission to use, copy, modify, and distribute this software and its
++ * documentation is hereby granted, provided that the above copyright
++ * notice appears in all copies. This software is provided without any
++ * warranty, express or implied. The Australian National University
++ * makes no representations about the suitability of this software for
++ * any purpose.
++ *
++ * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY
++ * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
++ * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
++ * THE AUSTRALIAN NATIONAL UNIVERSITY HAVE BEEN ADVISED OF THE POSSIBILITY
++ * OF SUCH DAMAGE.
++ *
++ * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
++ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
++ * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
++ * ON AN &quot;AS IS&quot; BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO
++ * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
++ * OR MODIFICATIONS.
++ *
++ * $Id: ppp_mod.c 195720 2001-06-11 11:44:34Z gc $
++ */
++
++/*
++ * This file is used under Solaris 2.
++ */
++
++#include &lt;sys/types.h&gt;
++#include &lt;sys/param.h&gt;
++#include &lt;sys/stat.h&gt;
++#include &lt;sys/conf.h&gt;
++#include &lt;sys/modctl.h&gt;
++#include &lt;sys/sunddi.h&gt;
++#include &lt;sys/ksynch.h&gt;
++
++#ifdef __STDC__
++#define __P(x) x
++#else
++#define __P(x) ()
++#endif
++
++static int ppp_identify __P((dev_info_t *));
++static int ppp_attach __P((dev_info_t *, ddi_attach_cmd_t));
++static int ppp_detach __P((dev_info_t *, ddi_detach_cmd_t));
++static int ppp_devinfo __P((dev_info_t *, ddi_info_cmd_t, void *, void **));
++
++extern struct streamtab pppinfo;
++extern krwlock_t ppp_lower_lock;
++
++static dev_info_t *ppp_dip;
++
++static struct cb_ops cb_ppp_ops = {
++ nulldev, nulldev, nodev, nodev, /* cb_open, ... */
++ nodev, nodev, nodev, nodev, /* cb_dump, ... */
++ nodev, nodev, nodev, nochpoll, /* cb_devmap, ... */
++ ddi_prop_op, /* cb_prop_op */
++ &amp;pppinfo, /* cb_stream */
++ D_NEW|D_MP|D_MTQPAIR|D_MTOUTPERIM|D_MTOCEXCL /* cb_flag */
++};
++
++static struct dev_ops ppp_ops = {
++ DEVO_REV, /* devo_rev */
++ 0, /* devo_refcnt */
++ ppp_devinfo, /* devo_getinfo */
++ ppp_identify, /* devo_identify */
++ nulldev, /* devo_probe */
++ ppp_attach, /* devo_attach */
++ ppp_detach, /* devo_detach */
++ nodev, /* devo_reset */
++ &amp;cb_ppp_ops, /* devo_cb_ops */
++ NULL /* devo_bus_ops */
++};
++
++/*
++ * Module linkage information
++ */
++
++static struct modldrv modldrv = {
++ &amp;mod_driverops, /* says this is a pseudo driver */
++ &quot;PPP-2.3 multiplexing driver&quot;,
++ &amp;ppp_ops /* driver ops */
++};
++
++static struct modlinkage modlinkage = {
++ MODREV_1,
++ (void *) &amp;modldrv,
++ NULL
++};
++
++int
++_init(void)
++{
++ return mod_install(&amp;modlinkage);
++}
++
++int
++_fini(void)
++{
++ return mod_remove(&amp;modlinkage);
++}
++
++int
++_info(mip)
++ struct modinfo *mip;
++{
++ return mod_info(&amp;modlinkage, mip);
++}
++
++static int
++ppp_identify(dip)
++ dev_info_t *dip;
++{
++ return strcmp(ddi_get_name(dip), &quot;ppp&quot;) == 0? DDI_IDENTIFIED:
++ DDI_NOT_IDENTIFIED;
++}
++
++static int
++ppp_attach(dip, cmd)
++ dev_info_t *dip;
++ ddi_attach_cmd_t cmd;
++{
++
++ if (cmd != DDI_ATTACH)
++ return DDI_FAILURE;
++ if (ddi_create_minor_node(dip, &quot;ppp&quot;, S_IFCHR, 0, DDI_PSEUDO, CLONE_DEV)
++ == DDI_FAILURE) {
++ ddi_remove_minor_node(dip, NULL);
++ return DDI_FAILURE;
++ }
++ rw_init(&amp;ppp_lower_lock, NULL, RW_DRIVER, NULL);
++ return DDI_SUCCESS;
++}
++
++static int
++ppp_detach(dip, cmd)
++ dev_info_t *dip;
++ ddi_detach_cmd_t cmd;
++{
++ rw_destroy(&amp;ppp_lower_lock);
++ ddi_remove_minor_node(dip, NULL);
++ return DDI_SUCCESS;
++}
++
++static int
++ppp_devinfo(dip, cmd, arg, result)
++ dev_info_t *dip;
++ ddi_info_cmd_t cmd;
++ void *arg;
++ void **result;
++{
++ int error;
++
++ error = DDI_SUCCESS;
++ switch (cmd) {
++ case DDI_INFO_DEVT2DEVINFO:
++ if (ppp_dip == NULL)
++ error = DDI_FAILURE;
++ else
++ *result = (void *) ppp_dip;
++ break;
++ case DDI_INFO_DEVT2INSTANCE:
++ *result = NULL;
++ break;
++ default:
++ error = DDI_FAILURE;
++ }
++ return error;
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/ppp/svr4/ppp_mod.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1probemodulesc">Added: drakx/trunk/mdk-stage1/probe-modules.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/probe-modules.c (rev 0)
++++ drakx/trunk/mdk-stage1/probe-modules.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,70 @@
++/*
++ * Olivier Blin (blino@mandriva.com)
++ *
++ * Copyright 2007-2004 Mandriva
++ *
++ *
++ * This software may be freely redistributed under the terms of the GNU
++ * public license.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++#include &quot;log.h&quot;
++#include &quot;modules.h&quot;
++#include &quot;probing.h&quot;
++#include &quot;frontend.h&quot;
++#include &lt;stdlib.h&gt;
++#include &lt;sys/stat.h&gt;
++#include &lt;string.h&gt;
++#include &quot;utils.h&quot;
++
++void exit_bootsplash(void) {}
++void stg1_error_message(char *msg, ...)
++{
++ va_list args;
++ va_start(args, msg);
++ verror_message(msg, args);
++ va_end(args);
++}
++void fatal_error(char *msg)
++{
++ log_message(&quot;FATAL ERROR IN MODULES LOADER: %s\n\nI can't recover from this.\nYou may reboot your system.\n&quot;, msg);
++ exit(EXIT_FAILURE);
++}
++
++int main(int argc, char **argv, char **env)
++{
++ enum media_bus bus = BUS_ANY;
++ char *module = NULL;
++ char options[500] = &quot;&quot;;
++
++ if (argc &gt; 1) {
++ if (streq(argv[1], &quot;--usb&quot;)) {
++ bus = BUS_USB;
++ } else if (!ptr_begins_static_str(argv[1], &quot;--&quot;)) {
++ int i;
++ module = argv[1];
++ for (i = 2; i &lt; argc; i++) {
++ strcat(options, argv[i]);
++ strcat(options, &quot; &quot;);
++ }
++ }
++ }
++
++ open_log();
++ init_modules_insmoding();
++
++ if (module) {
++ my_insmod(module, ANY_DRIVER_TYPE, options, 0);
++ } else {
++ find_media(bus);
++ }
++
++ close_log();
++
++ return 0;
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/probe-modules.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1probingc">Added: drakx/trunk/mdk-stage1/probing.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/probing.c (rev 0)
++++ drakx/trunk/mdk-stage1/probing.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,972 @@
++/*
++ * Guillaume Cottenceau (gc@mandriva.com)
++ *
++ * Copyright 2000 Mandriva
++ *
++ * This software may be freely redistributed under the terms of the GNU
++ * public license.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++/*
++ * Portions from Erik Troan (ewt@redhat.com)
++ *
++ * Copyright 1996 Red Hat Software
++ *
++ */
++
++
++/*
++ * This contains stuff related to probing:
++ * (1) any (actually only SCSI, NET, CPQ, USB Controllers) devices (autoprobe for PCI and USB)
++ * (2) IDE media
++ * (3) SCSI media
++ * (4) ETH devices
++ */
++
++
++#include &lt;stdlib.h&gt;
++#include &lt;unistd.h&gt;
++#include &lt;stdio.h&gt;
++#include &lt;string.h&gt;
++#include &lt;sys/types.h&gt;
++#include &lt;sys/stat.h&gt;
++#include &lt;dirent.h&gt;
++#include &lt;fcntl.h&gt;
++#include &lt;fnmatch.h&gt;
++#include &lt;sys/socket.h&gt;
++#include &lt;net/if.h&gt;
++#include &lt;sys/ioctl.h&gt;
++#include &lt;sys/mount.h&gt;
++#include &lt;pci/pci.h&gt;
++#include &lt;libldetect.h&gt;
++#include &quot;stage1.h&quot;
++
++#include &quot;log.h&quot;
++#include &quot;utils.h&quot;
++#include &quot;frontend.h&quot;
++#include &quot;modules.h&quot;
++#include &quot;pci-resource/pci-ids.h&quot;
++#ifdef ENABLE_USB
++#include &quot;usb-resource/usb-ids.h&quot;
++#endif
++#ifdef ENABLE_PCMCIA
++#include &quot;sysfs/libsysfs.h&quot;
++#include &quot;pcmcia-resource/pcmcia-ids.h&quot;
++#endif
++
++#include &quot;probing.h&quot;
++
++
++struct media_info {
++ char * name;
++ char * model;
++ enum media_type type;
++};
++
++
++static void warning_insmod_failed(enum insmod_return r)
++{
++ if (IS_AUTOMATIC &amp;&amp; r == INSMOD_FAILED_FILE_NOT_FOUND)
++ return;
++ if (r != INSMOD_OK) {
++ if (r == INSMOD_FAILED_FILE_NOT_FOUND)
++ stg1_error_message(&quot;This floppy doesn't contain the driver.&quot;);
++ else
++ stg1_error_message(&quot;Warning, installation of driver failed. (please include msg from &lt;Alt-F3&gt; for bugreports)&quot;);
++ }
++}
++
++#ifndef DISABLE_NETWORK
++struct net_description_elem
++{
++ char * intf_name;
++ char * intf_description;
++};
++static struct net_description_elem net_descriptions[50];
++static int net_descr_number = 0;
++static char * intf_descr_for_discover = NULL;
++static char * net_intf_too_early_name[50]; /* for modules providing more than one net intf */
++static int net_intf_too_early_number = 0;
++static int net_intf_too_early_ptr = 0;
++
++const char * safe_descr(const char * text) {
++ return text ? text : &quot;unknown&quot;;
++}
++
++void prepare_intf_descr(const char * intf_descr)
++{
++ intf_descr_for_discover = strdup(intf_descr);
++}
++
++void net_discovered_interface(char * intf_name)
++{
++ if (!intf_descr_for_discover) {
++ net_intf_too_early_name[net_intf_too_early_number++] = strdup(intf_name);
++ return;
++ }
++ if (!intf_name) {
++ if (net_intf_too_early_ptr &gt;= net_intf_too_early_number) {
++ log_message(&quot;NET: was expecting another network interface (broken net module?)&quot;);
++ return;
++ }
++ net_descriptions[net_descr_number].intf_name = net_intf_too_early_name[net_intf_too_early_ptr++];
++ }
++ else
++ net_descriptions[net_descr_number].intf_name = strdup(intf_name);
++ net_descriptions[net_descr_number].intf_description = strdup(intf_descr_for_discover);
++ intf_descr_for_discover = NULL;
++ net_descr_number++;
++}
++
++char * get_net_intf_description(char * intf_name)
++{
++ int i;
++ for (i = 0; i &lt; net_descr_number ; i++)
++ if (!strcmp(net_descriptions[i].intf_name, intf_name))
++ return net_descriptions[i].intf_description;
++ return strdup(&quot;unknown&quot;);
++}
++#endif
++
++static int device_match_modules_list(struct pciusb_entry *e, char **modules, unsigned int modules_len) {
++ int i;
++ if (!e-&gt;module)
++ return 0;
++ for (i = 0; i &lt; modules_len; i++)
++ if (!strcmp(modules[i], e-&gt;module))
++ return 1;
++ return 0;
++}
++
++struct pcitable_entry *detected_devices = NULL;
++int detected_devices_len = 0;
++
++static void detected_devices_destroy(void)
++{
++ if (detected_devices)
++ free(detected_devices);
++}
++
++static struct pcitable_entry *detected_device_new(void)
++{
++ static int detected_devices_maxlen = 0;
++ if (detected_devices_len &gt;= detected_devices_maxlen) {
++ detected_devices_maxlen += 32;
++ if (detected_devices == NULL)
++ detected_devices = malloc(detected_devices_maxlen * sizeof(*detected_devices));
++ else
++ detected_devices = realloc(detected_devices, detected_devices_maxlen * sizeof(*detected_devices));
++ if (detected_devices == NULL)
++ log_perror(&quot;detected_device_new: could not (re)allocate table. Let it crash, sorry&quot;);
++ }
++ return &amp;detected_devices[detected_devices_len++];
++}
++
++/* FIXME: factorize with probe_that_type() */
++
++static void add_detected_device(unsigned short vendor, unsigned short device, unsigned int subvendor, unsigned int subdevice, const char *name, const char *module)
++{
++ struct pcitable_entry *dev = detected_device_new();
++ dev-&gt;vendor = vendor;
++ dev-&gt;device = device;
++ dev-&gt;subvendor = subvendor;
++ dev-&gt;subdevice = subdevice;
++ strncpy(dev-&gt;module, module, sizeof(dev-&gt;module) - 1);
++ dev-&gt;module[sizeof(dev-&gt;module) - 1] = '\0';
++ strncpy(dev-&gt;description, safe_descr(name), sizeof(dev-&gt;description) - 1);
++ dev-&gt;description[sizeof(dev-&gt;description) - 1] = '\0';
++ log_message(&quot;detected device (%04x, %04x, %04x, %04x, %s, %s)&quot;, vendor, device, subvendor, subdevice, name, module);
++}
++
++static int add_detected_device_if_match(struct pciusb_entry *e, char **modules, unsigned int modules_len)
++{
++ int ret = device_match_modules_list(e, modules, modules_len);
++ if (ret)
++ add_detected_device(e-&gt;vendor, e-&gt;device, e-&gt;subvendor, e-&gt;subdevice,
++ e-&gt;text, e-&gt;module);
++ return ret;
++}
++
++void probing_detect_devices()
++{
++ static int already_detected_devices = 0;
++ struct pciusb_entries entries;
++ int i;
++
++ if (already_detected_devices)
++ return;
++
++ entries = pci_probe();
++ for (i = 0; i &lt; entries.nb; i++) {
++ struct pciusb_entry *e = &amp;entries.entries[i];
++#ifndef DISABLE_PCIADAPTERS
++#ifndef DISABLE_MEDIAS
++ if (add_detected_device_if_match(e, medias_ide_pci_modules, medias_ide_pci_modules_len))
++ continue;
++ if (add_detected_device_if_match(e, medias_other_pci_modules, medias_other_pci_modules_len))
++ continue;
++#endif
++
++#ifndef DISABLE_NETWORK
++ if (add_detected_device_if_match(e, network_pci_modules, network_pci_modules_len))
++ continue;
++#endif
++
++#ifdef ENABLE_USB
++ if (add_detected_device_if_match(e, usb_controller_modules, usb_controller_modules_len))
++ continue;
++#endif
++#endif
++ /* device can't be found in built-in pcitables, but keep it */
++ add_detected_device(e-&gt;vendor, e-&gt;device, e-&gt;subvendor, e-&gt;subdevice, e-&gt;text, e-&gt;module);
++ }
++ pciusb_free(&amp;entries);
++
++ already_detected_devices = 1;
++}
++
++void probing_destroy(void)
++{
++ detected_devices_destroy();
++}
++
++#ifndef DISABLE_MEDIAS
++static const char * get_alternate_module(const char * name)
++{
++ struct alternate_mapping {
++ const char * a;
++ const char * b;
++ };
++ static struct alternate_mapping mappings[] = {
++ { &quot;ahci&quot;, &quot;ata_piix&quot; },
++ };
++ int mappings_nb = sizeof(mappings) / sizeof(struct alternate_mapping);
++ int i;
++
++ for (i=0; i&lt;mappings_nb; i++) {
++ const char * alternate = NULL;
++ if (streq(name, mappings[i].a))
++ alternate = mappings[i].b;
++ else if (streq(name, mappings[i].b))
++ alternate = mappings[i].a;
++ if (alternate) {
++ log_message(&quot;found alternate module %s for driver %s&quot;, alternate, name);
++ return alternate;
++ }
++ }
++ return NULL;
++}
++#endif
++
++void discovered_device(enum driver_type type, const char * description, const char * driver)
++{
++ description = safe_descr(description);
++
++ enum insmod_return failed = INSMOD_FAILED;
++#ifndef DISABLE_MEDIAS
++ if (type == MEDIA_ADAPTERS) {
++ const char * alternate = NULL;
++ wait_message(&quot;Loading driver for media adapter:\n \n%s&quot;, description);
++ failed = my_insmod(driver, MEDIA_ADAPTERS, NULL, 1);
++ alternate = get_alternate_module(driver);
++ if (!IS_NOAUTO &amp;&amp; alternate) {
++ failed = failed || my_insmod(alternate, MEDIA_ADAPTERS, NULL, 1);
++ }
++ remove_wait_message();
++ warning_insmod_failed(failed);
++ }
++#endif
++#ifndef DISABLE_NETWORK
++ if (type == NETWORK_DEVICES) {
++ wait_message(&quot;Loading driver for network device:\n \n%s&quot;, description);
++ prepare_intf_descr(description);
++ failed = my_insmod(driver, NETWORK_DEVICES, NULL, 1);
++ warning_insmod_failed(failed);
++ remove_wait_message();
++ if (intf_descr_for_discover) /* for modules providing more than one net intf */
++ net_discovered_interface(NULL);
++ }
++#endif
++#ifdef ENABLE_USB
++ if (type == USB_CONTROLLERS)
++ /* we can't allow additional modules floppy since we need usbhid for keystrokes of usb keyboards */
++ failed = my_insmod(driver, USB_CONTROLLERS, NULL, 0);
++#endif
++}
++
++void probe_pci_modules(enum driver_type type, char **pci_modules, unsigned int pci_modules_len) {
++ struct pciusb_entries entries;
++ int i;
++
++ entries = pci_probe();
++ for (i = 0; i &lt; entries.nb; i++) {
++ struct pciusb_entry *e = &amp;entries.entries[i];
++ if (device_match_modules_list(e, pci_modules, pci_modules_len)) {
++ log_message(&quot;PCI: device %04x %04x %04x %04x is \&quot;%s\&quot;, driver is %s&quot;,
++ e-&gt;vendor, e-&gt;device, e-&gt;subvendor, e-&gt;subdevice, safe_descr(e-&gt;text), e-&gt;module);
++ discovered_device(type, e-&gt;text, e-&gt;module);
++ }
++ }
++ pciusb_free(&amp;entries);
++}
++
++/** Loads modules for known virtio devices
++ *
++ * virtio modules are not being loaded using the PCI probing mechanism
++ * because pcitable.gz does not have IDs for these devices.
++ *
++ * The possible correct solution for it is to fix the script which
++ * generates pcitable.gz to handle the virtio_device_id structure.
++ */
++void probe_virtio_modules(void)
++{
++ struct pciusb_entries entries;
++ int i;
++ char *name;
++ char *options;
++ int loaded_pci = 0;
++
++ entries = pci_probe();
++ for (i = 0; i &lt; entries.nb; i++) {
++ struct pciusb_entry *e = &amp;entries.entries[i];
++ if (e-&gt;vendor == VIRTIO_PCI_VENDOR) {
++ if (!loaded_pci) {
++ log_message(&quot;loading virtio-pci&quot;);
++ my_insmod(&quot;virtio_pci&quot;, ANY_DRIVER_TYPE, NULL, 0);
++ loaded_pci = 1;
++ }
++
++ name = NULL;
++ options = NULL;
++
++ switch (e-&gt;subdevice) {
++ case VIRTIO_ID_NET:
++ name = &quot;virtio_net&quot;;
++ options = &quot;csum=0&quot;;
++ break;
++ case VIRTIO_ID_BLOCK:
++ name = &quot;virtio_blk&quot;;
++ break;
++ case VIRTIO_ID_BALLOON:
++ name = &quot;virtio_balloon&quot;;
++ break;
++ default:
++ log_message(&quot;warning: unknown virtio device %04x&quot;, e-&gt;device);
++ }
++ if (name) {
++ log_message(&quot;virtio: loading %s&quot;, name);
++ my_insmod(name, ANY_DRIVER_TYPE, options, 0);
++ }
++ }
++ }
++ pciusb_free(&amp;entries);
++}
++
++#ifdef ENABLE_USB
++void probe_that_type(enum driver_type type, enum media_bus bus)
++#else
++void probe_that_type(enum driver_type type, enum media_bus bus __attribute__ ((unused)))
++#endif
++{
++ static int already_probed_usb_controllers = 0;
++ static int already_loaded_usb_scsi = 0;
++ static int already_probed_virtio_devices = 0;
++
++ /* ---- PCI probe ---------------------------------------------- */
++ if (bus != BUS_USB) {
++ switch (type) {
++#ifndef DISABLE_PCIADAPTERS
++#ifndef DISABLE_MEDIAS
++ static int already_probed_media_adapters = 0;
++ case MEDIA_ADAPTERS:
++ if (already_probed_media_adapters)
++ break;
++ already_probed_media_adapters = 1;
++ probe_pci_modules(type, medias_ide_pci_modules, medias_ide_pci_modules_len);
++ probe_pci_modules(type, medias_other_pci_modules, medias_other_pci_modules_len);
++ break;
++#endif
++#ifndef DISABLE_NETWORK
++ case NETWORK_DEVICES:
++ probe_pci_modules(type, network_pci_modules, network_pci_modules_len);
++ break;
++#endif
++#endif
++#ifdef ENABLE_USB
++ case USB_CONTROLLERS:
++ if (already_probed_usb_controllers || IS_NOAUTO)
++ break;
++ already_probed_usb_controllers = 1;
++ probe_pci_modules(type, usb_controller_modules, usb_controller_modules_len);
++ break;
++#endif
++ case VIRTIO_DEVICES:
++ if (already_probed_virtio_devices)
++ break;
++ probe_virtio_modules();
++ already_probed_virtio_devices = 1;
++ break;
++ default:
++ break;
++ }
++ }
++
++
++#ifdef ENABLE_USB
++ /* ---- USB probe ---------------------------------------------- */
++ if ((bus == BUS_USB || bus == BUS_ANY) &amp;&amp; !(IS_NOAUTO)) {
++ static int already_mounted_usbdev = 0;
++ struct pciusb_entries entries;
++ int i;
++
++ if (!already_probed_usb_controllers)
++ probe_that_type(USB_CONTROLLERS, BUS_ANY);
++
++ if (!already_mounted_usbdev) {
++ already_mounted_usbdev = 1;
++ if (mount(&quot;none&quot;, &quot;/proc/bus/usb&quot;, &quot;usbfs&quot;, 0, NULL) &amp;&amp;
++ mount(&quot;none&quot;, &quot;/proc/bus/usb&quot;, &quot;usbdevfs&quot;, 0, NULL)) {
++ log_message(&quot;USB: couldn't mount /proc/bus/usb&quot;);
++ goto end_usb_probe;
++ }
++ wait_message(&quot;Detecting USB devices.&quot;);
++ sleep(4); /* sucking background work */
++ my_insmod(&quot;usbhid&quot;, ANY_DRIVER_TYPE, NULL, 0);
++ remove_wait_message();
++ }
++
++ if (type != NETWORK_DEVICES)
++ goto end_usb_probe;
++
++ entries = usb_probe();
++ for (i = 0; i &lt; entries.nb; i++) {
++ struct pciusb_entry *e = &amp;entries.entries[i];
++ if (device_match_modules_list(e, usb_modules, usb_modules_len)) {
++ log_message(&quot;USB: device %04x %04x is \&quot;%s\&quot; (%s)&quot;, e-&gt;vendor, e-&gt;device, safe_descr(e-&gt;text), e-&gt;module);
++ discovered_device(type, e-&gt;text, e-&gt;module);
++ }
++ }
++ pciusb_free(&amp;entries);
++ end_usb_probe:;
++ }
++#endif
++
++#ifdef ENABLE_PCMCIA
++ /* ---- PCMCIA probe ---------------------------------------------- */
++ if ((bus == BUS_PCMCIA || bus == BUS_ANY) &amp;&amp; !(IS_NOAUTO)) {
++ struct pcmcia_alias * pcmciadb = NULL;
++ unsigned int len = 0;
++ char *base = &quot;/sys/bus/pcmcia/devices&quot;;
++ DIR *dir;
++ struct dirent *dent;
++
++ dir = opendir(base);
++ if (dir == NULL)
++ goto end_pcmcia_probe;
++
++ switch (type) {
++#ifndef DISABLE_MEDIAS
++ case MEDIA_ADAPTERS:
++ pcmciadb = medias_pcmcia_ids;
++ len = medias_pcmcia_num_ids;
++ break;
++#endif
++#ifndef DISABLE_NETWORK
++ case NETWORK_DEVICES:
++ pcmciadb = network_pcmcia_ids;
++ len = network_pcmcia_num_ids;
++ break;
++#endif
++ default:
++ goto end_pcmcia_probe;
++ }
++
++ for (dent = readdir(dir); dent != NULL; dent = readdir(dir)) {
++ struct sysfs_attribute *modalias_attr;
++ char keyfile[256];
++ int i, id;
++
++ if (dent-&gt;d_name[0] == '.')
++ continue;
++
++ log_message(&quot;PCMCIA: device found %s&quot;, dent-&gt;d_name);
++
++ snprintf(keyfile, sizeof(keyfile)-1, &quot;%s/%s/modalias&quot;, base, dent-&gt;d_name);
++ modalias_attr = sysfs_open_attribute(keyfile);
++ if (!modalias_attr)
++ continue;
++ if (sysfs_read_attribute(modalias_attr) != 0 || !modalias_attr-&gt;value) {
++ sysfs_close_attribute(modalias_attr);
++ continue;
++ }
++
++ log_message(&quot;PCMCIA: device found %s&quot;, modalias_attr-&gt;value);
++
++ for (i = 0; i &lt; len; i++) {
++ if (!fnmatch(pcmciadb[i].modalias, modalias_attr-&gt;value, 0)) {
++ char product[256];
++
++ log_message(&quot;PCMCIA: device found %s (%s)&quot;, pcmciadb[i].modalias, pcmciadb[i].module);
++ strcpy(product, &quot;&quot;);
++ for (id = 1; id &lt;= 4; id++) {
++ struct sysfs_attribute *product_attr;
++ snprintf(keyfile, sizeof(keyfile)-1, &quot;%s/%s/prod_id%d&quot;, base, dent-&gt;d_name, id);
++ product_attr = sysfs_open_attribute(keyfile);
++ if (!product_attr)
++ continue;
++ if (sysfs_read_attribute(product_attr) || !product_attr-&gt;value) {
++ sysfs_close_attribute(product_attr);
++ continue;
++ }
++ snprintf(product + strlen(product), sizeof(product)-strlen(product)-1, &quot;%s%s&quot;, product[0] ? &quot; &quot; : &quot;&quot;, product_attr-&gt;value);
++ if (product[strlen(product)-1] == '\n')
++ product[strlen(product)-1] = '\0';
++ sysfs_close_attribute(product_attr);
++ }
++
++ if (!product[0])
++ strcpy(product, &quot;PCMCIA device&quot;);
++
++ log_message(&quot;PCMCIA: device found %s (%s)&quot;, product, pcmciadb[i].module);
++ discovered_device(type, product, pcmciadb[i].module);
++ }
++ }
++
++ sysfs_close_attribute(modalias_attr);
++ }
++ end_pcmcia_probe:;
++ if (dir)
++ closedir(dir);
++ }
++#endif
++
++ /* be sure to load usb-storage after media adapters, so that they are in
++ same order than reboot, so that naming is the same */
++ if (type == MEDIA_ADAPTERS &amp;&amp; (bus == BUS_USB || bus == BUS_SCSI || bus == BUS_ANY) &amp;&amp;
++ already_probed_usb_controllers &amp;&amp; !already_loaded_usb_scsi) {
++ already_loaded_usb_scsi = 1;
++ /* we can't allow additional modules floppy since we need usbkbd for keystrokes of usb keyboards */
++ my_insmod(&quot;usb_storage&quot;, MEDIA_ADAPTERS, NULL, 0);
++ if (module_already_present(&quot;ieee1394&quot;))
++ my_insmod(&quot;sbp2&quot;, MEDIA_ADAPTERS, NULL, 0);
++ wait_message(&quot;Detecting USB mass-storage devices.&quot;);
++ sleep(10); /* sucking background work */
++ remove_wait_message();
++ }
++}
++
++
++static struct media_info * medias = NULL;
++
++void find_media(enum media_bus bus)
++{
++ char b[50];
++ char buf[5000];
++ struct media_info tmp[50];
++ int count = 0;
++ int fd;
++
++ if (medias)
++ free(medias); /* that does not free the strings, by the way */
++
++ log_message(&quot;looking for media adapters&quot;);
++ probe_that_type(MEDIA_ADAPTERS, bus);
++
++ /* ----------------------------------------------- */
++ if (bus != BUS_IDE &amp;&amp; bus != BUS_ANY)
++ goto find_media_after_ide;
++ log_message(&quot;looking for ide media&quot;);
++
++ strcpy(b, &quot;/proc/ide/hd&quot;);
++ for (b[12] = 'a'; b[12] &lt;= 't'; b[12]++) {
++ int i;
++ char ide_disk[] = &quot;disk&quot;;
++ char ide_cdrom[] = &quot;cdrom&quot;;
++ char ide_tape[] = &quot;tape&quot;;
++ char ide_floppy[] = &quot;floppy&quot;;
++
++ /* first, test if file exists (will tell if attached medium exists) */
++ b[13] = '\0';
++ if (access(b, R_OK))
++ continue;
++
++ tmp[count].name = strdup(&quot;hda&quot;);
++ tmp[count].name[2] = b[12];
++
++ /* media type */
++ strcpy(b + 13, &quot;/media&quot;);
++ fd = open(b, O_RDONLY);
++ if (fd == -1) {
++ log_message(&quot;failed to open %s for reading&quot;, b);
++ continue;
++ }
++
++ i = read(fd, buf, sizeof(buf));
++ if (i == -1) {
++ log_message(&quot;failed to read %s&quot;, b);
++ continue;
++ }
++ buf[i] = '\0';
++ close(fd);
++
++ if (ptr_begins_static_str(buf, ide_disk))
++ tmp[count].type = DISK;
++ else if (ptr_begins_static_str(buf, ide_cdrom))
++ tmp[count].type = CDROM;
++ else if (ptr_begins_static_str(buf, ide_tape))
++ tmp[count].type = TAPE;
++ else if (ptr_begins_static_str(buf, ide_floppy))
++ tmp[count].type = FLOPPY;
++ else
++ tmp[count].type = UNKNOWN_MEDIA;
++
++ /* media model */
++ strcpy(b + 13, &quot;/model&quot;);
++ fd = open(b, O_RDONLY);
++ if (fd == -1) {
++ log_message(&quot;failed to open %s for reading&quot;, b);
++ continue;
++ }
++
++ i = read(fd, buf, sizeof(buf));
++ if (i &lt;= 0) {
++ log_message(&quot;failed to read %s&quot;, b);
++ tmp[count].model = strdup(&quot;(none)&quot;);
++ }
++ else {
++ buf[i-1] = '\0'; /* eat the \n */
++ tmp[count].model = strdup(buf);
++ }
++ close(fd);
++
++ log_message(&quot;IDE/%d: %s is a %s&quot;, tmp[count].type, tmp[count].name, tmp[count].model);
++ count++;
++ }
++
++ find_media_after_ide:
++ /* ----------------------------------------------- */
++ if (bus != BUS_SCSI &amp;&amp; bus != BUS_USB &amp;&amp; bus != BUS_PCMCIA &amp;&amp; bus != BUS_ANY)
++ goto find_media_after_scsi;
++ log_message(&quot;looking for scsi media&quot;);
++
++ fd = open(&quot;/proc/scsi/scsi&quot;, O_RDONLY);
++ if (fd != -1) {
++ FILE * f;
++
++ enum { SCSI_TOP, SCSI_HOST, SCSI_VENDOR, SCSI_TYPE } state = SCSI_TOP;
++ char * start, * chptr, * next, * end;
++ char scsi_disk_count = 'a';
++ char scsi_cdrom_count = '0';
++ char scsi_tape_count = '0';
++
++ char scsi_no_devices[] = &quot;Attached devices: none&quot;;
++ char scsi_some_devices[] = &quot;Attached devices:&quot;;
++ char scsi_host[] = &quot;Host: &quot;;
++ char scsi_vendor[] = &quot; Vendor: &quot;;
++
++ int i = read(fd, &amp;buf, sizeof(buf)-1);
++ if (i &lt; 1) {
++ close(fd);
++ goto end_scsi;
++ }
++ close(fd);
++ buf[i] = '\0';
++
++ if (ptr_begins_static_str(buf, scsi_no_devices))
++ goto end_scsi;
++
++ start = buf;
++ while (*start) {
++ char tmp_model[50];
++ char tmp_name[10];
++
++ chptr = start;
++ while (*chptr != '\n') chptr++;
++ *chptr = '\0';
++ next = chptr + 1;
++
++ switch (state) {
++ case SCSI_TOP:
++ if (!ptr_begins_static_str(start, scsi_some_devices))
++ goto end_scsi;
++ state = SCSI_HOST;
++ break;
++
++ case SCSI_HOST:
++ if (!ptr_begins_static_str(start, scsi_host))
++ goto end_scsi;
++ state = SCSI_VENDOR;
++ break;
++
++ case SCSI_VENDOR:
++ if (!ptr_begins_static_str(start, scsi_vendor))
++ goto end_scsi;
++
++ /* (1) Grab Vendor info */
++ start += 10;
++ end = chptr = strstr(start, &quot;Model:&quot;);
++ if (!chptr)
++ goto end_scsi;
++
++ chptr--;
++ while (*chptr == ' ')
++ chptr--;
++ if (*chptr == ':') {
++ chptr++;
++ *(chptr + 1) = '\0';
++ strcpy(tmp_model,&quot;(unknown)&quot;);
++ } else {
++ *(chptr + 1) = '\0';
++ strcpy(tmp_model, start);
++ }
++
++ /* (2) Grab Model info */
++ start = end;
++ start += 7;
++
++ chptr = strstr(start, &quot;Rev:&quot;);
++ if (!chptr)
++ goto end_scsi;
++
++ chptr--;
++ while (*chptr == ' ') chptr--;
++ *(chptr + 1) = '\0';
++
++ strcat(tmp_model, &quot; &quot;);
++ strcat(tmp_model, start);
++
++ tmp[count].model = strdup(tmp_model);
++
++ state = SCSI_TYPE;
++
++ break;
++
++ case SCSI_TYPE:
++ if (strncmp(&quot; Type:&quot;, start, 7))
++ goto end_scsi;
++ *tmp_name = '\0';
++
++ if (strstr(start, &quot;Direct-Access&quot;)) {
++ sprintf(tmp_name, &quot;sd%c&quot;, scsi_disk_count++);
++ tmp[count].type = DISK;
++ } else if (strstr(start, &quot;Sequential-Access&quot;)) {
++ sprintf(tmp_name, &quot;st%c&quot;, scsi_tape_count++);
++ tmp[count].type = TAPE;
++ } else if (strstr(start, &quot;CD-ROM&quot;)) {
++ sprintf(tmp_name, &quot;sr%c&quot;, scsi_cdrom_count++);
++ tmp[count].type = CDROM;
++ }
++
++ if (!(f = fopen(&quot;/proc/partitions&quot;, &quot;rb&quot;)) || !fgets(buf, sizeof(buf), f) || !fgets(buf, sizeof(buf), f)) {
++ log_message(&quot;Couldn't open /proc/partitions&quot;);
++ } else {
++ while (fgets(buf, sizeof(buf), f)) {
++ char name[100];
++ int major, minor, blocks;
++ struct stat statbuf;
++ char *ptr;
++ memset(name, 0, sizeof(name));
++ strcpy(name, &quot;/dev/&quot;);
++ sscanf(buf, &quot; %d %d %d %s&quot;, &amp;major, &amp;minor, &amp;blocks, &amp;name[5]);
++ if (streq(&amp;name[5], tmp_name) &amp;&amp; tmp[count].type == DISK &amp;&amp; ((blocks == 1048575) || (blocks == 1440)))
++ tmp[count].type = FLOPPY;
++ /* Try to create all devices while we have major/minor */
++ if ((ptr = strchr(&amp;name[5], '/'))) {
++ *ptr = '\0';
++ if (stat(name, &amp;statbuf))
++ mkdir(name, 0755);
++ *ptr = '/';
++ }
++ if (stat(name, &amp;statbuf) &amp;&amp; mknod(name, S_IFBLK | 0600, makedev(major, minor))) {
++ log_perror(name);
++ }
++ }
++ fclose(f);
++ }
++
++ if (*tmp_name) {
++ tmp[count].name = strdup(tmp_name);
++ log_message(&quot;SCSI/%d: %s is a %s&quot;, tmp[count].type, tmp[count].name, tmp[count].model);
++ count++;
++ }
++
++ state = SCSI_HOST;
++ }
++
++ start = next;
++ }
++
++ end_scsi:;
++ }
++
++ /* ----------------------------------------------- */
++ log_message(&quot;looking for Compaq Smart Array media&quot;);
++ {
++ char * procfiles[] = { &quot;/proc/driver/cpqarray/ida0&quot;, &quot;/proc/driver/cciss/cciss0&quot;, // 2.4 style
++ &quot;/proc/array/ida&quot;, &quot;/proc/cciss/cciss&quot;, // 2.2 style
++ NULL };
++ static char cpq_descr[] = &quot;Compaq RAID logical disk&quot;;
++ char ** procfile;
++ FILE * f;
++
++ for (procfile = procfiles; procfile &amp;&amp; *procfile; procfile++) {
++ if((f = fopen(*procfile, &quot;rb&quot;))) {
++ while (fgets(buf, sizeof(buf), f)) {
++ if (ptr_begins_static_str(buf, &quot;ida/&quot;) || ptr_begins_static_str(buf, &quot;cciss/&quot;)) {
++ char * end = strchr(buf, ':');
++ if (!end)
++ log_message(&quot;Inconsistency in %s, line:\n%s&quot;, *procfile, buf);
++ else {
++ *end = '\0';
++ tmp[count].name = strdup(buf);
++ tmp[count].type = DISK;
++ tmp[count].model = cpq_descr;
++ log_message(&quot;CPQ: found %s&quot;, tmp[count].name);
++ count++;
++ }
++ }
++ }
++ fclose(f);
++ }
++ }
++ }
++
++ /* ----------------------------------------------- */
++ log_message(&quot;looking for DAC960&quot;);
++ {
++ FILE * f;
++ if ((f = fopen(&quot;/tmp/syslog&quot;, &quot;rb&quot;))) {
++ while (fgets(buf, sizeof(buf), f)) {
++ char * start;
++ if ((start = strstr(buf, &quot;/dev/rd/&quot;))) {
++ char * end = strchr(start, ':');
++ if (!end)
++ log_message(&quot;Inconsistency in syslog, line:\n%s&quot;, buf);
++ else {
++ *end = '\0';
++ tmp[count].name = strdup(start+5);
++ tmp[count].type = DISK;
++ start = end + 2;
++ end = strchr(start, ',');
++ if (end) {
++ *end = '\0';
++ tmp[count].model = strdup(start);
++ } else
++ tmp[count].model = &quot;(unknown)&quot;;
++ log_message(&quot;DAC960: found %s (%s)&quot;, tmp[count].name, tmp[count].model);
++ count++;
++ }
++ }
++ }
++ fclose(f);
++ }
++ }
++ find_media_after_scsi:
++
++ /* ----------------------------------------------- */
++ tmp[count].name = NULL;
++ count++;
++
++ medias = memdup(tmp, sizeof(struct media_info) * count);
++}
++
++
++/* Finds by media */
++void get_medias(enum media_type media, char *** names, char *** models, enum media_bus bus)
++{
++ struct media_info * m;
++ char * tmp_names[50];
++ char * tmp_models[50];
++ int count;
++
++ find_media(bus);
++
++ m = medias;
++
++ count = 0;
++ while (m &amp;&amp; m-&gt;name) {
++ if (m-&gt;type == media) {
++ tmp_names[count] = strdup(m-&gt;name);
++ tmp_models[count++] = strdup(m-&gt;model);
++ }
++ m++;
++ }
++ tmp_names[count] = NULL;
++ tmp_models[count++] = NULL;
++
++ *names = memdup(tmp_names, sizeof(char *) * count);
++ *models = memdup(tmp_models, sizeof(char *) * count);
++}
++
++
++#ifndef DISABLE_NETWORK
++static int is_net_interface_blacklisted(char *intf)
++{
++ /* see detect_devicess::is_lan_interface() */
++ char * blacklist[] = { &quot;lo&quot;, &quot;ippp&quot;, &quot;isdn&quot;, &quot;plip&quot;, &quot;ppp&quot;, &quot;wifi&quot;, &quot;sit&quot;, NULL };
++ char ** ptr = blacklist;
++
++ while (ptr &amp;&amp; *ptr) {
++ if (!strncmp(intf, *ptr, strlen(*ptr)))
++ return 1;
++ ptr++;
++ }
++
++ return 0;
++}
++
++char ** get_net_devices(void)
++{
++ char * tmp[50];
++ static int already_probed = 0;
++ FILE * f;
++ int i = 0;
++
++ if (!already_probed) {
++ already_probed = 1; /* cut off loop brought by: probe_that_type =&gt; my_insmod =&gt; get_net_devices */
++ probe_that_type(NETWORK_DEVICES, BUS_ANY);
++ }
++
++ /* use /proc/net/dev since SIOCGIFCONF doesn't work with some drivers (rt2500) */
++ f = fopen(&quot;/proc/net/dev&quot;, &quot;rb&quot;);
++ if (f) {
++ char line[128];
++
++ /* skip the two first lines */
++ fgets(line, sizeof(line), f);
++ fgets(line, sizeof(line), f);
++
++ while (1) {
++ char *start, *end;
++ if (!fgets(line, sizeof(line), f))
++ break;
++ start = line;
++ while (*start == ' ')
++ start++;
++ end = strchr(start, ':');
++ if (end)
++ end[0] = '\0';
++ if (!is_net_interface_blacklisted(start)) {
++ log_message(&quot;found net interface %s&quot;, start);
++ tmp[i++] = strdup(start);
++ } else {
++ log_message(&quot;found net interface %s, but blacklisted&quot;, start);
++ }
++ }
++
++ fclose(f);
++ } else {
++ log_message(&quot;net: could not open devices file&quot;);
++ }
++
++ tmp[i++] = NULL;
++
++ return memdup(tmp, sizeof(char *) * i);
++
++}
++#endif /* DISABLE_NETWORK */
+
+
+Property changes on: drakx/trunk/mdk-stage1/probing.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1probingh">Added: drakx/trunk/mdk-stage1/probing.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/probing.h (rev 0)
++++ drakx/trunk/mdk-stage1/probing.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,65 @@
++/*
++ * Guillaume Cottenceau (gc@mandriva.com)
++ *
++ * Copyright 2000 Mandriva
++ *
++ * This software may be freely redistributed under the terms of the GNU
++ * public license.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++/*
++ * Portions from Erik Troan (ewt@redhat.com)
++ *
++ * Copyright 1996 Red Hat Software
++ *
++ */
++
++#ifndef _PROBING_H_
++#define _PROBING_H_
++
++enum media_type { CDROM, DISK, FLOPPY, TAPE, UNKNOWN_MEDIA };
++
++enum driver_type { MEDIA_ADAPTERS, NETWORK_DEVICES, USB_CONTROLLERS,
++ VIRTIO_DEVICES, ANY_DRIVER_TYPE };
++
++enum media_bus { BUS_IDE, BUS_SCSI, BUS_USB, BUS_PCMCIA, BUS_ANY };
++
++#define VIRTIO_PCI_VENDOR 0x1af4
++#define VIRTIO_ID_NET 0x0001
++#define VIRTIO_ID_BLOCK 0x0002
++#define VIRTIO_ID_BALLOON 0x0005
++
++void find_media(enum media_bus bus);
++void get_medias(enum media_type media, char *** names, char *** models, enum media_bus bus);
++char ** get_net_devices(void);
++void net_discovered_interface(char * intf_name);
++char * get_net_intf_description(char * intf_name);
++void prepare_intf_descr(const char * intf_descr);
++void probe_that_type(enum driver_type type, enum media_bus bus);
++
++/* Make sure the MATCH_ALL value is greater than all possible values
++ for subvendor &amp; subdevice: this simplifies the orderer */
++#define PCITABLE_MATCH_ALL 0x10000
++
++struct pcitable_entry {
++ /* some bits stolen from pci-resource/pci-ids.h
++ * FIXME: split pci-ids.h into pci-ids.c and pci-ids.h so that the header can be re-used
++ */
++ unsigned short vendor; /* PCI vendor id */
++ unsigned short device; /* PCI device id */
++ unsigned int subvendor; /* PCI subvendor id */
++ unsigned int subdevice; /* PCI subdevice id */
++ char module[20]; /* module to load */
++ char description[100]; /* PCI human readable description */
++};
++extern struct pcitable_entry *detected_devices;
++extern int detected_devices_len;
++void probing_detect_devices();
++void probing_destroy(void);
++
++#endif
+
+
+Property changes on: drakx/trunk/mdk-stage1/probing.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1rescueguic">Added: drakx/trunk/mdk-stage1/rescue-gui.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rescue-gui.c (rev 0)
++++ drakx/trunk/mdk-stage1/rescue-gui.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,297 @@
++/*
++ * Guillaume Cottenceau (gc@mandriva.com)
++ *
++ * Copyright 2001 Mandriva
++ *
++ *
++ * This software may be freely redistributed under the terms of the GNU
++ * public license.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++#include &lt;stdlib.h&gt;
++#define _USE_BSD
++#include &lt;sys/types.h&gt;
++#include &lt;sys/time.h&gt;
++#include &lt;sys/resource.h&gt;
++#include &lt;sys/wait.h&gt;
++#include &lt;unistd.h&gt;
++#include &lt;string.h&gt;
++#include &lt;stdio.h&gt;
++#include &lt;sys/mount.h&gt;
++#include &lt;fcntl.h&gt;
++#include &lt;sys/ioctl.h&gt;
++#include &lt;linux/unistd.h&gt;
++#include &lt;sys/select.h&gt;
++
++#include &quot;config-stage1.h&quot;
++#include &quot;frontend.h&quot;
++#include &quot;utils.h&quot;
++#include &quot;params.h&quot;
++
++#include &lt;sys/syscall.h&gt;
++#define reboot(...) syscall(__NR_reboot, __VA_ARGS__)
++
++#if defined(__i386__) || defined(__x86_64__)
++#define ENABLE_RESCUE_MS_BOOT 1
++#endif
++
++char * env[] = {
++ &quot;PATH=/usr/bin:/bin:/sbin:/usr/sbin:/mnt/sbin:/mnt/usr/sbin:/mnt/bin:/mnt/usr/bin&quot;,
++ &quot;LD_LIBRARY_PATH=/lib:/usr/lib:/mnt/lib:/mnt/usr/lib:/usr/X11R6/lib:/mnt/usr/X11R6/lib&quot;
++#if defined(__x86_64__) || defined(__ppc64__)
++ &quot;:/lib64:/usr/lib64:/usr/X11R6/lib64:/mnt/lib64:/mnt/usr/lib64:/mnt/usr/X11R6/lib64&quot;
++#endif
++ ,
++ &quot;HOME=/&quot;,
++ &quot;TERM=linux&quot;,
++ &quot;TERMINFO=/etc/terminfo&quot;,
++ NULL
++};
++
++/* pause() already exists and causes the invoking process to sleep
++ until a signal is received */
++static void PAUSE(void) {
++ unsigned char t;
++ fflush(stdout);
++ read(0, &amp;t, 1);
++}
++
++
++/* ------ UUURGH this is duplicated from `init.c', don't edit here........ */
++void fatal_error(char *msg)
++{
++ printf(&quot;FATAL ERROR IN RESCUE: %s\n\nI can't recover from this.\nYou may reboot your system.\n&quot;, msg);
++ while (1);
++}
++
++#define LOOP_CLR_FD 0x4C01
++void del_loop(char *device)
++{
++ int fd;
++ if ((fd = open(device, O_RDONLY, 0)) &lt; 0) {
++ printf(&quot;del_loop open failed\n&quot;);
++ return;
++ }
++
++ if (ioctl(fd, LOOP_CLR_FD, 0) &lt; 0) {
++ printf(&quot;del_loop ioctl failed&quot;);
++ return;
++ }
++
++ close(fd);
++}
++struct filesystem { char * dev; char * name; char * fs; int mounted; };
++void unmount_filesystems(void)
++{
++ int fd, size;
++ char buf[65535]; /* this should be big enough */
++ char *p;
++ struct filesystem fs[500];
++ int numfs = 0;
++ int i, nb;
++
++ printf(&quot;unmounting filesystems...\n&quot;);
++
++ fd = open(&quot;/proc/mounts&quot;, O_RDONLY, 0);
++ if (fd &lt; 1) {
++ printf(&quot;ERROR: failed to open /proc/mounts&quot;);
++ sleep(2);
++ return;
++ }
++
++ size = read(fd, buf, sizeof(buf) - 1);
++ buf[size] = '\0';
++
++ close(fd);
++
++ p = buf;
++ while (*p) {
++ fs[numfs].mounted = 1;
++ fs[numfs].dev = p;
++ while (*p != ' ') p++;
++ *p++ = '\0';
++ fs[numfs].name = p;
++ while (*p != ' ') p++;
++ *p++ = '\0';
++ fs[numfs].fs = p;
++ while (*p != ' ') p++;
++ *p++ = '\0';
++ while (*p != '\n') p++;
++ p++;
++ if (strcmp(fs[numfs].name, &quot;/&quot;) != 0) numfs++; /* skip if root, no need to take initrd root in account */
++ }
++
++ /* Pixel's ultra-optimized sorting algorithm:
++ multiple passes trying to umount everything until nothing moves
++ anymore (a.k.a holy shotgun method) */
++ do {
++ nb = 0;
++ for (i = 0; i &lt; numfs; i++) {
++ /*printf(&quot;trying with %s\n&quot;, fs[i].name);*/
++ if (fs[i].mounted &amp;&amp; umount(fs[i].name) == 0) {
++ if (strncmp(fs[i].dev + sizeof(&quot;/dev/&quot;) - 1, &quot;loop&quot;,
++ sizeof(&quot;loop&quot;) - 1) == 0)
++ del_loop(fs[i].dev);
++
++ printf(&quot;\t%s\n&quot;, fs[i].name);
++ fs[i].mounted = 0;
++ nb++;
++ }
++ }
++ } while (nb);
++
++ for (i = nb = 0; i &lt; numfs; i++)
++ if (fs[i].mounted) {
++ printf(&quot;\t%s umount failed\n&quot;, fs[i].name);
++ if (strcmp(fs[i].fs, &quot;ext2&quot;) == 0) nb++; /* don't count not-ext2 umount failed */
++ }
++
++ if (nb) {
++ printf(&quot;failed to umount some filesystems\n&quot;);
++ while (1);
++ }
++}
++/* ------ UUURGH -- end */
++
++
++/* ------ UUURGH -- this is dirrrrrttttyyyyyy */
++void probe_that_type(void) {}
++void exit_bootsplash(void) {}
++
++
++int main(int argc __attribute__ ((unused)), char **argv __attribute__ ((unused)))
++{
++ enum return_type results;
++
++ char install_bootloader[] = &quot;Re-install Boot Loader&quot;;
++#if ENABLE_RESCUE_MS_BOOT
++ char restore_ms_boot[] = &quot;Restore Windows Boot Loader&quot;;
++#endif
++ char mount_parts[] = &quot;Mount your partitions under /mnt&quot;;
++ char go_to_console[] = &quot;Go to console&quot;;
++ char reboot_[] = &quot;Reboot&quot;;
++ char doc[] = &quot;Doc: what's addressed by this Rescue?&quot;;
++
++ char upgrade[] = &quot;Upgrade to New Version&quot;;
++ char rootpass[] = &quot;Reset Root Password&quot;;
++ char userpass[] = &quot;Reset User Password&quot;;
++ char factory[] = &quot;Reset to Factory Defaults&quot;;
++ char backup[] = &quot;Backup User Files&quot;;
++ char restore[] = &quot;Restore User Files from Backup&quot;;
++ char badblocks[] = &quot;Test Key for Badblocks&quot;;
++
++ char * actions_default[] = { install_bootloader,
++#if ENABLE_RESCUE_MS_BOOT
++ restore_ms_boot,
++#endif
++ mount_parts, go_to_console, reboot_, doc, NULL };
++ char * actions_flash_rescue[] = { rootpass, userpass, factory, backup, restore,
++ badblocks, go_to_console, reboot_, NULL };
++ char * actions_flash_upgrade[] = { upgrade, go_to_console, reboot_, NULL };
++
++
++ char * flash_mode;
++ char ** actions;
++ char * choice;
++
++ process_cmdline();
++ flash_mode = get_param_valued(&quot;flash&quot;);
++ actions = !flash_mode ?
++ actions_default :
++ streq(flash_mode, &quot;upgrade&quot;) ? actions_flash_upgrade : actions_flash_rescue;
++
++ init_frontend(&quot;Welcome to &quot; DISTRIB_NAME &quot; Rescue (&quot; DISTRIB_VERSION &quot;) &quot; __DATE__ &quot; &quot; __TIME__);
++
++ do {
++ int pid;
++ char * binary = NULL;
++
++ choice = &quot;&quot;;
++ results = ask_from_list(&quot;Please choose the desired action.&quot;, actions, &amp;choice);
++
++ if (ptr_begins_static_str(choice, install_bootloader)) {
++ binary = &quot;/usr/bin/install_bootloader&quot;;
++ }
++#if ENABLE_RESCUE_MS_BOOT
++ if (ptr_begins_static_str(choice, restore_ms_boot)) {
++ binary = &quot;/usr/bin/restore_ms_boot&quot;;
++ }
++#endif
++ if (ptr_begins_static_str(choice, mount_parts)) {
++ binary = &quot;/usr/bin/guessmounts&quot;;
++ }
++ if (ptr_begins_static_str(choice, reboot_)) {
++ finish_frontend();
++ sync(); sync();
++ sleep(2);
++ unmount_filesystems();
++ sync(); sync();
++ printf(&quot;rebooting system\n&quot;);
++ sleep(2);
++ reboot(0xfee1dead, 672274793, 0x01234567);
++ }
++ if (ptr_begins_static_str(choice, doc)) {
++ binary = &quot;/usr/bin/rescue-doc&quot;;
++ }
++
++ /* Mandriva Flash entries */
++ if (ptr_begins_static_str(choice, rootpass)) {
++ binary = &quot;/usr/bin/reset_rootpass&quot;;
++ }
++ if (ptr_begins_static_str(choice, userpass)) {
++ binary = &quot;/usr/bin/reset_userpass&quot;;
++ }
++ if (ptr_begins_static_str(choice, factory)) {
++ binary = &quot;/usr/bin/clear_systemloop&quot;;
++ }
++ if (ptr_begins_static_str(choice, backup)) {
++ binary = &quot;/usr/bin/backup_systemloop&quot;;
++ }
++ if (ptr_begins_static_str(choice, restore)) {
++ binary = &quot;/usr/bin/restore_systemloop&quot;;
++ }
++ if (ptr_begins_static_str(choice, badblocks)) {
++ binary = &quot;/usr/bin/test_badblocks&quot;;
++ }
++ if (ptr_begins_static_str(choice, upgrade)) {
++ binary = &quot;/usr/bin/upgrade&quot;;
++ }
++
++ if (binary) {
++ int wait_status;
++ suspend_to_console();
++ if (!(pid = fork())) {
++
++ char * child_argv[2];
++ child_argv[0] = binary;
++ child_argv[1] = NULL;
++
++ execve(child_argv[0], child_argv, env);
++ printf(&quot;Can't execute binary (%s)\n&lt;press Enter&gt;\n&quot;, binary);
++ PAUSE();
++
++ return 33;
++ }
++ while (wait4(-1, &amp;wait_status, 0, NULL) != pid) {};
++ printf(&quot;&lt;press Enter to return to Rescue menu&gt;&quot;);
++ PAUSE();
++ resume_from_suspend();
++ if (!WIFEXITED(wait_status) || WEXITSTATUS(wait_status) != 0) {
++ error_message(&quot;Program exited abnormally (return code %d).&quot;, WEXITSTATUS(wait_status));
++ if (WIFSIGNALED(wait_status))
++ error_message(&quot;(received signal %d)&quot;, WTERMSIG(wait_status));
++ }
++ }
++
++ } while (results == RETURN_OK &amp;&amp; !ptr_begins_static_str(choice, go_to_console));
++
++ finish_frontend();
++ printf(&quot;Bye.\n&quot;);
++
++ return 0;
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/rescue-gui.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1rppppoeREADME">Added: drakx/trunk/mdk-stage1/rp-pppoe/README</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/README (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/README 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,87 @@
++pppoe: a PPP-over-Ethernet redirector for pppd
++Copyright (C) 2001 Roaring Penguin Software Inc.
++
++Much inspiration from an earlier client by Luke Stras.
++
++The MSS clamping was inspired by mssclampfw by Marc Boucher &lt;marc@mbsi.ca&gt;
++with acknowledgements to Rebel.com (http://www.rebel.com). However, the
++actual MSS clamping code is original and is licensed under the GPL, unlike
++the original mssclampfw.
++
++Introduction
++============
++
++pppoe is a user-space redirector which permits the use of PPPoE
++(Point-to-Point Over Ethernet) with Linux. PPPoE is used by many
++ADSL service providers.
++
++Installation
++============
++
++Requirements
++------------
++
++1) Linux 2.2.9 or later on Intel, Sparc or PowerPC. It may work on
++ Alpha, too -- anyone care to let me know?
++
++ OR
++
++ Linux 2.0.36 or later.
++
++ OR
++
++ FreeBSD, NetBSD or OpenBSD with BPF support. I have access only
++ to FreeBSD. In general, I can't answer questions about the *BSD's
++ as well as I can about Linux.
++
++
++2) pppd 2.3.10 or later. Versions 2.3.7 and later work unless you use
++ demand-dialling. For demand dialling, you *must* use 2.3.10 or later.
++
++QUICKSTART
++----------
++
++If you're lucky, the &quot;quickstart&quot; method will work. After unpacking
++the archive, become root and type:
++
++ ./go
++
++This should configure, compile and install the software and set up your
++ADSL connection. You'll have to answer a few questions along the way.
++
++If you want the GUI wrapper, type:
++
++ ./go-gui
++
++If ./go and ./go-gui didn't work, read the rest of this README.
++
++Compiling
++---------
++
++Compile and install pppd if you don't already have it. Then:
++
++1) Unpack:
++
++ $ tar xzvf rp-pppoe-xxx.tar.gz
++
++2) Change to source directory:
++
++ $ cd src
++
++3) Configure:
++
++ $ ./configure
++
++4) Compile:
++
++ $ make
++
++4) Install (this step must be done as root)
++
++ # make install
++
++5) Now read doc/HOW-TO-CONNECT
++
++--
++David F. Skoll &lt;dfs@roaringpenguin.com&gt; | Roaring Penguin Software Inc.
++http://www.roaringpenguin.com | Linux and UNIX Specialists
+\ No newline at end of file
+
+<a id="drakxtrunkmdkstage1rppppoeconfigsfirewallmasq">Added: drakx/trunk/mdk-stage1/rp-pppoe/configs/firewall-masq</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/configs/firewall-masq (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/configs/firewall-masq 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,35 @@
++#!/bin/sh
++#
++# firewall-masq This script sets up firewall rules for a machine
++# acting as a masquerading gateway
++#
++# Copyright (C) 2000 Roaring Penguin Software Inc. This software may
++# be distributed under the terms of the GNU General Public License, version
++# 2 or any later version.
++
++# Interface to Internet
++EXTIF=ppp+
++
++ANY=0.0.0.0/0
++
++ipchains -P input ACCEPT
++ipchains -P output ACCEPT
++ipchains -P forward DENY
++
++ipchains -F forward
++ipchains -F input
++ipchains -F output
++
++# Deny TCP and UDP packets to privileged ports
++ipchains -A input -l -i $EXTIF -d $ANY 0:1023 -p udp -j DENY
++ipchains -A input -l -i $EXTIF -d $ANY 0:1023 -p tcp -j DENY
++
++# Deny TCP connection attempts
++ipchains -A input -l -i $EXTIF -p tcp -y -j DENY
++
++# Deny ICMP echo-requests
++ipchains -A input -l -i $EXTIF -s $ANY echo-request -p icmp -j DENY
++
++# Do masquerading
++ipchains -A forward -j MASQ
++echo 1 &gt; /proc/sys/net/ipv4/ip_forward
+
+<a id="drakxtrunkmdkstage1rppppoeconfigsfirewallstandalone">Added: drakx/trunk/mdk-stage1/rp-pppoe/configs/firewall-standalone</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/configs/firewall-standalone (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/configs/firewall-standalone 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,32 @@
++#!/bin/sh
++#
++# firewall-standalone This script sets up firewall rules for a standalone
++# machine
++#
++# Copyright (C) 2000 Roaring Penguin Software Inc. This software may
++# be distributed under the terms of the GNU General Public License, version
++# 2 or any later version.
++
++# Interface to Internet
++EXTIF=ppp+
++
++ANY=0.0.0.0/0
++
++ipchains -P input ACCEPT
++ipchains -P output ACCEPT
++ipchains -P forward DENY
++
++ipchains -F forward
++ipchains -F input
++ipchains -F output
++
++# Deny TCP and UDP packets to privileged ports
++ipchains -A input -l -i $EXTIF -d $ANY 0:1023 -p udp -j DENY
++ipchains -A input -l -i $EXTIF -d $ANY 0:1023 -p tcp -j DENY
++
++# Deny TCP connection attempts
++ipchains -A input -l -i $EXTIF -p tcp -y -j DENY
++
++# Deny ICMP echo-requests
++ipchains -A input -l -i $EXTIF -s $ANY echo-request -p icmp -j DENY
++
+
+<a id="drakxtrunkmdkstage1rppppoeconfigspapsecrets">Added: drakx/trunk/mdk-stage1/rp-pppoe/configs/pap-secrets</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/configs/pap-secrets (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/configs/pap-secrets 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,9 @@
++# Edit this file and place it in /etc/ppp/pap-secrets
++
++#User #Server #Password #IP
++bxxxxx@sympatico.ca * my_password *
++
++# Replace bxxxxx@sympatico.ca with your Sympatico user-ID
++# Replace my_password with your Sympatico password
++
++# For Magma, use xxyyzz@magma.ca
+
+<a id="drakxtrunkmdkstage1rppppoeconfigspppoeserveroptions">Added: drakx/trunk/mdk-stage1/rp-pppoe/configs/pppoe-server-options</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/configs/pppoe-server-options (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/configs/pppoe-server-options 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,5 @@
++# PPP options for the PPPoE server
++require-pap
++login
++lcp-echo-interval 10
++lcp-echo-failure 2
+
+<a id="drakxtrunkmdkstage1rppppoeconfigspppoeconf">Added: drakx/trunk/mdk-stage1/rp-pppoe/configs/pppoe.conf</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/configs/pppoe.conf (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/configs/pppoe.conf 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,126 @@
++#***********************************************************************
++#
++# pppoe.conf
++#
++# Configuration file for rp-pppoe. Edit as appropriate and install in
++# /etc/ppp/pppoe.conf
++#
++# NOTE: This file is used by the adsl-start, adsl-stop, adsl-connect and
++# adsl-status shell scripts. It is *not* used in any way by the
++# &quot;pppoe&quot; executable.
++#
++# Copyright (C) 2000 Roaring Penguin Software Inc.
++#
++# This file may be distributed under the terms of the GNU General
++# Public License.
++#
++# $Id: pppoe.conf 195724 2001-06-11 13:49:39Z gc $
++#***********************************************************************
++
++# When you configure a variable, DO NOT leave spaces around the &quot;=&quot; sign.
++
++# Ethernet card connected to ADSL modem
++ETH=eth1
++
++# ADSL user name. You may have to supply &quot;@provider.com&quot; Sympatico
++# users in Canada do need to include &quot;@sympatico.ca&quot;
++# Sympatico uses PAP authentication. Make sure /etc/ppp/pap-secrets
++# contains the right username/password combination.
++# For Magma, use xxyyzz@magma.ca
++USER=bxxxnxnx@sympatico.ca
++
++# Bring link up on demand? Default is to leave link up all the time.
++# If you want the link to come up on demand, set DEMAND to a number indicating
++# the idle time after which the link is brought down.
++DEMAND=no
++#DEMAND=300
++
++# DNS type: SERVER=obtain from server; SPECIFY=use DNS1 and DNS2;
++# NOCHANGE=do not adjust.
++DNSTYPE=SERVER
++
++# Obtain DNS server addresses from the peer (recent versions of pppd only)
++USEPEERDNS=yes
++
++DNS1=
++DNS2=
++
++### ONLY TOUCH THE FOLLOWING SETTINGS IF YOU'RE AN EXPERT
++
++# How long adsl-start waits for a new PPP interface to appear before
++# concluding something went wrong. If you use 0, then adsl-start
++# exits immediately with a successful status and does not wait for the
++# link to come up. Time is in seconds.
++#
++# WARNING WARNING WARNING:
++#
++# If you are using rp-pppoe on a physically-inaccessible host, set
++# CONNECT_TIMEOUT to 0. This makes SURE that the machine keeps trying
++# to connect forever after adsl-start is called. Otherwise, it will
++# give out after CONNECT_TIMEOUT seconds and will not attempt to
++# connect again, making it impossible to reach.
++CONNECT_TIMEOUT=30
++
++# How often in seconds adsl-start polls to check if link is up
++CONNECT_POLL=2
++
++# Specific desired AC Name
++ACNAME=
++
++# Specific desired service name
++SERVICENAME=
++
++# Character to echo at each poll. Use PING=&quot;&quot; if you don't want
++# anything echoed
++PING=&quot;.&quot;
++
++# File where the adsl-connect script writes its process-ID.
++# Three files are actually used:
++# $PIDFILE contains PID of adsl-connect script
++# $PIDFILE.pppoe contains PID of pppoe process
++# $PIDFILE.pppd contains PID of pppd process
++CF_BASE=`basename $CONFIG`
++PIDFILE=&quot;/var/run/$CF_BASE-adsl.pid&quot;
++
++# Do you want to use synchronous PPP? &quot;yes&quot; or &quot;no&quot;. &quot;yes&quot; is much
++# easier on CPU usage, but may not work for you. It is safer to use
++# &quot;no&quot;, but you may want to experiment with &quot;yes&quot;. &quot;yes&quot; is generally
++# safe on Linux machines with the n_hdlc line discipline; unsafe on others.
++SYNCHRONOUS=no
++
++# Do you want to clamp the MSS? Here's how to decide:
++# - If you have only a SINGLE computer connected to the ADSL modem, choose
++# &quot;no&quot;.
++# - If you have a computer acting as a gateway for a LAN, choose &quot;1412&quot;.
++# The setting of 1412 is safe for either setup, but uses slightly more
++# CPU power.
++CLAMPMSS=1412
++#CLAMPMSS=no
++
++# LCP echo interval and failure count.
++LCP_INTERVAL=20
++LCP_FAILURE=3
++
++# PPPOE_TIMEOUT should be about 4*LCP_INTERVAL
++PPPOE_TIMEOUT=80
++
++# Firewalling: One of NONE, STANDALONE or MASQUERADE
++FIREWALL=NONE
++
++# Linux kernel-mode plugin for pppd. If you want to try the kernel-mode
++# plugin, use LINUX_PLUGIN=/etc/ppp/plugins/rp-pppoe.so
++LINUX_PLUGIN=
++
++# Any extra arguments to pass to pppoe. Normally, use a blank string
++# like this:
++PPPOE_EXTRA=&quot;&quot;
++
++# Rumour has it that &quot;Citizen's Communications&quot; with a 3Com
++# HomeConnect ADSL Modem DualLink requires these extra options:
++# PPPOE_EXTRA=&quot;-f 3c12:3c13 -S ISP&quot;
++
++# Any extra arguments to pass to pppd. Normally, use a blank string
++# like this:
++PPPD_EXTRA=&quot;&quot;
++
++
+
+<a id="drakxtrunkmdkstage1rppppoedocCHANGES">Added: drakx/trunk/mdk-stage1/rp-pppoe/doc/CHANGES</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/doc/CHANGES (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/doc/CHANGES 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,177 @@
++Changes from Version 2.8 to 3.0:
++
++- Many small improvements to server. Server now only makes one
++ discovery socket, systemwide, with addition of &quot;-n&quot; option to pppoe.
++
++- Fixes for compilation problems on BSD, Solaris and some Linux platforms.
++
++- Added &quot;-p&quot; option to pppoe-server to allow you to specify a pool of
++ IP addresses to assign to clients.
++
++- Added GUI system (tkpppoe). This work was funded by Iospan
++ Wireless, Inc. The GUI includes a Set-UID wrapper (pppoe-wrapper)
++ which allows ordinary users to control a link (if so authorized.)
++ I believe the wrapper script is secure, but please audit the
++ source code (gui/wrapper.c) if you have any concerns.
++
++- Changes to scripts and pppoe.conf. DNS setup is now dynamic (happens
++ each time adsl-connect runs.)
++
++- Made relay.c check packet lengths rigorously; made it throw out Ethernet
++ frame padding on session packets as well as discovery packets.
++
++Changes from Version 2.7 to 2.8:
++
++- Added init scripts for TurboLinux, courtesy of Yasuhiro Sumi.
++
++- Made relay.c check packet lengths rigorously; made it throw out Ethernet
++ frame padding on discovery packets.
++
++*** NOTE: 2.7 was not released publicly
++
++Changes from Version 2.6 to 2.7:
++
++- Completely restructured source file tree.
++
++- Much internal restructuring to eliminate a bunch of global variables.
++
++- adsl-connect now executes /etc/ppp/adsl-lost whenever connection is dropped
++ or cannot be established.
++
++- Split pppoe.c into pppoe.c and discovery.c.
++
++- Added relay agent (pppoe-relay).
++
++- Made adsl-connect script use the &quot;-U&quot; (host-unique) option to better support
++ multiple PPPoE links.
++
++- Added support for kernel-mode PPPoE (EXPERIMENTAL, UNSUPPORTED!)
++
++- Added &quot;-o&quot; option to PPPoE server; encoded server PID in pppoe-server
++ cookie.
++
++Changes from Version 2.5 to 2.6:
++
++- Code should now compile cleanly on Caldera and Slackware Linux
++
++- Fixed rp-pppoe.spec file to work on Mandrake and Red Hat.
++
++- Deleted some obsolete files
++
++- Fixed bug in Solaris/x86 port (thanks to Philippe Levan)
++
++- Made shell scripts nicer under Solaris (again, Philippe Levan)
++
++- Made adsl-status look under /var/run and /etc/ppp for PID files. Should
++ fix problems with NetBSD.
++
++- Added PPPD_EXTRA to pppoe.conf; made the PID file depend on the config
++ file name. This makes it easier to run multiple PPPoE sessions.
++
++Changes from Version 2.4 to 2.5:
++
++- Tested for zero-length TCP option-length field, and for reverse-packing
++ of type/code bitfields. Thanks to Robert Schlabbach for pointing out
++ these problems.
++
++- Set umask to 077 in adsl-setup.in to protect created files like
++ /etc/ppp/pap-secrets.
++
++Changes from Version 2.3 to 2.4:
++
++- Fixed spec file to automatically add .gz extension to man files as required
++
++- Tightened firewall rules.
++
++- Better check for /var/run in adsl-status; minor shell script fixes and
++ cleanups for NetBSD and Solaris.
++
++- Added FAQ to HOW-TO-CONNECT regarding running a script each time a
++ connection is made.
++
++Changes from Version 2.2 to 2.3:
++
++- Fixed the init script to create/remove /var/lock/subsys/adsl (patch
++ courtesy of Charley Carter.)
++
++- Added support (under Linux) for N_HDLC line discipline which should
++ greatly reduce CPU usage. My tests show it cuts CPU usage in half.
++ My 486 DX2/66 gets 800 kb/s at 22% CPU usage.
++
++- adsl-connect uses &quot;setsid&quot; (if available) so that adsl-stop doesn't kill
++ its caller. There is (IMO) a bug in pppd which kills all processes in
++ its process group if the &quot;pty&quot; option is used. The setsid program gets
++ around this bug, on Linux at least.
++
++- Port to Solaris, courtesy of David Holland.
++
++- Renamed spec file from &quot;spec&quot; to &quot;rp-pppoe.spec&quot; and made some cleanups.
++ NOTE: Red Hat, in their infinite wisdom, decided to make the new RPM
++ compress man pages automatically. You may have problems building RPM's
++ from source unless you get the latest rpm package and make sure it
++ compresses man pages.
++
++Changes from Version 2.1 to 2.2:
++
++- Added &quot;-f&quot; option to pppoe to allow use of any Ethernet frame type
++ for PPPoE. USE WITH CAUTION -- this is a workaround for broken DSL
++ providers, not something you should monkey with freely!
++
++- Added pppoe-sniff program to help expose non-standard PPPoE implementations.
++
++Changes from Version 2.0 to 2.1:
++
++- Fixed minor bugs in bounds-checking
++
++- Modified adsl-status to use output of &quot;netstat -r -n&quot; to determine whether
++ or not link is up. This should make it independent of locale, I hope!
++
++- Added &quot;-k&quot; and &quot;-d&quot; options to pppoe.
++
++Changes from Version 1.9 to 2.0:
++
++- Addition of pppoe-server
++
++- Massive internal code restructuring
++
++- Zealous bounds-checking everywhere.
++
++- adsl-setup now quotes user name and password in /etc/ppp/pap-secrets.
++
++- Ported to OpenBSD, FreeBSD and NetBSD, courtesy of Geoff Mottram
++ and Yannis Sismanis.
++
++- Rearranged adsl-* shell scripts, courtesy of Heiko Schlittermann.
++
++- Fixed bug in which Host-Uniq did not work if access concentrator sent
++ a cookie.
++
++- Addition of SuSE-specific &quot;init&quot; script, courtesy of Gary Cameron.
++
++Changes from Version 1.8 to 1.9:
++
++- Added some more documentation to HOW-TO-CONNECT
++
++- Demand-dialling option now works correctly
++
++- SIGHUP terminates pppoe after sending a PADT to the access concentrator
++
++- Minor cleanups to connection shell scripts
++
++Changes from Version 1.7 to 1.8:
++
++- Added demand-dialling option
++
++- Clarified HOW-TO-CONNECT
++
++- Added adsl-status script
++
++- Added &quot;restart&quot; and &quot;status&quot; options to Red Hat /etc/rc.d/init.d/adsl script
++
++- Made adsl-setup check for existence of pppd
++
++- Wildcarded external interface in firewall rules
++
++- Made pppoe send a PADT frame if connection is terminated
++
++$Id: CHANGES 195724 2001-06-11 13:49:39Z gc $
+
+<a id="drakxtrunkmdkstage1rppppoedocHOWTOCONNECT">Added: drakx/trunk/mdk-stage1/rp-pppoe/doc/HOW-TO-CONNECT</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/doc/HOW-TO-CONNECT (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/doc/HOW-TO-CONNECT 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,295 @@
++$Id: HOW-TO-CONNECT 195724 2001-06-11 13:49:39Z gc $
++
++This package lets you connect a Linux machine to Sympatico HSE or Magma's
++high-speed service using a Nortel 1-meg modem.
++
++Follow these steps and you should have your high-speed service up and running.
++
++0. Install the rp-pppoe-software
++--------------------------------
++
++You should have already done this by the time you're reading this. If not,
++go back and read README.
++
++1. Set up your Ethernet hardware
++--------------------------------
++
++First, make sure the Ethernet card you intend to use with the modem is
++visible to the Linux kernel. Just how to do this is beyond the scope
++of this document. However, if the card is the only Ethernet card in
++the system, executing:
++
++ ifconfig eth0
++
++should display something like this:
++
++ eth0 Link encap:Ethernet HWaddr 00:60:67:62:31:D4
++
++plust some more lines. Your HWaddr will be different. As long as you see
++the HWaddr line, your card should be working.
++
++DO NOT assign an IP address to the Ethernet card. DO NOT configure the
++card to come up at boot time.
++
++2. Configure various files
++--------------------------
++
++Several files need editing. The easiest way to do this is to run
++the following command as root:
++
++ adsl-setup
++
++Answer the questions and you should be all set. If you want to know what
++goes on behind the scenes, continue reading this document. If you don't
++care and your connection works, stop reading. :-)
++
++3. Edit pap-secrets
++-------------------
++
++Edit the &quot;pap-secrets&quot; file, inserting your proper user-ID and password.
++Install the file (or copy the relevant lines) to /etc/ppp/pap-secrets.
++Your ISP may use CHAP authentication. In this case, add the line to
++/etc/ppp/chap-secrets.
++
++4. Edit /etc/ppp/pppoe.conf
++-----------------------------
++
++The file /etc/ppp/pppoe.conf contains configuration information for the
++ADSL connection. You need to edit the following items:
++
++- Change ETH=eth1 to the correct Ethernet device for your modem.
++- Change USER=bxxxnxnx@sympatico.ca to your proper ADSL user-ID.
++
++Don't edit any of the other settings unless you're an expert.
++
++5. Set up DNS
++-------------
++
++If you are using DNS servers supplied by your ISP, edit the file
++/etc/resolv.conf to contain these lines:
++
++ nameserver ip_addr_of_first_dns_server
++ nameserver ip_addr_of_second_dns_server
++
++For example:
++
++ nameserver 204.101.251.1
++ nameserver 204.101.251.2
++
++
++6. Firewall your machine
++------------------------
++
++MAKE SURE YOU FIREWALL YOUR MACHINE. A sample firewall script is given
++in the shell script &quot;firewall&quot; To install the script:
++
++a) Copy it to /etc/rc.d/init.d/firewall
++b) Type: chkconfig firewall on
++c) Start the firewall: sh /etc/rc.d/init.d/firewall start
++
++(The above procedure works ONLY on Red Hat-like systems.)
++
++You may want to tweak the script somewhat.
++
++7. Bring up the connection at boot time
++---------------------------------------
++
++On a Red Hat system, the installation procedure should have installed
++a script called /etc/rc.d/init.d/adsl. To bring up the connection
++at boot time, just type this command as root:
++
++ chkconfig --add adsl
++
++On non-Red-Hat systems, add this line to the end
++of /etc/rc.d/rc.local:
++
++ /usr/sbin/adsl-start
++
++8. Configure LAN Hosts
++----------------------
++
++If you have a LAN behind the firewall, you have to lower the TCP
++maximum segment size from the normal 1460 to 1452 (or better, 1412.)
++You have two options: Either set the MTU of all the interfaces on
++other hosts on the LAN to 1452, or use the &quot;-m 1412&quot; option to pppoe.
++The &quot;-m&quot; option for pppoe is far simpler and makes it easier to add
++hosts to the LAN, but consumes some extra CPU time.
++
++If you want to manually configure the LAN hosts, here's how:
++
++In Linux, use: &quot;ifconfig eth0 mtu 1452&quot;. For best results, put this
++in an /etc/rc.d/rc.local script.
++
++For Windows, machines, see http://lan.cns.ksu.edu/OS/WIN95/slip95.htm.
++Set the MaxMTU to 1452.
++
++9. Commands to control the ADSL link
++------------------------------------
++
++As root, bring up the link by typing: adsl-start
++As root, bring down the link by typing: adsl-stop
++
++That's it!
++
++--
++David F. Skoll &lt;dfs@roaringpenguin.com&gt; | Roaring Penguin Software Inc.
++http://www.roaringpenguin.com | Linux and UNIX Specialists
++
++PROBLEMS! DAVE, IT DOESN'T WORK!
++---------------------------------
++
++Here are some problems PPPoE users have encountered.
++
++-----------------------------------------------------------------------------
++A) Can't see the Ethernet interface
++
++Well, I can't really help you here. To use these instructions, you must
++have Linux working to the point where it recognizes your Ethernet card.
++If you type &quot;ifconfig ethx&quot; and you get back a HWAddr value, your Ethernet
++card is probably OK. But I really can't help with hardware configuration
++issues.
++
++-----------------------------------------------------------------------------
++B) Connection seems to come up, but I can't browse the web or ping anything
++
++You probably don't have DNS set up. See step 6.
++
++-----------------------------------------------------------------------------
++C) Can't compile PPPoE
++
++I have only tested compilation on 2.2-kernel machines. Make sure you have
++&quot;make&quot;, the C compiler and all development header files installed.
++
++-----------------------------------------------------------------------------
++D) pppd complains about (i) &quot;unknown option pty&quot; or (ii) &quot;pty option precludes
++ specifying device name&quot;
++
++(i) Your pppd is too old. You need at least 2.3.7.
++(ii) Your /etc/ppp/options file is not empty. Empty it!
++
++-----------------------------------------------------------------------------
++E) pppoe dies with the log message &quot;Message too long&quot;
++
++You set the MTU of the Ethernet interface connected to the ADSL modem
++to less than 1500. Don't do that.
++
++-----------------------------------------------------------------------------
++F) Internal hosts can't see the Internet
++
++Do you have masquerading set up? I can't help you in great detail, but
++see the IPCHAINS-HOWTO and the IP-Masquerade mini-HOWTO.
++
++-----------------------------------------------------------------------------
++G) Authentication fails
++
++Make sure you have the right secret in /etc/ppp/pap-secrets. Your ISP
++may be using CHAP; it won't hurt to copy the line to /etc/ppp/chap-secrets.
++
++Also, MAKE SURE that /etc/ppp/options is EMPTY. The &quot;adsl-connect&quot; script
++supplies all required options on the command line; additional options
++in /etc/ppp/options may mess things up.
++
++-----------------------------------------------------------------------------
++H) VPN software does not work
++
++If you are using VPN software on a Windows or Linux machine with another
++Linux machine running PPPoE as the gateway, you MUST NOT use the &quot;-m&quot; option
++to pppoe. This alters IP packets, which will break any VPN which uses IPSec.
++In /etc/ppp/pppoe.conf, set CLAMPMSS to &quot;no&quot;. You'll also have to reduce
++the MTU on the hosts behind the gateway to 1452.
++
++-----------------------------------------------------------------------------
++I) I can browse some web sites just fine, but others stall forever.
++
++There is probably a buggy router or firewall between you and the Web server.
++One possible workaround: In /etc/ppp/pppoe.conf, find the line which reads:
++
++ CLAMPMSS=1412
++
++Try lowering the 1412 until it works (go down in steps of 100 or so.) Each
++time you lower the value, you have to restart your connection like this:
++
++ adsl-stop; adsl-start
++
++This should work around buggy routers which do not support Path MTU discovery.
++
++-----------------------------------------------------------------------------
++J) Whenever I connect using ADSL, my internal LAN no longer sees the gateway
++
++You are more than likely running a 2.0.X Linux kernel. To solve this
++problem, give the Ethernet card connected to the DSL modem a fake IP
++address. For example, if eth0 is your internal LAN card and eth1 goes to
++the DSL modem, do something like this:
++
++ ifconfig eth1 10.0.0.1 netmask 255.255.255.0
++
++(You may have to choose a different IP address; experiment.)
++-----------------------------------------------------------------------------
++K) How can I run a script every time I connect and get a new IP address?
++
++Put the script in /etc/ppp/ip-up. See the pppd(8) man page.
++-----------------------------------------------------------------------------
++L) Nothing works!
++
++You may need to put your Ethernet card in half-duplex, 10Mb/s mode to
++work with the DSL modem. You may have to run a DOS program to do this,
++or pass special parameters to the Linux driver.
++
++Some providers object to attempts to set the MRU or MTU. Try removing
++&quot;mtu 1492 mru 1492&quot; from PPP_STD_OPTIONS in the adsl-connect script.
++This problem has been seen with an ISP in Hong Kong.
++
++Your DSL provider may be using non-standard PPPoE frames or require
++something special in the Service-Name field. If you have two computers,
++you can try sniffing out these values with the &quot;pppoe-sniff&quot; program.
++Type &quot;man pppoe-sniff&quot; for details. If you don't have two computers,
++you'll have to ask your DSL provider if it uses non-standard PPPoE frames
++or special Service-Name fields. Good luck getting an answer...
++
++If pppoe-sniff indicates that nothing is amiss, make sure the Ethernet
++card associated with the ADSL modem does NOT have a valid IP address.
++(NOTE: For 2.0 kernels, you may have to give it a fake IP address
++which is not on your internal subnet. Something like 192.168.42.42
++might work if you are not using 192.168.42.*)
++
++If you are using synchronous PPP on a slow machine, try switching to
++asynchronous PPP.
++
++Make sure no entries in the routing table go through the Ethernet card
++connected to the ADSL modem. You might want to add these lines in
++adsl-connect:
++
++ ifconfig ethx down
++ ifconfig ethx up mtu 1500
++
++which should reset things to sane values.
++
++#######################################################################
++# WHEN ALL ELSE FAILS: #
++#######################################################################
++
++If you are completely unable to connect, run the adsl-start script in
++debugging mode. If you are using bash as your shell (if you don't
++know what your shell is, it's probably bash), type this:
++
++ DEBUG=1 adsl-start
++
++In tcsh or csh, use:
++
++ setenv DEBUG 1; adsl-start
++
++Then follow the instructions to mail the debugging file to me. PLEASE
++DON'T DO THIS until you have exhausted all other avenues; rp-pppoe is
++free software and it costs me time and money to help people with
++problems. While I don't mind doing this, I do mind it if you don't
++make an effort to fix the problem yourself first.
++
++WARNING: If you run adsl-start in debugging mode and you manage to
++connect, your connection will be extremely slow and huge amounts of
++data will quickly fill your /tmp directory. Do not use debugging mode
++unless you really cannot get your connection to work.
++
++Be aware that debugging mode produces hex dumps which potentially reveal
++your user name and password. If the debugging output includes packets
++labeled &quot;PPPOE Session&quot;, you may wish to remove these packets from the
++dump before mailing it to me.
+
+<a id="drakxtrunkmdkstage1rppppoedocKERNELMODEPPPOE">Added: drakx/trunk/mdk-stage1/rp-pppoe/doc/KERNEL-MODE-PPPOE</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/doc/KERNEL-MODE-PPPOE (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/doc/KERNEL-MODE-PPPOE 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,39 @@
++RP-PPPoE now supports kernel-mode PPPoE on Linux kernels 2.4.x. However,
++the default &quot;./go&quot; build procedure does not make kernel-mode support.
++
++Here's what you need to do:
++
++1) Download Michal Ostrowski's patched version of pppd which supports
++a PPPoE plugin. The latest version as of this writing is
++at http://www.math.uwaterloo.ca/~mostrows/ in
++http://www.math.uwaterloo.ca/~mostrows/ppp-2.4.0-pppoe4.tgz. It is
++also mirrored at http://www.roaringpenguin.com/pppoe/
++
++2) Unpack that version of pppd and build and install it.
++
++3) In the rp-pppoe directory, change to src/ and type:
++
++ ./configure --enable-plugin=/path/to/ppp-tree
++
++Here, /path/to/ppp-tree is where you unpacked the pppd software. It
++should be the directory named ppp-2.4.0.pppoe
++
++4) Type make; make install
++
++5) Edit /etc/ppp/pppoe.conf to include this line:
++
++ LINUX_PLUGIN=/etc/ppp/plugins/rp-pppoe.so
++
++6) Make sure your kernel was built with support for PPP, PPPOX and that
++all modules are locatable by modprobe. Make sure you have a /dev/ppp
++device:
++
++ mknod /dev/ppp c 108 0
++
++After that, adsl-start should use kernel-mode PPPoE.
++
++This code is experimental and unsupported. Use at your own risk.
++
++--
++David F. Skoll &lt;dfs@roaringpenguin.com&gt;
++
+
+<a id="drakxtrunkmdkstage1rppppoedocLICENSE">Added: drakx/trunk/mdk-stage1/rp-pppoe/doc/LICENSE</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/doc/LICENSE (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/doc/LICENSE 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,339 @@
++ GNU GENERAL PUBLIC LICENSE
++ Version 2, June 1991
++
++ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
++ 675 Mass Ave, Cambridge, MA 02139, USA
++ Everyone is permitted to copy and distribute verbatim copies
++ of this license document, but changing it is not allowed.
++
++ Preamble
++
++ The licenses for most software are designed to take away your
++freedom to share and change it. By contrast, the GNU General Public
++License is intended to guarantee your freedom to share and change free
++software--to make sure the software is free for all its users. This
++General Public License applies to most of the Free Software
++Foundation's software and to any other program whose authors commit to
++using it. (Some other Free Software Foundation software is covered by
++the GNU Library General Public License instead.) You can apply it to
++your programs, too.
++
++ When we speak of free software, we are referring to freedom, not
++price. Our General Public Licenses are designed to make sure that you
++have the freedom to distribute copies of free software (and charge for
++this service if you wish), that you receive source code or can get it
++if you want it, that you can change the software or use pieces of it
++in new free programs; and that you know you can do these things.
++
++ To protect your rights, we need to make restrictions that forbid
++anyone to deny you these rights or to ask you to surrender the rights.
++These restrictions translate to certain responsibilities for you if you
++distribute copies of the software, or if you modify it.
++
++ For example, if you distribute copies of such a program, whether
++gratis or for a fee, you must give the recipients all the rights that
++you have. You must make sure that they, too, receive or can get the
++source code. And you must show them these terms so they know their
++rights.
++
++ We protect your rights with two steps: (1) copyright the software, and
++(2) offer you this license which gives you legal permission to copy,
++distribute and/or modify the software.
++
++ Also, for each author's protection and ours, we want to make certain
++that everyone understands that there is no warranty for this free
++software. If the software is modified by someone else and passed on, we
++want its recipients to know that what they have is not the original, so
++that any problems introduced by others will not reflect on the original
++authors' reputations.
++
++ Finally, any free program is threatened constantly by software
++patents. We wish to avoid the danger that redistributors of a free
++program will individually obtain patent licenses, in effect making the
++program proprietary. To prevent this, we have made it clear that any
++patent must be licensed for everyone's free use or not licensed at all.
++
++ The precise terms and conditions for copying, distribution and
++modification follow.
++
++ GNU GENERAL PUBLIC LICENSE
++ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
++
++ 0. This License applies to any program or other work which contains
++a notice placed by the copyright holder saying it may be distributed
++under the terms of this General Public License. The &quot;Program&quot;, below,
++refers to any such program or work, and a &quot;work based on the Program&quot;
++means either the Program or any derivative work under copyright law:
++that is to say, a work containing the Program or a portion of it,
++either verbatim or with modifications and/or translated into another
++language. (Hereinafter, translation is included without limitation in
++the term &quot;modification&quot;.) Each licensee is addressed as &quot;you&quot;.
++
++Activities other than copying, distribution and modification are not
++covered by this License; they are outside its scope. The act of
++running the Program is not restricted, and the output from the Program
++is covered only if its contents constitute a work based on the
++Program (independent of having been made by running the Program).
++Whether that is true depends on what the Program does.
++
++ 1. You may copy and distribute verbatim copies of the Program's
++source code as you receive it, in any medium, provided that you
++conspicuously and appropriately publish on each copy an appropriate
++copyright notice and disclaimer of warranty; keep intact all the
++notices that refer to this License and to the absence of any warranty;
++and give any other recipients of the Program a copy of this License
++along with the Program.
++
++You may charge a fee for the physical act of transferring a copy, and
++you may at your option offer warranty protection in exchange for a fee.
++
++ 2. You may modify your copy or copies of the Program or any portion
++of it, thus forming a work based on the Program, and copy and
++distribute such modifications or work under the terms of Section 1
++above, provided that you also meet all of these conditions:
++
++ a) You must cause the modified files to carry prominent notices
++ stating that you changed the files and the date of any change.
++
++ b) You must cause any work that you distribute or publish, that in
++ whole or in part contains or is derived from the Program or any
++ part thereof, to be licensed as a whole at no charge to all third
++ parties under the terms of this License.
++
++ c) If the modified program normally reads commands interactively
++ when run, you must cause it, when started running for such
++ interactive use in the most ordinary way, to print or display an
++ announcement including an appropriate copyright notice and a
++ notice that there is no warranty (or else, saying that you provide
++ a warranty) and that users may redistribute the program under
++ these conditions, and telling the user how to view a copy of this
++ License. (Exception: if the Program itself is interactive but
++ does not normally print such an announcement, your work based on
++ the Program is not required to print an announcement.)
++
++These requirements apply to the modified work as a whole. If
++identifiable sections of that work are not derived from the Program,
++and can be reasonably considered independent and separate works in
++themselves, then this License, and its terms, do not apply to those
++sections when you distribute them as separate works. But when you
++distribute the same sections as part of a whole which is a work based
++on the Program, the distribution of the whole must be on the terms of
++this License, whose permissions for other licensees extend to the
++entire whole, and thus to each and every part regardless of who wrote it.
++
++Thus, it is not the intent of this section to claim rights or contest
++your rights to work written entirely by you; rather, the intent is to
++exercise the right to control the distribution of derivative or
++collective works based on the Program.
++
++In addition, mere aggregation of another work not based on the Program
++with the Program (or with a work based on the Program) on a volume of
++a storage or distribution medium does not bring the other work under
++the scope of this License.
++
++ 3. You may copy and distribute the Program (or a work based on it,
++under Section 2) in object code or executable form under the terms of
++Sections 1 and 2 above provided that you also do one of the following:
++
++ a) Accompany it with the complete corresponding machine-readable
++ source code, which must be distributed under the terms of Sections
++ 1 and 2 above on a medium customarily used for software interchange; or,
++
++ b) Accompany it with a written offer, valid for at least three
++ years, to give any third party, for a charge no more than your
++ cost of physically performing source distribution, a complete
++ machine-readable copy of the corresponding source code, to be
++ distributed under the terms of Sections 1 and 2 above on a medium
++ customarily used for software interchange; or,
++
++ c) Accompany it with the information you received as to the offer
++ to distribute corresponding source code. (This alternative is
++ allowed only for noncommercial distribution and only if you
++ received the program in object code or executable form with such
++ an offer, in accord with Subsection b above.)
++
++The source code for a work means the preferred form of the work for
++making modifications to it. For an executable work, complete source
++code means all the source code for all modules it contains, plus any
++associated interface definition files, plus the scripts used to
++control compilation and installation of the executable. However, as a
++special exception, the source code distributed need not include
++anything that is normally distributed (in either source or binary
++form) with the major components (compiler, kernel, and so on) of the
++operating system on which the executable runs, unless that component
++itself accompanies the executable.
++
++If distribution of executable or object code is made by offering
++access to copy from a designated place, then offering equivalent
++access to copy the source code from the same place counts as
++distribution of the source code, even though third parties are not
++compelled to copy the source along with the object code.
++
++ 4. You may not copy, modify, sublicense, or distribute the Program
++except as expressly provided under this License. Any attempt
++otherwise to copy, modify, sublicense or distribute the Program is
++void, and will automatically terminate your rights under this License.
++However, parties who have received copies, or rights, from you under
++this License will not have their licenses terminated so long as such
++parties remain in full compliance.
++
++ 5. You are not required to accept this License, since you have not
++signed it. However, nothing else grants you permission to modify or
++distribute the Program or its derivative works. These actions are
++prohibited by law if you do not accept this License. Therefore, by
++modifying or distributing the Program (or any work based on the
++Program), you indicate your acceptance of this License to do so, and
++all its terms and conditions for copying, distributing or modifying
++the Program or works based on it.
++
++ 6. Each time you redistribute the Program (or any work based on the
++Program), the recipient automatically receives a license from the
++original licensor to copy, distribute or modify the Program subject to
++these terms and conditions. You may not impose any further
++restrictions on the recipients' exercise of the rights granted herein.
++You are not responsible for enforcing compliance by third parties to
++this License.
++
++ 7. If, as a consequence of a court judgment or allegation of patent
++infringement or for any other reason (not limited to patent issues),
++conditions are imposed on you (whether by court order, agreement or
++otherwise) that contradict the conditions of this License, they do not
++excuse you from the conditions of this License. If you cannot
++distribute so as to satisfy simultaneously your obligations under this
++License and any other pertinent obligations, then as a consequence you
++may not distribute the Program at all. For example, if a patent
++license would not permit royalty-free redistribution of the Program by
++all those who receive copies directly or indirectly through you, then
++the only way you could satisfy both it and this License would be to
++refrain entirely from distribution of the Program.
++
++If any portion of this section is held invalid or unenforceable under
++any particular circumstance, the balance of the section is intended to
++apply and the section as a whole is intended to apply in other
++circumstances.
++
++It is not the purpose of this section to induce you to infringe any
++patents or other property right claims or to contest validity of any
++such claims; this section has the sole purpose of protecting the
++integrity of the free software distribution system, which is
++implemented by public license practices. Many people have made
++generous contributions to the wide range of software distributed
++through that system in reliance on consistent application of that
++system; it is up to the author/donor to decide if he or she is willing
++to distribute software through any other system and a licensee cannot
++impose that choice.
++
++This section is intended to make thoroughly clear what is believed to
++be a consequence of the rest of this License.
++
++ 8. If the distribution and/or use of the Program is restricted in
++certain countries either by patents or by copyrighted interfaces, the
++original copyright holder who places the Program under this License
++may add an explicit geographical distribution limitation excluding
++those countries, so that distribution is permitted only in or among
++countries not thus excluded. In such case, this License incorporates
++the limitation as if written in the body of this License.
++
++ 9. The Free Software Foundation may publish revised and/or new versions
++of the General Public License from time to time. Such new versions will
++be similar in spirit to the present version, but may differ in detail to
++address new problems or concerns.
++
++Each version is given a distinguishing version number. If the Program
++specifies a version number of this License which applies to it and &quot;any
++later version&quot;, you have the option of following the terms and conditions
++either of that version or of any later version published by the Free
++Software Foundation. If the Program does not specify a version number of
++this License, you may choose any version ever published by the Free Software
++Foundation.
++
++ 10. If you wish to incorporate parts of the Program into other free
++programs whose distribution conditions are different, write to the author
++to ask for permission. For software which is copyrighted by the Free
++Software Foundation, write to the Free Software Foundation; we sometimes
++make exceptions for this. Our decision will be guided by the two goals
++of preserving the free status of all derivatives of our free software and
++of promoting the sharing and reuse of software generally.
++
++ NO WARRANTY
++
++ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
++FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
++OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
++PROVIDE THE PROGRAM &quot;AS IS&quot; WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
++OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
++MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
++TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
++PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
++REPAIR OR CORRECTION.
++
++ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
++WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
++REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
++INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
++OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
++TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
++YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
++PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
++POSSIBILITY OF SUCH DAMAGES.
++
++ END OF TERMS AND CONDITIONS
++
++ Appendix: How to Apply These Terms to Your New Programs
++
++ If you develop a new program, and you want it to be of the greatest
++possible use to the public, the best way to achieve this is to make it
++free software which everyone can redistribute and change under these terms.
++
++ To do so, attach the following notices to the program. It is safest
++to attach them to the start of each source file to most effectively
++convey the exclusion of warranty; and each file should have at least
++the &quot;copyright&quot; line and a pointer to where the full notice is found.
++
++ &lt;one line to give the program's name and a brief idea of what it does.&gt;
++ Copyright (C) 19yy &lt;name of author&gt;
++
++ This program is free software; you can redistribute it and/or modify
++ it under the terms of the GNU General Public License as published by
++ the Free Software Foundation; either version 2 of the License, or
++ (at your option) any later version.
++
++ This program is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ GNU General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program; if not, write to the Free Software
++ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++
++Also add information on how to contact you by electronic and paper mail.
++
++If the program is interactive, make it output a short notice like this
++when it starts in an interactive mode:
++
++ Gnomovision version 69, Copyright (C) 19yy name of author
++ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
++ This is free software, and you are welcome to redistribute it
++ under certain conditions; type `show c' for details.
++
++The hypothetical commands `show w' and `show c' should show the appropriate
++parts of the General Public License. Of course, the commands you use may
++be called something other than `show w' and `show c'; they could even be
++mouse-clicks or menu items--whatever suits your program.
++
++You should also get your employer (if you work as a programmer) or your
++school, if any, to sign a &quot;copyright disclaimer&quot; for the program, if
++necessary. Here is a sample; alter the names:
++
++ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
++ `Gnomovision' (which makes passes at compilers) written by James Hacker.
++
++ &lt;signature of Ty Coon&gt;, 1 April 1989
++ Ty Coon, President of Vice
++
++This General Public License does not permit incorporating your program into
++proprietary programs. If your program is a subroutine library, you may
++consider it more useful to permit linking proprietary applications with the
++library. If this is what you want to do, use the GNU Library General
++Public License instead of this License.
+
+<a id="drakxtrunkmdkstage1rppppoedocPROBLEMS">Added: drakx/trunk/mdk-stage1/rp-pppoe/doc/PROBLEMS</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/doc/PROBLEMS (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/doc/PROBLEMS 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,3 @@
++Problems?
++
++See the last section of HOW-TO-CONNECT.
+
+<a id="drakxtrunkmdkstage1rppppoego">Added: drakx/trunk/mdk-stage1/rp-pppoe/go</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/go (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/go 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,43 @@
++#!/bin/sh
++#***********************************************************************
++#
++# go
++#
++# Quick-start shell script to set up ADSL
++#
++# Copyright (C) 2000 Roaring Penguin Software Inc.
++#
++# $Id: go 195724 2001-06-11 13:49:39Z gc $
++#***********************************************************************
++
++# Figure out directory of script
++MYDIR=`dirname $0`
++cd $MYDIR/src
++
++echo &quot;Running ./configure...&quot;
++./configure
++if [ &quot;$?&quot; != 0 ] ; then
++ echo &quot;Oops! It looks like ./configure failed.&quot;
++ exit 1
++fi
++
++echo &quot;Running make...&quot;
++make
++if [ &quot;$?&quot; != 0 ] ; then
++ echo &quot;Oops! It looks like make failed.&quot;
++ exit 1
++fi
++
++echo &quot;Running make install...&quot;
++make install
++
++if [ &quot;$?&quot; != 0 ] ; then
++ echo &quot;Oops! It looks like make install failed.&quot;
++ exit 1
++fi
++
++for i in a a a a a a a a a a a a a a a a a a a a a a a a a a a a ; do
++ echo &quot;&quot;
++done
++
++sh ../scripts/adsl-setup
+
+
+Property changes on: drakx/trunk/mdk-stage1/rp-pppoe/go
+___________________________________________________________________
+Added: svn:executable
+ + *
+
+<a id="drakxtrunkmdkstage1rppppoegogui">Added: drakx/trunk/mdk-stage1/rp-pppoe/go-gui</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/go-gui (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/go-gui 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,92 @@
++#!/bin/sh
++#***********************************************************************
++#
++# go-gui
++#
++# Quick-start shell script to set up ADSL and GUI wrapper
++#
++# Copyright (C) 2000 Roaring Penguin Software Inc.
++#
++# $Id: go-gui 195724 2001-06-11 13:49:39Z gc $
++#***********************************************************************
++
++# GUI only works on Linux
++if test &quot;`uname`&quot; != &quot;Linux&quot; ; then
++ echo &quot;Sorry, the GUI only works on Linux.&quot;
++ exit 1
++fi
++
++# Figure out directory of script
++MYDIR=`dirname $0`
++cd $MYDIR/src
++
++echo &quot;Running ./configure...&quot;
++./configure
++if [ &quot;$?&quot; != 0 ] ; then
++ echo &quot;Oops! It looks like ./configure failed.&quot;
++ exit 1
++fi
++
++echo &quot;Running make...&quot;
++make
++if [ &quot;$?&quot; != 0 ] ; then
++ echo &quot;Oops! It looks like make failed.&quot;
++ exit 1
++fi
++
++echo &quot;Running make install...&quot;
++make install
++
++if [ &quot;$?&quot; != 0 ] ; then
++ echo &quot;Oops! It looks like make install failed.&quot;
++ exit 1
++fi
++
++echo &quot;Building GUI wrapper...&quot;
++cd ../gui
++make
++if [ &quot;$?&quot; != 0 ] ; then
++ echo &quot;Oops! It looks like make failed.&quot;
++ exit 1
++fi
++
++echo &quot;Installing GUI...&quot;
++make install
++
++if [ &quot;$?&quot; != 0 ] ; then
++ echo &quot;Oops! It looks like make install failed.&quot;
++ exit 1
++fi
++
++# Install entry in KDE menu
++if test -n &quot;$KDEDIR&quot; ; then
++ echo &quot;Installing KDE menu entry Internet : TkPPPoE...&quot;
++ mkdir -p &quot;$KDEDIR/share/applnk/Internet&quot;
++ cat &lt;&lt;EOF &gt; &quot;$KDEDIR/share/applnk/Internet/tkpppoe.kdelnk&quot;
++# KDE Config File
++[KDE Desktop Entry]
++Name=TkPPPoE
++Comment=Start/Stop ADSL connections
++Exec=tkpppoe
++Terminal=0
++Type=Application
++EOF
++fi
++
++# Install entry in GNOME menus
++GNOMEDIR=`gnome-config --datadir 2&gt;/dev/null`
++if test -n &quot;$GNOMEDIR&quot; ; then
++ echo &quot;Installing GNOME menu entry Internet : TkPPPoE...&quot;
++ mkdir -p &quot;$GNOMEDIR/gnome/apps/Internet&quot;
++cat &lt;&lt;EOF &gt; &quot;$GNOMEDIR/gnome/apps/Internet/tkpppoe.desktop&quot;
++[Desktop Entry]
++Name=TkPPPoE
++Comment=Start/Stop ADSL connections
++Exec=tkpppoe
++Terminal=0
++Type=Application
++EOF
++fi
++echo &quot;Running GUI configuration tool...&quot;
++tkpppoe &amp;
++exit 0
+
+
+Property changes on: drakx/trunk/mdk-stage1/rp-pppoe/go-gui
+___________________________________________________________________
+Added: svn:executable
+ + *
+
+<a id="drakxtrunkmdkstage1rppppoeguiMakefilein">Added: drakx/trunk/mdk-stage1/rp-pppoe/gui/Makefile.in</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/gui/Makefile.in (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/gui/Makefile.in 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,64 @@
++# @configure_input@
++#***********************************************************************
++#
++# Makefile
++#
++# Makefile for GUI for Roaring Penguin's Linux user-space PPPoE client.
++#
++# Copyright (C) 2001 Roaring Penguin Software Inc.
++#
++# This program may be distributed according to the terms of the GNU
++# General Public License, version 2 or (at your option) any later version.
++#
++# $Id: Makefile.in 195724 2001-06-11 13:49:39Z gc $
++#***********************************************************************
++DEFINES=
++prefix=@prefix@
++exec_prefix=@exec_prefix@
++mandir=@mandir@
++install=@INSTALL@
++install_dir=@INSTALL@ -d
++sbindir=@sbindir@
++bindir=@bindir@
++
++ADSL_START_PATH=@sbindir@/adsl-start
++ADSL_STOP_PATH=@sbindir@/adsl-stop
++ADSL_STATUS_PATH=@sbindir@/adsl-status
++
++PATHS='-DADSL_START_PATH=&quot;$(ADSL_START_PATH)&quot;' '-DADSL_STOP_PATH=&quot;$(ADSL_STOP_PATH)&quot;' '-DADSL_STATUS_PATH=&quot;$(ADSL_STATUS_PATH)&quot;'
++
++CFLAGS= @CFLAGS@ $(DEFINES) $(PATHS)
++
++all: pppoe-wrapper
++ @echo &quot;&quot;
++ @echo &quot;Type 'make install' as root to install the software.&quot;
++
++pppoe-wrapper: wrapper.o
++ @CC@ -o pppoe-wrapper wrapper.o
++
++wrapper.o: wrapper.c
++ @CC@ $(CFLAGS) -c -o wrapper.o wrapper.c
++
++install: all
++ -mkdir -p $(RPM_INSTALL_ROOT)$(sbindir)
++ -mkdir -p $(RPM_INSTALL_ROOT)$(bindir)
++ -mkdir -p $(RPM_INSTALL_ROOT)/etc/ppp/rp-pppoe-gui
++ $(install) -m 4755 -s pppoe-wrapper $(RPM_INSTALL_ROOT)$(sbindir)
++ $(install) -m 755 tkpppoe $(RPM_INSTALL_ROOT)$(bindir)
++ -mkdir -p $(RPM_INSTALL_ROOT)$(mandir)/man1
++ $(install) -m 644 pppoe-wrapper.1 $(RPM_INSTALL_ROOT)$(mandir)/man1
++ $(install) -m 644 tkpppoe.1 $(RPM_INSTALL_ROOT)$(mandir)/man1
++ -mkdir -p $(RPM_INSTALL_ROOT)/usr/share/rp-pppoe-gui
++ for i in tkpppoe.html mainwin-busy.png mainwin-nonroot.png mainwin.png props-advanced.png props-basic.png props-nic.png props-options.png ; do \
++ $(install) -m 644 html/$$i $(RPM_INSTALL_ROOT)/usr/share/rp-pppoe-gui; \
++ done
++
++clean:
++ rm -f *.o *~ pppoe-wrapper
++
++distclean: clean
++ rm -f Makefile tkpppoe
++
++.PHONY: clean
++
++.PHONY: distclean
+
+<a id="drakxtrunkmdkstage1rppppoeguihtmltkpppoehtml">Added: drakx/trunk/mdk-stage1/rp-pppoe/gui/html/tkpppoe.html</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/gui/html/tkpppoe.html (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/gui/html/tkpppoe.html 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,181 @@
++&lt;!doctype html public &quot;-//w3c//dtd html 4.0 transitional//en&quot;&gt;
++&lt;html&gt;
++&lt;head&gt;
++ &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=iso-8859-1&quot;&gt;
++ &lt;meta name=&quot;GENERATOR&quot; content=&quot;Mozilla/4.76 [en] (X11; U; Linux 2.2.14-5.0 i686) [Netscape]&quot;&gt;
++ &lt;title&gt;TkPPPoE Manual&lt;/title&gt;
++&lt;/head&gt;
++&lt;body text=&quot;#000000&quot; bgcolor=&quot;#FFFFFF&quot; link=&quot;#0000EF&quot; vlink=&quot;#59188E&quot; alink=&quot;#FF0000&quot;&gt;
++
++&lt;center&gt;
++&lt;h1&gt;tkpppoe - A GUI for managing PPPoE Connections&lt;/h1&gt;
++&lt;/center&gt;
++
++&lt;h1&gt;Introduction&lt;/h1&gt;
++
++TkPPPoE is a graphical user interface for managing PPPoE connections. It
++performs two different functions:
++&lt;ul&gt;
++&lt;li&gt;TkPPPoE lets you &lt;em&gt;define&lt;/em&gt; connection properties. This step must
++be done as root.
++&lt;li&gt;TkPPPoE lets you &lt;em&gt;start and stop&lt;/em&gt; PPPoE connections. This step
++may be done as a normal user, depending on how you configured the connection.
++&lt;/ul&gt;
++
++&lt;h1&gt;Defining Connections&lt;/h1&gt;
++
++To define connections, start TkPPPoE as root. You can do this from
++a terminal by typing &lt;code&gt;tkpppoe&lt;/code&gt;, or from the KDE or GNOME menus
++by selecting &lt;b&gt;Internet : TkPPPoE&lt;/b&gt;. The following window pops up:
++
++&lt;p&gt;
++&lt;center&gt;&lt;img src=&quot;mainwin.png&quot; width=&quot;361&quot; height=&quot;73&quot; alt=&quot;Main Window&quot;&gt;
++&lt;/center&gt;
++
++&lt;p&gt;
++Because you have not yet defined any connections, the connection property
++window also pops up:
++
++&lt;p&gt;
++&lt;center&gt;&lt;img src=&quot;props-basic.png&quot; width=&quot;440&quot; height=&quot;259&quot; alt=&quot;Connection Properties - Basic&quot;&gt;
++&lt;/center&gt;
++
++You can pop up the connection property window at any time by clicking
++&lt;b&gt;New Connection...&lt;/b&gt; You can edit the properties of an existing
++connection by selecting the connection's name and clicking
++&lt;b&gt;Properties...&lt;/b&gt;
++&lt;h4&gt;Basic Information&lt;/h4&gt;
++
++Let's fill in the basic information:
++&lt;ul&gt;
++&lt;li&gt;For &lt;b&gt;Connection Name&lt;/b&gt;, enter a unique name for this connection. It
++can be anything you like, but must contain only letters, numbers, underscores
++or dashes. In particular, it can't contain spaces. If you have only one
++PPPoE connection, a good name is &lt;b&gt;Default&lt;/b&gt;.
++&lt;li&gt;For &lt;b&gt;User Name&lt;/b&gt;, enter the user name supplied by your ISP. Enter
++only the user name; do not enter an &quot;@isp.com&quot; part.
++&lt;li&gt;For &lt;b&gt;Network&lt;/b&gt;, you may have to enter your ISP's domain name.
++(For example, &lt;b&gt;isp.com&lt;/b&gt;.) Some DSL providers add this to your user
++name; others do not. You may have to experiment a bit. The two most likely
++choices are your ISP's domain name, or blank. Try both.
++&lt;li&gt;For &lt;b&gt;Password&lt;/b&gt;, enter the password your ISP provided you with.
++&lt;/ul&gt;
++
++&lt;h4&gt;NIC and DNS&lt;/h4&gt;
++Click on the &lt;b&gt;NIC and DNS&lt;/b&gt; tab:
++
++&lt;p&gt;
++&lt;center&gt;&lt;img src=&quot;props-nic.png&quot; width=&quot;440&quot; height=&quot;259&quot; alt=&quot;Connection Properties - NIC and DNS&quot;&gt;&lt;/center&gt;
++&lt;p&gt;
++&lt;ul&gt;
++&lt;li&gt;For &lt;b&gt;Ethernet Interface&lt;/b&gt;, enter the Ethernet interface connected
++to the DSL modem. It is something like &lt;b&gt;eth0&lt;/b&gt; or &lt;b&gt;eth1&lt;/b&gt;. Click
++on &lt;b&gt;...&lt;/b&gt; to browse a list of detected Ethernet interfaces.
++&lt;li&gt;For &lt;b&gt;DNS Setup&lt;/b&gt;, you have three options:
++&lt;ol&gt;
++&lt;li&gt;&lt;b&gt;From Server&lt;/b&gt; means that the system will obtain DNS information from
++the PPPoE server. This is the correct choice for most ISPs.
++&lt;li&gt;&lt;b&gt;Specify&lt;/b&gt; means that you will enter the IP addresses of your DNS
++servers manually. In this case, enter the addresses in the &lt;b&gt;Primary DNS&lt;/b&gt;
++and &lt;b&gt;Secondary DNS&lt;/b&gt; entries.
++&lt;li&gt;&lt;b&gt;Do not Adjust&lt;/b&gt; means that you want RP-PPPoE to leave your
++DNS setup alone. Use this if you are running your own caching DNS server
++or know that you don't want the DNS setup touched.
++&lt;/ol&gt;
++&lt;/ul&gt;
++
++&lt;h4&gt;Options&lt;/h4&gt;
++Click on the &lt;b&gt;Options&lt;/b&gt; tab:
++
++&lt;p&gt;
++&lt;center&gt;&lt;img src=&quot;props-options.png&quot; width=&quot;440&quot; height=&quot;259&quot; alt=&quot;Connection Properties - Options&quot;&gt;&lt;/center&gt;
++&lt;p&gt;
++&lt;ul&gt;
++&lt;li&gt;If you want ordinary users to be able to start and stop this connection,
++enable &lt;b&gt;Allow use by non-root users&lt;/b&gt;. If you do not enable this,
++non-root users will be able to monitor the connection, but not control it.
++&lt;li&gt;If you want to use synchronous PPP, enable &lt;b&gt;Use synchronous PPP&lt;/b&gt;.
++This is recommended as it conserves CPU usage, but may not work on some
++(misconfigured) Linux kernels.
++&lt;li&gt;For &lt;b&gt;Firewalling&lt;/b&gt;, you have three options:
++&lt;ol&gt;
++&lt;li&gt;&lt;b&gt;Stand-Alone&lt;/b&gt; installs a simple firewall ruleset for stand-alone
++machines. Use this if you have only a single computer connected to the DSL
++modem.
++&lt;li&gt;&lt;b&gt;Masquerading&lt;/b&gt; installs a simple firewall ruleset for using
++your Linux computer as an Internet sharing device. If you have two Ethernet
++cards, you can connect one card to the DSL modem and the other to an
++internal LAN. The masquerading firewall ruleset lets internal machines
++share the DSL connection.
++&lt;li&gt;&lt;b&gt;None&lt;/b&gt;. If you already have your own firewall rules, or you wish
++to run servers on your machine, select None. This is &lt;em&gt;not recommended&lt;/em&gt;
++unless you take steps to secure your machine, and know what you are doing.
++&lt;/ol&gt;
++&lt;/ul&gt;
++
++&lt;h4&gt;Advanced&lt;/h4&gt;
++Click on the &lt;b&gt;Advanced&lt;/b&gt; tab:
++
++&lt;p&gt;
++&lt;center&gt;&lt;img src=&quot;props-advanced.png&quot; width=&quot;440&quot; height=&quot;259&quot; alt=&quot;Connection Properties - Advanced&quot;&gt;&lt;/center&gt;
++&lt;p&gt;
++
++In most cases, you can leave &lt;b&gt;AC-Name&lt;/b&gt; and &lt;b&gt;Service-Name&lt;/b&gt; blank.
++In some cases, your ISP may require you to enter information in these fields;
++contact your ISP for more information.
++
++&lt;h1&gt;Controlling Connections&lt;/h1&gt;
++For these examples, run &lt;code&gt;tkpppoe&lt;/code&gt; as a normal user (not root).
++The main window appears like this:
++
++&lt;p&gt;
++&lt;center&gt;&lt;img src=&quot;mainwin-nonroot.png&quot; width=&quot;206&quot; height=&quot;73&quot; alt=&quot;Main Window - Non-root&quot;&gt;
++&lt;/center&gt;
++&lt;p&gt;
++&lt;ul&gt;
++&lt;li&gt;To start a connection, press &lt;b&gt;Start&lt;/b&gt;. The two LEDs flash red
++and grey. If the connection is established, they turn green.
++&lt;li&gt;To stop a connection, press &lt;b&gt;Stop&lt;/b&gt;.
++&lt;/ul&gt;
++
++&lt;p&gt;The two rectangles to the right of the connection name are the
++&lt;em&gt;status LEDs&lt;/em&gt;. The top LED corresponds to transmitted data and
++the bottom to received. The LEDs are colored as follows:
++&lt;ul&gt;
++&lt;li&gt;Grey -- connection is not established.
++&lt;li&gt;Flashing red/grey -- connection is being started.
++&lt;li&gt;Green -- connection is up, but idle.
++&lt;li&gt;Yellow -- connection is up and data is being sent or received.
++&lt;li&gt;Red -- connection has been lost, but the system is trying to reestablish it.
++&lt;/ul&gt;
++
++&lt;p&gt;
++When a connection is established, two graphs appear:
++
++&lt;p&gt;
++&lt;center&gt;&lt;img src=&quot;mainwin-busy.png&quot; width=&quot;206&quot; height=&quot;73&quot; alt=&quot;Main Window - Established Connection&quot;&gt;
++&lt;/center&gt;
++&lt;p&gt;
++
++The left (red) graph shows transmitted packets and the average
++transmission speed (in bits per second) over the sample time. The
++right (green) graph shows received packets.
++
++&lt;h1&gt;Miscellaneous Information&lt;/h1&gt;
++&lt;ul&gt;
++&lt;li&gt;The connection menu has an entry called &lt;b&gt;User's Manual&lt;/b&gt; which
++will pop up this user manual (if you have Netscape installed.)
++&lt;li&gt;You can define multiple PPPoE connections, but you should not use
++more than one simultaneuously unless you feel comfortable editing scripts
++and setting up routing tables. By default, TkPPPoE tries to add a default
++route for connections. This does not work well with multiple simultaneous
++connections.
++&lt;li&gt;If you exit from TkPPPoE, connections which are up remain up. You
++have to explicitly stop connections if you want them terminated.
++&lt;/ul&gt;
++&lt;hr&gt;
++&lt;a href=&quot;http://www.roaringpenguin.com/pppoe/&quot;&gt;TkPPPoE&lt;/a&gt; is Copyright 2001 by &lt;a href=&quot;http://www.roaringpenguin.com&quot;&gt;Roaring Penguin Software Inc&lt;/a&gt; and
++is licensed under the GNU General Public License.
++&lt;p&gt;Screenshots show TkPPPoE running under the &lt;a href=&quot;http://www.xfce.org&quot;&gt;XFCE&lt;/a&gt; desktop, a lightweight UNIX and Linux desktop.
++&lt;/body&gt;
++&lt;/html&gt;
+
+<a id="drakxtrunkmdkstage1rppppoeguipppoewrapper1">Added: drakx/trunk/mdk-stage1/rp-pppoe/gui/pppoe-wrapper.1</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/gui/pppoe-wrapper.1 (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/gui/pppoe-wrapper.1 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,45 @@
++.\&quot; $Id: pppoe-wrapper.1 195724 2001-06-11 13:49:39Z gc $
++.TH PPPOE-WRAPPER 1 &quot;26 February 2001&quot;
++.UC 4
++.SH NAME
++pppoe-wrapper \- SUID wrapper for starting and stopping PPPoE connections.
++.SH SYNOPSIS
++.B pppoe-wrapper start linkname
++.P
++.B pppoe-wrapper stop linkname
++.P
++.B pppoe-wrapper status linkname
++
++.SH DESCRIPTION
++\fBpppoe-wrapper\fR is a small SUID program which allows non-root users
++to start and stop PPPoE links. It operates as follows:
++
++.TP
++.B o
++First, \fIlinkname\fR is sanity-checked. Too-long names and names containing
++illegal characters are rejected.
++
++.TP
++.B o
++Second, \fBpppoe-wrapper\fR opens the file \fB/etc/ppp/rp-pppoe-gui/\fR\fIlinkname\fR for reading. If that file does not contain the line:
++.nf
++
++ NONROOT=OK
++
++.fi
++then \fBpppoe-wrapper\fR fails.
++
++.TP
++.B o
++Otherwise, \fBpppoe-wrapper\fR runs \fBadsl-start\fR, \fBadsl-stop\fR or
++\fBadsl-status\fR with the above filename as its single argument.
++
++.SH AUTHOR
++\fBpppoe-wrapper\fR was written by David F. Skoll &lt;dfs@roaringpenguin.com&gt;.
++
++The \fBpppoe\fR home page is \fIhttp://www.roaringpenguin.com/pppoe/\fR.
++
++.SH SEE ALSO
++adsl-start(8), adsl-stop(8), adsl-status(8), tkpppoe(1)
++
++
+
+<a id="drakxtrunkmdkstage1rppppoeguitkpppoe1">Added: drakx/trunk/mdk-stage1/rp-pppoe/gui/tkpppoe.1</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/gui/tkpppoe.1 (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/gui/tkpppoe.1 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,36 @@
++.\&quot; $Id: tkpppoe.1 195724 2001-06-11 13:49:39Z gc $
++.TH TKPPPOE 1 &quot;26 February 2001&quot;
++.UC 4
++.SH NAME
++tkpppoe \- Graphical interface for controlling rp-pppoe
++.SH SYNOPSIS
++.B tkpppoe
++
++.SH DESCRIPTION
++\fBtkpppoe\fR is a graphical program for controlling PPPoE links.
++It works with the RP-PPPoE package and has its own HTML manual.
++
++.SH FILES
++
++.TP
++.B /etc/ppp/rp-pppoe-gui/connection-info
++Contains connection information. This file is not human-editable.
++
++.TP
++.B /etc/ppp/rp-pppoe-gui/passwd
++Contains passwords for each connection. This file is not human-editable.
++
++.TP
++.B /etc/ppp/rp-pppoe-gui/conf.*
++These configuration files are used by \fBadsl-start\fR. They are
++generated anew by \fBtkpppoe\fR each time a change is made to a
++connection's properties.
++
++.SH AUTHOR
++\fBtkpppoe\fR was written by David F. Skoll &lt;dfs@roaringpenguin.com&gt;.
++
++The \fBpppoe\fR home page is \fIhttp://www.roaringpenguin.com/pppoe/\fR.
++
++.SH SEE ALSO
++adsl-start(8), adsl-stop(8), pppoe-wrapper(8).
++
+
+<a id="drakxtrunkmdkstage1rppppoeguitkpppoein">Added: drakx/trunk/mdk-stage1/rp-pppoe/gui/tkpppoe.in</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/gui/tkpppoe.in (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/gui/tkpppoe.in 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,2891 @@
++#!/bin/sh
++# -*-Mode: TCL;-*-
++
++#--------------------------------------------------------------
++# tkpppoe
++#
++# A graphical front-end for configuring and using rp-pppoe.
++#
++# Copyright (C) 2001 by Roaring Penguin Software Inc.
++# This file may be distributed under the terms of the GNU General Public
++# License, Version 2, or (at your option) any later version.
++#
++# The &quot;Roaring Penguin&quot; logo is a trademark of Roaring Penguin Software Inc.
++#
++# http://www.roaringpenguin.com
++#
++#--------------------------------------------------------------
++
++# $Id: tkpppoe.in 195724 2001-06-11 13:49:39Z gc $
++
++# the next line restarts using wish \
++umask 022; \
++exec wish &quot;$0&quot; &quot;$@&quot; || clear; echo &quot;*****&quot;; echo &quot;Cannot find 'wish' -- you need Tcl/Tk installed to run this program&quot;; exit 1
++
++# Set app name
++tk appname TkPPPoE
++
++# Set this to one if you want to allow multiple instances of TkPPPoE
++set AllowMultipleInstances 0
++
++# Check for other instances
++if {&quot;[tk appname]&quot; != &quot;TkPPPoE&quot;} {
++ # Must be another instance running...
++ if {!$AllowMultipleInstances} {
++ send TkPPPoE AnotherInstance
++ exit 0
++ }
++}
++
++# Location of config directory
++set ConfigDir /etc/ppp/rp-pppoe-gui
++
++# Are we running as root?
++set Admin 0
++
++# Location of connection info file
++set ConnectionInfoFile [file join $ConfigDir connection-info]
++
++# Location of password file
++set PasswordFile [file join $ConfigDir passwd]
++
++# Location of &quot;already run&quot; file
++set AlreadyRunFile [file join $ConfigDir gui-already-run]
++
++# Connection information
++set ConnectionInfo {}
++
++# Connection options
++set OPTS(nonroot) 0
++set OPTS(sync) 1
++
++# Location of wrapper
++set Wrapper &quot;@WRAPPER@&quot;
++
++# Timer token for UpdateConnectionState
++set UpdateToken {}
++
++# Update interval in milliseconds
++set UpdateInterval 500
++
++# Packet counters for signalling activity
++set Packets(in) 0
++set Packets(out) 0
++set Bytes(in) 0
++set Bytes(out) 0
++set MeasureTime 0
++
++# Set up some options to make it look better
++option add *Button.borderWidth 1
++option add *Button.Pad 1
++option add *Menubutton.borderWidth 1
++option add *Menubutton.Pad 1
++option add *Entry.Background white
++
++# Array holding help strings for windows
++array set HelpData {}
++
++bind HelpWin &lt;Enter&gt; &quot;HelpWindowEntered %W&quot;
++bind HelpWin &lt;Leave&gt; &quot;HelpWindowLeft %W&quot;
++
++proc AnotherInstance {} {
++ wm deiconify .
++ raise .
++}
++
++#***********************************************************************
++# %PROCEDURE: HelpWindowEntered
++# %ARGUMENTS:
++# w -- window
++# %RETURNS:
++# Nothing
++# %DESCRIPTION:
++# Looks for procedure in HelpData; evals it if found.
++#***********************************************************************
++proc HelpWindowEntered { w } {
++ global HelpData
++ if {[info exists HelpData($w)]} {
++ set cmd &quot;$HelpData($w) Enter&quot;
++ uplevel #0 $cmd
++ }
++}
++
++#***********************************************************************
++# %PROCEDURE: HelpWindowLeft
++# %ARGUMENTS:
++# w -- window
++# %RETURNS:
++# Nothing
++# %DESCRIPTION:
++# Looks for procedure in HelpData; evals it if found.
++#***********************************************************************
++proc HelpWindowLeft { w } {
++ global HelpData
++ if {[info exists HelpData($w)]} {
++ set cmd &quot;$HelpData($w) Leave&quot;
++ uplevel #0 $cmd
++ }
++}
++
++#***********************************************************************
++# %PROCEDURE: RegisterHelpWindow
++# %ARGUMENTS:
++# w -- window we need help about
++# helptext -- the help text
++# win -- window in which to put help messages
++# %RETURNS:
++# Nothing
++# %DESCRIPTION:
++# Sets things up so help text appears in &quot;$win&quot; when mouse enters &quot;$w&quot;
++#***********************************************************************
++proc RegisterHelpWindow {w helptext win} {
++ global HelpData
++ set tags [bindtags $w]
++ if {[lsearch -exact $tags HelpWin] &lt; 0} {
++ lappend tags HelpWin
++ bindtags $w $tags
++ }
++ set HelpData($w) [list HelpInTextWin $helptext $win]
++}
++
++#***********************************************************************
++# %PROCEDURE: HelpInTextWin
++# %ARGUMENTS:
++# text -- help text
++# tw -- window in which to write text
++# what -- one of &quot;Enter&quot; or &quot;Leave&quot;
++# %RETURNS:
++# Nothing
++# %DESCRIPTION:
++# Clears out $tw; if $what is &quot;Enter&quot;, puts $text in $tw.
++#***********************************************************************
++proc HelpInTextWin {text tw what} {
++ $tw configure -state normal
++ $tw delete 1.0 end
++ if {&quot;$what&quot; == &quot;Enter&quot;} {
++ $tw insert end $text
++ }
++ $tw configure -state disabled
++}
++
++
++#***********************************************************************
++# %PROCEDURE: drawLogo
++# %ARGUMENTS:
++# c -- canvas to draw logo in
++# bg -- background color of canvas
++# pencolor -- color of the word &quot;Penguin&quot;
++# %RETURNS:
++# Nothing
++# %DESCRIPTION:
++# Draws Roaring Penguin logo in a Tcl canvas
++#***********************************************************************
++proc drawLogo { c bg {pengcolor #6699cc} } {
++ $c create polygon 372.249 5.182 361.23 5.519 \
++ 346.164 8.892 316.482 20.023 305.463 17.774 296.468 \
++ 19.573 288.935 24.97 282.864 33.177 267.348 55.102 \
++ 254.531 77.814 236.204 125.26 225.635 174.844 \
++ 221.026 226.113 213.605 228.025 208.658 232.634 \
++ 225.523 240.28 250.708 243.316 282.752 242.416 \
++ 320.079 238.818 330.985 193.17 338.181 146.735 \
++ 338.743 99.963 335.483 76.577 329.524 53.191 345.602 \
++ 48.131 353.135 45.995 359.768 41.048 342.679 43.184 \
++ 324.689 40.036 334.583 28.905 348.3 18.674 372.249 \
++ 5.182 -fill #000000 -outline {} -width 1 -tags logo
++
++ $c create line 372.249 5.182 361.23 5.519 \
++ 346.164 8.892 316.482 20.023 305.463 17.774 296.468 \
++ 19.573 288.935 24.97 282.864 33.177 267.348 55.102 \
++ 254.531 77.814 236.204 125.26 225.635 174.844 \
++ 221.026 226.113 213.605 228.025 208.658 232.634 \
++ 225.523 240.28 250.708 243.316 282.752 242.416 \
++ 320.079 238.818 330.985 193.17 338.181 146.735 \
++ 338.743 99.963 335.483 76.577 329.524 53.191 345.602 \
++ 48.131 353.135 45.995 359.768 41.048 342.679 43.184 \
++ 324.689 40.036 334.583 28.905 348.3 18.674 372.249 \
++ 5.182 -tags logo
++
++ $c create polygon 298.605 109.632 290.734 \
++ 159.328 282.752 182.939 271.958 205.65 262.851 \
++ 171.133 263.75 138.752 264.537 164.5 271.958 192.833 \
++ 286.687 157.192 298.605 109.632 -fill #ffffff \
++ -outline {} -width 1 -tags logo
++
++ $c create line 298.605 109.632 290.734 159.328 \
++ 282.752 182.939 271.958 205.65 262.851 171.133 \
++ 263.75 138.752 264.537 164.5 271.958 192.833 286.687 \
++ 157.192 298.605 109.632 -tags logo
++
++ $c create polygon 312.546 30.592 315.132 35.876 \
++ 310.747 39.586 308.161 34.414 312.546 30.592 -fill \
++ #ffffff -outline {} -width 1 -tags logo
++
++ $c create line 312.546 30.592 315.132 35.876 \
++ 310.747 39.586 308.161 34.414 312.546 30.592 -tags logo
++
++ $c create polygon 328.624 54.427 322.665 58.7 \
++ 314.458 61.286 289.16 59.15 284.55 74.665 285.338 \
++ 90.181 303.214 98.951 308.499 106.259 310.523 \
++ 116.378 305.913 130.208 312.771 141.563 308.049 \
++ 167.76 299.729 192.158 279.041 238.593 313.558 \
++ 233.871 327.388 185.75 335.033 139.989 335.82 96.253 \
++ 328.624 54.427 -fill #ffffff -outline {} -width 1 -tags logo
++
++ $c create line 328.624 54.427 322.665 58.7 \
++ 314.458 61.286 289.16 59.15 284.55 74.665 285.338 \
++ 90.181 303.214 98.951 308.499 106.259 310.523 \
++ 116.378 305.913 130.208 312.771 141.563 308.049 \
++ 167.76 299.729 192.158 279.041 238.593 313.558 \
++ 233.871 327.388 185.75 335.033 139.989 335.82 96.253 \
++ 328.624 54.427 -tags logo
++
++ $c create polygon 53.837 185.412 54.399 185.862 \
++ 53.837 188.223 54.399 188.673 53.837 188.673 53.837 \
++ 189.572 53.837 190.472 53.387 191.034 52.938 192.833 \
++ 50.577 195.644 49.677 196.656 49.677 197.105 48.215 \
++ 198.455 47.316 198.904 46.866 198.904 44.505 200.816 \
++ 43.606 200.366 42.594 201.265 42.144 201.715 41.245 \
++ 202.277 40.795 202.727 40.345 202.277 39.783 202.277 \
++ 36.972 203.177 36.522 203.177 36.073 203.177 35.623 \
++ 203.627 34.723 203.627 34.161 203.627 34.161 204.076 \
++ 30.901 204.526 28.54 205.538 26.291 205.088 25.729 \
++ 205.088 24.829 205.088 24.38 204.526 23.93 204.526 \
++ 23.48 204.526 22.918 205.088 22.918 206.437 22.918 \
++ 206.887 22.918 207.337 22.468 207.337 22.468 208.798 \
++ 22.018 209.248 22.018 211.16 22.018 211.609 21.569 \
++ 213.521 21.119 215.769 21.569 216.781 20.669 218.13 \
++ 20.669 219.592 20.669 220.042 20.107 220.941 20.107 \
++ 221.953 20.107 223.752 19.657 225.664 19.208 226.113 \
++ 19.657 227.013 18.308 230.835 17.858 240.167 17.296 \
++ 248.15 17.296 249.05 16.846 250.062 15.947 250.062 \
++ 15.048 250.062 15.048 250.511 12.686 251.86 12.237 \
++ 251.86 11.675 251.411 11.675 250.511 11.675 246.689 \
++ 11.225 245.339 11.225 243.878 10.775 240.617 11.225 \
++ 239.268 11.225 238.818 10.775 238.256 10.325 237.357 \
++ 10.325 236.007 9.876 232.634 9.876 231.735 9.876 \
++ 231.285 9.876 230.835 9.876 230.386 9.876 229.824 \
++ 9.426 229.374 9.426 226.113 9.876 226.113 9.876 \
++ 225.664 9.426 224.202 9.426 223.752 9.426 223.302 \
++ 10.325 221.953 9.426 220.941 9.426 219.592 9.426 \
++ 219.142 9.426 218.58 9.426 217.681 9.426 217.231 \
++ 9.426 216.781 8.864 216.332 8.864 214.42 8.864 \
++ 213.97 8.414 213.521 8.414 210.148 8.414 209.248 \
++ 7.964 207.899 8.414 205.988 8.414 204.526 7.065 \
++ 201.265 7.515 200.816 9.426 201.715 10.325 201.265 \
++ 10.775 200.816 10.775 198.904 11.225 198.005 11.225 \
++ 197.555 10.775 197.555 9.876 196.094 9.426 194.744 \
++ 7.515 194.295 6.615 193.845 6.053 193.845 5.153 \
++ 193.283 3.804 191.484 3.804 190.022 3.804 189.572 \
++ 3.804 189.123 3.242 188.673 3.242 186.762 3.804 \
++ 185.412 4.254 184.85 4.704 184.4 7.964 180.24 10.325 \
++ 178.779 11.225 178.779 12.237 177.879 14.036 176.98 \
++ 15.497 175.968 21.569 173.607 22.918 173.157 23.48 \
++ 173.157 24.38 172.707 24.829 172.707 29.102 171.808 \
++ 29.551 171.808 30.001 171.358 31.35 170.796 31.913 \
++ 171.358 32.362 170.796 39.783 171.358 40.345 170.796 \
++ 42.144 171.358 47.766 174.619 48.778 176.418 49.227 \
++ 176.418 49.677 176.98 50.127 176.98 51.588 178.329 \
++ 52.038 179.228 52.488 180.69 52.038 181.14 52.038 \
++ 181.59 52.488 182.039 52.938 182.039 53.387 182.601 \
++ 53.837 183.051 53.837 183.501 53.837 185.412 -fill \
++ $pengcolor -outline {} -width 1 -tags logo
++
++ $c create polygon 42.594 222.853 43.156 221.953 \
++ 41.694 222.403 39.783 224.202 39.783 224.764 39.783 \
++ 225.214 40.345 225.214 41.245 224.202 41.694 223.752 \
++ 42.594 222.853 -fill $pengcolor -outline {} -width 1 -tags logo
++
++ $c create polygon 58.559 234.096 59.009 234.096 \
++ 59.009 234.546 58.559 234.995 58.559 235.445 57.21 \
++ 236.907 56.648 237.806 52.938 241.067 52.038 241.629 \
++ 52.038 242.079 51.026 242.529 50.577 242.978 50.127 \
++ 242.978 49.227 244.44 45.405 246.239 44.055 246.689 \
++ 43.606 246.689 43.606 247.251 42.144 247.251 41.694 \
++ 247.7 40.795 247.7 38.434 248.15 36.522 248.15 \
++ 35.173 247.7 34.161 246.689 33.711 246.239 32.812 \
++ 244.44 32.362 241.629 32.812 239.718 32.812 239.268 \
++ 33.711 234.995 36.522 229.824 35.623 228.474 35.623 \
++ 227.013 36.522 225.664 37.534 224.202 38.883 222.853 \
++ 41.694 220.492 42.594 219.592 43.156 219.592 43.606 \
++ 219.142 45.405 217.681 45.967 217.681 46.416 217.231 \
++ 48.778 215.769 52.038 214.87 53.387 214.42 54.849 \
++ 214.87 55.299 214.87 56.198 215.769 56.198 217.681 \
++ 56.198 218.58 54.399 221.953 53.837 222.853 53.837 \
++ 223.302 53.387 223.752 50.577 226.113 49.677 226.563 \
++ 47.316 228.474 43.156 230.386 41.245 230.835 40.795 \
++ 230.835 40.345 230.835 39.333 230.835 38.883 230.835 \
++ 38.883 229.824 39.783 229.374 40.795 228.474 41.694 \
++ 228.025 42.594 227.575 45.967 227.013 46.866 226.563 \
++ 50.127 224.764 51.588 223.302 52.488 221.953 52.488 \
++ 220.492 52.488 219.142 51.026 218.13 49.677 218.13 \
++ 48.778 218.13 47.766 219.142 47.316 219.142 47.316 \
++ 219.592 46.866 219.592 45.967 220.941 44.505 221.953 \
++ 44.055 222.403 43.606 222.853 42.594 223.752 41.694 \
++ 225.664 41.245 225.664 41.245 226.113 40.345 226.563 \
++ 39.333 227.575 39.333 228.474 38.434 229.374 36.522 \
++ 233.197 35.623 236.457 35.623 237.357 35.623 238.256 \
++ 35.173 241.067 35.623 242.079 36.522 243.428 37.534 \
++ 243.878 37.984 244.44 38.434 244.89 38.883 244.89 \
++ 39.783 245.339 43.156 245.339 45.967 244.44 49.227 \
++ 242.529 50.127 241.629 50.577 241.067 54.399 238.818 \
++ 54.399 238.256 54.399 237.806 56.198 236.907 58.559 \
++ 234.096 -fill $pengcolor -outline {} -width 1 -tags logo
++
++ $c create polygon 92.289 248.6 92.739 249.05 \
++ 92.289 249.05 91.84 249.05 90.94 248.6 90.378 248.6 \
++ 89.478 247.7 89.029 247.251 88.129 246.689 87.117 \
++ 245.789 85.768 244.89 85.318 244.44 85.768 244.44 \
++ 85.318 242.529 84.756 242.079 84.756 240.617 84.756 \
++ 240.167 84.756 239.718 84.756 239.268 83.857 236.457 \
++ 83.407 234.096 83.407 233.197 83.407 231.735 83.407 \
++ 223.302 83.407 221.391 82.957 220.941 82.508 221.953 \
++ 80.596 226.113 80.146 226.563 80.146 227.013 79.697 \
++ 228.025 79.135 228.474 79.697 228.474 76.324 234.096 \
++ 75.874 234.995 75.424 236.457 74.975 236.457 74.975 \
++ 236.907 74.975 237.357 74.075 239.268 73.513 239.718 \
++ 73.063 240.167 72.613 241.067 72.164 242.529 71.714 \
++ 242.529 71.714 243.878 70.252 245.789 69.803 246.689 \
++ 68.903 246.689 68.903 247.251 67.891 247.7 66.542 \
++ 247.7 66.092 247.7 65.643 247.7 65.08 247.251 65.08 \
++ 246.689 65.08 245.789 64.631 242.079 65.08 242.079 \
++ 64.631 241.629 65.08 241.067 65.08 238.818 64.631 \
++ 237.806 64.631 236.457 64.631 234.546 64.631 233.197 \
++ 64.631 232.634 64.631 232.185 64.631 231.735 64.631 \
++ 228.924 64.631 227.575 64.631 225.664 64.631 225.214 \
++ 64.631 224.764 64.631 223.302 64.631 217.231 65.08 \
++ 216.332 65.643 215.769 69.803 214.87 70.252 215.32 \
++ 70.252 216.332 70.252 217.681 70.252 218.58 69.803 \
++ 219.142 69.803 220.492 69.353 220.941 69.353 221.391 \
++ 68.903 221.953 68.903 225.664 68.453 226.563 68.453 \
++ 228.025 68.453 228.474 67.891 228.924 67.891 230.835 \
++ 68.453 236.457 68.453 237.806 68.453 238.818 68.453 \
++ 240.617 68.453 241.067 68.903 241.067 68.903 241.629 \
++ 69.353 241.629 70.702 241.067 70.702 240.617 71.264 \
++ 240.167 71.264 239.268 72.164 238.256 73.063 236.457 \
++ 74.525 234.546 74.975 233.197 76.324 230.835 77.336 \
++ 229.824 78.235 227.575 78.235 227.013 78.685 226.563 \
++ 78.685 225.664 79.135 225.214 79.697 224.764 79.697 \
++ 224.202 80.146 222.403 81.046 220.941 81.945 217.681 \
++ 82.957 215.769 85.318 214.87 85.768 214.87 87.567 \
++ 214.42 87.567 215.769 87.117 216.332 87.567 216.781 \
++ 88.129 219.592 87.567 219.592 87.567 220.492 87.567 \
++ 221.391 87.567 224.764 87.567 225.664 87.567 226.113 \
++ 87.117 226.113 87.117 227.575 87.567 229.374 88.579 \
++ 235.445 89.029 239.268 89.029 239.718 89.029 241.067 \
++ 89.478 242.529 89.478 242.978 89.928 243.878 89.928 \
++ 244.44 90.378 244.89 90.94 246.239 92.289 248.6 \
++ -fill $pengcolor -outline {} -width 1 -tags logo
++
++ $c create polygon 117.587 220.492 118.037 \
++ 222.403 117.587 222.853 117.587 224.764 116.687 \
++ 226.113 116.687 227.013 116.238 228.025 114.776 \
++ 229.374 113.877 231.285 112.865 231.735 109.154 \
++ 234.995 106.343 236.457 105.444 237.357 103.982 \
++ 237.806 103.083 238.256 102.633 238.818 102.183 \
++ 238.818 101.172 239.268 99.822 239.718 98.361 \
++ 239.268 97.461 239.718 96.562 239.268 96.0 238.818 \
++ 95.55 238.818 94.201 236.907 94.201 235.445 94.201 \
++ 233.646 94.65 233.197 94.65 232.634 95.1 232.185 \
++ 95.1 231.735 95.55 231.735 96.0 230.386 97.461 \
++ 228.025 97.461 227.575 98.361 226.563 99.822 224.764 \
++ 101.172 223.302 101.172 222.853 102.633 221.391 \
++ 103.083 220.941 104.432 219.592 103.982 218.58 \
++ 103.982 217.231 103.982 216.781 103.982 215.32 \
++ 104.432 214.42 103.982 210.148 103.982 209.698 \
++ 103.982 209.248 104.432 208.798 104.432 207.899 \
++ 104.432 205.988 104.432 205.538 104.994 203.177 \
++ 104.994 202.277 104.994 201.265 104.994 200.816 \
++ 104.994 200.366 104.994 199.916 105.894 199.467 \
++ 106.343 198.904 106.793 198.455 107.243 198.904 \
++ 108.255 198.904 108.255 199.467 108.705 199.467 \
++ 108.705 202.727 108.255 204.076 108.255 205.538 \
++ 108.255 205.988 107.805 205.988 107.805 206.887 \
++ 107.805 209.698 107.243 210.71 106.793 212.059 \
++ 106.343 214.87 106.343 215.32 106.343 215.769 \
++ 105.894 217.681 106.343 217.681 106.793 217.681 \
++ 107.243 217.231 108.705 215.32 109.604 215.32 \
++ 110.054 214.42 110.054 213.97 110.616 213.97 110.616 \
++ 214.42 111.965 214.87 112.415 214.87 112.865 215.32 \
++ 114.326 216.332 116.238 217.681 116.687 218.58 \
++ 117.137 219.592 117.587 220.042 117.587 220.492 \
++ -fill $pengcolor -outline {} -width 1 -tags logo
++
++ $c create polygon 123.658 258.944 123.658 \
++ 259.394 123.658 260.293 123.658 261.755 123.658 \
++ 262.654 123.658 263.104 123.209 266.364 123.209 \
++ 267.376 122.759 269.175 122.309 269.737 121.859 \
++ 271.087 121.859 271.536 121.859 271.986 121.297 \
++ 271.986 121.297 272.548 120.847 273.448 120.398 \
++ 273.448 120.398 273.897 118.486 276.259 118.037 \
++ 276.708 117.587 277.608 117.137 278.17 116.687 \
++ 278.17 115.675 278.62 115.675 279.069 113.427 \
++ 280.419 112.865 280.981 112.415 280.981 111.965 \
++ 281.43 110.054 282.33 109.154 282.33 108.705 282.78 \
++ 108.255 282.78 107.805 283.229 104.994 283.792 \
++ 104.432 283.792 103.982 283.792 103.533 283.792 \
++ 103.083 283.792 102.633 283.792 102.183 283.792 \
++ 101.172 283.792 100.722 283.792 99.822 283.792 98.81 \
++ 283.792 96.562 282.33 96.0 282.78 95.1 281.88 94.201 \
++ 281.43 91.84 279.969 92.289 279.519 92.289 278.62 \
++ 93.751 279.069 93.751 279.519 94.201 279.519 94.65 \
++ 279.969 95.1 279.969 96.0 280.981 98.81 281.88 \
++ 101.172 281.88 101.621 281.88 102.633 281.88 103.083 \
++ 281.88 103.533 281.88 104.432 281.43 104.994 281.88 \
++ 105.444 281.43 106.793 281.43 107.805 280.981 \
++ 108.705 280.419 109.154 280.419 109.604 279.969 \
++ 110.054 279.969 110.616 279.969 111.066 279.519 \
++ 112.865 278.17 113.427 277.608 113.877 277.608 \
++ 113.877 277.158 114.326 277.158 114.326 276.708 \
++ 114.776 276.259 115.226 276.259 116.238 274.347 \
++ 116.687 274.347 116.687 273.897 117.587 272.998 \
++ 117.587 272.548 118.037 271.986 119.498 267.826 \
++ 120.398 265.015 120.398 262.204 119.948 259.843 \
++ 119.948 259.394 119.948 258.944 119.498 257.482 \
++ 118.486 254.222 118.037 253.772 117.587 251.86 \
++ 115.675 249.05 115.226 248.6 114.776 248.15 113.877 \
++ 247.251 111.965 246.239 111.515 246.239 110.616 \
++ 246.239 110.054 246.239 109.154 246.239 107.243 \
++ 247.251 106.343 247.251 105.444 247.7 104.994 247.7 \
++ 103.083 248.15 102.183 248.6 101.621 248.6 101.172 \
++ 249.05 100.722 249.499 99.822 250.062 98.361 250.062 \
++ 97.461 249.499 97.012 249.499 96.562 249.05 96.562 \
++ 248.6 97.012 248.15 99.822 245.789 100.272 245.339 \
++ 101.621 244.44 101.621 243.878 102.183 243.428 \
++ 102.633 243.428 102.633 242.978 103.982 241.629 \
++ 103.982 241.067 103.982 240.617 103.982 240.167 \
++ 105.444 239.268 108.705 236.907 108.705 236.457 \
++ 109.154 236.457 110.054 235.445 111.066 234.546 \
++ 112.415 234.096 112.865 233.646 113.427 233.646 \
++ 113.877 233.646 113.877 234.096 114.326 234.995 \
++ 114.776 235.445 114.776 236.457 114.326 237.357 \
++ 113.427 238.818 112.415 239.268 112.415 240.167 \
++ 111.965 240.167 111.515 240.617 110.054 241.629 \
++ 110.054 242.079 109.604 242.529 108.705 242.978 \
++ 110.054 242.978 113.427 242.079 114.326 242.529 \
++ 115.226 242.978 116.687 244.44 119.048 246.689 \
++ 119.498 247.7 119.498 248.15 119.948 248.6 119.948 \
++ 249.05 120.398 249.05 120.398 249.499 120.847 \
++ 249.499 120.847 250.062 121.297 250.511 121.297 \
++ 251.411 121.859 252.31 122.759 252.872 122.759 \
++ 254.222 122.759 254.671 123.658 258.494 123.658 \
++ 258.944 -fill $pengcolor -outline {} -width 1 -tags logo
++
++ $c create polygon 147.607 215.769 148.506 215.32 \
++ 148.506 217.231 148.506 217.681 148.506 218.13 \
++ 148.956 218.58 148.506 220.492 148.506 220.941 \
++ 148.506 222.853 148.956 224.764 148.956 226.113 \
++ 148.506 226.563 148.956 226.563 148.506 228.924 \
++ 148.956 229.824 148.956 231.285 148.506 232.185 \
++ 148.956 232.634 148.956 233.646 149.405 234.995 \
++ 148.956 234.995 149.405 235.445 149.405 236.907 \
++ 149.405 237.357 149.968 238.818 150.867 240.167 \
++ 150.867 240.617 151.317 242.079 152.216 243.428 \
++ 153.228 245.339 154.128 245.789 155.027 246.239 \
++ 156.939 245.789 157.388 246.239 156.489 246.689 \
++ 155.027 247.7 154.128 247.7 153.228 247.7 152.216 \
++ 247.7 151.767 247.7 150.867 247.251 150.417 246.239 \
++ 149.405 246.239 148.056 245.339 147.607 244.44 \
++ 147.157 243.428 145.695 241.629 145.695 240.617 \
++ 145.245 240.167 145.245 239.718 144.796 238.256 \
++ 144.346 236.907 144.346 235.445 143.784 234.546 \
++ 143.784 233.197 143.784 232.185 143.784 230.835 \
++ 143.334 229.824 143.784 229.374 143.334 229.374 \
++ 143.334 228.474 142.884 230.386 141.985 231.735 \
++ 140.973 233.197 140.523 234.096 140.523 234.546 \
++ 140.523 234.995 139.624 236.457 139.174 237.806 \
++ 138.162 239.718 137.263 241.067 136.813 242.079 \
++ 135.913 242.978 134.452 244.89 134.002 245.789 \
++ 133.552 245.789 132.091 246.689 131.191 247.251 \
++ 129.73 248.15 129.28 248.15 128.38 247.7 128.38 \
++ 248.15 126.919 247.7 126.019 247.251 125.12 246.239 \
++ 125.12 245.339 124.67 244.89 124.67 244.44 124.67 \
++ 243.428 124.67 242.529 124.67 241.067 124.67 239.718 \
++ 125.12 239.268 124.67 239.268 124.67 238.256 125.12 \
++ 237.806 125.12 237.357 125.12 236.907 125.12 236.007 \
++ 125.12 234.096 125.57 233.197 125.57 232.185 126.019 \
++ 232.185 126.019 231.285 126.019 230.386 126.019 \
++ 229.374 126.469 228.474 126.469 227.013 126.469 \
++ 225.214 126.019 225.214 126.469 225.214 126.019 \
++ 223.302 126.019 221.953 126.019 220.492 125.57 \
++ 220.042 125.12 219.592 124.108 219.142 123.209 \
++ 219.142 121.859 220.042 121.297 220.042 120.398 \
++ 220.941 119.498 221.391 119.048 221.391 118.486 \
++ 221.953 118.037 221.953 118.037 221.391 118.486 \
++ 220.941 119.498 220.042 120.847 219.142 122.759 \
++ 217.681 124.108 216.781 125.12 215.769 126.469 \
++ 214.87 126.919 214.87 127.481 214.87 128.38 214.87 \
++ 128.83 214.87 129.73 214.87 129.73 215.769 130.292 \
++ 215.769 130.742 216.781 130.742 217.681 130.292 \
++ 219.142 130.292 221.953 130.292 223.302 130.292 \
++ 224.202 129.73 225.214 129.28 227.013 128.83 227.575 \
++ 129.28 227.575 129.28 228.474 128.83 229.374 129.28 \
++ 229.824 129.28 230.386 128.83 231.735 128.38 234.096 \
++ 128.38 234.995 127.931 236.457 127.931 239.268 \
++ 127.931 240.167 127.931 241.629 128.83 242.978 \
++ 129.28 243.878 129.73 244.44 130.742 244.44 131.191 \
++ 244.44 132.091 244.44 133.103 243.878 134.002 \
++ 242.978 134.902 242.079 135.351 241.067 135.913 \
++ 240.167 136.363 239.268 136.813 238.818 137.263 \
++ 237.806 137.712 236.907 138.162 235.445 138.724 \
++ 234.546 139.174 233.646 139.624 232.634 140.523 \
++ 230.835 140.973 228.924 141.535 227.013 142.435 \
++ 225.664 142.884 223.302 143.334 221.391 143.334 \
++ 220.941 143.334 219.142 144.346 217.681 144.796 \
++ 216.781 145.695 216.332 146.595 216.332 147.607 \
++ 215.769 -fill $pengcolor -outline {} -width 1 -tags logo
++
++ $c create polygon 165.371 241.067 165.371 \
++ 241.067 164.921 243.878 164.921 246.239 163.46 \
++ 246.689 161.211 247.251 160.649 247.251 160.199 \
++ 244.44 160.199 243.878 160.199 243.428 160.199 \
++ 242.079 160.199 240.167 160.199 239.718 159.749 \
++ 239.268 160.199 237.806 159.749 237.357 159.749 \
++ 236.007 159.749 230.835 159.749 229.824 159.749 \
++ 228.924 159.749 226.113 159.749 225.664 159.749 \
++ 223.752 159.749 222.853 159.749 218.58 159.749 \
++ 218.13 159.749 217.681 160.199 217.231 161.661 \
++ 216.781 162.11 216.781 162.56 216.781 163.46 216.781 \
++ 164.022 219.142 163.46 222.403 163.46 222.853 163.46 \
++ 224.202 163.46 225.664 163.46 226.563 163.46 227.013 \
++ 163.46 228.924 163.01 230.835 163.01 232.634 163.46 \
++ 233.197 164.022 232.634 164.472 232.634 164.921 \
++ 232.185 164.921 231.735 165.371 231.735 165.821 \
++ 232.185 165.371 233.646 165.821 236.007 165.371 \
++ 238.256 165.371 238.818 165.371 240.617 165.371 \
++ 241.067 -fill $pengcolor -outline {} -width 1 -tags logo
++
++ $c create polygon 165.821 214.42 166.833 215.32 \
++ 166.271 215.32 165.821 216.332 165.371 216.332 \
++ 165.371 216.781 165.821 217.681 165.821 218.13 \
++ 165.371 219.142 165.371 220.042 164.921 222.853 \
++ 165.371 224.764 164.921 225.664 165.371 227.575 \
++ 165.371 228.474 164.921 228.474 164.472 227.575 \
++ 164.472 226.113 164.022 224.764 164.472 224.202 \
++ 164.472 223.752 164.472 222.403 164.921 214.87 \
++ 164.472 213.521 164.472 212.959 164.472 212.509 \
++ 164.022 212.509 163.46 212.509 163.01 212.959 162.56 \
++ 212.959 161.661 212.959 161.211 212.059 161.211 \
++ 211.609 160.649 211.609 160.199 209.698 160.649 \
++ 208.349 163.46 206.437 164.472 206.437 165.821 \
++ 207.899 165.821 208.349 166.833 210.148 166.833 \
++ 210.71 165.821 211.609 165.371 212.059 165.371 \
++ 212.959 165.821 213.97 165.821 214.42 -fill $pengcolor \
++ -outline {} -width 1 -tags logo
++
++ $c create polygon 201.462 248.6 201.462 249.05 \
++ 201.012 249.05 200.563 249.05 200.001 248.6 199.551 \
++ 248.6 198.651 247.7 197.752 247.251 196.74 246.689 \
++ 196.29 245.789 194.379 244.89 194.379 244.44 194.379 \
++ 242.529 193.929 242.079 193.479 240.617 193.479 \
++ 240.167 193.929 239.718 193.479 239.268 193.03 \
++ 236.457 192.58 234.096 192.58 233.197 192.58 231.735 \
++ 192.58 223.302 192.58 221.391 192.13 220.941 191.568 \
++ 221.953 189.769 226.113 189.319 226.563 189.319 \
++ 227.013 188.757 228.025 188.307 228.474 188.757 \
++ 228.474 185.497 234.096 185.047 234.995 184.597 \
++ 236.457 184.147 236.457 184.147 236.907 184.147 \
++ 237.357 183.136 239.268 182.686 239.268 182.686 \
++ 239.718 182.236 240.167 181.786 241.067 181.337 \
++ 242.529 180.887 242.529 180.887 243.878 179.425 \
++ 245.789 178.975 246.689 178.076 246.689 178.076 \
++ 247.251 177.064 247.7 175.715 247.7 175.265 247.7 \
++ 174.703 247.7 174.253 247.251 174.253 246.689 \
++ 174.253 245.789 173.804 242.079 174.253 242.079 \
++ 173.804 241.629 173.804 241.067 173.804 238.818 \
++ 173.804 237.806 173.804 236.457 173.354 234.546 \
++ 173.354 233.197 173.804 232.634 173.804 232.185 \
++ 173.804 231.735 173.804 228.924 173.354 227.575 \
++ 173.804 227.575 173.804 225.664 173.804 225.214 \
++ 173.804 224.764 173.804 223.302 173.804 217.231 \
++ 174.253 216.332 174.703 215.769 178.526 214.87 \
++ 179.425 215.32 179.425 216.332 179.425 217.681 \
++ 179.425 218.58 178.975 219.142 178.526 220.492 \
++ 178.526 220.941 178.076 221.391 178.076 221.953 \
++ 178.076 225.664 177.514 226.563 177.514 228.025 \
++ 177.064 228.474 177.064 228.924 177.064 230.835 \
++ 177.514 236.457 177.064 237.806 177.514 237.806 \
++ 177.514 238.818 177.514 240.617 177.514 241.067 \
++ 178.076 241.629 178.526 241.629 179.425 241.067 \
++ 179.875 240.617 179.875 240.167 180.325 239.268 \
++ 181.337 238.256 182.236 236.457 183.698 234.546 \
++ 184.147 233.197 185.497 230.835 186.509 229.824 \
++ 187.408 227.575 187.408 227.013 187.408 226.563 \
++ 187.858 225.664 188.307 225.214 188.757 224.764 \
++ 188.757 224.202 189.319 222.403 190.219 220.941 \
++ 191.118 217.681 192.13 215.769 194.379 214.87 \
++ 194.941 214.87 196.74 214.42 196.74 215.769 196.29 \
++ 215.769 196.29 216.332 196.29 216.781 196.74 219.592 \
++ 196.74 220.492 196.29 221.391 196.74 224.764 196.29 \
++ 225.664 196.29 226.113 196.29 227.575 196.74 229.374 \
++ 197.19 235.445 198.202 239.268 198.202 239.718 \
++ 198.202 241.067 198.202 242.529 198.651 242.978 \
++ 199.101 243.878 199.101 244.44 199.551 244.89 \
++ 200.001 246.239 201.462 248.6 -fill $pengcolor -outline \
++ {} -width 1 -tags logo
++
++ $c create polygon 71.714 185.412 71.714 110.869 \
++ 81.496 110.869 82.845 110.981 83.969 111.431 85.094 \
++ 112.106 86.105 113.118 86.893 114.467 87.567 116.041 \
++ 88.017 117.39 88.242 118.065 88.467 118.852 88.579 \
++ 119.639 88.804 120.538 88.916 121.438 89.029 122.337 \
++ 89.141 123.349 89.254 124.361 89.366 125.485 89.366 \
++ 126.61 89.478 127.734 89.478 128.971 89.478 130.208 \
++ 89.478 131.444 89.478 132.456 89.478 133.468 89.478 \
++ 134.48 89.366 135.492 89.254 136.391 89.254 137.291 \
++ 89.141 138.19 89.029 139.09 88.916 139.877 88.804 \
++ 140.664 88.691 141.451 88.579 142.238 88.354 143.362 \
++ 88.129 144.374 87.904 145.386 87.567 146.398 87.342 \
++ 147.297 87.005 148.197 86.668 148.984 86.218 149.771 \
++ 87.005 151.233 87.342 152.02 87.68 152.919 87.904 \
++ 153.931 88.129 154.943 88.129 155.505 88.354 156.854 \
++ 88.354 157.641 88.354 158.428 88.467 159.328 88.467 \
++ 160.34 88.467 161.352 88.467 162.476 88.579 163.6 \
++ 88.579 164.837 88.579 166.186 88.579 166.973 88.691 \
++ 167.873 88.804 168.885 88.916 169.897 89.029 171.021 \
++ 89.029 172.258 89.029 173.719 89.029 175.068 89.029 \
++ 176.305 89.029 177.542 89.141 178.554 89.141 179.566 \
++ 89.141 180.353 89.141 181.14 89.254 181.814 89.366 \
++ 182.714 89.478 183.051 89.478 185.412 83.857 185.412 \
++ 83.857 184.738 83.744 183.951 83.744 183.276 83.744 \
++ 182.489 83.744 180.803 83.857 179.791 83.857 178.891 \
++ 83.857 177.879 83.857 176.867 83.857 175.743 83.857 \
++ 174.619 83.857 173.27 83.857 172.033 83.744 170.908 \
++ 83.744 170.009 83.632 169.109 83.632 168.322 83.52 \
++ 166.973 83.407 166.524 83.407 166.186 83.407 165.062 \
++ 83.407 164.05 83.295 163.151 83.295 162.251 83.295 \
++ 161.464 83.182 160.789 82.957 159.553 81.945 158.203 \
++ 80.596 157.754 76.886 157.754 76.886 185.412 71.714 \
++ 185.412 -fill #000000 -outline {} -width 1 -tags logo
++
++ $c create polygon 92.289 148.309 92.289 147.185 \
++ 92.289 146.061 92.289 145.049 92.402 143.924 92.402 \
++ 142.8 92.402 141.788 92.402 140.664 92.514 139.652 \
++ 92.514 138.64 92.627 137.628 92.627 136.616 92.739 \
++ 135.717 92.739 134.705 92.851 133.805 92.964 132.793 \
++ 92.964 131.894 93.076 130.995 93.301 129.196 93.414 \
++ 128.409 93.526 127.509 93.639 126.722 93.751 125.935 \
++ 93.863 125.148 93.976 124.361 94.313 122.787 94.426 \
++ 122.112 94.65 121.325 94.763 120.651 95.1 119.301 \
++ 95.55 117.615 96.112 116.041 96.674 114.692 97.236 \
++ 113.455 97.799 112.443 98.361 111.544 99.035 110.757 \
++ 99.71 110.082 100.385 109.632 101.059 109.295 \
++ 101.846 109.07 102.633 108.958 104.207 109.295 \
++ 104.882 109.632 105.556 110.082 106.231 110.757 \
++ 106.906 111.544 107.468 112.443 108.03 113.455 \
++ 108.592 114.692 109.154 116.041 109.604 117.615 \
++ 110.054 119.301 110.279 119.976 110.616 121.325 \
++ 110.841 122.112 110.953 122.787 111.178 123.574 \
++ 111.403 125.148 111.628 125.935 111.74 126.722 \
++ 111.853 127.622 111.965 128.409 112.078 129.308 \
++ 112.19 130.208 112.302 130.995 112.415 132.006 \
++ 112.64 133.805 112.752 134.817 112.865 135.717 \
++ 112.977 136.729 112.977 137.741 113.089 138.752 \
++ 113.089 139.764 113.202 140.776 113.202 141.788 \
++ 113.314 142.912 113.314 143.924 113.314 145.049 \
++ 113.427 146.061 113.427 147.185 113.427 148.309 \
++ 113.427 149.546 113.314 150.783 113.314 151.907 \
++ 113.314 153.032 113.314 154.156 113.202 155.28 \
++ 113.202 156.405 113.089 157.529 113.089 158.541 \
++ 112.977 159.553 112.865 160.565 112.752 161.576 \
++ 112.64 162.588 112.527 163.6 112.415 164.5 112.302 \
++ 165.512 112.19 166.411 112.078 167.311 111.965 \
++ 168.21 111.853 169.109 111.628 169.897 111.515 \
++ 170.796 111.403 171.583 111.178 172.37 111.066 \
++ 173.157 110.616 174.731 110.504 175.518 110.279 \
++ 176.193 110.054 176.98 109.604 178.666 109.154 \
++ 180.128 108.592 181.59 108.03 182.826 107.468 \
++ 183.951 106.906 184.963 106.231 185.75 105.556 \
++ 186.424 104.882 186.986 104.207 187.436 103.42 \
++ 187.661 102.633 187.661 101.846 187.661 101.059 \
++ 187.436 100.385 186.986 99.71 186.424 99.035 185.75 \
++ 98.361 184.963 97.799 183.951 97.236 182.826 96.674 \
++ 181.59 96.112 180.128 95.55 178.666 95.1 176.98 \
++ 94.988 176.193 94.763 175.518 94.538 174.731 94.426 \
++ 173.944 94.088 172.37 93.976 171.583 93.863 170.796 \
++ 93.639 169.897 93.526 169.109 93.414 168.21 93.301 \
++ 167.311 93.189 166.411 93.076 165.512 92.964 164.5 \
++ 92.964 163.6 92.851 162.588 92.739 161.576 92.627 \
++ 160.565 92.627 159.553 92.514 158.541 92.514 157.529 \
++ 92.514 156.405 92.402 155.28 92.402 154.156 92.402 \
++ 153.032 92.289 151.907 92.289 150.783 92.289 149.546 \
++ 92.289 148.309 -fill #000000 -outline {} -width 1 -tags logo
++
++ $c create polygon 121.859 110.869 127.481 \
++ 110.869 134.902 185.412 129.28 185.412 127.931 \
++ 171.808 120.847 171.808 119.948 185.412 114.326 \
++ 185.412 121.859 110.869 -fill #000000 -outline {} \
++ -width 1 -tags logo
++
++ $c create polygon 137.263 185.412 137.263 \
++ 110.869 147.157 110.869 148.394 110.981 149.518 \
++ 111.431 150.417 112.106 151.317 113.118 152.104 \
++ 114.467 152.778 116.041 153.228 117.39 153.341 \
++ 118.065 153.566 118.852 153.903 120.538 154.015 \
++ 121.438 154.128 122.337 154.24 123.349 154.353 \
++ 124.361 154.465 125.485 154.465 126.61 154.577 \
++ 127.734 154.577 128.971 154.577 130.208 154.577 \
++ 131.444 154.577 132.456 154.577 133.468 154.577 \
++ 134.48 154.577 135.492 154.577 136.391 154.577 \
++ 137.291 154.577 138.19 154.465 139.09 154.465 \
++ 139.877 154.353 140.664 154.24 141.451 154.128 \
++ 142.238 153.903 143.362 153.678 144.374 153.341 \
++ 145.386 153.003 146.398 152.554 147.297 152.216 \
++ 148.197 151.767 148.984 151.317 149.771 152.104 \
++ 151.233 152.441 152.02 152.778 152.919 153.003 \
++ 153.931 153.228 154.943 153.341 155.505 153.453 \
++ 156.854 153.566 157.641 153.678 158.428 153.79 \
++ 159.328 153.903 160.34 154.015 161.352 154.015 \
++ 162.476 154.128 163.6 154.128 164.837 154.128 \
++ 166.186 154.128 166.973 154.128 167.873 154.128 \
++ 168.885 154.128 169.897 154.128 171.021 154.128 \
++ 172.258 154.128 173.719 154.24 175.068 154.24 \
++ 176.305 154.353 177.542 154.353 178.554 154.465 \
++ 179.566 154.577 180.353 154.69 181.14 154.69 181.814 \
++ 154.915 182.714 155.027 183.051 155.027 185.412 \
++ 149.405 185.412 149.405 184.738 149.293 183.951 \
++ 149.293 183.276 149.181 182.489 149.181 180.803 \
++ 149.068 179.791 149.068 178.891 149.068 177.879 \
++ 149.068 176.867 148.956 175.743 148.956 174.619 \
++ 148.956 173.27 148.956 172.033 148.956 170.908 \
++ 148.956 170.009 148.956 169.109 148.956 168.322 \
++ 148.956 166.973 148.956 166.524 148.956 166.186 \
++ 148.956 165.062 148.843 164.05 148.731 163.151 \
++ 148.618 162.251 148.506 161.464 148.394 160.789 \
++ 148.056 159.553 147.269 158.203 146.145 157.754 \
++ 142.435 157.754 142.435 185.412 137.263 185.412 \
++ -fill #000000 -outline {} -width 1 -tags logo
++
++ $c create polygon 158.4 185.412 158.4 110.869 \
++ 164.022 110.869 164.022 185.412 158.4 185.412 -fill \
++ #000000 -outline {} -width 1 -tags logo
++
++ $c create polygon 168.182 185.412 168.182 \
++ 110.869 173.804 110.869 177.514 135.267 177.739 \
++ 136.054 177.851 136.954 177.964 137.853 178.076 \
++ 138.752 178.301 139.539 178.413 140.439 178.526 \
++ 141.338 178.751 143.137 178.975 144.037 179.088 \
++ 144.824 179.2 145.723 179.313 146.623 179.425 147.41 \
++ 179.538 148.422 179.763 149.321 179.875 150.333 \
++ 180.1 151.233 180.212 152.132 180.437 153.032 180.55 \
++ 154.043 180.774 154.943 180.887 155.842 180.999 \
++ 156.742 181.224 157.754 181.337 158.653 181.337 \
++ 157.641 181.224 156.629 181.224 155.617 181.224 \
++ 154.606 181.224 153.594 181.112 152.582 181.112 \
++ 151.682 181.112 150.67 180.999 149.771 180.999 \
++ 148.759 180.999 147.86 180.887 146.96 180.887 \
++ 145.948 180.887 145.049 180.887 144.149 180.887 \
++ 143.25 180.887 142.125 180.887 141.114 180.887 \
++ 140.102 180.887 139.09 180.887 138.078 180.887 \
++ 137.178 180.887 136.166 180.887 135.267 180.887 \
++ 134.368 180.887 133.468 180.887 132.569 180.887 \
++ 131.669 180.887 130.882 180.887 130.095 180.887 \
++ 110.869 185.946 110.869 185.946 185.412 180.325 \
++ 185.412 176.165 160.565 176.052 159.778 175.94 \
++ 158.99 175.827 158.203 175.602 156.517 175.49 \
++ 155.617 175.378 154.718 175.265 153.931 175.153 \
++ 153.032 175.04 152.02 174.928 151.12 174.703 150.221 \
++ 174.591 149.321 174.478 148.422 174.366 147.41 \
++ 174.141 146.51 174.028 145.611 173.804 144.599 \
++ 173.691 143.587 173.579 142.575 173.354 141.676 \
++ 173.241 140.551 173.017 139.539 172.904 138.528 \
++ 172.904 139.539 172.904 140.551 173.017 141.563 \
++ 173.017 142.575 173.017 143.587 173.129 144.599 \
++ 173.129 145.498 173.129 146.51 173.241 147.41 \
++ 173.241 148.422 173.241 149.321 173.354 150.221 \
++ 173.354 151.233 173.354 152.132 173.354 153.144 \
++ 173.354 154.156 173.354 155.055 173.354 156.067 \
++ 173.354 156.967 173.354 157.866 173.354 158.766 \
++ 173.354 159.553 173.354 160.452 173.354 161.239 \
++ 173.354 162.026 173.354 162.926 173.354 185.412 \
++ 168.182 185.412 -fill #000000 -outline {} -width 1 -tags logo
++
++ $c create polygon 206.184 185.412 205.622 \
++ 175.968 205.397 177.092 205.172 178.217 204.948 \
++ 179.228 204.61 180.128 204.385 181.027 204.048 \
++ 181.814 203.823 182.489 203.486 183.164 203.149 \
++ 183.838 202.811 184.4 202.024 185.75 201.125 186.762 \
++ 200.113 187.436 199.101 187.661 198.089 187.549 \
++ 197.19 186.986 196.29 186.087 195.391 184.85 194.941 \
++ 184.176 194.491 183.389 194.042 182.489 193.592 \
++ 181.477 193.255 180.465 192.805 179.341 192.467 \
++ 178.217 192.13 176.98 191.905 176.193 191.68 175.406 \
++ 191.568 174.619 191.456 173.832 191.231 172.932 \
++ 191.118 172.145 191.006 171.246 190.781 169.559 \
++ 190.669 168.66 190.556 167.648 190.444 166.748 \
++ 190.331 165.736 190.219 164.725 190.106 163.825 \
++ 189.994 162.926 189.994 162.026 189.882 161.127 \
++ 189.769 160.227 189.769 159.215 189.657 158.316 \
++ 189.544 157.304 189.544 156.405 189.432 155.393 \
++ 189.432 154.381 189.319 153.369 189.319 152.357 \
++ 189.319 151.345 189.319 150.333 189.319 149.321 \
++ 189.319 148.197 189.319 146.96 189.319 145.948 \
++ 189.319 144.824 189.319 143.7 189.319 142.688 \
++ 189.432 141.563 189.432 140.551 189.544 139.539 \
++ 189.544 138.528 189.544 137.516 189.657 136.504 \
++ 189.769 135.492 189.769 134.592 189.882 133.581 \
++ 189.994 132.681 189.994 131.782 190.106 130.882 \
++ 190.219 129.983 190.331 129.083 190.556 127.397 \
++ 190.669 126.61 190.781 125.823 191.006 124.923 \
++ 191.118 124.136 191.231 123.462 191.568 121.887 \
++ 191.793 121.213 191.905 120.426 192.13 119.751 \
++ 192.58 117.952 193.142 116.378 193.704 114.917 \
++ 194.266 113.567 194.941 112.443 195.616 111.431 \
++ 196.29 110.532 196.965 109.857 197.752 109.295 \
++ 198.426 108.845 199.214 108.62 200.001 108.508 \
++ 201.799 108.958 202.699 109.407 203.374 110.194 \
++ 204.161 111.094 204.835 112.218 205.51 113.567 \
++ 206.184 115.141 206.634 116.491 206.859 117.165 \
++ 206.971 117.952 207.421 119.526 207.534 120.426 \
++ 207.758 121.325 207.871 122.225 207.983 123.124 \
++ 208.096 124.136 208.208 125.036 208.321 126.047 \
++ 208.433 127.172 208.545 128.184 208.658 129.308 \
++ 208.77 130.32 208.77 131.557 208.883 132.681 208.995 \
++ 133.805 204.273 133.805 204.161 132.681 203.936 \
++ 131.557 203.711 130.432 203.486 129.533 203.261 \
++ 128.633 202.924 127.734 202.699 126.947 202.362 \
++ 126.385 201.35 124.586 200.001 124.024 199.438 \
++ 124.136 198.989 124.361 198.426 124.923 197.977 \
++ 125.598 197.527 126.497 197.077 127.622 196.628 \
++ 128.971 196.29 130.545 196.178 131.219 195.953 \
++ 132.681 195.84 133.356 195.728 134.143 195.616 \
++ 134.93 195.503 135.829 195.278 137.516 195.278 \
++ 138.303 195.166 139.315 195.166 140.214 195.053 \
++ 141.114 195.053 142.125 194.941 143.137 194.941 \
++ 144.149 194.941 145.161 194.941 146.173 194.941 \
++ 147.297 194.941 148.309 194.941 149.546 194.941 \
++ 150.67 194.941 151.907 194.941 152.919 195.053 \
++ 154.043 195.053 155.168 195.166 156.18 195.166 \
++ 157.192 195.278 158.091 195.391 159.103 195.391 \
++ 160.002 195.503 160.902 195.616 161.801 195.728 \
++ 162.588 195.84 163.375 196.065 164.162 196.178 \
++ 164.949 196.29 165.736 196.628 167.198 197.077 \
++ 168.547 197.527 169.672 197.977 170.571 198.426 \
++ 171.246 198.989 171.808 199.438 172.145 200.001 \
++ 172.258 200.9 171.92 201.575 171.246 202.249 170.009 \
++ 202.811 168.547 203.149 167.76 203.374 166.973 \
++ 203.598 166.186 203.823 165.399 204.048 164.5 \
++ 204.273 163.488 204.385 162.476 204.498 161.464 \
++ 204.61 160.34 204.723 159.103 200.001 159.103 \
++ 200.001 145.049 209.445 145.049 209.445 185.412 \
++ 206.184 185.412 -fill #000000 -outline {} -width 1 -tags logo
++
++ $c create polygon 148.506 261.305 148.506 \
++ 263.554 143.784 263.554 143.784 261.305 143.671 \
++ 260.068 143.334 259.394 142.772 259.056 141.985 \
++ 258.944 141.085 259.056 140.523 259.394 140.074 \
++ 261.755 140.074 263.104 140.523 264.678 141.085 \
++ 265.465 141.985 266.364 146.145 270.637 147.607 \
++ 271.874 148.506 272.998 148.843 274.01 148.956 \
++ 275.359 148.956 277.158 148.843 278.507 148.506 \
++ 279.632 147.944 280.643 147.157 281.43 146.482 \
++ 281.88 145.695 282.218 144.796 282.442 143.784 \
++ 282.667 142.659 282.78 141.535 282.78 140.298 282.78 \
++ 139.286 282.78 138.387 282.667 137.6 282.442 136.925 \
++ 282.218 136.363 281.88 135.576 281.093 135.014 \
++ 280.194 134.564 278.957 134.452 277.608 134.452 \
++ 275.359 139.624 275.359 139.624 277.608 139.736 \
++ 279.069 140.074 279.969 141.535 280.419 142.659 \
++ 280.081 143.334 279.519 143.671 278.62 143.784 \
++ 277.158 143.784 275.809 143.671 275.022 143.334 \
++ 274.235 142.772 273.448 141.985 272.548 137.263 \
++ 267.376 136.251 266.364 135.351 265.465 135.014 \
++ 264.565 134.902 263.554 134.902 261.755 135.014 \
++ 260.518 135.464 259.506 136.026 258.719 136.813 \
++ 257.932 137.488 257.595 138.275 257.145 139.174 \
++ 256.92 140.186 256.695 141.31 256.583 142.435 \
++ 256.583 143.447 256.583 144.458 256.583 145.245 \
++ 256.695 145.92 256.92 147.157 257.482 147.719 \
++ 258.157 148.169 258.944 148.394 260.068 148.506 \
++ 261.305 -fill #000000 -outline {} -width 1 -tags logo
++
++ $c create polygon 165.821 270.187 165.821 \
++ 276.708 165.821 277.833 165.708 278.957 165.483 \
++ 279.856 165.259 280.643 164.921 281.318 164.472 \
++ 281.88 163.909 282.218 163.235 282.555 162.448 \
++ 282.667 161.548 282.78 160.536 282.78 159.3 282.78 \
++ 158.175 282.78 157.051 282.78 156.151 282.667 \
++ 155.364 282.555 154.69 282.218 154.128 281.88 \
++ 153.678 281.318 153.341 280.643 153.116 279.856 \
++ 152.891 278.845 152.778 277.833 152.778 276.708 \
++ 152.778 270.187 152.778 269.063 152.891 268.051 \
++ 153.116 267.264 153.341 266.589 154.128 265.465 \
++ 155.364 264.678 156.151 264.453 157.051 264.228 \
++ 158.063 264.116 159.3 264.116 160.424 264.116 \
++ 161.548 264.228 162.448 264.453 163.235 264.678 \
++ 163.909 265.015 164.472 265.465 164.921 265.915 \
++ 165.483 267.264 165.708 268.051 165.821 269.063 \
++ 165.821 270.187 -fill #000000 -outline {} -width 1 -tags logo
++
++ $c create polygon 177.514 256.583 177.514 \
++ 258.494 177.064 258.494 176.165 258.606 175.715 \
++ 258.944 175.378 259.281 175.265 259.843 175.265 \
++ 264.565 177.514 264.565 177.514 266.927 175.265 \
++ 266.927 175.265 282.78 170.543 282.78 170.543 \
++ 266.927 168.632 266.927 168.632 264.565 170.543 \
++ 264.565 170.543 261.305 170.655 259.843 170.993 \
++ 258.606 171.442 257.707 171.892 257.032 173.579 \
++ 256.358 174.703 256.133 176.165 256.133 176.727 \
++ 256.133 177.064 256.133 177.514 256.583 -fill \
++ #000000 -outline {} -width 1 -tags logo
++
++ $c create polygon 185.946 259.843 185.946 \
++ 264.565 188.757 264.565 188.757 266.927 185.946 \
++ 266.927 185.946 278.62 186.171 279.407 186.509 \
++ 279.969 187.071 280.306 187.858 280.419 188.307 \
++ 280.419 188.757 280.419 188.757 282.78 188.645 \
++ 282.78 188.307 282.78 187.183 282.78 186.509 282.78 \
++ 185.159 282.78 183.923 282.555 182.911 282.33 \
++ 182.236 281.88 181.786 281.206 181.561 280.419 \
++ 181.337 279.407 181.337 278.17 181.337 266.927 \
++ 179.425 266.927 179.425 264.565 181.337 264.565 \
++ 181.337 261.305 185.946 259.843 -fill #000000 \
++ -outline {} -width 1 -tags logo
++
++ $c create polygon 190.219 264.565 194.379 \
++ 264.565 196.29 279.519 196.74 279.519 199.101 \
++ 264.565 204.723 264.565 207.084 279.519 207.534 \
++ 279.519 209.895 264.565 213.605 264.565 209.895 \
++ 282.78 204.723 282.78 201.912 267.376 201.462 \
++ 267.376 199.101 282.78 193.479 282.78 190.219 \
++ 264.565 -fill #000000 -outline {} -width 1 -tags logo
++
++ $c create polygon 229.121 269.175 229.121 282.78 \
++ 224.848 282.78 224.848 280.981 224.061 281.768 \
++ 223.049 282.33 221.925 282.667 220.688 282.78 \
++ 219.564 282.78 218.44 282.555 217.54 282.33 216.866 \
++ 281.88 216.528 281.318 216.191 280.531 216.079 \
++ 279.632 215.966 278.62 215.966 275.359 216.079 \
++ 274.347 216.978 272.998 217.877 272.548 218.44 \
++ 272.211 219.114 271.986 219.789 271.761 220.688 \
++ 271.536 221.588 271.424 222.6 271.311 223.724 \
++ 271.199 224.848 271.087 224.848 269.175 224.736 \
++ 267.826 224.399 266.927 223.612 266.477 222.487 \
++ 266.364 221.7 266.477 221.138 266.927 220.688 \
++ 268.726 220.688 269.175 216.416 269.175 216.528 \
++ 267.938 216.753 266.702 217.203 265.69 217.877 \
++ 265.015 218.44 264.678 219.114 264.453 219.901 \
++ 264.228 220.801 264.116 221.925 264.116 223.049 \
++ 264.116 224.061 264.116 225.073 264.116 225.86 \
++ 264.228 226.535 264.453 227.659 265.015 228.334 \
++ 265.69 228.783 266.702 229.008 267.938 229.121 \
++ 269.175 -fill #000000 -outline {} -width 1 -tags logo
++
++ $c create polygon 243.175 264.565 243.175 \
++ 266.927 242.725 266.927 241.601 266.927 240.701 \
++ 267.151 239.914 267.489 239.352 267.826 239.015 \
++ 268.276 238.678 268.95 238.565 269.737 238.453 \
++ 270.637 238.453 282.78 233.731 282.78 233.731 \
++ 264.565 238.453 264.565 238.453 265.915 239.352 \
++ 265.128 240.364 264.565 242.163 264.116 242.725 \
++ 264.565 243.175 264.565 -fill #000000 -outline {} \
++ -width 1 -tags logo
++
++ $c create polygon 258.129 270.187 258.129 \
++ 274.347 249.696 274.347 249.696 278.17 249.809 \
++ 279.294 250.146 279.969 250.708 280.643 251.607 \
++ 280.981 252.732 280.643 253.406 279.969 253.744 \
++ 279.294 253.969 278.17 253.969 276.708 258.129 \
++ 276.708 258.129 277.608 258.129 278.957 257.904 \
++ 280.081 257.454 281.093 256.779 281.88 256.217 \
++ 282.218 254.643 282.667 253.744 282.78 252.732 \
++ 282.78 251.607 282.78 250.371 282.78 249.359 282.78 \
++ 248.459 282.667 247.672 282.442 246.436 281.88 \
++ 245.986 281.318 245.649 280.643 245.424 279.856 \
++ 245.199 278.957 245.086 277.833 244.974 276.708 \
++ 244.974 270.187 245.086 269.063 245.199 268.051 \
++ 245.311 267.264 245.649 266.589 245.986 265.915 \
++ 246.436 265.465 246.998 265.015 247.672 264.678 \
++ 248.459 264.453 249.359 264.228 250.371 264.116 \
++ 251.607 264.116 252.732 264.116 253.744 264.228 \
++ 254.756 264.453 255.543 264.678 256.217 265.015 \
++ 256.779 265.465 257.229 265.915 257.566 266.589 \
++ 257.791 267.264 258.016 268.051 258.129 269.063 \
++ 258.129 270.187 -fill #000000 -outline {} -width 1 -tags logo
++
++ $c create polygon 272.183 256.583 277.355 \
++ 256.583 277.355 282.78 272.183 282.78 272.183 \
++ 256.583 -fill #000000 -outline {} -width 1 -tags logo
++
++ $c create polygon 295.569 268.726 295.569 282.78 \
++ 290.959 282.78 290.959 269.175 290.847 268.051 \
++ 290.509 267.376 289.947 266.702 289.048 266.364 \
++ 287.923 266.702 287.136 267.376 287.024 268.051 \
++ 287.136 269.175 287.136 282.78 282.527 282.78 \
++ 282.527 264.565 286.687 264.565 287.136 265.915 \
++ 288.036 265.128 289.048 264.565 290.172 264.228 \
++ 291.409 264.116 292.533 264.116 293.433 264.341 \
++ 294.107 264.565 294.669 265.015 295.344 266.477 \
++ 295.569 267.489 295.569 268.726 -fill #000000 \
++ -outline {} -width 1 -tags logo
++
++ $c create polygon 312.434 269.737 312.434 \
++ 270.637 308.274 270.637 308.274 269.175 308.161 \
++ 267.826 307.824 266.927 307.262 266.477 306.363 \
++ 266.364 305.576 266.477 305.013 266.927 304.676 \
++ 267.826 304.564 269.175 304.564 278.17 304.676 \
++ 279.294 305.013 279.969 306.363 280.981 307.262 \
++ 280.643 307.824 279.969 307.937 279.294 307.824 \
++ 278.17 307.824 276.259 312.434 276.259 312.434 \
++ 277.608 312.434 278.957 312.209 280.081 311.759 \
++ 281.093 311.085 281.88 310.523 282.218 309.173 \
++ 282.667 308.386 282.78 307.374 282.78 306.363 282.78 \
++ 305.238 282.78 304.226 282.78 303.327 282.667 \
++ 302.427 282.442 301.753 282.218 301.191 281.88 \
++ 300.853 281.318 300.516 280.643 300.179 279.856 \
++ 299.954 278.957 299.841 277.833 299.841 276.708 \
++ 299.841 270.187 299.841 269.063 299.954 268.051 \
++ 300.179 267.264 300.404 266.589 301.191 265.465 \
++ 302.427 264.678 303.327 264.453 304.226 264.228 \
++ 305.238 264.116 306.363 264.116 307.374 264.116 \
++ 308.386 264.228 309.173 264.453 309.96 264.678 \
++ 310.523 265.015 311.085 265.465 311.759 266.252 \
++ 312.209 267.264 312.434 268.388 312.434 269.737 \
++ -fill #000000 -outline {} -width 1 -tags logo
++
++ $c create polygon 316.706 279.069 320.866 \
++ 279.069 320.866 282.78 316.706 282.78 316.706 \
++ 279.069 -fill #000000 -outline {} -width 1 -tags logo
++
++ $c create polygon 48.215 186.312 48.215 185.412 \
++ 47.766 184.4 47.766 183.501 47.316 183.501 47.316 \
++ 182.601 46.416 181.59 46.416 181.14 45.967 180.24 \
++ 45.405 179.791 44.955 179.228 44.055 178.329 43.606 \
++ 177.879 43.156 177.43 42.144 176.98 41.694 176.418 \
++ 41.245 175.968 38.883 175.068 36.972 174.169 36.522 \
++ 174.169 35.173 173.607 34.723 174.169 31.913 173.607 \
++ 31.913 174.169 29.551 173.607 29.551 174.169 28.54 \
++ 174.169 28.09 174.619 27.19 174.169 27.19 174.619 \
++ 26.741 174.619 25.729 175.068 23.93 175.518 22.918 \
++ 175.068 22.468 175.518 20.669 176.418 19.657 176.418 \
++ 15.048 178.779 14.036 179.228 12.686 180.24 12.237 \
++ 180.69 11.225 181.59 10.775 182.039 10.325 182.601 \
++ 10.775 182.601 10.325 184.4 10.775 184.85 11.225 \
++ 186.312 14.036 188.223 14.485 188.673 16.846 190.022 \
++ 17.296 190.472 17.296 191.034 15.947 191.933 15.048 \
++ 192.383 14.485 192.833 14.036 193.283 13.136 193.845 \
++ 12.237 194.295 12.686 195.644 12.686 196.094 12.237 \
++ 197.555 12.237 198.005 11.675 198.904 12.237 200.816 \
++ 12.237 202.277 12.237 204.526 11.675 205.988 12.237 \
++ 205.988 12.237 206.437 12.237 207.337 12.686 208.349 \
++ 12.686 209.248 13.136 209.698 12.686 211.16 13.136 \
++ 212.509 13.136 213.521 13.586 215.32 13.586 216.781 \
++ 13.586 217.681 14.036 220.492 14.485 222.403 15.048 \
++ 222.853 15.947 222.853 15.947 222.403 16.397 221.953 \
++ 16.846 216.781 17.296 215.32 17.858 211.609 18.308 \
++ 210.71 18.308 210.148 18.308 209.248 17.858 208.798 \
++ 17.858 207.899 18.308 206.437 18.308 205.538 18.308 \
++ 205.088 18.308 203.627 16.846 203.627 15.947 203.177 \
++ 15.947 202.727 15.947 202.277 16.397 201.715 16.846 \
++ 201.715 17.858 201.715 18.308 201.715 18.758 201.265 \
++ 18.308 200.816 17.858 199.916 18.308 198.455 17.858 \
++ 198.455 17.858 193.283 19.208 192.383 20.107 191.933 \
++ 21.569 191.484 22.018 191.484 22.918 192.383 22.918 \
++ 192.833 23.48 192.833 23.93 198.005 23.48 199.467 \
++ 23.93 202.277 25.279 202.277 29.551 202.727 30.001 \
++ 202.277 30.901 202.277 31.913 202.277 35.623 201.265 \
++ 36.522 201.265 36.972 200.816 37.984 200.816 38.883 \
++ 200.816 39.333 200.366 40.345 199.916 40.795 199.916 \
++ 42.594 198.455 44.055 198.005 44.055 197.555 44.505 \
++ 197.105 46.416 195.644 46.416 194.744 46.866 194.295 \
++ 47.316 193.845 47.766 193.283 47.316 192.833 48.215 \
++ 190.472 48.215 190.022 48.215 189.572 48.215 188.673 \
++ 48.215 187.211 48.215 186.762 48.215 186.312 -fill \
++ $bg -outline {} -width 1 -tags logo
++
++ $c create polygon 76.886 142.688 81.046 142.688 \
++ 82.508 142.35 83.407 140.889 83.632 140.327 83.969 \
++ 138.865 84.082 137.965 84.194 137.066 84.307 136.054 \
++ 84.307 134.93 84.307 133.805 84.307 132.456 84.194 \
++ 131.332 84.082 130.208 83.857 129.308 83.632 128.409 \
++ 83.407 127.734 82.395 126.272 81.046 125.823 76.886 \
++ 125.823 76.886 142.688 -fill $bg -outline {} -width \
++ 1 -tags logo
++
++ $c create polygon 97.461 148.309 97.461 149.546 \
++ 97.461 150.783 97.461 152.02 97.574 153.144 97.574 \
++ 154.268 97.686 155.28 97.686 156.405 97.799 157.416 \
++ 97.799 158.316 97.911 159.328 98.023 160.227 98.136 \
++ 161.127 98.361 162.701 98.473 163.488 98.586 164.275 \
++ 98.698 164.949 98.81 165.736 99.373 167.535 99.822 \
++ 169.109 100.497 170.234 101.059 171.133 101.846 \
++ 171.583 102.633 171.808 104.095 171.133 104.769 \
++ 170.234 105.332 169.109 105.894 167.535 106.343 \
++ 165.736 106.456 164.949 106.681 164.275 106.793 \
++ 163.488 106.906 162.701 107.018 161.914 107.243 \
++ 160.227 107.355 159.328 107.355 158.316 107.468 \
++ 157.416 107.58 156.405 107.58 155.28 107.693 154.268 \
++ 107.693 153.144 107.693 152.02 107.693 150.783 \
++ 107.805 149.546 107.805 148.309 107.805 147.073 \
++ 107.693 145.836 107.693 144.711 107.693 143.587 \
++ 107.693 142.463 107.58 141.338 107.58 140.327 \
++ 107.468 139.315 107.355 138.303 107.355 137.403 \
++ 107.243 136.504 107.131 135.604 106.906 133.918 \
++ 106.793 133.131 106.681 132.456 106.456 131.669 \
++ 106.343 130.995 105.894 129.196 105.332 127.622 \
++ 104.769 126.497 104.095 125.598 103.42 125.148 \
++ 102.633 124.923 101.846 125.148 101.059 125.598 \
++ 100.497 126.497 99.822 127.622 99.373 129.196 98.81 \
++ 130.995 98.698 131.669 98.586 132.456 98.473 133.131 \
++ 98.361 133.918 98.248 134.817 98.023 136.504 97.911 \
++ 137.403 97.799 138.303 97.799 139.315 97.686 140.327 \
++ 97.686 141.338 97.574 142.463 97.574 143.587 97.461 \
++ 144.711 97.461 145.836 97.461 147.073 97.461 148.309 \
++ -fill $bg -outline {} -width 1 -tags logo
++
++ $c create polygon 122.309 156.292 126.919 \
++ 156.292 124.67 130.545 122.309 156.292 -fill $bg \
++ -outline {} -width 1 -tags logo
++
++ $c create polygon 142.435 142.688 146.145 \
++ 142.688 147.607 142.35 148.506 140.889 148.731 \
++ 140.327 149.068 138.865 149.181 137.965 149.293 \
++ 137.066 149.405 136.054 149.405 134.93 149.405 \
++ 133.805 149.405 132.456 149.405 131.332 149.405 \
++ 130.208 149.293 129.308 149.181 128.409 148.956 \
++ 127.734 148.056 126.272 146.595 125.823 142.435 \
++ 125.823 142.435 142.688 -fill $bg -outline {} -width \
++ 1 -tags logo
++
++ $c create polygon 111.515 228.924 111.515 \
++ 227.575 111.066 225.664 108.705 221.391 108.255 \
++ 220.042 108.255 219.142 108.255 218.58 108.255 \
++ 218.13 107.805 217.681 106.793 218.58 104.994 \
++ 220.941 104.432 221.953 102.633 224.202 102.183 \
++ 224.764 101.621 225.214 99.822 228.474 97.461 \
++ 233.197 97.461 234.096 97.461 234.995 97.911 235.445 \
++ 98.361 236.007 99.822 236.457 102.633 236.457 \
++ 104.432 235.445 105.894 234.995 106.343 234.546 \
++ 106.793 234.546 107.805 233.646 110.616 230.835 \
++ 111.515 229.824 111.515 229.374 111.515 228.924 \
++ -fill $bg -outline {} -width 1 -tags logo
++
++ $c create polygon 161.211 269.175 160.986 \
++ 267.826 160.649 266.927 160.199 266.477 159.3 \
++ 266.364 158.4 266.477 157.838 266.927 157.613 \
++ 267.826 157.388 269.175 157.388 278.17 157.613 \
++ 279.294 157.838 279.969 159.3 280.981 160.199 \
++ 280.643 160.649 279.969 160.986 279.294 161.211 \
++ 278.17 161.211 269.175 -fill $bg -outline {} -width \
++ 1 -tags logo
++
++ $c create polygon 224.848 273.448 223.836 \
++ 273.448 222.825 273.56 222.15 273.673 221.588 \
++ 273.897 220.913 274.684 220.688 275.809 220.688 \
++ 278.17 220.801 279.294 221.138 279.969 221.7 280.643 \
++ 222.487 280.981 223.612 280.643 224.399 279.969 \
++ 224.736 279.294 224.848 278.17 224.848 273.448 -fill \
++ $bg -outline {} -width 1 -tags logo
++
++ $c create polygon 253.969 269.175 253.744 \
++ 267.826 253.406 266.927 252.732 266.477 251.607 \
++ 266.364 250.708 266.477 250.146 266.927 249.696 \
++ 269.175 249.696 272.548 253.969 272.548 253.969 \
++ 269.175 -fill $bg -outline {} -width 1 -tags logo
++
++}
++
++#***********************************************************************
++# %PROCEDURE: LoadConnectionInfo
++# %ARGUMENTS:
++# None
++# %RETURNS:
++# Nothing
++# %DESCRIPTION:
++# Loads the connection information into the global ConnectionInfo variable
++#***********************************************************************
++proc LoadConnectionInfo {} {
++ global ConnectionInfoFile ConnectionInfo PasswordFile
++ set ConnectionInfo {}
++ if {![file exists $ConnectionInfoFile]} {
++ return
++ }
++ set problem [catch {
++ set fp [open $ConnectionInfoFile &quot;r&quot;]
++ while {1} {
++ if {[gets $fp line] &lt; 0} {
++ break
++ }
++ set line [string trim $line]
++ if {[string match &quot;#*&quot; $line]} {
++ continue
++ }
++ if {&quot;$line&quot; == &quot;&quot;} {
++ continue
++ }
++ set ConnectionInfo $line
++ break
++ }
++ close $fp
++ } err]
++ if {$problem} {
++ tk_dialog .err Error &quot;Error loading configuration file: $err&quot; error 0 OK
++ }
++ # Try loading and merging passwords if the password file is readable
++ if {![file readable $PasswordFile]} {
++ return
++ }
++
++ set fp [open $PasswordFile &quot;r&quot;]
++ while {1} {
++ if {[gets $fp line] &lt; 0} {
++ break
++ }
++ set line [string trim $line]
++ if {[string match &quot;#*&quot; $line]} {
++ continue
++ }
++ if {&quot;$line&quot; == &quot;&quot;} {
++ continue
++ }
++ set passwords $line
++ break
++ }
++ close $fp
++
++ # Merge passwords
++ foreach thing $passwords {
++ set name [value $thing ConnectionName]
++ set password [value $thing Password]
++ set conn [GetConnection $name]
++ if {&quot;$conn&quot; != &quot;&quot;} {
++ lappend conn Password $password
++ ReplaceConnection $conn
++ }
++ }
++}
++
++#***********************************************************************
++# %PROCEDURE: GetConnection
++# %ARGUMENTS:
++# name -- name of connection
++# %RETURNS:
++# key/value pair listing connection configuration, or &quot;&quot; if not found.
++#***********************************************************************
++proc GetConnection { name } {
++ global ConnectionInfo
++ foreach thing $ConnectionInfo {
++ if {[value $thing ConnectionName] == &quot;$name&quot;} {
++ return $thing
++ }
++ }
++ return &quot;&quot;
++}
++
++
++#***********************************************************************
++# %PROCEDURE: DeleteConnection
++# %ARGUMENTS:
++# name -- name of connection
++# %RETURNS:
++# Nothing, but deletes connection named &quot;$name&quot;
++#***********************************************************************
++proc DeleteConnection { name } {
++ global ConnectionInfo ConfigDir
++ set newInfo {}
++ set found 0
++ foreach thing $ConnectionInfo {
++ if {[value $thing ConnectionName] == &quot;$name&quot;} {
++ set found 1
++ } else {
++ lappend newInfo $thing
++ }
++ }
++ if {!$found} {
++ return
++ }
++ set ConnectionInfo $newInfo
++ SaveConnectionInfo
++
++ # Delete the config file
++ set fname [file join $ConfigDir conf.$name]
++ catch { file delete $fname }
++
++ BuildConnectionMenu
++ if {[GetCurrentConnection] == $name} {
++ if {[llength $ConnectionInfo] == 0} {
++ SwitchConnection &quot;&quot;
++ } else {
++ set name [value [lindex $ConnectionInfo 0] ConnectionName]
++ SwitchConnection $name
++ }
++ }
++}
++
++#***********************************************************************
++# %PROCEDURE: ReplaceConnection
++# %ARGUMENTS:
++# conn -- new name/value pairs
++# %RETURNS:
++# Nothing, but replaces connection in ConnectionInfo. If no such
++# connection exists, appends new connection.
++#***********************************************************************
++proc ReplaceConnection { conn } {
++ global ConnectionInfo
++ set name [value $conn ConnectionName]
++ set newInfo {}
++ set found 0
++ foreach thing $ConnectionInfo {
++ if {[value $thing ConnectionName] == &quot;$name&quot;} {
++ lappend newInfo $conn
++ set found 1
++ } else {
++ lappend newInfo $thing
++ }
++ }
++ if {!$found} {
++ lappend newInfo $conn
++ }
++ set ConnectionInfo $newInfo
++}
++
++proc DeletePPPoEConnection {} {
++ set conn [GetCurrentConnection]
++ if {&quot;$conn&quot; == &quot;&quot;} {
++ return
++ }
++ set ans [tk_dialog .confirm &quot;Confirm Deletion - RP-PPPoE&quot; &quot;Are you sure you wish to delete the connection `$conn'?&quot; warning 0 No Yes]
++ if {$ans} {
++ DeleteConnection $conn
++ }
++}
++
++#***********************************************************************
++# %PROCEDURE: CreateMainDialog
++# %ARGUMENTS:
++# None
++# %RETURNS:
++# Nothing
++# %DESCRIPTION:
++# Creates the main window
++#***********************************************************************
++proc CreateMainDialog {} {
++ global ConnectionInfoFile
++ global ConnectionInfo
++ global Admin
++ wm title . &quot;RP-PPPoE&quot;
++ wm iconname . &quot;PPPoE&quot;
++ frame .f1
++ label .l1 -text &quot;Connection: &quot;
++ menubutton .m1 -text &quot;&quot; -indicatoron 1 -menu .m1.menu -relief raised
++ menu .m1.menu -tearoff 0
++ pack .l1 .m1 -in .f1 -side left -expand 0 -fill x
++ canvas .c -width 40 -height 20
++ pack .c -in .f1 -side left -expand 0 -fill none
++
++ # Draw the LED's
++ .c create rectangle 10 1 30 8 -outline &quot;#808080&quot; -fill &quot;#A0A0A0&quot; -tags xmitrect
++ .c create rectangle 10 10 30 18 -outline &quot;#808080&quot; -fill &quot;#A0A0A0&quot; -tags recvrect
++
++ frame .buttons
++ button .start -text &quot;Start&quot; -command &quot;StartPPPoEConnection&quot;
++ button .stop -text &quot;Stop&quot; -command &quot;StopPPPoEConnection&quot;
++ button .exit -text &quot;Exit&quot; -command &quot;exit&quot;
++ canvas .graph -width 1 -height 1
++ if {[file writable $ConnectionInfoFile]} {
++ set Admin 1
++ pack .f1 -side top -expand 1 -fill both
++ pack .buttons -side top -expand 0 -fill x
++ button .delete -text &quot;Delete&quot; -command &quot;DeletePPPoEConnection&quot;
++ button .new -text &quot;New Connection...&quot; -command &quot;NewPPPoEConnection&quot;
++ button .props -text &quot;Properties...&quot; -command &quot;EditConnectionProps&quot;
++ pack .graph -in .f1 -side left -expand 1 -fill both
++ pack .start .stop .delete .props .new .exit -in .buttons -side left -expand 0 -fill none
++ } else {
++ set Admin 0
++ pack .f1 -side top -expand 0 -fill x
++ pack .buttons -side top -expand 1 -fill both
++ pack .start .stop .exit -in .buttons -side left -expand 0 -fill none
++ pack .graph -in .buttons -side left -expand 1 -fill both
++ }
++
++ LoadConnectionInfo
++ BuildConnectionMenu
++ # If no connections exist, pop up new connection dialog
++ if {[llength $ConnectionInfo] == 0} {
++ SwitchConnection &quot;&quot;
++ if {$Admin} {
++ update idletasks
++ NewPPPoEConnection
++ } else {
++ tk_dialog .note Note &quot;Note: There are no connections defined. You must run this program as root to define connections&quot; warning 0 OK
++ }
++ } else {
++ set con [lindex $ConnectionInfo 0]
++ set name [value $con ConnectionName]
++ SwitchConnection $name
++ }
++}
++
++#***********************************************************************
++# %PROCEDURE: GetCurrentConnection
++# %ARGUMENTS:
++# None
++# %RETURNS:
++# The name of the current connection in the GUI.
++#***********************************************************************
++proc GetCurrentConnection {} {
++ .m1 cget -text
++}
++
++#***********************************************************************
++# %PROCEDURE: value
++# %ARGUMENTS:
++# lst -- a list of key/value pairs
++# key -- key we're looking for
++# %RETURNS:
++# value corresponding to $key, or &quot;&quot; if not found.
++#***********************************************************************
++proc value { lst key } {
++ set idx [lsearch -exact $lst $key]
++ if {$idx &gt;= 0} {
++ return [lindex $lst [expr $idx+1]]
++ }
++ return &quot;&quot;
++}
++
++#***********************************************************************
++# %PROCEDURE: SwitchConnection
++# %ARGUMENTS:
++# name -- new connection name
++# %DESCRIPTION:
++# Makes $name the active connection
++#***********************************************************************
++proc SwitchConnection { name } {
++ .m1 configure -text $name
++ SetButtonStates
++ UpdateConnectionState 0
++}
++
++#***********************************************************************
++# %PROCEDURE: EditConnectionProps
++# %ARGUMENTS:
++# None
++# %DESCRIPTION:
++# Pops up edit window for current connection
++#***********************************************************************
++proc EditConnectionProps {} {
++ global ConnectionInfo
++ set conn [GetCurrentConnection]
++ NewPPPoEConnection $conn
++}
++
++#***********************************************************************
++# %PROCEDURE: FillConnectionGui
++# %ARGUMENTS:
++# w -- connection property GUI
++# name -- name of connection
++# %DESCRIPTION:
++# Fills GUI with values corresponding to $name.
++#***********************************************************************
++proc FillConnectionGui { w name } {
++ global ConnectionInfo
++ set found [GetConnection $name]
++ if {&quot;$found&quot; != &quot;&quot;} {
++ ListToSetupGui $w $found
++ }
++}
++
++#***********************************************************************
++# %PROCEDURE: BuildConnectionMenu
++# %ARGUMENTS:
++# None
++# %RETURNS:
++# Nothing
++# %DESCRIPTION:
++# Builds the connection menu
++#***********************************************************************
++proc BuildConnectionMenu {} {
++ global ConnectionInfo
++ .m1.menu delete 0 end
++ foreach connection $ConnectionInfo {
++ set name [value $connection ConnectionName]
++ .m1.menu add command -label $name -command [list SwitchConnection $name]
++ }
++ .m1.menu add separator
++ .m1.menu add command -label &quot;User's Manual&quot; -command Help
++}
++
++#***********************************************************************
++# %PROCEDURE: SetButtonStates
++# %ARGUMENTS:
++# None
++# %RETURNS:
++# Nothing
++# %DESCRIPTION:
++# Enables or disables buttons, as appropriate
++#***********************************************************************
++proc SetButtonStates {} {
++ global Admin
++ set conn [GetCurrentConnection]
++ if {&quot;$conn&quot; == &quot;&quot;} {
++ .start configure -state disabled
++ .stop configure -state disabled
++ catch {
++ .delete configure -state disabled
++ .props configure -state disabled
++ .new configure -state normal
++ }
++ } else {
++ foreach {startstop updown interface} [GetConnectionStatus $conn] {break}
++ if {&quot;$startstop&quot; == &quot;started&quot;} {
++ .start configure -state disabled
++ .stop configure -state normal
++ } else {
++ .start configure -state normal
++ .stop configure -state disabled
++ }
++ catch {
++ .delete configure -state normal
++ .props configure -state normal
++ .new configure -state normal
++ }
++ if {!$Admin} {
++ set ok [value [GetConnection $conn] NonrootOK]
++ if {!$ok} {
++ .start configure -state disabled
++ .stop configure -state disabled
++ }
++ }
++ }
++}
++
++#***********************************************************************
++# %PROCEDURE: GetEthernetInterfaces
++# %ARGUMENTS:
++# None
++# %RETURNS:
++# A list of Ethernet interfaces
++#***********************************************************************
++proc GetEthernetInterfaces {} {
++ set ifs {}
++ set fp [open &quot;|/sbin/ifconfig&quot; &quot;r&quot;]
++ while {[gets $fp line] &gt;= 0} {
++ if {[regexp {^eth[0-9]+} $line eth]} {
++ lappend ifs $eth
++ }
++ }
++ return $ifs
++}
++
++#***********************************************************************
++# %PROCEDURE: StartPPPoEConnection
++# %ARGUMENTS:
++# None
++# %RETURNS:
++# Nothing
++# %DESCRIPTION:
++# Starts currently-selected PPPoE connection.
++#***********************************************************************
++proc StartPPPoEConnection {} {
++ global Wrapper
++ global StartState
++ global UpdateToken
++
++ set conn [GetCurrentConnection]
++ if {&quot;$conn&quot; == &quot;&quot;} {
++ return
++ }
++
++ if {&quot;$UpdateToken&quot; != &quot;&quot;} {
++ after cancel $UpdateToken
++ set UpdateToken &quot;&quot;
++ }
++
++ catch { unset StartState }
++ set StartState(chars) &quot;&quot;
++ set StartState(status) &quot;&quot;
++ set StartState(msg) &quot;&quot;
++ set StartState(flip) 0
++
++ set fp [open &quot;|$Wrapper start $conn&quot; &quot;r&quot;]
++
++ # Set fileevent
++ fileevent $fp readable [list StartFPReadable $fp]
++
++ LockGui $fp
++ vwait StartState(status)
++ UnlockGui
++
++ if {$StartState(status) == &quot;failed&quot;} {
++ tk_dialog .err Error &quot;Error starting connection: $StartState(msg)&quot; error 0 OK
++ }
++ SetButtonStates
++ UpdateConnectionState 0
++}
++
++proc LockGui { fp } {
++ .start configure -state disabled
++ .stop configure -state normal -command [list AbortConnection $fp]
++ .exit configure -state disabled
++ .m1 configure -state disabled
++ grab set .stop
++}
++
++proc UnlockGui {} {
++ .start configure -state normal
++ .stop configure -state disabled -command StopPPPoEConnection
++ .exit configure -state normal
++ .m1 configure -state normal
++ grab release .stop
++}
++
++proc AbortConnection { fp } {
++ global StartState
++ catch { StopPPPoEConnection }
++ catch { close $fp }
++ set StartState(msg) &quot;Connection aborted by user&quot;
++ set StartState(status) &quot;failed&quot;
++}
++
++#***********************************************************************
++# %PROCEDURE: StartFPReadable
++# %ARGUMENTS:
++# fp -- file handle
++# %RETURNS:
++# Nothing
++# %DESCRIPTION:
++# Called when the &quot;adsl-start&quot; file handle is readable.
++#***********************************************************************
++proc StartFPReadable { fp } {
++ global StartState
++ set char [read $fp 1]
++ if {$char == &quot;&quot;} {
++ set uhoh [catch {close $fp} err]
++ if {$uhoh} {
++ set StartState(status) &quot;failed&quot;
++ set StartState(msg) $err
++ } else {
++ set StartState(status) &quot;succeeded&quot;
++ }
++ return
++ }
++ append StartState(chars) $char
++ if {$StartState(flip)} {
++ ConnectionStateDown
++ } else {
++ ConnectionStateOff
++ }
++ set StartState(flip) [expr 1 - $StartState(flip)]
++}
++
++#***********************************************************************
++# %PROCEDURE: StopPPPoEConnection
++# %ARGUMENTS:
++# None
++# %RETURNS:
++# Nothing
++# %DESCRIPTION:
++# Stops currently-selected PPPoE connection.
++#***********************************************************************
++proc StopPPPoEConnection {} {
++ global Wrapper
++ set conn [GetCurrentConnection]
++ if {&quot;$conn&quot; == &quot;&quot;} {
++ return
++ }
++ set fp [open &quot;|$Wrapper stop $conn&quot; &quot;r&quot;]
++ while {1} {
++ set char [read $fp 1]
++ if {&quot;$char&quot; == &quot;&quot;} {
++ break;
++ }
++ }
++ set uhoh [catch {close $fp} err]
++ if {$uhoh} {
++ # Ignore a common error
++ if {![string match &quot;*appears to have died*&quot; $err]} {
++ tk_dialog .err Error &quot;Error stopping connection: $err&quot; error 0 OK
++ }
++ }
++ SetButtonStates
++ UpdateConnectionState 0
++}
++
++#***********************************************************************
++# %PROCEDURE: NewPPPoEConnection
++# %ARGUMENTS:
++# name -- if supplied, we're editing the existing connection &quot;name&quot;
++# %RETURNS:
++# Nothing
++# %DESCRIPTION:
++# Creates a new PPPoE connection
++#***********************************************************************
++proc NewPPPoEConnection {{name &quot;&quot;}} {
++ set w .newcon
++ if {[winfo exists $w]} {
++ wm deiconify $w
++ raise $w
++ return
++ }
++
++ toplevel $w
++ if {&quot;$name&quot; == &quot;&quot;} {
++ wm title $w &quot;New Connection - RP-PPPoE&quot;
++ wm iconname $w &quot;New Connection&quot;
++ } else {
++ wm title $w &quot;Edit Connection - RP-PPPoE&quot;
++ wm iconname $w &quot;Edit Connection&quot;
++ }
++ wm withdraw $w
++
++ tabnotebook_create $w.tn
++ set basic [tabnotebook_page $w.tn &quot;Basic&quot;]
++ set interface [tabnotebook_page $w.tn &quot;NIC and DNS&quot;]
++ set opts [tabnotebook_page $w.tn &quot;Options&quot;]
++ set advanced [tabnotebook_page $w.tn &quot;Advanced&quot;]
++
++ # ----------- BASIC PAGE -------------
++ label $w.lconName -text &quot;Connection Name: &quot; -anchor e
++ if {&quot;$name&quot; != &quot;&quot;} {
++ label $w.conName -text $name -anchor w
++ } else {
++ entry $w.conName -width 15
++ RegisterHelpWindow $w.lconName &quot;Enter a name for this connection. It can contain letters, numbers, undescores and the minus-sign.&quot; $w.help
++ RegisterHelpWindow $w.conName &quot;Enter a name for this connection. It can contain letters, numbers, undescores and the minus-sign.&quot; $w.help
++ }
++
++ label $w.luser -text &quot;User Name: &quot; -anchor e
++ entry $w.user -width 15
++ RegisterHelpWindow $w.luser &quot;Enter your user name. Do not add a domain-name after the user name.&quot; $w.help
++ RegisterHelpWindow $w.user &quot;Enter your user name. Do not add a domain-name after the user name.&quot; $w.help
++
++ label $w.lnet -text &quot;Network: &quot; -anchor e
++ entry $w.network -width 15
++ RegisterHelpWindow $w.lnet &quot;Some ISP's require you to enter their domain-name here (e.g. \&quot;sympatico.ca\&quot;).&quot; $w.help
++ RegisterHelpWindow $w.network &quot;Some ISP's require you to enter their domain-name here (e.g. \&quot;sympatico.ca\&quot;).&quot; $w.help
++
++ label $w.lpass -text &quot;Password: &quot; -anchor e
++ entry $w.pass -width 15 -show &quot;*&quot;
++ RegisterHelpWindow $w.lpass &quot;Enter your password.&quot; $w.help
++ RegisterHelpWindow $w.pass &quot;Enter your password.&quot; $w.help
++
++ grid $w.lconName $w.conName -in $basic -sticky nsew
++ grid $w.luser $w.user -in $basic -sticky nsew
++ grid $w.lnet $w.network -in $basic -sticky nsew
++ grid $w.lpass $w.pass -in $basic -sticky nsew
++ grid columnconfigure $basic 1 -weight 1
++
++ # ----------- INTERFACES PAGE -------------
++ set ifs {}
++ catch {set ifs [GetEthernetInterfaces]}
++
++ label $w.lifname -text &quot;Ethernet Interface: &quot; -anchor e
++ entry $w.ifname -width 8
++ RegisterHelpWindow $w.lifname &quot;Enter Ethernet interface to which DSL modem is attached.&quot; $w.help
++ RegisterHelpWindow $w.ifname &quot;Enter Ethernet interface to which DSL modem is attached.&quot; $w.help
++
++ if {[llength $ifs] &gt; 0} {
++ menubutton $w.ifmb -relief raised -text &quot;...&quot; -menu $w.ifmb.menu
++ RegisterHelpWindow $w.ifmb &quot;Browse detected Ethernet interface names.&quot; $w.help
++ menu $w.ifmb.menu -tearoff 0
++ foreach if $ifs {
++ $w.ifmb.menu add command -label $if -command &quot;$w.ifname delete 0 end; $w.ifname insert end [list $if]&quot;
++ }
++ grid $w.lifname $w.ifname $w.ifmb -in $interface -sticky nsew
++ } else {
++ grid $w.lifname $w.ifname - -in $interface -sticky nsew
++ }
++
++ label $w.ldns -text &quot;DNS Setup: &quot; -anchor e
++ menubutton $w.dns -text &quot;From Server&quot; -menu $w.dns.menu -relief raised -indicatoron 1
++ menu $w.dns.menu -tearoff 0
++ foreach thing {&quot;From Server&quot; &quot;Specify&quot; &quot;Do not Adjust&quot;} {
++ $w.dns.menu add command -label $thing -command [list SetDNSOption $w $thing]
++ }
++ RegisterHelpWindow $w.ldns &quot;DNS server options:\n'From Server' - Let PPPoE server specify DNS servers\n'Specify' - Enter IP addresses of DNS servers yourself\n'Do not Adjust' - Leave your DNS setup alone.&quot; $w.help
++ RegisterHelpWindow $w.dns &quot;DNS server options:\n'From Server' - Let PPPoE server specify DNS servers\n'Specify' - Enter IP addresses of DNS servers yourself\n'Do not Adjust' - Leave your DNS setup alone.&quot; $w.help
++
++ label $w.ldns1 -text &quot;Primary DNS: &quot; -anchor e
++ entry $w.dns1 -width 16
++ RegisterHelpWindow $w.ldns1 &quot;Enter the IP address of the primary DNS server.&quot; $w.help
++ RegisterHelpWindow $w.dns1 &quot;Enter the IP address of the primary DNS server.&quot; $w.help
++ label $w.ldns2 -text &quot;Secondary DNS: &quot; -anchor e
++ entry $w.dns2 -width 16
++ RegisterHelpWindow $w.ldns2 &quot;Enter the IP address of the secondary DNS server.&quot; $w.help
++ RegisterHelpWindow $w.dns2 &quot;Enter the IP address of the secondary DNS server.&quot; $w.help
++
++ SetDNSOption $w &quot;From Server&quot;
++ grid $w.ldns $w.dns - -in $interface -sticky nsew
++ grid $w.ldns1 $w.dns1 - -in $interface -sticky nsew
++ grid $w.ldns2 $w.dns2 - -in $interface -sticky nsew
++
++ # If only one Ethernet interface, select it by default
++ if {[llength $ifs] == 1} {
++ $w.ifname insert end [lindex $ifs 0]
++ }
++
++ grid columnconfigure $interface 1 -weight 1
++ # ----------- OPTS PAGE -------------
++ checkbutton $w.nonroot -text &quot;Allow use by non-root users&quot; -variable OPTS(nonroot) -anchor w
++ RegisterHelpWindow $w.nonroot &quot;If enabled, ordinary users can start and stop this connection.&quot; $w.help
++ checkbutton $w.sync -text &quot;Use synchronous PPP&quot; -variable OPTS(sync) -anchor w
++ RegisterHelpWindow $w.sync &quot;Use synchronous PPP (recommended -- easier on the CPU.)&quot; $w.help
++ label $w.lfw -text &quot;Firewalling: &quot; -anchor e
++ if {[llength $ifs] == 1} {
++ set defaultFW &quot;Stand-Alone&quot;
++ } else {
++ set defaultFW &quot;Masquerading&quot;
++ }
++ menubutton $w.fw -text $defaultFW -menu $w.fw.menu -indicatoron 1 -relief raised
++ menu $w.fw.menu -tearoff 0
++ foreach type {Stand-Alone Masquerading None} {
++ $w.fw.menu add command -label $type -command [list $w.fw configure -text $type]
++ }
++
++ RegisterHelpWindow $w.lfw &quot;Firewalling options:\nStand-Alone - A stand-alone machine.\nMasquerading - A gateway machine used for Internet sharing.\nNone - Use if you already have your own firewall rules or want to run servers.&quot; $w.help
++ RegisterHelpWindow $w.fw &quot;Firewalling options:\nStand-Alone - A stand-alone machine.\nMasquerading - A gateway machine used for Internet sharing.\nNone - Use if you already have your own firewall rules or want to run servers.&quot; $w.help
++ grid $w.nonroot - -in $opts -sticky nsew
++ grid $w.sync - -in $opts -sticky nsew
++ grid $w.lfw $w.fw -in $opts -sticky nsw
++ grid columnconfigure $opts 1 -weight 1
++
++ # ----------- ADVANCED PAGE -------------
++ label $w.lsn -text &quot;Service-Name: &quot; -anchor e
++ entry $w.servicename -width 24
++
++ label $w.lac -text &quot;AC-Name: &quot; -anchor e
++ entry $w.acname -width 24
++
++ RegisterHelpWindow $w.lac &quot;Enter access concentrator name if required. Most ISPs do not require this; try leaving it blank.&quot; $w.help
++ RegisterHelpWindow $w.acname &quot;Enter access concentrator name if required. Most ISPs do not require this; try leaving it blank.&quot; $w.help
++ grid $w.lsn $w.servicename -in $advanced -sticky nsew
++ grid $w.lac $w.acname -in $advanced -sticky nsew
++ RegisterHelpWindow $w.lsn &quot;Enter service name if required. Most ISPs do not require this; try leaving it blank.&quot; $w.help
++ RegisterHelpWindow $w.servicename &quot;Enter service name if required. Most ISPs do not require this; try leaving it blank.&quot; $w.help
++
++ grid columnconfigure $advanced 1 -weight 1
++
++ # ----------- BUTTONS -------------
++ frame $w.buttons
++ button $w.ok -text &quot;OK&quot; -command [list NewPPPoEConnectionOK $name $w]
++ button $w.cancel -text &quot;Cancel&quot; -command [list destroy $w]
++ pack $w.ok $w.cancel -in $w.buttons -expand 0 -fill none -side left
++
++ pack $w.tn -side top -expand 1 -fill both
++
++ text $w.help -width 60 -wrap word -state disabled -height 6
++ pack $w.help -side top -expand 0 -fill both
++ pack $w.buttons -side top -expand 0 -fill x
++
++ # If we're editing existing connection, fill GUI with current values
++ if {&quot;$name&quot; != &quot;&quot;} {
++ FillConnectionGui $w $name
++ }
++ wm deiconify $w
++ update idletasks
++ raise $w
++}
++
++#***********************************************************************
++# %PROCEDURE: SetDNSOption
++# %ARGUMENTS:
++# w -- connection-editing window
++# opt -- value of DNS option
++# %RETURNS:
++# Nothing
++# %DESCRIPTION:
++# Adjusts GUI for specified option
++#***********************************************************************
++proc SetDNSOption { w opt } {
++ $w.dns configure -text $opt
++ if {&quot;$opt&quot; == &quot;Specify&quot;} {
++ $w.dns1 configure -state normal -background white
++ $w.dns2 configure -state normal -background white
++ } else {
++ $w.dns1 configure -state disabled -background &quot;#d9d9d9&quot;
++ $w.dns2 configure -state disabled -background &quot;#d9d9d9&quot;
++ }
++}
++
++# ----------------------------------------------------------------------
++# Tabbed notebook code from &quot;Effective Tcl/Tk Programming&quot;
++# ----------------------------------------------------------------------
++# EXAMPLE: tabnotebook that can dial up pages
++# ----------------------------------------------------------------------
++# Effective Tcl/Tk Programming
++# Mark Harrison, DSC Communications Corp.
++# Michael McLennan, Bell Labs Innovations for Lucent Technologies
++# Addison-Wesley Professional Computing Series
++# ======================================================================
++# Copyright (c) 1996-1997 Lucent Technologies Inc. and Mark Harrison
++# ======================================================================
++
++option add *Tabnotebook.tabs.background #666666 widgetDefault
++option add *Tabnotebook.margin 6 widgetDefault
++option add *Tabnotebook.tabColor #a6a6a6 widgetDefault
++option add *Tabnotebook.activeTabColor #d9d9d9 widgetDefault
++option add *Tabnotebook.tabFont \
++ -*-helvetica-bold-r-normal--*-120-* widgetDefault
++
++proc tabnotebook_create {win} {
++ global tnInfo
++
++ frame $win -class Tabnotebook
++ canvas $win.tabs -highlightthickness 0
++ pack $win.tabs -fill x
++
++ notebook_create $win.notebook
++ pack $win.notebook -expand yes -fill both
++
++ set tnInfo($win-tabs) &quot;&quot;
++ set tnInfo($win-current) &quot;&quot;
++ set tnInfo($win-pending) &quot;&quot;
++ return $win
++}
++
++proc tabnotebook_page {win name} {
++ global tnInfo
++
++ set page [notebook_page $win.notebook $name]
++ lappend tnInfo($win-tabs) $name
++
++ if {$tnInfo($win-pending) == &quot;&quot;} {
++ set id [after idle [list tabnotebook_refresh $win]]
++ set tnInfo($win-pending) $id
++ }
++ return $page
++}
++
++proc tabnotebook_refresh {win} {
++ global tnInfo
++
++ $win.tabs delete all
++
++ set margin [option get $win margin Margin]
++ set color [option get $win tabColor Color]
++ set font [option get $win tabFont Font]
++ set x 2
++ set maxh 0
++
++ foreach name $tnInfo($win-tabs) {
++ set id [$win.tabs create text \
++ [expr $x+$margin+2] [expr -0.5*$margin] \
++ -anchor sw -text $name -font $font \
++ -tags [list $name]]
++
++ set bbox [$win.tabs bbox $id]
++ set wd [expr [lindex $bbox 2]-[lindex $bbox 0]]
++ set ht [expr [lindex $bbox 3]-[lindex $bbox 1]]
++ if {$ht &gt; $maxh} {
++ set maxh $ht
++ }
++
++ $win.tabs create polygon 0 0 $x 0 \
++ [expr $x+$margin] [expr -$ht-$margin] \
++ [expr $x+$margin+$wd] [expr -$ht-$margin] \
++ [expr $x+$wd+2*$margin] 0 \
++ 2000 0 2000 10 0 10 \
++ -outline black -fill $color \
++ -tags [list $name tab tab-$name]
++
++ $win.tabs raise $id
++
++ $win.tabs bind $name &lt;ButtonPress-1&gt; \
++ [list tabnotebook_display $win $name]
++
++ set x [expr $x+$wd+2*$margin]
++ }
++ set height [expr $maxh+2*$margin]
++ $win.tabs move all 0 $height
++
++ $win.tabs configure -width $x -height [expr $height+4]
++
++ if {$tnInfo($win-current) != &quot;&quot;} {
++ tabnotebook_display $win $tnInfo($win-current)
++ } else {
++ tabnotebook_display $win [lindex $tnInfo($win-tabs) 0]
++ }
++ set tnInfo($win-pending) &quot;&quot;
++}
++
++proc tabnotebook_display {win name} {
++ global tnInfo
++
++ notebook_display $win.notebook $name
++
++ set normal [option get $win tabColor Color]
++ $win.tabs itemconfigure tab -fill $normal
++
++ set active [option get $win activeTabColor Color]
++ $win.tabs itemconfigure tab-$name -fill $active
++ $win.tabs raise $name
++
++ set tnInfo($win-current) $name
++}
++
++# ----------------------------------------------------------------------
++# EXAMPLE: simple notebook that can dial up pages
++# ----------------------------------------------------------------------
++# Effective Tcl/Tk Programming
++# Mark Harrison, DSC Communications Corp.
++# Michael McLennan, Bell Labs Innovations for Lucent Technologies
++# Addison-Wesley Professional Computing Series
++# ======================================================================
++# Copyright (c) 1996-1997 Lucent Technologies Inc. and Mark Harrison
++# ======================================================================
++
++option add *Notebook.borderWidth 2 widgetDefault
++option add *Notebook.relief sunken widgetDefault
++
++proc notebook_create {win} {
++ global nbInfo
++
++ frame $win -class Notebook
++ pack propagate $win 0
++
++ set nbInfo($win-count) 0
++ set nbInfo($win-pages) &quot;&quot;
++ set nbInfo($win-current) &quot;&quot;
++ return $win
++}
++
++proc notebook_page {win name} {
++ global nbInfo
++
++ set page &quot;$win.page[incr nbInfo($win-count)]&quot;
++ lappend nbInfo($win-pages) $page
++ set nbInfo($win-page-$name) $page
++
++ frame $page
++
++ if {$nbInfo($win-count) == 1} {
++ after idle [list notebook_display $win $name]
++ }
++ return $page
++}
++
++proc notebook_display {win name} {
++ global nbInfo
++
++ set page &quot;&quot;
++ if {[info exists nbInfo($win-page-$name)]} {
++ set page $nbInfo($win-page-$name)
++ } elseif {[winfo exists $win.page$name]} {
++ set page $win.page$name
++ }
++ if {$page == &quot;&quot;} {
++ error &quot;bad notebook page \&quot;$name\&quot;&quot;
++ }
++
++ notebook_fix_size $win
++
++ if {$nbInfo($win-current) != &quot;&quot;} {
++ pack forget $nbInfo($win-current)
++ }
++ pack $page -expand yes -fill both
++ set nbInfo($win-current) $page
++}
++
++proc notebook_fix_size {win} {
++ global nbInfo
++
++ update idletasks
++
++ set maxw 0
++ set maxh 0
++ foreach page $nbInfo($win-pages) {
++ set w [winfo reqwidth $page]
++ if {$w &gt; $maxw} {
++ set maxw $w
++ }
++ set h [winfo reqheight $page]
++ if {$h &gt; $maxh} {
++ set maxh $h
++ }
++ }
++ set bd [$win cget -borderwidth]
++ set maxw [expr $maxw+2*$bd]
++ set maxh [expr $maxh+2*$bd]
++ $win configure -width $maxw -height $maxh
++}
++
++#***********************************************************************
++# %PROCEDURE: SetupGuiToList
++# %ARGUMENTS:
++# w -- the PPPoE connection setup window
++# %RETURNS:
++# A list of (name value) pairs for the connection.
++# %DESCRIPTION:
++# Reads values from the GUI; makes a list.
++#***********************************************************************
++proc SetupGuiToList { w } {
++ global OPTS
++ set ans {}
++ if {[catch {lappend ans ConnectionName [$w.conName get]}]} {
++ lappend ans ConnectionName [$w.conName cget -text]
++ }
++ lappend ans UserName [$w.user get]
++ lappend ans NetworkName [$w.network get]
++ lappend ans Password [$w.pass get]
++ lappend ans Interface [$w.ifname get]
++ lappend ans DNSType [$w.dns cget -text]
++ lappend ans DNS1 [$w.dns1 get]
++ lappend ans DNS2 [$w.dns2 get]
++ lappend ans NonrootOK $OPTS(nonroot)
++ lappend ans Sync $OPTS(sync)
++ lappend ans FirewallType [$w.fw cget -text]
++ lappend ans ServiceName [$w.servicename get]
++ lappend ans ACName [$w.acname get]
++
++ # Validate
++ set name [value $ans ConnectionName]
++ if {![regexp -nocase {^[-a-z0-9_]+$} $name]} {
++ error &quot;Connection name must be non-blank and contain only letters, digits, `_' and `-'&quot;
++ }
++
++ # Check DNS
++ set type [value $ans DNSType]
++ if {&quot;$type&quot; == &quot;Specify&quot;} {
++ set dns [value $ans DNS1]
++ if {![regexp {[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+} &quot;$dns&quot;]} {
++ error &quot;Primary DNS entry must consist of four dot-separated decimal numbers&quot;
++ }
++ set dns [value $ans DNS2]
++ if {&quot;$dns&quot; != &quot;&quot; &amp;&amp; ![regexp {[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+} &quot;$dns&quot;]} {
++ error &quot;Secondary DNS entry must consist of four dot-separated decimal numbers&quot;
++ }
++ }
++ return $ans
++}
++
++#***********************************************************************
++# %PROCEDURE: ListToSetupGui
++# %ARGUMENTS:
++# w -- the PPPoE connection setup window
++# lst -- a list of name/value pairs
++# %RETURNS:
++# Nothing
++# %DESCRIPTION:
++# Updates GUI to reflect lst
++#***********************************************************************
++proc ListToSetupGui { w lst } {
++ global OPTS
++ foreach {key value} $lst {
++ switch -exact -- $key {
++ ConnectionName {
++ catch {
++ $w.conName delete 0 end
++ $w.conName insert end $value
++ }
++ catch {
++ $w.conName configure -text $value
++ }
++ }
++ UserName {
++ $w.user delete 0 end
++ $w.user insert end $value
++ }
++ NetworkName {
++ $w.network delete 0 end
++ $w.network insert end $value
++ }
++ Password {
++ $w.pass delete 0 end
++ $w.pass insert end $value
++ }
++ Interface {
++ $w.ifname delete 0 end
++ $w.ifname insert end $value
++ }
++ DNSType {
++ SetDNSOption $w $value
++ }
++ DNS1 {
++ set oldstate [$w.dns1 cget -state]
++ $w.dns1 configure -state normal
++ $w.dns1 delete 0 end
++ $w.dns1 insert end $value
++ $w.dns1 configure -state $oldstate
++ }
++ DNS2 {
++ set oldstate [$w.dns2 cget -state]
++ $w.dns2 configure -state normal
++ $w.dns2 delete 0 end
++ $w.dns2 insert end $value
++ $w.dns2 configure -state $oldstate
++ }
++ NonrootOK {
++ set OPTS(nonroot) $value
++ }
++ Sync {
++ set OPTS(sync) $value
++ }
++ FirewallType {
++ $w.fw configure -text $value
++ }
++ ServiceName {
++ $w.servicename delete 0 end
++ $w.servicename insert end $value
++ }
++ ACName {
++ $w.acname delete 0 end
++ $w.acname insert end $value
++ }
++ }
++ }
++}
++
++proc NewPPPoEConnectionOK { name w } {
++ if {[catch {set conn [SetupGuiToList $w]} err]} {
++ tk_dialog .err &quot;Invalid Parameters&quot; &quot;$err&quot; error 0 OK
++ return
++ }
++ if {&quot;$name&quot; == &quot;&quot;} {
++ set name [value $conn ConnectionName]
++ set tmp [GetConnection $name]
++ if {&quot;$tmp&quot; != &quot;&quot;} {
++ tk_dialog .err &quot;Connection Exists&quot; &quot;The connection `$name' already exists. Pick another name.&quot; error 0 OK
++ return
++ }
++ }
++ ReplaceConnection $conn
++ SaveConnectionInfo
++ BuildConnectionMenu
++ SwitchConnection $name
++ destroy $w
++}
++
++proc SaveConnectionInfo {} {
++ global ConnectionInfo ConnectionInfoFile PasswordFile
++ set fp [open &quot;$ConnectionInfoFile.new&quot; &quot;w&quot;]
++ puts $fp &quot;# RP-PPPoE GUI Configuration Information.&quot;
++ puts $fp &quot;# This file may *look* human-editable, but it is NOT.&quot;
++ puts $fp &quot;# So, you with the text editor: Keep away from this file.&quot;
++ puts $fp &quot;#&quot;
++ set expunged {}
++ set passwords {}
++ foreach thing $ConnectionInfo {
++ set name [value $thing ConnectionName]
++ set password [value $thing Password]
++ set pwindex [lsearch -exact $thing Password]
++ set safe [lreplace $thing $pwindex [expr $pwindex+1]]
++ set pwd [list ConnectionName $name Password $password]
++ lappend expunged $safe
++ lappend passwords $pwd
++ }
++ puts $fp $expunged
++ close $fp
++ set fp [open &quot;$PasswordFile.new&quot; &quot;w&quot;]
++ exec chmod 600 &quot;$PasswordFile.new&quot;
++ puts $fp &quot;# RP-PPPoE GUI Configuration Information.&quot;
++ puts $fp &quot;# This file may *look* human-editable, but it is NOT.&quot;
++ puts $fp &quot;# So, you with the text editor: Keep away from this file.&quot;
++ puts $fp &quot;#&quot;
++ puts $fp $passwords
++ close $fp
++ file rename -force &quot;$ConnectionInfoFile.new&quot; &quot;$ConnectionInfoFile&quot;
++ file rename -force &quot;$PasswordFile.new&quot; &quot;$PasswordFile&quot;
++
++ # Generate config files for adsl-start for each connection
++ foreach thing $ConnectionInfo {
++ GenerateConfigFile $thing
++ }
++
++ # Now update /etc/ppp/pap-secrets and /etc/ppp/chap-secrets
++ foreach thing $ConnectionInfo {
++ GenerateSecretsEntry $thing
++ }
++}
++
++#***********************************************************************
++# %PROCEDURE: ReadShellEscapedWord
++# %ARGUMENTS:
++# str -- a string
++# %RETURNS:
++# A two-element list -- the first element is a shell-escaped word
++# extracted from $str, just the way pppd parses /etc/ppp/pap-secrets.
++# The second element is the remaining portion of $str
++#***********************************************************************
++proc ReadShellEscapedWord { str } {
++ set ans {}
++ set rest $str
++
++ # Chew up leading spaces
++ set rest [string trimleft $rest]
++
++ # If first char is a quote, read until a quote
++ if {&quot;[string index $rest 0]&quot; == &quot;\&quot;&quot;} {
++ set rest [string range $rest 1 end]
++ set nextquote [string first &quot;\&quot;&quot; $rest]
++ # If no following quote, pretend we haven't seen a quote, I guess.
++ if {$nextquote &gt;= 0} {
++ set ans [string range $rest 0 [expr $nextquote-1]]
++ set rest [string range $rest [expr $nextquote+1] end]
++ return [list $ans $rest]
++ }
++ }
++
++ # Not a quote; chew through the string until an unescaped space
++ while {[string length $rest] &gt; 0} {
++ set char [string index $rest 0]
++ set rest [string range $rest 1 end]
++ # Sneaky test for whitespace in Tcl 8.0
++ if {&quot;[string trim $char]&quot; == &quot;&quot;} {
++ return [list $ans $rest]
++ }
++ if {&quot;$char&quot; == &quot;\\&quot;} {
++ set char [string index $rest 0]
++ set rest [string range $rest 1 end]
++ }
++ append ans $char
++ }
++ return [list $ans $rest]
++}
++
++
++#***********************************************************************
++# %PROCEDURE: GenerateSecretsEntry
++# %ARGUMENTS:
++# conn -- a connection key/value list
++# %RETURNS:
++# Nothing
++# %DESCRIPTION:
++# Adds entries to /etc/ppp/pap-secrets and /etc/ppp/chap-secrets.
++#***********************************************************************
++proc GenerateSecretsEntry { conn } {
++ set user [value $conn UserName]
++ set net [value $conn NetworkName]
++ set password [value $conn Password]
++ if {&quot;$net&quot; != &quot;&quot;} {
++ set user &quot;$user@$net&quot;
++ }
++ GenerateSecretsEntryForFile $user $password &quot;/etc/ppp/pap-secrets&quot;
++ GenerateSecretsEntryForFile $user $password &quot;/etc/ppp/chap-secrets&quot;
++}
++
++#***********************************************************************
++# %PROCEDURE: GenerateSecretsEntryForFile
++# %ARGUMENTS:
++# user -- user name
++# password -- password
++# fname -- file to add entry to.
++# %RETURNS:
++# Nothing
++# %DESCRIPTION:
++# Adds entries to /etc/ppp/pap-secrets or /etc/ppp/chap-secrets.
++#***********************************************************************
++proc GenerateSecretsEntryForFile { user password fname } {
++ # Copy $fname to $fname.new
++ set out [open &quot;$fname.new&quot; &quot;w&quot;]
++ exec chmod go-rwx &quot;$fname.new&quot;
++ if {[file exists $fname]} {
++ set in [open $fname &quot;r&quot;]
++ while {[gets $in line] &gt;= 0} {
++ set trimmed [string trim $line]
++ if {&quot;$trimmed&quot; == &quot;&quot;} {
++ puts $out $line
++ continue
++ }
++ if {[string match &quot;#*&quot; $trimmed]} {
++ puts $out $line
++ continue
++ }
++
++ # Read the user name off the line; copy it unless it's our
++ # user name.
++ foreach {word dummy} [ReadShellEscapedWord $line] {break}
++ if {$word != $user} {
++ puts $out $line
++ }
++ }
++ close $in
++ }
++
++ # Now add our line
++ set user [ShellEscape $user]
++ set password [ShellEscape $password]
++ puts $out &quot;$user\t*\t$password\t*&quot;
++ close $out
++ file rename -force $fname.new $fname
++}
++
++#***********************************************************************
++# %PROCEDURE: ShellEscape
++# %ARGUMENTS:
++# str
++# %RETURNS:
++# A version of $str with shell meta-characters escaped
++#***********************************************************************
++proc ShellEscape { str } {
++ set ans &quot;&quot;
++ foreach char [split $str &quot;&quot;] {
++ if {[string first $char &quot;01234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_+=-@./&quot;] &gt;= 0} {
++ append ans $char
++ } else {
++ append ans &quot;\\$char&quot;
++ }
++ }
++ return $ans
++}
++
++
++#***********************************************************************
++# %PROCEDURE: GenerateConfigFile
++# %ARGUMENTS:
++# conn -- a connection key/value list
++# %RETURNS:
++# Nothing
++# %DESCRIPTION:
++# Generates a configuration file for adsl-start and friends under
++# /etc/ppp/rp-pppoe-gui
++#***********************************************************************
++proc GenerateConfigFile { conn } {
++ global ConfigDir
++ set name [value $conn ConnectionName]
++ set fname [file join $ConfigDir conf.$name]
++ set fp [open &quot;$fname.new&quot; w]
++ puts $fp &quot;# Configuration file for connection `$name'.&quot;
++ puts $fp &quot;# Automatically generated. Do not edit by hand.&quot;
++ puts $fp &quot;&quot;
++ foreach {var val} $conn {
++ switch -exact $var {
++ UserName {
++ set net [value $conn NetworkName]
++ if {&quot;$net&quot; != &quot;&quot;} {
++ set user &quot;$val@$net&quot;
++ } else {
++ set user &quot;$val&quot;
++ }
++ puts $fp [ShellEscape &quot;USER=$user&quot;]
++ }
++ Interface {
++ puts $fp [ShellEscape &quot;ETH=$val&quot;]
++ }
++ DNSType {
++ if {&quot;$val&quot; == &quot;From Server&quot;} {
++ puts $fp &quot;DNSTYPE=SERVER&quot;
++ puts $fp &quot;USEPEERDNS=yes&quot;
++ } elseif {&quot;$val&quot; == &quot;Specify&quot;} {
++ puts $fp &quot;DNSTYPE=SPECIFY&quot;
++ puts $fp &quot;USEPEERDNS=no&quot;
++ } else {
++ puts $fp &quot;DNSTYPE=NOCHANGE&quot;
++ puts $fp &quot;USEPEERDNS=no&quot;
++ }
++ }
++ DNS1 {
++ puts $fp [ShellEscape &quot;DNS1=$val&quot;]
++ }
++ DNS2 {
++ puts $fp [ShellEscape &quot;DNS2=$val&quot;]
++ }
++ NonrootOK {
++ if {$val} {
++ puts $fp &quot;NONROOT=OK&quot;
++ }
++ }
++ ACName {
++ puts $fp [ShellEscape &quot;ACNAME=$val&quot;]
++ }
++ ServiceName {
++ puts $fp [ShellEscape &quot;SERVICENAME=$val&quot;]
++ }
++ FirewallType {
++ if {&quot;$val&quot; == &quot;None&quot;} {
++ puts $fp &quot;FIREWALL=NONE&quot;
++ } elseif {&quot;$val&quot; == &quot;Masquerading&quot;} {
++ puts $fp &quot;FIREWALL=MASQUERADE&quot;
++ } else {
++ puts $fp &quot;FIREWALL=STANDALONE&quot;
++ }
++ }
++ Sync {
++ if {$val} {
++ puts $fp &quot;SYNCHRONOUS=yes&quot;
++ } else {
++ puts $fp &quot;SYNCHRONOUS=no&quot;
++ }
++ }
++ }
++ }
++ puts $fp &quot;CONNECT_TIMEOUT=30&quot;
++ puts $fp &quot;CONNECT_POLL=1&quot;
++ puts $fp &quot;FORCEPING=\&quot;.\&quot;&quot;
++ puts $fp &quot;PIDFILE=/var/run/adsl-$name.pid&quot;
++ puts $fp &quot;CLAMPMSS=1412&quot;
++ puts $fp &quot;LCP_INTERVAL=20&quot;
++ puts $fp &quot;LCP_FAILURE=3&quot;
++ puts $fp &quot;PPPOE_TIMEOUT=80&quot;
++ puts $fp &quot;LINUX_PLUGIN=&quot;
++ puts $fp &quot;DEMAND=no&quot;
++ close $fp
++ file rename -force &quot;$fname.new&quot; &quot;$fname&quot;
++}
++
++#***********************************************************************
++# %PROCEDURE: GetConnectionStatus
++# %ARGUMENTS:
++# conn -- connection name
++# %RETURNS:
++# A three-element list:
++# {started/stopped up/down if}
++# If first element is &quot;started&quot;, then connection has been started.
++# If second element is &quot;up&quot;, then connection is up.
++# If connection is up, third element is PPP interface.
++#***********************************************************************
++proc GetConnectionStatus { conn } {
++ set pidfile &quot;/var/run/adsl-$conn.pid&quot;
++
++ # Check for PID file
++ if {![file readable $pidfile]} {
++ return {stopped down &quot;&quot;}
++ }
++ set fp [open $pidfile &quot;r&quot;]
++ gets $fp pid
++ close $fp
++
++ # Check if process is dead
++ if {![file exists &quot;/proc/$pid&quot;]} {
++ # The pppd might still be running... doh...
++ if {![file readable &quot;$pidfile.pppd&quot;]} {
++ return {stopped down &quot;&quot;}
++ }
++ set fp [open &quot;$pidfile.pppd&quot; &quot;r&quot;]
++ gets $fp pid
++ close $fp
++ if {![file exists &quot;/proc/$pid&quot;]} {
++ return {stopped down &quot;&quot;}
++ }
++ }
++
++ # Now get PID of pppd
++ if {![file readable &quot;$pidfile.pppd&quot;]} {
++ return {started down &quot;&quot;}
++ }
++ set fp [open &quot;$pidfile.pppd&quot; &quot;r&quot;]
++ gets $fp pid
++ close $fp
++
++ # Find interface to which it corresponds
++ set pppdfiles [glob -nocomplain &quot;/var/run/ppp*.pid&quot;]
++ set found {}
++ foreach file $pppdfiles {
++ set fp [open $file &quot;r&quot;]
++ gets $fp ifpid
++ close $fp
++ if {$ifpid == $pid} {
++ set found [file rootname [file tail $file]]
++ break
++ }
++ }
++ if {&quot;$found&quot; == &quot;&quot;} {
++ return {started down &quot;&quot;}
++ }
++ return [list started up $found]
++}
++
++#***********************************************************************
++# %PROCEDURE: UpdateConnectionState
++# %ARGUMENTS:
++# fromAfter -- if 1, was called from an &quot;after&quot; callback.
++# %RETURNS:
++# Nothing
++# %DESCRIPTION:
++# Updates the &quot;LED&quot; displays; periodically reschedules itself to keep
++# updating display.
++#***********************************************************************
++proc UpdateConnectionState {{fromAfter 1}} {
++ global UpdateToken
++ global Packets
++ global Bytes
++ global UpdateInterval
++ global MeasureTime
++ if {$fromAfter} {
++ set UpdateToken &quot;&quot;
++ }
++
++ set conn [GetCurrentConnection]
++ if {&quot;$conn&quot; == &quot;&quot;} {
++ ConnectionStateOff
++ ResetGraph
++ if {&quot;$UpdateToken&quot; != &quot;&quot;} {
++ after cancel $UpdateToken
++ set UpdateToken {}
++ }
++ return
++ }
++
++ foreach {startstop updown interface} [GetConnectionStatus $conn] {break}
++ if {&quot;$startstop&quot; == &quot;stopped&quot;} {
++ ConnectionStateOff
++ ResetGraph
++ } elseif {&quot;$updown&quot; == &quot;down&quot;} {
++ ConnectionStateDown
++ ResetGraph
++ } else {
++ # Get the packet counts
++ set found 0
++ set fp [open &quot;/proc/net/dev&quot; &quot;r&quot;]
++ while {[gets $fp line] &gt;= 0} {
++ if {![string match &quot;*$interface:*&quot; $line]} {
++ continue
++ }
++ set colon [string first &quot;:&quot; $line]
++ if {$colon &lt; 0} {
++ continue
++ }
++ set line [string range $line [expr $colon+1] end]
++ set found 1
++ set MeasureTime [clock seconds]
++ break
++ }
++ close $fp
++ if {$found} {
++ foreach {rbytes rpacks rerrs rdrop rfifo rframe rcomp rmulti tbytes tpacks} $line {break}
++ if {!$fromAfter} {
++ set Packets(in) $rpacks
++ set Packets(out) $tpacks
++ set Bytes(in) $rbytes
++ set Bytes(out) $tbytes
++ ConnectionStateUp
++ ResetGraph
++ } else {
++ if {$rpacks != $Packets(in)} {
++ ConnectionReceiveActive
++ } else {
++ ConnectionReceiveUp
++ }
++ if {$tpacks != $Packets(out)} {
++ ConnectionTransmitActive
++ } else {
++ ConnectionTransmitUp
++ }
++ set Packets(in) $rpacks
++ set Packets(out) $tpacks
++ set Bytes(in) $rbytes
++ set Bytes(out) $tbytes
++ UpdateGraph
++ }
++ } else {
++ ConnectionStateUp
++ ResetGraph
++ }
++ }
++ if {&quot;$UpdateToken&quot; == &quot;&quot;} {
++ set UpdateToken [after $UpdateInterval UpdateConnectionState]
++ }
++ if {$fromAfter} {
++ SetButtonStates
++ }
++}
++
++proc ConnectionStateOff {} {
++ .c itemconfigure xmitrect -fill &quot;#A0A0A0&quot;
++ .c itemconfigure recvrect -fill &quot;#A0A0A0&quot;
++}
++
++proc ConnectionStateDown {} {
++ .c itemconfigure xmitrect -fill &quot;#A00000&quot;
++ .c itemconfigure recvrect -fill &quot;#A00000&quot;
++}
++
++proc ConnectionStateUp {} {
++ .c itemconfigure xmitrect -fill &quot;#00D000&quot;
++ .c itemconfigure recvrect -fill &quot;#00D000&quot;
++}
++
++proc ConnectionTransmitActive {} {
++ .c itemconfigure xmitrect -fill &quot;#FFFF00&quot;
++}
++
++proc ConnectionTransmitUp {} {
++ .c itemconfigure xmitrect -fill &quot;#00D000&quot;
++}
++
++proc ConnectionReceiveActive {} {
++ .c itemconfigure recvrect -fill &quot;#FFFF00&quot;
++}
++
++proc ConnectionReceiveUp {} {
++ .c itemconfigure recvrect -fill &quot;#00D000&quot;
++}
++
++proc ResetGraph {} {
++ global GraphPoints
++ set GraphPoints(in) {}
++ set GraphPoints(out) {}
++ set GraphPoints(times) {}
++ .graph delete all
++ UpdateGraph
++}
++
++proc UpdateGraph {} {
++ global GraphPoints Bytes UpdateInterval MeasureTime
++ lappend GraphPoints(times) $MeasureTime
++ lappend GraphPoints(in) $Bytes(in)
++ lappend GraphPoints(out) $Bytes(out)
++
++ set w [winfo width .graph]
++ set w2 [expr $w/2]
++
++ set h [winfo height .graph]
++ set toChop [expr [llength $GraphPoints(in)] - $w2 - 1]
++ if {$toChop &gt; 0} {
++ set GraphPoints(in) [lrange $GraphPoints(in) $toChop end]
++ }
++ set toChop [expr [llength $GraphPoints(out)] - $w2 - 1]
++ if {$toChop &gt; 0} {
++ set GraphPoints(out) [lrange $GraphPoints(out) $toChop end]
++ }
++ set toChop [expr [llength $GraphPoints(times)] - $w2 - 1]
++ if {$toChop &gt; 0} {
++ set GraphPoints(times) [lrange $GraphPoints(times) $toChop end]
++ }
++
++ set prev [lindex $GraphPoints(in) 0]
++ set incoords {}
++ set outcoords {}
++ set inmax 0
++ set outmax 0
++ foreach thing [lrange $GraphPoints(in) 1 end] {
++ set diff [expr $thing - $prev]
++ set prev $thing
++ lappend incoords $diff
++ if {$diff &gt; $inmax} {
++ set inmax $diff
++ }
++ }
++
++ set prev [lindex $GraphPoints(out) 0]
++ foreach thing [lrange $GraphPoints(out) 1 end] {
++ set diff [expr $thing - $prev]
++ set prev $thing
++ lappend outcoords $diff
++ if {$diff &gt; $outmax} {
++ set outmax $diff
++ }
++ }
++
++ if {$inmax == 0} { set inmax 1 }
++ if {$outmax == 0} { set outmax 1 }
++ # Draw the transmit line
++ set x 0
++ set hh [expr $h-4]
++ set scaled {}
++ foreach thing $outcoords {
++ lappend scaled $x [expr double($h) - 2 - (double($hh) * double($thing) / double($outmax))]
++ incr x
++ }
++
++ .graph delete all
++ if {[llength $scaled] &gt;= 4} {
++ eval &quot;.graph create line $scaled -fill #A00000&quot;
++ set bits [expr 8.0 * ([lindex $GraphPoints(out) end] - [lindex $GraphPoints(out) 0])]
++ set timediff [expr [lindex $GraphPoints(times) end] - [lindex $GraphPoints(times) 0]]
++ if {$timediff != 0} {
++ set bps [Pretty [expr double($bits) / $timediff]]
++ .graph create text 2 2 -anchor nw -font fixed -text &quot;$bps&quot;
++ }
++ }
++
++ # Draw the receive line
++ set x $w2
++ set scaled {}
++ foreach thing $incoords {
++ lappend scaled $x [expr double($h) - 2 - (double($hh) * double($thing) / double($inmax))]
++ incr x
++ }
++
++ if {[llength $scaled] &gt;= 4} {
++ eval &quot;.graph create line $scaled -fill #00A000&quot;
++ set bits [expr 8.0 * ([lindex $GraphPoints(in) end] - [lindex $GraphPoints(in) 0])]
++ set timediff [expr [lindex $GraphPoints(times) end] - [lindex $GraphPoints(times) 0]]
++ if {$timediff != 0} {
++ set bps [Pretty [expr double($bits) / $timediff]]
++ .graph create text [expr $w2+2] 2 -anchor nw -font fixed -text &quot;$bps&quot;
++ }
++ }
++}
++
++proc Pretty { n } {
++ if {$n &lt; 0} {
++ return &quot;***&quot;
++ }
++ if {$n &lt; 1000} {
++ return [format &quot;%.1f&quot; $n]
++ }
++ set n [expr $n/1000.0]
++ if {$n &lt; 1000} {
++ return [format &quot;%.1fk&quot; $n]
++ }
++ set n [expr $n/1000.0]
++ if {$n &lt; 1000} {
++ return [format &quot;%.1fM&quot; $n]
++ }
++ set n [expr $n/1000.0]
++ return [format &quot;%.1fG&quot; $n]
++}
++
++#***********************************************************************
++# %PROCEDURE: Help
++# %ARGUMENTS:
++# None
++# %RETURNS:
++# Nothing
++# %DESCRIPTION:
++# Opens help page
++#***********************************************************************
++proc Help {} {
++ if {![file readable /usr/share/rp-pppoe-gui/tkpppoe.html]} {
++ tk_dialog .err Error &quot;Help file '/usr/share/rp-pppoe-gui/tkpppoe.html' is not installed&quot; error 0 OK
++ return
++ }
++ catch { exec /bin/sh -c &quot;netscape -remote 'openURL(/usr/share/rp-pppoe-gui/tkpppoe.html)' || netscape /usr/share/rp-pppoe-gui/tkpppoe.html&quot; &gt; /dev/null 2&gt;/dev/null &amp; }
++}
++
++
++
++#***********************************************************************
++# %PROCEDURE: doLogo
++# %ARGUMENTS:
++# None
++# %RETURNS:
++# Nothing
++# %DESCRIPTION:
++# Does the logo thing
++#***********************************************************************
++proc doLogo {} {
++ global AlreadyRunFile ConfigDir
++ if {[file exists $AlreadyRunFile]} {
++ return
++ }
++ catch { file mkdir $ConfigDir }
++ catch { close [open $AlreadyRunFile &quot;w&quot;] }
++ canvas .c -width 374 -height 286 -bg #FFFFCC
++ pack .c
++ drawLogo .c #FFFFCC
++
++ # Funky effect
++ .c create text 4 4 -anchor nw -text &quot;Welcome to RP-PPPoE&quot; \
++ -fill red -font {-family times -size -24 -weight bold} -tags pppoe
++ .c lower pppoe
++
++ .c move logo -300 0
++
++ update idletasks
++
++ for {set i 0} {$i &lt; 15} {incr i} {
++ .c move logo 20 0
++ update idletasks
++ after 25
++ }
++
++ .c create text 4 28 -anchor nw -text &quot;http://www.roaringpenguin.com&quot; \
++ -fill red -font {-family courier -size -14 -weight bold}
++ update idletasks
++ after 2500
++}
++
++doLogo
++catch { destroy .c }
++
++# Try creating an empty config file if none exists
++if {![file readable $ConnectionInfoFile]} {
++ catch { file mkdir $ConfigDir }
++ catch {
++ set fp [open $ConnectionInfoFile &quot;w&quot;]
++ close $fp
++ }
++}
++
++CreateMainDialog
+
+
+Property changes on: drakx/trunk/mdk-stage1/rp-pppoe/gui/tkpppoe.in
+___________________________________________________________________
+Added: svn:executable
+ + *
+
+<a id="drakxtrunkmdkstage1rppppoeguiwrapperc">Added: drakx/trunk/mdk-stage1/rp-pppoe/gui/wrapper.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/gui/wrapper.c (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/gui/wrapper.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,234 @@
++/* -*-Mode: C;-*- */
++
++/***********************************************************************
++*
++* wrapper.c
++*
++* C wrapper designed to run SUID root for controlling PPPoE connections.
++*
++* Copyright (C) 2001 by Roaring Penguin Software Inc.
++*
++***********************************************************************/
++
++static char const RCSID[] =
++&quot;$Id: wrapper.c 195724 2001-06-11 13:49:39Z gc $&quot;;
++
++#define _SVID_SOURCE 1 /* For putenv */
++#define _POSIX_SOURCE 1 /* For fileno */
++#define _BSD_SOURCE 1 /* For setreuid */
++#include &lt;stdlib.h&gt;
++#include &lt;string.h&gt;
++#include &lt;stdio.h&gt;
++#include &lt;errno.h&gt;
++#include &lt;sys/stat.h&gt;
++#include &lt;unistd.h&gt;
++
++#define CONN_NAME_LEN 64
++#define LINELEN 512
++
++static char const *adsl_start = ADSL_START_PATH;
++static char const *adsl_stop = ADSL_STOP_PATH;
++static char const *adsl_status = ADSL_STATUS_PATH;
++
++/**********************************************************************
++ *%FUNCTION: PathOK
++ *%ARGUMENTS:
++ * fname -- a file name.
++ *%RETURNS:
++ * 1 if path to fname is secure; 0 otherwise.
++ *%DESCRIPTION:
++ * Makes sure ownership/permissions of file and parent directories
++ * are safe.
++ **********************************************************************/
++static int
++PathOK(char const *fname)
++{
++ char path[LINELEN];
++ struct stat buf;
++ char const *slash;
++
++ if (strlen(fname) &gt; LINELEN) {
++ fprintf(stderr, &quot;Pathname '%s' too long\n&quot;, fname);
++ return 0;
++ }
++
++ /* Must be absolute path */
++ if (*fname != '/') {
++ fprintf(stderr, &quot;Unsafe path '%s' not absolute\n&quot;, fname);
++ return 0;
++ }
++
++ /* Check root directory */
++ if (stat(&quot;/&quot;, &amp;buf) &lt; 0) {
++ perror(&quot;stat&quot;);
++ return 0;
++ }
++ if (buf.st_uid) {
++ fprintf(stderr, &quot;SECURITY ALERT: Root directory (/) not owned by root\n&quot;);
++ return 0;
++ }
++ if (buf.st_mode &amp; (S_IWGRP | S_IWOTH)) {
++ fprintf(stderr, &quot;SECURITY ALERT: Root directory (/) writable by group or other\n&quot;);
++ return 0;
++ }
++
++ /* Check each component */
++ slash = fname;
++
++ while(*slash) {
++ slash = strchr(slash+1, '/');
++ if (!slash) {
++ slash = fname + strlen(fname);
++ }
++ memcpy(path, fname, slash-fname);
++ path[slash-fname] = 0;
++ if (stat(path, &amp;buf) &lt; 0) {
++ perror(&quot;stat&quot;);
++ return 0;
++ }
++ if (buf.st_uid) {
++ fprintf(stderr, &quot;SECURITY ALERT: '%s' not owned by root\n&quot;, path);
++ return 0;
++ }
++
++ if (buf.st_mode &amp; (S_IWGRP | S_IWOTH)) {
++ fprintf(stderr, &quot;SECURITY ALERT: '%s' writable by group or other\n&quot;,
++ path);
++ return 0;
++ }
++ }
++ return 1;
++}
++
++/**********************************************************************
++ *%FUNCTION: CleanEnvironment
++ *%ARGUMENTS:
++ * envp -- environment passed to main
++ *%RETURNS:
++ * Nothing
++ *%DESCRIPTION:
++ * Deletes all environment variables; makes safe environment
++ **********************************************************************/
++static void
++CleanEnvironment(char *envp[])
++{
++ envp[0] = NULL;
++ putenv(&quot;PATH=/bin:/usr/bin:/sbin:/usr/sbin&quot;);
++}
++
++/**********************************************************************
++ *%FUNCTION: main
++ *%ARGUMENTS:
++ * argc, argv -- usual suspects
++ * Usage: pppoe-wrapper {start|stop|status} {connection_name}
++ *%RETURNS:
++ * Whatever adsl-start, adsl-stop or adsl-status returns.
++ *%DESCRIPTION:
++ * Runs adsl-start, adsl-stop or adsl-status on given connection if
++ * non-root users are allowed to do it.
++ **********************************************************************/
++int
++main(int argc, char *argv[])
++{
++ int amRoot;
++ char *cp;
++ char fname[64+CONN_NAME_LEN];
++ char line[LINELEN+1];
++ int allowed = 0;
++
++ FILE *fp;
++
++ extern char **environ;
++
++ /* Clean out environment */
++ CleanEnvironment(environ);
++
++ /* Are we root? */
++ amRoot = (getuid() == 0);
++
++ /* Validate arguments */
++ if (argc != 3) {
++ fprintf(stderr, &quot;Usage: %s {start|stop|status} connection_name\n&quot;,
++ argv[0]);
++ exit(1);
++ }
++
++ if (strcmp(argv[1], &quot;start&quot;) &amp;&amp;
++ strcmp(argv[1], &quot;stop&quot;) &amp;&amp;
++ strcmp(argv[1], &quot;status&quot;)) {
++ fprintf(stderr, &quot;Usage: %s {start|stop|status} connection_name\n&quot;,
++ argv[0]);
++ exit(1);
++ }
++
++ /* Connection name can be at most CONN_NAME_LEN chars; alpha, num, underscore */
++ if (strlen(argv[2]) &gt; CONN_NAME_LEN) {
++ fprintf(stderr, &quot;%s: Connection name '%s' too long.\n&quot;,
++ argv[0], argv[2]);
++ exit(1);
++ }
++
++ for (cp = argv[2]; *cp; cp++) {
++ if (!strchr(&quot;abcdefghijklmnopqrstuvwxyz&quot;
++ &quot;ABCDEFGHIJKLMNOPQRSTUVWXYZ&quot;
++ &quot;0123456789_-&quot;, *cp)) {
++ fprintf(stderr, &quot;%s: Connection name '%s' contains illegal character '%c'\n&quot;, argv[0], argv[2], *cp);
++ exit(1);
++ }
++ }
++
++ /* Open the connection file */
++ sprintf(fname, &quot;/etc/ppp/rp-pppoe-gui/conf.%s&quot;, argv[2]);
++ /* Check path sanity */
++ if (!PathOK(fname)) {
++ exit(1);
++ }
++
++ fp = fopen(fname, &quot;r&quot;);
++ if (!fp) {
++ fprintf(stderr, &quot;%s: Could not open '%s': %s\n&quot;,
++ argv[0], fname, strerror(errno));
++ exit(1);
++ }
++
++ /* Check if non-root users can control it */
++ if (amRoot) {
++ allowed = 1;
++ } else {
++ while (!feof(fp)) {
++ if (!fgets(line, LINELEN, fp)) {
++ break;
++ }
++ if (!strcmp(line, &quot;NONROOT=OK\n&quot;)) {
++ allowed = 1;
++ break;
++ }
++ }
++ }
++ fclose(fp);
++
++ if (!allowed) {
++ fprintf(stderr, &quot;%s: Non-root users are not permitted to control connection '%s'\n&quot;, argv[0], argv[2]);
++ exit(1);
++ }
++
++ /* Become root with setuid() to defeat is-root checks in shell scripts */
++ if (setreuid(0, 0) &lt; 0) {
++ perror(&quot;setreuid&quot;);
++ exit(1);
++ }
++
++ /* It's OK -- do it. */
++ if (!strcmp(argv[1], &quot;start&quot;)) {
++ if (!PathOK(adsl_start)) exit(1);
++ execl(adsl_start, &quot;adsl-start&quot;, fname, NULL);
++ } else if (!strcmp(argv[1], &quot;stop&quot;)) {
++ if (!PathOK(adsl_stop)) exit(1);
++ execl(adsl_stop, &quot;adsl-stop&quot;, fname, NULL);
++ } else {
++ if (!PathOK(adsl_status)) exit(1);
++ execl(adsl_status, &quot;adsl-status&quot;, fname, NULL);
++ }
++ fprintf(stderr, &quot;%s: execl: %s\n&quot;, argv[0], strerror(errno));
++ exit(1);
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/rp-pppoe/gui/wrapper.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1rppppoemanadslconnect8">Added: drakx/trunk/mdk-stage1/rp-pppoe/man/adsl-connect.8</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/man/adsl-connect.8 (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/man/adsl-connect.8 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,66 @@
++.\&quot; $Id: adsl-connect.8 195724 2001-06-11 13:49:39Z gc $
++.TH ADSL-CONNECT 8 &quot;21 February 2000&quot;
++.UC 4
++.SH NAME
++adsl-connect \- Shell script to manage a PPPoE link
++
++.SH SYNOPSIS
++.B adsl-connect \fR[\fIconfig_file\fR]
++.P
++.B adsl-connect \fR\fIinterface user\fR [\fIconfig_file\fR]
++
++
++.SH DESCRIPTION
++\fBadsl-connect\fR is a shell script which manages an ADSL connection
++using the Roaring Penguin user-space PPPoE client. If you omit
++\fIconfig_file\fR, the default file \fB/etc/ppp/pppoe.conf\fR is used.
++If you supply \fIinterface\fR and \fIuser\fR, then they override the
++Ethernet interface and user-name settings in the configuration file.
++.P
++Note that normally, you should \fInot\fR invoke \fBadsl-connect\fR
++directly. Instead, use \fBadsl-start\fR to bring up the ADSL connection.
++.P
++\fBadsl-connect\fR first reads a configuration file. It then brings
++up a PPPoE connection. If the connection ever drops, a message is logged
++to syslog, and \fBadsl-connect\fR re-establishes the connection. In addition,
++each time the connection is dropped or cannot be established,
++\fBadsl-connect\fR executes the script \fB/etc/ppp/adsl-lost\fR if it
++exists and is executable.
++
++.P
++The shell script \fBadsl-stop\fR causes \fBadsl-connect\fR to break out
++of its loop, bring the connection down, and exit.
++
++.SH TECHNICAL DETAILS
++\fBadsl-connect\fR uses the following shell variables from the
++configuration file:
++
++.TP
++.B ETH
++The Ethernet interface connected to the ADSL modem (for example, eth0).
++
++.TP
++.B USER
++The ADSL user-id (for example, b1xxnxnx@sympatico.ca).
++
++.TP
++.B PIDFILE
++A file in which to write the process-ID of the adsl-connect process
++(for example, \fB/var/run/pppoe.pid\fR). Two additional files
++($PIDFILE.pppd and $PIDFILE.pppoe) hold the process-ID's of the
++\fBpppd\fR and \fBpppoe\fR processes, respectively.
++
++.P
++By using different configuration files with different PIDFILE
++settings, you can manage multiple PPPoE connections. Just specify the
++configuration file as an argument to \fBadsl-start\fR and
++\fBadsl-stop\fR.
++
++.SH AUTHOR
++\fBadsl-connect\fR was written by David F. Skoll &lt;dfs@roaringpenguin.com&gt;.
++
++The \fBpppoe\fR home page is \fIhttp://www.roaringpenguin.com/pppoe/\fR.
++
++.SH SEE ALSO
++pppoe(8), adsl-start(8), adsl-stop(8), pppd(8), pppoe.conf(5), adsl-setup(8), adsl-status(8), pppoe-sniff(8), pppoe-server(8), pppoe-relay(8)
++
+
+<a id="drakxtrunkmdkstage1rppppoemanadslsetup8">Added: drakx/trunk/mdk-stage1/rp-pppoe/man/adsl-setup.8</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/man/adsl-setup.8 (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/man/adsl-setup.8 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,23 @@
++.\&quot; $Id: adsl-setup.8 195724 2001-06-11 13:49:39Z gc $
++.TH ADSL-SETUP 8 &quot;21 February 2000&quot;
++.UC 4
++.SH NAME
++adsl-setup \- Shell script to configure Roaring Penguin PPPoE client
++.SH SYNOPSIS
++.B adsl-setup
++
++.SH DESCRIPTION
++\fBadsl-setup\fR is a shell script which prompts you for various pieces
++of information and sets up an /etc/ppp/pppoe.conf configuration script
++for the \fBadsl-start\fR, \fBadsl-stop\fR and \fBadsl-connect\fR scripts.
++
++.SH AUTHOR
++\fBadsl-setup\fR was written by David F. Skoll &lt;dfs@roaringpenguin.com&gt;.
++
++The \fBpppoe\fR home page is \fIhttp://www.roaringpenguin.com/pppoe/\fR.
++
++.SH SEE ALSO
++pppoe(8), adsl-start(8), adsl-stop(8), adsl-connect(8), pppd(8),
++pppoe.conf(5), adsl-status(8), pppoe-sniff(8), pppoe-relay(8),
++pppoe-server(8)
++
+
+<a id="drakxtrunkmdkstage1rppppoemanadslstart8">Added: drakx/trunk/mdk-stage1/rp-pppoe/man/adsl-start.8</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/man/adsl-start.8 (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/man/adsl-start.8 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,27 @@
++.\&quot; $Id: adsl-start.8 195724 2001-06-11 13:49:39Z gc $
++.TH ADSL-START 8 &quot;21 February 2000&quot;
++.UC 4
++.SH NAME
++adsl-start \- Shell script to bring up a PPPoE link
++.SH SYNOPSIS
++.B adsl-start \fR[\fIconfig_file\fR]
++.P
++.B adsl-start \fR\fIinterface user\fR [\fIconfig_file\fR]
++
++.SH DESCRIPTION
++\fBadsl-start\fR is a shell script which starts the Roaring Penguin
++user-space PPPoE client. If you omit \fIconfig_file\fR, the default
++file \fB/etc/ppp/pppoe.conf\fR is used. If you supply
++\fIinterface\fR and \fIuser\fR, then they override the Ethernet interface
++and user-name settings in the configuration file.
++
++.SH AUTHOR
++\fBadsl-start\fR was written by David F. Skoll &lt;dfs@roaringpenguin.com&gt;.
++
++The \fBpppoe\fR home page is \fIhttp://www.roaringpenguin.com/pppoe/\fR.
++
++.SH SEE ALSO
++pppoe(8), adsl-stop(8), adsl-connect(8), pppd(8), pppoe.conf(5),
++adsl-setup(8), adsl-status(8), pppoe-sniff(8), pppoe-relay(8),
++pppoe-server(8)
++
+
+<a id="drakxtrunkmdkstage1rppppoemanadslstatus8">Added: drakx/trunk/mdk-stage1/rp-pppoe/man/adsl-status.8</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/man/adsl-status.8 (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/man/adsl-status.8 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,25 @@
++.\&quot; $Id: adsl-status.8 195724 2001-06-11 13:49:39Z gc $
++.TH ADSL-STATUS 8 &quot;16 March 2000&quot;
++.UC 4
++.SH NAME
++adsl-status \- Shell script to report on status of PPPoE link
++.SH SYNOPSIS
++.B adsl-status \fR[\fIconfig_file\fR]
++
++.SH DESCRIPTION
++\fBadsl-status\fR is a shell script which checks the status of the
++PPPoE link established by the Roaring Penguin user-space PPPoE client.
++If you omit \fIconfig_file\fR, the default file
++\fB/etc/ppp/pppoe.conf\fR is used.
++
++.SH AUTHOR
++\fBadsl-status\fR was written by David F. Skoll &lt;dfs@roaringpenguin.com&gt;.
++
++The \fBpppoe\fR home page is \fIhttp://www.roaringpenguin.com/pppoe/\fR.
++
++.SH SEE ALSO
++pppoe(8), adsl-start(8), adsl-connect(8), pppd(8), pppoe.conf(5),
++adsl-setup(8), adsl-stop(8), pppoe-sniff(8), pppoe-relay(8),
++pppoe-server(8)
++
++
+
+<a id="drakxtrunkmdkstage1rppppoemanadslstop8">Added: drakx/trunk/mdk-stage1/rp-pppoe/man/adsl-stop.8</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/man/adsl-stop.8 (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/man/adsl-stop.8 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,21 @@
++.\&quot; $Id: adsl-stop.8 195724 2001-06-11 13:49:39Z gc $
++.TH ADSL-STOP 8 &quot;21 February 2000&quot;
++.UC 4
++.SH NAME
++adsl-stop \- Shell script to shut down a PPPoE link
++.SH SYNOPSIS
++.B adsl-stop \fR[\fIconfig_file\fR]
++
++.SH DESCRIPTION
++\fBadsl-stop\fR is a shell script which stops the Roaring Penguin
++user-space PPPoE client. If you omit \fIconfig_file\fR, the default
++file \fB/etc/ppp/pppoe.conf\fR is used.
++
++.SH AUTHOR
++\fBadsl-stop\fR was written by David F. Skoll &lt;dfs@roaringpenguin.com&gt;.
++
++The \fBpppoe\fR home page is \fIhttp://www.roaringpenguin.com/pppoe/\fR.
++
++.SH SEE ALSO
++pppoe(8), adsl-start(8), adsl-connect(8), pppd(8), pppoe.conf(5), adsl-setup(8), adsl-status(8), pppoe-sniff(8), pppoe-relay(8), pppoe-server(8)
++
+
+<a id="drakxtrunkmdkstage1rppppoemanpppoerelay8">Added: drakx/trunk/mdk-stage1/rp-pppoe/man/pppoe-relay.8</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/man/pppoe-relay.8 (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/man/pppoe-relay.8 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,124 @@
++.\&quot; $Id: pppoe-relay.8 195724 2001-06-11 13:49:39Z gc $
++.TH PPPOE-RELAY 8 &quot;26 January 2001&quot;
++.\&quot;&quot;
++.UC 4
++.SH NAME
++pppoe-relay \- user-space PPPoE relay agent.
++.SH SYNOPSIS
++.B pppoe-relay \fR[\fIoptions\fR]
++
++.SH DESCRIPTION
++\fBpppoe-relay\fR is a user-space relay agent for PPPoE
++(Point-to-Point Protocol over Ethernet) for Linux. \fBpppoe-relay\fR
++works in concert with the \fBpppoe\fR client and \fBpppoe-server\fR
++server. See the OPERATION section later in this manual for
++details on how \fBpppoe-relay\fR works.
++
++.SH OPTIONS
++.TP
++.B \-S \fIinterface\fR
++Adds the Ethernet interface \fIinterface\fR to the list of interfaces
++managed by \fBpppoe-relay\fR. Only PPPoE servers may be connected to
++this interface.
++
++.TP
++.B \-C \fIinterface\fR
++Adds the Ethernet interface \fIinterface\fR to the list of interfaces
++managed by \fBpppoe-relay\fR. Only PPPoE clients may be connected to
++this interface.
++
++.TP
++.B \-B \fIinterface\fR
++Adds the Ethernet interface \fIinterface\fR to the list of interfaces
++managed by \fBpppoe-relay\fR. Both PPPoE clients and servers may be
++connected to this interface.
++
++.TP
++.B \-n \fInum\fR
++Allows at most \fInum\fR concurrent PPPoE sessions. If not specified,
++the default is 5000. \fInum\fR can range from 1 to 65534.
++
++.TP
++.B \-i \fItimeout\fR
++Specifies the session idle timeout. If both peers in a session are idle
++for more than \fItimeout\fR seconds, the session is terminated.
++If \fItimeout\fR is specified as zero, sessions will never be terminated
++because of idleness.
++
++Note that the idle-session expiry routine is never run more frequently than
++every 30 seconds, so the timeout is approximate. The default value for
++\fItimeout\fR is 600 seconds (10 minutes.)
++
++.TP
++.B \-F
++The \fB\-F\fR option causes \fBpppoe-relay\fR \fInot\fR to fork into the
++background; instead, it remains in the foreground.
++
++.TP
++.B \-h
++The \fB\-h\fR option prints a brief usage message and exits.
++
++.SH OPERATION
++
++\fBpppoe-relay\fR listens for incoming PPPoE PADI frames on all interfaces
++specified with \fB-B\fR or \fB-C\fR options. When a PADI frame appears,
++\fBpppoe-relay\fR adds a Relay-Session-ID tag and broadcasts the PADI
++on all interfaces specified with \fB-B\fR or \fB-S\fR options (except the
++interface on which the frame arrived.)
++
++Any PADO frames received are relayed back to the client which sent the
++PADI (assuming they contain valid Relay-Session-ID tags.) Likewise,
++PADR frames from clients are relayed back to the matching access
++concentrator.
++
++When a PADS frame is received, \fBpppoe-relay\fR enters the two peers'
++MAC addresses and session-ID's into a hash table. (The session-ID seen
++by the access concentrator may be different from that seen by the client;
++\fBpppoe-relay\fR must renumber sessions to avoid the possibility of duplicate
++session-ID's.) Whenever either peer sends a session frame, \fBpppoe-relay\fR
++looks up the session entry in the hash table and relays the frame to
++the correct peer.
++
++When a PADT frame is received, \fBpppoe-relay\fR relays it to the peer
++and deletes the session entry from its hash table.
++
++If a client and server crash (or frames are lost), PADT frames may never
++be sent, and \fBpppoe-relay\fR's hash table can fill up with stale sessions.
++Therefore, a session-cleaning routine runs periodically, and removes old
++sessions from the hash table. A session is considered &quot;old&quot; if no traffic
++has been seen within \fItimeout\fR seconds. When a session is deleted because
++of a timeout, a PADT frame is sent to each peer to make certain that they
++are aware the session has been killed.
++
++.SH EXAMPLE INVOCATIONS
++
++.nf
++pppoe-relay -C eth0 -S eth1
++.fi
++
++The example above relays frames between PPPoE clients on the eth0 network
++and PPPoE servers on the eth1 network.
++
++.nf
++pppoe-relay -B eth0 -B eth1
++.fi
++
++This example is a transparent relay -- frames are relayed between any mix
++of clients and servers on the eth0 and eth1 networks.
++
++.nf
++pppoe-relay -S eth0 -C eth1 -C eth2 -C eth3
++.fi
++
++This example relays frames between servers on the eth0 network and
++clients on the eth1, eth2 and eth3 networks.
++
++.SH AUTHORS
++\fBpppoe-relay\fR was written by David F. Skoll &lt;dfs@roaringpenguin.com&gt;.
++
++The \fBpppoe\fR home page is \fIhttp://www.roaringpenguin.com/pppoe/\fR.
++
++.SH SEE ALSO
++adsl-start(8), adsl-stop(8), adsl-connect(8), pppd(8), pppoe.conf(5),
++pppoe(8), adsl-setup(8), adsl-status(8), pppoe-sniff(8), pppoe-server(8)
++
+
+<a id="drakxtrunkmdkstage1rppppoemanpppoeserver8">Added: drakx/trunk/mdk-stage1/rp-pppoe/man/pppoe-server.8</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/man/pppoe-server.8 (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/man/pppoe-server.8 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,123 @@
++.\&quot; $Id: pppoe-server.8 195724 2001-06-11 13:49:39Z gc $
++.TH PPPOE-SERVER 8 &quot;3 July 2000&quot;
++.\&quot;&quot;
++.UC 4
++.SH NAME
++pppoe-server \- user-space PPPoE server
++.SH SYNOPSIS
++.B pppoe-server \fR[\fIoptions\fR]
++
++.SH DESCRIPTION
++\fBpppoe-server\fR is a user-space server for PPPoE (Point-to-Point Protocol
++over Ethernet) for Linux and other UNIX systems. \fBpppoe-server\fR works in
++concert with the \fBpppoe\fR client to respond to PPPoE discovery packets
++and set up PPPoE sessions.
++
++.SH OPTIONS
++.TP
++.B \-F
++The \fB\-F\fR option causes \fBpppoe-server\fR not to fork and become a
++daemon. The default is to fork and become a daemon.
++
++.TP
++.B \-I \fIinterface\fR
++The \fB\-I\fR option specifies the Ethernet interface to use. Under Linux,
++it is typically \fIeth0\fR or \fIeth1\fR. The interface should be &quot;up&quot;
++before you start \fBpppoe-server\fR, but should \fInot\fR be configured to have
++an IP address.
++
++.TP
++.B \-T \fItimeout\fR
++This option is passed directly to \fBpppoe\fR; see \fBpppoe\fR(8) for
++details.
++
++.TP
++.B \-C \fIac_name\fR
++Specifies which name to report as the access concentrator name. If not
++supplied, the host name is used.
++
++.TP
++.B \-m \fIMSS\fR
++This option is passed directly to \fBpppoe\fR; see \fBpppoe\fR(8) for
++details.
++
++.TP
++.B \-s
++This option is passed directly to \fBpppoe\fR; see \fBpppoe\fR(8) for
++details. In addition, it causes \fBpppd\fR to be invoked with the
++\fIsync\fR option.
++
++.TP
++.B \-L \fIip\fR
++Sets the local IP address. This is passed to spawned \fBpppd\fR processes.
++If not specified, the default is 10.0.0.1.
++
++.TP
++.B \-R \fIip\fR
++Sets the starting remote IP address. As sessions are established,
++IP addresses are assigned starting from \fIip\fR. \fBpppoe-server\fR
++automatically keeps track of the pool of addresses and passes a
++valid remote IP address to \fBpppd\fR. If not specified, a starting address
++of 10.67.15.1 is used.
++
++.TP
++.B \-N \fInum\fR
++Allows at most \fInum\fR concurrent PPPoE sessions. If not specified,
++the default is 64.
++
++.TP
++.B \-p \fIfname\fR
++Reads the specified file \fIfname\fR which is a text file consisting of
++one IP address per line. These IP addresses will be assigned to clients.
++The number of sessions allowed will equal the number of addresses found
++in the file. The \fB\-p\fR option overrides both \fB\-R\fR and \fB\-N\fR.
++
++.TP
++.B \-o \fIoffset\fR
++Instead of numbering PPPoE sessions starting at 1, they will be numbered
++starting at \fIoffset\fR+1. This allows you to run multiple servers on
++a given machine; just make sure that their session numbers do not
++overlap.
++
++.TP
++.B \-f disc:sess
++The \fB\-f\fR option sets the Ethernet frame types for PPPoE discovery
++and session frames. The types are specified as hexadecimal numbers
++separated by a colon. Standard PPPoE uses frame types 8863:8864.
++\fIYou should not use this option\fR unless you are absolutely sure
++the peer you are dealing with uses non-standard frame types.
++
++.TP
++.B \-h
++The \fB\-h\fR option prints a brief usage message and exits.
++
++.SH OPERATION
++
++\fBpppoe-server\fR listens for incoming PPPoE discovery packets. When
++a session is established, it spawns a \fBpppd\fR process. The following
++options are passed to \fBpppd\fR:
++
++.nf
++nodetach noaccomp nobsdcom nodeflate nopcomp novj novjccomp
++default-asyncmap
++.fi
++
++In addition, the local and remote IP address are set based on the
++\fB\-L\fR and \fB\-R\fR options. The \fBpty\fR option is supplied along
++with a \fBpppoe\fR command to initiate the PPPoE session. Finally,
++additional \fBpppd\fR options can be placed in the file
++\fB/etc/ppp/pppoe-server-options\fR (which must exist, even if it is just
++empty!)
++
++Note that \fBpppoe-server\fR is meant mainly for testing PPPoE clients.
++It is \fInot\fR a high-performance server meant for production use.
++
++.SH AUTHORS
++\fBpppoe-server\fR was written by David F. Skoll &lt;dfs@roaringpenguin.com&gt;.
++
++The \fBpppoe\fR home page is \fIhttp://www.roaringpenguin.com/pppoe/\fR.
++
++.SH SEE ALSO
++adsl-start(8), adsl-stop(8), adsl-connect(8), pppd(8), pppoe.conf(5),
++pppoe(8), adsl-setup(8), adsl-status(8), pppoe-sniff(8), pppoe-relay(8)
++
+
+<a id="drakxtrunkmdkstage1rppppoemanpppoesniff8">Added: drakx/trunk/mdk-stage1/rp-pppoe/man/pppoe-sniff.8</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/man/pppoe-sniff.8 (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/man/pppoe-sniff.8 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,77 @@
++.\&quot; $Id: pppoe-sniff.8 195724 2001-06-11 13:49:39Z gc $
++.TH PPPOE-SNIFF 8 &quot;3 July 2000&quot;
++.\&quot;&quot;
++.UC 4
++.SH NAME
++pppoe-sniff \- examine network for non-standard PPPoE frames
++.SH SYNOPSIS
++.B pppoe-sniff \fR[\fIoptions\fR]
++
++.SH DESCRIPTION
++\fBpppoe-sniff\fR listens for likely-looking PPPoE PADR and session frames
++and deduces extra options required for \fBpppoe(8)\fR to work.
++
++Some DSL providers seem to use non-standard frame types for PPPoE frames,
++and/or require a certain value in the Service-Name field. It is often
++easier to sniff those values from a machine which can successfully connect
++rather than try to pry them out of the DSL provider.
++
++To use \fBpppoe-sniff\fR, you need two computers, a DSL modem and
++an Ethernet hub (\fInot\fR an Ethernet switch.)
++
++If the DSL modem normally connects directly to your computer's
++Ethernet card, connect it to the &quot;uplink&quot; port on the Ethernet hub.
++Plug two computers into normal ports on the hub. On one computer, run
++whatever software the DSL provider gave you on whatever operating
++system the DSL provider supports. On the other computer, run Linux and
++log in as root.
++
++On the Linux machine, put the Ethernet interface into promiscuous mode
++and start \fBpppoe-sniff\fR. If the ethernet interface is \fIeth0\fR,
++for example, type these commands:
++
++.nf
++ ifconfig eth0 promisc
++ pppoe-sniff -I eth0
++.fi
++
++On the other machine, start your DSL connection as usual. After a short
++time, \fBpppoe-sniff\fR should print recommendations for the value
++of \fBPPPOE_EXTRA\fR. Set this value in \fB/etc/ppp/pppoe.conf\fR.
++If \fBpppoe-sniff\fR indicates that something special is required in
++\fBPPPOE_EXTRA\fR, please e-mail this to \fBpppoe@roaringpenguin.com\fR
++along with the name of your ISP and the manufacturer and model number of
++your DSL modem. This information will be collated and provided on the
++PPPoE web page for users who do not have two computers.
++
++After \fBpppoe-sniff\fR finishes (or you stop it if it seems hung),
++remember to turn off promiscuous mode:
++
++.nf
++ ifconfig eth0 -promisc
++.fi
++
++.SH OPTIONS
++.TP
++.B \-I \fIinterface\fR
++The \fB\-I\fR option specifies the Ethernet interface to use. Under Linux,
++it is typically \fIeth0\fR or \fIeth1\fR. The interface should be &quot;up&quot;
++and in promiscuous mode before you start \fBpppoe-sniff\fR.
++
++.TP
++.B \-V
++The \fB\-V\fR option causes \fBpppoe-sniff\fR to print its version number and
++exit.
++
++.SH BUGS
++\fBpppoe-sniff\fR only works on Linux.
++
++.SH AUTHORS
++\fBpppoe-sniff\fR was written by David F. Skoll &lt;dfs@roaringpenguin.com&gt;.
++
++The \fBpppoe\fR home page is \fIhttp://www.roaringpenguin.com/pppoe/\fR.
++
++.SH SEE ALSO
++adsl-start(8), adsl-stop(8), adsl-connect(8), pppd(8), pppoe.conf(5),
++pppoe(8), adsl-setup(8), adsl-status(8), pppoe-server(8), pppoe-relay(8)
++
+
+<a id="drakxtrunkmdkstage1rppppoemanpppoe8">Added: drakx/trunk/mdk-stage1/rp-pppoe/man/pppoe.8</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/man/pppoe.8 (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/man/pppoe.8 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,236 @@
++.\&quot; $Id: pppoe.8 195724 2001-06-11 13:49:39Z gc $
++.TH PPPOE 8 &quot;3 July 2000&quot;
++.UC 4
++.SH NAME
++pppoe \- user-space PPPoE client.
++.SH SYNOPSIS
++.B pppd pty 'pppoe \fR[\fIpppoe_options\fR]\fB' \fR[\fIpppd_options\fR]
++.P
++.B pppoe -A \fR[\fIpppoe_options\fR]
++.SH DESCRIPTION
++\fBpppoe\fR is a user-space client for PPPoE (Point-to-Point Protocol
++over Ethernet) for Linux and other UNIX systems. \fBpppoe\fR works in
++concert with the \fBpppd\fR PPP daemon to provide a PPP connection
++over Ethernet, as is used by many ADSL service providers.
++
++.SH OPTIONS
++.TP
++.B \-I \fIinterface\fR
++The \fB\-I\fR option specifies the Ethernet interface to use. Under Linux,
++it is typically \fIeth0\fR or \fIeth1\fR. The interface should be &quot;up&quot;
++before you start \fBpppoe\fR, but should \fInot\fR be configured to have
++an IP address.
++
++.TP
++.B \-T \fItimeout\fR
++The \fB\-T\fR option causes \fBpppoe\fR to exit if no session traffic
++is detected for \fItimeout\fR seconds. I recommend that you use this
++option as an extra safety measure, but if you do, you should make sure
++that PPP generates enough traffic so the timeout will normally not be
++triggered. The best way to do this is to use the
++\fIlcp-echo-interval\fR option to \fBpppd\fR. You should set the
++PPPoE timeout to be about four times the LCP echo interval.
++
++.TP
++.B \-D \fIfile_name\fR
++The \fB\-D\fR option causes every packet to be dumped to the specified
++\fIfile_name\fR. This is intended for debugging only; it produces huge
++amounts of output and greatly reduces performance.
++
++.TP
++.B \-V
++The \fB\-V\fR option causes \fBpppoe\fR to print its version number and
++exit.
++
++.TP
++.B \-A
++The \fB\-A\fR option causes \fBpppoe\fR to send a PADI packet and then print
++the names of access concentrators in each PADO packet it receives. Do not
++use this option in conjunction with \fBpppd\fR; the \fB\-A\fR option is
++meant to be used interactively to give interesting information about the
++access concentrator.
++
++.TP
++.B \-S \fIservice_name\fR
++Specifies the desired service name. \fBpppoe\fR will only initiate sessions
++with access concentrators which can provide the specified service. In
++most cases, you should \fInot\fR specify this option. Use it only if you
++know that there are multiple access concentrators or know that you need a
++specific service name.
++
++.TP
++.B \-C \fIac_name\fR
++Specifies the desired access concentrator name. \fBpppoe\fR will only
++initiate sessions with the specified access concentrator. In
++most cases, you should \fInot\fR specify this option. Use it only if you
++know that there are multiple access concentrators. If both the
++\fB\-S\fR and \fB\-C\fR options are specified, they must \fIboth\fR match
++for \fBpppoe\fR to initiate a session.
++
++.TP
++.B \-U
++Causes \fBpppoe\fR to use the Host-Uniq tag in its discovery packets. This
++lets you run multiple \fBpppoe\fR daemons without having their discovery
++packets interfere with one another. You must supply this option to
++\fIall\fR \fBpppoe\fR daemons if you intend to run multiple daemons
++simultaneously.
++
++.TP
++.B \-s
++Causes \fBpppoe\fR to use \fIsynchronous\fR PPP encapsulation. If you
++use this option, then you \fImust\fR use the \fBsync\fR option with
++\fBpppd\fR. You are encouraged to use this option if it works, because
++it greatly reduces the CPU overhead of \fBpppoe\fR. However, it
++MAY be unreliable on slow machines -- there is a race condition between
++pppd writing data and pppoe reading it. For this reason, the default
++setting is asynchronous. If you encounter bugs or crashes with Synchronous
++PPP, turn it off -- don't e-mail me for support!
++
++.TP
++.B \-m \fIMSS\fR
++Causes \fBpppoe\fR to \fIclamp\fR the TCP maximum segment size at the specified
++value. Because of PPPoE overhead, the maximum segment size for PPPoE is
++smaller than for normal Ethernet encapsulation. This could cause problems
++for machines on a LAN behind a gateway using PPPoE. If you have a LAN
++behind a gateway, and the gateway connects to the Internet using PPPoE,
++you are strongly recommended to use a \fB\-m 1412\fR option. This avoids
++having to set the MTU on all the hosts on the LAN.
++
++.TP
++.B \-p \fIfile\fR
++Causes \fBpppoe\fR to write its process-ID to the specified file. This
++can be used to locate and kill \fBpppoe\fR processes.
++
++.TP
++.B \-e \fIsess:mac\fR
++Causes \fBpppoe\fR to skip the discovery phase and move directly to the
++session phase. The session is given by \fIsess\fR and the MAC address of
++the peer by \fImac\fR. This mode is \fInot\fR meant for normal use; it
++is designed only for \fBpppoe-server\fR(8).
++
++.TP
++.B \-n
++Causes \fBpppoe\fR not to open a discovery socket. This mode is
++\fInot\fR meant for normal use; it is designed only for
++\fBpppoe-server\fR(8).
++
++.TP
++.B \-k
++Causes \fBpppoe\fR to terminate an existing session by sending a PADT frame,
++and then exit. You must use the \fB\-e\fR option in conjunction with this
++option to specify the session to kill. This may be useful for killing
++sessions when a buggy peer does not realize the session has ended.
++
++.TP
++.B \-d
++Causes \fBpppoe\fR to perform discovery and then exit, after printing
++session information to standard output. The session information is printed
++in exactly the format expected by the \fB\-e\fR option. This option lets
++you initiate a PPPoE discovery, perform some other work, and then start
++the actual PPP session. \fIBe careful\fR; if you use this option in a loop,
++you can create many sessions, which may annoy your peer.
++
++.TP
++.B \-f disc:sess
++The \fB\-f\fR option sets the Ethernet frame types for PPPoE discovery
++and session frames. The types are specified as hexadecimal numbers
++separated by a colon. Standard PPPoE uses frame types 8863:8864.
++\fIYou should not use this option\fR unless you are absolutely sure
++the peer you are dealing with uses non-standard frame types. If your
++ISP uses non-standard frame types, complain!
++
++.TP
++.B \-h
++The \fB\-h\fR option causes \fBpppoe\fR to print usage information and
++exit.
++
++.SH PPPOE BACKGROUND
++
++PPPoE (Point-to-Point Protocol over Ethernet) is described in RFC 2516
++and is a protocol which allows the session abstraction to be maintained
++over bridged Ethernet networks.
++
++PPPoE works by encapsulating PPP frames in Ethernet frames. The protocol
++has two distinct stages: The \fIdiscovery\fR and the \fIsession\fR stage.
++
++In the discovery stage, the host broadcasts a special PADI (PPPoE
++Active Discovery Initiation) frame to discover any \fIaccess
++concentrators\fR. The access concentrators (typically, only one
++access concentrator) reply with PADO (PPPoE Active Discovery Offer)
++packets, announcing their presence and the services they offer. The
++host picks one of the access concentrators and transmits a PADR (PPPoE
++Active Discovery Request) packet, asking for a session. The access
++concentrator replies with a PADS (PPPoE Active Discovery
++Session-Confirmation) packet. The protocol then moves to the session stage.
++
++In the session stage, the host and access concentrator exchange PPP frames
++embedded in Ethernet frames. The normal Ethernet MTU is 1500 bytes, but
++the PPPoE overhead plus two bytes of overhead for the encapsulated PPP
++frame mean that the MTU of the PPP interface is at most 1492 bytes.
++This causes \fIall kinds of problems\fR if you are using a Linux machine
++as a firewall and interfaces behind the firewall have an MTU greater than
++1492. In fact, to be safe, I recommend setting the MTU of machines
++behind the firewall to 1412, to allow for worst-case TCP and IP options
++in their respective headers.
++
++Normally, PPP uses the Link Control Protocol (LCP) to shut down a PPP
++link. However, the PPPoE specification allows the link to be shut down
++with a special PADT (PPPoE Active Discovery Terminate) packet. This client
++recognizes this packet and will correctly terminate if a terminate request
++is received for the PPP session.
++
++.SH DESIGN GOALS
++
++My design goals for this PPPoE client were as follows, in descending order
++of importance:
++
++.TP
++.B o
++It must work.
++
++.TP
++.B o
++It must be a user-space program and not a kernel patch.
++
++.TP
++.B o
++The code must be easy to read and maintain.
++
++.TP
++.B o
++It must be fully compliant with RFC 2516, the proposed PPPoE standard.
++
++.TP
++.B o
++It must never hang up forever -- if the connection is broken, it must
++detect this and exit, allowing a wrapper script to restart the connection.
++
++.TP
++.B o
++It must be fairly efficient.
++
++.P
++I believe I have achieved all of these goals, but (of course) am open
++to suggestions, patches and ideas. See my home page,
++http://www.roaringpenguin.com, for contact information.
++
++.SH NOTES
++
++For best results, you must give \fBpppd\fR an mtu option of
++1492. I have observed problems with excessively-large frames
++unless I set this option. Also, if \fBpppoe\fR is running on a firewall
++machine, all machines behind the firewall should have MTU's of 1412.
++
++If you have problems, check your system logs. \fBpppoe\fR logs interesting
++things to syslog. You may have to turn on logging of \fIdebug\fR-level
++messages for complete diagnosis.
++
++.SH AUTHORS
++\fBpppoe\fR was written by David F. Skoll &lt;dfs@roaringpenguin.com&gt;,
++with much inspiration from an earlier version by Luke Stras.
++
++The \fBpppoe\fR home page is \fIhttp://www.roaringpenguin.com/pppoe/\fR.
++
++.SH SEE ALSO
++adsl-start(8), adsl-stop(8), adsl-connect(8), pppd(8), pppoe.conf(5), adsl-setup(8), adsl-status(8), pppoe-sniff(8), pppoe-server(8), pppoe-relay(8)
++
+
+<a id="drakxtrunkmdkstage1rppppoemanpppoeconf5">Added: drakx/trunk/mdk-stage1/rp-pppoe/man/pppoe.conf.5</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/man/pppoe.conf.5 (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/man/pppoe.conf.5 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,168 @@
++.\&quot; $Id: pppoe.conf.5 195724 2001-06-11 13:49:39Z gc $
++.\&quot;&quot;
++.TH PPPOE.CONF 5 &quot;21 February 2000&quot;
++.UC 4
++.SH NAME
++pppoe.conf \- Configuration file used by \fBadsl-start\fR(8),
++\fBadsl-stop\fR(8), \fBadsl-status(8)\fR and \fBadsl-connect\fR(8).
++
++.SH DESCRIPTION
++\fB/etc/ppp/pppoe.conf\fR is a shell script which contains configuration
++information for Roaring Penguin's ADSL scripts. Note that \fBpppoe.conf\fR
++is used only by the various adsl-* shell scripts, not by \fBpppoe\fR
++itself.
++
++\fBpppoe.conf\fR consists of a sequence of shell variable assignments.
++The variables and their meanings are:
++
++.TP
++.B ETH
++The Ethernet interface connected to the ADSL modem (for example, eth0).
++
++.TP
++.B USER
++The ADSL user-id (for example, b1xxnxnx@sympatico.ca).
++
++.TP
++.B SERVICENAME
++If this is not blank, then it is passed with the \fB\-S\fR option to
++\fBpppoe\fR. It specifies a service name to ask for. Usually, you
++should leave it blank.
++
++.TP
++.B ACNAME
++If this is not blank, then it is passed with the \fB\-C\fR option to
++\fBpppoe\fR. It specifies the name of the access concentrator to connect
++to. Usually, you should leave it blank.
++
++.TP
++.B DEMAND
++If set to a number, the link is activated on demand and brought down
++after after \fBDEMAND\fR seconds. If set to \fBno\fR, the link is kept
++up all the time rather than being activated on demand.
++
++.TP
++.B DNSTYPE
++One of \fBNOCHANGE\fR, \fBSPECIFY\fR or \fBSERVER\fR. If
++set to NOCHANGE, \fBadsl-connect\fR will not adjust the DNS setup in
++any way. If set to SPECIFY, it will re-write /etc/resolv.conf with
++the values of DNS1 and DNS2. If set to \fBSERVER\fR, it will
++supply the \fIusepeerdns\fR option to \fBpppd\fR, and make a symlink
++from /etc/resolv.conf to /etc/ppp/resolv.conf.
++
++.TP
++.B DNS1, DNS2
++IP addresses of DNS servers if you use DNSTYPE=SPECIFY.
++
++.TP
++.B NONROOT
++If the line \fBNONROOT=OK\fR (exactly like that; no whitespace or comments)
++appears in the configuration file, then \fBpppoe-wrapper\fR will allow
++non-root users to bring the conneciton up or down. The wrapper is installed
++only if you installed the rp-pppoe-gui package.
++
++.TP
++.B USEPEERDNS
++If set to &quot;yes&quot;, then \fBadsl-connect\fR will supply the \fIusepeerdns\fR
++option to \fBpppd\fR, which causes it to obtain DNS server addresses
++from the peer and create a new \fB/etc/resolv.conf\fR file. Otherwise,
++\fBadsl-connect\fR will not supply this option, and \fBpppd\fR will not
++modify \fB/etc/resolv.conf\fR.
++
++.TP
++.B CONNECT_POLL
++How often (in seconds) \fBadsl-start\fR should check to see if a new PPP
++interface has come up. If this is set to 0, the \fBadsl-start\fR simply
++initiates the PPP session, but does not wait to see if it comes up
++successfully.
++
++.TP
++.B CONNECT_TIMEOUT
++How long (in seconds) \fBadsl-start\fR should wait for a new PPP interface
++to come up before concluding that \fBadsl-connect\fR has failed and killing
++the session.
++
++.TP
++.B PING
++A character which is echoed every \fBCONNECT_POLL\fR seconds while
++\fBadsl-start\fR is waiting for the PPP interface to come up.
++
++.TP
++.B FORCEPING
++A character which is echoed every \fBCONNECT_POLL\fR seconds while
++\fBadsl-start\fR is waiting for the PPP interface to come up. Similar
++to \fBPING\fR, but the character is echoed even if \fBadsl-start\fR's
++standard output is not a tty.
++
++.TP
++.B PIDFILE
++A file in which to write the process-ID of the adsl-connect process
++(for example, \fB/var/run/pppoe.pid\fR). Two additional files
++($PIDFILE.pppd and $PIDFILE.pppoe) hold the process-ID's of the
++\fBpppd\fR and \fBpppoe\fR processes, respectively.
++
++.TP
++.B SYNCHRONOUS
++An indication of whether or not to use synchronous PPP (\fByes\fR or
++\fBno\fR). Synchronous PPP is safe on Linux machines with the n_hdlc
++line discipline. (If you have a file called &quot;n_hdlc.o&quot; in your
++modules directory, you have the line discipline.) It is \fInot
++recommended\fR on other machines or on Linux machines without the
++n_hdlc line discipline due to some known and unsolveable race
++conditions in a user-mode client.
++
++.TP
++.B CLAMPMSS
++The value at which to &quot;clamp&quot; the advertised MSS for TCP sessions. The
++default of 1412 should be fine.
++
++.TP
++.B LCP_INTERVAL
++How often (in seconds) \fBpppd\fR sends out LCP echo-request packets.
++
++.TP
++.B LCP_FAILURE
++How many unanswered LCP echo-requests must occur before \fBpppd\fR
++concludes the link is dead.
++
++.TP
++.B PPPOE_TIMEOUT
++If this many seconds elapse without any activity seen by \fBpppoe\fR,
++then \fBpppoe\fR exits.
++
++.TP
++.B FIREWALL
++One of NONE, STANDALONE or MASQUERADE. If NONE, then \fBadsl-connect\fR does
++not add any firewall rules. If STANDALONE, then it clears existing firewall
++rules and sets up basic rules for a standalone machine. If MASQUERADE, then
++it clears existing firewall rules and sets up basic rules for an Internet
++gateway. If you run services on your machine, these simple firewall scripts
++are inadequate; you'll have to make your own firewall rules and set FIREWALL
++to NONE.
++
++.TP
++.B PPPOE_EXTRA
++Any extra arguments to pass to \fBpppoe\fR
++
++.TP
++.B PPPD_EXTRA
++Any extra arguments to pass to \fBpppd\fR
++
++.TP
++.B LINUX_PLUGIN
++If non-blank, the full path of the Linux kernel-mode PPPoE plugin
++(typically \fB/etc/ppp/plugins/rp-pppoe.so\fR.) This forces
++\fBadsl-connect\fR to use kernel-mode PPPoE on Linux 2.4.x systems.
++This code is experimental and unsupported. Use of the plugin causes
++\fBadsl-connect\fR to ignore CLAMPMSS, PPPOE_EXTRA, SYNCHRONOUS and
++PPPOE_TIMEOUT.
++
++.P
++By using different configuration files with different PIDFILE
++settings, you can manage multiple PPPoE connections. Just specify the
++configuration file as an argument to \fBadsl-start\fR and \fBadsl-stop\fR.
++
++.SH SEE ALSO
++pppoe(8), adsl-connect(8), adsl-start(8), adsl-stop(8), pppd(8), adsl-setup(8),
++pppoe-wrapper(8)
++
+
+<a id="drakxtrunkmdkstage1rppppoerppppoeguispec">Added: drakx/trunk/mdk-stage1/rp-pppoe/rp-pppoe-gui.spec</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/rp-pppoe-gui.spec (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/rp-pppoe-gui.spec 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,98 @@
++Summary: PPP Over Ethernet (xDSL support)
++Name: rp-pppoe-gui
++Version: 3.0
++%if %(%{expand:test %{_vendor} != mandriva ; echo $?})
++Release: 1mdk
++%else
++Release: 1
++%endif
++Copyright: GPL
++Group: System Environment/Daemons
++Source: http://www.roaringpenguin.com/pppoe/rp-pppoe-3.0.tar.gz
++Url: http://www.roaringpenguin.com/pppoe/
++Packager: David F. Skoll &lt;dfs@roaringpenguin.com&gt;
++BuildRoot: /tmp/pppoe-build
++Vendor: Roaring Penguin Software Inc.
++Requires: ppp &gt;= 2.3.7
++Requires: rp-pppoe &gt;= 3.0
++
++%description
++This is a graphical wrapper around the rp-pppoe PPPoE client. PPPoE is
++a protocol used by many DSL Internet Service Providers.
++
++%prep
++umask 022
++mkdir -p $RPM_BUILD_ROOT
++cd $RPM_BUILD_ROOT
++rm -rf $RPM_BUILD_ROOT/rp-pppoe-%{version}
++zcat $RPM_SOURCE_DIR/rp-pppoe-%{version}.tar.gz | tar xvf -
++cd $RPM_BUILD_ROOT/rp-pppoe-%{version}/src
++./configure --mandir=%{_mandir}
++
++%build
++cd $RPM_BUILD_ROOT/rp-pppoe-%{version}/gui
++make
++
++%install
++cd $RPM_BUILD_ROOT/rp-pppoe-%{version}/gui
++make install RPM_INSTALL_ROOT=$RPM_BUILD_ROOT
++
++%clean
++rm -rf $RPM_BUILD_ROOT
++
++%post
++# Install entry in KDE menu
++if test -n &quot;$KDEDIR&quot; ; then
++ mkdir -p &quot;$KDEDIR/share/applnk/Internet&quot;
++ cat &lt;&lt;EOF &gt; &quot;$KDEDIR/share/applnk/Internet/tkpppoe.kdelnk&quot;
++# KDE Config File
++[KDE Desktop Entry]
++Name=TkPPPoE
++Comment=Start/Stop ADSL connections
++Exec=tkpppoe
++Terminal=0
++Type=Application
++EOF
++fi
++
++# Install entry in GNOME menus
++GNOMEDIR=`gnome-config --datadir 2&gt;/dev/null`
++if test -n &quot;$GNOMEDIR&quot; ; then
++ mkdir -p &quot;$GNOMEDIR/gnome/apps/Internet&quot;
++cat &lt;&lt;EOF &gt; &quot;$GNOMEDIR/gnome/apps/Internet/tkpppoe.desktop&quot;
++[Desktop Entry]
++Name=TkPPPoE
++Comment=Start/Stop ADSL connections
++Exec=tkpppoe
++Terminal=0
++Type=Application
++EOF
++fi
++
++%postun
++# Remove KDE menu entry
++if test -n &quot;$KDEDIR&quot; ; then
++ rm -f &quot;$KDEDIR/share/applnk/Internet/tkpppoe.kdelnk&quot;
++fi
++
++# Remove GNOME menu entry
++GNOMEDIR=`gnome-config --datadir 2&gt;/dev/null`
++if test -n &quot;$GNOMEDIR&quot; ; then
++ rm -f &quot;$GNOMEDIR/gnome/apps/Internet/tkpppoe.desktop&quot;
++fi
++
++%files
++%defattr(-,root,root)
++%dir /etc/ppp/rp-pppoe-gui
++/usr/sbin/pppoe-wrapper
++/usr/bin/tkpppoe
++%{_mandir}/man1/tkpppoe.1*
++%{_mandir}/man1/pppoe-wrapper.1*
++/usr/share/rp-pppoe-gui/tkpppoe.html
++/usr/share/rp-pppoe-gui/mainwin-busy.png
++/usr/share/rp-pppoe-gui/mainwin-nonroot.png
++/usr/share/rp-pppoe-gui/mainwin.png
++/usr/share/rp-pppoe-gui/props-advanced.png
++/usr/share/rp-pppoe-gui/props-basic.png
++/usr/share/rp-pppoe-gui/props-nic.png
++/usr/share/rp-pppoe-gui/props-options.png
+
+<a id="drakxtrunkmdkstage1rppppoerppppoespec">Added: drakx/trunk/mdk-stage1/rp-pppoe/rp-pppoe.spec</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/rp-pppoe.spec (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/rp-pppoe.spec 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,71 @@
++Summary: PPP Over Ethernet (xDSL support)
++Name: rp-pppoe
++Version: 3.0
++%if %(%{expand:test %{_vendor} != mandriva ; echo $?})
++Release: 1mdk
++%else
++Release: 1
++%endif
++Copyright: GPL
++Group: System Environment/Daemons
++Source: http://www.roaringpenguin.com/pppoe/rp-pppoe-3.0.tar.gz
++Url: http://www.roaringpenguin.com/pppoe/
++Packager: David F. Skoll &lt;dfs@roaringpenguin.com&gt;
++BuildRoot: /tmp/pppoe-build
++Vendor: Roaring Penguin Software Inc.
++Requires: ppp &gt;= 2.3.7
++
++%description
++PPPoE (Point-to-Point Protocol over Ethernet) is a protocol used by
++many ADSL Internet Service Providers. Roaring Penguin has a free
++client for Linux systems to connect to PPPoE service providers.
++
++The client is a user-mode program and does not require any kernel
++modifications. It is fully compliant with RFC 2516, the official PPPoE
++specification.
++
++%prep
++%setup
++cd src
++./configure --mandir=%{_mandir}
++
++%build
++cd src
++make
++
++%install
++cd src
++make install RPM_INSTALL_ROOT=$RPM_BUILD_ROOT
++
++%clean
++rm -rf $RPM_BUILD_ROOT
++
++%files
++%defattr(-,root,root)
++%doc doc/CHANGES doc/HOW-TO-CONNECT doc/LICENSE doc/KERNEL-MODE-PPPOE README
++%config /etc/ppp/pppoe.conf
++%config /etc/ppp/pppoe-server-options
++%config /etc/ppp/firewall-masq
++%config /etc/ppp/firewall-standalone
++/etc/ppp/plugins/*
++/usr/sbin/pppoe
++/usr/sbin/pppoe-server
++/usr/sbin/pppoe-sniff
++/usr/sbin/pppoe-relay
++/usr/sbin/adsl-connect
++/usr/sbin/adsl-start
++/usr/sbin/adsl-stop
++/usr/sbin/adsl-setup
++/usr/sbin/adsl-status
++%{_mandir}/man5/pppoe.conf.5*
++%{_mandir}/man8/pppoe.8*
++%{_mandir}/man8/pppoe-server.8*
++%{_mandir}/man8/pppoe-relay.8*
++%{_mandir}/man8/pppoe-sniff.8*
++%{_mandir}/man8/adsl-connect.8*
++%{_mandir}/man8/adsl-start.8*
++%{_mandir}/man8/adsl-stop.8*
++%{_mandir}/man8/adsl-status.8*
++%{_mandir}/man8/adsl-setup.8*
++/etc/rc.d/init.d/adsl
++
+
+<a id="drakxtrunkmdkstage1rppppoescriptsadslconnectin">Added: drakx/trunk/mdk-stage1/rp-pppoe/scripts/adsl-connect.in</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/scripts/adsl-connect.in (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/scripts/adsl-connect.in 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,278 @@
++#!/bin/sh
++# @configure_input@
++#***********************************************************************
++#
++# adsl-connect
++#
++# Shell script to connect to an ADSL provider using PPPoE
++#
++# Copyright (C) 2000 Roaring Penguin Software Inc.
++#
++# $Id: adsl-connect.in 195724 2001-06-11 13:49:39Z gc $
++#
++# This file may be distributed under the terms of the GNU General
++# Public License.
++#
++# Usage: adsl-connect [config_file]
++# adsl-connect interface user [config_file]
++# Second form overrides USER and ETH from config file.
++# If config_file is omitted, defaults to /etc//ppp/pppoe.conf
++#
++#***********************************************************************
++
++# From AUTOCONF
++prefix=@prefix@
++exec_prefix=@exec_prefix@
++localstatedir=/var
++
++# Paths to programs
++IFCONFIG=/sbin/ifconfig
++PPPD=@PPPD@
++SETSID=@SETSID@
++PPPOE=@sbindir@/pppoe
++LOGGER=&quot;/usr/bin/logger -t `basename $0`&quot;
++
++# Must be root
++if test &quot;`@ID@ -u`&quot; != 0 ; then
++ echo &quot;$0: You must be root to run this script&quot; &gt;&amp; 2
++ exit 1
++fi
++
++if test &quot;$SETSID&quot; != &quot;&quot; -a ! -x &quot;$SETSID&quot;; then
++ SETSID=&quot;&quot;
++fi
++
++CONFIG=/etc//ppp/pppoe.conf
++USER=&quot;&quot;
++ETH=&quot;&quot;
++
++# Sort out command-line arguments
++case &quot;$#&quot; in
++ 1)
++ CONFIG=&quot;$1&quot;
++ ;;
++ 3)
++ CONFIG=&quot;$3&quot;
++ ;;
++esac
++
++if test ! -f &quot;$CONFIG&quot; -o ! -r &quot;$CONFIG&quot; ; then
++ echo &quot;$0: Cannot read configuration file '$CONFIG'&quot; &gt;&amp; 2
++ exit 1
++fi
++
++. $CONFIG
++
++PPPOE_PIDFILE=&quot;$PIDFILE.pppoe&quot;
++PPPD_PIDFILE=&quot;$PIDFILE.pppd&quot;
++
++# Check for command-line overriding of ETH and USER
++case &quot;$#&quot; in
++ 2|3)
++ ETH=&quot;$1&quot;
++ USER=&quot;$2&quot;
++ ;;
++esac
++
++# Check that config file is sane
++if test &quot;$USER&quot; = &quot;&quot; ; then
++ echo &quot;$0: Check '$CONFIG' -- no setting for USER&quot; &gt;&amp; 2
++ exit 1
++fi
++if test &quot;$ETH&quot; = &quot;&quot; ; then
++ echo &quot;$0: Check '$CONFIG' -- no setting for ETH&quot; &gt;&amp; 2
++ exit 1
++fi
++
++PPPD_PID=0
++
++# Catch common error
++if test &quot;$DEBUG&quot; = &quot;1&quot; ; then
++ echo &quot;*** If you want to use DEBUG, invoke adsl-start, not adsl-connect.&quot;
++ exit 1
++fi
++
++if test &quot;$DEBUG&quot; != &quot;&quot; ; then
++ if test &quot;$LINUX_PLUGIN&quot; != &quot;&quot; ; then
++ echo &quot;Cannot use DEBUG mode and LINUX_PLUGIN at the same time.&quot;
++ echo &quot;Kernel-mode PPPoE is experimental and unsupported.&quot;
++ exit 1
++ fi
++ echo &quot;* The following section identifies your Ethernet interface&quot; &gt;&gt; $DEBUG
++ echo &quot;* and user name. Some ISP's need 'username'; others&quot; &gt;&gt; $DEBUG
++ echo &quot;* need 'username@isp.com'. Try both&quot; &gt;&gt; $DEBUG
++ echo &quot;ETH=$ETH; USER=$USER&quot; &gt;&gt; $DEBUG
++ echo &quot;---------------------------------------------&quot; &gt;&gt; $DEBUG
++fi
++
++# MTU of Ethernet card attached to modem MUST be 1500. This apparently
++# fails on some *BSD's, so we'll only do it under Linux
++
++if test `uname -s` = Linux ; then
++ $IFCONFIG $ETH up mtu 1500
++ # For 2.4 kernels. Will fail on 2.2.x, but who cares?
++ modprobe ppp_generic &gt; /dev/null 2&gt;&amp;1
++ modprobe ppp_async &gt; /dev/null 2&gt;&amp;1
++ modprobe ppp_synctty &gt; /dev/null 2&gt;&amp;1
++ if test -n &quot;$LINUX_PLUGIN&quot; ; then
++ modprobe pppox &gt; /dev/null 2&gt;&amp;1
++ modprobe pppoe &gt; /dev/null 2&gt;&amp;1
++ fi
++fi
++
++if test &quot;$SYNCHRONOUS&quot; = &quot;yes&quot; ; then
++ PPPOE_SYNC=-s
++ PPPD_SYNC=sync
++ # Increase the chances of it working on Linux...
++ if test `uname -s` = Linux ; then
++ modprobe n_hdlc &gt; /dev/null 2&gt;&amp;1
++ fi
++else
++ PPPOE_SYNC=&quot;&quot;
++ PPPD_SYNC=&quot;&quot;
++fi
++
++if test -n &quot;$ACNAME&quot; ; then
++ ACNAME=&quot;-C $ACNAME&quot;
++fi
++
++if test -n &quot;$SERVICENAME&quot; ; then
++ SERVICENAME=&quot;-S $SERVICENAME&quot;
++fi
++
++if test &quot;$CLAMPMSS&quot; = &quot;no&quot; ; then
++ CLAMPMSS=&quot;&quot;
++else
++ CLAMPMSS=&quot;-m $CLAMPMSS&quot;
++fi
++
++# If DNSTYPE is SERVER, we must use &quot;usepeerdns&quot; option to pppd.
++if test &quot;$DNSTYPE&quot; = &quot;SERVER&quot; ; then
++ USEPEERDNS=yes
++fi
++
++if test &quot;$USEPEERDNS&quot; = &quot;yes&quot; ; then
++ USEPEERDNS=&quot;usepeerdns&quot;
++else
++ USEPEERDNS=&quot;&quot;
++fi
++
++# Backward config file compatibility
++if test &quot;$DEMAND&quot; = &quot;&quot; ; then
++ DEMAND=no
++fi
++
++if test &quot;$DEMAND&quot; = &quot;no&quot; ; then
++ DEMAND=&quot;&quot;
++else
++ DEMAND=&quot;demand persist idle $DEMAND 10.112.112.112:10.112.112.113 ipcp-accept-remote ipcp-accept-local connect true noipdefault ktune&quot;
++fi
++
++case &quot;$FIREWALL&quot; in
++ STANDALONE)
++ . /etc/ppp/firewall-standalone
++ ;;
++ MASQUERADE)
++ . /etc/ppp/firewall-masq
++ ;;
++esac
++
++# If we're using kernel-mode PPPoE on Linux...
++if test &quot;$LINUX_PLUGIN&quot; != &quot;&quot; ; then
++ PLUGIN_OPTS=&quot;plugin $LINUX_PLUGIN $ETH&quot;
++ modprobe pppoe &gt; /dev/null 2&gt;&amp;1
++fi
++
++# Standard PPP options we always use
++PPP_STD_OPTIONS=&quot;$PLUGIN_OPTS noipdefault noauth default-asyncmap defaultroute hide-password nodetach $USEPEERDNS local mtu 1492 mru 1492 noaccomp noccp nobsdcomp nodeflate nopcomp novj novjccomp user $USER lcp-echo-interval $LCP_INTERVAL lcp-echo-failure $LCP_FAILURE $PPPD_EXTRA&quot;
++
++# Jigger DNS if required...
++if test &quot;$DNSTYPE&quot; = &quot;SERVER&quot; ; then
++ # Sorry, dude...
++ rm -f /etc/resolv.conf
++ ln -s /etc/ppp/resolv.conf /etc/resolv.conf
++elif test &quot;$DNSTYPE&quot; = &quot;SPECIFY&quot; ; then
++ # Sorry, dude...
++ rm -f /etc/resolv.conf
++ echo &quot;nameserver $DNS1&quot; &gt; /etc/resolv.conf
++ if test -n &quot;$DNS2&quot; ; then
++ echo &quot;nameserver $DNS2&quot; &gt;&gt; /etc/resolv.conf
++ fi
++fi
++
++# PPPoE invocation
++PPPOE_CMD=&quot;$PPPOE -p $PPPOE_PIDFILE -I $ETH -T $PPPOE_TIMEOUT -U $PPPOE_SYNC $CLAMPMSS $ACNAME $SERVICENAME $PPPOE_EXTRA&quot;
++if test &quot;$DEBUG&quot; != &quot;&quot; ; then
++ if test &quot;$DEMAND&quot; != &quot;&quot; ; then
++ echo &quot;(Turning off DEMAND for debugging purposes)&quot;
++ DEMAND=&quot;&quot;
++ fi
++ echo &quot;* The following section shows the pppd command we will invoke&quot; &gt;&gt; $DEBUG
++ echo &quot;pppd invocation&quot; &gt;&gt; $DEBUG
++ echo &quot;$SETSID $PPPD pty '$PPPOE_CMD' $PPP_STD_OPTIONS $PPPD_SYNC debug&quot; &gt;&gt; $DEBUG
++ echo &quot;---------------------------------------------&quot; &gt;&gt; $DEBUG
++ $SETSID $PPPD pty &quot;$PPPOE_CMD -D $DEBUG-0&quot; \
++ $PPP_STD_OPTIONS \
++ $PPPD_SYNC \
++ debug &gt;&gt; $DEBUG 2&gt;&amp;1
++ echo &quot;---------------------------------------------&quot; &gt;&gt; $DEBUG
++ echo &quot;* The following section is an extract from your log.&quot; &gt;&gt; $DEBUG
++ echo &quot;* Look for error messages from pppd, such as&quot; &gt;&gt; $DEBUG
++ echo &quot;* a lack of kernel support for PPP, authentication failure&quot; &gt;&gt; $DEBUG
++ echo &quot;* etc.&quot; &gt;&gt; $DEBUG
++ echo &quot;Extract from /var/log/messages&quot; &gt;&gt; $DEBUG
++ grep 'ppp' /var/log/messages | tail -150 &gt;&gt; $DEBUG
++ date &gt;&gt; $DEBUG
++ echo &quot;---------------------------------------------&quot; &gt;&gt; $DEBUG
++ echo &quot;* The following section is a dump of the packets&quot; &gt;&gt; $DEBUG
++ echo &quot;* sent and received by rp-pppoe. If you don't see&quot; &gt;&gt; $DEBUG
++ echo &quot;* any output, it's an Ethernet driver problem. If you only&quot; &gt;&gt; $DEBUG
++ echo &quot;* see three PADI packets and nothing else, check your cables&quot; &gt;&gt; $DEBUG
++ echo &quot;* and modem. Make sure the modem lights flash when you try&quot; &gt;&gt; $DEBUG
++ echo &quot;* to connect. Check that your Ethernet card is in&quot; &gt;&gt; $DEBUG
++ echo &quot;* half-duplex, 10Mb/s mode. If all else fails,&quot; &gt;&gt; $DEBUG
++ echo &quot;* try using pppoe-sniff.&quot; &gt;&gt; $DEBUG
++ echo &quot;rp-pppoe debugging dump&quot; &gt;&gt; $DEBUG
++ cat $DEBUG-0 &gt;&gt; $DEBUG
++ rm -f $DEBUG-0
++ for i in 1 2 3 4 5 6 7 8 9 10 ; do
++ echo &quot;&quot;
++ echo &quot;&quot;
++ echo &quot;&quot;
++ done
++ echo &quot;*** Finished debugging run. Please review the file&quot;
++ echo &quot;*** '$DEBUG' and try to&quot;
++ echo &quot;*** figure out what is going on.&quot;
++ echo &quot;***&quot;
++ echo &quot;*** Unfortunately, we can NO LONGER accept debugging&quot;
++ echo &quot;*** output for analysis. Please do not send this to&quot;
++ echo &quot;*** Roaring Penguin; it is too time-consuming for&quot;
++ echo &quot;*** us to deal with all the analyses we have been sent.&quot;
++ exit 0
++fi
++
++echo $$ &gt; $PIDFILE
++
++while [ true ] ; do
++ if test &quot;$LINUX_PLUGIN&quot; != &quot;&quot; ; then
++ $SETSID $PPPD $PPP_STD_OPTIONS $DEMAND &amp;
++ echo &quot;$!&quot; &gt; $PPPD_PIDFILE
++ else
++ $SETSID $PPPD pty &quot;$PPPOE_CMD&quot; \
++ $PPP_STD_OPTIONS \
++ $DEMAND \
++ $PPPD_SYNC &amp;
++ echo &quot;$!&quot; &gt; $PPPD_PIDFILE
++ fi
++ wait
++
++ # Run /etc/ppp/adsl-lost if it exists
++ test -x /etc/ppp/adsl-lost &amp;&amp; /etc/ppp/adsl-lost
++
++ # Re-establish the connection
++ $LOGGER -p daemon.notice \
++ &quot;ADSL connection lost; attempting re-connection.&quot;
++
++ # Wait a bit in case a problem causes tons of log messages :-)
++ sleep 5
++done
+
+
+Property changes on: drakx/trunk/mdk-stage1/rp-pppoe/scripts/adsl-connect.in
+___________________________________________________________________
+Added: svn:executable
+ + *
+
+<a id="drakxtrunkmdkstage1rppppoescriptsadslinitsusein">Added: drakx/trunk/mdk-stage1/rp-pppoe/scripts/adsl-init-suse.in</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/scripts/adsl-init-suse.in (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/scripts/adsl-init-suse.in 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,62 @@
++#!/bin/sh
++#
++# adsl This script starts or stops an ADSL connection
++#
++# chkconfig: 2345 99 01
++# description: Connects to ADSL provider
++#
++# Copyright (C) 2000 Roaring Penguin Software Inc. This software may
++# be distributed under the terms of the GNU General Public License, version
++# 2 or any later version.
++# Modifed to work with SuSE 6.4 linux by Gary Cameron.
++#
++# Source function library.
++#. /etc/rc.d/init.d/functions # For red hat?
++. /etc/rc.config # For SuSE, enables setting from /etc/rc.config
++
++#Tweak this
++restart_time=120
++
++# From AUTOCONF
++prefix=@prefix@
++exec_prefix=@exec_prefix@
++
++# Paths to programs
++START=@sbindir@/adsl-start
++STOP=@sbindir@/adsl-stop
++STATUS=@sbindir@/adsl-status
++
++test &quot;$ADSL_START&quot; = &quot;yes&quot; || exit 0
++
++# The echo return value for success (defined in /etc/rc.config).
++return=$rc_done
++case &quot;$1&quot; in
++ start)
++ echo -n &quot;Bringing up ADSL link&quot;
++ $START &gt; /dev/null 2&gt;&amp;1 || return=$rc_failed
++ echo -e &quot;$return&quot;
++ ;;
++
++ stop)
++ echo -n &quot;Shutting down ADSL link&quot;
++ $STOP &gt; /dev/null 2&gt;&amp;1 || return=$rc_failed
++ echo -e &quot;$return&quot;
++ ;;
++
++ restart)
++ $0 stop
++ echo &quot;Waiting&quot; $restart_time &quot;seconds for the host to reset itself&quot;
++ sleep $restart_time #Note: Need time for host to reset itself
++ $0 start
++ ;;
++
++ status)
++ $STATUS
++ ;;
++
++ *)
++ echo &quot;Usage: adsl {start|stop|restart|status}&quot;
++ exit 1
++esac
++
++exit 0
+
+
+Property changes on: drakx/trunk/mdk-stage1/rp-pppoe/scripts/adsl-init-suse.in
+___________________________________________________________________
+Added: svn:executable
+ + *
+
+<a id="drakxtrunkmdkstage1rppppoescriptsadslinitturbolinuxin">Added: drakx/trunk/mdk-stage1/rp-pppoe/scripts/adsl-init-turbolinux.in</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/scripts/adsl-init-turbolinux.in (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/scripts/adsl-init-turbolinux.in 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,62 @@
++#!/bin/sh
++#
++# adsl This script starts or stops an ADSL connection
++#
++# chkconfig: 2345 99 01
++# description: Connects to ADSL provider
++#
++# Copyright (C) 2000 Roaring Penguin Software Inc. This software may
++# be distributed under the terms of the GNU General Public License, version
++# 2 or any later version.
++
++# Source function library if it exists
++test -r /etc/rc.d/init.d/functions &amp;&amp; . /etc/rc.d/init.d/functions
++
++# From AUTOCONF
++prefix=@prefix@
++exec_prefix=@exec_prefix@
++
++# Paths to programs
++START=@sbindir@/adsl-start
++STOP=@sbindir@/adsl-stop
++STATUS=@sbindir@/adsl-status
++case &quot;$1&quot; in
++ start)
++ echo -n &quot;Bringing up ADSL link: &quot;
++
++ $START
++ if [ $? = 0 ] ; then
++ echo success
++ touch /var/lock/subsys/adsl
++ else
++ echo failure
++ fi
++ ;;
++
++ stop)
++ echo -n &quot;Shutting down ADSL link: &quot;
++
++ $STOP &gt; /dev/null 2&gt;&amp;1
++ if [ $? = 0 ] ; then
++ echo success
++ rm -f /var/lock/subsys/adsl
++ else
++ echo failure
++ fi
++ ;;
++
++ restart)
++ $0 stop
++ $0 start
++ ;;
++
++ status)
++ $STATUS
++ ;;
++
++ *)
++ echo &quot;Usage: adsl {start|stop|restart|status}&quot;
++ exit 1
++esac
++
++exit 0
+
+
+Property changes on: drakx/trunk/mdk-stage1/rp-pppoe/scripts/adsl-init-turbolinux.in
+___________________________________________________________________
+Added: svn:executable
+ + *
+
+<a id="drakxtrunkmdkstage1rppppoescriptsadslinitin">Added: drakx/trunk/mdk-stage1/rp-pppoe/scripts/adsl-init.in</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/scripts/adsl-init.in (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/scripts/adsl-init.in 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,64 @@
++#!/bin/sh
++#
++# adsl This script starts or stops an ADSL connection
++#
++# chkconfig: 2345 99 01
++# description: Connects to ADSL provider
++#
++# Copyright (C) 2000 Roaring Penguin Software Inc. This software may
++# be distributed under the terms of the GNU General Public License, version
++# 2 or any later version.
++
++# Source function library if it exists
++test -r /etc/rc.d/init.d/functions &amp;&amp; . /etc/rc.d/init.d/functions
++
++# From AUTOCONF
++prefix=@prefix@
++exec_prefix=@exec_prefix@
++
++# Paths to programs
++START=@sbindir@/adsl-start
++STOP=@sbindir@/adsl-stop
++STATUS=@sbindir@/adsl-status
++case &quot;$1&quot; in
++ start)
++ echo -n &quot;Bringing up ADSL link&quot;
++
++ $START
++ if [ $? = 0 ] ; then
++ touch /var/lock/subsys/adsl
++ echo_success
++ else
++ echo_failure
++ fi
++ echo &quot;&quot;
++ ;;
++
++ stop)
++ echo -n &quot;Shutting down ADSL link&quot;
++
++ $STOP &gt; /dev/null 2&gt;&amp;1
++ if [ $? = 0 ] ; then
++ rm -f /var/lock/subsys/adsl
++ echo_success
++ else
++ echo_failure
++ fi
++ echo &quot;&quot;
++ ;;
++
++ restart)
++ $0 stop
++ $0 start
++ ;;
++
++ status)
++ $STATUS
++ ;;
++
++ *)
++ echo &quot;Usage: adsl {start|stop|restart|status}&quot;
++ exit 1
++esac
++
++exit 0
+
+
+Property changes on: drakx/trunk/mdk-stage1/rp-pppoe/scripts/adsl-init.in
+___________________________________________________________________
+Added: svn:executable
+ + *
+
+<a id="drakxtrunkmdkstage1rppppoescriptsadslsetupin">Added: drakx/trunk/mdk-stage1/rp-pppoe/scripts/adsl-setup.in</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/scripts/adsl-setup.in (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/scripts/adsl-setup.in 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,346 @@
++#!/bin/sh
++#***********************************************************************
++#
++# adsl-setup
++#
++# All-purpose slicing/dicing shell script to configure rp-pppoe.
++#
++# Copyright (C) 2000 Roaring Penguin Software Inc.
++#
++# $Id: adsl-setup.in 195724 2001-06-11 13:49:39Z gc $
++#***********************************************************************
++
++# From AUTOCONF
++prefix=@prefix@
++exec_prefix=@exec_prefix@
++
++# Paths to programs
++IFCONFIG=/sbin/ifconfig
++PPPD=@PPPD@
++PPPOE=@sbindir@/pppoe
++ECHO=@ECHO@
++LOGGER=&quot;/usr/bin/logger -t `basename $0`&quot;
++
++CONFIG=/etc/ppp/pppoe.conf
++
++# Protect created files
++umask 077
++
++copy() {
++ cp $1 $2
++ if [ &quot;$?&quot; != 0 ] ; then
++ $ECHO &quot;*** Error copying $1 to $2&quot;
++ $ECHO &quot;*** Quitting.&quot;
++ exit 1
++ fi
++}
++
++$ECHO &quot;Welcome to the Roaring Penguin ADSL client setup. First, I will run&quot;
++$ECHO &quot;some checks on your system to make sure the PPPoE client is installed&quot;
++$ECHO &quot;properly...&quot;
++$ECHO &quot;&quot;
++
++# Must be root
++if [ &quot;`@ID@ -u`&quot; != 0 ] ; then
++ $ECHO &quot;$0: Sorry, you must be root to run this script&quot;
++ exit 1
++fi
++
++# Prototype config file must exist
++if [ ! -r &quot;$CONFIG&quot; ] ; then
++ $ECHO &quot;Oh, dear, I don't see the file '$CONFIG' anywhere. Please&quot;
++ $ECHO &quot;re-install the PPPoE client.&quot;
++ exit 1
++fi
++
++# Must have pppd
++if [ ! -x $PPPD ] ; then
++ $ECHO &quot;Oops, I can't execute the program '$PPPD'. You&quot;
++ $ECHO &quot;must install the PPP software suite, version 2.3.10 or later.&quot;
++ exit 1
++fi
++
++. $CONFIG
++
++if [ &quot;$DEMAND&quot; = &quot;&quot; ] ; then
++ DEMAND=no
++fi
++
++# pppoe must exist
++if [ ! -x &quot;$PPPOE&quot; ] ; then
++ $ECHO &quot;Oh, dear, I can't execute the program '$PPPOE'. Please&quot;
++ $ECHO &quot;re-install the rp-pppoe client.&quot;
++ exit 1
++fi
++
++$ECHO &quot;Looks good! Now, please enter some information:&quot;
++
++while [ true ] ; do
++ $ECHO &quot;&quot;
++ $ECHO &quot;USER NAME&quot;
++ $ECHO &quot;&quot;
++ $ECHO -n &quot;&gt;&gt;&gt; Enter your PPPoE user name (default $USER): &quot;
++ read U
++
++ if [ &quot;$U&quot; = &quot;&quot; ] ; then
++ U=&quot;$USER&quot;
++ fi
++
++ # Under Linux, &quot;fix&quot; the default interface if eth1 is not available
++ if test `uname -s` = &quot;Linux&quot; ; then
++ $IFCONFIG $ETH &gt; /dev/null 2&gt;&amp;1 || ETH=eth0
++ fi
++ $ECHO &quot;&quot;
++ $ECHO &quot;INTERFACE&quot;
++ $ECHO &quot;&quot;
++ $ECHO &quot;&gt;&gt;&gt; Enter the Ethernet interface connected to the ADSL modem&quot;
++ $ECHO &quot;For Solaris, this is likely to be something like /dev/hme0.&quot;
++ $ECHO &quot;For Linux, it will be ethn, where 'n' is a number.&quot;
++ $ECHO -n &quot;(default $ETH): &quot;
++ read E
++
++ if [ &quot;$E&quot; = &quot;&quot; ] ; then
++ E=&quot;$ETH&quot;
++ fi
++
++ $ECHO &quot;&quot;
++ $ECHO &quot;Do you want the link to come up on demand, or stay up continuously?&quot;
++ $ECHO &quot;If you want it to come up on demand, enter the idle time in seconds&quot;
++ $ECHO &quot;after which the link should be dropped. If you want the link to&quot;
++ $ECHO &quot;stay up permanently, enter 'no' (two letters, lower-case.)&quot;
++ $ECHO &quot;NOTE: Demand-activated links do not interact well with dynamic IP&quot;
++ $ECHO &quot;addresses. You may have some problems with demand-activated links.&quot;
++ $ECHO -n &quot;&gt;&gt;&gt; Enter the demand value (default $DEMAND): &quot;
++ read D
++ if [ &quot;$D&quot; = &quot;&quot; ] ; then
++ D=$DEMAND
++ fi
++
++ $ECHO &quot;&quot;
++ $ECHO &quot;DNS&quot;
++ $ECHO &quot;&quot;
++ $ECHO &quot;Please enter the IP address of your ISP's primary DNS server.&quot;
++ $ECHO &quot;If your ISP claims that 'the server will provide DNS addresses',&quot;
++ $ECHO &quot;enter 'server' (all lower-case) here.&quot;
++ $ECHO &quot;If you just press enter, I will assume you know what you are&quot;
++ $ECHO &quot;doing and not modify your DNS setup.&quot;
++ $ECHO -n &quot;&gt;&gt;&gt; Enter the DNS information here: &quot;
++
++ read DNS1
++
++
++ if [ &quot;$DNS1&quot; != &quot;&quot; ] ; then
++ if [ &quot;$DNS1&quot; != &quot;server&quot; ] ; then
++ $ECHO &quot;Please enter the IP address of your ISP's secondary DNS server.&quot;
++ $ECHO &quot;If you just press enter, I will assume there is only one DNS server.&quot;
++ $ECHO -n &quot;&gt;&gt;&gt; Enter the secondary DNS server address here: &quot;
++ read DNS2
++ fi
++ fi
++
++ while [ true ] ; do
++ $ECHO &quot;&quot;
++ $ECHO &quot;PASSWORD&quot;
++ $ECHO &quot;&quot;
++ stty -echo
++ $ECHO -n &quot;&gt;&gt;&gt; Please enter your PPPoE password: &quot;
++ read PWD1
++ $ECHO &quot;&quot;
++ $ECHO -n &quot;&gt;&gt;&gt; Please re-enter your PPPoE password: &quot;
++ read PWD2
++ $ECHO &quot;&quot;
++ stty echo
++ if [ &quot;$PWD1&quot; = &quot;$PWD2&quot; ] ; then
++ break
++ fi
++
++ $ECHO -n &quot;&gt;&gt;&gt; Sorry, the passwords do not match. Try again? (y/n)&quot;
++ read ANS
++ case &quot;$ANS&quot; in
++ N|No|NO|Non|n|no|non)
++ $ECHO &quot;OK, quitting. Bye.&quot;
++ exit 1
++ esac
++ done
++
++ # Firewalling
++ $ECHO &quot;&quot;
++ $ECHO &quot;FIREWALLING&quot;
++ $ECHO &quot;&quot;
++ if test `uname -s` != &quot;Linux&quot; ; then
++ $ECHO &quot;Sorry, firewalling is only supported under Linux. Consult&quot;
++ $ECHO &quot;your operating system manuals for details on setting up&quot;
++ $ECHO &quot;packet filters for your system.&quot;
++ FIREWALL=NONE
++ else
++ $ECHO &quot;Please choose the firewall rules to use. Note that these rules are&quot;
++ $ECHO &quot;very basic. You are strongly encouraged to use a more sophisticated&quot;
++ $ECHO &quot;firewall setup; however, these will provide basic security. If you&quot;
++ $ECHO &quot;are running any servers on your machine, you must choose 'NONE' and&quot;
++ $ECHO &quot;set up firewalling yourself. Otherwise, the firewall rules will deny&quot;
++ $ECHO &quot;access to all standard servers like Web, e-mail, ftp, etc. If you&quot;
++ $ECHO &quot;are using SSH, the rules will block outgoing SSH connections which&quot;
++ $ECHO &quot;allocate a privileged source port.&quot;
++ $ECHO &quot;&quot;
++ while [ true ] ; do
++ $ECHO &quot;The firewall choices are:&quot;
++ $ECHO &quot;0 - NONE: This script will not set any firewall rules. You are responsible&quot;
++ $ECHO &quot; for ensuring the security of your machine. You are STRONGLY&quot;
++ $ECHO &quot; recommended to use some kind of firewall rules.&quot;
++ $ECHO &quot;1 - STANDALONE: Appropriate for a basic stand-alone web-surfing workstation&quot;
++ $ECHO &quot;2 - MASQUERADE: Appropriate for a machine acting as an Internet gateway&quot;
++ $ECHO &quot; for a LAN&quot;
++ $ECHO -n &quot;&gt;&gt;&gt; Choose a type of firewall (0-2): &quot;
++ read a
++ if [ &quot;$a&quot; = 0 -o &quot;$a&quot; = 1 -o &quot;$a&quot; = 2 ] ; then
++ break
++ fi
++ $ECHO &quot;Please enter a number from 0 to 2&quot;
++ done
++
++ case &quot;$a&quot; in
++ 0)
++ FIREWALL=NONE
++ ;;
++ 1)
++ FIREWALL=STANDALONE
++ ;;
++ 2)
++ FIREWALL=MASQUERADE
++ ;;
++ esac
++ fi
++
++ $ECHO &quot;&quot;
++ $ECHO &quot;** Summary of what you entered **&quot;
++ $ECHO &quot;&quot;
++ $ECHO &quot;Ethernet Interface: $E&quot;
++ $ECHO &quot;User name: $U&quot;
++ if [ &quot;$D&quot; = &quot;no&quot; ] ; then
++ $ECHO &quot;Activate-on-demand: No&quot;
++ else
++ $ECHO &quot;Activate-on-demand: Yes; idle timeout = $D seconds&quot;
++ fi
++
++ if [ &quot;$DNS1&quot; != &quot;&quot; ] ; then
++ if [ &quot;$DNS1&quot; = &quot;server&quot; ] ; then
++ $ECHO &quot;DNS addresses: Supplied by ISP's server&quot;
++ else
++ $ECHO &quot;Primary DNS: $DNS1&quot;
++ if [ &quot;$DNS2&quot; != &quot;&quot; ] ; then
++ $ECHO &quot;Secondary DNS: $DNS2&quot;
++ fi
++ fi
++ else
++ $ECHO &quot;DNS: Do not adjust&quot;
++ fi
++ $ECHO &quot;Firewalling: $FIREWALL&quot;
++ $ECHO &quot;&quot;
++ while [ true ] ; do
++ $ECHO -n '&gt;&gt;&gt; Accept these settings and adjust configuration files (y/n)? '
++ read ANS
++ case &quot;ANS&quot; in
++ Y|y|yes|Yes|oui|Oui)
++ ANS=y
++ ;;
++ N|n|no|No|non|Non)
++ ANS=n
++ ;;
++ esac
++ if [ &quot;$ANS&quot; = &quot;y&quot; -o &quot;$ANS&quot; = &quot;n&quot; ] ; then
++ break
++ fi
++ done
++ if [ &quot;$ANS&quot; = &quot;y&quot; ] ; then
++ break
++ fi
++done
++
++# Adjust configuration files. First to $CONFIG
++
++$ECHO &quot;Adjusting $CONFIG&quot;
++
++copy $CONFIG $CONFIG-bak
++if [ &quot;$DNS1&quot; = &quot;server&quot; ] ; then
++ DNSTYPE=SERVER
++ DNS1=&quot;&quot;
++ USEPEERDNS=yes
++else
++ USEPEERDNS=no
++ if [ &quot;$DNS1&quot; = &quot;&quot; ] ; then
++ DNSTYPE=NOCHANGE
++ else
++ DNSTYPE=SPECIFY
++ fi
++fi
++
++# Where is pppd likely to put its pid?
++if [ -d /var/run ] ; then
++ VARRUN=/var/run
++else
++ VARRUN=/etc/ppp
++fi
++
++# Some #$(*&amp; ISP's use a slash in the user name...
++sed -e &quot;s&amp;^USER=.*&amp;USER='$U'&amp;&quot; \
++ -e &quot;s&amp;^ETH=.*&amp;ETH='$E'&amp;&quot; \
++ -e &quot;s&amp;^PIDFILE=.*&amp;PIDFILE=\&quot;$VARRUN/\$CF_BASE-adsl.pid\&quot;&amp;&quot; \
++ -e &quot;s/^FIREWALL=.*/FIREWALL=$FIREWALL/&quot; \
++ -e &quot;s/^DEMAND=.*/DEMAND=$D/&quot; \
++ -e &quot;s/^DNSTYPE=.*/DNSTYPE=$DNSTYPE/&quot; \
++ -e &quot;s/^DNS1=.*/DNS1=$DNS1/&quot; \
++ -e &quot;s/^DNS2=.*/DNS2=$DNS2/&quot; \
++ -e &quot;s/^USEPEERDNS=.*/USEPEERDNS=$USEPEERDNS/&quot; \
++ &lt; $CONFIG-bak &gt; $CONFIG
++
++if [ $? != 0 ] ; then
++ $ECHO &quot;** Error modifying $CONFIG&quot;
++ $ECHO &quot;** Quitting&quot;
++ exit 1
++fi
++
++if [ &quot;$DNS1&quot; != &quot;&quot; ] ; then
++ if [ &quot;$DNS1&quot; != &quot;server&quot; ] ; then
++ $ECHO &quot;Adjusting /etc/resolv.conf&quot;
++ if [ -r /etc/resolv.conf ] ; then
++ grep -s &quot;MADE-BY-RP-PPPOE&quot; /etc/resolv.conf &gt; /dev/null 2&gt;&amp;1
++ if [ &quot;$?&quot; != 0 ] ; then
++ $ECHO &quot; (But first backing it up to /etc/resolv.conf-bak)&quot;
++ copy /etc/resolv.conf /etc/resolv.conf-bak
++ fi
++ fi
++ $ECHO &quot;# MADE-BY-RP-PPPOE&quot; &gt; /etc/resolv.conf
++ $ECHO &quot;nameserver $DNS1&quot; &gt;&gt; /etc/resolv.conf
++ if [ &quot;$DNS2&quot; != &quot;&quot; ] ; then
++ $ECHO &quot;nameserver $DNS2&quot; &gt;&gt; /etc/resolv.conf
++ fi
++ fi
++fi
++
++$ECHO &quot;Adjusting /etc/ppp/pap-secrets and /etc/ppp/chap-secrets&quot;
++if [ -r /etc/ppp/pap-secrets ] ; then
++ $ECHO &quot; (But first backing it up to /etc/ppp/pap-secrets-bak)&quot;
++ copy /etc/ppp/pap-secrets /etc/ppp/pap-secrets-bak
++else
++ cp /dev/null /etc/ppp/pap-secrets-bak
++fi
++if [ -r /etc/ppp/chap-secrets ] ; then
++ $ECHO &quot; (But first backing it up to /etc/ppp/chap-secrets-bak)&quot;
++ copy /etc/ppp/chap-secrets /etc/ppp/chap-secrets-bak
++else
++ cp /dev/null /etc/ppp/chap-secrets-bak
++fi
++
++egrep -v &quot;^$U|^\&quot;$U\&quot;&quot; /etc/ppp/pap-secrets-bak &gt; /etc/ppp/pap-secrets
++$ECHO &quot;\&quot;$U\&quot; * \&quot;$PWD1\&quot;&quot; &gt;&gt; /etc/ppp/pap-secrets
++egrep -v &quot;^$U|^\&quot;$U\&quot;&quot; /etc/ppp/chap-secrets-bak &gt; /etc/ppp/chap-secrets
++$ECHO &quot;\&quot;$U\&quot; * \&quot;$PWD1\&quot;&quot; &gt;&gt; /etc/ppp/chap-secrets
++
++$ECHO &quot;&quot;
++$ECHO &quot;&quot;
++$ECHO &quot;&quot;
++$ECHO &quot;Congratulations, it should be all set up!&quot;
++$ECHO &quot;&quot;
++$ECHO &quot;Type 'adsl-start' to bring up your ADSL link and 'adsl-stop' to bring&quot;
++$ECHO &quot;it down. Type 'adsl-status' to see the link status.&quot;
++exit 0
+
+
+Property changes on: drakx/trunk/mdk-stage1/rp-pppoe/scripts/adsl-setup.in
+___________________________________________________________________
+Added: svn:executable
+ + *
+
+<a id="drakxtrunkmdkstage1rppppoescriptsadslstartin">Added: drakx/trunk/mdk-stage1/rp-pppoe/scripts/adsl-start.in</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/scripts/adsl-start.in (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/scripts/adsl-start.in 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,186 @@
++#!/bin/sh
++# @configure_input@
++#***********************************************************************
++#
++# adsl-start
++#
++# Shell script to bring up an ADSL connection
++#
++# Copyright (C) 2000 Roaring Penguin Software Inc.
++#
++# $Id: adsl-start.in 195724 2001-06-11 13:49:39Z gc $
++#
++# This file may be distributed under the terms of the GNU General
++# Public License.
++#
++# Usage: adsl-start [config_file]
++# adsl-start interface user [config_file]
++# Second form overrides USER and ETH from config file.
++# If config_file is omitted, defaults to /etc/ppp/pppoe.conf
++#
++#***********************************************************************
++
++# From AUTOCONF
++prefix=@prefix@
++exec_prefix=@exec_prefix@
++
++# Paths to programs
++CONNECT=@sbindir@/adsl-connect
++ECHO=@ECHO@
++IFCONFIG=/sbin/ifconfig
++
++# Defaults
++CONFIG=/etc/ppp/pppoe.conf
++USER=&quot;&quot;
++ETH=&quot;&quot;
++ME=`basename $0`
++# Must be root
++if [ &quot;`@ID@ -u`&quot; != 0 ] ; then
++ $ECHO &quot;$ME: You must be root to run this script&quot; &gt;&amp; 2
++ exit 1
++fi
++
++# Debugging
++if [ &quot;$DEBUG&quot; = &quot;1&quot; ] ; then
++ $ECHO &quot;*** Running in debug mode... please be patient...&quot;
++ DEBUG=/tmp/pppoe-debug-$$
++ export DEBUG
++ mkdir $DEBUG
++ if [ &quot;$?&quot; != 0 ] ; then
++ $ECHO &quot;Could not create directory $DEBUG... exiting&quot;
++ exit 1
++ fi
++ DEBUG=$DEBUG/pppoe-debug.txt
++
++ # Initial debug output
++ $ECHO &quot;---------------------------------------------&quot; &gt; $DEBUG
++ $ECHO &quot;* The following section contains information about your system&quot; &gt;&gt; $DEBUG
++ date &gt;&gt; $DEBUG
++ $ECHO &quot;Output of uname -a&quot; &gt;&gt; $DEBUG
++ uname -a &gt;&gt; $DEBUG
++ $ECHO &quot;---------------------------------------------&quot; &gt;&gt; $DEBUG
++ $ECHO &quot;* The following section contains information about your network&quot; &gt;&gt; $DEBUG
++ $ECHO &quot;* interfaces. The one you chose for PPPoE should contain the words:&quot; &gt;&gt; $DEBUG
++ $ECHO &quot;* 'UP' and 'RUNNING'. If it does not, you probably have an Ethernet&quot; &gt;&gt; $DEBUG
++ $ECHO &quot;* driver problem.&quot; &gt;&gt; $DEBUG
++ $ECHO &quot;Output of ifconfig -a&quot; &gt;&gt; $DEBUG
++ $IFCONFIG -a &gt;&gt; $DEBUG
++ $ECHO &quot;---------------------------------------------&quot; &gt;&gt; $DEBUG
++ if [ &quot;`uname -s`&quot; = &quot;Linux&quot; ] ; then
++ $ECHO &quot;* The following section contains information about kernel modules&quot; &gt;&gt; $DEBUG
++ $ECHO &quot;* If the module for your Ethernet card is 'tulip', you might&quot; &gt;&gt; $DEBUG
++ $ECHO &quot;* want to look for an updated version at http://www.scyld.com&quot; &gt;&gt; $DEBUG
++ $ECHO &quot;Output of lsmod&quot; &gt;&gt; $DEBUG
++ lsmod &gt;&gt; $DEBUG
++ $ECHO &quot;---------------------------------------------&quot; &gt;&gt; $DEBUG
++ fi
++ $ECHO &quot;* The following section lists your routing table.&quot; &gt;&gt; $DEBUG
++ $ECHO &quot;* If you have an entry which starts with '0.0.0.0', you probably&quot; &gt;&gt; $DEBUG
++ $ECHO &quot;* have defined a default route and gateway, and pppd will&quot; &gt;&gt; $DEBUG
++ $ECHO &quot;* not create a default route using your ISP. Try getting&quot; &gt;&gt; $DEBUG
++ $ECHO &quot;* rid of this route.&quot; &gt;&gt; $DEBUG
++ $ECHO &quot;Output of netstat -n -r&quot; &gt;&gt; $DEBUG
++ netstat -n -r &gt;&gt; $DEBUG
++ $ECHO &quot;---------------------------------------------&quot; &gt;&gt; $DEBUG
++ $ECHO &quot;Contents of /etc/resolv.conf&quot; &gt;&gt; $DEBUG
++ $ECHO &quot;* The following section lists DNS setup.&quot; &gt;&gt; $DEBUG
++ $ECHO &quot;* If you can browse by IP address, but not name, suspect&quot; &gt;&gt; $DEBUG
++ $ECHO &quot;* a DNS problem.&quot; &gt;&gt; $DEBUG
++ cat /etc/resolv.conf &gt;&gt; $DEBUG
++ $ECHO &quot;---------------------------------------------&quot; &gt;&gt; $DEBUG
++ $ECHO &quot;* The following section lists /etc/ppp/options.&quot; &gt;&gt; $DEBUG
++ $ECHO &quot;* You should have NOTHING in that file.&quot; &gt;&gt; $DEBUG
++ $ECHO &quot;Contents of /etc/ppp/options&quot; &gt;&gt; $DEBUG
++ cat /etc/ppp/options &gt;&gt; $DEBUG 2&gt;/dev/null
++ $ECHO &quot;---------------------------------------------&quot; &gt;&gt; $DEBUG
++else
++ DEBUG=&quot;&quot;
++fi
++
++# Sort out command-line arguments
++case &quot;$#&quot; in
++ 1)
++ CONFIG=&quot;$1&quot;
++ ;;
++ 3)
++ CONFIG=&quot;$3&quot;
++ ;;
++esac
++
++if [ ! -f &quot;$CONFIG&quot; -o ! -r &quot;$CONFIG&quot; ] ; then
++ $ECHO &quot;$ME: Cannot read configuration file '$CONFIG'&quot; &gt;&amp; 2
++ exit 1
++fi
++
++. $CONFIG
++
++# Check for command-line overriding of ETH and USER
++case &quot;$#&quot; in
++ 2|3)
++ ETH=&quot;$1&quot;
++ USER=&quot;$2&quot;
++ ;;
++esac
++
++# Check for pidfile
++if [ -r &quot;$PIDFILE&quot; ] ; then
++ PID=`cat &quot;$PIDFILE&quot;`
++ # Check if still running
++ kill -0 $PID &gt; /dev/null 2&gt;&amp;1
++ if [ $? = 0 ] ; then
++ $ECHO &quot;$ME: There already seems to be an ADSL connection up (PID $PID)&quot; &gt;&amp; 2
++ exit 1
++ fi
++ # Delete bogus PIDFILE
++ rm -f &quot;$PIDFILE&quot; &quot;$PIDFILE.pppd&quot; &quot;$PIDFILE.pppoe&quot; &quot;$PIDFILE.start&quot;
++fi
++
++echo $$ &gt; $PIDFILE.start
++
++# Start the connection in the background unless we're debugging
++if [ &quot;$DEBUG&quot; != &quot;&quot; ] ; then
++ $CONNECT &quot;$@&quot;
++ exit 0
++fi
++
++$CONNECT &quot;$@&quot; &gt; /dev/null 2&gt;&amp;1 &amp;
++CONNECT_PID=$!
++
++if [ &quot;$CONNECT_TIMEOUT&quot; = &quot;&quot; -o &quot;$CONNECT_TIMEOUT&quot; = 0 ] ; then
++ exit 0
++fi
++
++# Don't monitor connection if dial-on-demand
++if [ &quot;$DEMAND&quot; != &quot;&quot; -a &quot;$DEMAND&quot; != &quot;no&quot; ] ; then
++ exit 0
++fi
++
++# Monitor connection
++TIME=0
++while [ true ] ; do
++ @sbindir@/adsl-status $CONFIG &gt; /dev/null 2&gt;&amp;1
++
++ # Looks like the interface came up
++ if [ $? = 0 ] ; then
++ # Print newline if standard input is a TTY
++ tty -s &amp;&amp; $ECHO &quot; Connected!&quot;
++ exit 0
++ fi
++
++ if test -n &quot;$FORCEPING&quot; ; then
++ $ECHO -n &quot;$FORCEPING&quot;
++ else
++ tty -s &amp;&amp; $ECHO -n &quot;$PING&quot;
++ fi
++ sleep $CONNECT_POLL
++ TIME=`expr $TIME + $CONNECT_POLL`
++ if [ $TIME -gt $CONNECT_TIMEOUT ] ; then
++ break
++ fi
++done
++
++$ECHO &quot;TIMED OUT&quot; &gt;&amp; 2
++# Timed out! Kill the adsl-connect process and quit
++kill $CONNECT_PID &gt; /dev/null 2&gt;&amp;1
++exit 1
++
+
+
+Property changes on: drakx/trunk/mdk-stage1/rp-pppoe/scripts/adsl-start.in
+___________________________________________________________________
+Added: svn:executable
+ + *
+
+<a id="drakxtrunkmdkstage1rppppoescriptsadslstatus">Added: drakx/trunk/mdk-stage1/rp-pppoe/scripts/adsl-status</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/scripts/adsl-status (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/scripts/adsl-status 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,82 @@
++#!/bin/sh
++#***********************************************************************
++#
++# adsl-status
++#
++# Shell script to report on status of ADSL connection
++#
++# Copyright (C) 2000-2001 Roaring Penguin Software Inc.
++#
++# $Id: adsl-status 195724 2001-06-11 13:49:39Z gc $
++#
++# This file may be distributed under the terms of the GNU General
++# Public License.
++#
++# Usage: adsl-status [config_file]
++# If config_file is omitted, defaults to /etc/ppp/pppoe.conf
++#
++#***********************************************************************
++
++# Defaults
++CONFIG=/etc/ppp/pppoe.conf
++
++case &quot;$#&quot; in
++ 1)
++ CONFIG=&quot;$1&quot;
++ ;;
++esac
++
++if [ ! -f &quot;$CONFIG&quot; -o ! -r &quot;$CONFIG&quot; ] ; then
++ echo &quot;$0: Cannot read configuration file '$CONFIG'&quot; &gt;&amp; 2
++ exit 1
++fi
++
++. $CONFIG
++
++PPPOE_PIDFILE=&quot;$PIDFILE.pppoe&quot;
++PPPD_PIDFILE=&quot;$PIDFILE.pppd&quot;
++
++if [ &quot;$DEMAND&quot; != &quot;no&quot; ] ; then
++ echo &quot;Note: You have enabled demand-connection; adsl-status may be inaccurate.&quot;
++fi
++
++# If no PPPOE_PIDFILE, connection is down, unless we're using the Linux plugin
++if [ &quot;$LINUX_PLUGIN&quot; = &quot;&quot; ] ; then
++ if [ ! -r &quot;$PPPOE_PIDFILE&quot; ] ; then
++ echo &quot;adsl-status: Link is down (can't read pppoe PID file $PPPOE_PIDFILE)&quot;
++ exit 1
++ fi
++fi
++
++# If no PPPD_PIDFILE, something fishy!
++if [ ! -r &quot;$PPPD_PIDFILE&quot; ] ; then
++ echo &quot;adsl-status: Link is down (can't read pppd PID file $PPPD_PIDFILE)&quot;
++ exit 1
++fi
++
++PPPD_PID=`cat &quot;$PPPD_PIDFILE&quot;`
++
++# Sigh. Some versions of pppd put PID files in /var/run; others put them
++# in /etc/ppp. Since it's too messy to figure out what pppd does, we
++# try both locations.
++for i in /etc/ppp/ppp*.pid /var/run/ppp*.pid ; do
++ if [ -r $i ] ; then
++ PID=`cat $i`
++ if [ &quot;$PID&quot; = &quot;$PPPD_PID&quot; ] ; then
++ IF=`basename $i .pid`
++ netstat -rn | grep &quot; ${IF}\$&quot; &gt; /dev/null
++ # /sbin/ifconfig $IF | grep &quot;UP.*POINTOPOINT&quot; &gt; /dev/null
++ if [ &quot;$?&quot; != &quot;0&quot; ] ; then
++ echo &quot;adsl-status: Link is attached to $IF, but $IF is down&quot;
++ exit 1
++ fi
++ echo &quot;adsl-status: Link is up and running on interface $IF&quot;
++ /sbin/ifconfig $IF
++ exit 0
++ fi
++ fi
++done
++
++echo &quot;adsl-status: Link is down -- could not find interface corresponding to&quot;
++echo &quot;pppd pid $PPPD_PID&quot;
++exit 1
+\ No newline at end of file
+
+
+Property changes on: drakx/trunk/mdk-stage1/rp-pppoe/scripts/adsl-status
+___________________________________________________________________
+Added: svn:executable
+ + *
+
+<a id="drakxtrunkmdkstage1rppppoescriptsadslstopin">Added: drakx/trunk/mdk-stage1/rp-pppoe/scripts/adsl-stop.in</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/scripts/adsl-stop.in (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/scripts/adsl-stop.in 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,84 @@
++#!/bin/sh
++# @configure_input@
++#***********************************************************************
++#
++# adsl-stop
++#
++# Shell script to bring down an ADSL connection
++#
++# Copyright (C) 2000 Roaring Penguin Software Inc.
++#
++# $Id: adsl-stop.in 195724 2001-06-11 13:49:39Z gc $
++#
++# This file may be distributed under the terms of the GNU General
++# Public License.
++#
++# Usage: adsl-stop [config_file]
++# If config_file is omitted, defaults to /etc/ppp/pppoe.conf
++#
++#***********************************************************************
++
++ME=&quot;`basename $0`&quot;
++LOGGER=&quot;/usr/bin/logger -t $ME&quot;
++CONFIG=&quot;$1&quot;
++if [ &quot;$CONFIG&quot; = &quot;&quot; ] ; then
++ CONFIG=/etc/ppp/pppoe.conf
++fi
++
++if [ ! -f &quot;$CONFIG&quot; -o ! -r &quot;$CONFIG&quot; ] ; then
++ echo &quot;$ME: Cannot read configuration file '$CONFIG'&quot; &gt;&amp; 2
++ exit 1
++fi
++
++. $CONFIG
++
++PPPOE_PIDFILE=&quot;$PIDFILE.pppoe&quot;
++PPPD_PIDFILE=&quot;$PIDFILE.pppd&quot;
++STARTPID=&quot;$PIDFILE.start&quot;
++
++# Backward config file compatibility
++if test &quot;$DEMAND&quot; = &quot;&quot; ; then
++ DEMAND=no
++fi
++
++# Ignore SIGTERM
++trap &quot;&quot; 15
++
++# Check for pidfile
++if [ -r &quot;$PIDFILE&quot; ] ; then
++ PID=`cat $PIDFILE`
++
++ # Check if still running
++ kill -0 $PID &gt; /dev/null 2&gt;&amp;1
++ if [ $? != 0 ] ; then
++ echo &quot;$ME: The adsl-connect script (PID $PID) appears to have died&quot; &gt;&amp; 2
++ fi
++
++ # Kill pppd, which should in turn kill pppoe
++ if [ -r &quot;$PPPD_PIDFILE&quot; ] ; then
++ PPPD_PID=`cat &quot;$PPPD_PIDFILE&quot;`
++ $LOGGER -p daemon.notice &quot;Killing pppd&quot;
++ echo &quot;Killing pppd ($PPPD_PID)&quot;
++ kill $PPPD_PID &gt; /dev/null 2&gt;&amp;1 || exit 1
++ fi
++
++ # Kill adsl-start
++ PIDS=`cat $STARTPID`
++ kill -0 $PIDS &gt; /dev/null 2&gt;&amp;1
++ if [ $? = 0 ] ; then
++ $LOGGER -p daemon.notice &quot;Killing adsl-connect&quot;
++ kill $PIDS &gt; /dev/null 2&gt;&amp;1
++ fi
++
++ # Kill adsl-connect
++ $LOGGER -p daemon.notice &quot;Killing adsl-connect&quot;
++ echo &quot;Killing adsl-connect ($PID)&quot;
++ kill $PID &gt; /dev/null 2&gt;&amp;1
++
++ rm -f &quot;$PIDFILE&quot; &quot;$PPPD_PIDFILE&quot; &quot;$PPPOE_PIDFILE&quot; &quot;$STARTPID&quot;
++else
++ echo &quot;$ME: No ADSL connection appears to be running&quot; &gt;&amp;2
++ exit 1
++fi
++
++exit 0
+
+
+Property changes on: drakx/trunk/mdk-stage1/rp-pppoe/scripts/adsl-stop.in
+___________________________________________________________________
+Added: svn:executable
+ + *
+
+<a id="drakxtrunkmdkstage1rppppoesrcMakefile">Added: drakx/trunk/mdk-stage1/rp-pppoe/src/Makefile</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/src/Makefile (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/src/Makefile 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,45 @@
++ #******************************************************************************
++ #
++ # Guillaume Cottenceau (gc@mandriva.com)
++ #
++ # Copyright 2000 Mandriva
++ #
++ # This software may be freely redistributed under the terms of the GNU
++ # public license.
++ #
++ # You should have received a copy of the GNU General Public License
++ # along with this program; if not, write to the Free Software
++ # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ #
++ #*****************************************************************************
++
++top_dir = ../..
++
++include $(top_dir)/Makefile.common
++
++
++TARGETS = pppoe
++
++BINTARGET = ../../pppoe
++
++
++all: $(TARGETS)
++
++clean:
++ rm -f *.o *.a $(BINTARGET) pppoe
++
++FLAGS = -Wall -Werror -Os -fno-strict-aliasing -fomit-frame-pointer '-DPPPOE_PATH=&quot;/sbin/pppoe&quot;' '-DPPPD_PATH=&quot;/sbin/pppd&quot;' '-DVERSION=&quot;3.0-stg1&quot;'
++
++ifeq (GLIBC, $(L))
++EXTRA_LDFLAGS = -static
++endif
++
++OBJS = pppoe.o if.o debug.o common.o ppp.o discovery.o
++
++pppoe: $(OBJS)
++ $(DIET) gcc -o $@ $^ $(EXTRA_LDFLAGS)
++ $(STRIPCMD) $@
++ cp -f $@ $(BINTARGET)
++
++$(OBJS): %.o: %.c
++ $(DIET) gcc $(FLAGS) $(INCLUDES) $(INCS) -c $&lt; -o $@
+
+
+Property changes on: drakx/trunk/mdk-stage1/rp-pppoe/src/Makefile
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1rppppoesrcMakefilein">Added: drakx/trunk/mdk-stage1/rp-pppoe/src/Makefile.in</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/src/Makefile.in (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/src/Makefile.in 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,257 @@
++# @configure_input@
++#***********************************************************************
++#
++# Makefile
++#
++# Makefile for Roaring Penguin's Linux user-space PPPoE client.
++#
++# Copyright (C) 2000 Roaring Penguin Software Inc.
++#
++# This program may be distributed according to the terms of the GNU
++# General Public License, version 2 or (at your option) any later version.
++#
++# $Id: Makefile.in 195724 2001-06-11 13:49:39Z gc $
++#***********************************************************************
++
++# Version is set ONLY IN THE MAKEFILE! Don't delete this!
++VERSION=3.0
++
++DEFINES=
++prefix=@prefix@
++exec_prefix=@exec_prefix@
++mandir=@mandir@
++docdir=@prefix@/doc/rp-pppoe-$(VERSION)
++install=@INSTALL@
++install_dir=@INSTALL@ -d
++sbindir=@sbindir@
++
++# Plugin for pppd on Linux
++LINUX_KERNELMODE_PLUGIN=@LINUX_KERNELMODE_PLUGIN@
++PPPD_INCDIR=@PPPD_INCDIR@
++
++# PPPoE relay -- currently only supported on Linux
++PPPOE_RELAY=@PPPOE_RELAY@
++
++# Program paths
++PPPOE_PATH=$(sbindir)/pppoe
++PPPD_PATH=@PPPD@
++
++# Kernel-mode plugin gets installed here.
++PLUGIN_DIR=/etc/ppp/plugins
++PLUGIN_PATH=$(PLUGIN_DIR)/rp-pppoe.so
++
++# Configuration file paths
++PPPOESERVER_PPPD_OPTIONS=/etc/ppp/pppoe-server-options
++
++PATHS='-DPPPOE_PATH=&quot;$(PPPOE_PATH)&quot;' '-DPPPD_PATH=&quot;$(PPPD_PATH)&quot;' \
++ '-DPLUGIN_PATH=&quot;$(PLUGIN_PATH)&quot;' \
++ '-DPPPOE_SERVER_OPTIONS=&quot;$(PPPOESERVER_PPPD_OPTIONS)&quot;'
++
++CFLAGS= @CFLAGS@ $(DEFINES) $(PATHS)
++TARGETS=@TARGETS@
++
++all: $(TARGETS)
++ @echo &quot;&quot;
++ @echo &quot;Type 'make install' as root to install the software.&quot;
++
++pppoe-sniff: pppoe-sniff.o if.o common.o debug.o
++ @CC@ -o pppoe-sniff pppoe-sniff.o if.o common.o debug.o $(LIBS)
++
++pppoe-server: pppoe-server.o if.o debug.o common.o md5.o
++ @CC@ -o pppoe-server pppoe-server.o if.o debug.o common.o md5.o $(LIBS)
++
++pppoe: pppoe.o if.o debug.o common.o ppp.o discovery.o
++ @CC@ -o pppoe pppoe.o if.o debug.o common.o ppp.o discovery.o $(LIBS)
++
++pppoe-relay: relay.o if.o debug.o common.o
++ @CC@ -o pppoe-relay relay.o if.o debug.o common.o $(LIBS)
++
++pppoe.o: pppoe.c pppoe.h
++ @CC@ $(CFLAGS) '-DVERSION=&quot;$(VERSION)&quot;' -c -o pppoe.o pppoe.c
++
++discovery.o: discovery.c pppoe.h
++ @CC@ $(CFLAGS) '-DVERSION=&quot;$(VERSION)&quot;' -c -o discovery.o discovery.c
++
++ppp.o: ppp.c pppoe.h
++ @CC@ $(CFLAGS) '-DVERSION=&quot;$(VERSION)&quot;' -c -o ppp.o ppp.c
++
++md5.o: md5.c md5.h
++ @CC@ $(CFLAGS) '-DVERSION=&quot;$(VERSION)&quot;' -c -o md5.o md5.c
++
++pppoe-server.o: pppoe-server.c pppoe.h
++ @CC@ $(CFLAGS) '-DVERSION=&quot;$(VERSION)&quot;' -c -o pppoe-server.o pppoe-server.c
++
++pppoe-sniff.o: pppoe-sniff.c pppoe.h
++ @CC@ $(CFLAGS) '-DVERSION=&quot;$(VERSION)&quot;' -c -o pppoe-sniff.o pppoe-sniff.c
++
++if.o: if.c pppoe.h
++ @CC@ $(CFLAGS) '-DVERSION=&quot;$(VERSION)&quot;' -c -o if.o if.c
++
++common.o: common.c pppoe.h
++ @CC@ $(CFLAGS) '-DVERSION=&quot;$(VERSION)&quot;' -c -o common.o common.c
++
++debug.o: debug.c pppoe.h
++ @CC@ $(CFLAGS) '-DVERSION=&quot;$(VERSION)&quot;' -c -o debug.o debug.c
++
++relay.o: relay.c relay.h pppoe.h
++ @CC@ $(CFLAGS) '-DVERSION=&quot;$(VERSION)&quot;' -c -o relay.o relay.c
++
++# Linux-specific plugin
++rp-pppoe.so: plugin/libplugin.a plugin/plugin.o
++ @CC@ -o rp-pppoe.so -shared plugin/plugin.o plugin/libplugin.a
++
++plugin/plugin.o: plugin.c
++ @CC@ '-DVERSION=&quot;$(VERSION)&quot;' -I$(PPPD_INCDIR) -c -o plugin/plugin.o -fPIC plugin.c
++
++plugin/libplugin.a: plugin/discovery.o plugin/if.o plugin/common.o plugin/debug.o
++ ar -rc $@ $^
++
++plugin/discovery.o: discovery.c
++ @CC@ $(CFLAGS) '-DVERSION=&quot;$(VERSION)&quot;' -c -o plugin/discovery.o -fPIC discovery.c
++
++plugin/if.o: if.c
++ @CC@ $(CFLAGS) '-DVERSION=&quot;$(VERSION)&quot;' -c -o plugin/if.o -fPIC if.c
++
++plugin/debug.o: debug.c
++ @CC@ $(CFLAGS) '-DVERSION=&quot;$(VERSION)&quot;' -c -o plugin/debug.o -fPIC debug.c
++
++plugin/common.o: common.c
++ @CC@ $(CFLAGS) '-DVERSION=&quot;$(VERSION)&quot;' -c -o plugin/common.o -fPIC common.c
++
++install: all
++ -mkdir -p $(RPM_INSTALL_ROOT)$(sbindir)
++ $(install) -m 755 -s pppoe $(RPM_INSTALL_ROOT)$(sbindir)
++ $(install) -m 755 -s pppoe-server $(RPM_INSTALL_ROOT)$(sbindir)
++ if test -x pppoe-relay ; then $(install) -m 755 -s pppoe-relay $(RPM_INSTALL_ROOT)$(sbindir); fi
++ $(install) -m 755 -s pppoe-sniff $(RPM_INSTALL_ROOT)$(sbindir)
++ $(install) -m 755 ../scripts/adsl-connect $(RPM_INSTALL_ROOT)$(sbindir)
++ $(install) -m 755 ../scripts/adsl-start $(RPM_INSTALL_ROOT)$(sbindir)
++ $(install) -m 755 ../scripts/adsl-status $(RPM_INSTALL_ROOT)$(sbindir)
++ $(install) -m 755 ../scripts/adsl-stop $(RPM_INSTALL_ROOT)$(sbindir)
++ $(install) -m 755 ../scripts/adsl-setup $(RPM_INSTALL_ROOT)$(sbindir)
++ -mkdir -p $(RPM_INSTALL_ROOT)$(docdir)
++ $(install) -m 644 ../doc/CHANGES $(RPM_INSTALL_ROOT)$(docdir)
++ $(install) -m 644 ../doc/KERNEL-MODE-PPPOE $(RPM_INSTALL_ROOT)$(docdir)
++ $(install) -m 644 ../doc/HOW-TO-CONNECT $(RPM_INSTALL_ROOT)$(docdir)
++ $(install) -m 644 ../doc/LICENSE $(RPM_INSTALL_ROOT)$(docdir)
++ $(install) -m 644 ../README $(RPM_INSTALL_ROOT)$(docdir)
++ $(install) -m 644 ../configs/pap-secrets $(RPM_INSTALL_ROOT)$(docdir)
++ -mkdir -p $(RPM_INSTALL_ROOT)$(mandir)/man8
++ for i in $(TARGETS) ; do \
++ if test -f ../man/$$i.8 ; then \
++ $(install) -m 644 ../man/$$i.8 $(RPM_INSTALL_ROOT)$(mandir)/man8 || exit 1; \
++ fi; \
++ done
++ $(install) -m 644 ../man/adsl-start.8 $(RPM_INSTALL_ROOT)$(mandir)/man8
++ $(install) -m 644 ../man/adsl-stop.8 $(RPM_INSTALL_ROOT)$(mandir)/man8
++ $(install) -m 644 ../man/adsl-status.8 $(RPM_INSTALL_ROOT)$(mandir)/man8
++ $(install) -m 644 ../man/adsl-connect.8 $(RPM_INSTALL_ROOT)$(mandir)/man8
++ $(install) -m 644 ../man/adsl-setup.8 $(RPM_INSTALL_ROOT)$(mandir)/man8
++ -mkdir -p $(RPM_INSTALL_ROOT)$(mandir)/man5
++ $(install) -m 644 ../man/pppoe.conf.5 $(RPM_INSTALL_ROOT)$(mandir)/man5
++ -mkdir -p $(RPM_INSTALL_ROOT)/etc/ppp
++ -mkdir -p $(RPM_INSTALL_ROOT)$(PLUGIN_DIR)
++ -echo &quot;# Directory created by rp-pppoe for kernel-mode plugin&quot; &gt; $(RPM_INSTALL_ROOT)$(PLUGIN_DIR)/README
++ @if test -r rp-pppoe.so; then $(install) -m 755 rp-pppoe.so $(RPM_INSTALL_ROOT)$(PLUGIN_DIR); fi
++ @for i in pppoe.conf firewall-standalone firewall-masq ; do \
++ if [ ! -f $(RPM_INSTALL_ROOT)/etc/ppp/$$i ] ; then \
++ $(install) -m 644 ../configs/$$i $(RPM_INSTALL_ROOT)/etc/ppp ; \
++ else \
++ echo &quot;NOT overwriting existing $(RPM_INSTALL_ROOT)/etc/ppp/$$i&quot; ;\
++ $(install) -m 644 ../configs/$$i $(RPM_INSTALL_ROOT)/etc/ppp/$$i-$(VERSION) ;\
++ fi ;\
++ done
++ @if [ ! -f $(RPM_INSTALL_ROOT)$(PPPOESERVER_PPPD_OPTIONS) ] ; then \
++ $(install) -m 644 ../configs/pppoe-server-options $(RPM_INSTALL_ROOT)$(PPPOESERVER_PPPD_OPTIONS) ; \
++ else \
++ echo &quot;NOT overwriting existing $(RPM_INSTALL_ROOT)$(PPPOESERVER_PPPD_OPTIONS)&quot;; \
++ $(install) -m 644 ../configs/pppoe-server-options $(RPM_INSTALL_ROOT)$(PPPOESERVER_PPPD_OPTIONS)-example ; \
++ fi
++ @if [ -f /etc/redhat-release ] ; then \
++ echo &quot;Looks like a Red Hat system; installing $(RPM_INSTALL_ROOT)/etc/rc.d/init.d/adsl&quot; ; \
++ mkdir -p $(RPM_INSTALL_ROOT)/etc/rc.d/init.d ;\
++ $(install) -m 755 ../scripts/adsl-init $(RPM_INSTALL_ROOT)/etc/rc.d/init.d/adsl ; \
++ fi
++ @if [ -f /etc/turbolinux-release ] ; then \
++ echo &quot;Looks like a TurboLinux system; installing $(RPM_INSTALL_ROOT)/etc/rc.d/init.d/adsl&quot; ; \
++ mkdir -p $(RPM_INSTALL_ROOT)/etc/rc.d/init.d ;\
++ $(install) -m 755 adsl-init-turbolinux $(RPM_INSTALL_ROOT)/etc/rc.d/init.d/adsl ; \
++ fi
++ @if [ -f /etc/SuSE-release ] ; then \
++ echo &quot;Looks like a SuSE Linux system; installing $(RPM_INSTALL_ROOT)/etc/rc.d/init.d/adsl&quot; ; \
++ mkdir -p $(RPM_INSTALL_ROOT)/etc/rc.d/init.d ;\
++ $(install) -m 755 ../scripts/adsl-init-suse $(RPM_INSTALL_ROOT)/etc/rc.d/init.d/adsl ; \
++ fi
++ @echo &quot;&quot;
++ @echo &quot;Type 'adsl-setup' to configure the software.&quot;
++
++distro:
++ cd ..; \
++ rm -rf rp-pppoe-$(VERSION) ; \
++ mkdir rp-pppoe-$(VERSION) || exit 1; \
++ for i in README go go-gui rp-pppoe.spec rp-pppoe-gui.spec; do \
++ cp $$i rp-pppoe-$(VERSION) || exit 1; \
++ done ; \
++ mkdir rp-pppoe-$(VERSION)/gui || exit 1; \
++ for i in Makefile.in tkpppoe.in wrapper.c tkpppoe.1 pppoe-wrapper.1 ; do \
++ cp gui/$$i rp-pppoe-$(VERSION)/gui || exit 1; \
++ done; \
++ mkdir rp-pppoe-$(VERSION)/gui/html || exit 1; \
++ for i in mainwin-busy.png mainwin-nonroot.png mainwin.png props-advanced.png props-basic.png props-nic.png props-options.png tkpppoe.html ; do \
++ cp gui/html/$$i rp-pppoe-$(VERSION)/gui/html || exit 1; \
++ done; \
++ mkdir rp-pppoe-$(VERSION)/configs || exit 1; \
++ for i in firewall-masq firewall-standalone pap-secrets pppoe-server-options pppoe.conf ; do \
++ cp configs/$$i rp-pppoe-$(VERSION)/configs || exit 1; \
++ done ; \
++ mkdir rp-pppoe-$(VERSION)/doc || exit 1; \
++ for i in CHANGES KERNEL-MODE-PPPOE HOW-TO-CONNECT LICENSE PROBLEMS ; do \
++ cp doc/$$i rp-pppoe-$(VERSION)/doc || exit 1; \
++ done; \
++ mkdir rp-pppoe-$(VERSION)/man || exit 1; \
++ for i in adsl-connect.8 adsl-setup.8 adsl-start.8 adsl-status.8 adsl-stop.8 pppoe-server.8 pppoe-sniff.8 pppoe.8 pppoe-relay.8 pppoe.conf.5 ; do \
++ cp man/$$i rp-pppoe-$(VERSION)/man || exit 1; \
++ done; \
++ mkdir rp-pppoe-$(VERSION)/scripts || exit 1; \
++ for i in adsl-connect.in adsl-init-suse.in adsl-init-turbolinux.in adsl-init.in adsl-setup.in adsl-start.in adsl-stop.in adsl-status ; do \
++ cp scripts/$$i rp-pppoe-$(VERSION)/scripts || exit 1; \
++ done; \
++ mkdir rp-pppoe-$(VERSION)/src || exit 1; \
++ for i in Makefile.in install-sh common.c config.h.in configure configure.in debug.c discovery.c if.c md5.c md5.h ppp.c pppoe-server.c pppoe-sniff.c pppoe.c pppoe.h plugin.c relay.c relay.h ; do \
++ cp src/$$i rp-pppoe-$(VERSION)/src || exit 1; \
++ done; \
++ mkdir rp-pppoe-$(VERSION)/src/plugin || exit 1; \
++ tar cvf rp-pppoe-$(VERSION).tar rp-pppoe-$(VERSION)/* ; \
++ gzip -f -v -9 rp-pppoe-$(VERSION).tar ; \
++
++rpms: distro
++ cp ../rp-pppoe-$(VERSION).tar.gz /usr/src/redhat/SOURCES
++ cd ..; \
++ rpm -ba rp-pppoe.spec; \
++ rpm -ba rp-pppoe-gui.spec
++
++clean:
++ rm -f *.o pppoe pppoe-sniff pppoe-server core rp-pppoe.so plugin/*.o plugin/libplugin.a *~
++
++distclean: clean
++ rm -f Makefile config.h config.cache config.log config.status
++ rm -f ../scripts/adsl-connect ../scripts/adsl-start ../scripts/adsl-stop ../scripts/adsl-init ../scripts/adsl-setup ../scripts/adsl-init-suse ../scripts/adsl-init-turbolinux
++
++update-version:
++ sed -e 's/^Version: .*$$/Version: $(VERSION)/' ../rp-pppoe.spec &gt; ../rp-pppoe.spec.new &amp;&amp; mv ../rp-pppoe.spec.new ../rp-pppoe.spec
++ sed -e 's+^Source: .*$$+Source: http://www.roaringpenguin.com/pppoe/rp-pppoe-$(VERSION).tar.gz+' ../rp-pppoe.spec &gt; ../rp-pppoe.spec.new &amp;&amp; mv ../rp-pppoe.spec.new ../rp-pppoe.spec
++ sed -e 's/^Version: .*$$/Version: $(VERSION)/' ../rp-pppoe-gui.spec &gt; ../rp-pppoe-gui.spec.new &amp;&amp; mv ../rp-pppoe-gui.spec.new ../rp-pppoe-gui.spec
++ sed -e 's+^Source: .*$$+Source: http://www.roaringpenguin.com/pppoe/rp-pppoe-$(VERSION).tar.gz+' ../rp-pppoe-gui.spec &gt; ../rp-pppoe-gui.spec.new &amp;&amp; mv ../rp-pppoe-gui.spec.new ../rp-pppoe-gui.spec
++ sed -e 's+^Requires: rp-pppoe &gt;=.*$$+Requires: rp-pppoe &gt;= $(VERSION)+' ../rp-pppoe-gui.spec &gt; ../rp-pppoe-gui.spec.new &amp;&amp; mv ../rp-pppoe-gui.spec.new ../rp-pppoe-gui.spec
++
++# Convenience target for David! Don't try to use this one.
++km:
++ ./configure --enable-plugin=/home/dfs/Archive/PPP/ppp-2.4.0.pppoe4-patched-dfs
++
++.PHONY: update-version
++
++.PHONY: clean
++
++.PHONY: distclean
++
++.PHONY: rpms
+
+<a id="drakxtrunkmdkstage1rppppoesrccommonc">Added: drakx/trunk/mdk-stage1/rp-pppoe/src/common.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/src/common.c (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/src/common.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,485 @@
++/***********************************************************************
++*
++* common.c
++*
++* Implementation of user-space PPPoE redirector for Linux.
++*
++* Common functions used by PPPoE client and server
++*
++* Copyright (C) 2000 by Roaring Penguin Software Inc.
++*
++* This program may be distributed according to the terms of the GNU
++* General Public License, version 2 or (at your option) any later version.
++*
++***********************************************************************/
++
++static char const RCSID[] =
++&quot;$Id: common.c 212191 2005-05-06 06:30:51Z rgarciasuarez $&quot;;
++
++#include &quot;pppoe.h&quot;
++
++#ifdef HAVE_SYSLOG_H
++#include &lt;syslog.h&gt;
++#endif
++
++#include &lt;string.h&gt;
++#include &lt;errno.h&gt;
++#include &lt;stdlib.h&gt;
++
++#ifdef HAVE_UNISTD_H
++#include &lt;unistd.h&gt;
++#endif
++
++/**********************************************************************
++*%FUNCTION: parsePacket
++*%ARGUMENTS:
++* packet -- the PPPoE discovery packet to parse
++* func -- function called for each tag in the packet
++* extra -- an opaque data pointer supplied to parsing function
++*%RETURNS:
++* 0 if everything went well; -1 if there was an error
++*%DESCRIPTION:
++* Parses a PPPoE discovery packet, calling &quot;func&quot; for each tag in the packet.
++* &quot;func&quot; is passed the additional argument &quot;extra&quot;.
++***********************************************************************/
++int
++parsePacket(PPPoEPacket *packet, ParseFunc *func, void *extra)
++{
++ UINT16_t len = ntohs(packet-&gt;length);
++ unsigned char *curTag;
++ UINT16_t tagType, tagLen;
++
++ if (packet-&gt;ver != 1) {
++ syslog(LOG_ERR, &quot;Invalid PPPoE version (%d)&quot;, (int) packet-&gt;ver);
++ return -1;
++ }
++ if (packet-&gt;type != 1) {
++ syslog(LOG_ERR, &quot;Invalid PPPoE type (%d)&quot;, (int) packet-&gt;type);
++ return -1;
++ }
++
++ /* Do some sanity checks on packet */
++ if (len &gt; ETH_DATA_LEN - 6) { /* 6-byte overhead for PPPoE header */
++ syslog(LOG_ERR, &quot;Invalid PPPoE packet length (%u)&quot;, len);
++ return -1;
++ }
++
++ /* Step through the tags */
++ curTag = packet-&gt;payload;
++ while(curTag - packet-&gt;payload &lt; len) {
++ /* Alignment is not guaranteed, so do this by hand... */
++ tagType = (((UINT16_t) curTag[0]) &lt;&lt; 8) +
++ (UINT16_t) curTag[1];
++ tagLen = (((UINT16_t) curTag[2]) &lt;&lt; 8) +
++ (UINT16_t) curTag[3];
++ if (tagType == TAG_END_OF_LIST) {
++ return 0;
++ }
++ if ((curTag - packet-&gt;payload) + tagLen + TAG_HDR_SIZE &gt; len) {
++ syslog(LOG_ERR, &quot;Invalid PPPoE tag length (%u)&quot;, tagLen);
++ return -1;
++ }
++ func(tagType, tagLen, curTag+TAG_HDR_SIZE, extra);
++ curTag = curTag + TAG_HDR_SIZE + tagLen;
++ }
++ return 0;
++}
++
++/**********************************************************************
++*%FUNCTION: findTag
++*%ARGUMENTS:
++* packet -- the PPPoE discovery packet to parse
++* type -- the type of the tag to look for
++* tag -- will be filled in with tag contents
++*%RETURNS:
++* A pointer to the tag if one of the specified type is found; NULL
++* otherwise.
++*%DESCRIPTION:
++* Looks for a specific tag type.
++***********************************************************************/
++unsigned char *
++findTag(PPPoEPacket *packet, UINT16_t type, PPPoETag *tag)
++{
++ UINT16_t len = ntohs(packet-&gt;length);
++ unsigned char *curTag;
++ UINT16_t tagType, tagLen;
++
++ if (packet-&gt;ver != 1) {
++ syslog(LOG_ERR, &quot;Invalid PPPoE version (%d)&quot;, (int) packet-&gt;ver);
++ return NULL;
++ }
++ if (packet-&gt;type != 1) {
++ syslog(LOG_ERR, &quot;Invalid PPPoE type (%d)&quot;, (int) packet-&gt;type);
++ return NULL;
++ }
++
++ /* Do some sanity checks on packet */
++ if (len &gt; ETH_DATA_LEN - 6) { /* 6-byte overhead for PPPoE header */
++ syslog(LOG_ERR, &quot;Invalid PPPoE packet length (%u)&quot;, len);
++ return NULL;
++ }
++
++ /* Step through the tags */
++ curTag = packet-&gt;payload;
++ while(curTag - packet-&gt;payload &lt; len) {
++ /* Alignment is not guaranteed, so do this by hand... */
++ tagType = (((UINT16_t) curTag[0]) &lt;&lt; 8) +
++ (UINT16_t) curTag[1];
++ tagLen = (((UINT16_t) curTag[2]) &lt;&lt; 8) +
++ (UINT16_t) curTag[3];
++ if (tagType == TAG_END_OF_LIST) {
++ return NULL;
++ }
++ if ((curTag - packet-&gt;payload) + tagLen + TAG_HDR_SIZE &gt; len) {
++ syslog(LOG_ERR, &quot;Invalid PPPoE tag length (%u)&quot;, tagLen);
++ return NULL;
++ }
++ if (tagType == type) {
++ memcpy(tag, curTag, tagLen + TAG_HDR_SIZE);
++ return curTag;
++ }
++ curTag = curTag + TAG_HDR_SIZE + tagLen;
++ }
++ return NULL;
++}
++
++/**********************************************************************
++*%FUNCTION: printErr
++*%ARGUMENTS:
++* str -- error message
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Prints a message to stderr and syslog.
++***********************************************************************/
++void
++printErr(char const *str)
++{
++ fprintf(stderr, &quot;pppoe: %s\n&quot;, str);
++ syslog(LOG_ERR, &quot;%s&quot;, str);
++}
++
++
++/**********************************************************************
++*%FUNCTION: strDup
++*%ARGUMENTS:
++* str -- string to copy
++*%RETURNS:
++* A malloc'd copy of str. Exits if malloc fails.
++***********************************************************************/
++char *
++strDup(char const *str)
++{
++ char *copy = malloc(strlen(str)+1);
++ if (!copy) {
++ rp_fatal(&quot;strdup failed&quot;);
++ }
++ strcpy(copy, str);
++ return copy;
++}
++
++/**********************************************************************
++*%FUNCTION: computeTCPChecksum
++*%ARGUMENTS:
++* ipHdr -- pointer to IP header
++* tcpHdr -- pointer to TCP header
++*%RETURNS:
++* The computed TCP checksum
++***********************************************************************/
++UINT16_t
++computeTCPChecksum(unsigned char *ipHdr, unsigned char *tcpHdr)
++{
++ UINT32_t sum = 0;
++ UINT16_t count = ipHdr[2] * 256 + ipHdr[3];
++ unsigned char *addr = tcpHdr;
++ unsigned char pseudoHeader[12];
++
++ /* Count number of bytes in TCP header and data */
++ count -= (ipHdr[0] &amp; 0x0F) * 4;
++
++ memcpy(pseudoHeader, ipHdr+12, 8);
++ pseudoHeader[8] = 0;
++ pseudoHeader[9] = ipHdr[9];
++ pseudoHeader[10] = (count &gt;&gt; 8) &amp; 0xFF;
++ pseudoHeader[11] = (count &amp; 0xFF);
++
++ /* Checksum the pseudo-header */
++ sum += * (UINT16_t *) pseudoHeader;
++ sum += * ((UINT16_t *) (pseudoHeader+2));
++ sum += * ((UINT16_t *) (pseudoHeader+4));
++ sum += * ((UINT16_t *) (pseudoHeader+6));
++ sum += * ((UINT16_t *) (pseudoHeader+8));
++ sum += * ((UINT16_t *) (pseudoHeader+10));
++
++ /* Checksum the TCP header and data */
++ while (count &gt; 1) {
++ sum += * (UINT16_t *) addr;
++ addr += 2;
++ count -= 2;
++ }
++ if (count &gt; 0) {
++ sum += *addr;
++ }
++
++ while(sum &gt;&gt; 16) {
++ sum = (sum &amp; 0xffff) + (sum &gt;&gt; 16);
++ }
++ return (UINT16_t) (~sum &amp; 0xFFFF);
++}
++
++/**********************************************************************
++*%FUNCTION: clampMSS
++*%ARGUMENTS:
++* packet -- PPPoE session packet
++* dir -- either &quot;incoming&quot; or &quot;outgoing&quot;
++* clampMss -- clamp value
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Clamps MSS option if TCP SYN flag is set.
++***********************************************************************/
++void
++clampMSS(PPPoEPacket *packet, char const *dir, int clampMss)
++{
++ unsigned char *tcpHdr;
++ unsigned char *ipHdr;
++ unsigned char *opt;
++ unsigned char *endHdr;
++ unsigned char *mssopt = NULL;
++ UINT16_t csum;
++
++ int len;
++
++ /* Is it IPv4? */
++ if (packet-&gt;payload[0] != 0x00 ||
++ packet-&gt;payload[1] != 0x21) {
++ /* Nope, ignore it */
++ return;
++ }
++
++ ipHdr = packet-&gt;payload + 2;
++
++ /* Is it too short? */
++ len = (int) ntohs(packet-&gt;length);
++ if (len &lt; 42) {
++ /* 20 byte IP header; 20 byte TCP header; 2 byte PPP protocol */
++ return;
++ }
++
++ /* Verify once more that it's IPv4 */
++ if ((ipHdr[0] &amp; 0xF0) != 0x40) {
++ return;
++ }
++
++ /* Is it a fragment that's not at the beginning of the packet? */
++ if ((ipHdr[6] &amp; 0x1F) || ipHdr[7]) {
++ /* Yup, don't touch! */
++ return;
++ }
++ /* Is it TCP? */
++ if (ipHdr[9] != 0x06) {
++ return;
++ }
++
++ /* Get start of TCP header */
++ tcpHdr = ipHdr + (ipHdr[0] &amp; 0x0F) * 4;
++
++ /* Is SYN set? */
++ if (!(tcpHdr[13] &amp; 0x02)) {
++ return;
++ }
++
++ /* Compute and verify TCP checksum -- do not touch a packet with a bad
++ checksum */
++ csum = computeTCPChecksum(ipHdr, tcpHdr);
++ if (csum) {
++ syslog(LOG_ERR, &quot;Bad TCP checksum %x&quot;, (unsigned int) csum);
++
++ /* Upper layers will drop it */
++ return;
++ }
++
++ /* Look for existing MSS option */
++ endHdr = tcpHdr + ((tcpHdr[12] &amp; 0xF0) &gt;&gt; 2);
++ opt = tcpHdr + 20;
++ while (opt &lt; endHdr) {
++ if (!*opt) break; /* End of options */
++ switch(*opt) {
++ case 1:
++ opt++;
++ break;
++
++ case 2:
++ if (opt[1] != 4) {
++ /* Something fishy about MSS option length. */
++ syslog(LOG_ERR,
++ &quot;Bogus length for MSS option (%u) from %u.%u.%u.%u&quot;,
++ (unsigned int) opt[1],
++ (unsigned int) ipHdr[12],
++ (unsigned int) ipHdr[13],
++ (unsigned int) ipHdr[14],
++ (unsigned int) ipHdr[15]);
++ return;
++ }
++ mssopt = opt;
++ break;
++ default:
++ if (opt[1] &lt; 2) {
++ /* Someone's trying to attack us? */
++ syslog(LOG_ERR,
++ &quot;Bogus TCP option length (%u) from %u.%u.%u.%u&quot;,
++ (unsigned int) opt[1],
++ (unsigned int) ipHdr[12],
++ (unsigned int) ipHdr[13],
++ (unsigned int) ipHdr[14],
++ (unsigned int) ipHdr[15]);
++ return;
++ }
++ opt += (opt[1]);
++ break;
++ }
++ /* Found existing MSS option? */
++ if (mssopt) break;
++ }
++
++ /* If MSS exists and it's low enough, do nothing */
++ if (mssopt) {
++ unsigned mss = mssopt[2] * 256 + mssopt[3];
++ if (mss &lt;= clampMss) {
++ return;
++ }
++
++ mssopt[2] = (((unsigned) clampMss) &gt;&gt; 8) &amp; 0xFF;
++ mssopt[3] = ((unsigned) clampMss) &amp; 0xFF;
++ } else {
++ /* No MSS option. Don't add one; we'll have to use 536. */
++ return;
++ }
++
++ /* Recompute TCP checksum */
++ tcpHdr[16] = 0;
++ tcpHdr[17] = 0;
++ csum = computeTCPChecksum(ipHdr, tcpHdr);
++ (* (UINT16_t *) (tcpHdr+16)) = csum;
++}
++
++/***********************************************************************
++*%FUNCTION: sendPADT
++*%ARGUMENTS:
++* conn -- PPPoE connection
++* msg -- if non-NULL, extra error message to include in PADT packet.
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Sends a PADT packet
++***********************************************************************/
++void
++sendPADT(PPPoEConnection *conn, char const *msg)
++{
++ PPPoEPacket packet;
++ unsigned char *cursor = packet.payload;
++
++ UINT16_t plen = 0;
++
++ /* Do nothing if no session established yet */
++ if (!conn-&gt;session) return;
++
++ /* Do nothing if no discovery socket */
++ if (conn-&gt;discoverySocket &lt; 0) return;
++
++ memcpy(packet.ethHdr.h_dest, conn-&gt;peerEth, ETH_ALEN);
++ memcpy(packet.ethHdr.h_source, conn-&gt;myEth, ETH_ALEN);
++
++ packet.ethHdr.h_proto = htons(Eth_PPPOE_Discovery);
++ packet.ver = 1;
++ packet.type = 1;
++ packet.code = CODE_PADT;
++ packet.session = conn-&gt;session;
++
++ /* Reset Session to zero so there is no possibility of
++ recursive calls to this function by any signal handler */
++ conn-&gt;session = 0;
++
++ /* If we're using Host-Uniq, copy it over */
++ if (conn-&gt;useHostUniq) {
++ PPPoETag hostUniq;
++ pid_t pid = getpid();
++ hostUniq.type = htons(TAG_HOST_UNIQ);
++ hostUniq.length = htons(sizeof(pid));
++ memcpy(hostUniq.payload, &amp;pid, sizeof(pid));
++ memcpy(cursor, &amp;hostUniq, sizeof(pid) + TAG_HDR_SIZE);
++ cursor += sizeof(pid) + TAG_HDR_SIZE;
++ plen += sizeof(pid) + TAG_HDR_SIZE;
++ }
++
++ /* Copy error message */
++ if (msg) {
++ PPPoETag err;
++ size_t elen = strlen(msg);
++ err.type = htons(TAG_GENERIC_ERROR);
++ err.length = htons(elen);
++ strcpy((char *)err.payload, msg);
++ memcpy(cursor, &amp;err, elen + TAG_HDR_SIZE);
++ cursor += elen + TAG_HDR_SIZE;
++ plen += elen + TAG_HDR_SIZE;
++ }
++
++ /* Copy cookie and relay-ID if needed */
++ if (conn-&gt;cookie.type) {
++ CHECK_ROOM(cursor, packet.payload,
++ ntohs(conn-&gt;cookie.length) + TAG_HDR_SIZE);
++ memcpy(cursor, &amp;conn-&gt;cookie, ntohs(conn-&gt;cookie.length) + TAG_HDR_SIZE);
++ cursor += ntohs(conn-&gt;cookie.length) + TAG_HDR_SIZE;
++ plen += ntohs(conn-&gt;cookie.length) + TAG_HDR_SIZE;
++ }
++
++ if (conn-&gt;relayId.type) {
++ CHECK_ROOM(cursor, packet.payload,
++ ntohs(conn-&gt;relayId.length) + TAG_HDR_SIZE);
++ memcpy(cursor, &amp;conn-&gt;relayId, ntohs(conn-&gt;relayId.length) + TAG_HDR_SIZE);
++ cursor += ntohs(conn-&gt;relayId.length) + TAG_HDR_SIZE;
++ plen += ntohs(conn-&gt;relayId.length) + TAG_HDR_SIZE;
++ }
++
++ packet.length = htons(plen);
++ sendPacket(conn, conn-&gt;discoverySocket, &amp;packet, (int) (plen + HDR_SIZE));
++ if (conn-&gt;debugFile) {
++ dumpPacket(conn-&gt;debugFile, &amp;packet, &quot;SENT&quot;);
++ fprintf(conn-&gt;debugFile, &quot;\n&quot;);
++ fflush(conn-&gt;debugFile);
++ }
++ syslog(LOG_INFO,&quot;Sent PADT&quot;);
++}
++
++/**********************************************************************
++*%FUNCTION: parseLogErrs
++*%ARGUMENTS:
++* type -- tag type
++* len -- tag length
++* data -- tag data
++* extra -- extra user data
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Picks error tags out of a packet and logs them.
++***********************************************************************/
++void
++parseLogErrs(UINT16_t type, UINT16_t len, unsigned char *data,
++ void *extra)
++{
++ switch(type) {
++ case TAG_SERVICE_NAME_ERROR:
++ syslog(LOG_ERR, &quot;PADT: Service-Name-Error: %.*s&quot;, (int) len, data);
++ fprintf(stderr, &quot;PADT: Service-Name-Error: %.*s\n&quot;, (int) len, data);
++ break;
++ case TAG_AC_SYSTEM_ERROR:
++ syslog(LOG_ERR, &quot;PADT: System-Error: %.*s&quot;, (int) len, data);
++ fprintf(stderr, &quot;PADT: System-Error: %.*s\n&quot;, (int) len, data);
++ break;
++ case TAG_GENERIC_ERROR:
++ syslog(LOG_ERR, &quot;PADT: Generic-Error: %.*s&quot;, (int) len, data);
++ fprintf(stderr, &quot;PADT: Generic-Error: %.*s\n&quot;, (int) len, data);
++ break;
++ }
++}
++
+
+
+Property changes on: drakx/trunk/mdk-stage1/rp-pppoe/src/common.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1rppppoesrcconfigh">Added: drakx/trunk/mdk-stage1/rp-pppoe/src/config.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/src/config.h (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/src/config.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,135 @@
++/* config.h. Generated automatically by configure. */
++/* config.h.in. Generated automatically from configure.in by autoheader. */
++
++/* Define to empty if the keyword does not work. */
++/* #undef const */
++
++/* Define if you have &lt;sys/wait.h&gt; that is POSIX.1 compatible. */
++#define HAVE_SYS_WAIT_H 1
++
++/* Define to `int' if &lt;sys/types.h&gt; doesn't define. */
++/* #undef pid_t */
++
++/* Define as the return type of signal handlers (int or void). */
++#define RETSIGTYPE void
++
++/* Define if the setvbuf function takes the buffering type as its second
++ argument and the buffer pointer as the third, as on System V
++ before release 3. */
++/* #undef SETVBUF_REVERSED */
++
++/* Define if you have the ANSI C header files. */
++#define STDC_HEADERS 1
++
++/* Define if you can safely include both &lt;sys/time.h&gt; and &lt;time.h&gt;. */
++#define TIME_WITH_SYS_TIME 1
++
++/* Define if your &lt;sys/time.h&gt; declares struct tm. */
++/* #undef TM_IN_SYS_TIME */
++
++#define HAVE_STRUCT_SOCKADDR_LL 1
++
++/* The number of bytes in a unsigned int. */
++#define SIZEOF_UNSIGNED_INT 4
++
++/* The number of bytes in a unsigned long. */
++#define SIZEOF_UNSIGNED_LONG 4
++
++/* The number of bytes in a unsigned short. */
++#define SIZEOF_UNSIGNED_SHORT 2
++
++/* Define if you have the select function. */
++#define HAVE_SELECT 1
++
++/* Define if you have the socket function. */
++#define HAVE_SOCKET 1
++
++/* Define if you have the strerror function. */
++#define HAVE_STRERROR 1
++
++/* Define if you have the strtol function. */
++#define HAVE_STRTOL 1
++
++/* Define if you have the &lt;asm/types.h&gt; header file. */
++#define HAVE_ASM_TYPES_H 1
++
++/* Define if you have the &lt;fcntl.h&gt; header file. */
++#define HAVE_FCNTL_H 1
++
++/* Define if you have the &lt;getopt.h&gt; header file. */
++#define HAVE_GETOPT_H 1
++
++/* Define if you have the &lt;linux/if_ether.h&gt; header file. */
++#define HAVE_LINUX_IF_ETHER_H 1
++
++/* Define if you have kernel-mode PPPoE in Linux file. */
++/* #undef HAVE_LINUX_KERNEL_PPPOE */
++
++/* Define if you have the &lt;linux/if_packet.h&gt; header file. */
++#define HAVE_LINUX_IF_PACKET_H 1
++
++/* Define if you have the &lt;linux/if_pppox.h&gt; header file. */
++#define HAVE_LINUX_IF_PPPOX_H 1
++
++/* Define if you have the &lt;net/bpf.h&gt; header file. */
++#define HAVE_NET_BPF_H 1
++
++/* Define if you have the &lt;net/if_arp.h&gt; header file. */
++//#define HAVE_NET_IF_ARP_H 1
++
++/* Define if you have the &lt;net/ethernet.h&gt; header file. */
++#define HAVE_NET_ETHERNET_H 1
++
++/* Define if you have the &lt;net/if.h&gt; header file. */
++#define HAVE_NET_IF_H 1
++
++/* Define if you have the &lt;linux/if.h&gt; header file. */
++#define HAVE_LINUX_IF_H 1
++
++/* Define if you have the &lt;net/if_dl.h&gt; header file. */
++/* #undef HAVE_NET_IF_DL_H */
++
++/* Define if you have the &lt;net/if_ether.h&gt; header file. */
++/* #undef HAVE_NET_IF_ETHER_H */
++
++/* Define if you have the &lt;net/if_types.h&gt; header file. */
++/* #undef HAVE_NET_IF_TYPES_H */
++
++/* Define if you have the &lt;netinet/if_ether.h&gt; header file. */
++//#define HAVE_NETINET_IF_ETHER_H 1
++
++/* Define if you have the &lt;netpacket/packet.h&gt; header file. */
++#define HAVE_NETPACKET_PACKET_H 1
++
++/* Define if you have the &lt;sys/cdefs.h&gt; header file. */
++#define HAVE_SYS_CDEFS_H 1
++
++/* Define if you have the &lt;sys/dlpi.h&gt; header file. */
++/* #undef HAVE_SYS_DLPI_H */
++
++/* Define if you have the &lt;sys/ioctl.h&gt; header file. */
++#define HAVE_SYS_IOCTL_H 1
++
++/* Define if you have the &lt;sys/param.h&gt; header file. */
++#define HAVE_SYS_PARAM_H 1
++
++/* Define if you have the &lt;sys/socket.h&gt; header file. */
++#define HAVE_SYS_SOCKET_H 1
++
++/* Define if you have the &lt;sys/time.h&gt; header file. */
++#define HAVE_SYS_TIME_H 1
++
++/* Define if you have the &lt;sys/uio.h&gt; header file. */
++#define HAVE_SYS_UIO_H 1
++
++/* Define if you have the &lt;syslog.h&gt; header file. */
++#define HAVE_SYSLOG_H 1
++
++/* Define if you have the &lt;unistd.h&gt; header file. */
++#define HAVE_UNISTD_H 1
++
++/* Define if you have the N_HDLC line discipline in linux/termios.h */
++#define HAVE_N_HDLC 1
++
++/* Define if bitfields are packed in reverse order */
++#define PACK_BITFIELDS_REVERSED 1
+
+
+Property changes on: drakx/trunk/mdk-stage1/rp-pppoe/src/config.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1rppppoesrcconfighin">Added: drakx/trunk/mdk-stage1/rp-pppoe/src/config.h.in</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/src/config.h.in (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/src/config.h.in 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,134 @@
++/* config.h.in. Generated automatically from configure.in by autoheader. */
++
++/* Define to empty if the keyword does not work. */
++#undef const
++
++/* Define if you have &lt;sys/wait.h&gt; that is POSIX.1 compatible. */
++#undef HAVE_SYS_WAIT_H
++
++/* Define to `int' if &lt;sys/types.h&gt; doesn't define. */
++#undef pid_t
++
++/* Define as the return type of signal handlers (int or void). */
++#undef RETSIGTYPE
++
++/* Define if the setvbuf function takes the buffering type as its second
++ argument and the buffer pointer as the third, as on System V
++ before release 3. */
++#undef SETVBUF_REVERSED
++
++/* Define if you have the ANSI C header files. */
++#undef STDC_HEADERS
++
++/* Define if you can safely include both &lt;sys/time.h&gt; and &lt;time.h&gt;. */
++#undef TIME_WITH_SYS_TIME
++
++/* Define if your &lt;sys/time.h&gt; declares struct tm. */
++#undef TM_IN_SYS_TIME
++
++#undef HAVE_STRUCT_SOCKADDR_LL
++
++/* The number of bytes in a unsigned int. */
++#undef SIZEOF_UNSIGNED_INT
++
++/* The number of bytes in a unsigned long. */
++#undef SIZEOF_UNSIGNED_LONG
++
++/* The number of bytes in a unsigned short. */
++#undef SIZEOF_UNSIGNED_SHORT
++
++/* Define if you have the select function. */
++#undef HAVE_SELECT
++
++/* Define if you have the socket function. */
++#undef HAVE_SOCKET
++
++/* Define if you have the strerror function. */
++#undef HAVE_STRERROR
++
++/* Define if you have the strtol function. */
++#undef HAVE_STRTOL
++
++/* Define if you have the &lt;asm/types.h&gt; header file. */
++#undef HAVE_ASM_TYPES_H
++
++/* Define if you have the &lt;fcntl.h&gt; header file. */
++#undef HAVE_FCNTL_H
++
++/* Define if you have the &lt;getopt.h&gt; header file. */
++#undef HAVE_GETOPT_H
++
++/* Define if you have the &lt;linux/if_ether.h&gt; header file. */
++#undef HAVE_LINUX_IF_ETHER_H
++
++/* Define if you have kernel-mode PPPoE in Linux file. */
++#undef HAVE_LINUX_KERNEL_PPPOE
++
++/* Define if you have the &lt;linux/if_packet.h&gt; header file. */
++#undef HAVE_LINUX_IF_PACKET_H
++
++/* Define if you have the &lt;linux/if_pppox.h&gt; header file. */
++#undef HAVE_LINUX_IF_PPPOX_H
++
++/* Define if you have the &lt;net/bpf.h&gt; header file. */
++#undef HAVE_NET_BPF_H
++
++/* Define if you have the &lt;net/if_arp.h&gt; header file. */
++#undef HAVE_NET_IF_ARP_H
++
++/* Define if you have the &lt;net/ethernet.h&gt; header file. */
++#undef HAVE_NET_ETHERNET_H
++
++/* Define if you have the &lt;net/if.h&gt; header file. */
++#undef HAVE_NET_IF_H
++
++/* Define if you have the &lt;linux/if.h&gt; header file. */
++#undef HAVE_LINUX_IF_H
++
++/* Define if you have the &lt;net/if_dl.h&gt; header file. */
++#undef HAVE_NET_IF_DL_H
++
++/* Define if you have the &lt;net/if_ether.h&gt; header file. */
++#undef HAVE_NET_IF_ETHER_H
++
++/* Define if you have the &lt;net/if_types.h&gt; header file. */
++#undef HAVE_NET_IF_TYPES_H
++
++/* Define if you have the &lt;netinet/if_ether.h&gt; header file. */
++#undef HAVE_NETINET_IF_ETHER_H
++
++/* Define if you have the &lt;netpacket/packet.h&gt; header file. */
++#undef HAVE_NETPACKET_PACKET_H
++
++/* Define if you have the &lt;sys/cdefs.h&gt; header file. */
++#undef HAVE_SYS_CDEFS_H
++
++/* Define if you have the &lt;sys/dlpi.h&gt; header file. */
++#undef HAVE_SYS_DLPI_H
++
++/* Define if you have the &lt;sys/ioctl.h&gt; header file. */
++#undef HAVE_SYS_IOCTL_H
++
++/* Define if you have the &lt;sys/param.h&gt; header file. */
++#undef HAVE_SYS_PARAM_H
++
++/* Define if you have the &lt;sys/socket.h&gt; header file. */
++#undef HAVE_SYS_SOCKET_H
++
++/* Define if you have the &lt;sys/time.h&gt; header file. */
++#undef HAVE_SYS_TIME_H
++
++/* Define if you have the &lt;sys/uio.h&gt; header file. */
++#undef HAVE_SYS_UIO_H
++
++/* Define if you have the &lt;syslog.h&gt; header file. */
++#undef HAVE_SYSLOG_H
++
++/* Define if you have the &lt;unistd.h&gt; header file. */
++#undef HAVE_UNISTD_H
++
++/* Define if you have the N_HDLC line discipline in linux/termios.h */
++#undef HAVE_N_HDLC
++
++/* Define if bitfields are packed in reverse order */
++#undef PACK_BITFIELDS_REVERSED
+
+<a id="drakxtrunkmdkstage1rppppoesrcconfigure">Added: drakx/trunk/mdk-stage1/rp-pppoe/src/configure</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/src/configure (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/src/configure 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,2356 @@
++#! /bin/sh
++
++# Guess values for system-dependent variables and create Makefiles.
++# Generated automatically using autoconf version 2.13
++# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
++#
++# This configure script is free software; the Free Software Foundation
++# gives unlimited permission to copy, distribute and modify it.
++
++# Defaults:
++ac_help=
++ac_default_prefix=/usr/local
++# Any additions from configure.in:
++ac_default_prefix=/usr
++ac_help=&quot;$ac_help
++ --enable-plugin=pppd_src_path build pppd plugin&quot;
++
++# Initialize some variables set by options.
++# The variables have the same names as the options, with
++# dashes changed to underlines.
++build=NONE
++cache_file=./config.cache
++exec_prefix=NONE
++host=NONE
++no_create=
++nonopt=NONE
++no_recursion=
++prefix=NONE
++program_prefix=NONE
++program_suffix=NONE
++program_transform_name=s,x,x,
++silent=
++site=
++srcdir=
++target=NONE
++verbose=
++x_includes=NONE
++x_libraries=NONE
++bindir='${exec_prefix}/bin'
++sbindir='${exec_prefix}/sbin'
++libexecdir='${exec_prefix}/libexec'
++datadir='${prefix}/share'
++sysconfdir='${prefix}/etc'
++sharedstatedir='${prefix}/com'
++localstatedir='${prefix}/var'
++libdir='${exec_prefix}/lib'
++includedir='${prefix}/include'
++oldincludedir='/usr/include'
++infodir='${prefix}/info'
++mandir='${prefix}/man'
++
++# Initialize some other variables.
++subdirs=
++MFLAGS= MAKEFLAGS=
++SHELL=${CONFIG_SHELL-/bin/sh}
++# Maximum number of lines to put in a shell here document.
++ac_max_here_lines=12
++
++ac_prev=
++for ac_option
++do
++
++ # If the previous option needs an argument, assign it.
++ if test -n &quot;$ac_prev&quot;; then
++ eval &quot;$ac_prev=\$ac_option&quot;
++ ac_prev=
++ continue
++ fi
++
++ case &quot;$ac_option&quot; in
++ -*=*) ac_optarg=`echo &quot;$ac_option&quot; | sed 's/[-_a-zA-Z0-9]*=//'` ;;
++ *) ac_optarg= ;;
++ esac
++
++ # Accept the important Cygnus configure options, so we can diagnose typos.
++
++ case &quot;$ac_option&quot; in
++
++ -bindir | --bindir | --bindi | --bind | --bin | --bi)
++ ac_prev=bindir ;;
++ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
++ bindir=&quot;$ac_optarg&quot; ;;
++
++ -build | --build | --buil | --bui | --bu)
++ ac_prev=build ;;
++ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
++ build=&quot;$ac_optarg&quot; ;;
++
++ -cache-file | --cache-file | --cache-fil | --cache-fi \
++ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
++ ac_prev=cache_file ;;
++ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
++ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
++ cache_file=&quot;$ac_optarg&quot; ;;
++
++ -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
++ ac_prev=datadir ;;
++ -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
++ | --da=*)
++ datadir=&quot;$ac_optarg&quot; ;;
++
++ -disable-* | --disable-*)
++ ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
++ # Reject names that are not valid shell variable names.
++ if test -n &quot;`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`&quot;; then
++ { echo &quot;configure: error: $ac_feature: invalid feature name&quot; 1&gt;&amp;2; exit 1; }
++ fi
++ ac_feature=`echo $ac_feature| sed 's/-/_/g'`
++ eval &quot;enable_${ac_feature}=no&quot; ;;
++
++ -enable-* | --enable-*)
++ ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
++ # Reject names that are not valid shell variable names.
++ if test -n &quot;`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`&quot;; then
++ { echo &quot;configure: error: $ac_feature: invalid feature name&quot; 1&gt;&amp;2; exit 1; }
++ fi
++ ac_feature=`echo $ac_feature| sed 's/-/_/g'`
++ case &quot;$ac_option&quot; in
++ *=*) ;;
++ *) ac_optarg=yes ;;
++ esac
++ eval &quot;enable_${ac_feature}='$ac_optarg'&quot; ;;
++
++ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
++ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
++ | --exec | --exe | --ex)
++ ac_prev=exec_prefix ;;
++ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
++ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
++ | --exec=* | --exe=* | --ex=*)
++ exec_prefix=&quot;$ac_optarg&quot; ;;
++
++ -gas | --gas | --ga | --g)
++ # Obsolete; use --with-gas.
++ with_gas=yes ;;
++
++ -help | --help | --hel | --he)
++ # Omit some internal or obsolete options to make the list less imposing.
++ # This message is too long to be a string in the A/UX 3.1 sh.
++ cat &lt;&lt; EOF
++Usage: configure [options] [host]
++Options: [defaults in brackets after descriptions]
++Configuration:
++ --cache-file=FILE cache test results in FILE
++ --help print this message
++ --no-create do not create output files
++ --quiet, --silent do not print \`checking...' messages
++ --version print the version of autoconf that created configure
++Directory and file names:
++ --prefix=PREFIX install architecture-independent files in PREFIX
++ [$ac_default_prefix]
++ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
++ [same as prefix]
++ --bindir=DIR user executables in DIR [EPREFIX/bin]
++ --sbindir=DIR system admin executables in DIR [EPREFIX/sbin]
++ --libexecdir=DIR program executables in DIR [EPREFIX/libexec]
++ --datadir=DIR read-only architecture-independent data in DIR
++ [PREFIX/share]
++ --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc]
++ --sharedstatedir=DIR modifiable architecture-independent data in DIR
++ [PREFIX/com]
++ --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var]
++ --libdir=DIR object code libraries in DIR [EPREFIX/lib]
++ --includedir=DIR C header files in DIR [PREFIX/include]
++ --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include]
++ --infodir=DIR info documentation in DIR [PREFIX/info]
++ --mandir=DIR man documentation in DIR [PREFIX/man]
++ --srcdir=DIR find the sources in DIR [configure dir or ..]
++ --program-prefix=PREFIX prepend PREFIX to installed program names
++ --program-suffix=SUFFIX append SUFFIX to installed program names
++ --program-transform-name=PROGRAM
++ run sed PROGRAM on installed program names
++EOF
++ cat &lt;&lt; EOF
++Host type:
++ --build=BUILD configure for building on BUILD [BUILD=HOST]
++ --host=HOST configure for HOST [guessed]
++ --target=TARGET configure for TARGET [TARGET=HOST]
++Features and packages:
++ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
++ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
++ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
++ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
++ --x-includes=DIR X include files are in DIR
++ --x-libraries=DIR X library files are in DIR
++EOF
++ if test -n &quot;$ac_help&quot;; then
++ echo &quot;--enable and --with options recognized:$ac_help&quot;
++ fi
++ exit 0 ;;
++
++ -host | --host | --hos | --ho)
++ ac_prev=host ;;
++ -host=* | --host=* | --hos=* | --ho=*)
++ host=&quot;$ac_optarg&quot; ;;
++
++ -includedir | --includedir | --includedi | --included | --include \
++ | --includ | --inclu | --incl | --inc)
++ ac_prev=includedir ;;
++ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
++ | --includ=* | --inclu=* | --incl=* | --inc=*)
++ includedir=&quot;$ac_optarg&quot; ;;
++
++ -infodir | --infodir | --infodi | --infod | --info | --inf)
++ ac_prev=infodir ;;
++ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
++ infodir=&quot;$ac_optarg&quot; ;;
++
++ -libdir | --libdir | --libdi | --libd)
++ ac_prev=libdir ;;
++ -libdir=* | --libdir=* | --libdi=* | --libd=*)
++ libdir=&quot;$ac_optarg&quot; ;;
++
++ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
++ | --libexe | --libex | --libe)
++ ac_prev=libexecdir ;;
++ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
++ | --libexe=* | --libex=* | --libe=*)
++ libexecdir=&quot;$ac_optarg&quot; ;;
++
++ -localstatedir | --localstatedir | --localstatedi | --localstated \
++ | --localstate | --localstat | --localsta | --localst \
++ | --locals | --local | --loca | --loc | --lo)
++ ac_prev=localstatedir ;;
++ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
++ | --localstate=* | --localstat=* | --localsta=* | --localst=* \
++ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
++ localstatedir=&quot;$ac_optarg&quot; ;;
++
++ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
++ ac_prev=mandir ;;
++ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
++ mandir=&quot;$ac_optarg&quot; ;;
++
++ -nfp | --nfp | --nf)
++ # Obsolete; use --without-fp.
++ with_fp=no ;;
++
++ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
++ | --no-cr | --no-c)
++ no_create=yes ;;
++
++ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
++ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
++ no_recursion=yes ;;
++
++ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
++ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
++ | --oldin | --oldi | --old | --ol | --o)
++ ac_prev=oldincludedir ;;
++ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
++ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
++ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
++ oldincludedir=&quot;$ac_optarg&quot; ;;
++
++ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
++ ac_prev=prefix ;;
++ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
++ prefix=&quot;$ac_optarg&quot; ;;
++
++ -program-prefix | --program-prefix | --program-prefi | --program-pref \
++ | --program-pre | --program-pr | --program-p)
++ ac_prev=program_prefix ;;
++ -program-prefix=* | --program-prefix=* | --program-prefi=* \
++ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
++ program_prefix=&quot;$ac_optarg&quot; ;;
++
++ -program-suffix | --program-suffix | --program-suffi | --program-suff \
++ | --program-suf | --program-su | --program-s)
++ ac_prev=program_suffix ;;
++ -program-suffix=* | --program-suffix=* | --program-suffi=* \
++ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
++ program_suffix=&quot;$ac_optarg&quot; ;;
++
++ -program-transform-name | --program-transform-name \
++ | --program-transform-nam | --program-transform-na \
++ | --program-transform-n | --program-transform- \
++ | --program-transform | --program-transfor \
++ | --program-transfo | --program-transf \
++ | --program-trans | --program-tran \
++ | --progr-tra | --program-tr | --program-t)
++ ac_prev=program_transform_name ;;
++ -program-transform-name=* | --program-transform-name=* \
++ | --program-transform-nam=* | --program-transform-na=* \
++ | --program-transform-n=* | --program-transform-=* \
++ | --program-transform=* | --program-transfor=* \
++ | --program-transfo=* | --program-transf=* \
++ | --program-trans=* | --program-tran=* \
++ | --progr-tra=* | --program-tr=* | --program-t=*)
++ program_transform_name=&quot;$ac_optarg&quot; ;;
++
++ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
++ | -silent | --silent | --silen | --sile | --sil)
++ silent=yes ;;
++
++ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
++ ac_prev=sbindir ;;
++ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
++ | --sbi=* | --sb=*)
++ sbindir=&quot;$ac_optarg&quot; ;;
++
++ -sharedstatedir | --sharedstatedir | --sharedstatedi \
++ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
++ | --sharedst | --shareds | --shared | --share | --shar \
++ | --sha | --sh)
++ ac_prev=sharedstatedir ;;
++ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
++ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
++ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
++ | --sha=* | --sh=*)
++ sharedstatedir=&quot;$ac_optarg&quot; ;;
++
++ -site | --site | --sit)
++ ac_prev=site ;;
++ -site=* | --site=* | --sit=*)
++ site=&quot;$ac_optarg&quot; ;;
++
++ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
++ ac_prev=srcdir ;;
++ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
++ srcdir=&quot;$ac_optarg&quot; ;;
++
++ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
++ | --syscon | --sysco | --sysc | --sys | --sy)
++ ac_prev=sysconfdir ;;
++ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
++ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
++ sysconfdir=&quot;$ac_optarg&quot; ;;
++
++ -target | --target | --targe | --targ | --tar | --ta | --t)
++ ac_prev=target ;;
++ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
++ target=&quot;$ac_optarg&quot; ;;
++
++ -v | -verbose | --verbose | --verbos | --verbo | --verb)
++ verbose=yes ;;
++
++ -version | --version | --versio | --versi | --vers)
++ echo &quot;configure generated by autoconf version 2.13&quot;
++ exit 0 ;;
++
++ -with-* | --with-*)
++ ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
++ # Reject names that are not valid shell variable names.
++ if test -n &quot;`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`&quot;; then
++ { echo &quot;configure: error: $ac_package: invalid package name&quot; 1&gt;&amp;2; exit 1; }
++ fi
++ ac_package=`echo $ac_package| sed 's/-/_/g'`
++ case &quot;$ac_option&quot; in
++ *=*) ;;
++ *) ac_optarg=yes ;;
++ esac
++ eval &quot;with_${ac_package}='$ac_optarg'&quot; ;;
++
++ -without-* | --without-*)
++ ac_package=`echo $ac_option|sed -e 's/-*without-//'`
++ # Reject names that are not valid shell variable names.
++ if test -n &quot;`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`&quot;; then
++ { echo &quot;configure: error: $ac_package: invalid package name&quot; 1&gt;&amp;2; exit 1; }
++ fi
++ ac_package=`echo $ac_package| sed 's/-/_/g'`
++ eval &quot;with_${ac_package}=no&quot; ;;
++
++ --x)
++ # Obsolete; use --with-x.
++ with_x=yes ;;
++
++ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
++ | --x-incl | --x-inc | --x-in | --x-i)
++ ac_prev=x_includes ;;
++ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
++ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
++ x_includes=&quot;$ac_optarg&quot; ;;
++
++ -x-libraries | --x-libraries | --x-librarie | --x-librari \
++ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
++ ac_prev=x_libraries ;;
++ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
++ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
++ x_libraries=&quot;$ac_optarg&quot; ;;
++
++ -*) { echo &quot;configure: error: $ac_option: invalid option; use --help to show usage&quot; 1&gt;&amp;2; exit 1; }
++ ;;
++
++ *)
++ if test -n &quot;`echo $ac_option| sed 's/[-a-z0-9.]//g'`&quot;; then
++ echo &quot;configure: warning: $ac_option: invalid host type&quot; 1&gt;&amp;2
++ fi
++ if test &quot;x$nonopt&quot; != xNONE; then
++ { echo &quot;configure: error: can only configure for one host and one target at a time&quot; 1&gt;&amp;2; exit 1; }
++ fi
++ nonopt=&quot;$ac_option&quot;
++ ;;
++
++ esac
++done
++
++if test -n &quot;$ac_prev&quot;; then
++ { echo &quot;configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`&quot; 1&gt;&amp;2; exit 1; }
++fi
++
++trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
++
++# File descriptor usage:
++# 0 standard input
++# 1 file creation
++# 2 errors and warnings
++# 3 some systems may open it to /dev/tty
++# 4 used on the Kubota Titan
++# 6 checking for... messages and results
++# 5 compiler messages saved in config.log
++if test &quot;$silent&quot; = yes; then
++ exec 6&gt;/dev/null
++else
++ exec 6&gt;&amp;1
++fi
++exec 5&gt;./config.log
++
++echo &quot;\
++This file contains any messages produced by compilers while
++running configure, to aid debugging if configure makes a mistake.
++&quot; 1&gt;&amp;5
++
++# Strip out --no-create and --no-recursion so they do not pile up.
++# Also quote any args containing shell metacharacters.
++ac_configure_args=
++for ac_arg
++do
++ case &quot;$ac_arg&quot; in
++ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
++ | --no-cr | --no-c) ;;
++ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
++ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
++ *&quot; &quot;*|*&quot; &quot;*|*[\[\]\~\#\$\^\&amp;\*\(\)\{\}\\\|\;\&lt;\&gt;\?]*)
++ ac_configure_args=&quot;$ac_configure_args '$ac_arg'&quot; ;;
++ *) ac_configure_args=&quot;$ac_configure_args $ac_arg&quot; ;;
++ esac
++done
++
++# NLS nuisances.
++# Only set these to C if already set. These must not be set unconditionally
++# because not all systems understand e.g. LANG=C (notably SCO).
++# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
++# Non-C LC_CTYPE values break the ctype check.
++if test &quot;${LANG+set}&quot; = set; then LANG=C; export LANG; fi
++if test &quot;${LC_ALL+set}&quot; = set; then LC_ALL=C; export LC_ALL; fi
++if test &quot;${LC_MESSAGES+set}&quot; = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
++if test &quot;${LC_CTYPE+set}&quot; = set; then LC_CTYPE=C; export LC_CTYPE; fi
++
++# confdefs.h avoids OS command line length limits that DEFS can exceed.
++rm -rf conftest* confdefs.h
++# AIX cpp loses on an empty file, so make sure it contains at least a newline.
++echo &gt; confdefs.h
++
++# A filename unique to this package, relative to the directory that
++# configure is in, which we can look for to find out if srcdir is correct.
++ac_unique_file=pppoe.c
++
++# Find the source files, if location was not specified.
++if test -z &quot;$srcdir&quot;; then
++ ac_srcdir_defaulted=yes
++ # Try the directory containing this script, then its parent.
++ ac_prog=$0
++ ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
++ test &quot;x$ac_confdir&quot; = &quot;x$ac_prog&quot; &amp;&amp; ac_confdir=.
++ srcdir=$ac_confdir
++ if test ! -r $srcdir/$ac_unique_file; then
++ srcdir=..
++ fi
++else
++ ac_srcdir_defaulted=no
++fi
++if test ! -r $srcdir/$ac_unique_file; then
++ if test &quot;$ac_srcdir_defaulted&quot; = yes; then
++ { echo &quot;configure: error: can not find sources in $ac_confdir or ..&quot; 1&gt;&amp;2; exit 1; }
++ else
++ { echo &quot;configure: error: can not find sources in $srcdir&quot; 1&gt;&amp;2; exit 1; }
++ fi
++fi
++srcdir=`echo &quot;${srcdir}&quot; | sed 's%\([^/]\)/*$%\1%'`
++
++# Prefer explicitly selected file to automatically selected ones.
++if test -z &quot;$CONFIG_SITE&quot;; then
++ if test &quot;x$prefix&quot; != xNONE; then
++ CONFIG_SITE=&quot;$prefix/share/config.site $prefix/etc/config.site&quot;
++ else
++ CONFIG_SITE=&quot;$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site&quot;
++ fi
++fi
++for ac_site_file in $CONFIG_SITE; do
++ if test -r &quot;$ac_site_file&quot;; then
++ echo &quot;loading site script $ac_site_file&quot;
++ . &quot;$ac_site_file&quot;
++ fi
++done
++
++if test -r &quot;$cache_file&quot;; then
++ echo &quot;loading cache $cache_file&quot;
++ . $cache_file
++else
++ echo &quot;creating cache $cache_file&quot;
++ &gt; $cache_file
++fi
++
++ac_ext=c
++# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
++ac_cpp='$CPP $CPPFLAGS'
++ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1&gt;&amp;5'
++ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1&gt;&amp;5'
++cross_compiling=$ac_cv_prog_cc_cross
++
++ac_exeext=
++ac_objext=o
++if (echo &quot;testing\c&quot;; echo 1,2,3) | grep c &gt;/dev/null; then
++ # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
++ if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn &gt;/dev/null; then
++ ac_n= ac_c='
++' ac_t=' '
++ else
++ ac_n=-n ac_c= ac_t=
++ fi
++else
++ ac_n= ac_c='\c' ac_t=
++fi
++
++
++
++
++
++
++
++# Extract the first word of &quot;gcc&quot;, so it can be a program name with args.
++set dummy gcc; ac_word=$2
++echo $ac_n &quot;checking for $ac_word&quot;&quot;... $ac_c&quot; 1&gt;&amp;6
++echo &quot;configure:536: checking for $ac_word&quot; &gt;&amp;5
++if eval &quot;test \&quot;`echo '$''{'ac_cv_prog_CC'+set}'`\&quot; = set&quot;; then
++ echo $ac_n &quot;(cached) $ac_c&quot; 1&gt;&amp;6
++else
++ if test -n &quot;$CC&quot;; then
++ ac_cv_prog_CC=&quot;$CC&quot; # Let the user override the test.
++else
++ IFS=&quot;${IFS= }&quot;; ac_save_ifs=&quot;$IFS&quot;; IFS=&quot;:&quot;
++ ac_dummy=&quot;$PATH&quot;
++ for ac_dir in $ac_dummy; do
++ test -z &quot;$ac_dir&quot; &amp;&amp; ac_dir=.
++ if test -f $ac_dir/$ac_word; then
++ ac_cv_prog_CC=&quot;gcc&quot;
++ break
++ fi
++ done
++ IFS=&quot;$ac_save_ifs&quot;
++fi
++fi
++CC=&quot;$ac_cv_prog_CC&quot;
++if test -n &quot;$CC&quot;; then
++ echo &quot;$ac_t&quot;&quot;$CC&quot; 1&gt;&amp;6
++else
++ echo &quot;$ac_t&quot;&quot;no&quot; 1&gt;&amp;6
++fi
++
++if test -z &quot;$CC&quot;; then
++ # Extract the first word of &quot;cc&quot;, so it can be a program name with args.
++set dummy cc; ac_word=$2
++echo $ac_n &quot;checking for $ac_word&quot;&quot;... $ac_c&quot; 1&gt;&amp;6
++echo &quot;configure:566: checking for $ac_word&quot; &gt;&amp;5
++if eval &quot;test \&quot;`echo '$''{'ac_cv_prog_CC'+set}'`\&quot; = set&quot;; then
++ echo $ac_n &quot;(cached) $ac_c&quot; 1&gt;&amp;6
++else
++ if test -n &quot;$CC&quot;; then
++ ac_cv_prog_CC=&quot;$CC&quot; # Let the user override the test.
++else
++ IFS=&quot;${IFS= }&quot;; ac_save_ifs=&quot;$IFS&quot;; IFS=&quot;:&quot;
++ ac_prog_rejected=no
++ ac_dummy=&quot;$PATH&quot;
++ for ac_dir in $ac_dummy; do
++ test -z &quot;$ac_dir&quot; &amp;&amp; ac_dir=.
++ if test -f $ac_dir/$ac_word; then
++ if test &quot;$ac_dir/$ac_word&quot; = &quot;/usr/ucb/cc&quot;; then
++ ac_prog_rejected=yes
++ continue
++ fi
++ ac_cv_prog_CC=&quot;cc&quot;
++ break
++ fi
++ done
++ IFS=&quot;$ac_save_ifs&quot;
++if test $ac_prog_rejected = yes; then
++ # We found a bogon in the path, so make sure we never use it.
++ set dummy $ac_cv_prog_CC
++ shift
++ if test $# -gt 0; then
++ # We chose a different compiler from the bogus one.
++ # However, it has the same basename, so the bogon will be chosen
++ # first if we set CC to just the basename; use the full file name.
++ shift
++ set dummy &quot;$ac_dir/$ac_word&quot; &quot;$@&quot;
++ shift
++ ac_cv_prog_CC=&quot;$@&quot;
++ fi
++fi
++fi
++fi
++CC=&quot;$ac_cv_prog_CC&quot;
++if test -n &quot;$CC&quot;; then
++ echo &quot;$ac_t&quot;&quot;$CC&quot; 1&gt;&amp;6
++else
++ echo &quot;$ac_t&quot;&quot;no&quot; 1&gt;&amp;6
++fi
++
++ if test -z &quot;$CC&quot;; then
++ case &quot;`uname -s`&quot; in
++ *win32* | *WIN32*)
++ # Extract the first word of &quot;cl&quot;, so it can be a program name with args.
++set dummy cl; ac_word=$2
++echo $ac_n &quot;checking for $ac_word&quot;&quot;... $ac_c&quot; 1&gt;&amp;6
++echo &quot;configure:617: checking for $ac_word&quot; &gt;&amp;5
++if eval &quot;test \&quot;`echo '$''{'ac_cv_prog_CC'+set}'`\&quot; = set&quot;; then
++ echo $ac_n &quot;(cached) $ac_c&quot; 1&gt;&amp;6
++else
++ if test -n &quot;$CC&quot;; then
++ ac_cv_prog_CC=&quot;$CC&quot; # Let the user override the test.
++else
++ IFS=&quot;${IFS= }&quot;; ac_save_ifs=&quot;$IFS&quot;; IFS=&quot;:&quot;
++ ac_dummy=&quot;$PATH&quot;
++ for ac_dir in $ac_dummy; do
++ test -z &quot;$ac_dir&quot; &amp;&amp; ac_dir=.
++ if test -f $ac_dir/$ac_word; then
++ ac_cv_prog_CC=&quot;cl&quot;
++ break
++ fi
++ done
++ IFS=&quot;$ac_save_ifs&quot;
++fi
++fi
++CC=&quot;$ac_cv_prog_CC&quot;
++if test -n &quot;$CC&quot;; then
++ echo &quot;$ac_t&quot;&quot;$CC&quot; 1&gt;&amp;6
++else
++ echo &quot;$ac_t&quot;&quot;no&quot; 1&gt;&amp;6
++fi
++ ;;
++ esac
++ fi
++ test -z &quot;$CC&quot; &amp;&amp; { echo &quot;configure: error: no acceptable cc found in \$PATH&quot; 1&gt;&amp;2; exit 1; }
++fi
++
++echo $ac_n &quot;checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works&quot;&quot;... $ac_c&quot; 1&gt;&amp;6
++echo &quot;configure:649: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works&quot; &gt;&amp;5
++
++ac_ext=c
++# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
++ac_cpp='$CPP $CPPFLAGS'
++ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1&gt;&amp;5'
++ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1&gt;&amp;5'
++cross_compiling=$ac_cv_prog_cc_cross
++
++cat &gt; conftest.$ac_ext &lt;&lt; EOF
++
++#line 660 &quot;configure&quot;
++#include &quot;confdefs.h&quot;
++
++main(){return(0);}
++EOF
++if { (eval echo configure:665: \&quot;$ac_link\&quot;) 1&gt;&amp;5; (eval $ac_link) 2&gt;&amp;5; } &amp;&amp; test -s conftest${ac_exeext}; then
++ ac_cv_prog_cc_works=yes
++ # If we can't run a trivial program, we are probably using a cross compiler.
++ if (./conftest; exit) 2&gt;/dev/null; then
++ ac_cv_prog_cc_cross=no
++ else
++ ac_cv_prog_cc_cross=yes
++ fi
++else
++ echo &quot;configure: failed program was:&quot; &gt;&amp;5
++ cat conftest.$ac_ext &gt;&amp;5
++ ac_cv_prog_cc_works=no
++fi
++rm -fr conftest*
++ac_ext=c
++# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
++ac_cpp='$CPP $CPPFLAGS'
++ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1&gt;&amp;5'
++ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1&gt;&amp;5'
++cross_compiling=$ac_cv_prog_cc_cross
++
++echo &quot;$ac_t&quot;&quot;$ac_cv_prog_cc_works&quot; 1&gt;&amp;6
++if test $ac_cv_prog_cc_works = no; then
++ { echo &quot;configure: error: installation or configuration problem: C compiler cannot create executables.&quot; 1&gt;&amp;2; exit 1; }
++fi
++echo $ac_n &quot;checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler&quot;&quot;... $ac_c&quot; 1&gt;&amp;6
++echo &quot;configure:691: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler&quot; &gt;&amp;5
++echo &quot;$ac_t&quot;&quot;$ac_cv_prog_cc_cross&quot; 1&gt;&amp;6
++cross_compiling=$ac_cv_prog_cc_cross
++
++echo $ac_n &quot;checking whether we are using GNU C&quot;&quot;... $ac_c&quot; 1&gt;&amp;6
++echo &quot;configure:696: checking whether we are using GNU C&quot; &gt;&amp;5
++if eval &quot;test \&quot;`echo '$''{'ac_cv_prog_gcc'+set}'`\&quot; = set&quot;; then
++ echo $ac_n &quot;(cached) $ac_c&quot; 1&gt;&amp;6
++else
++ cat &gt; conftest.c &lt;&lt;EOF
++#ifdef __GNUC__
++ yes;
++#endif
++EOF
++if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:705: \&quot;$ac_try\&quot;) 1&gt;&amp;5; (eval $ac_try) 2&gt;&amp;5; }; } | egrep yes &gt;/dev/null 2&gt;&amp;1; then
++ ac_cv_prog_gcc=yes
++else
++ ac_cv_prog_gcc=no
++fi
++fi
++
++echo &quot;$ac_t&quot;&quot;$ac_cv_prog_gcc&quot; 1&gt;&amp;6
++
++if test $ac_cv_prog_gcc = yes; then
++ GCC=yes
++else
++ GCC=
++fi
++
++ac_test_CFLAGS=&quot;${CFLAGS+set}&quot;
++ac_save_CFLAGS=&quot;$CFLAGS&quot;
++CFLAGS=
++echo $ac_n &quot;checking whether ${CC-cc} accepts -g&quot;&quot;... $ac_c&quot; 1&gt;&amp;6
++echo &quot;configure:724: checking whether ${CC-cc} accepts -g&quot; &gt;&amp;5
++if eval &quot;test \&quot;`echo '$''{'ac_cv_prog_cc_g'+set}'`\&quot; = set&quot;; then
++ echo $ac_n &quot;(cached) $ac_c&quot; 1&gt;&amp;6
++else
++ echo 'void f(){}' &gt; conftest.c
++if test -z &quot;`${CC-cc} -g -c conftest.c 2&gt;&amp;1`&quot;; then
++ ac_cv_prog_cc_g=yes
++else
++ ac_cv_prog_cc_g=no
++fi
++rm -f conftest*
++
++fi
++
++echo &quot;$ac_t&quot;&quot;$ac_cv_prog_cc_g&quot; 1&gt;&amp;6
++if test &quot;$ac_test_CFLAGS&quot; = set; then
++ CFLAGS=&quot;$ac_save_CFLAGS&quot;
++elif test $ac_cv_prog_cc_g = yes; then
++ if test &quot;$GCC&quot; = yes; then
++ CFLAGS=&quot;-g -O2&quot;
++ else
++ CFLAGS=&quot;-g&quot;
++ fi
++else
++ if test &quot;$GCC&quot; = yes; then
++ CFLAGS=&quot;-O2&quot;
++ else
++ CFLAGS=
++ fi
++fi
++
++
++
++echo $ac_n &quot;checking how to run the C preprocessor&quot;&quot;... $ac_c&quot; 1&gt;&amp;6
++echo &quot;configure:758: checking how to run the C preprocessor&quot; &gt;&amp;5
++# On Suns, sometimes $CPP names a directory.
++if test -n &quot;$CPP&quot; &amp;&amp; test -d &quot;$CPP&quot;; then
++ CPP=
++fi
++if test -z &quot;$CPP&quot;; then
++if eval &quot;test \&quot;`echo '$''{'ac_cv_prog_CPP'+set}'`\&quot; = set&quot;; then
++ echo $ac_n &quot;(cached) $ac_c&quot; 1&gt;&amp;6
++else
++ # This must be in double quotes, not single quotes, because CPP may get
++ # substituted into the Makefile and &quot;${CC-cc}&quot; will confuse make.
++ CPP=&quot;${CC-cc} -E&quot;
++ # On the NeXT, cc -E runs the code through the compiler's parser,
++ # not just through cpp.
++ cat &gt; conftest.$ac_ext &lt;&lt;EOF
++#line 773 &quot;configure&quot;
++#include &quot;confdefs.h&quot;
++#include &lt;assert.h&gt;
++Syntax Error
++EOF
++ac_try=&quot;$ac_cpp conftest.$ac_ext &gt;/dev/null 2&gt;conftest.out&quot;
++{ (eval echo configure:779: \&quot;$ac_try\&quot;) 1&gt;&amp;5; (eval $ac_try) 2&gt;&amp;5; }
++ac_err=`grep -v '^ *+' conftest.out | grep -v &quot;^conftest.${ac_ext}\$&quot;`
++if test -z &quot;$ac_err&quot;; then
++ :
++else
++ echo &quot;$ac_err&quot; &gt;&amp;5
++ echo &quot;configure: failed program was:&quot; &gt;&amp;5
++ cat conftest.$ac_ext &gt;&amp;5
++ rm -rf conftest*
++ CPP=&quot;${CC-cc} -E -traditional-cpp&quot;
++ cat &gt; conftest.$ac_ext &lt;&lt;EOF
++#line 790 &quot;configure&quot;
++#include &quot;confdefs.h&quot;
++#include &lt;assert.h&gt;
++Syntax Error
++EOF
++ac_try=&quot;$ac_cpp conftest.$ac_ext &gt;/dev/null 2&gt;conftest.out&quot;
++{ (eval echo configure:796: \&quot;$ac_try\&quot;) 1&gt;&amp;5; (eval $ac_try) 2&gt;&amp;5; }
++ac_err=`grep -v '^ *+' conftest.out | grep -v &quot;^conftest.${ac_ext}\$&quot;`
++if test -z &quot;$ac_err&quot;; then
++ :
++else
++ echo &quot;$ac_err&quot; &gt;&amp;5
++ echo &quot;configure: failed program was:&quot; &gt;&amp;5
++ cat conftest.$ac_ext &gt;&amp;5
++ rm -rf conftest*
++ CPP=&quot;${CC-cc} -nologo -E&quot;
++ cat &gt; conftest.$ac_ext &lt;&lt;EOF
++#line 807 &quot;configure&quot;
++#include &quot;confdefs.h&quot;
++#include &lt;assert.h&gt;
++Syntax Error
++EOF
++ac_try=&quot;$ac_cpp conftest.$ac_ext &gt;/dev/null 2&gt;conftest.out&quot;
++{ (eval echo configure:813: \&quot;$ac_try\&quot;) 1&gt;&amp;5; (eval $ac_try) 2&gt;&amp;5; }
++ac_err=`grep -v '^ *+' conftest.out | grep -v &quot;^conftest.${ac_ext}\$&quot;`
++if test -z &quot;$ac_err&quot;; then
++ :
++else
++ echo &quot;$ac_err&quot; &gt;&amp;5
++ echo &quot;configure: failed program was:&quot; &gt;&amp;5
++ cat conftest.$ac_ext &gt;&amp;5
++ rm -rf conftest*
++ CPP=/lib/cpp
++fi
++rm -f conftest*
++fi
++rm -f conftest*
++fi
++rm -f conftest*
++ ac_cv_prog_CPP=&quot;$CPP&quot;
++fi
++ CPP=&quot;$ac_cv_prog_CPP&quot;
++else
++ ac_cv_prog_CPP=&quot;$CPP&quot;
++fi
++echo &quot;$ac_t&quot;&quot;$CPP&quot; 1&gt;&amp;6
++
++echo $ac_n &quot;checking for ANSI C header files&quot;&quot;... $ac_c&quot; 1&gt;&amp;6
++echo &quot;configure:838: checking for ANSI C header files&quot; &gt;&amp;5
++if eval &quot;test \&quot;`echo '$''{'ac_cv_header_stdc'+set}'`\&quot; = set&quot;; then
++ echo $ac_n &quot;(cached) $ac_c&quot; 1&gt;&amp;6
++else
++ cat &gt; conftest.$ac_ext &lt;&lt;EOF
++#line 843 &quot;configure&quot;
++#include &quot;confdefs.h&quot;
++#include &lt;stdlib.h&gt;
++#include &lt;stdarg.h&gt;
++#include &lt;string.h&gt;
++#include &lt;float.h&gt;
++EOF
++ac_try=&quot;$ac_cpp conftest.$ac_ext &gt;/dev/null 2&gt;conftest.out&quot;
++{ (eval echo configure:851: \&quot;$ac_try\&quot;) 1&gt;&amp;5; (eval $ac_try) 2&gt;&amp;5; }
++ac_err=`grep -v '^ *+' conftest.out | grep -v &quot;^conftest.${ac_ext}\$&quot;`
++if test -z &quot;$ac_err&quot;; then
++ rm -rf conftest*
++ ac_cv_header_stdc=yes
++else
++ echo &quot;$ac_err&quot; &gt;&amp;5
++ echo &quot;configure: failed program was:&quot; &gt;&amp;5
++ cat conftest.$ac_ext &gt;&amp;5
++ rm -rf conftest*
++ ac_cv_header_stdc=no
++fi
++rm -f conftest*
++
++if test $ac_cv_header_stdc = yes; then
++ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
++cat &gt; conftest.$ac_ext &lt;&lt;EOF
++#line 868 &quot;configure&quot;
++#include &quot;confdefs.h&quot;
++#include &lt;string.h&gt;
++EOF
++if (eval &quot;$ac_cpp conftest.$ac_ext&quot;) 2&gt;&amp;5 |
++ egrep &quot;memchr&quot; &gt;/dev/null 2&gt;&amp;1; then
++ :
++else
++ rm -rf conftest*
++ ac_cv_header_stdc=no
++fi
++rm -f conftest*
++
++fi
++
++if test $ac_cv_header_stdc = yes; then
++ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
++cat &gt; conftest.$ac_ext &lt;&lt;EOF
++#line 886 &quot;configure&quot;
++#include &quot;confdefs.h&quot;
++#include &lt;stdlib.h&gt;
++EOF
++if (eval &quot;$ac_cpp conftest.$ac_ext&quot;) 2&gt;&amp;5 |
++ egrep &quot;free&quot; &gt;/dev/null 2&gt;&amp;1; then
++ :
++else
++ rm -rf conftest*
++ ac_cv_header_stdc=no
++fi
++rm -f conftest*
++
++fi
++
++if test $ac_cv_header_stdc = yes; then
++ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
++if test &quot;$cross_compiling&quot; = yes; then
++ :
++else
++ cat &gt; conftest.$ac_ext &lt;&lt;EOF
++#line 907 &quot;configure&quot;
++#include &quot;confdefs.h&quot;
++#include &lt;ctype.h&gt;
++#define ISLOWER(c) ('a' &lt;= (c) &amp;&amp; (c) &lt;= 'z')
++#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
++#define XOR(e, f) (((e) &amp;&amp; !(f)) || (!(e) &amp;&amp; (f)))
++int main () { int i; for (i = 0; i &lt; 256; i++)
++if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
++exit (0); }
++
++EOF
++if { (eval echo configure:918: \&quot;$ac_link\&quot;) 1&gt;&amp;5; (eval $ac_link) 2&gt;&amp;5; } &amp;&amp; test -s conftest${ac_exeext} &amp;&amp; (./conftest; exit) 2&gt;/dev/null
++then
++ :
++else
++ echo &quot;configure: failed program was:&quot; &gt;&amp;5
++ cat conftest.$ac_ext &gt;&amp;5
++ rm -fr conftest*
++ ac_cv_header_stdc=no
++fi
++rm -fr conftest*
++fi
++
++fi
++fi
++
++echo &quot;$ac_t&quot;&quot;$ac_cv_header_stdc&quot; 1&gt;&amp;6
++if test $ac_cv_header_stdc = yes; then
++ cat &gt;&gt; confdefs.h &lt;&lt;\EOF
++#define STDC_HEADERS 1
++EOF
++
++fi
++
++echo $ac_n &quot;checking for sys/wait.h that is POSIX.1 compatible&quot;&quot;... $ac_c&quot; 1&gt;&amp;6
++echo &quot;configure:942: checking for sys/wait.h that is POSIX.1 compatible&quot; &gt;&amp;5
++if eval &quot;test \&quot;`echo '$''{'ac_cv_header_sys_wait_h'+set}'`\&quot; = set&quot;; then
++ echo $ac_n &quot;(cached) $ac_c&quot; 1&gt;&amp;6
++else
++ cat &gt; conftest.$ac_ext &lt;&lt;EOF
++#line 947 &quot;configure&quot;
++#include &quot;confdefs.h&quot;
++#include &lt;sys/types.h&gt;
++#include &lt;sys/wait.h&gt;
++#ifndef WEXITSTATUS
++#define WEXITSTATUS(stat_val) ((unsigned)(stat_val) &gt;&gt; 8)
++#endif
++#ifndef WIFEXITED
++#define WIFEXITED(stat_val) (((stat_val) &amp; 255) == 0)
++#endif
++int main() {
++int s;
++wait (&amp;s);
++s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
++; return 0; }
++EOF
++if { (eval echo configure:963: \&quot;$ac_compile\&quot;) 1&gt;&amp;5; (eval $ac_compile) 2&gt;&amp;5; }; then
++ rm -rf conftest*
++ ac_cv_header_sys_wait_h=yes
++else
++ echo &quot;configure: failed program was:&quot; &gt;&amp;5
++ cat conftest.$ac_ext &gt;&amp;5
++ rm -rf conftest*
++ ac_cv_header_sys_wait_h=no
++fi
++rm -f conftest*
++fi
++
++echo &quot;$ac_t&quot;&quot;$ac_cv_header_sys_wait_h&quot; 1&gt;&amp;6
++if test $ac_cv_header_sys_wait_h = yes; then
++ cat &gt;&gt; confdefs.h &lt;&lt;\EOF
++#define HAVE_SYS_WAIT_H 1
++EOF
++
++fi
++
++for ac_hdr in fcntl.h sys/ioctl.h sys/time.h syslog.h unistd.h net/if_arp.h netinet/if_ether.h getopt.h sys/uio.h sys/param.h fcntl.h net/bpf.h netpacket/packet.h net/ethernet.h asm/types.h linux/if_packet.h linux/if_ether.h linux/if_pppox.h sys/socket.h sys/cdefs.h linux/if.h net/if.h net/if_dl.h net/if_ether.h net/if_types.h netinet/if_ether.h net/if_types.h net/if_dl.h sys/dlpi.h
++do
++ac_safe=`echo &quot;$ac_hdr&quot; | sed 'y%./+-%__p_%'`
++echo $ac_n &quot;checking for $ac_hdr&quot;&quot;... $ac_c&quot; 1&gt;&amp;6
++echo &quot;configure:987: checking for $ac_hdr&quot; &gt;&amp;5
++if eval &quot;test \&quot;`echo '$''{'ac_cv_header_$ac_safe'+set}'`\&quot; = set&quot;; then
++ echo $ac_n &quot;(cached) $ac_c&quot; 1&gt;&amp;6
++else
++ cat &gt; conftest.$ac_ext &lt;&lt;EOF
++#line 992 &quot;configure&quot;
++#include &quot;confdefs.h&quot;
++#include &lt;$ac_hdr&gt;
++EOF
++ac_try=&quot;$ac_cpp conftest.$ac_ext &gt;/dev/null 2&gt;conftest.out&quot;
++{ (eval echo configure:997: \&quot;$ac_try\&quot;) 1&gt;&amp;5; (eval $ac_try) 2&gt;&amp;5; }
++ac_err=`grep -v '^ *+' conftest.out | grep -v &quot;^conftest.${ac_ext}\$&quot;`
++if test -z &quot;$ac_err&quot;; then
++ rm -rf conftest*
++ eval &quot;ac_cv_header_$ac_safe=yes&quot;
++else
++ echo &quot;$ac_err&quot; &gt;&amp;5
++ echo &quot;configure: failed program was:&quot; &gt;&amp;5
++ cat conftest.$ac_ext &gt;&amp;5
++ rm -rf conftest*
++ eval &quot;ac_cv_header_$ac_safe=no&quot;
++fi
++rm -f conftest*
++fi
++if eval &quot;test \&quot;`echo '$ac_cv_header_'$ac_safe`\&quot; = yes&quot;; then
++ echo &quot;$ac_t&quot;&quot;yes&quot; 1&gt;&amp;6
++ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
++ cat &gt;&gt; confdefs.h &lt;&lt;EOF
++#define $ac_tr_hdr 1
++EOF
++
++else
++ echo &quot;$ac_t&quot;&quot;no&quot; 1&gt;&amp;6
++fi
++done
++
++
++echo $ac_n &quot;checking for working const&quot;&quot;... $ac_c&quot; 1&gt;&amp;6
++echo &quot;configure:1025: checking for working const&quot; &gt;&amp;5
++if eval &quot;test \&quot;`echo '$''{'ac_cv_c_const'+set}'`\&quot; = set&quot;; then
++ echo $ac_n &quot;(cached) $ac_c&quot; 1&gt;&amp;6
++else
++ cat &gt; conftest.$ac_ext &lt;&lt;EOF
++#line 1030 &quot;configure&quot;
++#include &quot;confdefs.h&quot;
++
++int main() {
++
++/* Ultrix mips cc rejects this. */
++typedef int charset[2]; const charset x;
++/* SunOS 4.1.1 cc rejects this. */
++char const *const *ccp;
++char **p;
++/* NEC SVR4.0.2 mips cc rejects this. */
++struct point {int x, y;};
++static struct point const zero = {0,0};
++/* AIX XL C 1.02.0.0 rejects this.
++ It does not let you subtract one const X* pointer from another in an arm
++ of an if-expression whose if-part is not a constant expression */
++const char *g = &quot;string&quot;;
++ccp = &amp;g + (g ? g-g : 0);
++/* HPUX 7.0 cc rejects these. */
++++ccp;
++p = (char**) ccp;
++ccp = (char const *const *) p;
++{ /* SCO 3.2v4 cc rejects this. */
++ char *t;
++ char const *s = 0 ? (char *) 0 : (char const *) 0;
++
++ *t++ = 0;
++}
++{ /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */
++ int x[] = {25, 17};
++ const int *foo = &amp;x[0];
++ ++foo;
++}
++{ /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
++ typedef const int *iptr;
++ iptr p = 0;
++ ++p;
++}
++{ /* AIX XL C 1.02.0.0 rejects this saying
++ &quot;k.c&quot;, line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
++ struct s { int j; const int *ap[3]; };
++ struct s *b; b-&gt;j = 5;
++}
++{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
++ const int foo = 10;
++}
++
++; return 0; }
++EOF
++if { (eval echo configure:1079: \&quot;$ac_compile\&quot;) 1&gt;&amp;5; (eval $ac_compile) 2&gt;&amp;5; }; then
++ rm -rf conftest*
++ ac_cv_c_const=yes
++else
++ echo &quot;configure: failed program was:&quot; &gt;&amp;5
++ cat conftest.$ac_ext &gt;&amp;5
++ rm -rf conftest*
++ ac_cv_c_const=no
++fi
++rm -f conftest*
++fi
++
++echo &quot;$ac_t&quot;&quot;$ac_cv_c_const&quot; 1&gt;&amp;6
++if test $ac_cv_c_const = no; then
++ cat &gt;&gt; confdefs.h &lt;&lt;\EOF
++#define const
++EOF
++
++fi
++
++echo $ac_n &quot;checking for pid_t&quot;&quot;... $ac_c&quot; 1&gt;&amp;6
++echo &quot;configure:1100: checking for pid_t&quot; &gt;&amp;5
++if eval &quot;test \&quot;`echo '$''{'ac_cv_type_pid_t'+set}'`\&quot; = set&quot;; then
++ echo $ac_n &quot;(cached) $ac_c&quot; 1&gt;&amp;6
++else
++ cat &gt; conftest.$ac_ext &lt;&lt;EOF
++#line 1105 &quot;configure&quot;
++#include &quot;confdefs.h&quot;
++#include &lt;sys/types.h&gt;
++#if STDC_HEADERS
++#include &lt;stdlib.h&gt;
++#include &lt;stddef.h&gt;
++#endif
++EOF
++if (eval &quot;$ac_cpp conftest.$ac_ext&quot;) 2&gt;&amp;5 |
++ egrep &quot;(^|[^a-zA-Z_0-9])pid_t[^a-zA-Z_0-9]&quot; &gt;/dev/null 2&gt;&amp;1; then
++ rm -rf conftest*
++ ac_cv_type_pid_t=yes
++else
++ rm -rf conftest*
++ ac_cv_type_pid_t=no
++fi
++rm -f conftest*
++
++fi
++echo &quot;$ac_t&quot;&quot;$ac_cv_type_pid_t&quot; 1&gt;&amp;6
++if test $ac_cv_type_pid_t = no; then
++ cat &gt;&gt; confdefs.h &lt;&lt;\EOF
++#define pid_t int
++EOF
++
++fi
++
++echo $ac_n &quot;checking whether time.h and sys/time.h may both be included&quot;&quot;... $ac_c&quot; 1&gt;&amp;6
++echo &quot;configure:1133: checking whether time.h and sys/time.h may both be included&quot; &gt;&amp;5
++if eval &quot;test \&quot;`echo '$''{'ac_cv_header_time'+set}'`\&quot; = set&quot;; then
++ echo $ac_n &quot;(cached) $ac_c&quot; 1&gt;&amp;6
++else
++ cat &gt; conftest.$ac_ext &lt;&lt;EOF
++#line 1138 &quot;configure&quot;
++#include &quot;confdefs.h&quot;
++#include &lt;sys/types.h&gt;
++#include &lt;sys/time.h&gt;
++#include &lt;time.h&gt;
++int main() {
++struct tm *tp;
++; return 0; }
++EOF
++if { (eval echo configure:1147: \&quot;$ac_compile\&quot;) 1&gt;&amp;5; (eval $ac_compile) 2&gt;&amp;5; }; then
++ rm -rf conftest*
++ ac_cv_header_time=yes
++else
++ echo &quot;configure: failed program was:&quot; &gt;&amp;5
++ cat conftest.$ac_ext &gt;&amp;5
++ rm -rf conftest*
++ ac_cv_header_time=no
++fi
++rm -f conftest*
++fi
++
++echo &quot;$ac_t&quot;&quot;$ac_cv_header_time&quot; 1&gt;&amp;6
++if test $ac_cv_header_time = yes; then
++ cat &gt;&gt; confdefs.h &lt;&lt;\EOF
++#define TIME_WITH_SYS_TIME 1
++EOF
++
++fi
++
++echo $ac_n &quot;checking whether struct tm is in sys/time.h or time.h&quot;&quot;... $ac_c&quot; 1&gt;&amp;6
++echo &quot;configure:1168: checking whether struct tm is in sys/time.h or time.h&quot; &gt;&amp;5
++if eval &quot;test \&quot;`echo '$''{'ac_cv_struct_tm'+set}'`\&quot; = set&quot;; then
++ echo $ac_n &quot;(cached) $ac_c&quot; 1&gt;&amp;6
++else
++ cat &gt; conftest.$ac_ext &lt;&lt;EOF
++#line 1173 &quot;configure&quot;
++#include &quot;confdefs.h&quot;
++#include &lt;sys/types.h&gt;
++#include &lt;time.h&gt;
++int main() {
++struct tm *tp; tp-&gt;tm_sec;
++; return 0; }
++EOF
++if { (eval echo configure:1181: \&quot;$ac_compile\&quot;) 1&gt;&amp;5; (eval $ac_compile) 2&gt;&amp;5; }; then
++ rm -rf conftest*
++ ac_cv_struct_tm=time.h
++else
++ echo &quot;configure: failed program was:&quot; &gt;&amp;5
++ cat conftest.$ac_ext &gt;&amp;5
++ rm -rf conftest*
++ ac_cv_struct_tm=sys/time.h
++fi
++rm -f conftest*
++fi
++
++echo &quot;$ac_t&quot;&quot;$ac_cv_struct_tm&quot; 1&gt;&amp;6
++if test $ac_cv_struct_tm = sys/time.h; then
++ cat &gt;&gt; confdefs.h &lt;&lt;\EOF
++#define TM_IN_SYS_TIME 1
++EOF
++
++fi
++
++
++# Extract the first word of &quot;echo&quot;, so it can be a program name with args.
++set dummy echo; ac_word=$2
++echo $ac_n &quot;checking for $ac_word&quot;&quot;... $ac_c&quot; 1&gt;&amp;6
++echo &quot;configure:1205: checking for $ac_word&quot; &gt;&amp;5
++if eval &quot;test \&quot;`echo '$''{'ac_cv_path_ECHO'+set}'`\&quot; = set&quot;; then
++ echo $ac_n &quot;(cached) $ac_c&quot; 1&gt;&amp;6
++else
++ case &quot;$ECHO&quot; in
++ /*)
++ ac_cv_path_ECHO=&quot;$ECHO&quot; # Let the user override the test with a path.
++ ;;
++ ?:/*)
++ ac_cv_path_ECHO=&quot;$ECHO&quot; # Let the user override the test with a dos path.
++ ;;
++ *)
++ IFS=&quot;${IFS= }&quot;; ac_save_ifs=&quot;$IFS&quot;; IFS=&quot;:&quot;
++ ac_dummy=&quot;/usr/ucb/bin:$PATH&quot;
++ for ac_dir in $ac_dummy; do
++ test -z &quot;$ac_dir&quot; &amp;&amp; ac_dir=.
++ if test -f $ac_dir/$ac_word; then
++ ac_cv_path_ECHO=&quot;$ac_dir/$ac_word&quot;
++ break
++ fi
++ done
++ IFS=&quot;$ac_save_ifs&quot;
++ test -z &quot;$ac_cv_path_ECHO&quot; &amp;&amp; ac_cv_path_ECHO=&quot;&quot;&quot;&quot;
++ ;;
++esac
++fi
++ECHO=&quot;$ac_cv_path_ECHO&quot;
++if test -n &quot;$ECHO&quot;; then
++ echo &quot;$ac_t&quot;&quot;$ECHO&quot; 1&gt;&amp;6
++else
++ echo &quot;$ac_t&quot;&quot;no&quot; 1&gt;&amp;6
++fi
++
++
++$ECHO -n &quot;checking for struct sockaddr_ll... &quot;
++cat &gt; conftest.$ac_ext &lt;&lt;EOF
++#line 1241 &quot;configure&quot;
++#include &quot;confdefs.h&quot;
++#include &lt;asm/types.h&gt;
++#include &lt;linux/if_packet.h&gt;
++#include &lt;linux/if_ether.h&gt;
++
++int main() {
++struct sockaddr_ll sa;
++; return 0; }
++EOF
++if { (eval echo configure:1251: \&quot;$ac_compile\&quot;) 1&gt;&amp;5; (eval $ac_compile) 2&gt;&amp;5; }; then
++ rm -rf conftest*
++ ac_cv_struct_sockaddr_ll=yes
++else
++ echo &quot;configure: failed program was:&quot; &gt;&amp;5
++ cat conftest.$ac_ext &gt;&amp;5
++ rm -rf conftest*
++ ac_cv_struct_sockaddr_ll=no
++fi
++rm -f conftest*
++$ECHO $ac_cv_struct_sockaddr_ll
++if test &quot;$ac_cv_struct_sockaddr_ll&quot; = yes ; then
++cat &gt;&gt; confdefs.h &lt;&lt;\EOF
++#define HAVE_STRUCT_SOCKADDR_LL 1
++EOF
++
++fi
++
++$ECHO -n &quot;checking for N_HDLC line discipline... &quot;
++cat &gt; conftest.$ac_ext &lt;&lt;EOF
++#line 1271 &quot;configure&quot;
++#include &quot;confdefs.h&quot;
++#include &lt;linux/termios.h&gt;
++int main() {
++int x = N_HDLC;
++; return 0; }
++EOF
++if { (eval echo configure:1278: \&quot;$ac_compile\&quot;) 1&gt;&amp;5; (eval $ac_compile) 2&gt;&amp;5; }; then
++ rm -rf conftest*
++ ac_cv_n_hdlc=yes
++else
++ echo &quot;configure: failed program was:&quot; &gt;&amp;5
++ cat conftest.$ac_ext &gt;&amp;5
++ rm -rf conftest*
++ ac_cv_n_hdlc=no
++fi
++rm -f conftest*
++$ECHO $ac_cv_n_hdlc
++if test &quot;$ac_cv_n_hdlc&quot; = yes ; then
++cat &gt;&gt; confdefs.h &lt;&lt;\EOF
++#define HAVE_N_HDLC 1
++EOF
++
++fi
++
++# Check whether --enable-plugin or --disable-plugin was given.
++if test &quot;${enable_plugin+set}&quot; = set; then
++ enableval=&quot;$enable_plugin&quot;
++ ac_cv_pluginpath=$enableval
++else
++ ac_cv_pluginpath=no
++fi
++
++
++LINUX_KERNELMODE_PLUGIN=&quot;&quot;
++PPPD_INCDIR=&quot;&quot;
++if test &quot;$ac_cv_header_linux_if_pppox_h&quot; = yes ; then
++ if test &quot;$ac_cv_pluginpath&quot; != no ; then
++ LINUX_KERNELMODE_PLUGIN=rp-pppoe.so
++ PPPD_INCDIR=$ac_cv_pluginpath
++ fi
++fi
++
++
++
++
++PPPOE_RELAY=&quot;&quot;
++if test &quot;`uname -s`&quot; = &quot;Linux&quot; ; then
++ PPPOE_RELAY=pppoe-relay
++fi
++
++
++echo $ac_n &quot;checking for 8-bit clean memcmp&quot;&quot;... $ac_c&quot; 1&gt;&amp;6
++echo &quot;configure:1324: checking for 8-bit clean memcmp&quot; &gt;&amp;5
++if eval &quot;test \&quot;`echo '$''{'ac_cv_func_memcmp_clean'+set}'`\&quot; = set&quot;; then
++ echo $ac_n &quot;(cached) $ac_c&quot; 1&gt;&amp;6
++else
++ if test &quot;$cross_compiling&quot; = yes; then
++ ac_cv_func_memcmp_clean=no
++else
++ cat &gt; conftest.$ac_ext &lt;&lt;EOF
++#line 1332 &quot;configure&quot;
++#include &quot;confdefs.h&quot;
++
++main()
++{
++ char c0 = 0x40, c1 = 0x80, c2 = 0x81;
++ exit(memcmp(&amp;c0, &amp;c2, 1) &lt; 0 &amp;&amp; memcmp(&amp;c1, &amp;c2, 1) &lt; 0 ? 0 : 1);
++}
++
++EOF
++if { (eval echo configure:1342: \&quot;$ac_link\&quot;) 1&gt;&amp;5; (eval $ac_link) 2&gt;&amp;5; } &amp;&amp; test -s conftest${ac_exeext} &amp;&amp; (./conftest; exit) 2&gt;/dev/null
++then
++ ac_cv_func_memcmp_clean=yes
++else
++ echo &quot;configure: failed program was:&quot; &gt;&amp;5
++ cat conftest.$ac_ext &gt;&amp;5
++ rm -fr conftest*
++ ac_cv_func_memcmp_clean=no
++fi
++rm -fr conftest*
++fi
++
++fi
++
++echo &quot;$ac_t&quot;&quot;$ac_cv_func_memcmp_clean&quot; 1&gt;&amp;6
++test $ac_cv_func_memcmp_clean = no &amp;&amp; LIBOBJS=&quot;$LIBOBJS memcmp.${ac_objext}&quot;
++
++echo $ac_n &quot;checking whether setvbuf arguments are reversed&quot;&quot;... $ac_c&quot; 1&gt;&amp;6
++echo &quot;configure:1360: checking whether setvbuf arguments are reversed&quot; &gt;&amp;5
++if eval &quot;test \&quot;`echo '$''{'ac_cv_func_setvbuf_reversed'+set}'`\&quot; = set&quot;; then
++ echo $ac_n &quot;(cached) $ac_c&quot; 1&gt;&amp;6
++else
++ if test &quot;$cross_compiling&quot; = yes; then
++ { echo &quot;configure: error: can not run test program while cross compiling&quot; 1&gt;&amp;2; exit 1; }
++else
++ cat &gt; conftest.$ac_ext &lt;&lt;EOF
++#line 1368 &quot;configure&quot;
++#include &quot;confdefs.h&quot;
++#include &lt;stdio.h&gt;
++/* If setvbuf has the reversed format, exit 0. */
++main () {
++ /* This call has the arguments reversed.
++ A reversed system may check and see that the address of main
++ is not _IOLBF, _IONBF, or _IOFBF, and return nonzero. */
++ if (setvbuf(stdout, _IOLBF, (char *) main, BUFSIZ) != 0)
++ exit(1);
++ putc('\r', stdout);
++ exit(0); /* Non-reversed systems segv here. */
++}
++EOF
++if { (eval echo configure:1382: \&quot;$ac_link\&quot;) 1&gt;&amp;5; (eval $ac_link) 2&gt;&amp;5; } &amp;&amp; test -s conftest${ac_exeext} &amp;&amp; (./conftest; exit) 2&gt;/dev/null
++then
++ ac_cv_func_setvbuf_reversed=yes
++else
++ echo &quot;configure: failed program was:&quot; &gt;&amp;5
++ cat conftest.$ac_ext &gt;&amp;5
++ rm -fr conftest*
++ ac_cv_func_setvbuf_reversed=no
++fi
++rm -fr conftest*
++fi
++
++rm -f core core.* *.core
++fi
++
++echo &quot;$ac_t&quot;&quot;$ac_cv_func_setvbuf_reversed&quot; 1&gt;&amp;6
++if test $ac_cv_func_setvbuf_reversed = yes; then
++ cat &gt;&gt; confdefs.h &lt;&lt;\EOF
++#define SETVBUF_REVERSED 1
++EOF
++
++fi
++
++echo $ac_n &quot;checking return type of signal handlers&quot;&quot;... $ac_c&quot; 1&gt;&amp;6
++echo &quot;configure:1406: checking return type of signal handlers&quot; &gt;&amp;5
++if eval &quot;test \&quot;`echo '$''{'ac_cv_type_signal'+set}'`\&quot; = set&quot;; then
++ echo $ac_n &quot;(cached) $ac_c&quot; 1&gt;&amp;6
++else
++ cat &gt; conftest.$ac_ext &lt;&lt;EOF
++#line 1411 &quot;configure&quot;
++#include &quot;confdefs.h&quot;
++#include &lt;sys/types.h&gt;
++#include &lt;signal.h&gt;
++#ifdef signal
++#undef signal
++#endif
++#ifdef __cplusplus
++extern &quot;C&quot; void (*signal (int, void (*)(int)))(int);
++#else
++void (*signal ()) ();
++#endif
++
++int main() {
++int i;
++; return 0; }
++EOF
++if { (eval echo configure:1428: \&quot;$ac_compile\&quot;) 1&gt;&amp;5; (eval $ac_compile) 2&gt;&amp;5; }; then
++ rm -rf conftest*
++ ac_cv_type_signal=void
++else
++ echo &quot;configure: failed program was:&quot; &gt;&amp;5
++ cat conftest.$ac_ext &gt;&amp;5
++ rm -rf conftest*
++ ac_cv_type_signal=int
++fi
++rm -f conftest*
++fi
++
++echo &quot;$ac_t&quot;&quot;$ac_cv_type_signal&quot; 1&gt;&amp;6
++cat &gt;&gt; confdefs.h &lt;&lt;EOF
++#define RETSIGTYPE $ac_cv_type_signal
++EOF
++
++
++for ac_func in select socket strerror strtol
++do
++echo $ac_n &quot;checking for $ac_func&quot;&quot;... $ac_c&quot; 1&gt;&amp;6
++echo &quot;configure:1449: checking for $ac_func&quot; &gt;&amp;5
++if eval &quot;test \&quot;`echo '$''{'ac_cv_func_$ac_func'+set}'`\&quot; = set&quot;; then
++ echo $ac_n &quot;(cached) $ac_c&quot; 1&gt;&amp;6
++else
++ cat &gt; conftest.$ac_ext &lt;&lt;EOF
++#line 1454 &quot;configure&quot;
++#include &quot;confdefs.h&quot;
++/* System header to define __stub macros and hopefully few prototypes,
++ which can conflict with char $ac_func(); below. */
++#include &lt;assert.h&gt;
++/* Override any gcc2 internal prototype to avoid an error. */
++/* We use char because int might match the return type of a gcc2
++ builtin and then its argument prototype would still apply. */
++char $ac_func();
++
++int main() {
++
++/* The GNU C library defines this for functions which it implements
++ to always fail with ENOSYS. Some functions are actually named
++ something starting with __ and the normal name is an alias. */
++#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
++choke me
++#else
++$ac_func();
++#endif
++
++; return 0; }
++EOF
++if { (eval echo configure:1477: \&quot;$ac_link\&quot;) 1&gt;&amp;5; (eval $ac_link) 2&gt;&amp;5; } &amp;&amp; test -s conftest${ac_exeext}; then
++ rm -rf conftest*
++ eval &quot;ac_cv_func_$ac_func=yes&quot;
++else
++ echo &quot;configure: failed program was:&quot; &gt;&amp;5
++ cat conftest.$ac_ext &gt;&amp;5
++ rm -rf conftest*
++ eval &quot;ac_cv_func_$ac_func=no&quot;
++fi
++rm -f conftest*
++fi
++
++if eval &quot;test \&quot;`echo '$ac_cv_func_'$ac_func`\&quot; = yes&quot;; then
++ echo &quot;$ac_t&quot;&quot;yes&quot; 1&gt;&amp;6
++ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
++ cat &gt;&gt; confdefs.h &lt;&lt;EOF
++#define $ac_tr_func 1
++EOF
++
++else
++ echo &quot;$ac_t&quot;&quot;no&quot; 1&gt;&amp;6
++fi
++done
++
++ac_aux_dir=
++for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
++ if test -f $ac_dir/install-sh; then
++ ac_aux_dir=$ac_dir
++ ac_install_sh=&quot;$ac_aux_dir/install-sh -c&quot;
++ break
++ elif test -f $ac_dir/install.sh; then
++ ac_aux_dir=$ac_dir
++ ac_install_sh=&quot;$ac_aux_dir/install.sh -c&quot;
++ break
++ fi
++done
++if test -z &quot;$ac_aux_dir&quot;; then
++ { echo &quot;configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../..&quot; 1&gt;&amp;2; exit 1; }
++fi
++ac_config_guess=$ac_aux_dir/config.guess
++ac_config_sub=$ac_aux_dir/config.sub
++ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
++
++# Find a good install program. We prefer a C program (faster),
++# so one script is as good as another. But avoid the broken or
++# incompatible versions:
++# SysV /etc/install, /usr/sbin/install
++# SunOS /usr/etc/install
++# IRIX /sbin/install
++# AIX /bin/install
++# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
++# AFS /usr/afsws/bin/install, which mishandles nonexistent args
++# SVR4 /usr/ucb/install, which tries to use the nonexistent group &quot;staff&quot;
++# ./install, which can be erroneously created by make from ./install.sh.
++echo $ac_n &quot;checking for a BSD compatible install&quot;&quot;... $ac_c&quot; 1&gt;&amp;6
++echo &quot;configure:1532: checking for a BSD compatible install&quot; &gt;&amp;5
++if test -z &quot;$INSTALL&quot;; then
++if eval &quot;test \&quot;`echo '$''{'ac_cv_path_install'+set}'`\&quot; = set&quot;; then
++ echo $ac_n &quot;(cached) $ac_c&quot; 1&gt;&amp;6
++else
++ IFS=&quot;${IFS= }&quot;; ac_save_IFS=&quot;$IFS&quot;; IFS=&quot;:&quot;
++ for ac_dir in $PATH; do
++ # Account for people who put trailing slashes in PATH elements.
++ case &quot;$ac_dir/&quot; in
++ /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
++ *)
++ # OSF1 and SCO ODT 3.0 have their own names for install.
++ # Don't use installbsd from OSF since it installs stuff as root
++ # by default.
++ for ac_prog in ginstall scoinst install; do
++ if test -f $ac_dir/$ac_prog; then
++ if test $ac_prog = install &amp;&amp;
++ grep dspmsg $ac_dir/$ac_prog &gt;/dev/null 2&gt;&amp;1; then
++ # AIX install. It has an incompatible calling convention.
++ :
++ else
++ ac_cv_path_install=&quot;$ac_dir/$ac_prog -c&quot;
++ break 2
++ fi
++ fi
++ done
++ ;;
++ esac
++ done
++ IFS=&quot;$ac_save_IFS&quot;
++
++fi
++ if test &quot;${ac_cv_path_install+set}&quot; = set; then
++ INSTALL=&quot;$ac_cv_path_install&quot;
++ else
++ # As a last resort, use the slow shell script. We don't cache a
++ # path for INSTALL within a source directory, because that will
++ # break other packages using the cache if that directory is
++ # removed, or if the path is relative.
++ INSTALL=&quot;$ac_install_sh&quot;
++ fi
++fi
++echo &quot;$ac_t&quot;&quot;$INSTALL&quot; 1&gt;&amp;6
++
++# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
++# It thinks the first close brace ends the variable substitution.
++test -z &quot;$INSTALL_PROGRAM&quot; &amp;&amp; INSTALL_PROGRAM='${INSTALL}'
++
++test -z &quot;$INSTALL_SCRIPT&quot; &amp;&amp; INSTALL_SCRIPT='${INSTALL_PROGRAM}'
++
++test -z &quot;$INSTALL_DATA&quot; &amp;&amp; INSTALL_DATA='${INSTALL} -m 644'
++
++
++echo $ac_n &quot;checking size of unsigned short&quot;&quot;... $ac_c&quot; 1&gt;&amp;6
++echo &quot;configure:1586: checking size of unsigned short&quot; &gt;&amp;5
++if eval &quot;test \&quot;`echo '$''{'ac_cv_sizeof_unsigned_short'+set}'`\&quot; = set&quot;; then
++ echo $ac_n &quot;(cached) $ac_c&quot; 1&gt;&amp;6
++else
++ if test &quot;$cross_compiling&quot; = yes; then
++ { echo &quot;configure: error: can not run test program while cross compiling&quot; 1&gt;&amp;2; exit 1; }
++else
++ cat &gt; conftest.$ac_ext &lt;&lt;EOF
++#line 1594 &quot;configure&quot;
++#include &quot;confdefs.h&quot;
++#include &lt;stdio.h&gt;
++main()
++{
++ FILE *f=fopen(&quot;conftestval&quot;, &quot;w&quot;);
++ if (!f) exit(1);
++ fprintf(f, &quot;%d\n&quot;, sizeof(unsigned short));
++ exit(0);
++}
++EOF
++if { (eval echo configure:1605: \&quot;$ac_link\&quot;) 1&gt;&amp;5; (eval $ac_link) 2&gt;&amp;5; } &amp;&amp; test -s conftest${ac_exeext} &amp;&amp; (./conftest; exit) 2&gt;/dev/null
++then
++ ac_cv_sizeof_unsigned_short=`cat conftestval`
++else
++ echo &quot;configure: failed program was:&quot; &gt;&amp;5
++ cat conftest.$ac_ext &gt;&amp;5
++ rm -fr conftest*
++ ac_cv_sizeof_unsigned_short=0
++fi
++rm -fr conftest*
++fi
++
++fi
++echo &quot;$ac_t&quot;&quot;$ac_cv_sizeof_unsigned_short&quot; 1&gt;&amp;6
++cat &gt;&gt; confdefs.h &lt;&lt;EOF
++#define SIZEOF_UNSIGNED_SHORT $ac_cv_sizeof_unsigned_short
++EOF
++
++
++echo $ac_n &quot;checking size of unsigned int&quot;&quot;... $ac_c&quot; 1&gt;&amp;6
++echo &quot;configure:1625: checking size of unsigned int&quot; &gt;&amp;5
++if eval &quot;test \&quot;`echo '$''{'ac_cv_sizeof_unsigned_int'+set}'`\&quot; = set&quot;; then
++ echo $ac_n &quot;(cached) $ac_c&quot; 1&gt;&amp;6
++else
++ if test &quot;$cross_compiling&quot; = yes; then
++ { echo &quot;configure: error: can not run test program while cross compiling&quot; 1&gt;&amp;2; exit 1; }
++else
++ cat &gt; conftest.$ac_ext &lt;&lt;EOF
++#line 1633 &quot;configure&quot;
++#include &quot;confdefs.h&quot;
++#include &lt;stdio.h&gt;
++main()
++{
++ FILE *f=fopen(&quot;conftestval&quot;, &quot;w&quot;);
++ if (!f) exit(1);
++ fprintf(f, &quot;%d\n&quot;, sizeof(unsigned int));
++ exit(0);
++}
++EOF
++if { (eval echo configure:1644: \&quot;$ac_link\&quot;) 1&gt;&amp;5; (eval $ac_link) 2&gt;&amp;5; } &amp;&amp; test -s conftest${ac_exeext} &amp;&amp; (./conftest; exit) 2&gt;/dev/null
++then
++ ac_cv_sizeof_unsigned_int=`cat conftestval`
++else
++ echo &quot;configure: failed program was:&quot; &gt;&amp;5
++ cat conftest.$ac_ext &gt;&amp;5
++ rm -fr conftest*
++ ac_cv_sizeof_unsigned_int=0
++fi
++rm -fr conftest*
++fi
++
++fi
++echo &quot;$ac_t&quot;&quot;$ac_cv_sizeof_unsigned_int&quot; 1&gt;&amp;6
++cat &gt;&gt; confdefs.h &lt;&lt;EOF
++#define SIZEOF_UNSIGNED_INT $ac_cv_sizeof_unsigned_int
++EOF
++
++
++echo $ac_n &quot;checking size of unsigned long&quot;&quot;... $ac_c&quot; 1&gt;&amp;6
++echo &quot;configure:1664: checking size of unsigned long&quot; &gt;&amp;5
++if eval &quot;test \&quot;`echo '$''{'ac_cv_sizeof_unsigned_long'+set}'`\&quot; = set&quot;; then
++ echo $ac_n &quot;(cached) $ac_c&quot; 1&gt;&amp;6
++else
++ if test &quot;$cross_compiling&quot; = yes; then
++ { echo &quot;configure: error: can not run test program while cross compiling&quot; 1&gt;&amp;2; exit 1; }
++else
++ cat &gt; conftest.$ac_ext &lt;&lt;EOF
++#line 1672 &quot;configure&quot;
++#include &quot;confdefs.h&quot;
++#include &lt;stdio.h&gt;
++main()
++{
++ FILE *f=fopen(&quot;conftestval&quot;, &quot;w&quot;);
++ if (!f) exit(1);
++ fprintf(f, &quot;%d\n&quot;, sizeof(unsigned long));
++ exit(0);
++}
++EOF
++if { (eval echo configure:1683: \&quot;$ac_link\&quot;) 1&gt;&amp;5; (eval $ac_link) 2&gt;&amp;5; } &amp;&amp; test -s conftest${ac_exeext} &amp;&amp; (./conftest; exit) 2&gt;/dev/null
++then
++ ac_cv_sizeof_unsigned_long=`cat conftestval`
++else
++ echo &quot;configure: failed program was:&quot; &gt;&amp;5
++ cat conftest.$ac_ext &gt;&amp;5
++ rm -fr conftest*
++ ac_cv_sizeof_unsigned_long=0
++fi
++rm -fr conftest*
++fi
++
++fi
++echo &quot;$ac_t&quot;&quot;$ac_cv_sizeof_unsigned_long&quot; 1&gt;&amp;6
++cat &gt;&gt; confdefs.h &lt;&lt;EOF
++#define SIZEOF_UNSIGNED_LONG $ac_cv_sizeof_unsigned_long
++EOF
++
++
++
++# Extract the first word of &quot;pppd&quot;, so it can be a program name with args.
++set dummy pppd; ac_word=$2
++echo $ac_n &quot;checking for $ac_word&quot;&quot;... $ac_c&quot; 1&gt;&amp;6
++echo &quot;configure:1706: checking for $ac_word&quot; &gt;&amp;5
++if eval &quot;test \&quot;`echo '$''{'ac_cv_path_PPPD'+set}'`\&quot; = set&quot;; then
++ echo $ac_n &quot;(cached) $ac_c&quot; 1&gt;&amp;6
++else
++ case &quot;$PPPD&quot; in
++ /*)
++ ac_cv_path_PPPD=&quot;$PPPD&quot; # Let the user override the test with a path.
++ ;;
++ ?:/*)
++ ac_cv_path_PPPD=&quot;$PPPD&quot; # Let the user override the test with a dos path.
++ ;;
++ *)
++ IFS=&quot;${IFS= }&quot;; ac_save_ifs=&quot;$IFS&quot;; IFS=&quot;:&quot;
++ ac_dummy=&quot;$PATH:/sbin:/usr/sbin:/usr/local/sbin&quot;
++ for ac_dir in $ac_dummy; do
++ test -z &quot;$ac_dir&quot; &amp;&amp; ac_dir=.
++ if test -f $ac_dir/$ac_word; then
++ ac_cv_path_PPPD=&quot;$ac_dir/$ac_word&quot;
++ break
++ fi
++ done
++ IFS=&quot;$ac_save_ifs&quot;
++ test -z &quot;$ac_cv_path_PPPD&quot; &amp;&amp; ac_cv_path_PPPD=&quot;NOTFOUND&quot;
++ ;;
++esac
++fi
++PPPD=&quot;$ac_cv_path_PPPD&quot;
++if test -n &quot;$PPPD&quot;; then
++ echo &quot;$ac_t&quot;&quot;$PPPD&quot; 1&gt;&amp;6
++else
++ echo &quot;$ac_t&quot;&quot;no&quot; 1&gt;&amp;6
++fi
++
++
++# Extract the first word of &quot;setsid&quot;, so it can be a program name with args.
++set dummy setsid; ac_word=$2
++echo $ac_n &quot;checking for $ac_word&quot;&quot;... $ac_c&quot; 1&gt;&amp;6
++echo &quot;configure:1743: checking for $ac_word&quot; &gt;&amp;5
++if eval &quot;test \&quot;`echo '$''{'ac_cv_path_SETSID'+set}'`\&quot; = set&quot;; then
++ echo $ac_n &quot;(cached) $ac_c&quot; 1&gt;&amp;6
++else
++ case &quot;$SETSID&quot; in
++ /*)
++ ac_cv_path_SETSID=&quot;$SETSID&quot; # Let the user override the test with a path.
++ ;;
++ ?:/*)
++ ac_cv_path_SETSID=&quot;$SETSID&quot; # Let the user override the test with a dos path.
++ ;;
++ *)
++ IFS=&quot;${IFS= }&quot;; ac_save_ifs=&quot;$IFS&quot;; IFS=&quot;:&quot;
++ ac_dummy=&quot;$PATH:/sbin:/usr/sbin:/usr/local/sbin&quot;
++ for ac_dir in $ac_dummy; do
++ test -z &quot;$ac_dir&quot; &amp;&amp; ac_dir=.
++ if test -f $ac_dir/$ac_word; then
++ ac_cv_path_SETSID=&quot;$ac_dir/$ac_word&quot;
++ break
++ fi
++ done
++ IFS=&quot;$ac_save_ifs&quot;
++ test -z &quot;$ac_cv_path_SETSID&quot; &amp;&amp; ac_cv_path_SETSID=&quot;&quot;&quot;&quot;
++ ;;
++esac
++fi
++SETSID=&quot;$ac_cv_path_SETSID&quot;
++if test -n &quot;$SETSID&quot;; then
++ echo &quot;$ac_t&quot;&quot;$SETSID&quot; 1&gt;&amp;6
++else
++ echo &quot;$ac_t&quot;&quot;no&quot; 1&gt;&amp;6
++fi
++
++
++# Extract the first word of &quot;id&quot;, so it can be a program name with args.
++set dummy id; ac_word=$2
++echo $ac_n &quot;checking for $ac_word&quot;&quot;... $ac_c&quot; 1&gt;&amp;6
++echo &quot;configure:1780: checking for $ac_word&quot; &gt;&amp;5
++if eval &quot;test \&quot;`echo '$''{'ac_cv_path_ID'+set}'`\&quot; = set&quot;; then
++ echo $ac_n &quot;(cached) $ac_c&quot; 1&gt;&amp;6
++else
++ case &quot;$ID&quot; in
++ /*)
++ ac_cv_path_ID=&quot;$ID&quot; # Let the user override the test with a path.
++ ;;
++ ?:/*)
++ ac_cv_path_ID=&quot;$ID&quot; # Let the user override the test with a dos path.
++ ;;
++ *)
++ IFS=&quot;${IFS= }&quot;; ac_save_ifs=&quot;$IFS&quot;; IFS=&quot;:&quot;
++ ac_dummy=&quot;/usr/xpg4/bin:$PATH&quot;
++ for ac_dir in $ac_dummy; do
++ test -z &quot;$ac_dir&quot; &amp;&amp; ac_dir=.
++ if test -f $ac_dir/$ac_word; then
++ ac_cv_path_ID=&quot;$ac_dir/$ac_word&quot;
++ break
++ fi
++ done
++ IFS=&quot;$ac_save_ifs&quot;
++ test -z &quot;$ac_cv_path_ID&quot; &amp;&amp; ac_cv_path_ID=&quot;&quot;&quot;&quot;
++ ;;
++esac
++fi
++ID=&quot;$ac_cv_path_ID&quot;
++if test -n &quot;$ID&quot;; then
++ echo &quot;$ac_t&quot;&quot;$ID&quot; 1&gt;&amp;6
++else
++ echo &quot;$ac_t&quot;&quot;no&quot; 1&gt;&amp;6
++fi
++
++
++$ECHO -n &quot;checking for Linux 2.4.X kernel-mode PPPoE support...&quot;
++if test &quot;`uname -s`&quot; = &quot;Linux&quot; ; then
++if test &quot;$cross_compiling&quot; = yes; then
++ { echo &quot;configure: error: can not run test program while cross compiling&quot; 1&gt;&amp;2; exit 1; }
++else
++ cat &gt; conftest.$ac_ext &lt;&lt;EOF
++#line 1820 &quot;configure&quot;
++#include &quot;confdefs.h&quot;
++#include &lt;sys/socket.h&gt;
++#include &lt;net/ethernet.h&gt;
++#include &lt;linux/if.h&gt;
++#include &lt;linux/if_pppox.h&gt;
++int main()
++{
++ if (socket(AF_PPPOX, SOCK_DGRAM, PX_PROTO_OE) &gt;= 0) return 0; else return 1;
++}
++
++EOF
++if { (eval echo configure:1832: \&quot;$ac_link\&quot;) 1&gt;&amp;5; (eval $ac_link) 2&gt;&amp;5; } &amp;&amp; test -s conftest${ac_exeext} &amp;&amp; (./conftest; exit) 2&gt;/dev/null
++then
++ ac_cv_linux_kernel_pppoe=yes
++else
++ echo &quot;configure: failed program was:&quot; &gt;&amp;5
++ cat conftest.$ac_ext &gt;&amp;5
++ rm -fr conftest*
++ ac_cv_linux_kernel_pppoe=no
++fi
++rm -fr conftest*
++fi
++
++else
++ ac_cv_linux_kernel_pppoe=no
++fi
++
++$ECHO $ac_cv_linux_kernel_pppoe
++if test &quot;$ac_cv_linux_kernel_pppoe&quot; = yes ; then
++ cat &gt;&gt; confdefs.h &lt;&lt;\EOF
++#define HAVE_LINUX_KERNEL_PPPOE 1
++EOF
++
++fi
++
++if test &quot;$GCC&quot; = yes; then
++ CFLAGS=&quot;$CFLAGS -Wall -Wstrict-prototypes -ansi -pedantic&quot;
++fi
++
++if test &quot;$PPPD&quot; = &quot;NOTFOUND&quot;; then
++ $ECHO &quot;&quot;
++ $ECHO &quot;*** Oops! I couldn't find pppd, the PPP daemon anywhere.&quot;
++ $ECHO &quot;*** You must install pppd, version 2.3.10 or later.&quot;
++ $ECHO &quot;*** I will keep going, but it may not work.&quot;
++ $ECHO &quot;&quot;
++fi
++
++
++PPPD_VERSION=`$PPPD --version 2&gt;&amp;1 | awk '{print $NF}'`
++
++case &quot;$PPPD_VERSION&quot; in
++1.*|2.0.*|2.1.*|2.2.*|2.3.0|2.3.1|2.3.2|2.3.3|2.3.4|2.3.5|2.3.6)
++ $ECHO &quot;&quot;
++ $ECHO &quot;*** Oops! Your version of pppd is $PPPD_VERSION, which is too old.&quot;
++ $ECHO &quot;*** You need at least 2.3.7 (2.3.10 or newer recommended.)&quot;
++ $ECHO &quot;*** I will keep going, but it may not work.&quot;
++ $ECHO &quot;&quot;
++ ;;
++
++2.3.7|2.3.8|2.3.9)
++ $ECHO &quot;&quot;
++ $ECHO &quot;*** Warning. Your version of pppd is $PPPD_VERSION. You will&quot;
++ $ECHO &quot;*** not be able to use connect-on-demand. Upgrade to pppd&quot;
++ $ECHO &quot;*** 2.3.10 or newer if you need connect-on-demand.&quot;
++ $ECHO &quot;&quot;
++ ;;
++
++2*|3*|4*|5*|6*|7*|8*|9*)
++ ;;
++
++*)
++ $ECHO &quot;&quot;
++ $ECHO &quot;*** Oops. I cannot figure out what version of pppd you have.&quot;
++ $ECHO &quot;*** All I got back was '$PPPD_VERSION'&quot;
++ $ECHO &quot;*** I will keep going, but it may not work.&quot;
++ $ECHO &quot;&quot;
++ ;;
++esac
++
++$ECHO -n &quot;checking packing order of bit fields... &quot;
++if test &quot;$cross_compiling&quot; = yes; then
++ { echo &quot;configure: error: can not run test program while cross compiling&quot; 1&gt;&amp;2; exit 1; }
++else
++ cat &gt; conftest.$ac_ext &lt;&lt;EOF
++#line 1905 &quot;configure&quot;
++#include &quot;confdefs.h&quot;
++
++union foo {
++ struct bar {
++ unsigned int ver:4;
++ unsigned int type:4;
++ } bb;
++ unsigned char baz;
++};
++
++int
++main(void)
++{
++ union foo x;
++ x.bb.ver = 1;
++ x.bb.type = 2;
++ if (x.baz == 0x21) {
++ return 1;
++ } else if (x.baz == 0x12) {
++ return 0;
++ } else {
++ return 2;
++ }
++}
++EOF
++if { (eval echo configure:1931: \&quot;$ac_link\&quot;) 1&gt;&amp;5; (eval $ac_link) 2&gt;&amp;5; } &amp;&amp; test -s conftest${ac_exeext} &amp;&amp; (./conftest; exit) 2&gt;/dev/null
++then
++ PACK=normal
++else
++ echo &quot;configure: failed program was:&quot; &gt;&amp;5
++ cat conftest.$ac_ext &gt;&amp;5
++ rm -fr conftest*
++ PACK=rev
++fi
++rm -fr conftest*
++fi
++
++
++if test &quot;$PACK&quot; = &quot;rev&quot; ; then
++ $ECHO &quot;reversed&quot;
++ cat &gt;&gt; confdefs.h &lt;&lt;\EOF
++#define PACK_BITFIELDS_REVERSED 1
++EOF
++
++else
++ $ECHO &quot;normal&quot;
++fi
++
++# Sigh... got to fix this up for tcl
++test &quot;x$prefix&quot; = xNONE &amp;&amp; prefix=$ac_default_prefix
++# Let make expand exec_prefix.
++test &quot;x$exec_prefix&quot; = xNONE &amp;&amp; exec_prefix='${prefix}'
++
++# Fully resolve WRAPPER for Tcl script.
++WRAPPER=${sbindir}/pppoe-wrapper
++eval &quot;WRAPPER=${WRAPPER}&quot;
++eval &quot;WRAPPER=${WRAPPER}&quot;
++
++
++# Determine what targets to build
++TARGETS=&quot;pppoe pppoe-server&quot;
++
++# pppoe-sniff is built only on Linux and Solaris
++if test &quot;$ac_cv_header_linux_if_packet_h&quot; = &quot;yes&quot; -o &quot;$ac_cv_header_sys_dlpi_h&quot; = &quot;yes&quot; ; then
++ TARGETS=&quot;$TARGETS pppoe-sniff&quot;
++fi
++
++# pppoe-relay is built only on Linux
++if test &quot;$ac_cv_header_linux_if_packet_h&quot; = &quot;yes&quot; ; then
++ TARGETS=&quot;$TARGETS pppoe-relay&quot;
++fi
++
++# plugin is built only if we have kernel support
++if test -n &quot;$LINUX_KERNELMODE_PLUGIN&quot; ; then
++ TARGETS=&quot;$TARGETS $LINUX_KERNELMODE_PLUGIN&quot;
++fi
++
++
++
++trap '' 1 2 15
++cat &gt; confcache &lt;&lt;\EOF
++# This file is a shell script that caches the results of configure
++# tests run on this system so they can be shared between configure
++# scripts and configure runs. It is not useful on other systems.
++# If it contains results you don't want to keep, you may remove or edit it.
++#
++# By default, configure uses ./config.cache as the cache file,
++# creating it if it does not exist already. You can give configure
++# the --cache-file=FILE option to use a different cache file; that is
++# what configure does when it calls configure scripts in
++# subdirectories, so they share the cache.
++# Giving --cache-file=/dev/null disables caching, for debugging configure.
++# config.status only pays attention to the cache file if you give it the
++# --recheck option to rerun configure.
++#
++EOF
++# The following way of writing the cache mishandles newlines in values,
++# but we know of no workaround that is simple, portable, and efficient.
++# So, don't put newlines in cache variables' values.
++# Ultrix sh set writes to stderr and can't be redirected directly,
++# and sets the high bit in the cache file unless we assign to the vars.
++(set) 2&gt;&amp;1 |
++ case `(ac_space=' '; set | grep ac_space) 2&gt;&amp;1` in
++ *ac_space=\ *)
++ # `set' does not quote correctly, so add quotes (double-quote substitution
++ # turns \\\\ into \\, and sed turns \\ into \).
++ sed -n \
++ -e &quot;s/'/'\\\\''/g&quot; \
++ -e &quot;s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p&quot;
++ ;;
++ *)
++ # `set' quotes correctly as required by POSIX, so do not add quotes.
++ sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
++ ;;
++ esac &gt;&gt; confcache
++if cmp -s $cache_file confcache; then
++ :
++else
++ if test -w $cache_file; then
++ echo &quot;updating cache $cache_file&quot;
++ cat confcache &gt; $cache_file
++ else
++ echo &quot;not updating unwritable cache $cache_file&quot;
++ fi
++fi
++rm -f confcache
++
++trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
++
++test &quot;x$prefix&quot; = xNONE &amp;&amp; prefix=$ac_default_prefix
++# Let make expand exec_prefix.
++test &quot;x$exec_prefix&quot; = xNONE &amp;&amp; exec_prefix='${prefix}'
++
++# Any assignment to VPATH causes Sun make to only execute
++# the first set of double-colon rules, so remove it if not needed.
++# If there is a colon in the path, we need to keep it.
++if test &quot;x$srcdir&quot; = x.; then
++ ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d'
++fi
++
++trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
++
++DEFS=-DHAVE_CONFIG_H
++
++# Without the &quot;./&quot;, some shells look in PATH for config.status.
++: ${CONFIG_STATUS=./config.status}
++
++echo creating $CONFIG_STATUS
++rm -f $CONFIG_STATUS
++cat &gt; $CONFIG_STATUS &lt;&lt;EOF
++#! /bin/sh
++# Generated automatically by configure.
++# Run this file to recreate the current configuration.
++# This directory was configured as follows,
++# on host `(hostname || uname -n) 2&gt;/dev/null | sed 1q`:
++#
++# $0 $ac_configure_args
++#
++# Compiler output produced by configure, useful for debugging
++# configure, is in ./config.log if it exists.
++
++ac_cs_usage=&quot;Usage: $CONFIG_STATUS [--recheck] [--version] [--help]&quot;
++for ac_option
++do
++ case &quot;\$ac_option&quot; in
++ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
++ echo &quot;running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion&quot;
++ exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
++ -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
++ echo &quot;$CONFIG_STATUS generated by autoconf version 2.13&quot;
++ exit 0 ;;
++ -help | --help | --hel | --he | --h)
++ echo &quot;\$ac_cs_usage&quot;; exit 0 ;;
++ *) echo &quot;\$ac_cs_usage&quot;; exit 1 ;;
++ esac
++done
++
++ac_given_srcdir=$srcdir
++ac_given_INSTALL=&quot;$INSTALL&quot;
++
++trap 'rm -fr `echo &quot;Makefile ../scripts/adsl-connect ../scripts/adsl-start ../scripts/adsl-stop ../scripts/adsl-init ../scripts/adsl-init-suse ../scripts/adsl-init-turbolinux ../scripts/adsl-setup ../gui/Makefile ../gui/tkpppoe config.h&quot; | sed &quot;s/:[^ ]*//g&quot;` conftest*; exit 1' 1 2 15
++EOF
++cat &gt;&gt; $CONFIG_STATUS &lt;&lt;EOF
++
++# Protect against being on the right side of a sed subst in config.status.
++sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&amp;%]/\\\\&amp;/g;
++ s/@@/%@/; s/@@/@%/; s/@g\$/%g/' &gt; conftest.subs &lt;&lt;\\CEOF
++$ac_vpsub
++$extrasub
++s%@SHELL@%$SHELL%g
++s%@CFLAGS@%$CFLAGS%g
++s%@CPPFLAGS@%$CPPFLAGS%g
++s%@CXXFLAGS@%$CXXFLAGS%g
++s%@FFLAGS@%$FFLAGS%g
++s%@DEFS@%$DEFS%g
++s%@LDFLAGS@%$LDFLAGS%g
++s%@LIBS@%$LIBS%g
++s%@exec_prefix@%$exec_prefix%g
++s%@prefix@%$prefix%g
++s%@program_transform_name@%$program_transform_name%g
++s%@bindir@%$bindir%g
++s%@sbindir@%$sbindir%g
++s%@libexecdir@%$libexecdir%g
++s%@datadir@%$datadir%g
++s%@sysconfdir@%$sysconfdir%g
++s%@sharedstatedir@%$sharedstatedir%g
++s%@localstatedir@%$localstatedir%g
++s%@libdir@%$libdir%g
++s%@includedir@%$includedir%g
++s%@oldincludedir@%$oldincludedir%g
++s%@infodir@%$infodir%g
++s%@mandir@%$mandir%g
++s%@CC@%$CC%g
++s%@CPP@%$CPP%g
++s%@ECHO@%$ECHO%g
++s%@LINUX_KERNELMODE_PLUGIN@%$LINUX_KERNELMODE_PLUGIN%g
++s%@PPPD_INCDIR@%$PPPD_INCDIR%g
++s%@PPPOE_RELAY@%$PPPOE_RELAY%g
++s%@LIBOBJS@%$LIBOBJS%g
++s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
++s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g
++s%@INSTALL_DATA@%$INSTALL_DATA%g
++s%@PPPD@%$PPPD%g
++s%@SETSID@%$SETSID%g
++s%@ID@%$ID%g
++s%@WRAPPER@%$WRAPPER%g
++s%@TARGETS@%$TARGETS%g
++
++CEOF
++EOF
++
++cat &gt;&gt; $CONFIG_STATUS &lt;&lt;\EOF
++
++# Split the substitutions into bite-sized pieces for seds with
++# small command number limits, like on Digital OSF/1 and HP-UX.
++ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
++ac_file=1 # Number of current file.
++ac_beg=1 # First line for current file.
++ac_end=$ac_max_sed_cmds # Line after last line for current file.
++ac_more_lines=:
++ac_sed_cmds=&quot;&quot;
++while $ac_more_lines; do
++ if test $ac_beg -gt 1; then
++ sed &quot;1,${ac_beg}d; ${ac_end}q&quot; conftest.subs &gt; conftest.s$ac_file
++ else
++ sed &quot;${ac_end}q&quot; conftest.subs &gt; conftest.s$ac_file
++ fi
++ if test ! -s conftest.s$ac_file; then
++ ac_more_lines=false
++ rm -f conftest.s$ac_file
++ else
++ if test -z &quot;$ac_sed_cmds&quot;; then
++ ac_sed_cmds=&quot;sed -f conftest.s$ac_file&quot;
++ else
++ ac_sed_cmds=&quot;$ac_sed_cmds | sed -f conftest.s$ac_file&quot;
++ fi
++ ac_file=`expr $ac_file + 1`
++ ac_beg=$ac_end
++ ac_end=`expr $ac_end + $ac_max_sed_cmds`
++ fi
++done
++if test -z &quot;$ac_sed_cmds&quot;; then
++ ac_sed_cmds=cat
++fi
++EOF
++
++cat &gt;&gt; $CONFIG_STATUS &lt;&lt;EOF
++
++CONFIG_FILES=\${CONFIG_FILES-&quot;Makefile ../scripts/adsl-connect ../scripts/adsl-start ../scripts/adsl-stop ../scripts/adsl-init ../scripts/adsl-init-suse ../scripts/adsl-init-turbolinux ../scripts/adsl-setup ../gui/Makefile ../gui/tkpppoe&quot;}
++EOF
++cat &gt;&gt; $CONFIG_STATUS &lt;&lt;\EOF
++for ac_file in .. $CONFIG_FILES; do if test &quot;x$ac_file&quot; != x..; then
++ # Support &quot;outfile[:infile[:infile...]]&quot;, defaulting infile=&quot;outfile.in&quot;.
++ case &quot;$ac_file&quot; in
++ *:*) ac_file_in=`echo &quot;$ac_file&quot;|sed 's%[^:]*:%%'`
++ ac_file=`echo &quot;$ac_file&quot;|sed 's%:.*%%'` ;;
++ *) ac_file_in=&quot;${ac_file}.in&quot; ;;
++ esac
++
++ # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
++
++ # Remove last slash and all that follows it. Not all systems have dirname.
++ ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
++ if test &quot;$ac_dir&quot; != &quot;$ac_file&quot; &amp;&amp; test &quot;$ac_dir&quot; != .; then
++ # The file is in a subdirectory.
++ test ! -d &quot;$ac_dir&quot; &amp;&amp; mkdir &quot;$ac_dir&quot;
++ ac_dir_suffix=&quot;/`echo $ac_dir|sed 's%^\./%%'`&quot;
++ # A &quot;../&quot; for each directory in $ac_dir_suffix.
++ ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
++ else
++ ac_dir_suffix= ac_dots=
++ fi
++
++ case &quot;$ac_given_srcdir&quot; in
++ .) srcdir=.
++ if test -z &quot;$ac_dots&quot;; then top_srcdir=.
++ else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
++ /*) srcdir=&quot;$ac_given_srcdir$ac_dir_suffix&quot;; top_srcdir=&quot;$ac_given_srcdir&quot; ;;
++ *) # Relative path.
++ srcdir=&quot;$ac_dots$ac_given_srcdir$ac_dir_suffix&quot;
++ top_srcdir=&quot;$ac_dots$ac_given_srcdir&quot; ;;
++ esac
++
++ case &quot;$ac_given_INSTALL&quot; in
++ [/$]*) INSTALL=&quot;$ac_given_INSTALL&quot; ;;
++ *) INSTALL=&quot;$ac_dots$ac_given_INSTALL&quot; ;;
++ esac
++
++ echo creating &quot;$ac_file&quot;
++ rm -f &quot;$ac_file&quot;
++ configure_input=&quot;Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure.&quot;
++ case &quot;$ac_file&quot; in
++ *Makefile*) ac_comsub=&quot;1i\\
++# $configure_input&quot; ;;
++ *) ac_comsub= ;;
++ esac
++
++ ac_file_inputs=`echo $ac_file_in|sed -e &quot;s%^%$ac_given_srcdir/%&quot; -e &quot;s%:% $ac_given_srcdir/%g&quot;`
++ sed -e &quot;$ac_comsub
++s%@configure_input@%$configure_input%g
++s%@srcdir@%$srcdir%g
++s%@top_srcdir@%$top_srcdir%g
++s%@INSTALL@%$INSTALL%g
++&quot; $ac_file_inputs | (eval &quot;$ac_sed_cmds&quot;) &gt; $ac_file
++fi; done
++rm -f conftest.s*
++
++# These sed commands are passed to sed as &quot;A NAME B NAME C VALUE D&quot;, where
++# NAME is the cpp macro being defined and VALUE is the value it is being given.
++#
++# ac_d sets the value in &quot;#define NAME VALUE&quot; lines.
++ac_dA='s%^\([ ]*\)#\([ ]*define[ ][ ]*\)'
++ac_dB='\([ ][ ]*\)[^ ]*%\1#\2'
++ac_dC='\3'
++ac_dD='%g'
++# ac_u turns &quot;#undef NAME&quot; with trailing blanks into &quot;#define NAME VALUE&quot;.
++ac_uA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
++ac_uB='\([ ]\)%\1#\2define\3'
++ac_uC=' '
++ac_uD='\4%g'
++# ac_e turns &quot;#undef NAME&quot; without trailing blanks into &quot;#define NAME VALUE&quot;.
++ac_eA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
++ac_eB='$%\1#\2define\3'
++ac_eC=' '
++ac_eD='%g'
++
++if test &quot;${CONFIG_HEADERS+set}&quot; != set; then
++EOF
++cat &gt;&gt; $CONFIG_STATUS &lt;&lt;EOF
++ CONFIG_HEADERS=&quot;config.h&quot;
++EOF
++cat &gt;&gt; $CONFIG_STATUS &lt;&lt;\EOF
++fi
++for ac_file in .. $CONFIG_HEADERS; do if test &quot;x$ac_file&quot; != x..; then
++ # Support &quot;outfile[:infile[:infile...]]&quot;, defaulting infile=&quot;outfile.in&quot;.
++ case &quot;$ac_file&quot; in
++ *:*) ac_file_in=`echo &quot;$ac_file&quot;|sed 's%[^:]*:%%'`
++ ac_file=`echo &quot;$ac_file&quot;|sed 's%:.*%%'` ;;
++ *) ac_file_in=&quot;${ac_file}.in&quot; ;;
++ esac
++
++ echo creating $ac_file
++
++ rm -f conftest.frag conftest.in conftest.out
++ ac_file_inputs=`echo $ac_file_in|sed -e &quot;s%^%$ac_given_srcdir/%&quot; -e &quot;s%:% $ac_given_srcdir/%g&quot;`
++ cat $ac_file_inputs &gt; conftest.in
++
++EOF
++
++# Transform confdefs.h into a sed script conftest.vals that substitutes
++# the proper values into config.h.in to produce config.h. And first:
++# Protect against being on the right side of a sed subst in config.status.
++# Protect against being in an unquoted here document in config.status.
++rm -f conftest.vals
++cat &gt; conftest.hdr &lt;&lt;\EOF
++s/[\\&amp;%]/\\&amp;/g
++s%[\\$`]%\\&amp;%g
++s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp
++s%ac_d%ac_u%gp
++s%ac_u%ac_e%gp
++EOF
++sed -n -f conftest.hdr confdefs.h &gt; conftest.vals
++rm -f conftest.hdr
++
++# This sed command replaces #undef with comments. This is necessary, for
++# example, in the case of _POSIX_SOURCE, which is predefined and required
++# on some systems where configure will not decide to define it.
++cat &gt;&gt; conftest.vals &lt;&lt;\EOF
++s%^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*%/* &amp; */%
++EOF
++
++# Break up conftest.vals because some shells have a limit on
++# the size of here documents, and old seds have small limits too.
++
++rm -f conftest.tail
++while :
++do
++ ac_lines=`grep -c . conftest.vals`
++ # grep -c gives empty output for an empty file on some AIX systems.
++ if test -z &quot;$ac_lines&quot; || test &quot;$ac_lines&quot; -eq 0; then break; fi
++ # Write a limited-size here document to conftest.frag.
++ echo ' cat &gt; conftest.frag &lt;&lt;CEOF' &gt;&gt; $CONFIG_STATUS
++ sed ${ac_max_here_lines}q conftest.vals &gt;&gt; $CONFIG_STATUS
++ echo 'CEOF
++ sed -f conftest.frag conftest.in &gt; conftest.out
++ rm -f conftest.in
++ mv conftest.out conftest.in
++' &gt;&gt; $CONFIG_STATUS
++ sed 1,${ac_max_here_lines}d conftest.vals &gt; conftest.tail
++ rm -f conftest.vals
++ mv conftest.tail conftest.vals
++done
++rm -f conftest.vals
++
++cat &gt;&gt; $CONFIG_STATUS &lt;&lt;\EOF
++ rm -f conftest.frag conftest.h
++ echo &quot;/* $ac_file. Generated automatically by configure. */&quot; &gt; conftest.h
++ cat conftest.in &gt;&gt; conftest.h
++ rm -f conftest.in
++ if cmp -s $ac_file conftest.h 2&gt;/dev/null; then
++ echo &quot;$ac_file is unchanged&quot;
++ rm -f conftest.h
++ else
++ # Remove last slash and all that follows it. Not all systems have dirname.
++ ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
++ if test &quot;$ac_dir&quot; != &quot;$ac_file&quot; &amp;&amp; test &quot;$ac_dir&quot; != .; then
++ # The file is in a subdirectory.
++ test ! -d &quot;$ac_dir&quot; &amp;&amp; mkdir &quot;$ac_dir&quot;
++ fi
++ rm -f $ac_file
++ mv conftest.h $ac_file
++ fi
++fi; done
++
++EOF
++cat &gt;&gt; $CONFIG_STATUS &lt;&lt;EOF
++
++EOF
++cat &gt;&gt; $CONFIG_STATUS &lt;&lt;\EOF
++
++exit 0
++EOF
++chmod +x $CONFIG_STATUS
++rm -fr confdefs* $ac_clean_files
++test &quot;$no_create&quot; = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
++
++
++$ECHO &quot;&quot;
++$ECHO &quot;On this platform, the following targets will be built:&quot;
++$ECHO &quot; $TARGETS&quot;
++$ECHO &quot;&quot;
++$ECHO &quot;Type 'make' to compile the software.&quot;
+
+
+Property changes on: drakx/trunk/mdk-stage1/rp-pppoe/src/configure
+___________________________________________________________________
+Added: svn:executable
+ + *
+
+<a id="drakxtrunkmdkstage1rppppoesrcconfigurein">Added: drakx/trunk/mdk-stage1/rp-pppoe/src/configure.in</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/src/configure.in (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/src/configure.in 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,231 @@
++dnl Process this file with autoconf to produce a configure script.
++AC_INIT(pppoe.c)
++
++AC_CONFIG_HEADER(config.h)
++
++AC_PREFIX_DEFAULT(/usr)
++
++dnl Checks for programs.
++AC_PROG_CC
++
++dnl Checks for libraries.
++
++dnl Checks for header files.
++AC_HEADER_STDC
++AC_HEADER_SYS_WAIT
++AC_CHECK_HEADERS(fcntl.h sys/ioctl.h sys/time.h syslog.h unistd.h net/if_arp.h netinet/if_ether.h getopt.h sys/uio.h sys/param.h fcntl.h net/bpf.h netpacket/packet.h net/ethernet.h asm/types.h linux/if_packet.h linux/if_ether.h linux/if_pppox.h sys/socket.h sys/cdefs.h linux/if.h net/if.h net/if_dl.h net/if_ether.h net/if_types.h netinet/if_ether.h net/if_types.h net/if_dl.h sys/dlpi.h )
++
++dnl Checks for typedefs, structures, and compiler characteristics.
++AC_C_CONST
++AC_TYPE_PID_T
++AC_HEADER_TIME
++AC_STRUCT_TM
++
++dnl Check for an echo which supports -n -- another hack for Solaris
++AC_PATH_PROG(ECHO, echo, &quot;&quot;, /usr/ucb/bin:$PATH)
++
++dnl Check for sockaddr_ll
++$ECHO -n &quot;checking for struct sockaddr_ll... &quot;
++AC_TRY_COMPILE([#include &lt;asm/types.h&gt;
++#include &lt;linux/if_packet.h&gt;
++#include &lt;linux/if_ether.h&gt;
++], [struct sockaddr_ll sa;],
++ac_cv_struct_sockaddr_ll=yes, ac_cv_struct_sockaddr_ll=no)
++$ECHO $ac_cv_struct_sockaddr_ll
++if test &quot;$ac_cv_struct_sockaddr_ll&quot; = yes ; then
++AC_DEFINE(HAVE_STRUCT_SOCKADDR_LL)
++fi
++
++dnl Check for N_HDLC line discipline
++$ECHO -n &quot;checking for N_HDLC line discipline... &quot;
++AC_TRY_COMPILE([#include &lt;linux/termios.h&gt;],
++ [int x = N_HDLC;],
++ ac_cv_n_hdlc=yes, ac_cv_n_hdlc=no)
++$ECHO $ac_cv_n_hdlc
++if test &quot;$ac_cv_n_hdlc&quot; = yes ; then
++AC_DEFINE(HAVE_N_HDLC)
++fi
++
++AC_ARG_ENABLE(plugin, [ --enable-plugin=pppd_src_path build pppd plugin], ac_cv_pluginpath=$enableval, ac_cv_pluginpath=no)
++
++dnl Determine whether or not to build Linux pppd plugin
++LINUX_KERNELMODE_PLUGIN=&quot;&quot;
++PPPD_INCDIR=&quot;&quot;
++if test &quot;$ac_cv_header_linux_if_pppox_h&quot; = yes ; then
++ if test &quot;$ac_cv_pluginpath&quot; != no ; then
++ LINUX_KERNELMODE_PLUGIN=rp-pppoe.so
++ PPPD_INCDIR=$ac_cv_pluginpath
++ fi
++fi
++
++AC_SUBST(LINUX_KERNELMODE_PLUGIN)
++AC_SUBST(PPPD_INCDIR)
++
++dnl Determine whether or not to build PPPoE relay
++PPPOE_RELAY=&quot;&quot;
++if test &quot;`uname -s`&quot; = &quot;Linux&quot; ; then
++ PPPOE_RELAY=pppoe-relay
++fi
++AC_SUBST(PPPOE_RELAY)
++
++dnl Checks for library functions.
++AC_FUNC_MEMCMP
++AC_FUNC_SETVBUF_REVERSED
++AC_TYPE_SIGNAL
++AC_CHECK_FUNCS(select socket strerror strtol)
++AC_PROG_INSTALL
++
++dnl Integer sizes
++AC_CHECK_SIZEOF(unsigned short)
++AC_CHECK_SIZEOF(unsigned int)
++AC_CHECK_SIZEOF(unsigned long)
++
++dnl Check for location of pppd
++AC_PATH_PROG(PPPD, pppd, NOTFOUND, $PATH:/sbin:/usr/sbin:/usr/local/sbin)
++
++dnl Check for setsid (probably Linux-specific)
++AC_PATH_PROG(SETSID, setsid, &quot;&quot;, $PATH:/sbin:/usr/sbin:/usr/local/sbin)
++
++dnl Check for an &quot;id&quot; which accepts &quot;-u&quot; option -- hack for Solaris.
++AC_PATH_PROG(ID, id, &quot;&quot;, /usr/xpg4/bin:$PATH)
++
++dnl Check for Linux-specific kernel support for PPPoE
++$ECHO -n &quot;checking for Linux 2.4.X kernel-mode PPPoE support...&quot;
++if test &quot;`uname -s`&quot; = &quot;Linux&quot; ; then
++AC_TRY_RUN([#include &lt;sys/socket.h&gt;
++#include &lt;net/ethernet.h&gt;
++#include &lt;linux/if.h&gt;
++#include &lt;linux/if_pppox.h&gt;
++int main()
++{
++ if (socket(AF_PPPOX, SOCK_DGRAM, PX_PROTO_OE) &gt;= 0) return 0; else return 1;
++}
++], ac_cv_linux_kernel_pppoe=yes, ac_cv_linux_kernel_pppoe=no)
++else
++ ac_cv_linux_kernel_pppoe=no
++fi
++
++$ECHO $ac_cv_linux_kernel_pppoe
++if test &quot;$ac_cv_linux_kernel_pppoe&quot; = yes ; then
++ AC_DEFINE(HAVE_LINUX_KERNEL_PPPOE)
++fi
++
++dnl GCC warning level
++if test &quot;$GCC&quot; = yes; then
++ CFLAGS=&quot;$CFLAGS -Wall -Wstrict-prototypes&quot;
++fi
++
++dnl If we couldn't find pppd, die
++if test &quot;$PPPD&quot; = &quot;NOTFOUND&quot;; then
++ $ECHO &quot;&quot;
++ $ECHO &quot;*** Oops! I couldn't find pppd, the PPP daemon anywhere.&quot;
++ $ECHO &quot;*** You must install pppd, version 2.3.10 or later.&quot;
++ $ECHO &quot;*** I will keep going, but it may not work.&quot;
++ $ECHO &quot;&quot;
++fi
++
++dnl Figure out pppd version. 2.3.7 to 2.3.9 -- issue warning. Less than
++dnl 2.3.7 -- stop
++
++PPPD_VERSION=`$PPPD --version 2&gt;&amp;1 | awk '{print $NF}'`
++
++case &quot;$PPPD_VERSION&quot; in
++1.*|2.0.*|2.1.*|2.2.*|2.3.0|2.3.1|2.3.2|2.3.3|2.3.4|2.3.5|2.3.6)
++ $ECHO &quot;&quot;
++ $ECHO &quot;*** Oops! Your version of pppd is $PPPD_VERSION, which is too old.&quot;
++ $ECHO &quot;*** You need at least 2.3.7 (2.3.10 or newer recommended.)&quot;
++ $ECHO &quot;*** I will keep going, but it may not work.&quot;
++ $ECHO &quot;&quot;
++ ;;
++
++2.3.7|2.3.8|2.3.9)
++ $ECHO &quot;&quot;
++ $ECHO &quot;*** Warning. Your version of pppd is $PPPD_VERSION. You will&quot;
++ $ECHO &quot;*** not be able to use connect-on-demand. Upgrade to pppd&quot;
++ $ECHO &quot;*** 2.3.10 or newer if you need connect-on-demand.&quot;
++ $ECHO &quot;&quot;
++ ;;
++
++2*|3*|4*|5*|6*|7*|8*|9*)
++ ;;
++
++*)
++ $ECHO &quot;&quot;
++ $ECHO &quot;*** Oops. I cannot figure out what version of pppd you have.&quot;
++ $ECHO &quot;*** All I got back was '$PPPD_VERSION'&quot;
++ $ECHO &quot;*** I will keep going, but it may not work.&quot;
++ $ECHO &quot;&quot;
++ ;;
++esac
++
++dnl Figure out packing order of structures
++$ECHO -n &quot;checking packing order of bit fields... &quot;
++AC_TRY_RUN([
++union foo {
++ struct bar {
++ unsigned int ver:4;
++ unsigned int type:4;
++ } bb;
++ unsigned char baz;
++};
++
++int
++main(void)
++{
++ union foo x;
++ x.bb.ver = 1;
++ x.bb.type = 2;
++ if (x.baz == 0x21) {
++ return 1;
++ } else if (x.baz == 0x12) {
++ return 0;
++ } else {
++ return 2;
++ }
++}], PACK=normal, PACK=rev)
++
++if test &quot;$PACK&quot; = &quot;rev&quot; ; then
++ $ECHO &quot;reversed&quot;
++ AC_DEFINE(PACK_BITFIELDS_REVERSED)
++else
++ $ECHO &quot;normal&quot;
++fi
++
++# Sigh... got to fix this up for tcl
++test &quot;x$prefix&quot; = xNONE &amp;&amp; prefix=$ac_default_prefix
++# Let make expand exec_prefix.
++test &quot;x$exec_prefix&quot; = xNONE &amp;&amp; exec_prefix='${prefix}'
++
++# Fully resolve WRAPPER for Tcl script.
++WRAPPER=${sbindir}/pppoe-wrapper
++eval &quot;WRAPPER=${WRAPPER}&quot;
++eval &quot;WRAPPER=${WRAPPER}&quot;
++AC_SUBST(WRAPPER)
++
++# Determine what targets to build
++TARGETS=&quot;pppoe pppoe-server&quot;
++
++# pppoe-sniff is built only on Linux and Solaris
++if test &quot;$ac_cv_header_linux_if_packet_h&quot; = &quot;yes&quot; -o &quot;$ac_cv_header_sys_dlpi_h&quot; = &quot;yes&quot; ; then
++ TARGETS=&quot;$TARGETS pppoe-sniff&quot;
++fi
++
++# pppoe-relay is built only on Linux
++if test &quot;$ac_cv_header_linux_if_packet_h&quot; = &quot;yes&quot; ; then
++ TARGETS=&quot;$TARGETS pppoe-relay&quot;
++fi
++
++# plugin is built only if we have kernel support
++if test -n &quot;$LINUX_KERNELMODE_PLUGIN&quot; ; then
++ TARGETS=&quot;$TARGETS $LINUX_KERNELMODE_PLUGIN&quot;
++fi
++
++AC_SUBST(TARGETS)
++
++AC_OUTPUT(Makefile ../scripts/adsl-connect ../scripts/adsl-start ../scripts/adsl-stop ../scripts/adsl-init ../scripts/adsl-init-suse ../scripts/adsl-init-turbolinux ../scripts/adsl-setup ../gui/Makefile ../gui/tkpppoe)
++
++$ECHO &quot;&quot;
++$ECHO &quot;On this platform, the following targets will be built:&quot;
++$ECHO &quot; $TARGETS&quot;
++$ECHO &quot;&quot;
++$ECHO &quot;Type 'make' to compile the software.&quot;
+
+<a id="drakxtrunkmdkstage1rppppoesrcdebugc">Added: drakx/trunk/mdk-stage1/rp-pppoe/src/debug.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/src/debug.c (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/src/debug.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,143 @@
++/***********************************************************************
++*
++* debug.c
++*
++* Implementation of user-space PPPoE redirector for Linux.
++*
++* Functions for printing debugging information
++*
++* Copyright (C) 2000 by Roaring Penguin Software Inc.
++*
++* This program may be distributed according to the terms of the GNU
++* General Public License, version 2 or (at your option) any later version.
++*
++***********************************************************************/
++
++static char const RCSID[] =
++&quot;$Id: debug.c 195724 2001-06-11 13:49:39Z gc $&quot;;
++
++#include &quot;pppoe.h&quot;
++#include &lt;sys/time.h&gt;
++#include &lt;time.h&gt;
++#include &lt;unistd.h&gt;
++#include &lt;ctype.h&gt;
++
++/**********************************************************************
++*%FUNCTION: dumpHex
++*%ARGUMENTS:
++* fp -- file to dump to
++* buf -- buffer to dump
++* len -- length of data
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Dumps buffer to fp in an easy-to-read format
++***********************************************************************/
++void
++dumpHex(FILE *fp, unsigned char const *buf, int len)
++{
++ int i;
++ int base;
++
++ if (!fp) return;
++
++ /* do NOT dump PAP packets */
++ if (len &gt;= 2 &amp;&amp; buf[0] == 0xC0 &amp;&amp; buf[1] == 0x23) {
++ fprintf(fp, &quot;(PAP Authentication Frame -- Contents not dumped)\n&quot;);
++ return;
++ }
++
++ for (base=0; base&lt;len; base += 16) {
++ for (i=base; i&lt;base+16; i++) {
++ if (i &lt; len) {
++ fprintf(fp, &quot;%02x &quot;, (unsigned) buf[i]);
++ } else {
++ fprintf(fp, &quot; &quot;);
++ }
++ }
++ fprintf(fp, &quot; &quot;);
++ for (i=base; i&lt;base+16; i++) {
++ if (i &lt; len) {
++ if (isprint(buf[i])) {
++ fprintf(fp, &quot;%c&quot;, buf[i]);
++ } else {
++ fprintf(fp, &quot;.&quot;);
++ }
++ } else {
++ break;
++ }
++ }
++ fprintf(fp, &quot;\n&quot;);
++ }
++}
++
++/**********************************************************************
++*%FUNCTION: dumpPacket
++*%ARGUMENTS:
++* fp -- file to dump to
++* packet -- a PPPoE packet
++* dir -- either SENT or RCVD
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Dumps the PPPoE packet to fp in an easy-to-read format
++***********************************************************************/
++void
++dumpPacket(FILE *fp, PPPoEPacket *packet, char const *dir)
++{
++ int len = ntohs(packet-&gt;length);
++
++ /* Sheesh... printing times is a pain... */
++ struct timeval tv;
++ time_t now;
++ int millisec;
++ struct tm *lt;
++ char timebuf[256];
++
++ UINT16_t type = etherType(packet);
++ if (!fp) return;
++ gettimeofday(&amp;tv, NULL);
++ now = (time_t) tv.tv_sec;
++ millisec = tv.tv_usec / 1000;
++ lt = localtime(&amp;now);
++ strftime(timebuf, 256, &quot;%H:%M:%S&quot;, lt);
++ fprintf(fp, &quot;%s.%03d %s PPPoE &quot;, timebuf, millisec, dir);
++ if (type == Eth_PPPOE_Discovery) {
++ fprintf(fp, &quot;Discovery (%x) &quot;, (unsigned) type);
++ } else if (type == Eth_PPPOE_Session) {
++ fprintf(fp, &quot;Session (%x) &quot;, (unsigned) type);
++ } else {
++ fprintf(fp, &quot;Unknown (%x) &quot;, (unsigned) type);
++ }
++
++ switch(packet-&gt;code) {
++ case CODE_PADI: fprintf(fp, &quot;PADI &quot;); break;
++ case CODE_PADO: fprintf(fp, &quot;PADO &quot;); break;
++ case CODE_PADR: fprintf(fp, &quot;PADR &quot;); break;
++ case CODE_PADS: fprintf(fp, &quot;PADS &quot;); break;
++ case CODE_PADT: fprintf(fp, &quot;PADT &quot;); break;
++ case CODE_SESS: fprintf(fp, &quot;SESS &quot;); break;
++ }
++
++ fprintf(fp, &quot;sess-id %d length %d\n&quot;,
++ (int) ntohs(packet-&gt;session),
++ len);
++
++ /* Ugly... I apologize... */
++ fprintf(fp,
++ &quot;SourceAddr %02x:%02x:%02x:%02x:%02x:%02x &quot;
++ &quot;DestAddr %02x:%02x:%02x:%02x:%02x:%02x\n&quot;,
++ (unsigned) packet-&gt;ethHdr.h_source[0],
++ (unsigned) packet-&gt;ethHdr.h_source[1],
++ (unsigned) packet-&gt;ethHdr.h_source[2],
++ (unsigned) packet-&gt;ethHdr.h_source[3],
++ (unsigned) packet-&gt;ethHdr.h_source[4],
++ (unsigned) packet-&gt;ethHdr.h_source[5],
++ (unsigned) packet-&gt;ethHdr.h_dest[0],
++ (unsigned) packet-&gt;ethHdr.h_dest[1],
++ (unsigned) packet-&gt;ethHdr.h_dest[2],
++ (unsigned) packet-&gt;ethHdr.h_dest[3],
++ (unsigned) packet-&gt;ethHdr.h_dest[4],
++ (unsigned) packet-&gt;ethHdr.h_dest[5]);
++ dumpHex(fp, packet-&gt;payload, ntohs(packet-&gt;length));
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/rp-pppoe/src/debug.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1rppppoesrcdiscoveryc">Added: drakx/trunk/mdk-stage1/rp-pppoe/src/discovery.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/src/discovery.c (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/src/discovery.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,629 @@
++/***********************************************************************
++*
++* discovery.c
++*
++* Perform PPPoE discovery
++*
++* Copyright (C) 1999 by Roaring Penguin Software Inc.
++*
++***********************************************************************/
++
++static char const RCSID[] =
++&quot;$Id: discovery.c 195724 2001-06-11 13:49:39Z gc $&quot;;
++
++#include &quot;pppoe.h&quot;
++
++#ifdef HAVE_SYSLOG_H
++#include &lt;syslog.h&gt;
++#endif
++
++#include &lt;string.h&gt;
++#include &lt;stdlib.h&gt;
++#include &lt;errno.h&gt;
++
++#ifdef HAVE_SYS_TIME_H
++#include &lt;sys/time.h&gt;
++#endif
++
++#ifdef HAVE_SYS_UIO_H
++#include &lt;sys/uio.h&gt;
++#endif
++
++#ifdef HAVE_UNISTD_H
++#include &lt;unistd.h&gt;
++#endif
++
++#ifdef USE_LINUX_PACKET
++#include &lt;sys/ioctl.h&gt;
++#include &lt;fcntl.h&gt;
++#endif
++
++#include &lt;signal.h&gt;
++
++/**********************************************************************
++*%FUNCTION: parseForHostUniq
++*%ARGUMENTS:
++* type -- tag type
++* len -- tag length
++* data -- tag data.
++* extra -- user-supplied pointer. This is assumed to be a pointer to int.
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* If a HostUnique tag is found which matches our PID, sets *extra to 1.
++***********************************************************************/
++void
++parseForHostUniq(UINT16_t type, UINT16_t len, unsigned char *data,
++ void *extra)
++{
++ int *val = (int *) extra;
++ if (type == TAG_HOST_UNIQ &amp;&amp; len == sizeof(pid_t)) {
++ pid_t tmp;
++ memcpy(&amp;tmp, data, len);
++ if (tmp == getpid()) {
++ *val = 1;
++ }
++ }
++}
++
++/**********************************************************************
++*%FUNCTION: packetIsForMe
++*%ARGUMENTS:
++* conn -- PPPoE connection info
++* packet -- a received PPPoE packet
++*%RETURNS:
++* 1 if packet is for this PPPoE daemon; 0 otherwise.
++*%DESCRIPTION:
++* If we are using the Host-Unique tag, verifies that packet contains
++* our unique identifier.
++***********************************************************************/
++int
++packetIsForMe(PPPoEConnection *conn, PPPoEPacket *packet)
++{
++ int forMe = 0;
++
++ /* If we're not using the Host-Unique tag, then accept the packet */
++ if (!conn-&gt;useHostUniq) return 1;
++
++ parsePacket(packet, parseForHostUniq, &amp;forMe);
++ return forMe;
++}
++
++/**********************************************************************
++*%FUNCTION: parsePADOTags
++*%ARGUMENTS:
++* type -- tag type
++* len -- tag length
++* data -- tag data
++* extra -- extra user data. Should point to a PacketCriteria structure
++* which gets filled in according to selected AC name and service
++* name.
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Picks interesting tags out of a PADO packet
++***********************************************************************/
++void
++parsePADOTags(UINT16_t type, UINT16_t len, unsigned char *data,
++ void *extra)
++{
++ struct PacketCriteria *pc = (struct PacketCriteria *) extra;
++ PPPoEConnection *conn = pc-&gt;conn;
++ int i;
++
++ switch(type) {
++ case TAG_AC_NAME:
++ if (conn-&gt;printACNames) {
++ printf(&quot;Access-Concentrator: %.*s\n&quot;, (int) len, data);
++ }
++ if (conn-&gt;acName &amp;&amp; len == strlen(conn-&gt;acName) &amp;&amp;
++ !strncmp((char *) data, conn-&gt;acName, len)) {
++ pc-&gt;acNameOK = 1;
++ }
++ break;
++ case TAG_SERVICE_NAME:
++ if (conn-&gt;printACNames &amp;&amp; len &gt; 0) {
++ printf(&quot; Service-Name: %.*s\n&quot;, (int) len, data);
++ }
++ if (conn-&gt;serviceName &amp;&amp; len == strlen(conn-&gt;serviceName) &amp;&amp;
++ !strncmp((char *) data, conn-&gt;serviceName, len)) {
++ pc-&gt;serviceNameOK = 1;
++ }
++ break;
++ case TAG_AC_COOKIE:
++ if (conn-&gt;printACNames) {
++ printf(&quot;Got a cookie:&quot;);
++ /* Print first 20 bytes of cookie */
++ for (i=0; i&lt;len &amp;&amp; i &lt; 20; i++) {
++ printf(&quot; %02x&quot;, (unsigned) data[i]);
++ }
++ if (i &lt; len) printf(&quot;...&quot;);
++ printf(&quot;\n&quot;);
++ }
++ conn-&gt;cookie.type = htons(type);
++ conn-&gt;cookie.length = htons(len);
++ memcpy(conn-&gt;cookie.payload, data, len);
++ break;
++ case TAG_RELAY_SESSION_ID:
++ if (conn-&gt;printACNames) {
++ printf(&quot;Got a Relay-ID:&quot;);
++ /* Print first 20 bytes of relay ID */
++ for (i=0; i&lt;len &amp;&amp; i &lt; 20; i++) {
++ printf(&quot; %02x&quot;, (unsigned) data[i]);
++ }
++ if (i &lt; len) printf(&quot;...&quot;);
++ printf(&quot;\n&quot;);
++ }
++ conn-&gt;relayId.type = htons(type);
++ conn-&gt;relayId.length = htons(len);
++ memcpy(conn-&gt;relayId.payload, data, len);
++ break;
++ case TAG_SERVICE_NAME_ERROR:
++ if (conn-&gt;printACNames) {
++ printf(&quot;Got a Service-Name-Error tag: %.*s\n&quot;, (int) len, data);
++ } else {
++ syslog(LOG_ERR, &quot;PADO: Service-Name-Error: %.*s&quot;, (int) len, data);
++ exit(1);
++ }
++ break;
++ case TAG_AC_SYSTEM_ERROR:
++ if (conn-&gt;printACNames) {
++ printf(&quot;Got a System-Error tag: %.*s\n&quot;, (int) len, data);
++ } else {
++ syslog(LOG_ERR, &quot;PADO: System-Error: %.*s&quot;, (int) len, data);
++ exit(1);
++ }
++ break;
++ case TAG_GENERIC_ERROR:
++ if (conn-&gt;printACNames) {
++ printf(&quot;Got a Generic-Error tag: %.*s\n&quot;, (int) len, data);
++ } else {
++ syslog(LOG_ERR, &quot;PADO: Generic-Error: %.*s&quot;, (int) len, data);
++ exit(1);
++ }
++ break;
++ }
++}
++
++/**********************************************************************
++*%FUNCTION: parsePADSTags
++*%ARGUMENTS:
++* type -- tag type
++* len -- tag length
++* data -- tag data
++* extra -- extra user data (pointer to PPPoEConnection structure)
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Picks interesting tags out of a PADS packet
++***********************************************************************/
++void
++parsePADSTags(UINT16_t type, UINT16_t len, unsigned char *data,
++ void *extra)
++{
++ PPPoEConnection *conn = (PPPoEConnection *) extra;
++ switch(type) {
++ case TAG_SERVICE_NAME:
++ syslog(LOG_DEBUG, &quot;PADS: Service-Name: '%.*s'&quot;, (int) len, data);
++ break;
++ case TAG_SERVICE_NAME_ERROR:
++ syslog(LOG_ERR, &quot;PADS: Service-Name-Error: %.*s&quot;, (int) len, data);
++ fprintf(stderr, &quot;PADS: Service-Name-Error: %.*s\n&quot;, (int) len, data);
++ exit(1);
++ case TAG_AC_SYSTEM_ERROR:
++ syslog(LOG_ERR, &quot;PADS: System-Error: %.*s&quot;, (int) len, data);
++ fprintf(stderr, &quot;PADS: System-Error: %.*s\n&quot;, (int) len, data);
++ exit(1);
++ case TAG_GENERIC_ERROR:
++ syslog(LOG_ERR, &quot;PADS: Generic-Error: %.*s&quot;, (int) len, data);
++ fprintf(stderr, &quot;PADS: Generic-Error: %.*s\n&quot;, (int) len, data);
++ exit(1);
++ case TAG_RELAY_SESSION_ID:
++ conn-&gt;relayId.type = htons(type);
++ conn-&gt;relayId.length = htons(len);
++ memcpy(conn-&gt;relayId.payload, data, len);
++ break;
++ }
++}
++
++/***********************************************************************
++*%FUNCTION: sendPADI
++*%ARGUMENTS:
++* conn -- PPPoEConnection structure
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Sends a PADI packet
++***********************************************************************/
++void
++sendPADI(PPPoEConnection *conn)
++{
++ PPPoEPacket packet;
++ unsigned char *cursor = packet.payload;
++ PPPoETag *svc = (PPPoETag *) (&amp;packet.payload);
++ UINT16_t namelen = 0;
++ UINT16_t plen;
++
++ if (conn-&gt;serviceName) {
++ namelen = (UINT16_t) strlen(conn-&gt;serviceName);
++ }
++ plen = TAG_HDR_SIZE + namelen;
++ CHECK_ROOM(cursor, packet.payload, plen);
++
++ /* Set destination to Ethernet broadcast address */
++ memset(packet.ethHdr.h_dest, 0xFF, ETH_ALEN);
++ memcpy(packet.ethHdr.h_source, conn-&gt;myEth, ETH_ALEN);
++
++ packet.ethHdr.h_proto = htons(Eth_PPPOE_Discovery);
++ packet.ver = 1;
++ packet.type = 1;
++ packet.code = CODE_PADI;
++ packet.session = 0;
++
++ svc-&gt;type = TAG_SERVICE_NAME;
++ svc-&gt;length = htons(namelen);
++ CHECK_ROOM(cursor, packet.payload, namelen+TAG_HDR_SIZE);
++
++ if (conn-&gt;serviceName) {
++ memcpy(svc-&gt;payload, conn-&gt;serviceName, strlen(conn-&gt;serviceName));
++ }
++ cursor += namelen + TAG_HDR_SIZE;
++
++ /* If we're using Host-Uniq, copy it over */
++ if (conn-&gt;useHostUniq) {
++ PPPoETag hostUniq;
++ pid_t pid = getpid();
++ hostUniq.type = htons(TAG_HOST_UNIQ);
++ hostUniq.length = htons(sizeof(pid));
++ memcpy(hostUniq.payload, &amp;pid, sizeof(pid));
++ CHECK_ROOM(cursor, packet.payload, sizeof(pid) + TAG_HDR_SIZE);
++ memcpy(cursor, &amp;hostUniq, sizeof(pid) + TAG_HDR_SIZE);
++ cursor += sizeof(pid) + TAG_HDR_SIZE;
++ plen += sizeof(pid) + TAG_HDR_SIZE;
++ }
++
++ packet.length = htons(plen);
++
++ sendPacket(conn, conn-&gt;discoverySocket, &amp;packet, (int) (plen + HDR_SIZE));
++ if (conn-&gt;debugFile) {
++ dumpPacket(conn-&gt;debugFile, &amp;packet, &quot;SENT&quot;);
++ fprintf(conn-&gt;debugFile, &quot;\n&quot;);
++ fflush(conn-&gt;debugFile);
++ }
++}
++
++/**********************************************************************
++*%FUNCTION: waitForPADO
++*%ARGUMENTS:
++* conn -- PPPoEConnection structure
++* timeout -- how long to wait (in seconds)
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Waits for a PADO packet and copies useful information
++***********************************************************************/
++void
++waitForPADO(PPPoEConnection *conn, int timeout)
++{
++ fd_set readable;
++ int r;
++ struct timeval tv;
++ PPPoEPacket packet;
++ int len;
++
++ struct PacketCriteria pc;
++ pc.conn = conn;
++ pc.acNameOK = (conn-&gt;acName) ? 0 : 1;
++ pc.serviceNameOK = (conn-&gt;serviceName) ? 0 : 1;
++
++ do {
++ if (BPF_BUFFER_IS_EMPTY) {
++ tv.tv_sec = timeout;
++ tv.tv_usec = 0;
++
++ FD_ZERO(&amp;readable);
++ FD_SET(conn-&gt;discoverySocket, &amp;readable);
++
++ while(1) {
++ r = select(conn-&gt;discoverySocket+1, &amp;readable, NULL, NULL, &amp;tv);
++ if (r &gt;= 0 || errno != EINTR) break;
++ }
++ if (r &lt; 0) {
++ fatalSys(&quot;select (waitForPADO)&quot;);
++ }
++ if (r == 0) return; /* Timed out */
++ }
++
++ /* Get the packet */
++ receivePacket(conn-&gt;discoverySocket, &amp;packet, &amp;len);
++
++ /* Check length */
++ if (ntohs(packet.length) + HDR_SIZE &gt; len) {
++ syslog(LOG_ERR, &quot;Bogus PPPoE length field (%u)&quot;,
++ (unsigned int) ntohs(packet.length));
++ continue;
++ }
++
++#ifdef USE_BPF
++ /* If it's not a Discovery packet, loop again */
++ if (etherType(&amp;packet) != Eth_PPPOE_Discovery) continue;
++#endif
++
++ if (conn-&gt;debugFile) {
++ dumpPacket(conn-&gt;debugFile, &amp;packet, &quot;RCVD&quot;);
++ fprintf(conn-&gt;debugFile, &quot;\n&quot;);
++ fflush(conn-&gt;debugFile);
++ }
++ /* If it's not for us, loop again */
++ if (!packetIsForMe(conn, &amp;packet)) continue;
++
++ if (packet.code == CODE_PADO) {
++ if (NOT_UNICAST(packet.ethHdr.h_source)) {
++ printErr(&quot;Ignoring PADO packet from non-unicast MAC address&quot;);
++ continue;
++ }
++ conn-&gt;numPADOs++;
++ if (conn-&gt;printACNames) {
++ printf(&quot;--------------------------------------------------\n&quot;);
++ }
++ parsePacket(&amp;packet, parsePADOTags, &amp;pc);
++ if (pc.acNameOK &amp;&amp; pc.serviceNameOK) {
++ memcpy(conn-&gt;peerEth, packet.ethHdr.h_source, ETH_ALEN);
++ if (conn-&gt;printACNames) {
++ printf(&quot;AC-Ethernet-Address: %02x:%02x:%02x:%02x:%02x:%02x\n&quot;,
++ (unsigned) conn-&gt;peerEth[0],
++ (unsigned) conn-&gt;peerEth[1],
++ (unsigned) conn-&gt;peerEth[2],
++ (unsigned) conn-&gt;peerEth[3],
++ (unsigned) conn-&gt;peerEth[4],
++ (unsigned) conn-&gt;peerEth[5]);
++ continue;
++ }
++ conn-&gt;discoveryState = STATE_RECEIVED_PADO;
++ break;
++ }
++ }
++ } while (conn-&gt;discoveryState != STATE_RECEIVED_PADO);
++}
++
++/***********************************************************************
++*%FUNCTION: sendPADR
++*%ARGUMENTS:
++* conn -- PPPoE connection structur
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Sends a PADR packet
++***********************************************************************/
++void
++sendPADR(PPPoEConnection *conn)
++{
++ PPPoEPacket packet;
++ PPPoETag *svc = (PPPoETag *) packet.payload;
++ unsigned char *cursor = packet.payload;
++
++ UINT16_t namelen = 0;
++ UINT16_t plen;
++
++ if (conn-&gt;serviceName) {
++ namelen = (UINT16_t) strlen(conn-&gt;serviceName);
++ }
++ plen = TAG_HDR_SIZE + namelen;
++ CHECK_ROOM(cursor, packet.payload, plen);
++
++ memcpy(packet.ethHdr.h_dest, conn-&gt;peerEth, ETH_ALEN);
++ memcpy(packet.ethHdr.h_source, conn-&gt;myEth, ETH_ALEN);
++
++ packet.ethHdr.h_proto = htons(Eth_PPPOE_Discovery);
++ packet.ver = 1;
++ packet.type = 1;
++ packet.code = CODE_PADR;
++ packet.session = 0;
++
++ svc-&gt;type = TAG_SERVICE_NAME;
++ svc-&gt;length = htons(namelen);
++ if (conn-&gt;serviceName) {
++ memcpy(svc-&gt;payload, conn-&gt;serviceName, namelen);
++ }
++ cursor += namelen + TAG_HDR_SIZE;
++
++ /* If we're using Host-Uniq, copy it over */
++ if (conn-&gt;useHostUniq) {
++ PPPoETag hostUniq;
++ pid_t pid = getpid();
++ hostUniq.type = htons(TAG_HOST_UNIQ);
++ hostUniq.length = htons(sizeof(pid));
++ memcpy(hostUniq.payload, &amp;pid, sizeof(pid));
++ CHECK_ROOM(cursor, packet.payload, sizeof(pid)+TAG_HDR_SIZE);
++ memcpy(cursor, &amp;hostUniq, sizeof(pid) + TAG_HDR_SIZE);
++ cursor += sizeof(pid) + TAG_HDR_SIZE;
++ plen += sizeof(pid) + TAG_HDR_SIZE;
++ }
++
++ /* Copy cookie and relay-ID if needed */
++ if (conn-&gt;cookie.type) {
++ CHECK_ROOM(cursor, packet.payload,
++ ntohs(conn-&gt;cookie.length) + TAG_HDR_SIZE);
++ memcpy(cursor, &amp;conn-&gt;cookie, ntohs(conn-&gt;cookie.length) + TAG_HDR_SIZE);
++ cursor += ntohs(conn-&gt;cookie.length) + TAG_HDR_SIZE;
++ plen += ntohs(conn-&gt;cookie.length) + TAG_HDR_SIZE;
++ }
++
++ if (conn-&gt;relayId.type) {
++ CHECK_ROOM(cursor, packet.payload,
++ ntohs(conn-&gt;relayId.length) + TAG_HDR_SIZE);
++ memcpy(cursor, &amp;conn-&gt;relayId, ntohs(conn-&gt;relayId.length) + TAG_HDR_SIZE);
++ cursor += ntohs(conn-&gt;relayId.length) + TAG_HDR_SIZE;
++ plen += ntohs(conn-&gt;relayId.length) + TAG_HDR_SIZE;
++ }
++
++ packet.length = htons(plen);
++ sendPacket(conn, conn-&gt;discoverySocket, &amp;packet, (int) (plen + HDR_SIZE));
++ if (conn-&gt;debugFile) {
++ dumpPacket(conn-&gt;debugFile, &amp;packet, &quot;SENT&quot;);
++ fprintf(conn-&gt;debugFile, &quot;\n&quot;);
++ fflush(conn-&gt;debugFile);
++ }
++}
++
++/**********************************************************************
++*%FUNCTION: waitForPADS
++*%ARGUMENTS:
++* conn -- PPPoE connection info
++* timeout -- how long to wait (in seconds)
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Waits for a PADS packet and copies useful information
++***********************************************************************/
++void
++waitForPADS(PPPoEConnection *conn, int timeout)
++{
++ fd_set readable;
++ int r;
++ struct timeval tv;
++ PPPoEPacket packet;
++ int len;
++
++ do {
++ if (BPF_BUFFER_IS_EMPTY) {
++ tv.tv_sec = timeout;
++ tv.tv_usec = 0;
++
++ FD_ZERO(&amp;readable);
++ FD_SET(conn-&gt;discoverySocket, &amp;readable);
++
++ while(1) {
++ r = select(conn-&gt;discoverySocket+1, &amp;readable, NULL, NULL, &amp;tv);
++ if (r &gt;= 0 || errno != EINTR) break;
++ }
++ if (r &lt; 0) {
++ fatalSys(&quot;select (waitForPADS)&quot;);
++ }
++ if (r == 0) return;
++ }
++
++ /* Get the packet */
++ receivePacket(conn-&gt;discoverySocket, &amp;packet, &amp;len);
++
++ /* Check length */
++ if (ntohs(packet.length) + HDR_SIZE &gt; len) {
++ syslog(LOG_ERR, &quot;Bogus PPPoE length field (%u)&quot;,
++ (unsigned int) ntohs(packet.length));
++ continue;
++ }
++
++#ifdef USE_BPF
++ /* If it's not a Discovery packet, loop again */
++ if (etherType(&amp;packet) != Eth_PPPOE_Discovery) continue;
++#endif
++ if (conn-&gt;debugFile) {
++ dumpPacket(conn-&gt;debugFile, &amp;packet, &quot;RCVD&quot;);
++ fprintf(conn-&gt;debugFile, &quot;\n&quot;);
++ fflush(conn-&gt;debugFile);
++ }
++
++ /* If it's not from the AC, it's not for me */
++ if (memcmp(packet.ethHdr.h_source, conn-&gt;peerEth, ETH_ALEN)) continue;
++
++ /* If it's not for us, loop again */
++ if (!packetIsForMe(conn, &amp;packet)) continue;
++
++ /* Is it PADS? */
++ if (packet.code == CODE_PADS) {
++ /* Parse for goodies */
++ parsePacket(&amp;packet, parsePADSTags, conn);
++ conn-&gt;discoveryState = STATE_SESSION;
++ break;
++ }
++ } while (conn-&gt;discoveryState != STATE_SESSION);
++
++ /* Don't bother with ntohs; we'll just end up converting it back... */
++ conn-&gt;session = packet.session;
++
++ syslog(LOG_INFO, &quot;PPP session is %d&quot;, (int) ntohs(conn-&gt;session));
++
++ /* RFC 2516 says session id MUST NOT be zero or 0xFFFF */
++ if (ntohs(conn-&gt;session) == 0 || ntohs(conn-&gt;session) == 0xFFFF) {
++ syslog(LOG_ERR, &quot;Access concentrator used a session value of %x -- the AC is violating RFC 2516&quot;, (unsigned int) ntohs(conn-&gt;session));
++ }
++}
++
++/**********************************************************************
++*%FUNCTION: discovery
++*%ARGUMENTS:
++* conn -- PPPoE connection info structure
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Performs the PPPoE discovery phase
++***********************************************************************/
++void
++discovery(PPPoEConnection *conn)
++{
++ int padiAttempts = 0;
++ int padrAttempts = 0;
++ int timeout = PADI_TIMEOUT;
++
++ /* Skip discovery and don't open discovery socket? */
++ if (conn-&gt;skipDiscovery &amp;&amp; conn-&gt;noDiscoverySocket) {
++ conn-&gt;discoveryState = STATE_SESSION;
++ return;
++ }
++
++ conn-&gt;discoverySocket =
++ openInterface(conn-&gt;ifName, Eth_PPPOE_Discovery, conn-&gt;myEth);
++
++ /* Skip discovery? */
++ if (conn-&gt;skipDiscovery) {
++ conn-&gt;discoveryState = STATE_SESSION;
++ if (conn-&gt;killSession) {
++ sendPADT(conn, &quot;RP-PPPoE: Session killed manually&quot;);
++ exit(0);
++ }
++ return;
++ }
++
++ do {
++ padiAttempts++;
++ if (padiAttempts &gt; MAX_PADI_ATTEMPTS) {
++ rp_fatal(&quot;Timeout waiting for PADO packets&quot;);
++ }
++ sendPADI(conn);
++ conn-&gt;discoveryState = STATE_SENT_PADI;
++ waitForPADO(conn, timeout);
++
++ /* If we're just probing for access concentrators, don't do
++ exponential backoff. This reduces the time for an unsuccessful
++ probe to 15 seconds. */
++ if (!conn-&gt;printACNames) {
++ timeout *= 2;
++ }
++ if (conn-&gt;printACNames &amp;&amp; conn-&gt;numPADOs) {
++ break;
++ }
++ } while (conn-&gt;discoveryState == STATE_SENT_PADI);
++
++ /* If we're only printing access concentrator names, we're done */
++ if (conn-&gt;printACNames) {
++ printf(&quot;--------------------------------------------------\n&quot;);
++ exit(0);
++ }
++
++ timeout = PADI_TIMEOUT;
++ do {
++ padrAttempts++;
++ if (padrAttempts &gt; MAX_PADI_ATTEMPTS) {
++ rp_fatal(&quot;Timeout waiting for PADS packets&quot;);
++ }
++ sendPADR(conn);
++ conn-&gt;discoveryState = STATE_SENT_PADR;
++ waitForPADS(conn, timeout);
++ timeout *= 2;
++ } while (conn-&gt;discoveryState == STATE_SENT_PADR);
++
++ /* We're done. */
++ conn-&gt;discoveryState = STATE_SESSION;
++ return;
++}
++
+
+
+Property changes on: drakx/trunk/mdk-stage1/rp-pppoe/src/discovery.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1rppppoesrcifc">Added: drakx/trunk/mdk-stage1/rp-pppoe/src/if.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/src/if.c (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/src/if.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,1092 @@
++/***********************************************************************
++*
++* if.c
++*
++* Implementation of user-space PPPoE redirector for Linux.
++*
++* Functions for opening a raw socket and reading/writing raw Ethernet frames.
++*
++* Copyright (C) 2000 by Roaring Penguin Software Inc.
++*
++* This program may be distributed according to the terms of the GNU
++* General Public License, version 2 or (at your option) any later version.
++*
++***********************************************************************/
++
++static char const RCSID[] =
++&quot;$Id: if.c 195724 2001-06-11 13:49:39Z gc $&quot;;
++
++#include &quot;pppoe.h&quot;
++
++#ifdef HAVE_UNISTD_H
++#include &lt;unistd.h&gt;
++#endif
++
++#ifdef HAVE_NETPACKET_PACKET_H
++#include &lt;netpacket/packet.h&gt;
++#elif defined(HAVE_LINUX_IF_PACKET_H)
++#include &lt;linux/if_packet.h&gt;
++#endif
++
++#ifdef HAVE_NET_ETHERNET_H
++#include &lt;net/ethernet.h&gt;
++#endif
++
++#ifdef HAVE_ASM_TYPES_H
++#include &lt;asm/types.h&gt;
++#endif
++
++#ifdef HAVE_SYS_IOCTL_H
++#include &lt;sys/ioctl.h&gt;
++#endif
++
++#ifdef HAVE_SYSLOG_H
++#include &lt;syslog.h&gt;
++#endif
++
++#include &lt;errno.h&gt;
++#include &lt;stdlib.h&gt;
++#include &lt;string.h&gt;
++
++#ifdef HAVE_NET_IF_ARP_H
++#include &lt;net/if_arp.h&gt;
++#endif
++
++#ifdef USE_DLPI
++
++#include &lt;limits.h&gt;
++#include &lt;fcntl.h&gt;
++#include &lt;stdlib.h&gt;
++#include &lt;sys/types.h&gt;
++#include &lt;sys/time.h&gt;
++#include &lt;sys/stream.h&gt;
++#include &lt;sys/stropts.h&gt;
++#include &lt;sys/dlpi.h&gt;
++#include &lt;sys/bufmod.h&gt;
++#include &lt;stdio.h&gt;
++#include &lt;signal.h&gt;
++#include &lt;stropts.h&gt;
++
++/* function declarations */
++
++void dlpromisconreq( int fd, u_long level);
++void dlinforeq(int fd);
++void dlunitdatareq(int fd, u_char *addrp, int addrlen, u_long minpri, u_long maxpri, u_char *datap, int datalen);
++void dlinfoack(int fd, char *bufp);
++void dlbindreq(int fd, u_long sap, u_long max_conind, u_long service_mode, u_long conn_mgmt, u_long xidtest);
++void dlattachreq(int fd, u_long ppa);
++void dlokack(int fd, char *bufp);
++void dlbindack(int fd, char *bufp);
++int strioctl(int fd, int cmd, int timout, int len, char *dp);
++void strgetmsg(int fd, struct strbuf *ctlp, struct strbuf *datap, int *flagsp, char *caller);
++void sigalrm(int sig);
++void expecting(int prim, union DL_primitives *dlp);
++char *dlprim(u_long prim);
++
++/* #define DL_DEBUG */
++
++static int dl_abssaplen;
++static int dl_saplen;
++static int dl_addrlen;
++
++#endif
++
++#ifdef USE_BPF
++#include &lt;net/bpf.h&gt;
++#include &lt;fcntl.h&gt;
++
++unsigned char *bpfBuffer; /* Packet filter buffer */
++int bpfLength = 0; /* Packet filter buffer length */
++int bpfSize = 0; /* Number of unread bytes in buffer */
++int bpfOffset = 0; /* Current offset in bpfBuffer */
++#endif
++
++/* Initialize frame types to RFC 2516 values. Some broken peers apparently
++ use different frame types... sigh... */
++
++UINT16_t Eth_PPPOE_Discovery = ETH_PPPOE_DISCOVERY;
++UINT16_t Eth_PPPOE_Session = ETH_PPPOE_SESSION;
++
++/**********************************************************************
++*%FUNCTION: etherType
++*%ARGUMENTS:
++* packet -- a received PPPoE packet
++*%RETURNS:
++* ethernet packet type (see /usr/include/net/ethertypes.h)
++*%DESCRIPTION:
++* Checks the ethernet packet header to determine its type.
++* We should only be receveing DISCOVERY and SESSION types if the BPF
++* is set up correctly. Logs an error if an unexpected type is received.
++* Note that the ethernet type names come from &quot;pppoe.h&quot; and the packet
++* packet structure names use the LINUX dialect to maintain consistency
++* with the rest of this file. See the BSD section of &quot;pppoe.h&quot; for
++* translations of the data structure names.
++***********************************************************************/
++UINT16_t
++etherType(PPPoEPacket *packet)
++{
++ UINT16_t type = (UINT16_t) ntohs(packet-&gt;ethHdr.h_proto);
++ if (type != Eth_PPPOE_Discovery &amp;&amp; type != Eth_PPPOE_Session) {
++ syslog(LOG_ERR, &quot;Invalid ether type 0x%x&quot;, type);
++ }
++ return type;
++}
++
++#ifdef USE_BPF
++/**********************************************************************
++*%FUNCTION: getHWaddr
++*%ARGUMENTS:
++* ifname -- name of interface
++* hwaddr -- buffer for ehthernet address
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Locates the Ethernet hardware address for an interface.
++***********************************************************************/
++void
++getHWaddr(int sock, char const *ifname, unsigned char *hwaddr)
++{
++ char inbuf[8192];
++ const struct sockaddr_dl *sdl;
++ struct ifconf ifc;
++ struct ifreq ifreq, *ifr;
++ int i;
++ int found = 0;
++
++ ifc.ifc_len = sizeof(inbuf);
++ ifc.ifc_buf = inbuf;
++ if (ioctl(sock, SIOCGIFCONF, &amp;ifc) &lt; 0) {
++ fatalSys(&quot;SIOCGIFCONF&quot;);
++ }
++ ifr = ifc.ifc_req;
++ ifreq.ifr_name[0] = '\0';
++ for (i = 0; i &lt; ifc.ifc_len; ) {
++ ifr = (struct ifreq *)((caddr_t)ifc.ifc_req + i);
++ i += sizeof(ifr-&gt;ifr_name) +
++ (ifr-&gt;ifr_addr.sa_len &gt; sizeof(struct sockaddr)
++ ? ifr-&gt;ifr_addr.sa_len
++ : sizeof(struct sockaddr));
++ if (ifr-&gt;ifr_addr.sa_family == AF_LINK) {
++ sdl = (const struct sockaddr_dl *) &amp;ifr-&gt;ifr_addr;
++ if ((sdl-&gt;sdl_type == IFT_ETHER) &amp;&amp;
++ (sdl-&gt;sdl_alen == ETH_ALEN) &amp;&amp;
++ !strncmp(ifname, ifr-&gt;ifr_name, sizeof(ifr-&gt;ifr_name))) {
++ if (found) {
++ char buffer[256];
++ sprintf(buffer, &quot;interface %.16s has more than one ethernet address&quot;, ifname);
++ rp_fatal(buffer);
++ } else {
++ found = 1;
++ memcpy(hwaddr, LLADDR(sdl), ETH_ALEN);
++ }
++ }
++ }
++ }
++ if (!found) {
++ char buffer[256];
++ sprintf(buffer, &quot;interface %.16s has no ethernet address&quot;, ifname);
++ rp_fatal(buffer);
++ }
++}
++
++/**********************************************************************
++*%FUNCTION: initFilter
++*%ARGUMENTS:
++* fd -- file descriptor of BSD device
++* type -- Ethernet frame type (0 for watch mode)
++* hwaddr -- buffer with ehthernet address
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Initializes the packet filter rules.
++***********************************************************************/
++void
++initFilter(int fd, UINT16_t type, unsigned char *hwaddr)
++{
++ /* Packet Filter Instructions:
++ * Note that the ethernet type names come from &quot;pppoe.h&quot; and are
++ * used here to maintain consistency with the rest of this file. */
++ static struct bpf_insn bpfRun[] = { /* run PPPoE */
++ BPF_STMT(BPF_LD+BPF_H+BPF_ABS, 12), /* ethernet type */
++ BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, ETH_PPPOE_SESSION, 5, 0),
++ BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, ETH_PPPOE_DISCOVERY, 0, 9),
++ BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 0), /* first word of dest. addr */
++#define PPPOE_BCAST_CMPW 4 /* offset of word compare */
++ BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, 0, 0, 2),
++ BPF_STMT(BPF_LD+BPF_H+BPF_ABS, 4), /* next 1/2 word of dest. */
++#define PPPOE_BCAST_CMPH 6 /* offset of 1/2 word compare */
++ BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, 0, 4, 0),
++ BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 0), /* first word of dest. addr */
++#define PPPOE_FILTER_CMPW 8 /* offset of word compare */
++ BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, 0, 0, 3),
++ BPF_STMT(BPF_LD+BPF_H+BPF_ABS, 4), /* next 1/2 word of dest. */
++#define PPPOE_FILTER_CMPH 10 /* offset of 1/rd compare */
++ BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, 0, 0, 1),
++ BPF_STMT(BPF_RET+BPF_K, (u_int) -1), /* keep packet */
++ BPF_STMT(BPF_RET+BPF_K, 0), /* drop packet */
++ };
++
++ /* Fix the potentially varying parts */
++ bpfRun[1].code = (u_short) BPF_JMP+BPF_JEQ+BPF_K;
++ bpfRun[1].jt = 5;
++ bpfRun[1].jf = 0;
++ bpfRun[1].k = Eth_PPPOE_Session;
++
++ bpfRun[2].code = (u_short) BPF_JMP+BPF_JEQ+BPF_K;
++ bpfRun[2].jt = 0;
++ bpfRun[2].jf = 9;
++ bpfRun[2].k = Eth_PPPOE_Discovery;
++
++ {
++ struct bpf_insn bpfInsn[sizeof(bpfRun) / sizeof(bpfRun[0])];
++ struct bpf_program bpfProgram;
++ memcpy(bpfInsn, bpfRun, sizeof(bpfRun));
++ bpfInsn[PPPOE_BCAST_CMPW].k = ((0xff &lt;&lt; 24) | (0xff &lt;&lt; 16) |
++ (0xff &lt;&lt; 8) | 0xff);
++ bpfInsn[PPPOE_BCAST_CMPH].k = ((0xff &lt;&lt; 8) | 0xff);
++ bpfInsn[PPPOE_FILTER_CMPW].k = ((hwaddr[0] &lt;&lt; 24) | (hwaddr[1] &lt;&lt; 16) |
++ (hwaddr[2] &lt;&lt; 8) | hwaddr[3]);
++ bpfInsn[PPPOE_FILTER_CMPH].k = ((hwaddr[4] &lt;&lt; 8) | hwaddr[5]);
++ bpfProgram.bf_len = (sizeof(bpfInsn) / sizeof(bpfInsn[0]));
++ bpfProgram.bf_insns = &amp;bpfInsn[0];
++
++ /* Apply the filter */
++ if (ioctl(fd, BIOCSETF, &amp;bpfProgram) &lt; 0) {
++ fatalSys(&quot;ioctl(BIOCSETF)&quot;);
++ }
++ }
++}
++
++/**********************************************************************
++*%FUNCTION: openInterface
++*%ARGUMENTS:
++* ifname -- name of interface
++* type -- Ethernet frame type (0 for any frame type)
++* hwaddr -- if non-NULL, set to the hardware address
++*%RETURNS:
++* A file descriptor for talking with the Ethernet card. Exits on error.
++* Note that the Linux version of this routine returns a socket instead.
++*%DESCRIPTION:
++* Opens a BPF on an interface for all PPPoE traffic (discovery and
++* session). If 'type' is 0, uses promiscuous mode to watch any PPPoE
++* traffic on this network.
++***********************************************************************/
++int
++openInterface(char const *ifname, UINT16_t type, unsigned char *hwaddr)
++{
++ static int fd = -1;
++ char bpfName[32];
++ u_int optval;
++ struct bpf_version bpf_ver;
++ struct ifreq ifr;
++ int sock;
++ int i;
++
++ /* BSD only opens one socket for both Discovery and Session packets */
++ if (fd &gt;= 0) {
++ return fd;
++ }
++
++ /* Find a free BPF device */
++ for (i = 0; i &lt; 256; i++) {
++ sprintf(bpfName, &quot;/dev/bpf%d&quot;, i);
++ if (((fd = open(bpfName, O_RDWR, 0)) &gt;= 0) ||
++ (errno != EBUSY)) {
++ break;
++ }
++ }
++ if (fd &lt; 0) {
++ switch (errno) {
++ case EACCES: /* permission denied */
++ {
++ char buffer[256];
++ sprintf(buffer, &quot;Cannot open %.32s -- pppoe must be run as root.&quot;, bpfName);
++ rp_fatal(buffer);
++ }
++ break;
++ case EBUSY:
++ case ENOENT: /* no such file */
++ if (i == 0) {
++ rp_fatal(&quot;No /dev/bpf* devices (check your kernel configuration for BPF support)&quot;);
++ } else {
++ rp_fatal(&quot;All /dev/bpf* devices are in use&quot;);
++ }
++ break;
++ }
++ fatalSys(bpfName);
++ }
++
++ if ((sock = socket(AF_LOCAL, SOCK_DGRAM, 0)) &lt; 0) {
++ fatalSys(&quot;socket&quot;);
++ }
++
++ /* Check that the interface is up */
++ strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
++ if (ioctl(sock, SIOCGIFFLAGS, &amp;ifr) &lt; 0) {
++ fatalSys(&quot;ioctl(SIOCGIFFLAGS)&quot;);
++ }
++ if ((ifr.ifr_flags &amp; IFF_UP) == 0) {
++ char buffer[256];
++ sprintf(buffer, &quot;Interface %.16s is not up\n&quot;, ifname);
++ rp_fatal(buffer);
++ }
++
++ /* Fill in hardware address and initialize the packet filter rules */
++ if (hwaddr == NULL) {
++ rp_fatal(&quot;openInterface: no hwaddr arg.&quot;);
++ }
++ getHWaddr(sock, ifname, hwaddr);
++ initFilter(fd, type, hwaddr);
++
++ /* Sanity check on MTU -- apparently does not work on OpenBSD */
++#if !defined(__OpenBSD__)
++ strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
++ if (ioctl(sock, SIOCGIFMTU, &amp;ifr) &lt; 0) {
++ fatalSys(&quot;ioctl(SIOCGIFMTU)&quot;);
++ }
++ if (ifr.ifr_mtu &lt; ETH_DATA_LEN) {
++ char buffer[256];
++ sprintf(buffer, &quot;Interface %.16s has MTU of %d -- should be %d. You may have serious connection problems.&quot;,
++ ifname, ifr.ifr_mtu, ETH_DATA_LEN);
++ printErr(buffer);
++ }
++#endif
++
++ /* done with the socket */
++ if (close(sock) &lt; 0) {
++ fatalSys(&quot;close&quot;);
++ }
++
++ /* Check the BPF version number */
++ if (ioctl(fd, BIOCVERSION, &amp;bpf_ver) &lt; 0) {
++ fatalSys(&quot;ioctl(BIOCVERSION)&quot;);
++ }
++ if ((bpf_ver.bv_major != BPF_MAJOR_VERSION) ||
++ (bpf_ver.bv_minor &lt; BPF_MINOR_VERSION)) {
++ char buffer[256];
++ sprintf(buffer, &quot;Unsupported BPF version: %d.%d (kernel: %d.%d)&quot;,
++ BPF_MAJOR_VERSION, BPF_MINOR_VERSION,
++ bpf_ver.bv_major, bpf_ver.bv_minor);
++ rp_fatal(buffer);
++ }
++
++ /* allocate a receive packet buffer */
++ if (ioctl(fd, BIOCGBLEN, &amp;bpfLength) &lt; 0) {
++ fatalSys(&quot;ioctl(BIOCGBLEN)&quot;);
++ }
++ if (!(bpfBuffer = (unsigned char *) malloc(bpfLength))) {
++ rp_fatal(&quot;malloc&quot;);
++ }
++
++ /* reads should return as soon as there is a packet available */
++ optval = 1;
++ if (ioctl(fd, BIOCIMMEDIATE, &amp;optval) &lt; 0) {
++ fatalSys(&quot;ioctl(BIOCIMMEDIATE)&quot;);
++ }
++
++ /* Bind the interface to the filter */
++ strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
++ if (ioctl(fd, BIOCSETIF, &amp;ifr) &lt; 0) {
++ char buffer[256];
++ sprintf(buffer, &quot;ioctl(BIOCSETIF) can't select interface %.16s&quot;,
++ ifname);
++ rp_fatal(buffer);
++ }
++
++ syslog(LOG_INFO, &quot;Interface=%.16s HWaddr=%02X:%02X:%02X:%02X:%02X:%02X Device=%.32s Buffer size=%d&quot;,
++ ifname,
++ hwaddr[0], hwaddr[1], hwaddr[2],
++ hwaddr[3], hwaddr[4], hwaddr[5],
++ bpfName, bpfLength);
++ return fd;
++}
++
++#endif /* USE_BPF */
++
++#ifdef USE_LINUX_PACKET
++/**********************************************************************
++*%FUNCTION: openInterface
++*%ARGUMENTS:
++* ifname -- name of interface
++* type -- Ethernet frame type
++* hwaddr -- if non-NULL, set to the hardware address
++*%RETURNS:
++* A raw socket for talking to the Ethernet card. Exits on error.
++*%DESCRIPTION:
++* Opens a raw Ethernet socket
++***********************************************************************/
++int
++openInterface(char const *ifname, UINT16_t type, unsigned char *hwaddr)
++{
++ int optval=1;
++ int fd;
++ struct ifreq ifr;
++ int domain, stype;
++
++#ifdef HAVE_STRUCT_SOCKADDR_LL
++ struct sockaddr_ll sa;
++#else
++ struct sockaddr sa;
++#endif
++
++ memset(&amp;sa, 0, sizeof(sa));
++
++#ifdef HAVE_STRUCT_SOCKADDR_LL
++ domain = PF_PACKET;
++ stype = SOCK_RAW;
++#else
++ domain = PF_INET;
++ stype = SOCK_PACKET;
++#endif
++
++ if ((fd = socket(domain, stype, htons(type))) &lt; 0) {
++ /* Give a more helpful message for the common error case */
++ if (errno == EPERM) {
++ rp_fatal(&quot;Cannot create raw socket -- pppoe must be run as root.&quot;);
++ }
++ fatalSys(&quot;socket&quot;);
++ }
++
++ if (setsockopt(fd, SOL_SOCKET, SO_BROADCAST, &amp;optval, sizeof(optval)) &lt; 0) {
++ fatalSys(&quot;setsockopt&quot;);
++ }
++
++ /* Fill in hardware address */
++ if (hwaddr) {
++ strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
++ if (ioctl(fd, SIOCGIFHWADDR, &amp;ifr) &lt; 0) {
++ fatalSys(&quot;ioctl(SIOCGIFHWADDR)&quot;);
++ }
++ memcpy(hwaddr, ifr.ifr_hwaddr.sa_data, ETH_ALEN);
++#ifdef ARPHRD_ETHER
++ if (ifr.ifr_hwaddr.sa_family != ARPHRD_ETHER) {
++ char buffer[256];
++ sprintf(buffer, &quot;Interface %.16s is not Ethernet&quot;, ifname);
++ rp_fatal(buffer);
++ }
++#endif
++ if (NOT_UNICAST(hwaddr)) {
++ char buffer[256];
++ sprintf(buffer,
++ &quot;Interface %.16s has broadcast/multicast MAC address??&quot;,
++ ifname);
++ rp_fatal(buffer);
++ }
++ }
++
++ /* Sanity check on MTU */
++ strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
++ if (ioctl(fd, SIOCGIFMTU, &amp;ifr) &lt; 0) {
++ fatalSys(&quot;ioctl(SIOCGIFMTU)&quot;);
++ }
++ if (ifr.ifr_mtu &lt; ETH_DATA_LEN) {
++ char buffer[256];
++ sprintf(buffer, &quot;Interface %.16s has MTU of %d -- should be %d. You may have serious connection problems.&quot;,
++ ifname, ifr.ifr_mtu, ETH_DATA_LEN);
++ printErr(buffer);
++ }
++
++#ifdef HAVE_STRUCT_SOCKADDR_LL
++ /* Get interface index */
++ sa.sll_family = AF_PACKET;
++ sa.sll_protocol = htons(type);
++
++ strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
++ if (ioctl(fd, SIOCGIFINDEX, &amp;ifr) &lt; 0) {
++ fatalSys(&quot;ioctl(SIOCFIGINDEX): Could not get interface index&quot;);
++ }
++ sa.sll_ifindex = ifr.ifr_ifindex;
++
++#else
++ strcpy(sa.sa_data, ifname);
++#endif
++
++ /* We're only interested in packets on specified interface */
++ if (bind(fd, (struct sockaddr *) &amp;sa, sizeof(sa)) &lt; 0) {
++ fatalSys(&quot;bind&quot;);
++ }
++
++ return fd;
++}
++
++#endif /* USE_LINUX */
++
++/***********************************************************************
++*%FUNCTION: sendPacket
++*%ARGUMENTS:
++* sock -- socket to send to
++* pkt -- the packet to transmit
++* size -- size of packet (in bytes)
++*%RETURNS:
++* 0 on success; -1 on failure
++*%DESCRIPTION:
++* Transmits a packet
++***********************************************************************/
++int
++sendPacket(PPPoEConnection *conn, int sock, PPPoEPacket *pkt, int size)
++{
++#if defined(USE_BPF)
++ if (write(sock, pkt, size) &lt; 0) {
++ sysErr(&quot;write (sendPacket)&quot;);
++ return -1;
++ }
++#elif defined(HAVE_STRUCT_SOCKADDR_LL)
++ if (send(sock, pkt, size, 0) &lt; 0) {
++ sysErr(&quot;send (sendPacket)&quot;);
++ return -1;
++ }
++#else
++#ifdef USE_DLPI
++
++#define ABS(x) ((x) &lt; 0 ? -(x) : (x))
++
++ u_char addr[MAXDLADDR];
++ u_char phys[MAXDLADDR];
++ u_char sap[MAXDLADDR];
++ u_char xmitbuf[MAXDLBUF];
++ int data_size;
++
++ short tmp_sap;
++
++ tmp_sap = htons(pkt-&gt;ethHdr.h_proto);
++ data_size = size - sizeof(struct ethhdr);
++
++ memcpy((char *)phys, (char *)pkt-&gt;ethHdr.h_dest, ETHERADDRL);
++ memcpy((char *)sap, (char *)&amp;tmp_sap, sizeof(ushort_t));
++ memcpy((char *)xmitbuf, (char *)pkt + sizeof(struct ethhdr), data_size);
++
++ if (dl_saplen &gt; 0) { /* order is sap+phys */
++ (void) memcpy((char*)addr, (char*)&amp;sap, dl_abssaplen);
++ (void) memcpy((char*)addr+dl_abssaplen, (char*)phys, ETHERADDRL);
++ } else { /* order is phys+sap */
++ (void) memcpy((char*)addr, (char*)phys, ETHERADDRL);
++ (void) memcpy((char*)addr+ETHERADDRL, (char*)&amp;sap, dl_abssaplen);
++ }
++
++#ifdef DL_DEBUG
++ printf(&quot;%02x:%02x:%02x:%02x:%02x:%02x %02x:%02x\n&quot;,
++ addr[0],addr[1],addr[2],addr[3],addr[4],addr[5],
++ addr[6],addr[7]);
++#endif
++
++ dlunitdatareq(sock, addr, dl_addrlen, 0, 0, xmitbuf, data_size);
++
++
++
++#else
++ struct sockaddr sa;
++
++ if (!conn) {
++ rp_fatal(&quot;relay and server not supported on Linux 2.0 kernels&quot;);
++ }
++ strcpy(sa.sa_data, conn-&gt;ifName);
++ if (sendto(sock, pkt, size, 0, &amp;sa, sizeof(sa)) &lt; 0) {
++ sysErr(&quot;sendto (sendPacket)&quot;);
++ return -1;
++ }
++#endif
++#endif
++ return 0;
++}
++
++#ifdef USE_BPF
++/***********************************************************************
++*%FUNCTION: clearPacketHeader
++*%ARGUMENTS:
++* pkt -- packet that needs its head clearing
++*%RETURNS:
++* nothing
++*%DESCRIPTION:
++* Clears a PPPoE packet header after a truncated packet has been
++* received. Insures that the packet will fail any integrity tests
++* and will be discarded by upper level routines. Also resets the
++* bpfSize and bpfOffset variables to force a new read on the next
++* call to receivePacket().
++***********************************************************************/
++void
++clearPacketHeader(PPPoEPacket *pkt)
++{
++ bpfSize = bpfOffset = 0;
++ memset(pkt, 0, HDR_SIZE);
++}
++#endif
++
++/***********************************************************************
++*%FUNCTION: receivePacket
++*%ARGUMENTS:
++* sock -- socket to read from
++* pkt -- place to store the received packet
++* size -- set to size of packet in bytes
++*%RETURNS:
++* &gt;= 0 if all OK; &lt; 0 if error
++*%DESCRIPTION:
++* Receives a packet
++***********************************************************************/
++int
++receivePacket(int sock, PPPoEPacket *pkt, int *size)
++{
++#ifdef USE_BPF
++ struct bpf_hdr hdr;
++ int seglen, copylen;
++
++ if (bpfSize &lt;= 0) {
++ bpfOffset = 0;
++ if ((bpfSize = read(sock, bpfBuffer, bpfLength)) &lt; 0) {
++ sysErr(&quot;read (receivePacket)&quot;);
++ return -1;
++ }
++ }
++ if (bpfSize &lt; sizeof(hdr)) {
++ syslog(LOG_ERR, &quot;Truncated bpf packet header: len=%d&quot;, bpfSize);
++ clearPacketHeader(pkt); /* resets bpfSize and bpfOffset */
++ return 0;
++ }
++ memcpy(&amp;hdr, bpfBuffer + bpfOffset, sizeof(hdr));
++ if (hdr.bh_caplen != hdr.bh_datalen) {
++ syslog(LOG_ERR, &quot;Truncated bpf packet: caplen=%d, datalen=%d&quot;,
++ hdr.bh_caplen, hdr.bh_datalen);
++ clearPacketHeader(pkt); /* resets bpfSize and bpfOffset */
++ return 0;
++ }
++ seglen = hdr.bh_hdrlen + hdr.bh_caplen;
++ if (seglen &gt; bpfSize) {
++ syslog(LOG_ERR, &quot;Truncated bpf packet: seglen=%d, bpfSize=%d&quot;,
++ seglen, bpfSize);
++ clearPacketHeader(pkt); /* resets bpfSize and bpfOffset */
++ return 0;
++ }
++ seglen = BPF_WORDALIGN(seglen);
++ *size = copylen = ((hdr.bh_caplen &lt; sizeof(PPPoEPacket)) ?
++ hdr.bh_caplen : sizeof(PPPoEPacket));
++ memcpy(pkt, bpfBuffer + bpfOffset + hdr.bh_hdrlen, copylen);
++ if (seglen &gt;= bpfSize) {
++ bpfSize = bpfOffset = 0;
++ } else {
++ bpfSize -= seglen;
++ bpfOffset += seglen;
++ }
++#else
++#ifdef USE_DLPI
++ struct strbuf data;
++ int flags = 0;
++ int retval;
++
++ data.buf = (char *) pkt;
++ data.maxlen = MAXDLBUF;
++ data.len = 0;
++
++ if ((retval = getmsg(sock, NULL, &amp;data, &amp;flags)) &lt; 0) {
++ sysErr(&quot;read (receivePacket)&quot;);
++ return -1;
++ }
++
++ *size = data.len;
++
++#else
++ if ((*size = recv(sock, pkt, sizeof(PPPoEPacket), 0)) &lt; 0) {
++ sysErr(&quot;recv (receivePacket)&quot;);
++ return -1;
++ }
++#endif
++#endif
++ return 0;
++}
++
++#ifdef USE_DLPI
++/**********************************************************************
++*%FUNCTION: openInterface
++*%ARGUMENTS:
++* ifname -- name of interface
++* type -- Ethernet frame type
++* hwaddr -- if non-NULL, set to the hardware address
++*%RETURNS:
++* A raw socket for talking to the Ethernet card. Exits on error.
++*%DESCRIPTION:
++* Opens a raw Ethernet socket
++***********************************************************************/
++int
++openInterface(char const *ifname, UINT16_t type, unsigned char *hwaddr)
++{
++ int fd;
++ long buf[MAXDLBUF];
++
++ union DL_primitives *dlp;
++
++ char base_dev[PATH_MAX];
++ int ppa;
++
++ if(strlen(ifname) &gt; PATH_MAX) {
++ rp_fatal(&quot;socket: string to long&quot;);
++ }
++
++ ppa = atoi(&amp;ifname[strlen(ifname)-1]);
++ strncpy(base_dev, ifname, PATH_MAX);
++ base_dev[strlen(base_dev)-1] = '\0';
++
++ if (( fd = open(base_dev, O_RDWR)) &lt; 0) {
++ /* Give a more helpful message for the common error case */
++ if (errno == EPERM) {
++ rp_fatal(&quot;Cannot create raw socket -- pppoe must be run as root.&quot;);
++ }
++ fatalSys(&quot;socket&quot;);
++ }
++
++ dlinforeq(fd);
++ dlinfoack(fd, (char *)buf);
++
++ dlp = (union DL_primitives*) buf;
++
++ dl_abssaplen = ABS(dlp-&gt;info_ack.dl_sap_length);
++ dl_saplen = dlp-&gt;info_ack.dl_sap_length;
++ if (ETHERADDRL != (dlp-&gt;info_ack.dl_addr_length - dl_abssaplen))
++ fatalSys(&quot;invalid destination physical address length&quot;);
++ dl_addrlen = dl_abssaplen + ETHERADDRL;
++
++ dlattachreq(fd, ppa);
++ dlokack(fd, (char *)buf);
++
++ dlbindreq(fd, type, 0, DL_CLDLS, 0, 0);
++ dlbindack(fd, (char *)buf);
++
++ if ( strioctl(fd, DLIOCRAW, -1, 0, NULL) &lt; 0 ) {
++ fatalSys(&quot;DLIOCRAW&quot;);
++ }
++
++ if (ioctl(fd, I_FLUSH, FLUSHR) &lt; 0) fatalSys(&quot;I_FLUSH&quot;);
++
++ return fd;
++}
++
++/* cloned from dlcommon.c */
++
++void dlpromisconreq(int fd, u_long level)
++{
++ dl_promiscon_req_t promiscon_req;
++ struct strbuf ctl;
++ int flags;
++
++ promiscon_req.dl_primitive = DL_PROMISCON_REQ;
++ promiscon_req.dl_level = level;
++
++ ctl.maxlen = 0;
++ ctl.len = sizeof (promiscon_req);
++ ctl.buf = (char *) &amp;promiscon_req;
++
++ flags = 0;
++
++ if (putmsg(fd, &amp;ctl, (struct strbuf*) NULL, flags) &lt; 0)
++ fatalSys(&quot;dlpromiscon: putmsg&quot;);
++
++}
++
++void dlinforeq(int fd)
++{
++ dl_info_req_t info_req;
++ struct strbuf ctl;
++ int flags;
++
++ info_req.dl_primitive = DL_INFO_REQ;
++
++ ctl.maxlen = 0;
++ ctl.len = sizeof (info_req);
++ ctl.buf = (char *) &amp;info_req;
++
++ flags = RS_HIPRI;
++
++ if (putmsg(fd, &amp;ctl, (struct strbuf*) NULL, flags) &lt; 0)
++ fatalSys(&quot;dlinforeq: putmsg&quot;);
++}
++
++void dlunitdatareq(int fd, u_char *addrp, int addrlen, u_long minpri, u_long maxpri, u_char *datap, int datalen)
++{
++ long buf[MAXDLBUF];
++ union DL_primitives *dlp;
++ struct strbuf data, ctl;
++
++ dlp = (union DL_primitives*) buf;
++
++ dlp-&gt;unitdata_req.dl_primitive = DL_UNITDATA_REQ;
++ dlp-&gt;unitdata_req.dl_dest_addr_length = addrlen;
++ dlp-&gt;unitdata_req.dl_dest_addr_offset = sizeof (dl_unitdata_req_t);
++ dlp-&gt;unitdata_req.dl_priority.dl_min = minpri;
++ dlp-&gt;unitdata_req.dl_priority.dl_max = maxpri;
++
++ (void) memcpy(OFFADDR(dlp, sizeof (dl_unitdata_req_t)), addrp, addrlen);
++
++ ctl.maxlen = 0;
++ ctl.len = sizeof (dl_unitdata_req_t) + addrlen;
++ ctl.buf = (char *) buf;
++
++ data.maxlen = 0;
++ data.len = datalen;
++ data.buf = (char *) datap;
++
++ if (putmsg(fd, &amp;ctl, &amp;data, 0) &lt; 0)
++ fatalSys(&quot;dlunitdatareq: putmsg&quot;);
++}
++
++void dlinfoack(int fd, char *bufp)
++{
++ union DL_primitives *dlp;
++ struct strbuf ctl;
++ int flags;
++
++ ctl.maxlen = MAXDLBUF;
++ ctl.len = 0;
++ ctl.buf = bufp;
++
++ strgetmsg(fd, &amp;ctl, (struct strbuf*)NULL, &amp;flags, &quot;dlinfoack&quot;);
++
++ dlp = (union DL_primitives *) ctl.buf;
++
++ expecting(DL_INFO_ACK, dlp);
++
++ if (ctl.len &lt; sizeof (dl_info_ack_t)) {
++ char buffer[256];
++ sprintf(buffer, &quot;dlinfoack: response ctl.len too short: %d&quot;, ctl.len);
++ rp_fatal(buffer);
++ }
++
++ if (flags != RS_HIPRI)
++ rp_fatal(&quot;dlinfoack: DL_INFO_ACK was not M_PCPROTO&quot;);
++
++ if (ctl.len &lt; sizeof (dl_info_ack_t)) {
++ char buffer[256];
++ sprintf(buffer, &quot;dlinfoack: short response ctl.len: %d&quot;, ctl.len);
++ rp_fatal(buffer);
++ }
++}
++
++void dlbindreq(int fd, u_long sap, u_long max_conind, u_long service_mode, u_long conn_mgmt, u_long xidtest)
++{
++ dl_bind_req_t bind_req;
++ struct strbuf ctl;
++ int flags;
++
++ bind_req.dl_primitive = DL_BIND_REQ;
++ bind_req.dl_sap = sap;
++ bind_req.dl_max_conind = max_conind;
++ bind_req.dl_service_mode = service_mode;
++ bind_req.dl_conn_mgmt = conn_mgmt;
++ bind_req.dl_xidtest_flg = xidtest;
++
++ ctl.maxlen = 0;
++ ctl.len = sizeof (bind_req);
++ ctl.buf = (char *) &amp;bind_req;
++
++ flags = 0;
++
++ if (putmsg(fd, &amp;ctl, (struct strbuf*) NULL, flags) &lt; 0)
++ fatalSys(&quot;dlbindreq: putmsg&quot;);
++}
++
++void dlattachreq(int fd, u_long ppa)
++{
++ dl_attach_req_t attach_req;
++ struct strbuf ctl;
++ int flags;
++
++ attach_req.dl_primitive = DL_ATTACH_REQ;
++ attach_req.dl_ppa = ppa;
++
++ ctl.maxlen = 0;
++ ctl.len = sizeof (attach_req);
++ ctl.buf = (char *) &amp;attach_req;
++
++ flags = 0;
++
++ if (putmsg(fd, &amp;ctl, (struct strbuf*) NULL, flags) &lt; 0)
++ fatalSys(&quot;dlattachreq: putmsg&quot;);
++}
++
++void dlokack(int fd, char *bufp)
++{
++ union DL_primitives *dlp;
++ struct strbuf ctl;
++ int flags;
++
++ ctl.maxlen = MAXDLBUF;
++ ctl.len = 0;
++ ctl.buf = bufp;
++
++ strgetmsg(fd, &amp;ctl, (struct strbuf*)NULL, &amp;flags, &quot;dlokack&quot;);
++
++ dlp = (union DL_primitives *) ctl.buf;
++
++ expecting(DL_OK_ACK, dlp);
++
++ if (ctl.len &lt; sizeof (dl_ok_ack_t)) {
++ char buffer[256];
++ sprintf(buffer, &quot;dlokack: response ctl.len too short: %d&quot;, ctl.len);
++ rp_fatal(buffer);
++ }
++
++ if (flags != RS_HIPRI)
++ rp_fatal(&quot;dlokack: DL_OK_ACK was not M_PCPROTO&quot;);
++
++ if (ctl.len &lt; sizeof (dl_ok_ack_t)) {
++ char buffer[256];
++ sprintf(buffer, &quot;dlokack: short response ctl.len: %d&quot;, ctl.len);
++ rp_fatal(buffer);
++ }
++}
++
++void dlbindack(int fd, char *bufp)
++{
++ union DL_primitives *dlp;
++ struct strbuf ctl;
++ int flags;
++
++ ctl.maxlen = MAXDLBUF;
++ ctl.len = 0;
++ ctl.buf = bufp;
++
++ strgetmsg(fd, &amp;ctl, (struct strbuf*)NULL, &amp;flags, &quot;dlbindack&quot;);
++
++ dlp = (union DL_primitives *) ctl.buf;
++
++ expecting(DL_BIND_ACK, dlp);
++
++ if (flags != RS_HIPRI)
++ rp_fatal(&quot;dlbindack: DL_OK_ACK was not M_PCPROTO&quot;);
++
++ if (ctl.len &lt; sizeof (dl_bind_ack_t)) {
++ char buffer[256];
++ sprintf(buffer, &quot;dlbindack: short response ctl.len: %d&quot;, ctl.len);
++ rp_fatal(buffer);
++ }
++}
++
++int strioctl(int fd, int cmd, int timout, int len, char *dp)
++{
++ struct strioctl sioc;
++ int rc;
++
++ sioc.ic_cmd = cmd;
++ sioc.ic_timout = timout;
++ sioc.ic_len = len;
++ sioc.ic_dp = dp;
++ rc = ioctl(fd, I_STR, &amp;sioc);
++
++ if (rc &lt; 0)
++ return (rc);
++ else
++ return (sioc.ic_len);
++}
++
++void strgetmsg(int fd, struct strbuf *ctlp, struct strbuf *datap, int *flagsp, char *caller)
++{
++ int rc;
++ static char errmsg[80];
++
++ /*
++ * Start timer.
++ */
++ (void) signal(SIGALRM, sigalrm);
++ if (alarm(MAXWAIT) &lt; 0) {
++ (void) sprintf(errmsg, &quot;%s: alarm&quot;, caller);
++ fatalSys(errmsg);
++ }
++
++ /*
++ * Set flags argument and issue getmsg().
++ */
++ *flagsp = 0;
++ if ((rc = getmsg(fd, ctlp, datap, flagsp)) &lt; 0) {
++ (void) sprintf(errmsg, &quot;%s: getmsg&quot;, caller);
++ fatalSys(errmsg);
++ }
++
++ /*
++ * Stop timer.
++ */
++ if (alarm(0) &lt; 0) {
++ (void) sprintf(errmsg, &quot;%s: alarm&quot;, caller);
++ fatalSys(errmsg);
++ }
++
++ /*
++ * Check for MOREDATA and/or MORECTL.
++ */
++ if ((rc &amp; (MORECTL | MOREDATA)) == (MORECTL | MOREDATA)) {
++ char buffer[256];
++ sprintf(buffer, &quot;%s: MORECTL|MOREDATA&quot;, caller);
++ rp_fatal(buffer);
++ }
++
++ if (rc &amp; MORECTL) {
++ char buffer[256];
++ sprintf(buffer, &quot;%s: MORECTL&quot;, caller);
++ rp_fatal(buffer);
++ }
++
++ if (rc &amp; MOREDATA) {
++ char buffer[256];
++ sprintf(buffer, &quot;%s: MOREDATA&quot;, caller);
++ rp_fatal(buffer);
++ }
++
++ /*
++ * Check for at least sizeof (long) control data portion.
++ */
++ if (ctlp-&gt;len &lt; sizeof (long)) {
++ char buffer[256];
++ sprintf(buffer, &quot;getmsg: control portion length &lt; sizeof (long): %d&quot;, ctlp-&gt;len);
++ rp_fatal(buffer);
++ }
++}
++
++void sigalrm(int sig)
++{
++ (void) rp_fatal(&quot;sigalrm: TIMEOUT&quot;);
++}
++
++void expecting(int prim, union DL_primitives *dlp)
++{
++ if (dlp-&gt;dl_primitive != (u_long)prim) {
++ char buffer[256];
++ sprintf(buffer, &quot;expected %s got %s&quot;, dlprim(prim), dlprim(dlp-&gt;dl_primitive));
++ rp_fatal(buffer);
++ exit(1);
++ }
++}
++
++char *dlprim(u_long prim)
++{
++ static char primbuf[80];
++
++ switch ((int)prim) {
++ CASERET(DL_INFO_REQ);
++ CASERET(DL_INFO_ACK);
++ CASERET(DL_ATTACH_REQ);
++ CASERET(DL_DETACH_REQ);
++ CASERET(DL_BIND_REQ);
++ CASERET(DL_BIND_ACK);
++ CASERET(DL_UNBIND_REQ);
++ CASERET(DL_OK_ACK);
++ CASERET(DL_ERROR_ACK);
++ CASERET(DL_SUBS_BIND_REQ);
++ CASERET(DL_SUBS_BIND_ACK);
++ CASERET(DL_UNITDATA_REQ);
++ CASERET(DL_UNITDATA_IND);
++ CASERET(DL_UDERROR_IND);
++ CASERET(DL_UDQOS_REQ);
++ CASERET(DL_CONNECT_REQ);
++ CASERET(DL_CONNECT_IND);
++ CASERET(DL_CONNECT_RES);
++ CASERET(DL_CONNECT_CON);
++ CASERET(DL_TOKEN_REQ);
++ CASERET(DL_TOKEN_ACK);
++ CASERET(DL_DISCONNECT_REQ);
++ CASERET(DL_DISCONNECT_IND);
++ CASERET(DL_RESET_REQ);
++ CASERET(DL_RESET_IND);
++ CASERET(DL_RESET_RES);
++ CASERET(DL_RESET_CON);
++ default:
++ (void) sprintf(primbuf, &quot;unknown primitive 0x%lx&quot;, prim);
++ return (primbuf);
++ }
++}
++
++#endif /* USE_DLPI */
+
+
+Property changes on: drakx/trunk/mdk-stage1/rp-pppoe/src/if.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1rppppoesrcinstallsh">Added: drakx/trunk/mdk-stage1/rp-pppoe/src/install-sh</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/src/install-sh (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/src/install-sh 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,238 @@
++#! /bin/sh
++#
++# install - install a program, script, or datafile
++# This comes from X11R5.
++#
++# Calling this script install-sh is preferred over install.sh, to prevent
++# `make' implicit rules from creating a file called install from it
++# when there is no Makefile.
++#
++# This script is compatible with the BSD install script, but was written
++# from scratch.
++#
++
++
++# set DOITPROG to echo to test this script
++
++# Don't use :- since 4.3BSD and earlier shells don't like it.
++doit=&quot;${DOITPROG-}&quot;
++
++
++# put in absolute paths if you don't have them in your path; or use env. vars.
++
++mvprog=&quot;${MVPROG-mv}&quot;
++cpprog=&quot;${CPPROG-cp}&quot;
++chmodprog=&quot;${CHMODPROG-chmod}&quot;
++chownprog=&quot;${CHOWNPROG-chown}&quot;
++chgrpprog=&quot;${CHGRPPROG-chgrp}&quot;
++stripprog=&quot;${STRIPPROG-strip}&quot;
++rmprog=&quot;${RMPROG-rm}&quot;
++mkdirprog=&quot;${MKDIRPROG-mkdir}&quot;
++
++transformbasename=&quot;&quot;
++transform_arg=&quot;&quot;
++instcmd=&quot;$mvprog&quot;
++chmodcmd=&quot;$chmodprog 0755&quot;
++chowncmd=&quot;&quot;
++chgrpcmd=&quot;&quot;
++stripcmd=&quot;&quot;
++rmcmd=&quot;$rmprog -f&quot;
++mvcmd=&quot;$mvprog&quot;
++src=&quot;&quot;
++dst=&quot;&quot;
++dir_arg=&quot;&quot;
++
++while [ x&quot;$1&quot; != x ]; do
++ case $1 in
++ -c) instcmd=&quot;$cpprog&quot;
++ shift
++ continue;;
++
++ -d) dir_arg=true
++ shift
++ continue;;
++
++ -m) chmodcmd=&quot;$chmodprog $2&quot;
++ shift
++ shift
++ continue;;
++
++ -o) chowncmd=&quot;$chownprog $2&quot;
++ shift
++ shift
++ continue;;
++
++ -g) chgrpcmd=&quot;$chgrpprog $2&quot;
++ shift
++ shift
++ continue;;
++
++ -s) stripcmd=&quot;$stripprog&quot;
++ shift
++ continue;;
++
++ -t=*) transformarg=`echo $1 | sed 's/-t=//'`
++ shift
++ continue;;
++
++ -b=*) transformbasename=`echo $1 | sed 's/-b=//'`
++ shift
++ continue;;
++
++ *) if [ x&quot;$src&quot; = x ]
++ then
++ src=$1
++ else
++ # this colon is to work around a 386BSD /bin/sh bug
++ :
++ dst=$1
++ fi
++ shift
++ continue;;
++ esac
++done
++
++if [ x&quot;$src&quot; = x ]
++then
++ echo &quot;install: no input file specified&quot;
++ exit 1
++else
++ true
++fi
++
++if [ x&quot;$dir_arg&quot; != x ]; then
++ dst=$src
++ src=&quot;&quot;
++
++ if [ -d $dst ]; then
++ instcmd=:
++ else
++ instcmd=mkdir
++ fi
++else
++
++# Waiting for this to be detected by the &quot;$instcmd $src $dsttmp&quot; command
++# might cause directories to be created, which would be especially bad
++# if $src (and thus $dsttmp) contains '*'.
++
++ if [ -f $src -o -d $src ]
++ then
++ true
++ else
++ echo &quot;install: $src does not exist&quot;
++ exit 1
++ fi
++
++ if [ x&quot;$dst&quot; = x ]
++ then
++ echo &quot;install: no destination specified&quot;
++ exit 1
++ else
++ true
++ fi
++
++# If destination is a directory, append the input filename; if your system
++# does not like double slashes in filenames, you may need to add some logic
++
++ if [ -d $dst ]
++ then
++ dst=&quot;$dst&quot;/`basename $src`
++ else
++ true
++ fi
++fi
++
++## this sed command emulates the dirname command
++dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
++
++# Make sure that the destination directory exists.
++# this part is taken from Noah Friedman's mkinstalldirs script
++
++# Skip lots of stat calls in the usual case.
++if [ ! -d &quot;$dstdir&quot; ]; then
++defaultIFS='
++'
++IFS=&quot;${IFS-${defaultIFS}}&quot;
++
++oIFS=&quot;${IFS}&quot;
++# Some sh's can't handle IFS=/ for some reason.
++IFS='%'
++set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
++IFS=&quot;${oIFS}&quot;
++
++pathcomp=''
++
++while [ $# -ne 0 ] ; do
++ pathcomp=&quot;${pathcomp}${1}&quot;
++ shift
++
++ if [ ! -d &quot;${pathcomp}&quot; ] ;
++ then
++ $mkdirprog &quot;${pathcomp}&quot;
++ else
++ true
++ fi
++
++ pathcomp=&quot;${pathcomp}/&quot;
++done
++fi
++
++if [ x&quot;$dir_arg&quot; != x ]
++then
++ $doit $instcmd $dst &amp;&amp;
++
++ if [ x&quot;$chowncmd&quot; != x ]; then $doit $chowncmd $dst; else true ; fi &amp;&amp;
++ if [ x&quot;$chgrpcmd&quot; != x ]; then $doit $chgrpcmd $dst; else true ; fi &amp;&amp;
++ if [ x&quot;$stripcmd&quot; != x ]; then $doit $stripcmd $dst; else true ; fi &amp;&amp;
++ if [ x&quot;$chmodcmd&quot; != x ]; then $doit $chmodcmd $dst; else true ; fi
++else
++
++# If we're going to rename the final executable, determine the name now.
++
++ if [ x&quot;$transformarg&quot; = x ]
++ then
++ dstfile=`basename $dst`
++ else
++ dstfile=`basename $dst $transformbasename |
++ sed $transformarg`$transformbasename
++ fi
++
++# don't allow the sed command to completely eliminate the filename
++
++ if [ x&quot;$dstfile&quot; = x ]
++ then
++ dstfile=`basename $dst`
++ else
++ true
++ fi
++
++# Make a temp file name in the proper directory.
++
++ dsttmp=$dstdir/#inst.$$#
++
++# Move or copy the file name to the temp name
++
++ $doit $instcmd $src $dsttmp &amp;&amp;
++
++ trap &quot;rm -f ${dsttmp}&quot; 0 &amp;&amp;
++
++# and set any options; do chmod last to preserve setuid bits
++
++# If any of these fail, we abort the whole thing. If we want to
++# ignore errors from any of these, just make sure not to ignore
++# errors from the above &quot;$doit $instcmd $src $dsttmp&quot; command.
++
++ if [ x&quot;$chowncmd&quot; != x ]; then $doit $chowncmd $dsttmp; else true;fi &amp;&amp;
++ if [ x&quot;$chgrpcmd&quot; != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &amp;&amp;
++ if [ x&quot;$stripcmd&quot; != x ]; then $doit $stripcmd $dsttmp; else true;fi &amp;&amp;
++ if [ x&quot;$chmodcmd&quot; != x ]; then $doit $chmodcmd $dsttmp; else true;fi &amp;&amp;
++
++# Now rename the file to the real destination.
++
++ $doit $rmcmd -f $dstdir/$dstfile &amp;&amp;
++ $doit $mvcmd $dsttmp $dstdir/$dstfile
++
++fi &amp;&amp;
++
++
++exit 0
+
+
+Property changes on: drakx/trunk/mdk-stage1/rp-pppoe/src/install-sh
+___________________________________________________________________
+Added: svn:executable
+ + *
+
+<a id="drakxtrunkmdkstage1rppppoesrcmd5c">Added: drakx/trunk/mdk-stage1/rp-pppoe/src/md5.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/src/md5.c (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/src/md5.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,246 @@
++/*
++ * This code implements the MD5 message-digest algorithm.
++ * The algorithm is due to Ron Rivest. This code was
++ * written by Colin Plumb in 1993, no copyright is claimed.
++ * This code is in the public domain; do with it what you wish.
++ *
++ * Equivalent code is available from RSA Data Security, Inc.
++ * This code has been tested against that, and is equivalent,
++ * except that you don't need to include two pages of legalese
++ * with every copy.
++ *
++ * To compute the message digest of a chunk of bytes, declare an
++ * MD5Context structure, pass it to MD5Init, call MD5Update as
++ * needed on buffers full of bytes, and then call MD5Final, which
++ * will fill a supplied 16-byte array with the digest.
++ */
++#include &lt;string.h&gt; /* for memcpy() */
++#include &quot;md5.h&quot;
++
++void byteReverse(unsigned char *buf, unsigned longs);
++
++/*
++ * Note: this code is harmless on little-endian machines.
++ */
++void byteReverse(unsigned char *buf, unsigned longs)
++{
++ uint32 t;
++ do {
++ t = (uint32) ((unsigned) buf[3] &lt;&lt; 8 | buf[2]) &lt;&lt; 16 |
++ ((unsigned) buf[1] &lt;&lt; 8 | buf[0]);
++ *(uint32 *) buf = t;
++ buf += 4;
++ } while (--longs);
++}
++
++/*
++ * Start MD5 accumulation. Set bit count to 0 and buffer to mysterious
++ * initialization constants.
++ */
++void MD5Init(struct MD5Context *ctx)
++{
++ ctx-&gt;buf[0] = 0x67452301;
++ ctx-&gt;buf[1] = 0xefcdab89;
++ ctx-&gt;buf[2] = 0x98badcfe;
++ ctx-&gt;buf[3] = 0x10325476;
++
++ ctx-&gt;bits[0] = 0;
++ ctx-&gt;bits[1] = 0;
++}
++
++/*
++ * Update context to reflect the concatenation of another buffer full
++ * of bytes.
++ */
++void MD5Update(struct MD5Context *ctx, unsigned char const *buf, unsigned len)
++{
++ uint32 t;
++
++ /* Update bitcount */
++
++ t = ctx-&gt;bits[0];
++ if ((ctx-&gt;bits[0] = t + ((uint32) len &lt;&lt; 3)) &lt; t)
++ ctx-&gt;bits[1]++; /* Carry from low to high */
++ ctx-&gt;bits[1] += len &gt;&gt; 29;
++
++ t = (t &gt;&gt; 3) &amp; 0x3f; /* Bytes already in shsInfo-&gt;data */
++
++ /* Handle any leading odd-sized chunks */
++
++ if (t) {
++ unsigned char *p = (unsigned char *) ctx-&gt;in + t;
++
++ t = 64 - t;
++ if (len &lt; t) {
++ memcpy(p, buf, len);
++ return;
++ }
++ memcpy(p, buf, t);
++ byteReverse(ctx-&gt;in, 16);
++ MD5Transform(ctx-&gt;buf, (uint32 *) ctx-&gt;in);
++ buf += t;
++ len -= t;
++ }
++ /* Process data in 64-byte chunks */
++
++ while (len &gt;= 64) {
++ memcpy(ctx-&gt;in, buf, 64);
++ byteReverse(ctx-&gt;in, 16);
++ MD5Transform(ctx-&gt;buf, (uint32 *) ctx-&gt;in);
++ buf += 64;
++ len -= 64;
++ }
++
++ /* Handle any remaining bytes of data. */
++
++ memcpy(ctx-&gt;in, buf, len);
++}
++
++/*
++ * Final wrapup - pad to 64-byte boundary with the bit pattern
++ * 1 0* (64-bit count of bits processed, MSB-first)
++ */
++void MD5Final(unsigned char digest[16], struct MD5Context *ctx)
++{
++ unsigned count;
++ unsigned char *p;
++
++ /* Compute number of bytes mod 64 */
++ count = (ctx-&gt;bits[0] &gt;&gt; 3) &amp; 0x3F;
++
++ /* Set the first char of padding to 0x80. This is safe since there is
++ always at least one byte free */
++ p = ctx-&gt;in + count;
++ *p++ = 0x80;
++
++ /* Bytes of padding needed to make 64 bytes */
++ count = 64 - 1 - count;
++
++ /* Pad out to 56 mod 64 */
++ if (count &lt; 8) {
++ /* Two lots of padding: Pad the first block to 64 bytes */
++ memset(p, 0, count);
++ byteReverse(ctx-&gt;in, 16);
++ MD5Transform(ctx-&gt;buf, (uint32 *) ctx-&gt;in);
++
++ /* Now fill the next block with 56 bytes */
++ memset(ctx-&gt;in, 0, 56);
++ } else {
++ /* Pad block to 56 bytes */
++ memset(p, 0, count - 8);
++ }
++ byteReverse(ctx-&gt;in, 14);
++
++ /* Append length in bits and transform */
++ ((uint32 *) ctx-&gt;in)[14] = ctx-&gt;bits[0];
++ ((uint32 *) ctx-&gt;in)[15] = ctx-&gt;bits[1];
++
++ MD5Transform(ctx-&gt;buf, (uint32 *) ctx-&gt;in);
++ byteReverse((unsigned char *) ctx-&gt;buf, 4);
++ memcpy(digest, ctx-&gt;buf, 16);
++ memset(ctx, 0, sizeof(ctx)); /* In case it's sensitive */
++}
++
++#ifndef ASM_MD5
++
++/* The four core functions - F1 is optimized somewhat */
++
++/* #define F1(x, y, z) (x &amp; y | ~x &amp; z) */
++#define F1(x, y, z) (z ^ (x &amp; (y ^ z)))
++#define F2(x, y, z) F1(z, x, y)
++#define F3(x, y, z) (x ^ y ^ z)
++#define F4(x, y, z) (y ^ (x | ~z))
++
++/* This is the central step in the MD5 algorithm. */
++#define MD5STEP(f, w, x, y, z, data, s) \
++ ( w += f(x, y, z) + data, w = w&lt;&lt;s | w&gt;&gt;(32-s), w += x )
++
++/*
++ * The core of the MD5 algorithm, this alters an existing MD5 hash to
++ * reflect the addition of 16 longwords of new data. MD5Update blocks
++ * the data and converts bytes into longwords for this routine.
++ */
++void MD5Transform(uint32 buf[4], uint32 const in[16])
++{
++ register uint32 a, b, c, d;
++
++ a = buf[0];
++ b = buf[1];
++ c = buf[2];
++ d = buf[3];
++
++ MD5STEP(F1, a, b, c, d, in[0] + 0xd76aa478, 7);
++ MD5STEP(F1, d, a, b, c, in[1] + 0xe8c7b756, 12);
++ MD5STEP(F1, c, d, a, b, in[2] + 0x242070db, 17);
++ MD5STEP(F1, b, c, d, a, in[3] + 0xc1bdceee, 22);
++ MD5STEP(F1, a, b, c, d, in[4] + 0xf57c0faf, 7);
++ MD5STEP(F1, d, a, b, c, in[5] + 0x4787c62a, 12);
++ MD5STEP(F1, c, d, a, b, in[6] + 0xa8304613, 17);
++ MD5STEP(F1, b, c, d, a, in[7] + 0xfd469501, 22);
++ MD5STEP(F1, a, b, c, d, in[8] + 0x698098d8, 7);
++ MD5STEP(F1, d, a, b, c, in[9] + 0x8b44f7af, 12);
++ MD5STEP(F1, c, d, a, b, in[10] + 0xffff5bb1, 17);
++ MD5STEP(F1, b, c, d, a, in[11] + 0x895cd7be, 22);
++ MD5STEP(F1, a, b, c, d, in[12] + 0x6b901122, 7);
++ MD5STEP(F1, d, a, b, c, in[13] + 0xfd987193, 12);
++ MD5STEP(F1, c, d, a, b, in[14] + 0xa679438e, 17);
++ MD5STEP(F1, b, c, d, a, in[15] + 0x49b40821, 22);
++
++ MD5STEP(F2, a, b, c, d, in[1] + 0xf61e2562, 5);
++ MD5STEP(F2, d, a, b, c, in[6] + 0xc040b340, 9);
++ MD5STEP(F2, c, d, a, b, in[11] + 0x265e5a51, 14);
++ MD5STEP(F2, b, c, d, a, in[0] + 0xe9b6c7aa, 20);
++ MD5STEP(F2, a, b, c, d, in[5] + 0xd62f105d, 5);
++ MD5STEP(F2, d, a, b, c, in[10] + 0x02441453, 9);
++ MD5STEP(F2, c, d, a, b, in[15] + 0xd8a1e681, 14);
++ MD5STEP(F2, b, c, d, a, in[4] + 0xe7d3fbc8, 20);
++ MD5STEP(F2, a, b, c, d, in[9] + 0x21e1cde6, 5);
++ MD5STEP(F2, d, a, b, c, in[14] + 0xc33707d6, 9);
++ MD5STEP(F2, c, d, a, b, in[3] + 0xf4d50d87, 14);
++ MD5STEP(F2, b, c, d, a, in[8] + 0x455a14ed, 20);
++ MD5STEP(F2, a, b, c, d, in[13] + 0xa9e3e905, 5);
++ MD5STEP(F2, d, a, b, c, in[2] + 0xfcefa3f8, 9);
++ MD5STEP(F2, c, d, a, b, in[7] + 0x676f02d9, 14);
++ MD5STEP(F2, b, c, d, a, in[12] + 0x8d2a4c8a, 20);
++
++ MD5STEP(F3, a, b, c, d, in[5] + 0xfffa3942, 4);
++ MD5STEP(F3, d, a, b, c, in[8] + 0x8771f681, 11);
++ MD5STEP(F3, c, d, a, b, in[11] + 0x6d9d6122, 16);
++ MD5STEP(F3, b, c, d, a, in[14] + 0xfde5380c, 23);
++ MD5STEP(F3, a, b, c, d, in[1] + 0xa4beea44, 4);
++ MD5STEP(F3, d, a, b, c, in[4] + 0x4bdecfa9, 11);
++ MD5STEP(F3, c, d, a, b, in[7] + 0xf6bb4b60, 16);
++ MD5STEP(F3, b, c, d, a, in[10] + 0xbebfbc70, 23);
++ MD5STEP(F3, a, b, c, d, in[13] + 0x289b7ec6, 4);
++ MD5STEP(F3, d, a, b, c, in[0] + 0xeaa127fa, 11);
++ MD5STEP(F3, c, d, a, b, in[3] + 0xd4ef3085, 16);
++ MD5STEP(F3, b, c, d, a, in[6] + 0x04881d05, 23);
++ MD5STEP(F3, a, b, c, d, in[9] + 0xd9d4d039, 4);
++ MD5STEP(F3, d, a, b, c, in[12] + 0xe6db99e5, 11);
++ MD5STEP(F3, c, d, a, b, in[15] + 0x1fa27cf8, 16);
++ MD5STEP(F3, b, c, d, a, in[2] + 0xc4ac5665, 23);
++
++ MD5STEP(F4, a, b, c, d, in[0] + 0xf4292244, 6);
++ MD5STEP(F4, d, a, b, c, in[7] + 0x432aff97, 10);
++ MD5STEP(F4, c, d, a, b, in[14] + 0xab9423a7, 15);
++ MD5STEP(F4, b, c, d, a, in[5] + 0xfc93a039, 21);
++ MD5STEP(F4, a, b, c, d, in[12] + 0x655b59c3, 6);
++ MD5STEP(F4, d, a, b, c, in[3] + 0x8f0ccc92, 10);
++ MD5STEP(F4, c, d, a, b, in[10] + 0xffeff47d, 15);
++ MD5STEP(F4, b, c, d, a, in[1] + 0x85845dd1, 21);
++ MD5STEP(F4, a, b, c, d, in[8] + 0x6fa87e4f, 6);
++ MD5STEP(F4, d, a, b, c, in[15] + 0xfe2ce6e0, 10);
++ MD5STEP(F4, c, d, a, b, in[6] + 0xa3014314, 15);
++ MD5STEP(F4, b, c, d, a, in[13] + 0x4e0811a1, 21);
++ MD5STEP(F4, a, b, c, d, in[4] + 0xf7537e82, 6);
++ MD5STEP(F4, d, a, b, c, in[11] + 0xbd3af235, 10);
++ MD5STEP(F4, c, d, a, b, in[2] + 0x2ad7d2bb, 15);
++ MD5STEP(F4, b, c, d, a, in[9] + 0xeb86d391, 21);
++
++ buf[0] += a;
++ buf[1] += b;
++ buf[2] += c;
++ buf[3] += d;
++}
++
++#endif
+
+
+Property changes on: drakx/trunk/mdk-stage1/rp-pppoe/src/md5.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1rppppoesrcmd5h">Added: drakx/trunk/mdk-stage1/rp-pppoe/src/md5.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/src/md5.h (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/src/md5.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,27 @@
++#ifndef MD5_H
++#define MD5_H
++
++#ifdef __alpha
++typedef unsigned int uint32;
++#else
++typedef unsigned long uint32;
++#endif
++
++struct MD5Context {
++ uint32 buf[4];
++ uint32 bits[2];
++ unsigned char in[64];
++};
++
++void MD5Init(struct MD5Context *context);
++void MD5Update(struct MD5Context *context, unsigned char const *buf,
++ unsigned len);
++void MD5Final(unsigned char digest[16], struct MD5Context *context);
++void MD5Transform(uint32 buf[4], uint32 const in[16]);
++
++/*
++ * This is needed to make RSAREF happy on some MS-DOS compilers.
++ */
++typedef struct MD5Context MD5_CTX;
++
++#endif /* !MD5_H */
+
+
+Property changes on: drakx/trunk/mdk-stage1/rp-pppoe/src/md5.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1rppppoesrcpluginc">Added: drakx/trunk/mdk-stage1/rp-pppoe/src/plugin.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/src/plugin.c (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/src/plugin.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,397 @@
++/***********************************************************************
++*
++* plugin.c
++*
++* pppd plugin for kernel-mode PPPoE on Linux
++*
++* Copyright (C) 2001 by Roaring Penguin Software Inc., Michal Ostrowski
++* and Jamal Hadi Salim.
++*
++* Much code and many ideas derived from pppoe plugin by Michal
++* Ostrowski and Jamal Hadi Salim, which carries this copyright:
++*
++* Copyright 2000 Michal Ostrowski &lt;mostrows@styx.uwaterloo.ca&gt;,
++* Jamal Hadi Salim &lt;hadi@cyberus.ca&gt;
++* Borrows heavily from the PPPoATM plugin by Mitchell Blank Jr.,
++* which is based in part on work from Jens Axboe and Paul Mackerras.
++*
++* This program is free software; you can redistribute it and/or
++* modify it under the terms of the GNU General Public License
++* as published by the Free Software Foundation; either version
++* 2 of the License, or (at your option) any later version.
++***********************************************************************/
++
++static char const RCSID[] =
++&quot;$Id: plugin.c 195724 2001-06-11 13:49:39Z gc $&quot;;
++
++#define _GNU_SOURCE 1
++#include &quot;pppoe.h&quot;
++
++#include &quot;pppd/pppd.h&quot;
++#include &quot;pppd/fsm.h&quot;
++#include &quot;pppd/lcp.h&quot;
++#include &quot;pppd/ipcp.h&quot;
++#include &quot;pppd/ccp.h&quot;
++#include &quot;pppd/pathnames.h&quot;
++
++#include &lt;linux/types.h&gt;
++#include &lt;syslog.h&gt;
++#include &lt;sys/ioctl.h&gt;
++#include &lt;sys/types.h&gt;
++#include &lt;sys/socket.h&gt;
++#include &lt;sys/stat.h&gt;
++#include &lt;string.h&gt;
++#include &lt;stdlib.h&gt;
++#include &lt;errno.h&gt;
++#include &lt;unistd.h&gt;
++#include &lt;fcntl.h&gt;
++#include &lt;signal.h&gt;
++#include &lt;net/ethernet.h&gt;
++#include &lt;net/if_arp.h&gt;
++#include &lt;linux/if_pppox.h&gt;
++
++/* From sys-linux.c in pppd -- MUST FIX THIS! */
++extern int new_style_driver;
++
++static char *service = NULL;
++static char *acName = NULL;
++static char *existingSession = NULL;
++
++static option_t Options[] = {
++ { &quot;rp_pppoe_service&quot;, o_string, &amp;service,
++ &quot;Desired PPPoE service name&quot; },
++ { &quot;rp_pppoe_ac&quot;, o_string, &amp;acName,
++ &quot;Desired PPPoE access concentrator name&quot; },
++ { &quot;rp_pppoe_sess&quot;, o_string, &amp;existingSession,
++ &quot;Attach to existing session (sessid:macaddr)&quot; },
++ { NULL }
++};
++int (*OldDevnameHook)(const char *name) = NULL;
++static PPPoEConnection *conn = NULL;
++
++/**********************************************************************
++ * %FUNCTION: PPPOEInitDevice
++ * %ARGUMENTS:
++ * None
++ * %RETURNS:
++ *
++ * %DESCRIPTION:
++ * Initializes PPPoE device.
++ ***********************************************************************/
++static int
++PPPOEInitDevice(void)
++{
++ conn = malloc(sizeof(PPPoEConnection));
++ if (!conn) {
++ fatal(&quot;Could not allocate memory for PPPoE session&quot;);
++ }
++ memset(conn, 0, sizeof(PPPoEConnection));
++ if (acName) {
++ SET_STRING(conn-&gt;acName, acName);
++ }
++ if (service) {
++ SET_STRING(conn-&gt;serviceName, acName);
++ }
++ SET_STRING(conn-&gt;ifName, devnam);
++ conn-&gt;discoverySocket = -1;
++ conn-&gt;sessionSocket = -1;
++ conn-&gt;useHostUniq = 1;
++ return 1;
++}
++
++/**********************************************************************
++ * %FUNCTION: PPPOEConnectDevice
++ * %ARGUMENTS:
++ * None
++ * %RETURNS:
++ * Non-negative if all goes well; -1 otherwise
++ * %DESCRIPTION:
++ * Connects PPPoE device.
++ ***********************************************************************/
++static int
++PPPOEConnectDevice(void)
++{
++ struct sockaddr_pppox sp;
++
++ strlcpy(ppp_devnam, devnam, sizeof(ppp_devnam));
++ if (existingSession) {
++ unsigned int mac[ETH_ALEN];
++ int i, ses;
++ if (sscanf(existingSession, &quot;%d:%x:%x:%x:%x:%x:%x&quot;,
++ &amp;ses, &amp;mac[0], &amp;mac[1], &amp;mac[2],
++ &amp;mac[3], &amp;mac[4], &amp;mac[5]) != 7) {
++ fatal(&quot;Illegal value for rp_pppoe_sess option&quot;);
++ }
++ conn-&gt;session = htons(ses);
++ for (i=0; i&lt;ETH_ALEN; i++) {
++ conn-&gt;peerEth[i] = (unsigned char) mac[i];
++ }
++ } else {
++ discovery(conn);
++ if (conn-&gt;discoveryState != STATE_SESSION) {
++ fatal(&quot;Unable to complete PPPoE Discovery&quot;);
++ }
++ }
++
++ /* Make the session socket */
++ conn-&gt;sessionSocket = socket(AF_PPPOX, SOCK_STREAM, PX_PROTO_OE);
++ if (conn-&gt;sessionSocket &lt; 0) {
++ fatal(&quot;Failed to create PPPoE socket: %m&quot;);
++ }
++ sp.sa_family = AF_PPPOX;
++ sp.sa_protocol = PX_PROTO_OE;
++ sp.sa_addr.pppoe.sid = conn-&gt;session;
++ memcpy(sp.sa_addr.pppoe.dev, conn-&gt;ifName, IFNAMSIZ);
++ memcpy(sp.sa_addr.pppoe.remote, conn-&gt;peerEth, ETH_ALEN);
++ if (connect(conn-&gt;sessionSocket, (struct sockaddr *) &amp;sp,
++ sizeof(struct sockaddr_pppox)) &lt; 0) {
++ fatal(&quot;Failed to connect PPPoE socket: %d %m&quot;, errno);
++ return -1;
++ }
++ return conn-&gt;sessionSocket;
++}
++
++static void
++PPPOESendConfig(int unit,
++ int mtu,
++ u_int32_t asyncmap,
++ int pcomp,
++ int accomp)
++{
++ int sock;
++ struct ifreq ifr;
++
++ if (mtu &gt; MAX_PPPOE_MTU) {
++ warn(&quot;Couldn't increase MTU to %d&quot;, mtu);
++ }
++ sock = socket(AF_INET, SOCK_DGRAM, 0);
++ if (sock &lt; 0) {
++ fatal(&quot;Couldn't create IP socket: %m&quot;);
++ }
++ strlcpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
++ ifr.ifr_mtu = mtu;
++ if (ioctl(sock, SIOCSIFMTU, &amp;ifr) &lt; 0) {
++ fatal(&quot;ioctl(SIOCSIFMTU): %m&quot;);
++ }
++ (void) close (sock);
++}
++
++
++static void
++PPPOERecvConfig(int unit,
++ int mru,
++ u_int32_t asyncmap,
++ int pcomp,
++ int accomp)
++{
++ if (mru &gt; MAX_PPPOE_MTU) {
++ error(&quot;Couldn't increase MRU to %d&quot;, mru);
++ }
++}
++
++static void
++PPPOESetXaccm(int unit,
++ ext_accm accm)
++{
++ /* Do nothing */
++}
++
++/**********************************************************************
++ * %FUNCTION: PPPOEDisconnectDevice
++ * %ARGUMENTS:
++ * None
++ * %RETURNS:
++ * Nothing
++ * %DESCRIPTION:
++ * Disconnects PPPoE device
++ ***********************************************************************/
++static void
++PPPOEDisconnectDevice(void)
++{
++ struct sockaddr_pppox sp;
++
++ sp.sa_family = AF_PPPOX;
++ sp.sa_protocol = PX_PROTO_OE;
++ sp.sa_addr.pppoe.sid = 0;
++ memcpy(sp.sa_addr.pppoe.dev, conn-&gt;ifName, IFNAMSIZ);
++ memcpy(sp.sa_addr.pppoe.remote, conn-&gt;peerEth, ETH_ALEN);
++ if (connect(conn-&gt;sessionSocket, (struct sockaddr *) &amp;sp,
++ sizeof(struct sockaddr_pppox)) &lt; 0) {
++ fatal(&quot;Failed to disconnect PPPoE socket: %d %m&quot;, errno);
++ return;
++ }
++ close(conn-&gt;sessionSocket);
++}
++
++static int
++PPPOESetSpeed(const char *speed)
++{
++ return 0;
++}
++
++static void
++PPPOEDeviceCheckHook(void)
++{
++ if (!options_for_dev(_PATH_ETHOPT, devnam)) {
++ exit(EXIT_OPTION_ERROR);
++ }
++}
++
++/**********************************************************************
++ * %FUNCTION: PPPoEDevnameHook
++ * %ARGUMENTS:
++ * name -- name of device
++ * %RETURNS:
++ * 1 if we will handle this device; 0 otherwise.
++ * %DESCRIPTION:
++ * Checks if name is a valid interface name; if so, returns 1. Also
++ * sets up devnam (string representation of device) and sets devstat.st_mode
++ * so S_ISCHR(devstat.st_mode) != 1 for internal pppd consumption.
++ ***********************************************************************/
++static int
++PPPoEDevnameHook(const char *name)
++{
++ int r = 1;
++ int fd;
++ struct ifreq ifr;
++
++ /* Open a socket */
++ if ((fd = socket(PF_PACKET, SOCK_RAW, 0)) &lt; 0) {
++ r = 0;
++ }
++
++ /* Try getting interface index */
++ if (r) {
++ strncpy(ifr.ifr_name, name, sizeof(ifr.ifr_name));
++ if (ioctl(fd, SIOCGIFINDEX, &amp;ifr) &lt; 0) {
++ r = 0;
++ } else {
++ if (ioctl(fd, SIOCGIFHWADDR, &amp;ifr) &lt; 0) {
++ r = 0;
++ } else {
++ if (ifr.ifr_hwaddr.sa_family != ARPHRD_ETHER) {
++ error(&quot;Interface %s not Ethernet&quot;, name);
++ r=0;
++ }
++ }
++ }
++ }
++
++ /* Close socket */
++ close(fd);
++ if (r) {
++ strncpy(devnam, name, sizeof(devnam));
++ if (device_check_hook != PPPOEDeviceCheckHook) {
++ devstat.st_mode = S_IFSOCK;
++ device_init_hook = PPPOEInitDevice;
++ setspeed_hook = PPPOESetSpeed;
++ device_check_hook = PPPOEDeviceCheckHook;
++ connect_device_hook = PPPOEConnectDevice;
++ disconnect_device_hook = PPPOEDisconnectDevice;
++ send_config_hook = PPPOESendConfig;
++ recv_config_hook = PPPOERecvConfig;
++ set_xaccm_hook = PPPOESetXaccm;
++ modem = 0;
++
++ lcp_allowoptions[0].neg_accompression = 0;
++ lcp_wantoptions[0].neg_accompression = 0;
++
++ lcp_allowoptions[0].neg_asyncmap = 0;
++ lcp_wantoptions[0].neg_asyncmap = 0;
++
++ lcp_allowoptions[0].neg_pcompression = 0;
++ lcp_wantoptions[0].neg_pcompression = 0;
++
++ ccp_allowoptions[0].deflate = 0 ;
++ ccp_wantoptions[0].deflate = 0 ;
++
++ ipcp_allowoptions[0].neg_vj=0;
++ ipcp_wantoptions[0].neg_vj=0;
++
++ ccp_allowoptions[0].bsd_compress = 0;
++ ccp_wantoptions[0].bsd_compress = 0;
++
++ PPPOEInitDevice();
++ }
++ return 1;
++ }
++
++ if (OldDevnameHook) r = OldDevnameHook(name);
++ return r;
++}
++
++/**********************************************************************
++ * %FUNCTION: plugin_init
++ * %ARGUMENTS:
++ * None
++ * %RETURNS:
++ * Nothing
++ * %DESCRIPTION:
++ * Initializes hooks for pppd plugin
++ ***********************************************************************/
++void
++plugin_init(void)
++{
++ if (!new_style_driver) {
++ fatal(&quot;Linux kernel does not support PPPoE -- are you running 2.4.x?&quot;);
++ }
++ OldDevnameHook = setdevname_hook;
++ setdevname_hook = PPPoEDevnameHook;
++ add_options(Options);
++
++ info(&quot;Roaring Penguin PPPoE Plugin Initialized&quot;);
++}
++
++/**********************************************************************
++*%FUNCTION: fatalSys
++*%ARGUMENTS:
++* str -- error message
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Prints a message plus the errno value to stderr and syslog and exits.
++***********************************************************************/
++void
++fatalSys(char const *str)
++{
++ char buf[1024];
++ int i = errno;
++ sprintf(buf, &quot;%.256s: %.256s&quot;, str, strerror(i));
++ printErr(buf);
++ sprintf(buf, &quot;RP-PPPoE: %.256s: %.256s&quot;, str, strerror(i));
++ sendPADT(conn, buf);
++ exit(1);
++}
++
++/**********************************************************************
++*%FUNCTION: rp_fatal
++*%ARGUMENTS:
++* str -- error message
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Prints a message to stderr and syslog and exits.
++***********************************************************************/
++void
++rp_fatal(char const *str)
++{
++ char buf[1024];
++ printErr(str);
++ sprintf(buf, &quot;RP-PPPoE: %.256s&quot;, str);
++ sendPADT(conn, buf);
++ exit(1);
++}
++/**********************************************************************
++*%FUNCTION: sysErr
++*%ARGUMENTS:
++* str -- error message
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Prints a message plus the errno value to syslog.
++***********************************************************************/
++void
++sysErr(char const *str)
++{
++ rp_fatal(str);
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/rp-pppoe/src/plugin.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1rppppoesrcpppc">Added: drakx/trunk/mdk-stage1/rp-pppoe/src/ppp.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/src/ppp.c (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/src/ppp.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,258 @@
++/***********************************************************************
++*
++* ppp.c
++*
++* Implementation of user-space PPPoE redirector for Linux.
++*
++* Functions for talking to PPP daemon
++*
++* Copyright (C) 2000 by Roaring Penguin Software Inc.
++*
++* This program may be distributed according to the terms of the GNU
++* General Public License, version 2 or (at your option) any later version.
++*
++***********************************************************************/
++
++static char const RCSID[] =
++&quot;$Id: ppp.c 195724 2001-06-11 13:49:39Z gc $&quot;;
++
++#include &quot;pppoe.h&quot;
++
++#ifdef HAVE_SYSLOG_H
++#include &lt;syslog.h&gt;
++#endif
++
++#include &lt;string.h&gt;
++#include &lt;errno.h&gt;
++#include &lt;stdlib.h&gt;
++
++#ifdef HAVE_SYS_UIO_H
++#include &lt;sys/uio.h&gt;
++#endif
++
++#ifdef HAVE_UNISTD_H
++#include &lt;unistd.h&gt;
++#endif
++
++#ifdef HAVE_N_HDLC
++#ifndef N_HDLC
++#include &lt;linux/termios.h&gt;
++#endif
++#endif
++
++int PPPState;
++int PPPPacketSize;
++unsigned char PPPXorValue;
++
++UINT16_t fcstab[256] = {
++ 0x0000, 0x1189, 0x2312, 0x329b, 0x4624, 0x57ad, 0x6536, 0x74bf,
++ 0x8c48, 0x9dc1, 0xaf5a, 0xbed3, 0xca6c, 0xdbe5, 0xe97e, 0xf8f7,
++ 0x1081, 0x0108, 0x3393, 0x221a, 0x56a5, 0x472c, 0x75b7, 0x643e,
++ 0x9cc9, 0x8d40, 0xbfdb, 0xae52, 0xdaed, 0xcb64, 0xf9ff, 0xe876,
++ 0x2102, 0x308b, 0x0210, 0x1399, 0x6726, 0x76af, 0x4434, 0x55bd,
++ 0xad4a, 0xbcc3, 0x8e58, 0x9fd1, 0xeb6e, 0xfae7, 0xc87c, 0xd9f5,
++ 0x3183, 0x200a, 0x1291, 0x0318, 0x77a7, 0x662e, 0x54b5, 0x453c,
++ 0xbdcb, 0xac42, 0x9ed9, 0x8f50, 0xfbef, 0xea66, 0xd8fd, 0xc974,
++ 0x4204, 0x538d, 0x6116, 0x709f, 0x0420, 0x15a9, 0x2732, 0x36bb,
++ 0xce4c, 0xdfc5, 0xed5e, 0xfcd7, 0x8868, 0x99e1, 0xab7a, 0xbaf3,
++ 0x5285, 0x430c, 0x7197, 0x601e, 0x14a1, 0x0528, 0x37b3, 0x263a,
++ 0xdecd, 0xcf44, 0xfddf, 0xec56, 0x98e9, 0x8960, 0xbbfb, 0xaa72,
++ 0x6306, 0x728f, 0x4014, 0x519d, 0x2522, 0x34ab, 0x0630, 0x17b9,
++ 0xef4e, 0xfec7, 0xcc5c, 0xddd5, 0xa96a, 0xb8e3, 0x8a78, 0x9bf1,
++ 0x7387, 0x620e, 0x5095, 0x411c, 0x35a3, 0x242a, 0x16b1, 0x0738,
++ 0xffcf, 0xee46, 0xdcdd, 0xcd54, 0xb9eb, 0xa862, 0x9af9, 0x8b70,
++ 0x8408, 0x9581, 0xa71a, 0xb693, 0xc22c, 0xd3a5, 0xe13e, 0xf0b7,
++ 0x0840, 0x19c9, 0x2b52, 0x3adb, 0x4e64, 0x5fed, 0x6d76, 0x7cff,
++ 0x9489, 0x8500, 0xb79b, 0xa612, 0xd2ad, 0xc324, 0xf1bf, 0xe036,
++ 0x18c1, 0x0948, 0x3bd3, 0x2a5a, 0x5ee5, 0x4f6c, 0x7df7, 0x6c7e,
++ 0xa50a, 0xb483, 0x8618, 0x9791, 0xe32e, 0xf2a7, 0xc03c, 0xd1b5,
++ 0x2942, 0x38cb, 0x0a50, 0x1bd9, 0x6f66, 0x7eef, 0x4c74, 0x5dfd,
++ 0xb58b, 0xa402, 0x9699, 0x8710, 0xf3af, 0xe226, 0xd0bd, 0xc134,
++ 0x39c3, 0x284a, 0x1ad1, 0x0b58, 0x7fe7, 0x6e6e, 0x5cf5, 0x4d7c,
++ 0xc60c, 0xd785, 0xe51e, 0xf497, 0x8028, 0x91a1, 0xa33a, 0xb2b3,
++ 0x4a44, 0x5bcd, 0x6956, 0x78df, 0x0c60, 0x1de9, 0x2f72, 0x3efb,
++ 0xd68d, 0xc704, 0xf59f, 0xe416, 0x90a9, 0x8120, 0xb3bb, 0xa232,
++ 0x5ac5, 0x4b4c, 0x79d7, 0x685e, 0x1ce1, 0x0d68, 0x3ff3, 0x2e7a,
++ 0xe70e, 0xf687, 0xc41c, 0xd595, 0xa12a, 0xb0a3, 0x8238, 0x93b1,
++ 0x6b46, 0x7acf, 0x4854, 0x59dd, 0x2d62, 0x3ceb, 0x0e70, 0x1ff9,
++ 0xf78f, 0xe606, 0xd49d, 0xc514, 0xb1ab, 0xa022, 0x92b9, 0x8330,
++ 0x7bc7, 0x6a4e, 0x58d5, 0x495c, 0x3de3, 0x2c6a, 0x1ef1, 0x0f78
++};
++
++/**********************************************************************
++*%FUNCTION: syncReadFromPPP
++*%ARGUMENTS:
++* conn -- PPPoEConnection structure
++* packet -- buffer in which to place PPPoE packet
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Reads from a synchronous PPP device and builds and transmits a PPPoE
++* packet
++***********************************************************************/
++void
++syncReadFromPPP(PPPoEConnection *conn, PPPoEPacket *packet)
++{
++ int r;
++#ifndef HAVE_N_HDLC
++ struct iovec vec[2];
++ unsigned char dummy[2];
++ vec[0].iov_base = (void *) dummy;
++ vec[0].iov_len = 2;
++ vec[1].iov_base = (void *) packet-&gt;payload;
++ vec[1].iov_len = ETH_DATA_LEN - PPPOE_OVERHEAD;
++
++ /* Use scatter-read to throw away the PPP frame address bytes */
++ r = readv(0, vec, 2);
++#else
++ /* Bloody hell... readv doesn't work with N_HDLC line discipline... GRR! */
++ unsigned char buf[ETH_DATA_LEN - PPPOE_OVERHEAD + 2];
++ r = read(0, buf, ETH_DATA_LEN - PPPOE_OVERHEAD + 2);
++ if (r &gt;= 2) {
++ memcpy(packet-&gt;payload, buf+2, r-2);
++ }
++#endif
++ if (r &lt; 0) {
++ /* Catch the Linux &quot;select&quot; bug */
++ if (errno == EAGAIN) {
++ rp_fatal(&quot;Linux select bug hit! This message is harmless, but please ask the Linux kernel developers to fix it.&quot;);
++ }
++ fatalSys(&quot;read (syncReadFromPPP)&quot;);
++ }
++ if (r == 0) {
++ syslog(LOG_INFO, &quot;end-of-file in syncReadFromPPP&quot;);
++ sendPADT(conn, &quot;RP-PPPoE: EOF in syncReadFromPPP&quot;);
++ exit(0);
++ }
++
++ if (r &lt; 2) {
++ rp_fatal(&quot;too few characters read from PPP (syncReadFromPPP)&quot;);
++ }
++
++ sendSessionPacket(conn, packet, r-2);
++}
++
++/**********************************************************************
++*%FUNCTION: initPPP
++*%ARGUMENTS:
++* None
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Initializes the PPP state machine
++***********************************************************************/
++void
++initPPP(void)
++{
++ PPPState = STATE_WAITFOR_FRAME_ADDR;
++ PPPPacketSize = 0;
++ PPPXorValue = 0;
++
++}
++/**********************************************************************
++*%FUNCTION: asyncReadFromPPP
++*%ARGUMENTS:
++* conn -- PPPoEConnection structure
++* packet -- buffer in which to place PPPoE packet
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Reads from an async PPP device and builds a PPPoE packet to transmit
++***********************************************************************/
++void
++asyncReadFromPPP(PPPoEConnection *conn, PPPoEPacket *packet)
++{
++ unsigned char buf[READ_CHUNK];
++ unsigned char *ptr = buf;
++ unsigned char c;
++
++ int r;
++
++ r = read(0, buf, READ_CHUNK);
++ if (r &lt; 0) {
++ fatalSys(&quot;read (asyncReadFromPPP)&quot;);
++ }
++
++ if (r == 0) {
++ syslog(LOG_INFO, &quot;end-of-file in asyncReadFromPPP&quot;);
++ sendPADT(conn, &quot;RP-PPPoE: EOF in asyncReadFromPPP&quot;);
++ exit(0);
++ }
++
++ while(r) {
++ if (PPPState == STATE_WAITFOR_FRAME_ADDR) {
++ while(r) {
++ --r;
++ if (*ptr++ == FRAME_ADDR) {
++ PPPState = STATE_DROP_PROTO;
++ break;
++ }
++ }
++ }
++
++ /* Still waiting... */
++ if (PPPState == STATE_WAITFOR_FRAME_ADDR) return;
++
++ while(r &amp;&amp; PPPState == STATE_DROP_PROTO) {
++ --r;
++ if (*ptr++ == (FRAME_CTRL ^ FRAME_ENC)) {
++ PPPState = STATE_BUILDING_PACKET;
++ }
++ }
++
++ if (PPPState == STATE_DROP_PROTO) return;
++
++ /* Start building frame */
++ while(r &amp;&amp; PPPState == STATE_BUILDING_PACKET) {
++ --r;
++ c = *ptr++;
++ switch(c) {
++ case FRAME_ESC:
++ PPPXorValue = FRAME_ENC;
++ break;
++ case FRAME_FLAG:
++ if (PPPPacketSize &lt; 2) {
++ rp_fatal(&quot;Packet too short from PPP (asyncReadFromPPP)&quot;);
++ }
++ sendSessionPacket(conn, packet, PPPPacketSize-2);
++ PPPPacketSize = 0;
++ PPPXorValue = 0;
++ PPPState = STATE_WAITFOR_FRAME_ADDR;
++ break;
++ default:
++ if (PPPPacketSize &gt;= ETH_DATA_LEN - 4) {
++ syslog(LOG_ERR, &quot;Packet too big! Check MTU on PPP interface&quot;);
++ PPPPacketSize = 0;
++ PPPXorValue = 0;
++ PPPState = STATE_WAITFOR_FRAME_ADDR;
++ } else {
++ packet-&gt;payload[PPPPacketSize++] = c ^ PPPXorValue;
++ PPPXorValue = 0;
++ }
++ }
++ }
++ }
++}
++
++/**********************************************************************
++*%FUNCTION: pppFCS16
++*%ARGUMENTS:
++* fcs -- current fcs
++* cp -- a buffer's worth of data
++* len -- length of buffer &quot;cp&quot;
++*%RETURNS:
++* A new FCS
++*%DESCRIPTION:
++* Updates the PPP FCS.
++***********************************************************************/
++UINT16_t
++pppFCS16(UINT16_t fcs,
++ unsigned char * cp,
++ int len)
++{
++ while (len--)
++ fcs = (fcs &gt;&gt; 8) ^ fcstab[(fcs ^ *cp++) &amp; 0xff];
++
++ return (fcs);
++}
++
+
+
+Property changes on: drakx/trunk/mdk-stage1/rp-pppoe/src/ppp.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1rppppoesrcpppoeserverc">Added: drakx/trunk/mdk-stage1/rp-pppoe/src/pppoe-server.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/src/pppoe-server.c (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/src/pppoe-server.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,1247 @@
++/***********************************************************************
++*
++* pppoe.h
++*
++* Implementation of a user-space PPPoE server
++*
++* Copyright (C) 2000 Roaring Penguin Software Inc.
++*
++* This program may be distributed according to the terms of the GNU
++* General Public License, version 2 or (at your option) any later version.
++*
++* $Id: pppoe-server.c 195724 2001-06-11 13:49:39Z gc $
++*
++***********************************************************************/
++
++static char const RCSID[] =
++&quot;$Id: pppoe-server.c 195724 2001-06-11 13:49:39Z gc $&quot;;
++
++#include &quot;config.h&quot;
++
++#if defined(HAVE_NETPACKET_PACKET_H) || defined(HAVE_LINUX_IF_PACKET_H)
++#define _POSIX_SOURCE 1 /* For sigaction defines */
++#endif
++
++#define _BSD_SOURCE 1 /* for gethostname */
++
++#include &quot;pppoe.h&quot;
++#include &quot;md5.h&quot;
++
++#ifdef HAVE_SYSLOG_H
++#include &lt;syslog.h&gt;
++#endif
++
++#include &lt;errno.h&gt;
++#include &lt;string.h&gt;
++#include &lt;stdlib.h&gt;
++
++#ifdef HAVE_UNISTD_H
++#include &lt;unistd.h&gt;
++#endif
++
++#ifdef HAVE_GETOPT_H
++#include &lt;getopt.h&gt;
++#endif
++
++#ifdef HAVE_SYS_WAIT_H
++#include &lt;sys/wait.h&gt;
++#endif
++
++#ifdef HAVE_SYS_TIME_H
++#include &lt;sys/time.h&gt;
++#endif
++
++#include &lt;signal.h&gt;
++
++/* Hack for daemonizing */
++#define CLOSEFD 64
++
++/* Max. 64 sessions by default */
++#define DEFAULT_MAX_SESSIONS 64
++
++/* A list of client sessions */
++struct ClientSession *Sessions = NULL;
++
++/* The number of session slots */
++size_t NumSessionSlots;
++
++/* Offset of first session */
++size_t SessOffset = 0;
++
++/* Socket for client's discovery phases */
++int Socket = -1;
++
++/* Pipe written on reception of SIGCHLD */
++int Pipe[2] = {-1, -1};
++int ReapPending = 0;
++
++/* Synchronous mode */
++int Synchronous = 0;
++
++/* Random seed for cookie generation */
++#define SEED_LEN 16
++#define MD5_LEN 16
++#define COOKIE_LEN (MD5_LEN + sizeof(pid_t)) /* Cookie is 16-byte MD5 + PID of server */
++
++unsigned char CookieSeed[SEED_LEN];
++
++/* Default interface if no -I option given */
++#define DEFAULT_IF &quot;eth0&quot;
++char *IfName = NULL;
++
++/* Access concentrator name */
++char *ACName = NULL;
++
++/* Options to pass to pppoe process */
++char PppoeOptions[SMALLBUF] = &quot;&quot;;
++
++/* Our local IP address */
++unsigned char LocalIP[IPV4ALEN] = {10, 0, 0, 1};
++unsigned char RemoteIP[IPV4ALEN] = {10, 67, 15, 1}; /* Counter STARTS here */
++
++PPPoETag hostUniq;
++PPPoETag relayId;
++PPPoETag receivedCookie;
++PPPoETag requestedService;
++
++#define HOSTNAMELEN 256
++
++static void startPPPD(struct ClientSession *sess);
++static void sendErrorPADS(int sock, unsigned char *source, unsigned char *dest,
++ int errorTag, char *errorMsg);
++
++#define CHECK_ROOM(cursor, start, len) \
++do {\
++ if (((cursor)-(start))+(len) &gt; MAX_PPPOE_PAYLOAD) { \
++ syslog(LOG_ERR, &quot;Would create too-long packet&quot;); \
++ return; \
++ } \
++} while(0)
++
++/* Use Linux kernel-mode PPPoE? */
++int UseLinuxKernelModePPPoE = 0;
++
++/**********************************************************************
++*%FUNCTION: parseAddressPool
++*%ARGUMENTS:
++* fname -- name of file containing IP address pool.
++* install -- if true, install IP addresses in sessions.
++*%RETURNS:
++* Number of valid IP addresses found.
++*%DESCRIPTION:
++* Reads a list of IP addresses from a file.
++***********************************************************************/
++static int
++parseAddressPool(char const *fname, int install)
++{
++ FILE *fp = fopen(fname, &quot;r&quot;);
++ int numAddrs = 0;
++ unsigned int a, b, c, d;
++
++ if (!fp) {
++ sysErr(&quot;Cannot open address pool file&quot;);
++ }
++
++ while (!feof(fp)) {
++ if ((fscanf(fp, &quot;%u.%u.%u.%u&quot;, &amp;a, &amp;b, &amp;c, &amp;d) == 4) &amp;&amp;
++ a &lt; 256 &amp;&amp; b &lt; 256 &amp;&amp; c &lt; 256 &amp;&amp; d &lt; 256) {
++ if (install) {
++ Sessions[numAddrs].ip[0] = (unsigned char) a;
++ Sessions[numAddrs].ip[1] = (unsigned char) b;
++ Sessions[numAddrs].ip[2] = (unsigned char) c;
++ Sessions[numAddrs].ip[3] = (unsigned char) d;
++ }
++ numAddrs++;
++ }
++ }
++ if (!numAddrs) {
++ rp_fatal(&quot;No valid ip addresses found in pool file&quot;);
++ }
++ return numAddrs;
++}
++
++/**********************************************************************
++*%FUNCTION: parsePADITags
++*%ARGUMENTS:
++* type -- tag type
++* len -- tag length
++* data -- tag data
++* extra -- extra user data.
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Picks interesting tags out of a PADI packet
++***********************************************************************/
++void
++parsePADITags(UINT16_t type, UINT16_t len, unsigned char *data,
++ void *extra)
++{
++ switch(type) {
++ case TAG_SERVICE_NAME:
++ /* Should do something -- currently ignored */
++ break;
++ case TAG_RELAY_SESSION_ID:
++ relayId.type = htons(type);
++ relayId.length = htons(len);
++ memcpy(relayId.payload, data, len);
++ break;
++ case TAG_HOST_UNIQ:
++ hostUniq.type = htons(type);
++ hostUniq.length = htons(len);
++ memcpy(hostUniq.payload, data, len);
++ break;
++ }
++}
++
++/**********************************************************************
++*%FUNCTION: parsePADRTags
++*%ARGUMENTS:
++* type -- tag type
++* len -- tag length
++* data -- tag data
++* extra -- extra user data.
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Picks interesting tags out of a PADR packet
++***********************************************************************/
++void
++parsePADRTags(UINT16_t type, UINT16_t len, unsigned char *data,
++ void *extra)
++{
++ switch(type) {
++ case TAG_RELAY_SESSION_ID:
++ relayId.type = htons(type);
++ relayId.length = htons(len);
++ memcpy(relayId.payload, data, len);
++ break;
++ case TAG_HOST_UNIQ:
++ hostUniq.type = htons(type);
++ hostUniq.length = htons(len);
++ memcpy(hostUniq.payload, data, len);
++ break;
++ case TAG_AC_COOKIE:
++ receivedCookie.type = htons(type);
++ receivedCookie.length = htons(len);
++ memcpy(receivedCookie.payload, data, len);
++ break;
++ case TAG_SERVICE_NAME:
++ requestedService.type = htons(type);
++ requestedService.length = htons(len);
++ memcpy(requestedService.payload, data, len);
++ break;
++ }
++}
++
++/**********************************************************************
++*%FUNCTION: findSession
++*%ARGUMENTS:
++* pid -- PID of child which owns session. If PID is 0, searches for
++* empty session slots.
++*%RETURNS:
++* A pointer to the session, or NULL if no such session found.
++*%DESCRIPTION:
++* Searches for specified session.
++**********************************************************************/
++struct ClientSession *
++findSession(pid_t pid)
++{
++ size_t i;
++ for (i=0; i&lt;NumSessionSlots; i++) {
++ if (Sessions[i].pid == pid) {
++ return &amp;Sessions[i];
++ }
++ }
++ return NULL;
++}
++
++/**********************************************************************
++*%FUNCTION: reapSessions
++*%ARGUMENTS:
++* myAddr -- my Ethernet address
++* sock -- my discovery socket
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Reaps children which have exited and removes their sessions
++**********************************************************************/
++void
++reapSessions(unsigned char *myAddr, int sock)
++{
++ int status;
++ pid_t pid;
++ struct ClientSession *session;
++
++ /* Temporary structure for sending PADT's. */
++ PPPoEConnection conn;
++ memset(&amp;conn, 0, sizeof(conn));
++
++ /* Initialize fields of conn which do not depend on peer */
++ memcpy(conn.myEth, myAddr, ETH_ALEN);
++ conn.useHostUniq = 0;
++ conn.discoverySocket = sock;
++
++ while((pid = waitpid(-1, &amp;status, WNOHANG)) &gt; 0) {
++ session = findSession(pid);
++ if (!session) {
++ syslog(LOG_ERR, &quot;Child %d died but couldn't find session!&quot;,
++ (int) pid);
++ } else {
++ syslog(LOG_INFO,
++ &quot;Session %d closed for client %02x:%02x:%02x:%02x:%02x:%02x (%d.%d.%d.%d)&quot;,
++ ntohs(session-&gt;sess),
++ session-&gt;eth[0], session-&gt;eth[1], session-&gt;eth[2],
++ session-&gt;eth[3], session-&gt;eth[4], session-&gt;eth[5],
++ (int) session-&gt;ip[0], (int) session-&gt;ip[1],
++ (int) session-&gt;ip[2], (int) session-&gt;ip[3]);
++ conn.session = session-&gt;sess;
++ memcpy(conn.peerEth, session-&gt;eth, ETH_ALEN);
++ if (session-&gt;recvdPADT) {
++ sendPADT(&amp;conn, &quot;RP-PPPoE: Received PADT from peer&quot;);
++ } else {
++ sendPADT(&amp;conn, &quot;RP-PPPoE: Child pppd process terminated&quot;);
++ }
++ session-&gt;pid = 0;
++ }
++ }
++}
++
++/**********************************************************************
++*%FUNCTION: fatalSys
++*%ARGUMENTS:
++* str -- error message
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Prints a message plus the errno value to stderr and syslog and exits.
++***********************************************************************/
++void
++fatalSys(char const *str)
++{
++ char buf[SMALLBUF];
++ snprintf(buf, SMALLBUF, &quot;%s: %s&quot;, str, strerror(errno));
++ printErr(buf);
++ exit(EXIT_FAILURE);
++}
++
++/**********************************************************************
++*%FUNCTION: sysErr
++*%ARGUMENTS:
++* str -- error message
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Prints a message plus the errno value to syslog.
++***********************************************************************/
++void
++sysErr(char const *str)
++{
++ char buf[1024];
++ sprintf(buf, &quot;%.256s: %.256s&quot;, str, strerror(errno));
++ printErr(buf);
++}
++
++/**********************************************************************
++*%FUNCTION: rp_fatal
++*%ARGUMENTS:
++* str -- error message
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Prints a message to stderr and syslog and exits.
++***********************************************************************/
++void
++rp_fatal(char const *str)
++{
++ printErr(str);
++ exit(EXIT_FAILURE);
++}
++
++/**********************************************************************
++*%FUNCTION: genCookie
++*%ARGUMENTS:
++* peerEthAddr -- peer Ethernet address (6 bytes)
++* myEthAddr -- my Ethernet address (6 bytes)
++* seed -- random cookie seed to make things tasty (16 bytes)
++* cookie -- buffer which is filled with server PID and
++* md5 sum of previous items
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Forms the md5 sum of peer MAC address, our MAC address and seed, useful
++* in a PPPoE Cookie tag.
++***********************************************************************/
++void
++genCookie(unsigned char const *peerEthAddr,
++ unsigned char const *myEthAddr,
++ unsigned char const *seed,
++ unsigned char *cookie)
++{
++ struct MD5Context ctx;
++ pid_t pid = getpid();
++
++ MD5Init(&amp;ctx);
++ MD5Update(&amp;ctx, peerEthAddr, ETH_ALEN);
++ MD5Update(&amp;ctx, myEthAddr, ETH_ALEN);
++ MD5Update(&amp;ctx, seed, SEED_LEN);
++ MD5Final(cookie, &amp;ctx);
++ memcpy(cookie+MD5_LEN, &amp;pid, sizeof(pid));
++}
++
++/**********************************************************************
++*%FUNCTION: processPADI
++*%ARGUMENTS:
++* sock -- Ethernet socket
++* myAddr -- my Ethernet address
++* packet -- PPPoE PADI packet
++* len -- length of received packet
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Sends a PADO packet back to client
++***********************************************************************/
++void
++processPADI(int sock, unsigned char *myAddr,
++ PPPoEPacket *packet, int len)
++{
++ PPPoEPacket pado;
++ PPPoETag acname;
++ PPPoETag servname;
++ PPPoETag cookie;
++ size_t acname_len;
++ unsigned char *cursor = pado.payload;
++ UINT16_t plen;
++
++ /* Ignore PADI's which don't come from a unicast address */
++ if (NOT_UNICAST(packet-&gt;ethHdr.h_source)) {
++ syslog(LOG_ERR, &quot;PADI packet from non-unicast source address&quot;);
++ return;
++ }
++
++ acname.type = htons(TAG_AC_NAME);
++ acname_len = strlen(ACName);
++ acname.length = htons(acname_len);
++ memcpy(acname.payload, ACName, acname_len);
++
++ servname.type = htons(TAG_SERVICE_NAME);
++ servname.length = 0;
++
++ relayId.type = 0;
++ hostUniq.type = 0;
++ parsePacket(packet, parsePADITags, NULL);
++
++ /* Generate a cookie */
++ cookie.type = htons(TAG_AC_COOKIE);
++ cookie.length = htons(COOKIE_LEN);
++ genCookie(packet-&gt;ethHdr.h_source, myAddr, CookieSeed, cookie.payload);
++
++ /* Construct a PADO packet */
++ memcpy(pado.ethHdr.h_dest, packet-&gt;ethHdr.h_source, ETH_ALEN);
++ memcpy(pado.ethHdr.h_source, myAddr, ETH_ALEN);
++ pado.ethHdr.h_proto = htons(Eth_PPPOE_Discovery);
++ pado.ver = 1;
++ pado.type = 1;
++ pado.code = CODE_PADO;
++ pado.session = 0;
++ plen = TAG_HDR_SIZE + acname_len;
++
++ CHECK_ROOM(cursor, pado.payload, acname_len+TAG_HDR_SIZE);
++ memcpy(cursor, &amp;acname, acname_len + TAG_HDR_SIZE);
++ cursor += acname_len + TAG_HDR_SIZE;
++
++ CHECK_ROOM(cursor, pado.payload, TAG_HDR_SIZE);
++ memcpy(cursor, &amp;servname, TAG_HDR_SIZE);
++ cursor += TAG_HDR_SIZE;
++ plen += TAG_HDR_SIZE;
++
++ CHECK_ROOM(cursor, pado.payload, TAG_HDR_SIZE + COOKIE_LEN);
++ memcpy(cursor, &amp;cookie, TAG_HDR_SIZE + COOKIE_LEN);
++ cursor += TAG_HDR_SIZE + COOKIE_LEN;
++ plen += TAG_HDR_SIZE + COOKIE_LEN;
++
++ if (relayId.type) {
++ CHECK_ROOM(cursor, pado.payload, ntohs(relayId.length) + TAG_HDR_SIZE);
++ memcpy(cursor, &amp;relayId, ntohs(relayId.length) + TAG_HDR_SIZE);
++ cursor += ntohs(relayId.length) + TAG_HDR_SIZE;
++ plen += ntohs(relayId.length) + TAG_HDR_SIZE;
++ }
++ if (hostUniq.type) {
++ CHECK_ROOM(cursor, pado.payload, ntohs(hostUniq.length)+TAG_HDR_SIZE);
++ memcpy(cursor, &amp;hostUniq, ntohs(hostUniq.length) + TAG_HDR_SIZE);
++ cursor += ntohs(hostUniq.length) + TAG_HDR_SIZE;
++ plen += ntohs(hostUniq.length) + TAG_HDR_SIZE;
++ }
++ pado.length = htons(plen);
++ sendPacket(NULL, sock, &amp;pado, (int) (plen + HDR_SIZE));
++}
++
++/**********************************************************************
++*%FUNCTION: processPADT
++*%ARGUMENTS:
++* sock -- Ethernet socket
++* myAddr -- my Ethernet address
++* packet -- PPPoE PADT packet
++* len -- length of received packet
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Kills session whose session-ID is in PADT packet.
++***********************************************************************/
++void
++processPADT(int sock, unsigned char *myAddr,
++ PPPoEPacket *packet, int len)
++{
++ size_t i;
++
++ /* Ignore PADT's not directed at us */
++ if (memcmp(packet-&gt;ethHdr.h_dest, myAddr, ETH_ALEN)) return;
++
++ /* Get session's index */
++ i = ntohs(packet-&gt;session) - 1 - SessOffset;
++ if (i &gt;= NumSessionSlots) return;
++ if (Sessions[i].sess != packet-&gt;session) {
++ syslog(LOG_ERR, &quot;Session index %u doesn't match session number %u&quot;,
++ (unsigned int) i, (unsigned int) ntohs(packet-&gt;session));
++ return;
++ }
++ if (Sessions[i].pid) {
++ Sessions[i].recvdPADT = 1;
++ parsePacket(packet, parseLogErrs, NULL);
++ kill(Sessions[i].pid, SIGTERM);
++ }
++}
++
++/**********************************************************************
++*%FUNCTION: processPADR
++*%ARGUMENTS:
++* sock -- Ethernet socket
++* myAddr -- my Ethernet address
++* packet -- PPPoE PADR packet
++* len -- length of received packet
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Sends a PADS packet back to client and starts a PPP session if PADR
++* packet is OK.
++***********************************************************************/
++void
++processPADR(int sock, unsigned char *myAddr,
++ PPPoEPacket *packet, int len)
++{
++ unsigned char cookieBuffer[COOKIE_LEN];
++ struct ClientSession *cliSession;
++ pid_t child;
++ PPPoEPacket pads;
++ unsigned char *cursor = pads.payload;
++ UINT16_t plen;
++ PPPoETag servname;
++
++ /* Initialize some globals */
++ relayId.type = 0;
++ hostUniq.type = 0;
++ receivedCookie.type = 0;
++ requestedService.type = 0;
++
++ /* Ignore PADR's not directed at us */
++ if (memcmp(packet-&gt;ethHdr.h_dest, myAddr, ETH_ALEN)) return;
++
++ /* Ignore PADR's from non-unicast addresses */
++ if (NOT_UNICAST(packet-&gt;ethHdr.h_source)) {
++ syslog(LOG_ERR, &quot;PADR packet from non-unicast source address&quot;);
++ return;
++ }
++
++ parsePacket(packet, parsePADRTags, NULL);
++
++ /* Check that everything's cool */
++ if (!receivedCookie.type) {
++ /* Drop it -- do not send error PADS */
++ return;
++ }
++
++ /* Is cookie kosher? */
++ if (receivedCookie.length != htons(COOKIE_LEN)) {
++ /* Drop it -- do not send error PADS */
++ return;
++ }
++
++ genCookie(packet-&gt;ethHdr.h_source, myAddr, CookieSeed, cookieBuffer);
++ if (memcmp(receivedCookie.payload, cookieBuffer, COOKIE_LEN)) {
++ /* Drop it -- do not send error PADS */
++ return;
++ }
++
++ /* Check service name -- we only offer service &quot;&quot; */
++ if (!requestedService.type) {
++ syslog(LOG_ERR, &quot;Received PADR packet with no SERVICE_NAME tag&quot;);
++ sendErrorPADS(sock, myAddr, packet-&gt;ethHdr.h_source,
++ TAG_SERVICE_NAME_ERROR, &quot;RP-PPPoE: Server: No service name tag&quot;);
++ return;
++ }
++
++ if (requestedService.length) {
++ syslog(LOG_ERR, &quot;Received PADR packet asking for unsupported service %.*s&quot;, (int) ntohs(requestedService.length), requestedService.payload);
++ sendErrorPADS(sock, myAddr, packet-&gt;ethHdr.h_source,
++ TAG_SERVICE_NAME_ERROR, &quot;RP-PPPoE: Server: Invalid service name tag&quot;);
++ return;
++ }
++
++ /* Looks cool... find a slot for the session */
++ cliSession = findSession(0);
++ if (!cliSession) {
++ syslog(LOG_ERR, &quot;No client slots available (%02x:%02x:%02x:%02x:%02x:%02x)&quot;,
++ (unsigned int) packet-&gt;ethHdr.h_source[0],
++ (unsigned int) packet-&gt;ethHdr.h_source[1],
++ (unsigned int) packet-&gt;ethHdr.h_source[2],
++ (unsigned int) packet-&gt;ethHdr.h_source[3],
++ (unsigned int) packet-&gt;ethHdr.h_source[4],
++ (unsigned int) packet-&gt;ethHdr.h_source[5]);
++ sendErrorPADS(sock, myAddr, packet-&gt;ethHdr.h_source,
++ TAG_AC_SYSTEM_ERROR, &quot;RP-PPPoE: Server: No client slots available&quot;);
++ return;
++ }
++
++ /* Set up client session peer Ethernet address */
++ memcpy(cliSession-&gt;eth, packet-&gt;ethHdr.h_source, ETH_ALEN);
++ cliSession-&gt;recvdPADT = 0;
++
++ /* Create child process, send PADS packet back */
++ child = fork();
++ if (child &lt; 0) {
++ sendErrorPADS(sock, myAddr, packet-&gt;ethHdr.h_source,
++ TAG_AC_SYSTEM_ERROR, &quot;RP-PPPoE: Server: Unable to start session process&quot;);
++ return;
++ }
++ if (child != 0) {
++ /* In the parent process. Mark pid in session slot */
++ cliSession-&gt;pid = child;
++ return;
++ }
++
++ /* In the child process. */
++
++ /* pppd has a nasty habit of killing all processes in its process group.
++ Start a new session to stop pppd from killing us! */
++ setsid();
++
++ /* Send PADS and Start pppd */
++ memcpy(pads.ethHdr.h_dest, packet-&gt;ethHdr.h_source, ETH_ALEN);
++ memcpy(pads.ethHdr.h_source, myAddr, ETH_ALEN);
++ pads.ethHdr.h_proto = htons(Eth_PPPOE_Discovery);
++ pads.ver = 1;
++ pads.type = 1;
++ pads.code = CODE_PADS;
++
++ pads.session = cliSession-&gt;sess;
++ plen = 0;
++
++ servname.type = htons(TAG_SERVICE_NAME);
++ servname.length = 0;
++
++ memcpy(cursor, &amp;servname, TAG_HDR_SIZE);
++ cursor += TAG_HDR_SIZE;
++ plen += TAG_HDR_SIZE;
++
++ if (relayId.type) {
++ memcpy(cursor, &amp;relayId, ntohs(relayId.length) + TAG_HDR_SIZE);
++ cursor += ntohs(relayId.length) + TAG_HDR_SIZE;
++ plen += ntohs(relayId.length) + TAG_HDR_SIZE;
++ }
++ if (hostUniq.type) {
++ memcpy(cursor, &amp;hostUniq, ntohs(hostUniq.length) + TAG_HDR_SIZE);
++ cursor += ntohs(hostUniq.length) + TAG_HDR_SIZE;
++ plen += ntohs(hostUniq.length) + TAG_HDR_SIZE;
++ }
++ pads.length = htons(plen);
++ sendPacket(NULL, sock, &amp;pads, (int) (plen + HDR_SIZE));
++ startPPPD(cliSession);
++}
++
++/**********************************************************************
++*%FUNCTION: childHandler
++*%ARGUMENTS:
++* sig -- signal number
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Called by SIGCHLD. Writes one byte to Pipe to wake up the select
++* loop and cause reaping of dead sessions
++***********************************************************************/
++void
++childHandler(int sig)
++{
++ if (!ReapPending) {
++ ReapPending = 1;
++ write(Pipe[1], &amp;ReapPending, 1);
++ }
++}
++
++/**********************************************************************
++*%FUNCTION: usage
++*%ARGUMENTS:
++* argv0 -- argv[0] from main
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Prints usage instructions
++***********************************************************************/
++void
++usage(char const *argv0)
++{
++ fprintf(stderr, &quot;Usage: %s [options]\n&quot;, argv0);
++ fprintf(stderr, &quot;Options:\n&quot;);
++#ifdef USE_BPF
++ fprintf(stderr, &quot; -I if_name -- Specify interface (REQUIRED)\n&quot;);
++#else
++ fprintf(stderr, &quot; -I if_name -- Specify interface (default %s.)\n&quot;,
++ DEFAULT_IF);
++#endif
++ fprintf(stderr, &quot; -T timeout -- Specify inactivity timeout in seconds.\n&quot;);
++ fprintf(stderr, &quot; -C name -- Set access concentrator name.\n&quot;);
++ fprintf(stderr, &quot; -m MSS -- Clamp incoming and outgoing MSS options.\n&quot;);
++ fprintf(stderr, &quot; -L ip -- Set local IP address.\n&quot;);
++ fprintf(stderr, &quot; -R ip -- Set start address of remote IP pool.\n&quot;);
++ fprintf(stderr, &quot; -p fname -- Optain IP address pool from specified file.\n&quot;);
++ fprintf(stderr, &quot; -N num -- Allow 'num' concurrent sessions.\n&quot;);
++ fprintf(stderr, &quot; -o offset -- Assign session numbers starting at offset+1.\n&quot;);
++ fprintf(stderr, &quot; -f disc:sess -- Set Ethernet frame types (hex).\n&quot;);
++ fprintf(stderr, &quot; -s -- Use synchronous PPP mode.\n&quot;);
++#ifdef HAVE_LINUX_KERNEL_PPPOE
++ fprintf(stderr, &quot; -k -- Use kernel-mode PPPoE.\n&quot;);
++#endif
++ fprintf(stderr, &quot; -h -- Print usage information.\n\n&quot;);
++ fprintf(stderr, &quot;PPPoE-Server Version %s, Copyright (C) 2001 Roaring Penguin Software Inc.\n&quot;, VERSION);
++ fprintf(stderr, &quot;PPPoE-Server comes with ABSOLUTELY NO WARRANTY.\n&quot;);
++ fprintf(stderr, &quot;This is free software, and you are welcome to redistribute it\n&quot;);
++ fprintf(stderr, &quot;under the terms of the GNU General Public License, version 2\n&quot;);
++ fprintf(stderr, &quot;or (at your option) any later version.\n&quot;);
++ fprintf(stderr, &quot;http://www.roaringpenguin.com\n&quot;);
++}
++
++/**********************************************************************
++*%FUNCTION: main
++*%ARGUMENTS:
++* argc, argv -- usual suspects
++*%RETURNS:
++* Exit status
++*%DESCRIPTION:
++* Main program of PPPoE server
++***********************************************************************/
++int
++main(int argc, char **argv)
++{
++
++ FILE *fp;
++ int i;
++ int opt;
++ unsigned char myAddr[ETH_ALEN];
++ PPPoEPacket packet;
++ int len;
++ int sock;
++ int d[IPV4ALEN];
++ int beDaemon = 1;
++ struct sigaction act;
++ int maxFD;
++ unsigned int discoveryType, sessionType;
++ char *addressPoolFname = NULL;
++
++#ifndef HAVE_LINUX_KERNEL_PPPOE
++ char *options = &quot;hI:C:L:R:T:m:FN:f:o:sp:&quot;;
++#else
++ char *options = &quot;hI:C:L:R:T:m:FN:f:o:skp:&quot;;
++#endif
++
++ /* Initialize syslog */
++ openlog(&quot;pppoe-server&quot;, LOG_PID, LOG_DAEMON);
++
++ /* Default number of session slots */
++ NumSessionSlots = DEFAULT_MAX_SESSIONS;
++
++ /* Parse command-line options */
++ while((opt = getopt(argc, argv, options)) != -1) {
++ switch(opt) {
++#ifdef HAVE_LINUX_KERNEL_PPPOE
++ case 'k':
++ UseLinuxKernelModePPPoE = 1;
++ break;
++#endif
++ case 'p':
++ addressPoolFname = optarg;
++ break;
++ case 's':
++ Synchronous = 1;
++ /* Pass the Synchronous option on to pppoe */
++ snprintf(PppoeOptions + strlen(PppoeOptions),
++ SMALLBUF-strlen(PppoeOptions),
++ &quot; -s&quot;);
++ break;
++ case 'f':
++ if (sscanf(optarg, &quot;%x:%x&quot;, &amp;discoveryType, &amp;sessionType) != 2) {
++ fprintf(stderr, &quot;Illegal argument to -f: Should be disc:sess in hex\n&quot;);
++ exit(EXIT_FAILURE);
++ }
++ Eth_PPPOE_Discovery = (UINT16_t) discoveryType;
++ Eth_PPPOE_Session = (UINT16_t) sessionType;
++ /* This option gets passed to pppoe */
++ snprintf(PppoeOptions + strlen(PppoeOptions),
++ SMALLBUF-strlen(PppoeOptions),
++ &quot; -%c %s&quot;, opt, optarg);
++ break;
++ case 'F':
++ beDaemon = 0;
++ break;
++ case 'N':
++ if (sscanf(optarg, &quot;%d&quot;, &amp;opt) != 1) {
++ usage(argv[0]);
++ exit(EXIT_FAILURE);
++ }
++ if (opt &lt;= 0) {
++ fprintf(stderr, &quot;-N: Value must be positive\n&quot;);
++ exit(EXIT_FAILURE);
++ }
++ NumSessionSlots = opt;
++ break;
++ case 'o':
++ if (sscanf(optarg, &quot;%d&quot;, &amp;opt) != 1) {
++ usage(argv[0]);
++ exit(EXIT_FAILURE);
++ }
++ if (opt &lt; 0) {
++ fprintf(stderr, &quot;-o: Value must be non-negative\n&quot;);
++ exit(EXIT_FAILURE);
++ }
++ SessOffset = (size_t) opt;
++ break;
++
++ case 'I':
++ SET_STRING(IfName, optarg);
++ break;
++ case 'C':
++ SET_STRING(ACName, optarg);
++ break;
++ case 'L':
++ case 'R':
++ /* Get local/remote IP address */
++ if (sscanf(optarg, &quot;%d.%d.%d.%d&quot;, &amp;d[0], &amp;d[1], &amp;d[2], &amp;d[3]) != 4) {
++ usage(argv[0]);
++ exit(EXIT_FAILURE);
++ }
++ for (i=0; i&lt;IPV4ALEN; i++) {
++ if (d[i] &lt; 0 || d[i] &gt; 255) {
++ usage(argv[0]);
++ exit(EXIT_FAILURE);
++ }
++ if (opt == 'L') {
++ LocalIP[i] = (unsigned char) d[i];
++ } else {
++ RemoteIP[i] = (unsigned char) d[i];
++ }
++ }
++ break;
++ case 'T':
++ case 'm':
++ /* These just get passed to pppoe */
++ snprintf(PppoeOptions + strlen(PppoeOptions),
++ SMALLBUF-strlen(PppoeOptions),
++ &quot; -%c %s&quot;, opt, optarg);
++ break;
++ case 'h':
++ usage(argv[0]);
++ exit(EXIT_SUCCESS);
++ }
++ }
++
++#ifdef USE_LINUX_PACKET
++#ifndef HAVE_STRUCT_SOCKADDR_LL
++ fprintf(stderr, &quot;The PPPoE relay does not work on Linux 2.0 kernels.\n&quot;);
++ exit(EXIT_FAILURE);
++#endif
++#endif
++
++ if (!IfName) {
++ IfName = DEFAULT_IF;
++ }
++
++ if (!ACName) {
++ ACName = malloc(HOSTNAMELEN);
++ if (gethostname(ACName, HOSTNAMELEN) &lt; 0) {
++ fatalSys(&quot;gethostname&quot;);
++ }
++ }
++
++ /* If address pool filename given, count number of addresses */
++ if (addressPoolFname) {
++ NumSessionSlots = parseAddressPool(addressPoolFname, 0);
++ }
++
++ /* Max 65534 - SessOffset sessions */
++ if (NumSessionSlots + SessOffset &gt; 65534) {
++ fprintf(stderr, &quot;-N and -o options must add up to at most 65534\n&quot;);
++ exit(EXIT_FAILURE);
++ }
++
++ /* Allocate memory for sessions */
++ Sessions = calloc(NumSessionSlots, sizeof(struct ClientSession));
++ if (!Sessions) {
++ rp_fatal(&quot;Cannot allocate memory for session slots&quot;);
++ }
++
++ /* Fill in remote IP addresses from pool */
++ if (addressPoolFname) {
++ (void) parseAddressPool(addressPoolFname, 1);
++ }
++
++ /* For testing -- generate sequential remote IP addresses */
++ for(i=0; i&lt;NumSessionSlots; i++) {
++ Sessions[i].pid = 0;
++ Sessions[i].sess = htons(i+1+SessOffset);
++
++ if (!addressPoolFname) {
++ memcpy(Sessions[i].ip, RemoteIP, sizeof(RemoteIP));
++
++ /* Increment IP */
++ RemoteIP[3]++;
++ if (!RemoteIP[3]) {
++ RemoteIP[3] = 0;
++ RemoteIP[2]++;
++ if (!RemoteIP[2]) {
++ RemoteIP[1]++;
++ if (!RemoteIP[1]) {
++ RemoteIP[0]++;
++ }
++ }
++ }
++ }
++ }
++
++ /* Daemonize -- UNIX Network Programming, Vol. 1, Stevens */
++ if (beDaemon) {
++ i = fork();
++ if (i &lt; 0) {
++ fatalSys(&quot;fork&quot;);
++ } else if (i != 0) {
++ /* parent */
++ exit(EXIT_SUCCESS);
++ }
++ setsid();
++ signal(SIGHUP, SIG_IGN);
++ i = fork();
++ if (i &lt; 0) {
++ fatalSys(&quot;fork&quot;);
++ } else if (i != 0) {
++ exit(EXIT_SUCCESS);
++ }
++
++ chdir(&quot;/&quot;);
++ closelog();
++ for (i=0; i&lt;CLOSEFD; i++) close(i);
++ /* We nuked our syslog descriptor... */
++ openlog(&quot;pppoe-server&quot;, LOG_PID, LOG_DAEMON);
++ }
++
++ /* Initialize our random cookie. Try /dev/urandom; if that fails,
++ use PID and rand() */
++ fp = fopen(&quot;/dev/urandom&quot;, &quot;r&quot;);
++ if (fp) {
++ fread(&amp;CookieSeed, 1, SEED_LEN, fp);
++ fclose(fp);
++ } else {
++ CookieSeed[0] = getpid() &amp; 0xFF;
++ CookieSeed[1] = (getpid() &gt;&gt; 8) &amp; 0xFF;
++ for (i=2; i&lt;SEED_LEN; i++) {
++ CookieSeed[i] = (rand() &gt;&gt; (i % 9)) &amp; 0xFF;
++ }
++ }
++
++ sock = openInterface(IfName, Eth_PPPOE_Discovery, myAddr);
++
++ /* Set signal handler for SIGCHLD */
++ act.sa_handler = childHandler;
++ sigemptyset(&amp;act.sa_mask);
++ act.sa_flags = SA_NOCLDSTOP | SA_RESTART;
++ if (sigaction(SIGCHLD, &amp;act, NULL) &lt; 0) {
++ fatalSys(&quot;sigaction&quot;);
++ }
++
++ /* Set up pipe for signal handler */
++ if (pipe(Pipe) &lt; 0) {
++ fatalSys(&quot;pipe&quot;);
++ }
++
++ /* Main server loop */
++ maxFD = sock;
++ if (Pipe[0] &gt; maxFD) maxFD = Pipe[0];
++ maxFD++;
++
++ for(;;) {
++ fd_set readable;
++ FD_ZERO(&amp;readable);
++ FD_SET(sock, &amp;readable);
++ FD_SET(Pipe[0], &amp;readable);
++
++ while(1) {
++ i = select(maxFD, &amp;readable, NULL, NULL, NULL);
++ if (i &gt;= 0 || errno != EINTR) break;
++ }
++ if (i &lt; 0) {
++ fatalSys(&quot;select&quot;);
++ }
++
++ if (FD_ISSET(Pipe[0], &amp;readable)) {
++ /* Clear pipe */
++ char buf[SMALLBUF];
++ read(Pipe[0], buf, SMALLBUF);
++ }
++
++ if (ReapPending) {
++ ReapPending = 0;
++ reapSessions(myAddr, sock);
++ }
++ if (!FD_ISSET(sock, &amp;readable)) {
++ continue;
++ }
++
++ if (receivePacket(sock, &amp;packet, &amp;len) &lt; 0) {
++ continue;
++ }
++
++ /* Check length */
++ if (ntohs(packet.length) + HDR_SIZE &gt; len) {
++ syslog(LOG_ERR, &quot;Bogus PPPoE length field (%u)&quot;,
++ (unsigned int) ntohs(packet.length));
++ continue;
++ }
++
++ /* Sanity check on packet */
++ if (packet.ver != 1 || packet.type != 1) {
++ /* Syslog an error */
++ continue;
++ }
++ switch(packet.code) {
++ case CODE_PADI:
++ processPADI(sock, myAddr, &amp;packet, len);
++ break;
++ case CODE_PADR:
++ processPADR(sock, myAddr, &amp;packet, len);
++ break;
++ case CODE_PADT:
++ /* Kill the child */
++ processPADT(sock, myAddr, &amp;packet, len);
++ break;
++ case CODE_SESS:
++ /* Ignore SESS -- children will handle them */
++ break;
++ case CODE_PADO:
++ case CODE_PADS:
++ /* Ignore PADO and PADS totally */
++ break;
++ default:
++ /* Syslog an error */
++ break;
++ }
++ }
++ return 0;
++}
++
++/**********************************************************************
++*%FUNCTION: sendErrorPADS
++*%ARGUMENTS:
++* sock -- socket to write to
++* source -- source Ethernet address
++* dest -- destination Ethernet address
++* errorTag -- error tag
++* errorMsg -- error message
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Sends a PADS packet with an error message
++***********************************************************************/
++void
++sendErrorPADS(int sock,
++ unsigned char *source,
++ unsigned char *dest,
++ int errorTag,
++ char *errorMsg)
++{
++ PPPoEPacket pads;
++ unsigned char *cursor = pads.payload;
++ UINT16_t plen;
++ PPPoETag err;
++ int elen = strlen(errorMsg);
++
++ memcpy(pads.ethHdr.h_dest, dest, ETH_ALEN);
++ memcpy(pads.ethHdr.h_source, source, ETH_ALEN);
++ pads.ethHdr.h_proto = htons(Eth_PPPOE_Discovery);
++ pads.ver = 1;
++ pads.type = 1;
++ pads.code = CODE_PADS;
++
++ pads.session = htons(0);
++ plen = 0;
++
++ err.type = htons(errorTag);
++ err.length = htons(elen);
++
++ memcpy(err.payload, errorMsg, elen);
++ memcpy(cursor, &amp;err, TAG_HDR_SIZE+elen);
++ cursor += TAG_HDR_SIZE + elen;
++ plen += TAG_HDR_SIZE + elen;
++
++ if (relayId.type) {
++ memcpy(cursor, &amp;relayId, ntohs(relayId.length) + TAG_HDR_SIZE);
++ cursor += ntohs(relayId.length) + TAG_HDR_SIZE;
++ plen += ntohs(relayId.length) + TAG_HDR_SIZE;
++ }
++ if (hostUniq.type) {
++ memcpy(cursor, &amp;hostUniq, ntohs(hostUniq.length) + TAG_HDR_SIZE);
++ cursor += ntohs(hostUniq.length) + TAG_HDR_SIZE;
++ plen += ntohs(hostUniq.length) + TAG_HDR_SIZE;
++ }
++ pads.length = htons(plen);
++ sendPacket(NULL, sock, &amp;pads, (int) (plen + HDR_SIZE));
++}
++
++
++/**********************************************************************
++*%FUNCTION: startPPPDUserMode
++*%ARGUMENTS:
++* session -- client session record
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Starts PPPD for user-mode PPPoE
++***********************************************************************/
++void
++startPPPDUserMode(struct ClientSession *session)
++{
++ /* Leave some room */
++ char *argv[20];
++
++ char buffer[SMALLBUF];
++
++ argv[0] = &quot;pppd&quot;;
++ argv[1] = &quot;pty&quot;;
++
++ snprintf(buffer, SMALLBUF, &quot;%s -n -I %s -e %d:%02x:%02x:%02x:%02x:%02x:%02x%s&quot;,
++ PPPOE_PATH, IfName,
++ ntohs(session-&gt;sess),
++ session-&gt;eth[0], session-&gt;eth[1], session-&gt;eth[2],
++ session-&gt;eth[3], session-&gt;eth[4], session-&gt;eth[5],
++ PppoeOptions);
++ argv[2] = strdup(buffer);
++ if (!argv[2]) {
++ /* TODO: Send a PADT */
++ exit(EXIT_FAILURE);
++ }
++
++ argv[3] = &quot;file&quot;;
++ argv[4] = PPPOE_SERVER_OPTIONS;
++
++ snprintf(buffer, SMALLBUF, &quot;%d.%d.%d.%d:%d.%d.%d.%d&quot;,
++ (int) LocalIP[0], (int) LocalIP[1],
++ (int) LocalIP[2], (int) LocalIP[3],
++ (int) session-&gt;ip[0], (int) session-&gt;ip[1],
++ (int) session-&gt;ip[2], (int) session-&gt;ip[3]);
++ syslog(LOG_INFO,
++ &quot;Session %d created for client %02x:%02x:%02x:%02x:%02x:%02x (%d.%d.%d.%d)&quot;,
++ ntohs(session-&gt;sess),
++ session-&gt;eth[0], session-&gt;eth[1], session-&gt;eth[2],
++ session-&gt;eth[3], session-&gt;eth[4], session-&gt;eth[5],
++ (int) session-&gt;ip[0], (int) session-&gt;ip[1],
++ (int) session-&gt;ip[2], (int) session-&gt;ip[3]);
++ argv[5] = buffer; /* No need for strdup -- about to execv! */
++ argv[6] = &quot;nodetach&quot;;
++ argv[7] = &quot;noaccomp&quot;;
++ argv[8] = &quot;nobsdcomp&quot;;
++ argv[9] = &quot;nodeflate&quot;;
++ argv[10] = &quot;nopcomp&quot;;
++ argv[11] = &quot;novj&quot;;
++ argv[12] = &quot;novjccomp&quot;;
++ argv[13] = &quot;default-asyncmap&quot;;
++ if (Synchronous) {
++ argv[14] = &quot;sync&quot;;
++ argv[15] = NULL;
++ } else {
++ argv[14] = NULL;
++ }
++
++ execv(PPPD_PATH, argv);
++ exit(EXIT_FAILURE);
++}
++
++/**********************************************************************
++*%FUNCTION: startPPPDLinuxKernelMode
++*%ARGUMENTS:
++* session -- client session record
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Starts PPPD for kernel-mode PPPoE on Linux
++***********************************************************************/
++void
++startPPPDLinuxKernelMode(struct ClientSession *session)
++{
++ /* Leave some room */
++ char *argv[20];
++
++ char buffer[SMALLBUF];
++
++ argv[0] = &quot;pppd&quot;;
++ argv[1] = &quot;plugin&quot;;
++ argv[2] = PLUGIN_PATH;
++ argv[3] = IfName;
++ snprintf(buffer, SMALLBUF, &quot;%d:%02x:%02x:%02x:%02x:%02x:%02x&quot;,
++ ntohs(session-&gt;sess),
++ session-&gt;eth[0], session-&gt;eth[1], session-&gt;eth[2],
++ session-&gt;eth[3], session-&gt;eth[4], session-&gt;eth[5]);
++ argv[4] = &quot;rp_pppoe_sess&quot;;
++ argv[5] = strdup(buffer);
++ if (!argv[5]) {
++ /* TODO: Send a PADT */
++ exit(EXIT_FAILURE);
++ }
++ argv[6] = &quot;file&quot;;
++ argv[7] = PPPOE_SERVER_OPTIONS;
++
++ snprintf(buffer, SMALLBUF, &quot;%d.%d.%d.%d:%d.%d.%d.%d&quot;,
++ (int) LocalIP[0], (int) LocalIP[1],
++ (int) LocalIP[2], (int) LocalIP[3],
++ (int) session-&gt;ip[0], (int) session-&gt;ip[1],
++ (int) session-&gt;ip[2], (int) session-&gt;ip[3]);
++ syslog(LOG_INFO,
++ &quot;Session %d created for client %02x:%02x:%02x:%02x:%02x:%02x (%d.%d.%d.%d)&quot;,
++ ntohs(session-&gt;sess),
++ session-&gt;eth[0], session-&gt;eth[1], session-&gt;eth[2],
++ session-&gt;eth[3], session-&gt;eth[4], session-&gt;eth[5],
++ (int) session-&gt;ip[0], (int) session-&gt;ip[1],
++ (int) session-&gt;ip[2], (int) session-&gt;ip[3]);
++ argv[8] = buffer;
++ argv[9] = &quot;nodetach&quot;;
++ argv[10] = &quot;noaccomp&quot;;
++ argv[11] = &quot;nobsdcomp&quot;;
++ argv[12] = &quot;nodeflate&quot;;
++ argv[13] = &quot;nopcomp&quot;;
++ argv[14] = &quot;novj&quot;;
++ argv[15] = &quot;novjccomp&quot;;
++ argv[16] = &quot;default-asyncmap&quot;;
++ argv[17] = NULL;
++ execv(PPPD_PATH, argv);
++ exit(EXIT_FAILURE);
++}
++
++/**********************************************************************
++*%FUNCTION: startPPPD
++*%ARGUMENTS:
++* session -- client session record
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Starts PPPD
++***********************************************************************/
++void
++startPPPD(struct ClientSession *session)
++{
++ if (UseLinuxKernelModePPPoE) startPPPDLinuxKernelMode(session);
++ else startPPPDUserMode(session);
++}
++
+
+
+Property changes on: drakx/trunk/mdk-stage1/rp-pppoe/src/pppoe-server.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1rppppoesrcpppoesniffc">Added: drakx/trunk/mdk-stage1/rp-pppoe/src/pppoe-sniff.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/src/pppoe-sniff.c (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/src/pppoe-sniff.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,258 @@
++/***********************************************************************
++*
++* pppoe-sniff.c
++*
++* Sniff a network for likely-looking PPPoE frames and deduce the value
++* to supply to PPPOE_EXTRA in /etc/ppp/pppoe.conf. USE AT YOUR OWN RISK.
++*
++* Copyright (C) 2000 by Roaring Penguin Software Inc.
++*
++* This program may be distributed according to the terms of the GNU
++* General Public License, version 2 or (at your option) any later version.
++*
++***********************************************************************/
++
++static char const RCSID[] =
++&quot;$Id: pppoe-sniff.c 195724 2001-06-11 13:49:39Z gc $&quot;;
++
++#include &quot;pppoe.h&quot;
++
++#ifdef HAVE_GETOPT_H
++#include &lt;getopt.h&gt;
++#endif
++
++#include &lt;errno.h&gt;
++#include &lt;unistd.h&gt;
++#include &lt;string.h&gt;
++#include &lt;stdlib.h&gt;
++
++#ifdef USE_DLPI
++#include &lt;sys/dlpi.h&gt;
++/* function declarations */
++void dlpromisconreq( int fd, u_long level);
++void dlokack(int fd, char *bufp);
++#endif
++
++/* Default interface if no -I option given */
++#define DEFAULT_IF &quot;eth0&quot;
++
++/* Global vars */
++int SeenPADR = 0;
++int SeenSess = 0;
++UINT16_t SessType, DiscType;
++
++char *IfName = NULL; /* Interface name */
++char *ServiceName = NULL; /* Service name */
++
++/**********************************************************************
++*%FUNCTION: parsePADRTags
++*%ARGUMENTS:
++* type -- tag type
++* len -- tag length
++* data -- tag data
++* extra -- extra user data.
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Picks interesting tags out of a PADR packet
++***********************************************************************/
++void
++parsePADRTags(UINT16_t type, UINT16_t len, unsigned char *data,
++ void *extra)
++{
++ switch(type) {
++ case TAG_SERVICE_NAME:
++ ServiceName = malloc(len+1);
++ if (ServiceName) {
++ memcpy(ServiceName, data, len);
++ ServiceName[len] = 0;
++ }
++ break;
++ }
++}
++
++/**********************************************************************
++*%FUNCTION: fatalSys
++*%ARGUMENTS:
++* str -- error message
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Prints a message plus the errno value to stderr and exits.
++***********************************************************************/
++void
++fatalSys(char const *str)
++{
++ char buf[1024];
++ sprintf(buf, &quot;%.256s: %.256s&quot;, str, strerror(errno));
++ printErr(buf);
++ exit(1);
++}
++
++/**********************************************************************
++*%FUNCTION: rp_fatal
++*%ARGUMENTS:
++* str -- error message
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Prints a message to stderr and syslog and exits.
++***********************************************************************/
++void
++rp_fatal(char const *str)
++{
++ printErr(str);
++ exit(1);
++}
++
++/**********************************************************************
++*%FUNCTION: usage
++*%ARGUMENTS:
++* argv0 -- program name
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Prints usage information and exits.
++***********************************************************************/
++void
++usage(char const *argv0)
++{
++ fprintf(stderr, &quot;Usage: %s [options]\n&quot;, argv0);
++ fprintf(stderr, &quot;Options:\n&quot;);
++ fprintf(stderr, &quot; -I if_name -- Specify interface (default %s.)\n&quot;,
++ DEFAULT_IF);
++ fprintf(stderr, &quot; -V -- Print version and exit.\n&quot;);
++ fprintf(stderr, &quot;\nPPPoE Version %s, Copyright (C) 2000 Roaring Penguin Software Inc.\n&quot;, VERSION);
++ fprintf(stderr, &quot;PPPoE comes with ABSOLUTELY NO WARRANTY.\n&quot;);
++ fprintf(stderr, &quot;This is free software, and you are welcome to redistribute it under the terms\n&quot;);
++ fprintf(stderr, &quot;of the GNU General Public License, version 2 or any later version.\n&quot;);
++ fprintf(stderr, &quot;http://www.roaringpenguin.com\n&quot;);
++ exit(0);
++}
++
++#if !defined(USE_LINUX_PACKET) &amp;&amp; !defined(USE_DLPI)
++
++int
++main()
++{
++ fprintf(stderr, &quot;Sorry, pppoe-sniff works only on Linux.\n&quot;);
++ return 1;
++}
++
++#else
++
++/**********************************************************************
++*%FUNCTION: main
++*%ARGUMENTS:
++* argc, argv -- count and values of command-line arguments
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Main program
++***********************************************************************/
++int
++main(int argc, char *argv[])
++{
++ int opt;
++ int sock;
++ PPPoEPacket pkt;
++ int size;
++#ifdef USE_DLPI
++ long buf[MAXDLBUF];
++#endif
++
++ while((opt = getopt(argc, argv, &quot;I:V&quot;)) != -1) {
++ switch(opt) {
++ case 'I':
++ SET_STRING(IfName, optarg);
++ break;
++ case 'V':
++ printf(&quot;pppoe-sniff: Roaring Penguin PPPoE Version %s\n&quot;, VERSION);
++ exit(0);
++ default:
++ usage(argv[0]);
++ }
++ }
++
++ /* Pick a default interface name */
++ if (!IfName) {
++ IfName = DEFAULT_IF;
++ }
++
++ /* Open the interface */
++#ifdef USE_DLPI
++ sock = openInterface(IfName, Eth_PPPOE_Discovery, NULL);
++ dlpromisconreq(sock, DL_PROMISC_PHYS);
++ dlokack(sock, (char *)buf);
++ dlpromisconreq(sock, DL_PROMISC_SAP);
++ dlokack(sock, (char *)buf);
++#else
++
++ sock = openInterface(IfName, ETH_P_ALL, NULL);
++
++#endif
++
++ /* We assume interface is in promiscuous mode -- use ifconfig to
++ ensure this */
++ fprintf(stderr, &quot;Sniffing for PADR. Start your connection on another machine...\n&quot;);
++ while (!SeenPADR) {
++ if (receivePacket(sock, &amp;pkt, &amp;size) &lt; 0) continue;
++ if (ntohs(pkt.length) + HDR_SIZE &gt; size) continue;
++ if (pkt.ver != 1 || pkt.type != 1) continue;
++ if (pkt.code != CODE_PADR) continue;
++
++ /* Looks promising... parse it */
++ if (parsePacket(&amp;pkt, parsePADRTags, NULL) &lt; 0) {
++ continue;
++ }
++ DiscType = ntohs(pkt.ethHdr.h_proto);
++ fprintf(stderr, &quot;\nExcellent! Sniffed a likely-looking PADR.\n&quot;);
++ break;
++ }
++
++ while (!SeenSess) {
++ if (receivePacket(sock, &amp;pkt, &amp;size) &lt; 0) continue;
++ if (ntohs(pkt.length) + HDR_SIZE &gt; size) continue;
++ if (pkt.ver != 1 || pkt.type != 1) continue;
++ if (pkt.code != CODE_SESS) continue;
++
++ /* Cool! */
++ SessType = ntohs(pkt.ethHdr.h_proto);
++ break;
++ }
++
++ fprintf(stderr, &quot;Wonderful! Sniffed a likely-looking session packet.\n&quot;);
++ if ((ServiceName == NULL || *ServiceName == 0) &amp;&amp;
++ DiscType == ETH_PPPOE_DISCOVERY &amp;&amp;
++ SessType == ETH_PPPOE_SESSION) {
++ fprintf(stderr, &quot;\nGreat! It looks like a standard PPPoE service.\nYou should not need anything special in the configuration file.\n&quot;);
++ return 0;
++ }
++
++ fprintf(stderr, &quot;\nOK, looks like you need something special in the configuration file.\nTry this:\n\n&quot;);
++ if (ServiceName != NULL &amp;&amp; *ServiceName != 0) {
++ fprintf(stderr, &quot;SERVICENAME='%s'\n&quot;, ServiceName);
++ }
++ if (DiscType != ETH_PPPOE_DISCOVERY || SessType != ETH_PPPOE_SESSION) {
++ fprintf(stderr, &quot; PPPOE_EXTRA='-f %x:%x'\n&quot;, DiscType, SessType);
++ }
++ return 0;
++}
++
++#endif
++/**********************************************************************
++*%FUNCTION: sysErr
++*%ARGUMENTS:
++* str -- error message
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Prints a message plus the errno value to syslog.
++***********************************************************************/
++void
++sysErr(char const *str)
++{
++ char buf[1024];
++ sprintf(buf, &quot;%.256s: %.256s&quot;, str, strerror(errno));
++ printErr(buf);
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/rp-pppoe/src/pppoe-sniff.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1rppppoesrcpppoec">Added: drakx/trunk/mdk-stage1/rp-pppoe/src/pppoe.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/src/pppoe.c (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/src/pppoe.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,834 @@
++/***********************************************************************
++*
++* pppoe.c
++*
++* Implementation of user-space PPPoE redirector for Linux.
++*
++* Copyright (C) 2000-2001 by Roaring Penguin Software Inc.
++*
++* This program may be distributed according to the terms of the GNU
++* General Public License, version 2 or (at your option) any later version.
++*
++***********************************************************************/
++
++static char const RCSID[] =
++&quot;$Id: pppoe.c 224882 2007-07-16 22:03:12Z blino $&quot;;
++
++#include &quot;pppoe.h&quot;
++
++#ifdef HAVE_SYSLOG_H
++#include &lt;syslog.h&gt;
++#endif
++
++#ifdef HAVE_GETOPT_H
++#include &lt;getopt.h&gt;
++#endif
++
++#include &lt;string.h&gt;
++#include &lt;stdlib.h&gt;
++#include &lt;errno.h&gt;
++
++#ifdef HAVE_SYS_TIME_H
++#include &lt;sys/time.h&gt;
++#endif
++
++#ifdef HAVE_SYS_UIO_H
++#include &lt;sys/uio.h&gt;
++#endif
++
++#ifdef HAVE_UNISTD_H
++#include &lt;unistd.h&gt;
++#endif
++
++#ifdef USE_LINUX_PACKET
++#include &lt;sys/ioctl.h&gt;
++#include &lt;fcntl.h&gt;
++#endif
++
++#include &lt;signal.h&gt;
++
++#ifdef HAVE_N_HDLC
++#ifndef N_HDLC
++#include &lt;termios.h&gt;
++#endif
++#endif
++
++/* Default interface if no -I option given */
++#define DEFAULT_IF &quot;eth0&quot;
++
++/* Global variables -- options */
++int optInactivityTimeout = 0; /* Inactivity timeout */
++int optClampMSS = 0; /* Clamp MSS to this value */
++int optSkipSession = 0; /* Perform discovery, print session info
++ and exit */
++
++PPPoEConnection *Connection = NULL; /* Must be global -- used
++ in signal handler */
++/***********************************************************************
++*%FUNCTION: sendSessionPacket
++*%ARGUMENTS:
++* conn -- PPPoE connection
++* packet -- the packet to send
++* len -- length of data to send
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Transmits a session packet to the peer.
++***********************************************************************/
++void
++sendSessionPacket(PPPoEConnection *conn, PPPoEPacket *packet, int len)
++{
++ packet-&gt;length = htons(len);
++ if (optClampMSS) {
++ clampMSS(packet, &quot;outgoing&quot;, optClampMSS);
++ }
++ if (sendPacket(conn, conn-&gt;sessionSocket, packet, len + HDR_SIZE) &lt; 0) {
++ exit(EXIT_FAILURE);
++ }
++ if (conn-&gt;debugFile) {
++ dumpPacket(conn-&gt;debugFile, packet, &quot;SENT&quot;);
++ fprintf(conn-&gt;debugFile, &quot;\n&quot;);
++ fflush(conn-&gt;debugFile);
++ }
++}
++
++#ifdef USE_BPF
++/**********************************************************************
++*%FUNCTION: sessionDiscoveryPacket
++*%ARGUMENTS:
++* packet -- the discovery packet that was received
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* We got a discovery packet during the session stage. This most likely
++* means a PADT.
++*
++* The BSD version uses a single socket for both discovery and session
++* packets. When a packet comes in over the wire once we are in
++* session mode, either syncReadFromEth() or asyncReadFromEth() will
++* have already read the packet and determined it to be a discovery
++* packet before passing it here.
++***********************************************************************/
++void
++sessionDiscoveryPacket(PPPoEPacket *packet)
++{
++ /* Sanity check */
++ if (packet-&gt;code != CODE_PADT) {
++ return;
++ }
++
++ /* It's a PADT, all right. Is it for us? */
++ if (packet-&gt;session != Connection-&gt;session) {
++ /* Nope, ignore it */
++ return;
++ }
++
++ syslog(LOG_INFO,
++ &quot;Session terminated -- received PADT from access concentrator&quot;);
++ parsePacket(packet, parseLogErrs, NULL);
++ exit(EXIT_SUCCESS);
++}
++#else
++/**********************************************************************
++*%FUNCTION: sessionDiscoveryPacket
++*%ARGUMENTS:
++* conn -- PPPoE connection
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* We got a discovery packet during the session stage. This most likely
++* means a PADT.
++***********************************************************************/
++void
++sessionDiscoveryPacket(PPPoEConnection *conn)
++{
++ PPPoEPacket packet;
++ int len;
++
++ if (receivePacket(conn-&gt;discoverySocket, &amp;packet, &amp;len) &lt; 0) {
++ return;
++ }
++
++ /* Check length */
++ if (ntohs(packet.length) + HDR_SIZE &gt; len) {
++ syslog(LOG_ERR, &quot;Bogus PPPoE length field (%u)&quot;,
++ (unsigned int) ntohs(packet.length));
++ return;
++ }
++
++ if (conn-&gt;debugFile) {
++ dumpPacket(conn-&gt;debugFile, &amp;packet, &quot;RCVD&quot;);
++ fprintf(conn-&gt;debugFile, &quot;\n&quot;);
++ fflush(conn-&gt;debugFile);
++ }
++
++ if (packet.code != CODE_PADT) {
++ /* Not PADT; ignore it */
++ return;
++ }
++
++ /* It's a PADT, all right. Is it for us? */
++ if (packet.session != conn-&gt;session) {
++ /* Nope, ignore it */
++ return;
++ }
++
++ syslog(LOG_INFO,
++ &quot;Session terminated -- received PADT from peer&quot;);
++ parsePacket(&amp;packet, parseLogErrs, NULL);
++ exit(EXIT_SUCCESS);
++}
++#endif /* USE_BPF */
++
++/**********************************************************************
++*%FUNCTION: session
++*%ARGUMENTS:
++* conn -- PPPoE connection info
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Handles the &quot;session&quot; phase of PPPoE
++***********************************************************************/
++void
++session(PPPoEConnection *conn)
++{
++ fd_set readable;
++ PPPoEPacket packet;
++ struct timeval tv;
++ struct timeval *tvp = NULL;
++ int maxFD = 0;
++ int r;
++
++ /* Open a session socket */
++ conn-&gt;sessionSocket = openInterface(conn-&gt;ifName, Eth_PPPOE_Session, conn-&gt;myEth);
++
++ /* Prepare for select() */
++ if (conn-&gt;sessionSocket &gt; maxFD) maxFD = conn-&gt;sessionSocket;
++ if (conn-&gt;discoverySocket &gt; maxFD) maxFD = conn-&gt;discoverySocket;
++ maxFD++;
++
++ /* Fill in the constant fields of the packet to save time */
++ memcpy(packet.ethHdr.h_dest, conn-&gt;peerEth, ETH_ALEN);
++ memcpy(packet.ethHdr.h_source, conn-&gt;myEth, ETH_ALEN);
++ packet.ethHdr.h_proto = htons(Eth_PPPOE_Session);
++ packet.ver = 1;
++ packet.type = 1;
++ packet.code = CODE_SESS;
++ packet.session = conn-&gt;session;
++
++ initPPP();
++
++#ifdef USE_BPF
++ /* check for buffered session data */
++ while (BPF_BUFFER_HAS_DATA) {
++ if (conn-&gt;synchronous) {
++ syncReadFromEth(conn, conn-&gt;sessionSocket, optClampMSS);
++ } else {
++ asyncReadFromEth(conn, conn-&gt;sessionSocket, optClampMSS);
++ }
++ }
++#endif
++
++ for (;;) {
++ if (optInactivityTimeout &gt; 0) {
++ tv.tv_sec = optInactivityTimeout;
++ tv.tv_usec = 0;
++ tvp = &amp;tv;
++ }
++ FD_ZERO(&amp;readable);
++ FD_SET(0, &amp;readable); /* ppp packets come from stdin */
++ if (conn-&gt;discoverySocket &gt;= 0) {
++ FD_SET(conn-&gt;discoverySocket, &amp;readable);
++ }
++ FD_SET(conn-&gt;sessionSocket, &amp;readable);
++ while(1) {
++ r = select(maxFD, &amp;readable, NULL, NULL, tvp);
++ if (r &gt;= 0 || errno != EINTR) break;
++ }
++ if (r &lt; 0) {
++ fatalSys(&quot;select (session)&quot;);
++ }
++ if (r == 0) { /* Inactivity timeout */
++ syslog(LOG_ERR, &quot;Inactivity timeout... something wicked happened&quot;);
++ sendPADT(conn, &quot;RP-PPPoE: Inactivity timeout&quot;);
++ exit(EXIT_FAILURE);
++ }
++
++ /* Handle ready sockets */
++ if (FD_ISSET(0, &amp;readable)) {
++ if (conn-&gt;synchronous) {
++ syncReadFromPPP(conn, &amp;packet);
++ } else {
++ asyncReadFromPPP(conn, &amp;packet);
++ }
++ }
++
++ if (FD_ISSET(conn-&gt;sessionSocket, &amp;readable)) {
++ do {
++ if (conn-&gt;synchronous) {
++ syncReadFromEth(conn, conn-&gt;sessionSocket, optClampMSS);
++ } else {
++ asyncReadFromEth(conn, conn-&gt;sessionSocket, optClampMSS);
++ }
++ } while (BPF_BUFFER_HAS_DATA);
++ }
++
++#ifndef USE_BPF
++ /* BSD uses a single socket, see *syncReadFromEth() */
++ /* for calls to sessionDiscoveryPacket() */
++ if (conn-&gt;discoverySocket &gt;= 0) {
++ if (FD_ISSET(conn-&gt;discoverySocket, &amp;readable)) {
++ sessionDiscoveryPacket(conn);
++ }
++ }
++#endif
++
++ }
++}
++
++
++/***********************************************************************
++*%FUNCTION: sigPADT
++*%ARGUMENTS:
++* src -- signal received
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* If an established session exists send PADT to terminate from session
++* from our end
++***********************************************************************/
++void
++sigPADT(int src)
++{
++ syslog(LOG_DEBUG,&quot;Received signal %d.&quot;,(int)src);
++ sendPADT(Connection, &quot;RP-PPPoE: Received signal&quot;);
++ exit(EXIT_SUCCESS);
++}
++
++/**********************************************************************
++*%FUNCTION: usage
++*%ARGUMENTS:
++* argv0 -- program name
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Prints usage information and exits.
++***********************************************************************/
++void
++usage(char const *argv0)
++{
++ fprintf(stderr, &quot;Usage: %s [options]\n&quot;, argv0);
++ fprintf(stderr, &quot;Options:\n&quot;);
++#ifdef USE_BPF
++ fprintf(stderr, &quot; -I if_name -- Specify interface (REQUIRED)\n&quot;);
++#else
++ fprintf(stderr, &quot; -I if_name -- Specify interface (default %s.)\n&quot;,
++ DEFAULT_IF);
++#endif
++ fprintf(stderr, &quot; -T timeout -- Specify inactivity timeout in seconds.\n&quot;);
++ fprintf(stderr, &quot; -D filename -- Log debugging information in filename.\n&quot;);
++ fprintf(stderr, &quot; -V -- Print version and exit.\n&quot;);
++ fprintf(stderr, &quot; -A -- Print access concentrator names and exit.\n&quot;);
++ fprintf(stderr, &quot; -S name -- Set desired service name.\n&quot;);
++ fprintf(stderr, &quot; -C name -- Set desired access concentrator name.\n&quot;);
++ fprintf(stderr, &quot; -U -- Use Host-Unique to allow multiple PPPoE sessions.\n&quot;);
++ fprintf(stderr, &quot; -s -- Use synchronous PPP encapsulation.\n&quot;);
++ fprintf(stderr, &quot; -m MSS -- Clamp incoming and outgoing MSS options.\n&quot;);
++ fprintf(stderr, &quot; -p pidfile -- Write process-ID to pidfile.\n&quot;);
++ fprintf(stderr, &quot; -e sess:mac -- Skip discovery phase; use existing session.\n&quot;);
++ fprintf(stderr, &quot; -n -- Do not open discovery socket.\n&quot;);
++ fprintf(stderr, &quot; -k -- Kill a session with PADT (requires -e)\n&quot;);
++ fprintf(stderr, &quot; -d -- Perform discovery, print session info and exit.\n&quot;);
++ fprintf(stderr, &quot; -f disc:sess -- Set Ethernet frame types (hex).\n&quot;);
++ fprintf(stderr, &quot; -h -- Print usage information.\n\n&quot;);
++ fprintf(stderr, &quot;PPPoE Version %s, Copyright (C) 2001 Roaring Penguin Software Inc.\n&quot;, VERSION);
++ fprintf(stderr, &quot;PPPoE comes with ABSOLUTELY NO WARRANTY.\n&quot;);
++ fprintf(stderr, &quot;This is free software, and you are welcome to redistribute it under the terms\n&quot;);
++ fprintf(stderr, &quot;of the GNU General Public License, version 2 or any later version.\n&quot;);
++ fprintf(stderr, &quot;http://www.roaringpenguin.com\n&quot;);
++ exit(EXIT_SUCCESS);
++}
++
++/**********************************************************************
++*%FUNCTION: main
++*%ARGUMENTS:
++* argc, argv -- count and values of command-line arguments
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Main program
++***********************************************************************/
++int
++main(int argc, char *argv[])
++{
++ int opt;
++ int n;
++ unsigned int m[6]; /* MAC address in -e option */
++ unsigned int s; /* Temporary to hold session */
++ FILE *pidfile;
++ unsigned int discoveryType, sessionType;
++
++ PPPoEConnection conn;
++
++#ifdef HAVE_N_HDLC
++ int disc = N_HDLC;
++ long flags;
++#endif
++
++ /* Initialize connection info */
++ memset(&amp;conn, 0, sizeof(conn));
++ conn.discoverySocket = -1;
++ conn.sessionSocket = -1;
++
++ /* For signal handler */
++ Connection = &amp;conn;
++
++ /* Initialize syslog */
++ openlog(&quot;pppoe&quot;, LOG_PID, LOG_DAEMON);
++
++ while((opt = getopt(argc, argv, &quot;I:VAT:D:hS:C:Usm:np:e:kdf:&quot;)) != -1) {
++ switch(opt) {
++ case 'f':
++ if (sscanf(optarg, &quot;%x:%x&quot;, &amp;discoveryType, &amp;sessionType) != 2) {
++ fprintf(stderr, &quot;Illegal argument to -f: Should be disc:sess in hex\n&quot;);
++ exit(EXIT_FAILURE);
++ }
++ Eth_PPPOE_Discovery = (UINT16_t) discoveryType;
++ Eth_PPPOE_Session = (UINT16_t) sessionType;
++ break;
++ case 'd':
++ optSkipSession = 1;
++ break;
++
++ case 'k':
++ conn.killSession = 1;
++ break;
++
++ case 'n':
++ /* Do not even open a discovery socket -- used when invoked
++ by pppoe-server */
++ conn.noDiscoverySocket = 1;
++ break;
++
++ case 'e':
++ /* Existing session: &quot;sess:xx:yy:zz:aa:bb:cc&quot; where &quot;sess&quot; is
++ session-ID, and xx:yy:zz:aa:bb:cc is MAC-address of peer */
++ n = sscanf(optarg, &quot;%u:%2x:%2x:%2x:%2x:%2x:%2x&quot;,
++ &amp;s, &amp;m[0], &amp;m[1], &amp;m[2], &amp;m[3], &amp;m[4], &amp;m[5]);
++ if (n != 7) {
++ fprintf(stderr, &quot;Illegal argument to -e: Should be sess:xx:yy:zz:aa:bb:cc\n&quot;);
++ exit(EXIT_FAILURE);
++ }
++
++ /* Copy MAC address of peer */
++ for (n=0; n&lt;6; n++) {
++ conn.peerEth[n] = (unsigned char) m[n];
++ }
++
++ /* Convert session */
++ conn.session = htons(s);
++
++ /* Skip discovery phase! */
++ conn.skipDiscovery = 1;
++ break;
++
++ case 'p':
++ pidfile = fopen(optarg, &quot;w&quot;);
++ if (pidfile) {
++ fprintf(pidfile, &quot;%lu\n&quot;, (unsigned long) getpid());
++ fclose(pidfile);
++ }
++ break;
++ case 'S':
++ SET_STRING(conn.serviceName, optarg);
++ break;
++ case 'C':
++ SET_STRING(conn.acName, optarg);
++ break;
++ case 's':
++ conn.synchronous = 1;
++ break;
++ case 'U':
++ conn.useHostUniq = 1;
++ break;
++ case 'D':
++ conn.debugFile = fopen(optarg, &quot;w&quot;);
++ if (!conn.debugFile) {
++ fprintf(stderr, &quot;Could not open %s: %s\n&quot;,
++ optarg, strerror(errno));
++ exit(EXIT_FAILURE);
++ }
++ fprintf(conn.debugFile, &quot;rp-pppoe-%s\n&quot;, VERSION);
++ fflush(conn.debugFile);
++ break;
++ case 'T':
++ optInactivityTimeout = (int) strtol(optarg, NULL, 10);
++ if (optInactivityTimeout &lt; 0) {
++ optInactivityTimeout = 0;
++ }
++ break;
++ case 'm':
++ optClampMSS = (int) strtol(optarg, NULL, 10);
++ if (optClampMSS &lt; 536) {
++ fprintf(stderr, &quot;-m: %d is too low (min 536)\n&quot;, optClampMSS);
++ exit(EXIT_FAILURE);
++ }
++ if (optClampMSS &gt; 1452) {
++ fprintf(stderr, &quot;-m: %d is too high (max 1452)\n&quot;, optClampMSS);
++ exit(EXIT_FAILURE);
++ }
++ break;
++ case 'I':
++ SET_STRING(conn.ifName, optarg);
++ break;
++ case 'V':
++ printf(&quot;Roaring Penguin PPPoE Version %s\n&quot;, VERSION);
++ exit(EXIT_SUCCESS);
++ case 'A':
++ conn.printACNames = 1;
++ break;
++ case 'h':
++ usage(argv[0]);
++ break;
++ default:
++ usage(argv[0]);
++ }
++ }
++
++ /* Pick a default interface name */
++ if (!conn.ifName) {
++#ifdef USE_BPF
++ fprintf(stderr, &quot;No interface specified (-I option)\n&quot;);
++ exit(EXIT_FAILURE);
++#else
++ SET_STRING(conn.ifName, DEFAULT_IF);
++#endif
++ }
++
++ /* Set signal handlers: send PADT on TERM, HUP and INT */
++ if (!conn.printACNames) {
++ signal(SIGTERM, sigPADT);
++ signal(SIGHUP, sigPADT);
++ signal(SIGINT, sigPADT);
++
++#ifdef HAVE_N_HDLC
++ if (conn.synchronous) {
++ if (ioctl(0, TIOCSETD, &amp;disc) &lt; 0) {
++ printErr(&quot;Unable to set line discipline to N_HDLC -- synchronous mode probably will fail&quot;);
++ } else {
++ syslog(LOG_INFO,
++ &quot;Changed pty line discipline to N_HDLC for synchronous mode&quot;);
++ }
++ /* There is a bug in Linux's select which returns a descriptor
++ * as readable if N_HDLC line discipline is on, even if
++ * it isn't really readable. This return happens only when
++ * select() times out. To avoid blocking forever in read(),
++ * make descriptor 0 non-blocking */
++ flags = fcntl(0, F_GETFL);
++ if (flags &lt; 0) fatalSys(&quot;fcntl(F_GETFL)&quot;);
++ if (fcntl(0, F_SETFL, (long) flags | O_NONBLOCK) &lt; 0) {
++ fatalSys(&quot;fcntl(F_SETFL)&quot;);
++ }
++ }
++#endif
++
++ }
++
++ discovery(&amp;conn);
++ if (optSkipSession) {
++ printf(&quot;%u:%02x:%02x:%02x:%02x:%02x:%02x\n&quot;,
++ ntohs(conn.session),
++ conn.peerEth[0],
++ conn.peerEth[1],
++ conn.peerEth[2],
++ conn.peerEth[3],
++ conn.peerEth[4],
++ conn.peerEth[5]);
++ exit(EXIT_SUCCESS);
++ }
++ session(&amp;conn);
++ return 0;
++}
++
++/**********************************************************************
++*%FUNCTION: fatalSys
++*%ARGUMENTS:
++* str -- error message
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Prints a message plus the errno value to stderr and syslog and exits.
++***********************************************************************/
++void
++fatalSys(char const *str)
++{
++ char buf[1024];
++ sprintf(buf, &quot;%.256s: %.256s&quot;, str, strerror(errno));
++ printErr(buf);
++ sendPADT(Connection, &quot;RP-PPPoE: System call error&quot;);
++ exit(EXIT_FAILURE);
++}
++
++/**********************************************************************
++*%FUNCTION: sysErr
++*%ARGUMENTS:
++* str -- error message
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Prints a message plus the errno value to syslog.
++***********************************************************************/
++void
++sysErr(char const *str)
++{
++ char buf[1024];
++ sprintf(buf, &quot;%.256s: %.256s&quot;, str, strerror(errno));
++ printErr(buf);
++}
++
++/**********************************************************************
++*%FUNCTION: rp_fatal
++*%ARGUMENTS:
++* str -- error message
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Prints a message to stderr and syslog and exits.
++***********************************************************************/
++void
++rp_fatal(char const *str)
++{
++ char buf[1024];
++ printErr(str);
++ sprintf(buf, &quot;RP-PPPoE: %.256s&quot;, str);
++ sendPADT(Connection, buf);
++ exit(EXIT_FAILURE);
++}
++
++/**********************************************************************
++*%FUNCTION: asyncReadFromEth
++*%ARGUMENTS:
++* conn -- PPPoE connection info
++* sock -- Ethernet socket
++* clampMss -- if non-zero, do MSS-clamping
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Reads a packet from the Ethernet interface and sends it to async PPP
++* device.
++***********************************************************************/
++void
++asyncReadFromEth(PPPoEConnection *conn, int sock, int clampMss)
++{
++ PPPoEPacket packet;
++ int len;
++ int plen;
++ int i;
++ unsigned char pppBuf[4096];
++ unsigned char *ptr = pppBuf;
++ unsigned char c;
++ UINT16_t fcs;
++ unsigned char header[2] = {FRAME_ADDR, FRAME_CTRL};
++ unsigned char tail[2];
++#ifdef USE_BPF
++ int type;
++#endif
++
++ if (receivePacket(sock, &amp;packet, &amp;len) &lt; 0) {
++ return;
++ }
++
++ /* Check length */
++ if (ntohs(packet.length) + HDR_SIZE &gt; len) {
++ syslog(LOG_ERR, &quot;Bogus PPPoE length field (%u)&quot;,
++ (unsigned int) ntohs(packet.length));
++ return;
++ }
++ if (conn-&gt;debugFile) {
++ dumpPacket(conn-&gt;debugFile, &amp;packet, &quot;RCVD&quot;);
++ fprintf(conn-&gt;debugFile, &quot;\n&quot;);
++ fflush(conn-&gt;debugFile);
++ }
++
++#ifdef USE_BPF
++ /* Make sure this is a session packet before processing further */
++ type = etherType(&amp;packet);
++ if (type == Eth_PPPOE_Discovery) {
++ sessionDiscoveryPacket(&amp;packet);
++ } else if (type != Eth_PPPOE_Session) {
++ return;
++ }
++#endif
++
++ /* Sanity check */
++ if (packet.code != CODE_SESS) {
++ syslog(LOG_ERR, &quot;Unexpected packet code %d&quot;, (int) packet.code);
++ return;
++ }
++ if (packet.ver != 1) {
++ syslog(LOG_ERR, &quot;Unexpected packet version %d&quot;, (int) packet.ver);
++ return;
++ }
++ if (packet.type != 1) {
++ syslog(LOG_ERR, &quot;Unexpected packet type %d&quot;, (int) packet.type);
++ return;
++ }
++ if (memcmp(packet.ethHdr.h_source, conn-&gt;peerEth, ETH_ALEN)) {
++ /* Not for us -- must be another session. This is not an error,
++ so don't log anything. */
++ return;
++ }
++
++ if (packet.session != conn-&gt;session) {
++ /* Not for us -- must be another session. This is not an error,
++ so don't log anything. */
++ return;
++ }
++ plen = ntohs(packet.length);
++ if (plen + HDR_SIZE &gt; len) {
++ syslog(LOG_ERR, &quot;Bogus length field in session packet %d (%d)&quot;,
++ (int) plen, (int) len);
++ return;
++ }
++
++ /* Clamp MSS */
++ if (clampMss) {
++ clampMSS(&amp;packet, &quot;incoming&quot;, clampMss);
++ }
++
++ /* Compute FCS */
++ fcs = pppFCS16(PPPINITFCS16, header, 2);
++ fcs = pppFCS16(fcs, packet.payload, plen) ^ 0xffff;
++ tail[0] = fcs &amp; 0x00ff;
++ tail[1] = (fcs &gt;&gt; 8) &amp; 0x00ff;
++
++ /* Build a buffer to send to PPP */
++ *ptr++ = FRAME_FLAG;
++ *ptr++ = FRAME_ADDR;
++ *ptr++ = FRAME_ESC;
++ *ptr++ = FRAME_CTRL ^ FRAME_ENC;
++
++ for (i=0; i&lt;plen; i++) {
++ c = packet.payload[i];
++ if (c == FRAME_FLAG || c == FRAME_ADDR || c == FRAME_ESC || c &lt; 0x20) {
++ *ptr++ = FRAME_ESC;
++ *ptr++ = c ^ FRAME_ENC;
++ } else {
++ *ptr++ = c;
++ }
++ }
++ for (i=0; i&lt;2; i++) {
++ c = tail[i];
++ if (c == FRAME_FLAG || c == FRAME_ADDR || c == FRAME_ESC || c &lt; 0x20) {
++ *ptr++ = FRAME_ESC;
++ *ptr++ = c ^ FRAME_ENC;
++ } else {
++ *ptr++ = c;
++ }
++ }
++ *ptr++ = FRAME_FLAG;
++
++ /* Ship it out */
++ if (write(1, pppBuf, (ptr-pppBuf)) &lt; 0) {
++ fatalSys(&quot;asyncReadFromEth: write&quot;);
++ }
++}
++
++/**********************************************************************
++*%FUNCTION: syncReadFromEth
++*%ARGUMENTS:
++* conn -- PPPoE connection info
++* sock -- Ethernet socket
++* clampMss -- if true, clamp MSS.
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Reads a packet from the Ethernet interface and sends it to sync PPP
++* device.
++***********************************************************************/
++void
++syncReadFromEth(PPPoEConnection *conn, int sock, int clampMss)
++{
++ PPPoEPacket packet;
++ int len;
++ int plen;
++ struct iovec vec[2];
++ unsigned char dummy[2];
++#ifdef USE_BPF
++ int type;
++#endif
++
++ if (receivePacket(sock, &amp;packet, &amp;len) &lt; 0) {
++ return;
++ }
++
++ /* Check length */
++ if (ntohs(packet.length) + HDR_SIZE &gt; len) {
++ syslog(LOG_ERR, &quot;Bogus PPPoE length field (%u)&quot;,
++ (unsigned int) ntohs(packet.length));
++ return;
++ }
++ if (conn-&gt;debugFile) {
++ dumpPacket(conn-&gt;debugFile, &amp;packet, &quot;RCVD&quot;);
++ fprintf(conn-&gt;debugFile, &quot;\n&quot;);
++ fflush(conn-&gt;debugFile);
++ }
++
++#ifdef USE_BPF
++ /* Make sure this is a session packet before processing further */
++ type = etherType(&amp;packet);
++ if (type == Eth_PPPOE_Discovery) {
++ sessionDiscoveryPacket(&amp;packet);
++ } else if (type != Eth_PPPOE_Session) {
++ return;
++ }
++#endif
++
++ /* Sanity check */
++ if (packet.code != CODE_SESS) {
++ syslog(LOG_ERR, &quot;Unexpected packet code %d&quot;, (int) packet.code);
++ return;
++ }
++ if (packet.ver != 1) {
++ syslog(LOG_ERR, &quot;Unexpected packet version %d&quot;, (int) packet.ver);
++ return;
++ }
++ if (packet.type != 1) {
++ syslog(LOG_ERR, &quot;Unexpected packet type %d&quot;, (int) packet.type);
++ return;
++ }
++ if (memcmp(packet.ethHdr.h_source, conn-&gt;peerEth, ETH_ALEN)) {
++ /* Not for us -- must be another session. This is not an error,
++ so don't log anything. */
++ return;
++ }
++ if (packet.session != conn-&gt;session) {
++ /* Not for us -- must be another session. This is not an error,
++ so don't log anything. */
++ return;
++ }
++ plen = ntohs(packet.length);
++ if (plen + HDR_SIZE &gt; len) {
++ syslog(LOG_ERR, &quot;Bogus length field in session packet %d (%d)&quot;,
++ (int) plen, (int) len);
++ return;
++ }
++
++ /* Clamp MSS */
++ if (clampMss) {
++ clampMSS(&amp;packet, &quot;incoming&quot;, clampMss);
++ }
++
++ /* Ship it out */
++ vec[0].iov_base = (void *) dummy;
++ dummy[0] = FRAME_ADDR;
++ dummy[1] = FRAME_CTRL;
++ vec[0].iov_len = 2;
++ vec[1].iov_base = (void *) packet.payload;
++ vec[1].iov_len = plen;
++
++ if (writev(1, vec, 2) &lt; 0) {
++ fatalSys(&quot;syncReadFromEth: write&quot;);
++ }
++}
++
+
+
+Property changes on: drakx/trunk/mdk-stage1/rp-pppoe/src/pppoe.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1rppppoesrcpppoeh">Added: drakx/trunk/mdk-stage1/rp-pppoe/src/pppoe.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/src/pppoe.h (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/src/pppoe.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,331 @@
++/***********************************************************************
++*
++* pppoe.h
++*
++* Declaration of various PPPoE constants
++*
++* Copyright (C) 2000 Roaring Penguin Software Inc.
++*
++* This program may be distributed according to the terms of the GNU
++* General Public License, version 2 or (at your option) any later version.
++*
++* $Id: pppoe.h 195724 2001-06-11 13:49:39Z gc $
++*
++***********************************************************************/
++
++#ifdef __sun__
++#define __EXTENSIONS__
++#endif
++
++#include &quot;config.h&quot;
++
++#if defined(HAVE_NETPACKET_PACKET_H) || defined(HAVE_LINUX_IF_PACKET_H)
++#define _POSIX_SOURCE 1 /* For sigaction defines */
++#endif
++
++#include &lt;stdio.h&gt; /* For FILE */
++#include &lt;sys/types.h&gt; /* For pid_t */
++
++/* How do we access raw Ethernet devices? */
++#undef USE_LINUX_PACKET
++#undef USE_BPF
++
++#if defined(HAVE_NETPACKET_PACKET_H) || defined(HAVE_LINUX_IF_PACKET_H)
++#define USE_LINUX_PACKET 1
++#elif defined(HAVE_NET_BPF_H)
++#define USE_BPF 1
++#elif defined(HAVE_SYS_DLPI_H)
++#define USE_DLPI
++#endif
++
++/* Sanity check */
++#if !defined(USE_BPF) &amp;&amp; !defined(USE_LINUX_PACKET) &amp;&amp; !defined(USE_DLPI)
++#error Unknown method for accessing raw Ethernet frames
++#endif
++
++#ifdef HAVE_SYS_CDEFS_H
++#include &lt;sys/cdefs.h&gt;
++#endif
++
++#ifdef HAVE_SYS_SOCKET_H
++#include &lt;sys/socket.h&gt;
++#endif
++
++/* Ugly header files on some Linux boxes... */
++#if defined(HAVE_LINUX_IF_H)
++#include &lt;linux/if.h&gt;
++#elif defined(HAVE_NET_IF_H)
++#include &lt;net/if.h&gt;
++#endif
++
++#ifdef HAVE_NET_IF_TYPES_H
++#include &lt;net/if_types.h&gt;
++#endif
++
++#ifdef HAVE_NET_IF_DL_H
++#include &lt;net/if_dl.h&gt;
++#endif
++
++/* I'm not sure why this is needed... I do not have OpenBSD */
++#if defined(__OpenBSD__)
++#include &lt;net/ppp_defs.h&gt;
++#include &lt;net/if_ppp.h&gt;
++#endif
++
++#ifdef USE_BPF
++extern int bpfSize;
++struct PPPoEPacketStruct;
++void sessionDiscoveryPacket(struct PPPoEPacketStruct *packet);
++#define BPF_BUFFER_IS_EMPTY (bpfSize &lt;= 0)
++#define BPF_BUFFER_HAS_DATA (bpfSize &gt; 0)
++#define ethhdr ether_header
++#define h_dest ether_dhost
++#define h_source ether_shost
++#define h_proto ether_type
++#define ETH_DATA_LEN ETHERMTU
++#define ETH_ALEN ETHER_ADDR_LEN
++#else
++#undef USE_BPF
++#define BPF_BUFFER_IS_EMPTY 1
++#define BPF_BUFFER_HAS_DATA 0
++#endif
++
++#ifdef USE_DLPI
++#include &lt;sys/ethernet.h&gt;
++#define ethhdr ether_header
++#define ETH_DATA_LEN ETHERMTU
++#define ETH_ALEN ETHERADDRL
++#define h_dest ether_dhost.ether_addr_octet
++#define h_source ether_shost.ether_addr_octet
++#define h_proto ether_type
++
++/* cloned from dltest.h */
++#define MAXDLBUF 8192
++#define MAXDLADDR 1024
++#define MAXWAIT 15
++#define OFFADDR(s, n) (u_char*)((char*)(s) + (int)(n))
++#define CASERET(s) case s: return (&quot;s&quot;)
++
++#endif
++
++/* Define various integer types -- assumes a char is 8 bits */
++#if SIZEOF_UNSIGNED_SHORT == 2
++typedef unsigned short UINT16_t;
++#elif SIZEOF_UNSIGNED_INT == 2
++typedef unsigned int UINT16_t;
++#else
++#error Could not find a 16-bit integer type
++#endif
++
++#if SIZEOF_UNSIGNED_SHORT == 4
++typedef unsigned short UINT32_t;
++#elif SIZEOF_UNSIGNED_INT == 4
++typedef unsigned int UINT32_t;
++#elif SIZEOF_UNSIGNED_LONG == 4
++typedef unsigned long UINT32_t;
++#else
++#error Could not find a 16-bit integer type
++#endif
++
++#ifdef HAVE_LINUX_IF_ETHER_H
++#include &lt;linux/if_ether.h&gt;
++#endif
++
++#include &lt;netinet/in.h&gt;
++
++#ifdef HAVE_NETINET_IF_ETHER_H
++#include &lt;sys/types.h&gt;
++
++#ifdef HAVE_SYS_SOCKET_H
++#include &lt;sys/socket.h&gt;
++#endif
++#ifndef HAVE_SYS_DLPI_H
++#include &lt;netinet/if_ether.h&gt;
++#endif
++#endif
++
++
++
++/* Ethernet frame types according to RFC 2516 */
++#define ETH_PPPOE_DISCOVERY 0x8863
++#define ETH_PPPOE_SESSION 0x8864
++
++/* But some brain-dead peers disobey the RFC, so frame types are variables */
++extern UINT16_t Eth_PPPOE_Discovery;
++extern UINT16_t Eth_PPPOE_Session;
++
++/* PPPoE codes */
++#define CODE_PADI 0x09
++#define CODE_PADO 0x07
++#define CODE_PADR 0x19
++#define CODE_PADS 0x65
++#define CODE_PADT 0xA7
++#define CODE_SESS 0x00
++
++/* PPPoE Tags */
++#define TAG_END_OF_LIST 0x0000
++#define TAG_SERVICE_NAME 0x0101
++#define TAG_AC_NAME 0x0102
++#define TAG_HOST_UNIQ 0x0103
++#define TAG_AC_COOKIE 0x0104
++#define TAG_VENDOR_SPECIFIC 0x0105
++#define TAG_RELAY_SESSION_ID 0x0110
++#define TAG_SERVICE_NAME_ERROR 0x0201
++#define TAG_AC_SYSTEM_ERROR 0x0202
++#define TAG_GENERIC_ERROR 0x0203
++
++/* Discovery phase states */
++#define STATE_SENT_PADI 0
++#define STATE_RECEIVED_PADO 1
++#define STATE_SENT_PADR 2
++#define STATE_SESSION 3
++#define STATE_TERMINATED 4
++
++/* How many PADI/PADS attempts? */
++#define MAX_PADI_ATTEMPTS 3
++
++/* Initial timeout for PADO/PADS */
++#define PADI_TIMEOUT 5
++
++/* States for scanning PPP frames */
++#define STATE_WAITFOR_FRAME_ADDR 0
++#define STATE_DROP_PROTO 1
++#define STATE_BUILDING_PACKET 2
++
++/* Special PPP frame characters */
++#define FRAME_ESC 0x7D
++#define FRAME_FLAG 0x7E
++#define FRAME_ADDR 0xFF
++#define FRAME_CTRL 0x03
++#define FRAME_ENC 0x20
++
++#define IPV4ALEN 4
++#define SMALLBUF 256
++
++/* A PPPoE Packet, including Ethernet headers */
++typedef struct PPPoEPacketStruct {
++ struct ethhdr ethHdr; /* Ethernet header */
++#ifdef PACK_BITFIELDS_REVERSED
++ unsigned int type:4; /* PPPoE Type (must be 1) */
++ unsigned int ver:4; /* PPPoE Version (must be 1) */
++#else
++ unsigned int ver:4; /* PPPoE Version (must be 1) */
++ unsigned int type:4; /* PPPoE Type (must be 1) */
++#endif
++ unsigned int code:8; /* PPPoE code */
++ unsigned int session:16; /* PPPoE session */
++ unsigned int length:16; /* Payload length */
++ unsigned char payload[ETH_DATA_LEN]; /* A bit of room to spare */
++} PPPoEPacket;
++
++/* Header size of a PPPoE packet */
++#define PPPOE_OVERHEAD 6 /* type, code, session, length */
++#define HDR_SIZE (sizeof(struct ethhdr) + PPPOE_OVERHEAD)
++#define MAX_PPPOE_PAYLOAD (ETH_DATA_LEN - PPPOE_OVERHEAD)
++#define MAX_PPPOE_MTU (MAX_PPPOE_PAYLOAD - 2)
++
++/* PPPoE Tag */
++
++typedef struct PPPoETagStruct {
++ unsigned int type:16; /* tag type */
++ unsigned int length:16; /* Length of payload */
++ unsigned char payload[ETH_DATA_LEN]; /* A LOT of room to spare */
++} PPPoETag;
++/* Header size of a PPPoE tag */
++#define TAG_HDR_SIZE 4
++
++/* Chunk to read from stdin */
++#define READ_CHUNK 4096
++
++/* Function passed to parsePacket */
++typedef void ParseFunc(UINT16_t type,
++ UINT16_t len,
++ unsigned char *data,
++ void *extra);
++
++/* Structures used by PPPoE server */
++struct ClientSession {
++ pid_t pid; /* PID of child handling session */
++ unsigned char ip[IPV4ALEN]; /* IP address of peer */
++ UINT16_t sess; /* Session number */
++ unsigned char eth[ETH_ALEN]; /* Peer's Ethernet address */
++ int recvdPADT; /* Peer sent a PADT */
++};
++
++#define PPPINITFCS16 0xffff /* Initial FCS value */
++
++/* Keep track of the state of a connection -- collect everything in
++ one spot */
++
++typedef struct PPPoEConnectionStruct {
++ int discoveryState; /* Where we are in discovery */
++ int discoverySocket; /* Raw socket for discovery frames */
++ int sessionSocket; /* Raw socket for session frames */
++ unsigned char myEth[ETH_ALEN]; /* My MAC address */
++ unsigned char peerEth[ETH_ALEN]; /* Peer's MAC address */
++ UINT16_t session; /* Session ID */
++ char *ifName; /* Interface name */
++ char *serviceName; /* Desired service name, if any */
++ char *acName; /* Desired AC name, if any */
++ int synchronous; /* Use synchronous PPP */
++ int useHostUniq; /* Use Host-Uniq tag */
++ int printACNames; /* Just print AC names */
++ int skipDiscovery; /* Skip discovery */
++ int noDiscoverySocket; /* Don't even open discovery socket */
++ int killSession; /* Kill session and exit */
++ FILE *debugFile; /* Debug file for dumping packets */
++ int numPADOs; /* Number of PADO packets received */
++ PPPoETag cookie; /* We have to send this if we get it */
++ PPPoETag relayId; /* Ditto */
++} PPPoEConnection;
++
++/* Structure used to determine acceptable PADO or PADS packet */
++struct PacketCriteria {
++ PPPoEConnection *conn;
++ int acNameOK;
++ int serviceNameOK;
++};
++
++/* Function Prototypes */
++UINT16_t etherType(PPPoEPacket *packet);
++int openInterface(char const *ifname, UINT16_t type, unsigned char *hwaddr);
++int sendPacket(PPPoEConnection *conn, int sock, PPPoEPacket *pkt, int size);
++int receivePacket(int sock, PPPoEPacket *pkt, int *size);
++void fatalSys(char const *str);
++void rp_fatal(char const *str);
++void printErr(char const *str);
++void sysErr(char const *str);
++void dumpPacket(FILE *fp, PPPoEPacket *packet, char const *dir);
++void dumpHex(FILE *fp, unsigned char const *buf, int len);
++int parsePacket(PPPoEPacket *packet, ParseFunc *func, void *extra);
++void parseLogErrs(UINT16_t typ, UINT16_t len, unsigned char *data, void *xtra);
++void syncReadFromPPP(PPPoEConnection *conn, PPPoEPacket *packet);
++void asyncReadFromPPP(PPPoEConnection *conn, PPPoEPacket *packet);
++void asyncReadFromEth(PPPoEConnection *conn, int sock, int clampMss);
++void syncReadFromEth(PPPoEConnection *conn, int sock, int clampMss);
++char *strDup(char const *str);
++void sendPADT(PPPoEConnection *conn, char const *msg);
++void sendSessionPacket(PPPoEConnection *conn,
++ PPPoEPacket *packet, int len);
++void initPPP(void);
++void clampMSS(PPPoEPacket *packet, char const *dir, int clampMss);
++UINT16_t computeTCPChecksum(unsigned char *ipHdr, unsigned char *tcpHdr);
++UINT16_t pppFCS16(UINT16_t fcs, unsigned char *cp, int len);
++void discovery(PPPoEConnection *conn);
++unsigned char *findTag(PPPoEPacket *packet, UINT16_t tagType,
++ PPPoETag *tag);
++
++#define SET_STRING(var, val) do { if (var) free(var); var = strDup(val); } while(0);
++
++#define CHECK_ROOM(cursor, start, len) \
++do {\
++ if (((cursor)-(start))+(len) &gt; MAX_PPPOE_PAYLOAD) { \
++ syslog(LOG_ERR, &quot;Would create too-long packet&quot;); \
++ return; \
++ } \
++} while(0)
++
++/* True if Ethernet address is broadcast or multicast */
++#define NOT_UNICAST(e) ((e[0] &amp; 0x01) != 0)
++#define BROADCAST(e) ((e[0] &amp; e[1] &amp; e[2] &amp; e[3] &amp; e[4] &amp; e[5]) == 0xFF)
++#define NOT_BROADCAST(e) ((e[0] &amp; e[1] &amp; e[2] &amp; e[3] &amp; e[4] &amp; e[5]) != 0xFF)
+
+
+Property changes on: drakx/trunk/mdk-stage1/rp-pppoe/src/pppoe.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1rppppoesrcrelayc">Added: drakx/trunk/mdk-stage1/rp-pppoe/src/relay.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/src/relay.c (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/src/relay.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,1541 @@
++/***********************************************************************
++*
++* relay.c
++*
++* Implementation of PPPoE relay
++*
++* Copyright (C) 2001 Roaring Penguin Software Inc.
++*
++* This program may be distributed according to the terms of the GNU
++* General Public License, version 2 or (at your option) any later version.
++*
++* $Id: relay.c 195724 2001-06-11 13:49:39Z gc $
++*
++***********************************************************************/
++static char const RCSID[] =
++&quot;$Id: relay.c 195724 2001-06-11 13:49:39Z gc $&quot;;
++
++#define _GNU_SOURCE 1 /* For SA_RESTART */
++
++#include &quot;relay.h&quot;
++
++#include &lt;signal.h&gt;
++
++#ifdef HAVE_SYSLOG_H
++#include &lt;syslog.h&gt;
++#endif
++
++#ifdef HAVE_GETOPT_H
++#include &lt;getopt.h&gt;
++#endif
++
++#include &lt;stdlib.h&gt;
++#include &lt;string.h&gt;
++#include &lt;errno.h&gt;
++
++#ifdef HAVE_SYS_TIME_H
++#include &lt;sys/time.h&gt;
++#endif
++
++#ifdef HAVE_SYS_UIO_H
++#include &lt;sys/uio.h&gt;
++#endif
++
++#ifdef HAVE_UNISTD_H
++#include &lt;unistd.h&gt;
++#endif
++
++
++/* Interfaces (max MAX_INTERFACES) */
++PPPoEInterface Interfaces[MAX_INTERFACES];
++int NumInterfaces;
++
++/* Relay info */
++int NumSessions;
++int MaxSessions;
++PPPoESession *AllSessions;
++PPPoESession *FreeSessions;
++PPPoESession *ActiveSessions;
++
++SessionHash *AllHashes;
++SessionHash *FreeHashes;
++SessionHash *Buckets[HASHTAB_SIZE];
++
++volatile unsigned int Epoch = 0;
++volatile unsigned int CleanCounter = 0;
++
++/* How often to clean up stale sessions? */
++#define MIN_CLEAN_PERIOD 30 /* Minimum period to run cleaner */
++#define TIMEOUT_DIVISOR 20 /* How often to run cleaner per timeout period */
++unsigned int CleanPeriod = MIN_CLEAN_PERIOD;
++
++/* How long a session can be idle before it is cleaned up? */
++unsigned int IdleTimeout = MIN_CLEAN_PERIOD * TIMEOUT_DIVISOR;
++
++/* Pipe for breaking select() to initiate periodic cleaning */
++int CleanPipe[2];
++
++/* Our relay: if_index followed by peer_mac */
++#define MY_RELAY_TAG_LEN (sizeof(int) + ETH_ALEN)
++
++/* Hack for daemonizing */
++#define CLOSEFD 64
++
++/**********************************************************************
++*%FUNCTION: keepDescriptor
++*%ARGUMENTS:
++* fd -- a file descriptor
++*%RETURNS:
++* 1 if descriptor should NOT be closed during daemonizing; 0 otherwise.
++***********************************************************************/
++static int
++keepDescriptor(int fd)
++{
++ int i;
++ if (fd == CleanPipe[0] || fd == CleanPipe[1]) return 1;
++ for (i=0; i&lt;NumInterfaces; i++) {
++ if (fd == Interfaces[i].discoverySock ||
++ fd == Interfaces[i].sessionSock) return 1;
++ }
++ return 0;
++}
++
++/**********************************************************************
++*%FUNCTION: addTag
++*%ARGUMENTS:
++* packet -- a PPPoE packet
++* tag -- tag to add
++*%RETURNS:
++* -1 if no room in packet; number of bytes added otherwise.
++*%DESCRIPTION:
++* Inserts a tag as the first tag in a PPPoE packet.
++***********************************************************************/
++int
++addTag(PPPoEPacket *packet, PPPoETag const *tag)
++{
++ return insertBytes(packet, packet-&gt;payload, tag,
++ ntohs(tag-&gt;length) + TAG_HDR_SIZE);
++}
++
++/**********************************************************************
++*%FUNCTION: insertBytes
++*%ARGUMENTS:
++* packet -- a PPPoE packet
++* loc -- location at which to insert bytes of data
++* bytes -- the data to insert
++* len -- length of data to insert
++*%RETURNS:
++* -1 if no room in packet; len otherwise.
++*%DESCRIPTION:
++* Inserts &quot;len&quot; bytes of data at location &quot;loc&quot; in &quot;packet&quot;, moving all
++* other data up to make room.
++***********************************************************************/
++int
++insertBytes(PPPoEPacket *packet,
++ unsigned char *loc,
++ void const *bytes,
++ int len)
++{
++ int toMove;
++ int plen = ntohs(packet-&gt;length);
++ /* Sanity checks */
++ if (loc &lt; packet-&gt;payload ||
++ loc &gt; packet-&gt;payload + plen ||
++ len + plen &gt; MAX_PPPOE_PAYLOAD) {
++ return -1;
++ }
++
++ toMove = (packet-&gt;payload + plen) - loc;
++ memmove(loc+len, loc, toMove);
++ memcpy(loc, bytes, len);
++ packet-&gt;length = htons(plen + len);
++ return len;
++}
++
++/**********************************************************************
++*%FUNCTION: removeBytes
++*%ARGUMENTS:
++* packet -- a PPPoE packet
++* loc -- location at which to remove bytes of data
++* len -- length of data to remove
++*%RETURNS:
++* -1 if there was a problem, len otherwise
++*%DESCRIPTION:
++* Removes &quot;len&quot; bytes of data from location &quot;loc&quot; in &quot;packet&quot;, moving all
++* other data down to close the gap
++***********************************************************************/
++int
++removeBytes(PPPoEPacket *packet,
++ unsigned char *loc,
++ int len)
++{
++ int toMove;
++ int plen = ntohs(packet-&gt;length);
++ /* Sanity checks */
++ if (len &lt; 0 || len &gt; plen ||
++ loc &lt; packet-&gt;payload ||
++ loc + len &gt; packet-&gt;payload + plen) {
++ return -1;
++ }
++
++ toMove = ((packet-&gt;payload + plen) - loc) - len;
++ memmove(loc, loc+len, toMove);
++ packet-&gt;length = htons(plen - len);
++ return len;
++}
++
++/**********************************************************************
++*%FUNCTION: usage
++*%ARGUMENTS:
++* argv0 -- program name
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Prints usage information and exits.
++***********************************************************************/
++void
++usage(char const *argv0)
++{
++ fprintf(stderr, &quot;Usage: %s [options]\n&quot;, argv0);
++ fprintf(stderr, &quot;Options:\n&quot;);
++ fprintf(stderr, &quot; -S if_name -- Specify interface for PPPoE Server\n&quot;);
++ fprintf(stderr, &quot; -C if_name -- Specify interface for PPPoE Client\n&quot;);
++ fprintf(stderr, &quot; -B if_name -- Specify interface for both clients and server\n&quot;);
++ fprintf(stderr, &quot; -n nsess -- Maxmimum number of sessions to relay\n&quot;);
++ fprintf(stderr, &quot; -i timeout -- Idle timeout in seconds (0 = no timeout)\n&quot;);
++ fprintf(stderr, &quot; -F -- Do not fork into background\n&quot;);
++ fprintf(stderr, &quot; -h -- Print this help message\n&quot;);
++
++ fprintf(stderr, &quot;\nPPPoE Version %s, Copyright (C) 2001 Roaring Penguin Software Inc.\n&quot;, VERSION);
++ fprintf(stderr, &quot;PPPoE comes with ABSOLUTELY NO WARRANTY.\n&quot;);
++ fprintf(stderr, &quot;This is free software, and you are welcome to redistribute it under the terms\n&quot;);
++ fprintf(stderr, &quot;of the GNU General Public License, version 2 or any later version.\n&quot;);
++ fprintf(stderr, &quot;http://www.roaringpenguin.com\n&quot;);
++ exit(EXIT_SUCCESS);
++}
++
++/**********************************************************************
++*%FUNCTION: main
++*%ARGUMENTS:
++* argc, argv -- usual suspects
++*%RETURNS:
++* EXIT_SUCCESS or EXIT_FAILURE
++*%DESCRIPTION:
++* Main program. Options:
++* -C ifname -- Use interface for PPPoE clients
++* -S ifname -- Use interface for PPPoE servers
++* -B ifname -- Use interface for both clients and servers
++* -n sessions -- Maximum of &quot;n&quot; sessions
++***********************************************************************/
++int
++main(int argc, char *argv[])
++{
++ int opt;
++ int nsess = DEFAULT_SESSIONS;
++ struct sigaction sa;
++ int beDaemon = 1;
++ openlog(&quot;pppoe-relay&quot;, LOG_PID, LOG_DAEMON);
++
++ while((opt = getopt(argc, argv, &quot;hC:S:B:n:i:F&quot;)) != -1) {
++ switch(opt) {
++ case 'h':
++ usage(argv[0]);
++ break;
++ case 'F':
++ beDaemon = 0;
++ break;
++ case 'C':
++ addInterface(optarg, 1, 0);
++ break;
++ case 'S':
++ addInterface(optarg, 0, 1);
++ break;
++ case 'B':
++ addInterface(optarg, 1, 1);
++ break;
++ case 'i':
++ if (sscanf(optarg, &quot;%u&quot;, &amp;IdleTimeout) != 1) {
++ fprintf(stderr, &quot;Illegal argument to -i: should be -i timeout\n&quot;);
++ exit(EXIT_FAILURE);
++ }
++ CleanPeriod = IdleTimeout / TIMEOUT_DIVISOR;
++ if (CleanPeriod &lt; MIN_CLEAN_PERIOD) CleanPeriod = MIN_CLEAN_PERIOD;
++ break;
++ case 'n':
++ if (sscanf(optarg, &quot;%d&quot;, &amp;nsess) != 1) {
++ fprintf(stderr, &quot;Illegal argument to -n: should be -n #sessions\n&quot;);
++ exit(EXIT_FAILURE);
++ }
++ if (nsess &lt; 1 || nsess &gt; 65534) {
++ fprintf(stderr, &quot;Illegal argument to -n: must range from 1 to 65534\n&quot;);
++ exit(EXIT_FAILURE);
++ }
++ break;
++ default:
++ usage(argv[0]);
++ }
++ }
++
++#ifdef USE_LINUX_PACKET
++#ifndef HAVE_STRUCT_SOCKADDR_LL
++ fprintf(stderr, &quot;The PPPoE relay does not work on Linux 2.0 kernels.\n&quot;);
++ exit(EXIT_FAILURE);
++#endif
++#endif
++
++ /* Check that at least two interfaces were defined */
++ if (NumInterfaces &lt; 2) {
++ fprintf(stderr, &quot;%s: Must define at least two interfaces\n&quot;,
++ argv[0]);
++ exit(EXIT_FAILURE);
++ }
++
++ /* Make a pipe for the cleaner */
++ if (pipe(CleanPipe) &lt; 0) {
++ fatalSys(&quot;pipe&quot;);
++ }
++
++ /* Set up alarm handler */
++ sa.sa_handler = alarmHandler;
++ sigemptyset(&amp;sa.sa_mask);
++ sa.sa_flags = SA_RESTART;
++ if (sigaction(SIGALRM, &amp;sa, NULL) &lt; 0) {
++ fatalSys(&quot;sigaction&quot;);
++ }
++
++ /* Allocate memory for sessions, etc. */
++ initRelay(nsess);
++
++ /* Daemonize -- UNIX Network Programming, Vol. 1, Stevens */
++ if (beDaemon) {
++ int i;
++ i = fork();
++ if (i &lt; 0) {
++ fatalSys(&quot;fork&quot;);
++ } else if (i != 0) {
++ /* parent */
++ exit(0);
++ }
++ setsid();
++ signal(SIGHUP, SIG_IGN);
++ i = fork();
++ if (i &lt; 0) {
++ fatalSys(&quot;fork&quot;);
++ } else if (i != 0) {
++ exit(0);
++ }
++
++ chdir(&quot;/&quot;);
++ closelog();
++ for (i=0; i&lt;CLOSEFD; i++) {
++ if (!keepDescriptor(i)) {
++ close(i);
++ }
++ }
++ /* We nuked our syslog descriptor... */
++ openlog(&quot;pppoe-relay&quot;, LOG_PID, LOG_DAEMON);
++ }
++
++ /* Kick off SIGALRM if there is an idle timeout */
++ if (IdleTimeout) alarm(1);
++
++ /* Enter the relay loop */
++ relayLoop();
++
++ /* Shouldn't ever get here... */
++ return EXIT_FAILURE;
++}
++
++/**********************************************************************
++*%FUNCTION: addInterface
++*%ARGUMENTS:
++* ifname -- interface name
++* clientOK -- true if this interface should relay PADI, PADR packets.
++* acOK -- true if this interface should relay PADO, PADS packets.
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Opens an interface; sets up discovery and session sockets.
++***********************************************************************/
++void
++addInterface(char const *ifname,
++ int clientOK,
++ int acOK)
++{
++ PPPoEInterface *i;
++ if (NumInterfaces &gt;= MAX_INTERFACES) {
++ fprintf(stderr, &quot;Too many interfaces (%d max)\n&quot;,
++ MAX_INTERFACES);
++ exit(EXIT_FAILURE);
++ }
++ i = &amp;Interfaces[NumInterfaces++];
++ strncpy(i-&gt;name, ifname, IFNAMSIZ);
++ i-&gt;name[IFNAMSIZ] = 0;
++
++ i-&gt;discoverySock = openInterface(ifname, Eth_PPPOE_Discovery, i-&gt;mac);
++ i-&gt;sessionSock = openInterface(ifname, Eth_PPPOE_Session, NULL);
++ i-&gt;clientOK = clientOK;
++ i-&gt;acOK = acOK;
++}
++
++/**********************************************************************
++*%FUNCTION: initRelay
++*%ARGUMENTS:
++* nsess -- maximum allowable number of sessions
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Initializes relay hash table and session tables.
++***********************************************************************/
++void
++initRelay(int nsess)
++{
++ int i;
++ NumSessions = 0;
++ MaxSessions = nsess;
++
++ AllSessions = calloc(MaxSessions, sizeof(PPPoESession));
++ if (!AllSessions) {
++ rp_fatal(&quot;Unable to allocate memory for PPPoE session table&quot;);
++ }
++ AllHashes = calloc(MaxSessions*2, sizeof(SessionHash));
++ if (!AllHashes) {
++ rp_fatal(&quot;Unable to allocate memory for PPPoE hash table&quot;);
++ }
++
++ /* Initialize sessions in a linked list */
++ AllSessions[0].prev = NULL;
++ if (MaxSessions &gt; 1) {
++ AllSessions[0].next = &amp;AllSessions[1];
++ } else {
++ AllSessions[0].next = NULL;
++ }
++ for (i=1; i&lt;MaxSessions-1; i++) {
++ AllSessions[i].prev = &amp;AllSessions[i-1];
++ AllSessions[i].next = &amp;AllSessions[i+1];
++ }
++ if (MaxSessions &gt; 1) {
++ AllSessions[MaxSessions-1].prev = &amp;AllSessions[MaxSessions-2];
++ AllSessions[MaxSessions-1].next = NULL;
++ }
++
++ FreeSessions = AllSessions;
++ ActiveSessions = NULL;
++
++ /* Initialize session numbers which we hand out */
++ for (i=0; i&lt;MaxSessions; i++) {
++ AllSessions[i].sesNum = htons((UINT16_t) i+1);
++ }
++
++ /* Initialize hashes in a linked list */
++ AllHashes[0].prev = NULL;
++ AllHashes[0].next = &amp;AllHashes[1];
++ for (i=1; i&lt;2*MaxSessions-1; i++) {
++ AllHashes[i].prev = &amp;AllHashes[i-1];
++ AllHashes[i].next = &amp;AllHashes[i+1];
++ }
++ AllHashes[2*MaxSessions-1].prev = &amp;AllHashes[2*MaxSessions-2];
++ AllHashes[2*MaxSessions-1].next = NULL;
++
++ FreeHashes = AllHashes;
++}
++
++/**********************************************************************
++*%FUNCTION: createSession
++*%ARGUMENTS:
++* ac -- Ethernet interface on access-concentrator side
++* cli -- Ethernet interface on client side
++* acMac -- Access concentrator's MAC address
++* cliMac -- Client's MAC address
++* acSess -- Access concentrator's session ID.
++*%RETURNS:
++* PPPoESession structure; NULL if one could not be allocated
++*%DESCRIPTION:
++* Initializes relay hash table and session tables.
++***********************************************************************/
++PPPoESession *
++createSession(PPPoEInterface const *ac,
++ PPPoEInterface const *cli,
++ unsigned char const *acMac,
++ unsigned char const *cliMac,
++ UINT16_t acSes)
++{
++ PPPoESession *sess;
++ SessionHash *acHash, *cliHash;
++
++ if (NumSessions &gt;= MaxSessions) {
++ printErr(&quot;Maximum number of sessions reached -- cannot create new session&quot;);
++ return NULL;
++ }
++
++ /* Grab a free session */
++ sess = FreeSessions;
++ FreeSessions = sess-&gt;next;
++ NumSessions++;
++
++ /* Link it to the active list */
++ sess-&gt;next = ActiveSessions;
++ if (sess-&gt;next) {
++ sess-&gt;next-&gt;prev = sess;
++ }
++ ActiveSessions = sess;
++ sess-&gt;prev = NULL;
++
++ sess-&gt;epoch = Epoch;
++
++ /* Get two hash entries */
++ acHash = FreeHashes;
++ cliHash = acHash-&gt;next;
++ FreeHashes = cliHash-&gt;next;
++
++ acHash-&gt;peer = cliHash;
++ cliHash-&gt;peer = acHash;
++
++ sess-&gt;acHash = acHash;
++ sess-&gt;clientHash = cliHash;
++
++ acHash-&gt;interface = ac;
++ cliHash-&gt;interface = cli;
++
++ memcpy(acHash-&gt;peerMac, acMac, ETH_ALEN);
++ acHash-&gt;sesNum = acSes;
++ acHash-&gt;ses = sess;
++
++ memcpy(cliHash-&gt;peerMac, cliMac, ETH_ALEN);
++ cliHash-&gt;sesNum = sess-&gt;sesNum;
++ cliHash-&gt;ses = sess;
++
++ addHash(acHash);
++ addHash(cliHash);
++
++ /* Log */
++ syslog(LOG_INFO,
++ &quot;Opened session: server=%02x:%02x:%02x:%02x:%02x:%02x(%s:%d), client=%02x:%02x:%02x:%02x:%02x:%02x(%s:%d)&quot;,
++ acHash-&gt;peerMac[0], acHash-&gt;peerMac[1],
++ acHash-&gt;peerMac[2], acHash-&gt;peerMac[3],
++ acHash-&gt;peerMac[4], acHash-&gt;peerMac[5],
++ acHash-&gt;interface-&gt;name,
++ ntohs(acHash-&gt;sesNum),
++ cliHash-&gt;peerMac[0], cliHash-&gt;peerMac[1],
++ cliHash-&gt;peerMac[2], cliHash-&gt;peerMac[3],
++ cliHash-&gt;peerMac[4], cliHash-&gt;peerMac[5],
++ cliHash-&gt;interface-&gt;name,
++ ntohs(cliHash-&gt;sesNum));
++
++ return sess;
++}
++
++/**********************************************************************
++*%FUNCTION: freeSession
++*%ARGUMENTS:
++* ses -- session to free
++* msg -- extra message to log on syslog.
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Frees data used by a PPPoE session -- adds hashes and session back
++* to the free list
++***********************************************************************/
++void
++freeSession(PPPoESession *ses, char const *msg)
++{
++ syslog(LOG_INFO,
++ &quot;Closed session: server=%02x:%02x:%02x:%02x:%02x:%02x(%s:%d), client=%02x:%02x:%02x:%02x:%02x:%02x(%s:%d): %s&quot;,
++ ses-&gt;acHash-&gt;peerMac[0], ses-&gt;acHash-&gt;peerMac[1],
++ ses-&gt;acHash-&gt;peerMac[2], ses-&gt;acHash-&gt;peerMac[3],
++ ses-&gt;acHash-&gt;peerMac[4], ses-&gt;acHash-&gt;peerMac[5],
++ ses-&gt;acHash-&gt;interface-&gt;name,
++ ntohs(ses-&gt;acHash-&gt;sesNum),
++ ses-&gt;clientHash-&gt;peerMac[0], ses-&gt;clientHash-&gt;peerMac[1],
++ ses-&gt;clientHash-&gt;peerMac[2], ses-&gt;clientHash-&gt;peerMac[3],
++ ses-&gt;clientHash-&gt;peerMac[4], ses-&gt;clientHash-&gt;peerMac[5],
++ ses-&gt;clientHash-&gt;interface-&gt;name,
++ ntohs(ses-&gt;clientHash-&gt;sesNum), msg);
++
++ /* Unlink from active sessions */
++ if (ses-&gt;prev) {
++ ses-&gt;prev-&gt;next = ses-&gt;next;
++ } else {
++ ActiveSessions = ses-&gt;next;
++ }
++ if (ses-&gt;next) {
++ ses-&gt;next-&gt;prev = ses-&gt;prev;
++ }
++
++ /* Link onto free list -- this is a singly-linked list, so
++ we do not care about prev */
++ ses-&gt;next = FreeSessions;
++ FreeSessions = ses;
++
++ unhash(ses-&gt;acHash);
++ unhash(ses-&gt;clientHash);
++ NumSessions--;
++}
++
++/**********************************************************************
++*%FUNCTION: unhash
++*%ARGUMENTS:
++* sh -- session hash to free
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Frees a session hash -- takes it out of hash table and puts it on
++* free list.
++***********************************************************************/
++void
++unhash(SessionHash *sh)
++{
++ unsigned int b = hash(sh-&gt;peerMac, sh-&gt;sesNum) % HASHTAB_SIZE;
++ if (sh-&gt;prev) {
++ sh-&gt;prev-&gt;next = sh-&gt;next;
++ } else {
++ Buckets[b] = sh-&gt;next;
++ }
++
++ if (sh-&gt;next) {
++ sh-&gt;next-&gt;prev = sh-&gt;prev;
++ }
++
++ /* Add to free list (singly-linked) */
++ sh-&gt;next = FreeHashes;
++ FreeHashes = sh;
++}
++
++/**********************************************************************
++*%FUNCTION: addHash
++*%ARGUMENTS:
++* sh -- a session hash
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Adds a SessionHash to the hash table
++***********************************************************************/
++void
++addHash(SessionHash *sh)
++{
++ unsigned int b = hash(sh-&gt;peerMac, sh-&gt;sesNum) % HASHTAB_SIZE;
++ sh-&gt;next = Buckets[b];
++ sh-&gt;prev = NULL;
++ if (sh-&gt;next) {
++ sh-&gt;next-&gt;prev = sh;
++ }
++ Buckets[b] = sh;
++}
++
++/**********************************************************************
++*%FUNCTION: hash
++*%ARGUMENTS:
++* mac -- an Ethernet address
++* sesNum -- a session number
++*%RETURNS:
++* A hash value combining Ethernet address with session number.
++* Currently very simplistic; we may need to experiment with different
++* hash values.
++***********************************************************************/
++unsigned int
++hash(unsigned char const *mac, UINT16_t sesNum)
++{
++ unsigned int ans1 =
++ ((unsigned int) mac[0]) |
++ (((unsigned int) mac[1]) &lt;&lt; 8) |
++ (((unsigned int) mac[2]) &lt;&lt; 16) |
++ (((unsigned int) mac[3]) &lt;&lt; 24);
++ unsigned int ans2 =
++ ((unsigned int) sesNum) |
++ (((unsigned int) mac[4]) &lt;&lt; 16) |
++ (((unsigned int) mac[5]) &lt;&lt; 24);
++ return ans1 ^ ans2;
++}
++
++/**********************************************************************
++*%FUNCTION: findSession
++*%ARGUMENTS:
++* mac -- an Ethernet address
++* sesNum -- a session number
++*%RETURNS:
++* The session hash for peer address &quot;mac&quot;, session number sesNum
++***********************************************************************/
++SessionHash *
++findSession(unsigned char const *mac, UINT16_t sesNum)
++{
++ unsigned int b = hash(mac, sesNum) % HASHTAB_SIZE;
++ SessionHash *sh = Buckets[b];
++ while(sh) {
++ if (!memcmp(mac, sh-&gt;peerMac, ETH_ALEN) &amp;&amp; sesNum == sh-&gt;sesNum) {
++ return sh;
++ }
++ sh = sh-&gt;next;
++ }
++ return NULL;
++}
++
++/**********************************************************************
++*%FUNCTION: fatalSys
++*%ARGUMENTS:
++* str -- error message
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Prints a message plus the errno value to stderr and syslog and exits.
++***********************************************************************/
++void
++fatalSys(char const *str)
++{
++ char buf[1024];
++ sprintf(buf, &quot;%.256s: %.256s&quot;, str, strerror(errno));
++ printErr(buf);
++ exit(EXIT_FAILURE);
++}
++
++/**********************************************************************
++*%FUNCTION: sysErr
++*%ARGUMENTS:
++* str -- error message
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Prints a message plus the errno value to syslog.
++***********************************************************************/
++void
++sysErr(char const *str)
++{
++ char buf[1024];
++ sprintf(buf, &quot;%.256s: %.256s&quot;, str, strerror(errno));
++ printErr(buf);
++}
++
++/**********************************************************************
++*%FUNCTION: rp_fatal
++*%ARGUMENTS:
++* str -- error message
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Prints a message to stderr and syslog and exits.
++***********************************************************************/
++void
++rp_fatal(char const *str)
++{
++ printErr(str);
++ exit(EXIT_FAILURE);
++}
++
++/**********************************************************************
++*%FUNCTION: relayLoop
++*%ARGUMENTS:
++* None
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Runs the relay loop. This function never returns
++***********************************************************************/
++void
++relayLoop()
++{
++ fd_set readable, readableCopy;
++ int maxFD;
++ int i, r;
++ int sock;
++
++ /* Build the select set */
++ FD_ZERO(&amp;readable);
++ maxFD = 0;
++ for (i=0; i&lt;NumInterfaces; i++) {
++ sock = Interfaces[i].discoverySock;
++ if (sock &gt; maxFD) maxFD = sock;
++ FD_SET(sock, &amp;readable);
++ sock = Interfaces[i].sessionSock;
++ if (sock &gt; maxFD) maxFD = sock;
++ FD_SET(sock, &amp;readable);
++ if (CleanPipe[0] &gt; maxFD) maxFD = CleanPipe[0];
++ FD_SET(CleanPipe[0], &amp;readable);
++ }
++ maxFD++;
++ for(;;) {
++ readableCopy = readable;
++ for(;;) {
++ r = select(maxFD, &amp;readableCopy, NULL, NULL, NULL);
++ if (r &gt;= 0 || errno != EINTR) break;
++ }
++ if (r &lt; 0) {
++ sysErr(&quot;select (relayLoop)&quot;);
++ continue;
++ }
++
++ /* Handle session packets first */
++ for (i=0; i&lt;NumInterfaces; i++) {
++ if (FD_ISSET(Interfaces[i].sessionSock, &amp;readableCopy)) {
++ relayGotSessionPacket(&amp;Interfaces[i]);
++ }
++ }
++
++ /* Now handle discovery packets */
++ for (i=0; i&lt;NumInterfaces; i++) {
++ if (FD_ISSET(Interfaces[i].discoverySock, &amp;readableCopy)) {
++ relayGotDiscoveryPacket(&amp;Interfaces[i]);
++ }
++ }
++
++ /* Handle the session-cleaning process */
++ if (FD_ISSET(CleanPipe[0], &amp;readableCopy)) {
++ char dummy;
++ CleanCounter = 0;
++ read(CleanPipe[0], &amp;dummy, 1);
++ if (IdleTimeout) cleanSessions();
++ }
++ }
++}
++
++/**********************************************************************
++*%FUNCTION: relayGotDiscoveryPacket
++*%ARGUMENTS:
++* iface -- interface on which packet is waiting
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Receives and processes a discovery packet.
++***********************************************************************/
++void
++relayGotDiscoveryPacket(PPPoEInterface const *iface)
++{
++ PPPoEPacket packet;
++ int size;
++
++ if (receivePacket(iface-&gt;discoverySock, &amp;packet, &amp;size) &lt; 0) {
++ return;
++ }
++ /* Ignore unknown code/version */
++ if (packet.ver != 1 || packet.type != 1) {
++ return;
++ }
++
++ /* Validate length */
++ if (ntohs(packet.length) + HDR_SIZE &gt; size) {
++ syslog(LOG_ERR, &quot;Bogus PPPoE length field (%u)&quot;,
++ (unsigned int) ntohs(packet.length));
++ return;
++ }
++
++ /* Drop Ethernet frame padding */
++ if (size &gt; ntohs(packet.length) + HDR_SIZE) {
++ size = ntohs(packet.length) + HDR_SIZE;
++ }
++
++ switch(packet.code) {
++ case CODE_PADT:
++ relayHandlePADT(iface, &amp;packet, size);
++ break;
++ case CODE_PADI:
++ relayHandlePADI(iface, &amp;packet, size);
++ break;
++ case CODE_PADO:
++ relayHandlePADO(iface, &amp;packet, size);
++ break;
++ case CODE_PADR:
++ relayHandlePADR(iface, &amp;packet, size);
++ break;
++ case CODE_PADS:
++ relayHandlePADS(iface, &amp;packet, size);
++ break;
++ default:
++ syslog(LOG_ERR, &quot;Discovery packet on %s with unknown code %d&quot;,
++ iface-&gt;name, (int) packet.code);
++ }
++}
++
++/**********************************************************************
++*%FUNCTION: relayGotSessionPacket
++*%ARGUMENTS:
++* iface -- interface on which packet is waiting
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Receives and processes a session packet.
++***********************************************************************/
++void
++relayGotSessionPacket(PPPoEInterface const *iface)
++{
++ PPPoEPacket packet;
++ int size;
++ SessionHash *sh;
++ PPPoESession *ses;
++
++ if (receivePacket(iface-&gt;sessionSock, &amp;packet, &amp;size) &lt; 0) {
++ return;
++ }
++
++ /* Ignore unknown code/version */
++ if (packet.ver != 1 || packet.type != 1) {
++ return;
++ }
++
++ /* Must be a session packet */
++ if (packet.code != CODE_SESS) {
++ syslog(LOG_ERR, &quot;Session packet with code %d&quot;, (int) packet.code);
++ return;
++ }
++
++ /* Ignore session packets whose destination address isn't ours */
++ if (memcmp(packet.ethHdr.h_dest, iface-&gt;mac, ETH_ALEN)) {
++ return;
++ }
++
++ /* Validate length */
++ if (ntohs(packet.length) + HDR_SIZE &gt; size) {
++ syslog(LOG_ERR, &quot;Bogus PPPoE length field (%u)&quot;,
++ (unsigned int) ntohs(packet.length));
++ return;
++ }
++
++ /* Drop Ethernet frame padding */
++ if (size &gt; ntohs(packet.length) + HDR_SIZE) {
++ size = ntohs(packet.length) + HDR_SIZE;
++ }
++
++ /* We're in business! Find the hash */
++ sh = findSession(packet.ethHdr.h_source, packet.session);
++ if (!sh) {
++ /* Don't log this. Someone could be running the client and the
++ relay on the same box. */
++ return;
++ }
++
++ /* Relay it */
++ ses = sh-&gt;ses;
++ ses-&gt;epoch = Epoch;
++ sh = sh-&gt;peer;
++ packet.session = sh-&gt;sesNum;
++ memcpy(packet.ethHdr.h_source, sh-&gt;interface-&gt;mac, ETH_ALEN);
++ memcpy(packet.ethHdr.h_dest, sh-&gt;peerMac, ETH_ALEN);
++#if 0
++ fprintf(stderr, &quot;Relaying %02x:%02x:%02x:%02x:%02x:%02x(%s:%d) to %02x:%02x:%02x:%02x:%02x:%02x(%s:%d)\n&quot;,
++ sh-&gt;peer-&gt;peerMac[0], sh-&gt;peer-&gt;peerMac[1], sh-&gt;peer-&gt;peerMac[2],
++ sh-&gt;peer-&gt;peerMac[3], sh-&gt;peer-&gt;peerMac[4], sh-&gt;peer-&gt;peerMac[5],
++ sh-&gt;peer-&gt;interface-&gt;name, ntohs(sh-&gt;peer-&gt;sesNum),
++ sh-&gt;peerMac[0], sh-&gt;peerMac[1], sh-&gt;peerMac[2],
++ sh-&gt;peerMac[3], sh-&gt;peerMac[4], sh-&gt;peerMac[5],
++ sh-&gt;interface-&gt;name, ntohs(sh-&gt;sesNum));
++#endif
++ sendPacket(NULL, sh-&gt;interface-&gt;sessionSock, &amp;packet, size);
++}
++
++/**********************************************************************
++*%FUNCTION: relayHandlePADT
++*%ARGUMENTS:
++* iface -- interface on which packet was received
++* packet -- the PADT packet
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Receives and processes a PADT packet.
++***********************************************************************/
++void
++relayHandlePADT(PPPoEInterface const *iface,
++ PPPoEPacket *packet,
++ int size)
++{
++ SessionHash *sh;
++ PPPoESession *ses;
++
++ sh = findSession(packet-&gt;ethHdr.h_source, packet-&gt;session);
++ if (!sh) {
++ return;
++ }
++ /* Relay the PADT to the peer */
++ sh = sh-&gt;peer;
++ ses = sh-&gt;ses;
++ packet-&gt;session = sh-&gt;sesNum;
++ memcpy(packet-&gt;ethHdr.h_source, sh-&gt;interface-&gt;mac, ETH_ALEN);
++ memcpy(packet-&gt;ethHdr.h_dest, sh-&gt;peerMac, ETH_ALEN);
++ sendPacket(NULL, sh-&gt;interface-&gt;sessionSock, packet, size);
++
++ /* Destroy the session */
++ freeSession(ses, &quot;Received PADT&quot;);
++}
++
++/**********************************************************************
++*%FUNCTION: relayHandlePADI
++*%ARGUMENTS:
++* iface -- interface on which packet was received
++* packet -- the PADI packet
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Receives and processes a PADI packet.
++***********************************************************************/
++void
++relayHandlePADI(PPPoEInterface const *iface,
++ PPPoEPacket *packet,
++ int size)
++{
++ PPPoETag tag;
++ unsigned char *loc;
++ int i, r;
++
++ int ifIndex;
++
++ /* Can a client legally be behind this interface? */
++ if (!iface-&gt;clientOK) {
++ syslog(LOG_ERR,
++ &quot;PADI packet from %02x:%02x:%02x:%02x:%02x:%02x on interface %s not permitted&quot;,
++ packet-&gt;ethHdr.h_source[0],
++ packet-&gt;ethHdr.h_source[1],
++ packet-&gt;ethHdr.h_source[2],
++ packet-&gt;ethHdr.h_source[3],
++ packet-&gt;ethHdr.h_source[4],
++ packet-&gt;ethHdr.h_source[5],
++ iface-&gt;name);
++ return;
++ }
++
++ /* Source address must be unicast */
++ if (NOT_UNICAST(packet-&gt;ethHdr.h_source)) {
++ syslog(LOG_ERR,
++ &quot;PADI packet from %02x:%02x:%02x:%02x:%02x:%02x on interface %s not from a unicast address&quot;,
++ packet-&gt;ethHdr.h_source[0],
++ packet-&gt;ethHdr.h_source[1],
++ packet-&gt;ethHdr.h_source[2],
++ packet-&gt;ethHdr.h_source[3],
++ packet-&gt;ethHdr.h_source[4],
++ packet-&gt;ethHdr.h_source[5],
++ iface-&gt;name);
++ return;
++ }
++
++ /* Destination address must be broadcast */
++ if (NOT_BROADCAST(packet-&gt;ethHdr.h_dest)) {
++ syslog(LOG_ERR,
++ &quot;PADI packet from %02x:%02x:%02x:%02x:%02x:%02x on interface %s not to a broadcast address&quot;,
++ packet-&gt;ethHdr.h_source[0],
++ packet-&gt;ethHdr.h_source[1],
++ packet-&gt;ethHdr.h_source[2],
++ packet-&gt;ethHdr.h_source[3],
++ packet-&gt;ethHdr.h_source[4],
++ packet-&gt;ethHdr.h_source[5],
++ iface-&gt;name);
++ return;
++ }
++
++ /* Get array index of interface */
++ ifIndex = iface - Interfaces;
++
++ loc = findTag(packet, TAG_RELAY_SESSION_ID, &amp;tag);
++ if (!loc) {
++ tag.type = htons(TAG_RELAY_SESSION_ID);
++ tag.length = htons(MY_RELAY_TAG_LEN);
++ memcpy(tag.payload, &amp;ifIndex, sizeof(ifIndex));
++ memcpy(tag.payload+sizeof(ifIndex), packet-&gt;ethHdr.h_source, ETH_ALEN);
++ /* Add a relay tag if there's room */
++ r = addTag(packet, &amp;tag);
++ if (r &lt; 0) return;
++ size += r;
++ } else {
++ /* We do not re-use relay-id tags. Drop the frame. The RFC says the
++ relay agent SHOULD return a Generic-Error tag, but this does not
++ make sense for PADI packets. */
++ return;
++ }
++
++ /* Broadcast the PADI on all AC-capable interfaces except the interface
++ on which it came */
++ for (i=0; i &lt; NumInterfaces; i++) {
++ if (iface == &amp;Interfaces[i]) continue;
++ if (!Interfaces[i].acOK) continue;
++ memcpy(packet-&gt;ethHdr.h_source, Interfaces[i].mac, ETH_ALEN);
++ sendPacket(NULL, Interfaces[i].discoverySock, packet, size);
++ }
++
++}
++
++/**********************************************************************
++*%FUNCTION: relayHandlePADO
++*%ARGUMENTS:
++* iface -- interface on which packet was received
++* packet -- the PADO packet
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Receives and processes a PADO packet.
++***********************************************************************/
++void
++relayHandlePADO(PPPoEInterface const *iface,
++ PPPoEPacket *packet,
++ int size)
++{
++ PPPoETag tag;
++ unsigned char *loc;
++ int ifIndex;
++ int acIndex;
++
++ /* Can a server legally be behind this interface? */
++ if (!iface-&gt;acOK) {
++ syslog(LOG_ERR,
++ &quot;PADO packet from %02x:%02x:%02x:%02x:%02x:%02x on interface %s not permitted&quot;,
++ packet-&gt;ethHdr.h_source[0],
++ packet-&gt;ethHdr.h_source[1],
++ packet-&gt;ethHdr.h_source[2],
++ packet-&gt;ethHdr.h_source[3],
++ packet-&gt;ethHdr.h_source[4],
++ packet-&gt;ethHdr.h_source[5],
++ iface-&gt;name);
++ return;
++ }
++
++ acIndex = iface - Interfaces;
++
++ /* Source address must be unicast */
++ if (NOT_UNICAST(packet-&gt;ethHdr.h_source)) {
++ syslog(LOG_ERR,
++ &quot;PADO packet from %02x:%02x:%02x:%02x:%02x:%02x on interface %s not from a unicast address&quot;,
++ packet-&gt;ethHdr.h_source[0],
++ packet-&gt;ethHdr.h_source[1],
++ packet-&gt;ethHdr.h_source[2],
++ packet-&gt;ethHdr.h_source[3],
++ packet-&gt;ethHdr.h_source[4],
++ packet-&gt;ethHdr.h_source[5],
++ iface-&gt;name);
++ return;
++ }
++
++ /* Destination address must be interface's MAC address */
++ if (memcmp(packet-&gt;ethHdr.h_dest, iface-&gt;mac, ETH_ALEN)) {
++ return;
++ }
++
++ /* Find relay tag */
++ loc = findTag(packet, TAG_RELAY_SESSION_ID, &amp;tag);
++ if (!loc) {
++ syslog(LOG_ERR,
++ &quot;PADO packet from %02x:%02x:%02x:%02x:%02x:%02x on interface %s does not have Relay-Session-Id tag&quot;,
++ packet-&gt;ethHdr.h_source[0],
++ packet-&gt;ethHdr.h_source[1],
++ packet-&gt;ethHdr.h_source[2],
++ packet-&gt;ethHdr.h_source[3],
++ packet-&gt;ethHdr.h_source[4],
++ packet-&gt;ethHdr.h_source[5],
++ iface-&gt;name);
++ return;
++ }
++
++ /* If it's the wrong length, ignore it */
++ if (ntohs(tag.length) != MY_RELAY_TAG_LEN) {
++ syslog(LOG_ERR,
++ &quot;PADO packet from %02x:%02x:%02x:%02x:%02x:%02x on interface %s does not have correct length Relay-Session-Id tag&quot;,
++ packet-&gt;ethHdr.h_source[0],
++ packet-&gt;ethHdr.h_source[1],
++ packet-&gt;ethHdr.h_source[2],
++ packet-&gt;ethHdr.h_source[3],
++ packet-&gt;ethHdr.h_source[4],
++ packet-&gt;ethHdr.h_source[5],
++ iface-&gt;name);
++ return;
++ }
++
++ /* Extract interface index */
++ memcpy(&amp;ifIndex, tag.payload, sizeof(ifIndex));
++
++ if (ifIndex &lt; 0 || ifIndex &gt;= NumInterfaces ||
++ !Interfaces[ifIndex].clientOK ||
++ iface == &amp;Interfaces[ifIndex]) {
++ syslog(LOG_ERR,
++ &quot;PADO packet from %02x:%02x:%02x:%02x:%02x:%02x on interface %s has invalid interface in Relay-Session-Id tag&quot;,
++ packet-&gt;ethHdr.h_source[0],
++ packet-&gt;ethHdr.h_source[1],
++ packet-&gt;ethHdr.h_source[2],
++ packet-&gt;ethHdr.h_source[3],
++ packet-&gt;ethHdr.h_source[4],
++ packet-&gt;ethHdr.h_source[5],
++ iface-&gt;name);
++ return;
++ }
++
++ /* Replace Relay-ID tag with opposite-direction tag */
++ memcpy(loc+TAG_HDR_SIZE, &amp;acIndex, sizeof(acIndex));
++ memcpy(loc+TAG_HDR_SIZE+sizeof(ifIndex), packet-&gt;ethHdr.h_source, ETH_ALEN);
++
++ /* Set destination address to MAC address in relay ID */
++ memcpy(packet-&gt;ethHdr.h_dest, tag.payload + sizeof(ifIndex), ETH_ALEN);
++
++ /* Set source address to MAC address of interface */
++ memcpy(packet-&gt;ethHdr.h_source, Interfaces[ifIndex].mac, ETH_ALEN);
++
++ /* Send the PADO to the proper client */
++ sendPacket(NULL, Interfaces[ifIndex].discoverySock, packet, size);
++}
++
++/**********************************************************************
++*%FUNCTION: relayHandlePADR
++*%ARGUMENTS:
++* iface -- interface on which packet was received
++* packet -- the PADR packet
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Receives and processes a PADR packet.
++***********************************************************************/
++void
++relayHandlePADR(PPPoEInterface const *iface,
++ PPPoEPacket *packet,
++ int size)
++{
++ PPPoETag tag;
++ unsigned char *loc;
++ int ifIndex;
++ int cliIndex;
++
++ /* Can a client legally be behind this interface? */
++ if (!iface-&gt;clientOK) {
++ syslog(LOG_ERR,
++ &quot;PADR packet from %02x:%02x:%02x:%02x:%02x:%02x on interface %s not permitted&quot;,
++ packet-&gt;ethHdr.h_source[0],
++ packet-&gt;ethHdr.h_source[1],
++ packet-&gt;ethHdr.h_source[2],
++ packet-&gt;ethHdr.h_source[3],
++ packet-&gt;ethHdr.h_source[4],
++ packet-&gt;ethHdr.h_source[5],
++ iface-&gt;name);
++ return;
++ }
++
++ cliIndex = iface - Interfaces;
++
++ /* Source address must be unicast */
++ if (NOT_UNICAST(packet-&gt;ethHdr.h_source)) {
++ syslog(LOG_ERR,
++ &quot;PADR packet from %02x:%02x:%02x:%02x:%02x:%02x on interface %s not from a unicast address&quot;,
++ packet-&gt;ethHdr.h_source[0],
++ packet-&gt;ethHdr.h_source[1],
++ packet-&gt;ethHdr.h_source[2],
++ packet-&gt;ethHdr.h_source[3],
++ packet-&gt;ethHdr.h_source[4],
++ packet-&gt;ethHdr.h_source[5],
++ iface-&gt;name);
++ return;
++ }
++
++ /* Destination address must be interface's MAC address */
++ if (memcmp(packet-&gt;ethHdr.h_dest, iface-&gt;mac, ETH_ALEN)) {
++ return;
++ }
++
++ /* Find relay tag */
++ loc = findTag(packet, TAG_RELAY_SESSION_ID, &amp;tag);
++ if (!loc) {
++ syslog(LOG_ERR,
++ &quot;PADR packet from %02x:%02x:%02x:%02x:%02x:%02x on interface %s does not have Relay-Session-Id tag&quot;,
++ packet-&gt;ethHdr.h_source[0],
++ packet-&gt;ethHdr.h_source[1],
++ packet-&gt;ethHdr.h_source[2],
++ packet-&gt;ethHdr.h_source[3],
++ packet-&gt;ethHdr.h_source[4],
++ packet-&gt;ethHdr.h_source[5],
++ iface-&gt;name);
++ return;
++ }
++
++ /* If it's the wrong length, ignore it */
++ if (ntohs(tag.length) != MY_RELAY_TAG_LEN) {
++ syslog(LOG_ERR,
++ &quot;PADR packet from %02x:%02x:%02x:%02x:%02x:%02x on interface %s does not have correct length Relay-Session-Id tag&quot;,
++ packet-&gt;ethHdr.h_source[0],
++ packet-&gt;ethHdr.h_source[1],
++ packet-&gt;ethHdr.h_source[2],
++ packet-&gt;ethHdr.h_source[3],
++ packet-&gt;ethHdr.h_source[4],
++ packet-&gt;ethHdr.h_source[5],
++ iface-&gt;name);
++ return;
++ }
++
++ /* Extract interface index */
++ memcpy(&amp;ifIndex, tag.payload, sizeof(ifIndex));
++
++ if (ifIndex &lt; 0 || ifIndex &gt;= NumInterfaces ||
++ !Interfaces[ifIndex].acOK ||
++ iface == &amp;Interfaces[ifIndex]) {
++ syslog(LOG_ERR,
++ &quot;PADR packet from %02x:%02x:%02x:%02x:%02x:%02x on interface %s has invalid interface in Relay-Session-Id tag&quot;,
++ packet-&gt;ethHdr.h_source[0],
++ packet-&gt;ethHdr.h_source[1],
++ packet-&gt;ethHdr.h_source[2],
++ packet-&gt;ethHdr.h_source[3],
++ packet-&gt;ethHdr.h_source[4],
++ packet-&gt;ethHdr.h_source[5],
++ iface-&gt;name);
++ return;
++ }
++
++ /* Replace Relay-ID tag with opposite-direction tag */
++ memcpy(loc+TAG_HDR_SIZE, &amp;cliIndex, sizeof(cliIndex));
++ memcpy(loc+TAG_HDR_SIZE+sizeof(ifIndex), packet-&gt;ethHdr.h_source, ETH_ALEN);
++
++ /* Set destination address to MAC address in relay ID */
++ memcpy(packet-&gt;ethHdr.h_dest, tag.payload + sizeof(ifIndex), ETH_ALEN);
++
++ /* Set source address to MAC address of interface */
++ memcpy(packet-&gt;ethHdr.h_source, Interfaces[ifIndex].mac, ETH_ALEN);
++
++ /* Send the PADR to the proper access concentrator */
++ sendPacket(NULL, Interfaces[ifIndex].discoverySock, packet, size);
++}
++
++/**********************************************************************
++*%FUNCTION: relayHandlePADS
++*%ARGUMENTS:
++* iface -- interface on which packet was received
++* packet -- the PADS packet
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Receives and processes a PADS packet.
++***********************************************************************/
++void
++relayHandlePADS(PPPoEInterface const *iface,
++ PPPoEPacket *packet,
++ int size)
++{
++ PPPoETag tag;
++ unsigned char *loc;
++ int ifIndex;
++ int acIndex;
++ PPPoESession *ses = NULL;
++ SessionHash *sh;
++
++ /* Can a server legally be behind this interface? */
++ if (!iface-&gt;acOK) {
++ syslog(LOG_ERR,
++ &quot;PADS packet from %02x:%02x:%02x:%02x:%02x:%02x on interface %s not permitted&quot;,
++ packet-&gt;ethHdr.h_source[0],
++ packet-&gt;ethHdr.h_source[1],
++ packet-&gt;ethHdr.h_source[2],
++ packet-&gt;ethHdr.h_source[3],
++ packet-&gt;ethHdr.h_source[4],
++ packet-&gt;ethHdr.h_source[5],
++ iface-&gt;name);
++ return;
++ }
++
++ acIndex = iface - Interfaces;
++
++ /* Source address must be unicast */
++ if (NOT_UNICAST(packet-&gt;ethHdr.h_source)) {
++ syslog(LOG_ERR,
++ &quot;PADS packet from %02x:%02x:%02x:%02x:%02x:%02x on interface %s not from a unicast address&quot;,
++ packet-&gt;ethHdr.h_source[0],
++ packet-&gt;ethHdr.h_source[1],
++ packet-&gt;ethHdr.h_source[2],
++ packet-&gt;ethHdr.h_source[3],
++ packet-&gt;ethHdr.h_source[4],
++ packet-&gt;ethHdr.h_source[5],
++ iface-&gt;name);
++ return;
++ }
++
++ /* Destination address must be interface's MAC address */
++ if (memcmp(packet-&gt;ethHdr.h_dest, iface-&gt;mac, ETH_ALEN)) {
++ return;
++ }
++
++ /* Find relay tag */
++ loc = findTag(packet, TAG_RELAY_SESSION_ID, &amp;tag);
++ if (!loc) {
++ syslog(LOG_ERR,
++ &quot;PADS packet from %02x:%02x:%02x:%02x:%02x:%02x on interface %s does not have Relay-Session-Id tag&quot;,
++ packet-&gt;ethHdr.h_source[0],
++ packet-&gt;ethHdr.h_source[1],
++ packet-&gt;ethHdr.h_source[2],
++ packet-&gt;ethHdr.h_source[3],
++ packet-&gt;ethHdr.h_source[4],
++ packet-&gt;ethHdr.h_source[5],
++ iface-&gt;name);
++ return;
++ }
++
++ /* If it's the wrong length, ignore it */
++ if (ntohs(tag.length) != MY_RELAY_TAG_LEN) {
++ syslog(LOG_ERR,
++ &quot;PADS packet from %02x:%02x:%02x:%02x:%02x:%02x on interface %s does not have correct length Relay-Session-Id tag&quot;,
++ packet-&gt;ethHdr.h_source[0],
++ packet-&gt;ethHdr.h_source[1],
++ packet-&gt;ethHdr.h_source[2],
++ packet-&gt;ethHdr.h_source[3],
++ packet-&gt;ethHdr.h_source[4],
++ packet-&gt;ethHdr.h_source[5],
++ iface-&gt;name);
++ return;
++ }
++
++ /* Extract interface index */
++ memcpy(&amp;ifIndex, tag.payload, sizeof(ifIndex));
++
++ if (ifIndex &lt; 0 || ifIndex &gt;= NumInterfaces ||
++ !Interfaces[ifIndex].clientOK ||
++ iface == &amp;Interfaces[ifIndex]) {
++ syslog(LOG_ERR,
++ &quot;PADS packet from %02x:%02x:%02x:%02x:%02x:%02x on interface %s has invalid interface in Relay-Session-Id tag&quot;,
++ packet-&gt;ethHdr.h_source[0],
++ packet-&gt;ethHdr.h_source[1],
++ packet-&gt;ethHdr.h_source[2],
++ packet-&gt;ethHdr.h_source[3],
++ packet-&gt;ethHdr.h_source[4],
++ packet-&gt;ethHdr.h_source[5],
++ iface-&gt;name);
++ return;
++ }
++
++ /* If session ID is zero, it's the AC respoding with an error.
++ Just relay it; do not create a session */
++ if (packet-&gt;session != htons(0)) {
++ /* Check for existing session */
++ sh = findSession(packet-&gt;ethHdr.h_source, packet-&gt;session);
++ if (sh) ses = sh-&gt;ses;
++
++ /* If already an existing session, assume it's a duplicate PADS. Send
++ the frame, but do not create a new session. Is this the right
++ thing to do? Arguably, should send an error to the client and
++ a PADT to the server, because this could happen due to a
++ server crash and reboot. */
++
++ if (!ses) {
++ /* Create a new session */
++ ses = createSession(iface, &amp;Interfaces[ifIndex],
++ packet-&gt;ethHdr.h_source,
++ loc + TAG_HDR_SIZE + sizeof(ifIndex), packet-&gt;session);
++ if (!ses) {
++ /* Can't allocate session -- send error PADS to client and
++ PADT to server */
++ PPPoETag hostUniq, *hu;
++ if (findTag(packet, TAG_HOST_UNIQ, &amp;hostUniq)) {
++ hu = &amp;hostUniq;
++ } else {
++ hu = NULL;
++ }
++ relaySendError(CODE_PADS, htons(0), &amp;Interfaces[ifIndex],
++ loc + TAG_HDR_SIZE + sizeof(ifIndex),
++ hu, &quot;RP-PPPoE: Relay: Unable to allocate session&quot;);
++ relaySendError(CODE_PADT, packet-&gt;session, iface,
++ packet-&gt;ethHdr.h_source, NULL,
++ &quot;RP-PPPoE: Relay: Unable to allocate session&quot;);
++ return;
++ }
++ }
++ /* Replace session number */
++ packet-&gt;session = ses-&gt;sesNum;
++ }
++
++ /* Remove relay-ID tag */
++ removeBytes(packet, loc, MY_RELAY_TAG_LEN + TAG_HDR_SIZE);
++ size -= (MY_RELAY_TAG_LEN + TAG_HDR_SIZE);
++
++ /* Set destination address to MAC address in relay ID */
++ memcpy(packet-&gt;ethHdr.h_dest, tag.payload + sizeof(ifIndex), ETH_ALEN);
++
++ /* Set source address to MAC address of interface */
++ memcpy(packet-&gt;ethHdr.h_source, Interfaces[ifIndex].mac, ETH_ALEN);
++
++ /* Send the PADS to the proper client */
++ sendPacket(NULL, Interfaces[ifIndex].discoverySock, packet, size);
++}
++
++/**********************************************************************
++*%FUNCTION: relaySendError
++*%ARGUMENTS:
++* code -- PPPoE packet code (PADS or PADT, typically)
++* session -- PPPoE session number
++* iface -- interface on which to send frame
++* mac -- Ethernet address to which frame should be sent
++* hostUniq -- if non-NULL, a hostUniq tag to add to error frame
++* errMsg -- error message to insert into Generic-Error tag.
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Sends either a PADS or PADT packet with a Generic-Error tag and an
++* error message.
++***********************************************************************/
++void
++relaySendError(unsigned char code,
++ UINT16_t session,
++ PPPoEInterface const *iface,
++ unsigned char const *mac,
++ PPPoETag const *hostUniq,
++ char const *errMsg)
++{
++ PPPoEPacket packet;
++ PPPoETag errTag;
++ int size;
++
++ memcpy(packet.ethHdr.h_source, iface-&gt;mac, ETH_ALEN);
++ memcpy(packet.ethHdr.h_dest, mac, ETH_ALEN);
++ packet.ethHdr.h_proto = htons(Eth_PPPOE_Discovery);
++ packet.type = 1;
++ packet.ver = 1;
++ packet.code = code;
++ packet.session = session;
++ packet.length = htons(0);
++ if (hostUniq) {
++ if (addTag(&amp;packet, hostUniq) &lt; 0) return;
++ }
++ errTag.type = htons(TAG_GENERIC_ERROR);
++ errTag.length = htons(strlen(errMsg));
++ strcpy(errTag.payload, errMsg);
++ if (addTag(&amp;packet, &amp;errTag) &lt; 0) return;
++ size = ntohs(packet.length) + HDR_SIZE;
++ if (code == CODE_PADT) {
++ sendPacket(NULL, iface-&gt;discoverySock, &amp;packet, size);
++ } else {
++ sendPacket(NULL, iface-&gt;sessionSock, &amp;packet, size);
++ }
++}
++
++/**********************************************************************
++*%FUNCTION: alarmHandler
++*%ARGUMENTS:
++* sig -- signal number
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* SIGALRM handler. Increments Epoch; if necessary, writes a byte of
++* data to the alarm pipe to trigger the stale-session cleaner.
++***********************************************************************/
++void
++alarmHandler(int sig)
++{
++ alarm(1);
++ Epoch++;
++ CleanCounter++;
++ if (CleanCounter == CleanPeriod) {
++ write(CleanPipe[1], &quot;&quot;, 1);
++ }
++}
++
++/**********************************************************************
++*%FUNCTION: cleanSessions
++*%ARGUMENTS:
++* None
++*%RETURNS:
++* Nothing
++*%DESCRIPTION:
++* Goes through active sessions and cleans sessions idle for longer
++* than IdleTimeout seconds.
++***********************************************************************/
++void cleanSessions(void)
++{
++ PPPoESession *cur, *next;
++ cur = ActiveSessions;
++ while(cur) {
++ next = cur-&gt;next;
++ if (Epoch - cur-&gt;epoch &gt; IdleTimeout) {
++ /* Send PADT to each peer */
++ relaySendError(CODE_PADT, cur-&gt;acHash-&gt;sesNum,
++ cur-&gt;acHash-&gt;interface,
++ cur-&gt;acHash-&gt;peerMac, NULL,
++ &quot;RP-PPPoE: Relay: Session exceeded idle timeout&quot;);
++ relaySendError(CODE_PADT, cur-&gt;clientHash-&gt;sesNum,
++ cur-&gt;clientHash-&gt;interface,
++ cur-&gt;clientHash-&gt;peerMac, NULL,
++ &quot;RP-PPPoE: Relay: Session exceeded idle timeout&quot;);
++ freeSession(cur, &quot;Idle Timeout&quot;);
++ }
++ cur = next;
++ }
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/rp-pppoe/src/relay.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1rppppoesrcrelayh">Added: drakx/trunk/mdk-stage1/rp-pppoe/src/relay.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/rp-pppoe/src/relay.h (rev 0)
++++ drakx/trunk/mdk-stage1/rp-pppoe/src/relay.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,97 @@
++/**********************************************************************
++*
++* relay.h
++*
++* Definitions for PPPoE relay
++*
++* Copyright (C) 2001 Roaring Penguin Software Inc.
++*
++* This program may be distributed according to the terms of the GNU
++* General Public License, version 2 or (at your option) any later version.
++*
++* $Id: relay.h 195724 2001-06-11 13:49:39Z gc $
++*
++***********************************************************************/
++
++#include &quot;pppoe.h&quot;
++
++/* Description for each active Ethernet interface */
++typedef struct InterfaceStruct {
++ char name[IFNAMSIZ+1]; /* Interface name */
++ int discoverySock; /* Socket for discovery frames */
++ int sessionSock; /* Socket for session frames */
++ int clientOK; /* Client requests allowed (PADI, PADR) */
++ int acOK; /* AC replies allowed (PADO, PADS) */
++ unsigned char mac[ETH_ALEN]; /* MAC address */
++} PPPoEInterface;
++
++/* Session state for relay */
++struct SessionHashStruct;
++typedef struct SessionStruct {
++ struct SessionStruct *next; /* Free list link */
++ struct SessionStruct *prev; /* Free list link */
++ struct SessionHashStruct *acHash; /* Hash bucket for AC MAC/Session */
++ struct SessionHashStruct *clientHash; /* Hash bucket for client MAC/Session */
++ unsigned int epoch; /* Epoch when last activity was seen */
++ UINT16_t sesNum; /* Session number assigned by relay */
++} PPPoESession;
++
++/* Hash table entry to find sessions */
++typedef struct SessionHashStruct {
++ struct SessionHashStruct *next; /* Link in hash chain */
++ struct SessionHashStruct *prev; /* Link in hash chain */
++ struct SessionHashStruct *peer; /* Peer for this session */
++ PPPoEInterface const *interface; /* Interface */
++ unsigned char peerMac[ETH_ALEN]; /* Peer's MAC address */
++ UINT16_t sesNum; /* Session number */
++ PPPoESession *ses; /* Session data */
++} SessionHash;
++
++/* Function prototypes */
++
++void relayGotSessionPacket(PPPoEInterface const *i);
++void relayGotDiscoveryPacket(PPPoEInterface const *i);
++PPPoEInterface *findInterface(int sock);
++unsigned int hash(unsigned char const *mac, UINT16_t sesNum);
++SessionHash *findSession(unsigned char const *mac, UINT16_t sesNum);
++void deleteHash(SessionHash *hash);
++PPPoESession *createSession(PPPoEInterface const *ac,
++ PPPoEInterface const *cli,
++ unsigned char const *acMac,
++ unsigned char const *cliMac,
++ UINT16_t acSes);
++void freeSession(PPPoESession *ses, char const *msg);
++void addInterface(char const *ifname, int clientOK, int acOK);
++void usage(char const *progname);
++void initRelay(int nsess);
++void relayLoop(void);
++void addHash(SessionHash *sh);
++void unhash(SessionHash *sh);
++
++void relayHandlePADT(PPPoEInterface const *iface, PPPoEPacket *packet, int size);
++void relayHandlePADI(PPPoEInterface const *iface, PPPoEPacket *packet, int size);
++void relayHandlePADO(PPPoEInterface const *iface, PPPoEPacket *packet, int size);
++void relayHandlePADR(PPPoEInterface const *iface, PPPoEPacket *packet, int size);
++void relayHandlePADS(PPPoEInterface const *iface, PPPoEPacket *packet, int size);
++
++int addTag(PPPoEPacket *packet, PPPoETag const *tag);
++int insertBytes(PPPoEPacket *packet, unsigned char *loc,
++ void const *bytes, int length);
++int removeBytes(PPPoEPacket *packet, unsigned char *loc,
++ int length);
++void relaySendError(unsigned char code,
++ UINT16_t session,
++ PPPoEInterface const *iface,
++ unsigned char const *mac,
++ PPPoETag const *hostUniq,
++ char const *errMsg);
++
++void alarmHandler(int sig);
++void cleanSessions(void);
++
++#define MAX_INTERFACES 8
++#define DEFAULT_SESSIONS 5000
++
++/* Hash table size -- a prime number; gives load factor of around 6
++ for 65534 sessions */
++#define HASHTAB_SIZE 18917
+
+
+Property changes on: drakx/trunk/mdk-stage1/rp-pppoe/src/relay.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1slangMakefile">Added: drakx/trunk/mdk-stage1/slang/Makefile</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/slang/Makefile (rev 0)
++++ drakx/trunk/mdk-stage1/slang/Makefile 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,42 @@
++ #******************************************************************************
++ #
++ # Guillaume Cottenceau (gc@mandriva.com)
++ #
++ # Copyright 2000 Mandriva
++ #
++ # This software may be freely redistributed under the terms of the GNU
++ # public license.
++ #
++ # You should have received a copy of the GNU General Public License
++ # along with this program; if not, write to the Free Software
++ # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ #
++ #*****************************************************************************
++
++top_dir = ..
++
++include $(top_dir)/Makefile.common
++
++
++LIBNAME = libslang
++
++OBJS = sltermin.o sldisply.o slutty.o slang.o slarray.o slclass.o slcmd.o slerr.o slgetkey.o slkeymap.o slmalloc.o slmath.o slmemchr.o slmemcmp.o slmemcpy.o slmemset.o slmisc.o slparse.o slprepr.o slregexp.o slrline.o slsearch.o slsmg.o slstd.o sltoken.o sltypes.o slxstrng.o slcurses.o slscroll.o slsignal.o slkeypad.o slerrno.o slstring.o slstruct.o slcmplex.o slarrfun.o slimport.o slpath.o slarith.o slassoc.o slcompat.o slposdir.o slstdio.o slproc.o sltime.o slstrops.o slbstr.o slpack.o slintall.o slistruc.o slposio.o slnspace.o slarrmis.o slospath.o slscanf.o
++
++DEFS = -Dunix -DSLANG
++
++INCS =
++
++
++TARGETS = $(LIBNAME).a
++
++all: $(TARGETS)
++
++clean:
++ rm -f *.o *.a
++
++$(LIBNAME).a: $(OBJS)
++ ar -cru $@ $^
++ ranlib $@
++
++$(OBJS): %.o: %.c
++ $(DIET) gcc $(CFLAGS) $(DEFS) $(INCS) $(INCLUDES) -c $&lt; -o $@
+
+
+Property changes on: drakx/trunk/mdk-stage1/slang/Makefile
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1slang_slangh">Added: drakx/trunk/mdk-stage1/slang/_slang.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/slang/_slang.h (rev 0)
++++ drakx/trunk/mdk-stage1/slang/_slang.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,743 @@
++#ifndef _PRIVATE_SLANG_H_
++#define _PRIVATE_SLANG_H_
++/* header file for S-Lang internal structures that users do not (should not)
++ need. Use slang.h for that purpose. */
++/* Copyright (c) 1992, 1999, 2001 John E. Davis
++ * This file is part of the S-Lang library.
++ *
++ * You may distribute under the terms of either the GNU General Public
++ * License or the Perl Artistic License.
++ */
++
++/* #include &quot;config.h&quot; */
++#include &quot;jdmacros.h&quot;
++#include &quot;sllimits.h&quot;
++
++#ifdef VMS
++# define SLANG_SYSTEM_NAME &quot;_VMS&quot;
++#else
++# if defined (IBMPC_SYSTEM)
++# define SLANG_SYSTEM_NAME &quot;_IBMPC&quot;
++# else
++# define SLANG_SYSTEM_NAME &quot;_UNIX&quot;
++# endif
++#endif /* VMS */
++
++/* These quantities are main_types for byte-compiled code. They are used
++ * by the inner_interp routine. The _BC_ means byte-code.
++ */
++
++#define _SLANG_BC_LVARIABLE SLANG_LVARIABLE /* 0x01 */
++#define _SLANG_BC_GVARIABLE SLANG_GVARIABLE /* 0x02 */
++#define _SLANG_BC_IVARIABLE SLANG_IVARIABLE /* 0x03 */
++#define _SLANG_BC_RVARIABLE SLANG_RVARIABLE /* 0x04 */
++#define _SLANG_BC_INTRINSIC SLANG_INTRINSIC /* 0x05 */
++#define _SLANG_BC_FUNCTION SLANG_FUNCTION /* 0x06 */
++#define _SLANG_BC_MATH_UNARY SLANG_MATH_UNARY /* 0x07 */
++#define _SLANG_BC_APP_UNARY SLANG_APP_UNARY /* 0x08 */
++#define _SLANG_BC_ICONST SLANG_ICONSTANT /* 0x09 */
++#define _SLANG_BC_DCONST SLANG_DCONSTANT /* 0x0A */
++#define _SLANG_BC_PVARIABLE SLANG_PVARIABLE /* 0x0B */
++#define _SLANG_BC_PFUNCTION SLANG_PFUNCTION /* 0x0C */
++
++#define _SLANG_BC_BINARY 0x10
++#define _SLANG_BC_LITERAL 0x11 /* constant objects */
++#define _SLANG_BC_LITERAL_INT 0x12
++#define _SLANG_BC_LITERAL_STR 0x13
++#define _SLANG_BC_BLOCK 0x14
++
++/* These 3 MUST be in this order too ! */
++#define _SLANG_BC_RETURN 0x15
++#define _SLANG_BC_BREAK 0x16
++#define _SLANG_BC_CONTINUE 0x17
++
++#define _SLANG_BC_EXCH 0x18
++#define _SLANG_BC_LABEL 0x19
++#define _SLANG_BC_LOBJPTR 0x1A
++#define _SLANG_BC_GOBJPTR 0x1B
++#define _SLANG_BC_X_ERROR 0x1C
++/* These must be in this order */
++#define _SLANG_BC_X_USER0 0x1D
++#define _SLANG_BC_X_USER1 0x1E
++#define _SLANG_BC_X_USER2 0x1F
++#define _SLANG_BC_X_USER3 0x20
++#define _SLANG_BC_X_USER4 0x21
++
++#define _SLANG_BC_CALL_DIRECT 0x24
++#define _SLANG_BC_CALL_DIRECT_FRAME 0x25
++#define _SLANG_BC_UNARY 0x26
++#define _SLANG_BC_UNARY_FUNC 0x27
++
++#define _SLANG_BC_DEREF_ASSIGN 0x30
++#define _SLANG_BC_SET_LOCAL_LVALUE 0x31
++#define _SLANG_BC_SET_GLOBAL_LVALUE 0x32
++#define _SLANG_BC_SET_INTRIN_LVALUE 0x33
++#define _SLANG_BC_SET_STRUCT_LVALUE 0x34
++#define _SLANG_BC_FIELD 0x35
++#define _SLANG_BC_SET_ARRAY_LVALUE 0x36
++
++#define _SLANG_BC_LINE_NUM 0x40
++
++#define _SLANG_BC_TMP 0x50
++#define _SLANG_BC_LVARIABLE_AGET 0x60
++#define _SLANG_BC_LVARIABLE_APUT 0x61
++#define _SLANG_BC_INTEGER_PLUS 0x62
++#define _SLANG_BC_INTEGER_MINUS 0x63
++#define _SLANG_BC_ARG_LVARIABLE 0x64
++#define _SLANG_BC_EARG_LVARIABLE 0x65
++
++#define _SLANG_BC_CALL_DIRECT_INTRINSIC 0x80
++#define _SLANG_BC_INTRINSIC_CALL_DIRECT 0x81
++#define _SLANG_BC_CALL_DIRECT_LSTR 0x82
++#define _SLANG_BC_CALL_DIRECT_SLFUN 0x83
++#define _SLANG_BC_CALL_DIRECT_INTRSTOP 0x84
++#define _SLANG_BC_INTRINSIC_STOP 0x85
++#define _SLANG_BC_CALL_DIRECT_EARG_LVAR 0x86
++#define _SLANG_BC_CALL_DIRECT_LINT 0x87
++#define _SLANG_BC_CALL_DIRECT_LVAR 0x88
++
++
++/* Byte-Code Sub Types (_BCST_) */
++
++/* These are sub_types of _SLANG_BC_BLOCK */
++#define _SLANG_BCST_ERROR_BLOCK 0x01
++#define _SLANG_BCST_EXIT_BLOCK 0x02
++#define _SLANG_BCST_USER_BLOCK0 0x03
++#define _SLANG_BCST_USER_BLOCK1 0x04
++#define _SLANG_BCST_USER_BLOCK2 0x05
++#define _SLANG_BCST_USER_BLOCK3 0x06
++#define _SLANG_BCST_USER_BLOCK4 0x07
++/* The user blocks MUST be in the above order */
++#define _SLANG_BCST_LOOP 0x10
++#define _SLANG_BCST_WHILE 0x11
++#define _SLANG_BCST_FOR 0x12
++#define _SLANG_BCST_FOREVER 0x13
++#define _SLANG_BCST_CFOR 0x14
++#define _SLANG_BCST_DOWHILE 0x15
++#define _SLANG_BCST_FOREACH 0x16
++
++#define _SLANG_BCST_IF 0x20
++#define _SLANG_BCST_IFNOT 0x21
++#define _SLANG_BCST_ELSE 0x22
++#define _SLANG_BCST_ANDELSE 0x23
++#define _SLANG_BCST_ORELSE 0x24
++#define _SLANG_BCST_SWITCH 0x25
++#define _SLANG_BCST_NOTELSE 0x26
++
++/* assignment (_SLANG_BC_SET_*_LVALUE) subtypes. The order MUST correspond
++ * to the assignment token order with the ASSIGN_TOKEN as the first!
++ */
++#define _SLANG_BCST_ASSIGN 0x01
++#define _SLANG_BCST_PLUSEQS 0x02
++#define _SLANG_BCST_MINUSEQS 0x03
++#define _SLANG_BCST_TIMESEQS 0x04
++#define _SLANG_BCST_DIVEQS 0x05
++#define _SLANG_BCST_BOREQS 0x06
++#define _SLANG_BCST_BANDEQS 0x07
++#define _SLANG_BCST_PLUSPLUS 0x08
++#define _SLANG_BCST_POST_PLUSPLUS 0x09
++#define _SLANG_BCST_MINUSMINUS 0x0A
++#define _SLANG_BCST_POST_MINUSMINUS 0x0B
++
++/* These use SLANG_PLUS, SLANG_MINUS, SLANG_PLUSPLUS, etc... */
++
++typedef union
++{
++#if SLANG_HAS_FLOAT
++ double double_val;
++ float float_val;
++#endif
++ long long_val;
++ unsigned long ulong_val;
++ VOID_STAR ptr_val;
++ char *s_val;
++ int int_val;
++ unsigned int uint_val;
++ SLang_MMT_Type *ref;
++ SLang_Name_Type *n_val;
++ struct _SLang_Struct_Type *struct_val;
++ struct _SLang_Array_Type *array_val;
++ short short_val;
++ unsigned short ushort_val;
++ char char_val;
++ unsigned char uchar_val;
++}
++_SL_Object_Union_Type;
++
++typedef struct _SLang_Object_Type
++{
++ unsigned char data_type; /* SLANG_INT_TYPE, ... */
++ _SL_Object_Union_Type v;
++}
++SLang_Object_Type;
++
++struct _SLang_MMT_Type
++{
++ unsigned char data_type; /* int, string, etc... */
++ VOID_STAR user_data; /* address of user structure */
++ unsigned int count; /* number of references */
++};
++
++extern int _SLang_pop_object_of_type (unsigned char, SLang_Object_Type *, int);
++
++typedef struct
++{
++ char *name; /* slstring */
++ SLang_Object_Type obj;
++}
++_SLstruct_Field_Type;
++
++typedef struct _SLang_Struct_Type
++{
++ _SLstruct_Field_Type *fields;
++ unsigned int nfields; /* number used */
++ unsigned int num_refs;
++}
++_SLang_Struct_Type;
++
++extern void _SLstruct_delete_struct (_SLang_Struct_Type *);
++extern int _SLang_push_struct (_SLang_Struct_Type *);
++extern int _SLang_pop_struct (_SLang_Struct_Type **);
++extern int _SLstruct_init (void);
++/* extern int _SLstruct_get_field (char *); */
++extern int _SLstruct_define_struct (void);
++extern int _SLstruct_define_typedef (void);
++
++extern int _SLang_pop_datatype (unsigned char *);
++extern int _SLang_push_datatype (unsigned char);
++
++struct _SLang_Ref_Type
++{
++ int is_global;
++ union
++ {
++ SLang_Name_Type *nt;
++ SLang_Object_Type *local_obj;
++ }
++ v;
++};
++
++extern int _SLang_dereference_ref (SLang_Ref_Type *);
++extern int _SLang_deref_assign (SLang_Ref_Type *);
++extern int _SLang_push_ref (int, VOID_STAR);
++
++extern int _SL_increment_frame_pointer (void);
++extern int _SL_decrement_frame_pointer (void);
++
++extern int SLang_pop(SLang_Object_Type *);
++extern void SLang_free_object (SLang_Object_Type *);
++extern int _SLanytype_typecast (unsigned char, VOID_STAR, unsigned int,
++ unsigned char, VOID_STAR);
++extern void _SLstring_intrinsic (void);
++
++
++/* These functions are used to create slstrings of a fixed length. Be
++ * very careful how they are used. In particular, if len bytes are allocated,
++ * then the string must be len characters long, no more and no less.
++ */
++extern char *_SLallocate_slstring (unsigned int);
++extern char *_SLcreate_via_alloced_slstring (char *, unsigned int);
++extern void _SLunallocate_slstring (char *, unsigned int);
++extern int _SLpush_alloced_slstring (char *, unsigned int);
++
++typedef struct
++{
++ char **buf;
++ unsigned int max_num;
++ unsigned int num;
++ unsigned int delta_num;
++}
++_SLString_List_Type;
++extern int _SLstring_list_append (_SLString_List_Type *, char *);
++extern int _SLstring_list_init (_SLString_List_Type *, unsigned int, unsigned int);
++extern void _SLstring_list_delete (_SLString_List_Type *);
++extern int _SLstring_list_push (_SLString_List_Type *);
++
++/* This function assumes that s is an slstring. */
++extern char *_SLstring_dup_slstring (char *);
++extern int _SLang_dup_and_push_slstring (char *);
++
++
++extern int _SLang_init_import (void);
++
++/* This function checks to see if the referenced object is initialized */
++extern int _SLang_is_ref_initialized (SLang_Ref_Type *);
++extern int _SLcheck_identifier_syntax (char *);
++extern int _SLang_uninitialize_ref (SLang_Ref_Type *);
++
++extern int _SLpush_slang_obj (SLang_Object_Type *);
++
++extern char *_SLexpand_escaped_char(char *, char *);
++extern void _SLexpand_escaped_string (char *, char *, char *);
++
++/* returns a pointer to an SLstring string-- use SLang_free_slstring */
++extern char *_SLstringize_object (SLang_Object_Type *);
++extern int _SLdump_objects (char *, SLang_Object_Type *, unsigned int, int);
++
++extern SLang_Object_Type *_SLRun_Stack;
++extern SLang_Object_Type *_SLStack_Pointer;
++
++struct _SLang_NameSpace_Type
++{
++ struct _SLang_NameSpace_Type *next;
++ char *name; /* this is the load_type name */
++ char *namespace_name; /* this name is assigned by implements */
++ unsigned int table_size;
++ SLang_Name_Type **table;
++};
++extern SLang_NameSpace_Type *_SLns_allocate_namespace (char *, unsigned int);
++extern SLang_NameSpace_Type *_SLns_find_namespace (char *);
++extern int _SLns_set_namespace_name (SLang_NameSpace_Type *, char *);
++extern SLang_Array_Type *_SLnspace_apropos (SLang_NameSpace_Type *, char *, unsigned int);
++extern void _SLang_use_namespace_intrinsic (char *name);
++extern char *_SLang_cur_namespace_intrinsic (void);
++extern SLang_Array_Type *_SLang_apropos (char *, char *, unsigned int);
++extern void _SLang_implements_intrinsic (char *);
++
++extern int _SLang_Trace;
++extern int _SLstack_depth(void);
++extern char *_SLang_Current_Function_Name;
++
++extern int _SLang_trace_fun(char *);
++extern int _SLang_Compile_Line_Num_Info;
++
++extern char *_SLstring_dup_hashed_string (char *, unsigned long);
++extern unsigned long _SLcompute_string_hash (char *);
++extern char *_SLstring_make_hashed_string (char *, unsigned int, unsigned long *);
++extern void _SLfree_hashed_string (char *, unsigned int, unsigned long);
++unsigned long _SLstring_hash (unsigned char *, unsigned char *);
++extern int _SLinit_slcomplex (void);
++
++extern int _SLang_init_slstrops (void);
++extern int _SLstrops_do_sprintf_n (int);
++extern int _SLang_sscanf (void);
++extern double _SLang_atof (char *);
++extern int _SLang_init_bstring (void);
++extern int _SLang_init_sltime (void);
++extern void _SLpack (void);
++extern void _SLunpack (char *, SLang_BString_Type *);
++extern void _SLpack_pad_format (char *);
++extern unsigned int _SLpack_compute_size (char *);
++extern int _SLusleep (unsigned long);
++
++/* frees upon error. NULL __NOT__ ok. */
++extern int _SLang_push_slstring (char *);
++
++extern unsigned char _SLarith_promote_type (unsigned char);
++extern int _SLarith_get_precedence (unsigned char);
++extern int _SLarith_typecast (unsigned char, VOID_STAR, unsigned int,
++ unsigned char, VOID_STAR);
++
++extern int SLang_push(SLang_Object_Type *);
++extern int SLadd_global_variable (char *);
++extern void _SLang_clear_error (void);
++
++extern int _SLdo_pop (void);
++extern unsigned int _SLsys_getkey (void);
++extern int _SLsys_input_pending (int);
++#ifdef IBMPC_SYSTEM
++extern unsigned int _SLpc_convert_scancode (unsigned int, unsigned int, int);
++#define _SLTT_KEY_SHIFT 1
++#define _SLTT_KEY_CTRL 2
++#define _SLTT_KEY_ALT 4
++#endif
++
++typedef struct _SLterminfo_Type SLterminfo_Type;
++extern SLterminfo_Type *_SLtt_tigetent (char *);
++extern char *_SLtt_tigetstr (SLterminfo_Type *, char *);
++extern int _SLtt_tigetnum (SLterminfo_Type *, char *);
++extern int _SLtt_tigetflag (SLterminfo_Type *, char *);
++
++#if SLTT_HAS_NON_BCE_SUPPORT
++extern int _SLtt_get_bce_color_offset (void);
++#endif
++extern void (*_SLtt_color_changed_hook)(void);
++
++extern unsigned char SLang_Input_Buffer [SL_MAX_INPUT_BUFFER_LEN];
++
++extern int _SLregister_types (void);
++extern SLang_Class_Type *_SLclass_get_class (unsigned char);
++extern VOID_STAR _SLclass_get_ptr_to_value (SLang_Class_Type *, SLang_Object_Type *);
++extern void _SLclass_type_mismatch_error (unsigned char, unsigned char);
++extern int _SLclass_init (void);
++extern int _SLclass_copy_class (unsigned char, unsigned char);
++
++extern unsigned char _SLclass_Class_Type [256];
++
++extern int (*_SLclass_get_typecast (unsigned char, unsigned char, int))
++(unsigned char, VOID_STAR, unsigned int,
++ unsigned char, VOID_STAR);
++
++extern int (*_SLclass_get_binary_fun (int, SLang_Class_Type *, SLang_Class_Type *, SLang_Class_Type **, int))
++(int,
++ unsigned char, VOID_STAR, unsigned int,
++ unsigned char, VOID_STAR, unsigned int,
++ VOID_STAR);
++
++extern int (*_SLclass_get_unary_fun (int, SLang_Class_Type *, SLang_Class_Type **, int))
++(int, unsigned char, VOID_STAR, unsigned int, VOID_STAR);
++
++extern int _SLarith_register_types (void);
++extern unsigned char _SLarith_Arith_Types [];
++extern unsigned char _SLarith_Is_Arith_Type [256];
++extern int _SLarith_bin_op (SLang_Object_Type *, SLang_Object_Type *, int);
++
++extern int _SLarray_add_bin_op (unsigned char);
++
++extern int _SLang_call_funptr (SLang_Name_Type *);
++extern void _SLset_double_format (char *);
++extern SLang_Name_Type *_SLlocate_global_name (char *);
++extern SLang_Name_Type *_SLlocate_name (char *);
++
++extern char *_SLdefines[];
++
++#define SL_ERRNO_NOT_IMPLEMENTED 0x7FFF
++extern int _SLerrno_errno;
++extern int _SLerrno_init (void);
++
++extern int _SLstdio_fdopen (char *, int, char *);
++
++extern void _SLstruct_pop_args (int *);
++extern void _SLstruct_push_args (SLang_Array_Type *);
++
++extern int _SLarray_aput (void);
++extern int _SLarray_aget (void);
++extern int _SLarray_inline_implicit_array (void);
++extern int _SLarray_inline_array (void);
++extern int _SLarray_wildcard_array (void);
++
++extern int
++_SLarray_typecast (unsigned char, VOID_STAR, unsigned int,
++ unsigned char, VOID_STAR, int);
++
++extern int _SLarray_aput_transfer_elem (SLang_Array_Type *, int *,
++ VOID_STAR, unsigned int, int);
++extern int _SLarray_aget_transfer_elem (SLang_Array_Type *, int *,
++ VOID_STAR, unsigned int, int);
++extern void _SLarray_free_array_elements (SLang_Class_Type *, VOID_STAR, unsigned int);
++
++extern SLang_Foreach_Context_Type *
++_SLarray_cl_foreach_open (unsigned char, unsigned int);
++extern void _SLarray_cl_foreach_close (unsigned char, SLang_Foreach_Context_Type *);
++extern int _SLarray_cl_foreach (unsigned char, SLang_Foreach_Context_Type *);
++
++extern int _SLarray_matrix_multiply (void);
++extern void (*_SLang_Matrix_Multiply)(void);
++
++extern int _SLarray_init_slarray (void);
++extern SLang_Array_Type *
++SLang_create_array1 (unsigned char, int, VOID_STAR, int *, unsigned int, int);
++
++extern int _SLcompile_push_context (SLang_Load_Type *);
++extern int _SLcompile_pop_context (void);
++extern int _SLang_Auto_Declare_Globals;
++
++typedef struct
++{
++ union
++ {
++ long long_val;
++ char *s_val; /* Used for IDENT_TOKEN, FLOAT, etc... */
++ SLang_BString_Type *b_val;
++ } v;
++ int free_sval_flag;
++ unsigned int num_refs;
++ unsigned long hash;
++#if _SLANG_HAS_DEBUG_CODE
++ int line_number;
++#endif
++ unsigned char type;
++}
++_SLang_Token_Type;
++
++extern void _SLcompile (_SLang_Token_Type *);
++extern void (*_SLcompile_ptr)(_SLang_Token_Type *);
++
++/* *** TOKENS *** */
++
++/* Note that that tokens corresponding to ^J, ^M, and ^Z should not be used.
++ * This is because a file that contains any of these characters will
++ * have an OS dependent interpretation, e.g., ^Z is EOF on MSDOS.
++ */
++
++/* Special tokens */
++#define EOF_TOKEN 0x01
++#define RPN_TOKEN 0x02
++#define NL_TOKEN 0x03
++#define NOP_TOKEN 0x05
++#define FARG_TOKEN 0x06
++#define TMP_TOKEN 0x07
++
++#define RESERVED1_TOKEN 0x0A /* \n */
++#define RESERVED2_TOKEN 0x0D /* \r */
++
++/* Literal tokens */
++#define CHAR_TOKEN 0x10
++#define UCHAR_TOKEN 0x11
++#define SHORT_TOKEN 0x12
++#define USHORT_TOKEN 0x13
++#define INT_TOKEN 0x14
++#define UINT_TOKEN 0x15
++#define LONG_TOKEN 0x16
++#define ULONG_TOKEN 0x17
++#define IS_INTEGER_TOKEN(x) ((x &gt;= CHAR_TOKEN) &amp;&amp; (x &lt;= ULONG_TOKEN))
++#define FLOAT_TOKEN 0x18
++#define DOUBLE_TOKEN 0x19
++#define RESERVED3_TOKEN 0x1A /* ^Z */
++#define COMPLEX_TOKEN 0x1B
++#define STRING_TOKEN 0x1C
++#define BSTRING_TOKEN 0x1D
++#define _BSTRING_TOKEN 0x1E /* byte-compiled BSTRING */
++#define ESC_STRING_TOKEN 0x1F
++
++/* Tokens that can be LVALUES */
++#define IDENT_TOKEN 0x20
++#define ARRAY_TOKEN 0x21
++#define DOT_TOKEN 0x22
++#define IS_LVALUE_TOKEN (((t) &lt;= DOT_TOKEN) &amp;&amp; ((t) &gt;= IDENT_TOKEN))
++
++/* do not use these values */
++#define RESERVED4_TOKEN 0x23 /* # */
++#define RESERVED5_TOKEN 0x25 /* % */
++
++/* Flags for struct fields */
++#define STATIC_TOKEN 0x26
++#define READONLY_TOKEN 0x27
++#define PRIVATE_TOKEN 0x28
++#define PUBLIC_TOKEN 0x29
++
++/* Punctuation tokens */
++#define OBRACKET_TOKEN 0x2a
++#define CBRACKET_TOKEN 0x2b
++#define OPAREN_TOKEN 0x2c
++#define CPAREN_TOKEN 0x2d
++#define OBRACE_TOKEN 0x2e
++#define CBRACE_TOKEN 0x2f
++
++#define COMMA_TOKEN 0x31
++#define SEMICOLON_TOKEN 0x32
++#define COLON_TOKEN 0x33
++#define NAMESPACE_TOKEN 0x34
++
++/* Operators */
++#define POW_TOKEN 0x38
++
++/* The order here must match the order in the Binop_Level table in slparse.c */
++#define FIRST_BINARY_OP 0x39
++#define ADD_TOKEN 0x39
++#define SUB_TOKEN 0x3a
++#define TIMES_TOKEN 0x3b
++#define DIV_TOKEN 0x3c
++#define LT_TOKEN 0x3d
++#define LE_TOKEN 0x3e
++#define GT_TOKEN 0x3f
++#define GE_TOKEN 0x40
++#define EQ_TOKEN 0x41
++#define NE_TOKEN 0x42
++#define AND_TOKEN 0x43
++#define OR_TOKEN 0x44
++#define MOD_TOKEN 0x45
++#define BAND_TOKEN 0x46
++#define SHL_TOKEN 0x47
++#define SHR_TOKEN 0x48
++#define BXOR_TOKEN 0x49
++#define BOR_TOKEN 0x4a
++#define POUND_TOKEN 0x4b /* matrix multiplication */
++
++#define LAST_BINARY_OP 0x4b
++#define IS_BINARY_OP(t) ((t &gt;= FIRST_BINARY_OP) &amp;&amp; (t &lt;= LAST_BINARY_OP))
++
++/* unary tokens -- but not all of them (see grammar) */
++#define DEREF_TOKEN 0x4d
++#define NOT_TOKEN 0x4e
++#define BNOT_TOKEN 0x4f
++
++#define IS_INTERNAL_FUNC(t) ((t &gt;= 0x50) &amp;&amp; (t &lt;= 0x56))
++#define POP_TOKEN 0x50
++#define CHS_TOKEN 0x51
++#define SIGN_TOKEN 0x52
++#define ABS_TOKEN 0x53
++#define SQR_TOKEN 0x54
++#define MUL2_TOKEN 0x55
++#define EXCH_TOKEN 0x56
++
++/* Assignment tokens. Note: these must appear with sequential values.
++ * The order here must match the specific lvalue assignments below.
++ * These tokens are used by rpn routines in slang.c. slparse.c maps them
++ * onto the specific lvalue tokens while parsing infix.
++ * Also the assignment _SLANG_BCST_ assumes this order
++ */
++#define ASSIGN_TOKEN 0x57
++#define PLUSEQS_TOKEN 0x58
++#define MINUSEQS_TOKEN 0x59
++#define TIMESEQS_TOKEN 0x5A
++#define DIVEQS_TOKEN 0x5B
++#define BOREQS_TOKEN 0x5C
++#define BANDEQS_TOKEN 0x5D
++#define PLUSPLUS_TOKEN 0x5E
++#define POST_PLUSPLUS_TOKEN 0x5F
++#define MINUSMINUS_TOKEN 0x60
++#define POST_MINUSMINUS_TOKEN 0x61
++
++/* Directives */
++#define FIRST_DIRECTIVE_TOKEN 0x62
++#define IFNOT_TOKEN 0x62
++#define IF_TOKEN 0x63
++#define ELSE_TOKEN 0x64
++#define FOREVER_TOKEN 0x65
++#define WHILE_TOKEN 0x66
++#define FOR_TOKEN 0x67
++#define _FOR_TOKEN 0x68
++#define LOOP_TOKEN 0x69
++#define SWITCH_TOKEN 0x6A
++#define DOWHILE_TOKEN 0x6B
++#define ANDELSE_TOKEN 0x6C
++#define ORELSE_TOKEN 0x6D
++#define ERRBLK_TOKEN 0x6E
++#define EXITBLK_TOKEN 0x6F
++/* These must be sequential */
++#define USRBLK0_TOKEN 0x70
++#define USRBLK1_TOKEN 0x71
++#define USRBLK2_TOKEN 0x72
++#define USRBLK3_TOKEN 0x73
++#define USRBLK4_TOKEN 0x74
++
++#define CONT_TOKEN 0x75
++#define BREAK_TOKEN 0x76
++#define RETURN_TOKEN 0x77
++
++#define CASE_TOKEN 0x78
++#define DEFINE_TOKEN 0x79
++#define DO_TOKEN 0x7a
++#define VARIABLE_TOKEN 0x7b
++#define GVARIABLE_TOKEN 0x7c
++#define _REF_TOKEN 0x7d
++#define PUSH_TOKEN 0x7e
++#define STRUCT_TOKEN 0x7f
++#define TYPEDEF_TOKEN 0x80
++#define NOTELSE_TOKEN 0x81
++#define DEFINE_STATIC_TOKEN 0x82
++#define FOREACH_TOKEN 0x83
++#define USING_TOKEN 0x84
++#define DEFINE_PRIVATE_TOKEN 0x85
++#define DEFINE_PUBLIC_TOKEN 0x86
++
++/* Note: the order here must match the order of the generic assignment tokens.
++ * Also, the first token of each group must be the ?_ASSIGN_TOKEN.
++ * slparse.c exploits this order, as well as slang.h.
++ */
++#define FIRST_ASSIGN_TOKEN 0x90
++#define _STRUCT_ASSIGN_TOKEN 0x90
++#define _STRUCT_PLUSEQS_TOKEN 0x91
++#define _STRUCT_MINUSEQS_TOKEN 0x92
++#define _STRUCT_TIMESEQS_TOKEN 0x93
++#define _STRUCT_DIVEQS_TOKEN 0x94
++#define _STRUCT_BOREQS_TOKEN 0x95
++#define _STRUCT_BANDEQS_TOKEN 0x96
++#define _STRUCT_PLUSPLUS_TOKEN 0x97
++#define _STRUCT_POST_PLUSPLUS_TOKEN 0x98
++#define _STRUCT_MINUSMINUS_TOKEN 0x99
++#define _STRUCT_POST_MINUSMINUS_TOKEN 0x9A
++
++#define _ARRAY_ASSIGN_TOKEN 0xA0
++#define _ARRAY_PLUSEQS_TOKEN 0xA1
++#define _ARRAY_MINUSEQS_TOKEN 0xA2
++#define _ARRAY_TIMESEQS_TOKEN 0xA3
++#define _ARRAY_DIVEQS_TOKEN 0xA4
++#define _ARRAY_BOREQS_TOKEN 0xA5
++#define _ARRAY_BANDEQS_TOKEN 0xA6
++#define _ARRAY_PLUSPLUS_TOKEN 0xA7
++#define _ARRAY_POST_PLUSPLUS_TOKEN 0xA8
++#define _ARRAY_MINUSMINUS_TOKEN 0xA9
++#define _ARRAY_POST_MINUSMINUS_TOKEN 0xAA
++
++#define _SCALAR_ASSIGN_TOKEN 0xB0
++#define _SCALAR_PLUSEQS_TOKEN 0xB1
++#define _SCALAR_MINUSEQS_TOKEN 0xB2
++#define _SCALAR_TIMESEQS_TOKEN 0xB3
++#define _SCALAR_DIVEQS_TOKEN 0xB4
++#define _SCALAR_BOREQS_TOKEN 0xB5
++#define _SCALAR_BANDEQS_TOKEN 0xB6
++#define _SCALAR_PLUSPLUS_TOKEN 0xB7
++#define _SCALAR_POST_PLUSPLUS_TOKEN 0xB8
++#define _SCALAR_MINUSMINUS_TOKEN 0xB9
++#define _SCALAR_POST_MINUSMINUS_TOKEN 0xBA
++
++#define _DEREF_ASSIGN_TOKEN 0xC0
++#define _DEREF_PLUSEQS_TOKEN 0xC1
++#define _DEREF_MINUSEQS_TOKEN 0xC2
++#define _DEREF_TIMESEQS_TOKEN 0xC3
++#define _DEREF_DIVEQS_TOKEN 0xC4
++#define _DEREF_BOREQS_TOKEN 0xC5
++#define _DEREF_BANDEQS_TOKEN 0xC6
++#define _DEREF_PLUSPLUS_TOKEN 0xC7
++#define _DEREF_POST_PLUSPLUS_TOKEN 0xC8
++#define _DEREF_MINUSMINUS_TOKEN 0xC9
++#define _DEREF_POST_MINUSMINUS_TOKEN 0xCA
++
++#define LAST_ASSIGN_TOKEN 0xCA
++#define IS_ASSIGN_TOKEN(t) (((t)&gt;=FIRST_ASSIGN_TOKEN)&amp;&amp;((t)&lt;=LAST_ASSIGN_TOKEN))
++
++#define _INLINE_ARRAY_TOKEN 0xE0
++#define _INLINE_IMPLICIT_ARRAY_TOKEN 0xE1
++#define _NULL_TOKEN 0xE2
++#define _INLINE_WILDCARD_ARRAY_TOKEN 0xE3
++
++#define LINE_NUM_TOKEN 0xFC
++#define ARG_TOKEN 0xFD
++#define EARG_TOKEN 0xFE
++#define NO_OP_LITERAL 0xFF
++
++typedef struct
++{
++ /* sltoken.c */
++ /* SLang_eval_object */
++ SLang_Load_Type *llt;
++ SLPreprocess_Type *this_slpp;
++ /* prep_get_char() */
++ char *input_line;
++ char cchar;
++ /* get_token() */
++ int want_nl_token;
++
++ /* slparse.c */
++ _SLang_Token_Type ctok;
++ int block_depth;
++ int assignment_expression;
++
++ /* slang.c : SLcompile() */
++ _SLang_Token_Type save_token;
++ _SLang_Token_Type next_token;
++ void (*slcompile_ptr)(_SLang_Token_Type *);
++}
++_SLEval_Context;
++
++extern int _SLget_token (_SLang_Token_Type *);
++extern void _SLparse_error (char *, _SLang_Token_Type *, int);
++extern void _SLparse_start (SLang_Load_Type *);
++extern int _SLget_rpn_token (_SLang_Token_Type *);
++extern void _SLcompile_byte_compiled (void);
++
++extern int (*_SLprep_eval_hook) (char *);
++
++#ifdef HAVE_VSNPRINTF
++#define _SLvsnprintf vsnprintf
++#else
++extern int _SLvsnprintf (char *, unsigned int, char *, va_list);
++#endif
++
++#ifdef HAVE_SNPRINTF
++# define _SLsnprintf snprintf
++#else
++extern int _SLsnprintf (char *, unsigned int, char *, ...);
++#endif
++
++#undef _INLINE_
++#if defined(__GNUC__) &amp;&amp; _SLANG_USE_INLINE_CODE
++# define _INLINE_ __inline__
++#else
++# define _INLINE_
++#endif
++
++
++#endif /* _PRIVATE_SLANG_H_ */
+
+
+Property changes on: drakx/trunk/mdk-stage1/slang/_slang.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1slangconfigh">Added: drakx/trunk/mdk-stage1/slang/config.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/slang/config.h (rev 0)
++++ drakx/trunk/mdk-stage1/slang/config.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,163 @@
++/* src/sysconf.h. Generated automatically by configure. */
++/* -*- c -*- */
++/* Note: this is for unix only. */
++
++#ifndef SL_CONFIG_H
++#define SL_CONFIG_H
++
++/* define if you have stdlib.h */
++#define HAVE_STDLIB_H 1
++
++/* define if you have unistd.h */
++#define HAVE_UNISTD_H 1
++
++/* define if you have termios.h */
++#define HAVE_TERMIOS_H 1
++
++/* define if you have memory.h */
++#define HAVE_MEMORY_H 1
++
++/* define if you have malloc.h */
++#define HAVE_MALLOC_H 1
++
++/* define if you have memset */
++#define HAVE_MEMSET 1
++
++/* define if you have memcpy */
++#define HAVE_MEMCPY 1
++
++//#define HAVE_SETLOCALE 1
++//#define HAVE_LOCALE_H 1
++
++#define HAVE_VFSCANF 1
++
++/* define if you have fcntl.h */
++#define HAVE_FCNTL_H 1
++
++/* Define if you have the vsnprintf, snprintf functions and they return
++ * EOF upon failure.
++ */
++#define HAVE_VSNPRINTF 1
++#define HAVE_SNPRINTF 1
++
++/* define if you have sys/fcntl.h */
++#define HAVE_SYS_FCNTL_H 1
++
++#define HAVE_SYS_TYPES_H 1
++#define HAVE_SYS_WAIT_H 1
++#define HAVE_SYS_TIMES_H 1
++
++/* Set these to the appropriate values */
++#define SIZEOF_SHORT 2
++#define SIZEOF_INT 4
++#define SIZEOF_LONG 4
++#define SIZEOF_FLOAT 4
++#define SIZEOF_DOUBLE 8
++
++/* define if you have these. */
++#define HAVE_ATEXIT 1
++#define HAVE_ON_EXIT 1
++#define HAVE_PUTENV 1
++#define HAVE_GETCWD 1
++#define HAVE_TCGETATTR 1
++#define HAVE_TCSETATTR 1
++#define HAVE_CFGETOSPEED 1
++#define HAVE_LSTAT 1
++#define HAVE_KILL 1
++#define HAVE_CHOWN 1
++#define HAVE_VSNPRINTF 1
++#define HAVE_POPEN 1
++#define HAVE_UMASK 1
++#define HAVE_READLINK 1
++#define HAVE_TIMES 1
++#define HAVE_GMTIME 1
++#define HAVE_MKFIFO 1
++
++#define HAVE_GETPPID 1
++#define HAVE_GETGID 1
++#define HAVE_GETEGID 1
++#define HAVE_GETEUID 1
++/* #undef HAVE_GETUID */
++
++#define HAVE_SETGID 1
++#define HAVE_SETPGID 1
++#define HAVE_SETUID 1
++
++#define HAVE_ACOSH 1
++#define HAVE_ASINH 1
++#define HAVE_ATANH 1
++
++#define HAVE_DIRENT_H 1
++/* #undef HAVE_SYS_NDIR_H */
++/* #undef HAVE_SYS_DIR_H */
++/* #undef HAVE_NDIR_H */
++
++#define HAVE_DLFCN_H 1
++
++#define HAVE_SYS_UTSNAME_H 1
++#define HAVE_UNAME 1
++
++/* These two are needed on DOS-like systems. Unix does not require them.
++ * They are included here for consistency.
++ *
++#define HAVE_IO_H
++#define HAVE_PROCESS_H
++ */
++
++/* #undef USE_TERMCAP */
++
++/* #undef mode_t */
++/* #undef uid_t */
++/* #undef pid_t */
++/* #undef gid_t */
++
++/* Do we have posix signals? */
++#define HAVE_SIGACTION 1
++#define HAVE_SIGPROCMASK 1
++#define HAVE_SIGEMPTYSET 1
++#define HAVE_SIGADDSET 1
++
++#if defined(HAVE_SIGADDSET) &amp;&amp; defined(HAVE_SIGEMPTYSET)
++# if defined(HAVE_SIGACTION) &amp;&amp; defined(HAVE_SIGPROCMASK)
++# define SLANG_POSIX_SIGNALS
++# endif
++#endif
++
++/* Define if you need to in order for stat and other things to work. */
++/* #undef _POSIX_SOURCE */
++
++#ifdef _AIX
++# ifndef _POSIX_SOURCE
++# define _POSIX_SOURCE 1
++# endif
++# ifndef _ALL_SOURCE
++# define _ALL_SOURCE
++# endif
++/* This may generate warnings but the fact is that without it, xlc will
++ * INCORRECTLY inline many str* functions. */
++/* # undef __STR__ */
++#endif
++
++/* define USE_TERMCAP if you want to use it instead of terminfo. */
++#if defined(sequent) || defined(NeXT)
++# ifndef USE_TERMCAP
++# define USE_TERMCAP
++# endif
++#endif
++
++#if defined(ultrix) &amp;&amp; !defined(__GNUC__)
++# ifndef NO_PROTOTYPES
++# define NO_PROTOTYPES
++# endif
++#endif
++
++#ifndef unix
++# define unix 1
++#endif
++
++#ifndef __unix__
++# define __unix__ 1
++#endif
++
++#define _SLANG_SOURCE_ 1
++#endif /* SL_CONFIG_H */
+
+
+Property changes on: drakx/trunk/mdk-stage1/slang/config.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1slangjdmacrosh">Added: drakx/trunk/mdk-stage1/slang/jdmacros.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/slang/jdmacros.h (rev 0)
++++ drakx/trunk/mdk-stage1/slang/jdmacros.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,53 @@
++#ifndef _JD_MACROS_H_
++#define _JD_MACROS_H_
++
++#ifndef SLMEMSET
++# ifdef HAVE_MEMSET
++# define SLMEMSET memset
++# else
++# define SLMEMSET SLmemset
++# endif
++#endif
++
++#ifndef SLMEMCHR
++# ifdef HAVE_MEMCHR
++# define SLMEMCHR memchr
++# else
++# define SLMEMCHR SLmemchr
++# endif
++#endif
++
++#ifndef SLMEMCPY
++# ifdef HAVE_MEMCPY
++# define SLMEMCPY memcpy
++# else
++# define SLMEMCPY SLmemcpy
++# endif
++#endif
++
++/* Note: HAVE_MEMCMP requires an unsigned memory comparison!!! */
++#ifndef SLMEMCMP
++# ifdef HAVE_MEMCMP
++# define SLMEMCMP memcmp
++# else
++# define SLMEMCMP SLmemcmp
++# endif
++#endif
++
++#ifndef SLFREE
++# define SLFREE free
++#endif
++
++#ifndef SLMALLOC
++# define SLMALLOC malloc
++#endif
++
++#ifndef SLCALLOC
++# define SLCALLOC calloc
++#endif
++
++#ifndef SLREALLOC
++# define SLREALLOC realloc
++#endif
++
++#endif /* _JD_MACROS_H_ */
+
+
+Property changes on: drakx/trunk/mdk-stage1/slang/jdmacros.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1slangkeywhashc">Added: drakx/trunk/mdk-stage1/slang/keywhash.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/slang/keywhash.c (rev 0)
++++ drakx/trunk/mdk-stage1/slang/keywhash.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,190 @@
++/* Perfect hash generated by command line:
++ * ./a.out 1
++ */
++#define MIN_HASH_VALUE 2
++#define MAX_HASH_VALUE 118
++#define MIN_KEYWORD_LEN 2
++#define MAX_KEYWORD_LEN 11
++
++static unsigned char Keyword_Hash_Table [256] =
++{
++ 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
++ 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
++ 119, 1, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
++ 9, 7, 1, 8, 2, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
++ 119, 119, 0, 0, 119, 0, 119, 119, 119, 7, 119, 0, 0, 119, 119, 0,
++ 119, 119, 0, 0, 0, 0, 119, 119, 0, 119, 119, 119, 119, 119, 119, 2,
++ 119, 41, 1, 1, 9, 0, 55, 8, 0, 0, 119, 0, 27, 0, 0, 0,
++ 7, 2, 0, 21, 0, 0, 0, 3, 2, 0, 119, 119, 119, 119, 119, 119,
++ 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
++ 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
++ 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
++ 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
++ 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
++ 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
++ 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
++ 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119
++};
++
++static unsigned char keyword_hash (char *s, unsigned int len)
++{
++ unsigned int sum;
++
++ sum = len;
++ while (len)
++ {
++ len--;
++ sum += (unsigned int) Keyword_Hash_Table [(unsigned char)s[len]];
++ }
++ return sum;
++}
++
++typedef struct
++{
++ char *name;
++ unsigned int type;
++}
++Keyword_Table_Type;
++
++static Keyword_Table_Type Keyword_Table [/* 117 */] =
++{
++ {&quot;or&quot;, OR_TOKEN},
++ {&quot;not&quot;, NOT_TOKEN},
++ {NULL,0},
++ {&quot;xor&quot;, BXOR_TOKEN},
++ {&quot;return&quot;, RETURN_TOKEN},
++ {&quot;exch&quot;, EXCH_TOKEN},
++ {NULL,0},
++ {&quot;continue&quot;, CONT_TOKEN},
++ {NULL,0},
++ {&quot;do&quot;, DO_TOKEN},
++ {&quot;mod&quot;, MOD_TOKEN},
++ {&quot;ERROR_BLOCK&quot;, ERRBLK_TOKEN},
++ {&quot;USER_BLOCK2&quot;, USRBLK2_TOKEN},
++ {&quot;USER_BLOCK4&quot;, USRBLK4_TOKEN},
++ {&quot;__tmp&quot;, TMP_TOKEN},
++ {&quot;pop&quot;, POP_TOKEN},
++ {NULL,0},
++ {&quot;EXIT_BLOCK&quot;, EXITBLK_TOKEN},
++ {&quot;USER_BLOCK1&quot;, USRBLK1_TOKEN},
++ {&quot;USER_BLOCK3&quot;, USRBLK3_TOKEN},
++ {&quot;USER_BLOCK0&quot;, USRBLK0_TOKEN},
++ {NULL,0},
++ {&quot;shr&quot;, SHR_TOKEN},
++ {&quot;chs&quot;, CHS_TOKEN},
++ {&quot;sqr&quot;, SQR_TOKEN},
++ {NULL,0},
++ {&quot;struct&quot;, STRUCT_TOKEN},
++ {NULL,0},
++ {NULL,0},
++ {&quot;switch&quot;, SWITCH_TOKEN},
++ {&quot;mul2&quot;, MUL2_TOKEN},
++ {&quot;sign&quot;, SIGN_TOKEN},
++ {&quot;using&quot;, USING_TOKEN},
++ {&quot;while&quot;, WHILE_TOKEN},
++ {NULL,0},
++ {NULL,0},
++ {&quot;loop&quot;, LOOP_TOKEN},
++ {NULL,0},
++ {NULL,0},
++ {NULL,0},
++ {&quot;public&quot;, PUBLIC_TOKEN},
++ {NULL,0},
++ {NULL,0},
++ {NULL,0},
++ {NULL,0},
++ {&quot;break&quot;, BREAK_TOKEN},
++ {NULL,0},
++ {&quot;do_while&quot;, DOWHILE_TOKEN},
++ {NULL,0},
++ {&quot;shl&quot;, SHL_TOKEN},
++ {&quot;else&quot;, ELSE_TOKEN},
++ {&quot;and&quot;, AND_TOKEN},
++ {&quot;orelse&quot;, ORELSE_TOKEN},
++ {&quot;private&quot;, PRIVATE_TOKEN},
++ {NULL,0},
++ {&quot;if&quot;, IF_TOKEN},
++ {&quot;for&quot;, FOR_TOKEN},
++ {&quot;!if&quot;, IFNOT_TOKEN},
++ {NULL,0},
++ {&quot;_for&quot;, _FOR_TOKEN},
++ {&quot;forever&quot;, FOREVER_TOKEN},
++ {NULL,0},
++ {NULL,0},
++ {NULL,0},
++ {&quot;abs&quot;, ABS_TOKEN},
++ {&quot;case&quot;, CASE_TOKEN},
++ {NULL,0},
++ {&quot;static&quot;, STATIC_TOKEN},
++ {&quot;define&quot;, DEFINE_TOKEN},
++ {NULL,0},
++ {NULL,0},
++ {NULL,0},
++ {NULL,0},
++ {NULL,0},
++ {NULL,0},
++ {NULL,0},
++ {&quot;typedef&quot;, TYPEDEF_TOKEN},
++ {NULL,0},
++ {NULL,0},
++ {NULL,0},
++ {NULL,0},
++ {NULL,0},
++ {NULL,0},
++ {NULL,0},
++ {NULL,0},
++ {NULL,0},
++ {NULL,0},
++ {NULL,0},
++ {NULL,0},
++ {NULL,0},
++ {NULL,0},
++ {NULL,0},
++ {NULL,0},
++ {NULL,0},
++ {NULL,0},
++ {NULL,0},
++ {NULL,0},
++ {NULL,0},
++ {NULL,0},
++ {NULL,0},
++ {NULL,0},
++ {NULL,0},
++ {&quot;foreach&quot;, FOREACH_TOKEN},
++ {&quot;andelse&quot;, ANDELSE_TOKEN},
++ {NULL,0},
++ {NULL,0},
++ {NULL,0},
++ {NULL,0},
++ {NULL,0},
++ {NULL,0},
++ {NULL,0},
++ {NULL,0},
++ {NULL,0},
++ {NULL,0},
++ {NULL,0},
++ {NULL,0},
++ {&quot;variable&quot;, VARIABLE_TOKEN},
++};
++
++static Keyword_Table_Type *is_keyword (char *str, unsigned int len)
++{
++ unsigned int hash;
++ char *name;
++ Keyword_Table_Type *kw;
++
++ if ((len &lt; MIN_KEYWORD_LEN)
++ || (len &gt; MAX_KEYWORD_LEN))
++ return NULL;
++
++ hash = keyword_hash (str, len);
++ if ((hash &gt; MAX_HASH_VALUE) || (hash &lt; MIN_HASH_VALUE))
++ return NULL;
++
++ kw = &amp;Keyword_Table[hash - MIN_HASH_VALUE];
++ if ((NULL != (name = kw-&gt;name))
++ &amp;&amp; (*str == *name)
++ &amp;&amp; (0 == strcmp (str, name)))
++ return kw;
++ return NULL;
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/slang/keywhash.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1slangslfeath">Added: drakx/trunk/mdk-stage1/slang/sl-feat.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/slang/sl-feat.h (rev 0)
++++ drakx/trunk/mdk-stage1/slang/sl-feat.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,60 @@
++/* Setting this to 1 enables automatic support for associative arrays.
++ * If this is set to 0, an application must explicitly enable associative
++ * array support via SLang_init_slassoc.
++ */
++#define SLANG_HAS_ASSOC_ARRAYS 1
++
++#define SLANG_HAS_COMPLEX 1
++#define SLANG_HAS_FLOAT 1
++
++/* This is the old space-speed trade off. To reduce memory usage and code
++ * size, set this to zero.
++ */
++#define _SLANG_OPTIMIZE_FOR_SPEED 2
++
++#define _SLANG_USE_INLINE_CODE 1
++
++/* This is experimental. It adds extra information for tracking down
++ * errors.
++ */
++#define _SLANG_HAS_DEBUG_CODE 1
++
++/* Allow optimizations based upon the __tmp operator. */
++#define _SLANG_USE_TMP_OPTIMIZATION 1
++
++/* Setting this to one will map 8 bit vtxxx terminals to 7 bit. Terminals
++ * such as the vt320 can be set up to output the two-character escape sequence
++ * encoded as 'ESC [' as single character. Setting this variable to 1 will
++ * insert code to map such characters to the 7 bit equivalent.
++ * This affects just input characters in the range 128-160 on non PC
++ * systems.
++ */
++#if defined(VMS) || defined(AMIGA)
++# define _SLANG_MAP_VTXXX_8BIT 1
++#else
++# define _SLANG_MAP_VTXXX_8BIT 0
++#endif
++
++/* Add support for color terminals that cannot do background color erases
++ * Such terminals are poorly designed and are slowly disappearing but they
++ * are still quite common. For example, screen is one of them!
++ *
++ * This is experimental. In particular, it is not known to work if
++ * KANJI suupport is enabled.
++ */
++#if !defined(IBMPC_SYSTEM)
++# define SLTT_HAS_NON_BCE_SUPPORT 1
++#else
++# define SLTT_HAS_NON_BCE_SUPPORT 0
++#endif
++
++/* If you want slang to assume that an xterm always has the background color
++ * erase feature, then set this to 1. Otherwise, it will check the terminfo
++ * database. This may or may not be a good idea since most good color xterms
++ * support bce but many terminfo systems do not support it.
++ */
++#define SLTT_XTERM_ALWAYS_BCE 0
++
++/* Set this to 1 to enable Kanji support. See above comment. */
++#define SLANG_HAS_KANJI_SUPPORT 0
++
+
+
+Property changes on: drakx/trunk/mdk-stage1/slang/sl-feat.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1slangslangc">Added: drakx/trunk/mdk-stage1/slang/slang.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/slang/slang.c (rev 0)
++++ drakx/trunk/mdk-stage1/slang/slang.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,5547 @@
++/* -*- mode: C; mode: fold; -*- */
++/* slang.c --- guts of S-Lang interpreter */
++/* Copyright (c) 1992, 1999, 2001 John E. Davis
++ * This file is part of the S-Lang library.
++ *
++ * You may distribute under the terms of either the GNU General Public
++ * License or the Perl Artistic License.
++ */
++
++#include &quot;slinclud.h&quot;
++
++#if SLANG_HAS_FLOAT
++# include &lt;math.h&gt;
++#endif
++
++#include &quot;slang.h&quot;
++#include &quot;_slang.h&quot;
++
++#define USE_COMBINED_BYTECODES 0
++
++struct _SLBlock_Type;
++
++typedef struct
++{
++ struct _SLBlock_Type *body;
++ unsigned int num_refs;
++}
++_SLBlock_Header_Type;
++
++typedef struct
++{
++ char *name;
++ SLang_Name_Type *next;
++ char name_type;
++
++ union
++ {
++ _SLBlock_Header_Type *header; /* body of function */
++ char *autoload_filename;
++ }
++ v;
++#if _SLANG_HAS_DEBUG_CODE
++ char *file;
++#endif
++#define SLANG_MAX_LOCAL_VARIABLES 254
++#define AUTOLOAD_NUM_LOCALS (SLANG_MAX_LOCAL_VARIABLES + 1)
++ unsigned char nlocals; /* number of local variables */
++ unsigned char nargs; /* number of arguments */
++}
++_SLang_Function_Type;
++
++typedef struct
++{
++ char *name;
++ SLang_Name_Type *next;
++ char name_type;
++
++ SLang_Object_Type obj;
++}
++SLang_Global_Var_Type;
++
++typedef struct
++{
++ char *name;
++ SLang_Name_Type *next;
++ char name_type;
++
++ int local_var_number;
++}
++SLang_Local_Var_Type;
++
++typedef struct _SLBlock_Type
++{
++ unsigned char bc_main_type;
++ unsigned char bc_sub_type;
++ union
++ {
++ struct _SLBlock_Type *blk;
++ int i_blk;
++
++ SLang_Name_Type *nt_blk;
++ SLang_App_Unary_Type *nt_unary_blk;
++ SLang_Intrin_Var_Type *nt_ivar_blk;
++ SLang_Intrin_Fun_Type *nt_ifun_blk;
++ SLang_Global_Var_Type *nt_gvar_blk;
++ SLang_IConstant_Type *iconst_blk;
++ SLang_DConstant_Type *dconst_blk;
++ _SLang_Function_Type *nt_fun_blk;
++
++ VOID_STAR ptr_blk;
++ char *s_blk;
++ SLang_BString_Type *bs_blk;
++
++#if SLANG_HAS_FLOAT
++ double *double_blk; /*literal double is a pointer */
++#endif
++ float float_blk;
++ long l_blk;
++ struct _SLang_Struct_Type *struct_blk;
++ int (*call_function)(void);
++ }
++ b;
++}
++SLBlock_Type;
++
++/* Debugging and tracing variables */
++
++void (*SLang_Enter_Function)(char *) = NULL;
++void (*SLang_Exit_Function)(char *) = NULL;
++/* If non null, these call C functions before and after a slang function. */
++
++int _SLang_Trace = 0;
++/* If _SLang_Trace = -1, do not trace intrinsics */
++static int Trace_Mode = 0;
++
++static char *Trace_Function; /* function to be traced */
++int SLang_Traceback = 0;
++/* non zero means do traceback. If less than 0, do not show local variables */
++
++/* These variables handle _NARGS processing by the parser */
++int SLang_Num_Function_Args;
++static int *Num_Args_Stack;
++static unsigned int Recursion_Depth;
++static SLang_Object_Type *Frame_Pointer;
++static int Next_Function_Num_Args;
++static unsigned int Frame_Pointer_Depth;
++static unsigned int *Frame_Pointer_Stack;
++
++static int Lang_Break_Condition = 0;
++/* true if any one below is true. This keeps us from testing 3 variables.
++ * I know this can be perfomed with a bitmapped variable, but...
++ */
++static int Lang_Break = 0;
++static int Lang_Return = 0;
++/* static int Lang_Continue = 0; */
++
++SLang_Object_Type *_SLRun_Stack;
++SLang_Object_Type *_SLStack_Pointer;
++static SLang_Object_Type *_SLStack_Pointer_Max;
++
++/* Might want to increase this. */
++static SLang_Object_Type Local_Variable_Stack[SLANG_MAX_LOCAL_STACK];
++static SLang_Object_Type *Local_Variable_Frame = Local_Variable_Stack;
++
++static void free_function_header (_SLBlock_Header_Type *);
++
++void (*SLang_Dump_Routine)(char *);
++
++static void call_dump_routine (char *fmt, ...)
++{
++ char buf[1024];
++ va_list ap;
++
++ va_start (ap, fmt);
++ if (SLang_Dump_Routine != NULL)
++ {
++ (void) _SLvsnprintf (buf, sizeof (buf), fmt, ap);
++ (*SLang_Dump_Routine) (buf);
++ }
++ else
++ {
++ vfprintf (stderr, fmt, ap);
++ fflush (stderr);
++ }
++ va_end (ap);
++}
++
++static void do_traceback (char *, unsigned int, char *);
++static int init_interpreter (void);
++
++/*{{{ push/pop/etc stack manipulation functions */
++
++/* This routine is assumed to work even in the presence of a SLang_Error. */
++_INLINE_
++int SLang_pop (SLang_Object_Type *x)
++{
++ register SLang_Object_Type *y;
++
++ y = _SLStack_Pointer;
++ if (y == _SLRun_Stack)
++ {
++ if (SLang_Error == 0) SLang_Error = SL_STACK_UNDERFLOW;
++ x-&gt;data_type = 0;
++ return -1;
++ }
++ y--;
++ *x = *y;
++
++ _SLStack_Pointer = y;
++ return 0;
++}
++
++static int pop_ctrl_integer (int *i)
++{
++ int type;
++ SLang_Class_Type *cl;
++#if _SLANG_OPTIMIZE_FOR_SPEED
++ register SLang_Object_Type *y;
++
++ /* Most of the time, either an integer or a char will be on the stack.
++ * Optimize these cases.
++ */
++ y = _SLStack_Pointer;
++ if (y == _SLRun_Stack)
++ {
++ if (SLang_Error == 0) SLang_Error = SL_STACK_UNDERFLOW;
++ return -1;
++ }
++ y--;
++
++ type = y-&gt;data_type;
++ if (type == SLANG_INT_TYPE)
++ {
++ _SLStack_Pointer = y;
++ *i = y-&gt;v.int_val;
++ return 0;
++ }
++ if (type == SLANG_CHAR_TYPE)
++ {
++ _SLStack_Pointer = y;
++ *i = y-&gt;v.char_val;
++ return 0;
++ }
++#else
++ if (-1 == (type = SLang_peek_at_stack ()))
++ return -1;
++#endif
++
++ cl = _SLclass_get_class ((unsigned char) type);
++ if (cl-&gt;cl_to_bool == NULL)
++ {
++ SLang_verror (SL_TYPE_MISMATCH,
++ &quot;%s cannot be used in a boolean context&quot;,
++ cl-&gt;cl_name);
++ return -1;
++ }
++ return cl-&gt;cl_to_bool ((unsigned char) type, i);
++}
++
++_INLINE_
++int SLang_peek_at_stack (void)
++{
++ if (_SLStack_Pointer == _SLRun_Stack)
++ {
++ if (SLang_Error == 0)
++ SLang_Error = SL_STACK_UNDERFLOW;
++ return -1;
++ }
++
++ return (_SLStack_Pointer - 1)-&gt;data_type;
++}
++
++int SLang_peek_at_stack1 (void)
++{
++ int type;
++
++ type = SLang_peek_at_stack ();
++ if (type == SLANG_ARRAY_TYPE)
++ type = (_SLStack_Pointer - 1)-&gt;v.array_val-&gt;data_type;
++
++ return type;
++}
++
++_INLINE_
++void SLang_free_object (SLang_Object_Type *obj)
++{
++ unsigned char data_type;
++ SLang_Class_Type *cl;
++
++ if (obj == NULL) return;
++ data_type = obj-&gt;data_type;
++#if _SLANG_OPTIMIZE_FOR_SPEED
++ if (SLANG_CLASS_TYPE_SCALAR == _SLclass_Class_Type [data_type])
++ return;
++ if (data_type == SLANG_STRING_TYPE)
++ {
++ SLang_free_slstring (obj-&gt;v.s_val);
++ return;
++ }
++#endif
++ cl = _SLclass_get_class (data_type);
++#if !_SLANG_OPTIMIZE_FOR_SPEED
++ if (cl-&gt;cl_class_type != SLANG_CLASS_TYPE_SCALAR)
++#endif
++ (*cl-&gt;cl_destroy) (data_type, (VOID_STAR) &amp;obj-&gt;v);
++}
++
++_INLINE_
++int SLang_push (SLang_Object_Type *x)
++{
++ register SLang_Object_Type *y;
++ y = _SLStack_Pointer;
++
++ /* if there is a SLang_Error, probably not much harm will be done
++ if it is ignored here */
++ /* if (SLang_Error) return; */
++
++ /* flag it now */
++ if (y &gt;= _SLStack_Pointer_Max)
++ {
++ if (!SLang_Error) SLang_Error = SL_STACK_OVERFLOW;
++ return -1;
++ }
++
++ *y = *x;
++ _SLStack_Pointer = y + 1;
++ return 0;
++}
++
++/* _INLINE_ */
++int SLclass_push_ptr_obj (unsigned char type, VOID_STAR pval)
++{
++ register SLang_Object_Type *y;
++ y = _SLStack_Pointer;
++
++ if (y &gt;= _SLStack_Pointer_Max)
++ {
++ if (!SLang_Error) SLang_Error = SL_STACK_OVERFLOW;
++ return -1;
++ }
++
++ y-&gt;data_type = type;
++ y-&gt;v.ptr_val = pval;
++
++ _SLStack_Pointer = y + 1;
++ return 0;
++}
++
++_INLINE_
++int SLclass_push_int_obj (unsigned char type, int x)
++{
++ register SLang_Object_Type *y;
++ y = _SLStack_Pointer;
++
++ if (y &gt;= _SLStack_Pointer_Max)
++ {
++ if (!SLang_Error) SLang_Error = SL_STACK_OVERFLOW;
++ return -1;
++ }
++
++ y-&gt;data_type = type;
++ y-&gt;v.int_val = x;
++
++ _SLStack_Pointer = y + 1;
++ return 0;
++}
++
++_INLINE_
++int _SLang_pop_object_of_type (unsigned char type, SLang_Object_Type *obj,
++ int allow_arrays)
++{
++ register SLang_Object_Type *y;
++
++ y = _SLStack_Pointer;
++ if (y == _SLRun_Stack)
++ return SLang_pop (obj);
++ y--;
++ if (y-&gt;data_type != type)
++ {
++#if _SLANG_OPTIMIZE_FOR_SPEED
++ /* This is an implicit typecast. We do not want to typecast
++ * floats to ints implicitly.
++ */
++ if (_SLarith_Is_Arith_Type [type]
++ &amp;&amp; _SLarith_Is_Arith_Type [y-&gt;data_type]
++ &amp;&amp; (_SLarith_Is_Arith_Type [type] &gt;= _SLarith_Is_Arith_Type[y-&gt;data_type]))
++ {
++ /* This should not fail */
++ (void) _SLarith_typecast (y-&gt;data_type, (VOID_STAR)&amp;y-&gt;v, 1,
++ type, (VOID_STAR)&amp;obj-&gt;v);
++ obj-&gt;data_type = type;
++ _SLStack_Pointer = y;
++ return 0;
++ }
++#endif
++
++ if ((allow_arrays == 0)
++ || (y-&gt;data_type != SLANG_ARRAY_TYPE)
++ || (y-&gt;v.array_val-&gt;data_type != type))
++ if (-1 == SLclass_typecast (type, 1, 0))
++ return -1;
++ }
++ *obj = *y;
++ _SLStack_Pointer = y;
++ return 0;
++}
++
++/* This function reverses the top n items on the stack and returns a
++ * an offset from the start of the stack to the last item.
++ */
++int SLreverse_stack (int n)
++{
++ SLang_Object_Type *otop, *obot, tmp;
++
++ otop = _SLStack_Pointer;
++ if ((n &gt; otop - _SLRun_Stack) || (n &lt; 0))
++ {
++ SLang_Error = SL_STACK_UNDERFLOW;
++ return -1;
++ }
++ obot = otop - n;
++ otop--;
++ while (otop &gt; obot)
++ {
++ tmp = *obot;
++ *obot = *otop;
++ *otop = tmp;
++ otop--;
++ obot++;
++ }
++ return (int) ((_SLStack_Pointer - n) - _SLRun_Stack);
++}
++
++_INLINE_
++int SLroll_stack (int np)
++{
++ int n, i;
++ SLang_Object_Type *otop, *obot, tmp;
++
++ if ((n = abs(np)) &lt;= 1) return 0; /* identity */
++
++ obot = otop = _SLStack_Pointer;
++ i = n;
++ while (i != 0)
++ {
++ if (obot &lt;= _SLRun_Stack)
++ {
++ SLang_Error = SL_STACK_UNDERFLOW;
++ return -1;
++ }
++ obot--;
++ i--;
++ }
++ otop--;
++
++ if (np &gt; 0)
++ {
++ /* Put top on bottom and roll rest up. */
++ tmp = *otop;
++ while (otop &gt; obot)
++ {
++ *otop = *(otop - 1);
++ otop--;
++ }
++ *otop = tmp;
++ }
++ else
++ {
++ /* Put bottom on top and roll rest down. */
++ tmp = *obot;
++ while (obot &lt; otop)
++ {
++ *obot = *(obot + 1);
++ obot++;
++ }
++ *obot = tmp;
++ }
++ return 0;
++}
++
++int _SLstack_depth (void)
++{
++ return (int) (_SLStack_Pointer - _SLRun_Stack);
++}
++
++int SLdup_n (int n)
++{
++ SLang_Object_Type *bot, *top;
++
++ if (n &lt;= 0)
++ return 0;
++
++ top = _SLStack_Pointer;
++ if (top &lt; _SLRun_Stack + n)
++ {
++ if (SLang_Error == 0)
++ SLang_Error = SL_STACK_UNDERFLOW;
++ return -1;
++ }
++ if (top + n &gt; _SLStack_Pointer_Max)
++ {
++ if (SLang_Error == 0)
++ SLang_Error = SL_STACK_OVERFLOW;
++ return -1;
++ }
++ bot = top - n;
++
++ while (bot &lt; top)
++ {
++ SLang_Class_Type *cl;
++ unsigned char data_type = bot-&gt;data_type;
++
++#if _SLANG_OPTIMIZE_FOR_SPEED
++ if (SLANG_CLASS_TYPE_SCALAR == _SLclass_Class_Type [data_type])
++ {
++ *_SLStack_Pointer++ = *bot++;
++ continue;
++ }
++#endif
++ cl = _SLclass_get_class (data_type);
++ if (-1 == (*cl-&gt;cl_push) (data_type, (VOID_STAR) &amp;bot-&gt;v))
++ return -1;
++ bot++;
++ }
++ return 0;
++}
++
++/*}}}*/
++
++/*{{{ inner interpreter and support functions */
++
++_INLINE_
++int _SL_increment_frame_pointer (void)
++{
++ if (Recursion_Depth &gt;= SLANG_MAX_RECURSIVE_DEPTH)
++ {
++ SLang_verror (SL_STACK_OVERFLOW, &quot;Num Args Stack Overflow&quot;);
++ return -1;
++ }
++ Num_Args_Stack [Recursion_Depth] = SLang_Num_Function_Args;
++
++ SLang_Num_Function_Args = Next_Function_Num_Args;
++ Next_Function_Num_Args = 0;
++ Recursion_Depth++;
++ return 0;
++}
++
++_INLINE_
++int _SL_decrement_frame_pointer (void)
++{
++ if (Recursion_Depth == 0)
++ {
++ SLang_verror (SL_STACK_UNDERFLOW, &quot;Num Args Stack Underflow&quot;);
++ return -1;
++ }
++
++ Recursion_Depth--;
++ if (Recursion_Depth &lt; SLANG_MAX_RECURSIVE_DEPTH)
++ SLang_Num_Function_Args = Num_Args_Stack [Recursion_Depth];
++
++ return 0;
++}
++
++_INLINE_
++int SLang_start_arg_list (void)
++{
++ if (Frame_Pointer_Depth &lt; SLANG_MAX_RECURSIVE_DEPTH)
++ {
++ Frame_Pointer_Stack [Frame_Pointer_Depth] = (unsigned int) (Frame_Pointer - _SLRun_Stack);
++ Frame_Pointer = _SLStack_Pointer;
++ Frame_Pointer_Depth++;
++ Next_Function_Num_Args = 0;
++ return 0;
++ }
++
++ SLang_verror (SL_STACK_OVERFLOW, &quot;Frame Stack Overflow&quot;);
++ return -1;
++}
++
++_INLINE_
++int SLang_end_arg_list (void)
++{
++ if (Frame_Pointer_Depth == 0)
++ {
++ SLang_verror (SL_STACK_UNDERFLOW, &quot;Frame Stack Underflow&quot;);
++ return -1;
++ }
++ Frame_Pointer_Depth--;
++ if (Frame_Pointer_Depth &lt; SLANG_MAX_RECURSIVE_DEPTH)
++ {
++ Next_Function_Num_Args = (int) (_SLStack_Pointer - Frame_Pointer);
++ Frame_Pointer = _SLRun_Stack + Frame_Pointer_Stack [Frame_Pointer_Depth];
++ }
++ return 0;
++}
++
++_INLINE_
++static int do_bc_call_direct_frame (int (*f)(void))
++{
++ if ((0 == SLang_end_arg_list ())
++ &amp;&amp; (0 == _SL_increment_frame_pointer ()))
++ {
++ (void) (*f) ();
++ _SL_decrement_frame_pointer ();
++ }
++ if (SLang_Error)
++ return -1;
++ return 0;
++}
++
++static int do_name_type_error (SLang_Name_Type *nt)
++{
++ char buf[256];
++ if (nt != NULL)
++ {
++ (void) _SLsnprintf (buf, sizeof (buf), &quot;(Error occurred processing %s)&quot;, nt-&gt;name);
++ do_traceback (buf, 0, NULL);
++ }
++ return -1;
++}
++
++/* local and global variable assignments */
++
++static int do_binary_ab (int op, SLang_Object_Type *obja, SLang_Object_Type *objb)
++{
++ SLang_Class_Type *a_cl, *b_cl, *c_cl;
++ unsigned char b_data_type, a_data_type, c_data_type;
++ int (*binary_fun) (int,
++ unsigned char, VOID_STAR, unsigned int,
++ unsigned char, VOID_STAR, unsigned int,
++ VOID_STAR);
++ VOID_STAR pa;
++ VOID_STAR pb;
++ VOID_STAR pc;
++ int ret;
++
++ b_data_type = objb-&gt;data_type;
++ a_data_type = obja-&gt;data_type;
++
++#if _SLANG_OPTIMIZE_FOR_SPEED
++ if (_SLarith_Is_Arith_Type[a_data_type]
++ &amp;&amp; _SLarith_Is_Arith_Type[b_data_type])
++ {
++ int status;
++ status = _SLarith_bin_op (obja, objb, op);
++ if (status != 1)
++ return status;
++ /* drop and try it the hard way */
++ }
++#endif
++
++ a_cl = _SLclass_get_class (a_data_type);
++ if (a_data_type == b_data_type)
++ b_cl = a_cl;
++ else
++ b_cl = _SLclass_get_class (b_data_type);
++
++ if (NULL == (binary_fun = _SLclass_get_binary_fun (op, a_cl, b_cl, &amp;c_cl, 1)))
++ return -1;
++
++ c_data_type = c_cl-&gt;cl_data_type;
++
++#if _SLANG_OPTIMIZE_FOR_SPEED
++ if (SLANG_CLASS_TYPE_SCALAR == _SLclass_Class_Type [a_data_type])
++ pa = (VOID_STAR) &amp;obja-&gt;v;
++ else
++#endif
++ pa = _SLclass_get_ptr_to_value (a_cl, obja);
++
++#if _SLANG_OPTIMIZE_FOR_SPEED
++ if (SLANG_CLASS_TYPE_SCALAR == _SLclass_Class_Type [b_data_type])
++ pb = (VOID_STAR) &amp;objb-&gt;v;
++ else
++#endif
++ pb = _SLclass_get_ptr_to_value (b_cl, objb);
++
++ pc = c_cl-&gt;cl_transfer_buf;
++
++ if (1 != (*binary_fun) (op,
++ a_data_type, pa, 1,
++ b_data_type, pb, 1,
++ pc))
++ {
++ SLang_verror (SL_NOT_IMPLEMENTED,
++ &quot;Binary operation between %s and %s failed&quot;,
++ a_cl-&gt;cl_name, b_cl-&gt;cl_name);
++
++ return -1;
++ }
++
++ /* apush will create a copy, so make sure we free after the push */
++ ret = (*c_cl-&gt;cl_apush)(c_data_type, pc);
++#if _SLANG_OPTIMIZE_FOR_SPEED
++ if (SLANG_CLASS_TYPE_SCALAR != _SLclass_Class_Type [c_data_type])
++#endif
++ (*c_cl-&gt;cl_adestroy)(c_data_type, pc);
++
++ return ret;
++}
++
++_INLINE_
++static void do_binary (int op)
++{
++ SLang_Object_Type obja, objb;
++
++ if (SLang_pop (&amp;objb)) return;
++ if (0 == SLang_pop (&amp;obja))
++ {
++ (void) do_binary_ab (op, &amp;obja, &amp;objb);
++#if _SLANG_OPTIMIZE_FOR_SPEED
++ if (SLANG_CLASS_TYPE_SCALAR != _SLclass_Class_Type [obja.data_type])
++#endif
++ SLang_free_object (&amp;obja);
++ }
++#if _SLANG_OPTIMIZE_FOR_SPEED
++ if (SLANG_CLASS_TYPE_SCALAR != _SLclass_Class_Type [objb.data_type])
++#endif
++ SLang_free_object (&amp;objb);
++}
++
++static int do_unary_op (int op, SLang_Object_Type *obj, int unary_type)
++{
++ int (*f) (int, unsigned char, VOID_STAR, unsigned int, VOID_STAR);
++ VOID_STAR pa;
++ VOID_STAR pb;
++ SLang_Class_Type *a_cl, *b_cl;
++ unsigned char a_type, b_type;
++ int ret;
++
++ a_type = obj-&gt;data_type;
++ a_cl = _SLclass_get_class (a_type);
++
++ if (NULL == (f = _SLclass_get_unary_fun (op, a_cl, &amp;b_cl, unary_type)))
++ return -1;
++
++ b_type = b_cl-&gt;cl_data_type;
++
++#if _SLANG_OPTIMIZE_FOR_SPEED
++ if (SLANG_CLASS_TYPE_SCALAR == _SLclass_Class_Type [a_type])
++ pa = (VOID_STAR) &amp;obj-&gt;v;
++ else
++#endif
++ pa = _SLclass_get_ptr_to_value (a_cl, obj);
++
++ pb = b_cl-&gt;cl_transfer_buf;
++
++ if (1 != (*f) (op, a_type, pa, 1, pb))
++ {
++ SLang_verror (SL_NOT_IMPLEMENTED,
++ &quot;Unary operation for %s failed&quot;, a_cl-&gt;cl_name);
++ return -1;
++ }
++
++ ret = (*b_cl-&gt;cl_apush)(b_type, pb);
++ /* cl_apush creates a copy, so make sure we call cl_adestroy */
++#if _SLANG_OPTIMIZE_FOR_SPEED
++ if (SLANG_CLASS_TYPE_SCALAR != _SLclass_Class_Type [b_type])
++#endif
++ (*b_cl-&gt;cl_adestroy)(b_type, pb);
++
++ return ret;
++}
++
++_INLINE_
++static int do_unary (int op, int unary_type)
++{
++ SLang_Object_Type obj;
++ int ret;
++
++ if (-1 == SLang_pop (&amp;obj)) return -1;
++ ret = do_unary_op (op, &amp;obj, unary_type);
++#if _SLANG_OPTIMIZE_FOR_SPEED
++ if (SLANG_CLASS_TYPE_SCALAR != _SLclass_Class_Type [obj.data_type])
++#endif
++ SLang_free_object (&amp;obj);
++ return ret;
++}
++
++static int do_assignment_binary (int op, SLang_Object_Type *obja_ptr)
++{
++ SLang_Object_Type objb;
++ int ret;
++
++ if (SLang_pop (&amp;objb))
++ return -1;
++
++ ret = do_binary_ab (op, obja_ptr, &amp;objb);
++#if _SLANG_OPTIMIZE_FOR_SPEED
++ if (SLANG_CLASS_TYPE_SCALAR != _SLclass_Class_Type [objb.data_type])
++#endif
++ SLang_free_object (&amp;objb);
++ return ret;
++}
++
++/* The order of these is assumed to match the binary operators
++ * defined in slang.h
++ */
++static int
++map_assignment_op_to_binary (unsigned char op_type, int *op, int *is_unary)
++{
++ *is_unary = 0;
++ switch (op_type)
++ {
++ case _SLANG_BCST_PLUSEQS:
++ case _SLANG_BCST_MINUSEQS:
++ case _SLANG_BCST_TIMESEQS:
++ case _SLANG_BCST_DIVEQS:
++ *op = SLANG_PLUS + (op_type - _SLANG_BCST_PLUSEQS);
++ break;
++
++ case _SLANG_BCST_BOREQS:
++ *op = SLANG_BOR;
++ break;
++
++ case _SLANG_BCST_BANDEQS:
++ *op = SLANG_BAND;
++ break;
++
++ case _SLANG_BCST_POST_MINUSMINUS:
++ case _SLANG_BCST_MINUSMINUS:
++ *op = SLANG_MINUS;
++ *is_unary = 1;
++ break;
++
++ case _SLANG_BCST_PLUSPLUS:
++ case _SLANG_BCST_POST_PLUSPLUS:
++ *op = SLANG_PLUS;
++ *is_unary = 1;
++ break;
++
++ default:
++ SLang_verror (SL_NOT_IMPLEMENTED, &quot;Assignment operator not implemented&quot;);
++ return -1;
++ }
++ return 0;
++}
++
++static int
++perform_lvalue_operation (unsigned char op_type, SLang_Object_Type *obja_ptr)
++{
++ switch (op_type)
++ {
++ case _SLANG_BCST_ASSIGN:
++ break;
++
++ /* The order of these is assumed to match the binary operators
++ * defined in slang.h
++ */
++ case _SLANG_BCST_PLUSEQS:
++ case _SLANG_BCST_MINUSEQS:
++ case _SLANG_BCST_TIMESEQS:
++ case _SLANG_BCST_DIVEQS:
++ if (-1 == do_assignment_binary (SLANG_PLUS + (op_type - _SLANG_BCST_PLUSEQS), obja_ptr))
++ return -1;
++ break;
++
++ case _SLANG_BCST_BOREQS:
++ if (-1 == do_assignment_binary (SLANG_BOR, obja_ptr))
++ return -1;
++ break;
++
++ case _SLANG_BCST_BANDEQS:
++ if (-1 == do_assignment_binary (SLANG_BAND, obja_ptr))
++ return -1;
++ break;
++
++ case _SLANG_BCST_PLUSPLUS:
++ case _SLANG_BCST_POST_PLUSPLUS:
++#if _SLANG_OPTIMIZE_FOR_SPEED
++ if (obja_ptr-&gt;data_type == SLANG_INT_TYPE)
++ return SLclass_push_int_obj (SLANG_INT_TYPE, obja_ptr-&gt;v.int_val + 1);
++#endif
++ if (-1 == do_unary_op (SLANG_PLUSPLUS, obja_ptr, _SLANG_BC_UNARY))
++ return -1;
++ break;
++
++ case _SLANG_BCST_MINUSMINUS:
++ case _SLANG_BCST_POST_MINUSMINUS:
++#if _SLANG_OPTIMIZE_FOR_SPEED
++ if (obja_ptr-&gt;data_type == SLANG_INT_TYPE)
++ return SLclass_push_int_obj (SLANG_INT_TYPE, obja_ptr-&gt;v.int_val - 1);
++#endif
++ if (-1 == do_unary_op (SLANG_MINUSMINUS, obja_ptr, _SLANG_BC_UNARY))
++ return -1;
++ break;
++
++ default:
++ SLang_Error = SL_INTERNAL_ERROR;
++ return -1;
++ }
++ return 0;
++}
++
++_INLINE_
++static int
++set_lvalue_obj (unsigned char op_type, SLang_Object_Type *obja_ptr)
++{
++ if (op_type != _SLANG_BCST_ASSIGN)
++ {
++ if (-1 == perform_lvalue_operation (op_type, obja_ptr))
++ return -1;
++ }
++#if _SLANG_OPTIMIZE_FOR_SPEED
++ if (SLANG_CLASS_TYPE_SCALAR != _SLclass_Class_Type [obja_ptr-&gt;data_type])
++#endif
++ SLang_free_object (obja_ptr);
++
++ return SLang_pop(obja_ptr);
++}
++
++static int
++set_struct_lvalue (SLBlock_Type *bc_blk)
++{
++ int type;
++ SLang_Class_Type *cl;
++ char *name;
++ int op;
++
++ if (-1 == (type = SLang_peek_at_stack ()))
++ return -1;
++
++ cl = _SLclass_get_class (type);
++ if ((cl-&gt;cl_sput == NULL)
++ || (cl-&gt;cl_sget == NULL))
++ {
++ SLang_verror (SL_NOT_IMPLEMENTED,
++ &quot;%s does not support structure access&quot;,
++ cl-&gt;cl_name);
++ SLdo_pop_n (2); /* object plus what was to be assigned */
++ return -1;
++ }
++ name = bc_blk-&gt;b.s_blk;
++ op = bc_blk-&gt;bc_sub_type;
++
++ if (op != _SLANG_BCST_ASSIGN)
++ {
++ /* We have something like (A.x += b) or (A.x++). In either case,
++ * we need A.x.
++ */
++ SLang_Object_Type obj_A;
++ SLang_Object_Type obj;
++
++ if (-1 == SLang_pop (&amp;obj_A))
++ return -1;
++
++ if ((-1 == _SLpush_slang_obj (&amp;obj_A))
++ || (-1 == cl-&gt;cl_sget ((unsigned char) type, name))
++ || (-1 == SLang_pop (&amp;obj)))
++ {
++ SLang_free_object (&amp;obj_A);
++ return -1;
++ }
++ /* Now the value of A.x is in obj. */
++ if (-1 == perform_lvalue_operation (op, &amp;obj))
++ {
++ SLang_free_object (&amp;obj);
++ SLang_free_object (&amp;obj_A);
++ return -1;
++ }
++ SLang_free_object (&amp;obj);
++ /* The result of the operation is now on the stack.
++ * Perform assignment */
++ if (-1 == SLang_push (&amp;obj_A))
++ {
++ SLang_free_object (&amp;obj_A);
++ return -1;
++ }
++ }
++
++ return (*cl-&gt;cl_sput) ((unsigned char) type, name);
++}
++
++static int make_unit_object (SLang_Object_Type *a, SLang_Object_Type *u)
++{
++ unsigned char type;
++
++ type = a-&gt;data_type;
++ if (type == SLANG_ARRAY_TYPE)
++ type = a-&gt;v.array_val-&gt;data_type;
++
++ u-&gt;data_type = type;
++ switch (type)
++ {
++ case SLANG_UCHAR_TYPE:
++ case SLANG_CHAR_TYPE:
++ u-&gt;v.char_val = 1;
++ break;
++
++ case SLANG_SHORT_TYPE:
++ case SLANG_USHORT_TYPE:
++ u-&gt;v.short_val = 1;
++ break;
++
++ case SLANG_LONG_TYPE:
++ case SLANG_ULONG_TYPE:
++ u-&gt;v.long_val = 1;
++ break;
++
++#if SLANG_HAS_FLOAT
++ case SLANG_FLOAT_TYPE:
++ u-&gt;v.float_val = 1;
++ break;
++
++ case SLANG_COMPLEX_TYPE:
++ u-&gt;data_type = SLANG_DOUBLE_TYPE;
++ case SLANG_DOUBLE_TYPE:
++ u-&gt;v.double_val = 1;
++ break;
++#endif
++ default:
++ u-&gt;data_type = SLANG_INT_TYPE;
++ u-&gt;v.int_val = 1;
++ }
++ return 0;
++}
++
++
++/* We want to convert 'A[i] op X' to 'A[i] = A[i] op X'. The code that
++ * has been generated is: X __args i A __aput-op
++ * where __aput-op represents this function. We need to generate:
++ * __args i A __eargs __aget X op __args i A __eargs __aput
++ * Here, __eargs implies a call to do_bc_call_direct_frame with either
++ * the aput or aget function. In addition, __args represents a call to
++ * SLang_start_arg_list. Of course, i represents a set of indices.
++ *
++ * Note: If op is an unary operation (e.g., ++ or --), then X will not
++ * b present an will have to be taken to be 1.
++ *
++ * Implementation note: For efficiency, calls to setup the frame, start
++ * arg list will be omitted and SLang_Num_Function_Args will be set.
++ * This is ugly but the alternative is much less efficient rendering these
++ * assignment operators useless. So, the plan is to roll the stack to get X,
++ * then duplicate the next N values, call __aget followed by op X, finally
++ * calling __aput. Hence, the sequence is:
++ *
++ * start: X i .. j A
++ * dupN: X i .. j A i .. j A
++ * __aget: X i .. j A Y
++ * roll: i .. j A Y X
++ * op: i .. j A Z
++ * roll: Z i .. j A
++ * __aput:
++ */
++static int
++set_array_lvalue (int op)
++{
++ SLang_Object_Type x, y;
++ int num_args, is_unary;
++
++ if (-1 == map_assignment_op_to_binary (op, &amp;op, &amp;is_unary))
++ return -1;
++
++ /* Grab the indices and the array. Do not start a new frame. */
++ if (-1 == SLang_end_arg_list ())
++ return -1;
++ num_args = Next_Function_Num_Args;
++ Next_Function_Num_Args = 0;
++
++ if (-1 == SLdup_n (num_args))
++ return -1;
++
++ SLang_Num_Function_Args = num_args;
++ if (-1 == _SLarray_aget ())
++ return -1;
++
++ if (-1 == SLang_pop (&amp;y))
++ return -1;
++
++ if (is_unary == 0)
++ {
++ if ((-1 == SLroll_stack (-(num_args + 1)))
++ || (-1 == SLang_pop (&amp;x)))
++ {
++ SLang_free_object (&amp;y);
++ return -1;
++ }
++ }
++ else if (-1 == make_unit_object (&amp;y, &amp;x))
++ {
++ SLang_free_object (&amp;y);
++ return -1;
++ }
++
++ if (-1 == do_binary_ab (op, &amp;y, &amp;x))
++ {
++ SLang_free_object (&amp;y);
++ SLang_free_object (&amp;x);
++ return -1;
++ }
++#if _SLANG_OPTIMIZE_FOR_SPEED
++ if (SLANG_CLASS_TYPE_SCALAR != _SLclass_Class_Type [y.data_type])
++#endif
++ SLang_free_object (&amp;y);
++
++#if _SLANG_OPTIMIZE_FOR_SPEED
++ if (SLANG_CLASS_TYPE_SCALAR != _SLclass_Class_Type [x.data_type])
++#endif
++ SLang_free_object (&amp;x);
++
++ if (-1 == SLroll_stack (num_args + 1))
++ return -1;
++
++ SLang_Num_Function_Args = num_args;
++ return _SLarray_aput ();
++}
++
++
++static int
++set_intrin_lvalue (SLBlock_Type *bc_blk)
++{
++ unsigned char op_type;
++ SLang_Object_Type obja;
++ SLang_Class_Type *cl;
++ SLang_Intrin_Var_Type *ivar;
++ VOID_STAR intrinsic_addr;
++ unsigned char intrinsic_type;
++
++ ivar = bc_blk-&gt;b.nt_ivar_blk;
++
++ intrinsic_type = ivar-&gt;type;
++ intrinsic_addr = ivar-&gt;addr;
++
++ op_type = bc_blk-&gt;bc_sub_type;
++
++ cl = _SLclass_get_class (intrinsic_type);
++
++ if (op_type != _SLANG_BCST_ASSIGN)
++ {
++ /* We want to get the current value into obja. This is the
++ * easiest way.
++ */
++ if ((-1 == (*cl-&gt;cl_push) (intrinsic_type, intrinsic_addr))
++ || (-1 == SLang_pop (&amp;obja)))
++ return -1;
++
++ (void) perform_lvalue_operation (op_type, &amp;obja);
++ SLang_free_object (&amp;obja);
++
++ if (SLang_Error)
++ return -1;
++ }
++
++ return (*cl-&gt;cl_pop) (intrinsic_type, intrinsic_addr);
++}
++
++int _SLang_deref_assign (SLang_Ref_Type *ref)
++{
++ SLang_Object_Type *objp;
++ SLang_Name_Type *nt;
++ SLBlock_Type blk;
++
++ if (ref-&gt;is_global == 0)
++ {
++ objp = ref-&gt;v.local_obj;
++ if (objp &gt; Local_Variable_Frame)
++ {
++ SLang_verror (SL_UNDEFINED_NAME, &quot;Local variable reference is out of scope&quot;);
++ return -1;
++ }
++ return set_lvalue_obj (_SLANG_BCST_ASSIGN, objp);
++ }
++
++ nt = ref-&gt;v.nt;
++ switch (nt-&gt;name_type)
++ {
++ case SLANG_GVARIABLE:
++ case SLANG_PVARIABLE:
++ if (-1 == set_lvalue_obj (_SLANG_BCST_ASSIGN,
++ &amp;((SLang_Global_Var_Type *)nt)-&gt;obj))
++ {
++ do_name_type_error (nt);
++ return -1;
++ }
++ break;
++
++ case SLANG_IVARIABLE:
++ blk.b.nt_blk = nt;
++ blk.bc_sub_type = _SLANG_BCST_ASSIGN;
++ if (-1 == set_intrin_lvalue (&amp;blk))
++ {
++ do_name_type_error (nt);
++ return -1;
++ }
++ break;
++
++ case SLANG_LVARIABLE:
++ SLang_Error = SL_INTERNAL_ERROR;
++ /* set_intrin_lvalue (&amp;blk); */
++ return -1;
++
++ case SLANG_RVARIABLE:
++ default:
++ SLang_verror (SL_READONLY_ERROR, &quot;deref assignment to %s not allowed&quot;, nt-&gt;name);
++ return -1;
++ }
++
++ return 0;
++}
++
++static void set_deref_lvalue (SLBlock_Type *bc_blk)
++{
++ SLang_Object_Type *objp;
++ SLang_Ref_Type *ref;
++
++ switch (bc_blk-&gt;bc_sub_type)
++ {
++ case SLANG_LVARIABLE:
++ objp = (Local_Variable_Frame - bc_blk-&gt;b.i_blk);
++ break;
++ case SLANG_GVARIABLE:
++ case SLANG_PVARIABLE:
++ objp = &amp;bc_blk-&gt;b.nt_gvar_blk-&gt;obj;
++ break;
++ default:
++ SLang_Error = SL_INTERNAL_ERROR;
++ return;
++ }
++
++ if (-1 == _SLpush_slang_obj (objp))
++ return;
++
++ if (-1 == SLang_pop_ref (&amp;ref))
++ return;
++ (void) _SLang_deref_assign (ref);
++ SLang_free_ref (ref);
++}
++
++static int push_struct_field (char *name)
++{
++ int type;
++ SLang_Class_Type *cl;
++
++ if (-1 == (type = SLang_peek_at_stack ()))
++ return -1;
++
++ cl = _SLclass_get_class ((unsigned char) type);
++ if (cl-&gt;cl_sget == NULL)
++ {
++ SLang_verror (SL_NOT_IMPLEMENTED,
++ &quot;%s does not permit structure access&quot;,
++ cl-&gt;cl_name);
++ SLdo_pop_n (2);
++ return -1;
++ }
++
++ return (*cl-&gt;cl_sget) ((unsigned char) type, name);
++}
++
++static void trace_dump (char *format, char *name, SLang_Object_Type *objs, int n, int dir)
++{
++ unsigned int len;
++ char prefix [52];
++
++ len = Trace_Mode - 1;
++ if (len + 2 &gt;= sizeof (prefix))
++ len = sizeof (prefix) - 2;
++
++ SLMEMSET (prefix, ' ', len);
++ prefix[len] = 0;
++
++ call_dump_routine (prefix);
++ call_dump_routine (format, name, n);
++
++ if (n &gt; 0)
++ {
++ prefix[len] = ' ';
++ len++;
++ prefix[len] = 0;
++
++ _SLdump_objects (prefix, objs, n, dir);
++ }
++}
++
++/* Pop a data item from the stack and return a pointer to it.
++ * Strings are not freed from stack so use another routine to do it.
++ */
++static VOID_STAR pop_pointer (SLang_Object_Type *obj, unsigned char type)
++{
++#ifndef _SLANG_OPTIMIZE_FOR_SPEED
++ SLang_Class_Type *cl;
++#endif
++
++ SLang_Array_Type *at;
++
++ /* Arrays are special. Allow scalars to automatically convert to arrays.
++ */
++ if (type == SLANG_ARRAY_TYPE)
++ {
++ if (-1 == SLang_pop_array (&amp;at, 1))
++ return NULL;
++ obj-&gt;data_type = SLANG_ARRAY_TYPE;
++ return obj-&gt;v.ptr_val = (VOID_STAR) at;
++ }
++
++ if (type == 0)
++ {
++ /* This happens when an intrinsic is declared without any information
++ * regarding parameter types.
++ */
++ if (-1 == SLang_pop (obj))
++ return NULL;
++ type = obj-&gt;data_type;
++ }
++ else if (-1 == _SLang_pop_object_of_type (type, obj, 0))
++ return NULL;
++
++#if _SLANG_OPTIMIZE_FOR_SPEED
++ type = _SLclass_Class_Type [type];
++#else
++ type = _SLclass_get_class (type)-&gt;cl_class_type;
++#endif
++
++ if (type == SLANG_CLASS_TYPE_SCALAR)
++ return (VOID_STAR) &amp;obj-&gt;v;
++ else if (type == SLANG_CLASS_TYPE_MMT)
++ return SLang_object_from_mmt (obj-&gt;v.ref);
++ else
++ return obj-&gt;v.ptr_val;
++}
++
++/* This is ugly. Does anyone have a advice for a cleaner way of doing
++ * this??
++ */
++typedef void (*VF0_Type)(void);
++typedef void (*VF1_Type)(VOID_STAR);
++typedef void (*VF2_Type)(VOID_STAR, VOID_STAR);
++typedef void (*VF3_Type)(VOID_STAR, VOID_STAR, VOID_STAR);
++typedef void (*VF4_Type)(VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR);
++typedef void (*VF5_Type)(VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR);
++typedef void (*VF6_Type)(VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR);
++typedef void (*VF7_Type)(VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR);
++typedef long (*LF0_Type)(void);
++typedef long (*LF1_Type)(VOID_STAR);
++typedef long (*LF2_Type)(VOID_STAR, VOID_STAR);
++typedef long (*LF3_Type)(VOID_STAR, VOID_STAR, VOID_STAR);
++typedef long (*LF4_Type)(VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR);
++typedef long (*LF5_Type)(VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR);
++typedef long (*LF6_Type)(VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR);
++typedef long (*LF7_Type)(VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR);
++#if SLANG_HAS_FLOAT
++typedef double (*FF0_Type)(void);
++typedef double (*FF1_Type)(VOID_STAR);
++typedef double (*FF2_Type)(VOID_STAR, VOID_STAR);
++typedef double (*FF3_Type)(VOID_STAR, VOID_STAR, VOID_STAR);
++typedef double (*FF4_Type)(VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR);
++typedef double (*FF5_Type)(VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR);
++typedef double (*FF6_Type)(VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR);
++typedef double (*FF7_Type)(VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR);
++#endif
++
++static int execute_intrinsic_fun (SLang_Intrin_Fun_Type *objf)
++{
++#if SLANG_HAS_FLOAT
++ double xf;
++#endif
++ VOID_STAR p[SLANG_MAX_INTRIN_ARGS];
++ SLang_Object_Type objs[SLANG_MAX_INTRIN_ARGS];
++ long ret;
++ unsigned char type;
++ unsigned int argc;
++ unsigned int i;
++ FVOID_STAR fptr;
++ unsigned char *arg_types;
++ int stk_depth;
++
++ fptr = objf-&gt;i_fun;
++ argc = objf-&gt;num_args;
++ type = objf-&gt;return_type;
++ arg_types = objf-&gt;arg_types;
++
++ if (argc &gt; SLANG_MAX_INTRIN_ARGS)
++ {
++ SLang_verror(SL_APPLICATION_ERROR,
++ &quot;Intrinsic function %s requires too many parameters&quot;, objf-&gt;name);
++ return -1;
++ }
++
++ if (-1 == _SL_increment_frame_pointer ())
++ return -1;
++
++ stk_depth = -1;
++ if (Trace_Mode &amp;&amp; (_SLang_Trace &gt; 0))
++ {
++ int nargs;
++
++ stk_depth = _SLstack_depth ();
++
++ nargs = SLang_Num_Function_Args;
++ if (nargs == 0)
++ nargs = (int)argc;
++
++ stk_depth -= nargs;
++
++ if (stk_depth &gt;= 0)
++ trace_dump (&quot;&gt;&gt;%s (%d args)\n&quot;,
++ objf-&gt;name,
++ _SLStack_Pointer - nargs,
++ nargs,
++ 1);
++ }
++
++ i = argc;
++ while (i != 0)
++ {
++ i--;
++ if (NULL == (p[i] = pop_pointer (objs + i, arg_types[i])))
++ {
++ i++;
++ goto free_and_return;
++ }
++ }
++
++ ret = 0;
++#if SLANG_HAS_FLOAT
++ xf = 0.0;
++#endif
++
++ switch (argc)
++ {
++ case 0:
++ if (type == SLANG_VOID_TYPE) ((VF0_Type) fptr) ();
++#if SLANG_HAS_FLOAT
++ else if (type == SLANG_DOUBLE_TYPE) xf = ((FF0_Type) fptr)();
++#endif
++ else ret = ((LF0_Type) fptr)();
++ break;
++
++ case 1:
++ if (type == SLANG_VOID_TYPE) ((VF1_Type) fptr)(p[0]);
++#if SLANG_HAS_FLOAT
++ else if (type == SLANG_DOUBLE_TYPE) xf = ((FF1_Type) fptr)(p[0]);
++#endif
++ else ret = ((LF1_Type) fptr)(p[0]);
++ break;
++
++ case 2:
++ if (type == SLANG_VOID_TYPE) ((VF2_Type) fptr)(p[0], p[1]);
++#if SLANG_HAS_FLOAT
++ else if (type == SLANG_DOUBLE_TYPE) xf = ((FF2_Type) fptr)(p[0], p[1]);
++#endif
++ else ret = ((LF2_Type) fptr)(p[0], p[1]);
++ break;
++
++ case 3:
++ if (type == SLANG_VOID_TYPE) ((VF3_Type) fptr)(p[0], p[1], p[2]);
++#if SLANG_HAS_FLOAT
++ else if (type == SLANG_DOUBLE_TYPE) xf = ((FF3_Type) fptr)(p[0], p[1], p[2]);
++#endif
++ else ret = ((LF3_Type) fptr)(p[0], p[1], p[2]);
++ break;
++
++ case 4:
++ if (type == SLANG_VOID_TYPE) ((VF4_Type) fptr)(p[0], p[1], p[2], p[3]);
++#if SLANG_HAS_FLOAT
++ else if (type == SLANG_DOUBLE_TYPE) xf = ((FF4_Type) fptr)(p[0], p[1], p[2], p[3]);
++#endif
++ else ret = ((LF4_Type) fptr)(p[0], p[1], p[2], p[3]);
++ break;
++
++ case 5:
++ if (type == SLANG_VOID_TYPE) ((VF5_Type) fptr)(p[0], p[1], p[2], p[3], p[4]);
++#if SLANG_HAS_FLOAT
++ else if (type == SLANG_DOUBLE_TYPE) xf = ((FF5_Type) fptr)(p[0], p[1], p[2], p[3], p[4]);
++#endif
++ else ret = ((LF5_Type) fptr)(p[0], p[1], p[2], p[3], p[4]);
++ break;
++
++ case 6:
++ if (type == SLANG_VOID_TYPE) ((VF6_Type) fptr)(p[0], p[1], p[2], p[3], p[4], p[5]);
++#if SLANG_HAS_FLOAT
++ else if (type == SLANG_DOUBLE_TYPE) xf = ((FF6_Type) fptr)(p[0], p[1], p[2], p[3], p[4], p[5]);
++#endif
++ else ret = ((LF6_Type) fptr)(p[0], p[1], p[2], p[3], p[4], p[5]);
++ break;
++
++ case 7:
++ if (type == SLANG_VOID_TYPE) ((VF7_Type) fptr)(p[0], p[1], p[2], p[3], p[4], p[5], p[6]);
++#if SLANG_HAS_FLOAT
++ else if (type == SLANG_DOUBLE_TYPE) xf = ((FF7_Type) fptr)(p[0], p[1], p[2], p[3], p[4], p[5], p[6]);
++#endif
++ else ret = ((LF7_Type) fptr)(p[0], p[1], p[2], p[3], p[4], p[5], p[6]);
++ break;
++ }
++
++ switch (type)
++ {
++ case SLANG_VOID_TYPE:
++ break;
++
++#if SLANG_HAS_FLOAT
++ case SLANG_DOUBLE_TYPE:
++ (void) SLang_push_double (xf);
++ break;
++#endif
++ case SLANG_UINT_TYPE:
++ case SLANG_INT_TYPE: (void) SLclass_push_int_obj (type, (int) ret);
++ break;
++
++ case SLANG_CHAR_TYPE:
++ case SLANG_UCHAR_TYPE: (void) SLclass_push_char_obj (type, (char) ret);
++ break;
++
++ case SLANG_SHORT_TYPE:
++ case SLANG_USHORT_TYPE: (void) SLclass_push_short_obj (type, (short) ret);
++ break;
++
++ case SLANG_LONG_TYPE:
++ case SLANG_ULONG_TYPE: (void) SLclass_push_long_obj (type, ret);
++ break;
++
++ case SLANG_STRING_TYPE:
++ if (NULL == (char *)ret)
++ {
++ if (SLang_Error == 0) SLang_Error = SL_INTRINSIC_ERROR;
++ }
++ else (void) SLang_push_string ((char *)ret);
++ break;
++
++ default:
++ SLang_verror (SL_NOT_IMPLEMENTED,
++ &quot;Support for intrinsic functions returning %s is not provided&quot;,
++ SLclass_get_datatype_name (type));
++ }
++
++ if (stk_depth &gt;= 0)
++ {
++ stk_depth = _SLstack_depth () - stk_depth;
++
++ trace_dump (&quot;&lt;&lt;%s (returning %d values)\n&quot;,
++ objf-&gt;name,
++ _SLStack_Pointer - stk_depth,
++ stk_depth,
++ 1);
++ }
++
++ free_and_return:
++ while (i &lt; argc)
++ {
++ SLang_free_object (objs + i);
++ i++;
++ }
++
++ return _SL_decrement_frame_pointer ();
++}
++
++static int inner_interp(register SLBlock_Type *);
++
++/* Switch_Obj_Ptr points to the NEXT available free switch object */
++static SLang_Object_Type Switch_Objects[SLANG_MAX_NESTED_SWITCH];
++static SLang_Object_Type *Switch_Obj_Ptr = Switch_Objects;
++static SLang_Object_Type *Switch_Obj_Max = Switch_Objects + SLANG_MAX_NESTED_SWITCH;
++
++static void
++lang_do_loops (unsigned char stype, SLBlock_Type *block, unsigned int num_blocks)
++{
++ int i, ctrl;
++ int first, last;
++ SLBlock_Type *blks[4];
++ char *loop_name;
++ SLang_Foreach_Context_Type *foreach_context;
++ SLang_Class_Type *cl;
++ int type;
++ unsigned int j;
++
++ j = 0;
++ for (i = 0; i &lt; (int) num_blocks; i++)
++ {
++ if (block[i].bc_main_type != _SLANG_BC_BLOCK)
++ {
++ if (block[i].bc_main_type == _SLANG_BC_LINE_NUM)
++ continue;
++
++ SLang_verror (SL_SYNTAX_ERROR, &quot;Bytecode is not a looping block&quot;);
++ return;
++ }
++ blks[j] = block[i].b.blk;
++ j++;
++ }
++
++ num_blocks = j;
++ block = blks[0];
++
++ switch (stype)
++ {
++ case _SLANG_BCST_FOREACH:
++ loop_name = &quot;foreach&quot;;
++ if (num_blocks != 1)
++ goto wrong_num_blocks_error;
++
++ /* We should find Next_Function_Num_Args + 1 items on the stack.
++ * The first Next_Function_Num_Args items represent the arguments to
++ * to USING. The last item (deepest in stack) is the object to loop
++ * over. So, roll the stack up and grab it.
++ */
++ if ((-1 == SLroll_stack (-(Next_Function_Num_Args + 1)))
++ || (-1 == (type = SLang_peek_at_stack ())))
++ goto return_error;
++
++ cl = _SLclass_get_class ((unsigned char) type);
++ if ((cl-&gt;cl_foreach == NULL)
++ || (cl-&gt;cl_foreach_open == NULL)
++ || (cl-&gt;cl_foreach_close == NULL))
++ {
++ SLang_verror (SL_NOT_IMPLEMENTED, &quot;%s does not permit foreach&quot;, cl-&gt;cl_name);
++ SLdo_pop_n (Next_Function_Num_Args + 1);
++ goto return_error;
++ }
++
++ if (NULL == (foreach_context = (*cl-&gt;cl_foreach_open) ((unsigned char)type, Next_Function_Num_Args)))
++ goto return_error;
++
++ while (1)
++ {
++ int status;
++
++ if (SLang_Error)
++ {
++ (*cl-&gt;cl_foreach_close) ((unsigned char) type, foreach_context);
++ goto return_error;
++ }
++
++ status = (*cl-&gt;cl_foreach) ((unsigned char) type, foreach_context);
++ if (status &lt;= 0)
++ {
++ if (status == 0)
++ break;
++
++ (*cl-&gt;cl_foreach_close) ((unsigned char) type, foreach_context);
++ goto return_error;
++ }
++
++ inner_interp (block);
++ if (Lang_Break) break;
++ Lang_Break_Condition = /* Lang_Continue = */ 0;
++ }
++ (*cl-&gt;cl_foreach_close) ((unsigned char) type, foreach_context);
++ break;
++
++ case _SLANG_BCST_WHILE:
++ loop_name = &quot;while&quot;;
++
++ if (num_blocks != 2)
++ goto wrong_num_blocks_error;
++
++ type = blks[1]-&gt;bc_main_type;
++ while (1)
++ {
++ if (SLang_Error)
++ goto return_error;
++
++ inner_interp (block);
++ if (Lang_Break) break;
++
++ if (-1 == pop_ctrl_integer (&amp;ctrl))
++ goto return_error;
++
++ if (ctrl == 0) break;
++
++ if (type)
++ {
++ inner_interp (blks[1]);
++ if (Lang_Break) break;
++ Lang_Break_Condition = /* Lang_Continue = */ 0;
++ }
++ }
++ break;
++
++ case _SLANG_BCST_DOWHILE:
++ loop_name = &quot;do...while&quot;;
++
++ if (num_blocks != 2)
++ goto wrong_num_blocks_error;
++
++ while (1)
++ {
++ if (SLang_Error)
++ goto return_error;
++
++ Lang_Break_Condition = /* Lang_Continue = */ 0;
++ inner_interp (block);
++ if (Lang_Break) break;
++ Lang_Break_Condition = /* Lang_Continue = */ 0;
++ inner_interp (blks[1]);
++ if (-1 == pop_ctrl_integer (&amp;ctrl))
++ goto return_error;
++
++ if (ctrl == 0) break;
++ }
++ break;
++
++ case _SLANG_BCST_CFOR:
++ loop_name = &quot;for&quot;;
++
++ /* we need 4 blocks: first 3 control, the last is code */
++ if (num_blocks != 4) goto wrong_num_blocks_error;
++
++ inner_interp (block);
++ while (1)
++ {
++ if (SLang_Error)
++ goto return_error;
++
++ inner_interp(blks[1]); /* test */
++ if (-1 == pop_ctrl_integer (&amp;ctrl))
++ goto return_error;
++
++ if (ctrl == 0) break;
++ inner_interp(blks[3]); /* code */
++ if (Lang_Break) break;
++ inner_interp(blks[2]); /* bump */
++ Lang_Break_Condition = /* Lang_Continue = */ 0;
++ }
++ break;
++
++ case _SLANG_BCST_FOR:
++ loop_name = &quot;_for&quot;;
++
++ if (num_blocks != 1)
++ goto wrong_num_blocks_error;
++
++ /* 3 elements: first, last, step */
++ if ((-1 == SLang_pop_integer (&amp;ctrl))
++ || (-1 == SLang_pop_integer (&amp;last))
++ || (-1 == SLang_pop_integer (&amp;first)))
++ goto return_error;
++
++ i = first;
++ while (1)
++ {
++ /* It is ugly to have this test here but I do not know of a
++ * simple way to do this without using two while loops.
++ */
++ if (ctrl &gt;= 0)
++ {
++ if (i &gt; last) break;
++ }
++ else if (i &lt; last) break;
++
++ if (SLang_Error) goto return_error;
++
++ SLclass_push_int_obj (SLANG_INT_TYPE, i);
++ inner_interp (block);
++ if (Lang_Break) break;
++ Lang_Break_Condition = /* Lang_Continue = */ 0;
++
++ i += ctrl;
++ }
++ break;
++
++ case _SLANG_BCST_LOOP:
++ loop_name = &quot;loop&quot;;
++ if (num_blocks != 1)
++ goto wrong_num_blocks_error;
++
++ if (-1 == SLang_pop_integer (&amp;ctrl))
++ goto return_error;
++ while (ctrl &gt; 0)
++ {
++ ctrl--;
++
++ if (SLang_Error)
++ goto return_error;
++
++ inner_interp (block);
++ if (Lang_Break) break;
++ Lang_Break_Condition = /* Lang_Continue = */ 0;
++ }
++ break;
++
++ case _SLANG_BCST_FOREVER:
++ loop_name = &quot;forever&quot;;
++
++ if (num_blocks != 1)
++ goto wrong_num_blocks_error;
++
++ while (1)
++ {
++ if (SLang_Error)
++ goto return_error;
++
++ inner_interp (block);
++ if (Lang_Break) break;
++ Lang_Break_Condition = /* Lang_Continue = */ 0;
++ }
++ break;
++
++ default: SLang_verror(SL_INTERNAL_ERROR, &quot;Unknown loop type&quot;);
++ return;
++ }
++ Lang_Break = /* Lang_Continue = */ 0;
++ Lang_Break_Condition = Lang_Return;
++ return;
++
++ wrong_num_blocks_error:
++ SLang_verror (SL_SYNTAX_ERROR, &quot;Wrong number of blocks for '%s' construct&quot;, loop_name);
++
++ /* drop */
++ return_error:
++ do_traceback (loop_name, 0, NULL);
++}
++
++static void lang_do_and_orelse (unsigned char stype, SLBlock_Type *addr, SLBlock_Type *addr_max)
++{
++ int test = 0;
++ int is_or;
++
++ is_or = (stype == _SLANG_BCST_ORELSE);
++
++ while (addr &lt;= addr_max)
++ {
++ if (addr-&gt;bc_main_type == _SLANG_BC_LINE_NUM)
++ {
++ addr++;
++ continue;
++ }
++
++ inner_interp (addr-&gt;b.blk);
++ if (SLang_Error
++ || Lang_Break_Condition
++ || (-1 == pop_ctrl_integer (&amp;test)))
++ return;
++
++ if (is_or == (test != 0))
++ break;
++
++ /* if (((stype == _SLANG_BCST_ANDELSE) &amp;&amp; (test == 0))
++ * || ((stype == _SLANG_BCST_ORELSE) &amp;&amp; test))
++ * break;
++ */
++
++ addr++;
++ }
++ SLclass_push_int_obj (SLANG_INT_TYPE, test);
++}
++
++static void do_else_if (SLBlock_Type *zero_block, SLBlock_Type *non_zero_block)
++{
++ int test;
++
++ if (-1 == pop_ctrl_integer (&amp;test))
++ return;
++
++ if (test == 0)
++ non_zero_block = zero_block;
++
++ if (non_zero_block != NULL)
++ inner_interp (non_zero_block-&gt;b.blk);
++}
++
++int _SLang_trace_fun (char *f)
++{
++ if (NULL == (f = SLang_create_slstring (f)))
++ return -1;
++
++ SLang_free_slstring (Trace_Function);
++ Trace_Function = f;
++ _SLang_Trace = 1;
++ return 0;
++}
++
++int _SLdump_objects (char *prefix, SLang_Object_Type *x, unsigned int n, int dir)
++{
++ char *s;
++ SLang_Class_Type *cl;
++
++ while (n)
++ {
++ cl = _SLclass_get_class (x-&gt;data_type);
++
++ if (NULL == (s = _SLstringize_object (x)))
++ s = &quot;??&quot;;
++
++ call_dump_routine (&quot;%s[%s]:%s\n&quot;, prefix, cl-&gt;cl_name, s);
++
++ SLang_free_slstring (s);
++
++ x += dir;
++ n--;
++ }
++ return 0;
++}
++
++static SLBlock_Type *Exit_Block_Ptr;
++static SLBlock_Type *Global_User_Block[5];
++static SLBlock_Type **User_Block_Ptr = Global_User_Block;
++char *_SLang_Current_Function_Name = NULL;
++
++static int execute_slang_fun (_SLang_Function_Type *fun)
++{
++ register unsigned int i;
++ register SLang_Object_Type *frame, *lvf;
++ register unsigned int n_locals;
++ _SLBlock_Header_Type *header;
++ /* SLBlock_Type *val; */
++ SLBlock_Type *exit_block_save;
++ SLBlock_Type **user_block_save;
++ SLBlock_Type *user_blocks[5];
++ char *save_fname;
++
++ exit_block_save = Exit_Block_Ptr;
++ user_block_save = User_Block_Ptr;
++ User_Block_Ptr = user_blocks;
++ *(user_blocks) = NULL;
++ *(user_blocks + 1) = NULL;
++ *(user_blocks + 2) = NULL;
++ *(user_blocks + 3) = NULL;
++ *(user_blocks + 4) = NULL;
++
++ Exit_Block_Ptr = NULL;
++
++ save_fname = _SLang_Current_Function_Name;
++ _SLang_Current_Function_Name = fun-&gt;name;
++
++ _SL_increment_frame_pointer ();
++
++ /* need loaded? */
++ if (fun-&gt;nlocals == AUTOLOAD_NUM_LOCALS)
++ {
++ header = NULL;
++ if (-1 == SLang_load_file(fun-&gt;v.autoload_filename))
++ goto the_return;
++
++ if (fun-&gt;nlocals == AUTOLOAD_NUM_LOCALS)
++ {
++ SLang_verror (SL_UNDEFINED_NAME, &quot;%s: Function did not autoload&quot;,
++ _SLang_Current_Function_Name);
++ goto the_return;
++ }
++ }
++
++ n_locals = fun-&gt;nlocals;
++
++ /* let the error propagate through since it will do no harm
++ and allow us to restore stack. */
++
++ /* set new stack frame */
++ lvf = frame = Local_Variable_Frame;
++ i = n_locals;
++ if ((lvf + i) &gt; Local_Variable_Stack + SLANG_MAX_LOCAL_STACK)
++ {
++ SLang_verror(SL_STACK_OVERFLOW, &quot;%s: Local Variable Stack Overflow&quot;,
++ _SLang_Current_Function_Name);
++ goto the_return;
++ }
++
++ /* Make sure we do not allow this header to get destroyed by something
++ * like: define crash () { eval (&quot;define crash ();&quot;) }
++ */
++ header = fun-&gt;v.header;
++ header-&gt;num_refs++;
++
++ while (i--)
++ {
++ lvf++;
++ lvf-&gt;data_type = SLANG_UNDEFINED_TYPE;
++ }
++ Local_Variable_Frame = lvf;
++
++ /* read values of function arguments */
++ i = fun-&gt;nargs;
++ while (i &gt; 0)
++ {
++ i--;
++ (void) SLang_pop (Local_Variable_Frame - i);
++ }
++
++ if (SLang_Enter_Function != NULL) (*SLang_Enter_Function)(_SLang_Current_Function_Name);
++
++ if (_SLang_Trace)
++ {
++ int stack_depth;
++
++ stack_depth = _SLstack_depth ();
++
++ if ((Trace_Function != NULL)
++ &amp;&amp; (0 == strcmp (Trace_Function, _SLang_Current_Function_Name))
++ &amp;&amp; (Trace_Mode == 0))
++ Trace_Mode = 1;
++
++ if (Trace_Mode)
++ {
++ /* The local variable frame grows backwards */
++ trace_dump (&quot;&gt;&gt;%s (%d args)\n&quot;,
++ _SLang_Current_Function_Name,
++ Local_Variable_Frame,
++ (int) fun-&gt;nargs,
++ -1);
++ Trace_Mode++;
++ }
++
++ inner_interp (header-&gt;body);
++ Lang_Break_Condition = Lang_Return = Lang_Break = 0;
++ if (Exit_Block_Ptr != NULL) inner_interp(Exit_Block_Ptr);
++
++ if (Trace_Mode)
++ {
++ Trace_Mode--;
++ stack_depth = _SLstack_depth () - stack_depth;
++
++ trace_dump (&quot;&lt;&lt;%s (returning %d values)\n&quot;,
++ _SLang_Current_Function_Name,
++ _SLStack_Pointer - stack_depth,
++ stack_depth,
++ 1);
++
++ if (Trace_Mode == 1)
++ Trace_Mode = 0;
++ }
++ }
++ else
++ {
++ inner_interp (header-&gt;body);
++ Lang_Break_Condition = Lang_Return = Lang_Break = 0;
++ if (Exit_Block_Ptr != NULL) inner_interp(Exit_Block_Ptr);
++ }
++
++ if (SLang_Exit_Function != NULL) (*SLang_Exit_Function)(_SLang_Current_Function_Name);
++
++ if (SLang_Error)
++ do_traceback(fun-&gt;name, n_locals,
++#if _SLANG_HAS_DEBUG_CODE
++ fun-&gt;file
++#else
++ NULL
++#endif
++ );
++
++ /* free local variables.... */
++ lvf = Local_Variable_Frame;
++ while (lvf &gt; frame)
++ {
++#if _SLANG_OPTIMIZE_FOR_SPEED
++ if (SLANG_CLASS_TYPE_SCALAR != _SLclass_Class_Type [lvf-&gt;data_type])
++#endif
++ SLang_free_object (lvf);
++ lvf--;
++ }
++ Local_Variable_Frame = lvf;
++
++ if (header-&gt;num_refs == 1)
++ free_function_header (header);
++ else
++ header-&gt;num_refs--;
++
++ the_return:
++
++ Lang_Break_Condition = Lang_Return = Lang_Break = 0;
++ Exit_Block_Ptr = exit_block_save;
++ User_Block_Ptr = user_block_save;
++ _SLang_Current_Function_Name = save_fname;
++ _SL_decrement_frame_pointer ();
++
++ if (SLang_Error)
++ return -1;
++
++ return 0;
++}
++
++static void do_traceback (char *name, unsigned int locals, char *file)
++{
++ char *s;
++ unsigned int i;
++ SLang_Object_Type *objp;
++ unsigned short stype;
++
++ /* FIXME: Priority=low
++ * I need to make this configurable!!! That is, let the
++ * application decide whether or not a usage error should result in a
++ * traceback.
++ */
++ if (SLang_Error == SL_USAGE_ERROR)
++ return;
++
++ if (SLang_Traceback == 0)
++ return;
++
++ call_dump_routine (&quot;S-Lang Traceback: %s\n&quot;, name);
++ if (SLang_Traceback &lt; 0)
++ return;
++
++ if (file != NULL)
++ call_dump_routine (&quot;File: %s\n&quot;, file);
++
++ if (locals == 0)
++ return;
++
++ call_dump_routine (&quot; Local Variables:\n&quot;);
++
++ for (i = 0; i &lt; locals; i++)
++ {
++ SLang_Class_Type *cl;
++ char *class_name;
++
++ objp = Local_Variable_Frame - i;
++ stype = objp-&gt;data_type;
++
++ s = _SLstringize_object (objp);
++ cl = _SLclass_get_class (stype);
++ class_name = cl-&gt;cl_name;
++
++ call_dump_routine (&quot;\t$%d: Type: %s,\tValue:\t&quot;, i, class_name);
++
++ if (s == NULL) call_dump_routine(&quot;??\n&quot;);
++ else
++ {
++ char *q = &quot;&quot;;
++#ifndef HAVE_VSNPRINTF
++ char buf[256];
++ if (strlen (s) &gt;= sizeof (buf))
++ {
++ strncpy (buf, s, sizeof(buf));
++ s = buf;
++ s[sizeof(buf) - 1] = 0;
++ }
++#endif
++ if (SLANG_STRING_TYPE == stype) q = &quot;\&quot;&quot;;
++ call_dump_routine (&quot;%s%s%s\n&quot;, q, s, q);
++ }
++ }
++}
++
++static void do_app_unary (SLang_App_Unary_Type *nt)
++{
++ if (-1 == do_unary (nt-&gt;unary_op, nt-&gt;name_type))
++ do_traceback (nt-&gt;name, 0, NULL);
++}
++
++static int inner_interp_nametype (SLang_Name_Type *nt)
++{
++ SLBlock_Type bc_blks[2];
++
++ bc_blks[0].b.nt_blk = nt;
++ bc_blks[0].bc_main_type = nt-&gt;name_type;
++ bc_blks[1].bc_main_type = 0;
++ return inner_interp(bc_blks);
++}
++
++int _SLang_dereference_ref (SLang_Ref_Type *ref)
++{
++ if (ref == NULL)
++ {
++ SLang_Error = SL_INTERNAL_ERROR;
++ return -1;
++ }
++
++ if (ref-&gt;is_global == 0)
++ {
++ SLang_Object_Type *obj = ref-&gt;v.local_obj;
++ if (obj &gt; Local_Variable_Frame)
++ {
++ SLang_verror (SL_UNDEFINED_NAME, &quot;Local variable deref is out of scope&quot;);
++ return -1;
++ }
++ return _SLpush_slang_obj (ref-&gt;v.local_obj);
++ }
++
++ (void) inner_interp_nametype (ref-&gt;v.nt);
++ return 0;
++}
++
++int _SLang_is_ref_initialized (SLang_Ref_Type *ref)
++{
++ unsigned char type;
++
++ if (ref == NULL)
++ {
++ SLang_Error = SL_INTERNAL_ERROR;
++ return -1;
++ }
++
++ if (ref-&gt;is_global == 0)
++ {
++ SLang_Object_Type *obj = ref-&gt;v.local_obj;
++ if (obj &gt; Local_Variable_Frame)
++ {
++ SLang_verror (SL_UNDEFINED_NAME, &quot;Local variable deref is out of scope&quot;);
++ return -1;
++ }
++ type = ref-&gt;v.local_obj-&gt;data_type;
++ }
++ else
++ {
++ SLang_Name_Type *nt = ref-&gt;v.nt;
++ if ((nt-&gt;name_type != SLANG_GVARIABLE)
++ &amp;&amp; (nt-&gt;name_type != SLANG_PVARIABLE))
++ return 1;
++ type = ((SLang_Global_Var_Type *)nt)-&gt;obj.data_type;
++ }
++ return type != SLANG_UNDEFINED_TYPE;
++}
++
++int _SLang_uninitialize_ref (SLang_Ref_Type *ref)
++{
++ SLang_Object_Type *obj;
++
++ if (ref == NULL)
++ {
++ SLang_Error = SL_INTERNAL_ERROR;
++ return -1;
++ }
++
++ if (ref-&gt;is_global == 0)
++ {
++ obj = ref-&gt;v.local_obj;
++ if (obj &gt; Local_Variable_Frame)
++ {
++ SLang_verror (SL_UNDEFINED_NAME, &quot;Local variable deref is out of scope&quot;);
++ return -1;
++ }
++ obj = ref-&gt;v.local_obj;
++ }
++ else
++ {
++ SLang_Name_Type *nt = ref-&gt;v.nt;
++ if ((nt-&gt;name_type != SLANG_GVARIABLE)
++ &amp;&amp; (nt-&gt;name_type != SLANG_PVARIABLE))
++ return -1;
++ obj = &amp;((SLang_Global_Var_Type *)nt)-&gt;obj;
++ }
++ SLang_free_object (obj);
++ obj-&gt;data_type = SLANG_UNDEFINED_TYPE;
++ obj-&gt;v.ptr_val = NULL;
++ return 0;
++}
++
++void (*SLang_Interrupt)(void);
++static int Last_Error;
++void (*SLang_User_Clear_Error)(void);
++void _SLang_clear_error (void)
++{
++ if (Last_Error &lt;= 0)
++ {
++ Last_Error = 0;
++ return;
++ }
++ Last_Error--;
++ if (SLang_User_Clear_Error != NULL) (*SLang_User_Clear_Error)();
++}
++
++int _SLpush_slang_obj (SLang_Object_Type *obj)
++{
++ unsigned char subtype;
++ SLang_Class_Type *cl;
++
++ if (obj == NULL) return SLang_push_null ();
++
++ subtype = obj-&gt;data_type;
++
++#if _SLANG_OPTIMIZE_FOR_SPEED
++ if (SLANG_CLASS_TYPE_SCALAR == _SLclass_Class_Type[subtype])
++ return SLang_push (obj);
++#endif
++
++ cl = _SLclass_get_class (subtype);
++ return (*cl-&gt;cl_push) (subtype, (VOID_STAR) &amp;obj-&gt;v);
++}
++
++_INLINE_
++static int push_local_variable (int i)
++{
++ SLang_Class_Type *cl;
++ SLang_Object_Type *obj;
++ unsigned char subtype;
++
++ obj = Local_Variable_Frame - i;
++ subtype = obj-&gt;data_type;
++
++#if _SLANG_OPTIMIZE_FOR_SPEED
++ if (SLANG_CLASS_TYPE_SCALAR == _SLclass_Class_Type[subtype])
++ return SLang_push (obj);
++ if (subtype == SLANG_STRING_TYPE)
++ return _SLang_dup_and_push_slstring (obj-&gt;v.s_val);
++#endif
++
++ cl = _SLclass_get_class (subtype);
++ return (*cl-&gt;cl_push) (subtype, (VOID_STAR) &amp;obj-&gt;v);
++}
++
++static int push_intrinsic_variable (SLang_Intrin_Var_Type *ivar)
++{
++ SLang_Class_Type *cl;
++ unsigned char stype;
++
++ stype = ivar-&gt;type;
++ cl = _SLclass_get_class (stype);
++
++ if (-1 == (*cl-&gt;cl_push_intrinsic) (stype, ivar-&gt;addr))
++ {
++ do_name_type_error ((SLang_Name_Type *) ivar);
++ return -1;
++ }
++ return 0;
++}
++
++static int dereference_object (void)
++{
++ SLang_Object_Type obj;
++ SLang_Class_Type *cl;
++ unsigned char type;
++ int ret;
++
++ if (-1 == SLang_pop (&amp;obj))
++ return -1;
++
++ type = obj.data_type;
++
++ cl = _SLclass_get_class (type);
++ ret = (*cl-&gt;cl_dereference)(type, (VOID_STAR) &amp;obj.v);
++
++ SLang_free_object (&amp;obj);
++ return ret;
++}
++
++static int case_function (void)
++{
++ unsigned char type;
++ SLang_Object_Type obj;
++ SLang_Object_Type *swobjptr;
++
++ swobjptr = Switch_Obj_Ptr - 1;
++
++ if ((swobjptr &lt; Switch_Objects)
++ || (0 == (type = swobjptr-&gt;data_type)))
++ {
++ SLang_verror (SL_SYNTAX_ERROR, &quot;Misplaced 'case' keyword&quot;);
++ return -1;
++ }
++
++ if (-1 == SLang_pop (&amp;obj))
++ return -1;
++
++ if (obj.data_type != type)
++ {
++ SLang_Class_Type *a_cl, *b_cl;
++
++ a_cl = _SLclass_get_class (obj.data_type);
++ b_cl = _SLclass_get_class (type);
++
++ if (NULL == _SLclass_get_binary_fun (SLANG_EQ, a_cl, b_cl, &amp;a_cl, 0))
++ {
++ (void) SLclass_push_int_obj (SLANG_INT_TYPE, 0);
++ SLang_free_object (&amp;obj);
++ return 0;
++ }
++ }
++
++ (void) do_binary_ab (SLANG_EQ, swobjptr, &amp;obj);
++ SLang_free_object (&amp;obj);
++ return 0;
++}
++
++static void tmp_variable_function (SLBlock_Type *addr)
++{
++ SLang_Object_Type *obj;
++
++ switch (addr-&gt;bc_sub_type)
++ {
++ case SLANG_GVARIABLE:
++ case SLANG_PVARIABLE:
++ obj = &amp;addr-&gt;b.nt_gvar_blk-&gt;obj;
++ break;
++
++ case SLANG_LVARIABLE:
++ obj = Local_Variable_Frame - addr-&gt;b.i_blk;
++ break;
++
++ default:
++ SLang_Error = SL_INTERNAL_ERROR;
++ return;
++ }
++
++ /* There is no need to go through higher level routines since we are
++ * not creating or destroying extra copies.
++ */
++ if (-1 == SLang_push (obj))
++ return;
++
++ obj-&gt;data_type = SLANG_UNDEFINED_TYPE;
++ obj-&gt;v.ptr_val = NULL;
++}
++
++
++static int
++do_inner_interp_error (SLBlock_Type *err_block,
++ SLBlock_Type *addr_start,
++ SLBlock_Type *addr)
++{
++ int save_err, slerr;
++
++ /* Someday I can use the these variable to provide extra information
++ * about what went wrong.
++ */
++ (void) addr_start;
++ (void) addr;
++
++ if (err_block == NULL)
++ goto return_error;
++
++ if (SLang_Error &lt; 0) /* errors less than 0 are severe */
++ goto return_error;
++
++ save_err = Last_Error++;
++ slerr = SLang_Error;
++ SLang_Error = 0;
++ inner_interp (err_block-&gt;b.blk);
++
++ if (Last_Error &lt;= save_err)
++ {
++ /* Caught error and cleared it */
++ Last_Error = save_err;
++ if ((Lang_Break_Condition == 0)
++ /* An error may have cleared the error and then caused the
++ * function to return. We will allow that but let's not allow
++ * 'break' nor 'continue' statements until later.
++ */
++ || Lang_Return)
++ return 0;
++
++ /* drop--- either a break or continue was called */
++ }
++
++ Last_Error = save_err;
++ SLang_Error = slerr;
++
++ return_error:
++#if _SLANG_HAS_DEBUG_CODE
++ while (addr &gt;= addr_start)
++ {
++ if (addr-&gt;bc_main_type == _SLANG_BC_LINE_NUM)
++ {
++ char buf[256];
++ sprintf (buf, &quot;(Error occurred on line %lu)&quot;, addr-&gt;b.l_blk);
++ do_traceback (buf, 0, NULL);
++ break;
++ }
++ /* Special hack for 16 bit systems to prevent pointer wrapping. */
++#if defined(__16_BIT_SYSTEM__)
++ if (addr == addr_start)
++ break;
++#endif
++ addr--;
++ }
++#endif
++ return -1;
++}
++
++
++#define GATHER_STATISTICS 0
++#if GATHER_STATISTICS
++static unsigned int Bytecodes[0xFFFF];
++
++static void print_stats (void)
++{
++ unsigned int i;
++ unsigned long total;
++ FILE *fp = fopen (&quot;stats.txt&quot;, &quot;w&quot;);
++ if (fp == NULL)
++ return;
++
++ total = 0;
++ for (i = 0; i &lt; 0xFFFF; i++)
++ total += Bytecodes[i];
++
++ if (total == 0)
++ total = 1;
++
++ for (i = 0; i &lt; 0xFFFF; i++)
++ {
++ if (Bytecodes[i])
++ fprintf (fp, &quot;0x%04X %9u %e\n&quot;, i, Bytecodes[i], Bytecodes[i]/(double) total);
++ }
++ fclose (fp);
++}
++
++static void add_to_statistics (SLBlock_Type *b)
++{
++ unsigned short x, y;
++
++ x = b-&gt;bc_main_type;
++ if (x == 0)
++ {
++ Bytecodes[0] += 1;
++ return;
++ }
++ b++;
++ y = b-&gt;bc_main_type;
++
++ Bytecodes[(x &lt;&lt; 8) | y] += 1;
++}
++
++#endif
++
++/* inner interpreter */
++/* The return value from this function is only meaningful when it is used
++ * to process blocks for the switch statement. If it returns 0, the calling
++ * routine should pass the next block to it. Otherwise it will
++ * return non-zero, with or without error.
++ */
++static int inner_interp (SLBlock_Type *addr_start)
++{
++ SLBlock_Type *block, *err_block, *addr;
++#if GATHER_STATISTICS
++ static int inited = 0;
++
++ if (inited == 0)
++ {
++ (void) SLang_add_cleanup_function (print_stats);
++ inited = 1;
++ }
++#endif
++
++ /* for systems that have no real interrupt facility (e.g. go32 on dos) */
++ if (SLang_Interrupt != NULL) (*SLang_Interrupt)();
++
++ block = err_block = NULL;
++ addr = addr_start;
++
++#if GATHER_STATISTICS
++ add_to_statistics (addr);
++#endif
++ while (1)
++ {
++ switch (addr-&gt;bc_main_type)
++ {
++ case 0:
++ return 1;
++ case _SLANG_BC_LVARIABLE:
++ push_local_variable (addr-&gt;b.i_blk);
++ break;
++ case _SLANG_BC_GVARIABLE:
++ if (-1 == _SLpush_slang_obj (&amp;addr-&gt;b.nt_gvar_blk-&gt;obj))
++ do_name_type_error (addr-&gt;b.nt_blk);
++ break;
++
++ case _SLANG_BC_IVARIABLE:
++ case _SLANG_BC_RVARIABLE:
++ push_intrinsic_variable (addr-&gt;b.nt_ivar_blk);
++ break;
++
++ case _SLANG_BC_INTRINSIC:
++ execute_intrinsic_fun (addr-&gt;b.nt_ifun_blk);
++ if (SLang_Error)
++ do_traceback(addr-&gt;b.nt_ifun_blk-&gt;name, 0, NULL);
++ break;
++
++ case _SLANG_BC_FUNCTION:
++ execute_slang_fun (addr-&gt;b.nt_fun_blk);
++ if (Lang_Break_Condition) goto handle_break_condition;
++ break;
++
++ case _SLANG_BC_MATH_UNARY:
++ case _SLANG_BC_APP_UNARY:
++ /* Make sure we treat these like function calls since the
++ * parser took sin(x) to be a function call.
++ */
++ if (0 == _SL_increment_frame_pointer ())
++ {
++ do_app_unary (addr-&gt;b.nt_unary_blk);
++ (void) _SL_decrement_frame_pointer ();
++ }
++ break;
++
++ case _SLANG_BC_ICONST:
++ SLclass_push_int_obj (SLANG_INT_TYPE, addr-&gt;b.iconst_blk-&gt;i);
++ break;
++
++#if SLANG_HAS_FLOAT
++ case _SLANG_BC_DCONST:
++ SLang_push_double (addr-&gt;b.dconst_blk-&gt;d);
++ break;
++#endif
++
++ case _SLANG_BC_PVARIABLE:
++ if (-1 == _SLpush_slang_obj (&amp;addr-&gt;b.nt_gvar_blk-&gt;obj))
++ do_name_type_error (addr-&gt;b.nt_blk);
++ break;
++
++ case _SLANG_BC_PFUNCTION:
++ execute_slang_fun (addr-&gt;b.nt_fun_blk);
++ if (Lang_Break_Condition) goto handle_break_condition;
++ break;
++
++ case _SLANG_BC_BINARY:
++ do_binary (addr-&gt;b.i_blk);
++ break;
++
++ case _SLANG_BC_LITERAL:
++#if !_SLANG_OPTIMIZE_FOR_SPEED
++ case _SLANG_BC_LITERAL_INT:
++ case _SLANG_BC_LITERAL_STR:
++#endif
++ {
++ SLang_Class_Type *cl = _SLclass_get_class (addr-&gt;bc_sub_type);
++ (*cl-&gt;cl_push_literal) (addr-&gt;bc_sub_type, (VOID_STAR) &amp;addr-&gt;b.ptr_blk);
++ }
++ break;
++#if _SLANG_OPTIMIZE_FOR_SPEED
++ case _SLANG_BC_LITERAL_INT:
++ SLclass_push_int_obj (addr-&gt;bc_sub_type, (int) addr-&gt;b.l_blk);
++ break;
++
++ case _SLANG_BC_LITERAL_STR:
++ _SLang_dup_and_push_slstring (addr-&gt;b.s_blk);
++ break;
++#endif
++ case _SLANG_BC_BLOCK:
++ switch (addr-&gt;bc_sub_type)
++ {
++ case _SLANG_BCST_ERROR_BLOCK:
++ err_block = addr;
++ break;
++
++ case _SLANG_BCST_EXIT_BLOCK:
++ Exit_Block_Ptr = addr-&gt;b.blk;
++ break;
++
++ case _SLANG_BCST_USER_BLOCK0:
++ case _SLANG_BCST_USER_BLOCK1:
++ case _SLANG_BCST_USER_BLOCK2:
++ case _SLANG_BCST_USER_BLOCK3:
++ case _SLANG_BCST_USER_BLOCK4:
++ User_Block_Ptr[addr-&gt;bc_sub_type - _SLANG_BCST_USER_BLOCK0] = addr-&gt;b.blk;
++ break;
++
++ case _SLANG_BCST_LOOP:
++ case _SLANG_BCST_WHILE:
++ case _SLANG_BCST_FOR:
++ case _SLANG_BCST_FOREVER:
++ case _SLANG_BCST_CFOR:
++ case _SLANG_BCST_DOWHILE:
++ case _SLANG_BCST_FOREACH:
++ if (block == NULL) block = addr;
++ lang_do_loops(addr-&gt;bc_sub_type, block, 1 + (unsigned int) (addr - block));
++ block = NULL;
++ break;
++
++ case _SLANG_BCST_IFNOT:
++#if _SLANG_OPTIMIZE_FOR_SPEED
++ {
++ int i;
++
++ if ((0 == pop_ctrl_integer (&amp;i)) &amp;&amp; (i == 0))
++ inner_interp (addr-&gt;b.blk);
++ }
++#else
++ do_else_if (addr, NULL);
++#endif
++ break;
++
++ case _SLANG_BCST_IF:
++#if _SLANG_OPTIMIZE_FOR_SPEED
++ {
++ int i;
++
++ if ((0 == pop_ctrl_integer (&amp;i)) &amp;&amp; i)
++ inner_interp (addr-&gt;b.blk);
++ }
++#else
++ do_else_if (NULL, addr);
++#endif
++ break;
++
++ case _SLANG_BCST_NOTELSE:
++ do_else_if (block, addr);
++ block = NULL;
++ break;
++
++ case _SLANG_BCST_ELSE:
++ do_else_if (addr, block);
++ block = NULL;
++ break;
++
++ case _SLANG_BCST_SWITCH:
++ if (Switch_Obj_Ptr == Switch_Obj_Max)
++ {
++ SLang_doerror(&quot;switch nesting too deep&quot;);
++ break;
++ }
++ (void) SLang_pop (Switch_Obj_Ptr);
++ Switch_Obj_Ptr++;
++
++ if (block == NULL) block = addr;
++ while ((SLang_Error == 0)
++ &amp;&amp; (block &lt;= addr)
++ &amp;&amp; (Lang_Break_Condition == 0)
++ &amp;&amp; (0 == inner_interp (block-&gt;b.blk)))
++ block++;
++ Switch_Obj_Ptr--;
++ SLang_free_object (Switch_Obj_Ptr);
++ Switch_Obj_Ptr-&gt;data_type = 0;
++ block = NULL;
++ break;
++
++ case _SLANG_BCST_ANDELSE:
++ case _SLANG_BCST_ORELSE:
++ if (block == NULL) block = addr;
++ lang_do_and_orelse (addr-&gt;bc_sub_type, block, addr);
++ block = NULL;
++ break;
++
++ default:
++ if (block == NULL) block = addr;
++ break;
++ }
++ if (Lang_Break_Condition) goto handle_break_condition;
++ break;
++
++ case _SLANG_BC_RETURN:
++ Lang_Break_Condition = Lang_Return = Lang_Break = 1; return 1;
++ case _SLANG_BC_BREAK:
++ Lang_Break_Condition = Lang_Break = 1; return 1;
++ case _SLANG_BC_CONTINUE:
++ Lang_Break_Condition = /* Lang_Continue = */ 1; return 1;
++
++ case _SLANG_BC_EXCH:
++ (void) SLreverse_stack (2);
++ break;
++
++ case _SLANG_BC_LABEL:
++ {
++ int test;
++ if ((0 == SLang_pop_integer (&amp;test))
++ &amp;&amp; (test == 0))
++ return 0;
++ }
++ break;
++
++ case _SLANG_BC_LOBJPTR:
++ (void)_SLang_push_ref (0, (VOID_STAR)(Local_Variable_Frame - addr-&gt;b.i_blk));
++ break;
++
++ case _SLANG_BC_GOBJPTR:
++ (void)_SLang_push_ref (1, (VOID_STAR)addr-&gt;b.nt_blk);
++ break;
++
++ case _SLANG_BC_X_ERROR:
++ if (err_block != NULL)
++ {
++ inner_interp(err_block-&gt;b.blk);
++ if (SLang_Error) err_block = NULL;
++ }
++ else SLang_verror(SL_SYNTAX_ERROR, &quot;No ERROR_BLOCK&quot;);
++ if (Lang_Break_Condition) goto handle_break_condition;
++ break;
++
++ case _SLANG_BC_X_USER0:
++ case _SLANG_BC_X_USER1:
++ case _SLANG_BC_X_USER2:
++ case _SLANG_BC_X_USER3:
++ case _SLANG_BC_X_USER4:
++ if (User_Block_Ptr[addr-&gt;bc_main_type - _SLANG_BC_X_USER0] != NULL)
++ {
++ inner_interp(User_Block_Ptr[addr-&gt;bc_main_type - _SLANG_BC_X_USER0]);
++ }
++ else SLang_verror(SL_SYNTAX_ERROR, &quot;No block for X_USERBLOCK&quot;);
++ if (Lang_Break_Condition) goto handle_break_condition;
++ break;
++
++ case _SLANG_BC_CALL_DIRECT:
++ (*addr-&gt;b.call_function) ();
++ break;
++
++ case _SLANG_BC_CALL_DIRECT_FRAME:
++ do_bc_call_direct_frame (addr-&gt;b.call_function);
++ break;
++
++ case _SLANG_BC_UNARY:
++ do_unary (addr-&gt;b.i_blk, _SLANG_BC_UNARY);
++ break;
++
++ case _SLANG_BC_UNARY_FUNC:
++ /* Make sure we treat these like function calls since the
++ * parser took abs(x) to be a function call.
++ */
++ if (0 == _SL_increment_frame_pointer ())
++ {
++ do_unary (addr-&gt;b.i_blk, _SLANG_BC_UNARY);
++ (void) _SL_decrement_frame_pointer ();
++ }
++ break;
++
++ case _SLANG_BC_DEREF_ASSIGN:
++ set_deref_lvalue (addr);
++ break;
++ case _SLANG_BC_SET_LOCAL_LVALUE:
++ set_lvalue_obj (addr-&gt;bc_sub_type, Local_Variable_Frame - addr-&gt;b.i_blk);
++ break;
++ case _SLANG_BC_SET_GLOBAL_LVALUE:
++ if (-1 == set_lvalue_obj (addr-&gt;bc_sub_type, &amp;addr-&gt;b.nt_gvar_blk-&gt;obj))
++ do_name_type_error (addr-&gt;b.nt_blk);
++ break;
++ case _SLANG_BC_SET_INTRIN_LVALUE:
++ set_intrin_lvalue (addr);
++ break;
++ case _SLANG_BC_SET_STRUCT_LVALUE:
++ set_struct_lvalue (addr);
++ break;
++
++ case _SLANG_BC_FIELD:
++ (void) push_struct_field (addr-&gt;b.s_blk);
++ break;
++
++ case _SLANG_BC_SET_ARRAY_LVALUE:
++ set_array_lvalue (addr-&gt;bc_sub_type);
++ break;
++
++#if _SLANG_HAS_DEBUG_CODE
++ case _SLANG_BC_LINE_NUM:
++ break;
++#endif
++
++ case _SLANG_BC_TMP:
++ tmp_variable_function (addr);
++ break;
++
++#if _SLANG_OPTIMIZE_FOR_SPEED
++ case _SLANG_BC_LVARIABLE_AGET:
++ if (0 == push_local_variable (addr-&gt;b.i_blk))
++ do_bc_call_direct_frame (_SLarray_aget);
++ break;
++
++ case _SLANG_BC_LVARIABLE_APUT:
++ if (0 == push_local_variable (addr-&gt;b.i_blk))
++ do_bc_call_direct_frame (_SLarray_aput);
++ break;
++ case _SLANG_BC_INTEGER_PLUS:
++ if (0 == SLclass_push_int_obj (addr-&gt;bc_sub_type, (int) addr-&gt;b.l_blk))
++ do_binary (SLANG_PLUS);
++ break;
++
++ case _SLANG_BC_INTEGER_MINUS:
++ if (0 == SLclass_push_int_obj (addr-&gt;bc_sub_type, (int) addr-&gt;b.l_blk))
++ do_binary (SLANG_MINUS);
++ break;
++#endif
++#if 0
++ case _SLANG_BC_ARG_LVARIABLE:
++ (void) SLang_start_arg_list ();
++ push_local_variable (addr-&gt;b.i_blk);
++ break;
++#endif
++ case _SLANG_BC_EARG_LVARIABLE:
++ push_local_variable (addr-&gt;b.i_blk);
++ (void) SLang_end_arg_list ();
++ break;
++
++#if USE_COMBINED_BYTECODES
++ case _SLANG_BC_CALL_DIRECT_INTRINSIC:
++ (*addr-&gt;b.call_function) ();
++ addr++;
++ execute_intrinsic_fun (addr-&gt;b.nt_ifun_blk);
++ if (SLang_Error)
++ do_traceback(addr-&gt;b.nt_ifun_blk-&gt;name, 0, NULL);
++ break;
++
++ case _SLANG_BC_INTRINSIC_CALL_DIRECT:
++ execute_intrinsic_fun (addr-&gt;b.nt_ifun_blk);
++ if (SLang_Error)
++ {
++ do_traceback(addr-&gt;b.nt_ifun_blk-&gt;name, 0, NULL);
++ break;
++ }
++ addr++;
++ (*addr-&gt;b.call_function) ();
++ break;
++
++ case _SLANG_BC_CALL_DIRECT_LSTR:
++ (*addr-&gt;b.call_function) ();
++ addr++;
++ _SLang_dup_and_push_slstring (addr-&gt;b.s_blk);
++ break;
++
++ case _SLANG_BC_CALL_DIRECT_SLFUN:
++ (*addr-&gt;b.call_function) ();
++ addr++;
++ execute_slang_fun (addr-&gt;b.nt_fun_blk);
++ if (Lang_Break_Condition) goto handle_break_condition;
++ break;
++
++ case _SLANG_BC_CALL_DIRECT_INTRSTOP:
++ (*addr-&gt;b.call_function) ();
++ addr++;
++ /* drop */
++ case _SLANG_BC_INTRINSIC_STOP:
++ execute_intrinsic_fun (addr-&gt;b.nt_ifun_blk);
++ if (SLang_Error == 0)
++ return 1;
++ do_traceback(addr-&gt;b.nt_ifun_blk-&gt;name, 0, NULL);
++ break;
++
++ case _SLANG_BC_CALL_DIRECT_EARG_LVAR:
++ (*addr-&gt;b.call_function) ();
++ addr++;
++ push_local_variable (addr-&gt;b.i_blk);
++ (void) SLang_end_arg_list ();
++ break;
++
++ case _SLANG_BC_CALL_DIRECT_LINT:
++ (*addr-&gt;b.call_function) ();
++ addr++;
++ SLclass_push_int_obj (addr-&gt;bc_sub_type, (int) addr-&gt;b.l_blk);
++ break;
++
++ case _SLANG_BC_CALL_DIRECT_LVAR:
++ (*addr-&gt;b.call_function) ();
++ addr++;
++ push_local_variable (addr-&gt;b.i_blk);
++ break;
++#endif /* USE_COMBINED_BYTECODES */
++
++ default:
++ SLang_verror (SL_INTERNAL_ERROR, &quot;Byte-Code 0x%X is not valid&quot;, addr-&gt;bc_main_type);
++ }
++
++ /* Someday I plan to add a 'signal' intrinsic function. Then when a
++ * signal is caught, a variable will be set to one and that value of
++ * that variable will need to be monitored here, e.g.,
++ * if (Handle_Signal) handle_signal ();
++ * It would be nice to check only one variable instead of Handle_Signal
++ * and SLang_Error. Perhaps I should phase out SLang_Error = xxx
++ * and used something like: SLang_set_error (code); Then, I could
++ * use:
++ * if (Handle_Condition)
++ * {
++ * Handle_Condition = 0;
++ * if (SLang_Error) ....
++ * else if (Handle_Signal) handle_signal ();
++ * else....
++ * }
++ */
++ if (SLang_Error)
++ {
++ if (-1 == do_inner_interp_error (err_block, addr_start, addr))
++ return 1;
++ if (SLang_Error)
++ return 1;
++
++ /* Otherwise, error cleared. Continue onto next bytecode.
++ * Someday I need to add something to indicate where the
++ * next statement begins since continuing on the next
++ * bytecode is not really what is desired.
++ */
++ if (Lang_Break_Condition) goto handle_break_condition;
++ }
++ addr++;
++ }
++
++ handle_break_condition:
++ /* Get here if Lang_Break_Condition != 0, which implies that either
++ * Lang_Return, Lang_Break, or Lang_Continue is non zero
++ */
++ if (Lang_Return)
++ Lang_Break = 1;
++
++ return 1;
++}
++
++/*}}}*/
++
++/* The functions below this point are used to implement the parsed token
++ * to byte-compiled code.
++ */
++/* static SLang_Name_Type **Static_Hash_Table; */
++
++static SLang_Name_Type **Locals_Hash_Table;
++static int Local_Variable_Number;
++static unsigned int Function_Args_Number;
++int _SLang_Auto_Declare_Globals = 0;
++int (*SLang_Auto_Declare_Var_Hook) (char *);
++
++static SLang_NameSpace_Type *This_Static_NameSpace;
++static SLang_NameSpace_Type *Global_NameSpace;
++
++#if _SLANG_HAS_DEBUG_CODE
++static char *This_Compile_Filename;
++#endif
++static SLBlock_Type SLShort_Blocks[6];
++/* These are initialized in add_table below. I cannot init a Union!! */
++
++static int Lang_Defining_Function;
++static void (*Default_Variable_Mode) (_SLang_Token_Type *);
++static void (*Default_Define_Function) (char *, unsigned long);
++
++static int push_compile_context (char *);
++static int pop_compile_context (void);
++
++typedef struct
++{
++ int block_type;
++ SLBlock_Type *block; /* beginning of block definition */
++ SLBlock_Type *block_ptr; /* current location */
++ SLBlock_Type *block_max; /* end of definition */
++ SLang_NameSpace_Type *static_namespace;
++}
++Block_Context_Type;
++
++static Block_Context_Type Block_Context_Stack [SLANG_MAX_BLOCK_STACK_LEN];
++static unsigned int Block_Context_Stack_Len;
++
++static SLBlock_Type *Compile_ByteCode_Ptr;
++static SLBlock_Type *This_Compile_Block;
++static SLBlock_Type *This_Compile_Block_Max;
++static int This_Compile_Block_Type;
++#define COMPILE_BLOCK_TYPE_FUNCTION 1
++#define COMPILE_BLOCK_TYPE_BLOCK 2
++#define COMPILE_BLOCK_TYPE_TOP_LEVEL 3
++
++/* If it returns 0, DO NOT FREE p */
++static int lang_free_branch (SLBlock_Type *p)
++{
++ /* Note: we look at 0,2,4, since these blocks are 0 terminated */
++ if ((p == SLShort_Blocks)
++ || (p == SLShort_Blocks + 2)
++ || (p == SLShort_Blocks + 4)
++ )
++ return 0;
++
++ while (1)
++ {
++ SLang_Class_Type *cl;
++
++ switch (p-&gt;bc_main_type)
++ {
++ case _SLANG_BC_BLOCK:
++ if (lang_free_branch(p-&gt;b.blk))
++ SLfree((char *)p-&gt;b.blk);
++ break;
++
++ case _SLANG_BC_LITERAL:
++ case _SLANG_BC_LITERAL_STR:
++ /* No user types should be here. */
++ cl = _SLclass_get_class (p-&gt;bc_sub_type);
++ (*cl-&gt;cl_byte_code_destroy) (p-&gt;bc_sub_type, (VOID_STAR) &amp;p-&gt;b.ptr_blk);
++ break;
++
++ case _SLANG_BC_FIELD:
++ case _SLANG_BC_SET_STRUCT_LVALUE:
++ SLang_free_slstring (p-&gt;b.s_blk);
++ break;
++
++ default:
++ break;
++
++ case 0:
++ return 1;
++ }
++ p++;
++ }
++}
++
++static void free_function_header (_SLBlock_Header_Type *h)
++{
++ if (h-&gt;num_refs &gt; 1)
++ {
++ h-&gt;num_refs--;
++ return;
++ }
++
++ if (h-&gt;body != NULL)
++ {
++ if (lang_free_branch (h-&gt;body))
++ SLfree ((char *) h-&gt;body);
++ }
++
++ SLfree ((char *) h);
++}
++
++static int push_block_context (int type)
++{
++ Block_Context_Type *c;
++ unsigned int num;
++ SLBlock_Type *b;
++
++ if (Block_Context_Stack_Len == SLANG_MAX_BLOCK_STACK_LEN)
++ {
++ SLang_verror (SL_STACK_OVERFLOW, &quot;Block stack overflow&quot;);
++ return -1;
++ }
++
++ num = 5; /* 40 bytes */
++ if (NULL == (b = (SLBlock_Type *) SLcalloc (num, sizeof (SLBlock_Type))))
++ return -1;
++
++ c = Block_Context_Stack + Block_Context_Stack_Len;
++ c-&gt;block = This_Compile_Block;
++ c-&gt;block_ptr = Compile_ByteCode_Ptr;
++ c-&gt;block_max = This_Compile_Block_Max;
++ c-&gt;block_type = This_Compile_Block_Type;
++ c-&gt;static_namespace = This_Static_NameSpace;
++
++ Compile_ByteCode_Ptr = This_Compile_Block = b;
++ This_Compile_Block_Max = b + num;
++ This_Compile_Block_Type = type;
++
++ Block_Context_Stack_Len += 1;
++ return 0;
++}
++
++static int pop_block_context (void)
++{
++ Block_Context_Type *c;
++
++ if (Block_Context_Stack_Len == 0)
++ return -1;
++
++ Block_Context_Stack_Len -= 1;
++ c = Block_Context_Stack + Block_Context_Stack_Len;
++
++ This_Compile_Block = c-&gt;block;
++ This_Compile_Block_Max = c-&gt;block_max;
++ This_Compile_Block_Type = c-&gt;block_type;
++ Compile_ByteCode_Ptr = c-&gt;block_ptr;
++ This_Static_NameSpace = c-&gt;static_namespace;
++
++ return 0;
++}
++
++int _SLcompile_push_context (SLang_Load_Type *load_object)
++{
++ if (-1 == push_compile_context (load_object-&gt;name))
++ return -1;
++
++ if (NULL == (This_Static_NameSpace = _SLns_allocate_namespace (load_object-&gt;name, SLSTATIC_HASH_TABLE_SIZE)))
++ {
++ pop_compile_context ();
++ return -1;
++ }
++
++ if (-1 == push_block_context (COMPILE_BLOCK_TYPE_TOP_LEVEL))
++ {
++ pop_compile_context ();
++ return -1;
++ }
++
++ return 0;
++}
++
++int _SLcompile_pop_context (void)
++{
++ if (This_Compile_Block_Type == COMPILE_BLOCK_TYPE_TOP_LEVEL)
++ {
++ Compile_ByteCode_Ptr-&gt;bc_main_type = 0;
++ if (lang_free_branch (This_Compile_Block))
++ SLfree ((char *) This_Compile_Block);
++ }
++
++ (void) pop_block_context ();
++ (void) pop_compile_context ();
++
++ if (This_Compile_Block == NULL)
++ return 0;
++
++#if 0
++ if (This_Compile_Block_Type != COMPILE_BLOCK_TYPE_TOP_LEVEL)
++ {
++ SLang_verror (SL_INTERNAL_ERROR, &quot;Not at top-level&quot;);
++ return -1;
++ }
++#endif
++
++ return 0;
++}
++
++/*{{{ Hash and Name Table Functions */
++
++static SLang_Name_Type *locate_name_in_table (char *name, unsigned long hash,
++ SLang_Name_Type **table, unsigned int table_size)
++{
++ SLang_Name_Type *t;
++ char ch;
++
++ t = table [(unsigned int) (hash % table_size)];
++ ch = *name++;
++
++ while (t != NULL)
++ {
++ if ((ch == t-&gt;name[0])
++ &amp;&amp; (0 == strcmp (t-&gt;name + 1, name)))
++ break;
++
++ t = t-&gt;next;
++ }
++
++ return t;
++}
++
++static SLang_Name_Type *locate_namespace_encoded_name (char *name, int err_on_bad_ns)
++{
++ char *ns, *ns1;
++ SLang_NameSpace_Type *table;
++ SLang_Name_Type *nt;
++
++ ns = name;
++ name = strchr (name, '-');
++ if ((name == NULL) || (name [1] != '&gt;'))
++ name = ns;
++
++ ns1 = SLang_create_nslstring (ns, (unsigned int) (name - ns));
++ if (ns1 == NULL)
++ return NULL;
++ if (ns != name)
++ name += 2;
++ ns = ns1;
++
++ if (*ns == 0)
++ {
++ /* Use Global Namespace */
++ SLang_free_slstring (ns);
++ return locate_name_in_table (name, _SLcompute_string_hash (name),
++ Global_NameSpace-&gt;table, Global_NameSpace-&gt;table_size);
++ }
++
++ if (NULL == (table = _SLns_find_namespace (ns)))
++ {
++ if (err_on_bad_ns)
++ SLang_verror (SL_SYNTAX_ERROR, &quot;Unable to find namespace called %s&quot;, ns);
++ SLang_free_slstring (ns);
++ return NULL;
++ }
++ SLang_free_slstring (ns);
++
++ /* FIXME: the hash table size should be stored in the hash table itself */
++ nt = locate_name_in_table (name, _SLcompute_string_hash (name),
++ table-&gt;table, table-&gt;table_size);
++ if (nt == NULL)
++ return NULL;
++
++ switch (nt-&gt;name_type)
++ {
++ /* These are private and cannot be accessed through the namespace. */
++ case SLANG_PVARIABLE:
++ case SLANG_PFUNCTION:
++ return NULL;
++ }
++ return nt;
++}
++
++static SLang_Name_Type *locate_hashed_name (char *name, unsigned long hash)
++{
++ SLang_Name_Type *t;
++
++ if (Lang_Defining_Function)
++ {
++ t = locate_name_in_table (name, hash, Locals_Hash_Table, SLLOCALS_HASH_TABLE_SIZE);
++ if (t != NULL)
++ return t;
++ }
++
++ if ((This_Static_NameSpace != NULL)
++ &amp;&amp; (NULL != (t = locate_name_in_table (name, hash, This_Static_NameSpace-&gt;table, This_Static_NameSpace-&gt;table_size))))
++ return t;
++
++ t = locate_name_in_table (name, hash, Global_NameSpace-&gt;table, Global_NameSpace-&gt;table_size);
++ if (NULL != t)
++ return t;
++
++ return locate_namespace_encoded_name (name, 1);
++}
++
++SLang_Name_Type *_SLlocate_name (char *name)
++{
++ return locate_hashed_name (name, _SLcompute_string_hash (name));
++}
++
++static SLang_Name_Type *
++add_name_to_hash_table (char *name, unsigned long hash,
++ unsigned int sizeof_obj, unsigned char name_type,
++ SLang_Name_Type **table, unsigned int table_size,
++ int check_existing)
++{
++ SLang_Name_Type *t;
++
++ if (check_existing)
++ {
++ t = locate_name_in_table (name, hash, table, table_size);
++ if (t != NULL)
++ return t;
++ }
++
++ if (-1 == _SLcheck_identifier_syntax (name))
++ return NULL;
++
++ t = (SLang_Name_Type *) SLmalloc (sizeof_obj);
++ if (t == NULL)
++ return t;
++
++ memset ((char *) t, 0, sizeof_obj);
++ if (NULL == (t-&gt;name = _SLstring_dup_hashed_string (name, hash)))
++ {
++ SLfree ((char *) t);
++ return NULL;
++ }
++ t-&gt;name_type = name_type;
++
++ hash = hash % table_size;
++ t-&gt;next = table [(unsigned int)hash];
++ table [(unsigned int) hash] = t;
++
++ return t;
++}
++
++static SLang_Name_Type *
++add_global_name (char *name, unsigned long hash,
++ unsigned char name_type, unsigned int sizeof_obj,
++ SLang_NameSpace_Type *ns)
++{
++ SLang_Name_Type *nt;
++ SLang_Name_Type **table;
++ unsigned int table_size;
++
++ table = ns-&gt;table;
++ table_size = ns-&gt;table_size;
++
++ nt = locate_name_in_table (name, hash, table, table_size);
++ if (nt != NULL)
++ {
++ if (nt-&gt;name_type == name_type)
++ return nt;
++
++ SLang_verror (SL_DUPLICATE_DEFINITION, &quot;%s cannot be re-defined&quot;, name);
++ return NULL;
++ }
++
++ return add_name_to_hash_table (name, hash, sizeof_obj, name_type,
++ table, table_size, 0);
++}
++
++static int add_intrinsic_function (SLang_NameSpace_Type *ns,
++ char *name, FVOID_STAR addr, unsigned char ret_type,
++ unsigned int nargs, va_list ap)
++{
++ SLang_Intrin_Fun_Type *f;
++ unsigned int i;
++
++ if (-1 == init_interpreter ())
++ return -1;
++
++ if (ns == NULL) ns = Global_NameSpace;
++
++ if (nargs &gt; SLANG_MAX_INTRIN_ARGS)
++ {
++ SLang_verror (SL_APPLICATION_ERROR, &quot;Function %s requires too many arguments&quot;, name);
++ return -1;
++ }
++
++ if (ret_type == SLANG_FLOAT_TYPE)
++ {
++ SLang_verror (SL_NOT_IMPLEMENTED, &quot;Function %s is not permitted to return float&quot;, name);
++ return -1;
++ }
++
++ f = (SLang_Intrin_Fun_Type *) add_global_name (name, _SLcompute_string_hash (name),
++ SLANG_INTRINSIC, sizeof (SLang_Intrin_Fun_Type),
++ ns);
++
++ if (f == NULL)
++ return -1;
++
++ f-&gt;i_fun = addr;
++ f-&gt;num_args = nargs;
++ f-&gt;return_type = ret_type;
++
++ for (i = 0; i &lt; nargs; i++)
++ f-&gt;arg_types [i] = va_arg (ap, unsigned int);
++
++ return 0;
++}
++
++int SLadd_intrinsic_function (char *name, FVOID_STAR addr, unsigned char ret_type,
++ unsigned int nargs, ...)
++{
++ va_list ap;
++ int status;
++
++ va_start (ap, nargs);
++ status = add_intrinsic_function (NULL, name, addr, ret_type, nargs, ap);
++ va_end (ap);
++
++ return status;
++}
++
++int SLns_add_intrinsic_function (SLang_NameSpace_Type *ns,
++ char *name, FVOID_STAR addr, unsigned char ret_type,
++ unsigned int nargs, ...)
++{
++ va_list ap;
++ int status;
++
++ va_start (ap, nargs);
++ status = add_intrinsic_function (ns, name, addr, ret_type, nargs, ap);
++ va_end (ap);
++
++ return status;
++}
++
++int SLns_add_intrinsic_variable (SLang_NameSpace_Type *ns,
++ char *name, VOID_STAR addr, unsigned char data_type, int ro)
++{
++ SLang_Intrin_Var_Type *v;
++
++ if (-1 == init_interpreter ())
++ return -1;
++
++ if (ns == NULL) ns = Global_NameSpace;
++
++ v = (SLang_Intrin_Var_Type *)add_global_name (name,
++ _SLcompute_string_hash (name),
++ (ro ? SLANG_RVARIABLE : SLANG_IVARIABLE),
++ sizeof (SLang_Intrin_Var_Type),
++ ns);
++ if (v == NULL)
++ return -1;
++
++ v-&gt;addr = addr;
++ v-&gt;type = data_type;
++ return 0;
++}
++
++int SLadd_intrinsic_variable (char *name, VOID_STAR addr, unsigned char data_type, int ro)
++{
++ return SLns_add_intrinsic_variable (NULL, name, addr, data_type, ro);
++}
++
++static int
++add_slang_function (char *name, unsigned char type, unsigned long hash,
++ unsigned int num_args, unsigned int num_locals,
++#if _SLANG_HAS_DEBUG_CODE
++ char *file,
++#endif
++ _SLBlock_Header_Type *h,
++ SLang_NameSpace_Type *ns)
++{
++ _SLang_Function_Type *f;
++
++#if _SLANG_HAS_DEBUG_CODE
++ if ((file != NULL)
++ &amp;&amp; (NULL == (file = SLang_create_slstring (file))))
++ return -1;
++#endif
++
++ f = (_SLang_Function_Type *)add_global_name (name, hash,
++ type,
++ sizeof (_SLang_Function_Type),
++ ns);
++ if (f == NULL)
++ {
++#if _SLANG_HAS_DEBUG_CODE
++ SLang_free_slstring (file); /* NULL ok */
++#endif
++ return -1;
++ }
++
++ if (f-&gt;v.header != NULL)
++ {
++ if (f-&gt;nlocals == AUTOLOAD_NUM_LOCALS)
++ SLang_free_slstring ((char *)f-&gt;v.autoload_filename); /* autoloaded filename */
++ else
++ free_function_header (f-&gt;v.header);
++ }
++
++#if _SLANG_HAS_DEBUG_CODE
++ if (f-&gt;file != NULL) SLang_free_slstring (f-&gt;file);
++ f-&gt;file = file;
++#endif
++ f-&gt;v.header = h;
++ f-&gt;nlocals = num_locals;
++ f-&gt;nargs = num_args;
++
++ return 0;
++}
++
++int SLang_autoload (char *name, char *file)
++{
++ _SLang_Function_Type *f;
++ unsigned long hash;
++
++ hash = _SLcompute_string_hash (name);
++ f = (_SLang_Function_Type *)locate_name_in_table (name, hash, Global_NameSpace-&gt;table, Global_NameSpace-&gt;table_size);
++
++ if ((f != NULL)
++ &amp;&amp; (f-&gt;name_type == SLANG_FUNCTION)
++ &amp;&amp; (f-&gt;v.header != NULL)
++ &amp;&amp; (f-&gt;nlocals != AUTOLOAD_NUM_LOCALS))
++ {
++ /* already loaded */
++ return 0;
++ }
++
++ file = SLang_create_slstring (file);
++ if (-1 == add_slang_function (name, SLANG_FUNCTION, hash, 0, AUTOLOAD_NUM_LOCALS,
++#if _SLANG_HAS_DEBUG_CODE
++ file,
++#endif
++ (_SLBlock_Header_Type *) file,
++ Global_NameSpace))
++ {
++ SLang_free_slstring (file);
++ return -1;
++ }
++
++ return 0;
++}
++
++SLang_Name_Type *_SLlocate_global_name (char *name)
++{
++ unsigned long hash;
++
++ hash = _SLcompute_string_hash (name);
++ return locate_name_in_table (name, hash, Global_NameSpace-&gt;table,
++ Global_NameSpace-&gt;table_size);
++}
++
++/*}}}*/
++
++static void free_local_variable_table (void)
++{
++ unsigned int i;
++ SLang_Name_Type *t, *t1;
++
++ for (i = 0; i &lt; SLLOCALS_HASH_TABLE_SIZE; i++)
++ {
++ t = Locals_Hash_Table [i];
++ while (t != NULL)
++ {
++ SLang_free_slstring (t-&gt;name);
++ t1 = t-&gt;next;
++ SLfree ((char *) t);
++ t = t1;
++ }
++ Locals_Hash_Table [i] = NULL;
++ }
++ Local_Variable_Number = 0;
++}
++
++/* call inner interpreter or return for more */
++static void lang_try_now(void)
++{
++ Compile_ByteCode_Ptr++;
++ if (This_Compile_Block_Type != COMPILE_BLOCK_TYPE_TOP_LEVEL)
++ return;
++
++ Compile_ByteCode_Ptr-&gt;bc_main_type = 0; /* so next command stops after this */
++
++ /* now do it */
++ inner_interp (This_Compile_Block);
++ (void) lang_free_branch (This_Compile_Block);
++ Compile_ByteCode_Ptr = This_Compile_Block;
++}
++
++SLang_Name_Type *SLang_get_fun_from_ref (SLang_Ref_Type *ref)
++{
++ if (ref-&gt;is_global)
++ {
++ SLang_Name_Type *nt = ref-&gt;v.nt;
++
++ switch (nt-&gt;name_type)
++ {
++ case SLANG_PFUNCTION:
++ case SLANG_FUNCTION:
++ case SLANG_INTRINSIC:
++ case SLANG_MATH_UNARY:
++ case SLANG_APP_UNARY:
++ return nt;
++ }
++ SLang_verror (SL_TYPE_MISMATCH,
++ &quot;Reference to a function expected. Found &amp;%s&quot;,
++ nt-&gt;name);
++ }
++
++ SLang_verror (SL_TYPE_MISMATCH,
++ &quot;Reference to a function expected&quot;);
++ return NULL;
++}
++
++int SLexecute_function (SLang_Name_Type *nt)
++{
++ unsigned char type;
++ char *name;
++
++ if (SLang_Error)
++ return -1;
++
++ type = nt-&gt;name_type;
++ name = nt-&gt;name;
++
++ switch (type)
++ {
++ case SLANG_PFUNCTION:
++ case SLANG_FUNCTION:
++ execute_slang_fun ((_SLang_Function_Type *) nt);
++ break;
++
++ case SLANG_INTRINSIC:
++ execute_intrinsic_fun ((SLang_Intrin_Fun_Type *) nt);
++ break;
++
++ case SLANG_MATH_UNARY:
++ case SLANG_APP_UNARY:
++ inner_interp_nametype (nt);
++ break;
++
++ default:
++ SLang_verror (SL_TYPE_MISMATCH, &quot;%s is not a function&quot;, name);
++ return -1;
++ }
++
++ if (SLang_Error)
++ {
++ SLang_verror (SLang_Error, &quot;Error while executing %s&quot;, name);
++ return -1;
++ }
++
++ return 1;
++}
++
++int SLang_execute_function (char *name)
++{
++ SLang_Name_Type *entry;
++
++ if (NULL == (entry = SLang_get_function (name)))
++ return 0;
++
++ return SLexecute_function (entry);
++}
++
++/* return S-Lang function or NULL */
++SLang_Name_Type *SLang_get_function (char *name)
++{
++ SLang_Name_Type *entry;
++
++ if (NULL == (entry = locate_namespace_encoded_name (name, 0)))
++ return NULL;
++
++ if ((entry-&gt;name_type == SLANG_FUNCTION)
++ || (entry-&gt;name_type == SLANG_INTRINSIC))
++ return entry;
++
++ return NULL;
++}
++
++static void lang_begin_function (void)
++{
++ if (This_Compile_Block_Type != COMPILE_BLOCK_TYPE_TOP_LEVEL)
++ {
++ SLang_verror (SL_SYNTAX_ERROR, &quot;Function nesting is illegal&quot;);
++ return;
++ }
++ Lang_Defining_Function = 1;
++ (void) push_block_context (COMPILE_BLOCK_TYPE_FUNCTION);
++}
++
++#if USE_COMBINED_BYTECODES
++static void optimize_block (SLBlock_Type *b)
++{
++ while (1)
++ {
++ switch (b-&gt;bc_main_type)
++ {
++ case 0:
++ return;
++
++ default:
++ b++;
++ break;
++
++ case _SLANG_BC_CALL_DIRECT:
++ b++;
++ switch (b-&gt;bc_main_type)
++ {
++ case 0:
++ return;
++ case _SLANG_BC_INTRINSIC:
++ if ((b+1)-&gt;bc_main_type == 0)
++ {
++ (b-1)-&gt;bc_main_type = _SLANG_BC_CALL_DIRECT_INTRSTOP;
++ return;
++ }
++ (b-1)-&gt;bc_main_type = _SLANG_BC_CALL_DIRECT_INTRINSIC;
++ b++;
++ break;
++ case _SLANG_BC_LITERAL_STR:
++ (b-1)-&gt;bc_main_type = _SLANG_BC_CALL_DIRECT_LSTR;
++ b++;
++ break;
++ case _SLANG_BC_FUNCTION:
++ case _SLANG_BC_PFUNCTION:
++ (b-1)-&gt;bc_main_type = _SLANG_BC_CALL_DIRECT_SLFUN;
++ b++;
++ break;
++ case _SLANG_BC_EARG_LVARIABLE:
++ (b-1)-&gt;bc_main_type = _SLANG_BC_CALL_DIRECT_EARG_LVAR;
++ b++;
++ break;
++ case _SLANG_BC_LITERAL_INT:
++ (b-1)-&gt;bc_main_type = _SLANG_BC_CALL_DIRECT_LINT;
++ b++;
++ break;
++ case _SLANG_BC_LVARIABLE:
++ (b-1)-&gt;bc_main_type = _SLANG_BC_CALL_DIRECT_LVAR;
++ b++;
++ break;
++ }
++ break;
++
++ case _SLANG_BC_INTRINSIC:
++ b++;
++ switch (b-&gt;bc_main_type)
++ {
++ case _SLANG_BC_CALL_DIRECT:
++ (b-1)-&gt;bc_main_type = _SLANG_BC_INTRINSIC_CALL_DIRECT;
++ b++;
++ break;
++#if 0
++ case _SLANG_BC_BLOCK:
++ (b-1)-&gt;bc_main_type = _SLANG_BC_INTRINSIC_BLOCK;
++ b++;
++ break;
++#endif
++
++ case 0:
++ (b-1)-&gt;bc_main_type = _SLANG_BC_INTRINSIC_STOP;
++ return;
++ }
++ break;
++ }
++ }
++}
++
++#endif
++
++
++/* name will be NULL if the object is to simply terminate the function
++ * definition. See SLang_restart.
++ */
++static int lang_define_function (char *name, unsigned char type, unsigned long hash,
++ SLang_NameSpace_Type *ns)
++{
++ if (This_Compile_Block_Type != COMPILE_BLOCK_TYPE_FUNCTION)
++ {
++ SLang_verror (SL_SYNTAX_ERROR, &quot;Premature end of function&quot;);
++ return -1;
++ }
++
++ /* terminate function */
++ Compile_ByteCode_Ptr-&gt;bc_main_type = 0;
++
++ if (name != NULL)
++ {
++ _SLBlock_Header_Type *h;
++
++ h = (_SLBlock_Header_Type *)SLmalloc (sizeof (_SLBlock_Header_Type));
++ if (h != NULL)
++ {
++ h-&gt;num_refs = 1;
++ h-&gt;body = This_Compile_Block;
++
++#if USE_COMBINED_BYTECODES
++ optimize_block (h-&gt;body);
++#endif
++
++ if (-1 == add_slang_function (name, type, hash,
++ Function_Args_Number,
++ Local_Variable_Number,
++#if _SLANG_HAS_DEBUG_CODE
++ This_Compile_Filename,
++#endif
++ h, ns))
++ SLfree ((char *) h);
++ }
++ /* Drop through for clean-up */
++ }
++
++ free_local_variable_table ();
++
++ Function_Args_Number = 0;
++ Lang_Defining_Function = 0;
++
++ if (SLang_Error) return -1;
++ /* SLang_restart will finish this if there is a slang error. */
++
++ pop_block_context ();
++
++ /* A function is only defined at top-level */
++ if (This_Compile_Block_Type != COMPILE_BLOCK_TYPE_TOP_LEVEL)
++ {
++ SLang_verror (SL_INTERNAL_ERROR, &quot;Not at top-level&quot;);
++ return -1;
++ }
++ Compile_ByteCode_Ptr = This_Compile_Block;
++ return 0;
++}
++
++static void define_static_function (char *name, unsigned long hash)
++{
++ (void) lang_define_function (name, SLANG_FUNCTION, hash, This_Static_NameSpace);
++}
++
++static void define_private_function (char *name, unsigned long hash)
++{
++ (void) lang_define_function (name, SLANG_PFUNCTION, hash, This_Static_NameSpace);
++}
++
++static void define_public_function (char *name, unsigned long hash)
++{
++ (void) lang_define_function (name, SLANG_FUNCTION, hash, Global_NameSpace);
++}
++
++static void lang_end_block (void)
++{
++ SLBlock_Type *node, *branch;
++ unsigned char mtype;
++
++ if (This_Compile_Block_Type != COMPILE_BLOCK_TYPE_BLOCK)
++ {
++ SLang_verror (SL_SYNTAX_ERROR, &quot;Not defining a block&quot;);
++ return;
++ }
++
++ /* terminate the block */
++ Compile_ByteCode_Ptr-&gt;bc_main_type = 0;
++ branch = This_Compile_Block;
++
++ /* Try to save some space by using the cached blocks. */
++ if (Compile_ByteCode_Ptr == branch + 1)
++ {
++ mtype = branch-&gt;bc_main_type;
++ if (((mtype == _SLANG_BC_BREAK)
++ || (mtype == _SLANG_BC_CONTINUE)
++ || (mtype == _SLANG_BC_RETURN))
++ &amp;&amp; (SLang_Error == 0))
++ {
++ SLfree ((char *)branch);
++ branch = SLShort_Blocks + 2 * (int) (mtype - _SLANG_BC_RETURN);
++ }
++ }
++
++#if USE_COMBINED_BYTECODES
++ optimize_block (branch);
++#endif
++
++ pop_block_context ();
++ node = Compile_ByteCode_Ptr++;
++
++ node-&gt;bc_main_type = _SLANG_BC_BLOCK;
++ node-&gt;bc_sub_type = 0;
++ node-&gt;b.blk = branch;
++}
++
++static int lang_begin_block (void)
++{
++ return push_block_context (COMPILE_BLOCK_TYPE_BLOCK);
++}
++
++static int lang_check_space (void)
++{
++ unsigned int n;
++ SLBlock_Type *p;
++
++ if (NULL == (p = This_Compile_Block))
++ {
++ SLang_verror (SL_INTERNAL_ERROR, &quot;Top-level block not present&quot;);
++ return -1;
++ }
++
++ /* Allow 1 extra for terminator */
++ if (Compile_ByteCode_Ptr + 1 &lt; This_Compile_Block_Max)
++ return 0;
++
++ n = (unsigned int) (This_Compile_Block_Max - p);
++
++ /* enlarge the space by 2 objects */
++ n += 2;
++
++ if (NULL == (p = (SLBlock_Type *) SLrealloc((char *)p, n * sizeof(SLBlock_Type))))
++ return -1;
++
++ This_Compile_Block_Max = p + n;
++ n = (unsigned int) (Compile_ByteCode_Ptr - This_Compile_Block);
++ This_Compile_Block = p;
++ Compile_ByteCode_Ptr = p + n;
++
++ return 0;
++}
++
++/* returns positive number if name is a function or negative number if it
++ is a variable. If it is intrinsic, it returns magnitude of 1, else 2 */
++int SLang_is_defined(char *name)
++{
++ SLang_Name_Type *t;
++
++ if (-1 == init_interpreter ())
++ return -1;
++
++ t = locate_namespace_encoded_name (name, 0);
++ if (t == NULL)
++ return 0;
++
++ switch (t-&gt;name_type)
++ {
++ case SLANG_FUNCTION:
++ /* case SLANG_PFUNCTION: */
++ return 2;
++ case SLANG_GVARIABLE:
++ /* case SLANG_PVARIABLE: */
++ return -2;
++
++ case SLANG_ICONSTANT:
++ case SLANG_DCONSTANT:
++ case SLANG_RVARIABLE:
++ case SLANG_IVARIABLE:
++ return -1;
++
++ case SLANG_INTRINSIC:
++ default:
++ return 1;
++ }
++}
++
++static int add_global_variable (char *name, char name_type, unsigned long hash,
++ SLang_NameSpace_Type *ns)
++{
++ SLang_Name_Type *g;
++
++ /* Note the importance of checking if it is already defined or not. For example,
++ * suppose X is defined as an intrinsic variable. Then S-Lang code like:
++ * !if (is_defined(&quot;X&quot;)) { variable X; }
++ * will not result in a global variable X. On the other hand, this would
++ * not be an issue if 'variable' statements always were not processed
++ * immediately. That is, as it is now, 'if (0) {variable ZZZZ;}' will result
++ * in the variable ZZZZ being defined because of the immediate processing.
++ * The current solution is to do: if (0) { eval(&quot;variable ZZZZ;&quot;); }
++ */
++ /* hash = _SLcompute_string_hash (name); */
++ g = locate_name_in_table (name, hash, ns-&gt;table, ns-&gt;table_size);
++
++ if (g != NULL)
++ {
++ if (g-&gt;name_type == name_type)
++ return 0;
++ }
++
++ if (NULL == add_global_name (name, hash, name_type,
++ sizeof (SLang_Global_Var_Type), ns))
++ return -1;
++
++ return 0;
++}
++
++int SLadd_global_variable (char *name)
++{
++ if (-1 == init_interpreter ())
++ return -1;
++
++ return add_global_variable (name, SLANG_GVARIABLE,
++ _SLcompute_string_hash (name),
++ Global_NameSpace);
++}
++
++static int add_local_variable (char *name, unsigned long hash)
++{
++ SLang_Local_Var_Type *t;
++
++ /* local variable */
++ if (Local_Variable_Number &gt;= SLANG_MAX_LOCAL_VARIABLES)
++ {
++ SLang_verror (SL_SYNTAX_ERROR, &quot;Too many local variables&quot;);
++ return -1;
++ }
++
++ if (NULL != locate_name_in_table (name, hash, Locals_Hash_Table, SLLOCALS_HASH_TABLE_SIZE))
++ {
++ SLang_verror (SL_SYNTAX_ERROR, &quot;Local variable %s has already been defined&quot;, name);
++ return -1;
++ }
++
++ t = (SLang_Local_Var_Type *)
++ add_name_to_hash_table (name, hash,
++ sizeof (SLang_Local_Var_Type), SLANG_LVARIABLE,
++ Locals_Hash_Table, SLLOCALS_HASH_TABLE_SIZE, 0);
++ if (t == NULL)
++ return -1;
++
++ t-&gt;local_var_number = Local_Variable_Number;
++ Local_Variable_Number++;
++ return 0;
++}
++
++static void (*Compile_Mode_Function) (_SLang_Token_Type *);
++static void compile_basic_token_mode (_SLang_Token_Type *);
++
++/* if an error occurs, discard current object, block, function, etc... */
++void SLang_restart (int localv)
++{
++ int save = SLang_Error;
++
++ SLang_Error = SL_UNKNOWN_ERROR;
++
++ _SLcompile_ptr = _SLcompile;
++ Compile_Mode_Function = compile_basic_token_mode;
++
++ Lang_Break = /* Lang_Continue = */ Lang_Return = 0;
++ Trace_Mode = 0;
++
++ while (This_Compile_Block_Type == COMPILE_BLOCK_TYPE_BLOCK)
++ lang_end_block();
++
++ if (This_Compile_Block_Type == COMPILE_BLOCK_TYPE_FUNCTION)
++ {
++ /* Terminate function definition and free variables */
++ lang_define_function (NULL, SLANG_FUNCTION, 0, Global_NameSpace);
++ if (lang_free_branch (This_Compile_Block))
++ SLfree((char *)This_Compile_Block);
++ }
++ Lang_Defining_Function = 0;
++
++ SLang_Error = save;
++
++ if (SLang_Error == SL_STACK_OVERFLOW)
++ {
++ /* This loop guarantees that the stack is properly cleaned. */
++ while (_SLStack_Pointer != _SLRun_Stack)
++ {
++ SLdo_pop ();
++ }
++ }
++
++ while ((This_Compile_Block_Type != COMPILE_BLOCK_TYPE_TOP_LEVEL)
++ &amp;&amp; (0 == pop_block_context ()))
++ ;
++
++ if (localv)
++ {
++ Next_Function_Num_Args = SLang_Num_Function_Args = 0;
++ Local_Variable_Frame = Local_Variable_Stack;
++ Recursion_Depth = 0;
++ Frame_Pointer = _SLStack_Pointer;
++ Frame_Pointer_Depth = 0;
++ Switch_Obj_Ptr = Switch_Objects;
++ while (Switch_Obj_Ptr &lt; Switch_Obj_Max)
++ {
++ SLang_free_object (Switch_Obj_Ptr);
++ Switch_Obj_Ptr++;
++ }
++ Switch_Obj_Ptr = Switch_Objects;
++ }
++}
++
++static void compile_directive (unsigned char sub_type)
++{
++ /* This function is called only from compile_directive_mode which is
++ * only possible when a block is available.
++ */
++
++ /* use BLOCK */
++ Compile_ByteCode_Ptr--;
++ Compile_ByteCode_Ptr-&gt;bc_sub_type = sub_type;
++
++ lang_try_now ();
++}
++
++static void compile_unary (int op, unsigned char mt)
++{
++ Compile_ByteCode_Ptr-&gt;bc_main_type = mt;
++ Compile_ByteCode_Ptr-&gt;b.i_blk = op;
++ Compile_ByteCode_Ptr-&gt;bc_sub_type = 0;
++
++ lang_try_now ();
++}
++
++
++static void compile_binary (int op)
++{
++ Compile_ByteCode_Ptr-&gt;bc_main_type = _SLANG_BC_BINARY;
++ Compile_ByteCode_Ptr-&gt;b.i_blk = op;
++ Compile_ByteCode_Ptr-&gt;bc_sub_type = 0;
++
++ lang_try_now ();
++}
++
++#if _SLANG_OPTIMIZE_FOR_SPEED
++static int try_compressed_bytecode (unsigned char last_bc, unsigned char bc)
++{
++ if (Compile_ByteCode_Ptr != This_Compile_Block)
++ {
++ SLBlock_Type *b;
++ b = Compile_ByteCode_Ptr - 1;
++ if (b-&gt;bc_main_type == last_bc)
++ {
++ Compile_ByteCode_Ptr = b;
++ b-&gt;bc_main_type = bc;
++ lang_try_now ();
++ return 0;
++ }
++ }
++ return -1;
++}
++#endif
++
++static void compile_fast_binary (int op, unsigned char bc)
++{
++#if _SLANG_OPTIMIZE_FOR_SPEED
++ if (0 == try_compressed_bytecode (_SLANG_BC_LITERAL_INT, bc))
++ return;
++#else
++ (void) bc;
++#endif
++ compile_binary (op);
++}
++
++/* This is a hack */
++typedef struct _Special_NameTable_Type
++{
++ char *name;
++ int (*fun) (struct _Special_NameTable_Type *, _SLang_Token_Type *);
++ VOID_STAR blk_data;
++ unsigned char main_type;
++}
++Special_NameTable_Type;
++
++static int handle_special (Special_NameTable_Type *nt, _SLang_Token_Type *tok)
++{
++ (void) tok;
++ Compile_ByteCode_Ptr-&gt;bc_main_type = nt-&gt;main_type;
++ Compile_ByteCode_Ptr-&gt;b.ptr_blk = nt-&gt;blk_data;
++ return 0;
++}
++
++static int handle_special_file (Special_NameTable_Type *nt, _SLang_Token_Type *tok)
++{
++ char *name;
++
++ (void) nt; (void) tok;
++
++ if (This_Static_NameSpace == NULL) name = &quot;***Unknown***&quot;;
++ else
++ name = This_Static_NameSpace-&gt;name;
++
++ name = SLang_create_slstring (name);
++ if (name == NULL)
++ return -1;
++
++ Compile_ByteCode_Ptr-&gt;b.s_blk = name;
++ Compile_ByteCode_Ptr-&gt;bc_main_type = _SLANG_BC_LITERAL_STR;
++ Compile_ByteCode_Ptr-&gt;bc_sub_type = SLANG_STRING_TYPE;
++ return 0;
++}
++
++static int handle_special_line (Special_NameTable_Type *nt, _SLang_Token_Type *tok)
++{
++ (void) nt;
++
++#if _SLANG_HAS_DEBUG_CODE
++ Compile_ByteCode_Ptr-&gt;b.l_blk = (long) tok-&gt;line_number;
++#endif
++ Compile_ByteCode_Ptr-&gt;bc_main_type = _SLANG_BC_LITERAL;
++ Compile_ByteCode_Ptr-&gt;bc_sub_type = SLANG_UINT_TYPE;
++
++ return 0;
++}
++
++static Special_NameTable_Type Special_Name_Table [] =
++{
++ {&quot;EXECUTE_ERROR_BLOCK&quot;, handle_special, NULL, _SLANG_BC_X_ERROR},
++ {&quot;X_USER_BLOCK0&quot;, handle_special, NULL, _SLANG_BC_X_USER0},
++ {&quot;X_USER_BLOCK1&quot;, handle_special, NULL, _SLANG_BC_X_USER1},
++ {&quot;X_USER_BLOCK2&quot;, handle_special, NULL, _SLANG_BC_X_USER2},
++ {&quot;X_USER_BLOCK3&quot;, handle_special, NULL, _SLANG_BC_X_USER3},
++ {&quot;X_USER_BLOCK4&quot;, handle_special, NULL, _SLANG_BC_X_USER4},
++ {&quot;__FILE__&quot;, handle_special_file, NULL, 0},
++ {&quot;__LINE__&quot;, handle_special_line, NULL, 0},
++#if 0
++ {&quot;__NAMESPACE__&quot;, handle_special_namespace, NULL, 0},
++#endif
++ {NULL, NULL, NULL, 0}
++};
++
++static void compile_hashed_identifier (char *name, unsigned long hash, _SLang_Token_Type *tok)
++{
++ SLang_Name_Type *entry;
++ unsigned char name_type;
++
++ entry = locate_hashed_name (name, hash);
++
++ if (entry == NULL)
++ {
++ Special_NameTable_Type *nt = Special_Name_Table;
++
++ while (nt-&gt;name != NULL)
++ {
++ if (strcmp (name, nt-&gt;name))
++ {
++ nt++;
++ continue;
++ }
++
++ if (0 == (*nt-&gt;fun)(nt, tok))
++ lang_try_now ();
++ return;
++ }
++
++ SLang_verror (SL_UNDEFINED_NAME, &quot;%s is undefined&quot;, name);
++ return;
++ }
++
++ name_type = entry-&gt;name_type;
++ Compile_ByteCode_Ptr-&gt;bc_main_type = name_type;
++
++ if (name_type == SLANG_LVARIABLE)
++ Compile_ByteCode_Ptr-&gt;b.i_blk = ((SLang_Local_Var_Type *) entry)-&gt;local_var_number;
++ else
++ Compile_ByteCode_Ptr-&gt;b.nt_blk = entry;
++
++ lang_try_now ();
++}
++
++static void compile_tmp_variable (char *name, unsigned long hash)
++{
++ SLang_Name_Type *entry;
++ unsigned char name_type;
++
++ if (NULL == (entry = locate_hashed_name (name, hash)))
++ {
++ SLang_verror (SL_UNDEFINED_NAME, &quot;%s is undefined&quot;, name);
++ return;
++ }
++
++ name_type = entry-&gt;name_type;
++ switch (name_type)
++ {
++ case SLANG_LVARIABLE:
++ Compile_ByteCode_Ptr-&gt;b.i_blk = ((SLang_Local_Var_Type *) entry)-&gt;local_var_number;
++ break;
++
++ case SLANG_GVARIABLE:
++ case SLANG_PVARIABLE:
++ Compile_ByteCode_Ptr-&gt;b.nt_blk = entry;
++ break;
++
++ default:
++ SLang_verror (SL_SYNTAX_ERROR, &quot;__tmp(%s) does not specifiy a variable&quot;, name);
++ return;
++ }
++
++ Compile_ByteCode_Ptr-&gt;bc_main_type = _SLANG_BC_TMP;
++ Compile_ByteCode_Ptr-&gt;bc_sub_type = name_type;
++
++ lang_try_now ();
++}
++
++static void compile_simple (unsigned char main_type)
++{
++ Compile_ByteCode_Ptr-&gt;bc_main_type = main_type;
++ Compile_ByteCode_Ptr-&gt;bc_sub_type = 0;
++ Compile_ByteCode_Ptr-&gt;b.blk = NULL;
++ lang_try_now ();
++}
++
++static void compile_identifier (char *name, _SLang_Token_Type *tok)
++{
++ compile_hashed_identifier (name, _SLcompute_string_hash (name), tok);
++}
++
++static void compile_call_direct (int (*f) (void), unsigned char byte_code)
++{
++ Compile_ByteCode_Ptr-&gt;b.call_function = f;
++ Compile_ByteCode_Ptr-&gt;bc_main_type = byte_code;
++ Compile_ByteCode_Ptr-&gt;bc_sub_type = 0;
++ lang_try_now ();
++}
++
++static void compile_lvar_call_direct (int (*f)(void), unsigned char bc,
++ unsigned char frame_op)
++{
++#if _SLANG_OPTIMIZE_FOR_SPEED
++ if (0 == try_compressed_bytecode (_SLANG_BC_LVARIABLE, bc))
++ return;
++#else
++ (void) bc;
++#endif
++
++ compile_call_direct (f, frame_op);
++}
++
++static void compile_integer (long i, unsigned char bc_main_type, unsigned char bc_sub_type)
++{
++ Compile_ByteCode_Ptr-&gt;b.l_blk = i;
++ Compile_ByteCode_Ptr-&gt;bc_main_type = bc_main_type;
++ Compile_ByteCode_Ptr-&gt;bc_sub_type = bc_sub_type;
++
++ lang_try_now ();
++}
++
++#if SLANG_HAS_FLOAT
++static void compile_double (char *str, unsigned char type)
++{
++ double d;
++ unsigned int factor = 1;
++ double *ptr;
++
++#if 1
++ d = _SLang_atof (str);
++#else
++ if (1 != sscanf (str, &quot;%lf&quot;, &amp;d))
++ {
++ SLang_verror (SL_SYNTAX_ERROR, &quot;Unable to convert %s to double&quot;, str);
++ return;
++ }
++#endif
++
++#if SLANG_HAS_COMPLEX
++ if (type == SLANG_COMPLEX_TYPE) factor = 2;
++#endif
++ if (NULL == (ptr = (double *) SLmalloc(factor * sizeof(double))))
++ return;
++
++ Compile_ByteCode_Ptr-&gt;b.double_blk = ptr;
++#if SLANG_HAS_COMPLEX
++ if (type == SLANG_COMPLEX_TYPE)
++ *ptr++ = 0;
++#endif
++ *ptr = d;
++
++ Compile_ByteCode_Ptr-&gt;bc_main_type = _SLANG_BC_LITERAL;
++ Compile_ByteCode_Ptr-&gt;bc_sub_type = type;
++ lang_try_now ();
++}
++
++static void compile_float (char *s)
++{
++ float x;
++
++#if 1
++ x = (float) _SLang_atof (s);
++#else
++ if (1 != sscanf (s, &quot;%f&quot;, &amp;x))
++ {
++ SLang_verror (SL_SYNTAX_ERROR, &quot;Unable to convert %s to float&quot;, s);
++ return;
++ }
++#endif
++ Compile_ByteCode_Ptr-&gt;b.float_blk = x;
++ Compile_ByteCode_Ptr-&gt;bc_main_type = _SLANG_BC_LITERAL;
++ Compile_ByteCode_Ptr-&gt;bc_sub_type = SLANG_FLOAT_TYPE;
++ lang_try_now ();
++}
++
++#endif
++
++static void compile_string (char *s, unsigned long hash)
++{
++ if (NULL == (Compile_ByteCode_Ptr-&gt;b.s_blk = _SLstring_dup_hashed_string (s, hash)))
++ return;
++
++ Compile_ByteCode_Ptr-&gt;bc_main_type = _SLANG_BC_LITERAL_STR;
++ Compile_ByteCode_Ptr-&gt;bc_sub_type = SLANG_STRING_TYPE;
++
++ lang_try_now ();
++}
++
++static void compile_bstring (SLang_BString_Type *s)
++{
++ if (NULL == (Compile_ByteCode_Ptr-&gt;b.bs_blk = SLbstring_dup (s)))
++ return;
++
++ Compile_ByteCode_Ptr-&gt;bc_main_type = _SLANG_BC_LITERAL;
++ Compile_ByteCode_Ptr-&gt;bc_sub_type = SLANG_BSTRING_TYPE;
++
++ lang_try_now ();
++}
++
++/* assign_type is one of _SLANG_BCST_ASSIGN, ... values */
++static void compile_assign (unsigned char assign_type,
++ char *name, unsigned long hash)
++{
++ SLang_Name_Type *v;
++ unsigned char main_type;
++ SLang_Class_Type *cl;
++
++ v = locate_hashed_name (name, hash);
++ if (v == NULL)
++ {
++ if ((_SLang_Auto_Declare_Globals == 0)
++ || (NULL != strchr (name, '-')) /* namespace-&gt;name form */
++ || Lang_Defining_Function
++ || (assign_type != _SLANG_BCST_ASSIGN)
++ || (This_Static_NameSpace == NULL))
++ {
++ SLang_verror (SL_UNDEFINED_NAME, &quot;%s is undefined&quot;, name);
++ return;
++ }
++ /* Note that function local variables are not at top level */
++
++ /* Variables that are automatically declared are given static
++ * scope.
++ */
++ if ((NULL != SLang_Auto_Declare_Var_Hook)
++ &amp;&amp; (-1 == (*SLang_Auto_Declare_Var_Hook) (name)))
++ return;
++
++ if ((-1 == add_global_variable (name, SLANG_GVARIABLE, hash, This_Static_NameSpace))
++ || (NULL == (v = locate_hashed_name (name, hash))))
++ return;
++ }
++
++ switch (v-&gt;name_type)
++ {
++ case SLANG_LVARIABLE:
++ main_type = _SLANG_BC_SET_LOCAL_LVALUE;
++ Compile_ByteCode_Ptr-&gt;b.i_blk = ((SLang_Local_Var_Type *) v)-&gt;local_var_number;
++ break;
++
++ case SLANG_GVARIABLE:
++ case SLANG_PVARIABLE:
++ main_type = _SLANG_BC_SET_GLOBAL_LVALUE;
++ Compile_ByteCode_Ptr-&gt;b.nt_blk = v;
++ break;
++
++ case SLANG_IVARIABLE:
++ cl = _SLclass_get_class (((SLang_Intrin_Var_Type *)v)-&gt;type);
++ if (cl-&gt;cl_class_type != SLANG_CLASS_TYPE_SCALAR)
++ {
++ SLang_verror (SL_SYNTAX_ERROR, &quot;Assignment to %s is not allowed&quot;, name);
++ return;
++ }
++ main_type = _SLANG_BC_SET_INTRIN_LVALUE;
++ Compile_ByteCode_Ptr-&gt;b.nt_blk = v;
++ break;
++
++ case SLANG_RVARIABLE:
++ SLang_verror (SL_READONLY_ERROR, &quot;%s is read-only&quot;, name);
++ return;
++
++ default:
++ SLang_verror (SL_DUPLICATE_DEFINITION, &quot;%s may not be used as an lvalue&quot;, name);
++ return;
++ }
++
++ Compile_ByteCode_Ptr-&gt;bc_sub_type = assign_type;
++ Compile_ByteCode_Ptr-&gt;bc_main_type = main_type;
++
++ lang_try_now ();
++}
++
++static void compile_deref_assign (char *name, unsigned long hash)
++{
++ SLang_Name_Type *v;
++
++ v = locate_hashed_name (name, hash);
++
++ if (v == NULL)
++ {
++ SLang_verror (SL_UNDEFINED_NAME, &quot;%s is undefined&quot;, name);
++ return;
++ }
++
++ switch (v-&gt;name_type)
++ {
++ case SLANG_LVARIABLE:
++ Compile_ByteCode_Ptr-&gt;b.i_blk = ((SLang_Local_Var_Type *) v)-&gt;local_var_number;
++ break;
++
++ case SLANG_GVARIABLE:
++ case SLANG_PVARIABLE:
++ Compile_ByteCode_Ptr-&gt;b.nt_blk = v;
++ break;
++
++ default:
++ /* FIXME: Priority=low
++ * This could be made to work. It is not a priority because
++ * I cannot imagine application intrinsics which are references.
++ */
++ SLang_verror (SL_NOT_IMPLEMENTED, &quot;Deref assignment to %s is not allowed&quot;, name);
++ return;
++ }
++
++ Compile_ByteCode_Ptr-&gt;bc_sub_type = v-&gt;name_type;
++ Compile_ByteCode_Ptr-&gt;bc_main_type = _SLANG_BC_DEREF_ASSIGN;
++
++ lang_try_now ();
++}
++
++static void
++compile_struct_assign (_SLang_Token_Type *t)
++{
++ Compile_ByteCode_Ptr-&gt;bc_sub_type = _SLANG_BCST_ASSIGN + (t-&gt;type - _STRUCT_ASSIGN_TOKEN);
++ Compile_ByteCode_Ptr-&gt;bc_main_type = _SLANG_BC_SET_STRUCT_LVALUE;
++ Compile_ByteCode_Ptr-&gt;b.s_blk = _SLstring_dup_hashed_string (t-&gt;v.s_val, t-&gt;hash);
++ lang_try_now ();
++}
++
++static void
++compile_array_assign (_SLang_Token_Type *t)
++{
++ Compile_ByteCode_Ptr-&gt;bc_sub_type = _SLANG_BCST_ASSIGN + (t-&gt;type - _ARRAY_ASSIGN_TOKEN);
++ Compile_ByteCode_Ptr-&gt;bc_main_type = _SLANG_BC_SET_ARRAY_LVALUE;
++ Compile_ByteCode_Ptr-&gt;b.s_blk = NULL;
++ lang_try_now ();
++}
++
++static void compile_dot(_SLang_Token_Type *t)
++{
++ Compile_ByteCode_Ptr-&gt;bc_main_type = _SLANG_BC_FIELD;
++ Compile_ByteCode_Ptr-&gt;b.s_blk = _SLstring_dup_hashed_string(t-&gt;v.s_val, t-&gt;hash);
++ lang_try_now ();
++}
++
++static void compile_ref (char *name, unsigned long hash)
++{
++ SLang_Name_Type *entry;
++ unsigned char main_type;
++
++ if (NULL == (entry = locate_hashed_name (name, hash)))
++ {
++ SLang_verror (SL_UNDEFINED_NAME, &quot;%s is undefined&quot;, name);
++ return;
++ }
++
++ main_type = entry-&gt;name_type;
++
++ if (main_type == SLANG_LVARIABLE)
++ {
++ main_type = _SLANG_BC_LOBJPTR;
++ Compile_ByteCode_Ptr-&gt;b.i_blk = ((SLang_Local_Var_Type *)entry)-&gt;local_var_number;
++ }
++ else
++ {
++ main_type = _SLANG_BC_GOBJPTR;
++ Compile_ByteCode_Ptr-&gt;b.nt_blk = entry;
++ }
++
++ Compile_ByteCode_Ptr-&gt;bc_main_type = main_type;
++ lang_try_now ();
++}
++
++static void compile_break (unsigned char break_type,
++ int requires_block, int requires_fun,
++ char *str)
++{
++ if ((requires_fun
++ &amp;&amp; (Lang_Defining_Function == 0))
++ || (requires_block
++ &amp;&amp; (This_Compile_Block_Type != COMPILE_BLOCK_TYPE_BLOCK)))
++ {
++ SLang_verror (SL_SYNTAX_ERROR, &quot;misplaced %s&quot;, str);
++ return;
++ }
++
++ Compile_ByteCode_Ptr-&gt;bc_main_type = break_type;
++ Compile_ByteCode_Ptr-&gt;bc_sub_type = 0;
++
++ lang_try_now ();
++}
++
++static void compile_public_variable_mode (_SLang_Token_Type *t)
++{
++ if (t-&gt;type == IDENT_TOKEN)
++ {
++ /* If the variable is already defined in the static hash table,
++ * generate an error.
++ */
++ if ((This_Static_NameSpace != NULL)
++ &amp;&amp; (NULL != locate_name_in_table (t-&gt;v.s_val, t-&gt;hash, This_Static_NameSpace-&gt;table, This_Static_NameSpace-&gt;table_size)))
++ {
++ SLang_verror (SL_DUPLICATE_DEFINITION,
++ &quot;%s already has static or private linkage in this unit&quot;,
++ t-&gt;v.s_val);
++ return;
++ }
++ add_global_variable (t-&gt;v.s_val, SLANG_GVARIABLE, t-&gt;hash, Global_NameSpace);
++ }
++ else if (t-&gt;type == CBRACKET_TOKEN)
++ Compile_Mode_Function = compile_basic_token_mode;
++ else
++ SLang_verror (SL_SYNTAX_ERROR, &quot;Misplaced token in variable list&quot;);
++}
++
++static void compile_local_variable_mode (_SLang_Token_Type *t)
++{
++ if (t-&gt;type == IDENT_TOKEN)
++ add_local_variable (t-&gt;v.s_val, t-&gt;hash);
++ else if (t-&gt;type == CBRACKET_TOKEN)
++ Compile_Mode_Function = compile_basic_token_mode;
++ else
++ SLang_verror (SL_SYNTAX_ERROR, &quot;Misplaced token in variable list&quot;);
++}
++
++static void compile_static_variable_mode (_SLang_Token_Type *t)
++{
++ if (t-&gt;type == IDENT_TOKEN)
++ add_global_variable (t-&gt;v.s_val, SLANG_GVARIABLE, t-&gt;hash, This_Static_NameSpace);
++ else if (t-&gt;type == CBRACKET_TOKEN)
++ Compile_Mode_Function = compile_basic_token_mode;
++ else
++ SLang_verror (SL_SYNTAX_ERROR, &quot;Misplaced token in variable list&quot;);
++}
++
++static void compile_private_variable_mode (_SLang_Token_Type *t)
++{
++ if (t-&gt;type == IDENT_TOKEN)
++ add_global_variable (t-&gt;v.s_val, SLANG_PVARIABLE, t-&gt;hash, This_Static_NameSpace);
++ else if (t-&gt;type == CBRACKET_TOKEN)
++ Compile_Mode_Function = compile_basic_token_mode;
++ else
++ SLang_verror (SL_SYNTAX_ERROR, &quot;Misplaced token in variable list&quot;);
++}
++
++static void compile_function_mode (_SLang_Token_Type *t)
++{
++ if (-1 == lang_check_space ())
++ return;
++
++ if (t-&gt;type != IDENT_TOKEN)
++ SLang_verror (SL_SYNTAX_ERROR, &quot;Expecting function name&quot;);
++ else
++ lang_define_function (t-&gt;v.s_val, SLANG_FUNCTION, t-&gt;hash, Global_NameSpace);
++
++ Compile_Mode_Function = compile_basic_token_mode;
++}
++
++/* An error block is not permitted to contain continue or break statements.
++ * This restriction may be removed later but for now reject them.
++ */
++static int check_error_block (void)
++{
++ SLBlock_Type *p;
++ unsigned char t;
++
++ /* Back up to the block and then scan it. */
++ p = (Compile_ByteCode_Ptr - 1)-&gt;b.blk;
++
++ while (0 != (t = p-&gt;bc_main_type))
++ {
++ if ((t == _SLANG_BC_BREAK)
++ || (t == _SLANG_BC_CONTINUE))
++ {
++ SLang_verror (SL_SYNTAX_ERROR,
++ &quot;An ERROR_BLOCK is not permitted to contain continue or break statements&quot;);
++ return -1;
++ }
++ p++;
++ }
++ return 0;
++}
++
++/* The only allowed tokens are the directives and another block start.
++ * The mode is only active if a block is available. The inner_interp routine
++ * expects such safety checks.
++ */
++static void compile_directive_mode (_SLang_Token_Type *t)
++{
++ int bc_sub_type;
++
++ if (-1 == lang_check_space ())
++ return;
++
++ bc_sub_type = -1;
++
++ switch (t-&gt;type)
++ {
++ case FOREVER_TOKEN:
++ bc_sub_type = _SLANG_BCST_FOREVER;
++ break;
++
++ case IFNOT_TOKEN:
++ bc_sub_type = _SLANG_BCST_IFNOT;
++ break;
++
++ case IF_TOKEN:
++ bc_sub_type = _SLANG_BCST_IF;
++ break;
++
++ case ANDELSE_TOKEN:
++ bc_sub_type = _SLANG_BCST_ANDELSE;
++ break;
++
++ case SWITCH_TOKEN:
++ bc_sub_type = _SLANG_BCST_SWITCH;
++ break;
++
++ case EXITBLK_TOKEN:
++ if (Lang_Defining_Function == 0)
++ {
++ SLang_verror (SL_SYNTAX_ERROR, &quot;misplaced EXIT_BLOCK&quot;);
++ break;
++ }
++ bc_sub_type = _SLANG_BCST_EXIT_BLOCK;
++ break;
++
++ case ERRBLK_TOKEN:
++ if (This_Compile_Block_Type == COMPILE_BLOCK_TYPE_TOP_LEVEL)
++ {
++ SLang_verror (SL_SYNTAX_ERROR, &quot;misplaced ERROR_BLOCK&quot;);
++ break;
++ }
++ if (0 == check_error_block ())
++ bc_sub_type = _SLANG_BCST_ERROR_BLOCK;
++ break;
++
++ case USRBLK0_TOKEN:
++ case USRBLK1_TOKEN:
++ case USRBLK2_TOKEN:
++ case USRBLK3_TOKEN:
++ case USRBLK4_TOKEN:
++ if (This_Compile_Block_Type == COMPILE_BLOCK_TYPE_TOP_LEVEL)
++ {
++ SLang_verror (SL_SYNTAX_ERROR, &quot;misplaced USER_BLOCK&quot;);
++ break;
++ }
++ bc_sub_type = _SLANG_BCST_USER_BLOCK0 + (t-&gt;type - USRBLK0_TOKEN);
++ break;
++
++ case NOTELSE_TOKEN:
++ bc_sub_type = _SLANG_BCST_NOTELSE;
++ break;
++
++ case ELSE_TOKEN:
++ bc_sub_type = _SLANG_BCST_ELSE;
++ break;
++
++ case LOOP_TOKEN:
++ bc_sub_type = _SLANG_BCST_LOOP;
++ break;
++
++ case DOWHILE_TOKEN:
++ bc_sub_type = _SLANG_BCST_DOWHILE;
++ break;
++
++ case WHILE_TOKEN:
++ bc_sub_type = _SLANG_BCST_WHILE;
++ break;
++
++ case ORELSE_TOKEN:
++ bc_sub_type = _SLANG_BCST_ORELSE;
++ break;
++
++ case _FOR_TOKEN:
++ bc_sub_type = _SLANG_BCST_FOR;
++ break;
++
++ case FOR_TOKEN:
++ bc_sub_type = _SLANG_BCST_CFOR;
++ break;
++
++ case FOREACH_TOKEN:
++ bc_sub_type = _SLANG_BCST_FOREACH;
++ break;
++
++ case OBRACE_TOKEN:
++ lang_begin_block ();
++ break;
++
++ default:
++ SLang_verror (SL_SYNTAX_ERROR, &quot;Expecting directive token. Found 0x%X&quot;, t-&gt;type);
++ break;
++ }
++
++ /* Reset this pointer first because compile_directive may cause a
++ * file to be loaded.
++ */
++ Compile_Mode_Function = compile_basic_token_mode;
++
++ if (bc_sub_type != -1)
++ compile_directive (bc_sub_type);
++}
++
++static unsigned int Assign_Mode_Type;
++static void compile_assign_mode (_SLang_Token_Type *t)
++{
++ if (t-&gt;type != IDENT_TOKEN)
++ {
++ SLang_verror (SL_SYNTAX_ERROR, &quot;Expecting identifier for assignment&quot;);
++ return;
++ }
++
++ compile_assign (Assign_Mode_Type, t-&gt;v.s_val, t-&gt;hash);
++ Compile_Mode_Function = compile_basic_token_mode;
++}
++
++static void compile_basic_token_mode (_SLang_Token_Type *t)
++{
++ if (-1 == lang_check_space ())
++ return;
++
++ switch (t-&gt;type)
++ {
++ case PUSH_TOKEN:
++ case NOP_TOKEN:
++ case EOF_TOKEN:
++ case READONLY_TOKEN:
++ case DO_TOKEN:
++ case VARIABLE_TOKEN:
++ case SEMICOLON_TOKEN:
++ default:
++ SLang_verror (SL_SYNTAX_ERROR, &quot;Unknown or unsupported token type 0x%X&quot;, t-&gt;type);
++ break;
++
++ case DEREF_TOKEN:
++ compile_call_direct (dereference_object, _SLANG_BC_CALL_DIRECT);
++ break;
++
++ case STRUCT_TOKEN:
++ compile_call_direct (_SLstruct_define_struct, _SLANG_BC_CALL_DIRECT);
++ break;
++
++ case TYPEDEF_TOKEN:
++ compile_call_direct (_SLstruct_define_typedef, _SLANG_BC_CALL_DIRECT);
++ break;
++
++ case TMP_TOKEN:
++ compile_tmp_variable (t-&gt;v.s_val, t-&gt;hash);
++ break;
++
++ case DOT_TOKEN: /* X . field */
++ compile_dot (t);
++ break;
++
++ case COMMA_TOKEN:
++ break; /* do nothing */
++
++ case IDENT_TOKEN:
++ compile_hashed_identifier (t-&gt;v.s_val, t-&gt;hash, t);
++ break;
++
++ case _REF_TOKEN:
++ compile_ref (t-&gt;v.s_val, t-&gt;hash);
++ break;
++
++ case ARG_TOKEN:
++ compile_call_direct (SLang_start_arg_list, _SLANG_BC_CALL_DIRECT);
++ break;
++
++ case EARG_TOKEN:
++ compile_lvar_call_direct (SLang_end_arg_list, _SLANG_BC_EARG_LVARIABLE, _SLANG_BC_CALL_DIRECT);
++ break;
++
++ case COLON_TOKEN:
++ if (This_Compile_Block_Type == COMPILE_BLOCK_TYPE_BLOCK)
++ compile_simple (_SLANG_BC_LABEL);
++ else SLang_Error = SL_SYNTAX_ERROR;
++ break;
++
++ case POP_TOKEN:
++ compile_call_direct (SLdo_pop, _SLANG_BC_CALL_DIRECT);
++ break;
++
++ case CASE_TOKEN:
++ if (This_Compile_Block_Type != COMPILE_BLOCK_TYPE_BLOCK)
++ SLang_verror (SL_SYNTAX_ERROR, &quot;Misplaced 'case'&quot;);
++ else
++ compile_call_direct (case_function, _SLANG_BC_CALL_DIRECT);
++ break;
++
++ case CHAR_TOKEN:
++ compile_integer (t-&gt;v.long_val, _SLANG_BC_LITERAL, SLANG_CHAR_TYPE);
++ break;
++ case SHORT_TOKEN:
++ compile_integer (t-&gt;v.long_val, _SLANG_BC_LITERAL, SLANG_SHORT_TYPE);
++ break;
++ case INT_TOKEN:
++ compile_integer (t-&gt;v.long_val, _SLANG_BC_LITERAL_INT, SLANG_INT_TYPE);
++ break;
++ case UCHAR_TOKEN:
++ compile_integer (t-&gt;v.long_val, _SLANG_BC_LITERAL, SLANG_UCHAR_TYPE);
++ break;
++ case USHORT_TOKEN:
++ compile_integer (t-&gt;v.long_val, _SLANG_BC_LITERAL, SLANG_USHORT_TYPE);
++ break;
++ case UINT_TOKEN:
++ compile_integer (t-&gt;v.long_val, _SLANG_BC_LITERAL_INT, SLANG_UINT_TYPE);
++ break;
++ case LONG_TOKEN:
++ compile_integer (t-&gt;v.long_val, _SLANG_BC_LITERAL, SLANG_LONG_TYPE);
++ break;
++ case ULONG_TOKEN:
++ compile_integer (t-&gt;v.long_val, _SLANG_BC_LITERAL, SLANG_ULONG_TYPE);
++ break;
++
++#if SLANG_HAS_FLOAT
++ case FLOAT_TOKEN:
++ compile_float (t-&gt;v.s_val);
++ break;
++
++ case DOUBLE_TOKEN:
++ compile_double (t-&gt;v.s_val, SLANG_DOUBLE_TYPE);
++ break;
++#endif
++#if SLANG_HAS_COMPLEX
++ case COMPLEX_TOKEN:
++ compile_double (t-&gt;v.s_val, SLANG_COMPLEX_TYPE);
++ break;
++#endif
++
++ case STRING_TOKEN:
++ compile_string (t-&gt;v.s_val, t-&gt;hash);
++ break;
++
++ case _BSTRING_TOKEN:
++ compile_bstring (SLbstring_create ((unsigned char *)t-&gt;v.s_val, (unsigned int) t-&gt;hash));
++ break;
++
++ case BSTRING_TOKEN:
++ compile_bstring (t-&gt;v.b_val);
++ break;
++
++ case _NULL_TOKEN:
++ compile_identifier (&quot;NULL&quot;, t);
++ break;
++
++ case _INLINE_WILDCARD_ARRAY_TOKEN:
++ compile_call_direct (_SLarray_wildcard_array, _SLANG_BC_CALL_DIRECT);
++ break;
++
++ case _INLINE_ARRAY_TOKEN:
++ compile_call_direct (_SLarray_inline_array, _SLANG_BC_CALL_DIRECT_FRAME);
++ break;
++
++ case _INLINE_IMPLICIT_ARRAY_TOKEN:
++ compile_call_direct (_SLarray_inline_implicit_array, _SLANG_BC_CALL_DIRECT_FRAME);
++ break;
++
++ case ARRAY_TOKEN:
++ compile_lvar_call_direct (_SLarray_aget, _SLANG_BC_LVARIABLE_AGET, _SLANG_BC_CALL_DIRECT_FRAME);
++ break;
++
++ /* Note: I need to add the other _ARRAY assign tokens. */
++ case _ARRAY_PLUSEQS_TOKEN:
++ case _ARRAY_MINUSEQS_TOKEN:
++ case _ARRAY_TIMESEQS_TOKEN:
++ case _ARRAY_DIVEQS_TOKEN:
++ case _ARRAY_BOREQS_TOKEN:
++ case _ARRAY_BANDEQS_TOKEN:
++ case _ARRAY_POST_MINUSMINUS_TOKEN:
++ case _ARRAY_MINUSMINUS_TOKEN:
++ case _ARRAY_POST_PLUSPLUS_TOKEN:
++ case _ARRAY_PLUSPLUS_TOKEN:
++ compile_array_assign (t);
++ break;
++
++ case _ARRAY_ASSIGN_TOKEN:
++ compile_lvar_call_direct (_SLarray_aput, _SLANG_BC_LVARIABLE_APUT, _SLANG_BC_CALL_DIRECT_FRAME);
++ break;
++
++ case _STRUCT_ASSIGN_TOKEN:
++ case _STRUCT_PLUSEQS_TOKEN:
++ case _STRUCT_MINUSEQS_TOKEN:
++ case _STRUCT_TIMESEQS_TOKEN:
++ case _STRUCT_DIVEQS_TOKEN:
++ case _STRUCT_BOREQS_TOKEN:
++ case _STRUCT_BANDEQS_TOKEN:
++ case _STRUCT_POST_MINUSMINUS_TOKEN:
++ case _STRUCT_MINUSMINUS_TOKEN:
++ case _STRUCT_POST_PLUSPLUS_TOKEN:
++ case _STRUCT_PLUSPLUS_TOKEN:
++ compile_struct_assign (t);
++ break;
++
++ case _SCALAR_ASSIGN_TOKEN:
++ case _SCALAR_PLUSEQS_TOKEN:
++ case _SCALAR_MINUSEQS_TOKEN:
++ case _SCALAR_TIMESEQS_TOKEN:
++ case _SCALAR_DIVEQS_TOKEN:
++ case _SCALAR_BOREQS_TOKEN:
++ case _SCALAR_BANDEQS_TOKEN:
++ case _SCALAR_POST_MINUSMINUS_TOKEN:
++ case _SCALAR_MINUSMINUS_TOKEN:
++ case _SCALAR_POST_PLUSPLUS_TOKEN:
++ case _SCALAR_PLUSPLUS_TOKEN:
++ compile_assign (_SLANG_BCST_ASSIGN + (t-&gt;type - _SCALAR_ASSIGN_TOKEN),
++ t-&gt;v.s_val, t-&gt;hash);
++ break;
++
++ case _DEREF_ASSIGN_TOKEN:
++ compile_deref_assign (t-&gt;v.s_val, t-&gt;hash);
++ break;
++
++ /* For processing RPN tokens */
++ case ASSIGN_TOKEN:
++ case PLUSEQS_TOKEN:
++ case MINUSEQS_TOKEN:
++ case TIMESEQS_TOKEN:
++ case DIVEQS_TOKEN:
++ case BOREQS_TOKEN:
++ case BANDEQS_TOKEN:
++ case POST_MINUSMINUS_TOKEN:
++ case MINUSMINUS_TOKEN:
++ case POST_PLUSPLUS_TOKEN:
++ case PLUSPLUS_TOKEN:
++ Compile_Mode_Function = compile_assign_mode;
++ Assign_Mode_Type = _SLANG_BCST_ASSIGN + (t-&gt;type - ASSIGN_TOKEN);
++ break;
++
++ case LT_TOKEN:
++ compile_binary (SLANG_LT);
++ break;
++
++ case LE_TOKEN:
++ compile_binary (SLANG_LE);
++ break;
++
++ case GT_TOKEN:
++ compile_binary (SLANG_GT);
++ break;
++
++ case GE_TOKEN:
++ compile_binary (SLANG_GE);
++ break;
++
++ case EQ_TOKEN:
++ compile_binary (SLANG_EQ);
++ break;
++
++ case NE_TOKEN:
++ compile_binary (SLANG_NE);
++ break;
++
++ case AND_TOKEN:
++ compile_binary (SLANG_AND);
++ break;
++
++ case ADD_TOKEN:
++ compile_fast_binary (SLANG_PLUS, _SLANG_BC_INTEGER_PLUS);
++ break;
++
++ case SUB_TOKEN:
++ compile_fast_binary (SLANG_MINUS, _SLANG_BC_INTEGER_MINUS);
++ break;
++
++ case TIMES_TOKEN:
++ compile_binary (SLANG_TIMES);
++ break;
++
++ case DIV_TOKEN:
++ compile_binary (SLANG_DIVIDE);
++ break;
++
++ case POW_TOKEN:
++ compile_binary (SLANG_POW);
++ break;
++
++ case BXOR_TOKEN:
++ compile_binary (SLANG_BXOR);
++ break;
++
++ case BAND_TOKEN:
++ compile_binary (SLANG_BAND);
++ break;
++
++ case BOR_TOKEN:
++ compile_binary (SLANG_BOR);
++ break;
++
++ case SHR_TOKEN:
++ compile_binary (SLANG_SHR);
++ break;
++
++ case SHL_TOKEN:
++ compile_binary (SLANG_SHL);
++ break;
++
++ case MOD_TOKEN:
++ compile_binary (SLANG_MOD);
++ break;
++
++ case OR_TOKEN:
++ compile_binary (SLANG_OR);
++ break;
++
++ case NOT_TOKEN:
++ compile_unary (SLANG_NOT, _SLANG_BC_UNARY);
++ break;
++
++ case BNOT_TOKEN:
++ compile_unary (SLANG_BNOT, _SLANG_BC_UNARY);
++ break;
++
++ case MUL2_TOKEN:
++ compile_unary (SLANG_MUL2, _SLANG_BC_UNARY_FUNC);
++ break;
++
++ case CHS_TOKEN:
++ compile_unary (SLANG_CHS, _SLANG_BC_UNARY_FUNC);
++ break;
++
++ case ABS_TOKEN:
++ compile_unary (SLANG_ABS, _SLANG_BC_UNARY_FUNC);
++ break;
++
++ case SQR_TOKEN:
++ compile_unary (SLANG_SQR, _SLANG_BC_UNARY_FUNC);
++ break;
++
++ case SIGN_TOKEN:
++ compile_unary (SLANG_SIGN, _SLANG_BC_UNARY_FUNC);
++ break;
++
++ case BREAK_TOKEN:
++ compile_break (_SLANG_BC_BREAK, 1, 0, &quot;break&quot;);
++ break;
++
++ case RETURN_TOKEN:
++ compile_break (_SLANG_BC_RETURN, 0, 1, &quot;return&quot;);
++ break;
++
++ case CONT_TOKEN:
++ compile_break (_SLANG_BC_CONTINUE, 1, 0, &quot;continue&quot;);
++ break;
++
++ case EXCH_TOKEN:
++ compile_break (_SLANG_BC_EXCH, 0, 0, &quot;&quot;); /* FIXME: Priority=low */
++ break;
++
++ case STATIC_TOKEN:
++ if (Lang_Defining_Function == 0)
++ Compile_Mode_Function = compile_static_variable_mode;
++ else
++ SLang_verror (SL_NOT_IMPLEMENTED, &quot;static variables not permitted in functions&quot;);
++ break;
++
++ case PRIVATE_TOKEN:
++ if (Lang_Defining_Function == 0)
++ Compile_Mode_Function = compile_private_variable_mode;
++ else
++ SLang_verror (SL_NOT_IMPLEMENTED, &quot;private variables not permitted in functions&quot;);
++ break;
++
++ case PUBLIC_TOKEN:
++ if (Lang_Defining_Function == 0)
++ Compile_Mode_Function = compile_public_variable_mode;
++ else
++ SLang_verror (SL_NOT_IMPLEMENTED, &quot;public variables not permitted in functions&quot;);
++ break;
++
++ case OBRACKET_TOKEN:
++ if (Lang_Defining_Function == 0)
++ Compile_Mode_Function = Default_Variable_Mode;
++ else
++ Compile_Mode_Function = compile_local_variable_mode;
++ break;
++
++ case OPAREN_TOKEN:
++ lang_begin_function ();
++ break;
++
++ case DEFINE_STATIC_TOKEN:
++ if (Lang_Defining_Function)
++ define_static_function (t-&gt;v.s_val, t-&gt;hash);
++ else SLang_Error = SL_SYNTAX_ERROR;
++ break;
++
++ case DEFINE_PRIVATE_TOKEN:
++ if (Lang_Defining_Function)
++ define_private_function (t-&gt;v.s_val, t-&gt;hash);
++ else SLang_Error = SL_SYNTAX_ERROR;
++ break;
++
++ case DEFINE_PUBLIC_TOKEN:
++ if (Lang_Defining_Function)
++ define_public_function (t-&gt;v.s_val, t-&gt;hash);
++ else SLang_Error = SL_SYNTAX_ERROR;
++ break;
++
++ case DEFINE_TOKEN:
++ if (Lang_Defining_Function)
++ (*Default_Define_Function) (t-&gt;v.s_val, t-&gt;hash);
++ else
++ SLang_Error = SL_SYNTAX_ERROR;
++ break;
++
++ case CPAREN_TOKEN:
++ if (Lang_Defining_Function)
++ Compile_Mode_Function = compile_function_mode;
++ else SLang_Error = SL_SYNTAX_ERROR;
++ break;
++
++ case CBRACE_TOKEN:
++ lang_end_block ();
++ Compile_Mode_Function = compile_directive_mode;
++ break;
++
++ case OBRACE_TOKEN:
++ lang_begin_block ();
++ break;
++
++ case FARG_TOKEN:
++ Function_Args_Number = Local_Variable_Number;
++ break;
++
++#if _SLANG_HAS_DEBUG_CODE
++ case LINE_NUM_TOKEN:
++ Compile_ByteCode_Ptr-&gt;bc_main_type = _SLANG_BC_LINE_NUM;
++ Compile_ByteCode_Ptr-&gt;b.l_blk = t-&gt;v.long_val;
++ lang_try_now ();
++ break;
++#endif
++ case POUND_TOKEN:
++ compile_call_direct (_SLarray_matrix_multiply, _SLANG_BC_CALL_DIRECT);
++ break;
++ }
++}
++
++void _SLcompile (_SLang_Token_Type *t)
++{
++ if (SLang_Error == 0)
++ {
++ if (Compile_Mode_Function != compile_basic_token_mode)
++ {
++ if (Compile_Mode_Function == NULL)
++ Compile_Mode_Function = compile_basic_token_mode;
++#if _SLANG_HAS_DEBUG_CODE
++ if (t-&gt;type == LINE_NUM_TOKEN)
++ {
++ compile_basic_token_mode (t);
++ return;
++ }
++#endif
++ }
++
++ (*Compile_Mode_Function) (t);
++ }
++
++ if (SLang_Error)
++ {
++ Compile_Mode_Function = compile_basic_token_mode;
++ SLang_restart (0);
++ }
++}
++
++void (*_SLcompile_ptr)(_SLang_Token_Type *) = _SLcompile;
++
++typedef struct _Compile_Context_Type
++{
++ struct _Compile_Context_Type *next;
++ SLang_NameSpace_Type *static_namespace;
++ void (*compile_variable_mode) (_SLang_Token_Type *);
++ void (*define_function) (char *, unsigned long);
++ int lang_defining_function;
++ int local_variable_number;
++ unsigned int function_args_number;
++ SLang_Name_Type **locals_hash_table;
++ void (*compile_mode_function)(_SLang_Token_Type *);
++#if _SLANG_HAS_DEBUG_CODE
++ char *compile_filename;
++#endif
++}
++Compile_Context_Type;
++
++static Compile_Context_Type *Compile_Context_Stack;
++
++/* The only way the push/pop_context functions can get called is via
++ * an eval type function. That can only happen when executed from a
++ * top level block. This means that Compile_ByteCode_Ptr can always be
++ * rest back to the beginning of a block.
++ */
++
++static int pop_compile_context (void)
++{
++ Compile_Context_Type *cc;
++
++ if (NULL == (cc = Compile_Context_Stack))
++ return -1;
++
++ This_Static_NameSpace = cc-&gt;static_namespace;
++ Compile_Context_Stack = cc-&gt;next;
++ Default_Variable_Mode = cc-&gt;compile_variable_mode;
++ Default_Define_Function = cc-&gt;define_function;
++ Compile_Mode_Function = cc-&gt;compile_mode_function;
++
++ Lang_Defining_Function = cc-&gt;lang_defining_function;
++ Local_Variable_Number = cc-&gt;local_variable_number;
++ Function_Args_Number = cc-&gt;function_args_number;
++
++#if _SLANG_HAS_DEBUG_CODE
++ SLang_free_slstring (This_Compile_Filename);
++ This_Compile_Filename = cc-&gt;compile_filename;
++#endif
++
++ SLfree ((char *) Locals_Hash_Table);
++ Locals_Hash_Table = cc-&gt;locals_hash_table;
++
++ SLfree ((char *) cc);
++
++ return 0;
++}
++
++static int push_compile_context (char *name)
++{
++ Compile_Context_Type *cc;
++ SLang_Name_Type **lns;
++
++ cc = (Compile_Context_Type *)SLmalloc (sizeof (Compile_Context_Type));
++ if (cc == NULL)
++ return -1;
++ memset ((char *) cc, 0, sizeof (Compile_Context_Type));
++
++ lns = (SLang_Name_Type **) SLcalloc (sizeof (SLang_Name_Type *), SLLOCALS_HASH_TABLE_SIZE);
++ if (lns == NULL)
++ {
++ SLfree ((char *) cc);
++ return -1;
++ }
++
++#if _SLANG_HAS_DEBUG_CODE
++ if ((name != NULL)
++ &amp;&amp; (NULL == (name = SLang_create_slstring (name))))
++ {
++ SLfree ((char *) cc);
++ SLfree ((char *) lns);
++ return -1;
++ }
++
++ cc-&gt;compile_filename = This_Compile_Filename;
++ This_Compile_Filename = name;
++#endif
++
++ cc-&gt;static_namespace = This_Static_NameSpace;
++ cc-&gt;compile_variable_mode = Default_Variable_Mode;
++ cc-&gt;define_function = Default_Define_Function;
++ cc-&gt;locals_hash_table = Locals_Hash_Table;
++
++ cc-&gt;lang_defining_function = Lang_Defining_Function;
++ cc-&gt;local_variable_number = Local_Variable_Number;
++ cc-&gt;function_args_number = Function_Args_Number;
++ cc-&gt;locals_hash_table = Locals_Hash_Table;
++ cc-&gt;compile_mode_function = Compile_Mode_Function;
++
++ cc-&gt;next = Compile_Context_Stack;
++ Compile_Context_Stack = cc;
++
++ Compile_Mode_Function = compile_basic_token_mode;
++ Default_Variable_Mode = compile_public_variable_mode;
++ Default_Define_Function = define_public_function;
++ Lang_Defining_Function = 0;
++ Local_Variable_Number = 0;
++ Function_Args_Number = 0;
++ Locals_Hash_Table = lns;
++ return 0;
++}
++
++static int init_interpreter (void)
++{
++ SLang_NameSpace_Type *ns;
++
++ if (Global_NameSpace != NULL)
++ return 0;
++
++ if (NULL == (ns = _SLns_allocate_namespace (&quot;***GLOBAL***&quot;, SLGLOBALS_HASH_TABLE_SIZE)))
++ return -1;
++ if (-1 == _SLns_set_namespace_name (ns, &quot;Global&quot;))
++ return -1;
++ Global_NameSpace = ns;
++
++ _SLRun_Stack = (SLang_Object_Type *) SLcalloc (SLANG_MAX_STACK_LEN,
++ sizeof (SLang_Object_Type));
++ if (_SLRun_Stack == NULL)
++ return -1;
++
++ _SLStack_Pointer = _SLRun_Stack;
++ _SLStack_Pointer_Max = _SLRun_Stack + SLANG_MAX_STACK_LEN;
++
++ SLShort_Blocks[0].bc_main_type = _SLANG_BC_RETURN;
++ SLShort_Blocks[2].bc_main_type = _SLANG_BC_BREAK;
++ SLShort_Blocks[4].bc_main_type = _SLANG_BC_CONTINUE;
++
++ Num_Args_Stack = (int *) SLmalloc (sizeof (int) * SLANG_MAX_RECURSIVE_DEPTH);
++ if (Num_Args_Stack == NULL)
++ {
++ SLfree ((char *) _SLRun_Stack);
++ return -1;
++ }
++ Recursion_Depth = 0;
++ Frame_Pointer_Stack = (unsigned int *) SLmalloc (sizeof (unsigned int) * SLANG_MAX_RECURSIVE_DEPTH);
++ if (Frame_Pointer_Stack == NULL)
++ {
++ SLfree ((char *) _SLRun_Stack);
++ SLfree ((char *)Num_Args_Stack);
++ return -1;
++ }
++ Frame_Pointer_Depth = 0;
++ Frame_Pointer = _SLRun_Stack;
++
++ Default_Variable_Mode = compile_public_variable_mode;
++ Default_Define_Function = define_public_function;
++ return 0;
++}
++
++static int add_generic_table (SLang_NameSpace_Type *ns,
++ SLang_Name_Type *table, char *pp_name,
++ unsigned int entry_len)
++{
++ SLang_Name_Type *t, **ns_table;
++ char *name;
++ unsigned int table_size;
++
++ if (-1 == init_interpreter ())
++ return -1;
++
++ if (ns == NULL)
++ ns = Global_NameSpace;
++
++ ns_table = ns-&gt;table;
++ table_size = ns-&gt;table_size;
++
++ if ((pp_name != NULL)
++ &amp;&amp; (-1 == SLdefine_for_ifdef (pp_name)))
++ return -1;
++
++ t = table;
++ while (NULL != (name = t-&gt;name))
++ {
++ unsigned long hash;
++
++ /* Backward compatibility: '.' WAS used as hash marker */
++ if (*name == '.')
++ {
++ name++;
++ t-&gt;name = name;
++ }
++
++ if (NULL == (name = SLang_create_slstring (name)))
++ return -1;
++
++ t-&gt;name = name;
++
++ hash = _SLcompute_string_hash (name);
++ hash = hash % table_size;
++
++ t-&gt;next = ns_table [(unsigned int) hash];
++ ns_table [(unsigned int) hash] = t;
++
++ t = (SLang_Name_Type *) ((char *)t + entry_len);
++ }
++
++ return 0;
++}
++
++int SLadd_intrin_fun_table (SLang_Intrin_Fun_Type *tbl, char *pp)
++{
++ return add_generic_table (NULL, (SLang_Name_Type *) tbl, pp, sizeof (SLang_Intrin_Fun_Type));
++}
++
++int SLadd_intrin_var_table (SLang_Intrin_Var_Type *tbl, char *pp)
++{
++ return add_generic_table (NULL, (SLang_Name_Type *) tbl, pp, sizeof (SLang_Intrin_Var_Type));
++}
++
++int SLadd_app_unary_table (SLang_App_Unary_Type *tbl, char *pp)
++{
++ return add_generic_table (NULL, (SLang_Name_Type *) tbl, pp, sizeof (SLang_App_Unary_Type));
++}
++
++int SLadd_math_unary_table (SLang_Math_Unary_Type *tbl, char *pp)
++{
++ return add_generic_table (NULL, (SLang_Name_Type *) tbl, pp, sizeof (SLang_Math_Unary_Type));
++}
++
++int SLadd_iconstant_table (SLang_IConstant_Type *tbl, char *pp)
++{
++ return add_generic_table (NULL, (SLang_Name_Type *) tbl, pp, sizeof (SLang_IConstant_Type));
++}
++
++#if SLANG_HAS_FLOAT
++int SLadd_dconstant_table (SLang_DConstant_Type *tbl, char *pp)
++{
++ return add_generic_table (NULL, (SLang_Name_Type *) tbl, pp, sizeof (SLang_DConstant_Type));
++}
++#endif
++
++/* ----------- */
++int SLns_add_intrin_fun_table (SLang_NameSpace_Type *ns, SLang_Intrin_Fun_Type *tbl, char *pp)
++{
++ return add_generic_table (ns, (SLang_Name_Type *) tbl, pp, sizeof (SLang_Intrin_Fun_Type));
++}
++
++int SLns_add_intrin_var_table (SLang_NameSpace_Type *ns, SLang_Intrin_Var_Type *tbl, char *pp)
++{
++ return add_generic_table (ns, (SLang_Name_Type *) tbl, pp, sizeof (SLang_Intrin_Var_Type));
++}
++
++int SLns_add_app_unary_table (SLang_NameSpace_Type *ns, SLang_App_Unary_Type *tbl, char *pp)
++{
++ return add_generic_table (ns, (SLang_Name_Type *) tbl, pp, sizeof (SLang_App_Unary_Type));
++}
++
++int SLns_add_math_unary_table (SLang_NameSpace_Type *ns, SLang_Math_Unary_Type *tbl, char *pp)
++{
++ return add_generic_table (ns, (SLang_Name_Type *) tbl, pp, sizeof (SLang_Math_Unary_Type));
++}
++
++int SLns_add_iconstant_table (SLang_NameSpace_Type *ns, SLang_IConstant_Type *tbl, char *pp)
++{
++ return add_generic_table (ns, (SLang_Name_Type *) tbl, pp, sizeof (SLang_IConstant_Type));
++}
++
++#if SLANG_HAS_FLOAT
++int SLns_add_dconstant_table (SLang_NameSpace_Type *ns, SLang_DConstant_Type *tbl, char *pp)
++{
++ return add_generic_table (ns, (SLang_Name_Type *) tbl, pp, sizeof (SLang_DConstant_Type));
++}
++#endif
++
++/* what is a bitmapped value:
++ * 1 intrin fun
++ * 2 user fun
++ * 4 intrin var
++ * 8 user defined var
++ */
++SLang_Array_Type *_SLang_apropos (char *namespace_name, char *pat, unsigned int what)
++{
++ SLang_NameSpace_Type *ns;
++
++ if (namespace_name == NULL)
++ namespace_name = &quot;Global&quot;;
++
++ if (*namespace_name == 0)
++ ns = This_Static_NameSpace;
++ else ns = _SLns_find_namespace (namespace_name);
++
++ return _SLnspace_apropos (ns, pat, what);
++}
++
++void _SLang_implements_intrinsic (char *name)
++{
++ if (This_Static_NameSpace == NULL)
++ {
++ SLang_verror (SL_INTRINSIC_ERROR, &quot;No namespace available&quot;);
++ return;
++ }
++
++ (void) _SLns_set_namespace_name (This_Static_NameSpace, name);
++
++ Default_Define_Function = define_static_function;
++ Default_Variable_Mode = compile_static_variable_mode;
++}
++
++void _SLang_use_namespace_intrinsic (char *name)
++{
++ SLang_NameSpace_Type *ns;
++
++ if (NULL == (ns = _SLns_find_namespace (name)))
++ {
++ SLang_verror (SL_INTRINSIC_ERROR, &quot;Namespace %s does not exist&quot;, name);
++ return;
++ }
++ This_Static_NameSpace = ns;
++ if (Global_NameSpace == ns)
++ {
++ Default_Define_Function = define_public_function;
++ Default_Variable_Mode = compile_public_variable_mode;
++ }
++ else
++ {
++ Default_Define_Function = define_static_function;
++ Default_Variable_Mode = compile_static_variable_mode;
++ }
++}
++
++
++char *_SLang_cur_namespace_intrinsic (void)
++{
++ if (This_Static_NameSpace == NULL)
++ return &quot;Global&quot;;
++
++ if (This_Static_NameSpace-&gt;namespace_name == NULL)
++ return &quot;&quot;;
++
++ return This_Static_NameSpace-&gt;namespace_name;
++}
+
+
+Property changes on: drakx/trunk/mdk-stage1/slang/slang.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1slangslangh">Added: drakx/trunk/mdk-stage1/slang/slang.h</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/slang/slang.h (rev 0)
++++ drakx/trunk/mdk-stage1/slang/slang.h 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,1930 @@
++#ifndef DAVIS_SLANG_H_
++#define DAVIS_SLANG_H_
++/* -*- mode: C; mode: fold; -*- */
++/* Copyright (c) 1992, 1999, 2001 John E. Davis
++ * This file is part of the S-Lang library.
++ *
++ * You may distribute under the terms of either the GNU General Public
++ * License or the Perl Artistic License.
++ */
++#define SLANG_VERSION 10404
++#define SLANG_VERSION_STRING &quot;1.4.4&quot;
++
++/*{{{ System Dependent Macros and Typedefs */
++
++#if defined(__WATCOMC__) &amp;&amp; defined(DOS)
++# ifndef __MSDOS__
++# define __MSDOS__
++# endif
++# ifndef DOS386
++# define DOS386
++# endif
++# ifndef IBMPC_SYSTEM
++# define IBMPC_SYSTEM
++# endif
++#endif /* __watcomc__ */
++
++#if defined(unix) || defined(__unix)
++# ifndef __unix__
++# define __unix__ 1
++# endif
++#endif
++
++#if !defined(__GO32__)
++# ifdef __unix__
++# define REAL_UNIX_SYSTEM
++# endif
++#endif
++
++/* Set of the various defines for pc systems. This includes OS/2 */
++#ifdef __GO32__
++# ifndef __DJGPP__
++# define __DJGPP__ 1
++# endif
++# ifndef IBMPC_SYSTEM
++# define IBMPC_SYSTEM
++# endif
++#endif
++
++#ifdef __BORLANDC__
++# ifndef IBMPC_SYSTEM
++# define IBMPC_SYSTEM
++# endif
++#endif
++
++#ifdef __MSDOS__
++# ifndef IBMPC_SYSTEM
++# define IBMPC_SYSTEM
++# endif
++#endif
++
++#if defined(OS2) || defined(__os2__)
++# ifndef IBMPC_SYSTEM
++# define IBMPC_SYSTEM
++# endif
++# ifndef __os2__
++# define __os2__
++# endif
++#endif
++
++#if defined(__NT__) || defined(__MINGW32__) || defined(__CYGWIN32__)
++# ifndef IBMPC_SYSTEM
++# define IBMPC_SYSTEM
++# endif
++#endif
++
++#if defined(IBMPC_SYSTEM) || defined(VMS)
++# ifdef REAL_UNIX_SYSTEM
++# undef REAL_UNIX_SYSTEM
++# endif
++#endif
++
++#ifdef __cplusplus
++extern &quot;C&quot; {
++#endif
++#if 0
++}
++#endif
++
++#include &lt;stdio.h&gt;
++#include &lt;stdarg.h&gt;
++#if defined(__STDC__) || defined(__BORLANDC__) || defined(__cplusplus)
++# include &lt;stddef.h&gt; /* for offsetof */
++#endif
++
++/* ---------------------------- Generic Macros ----------------------------- */
++
++/* __SC__ is defined for Symantec C++
++ DOS386 is defined for -mx memory model, 32 bit DOS extender. */
++
++#if defined(__SC__) &amp;&amp; !defined(DOS386)
++# include &lt;dos.h&gt;
++#endif
++
++#if defined(__BORLANDC__)
++# include &lt;alloc.h&gt;
++#endif
++
++#if defined (__cplusplus) || defined(__STDC__) || defined(IBMPC_SYSTEM)
++ typedef void *VOID_STAR;
++#else
++ typedef unsigned char *VOID_STAR;
++#endif
++
++typedef int (*FVOID_STAR)(void);
++
++#if defined(__MSDOS_) &amp;&amp; defined(__BORLANDC__)
++# define SLFREE(buf) farfree((void far *)(buf))
++# define SLMALLOC(x) farmalloc((unsigned long) (x))
++# define SLREALLOC(buf, n) farrealloc((void far *) (buf), (unsigned long) (n))
++# define SLCALLOC(n, m) farcalloc((unsigned long) (n), (unsigned long) (m))
++#else
++# if defined(VMS) &amp;&amp; !defined(__DECC)
++# define SLFREE VAXC$FREE_OPT
++# define SLMALLOC VAXC$MALLOC_OPT
++# define SLREALLOC VAXC$REALLOC_OPT
++# define SLCALLOC VAXC$CALLOC_OPT
++# else
++# define SLFREE(x) free((char *)(x))
++# define SLMALLOC malloc
++# define SLREALLOC realloc
++# define SLCALLOC calloc
++# endif
++#endif
++
++ extern char *SLdebug_malloc (unsigned long);
++ extern char *SLdebug_calloc (unsigned long, unsigned long);
++ extern char *SLdebug_realloc (char *, unsigned long);
++ extern void SLdebug_free (char *);
++ extern void SLmalloc_dump_statistics (void);
++ extern char *SLstrcpy(register char *, register char *);
++ extern int SLstrcmp(register char *, register char *);
++ extern char *SLstrncpy(char *, register char *, register int);
++
++ extern void SLmemset (char *, char, int);
++ extern char *SLmemchr (register char *, register char, register int);
++ extern char *SLmemcpy (char *, char *, int);
++ extern int SLmemcmp (char *, char *, int);
++
++/*}}}*/
++
++/*{{{ Interpreter Typedefs */
++
++typedef struct _SLang_Name_Type
++{
++ char *name;
++ struct _SLang_Name_Type *next;
++ char name_type;
++ /* These values must be less than 0x10 because they map directly
++ * to byte codes. See _slang.h.
++ */
++#define SLANG_LVARIABLE 0x01
++#define SLANG_GVARIABLE 0x02
++#define SLANG_IVARIABLE 0x03 /* intrinsic variables */
++ /* Note!!! For Macro MAKE_VARIABLE below to work, SLANG_IVARIABLE Must
++ be 1 less than SLANG_RVARIABLE!!! */
++#define SLANG_RVARIABLE 0x04 /* read only variable */
++#define SLANG_INTRINSIC 0x05
++#define SLANG_FUNCTION 0x06
++#define SLANG_MATH_UNARY 0x07
++#define SLANG_APP_UNARY 0x08
++#define SLANG_ICONSTANT 0x09
++#define SLANG_DCONSTANT 0x0A
++#define SLANG_PVARIABLE 0x0B /* private */
++#define SLANG_PFUNCTION 0x0C /* private */
++
++ /* Rest of fields depend on name type */
++}
++SLang_Name_Type;
++
++typedef struct
++{
++ char *name;
++ struct _SLang_Name_Type *next; /* this is for the hash table */
++ char name_type;
++
++ FVOID_STAR i_fun; /* address of object */
++
++ /* Do not change this without modifying slang.c:execute_intrinsic_fun */
++#define SLANG_MAX_INTRIN_ARGS 7
++ unsigned char arg_types [SLANG_MAX_INTRIN_ARGS];
++ unsigned char num_args;
++ unsigned char return_type;
++}
++SLang_Intrin_Fun_Type;
++
++typedef struct
++{
++ char *name;
++ SLang_Name_Type *next;
++ char name_type;
++
++ VOID_STAR addr;
++ unsigned char type;
++}
++SLang_Intrin_Var_Type;
++
++typedef struct
++{
++ char *name;
++ SLang_Name_Type *next;
++ char name_type;
++
++ int unary_op;
++}
++SLang_App_Unary_Type;
++
++typedef struct
++{
++ char *name;
++ SLang_Name_Type *next;
++ char name_type;
++
++ int unary_op;
++}
++SLang_Math_Unary_Type;
++
++typedef struct
++{
++ char *name;
++ SLang_Name_Type *next;
++ char name_type;
++ int i;
++}
++SLang_IConstant_Type;
++
++typedef struct
++{
++ char *name;
++ SLang_Name_Type *next;
++ char name_type;
++ double d;
++}
++SLang_DConstant_Type;
++
++typedef struct
++{
++ char *field_name;
++ unsigned int offset;
++ unsigned char type;
++ unsigned char read_only;
++}
++SLang_IStruct_Field_Type;
++
++extern int SLadd_intrin_fun_table (SLang_Intrin_Fun_Type *, char *);
++extern int SLadd_intrin_var_table (SLang_Intrin_Var_Type *, char *);
++extern int SLadd_app_unary_table (SLang_App_Unary_Type *, char *);
++extern int SLadd_math_unary_table (SLang_Math_Unary_Type *, char *);
++extern int SLadd_iconstant_table (SLang_IConstant_Type *, char *);
++extern int SLadd_dconstant_table (SLang_DConstant_Type *, char *);
++extern int SLadd_istruct_table (SLang_IStruct_Field_Type *, VOID_STAR, char *);
++
++typedef struct _SLang_NameSpace_Type SLang_NameSpace_Type;
++
++extern int SLns_add_intrin_fun_table (SLang_NameSpace_Type *, SLang_Intrin_Fun_Type *, char *);
++extern int SLns_add_intrin_var_table (SLang_NameSpace_Type *, SLang_Intrin_Var_Type *, char *);
++extern int SLns_add_app_unary_table (SLang_NameSpace_Type *, SLang_App_Unary_Type *, char *);
++extern int SLns_add_math_unary_table (SLang_NameSpace_Type *, SLang_Math_Unary_Type *, char *);
++extern int SLns_add_iconstant_table (SLang_NameSpace_Type *, SLang_IConstant_Type *, char *);
++extern int SLns_add_dconstant_table (SLang_NameSpace_Type *, SLang_DConstant_Type *, char *);
++extern int SLns_add_istruct_table (SLang_NameSpace_Type *, SLang_IStruct_Field_Type *, VOID_STAR, char *);
++
++extern SLang_NameSpace_Type *SLns_create_namespace (char *);
++extern void SLns_delete_namespace (SLang_NameSpace_Type *);
++
++typedef struct SLang_Load_Type
++{
++ int type;
++
++ VOID_STAR client_data;
++ /* Pointer to data that client needs for loading */
++
++ int auto_declare_globals;
++ /* if non-zero, undefined global variables are declared as static */
++
++ char *(*read)(struct SLang_Load_Type *);
++ /* function to call to read next line from obj. */
++
++ unsigned int line_num;
++ /* Number of lines read, used for error reporting */
++
++ int parse_level;
++ /* 0 if at top level of parsing */
++
++ char *name;
++ /* Name of this object, e.g., filename. This name should be unique because
++ * it alone determines the name space for static objects associated with
++ * the compilable unit.
++ */
++
++ unsigned long reserved[4];
++ /* For future expansion */
++} SLang_Load_Type;
++
++extern SLang_Load_Type *SLallocate_load_type (char *);
++extern void SLdeallocate_load_type (SLang_Load_Type *);
++
++/* Returns SLang_Error upon failure */
++extern int SLang_load_object (SLang_Load_Type *);
++extern int (*SLang_Load_File_Hook)(char *);
++extern int (*SLang_Auto_Declare_Var_Hook) (char *);
++
++extern int SLang_generate_debug_info (int);
++
++
++#if defined(ultrix) &amp;&amp; !defined(__GNUC__)
++# ifndef NO_PROTOTYPES
++# define NO_PROTOTYPES
++# endif
++#endif
++
++#ifndef NO_PROTOTYPES
++# define _PROTO(x) x
++#else
++# define _PROTO(x) ()
++#endif
++
++typedef struct SL_OOBinary_Type
++{
++ unsigned char data_type; /* partner type for binary op */
++
++ int (*binary_function)_PROTO((int,
++ unsigned char, VOID_STAR, unsigned int,
++ unsigned char, VOID_STAR, unsigned int,
++ VOID_STAR));
++
++ int (*binary_result) _PROTO((int, unsigned char, unsigned char, unsigned char *));
++ struct SL_OOBinary_Type *next;
++}
++SL_OOBinary_Type;
++
++typedef struct _SL_Typecast_Type
++{
++ unsigned char data_type; /* to_type */
++ int allow_implicit;
++
++ int (*typecast)_PROTO((unsigned char, VOID_STAR, unsigned int,
++ unsigned char, VOID_STAR));
++ struct _SL_Typecast_Type *next;
++}
++SL_Typecast_Type;
++
++typedef struct _SLang_Struct_Type SLang_Struct_Type;
++
++#if defined(SL_APP_WANTS_FOREACH)
++/* It is up to the application to define struct _SLang_Foreach_Context_Type */
++typedef struct _SLang_Foreach_Context_Type SLang_Foreach_Context_Type;
++#else
++typedef int SLang_Foreach_Context_Type;
++#endif
++
++typedef struct
++{
++ unsigned char cl_class_type;
++#define SLANG_CLASS_TYPE_MMT 0
++#define SLANG_CLASS_TYPE_SCALAR 1
++#define SLANG_CLASS_TYPE_VECTOR 2
++#define SLANG_CLASS_TYPE_PTR 3
++
++ unsigned int cl_data_type; /* SLANG_INTEGER_TYPE, etc... */
++ char *cl_name; /* slstring type */
++
++ unsigned int cl_sizeof_type;
++ VOID_STAR cl_transfer_buf; /* cl_sizeof_type bytes*/
++
++ /* Methods */
++
++ /* Most of the method functions are prototyped:
++ * int method (unsigned char type, VOID_STAR addr);
++ * Here, @type@ represents the type of object that the method is asked
++ * to deal with. The second parameter @addr@ will contain the ADDRESS of
++ * the object. For example, if type is SLANG_INT_TYPE, then @addr@ will
++ * actually be int *. Similary, if type is SLANG_STRING_TYPE,
++ * then @addr@ will contain the address of the string, i.e., char **.
++ */
++
++ void (*cl_destroy)_PROTO((unsigned char, VOID_STAR));
++ /* Prototype: void destroy(unsigned type, VOID_STAR val)
++ * Called to delete/free the object */
++
++ char *(*cl_string)_PROTO((unsigned char, VOID_STAR));
++ /* Prototype: char *to_string (unsigned char t, VOID_STAR p);
++ * Here p is a pointer to the object for which a string representation
++ * is to be returned. The returned pointer is to be a MALLOCED string.
++ */
++
++ /* Prototype: void push(unsigned char type, VOID_STAR v);
++ * Push a copy of the object of type @type@ at address @v@ onto the
++ * stack.
++ */
++ int (*cl_push)_PROTO((unsigned char, VOID_STAR));
++
++ /* Prototype: int pop(unsigned char type, VOID_STAR v);
++ * Pops value from stack and assign it to object, whose address is @v@.
++ */
++ int (*cl_pop)_PROTO((unsigned char, VOID_STAR));
++
++ int (*cl_unary_op_result_type)_PROTO((int, unsigned char, unsigned char *));
++ int (*cl_unary_op)_PROTO((int, unsigned char, VOID_STAR, unsigned int, VOID_STAR));
++
++ int (*cl_app_unary_op_result_type)_PROTO((int, unsigned char, unsigned char *));
++ int (*cl_app_unary_op)_PROTO((int, unsigned char, VOID_STAR, unsigned int, VOID_STAR));
++
++ /* If this function is non-NULL, it will be called for sin, cos, etc... */
++#define SLMATH_SIN 1
++#define SLMATH_COS 2
++#define SLMATH_TAN 3
++#define SLMATH_ATAN 4
++#define SLMATH_ASIN 5
++#define SLMATH_ACOS 6
++#define SLMATH_EXP 7
++#define SLMATH_LOG 8
++#define SLMATH_SQRT 9
++#define SLMATH_LOG10 10
++#define SLMATH_REAL 11
++#define SLMATH_IMAG 12
++#define SLMATH_SINH 13
++#define SLMATH_COSH 14
++#define SLMATH_TANH 15
++#define SLMATH_ATANH 16
++#define SLMATH_ASINH 17
++#define SLMATH_ACOSH 18
++#define SLMATH_TODOUBLE 19
++#define SLMATH_CONJ 20
++
++ int (*cl_math_op)_PROTO((int, unsigned char, VOID_STAR, unsigned int, VOID_STAR));
++ int (*cl_math_op_result_type)_PROTO((int, unsigned char, unsigned char *));
++
++ SL_OOBinary_Type *cl_binary_ops;
++ SL_Typecast_Type *cl_typecast_funs;
++
++ void (*cl_byte_code_destroy)_PROTO((unsigned char, VOID_STAR));
++ void (*cl_user_destroy_fun)_PROTO((unsigned char, VOID_STAR));
++ int (*cl_init_array_object)_PROTO((unsigned char, VOID_STAR));
++ int (*cl_datatype_deref)_PROTO((unsigned char));
++ SLang_Struct_Type *cl_struct_def;
++ int (*cl_dereference) _PROTO((unsigned char, VOID_STAR));
++ int (*cl_acopy) (unsigned char, VOID_STAR, VOID_STAR);
++ int (*cl_apop) _PROTO((unsigned char, VOID_STAR));
++ int (*cl_apush) _PROTO((unsigned char, VOID_STAR));
++ int (*cl_push_literal) _PROTO((unsigned char, VOID_STAR));
++ void (*cl_adestroy)_PROTO((unsigned char, VOID_STAR));
++ int (*cl_push_intrinsic)_PROTO((unsigned char, VOID_STAR));
++ int (*cl_void_typecast)_PROTO((unsigned char, VOID_STAR, unsigned int, unsigned char, VOID_STAR));
++
++ int (*cl_anytype_typecast)_PROTO((unsigned char, VOID_STAR, unsigned int, unsigned char, VOID_STAR));
++
++ /* Array access functions */
++ int (*cl_aput) (unsigned char, unsigned int);
++ int (*cl_aget) (unsigned char, unsigned int);
++ int (*cl_anew) (unsigned char, unsigned int);
++
++ /* length method */
++ int (*cl_length) (unsigned char, VOID_STAR, unsigned int *);
++
++ /* foreach */
++ SLang_Foreach_Context_Type *(*cl_foreach_open) (unsigned char, unsigned int);
++ void (*cl_foreach_close) (unsigned char, SLang_Foreach_Context_Type *);
++ int (*cl_foreach) (unsigned char, SLang_Foreach_Context_Type *);
++
++ /* Structure access: get and put (assign to) fields */
++ int (*cl_sput) (unsigned char, char *);
++ int (*cl_sget) (unsigned char, char *);
++
++ /* File I/O */
++ int (*cl_fread) (unsigned char, FILE *, VOID_STAR, unsigned int, unsigned int *);
++ int (*cl_fwrite) (unsigned char, FILE *, VOID_STAR, unsigned int, unsigned int *);
++ int (*cl_fdread) (unsigned char, int, VOID_STAR, unsigned int, unsigned int *);
++ int (*cl_fdwrite) (unsigned char, int, VOID_STAR, unsigned int, unsigned int *);
++
++ int (*cl_to_bool) (unsigned char, int *);
++
++ int (*cl_cmp)(unsigned char, VOID_STAR, VOID_STAR, int *);
++
++} SLang_Class_Type;
++
++/* These are the low-level functions for building push/pop methods. They
++ * know nothing about memory management. For SLANG_CLASS_TYPE_MMT, use the
++ * MMT push/pop functions instead.
++ */
++extern int SLclass_push_double_obj (unsigned char, double);
++extern int SLclass_push_float_obj (unsigned char, float);
++extern int SLclass_push_long_obj (unsigned char, long);
++extern int SLclass_push_int_obj (unsigned char, int);
++extern int SLclass_push_short_obj (unsigned char, short);
++extern int SLclass_push_char_obj (unsigned char, char);
++extern int SLclass_push_ptr_obj (unsigned char, VOID_STAR);
++extern int SLclass_pop_double_obj (unsigned char, double *);
++extern int SLclass_pop_float_obj (unsigned char, float *);
++extern int SLclass_pop_long_obj (unsigned char, long *);
++extern int SLclass_pop_int_obj (unsigned char, int *);
++extern int SLclass_pop_short_obj (unsigned char, short *);
++extern int SLclass_pop_char_obj (unsigned char, char *);
++extern int SLclass_pop_ptr_obj (unsigned char, VOID_STAR *);
++
++extern SLang_Class_Type *SLclass_allocate_class (char *);
++extern int SLclass_get_class_id (SLang_Class_Type *cl);
++extern int SLclass_create_synonym (char *, unsigned char);
++extern int SLclass_is_class_defined (unsigned char);
++
++extern int SLclass_register_class (SLang_Class_Type *, unsigned char, unsigned int, unsigned char);
++extern int SLclass_set_string_function (SLang_Class_Type *, char *(*)(unsigned char, VOID_STAR));
++extern int SLclass_set_destroy_function (SLang_Class_Type *, void (*)(unsigned char, VOID_STAR));
++extern int SLclass_set_push_function (SLang_Class_Type *, int (*)(unsigned char, VOID_STAR));
++extern int SLclass_set_pop_function (SLang_Class_Type *, int (*)(unsigned char, VOID_STAR));
++
++extern int SLclass_set_aget_function (SLang_Class_Type *, int (*)(unsigned char, unsigned int));
++extern int SLclass_set_aput_function (SLang_Class_Type *, int (*)(unsigned char, unsigned int));
++extern int SLclass_set_anew_function (SLang_Class_Type *, int (*)(unsigned char, unsigned int));
++
++extern int SLclass_set_sget_function (SLang_Class_Type *, int (*)(unsigned char, char *));
++extern int SLclass_set_sput_function (SLang_Class_Type *, int (*)(unsigned char, char *));
++
++/* Typecast object on the stack to type p1. p2 and p3 should be set to 1 */
++extern int SLclass_typecast (unsigned char, int, int);
++
++extern int SLclass_add_unary_op (unsigned char,
++ int (*) (int,
++ unsigned char, VOID_STAR, unsigned int,
++ VOID_STAR),
++ int (*) (int, unsigned char, unsigned char *));
++
++extern int
++SLclass_add_app_unary_op (unsigned char,
++ int (*) (int,
++ unsigned char, VOID_STAR, unsigned int,
++ VOID_STAR),
++ int (*) (int, unsigned char, unsigned char *));
++
++extern int
++SLclass_add_binary_op (unsigned char, unsigned char,
++ int (*) (int,
++ unsigned char, VOID_STAR, unsigned int,
++ unsigned char, VOID_STAR, unsigned int,
++ VOID_STAR),
++ int (*) (int, unsigned char, unsigned char, unsigned char *));
++
++extern int
++SLclass_add_math_op (unsigned char,
++ int (*)(int,
++ unsigned char, VOID_STAR, unsigned int,
++ VOID_STAR),
++ int (*)(int, unsigned char, unsigned char *));
++
++extern int
++SLclass_add_typecast (unsigned char /* from */, unsigned char /* to */,
++ int (*)_PROTO((unsigned char, VOID_STAR, unsigned int,
++ unsigned char, VOID_STAR)),
++ int /* allow implicit typecasts */
++ );
++
++extern char *SLclass_get_datatype_name (unsigned char);
++
++extern double SLcomplex_abs (double *);
++extern double *SLcomplex_times (double *, double *, double *);
++extern double *SLcomplex_divide (double *, double *, double *);
++extern double *SLcomplex_sin (double *, double *);
++extern double *SLcomplex_cos (double *, double *);
++extern double *SLcomplex_tan (double *, double *);
++extern double *SLcomplex_asin (double *, double *);
++extern double *SLcomplex_acos (double *, double *);
++extern double *SLcomplex_atan (double *, double *);
++extern double *SLcomplex_exp (double *, double *);
++extern double *SLcomplex_log (double *, double *);
++extern double *SLcomplex_log10 (double *, double *);
++extern double *SLcomplex_sqrt (double *, double *);
++extern double *SLcomplex_sinh (double *, double *);
++extern double *SLcomplex_cosh (double *, double *);
++extern double *SLcomplex_tanh (double *, double *);
++extern double *SLcomplex_pow (double *, double *, double *);
++extern double SLmath_hypot (double x, double y);
++
++/* Not implemented yet */
++extern double *SLcomplex_asinh (double *, double *);
++extern double *SLcomplex_acosh (double *, double *);
++extern double *SLcomplex_atanh (double *, double *);
++
++#ifdef _SLANG_SOURCE_
++typedef struct _SLang_MMT_Type SLang_MMT_Type;
++#else
++typedef int SLang_MMT_Type;
++#endif
++
++extern void SLang_free_mmt (SLang_MMT_Type *);
++extern VOID_STAR SLang_object_from_mmt (SLang_MMT_Type *);
++extern SLang_MMT_Type *SLang_create_mmt (unsigned char, VOID_STAR);
++extern int SLang_push_mmt (SLang_MMT_Type *);
++extern SLang_MMT_Type *SLang_pop_mmt (unsigned char);
++extern void SLang_inc_mmt (SLang_MMT_Type *);
++
++/* Maximum number of dimensions of an array. */
++#define SLARRAY_MAX_DIMS 7
++typedef struct _SLang_Array_Type
++{
++ unsigned char data_type;
++ unsigned int sizeof_type;
++ VOID_STAR data;
++ unsigned int num_elements;
++ unsigned int num_dims;
++ int dims [SLARRAY_MAX_DIMS];
++ VOID_STAR (*index_fun)_PROTO((struct _SLang_Array_Type *, int *));
++ /* This function is designed to allow a type to store an array in
++ * any manner it chooses. This function returns the address of the data
++ * value at the specified index location.
++ */
++ unsigned int flags;
++#define SLARR_DATA_VALUE_IS_READ_ONLY 1
++#define SLARR_DATA_VALUE_IS_POINTER 2
++#define SLARR_DATA_VALUE_IS_RANGE 4
++#define SLARR_DATA_VALUE_IS_INTRINSIC 8
++ SLang_Class_Type *cl;
++ unsigned int num_refs;
++}
++SLang_Array_Type;
++
++extern int SLang_pop_array_of_type (SLang_Array_Type **, unsigned char);
++extern int SLang_pop_array (SLang_Array_Type **, int);
++extern int SLang_push_array (SLang_Array_Type *, int);
++extern void SLang_free_array (SLang_Array_Type *);
++extern SLang_Array_Type *SLang_create_array (unsigned char, int, VOID_STAR, int *, unsigned int);
++extern SLang_Array_Type *SLang_duplicate_array (SLang_Array_Type *);
++extern int SLang_get_array_element (SLang_Array_Type *, int *, VOID_STAR);
++extern int SLang_set_array_element (SLang_Array_Type *, int *, VOID_STAR);
++
++
++/*}}}*/
++
++/*{{{ Interpreter Function Prototypes */
++
++ extern volatile int SLang_Error;
++/* Non zero if error occurs. Must be reset to zero to continue. */
++/* error codes, severe errors are less than 0 */
++#define SL_APPLICATION_ERROR -2
++#define SL_VARIABLE_UNINITIALIZED -3
++#define SL_INTERNAL_ERROR -5
++#define SL_STACK_OVERFLOW -6
++#define SL_STACK_UNDERFLOW -7
++#define SL_UNDEFINED_NAME -8
++#define SL_SYNTAX_ERROR -9
++#define SL_DUPLICATE_DEFINITION -10
++#define SL_TYPE_MISMATCH -11
++#define SL_OBJ_UNKNOWN -13
++#define SL_UNKNOWN_ERROR -14
++#define SL_TYPE_UNDEFINED_OP_ERROR -16
++
++#define SL_INTRINSIC_ERROR 1
++/* Intrinsic error is an error generated by intrinsic functions */
++#define SL_USER_BREAK 2
++#define SL_DIVIDE_ERROR 3
++#define SL_OBJ_NOPEN 4
++#define SL_USER_ERROR 5
++#define SL_USAGE_ERROR 6
++#define SL_READONLY_ERROR 7
++#define SL_INVALID_PARM 8
++#define SL_NOT_IMPLEMENTED 9
++#define SL_MALLOC_ERROR 10
++#define SL_OVERFLOW 11
++#define SL_FLOATING_EXCEPTION 12
++
++/* Compatibility */
++#define USER_BREAK SL_USER_BREAK
++#define INTRINSIC_ERROR SL_INTRINSIC_ERROR
++
++ extern int SLang_Traceback;
++ /* If non-zero, dump an S-Lang traceback upon error. Available as
++ _traceback in S-Lang. */
++
++ extern char *SLang_User_Prompt;
++ /* Prompt to use when reading from stdin */
++ extern int SLang_Version;
++ extern char *SLang_Version_String;
++extern char *SLang_Doc_Dir;
++
++extern void (*SLang_VMessage_Hook) (char *, va_list);
++extern void SLang_vmessage (char *, ...);
++
++ extern void (*SLang_Error_Hook)(char *);
++ /* Pointer to application dependent error messaging routine. By default,
++ messages are displayed on stderr. */
++
++ extern void (*SLang_Exit_Error_Hook)(char *, va_list);
++ extern void SLang_exit_error (char *, ...);
++ extern void (*SLang_Dump_Routine)(char *);
++ /* Called if S-Lang traceback is enabled as well as other debugging
++ routines (e.g., trace). By default, these messages go to stderr. */
++
++ extern void (*SLang_Interrupt)(void);
++ /* function to call whenever inner interpreter is entered. This is
++ a good place to set SLang_Error to USER_BREAK. */
++
++ extern void (*SLang_User_Clear_Error)(void);
++ /* function that gets called when '_clear_error' is called. */
++
++ /* If non null, these call C functions before and after a slang function. */
++ extern void (*SLang_Enter_Function)(char *);
++extern void (*SLang_Exit_Function)(char *);
++
++extern int SLang_Num_Function_Args;
++
++/* Functions: */
++
++extern int SLang_init_all (void);
++/* Initializes interpreter and all modules */
++
++extern int SLang_init_slang (void);
++/* This function is mandatory and must be called by all applications that
++ * use the interpreter
++ */
++extern int SLang_init_posix_process (void); /* process specific intrinsics */
++extern int SLang_init_stdio (void); /* fgets, etc. stdio functions */
++extern int SLang_init_posix_dir (void);
++extern int SLang_init_ospath (void);
++
++extern int SLang_init_slmath (void);
++/* called if math functions sin, cos, etc... are needed. */
++
++ extern int SLang_init_slfile (void);
++ extern int SLang_init_slunix (void);
++ /* These functions are obsolte. Use init_stdio, posix_process, etc. */
++
++extern int SLang_init_slassoc (void);
++/* Assoc Arrays (Hashes) */
++
++extern int SLang_init_array (void);
++/* Additional arrays functions: transpose, etc... */
++
++/* Dynamic linking facility */
++extern int SLang_init_import (void);
++
++ extern int SLang_load_file (char *);
++ /* Load a file of S-Lang code for interpreting. If the parameter is
++ * NULL, input comes from stdin. */
++
++ extern void SLang_restart(int);
++ /* should be called if an error occurs. If the passed integer is
++ * non-zero, items are popped off the stack; otherwise, the stack is
++ * left intact. Any time the stack is believed to be trashed, this routine
++ * should be called with a non-zero argument (e.g., if setjmp/longjmp is
++ * called). */
++
++ extern int SLang_byte_compile_file(char *, int);
++ /* takes a file of S-Lang code and ``byte-compiles'' it for faster
++ * loading. The new filename is equivalent to the old except that a `c' is
++ * appended to the name. (e.g., init.sl --&gt; init.slc). The second
++ * specified the method; currently, it is not used.
++ */
++
++ extern int SLang_autoload(char *, char *);
++ /* Automatically load S-Lang function p1 from file p2. This function
++ is also available via S-Lang */
++
++ extern int SLang_load_string(char *);
++ /* Like SLang_load_file except input is from a null terminated string. */
++
++ extern int SLdo_pop(void);
++ /* pops item off stack and frees any memory associated with it */
++ extern int SLdo_pop_n(unsigned int);
++ /* pops n items off stack and frees any memory associated with them */
++
++extern int SLang_pop_integer(int *);
++extern int SLang_pop_uinteger(unsigned int *);
++ /* pops integer *p0 from the stack. Returns 0 upon success and non-zero
++ * if the stack is empty or a type mismatch occurs, setting SLang_Error.
++ */
++extern int SLang_pop_char (char *);
++extern int SLang_pop_uchar (unsigned char *);
++extern int SLang_pop_short(short *);
++extern int SLang_pop_ushort(unsigned short *);
++extern int SLang_pop_long(long *);
++extern int SLang_pop_ulong(unsigned long *);
++
++extern int SLang_pop_float(float *);
++extern int SLang_pop_double(double *, int *, int *);
++ /* Pops double *p1 from stack. If *p3 is non-zero, *p1 was derived
++ from the integer *p2. Returns zero upon success. */
++
++ extern int SLang_pop_complex (double *, double *);
++
++ extern int SLpop_string (char **);
++ extern int SLang_pop_string(char **, int *);
++ /* pops string *p0 from stack. If *p1 is non-zero, the string must be
++ * freed after its use. DO NOT FREE p0 if *p1 IS ZERO! Returns 0 upon
++ * success */
++
++ extern int SLang_push_complex (double, double);
++
++ extern int SLang_push_char (char);
++ extern int SLang_push_uchar (unsigned char);
++
++ extern int SLang_push_integer(int);
++ extern int SLang_push_uinteger(unsigned int);
++ /* push integer p1 on stack */
++
++ extern int SLang_push_short(short);
++ extern int SLang_push_ushort(unsigned short);
++ extern int SLang_push_long(long);
++ extern int SLang_push_ulong(unsigned long);
++ extern int SLang_push_float(float);
++ extern int SLang_push_double(double);
++ /* Push double onto stack */
++
++ extern int SLang_push_string(char *);
++ /* Push string p1 onto stack */
++
++ extern int SLang_push_malloced_string(char *);
++ /* The normal SLang_push_string pushes an slstring. This one converts
++ * a normally malloced string to an slstring, and then frees the
++ * malloced string. So, do NOT use the malloced string after calling
++ * this routine because it will be freed! The routine returns -1 upon
++ * error, but the string will be freed.
++ */
++
++extern int SLang_push_null (void);
++extern int SLang_pop_null (void);
++
++extern int SLang_push_value (unsigned char type, VOID_STAR);
++extern int SLang_pop_value (unsigned char type, VOID_STAR);
++extern void SLang_free_value (unsigned char type, VOID_STAR);
++
++typedef struct _SLang_Object_Type SLang_Any_Type;
++
++extern int SLang_pop_anytype (SLang_Any_Type **);
++extern int SLang_push_anytype (SLang_Any_Type *);
++extern void SLang_free_anytype (SLang_Any_Type *);
++
++#ifdef _SLANG_SOURCE_
++typedef struct _SLang_Ref_Type SLang_Ref_Type;
++#else
++typedef int SLang_Ref_Type;
++#endif
++
++extern int SLang_pop_ref (SLang_Ref_Type **);
++extern void SLang_free_ref (SLang_Ref_Type *);
++extern int SLang_assign_to_ref (SLang_Ref_Type *, unsigned char, VOID_STAR);
++extern SLang_Name_Type *SLang_pop_function (void);
++extern SLang_Name_Type *SLang_get_fun_from_ref (SLang_Ref_Type *);
++extern void SLang_free_function (SLang_Name_Type *f);
++
++ extern int SLang_is_defined(char *);
++ /* Return non-zero is p1 is defined otherwise returns 0. */
++
++ extern int SLang_run_hooks(char *, unsigned int, ...);
++ /* calls S-Lang function p1 pushing p2 strings in the variable argument
++ * list onto the stack first.
++ * Returns -1 upon error, 1 if hooks exists and it ran,
++ * or 0 if hook does not exist. Thus it returns non-zero is hook was called.
++ */
++
++/* These functions return 1 if the indicated function exists and the function
++ * runs without error. If the function does not exist, the function returns
++ * 0. Otherwise -1 is returned with SLang_Error set appropriately.
++ */
++extern int SLexecute_function (SLang_Name_Type *);
++extern int SLang_execute_function(char *);
++
++
++extern int SLang_end_arg_list (void);
++extern int SLang_start_arg_list (void);
++
++extern void SLang_verror (int, char *, ...);
++
++extern void SLang_doerror(char *);
++ /* set SLang_Error and display p1 as error message */
++
++extern int SLang_add_intrinsic_array (char *, /* name */
++ unsigned char, /* type */
++ int, /* readonly */
++ VOID_STAR, /* data */
++ unsigned int, ...); /* num dims */
++
++extern int SLextract_list_element (char *, unsigned int, char,
++ char *, unsigned int);
++
++extern void SLexpand_escaped_string (register char *, register char *,
++ register char *);
++
++extern SLang_Name_Type *SLang_get_function (char *);
++extern void SLang_release_function (SLang_Name_Type *);
++
++extern int SLreverse_stack (int);
++extern int SLroll_stack (int);
++/* If argument p is positive, the top p objects on the stack are rolled
++ * up. If negative, the stack is rolled down.
++ */
++extern int SLdup_n (int n);
++/* Duplicate top n elements of stack */
++
++extern int SLang_peek_at_stack1 (void);
++extern int SLang_peek_at_stack (void);
++/* Returns type of next object on stack-- -1 upon stack underflow. */
++extern void SLmake_lut (unsigned char *, unsigned char *, unsigned char);
++
++ extern int SLang_guess_type (char *);
++
++extern int SLstruct_create_struct (unsigned int,
++ char **,
++ unsigned char *,
++ VOID_STAR *);
++
++/*}}}*/
++
++/*{{{ Misc Functions */
++
++/* This is an interface to atexit */
++extern int SLang_add_cleanup_function (void (*)(void));
++
++extern char *SLmake_string (char *);
++extern char *SLmake_nstring (char *, unsigned int);
++/* Returns a null terminated string made from the first n characters of the
++ * string.
++ */
++
++/* The string created by this routine must be freed by SLang_free_slstring
++ * and nothing else!! Also these strings must not be modified. Use
++ * SLmake_string if you intend to modify them!!
++ */
++extern char *SLang_create_nslstring (char *, unsigned int);
++extern char *SLang_create_slstring (char *);
++extern void SLang_free_slstring (char *); /* handles NULL */
++extern int SLang_pop_slstring (char **); /* free with SLang_free_slstring */
++extern char *SLang_concat_slstrings (char *a, char *b);
++extern char *SLang_create_static_slstring (char *); /* adds a string that will not get deleted */
++extern void SLstring_dump_stats (void);
++
++/* Binary strings */
++/* The binary string is an opaque type. Use the SLbstring_get_pointer function
++ * to get a pointer and length.
++ */
++typedef struct _SLang_BString_Type SLang_BString_Type;
++extern unsigned char *SLbstring_get_pointer (SLang_BString_Type *, unsigned int *);
++
++extern SLang_BString_Type *SLbstring_dup (SLang_BString_Type *);
++extern SLang_BString_Type *SLbstring_create (unsigned char *, unsigned int);
++
++/* The create_malloced function used the first argument which is assumed
++ * to be a pointer to a len + 1 malloced string. The extra byte is for
++ * \0 termination.
++ */
++extern SLang_BString_Type *SLbstring_create_malloced (unsigned char *, unsigned int, int);
++
++/* Create a bstring from an slstring */
++extern SLang_BString_Type *SLbstring_create_slstring (char *);
++
++extern void SLbstring_free (SLang_BString_Type *);
++extern int SLang_pop_bstring (SLang_BString_Type **);
++extern int SLang_push_bstring (SLang_BString_Type *);
++
++extern char *SLmalloc (unsigned int);
++extern char *SLcalloc (unsigned int, unsigned int);
++extern void SLfree(char *); /* This function handles NULL */
++extern char *SLrealloc (char *, unsigned int);
++
++extern char *SLcurrent_time_string (void);
++
++extern int SLatoi(unsigned char *);
++extern long SLatol (unsigned char *);
++extern unsigned long SLatoul (unsigned char *);
++
++extern int SLang_pop_fileptr (SLang_MMT_Type **, FILE **);
++extern char *SLang_get_name_from_fileptr (SLang_MMT_Type *);
++
++typedef struct _SLFile_FD_Type SLFile_FD_Type;
++extern SLFile_FD_Type *SLfile_create_fd (char *, int);
++extern void SLfile_free_fd (SLFile_FD_Type *);
++extern int SLfile_push_fd (SLFile_FD_Type *);
++extern int SLfile_pop_fd (SLFile_FD_Type **);
++extern int SLfile_get_fd (SLFile_FD_Type *, int *);
++extern SLFile_FD_Type *SLfile_dup_fd (SLFile_FD_Type *f0);
++extern int SLang_init_posix_io (void);
++
++typedef double (*SLang_To_Double_Fun_Type)(VOID_STAR);
++extern SLang_To_Double_Fun_Type SLarith_get_to_double_fun (unsigned char, unsigned int *);
++
++extern int SLang_set_argc_argv (int, char **);
++
++/*}}}*/
++
++/*{{{ SLang getkey interface Functions */
++
++#ifdef REAL_UNIX_SYSTEM
++extern int SLang_TT_Baud_Rate;
++extern int SLang_TT_Read_FD;
++#endif
++
++extern int SLang_init_tty (int, int, int);
++/* Initializes the tty for single character input. If the first parameter *p1
++ * is in the range 0-255, it will be used for the abort character;
++ * otherwise, (unix only) if it is -1, the abort character will be the one
++ * used by the terminal. If the second parameter p2 is non-zero, flow
++ * control is enabled. If the last parmeter p3 is zero, output processing
++ * is NOT turned on. A value of zero is required for the screen management
++ * routines. Returns 0 upon success. In addition, if SLang_TT_Baud_Rate ==
++ * 0 when this function is called, SLang will attempt to determine the
++ * terminals baud rate. As far as the SLang library is concerned, if
++ * SLang_TT_Baud_Rate is less than or equal to zero, the baud rate is
++ * effectively infinite.
++ */
++
++extern void SLang_reset_tty (void);
++/* Resets tty to what it was prior to a call to SLang_init_tty */
++#ifdef REAL_UNIX_SYSTEM
++extern void SLtty_set_suspend_state (int);
++ /* If non-zero argument, terminal driver will be told to react to the
++ * suspend character. If 0, it will not.
++ */
++extern int (*SLang_getkey_intr_hook) (void);
++#endif
++
++#define SLANG_GETKEY_ERROR 0xFFFF
++extern unsigned int SLang_getkey (void);
++/* reads a single key from the tty. If the read fails, 0xFFFF is returned. */
++
++#ifdef IBMPC_SYSTEM
++extern int SLgetkey_map_to_ansi (int);
++#endif
++
++extern int SLang_ungetkey_string (unsigned char *, unsigned int);
++extern int SLang_buffer_keystring (unsigned char *, unsigned int);
++extern int SLang_ungetkey (unsigned char);
++extern void SLang_flush_input (void);
++extern int SLang_input_pending (int);
++extern int SLang_Abort_Char;
++/* The value of the character (0-255) used to trigger SIGINT */
++extern int SLang_Ignore_User_Abort;
++/* If non-zero, pressing the abort character will not result in USER_BREAK
++ * SLang_Error. */
++
++extern int SLang_set_abort_signal (void (*)(int));
++/* If SIGINT is generated, the function p1 will be called. If p1 is NULL
++ * the SLang_default signal handler is called. This sets SLang_Error to
++ * USER_BREAK. I suspect most users will simply want to pass NULL.
++ */
++extern unsigned int SLang_Input_Buffer_Len;
++
++extern volatile int SLKeyBoard_Quit;
++
++#ifdef VMS
++/* If this function returns -1, ^Y will be added to input buffer. */
++extern int (*SLtty_VMS_Ctrl_Y_Hook) (void);
++#endif
++/*}}}*/
++
++/*{{{ SLang Keymap routines */
++
++typedef struct SLKeymap_Function_Type
++{
++ char *name;
++ int (*f)(void);
++}
++SLKeymap_Function_Type;
++
++#define SLANG_MAX_KEYMAP_KEY_SEQ 14
++typedef struct SLang_Key_Type
++{
++ struct SLang_Key_Type *next;
++ union
++ {
++ char *s;
++ FVOID_STAR f;
++ unsigned int keysym;
++ }
++ f;
++ unsigned char type; /* type of function */
++#define SLKEY_F_INTERPRET 0x01
++#define SLKEY_F_INTRINSIC 0x02
++#define SLKEY_F_KEYSYM 0x03
++ unsigned char str[SLANG_MAX_KEYMAP_KEY_SEQ + 1];/* key sequence */
++}
++SLang_Key_Type;
++
++typedef struct SLKeyMap_List_Type
++{
++ char *name; /* hashed string */
++ SLang_Key_Type *keymap;
++ SLKeymap_Function_Type *functions; /* intrinsic functions */
++}
++SLKeyMap_List_Type;
++
++/* This is arbitrary but I have got to start somewhere */
++#define SLANG_MAX_KEYMAPS 30
++extern SLKeyMap_List_Type SLKeyMap_List[SLANG_MAX_KEYMAPS];
++
++extern char *SLang_process_keystring(char *);
++
++extern int SLkm_define_key (char *, FVOID_STAR, SLKeyMap_List_Type *);
++
++extern int SLang_define_key(char *, char *, SLKeyMap_List_Type *);
++/* Like define_key1 except that p2 is a string that is to be associated with
++ * a function in the functions field of p3. This routine calls define_key1.
++ */
++
++extern int SLkm_define_keysym (char *, unsigned int, SLKeyMap_List_Type *);
++
++extern void SLang_undefine_key(char *, SLKeyMap_List_Type *);
++
++extern SLKeyMap_List_Type *SLang_create_keymap(char *, SLKeyMap_List_Type *);
++/* create and returns a pointer to a new keymap named p1 created by copying
++ * keymap p2. If p2 is NULL, it is up to the calling routine to initialize
++ * the keymap.
++ */
++
++extern char *SLang_make_keystring(unsigned char *);
++
++extern SLang_Key_Type *SLang_do_key(SLKeyMap_List_Type *, int (*)(void));
++/* read a key using keymap p1 with getkey function p2 */
++
++extern
++ FVOID_STAR
++ SLang_find_key_function(char *, SLKeyMap_List_Type *);
++
++extern SLKeyMap_List_Type *SLang_find_keymap(char *);
++
++extern int SLang_Last_Key_Char;
++extern int SLang_Key_TimeOut_Flag;
++
++/*}}}*/
++
++/*{{{ SLang Readline Interface */
++
++typedef struct SLang_Read_Line_Type
++{
++ struct SLang_Read_Line_Type *prev, *next;
++ unsigned char *buf;
++ int buf_len; /* number of chars in the buffer */
++ int num; /* num and misc are application specific*/
++ int misc;
++} SLang_Read_Line_Type;
++
++/* Maximum size of display */
++#define SLRL_DISPLAY_BUFFER_SIZE 256
++
++typedef struct
++{
++ SLang_Read_Line_Type *root, *tail, *last;
++ unsigned char *buf; /* edit buffer */
++ int buf_len; /* sizeof buffer */
++ int point; /* current editing point */
++ int tab; /* tab width */
++ int len; /* current line size */
++
++ /* display variables */
++ int edit_width; /* length of display field */
++ int curs_pos; /* current column */
++ int start_column; /* column offset of display */
++ int dhscroll; /* amount to use for horiz scroll */
++ char *prompt;
++
++ FVOID_STAR last_fun; /* last function executed by rl */
++
++ /* These two contain an image of what is on the display */
++ unsigned char upd_buf1[SLRL_DISPLAY_BUFFER_SIZE];
++ unsigned char upd_buf2[SLRL_DISPLAY_BUFFER_SIZE];
++ unsigned char *old_upd, *new_upd; /* pointers to previous two buffers */
++ int new_upd_len, old_upd_len; /* length of output buffers */
++
++ SLKeyMap_List_Type *keymap;
++
++ /* tty variables */
++ unsigned int flags; /* */
++#define SL_RLINE_NO_ECHO 1
++#define SL_RLINE_USE_ANSI 2
++#define SL_RLINE_BLINK_MATCH 4
++ unsigned int (*getkey)(void); /* getkey function -- required */
++ void (*tt_goto_column)(int);
++ void (*tt_insert)(char);
++ void (*update_hook)(unsigned char *, int, int);
++ /* The update hook is called with a pointer to a buffer p1 that contains
++ * an image of what the update hook is suppoed to produce. The length
++ * of the buffer is p2 and after the update, the cursor is to be placed
++ * in column p3.
++ */
++ /* This function is only called when blinking matches */
++ int (*input_pending)(int);
++ unsigned long reserved[4];
++} SLang_RLine_Info_Type;
++
++extern int SLang_RL_EOF_Char;
++
++extern SLang_Read_Line_Type * SLang_rline_save_line (SLang_RLine_Info_Type *);
++extern int SLang_init_readline (SLang_RLine_Info_Type *);
++extern int SLang_read_line (SLang_RLine_Info_Type *);
++extern int SLang_rline_insert (char *);
++extern void SLrline_redraw (SLang_RLine_Info_Type *);
++extern int SLang_Rline_Quit;
++
++/*}}}*/
++
++/*{{{ Low Level Screen Output Interface */
++
++extern unsigned long SLtt_Num_Chars_Output;
++extern int SLtt_Baud_Rate;
++
++typedef unsigned long SLtt_Char_Type;
++
++#define SLTT_BOLD_MASK 0x01000000UL
++#define SLTT_BLINK_MASK 0x02000000UL
++#define SLTT_ULINE_MASK 0x04000000UL
++#define SLTT_REV_MASK 0x08000000UL
++#define SLTT_ALTC_MASK 0x10000000UL
++
++extern int SLtt_Screen_Rows;
++extern int SLtt_Screen_Cols;
++extern int SLtt_Term_Cannot_Insert;
++extern int SLtt_Term_Cannot_Scroll;
++extern int SLtt_Use_Ansi_Colors;
++extern int SLtt_Ignore_Beep;
++#if defined(REAL_UNIX_SYSTEM)
++extern int SLtt_Force_Keypad_Init;
++extern int SLang_TT_Write_FD;
++#endif
++
++#ifndef IBMPC_SYSTEM
++extern char *SLtt_Graphics_Char_Pairs;
++#endif
++
++#ifndef __GO32__
++#if defined(VMS) || defined(REAL_UNIX_SYSTEM)
++extern int SLtt_Blink_Mode;
++extern int SLtt_Use_Blink_For_ACS;
++extern int SLtt_Newline_Ok;
++extern int SLtt_Has_Alt_Charset;
++extern int SLtt_Has_Status_Line; /* if 0, NO. If &gt; 0, YES, IF -1, ?? */
++# ifndef VMS
++extern int SLtt_Try_Termcap;
++# endif
++#endif
++#endif
++
++#if defined(IBMPC_SYSTEM)
++extern int SLtt_Msdos_Cheap_Video;
++#endif
++
++typedef unsigned short SLsmg_Char_Type;
++#define SLSMG_EXTRACT_CHAR(x) ((x) &amp; 0xFF)
++#define SLSMG_EXTRACT_COLOR(x) (((x)&gt;&gt;8)&amp;0xFF)
++#define SLSMG_BUILD_CHAR(ch,color) (((SLsmg_Char_Type)(unsigned char)(ch))|((color)&lt;&lt;8))
++
++extern int SLtt_flush_output (void);
++extern void SLtt_set_scroll_region(int, int);
++extern void SLtt_reset_scroll_region(void);
++extern void SLtt_reverse_video (int);
++extern void SLtt_bold_video (void);
++extern void SLtt_begin_insert(void);
++extern void SLtt_end_insert(void);
++extern void SLtt_del_eol(void);
++extern void SLtt_goto_rc (int, int);
++extern void SLtt_delete_nlines(int);
++extern void SLtt_delete_char(void);
++extern void SLtt_erase_line(void);
++extern void SLtt_normal_video(void);
++extern void SLtt_cls(void);
++extern void SLtt_beep(void);
++extern void SLtt_reverse_index(int);
++extern void SLtt_smart_puts(SLsmg_Char_Type *, SLsmg_Char_Type *, int, int);
++extern void SLtt_write_string (char *);
++extern void SLtt_putchar(char);
++extern int SLtt_init_video (void);
++extern int SLtt_reset_video (void);
++extern void SLtt_get_terminfo(void);
++extern void SLtt_get_screen_size (void);
++extern int SLtt_set_cursor_visibility (int);
++
++extern int SLtt_set_mouse_mode (int, int);
++
++#if defined(VMS) || defined(REAL_UNIX_SYSTEM)
++extern int SLtt_initialize (char *);
++extern void SLtt_enable_cursor_keys(void);
++extern void SLtt_set_term_vtxxx(int *);
++extern void SLtt_set_color_esc (int, char *);
++extern void SLtt_wide_width(void);
++extern void SLtt_narrow_width(void);
++extern void SLtt_set_alt_char_set (int);
++extern int SLtt_write_to_status_line (char *, int);
++extern void SLtt_disable_status_line (void);
++# ifdef REAL_UNIX_SYSTEM
++/* These are termcap/terminfo routines that assume SLtt_initialize has
++ * been called.
++ */
++extern char *SLtt_tgetstr (char *);
++extern int SLtt_tgetnum (char *);
++extern int SLtt_tgetflag (char *);
++
++/* The following are terminfo-only routines -- these prototypes will change
++ * in V2.x.
++ */
++extern char *SLtt_tigetent (char *);
++extern char *SLtt_tigetstr (char *, char **);
++extern int SLtt_tigetnum (char *, char **);
++# endif
++#endif
++
++extern SLtt_Char_Type SLtt_get_color_object (int);
++extern void SLtt_set_color_object (int, SLtt_Char_Type);
++extern void SLtt_set_color (int, char *, char *, char *);
++extern void SLtt_set_mono (int, char *, SLtt_Char_Type);
++extern void SLtt_add_color_attribute (int, SLtt_Char_Type);
++extern void SLtt_set_color_fgbg (int, SLtt_Char_Type, SLtt_Char_Type);
++
++/*}}}*/
++
++/*{{{ SLang Preprocessor Interface */
++
++typedef struct
++{
++ int this_level;
++ int exec_level;
++ int prev_exec_level;
++ char preprocess_char;
++ char comment_char;
++ unsigned char flags;
++#define SLPREP_BLANK_LINES_OK 1
++#define SLPREP_COMMENT_LINES_OK 2
++}
++SLPreprocess_Type;
++
++extern int SLprep_open_prep (SLPreprocess_Type *);
++extern void SLprep_close_prep (SLPreprocess_Type *);
++extern int SLprep_line_ok (char *, SLPreprocess_Type *);
++ extern int SLdefine_for_ifdef (char *);
++ /* Adds a string to the SLang #ifdef preparsing defines. SLang already
++ defines MSDOS, UNIX, and VMS on the appropriate system. */
++extern int (*SLprep_exists_hook) (char *, char);
++
++/*}}}*/
++
++/*{{{ SLsmg Screen Management Functions */
++
++extern void SLsmg_fill_region (int, int, unsigned int, unsigned int, unsigned char);
++extern void SLsmg_set_char_set (int);
++#ifndef IBMPC_SYSTEM
++extern int SLsmg_Scroll_Hash_Border;
++#endif
++extern int SLsmg_suspend_smg (void);
++extern int SLsmg_resume_smg (void);
++extern void SLsmg_erase_eol (void);
++extern void SLsmg_gotorc (int, int);
++extern void SLsmg_erase_eos (void);
++extern void SLsmg_reverse_video (void);
++extern void SLsmg_set_color (int);
++extern void SLsmg_normal_video (void);
++extern void SLsmg_printf (char *, ...);
++extern void SLsmg_vprintf (char *, va_list);
++extern void SLsmg_write_string (char *);
++extern void SLsmg_write_nstring (char *, unsigned int);
++extern void SLsmg_write_char (char);
++extern void SLsmg_write_nchars (char *, unsigned int);
++extern void SLsmg_write_wrapped_string (char *, int, int, unsigned int, unsigned int, int);
++extern void SLsmg_cls (void);
++extern void SLsmg_refresh (void);
++extern void SLsmg_touch_lines (int, unsigned int);
++extern void SLsmg_touch_screen (void);
++extern int SLsmg_init_smg (void);
++extern int SLsmg_reinit_smg (void);
++extern void SLsmg_reset_smg (void);
++extern SLsmg_Char_Type SLsmg_char_at(void);
++extern void SLsmg_set_screen_start (int *, int *);
++extern void SLsmg_draw_hline (unsigned int);
++extern void SLsmg_draw_vline (int);
++extern void SLsmg_draw_object (int, int, unsigned char);
++extern void SLsmg_draw_box (int, int, unsigned int, unsigned int);
++extern int SLsmg_get_column(void);
++extern int SLsmg_get_row(void);
++extern void SLsmg_forward (int);
++extern void SLsmg_write_color_chars (SLsmg_Char_Type *, unsigned int);
++extern unsigned int SLsmg_read_raw (SLsmg_Char_Type *, unsigned int);
++extern unsigned int SLsmg_write_raw (SLsmg_Char_Type *, unsigned int);
++extern void SLsmg_set_color_in_region (int, int, int, unsigned int, unsigned int);
++extern int SLsmg_Display_Eight_Bit;
++extern int SLsmg_Tab_Width;
++
++#define SLSMG_NEWLINE_IGNORED 0 /* default */
++#define SLSMG_NEWLINE_MOVES 1 /* moves to next line, column 0 */
++#define SLSMG_NEWLINE_SCROLLS 2 /* moves but scrolls at bottom of screen */
++#define SLSMG_NEWLINE_PRINTABLE 3 /* prints as ^J */
++extern int SLsmg_Newline_Behavior;
++
++extern int SLsmg_Backspace_Moves;
++
++#ifdef IBMPC_SYSTEM
++# define SLSMG_HLINE_CHAR 0xC4
++# define SLSMG_VLINE_CHAR 0xB3
++# define SLSMG_ULCORN_CHAR 0xDA
++# define SLSMG_URCORN_CHAR 0xBF
++# define SLSMG_LLCORN_CHAR 0xC0
++# define SLSMG_LRCORN_CHAR 0xD9
++# define SLSMG_RTEE_CHAR 0xB4
++# define SLSMG_LTEE_CHAR 0xC3
++# define SLSMG_UTEE_CHAR 0xC2
++# define SLSMG_DTEE_CHAR 0xC1
++# define SLSMG_PLUS_CHAR 0xC5
++/* There are several to choose from: 0xB0, 0xB1, and 0xB2 */
++# define SLSMG_CKBRD_CHAR 0xB0
++# define SLSMG_DIAMOND_CHAR 0x04
++# define SLSMG_DEGREE_CHAR 0xF8
++# define SLSMG_PLMINUS_CHAR 0xF1
++# define SLSMG_BULLET_CHAR 0xF9
++# define SLSMG_LARROW_CHAR 0x1B
++# define SLSMG_RARROW_CHAR 0x1A
++# define SLSMG_DARROW_CHAR 0x19
++# define SLSMG_UARROW_CHAR 0x18
++# define SLSMG_BOARD_CHAR 0xB2
++# define SLSMG_BLOCK_CHAR 0xDB
++#else
++# if defined(AMIGA)
++# define SLSMG_HLINE_CHAR '-'
++# define SLSMG_VLINE_CHAR '|'
++# define SLSMG_ULCORN_CHAR '+'
++# define SLSMG_URCORN_CHAR '+'
++# define SLSMG_LLCORN_CHAR '+'
++# define SLSMG_LRCORN_CHAR '+'
++# define SLSMG_CKBRD_CHAR '#'
++# define SLSMG_RTEE_CHAR '+'
++# define SLSMG_LTEE_CHAR '+'
++# define SLSMG_UTEE_CHAR '+'
++# define SLSMG_DTEE_CHAR '+'
++# define SLSMG_PLUS_CHAR '+'
++# define SLSMG_DIAMOND_CHAR '+'
++# define SLSMG_DEGREE_CHAR '\\'
++# define SLSMG_PLMINUS_CHAR '#'
++# define SLSMG_BULLET_CHAR 'o'
++# define SLSMG_LARROW_CHAR '&lt;'
++# define SLSMG_RARROW_CHAR '&gt;'
++# define SLSMG_DARROW_CHAR 'v'
++# define SLSMG_UARROW_CHAR '^'
++# define SLSMG_BOARD_CHAR '#'
++# define SLSMG_BLOCK_CHAR '#'
++# else
++# define SLSMG_HLINE_CHAR 'q'
++# define SLSMG_VLINE_CHAR 'x'
++# define SLSMG_ULCORN_CHAR 'l'
++# define SLSMG_URCORN_CHAR 'k'
++# define SLSMG_LLCORN_CHAR 'm'
++# define SLSMG_LRCORN_CHAR 'j'
++# define SLSMG_CKBRD_CHAR 'a'
++# define SLSMG_RTEE_CHAR 'u'
++# define SLSMG_LTEE_CHAR 't'
++# define SLSMG_UTEE_CHAR 'w'
++# define SLSMG_DTEE_CHAR 'v'
++# define SLSMG_PLUS_CHAR 'n'
++# define SLSMG_DIAMOND_CHAR '`'
++# define SLSMG_DEGREE_CHAR 'f'
++# define SLSMG_PLMINUS_CHAR 'g'
++# define SLSMG_BULLET_CHAR '~'
++# define SLSMG_LARROW_CHAR ','
++# define SLSMG_RARROW_CHAR '+'
++# define SLSMG_DARROW_CHAR '.'
++# define SLSMG_UARROW_CHAR '-'
++# define SLSMG_BOARD_CHAR 'h'
++# define SLSMG_BLOCK_CHAR '0'
++# endif /* AMIGA */
++#endif /* IBMPC_SYSTEM */
++
++#ifndef IBMPC_SYSTEM
++# define SLSMG_COLOR_BLACK 0x000000
++# define SLSMG_COLOR_RED 0x000001
++# define SLSMG_COLOR_GREEN 0x000002
++# define SLSMG_COLOR_BROWN 0x000003
++# define SLSMG_COLOR_BLUE 0x000004
++# define SLSMG_COLOR_MAGENTA 0x000005
++# define SLSMG_COLOR_CYAN 0x000006
++# define SLSMG_COLOR_LGRAY 0x000007
++# define SLSMG_COLOR_GRAY 0x000008
++# define SLSMG_COLOR_BRIGHT_RED 0x000009
++# define SLSMG_COLOR_BRIGHT_GREEN 0x00000A
++# define SLSMG_COLOR_BRIGHT_BROWN 0x00000B
++# define SLSMG_COLOR_BRIGHT_BLUE 0x00000C
++# define SLSMG_COLOR_BRIGHT_CYAN 0x00000D
++# define SLSMG_COLOR_BRIGHT_MAGENTA 0x00000E
++# define SLSMG_COLOR_BRIGHT_WHITE 0x00000F
++#endif
++
++typedef struct
++{
++ void (*tt_normal_video)(void);
++ void (*tt_set_scroll_region)(int, int);
++ void (*tt_goto_rc)(int, int);
++ void (*tt_reverse_index)(int);
++ void (*tt_reset_scroll_region)(void);
++ void (*tt_delete_nlines)(int);
++ void (*tt_cls) (void);
++ void (*tt_del_eol) (void);
++ void (*tt_smart_puts) (SLsmg_Char_Type *, SLsmg_Char_Type *, int, int);
++ int (*tt_flush_output) (void);
++ int (*tt_reset_video) (void);
++ int (*tt_init_video) (void);
++
++ int *tt_screen_rows;
++ int *tt_screen_cols;
++
++ int *tt_term_cannot_scroll;
++ int *tt_has_alt_charset;
++ int *tt_use_blink_for_acs;
++ char **tt_graphic_char_pairs;
++
++ long reserved[4];
++}
++SLsmg_Term_Type;
++extern void SLsmg_set_terminal_info (SLsmg_Term_Type *);
++
++/*}}}*/
++
++/*{{{ SLang Keypad Interface */
++
++#define SL_KEY_ERR 0xFFFF
++
++#define SL_KEY_UP 0x101
++#define SL_KEY_DOWN 0x102
++#define SL_KEY_LEFT 0x103
++#define SL_KEY_RIGHT 0x104
++#define SL_KEY_PPAGE 0x105
++#define SL_KEY_NPAGE 0x106
++#define SL_KEY_HOME 0x107
++#define SL_KEY_END 0x108
++#define SL_KEY_A1 0x109
++#define SL_KEY_A3 0x10A
++#define SL_KEY_B2 0x10B
++#define SL_KEY_C1 0x10C
++#define SL_KEY_C3 0x10D
++#define SL_KEY_REDO 0x10E
++#define SL_KEY_UNDO 0x10F
++#define SL_KEY_BACKSPACE 0x110
++#define SL_KEY_ENTER 0x111
++#define SL_KEY_IC 0x112
++#define SL_KEY_DELETE 0x113
++
++#define SL_KEY_F0 0x200
++#define SL_KEY_F(X) (SL_KEY_F0 + X)
++
++/* I do not intend to use keysymps &gt; 0x1000. Applications can use those. */
++/* Returns 0 upon success or -1 upon error. */
++extern int SLkp_define_keysym (char *, unsigned int);
++
++/* This function must be called AFTER SLtt_get_terminfo and not before. */
++extern int SLkp_init (void);
++
++/* This function uses SLang_getkey and assumes that what ever initialization
++ * is required for SLang_getkey has been performed.
++ */
++extern int SLkp_getkey (void);
++
++/*}}}*/
++
++/*{{{ SLang Scroll Interface */
++
++typedef struct _SLscroll_Type
++{
++ struct _SLscroll_Type *next;
++ struct _SLscroll_Type *prev;
++ unsigned int flags;
++}
++SLscroll_Type;
++
++typedef struct
++{
++ unsigned int flags;
++ SLscroll_Type *top_window_line; /* list element at top of window */
++ SLscroll_Type *bot_window_line; /* list element at bottom of window */
++ SLscroll_Type *current_line; /* current list element */
++ SLscroll_Type *lines; /* first list element */
++ unsigned int nrows; /* number of rows in window */
++ unsigned int hidden_mask; /* applied to flags in SLscroll_Type */
++ unsigned int line_num; /* current line number (visible) */
++ unsigned int num_lines; /* total number of lines (visible) */
++ unsigned int window_row; /* row of current_line in window */
++ unsigned int border; /* number of rows that form scroll border */
++ int cannot_scroll; /* should window scroll or recenter */
++}
++SLscroll_Window_Type;
++
++extern int SLscroll_find_top (SLscroll_Window_Type *);
++extern int SLscroll_find_line_num (SLscroll_Window_Type *);
++extern unsigned int SLscroll_next_n (SLscroll_Window_Type *, unsigned int);
++extern unsigned int SLscroll_prev_n (SLscroll_Window_Type *, unsigned int);
++extern int SLscroll_pageup (SLscroll_Window_Type *);
++extern int SLscroll_pagedown (SLscroll_Window_Type *);
++
++/*}}}*/
++
++/*{{{ Signal Routines */
++
++typedef void SLSig_Fun_Type (int);
++extern SLSig_Fun_Type *SLsignal (int, SLSig_Fun_Type *);
++extern SLSig_Fun_Type *SLsignal_intr (int, SLSig_Fun_Type *);
++extern int SLsig_block_signals (void);
++extern int SLsig_unblock_signals (void);
++extern int SLsystem (char *);
++
++extern char *SLerrno_strerror (int);
++extern int SLerrno_set_errno (int);
++
++/*}}}*/
++
++/*{{{ Interpreter Macro Definitions */
++
++/* The definitions here are for objects that may be on the run-time stack.
++ * They are actually sub_types of literal and data main_types. The actual
++ * numbers are historical.
++ */
++#define SLANG_UNDEFINED_TYPE 0x00 /* MUST be 0 */
++#define SLANG_VOID_TYPE 0x01 /* also matches ANY type */
++#define SLANG_INT_TYPE 0x02
++#define SLANG_DOUBLE_TYPE 0x03
++#define SLANG_CHAR_TYPE 0x04
++#define SLANG_INTP_TYPE 0x05
++/* An object of SLANG_INTP_TYPE should never really occur on the stack. Rather,
++ * the integer to which it refers will be there instead. It is defined here
++ * because it is a valid type for MAKE_VARIABLE.
++ */
++#define SLANG_REF_TYPE 0x06
++/* SLANG_REF_TYPE refers to an object on the stack that is a pointer (reference)
++ * to some other object.
++ */
++#define SLANG_COMPLEX_TYPE 0x07
++#define SLANG_NULL_TYPE 0x08
++#define SLANG_UCHAR_TYPE 0x09
++#define SLANG_SHORT_TYPE 0x0A
++#define SLANG_USHORT_TYPE 0x0B
++#define SLANG_UINT_TYPE 0x0C
++#define SLANG_LONG_TYPE 0x0D
++#define SLANG_ULONG_TYPE 0x0E
++#define SLANG_STRING_TYPE 0x0F
++#define SLANG_FLOAT_TYPE 0x10
++#define SLANG_STRUCT_TYPE 0x11
++#define SLANG_ISTRUCT_TYPE 0x12
++#define SLANG_ARRAY_TYPE 0x20
++#define SLANG_DATATYPE_TYPE 0x21
++#define SLANG_FILE_PTR_TYPE 0x22
++#define SLANG_ASSOC_TYPE 0x23
++#define SLANG_ANY_TYPE 0x24
++#define SLANG_BSTRING_TYPE 0x25
++#define SLANG_FILE_FD_TYPE 0x26
++
++/* Compatibility */
++#ifdef FLOAT_TYPE
++# undef FLOAT_TYPE
++#endif
++#define VOID_TYPE SLANG_VOID_TYPE
++#define INT_TYPE SLANG_INT_TYPE
++#define INTP_TYPE SLANG_INTP_TYPE
++#define FLOAT_TYPE SLANG_DOUBLE_TYPE
++#define ARRAY_TYPE SLANG_ARRAY_TYPE
++#define CHAR_TYPE SLANG_CHAR_TYPE
++#define STRING_TYPE SLANG_STRING_TYPE
++
++/* I am reserving values greater than or equal to 128 for user applications.
++ * The first 127 are reserved for S-Lang.
++ */
++
++/* Binary and Unary Subtypes */
++/* Since the application can define new types and can overload the binary
++ * and unary operators, these definitions must be present in this file.
++ * The current implementation assumes both unary and binary are distinct.
++ */
++#define SLANG_PLUS 0x01
++#define SLANG_MINUS 0x02
++#define SLANG_TIMES 0x03
++#define SLANG_DIVIDE 0x04
++#define SLANG_EQ 0x05
++#define SLANG_NE 0x06
++#define SLANG_GT 0x07
++#define SLANG_GE 0x08
++#define SLANG_LT 0x09
++#define SLANG_LE 0x0A
++#define SLANG_POW 0x0B
++#define SLANG_OR 0x0C
++#define SLANG_AND 0x0D
++#define SLANG_BAND 0x0E
++#define SLANG_BOR 0x0F
++#define SLANG_BXOR 0x10
++#define SLANG_SHL 0x11
++#define SLANG_SHR 0x12
++#define SLANG_MOD 0x13
++
++/* UNARY subtypes (may be overloaded) */
++#define SLANG_PLUSPLUS 0x20
++#define SLANG_MINUSMINUS 0x21
++#define SLANG_ABS 0x22
++#define SLANG_SIGN 0x23
++#define SLANG_SQR 0x24
++#define SLANG_MUL2 0x25
++#define SLANG_CHS 0x26
++#define SLANG_NOT 0x27
++#define SLANG_BNOT 0x28
++
++extern char *SLang_Error_Message;
++
++int SLadd_intrinsic_variable (char *, VOID_STAR, unsigned char, int);
++int SLadd_intrinsic_function (char *, FVOID_STAR, unsigned char, unsigned int,...);
++
++int SLns_add_intrinsic_variable (SLang_NameSpace_Type *, char *, VOID_STAR, unsigned char, int);
++int SLns_add_intrinsic_function (SLang_NameSpace_Type *, char *, FVOID_STAR, unsigned char, unsigned int,...);
++
++extern void SLadd_at_handler (long *, char *);
++
++#define MAKE_INTRINSIC_N(n,f,out,in,a1,a2,a3,a4,a5,a6,a7) \
++ {(n), NULL, SLANG_INTRINSIC, (FVOID_STAR) (f), \
++ {a1,a2,a3,a4,a5,a6,a7}, (in), (out)}
++
++#define MAKE_INTRINSIC_7(n,f,out,a1,a2,a3,a4,a5,a6,a7) \
++ MAKE_INTRINSIC_N(n,f,out,7,a1,a2,a3,a4,a5,a6,a7)
++#define MAKE_INTRINSIC_6(n,f,out,a1,a2,a3,a4,a5,a6) \
++ MAKE_INTRINSIC_N(n,f,out,6,a1,a2,a3,a4,a5,a6,0)
++#define MAKE_INTRINSIC_5(n,f,out,a1,a2,a3,a4,a5) \
++ MAKE_INTRINSIC_N(n,f,out,5,a1,a2,a3,a4,a5,0,0)
++#define MAKE_INTRINSIC_4(n,f,out,a1,a2,a3,a4) \
++ MAKE_INTRINSIC_N(n,f,out,4,a1,a2,a3,a4,0,0,0)
++#define MAKE_INTRINSIC_3(n,f,out,a1,a2,a3) \
++ MAKE_INTRINSIC_N(n,f,out,3,a1,a2,a3,0,0,0,0)
++#define MAKE_INTRINSIC_2(n,f,out,a1,a2) \
++ MAKE_INTRINSIC_N(n,f,out,2,a1,a2,0,0,0,0,0)
++#define MAKE_INTRINSIC_1(n,f,out,a1) \
++ MAKE_INTRINSIC_N(n,f,out,1,a1,0,0,0,0,0,0)
++#define MAKE_INTRINSIC_0(n,f,out) \
++ MAKE_INTRINSIC_N(n,f,out,0,0,0,0,0,0,0,0)
++
++#define MAKE_INTRINSIC_S(n,f,r) \
++ MAKE_INTRINSIC_1(n,f,r,SLANG_STRING_TYPE)
++#define MAKE_INTRINSIC_I(n,f,r) \
++ MAKE_INTRINSIC_1(n,f,r,SLANG_INT_TYPE)
++
++#define MAKE_INTRINSIC_SS(n,f,r) \
++ MAKE_INTRINSIC_2(n,f,r,SLANG_STRING_TYPE,SLANG_STRING_TYPE)
++#define MAKE_INTRINSIC_SI(n,f,r) \
++ MAKE_INTRINSIC_2(n,f,r,SLANG_STRING_TYPE,SLANG_INT_TYPE)
++#define MAKE_INTRINSIC_IS(n,f,r) \
++ MAKE_INTRINSIC_2(n,f,r,SLANG_INT_TYPE,SLANG_STRING_TYPE)
++#define MAKE_INTRINSIC_II(n,f,r) \
++ MAKE_INTRINSIC_2(n,f,r,SLANG_INT_TYPE,SLANG_INT_TYPE)
++
++#define MAKE_INTRINSIC_SSS(n,f,r) \
++ MAKE_INTRINSIC_3(n,f,r,SLANG_STRING_TYPE,SLANG_STRING_TYPE,SLANG_STRING_TYPE)
++#define MAKE_INTRINSIC_SSI(n,f,r) \
++ MAKE_INTRINSIC_3(n,f,r,SLANG_STRING_TYPE,SLANG_STRING_TYPE,SLANG_INT_TYPE)
++#define MAKE_INTRINSIC_SIS(n,f,r) \
++ MAKE_INTRINSIC_3(n,f,r,SLANG_STRING_TYPE,SLANG_INT_TYPE,SLANG_STRING_TYPE)
++#define MAKE_INTRINSIC_SII(n,f,r) \
++ MAKE_INTRINSIC_3(n,f,r,SLANG_STRING_TYPE,SLANG_INT_TYPE,SLANG_INT_TYPE)
++#define MAKE_INTRINSIC_ISS(n,f,r) \
++ MAKE_INTRINSIC_3(n,f,r,SLANG_INT_TYPE,SLANG_STRING_TYPE,SLANG_STRING_TYPE)
++#define MAKE_INTRINSIC_ISI(n,f,r) \
++ MAKE_INTRINSIC_3(n,f,r,SLANG_INT_TYPE,SLANG_STRING_TYPE,SLANG_INT_TYPE)
++#define MAKE_INTRINSIC_IIS(n,f,r) \
++ MAKE_INTRINSIC_3(n,f,r,SLANG_INT_TYPE,SLANG_INT_TYPE,SLANG_STRING_TYPE)
++#define MAKE_INTRINSIC_III(n,f,r) \
++ MAKE_INTRINSIC_3(n,f,r,SLANG_INT_TYPE,SLANG_INT_TYPE,SLANG_INT_TYPE)
++
++#define MAKE_INTRINSIC(n, f, out, in) \
++ MAKE_INTRINSIC_N(n,f,out,in,0,0,0,0,0,0,0)
++
++#define MAKE_VARIABLE(n, v, t, r) \
++ {n, NULL, SLANG_IVARIABLE + (r), (VOID_STAR)(v), (t)}
++
++#define MAKE_APP_UNARY(n,op) \
++ {(n), NULL, SLANG_APP_UNARY, (op)}
++
++#define MAKE_MATH_UNARY(n,op) \
++ {(n), NULL, SLANG_MATH_UNARY, (op)}
++
++#define MAKE_ICONSTANT(n,val) \
++ {(n),NULL, SLANG_ICONSTANT, (val)}
++
++#define MAKE_DCONSTANT(n,val) \
++ {(n),NULL, SLANG_DCONSTANT, (val)}
++
++#ifndef offsetof
++# define offsetof(T,F) ((unsigned int)((char *)&amp;((T *)0L)-&gt;F - (char *)0L))
++#endif
++#define MAKE_ISTRUCT_FIELD(s,f,n,t,r) {(n), offsetof(s,f), (t), (r)}
++
++#define SLANG_END_TABLE {NULL}
++#define SLANG_END_INTRIN_FUN_TABLE MAKE_INTRINSIC_0(NULL,NULL,0)
++#define SLANG_END_DCONST_TABLE MAKE_DCONSTANT(NULL,0)
++#define SLANG_END_MATH_UNARY_TABLE MAKE_MATH_UNARY(NULL,0)
++#define SLANG_END_INTRIN_VAR_TABLE MAKE_VARIABLE(NULL,NULL,0,0)
++#define SLANG_END_ICONST_TABLE MAKE_ICONSTANT(NULL,0)
++#define SLANG_END_ISTRUCT_TABLE {NULL, 0, 0, 0}
++
++
++
++/*}}}*/
++
++/*{{{ Upper/Lowercase Functions */
++
++extern void SLang_define_case(int *, int *);
++extern void SLang_init_case_tables (void);
++
++extern unsigned char _SLChg_UCase_Lut[256];
++extern unsigned char _SLChg_LCase_Lut[256];
++#define UPPER_CASE(x) (_SLChg_UCase_Lut[(unsigned char) (x)])
++#define LOWER_CASE(x) (_SLChg_LCase_Lut[(unsigned char) (x)])
++#define CHANGE_CASE(x) (((x) == _SLChg_LCase_Lut[(unsigned char) (x)]) ?\
++ _SLChg_UCase_Lut[(unsigned char) (x)] : _SLChg_LCase_Lut[(unsigned char) (x)])
++
++/*}}}*/
++
++/*{{{ Regular Expression Interface */
++
++typedef struct
++{
++ /* These must be set by calling routine. */
++ unsigned char *pat; /* regular expression pattern */
++ unsigned char *buf; /* buffer for compiled regexp */
++ unsigned int buf_len; /* length of buffer */
++ int case_sensitive; /* 1 if match is case sensitive */
++
++ /* The rest are set by SLang_regexp_compile */
++
++ int must_match; /* 1 if line must contain substring */
++ int must_match_bol; /* true if it must match beginning of line */
++ unsigned char must_match_str[16]; /* 15 char null term substring */
++ int osearch; /* 1 if ordinary search suffices */
++ unsigned int min_length; /* minimum length the match must be */
++ int beg_matches[10]; /* offset of start of \( */
++ unsigned int end_matches[10]; /* length of nth submatch
++ * Note that the entire match corresponds
++ * to \0
++ */
++ int offset; /* offset to be added to beg_matches */
++ int reserved[10];
++} SLRegexp_Type;
++
++extern unsigned char *SLang_regexp_match(unsigned char *,
++ unsigned int,
++ SLRegexp_Type *);
++
++/* Returns 0 upon success. If failure, the offset into the
++ * pattern is returned (start = 1).
++ */
++extern int SLang_regexp_compile (SLRegexp_Type *);
++extern char *SLregexp_quote_string (char *, char *, unsigned int);
++
++/*}}}*/
++
++/*{{{ SLang Command Interface */
++
++struct _SLcmd_Cmd_Type; /* Pre-declaration is needed below */
++typedef struct
++{
++ struct _SLcmd_Cmd_Type *table;
++ int argc;
++ /* Version 2.0 needs to use a union!! */
++ char **string_args;
++ int *int_args;
++ double *double_args;
++ unsigned char *arg_type;
++ unsigned long reserved[4];
++} SLcmd_Cmd_Table_Type;
++
++typedef struct _SLcmd_Cmd_Type
++{
++ int (*cmdfun)(int, SLcmd_Cmd_Table_Type *);
++ char *cmd;
++ char *arg_type;
++} SLcmd_Cmd_Type;
++
++extern int SLcmd_execute_string (char *, SLcmd_Cmd_Table_Type *);
++
++/*}}}*/
++
++/*{{{ SLang Search Interface */
++
++typedef struct
++{
++ int cs; /* case sensitive */
++ unsigned char key[256];
++ int ind[256];
++ int key_len;
++ int dir;
++} SLsearch_Type;
++
++extern int SLsearch_init (char *, int, int, SLsearch_Type *);
++/* This routine must first be called before any search can take place.
++ * The second parameter specifies the direction of the search: greater than
++ * zero for a forwrd search and less than zero for a backward search. The
++ * third parameter specifies whether the search is case sensitive or not.
++ * The last parameter is a pointer to a structure that is filled by this
++ * function and it is this structure that must be passed to SLsearch.
++ */
++
++extern unsigned char *SLsearch (unsigned char *, unsigned char *, SLsearch_Type *);
++/* To use this routine, you must first call 'SLsearch_init'. Then the first
++ * two parameters p1 and p2 serve to define the region over which the search
++ * is to take place. The third parameter is the structure that was previously
++ * initialized by SLsearch_init.
++ *
++ * The routine returns a pointer to the match if found otherwise it returns
++ * NULL.
++ */
++
++/*}}}*/
++
++/*{{{ SLang Pathname Interface */
++
++/* These function return pointers to the original space */
++extern char *SLpath_basename (char *);
++extern char *SLpath_extname (char *);
++extern int SLpath_is_absolute_path (char *);
++
++/* These return malloced strings--- NOT slstrings */
++extern char *SLpath_dircat (char *, char *);
++extern char *SLpath_find_file_in_path (char *, char *);
++extern char *SLpath_dirname (char *);
++extern int SLpath_file_exists (char *);
++extern char *SLpath_pathname_sans_extname (char *);
++
++/*}}}*/
++
++extern int SLang_set_module_load_path (char *);
++
++#define SLANG_MODULE(name) \
++ extern int init_##name##_module_ns (char *); \
++ extern void deinit_##name##_module (void)
++
++#if 0
++{
++#endif
++#ifdef __cplusplus
++}
++#endif
++
++#endif /* _DAVIS_SLANG_H_ */
+
+
+Property changes on: drakx/trunk/mdk-stage1/slang/slang.h
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1slangslarithc">Added: drakx/trunk/mdk-stage1/slang/slarith.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/slang/slarith.c (rev 0)
++++ drakx/trunk/mdk-stage1/slang/slarith.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,1656 @@
++
++/* Copyright (c) 1998, 1999, 2001 John E. Davis
++ * This file is part of the S-Lang library.
++ *
++ * You may distribute under the terms of either the GNU General Public
++ * License or the Perl Artistic License.
++ */
++
++#include &quot;slinclud.h&quot;
++
++#include &lt;math.h&gt;
++
++#ifdef HAVE_LOCALE_H
++# include &lt;locale.h&gt;
++#endif
++
++#include &quot;slang.h&quot;
++#include &quot;_slang.h&quot;
++
++/*
++ * This file defines binary and unary operations on all integer types.
++ * Supported types include:
++ *
++ * SLANG_CHAR_TYPE (char)
++ * SLANG_SHORT_TYPE (short)
++ * SLANG_INT_TYPE (int)
++ * SLANG_LONG_TYPE (long)
++ * SLANG_FLOAT_TYPE (float)
++ * SLANG_DOUBLE_TYPE (double)
++ *
++ * as well as unsigned types. The result-type of an arithmentic operation
++ * will depend upon the data types involved. I am going to distinguish
++ * between the boolean operations such as `and' and `or' from the arithmetic
++ * operations such as `plus'. Since the result of a boolean operation is
++ * either 1 or 0, a boolean result will be represented by SLANG_CHAR_TYPE.
++ * Ordinarily I would use an integer but for arrays it makes more sense to
++ * use a character data type.
++ *
++ * So, the following will be assumed (`+' is any arithmetic operator)
++ *
++ * char + char = int
++ * char|short + short = int
++ * char|short|int + int = int
++ * char|short|int|long + long = long
++ * char|short|int|long|float + float = float
++ * char|short|int|long|float|double + double = double
++ *
++ * In the actual implementation, a brute force approach is avoided. Such
++ * an approach would mean defining different functions for all possible
++ * combinations of types. Including the unsigned types, and not including
++ * the complex number type, there are 10 arithmetic types and 10*10=100
++ * different combinations of types. Clearly this would be too much.
++ *
++ * One approach would be to define binary functions only between operands of
++ * the same type and then convert types as appropriate. This would require
++ * just 6 such functions (int, uint, long, ulong, float, double).
++ * However, many conversion functions are going to be required, particularly
++ * since we are going to allow typecasting from one arithmetic to another.
++ * Since the bit pattern of signed and unsigned types are the same, and only
++ * the interpretation differs, there will be no functions to convert between
++ * signed and unsigned forms of a given type.
++ */
++
++#define MAX_ARITHMETIC_TYPES 10
++
++unsigned char _SLarith_Is_Arith_Type [256];
++
++unsigned char _SLarith_Arith_Types[] =
++{
++ SLANG_CHAR_TYPE,
++ SLANG_UCHAR_TYPE,
++ SLANG_SHORT_TYPE,
++ SLANG_USHORT_TYPE,
++ SLANG_INT_TYPE,
++ SLANG_UINT_TYPE,
++ SLANG_LONG_TYPE,
++ SLANG_ULONG_TYPE,
++ SLANG_FLOAT_TYPE,
++ SLANG_DOUBLE_TYPE,
++ 0
++};
++
++/* Here are a bunch of functions to convert from one type to another. To
++ * facilitate the process, a macros will be used.
++ */
++
++#define DEFUN_1(f,from_type,to_type) \
++static void f (to_type *y, from_type *x, unsigned int n) \
++{ \
++ unsigned int i; \
++ for (i = 0; i &lt; n; i++) y[i] = (to_type) x[i]; \
++}
++
++#define DEFUN_2(f,from_type,to_type,copy_fun) \
++static VOID_STAR f (VOID_STAR xp, unsigned int n) \
++{ \
++ from_type *x; \
++ to_type *y; \
++ x = (from_type *) xp; \
++ if (NULL == (y = (to_type *) SLmalloc (sizeof (to_type) * n))) return NULL; \
++ copy_fun (y, x, n); \
++ return (VOID_STAR) y; \
++}
++typedef VOID_STAR (*Convert_Fun_Type)(VOID_STAR, unsigned int);
++
++DEFUN_1(copy_char_to_char,char,char)
++#if SIZEOF_INT != SIZEOF_SHORT
++DEFUN_1(copy_char_to_short,char,short)
++DEFUN_1(copy_char_to_ushort,char,unsigned short)
++#else
++# define copy_char_to_short copy_char_to_int
++# define copy_char_to_ushort copy_char_to_uint
++#endif
++DEFUN_1(copy_char_to_int,char,int)
++DEFUN_1(copy_char_to_uint,char,unsigned int)
++#if SIZEOF_INT != SIZEOF_LONG
++DEFUN_1(copy_char_to_long,char,long)
++DEFUN_1(copy_char_to_ulong,char,unsigned long)
++#else
++# define copy_char_to_long copy_char_to_int
++# define copy_char_to_ulong copy_char_to_uint
++#endif
++DEFUN_1(copy_char_to_float,char,float)
++DEFUN_1(copy_char_to_double,char,double)
++
++#if SIZEOF_INT != SIZEOF_SHORT
++DEFUN_1(copy_uchar_to_short,unsigned char,short)
++DEFUN_1(copy_uchar_to_ushort,unsigned char,unsigned short)
++#else
++# define copy_uchar_to_short copy_uchar_to_int
++# define copy_uchar_to_ushort copy_uchar_to_uint
++#endif
++DEFUN_1(copy_uchar_to_int,unsigned char,int)
++DEFUN_1(copy_uchar_to_uint,unsigned char,unsigned int)
++#if SIZEOF_INT != SIZEOF_LONG
++DEFUN_1(copy_uchar_to_long,unsigned char,long)
++DEFUN_1(copy_uchar_to_ulong,unsigned char,unsigned long)
++#else
++# define copy_uchar_to_long copy_uchar_to_int
++# define copy_uchar_to_ulong copy_uchar_to_uint
++#endif
++DEFUN_1(copy_uchar_to_float,unsigned char,float)
++DEFUN_1(copy_uchar_to_double,unsigned char,double)
++
++#if SIZEOF_INT != SIZEOF_SHORT
++DEFUN_1(copy_short_to_char,short,char)
++DEFUN_1(copy_short_to_uchar,short,unsigned char)
++DEFUN_1(copy_short_to_short,short,short)
++DEFUN_1(copy_short_to_int,short,int)
++DEFUN_1(copy_short_to_uint,short,unsigned int)
++DEFUN_1(copy_short_to_long,short,long)
++DEFUN_1(copy_short_to_ulong,short,unsigned long)
++DEFUN_1(copy_short_to_float,short,float)
++DEFUN_1(copy_short_to_double,short,double)
++DEFUN_1(copy_ushort_to_char,unsigned short,char)
++DEFUN_1(copy_ushort_to_uchar,unsigned short,unsigned char)
++DEFUN_1(copy_ushort_to_int,unsigned short,int)
++DEFUN_1(copy_ushort_to_uint,unsigned short,unsigned int)
++DEFUN_1(copy_ushort_to_long,unsigned short,long)
++DEFUN_1(copy_ushort_to_ulong,unsigned short,unsigned long)
++DEFUN_1(copy_ushort_to_float,unsigned short,float)
++DEFUN_1(copy_ushort_to_double,unsigned short,double)
++#else
++# define copy_short_to_char copy_int_to_char
++# define copy_short_to_uchar copy_int_to_uchar
++# define copy_short_to_short copy_int_to_int
++# define copy_short_to_int copy_int_to_int
++# define copy_short_to_uint copy_int_to_int
++# define copy_short_to_long copy_int_to_long
++# define copy_short_to_ulong copy_int_to_ulong
++# define copy_short_to_float copy_int_to_float
++# define copy_short_to_double copy_int_to_double
++# define copy_ushort_to_char copy_uint_to_char
++# define copy_ushort_to_uchar copy_uint_to_uchar
++# define copy_ushort_to_int copy_int_to_int
++# define copy_ushort_to_uint copy_int_to_int
++# define copy_ushort_to_long copy_uint_to_long
++# define copy_ushort_to_ulong copy_uint_to_ulong
++# define copy_ushort_to_float copy_uint_to_float
++# define copy_ushort_to_double copy_uint_to_double
++#endif
++
++DEFUN_1(copy_int_to_char,int,char)
++DEFUN_1(copy_int_to_uchar,int,unsigned char)
++DEFUN_1(copy_uint_to_char,unsigned int,char)
++DEFUN_1(copy_uint_to_uchar,unsigned int,unsigned char)
++#if SIZEOF_INT != SIZEOF_SHORT
++DEFUN_1(copy_int_to_short,int,short)
++DEFUN_1(copy_int_to_ushort,int,unsigned short)
++DEFUN_1(copy_uint_to_short,unsigned int,short)
++DEFUN_1(copy_uint_to_ushort,unsigned int,unsigned short)
++#else
++# define copy_int_to_short copy_int_to_int
++# define copy_int_to_ushort copy_int_to_int
++# define copy_uint_to_short copy_int_to_int
++# define copy_uint_to_ushort copy_int_to_int
++#endif
++DEFUN_1(copy_int_to_int,int,int)
++#if SIZEOF_INT != SIZEOF_LONG
++DEFUN_1(copy_int_to_long,int,long)
++DEFUN_1(copy_int_to_ulong,int,unsigned long)
++DEFUN_1(copy_uint_to_long,unsigned int,long)
++DEFUN_1(copy_uint_to_ulong,unsigned int,unsigned long)
++#else
++# define copy_int_to_long copy_int_to_int
++# define copy_int_to_ulong copy_int_to_int
++# define copy_uint_to_long copy_int_to_int
++# define copy_uint_to_ulong copy_int_to_int
++#endif
++DEFUN_1(copy_int_to_float,int,float)
++DEFUN_1(copy_int_to_double,int,double)
++DEFUN_1(copy_uint_to_float,unsigned int,float)
++DEFUN_1(copy_uint_to_double,unsigned int,double)
++
++#if SIZEOF_INT != SIZEOF_LONG
++DEFUN_1(copy_long_to_char,long,char)
++DEFUN_1(copy_long_to_uchar,long,unsigned char)
++DEFUN_1(copy_long_to_short,long,short)
++DEFUN_1(copy_long_to_ushort,long,unsigned short)
++DEFUN_1(copy_long_to_int,long,int)
++DEFUN_1(copy_long_to_uint,long,unsigned int)
++DEFUN_1(copy_long_to_long,long,long)
++DEFUN_1(copy_long_to_float,long,float)
++DEFUN_1(copy_long_to_double,long,double)
++DEFUN_1(copy_ulong_to_char,unsigned long,char)
++DEFUN_1(copy_ulong_to_uchar,unsigned long,unsigned char)
++DEFUN_1(copy_ulong_to_short,unsigned long,short)
++DEFUN_1(copy_ulong_to_ushort,unsigned long,unsigned short)
++DEFUN_1(copy_ulong_to_int,unsigned long,int)
++DEFUN_1(copy_ulong_to_uint,unsigned long,unsigned int)
++DEFUN_1(copy_ulong_to_float,unsigned long,float)
++DEFUN_1(copy_ulong_to_double,unsigned long,double)
++#else
++#define copy_long_to_char copy_int_to_char
++#define copy_long_to_uchar copy_int_to_uchar
++#define copy_long_to_short copy_int_to_short
++#define copy_long_to_ushort copy_int_to_ushort
++#define copy_long_to_int copy_int_to_int
++#define copy_long_to_uint copy_int_to_int
++#define copy_long_to_long copy_int_to_int
++#define copy_long_to_float copy_int_to_float
++#define copy_long_to_double copy_int_to_double
++#define copy_ulong_to_char copy_uint_to_char
++#define copy_ulong_to_uchar copy_uint_to_uchar
++#define copy_ulong_to_short copy_uint_to_short
++#define copy_ulong_to_ushort copy_uint_to_ushort
++#define copy_ulong_to_int copy_int_to_int
++#define copy_ulong_to_uint copy_int_to_int
++#define copy_ulong_to_float copy_uint_to_float
++#define copy_ulong_to_double copy_uint_to_double
++#endif
++
++DEFUN_1(copy_float_to_char,float,char)
++DEFUN_1(copy_float_to_uchar,float,unsigned char)
++#if SIZEOF_INT != SIZEOF_SHORT
++DEFUN_1(copy_float_to_short,float,short)
++DEFUN_1(copy_float_to_ushort,float,unsigned short)
++#else
++# define copy_float_to_short copy_float_to_int
++# define copy_float_to_ushort copy_float_to_uint
++#endif
++DEFUN_1(copy_float_to_int,float,int)
++DEFUN_1(copy_float_to_uint,float,unsigned int)
++#if SIZEOF_INT != SIZEOF_LONG
++DEFUN_1(copy_float_to_long,float,long)
++DEFUN_1(copy_float_to_ulong,float,unsigned long)
++#else
++# define copy_float_to_long copy_float_to_int
++# define copy_float_to_ulong copy_float_to_uint
++#endif
++DEFUN_1(copy_float_to_float,float,float)
++DEFUN_1(copy_float_to_double,float,double)
++
++DEFUN_1(copy_double_to_char,double,char)
++DEFUN_1(copy_double_to_uchar,double,unsigned char)
++#if SIZEOF_INT != SIZEOF_SHORT
++DEFUN_1(copy_double_to_short,double,short)
++DEFUN_1(copy_double_to_ushort,double,unsigned short)
++#else
++# define copy_double_to_short copy_double_to_int
++# define copy_double_to_ushort copy_double_to_uint
++#endif
++DEFUN_1(copy_double_to_int,double,int)
++DEFUN_1(copy_double_to_uint,double,unsigned int)
++#if SIZEOF_INT != SIZEOF_LONG
++DEFUN_1(copy_double_to_long,double,long)
++DEFUN_1(copy_double_to_ulong,double,unsigned long)
++#else
++# define copy_double_to_long copy_double_to_int
++# define copy_double_to_ulong copy_double_to_uint
++#endif
++DEFUN_1(copy_double_to_float,double,float)
++DEFUN_1(copy_double_to_double,double,double)
++
++DEFUN_2(char_to_int,char,int,copy_char_to_int)
++DEFUN_2(char_to_uint,char,unsigned int,copy_char_to_uint)
++#if SIZEOF_INT != SIZEOF_LONG
++DEFUN_2(char_to_long,char,long,copy_char_to_long)
++DEFUN_2(char_to_ulong,char,unsigned long,copy_char_to_ulong)
++#else
++# define char_to_long char_to_int
++# define char_to_ulong char_to_uint
++#endif
++DEFUN_2(char_to_float,char,float,copy_char_to_float)
++DEFUN_2(char_to_double,char,double,copy_char_to_double)
++
++DEFUN_2(uchar_to_int,unsigned char,int,copy_uchar_to_int)
++DEFUN_2(uchar_to_uint,unsigned char,unsigned int,copy_uchar_to_uint)
++#if SIZEOF_INT != SIZEOF_LONG
++DEFUN_2(uchar_to_long,unsigned char,long,copy_uchar_to_long)
++DEFUN_2(uchar_to_ulong,unsigned char,unsigned long,copy_uchar_to_ulong)
++#else
++# define uchar_to_long uchar_to_int
++# define uchar_to_ulong uchar_to_uint
++#endif
++DEFUN_2(uchar_to_float,unsigned char,float,copy_uchar_to_float)
++DEFUN_2(uchar_to_double,unsigned char,double,copy_uchar_to_double)
++
++#if SIZEOF_INT != SIZEOF_SHORT
++DEFUN_2(short_to_int,short,int,copy_short_to_int)
++DEFUN_2(short_to_uint,short,unsigned int,copy_short_to_uint)
++DEFUN_2(short_to_long,short,long,copy_short_to_long)
++DEFUN_2(short_to_ulong,short,unsigned long,copy_short_to_ulong)
++DEFUN_2(short_to_float,short,float,copy_short_to_float)
++DEFUN_2(short_to_double,short,double,copy_short_to_double)
++DEFUN_2(ushort_to_int,unsigned short,int,copy_ushort_to_int)
++DEFUN_2(ushort_to_uint,unsigned short,unsigned int,copy_ushort_to_uint)
++DEFUN_2(ushort_to_long,unsigned short,long,copy_ushort_to_long)
++DEFUN_2(ushort_to_ulong,unsigned short,unsigned long,copy_ushort_to_ulong)
++DEFUN_2(ushort_to_float,unsigned short,float,copy_ushort_to_float)
++DEFUN_2(ushort_to_double,unsigned short,double,copy_ushort_to_double)
++#else
++# define short_to_int NULL
++# define short_to_uint NULL
++# define short_to_long int_to_long
++# define short_to_ulong int_to_ulong
++# define short_to_float int_to_float
++# define short_to_double int_to_double
++# define ushort_to_int NULL
++# define ushort_to_uint NULL
++# define ushort_to_long uint_to_long
++# define ushort_to_ulong uint_to_ulong
++# define ushort_to_float uint_to_float
++# define ushort_to_double uint_to_double
++#endif
++
++#if SIZEOF_INT != SIZEOF_LONG
++DEFUN_2(int_to_long,int,long,copy_int_to_long)
++DEFUN_2(int_to_ulong,int,unsigned long,copy_int_to_ulong)
++#else
++# define int_to_long NULL
++# define int_to_ulong NULL
++#endif
++DEFUN_2(int_to_float,int,float,copy_int_to_float)
++DEFUN_2(int_to_double,int,double,copy_int_to_double)
++
++#if SIZEOF_INT != SIZEOF_LONG
++DEFUN_2(uint_to_long,unsigned int,long,copy_uint_to_long)
++DEFUN_2(uint_to_ulong,unsigned int,unsigned long,copy_uint_to_ulong)
++#else
++# define uint_to_long NULL
++# define uint_to_ulong NULL
++#endif
++DEFUN_2(uint_to_float,unsigned int,float,copy_uint_to_float)
++DEFUN_2(uint_to_double,unsigned int,double,copy_uint_to_double)
++
++#if SIZEOF_INT != SIZEOF_LONG
++DEFUN_2(long_to_float,long,float,copy_long_to_float)
++DEFUN_2(long_to_double,long,double,copy_long_to_double)
++DEFUN_2(ulong_to_float,unsigned long,float,copy_ulong_to_float)
++DEFUN_2(ulong_to_double,unsigned long,double,copy_ulong_to_double)
++#else
++# define long_to_float int_to_float
++# define long_to_double int_to_double
++# define ulong_to_float uint_to_float
++# define ulong_to_double uint_to_double
++#endif
++
++DEFUN_2(float_to_double,float,double,copy_float_to_double)
++
++#define TO_DOUBLE_FUN(name,type) \
++static double name (VOID_STAR x) { return (double) *(type *) x; }
++TO_DOUBLE_FUN(char_to_one_double,char)
++TO_DOUBLE_FUN(uchar_to_one_double,unsigned char)
++#if SIZEOF_INT != SIZEOF_SHORT
++TO_DOUBLE_FUN(short_to_one_double,short)
++TO_DOUBLE_FUN(ushort_to_one_double,unsigned short)
++#else
++# define short_to_one_double int_to_one_double
++# define ushort_to_one_double uint_to_one_double
++#endif
++TO_DOUBLE_FUN(int_to_one_double,int)
++TO_DOUBLE_FUN(uint_to_one_double,unsigned int)
++#if SIZEOF_INT != SIZEOF_LONG
++TO_DOUBLE_FUN(long_to_one_double,long)
++TO_DOUBLE_FUN(ulong_to_one_double,unsigned long)
++#else
++# define long_to_one_double int_to_one_double
++# define ulong_to_one_double uint_to_one_double
++#endif
++TO_DOUBLE_FUN(float_to_one_double,float)
++TO_DOUBLE_FUN(double_to_one_double,double)
++
++SLang_To_Double_Fun_Type
++SLarith_get_to_double_fun (unsigned char type, unsigned int *sizeof_type)
++{
++ unsigned int da;
++ SLang_To_Double_Fun_Type to_double;
++
++ switch (type)
++ {
++ default:
++ return NULL;
++
++ case SLANG_CHAR_TYPE:
++ da = sizeof (char); to_double = char_to_one_double;
++ break;
++ case SLANG_UCHAR_TYPE:
++ da = sizeof (unsigned char); to_double = uchar_to_one_double;
++ break;
++ case SLANG_SHORT_TYPE:
++ da = sizeof (short); to_double = short_to_one_double;
++ break;
++ case SLANG_USHORT_TYPE:
++ da = sizeof (unsigned short); to_double = ushort_to_one_double;
++ break;
++ case SLANG_INT_TYPE:
++ da = sizeof (int); to_double = int_to_one_double;
++ break;
++ case SLANG_UINT_TYPE:
++ da = sizeof (unsigned int); to_double = uint_to_one_double;
++ break;
++ case SLANG_LONG_TYPE:
++ da = sizeof (long); to_double = long_to_one_double;
++ break;
++ case SLANG_ULONG_TYPE:
++ da = sizeof (unsigned long); to_double = ulong_to_one_double;
++ break;
++ case SLANG_FLOAT_TYPE:
++ da = sizeof (float); to_double = float_to_one_double;
++ break;
++ case SLANG_DOUBLE_TYPE:
++ da = sizeof (double); to_double = double_to_one_double;
++ break;
++ }
++
++ if (sizeof_type != NULL) *sizeof_type = da;
++ return to_double;
++}
++
++/* Each element of the matrix determines how the row maps onto the column.
++ * That is, let the matrix be B_ij. Where the i,j indices refer to
++ * precedence of the type. Then,
++ * B_ij-&gt;copy_function copies type i to type j. Similarly,
++ * B_ij-&gt;convert_function mallocs a new array of type j and copies i to it.
++ *
++ * Since types are always converted to higher levels of precedence for binary
++ * operations, many of the elements are NULL.
++ *
++ * Is the idea clear?
++ */
++typedef struct
++{
++ FVOID_STAR copy_function;
++ Convert_Fun_Type convert_function;
++}
++Binary_Matrix_Type;
++
++static Binary_Matrix_Type Binary_Matrix [MAX_ARITHMETIC_TYPES][MAX_ARITHMETIC_TYPES] =
++{
++ {
++ {(FVOID_STAR)copy_char_to_char, NULL},
++ {(FVOID_STAR)copy_char_to_char, NULL},
++ {(FVOID_STAR) copy_char_to_short, NULL},
++ {(FVOID_STAR) copy_char_to_ushort, NULL},
++ {(FVOID_STAR) copy_char_to_int, char_to_int},
++ {(FVOID_STAR) copy_char_to_uint, char_to_uint},
++ {(FVOID_STAR) copy_char_to_long, char_to_long},
++ {(FVOID_STAR) copy_char_to_ulong, char_to_ulong},
++ {(FVOID_STAR) copy_char_to_float, char_to_float},
++ {(FVOID_STAR) copy_char_to_double, char_to_double},
++ },
++
++ {
++ {(FVOID_STAR)copy_char_to_char, NULL},
++ {(FVOID_STAR)copy_char_to_char, NULL},
++ {(FVOID_STAR) copy_uchar_to_short, NULL},
++ {(FVOID_STAR) copy_uchar_to_ushort, NULL},
++ {(FVOID_STAR) copy_uchar_to_int, uchar_to_int},
++ {(FVOID_STAR) copy_uchar_to_uint, uchar_to_uint},
++ {(FVOID_STAR) copy_uchar_to_long, uchar_to_long},
++ {(FVOID_STAR) copy_uchar_to_ulong, uchar_to_ulong},
++ {(FVOID_STAR) copy_uchar_to_float, uchar_to_float},
++ {(FVOID_STAR) copy_uchar_to_double, uchar_to_double},
++ },
++
++ {
++ {(FVOID_STAR) copy_short_to_char, NULL},
++ {(FVOID_STAR) copy_short_to_uchar, NULL},
++ {(FVOID_STAR) copy_short_to_short, NULL},
++ {(FVOID_STAR) copy_short_to_short, NULL},
++ {(FVOID_STAR) copy_short_to_int, short_to_int},
++ {(FVOID_STAR) copy_short_to_uint, short_to_uint},
++ {(FVOID_STAR) copy_short_to_long, short_to_long},
++ {(FVOID_STAR) copy_short_to_ulong, short_to_ulong},
++ {(FVOID_STAR) copy_short_to_float, short_to_float},
++ {(FVOID_STAR) copy_short_to_double, short_to_double},
++ },
++
++ {
++ {(FVOID_STAR) copy_ushort_to_char, NULL},
++ {(FVOID_STAR) copy_ushort_to_uchar, NULL},
++ {(FVOID_STAR) copy_short_to_short, NULL},
++ {(FVOID_STAR) copy_short_to_short, NULL},
++ {(FVOID_STAR) copy_ushort_to_int, ushort_to_int},
++ {(FVOID_STAR) copy_ushort_to_uint, ushort_to_uint},
++ {(FVOID_STAR) copy_ushort_to_long, ushort_to_long},
++ {(FVOID_STAR) copy_ushort_to_ulong, ushort_to_ulong},
++ {(FVOID_STAR) copy_ushort_to_float, ushort_to_float},
++ {(FVOID_STAR) copy_ushort_to_double, ushort_to_double},
++ },
++
++ {
++ {(FVOID_STAR) copy_int_to_char, NULL},
++ {(FVOID_STAR) copy_int_to_uchar, NULL},
++ {(FVOID_STAR) copy_int_to_short, NULL},
++ {(FVOID_STAR) copy_int_to_ushort, NULL},
++ {(FVOID_STAR) copy_int_to_int, NULL},
++ {(FVOID_STAR) copy_int_to_int, NULL},
++ {(FVOID_STAR) copy_int_to_long, int_to_long},
++ {(FVOID_STAR) copy_int_to_ulong, int_to_ulong},
++ {(FVOID_STAR) copy_int_to_float, int_to_float},
++ {(FVOID_STAR) copy_int_to_double, int_to_double},
++ },
++
++ {
++ {(FVOID_STAR) copy_uint_to_char, NULL},
++ {(FVOID_STAR) copy_uint_to_uchar, NULL},
++ {(FVOID_STAR) copy_uint_to_short, NULL},
++ {(FVOID_STAR) copy_uint_to_ushort, NULL},
++ {(FVOID_STAR) copy_int_to_int, NULL},
++ {(FVOID_STAR) copy_int_to_int, NULL},
++ {(FVOID_STAR) copy_uint_to_long, uint_to_long},
++ {(FVOID_STAR) copy_uint_to_ulong, uint_to_ulong},
++ {(FVOID_STAR) copy_uint_to_float, uint_to_float},
++ {(FVOID_STAR) copy_uint_to_double, uint_to_double},
++ },
++
++ {
++ {(FVOID_STAR) copy_long_to_char, NULL},
++ {(FVOID_STAR) copy_long_to_uchar, NULL},
++ {(FVOID_STAR) copy_long_to_short, NULL},
++ {(FVOID_STAR) copy_long_to_ushort, NULL},
++ {(FVOID_STAR) copy_long_to_int, NULL},
++ {(FVOID_STAR) copy_long_to_uint, NULL},
++ {(FVOID_STAR) copy_long_to_long, NULL},
++ {(FVOID_STAR) copy_long_to_long, NULL},
++ {(FVOID_STAR) copy_long_to_float, long_to_float},
++ {(FVOID_STAR) copy_long_to_double, long_to_double},
++ },
++
++ {
++ {(FVOID_STAR) copy_ulong_to_char, NULL},
++ {(FVOID_STAR) copy_ulong_to_uchar, NULL},
++ {(FVOID_STAR) copy_ulong_to_short, NULL},
++ {(FVOID_STAR) copy_ulong_to_ushort, NULL},
++ {(FVOID_STAR) copy_ulong_to_int, NULL},
++ {(FVOID_STAR) copy_ulong_to_uint, NULL},
++ {(FVOID_STAR) copy_long_to_long, NULL},
++ {(FVOID_STAR) copy_long_to_long, NULL},
++ {(FVOID_STAR) copy_ulong_to_float, ulong_to_float},
++ {(FVOID_STAR) copy_ulong_to_double, ulong_to_double},
++ },
++
++ {
++ {(FVOID_STAR) copy_float_to_char, NULL},
++ {(FVOID_STAR) copy_float_to_uchar, NULL},
++ {(FVOID_STAR) copy_float_to_short, NULL},
++ {(FVOID_STAR) copy_float_to_ushort, NULL},
++ {(FVOID_STAR) copy_float_to_int, NULL},
++ {(FVOID_STAR) copy_float_to_uint, NULL},
++ {(FVOID_STAR) copy_float_to_long, NULL},
++ {(FVOID_STAR) copy_float_to_ulong, NULL},
++ {(FVOID_STAR) copy_float_to_float, NULL},
++ {(FVOID_STAR) copy_float_to_double, float_to_double},
++ },
++
++ {
++ {(FVOID_STAR) copy_double_to_char, NULL},
++ {(FVOID_STAR) copy_double_to_uchar, NULL},
++ {(FVOID_STAR) copy_double_to_short, NULL},
++ {(FVOID_STAR) copy_double_to_ushort, NULL},
++ {(FVOID_STAR) copy_double_to_int, NULL},
++ {(FVOID_STAR) copy_double_to_uint, NULL},
++ {(FVOID_STAR) copy_double_to_long, NULL},
++ {(FVOID_STAR) copy_double_to_ulong, NULL},
++ {(FVOID_STAR) copy_double_to_float, NULL},
++ {(FVOID_STAR) copy_double_to_double, NULL},
++ }
++};
++
++#define GENERIC_BINARY_FUNCTION int_int_bin_op
++#define GENERIC_BIT_OPERATIONS
++#define GENERIC_TYPE int
++#define POW_FUNCTION(a,b) pow((double)(a),(double)(b))
++#define POW_RESULT_TYPE double
++#define ABS_FUNCTION abs
++#define MOD_FUNCTION(a,b) ((a) % (b))
++#define GENERIC_UNARY_FUNCTION int_unary_op
++#define SIGN_FUNCTION(x) (((x) &gt; 0) ? 1 : (((x) &lt; 0) ? -1 : 0))
++#define SCALAR_BINARY_FUNCTION int_int_scalar_bin_op
++#define PUSH_SCALAR_OBJ_FUN(x) SLclass_push_int_obj(SLANG_INT_TYPE,(x))
++#define PUSH_POW_OBJ_FUN(x) SLclass_push_double_obj(SLANG_DOUBLE_TYPE, (x))
++#define CMP_FUNCTION int_cmp_function
++#include &quot;slarith.inc&quot;
++
++#define GENERIC_BINARY_FUNCTION uint_uint_bin_op
++#define GENERIC_BIT_OPERATIONS
++#define GENERIC_TYPE unsigned int
++#define POW_FUNCTION(a,b) pow((double)(a),(double)(b))
++#define POW_RESULT_TYPE double
++#define MOD_FUNCTION(a,b) ((a) % (b))
++#define GENERIC_UNARY_FUNCTION uint_unary_op
++#define ABS_FUNCTION(a) (a)
++#define SIGN_FUNCTION(x) (((x) &gt; 0) ? 1 : 0)
++#define SCALAR_BINARY_FUNCTION uint_uint_scalar_bin_op
++#define PUSH_SCALAR_OBJ_FUN(x) SLclass_push_int_obj(SLANG_UINT_TYPE,(int)(x))
++#define PUSH_POW_OBJ_FUN(x) SLclass_push_double_obj(SLANG_DOUBLE_TYPE, (x))
++#define CMP_FUNCTION uint_cmp_function
++#include &quot;slarith.inc&quot;
++
++#if SIZEOF_LONG != SIZEOF_INT
++#define GENERIC_BINARY_FUNCTION long_long_bin_op
++#define GENERIC_BIT_OPERATIONS
++#define GENERIC_TYPE long
++#define POW_FUNCTION(a,b) pow((double)(a),(double)(b))
++#define POW_RESULT_TYPE double
++#define MOD_FUNCTION(a,b) ((a) % (b))
++#define GENERIC_UNARY_FUNCTION long_unary_op
++#define ABS_FUNCTION(a) (((a) &gt;= 0) ? (a) : -(a))
++#define SIGN_FUNCTION(x) (((x) &gt; 0) ? 1 : (((x) &lt; 0) ? -1 : 0))
++#define SCALAR_BINARY_FUNCTION long_long_scalar_bin_op
++#define PUSH_SCALAR_OBJ_FUN(x) SLclass_push_long_obj(SLANG_LONG_TYPE,(x))
++#define PUSH_POW_OBJ_FUN(x) SLclass_push_double_obj(SLANG_DOUBLE_TYPE, (x))
++#define CMP_FUNCTION long_cmp_function
++#include &quot;slarith.inc&quot;
++
++#define GENERIC_BINARY_FUNCTION ulong_ulong_bin_op
++#define GENERIC_BIT_OPERATIONS
++#define GENERIC_TYPE unsigned long
++#define POW_FUNCTION(a,b) pow((double)(a),(double)(b))
++#define POW_RESULT_TYPE double
++#define MOD_FUNCTION(a,b) ((a) % (b))
++#define GENERIC_UNARY_FUNCTION ulong_unary_op
++#define ABS_FUNCTION(a) (a)
++#define SIGN_FUNCTION(x) (((x) &gt; 0) ? 1 : 0)
++#define SCALAR_BINARY_FUNCTION ulong_ulong_scalar_bin_op
++#define PUSH_SCALAR_OBJ_FUN(x) SLclass_push_long_obj(SLANG_ULONG_TYPE,(long)(x))
++#define PUSH_POW_OBJ_FUN(x) SLclass_push_double_obj(SLANG_DOUBLE_TYPE, (x))
++#define CMP_FUNCTION ulong_cmp_function
++#include &quot;slarith.inc&quot;
++#else
++#define long_long_bin_op int_int_bin_op
++#define ulong_ulong_bin_op uint_uint_bin_op
++#define long_unary_op int_unary_op
++#define ulong_unary_op uint_unary_op
++#define long_cmp_function int_cmp_function
++#define ulong_cmp_function uint_cmp_function
++#endif /* SIZEOF_INT != SIZEOF_LONG */
++
++#define GENERIC_BINARY_FUNCTION float_float_bin_op
++#define GENERIC_TYPE float
++#define POW_FUNCTION(a,b) (float)pow((double)(a),(double)(b))
++#define POW_RESULT_TYPE float
++#define MOD_FUNCTION(a,b) (float)fmod((a),(b))
++#define GENERIC_UNARY_FUNCTION float_unary_op
++#define ABS_FUNCTION(a) (float)fabs((double) a)
++#define SIGN_FUNCTION(x) (((x) &gt; 0) ? 1 : (((x) &lt; 0) ? -1 : 0))
++#define SCALAR_BINARY_FUNCTION float_float_scalar_bin_op
++#define PUSH_SCALAR_OBJ_FUN(x) SLclass_push_float_obj(SLANG_FLOAT_TYPE,(x))
++#define PUSH_POW_OBJ_FUN(x) SLclass_push_float_obj(SLANG_FLOAT_TYPE, (x))
++#define CMP_FUNCTION float_cmp_function
++#include &quot;slarith.inc&quot;
++
++#define GENERIC_BINARY_FUNCTION double_double_bin_op
++#define GENERIC_TYPE double
++#define POW_FUNCTION(a,b) pow((double)(a),(double)(b))
++#define POW_RESULT_TYPE double
++#define MOD_FUNCTION(a,b) (float)fmod((a),(b))
++#define GENERIC_UNARY_FUNCTION double_unary_op
++#define ABS_FUNCTION(a) fabs(a)
++#define SIGN_FUNCTION(x) (((x) &gt; 0) ? 1 : (((x) &lt; 0) ? -1 : 0))
++#define SCALAR_BINARY_FUNCTION double_double_scalar_bin_op
++#define PUSH_SCALAR_OBJ_FUN(x) SLclass_push_double_obj(SLANG_DOUBLE_TYPE,(x))
++#define PUSH_POW_OBJ_FUN(x) SLclass_push_double_obj(SLANG_DOUBLE_TYPE, (x))
++#define CMP_FUNCTION double_cmp_function
++#include &quot;slarith.inc&quot;
++
++#define GENERIC_UNARY_FUNCTION char_unary_op
++#define GENERIC_BIT_OPERATIONS
++#define GENERIC_TYPE signed char
++#define ABS_FUNCTION abs
++#define SIGN_FUNCTION(x) (((x) &gt; 0) ? 1 : (((x) &lt; 0) ? -1 : 0))
++#define CMP_FUNCTION char_cmp_function
++#include &quot;slarith.inc&quot;
++
++#define GENERIC_UNARY_FUNCTION uchar_unary_op
++#define GENERIC_BIT_OPERATIONS
++#define GENERIC_TYPE unsigned char
++#define ABS_FUNCTION(x) (x)
++#define SIGN_FUNCTION(x) (((x) &gt; 0) ? 1 : 0)
++#define CMP_FUNCTION uchar_cmp_function
++#include &quot;slarith.inc&quot;
++
++#if SIZEOF_SHORT != SIZEOF_INT
++#define GENERIC_UNARY_FUNCTION short_unary_op
++#define GENERIC_BIT_OPERATIONS
++#define GENERIC_TYPE short
++#define ABS_FUNCTION abs
++#define SIGN_FUNCTION(x) (((x) &gt; 0) ? 1 : (((x) &lt; 0) ? -1 : 0))
++#define CMP_FUNCTION short_cmp_function
++#include &quot;slarith.inc&quot;
++
++#define GENERIC_UNARY_FUNCTION ushort_unary_op
++#define GENERIC_BIT_OPERATIONS
++#define GENERIC_TYPE unsigned short
++#define ABS_FUNCTION(x) (x)
++#define SIGN_FUNCTION(x) (((x) &gt; 0) ? 1 : 0)
++#define CMP_FUNCTION ushort_cmp_function
++#include &quot;slarith.inc&quot;
++#endif /* SIZEOF_INT != SIZEOF_SHORT */
++
++/* Unfortunately, the numbers that were assigned to the data-types were
++ * not well thought out. So, I need to use the following table.
++ */
++#define MAXIMUM_ARITH_TYPE_VALUE SLANG_FLOAT_TYPE
++#define IS_INTEGER_TYPE(x) \
++ (((x) &lt;= MAXIMUM_ARITH_TYPE_VALUE) \
++ &amp;&amp; (Type_Precedence_Table[x] &lt; 8) &amp;&amp; (Type_Precedence_Table[x] != -1))
++#define IS_ARITHMETIC_TYPE(x) \
++ (((x) &lt;= MAXIMUM_ARITH_TYPE_VALUE) &amp;&amp; (Type_Precedence_Table[x] != -1))
++
++#define LONG_PRECEDENCE_VALUE 6
++#define FLOAT_PRECEDENCE_VALUE 8
++
++static signed char Type_Precedence_Table [MAXIMUM_ARITH_TYPE_VALUE + 1] =
++{
++ -1, /* SLANG_UNDEFINED_TYPE */
++ -1, /* SLANG_VOID_TYPE */
++ 4, /* SLANG_INT_TYPE */
++ 9, /* SLANG_DOUBLE_TYPE */
++ 0, /* SLANG_CHAR_TYPE */
++ -1, /* SLANG_INTP_TYPE */
++ -1, /* SLANG_REF_TYPE */
++ -1, /* SLANG_COMPLEX_TYPE */
++ -1, /* SLANG_NULL_TYPE */
++ 1, /* SLANG_UCHAR_TYPE */
++ 2, /* SLANG_SHORT_TYPE */
++ 3, /* SLANG_USHORT_TYPE */
++ 5, /* SLANG_UINT_TYPE */
++ 6, /* SLANG_LONG_TYPE */
++ 7, /* SLANG_ULONG_TYPE */
++ -1, /* SLANG_STRING_TYPE */
++ 8 /* SLANG_FLOAT_TYPE */
++};
++
++int _SLarith_get_precedence (unsigned char type)
++{
++ if (type &gt; MAXIMUM_ARITH_TYPE_VALUE)
++ return -1;
++
++ return Type_Precedence_Table[type];
++}
++
++unsigned char _SLarith_promote_type (unsigned char t)
++{
++ switch (t)
++ {
++ case SLANG_FLOAT_TYPE:
++ case SLANG_DOUBLE_TYPE:
++ case SLANG_LONG_TYPE:
++ case SLANG_ULONG_TYPE:
++ case SLANG_INT_TYPE:
++ case SLANG_UINT_TYPE:
++ break;
++
++ case SLANG_USHORT_TYPE:
++#if SIZEOF_INT == SIZEOF_SHORT
++ t = SLANG_UINT_TYPE;
++ break;
++#endif
++ /* drop */
++ case SLANG_CHAR_TYPE:
++ case SLANG_UCHAR_TYPE:
++ case SLANG_SHORT_TYPE:
++ default:
++ t = SLANG_INT_TYPE;
++ }
++
++ return t;
++}
++
++static unsigned char promote_to_common_type (unsigned char a, unsigned char b)
++{
++ a = _SLarith_promote_type (a);
++ b = _SLarith_promote_type (b);
++
++ return (Type_Precedence_Table[a] &gt; Type_Precedence_Table[b]) ? a : b;
++}
++
++static int arith_bin_op_result (int op, unsigned char a_type, unsigned char b_type,
++ unsigned char *c_type)
++{
++ switch (op)
++ {
++ case SLANG_EQ:
++ case SLANG_NE:
++ case SLANG_GT:
++ case SLANG_GE:
++ case SLANG_LT:
++ case SLANG_LE:
++ case SLANG_OR:
++ case SLANG_AND:
++ *c_type = SLANG_CHAR_TYPE;
++ return 1;
++
++ case SLANG_POW:
++ if (SLANG_FLOAT_TYPE == promote_to_common_type (a_type, b_type))
++ *c_type = SLANG_FLOAT_TYPE;
++ else
++ *c_type = SLANG_DOUBLE_TYPE;
++ return 1;
++
++ case SLANG_BAND:
++ case SLANG_BXOR:
++ case SLANG_BOR:
++ case SLANG_SHL:
++ case SLANG_SHR:
++ /* The bit-level operations are defined just for integer types */
++ if ((0 == IS_INTEGER_TYPE (a_type))
++ || (0 == IS_INTEGER_TYPE(b_type)))
++ return 0;
++ break;
++
++ default:
++ break;
++ }
++
++ *c_type = promote_to_common_type (a_type, b_type);
++ return 1;
++}
++
++typedef int (*Bin_Fun_Type) (int,
++ unsigned char, VOID_STAR, unsigned int,
++ unsigned char, VOID_STAR, unsigned int,
++ VOID_STAR);
++
++/* This array of functions must be indexed by precedence after arithmetic
++ * promotions.
++ */
++static Bin_Fun_Type Bin_Fun_Map [MAX_ARITHMETIC_TYPES] =
++{
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ int_int_bin_op,
++ uint_uint_bin_op,
++ long_long_bin_op,
++ ulong_ulong_bin_op,
++ float_float_bin_op,
++ double_double_bin_op
++};
++
++static int arith_bin_op (int op,
++ unsigned char a_type, VOID_STAR ap, unsigned int na,
++ unsigned char b_type, VOID_STAR bp, unsigned int nb,
++ VOID_STAR cp)
++{
++ Convert_Fun_Type af, bf;
++ Bin_Fun_Type binfun;
++ int a_indx, b_indx, c_indx;
++ unsigned char c_type;
++ int ret;
++
++ c_type = promote_to_common_type (a_type, b_type);
++
++ a_indx = Type_Precedence_Table [a_type];
++ b_indx = Type_Precedence_Table [b_type];
++ c_indx = Type_Precedence_Table [c_type];
++
++ af = Binary_Matrix[a_indx][c_indx].convert_function;
++ bf = Binary_Matrix[b_indx][c_indx].convert_function;
++ binfun = Bin_Fun_Map[c_indx];
++
++ if ((af != NULL)
++ &amp;&amp; (NULL == (ap = (VOID_STAR) (*af) (ap, na))))
++ return -1;
++
++ if ((bf != NULL)
++ &amp;&amp; (NULL == (bp = (VOID_STAR) (*bf) (bp, nb))))
++ {
++ if (af != NULL) SLfree ((char *) ap);
++ return -1;
++ }
++
++ ret = (*binfun) (op, a_type, ap, na, b_type, bp, nb, cp);
++ if (af != NULL) SLfree ((char *) ap);
++ if (bf != NULL) SLfree ((char *) bp);
++
++ return ret;
++}
++
++static int arith_unary_op_result (int op, unsigned char a, unsigned char *b)
++{
++ (void) a;
++ switch (op)
++ {
++ default:
++ return 0;
++
++ case SLANG_SQR:
++ case SLANG_MUL2:
++ case SLANG_PLUSPLUS:
++ case SLANG_MINUSMINUS:
++ case SLANG_CHS:
++ case SLANG_ABS:
++ *b = a;
++ break;
++
++ case SLANG_NOT:
++ case SLANG_BNOT:
++ if (0 == IS_INTEGER_TYPE(a))
++ return 0;
++ *b = a;
++ break;
++
++ case SLANG_SIGN:
++ *b = SLANG_INT_TYPE;
++ break;
++ }
++ return 1;
++}
++
++static int integer_pop (unsigned char type, VOID_STAR ptr)
++{
++ SLang_Object_Type obj;
++ int i, j;
++ void (*f)(VOID_STAR, VOID_STAR, unsigned int);
++
++ if (-1 == SLang_pop (&amp;obj))
++ return -1;
++
++ if ((obj.data_type &gt; MAXIMUM_ARITH_TYPE_VALUE)
++ || ((j = Type_Precedence_Table[obj.data_type]) == -1)
++ || (j &gt;= FLOAT_PRECEDENCE_VALUE))
++ {
++ _SLclass_type_mismatch_error (type, obj.data_type);
++ SLang_free_object (&amp;obj);
++ return -1;
++ }
++
++ i = Type_Precedence_Table[type];
++ f = (void (*)(VOID_STAR, VOID_STAR, unsigned int))
++ Binary_Matrix[j][i].copy_function;
++
++ (*f) (ptr, (VOID_STAR)&amp;obj.v, 1);
++
++ return 0;
++}
++
++static int integer_push (unsigned char type, VOID_STAR ptr)
++{
++ SLang_Object_Type obj;
++ int i;
++ void (*f)(VOID_STAR, VOID_STAR, unsigned int);
++
++ i = Type_Precedence_Table[type];
++ f = (void (*)(VOID_STAR, VOID_STAR, unsigned int))
++ Binary_Matrix[i][i].copy_function;
++
++ obj.data_type = type;
++
++ (*f) ((VOID_STAR)&amp;obj.v, ptr, 1);
++
++ return SLang_push (&amp;obj);
++}
++
++int SLang_pop_char (char *i)
++{
++ return integer_pop (SLANG_CHAR_TYPE, (VOID_STAR) i);
++}
++
++int SLang_pop_uchar (unsigned char *i)
++{
++ return integer_pop (SLANG_UCHAR_TYPE, (VOID_STAR) i);
++}
++
++int SLang_pop_short (short *i)
++{
++ return integer_pop (SLANG_SHORT_TYPE, (VOID_STAR) i);
++}
++
++int SLang_pop_ushort (unsigned short *i)
++{
++ return integer_pop (SLANG_USHORT_TYPE, (VOID_STAR) i);
++}
++
++int SLang_pop_long (long *i)
++{
++ return integer_pop (SLANG_LONG_TYPE, (VOID_STAR) i);
++}
++
++int SLang_pop_ulong (unsigned long *i)
++{
++ return integer_pop (SLANG_ULONG_TYPE, (VOID_STAR) i);
++}
++
++int SLang_pop_integer (int *i)
++{
++#if _SLANG_OPTIMIZE_FOR_SPEED
++ SLang_Object_Type obj;
++
++ if (-1 == _SLang_pop_object_of_type (SLANG_INT_TYPE, &amp;obj, 0))
++ return -1;
++ *i = obj.v.int_val;
++ return 0;
++#else
++ return integer_pop (SLANG_INT_TYPE, (VOID_STAR) i);
++#endif
++}
++
++int SLang_pop_uinteger (unsigned int *i)
++{
++ return integer_pop (SLANG_UINT_TYPE, (VOID_STAR) i);
++}
++
++int SLang_push_integer (int i)
++{
++ return SLclass_push_int_obj (SLANG_INT_TYPE, i);
++}
++int SLang_push_uinteger (unsigned int i)
++{
++ return SLclass_push_int_obj (SLANG_UINT_TYPE, (int) i);
++}
++int SLang_push_char (char i)
++{
++ return SLclass_push_char_obj (SLANG_CHAR_TYPE, i);
++}
++int SLang_push_uchar (unsigned char i)
++{
++ return SLclass_push_char_obj (SLANG_UCHAR_TYPE, (char) i);
++}
++int SLang_push_short (short i)
++{
++ return SLclass_push_short_obj (SLANG_SHORT_TYPE, i);
++}
++int SLang_push_ushort (unsigned short i)
++{
++ return SLclass_push_short_obj (SLANG_USHORT_TYPE, (unsigned short) i);
++}
++int SLang_push_long (long i)
++{
++ return SLclass_push_long_obj (SLANG_LONG_TYPE, i);
++}
++int SLang_push_ulong (unsigned long i)
++{
++ return SLclass_push_long_obj (SLANG_ULONG_TYPE, (long) i);
++}
++
++_INLINE_
++int _SLarith_typecast (unsigned char a_type, VOID_STAR ap, unsigned int na,
++ unsigned char b_type, VOID_STAR bp)
++{
++ int i, j;
++
++ void (*copy)(VOID_STAR, VOID_STAR, unsigned int);
++
++ i = Type_Precedence_Table[a_type];
++ j = Type_Precedence_Table[b_type];
++
++ copy = (void (*)(VOID_STAR, VOID_STAR, unsigned int))
++ Binary_Matrix[i][j].copy_function;
++
++ (*copy) (bp, ap, na);
++ return 1;
++}
++
++#if SLANG_HAS_FLOAT
++
++int SLang_pop_double(double *x, int *convertp, int *ip)
++{
++ SLang_Object_Type obj;
++ int i, convert;
++
++ if (0 != SLang_pop (&amp;obj))
++ return -1;
++
++ i = 0;
++ convert = 0;
++
++ switch (obj.data_type)
++ {
++ case SLANG_FLOAT_TYPE:
++ *x = (double) obj.v.float_val;
++ break;
++
++ case SLANG_DOUBLE_TYPE:
++ *x = obj.v.double_val;
++ break;
++
++ case SLANG_INT_TYPE:
++ i = (int) obj.v.long_val;
++ *x = (double) i;
++ convert = 1;
++ break;
++
++ case SLANG_CHAR_TYPE: *x = (double) obj.v.char_val; break;
++ case SLANG_UCHAR_TYPE: *x = (double) obj.v.uchar_val; break;
++ case SLANG_SHORT_TYPE: *x = (double) obj.v.short_val; break;
++ case SLANG_USHORT_TYPE: *x = (double) obj.v.ushort_val; break;
++ case SLANG_UINT_TYPE: *x = (double) obj.v.uint_val; break;
++ case SLANG_LONG_TYPE: *x = (double) obj.v.long_val; break;
++ case SLANG_ULONG_TYPE: *x = (double) obj.v.ulong_val; break;
++
++ default:
++ _SLclass_type_mismatch_error (SLANG_DOUBLE_TYPE, obj.data_type);
++ SLang_free_object (&amp;obj);
++ return -1;
++ }
++
++ if (convertp != NULL) *convertp = convert;
++ if (ip != NULL) *ip = i;
++
++ return 0;
++}
++
++int SLang_push_double (double x)
++{
++ return SLclass_push_double_obj (SLANG_DOUBLE_TYPE, x);
++}
++
++int SLang_pop_float (float *x)
++{
++ double d;
++
++ /* Pop it as a double and let the double function do all the typcasting */
++ if (-1 == SLang_pop_double (&amp;d, NULL, NULL))
++ return -1;
++
++ *x = (float) d;
++ return 0;
++}
++
++int SLang_push_float (float f)
++{
++ return SLclass_push_float_obj (SLANG_FLOAT_TYPE, (double) f);
++}
++
++/* Double */
++static int double_push (unsigned char unused, VOID_STAR ptr)
++{
++ (void) unused;
++ SLang_push_double (*(double *) ptr);
++ return 0;
++}
++
++static int double_push_literal (unsigned char type, VOID_STAR ptr)
++{
++ (void) type;
++ return SLang_push_double (**(double **)ptr);
++}
++
++static int double_pop (unsigned char unused, VOID_STAR ptr)
++{
++ (void) unused;
++ return SLang_pop_double ((double *) ptr, NULL, NULL);
++}
++
++static void double_byte_code_destroy (unsigned char unused, VOID_STAR ptr)
++{
++ (void) unused;
++ SLfree (*(char **) ptr);
++}
++
++static int float_push (unsigned char unused, VOID_STAR ptr)
++{
++ (void) unused;
++ SLang_push_float (*(float *) ptr);
++ return 0;
++}
++
++static int float_pop (unsigned char unused, VOID_STAR ptr)
++{
++ (void) unused;
++ return SLang_pop_float ((float *) ptr);
++}
++
++#endif /* SLANG_HAS_FLOAT */
++
++#if SLANG_HAS_FLOAT
++static char Double_Format[16] = &quot;%g&quot;;
++
++void _SLset_double_format (char *s)
++{
++ strncpy (Double_Format, s, 15);
++ Double_Format[15] = 0;
++}
++#endif
++
++static char *arith_string (unsigned char type, VOID_STAR v)
++{
++ char buf [256];
++ char *s;
++
++ s = buf;
++
++ switch (type)
++ {
++ default:
++ s = SLclass_get_datatype_name (type);
++ break;
++
++ case SLANG_CHAR_TYPE:
++ sprintf (s, &quot;%d&quot;, *(char *) v);
++ break;
++ case SLANG_UCHAR_TYPE:
++ sprintf (s, &quot;%u&quot;, *(unsigned char *) v);
++ break;
++ case SLANG_SHORT_TYPE:
++ sprintf (s, &quot;%d&quot;, *(short *) v);
++ break;
++ case SLANG_USHORT_TYPE:
++ sprintf (s, &quot;%u&quot;, *(unsigned short *) v);
++ break;
++ case SLANG_INT_TYPE:
++ sprintf (s, &quot;%d&quot;, *(int *) v);
++ break;
++ case SLANG_UINT_TYPE:
++ sprintf (s, &quot;%u&quot;, *(unsigned int *) v);
++ break;
++ case SLANG_LONG_TYPE:
++ sprintf (s, &quot;%ld&quot;, *(long *) v);
++ break;
++ case SLANG_ULONG_TYPE:
++ sprintf (s, &quot;%lu&quot;, *(unsigned long *) v);
++ break;
++#if SLANG_HAS_FLOAT
++ case SLANG_FLOAT_TYPE:
++ if (EOF == _SLsnprintf (buf, sizeof (buf), Double_Format, *(float *) v))
++ sprintf (s, &quot;%e&quot;, *(float *) v);
++ break;
++ case SLANG_DOUBLE_TYPE:
++ if (EOF == _SLsnprintf (buf, sizeof (buf), Double_Format, *(double *) v))
++ sprintf (s, &quot;%e&quot;, *(double *) v);
++ break;
++#endif
++ }
++
++ return SLmake_string (s);
++}
++
++static int integer_to_bool (unsigned char type, int *t)
++{
++ (void) type;
++ return SLang_pop_integer (t);
++}
++
++static int push_int_literal (unsigned char type, VOID_STAR ptr)
++{
++ return SLclass_push_int_obj (type, (int) *(long *) ptr);
++}
++
++static int push_char_literal (unsigned char type, VOID_STAR ptr)
++{
++ return SLclass_push_char_obj (type, (char) *(long *) ptr);
++}
++
++#if SIZEOF_SHORT != SIZEOF_INT
++static int push_short_literal (unsigned char type, VOID_STAR ptr)
++{
++ return SLclass_push_short_obj (type, (short) *(long *) ptr);
++}
++#endif
++
++#if SIZEOF_INT != SIZEOF_LONG
++static int push_long_literal (unsigned char type, VOID_STAR ptr)
++{
++ return SLclass_push_long_obj (type, *(long *) ptr);
++}
++#endif
++
++typedef struct
++{
++ char *name;
++ unsigned char data_type;
++ unsigned int sizeof_type;
++ int (*unary_fun)(int, unsigned char, VOID_STAR, unsigned int, VOID_STAR);
++ int (*push_literal) (unsigned char, VOID_STAR);
++ int (*cmp_fun) (unsigned char, VOID_STAR, VOID_STAR, int *);
++}
++Integer_Info_Type;
++
++static Integer_Info_Type Integer_Types [8] =
++{
++ {&quot;Char_Type&quot;, SLANG_CHAR_TYPE, sizeof (char), char_unary_op, push_char_literal, char_cmp_function},
++ {&quot;UChar_Type&quot;, SLANG_UCHAR_TYPE, sizeof (unsigned char), uchar_unary_op, push_char_literal, uchar_cmp_function},
++#if SIZEOF_INT != SIZEOF_SHORT
++ {&quot;Short_Type&quot;, SLANG_SHORT_TYPE, sizeof (short), short_unary_op, push_short_literal, short_cmp_function},
++ {&quot;UShort_Type&quot;, SLANG_USHORT_TYPE, sizeof (unsigned short), ushort_unary_op, push_short_literal, ushort_cmp_function},
++#else
++ {NULL, SLANG_SHORT_TYPE},
++ {NULL, SLANG_USHORT_TYPE},
++#endif
++
++ {&quot;Integer_Type&quot;, SLANG_INT_TYPE, sizeof (int), int_unary_op, push_int_literal, int_cmp_function},
++ {&quot;UInteger_Type&quot;, SLANG_UINT_TYPE, sizeof (unsigned int), uint_unary_op, push_int_literal, uint_cmp_function},
++
++#if SIZEOF_INT != SIZEOF_LONG
++ {&quot;Long_Type&quot;, SLANG_LONG_TYPE, sizeof (long), long_unary_op, push_long_literal, long_cmp_function},
++ {&quot;ULong_Type&quot;, SLANG_ULONG_TYPE, sizeof (unsigned long), ulong_unary_op, push_long_literal, ulong_cmp_function}
++#else
++ {NULL, SLANG_LONG_TYPE, 0, NULL, NULL, NULL},
++ {NULL, SLANG_ULONG_TYPE, 0, NULL, NULL, NULL}
++#endif
++};
++
++static int create_synonyms (void)
++{
++ static char *names[8] =
++ {
++ &quot;Int16_Type&quot;, &quot;UInt16_Type&quot;, &quot;Int32_Type&quot;, &quot;UInt32_Type&quot;,
++ &quot;Int64_Type&quot;, &quot;UInt64_Type&quot;,
++ &quot;Float32_Type&quot;, &quot;Float64_Type&quot;
++ };
++ int types[8];
++ unsigned int i;
++
++ memset ((char *) types, 0, sizeof (types));
++
++ /* The assumption is that sizeof(unsigned X) == sizeof (X) */
++#if SIZEOF_INT == 2
++ types[0] = SLANG_INT_TYPE;
++ types[1] = SLANG_UINT_TYPE;
++#else
++# if SIZEOF_SHORT == 2
++ types[0] = SLANG_SHORT_TYPE;
++ types[1] = SLANG_USHORT_TYPE;
++# else
++# if SIZEOF_LONG == 2
++ types[0] = SLANG_LONG_TYPE;
++ types[1] = SLANG_ULONG_TYPE;
++# endif
++# endif
++#endif
++
++#if SIZEOF_INT == 4
++ types[2] = SLANG_INT_TYPE;
++ types[3] = SLANG_UINT_TYPE;
++#else
++# if SIZEOF_SHORT == 4
++ types[2] = SLANG_SHORT_TYPE;
++ types[3] = SLANG_USHORT_TYPE;
++# else
++# if SIZEOF_LONG == 4
++ types[2] = SLANG_LONG_TYPE;
++ types[3] = SLANG_ULONG_TYPE;
++# endif
++# endif
++#endif
++
++#if SIZEOF_INT == 8
++ types[4] = SLANG_INT_TYPE;
++ types[5] = SLANG_UINT_TYPE;
++#else
++# if SIZEOF_SHORT == 8
++ types[4] = SLANG_SHORT_TYPE;
++ types[5] = SLANG_USHORT_TYPE;
++# else
++# if SIZEOF_LONG == 8
++ types[4] = SLANG_LONG_TYPE;
++ types[5] = SLANG_ULONG_TYPE;
++# endif
++# endif
++#endif
++
++#if SLANG_HAS_FLOAT
++
++#if SIZEOF_FLOAT == 4
++ types[6] = SLANG_FLOAT_TYPE;
++#else
++# if SIZEOF_DOUBLE == 4
++ types[6] = SLANG_DOUBLE_TYPE;
++# endif
++#endif
++#if SIZEOF_FLOAT == 8
++ types[7] = SLANG_FLOAT_TYPE;
++#else
++# if SIZEOF_DOUBLE == 8
++ types[7] = SLANG_DOUBLE_TYPE;
++# endif
++#endif
++
++#endif
++
++ if ((-1 == SLclass_create_synonym (&quot;Int_Type&quot;, SLANG_INT_TYPE))
++ || (-1 == SLclass_create_synonym (&quot;UInt_Type&quot;, SLANG_UINT_TYPE)))
++ return -1;
++
++ for (i = 0; i &lt; 8; i++)
++ {
++ if (types[i] == 0) continue;
++
++ if (-1 == SLclass_create_synonym (names[i], types[i]))
++ return -1;
++ }
++
++#if SIZEOF_INT == SIZEOF_SHORT
++ if ((-1 == SLclass_create_synonym (&quot;Short_Type&quot;, SLANG_INT_TYPE))
++ || (-1 == SLclass_create_synonym (&quot;UShort_Type&quot;, SLANG_UINT_TYPE))
++ || (-1 == _SLclass_copy_class (SLANG_SHORT_TYPE, SLANG_INT_TYPE))
++ || (-1 == _SLclass_copy_class (SLANG_USHORT_TYPE, SLANG_UINT_TYPE)))
++ return -1;
++#endif
++#if SIZEOF_INT == SIZEOF_LONG
++ if ((-1 == SLclass_create_synonym (&quot;Long_Type&quot;, SLANG_INT_TYPE))
++ || (-1 == SLclass_create_synonym (&quot;ULong_Type&quot;, SLANG_UINT_TYPE))
++ || (-1 == _SLclass_copy_class (SLANG_LONG_TYPE, SLANG_INT_TYPE))
++ || (-1 == _SLclass_copy_class (SLANG_ULONG_TYPE, SLANG_UINT_TYPE)))
++ return -1;
++#endif
++ return 0;
++}
++
++int _SLarith_register_types (void)
++{
++ SLang_Class_Type *cl;
++ int a_type, b_type;
++ int i, j;
++
++#if defined(HAVE_SETLOCALE) &amp;&amp; defined(LC_NUMERIC)
++ /* make sure decimal point it used --- the parser requires it */
++ (void) setlocale (LC_NUMERIC, &quot;C&quot;);
++#endif
++
++ for (i = 0; i &lt; 8; i++)
++ {
++ Integer_Info_Type *info;
++
++ info = Integer_Types + i;
++
++ if (info-&gt;name == NULL)
++ {
++ /* This happens when the object is the same size as an integer
++ * For this case, we really want to copy the integer class.
++ * We will handle that when the synonym is created.
++ */
++ continue;
++ }
++
++ if (NULL == (cl = SLclass_allocate_class (info-&gt;name)))
++ return -1;
++
++ (void) SLclass_set_string_function (cl, arith_string);
++ (void) SLclass_set_push_function (cl, integer_push);
++ (void) SLclass_set_pop_function (cl, integer_pop);
++ cl-&gt;cl_push_literal = info-&gt;push_literal;
++ cl-&gt;cl_to_bool = integer_to_bool;
++
++ cl-&gt;cl_cmp = info-&gt;cmp_fun;
++
++ if (-1 == SLclass_register_class (cl, info-&gt;data_type, info-&gt;sizeof_type,
++ SLANG_CLASS_TYPE_SCALAR))
++ return -1;
++ if (-1 == SLclass_add_unary_op (info-&gt;data_type, info-&gt;unary_fun, arith_unary_op_result))
++ return -1;
++
++ _SLarith_Is_Arith_Type [info-&gt;data_type] = 1;
++ }
++
++#if SLANG_HAS_FLOAT
++ if (NULL == (cl = SLclass_allocate_class (&quot;Double_Type&quot;)))
++ return -1;
++ (void) SLclass_set_push_function (cl, double_push);
++ (void) SLclass_set_pop_function (cl, double_pop);
++ (void) SLclass_set_string_function (cl, arith_string);
++ cl-&gt;cl_byte_code_destroy = double_byte_code_destroy;
++ cl-&gt;cl_push_literal = double_push_literal;
++ cl-&gt;cl_cmp = double_cmp_function;
++
++ if (-1 == SLclass_register_class (cl, SLANG_DOUBLE_TYPE, sizeof (double),
++ SLANG_CLASS_TYPE_SCALAR))
++ return -1;
++ if (-1 == SLclass_add_unary_op (SLANG_DOUBLE_TYPE, double_unary_op, arith_unary_op_result))
++ return -1;
++ _SLarith_Is_Arith_Type [SLANG_DOUBLE_TYPE] = 2;
++
++ if (NULL == (cl = SLclass_allocate_class (&quot;Float_Type&quot;)))
++ return -1;
++ (void) SLclass_set_string_function (cl, arith_string);
++ (void) SLclass_set_push_function (cl, float_push);
++ (void) SLclass_set_pop_function (cl, float_pop);
++ cl-&gt;cl_cmp = float_cmp_function;
++
++ if (-1 == SLclass_register_class (cl, SLANG_FLOAT_TYPE, sizeof (float),
++ SLANG_CLASS_TYPE_SCALAR))
++ return -1;
++ if (-1 == SLclass_add_unary_op (SLANG_FLOAT_TYPE, float_unary_op, arith_unary_op_result))
++ return -1;
++ _SLarith_Is_Arith_Type [SLANG_FLOAT_TYPE] = 2;
++#endif
++
++ if (-1 == create_synonyms ())
++ return -1;
++
++ for (a_type = 0; a_type &lt;= MAXIMUM_ARITH_TYPE_VALUE; a_type++)
++ {
++ if (-1 == (i = Type_Precedence_Table [a_type]))
++ continue;
++
++ for (b_type = 0; b_type &lt;= MAXIMUM_ARITH_TYPE_VALUE; b_type++)
++ {
++ int implicit_ok;
++
++ if (-1 == (j = Type_Precedence_Table [b_type]))
++ continue;
++
++ /* Allow implicit typecast, except from into to float */
++ implicit_ok = ((j &gt;= FLOAT_PRECEDENCE_VALUE)
++ || (i &lt; FLOAT_PRECEDENCE_VALUE));
++
++ if (-1 == SLclass_add_binary_op (a_type, b_type, arith_bin_op, arith_bin_op_result))
++ return -1;
++
++ if (i != j)
++ if (-1 == SLclass_add_typecast (a_type, b_type, _SLarith_typecast, implicit_ok))
++ return -1;
++ }
++ }
++
++ return 0;
++}
++
++#if _SLANG_OPTIMIZE_FOR_SPEED
++
++static void promote_objs (SLang_Object_Type *a, SLang_Object_Type *b,
++ SLang_Object_Type *c, SLang_Object_Type *d)
++{
++ unsigned char ia, ib, ic, id;
++ int i, j;
++ void (*copy)(VOID_STAR, VOID_STAR, unsigned int);
++
++ ia = a-&gt;data_type;
++ ib = b-&gt;data_type;
++
++ ic = _SLarith_promote_type (ia);
++
++ if (ic == ib) id = ic; /* already promoted */
++ else id = _SLarith_promote_type (ib);
++
++ i = Type_Precedence_Table[ic];
++ j = Type_Precedence_Table[id];
++ if (i &gt; j)
++ {
++ id = ic;
++ j = i;
++ }
++
++ c-&gt;data_type = d-&gt;data_type = id;
++
++ i = Type_Precedence_Table[ia];
++ copy = (void (*)(VOID_STAR, VOID_STAR, unsigned int))
++ Binary_Matrix[i][j].copy_function;
++ (*copy) ((VOID_STAR) &amp;c-&gt;v, (VOID_STAR)&amp;a-&gt;v, 1);
++
++ i = Type_Precedence_Table[ib];
++ copy = (void (*)(VOID_STAR, VOID_STAR, unsigned int))
++ Binary_Matrix[i][j].copy_function;
++ (*copy) ((VOID_STAR) &amp;d-&gt;v, (VOID_STAR)&amp;b-&gt;v, 1);
++}
++
++int _SLarith_bin_op (SLang_Object_Type *oa, SLang_Object_Type *ob, int op)
++{
++ unsigned char a_type, b_type;
++
++ a_type = oa-&gt;data_type;
++ b_type = ob-&gt;data_type;
++
++ if (a_type != b_type)
++ {
++ SLang_Object_Type obj_a, obj_b;
++
++ /* Handle common cases */
++ if ((a_type == SLANG_INT_TYPE)
++ &amp;&amp; (b_type == SLANG_DOUBLE_TYPE))
++ return double_double_scalar_bin_op (oa-&gt;v.int_val, ob-&gt;v.double_val, op);
++
++ if ((a_type == SLANG_DOUBLE_TYPE)
++ &amp;&amp; (b_type == SLANG_INT_TYPE))
++ return double_double_scalar_bin_op (oa-&gt;v.double_val, ob-&gt;v.int_val, op);
++
++ /* Otherwise do it the hard way */
++ promote_objs (oa, ob, &amp;obj_a, &amp;obj_b);
++ oa = &amp;obj_a;
++ ob = &amp;obj_b;
++
++ a_type = oa-&gt;data_type;
++ b_type = ob-&gt;data_type;
++ }
++
++
++ switch (a_type)
++ {
++ case SLANG_CHAR_TYPE:
++ return int_int_scalar_bin_op (oa-&gt;v.char_val, ob-&gt;v.char_val, op);
++
++ case SLANG_UCHAR_TYPE:
++ return int_int_scalar_bin_op (oa-&gt;v.uchar_val, ob-&gt;v.uchar_val, op);
++
++ case SLANG_SHORT_TYPE:
++ return int_int_scalar_bin_op (oa-&gt;v.short_val, ob-&gt;v.short_val, op);
++
++ case SLANG_USHORT_TYPE:
++# if SIZEOF_INT == SIZEOF_SHORT
++ return uint_uint_scalar_bin_op (oa-&gt;v.ushort_val, ob-&gt;v.ushort_val, op);
++# else
++ return int_int_scalar_bin_op ((int)oa-&gt;v.ushort_val, (int)ob-&gt;v.ushort_val, op);
++# endif
++
++#if SIZEOF_LONG == SIZEOF_INT
++ case SLANG_LONG_TYPE:
++#endif
++ case SLANG_INT_TYPE:
++ return int_int_scalar_bin_op (oa-&gt;v.int_val, ob-&gt;v.int_val, op);
++
++#if SIZEOF_LONG == SIZEOF_INT
++ case SLANG_ULONG_TYPE:
++#endif
++ case SLANG_UINT_TYPE:
++ return uint_uint_scalar_bin_op (oa-&gt;v.uint_val, ob-&gt;v.uint_val, op);
++
++#if SIZEOF_LONG != SIZEOF_INT
++ case SLANG_LONG_TYPE:
++ return long_long_scalar_bin_op (oa-&gt;v.long_val, ob-&gt;v.long_val, op);
++ case SLANG_ULONG_TYPE:
++ return ulong_ulong_scalar_bin_op (oa-&gt;v.ulong_val, ob-&gt;v.ulong_val, op);
++#endif
++ case SLANG_FLOAT_TYPE:
++ return float_float_scalar_bin_op (oa-&gt;v.float_val, ob-&gt;v.float_val, op);
++ case SLANG_DOUBLE_TYPE:
++ return double_double_scalar_bin_op (oa-&gt;v.double_val, ob-&gt;v.double_val, op);
++ }
++
++ return 1;
++}
++#endif
+
+
+Property changes on: drakx/trunk/mdk-stage1/slang/slarith.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1slangslarithinc">Added: drakx/trunk/mdk-stage1/slang/slarith.inc</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/slang/slarith.inc (rev 0)
++++ drakx/trunk/mdk-stage1/slang/slarith.inc 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,783 @@
++/* -*- c -*- */
++
++/* This include file is a template for defining arithmetic binary operations
++ * on arithmetic types. I realize that doing it this way is not very
++ * elegant but it minimizes the number of lines of code and I believe it
++ * promotes clarity.
++ */
++
++/* The following macros should be properly defined before including this file:
++ *
++ * GENERIC_BINARY_FUNCTION: The name of the binary function
++ * GENERIC_TYPE: The class data type
++ * MOD_FUNCTION: The function to use for mod
++ * ABS_FUNCTION: Name of the abs function
++ * SIGN_FUNCTION: Name of the sign function
++ * GENERIC_UNARY_FUNCTION Name of the unary function
++ *
++ * If GENERIC_BIT_OPERATIONS is defined, the bit-level binary operators
++ * will get included. If the data type has a power operation (SLANG_POW),
++ * then POW_FUNCTION should be defined to return POW_RESULT_TYPE.
++ */
++#ifdef GENERIC_BINARY_FUNCTION
++
++static int GENERIC_BINARY_FUNCTION
++(int op,
++ unsigned char a_type, VOID_STAR ap, unsigned int na,
++ unsigned char b_type, VOID_STAR bp, unsigned int nb,
++ VOID_STAR cp)
++{
++ GENERIC_TYPE *c, *a, *b;
++#ifdef POW_FUNCTION
++ POW_RESULT_TYPE *d;
++#endif
++ unsigned int n;
++#if _SLANG_OPTIMIZE_FOR_SPEED &lt; 2
++ unsigned int n_max, da, db;
++#endif
++ char *cc;
++
++ (void) a_type; /* Both SLANG_INT_TYPE */
++ (void) b_type;
++
++ a = (GENERIC_TYPE *) ap;
++ b = (GENERIC_TYPE *) bp;
++ c = (GENERIC_TYPE *) cp;
++ cc = (char *) cp;
++
++#if _SLANG_OPTIMIZE_FOR_SPEED &lt; 2
++ if (na == 1) da = 0; else da = 1;
++ if (nb == 1) db = 0; else db = 1;
++
++ if (na &gt; nb) n_max = na; else n_max = nb;
++#endif
++
++ switch (op)
++ {
++ default:
++ return 0;
++#ifdef POW_FUNCTION
++ case SLANG_POW:
++ d = (POW_RESULT_TYPE *) cp;
++#if _SLANG_OPTIMIZE_FOR_SPEED &lt; 2
++ for (n = 0; n &lt; n_max; n++)
++ {
++ d[n] = POW_FUNCTION(*a, *b);
++ a += da; b += db;
++ }
++#else
++ if (na == nb)
++ {
++ for (n = 0; n &lt; na; n++)
++ d[n] = POW_FUNCTION(a[n],b[n]);
++ }
++ else if (nb == 1)
++ {
++ GENERIC_TYPE xb = *b;
++ if (xb == 2)
++ for (n = 0; n &lt; na; n++)
++ d[n] = a[n] * a[n];
++ else
++ for (n = 0; n &lt; na; n++)
++ d[n] = POW_FUNCTION(a[n], xb);
++ }
++ else /* if (na == 1) */
++ {
++ GENERIC_TYPE xa = *a;
++ for (n = 0; n &lt; nb; n++)
++ d[n] = POW_FUNCTION(xa, b[n]);
++ }
++#endif
++ break;
++#endif
++ case SLANG_PLUS:
++#if _SLANG_OPTIMIZE_FOR_SPEED &lt; 2
++ for (n = 0; n &lt; n_max; n++)
++ {
++ c[n] = (*a + *b); a += da; b += db;
++ }
++#else
++ if (na == nb)
++ {
++ for (n = 0; n &lt; na; n++)
++ c[n] = a[n] + b[n];
++ }
++ else if (nb == 1)
++ {
++ GENERIC_TYPE xb = *b;
++ for (n = 0; n &lt; na; n++)
++ c[n] = a[n] + xb;
++ }
++ else /* if (na == 1) */
++ {
++ GENERIC_TYPE xa = *a;
++ for (n = 0; n &lt; nb; n++)
++ c[n] = xa + b[n];
++ }
++#endif
++ break;
++
++ case SLANG_MINUS:
++#if _SLANG_OPTIMIZE_FOR_SPEED &lt; 2
++ for (n = 0; n &lt; n_max; n++)
++ {
++ c[n] = (*a - *b); a += da; b += db;
++ }
++#else
++ if (na == nb)
++ {
++ for (n = 0; n &lt; na; n++)
++ c[n] = a[n] - b[n];
++ }
++ else if (nb == 1)
++ {
++ GENERIC_TYPE xb = *b;
++ for (n = 0; n &lt; na; n++)
++ c[n] = a[n] - xb;
++ }
++ else /* if (na == 1) */
++ {
++ GENERIC_TYPE xa = *a;
++ for (n = 0; n &lt; nb; n++)
++ c[n] = xa - b[n];
++ }
++#endif
++ break;
++
++ case SLANG_TIMES:
++#if _SLANG_OPTIMIZE_FOR_SPEED &lt; 2
++ for (n = 0; n &lt; n_max; n++)
++ {
++ c[n] = (*a * *b); a += da; b += db;
++ }
++#else
++ if (na == nb)
++ {
++ for (n = 0; n &lt; na; n++)
++ c[n] = a[n] * b[n];
++ }
++ else if (nb == 1)
++ {
++ GENERIC_TYPE xb = *b;
++ for (n = 0; n &lt; na; n++)
++ c[n] = a[n] * xb;
++ }
++ else /* if (na == 1) */
++ {
++ GENERIC_TYPE xa = *a;
++ for (n = 0; n &lt; nb; n++)
++ c[n] = xa * b[n];
++ }
++#endif
++ break;
++
++ case SLANG_DIVIDE:
++#if _SLANG_OPTIMIZE_FOR_SPEED &lt; 2
++ for (n = 0; n &lt; n_max; n++)
++ {
++ if (*b == 0)
++ {
++ SLang_Error = SL_DIVIDE_ERROR;
++ return -1;
++ }
++ c[n] = (*a / *b); a += da; b += db;
++ }
++#else
++ if (na == nb)
++ {
++ for (n = 0; n &lt; na; n++)
++ {
++ if (b[n] == 0)
++ {
++ SLang_Error = SL_DIVIDE_ERROR;
++ return -1;
++ }
++ c[n] = a[n] / b[n];
++ }
++ }
++ else if (nb == 1)
++ {
++ GENERIC_TYPE xb = *b;
++
++ if (xb == 0)
++ {
++ SLang_Error = SL_DIVIDE_ERROR;
++ return -1;
++ }
++ for (n = 0; n &lt; na; n++)
++ c[n] = a[n] / xb;
++ }
++ else /* if (na == 1) */
++ {
++ GENERIC_TYPE xa = *a;
++ for (n = 0; n &lt; nb; n++)
++ {
++ if (b[n] == 0)
++ {
++ SLang_Error = SL_DIVIDE_ERROR;
++ return -1;
++ }
++ c[n] = xa / b[n];
++ }
++ }
++#endif
++ break;
++
++ case SLANG_MOD:
++#if _SLANG_OPTIMIZE_FOR_SPEED &lt; 2
++ for (n = 0; n &lt; n_max; n++)
++ {
++ if (*b == 0)
++ {
++ SLang_Error = SL_DIVIDE_ERROR;
++ return -1;
++ }
++ c[n] = MOD_FUNCTION(*a, *b); a += da; b += db;
++ }
++#else
++ if (na == nb)
++ {
++ for (n = 0; n &lt; na; n++)
++ {
++ if (b[n] == 0)
++ {
++ SLang_Error = SL_DIVIDE_ERROR;
++ return -1;
++ }
++ c[n] = MOD_FUNCTION(a[n],b[n]);
++ }
++ }
++ else if (nb == 1)
++ {
++ GENERIC_TYPE xb = *b;
++ if (xb == 0)
++ {
++ SLang_Error = SL_DIVIDE_ERROR;
++ return -1;
++ }
++ for (n = 0; n &lt; na; n++)
++ c[n] = MOD_FUNCTION(a[n],xb);
++ }
++ else /* if (na == 1) */
++ {
++ GENERIC_TYPE xa = *a;
++ for (n = 0; n &lt; nb; n++)
++ {
++ if (b[n] == 0)
++ {
++ SLang_Error = SL_DIVIDE_ERROR;
++ return -1;
++ }
++ c[n] = MOD_FUNCTION(xa,b[n]);
++ }
++ }
++#endif
++ break;
++
++#ifdef GENERIC_BIT_OPERATIONS
++ case SLANG_BAND:
++#if _SLANG_OPTIMIZE_FOR_SPEED &lt; 2
++ for (n = 0; n &lt; n_max; n++)
++ {
++ c[n] = (*a &amp; *b); a += da; b += db;
++ }
++#else
++ if (na == nb)
++ {
++ for (n = 0; n &lt; na; n++)
++ c[n] = a[n] &amp; b[n];
++ }
++ else if (nb == 1)
++ {
++ GENERIC_TYPE xb = *b;
++ for (n = 0; n &lt; na; n++)
++ c[n] = a[n] &amp; xb;
++ }
++ else /* if (na == 1) */
++ {
++ GENERIC_TYPE xa = *a;
++ for (n = 0; n &lt; nb; n++)
++ c[n] = xa &amp; b[n];
++ }
++#endif
++ break;
++
++ case SLANG_BXOR:
++#if _SLANG_OPTIMIZE_FOR_SPEED &lt; 2
++ for (n = 0; n &lt; n_max; n++)
++ {
++ c[n] = (*a ^ *b); a += da; b += db;
++ }
++#else
++ if (na == nb)
++ {
++ for (n = 0; n &lt; na; n++)
++ c[n] = a[n] ^ b[n];
++ }
++ else if (nb == 1)
++ {
++ GENERIC_TYPE xb = *b;
++ for (n = 0; n &lt; na; n++)
++ c[n] = a[n] ^ xb;
++ }
++ else /* if (na == 1) */
++ {
++ GENERIC_TYPE xa = *a;
++ for (n = 0; n &lt; nb; n++)
++ c[n] = xa ^ b[n];
++ }
++#endif
++ break;
++
++ case SLANG_BOR:
++#if _SLANG_OPTIMIZE_FOR_SPEED &lt; 2
++ for (n = 0; n &lt; n_max; n++)
++ {
++ c[n] = (*a | *b); a += da; b += db;
++ }
++#else
++ if (na == nb)
++ {
++ for (n = 0; n &lt; na; n++)
++ c[n] = a[n] | b[n];
++ }
++ else if (nb == 1)
++ {
++ GENERIC_TYPE xb = *b;
++ for (n = 0; n &lt; na; n++)
++ c[n] = a[n] | xb;
++ }
++ else /* if (na == 1) */
++ {
++ GENERIC_TYPE xa = *a;
++ for (n = 0; n &lt; nb; n++)
++ c[n] = xa | b[n];
++ }
++#endif
++ break;
++
++ case SLANG_SHL:
++#if _SLANG_OPTIMIZE_FOR_SPEED &lt; 2
++ for (n = 0; n &lt; n_max; n++)
++ {
++ c[n] = (*a &lt;&lt; *b); a += da; b += db;
++ }
++#else
++ if (na == nb)
++ {
++ for (n = 0; n &lt; na; n++)
++ c[n] = a[n] &lt;&lt; b[n];
++ }
++ else if (nb == 1)
++ {
++ GENERIC_TYPE xb = *b;
++ for (n = 0; n &lt; na; n++)
++ c[n] = a[n] &lt;&lt; xb;
++ }
++ else /* if (na == 1) */
++ {
++ GENERIC_TYPE xa = *a;
++ for (n = 0; n &lt; nb; n++)
++ c[n] = xa &lt;&lt; b[n];
++ }
++#endif
++ break;
++
++ case SLANG_SHR:
++#if _SLANG_OPTIMIZE_FOR_SPEED &lt; 2
++ for (n = 0; n &lt; n_max; n++)
++ {
++ c[n] = (*a &gt;&gt; *b); a += da; b += db;
++ }
++#else
++ if (na == nb)
++ {
++ for (n = 0; n &lt; na; n++)
++ c[n] = a[n] &gt;&gt; b[n];
++ }
++ else if (nb == 1)
++ {
++ GENERIC_TYPE xb = *b;
++ for (n = 0; n &lt; na; n++)
++ c[n] = a[n] &gt;&gt; xb;
++ }
++ else /* if (na == 1) */
++ {
++ GENERIC_TYPE xa = *a;
++ for (n = 0; n &lt; nb; n++)
++ c[n] = xa &gt;&gt; b[n];
++ }
++#endif
++ break;
++#endif /* GENERIC_BIT_OPERATIONS */
++ case SLANG_EQ:
++#if _SLANG_OPTIMIZE_FOR_SPEED &lt; 2
++ for (n = 0; n &lt; n_max; n++)
++ {
++ cc[n] = (*a == *b); a += da; b += db;
++ }
++#else
++ if (na == nb)
++ {
++ for (n = 0; n &lt; na; n++)
++ cc[n] = (a[n] == b[n]);
++ }
++ else if (nb == 1)
++ {
++ GENERIC_TYPE xb = *b;
++ for (n = 0; n &lt; na; n++)
++ cc[n] = (a[n] == xb);
++ }
++ else /* if (na == 1) */
++ {
++ GENERIC_TYPE xa = *a;
++ for (n = 0; n &lt; nb; n++)
++ cc[n] = (xa == b[n]);
++ }
++#endif
++ break;
++
++ case SLANG_NE:
++#if _SLANG_OPTIMIZE_FOR_SPEED &lt; 2
++ for (n = 0; n &lt; n_max; n++)
++ {
++ cc[n] = (*a != *b); a += da; b += db;
++ }
++#else
++ if (na == nb)
++ {
++ for (n = 0; n &lt; na; n++)
++ cc[n] = (a[n] != b[n]);
++ }
++ else if (nb == 1)
++ {
++ GENERIC_TYPE xb = *b;
++ for (n = 0; n &lt; na; n++)
++ cc[n] = (a[n] != xb);
++ }
++ else /* if (na == 1) */
++ {
++ GENERIC_TYPE xa = *a;
++ for (n = 0; n &lt; nb; n++)
++ cc[n] = (xa != b[n]);
++ }
++#endif
++ break;
++
++ case SLANG_GT:
++#if _SLANG_OPTIMIZE_FOR_SPEED &lt; 2
++ for (n = 0; n &lt; n_max; n++)
++ {
++ cc[n] = (*a &gt; *b); a += da; b += db;
++ }
++#else
++ if (na == nb)
++ {
++ for (n = 0; n &lt; na; n++)
++ cc[n] = (a[n] &gt; b[n]);
++ }
++ else if (nb == 1)
++ {
++ GENERIC_TYPE xb = *b;
++ for (n = 0; n &lt; na; n++)
++ cc[n] = (a[n] &gt; xb);
++ }
++ else /* if (na == 1) */
++ {
++ GENERIC_TYPE xa = *a;
++ for (n = 0; n &lt; nb; n++)
++ cc[n] = (xa &gt; b[n]);
++ }
++#endif
++ break;
++
++ case SLANG_GE:
++#if _SLANG_OPTIMIZE_FOR_SPEED &lt; 2
++ for (n = 0; n &lt; n_max; n++)
++ {
++ cc[n] = (*a &gt;= *b); a += da; b += db;
++ }
++#else
++ if (na == nb)
++ {
++ for (n = 0; n &lt; na; n++)
++ cc[n] = (a[n] &gt;= b[n]);
++ }
++ else if (nb == 1)
++ {
++ GENERIC_TYPE xb = *b;
++ for (n = 0; n &lt; na; n++)
++ cc[n] = (a[n] &gt;= xb);
++ }
++ else /* if (na == 1) */
++ {
++ GENERIC_TYPE xa = *a;
++ for (n = 0; n &lt; nb; n++)
++ cc[n] = (xa &gt;= b[n]);
++ }
++#endif
++ break;
++
++ case SLANG_LT:
++#if _SLANG_OPTIMIZE_FOR_SPEED &lt; 2
++ for (n = 0; n &lt; n_max; n++)
++ {
++ cc[n] = (*a &lt; *b); a += da; b += db;
++ }
++#else
++ if (na == nb)
++ {
++ for (n = 0; n &lt; na; n++)
++ cc[n] = (a[n] &lt; b[n]);
++ }
++ else if (nb == 1)
++ {
++ GENERIC_TYPE xb = *b;
++ for (n = 0; n &lt; na; n++)
++ cc[n] = (a[n] &lt; xb);
++ }
++ else /* if (na == 1) */
++ {
++ GENERIC_TYPE xa = *a;
++ for (n = 0; n &lt; nb; n++)
++ cc[n] = (xa &lt; b[n]);
++ }
++#endif
++ break;
++
++ case SLANG_LE:
++#if _SLANG_OPTIMIZE_FOR_SPEED &lt; 2
++ for (n = 0; n &lt; n_max; n++)
++ {
++ cc[n] = (*a &lt;= *b); a += da; b += db;
++ }
++#else
++ if (na == nb)
++ {
++ for (n = 0; n &lt; na; n++)
++ cc[n] = (a[n] &lt;= b[n]);
++ }
++ else if (nb == 1)
++ {
++ GENERIC_TYPE xb = *b;
++ for (n = 0; n &lt; na; n++)
++ cc[n] = (a[n] &lt;= xb);
++ }
++ else /* if (na == 1) */
++ {
++ GENERIC_TYPE xa = *a;
++ for (n = 0; n &lt; nb; n++)
++ cc[n] = (xa &lt;= b[n]);
++ }
++#endif
++ break;
++
++ case SLANG_OR:
++#if _SLANG_OPTIMIZE_FOR_SPEED &lt; 2
++ for (n = 0; n &lt; n_max; n++)
++ {
++ cc[n] = (*a || *b); a += da; b += db;
++ }
++#else
++ if (na == nb)
++ {
++ for (n = 0; n &lt; na; n++)
++ cc[n] = (a[n] || b[n]);
++ }
++ else if (nb == 1)
++ {
++ GENERIC_TYPE xb = *b;
++ for (n = 0; n &lt; na; n++)
++ cc[n] = (a[n] || xb);
++ }
++ else /* if (na == 1) */
++ {
++ GENERIC_TYPE xa = *a;
++ for (n = 0; n &lt; nb; n++)
++ cc[n] = (xa || b[n]);
++ }
++#endif
++ break;
++
++ case SLANG_AND:
++#if _SLANG_OPTIMIZE_FOR_SPEED &lt; 2
++ for (n = 0; n &lt; n_max; n++)
++ {
++ cc[n] = (*a &amp;&amp; *b); a += da; b += db;
++ }
++#else
++ if (na == nb)
++ {
++ for (n = 0; n &lt; na; n++)
++ cc[n] = (a[n] &amp;&amp; b[n]);
++ }
++ else if (nb == 1)
++ {
++ GENERIC_TYPE xb = *b;
++ for (n = 0; n &lt; na; n++)
++ cc[n] = (a[n] &amp;&amp; xb);
++ }
++ else /* if (na == 1) */
++ {
++ GENERIC_TYPE xa = *a;
++ for (n = 0; n &lt; nb; n++)
++ cc[n] = (xa &amp;&amp; b[n]);
++ }
++#endif
++ break;
++ }
++ return 1;
++}
++
++#endif /* GENERIC_BINARY_FUNCTION */
++
++
++#ifdef GENERIC_UNARY_FUNCTION
++
++static int GENERIC_UNARY_FUNCTION
++(int op,
++ unsigned char a_type, VOID_STAR ap, unsigned int na,
++ VOID_STAR bp
++ )
++{
++ GENERIC_TYPE *a, *b;
++ unsigned int n;
++ int *ib;
++
++ (void) a_type;
++
++ a = (GENERIC_TYPE *) ap;
++ b = (GENERIC_TYPE *) bp;
++
++ switch (op)
++ {
++ default:
++ return 0;
++
++ case SLANG_PLUSPLUS:
++ for (n = 0; n &lt; na; n++) b[n] = (a[n] + 1);
++ break;
++ case SLANG_MINUSMINUS:
++ for (n = 0; n &lt; na; n++) b[n] = (a[n] - 1);
++ break;
++ case SLANG_CHS:
++ for (n = 0; n &lt; na; n++) b[n] = (GENERIC_TYPE) -(a[n]);
++ break;
++ case SLANG_SQR:
++ for (n = 0; n &lt; na; n++) b[n] = (a[n] * a[n]);
++ break;
++ case SLANG_MUL2:
++ for (n = 0; n &lt; na; n++) b[n] = (2 * a[n]);
++ break;
++ case SLANG_ABS:
++ for (n = 0; n &lt; na; n++) b[n] = ABS_FUNCTION (a[n]);
++ break;
++ case SLANG_SIGN:
++ ib = (int *) bp;
++ for (n = 0; n &lt; na; n++)
++ ib[n] = SIGN_FUNCTION(a[n]);
++ break;
++
++#ifdef GENERIC_BIT_OPERATIONS
++ case SLANG_NOT:
++ for (n = 0; n &lt; na; n++) b[n] = !(a[n]);
++ break;
++ case SLANG_BNOT:
++ for (n = 0; n &lt; na; n++) b[n] = ~(a[n]);
++ break;
++#endif
++ }
++
++ return 1;
++}
++#endif /* GENERIC_UNARY_FUNCTION */
++
++
++#ifdef SCALAR_BINARY_FUNCTION
++
++static int SCALAR_BINARY_FUNCTION (GENERIC_TYPE a, GENERIC_TYPE b, int op)
++{
++ switch (op)
++ {
++ default:
++ return 1;
++
++#ifdef POW_FUNCTION
++ case SLANG_POW:
++ return PUSH_POW_OBJ_FUN(POW_FUNCTION(a, b));
++#endif
++ case SLANG_PLUS:
++ return PUSH_SCALAR_OBJ_FUN (a + b);
++ case SLANG_MINUS:
++ return PUSH_SCALAR_OBJ_FUN (a - b);
++ case SLANG_TIMES:
++ return PUSH_SCALAR_OBJ_FUN (a * b);
++ case SLANG_DIVIDE:
++ if (b == 0)
++ {
++ SLang_Error = SL_DIVIDE_ERROR;
++ return -1;
++ }
++ return PUSH_SCALAR_OBJ_FUN (a / b);
++ case SLANG_MOD:
++ if (b == 0)
++ {
++ SLang_Error = SL_DIVIDE_ERROR;
++ return -1;
++ }
++ return PUSH_SCALAR_OBJ_FUN (MOD_FUNCTION(a,b));
++#ifdef GENERIC_BIT_OPERATIONS
++ case SLANG_BAND:
++ return PUSH_SCALAR_OBJ_FUN (a &amp; b);
++ case SLANG_BXOR:
++ return PUSH_SCALAR_OBJ_FUN (a ^ b);
++ case SLANG_BOR:
++ return PUSH_SCALAR_OBJ_FUN (a | b);
++ case SLANG_SHL:
++ return PUSH_SCALAR_OBJ_FUN (a &lt;&lt; b);
++ case SLANG_SHR:
++ return PUSH_SCALAR_OBJ_FUN (a &gt;&gt; b);
++#endif
++ case SLANG_GT: return SLclass_push_char_obj (SLANG_CHAR_TYPE, (char)(a &gt; b));
++ case SLANG_LT: return SLclass_push_char_obj (SLANG_CHAR_TYPE, (char)(a &lt; b));
++ case SLANG_GE: return SLclass_push_char_obj (SLANG_CHAR_TYPE, (char)(a &gt;= b));
++ case SLANG_LE: return SLclass_push_char_obj (SLANG_CHAR_TYPE, (char)(a &lt;= b));
++ case SLANG_EQ: return SLclass_push_char_obj (SLANG_CHAR_TYPE, (char)(a == b));
++ case SLANG_NE: return SLclass_push_char_obj (SLANG_CHAR_TYPE, (char)(a != b));
++ case SLANG_OR: return SLclass_push_char_obj (SLANG_CHAR_TYPE, (char)(a || b));
++ case SLANG_AND: return SLclass_push_char_obj (SLANG_CHAR_TYPE, (char)(a &amp;&amp; b));
++ }
++}
++
++#endif /* SCALAR_BINARY_FUNCTION */
++
++#ifdef CMP_FUNCTION
++static int CMP_FUNCTION (unsigned char unused, VOID_STAR a, VOID_STAR b, int *c)
++{
++ GENERIC_TYPE x, y;
++
++ (void) unused;
++ x = *(GENERIC_TYPE *) a;
++ y = *(GENERIC_TYPE *) b;
++
++ if (x &gt; y) *c = 1;
++ else if (x == y) *c = 0;
++ else *c = -1;
++
++ return 0;
++}
++#endif
++
++#undef CMP_FUNCTION
++#undef SCALAR_BINARY_FUNCTION
++#undef PUSH_POW_OBJ_FUN
++#undef PUSH_SCALAR_OBJ_FUN
++#undef GENERIC_BINARY_FUNCTION
++#undef GENERIC_UNARY_FUNCTION
++#undef GENERIC_BIT_OPERATIONS
++#undef GENERIC_TYPE
++#undef POW_FUNCTION
++#undef POW_RESULT_TYPE
++#undef MOD_FUNCTION
++#undef ABS_FUNCTION
++#undef SIGN_FUNCTION
+
+<a id="drakxtrunkmdkstage1slangslarrayc">Added: drakx/trunk/mdk-stage1/slang/slarray.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/slang/slarray.c (rev 0)
++++ drakx/trunk/mdk-stage1/slang/slarray.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,3139 @@
++/* Array manipulation routines for S-Lang */
++/* Copyright (c) 1997, 1999, 2001 John E. Davis
++ * This file is part of the S-Lang library.
++ *
++ * You may distribute under the terms of either the GNU General Public
++ * License or the Perl Artistic License.
++ */
++
++#include &quot;slinclud.h&quot;
++
++#define SL_APP_WANTS_FOREACH
++#include &quot;slang.h&quot;
++#include &quot;_slang.h&quot;
++
++typedef struct
++{
++ int first_index;
++ int last_index;
++ int delta;
++}
++SLarray_Range_Array_Type;
++
++/* Use SLang_pop_array when a linear array is required. */
++static int pop_array (SLang_Array_Type **at_ptr, int convert_scalar)
++{
++ SLang_Array_Type *at;
++ int one = 1;
++ int type;
++
++ *at_ptr = NULL;
++ type = SLang_peek_at_stack ();
++
++ switch (type)
++ {
++ case -1:
++ return -1;
++
++ case SLANG_ARRAY_TYPE:
++ return SLclass_pop_ptr_obj (SLANG_ARRAY_TYPE, (VOID_STAR *) at_ptr);
++
++ case SLANG_NULL_TYPE:
++ convert_scalar = 0;
++ /* drop */
++ default:
++ if (convert_scalar == 0)
++ {
++ SLdo_pop ();
++ SLang_verror (SL_TYPE_MISMATCH, &quot;Context requires an array. Scalar not converted&quot;);
++ return -1;
++ }
++ break;
++ }
++
++ if (NULL == (at = SLang_create_array ((unsigned char) type, 0, NULL, &amp;one, 1)))
++ return -1;
++
++ if (-1 == at-&gt;cl-&gt;cl_apop ((unsigned char) type, at-&gt;data))
++ {
++ SLang_free_array (at);
++ return -1;
++ }
++
++ *at_ptr = at;
++
++ return 0;
++}
++
++static VOID_STAR linear_get_data_addr (SLang_Array_Type *at, int *dims)
++{
++ unsigned int num_dims;
++ unsigned int ofs;
++ unsigned int i;
++ int *max_dims;
++
++ ofs = 0;
++ max_dims = at-&gt;dims;
++ num_dims = at-&gt;num_dims;
++
++ for (i = 0; i &lt; num_dims; i++)
++ {
++ int d = dims[i];
++
++ if (d &lt; 0)
++ d = d + max_dims[i];
++
++ ofs = ofs * (unsigned int)max_dims [i] + (unsigned int) d;
++ }
++
++ return (VOID_STAR) ((char *)at-&gt;data + (ofs * at-&gt;sizeof_type));
++}
++
++static VOID_STAR get_data_addr (SLang_Array_Type *at, int *dims)
++{
++ VOID_STAR data;
++
++ data = at-&gt;data;
++ if (data == NULL)
++ {
++ SLang_verror (SL_UNKNOWN_ERROR, &quot;Array has no data&quot;);
++ return NULL;
++ }
++
++ data = (*at-&gt;index_fun) (at, dims);
++
++ if (data == NULL)
++ {
++ SLang_verror (SL_UNKNOWN_ERROR, &quot;Unable to access array element&quot;);
++ return NULL;
++ }
++
++ return data;
++}
++
++void _SLarray_free_array_elements (SLang_Class_Type *cl, VOID_STAR s, unsigned int num)
++{
++ unsigned int sizeof_type;
++ void (*f) (unsigned char, VOID_STAR);
++ char *p;
++ unsigned char type;
++
++ if ((cl-&gt;cl_class_type == SLANG_CLASS_TYPE_SCALAR)
++ || (cl-&gt;cl_class_type == SLANG_CLASS_TYPE_VECTOR))
++ return;
++
++ f = cl-&gt;cl_destroy;
++ sizeof_type = cl-&gt;cl_sizeof_type;
++ type = cl-&gt;cl_data_type;
++
++ p = (char *) s;
++ while (num != 0)
++ {
++ if (NULL != *(VOID_STAR *)p)
++ {
++ (*f) (type, (VOID_STAR)p);
++ *(VOID_STAR *) p = NULL;
++ }
++ p += sizeof_type;
++ num--;
++ }
++}
++
++static int destroy_element (SLang_Array_Type *at,
++ int *dims,
++ VOID_STAR data)
++{
++ data = get_data_addr (at, dims);
++ if (data == NULL)
++ return -1;
++
++ /* This function should only get called for arrays that have
++ * pointer elements. Do not call the destroy method if the element
++ * is NULL.
++ */
++ if (NULL != *(VOID_STAR *)data)
++ {
++ (*at-&gt;cl-&gt;cl_destroy) (at-&gt;data_type, data);
++ *(VOID_STAR *) data = NULL;
++ }
++ return 0;
++}
++
++/* This function only gets called when a new array is created. Thus there
++ * is no need to destroy the object first.
++ */
++static int new_object_element (SLang_Array_Type *at,
++ int *dims,
++ VOID_STAR data)
++{
++ data = get_data_addr (at, dims);
++ if (data == NULL)
++ return -1;
++
++ return (*at-&gt;cl-&gt;cl_init_array_object) (at-&gt;data_type, data);
++}
++
++static int next_index (int *dims, int *max_dims, unsigned int num_dims)
++{
++ while (num_dims)
++ {
++ int dims_i;
++
++ num_dims--;
++
++ dims_i = dims [num_dims] + 1;
++ if (dims_i != (int) max_dims [num_dims])
++ {
++ dims [num_dims] = dims_i;
++ return 0;
++ }
++ dims [num_dims] = 0;
++ }
++
++ return -1;
++}
++
++static int do_method_for_all_elements (SLang_Array_Type *at,
++ int (*method)(SLang_Array_Type *,
++ int *,
++ VOID_STAR),
++ VOID_STAR client_data)
++{
++ int dims [SLARRAY_MAX_DIMS];
++ int *max_dims;
++ unsigned int num_dims;
++
++ if (at-&gt;num_elements == 0)
++ return 0;
++
++ max_dims = at-&gt;dims;
++ num_dims = at-&gt;num_dims;
++
++ SLMEMSET((char *)dims, 0, sizeof(dims));
++
++ do
++ {
++ if (-1 == (*method) (at, dims, client_data))
++ return -1;
++ }
++ while (0 == next_index (dims, max_dims, num_dims));
++
++ return 0;
++}
++
++void SLang_free_array (SLang_Array_Type *at)
++{
++ VOID_STAR data;
++ unsigned int flags;
++
++ if (at == NULL) return;
++
++ if (at-&gt;num_refs &gt; 1)
++ {
++ at-&gt;num_refs -= 1;
++ return;
++ }
++
++ data = at-&gt;data;
++ flags = at-&gt;flags;
++
++ if (flags &amp; SLARR_DATA_VALUE_IS_INTRINSIC)
++ return; /* not to be freed */
++
++ if (flags &amp; SLARR_DATA_VALUE_IS_POINTER)
++ (void) do_method_for_all_elements (at, destroy_element, NULL);
++
++ SLfree ((char *) data);
++ SLfree ((char *) at);
++}
++
++SLang_Array_Type *
++SLang_create_array1 (unsigned char type, int read_only, VOID_STAR data,
++ int *dims, unsigned int num_dims, int no_init)
++{
++ SLang_Class_Type *cl;
++ unsigned int i;
++ SLang_Array_Type *at;
++ unsigned int num_elements;
++ unsigned int sizeof_type;
++ unsigned int size;
++
++ if (num_dims &gt; SLARRAY_MAX_DIMS)
++ {
++ SLang_verror (SL_NOT_IMPLEMENTED, &quot;%u dimensional arrays are not supported&quot;, num_dims);
++ return NULL;
++ }
++
++ for (i = 0; i &lt; num_dims; i++)
++ {
++ if (dims[i] &lt; 0)
++ {
++ SLang_verror (SL_INVALID_PARM, &quot;Size of array dim %u is less than 0&quot;, i);
++ return NULL;
++ }
++ }
++
++ cl = _SLclass_get_class (type);
++
++ at = (SLang_Array_Type *) SLmalloc (sizeof(SLang_Array_Type));
++ if (at == NULL)
++ return NULL;
++
++ SLMEMSET ((char*) at, 0, sizeof(SLang_Array_Type));
++
++ at-&gt;data_type = type;
++ at-&gt;cl = cl;
++ at-&gt;num_dims = num_dims;
++ at-&gt;num_refs = 1;
++
++ if (read_only) at-&gt;flags = SLARR_DATA_VALUE_IS_READ_ONLY;
++ switch (cl-&gt;cl_class_type)
++ {
++ case SLANG_CLASS_TYPE_VECTOR:
++ case SLANG_CLASS_TYPE_SCALAR:
++ break;
++
++ default:
++ at-&gt;flags |= SLARR_DATA_VALUE_IS_POINTER;
++ }
++
++ num_elements = 1;
++ for (i = 0; i &lt; num_dims; i++)
++ {
++ at-&gt;dims [i] = dims[i];
++ num_elements = dims [i] * num_elements;
++ }
++
++ /* Now set the rest of the unused dimensions to 1. This makes it easier
++ * when transposing arrays.
++ */
++ while (i &lt; SLARRAY_MAX_DIMS)
++ at-&gt;dims[i++] = 1;
++
++ at-&gt;num_elements = num_elements;
++ at-&gt;index_fun = linear_get_data_addr;
++ at-&gt;sizeof_type = sizeof_type = cl-&gt;cl_sizeof_type;
++
++ if (data != NULL)
++ {
++ at-&gt;data = data;
++ return at;
++ }
++
++ size = num_elements * sizeof_type;
++
++ if (size == 0) size = 1;
++
++ if (NULL == (data = (VOID_STAR) SLmalloc (size)))
++ {
++ SLang_free_array (at);
++ return NULL;
++ }
++
++ if (no_init == 0)
++ SLMEMSET ((char *) data, 0, size);
++
++ at-&gt;data = data;
++
++ if ((cl-&gt;cl_init_array_object != NULL)
++ &amp;&amp; (-1 == do_method_for_all_elements (at, new_object_element, NULL)))
++ {
++ SLang_free_array (at);
++ return NULL;
++ }
++ return at;
++}
++
++SLang_Array_Type *
++SLang_create_array (unsigned char type, int read_only, VOID_STAR data,
++ int *dims, unsigned int num_dims)
++{
++ return SLang_create_array1 (type, read_only, data, dims, num_dims, 0);
++}
++
++int SLang_add_intrinsic_array (char *name,
++ unsigned char type,
++ int read_only,
++ VOID_STAR data,
++ unsigned int num_dims, ...)
++{
++ va_list ap;
++ unsigned int i;
++ int dims[SLARRAY_MAX_DIMS];
++ SLang_Array_Type *at;
++
++ if ((num_dims &gt; SLARRAY_MAX_DIMS)
++ || (name == NULL)
++ || (data == NULL))
++ {
++ SLang_verror (SL_INVALID_PARM, &quot;Unable to create intrinsic array&quot;);
++ return -1;
++ }
++
++ va_start (ap, num_dims);
++ for (i = 0; i &lt; num_dims; i++)
++ dims [i] = va_arg (ap, int);
++ va_end (ap);
++
++ at = SLang_create_array (type, read_only, data, dims, num_dims);
++ if (at == NULL)
++ return -1;
++ at-&gt;flags |= SLARR_DATA_VALUE_IS_INTRINSIC;
++
++ /* Note: The variable that refers to the intrinsic array is regarded as
++ * read-only. That way, Array_Name = another_array; will fail.
++ */
++ if (-1 == SLadd_intrinsic_variable (name, (VOID_STAR) at, SLANG_ARRAY_TYPE, 1))
++ {
++ SLang_free_array (at);
++ return -1;
++ }
++ return 0;
++}
++
++static int pop_array_indices (int *dims, unsigned int num_dims)
++{
++ unsigned int n;
++ int i;
++
++ if (num_dims &gt; SLARRAY_MAX_DIMS)
++ {
++ SLang_verror (SL_INVALID_PARM, &quot;Array size not supported&quot;);
++ return -1;
++ }
++
++ n = num_dims;
++ while (n != 0)
++ {
++ n--;
++ if (-1 == SLang_pop_integer (&amp;i))
++ return -1;
++
++ dims[n] = i;
++ }
++
++ return 0;
++}
++
++int SLang_push_array (SLang_Array_Type *at, int free_flag)
++{
++ if (at == NULL)
++ return SLang_push_null ();
++
++ at-&gt;num_refs += 1;
++
++ if (0 == SLclass_push_ptr_obj (SLANG_ARRAY_TYPE, (VOID_STAR) at))
++ {
++ if (free_flag)
++ SLang_free_array (at);
++ return 0;
++ }
++
++ at-&gt;num_refs -= 1;
++
++ if (free_flag) SLang_free_array (at);
++ return -1;
++}
++
++/* This function gets called via expressions such as Double_Type[10, 20];
++ */
++static int push_create_new_array (void)
++{
++ unsigned int num_dims;
++ SLang_Array_Type *at;
++ unsigned char type;
++ int dims [SLARRAY_MAX_DIMS];
++ int (*anew) (unsigned char, unsigned int);
++
++ num_dims = (SLang_Num_Function_Args - 1);
++
++ if (-1 == _SLang_pop_datatype (&amp;type))
++ return -1;
++
++ anew = (_SLclass_get_class (type))-&gt;cl_anew;
++ if (anew != NULL)
++ return (*anew) (type, num_dims);
++
++ if (-1 == pop_array_indices (dims, num_dims))
++ return -1;
++
++ if (NULL == (at = SLang_create_array (type, 0, NULL, dims, num_dims)))
++ return -1;
++
++ return SLang_push_array (at, 1);
++}
++
++static int push_element_at_addr (SLang_Array_Type *at,
++ VOID_STAR data, int allow_null)
++{
++ SLang_Class_Type *cl;
++
++ cl = at-&gt;cl;
++ if ((at-&gt;flags &amp; SLARR_DATA_VALUE_IS_POINTER)
++ &amp;&amp; (*(VOID_STAR *) data == NULL))
++ {
++ if (allow_null)
++ return SLang_push_null ();
++
++ SLang_verror (SL_VARIABLE_UNINITIALIZED,
++ &quot;%s array has unitialized element&quot;, cl-&gt;cl_name);
++ return -1;
++ }
++
++ return (*cl-&gt;cl_apush)(at-&gt;data_type, data);
++}
++
++static int coerse_array_to_linear (SLang_Array_Type *at)
++{
++ SLarray_Range_Array_Type *range;
++ int *data;
++ int xmin, dx;
++ unsigned int i, imax;
++
++ /* FIXME: Priority = low. This assumes that if an array is not linear, then
++ * it is a range.
++ */
++ if (0 == (at-&gt;flags &amp; SLARR_DATA_VALUE_IS_RANGE))
++ return 0;
++
++ range = (SLarray_Range_Array_Type *) at-&gt;data;
++ xmin = range-&gt;first_index;
++ dx = range-&gt;delta;
++
++ imax = at-&gt;num_elements;
++ data = (int *) SLmalloc ((imax + 1) * sizeof (int));
++ if (data == NULL)
++ return -1;
++
++ for (i = 0; i &lt; imax; i++)
++ {
++ data [i] = xmin;
++ xmin += dx;
++ }
++
++ SLfree ((char *) range);
++ at-&gt;data = (VOID_STAR) data;
++ at-&gt;flags &amp;= ~SLARR_DATA_VALUE_IS_RANGE;
++ at-&gt;index_fun = linear_get_data_addr;
++ return 0;
++}
++
++static void
++free_index_objects (SLang_Object_Type *index_objs, unsigned int num_indices)
++{
++ unsigned int i;
++ SLang_Object_Type *obj;
++
++ for (i = 0; i &lt; num_indices; i++)
++ {
++ obj = index_objs + i;
++ if (obj-&gt;data_type != 0)
++ SLang_free_object (obj);
++ }
++}
++
++static int
++pop_indices (SLang_Object_Type *index_objs, unsigned int num_indices,
++ int *is_index_array)
++{
++ unsigned int i;
++
++ SLMEMSET((char *) index_objs, 0, num_indices * sizeof (SLang_Object_Type));
++
++ *is_index_array = 0;
++
++ if (num_indices &gt;= SLARRAY_MAX_DIMS)
++ {
++ SLang_verror (SL_INVALID_PARM, &quot;too many indices for array&quot;);
++ return -1;
++ }
++
++ i = num_indices;
++ while (i != 0)
++ {
++ SLang_Object_Type *obj;
++
++ i--;
++ obj = index_objs + i;
++ if (-1 == _SLang_pop_object_of_type (SLANG_INT_TYPE, obj, 1))
++ goto return_error;
++
++ if (obj-&gt;data_type == SLANG_ARRAY_TYPE)
++ {
++ SLang_Array_Type *at = obj-&gt;v.array_val;
++
++ if (at-&gt;num_dims == 1)
++ {
++ if ((num_indices == 1)
++ &amp;&amp; (0 == (at-&gt;flags &amp; SLARR_DATA_VALUE_IS_RANGE)))
++ *is_index_array = 1;
++ }
++ else
++ {
++ SLang_verror (SL_INVALID_PARM, &quot;expecting a 1-d index array&quot;);
++ goto return_error;
++ }
++ }
++ }
++
++ return 0;
++
++ return_error:
++ free_index_objects (index_objs, num_indices);
++ return -1;
++}
++
++/* Here ind_at is a linear 1-d array of indices */
++static int
++check_index_array_ranges (SLang_Array_Type *at, SLang_Array_Type *ind_at)
++{
++ int *indices, *indices_max;
++ unsigned int num_elements;
++
++ num_elements = at-&gt;num_elements;
++ indices = (int *) ind_at-&gt;data;
++ indices_max = indices + ind_at-&gt;num_elements;
++
++ while (indices &lt; indices_max)
++ {
++ unsigned int d;
++
++ d = (unsigned int) *indices++;
++ if (d &gt;= num_elements)
++ {
++ SLang_verror (SL_INVALID_PARM,
++ &quot;index-array is out of range&quot;);
++ return -1;
++ }
++ }
++ return 0;
++}
++
++static int
++transfer_n_elements (SLang_Array_Type *at, VOID_STAR dest_data, VOID_STAR src_data,
++ unsigned int sizeof_type, unsigned int n, int is_ptr)
++{
++ unsigned char data_type;
++ SLang_Class_Type *cl;
++
++ if (is_ptr == 0)
++ {
++ SLMEMCPY ((char *) dest_data, (char *)src_data, n * sizeof_type);
++ return 0;
++ }
++
++ data_type = at-&gt;data_type;
++ cl = at-&gt;cl;
++
++ while (n != 0)
++ {
++ if (*(VOID_STAR *)dest_data != NULL)
++ {
++ (*cl-&gt;cl_destroy) (data_type, dest_data);
++ *(VOID_STAR *) dest_data = NULL;
++ }
++
++ if (*(VOID_STAR *) src_data == NULL)
++ *(VOID_STAR *) dest_data = NULL;
++ else
++ {
++ if (-1 == (*cl-&gt;cl_acopy) (data_type, src_data, dest_data))
++ /* No need to destroy anything */
++ return -1;
++ }
++
++ src_data = (VOID_STAR) ((char *)src_data + sizeof_type);
++ dest_data = (VOID_STAR) ((char *)dest_data + sizeof_type);
++
++ n--;
++ }
++
++ return 0;
++}
++
++int
++_SLarray_aget_transfer_elem (SLang_Array_Type *at, int *indices,
++ VOID_STAR new_data, unsigned int sizeof_type, int is_ptr)
++{
++ VOID_STAR at_data;
++
++ /* Since 1 element is being transferred, there is not need to coerse
++ * the array to linear.
++ */
++ if (NULL == (at_data = get_data_addr (at, indices)))
++ return -1;
++
++ return transfer_n_elements (at, new_data, at_data, sizeof_type, 1, is_ptr);
++}
++
++/* Here the ind_at index-array is a 1-d array of indices. This function
++ * creates a 1-d array of made up of values of 'at' at the locations
++ * specified by the indices. The result is pushed.
++ */
++static int
++aget_from_index_array (SLang_Array_Type *at,
++ SLang_Array_Type *ind_at)
++{
++ SLang_Array_Type *new_at;
++ int *indices, *indices_max;
++ unsigned char *new_data, *src_data;
++ unsigned int sizeof_type;
++ int is_ptr;
++
++ if (-1 == coerse_array_to_linear (at))
++ return -1;
++
++ if (-1 == coerse_array_to_linear (ind_at))
++ return -1;
++
++ if (-1 == check_index_array_ranges (at, ind_at))
++ return -1;
++
++ if (NULL == (new_at = SLang_create_array (at-&gt;data_type, 0, NULL, ind_at-&gt;dims, 1)))
++ return -1;
++
++ /* Since the index array is linear, I can address it directly */
++ indices = (int *) ind_at-&gt;data;
++ indices_max = indices + ind_at-&gt;num_elements;
++
++ src_data = (unsigned char *) at-&gt;data;
++ new_data = (unsigned char *) new_at-&gt;data;
++ sizeof_type = new_at-&gt;sizeof_type;
++ is_ptr = (new_at-&gt;flags &amp; SLARR_DATA_VALUE_IS_POINTER);
++
++ while (indices &lt; indices_max)
++ {
++ unsigned int offset;
++
++ offset = sizeof_type * (unsigned int)*indices;
++ if (-1 == transfer_n_elements (at, (VOID_STAR) new_data,
++ (VOID_STAR) (src_data + offset),
++ sizeof_type, 1, is_ptr))
++ {
++ SLang_free_array (new_at);
++ return -1;
++ }
++
++ new_data += sizeof_type;
++ indices++;
++ }
++
++ return SLang_push_array (new_at, 1);
++}
++
++/* This is extremely ugly. It is due to the fact that the index_objects
++ * may contain ranges. This is a utility function for the aget/aput
++ * routines
++ */
++static int
++convert_nasty_index_objs (SLang_Array_Type *at,
++ SLang_Object_Type *index_objs,
++ unsigned int num_indices,
++ int **index_data,
++ int *range_buf, int *range_delta_buf,
++ int *max_dims,
++ unsigned int *num_elements,
++ int *is_array, int is_dim_array[SLARRAY_MAX_DIMS])
++{
++ unsigned int i, total_num_elements;
++ SLang_Array_Type *ind_at;
++
++ if (num_indices != at-&gt;num_dims)
++ {
++ SLang_verror (SL_INVALID_PARM, &quot;Array requires %u indices&quot;, at-&gt;num_dims);
++ return -1;
++ }
++
++ *is_array = 0;
++ total_num_elements = 1;
++ for (i = 0; i &lt; num_indices; i++)
++ {
++ int max_index, min_index;
++ SLang_Object_Type *obj;
++ int at_dims_i;
++
++ at_dims_i = at-&gt;dims[i];
++ obj = index_objs + i;
++ range_delta_buf [i] = 0;
++
++ if (obj-&gt;data_type == SLANG_INT_TYPE)
++ {
++ range_buf [i] = min_index = max_index = obj-&gt;v.int_val;
++ max_dims [i] = 1;
++ index_data[i] = range_buf + i;
++ is_dim_array[i] = 0;
++ }
++ else
++ {
++ *is_array = 1;
++ is_dim_array[i] = 1;
++ ind_at = obj-&gt;v.array_val;
++
++ if (ind_at-&gt;flags &amp; SLARR_DATA_VALUE_IS_RANGE)
++ {
++ SLarray_Range_Array_Type *r;
++ int delta;
++ int first_index, last_index;
++
++ r = (SLarray_Range_Array_Type *) ind_at-&gt;data;
++
++ /* In an array indexing context, range arrays have different
++ * semantics. Consider a[[0:10]]. Clearly this means elements
++ * 0-10 of a. But what does a[[0:-1]] mean? By itself,
++ * [0:-1] is a null matrix []. But, it is useful in an
++ * indexing context to allow -1 to refer to the last element
++ * of the array. Similarly, [-3:-1] refers to the last 3
++ * elements.
++ *
++ * However, [-1:-3] does not refer to any of the elements.
++ */
++ if ((first_index = r-&gt;first_index) &lt; 0)
++ {
++ if (at_dims_i != 0)
++ first_index = (at_dims_i + first_index) % at_dims_i;
++ }
++
++ if ((last_index = r-&gt;last_index) &lt; 0)
++ {
++ if (at_dims_i != 0)
++ last_index = (at_dims_i + last_index) % at_dims_i;
++ }
++
++ delta = r-&gt;delta;
++
++ range_delta_buf [i] = delta;
++ range_buf[i] = first_index;
++
++ if (delta &gt; 0)
++ {
++ if (first_index &gt; last_index)
++ max_dims[i] = min_index = max_index = 0;
++ else
++ {
++ max_index = min_index = first_index;
++ while (max_index + delta &lt;= last_index)
++ max_index += delta;
++ max_dims [i] = 1 + (max_index - min_index) / delta;
++ }
++ }
++ else
++ {
++ if (first_index &lt; last_index)
++ max_dims[i] = min_index = max_index = 0;
++ else
++ {
++ min_index = max_index = first_index;
++ while (min_index + delta &gt;= last_index)
++ min_index += delta;
++ max_dims [i] = 1 + (max_index - min_index) / (-delta);
++ }
++ }
++ }
++ else
++ {
++ int *tmp, *tmp_max;
++
++ if (0 == (max_dims[i] = ind_at-&gt;num_elements))
++ {
++ total_num_elements = 0;
++ break;
++ }
++
++ tmp = (int *) ind_at-&gt;data;
++ tmp_max = tmp + ind_at-&gt;num_elements;
++ index_data [i] = tmp;
++
++ min_index = max_index = *tmp;
++ while (tmp &lt; tmp_max)
++ {
++ if (max_index &gt; *tmp)
++ max_index = *tmp;
++ if (min_index &lt; *tmp)
++ min_index = *tmp;
++
++ tmp++;
++ }
++ }
++ }
++
++ if ((at_dims_i == 0) &amp;&amp; (max_dims[i] == 0))
++ {
++ total_num_elements = 0;
++ continue;
++ }
++
++ if (max_index &lt; 0)
++ max_index += at_dims_i;
++ if (min_index &lt; 0)
++ min_index += at_dims_i;
++
++ if ((min_index &lt; 0) || (min_index &gt;= at_dims_i)
++ || (max_index &lt; 0) || (max_index &gt;= at_dims_i))
++ {
++ SLang_verror (SL_INVALID_PARM, &quot;Array index %u ([%d:%d]) out of allowed range [0-&gt;%d]&quot;,
++ i, min_index, max_index, at_dims_i);
++ return -1;
++ }
++
++ total_num_elements = total_num_elements * max_dims[i];
++ }
++
++ *num_elements = total_num_elements;
++ return 0;
++}
++
++/* This routine pushes a 1-d vector of values from 'at' indexed by
++ * the objects 'index_objs'. These objects can either be integers or
++ * 1-d integer arrays. The fact that the 1-d arrays can be ranges
++ * makes this look ugly.
++ */
++static int
++aget_from_indices (SLang_Array_Type *at,
++ SLang_Object_Type *index_objs, unsigned int num_indices)
++{
++ int *index_data [SLARRAY_MAX_DIMS];
++ int range_buf [SLARRAY_MAX_DIMS];
++ int range_delta_buf [SLARRAY_MAX_DIMS];
++ int max_dims [SLARRAY_MAX_DIMS];
++ unsigned int i, num_elements;
++ SLang_Array_Type *new_at;
++ int map_indices[SLARRAY_MAX_DIMS];
++ int indices [SLARRAY_MAX_DIMS];
++ unsigned int sizeof_type;
++ int is_ptr, ret, is_array;
++ char *new_data;
++ SLang_Class_Type *cl;
++ int is_dim_array[SLARRAY_MAX_DIMS];
++
++ if (-1 == convert_nasty_index_objs (at, index_objs, num_indices,
++ index_data, range_buf, range_delta_buf,
++ max_dims, &amp;num_elements, &amp;is_array,
++ is_dim_array))
++ return -1;
++
++ is_ptr = (at-&gt;flags &amp; SLARR_DATA_VALUE_IS_POINTER);
++ sizeof_type = at-&gt;sizeof_type;
++
++ cl = _SLclass_get_class (at-&gt;data_type);
++
++ if ((is_array == 0) &amp;&amp; (num_elements == 1))
++ {
++ new_data = (char *)cl-&gt;cl_transfer_buf;
++ memset (new_data, 0, sizeof_type);
++ new_at = NULL;
++ }
++ else
++ {
++ int i_num_elements = (int)num_elements;
++
++ new_at = SLang_create_array (at-&gt;data_type, 0, NULL, &amp;i_num_elements, 1);
++ if (NULL == new_at)
++ return -1;
++ if (num_elements == 0)
++ return SLang_push_array (new_at, 1);
++
++ new_data = (char *)new_at-&gt;data;
++ }
++
++ SLMEMSET((char *) map_indices, 0, sizeof(map_indices));
++ do
++ {
++ for (i = 0; i &lt; num_indices; i++)
++ {
++ int j;
++
++ j = map_indices[i];
++
++ if (0 != range_delta_buf[i])
++ indices[i] = range_buf[i] + j * range_delta_buf[i];
++ else
++ indices[i] = index_data [i][j];
++ }
++
++ if (-1 == _SLarray_aget_transfer_elem (at, indices, (VOID_STAR)new_data, sizeof_type, is_ptr))
++ {
++ SLang_free_array (new_at);
++ return -1;
++ }
++ new_data += sizeof_type;
++ }
++ while (0 == next_index (map_indices, max_dims, num_indices));
++
++ if (new_at != NULL)
++ {
++ int num_dims = 0;
++ /* Fixup dimensions on array */
++ for (i = 0; i &lt; num_indices; i++)
++ {
++ if (is_dim_array[i]) /* was: (max_dims[i] &gt; 1) */
++ {
++ new_at-&gt;dims[num_dims] = max_dims[i];
++ num_dims++;
++ }
++ }
++
++ if (num_dims != 0) new_at-&gt;num_dims = num_dims;
++ return SLang_push_array (new_at, 1);
++ }
++
++ /* Here new_data is a whole new copy, so free it after the push */
++ new_data -= sizeof_type;
++ if (is_ptr &amp;&amp; (*(VOID_STAR *)new_data == NULL))
++ ret = SLang_push_null ();
++ else
++ {
++ ret = (*cl-&gt;cl_apush) (at-&gt;data_type, (VOID_STAR)new_data);
++ (*cl-&gt;cl_adestroy) (at-&gt;data_type, (VOID_STAR)new_data);
++ }
++
++ return ret;
++}
++
++static int push_string_as_array (unsigned char *s, unsigned int len)
++{
++ int ilen;
++ SLang_Array_Type *at;
++
++ ilen = (int) len;
++
++ at = SLang_create_array (SLANG_UCHAR_TYPE, 0, NULL, &amp;ilen, 1);
++ if (at == NULL)
++ return -1;
++
++ memcpy ((char *)at-&gt;data, (char *)s, len);
++ return SLang_push_array (at, 1);
++}
++
++static int pop_array_as_string (char **sp)
++{
++ SLang_Array_Type *at;
++ int ret;
++
++ *sp = NULL;
++
++ if (-1 == SLang_pop_array_of_type (&amp;at, SLANG_UCHAR_TYPE))
++ return -1;
++
++ ret = 0;
++
++ if (NULL == (*sp = SLang_create_nslstring ((char *) at-&gt;data, at-&gt;num_elements)))
++ ret = -1;
++
++ SLang_free_array (at);
++ return ret;
++}
++
++static int pop_array_as_bstring (SLang_BString_Type **bs)
++{
++ SLang_Array_Type *at;
++ int ret;
++
++ *bs = NULL;
++
++ if (-1 == SLang_pop_array_of_type (&amp;at, SLANG_UCHAR_TYPE))
++ return -1;
++
++ ret = 0;
++
++ if (NULL == (*bs = SLbstring_create ((unsigned char *) at-&gt;data, at-&gt;num_elements)))
++ ret = -1;
++
++ SLang_free_array (at);
++ return ret;
++}
++
++static int aget_from_array (unsigned int num_indices)
++{
++ SLang_Array_Type *at;
++ SLang_Object_Type index_objs [SLARRAY_MAX_DIMS];
++ int ret;
++ int is_index_array;
++ unsigned int i;
++
++ if (num_indices &gt; SLARRAY_MAX_DIMS)
++ {
++ SLang_verror (SL_INVALID_PARM, &quot;Number of dims must be less than %d&quot;, SLARRAY_MAX_DIMS);
++ return -1;
++ }
++
++ if (-1 == pop_array (&amp;at, 1))
++ return -1;
++
++ if (-1 == pop_indices (index_objs, num_indices, &amp;is_index_array))
++ {
++ SLang_free_array (at);
++ return -1;
++ }
++
++ if (is_index_array == 0)
++ ret = aget_from_indices (at, index_objs, num_indices);
++ else
++ ret = aget_from_index_array (at, index_objs[0].v.array_val);
++
++ SLang_free_array (at);
++ for (i = 0; i &lt; num_indices; i++)
++ SLang_free_object (index_objs + i);
++
++ return ret;
++}
++
++static int push_string_element (unsigned char type, unsigned char *s, unsigned int len)
++{
++ int i;
++
++ if (SLang_peek_at_stack () == SLANG_ARRAY_TYPE)
++ {
++ char *str;
++
++ /* The indices are array values. So, do this: */
++ if (-1 == push_string_as_array (s, len))
++ return -1;
++
++ if (-1 == aget_from_array (1))
++ return -1;
++
++ if (type == SLANG_BSTRING_TYPE)
++ {
++ SLang_BString_Type *bs;
++ int ret;
++
++ if (-1 == pop_array_as_bstring (&amp;bs))
++ return -1;
++
++ ret = SLang_push_bstring (bs);
++ SLbstring_free (bs);
++ return ret;
++ }
++
++ if (-1 == pop_array_as_string (&amp;str))
++ return -1;
++ return _SLang_push_slstring (str); /* frees s upon error */
++ }
++
++ if (-1 == SLang_pop_integer (&amp;i))
++ return -1;
++
++ if (i &lt; 0) i = i + (int)len;
++ if ((unsigned int) i &gt; len)
++ i = len; /* get \0 character --- bstrings include it as well */
++
++ i = s[(unsigned int) i];
++
++ return SLang_push_integer (i);
++}
++
++/* ARRAY[i, j, k] generates code: __args i j ...k ARRAY __aput/__aget
++ * Here i, j, ... k may be a mixture of integers and 1-d arrays, or
++ * a single 2-d array of indices. The 2-d index array is generated by the
++ * 'where' function.
++ *
++ * If ARRAY is of type DataType, then this function will create an array of
++ * the appropriate type. In that case, the indices i, j, ..., k must be
++ * integers.
++ */
++int _SLarray_aget (void)
++{
++ unsigned int num_indices;
++ int type;
++ int (*aget_fun) (unsigned char, unsigned int);
++
++ num_indices = (SLang_Num_Function_Args - 1);
++
++ type = SLang_peek_at_stack ();
++ switch (type)
++ {
++ case -1:
++ return -1; /* stack underflow */
++
++ case SLANG_DATATYPE_TYPE:
++ return push_create_new_array ();
++
++ case SLANG_BSTRING_TYPE:
++ if (1 == num_indices)
++ {
++ SLang_BString_Type *bs;
++ int ret;
++ unsigned int len;
++ unsigned char *s;
++
++ if (-1 == SLang_pop_bstring (&amp;bs))
++ return -1;
++
++ if (NULL == (s = SLbstring_get_pointer (bs, &amp;len)))
++ ret = -1;
++ else
++ ret = push_string_element (type, s, len);
++
++ SLbstring_free (bs);
++ return ret;
++ }
++ break;
++
++ case SLANG_STRING_TYPE:
++ if (1 == num_indices)
++ {
++ char *s;
++ int ret;
++
++ if (-1 == SLang_pop_slstring (&amp;s))
++ return -1;
++
++ ret = push_string_element (type, (unsigned char *)s, strlen (s));
++ SLang_free_slstring (s);
++ return ret;
++ }
++ break;
++
++ case SLANG_ARRAY_TYPE:
++ break;
++
++ default:
++ aget_fun = _SLclass_get_class (type)-&gt;cl_aget;
++ if (NULL != aget_fun)
++ return (*aget_fun) (type, num_indices);
++ }
++
++ return aget_from_array (num_indices);
++}
++
++int
++_SLarray_aput_transfer_elem (SLang_Array_Type *at, int *indices,
++ VOID_STAR data_to_put, unsigned int sizeof_type, int is_ptr)
++{
++ VOID_STAR at_data;
++
++ /* Since 1 element is being transferred, there is no need to coerse
++ * the array to linear.
++ */
++ if (NULL == (at_data = get_data_addr (at, indices)))
++ return -1;
++
++ return transfer_n_elements (at, at_data, data_to_put, sizeof_type, 1, is_ptr);
++}
++
++static int
++aput_get_array_to_put (SLang_Class_Type *cl, unsigned int num_elements, int allow_array,
++ SLang_Array_Type **at_ptr, char **data_to_put, unsigned int *data_increment)
++{
++ unsigned char data_type;
++ SLang_Array_Type *at;
++
++ *at_ptr = NULL;
++
++ data_type = cl-&gt;cl_data_type;
++ if (-1 == SLclass_typecast (data_type, 1, allow_array))
++ return -1;
++
++ if ((data_type != SLANG_ARRAY_TYPE)
++ &amp;&amp; (data_type != SLANG_ANY_TYPE)
++ &amp;&amp; (SLANG_ARRAY_TYPE == SLang_peek_at_stack ()))
++ {
++ if (-1 == SLang_pop_array (&amp;at, 0))
++ return -1;
++
++ if ((at-&gt;num_elements != num_elements)
++#if 0
++ || (at-&gt;num_dims != 1)
++#endif
++ )
++ {
++ SLang_verror (SL_TYPE_MISMATCH, &quot;Array size is inappropriate for use with index-array&quot;);
++ SLang_free_array (at);
++ return -1;
++ }
++
++ *data_to_put = (char *) at-&gt;data;
++ *data_increment = at-&gt;sizeof_type;
++ *at_ptr = at;
++ return 0;
++ }
++
++ *data_increment = 0;
++ *data_to_put = (char *) cl-&gt;cl_transfer_buf;
++
++ if (-1 == (*cl-&gt;cl_apop)(data_type, (VOID_STAR) *data_to_put))
++ return -1;
++
++ return 0;
++}
++
++static int
++aput_from_indices (SLang_Array_Type *at,
++ SLang_Object_Type *index_objs, unsigned int num_indices)
++{
++ int *index_data [SLARRAY_MAX_DIMS];
++ int range_buf [SLARRAY_MAX_DIMS];
++ int range_delta_buf [SLARRAY_MAX_DIMS];
++ int max_dims [SLARRAY_MAX_DIMS];
++ unsigned int i, num_elements;
++ SLang_Array_Type *bt;
++ int map_indices[SLARRAY_MAX_DIMS];
++ int indices [SLARRAY_MAX_DIMS];
++ unsigned int sizeof_type;
++ int is_ptr, is_array, ret;
++ char *data_to_put;
++ unsigned int data_increment;
++ SLang_Class_Type *cl;
++ int is_dim_array [SLARRAY_MAX_DIMS];
++
++ if (-1 == convert_nasty_index_objs (at, index_objs, num_indices,
++ index_data, range_buf, range_delta_buf,
++ max_dims, &amp;num_elements, &amp;is_array,
++ is_dim_array))
++ return -1;
++
++ cl = at-&gt;cl;
++
++ if (-1 == aput_get_array_to_put (cl, num_elements, is_array,
++ &amp;bt, &amp;data_to_put, &amp;data_increment))
++ return -1;
++
++ sizeof_type = at-&gt;sizeof_type;
++ is_ptr = (at-&gt;flags &amp; SLARR_DATA_VALUE_IS_POINTER);
++
++ ret = -1;
++
++ SLMEMSET((char *) map_indices, 0, sizeof(map_indices));
++ if (num_elements) do
++ {
++ for (i = 0; i &lt; num_indices; i++)
++ {
++ int j;
++
++ j = map_indices[i];
++
++ if (0 != range_delta_buf[i])
++ indices[i] = range_buf[i] + j * range_delta_buf[i];
++ else
++ indices[i] = index_data [i][j];
++ }
++
++ if (-1 == _SLarray_aput_transfer_elem (at, indices, (VOID_STAR)data_to_put, sizeof_type, is_ptr))
++ goto return_error;
++
++ data_to_put += data_increment;
++ }
++ while (0 == next_index (map_indices, max_dims, num_indices));
++
++ ret = 0;
++
++ /* drop */
++
++ return_error:
++ if (bt == NULL)
++ {
++ if (is_ptr)
++ (*cl-&gt;cl_destroy) (cl-&gt;cl_data_type, (VOID_STAR) data_to_put);
++ }
++ else SLang_free_array (bt);
++
++ return ret;
++}
++
++static int
++aput_from_index_array (SLang_Array_Type *at, SLang_Array_Type *ind_at)
++{
++ int *indices, *indices_max;
++ unsigned int sizeof_type;
++ char *data_to_put, *dest_data;
++ unsigned int data_increment;
++ int is_ptr;
++ SLang_Array_Type *bt;
++ SLang_Class_Type *cl;
++ int ret;
++
++ if (-1 == coerse_array_to_linear (at))
++ return -1;
++
++ if (-1 == coerse_array_to_linear (ind_at))
++ return -1;
++
++ if (-1 == check_index_array_ranges (at, ind_at))
++ return -1;
++
++ sizeof_type = at-&gt;sizeof_type;
++
++ cl = at-&gt;cl;
++
++ /* Note that if bt is returned as non NULL, then the array is a linear
++ * one.
++ */
++ if (-1 == aput_get_array_to_put (cl, ind_at-&gt;num_elements, 1,
++ &amp;bt, &amp;data_to_put, &amp;data_increment))
++ return -1;
++
++ /* Since the index array is linear, I can address it directly */
++ indices = (int *) ind_at-&gt;data;
++ indices_max = indices + ind_at-&gt;num_elements;
++
++ is_ptr = (at-&gt;flags &amp; SLARR_DATA_VALUE_IS_POINTER);
++ dest_data = (char *) at-&gt;data;
++
++ ret = -1;
++ while (indices &lt; indices_max)
++ {
++ unsigned int offset;
++
++ offset = sizeof_type * (unsigned int)*indices;
++
++ if (-1 == transfer_n_elements (at, (VOID_STAR) (dest_data + offset),
++ (VOID_STAR) data_to_put, sizeof_type, 1,
++ is_ptr))
++ goto return_error;
++
++ indices++;
++ data_to_put += data_increment;
++ }
++
++ ret = 0;
++ /* Drop */
++
++ return_error:
++
++ if (bt == NULL)
++ {
++ if (is_ptr)
++ (*cl-&gt;cl_destroy) (cl-&gt;cl_data_type, (VOID_STAR)data_to_put);
++ }
++ else SLang_free_array (bt);
++
++ return ret;
++}
++
++/* ARRAY[i, j, k] = generates code: __args i j k ARRAY __aput
++ */
++int _SLarray_aput (void)
++{
++ unsigned int num_indices;
++ SLang_Array_Type *at;
++ SLang_Object_Type index_objs [SLARRAY_MAX_DIMS];
++ int ret;
++ int is_index_array;
++ int (*aput_fun) (unsigned char, unsigned int);
++ int type;
++
++ ret = -1;
++ num_indices = (SLang_Num_Function_Args - 1);
++
++ type = SLang_peek_at_stack ();
++ switch (type)
++ {
++ case -1:
++ return -1;
++
++ case SLANG_ARRAY_TYPE:
++ break;
++
++ default:
++ if (NULL != (aput_fun = _SLclass_get_class (type)-&gt;cl_aput))
++ return (*aput_fun) (type, num_indices);
++ break;
++ }
++
++ if (-1 == SLang_pop_array (&amp;at, 0))
++ return -1;
++
++ if (at-&gt;flags &amp; SLARR_DATA_VALUE_IS_READ_ONLY)
++ {
++ SLang_verror (SL_READONLY_ERROR, &quot;%s Array is read-only&quot;,
++ SLclass_get_datatype_name (at-&gt;data_type));
++ SLang_free_array (at);
++ return -1;
++ }
++
++ if (-1 == pop_indices (index_objs, num_indices, &amp;is_index_array))
++ {
++ SLang_free_array (at);
++ return -1;
++ }
++
++ if (is_index_array == 0)
++ ret = aput_from_indices (at, index_objs, num_indices);
++ else
++ ret = aput_from_index_array (at, index_objs[0].v.array_val);
++
++ SLang_free_array (at);
++ free_index_objects (index_objs, num_indices);
++ return ret;
++}
++
++/* This is for 1-d matrices only. It is used by the sort function */
++static int push_element_at_index (SLang_Array_Type *at, int indx)
++{
++ VOID_STAR data;
++
++ if (NULL == (data = get_data_addr (at, &amp;indx)))
++ return -1;
++
++ return push_element_at_addr (at, (VOID_STAR) data, 1);
++}
++
++static SLang_Name_Type *Sort_Function;
++static SLang_Array_Type *Sort_Array;
++
++static int sort_cmp_fun (int *a, int *b)
++{
++ int cmp;
++
++ if (SLang_Error
++ || (-1 == push_element_at_index (Sort_Array, *a))
++ || (-1 == push_element_at_index (Sort_Array, *b))
++ || (-1 == SLexecute_function (Sort_Function))
++ || (-1 == SLang_pop_integer (&amp;cmp)))
++ {
++ /* DO not allow qsort to loop forever. Return something meaningful */
++ if (*a &gt; *b) return 1;
++ if (*a &lt; *b) return -1;
++ return 0;
++ }
++
++ return cmp;
++}
++
++static int builtin_sort_cmp_fun (int *a, int *b)
++{
++ VOID_STAR a_data;
++ VOID_STAR b_data;
++ SLang_Class_Type *cl;
++
++ cl = Sort_Array-&gt;cl;
++
++ if ((SLang_Error == 0)
++ &amp;&amp; (NULL != (a_data = get_data_addr (Sort_Array, a)))
++ &amp;&amp; (NULL != (b_data = get_data_addr (Sort_Array, b))))
++ {
++ int cmp;
++
++ if ((Sort_Array-&gt;flags &amp; SLARR_DATA_VALUE_IS_POINTER)
++ &amp;&amp; ((*(VOID_STAR *) a_data == NULL) || (*(VOID_STAR *) a_data == NULL)))
++ {
++ SLang_verror (SL_VARIABLE_UNINITIALIZED,
++ &quot;%s array has unitialized element&quot;, cl-&gt;cl_name);
++ }
++ else if (0 == (*cl-&gt;cl_cmp)(Sort_Array-&gt;data_type, a_data, b_data, &amp;cmp))
++ return cmp;
++ }
++
++
++ if (*a &gt; *b) return 1;
++ if (*a == *b) return 0;
++ return -1;
++}
++
++static void sort_array_internal (SLang_Array_Type *at_str,
++ SLang_Name_Type *entry,
++ int (*sort_fun)(int *, int *))
++{
++ SLang_Array_Type *ind_at;
++ /* This is a silly hack to make up for braindead compilers and the lack of
++ * uniformity in prototypes for qsort.
++ */
++ void (*qsort_fun) (char *, unsigned int, int, int (*)(int *, int *));
++ int *indx;
++ int i, n;
++ int dims[1];
++
++ if (Sort_Array != NULL)
++ {
++ SLang_verror (SL_NOT_IMPLEMENTED, &quot;array_sort is not recursive&quot;);
++ return;
++ }
++
++ n = at_str-&gt;num_elements;
++
++ if (at_str-&gt;num_dims != 1)
++ {
++ SLang_verror (SL_INVALID_PARM, &quot;sort is restricted to 1 dim arrays&quot;);
++ return;
++ }
++
++ dims [0] = n;
++
++ if (NULL == (ind_at = SLang_create_array (SLANG_INT_TYPE, 0, NULL, dims, 1)))
++ return;
++
++ indx = (int *) ind_at-&gt;data;
++ for (i = 0; i &lt; n; i++) indx[i] = i;
++
++ if (n &gt; 1)
++ {
++ qsort_fun = (void (*)(char *, unsigned int, int, int (*)(int *,
++ int *)))
++ qsort;
++
++ Sort_Array = at_str;
++ Sort_Function = entry;
++ (*qsort_fun) ((char *) indx, n, sizeof (int), sort_fun);
++ }
++
++ Sort_Array = NULL;
++ (void) SLang_push_array (ind_at, 1);
++}
++
++static void sort_array (void)
++{
++ SLang_Name_Type *entry;
++ SLang_Array_Type *at;
++ int (*sort_fun) (int *, int *);
++
++ if (SLang_Num_Function_Args != 1)
++ {
++ sort_fun = sort_cmp_fun;
++
++ if (NULL == (entry = SLang_pop_function ()))
++ return;
++
++ if (-1 == SLang_pop_array (&amp;at, 1))
++ return;
++ }
++ else
++ {
++ sort_fun = builtin_sort_cmp_fun;
++ if (-1 == SLang_pop_array (&amp;at, 1))
++ return;
++ if (at-&gt;cl-&gt;cl_cmp == NULL)
++ {
++ SLang_verror (SL_NOT_IMPLEMENTED,
++ &quot;%s does not have a predefined sorting method&quot;,
++ at-&gt;cl-&gt;cl_name);
++ SLang_free_array (at);
++ return;
++ }
++ entry = NULL;
++ }
++
++ sort_array_internal (at, entry, sort_fun);
++ SLang_free_array (at);
++ SLang_free_function (entry);
++}
++
++static void bstring_to_array (SLang_BString_Type *bs)
++{
++ unsigned char *s;
++ unsigned int len;
++
++ if (NULL == (s = SLbstring_get_pointer (bs, &amp;len)))
++ (void) SLang_push_null ();
++ else
++ (void) push_string_as_array (s, len);
++}
++
++static void array_to_bstring (SLang_Array_Type *at)
++{
++ unsigned int nbytes;
++ SLang_BString_Type *bs;
++
++ nbytes = at-&gt;num_elements * at-&gt;sizeof_type;
++ bs = SLbstring_create ((unsigned char *)at-&gt;data, nbytes);
++ (void) SLang_push_bstring (bs);
++ SLbstring_free (bs);
++}
++
++static void init_char_array (void)
++{
++ SLang_Array_Type *at;
++ char *s;
++ unsigned int n, ndim;
++
++ if (SLang_pop_slstring (&amp;s)) return;
++
++ if (-1 == SLang_pop_array (&amp;at, 0))
++ goto free_and_return;
++
++ if (at-&gt;data_type != SLANG_CHAR_TYPE)
++ {
++ SLang_doerror(&quot;Operation requires character array&quot;);
++ goto free_and_return;
++ }
++
++ n = strlen (s);
++ ndim = at-&gt;num_elements;
++ if (n &gt; ndim)
++ {
++ SLang_doerror(&quot;String too big to init array&quot;);
++ goto free_and_return;
++ }
++
++ strncpy((char *) at-&gt;data, s, ndim);
++ /* drop */
++
++ free_and_return:
++ SLang_free_array (at);
++ SLang_free_slstring (s);
++}
++
++static void array_info (void)
++{
++ SLang_Array_Type *at, *bt;
++ int num_dims;
++
++ if (-1 == pop_array (&amp;at, 1))
++ return;
++
++ num_dims = (int)at-&gt;num_dims;
++
++ if (NULL != (bt = SLang_create_array (SLANG_INT_TYPE, 0, NULL, &amp;num_dims, 1)))
++ {
++ int *bdata;
++ int i;
++ int *a_dims;
++
++ a_dims = at-&gt;dims;
++ bdata = (int *) bt-&gt;data;
++ for (i = 0; i &lt; num_dims; i++) bdata [i] = a_dims [i];
++
++ if (0 == SLang_push_array (bt, 1))
++ {
++ (void) SLang_push_integer ((int) at-&gt;num_dims);
++ (void) _SLang_push_datatype (at-&gt;data_type);
++ }
++ }
++
++ SLang_free_array (at);
++}
++
++static VOID_STAR range_get_data_addr (SLang_Array_Type *at, int *dims)
++{
++ static int value;
++ SLarray_Range_Array_Type *r;
++ int d;
++
++ d = *dims;
++ r = (SLarray_Range_Array_Type *)at-&gt;data;
++
++ if (d &lt; 0)
++ d += at-&gt;dims[0];
++
++ value = r-&gt;first_index + d * r-&gt;delta;
++ return (VOID_STAR) &amp;value;
++}
++
++static SLang_Array_Type *inline_implicit_int_array (int *xminptr, int *xmaxptr, int *dxptr)
++{
++ int delta;
++ SLang_Array_Type *at;
++ int dims, idims;
++ SLarray_Range_Array_Type *data;
++
++ if (dxptr == NULL) delta = 1;
++ else delta = *dxptr;
++
++ if (delta == 0)
++ {
++ SLang_verror (SL_INVALID_PARM, &quot;range-array increment must be non-zero&quot;);
++ return NULL;
++ }
++
++ data = (SLarray_Range_Array_Type *) SLmalloc (sizeof (SLarray_Range_Array_Type));
++ if (data == NULL)
++ return NULL;
++
++ SLMEMSET((char *) data, 0, sizeof (SLarray_Range_Array_Type));
++ data-&gt;delta = delta;
++ dims = 0;
++
++ if (xminptr != NULL)
++ data-&gt;first_index = *xminptr;
++ else
++ data-&gt;first_index = 0;
++
++ if (xmaxptr != NULL)
++ data-&gt;last_index = *xmaxptr;
++ else
++ data-&gt;last_index = -1;
++
++/* if ((xminptr != NULL) &amp;&amp; (xmaxptr != NULL))
++ { */
++ idims = 1 + (data-&gt;last_index - data-&gt;first_index) / delta;
++ if (idims &gt; 0)
++ dims = idims;
++ /* } */
++
++ if (NULL == (at = SLang_create_array (SLANG_INT_TYPE, 0, (VOID_STAR) data, &amp;dims, 1)))
++ return NULL;
++
++ at-&gt;index_fun = range_get_data_addr;
++ at-&gt;flags |= SLARR_DATA_VALUE_IS_RANGE;
++
++ return at;
++}
++
++#if SLANG_HAS_FLOAT
++static SLang_Array_Type *inline_implicit_floating_array (unsigned char type,
++ double *xminptr, double *xmaxptr, double *dxptr)
++{
++ int n, i;
++ SLang_Array_Type *at;
++ int dims;
++ double xmin, xmax, dx;
++
++ if ((xminptr == NULL) || (xmaxptr == NULL))
++ {
++ SLang_verror (SL_INVALID_PARM, &quot;range-array has unknown size&quot;);
++ return NULL;
++ }
++ xmin = *xminptr;
++ xmax = *xmaxptr;
++ if (dxptr == NULL) dx = 1.0;
++ else dx = *dxptr;
++
++ if (dx == 0.0)
++ {
++ SLang_doerror (&quot;range-array increment must be non-zero&quot;);
++ return NULL;
++ }
++
++ /* I have convinced myself that it is better to use semi-open intervals
++ * because of less ambiguities. So, [a:b:c] will represent the set of
++ * values a, a + c, a + 2c ... a + nc
++ * such that a + nc &lt; b. That is, b lies outside the interval.
++ */
++
++ /* Allow for roundoff by adding 0.5 before truncation */
++ n = (int)(1.5 + ((xmax - xmin) / dx));
++ if (n &lt;= 0)
++ n = 0;
++ else
++ {
++ double last = xmin + (n-1) * dx;
++
++ if (dx &gt; 0.0)
++ {
++ if (last &gt;= xmax)
++ n -= 1;
++ }
++ else if (last &lt;= xmax)
++ n -= 1;
++ }
++
++ dims = n;
++ if (NULL == (at = SLang_create_array1 (type, 0, NULL, &amp;dims, 1, 1)))
++ return NULL;
++
++ if (type == SLANG_DOUBLE_TYPE)
++ {
++ double *ptr;
++
++ ptr = (double *) at-&gt;data;
++
++ for (i = 0; i &lt; n; i++)
++ ptr[i] = xmin + i * dx;
++ }
++ else
++ {
++ float *ptr;
++
++ ptr = (float *) at-&gt;data;
++
++ for (i = 0; i &lt; n; i++)
++ ptr[i] = (float) (xmin + i * dx);
++ }
++ return at;
++}
++#endif
++
++/* FIXME: Priority=medium
++ * This needs to be updated to work with all integer types.
++ */
++int _SLarray_inline_implicit_array (void)
++{
++ int int_vals[3];
++#if SLANG_HAS_FLOAT
++ double double_vals[3];
++#endif
++ int has_vals[3];
++ unsigned int i, count;
++ SLang_Array_Type *at;
++ int precedence;
++ unsigned char type;
++ int is_int;
++
++ count = SLang_Num_Function_Args;
++
++ if (count == 2)
++ has_vals [2] = 0;
++ else if (count != 3)
++ {
++ SLang_doerror (&quot;wrong number of arguments to __implicit_inline_array&quot;);
++ return -1;
++ }
++
++#if SLANG_HAS_FLOAT
++ is_int = 1;
++#endif
++
++ type = 0;
++ precedence = 0;
++
++ i = count;
++ while (i--)
++ {
++ int this_type, this_precedence;
++
++ if (-1 == (this_type = SLang_peek_at_stack ()))
++ return -1;
++
++ this_precedence = _SLarith_get_precedence ((unsigned char) this_type);
++ if (precedence &lt; this_precedence)
++ {
++ type = (unsigned char) this_type;
++ precedence = this_precedence;
++ }
++
++ has_vals [i] = 1;
++
++ switch (this_type)
++ {
++ case SLANG_NULL_TYPE:
++ has_vals[i] = 0;
++ (void) SLdo_pop ();
++ break;
++
++#if SLANG_HAS_FLOAT
++ case SLANG_DOUBLE_TYPE:
++ case SLANG_FLOAT_TYPE:
++ if (-1 == SLang_pop_double (double_vals + i, NULL, NULL))
++ return -1;
++ is_int = 0;
++ break;
++#endif
++ default:
++ if (-1 == SLang_pop_integer (int_vals + i))
++ return -1;
++ double_vals[i] = (double) int_vals[i];
++ }
++ }
++
++#if SLANG_HAS_FLOAT
++ if (is_int == 0)
++ at = inline_implicit_floating_array (type,
++ (has_vals[0] ? &amp;double_vals[0] : NULL),
++ (has_vals[1] ? &amp;double_vals[1] : NULL),
++ (has_vals[2] ? &amp;double_vals[2] : NULL));
++ else
++#endif
++ at = inline_implicit_int_array ((has_vals[0] ? &amp;int_vals[0] : NULL),
++ (has_vals[1] ? &amp;int_vals[1] : NULL),
++ (has_vals[2] ? &amp;int_vals[2] : NULL));
++
++ if (at == NULL)
++ return -1;
++
++ return SLang_push_array (at, 1);
++}
++
++int _SLarray_wildcard_array (void)
++{
++ SLang_Array_Type *at;
++
++ if (NULL == (at = inline_implicit_int_array (NULL, NULL, NULL)))
++ return -1;
++
++ return SLang_push_array (at, 1);
++}
++
++static SLang_Array_Type *concat_arrays (unsigned int count)
++{
++ SLang_Array_Type **arrays;
++ SLang_Array_Type *at, *bt;
++ unsigned int i;
++ int num_elements;
++ unsigned char type;
++ char *src_data, *dest_data;
++ int is_ptr;
++ unsigned int sizeof_type;
++ int max_dims, min_dims, max_rows, min_rows;
++
++ arrays = (SLang_Array_Type **)SLmalloc (count * sizeof (SLang_Array_Type *));
++ if (arrays == NULL)
++ {
++ SLdo_pop_n (count);
++ return NULL;
++ }
++ SLMEMSET((char *) arrays, 0, count * sizeof(SLang_Array_Type *));
++
++ at = NULL;
++
++ num_elements = 0;
++ i = count;
++
++ while (i != 0)
++ {
++ i--;
++
++ if (-1 == SLang_pop_array (&amp;bt, 1))
++ goto free_and_return;
++
++ arrays[i] = bt;
++ num_elements += (int)bt-&gt;num_elements;
++ }
++
++ type = arrays[0]-&gt;data_type;
++ max_dims = min_dims = arrays[0]-&gt;num_dims;
++ min_rows = max_rows = arrays[0]-&gt;dims[0];
++
++ for (i = 1; i &lt; count; i++)
++ {
++ SLang_Array_Type *ct;
++ int num;
++
++ bt = arrays[i];
++
++ num = bt-&gt;num_dims;
++ if (num &gt; max_dims) max_dims = num;
++ if (num &lt; min_dims) min_dims = num;
++
++ num = bt-&gt;dims[0];
++ if (num &gt; max_rows) max_rows = num;
++ if (num &lt; min_rows) min_rows = num;
++
++ if (type == bt-&gt;data_type)
++ continue;
++
++ if (1 != _SLarray_typecast (bt-&gt;data_type, (VOID_STAR) &amp;bt, 1,
++ type, (VOID_STAR) &amp;ct, 1))
++ goto free_and_return;
++
++ SLang_free_array (bt);
++ arrays [i] = ct;
++ }
++
++ if (NULL == (at = SLang_create_array (type, 0, NULL, &amp;num_elements, 1)))
++ goto free_and_return;
++
++ is_ptr = (at-&gt;flags &amp; SLARR_DATA_VALUE_IS_POINTER);
++ sizeof_type = at-&gt;sizeof_type;
++ dest_data = (char *) at-&gt;data;
++
++ for (i = 0; i &lt; count; i++)
++ {
++ bt = arrays[i];
++
++ src_data = (char *) bt-&gt;data;
++ num_elements = bt-&gt;num_elements;
++
++ if (-1 == transfer_n_elements (bt, (VOID_STAR)dest_data, (VOID_STAR)src_data, sizeof_type,
++ num_elements, is_ptr))
++ {
++ SLang_free_array (at);
++ at = NULL;
++ goto free_and_return;
++ }
++
++ dest_data += num_elements * sizeof_type;
++ }
++
++ /* If the arrays are all 1-d, and all the same size, then reshape to a
++ * 2-d array. This will allow us to do, e.g.
++ * a = [[1,2], [3,4]]
++ * to specifiy a 2-d.
++ * Someday I will generalize this.
++ */
++ if ((max_dims == min_dims) &amp;&amp; (max_dims == 1) &amp;&amp; (min_rows == max_rows))
++ {
++ at-&gt;num_dims = 2;
++ at-&gt;dims[0] = count;
++ at-&gt;dims[1] = min_rows;
++ }
++
++ free_and_return:
++
++ for (i = 0; i &lt; count; i++)
++ SLang_free_array (arrays[i]);
++ SLfree ((char *) arrays);
++
++ return at;
++}
++
++int _SLarray_inline_array (void)
++{
++ SLang_Object_Type *obj;
++ unsigned char type, this_type;
++ unsigned int count;
++ SLang_Array_Type *at;
++
++ obj = _SLStack_Pointer;
++
++ count = SLang_Num_Function_Args;
++ type = 0;
++
++ while ((count &gt; 0) &amp;&amp; (--obj &gt;= _SLRun_Stack))
++ {
++ this_type = obj-&gt;data_type;
++
++ if (type == 0)
++ type = this_type;
++
++ if ((type == this_type) || (type == SLANG_ARRAY_TYPE))
++ {
++ count--;
++ continue;
++ }
++
++ switch (this_type)
++ {
++ case SLANG_ARRAY_TYPE:
++ type = SLANG_ARRAY_TYPE;
++ break;
++
++ case SLANG_INT_TYPE:
++ switch (type)
++ {
++#if SLANG_HAS_FLOAT
++ case SLANG_DOUBLE_TYPE:
++ break;
++#endif
++#if SLANG_HAS_COMPLEX
++ case SLANG_COMPLEX_TYPE:
++ break;
++#endif
++ default:
++ goto type_mismatch;
++ }
++ break;
++#if SLANG_HAS_FLOAT
++ case SLANG_DOUBLE_TYPE:
++ switch (type)
++ {
++ case SLANG_INT_TYPE:
++ type = SLANG_DOUBLE_TYPE;
++ break;
++# if SLANG_HAS_COMPLEX
++ case SLANG_COMPLEX_TYPE:
++ break;
++# endif
++ default:
++ goto type_mismatch;
++ }
++ break;
++#endif
++#if SLANG_HAS_COMPLEX
++ case SLANG_COMPLEX_TYPE:
++ switch (type)
++ {
++ case SLANG_INT_TYPE:
++ case SLANG_DOUBLE_TYPE:
++ type = SLANG_COMPLEX_TYPE;
++ break;
++
++ default:
++ goto type_mismatch;
++ }
++ break;
++#endif
++ default:
++ type_mismatch:
++ _SLclass_type_mismatch_error (type, this_type);
++ return -1;
++ }
++ count--;
++ }
++
++ if (count != 0)
++ {
++ SLang_Error = SL_STACK_UNDERFLOW;
++ return -1;
++ }
++
++ count = SLang_Num_Function_Args;
++
++ if (count == 0)
++ {
++ SLang_verror (SL_NOT_IMPLEMENTED, &quot;Empty inline-arrays not supported&quot;);
++ return -1;
++ }
++
++ if (type == SLANG_ARRAY_TYPE)
++ {
++ if (NULL == (at = concat_arrays (count)))
++ return -1;
++ }
++ else
++ {
++ SLang_Object_Type index_obj;
++ int icount = (int) count;
++
++ if (NULL == (at = SLang_create_array (type, 0, NULL, &amp;icount, 1)))
++ return -1;
++
++ index_obj.data_type = SLANG_INT_TYPE;
++ while (count != 0)
++ {
++ count--;
++ index_obj.v.int_val = (int) count;
++ if (-1 == aput_from_indices (at, &amp;index_obj, 1))
++ {
++ SLang_free_array (at);
++ SLdo_pop_n (count);
++ return -1;
++ }
++ }
++ }
++
++ return SLang_push_array (at, 1);
++}
++
++static int array_binary_op_result (int op, unsigned char a, unsigned char b,
++ unsigned char *c)
++{
++ (void) op;
++ (void) a;
++ (void) b;
++ *c = SLANG_ARRAY_TYPE;
++ return 1;
++}
++
++static int array_binary_op (int op,
++ unsigned char a_type, VOID_STAR ap, unsigned int na,
++ unsigned char b_type, VOID_STAR bp, unsigned int nb,
++ VOID_STAR cp)
++{
++ SLang_Array_Type *at, *bt, *ct;
++ unsigned int i, num_dims;
++ int (*binary_fun) (int,
++ unsigned char, VOID_STAR, unsigned int,
++ unsigned char, VOID_STAR, unsigned int,
++ VOID_STAR);
++ SLang_Class_Type *a_cl, *b_cl, *c_cl;
++ int no_init;
++
++ if (a_type == SLANG_ARRAY_TYPE)
++ {
++ if (na != 1)
++ {
++ SLang_verror (SL_NOT_IMPLEMENTED, &quot;Binary operation on multiple arrays not implemented&quot;);
++ return -1;
++ }
++
++ at = *(SLang_Array_Type **) ap;
++ if (-1 == coerse_array_to_linear (at))
++ return -1;
++ ap = at-&gt;data;
++ a_type = at-&gt;data_type;
++ na = at-&gt;num_elements;
++ }
++ else
++ {
++ at = NULL;
++ }
++
++ if (b_type == SLANG_ARRAY_TYPE)
++ {
++ if (nb != 1)
++ {
++ SLang_verror (SL_NOT_IMPLEMENTED, &quot;Binary operation on multiple arrays not implemented&quot;);
++ return -1;
++ }
++
++ bt = *(SLang_Array_Type **) bp;
++ if (-1 == coerse_array_to_linear (bt))
++ return -1;
++ bp = bt-&gt;data;
++ b_type = bt-&gt;data_type;
++ nb = bt-&gt;num_elements;
++ }
++ else
++ {
++ bt = NULL;
++ }
++
++ if ((at != NULL) &amp;&amp; (bt != NULL))
++ {
++ num_dims = at-&gt;num_dims;
++
++ if (num_dims != bt-&gt;num_dims)
++ {
++ SLang_verror (SL_TYPE_MISMATCH, &quot;Arrays must have same dim for binary operation&quot;);
++ return -1;
++ }
++
++ for (i = 0; i &lt; num_dims; i++)
++ {
++ if (at-&gt;dims[i] != bt-&gt;dims[i])
++ {
++ SLang_verror (SL_TYPE_MISMATCH, &quot;Arrays must be the same for binary operation&quot;);
++ return -1;
++ }
++ }
++ }
++
++ a_cl = _SLclass_get_class (a_type);
++ b_cl = _SLclass_get_class (b_type);
++
++ if (NULL == (binary_fun = _SLclass_get_binary_fun (op, a_cl, b_cl, &amp;c_cl, 1)))
++ return -1;
++
++ no_init = ((c_cl-&gt;cl_class_type == SLANG_CLASS_TYPE_SCALAR)
++ || (c_cl-&gt;cl_class_type == SLANG_CLASS_TYPE_VECTOR));
++
++ ct = NULL;
++#if _SLANG_USE_TMP_OPTIMIZATION
++ /* If we are dealing with scalar (or vector) objects, and if the object
++ * appears to be owned by the stack, then use it instead of creating a
++ * new version. This can happen with code such as:
++ * @ x = [1,2,3,4];
++ * @ x = __tmp(x) + 1;
++ */
++ if (no_init)
++ {
++ if ((at != NULL)
++ &amp;&amp; (at-&gt;num_refs == 1)
++ &amp;&amp; (at-&gt;data_type == c_cl-&gt;cl_data_type))
++ {
++ ct = at;
++ ct-&gt;num_refs = 2;
++ }
++ else if ((bt != NULL)
++ &amp;&amp; (bt-&gt;num_refs == 1)
++ &amp;&amp; (bt-&gt;data_type == c_cl-&gt;cl_data_type))
++ {
++ ct = bt;
++ ct-&gt;num_refs = 2;
++ }
++ }
++#endif /* _SLANG_USE_TMP_OPTIMIZATION */
++
++ if (ct == NULL)
++ {
++ if (at != NULL) ct = at; else ct = bt;
++ ct = SLang_create_array1 (c_cl-&gt;cl_data_type, 0, NULL, ct-&gt;dims, ct-&gt;num_dims, no_init);
++ if (ct == NULL)
++ return -1;
++ }
++
++
++ if ((na == 0) || (nb == 0) /* allow empty arrays */
++ || (1 == (*binary_fun) (op, a_type, ap, na, b_type, bp, nb, ct-&gt;data)))
++ {
++ *(SLang_Array_Type **) cp = ct;
++ return 1;
++ }
++
++ SLang_free_array (ct);
++ return -1;
++}
++
++static void array_where (void)
++{
++ SLang_Array_Type *at, *bt;
++ char *a_data;
++ int *b_data;
++ unsigned int i, num_elements;
++ int b_num;
++
++ if (-1 == SLang_pop_array (&amp;at, 1))
++ return;
++
++ bt = NULL;
++
++ if (at-&gt;data_type != SLANG_CHAR_TYPE)
++ {
++ int zero;
++ SLang_Array_Type *tmp_at;
++
++ tmp_at = at;
++ zero = 0;
++ if (1 != array_binary_op (SLANG_NE,
++ SLANG_ARRAY_TYPE, (VOID_STAR) &amp;at, 1,
++ SLANG_CHAR_TYPE, (VOID_STAR) &amp;zero, 1,
++ (VOID_STAR) &amp;tmp_at))
++ goto return_error;
++
++ SLang_free_array (at);
++ at = tmp_at;
++ if (at-&gt;data_type != SLANG_CHAR_TYPE)
++ {
++ SLang_Error = SL_TYPE_MISMATCH;
++ goto return_error;
++ }
++ }
++
++ a_data = (char *) at-&gt;data;
++ num_elements = at-&gt;num_elements;
++
++ b_num = 0;
++ for (i = 0; i &lt; num_elements; i++)
++ if (a_data[i] != 0) b_num++;
++
++ if (NULL == (bt = SLang_create_array1 (SLANG_INT_TYPE, 0, NULL, &amp;b_num, 1, 1)))
++ goto return_error;
++
++ b_data = (int *) bt-&gt;data;
++
++ i = 0;
++ while (b_num)
++ {
++ if (a_data[i] != 0)
++ {
++ *b_data++ = i;
++ b_num--;
++ }
++
++ i++;
++ }
++
++ (void) SLang_push_array (bt, 0);
++ /* drop */
++
++ return_error:
++ SLang_free_array (at);
++ SLang_free_array (bt);
++}
++
++static int do_array_reshape (SLang_Array_Type *at, SLang_Array_Type *ind_at)
++{
++ int *dims;
++ unsigned int i, num_dims;
++ unsigned int num_elements;
++
++ if ((ind_at-&gt;data_type != SLANG_INT_TYPE)
++ || (ind_at-&gt;num_dims != 1))
++ {
++ SLang_verror (SL_TYPE_MISMATCH, &quot;Expecting 1-d integer array&quot;);
++ return -1;
++ }
++
++ num_dims = ind_at-&gt;num_elements;
++ dims = (int *) ind_at-&gt;data;
++
++ num_elements = 1;
++ for (i = 0; i &lt; num_dims; i++)
++ {
++ int d = dims[i];
++ if (d &lt; 0)
++ {
++ SLang_verror (SL_INVALID_PARM, &quot;reshape: dimension is less then 0&quot;);
++ return -1;
++ }
++
++ num_elements = (unsigned int) d * num_elements;
++ }
++
++ if ((num_elements != at-&gt;num_elements)
++ || (num_dims &gt; SLARRAY_MAX_DIMS))
++ {
++ SLang_verror (SL_INVALID_PARM, &quot;Unable to reshape array to specified size&quot;);
++ return -1;
++ }
++
++ for (i = 0; i &lt; num_dims; i++)
++ at-&gt;dims [i] = dims[i];
++
++ while (i &lt; SLARRAY_MAX_DIMS)
++ {
++ at-&gt;dims [i] = 1;
++ i++;
++ }
++
++ at-&gt;num_dims = num_dims;
++ return 0;
++}
++
++static void array_reshape (SLang_Array_Type *at, SLang_Array_Type *ind_at)
++{
++ (void) do_array_reshape (at, ind_at);
++}
++
++static void _array_reshape (SLang_Array_Type *ind_at)
++{
++ SLang_Array_Type *at;
++ SLang_Array_Type *new_at;
++
++ if (-1 == SLang_pop_array (&amp;at, 1))
++ return;
++
++ /* FIXME: Priority=low: duplicate_array could me modified to look at num_refs */
++
++ /* Now try to avoid the overhead of creating a new array if possible */
++ if (at-&gt;num_refs == 1)
++ {
++ /* Great, we are the sole owner of this array. */
++ if ((-1 == do_array_reshape (at, ind_at))
++ || (-1 == SLclass_push_ptr_obj (SLANG_ARRAY_TYPE, (VOID_STAR)at)))
++ SLang_free_array (at);
++ return;
++ }
++
++ new_at = SLang_duplicate_array (at);
++ if (new_at != NULL)
++ {
++ if (0 == do_array_reshape (new_at, ind_at))
++ (void) SLang_push_array (new_at, 0);
++
++ SLang_free_array (new_at);
++ }
++ SLang_free_array (at);
++}
++
++typedef struct
++{
++ SLang_Array_Type *at;
++ unsigned int increment;
++ char *addr;
++}
++Map_Arg_Type;
++/* Usage: array_map (Return-Type, func, args,....); */
++static void array_map (void)
++{
++ Map_Arg_Type *args;
++ unsigned int num_args;
++ unsigned int i, i_control;
++ SLang_Name_Type *nt;
++ unsigned int num_elements;
++ SLang_Array_Type *at;
++ char *addr;
++ unsigned char type;
++
++ at = NULL;
++ args = NULL;
++ nt = NULL;
++
++ if (SLang_Num_Function_Args &lt; 3)
++ {
++ SLang_verror (SL_INVALID_PARM,
++ &quot;Usage: array_map (Return-Type, &amp;func, args...)&quot;);
++ SLdo_pop_n (SLang_Num_Function_Args);
++ return;
++ }
++
++ num_args = (unsigned int)SLang_Num_Function_Args - 2;
++ args = (Map_Arg_Type *) SLmalloc (num_args * sizeof (Map_Arg_Type));
++ if (args == NULL)
++ {
++ SLdo_pop_n (SLang_Num_Function_Args);
++ return;
++ }
++ memset ((char *) args, 0, num_args * sizeof (Map_Arg_Type));
++ i = num_args;
++ i_control = 0;
++ while (i &gt; 0)
++ {
++ i--;
++ if (-1 == SLang_pop_array (&amp;args[i].at, 1))
++ {
++ SLdo_pop_n (i + 2);
++ goto return_error;
++ }
++ if (args[i].at-&gt;num_elements &gt; 1)
++ i_control = i;
++ }
++
++ if (NULL == (nt = SLang_pop_function ()))
++ {
++ SLdo_pop_n (1);
++ goto return_error;
++ }
++
++ num_elements = args[i_control].at-&gt;num_elements;
++
++ if (-1 == _SLang_pop_datatype (&amp;type))
++ goto return_error;
++
++ if (type == SLANG_UNDEFINED_TYPE) /* Void_Type */
++ at = NULL;
++ else
++ {
++ at = args[i_control].at;
++
++ if (NULL == (at = SLang_create_array (type, 0, NULL, at-&gt;dims, at-&gt;num_dims)))
++ goto return_error;
++ }
++
++
++ for (i = 0; i &lt; num_args; i++)
++ {
++ SLang_Array_Type *ati = args[i].at;
++ /* FIXME: Priority = low: The actual dimensions should be compared. */
++ if (ati-&gt;num_elements == num_elements)
++ args[i].increment = ati-&gt;sizeof_type;
++ /* memset already guarantees increment to be zero */
++
++ if (ati-&gt;num_elements == 0)
++ {
++ SLang_verror (0, &quot;array_map: function argument %d of %d is an empty array&quot;,
++ i+1, num_args);
++ goto return_error;
++ }
++
++ args[i].addr = (char *) ati-&gt;data;
++ }
++
++ if (at == NULL)
++ addr = NULL;
++ else
++ addr = (char *)at-&gt;data;
++
++ for (i = 0; i &lt; num_elements; i++)
++ {
++ unsigned int j;
++
++ if (-1 == SLang_start_arg_list ())
++ goto return_error;
++
++ for (j = 0; j &lt; num_args; j++)
++ {
++ if (-1 == push_element_at_addr (args[j].at,
++ (VOID_STAR) args[j].addr,
++ 1))
++ {
++ SLdo_pop_n (j);
++ goto return_error;
++ }
++
++ args[j].addr += args[j].increment;
++ }
++
++ if (-1 == SLang_end_arg_list ())
++ {
++ SLdo_pop_n (num_args);
++ goto return_error;
++ }
++
++ if (-1 == SLexecute_function (nt))
++ goto return_error;
++
++ if (at == NULL)
++ continue;
++
++ if (-1 == at-&gt;cl-&gt;cl_apop (type, (VOID_STAR) addr))
++ goto return_error;
++
++ addr += at-&gt;sizeof_type;
++ }
++
++ if (at != NULL)
++ (void) SLang_push_array (at, 0);
++
++ /* drop */
++
++ return_error:
++ SLang_free_array (at);
++ SLang_free_function (nt);
++ if (args != NULL)
++ {
++ for (i = 0; i &lt; num_args; i++)
++ SLang_free_array (args[i].at);
++
++ SLfree ((char *) args);
++ }
++}
++
++static SLang_Intrin_Fun_Type Array_Table [] =
++{
++ MAKE_INTRINSIC_0(&quot;array_map&quot;, array_map, SLANG_VOID_TYPE),
++ MAKE_INTRINSIC_0(&quot;array_sort&quot;, sort_array, SLANG_VOID_TYPE),
++ MAKE_INTRINSIC_1(&quot;array_to_bstring&quot;, array_to_bstring, SLANG_VOID_TYPE, SLANG_ARRAY_TYPE),
++ MAKE_INTRINSIC_1(&quot;bstring_to_array&quot;, bstring_to_array, SLANG_VOID_TYPE, SLANG_BSTRING_TYPE),
++ MAKE_INTRINSIC(&quot;init_char_array&quot;, init_char_array, SLANG_VOID_TYPE, 0),
++ MAKE_INTRINSIC(&quot;array_info&quot;, array_info, SLANG_VOID_TYPE, 0),
++ MAKE_INTRINSIC(&quot;where&quot;, array_where, SLANG_VOID_TYPE, 0),
++ MAKE_INTRINSIC_2(&quot;reshape&quot;, array_reshape, SLANG_VOID_TYPE, SLANG_ARRAY_TYPE, SLANG_ARRAY_TYPE),
++ MAKE_INTRINSIC_1(&quot;_reshape&quot;, _array_reshape, SLANG_VOID_TYPE, SLANG_ARRAY_TYPE),
++ SLANG_END_INTRIN_FUN_TABLE
++};
++
++static char *array_string (unsigned char type, VOID_STAR v)
++{
++ SLang_Array_Type *at;
++ char buf[512];
++ unsigned int i, num_dims;
++ int *dims;
++
++ at = *(SLang_Array_Type **) v;
++ type = at-&gt;data_type;
++ num_dims = at-&gt;num_dims;
++ dims = at-&gt;dims;
++
++ sprintf (buf, &quot;%s[%d&quot;, SLclass_get_datatype_name (type), at-&gt;dims[0]);
++
++ for (i = 1; i &lt; num_dims; i++)
++ sprintf (buf + strlen(buf), &quot;,%d&quot;, dims[i]);
++ strcat (buf, &quot;]&quot;);
++
++ return SLmake_string (buf);
++}
++
++static void array_destroy (unsigned char type, VOID_STAR v)
++{
++ (void) type;
++ SLang_free_array (*(SLang_Array_Type **) v);
++}
++
++static int array_push (unsigned char type, VOID_STAR v)
++{
++ SLang_Array_Type *at;
++
++ (void) type;
++ at = *(SLang_Array_Type **) v;
++ return SLang_push_array (at, 0);
++}
++
++/* Intrinsic arrays are not stored in a variable. So, the address that
++ * would contain the variable holds the array address.
++ */
++static int array_push_intrinsic (unsigned char type, VOID_STAR v)
++{
++ (void) type;
++ return SLang_push_array ((SLang_Array_Type *) v, 0);
++}
++
++int _SLarray_add_bin_op (unsigned char type)
++{
++ SL_OOBinary_Type *ab;
++ SLang_Class_Type *cl;
++
++ cl = _SLclass_get_class (type);
++ ab = cl-&gt;cl_binary_ops;
++
++ while (ab != NULL)
++ {
++ if (ab-&gt;data_type == SLANG_ARRAY_TYPE)
++ return 0;
++ ab = ab-&gt;next;
++ }
++
++ if ((-1 == SLclass_add_binary_op (SLANG_ARRAY_TYPE, type, array_binary_op, array_binary_op_result))
++ || (-1 == SLclass_add_binary_op (type, SLANG_ARRAY_TYPE, array_binary_op, array_binary_op_result)))
++ return -1;
++
++ return 0;
++}
++
++static SLang_Array_Type *
++do_array_math_op (int op, int unary_type,
++ SLang_Array_Type *at, unsigned int na)
++{
++ unsigned char a_type, b_type;
++ int (*f) (int, unsigned char, VOID_STAR, unsigned int, VOID_STAR);
++ SLang_Array_Type *bt;
++ SLang_Class_Type *b_cl;
++ int no_init;
++
++ if (na != 1)
++ {
++ SLang_verror (SL_NOT_IMPLEMENTED, &quot;Operation restricted to 1 array&quot;);
++ return NULL;
++ }
++
++ a_type = at-&gt;data_type;
++ if (NULL == (f = _SLclass_get_unary_fun (op, at-&gt;cl, &amp;b_cl, unary_type)))
++ return NULL;
++ b_type = b_cl-&gt;cl_data_type;
++
++ if (-1 == coerse_array_to_linear (at))
++ return NULL;
++
++ no_init = ((b_cl-&gt;cl_class_type == SLANG_CLASS_TYPE_SCALAR)
++ || (b_cl-&gt;cl_class_type == SLANG_CLASS_TYPE_VECTOR));
++
++#if _SLANG_USE_TMP_OPTIMIZATION
++ /* If we are dealing with scalar (or vector) objects, and if the object
++ * appears to be owned by the stack, then use it instead of creating a
++ * new version. This can happen with code such as:
++ * @ x = [1,2,3,4];
++ * @ x = UNARY_OP(__tmp(x));
++ */
++ if (no_init
++ &amp;&amp; (at-&gt;num_refs == 1)
++ &amp;&amp; (at-&gt;data_type == b_cl-&gt;cl_data_type))
++ {
++ bt = at;
++ bt-&gt;num_refs = 2;
++ }
++ else
++#endif /* _SLANG_USE_TMP_OPTIMIZATION */
++ if (NULL == (bt = SLang_create_array1 (b_type, 0, NULL, at-&gt;dims, at-&gt;num_dims, no_init)))
++ return NULL;
++
++ if (1 != (*f)(op, a_type, at-&gt;data, at-&gt;num_elements, bt-&gt;data))
++ {
++ SLang_free_array (bt);
++ return NULL;
++ }
++ return bt;
++}
++
++static int
++array_unary_op_result (int op, unsigned char a, unsigned char *b)
++{
++ (void) op;
++ (void) a;
++ *b = SLANG_ARRAY_TYPE;
++ return 1;
++}
++
++static int
++array_unary_op (int op,
++ unsigned char a, VOID_STAR ap, unsigned int na,
++ VOID_STAR bp)
++{
++ SLang_Array_Type *at;
++
++ (void) a;
++ at = *(SLang_Array_Type **) ap;
++ if (NULL == (at = do_array_math_op (op, _SLANG_BC_UNARY, at, na)))
++ {
++ if (SLang_Error) return -1;
++ return 0;
++ }
++ *(SLang_Array_Type **) bp = at;
++ return 1;
++}
++
++static int
++array_math_op (int op,
++ unsigned char a, VOID_STAR ap, unsigned int na,
++ VOID_STAR bp)
++{
++ SLang_Array_Type *at;
++
++ (void) a;
++ at = *(SLang_Array_Type **) ap;
++ if (NULL == (at = do_array_math_op (op, _SLANG_BC_MATH_UNARY, at, na)))
++ {
++ if (SLang_Error) return -1;
++ return 0;
++ }
++ *(SLang_Array_Type **) bp = at;
++ return 1;
++}
++
++static int
++array_app_op (int op,
++ unsigned char a, VOID_STAR ap, unsigned int na,
++ VOID_STAR bp)
++{
++ SLang_Array_Type *at;
++
++ (void) a;
++ at = *(SLang_Array_Type **) ap;
++ if (NULL == (at = do_array_math_op (op, _SLANG_BC_APP_UNARY, at, na)))
++ {
++ if (SLang_Error) return -1;
++ return 0;
++ }
++ *(SLang_Array_Type **) bp = at;
++ return 1;
++}
++
++int
++_SLarray_typecast (unsigned char a_type, VOID_STAR ap, unsigned int na,
++ unsigned char b_type, VOID_STAR bp,
++ int is_implicit)
++{
++ SLang_Array_Type *at, *bt;
++ SLang_Class_Type *b_cl;
++ int no_init;
++ int (*t) (unsigned char, VOID_STAR, unsigned int, unsigned char, VOID_STAR);
++
++ if (na != 1)
++ {
++ SLang_verror (SL_NOT_IMPLEMENTED, &quot;typecast of multiple arrays not implemented&quot;);
++ return -1;
++ }
++
++ at = *(SLang_Array_Type **) ap;
++ a_type = at-&gt;data_type;
++
++ if (a_type == b_type)
++ {
++ at-&gt;num_refs += 1;
++ *(SLang_Array_Type **) bp = at;
++ return 1;
++ }
++
++ if (NULL == (t = _SLclass_get_typecast (a_type, b_type, is_implicit)))
++ return -1;
++
++ if (-1 == coerse_array_to_linear (at))
++ return -1;
++
++ b_cl = _SLclass_get_class (b_type);
++
++ no_init = ((b_cl-&gt;cl_class_type == SLANG_CLASS_TYPE_SCALAR)
++ || (b_cl-&gt;cl_class_type == SLANG_CLASS_TYPE_VECTOR));
++
++ if (NULL == (bt = SLang_create_array1 (b_type, 0, NULL, at-&gt;dims, at-&gt;num_dims, no_init)))
++ return -1;
++
++ if (1 == (*t) (a_type, at-&gt;data, at-&gt;num_elements, b_type, bt-&gt;data))
++ {
++ *(SLang_Array_Type **) bp = bt;
++ return 1;
++ }
++
++ SLang_free_array (bt);
++ return 0;
++}
++
++SLang_Array_Type *SLang_duplicate_array (SLang_Array_Type *at)
++{
++ SLang_Array_Type *bt;
++ char *data, *a_data;
++ unsigned int i, num_elements, sizeof_type;
++ unsigned int size;
++ int (*cl_acopy) (unsigned char, VOID_STAR, VOID_STAR);
++ unsigned char type;
++
++ if (-1 == coerse_array_to_linear (at))
++ return NULL;
++
++ type = at-&gt;data_type;
++ num_elements = at-&gt;num_elements;
++ sizeof_type = at-&gt;sizeof_type;
++ size = num_elements * sizeof_type;
++
++ if (NULL == (data = SLmalloc (size)))
++ return NULL;
++
++ if (NULL == (bt = SLang_create_array (type, 0, (VOID_STAR)data, at-&gt;dims, at-&gt;num_dims)))
++ {
++ SLfree (data);
++ return NULL;
++ }
++
++ a_data = (char *) at-&gt;data;
++ if (0 == (at-&gt;flags &amp; SLARR_DATA_VALUE_IS_POINTER))
++ {
++ SLMEMCPY (data, a_data, size);
++ return bt;
++ }
++
++ SLMEMSET (data, 0, size);
++
++ cl_acopy = at-&gt;cl-&gt;cl_acopy;
++ for (i = 0; i &lt; num_elements; i++)
++ {
++ if (NULL != *(VOID_STAR *) a_data)
++ {
++ if (-1 == (*cl_acopy) (type, (VOID_STAR) a_data, (VOID_STAR) data))
++ {
++ SLang_free_array (bt);
++ return NULL;
++ }
++ }
++
++ data += sizeof_type;
++ a_data += sizeof_type;
++ }
++
++ return bt;
++}
++
++static int array_dereference (unsigned char type, VOID_STAR addr)
++{
++ SLang_Array_Type *at;
++
++ (void) type;
++ at = SLang_duplicate_array (*(SLang_Array_Type **) addr);
++ if (at == NULL) return -1;
++ return SLang_push_array (at, 1);
++}
++
++/* This function gets called via, e.g., @Array_Type (Double_Type, [10,20]);
++ */
++static int
++array_datatype_deref (unsigned char type)
++{
++ SLang_Array_Type *ind_at;
++ SLang_Array_Type *at;
++
++#if 0
++ /* The parser generated code for this as if a function call were to be
++ * made. However, the interpreter simply called the deref object routine
++ * instead of the function call. So, I must simulate the function call.
++ * This needs to be formalized to hide this detail from applications
++ * who wish to do the same. So...
++ * FIXME: Priority=medium
++ */
++ if (0 == _SL_increment_frame_pointer ())
++ (void) _SL_decrement_frame_pointer ();
++#endif
++
++ if (-1 == SLang_pop_array (&amp;ind_at, 1))
++ return -1;
++
++ if ((ind_at-&gt;data_type != SLANG_INT_TYPE)
++ || (ind_at-&gt;num_dims != 1))
++ {
++ SLang_verror (SL_TYPE_MISMATCH, &quot;Expecting 1-d integer array&quot;);
++ goto return_error;
++ }
++
++ if (-1 == _SLang_pop_datatype (&amp;type))
++ goto return_error;
++
++ if (NULL == (at = SLang_create_array (type, 0, NULL,
++ (int *) ind_at-&gt;data,
++ ind_at-&gt;num_elements)))
++ goto return_error;
++
++ SLang_free_array (ind_at);
++ return SLang_push_array (at, 1);
++
++ return_error:
++ SLang_free_array (ind_at);
++ return -1;
++}
++
++static int array_length (unsigned char type, VOID_STAR v, unsigned int *len)
++{
++ SLang_Array_Type *at;
++
++ (void) type;
++ at = *(SLang_Array_Type **) v;
++ *len = at-&gt;num_elements;
++ return 0;
++}
++
++int
++_SLarray_init_slarray (void)
++{
++ SLang_Class_Type *cl;
++
++ if (-1 == SLadd_intrin_fun_table (Array_Table, NULL))
++ return -1;
++
++ if (NULL == (cl = SLclass_allocate_class (&quot;Array_Type&quot;)))
++ return -1;
++
++ (void) SLclass_set_string_function (cl, array_string);
++ (void) SLclass_set_destroy_function (cl, array_destroy);
++ (void) SLclass_set_push_function (cl, array_push);
++ cl-&gt;cl_push_intrinsic = array_push_intrinsic;
++ cl-&gt;cl_dereference = array_dereference;
++ cl-&gt;cl_datatype_deref = array_datatype_deref;
++ cl-&gt;cl_length = array_length;
++
++ if (-1 == SLclass_register_class (cl, SLANG_ARRAY_TYPE, sizeof (VOID_STAR),
++ SLANG_CLASS_TYPE_PTR))
++ return -1;
++
++ if ((-1 == SLclass_add_binary_op (SLANG_ARRAY_TYPE, SLANG_ARRAY_TYPE, array_binary_op, array_binary_op_result))
++ || (-1 == SLclass_add_unary_op (SLANG_ARRAY_TYPE, array_unary_op, array_unary_op_result))
++ || (-1 == SLclass_add_app_unary_op (SLANG_ARRAY_TYPE, array_app_op, array_unary_op_result))
++ || (-1 == SLclass_add_math_op (SLANG_ARRAY_TYPE, array_math_op, array_unary_op_result))
++ || (-1 == SLclass_add_math_op (SLANG_ARRAY_TYPE, array_math_op, array_unary_op_result)))
++ return -1;
++
++ return 0;
++}
++
++int SLang_pop_array (SLang_Array_Type **at_ptr, int convert_scalar)
++{
++ if (-1 == pop_array (at_ptr, convert_scalar))
++ return -1;
++
++ if (-1 == coerse_array_to_linear (*at_ptr))
++ {
++ SLang_free_array (*at_ptr);
++ return -1;
++ }
++ return 0;
++}
++
++int SLang_pop_array_of_type (SLang_Array_Type **at, unsigned char type)
++{
++ if (-1 == SLclass_typecast (type, 1, 1))
++ return -1;
++
++ return SLang_pop_array (at, 1);
++}
++
++void (*_SLang_Matrix_Multiply)(void);
++
++int _SLarray_matrix_multiply (void)
++{
++ if (_SLang_Matrix_Multiply != NULL)
++ {
++ (*_SLang_Matrix_Multiply)();
++ return 0;
++ }
++ SLang_verror (SL_NOT_IMPLEMENTED, &quot;Matrix multiplication not available&quot;);
++ return -1;
++}
++
++struct _SLang_Foreach_Context_Type
++{
++ SLang_Array_Type *at;
++ unsigned int next_element_index;
++};
++
++SLang_Foreach_Context_Type *
++_SLarray_cl_foreach_open (unsigned char type, unsigned int num)
++{
++ SLang_Foreach_Context_Type *c;
++
++ if (num != 0)
++ {
++ SLdo_pop_n (num + 1);
++ SLang_verror (SL_NOT_IMPLEMENTED,
++ &quot;%s does not support 'foreach using' form&quot;,
++ SLclass_get_datatype_name (type));
++ return NULL;
++ }
++
++ if (NULL == (c = (SLang_Foreach_Context_Type *) SLmalloc (sizeof (SLang_Foreach_Context_Type))))
++ return NULL;
++
++ memset ((char *) c, 0, sizeof (SLang_Foreach_Context_Type));
++
++ if (-1 == pop_array (&amp;c-&gt;at, 1))
++ {
++ SLfree ((char *) c);
++ return NULL;
++ }
++
++ return c;
++}
++
++void _SLarray_cl_foreach_close (unsigned char type, SLang_Foreach_Context_Type *c)
++{
++ (void) type;
++ if (c == NULL) return;
++ SLang_free_array (c-&gt;at);
++ SLfree ((char *) c);
++}
++
++int _SLarray_cl_foreach (unsigned char type, SLang_Foreach_Context_Type *c)
++{
++ SLang_Array_Type *at;
++ VOID_STAR data;
++
++ (void) type;
++
++ if (c == NULL)
++ return -1;
++
++ at = c-&gt;at;
++ if (at-&gt;num_elements == c-&gt;next_element_index)
++ return 0;
++
++ /* FIXME: Priority = low. The following assumes linear arrays
++ * or Integer range arrays. Fixing it right requires a method to get the
++ * nth element of a multidimensional array.
++ */
++
++ if (at-&gt;flags &amp; SLARR_DATA_VALUE_IS_RANGE)
++ {
++ int d = (int) c-&gt;next_element_index;
++ data = range_get_data_addr (at, &amp;d);
++ }
++ else
++ data = (VOID_STAR) ((char *)at-&gt;data + (c-&gt;next_element_index * at-&gt;sizeof_type));
++
++ c-&gt;next_element_index += 1;
++
++ if ((at-&gt;flags &amp; SLARR_DATA_VALUE_IS_POINTER)
++ &amp;&amp; (*(VOID_STAR *) data == NULL))
++ {
++ if (-1 == SLang_push_null ())
++ return -1;
++ }
++ else if (-1 == (*at-&gt;cl-&gt;cl_apush)(at-&gt;data_type, data))
++ return -1;
++
++ /* keep going */
++ return 1;
++}
++
+
+
+Property changes on: drakx/trunk/mdk-stage1/slang/slarray.c
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+<a id="drakxtrunkmdkstage1slangslarrfunc">Added: drakx/trunk/mdk-stage1/slang/slarrfun.c</a>
+===================================================================
+--- drakx/trunk/mdk-stage1/slang/slarrfun.c (rev 0)
++++ drakx/trunk/mdk-stage1/slang/slarrfun.c 2011-02-07 00:01:56 UTC (rev 451)
+@@ -0,0 +1,464 @@
++/* Advanced array manipulation routines for S-Lang */
++/* Copyright (c) 1998, 1999, 2001 John E. Davis
++ * This file is part of the S-Lang library.
++ *
++ * You may distribute under the terms of either the GNU General Public
++ * License or the Perl Artistic License.
++ */
++
++#include &quot;slinclud.h&quot;
++
++#include &quot;slang.h&quot;
++#include &quot;_slang.h&quot;
++
++static int next_transposed_index (int *dims, int *max_dims, unsigned int num_dims)
++{
++ int i;
++
++ for (i = 0; i &lt; (int) num_dims; i++)
++ {
++ int dims_i;
++
++ dims_i = dims [i] + 1;
++ if (dims_i != (int) max_dims [i])
++ {
++ dims [i] = dims_i;
++ return 0;
++ }
++ dims [i] = 0;
++ }
++
++ return -1;
++}
++
++static SLang_Array_Type *allocate_transposed_array (SLang_Array_Type *at)
++{
++ unsigned int num_elements;
++ SLang_Array_Type *bt;
++ VOID_STAR b_data;
++
++ num_elements = at-&gt;num_elements;
++ b_data = (VOID_STAR) SLmalloc (at-&gt;sizeof_type * num_elements);
++ if (b_data == NULL)
++ return NULL;
++
++ bt = SLang_create_array (at-&gt;data_type, 0, b_data, at-&gt;dims, 2);
++ if (bt == NULL)
++ {
++ SLfree ((char *)b_data);
++ return NULL;
++ }
++
++ bt-&gt;dims[1] = at-&gt;dims[0];
++ bt-&gt;dims[0] = at-&gt;dims[1];
++
++ return bt;
++}
++
++#define GENERIC_TYPE float
++#define TRANSPOSE_2D_ARRAY transpose_floats
++#define GENERIC_TYPE_A float
++#define GENERIC_TYPE_B float
++#define GENERIC_TYPE_C float
++#define INNERPROD_FUNCTION innerprod_float_float
++#if SLANG_HAS_COMPLEX
++# define INNERPROD_COMPLEX_A innerprod_complex_float
++# define INNERPROD_A_COMPLEX innerprod_float_complex
++#endif
++#include &quot;slarrfun.inc&quot;
++
++#define GENERIC_TYPE double
++#define TRANSPOSE_2D_ARRAY transpose_doubles
++#define GENERIC_TYPE_A double
++#define GENERIC_TYPE_B double
++#define GENERIC_TYPE_C double
++#define INNERPROD_FUNCTION innerprod_double_double
++#if SLANG_HAS_COMPLEX
++# define INNERPROD_COMPLEX_A innerprod_complex_double
++# define INNERPROD_A_COMPLEX innerprod_double_complex
++#endif
++#include &quot;slarrfun.inc&quot;
++
++#define GENERIC_TYPE_A double
++#define GENERIC_TYPE_B float
++#define GENERIC_TYPE_C double
++#define INNERPROD_FUNCTION innerprod_double_float
++#include &quot;slarrfun.inc&quot;
++
++#define GENERIC_TYPE_A float
++#define GENERIC_TYPE_B double
++#define GENERIC_TYPE_C double
++#define INNERPROD_FUNCTION innerprod_float_double
++#include &quot;slarrfun.inc&quot;
++
++/* Finally pick up the complex_complex multiplication
++ * and do the integers
++ */
++#if SLANG_HAS_COMPLEX
++# define INNERPROD_COMPLEX_COMPLEX innerprod_complex_complex
++#endif
++#define GENERIC_TYPE int
++#define TRANSPOSE_2D_ARRAY transpose_ints
++#include &quot;slarrfun.inc&quot;
++
++#if SIZEOF_LONG != SIZEOF_INT
++# define GENERIC_TYPE long
++# define TRANSPOSE_2D_ARRAY transpose_longs
++# include &quot;slarrfun.inc&quot;
++#else
++# define transpose_longs transpose_ints
++#endif
++
++#if SIZEOF_SHORT != SIZEOF_INT
++# define GENERIC_TYPE short
++# define TRANSPOSE_2D_ARRAY transpose_shorts
++# include &quot;slarrfun.inc&quot;
++#else
++# define transpose_shorts transpose_ints
++#endif
++
++#define GENERIC_TYPE char
++#define TRANSPOSE_2D_ARRAY transpose_chars
++#include &quot;slarrfun.inc&quot;
++
++/* This routine works only with linear arrays */
++static SLang_Array_Type *transpose (SLang_Array_Type *at)
++{
++ int dims [SLARRAY_MAX_DIMS];
++ int *max_dims;
++ unsigned int num_dims;
++ SLang_Array_Type *bt;
++ int i;
++ unsigned int sizeof_type;
++ int is_ptr;
++ char *b_data;
++
++ max_dims = at-&gt;dims;
++ num_dims = at-&gt;num_dims;
++
++ if ((at-&gt;num_elements == 0)
++ || (num_dims == 1))
++ {
++ bt = SLang_duplicate_array (at);
++ if (num_dims == 1) bt-&gt;num_dims = 2;
++ goto transpose_dims;
++ }
++
++ /* For numeric arrays skip the overhead below */
++ if (num_dims == 2)
++ {
++ bt = allocate_transposed_array (at);
++ if (bt == NULL) return NULL;
++
++ switch (at-&gt;data_type)
++ {
++ case SLANG_INT_TYPE:
++ case SLANG_UINT_TYPE:
++ return transpose_ints (at, bt);
++ case SLANG_DOUBLE_TYPE:
++ return transpose_doubles (at, bt);
++ case SLANG_FLOAT_TYPE:
++ return transpose_floats (at, bt);
++ case SLANG_CHAR_TYPE:
++ case SLANG_UCHAR_TYPE:
++ return transpose_chars (at, bt);
++ case SLANG_LONG_TYPE:
++ case SLANG_ULONG_TYPE:
++ return transpose_longs (at, bt);
++ case SLANG_SHORT_TYPE:
++ case SLANG_USHORT_TYPE:
++ return transpose_shorts (at, bt);
++ }
++ }
++ else
++ {
++ bt = SLang_create_array (at-&gt;data_type, 0, NULL, max_dims, num_dims);
++ if (bt == NULL) return NULL;
++ }
++
++ sizeof_type = at-&gt;sizeof_type;
++ is_ptr = (at-&gt;flags &amp; SLARR_DATA_VALUE_IS_POINTER);
++
++ memset ((char *)dims, 0, sizeof(dims));
++
++ b_data = (char *) bt-&gt;data;
++
++ do
++ {
++ if (-1 == _SLarray_aget_transfer_elem (at, dims, (VOID_STAR) b_data,
++ sizeof_type, is_ptr))
++ {
++ SLang_free_array (bt);
++ return NULL;
++ }
++ b_data += sizeof_type;
++ }
++ while (0 == next_transposed_index (dims, max_dims, num_dims));
++
++ transpose_dims:
++
++ num_dims = bt-&gt;num_dims;
++ for (i = 0; i &lt; (int) num_dims; i++)
++ bt-&gt;dims[i] = max_dims [num_dims - i - 1];
++
++ return bt;
++}
++
++static void array_transpose (SLang_Array_Type *at)
++{
++ if (NULL != (at = transpose (at)))
++ (void) SLang_push_array (at, 1);
++}
++
++static int get_inner_product_parms (SLang_Array_Type *a, int *dp,
++ unsigned int *loops, unsigned int *other)
++{
++ int num_dims;
++ int d;
++
++ d = *dp;